diff --git a/.flake8 b/.flake8 index df98c3eb123..f19599ec70a 100644 --- a/.flake8 +++ b/.flake8 @@ -16,3 +16,4 @@ exclude = ./src/managementgroups/azext_managementgroups/managementgroups ./src/managementpartner/azext_managementpartner/managementpartner ./src/subscription/azext_subscription/subscription + */grammar/ diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a1465ee32b7..ca07d608dee 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -2,7 +2,7 @@ /linter_exclusions.yml @MyronFanQiu @haroldrandom @fengzhou-msft -/src/index.json @haroldrandom @fengzhou-msft +/src/index.json @haroldrandom @fengzhou-msft @arrownj @bim @qwordy @houk-ms @MyronFanQiu @jsntcy @Juliehzl @jiasli @zhoxing-ms @evelyn-ys @msyyc /src/footprint/ @jonunezd @Diego-Perez-Botero @@ -64,11 +64,11 @@ /src/hack/ @geektrainer -/src/internet-analyzer/ @MyronFanQiu +/src/internet-analyzer/ @MyronFanQiu @jsntcy /src/spring-cloud/ @peizhou298 -/src/peering/ @MyronFanQiu +/src/peering/ @MyronFanQiu @jsntcy /src/connectedmachine/ @farehar @@ -100,6 +100,8 @@ /src/blueprint/ @fengzhou-msft +/src/storage-blob-preview/ @Juliehzl + /src/storage-or-preview/ @Juliehzl /src/logic/ @bquantump @@ -116,7 +118,7 @@ /src/import-export/ @arrownj -/src/account/ @zikalino +/src/account/ @arrownj @jiasli @fengzhou-msft /src/datashare/ @fengzhou-msft @@ -128,15 +130,13 @@ /src/kusto/ @ilayr @orhasban @astauben -/src/ai-did-you-mean-this/ @christopher-o-toole - /src/custom-providers/ @jsntcy /src/costmanagement/ @haroldrandom /src/datafactory/ @qiaozha -/src/blockchain/ @MyronFanQiu +/src/blockchain/ @MyronFanQiu @jsntcy /src/codespaces/ @derekbekoe @@ -147,3 +147,10 @@ /src/guestconfig/ @gehuan /src/swiftlet/ @qwordy + +/src/maintenance/ @sotaneja + +/src/scheduled-query/ @MyronFanQiu @jsntcy + +/src/stack-hci/ @zhoxing-ms + diff --git a/azure-cli-extensions.pyproj b/azure-cli-extensions.pyproj index df1e88da33d..c877de0a89c 100644 --- a/azure-cli-extensions.pyproj +++ b/azure-cli-extensions.pyproj @@ -4756,7 +4756,7 @@ - + diff --git a/src/account/HISTORY.rst b/src/account/HISTORY.rst index 1c139576ba0..f609ea48b2d 100644 --- a/src/account/HISTORY.rst +++ b/src/account/HISTORY.rst @@ -3,6 +3,13 @@ Release History =============== +0.2.0 ++++++ +* Breaking Change: remove `az account subscription create`. +* Add az account alias commands. +* Add az account tenant commands. +* Support sovereign clouds. + 0.1.0 ++++++ * Initial release. diff --git a/src/account/azext_account/action.py b/src/account/azext_account/action.py index ae52d832feb..b6a13c7554b 100644 --- a/src/account/azext_account/action.py +++ b/src/account/azext_account/action.py @@ -6,7 +6,7 @@ # pylint: disable=wildcard-import # pylint: disable=unused-wildcard-import -from azext_account.generated.action import * # noqa: F403 +# from azext_account.generated.action import * # noqa: F403 try: from azext_account.manual.action import * # noqa: F403 except ImportError: diff --git a/src/account/azext_account/generated/_client_factory.py b/src/account/azext_account/generated/_client_factory.py index 09cec837dcf..3ded7eafb49 100644 --- a/src/account/azext_account/generated/_client_factory.py +++ b/src/account/azext_account/generated/_client_factory.py @@ -9,16 +9,16 @@ def cf_account(cli_ctx, *_): from ..vendored_sdks.subscription import SubscriptionClient return _get_mgmt_service_client(cli_ctx, SubscriptionClient, subscription_bound=False, - base_url_bound=False)[0] + base_url_bound=True)[0] def cf_subscription(cli_ctx, *_): return cf_account(cli_ctx).subscription -def cf_subscription_operation(cli_ctx, *_): - return cf_account(cli_ctx).subscription_operation +def cf_tenant(cli_ctx, *_): + return cf_account(cli_ctx).tenant -def cf_operation(cli_ctx, *_): - return cf_account(cli_ctx).operation +def cf_alias(cli_ctx, *_): + return cf_account(cli_ctx).alias diff --git a/src/account/azext_account/generated/_help.py b/src/account/azext_account/generated/_help.py index 3a23cb4c683..59e2266ad36 100644 --- a/src/account/azext_account/generated/_help.py +++ b/src/account/azext_account/generated/_help.py @@ -13,68 +13,123 @@ short-summary: Manage subscriptions """ -helps['account subscription create'] = """ +helps['account subscription rename'] = """ type: command - short-summary: Create a new WebDirect or EA Azure subscription. + short-summary: Rename subscription examples: - - name: Create subscription + - name: Rename subscription text: |- - az account subscription create --billing-account-name \\ - "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_XXXX-XX-XX" \\ - --billing-profile-name "27VR-HDWX-BG7-TGB" --cost-center "135366376" --display-name \\ - "Contoso MCA subscription" --owner xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \\ - --sku-id "0001" --invoice-section-name "JGF7-NSBG-PJA-TGB" + az account subscription rename --subscription-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" """ +helps['account subscription cancel'] = """ + type: command + short-summary: Cancel subscription + examples: + - name: Cancel subscription + text: |- + az account subscription cancel --subscription-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +""" -helps['account subscription create-in-enrollment-account'] = """ +helps['account subscription enable'] = """ type: command - short-summary: Create subscription in enrolment account + short-summary: Enable subscription examples: - - name: Create subscription in enrollment account + - name: Enable subscription text: |- - az account subscription create-in-enrollment-account --display-name \\ - "Test Ea Azure Sub" --offer-type "MS-AZR-0017P" --owners \\ - xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \\ - xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --enrollment-account-name \\ - "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + az account subscription enable --subscription-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" """ -helps['account subscription create-csp'] = """ +helps['account subscription list'] = """ type: command - short-summary: Create a new CSP subscription. + short-summary: Get all subscriptions for a tenant. examples: - - name: Create CSP subscription + - name: listSubscriptions text: |- - az account subscription create-csp --billing-account-name \\ - "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_XXXX-XX-XX" \\ - --display-name "Contoso MCA subscription" --sku-id "0001" --customer-name \\ - "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + az account subscription list """ -helps['account subscription rename'] = """ +helps['account subscription show'] = """ type: command - short-summary: Rename subscription + short-summary: Get details about a specified subscription. examples: - - name: Rename subscription + - name: getSubscription text: |- - az account subscription rename --subscription-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + az account subscription show --subscription-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" """ -helps['account subscription cancel'] = """ +helps['account subscription list-location'] = """ type: command - short-summary: Cancel subscription + short-summary: This operation provides all the locations that are available for resource providers; however, each r\ +esource provider may support a subset of this list. examples: - - name: Cancel subscription + - name: listLocations text: |- - az account subscription cancel --subscription-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + az account subscription list-location --subscription-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" """ -helps['account subscription enable'] = """ +helps['account tenant'] = """ + type: group + short-summary: Manage tenant +""" + +helps['account tenant list'] = """ type: command - short-summary: Enable subscription + short-summary: Get the tenants for your account. examples: - - name: Enable subscription + - name: listTenants text: |- - az account subscription enable --subscription-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + az account tenant list +""" + +helps['account alias'] = """ + type: group + short-summary: Manage subscription alias +""" + +helps['account alias list'] = """ + type: command + short-summary: List Alias Subscriptions. + examples: + - name: List Alias Subscriptions + text: |- + az account alias list +""" + +helps['account alias show'] = """ + type: command + short-summary: Get Alias Subscription. + examples: + - name: GetAlias + text: |- + az account alias show --name "aliasForNewSub" +""" + +helps['account alias create'] = """ + type: command + short-summary: "Create Alias Subscription." + examples: + - name: CreateAlias + text: |- + az account alias create --name "aliasForNewSub" --billing-scope "/providers/Microsoft.Billing/billingAcc\ +ounts/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:024cabf4-7321-4cf9-be59-df0c77ca51de_2019-05-31/billingProfiles/PE2Q-NOIT-BG\ +7-TGB/invoiceSections/MTT4-OBS7-PJA-TGB" --display-name "Contoso MCA subscription" --workload "Production" +""" + +helps['account alias delete'] = """ + type: command + short-summary: Delete Alias. + examples: + - name: DeleteAlias + text: |- + az account alias delete --name "aliasForNewSub" +""" + +helps['account alias wait'] = """ + type: command + short-summary: Place the CLI in a waiting state until a condition of the account alias is met. + examples: + - name: Pause executing next line of CLI script until the account alias is successfully created. + text: |- + az account alias wait --name "aliasForNewSub" --created """ diff --git a/src/account/azext_account/generated/_params.py b/src/account/azext_account/generated/_params.py index 2f43fd76d28..03eba5b0461 100644 --- a/src/account/azext_account/generated/_params.py +++ b/src/account/azext_account/generated/_params.py @@ -6,43 +6,52 @@ # pylint: disable=too-many-lines # pylint: disable=too-many-statements -from azure.cli.core.commands.parameters import ( - get_enum_type -) +from azure.cli.core.commands.parameters import get_enum_type +from ._validators import alias_validator def load_arguments(self, _): - with self.argument_context('account subscription create') as c: - c.argument('billing_account_name', help='The name of the Microsoft Customer Agreement billing account for which you want to create the subscription.') - c.argument('billing_profile_name', help='The name of the billing profile in the billing account for which you want to create the subscription.') - c.argument('invoice_section_name', help='The name of the invoice section in the billing account for which you want to create the subscription.') - c.argument('display_name', help='The friendly name of the subscription.') - c.argument('sku_id', help='The SKU ID of the Azure plan. Azure plan determines the pricing and service-level agreement of the subscription. Use 001 for Microsoft Azure Plan and 002 for Microsoft Azure Plan for DevTest.') - c.argument('cost_center', help='If set, the cost center will show up on the Azure usage and charges file.') - c.argument('owner', help='Active Directory Principal who’ll get owner access on the new subscription.') - c.argument('management_group_id', help='The identifier of the management group to which this subscription will be associated.') - - with self.argument_context('account subscription create-in-enrollment-account') as c: - c.argument('enrollment_account_name', help='The name of the enrollment account to which the subscription will be billed.') - c.argument('display_name', help='The display name of the subscription.') - c.argument('management_group_id', help='The Management Group Id.') - c.argument('owners', nargs='+', help='The list of principals that should be granted Owner access on the subscription. Principals should be of type User, Service Principal or Security Group.') - c.argument('offer_type', arg_type=get_enum_type(['MS-AZR-0017P', 'MS-AZR-0148P']), help='The offer type of the subscription. For example, MS-AZR-0017P (EnterpriseAgreement) and MS-AZR-0148P (EnterpriseAgreement devTest) are available. Only valid when creating a subscription in a enrollment account scope.') - - with self.argument_context('account subscription create-csp') as c: - c.argument('billing_account_name', help='The name of the Microsoft Customer Agreement billing account for which you want to create the subscription.') - c.argument('customer_name', help='The name of the customer.') - c.argument('display_name', help='The friendly name of the subscription.') - c.argument('sku_id', help='The SKU ID of the Azure plan. Azure plan determines the pricing and service-level agreement of the subscription. Use 001 for Microsoft Azure Plan and 002 for Microsoft Azure Plan for DevTest.') - c.argument('reseller_id', help='Reseller ID, basically MPN Id.') - with self.argument_context('account subscription rename') as c: - c.argument('subscription_id', help='Subscription Id.') - c.argument('subscription_name', help='New subscription name') + c.argument('subscription_id', options_list=['--id', '--subscription-id'], help='Subscription Id.') + c.argument('subscription_name', options_list=['--name', '-n', '--subscription-name'], help='New subscription name') with self.argument_context('account subscription cancel') as c: - c.argument('subscription_id', help='Subscription Id.') + c.argument('subscription_id', options_list=['--id', '--subscription-id'], help='Subscription Id.') with self.argument_context('account subscription enable') as c: - c.argument('subscription_id', help='Subscription Id.') + c.argument('subscription_id', options_list=['--id', '--subscription-id'], help='Subscription Id.') + + with self.argument_context('account subscription list') as c: + pass + + with self.argument_context('account subscription show') as c: + c.argument('subscription_id', options_list=['--id', '--subscription-id'], help='The ID of the target subscription.', id_part='subscription') + + with self.argument_context('account subscription list-location') as c: + c.argument('subscription_id', options_list=['--id', '--subscription-id'], help='The ID of the target subscription.') + + with self.argument_context('account tenant list') as c: + pass + + with self.argument_context('account alias list') as c: + pass + + with self.argument_context('account alias show') as c: + c.argument('alias_name', options_list=['--name', '-n'], help='Alias Name') + + with self.argument_context('account alias create', validator=alias_validator) as c: + c.argument('alias_name', options_list=['--name', '-n'], type=str, help='Alias Name') + c.argument('display_name', type=str, help='The friendly name of the subscription.') + c.argument('workload', arg_type=get_enum_type(['Production', 'DevTest']), help='The workload type of the ' + 'subscription. It can be either Production or DevTest.') + c.argument('billing_scope', type=str, help='Billing scope. It determines whether the subscription is Field-Led, Partner-Led or ' + 'LegacyEA') + c.argument('subscription_id', type=str, help='This parameter can be used to create alias for existing ' + 'subscription ID') + + with self.argument_context('account alias delete') as c: + c.argument('alias_name', options_list=['--name', '-n'], help='Alias Name') + + with self.argument_context('account alias wait') as c: + c.argument('alias_name', options_list=['--name', '-n'], help='Alias Name') diff --git a/src/account/azext_account/generated/_validators.py b/src/account/azext_account/generated/_validators.py index 34913fb394d..798183f12a4 100644 --- a/src/account/azext_account/generated/_validators.py +++ b/src/account/azext_account/generated/_validators.py @@ -2,3 +2,15 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- + +from knack.util import CLIError + + +def alias_validator(namespace): + if namespace.subscription_id: + if namespace.billing_scope or namespace.display_name: + raise CLIError('--billing-scope or --display-name is not allowed when --subscription-id is provided.') + else: + if not namespace.billing_scope or not namespace.display_name or not namespace.workload: + raise CLIError('--billing-scope, --display-name and --workload are required when creating ' + 'an alias with a new susbcription.') diff --git a/src/account/azext_account/generated/commands.py b/src/account/azext_account/generated/commands.py index 4cd99d42525..24fcc3ed2e4 100644 --- a/src/account/azext_account/generated/commands.py +++ b/src/account/azext_account/generated/commands.py @@ -16,10 +16,28 @@ def load_command_table(self, _): account_subscription = CliCommandType( operations_tmpl='azext_account.vendored_sdks.subscription.operations._subscription_operations#SubscriptionOperations.{}', client_factory=cf_subscription) - with self.command_group('account subscription', account_subscription, client_factory=cf_subscription) as g: - g.custom_command('create', 'account_subscription_create_subscription', supports_no_wait=True) + with self.command_group('account subscription', account_subscription, client_factory=cf_subscription, is_experimental=True) as g: g.custom_command('rename', 'account_subscription_rename') g.custom_command('cancel', 'account_subscription_cancel', confirmation=True) g.custom_command('enable', 'account_subscription_enable') - g.custom_command('create-csp', 'account_subscription_create_csp_subscription', supports_no_wait=True) - g.custom_command('create-in-enrollment-account', 'account_subscription_create_subscription_in_enrollment_account', supports_no_wait=True) + g.custom_command('list', 'account_subscription_list') + g.custom_show_command('show', 'account_subscription_show') + g.custom_command('list-location', 'account_subscription_list_location') + + from azext_account.generated._client_factory import cf_tenant + account_tenant = CliCommandType( + operations_tmpl='azext_account.vendored_sdks.subscription.operations._tenant_operations#TenantOperations.{}', + client_factory=cf_tenant) + with self.command_group('account tenant', account_tenant, client_factory=cf_tenant, is_experimental=True) as g: + g.custom_command('list', 'account_tenant_list') + + from azext_account.generated._client_factory import cf_alias + account_alias = CliCommandType( + operations_tmpl='azext_account.vendored_sdks.subscription.operations._alias_operations#AliasOperations.{}', + client_factory=cf_alias) + with self.command_group('account alias', account_alias, client_factory=cf_alias, is_experimental=True) as g: + g.custom_command('list', 'account_alias_list') + g.custom_show_command('show', 'account_alias_show') + g.custom_command('create', 'account_alias_create', supports_no_wait=True) + g.custom_command('delete', 'account_alias_delete') + g.custom_wait_command('wait', 'account_alias_show') diff --git a/src/account/azext_account/generated/custom.py b/src/account/azext_account/generated/custom.py index ccdcccb94f1..96e94c240c4 100644 --- a/src/account/azext_account/generated/custom.py +++ b/src/account/azext_account/generated/custom.py @@ -11,58 +11,6 @@ from azure.cli.core.util import sdk_no_wait -def account_subscription_create_subscription(cmd, client, - billing_account_name, - billing_profile_name, - invoice_section_name, - display_name, - sku_id, - cost_center=None, - owner=None, - management_group_id=None, - no_wait=False): - - body = {} - body['display_name'] = display_name - body['sku_id'] = sku_id - body['cost_center'] = cost_center - body['owner'] = {'object_id': owner} - body['management_group_id'] = management_group_id - return sdk_no_wait(no_wait, client.create_subscription, billing_account_name=billing_account_name, billing_profile_name=billing_profile_name, invoice_section_name=invoice_section_name, body=body) - - -def account_subscription_create_subscription_in_enrollment_account(cmd, client, - enrollment_account_name, - display_name=None, - management_group_id=None, - owners=None, - offer_type=None, - no_wait=False): - if owners is not None: - owners = [{'object_id': x} for x in owners] - - body = {} - body['display_name'] = display_name - body['management_group_id'] = management_group_id - body['owners'] = owners - body['offer_type'] = offer_type - return sdk_no_wait(no_wait, client.create_subscription_in_enrollment_account, enrollment_account_name=enrollment_account_name, body=body) - - -def account_subscription_create_csp_subscription(cmd, client, - billing_account_name, - customer_name, - display_name, - sku_id, - reseller_id=None, - no_wait=False): - body = {} - body['display_name'] = display_name - body['sku_id'] = sku_id - body['reseller_id'] = reseller_id - return sdk_no_wait(no_wait, client.create_csp_subscription, billing_account_name=billing_account_name, customer_name=customer_name, body=body) - - def account_subscription_rename(cmd, client, subscription_id, subscription_name=None): return client.rename(subscription_id=subscription_id, subscription_name=subscription_name) @@ -74,3 +22,54 @@ def account_subscription_cancel(cmd, client, subscription_id): def account_subscription_enable(cmd, client, subscription_id): return client.enable(subscription_id=subscription_id) + + +def account_subscription_list(client): + return client.list() + + +def account_subscription_show(client, + subscription_id): + return client.get(subscription_id=subscription_id) + + +def account_subscription_list_location(client, + subscription_id): + return client.list_location(subscription_id=subscription_id) + + +def account_tenant_list(client): + return client.list() + + +def account_alias_list(client): + return client.list() + + +def account_alias_show(client, + alias_name): + return client.get(alias_name=alias_name) + + +def account_alias_create(client, + alias_name, + workload=None, + billing_scope=None, + display_name=None, + subscription_id=None, + no_wait=False): + properties = { + 'display_name': display_name, + 'workload': workload, + 'billing_scope': billing_scope, + 'subscription_id': subscription_id + } + return sdk_no_wait(no_wait, + client.begin_create, + alias_name=alias_name, + properties=properties) + + +def account_alias_delete(client, + alias_name): + return client.delete(alias_name=alias_name) diff --git a/src/account/azext_account/tests/latest/recordings/test_account.yaml b/src/account/azext_account/tests/latest/recordings/test_account.yaml new file mode 100644 index 00000000000..2bfd74fd0e5 --- /dev/null +++ b/src/account/azext_account/tests/latest/recordings/test_account.yaml @@ -0,0 +1,888 @@ +interactions: +- request: + body: '{"properties": {"displayName": "My Subscription", "workload": "Production", + "billingScope": "/providers/Microsoft.Billing/billingAccounts/9147924/enrollmentAccounts/253727"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account alias create + Connection: + - keep-alive + Content-Length: + - '174' + Content-Type: + - application/json + ParameterSetName: + - --name --billing-scope --display-name --workload + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://management.azure.com/providers/Microsoft.Subscription/aliases/cli_alias000001?api-version=2020-09-01 + response: + body: + string: '{"id":"/providers/Microsoft.Subscription/aliases/cli_alias000001","name":"cli_alias000001","type":"Microsoft.Subscription/aliases","properties":{"subscriptionId":"00000000-0000-0000-0000-000000000000","provisioningState":"Accepted"}}' + headers: + cache-control: + - no-cache + content-length: + - '251' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:09:22 GMT + expires: + - '-1' + pragma: + - no-cache + request-id: + - c1c02099-f330-4cd6-9ec9-8fafe691bc5f + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-gsm: + - 1.0.0.0 + x-ms-ratelimit-remaining-tenant-writes: + - '1199' + x-powered-by: + - ASP.NET + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - account alias create + Connection: + - keep-alive + ParameterSetName: + - --name --billing-scope --display-name --workload + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/providers/Microsoft.Subscription/aliases/cli_alias000001?api-version=2020-09-01 + response: + body: + string: '{"id":"/providers/Microsoft.Subscription/aliases/cli_alias000001","name":"cli_alias000001","type":"Microsoft.Subscription/aliases","properties":{"subscriptionId":"00000000-0000-0000-0000-000000000000","provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '252' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:09:52 GMT + expires: + - '-1' + pragma: + - no-cache + request-id: + - 6707b895-b8b5-41c2-b50e-11bdf8dab99a + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding,Accept-Encoding + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-gsm: + - 1.0.0.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account alias show + Connection: + - keep-alive + ParameterSetName: + - -n + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/providers/Microsoft.Subscription/aliases/cli_alias000001?api-version=2020-09-01 + response: + body: + string: '{"id":"/providers/Microsoft.Subscription/aliases/cli_alias000001","name":"cli_alias000001","type":"Microsoft.Subscription/aliases","properties":{"subscriptionId":"00000000-0000-0000-0000-000000000000","provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '252' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:09:55 GMT + expires: + - '-1' + pragma: + - no-cache + request-id: + - 582ad076-64bb-4f41-ba16-fc1e91479232 + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding,Accept-Encoding + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-gsm: + - 1.0.0.0 + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account subscription list + Connection: + - keep-alive + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions?api-version=2016-06-01 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000","authorizationSource":"Legacy","subscriptionId":"4b7571aa-8a25-4e1e-b884-e9a33cea95c5","displayName":"TestingLimit1-100","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Public_2014-09-01","quotaId":"EnterpriseAgreement_2014-09-01","spendingLimit":"Off"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000","authorizationSource":"Legacy","subscriptionId":"86bc4fb6-0fc8-4db5-8568-2f8aeb998e4c","displayName":"cli_subos5rknc3e66p3iniq","state":"Warned","subscriptionPolicies":{"locationPlacementId":"Public_2014-09-01","quotaId":"EnterpriseAgreement_2014-09-01","spendingLimit":"Off"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000","authorizationSource":"Legacy","subscriptionId":"6aaa903e-7c45-4492-8d3c-ef882bc009b5","displayName":"Feng + Alias Subscription 2","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Public_2014-09-01","quotaId":"EnterpriseAgreement_2014-09-01","spendingLimit":"Off"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000","authorizationSource":"Legacy","subscriptionId":"e35ea3b7-3091-4787-9216-d0b90889234f","displayName":"My + Subscription","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Public_2014-09-01","quotaId":"EnterpriseAgreement_2014-09-01","spendingLimit":"Off"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000","authorizationSource":"Legacy","subscriptionId":"00000000-0000-0000-0000-000000000000","displayName":"My + Subscription","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Public_2014-09-01","quotaId":"EnterpriseAgreement_2014-09-01","spendingLimit":"Off"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '1681' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:09:56 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: + - account subscription show + Connection: + - keep-alive + ParameterSetName: + - --subscription-id + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000?api-version=2016-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000","authorizationSource":"Legacy","subscriptionId":"00000000-0000-0000-0000-000000000000","displayName":"My + Subscription","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Public_2014-09-01","quotaId":"EnterpriseAgreement_2014-09-01","spendingLimit":"Off"}}' + headers: + cache-control: + - no-cache + content-length: + - '329' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:09:57 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: + - account subscription list-location + Connection: + - keep-alive + ParameterSetName: + - --subscription-id + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/locations?api-version=2016-06-01 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia","name":"eastasia","displayName":"East + Asia","longitude":"114.188","latitude":"22.267"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia","name":"southeastasia","displayName":"Southeast + Asia","longitude":"103.833","latitude":"1.283"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus","name":"centralus","displayName":"Central + US","longitude":"-93.6208","latitude":"41.5908"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus","name":"eastus","displayName":"East + US","longitude":"-79.8164","latitude":"37.3719"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2","name":"eastus2","displayName":"East + US 2","longitude":"-78.3889","latitude":"36.6681"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus","name":"westus","displayName":"West + US","longitude":"-122.417","latitude":"37.783"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus","name":"northcentralus","displayName":"North + Central US","longitude":"-87.6278","latitude":"41.8819"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus","name":"southcentralus","displayName":"South + Central US","longitude":"-98.5","latitude":"29.4167"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope","name":"northeurope","displayName":"North + Europe","longitude":"-6.2597","latitude":"53.3478"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope","name":"westeurope","displayName":"West + Europe","longitude":"4.9","latitude":"52.3667"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest","name":"japanwest","displayName":"Japan + West","longitude":"135.5022","latitude":"34.6939"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast","name":"japaneast","displayName":"Japan + East","longitude":"139.77","latitude":"35.68"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth","name":"brazilsouth","displayName":"Brazil + South","longitude":"-46.633","latitude":"-23.55"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast","name":"australiaeast","displayName":"Australia + East","longitude":"151.2094","latitude":"-33.86"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast","name":"australiasoutheast","displayName":"Australia + Southeast","longitude":"144.9631","latitude":"-37.8136"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia","name":"southindia","displayName":"South + India","longitude":"80.1636","latitude":"12.9822"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia","name":"centralindia","displayName":"Central + India","longitude":"73.9197","latitude":"18.5822"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westindia","name":"westindia","displayName":"West + India","longitude":"72.868","latitude":"19.088"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral","name":"canadacentral","displayName":"Canada + Central","longitude":"-79.383","latitude":"43.653"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast","name":"canadaeast","displayName":"Canada + East","longitude":"-71.217","latitude":"46.817"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth","name":"uksouth","displayName":"UK + South","longitude":"-0.799","latitude":"50.941"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest","name":"ukwest","displayName":"UK + West","longitude":"-3.084","latitude":"53.427"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus","name":"westcentralus","displayName":"West + Central US","longitude":"-110.234","latitude":"40.890"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2","name":"westus2","displayName":"West + US 2","longitude":"-119.852","latitude":"47.233"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral","name":"koreacentral","displayName":"Korea + Central","longitude":"126.9780","latitude":"37.5665"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth","name":"koreasouth","displayName":"Korea + South","longitude":"129.0756","latitude":"35.1796"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral","name":"francecentral","displayName":"France + Central","longitude":"2.3730","latitude":"46.3772"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth","name":"francesouth","displayName":"France + South","longitude":"2.1972","latitude":"43.8345"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral","name":"australiacentral","displayName":"Australia + Central","longitude":"149.1244","latitude":"-35.3075"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2","name":"australiacentral2","displayName":"Australia + Central 2","longitude":"149.1244","latitude":"-35.3075"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral","name":"uaecentral","displayName":"UAE + Central","longitude":"54.366669","latitude":"24.466667"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth","name":"uaenorth","displayName":"UAE + North","longitude":"55.316666","latitude":"25.266666"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth","name":"southafricanorth","displayName":"South + Africa North","longitude":"28.218370","latitude":"-25.731340"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest","name":"southafricawest","displayName":"South + Africa West","longitude":"18.843266","latitude":"-34.075691"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth","name":"switzerlandnorth","displayName":"Switzerland + North","longitude":"8.564572","latitude":"47.451542"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest","name":"switzerlandwest","displayName":"Switzerland + West","longitude":"6.143158","latitude":"46.204391"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth","name":"germanynorth","displayName":"Germany + North","longitude":"8.806422","latitude":"53.073635"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral","name":"germanywestcentral","displayName":"Germany + West Central","longitude":"8.682127","latitude":"50.110924"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest","name":"norwaywest","displayName":"Norway + West","longitude":"5.733107","latitude":"58.969975"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast","name":"norwayeast","displayName":"Norway + East","longitude":"10.752245","latitude":"59.913868"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsoutheast","name":"brazilsoutheast","displayName":"Brazil + Southeast","longitude":"-43.2075","latitude":"-22.90278"}]}' + headers: + cache-control: + - no-cache + content-length: + - '7320' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:09:57 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: + - account subscription cancel + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --subscription-id --yes + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Subscription/cancel?api-version=2020-09-01 + response: + body: + string: '{"subscriptionId":"00000000-0000-0000-0000-000000000000"}' + headers: + cache-control: + - no-cache + content-length: + - '57' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:10:02 GMT + expires: + - '-1' + pragma: + - no-cache + request-id: + - 74add5cb-3703-4e92-a22d-b6d7f60cba6a + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding,Accept-Encoding + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-gsm: + - 1.0.0.0 + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account subscription show + Connection: + - keep-alive + ParameterSetName: + - --subscription-id + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000?api-version=2016-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000","authorizationSource":"Legacy","subscriptionId":"00000000-0000-0000-0000-000000000000","displayName":"My + Subscription","state":"Warned","subscriptionPolicies":{"locationPlacementId":"Public_2014-09-01","quotaId":"EnterpriseAgreement_2014-09-01","spendingLimit":"Off"}}' + headers: + cache-control: + - no-cache + content-length: + - '328' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:15:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account subscription enable + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --subscription-id + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Subscription/enable?api-version=2020-09-01 + response: + body: + string: '{"subscriptionId":"00000000-0000-0000-0000-000000000000"}' + headers: + cache-control: + - no-cache + content-length: + - '57' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:15:07 GMT + expires: + - '-1' + pragma: + - no-cache + request-id: + - 258279d2-320a-4af0-a384-5de245323cf5 + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding,Accept-Encoding + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-gsm: + - 1.0.0.0 + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account subscription show + Connection: + - keep-alive + ParameterSetName: + - --subscription-id + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000?api-version=2016-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000","authorizationSource":"Legacy","subscriptionId":"00000000-0000-0000-0000-000000000000","displayName":"My + Subscription","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Public_2014-09-01","quotaId":"EnterpriseAgreement_2014-09-01","spendingLimit":"Off"}}' + headers: + cache-control: + - no-cache + content-length: + - '329' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:20:08 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: '{"subscriptionName": "My Big Subscription"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account subscription rename + Connection: + - keep-alive + Content-Length: + - '43' + Content-Type: + - application/json + ParameterSetName: + - --subscription-id --name + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Subscription/rename?api-version=2020-09-01 + response: + body: + string: '{"subscriptionId":"00000000-0000-0000-0000-000000000000"}' + headers: + cache-control: + - no-cache + content-length: + - '57' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:20:12 GMT + expires: + - '-1' + pragma: + - no-cache + request-id: + - f3f68d09-b145-4b03-91ee-b1ab5a5ed5f1 + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding,Accept-Encoding + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-gsm: + - 1.0.0.0 + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account subscription show + Connection: + - keep-alive + ParameterSetName: + - --subscription-id + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000?api-version=2016-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000","authorizationSource":"Legacy","subscriptionId":"00000000-0000-0000-0000-000000000000","displayName":"My + Subscription","state":"Warned","subscriptionPolicies":{"locationPlacementId":"Public_2014-09-01","quotaId":"EnterpriseAgreement_2014-09-01","spendingLimit":"Off"}}' + headers: + cache-control: + - no-cache + content-length: + - '328' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 09:25:12 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: + - account subscription show + Connection: + - keep-alive + ParameterSetName: + - --subscription-id + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000?api-version=2016-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000","authorizationSource":"Legacy","subscriptionId":"00000000-0000-0000-0000-000000000000","displayName":"My + Big Subscription","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Public_2014-09-01","quotaId":"EnterpriseAgreement_2014-09-01","spendingLimit":"Off"}}' + headers: + cache-control: + - no-cache + content-length: + - '333' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 12:20: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: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account tenant list + Connection: + - keep-alive + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/tenants?api-version=2016-06-01 + response: + body: + string: '{"value":[{"id":"/tenants/e8abe575-baa6-4436-af8a-dbf3eeb3a857","tenantId":"e8abe575-baa6-4436-af8a-dbf3eeb3a857"}]}' + headers: + cache-control: + - no-cache + content-length: + - '116' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 12:20:39 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: + - account alias delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://management.azure.com/providers/Microsoft.Subscription/aliases/cli_alias000001?api-version=2020-09-01 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Fri, 04 Sep 2020 12:20:42 GMT + expires: + - '-1' + pragma: + - no-cache + request-id: + - 9ee56908-7fab-4306-99cb-e2e053918afc + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-gsm: + - 1.0.0.0 + x-ms-ratelimit-remaining-tenant-deletes: + - '14999' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"properties": {"workload": "Production", "subscriptionId": "00000000-0000-0000-0000-000000000000"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account alias create + Connection: + - keep-alive + Content-Length: + - '100' + Content-Type: + - application/json + ParameterSetName: + - --name --workload --subscription-id + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://management.azure.com/providers/Microsoft.Subscription/aliases/cli_alias_new000002?api-version=2020-09-01 + response: + body: + string: '{"id":"/providers/Microsoft.Subscription/aliases/cli_alias_new000002","name":"cli_alias_new000002","type":"Microsoft.Subscription/aliases","properties":{"subscriptionId":"00000000-0000-0000-0000-000000000000","provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '252' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 04 Sep 2020 12:20:45 GMT + expires: + - '-1' + pragma: + - no-cache + request-id: + - d6f3d475-ee3e-4529-b28a-b985a191b268 + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding,Accept-Encoding + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-gsm: + - 1.0.0.0 + x-ms-ratelimit-remaining-tenant-writes: + - '1199' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - account alias delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n + User-Agent: + - AZURECLI/2.11.1 azsdk-python-subscriptionclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://management.azure.com/providers/Microsoft.Subscription/aliases/cli_alias_new000002?api-version=2020-09-01 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 09 Sep 2020 06:44:43 GMT + expires: + - '-1' + pragma: + - no-cache + request-id: + - a039b443-376d-474b-8433-c7f5c7ba4a76 + server: + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-content-type-options: + - nosniff + x-gsm: + - 1.0.0.0 + x-ms-ratelimit-remaining-tenant-deletes: + - '14999' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +version: 1 diff --git a/src/account/azext_account/tests/latest/test_account_scenario.py b/src/account/azext_account/tests/latest/test_account_scenario.py index 92d77b58d79..f00a99d5c5b 100644 --- a/src/account/azext_account/tests/latest/test_account_scenario.py +++ b/src/account/azext_account/tests/latest/test_account_scenario.py @@ -5,6 +5,7 @@ import os import unittest +import time from azure_devtools.scenario_tests import AllowLargeResponse from azure.cli.testsdk import (ScenarioTest, ResourceGroupPreparer) @@ -15,87 +16,77 @@ class SubscriptionClientScenarioTest(ScenarioTest): - @ResourceGroupPreparer(name_prefix='cli_test_account') - def test_account(self, resource_group): - - self.cmd('az account subscription create ' - '--billing-account-name "0aa27f2b-ec7f-5a65-71f6-a5ff0897bd55:ae0dae1e-de9a-41f6-8257-76b055d98372_2019-05-31" ' - '--billing-profile-name "27VR-HDWX-BG7-TGB" ' - '--cost-center "135366376" ' - '--display-name "Contoso MCA subscription" ' - '--sku-id "0001" ' - '--invoice-section-name "JGF7-NSBG-PJA-TGB"', - checks=[]) - - self.cmd('az account subscription create-subscription-in-enrollment-account ' - '--display-name "Test Ea Azure Sub" ' - '--offer-type "MS-AZR-0017P" ' - '--enrollment-account-name "73f8ab6e-cfa0-42be-b886-be6e77c2980c"', - checks=[]) - - self.cmd('az account subscription create-csp-subscription ' - '--billing-account-name "2bc54a6f-8d8a-5be1-5bff-bb4f285f512b:11a72812-d9a4-446e-9a1e-70c8bcadf5c0_2019-05-31" ' - '--display-name "Contoso MCA subscription" ' - '--sku-id "0001" ' - '--customer-name "e33ba30d-3718-4b15-bfaa-5627a57cda6f"', - checks=[]) - - self.cmd('az account subscription create ' - '--billing-account-name "0aa27f2b-ec7f-5a65-71f6-a5ff0897bd55:ae0dae1e-de9a-41f6-8257-76b055d98372_2019-05-31" ' - '--billing-profile-name "27VR-HDWX-BG7-TGB" ' - '--cost-center "135366376" ' - '--display-name "Contoso MCA subscription" ' - '--sku-id "0001" ' - '--invoice-section-name "JGF7-NSBG-PJA-TGB"', - checks=[]) - - self.cmd('az account subscription create-subscription-in-enrollment-account ' - '--display-name "Test Ea Azure Sub" ' - '--offer-type "MS-AZR-0017P" ' - '--enrollment-account-name "73f8ab6e-cfa0-42be-b886-be6e77c2980c"', - checks=[]) - - self.cmd('az account subscription create-csp-subscription ' - '--billing-account-name "2bc54a6f-8d8a-5be1-5bff-bb4f285f512b:11a72812-d9a4-446e-9a1e-70c8bcadf5c0_2019-05-31" ' - '--display-name "Contoso MCA subscription" ' - '--sku-id "0001" ' - '--customer-name "e33ba30d-3718-4b15-bfaa-5627a57cda6f"', - checks=[]) - - self.cmd('az account subscription create ' - '--billing-account-name "0aa27f2b-ec7f-5a65-71f6-a5ff0897bd55:ae0dae1e-de9a-41f6-8257-76b055d98372_2019-05-31" ' - '--billing-profile-name "27VR-HDWX-BG7-TGB" ' - '--cost-center "135366376" ' - '--display-name "Contoso MCA subscription" ' - '--sku-id "0001" ' - '--invoice-section-name "JGF7-NSBG-PJA-TGB"', - checks=[]) - - self.cmd('az account subscription create-subscription-in-enrollment-account ' - '--display-name "Test Ea Azure Sub" ' - '--offer-type "MS-AZR-0017P" ' - '--enrollment-account-name "73f8ab6e-cfa0-42be-b886-be6e77c2980c"', - checks=[]) - - self.cmd('az account subscription create-csp-subscription ' - '--billing-account-name "2bc54a6f-8d8a-5be1-5bff-bb4f285f512b:11a72812-d9a4-446e-9a1e-70c8bcadf5c0_2019-05-31" ' - '--display-name "Contoso MCA subscription" ' - '--sku-id "0001" ' - '--customer-name "e33ba30d-3718-4b15-bfaa-5627a57cda6f"', - checks=[]) - - self.cmd('az account subscription enable', - checks=[]) - - self.cmd('az account subscription cancel', + # @ResourceGroupPreparer(name_prefix='cli_test_account') + def test_account(self): + self.kwargs.update({ + 'alias_name': self.create_random_name(prefix='cli_alias', length=24), + 'new_alias_name': self.create_random_name(prefix='cli_alias_new', length=24), + 'display_name': "My Subscription", + 'new_display_name': "My Big Subscription", + 'billing_scope': "/providers/Microsoft.Billing/billingAccounts/9147924/enrollmentAccounts/253727" + }) + + self.cmd('az account alias create --name {alias_name} --billing-scope "{billing_scope}" --display-name "{display_name}" --workload "Production"', + checks=[self.check('name', '{alias_name}'), + self.check('properties.provisioningState', 'Succeeded')]) + + alias_sub = self.cmd('az account alias show -n {alias_name}', + checks=[self.check('name', '{alias_name}'), + self.check('properties.provisioningState', 'Succeeded')]).get_output_in_json() + sub_id = alias_sub['properties']['subscriptionId'] + self.kwargs.update({'subscription_id': sub_id}) + + # response different from swagger, causing deserialization error + # self.cmd('az account alias list', + # checks=[]) + + self.cmd('az account subscription list', + checks=[self.greater_than('length(@)', 0)]) + + self.cmd('az account subscription show --subscription-id {subscription_id}', + checks=[self.check('displayName', '{display_name}'), + self.check('state', 'Enabled'), + self.check('subscriptionId', sub_id)]) + + self.cmd('az account subscription list-location --subscription-id {subscription_id}', + checks=[self.greater_than('length(@)', 0)]) + + self.cmd('az account subscription cancel --subscription-id {subscription_id} --yes', + checks=[self.check('subscriptionId', '{subscription_id}')]) + time.sleep(300) + self.cmd('az account subscription show --subscription-id {subscription_id}', + checks=[self.check('displayName', '{display_name}'), + self.check('state', 'Warned'), + self.check('subscriptionId', sub_id)]) + + self.cmd('az account subscription enable --subscription-id {subscription_id}', + checks=[self.check('subscriptionId', '{subscription_id}')]) + time.sleep(300) + self.cmd('az account subscription show --subscription-id {subscription_id}', + checks=[self.check('displayName', '{display_name}'), + self.check('state', 'Enabled'), + self.check('subscriptionId', sub_id)]) + + self.cmd('az account subscription rename --subscription-id {subscription_id} --name "{new_display_name}"', + checks=[self.check('subscriptionId', '{subscription_id}')]) + # uncomment when request body match is supported in playback tests + # time.sleep(600) + # self.cmd('az account subscription show --subscription-id {subscription_id}', + # checks=[ + # self.check('displayName', '{new_display_name}'), + # self.check('state', 'Enabled'), + # self.check('subscriptionId', sub_id)]) + + self.cmd('az account tenant list', + checks=[self.exists('[0].tenantId')]) + + self.cmd('az account alias delete -n {alias_name}', checks=[]) - self.cmd('az account subscription rename', - checks=[]) - - self.cmd('az account subscription-operation show ' - '--operation-id "e4b8d068-f574-462a-a76f-6fa0afc613c9"', - checks=[]) + self.cmd('az account alias create --name {new_alias_name} --workload "Production" --subscription-id {subscription_id}', + checks=[self.check('name', '{new_alias_name}'), + self.check('properties.provisioningState', 'Succeeded')]) - self.cmd('az account operation list', + time.sleep(600) + self.cmd('az account alias delete -n {new_alias_name}', checks=[]) diff --git a/src/account/azext_account/vendored_sdks/__init__.py b/src/account/azext_account/vendored_sdks/__init__.py index be1a152630c..c9cfdc73e77 100644 --- a/src/account/azext_account/vendored_sdks/__init__.py +++ b/src/account/azext_account/vendored_sdks/__init__.py @@ -9,4 +9,4 @@ # regenerated. # -------------------------------------------------------------------------- -__path__ = __import__('pkgutil').extend_path(__path__, __name__) \ No newline at end of file +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/account/azext_account/vendored_sdks/subscription/__init__.py b/src/account/azext_account/vendored_sdks/subscription/__init__.py index 399e93fb102..a1d3eed7425 100644 --- a/src/account/azext_account/vendored_sdks/subscription/__init__.py +++ b/src/account/azext_account/vendored_sdks/subscription/__init__.py @@ -1,19 +1,16 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from ._configuration import SubscriptionClientConfiguration from ._subscription_client import SubscriptionClient -__all__ = ['SubscriptionClient', 'SubscriptionClientConfiguration'] - -from .version import VERSION - -__version__ = VERSION +__all__ = ['SubscriptionClient'] +try: + from ._patch import patch_sdk # type: ignore + patch_sdk() +except ImportError: + pass diff --git a/src/account/azext_account/vendored_sdks/subscription/_configuration.py b/src/account/azext_account/vendored_sdks/subscription/_configuration.py index ad45d175c06..b7302055ff8 100644 --- a/src/account/azext_account/vendored_sdks/subscription/_configuration.py +++ b/src/account/azext_account/vendored_sdks/subscription/_configuration.py @@ -1,43 +1,64 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from msrestazure import AzureConfiguration -from .version import VERSION +from typing import TYPE_CHECKING +from azure.core.configuration import Configuration +from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + + from azure.core.credentials import TokenCredential + +VERSION = "unknown" + +class SubscriptionClientConfiguration(Configuration): + """Configuration for SubscriptionClient. -class SubscriptionClientConfiguration(AzureConfiguration): - """Configuration for SubscriptionClient Note that all parameters used to create this instance are saved as instance attributes. - :param credentials: Credentials needed for the client to connect to Azure. - :type credentials: :mod:`A msrestazure Credentials - object` - :param str base_url: Service URL + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential """ def __init__( - self, credentials, base_url=None): - - if credentials is None: - raise ValueError("Parameter 'credentials' must not be None.") - if not base_url: - base_url = 'https://management.azure.com' - - super(SubscriptionClientConfiguration, self).__init__(base_url) - - # Starting Autorest.Python 4.0.64, make connection pool activated by default - self.keep_alive = True + self, + credential, # type: "TokenCredential" + **kwargs # type: Any + ): + # type: (...) -> None + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + super(SubscriptionClientConfiguration, self).__init__(**kwargs) - self.add_user_agent('azure-mgmt-subscription/{}'.format(VERSION)) - self.add_user_agent('Azure-SDK-For-Python') + self.credential = credential + self.credential_scopes = ['https://management.azure.com/.default'] + self.credential_scopes.extend(kwargs.pop('credential_scopes', [])) + kwargs.setdefault('sdk_moniker', 'subscriptionclient/{}'.format(VERSION)) + self._configure(**kwargs) - self.credentials = credentials + def _configure( + self, + **kwargs # type: Any + ): + # type: (...) -> None + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/src/account/azext_account/vendored_sdks/subscription/_subscription_client.py b/src/account/azext_account/vendored_sdks/subscription/_subscription_client.py index cda5db6c15b..d06f83460ca 100644 --- a/src/account/azext_account/vendored_sdks/subscription/_subscription_client.py +++ b/src/account/azext_account/vendored_sdks/subscription/_subscription_client.py @@ -1,57 +1,81 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from msrest.service_client import SDKClient -from msrest import Serializer, Deserializer +from typing import TYPE_CHECKING + +from azure.mgmt.core import ARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Optional + + from azure.core.credentials import TokenCredential from ._configuration import SubscriptionClientConfiguration from .operations import SubscriptionOperations -from .operations import SubscriptionOperationOperations -from .operations import Operations +from .operations import TenantOperations +from .operations import OperationOperations +from .operations import AliasOperations from . import models -class SubscriptionClient(SDKClient): - """The subscription client - - :ivar config: Configuration for client. - :vartype config: SubscriptionClientConfiguration - - :ivar subscription: Subscription operations - :vartype subscription: azure.mgmt.subscription.operations.SubscriptionOperations - :ivar subscription_operation: SubscriptionOperation operations - :vartype subscription_operation: azure.mgmt.subscription.operations.SubscriptionOperationOperations - :ivar operations: Operations operations - :vartype operations: azure.mgmt.subscription.operations.Operations +class SubscriptionClient(object): + """The subscription client. - :param credentials: Credentials needed for the client to connect to Azure. - :type credentials: :mod:`A msrestazure Credentials - object` + :ivar subscription: SubscriptionOperations operations + :vartype subscription: subscription_client.operations.SubscriptionOperations + :ivar tenant: TenantOperations operations + :vartype tenant: subscription_client.operations.TenantOperations + :ivar operation: OperationOperations operations + :vartype operation: subscription_client.operations.OperationOperations + :ivar alias: AliasOperations operations + :vartype alias: subscription_client.operations.AliasOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. """ def __init__( - self, credentials, base_url=None): - - self.config = SubscriptionClientConfiguration(credentials, base_url) - super(SubscriptionClient, self).__init__(self.config.credentials, self.config) + self, + credential, # type: "TokenCredential" + base_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> None + if not base_url: + base_url = 'https://management.azure.com' + self._config = SubscriptionClientConfiguration(credential, **kwargs) + self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self.api_version = '2019-10-01-preview' self._serialize = Serializer(client_models) self._deserialize = Deserializer(client_models) self.subscription = SubscriptionOperations( - self._client, self.config, self._serialize, self._deserialize) - self.subscription_operation = SubscriptionOperationOperations( - self._client, self.config, self._serialize, self._deserialize) - self.operations = Operations( - self._client, self.config, self._serialize, self._deserialize) + self._client, self._config, self._serialize, self._deserialize) + self.tenant = TenantOperations( + self._client, self._config, self._serialize, self._deserialize) + self.operation = OperationOperations( + self._client, self._config, self._serialize, self._deserialize) + self.alias = AliasOperations( + self._client, self._config, self._serialize, self._deserialize) + + def close(self): + # type: () -> None + self._client.close() + + def __enter__(self): + # type: () -> SubscriptionClient + self._client.__enter__() + return self + + def __exit__(self, *exc_details): + # type: (Any) -> None + self._client.__exit__(*exc_details) diff --git a/src/account/azext_account/vendored_sdks/subscription/aio/__init__.py b/src/account/azext_account/vendored_sdks/subscription/aio/__init__.py new file mode 100644 index 00000000000..345034cd293 --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/aio/__init__.py @@ -0,0 +1,10 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._subscription_client_async import SubscriptionClient +__all__ = ['SubscriptionClient'] diff --git a/src/account/azext_account/vendored_sdks/subscription/aio/_configuration_async.py b/src/account/azext_account/vendored_sdks/subscription/aio/_configuration_async.py new file mode 100644 index 00000000000..799e460b7d1 --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/aio/_configuration_async.py @@ -0,0 +1,60 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, TYPE_CHECKING + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +VERSION = "unknown" + +class SubscriptionClientConfiguration(Configuration): + """Configuration for SubscriptionClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + **kwargs: Any + ) -> None: + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + super(SubscriptionClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.credential_scopes = ['https://management.azure.com/.default'] + self.credential_scopes.extend(kwargs.pop('credential_scopes', [])) + kwargs.setdefault('sdk_moniker', 'subscriptionclient/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs: Any + ) -> None: + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/src/account/azext_account/vendored_sdks/subscription/aio/_subscription_client_async.py b/src/account/azext_account/vendored_sdks/subscription/aio/_subscription_client_async.py new file mode 100644 index 00000000000..92ce5f10d73 --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/aio/_subscription_client_async.py @@ -0,0 +1,75 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, Optional, TYPE_CHECKING + +from azure.mgmt.core import AsyncARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +from ._configuration_async import SubscriptionClientConfiguration +from .operations_async import SubscriptionOperations +from .operations_async import TenantOperations +from .operations_async import OperationOperations +from .operations_async import AliasOperations +from .. import models + + +class SubscriptionClient(object): + """The subscription client. + + :ivar subscription: SubscriptionOperations operations + :vartype subscription: subscription_client.aio.operations_async.SubscriptionOperations + :ivar tenant: TenantOperations operations + :vartype tenant: subscription_client.aio.operations_async.TenantOperations + :ivar operation: OperationOperations operations + :vartype operation: subscription_client.aio.operations_async.OperationOperations + :ivar alias: AliasOperations operations + :vartype alias: subscription_client.aio.operations_async.AliasOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + base_url: Optional[str] = None, + **kwargs: Any + ) -> None: + if not base_url: + base_url = 'https://management.azure.com' + self._config = SubscriptionClientConfiguration(credential, **kwargs) + self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.subscription = SubscriptionOperations( + self._client, self._config, self._serialize, self._deserialize) + self.tenant = TenantOperations( + self._client, self._config, self._serialize, self._deserialize) + self.operation = OperationOperations( + self._client, self._config, self._serialize, self._deserialize) + self.alias = AliasOperations( + self._client, self._config, self._serialize, self._deserialize) + + async def close(self) -> None: + await self._client.close() + + async def __aenter__(self) -> "SubscriptionClient": + await self._client.__aenter__() + return self + + async def __aexit__(self, *exc_details) -> None: + await self._client.__aexit__(*exc_details) diff --git a/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/__init__.py b/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/__init__.py new file mode 100644 index 00000000000..7aac3e6b7f8 --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/__init__.py @@ -0,0 +1,19 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._subscription_operations_async import SubscriptionOperations +from ._tenant_operations_async import TenantOperations +from ._operation_operations_async import OperationOperations +from ._alias_operations_async import AliasOperations + +__all__ = [ + 'SubscriptionOperations', + 'TenantOperations', + 'OperationOperations', + 'AliasOperations', +] diff --git a/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_alias_operations_async.py b/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_alias_operations_async.py new file mode 100644 index 00000000000..5b6584fd311 --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_alias_operations_async.py @@ -0,0 +1,301 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class AliasOperations: + """AliasOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~subscription_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def _create_initial( + self, + alias_name: str, + properties: "models.PutAliasRequestProperties", + **kwargs + ) -> "models.PutAliasResponse": + cls = kwargs.pop('cls', None) # type: ClsType["models.PutAliasResponse"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _body = models.PutAliasRequest(properties=properties) + api_version = "2020-09-01" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self._create_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'aliasName': self._serialize.url("alias_name", alias_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_body, 'PutAliasRequest') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponseBody, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('PutAliasResponse', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('PutAliasResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_initial.metadata = {'url': '/providers/Microsoft.Subscription/aliases/{aliasName}'} # type: ignore + + async def begin_create( + self, + alias_name: str, + properties: "models.PutAliasRequestProperties", + **kwargs + ) -> AsyncLROPoller["models.PutAliasResponse"]: + """Create Alias Subscription. + + :param alias_name: Alias Name. + :type alias_name: str + :param properties: Put alias request properties. + :type properties: ~subscription_client.models.PutAliasRequestProperties + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either PutAliasResponse or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~subscription_client.models.PutAliasResponse] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["models.PutAliasResponse"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._create_initial( + alias_name=alias_name, + properties=properties, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('PutAliasResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + if polling is True: polling_method = AsyncARMPolling(lro_delay, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create.metadata = {'url': '/providers/Microsoft.Subscription/aliases/{aliasName}'} # type: ignore + + async def get( + self, + alias_name: str, + **kwargs + ) -> "models.PutAliasResponse": + """Get Alias Subscription. + + :param alias_name: Alias Name. + :type alias_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PutAliasResponse, or the result of cls(response) + :rtype: ~subscription_client.models.PutAliasResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.PutAliasResponse"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'aliasName': self._serialize.url("alias_name", alias_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponseBody, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PutAliasResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/providers/Microsoft.Subscription/aliases/{aliasName}'} # type: ignore + + async def delete( + self, + alias_name: str, + **kwargs + ) -> None: + """Delete Alias. + + :param alias_name: Alias Name. + :type alias_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'aliasName': self._serialize.url("alias_name", alias_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponseBody, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/providers/Microsoft.Subscription/aliases/{aliasName}'} # type: ignore + + async def list( + self, + **kwargs + ) -> "models.PutAliasListResult": + """Get Alias Subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PutAliasListResult, or the result of cls(response) + :rtype: ~subscription_client.models.PutAliasListResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.PutAliasListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + + # Construct URL + url = self.list.metadata['url'] # type: ignore + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponseBody, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PutAliasListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list.metadata = {'url': '/providers/Microsoft.Subscription/aliases'} # type: ignore diff --git a/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_operation_operations_async.py b/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_operation_operations_async.py new file mode 100644 index 00000000000..25c797735e9 --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_operation_operations_async.py @@ -0,0 +1,85 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class OperationOperations: + """OperationOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~subscription_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def list( + self, + **kwargs + ) -> "models.OperationListResult": + """Lists all of the available Microsoft.Subscription API operations. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: OperationListResult, or the result of cls(response) + :rtype: ~subscription_client.models.OperationListResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + + # Construct URL + url = self.list.metadata['url'] # type: ignore + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('OperationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list.metadata = {'url': '/providers/Microsoft.Subscription/operations'} # type: ignore diff --git a/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_subscription_operations_async.py b/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_subscription_operations_async.py new file mode 100644 index 00000000000..287209147a0 --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_subscription_operations_async.py @@ -0,0 +1,384 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class SubscriptionOperations: + """SubscriptionOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~subscription_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list_location( + self, + subscription_id: str, + **kwargs + ) -> AsyncIterable["models.LocationListResult"]: + """Gets all available geo-locations. + + This operation provides all the locations that are available for resource providers; however, + each resource provider may support a subset of this list. + + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either LocationListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~subscription_client.models.LocationListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.LocationListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2016-06-01" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list_location.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('LocationListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_location.metadata = {'url': '/subscriptions/{subscriptionId}/locations'} # type: ignore + + async def get( + self, + subscription_id: str, + **kwargs + ) -> "models.Subscription": + """Gets details about a specified subscription. + + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Subscription, or the result of cls(response) + :rtype: ~subscription_client.models.Subscription + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.Subscription"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2016-06-01" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Subscription', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}'} # type: ignore + + def list( + self, + **kwargs + ) -> AsyncIterable["models.SubscriptionListResult"]: + """Gets all subscriptions for a tenant. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SubscriptionListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~subscription_client.models.SubscriptionListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.SubscriptionListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2016-06-01" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('SubscriptionListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions'} # type: ignore + + async def cancel( + self, + subscription_id: str, + **kwargs + ) -> "models.CanceledSubscriptionId": + """The operation to cancel a subscription. + + :param subscription_id: Subscription Id. + :type subscription_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CanceledSubscriptionId, or the result of cls(response) + :rtype: ~subscription_client.models.CanceledSubscriptionId + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.CanceledSubscriptionId"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + + # Construct URL + url = self.cancel.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.post(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('CanceledSubscriptionId', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + cancel.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/cancel'} # type: ignore + + async def rename( + self, + subscription_id: str, + subscription_name: Optional[str] = None, + **kwargs + ) -> "models.RenamedSubscriptionId": + """The operation to rename a subscription. + + :param subscription_id: Subscription Id. + :type subscription_id: str + :param subscription_name: New subscription name. + :type subscription_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RenamedSubscriptionId, or the result of cls(response) + :rtype: ~subscription_client.models.RenamedSubscriptionId + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.RenamedSubscriptionId"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _body = models.SubscriptionName(subscription_name=subscription_name) + api_version = "2020-09-01" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.rename.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_body, 'SubscriptionName') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('RenamedSubscriptionId', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + rename.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/rename'} # type: ignore + + async def enable( + self, + subscription_id: str, + **kwargs + ) -> "models.EnabledSubscriptionId": + """The operation to enable a subscription. + + :param subscription_id: Subscription Id. + :type subscription_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: EnabledSubscriptionId, or the result of cls(response) + :rtype: ~subscription_client.models.EnabledSubscriptionId + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.EnabledSubscriptionId"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + + # Construct URL + url = self.enable.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.post(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('EnabledSubscriptionId', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + enable.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/enable'} # type: ignore diff --git a/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_tenant_operations_async.py b/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_tenant_operations_async.py new file mode 100644 index 00000000000..06120525696 --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/aio/operations_async/_tenant_operations_async.py @@ -0,0 +1,101 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class TenantOperations: + """TenantOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~subscription_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs + ) -> AsyncIterable["models.TenantListResult"]: + """Gets the tenants for your account. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TenantListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~subscription_client.models.TenantListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.TenantListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2016-06-01" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('TenantListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/tenants'} # type: ignore diff --git a/src/account/azext_account/vendored_sdks/subscription/models/__init__.py b/src/account/azext_account/vendored_sdks/subscription/models/__init__.py index f2697f683e3..aa5146a991e 100644 --- a/src/account/azext_account/vendored_sdks/subscription/models/__init__.py +++ b/src/account/azext_account/vendored_sdks/subscription/models/__init__.py @@ -1,59 +1,87 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- try: - from ._models_py3 import AdPrincipal from ._models_py3 import CanceledSubscriptionId from ._models_py3 import EnabledSubscriptionId - from ._models_py3 import ErrorResponse, ErrorResponseException - from ._models_py3 import ModernCspSubscriptionCreationParameters - from ._models_py3 import ModernSubscriptionCreationParameters + from ._models_py3 import ErrorResponse + from ._models_py3 import ErrorResponseBody + from ._models_py3 import Location + from ._models_py3 import LocationListResult from ._models_py3 import Operation from ._models_py3 import OperationDisplay from ._models_py3 import OperationListResult + from ._models_py3 import PutAliasListResult + from ._models_py3 import PutAliasRequest + from ._models_py3 import PutAliasRequestProperties + from ._models_py3 import PutAliasResponse + from ._models_py3 import PutAliasResponseProperties from ._models_py3 import RenamedSubscriptionId - from ._models_py3 import SubscriptionCreationParameters - from ._models_py3 import SubscriptionCreationResult + from ._models_py3 import Subscription + from ._models_py3 import SubscriptionListResult from ._models_py3 import SubscriptionName + from ._models_py3 import SubscriptionPolicies + from ._models_py3 import TenantIdDescription + from ._models_py3 import TenantListResult except (SyntaxError, ImportError): - from ._models import AdPrincipal - from ._models import CanceledSubscriptionId - from ._models import EnabledSubscriptionId - from ._models import ErrorResponse, ErrorResponseException - from ._models import ModernCspSubscriptionCreationParameters - from ._models import ModernSubscriptionCreationParameters - from ._models import Operation - from ._models import OperationDisplay - from ._models import OperationListResult - from ._models import RenamedSubscriptionId - from ._models import SubscriptionCreationParameters - from ._models import SubscriptionCreationResult - from ._models import SubscriptionName + from ._models import CanceledSubscriptionId # type: ignore + from ._models import EnabledSubscriptionId # type: ignore + from ._models import ErrorResponse # type: ignore + from ._models import ErrorResponseBody # type: ignore + from ._models import Location # type: ignore + from ._models import LocationListResult # type: ignore + from ._models import Operation # type: ignore + from ._models import OperationDisplay # type: ignore + from ._models import OperationListResult # type: ignore + from ._models import PutAliasListResult # type: ignore + from ._models import PutAliasRequest # type: ignore + from ._models import PutAliasRequestProperties # type: ignore + from ._models import PutAliasResponse # type: ignore + from ._models import PutAliasResponseProperties # type: ignore + from ._models import RenamedSubscriptionId # type: ignore + from ._models import Subscription # type: ignore + from ._models import SubscriptionListResult # type: ignore + from ._models import SubscriptionName # type: ignore + from ._models import SubscriptionPolicies # type: ignore + from ._models import TenantIdDescription # type: ignore + from ._models import TenantListResult # type: ignore + from ._subscription_client_enums import ( - OfferType, + ProvisioningState, + SpendingLimit, + SubscriptionState, + Workload, ) __all__ = [ - 'AdPrincipal', 'CanceledSubscriptionId', 'EnabledSubscriptionId', - 'ErrorResponse', 'ErrorResponseException', - 'ModernCspSubscriptionCreationParameters', - 'ModernSubscriptionCreationParameters', + 'ErrorResponse', + 'ErrorResponseBody', + 'Location', + 'LocationListResult', 'Operation', 'OperationDisplay', 'OperationListResult', + 'PutAliasListResult', + 'PutAliasRequest', + 'PutAliasRequestProperties', + 'PutAliasResponse', + 'PutAliasResponseProperties', 'RenamedSubscriptionId', - 'SubscriptionCreationParameters', - 'SubscriptionCreationResult', + 'Subscription', + 'SubscriptionListResult', 'SubscriptionName', - 'OfferType', + 'SubscriptionPolicies', + 'TenantIdDescription', + 'TenantListResult', + 'ProvisioningState', + 'SpendingLimit', + 'SubscriptionState', + 'Workload', ] diff --git a/src/account/azext_account/vendored_sdks/subscription/models/_models.py b/src/account/azext_account/vendored_sdks/subscription/models/_models.py index f2d78844b32..5987788aaf3 100644 --- a/src/account/azext_account/vendored_sdks/subscription/models/_models.py +++ b/src/account/azext_account/vendored_sdks/subscription/models/_models.py @@ -1,47 +1,21 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from msrest.serialization import Model -from msrest.exceptions import HttpOperationError +from azure.core.exceptions import HttpResponseError +import msrest.serialization -class AdPrincipal(Model): - """Active Directory Principal who’ll get owner access on the new subscription. - - All required parameters must be populated in order to send to Azure. - - :param object_id: Required. Object id of the Principal - :type object_id: str - """ - - _validation = { - 'object_id': {'required': True}, - } - - _attribute_map = { - 'object_id': {'key': 'objectId', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(AdPrincipal, self).__init__(**kwargs) - self.object_id = kwargs.get('object_id', None) - - -class CanceledSubscriptionId(Model): +class CanceledSubscriptionId(msrest.serialization.Model): """The ID of the canceled subscription. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: The ID of the canceled subscription + :ivar value: The ID of the canceled subscription. :vartype value: str """ @@ -53,26 +27,20 @@ class CanceledSubscriptionId(Model): 'value': {'key': 'value', 'type': 'str'}, } - def __init__(self, **kwargs): + def __init__( + self, + **kwargs + ): super(CanceledSubscriptionId, self).__init__(**kwargs) self.value = None -class CloudError(Model): - """CloudError. - """ - - _attribute_map = { - } - - -class EnabledSubscriptionId(Model): +class EnabledSubscriptionId(msrest.serialization.Model): """The ID of the subscriptions that is being enabled. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: The ID of the subscriptions that is being enabled + :ivar value: The ID of the subscriptions that is being enabled. :vartype value: str """ @@ -84,15 +52,18 @@ class EnabledSubscriptionId(Model): 'value': {'key': 'value', 'type': 'str'}, } - def __init__(self, **kwargs): + def __init__( + self, + **kwargs + ): super(EnabledSubscriptionId, self).__init__(**kwargs) self.value = None -class ErrorResponse(Model): +class ErrorResponse(msrest.serialization.Model): """Describes the format of Error response. - :param code: Error code + :param code: Error code. :type code: str :param message: Error message indicating why the operation failed. :type message: str @@ -103,111 +74,111 @@ class ErrorResponse(Model): 'message': {'key': 'message', 'type': 'str'}, } - def __init__(self, **kwargs): + def __init__( + self, + **kwargs + ): super(ErrorResponse, self).__init__(**kwargs) self.code = kwargs.get('code', None) self.message = kwargs.get('message', None) -class ErrorResponseException(HttpOperationError): - """Server responsed with exception of type: 'ErrorResponse'. +class ErrorResponseBody(msrest.serialization.Model): + """Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message. - :param deserialize: A deserializer - :param response: Server response to be deserialized. + :param error: The details of the error. + :type error: ~subscription_client.models.ErrorResponse """ - def __init__(self, deserialize, response, *args): - - super(ErrorResponseException, self).__init__(deserialize, response, 'ErrorResponse', *args) - - -class ModernCspSubscriptionCreationParameters(Model): - """The parameters required to create a new CSP subscription. - - All required parameters must be populated in order to send to Azure. + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorResponse'}, + } - :param display_name: Required. The friendly name of the subscription. - :type display_name: str - :param sku_id: Required. The SKU ID of the Azure plan. Azure plan - determines the pricing and service-level agreement of the subscription. - Use 001 for Microsoft Azure Plan and 002 for Microsoft Azure Plan for - DevTest. - :type sku_id: str - :param reseller_id: Reseller ID, basically MPN Id. - :type reseller_id: str + def __init__( + self, + **kwargs + ): + super(ErrorResponseBody, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class Location(msrest.serialization.Model): + """Location information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The fully qualified ID of the location. For example, + /subscriptions/00000000-0000-0000-0000-000000000000/locations/westus. + :vartype id: str + :ivar subscription_id: The subscription ID. + :vartype subscription_id: str + :ivar name: The location name. + :vartype name: str + :ivar display_name: The display name of the location. + :vartype display_name: str + :ivar latitude: The latitude of the location. + :vartype latitude: str + :ivar longitude: The longitude of the location. + :vartype longitude: str """ _validation = { - 'display_name': {'required': True}, - 'sku_id': {'required': True}, + 'id': {'readonly': True}, + 'subscription_id': {'readonly': True}, + 'name': {'readonly': True}, + 'display_name': {'readonly': True}, + 'latitude': {'readonly': True}, + 'longitude': {'readonly': True}, } _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, 'display_name': {'key': 'displayName', 'type': 'str'}, - 'sku_id': {'key': 'skuId', 'type': 'str'}, - 'reseller_id': {'key': 'resellerId', 'type': 'str'}, + 'latitude': {'key': 'latitude', 'type': 'str'}, + 'longitude': {'key': 'longitude', 'type': 'str'}, } - def __init__(self, **kwargs): - super(ModernCspSubscriptionCreationParameters, self).__init__(**kwargs) - self.display_name = kwargs.get('display_name', None) - self.sku_id = kwargs.get('sku_id', None) - self.reseller_id = kwargs.get('reseller_id', None) + def __init__( + self, + **kwargs + ): + super(Location, self).__init__(**kwargs) + self.id = None + self.subscription_id = None + self.name = None + self.display_name = None + self.latitude = None + self.longitude = None -class ModernSubscriptionCreationParameters(Model): - """The parameters required to create a new subscription. +class LocationListResult(msrest.serialization.Model): + """Location list operation response. - All required parameters must be populated in order to send to Azure. - - :param display_name: Required. The friendly name of the subscription. - :type display_name: str - :param sku_id: Required. The SKU ID of the Azure plan. Azure plan - determines the pricing and service-level agreement of the subscription. - Use 001 for Microsoft Azure Plan and 002 for Microsoft Azure Plan for - DevTest. - :type sku_id: str - :param cost_center: If set, the cost center will show up on the Azure - usage and charges file. - :type cost_center: str - :param owner: If specified, the AD principal will get owner access to the - subscription, along with the user who is performing the create - subscription operation - :type owner: ~azure.mgmt.subscription.models.AdPrincipal - :param management_group_id: The identifier of the management group to - which this subscription will be associated. - :type management_group_id: str + :param value: An array of locations. + :type value: list[~subscription_client.models.Location] """ - _validation = { - 'display_name': {'required': True}, - 'sku_id': {'required': True}, - } - _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, - 'sku_id': {'key': 'skuId', 'type': 'str'}, - 'cost_center': {'key': 'costCenter', 'type': 'str'}, - 'owner': {'key': 'owner', 'type': 'AdPrincipal'}, - 'management_group_id': {'key': 'managementGroupId', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[Location]'}, } - def __init__(self, **kwargs): - super(ModernSubscriptionCreationParameters, self).__init__(**kwargs) - self.display_name = kwargs.get('display_name', None) - self.sku_id = kwargs.get('sku_id', None) - self.cost_center = kwargs.get('cost_center', None) - self.owner = kwargs.get('owner', None) - self.management_group_id = kwargs.get('management_group_id', None) + def __init__( + self, + **kwargs + ): + super(LocationListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) -class Operation(Model): +class Operation(msrest.serialization.Model): """REST API operation. - :param name: Operation name: {provider}/{resource}/{operation} + :param name: Operation name: {provider}/{resource}/{operation}. :type name: str :param display: The object that represents the operation. - :type display: ~azure.mgmt.subscription.models.OperationDisplay + :type display: ~subscription_client.models.OperationDisplay """ _attribute_map = { @@ -215,19 +186,21 @@ class Operation(Model): 'display': {'key': 'display', 'type': 'OperationDisplay'}, } - def __init__(self, **kwargs): + def __init__( + self, + **kwargs + ): super(Operation, self).__init__(**kwargs) self.name = kwargs.get('name', None) self.display = kwargs.get('display', None) -class OperationDisplay(Model): +class OperationDisplay(msrest.serialization.Model): """The object that represents the operation. - :param provider: Service provider: Microsoft.Subscription + :param provider: Service provider: Microsoft.Subscription. :type provider: str - :param resource: Resource on which the operation is performed: Profile, - endpoint, etc. + :param resource: Resource on which the operation is performed: Profile, endpoint, etc. :type resource: str :param operation: Operation type: Read, write, delete, etc. :type operation: str @@ -239,21 +212,22 @@ class OperationDisplay(Model): 'operation': {'key': 'operation', 'type': 'str'}, } - def __init__(self, **kwargs): + def __init__( + self, + **kwargs + ): super(OperationDisplay, self).__init__(**kwargs) self.provider = kwargs.get('provider', None) self.resource = kwargs.get('resource', None) self.operation = kwargs.get('operation', None) -class OperationListResult(Model): - """Result of the request to list operations. It contains a list of operations - and a URL link to get the next set of results. +class OperationListResult(msrest.serialization.Model): + """Result of the request to list operations. It contains a list of operations and a URL link to get the next set of results. :param value: List of operations. - :type value: list[~azure.mgmt.subscription.models.Operation] - :param next_link: URL to get the next set of operation list results if - there are any. + :type value: list[~subscription_client.models.Operation] + :param next_link: URL to get the next set of operation list results if there are any. :type next_link: str """ @@ -262,19 +236,181 @@ class OperationListResult(Model): 'next_link': {'key': 'nextLink', 'type': 'str'}, } - def __init__(self, **kwargs): + def __init__( + self, + **kwargs + ): super(OperationListResult, self).__init__(**kwargs) self.value = kwargs.get('value', None) self.next_link = kwargs.get('next_link', None) -class RenamedSubscriptionId(Model): +class PutAliasListResult(msrest.serialization.Model): + """The list of aliases. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: The list of alias. + :vartype value: list[~subscription_client.models.PutAliasResponse] + :ivar next_link: The link (url) to the next page of results. + :vartype next_link: str + """ + + _validation = { + 'value': {'readonly': True}, + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PutAliasResponse]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PutAliasListResult, self).__init__(**kwargs) + self.value = None + self.next_link = None + + +class PutAliasRequest(msrest.serialization.Model): + """The parameters required to create a new subscription. + + All required parameters must be populated in order to send to Azure. + + :param properties: Required. Put alias request properties. + :type properties: ~subscription_client.models.PutAliasRequestProperties + """ + + _validation = { + 'properties': {'required': True}, + } + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'PutAliasRequestProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(PutAliasRequest, self).__init__(**kwargs) + self.properties = kwargs['properties'] + + +class PutAliasRequestProperties(msrest.serialization.Model): + """Put subscription properties. + + All required parameters must be populated in order to send to Azure. + + :param display_name: Required. The friendly name of the subscription. + :type display_name: str + :param workload: Required. The workload type of the subscription. It can be either Production + or DevTest. Possible values include: "Production", "DevTest". + :type workload: str or ~subscription_client.models.Workload + :param billing_scope: Required. Determines whether subscription is fieldLed, partnerLed or + LegacyEA. + :type billing_scope: str + :param subscription_id: This parameter can be used to create alias for existing subscription + Id. + :type subscription_id: str + """ + + _attribute_map = { + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'workload': {'key': 'workload', 'type': 'str'}, + 'billing_scope': {'key': 'billingScope', 'type': 'str'}, + 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PutAliasRequestProperties, self).__init__(**kwargs) + self.display_name = kwargs['display_name'] + self.workload = kwargs['workload'] + self.billing_scope = kwargs['billing_scope'] + self.subscription_id = kwargs.get('subscription_id', None) + + +class PutAliasResponse(msrest.serialization.Model): + """Subscription Information with the alias. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified ID for the alias resource. + :vartype id: str + :ivar name: Alias ID. + :vartype name: str + :ivar type: Resource type, Microsoft.Subscription/aliases. + :vartype type: str + :param properties: Put Alias response properties. + :type properties: ~subscription_client.models.PutAliasResponseProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'PutAliasResponseProperties'}, + } + + def __init__( + self, + **kwargs + ): + super(PutAliasResponse, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.properties = kwargs.get('properties', None) + + +class PutAliasResponseProperties(msrest.serialization.Model): + """Put subscription creation result properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar subscription_id: Newly created subscription Id. + :vartype subscription_id: str + :param provisioning_state: The provisioning state of the resource. Possible values include: + "Accepted", "Succeeded", "Failed". + :type provisioning_state: str or ~subscription_client.models.ProvisioningState + """ + + _validation = { + 'subscription_id': {'readonly': True}, + } + + _attribute_map = { + 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(PutAliasResponseProperties, self).__init__(**kwargs) + self.subscription_id = None + self.provisioning_state = kwargs.get('provisioning_state', None) + + +class RenamedSubscriptionId(msrest.serialization.Model): """The ID of the subscriptions that is being renamed. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: The ID of the subscriptions that is being renamed + :ivar value: The ID of the subscriptions that is being renamed. :vartype value: str """ @@ -286,67 +422,99 @@ class RenamedSubscriptionId(Model): 'value': {'key': 'value', 'type': 'str'}, } - def __init__(self, **kwargs): + def __init__( + self, + **kwargs + ): super(RenamedSubscriptionId, self).__init__(**kwargs) self.value = None -class SubscriptionCreationParameters(Model): - """Subscription Creation Parameters required to create a new Azure - subscription. - - :param display_name: The display name of the subscription. - :type display_name: str - :param management_group_id: The Management Group Id. - :type management_group_id: str - :param owners: The list of principals that should be granted Owner access - on the subscription. Principals should be of type User, Service Principal - or Security Group. - :type owners: list[~azure.mgmt.subscription.models.AdPrincipal] - :param offer_type: The offer type of the subscription. For example, - MS-AZR-0017P (EnterpriseAgreement) and MS-AZR-0148P (EnterpriseAgreement - devTest) are available. Only valid when creating a subscription in a - enrollment account scope. Possible values include: 'MS-AZR-0017P', - 'MS-AZR-0148P' - :type offer_type: str or ~azure.mgmt.subscription.models.OfferType +class Subscription(msrest.serialization.Model): + """Subscription information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The fully qualified ID for the subscription. For example, + /subscriptions/00000000-0000-0000-0000-000000000000. + :vartype id: str + :ivar subscription_id: The subscription ID. + :vartype subscription_id: str + :ivar display_name: The subscription display name. + :vartype display_name: str + :ivar state: The subscription state. Possible values are Enabled, Warned, PastDue, Disabled, + and Deleted. Possible values include: "Enabled", "Warned", "PastDue", "Disabled", "Deleted". + :vartype state: str or ~subscription_client.models.SubscriptionState + :param subscription_policies: The subscription policies. + :type subscription_policies: ~subscription_client.models.SubscriptionPolicies + :param authorization_source: The authorization source of the request. Valid values are one or + more combinations of Legacy, RoleBased, Bypassed, Direct and Management. For example, 'Legacy, + RoleBased'. + :type authorization_source: str """ + _validation = { + 'id': {'readonly': True}, + 'subscription_id': {'readonly': True}, + 'display_name': {'readonly': True}, + 'state': {'readonly': True}, + } + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, 'display_name': {'key': 'displayName', 'type': 'str'}, - 'management_group_id': {'key': 'managementGroupId', 'type': 'str'}, - 'owners': {'key': 'owners', 'type': '[AdPrincipal]'}, - 'offer_type': {'key': 'offerType', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + 'subscription_policies': {'key': 'subscriptionPolicies', 'type': 'SubscriptionPolicies'}, + 'authorization_source': {'key': 'authorizationSource', 'type': 'str'}, } - def __init__(self, **kwargs): - super(SubscriptionCreationParameters, self).__init__(**kwargs) - self.display_name = kwargs.get('display_name', None) - self.management_group_id = kwargs.get('management_group_id', None) - self.owners = kwargs.get('owners', None) - self.offer_type = kwargs.get('offer_type', None) + def __init__( + self, + **kwargs + ): + super(Subscription, self).__init__(**kwargs) + self.id = None + self.subscription_id = None + self.display_name = None + self.state = None + self.subscription_policies = kwargs.get('subscription_policies', None) + self.authorization_source = kwargs.get('authorization_source', None) -class SubscriptionCreationResult(Model): - """The created subscription object. +class SubscriptionListResult(msrest.serialization.Model): + """Subscription list operation response. - :param subscription_link: The link to the new subscription. Use this link - to check the status of subscription creation operation. - :type subscription_link: str + All required parameters must be populated in order to send to Azure. + + :param value: An array of subscriptions. + :type value: list[~subscription_client.models.Subscription] + :param next_link: Required. The URL to get the next set of results. + :type next_link: str """ + _validation = { + 'next_link': {'required': True}, + } + _attribute_map = { - 'subscription_link': {'key': 'subscriptionLink', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[Subscription]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } - def __init__(self, **kwargs): - super(SubscriptionCreationResult, self).__init__(**kwargs) - self.subscription_link = kwargs.get('subscription_link', None) + def __init__( + self, + **kwargs + ): + super(SubscriptionListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = kwargs['next_link'] -class SubscriptionName(Model): +class SubscriptionName(msrest.serialization.Model): """The new name of the subscription. - :param subscription_name: New subscription name + :param subscription_name: New subscription name. :type subscription_name: str """ @@ -354,6 +522,107 @@ class SubscriptionName(Model): 'subscription_name': {'key': 'subscriptionName', 'type': 'str'}, } - def __init__(self, **kwargs): + def __init__( + self, + **kwargs + ): super(SubscriptionName, self).__init__(**kwargs) self.subscription_name = kwargs.get('subscription_name', None) + + +class SubscriptionPolicies(msrest.serialization.Model): + """Subscription policies. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar location_placement_id: The subscription location placement ID. The ID indicates which + regions are visible for a subscription. For example, a subscription with a location placement + Id of Public_2014-09-01 has access to Azure public regions. + :vartype location_placement_id: str + :ivar quota_id: The subscription quota ID. + :vartype quota_id: str + :ivar spending_limit: The subscription spending limit. Possible values include: "On", "Off", + "CurrentPeriodOff". + :vartype spending_limit: str or ~subscription_client.models.SpendingLimit + """ + + _validation = { + 'location_placement_id': {'readonly': True}, + 'quota_id': {'readonly': True}, + 'spending_limit': {'readonly': True}, + } + + _attribute_map = { + 'location_placement_id': {'key': 'locationPlacementId', 'type': 'str'}, + 'quota_id': {'key': 'quotaId', 'type': 'str'}, + 'spending_limit': {'key': 'spendingLimit', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SubscriptionPolicies, self).__init__(**kwargs) + self.location_placement_id = None + self.quota_id = None + self.spending_limit = None + + +class TenantIdDescription(msrest.serialization.Model): + """Tenant Id information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The fully qualified ID of the tenant. For example, + /tenants/00000000-0000-0000-0000-000000000000. + :vartype id: str + :ivar tenant_id: The tenant ID. For example, 00000000-0000-0000-0000-000000000000. + :vartype tenant_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TenantIdDescription, self).__init__(**kwargs) + self.id = None + self.tenant_id = None + + +class TenantListResult(msrest.serialization.Model): + """Tenant Ids information. + + All required parameters must be populated in order to send to Azure. + + :param value: An array of tenants. + :type value: list[~subscription_client.models.TenantIdDescription] + :param next_link: Required. The URL to use for getting the next set of results. + :type next_link: str + """ + + _validation = { + 'next_link': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TenantIdDescription]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TenantListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = kwargs['next_link'] diff --git a/src/account/azext_account/vendored_sdks/subscription/models/_models_py3.py b/src/account/azext_account/vendored_sdks/subscription/models/_models_py3.py index 426f15a0863..5f0dee7a2cb 100644 --- a/src/account/azext_account/vendored_sdks/subscription/models/_models_py3.py +++ b/src/account/azext_account/vendored_sdks/subscription/models/_models_py3.py @@ -1,47 +1,25 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from msrest.serialization import Model -from msrest.exceptions import HttpOperationError +from typing import List, Optional, Union +from azure.core.exceptions import HttpResponseError +import msrest.serialization -class AdPrincipal(Model): - """Active Directory Principal who’ll get owner access on the new subscription. +from ._subscription_client_enums import * - All required parameters must be populated in order to send to Azure. - - :param object_id: Required. Object id of the Principal - :type object_id: str - """ - - _validation = { - 'object_id': {'required': True}, - } - - _attribute_map = { - 'object_id': {'key': 'objectId', 'type': 'str'}, - } - - def __init__(self, *, object_id: str, **kwargs) -> None: - super(AdPrincipal, self).__init__(**kwargs) - self.object_id = object_id - -class CanceledSubscriptionId(Model): +class CanceledSubscriptionId(msrest.serialization.Model): """The ID of the canceled subscription. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: The ID of the canceled subscription + :ivar value: The ID of the canceled subscription. :vartype value: str """ @@ -53,26 +31,20 @@ class CanceledSubscriptionId(Model): 'value': {'key': 'value', 'type': 'str'}, } - def __init__(self, **kwargs) -> None: + def __init__( + self, + **kwargs + ): super(CanceledSubscriptionId, self).__init__(**kwargs) self.value = None -class CloudError(Model): - """CloudError. - """ - - _attribute_map = { - } - - -class EnabledSubscriptionId(Model): +class EnabledSubscriptionId(msrest.serialization.Model): """The ID of the subscriptions that is being enabled. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: The ID of the subscriptions that is being enabled + :ivar value: The ID of the subscriptions that is being enabled. :vartype value: str """ @@ -84,15 +56,18 @@ class EnabledSubscriptionId(Model): 'value': {'key': 'value', 'type': 'str'}, } - def __init__(self, **kwargs) -> None: + def __init__( + self, + **kwargs + ): super(EnabledSubscriptionId, self).__init__(**kwargs) self.value = None -class ErrorResponse(Model): +class ErrorResponse(msrest.serialization.Model): """Describes the format of Error response. - :param code: Error code + :param code: Error code. :type code: str :param message: Error message indicating why the operation failed. :type message: str @@ -103,111 +78,118 @@ class ErrorResponse(Model): 'message': {'key': 'message', 'type': 'str'}, } - def __init__(self, *, code: str=None, message: str=None, **kwargs) -> None: + def __init__( + self, + *, + code: Optional[str] = None, + message: Optional[str] = None, + **kwargs + ): super(ErrorResponse, self).__init__(**kwargs) self.code = code self.message = message -class ErrorResponseException(HttpOperationError): - """Server responsed with exception of type: 'ErrorResponse'. +class ErrorResponseBody(msrest.serialization.Model): + """Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message. - :param deserialize: A deserializer - :param response: Server response to be deserialized. + :param error: The details of the error. + :type error: ~subscription_client.models.ErrorResponse """ - def __init__(self, deserialize, response, *args): - - super(ErrorResponseException, self).__init__(deserialize, response, 'ErrorResponse', *args) - - -class ModernCspSubscriptionCreationParameters(Model): - """The parameters required to create a new CSP subscription. - - All required parameters must be populated in order to send to Azure. + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorResponse'}, + } - :param display_name: Required. The friendly name of the subscription. - :type display_name: str - :param sku_id: Required. The SKU ID of the Azure plan. Azure plan - determines the pricing and service-level agreement of the subscription. - Use 001 for Microsoft Azure Plan and 002 for Microsoft Azure Plan for - DevTest. - :type sku_id: str - :param reseller_id: Reseller ID, basically MPN Id. - :type reseller_id: str + def __init__( + self, + *, + error: Optional["ErrorResponse"] = None, + **kwargs + ): + super(ErrorResponseBody, self).__init__(**kwargs) + self.error = error + + +class Location(msrest.serialization.Model): + """Location information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The fully qualified ID of the location. For example, + /subscriptions/00000000-0000-0000-0000-000000000000/locations/westus. + :vartype id: str + :ivar subscription_id: The subscription ID. + :vartype subscription_id: str + :ivar name: The location name. + :vartype name: str + :ivar display_name: The display name of the location. + :vartype display_name: str + :ivar latitude: The latitude of the location. + :vartype latitude: str + :ivar longitude: The longitude of the location. + :vartype longitude: str """ _validation = { - 'display_name': {'required': True}, - 'sku_id': {'required': True}, + 'id': {'readonly': True}, + 'subscription_id': {'readonly': True}, + 'name': {'readonly': True}, + 'display_name': {'readonly': True}, + 'latitude': {'readonly': True}, + 'longitude': {'readonly': True}, } _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, 'display_name': {'key': 'displayName', 'type': 'str'}, - 'sku_id': {'key': 'skuId', 'type': 'str'}, - 'reseller_id': {'key': 'resellerId', 'type': 'str'}, + 'latitude': {'key': 'latitude', 'type': 'str'}, + 'longitude': {'key': 'longitude', 'type': 'str'}, } - def __init__(self, *, display_name: str, sku_id: str, reseller_id: str=None, **kwargs) -> None: - super(ModernCspSubscriptionCreationParameters, self).__init__(**kwargs) - self.display_name = display_name - self.sku_id = sku_id - self.reseller_id = reseller_id + def __init__( + self, + **kwargs + ): + super(Location, self).__init__(**kwargs) + self.id = None + self.subscription_id = None + self.name = None + self.display_name = None + self.latitude = None + self.longitude = None -class ModernSubscriptionCreationParameters(Model): - """The parameters required to create a new subscription. - - All required parameters must be populated in order to send to Azure. +class LocationListResult(msrest.serialization.Model): + """Location list operation response. - :param display_name: Required. The friendly name of the subscription. - :type display_name: str - :param sku_id: Required. The SKU ID of the Azure plan. Azure plan - determines the pricing and service-level agreement of the subscription. - Use 001 for Microsoft Azure Plan and 002 for Microsoft Azure Plan for - DevTest. - :type sku_id: str - :param cost_center: If set, the cost center will show up on the Azure - usage and charges file. - :type cost_center: str - :param owner: If specified, the AD principal will get owner access to the - subscription, along with the user who is performing the create - subscription operation - :type owner: ~azure.mgmt.subscription.models.AdPrincipal - :param management_group_id: The identifier of the management group to - which this subscription will be associated. - :type management_group_id: str + :param value: An array of locations. + :type value: list[~subscription_client.models.Location] """ - _validation = { - 'display_name': {'required': True}, - 'sku_id': {'required': True}, - } - _attribute_map = { - 'display_name': {'key': 'displayName', 'type': 'str'}, - 'sku_id': {'key': 'skuId', 'type': 'str'}, - 'cost_center': {'key': 'costCenter', 'type': 'str'}, - 'owner': {'key': 'owner', 'type': 'AdPrincipal'}, - 'management_group_id': {'key': 'managementGroupId', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[Location]'}, } - def __init__(self, *, display_name: str, sku_id: str, cost_center: str=None, owner=None, management_group_id: str=None, **kwargs) -> None: - super(ModernSubscriptionCreationParameters, self).__init__(**kwargs) - self.display_name = display_name - self.sku_id = sku_id - self.cost_center = cost_center - self.owner = owner - self.management_group_id = management_group_id + def __init__( + self, + *, + value: Optional[List["Location"]] = None, + **kwargs + ): + super(LocationListResult, self).__init__(**kwargs) + self.value = value -class Operation(Model): +class Operation(msrest.serialization.Model): """REST API operation. - :param name: Operation name: {provider}/{resource}/{operation} + :param name: Operation name: {provider}/{resource}/{operation}. :type name: str :param display: The object that represents the operation. - :type display: ~azure.mgmt.subscription.models.OperationDisplay + :type display: ~subscription_client.models.OperationDisplay """ _attribute_map = { @@ -215,19 +197,24 @@ class Operation(Model): 'display': {'key': 'display', 'type': 'OperationDisplay'}, } - def __init__(self, *, name: str=None, display=None, **kwargs) -> None: + def __init__( + self, + *, + name: Optional[str] = None, + display: Optional["OperationDisplay"] = None, + **kwargs + ): super(Operation, self).__init__(**kwargs) self.name = name self.display = display -class OperationDisplay(Model): +class OperationDisplay(msrest.serialization.Model): """The object that represents the operation. - :param provider: Service provider: Microsoft.Subscription + :param provider: Service provider: Microsoft.Subscription. :type provider: str - :param resource: Resource on which the operation is performed: Profile, - endpoint, etc. + :param resource: Resource on which the operation is performed: Profile, endpoint, etc. :type resource: str :param operation: Operation type: Read, write, delete, etc. :type operation: str @@ -239,21 +226,26 @@ class OperationDisplay(Model): 'operation': {'key': 'operation', 'type': 'str'}, } - def __init__(self, *, provider: str=None, resource: str=None, operation: str=None, **kwargs) -> None: + def __init__( + self, + *, + provider: Optional[str] = None, + resource: Optional[str] = None, + operation: Optional[str] = None, + **kwargs + ): super(OperationDisplay, self).__init__(**kwargs) self.provider = provider self.resource = resource self.operation = operation -class OperationListResult(Model): - """Result of the request to list operations. It contains a list of operations - and a URL link to get the next set of results. +class OperationListResult(msrest.serialization.Model): + """Result of the request to list operations. It contains a list of operations and a URL link to get the next set of results. :param value: List of operations. - :type value: list[~azure.mgmt.subscription.models.Operation] - :param next_link: URL to get the next set of operation list results if - there are any. + :type value: list[~subscription_client.models.Operation] + :param next_link: URL to get the next set of operation list results if there are any. :type next_link: str """ @@ -262,91 +254,305 @@ class OperationListResult(Model): 'next_link': {'key': 'nextLink', 'type': 'str'}, } - def __init__(self, *, value=None, next_link: str=None, **kwargs) -> None: + def __init__( + self, + *, + value: Optional[List["Operation"]] = None, + next_link: Optional[str] = None, + **kwargs + ): super(OperationListResult, self).__init__(**kwargs) self.value = value self.next_link = next_link -class RenamedSubscriptionId(Model): - """The ID of the subscriptions that is being renamed. +class PutAliasListResult(msrest.serialization.Model): + """The list of aliases. - Variables are only populated by the server, and will be ignored when - sending a request. + Variables are only populated by the server, and will be ignored when sending a request. - :ivar value: The ID of the subscriptions that is being renamed - :vartype value: str + :ivar value: The list of alias. + :vartype value: list[~subscription_client.models.PutAliasResponse] + :ivar next_link: The link (url) to the next page of results. + :vartype next_link: str """ _validation = { 'value': {'readonly': True}, + 'next_link': {'readonly': True}, } _attribute_map = { - 'value': {'key': 'value', 'type': 'str'}, + 'value': {'key': 'value', 'type': '[PutAliasResponse]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, } - def __init__(self, **kwargs) -> None: - super(RenamedSubscriptionId, self).__init__(**kwargs) + def __init__( + self, + **kwargs + ): + super(PutAliasListResult, self).__init__(**kwargs) self.value = None + self.next_link = None + + +class PutAliasRequest(msrest.serialization.Model): + """The parameters required to create a new subscription. + + All required parameters must be populated in order to send to Azure. + + :param properties: Required. Put alias request properties. + :type properties: ~subscription_client.models.PutAliasRequestProperties + """ + + _validation = { + 'properties': {'required': True}, + } + + _attribute_map = { + 'properties': {'key': 'properties', 'type': 'PutAliasRequestProperties'}, + } + + def __init__( + self, + *, + properties: "PutAliasRequestProperties", + **kwargs + ): + super(PutAliasRequest, self).__init__(**kwargs) + self.properties = properties -class SubscriptionCreationParameters(Model): - """Subscription Creation Parameters required to create a new Azure - subscription. +class PutAliasRequestProperties(msrest.serialization.Model): + """Put subscription properties. + + All required parameters must be populated in order to send to Azure. - :param display_name: The display name of the subscription. + :param display_name: Required. The friendly name of the subscription. :type display_name: str - :param management_group_id: The Management Group Id. - :type management_group_id: str - :param owners: The list of principals that should be granted Owner access - on the subscription. Principals should be of type User, Service Principal - or Security Group. - :type owners: list[~azure.mgmt.subscription.models.AdPrincipal] - :param offer_type: The offer type of the subscription. For example, - MS-AZR-0017P (EnterpriseAgreement) and MS-AZR-0148P (EnterpriseAgreement - devTest) are available. Only valid when creating a subscription in a - enrollment account scope. Possible values include: 'MS-AZR-0017P', - 'MS-AZR-0148P' - :type offer_type: str or ~azure.mgmt.subscription.models.OfferType + :param workload: Required. The workload type of the subscription. It can be either Production + or DevTest. Possible values include: "Production", "DevTest". + :type workload: str or ~subscription_client.models.Workload + :param billing_scope: Required. Determines whether subscription is fieldLed, partnerLed or + LegacyEA. + :type billing_scope: str + :param subscription_id: This parameter can be used to create alias for existing subscription + Id. + :type subscription_id: str """ _attribute_map = { 'display_name': {'key': 'displayName', 'type': 'str'}, - 'management_group_id': {'key': 'managementGroupId', 'type': 'str'}, - 'owners': {'key': 'owners', 'type': '[AdPrincipal]'}, - 'offer_type': {'key': 'offerType', 'type': 'str'}, + 'workload': {'key': 'workload', 'type': 'str'}, + 'billing_scope': {'key': 'billingScope', 'type': 'str'}, + 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, } - def __init__(self, *, display_name: str=None, management_group_id: str=None, owners=None, offer_type=None, **kwargs) -> None: - super(SubscriptionCreationParameters, self).__init__(**kwargs) + def __init__( + self, + *, + display_name: str, + workload: Union[str, "Workload"], + billing_scope: str, + subscription_id: Optional[str] = None, + **kwargs + ): + super(PutAliasRequestProperties, self).__init__(**kwargs) self.display_name = display_name - self.management_group_id = management_group_id - self.owners = owners - self.offer_type = offer_type + self.workload = workload + self.billing_scope = billing_scope + self.subscription_id = subscription_id + + +class PutAliasResponse(msrest.serialization.Model): + """Subscription Information with the alias. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified ID for the alias resource. + :vartype id: str + :ivar name: Alias ID. + :vartype name: str + :ivar type: Resource type, Microsoft.Subscription/aliases. + :vartype type: str + :param properties: Put Alias response properties. + :type properties: ~subscription_client.models.PutAliasResponseProperties + """ + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } -class SubscriptionCreationResult(Model): - """The created subscription object. + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'PutAliasResponseProperties'}, + } - :param subscription_link: The link to the new subscription. Use this link - to check the status of subscription creation operation. - :type subscription_link: str + def __init__( + self, + *, + properties: Optional["PutAliasResponseProperties"] = None, + **kwargs + ): + super(PutAliasResponse, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.properties = properties + + +class PutAliasResponseProperties(msrest.serialization.Model): + """Put subscription creation result properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar subscription_id: Newly created subscription Id. + :vartype subscription_id: str + :param provisioning_state: The provisioning state of the resource. Possible values include: + "Accepted", "Succeeded", "Failed". + :type provisioning_state: str or ~subscription_client.models.ProvisioningState """ + _validation = { + 'subscription_id': {'readonly': True}, + } + _attribute_map = { - 'subscription_link': {'key': 'subscriptionLink', 'type': 'str'}, + 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, } - def __init__(self, *, subscription_link: str=None, **kwargs) -> None: - super(SubscriptionCreationResult, self).__init__(**kwargs) - self.subscription_link = subscription_link + def __init__( + self, + *, + provisioning_state: Optional[Union[str, "ProvisioningState"]] = None, + **kwargs + ): + super(PutAliasResponseProperties, self).__init__(**kwargs) + self.subscription_id = None + self.provisioning_state = provisioning_state + +class RenamedSubscriptionId(msrest.serialization.Model): + """The ID of the subscriptions that is being renamed. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: The ID of the subscriptions that is being renamed. + :vartype value: str + """ -class SubscriptionName(Model): + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(RenamedSubscriptionId, self).__init__(**kwargs) + self.value = None + + +class Subscription(msrest.serialization.Model): + """Subscription information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The fully qualified ID for the subscription. For example, + /subscriptions/00000000-0000-0000-0000-000000000000. + :vartype id: str + :ivar subscription_id: The subscription ID. + :vartype subscription_id: str + :ivar display_name: The subscription display name. + :vartype display_name: str + :ivar state: The subscription state. Possible values are Enabled, Warned, PastDue, Disabled, + and Deleted. Possible values include: "Enabled", "Warned", "PastDue", "Disabled", "Deleted". + :vartype state: str or ~subscription_client.models.SubscriptionState + :param subscription_policies: The subscription policies. + :type subscription_policies: ~subscription_client.models.SubscriptionPolicies + :param authorization_source: The authorization source of the request. Valid values are one or + more combinations of Legacy, RoleBased, Bypassed, Direct and Management. For example, 'Legacy, + RoleBased'. + :type authorization_source: str + """ + + _validation = { + 'id': {'readonly': True}, + 'subscription_id': {'readonly': True}, + 'display_name': {'readonly': True}, + 'state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'subscription_id': {'key': 'subscriptionId', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + 'subscription_policies': {'key': 'subscriptionPolicies', 'type': 'SubscriptionPolicies'}, + 'authorization_source': {'key': 'authorizationSource', 'type': 'str'}, + } + + def __init__( + self, + *, + subscription_policies: Optional["SubscriptionPolicies"] = None, + authorization_source: Optional[str] = None, + **kwargs + ): + super(Subscription, self).__init__(**kwargs) + self.id = None + self.subscription_id = None + self.display_name = None + self.state = None + self.subscription_policies = subscription_policies + self.authorization_source = authorization_source + + +class SubscriptionListResult(msrest.serialization.Model): + """Subscription list operation response. + + All required parameters must be populated in order to send to Azure. + + :param value: An array of subscriptions. + :type value: list[~subscription_client.models.Subscription] + :param next_link: Required. The URL to get the next set of results. + :type next_link: str + """ + + _validation = { + 'next_link': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Subscription]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + next_link: str, + value: Optional[List["Subscription"]] = None, + **kwargs + ): + super(SubscriptionListResult, self).__init__(**kwargs) + self.value = value + self.next_link = next_link + + +class SubscriptionName(msrest.serialization.Model): """The new name of the subscription. - :param subscription_name: New subscription name + :param subscription_name: New subscription name. :type subscription_name: str """ @@ -354,6 +560,112 @@ class SubscriptionName(Model): 'subscription_name': {'key': 'subscriptionName', 'type': 'str'}, } - def __init__(self, *, subscription_name: str=None, **kwargs) -> None: + def __init__( + self, + *, + subscription_name: Optional[str] = None, + **kwargs + ): super(SubscriptionName, self).__init__(**kwargs) self.subscription_name = subscription_name + + +class SubscriptionPolicies(msrest.serialization.Model): + """Subscription policies. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar location_placement_id: The subscription location placement ID. The ID indicates which + regions are visible for a subscription. For example, a subscription with a location placement + Id of Public_2014-09-01 has access to Azure public regions. + :vartype location_placement_id: str + :ivar quota_id: The subscription quota ID. + :vartype quota_id: str + :ivar spending_limit: The subscription spending limit. Possible values include: "On", "Off", + "CurrentPeriodOff". + :vartype spending_limit: str or ~subscription_client.models.SpendingLimit + """ + + _validation = { + 'location_placement_id': {'readonly': True}, + 'quota_id': {'readonly': True}, + 'spending_limit': {'readonly': True}, + } + + _attribute_map = { + 'location_placement_id': {'key': 'locationPlacementId', 'type': 'str'}, + 'quota_id': {'key': 'quotaId', 'type': 'str'}, + 'spending_limit': {'key': 'spendingLimit', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(SubscriptionPolicies, self).__init__(**kwargs) + self.location_placement_id = None + self.quota_id = None + self.spending_limit = None + + +class TenantIdDescription(msrest.serialization.Model): + """Tenant Id information. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: The fully qualified ID of the tenant. For example, + /tenants/00000000-0000-0000-0000-000000000000. + :vartype id: str + :ivar tenant_id: The tenant ID. For example, 00000000-0000-0000-0000-000000000000. + :vartype tenant_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TenantIdDescription, self).__init__(**kwargs) + self.id = None + self.tenant_id = None + + +class TenantListResult(msrest.serialization.Model): + """Tenant Ids information. + + All required parameters must be populated in order to send to Azure. + + :param value: An array of tenants. + :type value: list[~subscription_client.models.TenantIdDescription] + :param next_link: Required. The URL to use for getting the next set of results. + :type next_link: str + """ + + _validation = { + 'next_link': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[TenantIdDescription]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + next_link: str, + value: Optional[List["TenantIdDescription"]] = None, + **kwargs + ): + super(TenantListResult, self).__init__(**kwargs) + self.value = value + self.next_link = next_link diff --git a/src/account/azext_account/vendored_sdks/subscription/models/_subscription_client_enums.py b/src/account/azext_account/vendored_sdks/subscription/models/_subscription_client_enums.py index e3cb19de0f9..18d7d3d3fcc 100644 --- a/src/account/azext_account/vendored_sdks/subscription/models/_subscription_client_enums.py +++ b/src/account/azext_account/vendored_sdks/subscription/models/_subscription_client_enums.py @@ -1,18 +1,60 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from enum import Enum +from enum import Enum, EnumMeta +from six import with_metaclass +class _CaseInsensitiveEnumMeta(EnumMeta): + def __getitem__(self, name): + return super().__getitem__(name.upper()) -class OfferType(str, Enum): + def __getattr__(cls, name): + """Return the enum member matching `name` + We use __getattr__ instead of descriptors or inserting into the enum + class' __dict__ in order to support `name` and `value` being both + properties for enum members (which live in the class' __dict__) and + enum members themselves. + """ + try: + return cls._member_map_[name.upper()] + except KeyError: + raise AttributeError(name) - ms_azr_0017_p = "MS-AZR-0017P" - ms_azr_0148_p = "MS-AZR-0148P" + +class ProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The provisioning state of the resource. + """ + + ACCEPTED = "Accepted" + SUCCEEDED = "Succeeded" + FAILED = "Failed" + +class SpendingLimit(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The subscription spending limit. + """ + + ON = "On" + OFF = "Off" + CURRENT_PERIOD_OFF = "CurrentPeriodOff" + +class SubscriptionState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The subscription state. Possible values are Enabled, Warned, PastDue, Disabled, and Deleted. + """ + + ENABLED = "Enabled" + WARNED = "Warned" + PAST_DUE = "PastDue" + DISABLED = "Disabled" + DELETED = "Deleted" + +class Workload(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The workload type of the subscription. It can be either Production or DevTest. + """ + + PRODUCTION = "Production" + DEV_TEST = "DevTest" diff --git a/src/account/azext_account/vendored_sdks/subscription/operations/__init__.py b/src/account/azext_account/vendored_sdks/subscription/operations/__init__.py index c3d7eb6308b..7b42bb434c7 100644 --- a/src/account/azext_account/vendored_sdks/subscription/operations/__init__.py +++ b/src/account/azext_account/vendored_sdks/subscription/operations/__init__.py @@ -1,20 +1,19 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- from ._subscription_operations import SubscriptionOperations -from ._subscription_operation_operations import SubscriptionOperationOperations -from ._operations import Operations +from ._tenant_operations import TenantOperations +from ._operation_operations import OperationOperations +from ._alias_operations import AliasOperations __all__ = [ 'SubscriptionOperations', - 'SubscriptionOperationOperations', - 'Operations', + 'TenantOperations', + 'OperationOperations', + 'AliasOperations', ] diff --git a/src/account/azext_account/vendored_sdks/subscription/operations/_alias_operations.py b/src/account/azext_account/vendored_sdks/subscription/operations/_alias_operations.py new file mode 100644 index 00000000000..6fcfec9abc2 --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/operations/_alias_operations.py @@ -0,0 +1,310 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class AliasOperations(object): + """AliasOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~subscription_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def _create_initial( + self, + alias_name, # type: str + properties, # type: "models.PutAliasRequestProperties" + **kwargs # type: Any + ): + # type: (...) -> "models.PutAliasResponse" + cls = kwargs.pop('cls', None) # type: ClsType["models.PutAliasResponse"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _body = models.PutAliasRequest(properties=properties) + api_version = "2020-09-01" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self._create_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'aliasName': self._serialize.url("alias_name", alias_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_body, 'PutAliasRequest') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponseBody, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize('PutAliasResponse', pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize('PutAliasResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_initial.metadata = {'url': '/providers/Microsoft.Subscription/aliases/{aliasName}'} # type: ignore + + def begin_create( + self, + alias_name, # type: str + properties, # type: "models.PutAliasRequestProperties" + **kwargs # type: Any + ): + # type: (...) -> LROPoller["models.PutAliasResponse"] + """Create Alias Subscription. + + :param alias_name: Alias Name. + :type alias_name: str + :param properties: Put alias request properties. + :type properties: ~subscription_client.models.PutAliasRequestProperties + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either PutAliasResponse or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~subscription_client.models.PutAliasResponse] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["models.PutAliasResponse"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._create_initial( + alias_name=alias_name, + properties=properties, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('PutAliasResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + if polling is True: polling_method = ARMPolling(lro_delay, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create.metadata = {'url': '/providers/Microsoft.Subscription/aliases/{aliasName}'} # type: ignore + + def get( + self, + alias_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.PutAliasResponse" + """Get Alias Subscription. + + :param alias_name: Alias Name. + :type alias_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PutAliasResponse, or the result of cls(response) + :rtype: ~subscription_client.models.PutAliasResponse + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.PutAliasResponse"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'aliasName': self._serialize.url("alias_name", alias_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponseBody, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PutAliasResponse', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/providers/Microsoft.Subscription/aliases/{aliasName}'} # type: ignore + + def delete( + self, + alias_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete Alias. + + :param alias_name: Alias Name. + :type alias_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'aliasName': self._serialize.url("alias_name", alias_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponseBody, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/providers/Microsoft.Subscription/aliases/{aliasName}'} # type: ignore + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> "models.PutAliasListResult" + """Get Alias Subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: PutAliasListResult, or the result of cls(response) + :rtype: ~subscription_client.models.PutAliasListResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.PutAliasListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + + # Construct URL + url = self.list.metadata['url'] # type: ignore + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponseBody, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('PutAliasListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list.metadata = {'url': '/providers/Microsoft.Subscription/aliases'} # type: ignore diff --git a/src/account/azext_account/vendored_sdks/subscription/operations/_operation_operations.py b/src/account/azext_account/vendored_sdks/subscription/operations/_operation_operations.py new file mode 100644 index 00000000000..ad81bbff54c --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/operations/_operation_operations.py @@ -0,0 +1,90 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class OperationOperations(object): + """OperationOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~subscription_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> "models.OperationListResult" + """Lists all of the available Microsoft.Subscription API operations. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: OperationListResult, or the result of cls(response) + :rtype: ~subscription_client.models.OperationListResult + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + + # Construct URL + url = self.list.metadata['url'] # type: ignore + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('OperationListResult', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list.metadata = {'url': '/providers/Microsoft.Subscription/operations'} # type: ignore diff --git a/src/account/azext_account/vendored_sdks/subscription/operations/_subscription_operations.py b/src/account/azext_account/vendored_sdks/subscription/operations/_subscription_operations.py index cfede3b61f1..9e068481e4c 100644 --- a/src/account/azext_account/vendored_sdks/subscription/operations/_subscription_operations.py +++ b/src/account/azext_account/vendored_sdks/subscription/operations/_subscription_operations.py @@ -1,557 +1,394 @@ # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# +# Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings -import uuid -from msrest.pipeline import ClientRawResponse -from msrest.polling import LROPoller, NoPolling -from msrestazure.polling.arm_polling import ARMPolling +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat from .. import models +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] class SubscriptionOperations(object): """SubscriptionOperations operations. - You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + :ivar models: Alias to model classes used in this operation group. + :type models: ~subscription_client.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. - :ivar api_version: Version of the API to be used with the client request. Current version is 2019-10-01-preview. Constant value: "2019-10-01-preview". """ models = models def __init__(self, client, config, serializer, deserializer): - self._client = client self._serialize = serializer self._deserialize = deserializer - self.api_version = "2019-10-01-preview" + self._config = config + + def list_location( + self, + subscription_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.LocationListResult"] + """Gets all available geo-locations. + + This operation provides all the locations that are available for resource providers; however, + each resource provider may support a subset of this list. - self.config = config + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either LocationListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~subscription_client.models.LocationListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.LocationListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2016-06-01" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list_location.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('LocationListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_location.metadata = {'url': '/subscriptions/{subscriptionId}/locations'} # type: ignore + def get( + self, + subscription_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.Subscription" + """Gets details about a specified subscription. + + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Subscription, or the result of cls(response) + :rtype: ~subscription_client.models.Subscription + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.Subscription"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2016-06-01" - def _create_subscription_in_enrollment_account_initial( - self, enrollment_account_name, body, custom_headers=None, raw=False, **operation_config): # Construct URL - url = self.create_subscription_in_enrollment_account.metadata['url'] + url = self.get.metadata['url'] # type: ignore path_format_arguments = { - 'enrollmentAccountName': self._serialize.url("enrollment_account_name", enrollment_account_name, 'str') + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') # Construct headers - header_parameters = {} + header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct body - body_content = self._serialize.body(body, 'SubscriptionCreationParameters') - - # Construct and send request - request = self._client.post(url, query_parameters, header_parameters, body_content) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200, 202]: - raise models.ErrorResponseException(self._deserialize, response) - - deserialized = None - header_dict = {} - - if response.status_code == 200: - deserialized = self._deserialize('SubscriptionCreationResult', response) - header_dict = { - 'Location': 'str', - 'Retry-After': 'str', - } - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - client_raw_response.add_headers(header_dict) - return client_raw_response - return deserialized + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Subscription', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) - def create_subscription_in_enrollment_account( - self, enrollment_account_name, body, custom_headers=None, raw=False, polling=True, **operation_config): - """Creates an Azure subscription. - - :param enrollment_account_name: The name of the enrollment account to - which the subscription will be billed. - :type enrollment_account_name: str - :param body: The subscription creation parameters. - :type body: - ~azure.mgmt.subscription.models.SubscriptionCreationParameters - :param dict custom_headers: headers that will be added to the request - :param bool raw: The poller return type is ClientRawResponse, the - direct response alongside the deserialized response - :param polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :return: An instance of LROPoller that returns - SubscriptionCreationResult or - ClientRawResponse if raw==True - :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.subscription.models.SubscriptionCreationResult] - or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.subscription.models.SubscriptionCreationResult]] - :raises: - :class:`ErrorResponseException` + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}'} # type: ignore + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.SubscriptionListResult"] + """Gets all subscriptions for a tenant. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either SubscriptionListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~subscription_client.models.SubscriptionListResult] + :raises: ~azure.core.exceptions.HttpResponseError """ - raw_result = self._create_subscription_in_enrollment_account_initial( - enrollment_account_name=enrollment_account_name, - body=body, - custom_headers=custom_headers, - raw=True, - **operation_config + cls = kwargs.pop('cls', None) # type: ClsType["models.SubscriptionListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2016-06-01" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('SubscriptionListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data ) - - def get_long_running_output(response): - header_dict = { - 'Location': 'str', - 'Retry-After': 'str', - } - deserialized = self._deserialize('SubscriptionCreationResult', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - client_raw_response.add_headers(header_dict) - return client_raw_response - - return deserialized - - lro_delay = operation_config.get( - 'long_running_operation_timeout', - self.config.long_running_operation_timeout) - if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) - elif polling is False: polling_method = NoPolling() - else: polling_method = polling - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - create_subscription_in_enrollment_account.metadata = {'url': '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountName}/providers/Microsoft.Subscription/createSubscription'} + list.metadata = {'url': '/subscriptions'} # type: ignore def cancel( - self, subscription_id, custom_headers=None, raw=False, **operation_config): + self, + subscription_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.CanceledSubscriptionId" """The operation to cancel a subscription. :param subscription_id: Subscription Id. :type subscription_id: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: CanceledSubscriptionId or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.subscription.models.CanceledSubscriptionId or - ~msrest.pipeline.ClientRawResponse - :raises: - :class:`ErrorResponseException` + :keyword callable cls: A custom type or function that will be passed the direct response + :return: CanceledSubscriptionId, or the result of cls(response) + :rtype: ~subscription_client.models.CanceledSubscriptionId + :raises: ~azure.core.exceptions.HttpResponseError """ + cls = kwargs.pop('cls', None) # type: ClsType["models.CanceledSubscriptionId"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" + # Construct URL - url = self.cancel.metadata['url'] + url = self.cancel.metadata['url'] # type: ignore path_format_arguments = { - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str') + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') # Construct headers - header_parameters = {} + header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response if response.status_code not in [200]: - raise models.ErrorResponseException(self._deserialize, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('CanceledSubscriptionId', response) + deserialized = self._deserialize('CanceledSubscriptionId', pipeline_response) - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + if cls: + return cls(pipeline_response, deserialized, {}) return deserialized - cancel.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/cancel'} + cancel.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/cancel'} # type: ignore def rename( - self, subscription_id, subscription_name=None, custom_headers=None, raw=False, **operation_config): + self, + subscription_id, # type: str + subscription_name=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "models.RenamedSubscriptionId" """The operation to rename a subscription. :param subscription_id: Subscription Id. :type subscription_id: str - :param subscription_name: New subscription name + :param subscription_name: New subscription name. :type subscription_name: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: RenamedSubscriptionId or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.subscription.models.RenamedSubscriptionId or - ~msrest.pipeline.ClientRawResponse - :raises: - :class:`ErrorResponseException` + :keyword callable cls: A custom type or function that will be passed the direct response + :return: RenamedSubscriptionId, or the result of cls(response) + :rtype: ~subscription_client.models.RenamedSubscriptionId + :raises: ~azure.core.exceptions.HttpResponseError """ - body = models.SubscriptionName(subscription_name=subscription_name) + cls = kwargs.pop('cls', None) # type: ClsType["models.RenamedSubscriptionId"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _body = models.SubscriptionName(subscription_name=subscription_name) + api_version = "2020-09-01" + content_type = kwargs.pop("content_type", "application/json") # Construct URL - url = self.rename.metadata['url'] + url = self.rename.metadata['url'] # type: ignore path_format_arguments = { - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str') + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') # Construct headers - header_parameters = {} + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - # Construct body - body_content = self._serialize.body(body, 'SubscriptionName') + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_body, 'SubscriptionName') + body_content_kwargs['content'] = body_content + request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) - # Construct and send request - request = self._client.post(url, query_parameters, header_parameters, body_content) - response = self._client.send(request, stream=False, **operation_config) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response if response.status_code not in [200]: - raise models.ErrorResponseException(self._deserialize, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('RenamedSubscriptionId', response) + deserialized = self._deserialize('RenamedSubscriptionId', pipeline_response) - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + if cls: + return cls(pipeline_response, deserialized, {}) return deserialized - rename.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/rename'} + rename.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/rename'} # type: ignore def enable( - self, subscription_id, custom_headers=None, raw=False, **operation_config): + self, + subscription_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.EnabledSubscriptionId" """The operation to enable a subscription. :param subscription_id: Subscription Id. :type subscription_id: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: EnabledSubscriptionId or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.subscription.models.EnabledSubscriptionId or - ~msrest.pipeline.ClientRawResponse - :raises: - :class:`ErrorResponseException` + :keyword callable cls: A custom type or function that will be passed the direct response + :return: EnabledSubscriptionId, or the result of cls(response) + :rtype: ~subscription_client.models.EnabledSubscriptionId + :raises: ~azure.core.exceptions.HttpResponseError """ - # Construct URL - url = self.enable.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.post(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) + cls = kwargs.pop('cls', None) # type: ClsType["models.EnabledSubscriptionId"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-09-01" - if response.status_code not in [200]: - raise models.ErrorResponseException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('EnabledSubscriptionId', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - enable.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/enable'} - - - def _create_subscription_initial( - self, billing_account_name, billing_profile_name, invoice_section_name, body, custom_headers=None, raw=False, **operation_config): # Construct URL - url = self.create_subscription.metadata['url'] + url = self.enable.metadata['url'] # type: ignore path_format_arguments = { - 'billingAccountName': self._serialize.url("billing_account_name", billing_account_name, 'str'), - 'billingProfileName': self._serialize.url("billing_profile_name", billing_profile_name, 'str'), - 'invoiceSectionName': self._serialize.url("invoice_section_name", invoice_section_name, 'str') + 'subscriptionId': self._serialize.url("subscription_id", subscription_id, 'str'), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') # Construct headers - header_parameters = {} + header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct body - body_content = self._serialize.body(body, 'ModernSubscriptionCreationParameters') - - # Construct and send request - request = self._client.post(url, query_parameters, header_parameters, body_content) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200, 202]: - raise models.ErrorResponseException(self._deserialize, response) - - deserialized = None - header_dict = {} - - if response.status_code == 200: - deserialized = self._deserialize('SubscriptionCreationResult', response) - header_dict = { - 'Location': 'str', - 'Retry-After': 'int', - } - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - client_raw_response.add_headers(header_dict) - return client_raw_response - - return deserialized - - def create_subscription( - self, billing_account_name, billing_profile_name, invoice_section_name, body, custom_headers=None, raw=False, polling=True, **operation_config): - """The operation to create a new WebDirect or EA Azure subscription. - - :param billing_account_name: The name of the Microsoft Customer - Agreement billing account for which you want to create the - subscription. - :type billing_account_name: str - :param billing_profile_name: The name of the billing profile in the - billing account for which you want to create the subscription. - :type billing_profile_name: str - :param invoice_section_name: The name of the invoice section in the - billing account for which you want to create the subscription. - :type invoice_section_name: str - :param body: The subscription creation parameters. - :type body: - ~azure.mgmt.subscription.models.ModernSubscriptionCreationParameters - :param dict custom_headers: headers that will be added to the request - :param bool raw: The poller return type is ClientRawResponse, the - direct response alongside the deserialized response - :param polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :return: An instance of LROPoller that returns - SubscriptionCreationResult or - ClientRawResponse if raw==True - :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.subscription.models.SubscriptionCreationResult] - or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.subscription.models.SubscriptionCreationResult]] - :raises: - :class:`ErrorResponseException` - """ - raw_result = self._create_subscription_initial( - billing_account_name=billing_account_name, - billing_profile_name=billing_profile_name, - invoice_section_name=invoice_section_name, - body=body, - custom_headers=custom_headers, - raw=True, - **operation_config - ) - - def get_long_running_output(response): - header_dict = { - 'Location': 'str', - 'Retry-After': 'int', - } - deserialized = self._deserialize('SubscriptionCreationResult', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - client_raw_response.add_headers(header_dict) - return client_raw_response - - return deserialized - - lro_delay = operation_config.get( - 'long_running_operation_timeout', - self.config.long_running_operation_timeout) - if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) - elif polling is False: polling_method = NoPolling() - else: polling_method = polling - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - create_subscription.metadata = {'url': '/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Subscription/createSubscription'} + request = self._client.post(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response - def _create_csp_subscription_initial( - self, billing_account_name, customer_name, body, custom_headers=None, raw=False, **operation_config): - # Construct URL - url = self.create_csp_subscription.metadata['url'] - path_format_arguments = { - 'billingAccountName': self._serialize.url("billing_account_name", billing_account_name, 'str'), - 'customerName': self._serialize.url("customer_name", customer_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + deserialized = self._deserialize('EnabledSubscriptionId', pipeline_response) - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct body - body_content = self._serialize.body(body, 'ModernCspSubscriptionCreationParameters') - - # Construct and send request - request = self._client.post(url, query_parameters, header_parameters, body_content) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200, 202]: - raise models.ErrorResponseException(self._deserialize, response) - - deserialized = None - header_dict = {} - - if response.status_code == 200: - deserialized = self._deserialize('SubscriptionCreationResult', response) - header_dict = { - 'Location': 'str', - 'Retry-After': 'int', - } - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - client_raw_response.add_headers(header_dict) - return client_raw_response + if cls: + return cls(pipeline_response, deserialized, {}) return deserialized - - def create_csp_subscription( - self, billing_account_name, customer_name, body, custom_headers=None, raw=False, polling=True, **operation_config): - """The operation to create a new CSP subscription. - - :param billing_account_name: The name of the Microsoft Customer - Agreement billing account for which you want to create the - subscription. - :type billing_account_name: str - :param customer_name: The name of the customer. - :type customer_name: str - :param body: The subscription creation parameters. - :type body: - ~azure.mgmt.subscription.models.ModernCspSubscriptionCreationParameters - :param dict custom_headers: headers that will be added to the request - :param bool raw: The poller return type is ClientRawResponse, the - direct response alongside the deserialized response - :param polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :return: An instance of LROPoller that returns - SubscriptionCreationResult or - ClientRawResponse if raw==True - :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.subscription.models.SubscriptionCreationResult] - or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.subscription.models.SubscriptionCreationResult]] - :raises: - :class:`ErrorResponseException` - """ - raw_result = self._create_csp_subscription_initial( - billing_account_name=billing_account_name, - customer_name=customer_name, - body=body, - custom_headers=custom_headers, - raw=True, - **operation_config - ) - - def get_long_running_output(response): - header_dict = { - 'Location': 'str', - 'Retry-After': 'int', - } - deserialized = self._deserialize('SubscriptionCreationResult', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - client_raw_response.add_headers(header_dict) - return client_raw_response - - return deserialized - - lro_delay = operation_config.get( - 'long_running_operation_timeout', - self.config.long_running_operation_timeout) - if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) - elif polling is False: polling_method = NoPolling() - else: polling_method = polling - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - create_csp_subscription.metadata = {'url': '/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/customers/{customerName}/providers/Microsoft.Subscription/createSubscription'} + enable.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Subscription/enable'} # type: ignore diff --git a/src/account/azext_account/vendored_sdks/subscription/operations/_tenant_operations.py b/src/account/azext_account/vendored_sdks/subscription/operations/_tenant_operations.py new file mode 100644 index 00000000000..57584209e20 --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/operations/_tenant_operations.py @@ -0,0 +1,106 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class TenantOperations(object): + """TenantOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~subscription_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.TenantListResult"] + """Gets the tenants for your account. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either TenantListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~subscription_client.models.TenantListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.TenantListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2016-06-01" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('TenantListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/tenants'} # type: ignore diff --git a/src/account/azext_account/vendored_sdks/subscription/py.typed b/src/account/azext_account/vendored_sdks/subscription/py.typed new file mode 100644 index 00000000000..e5aff4f83af --- /dev/null +++ b/src/account/azext_account/vendored_sdks/subscription/py.typed @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file diff --git a/src/account/setup.py b/src/account/setup.py index 03591dc1fe5..721b72f13be 100644 --- a/src/account/setup.py +++ b/src/account/setup.py @@ -16,7 +16,7 @@ # TODO: Confirm this is the right version number you want and it matches your # HISTORY.rst entry. -VERSION = '0.1.0' +VERSION = '0.2.0' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers diff --git a/src/ai-did-you-mean-this/HISTORY.rst b/src/ai-did-you-mean-this/HISTORY.rst deleted file mode 100644 index 06dd806dabd..00000000000 --- a/src/ai-did-you-mean-this/HISTORY.rst +++ /dev/null @@ -1,36 +0,0 @@ -.. :changelog: - -Release History -=============== - -0.1.0 -++++++ -* Initial release. -* Add autogenerated recommendations for recovery from UserFault failures. -* Ensure that the hook is activated in common UserFault failure scenarios. - -0.1.1 -+++++ -* Update service URL to production endpoint. -* Tag as experimental rather than in-preview. - -0.2.0 -+++++ -* Change name of required service parameter - -0.3.0 -+++++ -* Log custom telemetry data when given permission by the user to do so. - - * Record exceptions thrown by the extension. - * Track various performance and health metrics. - * Track what suggestions are shown. - -* Fix incorrect parsing of argument placeholders. -* Support parameter prefix matching for feature parity with the CLI parser. -* Add preliminary support for partial command matching - - * Fixes bug where certain command groups are not recognized. - -* Improve handling of extension debug logs. -* Store extension version in a centralized location to improve maintainability. \ No newline at end of file diff --git a/src/ai-did-you-mean-this/README.md b/src/ai-did-you-mean-this/README.md deleted file mode 100644 index 634db4ef845..00000000000 --- a/src/ai-did-you-mean-this/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Azure CLI 'AI Did You Mean This' Extension # - -### Installation ### -To install the extension, use the below CLI command -``` -az extension add --name ai-did-you-mean-this -``` - -### Background ### -The purpose of this extension is help users recover from failure. Once installed, failure recovery recommendations will automatically be provided for supported command failures. In cases where no recommendations are available, a prompt to use `az find` will be shown provided that the command can be matched to a valid CLI command. -### Limitations ### -For now, recommendations are limited to parser failures (i.e. not in a command group, argument required, unrecognized parameter, expected one argument, etc). Support for more core failures is planned for a future release. -### Try it out! ### -The following examples demonstrate how to trigger the extension. For a more complete list of supported CLI failure types, see this [CLI PR](https://github.com/Azure/azure-cli/pull/12889). Keep in mind that the recommendations shown here may be different from the ones that you receive. - -#### az account #### -``` -> az account -az account: error: the following arguments are required: _subcommand -usage: az account [-h] - {list,set,show,clear,list-locations,get-access-token,lock,management-group} - ... - -Here are the most common ways users succeeded after [account] failed: - az account list - az account show -``` - -#### az account set #### -``` -> az account set -az account set: error: the following arguments are required: --subscription/-s -usage: az account set [-h] [--verbose] [--debug] [--only-show-errors] - [--output {json,jsonc,yaml,yamlc,table,tsv,none}] - [--query JMESPATH] --subscription SUBSCRIPTION - -Here are the most common ways users succeeded after [account set] failed: - az account set --subscription Subscription -``` - -#### az group create #### -``` ->az group create -az group create: error: the following arguments are required: --name/--resource-group/-n/-g, --location/-l -usage: az group create [-h] [--verbose] [--debug] [--only-show-errors] - [--output {json,jsonc,yaml,yamlc,table,tsv,none}] - [--query JMESPATH] [--subscription _SUBSCRIPTION] - --name RG_NAME --location LOCATION - [--tags [TAGS [TAGS ...]]] [--managed-by MANAGED_BY] - -Here are the most common ways users succeeded after [group create] failed: - az group create --location westeurope --resource-group MyResourceGroup -``` -#### az vm list ### -``` -> az vm list --query ".id" -az vm list: error: argument --query: invalid jmespath_type value: '.id' -usage: az vm list [-h] [--verbose] [--debug] [--only-show-errors] - [--output {json,jsonc,yaml,yamlc,table,tsv,none}] - [--query JMESPATH] [--subscription _SUBSCRIPTION] - [--resource-group RESOURCE_GROUP_NAME] [--show-details] - -Sorry I am not able to help with [vm list] -Try running [az find "az vm list"] to see examples of [vm list] from other users. -``` -### Developer Build ### -If you want to try an experimental release of the extension, it is recommended you do so in a [Docker container](https://www.docker.com/resources/what-container). Keep in mind that you'll need to install Docker and pull the desired [Azure CLI image](https://hub.docker.com/_/microsoft-azure-cli) from the Microsoft Container Registry before proceeding. - -#### Setting up your Docker Image #### -To run the Azure CLI Docker image as an interactive shell, run the below command by replacing `` with your desired CLI version -```bash -docker run -it mcr.microsoft.com/azure-cli: -export EXT="ai-did-you-mean-this" -pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/christopher-o-toole/azure-cli-extensions.git@thoth-extension#subdirectory=src/$EXT&egg=$EXT" -``` -Each time you start a new shell, you'll need to login before you can start using the extension. To do so, run -```bash -az login -``` -and follow the instructions given in the prompt. Once you're logged in, try out the extension by issuing a faulty command -``` -> az account -az account: error: the following arguments are required: _subcommand -usage: az account [-h] - {list,set,show,clear,list-locations,get-access-token,lock,management-group} - ... - -Here are the most common ways users succeeded after [account] failed: - az account list - az account show -``` \ No newline at end of file diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/__init__.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/__init__.py deleted file mode 100644 index 8db2b74fe04..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/__init__.py +++ /dev/null @@ -1,52 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from azure.cli.core import AzCommandsLoader - -from knack.events import ( - EVENT_INVOKER_CMD_TBL_LOADED -) - -from azext_ai_did_you_mean_this._help import helps # pylint: disable=unused-import -from azext_ai_did_you_mean_this._cmd_table import on_command_table_loaded - - -def inject_functions_into_core(): - from azure.cli.core.parser import AzCliCommandParser - from azext_ai_did_you_mean_this.custom import recommend_recovery_options - AzCliCommandParser.recommendation_provider = recommend_recovery_options - - -# pylint: disable=too-few-public-methods -class GlobalConfig(): - ENABLE_STYLING = False - - -class AiDidYouMeanThisCommandsLoader(AzCommandsLoader): - def __init__(self, cli_ctx=None): - from azure.cli.core.commands import CliCommandType - - ai_did_you_mean_this_custom = CliCommandType( - operations_tmpl='azext_ai_did_you_mean_this.custom#{}') - super().__init__(cli_ctx=cli_ctx, - custom_command_type=ai_did_you_mean_this_custom) - self.cli_ctx.register_event(EVENT_INVOKER_CMD_TBL_LOADED, on_command_table_loaded) - inject_functions_into_core() - # per https://github.com/Azure/azure-cli/pull/12601 - try: - GlobalConfig.ENABLE_STYLING = cli_ctx.enable_color - except AttributeError: - pass - - def load_command_table(self, args): - from azext_ai_did_you_mean_this.commands import load_command_table - load_command_table(self, args) - return self.command_table - - def load_arguments(self, command): - pass - - -COMMAND_LOADER_CLS = AiDidYouMeanThisCommandsLoader diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_cli_command.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_cli_command.py deleted file mode 100644 index b78ecf0d585..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_cli_command.py +++ /dev/null @@ -1,49 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from azext_ai_did_you_mean_this.arguments import Arguments -from azext_ai_did_you_mean_this._types import ArgumentsType - - -class CliCommand(): - parameters = Arguments('parameters', delim=',') - arguments = Arguments('arguments', delim='♠') - - def __init__(self, command: str, parameters: ArgumentsType = '', arguments: ArgumentsType = ''): - self.command_only = parameters == '' and arguments == '' - self.command = command - self.parameters = parameters - self.arguments = arguments - - arguments_len = len(self.arguments) - parameters_len = len(self.parameters) - if arguments_len < parameters_len: - missing_argument_count = parameters_len - arguments_len - for _ in range(missing_argument_count): - self.arguments.append('') - elif arguments_len > parameters_len: - raise ValueError(f'Got more arguments ({arguments_len}) than parameters ({parameters_len}).') - - def __str__(self): - buffer = [] - - if not self.command_only: - for (param, arg) in zip(self.parameters, self.arguments): - if not buffer: - buffer.append('') - if arg: - buffer.append(' '.join((param, arg))) - else: - buffer.append(param) - - return f"{self.command}{' '.join(buffer)}" - - def __eq__(self, value): - return (self.command == value.command and - self.parameters == value.parameters and - self.arguments == value.arguments) - - def __hash__(self): - return hash((self.command, self.parameters, self.arguments)) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_cmd_table.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_cmd_table.py deleted file mode 100644 index 9d77a5db9bd..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_cmd_table.py +++ /dev/null @@ -1,13 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - - -class CommandTable(): # pylint: disable=too-few-public-methods - CMD_TBL = None - - -def on_command_table_loaded(_, **kwargs): - cmd_tbl = kwargs.pop('cmd_tbl', None) - CommandTable.CMD_TBL = cmd_tbl diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_command.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_command.py deleted file mode 100644 index 3aefc308658..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_command.py +++ /dev/null @@ -1,109 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from typing import List, Tuple, Union - -from azure.cli.core.commands import AzCliCommand - -from azext_ai_did_you_mean_this._logging import get_logger -from azext_ai_did_you_mean_this._parameter import (GLOBAL_PARAM_BLOCKLIST, - GLOBAL_PARAM_LOOKUP_TBL, - Parameter, parameter_gen) -from azext_ai_did_you_mean_this._types import ParameterTableType - -logger = get_logger(__name__) - - -class Command(): - - def __init__(self, command: str, parameters: List[Parameter]): - self.command: str = command - self.parameters = parameters - self.parameter_lookup_table = {} - self.parameter_lookup_table.update(GLOBAL_PARAM_LOOKUP_TBL) - - for parameter in self.parameters: - self.parameter_lookup_table[parameter.standard_form] = None - - for alias in parameter.aliases: - self.parameter_lookup_table[alias] = parameter.standard_form - - @classmethod - def normalize(cls, command: Union[None, 'Command'], *parameters: Tuple[str]): - normalized_parameters = [] - unrecognized_parameters = [] - parameter_lookup_table = command.parameter_lookup_table if command else GLOBAL_PARAM_LOOKUP_TBL.copy() - terms = parameter_lookup_table.keys() - - def is_recognized(parameter: str) -> bool: - return parameter in parameter_lookup_table - - def match_prefix(parameter: str) -> str: - matches: List[str] = [term for term in terms if term.startswith(parameter)] - if len(matches) == 1: - return matches[0] - - return parameter - - def get_normalized_form(parameter) -> str: - normalized_form = None - - if not is_recognized(parameter): - parameter = match_prefix(parameter) - - normalized_form = parameter_lookup_table.get(parameter, None) or parameter - return normalized_form - - for parameter in parameters: - normalized_form = get_normalized_form(parameter) - - if normalized_form in GLOBAL_PARAM_BLOCKLIST: - continue - if is_recognized(normalized_form): - normalized_parameters.append(normalized_form) - else: - unrecognized_parameters.append(normalized_form) - - return sorted(set(normalized_parameters)), sorted(set(unrecognized_parameters)) - - @classmethod - def get_parameter_table(cls, command_table: dict, command: str, - recurse: bool = True) -> Tuple[ParameterTableType, str]: - az_cli_command: Union[AzCliCommand, None] = command_table.get(command, None) - parameter_table: ParameterTableType = az_cli_command.arguments if az_cli_command else {} - partial_match = True - - if not az_cli_command: - partial_match = any(cmd for cmd in command_table if cmd.startswith(command)) - - # if the specified command was not found and no similar command exists and recursive search is enabled... - if not az_cli_command and not partial_match and recurse: - # if there are at least two tokens separated by whitespace, remove the last token - last_delim_idx = command.rfind(' ') - if last_delim_idx != -1: - logger.debug('Removing unknown token "%s" from command.', command[last_delim_idx + 1:]) - # try to find the truncated command. - parameter_table, command = cls.get_parameter_table( - command_table, - command[:last_delim_idx], - recurse=False - ) - - return parameter_table, command - - @staticmethod - def parse(command_table: dict, command: str, recurse: bool = True) -> Tuple['Command', str]: - instance: 'Command' = None - (parameter_table, command) = Command.get_parameter_table( - command_table, - command, - recurse - ) - - if parameter_table: - parameters = [parameter for parameter in parameter_gen(parameter_table)] - instance = Command(command, parameters) - - return instance, command diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_const.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_const.py deleted file mode 100644 index 0aecb2e36c6..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_const.py +++ /dev/null @@ -1,63 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -# time to wait for connection to aladdin service in seconds. -SERVICE_CONNECTION_TIMEOUT = 10 - -EXTENSION_NAME = 'ai-did-you-mean-this' - -EXTENSION_NICKNAME = 'Thoth' - -THOTH_LOG_PREFIX = f'[{EXTENSION_NICKNAME}]' - -UNEXPECTED_ERROR_STR = ( - 'An unexpected error occurred.' -) - -UPDATE_RECOMMENDATION_STR = ( - "Better failure recovery recommendations are available from the latest version of the CLI. " - "Please update for the best experience.\n" -) - -UNABLE_TO_HELP_FMT_STR = ( - '\nSorry I am not able to help with [{command}]' - '\nTry running [az find "az {command}"] to see examples of [{command}] from other users.' -) - -RECOMMENDATION_HEADER_FMT_STR = ( - '\nHere are the most common ways users succeeded after [{command}] failed:' -) - -TELEMETRY_IS_DISABLED_STR = ( - 'User has not opted into telemetry.' -) - -TELEMETRY_IS_ENABLED_STR = ( - 'User has opted into telemetry.' -) - -TELEMETRY_MISSING_SUBSCRIPTION_ID_STR = ( - "Subscription ID was not set in telemetry." -) - -TELEMETRY_MISSING_CORRELATION_ID_STR = ( - "Correlation ID was not set in telemetry." -) - -UNABLE_TO_CALL_SERVICE_STR = ( - 'Either the subscription ID or correlation ID was not set. Aborting operation.' -) - -RECOMMEND_RECOVERY_OPTIONS_LOG_FMT_STR = ( - 'recommend_recovery_options: version: "%s", command: "%s", parameters: "%s", extension: "%s"' -) - -CALL_ALADDIN_SERVICE_LOG_FMT_STR = ( - 'call_aladdin_service: version: "%s", command: "%s", parameters: "%s"' -) - -RECOMMENDATION_PROCESSING_TIME_FMT_STR = ( - 'The overall time it took to process failure recovery recommendations was %.2fms.' -) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_help.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_help.py deleted file mode 100644 index 9c01be7c2c2..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_help.py +++ /dev/null @@ -1,17 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from knack.help_files import helps # pylint: disable=unused-import - -helps['ai-did-you-mean-this'] = """ - type: group - short-summary: Automatically adds failure recovery suggestions for supported scenarios. -""" - -helps['ai-did-you-mean-this version'] = """ - type: command - short-summary: Prints the extension version. -""" diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_logging.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_logging.py deleted file mode 100644 index 08f4b9fb0e3..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_logging.py +++ /dev/null @@ -1,28 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import logging - -from knack.log import get_logger as get_knack_logger - -from azext_ai_did_you_mean_this._const import THOTH_LOG_PREFIX - -LOG_PREFIX_KEY = 'extension_log_prefix' - - -class ExtensionLoggerAdapter(logging.LoggerAdapter): - def process(self, msg, kwargs): - buffer = [msg] - - if LOG_PREFIX_KEY in self.extra: - buffer.insert(0, f'{self.extra[LOG_PREFIX_KEY]}:') - - return ' '.join(buffer), kwargs - - -def get_logger(module_name: str) -> logging.LoggerAdapter: - logger = get_knack_logger(module_name) - adapter = ExtensionLoggerAdapter(logger, {LOG_PREFIX_KEY: THOTH_LOG_PREFIX}) - return adapter diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_parameter.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_parameter.py deleted file mode 100644 index dbd48412ef9..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_parameter.py +++ /dev/null @@ -1,89 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from collections import defaultdict -from typing import Iterator, List - -from azext_ai_did_you_mean_this._logging import get_logger -from azext_ai_did_you_mean_this._types import (ParameterTableType, OptionListType) - -logger = get_logger(__name__) - -GLOBAL_PARAM_SHORTHAND_LOOKUP_TBL = { - '-h': '--help', - '-o': '--output', -} - -GLOBAL_PARAM_LOOKUP_TBL = { - **GLOBAL_PARAM_SHORTHAND_LOOKUP_TBL, - '--only-show-errors': None, - '--help': None, - '--output': None, - '--query': None, - '--debug': None, - '--verbose': None -} - -GLOBAL_PARAM_BLOCKLIST = { - '--only-show-errors', - '--help', - '--debug', - '--verbose', -} - -SUPPRESSED_STR = "==SUPPRESS==" - - -def has_len_op(value): - return hasattr(value, '__len__') and callable(value.__len__) - - -class Parameter(): - - DEFAULT_STATE = defaultdict( - None, - options_list=[], - choices=[], - required=False, - ) - - def __init__(self, alias: str, **kwargs): - self._options = None - - self.state = defaultdict(None, Parameter.DEFAULT_STATE) - self.state.update(**kwargs) - self.alias = alias - - self.options = self.state.get('options_list', []) - - sorted_options = sorted(self.options, key=len, reverse=True) - self.standard_form = next(iter(sorted_options), None) - self.aliases = set(self.options) - set((self.standard_form,)) - - @property - def configurable(self) -> bool: - return self.state['configured_default'] is not None - - @property - def suppressed(self) -> bool: - return self.state['help'] == SUPPRESSED_STR - - @property - def options(self) -> List[str]: - return self._options - - @options.setter - def options(self, option_list: OptionListType): - self._options = [option for option in option_list if has_len_op(option)] - - -def parameter_gen(parameter_table: ParameterTableType) -> Iterator[Parameter]: - for alias, argument in parameter_table.items(): - parameter = Parameter(alias, **argument.type.settings) - - if not parameter.suppressed: - yield parameter - else: - logger.debug('Discarding supressed parameter "%s"', alias) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_style.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_style.py deleted file mode 100644 index f32e8452062..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_style.py +++ /dev/null @@ -1,28 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import sys - -from azext_ai_did_you_mean_this import GlobalConfig - - -def style_message(msg): - if should_enable_styling(): - import colorama # pylint: disable=import-error - - try: - msg = colorama.Style.BRIGHT + msg + colorama.Style.RESET_ALL - except KeyError: - pass - return msg - - -def should_enable_styling(): - try: - if GlobalConfig.ENABLE_STYLING and sys.stdout.isatty(): - return True - except AttributeError: - pass - return False diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_suggestion.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_suggestion.py deleted file mode 100644 index 9986ea84f22..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_suggestion.py +++ /dev/null @@ -1,45 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from typing import Dict - -from azext_ai_did_you_mean_this._cli_command import CliCommand -from azext_ai_did_you_mean_this._types import ArgumentsType -from azext_ai_did_you_mean_this._util import safe_repr - - -class SuggestionParseError(KeyError): - pass - - -class InvalidSuggestionError(ValueError): - pass - - -class Suggestion(CliCommand): - # pylint: disable=useless-super-delegation - def __init__(self, command: str, parameters: ArgumentsType = '', placeholders: ArgumentsType = ''): - super().__init__(command, parameters, placeholders) - - def __str__(self): - return f"az {super().__str__()}" - - def __repr__(self): - attrs = dict(command=self.command, parameters=self.parameters, arguments=self.arguments) - return safe_repr(self, attrs) - - @classmethod - def parse(cls, data: Dict[str, str]): - try: - command = data['command'] - parameters = data['parameters'] - placeholders = data['placeholders'] - except KeyError as e: - raise SuggestionParseError(*e.args) - - try: - return Suggestion(command, parameters, placeholders) - except ValueError as e: - raise InvalidSuggestionError(*e.args) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_suggestion_encoder.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_suggestion_encoder.py deleted file mode 100644 index 086328a5496..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_suggestion_encoder.py +++ /dev/null @@ -1,20 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from json import JSONEncoder -from azext_ai_did_you_mean_this._cli_command import CliCommand - - -class SuggestionEncoder(JSONEncoder): - # pylint: disable=method-hidden - def default(self, o): - if isinstance(o, CliCommand): - return { - 'command': o.command, - 'parameters': ','.join(o.parameters), - 'placeholders': '♠'.join(o.arguments) - } - - return super().default(o) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_telemetry.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_telemetry.py deleted file mode 100644 index a39a7274a7a..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_telemetry.py +++ /dev/null @@ -1,212 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from functools import wraps -from typing import Dict, Union, Any -from enum import Enum, auto -import azure.cli.core.telemetry as telemetry - -from azext_ai_did_you_mean_this._const import ( - UNEXPECTED_ERROR_STR, - EXTENSION_NAME -) - -TELEMETRY_PROPERTY_PREFIX = 'Context.Default.Extension.Thoth' - - -def _user_agrees_to_telemetry(func): - @wraps(func) - def _wrapper(*args, **kwargs): - if not telemetry.is_telemetry_enabled(): - return None - - return func(*args, **kwargs) - - return _wrapper - - -class FaultType(Enum): - RequestError = 'thoth-aladdin-request-error' - SuggestionParseError = 'thoth-aladdin-response-parse-error' - InvalidSuggestionError = 'thoth-aladdin-invalid-suggestion-in-response-error' - UnexpectedError = 'thoth-unexpected-error' - - def __eq__(self, value: Union['FaultType', str]): - if hasattr(value, 'value'): - value = value.value - # pylint: disable=comparison-with-callable - return self.value == value - - def __hash__(self): - return hash(self.value) - - -class NoRecommendationReason(Enum): - ServiceRequestFailure = 'service-request-failure' - CommandFromExtension = 'command-from-extension' - EmptyCommand = 'empty-command' - - def __eq__(self, value: Union['NoRecommendationReason', str]): - if hasattr(value, 'value'): - value = value.value - # pylint: disable=comparison-with-callable - return self.value == value - - def __hash__(self): - return hash(self.value) - - -class TelemetryProperty(Enum): - # The "azure-cli-core" version. - CoreVersion = auto() - # The "ai-did-you-mean-this" extension version. - ExtensionVersion = auto() - # The command passed to the extension. - RawCommand = auto() - # The command used by the service query. May differ from the original command if an unrecognized token is removed. - Command = auto() - # The parameters passed to the extension. - RawParams = auto() - # The normalized and sorted set of parameters as a list of comma-separated values. - Params = auto() - # The sorted set of unrecognized parameters obtained by normalizing the passed parameters. - UnrecognizedParams = auto() - # Time in milliseconds that it took to retrieve the user's subscription ID and correlation ID if applicable. - TimeToRetrieveUserInfoMs = auto() - # Time in milliseconds that it took to send a request and receive a response from the Aladdin service. - RoundTripRequestTimeMs = auto() - # The total time in milliseconds that it took to retrieve recovery suggestions for specified failure. - ExecutionTimeMs = auto() - # True if the Aladdin service did not respond within the amount of time alotted, false otherwise. - RequestTimedOut = auto() - # Describes why suggestions weren't available where applicable. - ResultSummary = auto() - # JSON list of suggestions. Contains only the suggestions which passed client-side validation. - Suggestions = auto() - # The number of valid suggestions received from the service. - NumberOfValidSuggestions = auto() - # The number of suggestions received from the service. - NumberOfSuggestions = auto() - # The inferred name of the extension the command was sourced from if applicable. - InferredExtension = auto() - # True if "az find" was suggested to the user, alse otherwise. - SuggestedAzFind = auto() - # True if the correlation ID could not be retrieved, false otherwise. - NoCorrelationId = auto() - # True if the Azure subscription ID could not be retrieved, false otherwise. - NoSubscriptionId = auto() - - def __init__(self, _: int): - super().__init__() - self._property_name = f'{TELEMETRY_PROPERTY_PREFIX}.{self.name}' - - @property - def property_name(self) -> str: - return self._property_name - - def __eq__(self, value: Union['TelemetryProperty', str]): - if hasattr(value, 'property_name'): - value = value.property_name - return self.property_name == value - - def __hash__(self): - return hash(self.property_name) - - -class ExtensionTelemetryManager(): - def __init__(self): - super().__init__() - self._props: Dict[str, str] = {} - self._prefix: str = TELEMETRY_PROPERTY_PREFIX - - def _get_property(self, name: str): - prefix = self._prefix - return name if name.startswith(prefix) else f'{prefix}.{name}' - - def __setitem__(self, key: str, value: Any): - self._props[self._get_property(key)] = str(value) - - def __getitem__(self, key: str) -> Any: - return self._props[self._get_property(key)] - - @property - def properties(self): - return self._props - - def clear(self): - self._props.clear() - - -_extension_telemetry_manager = ExtensionTelemetryManager() - - -def _assert_is_of_correct_type(arg: Any, expected_type: type, name: str): - if not isinstance(arg, expected_type): - raise TypeError(f'{name} must be a `{expected_type.__name__}`') - - -@_user_agrees_to_telemetry -def get_subscription_id(): - return telemetry._get_azure_subscription_id() # pylint: disable=protected-access - - -@_user_agrees_to_telemetry -def get_correlation_id(): - return telemetry._session.correlation_id # pylint: disable=protected-access - - -@_user_agrees_to_telemetry -def set_property(prop: TelemetryProperty, value: Any): - _assert_is_of_correct_type(prop, TelemetryProperty, 'prop') - _extension_telemetry_manager[prop.name] = value - - -@_user_agrees_to_telemetry -def set_properties(props: Dict[TelemetryProperty, Any]): - for prop, value in props.items(): - _assert_is_of_correct_type(prop, TelemetryProperty, 'props') - _extension_telemetry_manager[prop.name] = value - - -@_user_agrees_to_telemetry -def get_property(prop: TelemetryProperty): - _assert_is_of_correct_type(prop, TelemetryProperty, 'prop') - return _extension_telemetry_manager[prop.name] - - -@_user_agrees_to_telemetry -def set_exception(exception: Exception, fault_type: str, summary: str = None): - telemetry.set_exception( - exception=exception, - fault_type=fault_type, - summary=summary - ) - - -@_user_agrees_to_telemetry -def add_extension_event(extension_name: str, properties: dict): - telemetry.add_extension_event( - extension_name, - properties - ) - - -class ExtensionTelemterySession(): - def __enter__(self): - _extension_telemetry_manager.clear() - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - if exc_type and exc_val: - set_exception( - exception=exc_val, - fault_type=FaultType.UnexpectedError.value, - summary=UNEXPECTED_ERROR_STR - ) - - add_extension_event( - EXTENSION_NAME, - _extension_telemetry_manager.properties.copy() - ) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_timer.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_timer.py deleted file mode 100644 index 3127c9bd4ba..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_timer.py +++ /dev/null @@ -1,33 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from timeit import default_timer as timer - - -class Timer(): - def __init__(self): - super().__init__() - self._start = 0 - self._elapsed = 0 - - def start(self): - self._start = timer() - - def stop(self): - self._elapsed = timer() - self._start - - def __enter__(self): - self.start() - - def __exit__(self, *_): - self.stop() - - @property - def elapsed(self) -> float: - return self._elapsed - - @property - def elapsed_ms(self) -> float: - return self.elapsed * 1000 diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_util.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_util.py deleted file mode 100644 index 7cd9ea8bd0a..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_util.py +++ /dev/null @@ -1,23 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import pprint -from typing import Any, Dict, Union - - -def safe_repr(obj: Union[type, object], attrs: Dict[str, Any]): - classname = type(obj).__name__ - buffer = [] - - if hasattr(obj, '__name__'): - classname = obj.__name__ - - for name, value in attrs.items(): - buffer.append(f'{name}={pprint.pformat(value)}') - - return '{classname}({args})'.format( - classname=classname, - args=', '.join(buffer) - ) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/arguments.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/arguments.py deleted file mode 100644 index 4820ad19b1c..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/arguments.py +++ /dev/null @@ -1,37 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from collections.abc import Iterable - -from azext_ai_did_you_mean_this._types import ArgumentsType - -DEFAULT_DELIM = ',' - - -class Arguments(): - def __init__(self, name: str, default: str = '', delim: str = DEFAULT_DELIM): - super().__init__() - self._default = default - self.name = name - self.delim = delim - - self.data = {} - - def __get__(self, instance: type, owner: object): - return self.data.get(id(instance), self._default) - - def __set__(self, instance: type, value: ArgumentsType): - is_string = isinstance(value, str) - - if not is_string: - if isinstance(value, Iterable): - value = [str(item) for item in value] - else: - raise TypeError(f'{self.name} must be of type str') - else: - # filter out empty entries from list of arguments. - value = list(filter(None, value.split(self.delim))) - - self.data[id(instance)] = value diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/azext_metadata.json b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/azext_metadata.json deleted file mode 100644 index 0359f7a6eb3..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/azext_metadata.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "azext.isExperimental": true, - "azext.minCliCoreVersion": "2.4.0" -} \ No newline at end of file diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/custom.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/custom.py deleted file mode 100644 index 1187866bdfe..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/custom.py +++ /dev/null @@ -1,262 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import json -from http import HTTPStatus - -import azure.cli.core.telemetry as telemetry -import requests -from requests import RequestException - -from azext_ai_did_you_mean_this._cmd_table import CommandTable -from azext_ai_did_you_mean_this._command import Command -from azext_ai_did_you_mean_this._const import ( - RECOMMEND_RECOVERY_OPTIONS_LOG_FMT_STR, - RECOMMENDATION_HEADER_FMT_STR, - RECOMMENDATION_PROCESSING_TIME_FMT_STR, - SERVICE_CONNECTION_TIMEOUT, - TELEMETRY_IS_DISABLED_STR, - TELEMETRY_IS_ENABLED_STR, - TELEMETRY_MISSING_CORRELATION_ID_STR, - TELEMETRY_MISSING_SUBSCRIPTION_ID_STR, - UNABLE_TO_HELP_FMT_STR) -from azext_ai_did_you_mean_this._logging import get_logger -from azext_ai_did_you_mean_this._style import style_message -from azext_ai_did_you_mean_this._suggestion import Suggestion, SuggestionParseError, InvalidSuggestionError -from azext_ai_did_you_mean_this._suggestion_encoder import SuggestionEncoder -from azext_ai_did_you_mean_this._telemetry import ( - FaultType, - NoRecommendationReason, - TelemetryProperty, - ExtensionTelemterySession, - get_correlation_id, - get_subscription_id, - set_exception, - set_properties, - set_property -) -from azext_ai_did_you_mean_this._timer import Timer -from azext_ai_did_you_mean_this._util import safe_repr -from azext_ai_did_you_mean_this.version import VERSION - -logger = get_logger(__name__) - - -# Commands -# note: at least one command is required in order for the CLI to load the extension. -def show_extension_version(): - print(f'Current version: {VERSION}') - - -def normalize_and_sort_parameters(command_table, command, parameters): - logger.debug('normalize_and_sort_parameters: command: "%s", parameters: "%s"', command, parameters) - - _command, parsed_command = Command.parse(command_table, command) - normalized_parameters, unrecognized_parameters = Command.normalize(_command, *parameters) - normalized_parameters = ','.join(normalized_parameters) - unrecognized_parameters = ','.join(unrecognized_parameters) - - set_properties({ - TelemetryProperty.RawCommand: command, - TelemetryProperty.Command: parsed_command, - TelemetryProperty.RawParams: ','.join(parameters), - TelemetryProperty.Params: normalized_parameters, - TelemetryProperty.UnrecognizedParams: unrecognized_parameters - }) - - return parsed_command, normalized_parameters - - -def recommend_recovery_options(version, command, parameters, extension): - result = [] - execution_time = Timer() - - with ExtensionTelemterySession(): - with execution_time: - cmd_tbl = CommandTable.CMD_TBL - logger.debug(RECOMMEND_RECOVERY_OPTIONS_LOG_FMT_STR, - version, command, parameters, extension) - - set_properties({ - TelemetryProperty.CoreVersion: version, - TelemetryProperty.ExtensionVersion: VERSION, - }) - - # if the command is empty... - if not command: - # try to get the raw command field from telemetry. - session = telemetry._session # pylint: disable=protected-access - # get the raw command parsed by the CommandInvoker object. - command = session.raw_command - if command: - logger.debug(f'Setting command to [{command}] from telemtry.') - - def append(line): - result.append(line) - - def unable_to_help(command): - msg = UNABLE_TO_HELP_FMT_STR.format(command=command) - append(msg) - - def show_recommendation_header(command): - msg = RECOMMENDATION_HEADER_FMT_STR.format(command=command) - append(style_message(msg)) - - if extension: - reason = NoRecommendationReason.CommandFromExtension.value - set_properties({ - TelemetryProperty.ResultSummary: reason, - TelemetryProperty.InferredExtension: extension - }) - logger.debug('Detected extension. No action to perform.') - if not command: - reason = NoRecommendationReason.EmptyCommand.value - set_property( - TelemetryProperty.ResultSummary, reason - ) - logger.debug('Command is empty. No action to perform.') - - # if an extension is in-use or the command is empty... - if extension or not command: - return result - - # perform some rudimentary parsing to extract the parameters and command in a standard form - command, parameters = normalize_and_sort_parameters(cmd_tbl, command, parameters) - response = call_aladdin_service(command, parameters, version) - - # only show recommendations when we can contact the service. - if response and response.status_code == HTTPStatus.OK: - recommendations = get_recommendations_from_http_response(response) - - if recommendations: - show_recommendation_header(command) - - for recommendation in recommendations: - append(f"\t{recommendation}") - # only prompt user to use "az find" for valid CLI commands - # note: pylint has trouble resolving statically initialized variables, which is why - # we need to disable the unsupported membership test rule - elif any(cmd.startswith(command) for cmd in cmd_tbl.keys()): # pylint: disable=unsupported-membership-test - set_property(TelemetryProperty.SuggestedAzFind, True) - unable_to_help(command) - else: - set_property( - TelemetryProperty.ResultSummary, - NoRecommendationReason.ServiceRequestFailure.value - ) - - logger.debug(RECOMMENDATION_PROCESSING_TIME_FMT_STR, execution_time.elapsed_ms) - set_property(TelemetryProperty.ExecutionTimeMs, execution_time.elapsed_ms) - - return result - - -def get_recommendations_from_http_response(response): - suggestions = [] - _suggestions = response.json() - suggestion_count = len(_suggestions) - - for suggestion in _suggestions: - try: - suggestion = Suggestion.parse(suggestion) - suggestions.append(suggestion) - except SuggestionParseError as ex: - logger.debug('Failed to parse suggestion field: %s', ex) - set_exception(exception=ex, - fault_type=FaultType.SuggestionParseError.value, - summary='Unexpected error while parsing suggestions from HTTP response body.') - except InvalidSuggestionError as ex: - msg = f'Failed to parse suggestion: {safe_repr(Suggestion, suggestion)}' - logger.debug(msg) - set_exception(exception=ex, - fault_type=FaultType.InvalidSuggestionError.value, - summary=msg) - - valid_suggestion_count = len(suggestions) - - set_properties({ - TelemetryProperty.NumberOfValidSuggestions: valid_suggestion_count, - TelemetryProperty.NumberOfSuggestions: suggestion_count - }) - - set_property(TelemetryProperty.Suggestions, json.dumps(suggestions, cls=SuggestionEncoder)) - - return suggestions - - -def call_aladdin_service(command, parameters, version): - logger.debug('call_aladdin_service: version: "%s", command: "%s", parameters: "%s"', - version, command, parameters) - - response = None - - time_to_get_user_info = Timer() - - with time_to_get_user_info: - correlation_id = get_correlation_id() - subscription_id = get_subscription_id() - - set_property(TelemetryProperty.TimeToRetrieveUserInfoMs, time_to_get_user_info.elapsed_ms) - - is_telemetry_enabled = telemetry.is_telemetry_enabled() - - telemetry_context = { - 'correlationId': correlation_id, - 'subscriptionId': subscription_id - } - - telemetry_context = {k: v for k, v in telemetry_context.items() if v is not None and is_telemetry_enabled} - - if not is_telemetry_enabled: - logger.debug(TELEMETRY_IS_DISABLED_STR) - else: - logger.debug(TELEMETRY_IS_ENABLED_STR) - - if subscription_id is None: - set_property(TelemetryProperty.NoSubscriptionId, True) - logger.debug(TELEMETRY_MISSING_SUBSCRIPTION_ID_STR) - if correlation_id is None: - set_property(TelemetryProperty.NoCorrelationId, True) - logger.debug(TELEMETRY_MISSING_CORRELATION_ID_STR) - - context = { - **telemetry_context, - "versionNumber": version - } - - query = { - "command": command, - "parameters": parameters - } - - api_url = 'https://app.aladdin.microsoft.com/api/v1.0/suggestions' - headers = {'Content-Type': 'application/json'} - - try: - round_trip_request_time = Timer() - - with round_trip_request_time: - response = requests.get( - api_url, - params={ - 'query': json.dumps(query), - 'clientType': 'AzureCli', - 'context': json.dumps(context), - 'extensionVersion': VERSION - }, - headers=headers, - timeout=(SERVICE_CONNECTION_TIMEOUT, None)) - - set_property(TelemetryProperty.RoundTripRequestTimeMs, round_trip_request_time.elapsed_ms) - except RequestException as ex: - if isinstance(ex, requests.Timeout): - set_property(TelemetryProperty.RequestTimedOut, True) - - logger.debug('requests.get() exception: %s', ex) - set_exception(exception=ex, - fault_type=FaultType.RequestError.value, - summary='HTTP Get Request to Aladdin suggestions endpoint failed.') - - return response diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/aladdin_scenario_test_base.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/aladdin_scenario_test_base.py deleted file mode 100644 index 4ddaad61603..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/aladdin_scenario_test_base.py +++ /dev/null @@ -1,149 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import logging -import re -from typing import Union -import unittest.mock as mock - -from azure.cli.testsdk import ScenarioTest -from azure.cli.testsdk.patches import mock_in_unit_test - -from azext_ai_did_you_mean_this._cmd_table import CommandTable -from azext_ai_did_you_mean_this._const import ( - RECOMMENDATION_HEADER_FMT_STR, - UNABLE_TO_HELP_FMT_STR -) -from azext_ai_did_you_mean_this.custom import recommend_recovery_options -from azext_ai_did_you_mean_this.tests.latest.data.user_fault_type import UserFaultType -from azext_ai_did_you_mean_this.tests.latest.mock.const import ( - AZURE_CLI_CORE_VERSION_PATCH_TARGET, - MOCK_CORE_CLI_VERSION, MOCK_UUID, - TELEMETRY_AZURE_SUBSCRIPTION_ID_PATCH_TARGET, - TELEMETRY_CORRELATION_ID_PATCH_TARGET, - TELEMETRY_IS_ENABLED_PATCH_TARGET -) - -FMT_STR_PATTERN_REGEX = r'\[[^\]]+\]|{[^}]+}' -SUGGEST_AZ_FIND_PATTERN_REGEX = re.sub(FMT_STR_PATTERN_REGEX, r'.*', UNABLE_TO_HELP_FMT_STR) -SHOW_RECOMMENDATIONS_PATTERN_REGEX = re.sub(FMT_STR_PATTERN_REGEX, r'.*', RECOMMENDATION_HEADER_FMT_STR) - - -def patch_ids(unit_test): - def _mock_uuid(*args, **kwargs): # pylint: disable=unused-argument - return MOCK_UUID - - mock_in_unit_test(unit_test, - TELEMETRY_CORRELATION_ID_PATCH_TARGET, - _mock_uuid()) - mock_in_unit_test(unit_test, - TELEMETRY_AZURE_SUBSCRIPTION_ID_PATCH_TARGET, - _mock_uuid) - - -def patch_version(unit_test): - mock_in_unit_test(unit_test, - AZURE_CLI_CORE_VERSION_PATCH_TARGET, - MOCK_CORE_CLI_VERSION) - - -def patch_telemetry(unit_test): - mock_in_unit_test(unit_test, - TELEMETRY_IS_ENABLED_PATCH_TARGET, - lambda: True) - - -class AladdinScenarioTest(ScenarioTest): - def __init__(self, method_name, **kwargs): - super().__init__(method_name, **kwargs) - - default_telemetry_patches = { - patch_ids, - patch_version, - patch_telemetry - } - - self._exception = None - self._exit_code = None - self._parser_error_msg = '' - self._recommendation_msg = '' - self._recommender_positional_arguments = None - - self.telemetry_patches = kwargs.pop('telemetry_patches', default_telemetry_patches) - self.recommendations = [] - - def setUp(self): - super().setUp() - - for patch in self.telemetry_patches: - patch(self) - - def cmd(self, command, checks=None, expect_failure=False, expect_user_fault_failure=False): - from azure.cli.core.azlogging import AzCliLogging - - func = recommend_recovery_options - logger_name = AzCliLogging._COMMAND_METADATA_LOGGER # pylint: disable=protected-access - base = super() - - def _hook(*args, **kwargs): - self._recommender_positional_arguments = args - result = func(*args, **kwargs) - self.recommendations = result - return result - - def run_cmd(): - base.cmd(command, checks=checks, expect_failure=expect_failure) - - with mock.patch('azext_ai_did_you_mean_this.custom.recommend_recovery_options', wraps=_hook): - with self.assertLogs(logger_name, level=logging.ERROR) as parser_logs: - if expect_user_fault_failure: - with self.assertRaises(SystemExit) as cm: - run_cmd() - - self._exception = cm.exception - self._exit_code = self._exception.code - self._parser_error_msg = '\n'.join(parser_logs.output) - self._recommendation_msg = '\n'.join(self.recommendations) - - self.assert_cmd_was_user_fault_failure() - else: - run_cmd() - - if expect_user_fault_failure: - self.assert_cmd_table_not_empty() - self.assert_user_fault_is_of_correct_type(expect_user_fault_failure) - - def assert_user_fault_is_of_correct_type(self, user_fault_type: Union[UserFaultType, bool]): - # check the user fault type where applicable - if isinstance(user_fault_type, UserFaultType) and user_fault_type != UserFaultType.NOT_APPLICABLE: - keyword = user_fault_type.keyword - self.assertRegex(self._parser_error_msg, keyword) - - def assert_cmd_was_user_fault_failure(self): - is_user_fault_failure = (isinstance(self._exception, SystemExit) and - self._exit_code == 2) - - self.assertTrue(is_user_fault_failure) - - def assert_cmd_table_not_empty(self): - self.assertIsNotNone(CommandTable.CMD_TBL) - - def assert_recommendations_were_shown(self): - self.assertRegex(self._recommendation_msg, SHOW_RECOMMENDATIONS_PATTERN_REGEX) - - def assert_az_find_was_suggested(self): - self.assertRegex(self._recommendation_msg, SUGGEST_AZ_FIND_PATTERN_REGEX) - - def assert_nothing_is_shown(self): - self.assertEqual(self._recommendation_msg, '') - - @property - def cli_version(self): - from azure.cli.core import __version__ as core_version - return core_version - - @property - def recommender_postional_arguments(self): - return self._recommender_positional_arguments diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/_command_normalization_scenario.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/_command_normalization_scenario.py deleted file mode 100644 index 81f8d8fa3e4..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/_command_normalization_scenario.py +++ /dev/null @@ -1,25 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from typing import Union - - -class CommandNormalizationScenario(): - def __init__(self, command: str, normalized_command: Union[str, None] = None): - super().__init__() - self.is_command_normalized = normalized_command is None - self.command = command - self.normalized_command = normalized_command or command - - @property - def normalizable(self): - return not self.is_command_normalized - - @staticmethod - def reduce(command: str, delim: str = ' '): - last_delim_idx = command.rfind(delim) - if last_delim_idx != -1: - command = command[:last_delim_idx] - return command diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/_command_parameter_normalization_scenario.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/_command_parameter_normalization_scenario.py deleted file mode 100644 index 61af0418fb5..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/_command_parameter_normalization_scenario.py +++ /dev/null @@ -1,135 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import re -from copy import deepcopy -from typing import Iterable, List, Pattern, Set, Tuple, Union - -from azext_ai_did_you_mean_this._cmd_table import CommandTable -from azext_ai_did_you_mean_this._command import Command -from azext_ai_did_you_mean_this._parameter import ( - GLOBAL_PARAM_BLOCKLIST, - GLOBAL_PARAM_LOOKUP_TBL -) -from azext_ai_did_you_mean_this._types import ArgumentsType -from azext_ai_did_you_mean_this._util import safe_repr -from azext_ai_did_you_mean_this.arguments import Arguments -from azext_ai_did_you_mean_this.tests.latest.data._command_normalization_scenario import \ - CommandNormalizationScenario - -GLOBAL_PARAMS = list(set(parameter for parameter in GLOBAL_PARAM_LOOKUP_TBL if parameter.startswith('--'))) - -PARAMETER_PATTERN: Pattern[str] = re.compile(r'-{1,2}[\w-]+') -NORMALIZED_PARAMETER_PATTERN: Pattern[str] = re.compile(r'--[\w-]+') - - -def _rudimentary_parameter_normalizer(parameters: Iterable[str]) -> Iterable[str]: - return sorted(set(parameters).difference(GLOBAL_PARAM_BLOCKLIST)) - - -def _validate_parameters(parameters: Iterable[str], pattern: Pattern[str], error_msg_fmt_str: str): - for parameter in parameters: - if not parameter: - continue - if not pattern.match(parameter): - raise ValueError(error_msg_fmt_str.format(parameter=parameter)) - - -class CommandParameterNormalizationScenario(): - parameters = Arguments('parameters', delim=',') - normalized_parameters = Arguments('normalized_parameters', delim=',') - - def __init__(self, - command: Union[str, CommandNormalizationScenario], - parameters: ArgumentsType = '', - normalized_parameters: ArgumentsType = '', - add_global_parameters: bool = False): - - self._command: Union[None, CommandNormalizationScenario] = None - - self.command = command - self.parameters = parameters - self.normalized_parameters = normalized_parameters - self.global_parameters_were_added = add_global_parameters - - global_parameters: List[str] = GLOBAL_PARAMS - - if add_global_parameters: - self.parameters = self.parameters + global_parameters - self.normalized_parameters = self.normalized_parameters + global_parameters - - _validate_parameters( - self.parameters, PARAMETER_PATTERN, 'Invalid parameter: "{parameter}"' - ) - _validate_parameters( - self.normalized_parameters, NORMALIZED_PARAMETER_PATTERN, 'Invalid normalized parameter: "{parameter}"' - ) - - # automate some of the more tedious to maintain normalization tasks. - self.normalized_parameters = _rudimentary_parameter_normalizer(self.normalized_parameters) - - @property - def command(self) -> str: - return self._command.command - - @command.setter - def command(self, value: Union[str, CommandNormalizationScenario]): - self._command = value - if not isinstance(value, CommandNormalizationScenario): - self._command = CommandNormalizationScenario(value) - return self._command - - @property - def normalized_command(self) -> str: - return self._command.normalized_command - - def normalize(self, command_table: dict = CommandTable.CMD_TBL) -> Tuple[str, List[str], List[str]]: - command, parsed_command = Command.parse(command_table, self.command) - parameters, unrecognized_parameters = Command.normalize(command, *self.parameters) - - normalized_parameters = list(parameters) - unrecognized_parameters = list(unrecognized_parameters) - - return parsed_command, normalized_parameters, unrecognized_parameters - - @property - def unrecognized_parameters(self) -> List[str]: - parameter_set: Set[str] = set(sorted(parameter for parameter in self.parameters if parameter.startswith('--'))) - parameter_set.difference_update(GLOBAL_PARAM_BLOCKLIST) - normalized_parameter_set = set(self.normalized_parameters) - unrecognized_parameters = list(sorted(parameter_set - normalized_parameter_set)) - - def is_prefix(token, parameters): - number_of_matches = len([p for p in parameters if token != p and p.startswith(token)]) - return number_of_matches == 1 - - return [ - parameter for parameter in unrecognized_parameters - if not is_prefix(parameter, normalized_parameter_set) - ] - - def __repr__(self) -> str: - attrs = dict( - command=self.command, - parameters=self.parameters, - normalized_parameters=self.normalized_parameters - ) - return safe_repr(self, attrs) - - def __copy__(self): - return type(self)( - self.command, - self.parameters, - self.normalized_parameters, - self.global_parameters_were_added - ) - - def __deepcopy__(self, memo): - return type(self)( - deepcopy(self.command, memo), - deepcopy(self.parameters, memo), - deepcopy(self.normalized_parameters, memo), - deepcopy(self.global_parameters_were_added, memo) - ) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/_scenario.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/_scenario.py deleted file mode 100644 index 9dac935a523..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/_scenario.py +++ /dev/null @@ -1,65 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from http import HTTPStatus -from typing import List, Union - -from requests import RequestException - -from azext_ai_did_you_mean_this._cli_command import CliCommand -from azext_ai_did_you_mean_this._suggestion import Suggestion -from azext_ai_did_you_mean_this.tests.latest.data.user_fault_type import UserFaultType - - -class RequestScenario(): - def __init__(self, status: HTTPStatus, exception: Union[RequestException, None] = None): - super().__init__() - - if exception and not isinstance(exception, RequestException): - raise TypeError('must specify exception of type RequestException') - - self.status = status.value - self.exception = exception - - @property - def exception_message(self): - return next(iter(self.exception.args), None) - - def raise_exception(self): - if self.raises: - raise self.exception - - @property - def raises(self): - return isinstance(self.exception, Exception) - - -DEFAULT_REQUEST_SCENARIO = RequestScenario(HTTPStatus.OK) - - -class Scenario(): - def __init__(self, - cli_command: CliCommand, - suggestions: List[Suggestion] = None, - expected_user_fault_type: UserFaultType = UserFaultType.NOT_APPLICABLE, - extension: Union[str, None] = None, - request_scenario: RequestScenario = DEFAULT_REQUEST_SCENARIO): - self._cli_command = cli_command - self.suggestions = suggestions or [] - self.expected_user_fault_type = expected_user_fault_type - self.extension = extension - self.request_scenario = request_scenario - - @property - def cli_command(self) -> str: - return str(self._cli_command) - - @property - def command(self) -> str: - return self._cli_command.command - - @property - def parameters(self) -> str: - return ','.join(self._cli_command.parameters) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/fault.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/fault.py deleted file mode 100644 index 1dce6f457be..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/fault.py +++ /dev/null @@ -1,69 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - - -class FaultDetails(): - FAULT_DESCRIPTION_PROPERTY = 'Reserved.DataModel.Fault.Description' - FAULT_TYPE_PROPERTY = 'Context.Default.AzureCLI.FaultType' - FAULT_CORRELATION_PROPERTY = 'Reserved.DataModel.Correlation.1' - FAULT_MESSAGE_PROPERTY = 'Reserved.DataModel.Fault.Exception.Message' - - def __init__(self, details: dict): - super().__init__() - - self._details = details - self._type = details.get(self.FAULT_TYPE_PROPERTY, None) - self._description = details.get(self.FAULT_DESCRIPTION_PROPERTY, None) - self._correlation_id = details.get(self.FAULT_CORRELATION_PROPERTY, None) - self._message = details.get(self.FAULT_MESSAGE_PROPERTY, None) - - if self._correlation_id: - self._correlation_id = next(iter(self._correlation_id.split(',')), None) - - @property - def fault_type(self): - return self._type - - @property - def description(self): - return self._description - - @property - def correlation_id(self): - return self._correlation_id - - @property - def message(self): - return self._message - - -class Fault(): - def __init__(self, name: str, details: dict, exception: Exception, fault_type: str, summary: str): - super().__init__() - self._name = name - self._details = FaultDetails(details) if details else details - self._exception = exception - self._type = fault_type - self._summary = summary - - @property - def name(self): - return self._name - - @property - def details(self): - return self._details - - @property - def exception(self): - return self._exception - - @property - def fault_type(self): - return self._type - - @property - def summary(self): - return self._summary diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/scenarios.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/scenarios.py deleted file mode 100644 index deb73456b79..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/scenarios.py +++ /dev/null @@ -1,145 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from typing import List - -from azext_ai_did_you_mean_this._cli_command import CliCommand -from azext_ai_did_you_mean_this._suggestion import Suggestion -from azext_ai_did_you_mean_this.tests.latest.data._command_parameter_normalization_scenario import \ - CommandParameterNormalizationScenario -from azext_ai_did_you_mean_this.tests.latest.data._command_normalization_scenario import \ - CommandNormalizationScenario -from azext_ai_did_you_mean_this.tests.latest.data._scenario import Scenario -from azext_ai_did_you_mean_this.tests.latest.data.user_fault_type import \ - UserFaultType - -TEST_SCENARIOS: List[Scenario] = [ - Scenario( - cli_command=CliCommand('account'), - expected_user_fault_type=UserFaultType.MISSING_REQUIRED_SUBCOMMAND, - suggestions=[ - Suggestion('account list'), - Suggestion('account show'), - Suggestion('account set', '--subscription', 'Subscription') - ] - ), - Scenario( - cli_command=CliCommand('account get-access-token', ['--test', '--debug'], 'a'), - expected_user_fault_type=UserFaultType.UNRECOGNIZED_ARGUMENTS - ), - Scenario( - cli_command=CliCommand('ai-did-you-mean-this ve'), - expected_user_fault_type=UserFaultType.NOT_IN_A_COMMAND_GROUP, - extension='ai-did-you-mean-this' - ), - Scenario( - cli_command=CliCommand('ai-did-you-mean-this version', '--name', '"Christopher"'), - expected_user_fault_type=UserFaultType.UNRECOGNIZED_ARGUMENTS, - extension='ai-did-you-mean-this' - ), - Scenario( - cli_command=CliCommand('boi'), - expected_user_fault_type=UserFaultType.NOT_IN_A_COMMAND_GROUP - ), - Scenario( - cli_command=CliCommand('extension'), - expected_user_fault_type=UserFaultType.MISSING_REQUIRED_SUBCOMMAND, - suggestions=[ - Suggestion('extension list') - ] - ), - Scenario( - cli_command=CliCommand('vm', '--debug'), - expected_user_fault_type=UserFaultType.MISSING_REQUIRED_SUBCOMMAND - ), - Scenario( - cli_command=CliCommand('vm list', '--query', '".id"'), - expected_user_fault_type=UserFaultType.INVALID_JMESPATH_QUERY, - suggestions=[ - Suggestion('vm list', ['--output', '--query'], ['json', '"[].id"']) - ] - ), - Scenario( - cli_command=CliCommand('vm show', ['--name', '--ids'], '"BigJay"'), - expected_user_fault_type=UserFaultType.EXPECTED_AT_LEAST_ONE_ARGUMENT - ), -] - -NORMALIZATION_TEST_SCENARIOS: List[CommandParameterNormalizationScenario] = [ - # global + command shorthand parameters with 1 longhand duplicate - CommandParameterNormalizationScenario( - command='vm show', - parameters=['-g', '--name', '-n', '--subscription', '-o'], - normalized_parameters=['--name', '--resource-group', '--subscription', '--output'], - ), - # global + command shorthand parameters with 2 longhand duplicates - # global parameter prefix - CommandParameterNormalizationScenario( - command='vm create', - parameters=[ - '-z', '--vmss', '--location', '-l', '--nsg', '--subnet', - '-g', '--name', '-n', '--subscription', '--out', '--ultra-ssd', - '-h' - ], - normalized_parameters=[ - '--zone', '--vmss', '--location', '--nsg', '--subnet', '--name', - '--resource-group', '--subscription', '--output', '--ultra-ssd-enabled', - '--help' - ] - ), - # command group + global parameter fallback - CommandParameterNormalizationScenario( - command='account', - add_global_parameters=True - ), - # command shorthand parameter - CommandParameterNormalizationScenario( - command='account set', - parameters='-s', - normalized_parameters='--subscription' - ), - # no parameters - CommandParameterNormalizationScenario( - command='account set' - ), - # global parameter prefixes + duplicate parameters - CommandParameterNormalizationScenario( - command='account list', - parameters=['--out', '--que', '--all', '--all'], - normalized_parameters=['--output', '--query', '--all'] - ), - # invalid parameters for command - CommandParameterNormalizationScenario( - command='extension list', - parameters=['--foo', '--bar'], - normalized_parameters='' - ), - # invalid parameter for command + global parameters - CommandParameterNormalizationScenario( - command='ai-did-you-mean-this version', - parameters=['--baz'], - add_global_parameters=True - ), - # global parameters - CommandParameterNormalizationScenario( - command='kusto cluster create', - add_global_parameters=True - ), - # parameter shorthand + prefixes - CommandParameterNormalizationScenario( - command='group create', - parameters=['-l', '-n', '--manag', '--tag', '--s'], - normalized_parameters=['--location', '--resource-group', '--managed-by', '--tags', '--subscription'] - ), - # invalid command and invalid parameters - CommandParameterNormalizationScenario( - CommandNormalizationScenario('Lorem ipsum.', 'Lorem'), - parameters=['--foo', '--baz'] - ), - # invalid (empty) command and no parameters - CommandParameterNormalizationScenario( - command='' - ) -] diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/telemetry_property.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/telemetry_property.py deleted file mode 100644 index 66b6a04e39f..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/telemetry_property.py +++ /dev/null @@ -1,31 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from enum import Enum -from collections import namedtuple -from typing import Union - -TelemetryPropertyInfo = namedtuple('TelemetryPropertyInfo', ['property_name']) - - -class CoreTelemetryProperty(Enum): - EXTENSION_NAME = TelemetryPropertyInfo(property_name='Context.Default.AzureCLI.ExtensionName') - CORRELATION_ID = TelemetryPropertyInfo(property_name='Reserved.DataModel.CorrelationId') - - def __init__(self, property_name: str): - super().__init__() - self._property_name = property_name - - @property - def property_name(self) -> str: - return self._property_name - - def __eq__(self, value: Union['CoreTelemetryProperty', str]): - if hasattr(value, 'property_name'): - value = value.property_name - return self._property_name == value - - def __hash__(self): - return hash(self._property_name) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/user_fault_type.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/user_fault_type.py deleted file mode 100644 index 3986a5bc3bd..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/user_fault_type.py +++ /dev/null @@ -1,26 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from enum import Enum -from collections import namedtuple - -UserFaultInfo = namedtuple('UserFaultInfo', ['keyword']) - - -class UserFaultType(Enum): - MISSING_REQUIRED_SUBCOMMAND = UserFaultInfo(keyword='_subcommand') - NOT_IN_A_COMMAND_GROUP = UserFaultInfo(keyword='command group') - EXPECTED_AT_LEAST_ONE_ARGUMENT = UserFaultInfo(keyword='expected') - UNRECOGNIZED_ARGUMENTS = UserFaultInfo(keyword='unrecognized') - INVALID_JMESPATH_QUERY = UserFaultInfo(keyword='jmespath') - NOT_APPLICABLE = UserFaultInfo(keyword='na') - - def __init__(self, keyword): - super().__init__() - self._keyword = keyword - - @property - def keyword(self): - return self._keyword diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/extension_telemetry_test_base.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/extension_telemetry_test_base.py deleted file mode 100644 index ed9356ad303..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/extension_telemetry_test_base.py +++ /dev/null @@ -1,140 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import unittest -from typing import Any, Dict - -import azure.cli.core.telemetry as core_telemetry - -import azext_ai_did_you_mean_this._telemetry as extension_telemetry -from azext_ai_did_you_mean_this._const import ( - EXTENSION_NAME, - UNEXPECTED_ERROR_STR -) -from azext_ai_did_you_mean_this._telemetry import ( - FaultType, - TelemetryProperty -) -from azext_ai_did_you_mean_this.tests.latest.data.telemetry_property import \ - CoreTelemetryProperty -from azext_ai_did_you_mean_this.tests.latest.mock.const import ( - MOCK_INVALID_CORE_CLI_VERSION, - MOCK_UUID, - TELEMETRY_EXTENSION_EVENT_NAME, - TELEMETRY_FAULT_EVENT_NAME -) -from azext_ai_did_you_mean_this.tests.latest.mock.extension_telemetry_session import ( - ExtensionTelemetryEvent, - Fault, - UnexpectedError -) - - -class ExtensionTelemetryTest(unittest.TestCase): - def setUp(self): - super().setUp() - - self.mock_uuid = MOCK_UUID - self.mock_version = MOCK_INVALID_CORE_CLI_VERSION - - self.unexpected_error_cls = UnexpectedError - self.unexpected_error_summary = UNEXPECTED_ERROR_STR - - self.extension_name = EXTENSION_NAME - self.extension_event_name = TELEMETRY_EXTENSION_EVENT_NAME - self.fault_event_name = TELEMETRY_FAULT_EVENT_NAME - - @property - def is_telemetry_enabled(self): - return core_telemetry.is_telemetry_enabled() - - @property - def telemetry_properties(self): - # pylint: disable=protected-access - return extension_telemetry._extension_telemetry_manager.properties - - def assertTelemetryPropertyIsSet(self, telemetry_property: TelemetryProperty): - self.assertIn(telemetry_property, self.telemetry_properties) - - def assertTelemetryPropertyIsNotSet(self, telemetry_property: TelemetryProperty): - self.assertNotIn(telemetry_property, self.telemetry_properties) - self.assertIsNone(extension_telemetry.get_property(telemetry_property)) - - def assertTelemetryPropertyValueEquals(self, telemetry_property: TelemetryProperty, value: str): - self.assertTelemetryPropertyIsSet(telemetry_property) - self.assertEqual(extension_telemetry.get_property(telemetry_property), value) - - def assertCorrelationIdEquals(self, value: str): - self.assertEqual(extension_telemetry.get_correlation_id(), value) - - def assertCorrelationIdIsNone(self): - self.assertIsNone(extension_telemetry.get_correlation_id()) - - def assertSubscriptionIdEquals(self, value: str): - self.assertEqual(extension_telemetry.get_subscription_id(), value) - - def assertSubscriptionIdIsNone(self): - self.assertIsNone(extension_telemetry.get_subscription_id()) - - def assertTelemetryPropertiesWereSet(self, telemetry_properties: Dict[TelemetryProperty, Any]): - for telemetry_property, value in telemetry_properties.items(): - if self.is_telemetry_enabled: - self.assertTelemetryPropertyValueEquals(telemetry_property, value) - else: - self.assertTelemetryPropertyIsNotSet(telemetry_property) - - def assertTelemetryPropertyWasSet(self, telemetry_property: TelemetryProperty, value: str): - if self.is_telemetry_enabled: - self.assertTelemetryPropertyValueEquals(telemetry_property, value) - else: - self.assertTelemetryPropertyIsNotSet(telemetry_property) - - def assertTelemetryFaultEventIsSet(self, - fault: Fault, - fault_type: FaultType, - summary: str, - exception_type: type, - exception_msg: str): - - # test that the fault information is set accordingly - self.assertIsNotNone(fault) - self.assertEqual(fault.name, self.fault_event_name) - self.assertEqual(fault.fault_type, fault_type) - self.assertEqual(fault.summary, summary) - self.assertIsInstance(fault.exception, exception_type) - - # test that a fault event is added to the underlying CLI telemetry session - self.assertIsNotNone(fault.details) - details = fault.details - self.assertEqual(details.fault_type, fault_type) - self.assertEqual(details.description, summary) - self.assertEqual(details.correlation_id, self.mock_uuid) - self.assertEqual(details.message, exception_msg) - - def assertCoreTelemetryPropertiesAreSet(self, event: ExtensionTelemetryEvent): - self.assertDictEqual( - event.properties, - { - CoreTelemetryProperty.EXTENSION_NAME: self.extension_name, - CoreTelemetryProperty.CORRELATION_ID: self.mock_uuid - } - ) - - def assertTelemetryExtensionEventIsSet(self, event: ExtensionTelemetryEvent): - # test that an extension event is added to the underlying CLI telemetry session - self.assertIsNotNone(event) - self.assertEqual(event.name, self.extension_event_name) - self.assertEqual(event.extension_name, self.extension_name) - self.assertCoreTelemetryPropertiesAreSet(event) - - def set_telemetry_property(self, telemetry_property: TelemetryProperty, value: str, validate: bool = False): - extension_telemetry.set_property(telemetry_property, value) - if validate: - self.assertTelemetryPropertyWasSet(telemetry_property, value) - - def set_telemetry_properties(self, telemetry_properties: Dict[TelemetryProperty, Any], validate: bool = False): - extension_telemetry.set_properties(telemetry_properties) - if validate: - self.assertTelemetryPropertiesWereSet(telemetry_properties) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/aladdin_service.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/aladdin_service.py deleted file mode 100644 index e1adbc54eb8..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/aladdin_service.py +++ /dev/null @@ -1,54 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import json -import unittest.mock as mock -from contextlib import contextmanager -from functools import wraps -from typing import List - -import requests - -from azext_ai_did_you_mean_this._suggestion import Suggestion -from azext_ai_did_you_mean_this._suggestion_encoder import SuggestionEncoder -from azext_ai_did_you_mean_this.tests.latest.data._scenario import ( - DEFAULT_REQUEST_SCENARIO, - RequestScenario, - Scenario -) - - -class MockAladdinServiceResponse(): - def __init__(self, - suggestions: List[Suggestion], - request_scenario: RequestScenario = DEFAULT_REQUEST_SCENARIO): - super().__init__() - self._request_scenario = request_scenario - self._response = requests.Response() - self._response.status_code = request_scenario.status - # pylint: disable=protected-access - self._response._content = bytes(json.dumps(suggestions, cls=SuggestionEncoder), 'utf-8') - - @property - def response(self) -> requests.Response: - if self._request_scenario.raises: - self._request_scenario.raise_exception() - return self._response - - @staticmethod - def from_scenario(scenario: Scenario) -> 'MockAladdinServiceResponse': - return MockAladdinServiceResponse(scenario.suggestions, scenario.request_scenario) - - -@contextmanager -def mock_aladdin_service_call(scenario: Scenario): - mock_response = MockAladdinServiceResponse.from_scenario(scenario) - - @wraps(requests.get) - def get(*_, **__): - return mock_response.response - - with mock.patch('requests.get', wraps=get): - yield None diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/const.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/const.py deleted file mode 100644 index 701d85689c9..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/const.py +++ /dev/null @@ -1,22 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -MOCK_UUID = '00000000-0000-0000-0000-000000000000' -MOCK_CORE_CLI_VERSION = '2.4.0' -MOCK_INVALID_CORE_CLI_VERSION = '0.0.0' - -AZURE_CLI_CORE_VERSION_PATCH_TARGET = 'azure.cli.core.__version__' - - -TELEMETRY_MODULE = 'azure.cli.core.telemetry' -TELEMETRY_SESSION_OBJECT = f'{TELEMETRY_MODULE}._session' -TELEMETRY_SET_EXCETION_PATCH_TARGET = f'{TELEMETRY_MODULE}.set_exception' -TELEMETRY_ADD_EXTESNION_EVENT_PATCH_TARGET = f'{TELEMETRY_MODULE}.add_extension_event' -TELEMETRY_IS_ENABLED_PATCH_TARGET = f'{TELEMETRY_MODULE}.is_telemetry_enabled' -TELEMETRY_CORRELATION_ID_PATCH_TARGET = f'{TELEMETRY_SESSION_OBJECT}.correlation_id' -TELEMETRY_AZURE_SUBSCRIPTION_ID_PATCH_TARGET = f'{TELEMETRY_MODULE}._get_azure_subscription_id' - -TELEMETRY_EXTENSION_EVENT_NAME = 'azurecli/extension' -TELEMETRY_FAULT_EVENT_NAME = 'azurecli/fault' diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/extension_telemetry_session.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/extension_telemetry_session.py deleted file mode 100644 index e184d5974f5..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/extension_telemetry_session.py +++ /dev/null @@ -1,109 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import unittest.mock as mock - -import azure.cli.core.telemetry as telemetry - -from azext_ai_did_you_mean_this._telemetry import ExtensionTelemterySession -from azext_ai_did_you_mean_this.tests.latest.data.fault import Fault -from azext_ai_did_you_mean_this.tests.latest.data.telemetry_property import \ - CoreTelemetryProperty -from azext_ai_did_you_mean_this.tests.latest.mock.const import ( - TELEMETRY_ADD_EXTESNION_EVENT_PATCH_TARGET, - TELEMETRY_IS_ENABLED_PATCH_TARGET, TELEMETRY_SET_EXCETION_PATCH_TARGET) - - -class UnexpectedError(Exception): - pass - - -class ExtensionTelemetryEvent(): - def __init__(self, event: dict): - super().__init__() - self._name = event.get('name', None) - self._properties = event.get('properties', {}) - self._extension_name = self._properties.get(CoreTelemetryProperty.EXTENSION_NAME, None) - - @property - def name(self): - return self._name - - @property - def properties(self): - return self._properties - - @property - def extension_name(self): - return self._extension_name - - -class ExtensionTelemetryMockSession(): - def __init__(self, enable_telemetry: bool = True): - super().__init__() - self._enable_telemetry = enable_telemetry - self._fault = None - self._extension_event = None - self._session = ExtensionTelemterySession() - self.patches = [] - self._add_telemetry_patches() - - def _add_telemetry_patches(self): - _set_exception_func_orig = telemetry.set_exception - _add_extension_event_func_orig = telemetry.add_extension_event - - def _set_exception_hook(exception: Exception, fault_type: str, *args, summary: str = None, **kwargs): - result = _set_exception_func_orig(exception, fault_type, *args, summary, **kwargs) - fault_name, details = telemetry._session.exceptions[-1] # pylint: disable=protected-access - self._fault = Fault(fault_name, details, exception, fault_type, summary) - return result - - def _add_extension_event_hook(extension_name: str, properties: dict): - instrumentation_key = telemetry.DEFAULT_INSTRUMENTATION_KEY - result = _add_extension_event_func_orig(extension_name, properties) - event = telemetry._session.events[instrumentation_key][-1] # pylint: disable=protected-access - self._extension_event = ExtensionTelemetryEvent(event) - return result - - self.patches.append( - mock.patch( - TELEMETRY_IS_ENABLED_PATCH_TARGET, - lambda: self._enable_telemetry - ) - ) - self.patches.append( - mock.patch( - TELEMETRY_SET_EXCETION_PATCH_TARGET, - wraps=_set_exception_hook - ) - ) - self.patches.append( - mock.patch( - TELEMETRY_ADD_EXTESNION_EVENT_PATCH_TARGET, - wraps=_add_extension_event_hook - ) - ) - - def __enter__(self): - for patch in self.patches: - patch.__enter__() - - self._session.__enter__() - - return self - - def __exit__(self, *args): - self._session.__exit__(*args) - - for patch in self.patches: - patch.__exit__(*args) - - @property - def fault(self) -> Fault: - return self._fault - - @property - def extension_event(self) -> ExtensionTelemetryEvent: - return self._extension_event diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_ai_did_you_mean_this_scenario.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_ai_did_you_mean_this_scenario.py deleted file mode 100644 index 1c296fb9b02..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_ai_did_you_mean_this_scenario.py +++ /dev/null @@ -1,76 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from http import HTTPStatus - -import requests - -from azext_ai_did_you_mean_this._cmd_table import CommandTable -from azext_ai_did_you_mean_this.custom import ( - call_aladdin_service, get_recommendations_from_http_response) -from azext_ai_did_you_mean_this.tests.latest.aladdin_scenario_test_base import \ - AladdinScenarioTest -from azext_ai_did_you_mean_this.tests.latest.data._scenario import ( - CliCommand, RequestScenario, Scenario, UserFaultType) -from azext_ai_did_you_mean_this.tests.latest.data.scenarios import \ - TEST_SCENARIOS -from azext_ai_did_you_mean_this.tests.latest.mock.aladdin_service import \ - mock_aladdin_service_call - - -class AiDidYouMeanThisScenarioTest(AladdinScenarioTest): - @classmethod - def setUpClass(cls): - super().setUpClass() - - cls.test_scenarios = TEST_SCENARIOS - - def test_ai_did_you_mean_this_aladdin_service_call(self): - for scenario in self.test_scenarios: - with mock_aladdin_service_call(scenario): - response = call_aladdin_service(scenario.command, scenario.parameters, self.cli_version) - - self.assertEqual(HTTPStatus.OK, response.status_code) - expected_suggestions = scenario.suggestions - recommendations = get_recommendations_from_http_response(response) - self.assertEquals(recommendations, expected_suggestions) - - def test_ai_did_you_mean_this_recommendations_for_user_fault_commands(self): - for scenario in self.test_scenarios: - cli_command = scenario.cli_command - command = scenario.command - - with mock_aladdin_service_call(scenario): - self.cmd(cli_command, expect_user_fault_failure=scenario.expected_user_fault_type) - - self.assert_cmd_table_not_empty() - cmd_tbl = CommandTable.CMD_TBL - - _version, _command, _parameters, _extension = self.recommender_postional_arguments - partial_command_match = command and any(cmd.startswith(command) for cmd in cmd_tbl.keys()) - self.assertEqual(_version, self.cli_version) - self.assertEqual(_command, command if partial_command_match else '') - self.assertEqual(bool(_extension), bool(scenario.extension)) - - if scenario.suggestions: - self.assert_recommendations_were_shown() - elif partial_command_match and not scenario.extension: - self.assert_az_find_was_suggested() - else: - self.assert_nothing_is_shown() - - def test_ai_did_you_mean_this_handles_service_connection_timeout(self): - exception_msg = 'Could not establish connection to https://foo.net' - exception = requests.ConnectTimeout(exception_msg) - scenario = Scenario( - CliCommand('account'), - expected_user_fault_type=UserFaultType.MISSING_REQUIRED_SUBCOMMAND, - request_scenario=RequestScenario(HTTPStatus.REQUEST_TIMEOUT, exception) - ) - - with mock_aladdin_service_call(scenario): - self.cmd(scenario.cli_command, expect_user_fault_failure=scenario.expected_user_fault_type) - - self.assert_nothing_is_shown() diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_command_parameter_normalization.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_command_parameter_normalization.py deleted file mode 100644 index ebccce7727b..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_command_parameter_normalization.py +++ /dev/null @@ -1,94 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import unittest -from copy import deepcopy -from enum import Enum, auto - -from azure.cli.core import MainCommandsLoader -from azure.cli.core.mock import DummyCli - -from azext_ai_did_you_mean_this.tests.latest.data._command_normalization_scenario import \ - CommandNormalizationScenario -from azext_ai_did_you_mean_this.tests.latest.data._command_parameter_normalization_scenario import \ - CommandParameterNormalizationScenario -from azext_ai_did_you_mean_this.tests.latest.data.scenarios import \ - NORMALIZATION_TEST_SCENARIOS - - -class TestCommandParameterNormalization(unittest.TestCase): - @classmethod - def setUpClass(cls): - super(TestCommandParameterNormalization, cls).setUpClass() - - from knack.events import EVENT_INVOKER_POST_CMD_TBL_CREATE - from azure.cli.core.commands.events import EVENT_INVOKER_PRE_LOAD_ARGUMENTS, EVENT_INVOKER_POST_LOAD_ARGUMENTS - from azure.cli.core.commands.arm import register_global_subscription_argument, register_ids_argument - - # setup a dummy CLI with a valid invocation object. - cls.cli = DummyCli() - cli_ctx = cls.cli.commands_loader.cli_ctx - cls.cli.invocation = cli_ctx.invocation_cls(cli_ctx=cli_ctx, - parser_cls=cli_ctx.parser_cls, - commands_loader_cls=cli_ctx.commands_loader_cls, - help_cls=cli_ctx.help_cls) - # load command table for every module - cmd_loader = cls.cli.invocation.commands_loader - cmd_loader.load_command_table(None) - - # Note: Both of the below events rely on EVENT_INVOKER_POST_CMD_TBL_CREATE. - # register handler for adding subscription argument - register_global_subscription_argument(cli_ctx) - # register handler for adding ids argument. - register_ids_argument(cli_ctx) - - cli_ctx.raise_event(EVENT_INVOKER_PRE_LOAD_ARGUMENTS, commands_loader=cmd_loader) - - # load arguments for each command - for scenario in NORMALIZATION_TEST_SCENARIOS: - cmd = scenario.command - # simulate command invocation by filling in required metadata. - cmd_loader.command_name = cmd - cli_ctx.invocation.data['command_string'] = cmd - # load argument info for the given command. - cmd_loader.load_arguments(cmd) - - cli_ctx.raise_event(EVENT_INVOKER_POST_LOAD_ARGUMENTS, commands_loader=cmd_loader) - cli_ctx.raise_event(EVENT_INVOKER_POST_CMD_TBL_CREATE, commands_loader=cmd_loader) - - cls.cmd_tbl = cmd_loader.command_table - - def setUp(self): - super().setUp() - - self.scenarios = NORMALIZATION_TEST_SCENARIOS - - def assertScenarioIsHandledCorrectly(self, scenario: CommandParameterNormalizationScenario): - normalized_command, normalized_parameters, unrecognized_parameters = scenario.normalize(self.cmd_tbl) - self.assertEqual(normalized_parameters, scenario.normalized_parameters) - self.assertEqual(normalized_command, scenario.normalized_command) - - def _create_invalid_subcommand_scenario(self, - scenario: CommandParameterNormalizationScenario, - invalid_subcommand: str): - - invalid_subcommands = [invalid_subcommand] * (1 if scenario.command else 2) - sep = ' ' if scenario.command else '' - command_with_invalid_subcommand = scenario.command + sep + ' '.join(invalid_subcommands) - - invalid_subcommand_scenario = deepcopy(scenario) - invalid_subcommand_scenario.command = CommandNormalizationScenario( - command_with_invalid_subcommand, - scenario.command if scenario.command else invalid_subcommand - ) - return invalid_subcommand_scenario - - def test_command_parameter_normalization(self): - for scenario in self.scenarios: - # base command - self.assertScenarioIsHandledCorrectly(scenario) - # command with invalid subcommand - invalid_subcommand_scenario = self._create_invalid_subcommand_scenario(scenario, 'oops') - self.assertScenarioIsHandledCorrectly(invalid_subcommand_scenario) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_extension_logging.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_extension_logging.py deleted file mode 100644 index 45c225470ae..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_extension_logging.py +++ /dev/null @@ -1,29 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import logging -import unittest - -from knack.log import CLI_LOGGER_NAME - -from azext_ai_did_you_mean_this._const import THOTH_LOG_PREFIX -from azext_ai_did_you_mean_this._logging import get_logger - -LOGGER_NAME = __name__ -logger = get_logger(LOGGER_NAME) - -TEST_MSG = 'the quick brown fox jumps over the lazy dog' - - -class TestExtensionLogging(unittest.TestCase): - def setUp(self): - self.logger_name = f'{CLI_LOGGER_NAME}.{LOGGER_NAME}' - - def test_that_log_prefix_is_prepended(self): - with self.assertLogs(self.logger_name, logging.DEBUG) as extension_logs: - logger.debug(TEST_MSG) - - logs = '\n'.join(extension_logs.output) - self.assertIn(THOTH_LOG_PREFIX, logs) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_extension_telemetry.py b/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_extension_telemetry.py deleted file mode 100644 index 7faf39f25e0..00000000000 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/test_extension_telemetry.py +++ /dev/null @@ -1,80 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import unittest -import unittest.mock as mock -from contextlib import contextmanager - -import azure.cli.core.telemetry as telemetry - -from azext_ai_did_you_mean_this._telemetry import FaultType, TelemetryProperty -from azext_ai_did_you_mean_this.tests.latest.aladdin_scenario_test_base import \ - patch_ids -from azext_ai_did_you_mean_this.tests.latest.extension_telemetry_test_base import \ - ExtensionTelemetryTest -from azext_ai_did_you_mean_this.tests.latest.mock.extension_telemetry_session import \ - ExtensionTelemetryMockSession - - -class TestExtensionTelemetry(ExtensionTelemetryTest): - def setUp(self): - super().setUp() - - for patch in [patch_ids]: - patch(self) - - self.mock_command = 'vm create' - self.unexpected_error_exception_msg = 'foo' - - def test_telemetry_is_disabled_if_consent_is_not_given(self): - with ExtensionTelemetryMockSession(enable_telemetry=False): - self.assertCorrelationIdIsNone() - self.assertSubscriptionIdIsNone() - - self.set_telemetry_property(TelemetryProperty.Command, self.mock_command, validate=True) - - def test_telemetry_properties_are_set_if_consent_is_given(self): - with ExtensionTelemetryMockSession(enable_telemetry=True): - self.assertCorrelationIdEquals(self.mock_uuid) - self.assertSubscriptionIdEquals(self.mock_uuid) - - self.set_telemetry_property(TelemetryProperty.Command, self.mock_command, validate=True) - - def test_can_set_multiple_properties_with_and_without_consent(self): - properties = { - TelemetryProperty.Command: self.mock_command, - TelemetryProperty.CoreVersion: self.mock_version - } - - with ExtensionTelemetryMockSession(enable_telemetry=True): - self.set_telemetry_properties(properties, validate=True) - - with ExtensionTelemetryMockSession(enable_telemetry=False): - self.set_telemetry_properties(properties, validate=True) - - def test_exception_is_caught_by_extension_telemetry_session(self): - msg = self.unexpected_error_exception_msg - - with self.assertRaises(self.unexpected_error_cls): - with ExtensionTelemetryMockSession() as session: - raise self.unexpected_error_cls(msg) - - self.assertTelemetryFaultEventIsSet( - session.fault, - FaultType.UnexpectedError, - self.unexpected_error_summary, - self.unexpected_error_cls, - msg - ) - - self.assertTelemetryExtensionEventIsSet(session.extension_event) - - def test_no_telemetry_is_logged_without_user_consent(self): - with ExtensionTelemetryMockSession(enable_telemetry=False) as session: - pass - - self.assertIsNone(session.fault) - self.assertIsNone(session.extension_event) - self.assertDictEqual(self.telemetry_properties, dict()) diff --git a/src/ai-did-you-mean-this/setup.cfg b/src/ai-did-you-mean-this/setup.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/ai-examples/HISTORY.rst b/src/ai-examples/HISTORY.rst index 7bb70278803..7c8f718feba 100644 --- a/src/ai-examples/HISTORY.rst +++ b/src/ai-examples/HISTORY.rst @@ -3,6 +3,10 @@ Release History =============== +0.2.4 +++++++ +* Send User ID hash for rate limiting to prevent bad actors from slowing down the service for other users + 0.2.3 ++++++ * Add fallback to use built-in values if there is an issue with using the service diff --git a/src/ai-examples/azext_ai_examples/custom.py b/src/ai-examples/azext_ai_examples/custom.py index 5c1ba11ccc3..874943567f5 100644 --- a/src/ai-examples/azext_ai_examples/custom.py +++ b/src/ai-examples/azext_ai_examples/custom.py @@ -4,6 +4,7 @@ # -------------------------------------------------------------------------------------------- +import hashlib import json import re import requests @@ -88,6 +89,10 @@ def call_aladdin_service(query): correlation_id = telemetry_core._session.correlation_id # pylint: disable=protected-access subscription_id = telemetry_core._get_azure_subscription_id() # pylint: disable=protected-access + # Used for DDOS protection and rate limiting + user_id = telemetry_core._get_user_azure_id() # pylint: disable=protected-access + hashed_user_id = hashlib.sha256(user_id.encode('utf-8')).hexdigest() + context = { "versionNumber": version, } @@ -100,7 +105,10 @@ def call_aladdin_service(query): context['subscriptionId'] = subscription_id api_url = 'https://app.aladdin.microsoft.com/api/v1.0/examples' - headers = {'Content-Type': 'application/json'} + headers = { + 'Content-Type': 'application/json', + 'X-UserId': hashed_user_id + } response = requests.get( api_url, diff --git a/src/ai-examples/setup.py b/src/ai-examples/setup.py index aa0e1fddd01..03f7d65c711 100644 --- a/src/ai-examples/setup.py +++ b/src/ai-examples/setup.py @@ -15,7 +15,7 @@ logger.warn("Wheel is not available, disabling bdist_wheel hook") # HISTORY.rst entry. -VERSION = '0.2.3' +VERSION = '0.2.4' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers diff --git a/src/aks-preview/HISTORY.md b/src/aks-preview/HISTORY.md index e84d31858ae..e114355d838 100644 --- a/src/aks-preview/HISTORY.md +++ b/src/aks-preview/HISTORY.md @@ -2,6 +2,24 @@ Release History =============== +0.4.64 ++++++ +* Add support for Open Service Mesh as an AKS addon +* Add support to get available upgrade versions for an agent pool in AKS + +0.4.63 ++++++ +* Enable the September (2020-09-01) for use with the AKS commands +* Support Start/Stop cluster feature in preview +* Support ephemeral OS functionality +* Add new properties to the autoscaler profile: max-empty-bulk-delete, skip-nodes-with-local-storage, skip-nodes-with-system-pods, expander, max-total-unready-percentage, ok-total-unready-count and new-pod-scale-up-delay +* Fix case sensitive issue for AKS dashboard addon +* Remove PREVIEW from azure policy addon + +0.4.62 ++++++ +* Add support for enable/disable confcom (sgx) addon. + 0.4.61 +++++ * Fix AGIC typo and remove preview label from VN #2141 diff --git a/src/aks-preview/azext_aks_preview/__init__.py b/src/aks-preview/azext_aks_preview/__init__.py index 9d65462fbfa..a652f5da8cb 100644 --- a/src/aks-preview/azext_aks_preview/__init__.py +++ b/src/aks-preview/azext_aks_preview/__init__.py @@ -16,7 +16,7 @@ class ContainerServiceCommandsLoader(AzCommandsLoader): def __init__(self, cli_ctx=None): from azure.cli.core.commands import CliCommandType - register_resource_type('latest', CUSTOM_MGMT_AKS_PREVIEW, '2020-06-01') + register_resource_type('latest', CUSTOM_MGMT_AKS_PREVIEW, '2020-09-01') acs_custom = CliCommandType(operations_tmpl='azext_aks_preview.custom#{}') super(ContainerServiceCommandsLoader, self).__init__(cli_ctx=cli_ctx, diff --git a/src/aks-preview/azext_aks_preview/_consts.py b/src/aks-preview/azext_aks_preview/_consts.py index 41461f9bf51..c09f99adc78 100644 --- a/src/aks-preview/azext_aks_preview/_consts.py +++ b/src/aks-preview/azext_aks_preview/_consts.py @@ -12,6 +12,11 @@ CONST_SPOT_EVICTION_POLICY_DELETE = "Delete" CONST_SPOT_EVICTION_POLICY_DEALLOCATE = "Deallocate" +CONST_KUBE_DASHBOARD_ADDON_NAME = "kubeDashboard" + +CONST_OS_DISK_TYPE_MANAGED = "Managed" +CONST_OS_DISK_TYPE_EPHEMERAL = "Ephemeral" + # IngressApplicaitonGateway configuration keys CONST_INGRESS_APPGW_ADDON_NAME = "IngressApplicationGateway" CONST_INGRESS_APPGW_APPLICATION_GATEWAY_NAME = "applicationGatewayName" @@ -20,6 +25,9 @@ CONST_INGRESS_APPGW_SUBNET_PREFIX = "subnetPrefix" CONST_INGRESS_APPGW_WATCH_NAMESPACE = "watchNamespace" +# Open Service Mesh configuration keys +CONST_OPEN_SERVICE_MESH_ADDON_NAME = "openServiceMesh" + CONST_NODEPOOL_MODE_SYSTEM = "System" CONST_NODEPOOL_MODE_USER = "User" @@ -27,12 +35,17 @@ # naming-and-referencing-containers--blobs--and-metadata#container-names CONST_CONTAINER_NAME_MAX_LENGTH = 63 +# confcom addon keys +CONST_CONFCOM_ADDON_NAME = "ACCSGXDevicePlugin" +CONST_ACC_SGX_QUOTE_HELPER_ENABLED = "ACCSGXQuoteHelperEnabled" ADDONS = { 'http_application_routing': 'httpApplicationRouting', 'monitoring': 'omsagent', 'virtual-node': 'aciConnector', 'azure-policy': 'azurepolicy', - 'kube-dashboard': 'kubeDashboard', - 'ingress-appgw': CONST_INGRESS_APPGW_ADDON_NAME + 'kube-dashboard': CONST_KUBE_DASHBOARD_ADDON_NAME, + 'ingress-appgw': CONST_INGRESS_APPGW_ADDON_NAME, + 'open-service-mesh': CONST_OPEN_SERVICE_MESH_ADDON_NAME, + "confcom": CONST_CONFCOM_ADDON_NAME } diff --git a/src/aks-preview/azext_aks_preview/_help.py b/src/aks-preview/azext_aks_preview/_help.py index bb9484723df..4d4a255142e 100644 --- a/src/aks-preview/azext_aks_preview/_help.py +++ b/src/aks-preview/azext_aks_preview/_help.py @@ -46,6 +46,9 @@ - name: --node-osdisk-size type: int short-summary: Size in GB of the OS disk for each node in the node pool. Minimum 30 GB. + - name: --node-osdisk-type + type: string + short-summary: OS disk type to be used for machines in a given agent pool. Defaults to 'Managed'. May not be changed for this pool after creation. - name: --node-osdisk-diskencryptionset-id type: string short-summary: ResourceId of the disk encryption set to use for enabling encryption at rest. @@ -137,8 +140,11 @@ monitoring - turn on Log Analytics monitoring. Uses the Log Analytics Default Workspace if it exists, else creates one. Specify "--workspace-resource-id" to use an existing workspace. If monitoring addon is enabled --no-wait argument will have no effect virtual-node - enable AKS Virtual Node. Requires --subnet-name to provide the name of an existing subnet for the Virtual Node to use. - azure-policy - enable Azure policy (PREVIEW). + azure-policy - enable Azure policy. The Azure Policy add-on for AKS enables at-scale enforcements and safeguards on your clusters in a centralized, consistent manner. + Learn more at aka.ms/aks/policy. ingress-appgw - enable Application Gateway Ingress Controller addon (PREVIEW). + confcom - enable confcom addon, this will enable SGX device plugin and quote helper by default(PREVIEW). + open-service-mesh - enable Open Service Mesh addon (PREVIEW). - name: --disable-rbac type: bool short-summary: Disable Kubernetes Role-Based Access Control. @@ -242,6 +248,9 @@ - name: --appgw-watch-namespace type: string short-summary: Specify the namespace, which AGIC should watch. This could be a single string value, or a comma-separated list of namespaces. + - name: --disable-sgxquotehelper + type: bool + short-summary: Disable SGX quote helper for confcom addon. examples: - name: Create a Kubernetes cluster with an existing SSH public key. text: az aks create -g MyResourceGroup -n MyManagedCluster --ssh-key-value /path/to/publickey @@ -273,6 +282,8 @@ text: az aks create -g MyResourceGroup -n MyManagedCluster --outbound-type userDefinedRouting --load-balancer-sku standard --vnet-subnet-id customUserSubnetVnetID - name: Create a kubernetes cluster with managed AAD enabled. text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-aad --aad-admin-group-object-ids --aad-tenant-id + - name: Create a kubernetes cluster with ephemeral os enabled. + text: az aks create -g MyResourceGroup -n MyManagedCluster --node-osdisk-type Ephemeral --node-osdisk-size 48 """.format(sp_cache=AKS_SERVICE_PRINCIPAL_CACHE) @@ -492,6 +503,9 @@ - name: --node-osdisk-size type: int short-summary: Size in GB of the OS disk for each node in the agent pool. Minimum 30 GB. + - name: --node-osdisk-type + type: string + short-summary: OS disk type to be used for machines in a given agent pool. Defaults to 'Managed'. May not be changed for this pool after creation. - name: --max-pods -m type: int short-summary: The maximum number of pods deployable to a node. @@ -544,6 +558,10 @@ - name: --max-surge type: string short-summary: Extra nodes used to speed upgrade. When specified, it represents the number or percent used, eg. 5 or 33% + examples: + - name: Create a nodepool in an existing AKS cluster with ephemeral os enabled. + text: az aks nodepool add -g MyResourceGroup -n nodepool1 --cluster-name MyManagedCluster --node-osdisk-type Ephemeral --node-osdisk-size 48 + """ helps['aks nodepool scale'] = """ @@ -606,6 +624,19 @@ text: az aks nodepool update --mode System -g MyResourceGroup -n nodepool1 --cluster-name MyManagedCluster """ +helps['aks nodepool get-upgrades'] = """ +type: command +short-summary: Get the available upgrade versions for an agent pool of the managed Kubernetes cluster. +examples: + - name: Get the available upgrade versions for an agent pool of the managed Kubernetes cluster. + text: az aks nodepool get-upgrades --resource-group MyResourceGroup --cluster-name MyManagedCluster --nodepool-name MyNodePool + crafted: true +parameters: + - name: --nodepool-name + type: string + short-summary: name of the node pool. +""" + helps['aks nodepool delete'] = """ type: command short-summary: Delete the agent pool in the managed Kubernetes cluster. @@ -620,8 +651,10 @@ monitoring - turn on Log Analytics monitoring. Uses the Log Analytics Default Workspace if it exists, else creates one. Specify "--workspace-resource-id" to use an existing workspace. If monitoring addon is enabled --no-wait argument will have no effect virtual-node - enable AKS Virtual Node. Requires --subnet-name to provide the name of an existing subnet for the Virtual Node to use. - azure-policy - enable Azure policy (PREVIEW). + azure-policy - enable Azure policy. The Azure Policy add-on for AKS enables at-scale enforcements and safeguards on your clusters in a centralized, consistent manner. + Learn more at aka.ms/aks/policy. ingress-appgw - enable Application Gateway Ingress Controller addon (PREVIEW). + open-service-mesh - enable Open Service Mesh addon (PREVIEW). parameters: - name: --addons -a type: string @@ -647,6 +680,9 @@ - name: --appgw-watch-namespace type: string short-summary: Specify the namespace, which AGIC should watch. This could be a single string value, or a comma-separated list of namespaces. Use with ingress-azure addon. + - name: --disable-sgxquotehelper + type: bool + short-summary: Disable SGX quote helper for confcom addon. examples: - name: Enable Kubernetes addons. (autogenerated) text: az aks enable-addons --addons virtual-node --name MyManagedCluster --resource-group MyResourceGroup --subnet-name VirtualNodeSubnet @@ -654,6 +690,9 @@ - name: Enable ingress-appgw addon with subnet prefix. text: az aks enable-addons --name MyManagedCluster --resource-group MyResourceGroup --addons ingress-appgw --appgw-subnet-prefix 10.2.0.0/16 --appgw-name gateway crafted: true + - name: Enable open-service-mesh addon. + text: az aks enable-addons --name MyManagedCluster --resource-group MyResourceGroup --addons open-service-mesh + crafted: true """ helps['aks get-versions'] = """ diff --git a/src/aks-preview/azext_aks_preview/_helpers.py b/src/aks-preview/azext_aks_preview/_helpers.py index 761498ba781..cb8356aa7ab 100644 --- a/src/aks-preview/azext_aks_preview/_helpers.py +++ b/src/aks-preview/azext_aks_preview/_helpers.py @@ -8,7 +8,7 @@ from knack.util import CLIError # pylint: disable=no-name-in-module,import-error -from .vendored_sdks.azure_mgmt_preview_aks.v2020_06_01.models import ManagedClusterAPIServerAccessProfile +from .vendored_sdks.azure_mgmt_preview_aks.v2020_09_01.models import ManagedClusterAPIServerAccessProfile from ._consts import CONST_CONTAINER_NAME_MAX_LENGTH from ._consts import CONST_OUTBOUND_TYPE_LOAD_BALANCER, CONST_OUTBOUND_TYPE_USER_DEFINED_ROUTING diff --git a/src/aks-preview/azext_aks_preview/_loadbalancer.py b/src/aks-preview/azext_aks_preview/_loadbalancer.py index a6b12825e61..b483dd5f65c 100644 --- a/src/aks-preview/azext_aks_preview/_loadbalancer.py +++ b/src/aks-preview/azext_aks_preview/_loadbalancer.py @@ -6,11 +6,11 @@ from distutils.version import StrictVersion # pylint: disable=no-name-in-module,import-error from knack.log import get_logger -from .vendored_sdks.azure_mgmt_preview_aks.v2020_06_01.models import ManagedClusterLoadBalancerProfile -from .vendored_sdks.azure_mgmt_preview_aks.v2020_06_01.models import ManagedClusterLoadBalancerProfileManagedOutboundIPs -from .vendored_sdks.azure_mgmt_preview_aks.v2020_06_01.models import ManagedClusterLoadBalancerProfileOutboundIPPrefixes -from .vendored_sdks.azure_mgmt_preview_aks.v2020_06_01.models import ManagedClusterLoadBalancerProfileOutboundIPs -from .vendored_sdks.azure_mgmt_preview_aks.v2020_06_01.models import ResourceReference +from .vendored_sdks.azure_mgmt_preview_aks.v2020_09_01.models import ManagedClusterLoadBalancerProfile +from .vendored_sdks.azure_mgmt_preview_aks.v2020_09_01.models import ManagedClusterLoadBalancerProfileManagedOutboundIPs +from .vendored_sdks.azure_mgmt_preview_aks.v2020_09_01.models import ManagedClusterLoadBalancerProfileOutboundIPPrefixes +from .vendored_sdks.azure_mgmt_preview_aks.v2020_09_01.models import ManagedClusterLoadBalancerProfileOutboundIPs +from .vendored_sdks.azure_mgmt_preview_aks.v2020_09_01.models import ResourceReference logger = get_logger(__name__) diff --git a/src/aks-preview/azext_aks_preview/_params.py b/src/aks-preview/azext_aks_preview/_params.py index 1f31a4d8543..5e7ae5f2136 100644 --- a/src/aks-preview/azext_aks_preview/_params.py +++ b/src/aks-preview/azext_aks_preview/_params.py @@ -26,7 +26,8 @@ from ._consts import CONST_OUTBOUND_TYPE_LOAD_BALANCER, \ CONST_OUTBOUND_TYPE_USER_DEFINED_ROUTING, CONST_SCALE_SET_PRIORITY_REGULAR, CONST_SCALE_SET_PRIORITY_SPOT, \ CONST_SPOT_EVICTION_POLICY_DELETE, CONST_SPOT_EVICTION_POLICY_DEALLOCATE, \ - CONST_NODEPOOL_MODE_SYSTEM, CONST_NODEPOOL_MODE_USER + CONST_NODEPOOL_MODE_SYSTEM, CONST_NODEPOOL_MODE_USER, \ + CONST_OS_DISK_TYPE_MANAGED, CONST_OS_DISK_TYPE_EPHEMERAL def load_arguments(self, _): @@ -103,6 +104,7 @@ def load_arguments(self, _): c.argument('enable_private_cluster', action='store_true') c.argument('enable_managed_identity', action='store_true') c.argument('assign_identity', type=str, validator=validate_assign_identity) + c.argument('disable_sgxquotehelper', action='store_true') with self.argument_context('aks update') as c: c.argument('enable_cluster_autoscaler', options_list=["--enable-cluster-autoscaler", "-e"], action='store_true') @@ -154,6 +156,7 @@ def load_arguments(self, _): c.argument('aks_custom_headers') c.argument('ppg') c.argument('max_surge', type=str, validator=validate_max_surge) + c.argument('node_os_disk_type', arg_type=get_enum_type([CONST_OS_DISK_TYPE_MANAGED, CONST_OS_DISK_TYPE_EPHEMERAL])) for scope in ['aks nodepool show', 'aks nodepool delete', 'aks nodepool scale', 'aks nodepool upgrade', 'aks nodepool update']: with self.argument_context(scope) as c: @@ -176,6 +179,8 @@ def load_arguments(self, _): with self.argument_context('aks enable-addons') as c: c.argument('addons', options_list=['--addons', '-a'], validator=validate_addons) c.argument('subnet_name', options_list=['--subnet-name', '-s']) + c.argument('disable_sgxquotehelper', action='store_true') + c.argument('osm_mesh_name', options_list=['--osm-mesh-name']) with self.argument_context('aks get-credentials') as c: c.argument('admin', options_list=['--admin', '-a'], default=False) diff --git a/src/aks-preview/azext_aks_preview/_validators.py b/src/aks-preview/azext_aks_preview/_validators.py index 6006a8f3053..b26b8868272 100644 --- a/src/aks-preview/azext_aks_preview/_validators.py +++ b/src/aks-preview/azext_aks_preview/_validators.py @@ -7,7 +7,7 @@ import os import os.path import re -from math import ceil, isnan, isclose +from math import isnan, isclose from ipaddress import ip_network from knack.log import get_logger @@ -16,7 +16,7 @@ from azure.cli.core.util import CLIError import azure.cli.core.keys as keys -from .vendored_sdks.azure_mgmt_preview_aks.v2020_03_01.models import ManagedClusterPropertiesAutoScalerProfile +from .vendored_sdks.azure_mgmt_preview_aks.v2020_09_01.models import ManagedClusterPropertiesAutoScalerProfile from ._helpers import (_fuzzy_match) @@ -214,7 +214,7 @@ def validate_spot_max_price(namespace): if not isnan(namespace.spot_max_price): if namespace.priority != "Spot": raise CLIError("--spot_max_price can only be set when --priority is Spot") - if namespace.spot_max_price > 0 and not isclose(namespace.spot_max_price * 100000 % 1, 0, rel_tol=1e-06): + if len(str(namespace.spot_max_price).split(".")) > 1 and len(str(namespace.spot_max_price).split(".")[1]) > 5: raise CLIError("--spot_max_price can only include up to 5 decimal places") if namespace.spot_max_price <= 0 and not isclose(namespace.spot_max_price, -1.0, rel_tol=1e-06): raise CLIError( @@ -404,9 +404,9 @@ def validate_addons(namespace): matches = str(matches)[1:-1] all_addons = list(ADDONS) all_addons = str(all_addons)[1:-1] - if len(matches) == 0: + if not matches: raise CLIError( f"The addon \"{addon_arg}\" is not a recognized addon option. Possible options: {all_addons}") raise CLIError( - f"The addon \"{addon_arg}\" is not a recognized addon option. Did you mean {matches}? Possible options: {all_addons}") + f"The addon \"{addon_arg}\" is not a recognized addon option. Did you mean {matches}? Possible options: {all_addons}") # pylint:disable=line-too-long diff --git a/src/aks-preview/azext_aks_preview/commands.py b/src/aks-preview/azext_aks_preview/commands.py index a9d35a2e83d..7581b89a3d0 100644 --- a/src/aks-preview/azext_aks_preview/commands.py +++ b/src/aks-preview/azext_aks_preview/commands.py @@ -53,6 +53,8 @@ def load_command_table(self, _): confirmation='Kubernetes will be unavailable during certificate rotation process.\n' + 'Are you sure you want to perform this operation?') g.wait_command('wait') + g.command('stop', 'stop', supports_no_wait=True) + g.command('start', 'start', supports_no_wait=True) # AKS container service commands with self.command_group('aks', container_services_sdk, client_factory=cf_container_services) as g: @@ -67,3 +69,4 @@ def load_command_table(self, _): g.custom_command('upgrade', 'aks_agentpool_upgrade', supports_no_wait=True) g.custom_command('update', 'aks_agentpool_update', supports_no_wait=True) g.custom_command('delete', 'aks_agentpool_delete', supports_no_wait=True) + g.custom_command('get-upgrades', 'aks_agentpool_get_upgrade_profile') diff --git a/src/aks-preview/azext_aks_preview/custom.py b/src/aks-preview/azext_aks_preview/custom.py index 855e25d3773..9e2264c02b8 100755 --- a/src/aks-preview/azext_aks_preview/custom.py +++ b/src/aks-preview/azext_aks_preview/custom.py @@ -24,9 +24,9 @@ import uuid import base64 import webbrowser +from math import isnan from six.moves.urllib.request import urlopen # pylint: disable=import-error from six.moves.urllib.error import URLError # pylint: disable=import-error -from math import isnan import requests from knack.log import get_logger from knack.util import CLIError @@ -49,7 +49,7 @@ KeyCredential, ServicePrincipalCreateParameters, GetObjectsParameters) -from .vendored_sdks.azure_mgmt_preview_aks.v2020_06_01.models import (ContainerServiceLinuxProfile, +from .vendored_sdks.azure_mgmt_preview_aks.v2020_09_01.models import (ContainerServiceLinuxProfile, ManagedClusterWindowsProfile, ContainerServiceNetworkProfile, ManagedClusterServicePrincipalProfile, @@ -74,7 +74,7 @@ from ._client_factory import get_resource_by_name from ._client_factory import cf_container_registry_service from ._client_factory import cf_storage -from ._client_factory import cf_agent_pools +from ._client_factory import cf_managed_clusters from ._helpers import (_populate_api_server_access_profile, _set_vm_set_type, @@ -82,11 +82,14 @@ _trim_fqdn_name_containing_hcp) from ._loadbalancer import (set_load_balancer_sku, is_load_balancer_profile_provided, update_load_balancer_profile, create_load_balancer_profile) +from ._consts import CONST_KUBE_DASHBOARD_ADDON_NAME from ._consts import CONST_INGRESS_APPGW_ADDON_NAME from ._consts import CONST_INGRESS_APPGW_APPLICATION_GATEWAY_ID, CONST_INGRESS_APPGW_APPLICATION_GATEWAY_NAME from ._consts import CONST_INGRESS_APPGW_SUBNET_PREFIX, CONST_INGRESS_APPGW_SUBNET_ID from ._consts import CONST_INGRESS_APPGW_WATCH_NAMESPACE from ._consts import CONST_SCALE_SET_PRIORITY_REGULAR, CONST_SCALE_SET_PRIORITY_SPOT, CONST_SPOT_EVICTION_POLICY_DELETE +from ._consts import CONST_CONFCOM_ADDON_NAME, CONST_ACC_SGX_QUOTE_HELPER_ENABLED +from ._consts import CONST_OPEN_SERVICE_MESH_ADDON_NAME from ._consts import ADDONS logger = get_logger(__name__) @@ -599,11 +602,17 @@ def aks_browse(cmd, # pylint: disable=too-many-statements # verify the kube-dashboard addon was not disabled instance = client.get(resource_group_name, name) addon_profiles = instance.addon_profiles or {} - addon_profile = addon_profiles.get("kubeDashboard", ManagedClusterAddonProfile(enabled=True)) + # addon name is case insensitive + addon_profile = next((addon_profiles[k] for k in addon_profiles + if k.lower() == CONST_KUBE_DASHBOARD_ADDON_NAME.lower()), + ManagedClusterAddonProfile(enabled=False)) if not addon_profile.enabled: raise CLIError('The kube-dashboard addon was disabled for this managed cluster.\n' - 'To use "az aks browse" first enable the add-on\n' - 'by running "az aks enable-addons --addons kube-dashboard".') + 'To use "az aks browse" first enable the add-on ' + 'by running "az aks enable-addons --addons kube-dashboard".\n' + 'Starting with Kubernetes 1.19, AKS no longer support installation of ' + 'the managed kube-dashboard addon.\n' + 'Please use the Kubernetes resources view in the Azure portal (preview) instead.') _, browse_path = tempfile.mkstemp() @@ -784,6 +793,7 @@ def aks_create(cmd, # pylint: disable=too-many-locals,too-many-statements,to windows_admin_password=None, kubernetes_version='', node_vm_size="Standard_DS2_v2", + node_osdisk_type=None, node_osdisk_size=0, node_osdisk_diskencryptionset_id=None, node_count=3, @@ -843,6 +853,7 @@ def aks_create(cmd, # pylint: disable=too-many-locals,too-many-statements,to enable_aad=False, enable_azure_rbac=False, aad_admin_group_object_ids=None, + disable_sgxquotehelper=False, assign_identity=None, no_wait=False): if not no_ssh_key: @@ -894,6 +905,9 @@ def aks_create(cmd, # pylint: disable=too-many-locals,too-many-statements,to if node_osdisk_size: agent_pool_profile.os_disk_size_gb = int(node_osdisk_size) + if node_osdisk_type: + agent_pool_profile.os_disk_type = node_osdisk_type + _check_cluster_autoscaler_flag(enable_cluster_autoscaler, min_count, max_count, node_count, agent_pool_profile) linux_profile = None @@ -1004,7 +1018,8 @@ def aks_create(cmd, # pylint: disable=too-many-locals,too-many-statements,to appgw_subnet_prefix, appgw_id, appgw_subnet_id, - appgw_watch_namespace + appgw_watch_namespace, + disable_sgxquotehelper ) monitoring = False if 'omsagent' in addon_profiles: @@ -1656,25 +1671,31 @@ def aks_upgrade(cmd, # pylint: disable=unused-argument, too-many-return-state instance = client.get(resource_group_name, name) - if kubernetes_version != '' and node_image_only: - raise CLIError('Conflicting flags. Upgrading the Kubernetes version will also upgrade node image version. If you only want to upgrade the node version please use the "--node-image-only" option only.') - vmas_cluster = False for agent_profile in instance.agent_pool_profiles: if agent_profile.type.lower() == "availabilityset": vmas_cluster = True break + if kubernetes_version != '' and node_image_only: + raise CLIError('Conflicting flags. Upgrading the Kubernetes version will also upgrade node image version. ' + 'If you only want to upgrade the node version please use the "--node-image-only" option only.') + if node_image_only: - msg = "This node image upgrade operation will run across every node pool in the cluster and might take a while, do you wish to continue?" + msg = "This node image upgrade operation will run across every node pool in the cluster" \ + "and might take a while, do you wish to continue?" if not yes and not prompt_y_n(msg, default="n"): return None - agent_pool_client = cf_agent_pools(cmd.cli_ctx) + + # This only provide convenience for customer at client side so they can run az aks upgrade to upgrade all + # nodepools of a cluster. The SDK only support upgrade single nodepool at a time. for agent_pool_profile in instance.agent_pool_profiles: if vmas_cluster: - raise CLIError('This cluster is not using VirtualMachineScaleSets. Node image upgrade only operation can only be applied on VirtualMachineScaleSets cluster.') - _upgrade_single_agent_pool_node_image(agent_pool_client, resource_group_name, name, agent_pool_profile, no_wait) - return None + raise CLIError('This cluster is not using VirtualMachineScaleSets. Node image upgrade only operation ' + 'can only be applied on VirtualMachineScaleSets cluster.') + _upgrade_single_nodepool_image_version(True, client, resource_group_name, name, agent_pool_profile.name) + mc = client.get(resource_group_name, name) + return _remove_nulls([mc])[0] if instance.kubernetes_version == kubernetes_version: if instance.provisioning_state == "Succeeded": @@ -1720,14 +1741,22 @@ def aks_upgrade(cmd, # pylint: disable=unused-argument, too-many-return-state return sdk_no_wait(no_wait, client.create_or_update, resource_group_name, name, instance) -def _upgrade_single_agent_pool_node_image(client, resource_group_name, cluster_name, agent_pool_profile, no_wait): - instance = client.get(resource_group_name, cluster_name, agent_pool_profile.name) - instance.node_image_version = 'latest' - return sdk_no_wait(no_wait, client.create_or_update, resource_group_name, cluster_name, agent_pool_profile.name, instance) +def _upgrade_single_nodepool_image_version(no_wait, client, resource_group_name, cluster_name, nodepool_name): + return sdk_no_wait(no_wait, client.upgrade_node_image_version, resource_group_name, cluster_name, nodepool_name) -def _handle_addons_args(cmd, addons_str, subscription_id, resource_group_name, addon_profiles=None, - workspace_resource_id=None, appgw_name=None, appgw_subnet_prefix=None, appgw_id=None, appgw_subnet_id=None, appgw_watch_namespace=None): +def _handle_addons_args(cmd, # pylint: disable=too-many-statements + addons_str, + subscription_id, + resource_group_name, + addon_profiles=None, + workspace_resource_id=None, + appgw_name=None, + appgw_subnet_prefix=None, + appgw_id=None, + appgw_subnet_id=None, + appgw_watch_namespace=None, + disable_sgxquotehelper=False): if not addon_profiles: addon_profiles = {} addons = addons_str.split(',') if addons_str else [] @@ -1735,7 +1764,7 @@ def _handle_addons_args(cmd, addons_str, subscription_id, resource_group_name, a addon_profiles['httpApplicationRouting'] = ManagedClusterAddonProfile(enabled=True) addons.remove('http_application_routing') if 'kube-dashboard' in addons: - addon_profiles['kubeDashboard'] = ManagedClusterAddonProfile(enabled=True) + addon_profiles[CONST_KUBE_DASHBOARD_ADDON_NAME] = ManagedClusterAddonProfile(enabled=True) addons.remove('kube-dashboard') # TODO: can we help the user find a workspace resource ID? if 'monitoring' in addons: @@ -1772,6 +1801,17 @@ def _handle_addons_args(cmd, addons_str, subscription_id, resource_group_name, a addon_profile.config[CONST_INGRESS_APPGW_WATCH_NAMESPACE] = appgw_watch_namespace addon_profiles[CONST_INGRESS_APPGW_ADDON_NAME] = addon_profile addons.remove('ingress-appgw') + if 'open-service-mesh' in addons: + addon_profile = ManagedClusterAddonProfile(enabled=True, config={}) + addon_profiles[CONST_OPEN_SERVICE_MESH_ADDON_NAME] = addon_profile + addons.remove('open-service-mesh') + if 'confcom' in addons: + addon_profile = ManagedClusterAddonProfile(enabled=True, config={CONST_ACC_SGX_QUOTE_HELPER_ENABLED: "true"}) + if disable_sgxquotehelper: + addon_profile.config[CONST_ACC_SGX_QUOTE_HELPER_ENABLED] = "false" + addon_profiles[CONST_CONFCOM_ADDON_NAME] = addon_profile + addons.remove('confcom') + # error out if any (unrecognized) addons remain if addons: raise CLIError('"{}" {} not recognized by the --enable-addons argument.'.format( @@ -2184,6 +2224,7 @@ def aks_agentpool_add(cmd, # pylint: disable=unused-argument,too-many-local node_zones=None, enable_node_public_ip=False, node_vm_size=None, + node_osdisk_type=None, node_osdisk_size=0, node_count=3, vnet_subnet_id=None, @@ -2260,6 +2301,9 @@ def aks_agentpool_add(cmd, # pylint: disable=unused-argument,too-many-local if node_osdisk_size: agent_pool.os_disk_size_gb = int(node_osdisk_size) + if node_osdisk_type: + agent_pool.os_disk_type = node_osdisk_type + headers = get_aks_custom_headers(aks_custom_headers) return sdk_no_wait(no_wait, client.create_or_update, resource_group_name, cluster_name, nodepool_name, agent_pool, custom_headers=headers) @@ -2289,20 +2333,21 @@ def aks_agentpool_upgrade(cmd, # pylint: disable=unused-argument kubernetes_version='', no_wait=False, node_image_only=False, - max_surge=None,): - - from knack.prompting import prompt_y_n - instance = client.get(resource_group_name, cluster_name, nodepool_name) + max_surge=None): if kubernetes_version != '' and node_image_only: - raise CLIError('Conflicting flags. Upgrading the Kubernetes version will also upgrade node image version. If you only want to upgrade the node version please use the "--node-image-only" option only.') + raise CLIError('Conflicting flags. Upgrading the Kubernetes version will also upgrade node image version.' + 'If you only want to upgrade the node version please use the "--node-image-only" option only.') - instance.orchestrator_version = kubernetes_version if node_image_only: - msg = "This node image upgrade operation will run across every node in this node pool and might take a while, " \ - "do you wish to continue? " - if not prompt_y_n(msg, default="n"): - return None - instance.node_image_version = 'latest' + managed_cluster_client = cf_managed_clusters(cmd.cli_ctx) + return _upgrade_single_nodepool_image_version(no_wait, + managed_cluster_client, + resource_group_name, + cluster_name, + nodepool_name) + + instance = client.get(resource_group_name, cluster_name, nodepool_name) + instance.orchestrator_version = kubernetes_version if not instance.upgrade_settings: instance.upgrade_settings = AgentPoolUpgradeSettings() @@ -2313,6 +2358,14 @@ def aks_agentpool_upgrade(cmd, # pylint: disable=unused-argument return sdk_no_wait(no_wait, client.create_or_update, resource_group_name, cluster_name, nodepool_name, instance) +def aks_agentpool_get_upgrade_profile(cmd, # pylint: disable=unused-argument + client, + resource_group_name, + cluster_name, + nodepool_name): + return client.get_upgrade_profile(resource_group_name, cluster_name, nodepool_name) + + def aks_agentpool_update(cmd, # pylint: disable=unused-argument client, resource_group_name, @@ -2424,12 +2477,14 @@ def aks_disable_addons(cmd, client, resource_group_name, name, addons, no_wait=F def aks_enable_addons(cmd, client, resource_group_name, name, addons, workspace_resource_id=None, - subnet_name=None, appgw_name=None, appgw_subnet_prefix=None, appgw_id=None, appgw_subnet_id=None, appgw_watch_namespace=None, no_wait=False): + subnet_name=None, appgw_name=None, appgw_subnet_prefix=None, appgw_id=None, appgw_subnet_id=None, + appgw_watch_namespace=None, disable_sgxquotehelper=False, no_wait=False): instance = client.get(resource_group_name, name) subscription_id = get_subscription_id(cmd.cli_ctx) instance = _update_addons(cmd, instance, subscription_id, resource_group_name, name, addons, enable=True, workspace_resource_id=workspace_resource_id, subnet_name=subnet_name, - appgw_name=appgw_name, appgw_subnet_prefix=appgw_subnet_prefix, appgw_id=appgw_id, appgw_subnet_id=appgw_subnet_id, appgw_watch_namespace=appgw_watch_namespace, no_wait=no_wait) + appgw_name=appgw_name, appgw_subnet_prefix=appgw_subnet_prefix, appgw_id=appgw_id, appgw_subnet_id=appgw_subnet_id, appgw_watch_namespace=appgw_watch_namespace, + disable_sgxquotehelper=disable_sgxquotehelper, no_wait=no_wait) if 'omsagent' in instance.addon_profiles and instance.addon_profiles['omsagent'].enabled: _ensure_container_insights_for_monitoring(cmd, instance.addon_profiles['omsagent']) @@ -2479,19 +2534,20 @@ def _update_addons(cmd, # pylint: disable=too-many-branches,too-many-statements appgw_id=None, appgw_subnet_id=None, appgw_watch_namespace=None, + disable_sgxquotehelper=False, no_wait=False): # pylint: disable=unused-argument # parse the comma-separated addons argument addon_args = addons.split(',') addon_profiles = instance.addon_profiles or {} - if 'kube-dashboard' in addon_args and 'kubeDashboard' not in addon_profiles: - addon_profiles['kubeDashboard'] = ManagedClusterAddonProfile(enabled=True) os_type = 'Linux' # for each addons argument for addon_arg in addon_args: + if addon_arg not in ADDONS: + raise CLIError("Invalid addon name: {}.".format(addon_arg)) addon = ADDONS[addon_arg] if addon == 'aciConnector': # only linux is supported for now, in the future this will be a user flag @@ -2544,10 +2600,29 @@ def _update_addons(cmd, # pylint: disable=too-many-branches,too-many-statements addon_profile.config[CONST_INGRESS_APPGW_SUBNET_ID] = appgw_subnet_id if appgw_watch_namespace is not None: addon_profile.config[CONST_INGRESS_APPGW_WATCH_NAMESPACE] = appgw_watch_namespace + elif addon.lower() == CONST_OPEN_SERVICE_MESH_ADDON_NAME.lower(): + if addon_profile.enabled: + raise CLIError('The open-service-mesh addon is already enabled for this managed cluster.\n' + 'To change open-service-mesh configuration, run ' + f'"az aks disable-addons -a open-service-mesh -n {name} -g {resource_group_name}" ' + 'before enabling it again.') + addon_profile = ManagedClusterAddonProfile(enabled=True, config={}) + elif addon.lower() == CONST_CONFCOM_ADDON_NAME.lower(): + if addon_profile.enabled: + raise CLIError('The confcom addon is already enabled for this managed cluster.\n' + 'To change confcom configuration, run ' + f'"az aks disable-addons -a confcom -n {name} -g {resource_group_name}" ' + 'before enabling it again.') + addon_profile = ManagedClusterAddonProfile(enabled=True, config={CONST_ACC_SGX_QUOTE_HELPER_ENABLED: "true"}) + if disable_sgxquotehelper: + addon_profile.config[CONST_ACC_SGX_QUOTE_HELPER_ENABLED] = "false" addon_profiles[addon] = addon_profile else: if addon not in addon_profiles: - raise CLIError("The addon {} is not installed.".format(addon)) + if addon == CONST_KUBE_DASHBOARD_ADDON_NAME: + addon_profiles[addon] = ManagedClusterAddonProfile(enabled=False) + else: + raise CLIError("The addon {} is not installed.".format(addon)) addon_profiles[addon].config = None addon_profiles[addon].enabled = enable diff --git a/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_byo_appgw_with_ingress_appgw_addon.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_byo_appgw_with_ingress_appgw_addon.yaml index 7f5fc04551c..1720ddbe6dc 100644 --- a/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_byo_appgw_with_ingress_appgw_addon.yaml +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_byo_appgw_with_ingress_appgw_addon.yaml @@ -13,15 +13,15 @@ interactions: ParameterSetName: - --resource-group --name --address-prefix --subnet-name --subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-07-29T09:16:53Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-14T18:46:44Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:16:54 GMT + - Mon, 14 Sep 2020 18:46:44 GMT expires: - '-1' pragma: @@ -64,24 +64,24 @@ interactions: ParameterSetName: - --resource-group --name --address-prefix --subnet-name --subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"cliakstest000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003\"\ - ,\r\n \"etag\": \"W/\\\"6a78d581-53b4-4996-a6f7-26d044a696ae\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"ef7cdc12-cf53-4e83-845d-dcdce189cd4e\\\"\",\r\n \ \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ - \ \"Updating\",\r\n \"resourceGuid\": \"d7eea7e9-0b25-47b3-90de-20b606f8c39a\"\ + \ \"Updating\",\r\n \"resourceGuid\": \"62fe65d4-da1a-4ae1-81ec-0b19342d80b6\"\ ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ 11.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"aks-subnet\"\ ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\r\n \"etag\": \"W/\\\"6a78d581-53b4-4996-a6f7-26d044a696ae\\\"\"\ + ,\r\n \"etag\": \"W/\\\"ef7cdc12-cf53-4e83-845d-dcdce189cd4e\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\"\ ,\r\n \"addressPrefix\": \"11.0.0.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -93,7 +93,7 @@ interactions: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/240fec57-4e6c-4c30-8eab-31eb40c4d75a?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8ed1ca4f-e1da-4cbb-a1dc-e2c93eb8deff?api-version=2020-06-01 cache-control: - no-cache content-length: @@ -101,7 +101,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:16:56 GMT + - Mon, 14 Sep 2020 18:46:45 GMT expires: - '-1' pragma: @@ -114,7 +114,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 47849f32-eaf6-4993-b874-f55d87ae1e1f + - 832b80c9-58b3-4ac5-9c02-560d2b639956 x-ms-ratelimit-remaining-subscription-writes: - '1199' status: @@ -134,10 +134,10 @@ interactions: ParameterSetName: - --resource-group --name --address-prefix --subnet-name --subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/240fec57-4e6c-4c30-8eab-31eb40c4d75a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8ed1ca4f-e1da-4cbb-a1dc-e2c93eb8deff?api-version=2020-06-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -149,7 +149,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:16:59 GMT + - Mon, 14 Sep 2020 18:46:49 GMT expires: - '-1' pragma: @@ -166,7 +166,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - cb7947d1-c49b-48b3-a5bc-e6f52c710f6c + - 2c69be27-f5a9-4d41-b0c4-3eea7525a49f status: code: 200 message: OK @@ -184,22 +184,22 @@ interactions: ParameterSetName: - --resource-group --name --address-prefix --subnet-name --subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"cliakstest000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003\"\ - ,\r\n \"etag\": \"W/\\\"0f64e079-23f4-42ee-aa4c-150862f093a1\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"6c8a68bd-cf1a-4234-ba62-394afe77a191\\\"\",\r\n \ \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ - \ \"Succeeded\",\r\n \"resourceGuid\": \"d7eea7e9-0b25-47b3-90de-20b606f8c39a\"\ + \ \"Succeeded\",\r\n \"resourceGuid\": \"62fe65d4-da1a-4ae1-81ec-0b19342d80b6\"\ ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ 11.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"aks-subnet\"\ ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\r\n \"etag\": \"W/\\\"0f64e079-23f4-42ee-aa4c-150862f093a1\\\"\"\ + ,\r\n \"etag\": \"W/\\\"6c8a68bd-cf1a-4234-ba62-394afe77a191\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ ,\r\n \"addressPrefix\": \"11.0.0.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -215,9 +215,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:00 GMT + - Mon, 14 Sep 2020 18:46:49 GMT etag: - - W/"0f64e079-23f4-42ee-aa4c-150862f093a1" + - W/"6c8a68bd-cf1a-4234-ba62-394afe77a191" expires: - '-1' pragma: @@ -234,7 +234,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 32491813-c0c8-44b8-b7ae-6af112147464 + - bf3bf8ce-9ac3-4635-bf05-fe5fbf67bc99 status: code: 200 message: OK @@ -252,24 +252,24 @@ interactions: ParameterSetName: - -n --resource-group --vnet-name --address-prefixes -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"cliakstest000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003\"\ - ,\r\n \"etag\": \"W/\\\"0f64e079-23f4-42ee-aa4c-150862f093a1\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"6c8a68bd-cf1a-4234-ba62-394afe77a191\\\"\",\r\n \ \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ - \ \"Succeeded\",\r\n \"resourceGuid\": \"d7eea7e9-0b25-47b3-90de-20b606f8c39a\"\ + \ \"Succeeded\",\r\n \"resourceGuid\": \"62fe65d4-da1a-4ae1-81ec-0b19342d80b6\"\ ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ 11.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"aks-subnet\"\ ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\r\n \"etag\": \"W/\\\"0f64e079-23f4-42ee-aa4c-150862f093a1\\\"\"\ + ,\r\n \"etag\": \"W/\\\"6c8a68bd-cf1a-4234-ba62-394afe77a191\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ ,\r\n \"addressPrefix\": \"11.0.0.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -285,9 +285,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:00 GMT + - Mon, 14 Sep 2020 18:46:48 GMT etag: - - W/"0f64e079-23f4-42ee-aa4c-150862f093a1" + - W/"6c8a68bd-cf1a-4234-ba62-394afe77a191" expires: - '-1' pragma: @@ -304,7 +304,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 12a23dc4-4030-41e8-a7ec-bc9e8ebe196a + - c939797e-e89c-407b-a83a-ef1625693034 status: code: 200 message: OK @@ -332,24 +332,24 @@ interactions: ParameterSetName: - -n --resource-group --vnet-name --address-prefixes -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"cliakstest000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003\"\ - ,\r\n \"etag\": \"W/\\\"5f2206f1-5f44-49b3-802f-d022eb36b3eb\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"62cbd7da-77ab-4462-98c5-cd61df0b8bad\\\"\",\r\n \ \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ - \ \"Updating\",\r\n \"resourceGuid\": \"d7eea7e9-0b25-47b3-90de-20b606f8c39a\"\ + \ \"Updating\",\r\n \"resourceGuid\": \"62fe65d4-da1a-4ae1-81ec-0b19342d80b6\"\ ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ 11.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"aks-subnet\"\ ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\r\n \"etag\": \"W/\\\"5f2206f1-5f44-49b3-802f-d022eb36b3eb\\\"\"\ + ,\r\n \"etag\": \"W/\\\"62cbd7da-77ab-4462-98c5-cd61df0b8bad\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\"\ ,\r\n \"addressPrefix\": \"11.0.0.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -357,7 +357,7 @@ interactions: \n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n \ \ },\r\n {\r\n \"name\": \"appgw-subnet\",\r\n \"id\"\ : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet\"\ - ,\r\n \"etag\": \"W/\\\"5f2206f1-5f44-49b3-802f-d022eb36b3eb\\\"\"\ + ,\r\n \"etag\": \"W/\\\"62cbd7da-77ab-4462-98c5-cd61df0b8bad\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\"\ ,\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -367,7 +367,7 @@ interactions: : false,\r\n \"enableVmProtection\": false\r\n }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/e21d4052-1c27-4238-909b-8b236d93b2ac?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/791bb374-56c7-4730-b8c5-5bd10f5106f4?api-version=2020-06-01 cache-control: - no-cache content-length: @@ -375,7 +375,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:00 GMT + - Mon, 14 Sep 2020 18:46:49 GMT expires: - '-1' pragma: @@ -392,7 +392,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - c5ef86f6-a8f0-460d-a141-2c8e1eb2924e + - 344bd5c5-4308-4d71-8192-8a686df59b30 x-ms-ratelimit-remaining-subscription-writes: - '1199' status: @@ -412,10 +412,10 @@ interactions: ParameterSetName: - -n --resource-group --vnet-name --address-prefixes -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/e21d4052-1c27-4238-909b-8b236d93b2ac?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/791bb374-56c7-4730-b8c5-5bd10f5106f4?api-version=2020-06-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -427,7 +427,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:04 GMT + - Mon, 14 Sep 2020 18:46:52 GMT expires: - '-1' pragma: @@ -444,7 +444,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - da7c059f-be85-4389-b4f3-bac756152d50 + - 5025e211-dca8-48fa-96fa-230f5356bb21 status: code: 200 message: OK @@ -462,22 +462,22 @@ interactions: ParameterSetName: - -n --resource-group --vnet-name --address-prefixes -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"cliakstest000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003\"\ - ,\r\n \"etag\": \"W/\\\"cd91c492-5bdc-42a8-a601-7c29700559ce\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"dbfb329e-cbc0-4a7d-951f-95d412319833\\\"\",\r\n \ \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ - \ \"Succeeded\",\r\n \"resourceGuid\": \"d7eea7e9-0b25-47b3-90de-20b606f8c39a\"\ + \ \"Succeeded\",\r\n \"resourceGuid\": \"62fe65d4-da1a-4ae1-81ec-0b19342d80b6\"\ ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ 11.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"aks-subnet\"\ ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\r\n \"etag\": \"W/\\\"cd91c492-5bdc-42a8-a601-7c29700559ce\\\"\"\ + ,\r\n \"etag\": \"W/\\\"dbfb329e-cbc0-4a7d-951f-95d412319833\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ ,\r\n \"addressPrefix\": \"11.0.0.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -485,7 +485,7 @@ interactions: \n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n \ \ },\r\n {\r\n \"name\": \"appgw-subnet\",\r\n \"id\"\ : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet\"\ - ,\r\n \"etag\": \"W/\\\"cd91c492-5bdc-42a8-a601-7c29700559ce\\\"\"\ + ,\r\n \"etag\": \"W/\\\"dbfb329e-cbc0-4a7d-951f-95d412319833\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ ,\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -501,9 +501,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:04 GMT + - Mon, 14 Sep 2020 18:46:53 GMT etag: - - W/"cd91c492-5bdc-42a8-a601-7c29700559ce" + - W/"dbfb329e-cbc0-4a7d-951f-95d412319833" expires: - '-1' pragma: @@ -520,7 +520,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 6228412f-d4ff-4896-9495-d8be4b5d1394 + - 66d3fed1-3238-4ac3-8374-04f1e40c871b status: code: 200 message: OK @@ -538,15 +538,15 @@ interactions: ParameterSetName: - -n -g --allocation-method --sku -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-07-29T09:16:53Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-14T18:46:44Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -555,7 +555,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:04 GMT + - Mon, 14 Sep 2020 18:46:53 GMT expires: - '-1' pragma: @@ -588,18 +588,18 @@ interactions: ParameterSetName: - -n -g --allocation-method --sku -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"appgw-ip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip\"\ - ,\r\n \"etag\": \"W/\\\"02200bcc-2abf-400c-96c6-2d2a1b2566c3\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"3459366d-071b-46b4-bbbe-2febee7f66d8\\\"\",\r\n \ \ \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\"\ - : \"Updating\",\r\n \"resourceGuid\": \"57f411f5-bfd4-450a-a465-7706aa03603f\"\ + : \"Updating\",\r\n \"resourceGuid\": \"190de8c3-9e36-4550-993d-eb63cfebd218\"\ ,\r\n \"publicIPAddressVersion\": \"IPv4\",\r\n \"publicIPAllocationMethod\"\ : \"Static\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"ipTags\": []\r\n\ \ },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"sku\"\ @@ -608,7 +608,7 @@ interactions: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/e9c52a73-307c-473c-b46d-1daf26a01914?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/fe333d39-ae18-4110-a5c6-0bd7bff48ca9?api-version=2020-06-01 cache-control: - no-cache content-length: @@ -616,7 +616,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:05 GMT + - Mon, 14 Sep 2020 18:46:54 GMT expires: - '-1' pragma: @@ -629,7 +629,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 3ed89fb7-db43-4c54-9f9b-7819b348273e + - c7b6b4c5-13ba-4a06-ad20-1a440ea49455 x-ms-ratelimit-remaining-subscription-writes: - '1199' status: @@ -649,10 +649,10 @@ interactions: ParameterSetName: - -n -g --allocation-method --sku -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/e9c52a73-307c-473c-b46d-1daf26a01914?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/fe333d39-ae18-4110-a5c6-0bd7bff48ca9?api-version=2020-06-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -664,7 +664,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:07 GMT + - Mon, 14 Sep 2020 18:46:55 GMT expires: - '-1' pragma: @@ -681,7 +681,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 9ec79bdc-b510-4e99-8890-8db35963ff1a + - 38570aa2-4ad3-469c-b329-830d1eeccf45 status: code: 200 message: OK @@ -699,17 +699,17 @@ interactions: ParameterSetName: - -n -g --allocation-method --sku -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"appgw-ip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip\"\ - ,\r\n \"etag\": \"W/\\\"2edd4f4f-0d55-4f32-9a6e-0b7882aeff5c\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"23376c33-76bc-415c-b655-3a9dad7ca164\\\"\",\r\n \ \ \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\"\ - : \"Succeeded\",\r\n \"resourceGuid\": \"57f411f5-bfd4-450a-a465-7706aa03603f\"\ - ,\r\n \"ipAddress\": \"40.64.67.165\",\r\n \"publicIPAddressVersion\"\ + : \"Succeeded\",\r\n \"resourceGuid\": \"190de8c3-9e36-4550-993d-eb63cfebd218\"\ + ,\r\n \"ipAddress\": \"20.190.2.68\",\r\n \"publicIPAddressVersion\"\ : \"IPv4\",\r\n \"publicIPAllocationMethod\": \"Static\",\r\n \"idleTimeoutInMinutes\"\ : 4,\r\n \"ipTags\": []\r\n },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\"\ ,\r\n \"sku\": {\r\n \"name\": \"Standard\"\r\n }\r\n}" @@ -717,13 +717,13 @@ interactions: cache-control: - no-cache content-length: - - '644' + - '643' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:07 GMT + - Mon, 14 Sep 2020 18:46:55 GMT etag: - - W/"2edd4f4f-0d55-4f32-9a6e-0b7882aeff5c" + - W/"23376c33-76bc-415c-b655-3a9dad7ca164" expires: - '-1' pragma: @@ -740,7 +740,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 6ac68b89-4e2e-4e35-bba0-cd4f6076264f + - a86818ce-e4bd-4a6e-8197-6bc8588780f4 status: code: 200 message: OK @@ -758,15 +758,15 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-07-29T09:16:53Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-14T18:46:44Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -775,7 +775,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:07 GMT + - Mon, 14 Sep 2020 18:46:55 GMT expires: - '-1' pragma: @@ -803,24 +803,24 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?$filter=resourceGroup%20eq%20%27clitest000001%27%20and%20name%20eq%20%27cliakstest000003%27%20and%20resourceType%20eq%20%27Microsoft.Network%2FvirtualNetworks%27&api-version=2020-06-01 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003","name":"cliakstest000003","type":"Microsoft.Network/virtualNetworks","location":"westus2","tags":{}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003","name":"cliakstest000003","type":"Microsoft.Network/virtualNetworks","location":"westus2","tags":{}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?%24filter=resourceGroup+eq+%27clitest000001%27+and+name+eq+%27cliakstest000003%27+and+resourceType+eq+%27Microsoft.Network%2fvirtualNetworks%27&api-version=2020-06-01&%24skiptoken=eyJuZXh0UGFydGl0aW9uS2V5IjoiMSE4IVJFWTBNVVktIiwibmV4dFJvd0tleSI6IjEhMjA0IU9FVkRRVVJHUXpsRU1VRXpORVZCTkVJNE5EUXdSRGxHT0RkRk5FUTNRemhmUjFKTUxVaERVRlJTUVU1SFJVSk1SRE0wTnpnME5EVXpPakpFVjBWVFZGVlRNam95UkVOWU9qSkVNeTFOU1VOU1QxTlBSbFE2TWtWRFQwMVFWVlJGT2pKR1JFbFRTMU02TWtaTE9GTTZNa1JOUVZOVVJWSTZNa1F5TVRrek5URTVNVG95UkRBNk1rUkZWRU5FUkVsVFN5MVhSVk5VVlZNeSJ9"}' headers: cache-control: - no-cache content-length: - - '266' + - '902' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:08 GMT + - Mon, 14 Sep 2020 18:46:55 GMT expires: - '-1' pragma: @@ -848,24 +848,24 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?$filter=resourceGroup%20eq%20%27clitest000001%27%20and%20name%20eq%20%27appgw-ip%27%20and%20resourceType%20eq%20%27Microsoft.Network%2FpublicIPAddresses%27&api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?%24filter=resourceGroup+eq+%27clitest000001%27+and+name+eq+%27cliakstest000003%27+and+resourceType+eq+%27Microsoft.Network%2FvirtualNetworks%27&api-version=2020-06-01&%24skiptoken=eyJuZXh0UGFydGl0aW9uS2V5IjoiMSE4IVJFWTBNVVktIiwibmV4dFJvd0tleSI6IjEhMjA0IU9FVkRRVVJHUXpsRU1VRXpORVZCTkVJNE5EUXdSRGxHT0RkRk5FUTNRemhmUjFKTUxVaERVRlJTUVU1SFJVSk1SRE0wTnpnME5EVXpPakpFVjBWVFZGVlRNam95UkVOWU9qSkVNeTFOU1VOU1QxTlBSbFE2TWtWRFQwMVFWVlJGT2pKR1JFbFRTMU02TWtaTE9GTTZNa1JOUVZOVVJWSTZNa1F5TVRrek5URTVNVG95UkRBNk1rUkZWRU5FUkVsVFN5MVhSVk5VVlZNeSJ9 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip","name":"appgw-ip","type":"Microsoft.Network/publicIPAddresses","sku":{"name":"Standard"},"location":"westus2"}]}' + string: '{"value":[]}' headers: cache-control: - no-cache content-length: - - '270' + - '12' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:08 GMT + - Mon, 14 Sep 2020 18:46:55 GMT expires: - '-1' pragma: @@ -880,30 +880,7 @@ interactions: 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": {"appGwID": "[resourceId(''Microsoft.Network/applicationGateways'', - ''appgw'')]"}, "resources": [{"type": "Microsoft.Network/applicationGateways", - "name": "appgw", "location": "westus2", "tags": {}, "apiVersion": "2020-05-01", - "dependsOn": [], "properties": {"backendAddressPools": [{"name": "appGatewayBackendPool"}], - "backendHttpSettingsCollection": [{"name": "appGatewayBackendHttpSettings", - "properties": {"Port": 80, "Protocol": "Http", "CookieBasedAffinity": "disabled", - "connectionDraining": {"enabled": false, "drainTimeoutInSec": 1}}}], "frontendIPConfigurations": - [{"name": "appGatewayFrontendIP", "properties": {"publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip"}}}], - "frontendPorts": [{"name": "appGatewayFrontendPort", "properties": {"Port": - 80}}], "gatewayIPConfigurations": [{"name": "appGatewayFrontendIP", "properties": - {"subnet": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet"}}}], - "httpListeners": [{"name": "appGatewayHttpListener", "properties": {"FrontendIpConfiguration": - {"Id": "[concat(variables(''appGwID''), ''/frontendIPConfigurations/appGatewayFrontendIP'')]"}, - "FrontendPort": {"Id": "[concat(variables(''appGwID''), ''/frontendPorts/appGatewayFrontendPort'')]"}, - "Protocol": "http", "SslCertificate": null}}], "sku": {"name": "Standard_v2", - "tier": "Standard_v2", "capacity": 2}, "requestRoutingRules": [{"Name": "rule1", - "properties": {"RuleType": "Basic", "httpListener": {"id": "[concat(variables(''appGwID''), - ''/httpListeners/appGatewayHttpListener'')]"}, "backendAddressPool": {"id": - "[concat(variables(''appGwID''), ''/backendAddressPools/appGatewayBackendPool'')]"}, - "backendHttpSettings": {"id": "[concat(variables(''appGwID''), ''/backendHttpSettingsCollection/appGatewayBackendHttpSettings'')]"}}}], - "privateLinkConfigurations": []}, "zones": null}], "outputs": {"applicationGateway": - {"type": "object", "value": "[reference(''appgw'')]"}}}, "parameters": {}, "mode": - "Incremental"}}' + body: null headers: Accept: - application/json @@ -913,46 +890,40 @@ interactions: - network application-gateway create Connection: - keep-alive - Content-Length: - - '2328' - Content-Type: - - application/json; charset=utf-8 ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2020-06-01 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?$filter=resourceGroup%20eq%20%27clitest000001%27%20and%20name%20eq%20%27appgw-ip%27%20and%20resourceType%20eq%20%27Microsoft.Network%2FpublicIPAddresses%27&api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Resources/deployments/ag_deploy_YcTXQtEti22YcIfKMyMg1DG6kGQPVfzk","name":"ag_deploy_YcTXQtEti22YcIfKMyMg1DG6kGQPVfzk","type":"Microsoft.Resources/deployments","properties":{"templateHash":"1080408567464961405","parameters":{},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2020-07-29T09:17:10.4098414Z","duration":"PT0.9379297S","correlationId":"fc412fd8-c458-479c-a4ff-3e63eff869b4","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"applicationGateways","locations":["westus2"]}]}],"dependencies":[]}}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip","name":"appgw-ip","type":"Microsoft.Network/publicIPAddresses","sku":{"name":"Standard"},"location":"westus2"}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?%24filter=resourceGroup+eq+%27clitest000001%27+and+name+eq+%27appgw-ip%27+and+resourceType+eq+%27Microsoft.Network%2fpublicIPAddresses%27&api-version=2020-06-01&%24skiptoken=eyJuZXh0UGFydGl0aW9uS2V5IjoiMSE4IVJFWTBNVVktIiwibmV4dFJvd0tleSI6IjEhMjA0IU9FVkRRVVJHUXpsRU1VRXpORVZCTkVJNE5EUXdSRGxHT0RkRk5FUTNRemhmUjFKTUxVaERVRlJTUVU1SFJVSk1SRE0wTnpnME5EVXpPakpFVjBWVFZGVlRNam95UkVOWU9qSkVNeTFOU1VOU1QxTlBSbFE2TWtWRFQwMVFWVlJGT2pKR1JFbFRTMU02TWtaTE9GTTZNa1JOUVZOVVJWSTZNa1F5TVRrek5URTVNVG95UkRBNk1rUkZWRU5FUkVsVFN5MVhSVk5VVlZNeSJ9"}' headers: - azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/ag_deploy_YcTXQtEti22YcIfKMyMg1DG6kGQPVfzk/operationStatuses/08586055926560057036?api-version=2020-06-01 cache-control: - no-cache content-length: - - '662' + - '900' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:10 GMT + - Mon, 14 Sep 2020 18:46:56 GMT expires: - '-1' pragma: - no-cache strict-transport-security: - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding x-content-type-options: - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' status: - code: 201 - message: Created + code: 200 + message: OK - request: body: null headers: @@ -967,22 +938,24 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586055926560057036?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?%24filter=resourceGroup+eq+%27clitest000001%27+and+name+eq+%27appgw-ip%27+and+resourceType+eq+%27Microsoft.Network%2FpublicIPAddresses%27&api-version=2020-06-01&%24skiptoken=eyJuZXh0UGFydGl0aW9uS2V5IjoiMSE4IVJFWTBNVVktIiwibmV4dFJvd0tleSI6IjEhMjA0IU9FVkRRVVJHUXpsRU1VRXpORVZCTkVJNE5EUXdSRGxHT0RkRk5FUTNRemhmUjFKTUxVaERVRlJTUVU1SFJVSk1SRE0wTnpnME5EVXpPakpFVjBWVFZGVlRNam95UkVOWU9qSkVNeTFOU1VOU1QxTlBSbFE2TWtWRFQwMVFWVlJGT2pKR1JFbFRTMU02TWtaTE9GTTZNa1JOUVZOVVJWSTZNa1F5TVRrek5URTVNVG95UkRBNk1rUkZWRU5FUkVsVFN5MVhSVk5VVlZNeSJ9 response: body: - string: '{"status":"Running"}' + string: '{"value":[]}' headers: cache-control: - no-cache content-length: - - '20' + - '12' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:40 GMT + - Mon, 14 Sep 2020 18:46:56 GMT expires: - '-1' pragma: @@ -996,6 +969,80 @@ interactions: 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": {"appGwID": "[resourceId(''Microsoft.Network/applicationGateways'', + ''appgw'')]"}, "resources": [{"type": "Microsoft.Network/applicationGateways", + "name": "appgw", "location": "westus2", "tags": {}, "apiVersion": "2020-06-01", + "dependsOn": [], "properties": {"backendAddressPools": [{"name": "appGatewayBackendPool"}], + "backendHttpSettingsCollection": [{"name": "appGatewayBackendHttpSettings", + "properties": {"Port": 80, "Protocol": "Http", "CookieBasedAffinity": "disabled", + "connectionDraining": {"enabled": false, "drainTimeoutInSec": 1}}}], "frontendIPConfigurations": + [{"name": "appGatewayFrontendIP", "properties": {"publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip"}}}], + "frontendPorts": [{"name": "appGatewayFrontendPort", "properties": {"Port": + 80}}], "gatewayIPConfigurations": [{"name": "appGatewayFrontendIP", "properties": + {"subnet": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet"}}}], + "httpListeners": [{"name": "appGatewayHttpListener", "properties": {"FrontendIpConfiguration": + {"Id": "[concat(variables(''appGwID''), ''/frontendIPConfigurations/appGatewayFrontendIP'')]"}, + "FrontendPort": {"Id": "[concat(variables(''appGwID''), ''/frontendPorts/appGatewayFrontendPort'')]"}, + "Protocol": "http", "SslCertificate": null}}], "sku": {"name": "Standard_v2", + "tier": "Standard_v2", "capacity": 2}, "requestRoutingRules": [{"Name": "rule1", + "properties": {"RuleType": "Basic", "httpListener": {"id": "[concat(variables(''appGwID''), + ''/httpListeners/appGatewayHttpListener'')]"}, "backendAddressPool": {"id": + "[concat(variables(''appGwID''), ''/backendAddressPools/appGatewayBackendPool'')]"}, + "backendHttpSettings": {"id": "[concat(variables(''appGwID''), ''/backendHttpSettingsCollection/appGatewayBackendHttpSettings'')]"}}}], + "privateLinkConfigurations": []}, "zones": null}], "outputs": {"applicationGateway": + {"type": "object", "value": "[reference(''appgw'')]"}}}, "parameters": {}, "mode": + "Incremental"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network application-gateway create + Connection: + - keep-alive + Content-Length: + - '2328' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --sku --public-ip-address --subnet + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Resources/deployments/ag_deploy_B2uVQvhOobm2GcouCCudFv1JJUNMalD5","name":"ag_deploy_B2uVQvhOobm2GcouCCudFv1JJUNMalD5","type":"Microsoft.Resources/deployments","properties":{"templateHash":"16350393468906560251","parameters":{},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2020-09-14T18:46:57.7955508Z","duration":"PT0.34991S","correlationId":"bb01d550-4d50-428e-8f8b-9cecd3049d89","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"applicationGateways","locations":["westus2"]}]}],"dependencies":[]}}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/ag_deploy_B2uVQvhOobm2GcouCCudFv1JJUNMalD5/operationStatuses/08586014976680319736?api-version=2020-06-01 + cache-control: + - no-cache + content-length: + - '661' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 14 Sep 2020 18:46:57 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: @@ -1010,10 +1057,10 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586055926560057036?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586014976680319736?api-version=2020-06-01 response: body: string: '{"status":"Running"}' @@ -1025,7 +1072,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:18:10 GMT + - Mon, 14 Sep 2020 18:47:27 GMT expires: - '-1' pragma: @@ -1053,10 +1100,10 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586055926560057036?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586014976680319736?api-version=2020-06-01 response: body: string: '{"status":"Running"}' @@ -1068,7 +1115,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:18:40 GMT + - Mon, 14 Sep 2020 18:47:58 GMT expires: - '-1' pragma: @@ -1096,10 +1143,10 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586055926560057036?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586014976680319736?api-version=2020-06-01 response: body: string: '{"status":"Running"}' @@ -1111,7 +1158,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:19:10 GMT + - Mon, 14 Sep 2020 18:48:27 GMT expires: - '-1' pragma: @@ -1139,10 +1186,10 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586055926560057036?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586014976680319736?api-version=2020-06-01 response: body: string: '{"status":"Running"}' @@ -1154,7 +1201,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:19:41 GMT + - Mon, 14 Sep 2020 18:48:57 GMT expires: - '-1' pragma: @@ -1182,10 +1229,10 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586055926560057036?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586014976680319736?api-version=2020-06-01 response: body: string: '{"status":"Running"}' @@ -1197,7 +1244,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:20:11 GMT + - Mon, 14 Sep 2020 18:49:28 GMT expires: - '-1' pragma: @@ -1225,10 +1272,10 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586055926560057036?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586014976680319736?api-version=2020-06-01 response: body: string: '{"status":"Running"}' @@ -1240,7 +1287,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:20:42 GMT + - Mon, 14 Sep 2020 18:49:57 GMT expires: - '-1' pragma: @@ -1268,10 +1315,10 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586055926560057036?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586014976680319736?api-version=2020-06-01 response: body: string: '{"status":"Running"}' @@ -1283,7 +1330,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:21:13 GMT + - Mon, 14 Sep 2020 18:50:27 GMT expires: - '-1' pragma: @@ -1311,10 +1358,10 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586055926560057036?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586014976680319736?api-version=2020-06-01 response: body: string: '{"status":"Succeeded"}' @@ -1326,7 +1373,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:21:43 GMT + - Mon, 14 Sep 2020 18:50:58 GMT expires: - '-1' pragma: @@ -1354,22 +1401,22 @@ interactions: ParameterSetName: - -n -g --sku --public-ip-address --subnet User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Resources/deployments/ag_deploy_YcTXQtEti22YcIfKMyMg1DG6kGQPVfzk","name":"ag_deploy_YcTXQtEti22YcIfKMyMg1DG6kGQPVfzk","type":"Microsoft.Resources/deployments","properties":{"templateHash":"1080408567464961405","parameters":{},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2020-07-29T09:21:40.532758Z","duration":"PT4M31.0608463S","correlationId":"fc412fd8-c458-479c-a4ff-3e63eff869b4","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"applicationGateways","locations":["westus2"]}]}],"dependencies":[],"outputs":{"applicationGateway":{"type":"Object","value":{"provisioningState":"Succeeded","resourceGuid":"d715613b-9d83-4c3c-8dc1-c85aee740155","sku":{"name":"Standard_v2","tier":"Standard_v2","capacity":2},"operationalState":"Running","gatewayIPConfigurations":[{"name":"appGatewayFrontendIP","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/gatewayIPConfigurations/appGatewayFrontendIP","etag":"W/\"4f0b248c-82c7-49d0-b68b-c148bcede5d7\"","properties":{"provisioningState":"Succeeded","subnet":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet"}},"type":"Microsoft.Network/applicationGateways/gatewayIPConfigurations"}],"sslCertificates":[],"trustedRootCertificates":[],"trustedClientCertificates":[],"sslProfiles":[],"frontendIPConfigurations":[{"name":"appGatewayFrontendIP","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appGatewayFrontendIP","etag":"W/\"4f0b248c-82c7-49d0-b68b-c148bcede5d7\"","type":"Microsoft.Network/applicationGateways/frontendIPConfigurations","properties":{"provisioningState":"Succeeded","privateIPAllocationMethod":"Dynamic","publicIPAddress":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip"},"httpListeners":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appGatewayHttpListener"}]}}],"frontendPorts":[{"name":"appGatewayFrontendPort","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appGatewayFrontendPort","etag":"W/\"4f0b248c-82c7-49d0-b68b-c148bcede5d7\"","properties":{"provisioningState":"Succeeded","port":80,"httpListeners":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appGatewayHttpListener"}]},"type":"Microsoft.Network/applicationGateways/frontendPorts"}],"backendAddressPools":[{"name":"appGatewayBackendPool","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appGatewayBackendPool","etag":"W/\"4f0b248c-82c7-49d0-b68b-c148bcede5d7\"","properties":{"provisioningState":"Succeeded","backendAddresses":[],"requestRoutingRules":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/rule1"}]},"type":"Microsoft.Network/applicationGateways/backendAddressPools"}],"loadDistributionPolicies":[],"backendHttpSettingsCollection":[{"name":"appGatewayBackendHttpSettings","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appGatewayBackendHttpSettings","etag":"W/\"4f0b248c-82c7-49d0-b68b-c148bcede5d7\"","properties":{"provisioningState":"Succeeded","port":80,"protocol":"Http","cookieBasedAffinity":"Disabled","connectionDraining":{"enabled":false,"drainTimeoutInSec":1},"pickHostNameFromBackendAddress":false,"requestTimeout":30,"requestRoutingRules":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/rule1"}]},"type":"Microsoft.Network/applicationGateways/backendHttpSettingsCollection"}],"httpListeners":[{"name":"appGatewayHttpListener","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appGatewayHttpListener","etag":"W/\"4f0b248c-82c7-49d0-b68b-c148bcede5d7\"","properties":{"provisioningState":"Succeeded","frontendIPConfiguration":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appGatewayFrontendIP"},"frontendPort":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appGatewayFrontendPort"},"protocol":"Http","hostNames":[],"requireServerNameIndication":false,"requestRoutingRules":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/rule1"}]},"type":"Microsoft.Network/applicationGateways/httpListeners"}],"urlPathMaps":[],"requestRoutingRules":[{"name":"rule1","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/rule1","etag":"W/\"4f0b248c-82c7-49d0-b68b-c148bcede5d7\"","properties":{"provisioningState":"Succeeded","ruleType":"Basic","httpListener":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appGatewayHttpListener"},"backendAddressPool":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appGatewayBackendPool"},"backendHttpSettings":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appGatewayBackendHttpSettings"}},"type":"Microsoft.Network/applicationGateways/requestRoutingRules"}],"probes":[],"rewriteRuleSets":[],"redirectConfigurations":[],"privateLinkConfigurations":[],"privateEndpointConnections":[]}}},"outputResources":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw"}]}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Resources/deployments/ag_deploy_B2uVQvhOobm2GcouCCudFv1JJUNMalD5","name":"ag_deploy_B2uVQvhOobm2GcouCCudFv1JJUNMalD5","type":"Microsoft.Resources/deployments","properties":{"templateHash":"16350393468906560251","parameters":{},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2020-09-14T18:50:55.129979Z","duration":"PT3M57.6843382S","correlationId":"bb01d550-4d50-428e-8f8b-9cecd3049d89","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"applicationGateways","locations":["westus2"]}]}],"dependencies":[],"outputs":{"applicationGateway":{"type":"Object","value":{"provisioningState":"Succeeded","resourceGuid":"ffdd736e-e0aa-4c53-b874-cf8c5ef71a0a","sku":{"name":"Standard_v2","tier":"Standard_v2","capacity":2},"operationalState":"Running","gatewayIPConfigurations":[{"name":"appGatewayFrontendIP","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/gatewayIPConfigurations/appGatewayFrontendIP","etag":"W/\"39b10e70-2691-460d-b826-5d4c63e16dc9\"","properties":{"provisioningState":"Succeeded","subnet":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet"}},"type":"Microsoft.Network/applicationGateways/gatewayIPConfigurations"}],"sslCertificates":[],"trustedRootCertificates":[],"trustedClientCertificates":[],"sslProfiles":[],"frontendIPConfigurations":[{"name":"appGatewayFrontendIP","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appGatewayFrontendIP","etag":"W/\"39b10e70-2691-460d-b826-5d4c63e16dc9\"","type":"Microsoft.Network/applicationGateways/frontendIPConfigurations","properties":{"provisioningState":"Succeeded","privateIPAllocationMethod":"Dynamic","publicIPAddress":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/appgw-ip"},"httpListeners":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appGatewayHttpListener"}]}}],"frontendPorts":[{"name":"appGatewayFrontendPort","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appGatewayFrontendPort","etag":"W/\"39b10e70-2691-460d-b826-5d4c63e16dc9\"","properties":{"provisioningState":"Succeeded","port":80,"httpListeners":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appGatewayHttpListener"}]},"type":"Microsoft.Network/applicationGateways/frontendPorts"}],"backendAddressPools":[{"name":"appGatewayBackendPool","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appGatewayBackendPool","etag":"W/\"39b10e70-2691-460d-b826-5d4c63e16dc9\"","properties":{"provisioningState":"Succeeded","backendAddresses":[],"requestRoutingRules":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/rule1"}]},"type":"Microsoft.Network/applicationGateways/backendAddressPools"}],"loadDistributionPolicies":[],"backendHttpSettingsCollection":[{"name":"appGatewayBackendHttpSettings","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appGatewayBackendHttpSettings","etag":"W/\"39b10e70-2691-460d-b826-5d4c63e16dc9\"","properties":{"provisioningState":"Succeeded","port":80,"protocol":"Http","cookieBasedAffinity":"Disabled","connectionDraining":{"enabled":false,"drainTimeoutInSec":1},"pickHostNameFromBackendAddress":false,"requestTimeout":30,"requestRoutingRules":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/rule1"}]},"type":"Microsoft.Network/applicationGateways/backendHttpSettingsCollection"}],"httpListeners":[{"name":"appGatewayHttpListener","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appGatewayHttpListener","etag":"W/\"39b10e70-2691-460d-b826-5d4c63e16dc9\"","properties":{"provisioningState":"Succeeded","frontendIPConfiguration":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/frontendIPConfigurations/appGatewayFrontendIP"},"frontendPort":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/frontendPorts/appGatewayFrontendPort"},"protocol":"Http","hostNames":[],"requireServerNameIndication":false,"requestRoutingRules":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/rule1"}]},"type":"Microsoft.Network/applicationGateways/httpListeners"}],"urlPathMaps":[],"requestRoutingRules":[{"name":"rule1","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/requestRoutingRules/rule1","etag":"W/\"39b10e70-2691-460d-b826-5d4c63e16dc9\"","properties":{"provisioningState":"Succeeded","ruleType":"Basic","httpListener":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/httpListeners/appGatewayHttpListener"},"backendAddressPool":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/backendAddressPools/appGatewayBackendPool"},"backendHttpSettings":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw/backendHttpSettingsCollection/appGatewayBackendHttpSettings"}},"type":"Microsoft.Network/applicationGateways/requestRoutingRules"}],"probes":[],"rewriteRuleSets":[],"redirectConfigurations":[],"privateLinkConfigurations":[],"privateEndpointConnections":[]}}},"outputResources":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw"}]}}' headers: cache-control: - no-cache content-length: - - '6975' + - '6976' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:21:43 GMT + - Mon, 14 Sep 2020 18:50:58 GMT expires: - '-1' pragma: @@ -1398,15 +1445,15 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-07-29T09:16:53Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-14T18:46:44Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -1415,7 +1462,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:21:43 GMT + - Mon, 14 Sep 2020 18:50:58 GMT expires: - '-1' pragma: @@ -1444,24 +1491,24 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleAssignments?$filter=atScope%28%29&api-version=2018-09-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleAssignments?$filter=atScope%28%29&api-version=2020-04-01-preview response: body: - string: '{"value":[{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"135a9bbc-ad60-452c-8ffe-519aa862e879","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:04.5178243Z","updatedOn":"2020-06-28T02:13:04.5178243Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a6b01bdc-2661-42bb-86dc-8919f95a33e9","type":"Microsoft.Authorization/roleAssignments","name":"a6b01bdc-2661-42bb-86dc-8919f95a33e9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"33d87b59-68e3-40cb-a9e7-99fbf8d86408","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:05.6867898Z","updatedOn":"2020-06-28T02:13:05.6867898Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5af0e958-7a8d-480d-824c-c26f04eb2726","type":"Microsoft.Authorization/roleAssignments","name":"5af0e958-7a8d-480d-824c-c26f04eb2726"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"37eb6d11-d570-4544-9531-6453cb8623cf","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-24T01:42:26.2892277Z","updatedOn":"2020-06-24T01:42:26.2892277Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a32cce5c-1fd3-41c4-acc1-5703f0886990","type":"Microsoft.Authorization/roleAssignments","name":"a32cce5c-1fd3-41c4-acc1-5703f0886990"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"38d88515-7eb8-4c96-804f-4edcc95b9dff","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-15T00:05:21.2872130Z","updatedOn":"2018-11-15T00:05:21.2872130Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a8ebe6bd-7017-43e1-818a-64b3ec691ff4","type":"Microsoft.Authorization/roleAssignments","name":"a8ebe6bd-7017-43e1-818a-64b3ec691ff4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"395c8203-ec60-4c13-9730-5f960088f92b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:06.4818169Z","updatedOn":"2020-06-28T02:13:06.4818169Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f6a7ee61-576a-48de-bd6b-62d8e8ff5335","type":"Microsoft.Authorization/roleAssignments","name":"f6a7ee61-576a-48de-bd6b-62d8e8ff5335"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-24T01:42:26.3089219Z","updatedOn":"2020-06-24T01:42:26.3089219Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/10d66f5e-ede6-428d-a82f-24c56d58ee41","type":"Microsoft.Authorization/roleAssignments","name":"10d66f5e-ede6-428d-a82f-24c56d58ee41"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"80a6e936-2bdc-4927-b49e-2a7a19943b90","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:05.6664266Z","updatedOn":"2020-06-28T02:13:05.6664266Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/049bb70c-f07b-4e4e-81c1-49d706598629","type":"Microsoft.Authorization/roleAssignments","name":"049bb70c-f07b-4e4e-81c1-49d706598629"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"8a5603a8-2c60-49ab-bc28-a989b91e187d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-07-03T07:16:26.4178883Z","updatedOn":"2020-07-03T07:16:26.4178883Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bff88f85-1f05-44fe-9a15-81ff4412ef7d","type":"Microsoft.Authorization/roleAssignments","name":"bff88f85-1f05-44fe-9a15-81ff4412ef7d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a56cfdc0-40f8-4077-8843-a8bf0067cd4d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:26:47.8968784Z","updatedOn":"2020-06-28T02:26:47.8968784Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cd01871c-f24c-478d-b9f2-1eec835b3705","type":"Microsoft.Authorization/roleAssignments","name":"cd01871c-f24c-478d-b9f2-1eec835b3705"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"ae4622a7-bde9-4bca-9599-2d18571bfeba","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:04.9948448Z","updatedOn":"2020-06-28T02:13:04.9948448Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8fbd0f94-dbc4-4b41-b89f-d39c61939775","type":"Microsoft.Authorization/roleAssignments","name":"8fbd0f94-dbc4-4b41-b89f-d39c61939775"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"b47f071a-d6c9-4297-954e-83151fff489b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:26:58.4113645Z","updatedOn":"2020-06-28T02:26:58.4113645Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f7bcb38a-4254-415b-bb42-5be0927cc5b3","type":"Microsoft.Authorization/roleAssignments","name":"f7bcb38a-4254-415b-bb42-5be0927cc5b3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c29bee61-aa42-4f9c-be8b-840522822e1e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T13:39:10.8094236Z","updatedOn":"2020-06-28T13:39:10.8094236Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9cf9df38-5c44-486c-b632-5d3d9b8a1f85","type":"Microsoft.Authorization/roleAssignments","name":"9cf9df38-5c44-486c-b632-5d3d9b8a1f85"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"249ae1d3-b522-45be-a402-7a305735d066","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-19T22:36:12.1011895Z","updatedOn":"2018-11-19T22:36:12.1011895Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f4975c4b-3320-4ec6-9e1b-1c758d06ad55","type":"Microsoft.Authorization/roleAssignments","name":"f4975c4b-3320-4ec6-9e1b-1c758d06ad55"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2fda9054-fc12-457c-bb93-614f1f13426b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:12:24.1007764Z","updatedOn":"2019-01-04T04:12:24.1007764Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/fbe0e113-769d-4651-9d77-c3b470a714ab","type":"Microsoft.Authorization/roleAssignments","name":"fbe0e113-769d-4651-9d77-c3b470a714ab"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"39527840-d507-4477-8bd2-d7ffa4542194","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-15T21:06:41.8028199Z","updatedOn":"2018-11-15T21:06:41.8028199Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a5886114-fd73-4a40-9a7c-226bdc4617b1","type":"Microsoft.Authorization/roleAssignments","name":"a5886114-fd73-4a40-9a7c-226bdc4617b1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"44d2f8c7-d87d-45b0-87db-4cb97b40417d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:11:22.8446433Z","updatedOn":"2020-06-28T02:11:22.8446433Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2cf5f7f5-6b29-4501-9ae5-94dc1b765c24","type":"Microsoft.Authorization/roleAssignments","name":"2cf5f7f5-6b29-4501-9ae5-94dc1b765c24"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5caed073-2b85-4f0b-8792-afde9e986a5e","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:51:43.1917863Z","updatedOn":"2019-01-04T04:51:43.1917863Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/df1a2d1a-a8cc-426b-a65a-7eb0d2a71a53","type":"Microsoft.Authorization/roleAssignments","name":"df1a2d1a-a8cc-426b-a65a-7eb0d2a71a53"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:25:38.3359249Z","updatedOn":"2019-01-04T04:25:38.3359249Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4730c93b-bf36-463b-9545-ebe1880218cc","type":"Microsoft.Authorization/roleAssignments","name":"4730c93b-bf36-463b-9545-ebe1880218cc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"87ccb404-2e62-44d1-97c0-a842c400b985","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:08:54.9365955Z","updatedOn":"2020-06-28T02:08:54.9365955Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/dcbc5923-507d-4a28-be07-947993791c9c","type":"Microsoft.Authorization/roleAssignments","name":"dcbc5923-507d-4a28-be07-947993791c9c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8a5603a8-2c60-49ab-bc28-a989b91e187d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-30T03:12:15.7525228Z","updatedOn":"2020-06-30T03:12:15.7525228Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4c403ed2-c088-44b8-961f-323c41ca7cb6","type":"Microsoft.Authorization/roleAssignments","name":"4c403ed2-c088-44b8-961f-323c41ca7cb6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8ff738a5-abcd-4864-a162-6c18f7c9cbd9","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:31:44.0748782Z","updatedOn":"2020-06-28T02:31:44.0748782Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88ac53e4-cb0c-4fcf-ad69-f055e301f047","type":"Microsoft.Authorization/roleAssignments","name":"88ac53e4-cb0c-4fcf-ad69-f055e301f047"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a5c919a9-89c9-45fb-880a-5e3e0b4fcb84","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T08:20:11.1204486Z","updatedOn":"2020-06-28T08:20:11.1204486Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b3e51ab0-0a5d-4752-9774-43e63126d4b3","type":"Microsoft.Authorization/roleAssignments","name":"b3e51ab0-0a5d-4752-9774-43e63126d4b3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a6920a4d-d20a-4ac6-a844-13565e224294","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T08:20:49.9287645Z","updatedOn":"2020-06-28T08:20:49.9287645Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e70cd72a-69e0-4f89-aeca-eaa908c123aa","type":"Microsoft.Authorization/roleAssignments","name":"e70cd72a-69e0-4f89-aeca-eaa908c123aa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"5c617d2b-99f8-4c90-98fe-dfe040fa33c1","principalType":"ServicePrincipal","scope":"/","createdOn":"2018-02-27T19:19:50.2663941Z","updatedOn":"2018-02-27T19:19:50.2663941Z","createdBy":null,"updatedBy":null},"id":"/providers/Microsoft.Authorization/roleAssignments/3e883d24-b106-42ff-ad13-d7bf271b964d","type":"Microsoft.Authorization/roleAssignments","name":"3e883d24-b106-42ff-ad13-d7bf271b964d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227","createdOn":"2019-03-26T22:01:02.9428505Z","updatedOn":"2019-03-26T22:01:02.9428505Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227/providers/Microsoft.Authorization/roleAssignments/10d00e1e-13b8-4846-9e4f-d4db71bddab0","type":"Microsoft.Authorization/roleAssignments","name":"10d00e1e-13b8-4846-9e4f-d4db71bddab0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2019-03-26T22:01:02.9136073Z","updatedOn":"2019-03-26T22:01:02.9136073Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6f4de15e-9316-4714-a7c4-40c46cf8e067","type":"Microsoft.Authorization/roleAssignments","name":"6f4de15e-9316-4714-a7c4-40c46cf8e067"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"2ac3f52f-f3ad-40a4-9b2d-aa24e4c7bbba","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:13.2137492Z","updatedOn":"2020-02-25T18:36:13.2137492Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/18fdd87e-1c01-424e-b380-32310f4940c2","type":"Microsoft.Authorization/roleAssignments","name":"18fdd87e-1c01-424e-b380-32310f4940c2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"4a113caa-961f-4535-ac9b-79bfba8b9ed2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:00.4746112Z","updatedOn":"2020-02-25T18:36:00.4746112Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d9bcf58a-6f24-446d-bf60-20ffe5142396","type":"Microsoft.Authorization/roleAssignments","name":"d9bcf58a-6f24-446d-bf60-20ffe5142396"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"56d08bc2-cc29-4d23-9d23-fd396b807b02","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:55.7490022Z","updatedOn":"2020-02-25T18:35:55.7490022Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6e2b954b-42b2-48e0-997a-622601f0a4b4","type":"Microsoft.Authorization/roleAssignments","name":"6e2b954b-42b2-48e0-997a-622601f0a4b4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6179a082-c057-4fe3-8118-916b816a42e3","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:57.9173081Z","updatedOn":"2020-02-25T18:35:57.9173081Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9","type":"Microsoft.Authorization/roleAssignments","name":"8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6fe923a8-2e4d-4c1f-b7d6-a7c5984f0129","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:23.0673659Z","updatedOn":"2020-02-25T18:36:23.0673659Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d0817c57-3e5b-4363-88b7-52baadd5c362","type":"Microsoft.Authorization/roleAssignments","name":"d0817c57-3e5b-4363-88b7-52baadd5c362"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7c2d0d59-528c-434a-8c6c-03330539cad2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:31.2596366Z","updatedOn":"2020-02-25T18:36:31.2596366Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/0dabf212-a1c7-4af6-ba8b-be045493b368","type":"Microsoft.Authorization/roleAssignments","name":"0dabf212-a1c7-4af6-ba8b-be045493b368"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7d7aed0a-228e-420b-a6a2-82a49dacb8cb","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:52.9188704Z","updatedOn":"2020-02-25T18:35:52.9188704Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d674b853-332e-4437-9ddb-bba8fde7ccce","type":"Microsoft.Authorization/roleAssignments","name":"d674b853-332e-4437-9ddb-bba8fde7ccce"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"985bb80e-8113-4542-8d68-418589e6ff34","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:02.5324969Z","updatedOn":"2020-02-25T18:36:02.5324969Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b4bdc3a7-78e2-4b26-8b90-e474aa120b47","type":"Microsoft.Authorization/roleAssignments","name":"b4bdc3a7-78e2-4b26-8b90-e474aa120b47"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"b7a49237-f5b0-473f-a4ff-6830d23af17d","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:38.8393742Z","updatedOn":"2020-02-25T18:36:38.8393742Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/00625383-053d-4227-a4db-b098e9bd2289","type":"Microsoft.Authorization/roleAssignments","name":"00625383-053d-4227-a4db-b098e9bd2289"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"f2e939bc-742a-42f9-a27a-f0982c6e3f64","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:05.0954462Z","updatedOn":"2020-02-25T18:36:05.0954462Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/3151fe9c-fcd2-45d3-a256-72fb13b86df5","type":"Microsoft.Authorization/roleAssignments","name":"3151fe9c-fcd2-45d3-a256-72fb13b86df5"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c","principalId":"b7b8bd19-f827-425f-9be1-fd8a86b21904","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-07-06T18:51:22.9449669Z","updatedOn":"2020-07-06T18:51:22.9449669Z","createdBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7","updatedBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b3a9e1db-fde1-4ddd-ac1c-91913be67359","type":"Microsoft.Authorization/roleAssignments","name":"b3a9e1db-fde1-4ddd-ac1c-91913be67359"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-26T22:01:02.9176787Z","updatedOn":"2019-03-26T22:01:02.9176787Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/4b771ea9-81de-4fc4-aa28-a3a0b9b4a320","type":"Microsoft.Authorization/roleAssignments","name":"4b771ea9-81de-4fc4-aa28-a3a0b9b4a320"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-27T00:49:37.3000523Z","updatedOn":"2019-03-27T00:49:37.3000523Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/e6e1fffd-83f7-40c7-9f33-e56e2cf75b29","type":"Microsoft.Authorization/roleAssignments","name":"e6e1fffd-83f7-40c7-9f33-e56e2cf75b29"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-27T00:50:08.3039053Z","updatedOn":"2019-03-27T00:50:08.3039053Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/3d01f56e-ee3a-41ed-a775-0e067546cb12","type":"Microsoft.Authorization/roleAssignments","name":"3d01f56e-ee3a-41ed-a775-0e067546cb12"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"ce2366a6-64d7-441b-939c-c9d23f91cccd","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47","createdOn":"2020-03-12T20:43:06.5941189Z","updatedOn":"2020-03-12T20:43:06.5941189Z","createdBy":"606f48c8-d219-4875-991d-ae6befaf0756","updatedBy":"606f48c8-d219-4875-991d-ae6befaf0756"},"id":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47/providers/Microsoft.Authorization/roleAssignments/ad9e2cd7-0ff7-4931-9b17-656c8f17934b","type":"Microsoft.Authorization/roleAssignments","name":"ad9e2cd7-0ff7-4931-9b17-656c8f17934b"}]}' + string: '{"value":[{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"07cc304c-9c33-4af3-b55e-3161b352438c","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T18:57:43.7674845Z","updatedOn":"2020-04-28T18:57:43.7674845Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/89ef5a42-558f-4dc2-a21d-61f47f87c5aa","type":"Microsoft.Authorization/roleAssignments","name":"89ef5a42-558f-4dc2-a21d-61f47f87c5aa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"21f0be01-d4b7-40d1-8dbd-801823b81c0b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T17:11:43.4784066Z","updatedOn":"2020-04-28T17:11:43.4784066Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c7a17f89-6fda-4d7f-9024-279fe7c46b9e","type":"Microsoft.Authorization/roleAssignments","name":"c7a17f89-6fda-4d7f-9024-279fe7c46b9e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"234fd4f9-44c3-48e4-8135-490ee6c0e52f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T17:15:20.6839476Z","updatedOn":"2020-04-28T17:15:20.6839476Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b677c994-5d2c-4d21-8772-4a770c383a69","type":"Microsoft.Authorization/roleAssignments","name":"b677c994-5d2c-4d21-8772-4a770c383a69"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"235c8055-0c0b-4643-8f60-606f9efaaeb4","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T03:41:37.0700725Z","updatedOn":"2020-04-29T03:41:37.0700725Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f2790ff5-c68c-4783-bfbe-0c7210b1320d","type":"Microsoft.Authorization/roleAssignments","name":"f2790ff5-c68c-4783-bfbe-0c7210b1320d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"2e516a89-54d9-4c53-b05a-43e0b7c1cbbb","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T03:43:26.9737395Z","updatedOn":"2020-04-29T03:43:26.9737395Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/64ded23e-c648-452f-a53e-2bb0b1947293","type":"Microsoft.Authorization/roleAssignments","name":"64ded23e-c648-452f-a53e-2bb0b1947293"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"4b11e1be-3717-4123-a326-ef1b80c254c2","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T17:14:00.0562525Z","updatedOn":"2020-04-28T17:14:00.0562525Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/eaece071-786c-479c-a0b0-5c41d876600c","type":"Microsoft.Authorization/roleAssignments","name":"eaece071-786c-479c-a0b0-5c41d876600c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"5582b388-8729-4b4c-b90b-328bf7d18a99","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-01T17:17:32.8545165Z","updatedOn":"2020-05-01T17:17:32.8545165Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5b13726e-0868-475f-9d6f-e19ed5886a5e","type":"Microsoft.Authorization/roleAssignments","name":"5b13726e-0868-475f-9d6f-e19ed5886a5e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"6364d274-72f5-4f81-9ddf-ec6817022c2f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-01T17:22:00.3902257Z","updatedOn":"2020-05-01T17:22:00.3902257Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/aa99e113-3d5e-4fb5-ac2a-f34b0bf0aa32","type":"Microsoft.Authorization/roleAssignments","name":"aa99e113-3d5e-4fb5-ac2a-f34b0bf0aa32"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"cc4d8335-ccfb-44f9-86a0-c080d427a1db","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T00:04:19.0452651Z","updatedOn":"2020-04-29T00:04:19.0452651Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/593f0b85-3d78-43c8-a842-abfb4eab0a9b","type":"Microsoft.Authorization/roleAssignments","name":"593f0b85-3d78-43c8-a842-abfb4eab0a9b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4abbcc35-e782-43d8-92c5-2d3f1bd2253f","principalId":"e809f5bd-c858-4905-a7d6-60a6013f1546","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-03T15:06:36.2124864Z","updatedOn":"2020-08-03T15:06:36.2124864Z","createdBy":"a5cae52f-366a-417b-b718-e73d17746c35","updatedBy":"a5cae52f-366a-417b-b718-e73d17746c35","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/71b88381-621b-464e-b17a-6cd9433ad5a3","type":"Microsoft.Authorization/roleAssignments","name":"71b88381-621b-464e-b17a-6cd9433ad5a3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"01e2b341-56ec-43fb-9f53-f6332d30df93","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-05-03T20:35:52.7357152Z","updatedOn":"2018-05-03T20:35:52.7357152Z","createdBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","updatedBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4665dbd4-b405-4cc3-9321-1bee27e6101c","type":"Microsoft.Authorization/roleAssignments","name":"4665dbd4-b405-4cc3-9321-1bee27e6101c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-11T13:25:07.0669336Z","updatedOn":"2020-02-11T13:25:07.0669336Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b8056eb0-60e9-433c-85f9-f2c9289fc1a2","type":"Microsoft.Authorization/roleAssignments","name":"b8056eb0-60e9-433c-85f9-f2c9289fc1a2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"09914860-7ec9-4151-8431-31797899a359","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-22T06:41:53.1813823Z","updatedOn":"2019-04-22T06:41:53.1813823Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6b620efc-0123-402f-8462-1f1b47168729","type":"Microsoft.Authorization/roleAssignments","name":"6b620efc-0123-402f-8462-1f1b47168729"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"1007b5b7-ef5e-4ab0-8e86-81b52ce5747d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T21:30:40.2784826Z","updatedOn":"2020-02-04T21:30:40.2784826Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d9007cf6-65d3-46cc-b02e-5cdfa8315947","type":"Microsoft.Authorization/roleAssignments","name":"d9007cf6-65d3-46cc-b02e-5cdfa8315947"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"135a9bbc-ad60-452c-8ffe-519aa862e879","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-05T06:59:02.2006715Z","updatedOn":"2020-02-05T06:59:02.2006715Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9cdd372a-911d-4b05-82b9-04315c9e8e0f","type":"Microsoft.Authorization/roleAssignments","name":"9cdd372a-911d-4b05-82b9-04315c9e8e0f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-21T03:42:13.8891609Z","updatedOn":"2020-02-21T03:42:13.8891609Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c41b0416-12e4-49bb-9e35-411e4f409102","type":"Microsoft.Authorization/roleAssignments","name":"c41b0416-12e4-49bb-9e35-411e4f409102"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"1ec25b73-94d5-4bf9-a56f-ca7d9bd4164c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-27T17:05:13.7273840Z","updatedOn":"2020-04-27T17:05:13.7273840Z","createdBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","updatedBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9e06e920-0fc3-47a8-867a-ce7804818059","type":"Microsoft.Authorization/roleAssignments","name":"9e06e920-0fc3-47a8-867a-ce7804818059"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"22638f38-fe4e-4b44-b093-7cecedb4896a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-22T07:53:45.7192431Z","updatedOn":"2020-04-22T07:53:45.7192431Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0d01cbd3-f3e3-4712-95c6-cf07a0224887","type":"Microsoft.Authorization/roleAssignments","name":"0d01cbd3-f3e3-4712-95c6-cf07a0224887"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"2fda9054-fc12-457c-bb93-614f1f13426b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-25T03:10:56.6742842Z","updatedOn":"2019-10-25T03:10:56.6742842Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c94cb5f8-6d0c-4405-be47-b599a43f2bde","type":"Microsoft.Authorization/roleAssignments","name":"c94cb5f8-6d0c-4405-be47-b599a43f2bde"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-08T22:51:35.8836739Z","updatedOn":"2020-04-08T22:51:35.8836739Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e35806bd-ef22-4a25-80d9-9429df6254c6","type":"Microsoft.Authorization/roleAssignments","name":"e35806bd-ef22-4a25-80d9-9429df6254c6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"3da6ea3e-6e90-4f8d-998c-19906865a871","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2017-06-16T23:32:44.3548155Z","updatedOn":"2017-06-16T23:32:44.3548155Z","createdBy":"f115a02a-6f42-4297-aabb-f0f6022ee60b","updatedBy":"f115a02a-6f42-4297-aabb-f0f6022ee60b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c2330a8b-4550-4dcf-841a-88553080079b","type":"Microsoft.Authorization/roleAssignments","name":"c2330a8b-4550-4dcf-841a-88553080079b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"471feb6d-5a83-439e-af7b-311f4eee2d0c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-25T08:26:29.8675330Z","updatedOn":"2020-03-25T08:26:29.8675330Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d00f7f11-a22d-4bb3-a016-07d2ba2b13c0","type":"Microsoft.Authorization/roleAssignments","name":"d00f7f11-a22d-4bb3-a016-07d2ba2b13c0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"4744d4c9-1026-421b-87ce-b102213af921","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-09-14T02:15:59.1199760Z","updatedOn":"2019-09-14T02:15:59.1199760Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/593989ab-0941-462b-aeba-5aba52f8755b","type":"Microsoft.Authorization/roleAssignments","name":"593989ab-0941-462b-aeba-5aba52f8755b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"4adb4718-2323-4071-b594-c84c9d5a5c06","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-14T21:19:25.3668580Z","updatedOn":"2020-05-14T21:19:25.3668580Z","createdBy":"82f25a3e-d28d-4c27-90d6-d92c79d98936","updatedBy":"82f25a3e-d28d-4c27-90d6-d92c79d98936","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/668f3f0e-bbb7-42d3-9ab1-1482922c06a7","type":"Microsoft.Authorization/roleAssignments","name":"668f3f0e-bbb7-42d3-9ab1-1482922c06a7"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"4b5234ab-8f8d-429e-9e1c-ea5799b66ffa","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-07T00:35:48.4591165Z","updatedOn":"2020-05-07T00:35:48.4591165Z","createdBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","updatedBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ff740118-1a0b-4bf5-8f2a-c555e9923ea3","type":"Microsoft.Authorization/roleAssignments","name":"ff740118-1a0b-4bf5-8f2a-c555e9923ea3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"4c6b5ae4-3f4a-4317-8970-2ed342366d0b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-10T19:44:02.6434834Z","updatedOn":"2019-10-10T19:44:02.6434834Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ecd71fb9-414b-496d-ba90-8be383086b97","type":"Microsoft.Authorization/roleAssignments","name":"ecd71fb9-414b-496d-ba90-8be383086b97"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-09-23T02:06:16.8281713Z","updatedOn":"2019-09-23T02:06:16.8281713Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a301a171-6505-42c5-a8b2-bcf09674b59c","type":"Microsoft.Authorization/roleAssignments","name":"a301a171-6505-42c5-a8b2-bcf09674b59c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"53bb8815-874d-4b05-9953-1158e05aa080","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-05T05:29:51.2703674Z","updatedOn":"2020-02-05T05:29:51.2703674Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/382ca8aa-eaac-49fb-8a33-ad06c08ae449","type":"Microsoft.Authorization/roleAssignments","name":"382ca8aa-eaac-49fb-8a33-ad06c08ae449"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"547f6960-a967-417a-a9a4-0f35fbdca11c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-08T12:55:39.9212416Z","updatedOn":"2020-01-08T12:55:39.9212416Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/081427e9-c895-4903-8573-77da86dcdae1","type":"Microsoft.Authorization/roleAssignments","name":"081427e9-c895-4903-8573-77da86dcdae1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"5ecb1531-0d8c-4a89-93cb-1b48b2224358","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T22:22:14.0297869Z","updatedOn":"2020-04-20T22:22:14.0297869Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/966ec633-e653-441f-910c-8536f7899f69","type":"Microsoft.Authorization/roleAssignments","name":"966ec633-e653-441f-910c-8536f7899f69"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-05-03T20:35:52.7459838Z","updatedOn":"2018-05-03T20:35:52.7459838Z","createdBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","updatedBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8938ff08-7fd2-4669-89d4-d828c2630026","type":"Microsoft.Authorization/roleAssignments","name":"8938ff08-7fd2-4669-89d4-d828c2630026"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"66f30f72-79ab-433f-b57a-1c6a86207a91","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-30T06:27:35.9310363Z","updatedOn":"2020-04-30T06:27:35.9310363Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6a1327e4-100e-43ee-b04e-1403969b805b","type":"Microsoft.Authorization/roleAssignments","name":"6a1327e4-100e-43ee-b04e-1403969b805b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"67f96a40-adf7-4f43-888f-33526c5cfa95","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-04T22:47:58.0983077Z","updatedOn":"2020-06-04T22:47:58.0983077Z","createdBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","updatedBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/56c004eb-8b48-40b3-830d-e595c56ebeea","type":"Microsoft.Authorization/roleAssignments","name":"56c004eb-8b48-40b3-830d-e595c56ebeea"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"6b83bfa2-0af9-4f08-a887-d6145eef4405","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-06-13T06:44:49.9960198Z","updatedOn":"2019-06-13T06:44:49.9960198Z","createdBy":"f058371f-0c0e-46bb-a5d4-f8aec637a467","updatedBy":"f058371f-0c0e-46bb-a5d4-f8aec637a467","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/33958269-41a0-400a-91a1-6303d954c8f0","type":"Microsoft.Authorization/roleAssignments","name":"33958269-41a0-400a-91a1-6303d954c8f0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"70e8a539-370b-4e1b-840d-ec8188e46c22","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-27T19:05:00.2764645Z","updatedOn":"2020-01-27T19:05:00.2764645Z","createdBy":"4744d4c9-1026-421b-87ce-b102213af921","updatedBy":"4744d4c9-1026-421b-87ce-b102213af921","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f0575c6a-aabc-4a2e-b169-379b64f33f8a","type":"Microsoft.Authorization/roleAssignments","name":"f0575c6a-aabc-4a2e-b169-379b64f33f8a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"75f7cda0-cb32-4ebd-8e6e-628a0fab0c27","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-26T16:21:06.7365340Z","updatedOn":"2020-05-26T16:21:06.7365340Z","createdBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","updatedBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/19a3bbc1-fca8-4ec6-b0e9-7d6861207524","type":"Microsoft.Authorization/roleAssignments","name":"19a3bbc1-fca8-4ec6-b0e9-7d6861207524"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-26T00:57:22.8153925Z","updatedOn":"2019-10-26T00:57:22.8153925Z","createdBy":"2fda9054-fc12-457c-bb93-614f1f13426b","updatedBy":"2fda9054-fc12-457c-bb93-614f1f13426b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8722a1fb-4828-4f43-aa59-0385179b3a05","type":"Microsoft.Authorization/roleAssignments","name":"8722a1fb-4828-4f43-aa59-0385179b3a05"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"78dfe0f4-529a-4e90-b73a-d719757f014f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-30T06:27:35.9911337Z","updatedOn":"2020-04-30T06:27:35.9911337Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/85726f1f-9e4c-415a-b56f-d8e799aaa96d","type":"Microsoft.Authorization/roleAssignments","name":"85726f1f-9e4c-415a-b56f-d8e799aaa96d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"7a69ab46-a41e-4e40-873c-bd130b5badd8","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-27T21:08:14.8085926Z","updatedOn":"2020-02-27T21:08:14.8085926Z","createdBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","updatedBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/742a0f1a-fbf1-46f1-929d-de8871fc1193","type":"Microsoft.Authorization/roleAssignments","name":"742a0f1a-fbf1-46f1-929d-de8871fc1193"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"7ac4ca6d-46a3-4e71-a705-858af50eea7b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-01T23:19:45.4260771Z","updatedOn":"2020-05-01T23:19:45.4260771Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/90e2b70f-7104-4f75-b6a5-e7226e497378","type":"Microsoft.Authorization/roleAssignments","name":"90e2b70f-7104-4f75-b6a5-e7226e497378"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-16T02:04:22.4782415Z","updatedOn":"2019-04-16T02:04:22.4782415Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bacdb283-653c-47eb-a578-11743d7898f8","type":"Microsoft.Authorization/roleAssignments","name":"bacdb283-653c-47eb-a578-11743d7898f8"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"80a6e936-2bdc-4927-b49e-2a7a19943b90","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T02:07:58.4393297Z","updatedOn":"2020-02-04T02:07:58.4393297Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e46a2f7d-e088-47e2-952f-a0a4818b3825","type":"Microsoft.Authorization/roleAssignments","name":"e46a2f7d-e088-47e2-952f-a0a4818b3825"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"82e11ed5-c720-4c8d-b396-a2fcd9e4291f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-26T08:05:19.1222694Z","updatedOn":"2020-03-26T08:05:19.1222694Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/1f46adf6-1c16-4743-b3ac-35cd30452c6b","type":"Microsoft.Authorization/roleAssignments","name":"1f46adf6-1c16-4743-b3ac-35cd30452c6b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"82f25a3e-d28d-4c27-90d6-d92c79d98936","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-07T00:35:48.6619455Z","updatedOn":"2020-05-07T00:35:48.6619455Z","createdBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","updatedBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/052d4514-701f-41dd-8171-4e8cfab148a6","type":"Microsoft.Authorization/roleAssignments","name":"052d4514-701f-41dd-8171-4e8cfab148a6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"882b228f-62f1-47e9-bd21-e9d01ac6eb4a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-27T09:09:33.7347978Z","updatedOn":"2020-03-27T09:09:33.7347978Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6d355b17-e9d6-47b7-9181-b54ad0083793","type":"Microsoft.Authorization/roleAssignments","name":"6d355b17-e9d6-47b7-9181-b54ad0083793"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"88d2a37e-a1ac-41b5-abf7-ca9304036eb5","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-03-19T02:50:30.0038186Z","updatedOn":"2019-03-19T02:50:30.0038186Z","createdBy":"b47f071a-d6c9-4297-954e-83151fff489b","updatedBy":"b47f071a-d6c9-4297-954e-83151fff489b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/26adec15-a0e4-4b2e-a437-9b545b9723fc","type":"Microsoft.Authorization/roleAssignments","name":"26adec15-a0e4-4b2e-a437-9b545b9723fc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"8ff738a5-abcd-4864-a162-6c18f7c9cbd9","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-17T00:50:00.2288905Z","updatedOn":"2019-04-17T00:50:00.2288905Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0e873fd7-4bdb-4df5-a510-c15f3ce99cd6","type":"Microsoft.Authorization/roleAssignments","name":"0e873fd7-4bdb-4df5-a510-c15f3ce99cd6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"9404195a-2cde-4a10-b88c-e7b41572bf31","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-23T03:53:49.9358521Z","updatedOn":"2020-06-23T03:53:49.9358521Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/02a0e839-adb0-448c-84f0-3a3f82ef8430","type":"Microsoft.Authorization/roleAssignments","name":"02a0e839-adb0-448c-84f0-3a3f82ef8430"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"990cdc7b-c3c9-40b1-ba7d-f0ab1577650b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-08T07:40:31.7235048Z","updatedOn":"2020-05-08T07:40:31.7235048Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cbfa0c0c-2653-4fb8-b9e5-d41bd96053a7","type":"Microsoft.Authorization/roleAssignments","name":"cbfa0c0c-2653-4fb8-b9e5-d41bd96053a7"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a5c919a9-89c9-45fb-880a-5e3e0b4fcb84","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-02T17:06:57.1466814Z","updatedOn":"2020-06-02T17:06:57.1466814Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ab903dde-d229-446d-b429-c1618b8aef5e","type":"Microsoft.Authorization/roleAssignments","name":"ab903dde-d229-446d-b429-c1618b8aef5e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a5cae52f-366a-417b-b718-e73d17746c35","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T03:34:09.1452976Z","updatedOn":"2020-04-29T03:34:09.1452976Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/feb76a5e-7bed-4bc8-b481-14bbb109bc33","type":"Microsoft.Authorization/roleAssignments","name":"feb76a5e-7bed-4bc8-b481-14bbb109bc33"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a70eb664-13f1-42a8-8cfc-86a61770d75f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-15T10:16:20.3297126Z","updatedOn":"2020-04-15T10:16:20.3297126Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0db6da93-ca6a-4b5a-8c44-7a3f2003d03c","type":"Microsoft.Authorization/roleAssignments","name":"0db6da93-ca6a-4b5a-8c44-7a3f2003d03c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a75ea823-3748-4855-a4df-f4ba5383d006","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-13T05:17:20.7354482Z","updatedOn":"2020-01-13T05:17:20.7354482Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e5a79ae7-7137-416f-a2cd-4b273ca62d5f","type":"Microsoft.Authorization/roleAssignments","name":"e5a79ae7-7137-416f-a2cd-4b273ca62d5f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-24T19:37:33.7189313Z","updatedOn":"2020-02-24T19:37:33.7189313Z","createdBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","updatedBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d1964993-fb9d-4be1-982f-fcd6ca7cd493","type":"Microsoft.Authorization/roleAssignments","name":"d1964993-fb9d-4be1-982f-fcd6ca7cd493"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2017-05-22T23:26:54.3208785Z","updatedOn":"2017-05-22T23:26:54.3208785Z","createdBy":"b09a0928-3846-4efb-a579-8540fb78b0a3","updatedBy":"b09a0928-3846-4efb-a579-8540fb78b0a3","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2d149cfb-bc18-48f8-b769-8a0cafd11bee","type":"Microsoft.Authorization/roleAssignments","name":"2d149cfb-bc18-48f8-b769-8a0cafd11bee"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"ba819494-4d2d-4d29-87e8-ced2e2dfc39d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-07T02:09:11.3539299Z","updatedOn":"2020-05-07T02:09:11.3539299Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5124598f-5127-4efc-9b15-9276948fe202","type":"Microsoft.Authorization/roleAssignments","name":"5124598f-5127-4efc-9b15-9276948fe202"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c1acf319-6d96-4dfe-b194-c27640869947","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-18T23:40:26.3271411Z","updatedOn":"2020-02-18T23:40:26.3271411Z","createdBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","updatedBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/27f9c0cd-fbc1-4810-a9f9-804efad4beec","type":"Microsoft.Authorization/roleAssignments","name":"27f9c0cd-fbc1-4810-a9f9-804efad4beec"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-02T10:52:21.7337863Z","updatedOn":"2020-04-02T10:52:21.7337863Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/54ff849a-1ced-4a28-b675-6bca70a82033","type":"Microsoft.Authorization/roleAssignments","name":"54ff849a-1ced-4a28-b675-6bca70a82033"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c66b4485-d88a-4007-b687-4867ca3c076f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-16T07:25:52.5298801Z","updatedOn":"2020-04-16T07:25:52.5298801Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/65fd85a7-3057-4f7f-86bd-0c36a612f483","type":"Microsoft.Authorization/roleAssignments","name":"65fd85a7-3057-4f7f-86bd-0c36a612f483"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c6979a71-063b-4a70-9fe0-5f85efe26f75","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-16T02:06:02.7961867Z","updatedOn":"2019-04-16T02:06:02.7961867Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f0d35040-a9f7-4870-b870-180ef33685c9","type":"Microsoft.Authorization/roleAssignments","name":"f0d35040-a9f7-4870-b870-180ef33685c9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"d3966e2a-8b9a-4701-b232-2cc1c8747c41","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-02T03:38:00.8756893Z","updatedOn":"2020-01-02T03:38:00.8756893Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d421e0d4-4653-48b2-9008-a877921474c8","type":"Microsoft.Authorization/roleAssignments","name":"d421e0d4-4653-48b2-9008-a877921474c8"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"d69d1d49-5dc8-4c8e-afb6-325d83ddcee8","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-22T21:44:38.6097605Z","updatedOn":"2020-05-22T21:44:38.6097605Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0a2d331c-57c6-48be-9d5f-f49da541fc7e","type":"Microsoft.Authorization/roleAssignments","name":"0a2d331c-57c6-48be-9d5f-f49da541fc7e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"dc1d0494-e87d-4231-b7e7-6b0d4912ca0e","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T21:30:10.6978339Z","updatedOn":"2020-02-04T21:30:10.6978339Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/91ea4b88-79c1-4163-bf5c-760b8add6d79","type":"Microsoft.Authorization/roleAssignments","name":"91ea4b88-79c1-4163-bf5c-760b8add6d79"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-03T05:33:46.3567584Z","updatedOn":"2020-04-03T05:33:46.3567584Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4f9fed67-4a0b-4f9d-870e-66a508cb73eb","type":"Microsoft.Authorization/roleAssignments","name":"4f9fed67-4a0b-4f9d-870e-66a508cb73eb"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-24T16:54:45.9590630Z","updatedOn":"2020-01-24T16:54:45.9590630Z","createdBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","updatedBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/04741a9e-7efb-41cc-b79c-8c725cc7563b","type":"Microsoft.Authorization/roleAssignments","name":"04741a9e-7efb-41cc-b79c-8c725cc7563b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"f058371f-0c0e-46bb-a5d4-f8aec637a467","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-02T07:18:21.5783958Z","updatedOn":"2019-08-02T07:18:21.5783958Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f4afc41d-352f-4bce-84f1-fad9f832f274","type":"Microsoft.Authorization/roleAssignments","name":"f4afc41d-352f-4bce-84f1-fad9f832f274"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"f31399da-e7ed-4fe4-a825-a9dff4f53481","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-03T17:48:07.2484442Z","updatedOn":"2020-02-03T17:48:07.2484442Z","createdBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","updatedBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/31005f88-9e70-483d-acc8-0f9cc8066b13","type":"Microsoft.Authorization/roleAssignments","name":"31005f88-9e70-483d-acc8-0f9cc8066b13"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"f3add809-c372-44f2-8d2e-107707be72f1","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T21:07:59.9113196Z","updatedOn":"2020-02-04T21:07:59.9113196Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ea60c465-aef4-4494-9478-636615243841","type":"Microsoft.Authorization/roleAssignments","name":"ea60c465-aef4-4494-9478-636615243841"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"fe25b9d3-fba5-4ec1-8c67-992f8f3d4d1d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-11-02T00:40:13.2696018Z","updatedOn":"2019-11-02T00:40:13.2696018Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/1c0ee413-025e-422c-a8d0-2b8dd410b9b8","type":"Microsoft.Authorization/roleAssignments","name":"1c0ee413-025e-422c-a8d0-2b8dd410b9b8"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"febf609b-90d8-4d63-bffb-c12ccb094696","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T21:37:15.2971418Z","updatedOn":"2020-02-04T21:37:15.2971418Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/39e99cf2-95c7-4585-8703-998450cafea0","type":"Microsoft.Authorization/roleAssignments","name":"39e99cf2-95c7-4585-8703-998450cafea0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"39527840-d507-4477-8bd2-d7ffa4542194","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-11-15T22:27:15.6601349Z","updatedOn":"2018-11-15T22:27:15.6601349Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/418847ec-df97-4b29-9711-fc833817e5d6","type":"Microsoft.Authorization/roleAssignments","name":"418847ec-df97-4b29-9711-fc833817e5d6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"7d24045a-3445-4bda-abe5-232e2bccd01a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-28T14:20:52.7506898Z","updatedOn":"2019-08-28T14:20:52.7506898Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/715fd118-93b8-4b09-822d-48de5afb21e3","type":"Microsoft.Authorization/roleAssignments","name":"715fd118-93b8-4b09-822d-48de5afb21e3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"8ff738a5-abcd-4864-a162-6c18f7c9cbd9","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-01-06T05:22:04.7673784Z","updatedOn":"2019-01-06T05:22:04.7673784Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ba5c8600-8cc9-4778-9735-c3d57d26e50d","type":"Microsoft.Authorization/roleAssignments","name":"ba5c8600-8cc9-4778-9735-c3d57d26e50d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"b5f514f6-7c71-4896-aedf-cc22eb477985","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-02T16:21:28.6789246Z","updatedOn":"2020-06-02T16:21:28.6789246Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bd6bf5d5-fc1c-4fcd-81f3-0d11d3ff9f42","type":"Microsoft.Authorization/roleAssignments","name":"bd6bf5d5-fc1c-4fcd-81f3-0d11d3ff9f42"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"00a7fa06-74a2-46f5-b2b1-b3dfaf95b90a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-19T05:02:37.0675759Z","updatedOn":"2020-06-19T05:02:37.0675759Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3e8baba7-3df6-4a7e-91ca-cd4a8393ae56","type":"Microsoft.Authorization/roleAssignments","name":"3e8baba7-3df6-4a7e-91ca-cd4a8393ae56"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"0905068f-332c-4717-9046-df8e2875f563","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:01:30.4183889Z","updatedOn":"2019-12-13T02:01:30.4183889Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4623d907-e6fa-4e2a-ad82-18e34456d655","type":"Microsoft.Authorization/roleAssignments","name":"4623d907-e6fa-4e2a-ad82-18e34456d655"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1007b5b7-ef5e-4ab0-8e86-81b52ce5747d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:02:28.0518299Z","updatedOn":"2019-12-13T02:02:28.0518299Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ff4ee845-d8f5-49d0-93ac-7d45374946dd","type":"Microsoft.Authorization/roleAssignments","name":"ff4ee845-d8f5-49d0-93ac-7d45374946dd"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"113f6676-de62-440f-bc5d-d4c077921d11","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-25T08:37:49.6357044Z","updatedOn":"2020-03-25T08:37:49.6357044Z","createdBy":"471feb6d-5a83-439e-af7b-311f4eee2d0c","updatedBy":"471feb6d-5a83-439e-af7b-311f4eee2d0c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b332ab7b-a956-4e37-acc1-e4df2e9eedfa","type":"Microsoft.Authorization/roleAssignments","name":"b332ab7b-a956-4e37-acc1-e4df2e9eedfa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"12cb7792-1e80-4e2b-a444-6d86e4fed3b6","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-21T03:52:37.6293834Z","updatedOn":"2020-02-21T03:52:37.6293834Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2402af90-d517-4d1d-9ca1-7b85dfc17099","type":"Microsoft.Authorization/roleAssignments","name":"2402af90-d517-4d1d-9ca1-7b85dfc17099"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"17f09542-c300-4090-aff2-4b7303486809","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-24T20:02:31.4933981Z","updatedOn":"2020-07-24T20:02:31.4933981Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/fe8f6b65-9c14-4f43-bfe0-9c4e0778be5d","type":"Microsoft.Authorization/roleAssignments","name":"fe8f6b65-9c14-4f43-bfe0-9c4e0778be5d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"18b6bb92-b818-4f5f-8f5d-a319ee674751","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T01:00:41.8419503Z","updatedOn":"2020-04-28T01:00:41.8419503Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4da426ac-99d3-442d-b868-532f3582429b","type":"Microsoft.Authorization/roleAssignments","name":"4da426ac-99d3-442d-b868-532f3582429b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-04T03:17:07.6866234Z","updatedOn":"2019-12-04T03:17:07.6866234Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b76e5f32-b37f-482c-a7a4-98ef34ecea8a","type":"Microsoft.Authorization/roleAssignments","name":"b76e5f32-b37f-482c-a7a4-98ef34ecea8a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1d398750-3103-47cb-9e02-380759b1f920","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-27T23:12:42.6196328Z","updatedOn":"2020-04-27T23:12:42.6196328Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bb61d9e5-3664-42b4-b41c-bc3e34701de6","type":"Microsoft.Authorization/roleAssignments","name":"bb61d9e5-3664-42b4-b41c-bc3e34701de6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1da8964a-51ba-4328-b3d9-40951a3441bd","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-11T21:51:36.9989940Z","updatedOn":"2020-03-11T21:51:36.9989940Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c64426ff-294b-46eb-a1cb-7f824781f799","type":"Microsoft.Authorization/roleAssignments","name":"c64426ff-294b-46eb-a1cb-7f824781f799"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"203de16f-a918-45b1-bde4-6cc574d16944","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-02T20:50:25.6909226Z","updatedOn":"2020-03-02T20:50:25.6909226Z","createdBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","updatedBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/95a9d3e8-db32-4a7f-ad9c-46054677ff39","type":"Microsoft.Authorization/roleAssignments","name":"95a9d3e8-db32-4a7f-ad9c-46054677ff39"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"220ad69c-dd7a-460b-b1f1-eb92a03542db","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-16T20:48:38.9374068Z","updatedOn":"2020-04-16T20:48:38.9374068Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/45d89866-af64-4364-b886-7f5ec154c3d4","type":"Microsoft.Authorization/roleAssignments","name":"45d89866-af64-4364-b886-7f5ec154c3d4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"22638f38-fe4e-4b44-b093-7cecedb4896a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T08:42:00.9560545Z","updatedOn":"2020-04-20T08:42:00.9560545Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/7a41b62f-97d4-4f4c-8bfc-4a8dd708e00f","type":"Microsoft.Authorization/roleAssignments","name":"7a41b62f-97d4-4f4c-8bfc-4a8dd708e00f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"241cd743-2c33-4860-bd3a-1df659c06eef","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-19T00:23:10.4351839Z","updatedOn":"2020-06-19T00:23:10.4351839Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c1eb6cee-ee7a-4ed5-a683-846f01688ab9","type":"Microsoft.Authorization/roleAssignments","name":"c1eb6cee-ee7a-4ed5-a683-846f01688ab9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2540d861-4685-48cd-a936-e371b3208c87","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-07T01:58:45.6145522Z","updatedOn":"2020-05-07T01:58:45.6145522Z","createdBy":"4b5234ab-8f8d-429e-9e1c-ea5799b66ffa","updatedBy":"4b5234ab-8f8d-429e-9e1c-ea5799b66ffa","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9d42f5af-b9f8-4cf4-b017-612fdbb4f8a7","type":"Microsoft.Authorization/roleAssignments","name":"9d42f5af-b9f8-4cf4-b017-612fdbb4f8a7"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2a97c4b7-edc4-4d83-bee0-5754c7d5dc19","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-13T21:41:39.4063114Z","updatedOn":"2020-01-13T21:41:39.4063114Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2226a2aa-7a47-4546-82ed-4e9e4536bc7b","type":"Microsoft.Authorization/roleAssignments","name":"2226a2aa-7a47-4546-82ed-4e9e4536bc7b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2b66ef67-ee5d-4699-b59e-03eda4193896","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-23T03:10:28.2381030Z","updatedOn":"2020-04-23T03:10:28.2381030Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f98d1512-e634-4663-a219-24be2e6bfe1c","type":"Microsoft.Authorization/roleAssignments","name":"f98d1512-e634-4663-a219-24be2e6bfe1c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2d031dff-5170-4962-969f-dda3f668c04e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-30T08:37:59.5958569Z","updatedOn":"2020-05-30T08:37:59.5958569Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c71106d4-6a4c-461d-92dd-c3a3b94f856d","type":"Microsoft.Authorization/roleAssignments","name":"c71106d4-6a4c-461d-92dd-c3a3b94f856d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2d36972c-06f7-4ee4-9e91-73957849e734","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-01-30T22:50:20.7914421Z","updatedOn":"2019-01-30T22:50:20.7914421Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0bee5f49-7099-4a3c-9eef-b40697f6f371","type":"Microsoft.Authorization/roleAssignments","name":"0bee5f49-7099-4a3c-9eef-b40697f6f371"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2d41439a-72c4-47dc-9b23-e919cead4c41","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-04T06:37:19.1237954Z","updatedOn":"2020-04-04T06:37:19.1237954Z","createdBy":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","updatedBy":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d2d2ec3b-f7e6-4dbb-b281-0ceb5f243d01","type":"Microsoft.Authorization/roleAssignments","name":"d2d2ec3b-f7e6-4dbb-b281-0ceb5f243d01"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2e0c670c-6395-4a4e-8b4c-851afd84339f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-10-16T21:25:10.0634209Z","updatedOn":"2018-10-16T21:25:10.0634209Z","createdBy":"85c3c1d9-e7aa-418e-8a66-3fe24e88e80c","updatedBy":"85c3c1d9-e7aa-418e-8a66-3fe24e88e80c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/7f06ee09-ebfa-4931-a77d-ae0a39454e5b","type":"Microsoft.Authorization/roleAssignments","name":"7f06ee09-ebfa-4931-a77d-ae0a39454e5b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"303d8fcd-ef36-4cdd-92a8-7d37f7e8475b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-21T16:23:59.2770539Z","updatedOn":"2020-08-21T16:23:59.2770539Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4ed77f1d-82a2-4a02-b48e-fa5776870280","type":"Microsoft.Authorization/roleAssignments","name":"4ed77f1d-82a2-4a02-b48e-fa5776870280"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"305c679a-dc49-43a7-b913-996069f10c61","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-15T02:06:03.3308352Z","updatedOn":"2020-04-15T02:06:03.3308352Z","createdBy":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","updatedBy":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6142150e-c404-48e6-a731-fffb36357051","type":"Microsoft.Authorization/roleAssignments","name":"6142150e-c404-48e6-a731-fffb36357051"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"392e7e76-1ee5-4c86-b0c3-cd3ebc5fe4a8","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T20:29:38.5194580Z","updatedOn":"2020-04-20T20:29:38.5194580Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/7682e420-ebd8-4c39-be01-8c1fc953f250","type":"Microsoft.Authorization/roleAssignments","name":"7682e420-ebd8-4c39-be01-8c1fc953f250"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"39527840-d507-4477-8bd2-d7ffa4542194","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-11-16T23:46:13.9660279Z","updatedOn":"2018-11-16T23:46:13.9660279Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2b66b1ea-89dd-4bc6-8d89-96298648eb40","type":"Microsoft.Authorization/roleAssignments","name":"2b66b1ea-89dd-4bc6-8d89-96298648eb40"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"3c5e52d1-1e78-4c0e-b069-1c07c6ed52d6","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-07T09:44:47.0965106Z","updatedOn":"2020-09-07T09:44:47.0965106Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/79357f85-973d-4621-b1bd-d1ecb645e146","type":"Microsoft.Authorization/roleAssignments","name":"79357f85-973d-4621-b1bd-d1ecb645e146"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"433b39e4-d731-4c3f-855b-327c980d393d","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-01-31T01:55:23.5911140Z","updatedOn":"2019-01-31T01:55:23.5911140Z","createdBy":"b47f071a-d6c9-4297-954e-83151fff489b","updatedBy":"b47f071a-d6c9-4297-954e-83151fff489b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3359123d-b5f7-48d6-a1e7-ad77b7ef6b7f","type":"Microsoft.Authorization/roleAssignments","name":"3359123d-b5f7-48d6-a1e7-ad77b7ef6b7f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"44d2f8c7-d87d-45b0-87db-4cb97b40417d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-10-27T00:03:26.2878499Z","updatedOn":"2018-10-27T00:03:26.2878499Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ea920230-1aba-4f80-9eef-3fed8216f594","type":"Microsoft.Authorization/roleAssignments","name":"ea920230-1aba-4f80-9eef-3fed8216f594"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"471feb6d-5a83-439e-af7b-311f4eee2d0c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-25T08:25:35.9118633Z","updatedOn":"2020-03-25T08:25:35.9118633Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6559da2d-7b8e-4dfe-ba1d-dfedbd7c73a1","type":"Microsoft.Authorization/roleAssignments","name":"6559da2d-7b8e-4dfe-ba1d-dfedbd7c73a1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"4c6b5ae4-3f4a-4317-8970-2ed342366d0b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-04T02:21:24.1380483Z","updatedOn":"2020-06-04T02:21:24.1380483Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f70af6d6-4511-4e74-b25f-9c15978d4859","type":"Microsoft.Authorization/roleAssignments","name":"f70af6d6-4511-4e74-b25f-9c15978d4859"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"4f6ccf88-de1e-417e-9971-f4263b13b4d2","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-26T01:25:12.5585896Z","updatedOn":"2019-10-26T01:25:12.5585896Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e5e4c17a-2a72-4b0e-8518-53afddc60b04","type":"Microsoft.Authorization/roleAssignments","name":"e5e4c17a-2a72-4b0e-8518-53afddc60b04"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"503af2b0-4664-4e4e-8fab-00e7d16ed6b5","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T22:24:43.1326207Z","updatedOn":"2020-04-20T22:24:43.1326207Z","createdBy":"5ecb1531-0d8c-4a89-93cb-1b48b2224358","updatedBy":"5ecb1531-0d8c-4a89-93cb-1b48b2224358","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d54b05eb-b1d1-4845-8ac5-48c5bb4c50b6","type":"Microsoft.Authorization/roleAssignments","name":"d54b05eb-b1d1-4845-8ac5-48c5bb4c50b6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"557182cc-aa6f-4700-a3b5-77c4c64b2148","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-03T09:55:40.2829720Z","updatedOn":"2020-04-03T09:55:40.2829720Z","createdBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","updatedBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c9c2a551-11aa-4b0a-8816-f8511cd46a32","type":"Microsoft.Authorization/roleAssignments","name":"c9c2a551-11aa-4b0a-8816-f8511cd46a32"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5abe6647-6d0a-42a5-9378-28457904e05f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-18T02:26:13.8743106Z","updatedOn":"2020-07-18T02:26:13.8743106Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cfd7632d-7c5a-4531-82ce-890df8b4be96","type":"Microsoft.Authorization/roleAssignments","name":"cfd7632d-7c5a-4531-82ce-890df8b4be96"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5c4e9ab8-dc30-4939-82c2-21578f3e8729","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T03:57:30.1921503Z","updatedOn":"2020-04-29T03:57:30.1921503Z","createdBy":"a5cae52f-366a-417b-b718-e73d17746c35","updatedBy":"a5cae52f-366a-417b-b718-e73d17746c35","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b4a5f74f-d5b2-4fc7-bfa1-893cc5b9ad88","type":"Microsoft.Authorization/roleAssignments","name":"b4a5f74f-d5b2-4fc7-bfa1-893cc5b9ad88"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5dc8b685-8bb3-4140-b266-34da5be22de8","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-21T06:59:06.6904070Z","updatedOn":"2020-04-21T06:59:06.6904070Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8273f6ee-b861-42a0-8dec-475eb3215463","type":"Microsoft.Authorization/roleAssignments","name":"8273f6ee-b861-42a0-8dec-475eb3215463"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5f58dacf-3c88-4723-93ab-e6e23593fc9c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-29T17:47:02.9492136Z","updatedOn":"2020-06-29T17:47:02.9492136Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5cae5324-e7eb-4c13-ba0d-80c801c2b744","type":"Microsoft.Authorization/roleAssignments","name":"5cae5324-e7eb-4c13-ba0d-80c801c2b744"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"62432823-a60a-4a06-a27d-85ae2bbc2b7b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T15:40:03.6815875Z","updatedOn":"2020-04-29T15:40:03.6815875Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/09778426-699f-4faa-8016-5e6029e7313d","type":"Microsoft.Authorization/roleAssignments","name":"09778426-699f-4faa-8016-5e6029e7313d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"638a2bb1-78e5-4557-aadf-5f0f60cc0d34","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-26T21:10:42.2124416Z","updatedOn":"2020-03-26T21:10:42.2124416Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d394da6c-4def-47de-8689-791727331c5b","type":"Microsoft.Authorization/roleAssignments","name":"d394da6c-4def-47de-8689-791727331c5b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"6517947e-4657-4099-803b-c0e795511100","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-27T23:43:20.3428422Z","updatedOn":"2020-04-27T23:43:20.3428422Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/271e5b8d-8684-4668-98b9-c3dc25f4b437","type":"Microsoft.Authorization/roleAssignments","name":"271e5b8d-8684-4668-98b9-c3dc25f4b437"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"6640bb09-7172-43fe-bce0-faf7f34b959a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-01T10:07:57.9278821Z","updatedOn":"2020-09-01T10:07:57.9278821Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/06cdf5a9-0983-4aa6-8d0f-20faf663dc4e","type":"Microsoft.Authorization/roleAssignments","name":"06cdf5a9-0983-4aa6-8d0f-20faf663dc4e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"6a73ce5d-207c-4a44-baef-01c84afe30f3","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-21T07:34:50.7125622Z","updatedOn":"2020-04-21T07:34:50.7125622Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ddeb2255-2bb6-458a-a891-532e96ae5483","type":"Microsoft.Authorization/roleAssignments","name":"ddeb2255-2bb6-458a-a891-532e96ae5483"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"711888db-b490-4698-8814-350c558a6a73","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-23T04:07:45.3308845Z","updatedOn":"2020-06-23T04:07:45.3308845Z","createdBy":"9404195a-2cde-4a10-b88c-e7b41572bf31","updatedBy":"9404195a-2cde-4a10-b88c-e7b41572bf31","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/15d1dab1-b507-11ea-819c-a28e10bedef6","type":"Microsoft.Authorization/roleAssignments","name":"15d1dab1-b507-11ea-819c-a28e10bedef6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"720814e8-6495-459c-883d-d4ca50f57716","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-13T00:09:08.8179220Z","updatedOn":"2020-05-13T00:09:08.8179220Z","createdBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","updatedBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/08a578f0-4875-47d0-8775-946b3a0f2b06","type":"Microsoft.Authorization/roleAssignments","name":"08a578f0-4875-47d0-8775-946b3a0f2b06"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7394c726-6331-44bd-8bc0-a51fb3d2662c","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-07T01:39:11.6516136Z","updatedOn":"2020-08-07T01:39:11.6516136Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2bc755b7-1e10-4e6a-9f88-be2c3e711633","type":"Microsoft.Authorization/roleAssignments","name":"2bc755b7-1e10-4e6a-9f88-be2c3e711633"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7492aa9f-0b77-4968-8948-b90ca3819519","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-09T01:04:43.1548351Z","updatedOn":"2020-04-09T01:04:43.1548351Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/db269e86-2241-4771-8ecb-d45b3adae008","type":"Microsoft.Authorization/roleAssignments","name":"db269e86-2241-4771-8ecb-d45b3adae008"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"796b46ec-9afe-44fd-aa2f-446669eb286c","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-10T23:15:46.8549700Z","updatedOn":"2020-05-10T23:15:46.8549700Z","createdBy":"c1acf319-6d96-4dfe-b194-c27640869947","updatedBy":"c1acf319-6d96-4dfe-b194-c27640869947","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22d3da65-7681-445e-9080-e748e494676f","type":"Microsoft.Authorization/roleAssignments","name":"22d3da65-7681-445e-9080-e748e494676f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7accdf1b-3db5-4e15-976a-837baa339d2b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-03T07:04:36.3910200Z","updatedOn":"2020-08-03T07:04:36.3910200Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6196ad7d-c2ba-4b8d-b41b-2786374f5fa6","type":"Microsoft.Authorization/roleAssignments","name":"6196ad7d-c2ba-4b8d-b41b-2786374f5fa6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7d24045a-3445-4bda-abe5-232e2bccd01a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-29T13:30:14.1177711Z","updatedOn":"2019-08-29T13:30:14.1177711Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4a2c1014-c1ba-4ae9-a632-90967c28429d","type":"Microsoft.Authorization/roleAssignments","name":"4a2c1014-c1ba-4ae9-a632-90967c28429d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7db92542-b539-4a35-a6aa-46923aa70462","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-27T01:26:21.7189691Z","updatedOn":"2020-02-27T01:26:21.7189691Z","createdBy":"c1acf319-6d96-4dfe-b194-c27640869947","updatedBy":"c1acf319-6d96-4dfe-b194-c27640869947","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/28808064-5900-11ea-81c8-acde48001122","type":"Microsoft.Authorization/roleAssignments","name":"28808064-5900-11ea-81c8-acde48001122"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7dd02246-a0fe-4548-90a8-0e874304beb7","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-02T01:52:45.5699406Z","updatedOn":"2020-09-02T01:52:45.5699406Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3e21284b-6bd7-431a-81ae-ccaf56267ab5","type":"Microsoft.Authorization/roleAssignments","name":"3e21284b-6bd7-431a-81ae-ccaf56267ab5"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7e765346-577f-4221-9d67-4d88471aa629","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-21T06:38:11.2976025Z","updatedOn":"2020-02-21T06:38:11.2976025Z","createdBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","updatedBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ff53f83d-7146-4af0-920b-9027ce9e5c98","type":"Microsoft.Authorization/roleAssignments","name":"ff53f83d-7146-4af0-920b-9027ce9e5c98"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7ecafeca-74fa-4dff-9526-f36baee311e1","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-07T02:44:34.0976537Z","updatedOn":"2020-08-07T02:44:34.0976537Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/1aecba65-a71b-4908-a57e-9619d0dbf32c","type":"Microsoft.Authorization/roleAssignments","name":"1aecba65-a71b-4908-a57e-9619d0dbf32c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"80120e80-4873-41d7-b73c-e9fede790b52","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-31T20:08:15.8705805Z","updatedOn":"2019-10-31T20:08:15.8705805Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e47c861f-a9eb-46c0-b2e2-102033a5c009","type":"Microsoft.Authorization/roleAssignments","name":"e47c861f-a9eb-46c0-b2e2-102033a5c009"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"826494a1-f78c-4196-ac4e-bb39db9e0b30","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T00:17:14.5340823Z","updatedOn":"2020-04-28T00:17:14.5340823Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f7e6b175-9796-4292-bf64-1683aa14312f","type":"Microsoft.Authorization/roleAssignments","name":"f7e6b175-9796-4292-bf64-1683aa14312f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"82e11ed5-c720-4c8d-b396-a2fcd9e4291f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T08:30:00.0256525Z","updatedOn":"2020-04-20T08:30:00.0256525Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a91f5ef0-1d9b-453e-8f90-43826c3652dd","type":"Microsoft.Authorization/roleAssignments","name":"a91f5ef0-1d9b-453e-8f90-43826c3652dd"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8525c1e5-7ec8-421b-922a-d23add34859f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-14T00:22:19.2644898Z","updatedOn":"2020-04-14T00:22:19.2644898Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/420714ce-6b24-4ce2-b7ee-51554de01de7","type":"Microsoft.Authorization/roleAssignments","name":"420714ce-6b24-4ce2-b7ee-51554de01de7"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"857203e6-a2cb-4448-84f9-85b4e79b8d57","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-05T08:37:27.3623228Z","updatedOn":"2020-08-05T08:37:27.3623228Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6733ca0e-2210-4978-9e7c-b07d1258b056","type":"Microsoft.Authorization/roleAssignments","name":"6733ca0e-2210-4978-9e7c-b07d1258b056"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"864e1247-3a96-49b6-89ad-931587c9d5ae","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T00:53:44.9077172Z","updatedOn":"2020-04-28T00:53:44.9077172Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2940c5e2-5742-42aa-9569-e68c698a01d6","type":"Microsoft.Authorization/roleAssignments","name":"2940c5e2-5742-42aa-9569-e68c698a01d6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"87714c58-f8a2-447f-8bf1-30e214386c56","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-13T08:23:22.2283915Z","updatedOn":"2020-07-13T08:23:22.2283915Z","createdBy":"a75ea823-3748-4855-a4df-f4ba5383d006","updatedBy":"a75ea823-3748-4855-a4df-f4ba5383d006","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d620bc90-9de4-4ae7-b69a-0b2489f91897","type":"Microsoft.Authorization/roleAssignments","name":"d620bc90-9de4-4ae7-b69a-0b2489f91897"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"87ccb404-2e62-44d1-97c0-a842c400b985","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-01-30T19:30:49.2769608Z","updatedOn":"2019-01-30T19:30:49.2769608Z","createdBy":"b47f071a-d6c9-4297-954e-83151fff489b","updatedBy":"b47f071a-d6c9-4297-954e-83151fff489b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/310957e5-5722-42e0-95b6-5bc6c6b67f16","type":"Microsoft.Authorization/roleAssignments","name":"310957e5-5722-42e0-95b6-5bc6c6b67f16"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"88d55a68-f674-4ec5-afcd-fe150e59c549","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-21T16:23:57.7005096Z","updatedOn":"2020-08-21T16:23:57.7005096Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/17d7954a-d32a-4181-b887-1de9a8a0c05a","type":"Microsoft.Authorization/roleAssignments","name":"17d7954a-d32a-4181-b887-1de9a8a0c05a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8a5603a8-2c60-49ab-bc28-a989b91e187d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-21T16:23:58.4382384Z","updatedOn":"2020-08-21T16:23:58.4382384Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8ab72fbd-e5fe-4a7d-ae20-baad615d688d","type":"Microsoft.Authorization/roleAssignments","name":"8ab72fbd-e5fe-4a7d-ae20-baad615d688d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"91f81dfd-d0ca-4654-902f-fe155ff9845b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-03T01:05:25.8863198Z","updatedOn":"2020-07-03T01:05:25.8863198Z","createdBy":"7ac4ca6d-46a3-4e71-a705-858af50eea7b","updatedBy":"7ac4ca6d-46a3-4e71-a705-858af50eea7b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/46877403-bcc9-11ea-924f-00155d871f03","type":"Microsoft.Authorization/roleAssignments","name":"46877403-bcc9-11ea-924f-00155d871f03"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"92634de3-03f6-4092-b41b-20616b11a464","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-02T16:19:56.1932050Z","updatedOn":"2020-06-02T16:19:56.1932050Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/de7bdfed-5cc5-47e2-9008-327939dc8379","type":"Microsoft.Authorization/roleAssignments","name":"de7bdfed-5cc5-47e2-9008-327939dc8379"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9978f56d-3a74-4227-932e-f4572b39ca36","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T13:17:45.8096903Z","updatedOn":"2020-04-29T13:17:45.8096903Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cdf0f5fa-8a1b-11ea-a09b-acbc329aaf8b","type":"Microsoft.Authorization/roleAssignments","name":"cdf0f5fa-8a1b-11ea-a09b-acbc329aaf8b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9b5ae861-7fd1-4e4e-929a-7b2123263686","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-03-28T19:57:23.3708745Z","updatedOn":"2019-03-28T19:57:23.3708745Z","createdBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","updatedBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cc796cab-2f6b-4099-b9a3-7500f5516153","type":"Microsoft.Authorization/roleAssignments","name":"cc796cab-2f6b-4099-b9a3-7500f5516153"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9bb644db-35f0-4b26-a438-7563f129a27f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-24T02:12:40.2606628Z","updatedOn":"2020-04-24T02:12:40.2606628Z","createdBy":"a75ea823-3748-4855-a4df-f4ba5383d006","updatedBy":"a75ea823-3748-4855-a4df-f4ba5383d006","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6a375386-4cb0-47fd-952c-92465f6d679d","type":"Microsoft.Authorization/roleAssignments","name":"6a375386-4cb0-47fd-952c-92465f6d679d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9c7b97ac-5b7e-4bae-ad59-5f5dda187565","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-21T16:23:57.7999137Z","updatedOn":"2020-08-21T16:23:57.7999137Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9a853af7-252b-4315-9ee3-0b243e595f80","type":"Microsoft.Authorization/roleAssignments","name":"9a853af7-252b-4315-9ee3-0b243e595f80"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9ccdf8ca-07f3-4e80-bd90-bdb90fee87cc","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-18T18:32:12.4073614Z","updatedOn":"2020-06-18T18:32:12.4073614Z","createdBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","updatedBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/7c124231-2ff5-4025-86b5-c25e2415846c","type":"Microsoft.Authorization/roleAssignments","name":"7c124231-2ff5-4025-86b5-c25e2415846c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9e759545-285e-4af0-9caf-18018b3dee9e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-07T21:38:16.8019789Z","updatedOn":"2020-07-07T21:38:16.8019789Z","createdBy":"67f96a40-adf7-4f43-888f-33526c5cfa95","updatedBy":"67f96a40-adf7-4f43-888f-33526c5cfa95","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2d34e25a-c09a-11ea-893f-eefa4c05adfb","type":"Microsoft.Authorization/roleAssignments","name":"2d34e25a-c09a-11ea-893f-eefa4c05adfb"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9fcea202-aea4-483b-bfce-69efda94b4cd","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-30T22:56:44.9793119Z","updatedOn":"2020-03-30T22:56:44.9793119Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/000ea275-41c4-40ce-943f-98a8849a56bc","type":"Microsoft.Authorization/roleAssignments","name":"000ea275-41c4-40ce-943f-98a8849a56bc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a0489948-cd50-4991-80ff-9108f978032f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:01:31.6182075Z","updatedOn":"2019-12-13T02:01:31.6182075Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d3ea741e-fdf8-4780-a73f-bbc0efbd141c","type":"Microsoft.Authorization/roleAssignments","name":"d3ea741e-fdf8-4780-a73f-bbc0efbd141c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a1b1ff5b-e20b-4e52-936d-a4c8f247b72d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-07T23:59:03.2024779Z","updatedOn":"2020-07-07T23:59:03.2024779Z","createdBy":"1ec25b73-94d5-4bf9-a56f-ca7d9bd4164c","updatedBy":"1ec25b73-94d5-4bf9-a56f-ca7d9bd4164c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/718cdad6-cc40-415b-aae3-f356df943d39","type":"Microsoft.Authorization/roleAssignments","name":"718cdad6-cc40-415b-aae3-f356df943d39"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a6581be6-c0f9-459c-b7a1-f41b8ff6ccc1","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-23T05:07:17.2382220Z","updatedOn":"2020-06-23T05:07:17.2382220Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4202823d-7518-46d1-b5ff-b6c7cb7b9dd3","type":"Microsoft.Authorization/roleAssignments","name":"4202823d-7518-46d1-b5ff-b6c7cb7b9dd3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a6b76fdc-4343-4b87-b6d3-3ae963564733","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-18T12:01:15.4801397Z","updatedOn":"2020-05-18T12:01:15.4801397Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4c04d5e5-df60-47b9-abde-aa9641425c64","type":"Microsoft.Authorization/roleAssignments","name":"4c04d5e5-df60-47b9-abde-aa9641425c64"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"abc07840-24d3-46fa-a995-efab1f0ba575","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-10T01:13:53.0806696Z","updatedOn":"2020-06-10T01:13:53.0806696Z","createdBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","updatedBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a584fad9-aab7-11ea-b7e7-00155d4b0124","type":"Microsoft.Authorization/roleAssignments","name":"a584fad9-aab7-11ea-b7e7-00155d4b0124"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ae78c8b3-6b29-4016-bb6e-407a13c0f74a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-03T07:48:19.4504494Z","updatedOn":"2020-07-03T07:48:19.4504494Z","createdBy":"471feb6d-5a83-439e-af7b-311f4eee2d0c","updatedBy":"471feb6d-5a83-439e-af7b-311f4eee2d0c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/28dd25b5-e359-4d3d-9632-bcd15c3fa296","type":"Microsoft.Authorization/roleAssignments","name":"28dd25b5-e359-4d3d-9632-bcd15c3fa296"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"b42d32ff-6855-4eb7-8381-fc768a25b2c6","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-09T00:52:51.5057560Z","updatedOn":"2020-06-09T00:52:51.5057560Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6d91fd42-bd38-4380-8f63-993e49f83833","type":"Microsoft.Authorization/roleAssignments","name":"6d91fd42-bd38-4380-8f63-993e49f83833"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"b7270086-f3bc-4f32-90c1-57acecc3b9b7","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-18T06:45:36.0416580Z","updatedOn":"2020-08-18T06:45:36.0416580Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2d5ea243-13a9-416a-bbb0-8debeb11a885","type":"Microsoft.Authorization/roleAssignments","name":"2d5ea243-13a9-416a-bbb0-8debeb11a885"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ba369353-49f9-4c7c-806f-5368d84c5dde","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-09-20T20:32:24.1155446Z","updatedOn":"2019-09-20T20:32:24.1155446Z","createdBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","updatedBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c1a9a09e-eafe-4c97-b589-a8261ee04099","type":"Microsoft.Authorization/roleAssignments","name":"c1a9a09e-eafe-4c97-b589-a8261ee04099"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"bbdf32e1-9aa3-4b56-b0ea-8a03f9a89781","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-12T08:25:20.7039022Z","updatedOn":"2020-08-12T08:25:20.7039022Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8f755701-8e88-4663-ab7b-c0d44d51c410","type":"Microsoft.Authorization/roleAssignments","name":"8f755701-8e88-4663-ab7b-c0d44d51c410"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"bc2634de-5197-4980-9558-ef6bac4d18b0","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-12T00:23:23.9037436Z","updatedOn":"2020-05-12T00:23:23.9037436Z","createdBy":"c1acf319-6d96-4dfe-b194-c27640869947","updatedBy":"c1acf319-6d96-4dfe-b194-c27640869947","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6ff95229-981f-40d7-889f-97bc90b8f387","type":"Microsoft.Authorization/roleAssignments","name":"6ff95229-981f-40d7-889f-97bc90b8f387"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"bcafa782-9a5c-4967-83ea-94265a9914dd","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-09T00:52:52.1315983Z","updatedOn":"2020-06-09T00:52:52.1315983Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/7512dec1-86e5-400d-8bc9-f24f181127f3","type":"Microsoft.Authorization/roleAssignments","name":"7512dec1-86e5-400d-8bc9-f24f181127f3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-30T03:12:58.1455315Z","updatedOn":"2019-12-30T03:12:58.1455315Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/091713ce-9ee7-445d-beaf-708ee254b129","type":"Microsoft.Authorization/roleAssignments","name":"091713ce-9ee7-445d-beaf-708ee254b129"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c29bee61-aa42-4f9c-be8b-840522822e1e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-19T04:20:34.3557776Z","updatedOn":"2019-04-19T04:20:34.3557776Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/092a238c-94af-4fca-bd4a-bb4995ea58db","type":"Microsoft.Authorization/roleAssignments","name":"092a238c-94af-4fca-bd4a-bb4995ea58db"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c4d025e6-45a4-46c4-9173-a251cba484a4","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-14T04:03:23.9185561Z","updatedOn":"2020-04-14T04:03:23.9185561Z","createdBy":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","updatedBy":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0f0f495d-0356-4239-b966-3f47f5f1054a","type":"Microsoft.Authorization/roleAssignments","name":"0f0f495d-0356-4239-b966-3f47f5f1054a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c4d36055-ba57-4348-86d1-d0847e077da0","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-02-08T18:23:30.4938080Z","updatedOn":"2018-02-08T18:23:30.4938080Z","createdBy":"844b4426-fbe6-487c-b18c-8264fb2d6542","updatedBy":"844b4426-fbe6-487c-b18c-8264fb2d6542","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8f23509d-c075-4361-be73-f4e1c631efa9","type":"Microsoft.Authorization/roleAssignments","name":"8f23509d-c075-4361-be73-f4e1c631efa9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c518df35-7e98-4c84-9222-b902d191061e","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T20:29:38.4023513Z","updatedOn":"2020-04-20T20:29:38.4023513Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b3276191-98a8-472b-b650-21c8d24b7464","type":"Microsoft.Authorization/roleAssignments","name":"b3276191-98a8-472b-b650-21c8d24b7464"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c5fc995b-16f3-4e85-bac9-607a7a6b2eba","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:01:51.0230612Z","updatedOn":"2019-12-13T02:01:51.0230612Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f7a1c5da-f357-45d0-8397-e190956ccdbf","type":"Microsoft.Authorization/roleAssignments","name":"f7a1c5da-f357-45d0-8397-e190956ccdbf"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c5ff3392-9b35-4c76-999e-a80a1b747b55","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-16T02:06:59.0490140Z","updatedOn":"2020-05-16T02:06:59.0490140Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2cf7ea7b-3bdd-44ea-966b-b4eb4e7813fa","type":"Microsoft.Authorization/roleAssignments","name":"2cf7ea7b-3bdd-44ea-966b-b4eb4e7813fa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c6141a72-0ed4-456b-8334-7b17736d97ef","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-13T22:32:47.4470861Z","updatedOn":"2020-04-13T22:32:47.4470861Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/93ce765f-2d72-454b-816b-ba287754fe5a","type":"Microsoft.Authorization/roleAssignments","name":"93ce765f-2d72-454b-816b-ba287754fe5a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c758f69d-a2c1-49fe-9ed1-2564a7cbdab1","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-07T01:48:28.3774394Z","updatedOn":"2020-08-07T01:48:28.3774394Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c74dd12c-7642-492a-9501-904f9aa82760","type":"Microsoft.Authorization/roleAssignments","name":"c74dd12c-7642-492a-9501-904f9aa82760"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c7eb4d86-8773-4890-ac9c-d9785f7f68ae","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-14T00:42:59.8868253Z","updatedOn":"2020-05-14T00:42:59.8868253Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6b3c8d44-237c-410c-a095-52ded7f5cd26","type":"Microsoft.Authorization/roleAssignments","name":"6b3c8d44-237c-410c-a095-52ded7f5cd26"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c9466ef0-e6f3-440d-b025-e9c2cd815d16","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-11T13:26:01.9493491Z","updatedOn":"2020-02-11T13:26:01.9493491Z","createdBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","updatedBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8fab1ba3-53c2-4b21-9d32-dc89fd061811","type":"Microsoft.Authorization/roleAssignments","name":"8fab1ba3-53c2-4b21-9d32-dc89fd061811"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"cb95783d-cf85-4e9e-8637-1d44b88b607f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-19T22:53:47.5902917Z","updatedOn":"2019-04-19T22:53:47.5902917Z","createdBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","updatedBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/1f9d617d-8ab5-4f63-8c85-445f6c30632f","type":"Microsoft.Authorization/roleAssignments","name":"1f9d617d-8ab5-4f63-8c85-445f6c30632f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ccb6b07f-77d7-455f-b6d7-3130238399e7","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-07T01:59:03.9569942Z","updatedOn":"2020-08-07T01:59:03.9569942Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2318aabd-c65a-4f81-ac06-6426e70e8e66","type":"Microsoft.Authorization/roleAssignments","name":"2318aabd-c65a-4f81-ac06-6426e70e8e66"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"cd00527a-7491-4ee9-9f79-8209067a98b3","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-03T05:34:39.2163770Z","updatedOn":"2020-04-03T05:34:39.2163770Z","createdBy":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","updatedBy":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8e4edc2a-dd1f-469b-9a44-f0693866b843","type":"Microsoft.Authorization/roleAssignments","name":"8e4edc2a-dd1f-469b-9a44-f0693866b843"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"cd57acf3-84bf-4deb-8014-482cfd32ac79","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-16T15:13:03.4655200Z","updatedOn":"2020-02-16T15:13:03.4655200Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cc0c8bdd-f097-408e-82d7-45b84b7bc308","type":"Microsoft.Authorization/roleAssignments","name":"cc0c8bdd-f097-408e-82d7-45b84b7bc308"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"cdb876ec-8433-4be1-8502-113ed17e2d6b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-12T21:48:57.3001992Z","updatedOn":"2020-05-12T21:48:57.3001992Z","createdBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","updatedBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/dcc102ec-9c04-4c7c-976e-94c72db42b49","type":"Microsoft.Authorization/roleAssignments","name":"dcc102ec-9c04-4c7c-976e-94c72db42b49"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"cde55c1b-420b-484c-b5eb-3b11a98ca252","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-06-26T06:44:38.5656650Z","updatedOn":"2019-06-26T06:44:38.5656650Z","createdBy":"f058371f-0c0e-46bb-a5d4-f8aec637a467","updatedBy":"f058371f-0c0e-46bb-a5d4-f8aec637a467","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a2cc1fcf-6ce5-4bd8-94c9-e0e6aa788a1d","type":"Microsoft.Authorization/roleAssignments","name":"a2cc1fcf-6ce5-4bd8-94c9-e0e6aa788a1d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d03f4127-3faf-4d41-8335-91d2189b7cce","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-09T02:33:18.1231987Z","updatedOn":"2020-04-09T02:33:18.1231987Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/817b295c-2044-4e43-a8ee-dfbb1af3c458","type":"Microsoft.Authorization/roleAssignments","name":"817b295c-2044-4e43-a8ee-dfbb1af3c458"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d1081032-24c2-4e6b-be6c-9568573c8b17","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-20T19:40:09.1141460Z","updatedOn":"2020-02-20T19:40:09.1141460Z","createdBy":"c1acf319-6d96-4dfe-b194-c27640869947","updatedBy":"c1acf319-6d96-4dfe-b194-c27640869947","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d4673bf4-97da-4102-9284-2a7315b88a34","type":"Microsoft.Authorization/roleAssignments","name":"d4673bf4-97da-4102-9284-2a7315b88a34"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d69d1d49-5dc8-4c8e-afb6-325d83ddcee8","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-23T05:07:14.6947730Z","updatedOn":"2020-06-23T05:07:14.6947730Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bec06514-2b3f-4a1f-92f2-cbb30828f447","type":"Microsoft.Authorization/roleAssignments","name":"bec06514-2b3f-4a1f-92f2-cbb30828f447"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d6cd9d7f-79fa-4ae4-b6bd-696678b6626e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-21T07:19:44.2488168Z","updatedOn":"2020-04-21T07:19:44.2488168Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/fadbe071-d757-48fc-b82a-4784249ded10","type":"Microsoft.Authorization/roleAssignments","name":"fadbe071-d757-48fc-b82a-4784249ded10"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d6d7cee8-8e53-4cd0-9835-ce90ad8b1638","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:01:31.7381957Z","updatedOn":"2019-12-13T02:01:31.7381957Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6e035090-e3f8-4bb2-b117-fac2fba706b2","type":"Microsoft.Authorization/roleAssignments","name":"6e035090-e3f8-4bb2-b117-fac2fba706b2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d9ad0505-c4e5-4554-8229-480e3c49fa22","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-03-12T17:29:23.0437979Z","updatedOn":"2019-03-12T17:29:23.0437979Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a7e76154-c2a7-4419-b73f-e8c6010318c9","type":"Microsoft.Authorization/roleAssignments","name":"a7e76154-c2a7-4419-b73f-e8c6010318c9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"db415584-34a8-442b-ae9c-b11bc53c19e5","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-26T19:29:06.9092628Z","updatedOn":"2020-05-26T19:29:06.9092628Z","createdBy":"d69d1d49-5dc8-4c8e-afb6-325d83ddcee8","updatedBy":"d69d1d49-5dc8-4c8e-afb6-325d83ddcee8","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c0b0f01a-d6f2-4c1f-879d-10bdc2f1aee5","type":"Microsoft.Authorization/roleAssignments","name":"c0b0f01a-d6f2-4c1f-879d-10bdc2f1aee5"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"db6d2195-3cfb-4368-b915-0c945b4899b3","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-10-31T16:50:18.8405451Z","updatedOn":"2018-10-31T16:50:18.8405451Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6052f563-4044-4900-a65c-38880bd6bf60","type":"Microsoft.Authorization/roleAssignments","name":"6052f563-4044-4900-a65c-38880bd6bf60"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"dbd1fdcd-6b18-430f-b629-a75a06c57c53","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-04T06:08:35.6470719Z","updatedOn":"2020-09-04T06:08:35.6470719Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/78a5531e-970a-4cab-a312-ee486bec68cc","type":"Microsoft.Authorization/roleAssignments","name":"78a5531e-970a-4cab-a312-ee486bec68cc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"dd25b131-3979-4f9a-9abc-6cfaa34bafef","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-17T00:59:53.8734172Z","updatedOn":"2020-06-17T00:59:53.8734172Z","createdBy":"82e11ed5-c720-4c8d-b396-a2fcd9e4291f","updatedBy":"82e11ed5-c720-4c8d-b396-a2fcd9e4291f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d7f69b6b-b035-11ea-a6dd-000d3aa35713","type":"Microsoft.Authorization/roleAssignments","name":"d7f69b6b-b035-11ea-a6dd-000d3aa35713"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"de9c8be5-08e1-4cbd-a6f3-5cd2af19ba77","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-21T07:40:03.0117061Z","updatedOn":"2020-02-21T07:40:03.0117061Z","createdBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","updatedBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e5c1eb24-09ad-487a-8286-8bb2841d311d","type":"Microsoft.Authorization/roleAssignments","name":"e5c1eb24-09ad-487a-8286-8bb2841d311d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"e48edc49-012a-4d97-a0cc-a37c940033f5","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-23T14:27:52.3922162Z","updatedOn":"2020-04-23T14:27:52.3922162Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9acabd34-856e-11ea-98ae-acbc329aaf8b","type":"Microsoft.Authorization/roleAssignments","name":"9acabd34-856e-11ea-98ae-acbc329aaf8b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"e6a7bb6f-6e1f-46ac-9996-7408b3a03d5e","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T20:29:38.3267905Z","updatedOn":"2020-04-20T20:29:38.3267905Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ac979adb-819c-4fae-98bc-6a6c81bc76b1","type":"Microsoft.Authorization/roleAssignments","name":"ac979adb-819c-4fae-98bc-6a6c81bc76b1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ea80cc65-f105-417e-a9fb-3c88d809af24","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-02-06T23:56:15.2220285Z","updatedOn":"2018-02-06T23:56:15.2220285Z","createdBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","updatedBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f54c2ddd-8858-4c40-bdec-25546c985154","type":"Microsoft.Authorization/roleAssignments","name":"f54c2ddd-8858-4c40-bdec-25546c985154"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"eaa1d948-c6da-4496-a8c8-62747dbeaa04","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T20:29:38.3023490Z","updatedOn":"2020-04-20T20:29:38.3023490Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bf46ff50-6187-4a95-afd4-b811c1a8b239","type":"Microsoft.Authorization/roleAssignments","name":"bf46ff50-6187-4a95-afd4-b811c1a8b239"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ec744bef-b654-4ecf-8e17-54be9548a8cd","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-02-02T04:47:03.2856858Z","updatedOn":"2019-02-02T04:47:03.2856858Z","createdBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","updatedBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/11737a1b-2cf4-4fca-8c36-4ef79e0df5b0","type":"Microsoft.Authorization/roleAssignments","name":"11737a1b-2cf4-4fca-8c36-4ef79e0df5b0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-02T23:56:53.9541160Z","updatedOn":"2020-04-02T23:56:53.9541160Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/700e8068-ae0c-4176-8e70-8958a82a4aa1","type":"Microsoft.Authorization/roleAssignments","name":"700e8068-ae0c-4176-8e70-8958a82a4aa1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f058371f-0c0e-46bb-a5d4-f8aec637a467","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-02T07:21:13.1302112Z","updatedOn":"2019-08-02T07:21:13.1302112Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/98328e7b-c22c-4a4b-bcae-25953d0c52f3","type":"Microsoft.Authorization/roleAssignments","name":"98328e7b-c22c-4a4b-bcae-25953d0c52f3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f252f5a9-5576-4d6a-8786-7e3f9ae15736","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T06:05:33.4045612Z","updatedOn":"2020-04-29T06:05:33.4045612Z","createdBy":"a5cae52f-366a-417b-b718-e73d17746c35","updatedBy":"a5cae52f-366a-417b-b718-e73d17746c35","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b297605b-6ea5-4e63-b65c-174eab60c550","type":"Microsoft.Authorization/roleAssignments","name":"b297605b-6ea5-4e63-b65c-174eab60c550"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f340f3cf-80d0-418a-a4de-8f6e92768bd8","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T03:13:08.9833014Z","updatedOn":"2020-04-28T03:13:08.9833014Z","createdBy":"547f6960-a967-417a-a9a4-0f35fbdca11c","updatedBy":"547f6960-a967-417a-a9a4-0f35fbdca11c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5479cc1b-0762-40bd-862d-7369aa1ff685","type":"Microsoft.Authorization/roleAssignments","name":"5479cc1b-0762-40bd-862d-7369aa1ff685"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f3add809-c372-44f2-8d2e-107707be72f1","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T02:11:30.6140935Z","updatedOn":"2020-02-04T02:11:30.6140935Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/495c765c-e6e2-4582-9ab6-ad9abf7e5064","type":"Microsoft.Authorization/roleAssignments","name":"495c765c-e6e2-4582-9ab6-ad9abf7e5064"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f679fcb0-059c-4446-9416-fd8240ad57f8","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-07T02:22:30.6763169Z","updatedOn":"2020-08-07T02:22:30.6763169Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/554217c2-53fa-48f6-93ea-4e06c41f86c6","type":"Microsoft.Authorization/roleAssignments","name":"554217c2-53fa-48f6-93ea-4e06c41f86c6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f71c3254-4335-487a-9f84-3aaae4821f2e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-06T03:04:23.5398083Z","updatedOn":"2019-08-06T03:04:23.5398083Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/958e790f-1635-4dd3-b718-5403a1342a66","type":"Microsoft.Authorization/roleAssignments","name":"958e790f-1635-4dd3-b718-5403a1342a66"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f7f1e3a2-a6d6-4f0c-8189-067e2f48366d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-17T03:14:37.2675405Z","updatedOn":"2020-07-17T03:14:37.2675405Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0d5c6698-a390-411c-a028-5ef6510a7db3","type":"Microsoft.Authorization/roleAssignments","name":"0d5c6698-a390-411c-a028-5ef6510a7db3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"fa1d1008-ffe7-4260-ae5b-6aff7c3b6803","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-10T01:23:31.4432043Z","updatedOn":"2020-01-10T01:23:31.4432043Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/151d14b1-b26a-47b9-be10-255bf562d592","type":"Microsoft.Authorization/roleAssignments","name":"151d14b1-b26a-47b9-be10-255bf562d592"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"fb4e3ec1-4f80-498d-9453-d109e7240fbb","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-01T06:59:31.2619013Z","updatedOn":"2020-09-01T06:59:31.2619013Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3c8813ac-e50e-4868-9e41-910258f3c33a","type":"Microsoft.Authorization/roleAssignments","name":"3c8813ac-e50e-4868-9e41-910258f3c33a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"febf609b-90d8-4d63-bffb-c12ccb094696","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:02:28.2288268Z","updatedOn":"2019-12-13T02:02:28.2288268Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/11ddfea7-616f-499f-9975-e8513b60eb3c","type":"Microsoft.Authorization/roleAssignments","name":"11ddfea7-616f-499f-9975-e8513b60eb3c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ffd1ed44-5aa8-4cc7-a5f6-25ff2b8cebf3","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-16T23:29:48.3209681Z","updatedOn":"2020-03-16T23:29:48.3209681Z","createdBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","updatedBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3eb4155b-2965-456b-8f00-bca8a13b1684","type":"Microsoft.Authorization/roleAssignments","name":"3eb4155b-2965-456b-8f00-bca8a13b1684"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"5c617d2b-99f8-4c90-98fe-dfe040fa33c1","principalType":"ServicePrincipal","scope":"/","condition":null,"conditionVersion":null,"createdOn":"2018-02-27T19:19:50.2663941Z","updatedOn":"2018-02-27T19:19:50.2663941Z","createdBy":null,"updatedBy":null,"delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Authorization/roleAssignments/3e883d24-b106-42ff-ad13-d7bf271b964d","type":"Microsoft.Authorization/roleAssignments","name":"3e883d24-b106-42ff-ad13-d7bf271b964d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227","condition":null,"conditionVersion":null,"createdOn":"2019-03-26T22:01:02.9428505Z","updatedOn":"2019-03-26T22:01:02.9428505Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227/providers/Microsoft.Authorization/roleAssignments/10d00e1e-13b8-4846-9e4f-d4db71bddab0","type":"Microsoft.Authorization/roleAssignments","name":"10d00e1e-13b8-4846-9e4f-d4db71bddab0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2019-03-26T22:01:02.9136073Z","updatedOn":"2019-03-26T22:01:02.9136073Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6f4de15e-9316-4714-a7c4-40c46cf8e067","type":"Microsoft.Authorization/roleAssignments","name":"6f4de15e-9316-4714-a7c4-40c46cf8e067"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"2ac3f52f-f3ad-40a4-9b2d-aa24e4c7bbba","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:13.2137492Z","updatedOn":"2020-02-25T18:36:13.2137492Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/18fdd87e-1c01-424e-b380-32310f4940c2","type":"Microsoft.Authorization/roleAssignments","name":"18fdd87e-1c01-424e-b380-32310f4940c2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"4a113caa-961f-4535-ac9b-79bfba8b9ed2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:00.4746112Z","updatedOn":"2020-02-25T18:36:00.4746112Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d9bcf58a-6f24-446d-bf60-20ffe5142396","type":"Microsoft.Authorization/roleAssignments","name":"d9bcf58a-6f24-446d-bf60-20ffe5142396"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"56d08bc2-cc29-4d23-9d23-fd396b807b02","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:35:55.7490022Z","updatedOn":"2020-02-25T18:35:55.7490022Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6e2b954b-42b2-48e0-997a-622601f0a4b4","type":"Microsoft.Authorization/roleAssignments","name":"6e2b954b-42b2-48e0-997a-622601f0a4b4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6179a082-c057-4fe3-8118-916b816a42e3","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:35:57.9173081Z","updatedOn":"2020-02-25T18:35:57.9173081Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9","type":"Microsoft.Authorization/roleAssignments","name":"8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6fe923a8-2e4d-4c1f-b7d6-a7c5984f0129","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:23.0673659Z","updatedOn":"2020-02-25T18:36:23.0673659Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d0817c57-3e5b-4363-88b7-52baadd5c362","type":"Microsoft.Authorization/roleAssignments","name":"d0817c57-3e5b-4363-88b7-52baadd5c362"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7c2d0d59-528c-434a-8c6c-03330539cad2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:31.2596366Z","updatedOn":"2020-02-25T18:36:31.2596366Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/0dabf212-a1c7-4af6-ba8b-be045493b368","type":"Microsoft.Authorization/roleAssignments","name":"0dabf212-a1c7-4af6-ba8b-be045493b368"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7d7aed0a-228e-420b-a6a2-82a49dacb8cb","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:35:52.9188704Z","updatedOn":"2020-02-25T18:35:52.9188704Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d674b853-332e-4437-9ddb-bba8fde7ccce","type":"Microsoft.Authorization/roleAssignments","name":"d674b853-332e-4437-9ddb-bba8fde7ccce"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"985bb80e-8113-4542-8d68-418589e6ff34","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:02.5324969Z","updatedOn":"2020-02-25T18:36:02.5324969Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b4bdc3a7-78e2-4b26-8b90-e474aa120b47","type":"Microsoft.Authorization/roleAssignments","name":"b4bdc3a7-78e2-4b26-8b90-e474aa120b47"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"b7a49237-f5b0-473f-a4ff-6830d23af17d","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:38.8393742Z","updatedOn":"2020-02-25T18:36:38.8393742Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/00625383-053d-4227-a4db-b098e9bd2289","type":"Microsoft.Authorization/roleAssignments","name":"00625383-053d-4227-a4db-b098e9bd2289"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"f2e939bc-742a-42f9-a27a-f0982c6e3f64","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:05.0954462Z","updatedOn":"2020-02-25T18:36:05.0954462Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/3151fe9c-fcd2-45d3-a256-72fb13b86df5","type":"Microsoft.Authorization/roleAssignments","name":"3151fe9c-fcd2-45d3-a256-72fb13b86df5"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c","principalId":"b7b8bd19-f827-425f-9be1-fd8a86b21904","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-07-06T18:51:22.9449669Z","updatedOn":"2020-07-06T18:51:22.9449669Z","createdBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7","updatedBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b3a9e1db-fde1-4ddd-ac1c-91913be67359","type":"Microsoft.Authorization/roleAssignments","name":"b3a9e1db-fde1-4ddd-ac1c-91913be67359"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","condition":null,"conditionVersion":null,"createdOn":"2019-03-26T22:01:02.9176787Z","updatedOn":"2019-03-26T22:01:02.9176787Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/4b771ea9-81de-4fc4-aa28-a3a0b9b4a320","type":"Microsoft.Authorization/roleAssignments","name":"4b771ea9-81de-4fc4-aa28-a3a0b9b4a320"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","condition":null,"conditionVersion":null,"createdOn":"2019-03-27T00:49:37.3000523Z","updatedOn":"2019-03-27T00:49:37.3000523Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/e6e1fffd-83f7-40c7-9f33-e56e2cf75b29","type":"Microsoft.Authorization/roleAssignments","name":"e6e1fffd-83f7-40c7-9f33-e56e2cf75b29"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","condition":null,"conditionVersion":null,"createdOn":"2019-03-27T00:50:08.3039053Z","updatedOn":"2019-03-27T00:50:08.3039053Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/3d01f56e-ee3a-41ed-a775-0e067546cb12","type":"Microsoft.Authorization/roleAssignments","name":"3d01f56e-ee3a-41ed-a775-0e067546cb12"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"ce2366a6-64d7-441b-939c-c9d23f91cccd","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47","condition":null,"conditionVersion":null,"createdOn":"2020-03-12T20:43:06.5941189Z","updatedOn":"2020-03-12T20:43:06.5941189Z","createdBy":"606f48c8-d219-4875-991d-ae6befaf0756","updatedBy":"606f48c8-d219-4875-991d-ae6befaf0756","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47/providers/Microsoft.Authorization/roleAssignments/ad9e2cd7-0ff7-4931-9b17-656c8f17934b","type":"Microsoft.Authorization/roleAssignments","name":"ad9e2cd7-0ff7-4931-9b17-656c8f17934b"}]}' headers: cache-control: - no-cache content-length: - - '31783' + - '189611' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:21:44 GMT + - Mon, 14 Sep 2020 18:50:59 GMT expires: - '-1' pragma: @@ -1494,8 +1541,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -1512,7 +1559,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:21:44 GMT + - Mon, 14 Sep 2020 18:51:00 GMT expires: - '-1' pragma: @@ -1545,8 +1592,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -1566,19 +1613,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:21:44 GMT + - Mon, 14 Sep 2020 18:51:01 GMT duration: - - '432238' + - '861817' expires: - '-1' ocp-aad-diagnostics-server-name: - - pDS/hUW4WJ03Kgi0JfFY/4t2PJ78CNkP4KJPWG6m9q4= + - r6LIiYvVd+TWp0L0+iGOoYEyp8LuqbVt48S1XfmMhlw= ocp-aad-session-key: - - kZW1bo0a_KLpcDB9bUA4lTGOlyifrEzYQLOTt9iZ0-YYuMZM9ba5igadR-TOfWdQEYXWXXEqvArVWpn2UrQzTPDTXBWI-nFEOLjXYrCKR8zy9x5P1rLFhA3zwhk4xK4Z.LTLLMPNxN0y6KQGu8D6piFE9IZTDkoGjODYvNYJyz6o + - AysQy-aNIi1aoMhDWGc86QxadKWoHravfjZaI4GdPYdi3gn4kX_bOsMqpZPvZApKwbu43FB5v-TcmNyWa_Cp14N4FEHXn7wYRmUlNCqFkSnqEXof1hcEuBN-j0zpIlJdT5L9f8ZLCjKgVBuobKdRFCABbRZDvM4rykcfDTZ9qpk.bfB7fKSpoH4YLnzkwP7J3NS48ZoRD8hoqma0RPg4Qrw pragma: - no-cache request-id: - - f4105a07-10aa-4768-95e8-6d73c68597c3 + - d10953fb-3567-4164-a2f2-44a61353f0cf strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -1611,8 +1658,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -1620,7 +1667,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid - GUID specified."},"requestId":"c6236611-6a42-4e07-b95d-e7841fd5c430","date":"2020-07-29T09:21:44"}}' + GUID specified."},"requestId":"f0e2b4f2-1c16-415c-ba36-d041a0d7626c","date":"2020-09-14T18:51:02"}}' headers: access-control-allow-origin: - '*' @@ -1633,19 +1680,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:21:44 GMT + - Mon, 14 Sep 2020 18:51:02 GMT duration: - - '392075' + - '961150' expires: - '-1' ocp-aad-diagnostics-server-name: - - 1gbKl7WRXix492JjyZlL6EacZgj+BdWOtxnWnZcnBR4= + - A0TISAaaPyfZDtlqv77d4kTKQUFjSgfdf+Q69DXpj+0= ocp-aad-session-key: - - _vqZewMCnQ4J8DDftmzbo7SeN07QI2E8sA7NQFM1dYszeEF2h4gIB7x9SOA6SDkhMLXEuVurJOTXKhNY5lqyCHt6j_BVorx89B0S1av41CWDeTKwDtdZsksgGZiGEpg0.o_ltssu-839rWzQkAv4Z0oHyhyugArsXmqc4DnnxrGQ + - OVywkVePhMMKlwgeOdPQWHP_v6Q6pWhnSk1Gm-4-0c7scSkgQ0Z_1D0W7romqES_3zLyOZ84FdjHRVuqXWd1I_lz2f4B47vAdsRLjFndbWy0Kp3KkW9XpsmiHX0kunNc8MDpiYDBsaZodripr-XjiUaztgJpqHtL_3DVSBND18U.l1uFGmva5MxMNX8Ah3OXyKO4AdTkqsrHhZH28Z2dO_A pragma: - no-cache request-id: - - c6236611-6a42-4e07-b95d-e7841fd5c430 + - f0e2b4f2-1c16-415c-ba36-d041a0d7626c strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -1674,8 +1721,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -1692,7 +1739,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:21:46 GMT + - Mon, 14 Sep 2020 18:51:04 GMT expires: - '-1' pragma: @@ -1725,8 +1772,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -1746,19 +1793,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:21:46 GMT + - Mon, 14 Sep 2020 18:51:05 GMT duration: - - '521267' + - '568434' expires: - '-1' ocp-aad-diagnostics-server-name: - - Z1drtJQiklbWAZ3MKsJtsKXUc2dJyRzb7NggNBKtyw0= + - pXlXQrc9MSPlRSTdMmTrsa5qwcKpymyDfVLM9CfOb1k= ocp-aad-session-key: - - FqsB0DN5eMs25ko2oJUKQLOrKfpQ3zI2wwLRzcfDFlx_XXHZRxvLLsQuN4mG4W-r6x2MVO_JpIMb7T8iwNod35A3vN8BCCEeEkZcMITdSzBPZ693u96Xptjqlp3cHK_L.2UyWqVqGR5YyRdVsqepFLmNh9dhsxa5sZYwaj9TtweM + - kuyW4zhxnQbMjprOUjXpEd5T1TglZ0GTeg6ihaQnjgEL-wDL1TF2nwoOD81GAsWUP78cOSlcL-PD7lLNDD8w9QjoW1-qi-RIhSx-hKh0QLOO9w9_SXXkdgGiTfC7eLAwPS2a-YwIPQg8c6qVSO8isE9oz3V4JjDwm_6E2_BfWWs.B790x3YNfhGcvjtJeFyGOk4Qx-vsTnTe8UVOppQJk_w pragma: - no-cache request-id: - - e2507f0f-3dd8-4233-af67-d068f044e794 + - 840f0883-4c5e-4fde-a708-55762756fcf6 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -1791,8 +1838,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -1800,7 +1847,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid - GUID specified."},"requestId":"a8192728-9e9c-4dd9-a029-ae29f50531d6","date":"2020-07-29T09:21:47"}}' + GUID specified."},"requestId":"1615b27c-b119-49fa-b7d2-32146bdba701","date":"2020-09-14T18:51:05"}}' headers: access-control-allow-origin: - '*' @@ -1813,19 +1860,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:21:46 GMT + - Mon, 14 Sep 2020 18:51:05 GMT duration: - - '833144' + - '530314' expires: - '-1' ocp-aad-diagnostics-server-name: - - ot0P4Ta1ykaej2at6aGtfA70m0NI9fQZxFCELGm/xwI= + - R2ifnvGDChman0WygU+6cHXVmMgYGd3EhqshU5CV3p0= ocp-aad-session-key: - - xDVEKBd5nn-ZHxz71Nk-3Ur86UEj4-smIXJ3Yk49yIMhd5dOk-bAD7SWzflXMsNK8Fb46x44EdSYODJgMVbU-XjImdJjwRR8deORwwuLrLl0R3btUKa3ZFv05WwtlAxC.HezA7HV1J23bJDHURxf8JeBIAUxJf4bv3TGCY3mKeHQ + - Bt-GjBhkgP6p6fE_FwDRy1b7_O-AG49BWlQ2xGAvwzKjDZvNGlW7AKE0rtls4fTUJD9ccGMK3TlPLEZ4pnqCGV8J1TFXGnQgdmeI8fv0FM4BvytKjt0J9HZWo5aO5IqQq_uoBBMvqtC6LfCbRDISM-4LrAiA77Uv9fgEISGXFc4.xrZ9FRWfm9EOqUi-8y5nmUBy32sSleFz9oeLMLlqP9w pragma: - no-cache request-id: - - a8192728-9e9c-4dd9-a029-ae29f50531d6 + - 1615b27c-b119-49fa-b7d2-32146bdba701 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -1854,8 +1901,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -1872,7 +1919,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:21:50 GMT + - Mon, 14 Sep 2020 18:51:09 GMT expires: - '-1' pragma: @@ -1905,8 +1952,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -1926,19 +1973,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:21:51 GMT + - Mon, 14 Sep 2020 18:51:09 GMT duration: - - '782008' + - '520926' expires: - '-1' ocp-aad-diagnostics-server-name: - - 1fH4rVIU0UKMGbGxdlBXLe7aAIdxrUewAisutpL81BU= + - uCCQbpgVHNC8rue1lL9wVVx/oAWeG8jNKc51+E8x6H4= ocp-aad-session-key: - - DgDfsRwosbraWrNoW3V-nIUrYoAFzWMFgdc-kqec9PEo2faWvg0WXJa13137i85ZN8RGgitCjRFl3eln1vgm7v9ELSi_zqahdGRqPnuEIhti6KCbzfu8QtwgfjECptL9.DOSgbBVSqRUT9PlXNB886vyygrWQ2Q7dEkwiygRk5c0 + - uFTfbIFjeU4EICMCQmrClcMONw3Rxd8pmZtfcoKL7Sw6Gmi7GDwxXxeLwU_tJ5APh-hVyrSWMfNs2o-n36uCW7IltdZUQh_FOSpPCoHZvMJ86i304_Dw6RZ34zp9bdboXwdcGwku2hiA4zGOGWbVoim9lyELQA-ctNcLf8UB5X8.AJEuFzKNUrPc4OJ4uI2i5BBSk8hKlH3UfhOGKcnljcc pragma: - no-cache request-id: - - 0b4ef81e-8f48-4472-970d-fe0b8bb9d6b0 + - 05f9d48c-5cd8-4a94-af1b-b1c88a8bbbf6 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -1971,8 +2018,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -1980,7 +2027,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid - GUID specified."},"requestId":"1729ae9d-fba6-4474-867f-b775205c51d8","date":"2020-07-29T09:21:51"}}' + GUID specified."},"requestId":"caa5acd5-8eb0-443b-93cd-d9897c4e6997","date":"2020-09-14T18:51:10"}}' headers: access-control-allow-origin: - '*' @@ -1993,19 +2040,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:21:50 GMT + - Mon, 14 Sep 2020 18:51:09 GMT duration: - - '430599' + - '483274' expires: - '-1' ocp-aad-diagnostics-server-name: - - Vmu5qrC+0ulRXRfU17qR6dECc7FitACafSjAAClSb8w= + - sYypgmyv9KLBQcszlFTAA6Klt8R5H4hoowy5e3DKXFI= ocp-aad-session-key: - - gBnuSX0i_WM0lQDXRyiOKwZ6D-_Es4B39BepEeBl0AH-sMZNkUYaMS6k3oqStclOW5_PElST3UmdZ8ZsJzqzlQRcW77xiDfvoozSOBwseauLvDkwBG5rvA5Jc-v2yzhZ.nzmolF4X4BHWHYYydu-GfW7uZ3-AXsBD7ZV0AIo1_a4 + - lvinagLpCJwv_46qH-cJuY70lEGFa_pFLT0ZEOi0CJSnQkW4Pc3nCO08ytyg454wCWpfmZshOK3JMA5VOftGETtfgROxTcqZYuf56yZOm_eiZizlNLTaaGITV_jHHhBRCTh4hulqNMBqHZ7qqgE8MuWv0YIa6wzwOuJHcLsoJoQ.Ie-tkneSvro9-B6yBvRcUy_s4JuVvBY2tucyxfhWvz0 pragma: - no-cache request-id: - - 1729ae9d-fba6-4474-867f-b775205c51d8 + - caa5acd5-8eb0-443b-93cd-d9897c4e6997 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2034,8 +2081,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2052,7 +2099,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:21:57 GMT + - Mon, 14 Sep 2020 18:51:16 GMT expires: - '-1' pragma: @@ -2085,8 +2132,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2106,19 +2153,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:21:57 GMT + - Mon, 14 Sep 2020 18:51:16 GMT duration: - - '504147' + - '515087' expires: - '-1' ocp-aad-diagnostics-server-name: - - Nc2Ebx6E1cChmKfCIzDNOl4+6pvu2jt9NZ5xiWvlzf8= + - hjR4RY9nRvxALTOJY4KnXfIpjm/qwj5JntibyjsUFsE= ocp-aad-session-key: - - QI7nPb2w64lFo7uIJrs8cSHm9XveJjtDYmsARYVuDZuUw5r9CGqeU5OwbT5Lzg62xnpZSeofy1SiI9BiRda7I2NPJj_TlHbTYr9fip_ODRKYeUSGhe2rkcqrP47lK3ww.FG3SJWlh44iJllwPZzKnG2bCHhNM2oLB78x6mXSTWL8 + - MLmtbB0HzNJNTJTUusrbFb5j2F0B9rE-QMTvK7Zt9-XSUbn4kGd5QDUciwkJ77XTa97iq3GRGarmX1FgHngzzOkQRFOIhfaGNLWH7XReC2Jr3W8dOCasjEyJk0M1GPSuDHYSQjoV6NDxLMrVSnUF3OW6X0vKmbfvd6B3Vdjaxxs.4SnQ2dCe7s3XGO9pWgBWImPQzgSgj4RE9E3HUWhJgJM pragma: - no-cache request-id: - - f6bec269-fb53-47c5-a78e-adf265e81ae5 + - d530e1c9-e86e-45df-a692-94e3ccd9ccb8 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2151,8 +2198,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -2160,7 +2207,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid - GUID specified."},"requestId":"a9ce7af7-da37-4879-88e0-900cde7ed5f9","date":"2020-07-29T09:21:57"}}' + GUID specified."},"requestId":"b565d3f4-4d30-4ddf-979e-7b6821393d97","date":"2020-09-14T18:51:17"}}' headers: access-control-allow-origin: - '*' @@ -2173,19 +2220,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:21:57 GMT + - Mon, 14 Sep 2020 18:51:17 GMT duration: - - '646772' + - '585950' expires: - '-1' ocp-aad-diagnostics-server-name: - - mDTkCbZC7Osx9k8Iw470MnTwWLrniDjx+kFw2XIGCVo= + - 7paJvEI4KWrq6or1klKTgt178X9aqNV+b+UamyiewoE= ocp-aad-session-key: - - fX_g07Zy2CrQeZgd9yNsWkfzxiuv_tSMe8fkKUOqz7H4ji5zRfTezYCSlLDKb7vQodbvwtqqLaNTovQp9lxoo_bQGcHx4DVA-mBXJVF3PMuUUSKKT-yVaZzwbRYq0P7o.OHt0shBSM2Hv90DdF9rBUtdJ3RIWgdKpeYrfujtqexI + - O3fGIZO9nLxoHpSCe3E-EVy1HQcEbsB4wKwfKDqkjgb2ezV7Ca-znw9htlQ0RKukpGcbVL0ByOgQ0IZkx5acIhImzFK7-BsTno1WZm3wPrZ7k-VOja7mAvIu4SOcGUT81dQXdjcZZ_jcUGYh5YBtKWRJbrlFmHY6DzQtKiqsD00.itHtc4zSoVk_vNbCKI0tsUEZFaZF41bNqzdTz4Fjdzo pragma: - no-cache request-id: - - a9ce7af7-da37-4879-88e0-900cde7ed5f9 + - b565d3f4-4d30-4ddf-979e-7b6821393d97 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2214,8 +2261,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2232,7 +2279,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:22:05 GMT + - Mon, 14 Sep 2020 18:51:25 GMT expires: - '-1' pragma: @@ -2265,8 +2312,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2286,19 +2333,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:22:06 GMT + - Mon, 14 Sep 2020 18:51:25 GMT duration: - - '409472' + - '553602' expires: - '-1' ocp-aad-diagnostics-server-name: - - b8Xy/Bx5iXLI5oeUPWiXCAateOvKHotAiW5JcGbNPjI= + - B9hYoi04n3STjygYV8RwAIIPiCMo0VjVNVt/bvTUKGU= ocp-aad-session-key: - - FhMkifuochxPlnvr8_ozxj8mQYE7MWKmJWrGY4tBiBwR0FAfbLuCMsBy1ItKP1XP1LGzvDP6Ipwk9Wahbsn5oodRdPlcPtrM3ZtjeV1uGSqjfW9GGrN5AXN3sN-bz8hd.5jvclNDw3lBnDBc2RtONqMQ60hhqc5o-aPRAlykrU28 + - 0qZrSmA69eJ4Ya0LTTJZFjn86Aq-3krCDCeLjCPI2va-mlbwWz2Y8z7ImtFG-AghXFriuAyjmBexKBfeJzC0msENfjRWUiK5mskxuiYrx7dc_xrWSzWFuTjKGw-gLhv5YXSk5cEHZLMmA--CIdl57DSOh3z3FRhsLATGL2GjsAw.BQCpWDyTYFK_QOCuB1DRAlfne6Bq85eDhTKdy-rURJY pragma: - no-cache request-id: - - 9441dba5-72d4-4e76-b477-e992a574d572 + - 98daa87e-5043-48ba-bb74-8079cc06fd5c strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2331,8 +2378,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -2340,7 +2387,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid - GUID specified."},"requestId":"11596ec6-f43d-4bc8-b3eb-0353fcbf1511","date":"2020-07-29T09:22:06"}}' + GUID specified."},"requestId":"30fa0c96-bbf7-4345-b1a8-3ba732f12426","date":"2020-09-14T18:51:26"}}' headers: access-control-allow-origin: - '*' @@ -2353,19 +2400,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:22:05 GMT + - Mon, 14 Sep 2020 18:51:25 GMT duration: - - '481123' + - '542605' expires: - '-1' ocp-aad-diagnostics-server-name: - - 9VEdyQO6WH9CILPuUxxoHYYsY0LP/AXKlgmnOOeYB6k= + - T8XZkzrl2aupEbCD6UYjY32Rv0txL1m39kZkE588G30= ocp-aad-session-key: - - F96xDtoaXvy2qD1OhZuJ3AUwSAtRszj1UM3bSQdV-nNZJ162BXxzf0-ZyVEkJNjgrDJa-ODD_35gRfL5XfdQEAiNt80PFRvMQaMtiK6ChonOWKyCqIPPgqT0ND_gb_om.FMYMrn6hpDyMnBafXbK2btMty6dCixJGjafUhjKRbqU + - 7NSe_MdEMN_ksgwgJUWLTylC1KLTgGUamyYvTkAMiVDGq9W_y8ylL6sLT3DAddrBjQMCuO5C6DdTcrq8OkMHi9qCm6koIDRrs33tj3PlZKQioAyFgZ7KcpBFvSihd-w_i7rzdbB2MafICR19XQ9isCSENK-gTUkCCziY4TUAooc.Y3oSqKsrKC_StTo6hfUB6eZFAHbTI2BvwodEpH28rsg pragma: - no-cache request-id: - - 11596ec6-f43d-4bc8-b3eb-0353fcbf1511 + - 30fa0c96-bbf7-4345-b1a8-3ba732f12426 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2394,8 +2441,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2412,7 +2459,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:22:16 GMT + - Mon, 14 Sep 2020 18:51:36 GMT expires: - '-1' pragma: @@ -2445,8 +2492,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2466,19 +2513,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:22:16 GMT + - Mon, 14 Sep 2020 18:51:36 GMT duration: - - '496321' + - '520207' expires: - '-1' ocp-aad-diagnostics-server-name: - - sF2EpBIkil0EKAVyGNEpnd3ehfUiaEgcqflC+D0wcww= + - G0899EjP22tlWm9xStmJURFIOMKDVtVmDDOE/830CBY= ocp-aad-session-key: - - bWFi1CFngjlpEi0-KKL_YeI43yzk5mCd0iQyTTWLbpJjREN8kCTic_hkhFAVVl1_IMVDGugSPdNH7eyhbiXQyxgdWdLtfGW-y8UB3-xo1AW_PEfXVrul_oUvdj0p-PgZ.Od6rETg7a4XFu75AvFRZ9ps3qimM5LBM8ZeLX-JareU + - cBputIzzTkzgQUVlWAC0b472UqaEHNyWwHWKtWpYX-u7MQLjikB83ugUdznap2vhGDfEDCNdrdUcf9bhdqAdj6Ji9dRTX16lVHwgcGABxeQrvDIcE3GcDeVZ6qGf7zo9hcRLeIhw09_hxnuFTGYzhUianVmAVyqBxiV_AYetbEc.TWl2LM2mdOy0xPbYC_pVi49Ti8xY3oBk2d9XaHjfQSY pragma: - no-cache request-id: - - 95f45b8e-9995-4533-9ec8-48b6e8b6e4f0 + - 0ae29c7b-d548-4fe4-8629-755fe0f53185 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2511,8 +2558,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -2520,7 +2567,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid - GUID specified."},"requestId":"49217902-c19c-4def-ad81-db57e15ba913","date":"2020-07-29T09:22:16"}}' + GUID specified."},"requestId":"7e8db7e7-9ed8-4342-b940-97702cb761ce","date":"2020-09-14T18:51:36"}}' headers: access-control-allow-origin: - '*' @@ -2533,19 +2580,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:22:16 GMT + - Mon, 14 Sep 2020 18:51:36 GMT duration: - - '399575' + - '1168506' expires: - '-1' ocp-aad-diagnostics-server-name: - - 5h7rZVm1Vti62dG+BzPfY+OwlfO8fWD9SagZ4DdrgnI= + - Lvh0/G78olXOk4T0L5DDgaqMqxW05ALila/UzU46pxE= ocp-aad-session-key: - - BgCJwVcBvS4XFNcSlKD5f9hiar8lLYrhdWR3AdTsdIC8QkHvfNaR1c94Gm9V74sajQnokZgayw2dF56eHLIXGUrK0-pFtJcVtnZWGnzCrOa37J5doY8wDXsmqbV0fYpt.tCmF7_LjCh56tYbAGromyHs3LE8v77UhVOhi6MGIBs4 + - GBYG4FPE34O40aTEiPs1IYLYyaUY14Xv5dnNoZ86bLJ-emEiFq6uvhp7-ip18sqzvbzBN_x-v_ETbQN-gI1yAqD34FVVr4ygQKks92GFiyU_cr_uWZWRPittHAEvXBgEmDnENibBWGiuYr8I-Z6FVoscr2BOfcRKZM6Yw07crqQ.rP_w77Ge4WlRdxFPekzYOMeKp5T95EWnnEhIHTjVkyM pragma: - no-cache request-id: - - 49217902-c19c-4def-ad81-db57e15ba913 + - 7e8db7e7-9ed8-4342-b940-97702cb761ce strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2574,8 +2621,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2592,7 +2639,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:22:27 GMT + - Mon, 14 Sep 2020 18:51:48 GMT expires: - '-1' pragma: @@ -2625,8 +2672,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2646,19 +2693,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:22:28 GMT + - Mon, 14 Sep 2020 18:51:49 GMT duration: - - '475292' + - '505969' expires: - '-1' ocp-aad-diagnostics-server-name: - - OGd9bO2rbcf4+od3TakfUsgkYvoX9j+6gyxJMnumMFM= + - 8b/Ht2S1JqSnD0uF+3TSXMqw6CMlMu8U0UwicIuMm2g= ocp-aad-session-key: - - fK0lt6lmz791BZGNHbOmmnHMgYaW8m0Mzd4Xcgu8Mold4c4rlk8JA9xzLMoXcQJCyO1XKqd3n9ehfazsOG-ooZtTRcLs14EeYTlICAUfqOG92OaAyq7NxC0pEDBRQcuY.GAvYgEuvIiY16F0yuYAZSDjheACOfjJjZ636yZFf9Yg + - psyD_ylIRWnoQPIaVZmH7rIrCRGYNRUUUjw1wYwZRBsIpM-xz9rD6G5f4OoC6eeKqI5MDLIRMwKbm_5shenbAP4Bvtn2tIzwDclUr7VLnH4jmNaHn_kQldDInR34qnGIpi7kl8gaBspEnukwKLj-xfmgyxwW56OTHzSF-M4YS6U.GcJ5LtMbdxxRFDKxpym7p-EzIN36b86jRORfKe8c45c pragma: - no-cache request-id: - - 64c5703a-1e18-4dca-ac95-c3b91f981af5 + - b7f080d0-dfd6-42e1-b7ae-7612fb2451a3 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2691,8 +2738,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -2700,7 +2747,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid - GUID specified."},"requestId":"e876ba7a-c27b-4b83-9496-ded11e70c9ab","date":"2020-07-29T09:22:28"}}' + GUID specified."},"requestId":"dfb7b38f-df1e-4d47-8823-d0b7b3f3d5bd","date":"2020-09-14T18:51:49"}}' headers: access-control-allow-origin: - '*' @@ -2713,19 +2760,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:22:28 GMT + - Mon, 14 Sep 2020 18:51:49 GMT duration: - - '484549' + - '526043' expires: - '-1' ocp-aad-diagnostics-server-name: - - cU2r3gslfLyWAJdAabfvOm8kxZznVu7Mqy1okoOhf7M= + - ysEXlnJUEGP/bMweJQdPutYOcyyVE+aCeoN6YbzKalk= ocp-aad-session-key: - - iHUcNNfRr18Y2-rpJTJheTg7wNJejt8aVv152R4KPsFO5gOqteoWntE_q9jgeKt15v2VGPtw1U7jh-qLphDNSaNTMPnRES5Kt3S-6bnPn3JCLVceCJClmdfR8GhY5EfF.eHgANivzwKKnFttMFxqcXbRad_Lr75wDSL82uuPN7SY + - PxPiL5uhwEQV1Gruk6_jU1hm33FT_tZA_la8cosCReDze9JLEqmsZrzL3PYRH082Xo86UsV7DpdsgXN0NYAycI-pgGFwRYEDyINxpG9IJMn7wBF-wxQz7hjp-M9t0TkcoslShAxIpLEPku5hQRzqlPobOtlu2AAYT6TlGn-pFbI.RurChX8_FTJLHeaAfBR26gU_eaLEAfnO788LseKUTZY pragma: - no-cache request-id: - - e876ba7a-c27b-4b83-9496-ded11e70c9ab + - dfb7b38f-df1e-4d47-8823-d0b7b3f3d5bd strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2754,8 +2801,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2772,7 +2819,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:22:42 GMT + - Mon, 14 Sep 2020 18:52:02 GMT expires: - '-1' pragma: @@ -2805,8 +2852,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2826,19 +2873,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:22:42 GMT + - Mon, 14 Sep 2020 18:52:03 GMT duration: - - '444108' + - '547753' expires: - '-1' ocp-aad-diagnostics-server-name: - - dqVlzzdcoOsrbH6jiob+f4ILjCZtSApApv+6laNm668= + - vdUmtydNTpMx136Z9PTgdhjXCVJ7LZw+B1PUKRqBNeo= ocp-aad-session-key: - - _LNvYw-ZZWZDiEki_qwU07HdIMuCSAOhHl-wcSwRjYLmGKMLoiJNCueL4o58DjlDSaytYyDJvtC8hi2L8uu21F70kz4xdC4bcg9M60AXdd9V1Yx_cjLoLZJClie6Xwk0.KJxbnn17-eMc23rhbiJopNVkPlca3qM8NoI-sL41naY + - LKDxFdJn4-5HU3tO5J2LwtcAQegec-1sgaPx3jsbS2Qzsj_jo3l5558Q0x-l1gvxWagmNLTJumFGjJ-CuF1nxUtSyV6KtOdfwANltF7fJitkygGFXKUY6PI_HPsYQvxtFoxC4XZ4aHoH3j1q2UxJT0_wjk5-GC7E9vHQTF6NiN4.gS0tMnQVEd4BWz6NIhnqNyGZ5UV_gMkmEpMUnDdwymw pragma: - no-cache request-id: - - 9d15a9cd-db81-4283-b2e2-c791fe83e0de + - 2cf805b5-b0f0-4987-a2fa-12d69709b71f strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2871,8 +2918,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -2880,7 +2927,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid - GUID specified."},"requestId":"e64573cd-a0d7-49ab-82b7-103fc64299fc","date":"2020-07-29T09:22:43"}}' + GUID specified."},"requestId":"b5137652-ea9a-4a51-ab8d-a00879ffa344","date":"2020-09-14T18:52:04"}}' headers: access-control-allow-origin: - '*' @@ -2893,19 +2940,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:22:43 GMT + - Mon, 14 Sep 2020 18:52:03 GMT duration: - - '1886119' + - '483238' expires: - '-1' ocp-aad-diagnostics-server-name: - - kRxcjaeeMYbOA1nl250e/T5mWchq49xvIP++rrVVRUk= + - beDiFJigAIn0DsweUo9b0LUsK5GXPcxyO2/EYM1RVJ0= ocp-aad-session-key: - - vPkTERisAyyZB_E6IKMzRKTre0QtKNWIQMvn3xPO6G9J13p1Wwp8V6S9PJcb-aVU_JZvg_9k45Hb_Y9ezK6s4XTVVB8K6x-Kz4AQq5DeDGZMH-rOACxcxr1p5sv6raWF.s7_5JMa2GC9LMaEU1I1685P6lyViyD_gnUw5nzAv7g0 + - GoA308rRmBDTh7-4tSqFmP6TRDXY5gx0D2nkJa_DZGNbOw5BUpMG2KytUvoHFT6xuuRlV5F-9EKOrQj8gWWC13QyMnryBedTdXslXMGmJ_3ONLLARR1bvN2lMmfozJXQ1DmFoBzZ-WiJqXShHUSlXEvOkL8Yuu1bV2j-psuEKA4.r4Ql8d0vc8bjvn-wYShrG6vfnrbU_BUVHz6Qw-VD0rQ pragma: - no-cache request-id: - - e64573cd-a0d7-49ab-82b7-103fc64299fc + - b5137652-ea9a-4a51-ab8d-a00879ffa344 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -2934,8 +2981,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -2952,7 +2999,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:22:58 GMT + - Mon, 14 Sep 2020 18:52:19 GMT expires: - '-1' pragma: @@ -2985,8 +3032,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -3006,19 +3053,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:22:58 GMT + - Mon, 14 Sep 2020 18:52:20 GMT duration: - - '465158' + - '823206' expires: - '-1' ocp-aad-diagnostics-server-name: - - QALYowh2DFDYJeL+8uGWAa/RR/v68uKMeBmWPP07o/o= + - XC37a6rlJsCeGLMfJenTNZI4+ije7D/luiwxI9jCogI= ocp-aad-session-key: - - Iu6Rc1oIhTtrQgtA0NxCSfWx67pKsFChbFDnFMSaMGWmxVWpSlkV1uOmQ4-GmZe9RPDl3rFGtB-gEI8JV2ap8rTRekre72KxhoXU05whWRd-VwF7lv4uwLfmQYx7rZOT.NfqNmpJNZqbfE1RwlUCuGhlVXPPy8nKYhPp1IQBh5hM + - 21Pm_rnTFGszTzkeOvYmu6gnqJ8dw9H21rHeFaBo83FD2EeF9a1LO-QGOgNa5XCVdGaSo9dpmSAjlsOaQ1ImoLOVpdJ2ongyrMDsZt-6bU5usxS2mZA2PyUbUbHqLasEBPIVRcKZDJKSMiIrCXzUtkBAR3dTjjDFfL27gruh1uM.R2XOXVkEuI-2Ji-IqbArMaiNpwkOkIAN75ucWsQvpWk pragma: - no-cache request-id: - - fd6911bc-01ef-46a3-ac87-fe4a891d7728 + - 3be2940c-c98a-422b-84d4-9e367cffe84d strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -3051,8 +3098,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -3060,7 +3107,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid - GUID specified."},"requestId":"edba46bf-0d26-47eb-b5f6-e18f5ac7c0a3","date":"2020-07-29T09:22:59"}}' + GUID specified."},"requestId":"a89ede07-2b9c-45ee-ac7c-36f5b93aca4a","date":"2020-09-14T18:52:20"}}' headers: access-control-allow-origin: - '*' @@ -3073,19 +3120,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:22:59 GMT + - Mon, 14 Sep 2020 18:52:20 GMT duration: - - '396098' + - '500400' expires: - '-1' ocp-aad-diagnostics-server-name: - - X6ij97GQPSToW+q5xRnOD+QG69ilNE4b3bId7zaTuCQ= + - +Vo1vaQr1J6K57B7CK/pVo20E97sFK7LOud+zxDHFNk= ocp-aad-session-key: - - 6z_tHxGLMctq7FXfFL67hXGib3uzhzMjcUIwo-c-pBxdrh-AmSjLTRB71m1QolqwgCPiDhYJahiTqxxyzBlVxuBnX259u6KpH0fA79EhEOaWs6d_TwpVnxE49q5Amtxj.5J6ngcpgvX6GitysAJxT4ChUcJugEw5I1-tEQvGeLKk + - O5zSft_C7nVyPFIXhnNsIcx0exvuk1wnZAWfMDBca0SHCWhmLHBsw9kqlzQg5N0bSvuTON9FER6jRjfvD5p_Uyv9BgZV-eHFmycnTAk6DgWvCqQd2HSvQUKFaCuK6PQfSc2YQB8I4-_d1SU5ZXgOCtATxZR_uDYUVb61Ek2SmsU.9h2XZN4sb7MF_RMBctlEcq_82lZVIvEQJCSB1DYZtuQ pragma: - no-cache request-id: - - edba46bf-0d26-47eb-b5f6-e18f5ac7c0a3 + - a89ede07-2b9c-45ee-ac7c-36f5b93aca4a strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -3114,8 +3161,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -3132,7 +3179,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:23:17 GMT + - Mon, 14 Sep 2020 18:52:38 GMT expires: - '-1' pragma: @@ -3165,8 +3212,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -3186,19 +3233,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:23:17 GMT + - Mon, 14 Sep 2020 18:52:38 GMT duration: - - '713451' + - '554520' expires: - '-1' ocp-aad-diagnostics-server-name: - - X6ij97GQPSToW+q5xRnOD+QG69ilNE4b3bId7zaTuCQ= + - wyZ2chLc7keUKHMJZ5WTQztb1eGl2liBganf3B36Fuk= ocp-aad-session-key: - - qwltyr2i0Q0PLCvCzXykdiDJNBq2X_Kbd3JqoBherzktkNjbLcPQKYVggzCPKzhTbV3NFruDwIByKK5_-h8ippwp3_bJOAjkJydXRGhnRnBzfhs9ie-SVIuemwaWZI1-.jPzQxqblnymuTZ1RWzhKGJX8zwhtWZBG26-4hKcGoaM + - aqtKEvO69wb_VJlryycN0WnA9pN2PqqBOF63zKIoS9gqLgySdN3T98y5jahkhJpD-auOW5wIX7nXH5IYCzwj9YEe8-IrLoux25jjeCny3rKnRxrBDa2rDz93svunpgWmThGDl-KupN3OjyyiBMjY6BFD_PsV0Y28C2fUcAheOuk.aXTA5S0sF1P5F6L9yUwVjezGgGf0iqLcAnmBUqG8zac pragma: - no-cache request-id: - - d815bc30-9ec4-4571-8c5b-5737d9c7ebc4 + - 9eb7927d-806b-44c2-8a6d-53f9835c8eda strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -3231,8 +3278,8 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -3240,7 +3287,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Invalid - GUID specified."},"requestId":"a831c94c-840e-43b9-aeb0-a1f7af13e69a","date":"2020-07-29T09:23:18"}}' + GUID specified."},"requestId":"19400c83-4745-4f50-a34e-eb483c50d264","date":"2020-09-14T18:52:39"}}' headers: access-control-allow-origin: - '*' @@ -3253,19 +3300,19 @@ interactions: dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:23:17 GMT + - Mon, 14 Sep 2020 18:52:38 GMT duration: - - '534412' + - '529797' expires: - '-1' ocp-aad-diagnostics-server-name: - - ndp12BqWRX5rPCAuwPLyJFhbEyv8dVztoiF8YtMYYBI= + - DGINaJ3i+5SyHOHPqmgh7imYwy5/IDDbJ0mu/cXzqrE= ocp-aad-session-key: - - CN7LWO_SYBAI9EQqPeZz_e4O7-sdSQqk5gScQR2Kjgx-0i7dv3Q3eiBZHJwPW8JsYZxR-kOBCgZpOJyt2PrEWs7_Fm_OubDwe8YW-5j5faLbTMNb20ZbQ_Q9edzWs2lV.2WRMbDqNGipe4m_3ox689bvpoY4fgK1g20xvXotgBLE + - _qycm3nDA7sjvBKVV67OXHC6-XScRcY190_BRIzgDX894I71t20X8FQkehwywISJ2Pa2oR3rzX16BjkvMgTjQ4si1LHb40Ch-h91tRhYyVw0Gnmy23afS7WdJYwKVcRuZO5dZz39twn_j0RZ_OFgyBGqcWz_h0wH9HB1O0XhEXE.FzXQI0n97S7kjcLPXyjJBozq-sfOa8PsUd3xbwLyR3I pragma: - no-cache request-id: - - a831c94c-840e-43b9-aeb0-a1f7af13e69a + - 19400c83-4745-4f50-a34e-eb483c50d264 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -3281,15 +3328,15 @@ interactions: message: Bad Request - request: body: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": - "cliakstest-clitestnxc6qleec-26fe00", "agentPoolProfiles": [{"count": 3, "vmSize": + "cliakstest-clitesty5xlz2kig-8ecadf", "agentPoolProfiles": [{"count": 3, "vmSize": "Standard_DS2_v2", "vnetSubnetID": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", "ssh": {"publicKeys": - [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7"}]}}, - "servicePrincipalProfile": {"clientId": "xxxx", "secret": "yyyy"}, "addonProfiles": - {"IngressApplicationGateway": {"enabled": true, "config": {"applicationGatewayId": - "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw"}}}, + [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c= + ace@ace-vm\n"}]}}, "servicePrincipalProfile": {"clientId": "xxxx", "secret": + "yyyy"}, "addonProfiles": {"IngressApplicationGateway": {"enabled": true, "config": + {"applicationGatewayId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw"}}}, "enableRBAC": true, "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": "kubenet", "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", @@ -3304,44 +3351,44 @@ interactions: Connection: - keep-alive Content-Length: - - '1665' + - '1850' Content-Type: - application/json; charset=utf-8 ParameterSetName: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 response: body: string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ - ,\n \"dnsPrefix\": \"cliakstest-clitestnxc6qleec-26fe00\",\n \"fqdn\"\ - : \"cliakstest-clitestnxc6qleec-26fe00-8301a20e.hcp.westus2.staging.azmk8s.io\"\ - ,\n \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \ - \ \"count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ - : 128,\n \"vnetSubnetID\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitesty5xlz2kig-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitesty5xlz2kig-8ecadf-ce885a42.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"vnetSubnetID\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ ,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\",\n \ \ \"provisioningState\": \"Creating\",\n \"orchestratorVersion\": \"\ 1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\": {},\n\ \ \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ - : \"AKSUbuntu-1604-2020.07.16\"\n }\n ],\n \"linuxProfile\": {\n \ + : \"AKSUbuntu-1604-2020.08.19\"\n }\n ],\n \"linuxProfile\": {\n \ \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ - : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7\"\ - \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ - clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"IngressApplicationGateway\"\ - : {\n \"enabled\": true,\n \"config\": {\n \"applicationGatewayId\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c=\ + \ ace@ace-vm\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ingressapplicationgateway\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"applicationgatewayid\"\ : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw\"\ - ,\n \"effectiveApplicationGatewayId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw\"\ - \n }\n },\n \"KubeDashboard\": {\n \"enabled\": true,\n \ + ,\n \"effectiveapplicationgatewayid\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw\"\ + \n }\n },\n \"kubedashboard\": {\n \"enabled\": true,\n \ \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ @@ -3349,21 +3396,21 @@ interactions: : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ - loadBalancer\"\n },\n \"maxAgentPools\": 10\n },\n \"identity\": {\n\ - \ \"type\": \"SystemAssigned\",\n \"principalId\": \"acfacc38-2023-462f-b437-cef1f054188f\"\ + loadBalancer\"\n },\n \"maxAgentPools\": 100\n },\n \"identity\": {\n\ + \ \"type\": \"SystemAssigned\",\n \"principalId\": \"9c53f703-b984-4c81-9f0b-bf15c4b79502\"\ ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/792142c2-cc91-4f05-a987-28724940d5bd?api-version=2016-03-30 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/2f2fc87b-cb2a-4fa7-a292-a46be730176d?api-version=2016-03-30 cache-control: - no-cache content-length: - - '3003' + - '3211' content-type: - application/json date: - - Wed, 29 Jul 2020 09:23:46 GMT + - Mon, 14 Sep 2020 18:53:10 GMT expires: - '-1' pragma: @@ -3394,24 +3441,24 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/792142c2-cc91-4f05-a987-28724940d5bd?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/2f2fc87b-cb2a-4fa7-a292-a46be730176d?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"c2422179-91cc-054f-a987-28724940d5bd\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:23:46.060835Z\"\n }" + string: "{\n \"name\": \"7bc82f2f-2acb-a74f-a292-a46be730176d\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:53:09.7706331Z\"\n }" headers: cache-control: - no-cache content-length: - - '125' + - '126' content-type: - application/json date: - - Wed, 29 Jul 2020 09:24:17 GMT + - Mon, 14 Sep 2020 18:53:40 GMT expires: - '-1' pragma: @@ -3444,24 +3491,24 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/792142c2-cc91-4f05-a987-28724940d5bd?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/2f2fc87b-cb2a-4fa7-a292-a46be730176d?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"c2422179-91cc-054f-a987-28724940d5bd\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:23:46.060835Z\"\n }" + string: "{\n \"name\": \"7bc82f2f-2acb-a74f-a292-a46be730176d\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:53:09.7706331Z\"\n }" headers: cache-control: - no-cache content-length: - - '125' + - '126' content-type: - application/json date: - - Wed, 29 Jul 2020 09:24:47 GMT + - Mon, 14 Sep 2020 18:54:10 GMT expires: - '-1' pragma: @@ -3494,24 +3541,24 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/792142c2-cc91-4f05-a987-28724940d5bd?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/2f2fc87b-cb2a-4fa7-a292-a46be730176d?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"c2422179-91cc-054f-a987-28724940d5bd\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:23:46.060835Z\"\n }" + string: "{\n \"name\": \"7bc82f2f-2acb-a74f-a292-a46be730176d\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:53:09.7706331Z\"\n }" headers: cache-control: - no-cache content-length: - - '125' + - '126' content-type: - application/json date: - - Wed, 29 Jul 2020 09:25:18 GMT + - Mon, 14 Sep 2020 18:54:41 GMT expires: - '-1' pragma: @@ -3544,24 +3591,24 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/792142c2-cc91-4f05-a987-28724940d5bd?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/2f2fc87b-cb2a-4fa7-a292-a46be730176d?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"c2422179-91cc-054f-a987-28724940d5bd\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:23:46.060835Z\"\n }" + string: "{\n \"name\": \"7bc82f2f-2acb-a74f-a292-a46be730176d\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:53:09.7706331Z\"\n }" headers: cache-control: - no-cache content-length: - - '125' + - '126' content-type: - application/json date: - - Wed, 29 Jul 2020 09:25:47 GMT + - Mon, 14 Sep 2020 18:55:12 GMT expires: - '-1' pragma: @@ -3594,24 +3641,24 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/792142c2-cc91-4f05-a987-28724940d5bd?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/2f2fc87b-cb2a-4fa7-a292-a46be730176d?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"c2422179-91cc-054f-a987-28724940d5bd\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:23:46.060835Z\"\n }" + string: "{\n \"name\": \"7bc82f2f-2acb-a74f-a292-a46be730176d\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:53:09.7706331Z\"\n }" headers: cache-control: - no-cache content-length: - - '125' + - '126' content-type: - application/json date: - - Wed, 29 Jul 2020 09:26:18 GMT + - Mon, 14 Sep 2020 18:55:41 GMT expires: - '-1' pragma: @@ -3644,25 +3691,24 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/792142c2-cc91-4f05-a987-28724940d5bd?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/2f2fc87b-cb2a-4fa7-a292-a46be730176d?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"c2422179-91cc-054f-a987-28724940d5bd\",\n \"status\"\ - : \"Succeeded\",\n \"startTime\": \"2020-07-29T09:23:46.060835Z\",\n \"\ - endTime\": \"2020-07-29T09:26:36.8285577Z\"\n }" + string: "{\n \"name\": \"7bc82f2f-2acb-a74f-a292-a46be730176d\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:53:09.7706331Z\"\n }" headers: cache-control: - no-cache content-length: - - '169' + - '126' content-type: - application/json date: - - Wed, 29 Jul 2020 09:26:48 GMT + - Mon, 14 Sep 2020 18:56:12 GMT expires: - '-1' pragma: @@ -3695,66 +3741,25 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/2f2fc87b-cb2a-4fa7-a292-a46be730176d?api-version=2016-03-30 response: body: - string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ - ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ - : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ - \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ - ,\n \"dnsPrefix\": \"cliakstest-clitestnxc6qleec-26fe00\",\n \"fqdn\"\ - : \"cliakstest-clitestnxc6qleec-26fe00-8301a20e.hcp.westus2.staging.azmk8s.io\"\ - ,\n \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \ - \ \"count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ - : 128,\n \"vnetSubnetID\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\",\n \ - \ \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\":\ - \ \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ - \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ - : \"AKSUbuntu-1604-2020.07.16\"\n }\n ],\n \"linuxProfile\": {\n \ - \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ - : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7\"\ - \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ - clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"IngressApplicationGateway\"\ - : {\n \"enabled\": true,\n \"config\": {\n \"applicationGatewayId\"\ - : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw\"\ - ,\n \"effectiveApplicationGatewayId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw\"\ - \n },\n \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ingressapplicationgateway-cliakstest000002\"\ - ,\n \"clientId\": \"26290abd-2e6b-440e-aaba-3984d76ac751\",\n \"\ - objectId\": \"3d09385f-8e9f-4bf8-ab70-aea113d0a345\"\n }\n },\n \ - \ \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ - \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ - ,\n \"clientId\": \"e8828d1d-1d5b-4ba7-bb47-d9da6fe3f376\",\n \"\ - objectId\": \"f35bc969-8233-4828-aab7-0810f67e0558\"\n }\n }\n },\n\ - \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ - \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ - : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ - ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ - count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ - id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/b3bb3077-cf83-4892-82f5-d020fcd1d68d\"\ - \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ - : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ - : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ - maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ - \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ - ,\n \"clientId\": \"99843765-8b61-46a2-bbea-7082184dbbe1\",\n \"objectId\"\ - : \"14565483-e568-4eaa-b2f6-0427f3be8801\"\n }\n }\n },\n \"identity\"\ - : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"acfacc38-2023-462f-b437-cef1f054188f\"\ - ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ - : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + string: "{\n \"name\": \"7bc82f2f-2acb-a74f-a292-a46be730176d\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-14T18:53:09.7706331Z\",\n \"\ + endTime\": \"2020-09-14T18:56:21.681711Z\"\n }" headers: cache-control: - no-cache content-length: - - '4414' + - '169' content-type: - application/json date: - - Wed, 29 Jul 2020 09:26:49 GMT + - Mon, 14 Sep 2020 18:56:42 GMT expires: - '-1' pragma: @@ -3787,2668 +3792,72 @@ interactions: - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys --vnet-subnet-id -a --appgw-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27Contributor%27&api-version=2018-01-01-preview - response: - body: - string: '{"value":[{"properties":{"roleName":"Contributor","type":"BuiltInRole","description":"Lets - you manage everything except access to resources.","assignableScopes":["/"],"permissions":[{"actions":["*"],"notActions":["Microsoft.Authorization/*/Delete","Microsoft.Authorization/*/Write","Microsoft.Authorization/elevateAccess/Action","Microsoft.Blueprint/blueprintAssignments/write","Microsoft.Blueprint/blueprintAssignments/delete"],"dataActions":[],"notDataActions":[]}],"createdOn":"2015-02-02T21:55:09.8806423Z","updatedOn":"2019-02-05T21:24:38.4580610Z","createdBy":null,"updatedBy":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","type":"Microsoft.Authorization/roleDefinitions","name":"b24988ac-6180-42a0-ab88-20f7382dd24c"}]}' - headers: - cache-control: - - no-cache - content-length: - - '832' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 29 Jul 2020 09:26:50 GMT - expires: - - '-1' - pragma: - - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - 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": {"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", - "principalId": "3d09385f-8e9f-4bf8-ab70-aea113d0a345"}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - aks create - Connection: - - keep-alive - Content-Length: - - '233' - Content-Type: - - application/json; charset=utf-8 - Cookie: - - x-ms-gateway-slice=Production - ParameterSetName: - - -n -g --enable-managed-identity --service-principal --client-secret --generate-ssh-keys - --vnet-subnet-id -a --appgw-id -o - User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Authorization/roleAssignments/0fa6569c-818c-4283-8c58-8fcc32142e23?api-version=2018-09-01-preview - response: - body: - string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"3d09385f-8e9f-4bf8-ab70-aea113d0a345","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","createdOn":"2020-07-29T09:26:50.6592672Z","updatedOn":"2020-07-29T09:26:50.6592672Z","createdBy":null,"updatedBy":"547f6960-a967-417a-a9a4-0f35fbdca11c"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Authorization/roleAssignments/0fa6569c-818c-4283-8c58-8fcc32142e23","type":"Microsoft.Authorization/roleAssignments","name":"0fa6569c-818c-4283-8c58-8fcc32142e23"}' - headers: - cache-control: - - no-cache - content-length: - - '787' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 29 Jul 2020 09:26:51 GMT - expires: - - '-1' - pragma: - - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - 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: - - role assignment list - Connection: - - keep-alive - ParameterSetName: - - --assignee --scope --role -o - User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US - method: GET - uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/servicePrincipals?$filter=servicePrincipalNames%2Fany%28c%3Ac%20eq%20%2726290abd-2e6b-440e-aaba-3984d76ac751%27%29&api-version=1.6 - response: - body: - string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"3d09385f-8e9f-4bf8-ab70-aea113d0a345","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":["isExplicit=True","/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ingressapplicationgateway-cliakstest000002"],"appDisplayName":null,"appId":"26290abd-2e6b-440e-aaba-3984d76ac751","applicationTemplateId":null,"appOwnerTenantId":null,"appRoleAssignmentRequired":false,"appRoles":[],"displayName":"ingressapplicationgateway-cliakstest000002","errorUrl":null,"homepage":null,"informationalUrls":null,"keyCredentials":[{"customKeyIdentifier":"A973EB78D788710B48B970AE390172CCA94992D7","endDate":"2020-10-27T09:19:00Z","keyId":"72652e26-ccb5-45ef-843d-5bb31cbed910","startDate":"2020-07-29T09:19:00Z","type":"AsymmetricX509Cert","usage":"Verify","value":null}],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":null,"replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["26290abd-2e6b-440e-aaba-3984d76ac751","https://identity.azure.net/3S5LZIK+rwDMJ2KrMvcIx77u+S+uA5uAW1LJwPRQx9A="],"servicePrincipalType":"ManagedIdentity","signInAudience":null,"tags":[],"tokenEncryptionKeyId":null}]}' - headers: - access-control-allow-origin: - - '*' - cache-control: - - no-cache - content-length: - - '1670' - content-type: - - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 - dataserviceversion: - - 3.0; - date: - - Wed, 29 Jul 2020 09:26:52 GMT - duration: - - '589936' - expires: - - '-1' - ocp-aad-diagnostics-server-name: - - xTJPVtmkGPNsRFBeeP8sGlUmChEdyl1Yx4J/2TySxFE= - ocp-aad-session-key: - - La24dAFIsDlQY-lcyYx7qjpPCA6UeVeumF6NORniX9eWUOJv4UBlmfeP9rsg93VVNio-PaPEWwX6hwwMkXbIEGMGXSKEII1VqzAIsDkNbHW85lKCPXOcMxcUY5j4fICE.iDsqTwWTJFkqRKXZDez9emFIXqdE5s5iT5e-0a34NNA - pragma: - - no-cache - request-id: - - a5f5d643-d98e-4cd8-9570-72157b8db8ad - strict-transport-security: - - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-ms-dirapi-data-contract-version: - - '1.6' - x-ms-resource-unit: - - '1' - x-powered-by: - - ASP.NET - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - role assignment list - Connection: - - keep-alive - ParameterSetName: - - --assignee --scope --role -o - User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Authorization/roleAssignments?$filter=atScope%28%29&api-version=2018-09-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 response: body: - string: '{"value":[{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"3d09385f-8e9f-4bf8-ab70-aea113d0a345","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","createdOn":"2020-07-29T09:26:51.0927719Z","updatedOn":"2020-07-29T09:26:51.0927719Z","createdBy":"547f6960-a967-417a-a9a4-0f35fbdca11c","updatedBy":"547f6960-a967-417a-a9a4-0f35fbdca11c"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Authorization/roleAssignments/0fa6569c-818c-4283-8c58-8fcc32142e23","type":"Microsoft.Authorization/roleAssignments","name":"0fa6569c-818c-4283-8c58-8fcc32142e23"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"135a9bbc-ad60-452c-8ffe-519aa862e879","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:04.5178243Z","updatedOn":"2020-06-28T02:13:04.5178243Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a6b01bdc-2661-42bb-86dc-8919f95a33e9","type":"Microsoft.Authorization/roleAssignments","name":"a6b01bdc-2661-42bb-86dc-8919f95a33e9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"33d87b59-68e3-40cb-a9e7-99fbf8d86408","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:05.6867898Z","updatedOn":"2020-06-28T02:13:05.6867898Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5af0e958-7a8d-480d-824c-c26f04eb2726","type":"Microsoft.Authorization/roleAssignments","name":"5af0e958-7a8d-480d-824c-c26f04eb2726"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"37eb6d11-d570-4544-9531-6453cb8623cf","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-24T01:42:26.2892277Z","updatedOn":"2020-06-24T01:42:26.2892277Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a32cce5c-1fd3-41c4-acc1-5703f0886990","type":"Microsoft.Authorization/roleAssignments","name":"a32cce5c-1fd3-41c4-acc1-5703f0886990"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"38d88515-7eb8-4c96-804f-4edcc95b9dff","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-15T00:05:21.2872130Z","updatedOn":"2018-11-15T00:05:21.2872130Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a8ebe6bd-7017-43e1-818a-64b3ec691ff4","type":"Microsoft.Authorization/roleAssignments","name":"a8ebe6bd-7017-43e1-818a-64b3ec691ff4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"395c8203-ec60-4c13-9730-5f960088f92b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:06.4818169Z","updatedOn":"2020-06-28T02:13:06.4818169Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f6a7ee61-576a-48de-bd6b-62d8e8ff5335","type":"Microsoft.Authorization/roleAssignments","name":"f6a7ee61-576a-48de-bd6b-62d8e8ff5335"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-24T01:42:26.3089219Z","updatedOn":"2020-06-24T01:42:26.3089219Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/10d66f5e-ede6-428d-a82f-24c56d58ee41","type":"Microsoft.Authorization/roleAssignments","name":"10d66f5e-ede6-428d-a82f-24c56d58ee41"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"80a6e936-2bdc-4927-b49e-2a7a19943b90","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:05.6664266Z","updatedOn":"2020-06-28T02:13:05.6664266Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/049bb70c-f07b-4e4e-81c1-49d706598629","type":"Microsoft.Authorization/roleAssignments","name":"049bb70c-f07b-4e4e-81c1-49d706598629"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"8a5603a8-2c60-49ab-bc28-a989b91e187d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-07-03T07:16:26.4178883Z","updatedOn":"2020-07-03T07:16:26.4178883Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bff88f85-1f05-44fe-9a15-81ff4412ef7d","type":"Microsoft.Authorization/roleAssignments","name":"bff88f85-1f05-44fe-9a15-81ff4412ef7d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a56cfdc0-40f8-4077-8843-a8bf0067cd4d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:26:47.8968784Z","updatedOn":"2020-06-28T02:26:47.8968784Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cd01871c-f24c-478d-b9f2-1eec835b3705","type":"Microsoft.Authorization/roleAssignments","name":"cd01871c-f24c-478d-b9f2-1eec835b3705"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"ae4622a7-bde9-4bca-9599-2d18571bfeba","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:04.9948448Z","updatedOn":"2020-06-28T02:13:04.9948448Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8fbd0f94-dbc4-4b41-b89f-d39c61939775","type":"Microsoft.Authorization/roleAssignments","name":"8fbd0f94-dbc4-4b41-b89f-d39c61939775"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"b47f071a-d6c9-4297-954e-83151fff489b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:26:58.4113645Z","updatedOn":"2020-06-28T02:26:58.4113645Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f7bcb38a-4254-415b-bb42-5be0927cc5b3","type":"Microsoft.Authorization/roleAssignments","name":"f7bcb38a-4254-415b-bb42-5be0927cc5b3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c29bee61-aa42-4f9c-be8b-840522822e1e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T13:39:10.8094236Z","updatedOn":"2020-06-28T13:39:10.8094236Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9cf9df38-5c44-486c-b632-5d3d9b8a1f85","type":"Microsoft.Authorization/roleAssignments","name":"9cf9df38-5c44-486c-b632-5d3d9b8a1f85"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"249ae1d3-b522-45be-a402-7a305735d066","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-19T22:36:12.1011895Z","updatedOn":"2018-11-19T22:36:12.1011895Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f4975c4b-3320-4ec6-9e1b-1c758d06ad55","type":"Microsoft.Authorization/roleAssignments","name":"f4975c4b-3320-4ec6-9e1b-1c758d06ad55"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2fda9054-fc12-457c-bb93-614f1f13426b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:12:24.1007764Z","updatedOn":"2019-01-04T04:12:24.1007764Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/fbe0e113-769d-4651-9d77-c3b470a714ab","type":"Microsoft.Authorization/roleAssignments","name":"fbe0e113-769d-4651-9d77-c3b470a714ab"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"39527840-d507-4477-8bd2-d7ffa4542194","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-15T21:06:41.8028199Z","updatedOn":"2018-11-15T21:06:41.8028199Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a5886114-fd73-4a40-9a7c-226bdc4617b1","type":"Microsoft.Authorization/roleAssignments","name":"a5886114-fd73-4a40-9a7c-226bdc4617b1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"44d2f8c7-d87d-45b0-87db-4cb97b40417d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:11:22.8446433Z","updatedOn":"2020-06-28T02:11:22.8446433Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2cf5f7f5-6b29-4501-9ae5-94dc1b765c24","type":"Microsoft.Authorization/roleAssignments","name":"2cf5f7f5-6b29-4501-9ae5-94dc1b765c24"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5caed073-2b85-4f0b-8792-afde9e986a5e","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:51:43.1917863Z","updatedOn":"2019-01-04T04:51:43.1917863Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/df1a2d1a-a8cc-426b-a65a-7eb0d2a71a53","type":"Microsoft.Authorization/roleAssignments","name":"df1a2d1a-a8cc-426b-a65a-7eb0d2a71a53"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:25:38.3359249Z","updatedOn":"2019-01-04T04:25:38.3359249Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4730c93b-bf36-463b-9545-ebe1880218cc","type":"Microsoft.Authorization/roleAssignments","name":"4730c93b-bf36-463b-9545-ebe1880218cc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"87ccb404-2e62-44d1-97c0-a842c400b985","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:08:54.9365955Z","updatedOn":"2020-06-28T02:08:54.9365955Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/dcbc5923-507d-4a28-be07-947993791c9c","type":"Microsoft.Authorization/roleAssignments","name":"dcbc5923-507d-4a28-be07-947993791c9c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8a5603a8-2c60-49ab-bc28-a989b91e187d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-30T03:12:15.7525228Z","updatedOn":"2020-06-30T03:12:15.7525228Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4c403ed2-c088-44b8-961f-323c41ca7cb6","type":"Microsoft.Authorization/roleAssignments","name":"4c403ed2-c088-44b8-961f-323c41ca7cb6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8ff738a5-abcd-4864-a162-6c18f7c9cbd9","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:31:44.0748782Z","updatedOn":"2020-06-28T02:31:44.0748782Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88ac53e4-cb0c-4fcf-ad69-f055e301f047","type":"Microsoft.Authorization/roleAssignments","name":"88ac53e4-cb0c-4fcf-ad69-f055e301f047"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a5c919a9-89c9-45fb-880a-5e3e0b4fcb84","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T08:20:11.1204486Z","updatedOn":"2020-06-28T08:20:11.1204486Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b3e51ab0-0a5d-4752-9774-43e63126d4b3","type":"Microsoft.Authorization/roleAssignments","name":"b3e51ab0-0a5d-4752-9774-43e63126d4b3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a6920a4d-d20a-4ac6-a844-13565e224294","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T08:20:49.9287645Z","updatedOn":"2020-06-28T08:20:49.9287645Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e70cd72a-69e0-4f89-aeca-eaa908c123aa","type":"Microsoft.Authorization/roleAssignments","name":"e70cd72a-69e0-4f89-aeca-eaa908c123aa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"5c617d2b-99f8-4c90-98fe-dfe040fa33c1","principalType":"ServicePrincipal","scope":"/","createdOn":"2018-02-27T19:19:50.2663941Z","updatedOn":"2018-02-27T19:19:50.2663941Z","createdBy":null,"updatedBy":null},"id":"/providers/Microsoft.Authorization/roleAssignments/3e883d24-b106-42ff-ad13-d7bf271b964d","type":"Microsoft.Authorization/roleAssignments","name":"3e883d24-b106-42ff-ad13-d7bf271b964d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227","createdOn":"2019-03-26T22:01:02.9428505Z","updatedOn":"2019-03-26T22:01:02.9428505Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227/providers/Microsoft.Authorization/roleAssignments/10d00e1e-13b8-4846-9e4f-d4db71bddab0","type":"Microsoft.Authorization/roleAssignments","name":"10d00e1e-13b8-4846-9e4f-d4db71bddab0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2019-03-26T22:01:02.9136073Z","updatedOn":"2019-03-26T22:01:02.9136073Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6f4de15e-9316-4714-a7c4-40c46cf8e067","type":"Microsoft.Authorization/roleAssignments","name":"6f4de15e-9316-4714-a7c4-40c46cf8e067"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"2ac3f52f-f3ad-40a4-9b2d-aa24e4c7bbba","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:13.2137492Z","updatedOn":"2020-02-25T18:36:13.2137492Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/18fdd87e-1c01-424e-b380-32310f4940c2","type":"Microsoft.Authorization/roleAssignments","name":"18fdd87e-1c01-424e-b380-32310f4940c2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"4a113caa-961f-4535-ac9b-79bfba8b9ed2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:00.4746112Z","updatedOn":"2020-02-25T18:36:00.4746112Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d9bcf58a-6f24-446d-bf60-20ffe5142396","type":"Microsoft.Authorization/roleAssignments","name":"d9bcf58a-6f24-446d-bf60-20ffe5142396"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"56d08bc2-cc29-4d23-9d23-fd396b807b02","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:55.7490022Z","updatedOn":"2020-02-25T18:35:55.7490022Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6e2b954b-42b2-48e0-997a-622601f0a4b4","type":"Microsoft.Authorization/roleAssignments","name":"6e2b954b-42b2-48e0-997a-622601f0a4b4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6179a082-c057-4fe3-8118-916b816a42e3","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:57.9173081Z","updatedOn":"2020-02-25T18:35:57.9173081Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9","type":"Microsoft.Authorization/roleAssignments","name":"8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6fe923a8-2e4d-4c1f-b7d6-a7c5984f0129","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:23.0673659Z","updatedOn":"2020-02-25T18:36:23.0673659Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d0817c57-3e5b-4363-88b7-52baadd5c362","type":"Microsoft.Authorization/roleAssignments","name":"d0817c57-3e5b-4363-88b7-52baadd5c362"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7c2d0d59-528c-434a-8c6c-03330539cad2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:31.2596366Z","updatedOn":"2020-02-25T18:36:31.2596366Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/0dabf212-a1c7-4af6-ba8b-be045493b368","type":"Microsoft.Authorization/roleAssignments","name":"0dabf212-a1c7-4af6-ba8b-be045493b368"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7d7aed0a-228e-420b-a6a2-82a49dacb8cb","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:52.9188704Z","updatedOn":"2020-02-25T18:35:52.9188704Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d674b853-332e-4437-9ddb-bba8fde7ccce","type":"Microsoft.Authorization/roleAssignments","name":"d674b853-332e-4437-9ddb-bba8fde7ccce"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"985bb80e-8113-4542-8d68-418589e6ff34","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:02.5324969Z","updatedOn":"2020-02-25T18:36:02.5324969Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b4bdc3a7-78e2-4b26-8b90-e474aa120b47","type":"Microsoft.Authorization/roleAssignments","name":"b4bdc3a7-78e2-4b26-8b90-e474aa120b47"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"b7a49237-f5b0-473f-a4ff-6830d23af17d","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:38.8393742Z","updatedOn":"2020-02-25T18:36:38.8393742Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/00625383-053d-4227-a4db-b098e9bd2289","type":"Microsoft.Authorization/roleAssignments","name":"00625383-053d-4227-a4db-b098e9bd2289"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"f2e939bc-742a-42f9-a27a-f0982c6e3f64","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:05.0954462Z","updatedOn":"2020-02-25T18:36:05.0954462Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/3151fe9c-fcd2-45d3-a256-72fb13b86df5","type":"Microsoft.Authorization/roleAssignments","name":"3151fe9c-fcd2-45d3-a256-72fb13b86df5"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c","principalId":"b7b8bd19-f827-425f-9be1-fd8a86b21904","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-07-06T18:51:22.9449669Z","updatedOn":"2020-07-06T18:51:22.9449669Z","createdBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7","updatedBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b3a9e1db-fde1-4ddd-ac1c-91913be67359","type":"Microsoft.Authorization/roleAssignments","name":"b3a9e1db-fde1-4ddd-ac1c-91913be67359"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-26T22:01:02.9176787Z","updatedOn":"2019-03-26T22:01:02.9176787Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/4b771ea9-81de-4fc4-aa28-a3a0b9b4a320","type":"Microsoft.Authorization/roleAssignments","name":"4b771ea9-81de-4fc4-aa28-a3a0b9b4a320"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-27T00:49:37.3000523Z","updatedOn":"2019-03-27T00:49:37.3000523Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/e6e1fffd-83f7-40c7-9f33-e56e2cf75b29","type":"Microsoft.Authorization/roleAssignments","name":"e6e1fffd-83f7-40c7-9f33-e56e2cf75b29"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-27T00:50:08.3039053Z","updatedOn":"2019-03-27T00:50:08.3039053Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/3d01f56e-ee3a-41ed-a775-0e067546cb12","type":"Microsoft.Authorization/roleAssignments","name":"3d01f56e-ee3a-41ed-a775-0e067546cb12"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"ce2366a6-64d7-441b-939c-c9d23f91cccd","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47","createdOn":"2020-03-12T20:43:06.5941189Z","updatedOn":"2020-03-12T20:43:06.5941189Z","createdBy":"606f48c8-d219-4875-991d-ae6befaf0756","updatedBy":"606f48c8-d219-4875-991d-ae6befaf0756"},"id":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47/providers/Microsoft.Authorization/roleAssignments/ad9e2cd7-0ff7-4931-9b17-656c8f17934b","type":"Microsoft.Authorization/roleAssignments","name":"ad9e2cd7-0ff7-4931-9b17-656c8f17934b"}]}' + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitesty5xlz2kig-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitesty5xlz2kig-8ecadf-ce885a42.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"vnetSubnetID\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ + ,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\",\n \ + \ \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\":\ + \ \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.19\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c=\ + \ ace@ace-vm\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ingressapplicationgateway\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"applicationgatewayid\"\ + : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw\"\ + ,\n \"effectiveapplicationgatewayid\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/applicationGateways/appgw\"\ + \n },\n \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ingressapplicationgateway-cliakstest000002\"\ + ,\n \"clientId\": \"f5b5e80f-6af8-48f2-9a8a-44523f92fa66\",\n \"\ + objectId\": \"728512ff-437e-45a2-856c-8c3a71eef97c\"\n }\n },\n \ + \ \"kubedashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"f0de2dce-4e7f-4474-b011-a380d021f8da\",\n \"\ + objectId\": \"1d1868e7-7fa2-4a9f-9e0d-f7bb3c6394c3\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/8b3fb586-3ceb-409f-bc27-6507be8fd4b8\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"2923b72f-c79a-4fb9-afb7-f753c5365ab2\",\n \"objectId\"\ + : \"f7879f98-db29-4ef0-b386-c171d6605efc\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"9c53f703-b984-4c81-9f0b-bf15c4b79502\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" headers: cache-control: - no-cache content-length: - - '32605' + - '4622' content-type: - - application/json; charset=utf-8 - date: - - Wed, 29 Jul 2020 09:26:52 GMT - expires: - - '-1' - pragma: - - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - 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: - - role assignment list - Connection: - - keep-alive - Cookie: - - x-ms-gateway-slice=Production - ParameterSetName: - - --assignee --scope --role -o - User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Authorization/roleDefinitions?api-version=2018-01-01-preview - response: - body: - string: "{\"value\":[{\"properties\":{\"roleName\":\"Avere Cluster Create\"\ - ,\"type\":\"CustomRole\",\"description\":\"Avere cluster create role used\ - \ by the Avere controller to create a vFXT cluster.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Authorization/roleAssignments/*\",\"Microsoft.Authorization/roleDefinitions/*\"\ - ,\"Microsoft.Compute/*/read\",\"Microsoft.Compute/availabilitySets/*\",\"\ - Microsoft.Compute/virtualMachines/*\",\"Microsoft.Network/*/read\",\"Microsoft.Network/networkInterfaces/*\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/virtualNetworks/subnets/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/subscriptions/resourceGroups/resources/read\"\ - ,\"Microsoft.Storage/*/read\",\"Microsoft.Storage/storageAccounts/listKeys/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-11-29T18:46:55.0492387Z\",\"updatedOn\":\"2018-11-29T18:46:55.0492387Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\"\ - },{\"properties\":{\"roleName\":\"Avere Cluster Runtime Operator\",\"type\"\ - :\"CustomRole\",\"description\":\"Avere cluster runtime role used by Avere\ - \ clusters running in subscriptions, for the purpose of failing over IP addresses,\ - \ accessing BLOB storage, etc\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Compute/virtualMachines/read\",\"Microsoft.Network/networkInterfaces/read\"\ - ,\"Microsoft.Network/networkInterfaces/write\",\"Microsoft.Network/virtualNetworks/subnets/read\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/networkSecurityGroups/join/action\"\ - ,\"Microsoft.Network/routeTables/read\",\"Microsoft.Network/routeTables/routes/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-08-26T00:41:26.2170858Z\",\"\ - updatedOn\":\"2018-08-26T00:41:26.2170858Z\",\"createdBy\":\"dda50086-5e3d-4a4b-b8bc-f54771104d89\"\ - ,\"updatedBy\":\"dda50086-5e3d-4a4b-b8bc-f54771104d89\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e078ab98-ef3a-4c9a-aba7-12f5172b45d0\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e078ab98-ef3a-4c9a-aba7-12f5172b45d0\"\ - },{\"properties\":{\"roleName\":\"Azure Service Deploy Release Management\ - \ Contributor\",\"type\":\"CustomRole\",\"description\":\"Contributor role\ - \ for services deploying through Azure Service Deploy.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"*\"],\"notActions\":[\"Microsoft.Authorization/*/Delete\"\ - ,\"Microsoft.Authorization/*/Write\"],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-02-04T02:26:31.5413362Z\",\"updatedOn\":\"2018-01-08T20:20:16.3660174Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/21d96096-b162-414a-8302-d8354f9d91b2\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"21d96096-b162-414a-8302-d8354f9d91b2\"\ - },{\"properties\":{\"roleName\":\"CAL-Custom-Role\",\"type\":\"CustomRole\"\ - ,\"description\":\"Lets SAP Cloud Appliance Library application manage Network\ - \ and Compute services, manage Resource Groups and Management locks.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/locks/*\"\ - ,\"Microsoft.Authorization/roleDefinitions/*\",\"Microsoft.Authorization/roleAssignments/*\"\ - ,\"Microsoft.Compute/*\",\"Microsoft.Network/*\",\"Microsoft.Resources/*\"\ - ,\"Microsoft.Storage/*\",\"Microsoft.ContainerService/*\",\"Microsoft.ContainerRegistry/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-05-14T19:30:51.0664585Z\",\"updatedOn\":\"2019-02-19T19:11:57.5963229Z\"\ - ,\"createdBy\":\"dda50086-5e3d-4a4b-b8bc-f54771104d89\",\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7b266cd7-0bba-4ae2-8423-90ede5e1e898\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7b266cd7-0bba-4ae2-8423-90ede5e1e898\"\ - },{\"properties\":{\"roleName\":\"Dsms Role (deprecated)\",\"type\":\"CustomRole\"\ - ,\"description\":\"Custom role used by Dsms to perform operations. Can list\ - \ and regnerate storage account keys.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\"Microsoft.Storage/storageAccounts/listkeys/action\"\ - ,\"Microsoft.Storage/storageAccounts/regeneratekey/action\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-05-17T18:02:11.1225951Z\"\ - ,\"updatedOn\":\"2018-01-13T00:21:52.7211696Z\",\"createdBy\":\"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\"\ - ,\"updatedBy\":\"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\"\ - },{\"properties\":{\"roleName\":\"Dsms Role (do not use)\",\"type\":\"CustomRole\"\ - ,\"description\":\"Custom role used by Dsms to perform operations. Can list\ - \ and regnerate storage account keys.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\"Microsoft.Storage/storageAccounts/listkeys/action\"\ - ,\"Microsoft.Storage/storageAccounts/regeneratekey/action\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-02-01T07:56:12.5880222Z\"\ - ,\"updatedOn\":\"2018-08-09T17:53:48.5432297Z\",\"createdBy\":\"becb4b6b-fe16-413b-a5c3-90355e0b2982\"\ - ,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7aff565e-6c55-448d-83db-ccf482c6da2f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7aff565e-6c55-448d-83db-ccf482c6da2f\"\ - },{\"properties\":{\"roleName\":\"ExpressRoute Administrator\",\"type\":\"\ - CustomRole\",\"description\":\"Can create, delete and manage ExpressRoutes\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/locks/*\"\ - ,\"Microsoft.Authorization/policyAssignments/*\",\"Microsoft.Authorization/policyDefinitions/*\"\ - ,\"Microsoft.Authorization/roleAssignments/*\",\"Microsoft.ClassicNetwork/*\"\ - ,\"Microsoft.EventGrid/*\",\"Microsoft.Insights/*\",\"Microsoft.Network/*\"\ - ,\"Microsoft.Resources/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-08-31T03:51:32.2843055Z\",\"updatedOn\":\"2019-03-20T22:55:18.8222085Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a48d7896-14b4-4889-afef-fbb65a96e5a2\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a48d7896-14b4-4889-afef-fbb65a96e5a2\"\ - },{\"properties\":{\"roleName\":\"GenevaWarmPathResourceContributor\",\"type\"\ - :\"CustomRole\",\"description\":\"Can manage service bus and storage accounts.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EventHub/namespaces/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/*\",\"Microsoft.ServiceBus/namespaces/*\"\ - ,\"Microsoft.Storage/storageAccounts/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2017-03-14T22:30:10.1999436Z\"\ - ,\"updatedOn\":\"2017-03-14T22:30:10.1999436Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\"\ - },{\"properties\":{\"roleName\":\"masterreader\",\"type\":\"CustomRole\",\"\ - description\":\"Lets you view everything, but not make any changes.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"*/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2017-11-14T23:38:05.3353858Z\"\ - ,\"updatedOn\":\"2017-11-14T23:38:05.3353858Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a48d7796-14b4-4889-afef-fbb65a93e5a2\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a48d7796-14b4-4889-afef-fbb65a93e5a2\"\ - },{\"properties\":{\"roleName\":\"Microsoft OneAsset Reader\",\"type\":\"\ - CustomRole\",\"description\":\"This role is for Microsoft OneAsset team (CSEO)\ - \ to track internal security compliance and resource utilization.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Compute/virtualMachines/*/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-03-27T23:51:08.6333052Z\",\"updatedOn\":\"2019-04-02T20:35:43.3396263Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fd1bb084-1503-4bd2-99c0-630220046786\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fd1bb084-1503-4bd2-99c0-630220046786\"\ - },{\"properties\":{\"roleName\":\"Office DevOps\",\"type\":\"CustomRole\"\ - ,\"description\":\"Custom access for developers to operations but not secrets.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Compute/virtualMachineScaleSets/restart/action\"\ - ,\"Microsoft.Compute/virtualMachineScaleSets/virtualMachines/restart/action\"\ - ,\"Microsoft.Sql/servers/databases/replicationLinks/delete\",\"Microsoft.Sql/servers/databases/replicationLinks/failover/action\"\ - ,\"Microsoft.Sql/servers/databases/replicationLinks/forceFailoverAllowDataLoss/action\"\ - ,\"Microsoft.Sql/servers/databases/replicationLinks/operationResults/read\"\ - ,\"Microsoft.Sql/servers/databases/replicationLinks/read\",\"Microsoft.Sql/servers/databases/replicationLinks/unlink/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2016-10-07T08:11:46.1639398Z\",\"updatedOn\":\"2017-03-16T18:43:08.3234306Z\"\ - ,\"createdBy\":\"25aea6be-b605-4347-a92d-33e178e412ec\",\"updatedBy\":\"25aea6be-b605-4347-a92d-33e178e412ec\"\ - },\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7fd64851-3279-459b-b614-e2b2ba760f5b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7fd64851-3279-459b-b614-e2b2ba760f5b\"\ - },{\"properties\":{\"roleName\":\"GenevaWarmPathStorageBlobContributor\",\"\ - type\":\"CustomRole\",\"description\":\"Geneva Warm Path Storage Blob Contributor\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/lease/action\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/lock/action\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/read\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/extend/action\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-12-06T22:46:27.1365630Z\",\"updatedOn\":\"2019-12-06T22:46:27.1365630Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a16c43ca-2d67-4dcd-9ded-6412f5edc51a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a16c43ca-2d67-4dcd-9ded-6412f5edc51a\"\ - },{\"properties\":{\"roleName\":\"AcrPush\",\"type\":\"BuiltInRole\",\"description\"\ - :\"acr push\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.ContainerRegistry/registries/pull/read\",\"Microsoft.ContainerRegistry/registries/push/write\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-10-29T17:52:32.5201177Z\",\"updatedOn\":\"2018-11-13T23:26:19.9749249Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8311e382-0749-4cb8-b61a-304f252e45ec\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8311e382-0749-4cb8-b61a-304f252e45ec\"\ - },{\"properties\":{\"roleName\":\"API Management Service Contributor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can manage service and the APIs\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ApiManagement/service/*\"\ - ,\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8650193Z\",\"updatedOn\":\"2019-02-05T21:24:17.7502607Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/312a565d-c81f-4fd8-895a-4e21e48d571c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"312a565d-c81f-4fd8-895a-4e21e48d571c\"\ - },{\"properties\":{\"roleName\":\"AcrPull\",\"type\":\"BuiltInRole\",\"description\"\ - :\"acr pull\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.ContainerRegistry/registries/pull/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-10-22T19:01:56.8227182Z\"\ - ,\"updatedOn\":\"2018-11-13T23:22:03.2302457Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f951dda-4ed3-4680-a7ca-43fe172d538d\"\ - },{\"properties\":{\"roleName\":\"AcrImageSigner\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"acr image signer\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.ContainerRegistry/registries/sign/write\"],\"\ - notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"\ - 2018-03-15T23:23:08.4038322Z\",\"updatedOn\":\"2018-10-29T19:06:24.9004422Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6cef56e8-d556-48e5-a04f-b8e64114680f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6cef56e8-d556-48e5-a04f-b8e64114680f\"\ - },{\"properties\":{\"roleName\":\"AcrDelete\",\"type\":\"BuiltInRole\",\"\ - description\":\"acr delete\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.ContainerRegistry/registries/artifacts/delete\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-03-11T20:19:31.6682804Z\",\"updatedOn\":\"2019-03-11T20:24:38.9845104Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c2f4ef07-c644-48eb-af81-4b1b4947fb11\"\ - },{\"properties\":{\"roleName\":\"AcrQuarantineReader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"acr quarantine data reader\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.ContainerRegistry/registries/quarantine/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-03-16T00:27:39.9596835Z\",\"updatedOn\":\"2019-10-22T00:12:39.7020930Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/cdda3590-29a3-44f6-95f2-9f980659eb04\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"cdda3590-29a3-44f6-95f2-9f980659eb04\"\ - },{\"properties\":{\"roleName\":\"AcrQuarantineWriter\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"acr quarantine data writer\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.ContainerRegistry/registries/quarantine/read\"\ - ,\"Microsoft.ContainerRegistry/registries/quarantine/write\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-16T00:26:37.5871820Z\"\ - ,\"updatedOn\":\"2019-10-22T00:10:29.8202164Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c8d4ff99-41c3-41a8-9f60-21dfdad59608\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c8d4ff99-41c3-41a8-9f60-21dfdad59608\"\ - },{\"properties\":{\"roleName\":\"API Management Service Operator Role\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can manage service but not the APIs\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ApiManagement/service/*/read\"\ - ,\"Microsoft.ApiManagement/service/backup/action\",\"Microsoft.ApiManagement/service/delete\"\ - ,\"Microsoft.ApiManagement/service/managedeployments/action\",\"Microsoft.ApiManagement/service/read\"\ - ,\"Microsoft.ApiManagement/service/restore/action\",\"Microsoft.ApiManagement/service/updatecertificate/action\"\ - ,\"Microsoft.ApiManagement/service/updatehostname/action\",\"Microsoft.ApiManagement/service/write\"\ - ,\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[\"Microsoft.ApiManagement/service/users/keys/read\"],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-11-09T00:03:42.1194019Z\"\ - ,\"updatedOn\":\"2016-11-18T23:56:25.4682649Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e022efe7-f5ba-4159-bbe4-b44f577e9b61\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e022efe7-f5ba-4159-bbe4-b44f577e9b61\"\ - },{\"properties\":{\"roleName\":\"API Management Service Reader Role\",\"\ - type\":\"BuiltInRole\",\"description\":\"Read-only access to service and APIs\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ApiManagement/service/*/read\"\ - ,\"Microsoft.ApiManagement/service/read\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[\"Microsoft.ApiManagement/service/users/keys/read\"\ - ],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-11-09T00:26:45.1540473Z\"\ - ,\"updatedOn\":\"2017-01-23T23:10:34.8876776Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/71522526-b88f-4d52-b57f-d31fc3546d0d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"71522526-b88f-4d52-b57f-d31fc3546d0d\"\ - },{\"properties\":{\"roleName\":\"Application Insights Component Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Can manage Application Insights\ - \ components\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Insights/metricAlerts/*\",\"Microsoft.Insights/components/*\",\"\ - Microsoft.Insights/webtests/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2020-02-12T12:45:46.9200472Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ae349356-3a1b-4a5e-921d-050484c6347e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ae349356-3a1b-4a5e-921d-050484c6347e\"\ - },{\"properties\":{\"roleName\":\"Application Insights Snapshot Debugger\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Gives user permission to use Application\ - \ Insights Snapshot Debugger features\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Insights/components/*/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-04-19T21:25:12.3728747Z\",\"updatedOn\":\"2017-04-19T23:34:59.9511581Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/08954f03-6346-4c2e-81c0-ec3a5cfae23b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"08954f03-6346-4c2e-81c0-ec3a5cfae23b\"\ - },{\"properties\":{\"roleName\":\"Attestation Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can read the attestation provider properties\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Attestation/attestationProviders/attestation/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-03-25T19:42:59.1576710Z\",\"updatedOn\":\"2019-05-10T17:52:38.9036953Z\"\ - ,\"createdBy\":null,\"updatedBy\":\"SYSTEM\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fd1bd22b-8476-40bc-a0bc-69b95687b9f3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fd1bd22b-8476-40bc-a0bc-69b95687b9f3\"\ - },{\"properties\":{\"roleName\":\"Automation Job Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Create and Manage Jobs using Automation Runbooks.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/read\",\"Microsoft.Automation/automationAccounts/jobs/resume/action\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/stop/action\",\"Microsoft.Automation/automationAccounts/jobs/streams/read\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\"Microsoft.Automation/automationAccounts/jobs/write\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/output/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-04-19T20:52:41.0020018Z\",\"updatedOn\":\"2018-08-14T22:08:48.1147327Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4fe576fe-1146-4730-92eb-48519fa6bf9f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4fe576fe-1146-4730-92eb-48519fa6bf9f\"\ - },{\"properties\":{\"roleName\":\"Automation Runbook Operator\",\"type\":\"\ - BuiltInRole\",\"description\":\"Read Runbook properties - to be able to create\ - \ Jobs of the runbook.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Automation/automationAccounts/runbooks/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-04-19T20:47:49.5640674Z\",\"updatedOn\":\"2017-04-25T01:00:45.6444999Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\"\ - },{\"properties\":{\"roleName\":\"Automation Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Automation Operators are able to start, stop, suspend,\ - \ and resume jobs\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/read\",\"Microsoft.Automation/automationAccounts/jobs/resume/action\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/stop/action\",\"Microsoft.Automation/automationAccounts/jobs/streams/read\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\"Microsoft.Automation/automationAccounts/jobs/write\"\ - ,\"Microsoft.Automation/automationAccounts/jobSchedules/read\",\"Microsoft.Automation/automationAccounts/jobSchedules/write\"\ - ,\"Microsoft.Automation/automationAccounts/linkedWorkspace/read\",\"Microsoft.Automation/automationAccounts/read\"\ - ,\"Microsoft.Automation/automationAccounts/runbooks/read\",\"Microsoft.Automation/automationAccounts/schedules/read\"\ - ,\"Microsoft.Automation/automationAccounts/schedules/write\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/output/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-08-18T01:05:03.3916130Z\",\"updatedOn\":\"2018-05-10T20:12:39.6978200Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d3881f73-407a-4167-8283-e981cbba0404\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d3881f73-407a-4167-8283-e981cbba0404\"\ - },{\"properties\":{\"roleName\":\"Avere Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can create and manage an Avere vFXT cluster.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Compute/*/read\",\"Microsoft.Compute/availabilitySets/*\",\"\ - Microsoft.Compute/proximityPlacementGroups/*\",\"Microsoft.Compute/virtualMachines/*\"\ - ,\"Microsoft.Compute/disks/*\",\"Microsoft.Network/*/read\",\"Microsoft.Network/networkInterfaces/*\"\ - ,\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.Network/virtualNetworks/subnets/read\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"\ - ,\"Microsoft.Network/networkSecurityGroups/join/action\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Storage/*/read\",\"Microsoft.Storage/storageAccounts/*\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/resources/read\"],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-03-18T20:00:58.9207889Z\",\"\ - updatedOn\":\"2020-05-27T06:48:54.4896867Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4f8fab4f-1852-4a58-a46a-8eaf358af14a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4f8fab4f-1852-4a58-a46a-8eaf358af14a\"\ - },{\"properties\":{\"roleName\":\"Avere Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Used by the Avere vFXT cluster to manage the cluster\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Compute/virtualMachines/read\"\ - ,\"Microsoft.Network/networkInterfaces/read\",\"Microsoft.Network/networkInterfaces/write\"\ - ,\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.Network/virtualNetworks/subnets/read\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/networkSecurityGroups/join/action\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-03-18T20:02:38.3399857Z\",\"\ - updatedOn\":\"2019-03-29T00:26:37.9205875Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service Cluster Admin Role\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"List cluster admin credential\ - \ action.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.ContainerService/managedClusters/listClusterAdminCredential/action\"\ - ,\"Microsoft.ContainerService/managedClusters/accessProfiles/listCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-08-15T21:38:18.5953853Z\",\"updatedOn\":\"2020-02-07T02:49:24.9715273Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service Cluster User Role\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"List cluster user credential action.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-08-15T22:04:53.4037241Z\",\"updatedOn\":\"2020-02-11T23:37:03.5899240Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4abbcc35-e782-43d8-92c5-2d3f1bd2253f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4abbcc35-e782-43d8-92c5-2d3f1bd2253f\"\ - },{\"properties\":{\"roleName\":\"Azure Maps Data Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Grants access to read map related data from an Azure maps\ - \ account.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"\ - notActions\":[],\"dataActions\":[\"Microsoft.Maps/accounts/*/read\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-10-05T19:47:03.4723070Z\",\"updatedOn\":\"2020-04-28T22:33:41.7780319Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/423170ca-a8f6-4b0f-8487-9e4eb8f49bfa\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"423170ca-a8f6-4b0f-8487-9e4eb8f49bfa\"\ - },{\"properties\":{\"roleName\":\"Azure Stack Registration Owner\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage Azure Stack registrations.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.AzureStack/edgeSubscriptions/read\"\ - ,\"Microsoft.AzureStack/registrations/products/*/action\",\"Microsoft.AzureStack/registrations/products/read\"\ - ,\"Microsoft.AzureStack/registrations/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2017-11-13T23:42:06.2161827Z\"\ - ,\"updatedOn\":\"2020-06-29T22:11:17.0759529Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6f12a6df-dd06-4f3e-bcb1-ce8be600526a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6f12a6df-dd06-4f3e-bcb1-ce8be600526a\"\ - },{\"properties\":{\"roleName\":\"Backup Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage backup service,but can't create vaults\ - \ and give access to others\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.RecoveryServices/locations/*\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\",\"Microsoft.RecoveryServices/Vaults/backupProtectedItems/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/*\",\"Microsoft.RecoveryServices/Vaults/backupSecurityPIN/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\"Microsoft.RecoveryServices/Vaults/certificates/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/extendedInformation/*\",\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\"Microsoft.RecoveryServices/Vaults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/*\",\"Microsoft.RecoveryServices/Vaults/usages/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Storage/storageAccounts/read\",\"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupconfig/*\",\"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/write\",\"Microsoft.RecoveryServices/Vaults/backupOperations/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\"\ - ,\"Microsoft.RecoveryServices/locations/backupStatus/action\",\"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\"\ - ,\"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\"\ - Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\"Microsoft.RecoveryServices/operations/read\"\ - ,\"Microsoft.RecoveryServices/locations/operationStatus/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-01-03T13:12:15.7321344Z\",\"updatedOn\":\"2019-12-17T10:44:35.8361149Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5e467623-bb1f-42f4-a55d-6e525e11384b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5e467623-bb1f-42f4-a55d-6e525e11384b\"\ - },{\"properties\":{\"roleName\":\"Billing Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Allows read access to billing data\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Billing/*/read\",\"Microsoft.Commerce/*/read\",\"Microsoft.Consumption/*/read\"\ - ,\"Microsoft.Management/managementGroups/read\",\"Microsoft.CostManagement/*/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-04-25T02:13:38.9054151Z\",\"updatedOn\":\"2018-09-26T17:45:09.2227236Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\"\ - },{\"properties\":{\"roleName\":\"Backup Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage backup services, except removal of backup,\ - \ vault creation and giving access to others\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/backup/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/provisionInstantItemRecovery/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/restore/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/revokeInstantItemRecovery/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\"Microsoft.RecoveryServices/Vaults/certificates/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\"Microsoft.RecoveryServices/Vaults/extendedInformation/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\",\"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/inquire/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\"\ - ,\"Microsoft.RecoveryServices/locations/backupStatus/action\",\"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\"\ - ,\"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\"\ - Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\"Microsoft.RecoveryServices/operations/read\"\ - ,\"Microsoft.RecoveryServices/locations/operationStatus/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-01-03T13:21:11.8947640Z\",\"updatedOn\":\"2019-12-17T11:02:43.9998686Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00c29273-979b-4161-815c-10b084fb9324\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"00c29273-979b-4161-815c-10b084fb9324\"\ - },{\"properties\":{\"roleName\":\"Backup Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can view backup services, but can't make changes\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupJobs/operationResults/read\",\"\ - Microsoft.RecoveryServices/Vaults/backupJobs/read\",\"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupOperationResults/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\",\"\ - Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\"Microsoft.RecoveryServices/Vaults/extendedInformation/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\"Microsoft.RecoveryServices/Vaults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\"Microsoft.RecoveryServices/Vaults/backupstorageconfig/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupconfig/read\",\"Microsoft.RecoveryServices/Vaults/backupOperations/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\",\"Microsoft.RecoveryServices/Vaults/backupEngines/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\"\ - ,\"Microsoft.RecoveryServices/locations/backupStatus/action\",\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\"Microsoft.RecoveryServices/operations/read\"\ - ,\"Microsoft.RecoveryServices/locations/operationStatus/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-01-03T13:18:41.3893065Z\",\"updatedOn\":\"2020-03-04T12:12:04.3213110Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a795c7a0-d4a2-40c1-ae25-d81f01202912\"\ - },{\"properties\":{\"roleName\":\"Blockchain Member Node Access (Preview)\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Allows for access to Blockchain\ - \ Member nodes\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Blockchain/blockchainMembers/transactionNodes/read\"],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.Blockchain/blockchainMembers/transactionNodes/connect/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-12-21T10:33:01.9604839Z\",\"\ - updatedOn\":\"2018-12-21T10:33:58.0042162Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/31a002a1-acaf-453e-8a5b-297c9ca1ea24\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"31a002a1-acaf-453e-8a5b-297c9ca1ea24\"\ - },{\"properties\":{\"roleName\":\"BizTalk Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage BizTalk services, but not access to them.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.BizTalkServices/BizTalk/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T20:42:18.8978210Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5e3c6656-6cfa-4708-81fe-0de47ac73342\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5e3c6656-6cfa-4708-81fe-0de47ac73342\"\ - },{\"properties\":{\"roleName\":\"CDN Endpoint Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can manage CDN endpoints, but can\u2019t grant access to\ - \ other users.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Cdn/edgenodes/read\",\"Microsoft.Cdn/operationresults/*\"\ - ,\"Microsoft.Cdn/profiles/endpoints/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-01-23T02:48:46.4996252Z\",\"updatedOn\":\"2016-05-31T23:13:52.6231539Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/426e0c7f-0c7e-4658-b36f-ff54d6c29b45\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"426e0c7f-0c7e-4658-b36f-ff54d6c29b45\"\ - },{\"properties\":{\"roleName\":\"CDN Endpoint Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can view CDN endpoints, but can\u2019t make changes.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Cdn/edgenodes/read\",\"Microsoft.Cdn/operationresults/*\",\"\ - Microsoft.Cdn/profiles/endpoints/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-01-23T02:48:46.4996252Z\",\"updatedOn\":\"2016-05-31T23:13:53.1585846Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/871e35f6-b5c1-49cc-a043-bde969a0f2cd\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"871e35f6-b5c1-49cc-a043-bde969a0f2cd\"\ - },{\"properties\":{\"roleName\":\"CDN Profile Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can manage CDN profiles and their endpoints, but can\u2019\ - t grant access to other users.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Cdn/edgenodes/read\"\ - ,\"Microsoft.Cdn/operationresults/*\",\"Microsoft.Cdn/profiles/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-01-23T02:48:46.4996252Z\",\"updatedOn\":\"2016-05-31T23:13:53.7051278Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ec156ff8-a8d1-4d15-830c-5b80698ca432\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ec156ff8-a8d1-4d15-830c-5b80698ca432\"\ - },{\"properties\":{\"roleName\":\"CDN Profile Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can view CDN profiles and their endpoints, but can\u2019\ - t make changes.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Cdn/edgenodes/read\",\"Microsoft.Cdn/operationresults/*\"\ - ,\"Microsoft.Cdn/profiles/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-01-23T02:48:46.4996252Z\",\"updatedOn\":\"2016-05-31T23:13:54.2283001Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8f96442b-4075-438f-813d-ad51ab4019af\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8f96442b-4075-438f-813d-ad51ab4019af\"\ - },{\"properties\":{\"roleName\":\"Classic Network Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage classic networks, but not\ - \ access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.ClassicNetwork/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T21:24:39.7576926Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b34d265f-36f7-4a0d-a4d4-e158ca92e90f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b34d265f-36f7-4a0d-a4d4-e158ca92e90f\"\ - },{\"properties\":{\"roleName\":\"Classic Storage Account Contributor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you manage classic storage accounts,\ - \ but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.ClassicStorage/storageAccounts/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T21:24:30.8964641Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/86e8f5dc-a6e9-4c67-9d15-de283e8eac25\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"86e8f5dc-a6e9-4c67-9d15-de283e8eac25\"\ - },{\"properties\":{\"roleName\":\"Classic Storage Account Key Operator Service\ - \ Role\",\"type\":\"BuiltInRole\",\"description\":\"Classic Storage Account\ - \ Key Operators are allowed to list and regenerate keys on Classic Storage\ - \ Accounts\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.ClassicStorage/storageAccounts/listkeys/action\",\"Microsoft.ClassicStorage/storageAccounts/regeneratekey/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-04-13T18:22:52.1461100Z\",\"updatedOn\":\"2017-04-13T20:54:03.0505986Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/985d6b00-f706-48f5-a6fe-d0ca12fb668d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"985d6b00-f706-48f5-a6fe-d0ca12fb668d\"\ - },{\"properties\":{\"roleName\":\"ClearDB MySQL DB Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage ClearDB MySQL databases,\ - \ but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"successbricks.cleardb/databases/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T20:42:23.2893077Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9106cda0-8a86-4e81-b686-29a22c54effe\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9106cda0-8a86-4e81-b686-29a22c54effe\"\ - },{\"properties\":{\"roleName\":\"Classic Virtual Machine Contributor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you manage classic virtual machines,\ - \ but not access to them, and not the virtual network or storage account they\u2019\ - re connected to.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.ClassicCompute/domainNames/*\"\ - ,\"Microsoft.ClassicCompute/virtualMachines/*\",\"Microsoft.ClassicNetwork/networkSecurityGroups/join/action\"\ - ,\"Microsoft.ClassicNetwork/reservedIps/link/action\",\"Microsoft.ClassicNetwork/reservedIps/read\"\ - ,\"Microsoft.ClassicNetwork/virtualNetworks/join/action\",\"Microsoft.ClassicNetwork/virtualNetworks/read\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/disks/read\",\"Microsoft.ClassicStorage/storageAccounts/images/read\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\"Microsoft.ClassicStorage/storageAccounts/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-04-25T00:37:56.5416086Z\",\"updatedOn\":\"2019-02-05T21:24:43.0770473Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d73bb868-a0df-4d4d-bd69-98a00b01fccb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d73bb868-a0df-4d4d-bd69-98a00b01fccb\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services User\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you read and list keys of Cognitive Services.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ,\"Microsoft.CognitiveServices/accounts/listkeys/action\",\"Microsoft.Insights/alertRules/read\"\ - ,\"Microsoft.Insights/diagnosticSettings/read\",\"Microsoft.Insights/logDefinitions/read\"\ - ,\"Microsoft.Insights/metricdefinitions/read\",\"Microsoft.Insights/metrics/read\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/operations/read\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/*\"],\"\ - notDataActions\":[]}],\"createdOn\":\"2018-08-08T23:23:43.7701274Z\",\"updatedOn\"\ - :\"2019-02-13T19:53:56.7209248Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a97b65f3-24c7-4388-baec-2e87135dc908\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a97b65f3-24c7-4388-baec-2e87135dc908\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Data Reader (Preview)\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you read Cognitive Services\ - \ data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"\ - notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/*/read\"],\"\ - notDataActions\":[]}],\"createdOn\":\"2019-02-13T20:02:12.6849986Z\",\"updatedOn\"\ - :\"2019-02-13T22:53:55.1675290Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b59867f0-fa02-499b-be73-45a86b5b3e1c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b59867f0-fa02-499b-be73-45a86b5b3e1c\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you create, read, update, delete and\ - \ manage keys of Cognitive Services.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.CognitiveServices/*\"\ - ,\"Microsoft.Features/features/read\",\"Microsoft.Features/providers/features/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/diagnosticSettings/*\"\ - ,\"Microsoft.Insights/logDefinitions/read\",\"Microsoft.Insights/metricdefinitions/read\"\ - ,\"Microsoft.Insights/metrics/read\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/deployments/operations/read\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourcegroups/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-08-08T23:18:39.2257848Z\",\"updatedOn\":\"2018-09-14T00:53:37.7546808Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68\"\ - },{\"properties\":{\"roleName\":\"CosmosBackupOperator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can submit restore request for a Cosmos DB database or\ - \ a container for an account\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.DocumentDB/databaseAccounts/backup/action\",\"\ - Microsoft.DocumentDB/databaseAccounts/restore/action\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-12-07T19:47:14.9651560Z\"\ - ,\"updatedOn\":\"2018-12-07T19:52:21.9969834Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/db7b14f2-5adf-42da-9f96-f2ee17bab5cb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"db7b14f2-5adf-42da-9f96-f2ee17bab5cb\"\ - },{\"properties\":{\"roleName\":\"Contributor\",\"type\":\"BuiltInRole\",\"\ - description\":\"Lets you manage everything except access to resources.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*\"],\"notActions\"\ - :[\"Microsoft.Authorization/*/Delete\",\"Microsoft.Authorization/*/Write\"\ - ,\"Microsoft.Authorization/elevateAccess/Action\",\"Microsoft.Blueprint/blueprintAssignments/write\"\ - ,\"Microsoft.Blueprint/blueprintAssignments/delete\"],\"dataActions\":[],\"\ - notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\"\ - :\"2019-02-05T21:24:38.4580610Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"\ - },{\"properties\":{\"roleName\":\"Cosmos DB Account Reader Role\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Can read Azure Cosmos DB Accounts data\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.DocumentDB/*/read\",\"Microsoft.DocumentDB/databaseAccounts/readonlykeys/action\"\ - ,\"Microsoft.Insights/MetricDefinitions/read\",\"Microsoft.Insights/Metrics/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-10-30T17:53:54.6005577Z\",\"updatedOn\":\"2018-02-21T01:36:59.6186231Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fbdf93bf-df7d-467e-a4d2-9458aa1360c8\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fbdf93bf-df7d-467e-a4d2-9458aa1360c8\"\ - },{\"properties\":{\"roleName\":\"Cost Management Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Can view costs and manage cost configuration\ - \ (e.g. budgets, exports)\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Consumption/*\",\"Microsoft.CostManagement/*\",\"Microsoft.Billing/billingPeriods/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Advisor/configurations/read\",\"Microsoft.Advisor/recommendations/read\"\ - ,\"Microsoft.Management/managementGroups/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-14T16:09:22.8834827Z\"\ - ,\"updatedOn\":\"2019-06-25T21:25:06.8686379Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/434105ed-43f6-45c7-a02f-909b2ba83430\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"434105ed-43f6-45c7-a02f-909b2ba83430\"\ - },{\"properties\":{\"roleName\":\"Cost Management Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can view cost data and configuration (e.g. budgets, exports)\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Consumption/*/read\"\ - ,\"Microsoft.CostManagement/*/read\",\"Microsoft.Billing/billingPeriods/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Advisor/configurations/read\",\"Microsoft.Advisor/recommendations/read\"\ - ,\"Microsoft.Management/managementGroups/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-14T16:09:22.8834827Z\"\ - ,\"updatedOn\":\"2019-06-25T20:59:11.5762937Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/72fafb9e-0641-4937-9268-a91bfd8191a3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"72fafb9e-0641-4937-9268-a91bfd8191a3\"\ - },{\"properties\":{\"roleName\":\"Data Box Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage everything under Data Box Service except\ - \ giving access to others.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Databox/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-07-27T08:28:42.7140210Z\"\ - ,\"updatedOn\":\"2018-07-27T08:36:56.3827309Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/add466c9-e687-43fc-8d98-dfcf8d720be5\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"add466c9-e687-43fc-8d98-dfcf8d720be5\"\ - },{\"properties\":{\"roleName\":\"Data Box Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage Data Box Service except creating order\ - \ or editing order details and giving access to others.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Databox/*/read\",\"Microsoft.Databox/jobs/listsecrets/action\"\ - ,\"Microsoft.Databox/jobs/listcredentials/action\",\"Microsoft.Databox/locations/availableSkus/action\"\ - ,\"Microsoft.Databox/locations/validateInputs/action\",\"Microsoft.Databox/locations/regionConfiguration/action\"\ - ,\"Microsoft.Databox/locations/validateAddress/action\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-07-27T08:26:21.9284772Z\",\"updatedOn\":\"2020-01-24T05:39:52.6143537Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027\"\ - },{\"properties\":{\"roleName\":\"Data Factory Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Create and manage data factories, as well as child resources\ - \ within them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.DataFactory/dataFactories/*\"\ - ,\"Microsoft.DataFactory/factories/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.EventGrid/eventSubscriptions/write\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2020-02-14T19:49:21.5789216Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/673868aa-7521-48a0-acc6-0f60742d39f5\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"673868aa-7521-48a0-acc6-0f60742d39f5\"\ - },{\"properties\":{\"roleName\":\"Data Purger\",\"type\":\"BuiltInRole\",\"\ - description\":\"Can purge analytics data\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[\"Microsoft.Insights/components/*/read\",\"Microsoft.Insights/components/purge/action\"\ - ,\"Microsoft.OperationalInsights/workspaces/*/read\",\"Microsoft.OperationalInsights/workspaces/purge/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-04-30T22:39:49.6167700Z\",\"updatedOn\":\"2018-04-30T22:44:15.1171162Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/150f5e0c-0603-4f03-8c7f-cf70034c4e90\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"150f5e0c-0603-4f03-8c7f-cf70034c4e90\"\ - },{\"properties\":{\"roleName\":\"Data Lake Analytics Developer\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you submit, monitor, and manage your\ - \ own jobs but not create or delete Data Lake Analytics accounts.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.BigAnalytics/accounts/*\",\"Microsoft.DataLakeAnalytics/accounts/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[\"Microsoft.BigAnalytics/accounts/Delete\"\ - ,\"Microsoft.BigAnalytics/accounts/TakeOwnership/action\",\"Microsoft.BigAnalytics/accounts/Write\"\ - ,\"Microsoft.DataLakeAnalytics/accounts/Delete\",\"Microsoft.DataLakeAnalytics/accounts/TakeOwnership/action\"\ - ,\"Microsoft.DataLakeAnalytics/accounts/Write\",\"Microsoft.DataLakeAnalytics/accounts/dataLakeStoreAccounts/Write\"\ - ,\"Microsoft.DataLakeAnalytics/accounts/dataLakeStoreAccounts/Delete\",\"\ - Microsoft.DataLakeAnalytics/accounts/storageAccounts/Write\",\"Microsoft.DataLakeAnalytics/accounts/storageAccounts/Delete\"\ - ,\"Microsoft.DataLakeAnalytics/accounts/firewallRules/Write\",\"Microsoft.DataLakeAnalytics/accounts/firewallRules/Delete\"\ - ,\"Microsoft.DataLakeAnalytics/accounts/computePolicies/Write\",\"Microsoft.DataLakeAnalytics/accounts/computePolicies/Delete\"\ - ],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-10-20T00:33:29.3115234Z\"\ - ,\"updatedOn\":\"2017-08-18T00:00:17.0411642Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/47b7735b-770e-4598-a7da-8b91488b4c88\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"47b7735b-770e-4598-a7da-8b91488b4c88\"\ - },{\"properties\":{\"roleName\":\"DevTest Labs User\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you connect, start, restart, and shutdown your virtual\ - \ machines in your Azure DevTest Labs.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Compute/availabilitySets/read\"\ - ,\"Microsoft.Compute/virtualMachines/*/read\",\"Microsoft.Compute/virtualMachines/deallocate/action\"\ - ,\"Microsoft.Compute/virtualMachines/read\",\"Microsoft.Compute/virtualMachines/restart/action\"\ - ,\"Microsoft.Compute/virtualMachines/start/action\",\"Microsoft.DevTestLab/*/read\"\ - ,\"Microsoft.DevTestLab/labs/claimAnyVm/action\",\"Microsoft.DevTestLab/labs/createEnvironment/action\"\ - ,\"Microsoft.DevTestLab/labs/ensureCurrentUserProfile/action\",\"Microsoft.DevTestLab/labs/formulas/delete\"\ - ,\"Microsoft.DevTestLab/labs/formulas/read\",\"Microsoft.DevTestLab/labs/formulas/write\"\ - ,\"Microsoft.DevTestLab/labs/policySets/evaluatePolicies/action\",\"Microsoft.DevTestLab/labs/virtualMachines/claim/action\"\ - ,\"Microsoft.DevTestLab/labs/virtualmachines/listApplicableSchedules/action\"\ - ,\"Microsoft.DevTestLab/labs/virtualMachines/getRdpFileContents/action\",\"\ - Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\"Microsoft.Network/loadBalancers/inboundNatRules/join/action\"\ - ,\"Microsoft.Network/networkInterfaces/*/read\",\"Microsoft.Network/networkInterfaces/join/action\"\ - ,\"Microsoft.Network/networkInterfaces/read\",\"Microsoft.Network/networkInterfaces/write\"\ - ,\"Microsoft.Network/publicIPAddresses/*/read\",\"Microsoft.Network/publicIPAddresses/join/action\"\ - ,\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/subnets/join/action\"\ - ,\"Microsoft.Resources/deployments/operations/read\",\"Microsoft.Resources/deployments/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/listKeys/action\"\ - ],\"notActions\":[\"Microsoft.Compute/virtualMachines/vmSizes/read\"],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-06-08T21:52:45.0657582Z\"\ - ,\"updatedOn\":\"2019-05-08T11:27:34.8855476Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/76283e04-6283-4c54-8f91-bcf1374a3c64\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"76283e04-6283-4c54-8f91-bcf1374a3c64\"\ - },{\"properties\":{\"roleName\":\"DocumentDB Account Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage DocumentDB accounts, but\ - \ not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.DocumentDb/databaseAccounts/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-11-21T01:38:32.0948484Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5bd9cd88-fe45-4216-938b-f97437e15450\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5bd9cd88-fe45-4216-938b-f97437e15450\"\ - },{\"properties\":{\"roleName\":\"DNS Zone Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage DNS zones and record sets in Azure DNS,\ - \ but does not let you control who has access to them.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Network/dnsZones/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-10-15T23:33:25.9730842Z\",\"updatedOn\":\"2016-05-31T23:13:40.3710365Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/befefa01-2a29-4197-83a8-272ff33ce314\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"befefa01-2a29-4197-83a8-272ff33ce314\"\ - },{\"properties\":{\"roleName\":\"EventGrid EventSubscription Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you manage EventGrid event\ - \ subscription operations.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.EventGrid/eventSubscriptions/*\"\ - ,\"Microsoft.EventGrid/topicTypes/eventSubscriptions/read\",\"Microsoft.EventGrid/locations/eventSubscriptions/read\"\ - ,\"Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-10-08T23:27:28.3130743Z\",\"updatedOn\":\"2019-01-08T00:06:34.3543171Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/428e0ff0-5e57-4d9c-a221-2c70d0e0a443\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"428e0ff0-5e57-4d9c-a221-2c70d0e0a443\"\ - },{\"properties\":{\"roleName\":\"EventGrid EventSubscription Reader\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you read EventGrid event subscriptions.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.EventGrid/eventSubscriptions/read\",\"Microsoft.EventGrid/topicTypes/eventSubscriptions/read\"\ - ,\"Microsoft.EventGrid/locations/eventSubscriptions/read\",\"Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-10-09T17:29:28.1417894Z\"\ - ,\"updatedOn\":\"2019-01-08T00:05:40.2884365Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2414bbcf-6497-4faf-8c65-045460748405\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2414bbcf-6497-4faf-8c65-045460748405\"\ - },{\"properties\":{\"roleName\":\"Graph Owner\",\"type\":\"BuiltInRole\",\"\ - description\":\"Create and manage all aspects of the Enterprise Graph - Ontology,\ - \ Schema mapping, Conflation and Conversational AI and Ingestions\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EnterpriseKnowledgeGraph/services/conflation/read\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/conflation/write\",\"Microsoft.EnterpriseKnowledgeGraph/services/sourceschema/read\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/sourceschema/write\",\"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/read\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/write\",\"Microsoft.EnterpriseKnowledgeGraph/services/intentclassification/read\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/intentclassification/write\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/ingestion/read\",\"Microsoft.EnterpriseKnowledgeGraph/services/ingestion/write\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/ontology/read\",\"Microsoft.EnterpriseKnowledgeGraph/services/ontology/write\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/delete\",\"Microsoft.EnterpriseKnowledgeGraph/operations/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-02-23T21:07:22.5844236Z\",\"updatedOn\":\"2019-02-28T20:21:18.9318073Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b60367af-1334-4454-b71e-769d9a4f83d9\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b60367af-1334-4454-b71e-769d9a4f83d9\"\ - },{\"properties\":{\"roleName\":\"HDInsight Domain Services Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Can Read, Create, Modify and Delete\ - \ Domain Services related operations needed for HDInsight Enterprise Security\ - \ Package\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.AAD/*/read\",\"Microsoft.AAD/domainServices/*/read\",\"Microsoft.AAD/domainServices/oucontainer/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-09-12T22:42:51.7451109Z\",\"updatedOn\":\"2018-09-12T23:06:45.7641599Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8d8d5a11-05d3-4bda-a417-a08778121c7c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8d8d5a11-05d3-4bda-a417-a08778121c7c\"\ - },{\"properties\":{\"roleName\":\"Intelligent Systems Account Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you manage Intelligent Systems\ - \ accounts, but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.IntelligentSystems/accounts/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T20:32:00.9996357Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/03a6d094-3444-4b3d-88af-7477090a9e5e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"03a6d094-3444-4b3d-88af-7477090a9e5e\"\ - },{\"properties\":{\"roleName\":\"Key Vault Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage key vaults, but not access to them.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.KeyVault/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[\"Microsoft.KeyVault/locations/deletedVaults/purge/action\"\ - ,\"Microsoft.KeyVault/hsmPools/*\"],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-02-25T17:08:28.5184971Z\",\"updatedOn\":\"2019-02-05T21:24:49.5373075Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f25e0fa2-a7c8-4377-a976-54943a77a395\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f25e0fa2-a7c8-4377-a976-54943a77a395\"\ - },{\"properties\":{\"roleName\":\"Knowledge Consumer\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Knowledge Read permission to consume Enterprise Graph Knowledge\ - \ using entity search and graph query\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-02-23T21:23:31.4037552Z\",\"updatedOn\":\"2019-02-28T20:25:00.7369384Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ee361c5d-f7b5-4119-b4b6-892157c8f64c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ee361c5d-f7b5-4119-b4b6-892157c8f64c\"\ - },{\"properties\":{\"roleName\":\"Lab Creator\",\"type\":\"BuiltInRole\",\"\ - description\":\"Lets you create new labs under your Azure Lab Accounts.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.LabServices/labAccounts/*/read\",\"Microsoft.LabServices/labAccounts/createLab/action\"\ - ,\"Microsoft.LabServices/labAccounts/getPricingAndAvailability/action\",\"\ - Microsoft.LabServices/labAccounts/getRestrictionsAndUsage/action\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-01-18T23:38:58.1036141Z\",\"updatedOn\":\"2020-07-10T17:45:43.2289715Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b97fb8bc-a8b2-4522-a38b-dd33c7e65ead\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b97fb8bc-a8b2-4522-a38b-dd33c7e65ead\"\ - },{\"properties\":{\"roleName\":\"Log Analytics Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Log Analytics Reader can view and search all monitoring\ - \ data as well as and view monitoring settings, including viewing the configuration\ - \ of Azure diagnostics on all Azure resources.\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[\"*/read\",\"Microsoft.OperationalInsights/workspaces/analytics/query/action\"\ - ,\"Microsoft.OperationalInsights/workspaces/search/action\",\"Microsoft.Support/*\"\ - ],\"notActions\":[\"Microsoft.OperationalInsights/workspaces/sharedKeys/read\"\ - ],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-05-02T00:20:28.1449012Z\"\ - ,\"updatedOn\":\"2018-01-30T18:08:26.0438523Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/73c42c96-874c-492b-b04d-ab87d138a893\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"73c42c96-874c-492b-b04d-ab87d138a893\"\ - },{\"properties\":{\"roleName\":\"Log Analytics Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Log Analytics Contributor can read all monitoring\ - \ data and edit monitoring settings. Editing monitoring settings includes\ - \ adding the VM extension to VMs; reading storage account keys to be able\ - \ to configure collection of logs from Azure Storage; creating and configuring\ - \ Automation accounts; adding solutions; and configuring Azure diagnostics\ - \ on all Azure resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"*/read\",\"Microsoft.Automation/automationAccounts/*\",\"Microsoft.ClassicCompute/virtualMachines/extensions/*\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\"Microsoft.Compute/virtualMachines/extensions/*\"\ - ,\"Microsoft.HybridCompute/machines/extensions/write\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Insights/diagnosticSettings/*\",\"Microsoft.OperationalInsights/*\"\ - ,\"Microsoft.OperationsManagement/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourcegroups/deployments/*\",\"Microsoft.Storage/storageAccounts/listKeys/action\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-04-25T21:51:45.3174711Z\",\"updatedOn\":\"2020-03-26T22:57:55.3667830Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"92aaf0da-9dab-42b6-94a3-d43ce8d16293\"\ - },{\"properties\":{\"roleName\":\"Logic App Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you read, enable and disable logic app.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*/read\",\"Microsoft.Insights/metricAlerts/*/read\"\ - ,\"Microsoft.Insights/diagnosticSettings/*/read\",\"Microsoft.Insights/metricDefinitions/*/read\"\ - ,\"Microsoft.Logic/*/read\",\"Microsoft.Logic/workflows/disable/action\",\"\ - Microsoft.Logic/workflows/enable/action\",\"Microsoft.Logic/workflows/validate/action\"\ - ,\"Microsoft.Resources/deployments/operations/read\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Web/connectionGateways/*/read\",\"Microsoft.Web/connections/*/read\"\ - ,\"Microsoft.Web/customApis/*/read\",\"Microsoft.Web/serverFarms/read\"],\"\ - notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"\ - 2016-04-28T21:33:30.4656007Z\",\"updatedOn\":\"2019-10-15T04:28:56.3265986Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/515c2055-d9d4-4321-b1b9-bd0c9a0f79fe\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"515c2055-d9d4-4321-b1b9-bd0c9a0f79fe\"\ - },{\"properties\":{\"roleName\":\"Logic App Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage logic app, but not access to them.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\"Microsoft.ClassicStorage/storageAccounts/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/metricAlerts/*\"\ - ,\"Microsoft.Insights/diagnosticSettings/*\",\"Microsoft.Insights/logdefinitions/*\"\ - ,\"Microsoft.Insights/metricDefinitions/*\",\"Microsoft.Logic/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Storage/storageAccounts/listkeys/action\",\"Microsoft.Storage/storageAccounts/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Web/connectionGateways/*\",\"Microsoft.Web/connections/*\"\ - ,\"Microsoft.Web/customApis/*\",\"Microsoft.Web/serverFarms/join/action\"\ - ,\"Microsoft.Web/serverFarms/read\",\"Microsoft.Web/sites/functions/listSecrets/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2016-04-28T21:33:30.4656007Z\",\"updatedOn\":\"2019-10-15T04:31:27.7685427Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/87a39d53-fc1b-424a-814c-f7e04687dc9e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"87a39d53-fc1b-424a-814c-f7e04687dc9e\"\ - },{\"properties\":{\"roleName\":\"Managed Application Operator Role\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you read and perform actions on Managed\ - \ Application resources\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"*/read\",\"Microsoft.Solutions/applications/read\",\"Microsoft.Solutions/*/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-07-27T00:59:33.7988813Z\",\"updatedOn\":\"2019-02-20T01:09:55.1593079Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c7393b34-138c-406f-901b-d8cf2b17e6ae\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c7393b34-138c-406f-901b-d8cf2b17e6ae\"\ - },{\"properties\":{\"roleName\":\"Managed Applications Reader\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you read resources in a managed app and\ - \ request JIT access.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"*/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Solutions/jitRequests/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-09-06T00:33:58.3651522Z\",\"updatedOn\":\"2018-09-06T00:33:58.3651522Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b9331d33-8a36-4f8c-b097-4f54124fdb44\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b9331d33-8a36-4f8c-b097-4f54124fdb44\"\ - },{\"properties\":{\"roleName\":\"Managed Identity Operator\",\"type\":\"\ - BuiltInRole\",\"description\":\"Read and Assign User Assigned Identity\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ManagedIdentity/userAssignedIdentities/*/read\"\ - ,\"Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Support/*\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-12-14T19:52:04.3924594Z\"\ - ,\"updatedOn\":\"2017-12-14T22:16:00.1483256Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f1a07417-d97a-45cb-824c-7a7467783830\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f1a07417-d97a-45cb-824c-7a7467783830\"\ - },{\"properties\":{\"roleName\":\"Managed Identity Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Create, Read, Update, and Delete User Assigned\ - \ Identity\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.ManagedIdentity/userAssignedIdentities/read\",\"Microsoft.ManagedIdentity/userAssignedIdentities/write\"\ - ,\"Microsoft.ManagedIdentity/userAssignedIdentities/delete\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Support/*\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-12-14T19:53:42.8804692Z\"\ - ,\"updatedOn\":\"2019-06-20T21:51:27.0850433Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e40ec5ca-96e0-45a2-b4ff-59039f2c2b59\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e40ec5ca-96e0-45a2-b4ff-59039f2c2b59\"\ - },{\"properties\":{\"roleName\":\"Management Group Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Management Group Contributor Role\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Management/managementGroups/delete\"\ - ,\"Microsoft.Management/managementGroups/read\",\"Microsoft.Management/managementGroups/subscriptions/delete\"\ - ,\"Microsoft.Management/managementGroups/subscriptions/write\",\"Microsoft.Management/managementGroups/write\"\ - ,\"Microsoft.Management/managementGroups/subscriptions/read\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-06-22T00:28:29.0523964Z\"\ - ,\"updatedOn\":\"2020-07-06T18:13:34.9045672Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c\"\ - },{\"properties\":{\"roleName\":\"Management Group Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Management Group Reader Role\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[\"Microsoft.Management/managementGroups/read\"\ - ,\"Microsoft.Management/managementGroups/subscriptions/read\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-06-22T00:31:03.4295347Z\"\ - ,\"updatedOn\":\"2020-07-06T18:09:27.1441705Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ac63b705-f282-497d-ac71-919bf39d939d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ac63b705-f282-497d-ac71-919bf39d939d\"\ - },{\"properties\":{\"roleName\":\"Monitoring Metrics Publisher\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Enables publishing metrics against Azure\ - \ resources\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Insights/Register/Action\",\"Microsoft.Support/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Insights/Metrics/Write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-08-14T00:36:16.5610279Z\",\"\ - updatedOn\":\"2018-08-14T00:37:18.1465065Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3913510d-42f4-4e42-8a64-420c390055eb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3913510d-42f4-4e42-8a64-420c390055eb\"\ - },{\"properties\":{\"roleName\":\"Monitoring Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can read all monitoring data.\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[\"*/read\",\"Microsoft.OperationalInsights/workspaces/search/action\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-09-21T19:19:52.4939376Z\",\"updatedOn\":\"2018-01-30T18:08:27.2626250Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"43d0d8ad-25c7-4714-9337-8ba259a9fe05\"\ - },{\"properties\":{\"roleName\":\"Network Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage networks, but not access to them.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Network/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-06-02T00:18:27.3542698Z\",\"updatedOn\":\"2016-05-31T23:14:00.3326359Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4d97b98b-1d4f-4787-a291-c67834d212e7\"\ - },{\"properties\":{\"roleName\":\"Monitoring Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can read all monitoring data and update monitoring settings.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*/read\",\"\ - Microsoft.AlertsManagement/alerts/*\",\"Microsoft.AlertsManagement/alertsSummary/*\"\ - ,\"Microsoft.Insights/actiongroups/*\",\"Microsoft.Insights/activityLogAlerts/*\"\ - ,\"Microsoft.Insights/AlertRules/*\",\"Microsoft.Insights/components/*\",\"\ - Microsoft.Insights/DiagnosticSettings/*\",\"Microsoft.Insights/eventtypes/*\"\ - ,\"Microsoft.Insights/LogDefinitions/*\",\"Microsoft.Insights/metricalerts/*\"\ - ,\"Microsoft.Insights/MetricDefinitions/*\",\"Microsoft.Insights/Metrics/*\"\ - ,\"Microsoft.Insights/Register/Action\",\"Microsoft.Insights/scheduledqueryrules/*\"\ - ,\"Microsoft.Insights/webtests/*\",\"Microsoft.Insights/workbooks/*\",\"Microsoft.Insights/privateLinkScopes/*\"\ - ,\"Microsoft.Insights/privateLinkScopeOperationStatuses/*\",\"Microsoft.OperationalInsights/workspaces/write\"\ - ,\"Microsoft.OperationalInsights/workspaces/intelligencepacks/*\",\"Microsoft.OperationalInsights/workspaces/savedSearches/*\"\ - ,\"Microsoft.OperationalInsights/workspaces/search/action\",\"Microsoft.OperationalInsights/workspaces/sharedKeys/action\"\ - ,\"Microsoft.OperationalInsights/workspaces/storageinsightconfigs/*\",\"Microsoft.Support/*\"\ - ,\"Microsoft.WorkloadMonitor/monitors/*\",\"Microsoft.WorkloadMonitor/notificationSettings/*\"\ - ,\"Microsoft.AlertsManagement/smartDetectorAlertRules/*\",\"Microsoft.AlertsManagement/actionRules/*\"\ - ,\"Microsoft.AlertsManagement/smartGroups/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2016-09-21T19:21:08.4345976Z\"\ - ,\"updatedOn\":\"2020-04-19T16:03:16.7692305Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"749f88d5-cbae-40b8-bcfc-e573ddc772fa\"\ - },{\"properties\":{\"roleName\":\"New Relic APM Account Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage New Relic Application Performance\ - \ Management accounts and applications, but not access to them.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"NewRelic.APM/accounts/*\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T20:42:16.2033878Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d28c62d-5b37-4476-8438-e587778df237\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5d28c62d-5b37-4476-8438-e587778df237\"\ - },{\"properties\":{\"roleName\":\"Owner\",\"type\":\"BuiltInRole\",\"description\"\ - :\"Lets you manage everything, including access to resources.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T21:24:32.2101122Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\ - },{\"properties\":{\"roleName\":\"Reader\",\"type\":\"BuiltInRole\",\"description\"\ - :\"Lets you view everything, but not make any changes.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"*/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T21:24:35.7424745Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\ - },{\"properties\":{\"roleName\":\"Redis Cache Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage Redis caches, but not access to them.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Cache/register/action\",\"Microsoft.Cache/redis/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2020-07-16T00:20:31.8240854Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e0f68234-74aa-48ed-b826-c38b57376e17\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e0f68234-74aa-48ed-b826-c38b57376e17\"\ - },{\"properties\":{\"roleName\":\"Reader and Data Access\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you view everything but will not let you delete or\ - \ create a storage account or contained resource. It will also allow read/write\ - \ access to all data contained in a storage account via access to storage\ - \ account keys.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Storage/storageAccounts/listKeys/action\",\"Microsoft.Storage/storageAccounts/ListAccountSas/action\"\ - ,\"Microsoft.Storage/storageAccounts/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-27T23:20:46.1498906Z\"\ - ,\"updatedOn\":\"2019-04-04T23:41:26.1056261Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c12c1c16-33a1-487b-954d-41c89c60f349\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c12c1c16-33a1-487b-954d-41c89c60f349\"\ - },{\"properties\":{\"roleName\":\"Resource Policy Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Users with rights to create/modify resource\ - \ policy, create support ticket and read resources/hierarchy.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"*/read\",\"Microsoft.Authorization/policyassignments/*\"\ - ,\"Microsoft.Authorization/policydefinitions/*\",\"Microsoft.Authorization/policysetdefinitions/*\"\ - ,\"Microsoft.PolicyInsights/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-08-25T19:08:01.3861639Z\"\ - ,\"updatedOn\":\"2019-11-20T20:26:12.8811365Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"36243c78-bf99-498c-9df9-86d9f8d28608\"\ - },{\"properties\":{\"roleName\":\"Scheduler Job Collections Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you manage Scheduler job\ - \ collections, but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Scheduler/jobcollections/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T20:42:24.8360756Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/188a0f2f-5c9e-469b-ae67-2aa5ce574b94\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"188a0f2f-5c9e-469b-ae67-2aa5ce574b94\"\ - },{\"properties\":{\"roleName\":\"Search Service Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage Search services, but not access\ - \ to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Search/searchServices/*\",\"Microsoft.Support/*\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T20:42:21.8687229Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7ca78c08-252a-4471-8644-bb5ff32d4ba0\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7ca78c08-252a-4471-8644-bb5ff32d4ba0\"\ - },{\"properties\":{\"roleName\":\"Security Admin\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Security Admin Role\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Authorization/policyAssignments/*\"\ - ,\"Microsoft.Authorization/policyDefinitions/*\",\"Microsoft.Authorization/policySetDefinitions/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Management/managementGroups/read\"\ - ,\"Microsoft.operationalInsights/workspaces/*/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Security/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-05-03T07:51:23.0917487Z\",\"updatedOn\":\"2019-03-12T21:12:48.6350160Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fb1c8493-542b-48eb-b624-b4c8fea62acd\"\ - },{\"properties\":{\"roleName\":\"Security Manager (Legacy)\",\"type\":\"\ - BuiltInRole\",\"description\":\"This is a legacy role. Please use Security\ - \ Administrator instead\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.ClassicCompute/*/read\"\ - ,\"Microsoft.ClassicCompute/virtualMachines/*/write\",\"Microsoft.ClassicNetwork/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Security/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-06-22T17:45:15.8986455Z\"\ - ,\"updatedOn\":\"2018-03-08T18:18:48.6183620Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e3d13bf0-dd5a-482e-ba6b-9b8433878d10\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e3d13bf0-dd5a-482e-ba6b-9b8433878d10\"\ - },{\"properties\":{\"roleName\":\"Security Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Security Reader Role\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/read\"\ - ,\"Microsoft.operationalInsights/workspaces/*/read\",\"Microsoft.Resources/deployments/*/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Security/*/read\"\ - ,\"Microsoft.Support/*/read\",\"Microsoft.Management/managementGroups/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-05-03T07:48:49.0516559Z\",\"updatedOn\":\"2020-07-26T14:03:23.7325023Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/39bc4728-0917-49c7-9d2c-d95423bc2eb4\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"39bc4728-0917-49c7-9d2c-d95423bc2eb4\"\ - },{\"properties\":{\"roleName\":\"Spatial Anchors Account Contributor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you manage spatial anchors in\ - \ your account, but not delete them\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/SpatialAnchorsAccounts/create/action\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/write\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-12-21T17:57:41.1420864Z\",\"updatedOn\":\"2019-02-13T06:13:39.8686435Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827\"\ - },{\"properties\":{\"roleName\":\"Site Recovery Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage Site Recovery service except\ - \ vault creation and role assignment\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.RecoveryServices/locations/allocatedStamp/read\"\ - ,\"Microsoft.RecoveryServices/locations/allocateStamp/action\",\"Microsoft.RecoveryServices/Vaults/certificates/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/extendedInformation/*\",\"Microsoft.RecoveryServices/Vaults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/*\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationAlertSettings/*\",\"Microsoft.RecoveryServices/vaults/replicationEvents/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/*\",\"Microsoft.RecoveryServices/vaults/replicationJobs/*\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationPolicies/*\",\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/storageConfig/*\",\"Microsoft.RecoveryServices/Vaults/tokenInfo/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.RecoveryServices/Vaults/vaultTokens/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/*\",\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationOperationStatus/read\",\"\ - Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-05-19T13:46:17.4592776Z\",\"updatedOn\":\"2019-11-07T06:13:49.0760858Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6670b86e-a3f7-4917-ac9b-5d6ab1be4567\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6670b86e-a3f7-4917-ac9b-5d6ab1be4567\"\ - },{\"properties\":{\"roleName\":\"Site Recovery Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you failover and failback but not perform other Site\ - \ Recovery management operations\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.RecoveryServices/locations/allocatedStamp/read\"\ - ,\"Microsoft.RecoveryServices/locations/allocateStamp/action\",\"Microsoft.RecoveryServices/Vaults/extendedInformation/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/refreshContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\"Microsoft.RecoveryServices/vaults/replicationAlertSettings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\"Microsoft.RecoveryServices/vaults/replicationFabrics/checkConsistency/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/read\",\"Microsoft.RecoveryServices/vaults/replicationFabrics/reassociateGateway/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/renewcertificate/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/replicationNetworkMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectableItems/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/applyRecoveryPoint/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/failoverCommit/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/plannedFailover/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/recoveryPoints/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/repairReplication/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/reProtect/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/switchprotection/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/testFailover/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/testFailoverCleanup/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/unplannedFailover/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/updateMobilityService/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/refreshProvider/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/replicationStorageClassificationMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationvCenters/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationJobs/*\",\"Microsoft.RecoveryServices/vaults/replicationPolicies/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/failoverCommit/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/plannedFailover/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/read\",\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/reProtect/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/testFailover/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/testFailoverCleanup/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/unplannedFailover/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/*\",\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/storageConfig/read\",\"Microsoft.RecoveryServices/Vaults/tokenInfo/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.RecoveryServices/Vaults/vaultTokens/read\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-05-19T13:47:50.1341148Z\",\"updatedOn\":\"2019-08-28T12:00:57.4472826Z\"\ - ,\"createdBy\":null,\"updatedBy\":\"\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/494ae006-db33-4328-bf46-533a6560a3ca\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"494ae006-db33-4328-bf46-533a6560a3ca\"\ - },{\"properties\":{\"roleName\":\"Spatial Anchors Account Reader\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you locate and read properties of\ - \ spatial anchors in your account\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-12-21T17:57:42.9271004Z\",\"updatedOn\":\"2019-02-13T06:16:15.3170663Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d51204f-eb77-4b1c-b86a-2ec626c49413\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5d51204f-eb77-4b1c-b86a-2ec626c49413\"\ - },{\"properties\":{\"roleName\":\"Site Recovery Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you view Site Recovery status but not perform other\ - \ management operations\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.RecoveryServices/locations/allocatedStamp/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/refreshContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\"Microsoft.RecoveryServices/vaults/replicationAlertSettings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\"Microsoft.RecoveryServices/vaults/replicationFabrics/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/replicationNetworkMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectableItems/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/recoveryPoints/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/replicationStorageClassificationMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationvCenters/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationJobs/read\",\"Microsoft.RecoveryServices/vaults/replicationPolicies/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/read\",\"Microsoft.RecoveryServices/Vaults/storageConfig/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\"Microsoft.RecoveryServices/Vaults/usages/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-05-19T13:35:40.0093634Z\",\"updatedOn\":\"2017-05-26T19:54:51.3933250Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/dbaa88c4-0c30-4179-9fb3-46319faa6149\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"dbaa88c4-0c30-4179-9fb3-46319faa6149\"\ - },{\"properties\":{\"roleName\":\"Spatial Anchors Account Owner\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage spatial anchors in your\ - \ account, including deleting them\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/SpatialAnchorsAccounts/create/action\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/delete\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-12-21T17:57:43.5489832Z\",\"\ - updatedOn\":\"2019-02-13T06:15:31.8572222Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/70bbe301-9835-447d-afdd-19eb3167307c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"70bbe301-9835-447d-afdd-19eb3167307c\"\ - },{\"properties\":{\"roleName\":\"SQL Managed Instance Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage SQL Managed Instances and\ - \ required network configuration, but can\u2019t give access to others.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Network/networkSecurityGroups/*\",\"Microsoft.Network/routeTables/*\"\ - ,\"Microsoft.Sql/locations/*/read\",\"Microsoft.Sql/locations/instanceFailoverGroups/*\"\ - ,\"Microsoft.Sql/managedInstances/*\",\"Microsoft.Support/*\",\"Microsoft.Network/virtualNetworks/subnets/*\"\ - ,\"Microsoft.Network/virtualNetworks/*\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/metrics/read\",\"\ - Microsoft.Insights/metricDefinitions/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-12-10T22:57:14.2937983Z\"\ - ,\"updatedOn\":\"2020-06-24T22:56:31.0576055Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4939a1f6-9ae0-4e48-a1e0-f2cbe897382d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4939a1f6-9ae0-4e48-a1e0-f2cbe897382d\"\ - },{\"properties\":{\"roleName\":\"SQL DB Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage SQL databases, but not access to them.\ - \ Also, you can't manage their security-related policies or their parent SQL\ - \ servers.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Sql/locations/*/read\",\"Microsoft.Sql/servers/databases/*\"\ - ,\"Microsoft.Sql/servers/read\",\"Microsoft.Support/*\",\"Microsoft.Insights/metrics/read\"\ - ,\"Microsoft.Insights/metricDefinitions/read\"],\"notActions\":[\"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\"\ - Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Sql/servers/databases/auditingPolicies/*\",\"Microsoft.Sql/servers/databases/auditingSettings/*\"\ - ,\"Microsoft.Sql/servers/databases/auditRecords/read\",\"Microsoft.Sql/servers/databases/connectionPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/extendedAuditingSettings/*\",\"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\"Microsoft.Sql/servers/databases/securityMetrics/*\"\ - ,\"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\"\ - ,\"Microsoft.Sql/servers/vulnerabilityAssessments/*\"],\"dataActions\":[],\"\ - notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\"\ - :\"2019-02-28T22:44:35.8649670Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9b7fa17d-e63e-47b0-bb0a-15c516ac86ec\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9b7fa17d-e63e-47b0-bb0a-15c516ac86ec\"\ - },{\"properties\":{\"roleName\":\"SQL Security Manager\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage the security-related policies of SQL servers\ - \ and databases, but not access to them.\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\"\ - Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/databases/transparentDataEncryption/*\"\ - ,\"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\"Microsoft.Sql/servers/auditingPolicies/*\"\ - ,\"Microsoft.Sql/servers/auditingSettings/*\",\"Microsoft.Sql/servers/extendedAuditingSettings/read\"\ - ,\"Microsoft.Sql/servers/databases/auditingPolicies/*\",\"Microsoft.Sql/servers/databases/auditingSettings/*\"\ - ,\"Microsoft.Sql/servers/databases/auditRecords/read\",\"Microsoft.Sql/servers/databases/connectionPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/extendedAuditingSettings/read\",\"Microsoft.Sql/servers/databases/read\"\ - ,\"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\"Microsoft.Sql/servers/databases/schemas/read\"\ - ,\"Microsoft.Sql/servers/databases/schemas/tables/columns/read\",\"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/schemas/tables/read\",\"Microsoft.Sql/servers/databases/securityAlertPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/securityMetrics/*\",\"Microsoft.Sql/servers/databases/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/transparentDataEncryption/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\"\ - ,\"Microsoft.Sql/servers/firewallRules/*\",\"Microsoft.Sql/servers/read\"\ - ,\"Microsoft.Sql/servers/securityAlertPolicies/*\",\"Microsoft.Sql/servers/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-06-16T18:44:40.4607572Z\",\"updatedOn\":\"2019-08-08T22:58:22.2532171Z\"\ - ,\"createdBy\":null,\"updatedBy\":\"yaiyun\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"056cd41c-7e88-42e1-933e-88ba6a50c9c3\"\ - },{\"properties\":{\"roleName\":\"Storage Account Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage storage accounts, including\ - \ accessing storage account keys which provide full access to storage account\ - \ data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/diagnosticSettings/*\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-06-02T00:18:27.3542698Z\",\"updatedOn\":\"2019-05-29T20:56:33.9582501Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"17d1049b-9a84-46fb-8f53-869881c3d3ab\"\ - },{\"properties\":{\"roleName\":\"SQL Server Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage SQL servers and databases, but not access\ - \ to them, and not their security -related policies.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Sql/locations/*/read\",\"Microsoft.Sql/servers/*\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Insights/metrics/read\",\"Microsoft.Insights/metricDefinitions/read\"\ - ],\"notActions\":[\"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\"\ - Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Sql/servers/auditingPolicies/*\",\"Microsoft.Sql/servers/auditingSettings/*\"\ - ,\"Microsoft.Sql/servers/databases/auditingPolicies/*\",\"Microsoft.Sql/servers/databases/auditingSettings/*\"\ - ,\"Microsoft.Sql/servers/databases/auditRecords/read\",\"Microsoft.Sql/servers/databases/connectionPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/extendedAuditingSettings/*\",\"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\"Microsoft.Sql/servers/databases/securityMetrics/*\"\ - ,\"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\"\ - ,\"Microsoft.Sql/servers/extendedAuditingSettings/*\",\"Microsoft.Sql/servers/securityAlertPolicies/*\"\ - ,\"Microsoft.Sql/servers/vulnerabilityAssessments/*\"],\"dataActions\":[],\"\ - notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\"\ - :\"2019-02-28T22:44:36.5466043Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\"\ - },{\"properties\":{\"roleName\":\"Storage Account Key Operator Service Role\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Storage Account Key Operators\ - \ are allowed to list and regenerate keys on Storage Accounts\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/listkeys/action\"\ - ,\"Microsoft.Storage/storageAccounts/regeneratekey/action\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-04-13T18:26:11.5770570Z\"\ - ,\"updatedOn\":\"2017-04-13T20:57:14.5990198Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/81a9662b-bebf-436f-a333-f67b29880f12\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"81a9662b-bebf-436f-a333-f67b29880f12\"\ - },{\"properties\":{\"roleName\":\"Storage Blob Data Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for read, write and delete access\ - \ to Azure Storage blob containers and data\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"\ - updatedOn\":\"2020-03-30T22:49:07.8669420Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ba92f5b4-2d11-453d-a403-e96b0029c9fe\"\ - },{\"properties\":{\"roleName\":\"Storage Blob Data Owner\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Allows for full access to Azure Storage blob containers\ - \ and data, including assigning POSIX access control.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/*\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-12-04T07:02:58.2775257Z\",\"\ - updatedOn\":\"2019-07-16T21:30:33.7002563Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b7e6dc6d-f1e8-4753-8033-0f276bb0955b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b7e6dc6d-f1e8-4753-8033-0f276bb0955b\"\ - },{\"properties\":{\"roleName\":\"Storage Blob Data Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Allows for read access to Azure Storage blob containers\ - \ and data\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"\ - updatedOn\":\"2019-07-15T22:01:25.5409721Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\"\ - },{\"properties\":{\"roleName\":\"Storage Queue Data Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for read, write, and delete access\ - \ to Azure Storage queues and queue messages\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/delete\"\ - ,\"Microsoft.Storage/storageAccounts/queueServices/queues/read\",\"Microsoft.Storage/storageAccounts/queueServices/queues/write\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete\"\ - ,\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\"\ - ,\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"\ - updatedOn\":\"2019-03-05T21:58:02.7367128Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/974c5e8b-45b9-4653-ba55-5f855dd0fb88\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"974c5e8b-45b9-4653-ba55-5f855dd0fb88\"\ - },{\"properties\":{\"roleName\":\"Storage Queue Data Message Processor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Allows for peek, receive, and delete\ - \ access to Azure Storage queue messages\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\"\ - ,\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-01-28T22:27:04.8947111Z\",\"\ - updatedOn\":\"2019-03-05T22:05:46.1259125Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8a0f0c08-91a1-4084-bc3d-661d67233fed\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8a0f0c08-91a1-4084-bc3d-661d67233fed\"\ - },{\"properties\":{\"roleName\":\"Storage Queue Data Message Sender\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for sending of Azure Storage queue\ - \ messages\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"\ - notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-01-28T22:28:34.7459724Z\",\"\ - updatedOn\":\"2019-03-05T22:11:49.6383892Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\"\ - },{\"properties\":{\"roleName\":\"Storage Queue Data Reader\",\"type\":\"\ - BuiltInRole\",\"description\":\"Allows for read access to Azure Storage queues\ - \ and queue messages\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Storage/storageAccounts/queueServices/queues/read\"],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"\ - updatedOn\":\"2019-03-05T22:17:32.1779262Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/19e7f393-937e-4f77-808e-94535e297925\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"19e7f393-937e-4f77-808e-94535e297925\"\ - },{\"properties\":{\"roleName\":\"Support Request Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you create and manage Support requests\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-06-22T22:25:37.8053068Z\",\"updatedOn\":\"2017-06-23T01:06:24.2399631Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\"\ - },{\"properties\":{\"roleName\":\"Traffic Manager Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage Traffic Manager profiles,\ - \ but does not let you control who has access to them.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Network/trafficManagerProfiles/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-10-15T23:33:25.9730842Z\",\"updatedOn\":\"2016-05-31T23:13:44.1458854Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\"\ - },{\"properties\":{\"roleName\":\"Virtual Machine Administrator Login\",\"\ - type\":\"BuiltInRole\",\"description\":\"View Virtual Machines in the portal\ - \ and login as administrator\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.Network/loadBalancers/read\",\"Microsoft.Network/networkInterfaces/read\"\ - ,\"Microsoft.Compute/virtualMachines/*/read\"],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.Compute/virtualMachines/login/action\",\"Microsoft.Compute/virtualMachines/loginAsAdmin/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-02-09T18:36:13.3315744Z\",\"\ - updatedOn\":\"2018-05-09T22:17:57.0514548Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/1c0163c0-47e6-4577-8991-ea5c82e286e4\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"1c0163c0-47e6-4577-8991-ea5c82e286e4\"\ - },{\"properties\":{\"roleName\":\"User Access Administrator\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage user access to Azure resources.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*/read\",\"\ - Microsoft.Authorization/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T21:24:12.6807454Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\"\ - },{\"properties\":{\"roleName\":\"Virtual Machine User Login\",\"type\":\"\ - BuiltInRole\",\"description\":\"View Virtual Machines in the portal and login\ - \ as a regular user.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.Network/loadBalancers/read\",\"Microsoft.Network/networkInterfaces/read\"\ - ,\"Microsoft.Compute/virtualMachines/*/read\"],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.Compute/virtualMachines/login/action\"],\"notDataActions\":[]}],\"\ - createdOn\":\"2018-02-09T18:36:13.3315744Z\",\"updatedOn\":\"2018-05-09T22:18:52.2780979Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fb879df8-f326-4884-b1cf-06f3ad86be52\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fb879df8-f326-4884-b1cf-06f3ad86be52\"\ - },{\"properties\":{\"roleName\":\"Virtual Machine Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage virtual machines, but not\ - \ access to them, and not the virtual network or storage account they're connected\ - \ to.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Compute/availabilitySets/*\",\"Microsoft.Compute/locations/*\"\ - ,\"Microsoft.Compute/virtualMachines/*\",\"Microsoft.Compute/virtualMachineScaleSets/*\"\ - ,\"Microsoft.Compute/disks/write\",\"Microsoft.Compute/disks/read\",\"Microsoft.Compute/disks/delete\"\ - ,\"Microsoft.DevTestLab/schedules/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Network/applicationGateways/backendAddressPools/join/action\"\ - ,\"Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\"Microsoft.Network/loadBalancers/inboundNatPools/join/action\"\ - ,\"Microsoft.Network/loadBalancers/inboundNatRules/join/action\",\"Microsoft.Network/loadBalancers/probes/join/action\"\ - ,\"Microsoft.Network/loadBalancers/read\",\"Microsoft.Network/locations/*\"\ - ,\"Microsoft.Network/networkInterfaces/*\",\"Microsoft.Network/networkSecurityGroups/join/action\"\ - ,\"Microsoft.Network/networkSecurityGroups/read\",\"Microsoft.Network/publicIPAddresses/join/action\"\ - ,\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.RecoveryServices/locations/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/*/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/usages/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/write\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.SqlVirtualMachine/*\",\"Microsoft.Storage/storageAccounts/listKeys/action\"\ - ,\"Microsoft.Storage/storageAccounts/read\",\"Microsoft.Support/*\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-06-02T00:18:27.3542698Z\"\ - ,\"updatedOn\":\"2020-02-03T19:38:21.2170228Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9980e02c-c2be-4d73-94e8-173b1dc7cf3c\"\ - },{\"properties\":{\"roleName\":\"Web Plan Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage the web plans for websites, but not access\ - \ to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Web/serverFarms/*\",\"Microsoft.Web/hostingEnvironments/Join/Action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-03-26T18:17:34.5018645Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\"\ - },{\"properties\":{\"roleName\":\"Website Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage websites (not web plans), but not access\ - \ to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/components/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Web/certificates/*\",\"Microsoft.Web/listSitesAssignedToHostName/read\"\ - ,\"Microsoft.Web/serverFarms/join/action\",\"Microsoft.Web/serverFarms/read\"\ - ,\"Microsoft.Web/sites/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-05-12T23:10:23.6193952Z\",\"updatedOn\":\"2019-02-05T21:24:46.9407288Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/de139f84-1756-47ae-9be6-808fbbe84772\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"de139f84-1756-47ae-9be6-808fbbe84772\"\ - },{\"properties\":{\"roleName\":\"Azure Service Bus Data Owner\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for full access to Azure Service\ - \ Bus resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.ServiceBus/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.ServiceBus/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-04-16T21:33:36.7445745Z\",\"\ - updatedOn\":\"2019-08-21T22:47:11.3982905Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/090c5cfd-751d-490a-894a-3ce6f1109419\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"090c5cfd-751d-490a-894a-3ce6f1109419\"\ - },{\"properties\":{\"roleName\":\"Azure Event Hubs Data Owner\",\"type\":\"\ - BuiltInRole\",\"description\":\"Allows for full access to Azure Event Hubs\ - \ resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.EventHub/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.EventHub/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-04-16T21:34:29.8656362Z\",\"\ - updatedOn\":\"2019-08-21T22:58:57.7584645Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f526a384-b230-433a-b45c-95f59c4a2dec\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f526a384-b230-433a-b45c-95f59c4a2dec\"\ - },{\"properties\":{\"roleName\":\"Attestation Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can read write or delete the attestation provider instance\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Attestation/attestationProviders/attestation/read\"\ - ,\"Microsoft.Attestation/attestationProviders/attestation/write\",\"Microsoft.Attestation/attestationProviders/attestation/delete\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-04-19T00:24:09.3354177Z\",\"updatedOn\":\"2019-05-10T17:59:06.3448436Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\"\ - },{\"properties\":{\"roleName\":\"HDInsight Cluster Operator\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you read and modify HDInsight cluster\ - \ configurations.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.HDInsight/*/read\",\"Microsoft.HDInsight/clusters/getGatewaySettings/action\"\ - ,\"Microsoft.HDInsight/clusters/updateGatewaySettings/action\",\"Microsoft.HDInsight/clusters/configurations/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/operations/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Authorization/*/read\",\"\ - Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-04-20T00:03:01.7110732Z\",\"updatedOn\":\"2019-04-28T02:34:17.4679314Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/61ed4efc-fab3-44fd-b111-e24485cc132a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"61ed4efc-fab3-44fd-b111-e24485cc132a\"\ - },{\"properties\":{\"roleName\":\"Cosmos DB Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage Azure Cosmos DB accounts, but not access\ - \ data in them. Prevents access to account keys and connection strings.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DocumentDb/databaseAccounts/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Authorization/*/read\",\"\ - Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"\ - ],\"notActions\":[\"Microsoft.DocumentDB/databaseAccounts/readonlyKeys/*\"\ - ,\"Microsoft.DocumentDB/databaseAccounts/regenerateKey/*\",\"Microsoft.DocumentDB/databaseAccounts/listKeys/*\"\ - ,\"Microsoft.DocumentDB/databaseAccounts/listConnectionStrings/*\"],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2019-04-26T17:01:17.0169383Z\"\ - ,\"updatedOn\":\"2019-11-21T01:34:13.3746345Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"230815da-be43-4aae-9cb4-875f7bd000aa\"\ - },{\"properties\":{\"roleName\":\"Hybrid Server Resource Administrator\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can read, write, delete, and re-onboard\ - \ Hybrid servers to the Hybrid Resource Provider.\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[\"Microsoft.HybridCompute/machines/*\"\ - ,\"Microsoft.HybridCompute/*/read\"],\"notActions\":[],\"dataActions\":[],\"\ - notDataActions\":[]}],\"createdOn\":\"2019-04-29T21:39:32.3132923Z\",\"updatedOn\"\ - :\"2019-05-06T20:08:25.3180258Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/48b40c6e-82e0-4eb3-90d5-19e40f49b624\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"48b40c6e-82e0-4eb3-90d5-19e40f49b624\"\ - },{\"properties\":{\"roleName\":\"Hybrid Server Onboarding\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can onboard new Hybrid servers to the Hybrid Resource Provider.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.HybridCompute/machines/read\"\ - ,\"Microsoft.HybridCompute/machines/write\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2019-04-29T22:36:28.1873756Z\"\ - ,\"updatedOn\":\"2019-05-06T20:09:17.9364269Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\"\ - },{\"properties\":{\"roleName\":\"Azure Event Hubs Data Receiver\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows receive access to Azure Event Hubs\ - \ resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.EventHub/*/eventhubs/consumergroups/read\"],\"notActions\":[],\"\ - dataActions\":[\"Microsoft.EventHub/*/receive/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-05-10T06:25:21.1056666Z\",\"updatedOn\":\"2019-08-21T23:00:32.6225396Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a638d3c7-ab3a-418d-83e6-5f17a39d4fde\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a638d3c7-ab3a-418d-83e6-5f17a39d4fde\"\ - },{\"properties\":{\"roleName\":\"Azure Event Hubs Data Sender\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows send access to Azure Event Hubs\ - \ resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.EventHub/*/eventhubs/read\"],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.EventHub/*/send/action\"],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-05-10T06:26:12.4673714Z\",\"updatedOn\":\"2019-08-21T23:02:26.6155679Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2b629674-e913-4c01-ae53-ef4638d8f975\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2b629674-e913-4c01-ae53-ef4638d8f975\"\ - },{\"properties\":{\"roleName\":\"Azure Service Bus Data Receiver\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for receive access to Azure Service\ - \ Bus resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.ServiceBus/*/queues/read\",\"Microsoft.ServiceBus/*/topics/read\"\ - ,\"Microsoft.ServiceBus/*/topics/subscriptions/read\"],\"notActions\":[],\"\ - dataActions\":[\"Microsoft.ServiceBus/*/receive/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-05-10T06:43:01.6343849Z\",\"updatedOn\":\"2019-08-21T22:55:24.3423558Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\"\ - },{\"properties\":{\"roleName\":\"Azure Service Bus Data Sender\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for send access to Azure Service\ - \ Bus resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.ServiceBus/*/queues/read\",\"Microsoft.ServiceBus/*/topics/read\"\ - ,\"Microsoft.ServiceBus/*/topics/subscriptions/read\"],\"notActions\":[],\"\ - dataActions\":[\"Microsoft.ServiceBus/*/send/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-05-10T06:43:46.7046934Z\",\"updatedOn\":\"2019-08-21T22:57:12.2555683Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\"\ - },{\"properties\":{\"roleName\":\"Storage File Data SMB Share Reader\",\"\ - type\":\"BuiltInRole\",\"description\":\"Allows for read access to Azure File\ - \ Share over SMB\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-07-01T20:19:31.8620471Z\",\"\ - updatedOn\":\"2019-08-07T01:00:41.9223409Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/aba4ae5f-2193-4029-9191-0cb91df5e314\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"aba4ae5f-2193-4029-9191-0cb91df5e314\"\ - },{\"properties\":{\"roleName\":\"Storage File Data SMB Share Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Allows for read, write, and delete\ - \ access in Azure Storage file shares over SMB\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"\ - Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\",\"\ - Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\",\"\ - Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\"],\"\ - notDataActions\":[]}],\"createdOn\":\"2019-07-01T20:54:35.4834310Z\",\"updatedOn\"\ - :\"2019-08-07T01:05:24.4309872Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\"\ - },{\"properties\":{\"roleName\":\"Private DNS Zone Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage private DNS zone resources,\ - \ but not the virtual networks they are linked to.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Network/privateDnsZones/*\",\"Microsoft.Network/privateDnsOperationResults/*\"\ - ,\"Microsoft.Network/privateDnsOperationStatuses/*\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.Network/virtualNetworks/join/action\",\"Microsoft.Authorization/*/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-07-10T19:31:15.5645518Z\",\"updatedOn\":\"2019-07-11T21:12:01.7260648Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b12aa53e-6015-4669-85d0-8515ebb3ae7f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b12aa53e-6015-4669-85d0-8515ebb3ae7f\"\ - },{\"properties\":{\"roleName\":\"Storage Blob Delegator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Allows for generation of a user delegation key which can\ - \ be used to sign SAS tokens\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-07-23T00:51:16.3376761Z\",\"updatedOn\":\"2019-07-23T01:14:31.8778475Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/db58b8e5-c6ad-4a2a-8342-4190687cbf4a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"db58b8e5-c6ad-4a2a-8342-4190687cbf4a\"\ - },{\"properties\":{\"roleName\":\"Desktop Virtualization User\",\"type\":\"\ - BuiltInRole\",\"description\":\"Allows user to use the applications in an\ - \ application group.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[],\"notActions\":[],\"dataActions\":[\"Microsoft.DesktopVirtualization/applicationGroups/useApplications/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-08-07T00:29:03.8727621Z\",\"\ - updatedOn\":\"2019-08-07T00:29:03.8727621Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\"\ - },{\"properties\":{\"roleName\":\"Storage File Data SMB Share Elevated Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Allows for read, write, delete\ - \ and modify NTFS permission access in Azure Storage file shares over SMB\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\"\ - ,\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\"\ - ,\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\"\ - ,\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-08-07T01:35:36.9935457Z\",\"\ - updatedOn\":\"2019-08-07T01:35:36.9935457Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a7264617-510b-434b-a828-9731dc254ea7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a7264617-510b-434b-a828-9731dc254ea7\"\ - },{\"properties\":{\"roleName\":\"Blueprint Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can manage blueprint definitions, but not assign them.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Blueprint/blueprints/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Support/*\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-08-14T21:55:16.9683949Z\"\ - ,\"updatedOn\":\"2019-08-17T00:10:55.7494677Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/41077137-e803-4205-871c-5a86e6a753b4\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"41077137-e803-4205-871c-5a86e6a753b4\"\ - },{\"properties\":{\"roleName\":\"Blueprint Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can assign existing published blueprints, but cannot create\ - \ new blueprints. NOTE: this only works if the assignment is done with a user-assigned\ - \ managed identity.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Blueprint/blueprintAssignments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-08-14T21:56:48.7897875Z\",\"updatedOn\":\"2019-08-17T00:06:02.6509737Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/437d2ced-4a38-4302-8479-ed2bcb43d090\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"437d2ced-4a38-4302-8479-ed2bcb43d090\"\ - },{\"properties\":{\"roleName\":\"Azure Sentinel Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Azure Sentinel Contributor\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.SecurityInsights/*\",\"\ - Microsoft.OperationalInsights/workspaces/analytics/query/action\",\"Microsoft.OperationalInsights/workspaces/*/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/savedSearches/*\",\"Microsoft.OperationsManagement/solutions/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/query/read\",\"Microsoft.OperationalInsights/workspaces/query/*/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/dataSources/read\",\"Microsoft.Insights/workbooks/*\"\ - ,\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-08-28T16:39:03.8725173Z\",\"updatedOn\":\"2020-03-11T15:20:51.6768533Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ab8e14d6-4a74-4a29-9ba8-549422addade\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ab8e14d6-4a74-4a29-9ba8-549422addade\"\ - },{\"properties\":{\"roleName\":\"Azure Sentinel Responder\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Azure Sentinel Responder\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.SecurityInsights/*/read\",\"\ - Microsoft.SecurityInsights/dataConnectorsCheckRequirements/action\",\"Microsoft.SecurityInsights/cases/*\"\ - ,\"Microsoft.SecurityInsights/incidents/*\",\"Microsoft.OperationalInsights/workspaces/analytics/query/action\"\ - ,\"Microsoft.OperationalInsights/workspaces/*/read\",\"Microsoft.OperationalInsights/workspaces/dataSources/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/savedSearches/read\",\"Microsoft.OperationsManagement/solutions/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/query/read\",\"Microsoft.OperationalInsights/workspaces/query/*/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/dataSources/read\",\"Microsoft.Insights/workbooks/read\"\ - ,\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-08-28T16:54:07.6467264Z\",\"updatedOn\":\"2020-04-02T08:42:10.2864085Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3e150937-b8fe-4cfb-8069-0eaf05ecd056\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3e150937-b8fe-4cfb-8069-0eaf05ecd056\"\ - },{\"properties\":{\"roleName\":\"Azure Sentinel Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Azure Sentinel Reader\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[\"Microsoft.SecurityInsights/*/read\",\"Microsoft.SecurityInsights/dataConnectorsCheckRequirements/action\"\ - ,\"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\"Microsoft.OperationalInsights/workspaces/*/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/LinkedServices/read\",\"Microsoft.OperationalInsights/workspaces/savedSearches/read\"\ - ,\"Microsoft.OperationsManagement/solutions/read\",\"Microsoft.OperationalInsights/workspaces/query/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/query/*/read\",\"Microsoft.OperationalInsights/workspaces/dataSources/read\"\ - ,\"Microsoft.Insights/workbooks/read\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-08-28T16:58:50.1132117Z\",\"updatedOn\":\"2020-04-02T08:34:51.7222706Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8d289c81-5878-46d4-8554-54e1e3d8b5cb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8d289c81-5878-46d4-8554-54e1e3d8b5cb\"\ - },{\"properties\":{\"roleName\":\"Workbook Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can read workbooks.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"microsoft.insights/workbooks/read\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-08-28T20:56:17.6808140Z\"\ - ,\"updatedOn\":\"2019-08-28T21:43:05.0202124Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b279062a-9be3-42a0-92ae-8b3cf002ec4d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b279062a-9be3-42a0-92ae-8b3cf002ec4d\"\ - },{\"properties\":{\"roleName\":\"Workbook Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can save shared workbooks.\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Insights/workbooks/write\",\"\ - Microsoft.Insights/workbooks/delete\",\"Microsoft.Insights/workbooks/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-08-28T20:59:42.4820277Z\",\"updatedOn\":\"2020-01-22T00:05:20.9387210Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e8ddcd69-c73f-4f9f-9844-4100522f16ad\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e8ddcd69-c73f-4f9f-9844-4100522f16ad\"\ - },{\"properties\":{\"roleName\":\"Policy Insights Data Writer (Preview)\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Allows read access to resource\ - \ policies and write access to resource component policy events.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/policyassignments/read\"\ - ,\"Microsoft.Authorization/policydefinitions/read\",\"Microsoft.Authorization/policysetdefinitions/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.PolicyInsights/checkDataPolicyCompliance/action\"\ - ,\"Microsoft.PolicyInsights/policyEvents/logDataEvents/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-09-19T19:35:20.9504127Z\",\"updatedOn\":\"2019-09-19T19:37:02.5331596Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/66bb4e9e-b016-4a94-8249-4c0511c2be84\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"66bb4e9e-b016-4a94-8249-4c0511c2be84\"\ - },{\"properties\":{\"roleName\":\"SignalR AccessKey Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Read SignalR Service Access Keys\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.SignalRService/*/read\"\ - ,\"Microsoft.SignalRService/SignalR/listkeys/action\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-09-20T09:33:19.6236874Z\",\"updatedOn\":\"2019-09-20T09:33:19.6236874Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/04165923-9d83-45d5-8227-78b77b0a687e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"04165923-9d83-45d5-8227-78b77b0a687e\"\ - },{\"properties\":{\"roleName\":\"SignalR Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Create, Read, Update, and Delete SignalR service resources\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.SignalRService/*\"\ - ,\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-09-20T09:58:09.0009662Z\",\"updatedOn\":\"2019-09-20T09:58:09.0009662Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761\"\ - },{\"properties\":{\"roleName\":\"Azure Connected Machine Onboarding\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can onboard Azure Connected Machines.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.HybridCompute/machines/read\"\ - ,\"Microsoft.HybridCompute/machines/write\",\"Microsoft.GuestConfiguration/guestConfigurationAssignments/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-10-23T20:15:07.1372870Z\",\"updatedOn\":\"2019-11-03T18:26:59.2060282Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\"\ - },{\"properties\":{\"roleName\":\"Azure Connected Machine Resource Administrator\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Can read, write, delete and re-onboard\ - \ Azure Connected Machines.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.HybridCompute/machines/read\",\"Microsoft.HybridCompute/machines/write\"\ - ,\"Microsoft.HybridCompute/machines/delete\",\"Microsoft.HybridCompute/machines/reconnect/action\"\ - ,\"Microsoft.HybridCompute/machines/extensions/write\",\"Microsoft.HybridCompute/*/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-10-23T20:24:59.1474607Z\",\"updatedOn\":\"2020-03-19T22:39:54.1226122Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/cd570a14-e51a-42ad-bac8-bafd67325302\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"cd570a14-e51a-42ad-bac8-bafd67325302\"\ - },{\"properties\":{\"roleName\":\"Managed Services Registration assignment\ - \ Delete Role\",\"type\":\"BuiltInRole\",\"description\":\"Managed Services\ - \ Registration Assignment Delete Role allows the managing tenant users to\ - \ delete the registration assignment assigned to their tenant.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ManagedServices/registrationAssignments/read\"\ - ,\"Microsoft.ManagedServices/registrationAssignments/delete\",\"Microsoft.ManagedServices/operationStatuses/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-10-23T22:33:33.1183469Z\",\"updatedOn\":\"2019-10-24T21:49:09.3875276Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/91c1777a-f3dc-4fae-b103-61d183457e46\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"91c1777a-f3dc-4fae-b103-61d183457e46\"\ - },{\"properties\":{\"roleName\":\"App Configuration Data Owner\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows full access to App Configuration\ - \ data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"\ - notActions\":[],\"dataActions\":[\"Microsoft.AppConfiguration/configurationStores/*/read\"\ - ,\"Microsoft.AppConfiguration/configurationStores/*/write\",\"Microsoft.AppConfiguration/configurationStores/*/delete\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-10-25T18:41:40.1185063Z\",\"\ - updatedOn\":\"2019-10-25T18:41:40.1185063Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\"\ - },{\"properties\":{\"roleName\":\"App Configuration Data Reader\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows read access to App Configuration\ - \ data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"\ - notActions\":[],\"dataActions\":[\"Microsoft.AppConfiguration/configurationStores/*/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-10-25T18:45:33.7975332Z\",\"\ - updatedOn\":\"2019-10-25T18:45:33.7975332Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/516239f1-63e1-4d78-a4de-a74fb236a071\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"516239f1-63e1-4d78-a4de-a74fb236a071\"\ - },{\"properties\":{\"roleName\":\"Kubernetes Cluster - Azure Arc Onboarding\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Role definition to authorize any\ - \ user/service to create connectedClusters resource\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Kubernetes/connectedClusters/Write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/read\",\"Microsoft.Support/*\"],\"\ - notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"\ - 2019-11-18T17:00:02.2087147Z\",\"updatedOn\":\"2020-02-10T22:40:48.3317559Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/34e09817-6cbe-4d01-b1a2-e0eac5743d41\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"34e09817-6cbe-4d01-b1a2-e0eac5743d41\"\ - },{\"properties\":{\"roleName\":\"Experimentation Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Experimentation Contributor\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/experiment/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/emergencystop/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/read\",\"Microsoft.Experimentation/experimentWorkspaces/write\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/delete\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-12-13T00:08:08.6679591Z\",\"updatedOn\":\"2020-07-07T20:17:06.8223079Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f646f1b-fa08-80eb-a22b-edd6ce5c915c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f646f1b-fa08-80eb-a22b-edd6ce5c915c\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services QnA Maker Reader\",\"\ - type\":\"BuiltInRole\",\"description\":\"Let\u2019s you read and test a KB\ - \ only.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ,\"Microsoft.Authorization/roleAssignments/read\",\"Microsoft.Authorization/roleDefinitions/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/download/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/generateanswer/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/alterations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointkeys/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointsettings/read\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/read\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/download/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/generateanswer/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/alterations/read\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointkeys/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointsettings/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-12-17T18:26:12.3329439Z\",\"\ - updatedOn\":\"2020-05-08T12:03:46.9266538Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/466ccd10-b268-4a11-b098-b4849f024126\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"466ccd10-b268-4a11-b098-b4849f024126\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services QnA Maker Editor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Let\u2019s you create, edit, import\ - \ and export a KB. You cannot publish or delete a KB.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ,\"Microsoft.Authorization/roleAssignments/read\",\"Microsoft.Authorization/roleDefinitions/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/download/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/create/write\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/write\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/generateanswer/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/train/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/alterations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/alterations/write\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointkeys/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointkeys/refreshkeys/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointsettings/read\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker/endpointsettings/write\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker/operations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/download/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/create/write\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/write\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/generateanswer/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/train/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/alterations/read\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker.v2/alterations/write\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointkeys/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointkeys/refreshkeys/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointsettings/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointsettings/write\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/operations/read\"],\"\ - notDataActions\":[]}],\"createdOn\":\"2019-12-17T18:27:30.6434556Z\",\"updatedOn\"\ - :\"2020-05-08T12:02:34.0065552Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f4cc2bf9-21be-47a1-bdf1-5c5804381025\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f4cc2bf9-21be-47a1-bdf1-5c5804381025\"\ - },{\"properties\":{\"roleName\":\"Experimentation Administrator\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Experimentation Administrator\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/admin/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/write\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/delete\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/experimentadmin/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/experiment/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/emergencystop/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/read\",\"Microsoft.Experimentation/experimentWorkspaces/write\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/delete\",\"Microsoft.Experimentation/experimentWorkspaces/admin/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-12-18T22:46:33.1116612Z\",\"\ - updatedOn\":\"2020-04-22T20:10:20.1216929Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f646f1b-fa08-80eb-a33b-edd6ce5c915c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f646f1b-fa08-80eb-a33b-edd6ce5c915c\"\ - },{\"properties\":{\"roleName\":\"Remote Rendering Administrator\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Provides user with conversion, manage session,\ - \ rendering and diagnostics capabilities for Azure Remote Rendering\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.MixedReality/RemoteRenderingAccounts/convert/action\",\"Microsoft.MixedReality/RemoteRenderingAccounts/convert/read\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/convert/delete\",\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/read\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/action\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/delete\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/render/read\",\"Microsoft.MixedReality/RemoteRenderingAccounts/diagnostic/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-01-23T18:15:31.3450348Z\",\"\ - updatedOn\":\"2020-01-23T18:15:31.3450348Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3df8b902-2a6f-47c7-8cc5-360e9b272a7e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3df8b902-2a6f-47c7-8cc5-360e9b272a7e\"\ - },{\"properties\":{\"roleName\":\"Remote Rendering Client\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Provides user with manage session, rendering and diagnostics\ - \ capabilities for Azure Remote Rendering.\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/read\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/action\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/delete\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/render/read\",\"Microsoft.MixedReality/RemoteRenderingAccounts/diagnostic/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-01-23T18:32:52.7069824Z\",\"\ - updatedOn\":\"2020-01-23T18:32:52.7069824Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d39065c4-c120-43c9-ab0a-63eed9795f0a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d39065c4-c120-43c9-ab0a-63eed9795f0a\"\ - },{\"properties\":{\"roleName\":\"Managed Application Contributor Role\",\"\ - type\":\"BuiltInRole\",\"description\":\"Allows for creating managed application\ - \ resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"*/read\",\"Microsoft.Solutions/applications/*\",\"Microsoft.Solutions/register/action\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/*\",\"Microsoft.Resources/deployments/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-02-08T03:39:11.8933879Z\",\"updatedOn\":\"2020-03-23T02:12:30.0853051Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/641177b8-a67a-45b9-a033-47bc880bb21e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"641177b8-a67a-45b9-a033-47bc880bb21e\"\ - },{\"properties\":{\"roleName\":\"Security Assessment Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you push assessments to Security Center\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Security/assessments/write\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-02-13T08:23:47.7656161Z\",\"updatedOn\":\"2020-02-13T08:23:47.7656161Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/612c2aa1-cb24-443b-ac28-3ab7272de6f5\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"612c2aa1-cb24-443b-ac28-3ab7272de6f5\"\ - },{\"properties\":{\"roleName\":\"Tag Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage tags on entities, without providing access\ - \ to the entities themselves.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/resources/read\",\"Microsoft.Resources/subscriptions/resources/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Resources/tags/*\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-18T23:19:19.2977644Z\"\ - ,\"updatedOn\":\"2020-02-19T00:04:58.9214962Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4a9ae827-6dc8-4573-8ac7-8239d42aa03f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4a9ae827-6dc8-4573-8ac7-8239d42aa03f\"\ - },{\"properties\":{\"roleName\":\"Integration Service Environment Developer\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Allows developers to create and\ - \ update workflows, integration accounts and API connections in integration\ - \ service environments.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Support/*\",\"Microsoft.Logic/integrationServiceEnvironments/read\"\ - ,\"Microsoft.Logic/integrationServiceEnvironments/join/action\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-20T21:09:00.5627875Z\"\ - ,\"updatedOn\":\"2020-02-20T21:36:24.6190730Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c7aa55d3-1abb-444a-a5ca-5e51e485d6ec\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c7aa55d3-1abb-444a-a5ca-5e51e485d6ec\"\ - },{\"properties\":{\"roleName\":\"Integration Service Environment Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you manage integration service\ - \ environments, but not access to them.\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Logic/integrationServiceEnvironments/*\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-20T21:10:44.4008319Z\"\ - ,\"updatedOn\":\"2020-02-20T21:41:56.7983599Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a41e2c5b-bd99-4a07-88f4-9bf657a760b8\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a41e2c5b-bd99-4a07-88f4-9bf657a760b8\"\ - },{\"properties\":{\"roleName\":\"Marketplace Admin\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Administrator of marketplace resource provider\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Marketplace/privateStores/write\"\ - ,\"Microsoft.Marketplace/privateStores/action\",\"Microsoft.Marketplace/privateStores/delete\"\ - ,\"Microsoft.Marketplace/privateStores/offers/write\",\"Microsoft.Marketplace/privateStores/offers/action\"\ - ,\"Microsoft.Marketplace/privateStores/offers/delete\",\"Microsoft.Authorization/*/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-02-26T14:19:50.9681015Z\",\"updatedOn\":\"2020-06-23T05:54:42.8370671Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/dd920d6d-f481-47f1-b461-f338c46b2d9f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"dd920d6d-f481-47f1-b461-f338c46b2d9f\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service Contributor Role\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Grants access to read and write\ - \ Azure Kubernetes Service clusters\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.ContainerService/managedClusters/read\",\"Microsoft.ContainerService/managedClusters/write\"\ - ,\"Microsoft.Resources/deployments/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-27T19:27:15.0739970Z\"\ - ,\"updatedOn\":\"2020-02-28T02:34:14.5162305Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ed7f3fbd-7b88-4dd4-9017-9adb7ce333f8\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ed7f3fbd-7b88-4dd4-9017-9adb7ce333f8\"\ - },{\"properties\":{\"roleName\":\"Azure Digital Twins Reader (Preview)\",\"\ - type\":\"BuiltInRole\",\"description\":\"Read-only role for Digital Twins\ - \ data-plane properties\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.DigitalTwins/digitaltwins/read\"\ - ,\"Microsoft.DigitalTwins/digitaltwins/relationships/read\",\"Microsoft.DigitalTwins/eventroutes/read\"\ - ,\"Microsoft.DigitalTwins/models/read\",\"Microsoft.DigitalTwins/query/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-03-10T23:48:14.7057381Z\",\"\ - updatedOn\":\"2020-07-01T17:50:50.2393244Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d57506d4-4c8d-48b1-8587-93c323f6a5a3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d57506d4-4c8d-48b1-8587-93c323f6a5a3\"\ - },{\"properties\":{\"roleName\":\"Azure Digital Twins Owner (Preview)\",\"\ - type\":\"BuiltInRole\",\"description\":\"Full access role for Digital Twins\ - \ data-plane\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[],\"notActions\":[],\"dataActions\":[\"Microsoft.DigitalTwins/eventroutes/*\"\ - ,\"Microsoft.DigitalTwins/digitaltwins/*\",\"Microsoft.DigitalTwins/digitaltwins/commands/*\"\ - ,\"Microsoft.DigitalTwins/digitaltwins/relationships/*\",\"Microsoft.DigitalTwins/models/*\"\ - ,\"Microsoft.DigitalTwins/query/*\"],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-03-10T23:49:33.7821930Z\",\"updatedOn\":\"2020-03-10T23:49:33.7821930Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/bcd981a7-7f74-457b-83e1-cceb9e632ffe\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"bcd981a7-7f74-457b-83e1-cceb9e632ffe\"\ - },{\"properties\":{\"roleName\":\"Hierarchy Settings Administrator\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows users to edit and delete Hierarchy\ - \ Settings\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Management/managementGroups/settings/write\",\"Microsoft.Management/managementGroups/settings/delete\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-03-13T23:55:11.0212387Z\",\"updatedOn\":\"2020-03-13T23:58:46.9249866Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/350f8d15-c687-4448-8ae1-157740a3936d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"350f8d15-c687-4448-8ae1-157740a3936d\"\ - },{\"properties\":{\"roleName\":\"FHIR Data Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Role allows user or principal full access to FHIR Data\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.HealthcareApis/services/fhir/resources/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-03-17T18:35:04.4949547Z\",\"\ - updatedOn\":\"2020-03-17T18:35:04.4949547Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5a1fc7df-4bf1-4951-a576-89034ee01acd\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5a1fc7df-4bf1-4951-a576-89034ee01acd\"\ - },{\"properties\":{\"roleName\":\"FHIR Data Exporter\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Role allows user or principal to read and export FHIR Data\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.HealthcareApis/services/fhir/resources/read\"\ - ,\"Microsoft.HealthcareApis/services/fhir/resources/export/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2020-03-17T18:45:01.9764073Z\",\"updatedOn\":\"2020-03-19T20:29:56.9958536Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3db33094-8700-4567-8da5-1501d4e7e843\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3db33094-8700-4567-8da5-1501d4e7e843\"\ - },{\"properties\":{\"roleName\":\"FHIR Data Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Role allows user or principal to read FHIR Data\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.HealthcareApis/services/fhir/resources/read\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2020-03-17T18:49:04.8353499Z\",\"updatedOn\":\"2020-03-17T18:49:04.8353499Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4c8d0bbc-75d3-4935-991f-5f3c56d81508\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4c8d0bbc-75d3-4935-991f-5f3c56d81508\"\ - },{\"properties\":{\"roleName\":\"FHIR Data Writer\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Role allows user or principal to read and write FHIR Data\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.HealthcareApis/services/fhir/resources/*\"\ - ],\"notDataActions\":[\"Microsoft.HealthcareApis/services/fhir/resources/hardDelete/action\"\ - ]}],\"createdOn\":\"2020-03-17T18:55:35.2413335Z\",\"updatedOn\":\"2020-03-17T18:55:35.2413335Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3f88fce4-5892-4214-ae73-ba5294559913\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3f88fce4-5892-4214-ae73-ba5294559913\"\ - },{\"properties\":{\"roleName\":\"Experimentation Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Experimentation Reader\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/read\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-03-25T18:05:14.8375678Z\",\"\ - updatedOn\":\"2020-04-22T21:20:46.2737555Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/49632ef5-d9ac-41f4-b8e7-bbe587fa74a1\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"49632ef5-d9ac-41f4-b8e7-bbe587fa74a1\"\ - },{\"properties\":{\"roleName\":\"Object Understanding Account Owner\",\"\ - type\":\"BuiltInRole\",\"description\":\"Provides user with ingestion capabilities\ - \ for Azure Object Understanding.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/ObjectUnderstandingAccounts/ingest/action\"\ - ,\"Microsoft.MixedReality/ObjectUnderstandingAccounts/ingest/read\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2020-04-22T19:15:09.0697923Z\",\"updatedOn\":\"2020-04-22T19:15:09.0697923Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4dd61c23-6743-42fe-a388-d8bdd41cb745\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4dd61c23-6743-42fe-a388-d8bdd41cb745\"\ - },{\"properties\":{\"roleName\":\"Azure Maps Data Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Grants access to read, write, and delete access\ - \ to map related data from an Azure maps account.\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"\ - Microsoft.Maps/accounts/*/read\",\"Microsoft.Maps/accounts/*/write\",\"Microsoft.Maps/accounts/*/delete\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-07T20:55:05.0645410Z\",\"\ - updatedOn\":\"2020-05-07T20:55:05.0645410Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8f5e0ce6-4f7b-4dcf-bddf-e6f48634a204\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8f5e0ce6-4f7b-4dcf-bddf-e6f48634a204\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Custom Vision Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Full access to the project, including\ - \ the ability to view, create, edit, or delete projects.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-08T23:47:07.0779345Z\",\"\ - updatedOn\":\"2020-05-08T23:47:07.0779345Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c1ff6cc2-c111-46fe-8896-e0ef812ad9f3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c1ff6cc2-c111-46fe-8896-e0ef812ad9f3\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Custom Vision Deployment\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Publish, unpublish or export models.\ - \ Deployment can view the project but can\u2019t update.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/*/read\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/predictions/*\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/iterations/publish/*\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/iterations/export/*\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/quicktest/*\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/classify/*\",\"Microsoft.CognitiveServices/accounts/CustomVision/detect/*\"\ - ],\"notDataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/projects/export/read\"\ - ]}],\"createdOn\":\"2020-05-09T01:31:05.9528620Z\",\"updatedOn\":\"2020-05-09T01:31:05.9528620Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5c4089e1-6d96-4d2f-b296-c1bc7137275f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5c4089e1-6d96-4d2f-b296-c1bc7137275f\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Custom Vision Labeler\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"View, edit training images and\ - \ create, add, remove, or delete the image tags. Labelers can view the project\ - \ but can\u2019t update anything other than training images and tags.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/*/read\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/predictions/query/action\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/images/*\",\"\ - Microsoft.CognitiveServices/accounts/CustomVision/projects/tags/*\",\"Microsoft.CognitiveServices/accounts/CustomVision/projects/images/suggested/*\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/tagsandregions/suggestions/action\"\ - ],\"notDataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/projects/export/read\"\ - ]}],\"createdOn\":\"2020-05-09T01:33:20.8278896Z\",\"updatedOn\":\"2020-05-09T01:33:20.8278896Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/88424f51-ebe7-446f-bc41-7fa16989e96c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"88424f51-ebe7-446f-bc41-7fa16989e96c\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Custom Vision Reader\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Read-only actions in the project.\ - \ Readers can\u2019t create or update the project.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/*/read\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/predictions/query/action\"\ - ],\"notDataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/projects/export/read\"\ - ]}],\"createdOn\":\"2020-05-09T01:34:18.5328818Z\",\"updatedOn\":\"2020-05-09T01:34:18.5328818Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/93586559-c37d-4a6b-ba08-b9f0940c2d73\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"93586559-c37d-4a6b-ba08-b9f0940c2d73\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Custom Vision Trainer\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"View, edit projects and train\ - \ the models, including the ability to publish, unpublish, export the models.\ - \ Trainers can\u2019t create or delete the project.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/*\"\ - ],\"notDataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/projects/action\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/delete\",\"\ - Microsoft.CognitiveServices/accounts/CustomVision/projects/import/action\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/export/read\"\ - ]}],\"createdOn\":\"2020-05-09T01:35:13.8147804Z\",\"updatedOn\":\"2020-05-09T01:35:13.8147804Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0a5ae4ab-0d65-4eeb-be61-29fc9b54394b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0a5ae4ab-0d65-4eeb-be61-29fc9b54394b\"\ - },{\"properties\":{\"roleName\":\"Key Vault Administrator (preview)\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Can perform any action on certificates,\ - \ keys and secrets of a key vault, except manage permissions.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.KeyVault/checkNameAvailability/read\",\"Microsoft.KeyVault/deletedVaults/read\"\ - ,\"Microsoft.KeyVault/locations/*/read\",\"Microsoft.KeyVault/vaults/*/read\"\ - ,\"Microsoft.KeyVault/operations/read\"],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.KeyVault/vaults/*\"],\"notDataActions\":[]}],\"createdOn\":\"\ - 2020-05-19T17:52:46.2349235Z\",\"updatedOn\":\"2020-05-20T19:40:18.9511304Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00482a5a-887f-4fb3-b363-3b7fe8e74483\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"00482a5a-887f-4fb3-b363-3b7fe8e74483\"\ - },{\"properties\":{\"roleName\":\"Key Vault Crypto Officer (preview)\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can perform any action on the keys\ - \ of a key vault, except manage permissions.\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.KeyVault/checkNameAvailability/read\"\ - ,\"Microsoft.KeyVault/deletedVaults/read\",\"Microsoft.KeyVault/locations/*/read\"\ - ,\"Microsoft.KeyVault/vaults/*/read\",\"Microsoft.KeyVault/operations/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.KeyVault/vaults/keys/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-19T17:52:47.0099249Z\",\"\ - updatedOn\":\"2020-05-20T19:44:51.5886988Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/14b46e9e-c2b7-41b4-b07b-48a6ebf60603\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"14b46e9e-c2b7-41b4-b07b-48a6ebf60603\"\ - },{\"properties\":{\"roleName\":\"Key Vault Crypto User (preview)\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Can perform cryptographic operations on\ - \ keys and certificates.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.KeyVault/vaults/keys/read\"\ - ,\"Microsoft.KeyVault/vaults/keys/update/action\",\"Microsoft.KeyVault/vaults/keys/backup/action\"\ - ,\"Microsoft.KeyVault/vaults/keys/encrypt/action\",\"Microsoft.KeyVault/vaults/keys/decrypt/action\"\ - ,\"Microsoft.KeyVault/vaults/keys/wrap/action\",\"Microsoft.KeyVault/vaults/keys/unwrap/action\"\ - ,\"Microsoft.KeyVault/vaults/keys/sign/action\",\"Microsoft.KeyVault/vaults/keys/verify/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-19T17:52:47.0699268Z\",\"\ - updatedOn\":\"2020-05-20T19:48:54.8672037Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/12338af0-0e69-4776-bea7-57ae8d297424\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"12338af0-0e69-4776-bea7-57ae8d297424\"\ - },{\"properties\":{\"roleName\":\"Key Vault Secrets Officer (preview)\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can perform any action on the secrets\ - \ of a key vault, except manage permissions.\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.KeyVault/checkNameAvailability/read\"\ - ,\"Microsoft.KeyVault/deletedVaults/read\",\"Microsoft.KeyVault/locations/*/read\"\ - ,\"Microsoft.KeyVault/vaults/*/read\",\"Microsoft.KeyVault/operations/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.KeyVault/vaults/secrets/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-19T17:52:47.1449242Z\",\"\ - updatedOn\":\"2020-05-20T19:51:40.0338120Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b86a8fe4-44ce-4948-aee5-eccb2c155cd7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b86a8fe4-44ce-4948-aee5-eccb2c155cd7\"\ - },{\"properties\":{\"roleName\":\"Key Vault Secrets User (preview)\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Can read secret contents.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.KeyVault/vaults/secrets/getSecret/action\",\"Microsoft.KeyVault/vaults/secrets/readMetadata/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-19T17:52:47.2049241Z\",\"\ - updatedOn\":\"2020-05-20T19:53:53.9617292Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4633458b-17de-408a-b874-0445c86b69e6\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4633458b-17de-408a-b874-0445c86b69e6\"\ - },{\"properties\":{\"roleName\":\"Key Vault Certificates Officer (preview)\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Can perform any action on the\ - \ certificates of a key vault, except manage permissions.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.KeyVault/checkNameAvailability/read\",\"Microsoft.KeyVault/deletedVaults/read\"\ - ,\"Microsoft.KeyVault/locations/*/read\",\"Microsoft.KeyVault/vaults/*/read\"\ - ,\"Microsoft.KeyVault/operations/read\"],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.KeyVault/vaults/certificatecas/*\",\"Microsoft.KeyVault/vaults/certificates/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-19T17:52:47.2499247Z\",\"\ - updatedOn\":\"2020-05-20T19:56:22.0363761Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a4417e6f-fecd-4de8-b567-7b0420556985\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a4417e6f-fecd-4de8-b567-7b0420556985\"\ - },{\"properties\":{\"roleName\":\"Key Vault Reader (preview)\",\"type\":\"\ - BuiltInRole\",\"description\":\"Can read metadata of key vaults and its certificates,\ - \ keys and secrets. Cannot read sensitive values such as secret contents or\ - \ key material.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.KeyVault/checkNameAvailability/read\"\ - ,\"Microsoft.KeyVault/deletedVaults/read\",\"Microsoft.KeyVault/locations/*/read\"\ - ,\"Microsoft.KeyVault/vaults/*/read\",\"Microsoft.KeyVault/operations/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.KeyVault/vaults/*/read\"\ - ,\"Microsoft.KeyVault/vaults/secrets/readMetadata/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2020-05-19T17:52:47.2949294Z\",\"updatedOn\":\"2020-05-20T19:58:55.0084184Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/21090545-7ca7-4776-b22c-e363652d74d2\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"21090545-7ca7-4776-b22c-e363652d74d2\"\ - },{\"properties\":{\"roleName\":\"Key Vault Crypto Service Encryption (preview)\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Can read metadata of keys and\ - \ perform wrap/unwrap operations.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.KeyVault/vaults/keys/read\"\ - ,\"Microsoft.KeyVault/vaults/keys/wrap/action\",\"Microsoft.KeyVault/vaults/keys/unwrap/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-20T20:55:19.2398470Z\",\"\ - updatedOn\":\"2020-05-20T20:55:19.2398470Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e147488a-f6f5-4113-8e2d-b22465e65bf6\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e147488a-f6f5-4113-8e2d-b22465e65bf6\"\ - },{\"properties\":{\"roleName\":\"Azure Arc Kubernetes Viewer\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you view all resources in cluster/namespace,\ - \ except secrets.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Kubernetes/connectedClusters/*/read\"\ - ],\"notDataActions\":[\"Microsoft.Kubernetes/connectedClusters/secrets/read\"\ - ,\"Microsoft.Kubernetes/connectedClusters/clusterconfig.azure.com/azureclusteridentityrequests/read\"\ - ]}],\"createdOn\":\"2020-06-12T20:51:12.8801199Z\",\"updatedOn\":\"2020-06-12T20:51:12.8801199Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f0a09d-1495-4db4-a681-037d84835eb4\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"63f0a09d-1495-4db4-a681-037d84835eb4\"\ - },{\"properties\":{\"roleName\":\"Azure Arc Kubernetes Writer\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you update everything in cluster/namespace,\ - \ except (cluster)roles and (cluster)role bindings.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Kubernetes/connectedClusters/*/read\"\ - ,\"Microsoft.Kubernetes/connectedClusters/*/write\"],\"notDataActions\":[\"\ - Microsoft.Kubernetes/connectedClusters/rbac.authorization.k8s.io/*/read\"\ - ,\"Microsoft.Kubernetes/connectedClusters/rbac.authorization.k8s.io/*/write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/namespaces/write\",\"Microsoft.Kubernetes/connectedClusters/resourcequotas/write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/certificates.k8s.io/certificatesigningrequests/write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/policy/podsecuritypolicies/write\"\ - ]}],\"createdOn\":\"2020-06-12T20:53:50.6749823Z\",\"updatedOn\":\"2020-06-12T20:53:50.6749823Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5b999177-9696-4545-85c7-50de3797e5a1\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5b999177-9696-4545-85c7-50de3797e5a1\"\ - },{\"properties\":{\"roleName\":\"Azure Arc Kubernetes Cluster Admin\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you manage all resources in\ - \ the cluster.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Kubernetes/connectedClusters/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-06-12T20:55:30.9910462Z\",\"\ - updatedOn\":\"2020-06-12T20:55:30.9910462Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8393591c-06b9-48a2-a542-1bd6b377f6a2\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8393591c-06b9-48a2-a542-1bd6b377f6a2\"\ - },{\"properties\":{\"roleName\":\"Azure Arc Kubernetes Admin\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage all resources under cluster/namespace,\ - \ except update or delete resource quotas and namespaces.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Kubernetes/connectedClusters/*\"\ - ],\"notDataActions\":[\"Microsoft.Kubernetes/connectedClusters/resourcequotas/write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/resourcequotas/delete\",\"Microsoft.Kubernetes/connectedClusters/namespaces/write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/namespaces/delete\"]}],\"createdOn\"\ - :\"2020-06-12T20:57:06.0391177Z\",\"updatedOn\":\"2020-06-12T20:57:06.0391177Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/dffb1e0c-446f-4dde-a09f-99eb5cc68b96\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"dffb1e0c-446f-4dde-a09f-99eb5cc68b96\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service RBAC Cluster Admin\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you manage all resources\ - \ in the cluster.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.ContainerService/managedClusters/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-07-02T17:47:24.4071415Z\",\"\ - updatedOn\":\"2020-07-02T17:47:24.4071415Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service RBAC Admin\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you manage all resources under\ - \ cluster/namespace, except update or delete resource quotas and namespaces.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.ContainerService/managedClusters/*\"\ - ],\"notDataActions\":[\"Microsoft.ContainerService/managedClusters/resourcequotas/write\"\ - ,\"Microsoft.ContainerService/managedClusters/resourcequotas/delete\",\"Microsoft.ContainerService/managedClusters/namespaces/write\"\ - ,\"Microsoft.ContainerService/managedClusters/namespaces/delete\"]}],\"createdOn\"\ - :\"2020-07-02T17:50:30.4020311Z\",\"updatedOn\":\"2020-07-02T17:50:30.4020311Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3498e952-d568-435e-9b2c-8d77e338d7f7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3498e952-d568-435e-9b2c-8d77e338d7f7\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service RBAC Reader\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you view all resources in cluster/namespace,\ - \ except secrets.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.ContainerService/managedClusters/*/read\"\ - ],\"notDataActions\":[\"Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/*/read\"\ - ,\"Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/*/write\"\ - ,\"Microsoft.ContainerService/managedClusters/secrets/*\"]}],\"createdOn\"\ - :\"2020-07-02T17:53:05.5728294Z\",\"updatedOn\":\"2020-07-07T16:40:37.2744607Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f6c6a51-bcf8-42ba-9220-52d62157d7db\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f6c6a51-bcf8-42ba-9220-52d62157d7db\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service RBAC Writer\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you update everything in cluster/namespace,\ - \ except resource quotas, namespaces, pod security policies, certificate signing\ - \ requests, (cluster)roles and (cluster)role bindings.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.ContainerService/managedClusters/*/read\"\ - ,\"Microsoft.ContainerService/managedClusters/*/write\"],\"notDataActions\"\ - :[\"Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/*/read\"\ - ,\"Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/*/write\"\ - ,\"Microsoft.ContainerService/managedClusters/namespaces/write\",\"Microsoft.ContainerService/managedClusters/resourcequotas/write\"\ - ,\"Microsoft.ContainerService/managedClusters/certificates.k8s.io/certificatesigningrequests/write\"\ - ,\"Microsoft.ContainerService/managedClusters/policy/podsecuritypolicies/write\"\ - ]}],\"createdOn\":\"2020-07-02T17:54:51.9644983Z\",\"updatedOn\":\"2020-07-02T17:54:51.9644983Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb\"\ - },{\"properties\":{\"roleName\":\"Services Hub Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Services Hub Operator allows you to perform all read, write,\ - \ and deletion operations related to Services Hub Connectors.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ServicesHub/connectors/write\"\ - ,\"Microsoft.ServicesHub/connectors/read\",\"Microsoft.ServicesHub/connectors/delete\"\ - ,\"Microsoft.ServicesHub/supportOfferingEntitlement/read\",\"Microsoft.ServicesHub/connectors/checkAssessmentEntitlement/action\"\ - ,\"Microsoft.ServicesHub/workspaces/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2020-07-20T17:57:22.0644902Z\"\ - ,\"updatedOn\":\"2020-07-20T19:51:17.2862100Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/82200a5b-e217-47a5-b665-6d8765ee745b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"82200a5b-e217-47a5-b665-6d8765ee745b\"\ - },{\"properties\":{\"roleName\":\"Object Understanding Account Reader\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you read ingestion jobs for\ - \ an object understanding account.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/ObjectUnderstandingAccounts/ingest/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-07-23T19:16:31.9929119Z\",\"\ - updatedOn\":\"2020-07-23T19:16:31.9929119Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d18777c0-1514-4662-8490-608db7d334b6\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d18777c0-1514-4662-8490-608db7d334b6\"\ - },{\"properties\":{\"roleName\":\"Azure Arc Enabled Kubernetes Cluster User\ - \ Role\",\"type\":\"BuiltInRole\",\"description\":\"List cluster user credentials\ - \ action.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Kubernetes/connectedClusters/listClusterUserCredentials/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-07-28T17:37:00.7637445Z\",\"updatedOn\":\"2020-07-28T17:37:00.7637445Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00493d72-78f6-4148-b6c5-d3ce8e4799dd\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"00493d72-78f6-4148-b6c5-d3ce8e4799dd\"\ - },{\"properties\":{\"roleName\":\"SignalR App Server (Preview)\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets your app server access SignalR Service\ - \ with AAD Auth options.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SignalRService/SignalR/service/accessKey/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-07-29T06:54:40.1201435Z\",\"\ - updatedOn\":\"2020-07-29T06:58:30.4756037Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/420fcaa2-552c-430f-98ca-3264be4806c7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"420fcaa2-552c-430f-98ca-3264be4806c7\"\ - }]}" - headers: - cache-control: - - no-cache - content-length: - - '219805' - content-type: - - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:26:52 GMT + - Mon, 14 Sep 2020 18:56:43 GMT expires: - '-1' pragma: - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + server: + - nginx strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -6460,70 +3869,4 @@ interactions: status: code: 200 message: OK -- request: - body: '{"objectIds": ["3d09385f-8e9f-4bf8-ab70-aea113d0a345"], "includeDirectoryObjectReferences": - true}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - role assignment list - Connection: - - keep-alive - Content-Length: - - '97' - Content-Type: - - application/json; charset=utf-8 - ParameterSetName: - - --assignee --scope --role -o - User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US - method: POST - uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/getObjectsByObjectIds?api-version=1.6 - response: - body: - string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"3d09385f-8e9f-4bf8-ab70-aea113d0a345","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":["isExplicit=True","/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ingressapplicationgateway-cliakstest000002"],"appDisplayName":null,"appId":"26290abd-2e6b-440e-aaba-3984d76ac751","applicationTemplateId":null,"appOwnerTenantId":null,"appRoleAssignmentRequired":false,"appRoles":[],"displayName":"ingressapplicationgateway-cliakstest000002","errorUrl":null,"homepage":null,"informationalUrls":null,"keyCredentials":[{"customKeyIdentifier":"A973EB78D788710B48B970AE390172CCA94992D7","endDate":"2020-10-27T09:19:00Z","keyId":"72652e26-ccb5-45ef-843d-5bb31cbed910","startDate":"2020-07-29T09:19:00Z","type":"AsymmetricX509Cert","usage":"Verify","value":null}],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":null,"replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["26290abd-2e6b-440e-aaba-3984d76ac751","https://identity.azure.net/3S5LZIK+rwDMJ2KrMvcIx77u+S+uA5uAW1LJwPRQx9A="],"servicePrincipalType":"ManagedIdentity","signInAudience":null,"tags":[],"tokenEncryptionKeyId":null}]}' - headers: - access-control-allow-origin: - - '*' - cache-control: - - no-cache - content-length: - - '1670' - content-type: - - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 - dataserviceversion: - - 3.0; - date: - - Wed, 29 Jul 2020 09:26:52 GMT - duration: - - '568550' - expires: - - '-1' - ocp-aad-diagnostics-server-name: - - q7x7Ne5hm/dngtxrQWRJccPTqIMtlWSJ6hNfo5oV4uk= - ocp-aad-session-key: - - K79cYyL3EAky7V-09Ou7QifkipwMSK6yaG3bCok-4yUZWv9KR1JFuIshOD3ErbWW96UAOeeraVMgDwtgH4DFBi7M9LK1JWHnqQF5LNQxcDeyRwWQ_oeNg-35rc3B8fTu.NcxadwXOo4iY4-0h4wPay9Qw1B2oHuN8W-G2KnSTw-g - pragma: - - no-cache - request-id: - - ba10c84c-b139-4d8a-8af0-764ae32a26eb - strict-transport-security: - - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-ms-dirapi-data-contract-version: - - '1.6' - x-ms-resource-unit: - - '3' - x-powered-by: - - ASP.NET - status: - code: 200 - message: OK version: 1 diff --git a/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_byo_subnet_with_ingress_appgw_addon.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_byo_subnet_with_ingress_appgw_addon.yaml index 01faad242a3..8db69c447aa 100644 --- a/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_byo_subnet_with_ingress_appgw_addon.yaml +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_byo_subnet_with_ingress_appgw_addon.yaml @@ -13,15 +13,15 @@ interactions: ParameterSetName: - --resource-group --name --address-prefix --subnet-name --subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-07-29T09:16:53Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-14T18:43:57Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:16:54 GMT + - Mon, 14 Sep 2020 18:43:58 GMT expires: - '-1' pragma: @@ -64,24 +64,24 @@ interactions: ParameterSetName: - --resource-group --name --address-prefix --subnet-name --subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"cliakstest000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003\"\ - ,\r\n \"etag\": \"W/\\\"b7bc84a5-c010-4c4a-b5da-d9a823d6983c\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"8fc7d331-b1ec-40d7-a9dd-76fcb0a80f42\\\"\",\r\n \ \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ - \ \"Updating\",\r\n \"resourceGuid\": \"703ae460-65d4-47e6-82a1-6b176612ae7d\"\ + \ \"Updating\",\r\n \"resourceGuid\": \"9b1ce6e4-ce4d-4e28-b353-d865b33c02ee\"\ ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ 11.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"aks-subnet\"\ ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\r\n \"etag\": \"W/\\\"b7bc84a5-c010-4c4a-b5da-d9a823d6983c\\\"\"\ + ,\r\n \"etag\": \"W/\\\"8fc7d331-b1ec-40d7-a9dd-76fcb0a80f42\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\"\ ,\r\n \"addressPrefix\": \"11.0.0.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -93,7 +93,7 @@ interactions: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/68df5b13-71ea-4707-af16-4adf0cd6bce0?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/1ea21eb1-ff31-48a4-85aa-d6fe0b2426af?api-version=2020-06-01 cache-control: - no-cache content-length: @@ -101,7 +101,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:16:56 GMT + - Mon, 14 Sep 2020 18:43:59 GMT expires: - '-1' pragma: @@ -114,7 +114,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 1f573d09-42c4-491d-b62c-ed35ec9fc9f8 + - af86203b-25c9-46e4-92f3-c6214b6df4bf x-ms-ratelimit-remaining-subscription-writes: - '1199' status: @@ -134,10 +134,10 @@ interactions: ParameterSetName: - --resource-group --name --address-prefix --subnet-name --subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/68df5b13-71ea-4707-af16-4adf0cd6bce0?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/1ea21eb1-ff31-48a4-85aa-d6fe0b2426af?api-version=2020-06-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -149,7 +149,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:00 GMT + - Mon, 14 Sep 2020 18:44:01 GMT expires: - '-1' pragma: @@ -166,7 +166,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 6d5434d4-9949-4b26-b8b1-0bb5c9b5ef37 + - 4263923f-6ee6-4868-b467-fd24944cf25d status: code: 200 message: OK @@ -184,22 +184,22 @@ interactions: ParameterSetName: - --resource-group --name --address-prefix --subnet-name --subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"cliakstest000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003\"\ - ,\r\n \"etag\": \"W/\\\"512b28fb-54e4-49f2-9e21-91f6a2630c8c\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"53263543-a947-41c8-a98f-c88d4773020f\\\"\",\r\n \ \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ - \ \"Succeeded\",\r\n \"resourceGuid\": \"703ae460-65d4-47e6-82a1-6b176612ae7d\"\ + \ \"Succeeded\",\r\n \"resourceGuid\": \"9b1ce6e4-ce4d-4e28-b353-d865b33c02ee\"\ ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ 11.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"aks-subnet\"\ ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\r\n \"etag\": \"W/\\\"512b28fb-54e4-49f2-9e21-91f6a2630c8c\\\"\"\ + ,\r\n \"etag\": \"W/\\\"53263543-a947-41c8-a98f-c88d4773020f\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ ,\r\n \"addressPrefix\": \"11.0.0.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -215,9 +215,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:00 GMT + - Mon, 14 Sep 2020 18:44:02 GMT etag: - - W/"512b28fb-54e4-49f2-9e21-91f6a2630c8c" + - W/"53263543-a947-41c8-a98f-c88d4773020f" expires: - '-1' pragma: @@ -234,7 +234,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 93202c05-ecf9-423d-9173-4264b6c8e4de + - b355b242-342d-4302-8e07-58bfbb23652d status: code: 200 message: OK @@ -252,24 +252,24 @@ interactions: ParameterSetName: - -n --resource-group --vnet-name --address-prefixes -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"cliakstest000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003\"\ - ,\r\n \"etag\": \"W/\\\"512b28fb-54e4-49f2-9e21-91f6a2630c8c\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"53263543-a947-41c8-a98f-c88d4773020f\\\"\",\r\n \ \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ - \ \"Succeeded\",\r\n \"resourceGuid\": \"703ae460-65d4-47e6-82a1-6b176612ae7d\"\ + \ \"Succeeded\",\r\n \"resourceGuid\": \"9b1ce6e4-ce4d-4e28-b353-d865b33c02ee\"\ ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ 11.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"aks-subnet\"\ ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\r\n \"etag\": \"W/\\\"512b28fb-54e4-49f2-9e21-91f6a2630c8c\\\"\"\ + ,\r\n \"etag\": \"W/\\\"53263543-a947-41c8-a98f-c88d4773020f\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ ,\r\n \"addressPrefix\": \"11.0.0.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -285,9 +285,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:00 GMT + - Mon, 14 Sep 2020 18:44:02 GMT etag: - - W/"512b28fb-54e4-49f2-9e21-91f6a2630c8c" + - W/"53263543-a947-41c8-a98f-c88d4773020f" expires: - '-1' pragma: @@ -304,7 +304,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - eea57018-641b-449b-9994-7d6967b7475f + - 48b0a008-74fa-4148-ad50-719fd912d9c7 status: code: 200 message: OK @@ -332,24 +332,24 @@ interactions: ParameterSetName: - -n --resource-group --vnet-name --address-prefixes -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"cliakstest000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003\"\ - ,\r\n \"etag\": \"W/\\\"1c764565-b6ba-433c-a975-79d15255392c\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"d32ac48b-e460-4278-9523-d1e747408189\\\"\",\r\n \ \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ - \ \"Updating\",\r\n \"resourceGuid\": \"703ae460-65d4-47e6-82a1-6b176612ae7d\"\ + \ \"Updating\",\r\n \"resourceGuid\": \"9b1ce6e4-ce4d-4e28-b353-d865b33c02ee\"\ ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ 11.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"aks-subnet\"\ ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\r\n \"etag\": \"W/\\\"1c764565-b6ba-433c-a975-79d15255392c\\\"\"\ + ,\r\n \"etag\": \"W/\\\"d32ac48b-e460-4278-9523-d1e747408189\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\"\ ,\r\n \"addressPrefix\": \"11.0.0.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -357,7 +357,7 @@ interactions: \n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n \ \ },\r\n {\r\n \"name\": \"appgw-subnet\",\r\n \"id\"\ : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet\"\ - ,\r\n \"etag\": \"W/\\\"1c764565-b6ba-433c-a975-79d15255392c\\\"\"\ + ,\r\n \"etag\": \"W/\\\"d32ac48b-e460-4278-9523-d1e747408189\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\"\ ,\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -367,7 +367,7 @@ interactions: : false,\r\n \"enableVmProtection\": false\r\n }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8746caeb-d499-4ec7-85ce-65f16ca7b5ef?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/388a6919-804b-4fa7-9168-dc3009212d80?api-version=2020-06-01 cache-control: - no-cache content-length: @@ -375,7 +375,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:00 GMT + - Mon, 14 Sep 2020 18:44:04 GMT expires: - '-1' pragma: @@ -392,7 +392,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 227f15fe-2e03-4678-ad32-1db5ab9106e6 + - adaaf9f4-591f-473c-8ed4-2d6d202a55ae x-ms-ratelimit-remaining-subscription-writes: - '1199' status: @@ -412,10 +412,10 @@ interactions: ParameterSetName: - -n --resource-group --vnet-name --address-prefixes -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8746caeb-d499-4ec7-85ce-65f16ca7b5ef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/388a6919-804b-4fa7-9168-dc3009212d80?api-version=2020-06-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -427,7 +427,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:04 GMT + - Mon, 14 Sep 2020 18:44:07 GMT expires: - '-1' pragma: @@ -444,7 +444,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - a0ceffd6-92cd-424d-9bf8-af688514fb60 + - 3f1372c9-1777-4230-8e34-050cca410832 status: code: 200 message: OK @@ -462,22 +462,22 @@ interactions: ParameterSetName: - -n --resource-group --vnet-name --address-prefixes -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"cliakstest000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003\"\ - ,\r\n \"etag\": \"W/\\\"b0b4d87f-469b-4735-a550-a91d37db3583\\\"\",\r\n \ + ,\r\n \"etag\": \"W/\\\"c05ba312-4c12-4ee4-89db-3d85e1f36338\\\"\",\r\n \ \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ - \ \"Succeeded\",\r\n \"resourceGuid\": \"703ae460-65d4-47e6-82a1-6b176612ae7d\"\ + \ \"Succeeded\",\r\n \"resourceGuid\": \"9b1ce6e4-ce4d-4e28-b353-d865b33c02ee\"\ ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ 11.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"aks-subnet\"\ ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\r\n \"etag\": \"W/\\\"b0b4d87f-469b-4735-a550-a91d37db3583\\\"\"\ + ,\r\n \"etag\": \"W/\\\"c05ba312-4c12-4ee4-89db-3d85e1f36338\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ ,\r\n \"addressPrefix\": \"11.0.0.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -485,7 +485,7 @@ interactions: \n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n \ \ },\r\n {\r\n \"name\": \"appgw-subnet\",\r\n \"id\"\ : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet\"\ - ,\r\n \"etag\": \"W/\\\"b0b4d87f-469b-4735-a550-a91d37db3583\\\"\"\ + ,\r\n \"etag\": \"W/\\\"c05ba312-4c12-4ee4-89db-3d85e1f36338\\\"\"\ ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ ,\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"delegations\"\ : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ @@ -501,9 +501,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:04 GMT + - Mon, 14 Sep 2020 18:44:07 GMT etag: - - W/"b0b4d87f-469b-4735-a550-a91d37db3583" + - W/"c05ba312-4c12-4ee4-89db-3d85e1f36338" expires: - '-1' pragma: @@ -520,7 +520,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 058087c0-fb7c-4d7a-9c62-92481b6c3a4a + - d88d6346-0d9e-47e8-8c56-4ffd62f6d031 status: code: 200 message: OK @@ -539,15 +539,15 @@ interactions: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-07-29T09:16:53Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-14T18:43:57Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -556,7 +556,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:04 GMT + - Mon, 14 Sep 2020 18:44:07 GMT expires: - '-1' pragma: @@ -571,7 +571,11 @@ interactions: code: 200 message: OK - request: - body: null + body: '{"availableToOtherTenants": false, "homepage": "http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com", + "passwordCredentials": [{"startDate": "2020-09-14T18:44:08.006613Z", "endDate": + "2025-09-14T18:44:08.006613Z", "keyId": "3a21af43-f872-4962-9ffd-a1477195f5e0", + "value": "ReplacedSPPassword123*"}], "displayName": "cliakstest000002", "identifierUris": + ["http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com"]}' headers: Accept: - application/json @@ -581,45 +585,91 @@ interactions: - aks create Connection: - keep-alive + Content-Length: + - '455' + Content-Type: + - application/json; charset=utf-8 ParameterSetName: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleAssignments?$filter=atScope%28%29&api-version=2018-09-01-preview + method: POST + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/applications?api-version=1.6 response: body: - string: '{"value":[{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"135a9bbc-ad60-452c-8ffe-519aa862e879","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:04.5178243Z","updatedOn":"2020-06-28T02:13:04.5178243Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a6b01bdc-2661-42bb-86dc-8919f95a33e9","type":"Microsoft.Authorization/roleAssignments","name":"a6b01bdc-2661-42bb-86dc-8919f95a33e9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"33d87b59-68e3-40cb-a9e7-99fbf8d86408","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:05.6867898Z","updatedOn":"2020-06-28T02:13:05.6867898Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5af0e958-7a8d-480d-824c-c26f04eb2726","type":"Microsoft.Authorization/roleAssignments","name":"5af0e958-7a8d-480d-824c-c26f04eb2726"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"37eb6d11-d570-4544-9531-6453cb8623cf","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-24T01:42:26.2892277Z","updatedOn":"2020-06-24T01:42:26.2892277Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a32cce5c-1fd3-41c4-acc1-5703f0886990","type":"Microsoft.Authorization/roleAssignments","name":"a32cce5c-1fd3-41c4-acc1-5703f0886990"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"38d88515-7eb8-4c96-804f-4edcc95b9dff","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-15T00:05:21.2872130Z","updatedOn":"2018-11-15T00:05:21.2872130Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a8ebe6bd-7017-43e1-818a-64b3ec691ff4","type":"Microsoft.Authorization/roleAssignments","name":"a8ebe6bd-7017-43e1-818a-64b3ec691ff4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"395c8203-ec60-4c13-9730-5f960088f92b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:06.4818169Z","updatedOn":"2020-06-28T02:13:06.4818169Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f6a7ee61-576a-48de-bd6b-62d8e8ff5335","type":"Microsoft.Authorization/roleAssignments","name":"f6a7ee61-576a-48de-bd6b-62d8e8ff5335"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-24T01:42:26.3089219Z","updatedOn":"2020-06-24T01:42:26.3089219Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/10d66f5e-ede6-428d-a82f-24c56d58ee41","type":"Microsoft.Authorization/roleAssignments","name":"10d66f5e-ede6-428d-a82f-24c56d58ee41"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"80a6e936-2bdc-4927-b49e-2a7a19943b90","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:05.6664266Z","updatedOn":"2020-06-28T02:13:05.6664266Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/049bb70c-f07b-4e4e-81c1-49d706598629","type":"Microsoft.Authorization/roleAssignments","name":"049bb70c-f07b-4e4e-81c1-49d706598629"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"8a5603a8-2c60-49ab-bc28-a989b91e187d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-07-03T07:16:26.4178883Z","updatedOn":"2020-07-03T07:16:26.4178883Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bff88f85-1f05-44fe-9a15-81ff4412ef7d","type":"Microsoft.Authorization/roleAssignments","name":"bff88f85-1f05-44fe-9a15-81ff4412ef7d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a56cfdc0-40f8-4077-8843-a8bf0067cd4d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:26:47.8968784Z","updatedOn":"2020-06-28T02:26:47.8968784Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cd01871c-f24c-478d-b9f2-1eec835b3705","type":"Microsoft.Authorization/roleAssignments","name":"cd01871c-f24c-478d-b9f2-1eec835b3705"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"ae4622a7-bde9-4bca-9599-2d18571bfeba","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:04.9948448Z","updatedOn":"2020-06-28T02:13:04.9948448Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8fbd0f94-dbc4-4b41-b89f-d39c61939775","type":"Microsoft.Authorization/roleAssignments","name":"8fbd0f94-dbc4-4b41-b89f-d39c61939775"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"b47f071a-d6c9-4297-954e-83151fff489b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:26:58.4113645Z","updatedOn":"2020-06-28T02:26:58.4113645Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f7bcb38a-4254-415b-bb42-5be0927cc5b3","type":"Microsoft.Authorization/roleAssignments","name":"f7bcb38a-4254-415b-bb42-5be0927cc5b3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c29bee61-aa42-4f9c-be8b-840522822e1e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T13:39:10.8094236Z","updatedOn":"2020-06-28T13:39:10.8094236Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9cf9df38-5c44-486c-b632-5d3d9b8a1f85","type":"Microsoft.Authorization/roleAssignments","name":"9cf9df38-5c44-486c-b632-5d3d9b8a1f85"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"249ae1d3-b522-45be-a402-7a305735d066","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-19T22:36:12.1011895Z","updatedOn":"2018-11-19T22:36:12.1011895Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f4975c4b-3320-4ec6-9e1b-1c758d06ad55","type":"Microsoft.Authorization/roleAssignments","name":"f4975c4b-3320-4ec6-9e1b-1c758d06ad55"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2fda9054-fc12-457c-bb93-614f1f13426b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:12:24.1007764Z","updatedOn":"2019-01-04T04:12:24.1007764Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/fbe0e113-769d-4651-9d77-c3b470a714ab","type":"Microsoft.Authorization/roleAssignments","name":"fbe0e113-769d-4651-9d77-c3b470a714ab"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"39527840-d507-4477-8bd2-d7ffa4542194","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-15T21:06:41.8028199Z","updatedOn":"2018-11-15T21:06:41.8028199Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a5886114-fd73-4a40-9a7c-226bdc4617b1","type":"Microsoft.Authorization/roleAssignments","name":"a5886114-fd73-4a40-9a7c-226bdc4617b1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"44d2f8c7-d87d-45b0-87db-4cb97b40417d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:11:22.8446433Z","updatedOn":"2020-06-28T02:11:22.8446433Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2cf5f7f5-6b29-4501-9ae5-94dc1b765c24","type":"Microsoft.Authorization/roleAssignments","name":"2cf5f7f5-6b29-4501-9ae5-94dc1b765c24"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5caed073-2b85-4f0b-8792-afde9e986a5e","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:51:43.1917863Z","updatedOn":"2019-01-04T04:51:43.1917863Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/df1a2d1a-a8cc-426b-a65a-7eb0d2a71a53","type":"Microsoft.Authorization/roleAssignments","name":"df1a2d1a-a8cc-426b-a65a-7eb0d2a71a53"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:25:38.3359249Z","updatedOn":"2019-01-04T04:25:38.3359249Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4730c93b-bf36-463b-9545-ebe1880218cc","type":"Microsoft.Authorization/roleAssignments","name":"4730c93b-bf36-463b-9545-ebe1880218cc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"87ccb404-2e62-44d1-97c0-a842c400b985","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:08:54.9365955Z","updatedOn":"2020-06-28T02:08:54.9365955Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/dcbc5923-507d-4a28-be07-947993791c9c","type":"Microsoft.Authorization/roleAssignments","name":"dcbc5923-507d-4a28-be07-947993791c9c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8a5603a8-2c60-49ab-bc28-a989b91e187d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-30T03:12:15.7525228Z","updatedOn":"2020-06-30T03:12:15.7525228Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4c403ed2-c088-44b8-961f-323c41ca7cb6","type":"Microsoft.Authorization/roleAssignments","name":"4c403ed2-c088-44b8-961f-323c41ca7cb6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8ff738a5-abcd-4864-a162-6c18f7c9cbd9","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:31:44.0748782Z","updatedOn":"2020-06-28T02:31:44.0748782Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88ac53e4-cb0c-4fcf-ad69-f055e301f047","type":"Microsoft.Authorization/roleAssignments","name":"88ac53e4-cb0c-4fcf-ad69-f055e301f047"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a5c919a9-89c9-45fb-880a-5e3e0b4fcb84","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T08:20:11.1204486Z","updatedOn":"2020-06-28T08:20:11.1204486Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b3e51ab0-0a5d-4752-9774-43e63126d4b3","type":"Microsoft.Authorization/roleAssignments","name":"b3e51ab0-0a5d-4752-9774-43e63126d4b3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a6920a4d-d20a-4ac6-a844-13565e224294","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T08:20:49.9287645Z","updatedOn":"2020-06-28T08:20:49.9287645Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e70cd72a-69e0-4f89-aeca-eaa908c123aa","type":"Microsoft.Authorization/roleAssignments","name":"e70cd72a-69e0-4f89-aeca-eaa908c123aa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"5c617d2b-99f8-4c90-98fe-dfe040fa33c1","principalType":"ServicePrincipal","scope":"/","createdOn":"2018-02-27T19:19:50.2663941Z","updatedOn":"2018-02-27T19:19:50.2663941Z","createdBy":null,"updatedBy":null},"id":"/providers/Microsoft.Authorization/roleAssignments/3e883d24-b106-42ff-ad13-d7bf271b964d","type":"Microsoft.Authorization/roleAssignments","name":"3e883d24-b106-42ff-ad13-d7bf271b964d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227","createdOn":"2019-03-26T22:01:02.9428505Z","updatedOn":"2019-03-26T22:01:02.9428505Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227/providers/Microsoft.Authorization/roleAssignments/10d00e1e-13b8-4846-9e4f-d4db71bddab0","type":"Microsoft.Authorization/roleAssignments","name":"10d00e1e-13b8-4846-9e4f-d4db71bddab0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2019-03-26T22:01:02.9136073Z","updatedOn":"2019-03-26T22:01:02.9136073Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6f4de15e-9316-4714-a7c4-40c46cf8e067","type":"Microsoft.Authorization/roleAssignments","name":"6f4de15e-9316-4714-a7c4-40c46cf8e067"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"2ac3f52f-f3ad-40a4-9b2d-aa24e4c7bbba","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:13.2137492Z","updatedOn":"2020-02-25T18:36:13.2137492Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/18fdd87e-1c01-424e-b380-32310f4940c2","type":"Microsoft.Authorization/roleAssignments","name":"18fdd87e-1c01-424e-b380-32310f4940c2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"4a113caa-961f-4535-ac9b-79bfba8b9ed2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:00.4746112Z","updatedOn":"2020-02-25T18:36:00.4746112Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d9bcf58a-6f24-446d-bf60-20ffe5142396","type":"Microsoft.Authorization/roleAssignments","name":"d9bcf58a-6f24-446d-bf60-20ffe5142396"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"56d08bc2-cc29-4d23-9d23-fd396b807b02","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:55.7490022Z","updatedOn":"2020-02-25T18:35:55.7490022Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6e2b954b-42b2-48e0-997a-622601f0a4b4","type":"Microsoft.Authorization/roleAssignments","name":"6e2b954b-42b2-48e0-997a-622601f0a4b4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6179a082-c057-4fe3-8118-916b816a42e3","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:57.9173081Z","updatedOn":"2020-02-25T18:35:57.9173081Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9","type":"Microsoft.Authorization/roleAssignments","name":"8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6fe923a8-2e4d-4c1f-b7d6-a7c5984f0129","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:23.0673659Z","updatedOn":"2020-02-25T18:36:23.0673659Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d0817c57-3e5b-4363-88b7-52baadd5c362","type":"Microsoft.Authorization/roleAssignments","name":"d0817c57-3e5b-4363-88b7-52baadd5c362"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7c2d0d59-528c-434a-8c6c-03330539cad2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:31.2596366Z","updatedOn":"2020-02-25T18:36:31.2596366Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/0dabf212-a1c7-4af6-ba8b-be045493b368","type":"Microsoft.Authorization/roleAssignments","name":"0dabf212-a1c7-4af6-ba8b-be045493b368"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7d7aed0a-228e-420b-a6a2-82a49dacb8cb","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:52.9188704Z","updatedOn":"2020-02-25T18:35:52.9188704Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d674b853-332e-4437-9ddb-bba8fde7ccce","type":"Microsoft.Authorization/roleAssignments","name":"d674b853-332e-4437-9ddb-bba8fde7ccce"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"985bb80e-8113-4542-8d68-418589e6ff34","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:02.5324969Z","updatedOn":"2020-02-25T18:36:02.5324969Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b4bdc3a7-78e2-4b26-8b90-e474aa120b47","type":"Microsoft.Authorization/roleAssignments","name":"b4bdc3a7-78e2-4b26-8b90-e474aa120b47"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"b7a49237-f5b0-473f-a4ff-6830d23af17d","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:38.8393742Z","updatedOn":"2020-02-25T18:36:38.8393742Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/00625383-053d-4227-a4db-b098e9bd2289","type":"Microsoft.Authorization/roleAssignments","name":"00625383-053d-4227-a4db-b098e9bd2289"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"f2e939bc-742a-42f9-a27a-f0982c6e3f64","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:05.0954462Z","updatedOn":"2020-02-25T18:36:05.0954462Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/3151fe9c-fcd2-45d3-a256-72fb13b86df5","type":"Microsoft.Authorization/roleAssignments","name":"3151fe9c-fcd2-45d3-a256-72fb13b86df5"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c","principalId":"b7b8bd19-f827-425f-9be1-fd8a86b21904","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-07-06T18:51:22.9449669Z","updatedOn":"2020-07-06T18:51:22.9449669Z","createdBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7","updatedBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b3a9e1db-fde1-4ddd-ac1c-91913be67359","type":"Microsoft.Authorization/roleAssignments","name":"b3a9e1db-fde1-4ddd-ac1c-91913be67359"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-26T22:01:02.9176787Z","updatedOn":"2019-03-26T22:01:02.9176787Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/4b771ea9-81de-4fc4-aa28-a3a0b9b4a320","type":"Microsoft.Authorization/roleAssignments","name":"4b771ea9-81de-4fc4-aa28-a3a0b9b4a320"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-27T00:49:37.3000523Z","updatedOn":"2019-03-27T00:49:37.3000523Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/e6e1fffd-83f7-40c7-9f33-e56e2cf75b29","type":"Microsoft.Authorization/roleAssignments","name":"e6e1fffd-83f7-40c7-9f33-e56e2cf75b29"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-27T00:50:08.3039053Z","updatedOn":"2019-03-27T00:50:08.3039053Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/3d01f56e-ee3a-41ed-a775-0e067546cb12","type":"Microsoft.Authorization/roleAssignments","name":"3d01f56e-ee3a-41ed-a775-0e067546cb12"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"ce2366a6-64d7-441b-939c-c9d23f91cccd","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47","createdOn":"2020-03-12T20:43:06.5941189Z","updatedOn":"2020-03-12T20:43:06.5941189Z","createdBy":"606f48c8-d219-4875-991d-ae6befaf0756","updatedBy":"606f48c8-d219-4875-991d-ae6befaf0756"},"id":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47/providers/Microsoft.Authorization/roleAssignments/ad9e2cd7-0ff7-4931-9b17-656c8f17934b","type":"Microsoft.Authorization/roleAssignments","name":"ad9e2cd7-0ff7-4931-9b17-656c8f17934b"}]}' + string: '{"odata.metadata": "https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects/@Element", + "odata.type": "Microsoft.DirectoryServices.Application", "objectType": "Application", + "objectId": "e8ae53eb-fa40-40f6-ac3f-da1071136bb9", "deletionTimestamp": null, + "acceptMappedClaims": null, "addIns": [], "appId": "f1e74bec-0ddb-437e-a809-5baec3dbd2ce", + "applicationTemplateId": null, "appRoles": [], "availableToOtherTenants": + false, "displayName": "cliakstest000002", "errorUrl": null, "groupMembershipClaims": + null, "homepage": "http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com", + "identifierUris": ["http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com"], + "informationalUrls": {"termsOfService": null, "support": null, "privacy": + null, "marketing": null}, "isDeviceOnlyAuthSupported": null, "keyCredentials": + [], "knownClientApplications": [], "logoutUrl": null, "logo@odata.mediaEditLink": + "directoryObjects/e8ae53eb-fa40-40f6-ac3f-da1071136bb9/Microsoft.DirectoryServices.Application/logo", + "logo@odata.mediaContentType": "application/json;odata=minimalmetadata; charset=utf-8", + "logoUrl": null, "mainLogo@odata.mediaEditLink": "directoryObjects/e8ae53eb-fa40-40f6-ac3f-da1071136bb9/Microsoft.DirectoryServices.Application/mainLogo", + "oauth2AllowIdTokenImplicitFlow": true, "oauth2AllowImplicitFlow": false, + "oauth2AllowUrlPathMatching": false, "oauth2Permissions": [{"adminConsentDescription": + "Allow the application to access cliakstest000002 on behalf of the signed-in + user.", "adminConsentDisplayName": "Access cliakstest000002", "id": "b23e87a3-14dc-4a1f-8b75-7e4e79a19300", + "isEnabled": true, "type": "User", "userConsentDescription": "Allow the application + to access cliakstest000002 on your behalf.", "userConsentDisplayName": "Access + cliakstest000002", "value": "user_impersonation"}], "oauth2RequirePostResponse": + false, "optionalClaims": null, "orgRestrictions": [], "parentalControlSettings": + {"countriesBlockedForMinors": [], "legalAgeGroupRule": "Allow"}, "passwordCredentials": + [{"customKeyIdentifier": null, "endDate": "2025-09-14T18:44:08.006613Z", "keyId": + "3a21af43-f872-4962-9ffd-a1477195f5e0", "startDate": "2020-09-14T18:44:08.006613Z", + "value": "ReplacedSPPassword123*"}], "publicClient": null, "publisherDomain": + "microsoft.onmicrosoft.com", "recordConsentConditions": null, "replyUrls": + [], "requiredResourceAccess": [], "samlMetadataUrl": null, "signInAudience": + "AzureADMyOrg", "tokenEncryptionKeyId": null}' headers: + access-control-allow-origin: + - '*' cache-control: - no-cache content-length: - - '31783' + - '2375' content-type: - - application/json; charset=utf-8 + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; date: - - Wed, 29 Jul 2020 09:17:04 GMT + - Mon, 14 Sep 2020 18:44:09 GMT + duration: + - '4302801' expires: - '-1' + location: + - https://graph.windows.net/00000000-0000-0000-0000-000000000000/directoryObjects/e8ae53eb-fa40-40f6-ac3f-da1071136bb9/Microsoft.DirectoryServices.Application + ocp-aad-diagnostics-server-name: + - nYxYw8PmkG3JXKkHL9YqY6Vm27uSkWJuXcM++f2qZKQ= + ocp-aad-session-key: + - byD1lqiYGQi7z_7ErswrE6C27AzOfb8PEwi2bCVT9JOg0mdgweQyzSvm4_hiFlsUOW7rHtZDdN4PA1pwDsOgN2f45a-0Dc9Fl0TN1aB9MjOzC6PjVCnN4mO6MgOpMIjU0w8_A-dqXOw9SkCJ_SiZZp7D3MQsgXwxiI78ZpTl_ys.3C_h6AYmpNCo23pwz92DJOh2TLssuRlepwhn93hQogs pragma: - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + request-id: + - d587066e-e565-4956-97db-98167a6f65db strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '1' + x-powered-by: + - ASP.NET status: - code: 200 - message: OK + code: 201 + message: Created - request: body: null headers: @@ -635,44 +685,59 @@ interactions: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27Network%20Contributor%27&api-version=2018-01-01-preview + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/applications?$filter=appId%20eq%20%27f1e74bec-0ddb-437e-a809-5baec3dbd2ce%27&api-version=1.6 response: body: - string: '{"value":[{"properties":{"roleName":"Network Contributor","type":"BuiltInRole","description":"Lets - you manage networks, but not access to them.","assignableScopes":["/"],"permissions":[{"actions":["Microsoft.Authorization/*/read","Microsoft.Insights/alertRules/*","Microsoft.Network/*","Microsoft.ResourceHealth/availabilityStatuses/read","Microsoft.Resources/deployments/*","Microsoft.Resources/subscriptions/resourceGroups/read","Microsoft.Support/*"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2015-06-02T00:18:27.3542698Z","updatedOn":"2016-05-31T23:14:00.3326359Z","createdBy":null,"updatedBy":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","type":"Microsoft.Authorization/roleDefinitions","name":"4d97b98b-1d4f-4787-a291-c67834d212e7"}]}' + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.Application","objectType":"Application","objectId":"e8ae53eb-fa40-40f6-ac3f-da1071136bb9","deletionTimestamp":null,"acceptMappedClaims":null,"addIns":[],"appId":"f1e74bec-0ddb-437e-a809-5baec3dbd2ce","applicationTemplateId":null,"appRoles":[],"availableToOtherTenants":false,"displayName":"cliakstest000002","errorUrl":null,"groupMembershipClaims":null,"homepage":"http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com","identifierUris":["http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com"],"informationalUrls":{"termsOfService":null,"support":null,"privacy":null,"marketing":null},"isDeviceOnlyAuthSupported":null,"keyCredentials":[],"knownClientApplications":[],"logoutUrl":null,"logo@odata.mediaEditLink":"directoryObjects/e8ae53eb-fa40-40f6-ac3f-da1071136bb9/Microsoft.DirectoryServices.Application/logo","logoUrl":null,"mainLogo@odata.mediaEditLink":"directoryObjects/e8ae53eb-fa40-40f6-ac3f-da1071136bb9/Microsoft.DirectoryServices.Application/mainLogo","oauth2AllowIdTokenImplicitFlow":true,"oauth2AllowImplicitFlow":false,"oauth2AllowUrlPathMatching":false,"oauth2Permissions":[{"adminConsentDescription":"Allow + the application to access cliakstest000002 on behalf of the signed-in user.","adminConsentDisplayName":"Access + cliakstest000002","id":"b23e87a3-14dc-4a1f-8b75-7e4e79a19300","isEnabled":true,"type":"User","userConsentDescription":"Allow + the application to access cliakstest000002 on your behalf.","userConsentDisplayName":"Access + cliakstest000002","value":"user_impersonation"}],"oauth2RequirePostResponse":false,"optionalClaims":null,"orgRestrictions":[],"parentalControlSettings":{"countriesBlockedForMinors":[],"legalAgeGroupRule":"Allow"},"passwordCredentials":[{"customKeyIdentifier":null,"endDate":"2025-09-14T18:44:08.006613Z","keyId":"3a21af43-f872-4962-9ffd-a1477195f5e0","startDate":"2020-09-14T18:44:08.006613Z","value":null}],"publicClient":null,"publisherDomain":"microsoft.onmicrosoft.com","recordConsentConditions":null,"replyUrls":[],"requiredResourceAccess":[],"samlMetadataUrl":null,"signInAudience":"AzureADMyOrg","tokenEncryptionKeyId":null}]}' headers: + access-control-allow-origin: + - '*' cache-control: - no-cache content-length: - - '873' + - '2292' content-type: - - application/json; charset=utf-8 + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; date: - - Wed, 29 Jul 2020 09:17:04 GMT + - Mon, 14 Sep 2020 18:44:09 GMT + duration: + - '592045' expires: - '-1' + ocp-aad-diagnostics-server-name: + - opRKN2/KfeNp+HRXazpyA0qlp6p02Zs+ZikBjD4xGGw= + ocp-aad-session-key: + - 5J8nhD3QqyXyZCEubCWrVzURaGWX5WFtwAZxq-28U-9WlcT11b8KU4hQUXuBF0KeAObdTB9LGKaBx4v8Z2_FU6VRy2le1qzm2G7aHG4PrdeIhiOQq0E8hVmC6PGq9-7SDgDZFFLk-MQ6jW8woIRMEbVEPu4scDQwQRUbnVge_Qo.Uerq4ciZiOYUxyEleX4d75kq0NfgaIhbMbJ79XanmRE pragma: - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + request-id: + - c6026d6f-dcb4-4b33-b81f-ef5bf5ef7856 strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '2' + x-powered-by: + - ASP.NET status: code: 200 message: OK - request: - body: null + body: '{"accountEnabled": "True", "appId": "f1e74bec-0ddb-437e-a809-5baec3dbd2ce"}' headers: Accept: - application/json @@ -682,48 +747,54 @@ interactions: - aks create Connection: - keep-alive + Content-Length: + - '75' + Content-Type: + - application/json; charset=utf-8 ParameterSetName: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US - method: GET - uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/servicePrincipals?$filter=servicePrincipalNames%2Fany%28c%3Ac%20eq%20%27660cc442-629f-4941-8c41-0fea0e92638a%27%29&api-version=1.6 + method: POST + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/servicePrincipals?api-version=1.6 response: body: - string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"d4049292-9844-4910-b81d-a2b51e66da7a","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":[],"appDisplayName":"tosiumsi13","appId":"660cc442-629f-4941-8c41-0fea0e92638a","applicationTemplateId":null,"appOwnerTenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","appRoleAssignmentRequired":false,"appRoles":[],"displayName":"tosiumsi13","errorUrl":null,"homepage":"http://c8fd48.tosiumsi13-tosi-26fe00.westus2.cloudapp.azure.com","informationalUrls":{"termsOfService":null,"support":null,"privacy":null,"marketing":null},"keyCredentials":[],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[{"adminConsentDescription":"Allow - the application to access tosiumsi13 on behalf of the signed-in user.","adminConsentDisplayName":"Access - tosiumsi13","id":"8115461d-f32d-4a96-b21f-3e520026d2c5","isEnabled":true,"type":"User","userConsentDescription":"Allow - the application to access tosiumsi13 on your behalf.","userConsentDisplayName":"Access - tosiumsi13","value":"user_impersonation"}],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":"Microsoft","replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["http://c8fd48.tosiumsi13-tosi-26fe00.westus2.cloudapp.azure.com","660cc442-629f-4941-8c41-0fea0e92638a"],"servicePrincipalType":"Application","signInAudience":"AzureADMyOrg","tags":[],"tokenEncryptionKeyId":null}]}' + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects/@Element","odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"b36b4034-8d68-4f4d-aaa0-6efc2c78d33d","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":[],"appDisplayName":"cliakstest000002","appId":"f1e74bec-0ddb-437e-a809-5baec3dbd2ce","applicationTemplateId":null,"appOwnerTenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","appRoleAssignmentRequired":false,"appRoles":[],"displayName":"cliakstest000002","errorUrl":null,"homepage":"http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com","informationalUrls":{"termsOfService":null,"support":null,"privacy":null,"marketing":null},"keyCredentials":[],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[{"adminConsentDescription":"Allow + the application to access cliakstest000002 on behalf of the signed-in user.","adminConsentDisplayName":"Access + cliakstest000002","id":"b23e87a3-14dc-4a1f-8b75-7e4e79a19300","isEnabled":true,"type":"User","userConsentDescription":"Allow + the application to access cliakstest000002 on your behalf.","userConsentDisplayName":"Access + cliakstest000002","value":"user_impersonation"}],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":"Microsoft","replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["f1e74bec-0ddb-437e-a809-5baec3dbd2ce","http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com"],"servicePrincipalType":"Application","signInAudience":"AzureADMyOrg","tags":[],"tokenEncryptionKeyId":null}' headers: access-control-allow-origin: - '*' cache-control: - no-cache content-length: - - '1725' + - '1782' content-type: - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 dataserviceversion: - 3.0; date: - - Wed, 29 Jul 2020 09:17:04 GMT + - Mon, 14 Sep 2020 18:44:09 GMT duration: - - '1457890' + - '1914910' expires: - '-1' + location: + - https://graph.windows.net/00000000-0000-0000-0000-000000000000/directoryObjects/b36b4034-8d68-4f4d-aaa0-6efc2c78d33d/Microsoft.DirectoryServices.ServicePrincipal ocp-aad-diagnostics-server-name: - - RRQtJPIH/giH2cDlzh47lKVUFcsb4+fX2TnPtqpMUzY= + - LgXAcbVEU6vczw1+dJY77u/nuJ5/uLYq6pT3Y4X/6fM= ocp-aad-session-key: - - fp2r2ZPZccTUMLDufJ7_TKnoI4mWNRQXWG0XfGpYvUdqNEl0oiBN6aZdl-sGAz34_ADRLzogH8o9R92cJ2BTn9z6Dl-fyOkcVj3aPVgGGZJHWSmfxK2k-mXf065HLnoi.wTOilHuaFZvDNSuuolWYrjDGKm8_SddTCeRTBoaXYXk + - Ml1t6LLsZIV3PZc881Yz9ExdlRh2qHxSiFPxoZN6s-VW45xrS446gETp6i72esMToUbeXyYTZyw9lesQN0uq5nHa4bi8ZLBmG_0mJQqX-WHJ7RdHbsCHiJcc3mZOVchhP8v-e3Rjwv7-zizZqBiK-cw3MbeQLcYGIHNjov-2Cls.YGCYJx6_x9GJJf8TStolUceZL6UD5ipOkxkHs3jZgG0 pragma: - no-cache request-id: - - a8b13816-f1a2-4c6a-99a2-7d7f0704bd37 + - 90f0f418-7c5f-43db-903c-8ce23cb41353 strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -735,11 +806,10 @@ interactions: x-powered-by: - ASP.NET status: - code: 200 - message: OK + code: 201 + message: Created - request: - body: '{"properties": {"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", - "principalId": "d4049292-9844-4910-b81d-a2b51e66da7a"}}' + body: null headers: Accept: - application/json @@ -749,34 +819,28 @@ interactions: - aks create Connection: - keep-alive - Content-Length: - - '233' - Content-Type: - - application/json; charset=utf-8 - Cookie: - - x-ms-gateway-slice=Production ParameterSetName: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleAssignments/27602a2b-240b-43a3-b88c-50322188e651?api-version=2018-09-01-preview + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleAssignments?$filter=atScope%28%29&api-version=2020-04-01-preview response: body: - string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"d4049292-9844-4910-b81d-a2b51e66da7a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet","createdOn":"2020-07-29T09:17:05.6216884Z","updatedOn":"2020-07-29T09:17:05.6216884Z","createdBy":null,"updatedBy":"547f6960-a967-417a-a9a4-0f35fbdca11c"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleAssignments/27602a2b-240b-43a3-b88c-50322188e651","type":"Microsoft.Authorization/roleAssignments","name":"27602a2b-240b-43a3-b88c-50322188e651"}' + string: '{"value":[{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"07cc304c-9c33-4af3-b55e-3161b352438c","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T18:57:43.7674845Z","updatedOn":"2020-04-28T18:57:43.7674845Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/89ef5a42-558f-4dc2-a21d-61f47f87c5aa","type":"Microsoft.Authorization/roleAssignments","name":"89ef5a42-558f-4dc2-a21d-61f47f87c5aa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"21f0be01-d4b7-40d1-8dbd-801823b81c0b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T17:11:43.4784066Z","updatedOn":"2020-04-28T17:11:43.4784066Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c7a17f89-6fda-4d7f-9024-279fe7c46b9e","type":"Microsoft.Authorization/roleAssignments","name":"c7a17f89-6fda-4d7f-9024-279fe7c46b9e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"234fd4f9-44c3-48e4-8135-490ee6c0e52f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T17:15:20.6839476Z","updatedOn":"2020-04-28T17:15:20.6839476Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b677c994-5d2c-4d21-8772-4a770c383a69","type":"Microsoft.Authorization/roleAssignments","name":"b677c994-5d2c-4d21-8772-4a770c383a69"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"235c8055-0c0b-4643-8f60-606f9efaaeb4","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T03:41:37.0700725Z","updatedOn":"2020-04-29T03:41:37.0700725Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f2790ff5-c68c-4783-bfbe-0c7210b1320d","type":"Microsoft.Authorization/roleAssignments","name":"f2790ff5-c68c-4783-bfbe-0c7210b1320d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"2e516a89-54d9-4c53-b05a-43e0b7c1cbbb","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T03:43:26.9737395Z","updatedOn":"2020-04-29T03:43:26.9737395Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/64ded23e-c648-452f-a53e-2bb0b1947293","type":"Microsoft.Authorization/roleAssignments","name":"64ded23e-c648-452f-a53e-2bb0b1947293"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"4b11e1be-3717-4123-a326-ef1b80c254c2","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T17:14:00.0562525Z","updatedOn":"2020-04-28T17:14:00.0562525Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/eaece071-786c-479c-a0b0-5c41d876600c","type":"Microsoft.Authorization/roleAssignments","name":"eaece071-786c-479c-a0b0-5c41d876600c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"5582b388-8729-4b4c-b90b-328bf7d18a99","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-01T17:17:32.8545165Z","updatedOn":"2020-05-01T17:17:32.8545165Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5b13726e-0868-475f-9d6f-e19ed5886a5e","type":"Microsoft.Authorization/roleAssignments","name":"5b13726e-0868-475f-9d6f-e19ed5886a5e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"6364d274-72f5-4f81-9ddf-ec6817022c2f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-01T17:22:00.3902257Z","updatedOn":"2020-05-01T17:22:00.3902257Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/aa99e113-3d5e-4fb5-ac2a-f34b0bf0aa32","type":"Microsoft.Authorization/roleAssignments","name":"aa99e113-3d5e-4fb5-ac2a-f34b0bf0aa32"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"cc4d8335-ccfb-44f9-86a0-c080d427a1db","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T00:04:19.0452651Z","updatedOn":"2020-04-29T00:04:19.0452651Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/593f0b85-3d78-43c8-a842-abfb4eab0a9b","type":"Microsoft.Authorization/roleAssignments","name":"593f0b85-3d78-43c8-a842-abfb4eab0a9b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4abbcc35-e782-43d8-92c5-2d3f1bd2253f","principalId":"e809f5bd-c858-4905-a7d6-60a6013f1546","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-03T15:06:36.2124864Z","updatedOn":"2020-08-03T15:06:36.2124864Z","createdBy":"a5cae52f-366a-417b-b718-e73d17746c35","updatedBy":"a5cae52f-366a-417b-b718-e73d17746c35","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/71b88381-621b-464e-b17a-6cd9433ad5a3","type":"Microsoft.Authorization/roleAssignments","name":"71b88381-621b-464e-b17a-6cd9433ad5a3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"01e2b341-56ec-43fb-9f53-f6332d30df93","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-05-03T20:35:52.7357152Z","updatedOn":"2018-05-03T20:35:52.7357152Z","createdBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","updatedBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4665dbd4-b405-4cc3-9321-1bee27e6101c","type":"Microsoft.Authorization/roleAssignments","name":"4665dbd4-b405-4cc3-9321-1bee27e6101c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-11T13:25:07.0669336Z","updatedOn":"2020-02-11T13:25:07.0669336Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b8056eb0-60e9-433c-85f9-f2c9289fc1a2","type":"Microsoft.Authorization/roleAssignments","name":"b8056eb0-60e9-433c-85f9-f2c9289fc1a2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"09914860-7ec9-4151-8431-31797899a359","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-22T06:41:53.1813823Z","updatedOn":"2019-04-22T06:41:53.1813823Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6b620efc-0123-402f-8462-1f1b47168729","type":"Microsoft.Authorization/roleAssignments","name":"6b620efc-0123-402f-8462-1f1b47168729"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"1007b5b7-ef5e-4ab0-8e86-81b52ce5747d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T21:30:40.2784826Z","updatedOn":"2020-02-04T21:30:40.2784826Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d9007cf6-65d3-46cc-b02e-5cdfa8315947","type":"Microsoft.Authorization/roleAssignments","name":"d9007cf6-65d3-46cc-b02e-5cdfa8315947"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"135a9bbc-ad60-452c-8ffe-519aa862e879","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-05T06:59:02.2006715Z","updatedOn":"2020-02-05T06:59:02.2006715Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9cdd372a-911d-4b05-82b9-04315c9e8e0f","type":"Microsoft.Authorization/roleAssignments","name":"9cdd372a-911d-4b05-82b9-04315c9e8e0f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-21T03:42:13.8891609Z","updatedOn":"2020-02-21T03:42:13.8891609Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c41b0416-12e4-49bb-9e35-411e4f409102","type":"Microsoft.Authorization/roleAssignments","name":"c41b0416-12e4-49bb-9e35-411e4f409102"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"1ec25b73-94d5-4bf9-a56f-ca7d9bd4164c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-27T17:05:13.7273840Z","updatedOn":"2020-04-27T17:05:13.7273840Z","createdBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","updatedBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9e06e920-0fc3-47a8-867a-ce7804818059","type":"Microsoft.Authorization/roleAssignments","name":"9e06e920-0fc3-47a8-867a-ce7804818059"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"22638f38-fe4e-4b44-b093-7cecedb4896a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-22T07:53:45.7192431Z","updatedOn":"2020-04-22T07:53:45.7192431Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0d01cbd3-f3e3-4712-95c6-cf07a0224887","type":"Microsoft.Authorization/roleAssignments","name":"0d01cbd3-f3e3-4712-95c6-cf07a0224887"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"2fda9054-fc12-457c-bb93-614f1f13426b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-25T03:10:56.6742842Z","updatedOn":"2019-10-25T03:10:56.6742842Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c94cb5f8-6d0c-4405-be47-b599a43f2bde","type":"Microsoft.Authorization/roleAssignments","name":"c94cb5f8-6d0c-4405-be47-b599a43f2bde"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-08T22:51:35.8836739Z","updatedOn":"2020-04-08T22:51:35.8836739Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e35806bd-ef22-4a25-80d9-9429df6254c6","type":"Microsoft.Authorization/roleAssignments","name":"e35806bd-ef22-4a25-80d9-9429df6254c6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"3da6ea3e-6e90-4f8d-998c-19906865a871","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2017-06-16T23:32:44.3548155Z","updatedOn":"2017-06-16T23:32:44.3548155Z","createdBy":"f115a02a-6f42-4297-aabb-f0f6022ee60b","updatedBy":"f115a02a-6f42-4297-aabb-f0f6022ee60b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c2330a8b-4550-4dcf-841a-88553080079b","type":"Microsoft.Authorization/roleAssignments","name":"c2330a8b-4550-4dcf-841a-88553080079b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"471feb6d-5a83-439e-af7b-311f4eee2d0c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-25T08:26:29.8675330Z","updatedOn":"2020-03-25T08:26:29.8675330Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d00f7f11-a22d-4bb3-a016-07d2ba2b13c0","type":"Microsoft.Authorization/roleAssignments","name":"d00f7f11-a22d-4bb3-a016-07d2ba2b13c0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"4744d4c9-1026-421b-87ce-b102213af921","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-09-14T02:15:59.1199760Z","updatedOn":"2019-09-14T02:15:59.1199760Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/593989ab-0941-462b-aeba-5aba52f8755b","type":"Microsoft.Authorization/roleAssignments","name":"593989ab-0941-462b-aeba-5aba52f8755b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"4adb4718-2323-4071-b594-c84c9d5a5c06","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-14T21:19:25.3668580Z","updatedOn":"2020-05-14T21:19:25.3668580Z","createdBy":"82f25a3e-d28d-4c27-90d6-d92c79d98936","updatedBy":"82f25a3e-d28d-4c27-90d6-d92c79d98936","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/668f3f0e-bbb7-42d3-9ab1-1482922c06a7","type":"Microsoft.Authorization/roleAssignments","name":"668f3f0e-bbb7-42d3-9ab1-1482922c06a7"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"4b5234ab-8f8d-429e-9e1c-ea5799b66ffa","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-07T00:35:48.4591165Z","updatedOn":"2020-05-07T00:35:48.4591165Z","createdBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","updatedBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ff740118-1a0b-4bf5-8f2a-c555e9923ea3","type":"Microsoft.Authorization/roleAssignments","name":"ff740118-1a0b-4bf5-8f2a-c555e9923ea3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"4c6b5ae4-3f4a-4317-8970-2ed342366d0b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-10T19:44:02.6434834Z","updatedOn":"2019-10-10T19:44:02.6434834Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ecd71fb9-414b-496d-ba90-8be383086b97","type":"Microsoft.Authorization/roleAssignments","name":"ecd71fb9-414b-496d-ba90-8be383086b97"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-09-23T02:06:16.8281713Z","updatedOn":"2019-09-23T02:06:16.8281713Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a301a171-6505-42c5-a8b2-bcf09674b59c","type":"Microsoft.Authorization/roleAssignments","name":"a301a171-6505-42c5-a8b2-bcf09674b59c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"53bb8815-874d-4b05-9953-1158e05aa080","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-05T05:29:51.2703674Z","updatedOn":"2020-02-05T05:29:51.2703674Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/382ca8aa-eaac-49fb-8a33-ad06c08ae449","type":"Microsoft.Authorization/roleAssignments","name":"382ca8aa-eaac-49fb-8a33-ad06c08ae449"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"547f6960-a967-417a-a9a4-0f35fbdca11c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-08T12:55:39.9212416Z","updatedOn":"2020-01-08T12:55:39.9212416Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/081427e9-c895-4903-8573-77da86dcdae1","type":"Microsoft.Authorization/roleAssignments","name":"081427e9-c895-4903-8573-77da86dcdae1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"5ecb1531-0d8c-4a89-93cb-1b48b2224358","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T22:22:14.0297869Z","updatedOn":"2020-04-20T22:22:14.0297869Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/966ec633-e653-441f-910c-8536f7899f69","type":"Microsoft.Authorization/roleAssignments","name":"966ec633-e653-441f-910c-8536f7899f69"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-05-03T20:35:52.7459838Z","updatedOn":"2018-05-03T20:35:52.7459838Z","createdBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","updatedBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8938ff08-7fd2-4669-89d4-d828c2630026","type":"Microsoft.Authorization/roleAssignments","name":"8938ff08-7fd2-4669-89d4-d828c2630026"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"66f30f72-79ab-433f-b57a-1c6a86207a91","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-30T06:27:35.9310363Z","updatedOn":"2020-04-30T06:27:35.9310363Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6a1327e4-100e-43ee-b04e-1403969b805b","type":"Microsoft.Authorization/roleAssignments","name":"6a1327e4-100e-43ee-b04e-1403969b805b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"67f96a40-adf7-4f43-888f-33526c5cfa95","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-04T22:47:58.0983077Z","updatedOn":"2020-06-04T22:47:58.0983077Z","createdBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","updatedBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/56c004eb-8b48-40b3-830d-e595c56ebeea","type":"Microsoft.Authorization/roleAssignments","name":"56c004eb-8b48-40b3-830d-e595c56ebeea"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"6b83bfa2-0af9-4f08-a887-d6145eef4405","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-06-13T06:44:49.9960198Z","updatedOn":"2019-06-13T06:44:49.9960198Z","createdBy":"f058371f-0c0e-46bb-a5d4-f8aec637a467","updatedBy":"f058371f-0c0e-46bb-a5d4-f8aec637a467","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/33958269-41a0-400a-91a1-6303d954c8f0","type":"Microsoft.Authorization/roleAssignments","name":"33958269-41a0-400a-91a1-6303d954c8f0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"70e8a539-370b-4e1b-840d-ec8188e46c22","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-27T19:05:00.2764645Z","updatedOn":"2020-01-27T19:05:00.2764645Z","createdBy":"4744d4c9-1026-421b-87ce-b102213af921","updatedBy":"4744d4c9-1026-421b-87ce-b102213af921","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f0575c6a-aabc-4a2e-b169-379b64f33f8a","type":"Microsoft.Authorization/roleAssignments","name":"f0575c6a-aabc-4a2e-b169-379b64f33f8a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"75f7cda0-cb32-4ebd-8e6e-628a0fab0c27","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-26T16:21:06.7365340Z","updatedOn":"2020-05-26T16:21:06.7365340Z","createdBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","updatedBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/19a3bbc1-fca8-4ec6-b0e9-7d6861207524","type":"Microsoft.Authorization/roleAssignments","name":"19a3bbc1-fca8-4ec6-b0e9-7d6861207524"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-26T00:57:22.8153925Z","updatedOn":"2019-10-26T00:57:22.8153925Z","createdBy":"2fda9054-fc12-457c-bb93-614f1f13426b","updatedBy":"2fda9054-fc12-457c-bb93-614f1f13426b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8722a1fb-4828-4f43-aa59-0385179b3a05","type":"Microsoft.Authorization/roleAssignments","name":"8722a1fb-4828-4f43-aa59-0385179b3a05"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"78dfe0f4-529a-4e90-b73a-d719757f014f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-30T06:27:35.9911337Z","updatedOn":"2020-04-30T06:27:35.9911337Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/85726f1f-9e4c-415a-b56f-d8e799aaa96d","type":"Microsoft.Authorization/roleAssignments","name":"85726f1f-9e4c-415a-b56f-d8e799aaa96d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"7a69ab46-a41e-4e40-873c-bd130b5badd8","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-27T21:08:14.8085926Z","updatedOn":"2020-02-27T21:08:14.8085926Z","createdBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","updatedBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/742a0f1a-fbf1-46f1-929d-de8871fc1193","type":"Microsoft.Authorization/roleAssignments","name":"742a0f1a-fbf1-46f1-929d-de8871fc1193"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"7ac4ca6d-46a3-4e71-a705-858af50eea7b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-01T23:19:45.4260771Z","updatedOn":"2020-05-01T23:19:45.4260771Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/90e2b70f-7104-4f75-b6a5-e7226e497378","type":"Microsoft.Authorization/roleAssignments","name":"90e2b70f-7104-4f75-b6a5-e7226e497378"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-16T02:04:22.4782415Z","updatedOn":"2019-04-16T02:04:22.4782415Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bacdb283-653c-47eb-a578-11743d7898f8","type":"Microsoft.Authorization/roleAssignments","name":"bacdb283-653c-47eb-a578-11743d7898f8"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"80a6e936-2bdc-4927-b49e-2a7a19943b90","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T02:07:58.4393297Z","updatedOn":"2020-02-04T02:07:58.4393297Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e46a2f7d-e088-47e2-952f-a0a4818b3825","type":"Microsoft.Authorization/roleAssignments","name":"e46a2f7d-e088-47e2-952f-a0a4818b3825"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"82e11ed5-c720-4c8d-b396-a2fcd9e4291f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-26T08:05:19.1222694Z","updatedOn":"2020-03-26T08:05:19.1222694Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/1f46adf6-1c16-4743-b3ac-35cd30452c6b","type":"Microsoft.Authorization/roleAssignments","name":"1f46adf6-1c16-4743-b3ac-35cd30452c6b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"82f25a3e-d28d-4c27-90d6-d92c79d98936","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-07T00:35:48.6619455Z","updatedOn":"2020-05-07T00:35:48.6619455Z","createdBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","updatedBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/052d4514-701f-41dd-8171-4e8cfab148a6","type":"Microsoft.Authorization/roleAssignments","name":"052d4514-701f-41dd-8171-4e8cfab148a6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"882b228f-62f1-47e9-bd21-e9d01ac6eb4a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-27T09:09:33.7347978Z","updatedOn":"2020-03-27T09:09:33.7347978Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6d355b17-e9d6-47b7-9181-b54ad0083793","type":"Microsoft.Authorization/roleAssignments","name":"6d355b17-e9d6-47b7-9181-b54ad0083793"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"88d2a37e-a1ac-41b5-abf7-ca9304036eb5","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-03-19T02:50:30.0038186Z","updatedOn":"2019-03-19T02:50:30.0038186Z","createdBy":"b47f071a-d6c9-4297-954e-83151fff489b","updatedBy":"b47f071a-d6c9-4297-954e-83151fff489b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/26adec15-a0e4-4b2e-a437-9b545b9723fc","type":"Microsoft.Authorization/roleAssignments","name":"26adec15-a0e4-4b2e-a437-9b545b9723fc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"8ff738a5-abcd-4864-a162-6c18f7c9cbd9","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-17T00:50:00.2288905Z","updatedOn":"2019-04-17T00:50:00.2288905Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0e873fd7-4bdb-4df5-a510-c15f3ce99cd6","type":"Microsoft.Authorization/roleAssignments","name":"0e873fd7-4bdb-4df5-a510-c15f3ce99cd6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"9404195a-2cde-4a10-b88c-e7b41572bf31","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-23T03:53:49.9358521Z","updatedOn":"2020-06-23T03:53:49.9358521Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/02a0e839-adb0-448c-84f0-3a3f82ef8430","type":"Microsoft.Authorization/roleAssignments","name":"02a0e839-adb0-448c-84f0-3a3f82ef8430"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"990cdc7b-c3c9-40b1-ba7d-f0ab1577650b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-08T07:40:31.7235048Z","updatedOn":"2020-05-08T07:40:31.7235048Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cbfa0c0c-2653-4fb8-b9e5-d41bd96053a7","type":"Microsoft.Authorization/roleAssignments","name":"cbfa0c0c-2653-4fb8-b9e5-d41bd96053a7"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a5c919a9-89c9-45fb-880a-5e3e0b4fcb84","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-02T17:06:57.1466814Z","updatedOn":"2020-06-02T17:06:57.1466814Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ab903dde-d229-446d-b429-c1618b8aef5e","type":"Microsoft.Authorization/roleAssignments","name":"ab903dde-d229-446d-b429-c1618b8aef5e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a5cae52f-366a-417b-b718-e73d17746c35","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T03:34:09.1452976Z","updatedOn":"2020-04-29T03:34:09.1452976Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/feb76a5e-7bed-4bc8-b481-14bbb109bc33","type":"Microsoft.Authorization/roleAssignments","name":"feb76a5e-7bed-4bc8-b481-14bbb109bc33"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a70eb664-13f1-42a8-8cfc-86a61770d75f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-15T10:16:20.3297126Z","updatedOn":"2020-04-15T10:16:20.3297126Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0db6da93-ca6a-4b5a-8c44-7a3f2003d03c","type":"Microsoft.Authorization/roleAssignments","name":"0db6da93-ca6a-4b5a-8c44-7a3f2003d03c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a75ea823-3748-4855-a4df-f4ba5383d006","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-13T05:17:20.7354482Z","updatedOn":"2020-01-13T05:17:20.7354482Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e5a79ae7-7137-416f-a2cd-4b273ca62d5f","type":"Microsoft.Authorization/roleAssignments","name":"e5a79ae7-7137-416f-a2cd-4b273ca62d5f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-24T19:37:33.7189313Z","updatedOn":"2020-02-24T19:37:33.7189313Z","createdBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","updatedBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d1964993-fb9d-4be1-982f-fcd6ca7cd493","type":"Microsoft.Authorization/roleAssignments","name":"d1964993-fb9d-4be1-982f-fcd6ca7cd493"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2017-05-22T23:26:54.3208785Z","updatedOn":"2017-05-22T23:26:54.3208785Z","createdBy":"b09a0928-3846-4efb-a579-8540fb78b0a3","updatedBy":"b09a0928-3846-4efb-a579-8540fb78b0a3","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2d149cfb-bc18-48f8-b769-8a0cafd11bee","type":"Microsoft.Authorization/roleAssignments","name":"2d149cfb-bc18-48f8-b769-8a0cafd11bee"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"ba819494-4d2d-4d29-87e8-ced2e2dfc39d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-07T02:09:11.3539299Z","updatedOn":"2020-05-07T02:09:11.3539299Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5124598f-5127-4efc-9b15-9276948fe202","type":"Microsoft.Authorization/roleAssignments","name":"5124598f-5127-4efc-9b15-9276948fe202"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c1acf319-6d96-4dfe-b194-c27640869947","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-18T23:40:26.3271411Z","updatedOn":"2020-02-18T23:40:26.3271411Z","createdBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","updatedBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/27f9c0cd-fbc1-4810-a9f9-804efad4beec","type":"Microsoft.Authorization/roleAssignments","name":"27f9c0cd-fbc1-4810-a9f9-804efad4beec"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-02T10:52:21.7337863Z","updatedOn":"2020-04-02T10:52:21.7337863Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/54ff849a-1ced-4a28-b675-6bca70a82033","type":"Microsoft.Authorization/roleAssignments","name":"54ff849a-1ced-4a28-b675-6bca70a82033"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c66b4485-d88a-4007-b687-4867ca3c076f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-16T07:25:52.5298801Z","updatedOn":"2020-04-16T07:25:52.5298801Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/65fd85a7-3057-4f7f-86bd-0c36a612f483","type":"Microsoft.Authorization/roleAssignments","name":"65fd85a7-3057-4f7f-86bd-0c36a612f483"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c6979a71-063b-4a70-9fe0-5f85efe26f75","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-16T02:06:02.7961867Z","updatedOn":"2019-04-16T02:06:02.7961867Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f0d35040-a9f7-4870-b870-180ef33685c9","type":"Microsoft.Authorization/roleAssignments","name":"f0d35040-a9f7-4870-b870-180ef33685c9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"d3966e2a-8b9a-4701-b232-2cc1c8747c41","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-02T03:38:00.8756893Z","updatedOn":"2020-01-02T03:38:00.8756893Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d421e0d4-4653-48b2-9008-a877921474c8","type":"Microsoft.Authorization/roleAssignments","name":"d421e0d4-4653-48b2-9008-a877921474c8"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"d69d1d49-5dc8-4c8e-afb6-325d83ddcee8","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-22T21:44:38.6097605Z","updatedOn":"2020-05-22T21:44:38.6097605Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0a2d331c-57c6-48be-9d5f-f49da541fc7e","type":"Microsoft.Authorization/roleAssignments","name":"0a2d331c-57c6-48be-9d5f-f49da541fc7e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"dc1d0494-e87d-4231-b7e7-6b0d4912ca0e","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T21:30:10.6978339Z","updatedOn":"2020-02-04T21:30:10.6978339Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/91ea4b88-79c1-4163-bf5c-760b8add6d79","type":"Microsoft.Authorization/roleAssignments","name":"91ea4b88-79c1-4163-bf5c-760b8add6d79"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-03T05:33:46.3567584Z","updatedOn":"2020-04-03T05:33:46.3567584Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4f9fed67-4a0b-4f9d-870e-66a508cb73eb","type":"Microsoft.Authorization/roleAssignments","name":"4f9fed67-4a0b-4f9d-870e-66a508cb73eb"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-24T16:54:45.9590630Z","updatedOn":"2020-01-24T16:54:45.9590630Z","createdBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","updatedBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/04741a9e-7efb-41cc-b79c-8c725cc7563b","type":"Microsoft.Authorization/roleAssignments","name":"04741a9e-7efb-41cc-b79c-8c725cc7563b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"f058371f-0c0e-46bb-a5d4-f8aec637a467","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-02T07:18:21.5783958Z","updatedOn":"2019-08-02T07:18:21.5783958Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f4afc41d-352f-4bce-84f1-fad9f832f274","type":"Microsoft.Authorization/roleAssignments","name":"f4afc41d-352f-4bce-84f1-fad9f832f274"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"f31399da-e7ed-4fe4-a825-a9dff4f53481","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-03T17:48:07.2484442Z","updatedOn":"2020-02-03T17:48:07.2484442Z","createdBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","updatedBy":"ef34ad48-5675-4480-8fe7-a6cc394b97c4","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/31005f88-9e70-483d-acc8-0f9cc8066b13","type":"Microsoft.Authorization/roleAssignments","name":"31005f88-9e70-483d-acc8-0f9cc8066b13"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"f3add809-c372-44f2-8d2e-107707be72f1","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T21:07:59.9113196Z","updatedOn":"2020-02-04T21:07:59.9113196Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ea60c465-aef4-4494-9478-636615243841","type":"Microsoft.Authorization/roleAssignments","name":"ea60c465-aef4-4494-9478-636615243841"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"fe25b9d3-fba5-4ec1-8c67-992f8f3d4d1d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-11-02T00:40:13.2696018Z","updatedOn":"2019-11-02T00:40:13.2696018Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/1c0ee413-025e-422c-a8d0-2b8dd410b9b8","type":"Microsoft.Authorization/roleAssignments","name":"1c0ee413-025e-422c-a8d0-2b8dd410b9b8"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"febf609b-90d8-4d63-bffb-c12ccb094696","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T21:37:15.2971418Z","updatedOn":"2020-02-04T21:37:15.2971418Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/39e99cf2-95c7-4585-8703-998450cafea0","type":"Microsoft.Authorization/roleAssignments","name":"39e99cf2-95c7-4585-8703-998450cafea0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"39527840-d507-4477-8bd2-d7ffa4542194","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-11-15T22:27:15.6601349Z","updatedOn":"2018-11-15T22:27:15.6601349Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/418847ec-df97-4b29-9711-fc833817e5d6","type":"Microsoft.Authorization/roleAssignments","name":"418847ec-df97-4b29-9711-fc833817e5d6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"7d24045a-3445-4bda-abe5-232e2bccd01a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-28T14:20:52.7506898Z","updatedOn":"2019-08-28T14:20:52.7506898Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/715fd118-93b8-4b09-822d-48de5afb21e3","type":"Microsoft.Authorization/roleAssignments","name":"715fd118-93b8-4b09-822d-48de5afb21e3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"8ff738a5-abcd-4864-a162-6c18f7c9cbd9","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-01-06T05:22:04.7673784Z","updatedOn":"2019-01-06T05:22:04.7673784Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ba5c8600-8cc9-4778-9735-c3d57d26e50d","type":"Microsoft.Authorization/roleAssignments","name":"ba5c8600-8cc9-4778-9735-c3d57d26e50d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"b5f514f6-7c71-4896-aedf-cc22eb477985","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-02T16:21:28.6789246Z","updatedOn":"2020-06-02T16:21:28.6789246Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bd6bf5d5-fc1c-4fcd-81f3-0d11d3ff9f42","type":"Microsoft.Authorization/roleAssignments","name":"bd6bf5d5-fc1c-4fcd-81f3-0d11d3ff9f42"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"00a7fa06-74a2-46f5-b2b1-b3dfaf95b90a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-19T05:02:37.0675759Z","updatedOn":"2020-06-19T05:02:37.0675759Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3e8baba7-3df6-4a7e-91ca-cd4a8393ae56","type":"Microsoft.Authorization/roleAssignments","name":"3e8baba7-3df6-4a7e-91ca-cd4a8393ae56"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"0905068f-332c-4717-9046-df8e2875f563","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:01:30.4183889Z","updatedOn":"2019-12-13T02:01:30.4183889Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4623d907-e6fa-4e2a-ad82-18e34456d655","type":"Microsoft.Authorization/roleAssignments","name":"4623d907-e6fa-4e2a-ad82-18e34456d655"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1007b5b7-ef5e-4ab0-8e86-81b52ce5747d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:02:28.0518299Z","updatedOn":"2019-12-13T02:02:28.0518299Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ff4ee845-d8f5-49d0-93ac-7d45374946dd","type":"Microsoft.Authorization/roleAssignments","name":"ff4ee845-d8f5-49d0-93ac-7d45374946dd"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"113f6676-de62-440f-bc5d-d4c077921d11","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-25T08:37:49.6357044Z","updatedOn":"2020-03-25T08:37:49.6357044Z","createdBy":"471feb6d-5a83-439e-af7b-311f4eee2d0c","updatedBy":"471feb6d-5a83-439e-af7b-311f4eee2d0c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b332ab7b-a956-4e37-acc1-e4df2e9eedfa","type":"Microsoft.Authorization/roleAssignments","name":"b332ab7b-a956-4e37-acc1-e4df2e9eedfa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"12cb7792-1e80-4e2b-a444-6d86e4fed3b6","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-21T03:52:37.6293834Z","updatedOn":"2020-02-21T03:52:37.6293834Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2402af90-d517-4d1d-9ca1-7b85dfc17099","type":"Microsoft.Authorization/roleAssignments","name":"2402af90-d517-4d1d-9ca1-7b85dfc17099"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"17f09542-c300-4090-aff2-4b7303486809","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-24T20:02:31.4933981Z","updatedOn":"2020-07-24T20:02:31.4933981Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/fe8f6b65-9c14-4f43-bfe0-9c4e0778be5d","type":"Microsoft.Authorization/roleAssignments","name":"fe8f6b65-9c14-4f43-bfe0-9c4e0778be5d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"18b6bb92-b818-4f5f-8f5d-a319ee674751","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T01:00:41.8419503Z","updatedOn":"2020-04-28T01:00:41.8419503Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4da426ac-99d3-442d-b868-532f3582429b","type":"Microsoft.Authorization/roleAssignments","name":"4da426ac-99d3-442d-b868-532f3582429b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-04T03:17:07.6866234Z","updatedOn":"2019-12-04T03:17:07.6866234Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b76e5f32-b37f-482c-a7a4-98ef34ecea8a","type":"Microsoft.Authorization/roleAssignments","name":"b76e5f32-b37f-482c-a7a4-98ef34ecea8a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1d398750-3103-47cb-9e02-380759b1f920","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-27T23:12:42.6196328Z","updatedOn":"2020-04-27T23:12:42.6196328Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bb61d9e5-3664-42b4-b41c-bc3e34701de6","type":"Microsoft.Authorization/roleAssignments","name":"bb61d9e5-3664-42b4-b41c-bc3e34701de6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1da8964a-51ba-4328-b3d9-40951a3441bd","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-11T21:51:36.9989940Z","updatedOn":"2020-03-11T21:51:36.9989940Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c64426ff-294b-46eb-a1cb-7f824781f799","type":"Microsoft.Authorization/roleAssignments","name":"c64426ff-294b-46eb-a1cb-7f824781f799"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"203de16f-a918-45b1-bde4-6cc574d16944","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-02T20:50:25.6909226Z","updatedOn":"2020-03-02T20:50:25.6909226Z","createdBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","updatedBy":"7a69ab46-a41e-4e40-873c-bd130b5badd8","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/95a9d3e8-db32-4a7f-ad9c-46054677ff39","type":"Microsoft.Authorization/roleAssignments","name":"95a9d3e8-db32-4a7f-ad9c-46054677ff39"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"220ad69c-dd7a-460b-b1f1-eb92a03542db","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-16T20:48:38.9374068Z","updatedOn":"2020-04-16T20:48:38.9374068Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/45d89866-af64-4364-b886-7f5ec154c3d4","type":"Microsoft.Authorization/roleAssignments","name":"45d89866-af64-4364-b886-7f5ec154c3d4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"22638f38-fe4e-4b44-b093-7cecedb4896a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T08:42:00.9560545Z","updatedOn":"2020-04-20T08:42:00.9560545Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/7a41b62f-97d4-4f4c-8bfc-4a8dd708e00f","type":"Microsoft.Authorization/roleAssignments","name":"7a41b62f-97d4-4f4c-8bfc-4a8dd708e00f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"241cd743-2c33-4860-bd3a-1df659c06eef","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-19T00:23:10.4351839Z","updatedOn":"2020-06-19T00:23:10.4351839Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c1eb6cee-ee7a-4ed5-a683-846f01688ab9","type":"Microsoft.Authorization/roleAssignments","name":"c1eb6cee-ee7a-4ed5-a683-846f01688ab9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2540d861-4685-48cd-a936-e371b3208c87","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-07T01:58:45.6145522Z","updatedOn":"2020-05-07T01:58:45.6145522Z","createdBy":"4b5234ab-8f8d-429e-9e1c-ea5799b66ffa","updatedBy":"4b5234ab-8f8d-429e-9e1c-ea5799b66ffa","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9d42f5af-b9f8-4cf4-b017-612fdbb4f8a7","type":"Microsoft.Authorization/roleAssignments","name":"9d42f5af-b9f8-4cf4-b017-612fdbb4f8a7"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2a97c4b7-edc4-4d83-bee0-5754c7d5dc19","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-13T21:41:39.4063114Z","updatedOn":"2020-01-13T21:41:39.4063114Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2226a2aa-7a47-4546-82ed-4e9e4536bc7b","type":"Microsoft.Authorization/roleAssignments","name":"2226a2aa-7a47-4546-82ed-4e9e4536bc7b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2b66ef67-ee5d-4699-b59e-03eda4193896","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-23T03:10:28.2381030Z","updatedOn":"2020-04-23T03:10:28.2381030Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f98d1512-e634-4663-a219-24be2e6bfe1c","type":"Microsoft.Authorization/roleAssignments","name":"f98d1512-e634-4663-a219-24be2e6bfe1c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2d031dff-5170-4962-969f-dda3f668c04e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-30T08:37:59.5958569Z","updatedOn":"2020-05-30T08:37:59.5958569Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c71106d4-6a4c-461d-92dd-c3a3b94f856d","type":"Microsoft.Authorization/roleAssignments","name":"c71106d4-6a4c-461d-92dd-c3a3b94f856d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2d36972c-06f7-4ee4-9e91-73957849e734","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-01-30T22:50:20.7914421Z","updatedOn":"2019-01-30T22:50:20.7914421Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0bee5f49-7099-4a3c-9eef-b40697f6f371","type":"Microsoft.Authorization/roleAssignments","name":"0bee5f49-7099-4a3c-9eef-b40697f6f371"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2d41439a-72c4-47dc-9b23-e919cead4c41","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-04T06:37:19.1237954Z","updatedOn":"2020-04-04T06:37:19.1237954Z","createdBy":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","updatedBy":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d2d2ec3b-f7e6-4dbb-b281-0ceb5f243d01","type":"Microsoft.Authorization/roleAssignments","name":"d2d2ec3b-f7e6-4dbb-b281-0ceb5f243d01"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2e0c670c-6395-4a4e-8b4c-851afd84339f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-10-16T21:25:10.0634209Z","updatedOn":"2018-10-16T21:25:10.0634209Z","createdBy":"85c3c1d9-e7aa-418e-8a66-3fe24e88e80c","updatedBy":"85c3c1d9-e7aa-418e-8a66-3fe24e88e80c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/7f06ee09-ebfa-4931-a77d-ae0a39454e5b","type":"Microsoft.Authorization/roleAssignments","name":"7f06ee09-ebfa-4931-a77d-ae0a39454e5b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"303d8fcd-ef36-4cdd-92a8-7d37f7e8475b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-21T16:23:59.2770539Z","updatedOn":"2020-08-21T16:23:59.2770539Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4ed77f1d-82a2-4a02-b48e-fa5776870280","type":"Microsoft.Authorization/roleAssignments","name":"4ed77f1d-82a2-4a02-b48e-fa5776870280"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"305c679a-dc49-43a7-b913-996069f10c61","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-15T02:06:03.3308352Z","updatedOn":"2020-04-15T02:06:03.3308352Z","createdBy":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","updatedBy":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6142150e-c404-48e6-a731-fffb36357051","type":"Microsoft.Authorization/roleAssignments","name":"6142150e-c404-48e6-a731-fffb36357051"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"392e7e76-1ee5-4c86-b0c3-cd3ebc5fe4a8","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T20:29:38.5194580Z","updatedOn":"2020-04-20T20:29:38.5194580Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/7682e420-ebd8-4c39-be01-8c1fc953f250","type":"Microsoft.Authorization/roleAssignments","name":"7682e420-ebd8-4c39-be01-8c1fc953f250"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"39527840-d507-4477-8bd2-d7ffa4542194","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-11-16T23:46:13.9660279Z","updatedOn":"2018-11-16T23:46:13.9660279Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2b66b1ea-89dd-4bc6-8d89-96298648eb40","type":"Microsoft.Authorization/roleAssignments","name":"2b66b1ea-89dd-4bc6-8d89-96298648eb40"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"3c5e52d1-1e78-4c0e-b069-1c07c6ed52d6","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-07T09:44:47.0965106Z","updatedOn":"2020-09-07T09:44:47.0965106Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/79357f85-973d-4621-b1bd-d1ecb645e146","type":"Microsoft.Authorization/roleAssignments","name":"79357f85-973d-4621-b1bd-d1ecb645e146"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"433b39e4-d731-4c3f-855b-327c980d393d","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-01-31T01:55:23.5911140Z","updatedOn":"2019-01-31T01:55:23.5911140Z","createdBy":"b47f071a-d6c9-4297-954e-83151fff489b","updatedBy":"b47f071a-d6c9-4297-954e-83151fff489b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3359123d-b5f7-48d6-a1e7-ad77b7ef6b7f","type":"Microsoft.Authorization/roleAssignments","name":"3359123d-b5f7-48d6-a1e7-ad77b7ef6b7f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"44d2f8c7-d87d-45b0-87db-4cb97b40417d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-10-27T00:03:26.2878499Z","updatedOn":"2018-10-27T00:03:26.2878499Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ea920230-1aba-4f80-9eef-3fed8216f594","type":"Microsoft.Authorization/roleAssignments","name":"ea920230-1aba-4f80-9eef-3fed8216f594"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"471feb6d-5a83-439e-af7b-311f4eee2d0c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-25T08:25:35.9118633Z","updatedOn":"2020-03-25T08:25:35.9118633Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6559da2d-7b8e-4dfe-ba1d-dfedbd7c73a1","type":"Microsoft.Authorization/roleAssignments","name":"6559da2d-7b8e-4dfe-ba1d-dfedbd7c73a1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"4c6b5ae4-3f4a-4317-8970-2ed342366d0b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-04T02:21:24.1380483Z","updatedOn":"2020-06-04T02:21:24.1380483Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f70af6d6-4511-4e74-b25f-9c15978d4859","type":"Microsoft.Authorization/roleAssignments","name":"f70af6d6-4511-4e74-b25f-9c15978d4859"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"4f6ccf88-de1e-417e-9971-f4263b13b4d2","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-26T01:25:12.5585896Z","updatedOn":"2019-10-26T01:25:12.5585896Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e5e4c17a-2a72-4b0e-8518-53afddc60b04","type":"Microsoft.Authorization/roleAssignments","name":"e5e4c17a-2a72-4b0e-8518-53afddc60b04"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"503af2b0-4664-4e4e-8fab-00e7d16ed6b5","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T22:24:43.1326207Z","updatedOn":"2020-04-20T22:24:43.1326207Z","createdBy":"5ecb1531-0d8c-4a89-93cb-1b48b2224358","updatedBy":"5ecb1531-0d8c-4a89-93cb-1b48b2224358","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d54b05eb-b1d1-4845-8ac5-48c5bb4c50b6","type":"Microsoft.Authorization/roleAssignments","name":"d54b05eb-b1d1-4845-8ac5-48c5bb4c50b6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"557182cc-aa6f-4700-a3b5-77c4c64b2148","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-03T09:55:40.2829720Z","updatedOn":"2020-04-03T09:55:40.2829720Z","createdBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","updatedBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c9c2a551-11aa-4b0a-8816-f8511cd46a32","type":"Microsoft.Authorization/roleAssignments","name":"c9c2a551-11aa-4b0a-8816-f8511cd46a32"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5abe6647-6d0a-42a5-9378-28457904e05f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-18T02:26:13.8743106Z","updatedOn":"2020-07-18T02:26:13.8743106Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cfd7632d-7c5a-4531-82ce-890df8b4be96","type":"Microsoft.Authorization/roleAssignments","name":"cfd7632d-7c5a-4531-82ce-890df8b4be96"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5c4e9ab8-dc30-4939-82c2-21578f3e8729","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T03:57:30.1921503Z","updatedOn":"2020-04-29T03:57:30.1921503Z","createdBy":"a5cae52f-366a-417b-b718-e73d17746c35","updatedBy":"a5cae52f-366a-417b-b718-e73d17746c35","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b4a5f74f-d5b2-4fc7-bfa1-893cc5b9ad88","type":"Microsoft.Authorization/roleAssignments","name":"b4a5f74f-d5b2-4fc7-bfa1-893cc5b9ad88"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5dc8b685-8bb3-4140-b266-34da5be22de8","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-21T06:59:06.6904070Z","updatedOn":"2020-04-21T06:59:06.6904070Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8273f6ee-b861-42a0-8dec-475eb3215463","type":"Microsoft.Authorization/roleAssignments","name":"8273f6ee-b861-42a0-8dec-475eb3215463"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5f58dacf-3c88-4723-93ab-e6e23593fc9c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-29T17:47:02.9492136Z","updatedOn":"2020-06-29T17:47:02.9492136Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5cae5324-e7eb-4c13-ba0d-80c801c2b744","type":"Microsoft.Authorization/roleAssignments","name":"5cae5324-e7eb-4c13-ba0d-80c801c2b744"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"62432823-a60a-4a06-a27d-85ae2bbc2b7b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T15:40:03.6815875Z","updatedOn":"2020-04-29T15:40:03.6815875Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/09778426-699f-4faa-8016-5e6029e7313d","type":"Microsoft.Authorization/roleAssignments","name":"09778426-699f-4faa-8016-5e6029e7313d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"638a2bb1-78e5-4557-aadf-5f0f60cc0d34","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-26T21:10:42.2124416Z","updatedOn":"2020-03-26T21:10:42.2124416Z","createdBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","updatedBy":"50ee185f-0eb1-4577-ae14-4ecf59cfa8f7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d394da6c-4def-47de-8689-791727331c5b","type":"Microsoft.Authorization/roleAssignments","name":"d394da6c-4def-47de-8689-791727331c5b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"6517947e-4657-4099-803b-c0e795511100","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-27T23:43:20.3428422Z","updatedOn":"2020-04-27T23:43:20.3428422Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/271e5b8d-8684-4668-98b9-c3dc25f4b437","type":"Microsoft.Authorization/roleAssignments","name":"271e5b8d-8684-4668-98b9-c3dc25f4b437"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"6640bb09-7172-43fe-bce0-faf7f34b959a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-01T10:07:57.9278821Z","updatedOn":"2020-09-01T10:07:57.9278821Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/06cdf5a9-0983-4aa6-8d0f-20faf663dc4e","type":"Microsoft.Authorization/roleAssignments","name":"06cdf5a9-0983-4aa6-8d0f-20faf663dc4e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"6a73ce5d-207c-4a44-baef-01c84afe30f3","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-21T07:34:50.7125622Z","updatedOn":"2020-04-21T07:34:50.7125622Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ddeb2255-2bb6-458a-a891-532e96ae5483","type":"Microsoft.Authorization/roleAssignments","name":"ddeb2255-2bb6-458a-a891-532e96ae5483"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"711888db-b490-4698-8814-350c558a6a73","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-23T04:07:45.3308845Z","updatedOn":"2020-06-23T04:07:45.3308845Z","createdBy":"9404195a-2cde-4a10-b88c-e7b41572bf31","updatedBy":"9404195a-2cde-4a10-b88c-e7b41572bf31","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/15d1dab1-b507-11ea-819c-a28e10bedef6","type":"Microsoft.Authorization/roleAssignments","name":"15d1dab1-b507-11ea-819c-a28e10bedef6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"720814e8-6495-459c-883d-d4ca50f57716","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-13T00:09:08.8179220Z","updatedOn":"2020-05-13T00:09:08.8179220Z","createdBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","updatedBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/08a578f0-4875-47d0-8775-946b3a0f2b06","type":"Microsoft.Authorization/roleAssignments","name":"08a578f0-4875-47d0-8775-946b3a0f2b06"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7394c726-6331-44bd-8bc0-a51fb3d2662c","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-07T01:39:11.6516136Z","updatedOn":"2020-08-07T01:39:11.6516136Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2bc755b7-1e10-4e6a-9f88-be2c3e711633","type":"Microsoft.Authorization/roleAssignments","name":"2bc755b7-1e10-4e6a-9f88-be2c3e711633"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7492aa9f-0b77-4968-8948-b90ca3819519","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-09T01:04:43.1548351Z","updatedOn":"2020-04-09T01:04:43.1548351Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/db269e86-2241-4771-8ecb-d45b3adae008","type":"Microsoft.Authorization/roleAssignments","name":"db269e86-2241-4771-8ecb-d45b3adae008"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"796b46ec-9afe-44fd-aa2f-446669eb286c","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-10T23:15:46.8549700Z","updatedOn":"2020-05-10T23:15:46.8549700Z","createdBy":"c1acf319-6d96-4dfe-b194-c27640869947","updatedBy":"c1acf319-6d96-4dfe-b194-c27640869947","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22d3da65-7681-445e-9080-e748e494676f","type":"Microsoft.Authorization/roleAssignments","name":"22d3da65-7681-445e-9080-e748e494676f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7accdf1b-3db5-4e15-976a-837baa339d2b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-03T07:04:36.3910200Z","updatedOn":"2020-08-03T07:04:36.3910200Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6196ad7d-c2ba-4b8d-b41b-2786374f5fa6","type":"Microsoft.Authorization/roleAssignments","name":"6196ad7d-c2ba-4b8d-b41b-2786374f5fa6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7d24045a-3445-4bda-abe5-232e2bccd01a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-29T13:30:14.1177711Z","updatedOn":"2019-08-29T13:30:14.1177711Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4a2c1014-c1ba-4ae9-a632-90967c28429d","type":"Microsoft.Authorization/roleAssignments","name":"4a2c1014-c1ba-4ae9-a632-90967c28429d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7db92542-b539-4a35-a6aa-46923aa70462","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-27T01:26:21.7189691Z","updatedOn":"2020-02-27T01:26:21.7189691Z","createdBy":"c1acf319-6d96-4dfe-b194-c27640869947","updatedBy":"c1acf319-6d96-4dfe-b194-c27640869947","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/28808064-5900-11ea-81c8-acde48001122","type":"Microsoft.Authorization/roleAssignments","name":"28808064-5900-11ea-81c8-acde48001122"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7dd02246-a0fe-4548-90a8-0e874304beb7","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-02T01:52:45.5699406Z","updatedOn":"2020-09-02T01:52:45.5699406Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3e21284b-6bd7-431a-81ae-ccaf56267ab5","type":"Microsoft.Authorization/roleAssignments","name":"3e21284b-6bd7-431a-81ae-ccaf56267ab5"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7e765346-577f-4221-9d67-4d88471aa629","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-21T06:38:11.2976025Z","updatedOn":"2020-02-21T06:38:11.2976025Z","createdBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","updatedBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ff53f83d-7146-4af0-920b-9027ce9e5c98","type":"Microsoft.Authorization/roleAssignments","name":"ff53f83d-7146-4af0-920b-9027ce9e5c98"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7ecafeca-74fa-4dff-9526-f36baee311e1","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-07T02:44:34.0976537Z","updatedOn":"2020-08-07T02:44:34.0976537Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/1aecba65-a71b-4908-a57e-9619d0dbf32c","type":"Microsoft.Authorization/roleAssignments","name":"1aecba65-a71b-4908-a57e-9619d0dbf32c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"80120e80-4873-41d7-b73c-e9fede790b52","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-31T20:08:15.8705805Z","updatedOn":"2019-10-31T20:08:15.8705805Z","createdBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","updatedBy":"766b85aa-d8b7-4b5e-911d-c111e86dc72b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e47c861f-a9eb-46c0-b2e2-102033a5c009","type":"Microsoft.Authorization/roleAssignments","name":"e47c861f-a9eb-46c0-b2e2-102033a5c009"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"826494a1-f78c-4196-ac4e-bb39db9e0b30","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T00:17:14.5340823Z","updatedOn":"2020-04-28T00:17:14.5340823Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f7e6b175-9796-4292-bf64-1683aa14312f","type":"Microsoft.Authorization/roleAssignments","name":"f7e6b175-9796-4292-bf64-1683aa14312f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"82e11ed5-c720-4c8d-b396-a2fcd9e4291f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T08:30:00.0256525Z","updatedOn":"2020-04-20T08:30:00.0256525Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a91f5ef0-1d9b-453e-8f90-43826c3652dd","type":"Microsoft.Authorization/roleAssignments","name":"a91f5ef0-1d9b-453e-8f90-43826c3652dd"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8525c1e5-7ec8-421b-922a-d23add34859f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-14T00:22:19.2644898Z","updatedOn":"2020-04-14T00:22:19.2644898Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/420714ce-6b24-4ce2-b7ee-51554de01de7","type":"Microsoft.Authorization/roleAssignments","name":"420714ce-6b24-4ce2-b7ee-51554de01de7"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"857203e6-a2cb-4448-84f9-85b4e79b8d57","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-05T08:37:27.3623228Z","updatedOn":"2020-08-05T08:37:27.3623228Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6733ca0e-2210-4978-9e7c-b07d1258b056","type":"Microsoft.Authorization/roleAssignments","name":"6733ca0e-2210-4978-9e7c-b07d1258b056"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"864e1247-3a96-49b6-89ad-931587c9d5ae","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T00:53:44.9077172Z","updatedOn":"2020-04-28T00:53:44.9077172Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2940c5e2-5742-42aa-9569-e68c698a01d6","type":"Microsoft.Authorization/roleAssignments","name":"2940c5e2-5742-42aa-9569-e68c698a01d6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"87714c58-f8a2-447f-8bf1-30e214386c56","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-13T08:23:22.2283915Z","updatedOn":"2020-07-13T08:23:22.2283915Z","createdBy":"a75ea823-3748-4855-a4df-f4ba5383d006","updatedBy":"a75ea823-3748-4855-a4df-f4ba5383d006","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d620bc90-9de4-4ae7-b69a-0b2489f91897","type":"Microsoft.Authorization/roleAssignments","name":"d620bc90-9de4-4ae7-b69a-0b2489f91897"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"87ccb404-2e62-44d1-97c0-a842c400b985","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-01-30T19:30:49.2769608Z","updatedOn":"2019-01-30T19:30:49.2769608Z","createdBy":"b47f071a-d6c9-4297-954e-83151fff489b","updatedBy":"b47f071a-d6c9-4297-954e-83151fff489b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/310957e5-5722-42e0-95b6-5bc6c6b67f16","type":"Microsoft.Authorization/roleAssignments","name":"310957e5-5722-42e0-95b6-5bc6c6b67f16"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"88d55a68-f674-4ec5-afcd-fe150e59c549","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-21T16:23:57.7005096Z","updatedOn":"2020-08-21T16:23:57.7005096Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/17d7954a-d32a-4181-b887-1de9a8a0c05a","type":"Microsoft.Authorization/roleAssignments","name":"17d7954a-d32a-4181-b887-1de9a8a0c05a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8a5603a8-2c60-49ab-bc28-a989b91e187d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-21T16:23:58.4382384Z","updatedOn":"2020-08-21T16:23:58.4382384Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8ab72fbd-e5fe-4a7d-ae20-baad615d688d","type":"Microsoft.Authorization/roleAssignments","name":"8ab72fbd-e5fe-4a7d-ae20-baad615d688d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"91f81dfd-d0ca-4654-902f-fe155ff9845b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-03T01:05:25.8863198Z","updatedOn":"2020-07-03T01:05:25.8863198Z","createdBy":"7ac4ca6d-46a3-4e71-a705-858af50eea7b","updatedBy":"7ac4ca6d-46a3-4e71-a705-858af50eea7b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/46877403-bcc9-11ea-924f-00155d871f03","type":"Microsoft.Authorization/roleAssignments","name":"46877403-bcc9-11ea-924f-00155d871f03"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"92634de3-03f6-4092-b41b-20616b11a464","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-02T16:19:56.1932050Z","updatedOn":"2020-06-02T16:19:56.1932050Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/de7bdfed-5cc5-47e2-9008-327939dc8379","type":"Microsoft.Authorization/roleAssignments","name":"de7bdfed-5cc5-47e2-9008-327939dc8379"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9978f56d-3a74-4227-932e-f4572b39ca36","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T13:17:45.8096903Z","updatedOn":"2020-04-29T13:17:45.8096903Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cdf0f5fa-8a1b-11ea-a09b-acbc329aaf8b","type":"Microsoft.Authorization/roleAssignments","name":"cdf0f5fa-8a1b-11ea-a09b-acbc329aaf8b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9b5ae861-7fd1-4e4e-929a-7b2123263686","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-03-28T19:57:23.3708745Z","updatedOn":"2019-03-28T19:57:23.3708745Z","createdBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","updatedBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cc796cab-2f6b-4099-b9a3-7500f5516153","type":"Microsoft.Authorization/roleAssignments","name":"cc796cab-2f6b-4099-b9a3-7500f5516153"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9bb644db-35f0-4b26-a438-7563f129a27f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-24T02:12:40.2606628Z","updatedOn":"2020-04-24T02:12:40.2606628Z","createdBy":"a75ea823-3748-4855-a4df-f4ba5383d006","updatedBy":"a75ea823-3748-4855-a4df-f4ba5383d006","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6a375386-4cb0-47fd-952c-92465f6d679d","type":"Microsoft.Authorization/roleAssignments","name":"6a375386-4cb0-47fd-952c-92465f6d679d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9c7b97ac-5b7e-4bae-ad59-5f5dda187565","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-21T16:23:57.7999137Z","updatedOn":"2020-08-21T16:23:57.7999137Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9a853af7-252b-4315-9ee3-0b243e595f80","type":"Microsoft.Authorization/roleAssignments","name":"9a853af7-252b-4315-9ee3-0b243e595f80"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9ccdf8ca-07f3-4e80-bd90-bdb90fee87cc","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-18T18:32:12.4073614Z","updatedOn":"2020-06-18T18:32:12.4073614Z","createdBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","updatedBy":"f31399da-e7ed-4fe4-a825-a9dff4f53481","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/7c124231-2ff5-4025-86b5-c25e2415846c","type":"Microsoft.Authorization/roleAssignments","name":"7c124231-2ff5-4025-86b5-c25e2415846c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9e759545-285e-4af0-9caf-18018b3dee9e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-07T21:38:16.8019789Z","updatedOn":"2020-07-07T21:38:16.8019789Z","createdBy":"67f96a40-adf7-4f43-888f-33526c5cfa95","updatedBy":"67f96a40-adf7-4f43-888f-33526c5cfa95","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2d34e25a-c09a-11ea-893f-eefa4c05adfb","type":"Microsoft.Authorization/roleAssignments","name":"2d34e25a-c09a-11ea-893f-eefa4c05adfb"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"9fcea202-aea4-483b-bfce-69efda94b4cd","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-30T22:56:44.9793119Z","updatedOn":"2020-03-30T22:56:44.9793119Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/000ea275-41c4-40ce-943f-98a8849a56bc","type":"Microsoft.Authorization/roleAssignments","name":"000ea275-41c4-40ce-943f-98a8849a56bc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a0489948-cd50-4991-80ff-9108f978032f","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:01:31.6182075Z","updatedOn":"2019-12-13T02:01:31.6182075Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d3ea741e-fdf8-4780-a73f-bbc0efbd141c","type":"Microsoft.Authorization/roleAssignments","name":"d3ea741e-fdf8-4780-a73f-bbc0efbd141c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a1b1ff5b-e20b-4e52-936d-a4c8f247b72d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-07T23:59:03.2024779Z","updatedOn":"2020-07-07T23:59:03.2024779Z","createdBy":"1ec25b73-94d5-4bf9-a56f-ca7d9bd4164c","updatedBy":"1ec25b73-94d5-4bf9-a56f-ca7d9bd4164c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/718cdad6-cc40-415b-aae3-f356df943d39","type":"Microsoft.Authorization/roleAssignments","name":"718cdad6-cc40-415b-aae3-f356df943d39"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a6581be6-c0f9-459c-b7a1-f41b8ff6ccc1","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-23T05:07:17.2382220Z","updatedOn":"2020-06-23T05:07:17.2382220Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4202823d-7518-46d1-b5ff-b6c7cb7b9dd3","type":"Microsoft.Authorization/roleAssignments","name":"4202823d-7518-46d1-b5ff-b6c7cb7b9dd3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a6b76fdc-4343-4b87-b6d3-3ae963564733","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-18T12:01:15.4801397Z","updatedOn":"2020-05-18T12:01:15.4801397Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4c04d5e5-df60-47b9-abde-aa9641425c64","type":"Microsoft.Authorization/roleAssignments","name":"4c04d5e5-df60-47b9-abde-aa9641425c64"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"abc07840-24d3-46fa-a995-efab1f0ba575","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-10T01:13:53.0806696Z","updatedOn":"2020-06-10T01:13:53.0806696Z","createdBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","updatedBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a584fad9-aab7-11ea-b7e7-00155d4b0124","type":"Microsoft.Authorization/roleAssignments","name":"a584fad9-aab7-11ea-b7e7-00155d4b0124"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ae78c8b3-6b29-4016-bb6e-407a13c0f74a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-03T07:48:19.4504494Z","updatedOn":"2020-07-03T07:48:19.4504494Z","createdBy":"471feb6d-5a83-439e-af7b-311f4eee2d0c","updatedBy":"471feb6d-5a83-439e-af7b-311f4eee2d0c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/28dd25b5-e359-4d3d-9632-bcd15c3fa296","type":"Microsoft.Authorization/roleAssignments","name":"28dd25b5-e359-4d3d-9632-bcd15c3fa296"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"b42d32ff-6855-4eb7-8381-fc768a25b2c6","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-09T00:52:51.5057560Z","updatedOn":"2020-06-09T00:52:51.5057560Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6d91fd42-bd38-4380-8f63-993e49f83833","type":"Microsoft.Authorization/roleAssignments","name":"6d91fd42-bd38-4380-8f63-993e49f83833"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"b7270086-f3bc-4f32-90c1-57acecc3b9b7","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-18T06:45:36.0416580Z","updatedOn":"2020-08-18T06:45:36.0416580Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2d5ea243-13a9-416a-bbb0-8debeb11a885","type":"Microsoft.Authorization/roleAssignments","name":"2d5ea243-13a9-416a-bbb0-8debeb11a885"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ba369353-49f9-4c7c-806f-5368d84c5dde","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-09-20T20:32:24.1155446Z","updatedOn":"2019-09-20T20:32:24.1155446Z","createdBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","updatedBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c1a9a09e-eafe-4c97-b589-a8261ee04099","type":"Microsoft.Authorization/roleAssignments","name":"c1a9a09e-eafe-4c97-b589-a8261ee04099"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"bbdf32e1-9aa3-4b56-b0ea-8a03f9a89781","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-12T08:25:20.7039022Z","updatedOn":"2020-08-12T08:25:20.7039022Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8f755701-8e88-4663-ab7b-c0d44d51c410","type":"Microsoft.Authorization/roleAssignments","name":"8f755701-8e88-4663-ab7b-c0d44d51c410"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"bc2634de-5197-4980-9558-ef6bac4d18b0","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-12T00:23:23.9037436Z","updatedOn":"2020-05-12T00:23:23.9037436Z","createdBy":"c1acf319-6d96-4dfe-b194-c27640869947","updatedBy":"c1acf319-6d96-4dfe-b194-c27640869947","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6ff95229-981f-40d7-889f-97bc90b8f387","type":"Microsoft.Authorization/roleAssignments","name":"6ff95229-981f-40d7-889f-97bc90b8f387"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"bcafa782-9a5c-4967-83ea-94265a9914dd","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-09T00:52:52.1315983Z","updatedOn":"2020-06-09T00:52:52.1315983Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/7512dec1-86e5-400d-8bc9-f24f181127f3","type":"Microsoft.Authorization/roleAssignments","name":"7512dec1-86e5-400d-8bc9-f24f181127f3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-30T03:12:58.1455315Z","updatedOn":"2019-12-30T03:12:58.1455315Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/091713ce-9ee7-445d-beaf-708ee254b129","type":"Microsoft.Authorization/roleAssignments","name":"091713ce-9ee7-445d-beaf-708ee254b129"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c29bee61-aa42-4f9c-be8b-840522822e1e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-19T04:20:34.3557776Z","updatedOn":"2019-04-19T04:20:34.3557776Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/092a238c-94af-4fca-bd4a-bb4995ea58db","type":"Microsoft.Authorization/roleAssignments","name":"092a238c-94af-4fca-bd4a-bb4995ea58db"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c4d025e6-45a4-46c4-9173-a251cba484a4","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-14T04:03:23.9185561Z","updatedOn":"2020-04-14T04:03:23.9185561Z","createdBy":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","updatedBy":"c212dea8-d0da-4832-bdb1-d9e2b7672c76","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0f0f495d-0356-4239-b966-3f47f5f1054a","type":"Microsoft.Authorization/roleAssignments","name":"0f0f495d-0356-4239-b966-3f47f5f1054a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c4d36055-ba57-4348-86d1-d0847e077da0","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-02-08T18:23:30.4938080Z","updatedOn":"2018-02-08T18:23:30.4938080Z","createdBy":"844b4426-fbe6-487c-b18c-8264fb2d6542","updatedBy":"844b4426-fbe6-487c-b18c-8264fb2d6542","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8f23509d-c075-4361-be73-f4e1c631efa9","type":"Microsoft.Authorization/roleAssignments","name":"8f23509d-c075-4361-be73-f4e1c631efa9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c518df35-7e98-4c84-9222-b902d191061e","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T20:29:38.4023513Z","updatedOn":"2020-04-20T20:29:38.4023513Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b3276191-98a8-472b-b650-21c8d24b7464","type":"Microsoft.Authorization/roleAssignments","name":"b3276191-98a8-472b-b650-21c8d24b7464"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c5fc995b-16f3-4e85-bac9-607a7a6b2eba","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:01:51.0230612Z","updatedOn":"2019-12-13T02:01:51.0230612Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f7a1c5da-f357-45d0-8397-e190956ccdbf","type":"Microsoft.Authorization/roleAssignments","name":"f7a1c5da-f357-45d0-8397-e190956ccdbf"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c5ff3392-9b35-4c76-999e-a80a1b747b55","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-16T02:06:59.0490140Z","updatedOn":"2020-05-16T02:06:59.0490140Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2cf7ea7b-3bdd-44ea-966b-b4eb4e7813fa","type":"Microsoft.Authorization/roleAssignments","name":"2cf7ea7b-3bdd-44ea-966b-b4eb4e7813fa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c6141a72-0ed4-456b-8334-7b17736d97ef","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-13T22:32:47.4470861Z","updatedOn":"2020-04-13T22:32:47.4470861Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/93ce765f-2d72-454b-816b-ba287754fe5a","type":"Microsoft.Authorization/roleAssignments","name":"93ce765f-2d72-454b-816b-ba287754fe5a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c758f69d-a2c1-49fe-9ed1-2564a7cbdab1","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-07T01:48:28.3774394Z","updatedOn":"2020-08-07T01:48:28.3774394Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c74dd12c-7642-492a-9501-904f9aa82760","type":"Microsoft.Authorization/roleAssignments","name":"c74dd12c-7642-492a-9501-904f9aa82760"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c7eb4d86-8773-4890-ac9c-d9785f7f68ae","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-14T00:42:59.8868253Z","updatedOn":"2020-05-14T00:42:59.8868253Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6b3c8d44-237c-410c-a095-52ded7f5cd26","type":"Microsoft.Authorization/roleAssignments","name":"6b3c8d44-237c-410c-a095-52ded7f5cd26"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"c9466ef0-e6f3-440d-b025-e9c2cd815d16","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-11T13:26:01.9493491Z","updatedOn":"2020-02-11T13:26:01.9493491Z","createdBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","updatedBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8fab1ba3-53c2-4b21-9d32-dc89fd061811","type":"Microsoft.Authorization/roleAssignments","name":"8fab1ba3-53c2-4b21-9d32-dc89fd061811"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"cb95783d-cf85-4e9e-8637-1d44b88b607f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-04-19T22:53:47.5902917Z","updatedOn":"2019-04-19T22:53:47.5902917Z","createdBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","updatedBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/1f9d617d-8ab5-4f63-8c85-445f6c30632f","type":"Microsoft.Authorization/roleAssignments","name":"1f9d617d-8ab5-4f63-8c85-445f6c30632f"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ccb6b07f-77d7-455f-b6d7-3130238399e7","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-07T01:59:03.9569942Z","updatedOn":"2020-08-07T01:59:03.9569942Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2318aabd-c65a-4f81-ac06-6426e70e8e66","type":"Microsoft.Authorization/roleAssignments","name":"2318aabd-c65a-4f81-ac06-6426e70e8e66"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"cd00527a-7491-4ee9-9f79-8209067a98b3","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-03T05:34:39.2163770Z","updatedOn":"2020-04-03T05:34:39.2163770Z","createdBy":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","updatedBy":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8e4edc2a-dd1f-469b-9a44-f0693866b843","type":"Microsoft.Authorization/roleAssignments","name":"8e4edc2a-dd1f-469b-9a44-f0693866b843"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"cd57acf3-84bf-4deb-8014-482cfd32ac79","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-16T15:13:03.4655200Z","updatedOn":"2020-02-16T15:13:03.4655200Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cc0c8bdd-f097-408e-82d7-45b84b7bc308","type":"Microsoft.Authorization/roleAssignments","name":"cc0c8bdd-f097-408e-82d7-45b84b7bc308"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"cdb876ec-8433-4be1-8502-113ed17e2d6b","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-12T21:48:57.3001992Z","updatedOn":"2020-05-12T21:48:57.3001992Z","createdBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","updatedBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/dcc102ec-9c04-4c7c-976e-94c72db42b49","type":"Microsoft.Authorization/roleAssignments","name":"dcc102ec-9c04-4c7c-976e-94c72db42b49"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"cde55c1b-420b-484c-b5eb-3b11a98ca252","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-06-26T06:44:38.5656650Z","updatedOn":"2019-06-26T06:44:38.5656650Z","createdBy":"f058371f-0c0e-46bb-a5d4-f8aec637a467","updatedBy":"f058371f-0c0e-46bb-a5d4-f8aec637a467","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a2cc1fcf-6ce5-4bd8-94c9-e0e6aa788a1d","type":"Microsoft.Authorization/roleAssignments","name":"a2cc1fcf-6ce5-4bd8-94c9-e0e6aa788a1d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d03f4127-3faf-4d41-8335-91d2189b7cce","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-09T02:33:18.1231987Z","updatedOn":"2020-04-09T02:33:18.1231987Z","createdBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","updatedBy":"33312ea3-4fb4-44c9-8323-c387b5e8b6a7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/817b295c-2044-4e43-a8ee-dfbb1af3c458","type":"Microsoft.Authorization/roleAssignments","name":"817b295c-2044-4e43-a8ee-dfbb1af3c458"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d1081032-24c2-4e6b-be6c-9568573c8b17","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-20T19:40:09.1141460Z","updatedOn":"2020-02-20T19:40:09.1141460Z","createdBy":"c1acf319-6d96-4dfe-b194-c27640869947","updatedBy":"c1acf319-6d96-4dfe-b194-c27640869947","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d4673bf4-97da-4102-9284-2a7315b88a34","type":"Microsoft.Authorization/roleAssignments","name":"d4673bf4-97da-4102-9284-2a7315b88a34"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d69d1d49-5dc8-4c8e-afb6-325d83ddcee8","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-23T05:07:14.6947730Z","updatedOn":"2020-06-23T05:07:14.6947730Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bec06514-2b3f-4a1f-92f2-cbb30828f447","type":"Microsoft.Authorization/roleAssignments","name":"bec06514-2b3f-4a1f-92f2-cbb30828f447"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d6cd9d7f-79fa-4ae4-b6bd-696678b6626e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-21T07:19:44.2488168Z","updatedOn":"2020-04-21T07:19:44.2488168Z","createdBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","updatedBy":"1950a39c-ef6a-4e9d-b00e-9a99d027ddb2","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/fadbe071-d757-48fc-b82a-4784249ded10","type":"Microsoft.Authorization/roleAssignments","name":"fadbe071-d757-48fc-b82a-4784249ded10"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d6d7cee8-8e53-4cd0-9835-ce90ad8b1638","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:01:31.7381957Z","updatedOn":"2019-12-13T02:01:31.7381957Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6e035090-e3f8-4bb2-b117-fac2fba706b2","type":"Microsoft.Authorization/roleAssignments","name":"6e035090-e3f8-4bb2-b117-fac2fba706b2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"d9ad0505-c4e5-4554-8229-480e3c49fa22","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-03-12T17:29:23.0437979Z","updatedOn":"2019-03-12T17:29:23.0437979Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a7e76154-c2a7-4419-b73f-e8c6010318c9","type":"Microsoft.Authorization/roleAssignments","name":"a7e76154-c2a7-4419-b73f-e8c6010318c9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"db415584-34a8-442b-ae9c-b11bc53c19e5","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-26T19:29:06.9092628Z","updatedOn":"2020-05-26T19:29:06.9092628Z","createdBy":"d69d1d49-5dc8-4c8e-afb6-325d83ddcee8","updatedBy":"d69d1d49-5dc8-4c8e-afb6-325d83ddcee8","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c0b0f01a-d6f2-4c1f-879d-10bdc2f1aee5","type":"Microsoft.Authorization/roleAssignments","name":"c0b0f01a-d6f2-4c1f-879d-10bdc2f1aee5"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"db6d2195-3cfb-4368-b915-0c945b4899b3","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-10-31T16:50:18.8405451Z","updatedOn":"2018-10-31T16:50:18.8405451Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6052f563-4044-4900-a65c-38880bd6bf60","type":"Microsoft.Authorization/roleAssignments","name":"6052f563-4044-4900-a65c-38880bd6bf60"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"dbd1fdcd-6b18-430f-b629-a75a06c57c53","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-04T06:08:35.6470719Z","updatedOn":"2020-09-04T06:08:35.6470719Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/78a5531e-970a-4cab-a312-ee486bec68cc","type":"Microsoft.Authorization/roleAssignments","name":"78a5531e-970a-4cab-a312-ee486bec68cc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"dd25b131-3979-4f9a-9abc-6cfaa34bafef","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-06-17T00:59:53.8734172Z","updatedOn":"2020-06-17T00:59:53.8734172Z","createdBy":"82e11ed5-c720-4c8d-b396-a2fcd9e4291f","updatedBy":"82e11ed5-c720-4c8d-b396-a2fcd9e4291f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d7f69b6b-b035-11ea-a6dd-000d3aa35713","type":"Microsoft.Authorization/roleAssignments","name":"d7f69b6b-b035-11ea-a6dd-000d3aa35713"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"de9c8be5-08e1-4cbd-a6f3-5cd2af19ba77","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-21T07:40:03.0117061Z","updatedOn":"2020-02-21T07:40:03.0117061Z","createdBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","updatedBy":"0276227b-f99f-4db3-b016-9eebbdfe5dd9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e5c1eb24-09ad-487a-8286-8bb2841d311d","type":"Microsoft.Authorization/roleAssignments","name":"e5c1eb24-09ad-487a-8286-8bb2841d311d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"e48edc49-012a-4d97-a0cc-a37c940033f5","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-23T14:27:52.3922162Z","updatedOn":"2020-04-23T14:27:52.3922162Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9acabd34-856e-11ea-98ae-acbc329aaf8b","type":"Microsoft.Authorization/roleAssignments","name":"9acabd34-856e-11ea-98ae-acbc329aaf8b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"e6a7bb6f-6e1f-46ac-9996-7408b3a03d5e","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T20:29:38.3267905Z","updatedOn":"2020-04-20T20:29:38.3267905Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ac979adb-819c-4fae-98bc-6a6c81bc76b1","type":"Microsoft.Authorization/roleAssignments","name":"ac979adb-819c-4fae-98bc-6a6c81bc76b1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ea80cc65-f105-417e-a9fb-3c88d809af24","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2018-02-06T23:56:15.2220285Z","updatedOn":"2018-02-06T23:56:15.2220285Z","createdBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","updatedBy":"b87c5c16-4f0e-4af2-9b2e-20f25d6b5a3f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f54c2ddd-8858-4c40-bdec-25546c985154","type":"Microsoft.Authorization/roleAssignments","name":"f54c2ddd-8858-4c40-bdec-25546c985154"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"eaa1d948-c6da-4496-a8c8-62747dbeaa04","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-20T20:29:38.3023490Z","updatedOn":"2020-04-20T20:29:38.3023490Z","createdBy":"c66b4485-d88a-4007-b687-4867ca3c076f","updatedBy":"c66b4485-d88a-4007-b687-4867ca3c076f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bf46ff50-6187-4a95-afd4-b811c1a8b239","type":"Microsoft.Authorization/roleAssignments","name":"bf46ff50-6187-4a95-afd4-b811c1a8b239"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ec744bef-b654-4ecf-8e17-54be9548a8cd","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-02-02T04:47:03.2856858Z","updatedOn":"2019-02-02T04:47:03.2856858Z","createdBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","updatedBy":"66cb050e-bae1-4005-8c4c-0f6dd9b34978","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/11737a1b-2cf4-4fca-8c36-4ef79e0df5b0","type":"Microsoft.Authorization/roleAssignments","name":"11737a1b-2cf4-4fca-8c36-4ef79e0df5b0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ed4707f4-8b58-42fe-9afd-0045d7a9b262","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-02T23:56:53.9541160Z","updatedOn":"2020-04-02T23:56:53.9541160Z","createdBy":"53bb8815-874d-4b05-9953-1158e05aa080","updatedBy":"53bb8815-874d-4b05-9953-1158e05aa080","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/700e8068-ae0c-4176-8e70-8958a82a4aa1","type":"Microsoft.Authorization/roleAssignments","name":"700e8068-ae0c-4176-8e70-8958a82a4aa1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f058371f-0c0e-46bb-a5d4-f8aec637a467","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-02T07:21:13.1302112Z","updatedOn":"2019-08-02T07:21:13.1302112Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/98328e7b-c22c-4a4b-bcae-25953d0c52f3","type":"Microsoft.Authorization/roleAssignments","name":"98328e7b-c22c-4a4b-bcae-25953d0c52f3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f252f5a9-5576-4d6a-8786-7e3f9ae15736","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-29T06:05:33.4045612Z","updatedOn":"2020-04-29T06:05:33.4045612Z","createdBy":"a5cae52f-366a-417b-b718-e73d17746c35","updatedBy":"a5cae52f-366a-417b-b718-e73d17746c35","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b297605b-6ea5-4e63-b65c-174eab60c550","type":"Microsoft.Authorization/roleAssignments","name":"b297605b-6ea5-4e63-b65c-174eab60c550"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f340f3cf-80d0-418a-a4de-8f6e92768bd8","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-04-28T03:13:08.9833014Z","updatedOn":"2020-04-28T03:13:08.9833014Z","createdBy":"547f6960-a967-417a-a9a4-0f35fbdca11c","updatedBy":"547f6960-a967-417a-a9a4-0f35fbdca11c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5479cc1b-0762-40bd-862d-7369aa1ff685","type":"Microsoft.Authorization/roleAssignments","name":"5479cc1b-0762-40bd-862d-7369aa1ff685"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f3add809-c372-44f2-8d2e-107707be72f1","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-02-04T02:11:30.6140935Z","updatedOn":"2020-02-04T02:11:30.6140935Z","createdBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","updatedBy":"80a6e936-2bdc-4927-b49e-2a7a19943b90","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/495c765c-e6e2-4582-9ab6-ad9abf7e5064","type":"Microsoft.Authorization/roleAssignments","name":"495c765c-e6e2-4582-9ab6-ad9abf7e5064"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f679fcb0-059c-4446-9416-fd8240ad57f8","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-08-07T02:22:30.6763169Z","updatedOn":"2020-08-07T02:22:30.6763169Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/554217c2-53fa-48f6-93ea-4e06c41f86c6","type":"Microsoft.Authorization/roleAssignments","name":"554217c2-53fa-48f6-93ea-4e06c41f86c6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f71c3254-4335-487a-9f84-3aaae4821f2e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-06T03:04:23.5398083Z","updatedOn":"2019-08-06T03:04:23.5398083Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/958e790f-1635-4dd3-b718-5403a1342a66","type":"Microsoft.Authorization/roleAssignments","name":"958e790f-1635-4dd3-b718-5403a1342a66"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"f7f1e3a2-a6d6-4f0c-8189-067e2f48366d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-07-17T03:14:37.2675405Z","updatedOn":"2020-07-17T03:14:37.2675405Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0d5c6698-a390-411c-a028-5ef6510a7db3","type":"Microsoft.Authorization/roleAssignments","name":"0d5c6698-a390-411c-a028-5ef6510a7db3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"fa1d1008-ffe7-4260-ae5b-6aff7c3b6803","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-01-10T01:23:31.4432043Z","updatedOn":"2020-01-10T01:23:31.4432043Z","createdBy":"09914860-7ec9-4151-8431-31797899a359","updatedBy":"09914860-7ec9-4151-8431-31797899a359","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/151d14b1-b26a-47b9-be10-255bf562d592","type":"Microsoft.Authorization/roleAssignments","name":"151d14b1-b26a-47b9-be10-255bf562d592"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"fb4e3ec1-4f80-498d-9453-d109e7240fbb","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-01T06:59:31.2619013Z","updatedOn":"2020-09-01T06:59:31.2619013Z","createdBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","updatedBy":"a70eb664-13f1-42a8-8cfc-86a61770d75f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3c8813ac-e50e-4868-9e41-910258f3c33a","type":"Microsoft.Authorization/roleAssignments","name":"3c8813ac-e50e-4868-9e41-910258f3c33a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"febf609b-90d8-4d63-bffb-c12ccb094696","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-12-13T02:02:28.2288268Z","updatedOn":"2019-12-13T02:02:28.2288268Z","createdBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","updatedBy":"01e2b341-56ec-43fb-9f53-f6332d30df93","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/11ddfea7-616f-499f-9975-e8513b60eb3c","type":"Microsoft.Authorization/roleAssignments","name":"11ddfea7-616f-499f-9975-e8513b60eb3c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"ffd1ed44-5aa8-4cc7-a5f6-25ff2b8cebf3","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-03-16T23:29:48.3209681Z","updatedOn":"2020-03-16T23:29:48.3209681Z","createdBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","updatedBy":"b1e54977-a96f-4b97-b7ac-a911bef78f5e","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3eb4155b-2965-456b-8f00-bca8a13b1684","type":"Microsoft.Authorization/roleAssignments","name":"3eb4155b-2965-456b-8f00-bca8a13b1684"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"5c617d2b-99f8-4c90-98fe-dfe040fa33c1","principalType":"ServicePrincipal","scope":"/","condition":null,"conditionVersion":null,"createdOn":"2018-02-27T19:19:50.2663941Z","updatedOn":"2018-02-27T19:19:50.2663941Z","createdBy":null,"updatedBy":null,"delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Authorization/roleAssignments/3e883d24-b106-42ff-ad13-d7bf271b964d","type":"Microsoft.Authorization/roleAssignments","name":"3e883d24-b106-42ff-ad13-d7bf271b964d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227","condition":null,"conditionVersion":null,"createdOn":"2019-03-26T22:01:02.9428505Z","updatedOn":"2019-03-26T22:01:02.9428505Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227/providers/Microsoft.Authorization/roleAssignments/10d00e1e-13b8-4846-9e4f-d4db71bddab0","type":"Microsoft.Authorization/roleAssignments","name":"10d00e1e-13b8-4846-9e4f-d4db71bddab0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2019-03-26T22:01:02.9136073Z","updatedOn":"2019-03-26T22:01:02.9136073Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6f4de15e-9316-4714-a7c4-40c46cf8e067","type":"Microsoft.Authorization/roleAssignments","name":"6f4de15e-9316-4714-a7c4-40c46cf8e067"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"2ac3f52f-f3ad-40a4-9b2d-aa24e4c7bbba","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:13.2137492Z","updatedOn":"2020-02-25T18:36:13.2137492Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/18fdd87e-1c01-424e-b380-32310f4940c2","type":"Microsoft.Authorization/roleAssignments","name":"18fdd87e-1c01-424e-b380-32310f4940c2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"4a113caa-961f-4535-ac9b-79bfba8b9ed2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:00.4746112Z","updatedOn":"2020-02-25T18:36:00.4746112Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d9bcf58a-6f24-446d-bf60-20ffe5142396","type":"Microsoft.Authorization/roleAssignments","name":"d9bcf58a-6f24-446d-bf60-20ffe5142396"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"56d08bc2-cc29-4d23-9d23-fd396b807b02","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:35:55.7490022Z","updatedOn":"2020-02-25T18:35:55.7490022Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6e2b954b-42b2-48e0-997a-622601f0a4b4","type":"Microsoft.Authorization/roleAssignments","name":"6e2b954b-42b2-48e0-997a-622601f0a4b4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6179a082-c057-4fe3-8118-916b816a42e3","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:35:57.9173081Z","updatedOn":"2020-02-25T18:35:57.9173081Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9","type":"Microsoft.Authorization/roleAssignments","name":"8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6fe923a8-2e4d-4c1f-b7d6-a7c5984f0129","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:23.0673659Z","updatedOn":"2020-02-25T18:36:23.0673659Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d0817c57-3e5b-4363-88b7-52baadd5c362","type":"Microsoft.Authorization/roleAssignments","name":"d0817c57-3e5b-4363-88b7-52baadd5c362"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7c2d0d59-528c-434a-8c6c-03330539cad2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:31.2596366Z","updatedOn":"2020-02-25T18:36:31.2596366Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/0dabf212-a1c7-4af6-ba8b-be045493b368","type":"Microsoft.Authorization/roleAssignments","name":"0dabf212-a1c7-4af6-ba8b-be045493b368"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7d7aed0a-228e-420b-a6a2-82a49dacb8cb","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:35:52.9188704Z","updatedOn":"2020-02-25T18:35:52.9188704Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d674b853-332e-4437-9ddb-bba8fde7ccce","type":"Microsoft.Authorization/roleAssignments","name":"d674b853-332e-4437-9ddb-bba8fde7ccce"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"985bb80e-8113-4542-8d68-418589e6ff34","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:02.5324969Z","updatedOn":"2020-02-25T18:36:02.5324969Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b4bdc3a7-78e2-4b26-8b90-e474aa120b47","type":"Microsoft.Authorization/roleAssignments","name":"b4bdc3a7-78e2-4b26-8b90-e474aa120b47"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"b7a49237-f5b0-473f-a4ff-6830d23af17d","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:38.8393742Z","updatedOn":"2020-02-25T18:36:38.8393742Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/00625383-053d-4227-a4db-b098e9bd2289","type":"Microsoft.Authorization/roleAssignments","name":"00625383-053d-4227-a4db-b098e9bd2289"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"f2e939bc-742a-42f9-a27a-f0982c6e3f64","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-02-25T18:36:05.0954462Z","updatedOn":"2020-02-25T18:36:05.0954462Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/3151fe9c-fcd2-45d3-a256-72fb13b86df5","type":"Microsoft.Authorization/roleAssignments","name":"3151fe9c-fcd2-45d3-a256-72fb13b86df5"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c","principalId":"b7b8bd19-f827-425f-9be1-fd8a86b21904","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","condition":null,"conditionVersion":null,"createdOn":"2020-07-06T18:51:22.9449669Z","updatedOn":"2020-07-06T18:51:22.9449669Z","createdBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7","updatedBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b3a9e1db-fde1-4ddd-ac1c-91913be67359","type":"Microsoft.Authorization/roleAssignments","name":"b3a9e1db-fde1-4ddd-ac1c-91913be67359"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","condition":null,"conditionVersion":null,"createdOn":"2019-03-26T22:01:02.9176787Z","updatedOn":"2019-03-26T22:01:02.9176787Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/4b771ea9-81de-4fc4-aa28-a3a0b9b4a320","type":"Microsoft.Authorization/roleAssignments","name":"4b771ea9-81de-4fc4-aa28-a3a0b9b4a320"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","condition":null,"conditionVersion":null,"createdOn":"2019-03-27T00:49:37.3000523Z","updatedOn":"2019-03-27T00:49:37.3000523Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/e6e1fffd-83f7-40c7-9f33-e56e2cf75b29","type":"Microsoft.Authorization/roleAssignments","name":"e6e1fffd-83f7-40c7-9f33-e56e2cf75b29"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","condition":null,"conditionVersion":null,"createdOn":"2019-03-27T00:50:08.3039053Z","updatedOn":"2019-03-27T00:50:08.3039053Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/3d01f56e-ee3a-41ed-a775-0e067546cb12","type":"Microsoft.Authorization/roleAssignments","name":"3d01f56e-ee3a-41ed-a775-0e067546cb12"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"ce2366a6-64d7-441b-939c-c9d23f91cccd","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47","condition":null,"conditionVersion":null,"createdOn":"2020-03-12T20:43:06.5941189Z","updatedOn":"2020-03-12T20:43:06.5941189Z","createdBy":"606f48c8-d219-4875-991d-ae6befaf0756","updatedBy":"606f48c8-d219-4875-991d-ae6befaf0756","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47/providers/Microsoft.Authorization/roleAssignments/ad9e2cd7-0ff7-4931-9b17-656c8f17934b","type":"Microsoft.Authorization/roleAssignments","name":"ad9e2cd7-0ff7-4931-9b17-656c8f17934b"}]}' headers: cache-control: - no-cache content-length: - - '947' + - '189611' content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:06 GMT + - Mon, 14 Sep 2020 18:44:09 GMT expires: - '-1' pragma: @@ -785,29 +849,17 @@ interactions: - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly 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: 201 - message: Created + code: 200 + message: OK - request: - body: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": - "cliakstest-clitestxkbj4mdzh-26fe00", "agentPoolProfiles": [{"count": 3, "vmSize": - "Standard_DS2_v2", "vnetSubnetID": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet", - "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": "System", "enableNodePublicIP": - false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": "Delete", "name": - "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", "ssh": {"publicKeys": - [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7"}]}}, - "servicePrincipalProfile": {"clientId": "660cc442-629f-4941-8c41-0fea0e92638a", - "secret": "ad4e0e97f21fe06721b0$"}, "addonProfiles": {"IngressApplicationGateway": - {"enabled": true, "config": {"applicationGatewayName": "gateway", "subnetId": - "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet"}}}, - "enableRBAC": true, "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": - "kubenet", "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": - "10.0.0.10", "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", - "loadBalancerSku": "standard"}}, "identity": {"type": "SystemAssigned"}}' + body: null headers: Accept: - application/json @@ -817,82 +869,46 @@ interactions: - aks create Connection: - keep-alive - Content-Length: - - '1767' - Content-Type: - - application/json; charset=utf-8 ParameterSetName: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27Network%20Contributor%27&api-version=2018-01-01-preview response: body: - string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ - ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ - : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ - \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ - ,\n \"dnsPrefix\": \"cliakstest-clitestxkbj4mdzh-26fe00\",\n \"fqdn\"\ - : \"cliakstest-clitestxkbj4mdzh-26fe00-c8daa60b.hcp.westus2.staging.azmk8s.io\"\ - ,\n \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \ - \ \"count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ - : 128,\n \"vnetSubnetID\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\",\n \ - \ \"provisioningState\": \"Creating\",\n \"orchestratorVersion\": \"\ - 1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\": {},\n\ - \ \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ - : \"AKSUbuntu-1604-2020.07.16\"\n }\n ],\n \"linuxProfile\": {\n \ - \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ - : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7\"\ - \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ - clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"IngressApplicationGateway\"\ - : {\n \"enabled\": true,\n \"config\": {\n \"applicationGatewayName\"\ - : \"gateway\",\n \"effectiveApplicationGatewayId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/applicationGateways/gateway\"\ - ,\n \"subnetId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet\"\ - \n }\n },\n \"KubeDashboard\": {\n \"enabled\": true,\n \ - \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ - ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ - networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ - : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ - : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ - ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ - ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ - loadBalancer\"\n },\n \"maxAgentPools\": 10\n },\n \"identity\": {\n\ - \ \"type\": \"SystemAssigned\",\n \"principalId\": \"d9231604-ad7d-452d-9b1d-c1d346b9df51\"\ - ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ - : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + string: '{"value":[{"properties":{"roleName":"Network Contributor","type":"BuiltInRole","description":"Lets + you manage networks, but not access to them.","assignableScopes":["/"],"permissions":[{"actions":["Microsoft.Authorization/*/read","Microsoft.Insights/alertRules/*","Microsoft.Network/*","Microsoft.ResourceHealth/availabilityStatuses/read","Microsoft.Resources/deployments/*","Microsoft.Resources/subscriptions/resourceGroups/read","Microsoft.Support/*"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2015-06-02T00:18:27.3542698Z","updatedOn":"2016-05-31T23:14:00.3326359Z","createdBy":null,"updatedBy":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","type":"Microsoft.Authorization/roleDefinitions","name":"4d97b98b-1d4f-4787-a291-c67834d212e7"}]}' headers: - azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/5f8ab1bf-ed5f-425b-a8a6-247204ff0735?api-version=2016-03-30 cache-control: - no-cache content-length: - - '3092' + - '873' content-type: - - application/json + - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:17:17 GMT + - Mon, 14 Sep 2020 18:44:10 GMT expires: - '-1' pragma: - no-cache - server: - - nginx + set-cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly 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: 201 - message: Created + code: 200 + message: OK - request: body: null headers: @@ -908,43 +924,60 @@ interactions: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/5f8ab1bf-ed5f-425b-a8a6-247204ff0735?api-version=2016-03-30 + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/servicePrincipals?$filter=servicePrincipalNames%2Fany%28c%3Ac%20eq%20%27f1e74bec-0ddb-437e-a809-5baec3dbd2ce%27%29&api-version=1.6 response: body: - string: "{\n \"name\": \"bfb18a5f-5fed-5b42-a8a6-247204ff0735\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:17:16.7160922Z\"\n }" + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"b36b4034-8d68-4f4d-aaa0-6efc2c78d33d","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":[],"appDisplayName":"cliakstest000002","appId":"f1e74bec-0ddb-437e-a809-5baec3dbd2ce","applicationTemplateId":null,"appOwnerTenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","appRoleAssignmentRequired":false,"appRoles":[],"displayName":"cliakstest000002","errorUrl":null,"homepage":"http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com","informationalUrls":{"termsOfService":null,"support":null,"privacy":null,"marketing":null},"keyCredentials":[],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[{"adminConsentDescription":"Allow + the application to access cliakstest000002 on behalf of the signed-in user.","adminConsentDisplayName":"Access + cliakstest000002","id":"b23e87a3-14dc-4a1f-8b75-7e4e79a19300","isEnabled":true,"type":"User","userConsentDescription":"Allow + the application to access cliakstest000002 on your behalf.","userConsentDisplayName":"Access + cliakstest000002","value":"user_impersonation"}],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":"Microsoft","replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com","f1e74bec-0ddb-437e-a809-5baec3dbd2ce"],"servicePrincipalType":"Application","signInAudience":"AzureADMyOrg","tags":[],"tokenEncryptionKeyId":null}]}' headers: + access-control-allow-origin: + - '*' cache-control: - no-cache content-length: - - '126' + - '1785' content-type: - - application/json + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; date: - - Wed, 29 Jul 2020 09:17:49 GMT + - Mon, 14 Sep 2020 18:44:11 GMT + duration: + - '553790' expires: - '-1' + ocp-aad-diagnostics-server-name: + - +2lxtXLU1vGXpolzAG6HSPi7w3yo4TkL3p7yohMOb1w= + ocp-aad-session-key: + - piIB6li6xEecvvcSnV0dSJAChun7QE1og_cJ8AbLTygN6aRyRIEoVYvJZOBaHEc4CY9Rkyk670SzuNtUBY1PgIBPAx6VUHxYS3Mfz6bqTAb0R8gcnfgYUuDoLGDJljGSUpXuWigRH-Pbqf0NabmqgY6SZvTGPro3uwL3EMAObGk.C0IH5hxlmqkb9_iOdjDg3jdNUvlURngU4uGDgHrc3Dc pragma: - no-cache - server: - - nginx + request-id: + - aba71013-ffaa-4f45-b34f-c2fb51a951c8 strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '1' + x-powered-by: + - ASP.NET status: code: 200 message: OK - request: - body: null + body: '{"properties": {"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "principalId": "b36b4034-8d68-4f4d-aaa0-6efc2c78d33d"}}' headers: Accept: - application/json @@ -954,45 +987,50 @@ interactions: - aks create Connection: - keep-alive + Content-Length: + - '233' + Content-Type: + - application/json; charset=utf-8 + Cookie: + - x-ms-gateway-slice=Production ParameterSetName: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/5f8ab1bf-ed5f-425b-a8a6-247204ff0735?api-version=2016-03-30 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleAssignments/48842cdb-dd39-4771-848a-d948f488530f?api-version=2020-04-01-preview response: body: - string: "{\n \"name\": \"bfb18a5f-5fed-5b42-a8a6-247204ff0735\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:17:16.7160922Z\"\n }" + string: '{"error":{"code":"PrincipalNotFound","message":"Principal b36b40348d684f4daaa06efc2c78d33d + does not exist in the directory 72f988bf-86f1-41af-91ab-2d7cd011db47."}}' headers: cache-control: - no-cache content-length: - - '126' + - '163' content-type: - - application/json + - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:18:20 GMT + - Mon, 14 Sep 2020 18:44:11 GMT expires: - '-1' pragma: - no-cache - server: - - nginx + set-cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly 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 + code: 400 + message: Bad Request - request: body: null headers: @@ -1008,30 +1046,31 @@ interactions: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/5f8ab1bf-ed5f-425b-a8a6-247204ff0735?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27Network%20Contributor%27&api-version=2018-01-01-preview response: body: - string: "{\n \"name\": \"bfb18a5f-5fed-5b42-a8a6-247204ff0735\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:17:16.7160922Z\"\n }" + string: '{"value":[{"properties":{"roleName":"Network Contributor","type":"BuiltInRole","description":"Lets + you manage networks, but not access to them.","assignableScopes":["/"],"permissions":[{"actions":["Microsoft.Authorization/*/read","Microsoft.Insights/alertRules/*","Microsoft.Network/*","Microsoft.ResourceHealth/availabilityStatuses/read","Microsoft.Resources/deployments/*","Microsoft.Resources/subscriptions/resourceGroups/read","Microsoft.Support/*"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2015-06-02T00:18:27.3542698Z","updatedOn":"2016-05-31T23:14:00.3326359Z","createdBy":null,"updatedBy":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","type":"Microsoft.Authorization/roleDefinitions","name":"4d97b98b-1d4f-4787-a291-c67834d212e7"}]}' headers: cache-control: - no-cache content-length: - - '126' + - '873' content-type: - - application/json + - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:18:53 GMT + - Mon, 14 Sep 2020 18:44:13 GMT expires: - '-1' pragma: - no-cache - server: - - nginx + set-cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1058,43 +1097,60 @@ interactions: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/5f8ab1bf-ed5f-425b-a8a6-247204ff0735?api-version=2016-03-30 + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/servicePrincipals?$filter=servicePrincipalNames%2Fany%28c%3Ac%20eq%20%27f1e74bec-0ddb-437e-a809-5baec3dbd2ce%27%29&api-version=1.6 response: body: - string: "{\n \"name\": \"bfb18a5f-5fed-5b42-a8a6-247204ff0735\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:17:16.7160922Z\"\n }" + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"b36b4034-8d68-4f4d-aaa0-6efc2c78d33d","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":[],"appDisplayName":"cliakstest000002","appId":"f1e74bec-0ddb-437e-a809-5baec3dbd2ce","applicationTemplateId":null,"appOwnerTenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","appRoleAssignmentRequired":false,"appRoles":[],"displayName":"cliakstest000002","errorUrl":null,"homepage":"http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com","informationalUrls":{"termsOfService":null,"support":null,"privacy":null,"marketing":null},"keyCredentials":[],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[{"adminConsentDescription":"Allow + the application to access cliakstest000002 on behalf of the signed-in user.","adminConsentDisplayName":"Access + cliakstest000002","id":"b23e87a3-14dc-4a1f-8b75-7e4e79a19300","isEnabled":true,"type":"User","userConsentDescription":"Allow + the application to access cliakstest000002 on your behalf.","userConsentDisplayName":"Access + cliakstest000002","value":"user_impersonation"}],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":"Microsoft","replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["http://4fa19c.cliakstest-clitestsngkewx6b-8ecadf.westus2.cloudapp.azure.com","f1e74bec-0ddb-437e-a809-5baec3dbd2ce"],"servicePrincipalType":"Application","signInAudience":"AzureADMyOrg","tags":[],"tokenEncryptionKeyId":null}]}' headers: + access-control-allow-origin: + - '*' cache-control: - no-cache content-length: - - '126' + - '1785' content-type: - - application/json + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; date: - - Wed, 29 Jul 2020 09:19:22 GMT + - Mon, 14 Sep 2020 18:44:14 GMT + duration: + - '680964' expires: - '-1' + ocp-aad-diagnostics-server-name: + - /NtEgZUZd+wP7jWSrDYgeIT+rUlfDWAtBVfze/ynjcQ= + ocp-aad-session-key: + - rfpiM2jD_m4CwD8c50ZP1NcYNQJu46QE1Hp9636eSpJ9p_RovsZcMY5AKsgjGiiaa5UcnrvaSdAz0q8sNT4C4QB3ADopiDrmJf54nUs_e20gODcw-e9d2C1nspeVrIpr4Z7MBX6sKHPHWGH5_iGdhfmXvFOHwPlw5qx7IYgc9m0.JdixKc-tzBdrD_defxsAkeGpCq5HJKBnVnajwWBa7L4 pragma: - no-cache - server: - - nginx + request-id: + - aba1e008-36d1-4ba3-a69e-79216327ec15 strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '1' + x-powered-by: + - ASP.NET status: code: 200 message: OK - request: - body: null + body: '{"properties": {"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", + "principalId": "b36b4034-8d68-4f4d-aaa0-6efc2c78d33d"}}' headers: Accept: - application/json @@ -1104,47 +1160,65 @@ interactions: - aks create Connection: - keep-alive - ParameterSetName: - - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id - -a --appgw-name --appgw-subnet-id -o - User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/5f8ab1bf-ed5f-425b-a8a6-247204ff0735?api-version=2016-03-30 + Content-Length: + - '233' + Content-Type: + - application/json; charset=utf-8 + Cookie: + - x-ms-gateway-slice=Production + ParameterSetName: + - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id + -a --appgw-name --appgw-subnet-id -o + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleAssignments/46eaa977-a71c-4328-a2c6-03006df568af?api-version=2020-04-01-preview response: body: - string: "{\n \"name\": \"bfb18a5f-5fed-5b42-a8a6-247204ff0735\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:17:16.7160922Z\"\n }" + string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"b36b4034-8d68-4f4d-aaa0-6efc2c78d33d","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet","condition":null,"conditionVersion":null,"createdOn":"2020-09-14T18:44:14.9108310Z","updatedOn":"2020-09-14T18:44:14.9108310Z","createdBy":null,"updatedBy":"7ac4ca6d-46a3-4e71-a705-858af50eea7b","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet/providers/Microsoft.Authorization/roleAssignments/46eaa977-a71c-4328-a2c6-03006df568af","type":"Microsoft.Authorization/roleAssignments","name":"46eaa977-a71c-4328-a2c6-03006df568af"}' headers: cache-control: - no-cache content-length: - - '126' + - '1049' content-type: - - application/json + - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:19:53 GMT + - Mon, 14 Sep 2020 18:44:15 GMT expires: - '-1' pragma: - no-cache - server: - - nginx + set-cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly 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 + code: 201 + message: Created - request: - body: null + body: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitestsngkewx6b-8ecadf", "agentPoolProfiles": [{"count": 3, "vmSize": + "Standard_DS2_v2", "vnetSubnetID": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet", + "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": "System", "enableNodePublicIP": + false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": "Delete", "name": + "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", "ssh": {"publicKeys": + [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c= + ace@ace-vm\n"}]}}, "servicePrincipalProfile": {"clientId": "f1e74bec-0ddb-437e-a809-5baec3dbd2ce", + "secret": "eb2188810705c299740d$"}, "addonProfiles": {"IngressApplicationGateway": + {"enabled": true, "config": {"applicationGatewayName": "gateway", "subnetId": + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet"}}}, + "enableRBAC": true, "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": + "kubenet", "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": + "10.0.0.10", "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", + "loadBalancerSku": "standard"}}, "identity": {"type": "SystemAssigned"}}' headers: Accept: - application/json @@ -1154,28 +1228,67 @@ interactions: - aks create Connection: - keep-alive + Content-Length: + - '1952' + Content-Type: + - application/json; charset=utf-8 ParameterSetName: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/5f8ab1bf-ed5f-425b-a8a6-247204ff0735?api-version=2016-03-30 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 response: body: - string: "{\n \"name\": \"bfb18a5f-5fed-5b42-a8a6-247204ff0735\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:17:16.7160922Z\"\n }" + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestsngkewx6b-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestsngkewx6b-8ecadf-77a240c6.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"vnetSubnetID\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ + ,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\",\n \ + \ \"provisioningState\": \"Creating\",\n \"orchestratorVersion\": \"\ + 1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\": {},\n\ + \ \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.19\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c=\ + \ ace@ace-vm\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ingressapplicationgateway\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"applicationgatewayname\"\ + : \"gateway\",\n \"effectiveapplicationgatewayid\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/applicationGateways/gateway\"\ + ,\n \"subnetid\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet\"\ + \n }\n },\n \"kubedashboard\": {\n \"enabled\": true,\n \ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ + ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ + ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ + loadBalancer\"\n },\n \"maxAgentPools\": 100\n },\n \"identity\": {\n\ + \ \"type\": \"SystemAssigned\",\n \"principalId\": \"aae8e521-e364-4492-9e0a-2ad49aa65bc4\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a698cb33-7296-4336-9f26-7f2a6101296c?api-version=2016-03-30 cache-control: - no-cache content-length: - - '126' + - '3300' content-type: - application/json date: - - Wed, 29 Jul 2020 09:20:23 GMT + - Mon, 14 Sep 2020 18:44:25 GMT expires: - '-1' pragma: @@ -1184,15 +1297,13 @@ interactions: - nginx 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 + code: 201 + message: Created - request: body: null headers: @@ -1208,25 +1319,24 @@ interactions: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/5f8ab1bf-ed5f-425b-a8a6-247204ff0735?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a698cb33-7296-4336-9f26-7f2a6101296c?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"bfb18a5f-5fed-5b42-a8a6-247204ff0735\",\n \"status\"\ - : \"Succeeded\",\n \"startTime\": \"2020-07-29T09:17:16.7160922Z\",\n \"\ - endTime\": \"2020-07-29T09:20:29.0543817Z\"\n }" + string: "{\n \"name\": \"33cb98a6-9672-3643-9f26-7f2a6101296c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:44:25.7524338Z\"\n }" headers: cache-control: - no-cache content-length: - - '170' + - '126' content-type: - application/json date: - - Wed, 29 Jul 2020 09:20:56 GMT + - Mon, 14 Sep 2020 18:44:55 GMT expires: - '-1' pragma: @@ -1259,66 +1369,24 @@ interactions: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a698cb33-7296-4336-9f26-7f2a6101296c?api-version=2016-03-30 response: body: - string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ - ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ - : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ - \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ - ,\n \"dnsPrefix\": \"cliakstest-clitestxkbj4mdzh-26fe00\",\n \"fqdn\"\ - : \"cliakstest-clitestxkbj4mdzh-26fe00-c8daa60b.hcp.westus2.staging.azmk8s.io\"\ - ,\n \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \ - \ \"count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ - : 128,\n \"vnetSubnetID\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ - ,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\",\n \ - \ \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\":\ - \ \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ - \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ - : \"AKSUbuntu-1604-2020.07.16\"\n }\n ],\n \"linuxProfile\": {\n \ - \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ - : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7\"\ - \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ - clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"IngressApplicationGateway\"\ - : {\n \"enabled\": true,\n \"config\": {\n \"applicationGatewayName\"\ - : \"gateway\",\n \"effectiveApplicationGatewayId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/applicationGateways/gateway\"\ - ,\n \"subnetId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet\"\ - \n },\n \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ingressapplicationgateway-cliakstest000002\"\ - ,\n \"clientId\": \"5bb3c89b-f781-402e-a3bf-a6f125b86dba\",\n \"\ - objectId\": \"cd837cc3-329b-444a-9413-2b253995c502\"\n }\n },\n \ - \ \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ - \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ - ,\n \"clientId\": \"4ecd2b01-ffa2-4306-89bc-b5f1fb1887f7\",\n \"\ - objectId\": \"517c6686-f4f8-424c-91a2-b856e6206a7d\"\n }\n }\n },\n\ - \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ - \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ - : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ - ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ - count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ - id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/69e0c57b-e137-44e5-bc6a-a01d2d274923\"\ - \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ - : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ - : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ - maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ - \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ - ,\n \"clientId\": \"dd22f519-bf5a-43ea-916a-c87cac17763e\",\n \"objectId\"\ - : \"433f6fd4-9d0b-42eb-9da5-786b8d91d32a\"\n }\n }\n },\n \"identity\"\ - : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"d9231604-ad7d-452d-9b1d-c1d346b9df51\"\ - ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ - : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + string: "{\n \"name\": \"33cb98a6-9672-3643-9f26-7f2a6101296c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:44:25.7524338Z\"\n }" headers: cache-control: - no-cache content-length: - - '4503' + - '126' content-type: - application/json date: - - Wed, 29 Jul 2020 09:20:56 GMT + - Mon, 14 Sep 2020 18:45:26 GMT expires: - '-1' pragma: @@ -1351,31 +1419,30 @@ interactions: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27Network%20Contributor%27&api-version=2018-01-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a698cb33-7296-4336-9f26-7f2a6101296c?api-version=2016-03-30 response: body: - string: '{"value":[{"properties":{"roleName":"Network Contributor","type":"BuiltInRole","description":"Lets - you manage networks, but not access to them.","assignableScopes":["/"],"permissions":[{"actions":["Microsoft.Authorization/*/read","Microsoft.Insights/alertRules/*","Microsoft.Network/*","Microsoft.ResourceHealth/availabilityStatuses/read","Microsoft.Resources/deployments/*","Microsoft.Resources/subscriptions/resourceGroups/read","Microsoft.Support/*"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2015-06-02T00:18:27.3542698Z","updatedOn":"2016-05-31T23:14:00.3326359Z","createdBy":null,"updatedBy":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","type":"Microsoft.Authorization/roleDefinitions","name":"4d97b98b-1d4f-4787-a291-c67834d212e7"}]}' + string: "{\n \"name\": \"33cb98a6-9672-3643-9f26-7f2a6101296c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:44:25.7524338Z\"\n }" headers: cache-control: - no-cache content-length: - - '873' + - '126' content-type: - - application/json; charset=utf-8 + - application/json date: - - Wed, 29 Jul 2020 09:20:58 GMT + - Mon, 14 Sep 2020 18:45:57 GMT expires: - '-1' pragma: - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + server: + - nginx strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1388,8 +1455,7 @@ interactions: code: 200 message: OK - request: - body: '{"properties": {"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7", - "principalId": "cd837cc3-329b-444a-9413-2b253995c502"}}' + body: null headers: Accept: - application/json @@ -1399,107 +1465,42 @@ interactions: - aks create Connection: - keep-alive - Content-Length: - - '233' - Content-Type: - - application/json; charset=utf-8 - Cookie: - - x-ms-gateway-slice=Production ParameterSetName: - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet/providers/Microsoft.Authorization/roleAssignments/1cfacb16-7228-4d9b-b58d-fa79935db629?api-version=2018-09-01-preview + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a698cb33-7296-4336-9f26-7f2a6101296c?api-version=2016-03-30 response: body: - string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"cd837cc3-329b-444a-9413-2b253995c502","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet","createdOn":"2020-07-29T09:20:58.3221689Z","updatedOn":"2020-07-29T09:20:58.3221689Z","createdBy":null,"updatedBy":"547f6960-a967-417a-a9a4-0f35fbdca11c"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet/providers/Microsoft.Authorization/roleAssignments/1cfacb16-7228-4d9b-b58d-fa79935db629","type":"Microsoft.Authorization/roleAssignments","name":"1cfacb16-7228-4d9b-b58d-fa79935db629"}' + string: "{\n \"name\": \"33cb98a6-9672-3643-9f26-7f2a6101296c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:44:25.7524338Z\"\n }" headers: cache-control: - no-cache content-length: - - '951' + - '126' content-type: - - application/json; charset=utf-8 + - application/json date: - - Wed, 29 Jul 2020 09:20:59 GMT + - Mon, 14 Sep 2020 18:46:27 GMT expires: - '-1' pragma: - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + server: + - nginx 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: 201 - message: Created -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - role assignment list - Connection: - - keep-alive - ParameterSetName: - - --assignee --scope --role -o - User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US - method: GET - uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/servicePrincipals?$filter=servicePrincipalNames%2Fany%28c%3Ac%20eq%20%275bb3c89b-f781-402e-a3bf-a6f125b86dba%27%29&api-version=1.6 - response: - body: - string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"cd837cc3-329b-444a-9413-2b253995c502","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":["isExplicit=True","/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ingressapplicationgateway-cliakstest000002"],"appDisplayName":null,"appId":"5bb3c89b-f781-402e-a3bf-a6f125b86dba","applicationTemplateId":null,"appOwnerTenantId":null,"appRoleAssignmentRequired":false,"appRoles":[],"displayName":"ingressapplicationgateway-cliakstest000002","errorUrl":null,"homepage":null,"informationalUrls":null,"keyCredentials":[{"customKeyIdentifier":"3525690278B7C0AB44E67D944AE63F20C3EB539D","endDate":"2020-10-27T09:12:00Z","keyId":"462aedc8-a244-44b2-8a50-85134ae5cab3","startDate":"2020-07-29T09:12:00Z","type":"AsymmetricX509Cert","usage":"Verify","value":null}],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":null,"replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["5bb3c89b-f781-402e-a3bf-a6f125b86dba","https://identity.azure.net/t1691gVMk2Gno3OpCA3K4naamRTv9YV2PQU5mVJZc6Y="],"servicePrincipalType":"ManagedIdentity","signInAudience":null,"tags":[],"tokenEncryptionKeyId":null}]}' - headers: - access-control-allow-origin: - - '*' - cache-control: - - no-cache - content-length: - - '1670' - content-type: - - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 - dataserviceversion: - - 3.0; - date: - - Wed, 29 Jul 2020 09:21:00 GMT - duration: - - '734116' - expires: - - '-1' - ocp-aad-diagnostics-server-name: - - m1KCbWkL8z8WD3NwYTgQZwkqkBZ1XGZaA8sEeasngwo= - ocp-aad-session-key: - - MoIyw8JMHrgyefDxctTgIVG_hVUlNMUytuITBFb6ilWpNS1v9SAVxg7M85aKnD1nBQOUA1PoMu3Be0Jqg8tpf6GnIP-97Xk37PE7AaOOCyyqVHq-gLCe-fcVqvhGXkO3.uLwNTH-bHHeyuoVZ5FfmqHGnhs-G-dktRv3gdq1WRXc - pragma: - - no-cache - request-id: - - 58a29327-e5fd-482f-a340-214222689587 - strict-transport-security: - - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-ms-dirapi-data-contract-version: - - '1.6' - x-ms-resource-unit: - - '1' - x-powered-by: - - ASP.NET status: code: 200 message: OK @@ -1511,36 +1512,37 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - role assignment list + - aks create Connection: - keep-alive ParameterSetName: - - --assignee --scope --role -o + - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id + -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet/providers/Microsoft.Authorization/roleAssignments?$filter=atScope%28%29&api-version=2018-09-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a698cb33-7296-4336-9f26-7f2a6101296c?api-version=2016-03-30 response: body: - string: '{"value":[{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"cd837cc3-329b-444a-9413-2b253995c502","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet","createdOn":"2020-07-29T09:20:58.8912871Z","updatedOn":"2020-07-29T09:20:58.8912871Z","createdBy":"547f6960-a967-417a-a9a4-0f35fbdca11c","updatedBy":"547f6960-a967-417a-a9a4-0f35fbdca11c"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet/providers/Microsoft.Authorization/roleAssignments/1cfacb16-7228-4d9b-b58d-fa79935db629","type":"Microsoft.Authorization/roleAssignments","name":"1cfacb16-7228-4d9b-b58d-fa79935db629"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"135a9bbc-ad60-452c-8ffe-519aa862e879","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:04.5178243Z","updatedOn":"2020-06-28T02:13:04.5178243Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a6b01bdc-2661-42bb-86dc-8919f95a33e9","type":"Microsoft.Authorization/roleAssignments","name":"a6b01bdc-2661-42bb-86dc-8919f95a33e9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"33d87b59-68e3-40cb-a9e7-99fbf8d86408","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:05.6867898Z","updatedOn":"2020-06-28T02:13:05.6867898Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5af0e958-7a8d-480d-824c-c26f04eb2726","type":"Microsoft.Authorization/roleAssignments","name":"5af0e958-7a8d-480d-824c-c26f04eb2726"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"37eb6d11-d570-4544-9531-6453cb8623cf","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-24T01:42:26.2892277Z","updatedOn":"2020-06-24T01:42:26.2892277Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a32cce5c-1fd3-41c4-acc1-5703f0886990","type":"Microsoft.Authorization/roleAssignments","name":"a32cce5c-1fd3-41c4-acc1-5703f0886990"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"38d88515-7eb8-4c96-804f-4edcc95b9dff","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-15T00:05:21.2872130Z","updatedOn":"2018-11-15T00:05:21.2872130Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a8ebe6bd-7017-43e1-818a-64b3ec691ff4","type":"Microsoft.Authorization/roleAssignments","name":"a8ebe6bd-7017-43e1-818a-64b3ec691ff4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"395c8203-ec60-4c13-9730-5f960088f92b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:06.4818169Z","updatedOn":"2020-06-28T02:13:06.4818169Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f6a7ee61-576a-48de-bd6b-62d8e8ff5335","type":"Microsoft.Authorization/roleAssignments","name":"f6a7ee61-576a-48de-bd6b-62d8e8ff5335"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-24T01:42:26.3089219Z","updatedOn":"2020-06-24T01:42:26.3089219Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/10d66f5e-ede6-428d-a82f-24c56d58ee41","type":"Microsoft.Authorization/roleAssignments","name":"10d66f5e-ede6-428d-a82f-24c56d58ee41"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"80a6e936-2bdc-4927-b49e-2a7a19943b90","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:05.6664266Z","updatedOn":"2020-06-28T02:13:05.6664266Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/049bb70c-f07b-4e4e-81c1-49d706598629","type":"Microsoft.Authorization/roleAssignments","name":"049bb70c-f07b-4e4e-81c1-49d706598629"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"8a5603a8-2c60-49ab-bc28-a989b91e187d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-07-03T07:16:26.4178883Z","updatedOn":"2020-07-03T07:16:26.4178883Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/bff88f85-1f05-44fe-9a15-81ff4412ef7d","type":"Microsoft.Authorization/roleAssignments","name":"bff88f85-1f05-44fe-9a15-81ff4412ef7d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a56cfdc0-40f8-4077-8843-a8bf0067cd4d","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:26:47.8968784Z","updatedOn":"2020-06-28T02:26:47.8968784Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/cd01871c-f24c-478d-b9f2-1eec835b3705","type":"Microsoft.Authorization/roleAssignments","name":"cd01871c-f24c-478d-b9f2-1eec835b3705"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"ae4622a7-bde9-4bca-9599-2d18571bfeba","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:13:04.9948448Z","updatedOn":"2020-06-28T02:13:04.9948448Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8fbd0f94-dbc4-4b41-b89f-d39c61939775","type":"Microsoft.Authorization/roleAssignments","name":"8fbd0f94-dbc4-4b41-b89f-d39c61939775"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"b47f071a-d6c9-4297-954e-83151fff489b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:26:58.4113645Z","updatedOn":"2020-06-28T02:26:58.4113645Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f7bcb38a-4254-415b-bb42-5be0927cc5b3","type":"Microsoft.Authorization/roleAssignments","name":"f7bcb38a-4254-415b-bb42-5be0927cc5b3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"c29bee61-aa42-4f9c-be8b-840522822e1e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T13:39:10.8094236Z","updatedOn":"2020-06-28T13:39:10.8094236Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9cf9df38-5c44-486c-b632-5d3d9b8a1f85","type":"Microsoft.Authorization/roleAssignments","name":"9cf9df38-5c44-486c-b632-5d3d9b8a1f85"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"249ae1d3-b522-45be-a402-7a305735d066","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-19T22:36:12.1011895Z","updatedOn":"2018-11-19T22:36:12.1011895Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f4975c4b-3320-4ec6-9e1b-1c758d06ad55","type":"Microsoft.Authorization/roleAssignments","name":"f4975c4b-3320-4ec6-9e1b-1c758d06ad55"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2fda9054-fc12-457c-bb93-614f1f13426b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:12:24.1007764Z","updatedOn":"2019-01-04T04:12:24.1007764Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/fbe0e113-769d-4651-9d77-c3b470a714ab","type":"Microsoft.Authorization/roleAssignments","name":"fbe0e113-769d-4651-9d77-c3b470a714ab"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"39527840-d507-4477-8bd2-d7ffa4542194","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2018-11-15T21:06:41.8028199Z","updatedOn":"2018-11-15T21:06:41.8028199Z","createdBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff","updatedBy":"38d88515-7eb8-4c96-804f-4edcc95b9dff"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a5886114-fd73-4a40-9a7c-226bdc4617b1","type":"Microsoft.Authorization/roleAssignments","name":"a5886114-fd73-4a40-9a7c-226bdc4617b1"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"44d2f8c7-d87d-45b0-87db-4cb97b40417d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:11:22.8446433Z","updatedOn":"2020-06-28T02:11:22.8446433Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2cf5f7f5-6b29-4501-9ae5-94dc1b765c24","type":"Microsoft.Authorization/roleAssignments","name":"2cf5f7f5-6b29-4501-9ae5-94dc1b765c24"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"5caed073-2b85-4f0b-8792-afde9e986a5e","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:51:43.1917863Z","updatedOn":"2019-01-04T04:51:43.1917863Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/df1a2d1a-a8cc-426b-a65a-7eb0d2a71a53","type":"Microsoft.Authorization/roleAssignments","name":"df1a2d1a-a8cc-426b-a65a-7eb0d2a71a53"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2019-01-04T04:25:38.3359249Z","updatedOn":"2019-01-04T04:25:38.3359249Z","createdBy":"395c8203-ec60-4c13-9730-5f960088f92b","updatedBy":"395c8203-ec60-4c13-9730-5f960088f92b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4730c93b-bf36-463b-9545-ebe1880218cc","type":"Microsoft.Authorization/roleAssignments","name":"4730c93b-bf36-463b-9545-ebe1880218cc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"87ccb404-2e62-44d1-97c0-a842c400b985","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:08:54.9365955Z","updatedOn":"2020-06-28T02:08:54.9365955Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/dcbc5923-507d-4a28-be07-947993791c9c","type":"Microsoft.Authorization/roleAssignments","name":"dcbc5923-507d-4a28-be07-947993791c9c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8a5603a8-2c60-49ab-bc28-a989b91e187d","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-30T03:12:15.7525228Z","updatedOn":"2020-06-30T03:12:15.7525228Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/4c403ed2-c088-44b8-961f-323c41ca7cb6","type":"Microsoft.Authorization/roleAssignments","name":"4c403ed2-c088-44b8-961f-323c41ca7cb6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"8ff738a5-abcd-4864-a162-6c18f7c9cbd9","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T02:31:44.0748782Z","updatedOn":"2020-06-28T02:31:44.0748782Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88ac53e4-cb0c-4fcf-ad69-f055e301f047","type":"Microsoft.Authorization/roleAssignments","name":"88ac53e4-cb0c-4fcf-ad69-f055e301f047"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a5c919a9-89c9-45fb-880a-5e3e0b4fcb84","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T08:20:11.1204486Z","updatedOn":"2020-06-28T08:20:11.1204486Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/b3e51ab0-0a5d-4752-9774-43e63126d4b3","type":"Microsoft.Authorization/roleAssignments","name":"b3e51ab0-0a5d-4752-9774-43e63126d4b3"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"a6920a4d-d20a-4ac6-a844-13565e224294","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","createdOn":"2020-06-28T08:20:49.9287645Z","updatedOn":"2020-06-28T08:20:49.9287645Z","createdBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b","updatedBy":"7e9cc714-bfe4-4eea-acb2-d53ced88ab8b"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/e70cd72a-69e0-4f89-aeca-eaa908c123aa","type":"Microsoft.Authorization/roleAssignments","name":"e70cd72a-69e0-4f89-aeca-eaa908c123aa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"5c617d2b-99f8-4c90-98fe-dfe040fa33c1","principalType":"ServicePrincipal","scope":"/","createdOn":"2018-02-27T19:19:50.2663941Z","updatedOn":"2018-02-27T19:19:50.2663941Z","createdBy":null,"updatedBy":null},"id":"/providers/Microsoft.Authorization/roleAssignments/3e883d24-b106-42ff-ad13-d7bf271b964d","type":"Microsoft.Authorization/roleAssignments","name":"3e883d24-b106-42ff-ad13-d7bf271b964d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227","createdOn":"2019-03-26T22:01:02.9428505Z","updatedOn":"2019-03-26T22:01:02.9428505Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/d12984f0-19bf-4e3a-8d8b-18dcd401d227/providers/Microsoft.Authorization/roleAssignments/10d00e1e-13b8-4846-9e4f-d4db71bddab0","type":"Microsoft.Authorization/roleAssignments","name":"10d00e1e-13b8-4846-9e4f-d4db71bddab0"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2019-03-26T22:01:02.9136073Z","updatedOn":"2019-03-26T22:01:02.9136073Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6f4de15e-9316-4714-a7c4-40c46cf8e067","type":"Microsoft.Authorization/roleAssignments","name":"6f4de15e-9316-4714-a7c4-40c46cf8e067"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"2ac3f52f-f3ad-40a4-9b2d-aa24e4c7bbba","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:13.2137492Z","updatedOn":"2020-02-25T18:36:13.2137492Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/18fdd87e-1c01-424e-b380-32310f4940c2","type":"Microsoft.Authorization/roleAssignments","name":"18fdd87e-1c01-424e-b380-32310f4940c2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"4a113caa-961f-4535-ac9b-79bfba8b9ed2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:00.4746112Z","updatedOn":"2020-02-25T18:36:00.4746112Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d9bcf58a-6f24-446d-bf60-20ffe5142396","type":"Microsoft.Authorization/roleAssignments","name":"d9bcf58a-6f24-446d-bf60-20ffe5142396"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"56d08bc2-cc29-4d23-9d23-fd396b807b02","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:55.7490022Z","updatedOn":"2020-02-25T18:35:55.7490022Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/6e2b954b-42b2-48e0-997a-622601f0a4b4","type":"Microsoft.Authorization/roleAssignments","name":"6e2b954b-42b2-48e0-997a-622601f0a4b4"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6179a082-c057-4fe3-8118-916b816a42e3","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:57.9173081Z","updatedOn":"2020-02-25T18:35:57.9173081Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9","type":"Microsoft.Authorization/roleAssignments","name":"8d76aaa3-fcfd-4ea5-8c7c-363d250e7ae9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"6fe923a8-2e4d-4c1f-b7d6-a7c5984f0129","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:23.0673659Z","updatedOn":"2020-02-25T18:36:23.0673659Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d0817c57-3e5b-4363-88b7-52baadd5c362","type":"Microsoft.Authorization/roleAssignments","name":"d0817c57-3e5b-4363-88b7-52baadd5c362"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7c2d0d59-528c-434a-8c6c-03330539cad2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:31.2596366Z","updatedOn":"2020-02-25T18:36:31.2596366Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/0dabf212-a1c7-4af6-ba8b-be045493b368","type":"Microsoft.Authorization/roleAssignments","name":"0dabf212-a1c7-4af6-ba8b-be045493b368"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"7d7aed0a-228e-420b-a6a2-82a49dacb8cb","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:35:52.9188704Z","updatedOn":"2020-02-25T18:35:52.9188704Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/d674b853-332e-4437-9ddb-bba8fde7ccce","type":"Microsoft.Authorization/roleAssignments","name":"d674b853-332e-4437-9ddb-bba8fde7ccce"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"985bb80e-8113-4542-8d68-418589e6ff34","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:02.5324969Z","updatedOn":"2020-02-25T18:36:02.5324969Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b4bdc3a7-78e2-4b26-8b90-e474aa120b47","type":"Microsoft.Authorization/roleAssignments","name":"b4bdc3a7-78e2-4b26-8b90-e474aa120b47"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"b7a49237-f5b0-473f-a4ff-6830d23af17d","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:38.8393742Z","updatedOn":"2020-02-25T18:36:38.8393742Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/00625383-053d-4227-a4db-b098e9bd2289","type":"Microsoft.Authorization/roleAssignments","name":"00625383-053d-4227-a4db-b098e9bd2289"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"f2e939bc-742a-42f9-a27a-f0982c6e3f64","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-02-25T18:36:05.0954462Z","updatedOn":"2020-02-25T18:36:05.0954462Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/3151fe9c-fcd2-45d3-a256-72fb13b86df5","type":"Microsoft.Authorization/roleAssignments","name":"3151fe9c-fcd2-45d3-a256-72fb13b86df5"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c","principalId":"b7b8bd19-f827-425f-9be1-fd8a86b21904","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792","createdOn":"2020-07-06T18:51:22.9449669Z","updatedOn":"2020-07-06T18:51:22.9449669Z","createdBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7","updatedBy":"d59f4a71-eff1-4bfa-a572-fe518f49f6c7"},"id":"/providers/Microsoft.Management/managementGroups/48fed3a1-0814-4847-88ce-b766155f2792/providers/Microsoft.Authorization/roleAssignments/b3a9e1db-fde1-4ddd-ac1c-91913be67359","type":"Microsoft.Authorization/roleAssignments","name":"b3a9e1db-fde1-4ddd-ac1c-91913be67359"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9","principalId":"1c8b3602-77a2-4e8a-8c1e-f127f2af5ca2","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-26T22:01:02.9176787Z","updatedOn":"2019-03-26T22:01:02.9176787Z","createdBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818","updatedBy":"8701e34d-d7c2-459c-b2d7-f3a9c5204818"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/4b771ea9-81de-4fc4-aa28-a3a0b9b4a320","type":"Microsoft.Authorization/roleAssignments","name":"4b771ea9-81de-4fc4-aa28-a3a0b9b4a320"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-27T00:49:37.3000523Z","updatedOn":"2019-03-27T00:49:37.3000523Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/e6e1fffd-83f7-40c7-9f33-e56e2cf75b29","type":"Microsoft.Authorization/roleAssignments","name":"e6e1fffd-83f7-40c7-9f33-e56e2cf75b29"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c","principalId":"1f75b9dd-4f1d-4e80-9521-321a8b1f5764","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod","createdOn":"2019-03-27T00:50:08.3039053Z","updatedOn":"2019-03-27T00:50:08.3039053Z","createdBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c","updatedBy":"820ba717-9ea7-4147-bc13-1e35af4cc27c"},"id":"/providers/Microsoft.Management/managementGroups/CnAIOrchestrationServicePublicCorpprod/providers/Microsoft.Authorization/roleAssignments/3d01f56e-ee3a-41ed-a775-0e067546cb12","type":"Microsoft.Authorization/roleAssignments","name":"3d01f56e-ee3a-41ed-a775-0e067546cb12"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"ce2366a6-64d7-441b-939c-c9d23f91cccd","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47","createdOn":"2020-03-12T20:43:06.5941189Z","updatedOn":"2020-03-12T20:43:06.5941189Z","createdBy":"606f48c8-d219-4875-991d-ae6befaf0756","updatedBy":"606f48c8-d219-4875-991d-ae6befaf0756"},"id":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47/providers/Microsoft.Authorization/roleAssignments/ad9e2cd7-0ff7-4931-9b17-656c8f17934b","type":"Microsoft.Authorization/roleAssignments","name":"ad9e2cd7-0ff7-4931-9b17-656c8f17934b"}]}' + string: "{\n \"name\": \"33cb98a6-9672-3643-9f26-7f2a6101296c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T18:44:25.7524338Z\"\n }" headers: cache-control: - no-cache content-length: - - '32769' + - '126' content-type: - - application/json; charset=utf-8 + - application/json date: - - Wed, 29 Jul 2020 09:21:00 GMT + - Mon, 14 Sep 2020 18:46:58 GMT expires: - '-1' pragma: - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + server: + - nginx strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1560,2459 +1562,38 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - role assignment list + - aks create Connection: - keep-alive - Cookie: - - x-ms-gateway-slice=Production ParameterSetName: - - --assignee --scope --role -o + - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id + -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet/providers/Microsoft.Authorization/roleDefinitions?api-version=2018-01-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a698cb33-7296-4336-9f26-7f2a6101296c?api-version=2016-03-30 response: body: - string: "{\"value\":[{\"properties\":{\"roleName\":\"Avere Cluster Create\"\ - ,\"type\":\"CustomRole\",\"description\":\"Avere cluster create role used\ - \ by the Avere controller to create a vFXT cluster.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Authorization/roleAssignments/*\",\"Microsoft.Authorization/roleDefinitions/*\"\ - ,\"Microsoft.Compute/*/read\",\"Microsoft.Compute/availabilitySets/*\",\"\ - Microsoft.Compute/virtualMachines/*\",\"Microsoft.Network/*/read\",\"Microsoft.Network/networkInterfaces/*\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/virtualNetworks/subnets/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/subscriptions/resourceGroups/resources/read\"\ - ,\"Microsoft.Storage/*/read\",\"Microsoft.Storage/storageAccounts/listKeys/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-11-29T18:46:55.0492387Z\",\"updatedOn\":\"2018-11-29T18:46:55.0492387Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\"\ - },{\"properties\":{\"roleName\":\"Avere Cluster Runtime Operator\",\"type\"\ - :\"CustomRole\",\"description\":\"Avere cluster runtime role used by Avere\ - \ clusters running in subscriptions, for the purpose of failing over IP addresses,\ - \ accessing BLOB storage, etc\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Compute/virtualMachines/read\",\"Microsoft.Network/networkInterfaces/read\"\ - ,\"Microsoft.Network/networkInterfaces/write\",\"Microsoft.Network/virtualNetworks/subnets/read\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/networkSecurityGroups/join/action\"\ - ,\"Microsoft.Network/routeTables/read\",\"Microsoft.Network/routeTables/routes/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-08-26T00:41:26.2170858Z\",\"\ - updatedOn\":\"2018-08-26T00:41:26.2170858Z\",\"createdBy\":\"dda50086-5e3d-4a4b-b8bc-f54771104d89\"\ - ,\"updatedBy\":\"dda50086-5e3d-4a4b-b8bc-f54771104d89\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e078ab98-ef3a-4c9a-aba7-12f5172b45d0\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e078ab98-ef3a-4c9a-aba7-12f5172b45d0\"\ - },{\"properties\":{\"roleName\":\"Azure Service Deploy Release Management\ - \ Contributor\",\"type\":\"CustomRole\",\"description\":\"Contributor role\ - \ for services deploying through Azure Service Deploy.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"*\"],\"notActions\":[\"Microsoft.Authorization/*/Delete\"\ - ,\"Microsoft.Authorization/*/Write\"],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-02-04T02:26:31.5413362Z\",\"updatedOn\":\"2018-01-08T20:20:16.3660174Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/21d96096-b162-414a-8302-d8354f9d91b2\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"21d96096-b162-414a-8302-d8354f9d91b2\"\ - },{\"properties\":{\"roleName\":\"CAL-Custom-Role\",\"type\":\"CustomRole\"\ - ,\"description\":\"Lets SAP Cloud Appliance Library application manage Network\ - \ and Compute services, manage Resource Groups and Management locks.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/locks/*\"\ - ,\"Microsoft.Authorization/roleDefinitions/*\",\"Microsoft.Authorization/roleAssignments/*\"\ - ,\"Microsoft.Compute/*\",\"Microsoft.Network/*\",\"Microsoft.Resources/*\"\ - ,\"Microsoft.Storage/*\",\"Microsoft.ContainerService/*\",\"Microsoft.ContainerRegistry/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-05-14T19:30:51.0664585Z\",\"updatedOn\":\"2019-02-19T19:11:57.5963229Z\"\ - ,\"createdBy\":\"dda50086-5e3d-4a4b-b8bc-f54771104d89\",\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7b266cd7-0bba-4ae2-8423-90ede5e1e898\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7b266cd7-0bba-4ae2-8423-90ede5e1e898\"\ - },{\"properties\":{\"roleName\":\"Dsms Role (deprecated)\",\"type\":\"CustomRole\"\ - ,\"description\":\"Custom role used by Dsms to perform operations. Can list\ - \ and regnerate storage account keys.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\"Microsoft.Storage/storageAccounts/listkeys/action\"\ - ,\"Microsoft.Storage/storageAccounts/regeneratekey/action\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-05-17T18:02:11.1225951Z\"\ - ,\"updatedOn\":\"2018-01-13T00:21:52.7211696Z\",\"createdBy\":\"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\"\ - ,\"updatedBy\":\"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\"\ - },{\"properties\":{\"roleName\":\"Dsms Role (do not use)\",\"type\":\"CustomRole\"\ - ,\"description\":\"Custom role used by Dsms to perform operations. Can list\ - \ and regnerate storage account keys.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\"Microsoft.Storage/storageAccounts/listkeys/action\"\ - ,\"Microsoft.Storage/storageAccounts/regeneratekey/action\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-02-01T07:56:12.5880222Z\"\ - ,\"updatedOn\":\"2018-08-09T17:53:48.5432297Z\",\"createdBy\":\"becb4b6b-fe16-413b-a5c3-90355e0b2982\"\ - ,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7aff565e-6c55-448d-83db-ccf482c6da2f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7aff565e-6c55-448d-83db-ccf482c6da2f\"\ - },{\"properties\":{\"roleName\":\"ExpressRoute Administrator\",\"type\":\"\ - CustomRole\",\"description\":\"Can create, delete and manage ExpressRoutes\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/locks/*\"\ - ,\"Microsoft.Authorization/policyAssignments/*\",\"Microsoft.Authorization/policyDefinitions/*\"\ - ,\"Microsoft.Authorization/roleAssignments/*\",\"Microsoft.ClassicNetwork/*\"\ - ,\"Microsoft.EventGrid/*\",\"Microsoft.Insights/*\",\"Microsoft.Network/*\"\ - ,\"Microsoft.Resources/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-08-31T03:51:32.2843055Z\",\"updatedOn\":\"2019-03-20T22:55:18.8222085Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a48d7896-14b4-4889-afef-fbb65a96e5a2\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a48d7896-14b4-4889-afef-fbb65a96e5a2\"\ - },{\"properties\":{\"roleName\":\"GenevaWarmPathResourceContributor\",\"type\"\ - :\"CustomRole\",\"description\":\"Can manage service bus and storage accounts.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EventHub/namespaces/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/*\",\"Microsoft.ServiceBus/namespaces/*\"\ - ,\"Microsoft.Storage/storageAccounts/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2017-03-14T22:30:10.1999436Z\"\ - ,\"updatedOn\":\"2017-03-14T22:30:10.1999436Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\"\ - },{\"properties\":{\"roleName\":\"masterreader\",\"type\":\"CustomRole\",\"\ - description\":\"Lets you view everything, but not make any changes.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"*/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2017-11-14T23:38:05.3353858Z\"\ - ,\"updatedOn\":\"2017-11-14T23:38:05.3353858Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a48d7796-14b4-4889-afef-fbb65a93e5a2\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a48d7796-14b4-4889-afef-fbb65a93e5a2\"\ - },{\"properties\":{\"roleName\":\"Microsoft OneAsset Reader\",\"type\":\"\ - CustomRole\",\"description\":\"This role is for Microsoft OneAsset team (CSEO)\ - \ to track internal security compliance and resource utilization.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Compute/virtualMachines/*/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-03-27T23:51:08.6333052Z\",\"updatedOn\":\"2019-04-02T20:35:43.3396263Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fd1bb084-1503-4bd2-99c0-630220046786\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fd1bb084-1503-4bd2-99c0-630220046786\"\ - },{\"properties\":{\"roleName\":\"Office DevOps\",\"type\":\"CustomRole\"\ - ,\"description\":\"Custom access for developers to operations but not secrets.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Compute/virtualMachineScaleSets/restart/action\"\ - ,\"Microsoft.Compute/virtualMachineScaleSets/virtualMachines/restart/action\"\ - ,\"Microsoft.Sql/servers/databases/replicationLinks/delete\",\"Microsoft.Sql/servers/databases/replicationLinks/failover/action\"\ - ,\"Microsoft.Sql/servers/databases/replicationLinks/forceFailoverAllowDataLoss/action\"\ - ,\"Microsoft.Sql/servers/databases/replicationLinks/operationResults/read\"\ - ,\"Microsoft.Sql/servers/databases/replicationLinks/read\",\"Microsoft.Sql/servers/databases/replicationLinks/unlink/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2016-10-07T08:11:46.1639398Z\",\"updatedOn\":\"2017-03-16T18:43:08.3234306Z\"\ - ,\"createdBy\":\"25aea6be-b605-4347-a92d-33e178e412ec\",\"updatedBy\":\"25aea6be-b605-4347-a92d-33e178e412ec\"\ - },\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7fd64851-3279-459b-b614-e2b2ba760f5b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7fd64851-3279-459b-b614-e2b2ba760f5b\"\ - },{\"properties\":{\"roleName\":\"GenevaWarmPathStorageBlobContributor\",\"\ - type\":\"CustomRole\",\"description\":\"Geneva Warm Path Storage Blob Contributor\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/lease/action\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/lock/action\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/read\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/extend/action\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-12-06T22:46:27.1365630Z\",\"updatedOn\":\"2019-12-06T22:46:27.1365630Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a16c43ca-2d67-4dcd-9ded-6412f5edc51a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a16c43ca-2d67-4dcd-9ded-6412f5edc51a\"\ - },{\"properties\":{\"roleName\":\"AcrPush\",\"type\":\"BuiltInRole\",\"description\"\ - :\"acr push\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.ContainerRegistry/registries/pull/read\",\"Microsoft.ContainerRegistry/registries/push/write\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-10-29T17:52:32.5201177Z\",\"updatedOn\":\"2018-11-13T23:26:19.9749249Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8311e382-0749-4cb8-b61a-304f252e45ec\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8311e382-0749-4cb8-b61a-304f252e45ec\"\ - },{\"properties\":{\"roleName\":\"API Management Service Contributor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can manage service and the APIs\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ApiManagement/service/*\"\ - ,\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8650193Z\",\"updatedOn\":\"2019-02-05T21:24:17.7502607Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/312a565d-c81f-4fd8-895a-4e21e48d571c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"312a565d-c81f-4fd8-895a-4e21e48d571c\"\ - },{\"properties\":{\"roleName\":\"AcrPull\",\"type\":\"BuiltInRole\",\"description\"\ - :\"acr pull\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.ContainerRegistry/registries/pull/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-10-22T19:01:56.8227182Z\"\ - ,\"updatedOn\":\"2018-11-13T23:22:03.2302457Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f951dda-4ed3-4680-a7ca-43fe172d538d\"\ - },{\"properties\":{\"roleName\":\"AcrImageSigner\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"acr image signer\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.ContainerRegistry/registries/sign/write\"],\"\ - notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"\ - 2018-03-15T23:23:08.4038322Z\",\"updatedOn\":\"2018-10-29T19:06:24.9004422Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6cef56e8-d556-48e5-a04f-b8e64114680f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6cef56e8-d556-48e5-a04f-b8e64114680f\"\ - },{\"properties\":{\"roleName\":\"AcrDelete\",\"type\":\"BuiltInRole\",\"\ - description\":\"acr delete\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.ContainerRegistry/registries/artifacts/delete\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-03-11T20:19:31.6682804Z\",\"updatedOn\":\"2019-03-11T20:24:38.9845104Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c2f4ef07-c644-48eb-af81-4b1b4947fb11\"\ - },{\"properties\":{\"roleName\":\"AcrQuarantineReader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"acr quarantine data reader\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.ContainerRegistry/registries/quarantine/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-03-16T00:27:39.9596835Z\",\"updatedOn\":\"2019-10-22T00:12:39.7020930Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/cdda3590-29a3-44f6-95f2-9f980659eb04\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"cdda3590-29a3-44f6-95f2-9f980659eb04\"\ - },{\"properties\":{\"roleName\":\"AcrQuarantineWriter\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"acr quarantine data writer\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.ContainerRegistry/registries/quarantine/read\"\ - ,\"Microsoft.ContainerRegistry/registries/quarantine/write\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-16T00:26:37.5871820Z\"\ - ,\"updatedOn\":\"2019-10-22T00:10:29.8202164Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c8d4ff99-41c3-41a8-9f60-21dfdad59608\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c8d4ff99-41c3-41a8-9f60-21dfdad59608\"\ - },{\"properties\":{\"roleName\":\"API Management Service Operator Role\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can manage service but not the APIs\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ApiManagement/service/*/read\"\ - ,\"Microsoft.ApiManagement/service/backup/action\",\"Microsoft.ApiManagement/service/delete\"\ - ,\"Microsoft.ApiManagement/service/managedeployments/action\",\"Microsoft.ApiManagement/service/read\"\ - ,\"Microsoft.ApiManagement/service/restore/action\",\"Microsoft.ApiManagement/service/updatecertificate/action\"\ - ,\"Microsoft.ApiManagement/service/updatehostname/action\",\"Microsoft.ApiManagement/service/write\"\ - ,\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[\"Microsoft.ApiManagement/service/users/keys/read\"],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-11-09T00:03:42.1194019Z\"\ - ,\"updatedOn\":\"2016-11-18T23:56:25.4682649Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e022efe7-f5ba-4159-bbe4-b44f577e9b61\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e022efe7-f5ba-4159-bbe4-b44f577e9b61\"\ - },{\"properties\":{\"roleName\":\"API Management Service Reader Role\",\"\ - type\":\"BuiltInRole\",\"description\":\"Read-only access to service and APIs\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ApiManagement/service/*/read\"\ - ,\"Microsoft.ApiManagement/service/read\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[\"Microsoft.ApiManagement/service/users/keys/read\"\ - ],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-11-09T00:26:45.1540473Z\"\ - ,\"updatedOn\":\"2017-01-23T23:10:34.8876776Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/71522526-b88f-4d52-b57f-d31fc3546d0d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"71522526-b88f-4d52-b57f-d31fc3546d0d\"\ - },{\"properties\":{\"roleName\":\"Application Insights Component Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Can manage Application Insights\ - \ components\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Insights/metricAlerts/*\",\"Microsoft.Insights/components/*\",\"\ - Microsoft.Insights/webtests/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2020-02-12T12:45:46.9200472Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ae349356-3a1b-4a5e-921d-050484c6347e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ae349356-3a1b-4a5e-921d-050484c6347e\"\ - },{\"properties\":{\"roleName\":\"Application Insights Snapshot Debugger\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Gives user permission to use Application\ - \ Insights Snapshot Debugger features\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Insights/components/*/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-04-19T21:25:12.3728747Z\",\"updatedOn\":\"2017-04-19T23:34:59.9511581Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/08954f03-6346-4c2e-81c0-ec3a5cfae23b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"08954f03-6346-4c2e-81c0-ec3a5cfae23b\"\ - },{\"properties\":{\"roleName\":\"Attestation Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can read the attestation provider properties\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Attestation/attestationProviders/attestation/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-03-25T19:42:59.1576710Z\",\"updatedOn\":\"2019-05-10T17:52:38.9036953Z\"\ - ,\"createdBy\":null,\"updatedBy\":\"SYSTEM\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fd1bd22b-8476-40bc-a0bc-69b95687b9f3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fd1bd22b-8476-40bc-a0bc-69b95687b9f3\"\ - },{\"properties\":{\"roleName\":\"Automation Job Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Create and Manage Jobs using Automation Runbooks.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/read\",\"Microsoft.Automation/automationAccounts/jobs/resume/action\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/stop/action\",\"Microsoft.Automation/automationAccounts/jobs/streams/read\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\"Microsoft.Automation/automationAccounts/jobs/write\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/output/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-04-19T20:52:41.0020018Z\",\"updatedOn\":\"2018-08-14T22:08:48.1147327Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4fe576fe-1146-4730-92eb-48519fa6bf9f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4fe576fe-1146-4730-92eb-48519fa6bf9f\"\ - },{\"properties\":{\"roleName\":\"Automation Runbook Operator\",\"type\":\"\ - BuiltInRole\",\"description\":\"Read Runbook properties - to be able to create\ - \ Jobs of the runbook.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Automation/automationAccounts/runbooks/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-04-19T20:47:49.5640674Z\",\"updatedOn\":\"2017-04-25T01:00:45.6444999Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\"\ - },{\"properties\":{\"roleName\":\"Automation Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Automation Operators are able to start, stop, suspend,\ - \ and resume jobs\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/read\",\"Microsoft.Automation/automationAccounts/jobs/resume/action\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/stop/action\",\"Microsoft.Automation/automationAccounts/jobs/streams/read\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\"Microsoft.Automation/automationAccounts/jobs/write\"\ - ,\"Microsoft.Automation/automationAccounts/jobSchedules/read\",\"Microsoft.Automation/automationAccounts/jobSchedules/write\"\ - ,\"Microsoft.Automation/automationAccounts/linkedWorkspace/read\",\"Microsoft.Automation/automationAccounts/read\"\ - ,\"Microsoft.Automation/automationAccounts/runbooks/read\",\"Microsoft.Automation/automationAccounts/schedules/read\"\ - ,\"Microsoft.Automation/automationAccounts/schedules/write\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Automation/automationAccounts/jobs/output/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-08-18T01:05:03.3916130Z\",\"updatedOn\":\"2018-05-10T20:12:39.6978200Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d3881f73-407a-4167-8283-e981cbba0404\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d3881f73-407a-4167-8283-e981cbba0404\"\ - },{\"properties\":{\"roleName\":\"Avere Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can create and manage an Avere vFXT cluster.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Compute/*/read\",\"Microsoft.Compute/availabilitySets/*\",\"\ - Microsoft.Compute/proximityPlacementGroups/*\",\"Microsoft.Compute/virtualMachines/*\"\ - ,\"Microsoft.Compute/disks/*\",\"Microsoft.Network/*/read\",\"Microsoft.Network/networkInterfaces/*\"\ - ,\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.Network/virtualNetworks/subnets/read\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"\ - ,\"Microsoft.Network/networkSecurityGroups/join/action\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Storage/*/read\",\"Microsoft.Storage/storageAccounts/*\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/resources/read\"],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-03-18T20:00:58.9207889Z\",\"\ - updatedOn\":\"2020-05-27T06:48:54.4896867Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4f8fab4f-1852-4a58-a46a-8eaf358af14a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4f8fab4f-1852-4a58-a46a-8eaf358af14a\"\ - },{\"properties\":{\"roleName\":\"Avere Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Used by the Avere vFXT cluster to manage the cluster\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Compute/virtualMachines/read\"\ - ,\"Microsoft.Network/networkInterfaces/read\",\"Microsoft.Network/networkInterfaces/write\"\ - ,\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.Network/virtualNetworks/subnets/read\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/networkSecurityGroups/join/action\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-03-18T20:02:38.3399857Z\",\"\ - updatedOn\":\"2019-03-29T00:26:37.9205875Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service Cluster Admin Role\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"List cluster admin credential\ - \ action.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.ContainerService/managedClusters/listClusterAdminCredential/action\"\ - ,\"Microsoft.ContainerService/managedClusters/accessProfiles/listCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-08-15T21:38:18.5953853Z\",\"updatedOn\":\"2020-02-07T02:49:24.9715273Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0ab0b1a8-8aac-4efd-b8c2-3ee1fb270be8\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service Cluster User Role\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"List cluster user credential action.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-08-15T22:04:53.4037241Z\",\"updatedOn\":\"2020-02-11T23:37:03.5899240Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4abbcc35-e782-43d8-92c5-2d3f1bd2253f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4abbcc35-e782-43d8-92c5-2d3f1bd2253f\"\ - },{\"properties\":{\"roleName\":\"Azure Maps Data Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Grants access to read map related data from an Azure maps\ - \ account.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"\ - notActions\":[],\"dataActions\":[\"Microsoft.Maps/accounts/*/read\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-10-05T19:47:03.4723070Z\",\"updatedOn\":\"2020-04-28T22:33:41.7780319Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/423170ca-a8f6-4b0f-8487-9e4eb8f49bfa\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"423170ca-a8f6-4b0f-8487-9e4eb8f49bfa\"\ - },{\"properties\":{\"roleName\":\"Azure Stack Registration Owner\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage Azure Stack registrations.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.AzureStack/edgeSubscriptions/read\"\ - ,\"Microsoft.AzureStack/registrations/products/*/action\",\"Microsoft.AzureStack/registrations/products/read\"\ - ,\"Microsoft.AzureStack/registrations/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2017-11-13T23:42:06.2161827Z\"\ - ,\"updatedOn\":\"2020-06-29T22:11:17.0759529Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6f12a6df-dd06-4f3e-bcb1-ce8be600526a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6f12a6df-dd06-4f3e-bcb1-ce8be600526a\"\ - },{\"properties\":{\"roleName\":\"Backup Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage backup service,but can't create vaults\ - \ and give access to others\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.RecoveryServices/locations/*\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\",\"Microsoft.RecoveryServices/Vaults/backupProtectedItems/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/*\",\"Microsoft.RecoveryServices/Vaults/backupSecurityPIN/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\"Microsoft.RecoveryServices/Vaults/certificates/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/extendedInformation/*\",\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\"Microsoft.RecoveryServices/Vaults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/*\",\"Microsoft.RecoveryServices/Vaults/usages/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Storage/storageAccounts/read\",\"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupconfig/*\",\"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/write\",\"Microsoft.RecoveryServices/Vaults/backupOperations/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\"\ - ,\"Microsoft.RecoveryServices/locations/backupStatus/action\",\"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\"\ - ,\"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\"\ - Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\"Microsoft.RecoveryServices/operations/read\"\ - ,\"Microsoft.RecoveryServices/locations/operationStatus/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-01-03T13:12:15.7321344Z\",\"updatedOn\":\"2019-12-17T10:44:35.8361149Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5e467623-bb1f-42f4-a55d-6e525e11384b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5e467623-bb1f-42f4-a55d-6e525e11384b\"\ - },{\"properties\":{\"roleName\":\"Billing Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Allows read access to billing data\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Billing/*/read\",\"Microsoft.Commerce/*/read\",\"Microsoft.Consumption/*/read\"\ - ,\"Microsoft.Management/managementGroups/read\",\"Microsoft.CostManagement/*/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-04-25T02:13:38.9054151Z\",\"updatedOn\":\"2018-09-26T17:45:09.2227236Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\"\ - },{\"properties\":{\"roleName\":\"Backup Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage backup services, except removal of backup,\ - \ vault creation and giving access to others\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/backup/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/provisionInstantItemRecovery/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/restore/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/revokeInstantItemRecovery/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\"Microsoft.RecoveryServices/Vaults/certificates/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\"Microsoft.RecoveryServices/Vaults/extendedInformation/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\",\"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/inquire/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\"\ - ,\"Microsoft.RecoveryServices/locations/backupStatus/action\",\"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\"\ - ,\"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\"\ - Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\"Microsoft.RecoveryServices/operations/read\"\ - ,\"Microsoft.RecoveryServices/locations/operationStatus/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-01-03T13:21:11.8947640Z\",\"updatedOn\":\"2019-12-17T11:02:43.9998686Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00c29273-979b-4161-815c-10b084fb9324\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"00c29273-979b-4161-815c-10b084fb9324\"\ - },{\"properties\":{\"roleName\":\"Backup Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can view backup services, but can't make changes\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupJobs/operationResults/read\",\"\ - Microsoft.RecoveryServices/Vaults/backupJobs/read\",\"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupOperationResults/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\",\"\ - Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\"Microsoft.RecoveryServices/Vaults/extendedInformation/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\"Microsoft.RecoveryServices/Vaults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\"Microsoft.RecoveryServices/Vaults/backupstorageconfig/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupconfig/read\",\"Microsoft.RecoveryServices/Vaults/backupOperations/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\",\"Microsoft.RecoveryServices/Vaults/backupEngines/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\"\ - ,\"Microsoft.RecoveryServices/locations/backupStatus/action\",\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\"Microsoft.RecoveryServices/operations/read\"\ - ,\"Microsoft.RecoveryServices/locations/operationStatus/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-01-03T13:18:41.3893065Z\",\"updatedOn\":\"2020-03-04T12:12:04.3213110Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a795c7a0-d4a2-40c1-ae25-d81f01202912\"\ - },{\"properties\":{\"roleName\":\"Blockchain Member Node Access (Preview)\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Allows for access to Blockchain\ - \ Member nodes\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Blockchain/blockchainMembers/transactionNodes/read\"],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.Blockchain/blockchainMembers/transactionNodes/connect/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-12-21T10:33:01.9604839Z\",\"\ - updatedOn\":\"2018-12-21T10:33:58.0042162Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/31a002a1-acaf-453e-8a5b-297c9ca1ea24\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"31a002a1-acaf-453e-8a5b-297c9ca1ea24\"\ - },{\"properties\":{\"roleName\":\"BizTalk Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage BizTalk services, but not access to them.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.BizTalkServices/BizTalk/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T20:42:18.8978210Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5e3c6656-6cfa-4708-81fe-0de47ac73342\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5e3c6656-6cfa-4708-81fe-0de47ac73342\"\ - },{\"properties\":{\"roleName\":\"CDN Endpoint Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can manage CDN endpoints, but can\u2019t grant access to\ - \ other users.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Cdn/edgenodes/read\",\"Microsoft.Cdn/operationresults/*\"\ - ,\"Microsoft.Cdn/profiles/endpoints/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-01-23T02:48:46.4996252Z\",\"updatedOn\":\"2016-05-31T23:13:52.6231539Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/426e0c7f-0c7e-4658-b36f-ff54d6c29b45\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"426e0c7f-0c7e-4658-b36f-ff54d6c29b45\"\ - },{\"properties\":{\"roleName\":\"CDN Endpoint Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can view CDN endpoints, but can\u2019t make changes.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Cdn/edgenodes/read\",\"Microsoft.Cdn/operationresults/*\",\"\ - Microsoft.Cdn/profiles/endpoints/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-01-23T02:48:46.4996252Z\",\"updatedOn\":\"2016-05-31T23:13:53.1585846Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/871e35f6-b5c1-49cc-a043-bde969a0f2cd\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"871e35f6-b5c1-49cc-a043-bde969a0f2cd\"\ - },{\"properties\":{\"roleName\":\"CDN Profile Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can manage CDN profiles and their endpoints, but can\u2019\ - t grant access to other users.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Cdn/edgenodes/read\"\ - ,\"Microsoft.Cdn/operationresults/*\",\"Microsoft.Cdn/profiles/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-01-23T02:48:46.4996252Z\",\"updatedOn\":\"2016-05-31T23:13:53.7051278Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ec156ff8-a8d1-4d15-830c-5b80698ca432\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ec156ff8-a8d1-4d15-830c-5b80698ca432\"\ - },{\"properties\":{\"roleName\":\"CDN Profile Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can view CDN profiles and their endpoints, but can\u2019\ - t make changes.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Cdn/edgenodes/read\",\"Microsoft.Cdn/operationresults/*\"\ - ,\"Microsoft.Cdn/profiles/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-01-23T02:48:46.4996252Z\",\"updatedOn\":\"2016-05-31T23:13:54.2283001Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8f96442b-4075-438f-813d-ad51ab4019af\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8f96442b-4075-438f-813d-ad51ab4019af\"\ - },{\"properties\":{\"roleName\":\"Classic Network Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage classic networks, but not\ - \ access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.ClassicNetwork/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T21:24:39.7576926Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b34d265f-36f7-4a0d-a4d4-e158ca92e90f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b34d265f-36f7-4a0d-a4d4-e158ca92e90f\"\ - },{\"properties\":{\"roleName\":\"Classic Storage Account Contributor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you manage classic storage accounts,\ - \ but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.ClassicStorage/storageAccounts/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T21:24:30.8964641Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/86e8f5dc-a6e9-4c67-9d15-de283e8eac25\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"86e8f5dc-a6e9-4c67-9d15-de283e8eac25\"\ - },{\"properties\":{\"roleName\":\"Classic Storage Account Key Operator Service\ - \ Role\",\"type\":\"BuiltInRole\",\"description\":\"Classic Storage Account\ - \ Key Operators are allowed to list and regenerate keys on Classic Storage\ - \ Accounts\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.ClassicStorage/storageAccounts/listkeys/action\",\"Microsoft.ClassicStorage/storageAccounts/regeneratekey/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-04-13T18:22:52.1461100Z\",\"updatedOn\":\"2017-04-13T20:54:03.0505986Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/985d6b00-f706-48f5-a6fe-d0ca12fb668d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"985d6b00-f706-48f5-a6fe-d0ca12fb668d\"\ - },{\"properties\":{\"roleName\":\"ClearDB MySQL DB Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage ClearDB MySQL databases,\ - \ but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"successbricks.cleardb/databases/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T20:42:23.2893077Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9106cda0-8a86-4e81-b686-29a22c54effe\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9106cda0-8a86-4e81-b686-29a22c54effe\"\ - },{\"properties\":{\"roleName\":\"Classic Virtual Machine Contributor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you manage classic virtual machines,\ - \ but not access to them, and not the virtual network or storage account they\u2019\ - re connected to.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.ClassicCompute/domainNames/*\"\ - ,\"Microsoft.ClassicCompute/virtualMachines/*\",\"Microsoft.ClassicNetwork/networkSecurityGroups/join/action\"\ - ,\"Microsoft.ClassicNetwork/reservedIps/link/action\",\"Microsoft.ClassicNetwork/reservedIps/read\"\ - ,\"Microsoft.ClassicNetwork/virtualNetworks/join/action\",\"Microsoft.ClassicNetwork/virtualNetworks/read\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/disks/read\",\"Microsoft.ClassicStorage/storageAccounts/images/read\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\"Microsoft.ClassicStorage/storageAccounts/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-04-25T00:37:56.5416086Z\",\"updatedOn\":\"2019-02-05T21:24:43.0770473Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d73bb868-a0df-4d4d-bd69-98a00b01fccb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d73bb868-a0df-4d4d-bd69-98a00b01fccb\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services User\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you read and list keys of Cognitive Services.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ,\"Microsoft.CognitiveServices/accounts/listkeys/action\",\"Microsoft.Insights/alertRules/read\"\ - ,\"Microsoft.Insights/diagnosticSettings/read\",\"Microsoft.Insights/logDefinitions/read\"\ - ,\"Microsoft.Insights/metricdefinitions/read\",\"Microsoft.Insights/metrics/read\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/operations/read\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/*\"],\"\ - notDataActions\":[]}],\"createdOn\":\"2018-08-08T23:23:43.7701274Z\",\"updatedOn\"\ - :\"2019-02-13T19:53:56.7209248Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a97b65f3-24c7-4388-baec-2e87135dc908\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a97b65f3-24c7-4388-baec-2e87135dc908\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Data Reader (Preview)\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you read Cognitive Services\ - \ data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"\ - notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/*/read\"],\"\ - notDataActions\":[]}],\"createdOn\":\"2019-02-13T20:02:12.6849986Z\",\"updatedOn\"\ - :\"2019-02-13T22:53:55.1675290Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b59867f0-fa02-499b-be73-45a86b5b3e1c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b59867f0-fa02-499b-be73-45a86b5b3e1c\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you create, read, update, delete and\ - \ manage keys of Cognitive Services.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.CognitiveServices/*\"\ - ,\"Microsoft.Features/features/read\",\"Microsoft.Features/providers/features/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/diagnosticSettings/*\"\ - ,\"Microsoft.Insights/logDefinitions/read\",\"Microsoft.Insights/metricdefinitions/read\"\ - ,\"Microsoft.Insights/metrics/read\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/deployments/operations/read\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourcegroups/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-08-08T23:18:39.2257848Z\",\"updatedOn\":\"2018-09-14T00:53:37.7546808Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"25fbc0a9-bd7c-42a3-aa1a-3b75d497ee68\"\ - },{\"properties\":{\"roleName\":\"CosmosBackupOperator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can submit restore request for a Cosmos DB database or\ - \ a container for an account\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.DocumentDB/databaseAccounts/backup/action\",\"\ - Microsoft.DocumentDB/databaseAccounts/restore/action\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-12-07T19:47:14.9651560Z\"\ - ,\"updatedOn\":\"2018-12-07T19:52:21.9969834Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/db7b14f2-5adf-42da-9f96-f2ee17bab5cb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"db7b14f2-5adf-42da-9f96-f2ee17bab5cb\"\ - },{\"properties\":{\"roleName\":\"Contributor\",\"type\":\"BuiltInRole\",\"\ - description\":\"Lets you manage everything except access to resources.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*\"],\"notActions\"\ - :[\"Microsoft.Authorization/*/Delete\",\"Microsoft.Authorization/*/Write\"\ - ,\"Microsoft.Authorization/elevateAccess/Action\",\"Microsoft.Blueprint/blueprintAssignments/write\"\ - ,\"Microsoft.Blueprint/blueprintAssignments/delete\"],\"dataActions\":[],\"\ - notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\"\ - :\"2019-02-05T21:24:38.4580610Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b24988ac-6180-42a0-ab88-20f7382dd24c\"\ - },{\"properties\":{\"roleName\":\"Cosmos DB Account Reader Role\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Can read Azure Cosmos DB Accounts data\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.DocumentDB/*/read\",\"Microsoft.DocumentDB/databaseAccounts/readonlykeys/action\"\ - ,\"Microsoft.Insights/MetricDefinitions/read\",\"Microsoft.Insights/Metrics/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-10-30T17:53:54.6005577Z\",\"updatedOn\":\"2018-02-21T01:36:59.6186231Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fbdf93bf-df7d-467e-a4d2-9458aa1360c8\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fbdf93bf-df7d-467e-a4d2-9458aa1360c8\"\ - },{\"properties\":{\"roleName\":\"Cost Management Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Can view costs and manage cost configuration\ - \ (e.g. budgets, exports)\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Consumption/*\",\"Microsoft.CostManagement/*\",\"Microsoft.Billing/billingPeriods/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Advisor/configurations/read\",\"Microsoft.Advisor/recommendations/read\"\ - ,\"Microsoft.Management/managementGroups/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-14T16:09:22.8834827Z\"\ - ,\"updatedOn\":\"2019-06-25T21:25:06.8686379Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/434105ed-43f6-45c7-a02f-909b2ba83430\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"434105ed-43f6-45c7-a02f-909b2ba83430\"\ - },{\"properties\":{\"roleName\":\"Cost Management Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can view cost data and configuration (e.g. budgets, exports)\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Consumption/*/read\"\ - ,\"Microsoft.CostManagement/*/read\",\"Microsoft.Billing/billingPeriods/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Advisor/configurations/read\",\"Microsoft.Advisor/recommendations/read\"\ - ,\"Microsoft.Management/managementGroups/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-14T16:09:22.8834827Z\"\ - ,\"updatedOn\":\"2019-06-25T20:59:11.5762937Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/72fafb9e-0641-4937-9268-a91bfd8191a3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"72fafb9e-0641-4937-9268-a91bfd8191a3\"\ - },{\"properties\":{\"roleName\":\"Data Box Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage everything under Data Box Service except\ - \ giving access to others.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Databox/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-07-27T08:28:42.7140210Z\"\ - ,\"updatedOn\":\"2018-07-27T08:36:56.3827309Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/add466c9-e687-43fc-8d98-dfcf8d720be5\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"add466c9-e687-43fc-8d98-dfcf8d720be5\"\ - },{\"properties\":{\"roleName\":\"Data Box Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage Data Box Service except creating order\ - \ or editing order details and giving access to others.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Databox/*/read\",\"Microsoft.Databox/jobs/listsecrets/action\"\ - ,\"Microsoft.Databox/jobs/listcredentials/action\",\"Microsoft.Databox/locations/availableSkus/action\"\ - ,\"Microsoft.Databox/locations/validateInputs/action\",\"Microsoft.Databox/locations/regionConfiguration/action\"\ - ,\"Microsoft.Databox/locations/validateAddress/action\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-07-27T08:26:21.9284772Z\",\"updatedOn\":\"2020-01-24T05:39:52.6143537Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"028f4ed7-e2a9-465e-a8f4-9c0ffdfdc027\"\ - },{\"properties\":{\"roleName\":\"Data Factory Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Create and manage data factories, as well as child resources\ - \ within them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.DataFactory/dataFactories/*\"\ - ,\"Microsoft.DataFactory/factories/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.EventGrid/eventSubscriptions/write\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2020-02-14T19:49:21.5789216Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/673868aa-7521-48a0-acc6-0f60742d39f5\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"673868aa-7521-48a0-acc6-0f60742d39f5\"\ - },{\"properties\":{\"roleName\":\"Data Purger\",\"type\":\"BuiltInRole\",\"\ - description\":\"Can purge analytics data\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[\"Microsoft.Insights/components/*/read\",\"Microsoft.Insights/components/purge/action\"\ - ,\"Microsoft.OperationalInsights/workspaces/*/read\",\"Microsoft.OperationalInsights/workspaces/purge/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-04-30T22:39:49.6167700Z\",\"updatedOn\":\"2018-04-30T22:44:15.1171162Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/150f5e0c-0603-4f03-8c7f-cf70034c4e90\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"150f5e0c-0603-4f03-8c7f-cf70034c4e90\"\ - },{\"properties\":{\"roleName\":\"Data Lake Analytics Developer\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you submit, monitor, and manage your\ - \ own jobs but not create or delete Data Lake Analytics accounts.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.BigAnalytics/accounts/*\",\"Microsoft.DataLakeAnalytics/accounts/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[\"Microsoft.BigAnalytics/accounts/Delete\"\ - ,\"Microsoft.BigAnalytics/accounts/TakeOwnership/action\",\"Microsoft.BigAnalytics/accounts/Write\"\ - ,\"Microsoft.DataLakeAnalytics/accounts/Delete\",\"Microsoft.DataLakeAnalytics/accounts/TakeOwnership/action\"\ - ,\"Microsoft.DataLakeAnalytics/accounts/Write\",\"Microsoft.DataLakeAnalytics/accounts/dataLakeStoreAccounts/Write\"\ - ,\"Microsoft.DataLakeAnalytics/accounts/dataLakeStoreAccounts/Delete\",\"\ - Microsoft.DataLakeAnalytics/accounts/storageAccounts/Write\",\"Microsoft.DataLakeAnalytics/accounts/storageAccounts/Delete\"\ - ,\"Microsoft.DataLakeAnalytics/accounts/firewallRules/Write\",\"Microsoft.DataLakeAnalytics/accounts/firewallRules/Delete\"\ - ,\"Microsoft.DataLakeAnalytics/accounts/computePolicies/Write\",\"Microsoft.DataLakeAnalytics/accounts/computePolicies/Delete\"\ - ],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-10-20T00:33:29.3115234Z\"\ - ,\"updatedOn\":\"2017-08-18T00:00:17.0411642Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/47b7735b-770e-4598-a7da-8b91488b4c88\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"47b7735b-770e-4598-a7da-8b91488b4c88\"\ - },{\"properties\":{\"roleName\":\"DevTest Labs User\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you connect, start, restart, and shutdown your virtual\ - \ machines in your Azure DevTest Labs.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Compute/availabilitySets/read\"\ - ,\"Microsoft.Compute/virtualMachines/*/read\",\"Microsoft.Compute/virtualMachines/deallocate/action\"\ - ,\"Microsoft.Compute/virtualMachines/read\",\"Microsoft.Compute/virtualMachines/restart/action\"\ - ,\"Microsoft.Compute/virtualMachines/start/action\",\"Microsoft.DevTestLab/*/read\"\ - ,\"Microsoft.DevTestLab/labs/claimAnyVm/action\",\"Microsoft.DevTestLab/labs/createEnvironment/action\"\ - ,\"Microsoft.DevTestLab/labs/ensureCurrentUserProfile/action\",\"Microsoft.DevTestLab/labs/formulas/delete\"\ - ,\"Microsoft.DevTestLab/labs/formulas/read\",\"Microsoft.DevTestLab/labs/formulas/write\"\ - ,\"Microsoft.DevTestLab/labs/policySets/evaluatePolicies/action\",\"Microsoft.DevTestLab/labs/virtualMachines/claim/action\"\ - ,\"Microsoft.DevTestLab/labs/virtualmachines/listApplicableSchedules/action\"\ - ,\"Microsoft.DevTestLab/labs/virtualMachines/getRdpFileContents/action\",\"\ - Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\"Microsoft.Network/loadBalancers/inboundNatRules/join/action\"\ - ,\"Microsoft.Network/networkInterfaces/*/read\",\"Microsoft.Network/networkInterfaces/join/action\"\ - ,\"Microsoft.Network/networkInterfaces/read\",\"Microsoft.Network/networkInterfaces/write\"\ - ,\"Microsoft.Network/publicIPAddresses/*/read\",\"Microsoft.Network/publicIPAddresses/join/action\"\ - ,\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/subnets/join/action\"\ - ,\"Microsoft.Resources/deployments/operations/read\",\"Microsoft.Resources/deployments/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/listKeys/action\"\ - ],\"notActions\":[\"Microsoft.Compute/virtualMachines/vmSizes/read\"],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-06-08T21:52:45.0657582Z\"\ - ,\"updatedOn\":\"2019-05-08T11:27:34.8855476Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/76283e04-6283-4c54-8f91-bcf1374a3c64\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"76283e04-6283-4c54-8f91-bcf1374a3c64\"\ - },{\"properties\":{\"roleName\":\"DocumentDB Account Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage DocumentDB accounts, but\ - \ not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.DocumentDb/databaseAccounts/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-11-21T01:38:32.0948484Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5bd9cd88-fe45-4216-938b-f97437e15450\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5bd9cd88-fe45-4216-938b-f97437e15450\"\ - },{\"properties\":{\"roleName\":\"DNS Zone Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage DNS zones and record sets in Azure DNS,\ - \ but does not let you control who has access to them.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Network/dnsZones/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-10-15T23:33:25.9730842Z\",\"updatedOn\":\"2016-05-31T23:13:40.3710365Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/befefa01-2a29-4197-83a8-272ff33ce314\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"befefa01-2a29-4197-83a8-272ff33ce314\"\ - },{\"properties\":{\"roleName\":\"EventGrid EventSubscription Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you manage EventGrid event\ - \ subscription operations.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.EventGrid/eventSubscriptions/*\"\ - ,\"Microsoft.EventGrid/topicTypes/eventSubscriptions/read\",\"Microsoft.EventGrid/locations/eventSubscriptions/read\"\ - ,\"Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-10-08T23:27:28.3130743Z\",\"updatedOn\":\"2019-01-08T00:06:34.3543171Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/428e0ff0-5e57-4d9c-a221-2c70d0e0a443\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"428e0ff0-5e57-4d9c-a221-2c70d0e0a443\"\ - },{\"properties\":{\"roleName\":\"EventGrid EventSubscription Reader\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you read EventGrid event subscriptions.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.EventGrid/eventSubscriptions/read\",\"Microsoft.EventGrid/topicTypes/eventSubscriptions/read\"\ - ,\"Microsoft.EventGrid/locations/eventSubscriptions/read\",\"Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-10-09T17:29:28.1417894Z\"\ - ,\"updatedOn\":\"2019-01-08T00:05:40.2884365Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2414bbcf-6497-4faf-8c65-045460748405\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2414bbcf-6497-4faf-8c65-045460748405\"\ - },{\"properties\":{\"roleName\":\"Graph Owner\",\"type\":\"BuiltInRole\",\"\ - description\":\"Create and manage all aspects of the Enterprise Graph - Ontology,\ - \ Schema mapping, Conflation and Conversational AI and Ingestions\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EnterpriseKnowledgeGraph/services/conflation/read\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/conflation/write\",\"Microsoft.EnterpriseKnowledgeGraph/services/sourceschema/read\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/sourceschema/write\",\"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/read\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/write\",\"Microsoft.EnterpriseKnowledgeGraph/services/intentclassification/read\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/intentclassification/write\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/ingestion/read\",\"Microsoft.EnterpriseKnowledgeGraph/services/ingestion/write\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/ontology/read\",\"Microsoft.EnterpriseKnowledgeGraph/services/ontology/write\"\ - ,\"Microsoft.EnterpriseKnowledgeGraph/services/delete\",\"Microsoft.EnterpriseKnowledgeGraph/operations/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-02-23T21:07:22.5844236Z\",\"updatedOn\":\"2019-02-28T20:21:18.9318073Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b60367af-1334-4454-b71e-769d9a4f83d9\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b60367af-1334-4454-b71e-769d9a4f83d9\"\ - },{\"properties\":{\"roleName\":\"HDInsight Domain Services Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Can Read, Create, Modify and Delete\ - \ Domain Services related operations needed for HDInsight Enterprise Security\ - \ Package\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.AAD/*/read\",\"Microsoft.AAD/domainServices/*/read\",\"Microsoft.AAD/domainServices/oucontainer/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-09-12T22:42:51.7451109Z\",\"updatedOn\":\"2018-09-12T23:06:45.7641599Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8d8d5a11-05d3-4bda-a417-a08778121c7c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8d8d5a11-05d3-4bda-a417-a08778121c7c\"\ - },{\"properties\":{\"roleName\":\"Intelligent Systems Account Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you manage Intelligent Systems\ - \ accounts, but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.IntelligentSystems/accounts/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T20:32:00.9996357Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/03a6d094-3444-4b3d-88af-7477090a9e5e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"03a6d094-3444-4b3d-88af-7477090a9e5e\"\ - },{\"properties\":{\"roleName\":\"Key Vault Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage key vaults, but not access to them.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.KeyVault/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[\"Microsoft.KeyVault/locations/deletedVaults/purge/action\"\ - ,\"Microsoft.KeyVault/hsmPools/*\"],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-02-25T17:08:28.5184971Z\",\"updatedOn\":\"2019-02-05T21:24:49.5373075Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f25e0fa2-a7c8-4377-a976-54943a77a395\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f25e0fa2-a7c8-4377-a976-54943a77a395\"\ - },{\"properties\":{\"roleName\":\"Knowledge Consumer\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Knowledge Read permission to consume Enterprise Graph Knowledge\ - \ using entity search and graph query\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.EnterpriseKnowledgeGraph/services/knowledge/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-02-23T21:23:31.4037552Z\",\"updatedOn\":\"2019-02-28T20:25:00.7369384Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ee361c5d-f7b5-4119-b4b6-892157c8f64c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ee361c5d-f7b5-4119-b4b6-892157c8f64c\"\ - },{\"properties\":{\"roleName\":\"Lab Creator\",\"type\":\"BuiltInRole\",\"\ - description\":\"Lets you create new labs under your Azure Lab Accounts.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.LabServices/labAccounts/*/read\",\"Microsoft.LabServices/labAccounts/createLab/action\"\ - ,\"Microsoft.LabServices/labAccounts/getPricingAndAvailability/action\",\"\ - Microsoft.LabServices/labAccounts/getRestrictionsAndUsage/action\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-01-18T23:38:58.1036141Z\",\"updatedOn\":\"2020-07-10T17:45:43.2289715Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b97fb8bc-a8b2-4522-a38b-dd33c7e65ead\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b97fb8bc-a8b2-4522-a38b-dd33c7e65ead\"\ - },{\"properties\":{\"roleName\":\"Log Analytics Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Log Analytics Reader can view and search all monitoring\ - \ data as well as and view monitoring settings, including viewing the configuration\ - \ of Azure diagnostics on all Azure resources.\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[\"*/read\",\"Microsoft.OperationalInsights/workspaces/analytics/query/action\"\ - ,\"Microsoft.OperationalInsights/workspaces/search/action\",\"Microsoft.Support/*\"\ - ],\"notActions\":[\"Microsoft.OperationalInsights/workspaces/sharedKeys/read\"\ - ],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-05-02T00:20:28.1449012Z\"\ - ,\"updatedOn\":\"2018-01-30T18:08:26.0438523Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/73c42c96-874c-492b-b04d-ab87d138a893\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"73c42c96-874c-492b-b04d-ab87d138a893\"\ - },{\"properties\":{\"roleName\":\"Log Analytics Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Log Analytics Contributor can read all monitoring\ - \ data and edit monitoring settings. Editing monitoring settings includes\ - \ adding the VM extension to VMs; reading storage account keys to be able\ - \ to configure collection of logs from Azure Storage; creating and configuring\ - \ Automation accounts; adding solutions; and configuring Azure diagnostics\ - \ on all Azure resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"*/read\",\"Microsoft.Automation/automationAccounts/*\",\"Microsoft.ClassicCompute/virtualMachines/extensions/*\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\"Microsoft.Compute/virtualMachines/extensions/*\"\ - ,\"Microsoft.HybridCompute/machines/extensions/write\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Insights/diagnosticSettings/*\",\"Microsoft.OperationalInsights/*\"\ - ,\"Microsoft.OperationsManagement/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourcegroups/deployments/*\",\"Microsoft.Storage/storageAccounts/listKeys/action\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-04-25T21:51:45.3174711Z\",\"updatedOn\":\"2020-03-26T22:57:55.3667830Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"92aaf0da-9dab-42b6-94a3-d43ce8d16293\"\ - },{\"properties\":{\"roleName\":\"Logic App Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you read, enable and disable logic app.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*/read\",\"Microsoft.Insights/metricAlerts/*/read\"\ - ,\"Microsoft.Insights/diagnosticSettings/*/read\",\"Microsoft.Insights/metricDefinitions/*/read\"\ - ,\"Microsoft.Logic/*/read\",\"Microsoft.Logic/workflows/disable/action\",\"\ - Microsoft.Logic/workflows/enable/action\",\"Microsoft.Logic/workflows/validate/action\"\ - ,\"Microsoft.Resources/deployments/operations/read\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Web/connectionGateways/*/read\",\"Microsoft.Web/connections/*/read\"\ - ,\"Microsoft.Web/customApis/*/read\",\"Microsoft.Web/serverFarms/read\"],\"\ - notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"\ - 2016-04-28T21:33:30.4656007Z\",\"updatedOn\":\"2019-10-15T04:28:56.3265986Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/515c2055-d9d4-4321-b1b9-bd0c9a0f79fe\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"515c2055-d9d4-4321-b1b9-bd0c9a0f79fe\"\ - },{\"properties\":{\"roleName\":\"Logic App Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage logic app, but not access to them.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\"Microsoft.ClassicStorage/storageAccounts/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/metricAlerts/*\"\ - ,\"Microsoft.Insights/diagnosticSettings/*\",\"Microsoft.Insights/logdefinitions/*\"\ - ,\"Microsoft.Insights/metricDefinitions/*\",\"Microsoft.Logic/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Storage/storageAccounts/listkeys/action\",\"Microsoft.Storage/storageAccounts/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Web/connectionGateways/*\",\"Microsoft.Web/connections/*\"\ - ,\"Microsoft.Web/customApis/*\",\"Microsoft.Web/serverFarms/join/action\"\ - ,\"Microsoft.Web/serverFarms/read\",\"Microsoft.Web/sites/functions/listSecrets/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2016-04-28T21:33:30.4656007Z\",\"updatedOn\":\"2019-10-15T04:31:27.7685427Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/87a39d53-fc1b-424a-814c-f7e04687dc9e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"87a39d53-fc1b-424a-814c-f7e04687dc9e\"\ - },{\"properties\":{\"roleName\":\"Managed Application Operator Role\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you read and perform actions on Managed\ - \ Application resources\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"*/read\",\"Microsoft.Solutions/applications/read\",\"Microsoft.Solutions/*/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-07-27T00:59:33.7988813Z\",\"updatedOn\":\"2019-02-20T01:09:55.1593079Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c7393b34-138c-406f-901b-d8cf2b17e6ae\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c7393b34-138c-406f-901b-d8cf2b17e6ae\"\ - },{\"properties\":{\"roleName\":\"Managed Applications Reader\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you read resources in a managed app and\ - \ request JIT access.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"*/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Solutions/jitRequests/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2018-09-06T00:33:58.3651522Z\",\"updatedOn\":\"2018-09-06T00:33:58.3651522Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b9331d33-8a36-4f8c-b097-4f54124fdb44\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b9331d33-8a36-4f8c-b097-4f54124fdb44\"\ - },{\"properties\":{\"roleName\":\"Managed Identity Operator\",\"type\":\"\ - BuiltInRole\",\"description\":\"Read and Assign User Assigned Identity\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ManagedIdentity/userAssignedIdentities/*/read\"\ - ,\"Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Support/*\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-12-14T19:52:04.3924594Z\"\ - ,\"updatedOn\":\"2017-12-14T22:16:00.1483256Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f1a07417-d97a-45cb-824c-7a7467783830\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f1a07417-d97a-45cb-824c-7a7467783830\"\ - },{\"properties\":{\"roleName\":\"Managed Identity Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Create, Read, Update, and Delete User Assigned\ - \ Identity\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.ManagedIdentity/userAssignedIdentities/read\",\"Microsoft.ManagedIdentity/userAssignedIdentities/write\"\ - ,\"Microsoft.ManagedIdentity/userAssignedIdentities/delete\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Support/*\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-12-14T19:53:42.8804692Z\"\ - ,\"updatedOn\":\"2019-06-20T21:51:27.0850433Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e40ec5ca-96e0-45a2-b4ff-59039f2c2b59\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e40ec5ca-96e0-45a2-b4ff-59039f2c2b59\"\ - },{\"properties\":{\"roleName\":\"Management Group Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Management Group Contributor Role\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Management/managementGroups/delete\"\ - ,\"Microsoft.Management/managementGroups/read\",\"Microsoft.Management/managementGroups/subscriptions/delete\"\ - ,\"Microsoft.Management/managementGroups/subscriptions/write\",\"Microsoft.Management/managementGroups/write\"\ - ,\"Microsoft.Management/managementGroups/subscriptions/read\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-06-22T00:28:29.0523964Z\"\ - ,\"updatedOn\":\"2020-07-06T18:13:34.9045672Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c\"\ - },{\"properties\":{\"roleName\":\"Management Group Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Management Group Reader Role\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[\"Microsoft.Management/managementGroups/read\"\ - ,\"Microsoft.Management/managementGroups/subscriptions/read\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-06-22T00:31:03.4295347Z\"\ - ,\"updatedOn\":\"2020-07-06T18:09:27.1441705Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ac63b705-f282-497d-ac71-919bf39d939d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ac63b705-f282-497d-ac71-919bf39d939d\"\ - },{\"properties\":{\"roleName\":\"Monitoring Metrics Publisher\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Enables publishing metrics against Azure\ - \ resources\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Insights/Register/Action\",\"Microsoft.Support/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Insights/Metrics/Write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-08-14T00:36:16.5610279Z\",\"\ - updatedOn\":\"2018-08-14T00:37:18.1465065Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3913510d-42f4-4e42-8a64-420c390055eb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3913510d-42f4-4e42-8a64-420c390055eb\"\ - },{\"properties\":{\"roleName\":\"Monitoring Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can read all monitoring data.\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[\"*/read\",\"Microsoft.OperationalInsights/workspaces/search/action\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2016-09-21T19:19:52.4939376Z\",\"updatedOn\":\"2018-01-30T18:08:27.2626250Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"43d0d8ad-25c7-4714-9337-8ba259a9fe05\"\ - },{\"properties\":{\"roleName\":\"Network Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage networks, but not access to them.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Network/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-06-02T00:18:27.3542698Z\",\"updatedOn\":\"2016-05-31T23:14:00.3326359Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4d97b98b-1d4f-4787-a291-c67834d212e7\"\ - },{\"properties\":{\"roleName\":\"Monitoring Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can read all monitoring data and update monitoring settings.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*/read\",\"\ - Microsoft.AlertsManagement/alerts/*\",\"Microsoft.AlertsManagement/alertsSummary/*\"\ - ,\"Microsoft.Insights/actiongroups/*\",\"Microsoft.Insights/activityLogAlerts/*\"\ - ,\"Microsoft.Insights/AlertRules/*\",\"Microsoft.Insights/components/*\",\"\ - Microsoft.Insights/DiagnosticSettings/*\",\"Microsoft.Insights/eventtypes/*\"\ - ,\"Microsoft.Insights/LogDefinitions/*\",\"Microsoft.Insights/metricalerts/*\"\ - ,\"Microsoft.Insights/MetricDefinitions/*\",\"Microsoft.Insights/Metrics/*\"\ - ,\"Microsoft.Insights/Register/Action\",\"Microsoft.Insights/scheduledqueryrules/*\"\ - ,\"Microsoft.Insights/webtests/*\",\"Microsoft.Insights/workbooks/*\",\"Microsoft.Insights/privateLinkScopes/*\"\ - ,\"Microsoft.Insights/privateLinkScopeOperationStatuses/*\",\"Microsoft.OperationalInsights/workspaces/write\"\ - ,\"Microsoft.OperationalInsights/workspaces/intelligencepacks/*\",\"Microsoft.OperationalInsights/workspaces/savedSearches/*\"\ - ,\"Microsoft.OperationalInsights/workspaces/search/action\",\"Microsoft.OperationalInsights/workspaces/sharedKeys/action\"\ - ,\"Microsoft.OperationalInsights/workspaces/storageinsightconfigs/*\",\"Microsoft.Support/*\"\ - ,\"Microsoft.WorkloadMonitor/monitors/*\",\"Microsoft.WorkloadMonitor/notificationSettings/*\"\ - ,\"Microsoft.AlertsManagement/smartDetectorAlertRules/*\",\"Microsoft.AlertsManagement/actionRules/*\"\ - ,\"Microsoft.AlertsManagement/smartGroups/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2016-09-21T19:21:08.4345976Z\"\ - ,\"updatedOn\":\"2020-04-19T16:03:16.7692305Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"749f88d5-cbae-40b8-bcfc-e573ddc772fa\"\ - },{\"properties\":{\"roleName\":\"New Relic APM Account Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage New Relic Application Performance\ - \ Management accounts and applications, but not access to them.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"NewRelic.APM/accounts/*\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T20:42:16.2033878Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d28c62d-5b37-4476-8438-e587778df237\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5d28c62d-5b37-4476-8438-e587778df237\"\ - },{\"properties\":{\"roleName\":\"Owner\",\"type\":\"BuiltInRole\",\"description\"\ - :\"Lets you manage everything, including access to resources.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T21:24:32.2101122Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8e3af657-a8ff-443c-a75c-2fe8c4bcb635\"\ - },{\"properties\":{\"roleName\":\"Reader\",\"type\":\"BuiltInRole\",\"description\"\ - :\"Lets you view everything, but not make any changes.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"*/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T21:24:35.7424745Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"acdd72a7-3385-48ef-bd42-f606fba81ae7\"\ - },{\"properties\":{\"roleName\":\"Redis Cache Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage Redis caches, but not access to them.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Cache/register/action\",\"Microsoft.Cache/redis/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2020-07-16T00:20:31.8240854Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e0f68234-74aa-48ed-b826-c38b57376e17\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e0f68234-74aa-48ed-b826-c38b57376e17\"\ - },{\"properties\":{\"roleName\":\"Reader and Data Access\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you view everything but will not let you delete or\ - \ create a storage account or contained resource. It will also allow read/write\ - \ access to all data contained in a storage account via access to storage\ - \ account keys.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Storage/storageAccounts/listKeys/action\",\"Microsoft.Storage/storageAccounts/ListAccountSas/action\"\ - ,\"Microsoft.Storage/storageAccounts/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-27T23:20:46.1498906Z\"\ - ,\"updatedOn\":\"2019-04-04T23:41:26.1056261Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c12c1c16-33a1-487b-954d-41c89c60f349\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c12c1c16-33a1-487b-954d-41c89c60f349\"\ - },{\"properties\":{\"roleName\":\"Resource Policy Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Users with rights to create/modify resource\ - \ policy, create support ticket and read resources/hierarchy.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"*/read\",\"Microsoft.Authorization/policyassignments/*\"\ - ,\"Microsoft.Authorization/policydefinitions/*\",\"Microsoft.Authorization/policysetdefinitions/*\"\ - ,\"Microsoft.PolicyInsights/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-08-25T19:08:01.3861639Z\"\ - ,\"updatedOn\":\"2019-11-20T20:26:12.8811365Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"36243c78-bf99-498c-9df9-86d9f8d28608\"\ - },{\"properties\":{\"roleName\":\"Scheduler Job Collections Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you manage Scheduler job\ - \ collections, but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Scheduler/jobcollections/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T20:42:24.8360756Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/188a0f2f-5c9e-469b-ae67-2aa5ce574b94\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"188a0f2f-5c9e-469b-ae67-2aa5ce574b94\"\ - },{\"properties\":{\"roleName\":\"Search Service Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage Search services, but not access\ - \ to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Search/searchServices/*\",\"Microsoft.Support/*\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T20:42:21.8687229Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7ca78c08-252a-4471-8644-bb5ff32d4ba0\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7ca78c08-252a-4471-8644-bb5ff32d4ba0\"\ - },{\"properties\":{\"roleName\":\"Security Admin\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Security Admin Role\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Authorization/policyAssignments/*\"\ - ,\"Microsoft.Authorization/policyDefinitions/*\",\"Microsoft.Authorization/policySetDefinitions/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Management/managementGroups/read\"\ - ,\"Microsoft.operationalInsights/workspaces/*/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Security/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-05-03T07:51:23.0917487Z\",\"updatedOn\":\"2019-03-12T21:12:48.6350160Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fb1c8493-542b-48eb-b624-b4c8fea62acd\"\ - },{\"properties\":{\"roleName\":\"Security Manager (Legacy)\",\"type\":\"\ - BuiltInRole\",\"description\":\"This is a legacy role. Please use Security\ - \ Administrator instead\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.ClassicCompute/*/read\"\ - ,\"Microsoft.ClassicCompute/virtualMachines/*/write\",\"Microsoft.ClassicNetwork/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Security/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2015-06-22T17:45:15.8986455Z\"\ - ,\"updatedOn\":\"2018-03-08T18:18:48.6183620Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e3d13bf0-dd5a-482e-ba6b-9b8433878d10\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e3d13bf0-dd5a-482e-ba6b-9b8433878d10\"\ - },{\"properties\":{\"roleName\":\"Security Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Security Reader Role\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/read\"\ - ,\"Microsoft.operationalInsights/workspaces/*/read\",\"Microsoft.Resources/deployments/*/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Security/*/read\"\ - ,\"Microsoft.Support/*/read\",\"Microsoft.Management/managementGroups/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-05-03T07:48:49.0516559Z\",\"updatedOn\":\"2020-07-26T14:03:23.7325023Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/39bc4728-0917-49c7-9d2c-d95423bc2eb4\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"39bc4728-0917-49c7-9d2c-d95423bc2eb4\"\ - },{\"properties\":{\"roleName\":\"Spatial Anchors Account Contributor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you manage spatial anchors in\ - \ your account, but not delete them\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/SpatialAnchorsAccounts/create/action\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/write\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-12-21T17:57:41.1420864Z\",\"updatedOn\":\"2019-02-13T06:13:39.8686435Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8bbe83f1-e2a6-4df7-8cb4-4e04d4e5c827\"\ - },{\"properties\":{\"roleName\":\"Site Recovery Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage Site Recovery service except\ - \ vault creation and role assignment\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.RecoveryServices/locations/allocatedStamp/read\"\ - ,\"Microsoft.RecoveryServices/locations/allocateStamp/action\",\"Microsoft.RecoveryServices/Vaults/certificates/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/extendedInformation/*\",\"Microsoft.RecoveryServices/Vaults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/refreshContainers/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/*\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationAlertSettings/*\",\"Microsoft.RecoveryServices/vaults/replicationEvents/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/*\",\"Microsoft.RecoveryServices/vaults/replicationJobs/*\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationPolicies/*\",\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/storageConfig/*\",\"Microsoft.RecoveryServices/Vaults/tokenInfo/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.RecoveryServices/Vaults/vaultTokens/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/*\",\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationOperationStatus/read\",\"\ - Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-05-19T13:46:17.4592776Z\",\"updatedOn\":\"2019-11-07T06:13:49.0760858Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6670b86e-a3f7-4917-ac9b-5d6ab1be4567\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6670b86e-a3f7-4917-ac9b-5d6ab1be4567\"\ - },{\"properties\":{\"roleName\":\"Site Recovery Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you failover and failback but not perform other Site\ - \ Recovery management operations\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.RecoveryServices/locations/allocatedStamp/read\"\ - ,\"Microsoft.RecoveryServices/locations/allocateStamp/action\",\"Microsoft.RecoveryServices/Vaults/extendedInformation/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/refreshContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\"Microsoft.RecoveryServices/vaults/replicationAlertSettings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\"Microsoft.RecoveryServices/vaults/replicationFabrics/checkConsistency/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/read\",\"Microsoft.RecoveryServices/vaults/replicationFabrics/reassociateGateway/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/renewcertificate/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/replicationNetworkMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectableItems/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/applyRecoveryPoint/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/failoverCommit/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/plannedFailover/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/recoveryPoints/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/repairReplication/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/reProtect/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/switchprotection/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/testFailover/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/testFailoverCleanup/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/unplannedFailover/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/updateMobilityService/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/refreshProvider/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/replicationStorageClassificationMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationvCenters/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationJobs/*\",\"Microsoft.RecoveryServices/vaults/replicationPolicies/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/failoverCommit/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/plannedFailover/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/read\",\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/reProtect/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/testFailover/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/testFailoverCleanup/action\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/unplannedFailover/action\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/*\",\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/storageConfig/read\",\"Microsoft.RecoveryServices/Vaults/tokenInfo/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.RecoveryServices/Vaults/vaultTokens/read\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2017-05-19T13:47:50.1341148Z\",\"updatedOn\":\"2019-08-28T12:00:57.4472826Z\"\ - ,\"createdBy\":null,\"updatedBy\":\"\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/494ae006-db33-4328-bf46-533a6560a3ca\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"494ae006-db33-4328-bf46-533a6560a3ca\"\ - },{\"properties\":{\"roleName\":\"Spatial Anchors Account Reader\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you locate and read properties of\ - \ spatial anchors in your account\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2018-12-21T17:57:42.9271004Z\",\"updatedOn\":\"2019-02-13T06:16:15.3170663Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d51204f-eb77-4b1c-b86a-2ec626c49413\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5d51204f-eb77-4b1c-b86a-2ec626c49413\"\ - },{\"properties\":{\"roleName\":\"Site Recovery Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you view Site Recovery status but not perform other\ - \ management operations\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.RecoveryServices/locations/allocatedStamp/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/notificationConfiguration/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/refreshContainers/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\"Microsoft.RecoveryServices/vaults/replicationAlertSettings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationEvents/read\",\"Microsoft.RecoveryServices/vaults/replicationFabrics/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationNetworks/replicationNetworkMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectableItems/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectedItems/recoveryPoints/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationProtectionContainerMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationRecoveryServicesProviders/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationStorageClassifications/replicationStorageClassificationMappings/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationFabrics/replicationvCenters/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationJobs/read\",\"Microsoft.RecoveryServices/vaults/replicationPolicies/read\"\ - ,\"Microsoft.RecoveryServices/vaults/replicationRecoveryPlans/read\",\"Microsoft.RecoveryServices/Vaults/storageConfig/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/tokenInfo/read\",\"Microsoft.RecoveryServices/Vaults/usages/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/vaultTokens/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-05-19T13:35:40.0093634Z\",\"updatedOn\":\"2017-05-26T19:54:51.3933250Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/dbaa88c4-0c30-4179-9fb3-46319faa6149\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"dbaa88c4-0c30-4179-9fb3-46319faa6149\"\ - },{\"properties\":{\"roleName\":\"Spatial Anchors Account Owner\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage spatial anchors in your\ - \ account, including deleting them\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/SpatialAnchorsAccounts/create/action\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/delete\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/discovery/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/properties/read\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/query/read\"\ - ,\"Microsoft.MixedReality/SpatialAnchorsAccounts/submitdiag/read\",\"Microsoft.MixedReality/SpatialAnchorsAccounts/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-12-21T17:57:43.5489832Z\",\"\ - updatedOn\":\"2019-02-13T06:15:31.8572222Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/70bbe301-9835-447d-afdd-19eb3167307c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"70bbe301-9835-447d-afdd-19eb3167307c\"\ - },{\"properties\":{\"roleName\":\"SQL Managed Instance Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage SQL Managed Instances and\ - \ required network configuration, but can\u2019t give access to others.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Network/networkSecurityGroups/*\",\"Microsoft.Network/routeTables/*\"\ - ,\"Microsoft.Sql/locations/*/read\",\"Microsoft.Sql/locations/instanceFailoverGroups/*\"\ - ,\"Microsoft.Sql/managedInstances/*\",\"Microsoft.Support/*\",\"Microsoft.Network/virtualNetworks/subnets/*\"\ - ,\"Microsoft.Network/virtualNetworks/*\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/metrics/read\",\"\ - Microsoft.Insights/metricDefinitions/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2018-12-10T22:57:14.2937983Z\"\ - ,\"updatedOn\":\"2020-06-24T22:56:31.0576055Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4939a1f6-9ae0-4e48-a1e0-f2cbe897382d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4939a1f6-9ae0-4e48-a1e0-f2cbe897382d\"\ - },{\"properties\":{\"roleName\":\"SQL DB Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage SQL databases, but not access to them.\ - \ Also, you can't manage their security-related policies or their parent SQL\ - \ servers.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Sql/locations/*/read\",\"Microsoft.Sql/servers/databases/*\"\ - ,\"Microsoft.Sql/servers/read\",\"Microsoft.Support/*\",\"Microsoft.Insights/metrics/read\"\ - ,\"Microsoft.Insights/metricDefinitions/read\"],\"notActions\":[\"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\"\ - Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Sql/servers/databases/auditingPolicies/*\",\"Microsoft.Sql/servers/databases/auditingSettings/*\"\ - ,\"Microsoft.Sql/servers/databases/auditRecords/read\",\"Microsoft.Sql/servers/databases/connectionPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/extendedAuditingSettings/*\",\"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\"Microsoft.Sql/servers/databases/securityMetrics/*\"\ - ,\"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\"\ - ,\"Microsoft.Sql/servers/vulnerabilityAssessments/*\"],\"dataActions\":[],\"\ - notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\"\ - :\"2019-02-28T22:44:35.8649670Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9b7fa17d-e63e-47b0-bb0a-15c516ac86ec\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9b7fa17d-e63e-47b0-bb0a-15c516ac86ec\"\ - },{\"properties\":{\"roleName\":\"SQL Security Manager\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage the security-related policies of SQL servers\ - \ and databases, but not access to them.\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\"\ - Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/databases/transparentDataEncryption/*\"\ - ,\"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\",\"Microsoft.Sql/servers/auditingPolicies/*\"\ - ,\"Microsoft.Sql/servers/auditingSettings/*\",\"Microsoft.Sql/servers/extendedAuditingSettings/read\"\ - ,\"Microsoft.Sql/servers/databases/auditingPolicies/*\",\"Microsoft.Sql/servers/databases/auditingSettings/*\"\ - ,\"Microsoft.Sql/servers/databases/auditRecords/read\",\"Microsoft.Sql/servers/databases/connectionPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/extendedAuditingSettings/read\",\"Microsoft.Sql/servers/databases/read\"\ - ,\"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\",\"Microsoft.Sql/servers/databases/schemas/read\"\ - ,\"Microsoft.Sql/servers/databases/schemas/tables/columns/read\",\"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/schemas/tables/read\",\"Microsoft.Sql/servers/databases/securityAlertPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/securityMetrics/*\",\"Microsoft.Sql/servers/databases/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/transparentDataEncryption/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\"\ - ,\"Microsoft.Sql/servers/firewallRules/*\",\"Microsoft.Sql/servers/read\"\ - ,\"Microsoft.Sql/servers/securityAlertPolicies/*\",\"Microsoft.Sql/servers/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-06-16T18:44:40.4607572Z\",\"updatedOn\":\"2019-08-08T22:58:22.2532171Z\"\ - ,\"createdBy\":null,\"updatedBy\":\"yaiyun\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"056cd41c-7e88-42e1-933e-88ba6a50c9c3\"\ - },{\"properties\":{\"roleName\":\"Storage Account Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage storage accounts, including\ - \ accessing storage account keys which provide full access to storage account\ - \ data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/diagnosticSettings/*\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-06-02T00:18:27.3542698Z\",\"updatedOn\":\"2019-05-29T20:56:33.9582501Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"17d1049b-9a84-46fb-8f53-869881c3d3ab\"\ - },{\"properties\":{\"roleName\":\"SQL Server Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage SQL servers and databases, but not access\ - \ to them, and not their security -related policies.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Sql/locations/*/read\",\"Microsoft.Sql/servers/*\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Insights/metrics/read\",\"Microsoft.Insights/metricDefinitions/read\"\ - ],\"notActions\":[\"Microsoft.Sql/managedInstances/databases/currentSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/recommendedSensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/databases/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/managedInstances/databases/vulnerabilityAssessments/*\",\"\ - Microsoft.Sql/managedInstances/securityAlertPolicies/*\",\"Microsoft.Sql/managedInstances/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Sql/servers/auditingPolicies/*\",\"Microsoft.Sql/servers/auditingSettings/*\"\ - ,\"Microsoft.Sql/servers/databases/auditingPolicies/*\",\"Microsoft.Sql/servers/databases/auditingSettings/*\"\ - ,\"Microsoft.Sql/servers/databases/auditRecords/read\",\"Microsoft.Sql/servers/databases/connectionPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/currentSensitivityLabels/*\",\"Microsoft.Sql/servers/databases/dataMaskingPolicies/*\"\ - ,\"Microsoft.Sql/servers/databases/extendedAuditingSettings/*\",\"Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*\"\ - ,\"Microsoft.Sql/servers/databases/securityAlertPolicies/*\",\"Microsoft.Sql/servers/databases/securityMetrics/*\"\ - ,\"Microsoft.Sql/servers/databases/sensitivityLabels/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessments/*\"\ - ,\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentScans/*\",\"Microsoft.Sql/servers/databases/vulnerabilityAssessmentSettings/*\"\ - ,\"Microsoft.Sql/servers/extendedAuditingSettings/*\",\"Microsoft.Sql/servers/securityAlertPolicies/*\"\ - ,\"Microsoft.Sql/servers/vulnerabilityAssessments/*\"],\"dataActions\":[],\"\ - notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\"\ - :\"2019-02-28T22:44:36.5466043Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\"\ - },{\"properties\":{\"roleName\":\"Storage Account Key Operator Service Role\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Storage Account Key Operators\ - \ are allowed to list and regenerate keys on Storage Accounts\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/listkeys/action\"\ - ,\"Microsoft.Storage/storageAccounts/regeneratekey/action\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-04-13T18:26:11.5770570Z\"\ - ,\"updatedOn\":\"2017-04-13T20:57:14.5990198Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/81a9662b-bebf-436f-a333-f67b29880f12\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"81a9662b-bebf-436f-a333-f67b29880f12\"\ - },{\"properties\":{\"roleName\":\"Storage Blob Data Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for read, write and delete access\ - \ to Azure Storage blob containers and data\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"\ - updatedOn\":\"2020-03-30T22:49:07.8669420Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ba92f5b4-2d11-453d-a403-e96b0029c9fe\"\ - },{\"properties\":{\"roleName\":\"Storage Blob Data Owner\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Allows for full access to Azure Storage blob containers\ - \ and data, including assigning POSIX access control.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/*\"\ - ,\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-12-04T07:02:58.2775257Z\",\"\ - updatedOn\":\"2019-07-16T21:30:33.7002563Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b7e6dc6d-f1e8-4753-8033-0f276bb0955b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b7e6dc6d-f1e8-4753-8033-0f276bb0955b\"\ - },{\"properties\":{\"roleName\":\"Storage Blob Data Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Allows for read access to Azure Storage blob containers\ - \ and data\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"\ - updatedOn\":\"2019-07-15T22:01:25.5409721Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\"\ - },{\"properties\":{\"roleName\":\"Storage Queue Data Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for read, write, and delete access\ - \ to Azure Storage queues and queue messages\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/delete\"\ - ,\"Microsoft.Storage/storageAccounts/queueServices/queues/read\",\"Microsoft.Storage/storageAccounts/queueServices/queues/write\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete\"\ - ,\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\"\ - ,\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/write\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"\ - updatedOn\":\"2019-03-05T21:58:02.7367128Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/974c5e8b-45b9-4653-ba55-5f855dd0fb88\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"974c5e8b-45b9-4653-ba55-5f855dd0fb88\"\ - },{\"properties\":{\"roleName\":\"Storage Queue Data Message Processor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Allows for peek, receive, and delete\ - \ access to Azure Storage queue messages\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\"\ - ,\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-01-28T22:27:04.8947111Z\",\"\ - updatedOn\":\"2019-03-05T22:05:46.1259125Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8a0f0c08-91a1-4084-bc3d-661d67233fed\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8a0f0c08-91a1-4084-bc3d-661d67233fed\"\ - },{\"properties\":{\"roleName\":\"Storage Queue Data Message Sender\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for sending of Azure Storage queue\ - \ messages\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"\ - notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-01-28T22:28:34.7459724Z\",\"\ - updatedOn\":\"2019-03-05T22:11:49.6383892Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\"\ - },{\"properties\":{\"roleName\":\"Storage Queue Data Reader\",\"type\":\"\ - BuiltInRole\",\"description\":\"Allows for read access to Azure Storage queues\ - \ and queue messages\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Storage/storageAccounts/queueServices/queues/read\"],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"\ - updatedOn\":\"2019-03-05T22:17:32.1779262Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/19e7f393-937e-4f77-808e-94535e297925\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"19e7f393-937e-4f77-808e-94535e297925\"\ - },{\"properties\":{\"roleName\":\"Support Request Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you create and manage Support requests\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2017-06-22T22:25:37.8053068Z\",\"updatedOn\":\"2017-06-23T01:06:24.2399631Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\"\ - },{\"properties\":{\"roleName\":\"Traffic Manager Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage Traffic Manager profiles,\ - \ but does not let you control who has access to them.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Network/trafficManagerProfiles/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-10-15T23:33:25.9730842Z\",\"updatedOn\":\"2016-05-31T23:13:44.1458854Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\"\ - },{\"properties\":{\"roleName\":\"Virtual Machine Administrator Login\",\"\ - type\":\"BuiltInRole\",\"description\":\"View Virtual Machines in the portal\ - \ and login as administrator\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.Network/loadBalancers/read\",\"Microsoft.Network/networkInterfaces/read\"\ - ,\"Microsoft.Compute/virtualMachines/*/read\"],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.Compute/virtualMachines/login/action\",\"Microsoft.Compute/virtualMachines/loginAsAdmin/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2018-02-09T18:36:13.3315744Z\",\"\ - updatedOn\":\"2018-05-09T22:17:57.0514548Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/1c0163c0-47e6-4577-8991-ea5c82e286e4\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"1c0163c0-47e6-4577-8991-ea5c82e286e4\"\ - },{\"properties\":{\"roleName\":\"User Access Administrator\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage user access to Azure resources.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*/read\",\"\ - Microsoft.Authorization/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\"\ - ,\"updatedOn\":\"2019-02-05T21:24:12.6807454Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\"\ - },{\"properties\":{\"roleName\":\"Virtual Machine User Login\",\"type\":\"\ - BuiltInRole\",\"description\":\"View Virtual Machines in the portal and login\ - \ as a regular user.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.Network/loadBalancers/read\",\"Microsoft.Network/networkInterfaces/read\"\ - ,\"Microsoft.Compute/virtualMachines/*/read\"],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.Compute/virtualMachines/login/action\"],\"notDataActions\":[]}],\"\ - createdOn\":\"2018-02-09T18:36:13.3315744Z\",\"updatedOn\":\"2018-05-09T22:18:52.2780979Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fb879df8-f326-4884-b1cf-06f3ad86be52\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fb879df8-f326-4884-b1cf-06f3ad86be52\"\ - },{\"properties\":{\"roleName\":\"Virtual Machine Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage virtual machines, but not\ - \ access to them, and not the virtual network or storage account they're connected\ - \ to.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Compute/availabilitySets/*\",\"Microsoft.Compute/locations/*\"\ - ,\"Microsoft.Compute/virtualMachines/*\",\"Microsoft.Compute/virtualMachineScaleSets/*\"\ - ,\"Microsoft.Compute/disks/write\",\"Microsoft.Compute/disks/read\",\"Microsoft.Compute/disks/delete\"\ - ,\"Microsoft.DevTestLab/schedules/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Network/applicationGateways/backendAddressPools/join/action\"\ - ,\"Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\"Microsoft.Network/loadBalancers/inboundNatPools/join/action\"\ - ,\"Microsoft.Network/loadBalancers/inboundNatRules/join/action\",\"Microsoft.Network/loadBalancers/probes/join/action\"\ - ,\"Microsoft.Network/loadBalancers/read\",\"Microsoft.Network/locations/*\"\ - ,\"Microsoft.Network/networkInterfaces/*\",\"Microsoft.Network/networkSecurityGroups/join/action\"\ - ,\"Microsoft.Network/networkSecurityGroups/read\",\"Microsoft.Network/publicIPAddresses/join/action\"\ - ,\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.RecoveryServices/locations/*\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/*/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/write\"\ - ,\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/usages/read\"\ - ,\"Microsoft.RecoveryServices/Vaults/write\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.SqlVirtualMachine/*\",\"Microsoft.Storage/storageAccounts/listKeys/action\"\ - ,\"Microsoft.Storage/storageAccounts/read\",\"Microsoft.Support/*\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-06-02T00:18:27.3542698Z\"\ - ,\"updatedOn\":\"2020-02-03T19:38:21.2170228Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9980e02c-c2be-4d73-94e8-173b1dc7cf3c\"\ - },{\"properties\":{\"roleName\":\"Web Plan Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage the web plans for websites, but not access\ - \ to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Web/serverFarms/*\",\"Microsoft.Web/hostingEnvironments/Join/Action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-03-26T18:17:34.5018645Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\"\ - },{\"properties\":{\"roleName\":\"Website Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage websites (not web plans), but not access\ - \ to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/components/*\"\ - ,\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Web/certificates/*\",\"Microsoft.Web/listSitesAssignedToHostName/read\"\ - ,\"Microsoft.Web/serverFarms/join/action\",\"Microsoft.Web/serverFarms/read\"\ - ,\"Microsoft.Web/sites/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2015-05-12T23:10:23.6193952Z\",\"updatedOn\":\"2019-02-05T21:24:46.9407288Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/de139f84-1756-47ae-9be6-808fbbe84772\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"de139f84-1756-47ae-9be6-808fbbe84772\"\ - },{\"properties\":{\"roleName\":\"Azure Service Bus Data Owner\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for full access to Azure Service\ - \ Bus resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.ServiceBus/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.ServiceBus/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-04-16T21:33:36.7445745Z\",\"\ - updatedOn\":\"2019-08-21T22:47:11.3982905Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/090c5cfd-751d-490a-894a-3ce6f1109419\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"090c5cfd-751d-490a-894a-3ce6f1109419\"\ - },{\"properties\":{\"roleName\":\"Azure Event Hubs Data Owner\",\"type\":\"\ - BuiltInRole\",\"description\":\"Allows for full access to Azure Event Hubs\ - \ resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.EventHub/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.EventHub/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-04-16T21:34:29.8656362Z\",\"\ - updatedOn\":\"2019-08-21T22:58:57.7584645Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f526a384-b230-433a-b45c-95f59c4a2dec\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f526a384-b230-433a-b45c-95f59c4a2dec\"\ - },{\"properties\":{\"roleName\":\"Attestation Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can read write or delete the attestation provider instance\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Attestation/attestationProviders/attestation/read\"\ - ,\"Microsoft.Attestation/attestationProviders/attestation/write\",\"Microsoft.Attestation/attestationProviders/attestation/delete\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-04-19T00:24:09.3354177Z\",\"updatedOn\":\"2019-05-10T17:59:06.3448436Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\"\ - },{\"properties\":{\"roleName\":\"HDInsight Cluster Operator\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you read and modify HDInsight cluster\ - \ configurations.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.HDInsight/*/read\",\"Microsoft.HDInsight/clusters/getGatewaySettings/action\"\ - ,\"Microsoft.HDInsight/clusters/updateGatewaySettings/action\",\"Microsoft.HDInsight/clusters/configurations/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/operations/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Authorization/*/read\",\"\ - Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-04-20T00:03:01.7110732Z\",\"updatedOn\":\"2019-04-28T02:34:17.4679314Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/61ed4efc-fab3-44fd-b111-e24485cc132a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"61ed4efc-fab3-44fd-b111-e24485cc132a\"\ - },{\"properties\":{\"roleName\":\"Cosmos DB Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage Azure Cosmos DB accounts, but not access\ - \ data in them. Prevents access to account keys and connection strings.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DocumentDb/databaseAccounts/*\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Authorization/*/read\",\"\ - Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"\ - ],\"notActions\":[\"Microsoft.DocumentDB/databaseAccounts/readonlyKeys/*\"\ - ,\"Microsoft.DocumentDB/databaseAccounts/regenerateKey/*\",\"Microsoft.DocumentDB/databaseAccounts/listKeys/*\"\ - ,\"Microsoft.DocumentDB/databaseAccounts/listConnectionStrings/*\"],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2019-04-26T17:01:17.0169383Z\"\ - ,\"updatedOn\":\"2019-11-21T01:34:13.3746345Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"230815da-be43-4aae-9cb4-875f7bd000aa\"\ - },{\"properties\":{\"roleName\":\"Hybrid Server Resource Administrator\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can read, write, delete, and re-onboard\ - \ Hybrid servers to the Hybrid Resource Provider.\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[\"Microsoft.HybridCompute/machines/*\"\ - ,\"Microsoft.HybridCompute/*/read\"],\"notActions\":[],\"dataActions\":[],\"\ - notDataActions\":[]}],\"createdOn\":\"2019-04-29T21:39:32.3132923Z\",\"updatedOn\"\ - :\"2019-05-06T20:08:25.3180258Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/48b40c6e-82e0-4eb3-90d5-19e40f49b624\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"48b40c6e-82e0-4eb3-90d5-19e40f49b624\"\ - },{\"properties\":{\"roleName\":\"Hybrid Server Onboarding\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can onboard new Hybrid servers to the Hybrid Resource Provider.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.HybridCompute/machines/read\"\ - ,\"Microsoft.HybridCompute/machines/write\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2019-04-29T22:36:28.1873756Z\"\ - ,\"updatedOn\":\"2019-05-06T20:09:17.9364269Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\"\ - },{\"properties\":{\"roleName\":\"Azure Event Hubs Data Receiver\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows receive access to Azure Event Hubs\ - \ resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.EventHub/*/eventhubs/consumergroups/read\"],\"notActions\":[],\"\ - dataActions\":[\"Microsoft.EventHub/*/receive/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-05-10T06:25:21.1056666Z\",\"updatedOn\":\"2019-08-21T23:00:32.6225396Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a638d3c7-ab3a-418d-83e6-5f17a39d4fde\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a638d3c7-ab3a-418d-83e6-5f17a39d4fde\"\ - },{\"properties\":{\"roleName\":\"Azure Event Hubs Data Sender\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows send access to Azure Event Hubs\ - \ resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.EventHub/*/eventhubs/read\"],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.EventHub/*/send/action\"],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-05-10T06:26:12.4673714Z\",\"updatedOn\":\"2019-08-21T23:02:26.6155679Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2b629674-e913-4c01-ae53-ef4638d8f975\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2b629674-e913-4c01-ae53-ef4638d8f975\"\ - },{\"properties\":{\"roleName\":\"Azure Service Bus Data Receiver\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for receive access to Azure Service\ - \ Bus resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.ServiceBus/*/queues/read\",\"Microsoft.ServiceBus/*/topics/read\"\ - ,\"Microsoft.ServiceBus/*/topics/subscriptions/read\"],\"notActions\":[],\"\ - dataActions\":[\"Microsoft.ServiceBus/*/receive/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-05-10T06:43:01.6343849Z\",\"updatedOn\":\"2019-08-21T22:55:24.3423558Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\"\ - },{\"properties\":{\"roleName\":\"Azure Service Bus Data Sender\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows for send access to Azure Service\ - \ Bus resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.ServiceBus/*/queues/read\",\"Microsoft.ServiceBus/*/topics/read\"\ - ,\"Microsoft.ServiceBus/*/topics/subscriptions/read\"],\"notActions\":[],\"\ - dataActions\":[\"Microsoft.ServiceBus/*/send/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-05-10T06:43:46.7046934Z\",\"updatedOn\":\"2019-08-21T22:57:12.2555683Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\"\ - },{\"properties\":{\"roleName\":\"Storage File Data SMB Share Reader\",\"\ - type\":\"BuiltInRole\",\"description\":\"Allows for read access to Azure File\ - \ Share over SMB\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-07-01T20:19:31.8620471Z\",\"\ - updatedOn\":\"2019-08-07T01:00:41.9223409Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/aba4ae5f-2193-4029-9191-0cb91df5e314\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"aba4ae5f-2193-4029-9191-0cb91df5e314\"\ - },{\"properties\":{\"roleName\":\"Storage File Data SMB Share Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Allows for read, write, and delete\ - \ access in Azure Storage file shares over SMB\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"\ - Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\",\"\ - Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\",\"\ - Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\"],\"\ - notDataActions\":[]}],\"createdOn\":\"2019-07-01T20:54:35.4834310Z\",\"updatedOn\"\ - :\"2019-08-07T01:05:24.4309872Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\"\ - },{\"properties\":{\"roleName\":\"Private DNS Zone Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you manage private DNS zone resources,\ - \ but not the virtual networks they are linked to.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Network/privateDnsZones/*\",\"Microsoft.Network/privateDnsOperationResults/*\"\ - ,\"Microsoft.Network/privateDnsOperationStatuses/*\",\"Microsoft.Network/virtualNetworks/read\"\ - ,\"Microsoft.Network/virtualNetworks/join/action\",\"Microsoft.Authorization/*/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-07-10T19:31:15.5645518Z\",\"updatedOn\":\"2019-07-11T21:12:01.7260648Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b12aa53e-6015-4669-85d0-8515ebb3ae7f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b12aa53e-6015-4669-85d0-8515ebb3ae7f\"\ - },{\"properties\":{\"roleName\":\"Storage Blob Delegator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Allows for generation of a user delegation key which can\ - \ be used to sign SAS tokens\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-07-23T00:51:16.3376761Z\",\"updatedOn\":\"2019-07-23T01:14:31.8778475Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/db58b8e5-c6ad-4a2a-8342-4190687cbf4a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"db58b8e5-c6ad-4a2a-8342-4190687cbf4a\"\ - },{\"properties\":{\"roleName\":\"Desktop Virtualization User\",\"type\":\"\ - BuiltInRole\",\"description\":\"Allows user to use the applications in an\ - \ application group.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[],\"notActions\":[],\"dataActions\":[\"Microsoft.DesktopVirtualization/applicationGroups/useApplications/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-08-07T00:29:03.8727621Z\",\"\ - updatedOn\":\"2019-08-07T00:29:03.8727621Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\"\ - },{\"properties\":{\"roleName\":\"Storage File Data SMB Share Elevated Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Allows for read, write, delete\ - \ and modify NTFS permission access in Azure Storage file shares over SMB\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\"\ - ,\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\"\ - ,\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\"\ - ,\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-08-07T01:35:36.9935457Z\",\"\ - updatedOn\":\"2019-08-07T01:35:36.9935457Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a7264617-510b-434b-a828-9731dc254ea7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a7264617-510b-434b-a828-9731dc254ea7\"\ - },{\"properties\":{\"roleName\":\"Blueprint Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can manage blueprint definitions, but not assign them.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Blueprint/blueprints/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Support/*\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-08-14T21:55:16.9683949Z\"\ - ,\"updatedOn\":\"2019-08-17T00:10:55.7494677Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/41077137-e803-4205-871c-5a86e6a753b4\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"41077137-e803-4205-871c-5a86e6a753b4\"\ - },{\"properties\":{\"roleName\":\"Blueprint Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can assign existing published blueprints, but cannot create\ - \ new blueprints. NOTE: this only works if the assignment is done with a user-assigned\ - \ managed identity.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Blueprint/blueprintAssignments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-08-14T21:56:48.7897875Z\",\"updatedOn\":\"2019-08-17T00:06:02.6509737Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/437d2ced-4a38-4302-8479-ed2bcb43d090\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"437d2ced-4a38-4302-8479-ed2bcb43d090\"\ - },{\"properties\":{\"roleName\":\"Azure Sentinel Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Azure Sentinel Contributor\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.SecurityInsights/*\",\"\ - Microsoft.OperationalInsights/workspaces/analytics/query/action\",\"Microsoft.OperationalInsights/workspaces/*/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/savedSearches/*\",\"Microsoft.OperationsManagement/solutions/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/query/read\",\"Microsoft.OperationalInsights/workspaces/query/*/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/dataSources/read\",\"Microsoft.Insights/workbooks/*\"\ - ,\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-08-28T16:39:03.8725173Z\",\"updatedOn\":\"2020-03-11T15:20:51.6768533Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ab8e14d6-4a74-4a29-9ba8-549422addade\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ab8e14d6-4a74-4a29-9ba8-549422addade\"\ - },{\"properties\":{\"roleName\":\"Azure Sentinel Responder\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Azure Sentinel Responder\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.SecurityInsights/*/read\",\"\ - Microsoft.SecurityInsights/dataConnectorsCheckRequirements/action\",\"Microsoft.SecurityInsights/cases/*\"\ - ,\"Microsoft.SecurityInsights/incidents/*\",\"Microsoft.OperationalInsights/workspaces/analytics/query/action\"\ - ,\"Microsoft.OperationalInsights/workspaces/*/read\",\"Microsoft.OperationalInsights/workspaces/dataSources/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/savedSearches/read\",\"Microsoft.OperationsManagement/solutions/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/query/read\",\"Microsoft.OperationalInsights/workspaces/query/*/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/dataSources/read\",\"Microsoft.Insights/workbooks/read\"\ - ,\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-08-28T16:54:07.6467264Z\",\"updatedOn\":\"2020-04-02T08:42:10.2864085Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3e150937-b8fe-4cfb-8069-0eaf05ecd056\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3e150937-b8fe-4cfb-8069-0eaf05ecd056\"\ - },{\"properties\":{\"roleName\":\"Azure Sentinel Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Azure Sentinel Reader\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[\"Microsoft.SecurityInsights/*/read\",\"Microsoft.SecurityInsights/dataConnectorsCheckRequirements/action\"\ - ,\"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\"Microsoft.OperationalInsights/workspaces/*/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/LinkedServices/read\",\"Microsoft.OperationalInsights/workspaces/savedSearches/read\"\ - ,\"Microsoft.OperationsManagement/solutions/read\",\"Microsoft.OperationalInsights/workspaces/query/read\"\ - ,\"Microsoft.OperationalInsights/workspaces/query/*/read\",\"Microsoft.OperationalInsights/workspaces/dataSources/read\"\ - ,\"Microsoft.Insights/workbooks/read\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-08-28T16:58:50.1132117Z\",\"updatedOn\":\"2020-04-02T08:34:51.7222706Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8d289c81-5878-46d4-8554-54e1e3d8b5cb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8d289c81-5878-46d4-8554-54e1e3d8b5cb\"\ - },{\"properties\":{\"roleName\":\"Workbook Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can read workbooks.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"microsoft.insights/workbooks/read\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-08-28T20:56:17.6808140Z\"\ - ,\"updatedOn\":\"2019-08-28T21:43:05.0202124Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b279062a-9be3-42a0-92ae-8b3cf002ec4d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b279062a-9be3-42a0-92ae-8b3cf002ec4d\"\ - },{\"properties\":{\"roleName\":\"Workbook Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Can save shared workbooks.\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Insights/workbooks/write\",\"\ - Microsoft.Insights/workbooks/delete\",\"Microsoft.Insights/workbooks/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-08-28T20:59:42.4820277Z\",\"updatedOn\":\"2020-01-22T00:05:20.9387210Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e8ddcd69-c73f-4f9f-9844-4100522f16ad\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e8ddcd69-c73f-4f9f-9844-4100522f16ad\"\ - },{\"properties\":{\"roleName\":\"Policy Insights Data Writer (Preview)\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Allows read access to resource\ - \ policies and write access to resource component policy events.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/policyassignments/read\"\ - ,\"Microsoft.Authorization/policydefinitions/read\",\"Microsoft.Authorization/policysetdefinitions/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.PolicyInsights/checkDataPolicyCompliance/action\"\ - ,\"Microsoft.PolicyInsights/policyEvents/logDataEvents/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-09-19T19:35:20.9504127Z\",\"updatedOn\":\"2019-09-19T19:37:02.5331596Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/66bb4e9e-b016-4a94-8249-4c0511c2be84\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"66bb4e9e-b016-4a94-8249-4c0511c2be84\"\ - },{\"properties\":{\"roleName\":\"SignalR AccessKey Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Read SignalR Service Access Keys\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.SignalRService/*/read\"\ - ,\"Microsoft.SignalRService/SignalR/listkeys/action\",\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-09-20T09:33:19.6236874Z\",\"updatedOn\":\"2019-09-20T09:33:19.6236874Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/04165923-9d83-45d5-8227-78b77b0a687e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"04165923-9d83-45d5-8227-78b77b0a687e\"\ - },{\"properties\":{\"roleName\":\"SignalR Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Create, Read, Update, and Delete SignalR service resources\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.SignalRService/*\"\ - ,\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-09-20T09:58:09.0009662Z\",\"updatedOn\":\"2019-09-20T09:58:09.0009662Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8cf5e20a-e4b2-4e9d-b3a1-5ceb692c2761\"\ - },{\"properties\":{\"roleName\":\"Azure Connected Machine Onboarding\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can onboard Azure Connected Machines.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.HybridCompute/machines/read\"\ - ,\"Microsoft.HybridCompute/machines/write\",\"Microsoft.GuestConfiguration/guestConfigurationAssignments/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-10-23T20:15:07.1372870Z\",\"updatedOn\":\"2019-11-03T18:26:59.2060282Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\"\ - },{\"properties\":{\"roleName\":\"Azure Connected Machine Resource Administrator\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Can read, write, delete and re-onboard\ - \ Azure Connected Machines.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.HybridCompute/machines/read\",\"Microsoft.HybridCompute/machines/write\"\ - ,\"Microsoft.HybridCompute/machines/delete\",\"Microsoft.HybridCompute/machines/reconnect/action\"\ - ,\"Microsoft.HybridCompute/machines/extensions/write\",\"Microsoft.HybridCompute/*/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-10-23T20:24:59.1474607Z\",\"updatedOn\":\"2020-03-19T22:39:54.1226122Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/cd570a14-e51a-42ad-bac8-bafd67325302\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"cd570a14-e51a-42ad-bac8-bafd67325302\"\ - },{\"properties\":{\"roleName\":\"Managed Services Registration assignment\ - \ Delete Role\",\"type\":\"BuiltInRole\",\"description\":\"Managed Services\ - \ Registration Assignment Delete Role allows the managing tenant users to\ - \ delete the registration assignment assigned to their tenant.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ManagedServices/registrationAssignments/read\"\ - ,\"Microsoft.ManagedServices/registrationAssignments/delete\",\"Microsoft.ManagedServices/operationStatuses/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2019-10-23T22:33:33.1183469Z\",\"updatedOn\":\"2019-10-24T21:49:09.3875276Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/91c1777a-f3dc-4fae-b103-61d183457e46\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"91c1777a-f3dc-4fae-b103-61d183457e46\"\ - },{\"properties\":{\"roleName\":\"App Configuration Data Owner\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows full access to App Configuration\ - \ data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"\ - notActions\":[],\"dataActions\":[\"Microsoft.AppConfiguration/configurationStores/*/read\"\ - ,\"Microsoft.AppConfiguration/configurationStores/*/write\",\"Microsoft.AppConfiguration/configurationStores/*/delete\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-10-25T18:41:40.1185063Z\",\"\ - updatedOn\":\"2019-10-25T18:41:40.1185063Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\"\ - },{\"properties\":{\"roleName\":\"App Configuration Data Reader\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows read access to App Configuration\ - \ data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"\ - notActions\":[],\"dataActions\":[\"Microsoft.AppConfiguration/configurationStores/*/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-10-25T18:45:33.7975332Z\",\"\ - updatedOn\":\"2019-10-25T18:45:33.7975332Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/516239f1-63e1-4d78-a4de-a74fb236a071\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"516239f1-63e1-4d78-a4de-a74fb236a071\"\ - },{\"properties\":{\"roleName\":\"Kubernetes Cluster - Azure Arc Onboarding\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Role definition to authorize any\ - \ user/service to create connectedClusters resource\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Kubernetes/connectedClusters/Write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/read\",\"Microsoft.Support/*\"],\"\ - notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"\ - 2019-11-18T17:00:02.2087147Z\",\"updatedOn\":\"2020-02-10T22:40:48.3317559Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/34e09817-6cbe-4d01-b1a2-e0eac5743d41\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"34e09817-6cbe-4d01-b1a2-e0eac5743d41\"\ - },{\"properties\":{\"roleName\":\"Experimentation Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Experimentation Contributor\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/experiment/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/emergencystop/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/read\",\"Microsoft.Experimentation/experimentWorkspaces/write\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/delete\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2019-12-13T00:08:08.6679591Z\",\"updatedOn\":\"2020-07-07T20:17:06.8223079Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f646f1b-fa08-80eb-a22b-edd6ce5c915c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f646f1b-fa08-80eb-a22b-edd6ce5c915c\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services QnA Maker Reader\",\"\ - type\":\"BuiltInRole\",\"description\":\"Let\u2019s you read and test a KB\ - \ only.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ,\"Microsoft.Authorization/roleAssignments/read\",\"Microsoft.Authorization/roleDefinitions/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/download/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/generateanswer/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/alterations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointkeys/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointsettings/read\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/read\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/download/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/generateanswer/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/alterations/read\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointkeys/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointsettings/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-12-17T18:26:12.3329439Z\",\"\ - updatedOn\":\"2020-05-08T12:03:46.9266538Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/466ccd10-b268-4a11-b098-b4849f024126\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"466ccd10-b268-4a11-b098-b4849f024126\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services QnA Maker Editor\",\"\ - type\":\"BuiltInRole\",\"description\":\"Let\u2019s you create, edit, import\ - \ and export a KB. You cannot publish or delete a KB.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ,\"Microsoft.Authorization/roleAssignments/read\",\"Microsoft.Authorization/roleDefinitions/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/download/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/create/write\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/write\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/generateanswer/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/train/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/alterations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/alterations/write\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointkeys/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointkeys/refreshkeys/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointsettings/read\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker/endpointsettings/write\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker/operations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/download/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/create/write\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/write\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/generateanswer/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/train/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/alterations/read\",\"\ - Microsoft.CognitiveServices/accounts/QnAMaker.v2/alterations/write\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointkeys/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointkeys/refreshkeys/action\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointsettings/read\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointsettings/write\"\ - ,\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/operations/read\"],\"\ - notDataActions\":[]}],\"createdOn\":\"2019-12-17T18:27:30.6434556Z\",\"updatedOn\"\ - :\"2020-05-08T12:02:34.0065552Z\",\"createdBy\":null,\"updatedBy\":null},\"\ - id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f4cc2bf9-21be-47a1-bdf1-5c5804381025\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f4cc2bf9-21be-47a1-bdf1-5c5804381025\"\ - },{\"properties\":{\"roleName\":\"Experimentation Administrator\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Experimentation Administrator\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/admin/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/write\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/delete\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/experimentadmin/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/experiment/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/emergencystop/action\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/read\",\"Microsoft.Experimentation/experimentWorkspaces/write\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/delete\",\"Microsoft.Experimentation/experimentWorkspaces/admin/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2019-12-18T22:46:33.1116612Z\",\"\ - updatedOn\":\"2020-04-22T20:10:20.1216929Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f646f1b-fa08-80eb-a33b-edd6ce5c915c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f646f1b-fa08-80eb-a33b-edd6ce5c915c\"\ - },{\"properties\":{\"roleName\":\"Remote Rendering Administrator\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Provides user with conversion, manage session,\ - \ rendering and diagnostics capabilities for Azure Remote Rendering\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.MixedReality/RemoteRenderingAccounts/convert/action\",\"Microsoft.MixedReality/RemoteRenderingAccounts/convert/read\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/convert/delete\",\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/read\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/action\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/delete\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/render/read\",\"Microsoft.MixedReality/RemoteRenderingAccounts/diagnostic/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-01-23T18:15:31.3450348Z\",\"\ - updatedOn\":\"2020-01-23T18:15:31.3450348Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3df8b902-2a6f-47c7-8cc5-360e9b272a7e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3df8b902-2a6f-47c7-8cc5-360e9b272a7e\"\ - },{\"properties\":{\"roleName\":\"Remote Rendering Client\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Provides user with manage session, rendering and diagnostics\ - \ capabilities for Azure Remote Rendering.\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/read\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/action\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/delete\"\ - ,\"Microsoft.MixedReality/RemoteRenderingAccounts/render/read\",\"Microsoft.MixedReality/RemoteRenderingAccounts/diagnostic/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-01-23T18:32:52.7069824Z\",\"\ - updatedOn\":\"2020-01-23T18:32:52.7069824Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d39065c4-c120-43c9-ab0a-63eed9795f0a\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d39065c4-c120-43c9-ab0a-63eed9795f0a\"\ - },{\"properties\":{\"roleName\":\"Managed Application Contributor Role\",\"\ - type\":\"BuiltInRole\",\"description\":\"Allows for creating managed application\ - \ resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"*/read\",\"Microsoft.Solutions/applications/*\",\"Microsoft.Solutions/register/action\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/*\",\"Microsoft.Resources/deployments/*\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-02-08T03:39:11.8933879Z\",\"updatedOn\":\"2020-03-23T02:12:30.0853051Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/641177b8-a67a-45b9-a033-47bc880bb21e\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"641177b8-a67a-45b9-a033-47bc880bb21e\"\ - },{\"properties\":{\"roleName\":\"Security Assessment Contributor\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets you push assessments to Security Center\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Security/assessments/write\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-02-13T08:23:47.7656161Z\",\"updatedOn\":\"2020-02-13T08:23:47.7656161Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/612c2aa1-cb24-443b-ac28-3ab7272de6f5\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"612c2aa1-cb24-443b-ac28-3ab7272de6f5\"\ - },{\"properties\":{\"roleName\":\"Tag Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Lets you manage tags on entities, without providing access\ - \ to the entities themselves.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/resources/read\",\"Microsoft.Resources/subscriptions/resources/read\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Support/*\",\"Microsoft.Resources/tags/*\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-18T23:19:19.2977644Z\"\ - ,\"updatedOn\":\"2020-02-19T00:04:58.9214962Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4a9ae827-6dc8-4573-8ac7-8239d42aa03f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4a9ae827-6dc8-4573-8ac7-8239d42aa03f\"\ - },{\"properties\":{\"roleName\":\"Integration Service Environment Developer\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Allows developers to create and\ - \ update workflows, integration accounts and API connections in integration\ - \ service environments.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Support/*\",\"Microsoft.Logic/integrationServiceEnvironments/read\"\ - ,\"Microsoft.Logic/integrationServiceEnvironments/join/action\"],\"notActions\"\ - :[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-20T21:09:00.5627875Z\"\ - ,\"updatedOn\":\"2020-02-20T21:36:24.6190730Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c7aa55d3-1abb-444a-a5ca-5e51e485d6ec\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c7aa55d3-1abb-444a-a5ca-5e51e485d6ec\"\ - },{\"properties\":{\"roleName\":\"Integration Service Environment Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you manage integration service\ - \ environments, but not access to them.\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.Logic/integrationServiceEnvironments/*\"],\"notActions\":[],\"\ - dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-20T21:10:44.4008319Z\"\ - ,\"updatedOn\":\"2020-02-20T21:41:56.7983599Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a41e2c5b-bd99-4a07-88f4-9bf657a760b8\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a41e2c5b-bd99-4a07-88f4-9bf657a760b8\"\ - },{\"properties\":{\"roleName\":\"Marketplace Admin\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Administrator of marketplace resource provider\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Marketplace/privateStores/write\"\ - ,\"Microsoft.Marketplace/privateStores/action\",\"Microsoft.Marketplace/privateStores/delete\"\ - ,\"Microsoft.Marketplace/privateStores/offers/write\",\"Microsoft.Marketplace/privateStores/offers/action\"\ - ,\"Microsoft.Marketplace/privateStores/offers/delete\",\"Microsoft.Authorization/*/read\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-02-26T14:19:50.9681015Z\",\"updatedOn\":\"2020-06-23T05:54:42.8370671Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/dd920d6d-f481-47f1-b461-f338c46b2d9f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"dd920d6d-f481-47f1-b461-f338c46b2d9f\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service Contributor Role\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Grants access to read and write\ - \ Azure Kubernetes Service clusters\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[\"Microsoft.ContainerService/managedClusters/read\",\"Microsoft.ContainerService/managedClusters/write\"\ - ,\"Microsoft.Resources/deployments/*\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-27T19:27:15.0739970Z\"\ - ,\"updatedOn\":\"2020-02-28T02:34:14.5162305Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ed7f3fbd-7b88-4dd4-9017-9adb7ce333f8\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ed7f3fbd-7b88-4dd4-9017-9adb7ce333f8\"\ - },{\"properties\":{\"roleName\":\"Azure Digital Twins Reader (Preview)\",\"\ - type\":\"BuiltInRole\",\"description\":\"Read-only role for Digital Twins\ - \ data-plane properties\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.DigitalTwins/digitaltwins/read\"\ - ,\"Microsoft.DigitalTwins/digitaltwins/relationships/read\",\"Microsoft.DigitalTwins/eventroutes/read\"\ - ,\"Microsoft.DigitalTwins/models/read\",\"Microsoft.DigitalTwins/query/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-03-10T23:48:14.7057381Z\",\"\ - updatedOn\":\"2020-07-01T17:50:50.2393244Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d57506d4-4c8d-48b1-8587-93c323f6a5a3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d57506d4-4c8d-48b1-8587-93c323f6a5a3\"\ - },{\"properties\":{\"roleName\":\"Azure Digital Twins Owner (Preview)\",\"\ - type\":\"BuiltInRole\",\"description\":\"Full access role for Digital Twins\ - \ data-plane\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[],\"notActions\":[],\"dataActions\":[\"Microsoft.DigitalTwins/eventroutes/*\"\ - ,\"Microsoft.DigitalTwins/digitaltwins/*\",\"Microsoft.DigitalTwins/digitaltwins/commands/*\"\ - ,\"Microsoft.DigitalTwins/digitaltwins/relationships/*\",\"Microsoft.DigitalTwins/models/*\"\ - ,\"Microsoft.DigitalTwins/query/*\"],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-03-10T23:49:33.7821930Z\",\"updatedOn\":\"2020-03-10T23:49:33.7821930Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/bcd981a7-7f74-457b-83e1-cceb9e632ffe\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"bcd981a7-7f74-457b-83e1-cceb9e632ffe\"\ - },{\"properties\":{\"roleName\":\"Hierarchy Settings Administrator\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Allows users to edit and delete Hierarchy\ - \ Settings\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Management/managementGroups/settings/write\",\"Microsoft.Management/managementGroups/settings/delete\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-03-13T23:55:11.0212387Z\",\"updatedOn\":\"2020-03-13T23:58:46.9249866Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/350f8d15-c687-4448-8ae1-157740a3936d\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"350f8d15-c687-4448-8ae1-157740a3936d\"\ - },{\"properties\":{\"roleName\":\"FHIR Data Contributor\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Role allows user or principal full access to FHIR Data\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.HealthcareApis/services/fhir/resources/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-03-17T18:35:04.4949547Z\",\"\ - updatedOn\":\"2020-03-17T18:35:04.4949547Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5a1fc7df-4bf1-4951-a576-89034ee01acd\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5a1fc7df-4bf1-4951-a576-89034ee01acd\"\ - },{\"properties\":{\"roleName\":\"FHIR Data Exporter\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Role allows user or principal to read and export FHIR Data\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.HealthcareApis/services/fhir/resources/read\"\ - ,\"Microsoft.HealthcareApis/services/fhir/resources/export/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2020-03-17T18:45:01.9764073Z\",\"updatedOn\":\"2020-03-19T20:29:56.9958536Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3db33094-8700-4567-8da5-1501d4e7e843\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3db33094-8700-4567-8da5-1501d4e7e843\"\ - },{\"properties\":{\"roleName\":\"FHIR Data Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Role allows user or principal to read FHIR Data\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.HealthcareApis/services/fhir/resources/read\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2020-03-17T18:49:04.8353499Z\",\"updatedOn\":\"2020-03-17T18:49:04.8353499Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4c8d0bbc-75d3-4935-991f-5f3c56d81508\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4c8d0bbc-75d3-4935-991f-5f3c56d81508\"\ - },{\"properties\":{\"roleName\":\"FHIR Data Writer\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Role allows user or principal to read and write FHIR Data\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\"\ - :[],\"dataActions\":[\"Microsoft.HealthcareApis/services/fhir/resources/*\"\ - ],\"notDataActions\":[\"Microsoft.HealthcareApis/services/fhir/resources/hardDelete/action\"\ - ]}],\"createdOn\":\"2020-03-17T18:55:35.2413335Z\",\"updatedOn\":\"2020-03-17T18:55:35.2413335Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3f88fce4-5892-4214-ae73-ba5294559913\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3f88fce4-5892-4214-ae73-ba5294559913\"\ - },{\"properties\":{\"roleName\":\"Experimentation Reader\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Experimentation Reader\",\"assignableScopes\":[\"/\"],\"\ - permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/read\"\ - ,\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-03-25T18:05:14.8375678Z\",\"\ - updatedOn\":\"2020-04-22T21:20:46.2737555Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/49632ef5-d9ac-41f4-b8e7-bbe587fa74a1\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"49632ef5-d9ac-41f4-b8e7-bbe587fa74a1\"\ - },{\"properties\":{\"roleName\":\"Object Understanding Account Owner\",\"\ - type\":\"BuiltInRole\",\"description\":\"Provides user with ingestion capabilities\ - \ for Azure Object Understanding.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/ObjectUnderstandingAccounts/ingest/action\"\ - ,\"Microsoft.MixedReality/ObjectUnderstandingAccounts/ingest/read\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2020-04-22T19:15:09.0697923Z\",\"updatedOn\":\"2020-04-22T19:15:09.0697923Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4dd61c23-6743-42fe-a388-d8bdd41cb745\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4dd61c23-6743-42fe-a388-d8bdd41cb745\"\ - },{\"properties\":{\"roleName\":\"Azure Maps Data Contributor\",\"type\":\"\ - BuiltInRole\",\"description\":\"Grants access to read, write, and delete access\ - \ to map related data from an Azure maps account.\",\"assignableScopes\":[\"\ - /\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"\ - Microsoft.Maps/accounts/*/read\",\"Microsoft.Maps/accounts/*/write\",\"Microsoft.Maps/accounts/*/delete\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-07T20:55:05.0645410Z\",\"\ - updatedOn\":\"2020-05-07T20:55:05.0645410Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8f5e0ce6-4f7b-4dcf-bddf-e6f48634a204\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8f5e0ce6-4f7b-4dcf-bddf-e6f48634a204\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Custom Vision Contributor\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Full access to the project, including\ - \ the ability to view, create, edit, or delete projects.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-08T23:47:07.0779345Z\",\"\ - updatedOn\":\"2020-05-08T23:47:07.0779345Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c1ff6cc2-c111-46fe-8896-e0ef812ad9f3\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c1ff6cc2-c111-46fe-8896-e0ef812ad9f3\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Custom Vision Deployment\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Publish, unpublish or export models.\ - \ Deployment can view the project but can\u2019t update.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/*/read\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/predictions/*\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/iterations/publish/*\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/iterations/export/*\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/quicktest/*\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/classify/*\",\"Microsoft.CognitiveServices/accounts/CustomVision/detect/*\"\ - ],\"notDataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/projects/export/read\"\ - ]}],\"createdOn\":\"2020-05-09T01:31:05.9528620Z\",\"updatedOn\":\"2020-05-09T01:31:05.9528620Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5c4089e1-6d96-4d2f-b296-c1bc7137275f\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5c4089e1-6d96-4d2f-b296-c1bc7137275f\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Custom Vision Labeler\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"View, edit training images and\ - \ create, add, remove, or delete the image tags. Labelers can view the project\ - \ but can\u2019t update anything other than training images and tags.\",\"\ - assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/*/read\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/predictions/query/action\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/images/*\",\"\ - Microsoft.CognitiveServices/accounts/CustomVision/projects/tags/*\",\"Microsoft.CognitiveServices/accounts/CustomVision/projects/images/suggested/*\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/tagsandregions/suggestions/action\"\ - ],\"notDataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/projects/export/read\"\ - ]}],\"createdOn\":\"2020-05-09T01:33:20.8278896Z\",\"updatedOn\":\"2020-05-09T01:33:20.8278896Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/88424f51-ebe7-446f-bc41-7fa16989e96c\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"88424f51-ebe7-446f-bc41-7fa16989e96c\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Custom Vision Reader\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Read-only actions in the project.\ - \ Readers can\u2019t create or update the project.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/*/read\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/predictions/query/action\"\ - ],\"notDataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/projects/export/read\"\ - ]}],\"createdOn\":\"2020-05-09T01:34:18.5328818Z\",\"updatedOn\":\"2020-05-09T01:34:18.5328818Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/93586559-c37d-4a6b-ba08-b9f0940c2d73\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"93586559-c37d-4a6b-ba08-b9f0940c2d73\"\ - },{\"properties\":{\"roleName\":\"Cognitive Services Custom Vision Trainer\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"View, edit projects and train\ - \ the models, including the ability to publish, unpublish, export the models.\ - \ Trainers can\u2019t create or delete the project.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/*\"\ - ],\"notDataActions\":[\"Microsoft.CognitiveServices/accounts/CustomVision/projects/action\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/delete\",\"\ - Microsoft.CognitiveServices/accounts/CustomVision/projects/import/action\"\ - ,\"Microsoft.CognitiveServices/accounts/CustomVision/projects/export/read\"\ - ]}],\"createdOn\":\"2020-05-09T01:35:13.8147804Z\",\"updatedOn\":\"2020-05-09T01:35:13.8147804Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0a5ae4ab-0d65-4eeb-be61-29fc9b54394b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0a5ae4ab-0d65-4eeb-be61-29fc9b54394b\"\ - },{\"properties\":{\"roleName\":\"Key Vault Administrator (preview)\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Can perform any action on certificates,\ - \ keys and secrets of a key vault, except manage permissions.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.KeyVault/checkNameAvailability/read\",\"Microsoft.KeyVault/deletedVaults/read\"\ - ,\"Microsoft.KeyVault/locations/*/read\",\"Microsoft.KeyVault/vaults/*/read\"\ - ,\"Microsoft.KeyVault/operations/read\"],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.KeyVault/vaults/*\"],\"notDataActions\":[]}],\"createdOn\":\"\ - 2020-05-19T17:52:46.2349235Z\",\"updatedOn\":\"2020-05-20T19:40:18.9511304Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00482a5a-887f-4fb3-b363-3b7fe8e74483\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"00482a5a-887f-4fb3-b363-3b7fe8e74483\"\ - },{\"properties\":{\"roleName\":\"Key Vault Crypto Officer (preview)\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can perform any action on the keys\ - \ of a key vault, except manage permissions.\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.KeyVault/checkNameAvailability/read\"\ - ,\"Microsoft.KeyVault/deletedVaults/read\",\"Microsoft.KeyVault/locations/*/read\"\ - ,\"Microsoft.KeyVault/vaults/*/read\",\"Microsoft.KeyVault/operations/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.KeyVault/vaults/keys/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-19T17:52:47.0099249Z\",\"\ - updatedOn\":\"2020-05-20T19:44:51.5886988Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/14b46e9e-c2b7-41b4-b07b-48a6ebf60603\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"14b46e9e-c2b7-41b4-b07b-48a6ebf60603\"\ - },{\"properties\":{\"roleName\":\"Key Vault Crypto User (preview)\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Can perform cryptographic operations on\ - \ keys and certificates.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.KeyVault/vaults/keys/read\"\ - ,\"Microsoft.KeyVault/vaults/keys/update/action\",\"Microsoft.KeyVault/vaults/keys/backup/action\"\ - ,\"Microsoft.KeyVault/vaults/keys/encrypt/action\",\"Microsoft.KeyVault/vaults/keys/decrypt/action\"\ - ,\"Microsoft.KeyVault/vaults/keys/wrap/action\",\"Microsoft.KeyVault/vaults/keys/unwrap/action\"\ - ,\"Microsoft.KeyVault/vaults/keys/sign/action\",\"Microsoft.KeyVault/vaults/keys/verify/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-19T17:52:47.0699268Z\",\"\ - updatedOn\":\"2020-05-20T19:48:54.8672037Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/12338af0-0e69-4776-bea7-57ae8d297424\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"12338af0-0e69-4776-bea7-57ae8d297424\"\ - },{\"properties\":{\"roleName\":\"Key Vault Secrets Officer (preview)\",\"\ - type\":\"BuiltInRole\",\"description\":\"Can perform any action on the secrets\ - \ of a key vault, except manage permissions.\",\"assignableScopes\":[\"/\"\ - ],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\"\ - ,\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.KeyVault/checkNameAvailability/read\"\ - ,\"Microsoft.KeyVault/deletedVaults/read\",\"Microsoft.KeyVault/locations/*/read\"\ - ,\"Microsoft.KeyVault/vaults/*/read\",\"Microsoft.KeyVault/operations/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.KeyVault/vaults/secrets/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-19T17:52:47.1449242Z\",\"\ - updatedOn\":\"2020-05-20T19:51:40.0338120Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b86a8fe4-44ce-4948-aee5-eccb2c155cd7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b86a8fe4-44ce-4948-aee5-eccb2c155cd7\"\ - },{\"properties\":{\"roleName\":\"Key Vault Secrets User (preview)\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Can read secret contents.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.KeyVault/vaults/secrets/getSecret/action\",\"Microsoft.KeyVault/vaults/secrets/readMetadata/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-19T17:52:47.2049241Z\",\"\ - updatedOn\":\"2020-05-20T19:53:53.9617292Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4633458b-17de-408a-b874-0445c86b69e6\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4633458b-17de-408a-b874-0445c86b69e6\"\ - },{\"properties\":{\"roleName\":\"Key Vault Certificates Officer (preview)\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Can perform any action on the\ - \ certificates of a key vault, except manage permissions.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.KeyVault/checkNameAvailability/read\",\"Microsoft.KeyVault/deletedVaults/read\"\ - ,\"Microsoft.KeyVault/locations/*/read\",\"Microsoft.KeyVault/vaults/*/read\"\ - ,\"Microsoft.KeyVault/operations/read\"],\"notActions\":[],\"dataActions\"\ - :[\"Microsoft.KeyVault/vaults/certificatecas/*\",\"Microsoft.KeyVault/vaults/certificates/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-19T17:52:47.2499247Z\",\"\ - updatedOn\":\"2020-05-20T19:56:22.0363761Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a4417e6f-fecd-4de8-b567-7b0420556985\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a4417e6f-fecd-4de8-b567-7b0420556985\"\ - },{\"properties\":{\"roleName\":\"Key Vault Reader (preview)\",\"type\":\"\ - BuiltInRole\",\"description\":\"Can read metadata of key vaults and its certificates,\ - \ keys and secrets. Cannot read sensitive values such as secret contents or\ - \ key material.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.KeyVault/checkNameAvailability/read\"\ - ,\"Microsoft.KeyVault/deletedVaults/read\",\"Microsoft.KeyVault/locations/*/read\"\ - ,\"Microsoft.KeyVault/vaults/*/read\",\"Microsoft.KeyVault/operations/read\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.KeyVault/vaults/*/read\"\ - ,\"Microsoft.KeyVault/vaults/secrets/readMetadata/action\"],\"notDataActions\"\ - :[]}],\"createdOn\":\"2020-05-19T17:52:47.2949294Z\",\"updatedOn\":\"2020-05-20T19:58:55.0084184Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/21090545-7ca7-4776-b22c-e363652d74d2\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"21090545-7ca7-4776-b22c-e363652d74d2\"\ - },{\"properties\":{\"roleName\":\"Key Vault Crypto Service Encryption (preview)\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Can read metadata of keys and\ - \ perform wrap/unwrap operations.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.KeyVault/vaults/keys/read\"\ - ,\"Microsoft.KeyVault/vaults/keys/wrap/action\",\"Microsoft.KeyVault/vaults/keys/unwrap/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-05-20T20:55:19.2398470Z\",\"\ - updatedOn\":\"2020-05-20T20:55:19.2398470Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e147488a-f6f5-4113-8e2d-b22465e65bf6\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e147488a-f6f5-4113-8e2d-b22465e65bf6\"\ - },{\"properties\":{\"roleName\":\"Azure Arc Kubernetes Viewer\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you view all resources in cluster/namespace,\ - \ except secrets.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Kubernetes/connectedClusters/*/read\"\ - ],\"notDataActions\":[\"Microsoft.Kubernetes/connectedClusters/secrets/read\"\ - ,\"Microsoft.Kubernetes/connectedClusters/clusterconfig.azure.com/azureclusteridentityrequests/read\"\ - ]}],\"createdOn\":\"2020-06-12T20:51:12.8801199Z\",\"updatedOn\":\"2020-06-12T20:51:12.8801199Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f0a09d-1495-4db4-a681-037d84835eb4\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"63f0a09d-1495-4db4-a681-037d84835eb4\"\ - },{\"properties\":{\"roleName\":\"Azure Arc Kubernetes Writer\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you update everything in cluster/namespace,\ - \ except (cluster)roles and (cluster)role bindings.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Kubernetes/connectedClusters/*/read\"\ - ,\"Microsoft.Kubernetes/connectedClusters/*/write\"],\"notDataActions\":[\"\ - Microsoft.Kubernetes/connectedClusters/rbac.authorization.k8s.io/*/read\"\ - ,\"Microsoft.Kubernetes/connectedClusters/rbac.authorization.k8s.io/*/write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/namespaces/write\",\"Microsoft.Kubernetes/connectedClusters/resourcequotas/write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/certificates.k8s.io/certificatesigningrequests/write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/policy/podsecuritypolicies/write\"\ - ]}],\"createdOn\":\"2020-06-12T20:53:50.6749823Z\",\"updatedOn\":\"2020-06-12T20:53:50.6749823Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5b999177-9696-4545-85c7-50de3797e5a1\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5b999177-9696-4545-85c7-50de3797e5a1\"\ - },{\"properties\":{\"roleName\":\"Azure Arc Kubernetes Cluster Admin\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you manage all resources in\ - \ the cluster.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Kubernetes/connectedClusters/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-06-12T20:55:30.9910462Z\",\"\ - updatedOn\":\"2020-06-12T20:55:30.9910462Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8393591c-06b9-48a2-a542-1bd6b377f6a2\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8393591c-06b9-48a2-a542-1bd6b377f6a2\"\ - },{\"properties\":{\"roleName\":\"Azure Arc Kubernetes Admin\",\"type\":\"\ - BuiltInRole\",\"description\":\"Lets you manage all resources under cluster/namespace,\ - \ except update or delete resource quotas and namespaces.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.Kubernetes/connectedClusters/*\"\ - ],\"notDataActions\":[\"Microsoft.Kubernetes/connectedClusters/resourcequotas/write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/resourcequotas/delete\",\"Microsoft.Kubernetes/connectedClusters/namespaces/write\"\ - ,\"Microsoft.Kubernetes/connectedClusters/namespaces/delete\"]}],\"createdOn\"\ - :\"2020-06-12T20:57:06.0391177Z\",\"updatedOn\":\"2020-06-12T20:57:06.0391177Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/dffb1e0c-446f-4dde-a09f-99eb5cc68b96\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"dffb1e0c-446f-4dde-a09f-99eb5cc68b96\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service RBAC Cluster Admin\"\ - ,\"type\":\"BuiltInRole\",\"description\":\"Lets you manage all resources\ - \ in the cluster.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.ContainerService/managedClusters/*\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-07-02T17:47:24.4071415Z\",\"\ - updatedOn\":\"2020-07-02T17:47:24.4071415Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service RBAC Admin\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you manage all resources under\ - \ cluster/namespace, except update or delete resource quotas and namespaces.\"\ - ,\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.ContainerService/managedClusters/*\"\ - ],\"notDataActions\":[\"Microsoft.ContainerService/managedClusters/resourcequotas/write\"\ - ,\"Microsoft.ContainerService/managedClusters/resourcequotas/delete\",\"Microsoft.ContainerService/managedClusters/namespaces/write\"\ - ,\"Microsoft.ContainerService/managedClusters/namespaces/delete\"]}],\"createdOn\"\ - :\"2020-07-02T17:50:30.4020311Z\",\"updatedOn\":\"2020-07-02T17:50:30.4020311Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3498e952-d568-435e-9b2c-8d77e338d7f7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3498e952-d568-435e-9b2c-8d77e338d7f7\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service RBAC Reader\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you view all resources in cluster/namespace,\ - \ except secrets.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\"\ - :[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"\ - Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Support/*\",\"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.ContainerService/managedClusters/*/read\"\ - ],\"notDataActions\":[\"Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/*/read\"\ - ,\"Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/*/write\"\ - ,\"Microsoft.ContainerService/managedClusters/secrets/*\"]}],\"createdOn\"\ - :\"2020-07-02T17:53:05.5728294Z\",\"updatedOn\":\"2020-07-07T16:40:37.2744607Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f6c6a51-bcf8-42ba-9220-52d62157d7db\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f6c6a51-bcf8-42ba-9220-52d62157d7db\"\ - },{\"properties\":{\"roleName\":\"Azure Kubernetes Service RBAC Writer\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you update everything in cluster/namespace,\ - \ except resource quotas, namespaces, pod security policies, certificate signing\ - \ requests, (cluster)roles and (cluster)role bindings.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\"\ - ,\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\"\ - ,\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\"\ - ,\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"\ - ,\"Microsoft.ContainerService/managedClusters/listClusterUserCredential/action\"\ - ],\"notActions\":[],\"dataActions\":[\"Microsoft.ContainerService/managedClusters/*/read\"\ - ,\"Microsoft.ContainerService/managedClusters/*/write\"],\"notDataActions\"\ - :[\"Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/*/read\"\ - ,\"Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/*/write\"\ - ,\"Microsoft.ContainerService/managedClusters/namespaces/write\",\"Microsoft.ContainerService/managedClusters/resourcequotas/write\"\ - ,\"Microsoft.ContainerService/managedClusters/certificates.k8s.io/certificatesigningrequests/write\"\ - ,\"Microsoft.ContainerService/managedClusters/policy/podsecuritypolicies/write\"\ - ]}],\"createdOn\":\"2020-07-02T17:54:51.9644983Z\",\"updatedOn\":\"2020-07-02T17:54:51.9644983Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb\"\ - },{\"properties\":{\"roleName\":\"Services Hub Operator\",\"type\":\"BuiltInRole\"\ - ,\"description\":\"Services Hub Operator allows you to perform all read, write,\ - \ and deletion operations related to Services Hub Connectors.\",\"assignableScopes\"\ - :[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ServicesHub/connectors/write\"\ - ,\"Microsoft.ServicesHub/connectors/read\",\"Microsoft.ServicesHub/connectors/delete\"\ - ,\"Microsoft.ServicesHub/supportOfferingEntitlement/read\",\"Microsoft.ServicesHub/connectors/checkAssessmentEntitlement/action\"\ - ,\"Microsoft.ServicesHub/workspaces/read\"],\"notActions\":[],\"dataActions\"\ - :[],\"notDataActions\":[]}],\"createdOn\":\"2020-07-20T17:57:22.0644902Z\"\ - ,\"updatedOn\":\"2020-07-20T19:51:17.2862100Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/82200a5b-e217-47a5-b665-6d8765ee745b\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"82200a5b-e217-47a5-b665-6d8765ee745b\"\ - },{\"properties\":{\"roleName\":\"Object Understanding Account Reader\",\"\ - type\":\"BuiltInRole\",\"description\":\"Lets you read ingestion jobs for\ - \ an object understanding account.\",\"assignableScopes\":[\"/\"],\"permissions\"\ - :[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/ObjectUnderstandingAccounts/ingest/read\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-07-23T19:16:31.9929119Z\",\"\ - updatedOn\":\"2020-07-23T19:16:31.9929119Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d18777c0-1514-4662-8490-608db7d334b6\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d18777c0-1514-4662-8490-608db7d334b6\"\ - },{\"properties\":{\"roleName\":\"Azure Arc Enabled Kubernetes Cluster User\ - \ Role\",\"type\":\"BuiltInRole\",\"description\":\"List cluster user credentials\ - \ action.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"\ - Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\"\ - ,\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"\ - ,\"Microsoft.Kubernetes/connectedClusters/listClusterUserCredentials/action\"\ - ],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\"\ - :\"2020-07-28T17:37:00.7637445Z\",\"updatedOn\":\"2020-07-28T17:37:00.7637445Z\"\ - ,\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00493d72-78f6-4148-b6c5-d3ce8e4799dd\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"00493d72-78f6-4148-b6c5-d3ce8e4799dd\"\ - },{\"properties\":{\"roleName\":\"SignalR App Server (Preview)\",\"type\"\ - :\"BuiltInRole\",\"description\":\"Lets your app server access SignalR Service\ - \ with AAD Auth options.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"\ - actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SignalRService/SignalR/service/accessKey/action\"\ - ],\"notDataActions\":[]}],\"createdOn\":\"2020-07-29T06:54:40.1201435Z\",\"\ - updatedOn\":\"2020-07-29T06:58:30.4756037Z\",\"createdBy\":null,\"updatedBy\"\ - :null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/420fcaa2-552c-430f-98ca-3264be4806c7\"\ - ,\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"420fcaa2-552c-430f-98ca-3264be4806c7\"\ - }]}" + string: "{\n \"name\": \"33cb98a6-9672-3643-9f26-7f2a6101296c\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-14T18:44:25.7524338Z\",\n \"\ + endTime\": \"2020-09-14T18:47:18.9893635Z\"\n }" headers: cache-control: - no-cache content-length: - - '219805' + - '170' content-type: - - application/json; charset=utf-8 + - application/json date: - - Wed, 29 Jul 2020 09:21:00 GMT + - Mon, 14 Sep 2020 18:47:29 GMT expires: - '-1' pragma: - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + server: + - nginx strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -4025,68 +1606,94 @@ interactions: code: 200 message: OK - request: - body: '{"objectIds": ["cd837cc3-329b-444a-9413-2b253995c502"], "includeDirectoryObjectReferences": - true}' + body: null headers: Accept: - application/json Accept-Encoding: - gzip, deflate CommandName: - - role assignment list + - aks create Connection: - keep-alive - Content-Length: - - '97' - Content-Type: - - application/json; charset=utf-8 ParameterSetName: - - --assignee --scope --role -o + - --resource-group --name --enable-managed-identity --generate-ssh-keys --vnet-subnet-id + -a --appgw-name --appgw-subnet-id -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.9.1 - accept-language: - - en-US - method: POST - uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/getObjectsByObjectIds?api-version=1.6 + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 response: body: - string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"cd837cc3-329b-444a-9413-2b253995c502","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":["isExplicit=True","/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ingressapplicationgateway-cliakstest000002"],"appDisplayName":null,"appId":"5bb3c89b-f781-402e-a3bf-a6f125b86dba","applicationTemplateId":null,"appOwnerTenantId":null,"appRoleAssignmentRequired":false,"appRoles":[],"displayName":"ingressapplicationgateway-cliakstest000002","errorUrl":null,"homepage":null,"informationalUrls":null,"keyCredentials":[{"customKeyIdentifier":"3525690278B7C0AB44E67D944AE63F20C3EB539D","endDate":"2020-10-27T09:12:00Z","keyId":"462aedc8-a244-44b2-8a50-85134ae5cab3","startDate":"2020-07-29T09:12:00Z","type":"AsymmetricX509Cert","usage":"Verify","value":null}],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":null,"replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["5bb3c89b-f781-402e-a3bf-a6f125b86dba","https://identity.azure.net/t1691gVMk2Gno3OpCA3K4naamRTv9YV2PQU5mVJZc6Y="],"servicePrincipalType":"ManagedIdentity","signInAudience":null,"tags":[],"tokenEncryptionKeyId":null}]}' + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestsngkewx6b-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestsngkewx6b-8ecadf-77a240c6.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"vnetSubnetID\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/aks-subnet\"\ + ,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\",\n \ + \ \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\":\ + \ \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.19\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c=\ + \ ace@ace-vm\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ingressapplicationgateway\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"applicationgatewayname\"\ + : \"gateway\",\n \"effectiveapplicationgatewayid\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/applicationGateways/gateway\"\ + ,\n \"subnetid\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/cliakstest000003/subnets/appgw-subnet\"\ + \n },\n \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ingressapplicationgateway-cliakstest000002\"\ + ,\n \"clientId\": \"0703895c-d8a5-4824-b48d-42908866d38f\",\n \"\ + objectId\": \"8c24a20f-69eb-4b5c-a6b9-58c2f4a136ca\"\n }\n },\n \ + \ \"kubedashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"24f0fa78-9814-44d6-b523-57fa4528822f\",\n \"\ + objectId\": \"13d67f4a-d010-43d1-b0c6-eb6a79a11a83\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/cbad3288-3435-44d2-9a8e-86d217df3fcd\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"2a44d0c9-5c7f-4d95-9b13-cd2d6f6c8130\",\n \"objectId\"\ + : \"2b070c97-9ce9-4c8e-93d8-380a9e6b1c22\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"aae8e521-e364-4492-9e0a-2ad49aa65bc4\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" headers: - access-control-allow-origin: - - '*' cache-control: - no-cache content-length: - - '1670' + - '4711' content-type: - - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 - dataserviceversion: - - 3.0; + - application/json date: - - Wed, 29 Jul 2020 09:21:00 GMT - duration: - - '663633' + - Mon, 14 Sep 2020 18:47:29 GMT expires: - '-1' - ocp-aad-diagnostics-server-name: - - UHO72ymxvaJinndi4MWQHmeC+HJA4P3Z7DCDrkhvO2Q= - ocp-aad-session-key: - - QXV_Od5NmPk_KKWUOHFuyM59foK9N5w0CwssoDlZjo7P4smNm3BXl_NDZT2_a0Bgx5YzW1LHAS0o3r6ifQtPXo-oAp3nMeUO6MUlq_JIIWKD0hLQb4LQBQH1_7DqsDy-.g7258OnDVzbUU1iakzNinBvCAVKW7olm_2LkIxC3p6Q pragma: - no-cache - request-id: - - 6562f53d-ccc9-41f4-b617-624690f10beb + server: + - nginx strict-transport-security: - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 - x-ms-dirapi-data-contract-version: - - '1.6' - x-ms-resource-unit: - - '3' - x-powered-by: - - ASP.NET + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff status: code: 200 message: OK diff --git a/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_confcom_addon.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_confcom_addon.yaml new file mode 100644 index 00000000000..2b7959b1c2a --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_confcom_addon.yaml @@ -0,0 +1,526 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-09T20:38:47Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 09 Sep 2020 20:38:50 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitestub4l3wzz7-8ecadf", "agentPoolProfiles": [{"count": 3, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH + bowa@microsoft.com\n"}]}}, "servicePrincipalProfile": {"clientId": "xxxx", "secret": + "yyyy"}, "addonProfiles": {"ACCSGXDevicePlugin": {"enabled": true, "config": + {"ACCSGXQuoteHelperEnabled": "true"}}}, "enableRBAC": true, "enablePodSecurityPolicy": + false, "networkProfile": {"networkPlugin": "kubenet", "podCidr": "10.244.0.0/16", + "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", "dockerBridgeCidr": + "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": "standard"}}, + "identity": {"type": "SystemAssigned"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1713' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestub4l3wzz7-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestub4l3wzz7-8ecadf-37fa1cae.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Creating\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.13\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"ACCSGXQuoteHelperEnabled\"\ + : \"true\"\n }\n },\n \"kubedashboard\": {\n \"enabled\": true,\n\ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ + ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ + ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ + loadBalancer\"\n },\n \"maxAgentPools\": 100\n },\n \"identity\": {\n\ + \ \"type\": \"SystemAssigned\",\n \"principalId\": \"9a99a6b8-d637-483a-aaee-eb7e6bc66cfd\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0ba3a38a-7c42-485b-ae19-91bde6c58102?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2888' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:38:58 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0ba3a38a-7c42-485b-ae19-91bde6c58102?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"8aa3a30b-427c-5b48-ae19-91bde6c58102\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T20:38:58.7149296Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:39:29 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0ba3a38a-7c42-485b-ae19-91bde6c58102?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"8aa3a30b-427c-5b48-ae19-91bde6c58102\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T20:38:58.7149296Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:39:59 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0ba3a38a-7c42-485b-ae19-91bde6c58102?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"8aa3a30b-427c-5b48-ae19-91bde6c58102\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T20:38:58.7149296Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:40:30 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0ba3a38a-7c42-485b-ae19-91bde6c58102?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"8aa3a30b-427c-5b48-ae19-91bde6c58102\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T20:38:58.7149296Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:41:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0ba3a38a-7c42-485b-ae19-91bde6c58102?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"8aa3a30b-427c-5b48-ae19-91bde6c58102\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T20:38:58.7149296Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:41:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0ba3a38a-7c42-485b-ae19-91bde6c58102?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"8aa3a30b-427c-5b48-ae19-91bde6c58102\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-09T20:38:58.7149296Z\",\n \"\ + endTime\": \"2020-09-09T20:41:53.4751615Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:42:02 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestub4l3wzz7-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestub4l3wzz7-8ecadf-37fa1cae.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.13\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"ACCSGXQuoteHelperEnabled\"\ + : \"true\"\n },\n \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/accsgxdeviceplugin-cliakstest000002\"\ + ,\n \"clientId\": \"5f52e14a-5d98-413f-8798-cc5bea06110d\",\n \"\ + objectId\": \"787afcce-0be2-44e2-a789-e4e5451f1393\"\n }\n },\n \ + \ \"kubedashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"613253e2-040a-448e-aecf-7ca2b7a2ad61\",\n \"\ + objectId\": \"81b35d9a-fb96-4c09-a063-854d17c292fa\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/0671c51a-18cd-4ffc-901b-8ab49fe20379\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"ac58970c-bb18-4eb8-bd89-b788c04655a8\",\n \"objectId\"\ + : \"469094bf-e8b0-49d2-9615-e06387f607c1\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"9a99a6b8-d637-483a-aaee-eb7e6bc66cfd\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '4292' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:42:03 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_confcom_addon_helper_disabled.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_confcom_addon_helper_disabled.yaml new file mode 100644 index 00000000000..d83a601d6ff --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_confcom_addon_helper_disabled.yaml @@ -0,0 +1,526 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a --disable-sgxquotehelper -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-09T20:43:48Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 09 Sep 2020 20:43:52 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitest2il4xz6nn-8ecadf", "agentPoolProfiles": [{"count": 3, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH + bowa@microsoft.com\n"}]}}, "servicePrincipalProfile": {"clientId": "xxxx", "secret": + "yyyy"}, "addonProfiles": {"ACCSGXDevicePlugin": {"enabled": true, "config": + {"ACCSGXQuoteHelperEnabled": "false"}}}, "enableRBAC": true, "enablePodSecurityPolicy": + false, "networkProfile": {"networkPlugin": "kubenet", "podCidr": "10.244.0.0/16", + "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", "dockerBridgeCidr": + "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": "standard"}}, + "identity": {"type": "SystemAssigned"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1714' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a --disable-sgxquotehelper -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitest2il4xz6nn-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitest2il4xz6nn-8ecadf-07202bce.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Creating\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.13\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"ACCSGXQuoteHelperEnabled\"\ + : \"false\"\n }\n },\n \"kubedashboard\": {\n \"enabled\": true,\n\ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ + ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ + ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ + loadBalancer\"\n },\n \"maxAgentPools\": 100\n },\n \"identity\": {\n\ + \ \"type\": \"SystemAssigned\",\n \"principalId\": \"8552edb4-cb25-4fee-88eb-75dca35a7bb3\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/be3ee497-8d71-445c-9a49-240be345419a?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2889' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:44:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a --disable-sgxquotehelper -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/be3ee497-8d71-445c-9a49-240be345419a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"97e43ebe-718d-5c44-9a49-240be345419a\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T20:44:00.7252274Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:44:31 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a --disable-sgxquotehelper -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/be3ee497-8d71-445c-9a49-240be345419a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"97e43ebe-718d-5c44-9a49-240be345419a\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T20:44:00.7252274Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:45:02 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a --disable-sgxquotehelper -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/be3ee497-8d71-445c-9a49-240be345419a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"97e43ebe-718d-5c44-9a49-240be345419a\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T20:44:00.7252274Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:45:33 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a --disable-sgxquotehelper -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/be3ee497-8d71-445c-9a49-240be345419a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"97e43ebe-718d-5c44-9a49-240be345419a\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T20:44:00.7252274Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:46:03 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a --disable-sgxquotehelper -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/be3ee497-8d71-445c-9a49-240be345419a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"97e43ebe-718d-5c44-9a49-240be345419a\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T20:44:00.7252274Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:46:35 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a --disable-sgxquotehelper -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/be3ee497-8d71-445c-9a49-240be345419a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"97e43ebe-718d-5c44-9a49-240be345419a\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-09T20:44:00.7252274Z\",\n \"\ + endTime\": \"2020-09-09T20:46:52.9437021Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:47:05 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a --disable-sgxquotehelper -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitest2il4xz6nn-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitest2il4xz6nn-8ecadf-07202bce.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.13\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"ACCSGXQuoteHelperEnabled\"\ + : \"false\"\n },\n \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/accsgxdeviceplugin-cliakstest000002\"\ + ,\n \"clientId\": \"810e1a7e-f790-4d64-a5cf-cbb380027c06\",\n \"\ + objectId\": \"29a57e1e-45bf-4752-a267-030dfba68e38\"\n }\n },\n \ + \ \"kubedashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"0ba588a5-59fd-466c-8b1b-dbebfe999674\",\n \"\ + objectId\": \"ce755238-3fbd-485a-9a79-a37fb0f7e6e6\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/32256aa1-b12a-4f74-b625-3588d4bb54c5\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"64ce816a-95ae-45be-a4b0-67307c1c8166\",\n \"objectId\"\ + : \"da2e8b6f-cbc1-4db9-a6b0-447ad7f0f9bd\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"8552edb4-cb25-4fee-88eb-75dca35a7bb3\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '4293' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 20:47:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_ephemeral_disk.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_ephemeral_disk.yaml new file mode 100644 index 00000000000..b4cac90bf75 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_ephemeral_disk.yaml @@ -0,0 +1,521 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + --node-osdisk-size + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-14T17:40:54Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 14 Sep 2020 17:40:56 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitestpnimdrw2z-864302", "agentPoolProfiles": [{"count": 1, "vmSize": + "Standard_DS2_v2", "osDiskSizeGB": 60, "osDiskType": "Ephemeral", "osType": + "Linux", "type": "VirtualMachineScaleSets", "mode": "System", "enableNodePublicIP": + false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": "Delete", "name": + "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", "ssh": {"publicKeys": + [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c= + ace@ace-vm\n"}]}}, "servicePrincipalProfile": {"clientId": "49c58396-4163-435a-a81e-b49d845958a4", + "secret": "51426b876017d40ef3ca$"}, "addonProfiles": {}, "enableRBAC": true, + "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": "kubenet", + "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", + "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": + "standard"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1498' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + --node-osdisk-size + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestpnimdrw2z-864302\",\n \"fqdn\"\ + : \"cliakstest-clitestpnimdrw2z-864302-1bdca133.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 60,\n \"osDiskType\": \"Ephemeral\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Creating\"\ + ,\n \"orchestratorVersion\": \"1.16.13\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.08.19\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c=\ + \ ace@ace-vm\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"49c58396-4163-435a-a81e-b49d845958a4\"\n },\n \ + \ \"addonProfiles\": {\n \"kubedashboard\": {\n \"enabled\": true,\n\ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ + ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ + ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ + loadBalancer\"\n },\n \"maxAgentPools\": 10\n },\n \"sku\": {\n \"\ + name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6ca16c3c-8427-4a6c-98c8-1323235ff303?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2453' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:41:00 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + --node-osdisk-size + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6ca16c3c-8427-4a6c-98c8-1323235ff303?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3c6ca16c-2784-6c4a-98c8-1323235ff303\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T17:41:00.8880782Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:41:30 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + --node-osdisk-size + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6ca16c3c-8427-4a6c-98c8-1323235ff303?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3c6ca16c-2784-6c4a-98c8-1323235ff303\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T17:41:00.8880782Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:42:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + --node-osdisk-size + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6ca16c3c-8427-4a6c-98c8-1323235ff303?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3c6ca16c-2784-6c4a-98c8-1323235ff303\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T17:41:00.8880782Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:42:31 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + --node-osdisk-size + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6ca16c3c-8427-4a6c-98c8-1323235ff303?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3c6ca16c-2784-6c4a-98c8-1323235ff303\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T17:41:00.8880782Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:43:02 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + --node-osdisk-size + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6ca16c3c-8427-4a6c-98c8-1323235ff303?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3c6ca16c-2784-6c4a-98c8-1323235ff303\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T17:41:00.8880782Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:43:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + --node-osdisk-size + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6ca16c3c-8427-4a6c-98c8-1323235ff303?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3c6ca16c-2784-6c4a-98c8-1323235ff303\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-14T17:41:00.8880782Z\",\n \"\ + endTime\": \"2020-09-14T17:44:03.0156139Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:44:03 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + --node-osdisk-size + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestpnimdrw2z-864302\",\n \"fqdn\"\ + : \"cliakstest-clitestpnimdrw2z-864302-1bdca133.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 60,\n \"osDiskType\": \"Ephemeral\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.16.13\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.08.19\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c=\ + \ ace@ace-vm\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"49c58396-4163-435a-a81e-b49d845958a4\"\n },\n \ + \ \"addonProfiles\": {\n \"kubedashboard\": {\n \"enabled\": true,\n\ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"Standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n },\n \"effectiveOutboundIPs\": [\n \ + \ {\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/cb544cc0-bf60-48f2-9d0c-563a08c96d07\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"sku\": {\n \"name\": \"Basic\",\n \"tier\"\ + : \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '2721' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:44:03 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_ingress_appgw_addon.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_ingress_appgw_addon.yaml index 45dd0b8efe2..4d04bd40f8d 100644 --- a/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_ingress_appgw_addon.yaml +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_ingress_appgw_addon.yaml @@ -14,15 +14,15 @@ interactions: - --resource-group --name --enable-managed-identity --service-principal --client-secret --generate-ssh-keys -a --appgw-subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-07-29T09:26:55Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-09T19:39:44Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -31,7 +31,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 29 Jul 2020 09:26:55 GMT + - Wed, 09 Sep 2020 19:39:47 GMT expires: - '-1' pragma: @@ -47,17 +47,18 @@ interactions: message: OK - request: body: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": - "cliakstest-clitesthomrfh74c-26fe00", "agentPoolProfiles": [{"count": 3, "vmSize": + "cliakstest-clitestgjo364bja-8ecadf", "agentPoolProfiles": [{"count": 3, "vmSize": "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", - "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7"}]}}, - "servicePrincipalProfile": {"clientId": "xxxx", "secret": "yyyy"}, "addonProfiles": - {"IngressApplicationGateway": {"enabled": true, "config": {"subnetPrefix": "10.2.0.0/16"}}}, - "enableRBAC": true, "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": - "kubenet", "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": - "10.0.0.10", "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", - "loadBalancerSku": "standard"}}, "identity": {"type": "SystemAssigned"}}' + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7 + "}]}}, "servicePrincipalProfile": {"clientId": "xxxx", + "secret": "yyyy"}, "addonProfiles": {"IngressApplicationGateway": {"enabled": + true, "config": {"subnetPrefix": "10.2.0.0/16"}}}, "enableRBAC": true, "enablePodSecurityPolicy": + false, "networkProfile": {"networkPlugin": "kubenet", "podCidr": "10.244.0.0/16", + "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", "dockerBridgeCidr": + "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": "standard"}}, + "identity": {"type": "SystemAssigned"}}' headers: Accept: - application/json @@ -68,42 +69,42 @@ interactions: Connection: - keep-alive Content-Length: - - '1346' + - '1715' Content-Type: - application/json; charset=utf-8 ParameterSetName: - --resource-group --name --enable-managed-identity --service-principal --client-secret --generate-ssh-keys -a --appgw-subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 response: body: string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ - ,\n \"dnsPrefix\": \"cliakstest-clitesthomrfh74c-26fe00\",\n \"fqdn\"\ - : \"cliakstest-clitesthomrfh74c-26fe00-0e93dace.hcp.westus2.staging.azmk8s.io\"\ - ,\n \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \ - \ \"count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ - : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ - ,\n \"provisioningState\": \"Creating\",\n \"orchestratorVersion\"\ - : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ - \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ - : \"AKSUbuntu-1604-2020.07.16\"\n }\n ],\n \"linuxProfile\": {\n \ - \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ - : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7\"\ - \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ - clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"IngressApplicationGateway\"\ - : {\n \"enabled\": true,\n \"config\": {\n \"effectiveApplicationGatewayId\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestgjo364bja-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestgjo364bja-8ecadf-da6ec1e2.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Creating\"\ + ,\n \"orchestratorVersion\": \"1.16.13\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.08.19\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7\ + \ \\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ingressapplicationgateway\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"effectiveapplicationgatewayid\"\ : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/applicationGateways/applicationgateway\"\ - ,\n \"subnetPrefix\": \"10.2.0.0/16\"\n }\n },\n \"KubeDashboard\"\ + ,\n \"subnetprefix\": \"10.2.0.0/16\"\n }\n },\n \"kubedashboard\"\ : {\n \"enabled\": true,\n \"config\": null\n }\n },\n \"nodeResourceGroup\"\ : \"MC_clitest000001_cliakstest000002_westus2\",\n \"enableRBAC\": true,\n\ \ \"enablePodSecurityPolicy\": false,\n \"networkProfile\": {\n \"\ @@ -112,21 +113,21 @@ interactions: : 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ - maxAgentPools\": 10\n },\n \"identity\": {\n \"type\": \"SystemAssigned\"\ - ,\n \"principalId\": \"85b35516-93eb-404e-a90f-aff12a640edd\",\n \"tenantId\"\ + maxAgentPools\": 100\n },\n \"identity\": {\n \"type\": \"SystemAssigned\"\ + ,\n \"principalId\": \"fd12b014-74c6-4931-9234-c4a149a54f97\",\n \"tenantId\"\ : \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\": {\n \"name\"\ : \"Basic\",\n \"tier\": \"Free\"\n }\n }" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0cb53f43-0bb6-41fc-a065-b9d86543d209?api-version=2016-03-30 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/38b68b3f-8bb3-4dd9-a361-177b4da4e599?api-version=2016-03-30 cache-control: - no-cache content-length: - - '2720' + - '3112' content-type: - application/json date: - - Wed, 29 Jul 2020 09:27:05 GMT + - Wed, 09 Sep 2020 19:39:57 GMT expires: - '-1' pragma: @@ -157,24 +158,23 @@ interactions: - --resource-group --name --enable-managed-identity --service-principal --client-secret --generate-ssh-keys -a --appgw-subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0cb53f43-0bb6-41fc-a065-b9d86543d209?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/38b68b3f-8bb3-4dd9-a361-177b4da4e599?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"433fb50c-b60b-fc41-a065-b9d86543d209\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:27:05.4051987Z\"\n }" + string: "{\n \"name\": \"3f8bb638-b38b-d94d-a361-177b4da4e599\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T19:39:58.234348Z\"\n }" headers: cache-control: - no-cache content-length: - - '126' + - '125' content-type: - application/json date: - - Wed, 29 Jul 2020 09:27:35 GMT + - Wed, 09 Sep 2020 19:40:28 GMT expires: - '-1' pragma: @@ -207,24 +207,23 @@ interactions: - --resource-group --name --enable-managed-identity --service-principal --client-secret --generate-ssh-keys -a --appgw-subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0cb53f43-0bb6-41fc-a065-b9d86543d209?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/38b68b3f-8bb3-4dd9-a361-177b4da4e599?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"433fb50c-b60b-fc41-a065-b9d86543d209\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:27:05.4051987Z\"\n }" + string: "{\n \"name\": \"3f8bb638-b38b-d94d-a361-177b4da4e599\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T19:39:58.234348Z\"\n }" headers: cache-control: - no-cache content-length: - - '126' + - '125' content-type: - application/json date: - - Wed, 29 Jul 2020 09:28:06 GMT + - Wed, 09 Sep 2020 19:40:59 GMT expires: - '-1' pragma: @@ -257,24 +256,23 @@ interactions: - --resource-group --name --enable-managed-identity --service-principal --client-secret --generate-ssh-keys -a --appgw-subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0cb53f43-0bb6-41fc-a065-b9d86543d209?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/38b68b3f-8bb3-4dd9-a361-177b4da4e599?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"433fb50c-b60b-fc41-a065-b9d86543d209\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:27:05.4051987Z\"\n }" + string: "{\n \"name\": \"3f8bb638-b38b-d94d-a361-177b4da4e599\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T19:39:58.234348Z\"\n }" headers: cache-control: - no-cache content-length: - - '126' + - '125' content-type: - application/json date: - - Wed, 29 Jul 2020 09:28:36 GMT + - Wed, 09 Sep 2020 19:41:29 GMT expires: - '-1' pragma: @@ -307,24 +305,23 @@ interactions: - --resource-group --name --enable-managed-identity --service-principal --client-secret --generate-ssh-keys -a --appgw-subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0cb53f43-0bb6-41fc-a065-b9d86543d209?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/38b68b3f-8bb3-4dd9-a361-177b4da4e599?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"433fb50c-b60b-fc41-a065-b9d86543d209\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:27:05.4051987Z\"\n }" + string: "{\n \"name\": \"3f8bb638-b38b-d94d-a361-177b4da4e599\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T19:39:58.234348Z\"\n }" headers: cache-control: - no-cache content-length: - - '126' + - '125' content-type: - application/json date: - - Wed, 29 Jul 2020 09:29:07 GMT + - Wed, 09 Sep 2020 19:42:01 GMT expires: - '-1' pragma: @@ -357,24 +354,23 @@ interactions: - --resource-group --name --enable-managed-identity --service-principal --client-secret --generate-ssh-keys -a --appgw-subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0cb53f43-0bb6-41fc-a065-b9d86543d209?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/38b68b3f-8bb3-4dd9-a361-177b4da4e599?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"433fb50c-b60b-fc41-a065-b9d86543d209\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:27:05.4051987Z\"\n }" + string: "{\n \"name\": \"3f8bb638-b38b-d94d-a361-177b4da4e599\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T19:39:58.234348Z\"\n }" headers: cache-control: - no-cache content-length: - - '126' + - '125' content-type: - application/json date: - - Wed, 29 Jul 2020 09:29:37 GMT + - Wed, 09 Sep 2020 19:42:32 GMT expires: - '-1' pragma: @@ -407,24 +403,23 @@ interactions: - --resource-group --name --enable-managed-identity --service-principal --client-secret --generate-ssh-keys -a --appgw-subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0cb53f43-0bb6-41fc-a065-b9d86543d209?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/38b68b3f-8bb3-4dd9-a361-177b4da4e599?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"433fb50c-b60b-fc41-a065-b9d86543d209\",\n \"status\"\ - : \"InProgress\",\n \"startTime\": \"2020-07-29T09:27:05.4051987Z\"\n }" + string: "{\n \"name\": \"3f8bb638-b38b-d94d-a361-177b4da4e599\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T19:39:58.234348Z\"\n }" headers: cache-control: - no-cache content-length: - - '126' + - '125' content-type: - application/json date: - - Wed, 29 Jul 2020 09:30:07 GMT + - Wed, 09 Sep 2020 19:43:02 GMT expires: - '-1' pragma: @@ -457,25 +452,24 @@ interactions: - --resource-group --name --enable-managed-identity --service-principal --client-secret --generate-ssh-keys -a --appgw-subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/0cb53f43-0bb6-41fc-a065-b9d86543d209?api-version=2016-03-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/38b68b3f-8bb3-4dd9-a361-177b4da4e599?api-version=2016-03-30 response: body: - string: "{\n \"name\": \"433fb50c-b60b-fc41-a065-b9d86543d209\",\n \"status\"\ - : \"Succeeded\",\n \"startTime\": \"2020-07-29T09:27:05.4051987Z\",\n \"\ - endTime\": \"2020-07-29T09:30:35.7929904Z\"\n }" + string: "{\n \"name\": \"3f8bb638-b38b-d94d-a361-177b4da4e599\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-09T19:39:58.234348Z\",\n \"\ + endTime\": \"2020-09-09T19:43:04.2130033Z\"\n }" headers: cache-control: - no-cache content-length: - - '170' + - '169' content-type: - application/json date: - - Wed, 29 Jul 2020 09:30:37 GMT + - Wed, 09 Sep 2020 19:43:33 GMT expires: - '-1' pragma: @@ -508,65 +502,65 @@ interactions: - --resource-group --name --enable-managed-identity --service-principal --client-secret --generate-ssh-keys -a --appgw-subnet-prefix -o User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 response: body: string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ - ,\n \"dnsPrefix\": \"cliakstest-clitesthomrfh74c-26fe00\",\n \"fqdn\"\ - : \"cliakstest-clitesthomrfh74c-26fe00-0e93dace.hcp.westus2.staging.azmk8s.io\"\ - ,\n \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \ - \ \"count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ - : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ - ,\n \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\"\ - : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ - \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ - : \"AKSUbuntu-1604-2020.07.16\"\n }\n ],\n \"linuxProfile\": {\n \ - \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ - : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7\"\ - \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ - clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"IngressApplicationGateway\"\ - : {\n \"enabled\": true,\n \"config\": {\n \"effectiveApplicationGatewayId\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestgjo364bja-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestgjo364bja-8ecadf-da6ec1e2.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.16.13\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.08.19\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSlNNOwMw6aHvdkhUaMmfkjt19xPFa162alrqWaTFan0f864FGHVcSvXUvRBLeRj+x2RMlqr1TR6y73x07vqbaVApfssn52ROE3eKoX2cmez+EMaM19n2BzQLhr1lR/LkixeCM03/hYb3j16uaYeZ+zY060RdnVmPWVhslRRXmst+8cD3EXUkxdzmUa+J03nLyO8nqfCTKUltePz0FQ4IymD8ewa+sWgUlRKBwgoUBh35BFRAGq//OXuHFw6sowEIxwb5KSar4c2SHcewbSbuVFpWR7uhpYLXPJoISeASejQ4nfg+DlIbIf6mNwnLcqrHy6bwmwYeS36TUMHoxbCa7\ + \ \\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ingressapplicationgateway\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"effectiveapplicationgatewayid\"\ : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/applicationGateways/applicationgateway\"\ - ,\n \"subnetPrefix\": \"10.2.0.0/16\"\n },\n \"identity\": {\n\ + ,\n \"subnetprefix\": \"10.2.0.0/16\"\n },\n \"identity\": {\n\ \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ingressapplicationgateway-cliakstest000002\"\ - ,\n \"clientId\": \"0f17ff95-956f-4d7b-ae48-7587e63379c0\",\n \"\ - objectId\": \"17176778-e51c-493b-a1df-14823af3e1be\"\n }\n },\n \ - \ \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ + ,\n \"clientId\": \"fb9ce780-76d3-4e35-89d0-dbeb05070fde\",\n \"\ + objectId\": \"cdcf8e12-778f-4898-9b29-53108596de4a\"\n }\n },\n \ + \ \"kubedashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ - ,\n \"clientId\": \"872c0a71-4df9-4f35-9251-e44630f26c0c\",\n \"\ - objectId\": \"d44a7ac9-97a2-4f12-95cf-3a04651eaf2a\"\n }\n }\n },\n\ + ,\n \"clientId\": \"8d51d46e-756f-40fe-8dd6-e25a777a5821\",\n \"\ + objectId\": \"7ea49cde-1b0c-4ec1-8b8a-e9996197b056\"\n }\n }\n },\n\ \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ - id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/53870f3f-14d3-41dc-89e2-2dc62eec8225\"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/03b9359d-faea-4c8d-b76d-4346fbce2b02\"\ \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ - maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ - \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ - ,\n \"clientId\": \"61e9b6ea-107f-4f34-8351-c9b64db60c68\",\n \"objectId\"\ - : \"14cc5569-5402-427d-8e40-49ca444d39a9\"\n }\n }\n },\n \"identity\"\ - : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"85b35516-93eb-404e-a90f-aff12a640edd\"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"caa7dd39-e4c5-4c0b-be72-7dd22eb6dc4e\",\n \"objectId\"\ + : \"8bc238eb-a02f-4822-9876-a213a3024fd0\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"fd12b014-74c6-4931-9234-c4a149a54f97\"\ ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" headers: cache-control: - no-cache content-length: - - '4131' + - '4523' content-type: - application/json date: - - Wed, 29 Jul 2020 09:30:38 GMT + - Wed, 09 Sep 2020 19:43:34 GMT expires: - '-1' pragma: diff --git a/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_managed_disk.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_managed_disk.yaml new file mode 100644 index 00000000000..64e041fef87 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_managed_disk.yaml @@ -0,0 +1,462 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-14T17:40:54Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 14 Sep 2020 17:40:56 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitestj6n4njmhb-864302", "agentPoolProfiles": [{"count": 1, "vmSize": + "Standard_DS2_v2", "osDiskType": "Managed", "osType": "Linux", "type": "VirtualMachineScaleSets", + "mode": "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", + "scaleSetEvictionPolicy": "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": + "azureuser", "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c= + ace@ace-vm\n"}]}}, "servicePrincipalProfile": {"clientId": "49c58396-4163-435a-a81e-b49d845958a4", + "secret": "51426b876017d40ef3ca$"}, "addonProfiles": {}, "enableRBAC": true, + "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": "kubenet", + "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", + "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": + "standard"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1476' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestj6n4njmhb-864302\",\n \"fqdn\"\ + : \"cliakstest-clitestj6n4njmhb-864302-0d9d2e0e.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Creating\"\ + ,\n \"orchestratorVersion\": \"1.16.13\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.08.19\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c=\ + \ ace@ace-vm\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"49c58396-4163-435a-a81e-b49d845958a4\"\n },\n \ + \ \"addonProfiles\": {\n \"kubedashboard\": {\n \"enabled\": true,\n\ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ + ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ + ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ + loadBalancer\"\n },\n \"maxAgentPools\": 10\n },\n \"sku\": {\n \"\ + name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/234fd308-8739-42c0-b954-0cbc98643e02?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2452' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:41:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/234fd308-8739-42c0-b954-0cbc98643e02?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"08d34f23-3987-c042-b954-0cbc98643e02\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T17:41:01.653709Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '125' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:41:31 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/234fd308-8739-42c0-b954-0cbc98643e02?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"08d34f23-3987-c042-b954-0cbc98643e02\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T17:41:01.653709Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '125' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:42:02 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/234fd308-8739-42c0-b954-0cbc98643e02?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"08d34f23-3987-c042-b954-0cbc98643e02\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T17:41:01.653709Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '125' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:42:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/234fd308-8739-42c0-b954-0cbc98643e02?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"08d34f23-3987-c042-b954-0cbc98643e02\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-14T17:41:01.653709Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '125' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:43:02 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/234fd308-8739-42c0-b954-0cbc98643e02?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"08d34f23-3987-c042-b954-0cbc98643e02\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-14T17:41:01.653709Z\",\n \"\ + endTime\": \"2020-09-14T17:43:30.6844782Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '169' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:43:33 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --generate-ssh-keys --vm-set-type -c --node-osdisk-type + User-Agent: + - python/3.7.9 (Linux-5.4.0-37-generic-x86_64-with-Ubuntu-20.04-focal) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestj6n4njmhb-864302\",\n \"fqdn\"\ + : \"cliakstest-clitestj6n4njmhb-864302-0d9d2e0e.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.16.13\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.08.19\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiauQ12ac/8uBhdsGAE1swCUGZ1LHSEYXVulGl/bpdSRfE5P44hMcdw7rAfwgZ/XKzS330iiJcI/FOKYtkLCCdYQWB5qUZu3t+mfwIFakrsUeYb/XrT/ZNDrzd/LLYBxDvsV/2oxxBsK0xkCOUI6ZrbpNQnw8ChM1AiS9Q2YUQglF6iPCKLLnUp+X7HJH0j4RYxgOU/lDKEpH4Bef99eRezzqCPQIynSL9488EYjEbMoB+dJ36o1tcjNO4SsivATAN6xYhQP+coTVKWMwxwssfwfc7FXpS967W+ep3cntz9pAjrgzWLLsamldEFkrJ8+F2Gm8ZtQ1fKnYf8lbTI0T9PxtKblpxhcVcdeYfMUzDAGyk3yFqbtOwZsiAps9qBvYzA8SSVCOcnhTEvlenSRl3x5f08+dbp0PjwstsoLyj/BPD82JjkeiYI5nedlzX+XVXTpPoFbR2NDhwcG8ftS/kE1Ebw8wp5s6cnI2pSHYQ4epkvYhQx+AgDmXOav5tF8c=\ + \ ace@ace-vm\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"49c58396-4163-435a-a81e-b49d845958a4\"\n },\n \ + \ \"addonProfiles\": {\n \"kubedashboard\": {\n \"enabled\": true,\n\ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"Standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n },\n \"effectiveOutboundIPs\": [\n \ + \ {\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/3413ba44-66a5-4f87-8ffa-fe5d11445d4f\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"sku\": {\n \"name\": \"Basic\",\n \"tier\"\ + : \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '2720' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 17:43:33 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_openservicemesh_addon.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_openservicemesh_addon.yaml new file mode 100644 index 00000000000..bd4794857ee --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_create_with_openservicemesh_addon.yaml @@ -0,0 +1,536 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python + AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-28T18:34:09Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 28 Sep 2020 18:34:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitesth6i34xq5k-1eca05", "agentPoolProfiles": [{"count": 3, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw== + shashank08@gmail.com\n"}]}}, "servicePrincipalProfile": {"clientId": "xxxx", + "secret": "yyyy"}, "addonProfiles": {"openServiceMesh": {"enabled": true, "config": + {}}}, "enableRBAC": true, "enablePodSecurityPolicy": false, "networkProfile": + {"networkPlugin": "kubenet", "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", "dockerBridgeCidr": "172.17.0.1/16", "outboundType": + "loadBalancer", "loadBalancerSku": "standard"}}, "identity": {"type": "SystemAssigned"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1674' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitesth6i34xq5k-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitesth6i34xq5k-1eca05-c5271064.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Creating\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null\n },\n \"openServiceMesh\"\ + : {\n \"enabled\": true,\n \"config\": {}\n }\n },\n \"nodeResourceGroup\"\ + : \"MC_clitest000001_cliakstest000002_westus2\",\n \"enableRBAC\": true,\n\ + \ \"enablePodSecurityPolicy\": false,\n \"networkProfile\": {\n \"\ + networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"standard\",\n \ + \ \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"count\"\ + : 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"identity\": {\n \"type\": \"SystemAssigned\"\ + ,\n \"principalId\": \"a714374d-5a3d-4dab-b130-738f968e9887\",\n \"tenantId\"\ + : \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\": {\n \"name\"\ + : \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/dc7da49c-cf95-436f-b8b4-f6b3ca08a218?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2835' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:34:28 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/dc7da49c-cf95-436f-b8b4-f6b3ca08a218?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"9ca47ddc-95cf-6f43-b8b4-f6b3ca08a218\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:28.5842588Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:34:59 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/dc7da49c-cf95-436f-b8b4-f6b3ca08a218?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"9ca47ddc-95cf-6f43-b8b4-f6b3ca08a218\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:28.5842588Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:35:30 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/dc7da49c-cf95-436f-b8b4-f6b3ca08a218?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"9ca47ddc-95cf-6f43-b8b4-f6b3ca08a218\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:28.5842588Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:36:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/dc7da49c-cf95-436f-b8b4-f6b3ca08a218?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"9ca47ddc-95cf-6f43-b8b4-f6b3ca08a218\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:28.5842588Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:36:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/dc7da49c-cf95-436f-b8b4-f6b3ca08a218?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"9ca47ddc-95cf-6f43-b8b4-f6b3ca08a218\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:28.5842588Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:37:02 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/dc7da49c-cf95-436f-b8b4-f6b3ca08a218?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"9ca47ddc-95cf-6f43-b8b4-f6b3ca08a218\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-28T18:34:28.5842588Z\",\n \"\ + endTime\": \"2020-09-28T18:37:31.0302268Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:37:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitesth6i34xq5k-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitesth6i34xq5k-1eca05-c5271064.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null,\n \"identity\": {\n\ + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"8ec936e6-69cd-405a-9fbd-c94d5d762c7a\",\n \"\ + objectId\": \"9ad21243-0666-44a9-82d3-b2c0df33728b\"\n }\n },\n \ + \ \"openServiceMesh\": {\n \"enabled\": true,\n \"config\": {},\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/openservicemesh-cliakstest000002\"\ + ,\n \"clientId\": \"7d87fb42-87f7-406d-9d3f-eb6289347233\",\n \"\ + objectId\": \"42d04353-a073-44ba-93ef-b1361ab6f366\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/63c8ac88-e9ba-4e3c-a2a4-8cdcb2bec6e3\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ + \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"39966549-475a-4381-8173-359c82047a61\",\n \"objectId\"\ + : \"216fa5cd-61b9-42b1-90bf-ead4bcfe0d11\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"a714374d-5a3d-4dab-b130-738f968e9887\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '4236' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:37:33 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_disable_addon_openservicemesh.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_disable_addon_openservicemesh.yaml new file mode 100644 index 00000000000..95f4d2cef6b --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_disable_addon_openservicemesh.yaml @@ -0,0 +1,1070 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python + AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-28T18:34:09Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 28 Sep 2020 18:34:16 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitestes3hz74vn-1eca05", "agentPoolProfiles": [{"count": 3, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw== + shashank08@gmail.com\n"}]}}, "servicePrincipalProfile": {"clientId": "xxxx", + "secret": "yyyy"}, "addonProfiles": {"openServiceMesh": {"enabled": true, "config": + {}}}, "enableRBAC": true, "enablePodSecurityPolicy": false, "networkProfile": + {"networkPlugin": "kubenet", "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", "dockerBridgeCidr": "172.17.0.1/16", "outboundType": + "loadBalancer", "loadBalancerSku": "standard"}}, "identity": {"type": "SystemAssigned"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1674' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestes3hz74vn-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitestes3hz74vn-1eca05-527f1806.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Creating\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null\n },\n \"openServiceMesh\"\ + : {\n \"enabled\": true,\n \"config\": {}\n }\n },\n \"nodeResourceGroup\"\ + : \"MC_clitest000001_cliakstest000002_westus2\",\n \"enableRBAC\": true,\n\ + \ \"enablePodSecurityPolicy\": false,\n \"networkProfile\": {\n \"\ + networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"standard\",\n \ + \ \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"count\"\ + : 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"identity\": {\n \"type\": \"SystemAssigned\"\ + ,\n \"principalId\": \"2f68a3a0-3044-4e5e-a14e-cd02e8afd8ca\",\n \"tenantId\"\ + : \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\": {\n \"name\"\ + : \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c9ed6041-d04c-43a6-9ce6-997bbe915bd6?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2835' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:34:28 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c9ed6041-d04c-43a6-9ce6-997bbe915bd6?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"4160edc9-4cd0-a643-9ce6-997bbe915bd6\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:27.9904779Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:34:59 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c9ed6041-d04c-43a6-9ce6-997bbe915bd6?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"4160edc9-4cd0-a643-9ce6-997bbe915bd6\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:27.9904779Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:35:30 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c9ed6041-d04c-43a6-9ce6-997bbe915bd6?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"4160edc9-4cd0-a643-9ce6-997bbe915bd6\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:27.9904779Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:36:00 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c9ed6041-d04c-43a6-9ce6-997bbe915bd6?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"4160edc9-4cd0-a643-9ce6-997bbe915bd6\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:27.9904779Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:36:31 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c9ed6041-d04c-43a6-9ce6-997bbe915bd6?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"4160edc9-4cd0-a643-9ce6-997bbe915bd6\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:27.9904779Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:37:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c9ed6041-d04c-43a6-9ce6-997bbe915bd6?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"4160edc9-4cd0-a643-9ce6-997bbe915bd6\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:27.9904779Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:37:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c9ed6041-d04c-43a6-9ce6-997bbe915bd6?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"4160edc9-4cd0-a643-9ce6-997bbe915bd6\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:27.9904779Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:38:03 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c9ed6041-d04c-43a6-9ce6-997bbe915bd6?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"4160edc9-4cd0-a643-9ce6-997bbe915bd6\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-28T18:34:27.9904779Z\",\n \"\ + endTime\": \"2020-09-28T18:38:06.8995299Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:38:33 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestes3hz74vn-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitestes3hz74vn-1eca05-527f1806.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null,\n \"identity\": {\n\ + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"2d288811-892d-4d0e-a823-34216a7d283d\",\n \"\ + objectId\": \"4db2c4a1-c289-4953-9999-f2fb60b70391\"\n }\n },\n \ + \ \"openServiceMesh\": {\n \"enabled\": true,\n \"config\": {},\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/openservicemesh-cliakstest000002\"\ + ,\n \"clientId\": \"3c48cfca-d0c3-41e6-8dc1-7d43075014fd\",\n \"\ + objectId\": \"283bd386-e782-4f0e-98c3-70c7114a2520\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/2a20ba59-d80d-4f2d-8414-2bfc843a9818\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ + \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"b1fa936c-76d8-444f-b62f-542be8dd2fe4\",\n \"objectId\"\ + : \"a2ce33c2-59df-4cde-872e-96cc6d0665ce\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"2f68a3a0-3044-4e5e-a14e-cd02e8afd8ca\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '4236' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:38:35 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestes3hz74vn-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitestes3hz74vn-1eca05-527f1806.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null,\n \"identity\": {\n\ + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"2d288811-892d-4d0e-a823-34216a7d283d\",\n \"\ + objectId\": \"4db2c4a1-c289-4953-9999-f2fb60b70391\"\n }\n },\n \ + \ \"openServiceMesh\": {\n \"enabled\": true,\n \"config\": {},\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/openservicemesh-cliakstest000002\"\ + ,\n \"clientId\": \"3c48cfca-d0c3-41e6-8dc1-7d43075014fd\",\n \"\ + objectId\": \"283bd386-e782-4f0e-98c3-70c7114a2520\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/2a20ba59-d80d-4f2d-8414-2bfc843a9818\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ + \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"b1fa936c-76d8-444f-b62f-542be8dd2fe4\",\n \"objectId\"\ + : \"a2ce33c2-59df-4cde-872e-96cc6d0665ce\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"2f68a3a0-3044-4e5e-a14e-cd02e8afd8ca\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '4236' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:38:35 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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": {"kubernetesVersion": "1.17.11", + "dnsPrefix": "cliakstest-clitestes3hz74vn-1eca05", "agentPoolProfiles": [{"count": + 3, "vmSize": "Standard_DS2_v2", "osDiskSizeGB": 128, "osDiskType": "Managed", + "maxPods": 110, "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "orchestratorVersion": "1.17.11", "enableNodePublicIP": false, "nodeLabels": + {}, "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", "ssh": + {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw== + shashank08@gmail.com\n"}]}}, "addonProfiles": {"KubeDashboard": {"enabled": + true}, "openServiceMesh": {"enabled": false}}, "nodeResourceGroup": "MC_clitest000001_cliakstest000002_westus2", + "enableRBAC": true, "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": + "kubenet", "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": + "10.0.0.10", "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", + "loadBalancerSku": "Standard", "loadBalancerProfile": {"managedOutboundIPs": + {"count": 1}, "effectiveOutboundIPs": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/2a20ba59-d80d-4f2d-8414-2bfc843a9818"}]}}, + "identityProfile": {"kubeletidentity": {"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool", + "clientId": "b1fa936c-76d8-444f-b62f-542be8dd2fe4", "objectId": "a2ce33c2-59df-4cde-872e-96cc6d0665ce"}}}, + "identity": {"type": "SystemAssigned"}, "sku": {"name": "Basic", "tier": "Free"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks disable-addons + Connection: + - keep-alive + Content-Length: + - '2452' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Updating\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestes3hz74vn-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitestes3hz74vn-1eca05-527f1806.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Updating\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null\n },\n \"openServiceMesh\"\ + : {\n \"enabled\": false,\n \"config\": null\n }\n },\n \"\ + nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n \"\ + enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/2a20ba59-d80d-4f2d-8414-2bfc843a9818\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ + \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"b1fa936c-76d8-444f-b62f-542be8dd2fe4\",\n \"objectId\"\ + : \"a2ce33c2-59df-4cde-872e-96cc6d0665ce\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"2f68a3a0-3044-4e5e-a14e-cd02e8afd8ca\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ae024217-ffbf-4801-a85d-2715685f2ecf?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '3499' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:38:42 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ae024217-ffbf-4801-a85d-2715685f2ecf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"174202ae-bfff-0148-a85d-2715685f2ecf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:38:41.3894824Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:39:13 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ae024217-ffbf-4801-a85d-2715685f2ecf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"174202ae-bfff-0148-a85d-2715685f2ecf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:38:41.3894824Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:39:43 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ae024217-ffbf-4801-a85d-2715685f2ecf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"174202ae-bfff-0148-a85d-2715685f2ecf\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-28T18:38:41.3894824Z\",\n \"\ + endTime\": \"2020-09-28T18:40:05.5667385Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:40:13 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestes3hz74vn-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitestes3hz74vn-1eca05-527f1806.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null,\n \"identity\": {\n\ + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"2d288811-892d-4d0e-a823-34216a7d283d\",\n \"\ + objectId\": \"4db2c4a1-c289-4953-9999-f2fb60b70391\"\n }\n },\n \ + \ \"openServiceMesh\": {\n \"enabled\": false,\n \"config\": null\n\ + \ }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"Standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n },\n \"effectiveOutboundIPs\": [\n \ + \ {\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/2a20ba59-d80d-4f2d-8414-2bfc843a9818\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ + \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"b1fa936c-76d8-444f-b62f-542be8dd2fe4\",\n \"objectId\"\ + : \"a2ce33c2-59df-4cde-872e-96cc6d0665ce\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"2f68a3a0-3044-4e5e-a14e-cd02e8afd8ca\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '3869' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:40:14 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_disable_addons_confcom_addon.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_disable_addons_confcom_addon.yaml new file mode 100644 index 00000000000..558ce981d69 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_disable_addons_confcom_addon.yaml @@ -0,0 +1,999 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-09T21:05:03Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 09 Sep 2020 21:05:07 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitestgqdwkw4kq-8ecadf", "agentPoolProfiles": [{"count": 3, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH + bowa@microsoft.com\n"}]}}, "servicePrincipalProfile": {"clientId": "xxxx", "secret": + "yyyy"}, "addonProfiles": {"ACCSGXDevicePlugin": {"enabled": true, "config": + {"ACCSGXQuoteHelperEnabled": "true"}}}, "enableRBAC": true, "enablePodSecurityPolicy": + false, "networkProfile": {"networkPlugin": "kubenet", "podCidr": "10.244.0.0/16", + "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", "dockerBridgeCidr": + "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": "standard"}}, + "identity": {"type": "SystemAssigned"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1713' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestgqdwkw4kq-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestgqdwkw4kq-8ecadf-ab028eb4.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Creating\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.13\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"ACCSGXQuoteHelperEnabled\"\ + : \"true\"\n }\n },\n \"kubedashboard\": {\n \"enabled\": true,\n\ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ + ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ + ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ + loadBalancer\"\n },\n \"maxAgentPools\": 100\n },\n \"identity\": {\n\ + \ \"type\": \"SystemAssigned\",\n \"principalId\": \"f5f35f0f-99dc-4a7b-9e6f-cfb37627b51b\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a6ad3b16-4ba0-416d-8e43-51ffed47d43a?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2888' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:05:17 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a6ad3b16-4ba0-416d-8e43-51ffed47d43a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"163bada6-a04b-6d41-8e43-51ffed47d43a\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:05:17.3472681Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:05:47 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a6ad3b16-4ba0-416d-8e43-51ffed47d43a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"163bada6-a04b-6d41-8e43-51ffed47d43a\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:05:17.3472681Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:06:18 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a6ad3b16-4ba0-416d-8e43-51ffed47d43a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"163bada6-a04b-6d41-8e43-51ffed47d43a\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:05:17.3472681Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:06:49 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a6ad3b16-4ba0-416d-8e43-51ffed47d43a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"163bada6-a04b-6d41-8e43-51ffed47d43a\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:05:17.3472681Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:07:20 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a6ad3b16-4ba0-416d-8e43-51ffed47d43a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"163bada6-a04b-6d41-8e43-51ffed47d43a\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:05:17.3472681Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:07:51 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/a6ad3b16-4ba0-416d-8e43-51ffed47d43a?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"163bada6-a04b-6d41-8e43-51ffed47d43a\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-09T21:05:17.3472681Z\",\n \"\ + endTime\": \"2020-09-09T21:08:21.0995356Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:08:22 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -a -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestgqdwkw4kq-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestgqdwkw4kq-8ecadf-ab028eb4.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.13\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"ACCSGXQuoteHelperEnabled\"\ + : \"true\"\n },\n \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/accsgxdeviceplugin-cliakstest000002\"\ + ,\n \"clientId\": \"7d3f3e00-d5db-4665-a2f1-5cc89d9916ae\",\n \"\ + objectId\": \"95a7bfd0-7f9d-4815-ae56-3bf86c242cb8\"\n }\n },\n \ + \ \"kubedashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"d711dad3-1e9d-431c-98f4-206a1f3ca283\",\n \"\ + objectId\": \"2d5a4d68-1a5f-46f2-8c6f-979c6eafde76\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/10afdc8c-4e13-49e2-ad52-a93d24f7c406\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"5d822679-e8fb-44e8-ba0a-bc8af72e69a6\",\n \"objectId\"\ + : \"270f551b-d1f4-4645-878c-6deb1d754faf\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"f5f35f0f-99dc-4a7b-9e6f-cfb37627b51b\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '4292' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:08:23 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestgqdwkw4kq-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestgqdwkw4kq-8ecadf-ab028eb4.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.19\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"ACCSGXQuoteHelperEnabled\"\ + : \"true\"\n },\n \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/accsgxdeviceplugin-cliakstest000002\"\ + ,\n \"clientId\": \"7d3f3e00-d5db-4665-a2f1-5cc89d9916ae\",\n \"\ + objectId\": \"95a7bfd0-7f9d-4815-ae56-3bf86c242cb8\"\n }\n },\n \ + \ \"kubedashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"d711dad3-1e9d-431c-98f4-206a1f3ca283\",\n \"\ + objectId\": \"2d5a4d68-1a5f-46f2-8c6f-979c6eafde76\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/10afdc8c-4e13-49e2-ad52-a93d24f7c406\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"5d822679-e8fb-44e8-ba0a-bc8af72e69a6\",\n \"objectId\"\ + : \"270f551b-d1f4-4645-878c-6deb1d754faf\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"f5f35f0f-99dc-4a7b-9e6f-cfb37627b51b\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '4262' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:08:23 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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": {"kubernetesVersion": "1.16.13", + "dnsPrefix": "cliakstest-clitestgqdwkw4kq-8ecadf", "agentPoolProfiles": [{"count": + 3, "vmSize": "Standard_DS2_v2", "osDiskSizeGB": 128, "maxPods": 110, "osType": + "Linux", "type": "VirtualMachineScaleSets", "mode": "System", "orchestratorVersion": + "1.16.13", "nodeImageVersion": "AKSUbuntu-1604-2020.08.19", "enableNodePublicIP": + false, "nodeLabels": {}, "name": "nodepool1"}], "linuxProfile": {"adminUsername": + "azureuser", "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH + bowa@microsoft.com\n"}]}}, "addonProfiles": {"ACCSGXDevicePlugin": {"enabled": + false}, "KubeDashboard": {"enabled": true}}, "nodeResourceGroup": "MC_clitest000001_cliakstest000002_westus2", + "enableRBAC": true, "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": + "kubenet", "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": + "10.0.0.10", "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", + "loadBalancerSku": "Standard", "loadBalancerProfile": {"managedOutboundIPs": + {"count": 1}, "effectiveOutboundIPs": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/10afdc8c-4e13-49e2-ad52-a93d24f7c406"}]}}, + "identityProfile": {"kubeletidentity": {"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool", + "clientId": "5d822679-e8fb-44e8-ba0a-bc8af72e69a6", "objectId": "270f551b-d1f4-4645-878c-6deb1d754faf"}}}, + "identity": {"type": "SystemAssigned"}, "sku": {"name": "Basic", "tier": "Free"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks disable-addons + Connection: + - keep-alive + Content-Length: + - '2481' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Updating\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestgqdwkw4kq-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestgqdwkw4kq-8ecadf-ab028eb4.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Updating\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.19\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": false,\n \"config\": null\n },\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null\n }\n },\n \"nodeResourceGroup\"\ + : \"MC_clitest000001_cliakstest000002_westus2\",\n \"enableRBAC\": true,\n\ + \ \"enablePodSecurityPolicy\": false,\n \"networkProfile\": {\n \"\ + networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\",\n \ + \ \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"count\"\ + : 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"id\": \"\ + /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/10afdc8c-4e13-49e2-ad52-a93d24f7c406\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"5d822679-e8fb-44e8-ba0a-bc8af72e69a6\",\n \"objectId\"\ + : \"270f551b-d1f4-4645-878c-6deb1d754faf\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"f5f35f0f-99dc-4a7b-9e6f-cfb37627b51b\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/9e78bc8e-d23f-4c8f-a313-515d0e33a444?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '3475' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:08:28 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/9e78bc8e-d23f-4c8f-a313-515d0e33a444?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"8ebc789e-3fd2-8f4c-a313-515d0e33a444\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:08:28.5257433Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:08:59 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/9e78bc8e-d23f-4c8f-a313-515d0e33a444?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"8ebc789e-3fd2-8f4c-a313-515d0e33a444\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:08:28.5257433Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:09:30 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/9e78bc8e-d23f-4c8f-a313-515d0e33a444?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"8ebc789e-3fd2-8f4c-a313-515d0e33a444\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:08:28.5257433Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:10:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/9e78bc8e-d23f-4c8f-a313-515d0e33a444?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"8ebc789e-3fd2-8f4c-a313-515d0e33a444\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-09T21:08:28.5257433Z\",\n \"\ + endTime\": \"2020-09-09T21:10:01.2508463Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:10:31 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks disable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestgqdwkw4kq-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestgqdwkw4kq-8ecadf-ab028eb4.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.19\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": false,\n \"config\": null\n },\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null,\n \"identity\": {\n\ + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"d711dad3-1e9d-431c-98f4-206a1f3ca283\",\n \"\ + objectId\": \"2d5a4d68-1a5f-46f2-8c6f-979c6eafde76\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/10afdc8c-4e13-49e2-ad52-a93d24f7c406\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"5d822679-e8fb-44e8-ba0a-bc8af72e69a6\",\n \"objectId\"\ + : \"270f551b-d1f4-4645-878c-6deb1d754faf\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"f5f35f0f-99dc-4a7b-9e6f-cfb37627b51b\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '3845' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:10:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_enable_addon_with_openservicemesh.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_enable_addon_with_openservicemesh.yaml new file mode 100644 index 00000000000..dc4ad91a8a9 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_enable_addon_with_openservicemesh.yaml @@ -0,0 +1,965 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python + AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-28T18:34:09Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 28 Sep 2020 18:34:16 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitest7syn2m2l4-1eca05", "agentPoolProfiles": [{"count": 3, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw== + shashank08@gmail.com\n"}]}}, "servicePrincipalProfile": {"clientId": "xxxx", + "secret": "yyyy"}, "addonProfiles": {}, "enableRBAC": true, "enablePodSecurityPolicy": + false, "networkProfile": {"networkPlugin": "kubenet", "podCidr": "10.244.0.0/16", + "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", "dockerBridgeCidr": + "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": "standard"}}, + "identity": {"type": "SystemAssigned"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1624' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitest7syn2m2l4-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitest7syn2m2l4-1eca05-065bc5d9.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Creating\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null\n }\n },\n \"nodeResourceGroup\"\ + : \"MC_clitest000001_cliakstest000002_westus2\",\n \"enableRBAC\": true,\n\ + \ \"enablePodSecurityPolicy\": false,\n \"networkProfile\": {\n \"\ + networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"standard\",\n \ + \ \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"count\"\ + : 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"identity\": {\n \"type\": \"SystemAssigned\"\ + ,\n \"principalId\": \"d9f3b335-a4f2-415b-8307-f79089362384\",\n \"tenantId\"\ + : \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\": {\n \"name\"\ + : \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac62acf6-9b5d-4170-ad22-7663aa53e35b?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2763' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:34:28 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac62acf6-9b5d-4170-ad22-7663aa53e35b?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"f6ac62ac-5d9b-7041-ad22-7663aa53e35b\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:28.4279841Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:34:59 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac62acf6-9b5d-4170-ad22-7663aa53e35b?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"f6ac62ac-5d9b-7041-ad22-7663aa53e35b\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:28.4279841Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:35:30 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac62acf6-9b5d-4170-ad22-7663aa53e35b?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"f6ac62ac-5d9b-7041-ad22-7663aa53e35b\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:28.4279841Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:36:00 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac62acf6-9b5d-4170-ad22-7663aa53e35b?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"f6ac62ac-5d9b-7041-ad22-7663aa53e35b\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:28.4279841Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:36:31 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac62acf6-9b5d-4170-ad22-7663aa53e35b?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"f6ac62ac-5d9b-7041-ad22-7663aa53e35b\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:34:28.4279841Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:37:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac62acf6-9b5d-4170-ad22-7663aa53e35b?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"f6ac62ac-5d9b-7041-ad22-7663aa53e35b\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-28T18:34:28.4279841Z\",\n \"\ + endTime\": \"2020-09-28T18:37:19.0821754Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:37:33 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitest7syn2m2l4-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitest7syn2m2l4-1eca05-065bc5d9.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null,\n \"identity\": {\n\ + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"c3441f42-1cf3-49b0-9072-5efc579b68f2\",\n \"\ + objectId\": \"44cebd0a-1bdf-4679-83c9-5325a3b79081\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/773cabc4-4ad0-435b-8dec-a857552e8735\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ + \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"2abc1404-e503-4261-8f69-b77cb8669cbf\",\n \"objectId\"\ + : \"1bc980fe-5492-4b6f-9ba3-058c7abaef3c\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"d9f3b335-a4f2-415b-8307-f79089362384\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '3794' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:37:33 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks enable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitest7syn2m2l4-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitest7syn2m2l4-1eca05-065bc5d9.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null,\n \"identity\": {\n\ + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"c3441f42-1cf3-49b0-9072-5efc579b68f2\",\n \"\ + objectId\": \"44cebd0a-1bdf-4679-83c9-5325a3b79081\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/773cabc4-4ad0-435b-8dec-a857552e8735\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ + \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"2abc1404-e503-4261-8f69-b77cb8669cbf\",\n \"objectId\"\ + : \"1bc980fe-5492-4b6f-9ba3-058c7abaef3c\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"d9f3b335-a4f2-415b-8307-f79089362384\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '3794' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:37:34 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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": {"kubernetesVersion": "1.17.11", + "dnsPrefix": "cliakstest-clitest7syn2m2l4-1eca05", "agentPoolProfiles": [{"count": + 3, "vmSize": "Standard_DS2_v2", "osDiskSizeGB": 128, "osDiskType": "Managed", + "maxPods": 110, "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "orchestratorVersion": "1.17.11", "enableNodePublicIP": false, "nodeLabels": + {}, "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", "ssh": + {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw== + shashank08@gmail.com\n"}]}}, "addonProfiles": {"KubeDashboard": {"enabled": + true}, "openServiceMesh": {"enabled": true, "config": {}}}, "nodeResourceGroup": + "MC_clitest000001_cliakstest000002_westus2", "enableRBAC": true, "enablePodSecurityPolicy": + false, "networkProfile": {"networkPlugin": "kubenet", "podCidr": "10.244.0.0/16", + "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", "dockerBridgeCidr": + "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": "Standard", + "loadBalancerProfile": {"managedOutboundIPs": {"count": 1}, "effectiveOutboundIPs": + [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/773cabc4-4ad0-435b-8dec-a857552e8735"}]}}, + "identityProfile": {"kubeletidentity": {"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool", + "clientId": "2abc1404-e503-4261-8f69-b77cb8669cbf", "objectId": "1bc980fe-5492-4b6f-9ba3-058c7abaef3c"}}}, + "identity": {"type": "SystemAssigned"}, "sku": {"name": "Basic", "tier": "Free"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks enable-addons + Connection: + - keep-alive + Content-Length: + - '2465' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Updating\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitest7syn2m2l4-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitest7syn2m2l4-1eca05-065bc5d9.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Updating\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null\n },\n \"openServiceMesh\"\ + : {\n \"enabled\": true,\n \"config\": {}\n }\n },\n \"nodeResourceGroup\"\ + : \"MC_clitest000001_cliakstest000002_westus2\",\n \"enableRBAC\": true,\n\ + \ \"enablePodSecurityPolicy\": false,\n \"networkProfile\": {\n \"\ + networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\",\n \ + \ \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"count\"\ + : 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"id\": \"\ + /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/773cabc4-4ad0-435b-8dec-a857552e8735\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ + \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"2abc1404-e503-4261-8f69-b77cb8669cbf\",\n \"objectId\"\ + : \"1bc980fe-5492-4b6f-9ba3-058c7abaef3c\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"d9f3b335-a4f2-415b-8307-f79089362384\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b4cf7df-dd27-4a1d-922d-e76f884febe0?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '3496' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:37:42 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks enable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b4cf7df-dd27-4a1d-922d-e76f884febe0?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"dff74c4b-27dd-1d4a-922d-e76f884febe0\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:37:41.7156466Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:38:13 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks enable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b4cf7df-dd27-4a1d-922d-e76f884febe0?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"dff74c4b-27dd-1d4a-922d-e76f884febe0\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-28T18:37:41.7156466Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:38:43 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks enable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b4cf7df-dd27-4a1d-922d-e76f884febe0?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"dff74c4b-27dd-1d4a-922d-e76f884febe0\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-28T18:37:41.7156466Z\",\n \"\ + endTime\": \"2020-09-28T18:39:08.2701455Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:39:14 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks enable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.6.9 (Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-18.04-bionic) + msrest/0.6.19 msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitest7syn2m2l4-1eca05\",\n \"fqdn\"\ + : \"cliakstest-clitest7syn2m2l4-1eca05-065bc5d9.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvZDA7LMLiU+FDYp/L7gisyrNWL1gBFc02GtgYxoMkab7oTWjSQDWj1Ss3UpXAQ4FisZPj6V0mHQc37VRsUjxH80DLaOleUX8BdwKn57oYQ+F+19Hh12UY74qVqKCdHQE89tIFkUMofH6fvxzOA4R8lG2PTbolBGE3wJo0wSu9DhMM8UgJdxUMFccyQfTmFEBCxMOIUz89wb+PMT2j59FMSEMWrjMZRTYj31/Nrr0Pl43IkmkVqexurktibq/ujGgCcODu5QJlBd/wTMkXFMqCl77gQjNqKHIBejQb6YLf9RyFEe9zNoWsrncPhVHnhJHWdo+G1pxe+1pEks5NDOO0xtcuGSj4fkq1hKxJiSvBWXuj+eVgnOQtA8Fp89GbygjOzW1+785qdHJ69ZE3v70LMvwioGxzqUY6KBXgUE7eBYFJIl30bRh7WUV8wR/3LezHexfzYVFfvKgPdOAL/xh59yepoctDGwH61EjFFPT4dWTsVuTDIqq5cMLuJVH8AzZ51wqxLcBTcXNPYlKJwLFwGxbrcGUOE2cvhxYlWGrf+NarNNdi5Uq13KEPrH0yjufa8StaWcAy7z31thkXXspiiB0L8jJi2DCkARW9EoXhuH4l+d6AbRSKVBcu9OPhKtSTYM2LmoxMxhgoBpTjsL2YADhWvUCG2eUHHLe7QX75kw==\ + \ shashank08@gmail.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null,\n \"identity\": {\n\ + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"c3441f42-1cf3-49b0-9072-5efc579b68f2\",\n \"\ + objectId\": \"44cebd0a-1bdf-4679-83c9-5325a3b79081\"\n }\n },\n \ + \ \"openServiceMesh\": {\n \"enabled\": true,\n \"config\": {},\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/openservicemesh-cliakstest000002\"\ + ,\n \"clientId\": \"d77e27cd-b434-4a79-aff1-73cb71f07633\",\n \"\ + objectId\": \"3f402257-3d6b-4bd8-a2c6-2877b7101416\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/773cabc4-4ad0-435b-8dec-a857552e8735\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10,\n \"identityProfile\": {\n \"kubeletidentity\":\ + \ {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"2abc1404-e503-4261-8f69-b77cb8669cbf\",\n \"objectId\"\ + : \"1bc980fe-5492-4b6f-9ba3-058c7abaef3c\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"d9f3b335-a4f2-415b-8307-f79089362384\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '4236' + content-type: + - application/json + date: + - Mon, 28 Sep 2020 18:39:16 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_enable_addons_confcom_addon.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_enable_addons_confcom_addon.yaml new file mode 100644 index 00000000000..35033be6d97 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_enable_addons_confcom_addon.yaml @@ -0,0 +1,1092 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-09T21:19:18Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 09 Sep 2020 21:19:24 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitestvtwqtxjk3-8ecadf", "agentPoolProfiles": [{"count": 3, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH + bowa@microsoft.com\n"}]}}, "servicePrincipalProfile": {"clientId": "xxxx", "secret": + "yyyy"}, "addonProfiles": {}, "enableRBAC": true, "enablePodSecurityPolicy": + false, "networkProfile": {"networkPlugin": "kubenet", "podCidr": "10.244.0.0/16", + "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", "dockerBridgeCidr": + "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": "standard"}}, + "identity": {"type": "SystemAssigned"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1626' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestvtwqtxjk3-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestvtwqtxjk3-8ecadf-660ee2af.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Creating\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.13\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null\n }\n },\n \"nodeResourceGroup\"\ + : \"MC_clitest000001_cliakstest000002_westus2\",\n \"enableRBAC\": true,\n\ + \ \"enablePodSecurityPolicy\": false,\n \"networkProfile\": {\n \"\ + networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"standard\",\n \ + \ \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"count\"\ + : 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100\n },\n \"identity\": {\n \"type\": \"SystemAssigned\"\ + ,\n \"principalId\": \"7c601a83-d0a1-4f04-aed5-211946c0da68\",\n \"tenantId\"\ + : \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\": {\n \"name\"\ + : \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/aed82de0-6354-40ed-a9bf-5b56db8f4f5c?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2766' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:19:33 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/aed82de0-6354-40ed-a9bf-5b56db8f4f5c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"e02dd8ae-5463-ed40-a9bf-5b56db8f4f5c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:19:33.0957584Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:20:03 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/aed82de0-6354-40ed-a9bf-5b56db8f4f5c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"e02dd8ae-5463-ed40-a9bf-5b56db8f4f5c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:19:33.0957584Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:20:34 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/aed82de0-6354-40ed-a9bf-5b56db8f4f5c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"e02dd8ae-5463-ed40-a9bf-5b56db8f4f5c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:19:33.0957584Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:21:05 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/aed82de0-6354-40ed-a9bf-5b56db8f4f5c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"e02dd8ae-5463-ed40-a9bf-5b56db8f4f5c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:19:33.0957584Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:21:36 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/aed82de0-6354-40ed-a9bf-5b56db8f4f5c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"e02dd8ae-5463-ed40-a9bf-5b56db8f4f5c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:19:33.0957584Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:22:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/aed82de0-6354-40ed-a9bf-5b56db8f4f5c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"e02dd8ae-5463-ed40-a9bf-5b56db8f4f5c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:19:33.0957584Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:22:37 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/aed82de0-6354-40ed-a9bf-5b56db8f4f5c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"e02dd8ae-5463-ed40-a9bf-5b56db8f4f5c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:19:33.0957584Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:23:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/aed82de0-6354-40ed-a9bf-5b56db8f4f5c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"e02dd8ae-5463-ed40-a9bf-5b56db8f4f5c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:19:33.0957584Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:23:38 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/aed82de0-6354-40ed-a9bf-5b56db8f4f5c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"e02dd8ae-5463-ed40-a9bf-5b56db8f4f5c\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-09T21:19:33.0957584Z\",\n \"\ + endTime\": \"2020-09-09T21:24:04.0477084Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:24:09 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --enable-managed-identity --service-principal --client-secret + --generate-ssh-keys -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestvtwqtxjk3-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestvtwqtxjk3-8ecadf-660ee2af.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.13\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null,\n \"identity\": {\n\ + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"63a7186b-0d8d-4cc4-8e79-3c21aa229bb6\",\n \"\ + objectId\": \"29af6181-82f9-4bbf-9480-17fce3f98a46\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/99228bf6-77ee-4d3e-a627-736d0a8d8d55\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"2c30692c-c6f1-4cfe-8266-45204564dd83\",\n \"objectId\"\ + : \"31101a21-9ac6-44e2-948b-3063c1e3e772\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"7c601a83-d0a1-4f04-aed5-211946c0da68\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '3797' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:24:10 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks enable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestvtwqtxjk3-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestvtwqtxjk3-8ecadf-660ee2af.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.19\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"KubeDashboard\"\ + : {\n \"enabled\": true,\n \"config\": null,\n \"identity\": {\n\ + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"63a7186b-0d8d-4cc4-8e79-3c21aa229bb6\",\n \"\ + objectId\": \"29af6181-82f9-4bbf-9480-17fce3f98a46\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/99228bf6-77ee-4d3e-a627-736d0a8d8d55\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"2c30692c-c6f1-4cfe-8266-45204564dd83\",\n \"objectId\"\ + : \"31101a21-9ac6-44e2-948b-3063c1e3e772\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"7c601a83-d0a1-4f04-aed5-211946c0da68\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '3767' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:24:10 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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": {"kubernetesVersion": "1.16.13", + "dnsPrefix": "cliakstest-clitestvtwqtxjk3-8ecadf", "agentPoolProfiles": [{"count": + 3, "vmSize": "Standard_DS2_v2", "osDiskSizeGB": 128, "maxPods": 110, "osType": + "Linux", "type": "VirtualMachineScaleSets", "mode": "System", "orchestratorVersion": + "1.16.13", "nodeImageVersion": "AKSUbuntu-1604-2020.08.19", "enableNodePublicIP": + false, "nodeLabels": {}, "name": "nodepool1"}], "linuxProfile": {"adminUsername": + "azureuser", "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH + bowa@microsoft.com\n"}]}}, "addonProfiles": {"KubeDashboard": {"enabled": true}, + "ACCSGXDevicePlugin": {"enabled": true, "config": {"ACCSGXQuoteHelperEnabled": + "true"}}}, "nodeResourceGroup": "MC_clitest000001_cliakstest000002_westus2", + "enableRBAC": true, "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": + "kubenet", "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": + "10.0.0.10", "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", + "loadBalancerSku": "Standard", "loadBalancerProfile": {"managedOutboundIPs": + {"count": 1}, "effectiveOutboundIPs": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/99228bf6-77ee-4d3e-a627-736d0a8d8d55"}]}}, + "identityProfile": {"kubeletidentity": {"resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool", + "clientId": "2c30692c-c6f1-4cfe-8266-45204564dd83", "objectId": "31101a21-9ac6-44e2-948b-3063c1e3e772"}}}, + "identity": {"type": "SystemAssigned"}, "sku": {"name": "Basic", "tier": "Free"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks enable-addons + Connection: + - keep-alive + Content-Length: + - '2528' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Updating\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestvtwqtxjk3-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestvtwqtxjk3-8ecadf-660ee2af.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Updating\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.19\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"ACCSGXQuoteHelperEnabled\"\ + : \"true\"\n }\n },\n \"KubeDashboard\": {\n \"enabled\": true,\n\ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"Standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n },\n \"effectiveOutboundIPs\": [\n \ + \ {\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/99228bf6-77ee-4d3e-a627-736d0a8d8d55\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"2c30692c-c6f1-4cfe-8266-45204564dd83\",\n \"objectId\"\ + : \"31101a21-9ac6-44e2-948b-3063c1e3e772\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"7c601a83-d0a1-4f04-aed5-211946c0da68\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b17b3e52-086d-4fb8-b3ad-90fd961314c2?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '3519' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:24:15 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks enable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b17b3e52-086d-4fb8-b3ad-90fd961314c2?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"523e7bb1-6d08-b84f-b3ad-90fd961314c2\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:24:15.589418Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '125' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:24:46 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks enable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b17b3e52-086d-4fb8-b3ad-90fd961314c2?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"523e7bb1-6d08-b84f-b3ad-90fd961314c2\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-09T21:24:15.589418Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '125' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:25:17 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks enable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b17b3e52-086d-4fb8-b3ad-90fd961314c2?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"523e7bb1-6d08-b84f-b3ad-90fd961314c2\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-09T21:24:15.589418Z\",\n \"\ + endTime\": \"2020-09-09T21:25:31.8827501Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '169' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:25:55 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks enable-addons + Connection: + - keep-alive + ParameterSetName: + - --addons --resource-group --name -o + User-Agent: + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-06-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestvtwqtxjk3-8ecadf\",\n \"fqdn\"\ + : \"cliakstest-clitestvtwqtxjk3-8ecadf-660ee2af.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"maxPods\": 110,\n \"type\": \"VirtualMachineScaleSets\"\ + ,\n \"provisioningState\": \"Succeeded\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"enableNodePublicIP\": false,\n \"nodeLabels\":\ + \ {},\n \"mode\": \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\"\ + : \"AKSUbuntu-1604-2020.08.19\"\n }\n ],\n \"linuxProfile\": {\n \ + \ \"adminUsername\": \"azureuser\",\n \"ssh\": {\n \"publicKeys\"\ + : [\n {\n \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDYTEZlVtEjnS4BwH+BRSOORhlwWQeNuazU2lZ6kQ6aX+1O0JdLSwRn7YTiWukU8cUd9aRr7tt5ilAXA/QtxfJ/lJDOpqMPNGh4MR84ESVLxARbNIptlh2i8JweG8Ml191GDaeBSpV6p+rEakdswC6SIsuL/j2NfvLNJGF699Br/2YAZLQp5NTDI1fnpAfkKi12dc7F8LUmEWQAGqUIQEvnYIm21AJSww4y7fqQeLQnA7cbUuqi7egr70WaYeCOgGtPwwK3nn2xDnSbia25JwkZAA+DR3RjI766WQgCNmw0Zl1hK/wsljBhSz0zjYcieLCiq9S7qZHwbtephjRKGYH\ + \ bowa@microsoft.com\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"msi\"\n },\n \"addonProfiles\": {\n \"ACCSGXDevicePlugin\"\ + : {\n \"enabled\": true,\n \"config\": {\n \"ACCSGXQuoteHelperEnabled\"\ + : \"true\"\n },\n \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/accsgxdeviceplugin-cliakstest000002\"\ + ,\n \"clientId\": \"eee7c208-6e8f-4569-bd2f-7bc9b6ea136f\",\n \"\ + objectId\": \"6c7ac7d2-deb1-4736-b95f-244ecd9ebba9\"\n }\n },\n \ + \ \"kubedashboard\": {\n \"enabled\": true,\n \"config\": null,\n\ + \ \"identity\": {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/kubedashboard-cliakstest000002\"\ + ,\n \"clientId\": \"63a7186b-0d8d-4cc4-8e79-3c21aa229bb6\",\n \"\ + objectId\": \"29af6181-82f9-4bbf-9480-17fce3f98a46\"\n }\n }\n },\n\ + \ \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\",\n\ + \ \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"networkProfile\"\ + : {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\": \"Standard\"\ + ,\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\": {\n \"\ + count\": 1\n },\n \"effectiveOutboundIPs\": [\n {\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/99228bf6-77ee-4d3e-a627-736d0a8d8d55\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 100,\n \"identityProfile\": {\n \"kubeletidentity\"\ + : {\n \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/cliakstest000002-agentpool\"\ + ,\n \"clientId\": \"2c30692c-c6f1-4cfe-8266-45204564dd83\",\n \"objectId\"\ + : \"31101a21-9ac6-44e2-948b-3063c1e3e772\"\n }\n }\n },\n \"identity\"\ + : {\n \"type\": \"SystemAssigned\",\n \"principalId\": \"7c601a83-d0a1-4f04-aed5-211946c0da68\"\ + ,\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\"\n },\n \"sku\"\ + : {\n \"name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '4262' + content-type: + - application/json + date: + - Wed, 09 Sep 2020 21:25:57 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_nodepool_get_upgrades.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_nodepool_get_upgrades.yaml new file mode 100644 index 00000000000..54796326e5f --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_nodepool_get_upgrades.yaml @@ -0,0 +1,655 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name -c + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-24T03:59:08Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 03:59:11 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitest3ylrkraae-c10894", "agentPoolProfiles": [{"count": 1, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "c000003"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPsg7gFH8xCAb9Vt3tVeHFjBhMKotwA4wFB9GIsj+SCXyWrPbf8czuqniTxYM9tKnTCAP2Nc+O8GEqZXmROW7nFqXJmD+oSi4YiCpuTnNhloY6CD77pbIJa6M9TdqDdc7gT+tQXDMGkQza46kdkStq8gP2Hk9//4SvT4IOzwpK+4fIhb6IDf1QMDGVUSf4VWlmNU35D1nYmw8BVEk2DCJrfRq99y5qKjnUwh33kbMqqEwQ4U9XtbGOMZa1KMj6zq0HdKtoHGclMhxy+XfQioky0lsn58x5wwb0d3HE64gkBQaYOAyyiZ9aPofS53FtGrZXeIuvKnH6i38rauj5ZHmz"}]}}, + "servicePrincipalProfile": {"clientId": "7d146092-f76d-4484-bc1f-fa1081471e33", + "secret": "264a82ce5d5f133e5271$"}, "addonProfiles": {}, "enableRBAC": true, + "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": "kubenet", + "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", + "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": + "standard"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1263' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --nodepool-name -c + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitest3ylrkraae-c10894\",\n \"fqdn\"\ + : \"cliakstest-clitest3ylrkraae-c10894-3e464e3a.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"c000003\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Creating\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPsg7gFH8xCAb9Vt3tVeHFjBhMKotwA4wFB9GIsj+SCXyWrPbf8czuqniTxYM9tKnTCAP2Nc+O8GEqZXmROW7nFqXJmD+oSi4YiCpuTnNhloY6CD77pbIJa6M9TdqDdc7gT+tQXDMGkQza46kdkStq8gP2Hk9//4SvT4IOzwpK+4fIhb6IDf1QMDGVUSf4VWlmNU35D1nYmw8BVEk2DCJrfRq99y5qKjnUwh33kbMqqEwQ4U9XtbGOMZa1KMj6zq0HdKtoHGclMhxy+XfQioky0lsn58x5wwb0d3HE64gkBQaYOAyyiZ9aPofS53FtGrZXeIuvKnH6i38rauj5ZHmz\"\ + \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ + clientId\": \"7d146092-f76d-4484-bc1f-fa1081471e33\"\n },\n \"addonProfiles\"\ + : {\n \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null\n\ + \ }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ + ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ + ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ + loadBalancer\"\n },\n \"maxAgentPools\": 10\n },\n \"sku\": {\n \"\ + name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c2195e33-ac89-41f3-85e4-8dcd2e240668?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2264' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 03:59:17 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name -c + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c2195e33-ac89-41f3-85e4-8dcd2e240668?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"335e19c2-89ac-f341-85e4-8dcd2e240668\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-24T03:59:17.0495925Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 03:59:48 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name -c + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c2195e33-ac89-41f3-85e4-8dcd2e240668?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"335e19c2-89ac-f341-85e4-8dcd2e240668\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-24T03:59:17.0495925Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 04:00:18 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name -c + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c2195e33-ac89-41f3-85e4-8dcd2e240668?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"335e19c2-89ac-f341-85e4-8dcd2e240668\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-24T03:59:17.0495925Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 04:00:49 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name -c + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c2195e33-ac89-41f3-85e4-8dcd2e240668?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"335e19c2-89ac-f341-85e4-8dcd2e240668\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-24T03:59:17.0495925Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 04:01:20 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name -c + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c2195e33-ac89-41f3-85e4-8dcd2e240668?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"335e19c2-89ac-f341-85e4-8dcd2e240668\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-24T03:59:17.0495925Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 04:01:50 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name -c + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c2195e33-ac89-41f3-85e4-8dcd2e240668?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"335e19c2-89ac-f341-85e4-8dcd2e240668\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-24T03:59:17.0495925Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 04:02:21 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name -c + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/c2195e33-ac89-41f3-85e4-8dcd2e240668?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"335e19c2-89ac-f341-85e4-8dcd2e240668\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-24T03:59:17.0495925Z\",\n \"\ + endTime\": \"2020-09-24T04:02:34.9584155Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 04:02:53 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name -c + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitest3ylrkraae-c10894\",\n \"fqdn\"\ + : \"cliakstest-clitest3ylrkraae-c10894-3e464e3a.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"c000003\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPsg7gFH8xCAb9Vt3tVeHFjBhMKotwA4wFB9GIsj+SCXyWrPbf8czuqniTxYM9tKnTCAP2Nc+O8GEqZXmROW7nFqXJmD+oSi4YiCpuTnNhloY6CD77pbIJa6M9TdqDdc7gT+tQXDMGkQza46kdkStq8gP2Hk9//4SvT4IOzwpK+4fIhb6IDf1QMDGVUSf4VWlmNU35D1nYmw8BVEk2DCJrfRq99y5qKjnUwh33kbMqqEwQ4U9XtbGOMZa1KMj6zq0HdKtoHGclMhxy+XfQioky0lsn58x5wwb0d3HE64gkBQaYOAyyiZ9aPofS53FtGrZXeIuvKnH6i38rauj5ZHmz\"\ + \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ + clientId\": \"7d146092-f76d-4484-bc1f-fa1081471e33\"\n },\n \"addonProfiles\"\ + : {\n \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null\n\ + \ }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"Standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n },\n \"effectiveOutboundIPs\": [\n \ + \ {\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/a350e008-1549-4765-b489-d3f2055bb7c1\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"sku\": {\n \"name\": \"Basic\",\n \"tier\"\ + : \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '2532' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 04:02:54 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks nodepool get-upgrades + Connection: + - keep-alive + ParameterSetName: + - --resource-group --cluster-name --nodepool-name + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002/agentPools/c000003/upgradeProfiles/default?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002/agentPools/c000003/upgradeProfiles/default\"\ + ,\n \"name\": \"default\",\n \"type\": \"Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles\"\ + ,\n \"properties\": {\n \"kubernetesVersion\": \"1.17.11\",\n \"osType\"\ + : \"Linux\",\n \"latestNodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\ + \n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '452' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 04:02:55 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -g -n --yes --no-wait + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/9.4.0 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: '' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/3ac1ce36-4d1f-4211-8eb5-6263cb4bc41f?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '0' + date: + - Thu, 24 Sep 2020 04:02:57 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operationresults/3ac1ce36-4d1f-4211-8eb5-6263cb4bc41f?api-version=2016-03-30 + pragma: + - no-cache + server: + - nginx + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-deletes: + - '14999' + status: + code: 202 + message: Accepted +version: 1 diff --git a/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_stop_and_start.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_stop_and_start.yaml new file mode 100644 index 00000000000..b1a829495c4 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_stop_and_start.yaml @@ -0,0 +1,2381 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-15T14:33:14Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 14:33:17 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitesthmkudym5s-c10894", "agentPoolProfiles": [{"count": 3, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "nodepool1"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCcoU5oksM+tNzYAsUx39cCjAjYEBqDWssZTN0IVNardJFH3hRvk1/4K82eob1a71Nr30hmfybhU1+dKKDbEv/iQVCFhCf+Sc6DoQ6hpkj0L3NonhzKLJkWBGsObiYfTj0dgSHIjcJrbEmggh2697OLpIDgdkHDRUlIx4ANeZnWVeBvF8WbS7Q6dr7T0zlE8quMvmvyEv706VXU7FIcC4G3Lw5nNtXCqyAyrhoMTRQPLn9c7BwxUV6Rgtol6Qn6YF7/QQ1wpic1zY1rZm97swUygAlxe4gK7XqIkP9W8ZkOO9VU7y+QlGyEUHiSUnYVazlRYjNNszwuGayx5wM2LLOM1UvTZMxMSmFWI8LLIaixbn0cNC5aG6cA4yPtVJcjnqtQ/HtPP73g/G+DcPK/S33EBVmJW1d0EnlaI0LM9KQJcQbcp8iAVjO3thvQLB0JCzHfmSCdeAGN9Rbe9j/bgUBRdPAW9UA7ZkViK7tkrc/qSR+6oSScTMEmsCJnJeKVKOxH6XkeoG7fwo+C5iMVt1FI3K421izziz9o6m3ispnrJQ15Eoj/4ibgyzV7U6L2MynVECoc9NnSQf1wTZC4mkuJbLv5mTqGpLoAEm2T3URsklMSrQpjeap6TtrM/fWoEv76kKVPEGS3JU//V9T/A+01DDoi+bSqvgYHxjOyFLmJ9Q== + nick@pop-os\n"}]}}, "servicePrincipalProfile": {"clientId": "7fa23922-2061-4a82-9b5b-cb7006f23ab2", + "secret": "b3ee3511be308aa33af8$"}, "addonProfiles": {}, "enableRBAC": true, + "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": "kubenet", + "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", + "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": + "standard"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1624' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitesthmkudym5s-c10894\",\n \"fqdn\"\ + : \"cliakstest-clitesthmkudym5s-c10894-3cfd8932.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Creating\"\ + ,\n \"orchestratorVersion\": \"1.16.13\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.08.19\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCcoU5oksM+tNzYAsUx39cCjAjYEBqDWssZTN0IVNardJFH3hRvk1/4K82eob1a71Nr30hmfybhU1+dKKDbEv/iQVCFhCf+Sc6DoQ6hpkj0L3NonhzKLJkWBGsObiYfTj0dgSHIjcJrbEmggh2697OLpIDgdkHDRUlIx4ANeZnWVeBvF8WbS7Q6dr7T0zlE8quMvmvyEv706VXU7FIcC4G3Lw5nNtXCqyAyrhoMTRQPLn9c7BwxUV6Rgtol6Qn6YF7/QQ1wpic1zY1rZm97swUygAlxe4gK7XqIkP9W8ZkOO9VU7y+QlGyEUHiSUnYVazlRYjNNszwuGayx5wM2LLOM1UvTZMxMSmFWI8LLIaixbn0cNC5aG6cA4yPtVJcjnqtQ/HtPP73g/G+DcPK/S33EBVmJW1d0EnlaI0LM9KQJcQbcp8iAVjO3thvQLB0JCzHfmSCdeAGN9Rbe9j/bgUBRdPAW9UA7ZkViK7tkrc/qSR+6oSScTMEmsCJnJeKVKOxH6XkeoG7fwo+C5iMVt1FI3K421izziz9o6m3ispnrJQ15Eoj/4ibgyzV7U6L2MynVECoc9NnSQf1wTZC4mkuJbLv5mTqGpLoAEm2T3URsklMSrQpjeap6TtrM/fWoEv76kKVPEGS3JU//V9T/A+01DDoi+bSqvgYHxjOyFLmJ9Q==\ + \ nick@pop-os\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"7fa23922-2061-4a82-9b5b-cb7006f23ab2\"\n },\n \ + \ \"addonProfiles\": {\n \"kubedashboard\": {\n \"enabled\": true,\n\ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ + ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ + ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ + loadBalancer\"\n },\n \"maxAgentPools\": 10\n },\n \"sku\": {\n \"\ + name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/d15b283b-65eb-4643-b0cf-d19093c97822?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2625' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:33:24 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/d15b283b-65eb-4643-b0cf-d19093c97822?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3b285bd1-eb65-4346-b0cf-d19093c97822\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:33:24.1151101Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:33:54 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/d15b283b-65eb-4643-b0cf-d19093c97822?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3b285bd1-eb65-4346-b0cf-d19093c97822\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:33:24.1151101Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:34:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/d15b283b-65eb-4643-b0cf-d19093c97822?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3b285bd1-eb65-4346-b0cf-d19093c97822\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:33:24.1151101Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:34:56 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/d15b283b-65eb-4643-b0cf-d19093c97822?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3b285bd1-eb65-4346-b0cf-d19093c97822\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:33:24.1151101Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:35:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/d15b283b-65eb-4643-b0cf-d19093c97822?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3b285bd1-eb65-4346-b0cf-d19093c97822\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:33:24.1151101Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:35:57 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/d15b283b-65eb-4643-b0cf-d19093c97822?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"3b285bd1-eb65-4346-b0cf-d19093c97822\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-15T14:33:24.1151101Z\",\n \"\ + endTime\": \"2020-09-15T14:36:02.4580276Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:36:28 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.16.13\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitesthmkudym5s-c10894\",\n \"fqdn\"\ + : \"cliakstest-clitesthmkudym5s-c10894-3cfd8932.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"nodepool1\",\n \"\ + count\": 3,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.16.13\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.08.19\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCcoU5oksM+tNzYAsUx39cCjAjYEBqDWssZTN0IVNardJFH3hRvk1/4K82eob1a71Nr30hmfybhU1+dKKDbEv/iQVCFhCf+Sc6DoQ6hpkj0L3NonhzKLJkWBGsObiYfTj0dgSHIjcJrbEmggh2697OLpIDgdkHDRUlIx4ANeZnWVeBvF8WbS7Q6dr7T0zlE8quMvmvyEv706VXU7FIcC4G3Lw5nNtXCqyAyrhoMTRQPLn9c7BwxUV6Rgtol6Qn6YF7/QQ1wpic1zY1rZm97swUygAlxe4gK7XqIkP9W8ZkOO9VU7y+QlGyEUHiSUnYVazlRYjNNszwuGayx5wM2LLOM1UvTZMxMSmFWI8LLIaixbn0cNC5aG6cA4yPtVJcjnqtQ/HtPP73g/G+DcPK/S33EBVmJW1d0EnlaI0LM9KQJcQbcp8iAVjO3thvQLB0JCzHfmSCdeAGN9Rbe9j/bgUBRdPAW9UA7ZkViK7tkrc/qSR+6oSScTMEmsCJnJeKVKOxH6XkeoG7fwo+C5iMVt1FI3K421izziz9o6m3ispnrJQ15Eoj/4ibgyzV7U6L2MynVECoc9NnSQf1wTZC4mkuJbLv5mTqGpLoAEm2T3URsklMSrQpjeap6TtrM/fWoEv76kKVPEGS3JU//V9T/A+01DDoi+bSqvgYHxjOyFLmJ9Q==\ + \ nick@pop-os\\n\"\n }\n ]\n }\n },\n \"servicePrincipalProfile\"\ + : {\n \"clientId\": \"7fa23922-2061-4a82-9b5b-cb7006f23ab2\"\n },\n \ + \ \"addonProfiles\": {\n \"kubedashboard\": {\n \"enabled\": true,\n\ + \ \"config\": null\n }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"Standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n },\n \"effectiveOutboundIPs\": [\n \ + \ {\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/583c515f-714a-4c51-8262-2f59a57c9f4e\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"sku\": {\n \"name\": \"Basic\",\n \"tier\"\ + : \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '2893' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:36:28 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002/stop?api-version=2020-09-01 + response: + body: + string: '' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '0' + date: + - Tue, 15 Sep 2020 14:36:30 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operationresults/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:37:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:37:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:38:03 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:38:34 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:39:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:39:35 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:40:05 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:40:36 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:41:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:41:37 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:42:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:42:38 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:43:10 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:43:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:44:11 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:44:42 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:45:12 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:45:43 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:46:14 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:46:45 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:47:15 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:47:46 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:48:16 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:48:47 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks stop + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/ac552b27-d9d4-42b8-98b0-7b9ac21cc3bf?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"272b55ac-d4d9-b842-98b0-7b9ac21cc3bf\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-15T14:36:31.1680056Z\",\n \"\ + endTime\": \"2020-09-15T14:49:05.4426047Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:49:18 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002/start?api-version=2020-09-01 + response: + body: + string: '' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '0' + date: + - Tue, 15 Sep 2020 14:49:20 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operationresults/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:49:51 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:50:21 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:50:52 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:51:23 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:51:53 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:52:24 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:52:54 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:53:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:53:56 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:54:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks start + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name + User-Agent: + - python/3.8.2 (Linux-5.4.0-7642-generic-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python + AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/b2b02eb3-82e8-4354-accf-6a849077a99c?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"b32eb0b2-e882-5443-accf-6a849077a99c\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-15T14:49:20.5367718Z\",\n \"\ + endTime\": \"2020-09-15T14:54:41.2061695Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 14:54:58 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_upgrade_node_image_only_cluster.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_upgrade_node_image_only_cluster.yaml new file mode 100644 index 00000000000..ac89b34543e --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_upgrade_node_image_only_cluster.yaml @@ -0,0 +1,1082 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-25T02:11:55Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 25 Sep 2020 02:11:56 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: '{"availableToOtherTenants": false, "homepage": "http://6e1b94.cliakstest-clitestyilxslprm-c10894.westus2.cloudapp.azure.com", + "passwordCredentials": [{"startDate": "2020-09-25T02:11:56.716922Z", "endDate": + "2025-09-25T02:11:56.716922Z", "keyId": "56813496-2875-4cff-b1f4-e7414c645a4b", + "value": "ReplacedSPPassword123*"}], "displayName": "cliakstest000002", "identifierUris": + ["http://6e1b94.cliakstest-clitestyilxslprm-c10894.westus2.cloudapp.azure.com"]}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '455' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: POST + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/applications?api-version=1.6 + response: + body: + string: '{"odata.metadata": "https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects/@Element", + "odata.type": "Microsoft.DirectoryServices.Application", "objectType": "Application", + "objectId": "0697eabf-606a-4c1e-84b4-76cf51384afc", "deletionTimestamp": null, + "acceptMappedClaims": null, "addIns": [], "appId": "463e0939-5420-4886-907c-072599da02e1", + "applicationTemplateId": null, "appRoles": [], "availableToOtherTenants": + false, "displayName": "cliakstest000002", "errorUrl": null, "groupMembershipClaims": + null, "homepage": "http://6e1b94.cliakstest-clitestyilxslprm-c10894.westus2.cloudapp.azure.com", + "identifierUris": ["http://6e1b94.cliakstest-clitestyilxslprm-c10894.westus2.cloudapp.azure.com"], + "informationalUrls": {"termsOfService": null, "support": null, "privacy": + null, "marketing": null}, "isDeviceOnlyAuthSupported": null, "keyCredentials": + [], "knownClientApplications": [], "logoutUrl": null, "logo@odata.mediaEditLink": + "directoryObjects/0697eabf-606a-4c1e-84b4-76cf51384afc/Microsoft.DirectoryServices.Application/logo", + "logo@odata.mediaContentType": "application/json;odata=minimalmetadata; charset=utf-8", + "logoUrl": null, "mainLogo@odata.mediaEditLink": "directoryObjects/0697eabf-606a-4c1e-84b4-76cf51384afc/Microsoft.DirectoryServices.Application/mainLogo", + "oauth2AllowIdTokenImplicitFlow": true, "oauth2AllowImplicitFlow": false, + "oauth2AllowUrlPathMatching": false, "oauth2Permissions": [{"adminConsentDescription": + "Allow the application to access cliakstest000002 on behalf of the signed-in + user.", "adminConsentDisplayName": "Access cliakstest000002", "id": "d506f437-91c1-4b08-aac5-438f51138391", + "isEnabled": true, "type": "User", "userConsentDescription": "Allow the application + to access cliakstest000002 on your behalf.", "userConsentDisplayName": "Access + cliakstest000002", "value": "user_impersonation"}], "oauth2RequirePostResponse": + false, "optionalClaims": null, "orgRestrictions": [], "parentalControlSettings": + {"countriesBlockedForMinors": [], "legalAgeGroupRule": "Allow"}, "passwordCredentials": + [{"customKeyIdentifier": null, "endDate": "2025-09-25T02:11:56.716922Z", "keyId": + "56813496-2875-4cff-b1f4-e7414c645a4b", "startDate": "2020-09-25T02:11:56.716922Z", + "value": "ReplacedSPPassword123*"}], "publicClient": null, "publisherDomain": + "microsoft.onmicrosoft.com", "recordConsentConditions": null, "replyUrls": + [], "requiredResourceAccess": [], "samlMetadataUrl": null, "signInAudience": + "AzureADMyOrg", "tokenEncryptionKeyId": null}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '2375' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Fri, 25 Sep 2020 02:11:57 GMT + duration: + - '3638663' + expires: + - '-1' + location: + - https://graph.windows.net/00000000-0000-0000-0000-000000000000/directoryObjects/0697eabf-606a-4c1e-84b4-76cf51384afc/Microsoft.DirectoryServices.Application + ocp-aad-diagnostics-server-name: + - Y5fnsaXih/izETO5cgkZ+YM4xOA2rFM9Za4eUALb424= + ocp-aad-session-key: + - cEyJ2fbXn8A3FoNzCia5JNZ9VGjUIESr6pciYHAc5srHJMRNBW6suASvtoIJlUp8AwfhrGrC5_5chFcaEJE0QRekaohSwcLd2ud8MKJ04LdCsMjyG42me62ZclhqeGx2txTn8xlm91ZQp358AChbcabi6z9YPbagTMEgE4JB-RY.2sfgE57MCORE5AZRy7HjFXXsLcW4ZSILak0i_3wtDKs + pragma: + - no-cache + request-id: + - 53ecbffb-f225-4d6d-a395-54c6d3e90e26 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '1' + x-powered-by: + - ASP.NET + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: GET + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/applications?$filter=appId%20eq%20%27463e0939-5420-4886-907c-072599da02e1%27&api-version=1.6 + response: + body: + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.Application","objectType":"Application","objectId":"0697eabf-606a-4c1e-84b4-76cf51384afc","deletionTimestamp":null,"acceptMappedClaims":null,"addIns":[],"appId":"463e0939-5420-4886-907c-072599da02e1","applicationTemplateId":null,"appRoles":[],"availableToOtherTenants":false,"displayName":"cliakstest000002","errorUrl":null,"groupMembershipClaims":null,"homepage":"http://6e1b94.cliakstest-clitestyilxslprm-c10894.westus2.cloudapp.azure.com","identifierUris":["http://6e1b94.cliakstest-clitestyilxslprm-c10894.westus2.cloudapp.azure.com"],"informationalUrls":{"termsOfService":null,"support":null,"privacy":null,"marketing":null},"isDeviceOnlyAuthSupported":null,"keyCredentials":[],"knownClientApplications":[],"logoutUrl":null,"logo@odata.mediaEditLink":"directoryObjects/0697eabf-606a-4c1e-84b4-76cf51384afc/Microsoft.DirectoryServices.Application/logo","logoUrl":null,"mainLogo@odata.mediaEditLink":"directoryObjects/0697eabf-606a-4c1e-84b4-76cf51384afc/Microsoft.DirectoryServices.Application/mainLogo","oauth2AllowIdTokenImplicitFlow":true,"oauth2AllowImplicitFlow":false,"oauth2AllowUrlPathMatching":false,"oauth2Permissions":[{"adminConsentDescription":"Allow + the application to access cliakstest000002 on behalf of the signed-in user.","adminConsentDisplayName":"Access + cliakstest000002","id":"d506f437-91c1-4b08-aac5-438f51138391","isEnabled":true,"type":"User","userConsentDescription":"Allow + the application to access cliakstest000002 on your behalf.","userConsentDisplayName":"Access + cliakstest000002","value":"user_impersonation"}],"oauth2RequirePostResponse":false,"optionalClaims":null,"orgRestrictions":[],"parentalControlSettings":{"countriesBlockedForMinors":[],"legalAgeGroupRule":"Allow"},"passwordCredentials":[{"customKeyIdentifier":null,"endDate":"2025-09-25T02:11:56.716922Z","keyId":"56813496-2875-4cff-b1f4-e7414c645a4b","startDate":"2020-09-25T02:11:56.716922Z","value":null}],"publicClient":null,"publisherDomain":"microsoft.onmicrosoft.com","recordConsentConditions":null,"replyUrls":[],"requiredResourceAccess":[],"samlMetadataUrl":null,"signInAudience":"AzureADMyOrg","tokenEncryptionKeyId":null}]}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '2292' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Fri, 25 Sep 2020 02:11:57 GMT + duration: + - '600101' + expires: + - '-1' + ocp-aad-diagnostics-server-name: + - RMLBJAb8TE+reAjYJD87xfN+f2PLygQL6BXmrMwwlU4= + ocp-aad-session-key: + - pIteSHhS5MVuUmx2rdGlD-4zZ9KPJqNOU6k4t_3yB0oKjK4oWET76DuWigCjGjc1X059UqpghGs6epZ1hQQu7PxwWrxiNJlBYWrVAhcZCxCvzpzFFN9sYbBXQlKPmm0tQHx34xjbhiFDxuHLDg6DXFZrEQFJPk_iKExTDrhF0V0.uQHC3k8ywNkvZQ3oK5G_toQTW0pwDjo38HbAZpdXZJ4 + pragma: + - no-cache + request-id: + - e085e5f5-ace5-4642-8aee-24433de84a22 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '2' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"accountEnabled": "True", "appId": "463e0939-5420-4886-907c-072599da02e1"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '75' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: POST + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/servicePrincipals?api-version=1.6 + response: + body: + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects/@Element","odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"420b950e-5804-4829-b80c-5b69f4537386","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":[],"appDisplayName":"cliakstest000002","appId":"463e0939-5420-4886-907c-072599da02e1","applicationTemplateId":null,"appOwnerTenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","appRoleAssignmentRequired":false,"appRoles":[],"displayName":"cliakstest000002","errorUrl":null,"homepage":"http://6e1b94.cliakstest-clitestyilxslprm-c10894.westus2.cloudapp.azure.com","informationalUrls":{"termsOfService":null,"support":null,"privacy":null,"marketing":null},"keyCredentials":[],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[{"adminConsentDescription":"Allow + the application to access cliakstest000002 on behalf of the signed-in user.","adminConsentDisplayName":"Access + cliakstest000002","id":"d506f437-91c1-4b08-aac5-438f51138391","isEnabled":true,"type":"User","userConsentDescription":"Allow + the application to access cliakstest000002 on your behalf.","userConsentDisplayName":"Access + cliakstest000002","value":"user_impersonation"}],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":"Microsoft","replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["463e0939-5420-4886-907c-072599da02e1","http://6e1b94.cliakstest-clitestyilxslprm-c10894.westus2.cloudapp.azure.com"],"servicePrincipalType":"Application","signInAudience":"AzureADMyOrg","tags":[],"tokenEncryptionKeyId":null}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '1782' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Fri, 25 Sep 2020 02:11:58 GMT + duration: + - '2612973' + expires: + - '-1' + location: + - https://graph.windows.net/00000000-0000-0000-0000-000000000000/directoryObjects/420b950e-5804-4829-b80c-5b69f4537386/Microsoft.DirectoryServices.ServicePrincipal + ocp-aad-diagnostics-server-name: + - hXM0y5tf4jtAu0XM9IyMZVs+30ozRFf/FDYUTguUD7g= + ocp-aad-session-key: + - hJBi3zJQtPgVureM15eYz5m_sNE5XgYHv3eEvh05CBrr16UUjPbRFixO4tMnlr-vJMw7Zd8Wf4ieOvXNtd4xinVtApYuNYOBlxcCtUVGiSGXi3OeGfvIeG4u30t6tnAq8gnGpW-6FmD8S98dNEPsoMv1dvQwzHSVuoAY2Bvt8og.ZJdU3mhJEkFl3ccuEf_CWdbtn1i-2vbO6IAfgCjR7YQ + pragma: + - no-cache + request-id: + - 87cd0676-2c24-4763-bee6-5bd2f71c24a3 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '1' + x-powered-by: + - ASP.NET + status: + code: 201 + message: Created +- request: + body: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitestyilxslprm-c10894", "agentPoolProfiles": [{"count": 1, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "c000003"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUhnFcKbRouFhBGtkmBoW33ERNuZ4V0fTAxdN7ugR0KT3iMyd7CJF4esRpEQ4q41kMuZBSoAuIzTgo2w3Qp2Mk8mdTL55p9JZy0EIF7gUxMM57YYTj7U0V28OoFViScYlUKZHu9/+/qIdUPvh2UkTBfppStONOyI/dGbO55V7cvb9xHHzFSX17G1LsuBcOxnnL7BC9yBcsYyz/+oCUdfhvc2/3IkSKQPcALlY2BfHawslG+o1/6VBD1rkctq0xrbH48WywssipV8mgtGOyJrTVzGo46o43OMqQ1at6+v0jUhOiSvH2rXgirYTSbUB/sL4ycEU3G/8yJpCLYhdxoxux"}]}}, + "servicePrincipalProfile": {"clientId": "463e0939-5420-4886-907c-072599da02e1", + "secret": "b7c3087be9597a07619a$"}, "addonProfiles": {}, "enableRBAC": true, + "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": "kubenet", + "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", + "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": + "standard"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1263' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"code\": \"ServicePrincipalNotFound\",\n \"message\": \"Service\ + \ principal clientID: 463e0939-5420-4886-907c-072599da02e1 not found in Active\ + \ Directory tenant 72f988bf-86f1-41af-91ab-2d7cd011db47, Please see https://aka.ms/aks-sp-help\ + \ for more details.\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '253' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:11:59 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 400 + message: Bad Request +- request: + body: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitestyilxslprm-c10894", "agentPoolProfiles": [{"count": 1, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "c000003"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUhnFcKbRouFhBGtkmBoW33ERNuZ4V0fTAxdN7ugR0KT3iMyd7CJF4esRpEQ4q41kMuZBSoAuIzTgo2w3Qp2Mk8mdTL55p9JZy0EIF7gUxMM57YYTj7U0V28OoFViScYlUKZHu9/+/qIdUPvh2UkTBfppStONOyI/dGbO55V7cvb9xHHzFSX17G1LsuBcOxnnL7BC9yBcsYyz/+oCUdfhvc2/3IkSKQPcALlY2BfHawslG+o1/6VBD1rkctq0xrbH48WywssipV8mgtGOyJrTVzGo46o43OMqQ1at6+v0jUhOiSvH2rXgirYTSbUB/sL4ycEU3G/8yJpCLYhdxoxux"}]}}, + "servicePrincipalProfile": {"clientId": "463e0939-5420-4886-907c-072599da02e1", + "secret": "b7c3087be9597a07619a$"}, "addonProfiles": {}, "enableRBAC": true, + "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": "kubenet", + "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", + "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": + "standard"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1263' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestyilxslprm-c10894\",\n \"fqdn\"\ + : \"cliakstest-clitestyilxslprm-c10894-914c1e3b.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"c000003\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Creating\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUhnFcKbRouFhBGtkmBoW33ERNuZ4V0fTAxdN7ugR0KT3iMyd7CJF4esRpEQ4q41kMuZBSoAuIzTgo2w3Qp2Mk8mdTL55p9JZy0EIF7gUxMM57YYTj7U0V28OoFViScYlUKZHu9/+/qIdUPvh2UkTBfppStONOyI/dGbO55V7cvb9xHHzFSX17G1LsuBcOxnnL7BC9yBcsYyz/+oCUdfhvc2/3IkSKQPcALlY2BfHawslG+o1/6VBD1rkctq0xrbH48WywssipV8mgtGOyJrTVzGo46o43OMqQ1at6+v0jUhOiSvH2rXgirYTSbUB/sL4ycEU3G/8yJpCLYhdxoxux\"\ + \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ + clientId\": \"463e0939-5420-4886-907c-072599da02e1\"\n },\n \"addonProfiles\"\ + : {\n \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null\n\ + \ }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ + ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ + ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ + loadBalancer\"\n },\n \"maxAgentPools\": 10\n },\n \"sku\": {\n \"\ + name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b2ea607-5468-46e9-826a-7f39da184c46?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2264' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:12:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b2ea607-5468-46e9-826a-7f39da184c46?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"07a62e4b-6854-e946-826a-7f39da184c46\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:12:09.3464719Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:12:39 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b2ea607-5468-46e9-826a-7f39da184c46?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"07a62e4b-6854-e946-826a-7f39da184c46\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:12:09.3464719Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:13:10 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b2ea607-5468-46e9-826a-7f39da184c46?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"07a62e4b-6854-e946-826a-7f39da184c46\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:12:09.3464719Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:13:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b2ea607-5468-46e9-826a-7f39da184c46?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"07a62e4b-6854-e946-826a-7f39da184c46\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:12:09.3464719Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:14:11 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b2ea607-5468-46e9-826a-7f39da184c46?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"07a62e4b-6854-e946-826a-7f39da184c46\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:12:09.3464719Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:14:41 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b2ea607-5468-46e9-826a-7f39da184c46?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"07a62e4b-6854-e946-826a-7f39da184c46\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:12:09.3464719Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:15:11 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/4b2ea607-5468-46e9-826a-7f39da184c46?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"07a62e4b-6854-e946-826a-7f39da184c46\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-25T02:12:09.3464719Z\",\n \"\ + endTime\": \"2020-09-25T02:15:21.7748698Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:15:41 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestyilxslprm-c10894\",\n \"fqdn\"\ + : \"cliakstest-clitestyilxslprm-c10894-914c1e3b.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"c000003\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUhnFcKbRouFhBGtkmBoW33ERNuZ4V0fTAxdN7ugR0KT3iMyd7CJF4esRpEQ4q41kMuZBSoAuIzTgo2w3Qp2Mk8mdTL55p9JZy0EIF7gUxMM57YYTj7U0V28OoFViScYlUKZHu9/+/qIdUPvh2UkTBfppStONOyI/dGbO55V7cvb9xHHzFSX17G1LsuBcOxnnL7BC9yBcsYyz/+oCUdfhvc2/3IkSKQPcALlY2BfHawslG+o1/6VBD1rkctq0xrbH48WywssipV8mgtGOyJrTVzGo46o43OMqQ1at6+v0jUhOiSvH2rXgirYTSbUB/sL4ycEU3G/8yJpCLYhdxoxux\"\ + \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ + clientId\": \"463e0939-5420-4886-907c-072599da02e1\"\n },\n \"addonProfiles\"\ + : {\n \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null\n\ + \ }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"Standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n },\n \"effectiveOutboundIPs\": [\n \ + \ {\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/6df88e5b-1add-4956-8749-e192dc3604a0\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"sku\": {\n \"name\": \"Basic\",\n \"tier\"\ + : \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '2532' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:15:42 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks upgrade + Connection: + - keep-alive + ParameterSetName: + - -g -n --node-image-only --yes + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestyilxslprm-c10894\",\n \"fqdn\"\ + : \"cliakstest-clitestyilxslprm-c10894-914c1e3b.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"c000003\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUhnFcKbRouFhBGtkmBoW33ERNuZ4V0fTAxdN7ugR0KT3iMyd7CJF4esRpEQ4q41kMuZBSoAuIzTgo2w3Qp2Mk8mdTL55p9JZy0EIF7gUxMM57YYTj7U0V28OoFViScYlUKZHu9/+/qIdUPvh2UkTBfppStONOyI/dGbO55V7cvb9xHHzFSX17G1LsuBcOxnnL7BC9yBcsYyz/+oCUdfhvc2/3IkSKQPcALlY2BfHawslG+o1/6VBD1rkctq0xrbH48WywssipV8mgtGOyJrTVzGo46o43OMqQ1at6+v0jUhOiSvH2rXgirYTSbUB/sL4ycEU3G/8yJpCLYhdxoxux\"\ + \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ + clientId\": \"463e0939-5420-4886-907c-072599da02e1\"\n },\n \"addonProfiles\"\ + : {\n \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null\n\ + \ }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"Standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n },\n \"effectiveOutboundIPs\": [\n \ + \ {\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/6df88e5b-1add-4956-8749-e192dc3604a0\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"sku\": {\n \"name\": \"Basic\",\n \"tier\"\ + : \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '2532' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:15:43 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks upgrade + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -g -n --node-image-only --yes + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002/agentPools/c000003/upgradeNodeImageVersion?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002/agentPools/c000003\"\ + ,\n \"name\": \"c000003\",\n \"type\": \"Microsoft.ContainerService/managedClusters/agentPools\"\ + ,\n \"properties\": {\n \"count\": 1,\n \"vmSize\": \"Standard_DS2_v2\"\ + ,\n \"osDiskSizeGB\": 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\"\ + : 110,\n \"type\": \"VirtualMachineScaleSets\",\n \"provisioningState\"\ + : \"UpgradingNodeImageVersion\",\n \"orchestratorVersion\": \"1.17.11\"\ + ,\n \"enableNodePublicIP\": false,\n \"nodeLabels\": {},\n \"mode\"\ + : \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\ + \n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/7dfe6e50-b42a-4b34-8693-0162f93a7c54?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '690' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:15:45 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operationresults/7dfe6e50-b42a-4b34-8693-0162f93a7c54?api-version=2016-03-30 + pragma: + - no-cache + server: + - nginx + 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: + - aks upgrade + Connection: + - keep-alive + ParameterSetName: + - -g -n --node-image-only --yes + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestyilxslprm-c10894\",\n \"fqdn\"\ + : \"cliakstest-clitestyilxslprm-c10894-914c1e3b.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"c000003\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"UpgradingNodeImageVersion\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUhnFcKbRouFhBGtkmBoW33ERNuZ4V0fTAxdN7ugR0KT3iMyd7CJF4esRpEQ4q41kMuZBSoAuIzTgo2w3Qp2Mk8mdTL55p9JZy0EIF7gUxMM57YYTj7U0V28OoFViScYlUKZHu9/+/qIdUPvh2UkTBfppStONOyI/dGbO55V7cvb9xHHzFSX17G1LsuBcOxnnL7BC9yBcsYyz/+oCUdfhvc2/3IkSKQPcALlY2BfHawslG+o1/6VBD1rkctq0xrbH48WywssipV8mgtGOyJrTVzGo46o43OMqQ1at6+v0jUhOiSvH2rXgirYTSbUB/sL4ycEU3G/8yJpCLYhdxoxux\"\ + \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ + clientId\": \"463e0939-5420-4886-907c-072599da02e1\"\n },\n \"addonProfiles\"\ + : {\n \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null\n\ + \ }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"Standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n },\n \"effectiveOutboundIPs\": [\n \ + \ {\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/6df88e5b-1add-4956-8749-e192dc3604a0\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"sku\": {\n \"name\": \"Basic\",\n \"tier\"\ + : \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '2548' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:15:45 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_upgrade_node_image_only_nodepool.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_upgrade_node_image_only_nodepool.yaml new file mode 100644 index 00000000000..8a12a5f451f --- /dev/null +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_aks_upgrade_node_image_only_nodepool.yaml @@ -0,0 +1,728 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-25T02:51:18Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '313' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 25 Sep 2020 02:51:18 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: '{"location": "westus2", "properties": {"kubernetesVersion": "", "dnsPrefix": + "cliakstest-clitestw4nawng7a-c10894", "agentPoolProfiles": [{"count": 1, "vmSize": + "Standard_DS2_v2", "osType": "Linux", "type": "VirtualMachineScaleSets", "mode": + "System", "enableNodePublicIP": false, "scaleSetPriority": "Regular", "scaleSetEvictionPolicy": + "Delete", "name": "c000003"}], "linuxProfile": {"adminUsername": "azureuser", + "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUhnFcKbRouFhBGtkmBoW33ERNuZ4V0fTAxdN7ugR0KT3iMyd7CJF4esRpEQ4q41kMuZBSoAuIzTgo2w3Qp2Mk8mdTL55p9JZy0EIF7gUxMM57YYTj7U0V28OoFViScYlUKZHu9/+/qIdUPvh2UkTBfppStONOyI/dGbO55V7cvb9xHHzFSX17G1LsuBcOxnnL7BC9yBcsYyz/+oCUdfhvc2/3IkSKQPcALlY2BfHawslG+o1/6VBD1rkctq0xrbH48WywssipV8mgtGOyJrTVzGo46o43OMqQ1at6+v0jUhOiSvH2rXgirYTSbUB/sL4ycEU3G/8yJpCLYhdxoxux"}]}}, + "servicePrincipalProfile": {"clientId": "463e0939-5420-4886-907c-072599da02e1", + "secret": "b7c3087be9597a07619a$"}, "addonProfiles": {}, "enableRBAC": true, + "enablePodSecurityPolicy": false, "networkProfile": {"networkPlugin": "kubenet", + "podCidr": "10.244.0.0/16", "serviceCidr": "10.0.0.0/16", "dnsServiceIP": "10.0.0.10", + "dockerBridgeCidr": "172.17.0.1/16", "outboundType": "loadBalancer", "loadBalancerSku": + "standard"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + Content-Length: + - '1263' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Creating\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestw4nawng7a-c10894\",\n \"fqdn\"\ + : \"cliakstest-clitestw4nawng7a-c10894-24e170fc.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"c000003\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Creating\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUhnFcKbRouFhBGtkmBoW33ERNuZ4V0fTAxdN7ugR0KT3iMyd7CJF4esRpEQ4q41kMuZBSoAuIzTgo2w3Qp2Mk8mdTL55p9JZy0EIF7gUxMM57YYTj7U0V28OoFViScYlUKZHu9/+/qIdUPvh2UkTBfppStONOyI/dGbO55V7cvb9xHHzFSX17G1LsuBcOxnnL7BC9yBcsYyz/+oCUdfhvc2/3IkSKQPcALlY2BfHawslG+o1/6VBD1rkctq0xrbH48WywssipV8mgtGOyJrTVzGo46o43OMqQ1at6+v0jUhOiSvH2rXgirYTSbUB/sL4ycEU3G/8yJpCLYhdxoxux\"\ + \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ + clientId\": \"463e0939-5420-4886-907c-072599da02e1\"\n },\n \"addonProfiles\"\ + : {\n \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null\n\ + \ }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n }\n },\n \"podCidr\": \"10.244.0.0/16\"\ + ,\n \"serviceCidr\": \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\"\ + ,\n \"dockerBridgeCidr\": \"172.17.0.1/16\",\n \"outboundType\": \"\ + loadBalancer\"\n },\n \"maxAgentPools\": 10\n },\n \"sku\": {\n \"\ + name\": \"Basic\",\n \"tier\": \"Free\"\n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6c337906-f71c-4c0c-b323-3ed1a8ffc452?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '2264' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:51:23 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6c337906-f71c-4c0c-b323-3ed1a8ffc452?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"0679336c-1cf7-0c4c-b323-3ed1a8ffc452\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:51:23.7043737Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:51:53 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6c337906-f71c-4c0c-b323-3ed1a8ffc452?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"0679336c-1cf7-0c4c-b323-3ed1a8ffc452\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:51:23.7043737Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:52:24 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6c337906-f71c-4c0c-b323-3ed1a8ffc452?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"0679336c-1cf7-0c4c-b323-3ed1a8ffc452\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:51:23.7043737Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:52:55 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6c337906-f71c-4c0c-b323-3ed1a8ffc452?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"0679336c-1cf7-0c4c-b323-3ed1a8ffc452\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:51:23.7043737Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:53:25 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6c337906-f71c-4c0c-b323-3ed1a8ffc452?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"0679336c-1cf7-0c4c-b323-3ed1a8ffc452\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:51:23.7043737Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:53:55 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6c337906-f71c-4c0c-b323-3ed1a8ffc452?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"0679336c-1cf7-0c4c-b323-3ed1a8ffc452\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:51:23.7043737Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:54:25 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6c337906-f71c-4c0c-b323-3ed1a8ffc452?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"0679336c-1cf7-0c4c-b323-3ed1a8ffc452\",\n \"status\"\ + : \"InProgress\",\n \"startTime\": \"2020-09-25T02:51:23.7043737Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '126' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:54:56 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/6c337906-f71c-4c0c-b323-3ed1a8ffc452?api-version=2016-03-30 + response: + body: + string: "{\n \"name\": \"0679336c-1cf7-0c4c-b323-3ed1a8ffc452\",\n \"status\"\ + : \"Succeeded\",\n \"startTime\": \"2020-09-25T02:51:23.7043737Z\",\n \"\ + endTime\": \"2020-09-25T02:55:16.0791026Z\"\n }" + headers: + cache-control: + - no-cache + content-length: + - '170' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:55:27 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --nodepool-name --generate-ssh-keys --vm-set-type + --node-count -o + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002\"\ + ,\n \"location\": \"westus2\",\n \"name\": \"cliakstest000002\",\n \"type\"\ + : \"Microsoft.ContainerService/ManagedClusters\",\n \"properties\": {\n \ + \ \"provisioningState\": \"Succeeded\",\n \"kubernetesVersion\": \"1.17.11\"\ + ,\n \"dnsPrefix\": \"cliakstest-clitestw4nawng7a-c10894\",\n \"fqdn\"\ + : \"cliakstest-clitestw4nawng7a-c10894-24e170fc.hcp.westus2.azmk8s.io\",\n\ + \ \"agentPoolProfiles\": [\n {\n \"name\": \"c000003\",\n \"\ + count\": 1,\n \"vmSize\": \"Standard_DS2_v2\",\n \"osDiskSizeGB\"\ + : 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\": 110,\n \"\ + type\": \"VirtualMachineScaleSets\",\n \"provisioningState\": \"Succeeded\"\ + ,\n \"orchestratorVersion\": \"1.17.11\",\n \"enableNodePublicIP\"\ + : false,\n \"nodeLabels\": {},\n \"mode\": \"System\",\n \"osType\"\ + : \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\n \ + \ }\n ],\n \"linuxProfile\": {\n \"adminUsername\": \"azureuser\"\ + ,\n \"ssh\": {\n \"publicKeys\": [\n {\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUhnFcKbRouFhBGtkmBoW33ERNuZ4V0fTAxdN7ugR0KT3iMyd7CJF4esRpEQ4q41kMuZBSoAuIzTgo2w3Qp2Mk8mdTL55p9JZy0EIF7gUxMM57YYTj7U0V28OoFViScYlUKZHu9/+/qIdUPvh2UkTBfppStONOyI/dGbO55V7cvb9xHHzFSX17G1LsuBcOxnnL7BC9yBcsYyz/+oCUdfhvc2/3IkSKQPcALlY2BfHawslG+o1/6VBD1rkctq0xrbH48WywssipV8mgtGOyJrTVzGo46o43OMqQ1at6+v0jUhOiSvH2rXgirYTSbUB/sL4ycEU3G/8yJpCLYhdxoxux\"\ + \n }\n ]\n }\n },\n \"servicePrincipalProfile\": {\n \"\ + clientId\": \"463e0939-5420-4886-907c-072599da02e1\"\n },\n \"addonProfiles\"\ + : {\n \"KubeDashboard\": {\n \"enabled\": true,\n \"config\": null\n\ + \ }\n },\n \"nodeResourceGroup\": \"MC_clitest000001_cliakstest000002_westus2\"\ + ,\n \"enableRBAC\": true,\n \"enablePodSecurityPolicy\": false,\n \"\ + networkProfile\": {\n \"networkPlugin\": \"kubenet\",\n \"loadBalancerSku\"\ + : \"Standard\",\n \"loadBalancerProfile\": {\n \"managedOutboundIPs\"\ + : {\n \"count\": 1\n },\n \"effectiveOutboundIPs\": [\n \ + \ {\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_clitest000001_cliakstest000002_westus2/providers/Microsoft.Network/publicIPAddresses/7addb21a-1689-4194-afb1-7172b161a8e9\"\ + \n }\n ]\n },\n \"podCidr\": \"10.244.0.0/16\",\n \"serviceCidr\"\ + : \"10.0.0.0/16\",\n \"dnsServiceIP\": \"10.0.0.10\",\n \"dockerBridgeCidr\"\ + : \"172.17.0.1/16\",\n \"outboundType\": \"loadBalancer\"\n },\n \"\ + maxAgentPools\": 10\n },\n \"sku\": {\n \"name\": \"Basic\",\n \"tier\"\ + : \"Free\"\n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '2532' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:55:27 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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: + - aks nodepool upgrade + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --resource-group --cluster-name -n --node-image-only --no-wait + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002/agentPools/c000003/upgradeNodeImageVersion?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002/agentPools/c000003\"\ + ,\n \"name\": \"c000003\",\n \"type\": \"Microsoft.ContainerService/managedClusters/agentPools\"\ + ,\n \"properties\": {\n \"count\": 1,\n \"vmSize\": \"Standard_DS2_v2\"\ + ,\n \"osDiskSizeGB\": 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\"\ + : 110,\n \"type\": \"VirtualMachineScaleSets\",\n \"provisioningState\"\ + : \"UpgradingNodeImageVersion\",\n \"orchestratorVersion\": \"1.17.11\"\ + ,\n \"enableNodePublicIP\": false,\n \"nodeLabels\": {},\n \"mode\"\ + : \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\ + \n }\n }" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operations/9696390c-0e3c-4111-89b1-d0fc91f95e48?api-version=2016-03-30 + cache-control: + - no-cache + content-length: + - '690' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:55:28 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus2/operationresults/9696390c-0e3c-4111-89b1-d0fc91f95e48?api-version=2016-03-30 + pragma: + - no-cache + server: + - nginx + 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: + - aks nodepool show + Connection: + - keep-alive + ParameterSetName: + - --resource-group --cluster-name -n + User-Agent: + - python/3.6.10 (Linux-5.4.0-48-generic-x86_64-with) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.12.0 (DOCKER) + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002/agentPools/c000003?api-version=2020-09-01 + response: + body: + string: "{\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.ContainerService/managedClusters/cliakstest000002/agentPools/c000003\"\ + ,\n \"name\": \"c000003\",\n \"type\": \"Microsoft.ContainerService/managedClusters/agentPools\"\ + ,\n \"properties\": {\n \"count\": 1,\n \"vmSize\": \"Standard_DS2_v2\"\ + ,\n \"osDiskSizeGB\": 128,\n \"osDiskType\": \"Managed\",\n \"maxPods\"\ + : 110,\n \"type\": \"VirtualMachineScaleSets\",\n \"provisioningState\"\ + : \"UpgradingNodeImageVersion\",\n \"orchestratorVersion\": \"1.17.11\"\ + ,\n \"enableNodePublicIP\": false,\n \"nodeLabels\": {},\n \"mode\"\ + : \"System\",\n \"osType\": \"Linux\",\n \"nodeImageVersion\": \"AKSUbuntu-1604-2020.09.03\"\ + \n }\n }" + headers: + cache-control: + - no-cache + content-length: + - '690' + content-type: + - application/json + date: + - Fri, 25 Sep 2020 02:55:29 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - nginx + 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/aks-preview/azext_aks_preview/tests/latest/recordings/test_get_version.yaml b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_get_version.yaml index 3822438ff71..6b9ed5278b5 100644 --- a/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_get_version.yaml +++ b/src/aks-preview/azext_aks_preview/tests/latest/recordings/test_get_version.yaml @@ -13,9 +13,8 @@ interactions: ParameterSetName: - -l User-Agent: - - python/3.6.9 (Linux-5.0.0-1035-azure-x86_64-with-Ubuntu-18.04-bionic) msrest/0.6.11 - msrest_azure/0.6.3 azure-mgmt-containerservice/4.4.4 Azure-SDK-For-Python - AZURECLI/2.9.1 + - python/3.7.4 (Darwin-19.4.0-x86_64-i386-64bit) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-containerservice/4.4.5 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -28,34 +27,51 @@ interactions: : \"Kubernetes\",\n \"orchestratorVersion\": \"1.15.11\",\n \"upgrades\"\ : [\n {\n \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\"\ : \"1.15.12\"\n },\n {\n \"orchestratorType\": \"Kubernetes\"\ - ,\n \"orchestratorVersion\": \"1.16.10\"\n }\n ]\n },\n\ + ,\n \"orchestratorVersion\": \"1.16.10\"\n },\n {\n \ + \ \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\": \"\ + 1.16.13\"\n }\n ]\n },\n {\n \"orchestratorType\": \"Kubernetes\"\ + ,\n \"orchestratorVersion\": \"1.15.12\",\n \"upgrades\": [\n \ + \ {\n \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\"\ + : \"1.16.10\"\n },\n {\n \"orchestratorType\": \"Kubernetes\"\ + ,\n \"orchestratorVersion\": \"1.16.13\"\n }\n ]\n },\n\ \ {\n \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\"\ - : \"1.15.12\",\n \"upgrades\": [\n {\n \"orchestratorType\"\ - : \"Kubernetes\",\n \"orchestratorVersion\": \"1.16.10\"\n }\n\ - \ ]\n },\n {\n \"orchestratorType\": \"Kubernetes\",\n \"\ - orchestratorVersion\": \"1.16.10\",\n \"default\": true,\n \"upgrades\"\ - : [\n {\n \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\"\ - : \"1.17.7\"\n }\n ]\n },\n {\n \"orchestratorType\": \"\ - Kubernetes\",\n \"orchestratorVersion\": \"1.17.7\",\n \"upgrades\"\ + : \"1.16.10\",\n \"upgrades\": [\n {\n \"orchestratorType\"\ + : \"Kubernetes\",\n \"orchestratorVersion\": \"1.16.13\"\n },\n\ + \ {\n \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\"\ + : \"1.17.7\"\n },\n {\n \"orchestratorType\": \"Kubernetes\"\ + ,\n \"orchestratorVersion\": \"1.17.9\"\n }\n ]\n },\n \ + \ {\n \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\"\ + : \"1.16.13\",\n \"default\": true,\n \"upgrades\": [\n {\n \ + \ \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\"\ + : \"1.17.7\"\n },\n {\n \"orchestratorType\": \"Kubernetes\"\ + ,\n \"orchestratorVersion\": \"1.17.9\"\n }\n ]\n },\n \ + \ {\n \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\"\ + : \"1.17.7\",\n \"upgrades\": [\n {\n \"orchestratorType\"\ + : \"Kubernetes\",\n \"orchestratorVersion\": \"1.17.9\"\n },\n\ + \ {\n \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\"\ + : \"1.18.4\",\n \"isPreview\": true\n },\n {\n \"orchestratorType\"\ + : \"Kubernetes\",\n \"orchestratorVersion\": \"1.18.6\",\n \"\ + isPreview\": true\n }\n ]\n },\n {\n \"orchestratorType\"\ + : \"Kubernetes\",\n \"orchestratorVersion\": \"1.17.9\",\n \"upgrades\"\ : [\n {\n \"orchestratorType\": \"Kubernetes\",\n \"orchestratorVersion\"\ - : \"1.18.2\",\n \"isPreview\": true\n },\n {\n \"orchestratorType\"\ - : \"Kubernetes\",\n \"orchestratorVersion\": \"1.18.4\",\n \"\ + : \"1.18.4\",\n \"isPreview\": true\n },\n {\n \"orchestratorType\"\ + : \"Kubernetes\",\n \"orchestratorVersion\": \"1.18.6\",\n \"\ isPreview\": true\n }\n ]\n },\n {\n \"orchestratorType\"\ - : \"Kubernetes\",\n \"orchestratorVersion\": \"1.18.2\",\n \"isPreview\"\ + : \"Kubernetes\",\n \"orchestratorVersion\": \"1.18.4\",\n \"isPreview\"\ : true,\n \"upgrades\": [\n {\n \"orchestratorType\": \"Kubernetes\"\ - ,\n \"orchestratorVersion\": \"1.18.4\",\n \"isPreview\": true\n\ + ,\n \"orchestratorVersion\": \"1.18.6\",\n \"isPreview\": true\n\ \ }\n ]\n },\n {\n \"orchestratorType\": \"Kubernetes\"\ - ,\n \"orchestratorVersion\": \"1.18.4\",\n \"isPreview\": true\n \ + ,\n \"orchestratorVersion\": \"1.18.6\",\n \"isPreview\": true\n \ \ }\n ]\n }\n }" headers: cache-control: - no-cache content-length: - - '1766' + - '2925' content-type: - application/json date: - - Wed, 29 Jul 2020 08:34:47 GMT + - Wed, 09 Sep 2020 05:45:13 GMT expires: - '-1' pragma: diff --git a/src/aks-preview/azext_aks_preview/tests/latest/test_aks_commands.py b/src/aks-preview/azext_aks_preview/tests/latest/test_aks_commands.py index 488c65b38a8..3ed09a1b92d 100644 --- a/src/aks-preview/azext_aks_preview/tests/latest/test_aks_commands.py +++ b/src/aks-preview/azext_aks_preview/tests/latest/test_aks_commands.py @@ -147,8 +147,8 @@ def test_aks_create_with_ingress_appgw_addon(self, resource_group, resource_grou '-a ingress-appgw --appgw-subnet-prefix 10.2.0.0/16 -o json' self.cmd(create_cmd, checks=[ self.check('provisioningState', 'Succeeded'), - self.check('addonProfiles.IngressApplicationGateway.enabled', True), - self.check('addonProfiles.IngressApplicationGateway.config.subnetPrefix', "10.2.0.0/16") + self.check('addonProfiles.ingressapplicationgateway.enabled', True), + self.check('addonProfiles.ingressapplicationgateway.config.subnetprefix', "10.2.0.0/16") ]) @AllowLargeResponse() @@ -189,22 +189,17 @@ def test_aks_byo_subnet_with_ingress_appgw_addon(self, resource_group, resource_ '-a ingress-appgw --appgw-name gateway --appgw-subnet-id {vnet_id}/subnets/appgw-subnet -o json' aks_cluster = self.cmd(create_cmd, checks=[ self.check('provisioningState', 'Succeeded'), - self.check('addonProfiles.IngressApplicationGateway.enabled', True), - self.check('addonProfiles.IngressApplicationGateway.config.applicationGatewayName', "gateway"), - self.check('addonProfiles.IngressApplicationGateway.config.subnetId', vnet_id + '/subnets/appgw-subnet') + self.check('addonProfiles.ingressapplicationgateway.enabled', True), + self.check('addonProfiles.ingressapplicationgateway.config.applicationgatewayname', "gateway"), + self.check('addonProfiles.ingressapplicationgateway.config.subnetid', vnet_id + '/subnets/appgw-subnet') ]).get_output_in_json() - addon_client_id = aks_cluster["addonProfiles"]["IngressApplicationGateway"]["identity"]["clientId"] + addon_client_id = aks_cluster["addonProfiles"]["ingressapplicationgateway"]["identity"]["clientId"] self.kwargs.update({ 'addon_client_id': addon_client_id, }) - check_role_assignment = 'role assignment list --assignee {addon_client_id} --scope {vnet_id}/subnets/appgw-subnet --role "4d97b98b-1d4f-4787-a291-c67834d212e7" -o json' - self.cmd(check_role_assignment, checks=[ - self.check('[0].roleDefinitionName', 'Network Contributor') - ]) - @AllowLargeResponse() @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') def test_aks_byo_appgw_with_ingress_appgw_addon(self, resource_group, resource_group_location): @@ -265,18 +260,310 @@ def test_aks_byo_appgw_with_ingress_appgw_addon(self, resource_group, resource_g '-a ingress-appgw --appgw-id {appgw_id} -o json' aks_cluster = self.cmd(create_cmd, checks=[ self.check('provisioningState', 'Succeeded'), - self.check('addonProfiles.IngressApplicationGateway.enabled', True), - self.check('addonProfiles.IngressApplicationGateway.config.applicationGatewayId', appgw_id) + self.check('addonProfiles.ingressapplicationgateway.enabled', True), + self.check('addonProfiles.ingressapplicationgateway.config.applicationgatewayid', appgw_id) ]).get_output_in_json() - addon_client_id = aks_cluster["addonProfiles"]["IngressApplicationGateway"]["identity"]["clientId"] + addon_client_id = aks_cluster["addonProfiles"]["ingressapplicationgateway"]["identity"]["clientId"] self.kwargs.update({ 'addon_client_id': addon_client_id, }) - # check role assignment - check_role_assignment = 'role assignment list --assignee {addon_client_id} --scope {appgw_group_id} --role "b24988ac-6180-42a0-ab88-20f7382dd24c" -o json' - self.cmd(check_role_assignment, checks=[ - self.check('[0].roleDefinitionName', 'Contributor') + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_create_with_openservicemesh_addon(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name, + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} --enable-managed-identity --service-principal xxxx --client-secret yyyy --generate-ssh-keys ' \ + '-a open-service-mesh -o json' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.openServiceMesh.enabled', True), + ]) + + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_enable_addon_with_openservicemesh(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name, + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} --enable-managed-identity --service-principal xxxx --client-secret yyyy --generate-ssh-keys -o json' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.openServiceMesh', None), + ]) + + enable_cmd = 'aks enable-addons --addons open-service-mesh --resource-group={resource_group} --name={name} -o json' + self.cmd(enable_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.openServiceMesh.enabled', True), + ]) + + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_disable_addon_openservicemesh(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name, + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} --enable-managed-identity --service-principal xxxx --client-secret yyyy --generate-ssh-keys ' \ + '-a open-service-mesh -o json' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.openServiceMesh.enabled', True), + ]) + + disable_cmd = 'aks disable-addons --addons open-service-mesh --resource-group={resource_group} --name={name} -o json' + self.cmd(disable_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.openServiceMesh.enabled', False), + self.check('addonProfiles.openServiceMesh.config', None) + ]) + + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_create_with_confcom_addon(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} --enable-managed-identity --service-principal xxxx --client-secret yyyy --generate-ssh-keys ' \ + '-a confcom -o json' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.ACCSGXDevicePlugin.enabled', True), + self.check('addonProfiles.ACCSGXDevicePlugin.config.ACCSGXQuoteHelperEnabled', "true") + ]) + + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_create_with_confcom_addon_helper_disabled(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} --enable-managed-identity --service-principal xxxx --client-secret yyyy --generate-ssh-keys ' \ + '-a confcom --disable-sgxquotehelper -o json' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.ACCSGXDevicePlugin.enabled', True), + self.check('addonProfiles.ACCSGXDevicePlugin.config.ACCSGXQuoteHelperEnabled', "false") + ]) + + @live_only() # without live only fails with need az login + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_enable_addons_confcom_addon(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} --enable-managed-identity --service-principal xxxx --client-secret yyyy --generate-ssh-keys ' \ + '-o json' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.ACCSGXDevicePlugin', None) + ]) + + enable_cmd = 'aks enable-addons --addons confcom --resource-group={resource_group} --name={name} -o json' + self.cmd(enable_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.accsgxdeviceplugin.enabled', True), + self.check('addonProfiles.accsgxdeviceplugin.config.accsgxquotehelperenabled', "true") + ]) + + @live_only() # without live only fails with need az login + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_disable_addons_confcom_addon(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} --enable-managed-identity --service-principal xxxx --client-secret yyyy --generate-ssh-keys ' \ + '-a confcom -o json' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.ACCSGXDevicePlugin.enabled', True), + self.check('addonProfiles.ACCSGXDevicePlugin.config.ACCSGXQuoteHelperEnabled', "true") + ]) + + disable_cmd = 'aks disable-addons --addons confcom --resource-group={resource_group} --name={name} -o json' + self.cmd(disable_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('addonProfiles.accsgxdeviceplugin.enabled', False), + self.check('addonProfiles.accsgxdeviceplugin.config', None) + ]) + + @live_only() + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_stop_and_start(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name}' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + ]) + + stop_cmd = 'aks stop --resource-group={resource_group} --name={name}' + self.cmd(stop_cmd) + + start_cmd = 'aks start --resource-group={resource_group} --name={name}' + self.cmd(start_cmd) + + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_create_with_managed_disk(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name + }) + create_cmd = 'aks create --resource-group={resource_group} --name={name} ' \ + '--generate-ssh-keys ' \ + '--vm-set-type VirtualMachineScaleSets -c 1 ' \ + '--node-osdisk-type=Managed' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('agentPoolProfiles[0].osDiskType', 'Managed'), + ]) + + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_create_with_ephemeral_disk(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} ' \ + '--generate-ssh-keys ' \ + '--vm-set-type VirtualMachineScaleSets -c 1 ' \ + '--node-osdisk-type=Ephemeral --node-osdisk-size 60' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + self.check('agentPoolProfiles[0].osDiskType', 'Ephemeral'), + ]) + + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_nodepool_get_upgrades(self, resource_group, resource_group_location): + aks_name = self.create_random_name('cliakstest', 16) + node_pool_name = self.create_random_name('c', 6) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name, + 'node_pool_name': node_pool_name + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} ' \ + '--nodepool-name {node_pool_name} ' \ + '-c 1' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded'), + ]) + + # nodepool get-upgrades + self.cmd('aks nodepool get-upgrades ' + '--resource-group={resource_group} ' + '--cluster-name={name} ' + '--nodepool-name={node_pool_name}', + checks=[ + # if rerun the recording, please update latestNodeImageVersion to the latest value + self.check('latestNodeImageVersion', 'AKSUbuntu-1604-2020.09.03'), + self.check('type', "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles") + ]) + + # delete + self.cmd('aks delete -g {resource_group} -n {name} --yes --no-wait', checks=[self.is_empty()]) + + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_upgrade_node_image_only_cluster(self, resource_group, resource_group_location): + # kwargs for string formatting + aks_name = self.create_random_name('cliakstest', 16) + node_pool_name = self.create_random_name('c', 6) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name, + 'node_pool_name': node_pool_name + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} ' \ + '--nodepool-name {node_pool_name} ' \ + '--generate-ssh-keys ' \ + '--vm-set-type VirtualMachineScaleSets --node-count=1 ' \ + '-o json' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded') + ]) + + upgrade_node_image_only_cluster_cmd = 'aks upgrade ' \ + '-g {resource_group} ' \ + '-n {name} ' \ + '--node-image-only ' \ + '--yes' + self.cmd(upgrade_node_image_only_cluster_cmd, checks=[ + self.check('agentPoolProfiles[0].provisioningState', 'UpgradingNodeImageVersion') + ]) + + @AllowLargeResponse() + @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2') + def test_aks_upgrade_node_image_only_nodepool(self, resource_group, resource_group_location): + # kwargs for string formatting + aks_name = self.create_random_name('cliakstest', 16) + node_pool_name = self.create_random_name('c', 6) + self.kwargs.update({ + 'resource_group': resource_group, + 'name': aks_name, + 'node_pool_name': node_pool_name + }) + + create_cmd = 'aks create --resource-group={resource_group} --name={name} ' \ + '--nodepool-name {node_pool_name} ' \ + '--generate-ssh-keys ' \ + '--vm-set-type VirtualMachineScaleSets --node-count=1 ' \ + '-o json' + self.cmd(create_cmd, checks=[ + self.check('provisioningState', 'Succeeded') + ]) + + upgrade_node_image_only_nodepool_cmd = 'aks nodepool upgrade ' \ + '--resource-group {resource_group} ' \ + '--cluster-name {name} ' \ + '-n {node_pool_name} ' \ + '--node-image-only ' \ + '--no-wait' + self.cmd(upgrade_node_image_only_nodepool_cmd) + + get_nodepool_cmd = 'aks nodepool show ' \ + '--resource-group={resource_group} ' \ + '--cluster-name={name} ' \ + '-n {node_pool_name} ' + self.cmd(get_nodepool_cmd, checks=[ + self.check('provisioningState', 'UpgradingNodeImageVersion') ]) diff --git a/src/aks-preview/azext_aks_preview/tests/latest/test_validators.py b/src/aks-preview/azext_aks_preview/tests/latest/test_validators.py index 07532408b83..1f3dda2cecc 100644 --- a/src/aks-preview/azext_aks_preview/tests/latest/test_validators.py +++ b/src/aks-preview/azext_aks_preview/tests/latest/test_validators.py @@ -179,7 +179,7 @@ def test_throws_on_negative(self): class TestSpotMaxPrice(unittest.TestCase): def test_valid_cases(self): - valid = [5, 5.12345, -1.0] + valid = [5, 5.12345, -1.0, 0.068, 0.071, 5.00000000] for v in valid: validators.validate_spot_max_price(SpotMaxPriceNamespace(v)) @@ -192,6 +192,9 @@ def test_throws_if_non_valid_negative(self): with self.assertRaises(CLIError) as cm: validators.validate_spot_max_price(SpotMaxPriceNamespace(-2)) self.assertTrue('--spot_max_price can only be any decimal value greater than zero, or -1 which indicates' in str(cm.exception), msg=str(cm.exception)) + with self.assertRaises(CLIError) as cm: + validators.validate_spot_max_price(SpotMaxPriceNamespace(0)) + self.assertTrue('--spot_max_price can only be any decimal value greater than zero, or -1 which indicates' in str(cm.exception), msg=str(cm.exception)) def test_throws_if_input_max_price_for_regular(self): ns = SpotMaxPriceNamespace(2) diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/container_service_client.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/container_service_client.py index ff9d9440160..265f4e7410f 100644 --- a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/container_service_client.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/container_service_client.py @@ -157,6 +157,9 @@ def models(cls, api_version=DEFAULT_API_VERSION): elif api_version == '2020-06-01': from .v2020_06_01 import models return models + elif api_version == '2020-09-01': + from .v2020_09_01 import models + return models raise NotImplementedError("APIVersion {} is not available".format(api_version)) @property @@ -172,6 +175,7 @@ def agent_pools(self): * 2020-03-01: :class:`AgentPoolsOperations` * 2020-04-01: :class:`AgentPoolsOperations` * 2020-06-01: :class:`AgentPoolsOperations` + * 2020-09-01: :class:`AgentPoolsOperations` """ api_version = self._get_api_version('agent_pools') if api_version == '2019-02-01': @@ -192,6 +196,8 @@ def agent_pools(self): from .v2020_04_01.operations import AgentPoolsOperations as OperationClass elif api_version == '2020-06-01': from .v2020_06_01.operations import AgentPoolsOperations as OperationClass + elif api_version == '2020-09-01': + from .v2020_09_01.operations import AgentPoolsOperations as OperationClass else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -228,6 +234,9 @@ def container_services(self): elif api_version == '2020-06-01': from .v2019_04_01.operations import ContainerServicesOperations as OperationClass api_version = "2019-04-01" #2020-06-01 generated Python SDK contains no list_orchestrator op + elif api_version == '2020-09-01': + from .v2019_04_01.operations import ContainerServicesOperations as OperationClass + api_version = "2019-04-01" #2020-09-01 generated Python SDK contains no list_orchestrator op else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -247,6 +256,7 @@ def managed_clusters(self): * 2020-03-01: :class:`ManagedClustersOperations` * 2020-04-01: :class:`ManagedClustersOperations` * 2020-06-01: :class:`ManagedClustersOperations` + * 2020-09-01: :class:`ManagedClustersOperations` """ api_version = self._get_api_version('managed_clusters') if api_version == '2018-03-31': @@ -271,6 +281,8 @@ def managed_clusters(self): from .v2020_04_01.operations import ManagedClustersOperations as OperationClass elif api_version == '2020-06-01': from .v2020_06_01.operations import ManagedClustersOperations as OperationClass + elif api_version == '2020-09-01': + from .v2020_09_01.operations import ManagedClustersOperations as OperationClass else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) @@ -303,6 +315,7 @@ def operations(self): * 2020-03-01: :class:`Operations` * 2020-04-01: :class:`Operations` * 2020-06-01: :class:`Operations` + * 2020-09-01: :class:`Operations` """ api_version = self._get_api_version('operations') if api_version == '2018-03-31': @@ -327,6 +340,8 @@ def operations(self): from .v2020_04_01.operations import Operations as OperationClass elif api_version == '2020-06-01': from .v2020_06_01.operations import Operations as OperationClass + elif api_version == '2020-09-01': + from .v2020_09_01.operations import Operations as OperationClass else: raise NotImplementedError("APIVersion {} is not available".format(api_version)) return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models.py index 705447dba3f..46b7c9fd401 100644 --- a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/models.py @@ -21,4 +21,5 @@ from .v2020_02_01.models import * from .v2020_03_01.models import * from .v2020_04_01.models import * -from .v2020_06_01.models import * \ No newline at end of file +from .v2020_06_01.models import * +from .v2020_09_01.models import * diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/__init__.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/__init__.py new file mode 100644 index 00000000000..b7cb9d01cb1 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/__init__.py @@ -0,0 +1,19 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._configuration import ContainerServiceClientConfiguration +from ._container_service_client import ContainerServiceClient +__all__ = ['ContainerServiceClient', 'ContainerServiceClientConfiguration'] + +from .version import VERSION + +__version__ = VERSION + diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/_configuration.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/_configuration.py similarity index 85% rename from src/connectedmachine/azext_connectedmachine/vendored_sdks/_configuration.py rename to src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/_configuration.py index 869afbc539a..e94fbc7005d 100644 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/_configuration.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/_configuration.py @@ -13,8 +13,8 @@ from .version import VERSION -class HybridComputeManagementClientConfiguration(AzureConfiguration): - """Configuration for HybridComputeManagementClient +class ContainerServiceClientConfiguration(AzureConfiguration): + """Configuration for ContainerServiceClient Note that all parameters used to create this instance are saved as instance attributes. @@ -38,12 +38,12 @@ def __init__( if not base_url: base_url = 'https://management.azure.com' - super(HybridComputeManagementClientConfiguration, self).__init__(base_url) + super(ContainerServiceClientConfiguration, self).__init__(base_url) # Starting Autorest.Python 4.0.64, make connection pool activated by default self.keep_alive = True - self.add_user_agent('azure-mgmt-hybridcompute/{}'.format(VERSION)) + self.add_user_agent('azure-mgmt-containerservice/{}'.format(VERSION)) self.add_user_agent('Azure-SDK-For-Python') self.credentials = credentials diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/_container_service_client.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/_container_service_client.py new file mode 100644 index 00000000000..9edc6189016 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/_container_service_client.py @@ -0,0 +1,76 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.service_client import SDKClient +from msrest import Serializer, Deserializer + +from ._configuration import ContainerServiceClientConfiguration +from .operations import Operations +from .operations import ManagedClustersOperations +from .operations import AgentPoolsOperations +from .operations import PrivateEndpointConnectionsOperations +from .operations import PrivateLinkResourcesOperations +from .operations import ResolvePrivateLinkServiceIdOperations +from . import models + + +class ContainerServiceClient(SDKClient): + """The Container Service Client. + + :ivar config: Configuration for client. + :vartype config: ContainerServiceClientConfiguration + + :ivar operations: Operations operations + :vartype operations: azure.mgmt.containerservice.v2020_09_01.operations.Operations + :ivar managed_clusters: ManagedClusters operations + :vartype managed_clusters: azure.mgmt.containerservice.v2020_09_01.operations.ManagedClustersOperations + :ivar agent_pools: AgentPools operations + :vartype agent_pools: azure.mgmt.containerservice.v2020_09_01.operations.AgentPoolsOperations + :ivar private_endpoint_connections: PrivateEndpointConnections operations + :vartype private_endpoint_connections: azure.mgmt.containerservice.v2020_09_01.operations.PrivateEndpointConnectionsOperations + :ivar private_link_resources: PrivateLinkResources operations + :vartype private_link_resources: azure.mgmt.containerservice.v2020_09_01.operations.PrivateLinkResourcesOperations + :ivar resolve_private_link_service_id: ResolvePrivateLinkServiceId operations + :vartype resolve_private_link_service_id: azure.mgmt.containerservice.v2020_09_01.operations.ResolvePrivateLinkServiceIdOperations + + :param credentials: Credentials needed for the client to connect to Azure. + :type credentials: :mod:`A msrestazure Credentials + object` + :param subscription_id: Subscription credentials which uniquely identify + Microsoft Azure subscription. The subscription ID forms part of the URI + for every service call. + :type subscription_id: str + :param str base_url: Service URL + """ + + def __init__( + self, credentials, subscription_id, base_url=None): + + self.config = ContainerServiceClientConfiguration(credentials, subscription_id, base_url) + super(ContainerServiceClient, self).__init__(self.config.credentials, self.config) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self.api_version = '2020-09-01' + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.operations = Operations( + self._client, self.config, self._serialize, self._deserialize) + self.managed_clusters = ManagedClustersOperations( + self._client, self.config, self._serialize, self._deserialize) + self.agent_pools = AgentPoolsOperations( + self._client, self.config, self._serialize, self._deserialize) + self.private_endpoint_connections = PrivateEndpointConnectionsOperations( + self._client, self.config, self._serialize, self._deserialize) + self.private_link_resources = PrivateLinkResourcesOperations( + self._client, self.config, self._serialize, self._deserialize) + self.resolve_private_link_service_id = ResolvePrivateLinkServiceIdOperations( + self._client, self.config, self._serialize, self._deserialize) diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/__init__.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/__init__.py new file mode 100644 index 00000000000..e6f8e63bc67 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/__init__.py @@ -0,0 +1,216 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import AgentPool + from ._models_py3 import AgentPoolAvailableVersions + from ._models_py3 import AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem + from ._models_py3 import AgentPoolUpgradeProfile + from ._models_py3 import AgentPoolUpgradeProfilePropertiesUpgradesItem + from ._models_py3 import AgentPoolUpgradeSettings + from ._models_py3 import ContainerServiceDiagnosticsProfile + from ._models_py3 import ContainerServiceLinuxProfile + from ._models_py3 import ContainerServiceMasterProfile + from ._models_py3 import ContainerServiceNetworkProfile + from ._models_py3 import ContainerServiceSshConfiguration + from ._models_py3 import ContainerServiceSshPublicKey + from ._models_py3 import ContainerServiceVMDiagnostics + from ._models_py3 import CredentialResult + from ._models_py3 import CredentialResults + from ._models_py3 import ManagedCluster + from ._models_py3 import ManagedClusterAADProfile + from ._models_py3 import ManagedClusterAccessProfile + from ._models_py3 import ManagedClusterAddonProfile + from ._models_py3 import ManagedClusterAddonProfileIdentity + from ._models_py3 import ManagedClusterAgentPoolProfile + from ._models_py3 import ManagedClusterAgentPoolProfileProperties + from ._models_py3 import ManagedClusterAPIServerAccessProfile + from ._models_py3 import ManagedClusterIdentity + from ._models_py3 import ManagedClusterIdentityUserAssignedIdentitiesValue + from ._models_py3 import ManagedClusterLoadBalancerProfile + from ._models_py3 import ManagedClusterLoadBalancerProfileManagedOutboundIPs + from ._models_py3 import ManagedClusterLoadBalancerProfileOutboundIPPrefixes + from ._models_py3 import ManagedClusterLoadBalancerProfileOutboundIPs + from ._models_py3 import ManagedClusterPoolUpgradeProfile + from ._models_py3 import ManagedClusterPoolUpgradeProfileUpgradesItem + from ._models_py3 import ManagedClusterPropertiesAutoScalerProfile + from ._models_py3 import ManagedClusterPropertiesIdentityProfileValue + from ._models_py3 import ManagedClusterServicePrincipalProfile + from ._models_py3 import ManagedClusterSKU + from ._models_py3 import ManagedClusterUpgradeProfile + from ._models_py3 import ManagedClusterWindowsProfile + from ._models_py3 import OperationValue + from ._models_py3 import PowerState + from ._models_py3 import PrivateEndpoint + from ._models_py3 import PrivateEndpointConnection + from ._models_py3 import PrivateEndpointConnectionListResult + from ._models_py3 import PrivateLinkResource + from ._models_py3 import PrivateLinkResourcesListResult + from ._models_py3 import PrivateLinkServiceConnectionState + from ._models_py3 import Resource + from ._models_py3 import ResourceReference + from ._models_py3 import SubResource + from ._models_py3 import TagsObject + from ._models_py3 import UserAssignedIdentity +except (SyntaxError, ImportError): + from ._models import AgentPool + from ._models import AgentPoolAvailableVersions + from ._models import AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem + from ._models import AgentPoolUpgradeProfile + from ._models import AgentPoolUpgradeProfilePropertiesUpgradesItem + from ._models import AgentPoolUpgradeSettings + from ._models import ContainerServiceDiagnosticsProfile + from ._models import ContainerServiceLinuxProfile + from ._models import ContainerServiceMasterProfile + from ._models import ContainerServiceNetworkProfile + from ._models import ContainerServiceSshConfiguration + from ._models import ContainerServiceSshPublicKey + from ._models import ContainerServiceVMDiagnostics + from ._models import CredentialResult + from ._models import CredentialResults + from ._models import ManagedCluster + from ._models import ManagedClusterAADProfile + from ._models import ManagedClusterAccessProfile + from ._models import ManagedClusterAddonProfile + from ._models import ManagedClusterAddonProfileIdentity + from ._models import ManagedClusterAgentPoolProfile + from ._models import ManagedClusterAgentPoolProfileProperties + from ._models import ManagedClusterAPIServerAccessProfile + from ._models import ManagedClusterIdentity + from ._models import ManagedClusterIdentityUserAssignedIdentitiesValue + from ._models import ManagedClusterLoadBalancerProfile + from ._models import ManagedClusterLoadBalancerProfileManagedOutboundIPs + from ._models import ManagedClusterLoadBalancerProfileOutboundIPPrefixes + from ._models import ManagedClusterLoadBalancerProfileOutboundIPs + from ._models import ManagedClusterPoolUpgradeProfile + from ._models import ManagedClusterPoolUpgradeProfileUpgradesItem + from ._models import ManagedClusterPropertiesAutoScalerProfile + from ._models import ManagedClusterPropertiesIdentityProfileValue + from ._models import ManagedClusterServicePrincipalProfile + from ._models import ManagedClusterSKU + from ._models import ManagedClusterUpgradeProfile + from ._models import ManagedClusterWindowsProfile + from ._models import OperationValue + from ._models import PowerState + from ._models import PrivateEndpoint + from ._models import PrivateEndpointConnection + from ._models import PrivateEndpointConnectionListResult + from ._models import PrivateLinkResource + from ._models import PrivateLinkResourcesListResult + from ._models import PrivateLinkServiceConnectionState + from ._models import Resource + from ._models import ResourceReference + from ._models import SubResource + from ._models import TagsObject + from ._models import UserAssignedIdentity +from ._paged_models import AgentPoolPaged +from ._paged_models import ManagedClusterPaged +from ._paged_models import OperationValuePaged +from ._container_service_client_enums import ( + ContainerServiceStorageProfileTypes, + ContainerServiceVMSizeTypes, + OSDiskType, + OSType, + AgentPoolType, + AgentPoolMode, + Code, + ScaleSetPriority, + ScaleSetEvictionPolicy, + LicenseType, + NetworkPlugin, + NetworkPolicy, + NetworkMode, + OutboundType, + LoadBalancerSku, + Expander, + ResourceIdentityType, + ManagedClusterSKUName, + ManagedClusterSKUTier, + PrivateEndpointConnectionProvisioningState, + ConnectionStatus, +) + +__all__ = [ + 'AgentPool', + 'AgentPoolAvailableVersions', + 'AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem', + 'AgentPoolUpgradeProfile', + 'AgentPoolUpgradeProfilePropertiesUpgradesItem', + 'AgentPoolUpgradeSettings', + 'ContainerServiceDiagnosticsProfile', + 'ContainerServiceLinuxProfile', + 'ContainerServiceMasterProfile', + 'ContainerServiceNetworkProfile', + 'ContainerServiceSshConfiguration', + 'ContainerServiceSshPublicKey', + 'ContainerServiceVMDiagnostics', + 'CredentialResult', + 'CredentialResults', + 'ManagedCluster', + 'ManagedClusterAADProfile', + 'ManagedClusterAccessProfile', + 'ManagedClusterAddonProfile', + 'ManagedClusterAddonProfileIdentity', + 'ManagedClusterAgentPoolProfile', + 'ManagedClusterAgentPoolProfileProperties', + 'ManagedClusterAPIServerAccessProfile', + 'ManagedClusterIdentity', + 'ManagedClusterIdentityUserAssignedIdentitiesValue', + 'ManagedClusterLoadBalancerProfile', + 'ManagedClusterLoadBalancerProfileManagedOutboundIPs', + 'ManagedClusterLoadBalancerProfileOutboundIPPrefixes', + 'ManagedClusterLoadBalancerProfileOutboundIPs', + 'ManagedClusterPoolUpgradeProfile', + 'ManagedClusterPoolUpgradeProfileUpgradesItem', + 'ManagedClusterPropertiesAutoScalerProfile', + 'ManagedClusterPropertiesIdentityProfileValue', + 'ManagedClusterServicePrincipalProfile', + 'ManagedClusterSKU', + 'ManagedClusterUpgradeProfile', + 'ManagedClusterWindowsProfile', + 'OperationValue', + 'PowerState', + 'PrivateEndpoint', + 'PrivateEndpointConnection', + 'PrivateEndpointConnectionListResult', + 'PrivateLinkResource', + 'PrivateLinkResourcesListResult', + 'PrivateLinkServiceConnectionState', + 'Resource', + 'ResourceReference', + 'SubResource', + 'TagsObject', + 'UserAssignedIdentity', + 'OperationValuePaged', + 'ManagedClusterPaged', + 'AgentPoolPaged', + 'ContainerServiceStorageProfileTypes', + 'ContainerServiceVMSizeTypes', + 'OSDiskType', + 'OSType', + 'AgentPoolType', + 'AgentPoolMode', + 'Code', + 'ScaleSetPriority', + 'ScaleSetEvictionPolicy', + 'LicenseType', + 'NetworkPlugin', + 'NetworkPolicy', + 'NetworkMode', + 'OutboundType', + 'LoadBalancerSku', + 'Expander', + 'ResourceIdentityType', + 'ManagedClusterSKUName', + 'ManagedClusterSKUTier', + 'PrivateEndpointConnectionProvisioningState', + 'ConnectionStatus', +] diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_container_service_client_enums.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_container_service_client_enums.py new file mode 100644 index 00000000000..05f02c62b83 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_container_service_client_enums.py @@ -0,0 +1,315 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum + + +class ContainerServiceStorageProfileTypes(str, Enum): + + storage_account = "StorageAccount" + managed_disks = "ManagedDisks" + + +class ContainerServiceVMSizeTypes(str, Enum): + + standard_a1 = "Standard_A1" + standard_a10 = "Standard_A10" + standard_a11 = "Standard_A11" + standard_a1_v2 = "Standard_A1_v2" + standard_a2 = "Standard_A2" + standard_a2_v2 = "Standard_A2_v2" + standard_a2m_v2 = "Standard_A2m_v2" + standard_a3 = "Standard_A3" + standard_a4 = "Standard_A4" + standard_a4_v2 = "Standard_A4_v2" + standard_a4m_v2 = "Standard_A4m_v2" + standard_a5 = "Standard_A5" + standard_a6 = "Standard_A6" + standard_a7 = "Standard_A7" + standard_a8 = "Standard_A8" + standard_a8_v2 = "Standard_A8_v2" + standard_a8m_v2 = "Standard_A8m_v2" + standard_a9 = "Standard_A9" + standard_b2ms = "Standard_B2ms" + standard_b2s = "Standard_B2s" + standard_b4ms = "Standard_B4ms" + standard_b8ms = "Standard_B8ms" + standard_d1 = "Standard_D1" + standard_d11 = "Standard_D11" + standard_d11_v2 = "Standard_D11_v2" + standard_d11_v2_promo = "Standard_D11_v2_Promo" + standard_d12 = "Standard_D12" + standard_d12_v2 = "Standard_D12_v2" + standard_d12_v2_promo = "Standard_D12_v2_Promo" + standard_d13 = "Standard_D13" + standard_d13_v2 = "Standard_D13_v2" + standard_d13_v2_promo = "Standard_D13_v2_Promo" + standard_d14 = "Standard_D14" + standard_d14_v2 = "Standard_D14_v2" + standard_d14_v2_promo = "Standard_D14_v2_Promo" + standard_d15_v2 = "Standard_D15_v2" + standard_d16_v3 = "Standard_D16_v3" + standard_d16s_v3 = "Standard_D16s_v3" + standard_d1_v2 = "Standard_D1_v2" + standard_d2 = "Standard_D2" + standard_d2_v2 = "Standard_D2_v2" + standard_d2_v2_promo = "Standard_D2_v2_Promo" + standard_d2_v3 = "Standard_D2_v3" + standard_d2s_v3 = "Standard_D2s_v3" + standard_d3 = "Standard_D3" + standard_d32_v3 = "Standard_D32_v3" + standard_d32s_v3 = "Standard_D32s_v3" + standard_d3_v2 = "Standard_D3_v2" + standard_d3_v2_promo = "Standard_D3_v2_Promo" + standard_d4 = "Standard_D4" + standard_d4_v2 = "Standard_D4_v2" + standard_d4_v2_promo = "Standard_D4_v2_Promo" + standard_d4_v3 = "Standard_D4_v3" + standard_d4s_v3 = "Standard_D4s_v3" + standard_d5_v2 = "Standard_D5_v2" + standard_d5_v2_promo = "Standard_D5_v2_Promo" + standard_d64_v3 = "Standard_D64_v3" + standard_d64s_v3 = "Standard_D64s_v3" + standard_d8_v3 = "Standard_D8_v3" + standard_d8s_v3 = "Standard_D8s_v3" + standard_ds1 = "Standard_DS1" + standard_ds11 = "Standard_DS11" + standard_ds11_v2 = "Standard_DS11_v2" + standard_ds11_v2_promo = "Standard_DS11_v2_Promo" + standard_ds12 = "Standard_DS12" + standard_ds12_v2 = "Standard_DS12_v2" + standard_ds12_v2_promo = "Standard_DS12_v2_Promo" + standard_ds13 = "Standard_DS13" + standard_ds13_2_v2 = "Standard_DS13-2_v2" + standard_ds13_4_v2 = "Standard_DS13-4_v2" + standard_ds13_v2 = "Standard_DS13_v2" + standard_ds13_v2_promo = "Standard_DS13_v2_Promo" + standard_ds14 = "Standard_DS14" + standard_ds14_4_v2 = "Standard_DS14-4_v2" + standard_ds14_8_v2 = "Standard_DS14-8_v2" + standard_ds14_v2 = "Standard_DS14_v2" + standard_ds14_v2_promo = "Standard_DS14_v2_Promo" + standard_ds15_v2 = "Standard_DS15_v2" + standard_ds1_v2 = "Standard_DS1_v2" + standard_ds2 = "Standard_DS2" + standard_ds2_v2 = "Standard_DS2_v2" + standard_ds2_v2_promo = "Standard_DS2_v2_Promo" + standard_ds3 = "Standard_DS3" + standard_ds3_v2 = "Standard_DS3_v2" + standard_ds3_v2_promo = "Standard_DS3_v2_Promo" + standard_ds4 = "Standard_DS4" + standard_ds4_v2 = "Standard_DS4_v2" + standard_ds4_v2_promo = "Standard_DS4_v2_Promo" + standard_ds5_v2 = "Standard_DS5_v2" + standard_ds5_v2_promo = "Standard_DS5_v2_Promo" + standard_e16_v3 = "Standard_E16_v3" + standard_e16s_v3 = "Standard_E16s_v3" + standard_e2_v3 = "Standard_E2_v3" + standard_e2s_v3 = "Standard_E2s_v3" + standard_e32_16s_v3 = "Standard_E32-16s_v3" + standard_e32_8s_v3 = "Standard_E32-8s_v3" + standard_e32_v3 = "Standard_E32_v3" + standard_e32s_v3 = "Standard_E32s_v3" + standard_e4_v3 = "Standard_E4_v3" + standard_e4s_v3 = "Standard_E4s_v3" + standard_e64_16s_v3 = "Standard_E64-16s_v3" + standard_e64_32s_v3 = "Standard_E64-32s_v3" + standard_e64_v3 = "Standard_E64_v3" + standard_e64s_v3 = "Standard_E64s_v3" + standard_e8_v3 = "Standard_E8_v3" + standard_e8s_v3 = "Standard_E8s_v3" + standard_f1 = "Standard_F1" + standard_f16 = "Standard_F16" + standard_f16s = "Standard_F16s" + standard_f16s_v2 = "Standard_F16s_v2" + standard_f1s = "Standard_F1s" + standard_f2 = "Standard_F2" + standard_f2s = "Standard_F2s" + standard_f2s_v2 = "Standard_F2s_v2" + standard_f32s_v2 = "Standard_F32s_v2" + standard_f4 = "Standard_F4" + standard_f4s = "Standard_F4s" + standard_f4s_v2 = "Standard_F4s_v2" + standard_f64s_v2 = "Standard_F64s_v2" + standard_f72s_v2 = "Standard_F72s_v2" + standard_f8 = "Standard_F8" + standard_f8s = "Standard_F8s" + standard_f8s_v2 = "Standard_F8s_v2" + standard_g1 = "Standard_G1" + standard_g2 = "Standard_G2" + standard_g3 = "Standard_G3" + standard_g4 = "Standard_G4" + standard_g5 = "Standard_G5" + standard_gs1 = "Standard_GS1" + standard_gs2 = "Standard_GS2" + standard_gs3 = "Standard_GS3" + standard_gs4 = "Standard_GS4" + standard_gs4_4 = "Standard_GS4-4" + standard_gs4_8 = "Standard_GS4-8" + standard_gs5 = "Standard_GS5" + standard_gs5_16 = "Standard_GS5-16" + standard_gs5_8 = "Standard_GS5-8" + standard_h16 = "Standard_H16" + standard_h16m = "Standard_H16m" + standard_h16mr = "Standard_H16mr" + standard_h16r = "Standard_H16r" + standard_h8 = "Standard_H8" + standard_h8m = "Standard_H8m" + standard_l16s = "Standard_L16s" + standard_l32s = "Standard_L32s" + standard_l4s = "Standard_L4s" + standard_l8s = "Standard_L8s" + standard_m128_32ms = "Standard_M128-32ms" + standard_m128_64ms = "Standard_M128-64ms" + standard_m128ms = "Standard_M128ms" + standard_m128s = "Standard_M128s" + standard_m64_16ms = "Standard_M64-16ms" + standard_m64_32ms = "Standard_M64-32ms" + standard_m64ms = "Standard_M64ms" + standard_m64s = "Standard_M64s" + standard_nc12 = "Standard_NC12" + standard_nc12s_v2 = "Standard_NC12s_v2" + standard_nc12s_v3 = "Standard_NC12s_v3" + standard_nc24 = "Standard_NC24" + standard_nc24r = "Standard_NC24r" + standard_nc24rs_v2 = "Standard_NC24rs_v2" + standard_nc24rs_v3 = "Standard_NC24rs_v3" + standard_nc24s_v2 = "Standard_NC24s_v2" + standard_nc24s_v3 = "Standard_NC24s_v3" + standard_nc6 = "Standard_NC6" + standard_nc6s_v2 = "Standard_NC6s_v2" + standard_nc6s_v3 = "Standard_NC6s_v3" + standard_nd12s = "Standard_ND12s" + standard_nd24rs = "Standard_ND24rs" + standard_nd24s = "Standard_ND24s" + standard_nd6s = "Standard_ND6s" + standard_nv12 = "Standard_NV12" + standard_nv24 = "Standard_NV24" + standard_nv6 = "Standard_NV6" + + +class OSDiskType(str, Enum): + + managed = "Managed" + ephemeral = "Ephemeral" + + +class OSType(str, Enum): + + linux = "Linux" + windows = "Windows" + + +class AgentPoolType(str, Enum): + + virtual_machine_scale_sets = "VirtualMachineScaleSets" + availability_set = "AvailabilitySet" + + +class AgentPoolMode(str, Enum): + + system = "System" + user = "User" + + +class Code(str, Enum): + + running = "Running" + stopped = "Stopped" + + +class ScaleSetPriority(str, Enum): + + spot = "Spot" + regular = "Regular" + + +class ScaleSetEvictionPolicy(str, Enum): + + delete = "Delete" + deallocate = "Deallocate" + + +class LicenseType(str, Enum): + + none = "None" + windows_server = "Windows_Server" + + +class NetworkPlugin(str, Enum): + + azure = "azure" + kubenet = "kubenet" + + +class NetworkPolicy(str, Enum): + + calico = "calico" + azure = "azure" + + +class NetworkMode(str, Enum): + + transparent = "transparent" + bridge = "bridge" + + +class OutboundType(str, Enum): + + load_balancer = "loadBalancer" + user_defined_routing = "userDefinedRouting" + + +class LoadBalancerSku(str, Enum): + + standard = "standard" + basic = "basic" + + +class Expander(str, Enum): + + least_waste = "least-waste" + most_pods = "most-pods" + random = "random" + + +class ResourceIdentityType(str, Enum): + + system_assigned = "SystemAssigned" + user_assigned = "UserAssigned" + none = "None" + + +class ManagedClusterSKUName(str, Enum): + + basic = "Basic" + + +class ManagedClusterSKUTier(str, Enum): + + paid = "Paid" + free = "Free" + + +class PrivateEndpointConnectionProvisioningState(str, Enum): + + succeeded = "Succeeded" + creating = "Creating" + deleting = "Deleting" + failed = "Failed" + + +class ConnectionStatus(str, Enum): + + pending = "Pending" + approved = "Approved" + rejected = "Rejected" + disconnected = "Disconnected" diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_models.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_models.py new file mode 100644 index 00000000000..9141e796265 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_models.py @@ -0,0 +1,2421 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class SubResource(Model): + """Reference to another subresource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: The name of the resource that is unique within a resource + group. This name can be used to access the resource. + :vartype name: str + :ivar type: Resource type + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(SubResource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class AgentPool(SubResource): + """Agent Pool. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: The name of the resource that is unique within a resource + group. This name can be used to access the resource. + :vartype name: str + :ivar type: Resource type + :vartype type: str + :param count: Number of agents (VMs) to host docker containers. Allowed + values must be in the range of 0 to 100 (inclusive) for user pools and in + the range of 1 to 100 (inclusive) for system pools. The default value is + 1. + :type count: int + :param vm_size: Size of agent VMs. Possible values include: 'Standard_A1', + 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', + 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', + 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', + 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', + 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', + 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', + 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', + 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', + 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', + 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', + 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', + 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', + 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', + 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', + 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', + 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', + 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', + 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', + 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', + 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', + 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', + 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', + 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', + 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', + 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', + 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', + 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', + 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', + 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', + 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', + 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', + 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', + 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', + 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', + 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', + 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', + 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', + 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', + 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', + 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', + 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', + 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', + 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', + 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', + 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', + 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', + 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', + 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', + 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', + 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6' + :type vm_size: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk + size for every machine in this master/agent pool. If you specify 0, it + will apply the default osDisk size according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: OS disk type to be used for machines in a given agent + pool. Allowed values are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. + May not be changed after creation. Possible values include: 'Managed', + 'Ephemeral' + :type os_disk_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSDiskType + :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet + identifier. + :type vnet_subnet_id: str + :param max_pods: Maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: OsType to be used to specify os type. Choose from Linux + and Windows. Default to Linux. Possible values include: 'Linux', + 'Windows'. Default value: "Linux" . + :type os_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSType + :param max_count: Maximum number of nodes for auto-scaling + :type max_count: int + :param min_count: Minimum number of nodes for auto-scaling + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler + :type enable_auto_scaling: bool + :param agent_pool_type: AgentPoolType represents types of an agent pool. + Possible values include: 'VirtualMachineScaleSets', 'AvailabilitySet' + :type agent_pool_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolType + :param mode: AgentPoolMode represents mode of an agent pool. Possible + values include: 'System', 'User' + :type mode: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolMode + :param orchestrator_version: Version of orchestrator specified when + creating the managed cluster. + :type orchestrator_version: str + :ivar node_image_version: Version of node image + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool + :type upgrade_settings: + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state, + which only appears in the response. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped + :vartype power_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PowerState + :param availability_zones: Availability zones for nodes. Must use + VirtualMachineScaleSets AgentPoolType. + :type availability_zones: list[str] + :param enable_node_public_ip: Enable public IP for nodes + :type enable_node_public_ip: bool + :param scale_set_priority: ScaleSetPriority to be used to specify virtual + machine scale set priority. Default to regular. Possible values include: + 'Spot', 'Regular'. Default value: "Regular" . + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetPriority + :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to + specify eviction policy for Spot virtual machine scale set. Default to + Delete. Possible values include: 'Delete', 'Deallocate'. Default value: + "Delete" . + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetEvictionPolicy + :param spot_max_price: SpotMaxPrice to be used to specify the maximum + price you are willing to pay in US Dollars. Possible values are any + decimal value greater than zero or -1 which indicates default price to be + up-to on-demand. + :type spot_max_price: float + :param tags: Agent pool tags to be persisted on the agent pool virtual + machine scale set. + :type tags: dict[str, str] + :param node_labels: Agent pool node labels to be persisted across all + nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: Taints added to new nodes during node pool create and + scale. For example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'count': {'key': 'properties.count', 'type': 'int'}, + 'vm_size': {'key': 'properties.vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'properties.osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'properties.osDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'properties.vnetSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'properties.maxPods', 'type': 'int'}, + 'os_type': {'key': 'properties.osType', 'type': 'str'}, + 'max_count': {'key': 'properties.maxCount', 'type': 'int'}, + 'min_count': {'key': 'properties.minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'properties.enableAutoScaling', 'type': 'bool'}, + 'agent_pool_type': {'key': 'properties.type', 'type': 'str'}, + 'mode': {'key': 'properties.mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'properties.orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'properties.nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'properties.upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'properties.availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'properties.enableNodePublicIP', 'type': 'bool'}, + 'scale_set_priority': {'key': 'properties.scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'properties.scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'properties.spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'properties.tags', 'type': '{str}'}, + 'node_labels': {'key': 'properties.nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'properties.nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'properties.proximityPlacementGroupID', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AgentPool, self).__init__(**kwargs) + self.count = kwargs.get('count', None) + self.vm_size = kwargs.get('vm_size', None) + self.os_disk_size_gb = kwargs.get('os_disk_size_gb', None) + self.os_disk_type = kwargs.get('os_disk_type', None) + self.vnet_subnet_id = kwargs.get('vnet_subnet_id', None) + self.max_pods = kwargs.get('max_pods', None) + self.os_type = kwargs.get('os_type', "Linux") + self.max_count = kwargs.get('max_count', None) + self.min_count = kwargs.get('min_count', None) + self.enable_auto_scaling = kwargs.get('enable_auto_scaling', None) + self.agent_pool_type = kwargs.get('agent_pool_type', None) + self.mode = kwargs.get('mode', None) + self.orchestrator_version = kwargs.get('orchestrator_version', None) + self.node_image_version = None + self.upgrade_settings = kwargs.get('upgrade_settings', None) + self.provisioning_state = None + self.power_state = None + self.availability_zones = kwargs.get('availability_zones', None) + self.enable_node_public_ip = kwargs.get('enable_node_public_ip', None) + self.scale_set_priority = kwargs.get('scale_set_priority', "Regular") + self.scale_set_eviction_policy = kwargs.get('scale_set_eviction_policy', "Delete") + self.spot_max_price = kwargs.get('spot_max_price', None) + self.tags = kwargs.get('tags', None) + self.node_labels = kwargs.get('node_labels', None) + self.node_taints = kwargs.get('node_taints', None) + self.proximity_placement_group_id = kwargs.get('proximity_placement_group_id', None) + + +class AgentPoolAvailableVersions(Model): + """The list of available versions for an agent pool. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Id of the agent pool available versions. + :vartype id: str + :ivar name: Name of the agent pool available versions. + :vartype name: str + :ivar type: Type of the agent pool available versions. + :vartype type: str + :param agent_pool_versions: List of versions available for agent pool. + :type agent_pool_versions: + list[~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'agent_pool_versions': {'key': 'properties.agentPoolVersions', 'type': '[AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem]'}, + } + + def __init__(self, **kwargs): + super(AgentPoolAvailableVersions, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.agent_pool_versions = kwargs.get('agent_pool_versions', None) + + +class AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem(Model): + """AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem. + + :param default: Whether this version is the default agent pool version. + :type default: bool + :param kubernetes_version: Kubernetes version (major, minor, patch). + :type kubernetes_version: str + :param is_preview: Whether Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'default': {'key': 'default', 'type': 'bool'}, + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem, self).__init__(**kwargs) + self.default = kwargs.get('default', None) + self.kubernetes_version = kwargs.get('kubernetes_version', None) + self.is_preview = kwargs.get('is_preview', None) + + +class AgentPoolUpgradeProfile(Model): + """The list of available upgrades for an agent pool. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Id of the agent pool upgrade profile. + :vartype id: str + :ivar name: Name of the agent pool upgrade profile. + :vartype name: str + :ivar type: Type of the agent pool upgrade profile. + :vartype type: str + :param kubernetes_version: Required. Kubernetes version (major, minor, + patch). + :type kubernetes_version: str + :param os_type: Required. OsType to be used to specify os type. Choose + from Linux and Windows. Default to Linux. Possible values include: + 'Linux', 'Windows'. Default value: "Linux" . + :type os_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSType + :param upgrades: List of orchestrator types and versions available for + upgrade. + :type upgrades: + list[~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeProfilePropertiesUpgradesItem] + :param latest_node_image_version: LatestNodeImageVersion is the latest AKS + supported node image version. + :type latest_node_image_version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'kubernetes_version': {'required': True}, + 'os_type': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, + 'os_type': {'key': 'properties.osType', 'type': 'str'}, + 'upgrades': {'key': 'properties.upgrades', 'type': '[AgentPoolUpgradeProfilePropertiesUpgradesItem]'}, + 'latest_node_image_version': {'key': 'properties.latestNodeImageVersion', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AgentPoolUpgradeProfile, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.kubernetes_version = kwargs.get('kubernetes_version', None) + self.os_type = kwargs.get('os_type', "Linux") + self.upgrades = kwargs.get('upgrades', None) + self.latest_node_image_version = kwargs.get('latest_node_image_version', None) + + +class AgentPoolUpgradeProfilePropertiesUpgradesItem(Model): + """AgentPoolUpgradeProfilePropertiesUpgradesItem. + + :param kubernetes_version: Kubernetes version (major, minor, patch). + :type kubernetes_version: str + :param is_preview: Whether Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(AgentPoolUpgradeProfilePropertiesUpgradesItem, self).__init__(**kwargs) + self.kubernetes_version = kwargs.get('kubernetes_version', None) + self.is_preview = kwargs.get('is_preview', None) + + +class AgentPoolUpgradeSettings(Model): + """Settings for upgrading an agentpool. + + :param max_surge: Count or percentage of additional nodes to be added + during upgrade. If empty uses AKS default + :type max_surge: str + """ + + _attribute_map = { + 'max_surge': {'key': 'maxSurge', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AgentPoolUpgradeSettings, self).__init__(**kwargs) + self.max_surge = kwargs.get('max_surge', None) + + +class CloudError(Model): + """An error response from the Container service. + + :param error: Details about the error. + :type error: + ~azure.mgmt.containerservice.v2020_09_01.models.CloudErrorBody + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'CloudErrorBody'}, + } + + def __init__(self, **kwargs): + super(CloudError, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class CloudErrorException(HttpOperationError): + """Server responsed with exception of type: 'CloudError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(CloudErrorException, self).__init__(deserialize, response, 'CloudError', *args) + + +class CloudErrorBody(Model): + """An error response from the Container service. + + :param code: An identifier for the error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable + for display in a user interface. + :type message: str + :param target: The target of the particular error. For example, the name + of the property in error. + :type target: str + :param details: A list of additional details about the error. + :type details: + list[~azure.mgmt.containerservice.v2020_09_01.models.CloudErrorBody] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, + } + + def __init__(self, **kwargs): + super(CloudErrorBody, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.target = kwargs.get('target', None) + self.details = kwargs.get('details', None) + + +class ContainerServiceDiagnosticsProfile(Model): + """Profile for diagnostics on the container service cluster. + + All required parameters must be populated in order to send to Azure. + + :param vm_diagnostics: Required. Profile for diagnostics on the container + service VMs. + :type vm_diagnostics: + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMDiagnostics + """ + + _validation = { + 'vm_diagnostics': {'required': True}, + } + + _attribute_map = { + 'vm_diagnostics': {'key': 'vmDiagnostics', 'type': 'ContainerServiceVMDiagnostics'}, + } + + def __init__(self, **kwargs): + super(ContainerServiceDiagnosticsProfile, self).__init__(**kwargs) + self.vm_diagnostics = kwargs.get('vm_diagnostics', None) + + +class ContainerServiceLinuxProfile(Model): + """Profile for Linux VMs in the container service cluster. + + All required parameters must be populated in order to send to Azure. + + :param admin_username: Required. The administrator username to use for + Linux VMs. + :type admin_username: str + :param ssh: Required. SSH configuration for Linux-based VMs running on + Azure. + :type ssh: + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceSshConfiguration + """ + + _validation = { + 'admin_username': {'required': True, 'pattern': r'^[A-Za-z][-A-Za-z0-9_]*$'}, + 'ssh': {'required': True}, + } + + _attribute_map = { + 'admin_username': {'key': 'adminUsername', 'type': 'str'}, + 'ssh': {'key': 'ssh', 'type': 'ContainerServiceSshConfiguration'}, + } + + def __init__(self, **kwargs): + super(ContainerServiceLinuxProfile, self).__init__(**kwargs) + self.admin_username = kwargs.get('admin_username', None) + self.ssh = kwargs.get('ssh', None) + + +class ContainerServiceMasterProfile(Model): + """Profile for the container service master. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param count: Number of masters (VMs) in the container service cluster. + Allowed values are 1, 3, and 5. The default value is 1. Default value: 1 . + :type count: int + :param dns_prefix: Required. DNS prefix to be used to create the FQDN for + the master pool. + :type dns_prefix: str + :param vm_size: Required. Size of agent VMs. Possible values include: + 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', + 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', + 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', + 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', + 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', + 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', + 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', + 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', + 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', + 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', + 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', + 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', + 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', + 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', + 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', + 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', + 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', + 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', + 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', + 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', + 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', + 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', + 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', + 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', + 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', + 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', + 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', + 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', + 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', + 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', + 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', + 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', + 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', + 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', + 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', + 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', + 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', + 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', + 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', + 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', + 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', + 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', + 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', + 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', + 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', + 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', + 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', + 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', + 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', + 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6' + :type vm_size: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk + size for every machine in this master/agent pool. If you specify 0, it + will apply the default osDisk size according to the vmSize specified. + :type os_disk_size_gb: int + :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet + identifier. + :type vnet_subnet_id: str + :param first_consecutive_static_ip: FirstConsecutiveStaticIP used to + specify the first static ip of masters. Default value: "10.240.255.5" . + :type first_consecutive_static_ip: str + :param storage_profile: Storage profile specifies what kind of storage + used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will + choose for you based on the orchestrator choice. Possible values include: + 'StorageAccount', 'ManagedDisks' + :type storage_profile: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceStorageProfileTypes + :ivar fqdn: FQDN for the master pool. + :vartype fqdn: str + """ + + _validation = { + 'dns_prefix': {'required': True}, + 'vm_size': {'required': True}, + 'fqdn': {'readonly': True}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'dns_prefix': {'key': 'dnsPrefix', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'first_consecutive_static_ip': {'key': 'firstConsecutiveStaticIP', 'type': 'str'}, + 'storage_profile': {'key': 'storageProfile', 'type': 'str'}, + 'fqdn': {'key': 'fqdn', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ContainerServiceMasterProfile, self).__init__(**kwargs) + self.count = kwargs.get('count', 1) + self.dns_prefix = kwargs.get('dns_prefix', None) + self.vm_size = kwargs.get('vm_size', None) + self.os_disk_size_gb = kwargs.get('os_disk_size_gb', None) + self.vnet_subnet_id = kwargs.get('vnet_subnet_id', None) + self.first_consecutive_static_ip = kwargs.get('first_consecutive_static_ip', "10.240.255.5") + self.storage_profile = kwargs.get('storage_profile', None) + self.fqdn = None + + +class ContainerServiceNetworkProfile(Model): + """Profile of network configuration. + + :param network_plugin: Network plugin used for building Kubernetes + network. Possible values include: 'azure', 'kubenet'. Default value: + "kubenet" . + :type network_plugin: str or + ~azure.mgmt.containerservice.v2020_09_01.models.NetworkPlugin + :param network_policy: Network policy used for building Kubernetes + network. Possible values include: 'calico', 'azure' + :type network_policy: str or + ~azure.mgmt.containerservice.v2020_09_01.models.NetworkPolicy + :param network_mode: Network mode used for building Kubernetes network. + Possible values include: 'transparent', 'bridge' + :type network_mode: str or + ~azure.mgmt.containerservice.v2020_09_01.models.NetworkMode + :param pod_cidr: A CIDR notation IP range from which to assign pod IPs + when kubenet is used. Default value: "10.244.0.0/16" . + :type pod_cidr: str + :param service_cidr: A CIDR notation IP range from which to assign service + cluster IPs. It must not overlap with any Subnet IP ranges. Default value: + "10.0.0.0/16" . + :type service_cidr: str + :param dns_service_ip: An IP address assigned to the Kubernetes DNS + service. It must be within the Kubernetes service address range specified + in serviceCidr. Default value: "10.0.0.10" . + :type dns_service_ip: str + :param docker_bridge_cidr: A CIDR notation IP range assigned to the Docker + bridge network. It must not overlap with any Subnet IP ranges or the + Kubernetes service address range. Default value: "172.17.0.1/16" . + :type docker_bridge_cidr: str + :param outbound_type: The outbound (egress) routing method. Possible + values include: 'loadBalancer', 'userDefinedRouting'. Default value: + "loadBalancer" . + :type outbound_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OutboundType + :param load_balancer_sku: The load balancer sku for the managed cluster. + Possible values include: 'standard', 'basic' + :type load_balancer_sku: str or + ~azure.mgmt.containerservice.v2020_09_01.models.LoadBalancerSku + :param load_balancer_profile: Profile of the cluster load balancer. + :type load_balancer_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfile + """ + + _validation = { + 'pod_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + 'service_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + 'dns_service_ip': {'pattern': r'^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'}, + 'docker_bridge_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + } + + _attribute_map = { + 'network_plugin': {'key': 'networkPlugin', 'type': 'str'}, + 'network_policy': {'key': 'networkPolicy', 'type': 'str'}, + 'network_mode': {'key': 'networkMode', 'type': 'str'}, + 'pod_cidr': {'key': 'podCidr', 'type': 'str'}, + 'service_cidr': {'key': 'serviceCidr', 'type': 'str'}, + 'dns_service_ip': {'key': 'dnsServiceIP', 'type': 'str'}, + 'docker_bridge_cidr': {'key': 'dockerBridgeCidr', 'type': 'str'}, + 'outbound_type': {'key': 'outboundType', 'type': 'str'}, + 'load_balancer_sku': {'key': 'loadBalancerSku', 'type': 'str'}, + 'load_balancer_profile': {'key': 'loadBalancerProfile', 'type': 'ManagedClusterLoadBalancerProfile'}, + } + + def __init__(self, **kwargs): + super(ContainerServiceNetworkProfile, self).__init__(**kwargs) + self.network_plugin = kwargs.get('network_plugin', "kubenet") + self.network_policy = kwargs.get('network_policy', None) + self.network_mode = kwargs.get('network_mode', None) + self.pod_cidr = kwargs.get('pod_cidr', "10.244.0.0/16") + self.service_cidr = kwargs.get('service_cidr', "10.0.0.0/16") + self.dns_service_ip = kwargs.get('dns_service_ip', "10.0.0.10") + self.docker_bridge_cidr = kwargs.get('docker_bridge_cidr', "172.17.0.1/16") + self.outbound_type = kwargs.get('outbound_type', "loadBalancer") + self.load_balancer_sku = kwargs.get('load_balancer_sku', None) + self.load_balancer_profile = kwargs.get('load_balancer_profile', None) + + +class ContainerServiceSshConfiguration(Model): + """SSH configuration for Linux-based VMs running on Azure. + + All required parameters must be populated in order to send to Azure. + + :param public_keys: Required. The list of SSH public keys used to + authenticate with Linux-based VMs. Only expect one key specified. + :type public_keys: + list[~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceSshPublicKey] + """ + + _validation = { + 'public_keys': {'required': True}, + } + + _attribute_map = { + 'public_keys': {'key': 'publicKeys', 'type': '[ContainerServiceSshPublicKey]'}, + } + + def __init__(self, **kwargs): + super(ContainerServiceSshConfiguration, self).__init__(**kwargs) + self.public_keys = kwargs.get('public_keys', None) + + +class ContainerServiceSshPublicKey(Model): + """Contains information about SSH certificate public key data. + + All required parameters must be populated in order to send to Azure. + + :param key_data: Required. Certificate public key used to authenticate + with VMs through SSH. The certificate must be in PEM format with or + without headers. + :type key_data: str + """ + + _validation = { + 'key_data': {'required': True}, + } + + _attribute_map = { + 'key_data': {'key': 'keyData', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ContainerServiceSshPublicKey, self).__init__(**kwargs) + self.key_data = kwargs.get('key_data', None) + + +class ContainerServiceVMDiagnostics(Model): + """Profile for diagnostics on the container service VMs. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Whether the VM diagnostic agent is provisioned + on the VM. + :type enabled: bool + :ivar storage_uri: The URI of the storage account where diagnostics are + stored. + :vartype storage_uri: str + """ + + _validation = { + 'enabled': {'required': True}, + 'storage_uri': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'storage_uri': {'key': 'storageUri', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ContainerServiceVMDiagnostics, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.storage_uri = None + + +class CredentialResult(Model): + """The credential result response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar name: The name of the credential. + :vartype name: str + :ivar value: Base64-encoded Kubernetes configuration file. + :vartype value: bytearray + """ + + _validation = { + 'name': {'readonly': True}, + 'value': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'bytearray'}, + } + + def __init__(self, **kwargs): + super(CredentialResult, self).__init__(**kwargs) + self.name = None + self.value = None + + +class CredentialResults(Model): + """The list of credential result response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar kubeconfigs: Base64-encoded Kubernetes configuration file. + :vartype kubeconfigs: + list[~azure.mgmt.containerservice.v2020_09_01.models.CredentialResult] + """ + + _validation = { + 'kubeconfigs': {'readonly': True}, + } + + _attribute_map = { + 'kubeconfigs': {'key': 'kubeconfigs', 'type': '[CredentialResult]'}, + } + + def __init__(self, **kwargs): + super(CredentialResults, self).__init__(**kwargs) + self.kubeconfigs = None + + +class Resource(Model): + """The Resource model definition. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Resource Id + :vartype id: str + :ivar name: Resource name + :vartype name: str + :ivar type: Resource type + :vartype type: str + :param location: Required. Resource location + :type location: str + :param tags: Resource tags + :type tags: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__(self, **kwargs): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.location = kwargs.get('location', None) + self.tags = kwargs.get('tags', None) + + +class ManagedCluster(Resource): + """Managed cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Resource Id + :vartype id: str + :ivar name: Resource name + :vartype name: str + :ivar type: Resource type + :vartype type: str + :param location: Required. Resource location + :type location: str + :param tags: Resource tags + :type tags: dict[str, str] + :ivar provisioning_state: The current deployment or provisioning state, + which only appears in the response. + :vartype provisioning_state: str + :ivar power_state: Represents the Power State of the cluster + :vartype power_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PowerState + :ivar max_agent_pools: The max number of agent pools for the managed + cluster. + :vartype max_agent_pools: int + :param kubernetes_version: Version of Kubernetes specified when creating + the managed cluster. + :type kubernetes_version: str + :param dns_prefix: DNS prefix specified when creating the managed cluster. + :type dns_prefix: str + :ivar fqdn: FQDN for the master pool. + :vartype fqdn: str + :ivar private_fqdn: FQDN of private cluster. + :vartype private_fqdn: str + :param agent_pool_profiles: Properties of the agent pool. + :type agent_pool_profiles: + list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAgentPoolProfile] + :param linux_profile: Profile for Linux VMs in the container service + cluster. + :type linux_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceLinuxProfile + :param windows_profile: Profile for Windows VMs in the container service + cluster. + :type windows_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterWindowsProfile + :param service_principal_profile: Information about a service principal + identity for the cluster to use for manipulating Azure APIs. + :type service_principal_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterServicePrincipalProfile + :param addon_profiles: Profile of managed cluster add-on. + :type addon_profiles: dict[str, + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAddonProfile] + :param node_resource_group: Name of the resource group containing agent + pool nodes. + :type node_resource_group: str + :param enable_rbac: Whether to enable Kubernetes Role-Based Access + Control. + :type enable_rbac: bool + :param enable_pod_security_policy: (DEPRECATING) Whether to enable + Kubernetes pod security policy (preview). This feature is set for removal + on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy. + :type enable_pod_security_policy: bool + :param network_profile: Profile of network configuration. + :type network_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceNetworkProfile + :param aad_profile: Profile of Azure Active Directory configuration. + :type aad_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAADProfile + :param auto_scaler_profile: Parameters to be applied to the + cluster-autoscaler when enabled + :type auto_scaler_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPropertiesAutoScalerProfile + :param api_server_access_profile: Access profile for managed cluster API + server. + :type api_server_access_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAPIServerAccessProfile + :param disk_encryption_set_id: ResourceId of the disk encryption set to + use for enabling encryption at rest. + :type disk_encryption_set_id: str + :param identity_profile: Identities associated with the cluster. + :type identity_profile: dict[str, + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPropertiesIdentityProfileValue] + :param identity: The identity of the managed cluster, if configured. + :type identity: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterIdentity + :param sku: The managed cluster SKU. + :type sku: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterSKU + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + 'max_agent_pools': {'readonly': True}, + 'fqdn': {'readonly': True}, + 'private_fqdn': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, + 'max_agent_pools': {'key': 'properties.maxAgentPools', 'type': 'int'}, + 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, + 'dns_prefix': {'key': 'properties.dnsPrefix', 'type': 'str'}, + 'fqdn': {'key': 'properties.fqdn', 'type': 'str'}, + 'private_fqdn': {'key': 'properties.privateFQDN', 'type': 'str'}, + 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterAgentPoolProfile]'}, + 'linux_profile': {'key': 'properties.linuxProfile', 'type': 'ContainerServiceLinuxProfile'}, + 'windows_profile': {'key': 'properties.windowsProfile', 'type': 'ManagedClusterWindowsProfile'}, + 'service_principal_profile': {'key': 'properties.servicePrincipalProfile', 'type': 'ManagedClusterServicePrincipalProfile'}, + 'addon_profiles': {'key': 'properties.addonProfiles', 'type': '{ManagedClusterAddonProfile}'}, + 'node_resource_group': {'key': 'properties.nodeResourceGroup', 'type': 'str'}, + 'enable_rbac': {'key': 'properties.enableRBAC', 'type': 'bool'}, + 'enable_pod_security_policy': {'key': 'properties.enablePodSecurityPolicy', 'type': 'bool'}, + 'network_profile': {'key': 'properties.networkProfile', 'type': 'ContainerServiceNetworkProfile'}, + 'aad_profile': {'key': 'properties.aadProfile', 'type': 'ManagedClusterAADProfile'}, + 'auto_scaler_profile': {'key': 'properties.autoScalerProfile', 'type': 'ManagedClusterPropertiesAutoScalerProfile'}, + 'api_server_access_profile': {'key': 'properties.apiServerAccessProfile', 'type': 'ManagedClusterAPIServerAccessProfile'}, + 'disk_encryption_set_id': {'key': 'properties.diskEncryptionSetID', 'type': 'str'}, + 'identity_profile': {'key': 'properties.identityProfile', 'type': '{ManagedClusterPropertiesIdentityProfileValue}'}, + 'identity': {'key': 'identity', 'type': 'ManagedClusterIdentity'}, + 'sku': {'key': 'sku', 'type': 'ManagedClusterSKU'}, + } + + def __init__(self, **kwargs): + super(ManagedCluster, self).__init__(**kwargs) + self.provisioning_state = None + self.power_state = None + self.max_agent_pools = None + self.kubernetes_version = kwargs.get('kubernetes_version', None) + self.dns_prefix = kwargs.get('dns_prefix', None) + self.fqdn = None + self.private_fqdn = None + self.agent_pool_profiles = kwargs.get('agent_pool_profiles', None) + self.linux_profile = kwargs.get('linux_profile', None) + self.windows_profile = kwargs.get('windows_profile', None) + self.service_principal_profile = kwargs.get('service_principal_profile', None) + self.addon_profiles = kwargs.get('addon_profiles', None) + self.node_resource_group = kwargs.get('node_resource_group', None) + self.enable_rbac = kwargs.get('enable_rbac', None) + self.enable_pod_security_policy = kwargs.get('enable_pod_security_policy', None) + self.network_profile = kwargs.get('network_profile', None) + self.aad_profile = kwargs.get('aad_profile', None) + self.auto_scaler_profile = kwargs.get('auto_scaler_profile', None) + self.api_server_access_profile = kwargs.get('api_server_access_profile', None) + self.disk_encryption_set_id = kwargs.get('disk_encryption_set_id', None) + self.identity_profile = kwargs.get('identity_profile', None) + self.identity = kwargs.get('identity', None) + self.sku = kwargs.get('sku', None) + + +class ManagedClusterAADProfile(Model): + """AADProfile specifies attributes for Azure Active Directory integration. + + :param managed: Whether to enable managed AAD. + :type managed: bool + :param enable_azure_rbac: Whether to enable Azure RBAC for Kubernetes + authorization. + :type enable_azure_rbac: bool + :param admin_group_object_ids: AAD group object IDs that will have admin + role of the cluster. + :type admin_group_object_ids: list[str] + :param client_app_id: The client AAD application ID. + :type client_app_id: str + :param server_app_id: The server AAD application ID. + :type server_app_id: str + :param server_app_secret: The server AAD application secret. + :type server_app_secret: str + :param tenant_id: The AAD tenant ID to use for authentication. If not + specified, will use the tenant of the deployment subscription. + :type tenant_id: str + """ + + _attribute_map = { + 'managed': {'key': 'managed', 'type': 'bool'}, + 'enable_azure_rbac': {'key': 'enableAzureRBAC', 'type': 'bool'}, + 'admin_group_object_ids': {'key': 'adminGroupObjectIDs', 'type': '[str]'}, + 'client_app_id': {'key': 'clientAppID', 'type': 'str'}, + 'server_app_id': {'key': 'serverAppID', 'type': 'str'}, + 'server_app_secret': {'key': 'serverAppSecret', 'type': 'str'}, + 'tenant_id': {'key': 'tenantID', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterAADProfile, self).__init__(**kwargs) + self.managed = kwargs.get('managed', None) + self.enable_azure_rbac = kwargs.get('enable_azure_rbac', None) + self.admin_group_object_ids = kwargs.get('admin_group_object_ids', None) + self.client_app_id = kwargs.get('client_app_id', None) + self.server_app_id = kwargs.get('server_app_id', None) + self.server_app_secret = kwargs.get('server_app_secret', None) + self.tenant_id = kwargs.get('tenant_id', None) + + +class ManagedClusterAccessProfile(Resource): + """Managed cluster Access Profile. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Resource Id + :vartype id: str + :ivar name: Resource name + :vartype name: str + :ivar type: Resource type + :vartype type: str + :param location: Required. Resource location + :type location: str + :param tags: Resource tags + :type tags: dict[str, str] + :param kube_config: Base64-encoded Kubernetes configuration file. + :type kube_config: bytearray + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'kube_config': {'key': 'properties.kubeConfig', 'type': 'bytearray'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterAccessProfile, self).__init__(**kwargs) + self.kube_config = kwargs.get('kube_config', None) + + +class ManagedClusterAddonProfile(Model): + """A Kubernetes add-on profile for a managed cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Whether the add-on is enabled or not. + :type enabled: bool + :param config: Key-value pairs for configuring an add-on. + :type config: dict[str, str] + :ivar identity: Information of user assigned identity used by this add-on. + :vartype identity: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAddonProfileIdentity + """ + + _validation = { + 'enabled': {'required': True}, + 'identity': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'config': {'key': 'config', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedClusterAddonProfileIdentity'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterAddonProfile, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.config = kwargs.get('config', None) + self.identity = None + + +class UserAssignedIdentity(Model): + """UserAssignedIdentity. + + :param resource_id: The resource id of the user assigned identity. + :type resource_id: str + :param client_id: The client id of the user assigned identity. + :type client_id: str + :param object_id: The object id of the user assigned identity. + :type object_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(UserAssignedIdentity, self).__init__(**kwargs) + self.resource_id = kwargs.get('resource_id', None) + self.client_id = kwargs.get('client_id', None) + self.object_id = kwargs.get('object_id', None) + + +class ManagedClusterAddonProfileIdentity(UserAssignedIdentity): + """Information of user assigned identity used by this add-on. + + :param resource_id: The resource id of the user assigned identity. + :type resource_id: str + :param client_id: The client id of the user assigned identity. + :type client_id: str + :param object_id: The object id of the user assigned identity. + :type object_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterAddonProfileIdentity, self).__init__(**kwargs) + + +class ManagedClusterAgentPoolProfileProperties(Model): + """Properties for the container service agent pool profile. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param count: Number of agents (VMs) to host docker containers. Allowed + values must be in the range of 0 to 100 (inclusive) for user pools and in + the range of 1 to 100 (inclusive) for system pools. The default value is + 1. + :type count: int + :param vm_size: Size of agent VMs. Possible values include: 'Standard_A1', + 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', + 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', + 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', + 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', + 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', + 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', + 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', + 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', + 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', + 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', + 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', + 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', + 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', + 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', + 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', + 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', + 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', + 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', + 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', + 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', + 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', + 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', + 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', + 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', + 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', + 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', + 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', + 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', + 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', + 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', + 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', + 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', + 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', + 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', + 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', + 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', + 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', + 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', + 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', + 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', + 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', + 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', + 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', + 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', + 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', + 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', + 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', + 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', + 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', + 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6' + :type vm_size: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk + size for every machine in this master/agent pool. If you specify 0, it + will apply the default osDisk size according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: OS disk type to be used for machines in a given agent + pool. Allowed values are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. + May not be changed after creation. Possible values include: 'Managed', + 'Ephemeral' + :type os_disk_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSDiskType + :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet + identifier. + :type vnet_subnet_id: str + :param max_pods: Maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: OsType to be used to specify os type. Choose from Linux + and Windows. Default to Linux. Possible values include: 'Linux', + 'Windows'. Default value: "Linux" . + :type os_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSType + :param max_count: Maximum number of nodes for auto-scaling + :type max_count: int + :param min_count: Minimum number of nodes for auto-scaling + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler + :type enable_auto_scaling: bool + :param type: AgentPoolType represents types of an agent pool. Possible + values include: 'VirtualMachineScaleSets', 'AvailabilitySet' + :type type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolType + :param mode: AgentPoolMode represents mode of an agent pool. Possible + values include: 'System', 'User' + :type mode: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolMode + :param orchestrator_version: Version of orchestrator specified when + creating the managed cluster. + :type orchestrator_version: str + :ivar node_image_version: Version of node image + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool + :type upgrade_settings: + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state, + which only appears in the response. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped + :vartype power_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PowerState + :param availability_zones: Availability zones for nodes. Must use + VirtualMachineScaleSets AgentPoolType. + :type availability_zones: list[str] + :param enable_node_public_ip: Enable public IP for nodes + :type enable_node_public_ip: bool + :param scale_set_priority: ScaleSetPriority to be used to specify virtual + machine scale set priority. Default to regular. Possible values include: + 'Spot', 'Regular'. Default value: "Regular" . + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetPriority + :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to + specify eviction policy for Spot virtual machine scale set. Default to + Delete. Possible values include: 'Delete', 'Deallocate'. Default value: + "Delete" . + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetEvictionPolicy + :param spot_max_price: SpotMaxPrice to be used to specify the maximum + price you are willing to pay in US Dollars. Possible values are any + decimal value greater than zero or -1 which indicates default price to be + up-to on-demand. + :type spot_max_price: float + :param tags: Agent pool tags to be persisted on the agent pool virtual + machine scale set. + :type tags: dict[str, str] + :param node_labels: Agent pool node labels to be persisted across all + nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: Taints added to new nodes during node pool create and + scale. For example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + """ + + _validation = { + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'osDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'maxPods', 'type': 'int'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'max_count': {'key': 'maxCount', 'type': 'int'}, + 'min_count': {'key': 'minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'enableAutoScaling', 'type': 'bool'}, + 'type': {'key': 'type', 'type': 'str'}, + 'mode': {'key': 'mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'power_state': {'key': 'powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'enableNodePublicIP', 'type': 'bool'}, + 'scale_set_priority': {'key': 'scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'node_labels': {'key': 'nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'proximityPlacementGroupID', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterAgentPoolProfileProperties, self).__init__(**kwargs) + self.count = kwargs.get('count', None) + self.vm_size = kwargs.get('vm_size', None) + self.os_disk_size_gb = kwargs.get('os_disk_size_gb', None) + self.os_disk_type = kwargs.get('os_disk_type', None) + self.vnet_subnet_id = kwargs.get('vnet_subnet_id', None) + self.max_pods = kwargs.get('max_pods', None) + self.os_type = kwargs.get('os_type', "Linux") + self.max_count = kwargs.get('max_count', None) + self.min_count = kwargs.get('min_count', None) + self.enable_auto_scaling = kwargs.get('enable_auto_scaling', None) + self.type = kwargs.get('type', None) + self.mode = kwargs.get('mode', None) + self.orchestrator_version = kwargs.get('orchestrator_version', None) + self.node_image_version = None + self.upgrade_settings = kwargs.get('upgrade_settings', None) + self.provisioning_state = None + self.power_state = None + self.availability_zones = kwargs.get('availability_zones', None) + self.enable_node_public_ip = kwargs.get('enable_node_public_ip', None) + self.scale_set_priority = kwargs.get('scale_set_priority', "Regular") + self.scale_set_eviction_policy = kwargs.get('scale_set_eviction_policy', "Delete") + self.spot_max_price = kwargs.get('spot_max_price', None) + self.tags = kwargs.get('tags', None) + self.node_labels = kwargs.get('node_labels', None) + self.node_taints = kwargs.get('node_taints', None) + self.proximity_placement_group_id = kwargs.get('proximity_placement_group_id', None) + + +class ManagedClusterAgentPoolProfile(ManagedClusterAgentPoolProfileProperties): + """Profile for the container service agent pool. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param count: Number of agents (VMs) to host docker containers. Allowed + values must be in the range of 0 to 100 (inclusive) for user pools and in + the range of 1 to 100 (inclusive) for system pools. The default value is + 1. + :type count: int + :param vm_size: Size of agent VMs. Possible values include: 'Standard_A1', + 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', + 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', + 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', + 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', + 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', + 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', + 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', + 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', + 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', + 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', + 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', + 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', + 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', + 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', + 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', + 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', + 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', + 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', + 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', + 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', + 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', + 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', + 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', + 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', + 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', + 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', + 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', + 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', + 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', + 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', + 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', + 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', + 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', + 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', + 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', + 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', + 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', + 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', + 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', + 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', + 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', + 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', + 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', + 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', + 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', + 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', + 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', + 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', + 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', + 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6' + :type vm_size: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk + size for every machine in this master/agent pool. If you specify 0, it + will apply the default osDisk size according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: OS disk type to be used for machines in a given agent + pool. Allowed values are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. + May not be changed after creation. Possible values include: 'Managed', + 'Ephemeral' + :type os_disk_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSDiskType + :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet + identifier. + :type vnet_subnet_id: str + :param max_pods: Maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: OsType to be used to specify os type. Choose from Linux + and Windows. Default to Linux. Possible values include: 'Linux', + 'Windows'. Default value: "Linux" . + :type os_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSType + :param max_count: Maximum number of nodes for auto-scaling + :type max_count: int + :param min_count: Minimum number of nodes for auto-scaling + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler + :type enable_auto_scaling: bool + :param type: AgentPoolType represents types of an agent pool. Possible + values include: 'VirtualMachineScaleSets', 'AvailabilitySet' + :type type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolType + :param mode: AgentPoolMode represents mode of an agent pool. Possible + values include: 'System', 'User' + :type mode: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolMode + :param orchestrator_version: Version of orchestrator specified when + creating the managed cluster. + :type orchestrator_version: str + :ivar node_image_version: Version of node image + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool + :type upgrade_settings: + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state, + which only appears in the response. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped + :vartype power_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PowerState + :param availability_zones: Availability zones for nodes. Must use + VirtualMachineScaleSets AgentPoolType. + :type availability_zones: list[str] + :param enable_node_public_ip: Enable public IP for nodes + :type enable_node_public_ip: bool + :param scale_set_priority: ScaleSetPriority to be used to specify virtual + machine scale set priority. Default to regular. Possible values include: + 'Spot', 'Regular'. Default value: "Regular" . + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetPriority + :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to + specify eviction policy for Spot virtual machine scale set. Default to + Delete. Possible values include: 'Delete', 'Deallocate'. Default value: + "Delete" . + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetEvictionPolicy + :param spot_max_price: SpotMaxPrice to be used to specify the maximum + price you are willing to pay in US Dollars. Possible values are any + decimal value greater than zero or -1 which indicates default price to be + up-to on-demand. + :type spot_max_price: float + :param tags: Agent pool tags to be persisted on the agent pool virtual + machine scale set. + :type tags: dict[str, str] + :param node_labels: Agent pool node labels to be persisted across all + nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: Taints added to new nodes during node pool create and + scale. For example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + :param name: Required. Unique name of the agent pool profile in the + context of the subscription and resource group. + :type name: str + """ + + _validation = { + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + 'name': {'required': True, 'pattern': r'^[a-z][a-z0-9]{0,11}$'}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'osDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'maxPods', 'type': 'int'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'max_count': {'key': 'maxCount', 'type': 'int'}, + 'min_count': {'key': 'minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'enableAutoScaling', 'type': 'bool'}, + 'type': {'key': 'type', 'type': 'str'}, + 'mode': {'key': 'mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'power_state': {'key': 'powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'enableNodePublicIP', 'type': 'bool'}, + 'scale_set_priority': {'key': 'scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'node_labels': {'key': 'nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'proximityPlacementGroupID', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterAgentPoolProfile, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + + +class ManagedClusterAPIServerAccessProfile(Model): + """Access profile for managed cluster API server. + + :param authorized_ip_ranges: Authorized IP Ranges to kubernetes API + server. + :type authorized_ip_ranges: list[str] + :param enable_private_cluster: Whether to create the cluster as a private + cluster or not. + :type enable_private_cluster: bool + """ + + _attribute_map = { + 'authorized_ip_ranges': {'key': 'authorizedIPRanges', 'type': '[str]'}, + 'enable_private_cluster': {'key': 'enablePrivateCluster', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterAPIServerAccessProfile, self).__init__(**kwargs) + self.authorized_ip_ranges = kwargs.get('authorized_ip_ranges', None) + self.enable_private_cluster = kwargs.get('enable_private_cluster', None) + + +class ManagedClusterIdentity(Model): + """Identity for the managed cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar principal_id: The principal id of the system assigned identity which + is used by master components. + :vartype principal_id: str + :ivar tenant_id: The tenant id of the system assigned identity which is + used by master components. + :vartype tenant_id: str + :param type: The type of identity used for the managed cluster. Type + 'SystemAssigned' will use an implicitly created identity in master + components and an auto-created user assigned identity in MC_ resource + group in agent nodes. Type 'None' will not use MSI for the managed + cluster, service principal will be used instead. Possible values include: + 'SystemAssigned', 'UserAssigned', 'None' + :type type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ResourceIdentityType + :param user_assigned_identities: The user identity associated with the + managed cluster. This identity will be used in control plane and only one + user assigned identity is allowed. The user identity dictionary key + references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + :type user_assigned_identities: dict[str, + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterIdentityUserAssignedIdentitiesValue] + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'ResourceIdentityType'}, + 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{ManagedClusterIdentityUserAssignedIdentitiesValue}'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterIdentity, self).__init__(**kwargs) + self.principal_id = None + self.tenant_id = None + self.type = kwargs.get('type', None) + self.user_assigned_identities = kwargs.get('user_assigned_identities', None) + + +class ManagedClusterIdentityUserAssignedIdentitiesValue(Model): + """ManagedClusterIdentityUserAssignedIdentitiesValue. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar principal_id: The principal id of user assigned identity. + :vartype principal_id: str + :ivar client_id: The client id of user assigned identity. + :vartype client_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'client_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterIdentityUserAssignedIdentitiesValue, self).__init__(**kwargs) + self.principal_id = None + self.client_id = None + + +class ManagedClusterLoadBalancerProfile(Model): + """Profile of the managed cluster load balancer. + + :param managed_outbound_ips: Desired managed outbound IPs for the cluster + load balancer. + :type managed_outbound_ips: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfileManagedOutboundIPs + :param outbound_ip_prefixes: Desired outbound IP Prefix resources for the + cluster load balancer. + :type outbound_ip_prefixes: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfileOutboundIPPrefixes + :param outbound_ips: Desired outbound IP resources for the cluster load + balancer. + :type outbound_ips: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfileOutboundIPs + :param effective_outbound_ips: The effective outbound IP resources of the + cluster load balancer. + :type effective_outbound_ips: + list[~azure.mgmt.containerservice.v2020_09_01.models.ResourceReference] + :param allocated_outbound_ports: Desired number of allocated SNAT ports + per VM. Allowed values must be in the range of 0 to 64000 (inclusive). The + default value is 0 which results in Azure dynamically allocating ports. + Default value: 0 . + :type allocated_outbound_ports: int + :param idle_timeout_in_minutes: Desired outbound flow idle timeout in + minutes. Allowed values must be in the range of 4 to 120 (inclusive). The + default value is 30 minutes. Default value: 30 . + :type idle_timeout_in_minutes: int + """ + + _validation = { + 'allocated_outbound_ports': {'maximum': 64000, 'minimum': 0}, + 'idle_timeout_in_minutes': {'maximum': 120, 'minimum': 4}, + } + + _attribute_map = { + 'managed_outbound_ips': {'key': 'managedOutboundIPs', 'type': 'ManagedClusterLoadBalancerProfileManagedOutboundIPs'}, + 'outbound_ip_prefixes': {'key': 'outboundIPPrefixes', 'type': 'ManagedClusterLoadBalancerProfileOutboundIPPrefixes'}, + 'outbound_ips': {'key': 'outboundIPs', 'type': 'ManagedClusterLoadBalancerProfileOutboundIPs'}, + 'effective_outbound_ips': {'key': 'effectiveOutboundIPs', 'type': '[ResourceReference]'}, + 'allocated_outbound_ports': {'key': 'allocatedOutboundPorts', 'type': 'int'}, + 'idle_timeout_in_minutes': {'key': 'idleTimeoutInMinutes', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterLoadBalancerProfile, self).__init__(**kwargs) + self.managed_outbound_ips = kwargs.get('managed_outbound_ips', None) + self.outbound_ip_prefixes = kwargs.get('outbound_ip_prefixes', None) + self.outbound_ips = kwargs.get('outbound_ips', None) + self.effective_outbound_ips = kwargs.get('effective_outbound_ips', None) + self.allocated_outbound_ports = kwargs.get('allocated_outbound_ports', 0) + self.idle_timeout_in_minutes = kwargs.get('idle_timeout_in_minutes', 30) + + +class ManagedClusterLoadBalancerProfileManagedOutboundIPs(Model): + """Desired managed outbound IPs for the cluster load balancer. + + :param count: Desired number of outbound IP created/managed by Azure for + the cluster load balancer. Allowed values must be in the range of 1 to 100 + (inclusive). The default value is 1. . Default value: 1 . + :type count: int + """ + + _validation = { + 'count': {'maximum': 100, 'minimum': 1}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterLoadBalancerProfileManagedOutboundIPs, self).__init__(**kwargs) + self.count = kwargs.get('count', 1) + + +class ManagedClusterLoadBalancerProfileOutboundIPPrefixes(Model): + """Desired outbound IP Prefix resources for the cluster load balancer. + + :param public_ip_prefixes: A list of public IP prefix resources. + :type public_ip_prefixes: + list[~azure.mgmt.containerservice.v2020_09_01.models.ResourceReference] + """ + + _attribute_map = { + 'public_ip_prefixes': {'key': 'publicIPPrefixes', 'type': '[ResourceReference]'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterLoadBalancerProfileOutboundIPPrefixes, self).__init__(**kwargs) + self.public_ip_prefixes = kwargs.get('public_ip_prefixes', None) + + +class ManagedClusterLoadBalancerProfileOutboundIPs(Model): + """Desired outbound IP resources for the cluster load balancer. + + :param public_ips: A list of public IP resources. + :type public_ips: + list[~azure.mgmt.containerservice.v2020_09_01.models.ResourceReference] + """ + + _attribute_map = { + 'public_ips': {'key': 'publicIPs', 'type': '[ResourceReference]'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterLoadBalancerProfileOutboundIPs, self).__init__(**kwargs) + self.public_ips = kwargs.get('public_ips', None) + + +class ManagedClusterPoolUpgradeProfile(Model): + """The list of available upgrade versions. + + All required parameters must be populated in order to send to Azure. + + :param kubernetes_version: Required. Kubernetes version (major, minor, + patch). + :type kubernetes_version: str + :param name: Pool name. + :type name: str + :param os_type: Required. OsType to be used to specify os type. Choose + from Linux and Windows. Default to Linux. Possible values include: + 'Linux', 'Windows'. Default value: "Linux" . + :type os_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSType + :param upgrades: List of orchestrator types and versions available for + upgrade. + :type upgrades: + list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPoolUpgradeProfileUpgradesItem] + """ + + _validation = { + 'kubernetes_version': {'required': True}, + 'os_type': {'required': True}, + } + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'upgrades': {'key': 'upgrades', 'type': '[ManagedClusterPoolUpgradeProfileUpgradesItem]'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterPoolUpgradeProfile, self).__init__(**kwargs) + self.kubernetes_version = kwargs.get('kubernetes_version', None) + self.name = kwargs.get('name', None) + self.os_type = kwargs.get('os_type', "Linux") + self.upgrades = kwargs.get('upgrades', None) + + +class ManagedClusterPoolUpgradeProfileUpgradesItem(Model): + """ManagedClusterPoolUpgradeProfileUpgradesItem. + + :param kubernetes_version: Kubernetes version (major, minor, patch). + :type kubernetes_version: str + :param is_preview: Whether Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterPoolUpgradeProfileUpgradesItem, self).__init__(**kwargs) + self.kubernetes_version = kwargs.get('kubernetes_version', None) + self.is_preview = kwargs.get('is_preview', None) + + +class ManagedClusterPropertiesAutoScalerProfile(Model): + """Parameters to be applied to the cluster-autoscaler when enabled. + + :param balance_similar_node_groups: + :type balance_similar_node_groups: str + :param expander: Possible values include: 'least-waste', 'most-pods', + 'random' + :type expander: str or + ~azure.mgmt.containerservice.v2020_09_01.models.Expander + :param max_empty_bulk_delete: + :type max_empty_bulk_delete: str + :param max_graceful_termination_sec: + :type max_graceful_termination_sec: str + :param max_total_unready_percentage: + :type max_total_unready_percentage: str + :param new_pod_scale_up_delay: + :type new_pod_scale_up_delay: str + :param ok_total_unready_count: + :type ok_total_unready_count: str + :param scan_interval: + :type scan_interval: str + :param scale_down_delay_after_add: + :type scale_down_delay_after_add: str + :param scale_down_delay_after_delete: + :type scale_down_delay_after_delete: str + :param scale_down_delay_after_failure: + :type scale_down_delay_after_failure: str + :param scale_down_unneeded_time: + :type scale_down_unneeded_time: str + :param scale_down_unready_time: + :type scale_down_unready_time: str + :param scale_down_utilization_threshold: + :type scale_down_utilization_threshold: str + :param skip_nodes_with_local_storage: + :type skip_nodes_with_local_storage: str + :param skip_nodes_with_system_pods: + :type skip_nodes_with_system_pods: str + """ + + _attribute_map = { + 'balance_similar_node_groups': {'key': 'balance-similar-node-groups', 'type': 'str'}, + 'expander': {'key': 'expander', 'type': 'str'}, + 'max_empty_bulk_delete': {'key': 'max-empty-bulk-delete', 'type': 'str'}, + 'max_graceful_termination_sec': {'key': 'max-graceful-termination-sec', 'type': 'str'}, + 'max_total_unready_percentage': {'key': 'max-total-unready-percentage', 'type': 'str'}, + 'new_pod_scale_up_delay': {'key': 'new-pod-scale-up-delay', 'type': 'str'}, + 'ok_total_unready_count': {'key': 'ok-total-unready-count', 'type': 'str'}, + 'scan_interval': {'key': 'scan-interval', 'type': 'str'}, + 'scale_down_delay_after_add': {'key': 'scale-down-delay-after-add', 'type': 'str'}, + 'scale_down_delay_after_delete': {'key': 'scale-down-delay-after-delete', 'type': 'str'}, + 'scale_down_delay_after_failure': {'key': 'scale-down-delay-after-failure', 'type': 'str'}, + 'scale_down_unneeded_time': {'key': 'scale-down-unneeded-time', 'type': 'str'}, + 'scale_down_unready_time': {'key': 'scale-down-unready-time', 'type': 'str'}, + 'scale_down_utilization_threshold': {'key': 'scale-down-utilization-threshold', 'type': 'str'}, + 'skip_nodes_with_local_storage': {'key': 'skip-nodes-with-local-storage', 'type': 'str'}, + 'skip_nodes_with_system_pods': {'key': 'skip-nodes-with-system-pods', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterPropertiesAutoScalerProfile, self).__init__(**kwargs) + self.balance_similar_node_groups = kwargs.get('balance_similar_node_groups', None) + self.expander = kwargs.get('expander', None) + self.max_empty_bulk_delete = kwargs.get('max_empty_bulk_delete', None) + self.max_graceful_termination_sec = kwargs.get('max_graceful_termination_sec', None) + self.max_total_unready_percentage = kwargs.get('max_total_unready_percentage', None) + self.new_pod_scale_up_delay = kwargs.get('new_pod_scale_up_delay', None) + self.ok_total_unready_count = kwargs.get('ok_total_unready_count', None) + self.scan_interval = kwargs.get('scan_interval', None) + self.scale_down_delay_after_add = kwargs.get('scale_down_delay_after_add', None) + self.scale_down_delay_after_delete = kwargs.get('scale_down_delay_after_delete', None) + self.scale_down_delay_after_failure = kwargs.get('scale_down_delay_after_failure', None) + self.scale_down_unneeded_time = kwargs.get('scale_down_unneeded_time', None) + self.scale_down_unready_time = kwargs.get('scale_down_unready_time', None) + self.scale_down_utilization_threshold = kwargs.get('scale_down_utilization_threshold', None) + self.skip_nodes_with_local_storage = kwargs.get('skip_nodes_with_local_storage', None) + self.skip_nodes_with_system_pods = kwargs.get('skip_nodes_with_system_pods', None) + + +class ManagedClusterPropertiesIdentityProfileValue(UserAssignedIdentity): + """ManagedClusterPropertiesIdentityProfileValue. + + :param resource_id: The resource id of the user assigned identity. + :type resource_id: str + :param client_id: The client id of the user assigned identity. + :type client_id: str + :param object_id: The object id of the user assigned identity. + :type object_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterPropertiesIdentityProfileValue, self).__init__(**kwargs) + + +class ManagedClusterServicePrincipalProfile(Model): + """Information about a service principal identity for the cluster to use for + manipulating Azure APIs. + + All required parameters must be populated in order to send to Azure. + + :param client_id: Required. The ID for the service principal. + :type client_id: str + :param secret: The secret password associated with the service principal + in plain text. + :type secret: str + """ + + _validation = { + 'client_id': {'required': True}, + } + + _attribute_map = { + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'secret': {'key': 'secret', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterServicePrincipalProfile, self).__init__(**kwargs) + self.client_id = kwargs.get('client_id', None) + self.secret = kwargs.get('secret', None) + + +class ManagedClusterSKU(Model): + """ManagedClusterSKU. + + :param name: Name of a managed cluster SKU. Possible values include: + 'Basic' + :type name: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterSKUName + :param tier: Tier of a managed cluster SKU. Possible values include: + 'Paid', 'Free' + :type tier: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterSKUTier + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterSKU, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.tier = kwargs.get('tier', None) + + +class ManagedClusterUpgradeProfile(Model): + """The list of available upgrades for compute pools. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Id of upgrade profile. + :vartype id: str + :ivar name: Name of upgrade profile. + :vartype name: str + :ivar type: Type of upgrade profile. + :vartype type: str + :param control_plane_profile: Required. The list of available upgrade + versions for the control plane. + :type control_plane_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPoolUpgradeProfile + :param agent_pool_profiles: Required. The list of available upgrade + versions for agent pools. + :type agent_pool_profiles: + list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPoolUpgradeProfile] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'control_plane_profile': {'required': True}, + 'agent_pool_profiles': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'control_plane_profile': {'key': 'properties.controlPlaneProfile', 'type': 'ManagedClusterPoolUpgradeProfile'}, + 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterPoolUpgradeProfile]'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterUpgradeProfile, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.control_plane_profile = kwargs.get('control_plane_profile', None) + self.agent_pool_profiles = kwargs.get('agent_pool_profiles', None) + + +class ManagedClusterWindowsProfile(Model): + """Profile for Windows VMs in the container service cluster. + + All required parameters must be populated in order to send to Azure. + + :param admin_username: Required. The administrator username to use for + Windows VMs. + :type admin_username: str + :param admin_password: The administrator password to use for Windows VMs. + :type admin_password: str + :param license_type: The licenseType to use for Windows VMs. + Windows_Server is used to enable Azure Hybrid User Benefits for Windows + VMs. Possible values include: 'None', 'Windows_Server' + :type license_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.LicenseType + """ + + _validation = { + 'admin_username': {'required': True, 'pattern': r'^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$'}, + 'admin_password': {'pattern': r'^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\^&\*\(\)])[a-zA-Z\d!@#$%\^&\*\(\)]{12,123}$'}, + } + + _attribute_map = { + 'admin_username': {'key': 'adminUsername', 'type': 'str'}, + 'admin_password': {'key': 'adminPassword', 'type': 'str'}, + 'license_type': {'key': 'licenseType', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ManagedClusterWindowsProfile, self).__init__(**kwargs) + self.admin_username = kwargs.get('admin_username', None) + self.admin_password = kwargs.get('admin_password', None) + self.license_type = kwargs.get('license_type', None) + + +class OperationValue(Model): + """Describes the properties of a Compute Operation value. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar origin: The origin of the compute operation. + :vartype origin: str + :ivar name: The name of the compute operation. + :vartype name: str + :ivar operation: The display name of the compute operation. + :vartype operation: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar description: The description of the operation. + :vartype description: str + :ivar provider: The resource provider for the operation. + :vartype provider: str + """ + + _validation = { + 'origin': {'readonly': True}, + 'name': {'readonly': True}, + 'operation': {'readonly': True}, + 'resource': {'readonly': True}, + 'description': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'origin': {'key': 'origin', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'operation': {'key': 'display.operation', 'type': 'str'}, + 'resource': {'key': 'display.resource', 'type': 'str'}, + 'description': {'key': 'display.description', 'type': 'str'}, + 'provider': {'key': 'display.provider', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(OperationValue, self).__init__(**kwargs) + self.origin = None + self.name = None + self.operation = None + self.resource = None + self.description = None + self.provider = None + + +class PowerState(Model): + """Describes the Power State of the cluster. + + :param code: Tells whether the cluster is Running or Stopped. Possible + values include: 'Running', 'Stopped' + :type code: str or ~azure.mgmt.containerservice.v2020_09_01.models.Code + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PowerState, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + + +class PrivateEndpoint(Model): + """Private endpoint which a connection belongs to. + + :param id: The resource Id for private endpoint + :type id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PrivateEndpoint, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + + +class PrivateEndpointConnection(Model): + """A private endpoint connection. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: The ID of the private endpoint connection. + :vartype id: str + :ivar name: The name of the private endpoint connection. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar provisioning_state: The current provisioning state. Possible values + include: 'Succeeded', 'Creating', 'Deleting', 'Failed' + :vartype provisioning_state: str or + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpointConnectionProvisioningState + :param private_endpoint: The resource of private endpoint. + :type private_endpoint: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpoint + :param private_link_service_connection_state: Required. A collection of + information about the state of the connection between service consumer and + provider. + :type private_link_service_connection_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateLinkServiceConnectionState + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'private_link_service_connection_state': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'PrivateEndpoint'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkServiceConnectionState'}, + } + + def __init__(self, **kwargs): + super(PrivateEndpointConnection, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.provisioning_state = None + self.private_endpoint = kwargs.get('private_endpoint', None) + self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None) + + +class PrivateEndpointConnectionListResult(Model): + """A list of private endpoint connections. + + :param value: The collection value. + :type value: + list[~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpointConnection] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateEndpointConnection]'}, + } + + def __init__(self, **kwargs): + super(PrivateEndpointConnectionListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class PrivateLinkResource(Model): + """A private link resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param id: The ID of the private link resource. + :type id: str + :param name: The name of the private link resource. + :type name: str + :param type: The resource type. + :type type: str + :param group_id: The group ID of the resource. + :type group_id: str + :param required_members: RequiredMembers of the resource + :type required_members: list[str] + :ivar private_link_service_id: The private link service ID of the + resource, this field is exposed only to NRP internally. + :vartype private_link_service_id: str + """ + + _validation = { + 'private_link_service_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'group_id': {'key': 'groupId', 'type': 'str'}, + 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, + 'private_link_service_id': {'key': 'privateLinkServiceID', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PrivateLinkResource, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.name = kwargs.get('name', None) + self.type = kwargs.get('type', None) + self.group_id = kwargs.get('group_id', None) + self.required_members = kwargs.get('required_members', None) + self.private_link_service_id = None + + +class PrivateLinkResourcesListResult(Model): + """A list of private link resources. + + :param value: The collection value. + :type value: + list[~azure.mgmt.containerservice.v2020_09_01.models.PrivateLinkResource] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__(self, **kwargs): + super(PrivateLinkResourcesListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class PrivateLinkServiceConnectionState(Model): + """The state of a private link service connection. + + :param status: The private link service connection status. Possible values + include: 'Pending', 'Approved', 'Rejected', 'Disconnected' + :type status: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ConnectionStatus + :param description: The private link service connection description. + :type description: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PrivateLinkServiceConnectionState, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.description = kwargs.get('description', None) + + +class ResourceReference(Model): + """A reference to an Azure resource. + + :param id: The fully qualified Azure resource id. + :type id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ResourceReference, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + + +class TagsObject(Model): + """Tags object for patch operations. + + :param tags: Resource tags. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__(self, **kwargs): + super(TagsObject, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_models_py3.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_models_py3.py new file mode 100644 index 00000000000..f1c895cd995 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_models_py3.py @@ -0,0 +1,2421 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class SubResource(Model): + """Reference to another subresource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: The name of the resource that is unique within a resource + group. This name can be used to access the resource. + :vartype name: str + :ivar type: Resource type + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(SubResource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class AgentPool(SubResource): + """Agent Pool. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: The name of the resource that is unique within a resource + group. This name can be used to access the resource. + :vartype name: str + :ivar type: Resource type + :vartype type: str + :param count: Number of agents (VMs) to host docker containers. Allowed + values must be in the range of 0 to 100 (inclusive) for user pools and in + the range of 1 to 100 (inclusive) for system pools. The default value is + 1. + :type count: int + :param vm_size: Size of agent VMs. Possible values include: 'Standard_A1', + 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', + 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', + 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', + 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', + 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', + 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', + 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', + 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', + 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', + 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', + 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', + 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', + 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', + 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', + 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', + 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', + 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', + 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', + 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', + 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', + 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', + 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', + 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', + 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', + 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', + 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', + 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', + 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', + 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', + 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', + 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', + 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', + 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', + 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', + 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', + 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', + 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', + 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', + 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', + 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', + 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', + 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', + 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', + 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', + 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', + 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', + 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', + 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', + 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', + 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6' + :type vm_size: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk + size for every machine in this master/agent pool. If you specify 0, it + will apply the default osDisk size according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: OS disk type to be used for machines in a given agent + pool. Allowed values are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. + May not be changed after creation. Possible values include: 'Managed', + 'Ephemeral' + :type os_disk_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSDiskType + :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet + identifier. + :type vnet_subnet_id: str + :param max_pods: Maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: OsType to be used to specify os type. Choose from Linux + and Windows. Default to Linux. Possible values include: 'Linux', + 'Windows'. Default value: "Linux" . + :type os_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSType + :param max_count: Maximum number of nodes for auto-scaling + :type max_count: int + :param min_count: Minimum number of nodes for auto-scaling + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler + :type enable_auto_scaling: bool + :param agent_pool_type: AgentPoolType represents types of an agent pool. + Possible values include: 'VirtualMachineScaleSets', 'AvailabilitySet' + :type agent_pool_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolType + :param mode: AgentPoolMode represents mode of an agent pool. Possible + values include: 'System', 'User' + :type mode: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolMode + :param orchestrator_version: Version of orchestrator specified when + creating the managed cluster. + :type orchestrator_version: str + :ivar node_image_version: Version of node image + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool + :type upgrade_settings: + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state, + which only appears in the response. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped + :vartype power_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PowerState + :param availability_zones: Availability zones for nodes. Must use + VirtualMachineScaleSets AgentPoolType. + :type availability_zones: list[str] + :param enable_node_public_ip: Enable public IP for nodes + :type enable_node_public_ip: bool + :param scale_set_priority: ScaleSetPriority to be used to specify virtual + machine scale set priority. Default to regular. Possible values include: + 'Spot', 'Regular'. Default value: "Regular" . + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetPriority + :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to + specify eviction policy for Spot virtual machine scale set. Default to + Delete. Possible values include: 'Delete', 'Deallocate'. Default value: + "Delete" . + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetEvictionPolicy + :param spot_max_price: SpotMaxPrice to be used to specify the maximum + price you are willing to pay in US Dollars. Possible values are any + decimal value greater than zero or -1 which indicates default price to be + up-to on-demand. + :type spot_max_price: float + :param tags: Agent pool tags to be persisted on the agent pool virtual + machine scale set. + :type tags: dict[str, str] + :param node_labels: Agent pool node labels to be persisted across all + nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: Taints added to new nodes during node pool create and + scale. For example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'count': {'key': 'properties.count', 'type': 'int'}, + 'vm_size': {'key': 'properties.vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'properties.osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'properties.osDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'properties.vnetSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'properties.maxPods', 'type': 'int'}, + 'os_type': {'key': 'properties.osType', 'type': 'str'}, + 'max_count': {'key': 'properties.maxCount', 'type': 'int'}, + 'min_count': {'key': 'properties.minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'properties.enableAutoScaling', 'type': 'bool'}, + 'agent_pool_type': {'key': 'properties.type', 'type': 'str'}, + 'mode': {'key': 'properties.mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'properties.orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'properties.nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'properties.upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'properties.availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'properties.enableNodePublicIP', 'type': 'bool'}, + 'scale_set_priority': {'key': 'properties.scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'properties.scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'properties.spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'properties.tags', 'type': '{str}'}, + 'node_labels': {'key': 'properties.nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'properties.nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'properties.proximityPlacementGroupID', 'type': 'str'}, + } + + def __init__(self, *, count: int=None, vm_size=None, os_disk_size_gb: int=None, os_disk_type=None, vnet_subnet_id: str=None, max_pods: int=None, os_type="Linux", max_count: int=None, min_count: int=None, enable_auto_scaling: bool=None, agent_pool_type=None, mode=None, orchestrator_version: str=None, upgrade_settings=None, availability_zones=None, enable_node_public_ip: bool=None, scale_set_priority="Regular", scale_set_eviction_policy="Delete", spot_max_price: float=None, tags=None, node_labels=None, node_taints=None, proximity_placement_group_id: str=None, **kwargs) -> None: + super(AgentPool, self).__init__(**kwargs) + self.count = count + self.vm_size = vm_size + self.os_disk_size_gb = os_disk_size_gb + self.os_disk_type = os_disk_type + self.vnet_subnet_id = vnet_subnet_id + self.max_pods = max_pods + self.os_type = os_type + self.max_count = max_count + self.min_count = min_count + self.enable_auto_scaling = enable_auto_scaling + self.agent_pool_type = agent_pool_type + self.mode = mode + self.orchestrator_version = orchestrator_version + self.node_image_version = None + self.upgrade_settings = upgrade_settings + self.provisioning_state = None + self.power_state = None + self.availability_zones = availability_zones + self.enable_node_public_ip = enable_node_public_ip + self.scale_set_priority = scale_set_priority + self.scale_set_eviction_policy = scale_set_eviction_policy + self.spot_max_price = spot_max_price + self.tags = tags + self.node_labels = node_labels + self.node_taints = node_taints + self.proximity_placement_group_id = proximity_placement_group_id + + +class AgentPoolAvailableVersions(Model): + """The list of available versions for an agent pool. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Id of the agent pool available versions. + :vartype id: str + :ivar name: Name of the agent pool available versions. + :vartype name: str + :ivar type: Type of the agent pool available versions. + :vartype type: str + :param agent_pool_versions: List of versions available for agent pool. + :type agent_pool_versions: + list[~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'agent_pool_versions': {'key': 'properties.agentPoolVersions', 'type': '[AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem]'}, + } + + def __init__(self, *, agent_pool_versions=None, **kwargs) -> None: + super(AgentPoolAvailableVersions, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.agent_pool_versions = agent_pool_versions + + +class AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem(Model): + """AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem. + + :param default: Whether this version is the default agent pool version. + :type default: bool + :param kubernetes_version: Kubernetes version (major, minor, patch). + :type kubernetes_version: str + :param is_preview: Whether Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'default': {'key': 'default', 'type': 'bool'}, + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__(self, *, default: bool=None, kubernetes_version: str=None, is_preview: bool=None, **kwargs) -> None: + super(AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem, self).__init__(**kwargs) + self.default = default + self.kubernetes_version = kubernetes_version + self.is_preview = is_preview + + +class AgentPoolUpgradeProfile(Model): + """The list of available upgrades for an agent pool. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Id of the agent pool upgrade profile. + :vartype id: str + :ivar name: Name of the agent pool upgrade profile. + :vartype name: str + :ivar type: Type of the agent pool upgrade profile. + :vartype type: str + :param kubernetes_version: Required. Kubernetes version (major, minor, + patch). + :type kubernetes_version: str + :param os_type: Required. OsType to be used to specify os type. Choose + from Linux and Windows. Default to Linux. Possible values include: + 'Linux', 'Windows'. Default value: "Linux" . + :type os_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSType + :param upgrades: List of orchestrator types and versions available for + upgrade. + :type upgrades: + list[~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeProfilePropertiesUpgradesItem] + :param latest_node_image_version: LatestNodeImageVersion is the latest AKS + supported node image version. + :type latest_node_image_version: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'kubernetes_version': {'required': True}, + 'os_type': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, + 'os_type': {'key': 'properties.osType', 'type': 'str'}, + 'upgrades': {'key': 'properties.upgrades', 'type': '[AgentPoolUpgradeProfilePropertiesUpgradesItem]'}, + 'latest_node_image_version': {'key': 'properties.latestNodeImageVersion', 'type': 'str'}, + } + + def __init__(self, *, kubernetes_version: str, os_type="Linux", upgrades=None, latest_node_image_version: str=None, **kwargs) -> None: + super(AgentPoolUpgradeProfile, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.kubernetes_version = kubernetes_version + self.os_type = os_type + self.upgrades = upgrades + self.latest_node_image_version = latest_node_image_version + + +class AgentPoolUpgradeProfilePropertiesUpgradesItem(Model): + """AgentPoolUpgradeProfilePropertiesUpgradesItem. + + :param kubernetes_version: Kubernetes version (major, minor, patch). + :type kubernetes_version: str + :param is_preview: Whether Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__(self, *, kubernetes_version: str=None, is_preview: bool=None, **kwargs) -> None: + super(AgentPoolUpgradeProfilePropertiesUpgradesItem, self).__init__(**kwargs) + self.kubernetes_version = kubernetes_version + self.is_preview = is_preview + + +class AgentPoolUpgradeSettings(Model): + """Settings for upgrading an agentpool. + + :param max_surge: Count or percentage of additional nodes to be added + during upgrade. If empty uses AKS default + :type max_surge: str + """ + + _attribute_map = { + 'max_surge': {'key': 'maxSurge', 'type': 'str'}, + } + + def __init__(self, *, max_surge: str=None, **kwargs) -> None: + super(AgentPoolUpgradeSettings, self).__init__(**kwargs) + self.max_surge = max_surge + + +class CloudError(Model): + """An error response from the Container service. + + :param error: Details about the error. + :type error: + ~azure.mgmt.containerservice.v2020_09_01.models.CloudErrorBody + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'CloudErrorBody'}, + } + + def __init__(self, *, error=None, **kwargs) -> None: + super(CloudError, self).__init__(**kwargs) + self.error = error + + +class CloudErrorException(HttpOperationError): + """Server responsed with exception of type: 'CloudError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(CloudErrorException, self).__init__(deserialize, response, 'CloudError', *args) + + +class CloudErrorBody(Model): + """An error response from the Container service. + + :param code: An identifier for the error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable + for display in a user interface. + :type message: str + :param target: The target of the particular error. For example, the name + of the property in error. + :type target: str + :param details: A list of additional details about the error. + :type details: + list[~azure.mgmt.containerservice.v2020_09_01.models.CloudErrorBody] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, + } + + def __init__(self, *, code: str=None, message: str=None, target: str=None, details=None, **kwargs) -> None: + super(CloudErrorBody, self).__init__(**kwargs) + self.code = code + self.message = message + self.target = target + self.details = details + + +class ContainerServiceDiagnosticsProfile(Model): + """Profile for diagnostics on the container service cluster. + + All required parameters must be populated in order to send to Azure. + + :param vm_diagnostics: Required. Profile for diagnostics on the container + service VMs. + :type vm_diagnostics: + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMDiagnostics + """ + + _validation = { + 'vm_diagnostics': {'required': True}, + } + + _attribute_map = { + 'vm_diagnostics': {'key': 'vmDiagnostics', 'type': 'ContainerServiceVMDiagnostics'}, + } + + def __init__(self, *, vm_diagnostics, **kwargs) -> None: + super(ContainerServiceDiagnosticsProfile, self).__init__(**kwargs) + self.vm_diagnostics = vm_diagnostics + + +class ContainerServiceLinuxProfile(Model): + """Profile for Linux VMs in the container service cluster. + + All required parameters must be populated in order to send to Azure. + + :param admin_username: Required. The administrator username to use for + Linux VMs. + :type admin_username: str + :param ssh: Required. SSH configuration for Linux-based VMs running on + Azure. + :type ssh: + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceSshConfiguration + """ + + _validation = { + 'admin_username': {'required': True, 'pattern': r'^[A-Za-z][-A-Za-z0-9_]*$'}, + 'ssh': {'required': True}, + } + + _attribute_map = { + 'admin_username': {'key': 'adminUsername', 'type': 'str'}, + 'ssh': {'key': 'ssh', 'type': 'ContainerServiceSshConfiguration'}, + } + + def __init__(self, *, admin_username: str, ssh, **kwargs) -> None: + super(ContainerServiceLinuxProfile, self).__init__(**kwargs) + self.admin_username = admin_username + self.ssh = ssh + + +class ContainerServiceMasterProfile(Model): + """Profile for the container service master. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param count: Number of masters (VMs) in the container service cluster. + Allowed values are 1, 3, and 5. The default value is 1. Default value: 1 . + :type count: int + :param dns_prefix: Required. DNS prefix to be used to create the FQDN for + the master pool. + :type dns_prefix: str + :param vm_size: Required. Size of agent VMs. Possible values include: + 'Standard_A1', 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', + 'Standard_A2', 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', + 'Standard_A4', 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', + 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', + 'Standard_A8m_v2', 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', + 'Standard_B4ms', 'Standard_B8ms', 'Standard_D1', 'Standard_D11', + 'Standard_D11_v2', 'Standard_D11_v2_Promo', 'Standard_D12', + 'Standard_D12_v2', 'Standard_D12_v2_Promo', 'Standard_D13', + 'Standard_D13_v2', 'Standard_D13_v2_Promo', 'Standard_D14', + 'Standard_D14_v2', 'Standard_D14_v2_Promo', 'Standard_D15_v2', + 'Standard_D16_v3', 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', + 'Standard_D2_v2', 'Standard_D2_v2_Promo', 'Standard_D2_v3', + 'Standard_D2s_v3', 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', + 'Standard_D3_v2', 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', + 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', + 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', + 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', + 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', + 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', + 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', + 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', + 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', + 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', + 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', + 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', + 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', + 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', + 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', + 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', + 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', + 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', + 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', + 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', + 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', + 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', + 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', + 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', + 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', + 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', + 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', + 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', + 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', + 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', + 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', + 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', + 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', + 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', + 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', + 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', + 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6' + :type vm_size: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk + size for every machine in this master/agent pool. If you specify 0, it + will apply the default osDisk size according to the vmSize specified. + :type os_disk_size_gb: int + :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet + identifier. + :type vnet_subnet_id: str + :param first_consecutive_static_ip: FirstConsecutiveStaticIP used to + specify the first static ip of masters. Default value: "10.240.255.5" . + :type first_consecutive_static_ip: str + :param storage_profile: Storage profile specifies what kind of storage + used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will + choose for you based on the orchestrator choice. Possible values include: + 'StorageAccount', 'ManagedDisks' + :type storage_profile: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceStorageProfileTypes + :ivar fqdn: FQDN for the master pool. + :vartype fqdn: str + """ + + _validation = { + 'dns_prefix': {'required': True}, + 'vm_size': {'required': True}, + 'fqdn': {'readonly': True}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'dns_prefix': {'key': 'dnsPrefix', 'type': 'str'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'first_consecutive_static_ip': {'key': 'firstConsecutiveStaticIP', 'type': 'str'}, + 'storage_profile': {'key': 'storageProfile', 'type': 'str'}, + 'fqdn': {'key': 'fqdn', 'type': 'str'}, + } + + def __init__(self, *, dns_prefix: str, vm_size, count: int=1, os_disk_size_gb: int=None, vnet_subnet_id: str=None, first_consecutive_static_ip: str="10.240.255.5", storage_profile=None, **kwargs) -> None: + super(ContainerServiceMasterProfile, self).__init__(**kwargs) + self.count = count + self.dns_prefix = dns_prefix + self.vm_size = vm_size + self.os_disk_size_gb = os_disk_size_gb + self.vnet_subnet_id = vnet_subnet_id + self.first_consecutive_static_ip = first_consecutive_static_ip + self.storage_profile = storage_profile + self.fqdn = None + + +class ContainerServiceNetworkProfile(Model): + """Profile of network configuration. + + :param network_plugin: Network plugin used for building Kubernetes + network. Possible values include: 'azure', 'kubenet'. Default value: + "kubenet" . + :type network_plugin: str or + ~azure.mgmt.containerservice.v2020_09_01.models.NetworkPlugin + :param network_policy: Network policy used for building Kubernetes + network. Possible values include: 'calico', 'azure' + :type network_policy: str or + ~azure.mgmt.containerservice.v2020_09_01.models.NetworkPolicy + :param network_mode: Network mode used for building Kubernetes network. + Possible values include: 'transparent', 'bridge' + :type network_mode: str or + ~azure.mgmt.containerservice.v2020_09_01.models.NetworkMode + :param pod_cidr: A CIDR notation IP range from which to assign pod IPs + when kubenet is used. Default value: "10.244.0.0/16" . + :type pod_cidr: str + :param service_cidr: A CIDR notation IP range from which to assign service + cluster IPs. It must not overlap with any Subnet IP ranges. Default value: + "10.0.0.0/16" . + :type service_cidr: str + :param dns_service_ip: An IP address assigned to the Kubernetes DNS + service. It must be within the Kubernetes service address range specified + in serviceCidr. Default value: "10.0.0.10" . + :type dns_service_ip: str + :param docker_bridge_cidr: A CIDR notation IP range assigned to the Docker + bridge network. It must not overlap with any Subnet IP ranges or the + Kubernetes service address range. Default value: "172.17.0.1/16" . + :type docker_bridge_cidr: str + :param outbound_type: The outbound (egress) routing method. Possible + values include: 'loadBalancer', 'userDefinedRouting'. Default value: + "loadBalancer" . + :type outbound_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OutboundType + :param load_balancer_sku: The load balancer sku for the managed cluster. + Possible values include: 'standard', 'basic' + :type load_balancer_sku: str or + ~azure.mgmt.containerservice.v2020_09_01.models.LoadBalancerSku + :param load_balancer_profile: Profile of the cluster load balancer. + :type load_balancer_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfile + """ + + _validation = { + 'pod_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + 'service_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + 'dns_service_ip': {'pattern': r'^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'}, + 'docker_bridge_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, + } + + _attribute_map = { + 'network_plugin': {'key': 'networkPlugin', 'type': 'str'}, + 'network_policy': {'key': 'networkPolicy', 'type': 'str'}, + 'network_mode': {'key': 'networkMode', 'type': 'str'}, + 'pod_cidr': {'key': 'podCidr', 'type': 'str'}, + 'service_cidr': {'key': 'serviceCidr', 'type': 'str'}, + 'dns_service_ip': {'key': 'dnsServiceIP', 'type': 'str'}, + 'docker_bridge_cidr': {'key': 'dockerBridgeCidr', 'type': 'str'}, + 'outbound_type': {'key': 'outboundType', 'type': 'str'}, + 'load_balancer_sku': {'key': 'loadBalancerSku', 'type': 'str'}, + 'load_balancer_profile': {'key': 'loadBalancerProfile', 'type': 'ManagedClusterLoadBalancerProfile'}, + } + + def __init__(self, *, network_plugin="kubenet", network_policy=None, network_mode=None, pod_cidr: str="10.244.0.0/16", service_cidr: str="10.0.0.0/16", dns_service_ip: str="10.0.0.10", docker_bridge_cidr: str="172.17.0.1/16", outbound_type="loadBalancer", load_balancer_sku=None, load_balancer_profile=None, **kwargs) -> None: + super(ContainerServiceNetworkProfile, self).__init__(**kwargs) + self.network_plugin = network_plugin + self.network_policy = network_policy + self.network_mode = network_mode + self.pod_cidr = pod_cidr + self.service_cidr = service_cidr + self.dns_service_ip = dns_service_ip + self.docker_bridge_cidr = docker_bridge_cidr + self.outbound_type = outbound_type + self.load_balancer_sku = load_balancer_sku + self.load_balancer_profile = load_balancer_profile + + +class ContainerServiceSshConfiguration(Model): + """SSH configuration for Linux-based VMs running on Azure. + + All required parameters must be populated in order to send to Azure. + + :param public_keys: Required. The list of SSH public keys used to + authenticate with Linux-based VMs. Only expect one key specified. + :type public_keys: + list[~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceSshPublicKey] + """ + + _validation = { + 'public_keys': {'required': True}, + } + + _attribute_map = { + 'public_keys': {'key': 'publicKeys', 'type': '[ContainerServiceSshPublicKey]'}, + } + + def __init__(self, *, public_keys, **kwargs) -> None: + super(ContainerServiceSshConfiguration, self).__init__(**kwargs) + self.public_keys = public_keys + + +class ContainerServiceSshPublicKey(Model): + """Contains information about SSH certificate public key data. + + All required parameters must be populated in order to send to Azure. + + :param key_data: Required. Certificate public key used to authenticate + with VMs through SSH. The certificate must be in PEM format with or + without headers. + :type key_data: str + """ + + _validation = { + 'key_data': {'required': True}, + } + + _attribute_map = { + 'key_data': {'key': 'keyData', 'type': 'str'}, + } + + def __init__(self, *, key_data: str, **kwargs) -> None: + super(ContainerServiceSshPublicKey, self).__init__(**kwargs) + self.key_data = key_data + + +class ContainerServiceVMDiagnostics(Model): + """Profile for diagnostics on the container service VMs. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Whether the VM diagnostic agent is provisioned + on the VM. + :type enabled: bool + :ivar storage_uri: The URI of the storage account where diagnostics are + stored. + :vartype storage_uri: str + """ + + _validation = { + 'enabled': {'required': True}, + 'storage_uri': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'storage_uri': {'key': 'storageUri', 'type': 'str'}, + } + + def __init__(self, *, enabled: bool, **kwargs) -> None: + super(ContainerServiceVMDiagnostics, self).__init__(**kwargs) + self.enabled = enabled + self.storage_uri = None + + +class CredentialResult(Model): + """The credential result response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar name: The name of the credential. + :vartype name: str + :ivar value: Base64-encoded Kubernetes configuration file. + :vartype value: bytearray + """ + + _validation = { + 'name': {'readonly': True}, + 'value': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'bytearray'}, + } + + def __init__(self, **kwargs) -> None: + super(CredentialResult, self).__init__(**kwargs) + self.name = None + self.value = None + + +class CredentialResults(Model): + """The list of credential result response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar kubeconfigs: Base64-encoded Kubernetes configuration file. + :vartype kubeconfigs: + list[~azure.mgmt.containerservice.v2020_09_01.models.CredentialResult] + """ + + _validation = { + 'kubeconfigs': {'readonly': True}, + } + + _attribute_map = { + 'kubeconfigs': {'key': 'kubeconfigs', 'type': '[CredentialResult]'}, + } + + def __init__(self, **kwargs) -> None: + super(CredentialResults, self).__init__(**kwargs) + self.kubeconfigs = None + + +class Resource(Model): + """The Resource model definition. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Resource Id + :vartype id: str + :ivar name: Resource name + :vartype name: str + :ivar type: Resource type + :vartype type: str + :param location: Required. Resource location + :type location: str + :param tags: Resource tags + :type tags: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__(self, *, location: str, tags=None, **kwargs) -> None: + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.location = location + self.tags = tags + + +class ManagedCluster(Resource): + """Managed cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Resource Id + :vartype id: str + :ivar name: Resource name + :vartype name: str + :ivar type: Resource type + :vartype type: str + :param location: Required. Resource location + :type location: str + :param tags: Resource tags + :type tags: dict[str, str] + :ivar provisioning_state: The current deployment or provisioning state, + which only appears in the response. + :vartype provisioning_state: str + :ivar power_state: Represents the Power State of the cluster + :vartype power_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PowerState + :ivar max_agent_pools: The max number of agent pools for the managed + cluster. + :vartype max_agent_pools: int + :param kubernetes_version: Version of Kubernetes specified when creating + the managed cluster. + :type kubernetes_version: str + :param dns_prefix: DNS prefix specified when creating the managed cluster. + :type dns_prefix: str + :ivar fqdn: FQDN for the master pool. + :vartype fqdn: str + :ivar private_fqdn: FQDN of private cluster. + :vartype private_fqdn: str + :param agent_pool_profiles: Properties of the agent pool. + :type agent_pool_profiles: + list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAgentPoolProfile] + :param linux_profile: Profile for Linux VMs in the container service + cluster. + :type linux_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceLinuxProfile + :param windows_profile: Profile for Windows VMs in the container service + cluster. + :type windows_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterWindowsProfile + :param service_principal_profile: Information about a service principal + identity for the cluster to use for manipulating Azure APIs. + :type service_principal_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterServicePrincipalProfile + :param addon_profiles: Profile of managed cluster add-on. + :type addon_profiles: dict[str, + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAddonProfile] + :param node_resource_group: Name of the resource group containing agent + pool nodes. + :type node_resource_group: str + :param enable_rbac: Whether to enable Kubernetes Role-Based Access + Control. + :type enable_rbac: bool + :param enable_pod_security_policy: (DEPRECATING) Whether to enable + Kubernetes pod security policy (preview). This feature is set for removal + on October 15th, 2020. Learn more at aka.ms/aks/azpodpolicy. + :type enable_pod_security_policy: bool + :param network_profile: Profile of network configuration. + :type network_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceNetworkProfile + :param aad_profile: Profile of Azure Active Directory configuration. + :type aad_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAADProfile + :param auto_scaler_profile: Parameters to be applied to the + cluster-autoscaler when enabled + :type auto_scaler_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPropertiesAutoScalerProfile + :param api_server_access_profile: Access profile for managed cluster API + server. + :type api_server_access_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAPIServerAccessProfile + :param disk_encryption_set_id: ResourceId of the disk encryption set to + use for enabling encryption at rest. + :type disk_encryption_set_id: str + :param identity_profile: Identities associated with the cluster. + :type identity_profile: dict[str, + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPropertiesIdentityProfileValue] + :param identity: The identity of the managed cluster, if configured. + :type identity: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterIdentity + :param sku: The managed cluster SKU. + :type sku: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterSKU + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + 'max_agent_pools': {'readonly': True}, + 'fqdn': {'readonly': True}, + 'private_fqdn': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, + 'max_agent_pools': {'key': 'properties.maxAgentPools', 'type': 'int'}, + 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, + 'dns_prefix': {'key': 'properties.dnsPrefix', 'type': 'str'}, + 'fqdn': {'key': 'properties.fqdn', 'type': 'str'}, + 'private_fqdn': {'key': 'properties.privateFQDN', 'type': 'str'}, + 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterAgentPoolProfile]'}, + 'linux_profile': {'key': 'properties.linuxProfile', 'type': 'ContainerServiceLinuxProfile'}, + 'windows_profile': {'key': 'properties.windowsProfile', 'type': 'ManagedClusterWindowsProfile'}, + 'service_principal_profile': {'key': 'properties.servicePrincipalProfile', 'type': 'ManagedClusterServicePrincipalProfile'}, + 'addon_profiles': {'key': 'properties.addonProfiles', 'type': '{ManagedClusterAddonProfile}'}, + 'node_resource_group': {'key': 'properties.nodeResourceGroup', 'type': 'str'}, + 'enable_rbac': {'key': 'properties.enableRBAC', 'type': 'bool'}, + 'enable_pod_security_policy': {'key': 'properties.enablePodSecurityPolicy', 'type': 'bool'}, + 'network_profile': {'key': 'properties.networkProfile', 'type': 'ContainerServiceNetworkProfile'}, + 'aad_profile': {'key': 'properties.aadProfile', 'type': 'ManagedClusterAADProfile'}, + 'auto_scaler_profile': {'key': 'properties.autoScalerProfile', 'type': 'ManagedClusterPropertiesAutoScalerProfile'}, + 'api_server_access_profile': {'key': 'properties.apiServerAccessProfile', 'type': 'ManagedClusterAPIServerAccessProfile'}, + 'disk_encryption_set_id': {'key': 'properties.diskEncryptionSetID', 'type': 'str'}, + 'identity_profile': {'key': 'properties.identityProfile', 'type': '{ManagedClusterPropertiesIdentityProfileValue}'}, + 'identity': {'key': 'identity', 'type': 'ManagedClusterIdentity'}, + 'sku': {'key': 'sku', 'type': 'ManagedClusterSKU'}, + } + + def __init__(self, *, location: str, tags=None, kubernetes_version: str=None, dns_prefix: str=None, agent_pool_profiles=None, linux_profile=None, windows_profile=None, service_principal_profile=None, addon_profiles=None, node_resource_group: str=None, enable_rbac: bool=None, enable_pod_security_policy: bool=None, network_profile=None, aad_profile=None, auto_scaler_profile=None, api_server_access_profile=None, disk_encryption_set_id: str=None, identity_profile=None, identity=None, sku=None, **kwargs) -> None: + super(ManagedCluster, self).__init__(location=location, tags=tags, **kwargs) + self.provisioning_state = None + self.power_state = None + self.max_agent_pools = None + self.kubernetes_version = kubernetes_version + self.dns_prefix = dns_prefix + self.fqdn = None + self.private_fqdn = None + self.agent_pool_profiles = agent_pool_profiles + self.linux_profile = linux_profile + self.windows_profile = windows_profile + self.service_principal_profile = service_principal_profile + self.addon_profiles = addon_profiles + self.node_resource_group = node_resource_group + self.enable_rbac = enable_rbac + self.enable_pod_security_policy = enable_pod_security_policy + self.network_profile = network_profile + self.aad_profile = aad_profile + self.auto_scaler_profile = auto_scaler_profile + self.api_server_access_profile = api_server_access_profile + self.disk_encryption_set_id = disk_encryption_set_id + self.identity_profile = identity_profile + self.identity = identity + self.sku = sku + + +class ManagedClusterAADProfile(Model): + """AADProfile specifies attributes for Azure Active Directory integration. + + :param managed: Whether to enable managed AAD. + :type managed: bool + :param enable_azure_rbac: Whether to enable Azure RBAC for Kubernetes + authorization. + :type enable_azure_rbac: bool + :param admin_group_object_ids: AAD group object IDs that will have admin + role of the cluster. + :type admin_group_object_ids: list[str] + :param client_app_id: The client AAD application ID. + :type client_app_id: str + :param server_app_id: The server AAD application ID. + :type server_app_id: str + :param server_app_secret: The server AAD application secret. + :type server_app_secret: str + :param tenant_id: The AAD tenant ID to use for authentication. If not + specified, will use the tenant of the deployment subscription. + :type tenant_id: str + """ + + _attribute_map = { + 'managed': {'key': 'managed', 'type': 'bool'}, + 'enable_azure_rbac': {'key': 'enableAzureRBAC', 'type': 'bool'}, + 'admin_group_object_ids': {'key': 'adminGroupObjectIDs', 'type': '[str]'}, + 'client_app_id': {'key': 'clientAppID', 'type': 'str'}, + 'server_app_id': {'key': 'serverAppID', 'type': 'str'}, + 'server_app_secret': {'key': 'serverAppSecret', 'type': 'str'}, + 'tenant_id': {'key': 'tenantID', 'type': 'str'}, + } + + def __init__(self, *, managed: bool=None, enable_azure_rbac: bool=None, admin_group_object_ids=None, client_app_id: str=None, server_app_id: str=None, server_app_secret: str=None, tenant_id: str=None, **kwargs) -> None: + super(ManagedClusterAADProfile, self).__init__(**kwargs) + self.managed = managed + self.enable_azure_rbac = enable_azure_rbac + self.admin_group_object_ids = admin_group_object_ids + self.client_app_id = client_app_id + self.server_app_id = server_app_id + self.server_app_secret = server_app_secret + self.tenant_id = tenant_id + + +class ManagedClusterAccessProfile(Resource): + """Managed cluster Access Profile. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Resource Id + :vartype id: str + :ivar name: Resource name + :vartype name: str + :ivar type: Resource type + :vartype type: str + :param location: Required. Resource location + :type location: str + :param tags: Resource tags + :type tags: dict[str, str] + :param kube_config: Base64-encoded Kubernetes configuration file. + :type kube_config: bytearray + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'kube_config': {'key': 'properties.kubeConfig', 'type': 'bytearray'}, + } + + def __init__(self, *, location: str, tags=None, kube_config: bytearray=None, **kwargs) -> None: + super(ManagedClusterAccessProfile, self).__init__(location=location, tags=tags, **kwargs) + self.kube_config = kube_config + + +class ManagedClusterAddonProfile(Model): + """A Kubernetes add-on profile for a managed cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Whether the add-on is enabled or not. + :type enabled: bool + :param config: Key-value pairs for configuring an add-on. + :type config: dict[str, str] + :ivar identity: Information of user assigned identity used by this add-on. + :vartype identity: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAddonProfileIdentity + """ + + _validation = { + 'enabled': {'required': True}, + 'identity': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'config': {'key': 'config', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'ManagedClusterAddonProfileIdentity'}, + } + + def __init__(self, *, enabled: bool, config=None, **kwargs) -> None: + super(ManagedClusterAddonProfile, self).__init__(**kwargs) + self.enabled = enabled + self.config = config + self.identity = None + + +class UserAssignedIdentity(Model): + """UserAssignedIdentity. + + :param resource_id: The resource id of the user assigned identity. + :type resource_id: str + :param client_id: The client id of the user assigned identity. + :type client_id: str + :param object_id: The object id of the user assigned identity. + :type object_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__(self, *, resource_id: str=None, client_id: str=None, object_id: str=None, **kwargs) -> None: + super(UserAssignedIdentity, self).__init__(**kwargs) + self.resource_id = resource_id + self.client_id = client_id + self.object_id = object_id + + +class ManagedClusterAddonProfileIdentity(UserAssignedIdentity): + """Information of user assigned identity used by this add-on. + + :param resource_id: The resource id of the user assigned identity. + :type resource_id: str + :param client_id: The client id of the user assigned identity. + :type client_id: str + :param object_id: The object id of the user assigned identity. + :type object_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__(self, *, resource_id: str=None, client_id: str=None, object_id: str=None, **kwargs) -> None: + super(ManagedClusterAddonProfileIdentity, self).__init__(resource_id=resource_id, client_id=client_id, object_id=object_id, **kwargs) + + +class ManagedClusterAgentPoolProfileProperties(Model): + """Properties for the container service agent pool profile. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param count: Number of agents (VMs) to host docker containers. Allowed + values must be in the range of 0 to 100 (inclusive) for user pools and in + the range of 1 to 100 (inclusive) for system pools. The default value is + 1. + :type count: int + :param vm_size: Size of agent VMs. Possible values include: 'Standard_A1', + 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', + 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', + 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', + 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', + 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', + 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', + 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', + 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', + 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', + 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', + 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', + 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', + 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', + 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', + 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', + 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', + 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', + 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', + 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', + 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', + 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', + 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', + 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', + 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', + 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', + 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', + 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', + 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', + 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', + 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', + 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', + 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', + 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', + 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', + 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', + 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', + 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', + 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', + 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', + 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', + 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', + 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', + 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', + 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', + 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', + 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', + 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', + 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', + 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', + 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6' + :type vm_size: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk + size for every machine in this master/agent pool. If you specify 0, it + will apply the default osDisk size according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: OS disk type to be used for machines in a given agent + pool. Allowed values are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. + May not be changed after creation. Possible values include: 'Managed', + 'Ephemeral' + :type os_disk_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSDiskType + :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet + identifier. + :type vnet_subnet_id: str + :param max_pods: Maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: OsType to be used to specify os type. Choose from Linux + and Windows. Default to Linux. Possible values include: 'Linux', + 'Windows'. Default value: "Linux" . + :type os_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSType + :param max_count: Maximum number of nodes for auto-scaling + :type max_count: int + :param min_count: Minimum number of nodes for auto-scaling + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler + :type enable_auto_scaling: bool + :param type: AgentPoolType represents types of an agent pool. Possible + values include: 'VirtualMachineScaleSets', 'AvailabilitySet' + :type type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolType + :param mode: AgentPoolMode represents mode of an agent pool. Possible + values include: 'System', 'User' + :type mode: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolMode + :param orchestrator_version: Version of orchestrator specified when + creating the managed cluster. + :type orchestrator_version: str + :ivar node_image_version: Version of node image + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool + :type upgrade_settings: + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state, + which only appears in the response. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped + :vartype power_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PowerState + :param availability_zones: Availability zones for nodes. Must use + VirtualMachineScaleSets AgentPoolType. + :type availability_zones: list[str] + :param enable_node_public_ip: Enable public IP for nodes + :type enable_node_public_ip: bool + :param scale_set_priority: ScaleSetPriority to be used to specify virtual + machine scale set priority. Default to regular. Possible values include: + 'Spot', 'Regular'. Default value: "Regular" . + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetPriority + :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to + specify eviction policy for Spot virtual machine scale set. Default to + Delete. Possible values include: 'Delete', 'Deallocate'. Default value: + "Delete" . + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetEvictionPolicy + :param spot_max_price: SpotMaxPrice to be used to specify the maximum + price you are willing to pay in US Dollars. Possible values are any + decimal value greater than zero or -1 which indicates default price to be + up-to on-demand. + :type spot_max_price: float + :param tags: Agent pool tags to be persisted on the agent pool virtual + machine scale set. + :type tags: dict[str, str] + :param node_labels: Agent pool node labels to be persisted across all + nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: Taints added to new nodes during node pool create and + scale. For example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + """ + + _validation = { + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'osDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'maxPods', 'type': 'int'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'max_count': {'key': 'maxCount', 'type': 'int'}, + 'min_count': {'key': 'minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'enableAutoScaling', 'type': 'bool'}, + 'type': {'key': 'type', 'type': 'str'}, + 'mode': {'key': 'mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'power_state': {'key': 'powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'enableNodePublicIP', 'type': 'bool'}, + 'scale_set_priority': {'key': 'scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'node_labels': {'key': 'nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'proximityPlacementGroupID', 'type': 'str'}, + } + + def __init__(self, *, count: int=None, vm_size=None, os_disk_size_gb: int=None, os_disk_type=None, vnet_subnet_id: str=None, max_pods: int=None, os_type="Linux", max_count: int=None, min_count: int=None, enable_auto_scaling: bool=None, type=None, mode=None, orchestrator_version: str=None, upgrade_settings=None, availability_zones=None, enable_node_public_ip: bool=None, scale_set_priority="Regular", scale_set_eviction_policy="Delete", spot_max_price: float=None, tags=None, node_labels=None, node_taints=None, proximity_placement_group_id: str=None, **kwargs) -> None: + super(ManagedClusterAgentPoolProfileProperties, self).__init__(**kwargs) + self.count = count + self.vm_size = vm_size + self.os_disk_size_gb = os_disk_size_gb + self.os_disk_type = os_disk_type + self.vnet_subnet_id = vnet_subnet_id + self.max_pods = max_pods + self.os_type = os_type + self.max_count = max_count + self.min_count = min_count + self.enable_auto_scaling = enable_auto_scaling + self.type = type + self.mode = mode + self.orchestrator_version = orchestrator_version + self.node_image_version = None + self.upgrade_settings = upgrade_settings + self.provisioning_state = None + self.power_state = None + self.availability_zones = availability_zones + self.enable_node_public_ip = enable_node_public_ip + self.scale_set_priority = scale_set_priority + self.scale_set_eviction_policy = scale_set_eviction_policy + self.spot_max_price = spot_max_price + self.tags = tags + self.node_labels = node_labels + self.node_taints = node_taints + self.proximity_placement_group_id = proximity_placement_group_id + + +class ManagedClusterAgentPoolProfile(ManagedClusterAgentPoolProfileProperties): + """Profile for the container service agent pool. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param count: Number of agents (VMs) to host docker containers. Allowed + values must be in the range of 0 to 100 (inclusive) for user pools and in + the range of 1 to 100 (inclusive) for system pools. The default value is + 1. + :type count: int + :param vm_size: Size of agent VMs. Possible values include: 'Standard_A1', + 'Standard_A10', 'Standard_A11', 'Standard_A1_v2', 'Standard_A2', + 'Standard_A2_v2', 'Standard_A2m_v2', 'Standard_A3', 'Standard_A4', + 'Standard_A4_v2', 'Standard_A4m_v2', 'Standard_A5', 'Standard_A6', + 'Standard_A7', 'Standard_A8', 'Standard_A8_v2', 'Standard_A8m_v2', + 'Standard_A9', 'Standard_B2ms', 'Standard_B2s', 'Standard_B4ms', + 'Standard_B8ms', 'Standard_D1', 'Standard_D11', 'Standard_D11_v2', + 'Standard_D11_v2_Promo', 'Standard_D12', 'Standard_D12_v2', + 'Standard_D12_v2_Promo', 'Standard_D13', 'Standard_D13_v2', + 'Standard_D13_v2_Promo', 'Standard_D14', 'Standard_D14_v2', + 'Standard_D14_v2_Promo', 'Standard_D15_v2', 'Standard_D16_v3', + 'Standard_D16s_v3', 'Standard_D1_v2', 'Standard_D2', 'Standard_D2_v2', + 'Standard_D2_v2_Promo', 'Standard_D2_v3', 'Standard_D2s_v3', + 'Standard_D3', 'Standard_D32_v3', 'Standard_D32s_v3', 'Standard_D3_v2', + 'Standard_D3_v2_Promo', 'Standard_D4', 'Standard_D4_v2', + 'Standard_D4_v2_Promo', 'Standard_D4_v3', 'Standard_D4s_v3', + 'Standard_D5_v2', 'Standard_D5_v2_Promo', 'Standard_D64_v3', + 'Standard_D64s_v3', 'Standard_D8_v3', 'Standard_D8s_v3', 'Standard_DS1', + 'Standard_DS11', 'Standard_DS11_v2', 'Standard_DS11_v2_Promo', + 'Standard_DS12', 'Standard_DS12_v2', 'Standard_DS12_v2_Promo', + 'Standard_DS13', 'Standard_DS13-2_v2', 'Standard_DS13-4_v2', + 'Standard_DS13_v2', 'Standard_DS13_v2_Promo', 'Standard_DS14', + 'Standard_DS14-4_v2', 'Standard_DS14-8_v2', 'Standard_DS14_v2', + 'Standard_DS14_v2_Promo', 'Standard_DS15_v2', 'Standard_DS1_v2', + 'Standard_DS2', 'Standard_DS2_v2', 'Standard_DS2_v2_Promo', + 'Standard_DS3', 'Standard_DS3_v2', 'Standard_DS3_v2_Promo', + 'Standard_DS4', 'Standard_DS4_v2', 'Standard_DS4_v2_Promo', + 'Standard_DS5_v2', 'Standard_DS5_v2_Promo', 'Standard_E16_v3', + 'Standard_E16s_v3', 'Standard_E2_v3', 'Standard_E2s_v3', + 'Standard_E32-16s_v3', 'Standard_E32-8s_v3', 'Standard_E32_v3', + 'Standard_E32s_v3', 'Standard_E4_v3', 'Standard_E4s_v3', + 'Standard_E64-16s_v3', 'Standard_E64-32s_v3', 'Standard_E64_v3', + 'Standard_E64s_v3', 'Standard_E8_v3', 'Standard_E8s_v3', 'Standard_F1', + 'Standard_F16', 'Standard_F16s', 'Standard_F16s_v2', 'Standard_F1s', + 'Standard_F2', 'Standard_F2s', 'Standard_F2s_v2', 'Standard_F32s_v2', + 'Standard_F4', 'Standard_F4s', 'Standard_F4s_v2', 'Standard_F64s_v2', + 'Standard_F72s_v2', 'Standard_F8', 'Standard_F8s', 'Standard_F8s_v2', + 'Standard_G1', 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', + 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', + 'Standard_GS4-4', 'Standard_GS4-8', 'Standard_GS5', 'Standard_GS5-16', + 'Standard_GS5-8', 'Standard_H16', 'Standard_H16m', 'Standard_H16mr', + 'Standard_H16r', 'Standard_H8', 'Standard_H8m', 'Standard_L16s', + 'Standard_L32s', 'Standard_L4s', 'Standard_L8s', 'Standard_M128-32ms', + 'Standard_M128-64ms', 'Standard_M128ms', 'Standard_M128s', + 'Standard_M64-16ms', 'Standard_M64-32ms', 'Standard_M64ms', + 'Standard_M64s', 'Standard_NC12', 'Standard_NC12s_v2', + 'Standard_NC12s_v3', 'Standard_NC24', 'Standard_NC24r', + 'Standard_NC24rs_v2', 'Standard_NC24rs_v3', 'Standard_NC24s_v2', + 'Standard_NC24s_v3', 'Standard_NC6', 'Standard_NC6s_v2', + 'Standard_NC6s_v3', 'Standard_ND12s', 'Standard_ND24rs', 'Standard_ND24s', + 'Standard_ND6s', 'Standard_NV12', 'Standard_NV24', 'Standard_NV6' + :type vm_size: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes + :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk + size for every machine in this master/agent pool. If you specify 0, it + will apply the default osDisk size according to the vmSize specified. + :type os_disk_size_gb: int + :param os_disk_type: OS disk type to be used for machines in a given agent + pool. Allowed values are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. + May not be changed after creation. Possible values include: 'Managed', + 'Ephemeral' + :type os_disk_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSDiskType + :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet + identifier. + :type vnet_subnet_id: str + :param max_pods: Maximum number of pods that can run on a node. + :type max_pods: int + :param os_type: OsType to be used to specify os type. Choose from Linux + and Windows. Default to Linux. Possible values include: 'Linux', + 'Windows'. Default value: "Linux" . + :type os_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSType + :param max_count: Maximum number of nodes for auto-scaling + :type max_count: int + :param min_count: Minimum number of nodes for auto-scaling + :type min_count: int + :param enable_auto_scaling: Whether to enable auto-scaler + :type enable_auto_scaling: bool + :param type: AgentPoolType represents types of an agent pool. Possible + values include: 'VirtualMachineScaleSets', 'AvailabilitySet' + :type type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolType + :param mode: AgentPoolMode represents mode of an agent pool. Possible + values include: 'System', 'User' + :type mode: str or + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolMode + :param orchestrator_version: Version of orchestrator specified when + creating the managed cluster. + :type orchestrator_version: str + :ivar node_image_version: Version of node image + :vartype node_image_version: str + :param upgrade_settings: Settings for upgrading the agentpool + :type upgrade_settings: + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeSettings + :ivar provisioning_state: The current deployment or provisioning state, + which only appears in the response. + :vartype provisioning_state: str + :ivar power_state: Describes whether the Agent Pool is Running or Stopped + :vartype power_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PowerState + :param availability_zones: Availability zones for nodes. Must use + VirtualMachineScaleSets AgentPoolType. + :type availability_zones: list[str] + :param enable_node_public_ip: Enable public IP for nodes + :type enable_node_public_ip: bool + :param scale_set_priority: ScaleSetPriority to be used to specify virtual + machine scale set priority. Default to regular. Possible values include: + 'Spot', 'Regular'. Default value: "Regular" . + :type scale_set_priority: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetPriority + :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to + specify eviction policy for Spot virtual machine scale set. Default to + Delete. Possible values include: 'Delete', 'Deallocate'. Default value: + "Delete" . + :type scale_set_eviction_policy: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetEvictionPolicy + :param spot_max_price: SpotMaxPrice to be used to specify the maximum + price you are willing to pay in US Dollars. Possible values are any + decimal value greater than zero or -1 which indicates default price to be + up-to on-demand. + :type spot_max_price: float + :param tags: Agent pool tags to be persisted on the agent pool virtual + machine scale set. + :type tags: dict[str, str] + :param node_labels: Agent pool node labels to be persisted across all + nodes in agent pool. + :type node_labels: dict[str, str] + :param node_taints: Taints added to new nodes during node pool create and + scale. For example, key=value:NoSchedule. + :type node_taints: list[str] + :param proximity_placement_group_id: The ID for Proximity Placement Group. + :type proximity_placement_group_id: str + :param name: Required. Unique name of the agent pool profile in the + context of the subscription and resource group. + :type name: str + """ + + _validation = { + 'node_image_version': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'power_state': {'readonly': True}, + 'name': {'required': True, 'pattern': r'^[a-z][a-z0-9]{0,11}$'}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + 'vm_size': {'key': 'vmSize', 'type': 'str'}, + 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, + 'os_disk_type': {'key': 'osDiskType', 'type': 'str'}, + 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, + 'max_pods': {'key': 'maxPods', 'type': 'int'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'max_count': {'key': 'maxCount', 'type': 'int'}, + 'min_count': {'key': 'minCount', 'type': 'int'}, + 'enable_auto_scaling': {'key': 'enableAutoScaling', 'type': 'bool'}, + 'type': {'key': 'type', 'type': 'str'}, + 'mode': {'key': 'mode', 'type': 'str'}, + 'orchestrator_version': {'key': 'orchestratorVersion', 'type': 'str'}, + 'node_image_version': {'key': 'nodeImageVersion', 'type': 'str'}, + 'upgrade_settings': {'key': 'upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'power_state': {'key': 'powerState', 'type': 'PowerState'}, + 'availability_zones': {'key': 'availabilityZones', 'type': '[str]'}, + 'enable_node_public_ip': {'key': 'enableNodePublicIP', 'type': 'bool'}, + 'scale_set_priority': {'key': 'scaleSetPriority', 'type': 'str'}, + 'scale_set_eviction_policy': {'key': 'scaleSetEvictionPolicy', 'type': 'str'}, + 'spot_max_price': {'key': 'spotMaxPrice', 'type': 'float'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'node_labels': {'key': 'nodeLabels', 'type': '{str}'}, + 'node_taints': {'key': 'nodeTaints', 'type': '[str]'}, + 'proximity_placement_group_id': {'key': 'proximityPlacementGroupID', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__(self, *, name: str, count: int=None, vm_size=None, os_disk_size_gb: int=None, os_disk_type=None, vnet_subnet_id: str=None, max_pods: int=None, os_type="Linux", max_count: int=None, min_count: int=None, enable_auto_scaling: bool=None, type=None, mode=None, orchestrator_version: str=None, upgrade_settings=None, availability_zones=None, enable_node_public_ip: bool=None, scale_set_priority="Regular", scale_set_eviction_policy="Delete", spot_max_price: float=None, tags=None, node_labels=None, node_taints=None, proximity_placement_group_id: str=None, **kwargs) -> None: + super(ManagedClusterAgentPoolProfile, self).__init__(count=count, vm_size=vm_size, os_disk_size_gb=os_disk_size_gb, os_disk_type=os_disk_type, vnet_subnet_id=vnet_subnet_id, max_pods=max_pods, os_type=os_type, max_count=max_count, min_count=min_count, enable_auto_scaling=enable_auto_scaling, type=type, mode=mode, orchestrator_version=orchestrator_version, upgrade_settings=upgrade_settings, availability_zones=availability_zones, enable_node_public_ip=enable_node_public_ip, scale_set_priority=scale_set_priority, scale_set_eviction_policy=scale_set_eviction_policy, spot_max_price=spot_max_price, tags=tags, node_labels=node_labels, node_taints=node_taints, proximity_placement_group_id=proximity_placement_group_id, **kwargs) + self.name = name + + +class ManagedClusterAPIServerAccessProfile(Model): + """Access profile for managed cluster API server. + + :param authorized_ip_ranges: Authorized IP Ranges to kubernetes API + server. + :type authorized_ip_ranges: list[str] + :param enable_private_cluster: Whether to create the cluster as a private + cluster or not. + :type enable_private_cluster: bool + """ + + _attribute_map = { + 'authorized_ip_ranges': {'key': 'authorizedIPRanges', 'type': '[str]'}, + 'enable_private_cluster': {'key': 'enablePrivateCluster', 'type': 'bool'}, + } + + def __init__(self, *, authorized_ip_ranges=None, enable_private_cluster: bool=None, **kwargs) -> None: + super(ManagedClusterAPIServerAccessProfile, self).__init__(**kwargs) + self.authorized_ip_ranges = authorized_ip_ranges + self.enable_private_cluster = enable_private_cluster + + +class ManagedClusterIdentity(Model): + """Identity for the managed cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar principal_id: The principal id of the system assigned identity which + is used by master components. + :vartype principal_id: str + :ivar tenant_id: The tenant id of the system assigned identity which is + used by master components. + :vartype tenant_id: str + :param type: The type of identity used for the managed cluster. Type + 'SystemAssigned' will use an implicitly created identity in master + components and an auto-created user assigned identity in MC_ resource + group in agent nodes. Type 'None' will not use MSI for the managed + cluster, service principal will be used instead. Possible values include: + 'SystemAssigned', 'UserAssigned', 'None' + :type type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ResourceIdentityType + :param user_assigned_identities: The user identity associated with the + managed cluster. This identity will be used in control plane and only one + user assigned identity is allowed. The user identity dictionary key + references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + :type user_assigned_identities: dict[str, + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterIdentityUserAssignedIdentitiesValue] + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'ResourceIdentityType'}, + 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{ManagedClusterIdentityUserAssignedIdentitiesValue}'}, + } + + def __init__(self, *, type=None, user_assigned_identities=None, **kwargs) -> None: + super(ManagedClusterIdentity, self).__init__(**kwargs) + self.principal_id = None + self.tenant_id = None + self.type = type + self.user_assigned_identities = user_assigned_identities + + +class ManagedClusterIdentityUserAssignedIdentitiesValue(Model): + """ManagedClusterIdentityUserAssignedIdentitiesValue. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar principal_id: The principal id of user assigned identity. + :vartype principal_id: str + :ivar client_id: The client id of user assigned identity. + :vartype client_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'client_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(ManagedClusterIdentityUserAssignedIdentitiesValue, self).__init__(**kwargs) + self.principal_id = None + self.client_id = None + + +class ManagedClusterLoadBalancerProfile(Model): + """Profile of the managed cluster load balancer. + + :param managed_outbound_ips: Desired managed outbound IPs for the cluster + load balancer. + :type managed_outbound_ips: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfileManagedOutboundIPs + :param outbound_ip_prefixes: Desired outbound IP Prefix resources for the + cluster load balancer. + :type outbound_ip_prefixes: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfileOutboundIPPrefixes + :param outbound_ips: Desired outbound IP resources for the cluster load + balancer. + :type outbound_ips: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfileOutboundIPs + :param effective_outbound_ips: The effective outbound IP resources of the + cluster load balancer. + :type effective_outbound_ips: + list[~azure.mgmt.containerservice.v2020_09_01.models.ResourceReference] + :param allocated_outbound_ports: Desired number of allocated SNAT ports + per VM. Allowed values must be in the range of 0 to 64000 (inclusive). The + default value is 0 which results in Azure dynamically allocating ports. + Default value: 0 . + :type allocated_outbound_ports: int + :param idle_timeout_in_minutes: Desired outbound flow idle timeout in + minutes. Allowed values must be in the range of 4 to 120 (inclusive). The + default value is 30 minutes. Default value: 30 . + :type idle_timeout_in_minutes: int + """ + + _validation = { + 'allocated_outbound_ports': {'maximum': 64000, 'minimum': 0}, + 'idle_timeout_in_minutes': {'maximum': 120, 'minimum': 4}, + } + + _attribute_map = { + 'managed_outbound_ips': {'key': 'managedOutboundIPs', 'type': 'ManagedClusterLoadBalancerProfileManagedOutboundIPs'}, + 'outbound_ip_prefixes': {'key': 'outboundIPPrefixes', 'type': 'ManagedClusterLoadBalancerProfileOutboundIPPrefixes'}, + 'outbound_ips': {'key': 'outboundIPs', 'type': 'ManagedClusterLoadBalancerProfileOutboundIPs'}, + 'effective_outbound_ips': {'key': 'effectiveOutboundIPs', 'type': '[ResourceReference]'}, + 'allocated_outbound_ports': {'key': 'allocatedOutboundPorts', 'type': 'int'}, + 'idle_timeout_in_minutes': {'key': 'idleTimeoutInMinutes', 'type': 'int'}, + } + + def __init__(self, *, managed_outbound_ips=None, outbound_ip_prefixes=None, outbound_ips=None, effective_outbound_ips=None, allocated_outbound_ports: int=0, idle_timeout_in_minutes: int=30, **kwargs) -> None: + super(ManagedClusterLoadBalancerProfile, self).__init__(**kwargs) + self.managed_outbound_ips = managed_outbound_ips + self.outbound_ip_prefixes = outbound_ip_prefixes + self.outbound_ips = outbound_ips + self.effective_outbound_ips = effective_outbound_ips + self.allocated_outbound_ports = allocated_outbound_ports + self.idle_timeout_in_minutes = idle_timeout_in_minutes + + +class ManagedClusterLoadBalancerProfileManagedOutboundIPs(Model): + """Desired managed outbound IPs for the cluster load balancer. + + :param count: Desired number of outbound IP created/managed by Azure for + the cluster load balancer. Allowed values must be in the range of 1 to 100 + (inclusive). The default value is 1. . Default value: 1 . + :type count: int + """ + + _validation = { + 'count': {'maximum': 100, 'minimum': 1}, + } + + _attribute_map = { + 'count': {'key': 'count', 'type': 'int'}, + } + + def __init__(self, *, count: int=1, **kwargs) -> None: + super(ManagedClusterLoadBalancerProfileManagedOutboundIPs, self).__init__(**kwargs) + self.count = count + + +class ManagedClusterLoadBalancerProfileOutboundIPPrefixes(Model): + """Desired outbound IP Prefix resources for the cluster load balancer. + + :param public_ip_prefixes: A list of public IP prefix resources. + :type public_ip_prefixes: + list[~azure.mgmt.containerservice.v2020_09_01.models.ResourceReference] + """ + + _attribute_map = { + 'public_ip_prefixes': {'key': 'publicIPPrefixes', 'type': '[ResourceReference]'}, + } + + def __init__(self, *, public_ip_prefixes=None, **kwargs) -> None: + super(ManagedClusterLoadBalancerProfileOutboundIPPrefixes, self).__init__(**kwargs) + self.public_ip_prefixes = public_ip_prefixes + + +class ManagedClusterLoadBalancerProfileOutboundIPs(Model): + """Desired outbound IP resources for the cluster load balancer. + + :param public_ips: A list of public IP resources. + :type public_ips: + list[~azure.mgmt.containerservice.v2020_09_01.models.ResourceReference] + """ + + _attribute_map = { + 'public_ips': {'key': 'publicIPs', 'type': '[ResourceReference]'}, + } + + def __init__(self, *, public_ips=None, **kwargs) -> None: + super(ManagedClusterLoadBalancerProfileOutboundIPs, self).__init__(**kwargs) + self.public_ips = public_ips + + +class ManagedClusterPoolUpgradeProfile(Model): + """The list of available upgrade versions. + + All required parameters must be populated in order to send to Azure. + + :param kubernetes_version: Required. Kubernetes version (major, minor, + patch). + :type kubernetes_version: str + :param name: Pool name. + :type name: str + :param os_type: Required. OsType to be used to specify os type. Choose + from Linux and Windows. Default to Linux. Possible values include: + 'Linux', 'Windows'. Default value: "Linux" . + :type os_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.OSType + :param upgrades: List of orchestrator types and versions available for + upgrade. + :type upgrades: + list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPoolUpgradeProfileUpgradesItem] + """ + + _validation = { + 'kubernetes_version': {'required': True}, + 'os_type': {'required': True}, + } + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'os_type': {'key': 'osType', 'type': 'str'}, + 'upgrades': {'key': 'upgrades', 'type': '[ManagedClusterPoolUpgradeProfileUpgradesItem]'}, + } + + def __init__(self, *, kubernetes_version: str, name: str=None, os_type="Linux", upgrades=None, **kwargs) -> None: + super(ManagedClusterPoolUpgradeProfile, self).__init__(**kwargs) + self.kubernetes_version = kubernetes_version + self.name = name + self.os_type = os_type + self.upgrades = upgrades + + +class ManagedClusterPoolUpgradeProfileUpgradesItem(Model): + """ManagedClusterPoolUpgradeProfileUpgradesItem. + + :param kubernetes_version: Kubernetes version (major, minor, patch). + :type kubernetes_version: str + :param is_preview: Whether Kubernetes version is currently in preview. + :type is_preview: bool + """ + + _attribute_map = { + 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, + 'is_preview': {'key': 'isPreview', 'type': 'bool'}, + } + + def __init__(self, *, kubernetes_version: str=None, is_preview: bool=None, **kwargs) -> None: + super(ManagedClusterPoolUpgradeProfileUpgradesItem, self).__init__(**kwargs) + self.kubernetes_version = kubernetes_version + self.is_preview = is_preview + + +class ManagedClusterPropertiesAutoScalerProfile(Model): + """Parameters to be applied to the cluster-autoscaler when enabled. + + :param balance_similar_node_groups: + :type balance_similar_node_groups: str + :param expander: Possible values include: 'least-waste', 'most-pods', + 'random' + :type expander: str or + ~azure.mgmt.containerservice.v2020_09_01.models.Expander + :param max_empty_bulk_delete: + :type max_empty_bulk_delete: str + :param max_graceful_termination_sec: + :type max_graceful_termination_sec: str + :param max_total_unready_percentage: + :type max_total_unready_percentage: str + :param new_pod_scale_up_delay: + :type new_pod_scale_up_delay: str + :param ok_total_unready_count: + :type ok_total_unready_count: str + :param scan_interval: + :type scan_interval: str + :param scale_down_delay_after_add: + :type scale_down_delay_after_add: str + :param scale_down_delay_after_delete: + :type scale_down_delay_after_delete: str + :param scale_down_delay_after_failure: + :type scale_down_delay_after_failure: str + :param scale_down_unneeded_time: + :type scale_down_unneeded_time: str + :param scale_down_unready_time: + :type scale_down_unready_time: str + :param scale_down_utilization_threshold: + :type scale_down_utilization_threshold: str + :param skip_nodes_with_local_storage: + :type skip_nodes_with_local_storage: str + :param skip_nodes_with_system_pods: + :type skip_nodes_with_system_pods: str + """ + + _attribute_map = { + 'balance_similar_node_groups': {'key': 'balance-similar-node-groups', 'type': 'str'}, + 'expander': {'key': 'expander', 'type': 'str'}, + 'max_empty_bulk_delete': {'key': 'max-empty-bulk-delete', 'type': 'str'}, + 'max_graceful_termination_sec': {'key': 'max-graceful-termination-sec', 'type': 'str'}, + 'max_total_unready_percentage': {'key': 'max-total-unready-percentage', 'type': 'str'}, + 'new_pod_scale_up_delay': {'key': 'new-pod-scale-up-delay', 'type': 'str'}, + 'ok_total_unready_count': {'key': 'ok-total-unready-count', 'type': 'str'}, + 'scan_interval': {'key': 'scan-interval', 'type': 'str'}, + 'scale_down_delay_after_add': {'key': 'scale-down-delay-after-add', 'type': 'str'}, + 'scale_down_delay_after_delete': {'key': 'scale-down-delay-after-delete', 'type': 'str'}, + 'scale_down_delay_after_failure': {'key': 'scale-down-delay-after-failure', 'type': 'str'}, + 'scale_down_unneeded_time': {'key': 'scale-down-unneeded-time', 'type': 'str'}, + 'scale_down_unready_time': {'key': 'scale-down-unready-time', 'type': 'str'}, + 'scale_down_utilization_threshold': {'key': 'scale-down-utilization-threshold', 'type': 'str'}, + 'skip_nodes_with_local_storage': {'key': 'skip-nodes-with-local-storage', 'type': 'str'}, + 'skip_nodes_with_system_pods': {'key': 'skip-nodes-with-system-pods', 'type': 'str'}, + } + + def __init__(self, *, balance_similar_node_groups: str=None, expander=None, max_empty_bulk_delete: str=None, max_graceful_termination_sec: str=None, max_total_unready_percentage: str=None, new_pod_scale_up_delay: str=None, ok_total_unready_count: str=None, scan_interval: str=None, scale_down_delay_after_add: str=None, scale_down_delay_after_delete: str=None, scale_down_delay_after_failure: str=None, scale_down_unneeded_time: str=None, scale_down_unready_time: str=None, scale_down_utilization_threshold: str=None, skip_nodes_with_local_storage: str=None, skip_nodes_with_system_pods: str=None, **kwargs) -> None: + super(ManagedClusterPropertiesAutoScalerProfile, self).__init__(**kwargs) + self.balance_similar_node_groups = balance_similar_node_groups + self.expander = expander + self.max_empty_bulk_delete = max_empty_bulk_delete + self.max_graceful_termination_sec = max_graceful_termination_sec + self.max_total_unready_percentage = max_total_unready_percentage + self.new_pod_scale_up_delay = new_pod_scale_up_delay + self.ok_total_unready_count = ok_total_unready_count + self.scan_interval = scan_interval + self.scale_down_delay_after_add = scale_down_delay_after_add + self.scale_down_delay_after_delete = scale_down_delay_after_delete + self.scale_down_delay_after_failure = scale_down_delay_after_failure + self.scale_down_unneeded_time = scale_down_unneeded_time + self.scale_down_unready_time = scale_down_unready_time + self.scale_down_utilization_threshold = scale_down_utilization_threshold + self.skip_nodes_with_local_storage = skip_nodes_with_local_storage + self.skip_nodes_with_system_pods = skip_nodes_with_system_pods + + +class ManagedClusterPropertiesIdentityProfileValue(UserAssignedIdentity): + """ManagedClusterPropertiesIdentityProfileValue. + + :param resource_id: The resource id of the user assigned identity. + :type resource_id: str + :param client_id: The client id of the user assigned identity. + :type client_id: str + :param object_id: The object id of the user assigned identity. + :type object_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'object_id': {'key': 'objectId', 'type': 'str'}, + } + + def __init__(self, *, resource_id: str=None, client_id: str=None, object_id: str=None, **kwargs) -> None: + super(ManagedClusterPropertiesIdentityProfileValue, self).__init__(resource_id=resource_id, client_id=client_id, object_id=object_id, **kwargs) + + +class ManagedClusterServicePrincipalProfile(Model): + """Information about a service principal identity for the cluster to use for + manipulating Azure APIs. + + All required parameters must be populated in order to send to Azure. + + :param client_id: Required. The ID for the service principal. + :type client_id: str + :param secret: The secret password associated with the service principal + in plain text. + :type secret: str + """ + + _validation = { + 'client_id': {'required': True}, + } + + _attribute_map = { + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'secret': {'key': 'secret', 'type': 'str'}, + } + + def __init__(self, *, client_id: str, secret: str=None, **kwargs) -> None: + super(ManagedClusterServicePrincipalProfile, self).__init__(**kwargs) + self.client_id = client_id + self.secret = secret + + +class ManagedClusterSKU(Model): + """ManagedClusterSKU. + + :param name: Name of a managed cluster SKU. Possible values include: + 'Basic' + :type name: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterSKUName + :param tier: Tier of a managed cluster SKU. Possible values include: + 'Paid', 'Free' + :type tier: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterSKUTier + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'str'}, + } + + def __init__(self, *, name=None, tier=None, **kwargs) -> None: + super(ManagedClusterSKU, self).__init__(**kwargs) + self.name = name + self.tier = tier + + +class ManagedClusterUpgradeProfile(Model): + """The list of available upgrades for compute pools. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Id of upgrade profile. + :vartype id: str + :ivar name: Name of upgrade profile. + :vartype name: str + :ivar type: Type of upgrade profile. + :vartype type: str + :param control_plane_profile: Required. The list of available upgrade + versions for the control plane. + :type control_plane_profile: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPoolUpgradeProfile + :param agent_pool_profiles: Required. The list of available upgrade + versions for agent pools. + :type agent_pool_profiles: + list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPoolUpgradeProfile] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'control_plane_profile': {'required': True}, + 'agent_pool_profiles': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'control_plane_profile': {'key': 'properties.controlPlaneProfile', 'type': 'ManagedClusterPoolUpgradeProfile'}, + 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterPoolUpgradeProfile]'}, + } + + def __init__(self, *, control_plane_profile, agent_pool_profiles, **kwargs) -> None: + super(ManagedClusterUpgradeProfile, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.control_plane_profile = control_plane_profile + self.agent_pool_profiles = agent_pool_profiles + + +class ManagedClusterWindowsProfile(Model): + """Profile for Windows VMs in the container service cluster. + + All required parameters must be populated in order to send to Azure. + + :param admin_username: Required. The administrator username to use for + Windows VMs. + :type admin_username: str + :param admin_password: The administrator password to use for Windows VMs. + :type admin_password: str + :param license_type: The licenseType to use for Windows VMs. + Windows_Server is used to enable Azure Hybrid User Benefits for Windows + VMs. Possible values include: 'None', 'Windows_Server' + :type license_type: str or + ~azure.mgmt.containerservice.v2020_09_01.models.LicenseType + """ + + _validation = { + 'admin_username': {'required': True, 'pattern': r'^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$'}, + 'admin_password': {'pattern': r'^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\^&\*\(\)])[a-zA-Z\d!@#$%\^&\*\(\)]{12,123}$'}, + } + + _attribute_map = { + 'admin_username': {'key': 'adminUsername', 'type': 'str'}, + 'admin_password': {'key': 'adminPassword', 'type': 'str'}, + 'license_type': {'key': 'licenseType', 'type': 'str'}, + } + + def __init__(self, *, admin_username: str, admin_password: str=None, license_type=None, **kwargs) -> None: + super(ManagedClusterWindowsProfile, self).__init__(**kwargs) + self.admin_username = admin_username + self.admin_password = admin_password + self.license_type = license_type + + +class OperationValue(Model): + """Describes the properties of a Compute Operation value. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar origin: The origin of the compute operation. + :vartype origin: str + :ivar name: The name of the compute operation. + :vartype name: str + :ivar operation: The display name of the compute operation. + :vartype operation: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar description: The description of the operation. + :vartype description: str + :ivar provider: The resource provider for the operation. + :vartype provider: str + """ + + _validation = { + 'origin': {'readonly': True}, + 'name': {'readonly': True}, + 'operation': {'readonly': True}, + 'resource': {'readonly': True}, + 'description': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'origin': {'key': 'origin', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'operation': {'key': 'display.operation', 'type': 'str'}, + 'resource': {'key': 'display.resource', 'type': 'str'}, + 'description': {'key': 'display.description', 'type': 'str'}, + 'provider': {'key': 'display.provider', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(OperationValue, self).__init__(**kwargs) + self.origin = None + self.name = None + self.operation = None + self.resource = None + self.description = None + self.provider = None + + +class PowerState(Model): + """Describes the Power State of the cluster. + + :param code: Tells whether the cluster is Running or Stopped. Possible + values include: 'Running', 'Stopped' + :type code: str or ~azure.mgmt.containerservice.v2020_09_01.models.Code + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + } + + def __init__(self, *, code=None, **kwargs) -> None: + super(PowerState, self).__init__(**kwargs) + self.code = code + + +class PrivateEndpoint(Model): + """Private endpoint which a connection belongs to. + + :param id: The resource Id for private endpoint + :type id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__(self, *, id: str=None, **kwargs) -> None: + super(PrivateEndpoint, self).__init__(**kwargs) + self.id = id + + +class PrivateEndpointConnection(Model): + """A private endpoint connection. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: The ID of the private endpoint connection. + :vartype id: str + :ivar name: The name of the private endpoint connection. + :vartype name: str + :ivar type: The resource type. + :vartype type: str + :ivar provisioning_state: The current provisioning state. Possible values + include: 'Succeeded', 'Creating', 'Deleting', 'Failed' + :vartype provisioning_state: str or + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpointConnectionProvisioningState + :param private_endpoint: The resource of private endpoint. + :type private_endpoint: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpoint + :param private_link_service_connection_state: Required. A collection of + information about the state of the connection between service consumer and + provider. + :type private_link_service_connection_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateLinkServiceConnectionState + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'private_link_service_connection_state': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'PrivateEndpoint'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkServiceConnectionState'}, + } + + def __init__(self, *, private_link_service_connection_state, private_endpoint=None, **kwargs) -> None: + super(PrivateEndpointConnection, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + self.provisioning_state = None + self.private_endpoint = private_endpoint + self.private_link_service_connection_state = private_link_service_connection_state + + +class PrivateEndpointConnectionListResult(Model): + """A list of private endpoint connections. + + :param value: The collection value. + :type value: + list[~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpointConnection] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateEndpointConnection]'}, + } + + def __init__(self, *, value=None, **kwargs) -> None: + super(PrivateEndpointConnectionListResult, self).__init__(**kwargs) + self.value = value + + +class PrivateLinkResource(Model): + """A private link resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param id: The ID of the private link resource. + :type id: str + :param name: The name of the private link resource. + :type name: str + :param type: The resource type. + :type type: str + :param group_id: The group ID of the resource. + :type group_id: str + :param required_members: RequiredMembers of the resource + :type required_members: list[str] + :ivar private_link_service_id: The private link service ID of the + resource, this field is exposed only to NRP internally. + :vartype private_link_service_id: str + """ + + _validation = { + 'private_link_service_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'group_id': {'key': 'groupId', 'type': 'str'}, + 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, + 'private_link_service_id': {'key': 'privateLinkServiceID', 'type': 'str'}, + } + + def __init__(self, *, id: str=None, name: str=None, type: str=None, group_id: str=None, required_members=None, **kwargs) -> None: + super(PrivateLinkResource, self).__init__(**kwargs) + self.id = id + self.name = name + self.type = type + self.group_id = group_id + self.required_members = required_members + self.private_link_service_id = None + + +class PrivateLinkResourcesListResult(Model): + """A list of private link resources. + + :param value: The collection value. + :type value: + list[~azure.mgmt.containerservice.v2020_09_01.models.PrivateLinkResource] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__(self, *, value=None, **kwargs) -> None: + super(PrivateLinkResourcesListResult, self).__init__(**kwargs) + self.value = value + + +class PrivateLinkServiceConnectionState(Model): + """The state of a private link service connection. + + :param status: The private link service connection status. Possible values + include: 'Pending', 'Approved', 'Rejected', 'Disconnected' + :type status: str or + ~azure.mgmt.containerservice.v2020_09_01.models.ConnectionStatus + :param description: The private link service connection description. + :type description: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__(self, *, status=None, description: str=None, **kwargs) -> None: + super(PrivateLinkServiceConnectionState, self).__init__(**kwargs) + self.status = status + self.description = description + + +class ResourceReference(Model): + """A reference to an Azure resource. + + :param id: The fully qualified Azure resource id. + :type id: str + """ + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__(self, *, id: str=None, **kwargs) -> None: + super(ResourceReference, self).__init__(**kwargs) + self.id = id + + +class TagsObject(Model): + """Tags object for patch operations. + + :param tags: Resource tags. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__(self, *, tags=None, **kwargs) -> None: + super(TagsObject, self).__init__(**kwargs) + self.tags = tags diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_paged_models.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_paged_models.py similarity index 63% rename from src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_paged_models.py rename to src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_paged_models.py index a24959c9dfe..9bd6710b865 100644 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_paged_models.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/models/_paged_models.py @@ -12,42 +12,42 @@ from msrest.paging import Paged -class MachinePaged(Paged): +class OperationValuePaged(Paged): """ - A paging container for iterating over a list of :class:`Machine ` object + A paging container for iterating over a list of :class:`OperationValue ` object """ _attribute_map = { 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'current_page': {'key': 'value', 'type': '[Machine]'} + 'current_page': {'key': 'value', 'type': '[OperationValue]'} } def __init__(self, *args, **kwargs): - super(MachinePaged, self).__init__(*args, **kwargs) -class MachineExtensionPaged(Paged): + super(OperationValuePaged, self).__init__(*args, **kwargs) +class ManagedClusterPaged(Paged): """ - A paging container for iterating over a list of :class:`MachineExtension ` object + A paging container for iterating over a list of :class:`ManagedCluster ` object """ _attribute_map = { 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'current_page': {'key': 'value', 'type': '[MachineExtension]'} + 'current_page': {'key': 'value', 'type': '[ManagedCluster]'} } def __init__(self, *args, **kwargs): - super(MachineExtensionPaged, self).__init__(*args, **kwargs) -class OperationValuePaged(Paged): + super(ManagedClusterPaged, self).__init__(*args, **kwargs) +class AgentPoolPaged(Paged): """ - A paging container for iterating over a list of :class:`OperationValue ` object + A paging container for iterating over a list of :class:`AgentPool ` object """ _attribute_map = { 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'current_page': {'key': 'value', 'type': '[OperationValue]'} + 'current_page': {'key': 'value', 'type': '[AgentPool]'} } def __init__(self, *args, **kwargs): - super(OperationValuePaged, self).__init__(*args, **kwargs) + super(AgentPoolPaged, self).__init__(*args, **kwargs) diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/__init__.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/__init__.py new file mode 100644 index 00000000000..fecbc32dd78 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/__init__.py @@ -0,0 +1,26 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._operations import Operations +from ._managed_clusters_operations import ManagedClustersOperations +from ._agent_pools_operations import AgentPoolsOperations +from ._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations +from ._private_link_resources_operations import PrivateLinkResourcesOperations +from ._resolve_private_link_service_id_operations import ResolvePrivateLinkServiceIdOperations + +__all__ = [ + 'Operations', + 'ManagedClustersOperations', + 'AgentPoolsOperations', + 'PrivateEndpointConnectionsOperations', + 'PrivateLinkResourcesOperations', + 'ResolvePrivateLinkServiceIdOperations', +] diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/_machine_extensions_operations.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_agent_pools_operations.py similarity index 56% rename from src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/_machine_extensions_operations.py rename to src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_agent_pools_operations.py index b6d8f89764c..eeefe4cf734 100644 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/_machine_extensions_operations.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_agent_pools_operations.py @@ -18,8 +18,8 @@ from .. import models -class MachineExtensionsOperations(object): - """MachineExtensionsOperations operations. +class AgentPoolsOperations(object): + """AgentPoolsOperations operations. You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. @@ -27,7 +27,7 @@ class MachineExtensionsOperations(object): :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. - :ivar api_version: Client Api Version. Constant value: "2019-08-02-preview". + :ivar api_version: Client Api Version. Constant value: "2020-09-01". """ models = models @@ -37,20 +37,115 @@ def __init__(self, client, config, serializer, deserializer): self._client = client self._serialize = serializer self._deserialize = deserializer - self.api_version = "2019-08-02-preview" + self.api_version = "2020-09-01" self.config = config + def list( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + """Gets a list of agent pools in the specified managed cluster. - def _create_or_update_initial( - self, resource_group_name, name, extension_name, extension_parameters, custom_headers=None, raw=False, **operation_config): + Gets a list of agent pools in the specified managed cluster. The + operation returns properties of each agent pool. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of AgentPool + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolPaged[~azure.mgmt.containerservice.v2020_09_01.models.AgentPool] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.AgentPoolPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools'} + + def get( + self, resource_group_name, resource_name, agent_pool_name, custom_headers=None, raw=False, **operation_config): + """Gets the agent pool. + + Gets the details of the agent pool by managed cluster and resource + group. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: AgentPool or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.containerservice.v2020_09_01.models.AgentPool or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ # Construct URL - url = self.create_or_update.metadata['url'] + url = self.get.metadata['url'] path_format_arguments = { - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'name': self._serialize.url("name", name, 'str'), - 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_name, 'str') } url = self._client.format_url(url, **path_format_arguments) @@ -61,7 +156,6 @@ def _create_or_update_initial( # Construct headers header_parameters = {} header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -69,95 +163,36 @@ def _create_or_update_initial( if self.config.accept_language is not None: header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - # Construct body - body_content = self._serialize.body(extension_parameters, 'MachineExtension') - # Construct and send request - request = self._client.put(url, query_parameters, header_parameters, body_content) + request = self._client.get(url, query_parameters, header_parameters) response = self._client.send(request, stream=False, **operation_config) - if response.status_code not in [200, 202]: + if response.status_code not in [200]: exp = CloudError(response) exp.request_id = response.headers.get('x-ms-request-id') raise exp deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('MachineExtension', response) + deserialized = self._deserialize('AgentPool', response) if raw: client_raw_response = ClientRawResponse(deserialized, response) return client_raw_response return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} - def create_or_update( - self, resource_group_name, name, extension_name, extension_parameters, custom_headers=None, raw=False, polling=True, **operation_config): - """The operation to create or update the extension. - - :param resource_group_name: The name of the resource group. - :type resource_group_name: str - :param name: The name of the machine where the extension should be - created or updated. - :type name: str - :param extension_name: The name of the machine extension. - :type extension_name: str - :param extension_parameters: Parameters supplied to the Create Machine - Extension operation. - :type extension_parameters: - ~azure.mgmt.hybridcompute.models.MachineExtension - :param dict custom_headers: headers that will be added to the request - :param bool raw: The poller return type is ClientRawResponse, the - direct response alongside the deserialized response - :param polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :return: An instance of LROPoller that returns MachineExtension or - ClientRawResponse if raw==True - :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.hybridcompute.models.MachineExtension] - or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.hybridcompute.models.MachineExtension]] - :raises: :class:`CloudError` - """ - raw_result = self._create_or_update_initial( - resource_group_name=resource_group_name, - name=name, - extension_name=extension_name, - extension_parameters=extension_parameters, - custom_headers=custom_headers, - raw=True, - **operation_config - ) - - def get_long_running_output(response): - deserialized = self._deserialize('MachineExtension', response) - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - - lro_delay = operation_config.get( - 'long_running_operation_timeout', - self.config.long_running_operation_timeout) - if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) - elif polling is False: polling_method = NoPolling() - else: polling_method = polling - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} - - - def _update_initial( - self, resource_group_name, name, extension_name, extension_parameters, custom_headers=None, raw=False, **operation_config): + def _create_or_update_initial( + self, resource_group_name, resource_name, agent_pool_name, parameters, custom_headers=None, raw=False, **operation_config): # Construct URL - url = self.update.metadata['url'] + url = self.create_or_update.metadata['url'] path_format_arguments = { - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'name': self._serialize.url("name", name, 'str'), - 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_name, 'str') } url = self._client.format_url(url, **path_format_arguments) @@ -177,13 +212,13 @@ def _update_initial( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct body - body_content = self._serialize.body(extension_parameters, 'MachineExtensionUpdate') + body_content = self._serialize.body(parameters, 'AgentPool') # Construct and send request - request = self._client.patch(url, query_parameters, header_parameters, body_content) + request = self._client.put(url, query_parameters, header_parameters, body_content) response = self._client.send(request, stream=False, **operation_config) - if response.status_code not in [200, 202]: + if response.status_code not in [200, 201]: exp = CloudError(response) exp.request_id = response.headers.get('x-ms-request-id') raise exp @@ -191,7 +226,9 @@ def _update_initial( deserialized = None if response.status_code == 200: - deserialized = self._deserialize('MachineExtension', response) + deserialized = self._deserialize('AgentPool', response) + if response.status_code == 201: + deserialized = self._deserialize('AgentPool', response) if raw: client_raw_response = ClientRawResponse(deserialized, response) @@ -199,46 +236,47 @@ def _update_initial( return deserialized - def update( - self, resource_group_name, name, extension_name, extension_parameters, custom_headers=None, raw=False, polling=True, **operation_config): - """The operation to create or update the extension. + def create_or_update( + self, resource_group_name, resource_name, agent_pool_name, parameters, custom_headers=None, raw=False, polling=True, **operation_config): + """Creates or updates an agent pool. + + Creates or updates an agent pool in the specified managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param name: The name of the machine where the extension should be - created or updated. - :type name: str - :param extension_name: The name of the machine extension. - :type extension_name: str - :param extension_parameters: Parameters supplied to the Create Machine - Extension operation. - :type extension_parameters: - ~azure.mgmt.hybridcompute.models.MachineExtensionUpdate + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str + :param parameters: Parameters supplied to the Create or Update an + agent pool operation. + :type parameters: + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPool :param dict custom_headers: headers that will be added to the request :param bool raw: The poller return type is ClientRawResponse, the direct response alongside the deserialized response :param polling: True for ARMPolling, False for no polling, or a polling object for personal polling strategy - :return: An instance of LROPoller that returns MachineExtension or - ClientRawResponse if raw==True + :return: An instance of LROPoller that returns AgentPool or + ClientRawResponse if raw==True :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.hybridcompute.models.MachineExtension] + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.containerservice.v2020_09_01.models.AgentPool] or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.hybridcompute.models.MachineExtension]] + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.containerservice.v2020_09_01.models.AgentPool]] :raises: :class:`CloudError` """ - raw_result = self._update_initial( + raw_result = self._create_or_update_initial( resource_group_name=resource_group_name, - name=name, - extension_name=extension_name, - extension_parameters=extension_parameters, + resource_name=resource_name, + agent_pool_name=agent_pool_name, + parameters=parameters, custom_headers=custom_headers, raw=True, **operation_config ) def get_long_running_output(response): - deserialized = self._deserialize('MachineExtension', response) + deserialized = self._deserialize('AgentPool', response) if raw: client_raw_response = ClientRawResponse(deserialized, response) @@ -253,18 +291,18 @@ def get_long_running_output(response): elif polling is False: polling_method = NoPolling() else: polling_method = polling return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} def _delete_initial( - self, resource_group_name, name, extension_name, custom_headers=None, raw=False, **operation_config): + self, resource_group_name, resource_name, agent_pool_name, custom_headers=None, raw=False, **operation_config): # Construct URL url = self.delete.metadata['url'] path_format_arguments = { - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'name': self._serialize.url("name", name, 'str'), - 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_name, 'str') } url = self._client.format_url(url, **path_format_arguments) @@ -285,7 +323,7 @@ def _delete_initial( request = self._client.delete(url, query_parameters, header_parameters) response = self._client.send(request, stream=False, **operation_config) - if response.status_code not in [200, 202, 204]: + if response.status_code not in [202, 204]: exp = CloudError(response) exp.request_id = response.headers.get('x-ms-request-id') raise exp @@ -295,16 +333,17 @@ def _delete_initial( return client_raw_response def delete( - self, resource_group_name, name, extension_name, custom_headers=None, raw=False, polling=True, **operation_config): - """The operation to delete the extension. + self, resource_group_name, resource_name, agent_pool_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Deletes an agent pool. + + Deletes the agent pool in the specified managed cluster. :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param name: The name of the machine where the extension should be - deleted. - :type name: str - :param extension_name: The name of the machine extension. - :type extension_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str :param dict custom_headers: headers that will be added to the request :param bool raw: The poller return type is ClientRawResponse, the direct response alongside the deserialized response @@ -318,8 +357,8 @@ def delete( """ raw_result = self._delete_initial( resource_group_name=resource_group_name, - name=name, - extension_name=extension_name, + resource_name=resource_name, + agent_pool_name=agent_pool_name, custom_headers=custom_headers, raw=True, **operation_config @@ -337,35 +376,39 @@ def get_long_running_output(response): elif polling is False: polling_method = NoPolling() else: polling_method = polling return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}'} - def get( - self, resource_group_name, name, extension_name, custom_headers=None, raw=False, **operation_config): - """The operation to get the extension. + def get_upgrade_profile( + self, resource_group_name, resource_name, agent_pool_name, custom_headers=None, raw=False, **operation_config): + """Gets upgrade profile for an agent pool. + + Gets the details of the upgrade profile for an agent pool with a + specified resource group and managed cluster name. :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param name: The name of the machine containing the extension. - :type name: str - :param extension_name: The name of the machine extension. - :type extension_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: MachineExtension or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.hybridcompute.models.MachineExtension or - ~msrest.pipeline.ClientRawResponse + :return: AgentPoolUpgradeProfile or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeProfile + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ # Construct URL - url = self.get.metadata['url'] + url = self.get_upgrade_profile.metadata['url'] path_format_arguments = { - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'name': self._serialize.url("name", name, 'str'), - 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_name, 'str') } url = self._client.format_url(url, **path_format_arguments) @@ -394,87 +437,75 @@ def get( deserialized = None if response.status_code == 200: - deserialized = self._deserialize('MachineExtension', response) + deserialized = self._deserialize('AgentPoolUpgradeProfile', response) if raw: client_raw_response = ClientRawResponse(deserialized, response) return client_raw_response return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} + get_upgrade_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeProfiles/default'} - def list( - self, resource_group_name, name, expand=None, custom_headers=None, raw=False, **operation_config): - """The operation to get all extensions of a non-Azure machine. + def get_available_agent_pool_versions( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + """Gets a list of supported versions for the specified agent pool. + + Gets a list of supported versions for the specified agent pool. :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param name: The name of the machine containing the extension. - :type name: str - :param expand: The expand expression to apply on the operation. - :type expand: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: An iterator like instance of MachineExtension + :return: AgentPoolAvailableVersions or ClientRawResponse if raw=true :rtype: - ~azure.mgmt.hybridcompute.models.MachineExtensionPaged[~azure.mgmt.hybridcompute.models.MachineExtension] + ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolAvailableVersions + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ - def prepare_request(next_link=None): - if not next_link: - # Construct URL - url = self.list.metadata['url'] - path_format_arguments = { - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'name': self._serialize.url("name", name, 'str'), - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - if expand is not None: - query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - else: - url = next_link - query_parameters = {} - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + # Construct URL + url = self.get_available_agent_pool_versions.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) - return request + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - def internal_paging(next_link=None): - request = prepare_request(next_link) + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - response = self._client.send(request, stream=False, **operation_config) + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) - if response.status_code not in [200]: - exp = CloudError(response) - exp.request_id = response.headers.get('x-ms-request-id') - raise exp + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp - return response + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('AgentPoolAvailableVersions', response) - # Deserialize response - header_dict = None if raw: - header_dict = {} - deserialized = models.MachineExtensionPaged(internal_paging, self._deserialize.dependencies, header_dict) + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions'} + get_available_agent_pool_versions.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/availableAgentPoolVersions'} diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_managed_clusters_operations.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_managed_clusters_operations.py new file mode 100644 index 00000000000..e32eeafdef3 --- /dev/null +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_managed_clusters_operations.py @@ -0,0 +1,1400 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError +from msrest.polling import LROPoller, NoPolling +from msrestazure.polling.arm_polling import ARMPolling + +from .. import models + + +class ManagedClustersOperations(object): + """ManagedClustersOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: Client Api Version. Constant value: "2020-09-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2020-09-01" + + self.config = config + + def list( + self, custom_headers=None, raw=False, **operation_config): + """Gets a list of managed clusters in the specified subscription. + + Gets a list of managed clusters in the specified subscription. The + operation returns properties of each managed cluster. + + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of ManagedCluster + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPaged[~azure.mgmt.containerservice.v2020_09_01.models.ManagedCluster] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.ManagedClusterPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.ContainerService/managedClusters'} + + def list_by_resource_group( + self, resource_group_name, custom_headers=None, raw=False, **operation_config): + """Lists managed clusters in the specified subscription and resource + group. + + Lists managed clusters in the specified subscription and resource + group. The operation returns properties of each managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of ManagedCluster + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPaged[~azure.mgmt.containerservice.v2020_09_01.models.ManagedCluster] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.ManagedClusterPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters'} + + def get_upgrade_profile( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + """Gets upgrade profile for a managed cluster. + + Gets the details of the upgrade profile for a managed cluster with a + specified resource group and name. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ManagedClusterUpgradeProfile or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterUpgradeProfile + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get_upgrade_profile.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ManagedClusterUpgradeProfile', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get_upgrade_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/upgradeProfiles/default'} + + def get_access_profile( + self, resource_group_name, resource_name, role_name, custom_headers=None, raw=False, **operation_config): + """Gets an access profile of a managed cluster. + + Gets the accessProfile for the specified role name of the managed + cluster with a specified resource group and name. **WARNING**: This API + will be deprecated. Instead use + [ListClusterUserCredentials](https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/listclusterusercredentials) + or + [ListClusterAdminCredentials](https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/listclusteradmincredentials) + . + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param role_name: The name of the role for managed cluster + accessProfile resource. + :type role_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ManagedClusterAccessProfile or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAccessProfile + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get_access_profile.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'roleName': self._serialize.url("role_name", role_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ManagedClusterAccessProfile', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get_access_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/accessProfiles/{roleName}/listCredential'} + + def list_cluster_admin_credentials( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + """Gets cluster admin credential of a managed cluster. + + Gets cluster admin credential of the managed cluster with a specified + resource group and name. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: CredentialResults or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.CredentialResults or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list_cluster_admin_credentials.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('CredentialResults', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list_cluster_admin_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterAdminCredential'} + + def list_cluster_user_credentials( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + """Gets cluster user credential of a managed cluster. + + Gets cluster user credential of the managed cluster with a specified + resource group and name. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: CredentialResults or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.CredentialResults or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list_cluster_user_credentials.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('CredentialResults', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list_cluster_user_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterUserCredential'} + + def list_cluster_monitoring_user_credentials( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + """Gets cluster monitoring user credential of a managed cluster. + + Gets cluster monitoring user credential of the managed cluster with a + specified resource group and name. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: CredentialResults or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.CredentialResults or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list_cluster_monitoring_user_credentials.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('CredentialResults', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list_cluster_monitoring_user_credentials.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/listClusterMonitoringUserCredential'} + + def get( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + """Gets a managed cluster. + + Gets the details of the managed cluster with a specified resource group + and name. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ManagedCluster or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.containerservice.v2020_09_01.models.ManagedCluster + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ManagedCluster', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} + + + def _create_or_update_initial( + self, resource_group_name, resource_name, parameters, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.create_or_update.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'ManagedCluster') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 201]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('ManagedCluster', response) + if response.status_code == 201: + deserialized = self._deserialize('ManagedCluster', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def create_or_update( + self, resource_group_name, resource_name, parameters, custom_headers=None, raw=False, polling=True, **operation_config): + """Creates or updates a managed cluster. + + Creates or updates a managed cluster with the specified configuration + for agents and Kubernetes version. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: Parameters supplied to the Create or Update a + Managed Cluster operation. + :type parameters: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedCluster + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns ManagedCluster or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.containerservice.v2020_09_01.models.ManagedCluster] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.containerservice.v2020_09_01.models.ManagedCluster]] + :raises: :class:`CloudError` + """ + raw_result = self._create_or_update_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + parameters=parameters, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('ManagedCluster', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} + + + def _update_tags_initial( + self, resource_group_name, resource_name, tags=None, custom_headers=None, raw=False, **operation_config): + parameters = models.TagsObject(tags=tags) + + # Construct URL + url = self.update_tags.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'TagsObject') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('ManagedCluster', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def update_tags( + self, resource_group_name, resource_name, tags=None, custom_headers=None, raw=False, polling=True, **operation_config): + """Updates tags on a managed cluster. + + Updates a managed cluster with the specified tags. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns ManagedCluster or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.containerservice.v2020_09_01.models.ManagedCluster] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.containerservice.v2020_09_01.models.ManagedCluster]] + :raises: :class:`CloudError` + """ + raw_result = self._update_tags_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + tags=tags, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('ManagedCluster', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + update_tags.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} + + + def _delete_initial( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [202, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def delete( + self, resource_group_name, resource_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Deletes a managed cluster. + + Deletes the managed cluster with a specified resource group and name. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}'} + + + def _reset_service_principal_profile_initial( + self, resource_group_name, resource_name, client_id, secret=None, custom_headers=None, raw=False, **operation_config): + parameters = models.ManagedClusterServicePrincipalProfile(client_id=client_id, secret=secret) + + # Construct URL + url = self.reset_service_principal_profile.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'ManagedClusterServicePrincipalProfile') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def reset_service_principal_profile( + self, resource_group_name, resource_name, client_id, secret=None, custom_headers=None, raw=False, polling=True, **operation_config): + """Reset Service Principal Profile of a managed cluster. + + Update the service principal Profile for a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param client_id: The ID for the service principal. + :type client_id: str + :param secret: The secret password associated with the service + principal in plain text. + :type secret: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._reset_service_principal_profile_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + client_id=client_id, + secret=secret, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + reset_service_principal_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetServicePrincipalProfile'} + + + def _reset_aad_profile_initial( + self, resource_group_name, resource_name, parameters, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.reset_aad_profile.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'ManagedClusterAADProfile') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def reset_aad_profile( + self, resource_group_name, resource_name, parameters, custom_headers=None, raw=False, polling=True, **operation_config): + """Reset AAD Profile of a managed cluster. + + Update the AAD Profile for a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: Parameters supplied to the Reset AAD Profile + operation for a Managed Cluster. + :type parameters: + ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAADProfile + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._reset_aad_profile_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + parameters=parameters, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + reset_aad_profile.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resetAADProfile'} + + + def _rotate_cluster_certificates_initial( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.rotate_cluster_certificates.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [202, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def rotate_cluster_certificates( + self, resource_group_name, resource_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Rotate certificates of a managed cluster. + + Rotate certificates of a managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._rotate_cluster_certificates_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + rotate_cluster_certificates.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/rotateClusterCertificates'} + + + def _stop_initial( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.stop.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [202, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def stop( + self, resource_group_name, resource_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Stop Managed Cluster. + + Stops a Running Managed Cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._stop_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + stop.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/stop'} + + + def _start_initial( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.start.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [202, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def start( + self, resource_group_name, resource_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Start Managed Cluster. + + Starts a Stopped Managed Cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._start_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + start.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/start'} + + + def _upgrade_node_image_version_initial( + self, resource_group_name, resource_name, agent_pool_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.upgrade_node_image_version.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'agentPoolName': self._serialize.url("agent_pool_name", agent_pool_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 202: + deserialized = self._deserialize('AgentPool', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def upgrade_node_image_version( + self, resource_group_name, resource_name, agent_pool_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Upgrade node image version of an agent pool to the latest. + + Upgrade node image version of an agent pool to the latest. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param agent_pool_name: The name of the agent pool. + :type agent_pool_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns AgentPool or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.containerservice.v2020_09_01.models.AgentPool] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.containerservice.v2020_09_01.models.AgentPool]] + :raises: :class:`CloudError` + """ + raw_result = self._upgrade_node_image_version_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + agent_pool_name=agent_pool_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('AgentPool', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + upgrade_node_image_version.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName}/upgradeNodeImageVersion'} diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/_operations.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_operations.py similarity index 83% rename from src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/_operations.py rename to src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_operations.py index 89f5bc9d9de..4598ca46e67 100644 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/_operations.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_operations.py @@ -11,6 +11,7 @@ import uuid from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError from .. import models @@ -24,7 +25,7 @@ class Operations(object): :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. - :ivar api_version: Client Api Version. Constant value: "2019-08-02-preview". + :ivar api_version: Client Api Version. Constant value: "2020-09-01". """ models = models @@ -34,13 +35,13 @@ def __init__(self, client, config, serializer, deserializer): self._client = client self._serialize = serializer self._deserialize = deserializer - self.api_version = "2019-08-02-preview" + self.api_version = "2020-09-01" self.config = config def list( self, custom_headers=None, raw=False, **operation_config): - """Gets a list of hybrid compute operations. + """Gets a list of compute operations. :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the @@ -49,9 +50,8 @@ def list( overrides`. :return: An iterator like instance of OperationValue :rtype: - ~azure.mgmt.hybridcompute.models.OperationValuePaged[~azure.mgmt.hybridcompute.models.OperationValue] - :raises: - :class:`ErrorResponseException` + ~azure.mgmt.containerservice.v2020_09_01.models.OperationValuePaged[~azure.mgmt.containerservice.v2020_09_01.models.OperationValue] + :raises: :class:`CloudError` """ def prepare_request(next_link=None): if not next_link: @@ -86,7 +86,9 @@ def internal_paging(next_link=None): response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: - raise models.ErrorResponseException(self._deserialize, response) + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp return response @@ -97,4 +99,4 @@ def internal_paging(next_link=None): deserialized = models.OperationValuePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized - list.metadata = {'url': '/providers/Microsoft.HybridCompute/operations'} + list.metadata = {'url': '/providers/Microsoft.ContainerService/operations'} diff --git a/src/maintenance/azext_maintenance/vendored_sdks/operations/apply_updates_operations.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_private_endpoint_connections_operations.py similarity index 51% rename from src/maintenance/azext_maintenance/vendored_sdks/operations/apply_updates_operations.py rename to src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_private_endpoint_connections_operations.py index dcea9d421ef..99a30128655 100644 --- a/src/maintenance/azext_maintenance/vendored_sdks/operations/apply_updates_operations.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_private_endpoint_connections_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=line-too-long # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,18 +12,22 @@ import uuid from msrest.pipeline import ClientRawResponse from msrestazure.azure_exceptions import CloudError +from msrest.polling import LROPoller, NoPolling +from msrestazure.polling.arm_polling import ARMPolling from .. import models -class ApplyUpdatesOperations(object): - """ApplyUpdatesOperations operations. +class PrivateEndpointConnectionsOperations(object): + """PrivateEndpointConnectionsOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. - :ivar api_version: Version of the API to be used with the client request. Constant value: "2018-06-01-preview". + :ivar api_version: Client Api Version. Constant value: "2020-09-01". """ models = models @@ -34,51 +37,41 @@ def __init__(self, client, config, serializer, deserializer): self._client = client self._serialize = serializer self._deserialize = deserializer - self.api_version = "2018-06-01-preview" + self.api_version = "2020-09-01" self.config = config - def get_parent( - self, resource_group_name, resource_parent_type, resource_parent_name, provider_name, resource_type, resource_name, apply_update_name, custom_headers=None, raw=False, **operation_config): - """Track Updates to resource with parent. + def list( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + """Gets a list of private endpoint connections in the specified managed + cluster. - Track maintenance updates to resource with parent. + Gets a list of private endpoint connections in the specified managed + cluster. The operation returns properties of each private endpoint + connection. - :param resource_group_name: Resource group name + :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param resource_parent_type: Resource parent type - :type resource_parent_type: str - :param resource_parent_name: Resource parent identifier - :type resource_parent_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier + :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param apply_update_name: applyUpdate Id - :type apply_update_name: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: ApplyUpdate or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.ApplyUpdate or - ~msrest.pipeline.ClientRawResponse + :return: PrivateEndpointConnectionListResult or ClientRawResponse if + raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpointConnectionListResult + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ # Construct URL - url = self.get_parent.metadata['url'] + url = self.list.metadata['url'] path_format_arguments = { 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), - 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), - 'applyUpdateName': self._serialize.url("apply_update_name", apply_update_name, 'str') + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') } url = self._client.format_url(url, **path_format_arguments) @@ -106,52 +99,48 @@ def get_parent( raise exp deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('ApplyUpdate', response) + deserialized = self._deserialize('PrivateEndpointConnectionListResult', response) if raw: client_raw_response = ClientRawResponse(deserialized, response) return client_raw_response return deserialized - get_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/{applyUpdateName}'} + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections'} def get( - self, resource_group_name, provider_name, resource_type, resource_name, apply_update_name, custom_headers=None, raw=False, **operation_config): - """Track Updates to resource. + self, resource_group_name, resource_name, private_endpoint_connection_name, custom_headers=None, raw=False, **operation_config): + """Gets the private endpoint connection. - Track maintenance updates to resource. + Gets the details of the private endpoint connection by managed cluster + and resource group. - :param resource_group_name: Resource group name + :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier + :param resource_name: The name of the managed cluster resource. :type resource_name: str - :param apply_update_name: applyUpdate Id - :type apply_update_name: str + :param private_endpoint_connection_name: The name of the private + endpoint connection. + :type private_endpoint_connection_name: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: ApplyUpdate or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.ApplyUpdate or - ~msrest.pipeline.ClientRawResponse + :return: PrivateEndpointConnection or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpointConnection + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ # Construct URL url = self.get.metadata['url'] path_format_arguments = { 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), - 'applyUpdateName': self._serialize.url("apply_update_name", apply_update_name, 'str') + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str') } url = self._client.format_url(url, **path_format_arguments) @@ -179,55 +168,57 @@ def get( raise exp deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('ApplyUpdate', response) + deserialized = self._deserialize('PrivateEndpointConnection', response) if raw: client_raw_response = ClientRawResponse(deserialized, response) return client_raw_response return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/{applyUpdateName}'} + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} - def create_or_update_parent( - self, resource_group_name, provider_name, resource_parent_type, resource_parent_name, resource_type, resource_name, custom_headers=None, raw=False, **operation_config): - """Apply Updates to resource with parent. + def update( + self, resource_group_name, resource_name, private_endpoint_connection_name, private_link_service_connection_state, private_endpoint=None, custom_headers=None, raw=False, **operation_config): + """Updates a private endpoint connection. - Apply maintenance updates to resource with parent. + Updates a private endpoint connection in the specified managed cluster. - :param resource_group_name: Resource group name + :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_parent_type: Resource parent type - :type resource_parent_type: str - :param resource_parent_name: Resource parent identifier - :type resource_parent_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier + :param resource_name: The name of the managed cluster resource. :type resource_name: str + :param private_endpoint_connection_name: The name of the private + endpoint connection. + :type private_endpoint_connection_name: str + :param private_link_service_connection_state: A collection of + information about the state of the connection between service consumer + and provider. + :type private_link_service_connection_state: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateLinkServiceConnectionState + :param private_endpoint: The resource of private endpoint. + :type private_endpoint: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpoint :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: ApplyUpdate or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.ApplyUpdate or - ~msrest.pipeline.ClientRawResponse + :return: PrivateEndpointConnection or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpointConnection + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ + parameters = models.PrivateEndpointConnection(private_endpoint=private_endpoint, private_link_service_connection_state=private_link_service_connection_state) + # Construct URL - url = self.create_or_update_parent.metadata['url'] + url = self.update.metadata['url'] path_format_arguments = { 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), - 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str') + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str') } url = self._client.format_url(url, **path_format_arguments) @@ -238,6 +229,7 @@ def create_or_update_parent( # Construct headers header_parameters = {} header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -245,8 +237,11 @@ def create_or_update_parent( if self.config.accept_language is not None: header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + # Construct body + body_content = self._serialize.body(parameters, 'PrivateEndpointConnection') + # Construct and send request - request = self._client.put(url, query_parameters, header_parameters) + request = self._client.put(url, query_parameters, header_parameters, body_content) response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: @@ -255,49 +250,26 @@ def create_or_update_parent( raise exp deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('ApplyUpdate', response) + deserialized = self._deserialize('PrivateEndpointConnection', response) if raw: client_raw_response = ClientRawResponse(deserialized, response) return client_raw_response return deserialized - create_or_update_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/default'} + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} - def create_or_update( - self, resource_group_name, provider_name, resource_type, resource_name, custom_headers=None, raw=False, **operation_config): - """Apply Updates to resource. - Apply maintenance updates to resource. - - :param resource_group_name: Resource group name - :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier - :type resource_name: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: ApplyUpdate or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.ApplyUpdate or - ~msrest.pipeline.ClientRawResponse - :raises: :class:`CloudError` - """ + def _delete_initial( + self, resource_group_name, resource_name, private_endpoint_connection_name, custom_headers=None, raw=False, **operation_config): # Construct URL - url = self.create_or_update.metadata['url'] + url = self.delete.metadata['url'] path_format_arguments = { 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str') + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$'), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str') } url = self._client.format_url(url, **path_format_arguments) @@ -307,7 +279,6 @@ def create_or_update( # Construct headers header_parameters = {} - header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -316,22 +287,62 @@ def create_or_update( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.put(url, query_parameters, header_parameters) + request = self._client.delete(url, query_parameters, header_parameters) response = self._client.send(request, stream=False, **operation_config) - if response.status_code not in [200]: + if response.status_code not in [200, 204]: exp = CloudError(response) exp.request_id = response.headers.get('x-ms-request-id') raise exp - deserialized = None - - if response.status_code == 200: - deserialized = self._deserialize('ApplyUpdate', response) - if raw: - client_raw_response = ClientRawResponse(deserialized, response) + client_raw_response = ClientRawResponse(None, response) return client_raw_response - return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/default'} + def delete( + self, resource_group_name, resource_name, private_endpoint_connection_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Deletes a private endpoint connection. + + Deletes the private endpoint connection in the specified managed + cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param private_endpoint_connection_name: The name of the private + endpoint connection. + :type private_endpoint_connection_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + resource_name=resource_name, + private_endpoint_connection_name=private_endpoint_connection_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateEndpointConnections/{privateEndpointConnectionName}'} diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_private_link_resources_operations.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_private_link_resources_operations.py new file mode 100644 index 00000000000..902fc5cfb0a --- /dev/null +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_private_link_resources_operations.py @@ -0,0 +1,106 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class PrivateLinkResourcesOperations(object): + """PrivateLinkResourcesOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: Client Api Version. Constant value: "2020-09-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2020-09-01" + + self.config = config + + def list( + self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): + """Gets a list of private link resources in the specified managed cluster. + + Gets a list of private link resources in the specified managed cluster. + The operation returns properties of each private link resource. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: PrivateLinkResourcesListResult or ClientRawResponse if + raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateLinkResourcesListResult + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PrivateLinkResourcesListResult', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/privateLinkResources'} diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_resolve_private_link_service_id_operations.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_resolve_private_link_service_id_operations.py new file mode 100644 index 00000000000..90baa4322be --- /dev/null +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/operations/_resolve_private_link_service_id_operations.py @@ -0,0 +1,112 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class ResolvePrivateLinkServiceIdOperations(object): + """ResolvePrivateLinkServiceIdOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: Client Api Version. Constant value: "2020-09-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2020-09-01" + + self.config = config + + def post( + self, resource_group_name, resource_name, parameters, custom_headers=None, raw=False, **operation_config): + """Gets the private link service ID for the specified managed cluster. + + Gets the private link service ID the specified managed cluster. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param resource_name: The name of the managed cluster resource. + :type resource_name: str + :param parameters: Parameters (name, groupId) supplied in order to + resolve a private link service ID. + :type parameters: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateLinkResource + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: PrivateLinkResource or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.containerservice.v2020_09_01.models.PrivateLinkResource or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.post.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', min_length=1), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str', max_length=63, min_length=1, pattern=r'^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'PrivateLinkResource') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PrivateLinkResource', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + post.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/resolvePrivateLinkServiceId'} diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/version.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/version.py similarity index 95% rename from src/connectedmachine/azext_connectedmachine/vendored_sdks/version.py rename to src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/version.py index 3266861fd6b..16563e7d14c 100644 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/version.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/v2020_09_01/version.py @@ -9,4 +9,5 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "0.1.0rc1" +VERSION = "2020-09-01" + diff --git a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/version.py b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/version.py index 6d5501ab8cf..133be29c19a 100644 --- a/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/version.py +++ b/src/aks-preview/azext_aks_preview/vendored_sdks/azure_mgmt_preview_aks/version.py @@ -9,5 +9,5 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "4.4.4" +VERSION = "4.4.5" diff --git a/src/aks-preview/linter_exclusions.yml b/src/aks-preview/linter_exclusions.yml new file mode 100644 index 00000000000..a2fbbf115b9 --- /dev/null +++ b/src/aks-preview/linter_exclusions.yml @@ -0,0 +1,10 @@ +aks create: + parameters: + disable_sgxquotehelper: + rule_exclusions: + - option_length_too_long +aks enable-addons: + parameters: + disable_sgxquotehelper: + rule_exclusions: + - option_length_too_long diff --git a/src/aks-preview/setup.py b/src/aks-preview/setup.py index aa4c50b5031..d357b575edc 100644 --- a/src/aks-preview/setup.py +++ b/src/aks-preview/setup.py @@ -8,7 +8,7 @@ from codecs import open as open1 from setuptools import setup, find_packages -VERSION = "0.4.61" +VERSION = "0.4.64" CLASSIFIERS = [ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', diff --git a/src/application-insights/HISTORY.rst b/src/application-insights/HISTORY.rst index 4264c066fd2..b037dbdcd8b 100644 --- a/src/application-insights/HISTORY.rst +++ b/src/application-insights/HISTORY.rst @@ -1,3 +1,13 @@ +0.1.11 +++++++++++++++++++ + +* `az monitor app-insights component update`: Update consent message. + +0.1.10 +++++++++++++++++++ + +* `az monitor app-insights component update`: Prompt consent when migrating to workspace-centric workspace. + 0.1.9 ++++++++++++++++++ diff --git a/src/application-insights/azext_applicationinsights/_help.py b/src/application-insights/azext_applicationinsights/_help.py index 8a931d099d8..48ea48cfa3e 100644 --- a/src/application-insights/azext_applicationinsights/_help.py +++ b/src/application-insights/azext_applicationinsights/_help.py @@ -122,7 +122,7 @@ parameters: - name: --api-key type: string - short-summary: name of the API key to fetch. Can be found using `api-keys show`. + short-summary: name of the API key to fetch. Can be found using `api-key show`. examples: - name: Fetch API Key. text: | @@ -138,7 +138,7 @@ parameters: - name: --api-key type: string - short-summary: Name of the API key to delete. Can be found using `api-keys show`. + short-summary: Name of the API key to delete. Can be found using `api-key show`. examples: - name: Delete API Key. text: | diff --git a/src/application-insights/azext_applicationinsights/commands.py b/src/application-insights/azext_applicationinsights/commands.py index 2e0814298a8..a169609d539 100644 --- a/src/application-insights/azext_applicationinsights/commands.py +++ b/src/application-insights/azext_applicationinsights/commands.py @@ -72,7 +72,7 @@ def load_command_table(self, _): with self.command_group('monitor app-insights component', command_type=components_sdk, custom_command_type=components_custom_sdk) as g: g.custom_command('create', 'create_or_update_component') g.custom_command('update', 'update_component') - g.custom_command('show', 'show_components') + g.custom_show_command('show', 'show_components') g.custom_command('delete', 'delete_component') g.custom_command('update-tags', 'update_component_tags') @@ -86,11 +86,11 @@ def load_command_table(self, _): g.custom_command('delete', 'delete_api_key') with self.command_group('monitor app-insights metrics', metrics_sdk) as g: - g.custom_command('show', 'get_metric') + g.custom_show_command('show', 'get_metric') g.custom_command('get-metadata', 'get_metrics_metadata') with self.command_group('monitor app-insights events', events_sdk) as g: - g.custom_command('show', 'get_events') + g.custom_show_command('show', 'get_events') with self.command_group('monitor app-insights', query_sdk) as g: g.custom_command('query', 'execute_query') diff --git a/src/application-insights/azext_applicationinsights/custom.py b/src/application-insights/azext_applicationinsights/custom.py index 8859fd5147c..37e20534051 100644 --- a/src/application-insights/azext_applicationinsights/custom.py +++ b/src/application-insights/azext_applicationinsights/custom.py @@ -75,6 +75,32 @@ def create_or_update_component(cmd, client, application, resource_group_name, lo raise ex +def _is_workspace_centric(workspace): + return workspace.properties['features']['enableLogAccessUsingOnlyResourcePermissions'] is False + + +def _is_resource_centric(workspace): + return workspace.properties['features']['enableLogAccessUsingOnlyResourcePermissions'] is True + + +# Here are two cases that need users' consent during APM (Application Performance Management) migration: +# 1. Bind a workspace-centric workspace to a classic AI (no workspace integration). +# 2. Migrate a resource-centric workspace to a workspace-centric workspace for an AI. +def _apm_migration_consent(cmd, new_workspace_resource_id, existing_workspace_resource_id): + from azure.cli.command_modules.resource.custom import show_resource + new_workspace = show_resource(cmd, [new_workspace_resource_id]) + if _is_workspace_centric(new_workspace): + if existing_workspace_resource_id: + existing_workspace = show_resource(cmd, [existing_workspace_resource_id]) + need_consent = _is_resource_centric(existing_workspace) + else: # This is a classic AI which isn't binding to a log analytics workspace. + need_consent = True + + if need_consent: + from azure.cli.core.util import user_confirmation + user_confirmation('Specified workspace is configured with workspace-based access mode and some APM features may be impacted. Consider selecting another workspace or allow resource-based access in the workspace settings. Please refer to https://aka.ms/apm-workspace-access-mode for details. Do you want to continue?') + + def update_component(cmd, client, application, resource_group_name, kind=None, workspace_resource_id=None, public_network_access_for_ingestion=None, public_network_access_for_query=None, retention_in_days=None): from ._client_factory import applicationinsights_mgmt_plane_client @@ -87,6 +113,9 @@ def update_component(cmd, client, application, resource_group_name, kind=None, w except CloudError as ex: ex.error._message = ex.error._message + HELP_MESSAGE raise ex + + _apm_migration_consent(cmd, workspace_resource_id, existing_component.workspace_resource_id) + existing_component.workspace_resource_id = workspace_resource_id or None else: existing_component = client.get(resource_group_name, application) diff --git a/src/application-insights/azext_applicationinsights/tests/latest/recordings/test_component_with_linked_workspace.yaml b/src/application-insights/azext_applicationinsights/tests/latest/recordings/test_component_with_linked_workspace.yaml index 953c00247be..ab4f62889ac 100644 --- a/src/application-insights/azext_applicationinsights/tests/latest/recordings/test_component_with_linked_workspace.yaml +++ b/src/application-insights/azext_applicationinsights/tests/latest/recordings/test_component_with_linked_workspace.yaml @@ -13,24 +13,24 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-17T08:30:21Z","StorageType":"Standard_LRS"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-02T06:20:09Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '457' + - '428' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:30:50 GMT + - Wed, 02 Sep 2020 06:20:12 GMT expires: - '-1' pragma: @@ -63,8 +63,8 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-loganalytics/0.7.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT @@ -72,17 +72,17 @@ interactions: response: body: string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": - \"482cf201-d500-4957-92e2-04ecf5c5a519\",\r\n \"provisioningState\": \"Creating\",\r\n + \"fb3907ac-7b22-4d08-a20b-8ed1461eed85\",\r\n \"provisioningState\": \"Creating\",\r\n \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": - 3000,\r\n \"lastSkuUpdate\": \"Mon, 17 Aug 2020 08:30:53 GMT\"\r\n },\r\n + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:20:19 GMT\"\r\n },\r\n \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n - \ \"quotaNextResetTime\": \"Mon, 17 Aug 2020 20:00:00 GMT\",\r\n \"dataIngestionStatus\": + \ \"quotaNextResetTime\": \"Wed, 02 Sep 2020 17:00:00 GMT\",\r\n \"dataIngestionStatus\": \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": - \"Mon, 17 Aug 2020 08:30:53 GMT\",\r\n \"modifiedDate\": \"Mon, 17 Aug - 2020 08:30:53 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n + \"Wed, 02 Sep 2020 06:20:19 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:20:19 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n \ \"name\": \"clitest000002\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n \ \"location\": \"westus\"\r\n}" headers: @@ -93,7 +93,7 @@ interactions: content-type: - application/json date: - - Mon, 17 Aug 2020 08:30:54 GMT + - Wed, 02 Sep 2020 06:20:20 GMT pragma: - no-cache server: @@ -104,7 +104,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1199' x-powered-by: - ASP.NET - ASP.NET @@ -125,24 +125,24 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-loganalytics/0.7.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002?api-version=2020-03-01-preview response: body: string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": - \"482cf201-d500-4957-92e2-04ecf5c5a519\",\r\n \"provisioningState\": \"Succeeded\",\r\n + \"fb3907ac-7b22-4d08-a20b-8ed1461eed85\",\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": - 3000,\r\n \"lastSkuUpdate\": \"Mon, 17 Aug 2020 08:30:53 GMT\"\r\n },\r\n + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:20:19 GMT\"\r\n },\r\n \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n - \ \"quotaNextResetTime\": \"Mon, 17 Aug 2020 20:00:00 GMT\",\r\n \"dataIngestionStatus\": + \ \"quotaNextResetTime\": \"Wed, 02 Sep 2020 17:00:00 GMT\",\r\n \"dataIngestionStatus\": \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": - \"Mon, 17 Aug 2020 08:30:53 GMT\",\r\n \"modifiedDate\": \"Mon, 17 Aug - 2020 08:30:55 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n + \"Wed, 02 Sep 2020 06:20:19 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:20:21 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n \ \"name\": \"clitest000002\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n \ \"location\": \"westus\"\r\n}" headers: @@ -153,7 +153,7 @@ interactions: content-type: - application/json date: - - Mon, 17 Aug 2020 08:31:25 GMT + - Wed, 02 Sep 2020 06:20:52 GMT pragma: - no-cache server: @@ -187,24 +187,24 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-17T08:30:21Z","StorageType":"Standard_LRS"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-02T06:20:09Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '457' + - '428' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:31:26 GMT + - Wed, 02 Sep 2020 06:20:53 GMT expires: - '-1' pragma: @@ -237,8 +237,8 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-loganalytics/0.7.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT @@ -246,17 +246,17 @@ interactions: response: body: string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": - \"f0b6cdcd-67ca-4bc8-ad1d-7f391fca1d97\",\r\n \"provisioningState\": \"Creating\",\r\n + \"498152da-a53d-46b8-9c26-c06cbba73936\",\r\n \"provisioningState\": \"Creating\",\r\n \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": - 3000,\r\n \"lastSkuUpdate\": \"Mon, 17 Aug 2020 08:31:30 GMT\"\r\n },\r\n + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:20:59 GMT\"\r\n },\r\n \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n - \ \"quotaNextResetTime\": \"Mon, 17 Aug 2020 14:00:00 GMT\",\r\n \"dataIngestionStatus\": + \ \"quotaNextResetTime\": \"Thu, 03 Sep 2020 01:00:00 GMT\",\r\n \"dataIngestionStatus\": \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": - \"Mon, 17 Aug 2020 08:31:30 GMT\",\r\n \"modifiedDate\": \"Mon, 17 Aug - 2020 08:31:30 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000003\",\r\n + \"Wed, 02 Sep 2020 06:20:59 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:20:59 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000003\",\r\n \ \"name\": \"clitest000003\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n \ \"location\": \"westus\"\r\n}" headers: @@ -267,7 +267,7 @@ interactions: content-type: - application/json date: - - Mon, 17 Aug 2020 08:31:30 GMT + - Wed, 02 Sep 2020 06:21:00 GMT pragma: - no-cache server: @@ -278,7 +278,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1196' + - '1199' x-powered-by: - ASP.NET - ASP.NET @@ -299,24 +299,24 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-loganalytics/0.7.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/Microsoft.OperationalInsights/workspaces/clitest000003?api-version=2020-03-01-preview response: body: string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": - \"f0b6cdcd-67ca-4bc8-ad1d-7f391fca1d97\",\r\n \"provisioningState\": \"Succeeded\",\r\n + \"498152da-a53d-46b8-9c26-c06cbba73936\",\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": - 3000,\r\n \"lastSkuUpdate\": \"Mon, 17 Aug 2020 08:31:30 GMT\"\r\n },\r\n + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:20:59 GMT\"\r\n },\r\n \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n - \ \"quotaNextResetTime\": \"Mon, 17 Aug 2020 14:00:00 GMT\",\r\n \"dataIngestionStatus\": + \ \"quotaNextResetTime\": \"Thu, 03 Sep 2020 01:00:00 GMT\",\r\n \"dataIngestionStatus\": \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": - \"Mon, 17 Aug 2020 08:31:30 GMT\",\r\n \"modifiedDate\": \"Mon, 17 Aug - 2020 08:31:30 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000003\",\r\n + \"Wed, 02 Sep 2020 06:20:59 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:21:02 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000003\",\r\n \ \"name\": \"clitest000003\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n \ \"location\": \"westus\"\r\n}" headers: @@ -327,7 +327,7 @@ interactions: content-type: - application/json date: - - Mon, 17 Aug 2020 08:32:00 GMT + - Wed, 02 Sep 2020 06:21:31 GMT pragma: - no-cache server: @@ -366,26 +366,26 @@ interactions: ParameterSetName: - --app --location --kind -g --application-type User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2018-05-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300e1c6-0000-0700-0000-5f3a40840000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"b36daad9-f131-47a3-a3f1-7e8ec0abb79c","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"a4cf9cd3-94b5-49d3-869d-7f56e53909b3","ConnectionString":"InstrumentationKey=a4cf9cd3-94b5-49d3-869d-7f56e53909b3","Name":"demoApp","CreationDate":"2020-08-17T08:32:04.8248395+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1600da8a-0000-0700-0000-5f4f39f50000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"86d37007-e6ee-4d55-ac93-c400d02a3465","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"9f138d6c-07e6-460b-b980-6c0ac0262107","ConnectionString":"InstrumentationKey=9f138d6c-07e6-460b-b980-6c0ac0262107","Name":"demoApp","CreationDate":"2020-09-02T06:21:41.014116+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '976' + - '975' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:07 GMT + - Wed, 02 Sep 2020 06:21:42 GMT expires: - '-1' pragma: @@ -403,7 +403,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1193' + - '1199' x-powered-by: - ASP.NET status: @@ -423,26 +423,26 @@ interactions: ParameterSetName: - --app --workspace -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2020-02-02-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300e1c6-0000-0700-0000-5f3a40840000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"b36daad9-f131-47a3-a3f1-7e8ec0abb79c","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"a4cf9cd3-94b5-49d3-869d-7f56e53909b3","ConnectionString":"InstrumentationKey=a4cf9cd3-94b5-49d3-869d-7f56e53909b3","Name":"demoApp","CreationDate":"2020-08-17T08:32:04.8248395+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1600da8a-0000-0700-0000-5f4f39f50000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"86d37007-e6ee-4d55-ac93-c400d02a3465","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"9f138d6c-07e6-460b-b980-6c0ac0262107","ConnectionString":"InstrumentationKey=9f138d6c-07e6-460b-b980-6c0ac0262107","Name":"demoApp","CreationDate":"2020-09-02T06:21:41.014116+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '976' + - '975' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:08 GMT + - Wed, 02 Sep 2020 06:21:43 GMT expires: - '-1' pragma: @@ -464,6 +464,160 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - monitor app-insights component update + Connection: + - keep-alive + ParameterSetName: + - --app --workspace -g + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.OperationalInsights?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.OperationalInsights","namespace":"Microsoft.OperationalInsights","authorizations":[{"applicationId":"d2a0a418-0aac-4541-82b2-b3142c89da77","roleDefinitionId":"86695298-2eb9-48a7-9ec3-2fdb38b6878b"},{"applicationId":"ca7f3f0b-7d91-482c-8e09-c5d840d0eac5","roleDefinitionId":"5d5a2e56-9835-44aa-93db-d2f19e155438"}],"resourceTypes":[{"resourceType":"workspaces","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"capabilities":"CrossResourceGroupResourceMove, + CrossSubscriptionResourceMove, SupportsTags, SupportsLocation"},{"resourceType":"locations","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"locations/operationStatuses","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"workspaces/scopedPrivateLinkProxies","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-03-01-preview","2019-08-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-03-01-preview","capabilities":"None"},{"resourceType":"workspaces/query","locations":[],"apiVersions":["2017-10-01"],"capabilities":"None"},{"resourceType":"workspaces/metadata","locations":[],"apiVersions":["2017-10-01"],"capabilities":"None"},{"resourceType":"workspaces/dataSources","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"workspaces/linkedStorageAccounts","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"storageInsightConfigs","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2014-10-10"],"capabilities":"SupportsExtension"},{"resourceType":"workspaces/linkedServices","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"linkTargets","locations":["East + US"],"apiVersions":["2020-03-01-preview","2015-03-20"],"capabilities":"None"},{"resourceType":"deletedWorkspaces","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"operations","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2015-11-01-preview","2014-11-10"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"clusters","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Switzerland North","Switzerland West","Germany West Central","Australia + Central 2","UAE Central","Brazil South"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"CrossResourceGroupResourceMove, + CrossSubscriptionResourceMove, SystemAssignedResourceIdentity, SupportsTags, + SupportsLocation"}],"registrationState":"Registered","registrationPolicy":"RegistrationRequired"}' + headers: + cache-control: + - no-cache + content-length: + - '6611' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 06:21:44 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: + - monitor app-insights component update + Connection: + - keep-alive + ParameterSetName: + - --app --workspace -g + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002?api-version=2020-08-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": + \"fb3907ac-7b22-4d08-a20b-8ed1461eed85\",\r\n \"provisioningState\": \"Succeeded\",\r\n + \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:20:19 GMT\"\r\n },\r\n + \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n + \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": + true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n + \ \"quotaNextResetTime\": \"Wed, 02 Sep 2020 17:00:00 GMT\",\r\n \"dataIngestionStatus\": + \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n + \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": + \"Wed, 02 Sep 2020 06:20:19 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:20:21 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n + \ \"name\": \"clitest000002\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n + \ \"location\": \"westus\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1178' + content-type: + - application/json + date: + - Wed, 02 Sep 2020 06:21:45 GMT + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-powered-by: + - ASP.NET + - ASP.NET + status: + code: 200 + message: OK - request: body: '{"location": "westus", "tags": {}, "kind": "web", "properties": {"Application_Type": "web", "Flow_Type": "Bluefield", "Request_Source": "rest", "WorkspaceResourceId": @@ -486,26 +640,26 @@ interactions: ParameterSetName: - --app --workspace -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2020-02-02-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300ebc6-0000-0700-0000-5f3a40890000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"b36daad9-f131-47a3-a3f1-7e8ec0abb79c","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"a4cf9cd3-94b5-49d3-869d-7f56e53909b3","ConnectionString":"InstrumentationKey=a4cf9cd3-94b5-49d3-869d-7f56e53909b3","Name":"demoApp","CreationDate":"2020-08-17T08:32:04.8248395+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002","LaMigrationDate":"2020-08-17T08:32:09.9554675+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1600e78a-0000-0700-0000-5f4f39fb0000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"86d37007-e6ee-4d55-ac93-c400d02a3465","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"9f138d6c-07e6-460b-b980-6c0ac0262107","ConnectionString":"InstrumentationKey=9f138d6c-07e6-460b-b980-6c0ac0262107","Name":"demoApp","CreationDate":"2020-09-02T06:21:41.014116+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002","LaMigrationDate":"2020-09-02T06:21:47.4370798+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '1262' + - '1261' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:11 GMT + - Wed, 02 Sep 2020 06:21:48 GMT expires: - '-1' pragma: @@ -523,7 +677,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1192' + - '1199' x-powered-by: - ASP.NET status: @@ -543,26 +697,26 @@ interactions: ParameterSetName: - --app --workspace -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2020-02-02-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300ebc6-0000-0700-0000-5f3a40890000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"b36daad9-f131-47a3-a3f1-7e8ec0abb79c","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"a4cf9cd3-94b5-49d3-869d-7f56e53909b3","ConnectionString":"InstrumentationKey=a4cf9cd3-94b5-49d3-869d-7f56e53909b3","Name":"demoApp","CreationDate":"2020-08-17T08:32:04.8248395+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002","LaMigrationDate":"2020-08-17T08:32:09.9554675+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1600e78a-0000-0700-0000-5f4f39fb0000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"86d37007-e6ee-4d55-ac93-c400d02a3465","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"9f138d6c-07e6-460b-b980-6c0ac0262107","ConnectionString":"InstrumentationKey=9f138d6c-07e6-460b-b980-6c0ac0262107","Name":"demoApp","CreationDate":"2020-09-02T06:21:41.014116+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002","LaMigrationDate":"2020-09-02T06:21:47.4370798+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '1262' + - '1261' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:12 GMT + - Wed, 02 Sep 2020 06:21:50 GMT expires: - '-1' pragma: @@ -584,6 +738,160 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - monitor app-insights component update + Connection: + - keep-alive + ParameterSetName: + - --app --workspace -g + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.OperationalInsights?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.OperationalInsights","namespace":"Microsoft.OperationalInsights","authorizations":[{"applicationId":"d2a0a418-0aac-4541-82b2-b3142c89da77","roleDefinitionId":"86695298-2eb9-48a7-9ec3-2fdb38b6878b"},{"applicationId":"ca7f3f0b-7d91-482c-8e09-c5d840d0eac5","roleDefinitionId":"5d5a2e56-9835-44aa-93db-d2f19e155438"}],"resourceTypes":[{"resourceType":"workspaces","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"capabilities":"CrossResourceGroupResourceMove, + CrossSubscriptionResourceMove, SupportsTags, SupportsLocation"},{"resourceType":"locations","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"locations/operationStatuses","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"workspaces/scopedPrivateLinkProxies","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-03-01-preview","2019-08-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-03-01-preview","capabilities":"None"},{"resourceType":"workspaces/query","locations":[],"apiVersions":["2017-10-01"],"capabilities":"None"},{"resourceType":"workspaces/metadata","locations":[],"apiVersions":["2017-10-01"],"capabilities":"None"},{"resourceType":"workspaces/dataSources","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"workspaces/linkedStorageAccounts","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"storageInsightConfigs","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2014-10-10"],"capabilities":"SupportsExtension"},{"resourceType":"workspaces/linkedServices","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"linkTargets","locations":["East + US"],"apiVersions":["2020-03-01-preview","2015-03-20"],"capabilities":"None"},{"resourceType":"deletedWorkspaces","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"operations","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2015-11-01-preview","2014-11-10"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"clusters","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Switzerland North","Switzerland West","Germany West Central","Australia + Central 2","UAE Central","Brazil South"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"CrossResourceGroupResourceMove, + CrossSubscriptionResourceMove, SystemAssignedResourceIdentity, SupportsTags, + SupportsLocation"}],"registrationState":"Registered","registrationPolicy":"RegistrationRequired"}' + headers: + cache-control: + - no-cache + content-length: + - '6611' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 06:21:50 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: + - monitor app-insights component update + Connection: + - keep-alive + ParameterSetName: + - --app --workspace -g + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003?api-version=2020-08-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": + \"498152da-a53d-46b8-9c26-c06cbba73936\",\r\n \"provisioningState\": \"Succeeded\",\r\n + \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:20:59 GMT\"\r\n },\r\n + \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n + \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": + true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n + \ \"quotaNextResetTime\": \"Thu, 03 Sep 2020 01:00:00 GMT\",\r\n \"dataIngestionStatus\": + \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n + \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": + \"Wed, 02 Sep 2020 06:20:59 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:21:02 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000003\",\r\n + \ \"name\": \"clitest000003\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n + \ \"location\": \"westus\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1178' + content-type: + - application/json + date: + - Wed, 02 Sep 2020 06:21:51 GMT + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-powered-by: + - ASP.NET + - ASP.NET + status: + code: 200 + message: OK - request: body: '{"location": "westus", "tags": {}, "kind": "web", "properties": {"Application_Type": "web", "Flow_Type": "Bluefield", "Request_Source": "rest", "WorkspaceResourceId": @@ -606,26 +914,26 @@ interactions: ParameterSetName: - --app --workspace -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2020-02-02-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300f7c6-0000-0700-0000-5f3a408f0000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"b36daad9-f131-47a3-a3f1-7e8ec0abb79c","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"a4cf9cd3-94b5-49d3-869d-7f56e53909b3","ConnectionString":"InstrumentationKey=a4cf9cd3-94b5-49d3-869d-7f56e53909b3","Name":"demoApp","CreationDate":"2020-08-17T08:32:04.8248395+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","LaMigrationDate":"2020-08-17T08:32:09.9554675+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1600f18a-0000-0700-0000-5f4f3a010000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"86d37007-e6ee-4d55-ac93-c400d02a3465","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"9f138d6c-07e6-460b-b980-6c0ac0262107","ConnectionString":"InstrumentationKey=9f138d6c-07e6-460b-b980-6c0ac0262107","Name":"demoApp","CreationDate":"2020-09-02T06:21:41.014116+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","LaMigrationDate":"2020-09-02T06:21:47.4370798+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '1262' + - '1261' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:15 GMT + - Wed, 02 Sep 2020 06:21:54 GMT expires: - '-1' pragma: @@ -643,7 +951,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1195' + - '1198' x-powered-by: - ASP.NET status: @@ -663,26 +971,26 @@ interactions: ParameterSetName: - --app --workspace --kind -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2020-02-02-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300f7c6-0000-0700-0000-5f3a408f0000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"b36daad9-f131-47a3-a3f1-7e8ec0abb79c","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"a4cf9cd3-94b5-49d3-869d-7f56e53909b3","ConnectionString":"InstrumentationKey=a4cf9cd3-94b5-49d3-869d-7f56e53909b3","Name":"demoApp","CreationDate":"2020-08-17T08:32:04.8248395+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","LaMigrationDate":"2020-08-17T08:32:09.9554675+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1600f18a-0000-0700-0000-5f4f3a010000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"86d37007-e6ee-4d55-ac93-c400d02a3465","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"9f138d6c-07e6-460b-b980-6c0ac0262107","ConnectionString":"InstrumentationKey=9f138d6c-07e6-460b-b980-6c0ac0262107","Name":"demoApp","CreationDate":"2020-09-02T06:21:41.014116+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","LaMigrationDate":"2020-09-02T06:21:47.4370798+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '1262' + - '1261' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:16 GMT + - Wed, 02 Sep 2020 06:21:55 GMT expires: - '-1' pragma: @@ -704,6 +1012,160 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - monitor app-insights component update + Connection: + - keep-alive + ParameterSetName: + - --app --workspace --kind -g + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.OperationalInsights?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.OperationalInsights","namespace":"Microsoft.OperationalInsights","authorizations":[{"applicationId":"d2a0a418-0aac-4541-82b2-b3142c89da77","roleDefinitionId":"86695298-2eb9-48a7-9ec3-2fdb38b6878b"},{"applicationId":"ca7f3f0b-7d91-482c-8e09-c5d840d0eac5","roleDefinitionId":"5d5a2e56-9835-44aa-93db-d2f19e155438"}],"resourceTypes":[{"resourceType":"workspaces","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"capabilities":"CrossResourceGroupResourceMove, + CrossSubscriptionResourceMove, SupportsTags, SupportsLocation"},{"resourceType":"locations","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"locations/operationStatuses","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"workspaces/scopedPrivateLinkProxies","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-03-01-preview","2019-08-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-03-01-preview","capabilities":"None"},{"resourceType":"workspaces/query","locations":[],"apiVersions":["2017-10-01"],"capabilities":"None"},{"resourceType":"workspaces/metadata","locations":[],"apiVersions":["2017-10-01"],"capabilities":"None"},{"resourceType":"workspaces/dataSources","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"workspaces/linkedStorageAccounts","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"storageInsightConfigs","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2014-10-10"],"capabilities":"SupportsExtension"},{"resourceType":"workspaces/linkedServices","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"linkTargets","locations":["East + US"],"apiVersions":["2020-03-01-preview","2015-03-20"],"capabilities":"None"},{"resourceType":"deletedWorkspaces","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"operations","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2015-11-01-preview","2014-11-10"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"clusters","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Switzerland North","Switzerland West","Germany West Central","Australia + Central 2","UAE Central","Brazil South"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"CrossResourceGroupResourceMove, + CrossSubscriptionResourceMove, SystemAssignedResourceIdentity, SupportsTags, + SupportsLocation"}],"registrationState":"Registered","registrationPolicy":"RegistrationRequired"}' + headers: + cache-control: + - no-cache + content-length: + - '6611' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 06:21:55 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: + - monitor app-insights component update + Connection: + - keep-alive + ParameterSetName: + - --app --workspace --kind -g + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002?api-version=2020-08-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": + \"fb3907ac-7b22-4d08-a20b-8ed1461eed85\",\r\n \"provisioningState\": \"Succeeded\",\r\n + \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:20:19 GMT\"\r\n },\r\n + \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n + \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": + true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n + \ \"quotaNextResetTime\": \"Wed, 02 Sep 2020 17:00:00 GMT\",\r\n \"dataIngestionStatus\": + \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n + \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": + \"Wed, 02 Sep 2020 06:20:19 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:20:21 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n + \ \"name\": \"clitest000002\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n + \ \"location\": \"westus\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1178' + content-type: + - application/json + date: + - Wed, 02 Sep 2020 06:21:56 GMT + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-powered-by: + - ASP.NET + - ASP.NET + status: + code: 200 + message: OK - request: body: '{"location": "westus", "tags": {}, "kind": "ios", "properties": {"Application_Type": "web", "Flow_Type": "Bluefield", "Request_Source": "rest", "WorkspaceResourceId": @@ -726,26 +1188,26 @@ interactions: ParameterSetName: - --app --workspace --kind -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2020-02-02-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"ios","etag":"\"1300fcc6-0000-0700-0000-5f3a40920000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"b36daad9-f131-47a3-a3f1-7e8ec0abb79c","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"a4cf9cd3-94b5-49d3-869d-7f56e53909b3","ConnectionString":"InstrumentationKey=a4cf9cd3-94b5-49d3-869d-7f56e53909b3","Name":"demoApp","CreationDate":"2020-08-17T08:32:04.8248395+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002","LaMigrationDate":"2020-08-17T08:32:09.9554675+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"ios","etag":"\"1600f98a-0000-0700-0000-5f4f3a070000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"86d37007-e6ee-4d55-ac93-c400d02a3465","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"9f138d6c-07e6-460b-b980-6c0ac0262107","ConnectionString":"InstrumentationKey=9f138d6c-07e6-460b-b980-6c0ac0262107","Name":"demoApp","CreationDate":"2020-09-02T06:21:41.014116+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002","LaMigrationDate":"2020-09-02T06:21:47.4370798+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '1262' + - '1261' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:19 GMT + - Wed, 02 Sep 2020 06:22:03 GMT expires: - '-1' pragma: @@ -763,7 +1225,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1192' + - '1199' x-powered-by: - ASP.NET status: @@ -789,15 +1251,15 @@ interactions: ParameterSetName: - --app --workspace --location --kind -g --application-type User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/testApp?api-version=2020-02-02-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"ios","etag":"\"130006c7-0000-0700-0000-5f3a40970000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"a9c7e1d4-cbd8-44d6-94fb-a1466710fe85","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"89bdea8a-7256-4100-948a-c745f4e46fb2","ConnectionString":"InstrumentationKey=89bdea8a-7256-4100-948a-c745f4e46fb2","Name":"testApp","CreationDate":"2020-08-17T08:32:23.3533367+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"ios","etag":"\"16000a8b-0000-0700-0000-5f4f3a110000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"5e9f60eb-b678-4918-a296-7d188d783b44","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"f117d61c-f5bc-4e32-bd91-a93e00d4577a","ConnectionString":"InstrumentationKey=f117d61c-f5bc-4e32-bd91-a93e00d4577a","Name":"testApp","CreationDate":"2020-09-02T06:22:08.8098289+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context @@ -808,7 +1270,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:25 GMT + - Wed, 02 Sep 2020 06:22:10 GMT expires: - '-1' pragma: @@ -826,7 +1288,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1189' + - '1198' x-powered-by: - ASP.NET status: @@ -846,15 +1308,15 @@ interactions: ParameterSetName: - --app --kind -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/testApp?api-version=2018-05-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"ios","etag":"\"130006c7-0000-0700-0000-5f3a40970000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"a9c7e1d4-cbd8-44d6-94fb-a1466710fe85","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"89bdea8a-7256-4100-948a-c745f4e46fb2","ConnectionString":"InstrumentationKey=89bdea8a-7256-4100-948a-c745f4e46fb2","Name":"testApp","CreationDate":"2020-08-17T08:32:23.3533367+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"ios","etag":"\"16000a8b-0000-0700-0000-5f4f3a110000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"5e9f60eb-b678-4918-a296-7d188d783b44","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"f117d61c-f5bc-4e32-bd91-a93e00d4577a","ConnectionString":"InstrumentationKey=f117d61c-f5bc-4e32-bd91-a93e00d4577a","Name":"testApp","CreationDate":"2020-09-02T06:22:08.8098289+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context @@ -865,7 +1327,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:26 GMT + - Wed, 02 Sep 2020 06:22:11 GMT expires: - '-1' pragma: @@ -908,15 +1370,15 @@ interactions: ParameterSetName: - --app --kind -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/testApp?api-version=2018-05-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"ios","etag":"\"130013c7-0000-0700-0000-5f3a409b0000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"a9c7e1d4-cbd8-44d6-94fb-a1466710fe85","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"89bdea8a-7256-4100-948a-c745f4e46fb2","ConnectionString":"InstrumentationKey=89bdea8a-7256-4100-948a-c745f4e46fb2","Name":"testApp","CreationDate":"2020-08-17T08:32:23.3533367+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"Retention":"P90D","WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"ios","etag":"\"1600128b-0000-0700-0000-5f4f3a150000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"5e9f60eb-b678-4918-a296-7d188d783b44","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"f117d61c-f5bc-4e32-bd91-a93e00d4577a","ConnectionString":"InstrumentationKey=f117d61c-f5bc-4e32-bd91-a93e00d4577a","Name":"testApp","CreationDate":"2020-09-02T06:22:08.8098289+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"Retention":"P90D","WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context @@ -927,7 +1389,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:28 GMT + - Wed, 02 Sep 2020 06:22:14 GMT expires: - '-1' pragma: @@ -945,7 +1407,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1194' + - '1198' x-powered-by: - ASP.NET status: diff --git a/src/application-insights/azext_applicationinsights/tests/latest/recordings/test_component_with_public_network_access.yaml b/src/application-insights/azext_applicationinsights/tests/latest/recordings/test_component_with_public_network_access.yaml index 2cf5c1b0b94..3a2db64c0c1 100644 --- a/src/application-insights/azext_applicationinsights/tests/latest/recordings/test_component_with_public_network_access.yaml +++ b/src/application-insights/azext_applicationinsights/tests/latest/recordings/test_component_with_public_network_access.yaml @@ -13,24 +13,24 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-17T08:30:21Z","StorageType":"Standard_LRS"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-02T06:17:40Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '457' + - '428' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:30:53 GMT + - Wed, 02 Sep 2020 06:17:46 GMT expires: - '-1' pragma: @@ -63,8 +63,8 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-loganalytics/0.7.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT @@ -72,17 +72,17 @@ interactions: response: body: string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": - \"a0346705-bbf9-4280-9ff0-c7deff51a605\",\r\n \"provisioningState\": \"Creating\",\r\n + \"3ce708fd-b3a6-470f-b8c0-1b1e80c49f21\",\r\n \"provisioningState\": \"Creating\",\r\n \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": - 3000,\r\n \"lastSkuUpdate\": \"Mon, 17 Aug 2020 08:30:57 GMT\"\r\n },\r\n + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:17:54 GMT\"\r\n },\r\n \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n - \ \"quotaNextResetTime\": \"Mon, 17 Aug 2020 20:00:00 GMT\",\r\n \"dataIngestionStatus\": + \ \"quotaNextResetTime\": \"Wed, 02 Sep 2020 15:00:00 GMT\",\r\n \"dataIngestionStatus\": \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": - \"Mon, 17 Aug 2020 08:30:57 GMT\",\r\n \"modifiedDate\": \"Mon, 17 Aug - 2020 08:30:57 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n + \"Wed, 02 Sep 2020 06:17:54 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:17:54 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n \ \"name\": \"clitest000002\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n \ \"location\": \"westus\"\r\n}" headers: @@ -93,7 +93,7 @@ interactions: content-type: - application/json date: - - Mon, 17 Aug 2020 08:30:58 GMT + - Wed, 02 Sep 2020 06:17:54 GMT pragma: - no-cache server: @@ -104,7 +104,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1199' x-powered-by: - ASP.NET - ASP.NET @@ -125,24 +125,24 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-loganalytics/0.7.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002?api-version=2020-03-01-preview response: body: string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": - \"a0346705-bbf9-4280-9ff0-c7deff51a605\",\r\n \"provisioningState\": \"Succeeded\",\r\n + \"3ce708fd-b3a6-470f-b8c0-1b1e80c49f21\",\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": - 3000,\r\n \"lastSkuUpdate\": \"Mon, 17 Aug 2020 08:30:57 GMT\"\r\n },\r\n + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:17:54 GMT\"\r\n },\r\n \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n - \ \"quotaNextResetTime\": \"Mon, 17 Aug 2020 20:00:00 GMT\",\r\n \"dataIngestionStatus\": + \ \"quotaNextResetTime\": \"Wed, 02 Sep 2020 15:00:00 GMT\",\r\n \"dataIngestionStatus\": \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": - \"Mon, 17 Aug 2020 08:30:57 GMT\",\r\n \"modifiedDate\": \"Mon, 17 Aug - 2020 08:30:58 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n + \"Wed, 02 Sep 2020 06:17:54 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:17:58 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n \ \"name\": \"clitest000002\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n \ \"location\": \"westus\"\r\n}" headers: @@ -153,7 +153,7 @@ interactions: content-type: - application/json date: - - Mon, 17 Aug 2020 08:31:29 GMT + - Wed, 02 Sep 2020 06:18:26 GMT pragma: - no-cache server: @@ -187,24 +187,24 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-17T08:30:21Z","StorageType":"Standard_LRS"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-02T06:17:40Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '457' + - '428' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:31:30 GMT + - Wed, 02 Sep 2020 06:18:28 GMT expires: - '-1' pragma: @@ -237,8 +237,8 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-loganalytics/0.7.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT @@ -246,17 +246,17 @@ interactions: response: body: string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": - \"53f6877a-ce53-44ef-815d-ea70d51c104e\",\r\n \"provisioningState\": \"Creating\",\r\n + \"a96d0a14-17e0-4f71-b401-a16eb015d7ca\",\r\n \"provisioningState\": \"Creating\",\r\n \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": - 3000,\r\n \"lastSkuUpdate\": \"Mon, 17 Aug 2020 08:31:34 GMT\"\r\n },\r\n + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:18:35 GMT\"\r\n },\r\n \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n - \ \"quotaNextResetTime\": \"Mon, 17 Aug 2020 14:00:00 GMT\",\r\n \"dataIngestionStatus\": + \ \"quotaNextResetTime\": \"Thu, 03 Sep 2020 05:00:00 GMT\",\r\n \"dataIngestionStatus\": \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": - \"Mon, 17 Aug 2020 08:31:34 GMT\",\r\n \"modifiedDate\": \"Mon, 17 Aug - 2020 08:31:34 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000003\",\r\n + \"Wed, 02 Sep 2020 06:18:35 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:18:35 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000003\",\r\n \ \"name\": \"clitest000003\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n \ \"location\": \"westus\"\r\n}" headers: @@ -267,7 +267,7 @@ interactions: content-type: - application/json date: - - Mon, 17 Aug 2020 08:31:34 GMT + - Wed, 02 Sep 2020 06:18:35 GMT pragma: - no-cache server: @@ -278,7 +278,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1194' + - '1199' x-powered-by: - ASP.NET - ASP.NET @@ -299,24 +299,24 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-loganalytics/0.7.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/Microsoft.OperationalInsights/workspaces/clitest000003?api-version=2020-03-01-preview response: body: string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": - \"53f6877a-ce53-44ef-815d-ea70d51c104e\",\r\n \"provisioningState\": \"Succeeded\",\r\n + \"a96d0a14-17e0-4f71-b401-a16eb015d7ca\",\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": - 3000,\r\n \"lastSkuUpdate\": \"Mon, 17 Aug 2020 08:31:34 GMT\"\r\n },\r\n + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:18:35 GMT\"\r\n },\r\n \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n - \ \"quotaNextResetTime\": \"Mon, 17 Aug 2020 14:00:00 GMT\",\r\n \"dataIngestionStatus\": + \ \"quotaNextResetTime\": \"Thu, 03 Sep 2020 05:00:00 GMT\",\r\n \"dataIngestionStatus\": \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": - \"Mon, 17 Aug 2020 08:31:34 GMT\",\r\n \"modifiedDate\": \"Mon, 17 Aug - 2020 08:31:35 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000003\",\r\n + \"Wed, 02 Sep 2020 06:18:35 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:18:36 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000003\",\r\n \ \"name\": \"clitest000003\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n \ \"location\": \"westus\"\r\n}" headers: @@ -327,7 +327,7 @@ interactions: content-type: - application/json date: - - Mon, 17 Aug 2020 08:32:06 GMT + - Wed, 02 Sep 2020 06:19:07 GMT pragma: - no-cache server: @@ -366,26 +366,26 @@ interactions: ParameterSetName: - --app --location --kind -g --application-type User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2018-05-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300eec6-0000-0700-0000-5f3a408a0000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"f163a15d-7bd7-495f-b2a8-6795d462ba2f","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"54f4a5bf-4177-409b-aa93-256d2c1e70bf","ConnectionString":"InstrumentationKey=54f4a5bf-4177-409b-aa93-256d2c1e70bf","Name":"demoApp","CreationDate":"2020-08-17T08:32:10.923788+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"16000d8a-0000-0700-0000-5f4f39630000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"de796031-d22d-44ea-ac20-8b2f2cf20c92","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"0b039a93-fe33-4ba7-974e-ac6a5f67282f","ConnectionString":"InstrumentationKey=0b039a93-fe33-4ba7-974e-ac6a5f67282f","Name":"demoApp","CreationDate":"2020-09-02T06:19:15.7789031+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '975' + - '976' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:13 GMT + - Wed, 02 Sep 2020 06:19:18 GMT expires: - '-1' pragma: @@ -403,7 +403,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1195' + - '1199' x-powered-by: - ASP.NET status: @@ -423,26 +423,26 @@ interactions: ParameterSetName: - --app --query-access --ingestion-access -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2018-05-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300eec6-0000-0700-0000-5f3a408a0000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"f163a15d-7bd7-495f-b2a8-6795d462ba2f","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"54f4a5bf-4177-409b-aa93-256d2c1e70bf","ConnectionString":"InstrumentationKey=54f4a5bf-4177-409b-aa93-256d2c1e70bf","Name":"demoApp","CreationDate":"2020-08-17T08:32:10.923788+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"16000d8a-0000-0700-0000-5f4f39630000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"de796031-d22d-44ea-ac20-8b2f2cf20c92","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"0b039a93-fe33-4ba7-974e-ac6a5f67282f","ConnectionString":"InstrumentationKey=0b039a93-fe33-4ba7-974e-ac6a5f67282f","Name":"demoApp","CreationDate":"2020-09-02T06:19:15.7789031+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '975' + - '976' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:14 GMT + - Wed, 02 Sep 2020 06:19:19 GMT expires: - '-1' pragma: @@ -485,26 +485,26 @@ interactions: ParameterSetName: - --app --query-access --ingestion-access -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2018-05-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300f8c6-0000-0700-0000-5f3a408f0000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"f163a15d-7bd7-495f-b2a8-6795d462ba2f","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"54f4a5bf-4177-409b-aa93-256d2c1e70bf","ConnectionString":"InstrumentationKey=54f4a5bf-4177-409b-aa93-256d2c1e70bf","Name":"demoApp","CreationDate":"2020-08-17T08:32:10.923788+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"Retention":"P90D","IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1600198a-0000-0700-0000-5f4f39680000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"de796031-d22d-44ea-ac20-8b2f2cf20c92","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"0b039a93-fe33-4ba7-974e-ac6a5f67282f","ConnectionString":"InstrumentationKey=0b039a93-fe33-4ba7-974e-ac6a5f67282f","Name":"demoApp","CreationDate":"2020-09-02T06:19:15.7789031+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"Retention":"P90D","IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '994' + - '995' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:16 GMT + - Wed, 02 Sep 2020 06:19:21 GMT expires: - '-1' pragma: @@ -522,7 +522,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1191' + - '1199' x-powered-by: - ASP.NET status: @@ -542,26 +542,26 @@ interactions: ParameterSetName: - --app --workspace --query-access --ingestion-access -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2020-02-02-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300f8c6-0000-0700-0000-5f3a408f0000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"f163a15d-7bd7-495f-b2a8-6795d462ba2f","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"54f4a5bf-4177-409b-aa93-256d2c1e70bf","ConnectionString":"InstrumentationKey=54f4a5bf-4177-409b-aa93-256d2c1e70bf","Name":"demoApp","CreationDate":"2020-08-17T08:32:10.923788+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"Retention":"P90D","IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1600198a-0000-0700-0000-5f4f39680000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"de796031-d22d-44ea-ac20-8b2f2cf20c92","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"0b039a93-fe33-4ba7-974e-ac6a5f67282f","ConnectionString":"InstrumentationKey=0b039a93-fe33-4ba7-974e-ac6a5f67282f","Name":"demoApp","CreationDate":"2020-09-02T06:19:15.7789031+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"Retention":"P90D","IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Enabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '994' + - '995' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:17 GMT + - Wed, 02 Sep 2020 06:19:22 GMT expires: - '-1' pragma: @@ -583,6 +583,160 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - monitor app-insights component update + Connection: + - keep-alive + ParameterSetName: + - --app --workspace --query-access --ingestion-access -g + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.OperationalInsights?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.OperationalInsights","namespace":"Microsoft.OperationalInsights","authorizations":[{"applicationId":"d2a0a418-0aac-4541-82b2-b3142c89da77","roleDefinitionId":"86695298-2eb9-48a7-9ec3-2fdb38b6878b"},{"applicationId":"ca7f3f0b-7d91-482c-8e09-c5d840d0eac5","roleDefinitionId":"5d5a2e56-9835-44aa-93db-d2f19e155438"}],"resourceTypes":[{"resourceType":"workspaces","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"capabilities":"CrossResourceGroupResourceMove, + CrossSubscriptionResourceMove, SupportsTags, SupportsLocation"},{"resourceType":"locations","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"locations/operationStatuses","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2017-04-26-preview","2017-03-15-preview","2017-03-03-preview","2017-01-01-preview","2015-11-01-preview","2015-03-20"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"workspaces/scopedPrivateLinkProxies","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-03-01-preview","2019-08-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-03-01-preview","capabilities":"None"},{"resourceType":"workspaces/query","locations":[],"apiVersions":["2017-10-01"],"capabilities":"None"},{"resourceType":"workspaces/metadata","locations":[],"apiVersions":["2017-10-01"],"capabilities":"None"},{"resourceType":"workspaces/dataSources","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"workspaces/linkedStorageAccounts","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"storageInsightConfigs","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2014-10-10"],"capabilities":"SupportsExtension"},{"resourceType":"workspaces/linkedServices","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview","2015-11-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"linkTargets","locations":["East + US"],"apiVersions":["2020-03-01-preview","2015-03-20"],"capabilities":"None"},{"resourceType":"deletedWorkspaces","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Brazil South","Switzerland North","Switzerland West"],"apiVersions":["2020-08-01","2020-03-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"operations","locations":[],"apiVersions":["2020-08-01","2020-03-01-preview","2015-11-01-preview","2014-11-10"],"defaultApiVersion":"2020-08-01","capabilities":"None"},{"resourceType":"clusters","locations":["East + US","West Europe","Southeast Asia","Australia Southeast","West Central US","Japan + East","UK South","Central India","Canada Central","West US 2","Australia Central","Australia + East","France Central","Korea Central","North Europe","Central US","East Asia","East + US 2","South Central US","North Central US","West US","UK West","South Africa + North","Switzerland North","Switzerland West","Germany West Central","Australia + Central 2","UAE Central","Brazil South"],"apiVersions":["2020-08-01","2020-03-01-preview","2019-08-01-preview"],"defaultApiVersion":"2020-08-01","capabilities":"CrossResourceGroupResourceMove, + CrossSubscriptionResourceMove, SystemAssignedResourceIdentity, SupportsTags, + SupportsLocation"}],"registrationState":"Registered","registrationPolicy":"RegistrationRequired"}' + headers: + cache-control: + - no-cache + content-length: + - '6611' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 06:19:23 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: + - monitor app-insights component update + Connection: + - keep-alive + ParameterSetName: + - --app --workspace --query-access --ingestion-access -g + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002?api-version=2020-08-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": + \"3ce708fd-b3a6-470f-b8c0-1b1e80c49f21\",\r\n \"provisioningState\": \"Succeeded\",\r\n + \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": + 3000,\r\n \"lastSkuUpdate\": \"Wed, 02 Sep 2020 06:17:54 GMT\"\r\n },\r\n + \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n + \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": + true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n + \ \"quotaNextResetTime\": \"Wed, 02 Sep 2020 15:00:00 GMT\",\r\n \"dataIngestionStatus\": + \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n + \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": + \"Wed, 02 Sep 2020 06:17:54 GMT\",\r\n \"modifiedDate\": \"Wed, 02 Sep + 2020 06:17:58 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n + \ \"name\": \"clitest000002\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n + \ \"location\": \"westus\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1178' + content-type: + - application/json + date: + - Wed, 02 Sep 2020 06:19:24 GMT + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-powered-by: + - ASP.NET + - ASP.NET + status: + code: 200 + message: OK - request: body: '{"location": "westus", "tags": {}, "kind": "web", "properties": {"Application_Type": "web", "Flow_Type": "Bluefield", "Request_Source": "rest", "WorkspaceResourceId": @@ -605,26 +759,26 @@ interactions: ParameterSetName: - --app --workspace --query-access --ingestion-access -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/demoApp?api-version=2020-02-02-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1300fec6-0000-0700-0000-5f3a40930000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"f163a15d-7bd7-495f-b2a8-6795d462ba2f","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"54f4a5bf-4177-409b-aa93-256d2c1e70bf","ConnectionString":"InstrumentationKey=54f4a5bf-4177-409b-aa93-256d2c1e70bf","Name":"demoApp","CreationDate":"2020-08-17T08:32:10.923788+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"Retention":"P90D","WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002","LaMigrationDate":"2020-08-17T08:32:19.737998+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Disabled","publicNetworkAccessForQuery":"Disabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/demoApp","name":"demoApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"1600208a-0000-0700-0000-5f4f396f0000\"","properties":{"Ver":"v2","ApplicationId":"demoApp","AppId":"de796031-d22d-44ea-ac20-8b2f2cf20c92","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"0b039a93-fe33-4ba7-974e-ac6a5f67282f","ConnectionString":"InstrumentationKey=0b039a93-fe33-4ba7-974e-ac6a5f67282f","Name":"demoApp","CreationDate":"2020-09-02T06:19:15.7789031+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"Retention":"P90D","WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000002","LaMigrationDate":"2020-09-02T06:19:27.1615352+00:00","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Disabled","publicNetworkAccessForQuery":"Disabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '1281' + - '1283' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:20 GMT + - Wed, 02 Sep 2020 06:19:27 GMT expires: - '-1' pragma: @@ -642,7 +796,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1192' + - '1199' x-powered-by: - ASP.NET status: @@ -670,26 +824,26 @@ interactions: ParameterSetName: - --app --workspace --location --query-access --ingestion-access -g --application-type User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/testApp?api-version=2020-02-02-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"13000bc7-0000-0700-0000-5f3a40980000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"b9ffe4a9-a035-4d95-8e69-0735328e0ff5","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"b1e2e7b1-e34f-408a-9ed4-0b9c832f75dc","ConnectionString":"InstrumentationKey=b1e2e7b1-e34f-408a-9ed4-0b9c832f75dc","Name":"testApp","CreationDate":"2020-08-17T08:32:23.7200892+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Disabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"16002d8a-0000-0700-0000-5f4f39770000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"19977ef6-2818-40a4-a515-bca647cc7af0","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"4ffab92a-226d-4650-9e5d-702d9cda834c","ConnectionString":"InstrumentationKey=4ffab92a-226d-4650-9e5d-702d9cda834c","Name":"testApp","CreationDate":"2020-09-02T06:19:34.991923+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Disabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '1209' + - '1208' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:25 GMT + - Wed, 02 Sep 2020 06:19:36 GMT expires: - '-1' pragma: @@ -707,7 +861,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1191' + - '1198' x-powered-by: - ASP.NET status: @@ -727,26 +881,26 @@ interactions: ParameterSetName: - --app --kind -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/testApp?api-version=2018-05-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"13000bc7-0000-0700-0000-5f3a40980000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"b9ffe4a9-a035-4d95-8e69-0735328e0ff5","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"b1e2e7b1-e34f-408a-9ed4-0b9c832f75dc","ConnectionString":"InstrumentationKey=b1e2e7b1-e34f-408a-9ed4-0b9c832f75dc","Name":"testApp","CreationDate":"2020-08-17T08:32:23.7200892+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Disabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"web","etag":"\"16002d8a-0000-0700-0000-5f4f39770000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"19977ef6-2818-40a4-a515-bca647cc7af0","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"4ffab92a-226d-4650-9e5d-702d9cda834c","ConnectionString":"InstrumentationKey=4ffab92a-226d-4650-9e5d-702d9cda834c","Name":"testApp","CreationDate":"2020-09-02T06:19:34.991923+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"LogAnalytics","publicNetworkAccessForIngestion":"Disabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '1209' + - '1208' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:27 GMT + - Wed, 02 Sep 2020 06:19:38 GMT expires: - '-1' pragma: @@ -789,26 +943,26 @@ interactions: ParameterSetName: - --app --kind -g User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-applicationinsights/0.2.0 - Azure-SDK-For-Python AZURECLI/2.10.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.10 msrest_azure/0.6.2 + azure-mgmt-applicationinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Insights/components/testApp?api-version=2018-05-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"ios","etag":"\"130015c7-0000-0700-0000-5f3a409c0000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"b9ffe4a9-a035-4d95-8e69-0735328e0ff5","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"b1e2e7b1-e34f-408a-9ed4-0b9c832f75dc","ConnectionString":"InstrumentationKey=b1e2e7b1-e34f-408a-9ed4-0b9c832f75dc","Name":"testApp","CreationDate":"2020-08-17T08:32:23.7200892+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"Retention":"P90D","WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Disabled","publicNetworkAccessForQuery":"Enabled"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/components/testApp","name":"testApp","type":"microsoft.insights/components","location":"westus","tags":{},"kind":"ios","etag":"\"1600358a-0000-0700-0000-5f4f397b0000\"","properties":{"Ver":"v2","ApplicationId":"testApp","AppId":"19977ef6-2818-40a4-a515-bca647cc7af0","Application_Type":"web","Flow_Type":"Bluefield","Request_Source":"rest","InstrumentationKey":"4ffab92a-226d-4650-9e5d-702d9cda834c","ConnectionString":"InstrumentationKey=4ffab92a-226d-4650-9e5d-702d9cda834c","Name":"testApp","CreationDate":"2020-09-02T06:19:34.991923+00:00","TenantId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","provisioningState":"Succeeded","SamplingPercentage":null,"RetentionInDays":90,"Retention":"P90D","WorkspaceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.OperationalInsights/workspaces/clitest000003","IngestionMode":"ApplicationInsights","publicNetworkAccessForIngestion":"Disabled","publicNetworkAccessForQuery":"Enabled"}}' headers: access-control-expose-headers: - Request-Context cache-control: - no-cache content-length: - - '1235' + - '1234' content-type: - application/json; charset=utf-8 date: - - Mon, 17 Aug 2020 08:32:31 GMT + - Wed, 02 Sep 2020 06:19:43 GMT expires: - '-1' pragma: @@ -826,7 +980,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1194' + - '1199' x-powered-by: - ASP.NET status: diff --git a/src/application-insights/setup.py b/src/application-insights/setup.py index 15a8b302b00..692bc0ee3d3 100644 --- a/src/application-insights/setup.py +++ b/src/application-insights/setup.py @@ -8,7 +8,7 @@ from codecs import open from setuptools import setup, find_packages -VERSION = "0.1.9" +VERSION = "0.1.11" CLASSIFIERS = [ 'Development Status :: 4 - Beta', diff --git a/src/azure-firewall/HISTORY.rst b/src/azure-firewall/HISTORY.rst index 3d0dd029e25..dc11574748e 100644 --- a/src/azure-firewall/HISTORY.rst +++ b/src/azure-firewall/HISTORY.rst @@ -2,6 +2,16 @@ Release History =============== +0.6.2 +++++++ +* `az network firewall create`: improve documentation of application and network rules options +0.6.1 +++++++ +* `az network firewall create`: make Network.DNS.EnableProxy option value lowercase +0.6.0 +++++++ +* [Breaking Change] `az network firewall threat-intel-allowlist`: rename whitelist to allowlist + 0.5.1 ++++++ * `az network firewall create/update`: support new `--allow-active-ftp` argument. diff --git a/src/azure-firewall/azext_firewall/_help.py b/src/azure-firewall/azext_firewall/_help.py index 6f7e8ee2c69..fd85b748a38 100644 --- a/src/azure-firewall/azext_firewall/_help.py +++ b/src/azure-firewall/azext_firewall/_help.py @@ -85,34 +85,34 @@ """ # endregion -# region AzureFirewall Threat Intelligence Whitelist -helps['network firewall threat-intel-whitelist'] = """ +# region AzureFirewall Threat Intelligence allowlist +helps['network firewall threat-intel-allowlist'] = """ type: group - short-summary: Manage and configure Azure Firewall Threat Intelligence Whitelist. + short-summary: Manage and configure Azure Firewall Threat Intelligence Allow List. """ -helps['network firewall threat-intel-whitelist create'] = """ +helps['network firewall threat-intel-allowlist create'] = """ type: command - short-summary: Create an Azure Firewall Threat Intelligence Whitelist. + short-summary: Create an Azure Firewall Threat Intelligence Allow List. examples: - - name: Create a threat intelligence whitelist + - name: Create a threat intelligence allow list text: | - az network firewall threat-intel-whitelist create -g MyResourceGroup -n MyFirewall --ip-addresses 10.0.0.0 10.0.0.1 --fqdns *.microsoft.com www.bing.com *google.com + az network firewall threat-intel-allowlist create -g MyResourceGroup -n MyFirewall --ip-addresses 10.0.0.0 10.0.0.1 --fqdns *.microsoft.com www.bing.com *google.com """ -helps['network firewall threat-intel-whitelist delete'] = """ +helps['network firewall threat-intel-allowlist delete'] = """ type: command - short-summary: Delete an Azure Firewall Threat Intelligence Whitelist. + short-summary: Delete an Azure Firewall Threat Intelligence Allow List. """ -helps['network firewall threat-intel-whitelist update'] = """ +helps['network firewall threat-intel-allowlist update'] = """ type: command - short-summary: Update Azure Firewall Threat Intelligence Whitelist. + short-summary: Update Azure Firewall Threat Intelligence Allow List. """ -helps['network firewall threat-intel-whitelist show'] = """ +helps['network firewall threat-intel-allowlist show'] = """ type: command - short-summary: Get the details of an Azure Firewall Threat Intelligence Whitelist. + short-summary: Get the details of an Azure Firewall Threat Intelligence Allow List. """ # endregion diff --git a/src/azure-firewall/azext_firewall/_params.py b/src/azure-firewall/azext_firewall/_params.py index 5452aa5c818..c23653b0349 100644 --- a/src/azure-firewall/azext_firewall/_params.py +++ b/src/azure-firewall/azext_firewall/_params.py @@ -17,7 +17,7 @@ from ._validators import ( get_public_ip_validator, get_subnet_validator, validate_application_rule_protocols, validate_firewall_policy, validate_rule_group_collection, process_private_ranges, - process_threat_intel_whitelist_ip_addresses, process_threat_intel_whitelist_fqdns, + process_threat_intel_allowlist_ip_addresses, process_threat_intel_allowlist_fqdns, validate_virtual_hub, get_management_subnet_validator, get_management_public_ip_validator, validate_ip_groups) @@ -75,9 +75,9 @@ def load_arguments(self, _): c.argument('enable_dns_proxy', arg_type=get_three_state_flag(), help='Enable DNS Proxy') c.argument('require_dns_proxy_for_network_rules', arg_type=get_three_state_flag(), help='Requires DNS Proxy functionality for FQDNs within Network Rules') - with self.argument_context('network firewall threat-intel-whitelist') as c: - c.argument('ip_addresses', nargs='+', validator=process_threat_intel_whitelist_ip_addresses, help='Space-separated list of IPv4 addresses.') - c.argument('fqdns', nargs='+', validator=process_threat_intel_whitelist_fqdns, help='Space-separated list of FQDNs.') + with self.argument_context('network firewall threat-intel-allowlist') as c: + c.argument('ip_addresses', nargs='+', validator=process_threat_intel_allowlist_ip_addresses, help='Space-separated list of IPv4 addresses.') + c.argument('fqdns', nargs='+', validator=process_threat_intel_allowlist_fqdns, help='Space-separated list of FQDNs.') for scope in ['network-rule', 'nat-rule']: with self.argument_context('network firewall {}'.format(scope)) as c: @@ -106,7 +106,7 @@ def load_arguments(self, _): with self.argument_context('network firewall {} create'.format(item['name']), arg_group='Collection') as c: c.argument('collection_name', collection_name_type, help='Name of the collection to create the rule in. Will create the collection if it does not exist.') - c.argument('priority', help='Priority of the rule collection from 100 (high) to 65000 (low).', type=int) + c.argument('priority', help='Priority of the rule collection from 100 (high) to 65000 (low). Supply only if you want to create the collection.', type=int) with self.argument_context('network firewall {} collection'.format(item['name'])) as c: c.argument('item_name', collection_name_type) @@ -118,10 +118,10 @@ def load_arguments(self, _): for scope in ['network-rule', 'application-rule']: with self.argument_context('network firewall {}'.format(scope), arg_group='Collection') as c: - c.argument('action', arg_type=get_enum_type(AzureFirewallRCActionType), help='The action to apply for the rule collection.') + c.argument('action', arg_type=get_enum_type(AzureFirewallRCActionType), help='The action to apply for the rule collection. Supply only if you want to create the collection.') with self.argument_context('network firewall nat-rule', arg_group='Collection') as c: - c.argument('action', arg_type=get_enum_type(AzureFirewallNatRCActionType), help='The action to apply for the rule collection.') + c.argument('action', arg_type=get_enum_type(AzureFirewallNatRCActionType), help='The action to apply for the rule collection. Supply only if you want to create the collection.') with self.argument_context('network firewall ip-config') as c: c.argument('item_name', options_list=['--name', '-n'], help='Name of the IP configuration.', id_part='child_name_2') @@ -159,7 +159,7 @@ def load_arguments(self, _): c.argument('base_policy', validator=validate_firewall_policy, help='The name or ID of parent firewall policy from which rules are inherited.') c.argument('threat_intel_mode', arg_type=get_enum_type(['Alert', 'Deny', 'Off']), help='The operation mode for Threat Intelligence.') - with self.argument_context('network firewall policy', arg_group='Threat Intel Whitelist') as c: + with self.argument_context('network firewall policy', arg_group='Threat Intel Allowlist') as c: c.argument('ip_addresses', nargs='+', help='Space-separated list of IPv4 addresses.') c.argument('fqdns', nargs='+', help='Space-separated list of FQDNs.') diff --git a/src/azure-firewall/azext_firewall/_validators.py b/src/azure-firewall/azext_firewall/_validators.py index 2805aefb11e..da05e2035f8 100644 --- a/src/azure-firewall/azext_firewall/_validators.py +++ b/src/azure-firewall/azext_firewall/_validators.py @@ -234,11 +234,11 @@ def process_private_ranges(namespace): namespace.private_ranges = ', '.join(namespace.private_ranges) -def process_threat_intel_whitelist_ip_addresses(namespace): +def process_threat_intel_allowlist_ip_addresses(namespace): if namespace.ip_addresses is not None: namespace.ip_addresses = ', '.join(namespace.ip_addresses) -def process_threat_intel_whitelist_fqdns(namespace): +def process_threat_intel_allowlist_fqdns(namespace): if namespace.fqdns is not None: namespace.fqdns = ', '.join(namespace.fqdns) diff --git a/src/azure-firewall/azext_firewall/commands.py b/src/azure-firewall/azext_firewall/commands.py index 20ccbd528e1..15a83e8ae49 100644 --- a/src/azure-firewall/azext_firewall/commands.py +++ b/src/azure-firewall/azext_firewall/commands.py @@ -60,11 +60,11 @@ def load_command_table(self, _): g.show_command('show') g.generic_update_command('update', custom_func_name='update_azure_firewall') - with self.command_group('network firewall threat-intel-whitelist', network_firewall_sdk, is_preview=True, min_api='2019-09-01') as g: - g.custom_command('create', 'create_azure_firewall_threat_intel_whitelist') - g.custom_command('delete', 'delete_azure_firewall_threat_intel_whitelist') - g.custom_show_command('show', 'show_azure_firewall_threat_intel_whitelist') - g.generic_update_command('update', custom_func_name='update_azure_firewall_threat_intel_whitelist') + with self.command_group('network firewall threat-intel-allowlist', network_firewall_sdk, is_preview=True, min_api='2019-09-01') as g: + g.custom_command('create', 'create_azure_firewall_threat_intel_allowlist') + g.custom_command('delete', 'delete_azure_firewall_threat_intel_allowlist') + g.custom_show_command('show', 'show_azure_firewall_threat_intel_allowlist') + g.generic_update_command('update', custom_func_name='update_azure_firewall_threat_intel_allowlist') with self.command_group('network firewall ip-config', network_util) as g: g.custom_command('create', 'create_af_ip_configuration') diff --git a/src/azure-firewall/azext_firewall/custom.py b/src/azure-firewall/azext_firewall/custom.py index c6c5a502969..7ea19b397ab 100644 --- a/src/azure-firewall/azext_firewall/custom.py +++ b/src/azure-firewall/azext_firewall/custom.py @@ -106,10 +106,13 @@ def create_azure_firewall(cmd, resource_group_name, azure_firewall_name, locatio if firewall_policy is None: if firewall.additional_properties is None: firewall.additional_properties = {} - firewall.additional_properties['Network.DNS.EnableProxy'] = \ - enable_dns_proxy if enable_dns_proxy is not None else False - firewall.additional_properties['Network.DNS.RequireProxyForNetworkRules'] = \ - require_dns_proxy_for_network_rules if require_dns_proxy_for_network_rules is not None else True + if enable_dns_proxy is not None: + # service side requires lowercase + firewall.additional_properties['Network.DNS.EnableProxy'] = str(enable_dns_proxy).lower() + if require_dns_proxy_for_network_rules: + # service side requires lowercase + firewall.additional_properties['Network.DNS.RequireProxyForNetworkRules'] = \ + str(require_dns_proxy_for_network_rules).lower() if dns_servers is not None: firewall.additional_properties['Network.DNS.Servers'] = ','.join(dns_servers or '') @@ -155,9 +158,12 @@ def update_azure_firewall(cmd, instance, tags=None, zones=None, private_ranges=N instance.virtual_hub = SubResource(id=virtual_hub) if enable_dns_proxy is not None: - instance.additional_properties['Network.DNS.EnableProxy'] = enable_dns_proxy + # service side requires lowercase + instance.additional_properties['Network.DNS.EnableProxy'] = str(enable_dns_proxy).lower() if require_dns_proxy_for_network_rules is not None: - instance.additional_properties['Network.DNS.RequireProxyForNetworkRules'] = require_dns_proxy_for_network_rules + # service side requires lowercase + instance.additional_properties['Network.DNS.RequireProxyForNetworkRules'] = \ + str(require_dns_proxy_for_network_rules).lower() if dns_servers is not None: instance.additional_properties['Network.DNS.Servers'] = ','.join(dns_servers or '') if threat_intel_mode is not None: @@ -444,7 +450,7 @@ def create_af_application_rule(cmd, resource_group_name, azure_firewall_name, co AzureFirewallApplicationRule, item_name, params, collection_params) -def create_azure_firewall_threat_intel_whitelist(cmd, resource_group_name, azure_firewall_name, +def create_azure_firewall_threat_intel_allowlist(cmd, resource_group_name, azure_firewall_name, ip_addresses=None, fqdns=None): client = network_client_factory(cmd.cli_ctx).azure_firewalls firewall = client.get(resource_group_name=resource_group_name, azure_firewall_name=azure_firewall_name) @@ -459,7 +465,7 @@ def create_azure_firewall_threat_intel_whitelist(cmd, resource_group_name, azure return client.create_or_update(resource_group_name, azure_firewall_name, firewall) -def update_azure_firewall_threat_intel_whitelist(instance, ip_addresses=None, fqdns=None): +def update_azure_firewall_threat_intel_allowlist(instance, ip_addresses=None, fqdns=None): if ip_addresses is not None: if instance.additional_properties is None: instance.additional_properties = {} @@ -471,7 +477,7 @@ def update_azure_firewall_threat_intel_whitelist(instance, ip_addresses=None, fq return instance -def show_azure_firewall_threat_intel_whitelist(cmd, resource_group_name, azure_firewall_name): +def show_azure_firewall_threat_intel_allowlist(cmd, resource_group_name, azure_firewall_name): client = network_client_factory(cmd.cli_ctx).azure_firewalls firewall = client.get(resource_group_name=resource_group_name, azure_firewall_name=azure_firewall_name) if firewall.additional_properties is None: @@ -479,7 +485,7 @@ def show_azure_firewall_threat_intel_whitelist(cmd, resource_group_name, azure_f return firewall.additional_properties -def delete_azure_firewall_threat_intel_whitelist(cmd, resource_group_name, azure_firewall_name): +def delete_azure_firewall_threat_intel_allowlist(cmd, resource_group_name, azure_firewall_name): client = network_client_factory(cmd.cli_ctx).azure_firewalls firewall = client.get(resource_group_name=resource_group_name, azure_firewall_name=azure_firewall_name) if firewall.additional_properties is not None: @@ -502,23 +508,23 @@ def create_azure_firewall_policies(cmd, resource_group_name, firewall_policy_nam 'SubResource', 'FirewallPolicyThreatIntelWhitelist', 'DnsSettings') - fire_wall_policy = FirewallPolicy(base_policy=SubResource(id=base_policy) if base_policy is not None else None, - threat_intel_mode=threat_intel_mode, - location=location, - tags=tags) + firewall_policy = FirewallPolicy(base_policy=SubResource(id=base_policy) if base_policy is not None else None, + threat_intel_mode=threat_intel_mode, + location=location, + tags=tags) - threat_intel_whitelist = FirewallPolicyThreatIntelWhitelist(ip_addresses=ip_addresses, + threat_intel_allowlist = FirewallPolicyThreatIntelWhitelist(ip_addresses=ip_addresses, fqdns=fqdns) if ip_addresses and fqdns else None - fire_wall_policy.threat_intel_whitelist = threat_intel_whitelist + firewall_policy.threat_intel_whitelist = threat_intel_allowlist if cmd.supported_api_version(min_api='2020-05-01'): if any([dns_servers, enable_dns_proxy, require_dns_proxy_for_network_rules]): dns_settings = DnsSettings(servers=dns_servers, enable_proxy=enable_dns_proxy or False, require_proxy_for_network_rules=require_dns_proxy_for_network_rules or True) - fire_wall_policy.dns_settings = dns_settings + firewall_policy.dns_settings = dns_settings - return client.create_or_update(resource_group_name, firewall_policy_name, fire_wall_policy) + return client.create_or_update(resource_group_name, firewall_policy_name, firewall_policy) def update_azure_firewall_policies(cmd, diff --git a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_ip_config.yaml b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_ip_config.yaml index 50e9a2a615f..9b1b23d5b42 100644 --- a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_ip_config.yaml +++ b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_ip_config.yaml @@ -13,15 +13,15 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_ip_config000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001","name":"cli_test_azure_firewall_ip_config000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-07T06:38:46Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001","name":"cli_test_azure_firewall_ip_config000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-21T03:11:55Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:38:49 GMT + - Mon, 21 Sep 2020 03:11:58 GMT expires: - '-1' pragma: @@ -45,8 +45,7 @@ interactions: code: 200 message: OK - request: - body: '{"location": "westus", "properties": {"additionalProperties": {"Network.DNS.EnableProxy": - "False", "Network.DNS.RequireProxyForNetworkRules": "True"}}}' + body: '{"location": "westus", "properties": {"additionalProperties": {}}}' headers: Accept: - application/json @@ -57,43 +56,42 @@ interactions: Connection: - keep-alive Content-Length: - - '151' + - '66' Content-Type: - application/json; charset=utf-8 ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"02744c37-e2ce-4f6b-80bd-60a40dff4cc0\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"a72b7435-bd2a-456e-be79-cb92b9ed0fa2\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\":\ + \ [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/82e3b2ce-6591-4867-a918-94010dcc9020?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/1f106829-207c-492a-94cb-cf645ce2b792?api-version=2020-05-01 cache-control: - no-cache content-length: - - '796' + - '690' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:38:53 GMT + - Mon, 21 Sep 2020 03:12:05 GMT expires: - '-1' pragma: @@ -106,9 +104,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 6254437e-7a08-4559-92ff-ab046d88a5d7 + - a13ce835-c834-43a2-a625-e133d0122ebf x-ms-ratelimit-remaining-subscription-writes: - - '1188' + - '1198' status: code: 201 message: Created @@ -126,10 +124,10 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/82e3b2ce-6591-4867-a918-94010dcc9020?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/1f106829-207c-492a-94cb-cf645ce2b792?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -141,7 +139,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:04 GMT + - Mon, 21 Sep 2020 03:12:16 GMT expires: - '-1' pragma: @@ -158,7 +156,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 0525d0c8-9671-478a-a2ad-ba978f5aa498 + - 17a63f99-e5ad-4fd8-a57c-2c0ba0aaeccf status: code: 200 message: OK @@ -176,33 +174,32 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"b5834708-c669-4b36-aca3-e7482909ee23\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"545f5bec-304f-4c4d-9137-84bbd42c44e6\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\":\ + \ [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: cache-control: - no-cache content-length: - - '797' + - '691' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:05 GMT + - Mon, 21 Sep 2020 03:12:16 GMT etag: - - W/"b5834708-c669-4b36-aca3-e7482909ee23" + - W/"545f5bec-304f-4c4d-9137-84bbd42c44e6" expires: - '-1' pragma: @@ -219,7 +216,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 37c0fd6d-70ae-4f19-ba8c-400d8111db64 + - 0fd84ca7-f7e2-46d1-9d0c-700b037263f4 status: code: 200 message: OK @@ -237,15 +234,15 @@ interactions: ParameterSetName: - -g -n --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_ip_config000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001","name":"cli_test_azure_firewall_ip_config000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-07T06:38:46Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001","name":"cli_test_azure_firewall_ip_config000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-21T03:11:55Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -254,7 +251,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:06 GMT + - Mon, 21 Sep 2020 03:12:17 GMT expires: - '-1' pragma: @@ -287,26 +284,27 @@ interactions: ParameterSetName: - -g -n --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-06-01 response: body: - string: "{\r\n \"name\": \"pubip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\",\r\n - \ \"etag\": \"W/\\\"96396a15-99dc-4b9a-8654-747256e318c2\\\"\",\r\n \"location\": - \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n - \ \"resourceGuid\": \"bf3a04aa-d39c-4d1e-ace1-33cc9afbd09f\",\r\n \"publicIPAddressVersion\": - \"IPv4\",\r\n \"publicIPAllocationMethod\": \"Static\",\r\n \"idleTimeoutInMinutes\": - 4,\r\n \"ipTags\": []\r\n },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n - \ \"sku\": {\r\n \"name\": \"Standard\"\r\n }\r\n}" + string: "{\r\n \"name\": \"pubip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + ,\r\n \"etag\": \"W/\\\"f4e9d32e-5f8b-40f7-a2cc-ba29e5326a97\\\"\",\r\n \ + \ \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\"\ + : \"Updating\",\r\n \"resourceGuid\": \"e36e367a-10e2-44cf-b7ea-cda66524455c\"\ + ,\r\n \"publicIPAddressVersion\": \"IPv4\",\r\n \"publicIPAllocationMethod\"\ + : \"Static\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"ipTags\": []\r\n\ + \ },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"sku\"\ + : {\r\n \"name\": \"Standard\"\r\n }\r\n}" headers: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/d6869849-455d-4f89-87a3-1cbb67c34971?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/2035b959-cb38-48f4-bbd0-f9998d9ce6f1?api-version=2020-06-01 cache-control: - no-cache content-length: @@ -314,7 +312,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:11 GMT + - Mon, 21 Sep 2020 03:12:25 GMT expires: - '-1' pragma: @@ -327,9 +325,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 8ec0beed-b5b7-44b7-b671-70e69d130b3d + - 4035b161-49c2-4afb-a863-2b8c67adaceb x-ms-ratelimit-remaining-subscription-writes: - - '1190' + - '1198' status: code: 201 message: Created @@ -347,10 +345,10 @@ interactions: ParameterSetName: - -g -n --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/d6869849-455d-4f89-87a3-1cbb67c34971?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/2035b959-cb38-48f4-bbd0-f9998d9ce6f1?api-version=2020-06-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -362,7 +360,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:13 GMT + - Mon, 21 Sep 2020 03:12:27 GMT expires: - '-1' pragma: @@ -379,7 +377,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - c44ff1af-4e17-48cd-9e4b-989de17e970b + - 33b16203-099a-4adb-9c5c-94e4e05b453a status: code: 200 message: OK @@ -397,31 +395,31 @@ interactions: ParameterSetName: - -g -n --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-06-01 response: body: - string: "{\r\n \"name\": \"pubip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\",\r\n - \ \"etag\": \"W/\\\"35ac838e-9daf-41c3-bebc-7f06b809ad65\\\"\",\r\n \"location\": - \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"resourceGuid\": \"bf3a04aa-d39c-4d1e-ace1-33cc9afbd09f\",\r\n \"ipAddress\": - \"13.91.195.184\",\r\n \"publicIPAddressVersion\": \"IPv4\",\r\n \"publicIPAllocationMethod\": - \"Static\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"ipTags\": []\r\n - \ },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"sku\": - {\r\n \"name\": \"Standard\"\r\n }\r\n}" + string: "{\r\n \"name\": \"pubip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + ,\r\n \"etag\": \"W/\\\"2d6ebc2c-ac07-44bc-b510-81be1d9b652b\\\"\",\r\n \ + \ \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\"\ + : \"Succeeded\",\r\n \"resourceGuid\": \"e36e367a-10e2-44cf-b7ea-cda66524455c\"\ + ,\r\n \"ipAddress\": \"40.81.3.45\",\r\n \"publicIPAddressVersion\"\ + : \"IPv4\",\r\n \"publicIPAllocationMethod\": \"Static\",\r\n \"idleTimeoutInMinutes\"\ + : 4,\r\n \"ipTags\": []\r\n },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\"\ + ,\r\n \"sku\": {\r\n \"name\": \"Standard\"\r\n }\r\n}" headers: cache-control: - no-cache content-length: - - '696' + - '693' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:13 GMT + - Mon, 21 Sep 2020 03:12:28 GMT etag: - - W/"35ac838e-9daf-41c3-bebc-7f06b809ad65" + - W/"2d6ebc2c-ac07-44bc-b510-81be1d9b652b" expires: - '-1' pragma: @@ -438,7 +436,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 6de52948-4766-4800-8943-bfd61cae8e0f + - 92f07c60-f285-47ce-b24b-b0ec5c90292c status: code: 200 message: OK @@ -456,15 +454,15 @@ interactions: ParameterSetName: - -g -n --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_ip_config000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001","name":"cli_test_azure_firewall_ip_config000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-07T06:38:46Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001","name":"cli_test_azure_firewall_ip_config000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-21T03:11:55Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -473,7 +471,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:14 GMT + - Mon, 21 Sep 2020 03:12:28 GMT expires: - '-1' pragma: @@ -506,26 +504,27 @@ interactions: ParameterSetName: - -g -n --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2?api-version=2020-06-01 response: body: - string: "{\r\n \"name\": \"pubip2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\",\r\n - \ \"etag\": \"W/\\\"dc4d32a6-0b2d-4209-b036-45b6b66bc25e\\\"\",\r\n \"location\": - \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n - \ \"resourceGuid\": \"e61d1cc3-0508-429f-90b8-d9ebd0b39026\",\r\n \"publicIPAddressVersion\": - \"IPv4\",\r\n \"publicIPAllocationMethod\": \"Static\",\r\n \"idleTimeoutInMinutes\": - 4,\r\n \"ipTags\": []\r\n },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n - \ \"sku\": {\r\n \"name\": \"Standard\"\r\n }\r\n}" + string: "{\r\n \"name\": \"pubip2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\"\ + ,\r\n \"etag\": \"W/\\\"f5c5175f-1491-40c4-9b2d-5f663229df70\\\"\",\r\n \ + \ \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\"\ + : \"Updating\",\r\n \"resourceGuid\": \"1eaa1af9-e943-48e7-8599-255dfd28de43\"\ + ,\r\n \"publicIPAddressVersion\": \"IPv4\",\r\n \"publicIPAllocationMethod\"\ + : \"Static\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"ipTags\": []\r\n\ + \ },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"sku\"\ + : {\r\n \"name\": \"Standard\"\r\n }\r\n}" headers: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/48e57f5f-2d7e-446e-b1a8-c55d183acead?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/e6b9988d-c213-4dfb-86ee-9f3307f1fd71?api-version=2020-06-01 cache-control: - no-cache content-length: @@ -533,7 +532,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:17 GMT + - Mon, 21 Sep 2020 03:12:36 GMT expires: - '-1' pragma: @@ -546,9 +545,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 219ed550-1597-4b2e-b8b7-6a9fc027d962 + - 37641bef-6a8d-4962-b22f-17e1ef93613e x-ms-ratelimit-remaining-subscription-writes: - - '1183' + - '1199' status: code: 201 message: Created @@ -566,10 +565,10 @@ interactions: ParameterSetName: - -g -n --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/48e57f5f-2d7e-446e-b1a8-c55d183acead?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/e6b9988d-c213-4dfb-86ee-9f3307f1fd71?api-version=2020-06-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -581,7 +580,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:18 GMT + - Mon, 21 Sep 2020 03:12:39 GMT expires: - '-1' pragma: @@ -598,7 +597,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 8bb45fcf-509a-4a03-847a-0f72c3317d2e + - 236be0a1-80b1-49f3-9550-a9ff03948df7 status: code: 200 message: OK @@ -616,20 +615,20 @@ interactions: ParameterSetName: - -g -n --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2?api-version=2020-06-01 response: body: - string: "{\r\n \"name\": \"pubip2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\",\r\n - \ \"etag\": \"W/\\\"6547eb4d-fb9e-4413-93c8-bd8f1090d752\\\"\",\r\n \"location\": - \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"resourceGuid\": \"e61d1cc3-0508-429f-90b8-d9ebd0b39026\",\r\n \"ipAddress\": - \"40.81.2.67\",\r\n \"publicIPAddressVersion\": \"IPv4\",\r\n \"publicIPAllocationMethod\": - \"Static\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"ipTags\": []\r\n - \ },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"sku\": - {\r\n \"name\": \"Standard\"\r\n }\r\n}" + string: "{\r\n \"name\": \"pubip2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\"\ + ,\r\n \"etag\": \"W/\\\"1405411f-ed74-4ad3-9b62-ded3f9347b80\\\"\",\r\n \ + \ \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\"\ + : \"Succeeded\",\r\n \"resourceGuid\": \"1eaa1af9-e943-48e7-8599-255dfd28de43\"\ + ,\r\n \"ipAddress\": \"40.81.3.62\",\r\n \"publicIPAddressVersion\"\ + : \"IPv4\",\r\n \"publicIPAllocationMethod\": \"Static\",\r\n \"idleTimeoutInMinutes\"\ + : 4,\r\n \"ipTags\": []\r\n },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\"\ + ,\r\n \"sku\": {\r\n \"name\": \"Standard\"\r\n }\r\n}" headers: cache-control: - no-cache @@ -638,9 +637,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:18 GMT + - Mon, 21 Sep 2020 03:12:39 GMT etag: - - W/"6547eb4d-fb9e-4413-93c8-bd8f1090d752" + - W/"1405411f-ed74-4ad3-9b62-ded3f9347b80" expires: - '-1' pragma: @@ -657,7 +656,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 610ea3ee-fb5d-43d5-9581-d86b97abfe68 + - f457d35c-629c-4159-bb06-92d03c9cb394 status: code: 200 message: OK @@ -675,15 +674,15 @@ interactions: ParameterSetName: - -g -n --subnet-name --address-prefixes --subnet-prefixes User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_ip_config000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001","name":"cli_test_azure_firewall_ip_config000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-07T06:38:46Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001","name":"cli_test_azure_firewall_ip_config000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-21T03:11:55Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -692,7 +691,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:19 GMT + - Mon, 21 Sep 2020 03:12:39 GMT expires: - '-1' pragma: @@ -726,43 +725,44 @@ interactions: ParameterSetName: - -g -n --subnet-name --address-prefixes --subnet-prefixes User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-06-01 response: body: - string: "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n - \ \"etag\": \"W/\\\"07075c8f-b2a6-48b1-b140-beee005a7247\\\"\",\r\n \"type\": - \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus\",\r\n - \ \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n - \ \"resourceGuid\": \"3956b0d7-c0cf-4bc7-8864-04e19d2fc411\",\r\n \"addressSpace\": - {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n - \ },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": []\r\n },\r\n - \ \"subnets\": [\r\n {\r\n \"name\": \"AzureFirewallSubnet\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\",\r\n - \ \"etag\": \"W/\\\"07075c8f-b2a6-48b1-b140-beee005a7247\\\"\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n - \ \"addressPrefix\": \"10.0.0.0/24\",\r\n \"delegations\": - [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \"privateLinkServiceNetworkPolicies\": - \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n - \ }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": - false,\r\n \"enableVmProtection\": false\r\n }\r\n}" + string: "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet\"\ + ,\r\n \"etag\": \"W/\\\"6c1108b8-efd0-40a1-bce1-76f0bab0b361\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus\"\ + ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ + \ \"Updating\",\r\n \"resourceGuid\": \"1268f5a7-6dce-4ea0-a1de-751dbe709165\"\ + ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ + 10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ + : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"AzureFirewallSubnet\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + ,\r\n \"etag\": \"W/\\\"6c1108b8-efd0-40a1-bce1-76f0bab0b361\\\"\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\"\ + ,\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"delegations\"\ + : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ + \ \"privateLinkServiceNetworkPolicies\": \"Enabled\",\r\n \ + \ \"subnetID\": 0\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\ + \r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\"\ + : false,\r\n \"enableVmProtection\": false\r\n }\r\n}" headers: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/fd3ae317-f2cc-41f6-b577-64356ff976f8?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7f5066e9-f000-4961-ad3e-7c0487c83b21?api-version=2020-06-01 cache-control: - no-cache content-length: - - '1464' + - '1490' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:22 GMT + - Mon, 21 Sep 2020 03:12:44 GMT expires: - '-1' pragma: @@ -775,9 +775,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 0efb8a1f-d193-49ad-a732-ea16ed722784 + - 091286b0-b089-45e2-bff9-dbaecfba6f64 x-ms-ratelimit-remaining-subscription-writes: - - '1188' + - '1198' status: code: 201 message: Created @@ -795,10 +795,10 @@ interactions: ParameterSetName: - -g -n --subnet-name --address-prefixes --subnet-prefixes User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/fd3ae317-f2cc-41f6-b577-64356ff976f8?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7f5066e9-f000-4961-ad3e-7c0487c83b21?api-version=2020-06-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -810,7 +810,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:26 GMT + - Mon, 21 Sep 2020 03:12:49 GMT expires: - '-1' pragma: @@ -827,7 +827,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 671ac594-98d2-4124-9b94-fd3d8b2b0f54 + - f009da7e-f374-4f98-a21f-4b259734d769 status: code: 200 message: OK @@ -845,39 +845,40 @@ interactions: ParameterSetName: - -g -n --subnet-name --address-prefixes --subnet-prefixes User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-06-01 response: body: - string: "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n - \ \"etag\": \"W/\\\"dee82999-4f9b-4a87-973a-6d29ddb20c7c\\\"\",\r\n \"type\": - \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus\",\r\n - \ \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"resourceGuid\": \"3956b0d7-c0cf-4bc7-8864-04e19d2fc411\",\r\n \"addressSpace\": - {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n - \ },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": []\r\n },\r\n - \ \"subnets\": [\r\n {\r\n \"name\": \"AzureFirewallSubnet\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\",\r\n - \ \"etag\": \"W/\\\"dee82999-4f9b-4a87-973a-6d29ddb20c7c\\\"\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"addressPrefix\": \"10.0.0.0/24\",\r\n \"delegations\": - [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \"privateLinkServiceNetworkPolicies\": - \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n - \ }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": - false,\r\n \"enableVmProtection\": false\r\n }\r\n}" + string: "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet\"\ + ,\r\n \"etag\": \"W/\\\"11325f6f-9546-4aa7-ae07-c66f6218d6b6\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus\"\ + ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ + \ \"Succeeded\",\r\n \"resourceGuid\": \"1268f5a7-6dce-4ea0-a1de-751dbe709165\"\ + ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ + 10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ + : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"AzureFirewallSubnet\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + ,\r\n \"etag\": \"W/\\\"11325f6f-9546-4aa7-ae07-c66f6218d6b6\\\"\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ + ,\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"delegations\"\ + : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ + \ \"privateLinkServiceNetworkPolicies\": \"Enabled\",\r\n \ + \ \"subnetID\": 0\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\ + \r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\"\ + : false,\r\n \"enableVmProtection\": false\r\n }\r\n}" headers: cache-control: - no-cache content-length: - - '1466' + - '1492' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:26 GMT + - Mon, 21 Sep 2020 03:12:49 GMT etag: - - W/"dee82999-4f9b-4a87-973a-6d29ddb20c7c" + - W/"11325f6f-9546-4aa7-ae07-c66f6218d6b6" expires: - '-1' pragma: @@ -894,7 +895,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - bcbff855-f143-4ae7-ac84-e96a303b600b + - 2dbe3874-8e7a-4605-b818-c14bd9b7291a status: code: 200 message: OK @@ -912,35 +913,34 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"b5834708-c669-4b36-aca3-e7482909ee23\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"545f5bec-304f-4c4d-9137-84bbd42c44e6\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\":\ + \ [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: cache-control: - no-cache content-length: - - '797' + - '691' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:27 GMT + - Mon, 21 Sep 2020 03:12:50 GMT etag: - - W/"b5834708-c669-4b36-aca3-e7482909ee23" + - W/"545f5bec-304f-4c4d-9137-84bbd42c44e6" expires: - '-1' pragma: @@ -957,7 +957,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 94331bce-a4d9-440e-929e-d7b2a095fcc6 + - b1372a0d-81ca-4b22-a6d3-68df5e659f41 status: code: 200 message: OK @@ -968,8 +968,7 @@ interactions: {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet"}, "publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip"}}, "name": "myipconfig1"}], "threatIntelMode": "Alert", "sku": {"name": "AZFW_VNet", - "tier": "Standard"}, "additionalProperties": {"Network.DNS.EnableProxy": "False", - "Network.DNS.RequireProxyForNetworkRules": "True"}}}' + "tier": "Standard"}, "additionalProperties": {}}}' headers: Accept: - application/json @@ -980,49 +979,48 @@ interactions: Connection: - keep-alive Content-Length: - - '1049' + - '964' Content-Type: - application/json; charset=utf-8 ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"d9418b20-846f-442c-8198-5a6f76889fb6\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"d9418b20-846f-442c-8198-5a6f76889fb6\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": - {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"0c82ae85-54fd-433c-9688-1c4fae26b70d\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"0c82ae85-54fd-433c-9688-1c4fae26b70d\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ + ,\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"\ + publicIPAddress\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/3864f9d7-a94c-4e68-99d2-0ead79dae4e1?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7079879c-03e8-45d9-8931-03e0e61f933c?api-version=2020-05-01 cache-control: - no-cache content-length: - - '1921' + - '1815' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:27 GMT + - Mon, 21 Sep 2020 03:12:50 GMT expires: - '-1' pragma: @@ -1039,9 +1037,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - ec0cdf33-3516-4147-95d8-416aaa397400 + - f5e72295-667f-4a89-8fa7-bb26de40de54 x-ms-ratelimit-remaining-subscription-writes: - - '1187' + - '1198' status: code: 200 message: OK @@ -1059,10 +1057,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/3864f9d7-a94c-4e68-99d2-0ead79dae4e1?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7079879c-03e8-45d9-8931-03e0e61f933c?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1074,7 +1072,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:39 GMT + - Mon, 21 Sep 2020 03:13:01 GMT expires: - '-1' pragma: @@ -1091,7 +1089,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - ee9eacd5-c833-4d6d-897e-042617cd874c + - 774f23bf-d414-4264-85f9-a4b604d23fd5 status: code: 200 message: OK @@ -1109,10 +1107,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/3864f9d7-a94c-4e68-99d2-0ead79dae4e1?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7079879c-03e8-45d9-8931-03e0e61f933c?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1124,7 +1122,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:59 GMT + - Mon, 21 Sep 2020 03:13:11 GMT expires: - '-1' pragma: @@ -1141,7 +1139,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - aa8edf7f-088e-4070-b5c0-704984adb661 + - 1710effd-af2d-4b7a-971d-abe608226af1 status: code: 200 message: OK @@ -1159,10 +1157,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/3864f9d7-a94c-4e68-99d2-0ead79dae4e1?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7079879c-03e8-45d9-8931-03e0e61f933c?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1174,7 +1172,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:40:40 GMT + - Mon, 21 Sep 2020 03:13:31 GMT expires: - '-1' pragma: @@ -1191,7 +1189,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 158ac4b7-cfc5-4609-a079-ba4d3a59ba35 + - 4143e413-e4dd-4024-8e91-00e00cadbff3 status: code: 200 message: OK @@ -1209,10 +1207,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/3864f9d7-a94c-4e68-99d2-0ead79dae4e1?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7079879c-03e8-45d9-8931-03e0e61f933c?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1224,7 +1222,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:42:00 GMT + - Mon, 21 Sep 2020 03:14:12 GMT expires: - '-1' pragma: @@ -1241,7 +1239,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 9860d065-ff33-4eba-aa9c-bb095baeb6a3 + - 3306f150-b0d3-43ff-8acd-e10e1a217daf status: code: 200 message: OK @@ -1259,10 +1257,60 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/3864f9d7-a94c-4e68-99d2-0ead79dae4e1?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7079879c-03e8-45d9-8931-03e0e61f933c?api-version=2020-05-01 + response: + body: + string: "{\r\n \"status\": \"InProgress\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '30' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 21 Sep 2020 03: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-arm-service-request-id: + - f96c606f-8fab-436e-81c9-dd0bab6a2300 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall ip-config create + Connection: + - keep-alive + ParameterSetName: + - -g -n -f --public-ip-address --vnet-name + User-Agent: + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7079879c-03e8-45d9-8931-03e0e61f933c?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -1274,7 +1322,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:43:41 GMT + - Mon, 21 Sep 2020 03:18:14 GMT expires: - '-1' pragma: @@ -1291,7 +1339,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 3a79a559-9572-4367-b478-81b1431ad9f8 + - 55e1ffb3-ef18-4d2d-b9a8-cfaf704cc4fa status: code: 200 message: OK @@ -1309,41 +1357,41 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"de8556cc-3a33-4512-aef5-bbc48b09a697\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"de8556cc-3a33-4512-aef5-bbc48b09a697\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"3f374938-73c7-470b-b500-58e5bb9b09f3\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"3f374938-73c7-470b-b500-58e5bb9b09f3\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: cache-control: - no-cache content-length: - - '1965' + - '1859' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:43:41 GMT + - Mon, 21 Sep 2020 03:18:14 GMT etag: - - W/"de8556cc-3a33-4512-aef5-bbc48b09a697" + - W/"3f374938-73c7-470b-b500-58e5bb9b09f3" expires: - '-1' pragma: @@ -1360,7 +1408,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 92b60c28-d20c-45cc-9745-8d7f519cc6d8 + - 14e2345a-5172-4135-af5d-1c12763fe3dc status: code: 200 message: OK @@ -1378,43 +1426,43 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"de8556cc-3a33-4512-aef5-bbc48b09a697\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"de8556cc-3a33-4512-aef5-bbc48b09a697\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"3f374938-73c7-470b-b500-58e5bb9b09f3\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"3f374938-73c7-470b-b500-58e5bb9b09f3\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: cache-control: - no-cache content-length: - - '1965' + - '1859' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:43:42 GMT + - Mon, 21 Sep 2020 03:18:15 GMT etag: - - W/"de8556cc-3a33-4512-aef5-bbc48b09a697" + - W/"3f374938-73c7-470b-b500-58e5bb9b09f3" expires: - '-1' pragma: @@ -1431,7 +1479,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 2609d700-c00d-49a5-b86f-a0830c40e3dd + - 1d1d85a9-fcf4-4664-b24b-f49b4ff4db8e status: code: 200 message: OK @@ -1443,8 +1491,7 @@ interactions: "publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip"}}, "name": "myipconfig1"}, {"properties": {"publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2"}}, "name": "myipconfig2"}], "threatIntelMode": "Alert", "sku": {"name": "AZFW_VNet", - "tier": "Standard"}, "additionalProperties": {"Network.DNS.EnableProxy": "False", - "Network.DNS.RequireProxyForNetworkRules": "True"}}}' + "tier": "Standard"}, "additionalProperties": {}}}' headers: Accept: - application/json @@ -1455,56 +1502,56 @@ interactions: Connection: - keep-alive Content-Length: - - '1557' + - '1472' Content-Type: - application/json; charset=utf-8 ParameterSetName: - -g -n -f --public-ip-address User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"f1131165-c3b6-4d73-b661-ff1146cee3a4\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"f1131165-c3b6-4d73-b661-ff1146cee3a4\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n },\r\n {\r\n \"name\": \"myipconfig2\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig2\",\r\n - \ \"etag\": \"W/\\\"f1131165-c3b6-4d73-b661-ff1146cee3a4\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": - {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"6ff24ff7-42a8-45fa-adce-35d459d2e1e8\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"6ff24ff7-42a8-45fa-adce-35d459d2e1e8\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n },\r\n {\r\n \"name\": \"\ + myipconfig2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig2\"\ + ,\r\n \"etag\": \"W/\\\"6ff24ff7-42a8-45fa-adce-35d459d2e1e8\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ + ,\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"\ + publicIPAddress\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/126f0b55-7e0d-4df3-a68d-d739815a7480?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/c31e4304-6424-4c1d-8a9a-6fbdb83d7e70?api-version=2020-05-01 cache-control: - no-cache content-length: - - '2805' + - '2699' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:43:42 GMT + - Mon, 21 Sep 2020 03:18:16 GMT expires: - '-1' pragma: @@ -1521,9 +1568,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 81d53d76-08b5-4b53-a34c-c3b6c711b872 + - 7053c91c-4ea4-477d-91f2-0484e1b2fa4e x-ms-ratelimit-remaining-subscription-writes: - - '1182' + - '1197' status: code: 200 message: OK @@ -1541,10 +1588,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/126f0b55-7e0d-4df3-a68d-d739815a7480?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/c31e4304-6424-4c1d-8a9a-6fbdb83d7e70?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1556,7 +1603,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:43:53 GMT + - Mon, 21 Sep 2020 03:18:26 GMT expires: - '-1' pragma: @@ -1573,7 +1620,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 4ca4f048-616e-433b-b20d-556b225fdbb6 + - ff975ae3-c005-4477-8a5f-82592abc404e status: code: 200 message: OK @@ -1591,10 +1638,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/126f0b55-7e0d-4df3-a68d-d739815a7480?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/c31e4304-6424-4c1d-8a9a-6fbdb83d7e70?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1606,7 +1653,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:44:14 GMT + - Mon, 21 Sep 2020 03:18:37 GMT expires: - '-1' pragma: @@ -1623,7 +1670,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 998791a6-8f9d-46c4-a821-06566e0aaaa1 + - e72875f2-051f-4f4b-a494-511001edb746 status: code: 200 message: OK @@ -1641,22 +1688,22 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/126f0b55-7e0d-4df3-a68d-d739815a7480?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/c31e4304-6424-4c1d-8a9a-6fbdb83d7e70?api-version=2020-05-01 response: body: - string: "{\r\n \"status\": \"Succeeded\"\r\n}" + string: "{\r\n \"status\": \"InProgress\"\r\n}" headers: cache-control: - no-cache content-length: - - '29' + - '30' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:44:55 GMT + - Mon, 21 Sep 2020 03:18:57 GMT expires: - '-1' pragma: @@ -1673,7 +1720,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 053e367f-87bd-4923-ae00-050c0c50b352 + - 13acb015-6f44-4ae1-ad0b-14c288c5bbf2 status: code: 200 message: OK @@ -1691,48 +1738,22 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/c31e4304-6424-4c1d-8a9a-6fbdb83d7e70?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"3d31faab-6e83-48ba-bbd1-a0f24b69eb70\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"3d31faab-6e83-48ba-bbd1-a0f24b69eb70\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n },\r\n {\r\n \"name\": \"myipconfig2\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig2\",\r\n - \ \"etag\": \"W/\\\"3d31faab-6e83-48ba-bbd1-a0f24b69eb70\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": - {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"status\": \"Succeeded\"\r\n}" headers: cache-control: - no-cache content-length: - - '2806' + - '29' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:44:56 GMT - etag: - - W/"3d31faab-6e83-48ba-bbd1-a0f24b69eb70" + - Mon, 21 Sep 2020 03:19:37 GMT expires: - '-1' pragma: @@ -1749,7 +1770,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - a1b45587-b9a6-4834-9d99-48d259ca3aed + - 1830bea4-b4b7-4092-b8c4-81fa2860d361 status: code: 200 message: OK @@ -1761,56 +1782,54 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - network firewall ip-config delete + - network firewall ip-config create Connection: - keep-alive ParameterSetName: - - -g -n -f + - -g -n -f --public-ip-address User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 - accept-language: - - en-US + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"3d31faab-6e83-48ba-bbd1-a0f24b69eb70\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"3d31faab-6e83-48ba-bbd1-a0f24b69eb70\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n },\r\n {\r\n \"name\": \"myipconfig2\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig2\",\r\n - \ \"etag\": \"W/\\\"3d31faab-6e83-48ba-bbd1-a0f24b69eb70\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": - {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"9d9a4162-76d4-419b-9edc-3d4b3dc7c639\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"9d9a4162-76d4-419b-9edc-3d4b3dc7c639\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n },\r\n {\r\n \"name\": \"\ + myipconfig2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig2\"\ + ,\r\n \"etag\": \"W/\\\"9d9a4162-76d4-419b-9edc-3d4b3dc7c639\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ + ,\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"\ + publicIPAddress\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: cache-control: - no-cache content-length: - - '2806' + - '2700' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:44:56 GMT + - Mon, 21 Sep 2020 03:19:37 GMT etag: - - W/"3d31faab-6e83-48ba-bbd1-a0f24b69eb70" + - W/"9d9a4162-76d4-419b-9edc-3d4b3dc7c639" expires: - '-1' pragma: @@ -1827,19 +1846,12 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - a35338c1-328f-4750-958f-2e9065c3e943 + - 543ecd54-0df7-4047-9803-26e892a7467a status: code: 200 message: OK - request: - body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1", - "location": "westus", "properties": {"applicationRuleCollections": [], "natRuleCollections": - [], "networkRuleCollections": [], "ipConfigurations": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1", - "properties": {"subnet": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet"}, - "publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip"}}, - "name": "myipconfig1"}], "threatIntelMode": "Alert", "sku": {"name": "AZFW_VNet", - "tier": "Standard"}, "additionalProperties": {"Network.DNS.EnableProxy": "False", - "Network.DNS.RequireProxyForNetworkRules": "True"}}}' + body: null headers: Accept: - application/json @@ -1849,50 +1861,53 @@ interactions: - network firewall ip-config delete Connection: - keep-alive - Content-Length: - - '1290' - Content-Type: - - application/json; charset=utf-8 ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US - method: PUT + method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"bb322cc3-b786-4d7e-82cb-a8e71f481374\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"bb322cc3-b786-4d7e-82cb-a8e71f481374\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"9d9a4162-76d4-419b-9edc-3d4b3dc7c639\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"9d9a4162-76d4-419b-9edc-3d4b3dc7c639\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n },\r\n {\r\n \"name\": \"\ + myipconfig2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig2\"\ + ,\r\n \"etag\": \"W/\\\"9d9a4162-76d4-419b-9edc-3d4b3dc7c639\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ + ,\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"\ + publicIPAddress\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: - azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/6b1507c1-b7b8-46e8-af26-2389efbd72c0?api-version=2020-05-01 cache-control: - no-cache content-length: - - '1964' + - '2700' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:44:56 GMT + - Mon, 21 Sep 2020 03:19:38 GMT + etag: + - W/"9d9a4162-76d4-419b-9edc-3d4b3dc7c639" expires: - '-1' pragma: @@ -1909,14 +1924,18 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - d87e81c7-0e43-46e3-ad14-aaa7a188511e - x-ms-ratelimit-remaining-subscription-writes: - - '1179' + - 374c92fe-14ce-4169-a4f7-92e2eaa9c0f9 status: code: 200 message: OK - request: - body: null + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1", + "location": "westus", "properties": {"applicationRuleCollections": [], "natRuleCollections": + [], "networkRuleCollections": [], "ipConfigurations": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1", + "properties": {"subnet": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet"}, + "publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip"}}, + "name": "myipconfig1"}], "threatIntelMode": "Alert", "sku": {"name": "AZFW_VNet", + "tier": "Standard"}, "additionalProperties": {}}}' headers: Accept: - application/json @@ -1926,25 +1945,50 @@ interactions: - network firewall ip-config delete Connection: - keep-alive + Content-Length: + - '1205' + Content-Type: + - application/json; charset=utf-8 ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/6b1507c1-b7b8-46e8-af26-2389efbd72c0?api-version=2020-05-01 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"status\": \"InProgress\"\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"ca6c886a-3e71-4c28-a4bf-52d71a074c92\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"ca6c886a-3e71-4c28-a4bf-52d71a074c92\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/eaf1f459-54fb-45f2-968b-f509c1e8a248?api-version=2020-05-01 cache-control: - no-cache content-length: - - '30' + - '1858' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:45:08 GMT + - Mon, 21 Sep 2020 03:19:39 GMT expires: - '-1' pragma: @@ -1961,7 +2005,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 45beed03-ef79-4ff9-8155-920fbc0ac6a4 + - a97b5339-6c50-4fb8-af60-6e996b34d48d + x-ms-ratelimit-remaining-subscription-writes: + - '1198' status: code: 200 message: OK @@ -1979,10 +2025,10 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/6b1507c1-b7b8-46e8-af26-2389efbd72c0?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/eaf1f459-54fb-45f2-968b-f509c1e8a248?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1994,7 +2040,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:45:18 GMT + - Mon, 21 Sep 2020 03:19:49 GMT expires: - '-1' pragma: @@ -2011,7 +2057,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 6bb9cfd2-bfea-4ab0-8871-0ae4ecda25bd + - 26379dc0-a056-49fa-b5f2-f5a5eba5cb5f status: code: 200 message: OK @@ -2029,10 +2075,10 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/6b1507c1-b7b8-46e8-af26-2389efbd72c0?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/eaf1f459-54fb-45f2-968b-f509c1e8a248?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2044,7 +2090,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:45:38 GMT + - Mon, 21 Sep 2020 03:19:59 GMT expires: - '-1' pragma: @@ -2061,7 +2107,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 3c781627-f044-44e1-bc42-83c470f3cc8f + - 8b6051e5-18b0-4f1d-951e-40c9c9f08e1e status: code: 200 message: OK @@ -2079,22 +2125,22 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/6b1507c1-b7b8-46e8-af26-2389efbd72c0?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/eaf1f459-54fb-45f2-968b-f509c1e8a248?api-version=2020-05-01 response: body: - string: "{\r\n \"status\": \"Succeeded\"\r\n}" + string: "{\r\n \"status\": \"InProgress\"\r\n}" headers: cache-control: - no-cache content-length: - - '29' + - '30' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:46:18 GMT + - Mon, 21 Sep 2020 03:20:20 GMT expires: - '-1' pragma: @@ -2111,7 +2157,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 1110923e-5656-4499-a875-79fe19962d6a + - 78116e92-3879-40c2-bec6-96ea24afe869 status: code: 200 message: OK @@ -2129,41 +2175,22 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/eaf1f459-54fb-45f2-968b-f509c1e8a248?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"6655cbbe-24fa-473f-9962-f6e7a714bbd3\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"6655cbbe-24fa-473f-9962-f6e7a714bbd3\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"status\": \"Succeeded\"\r\n}" headers: cache-control: - no-cache content-length: - - '1965' + - '29' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:46:18 GMT - etag: - - W/"6655cbbe-24fa-473f-9962-f6e7a714bbd3" + - Mon, 21 Sep 2020 03:21:00 GMT expires: - '-1' pragma: @@ -2180,7 +2207,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - a3a2325d-b0f1-4ebb-8684-ff5ce5dc6b0d + - 7cc99a0b-ae6a-47a6-999d-9e7d32e3cb9b status: code: 200 message: OK @@ -2198,43 +2225,41 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 - accept-language: - - en-US + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"6655cbbe-24fa-473f-9962-f6e7a714bbd3\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"6655cbbe-24fa-473f-9962-f6e7a714bbd3\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"556039e8-ef9d-4c2e-8343-62f9a04b1a0f\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"556039e8-ef9d-4c2e-8343-62f9a04b1a0f\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: cache-control: - no-cache content-length: - - '1965' + - '1859' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:46:19 GMT + - Mon, 21 Sep 2020 03:21:01 GMT etag: - - W/"6655cbbe-24fa-473f-9962-f6e7a714bbd3" + - W/"556039e8-ef9d-4c2e-8343-62f9a04b1a0f" expires: - '-1' pragma: @@ -2251,16 +2276,12 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 5ae63f5c-827b-4d71-8791-c9645fb091b6 + - 63efdbda-876b-48a0-9c27-83f15e985f99 status: code: 200 message: OK - request: - body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1", - "location": "westus", "properties": {"applicationRuleCollections": [], "natRuleCollections": - [], "networkRuleCollections": [], "threatIntelMode": "Alert", "sku": {"name": - "AZFW_VNet", "tier": "Standard"}, "additionalProperties": {"Network.DNS.EnableProxy": - "False", "Network.DNS.RequireProxyForNetworkRules": "True"}}}' + body: null headers: Accept: - application/json @@ -2270,42 +2291,46 @@ interactions: - network firewall ip-config delete Connection: - keep-alive - Content-Length: - - '518' - Content-Type: - - application/json; charset=utf-8 ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US - method: PUT + method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"0aa0c5c1-5a7a-4da9-bad7-756ecd965daa\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"556039e8-ef9d-4c2e-8343-62f9a04b1a0f\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"556039e8-ef9d-4c2e-8343-62f9a04b1a0f\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: - azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/566abdab-8166-4982-9875-7b11f6516d2a?api-version=2020-05-01 cache-control: - no-cache content-length: - - '796' + - '1859' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:46:20 GMT + - Mon, 21 Sep 2020 03:21:01 GMT + etag: + - W/"556039e8-ef9d-4c2e-8343-62f9a04b1a0f" expires: - '-1' pragma: @@ -2322,14 +2347,15 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 4e171a14-eb83-4402-a429-4b148b8b44f7 - x-ms-ratelimit-remaining-subscription-writes: - - '1182' + - 193ee6bc-e8a3-42f4-b55f-f345c3200b14 status: code: 200 message: OK - request: - body: null + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1", + "location": "westus", "properties": {"applicationRuleCollections": [], "natRuleCollections": + [], "networkRuleCollections": [], "threatIntelMode": "Alert", "sku": {"name": + "AZFW_VNet", "tier": "Standard"}, "additionalProperties": {}}}' headers: Accept: - application/json @@ -2339,25 +2365,41 @@ interactions: - network firewall ip-config delete Connection: - keep-alive + Content-Length: + - '433' + Content-Type: + - application/json; charset=utf-8 ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/566abdab-8166-4982-9875-7b11f6516d2a?api-version=2020-05-01 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"status\": \"InProgress\"\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"4c99955c-e05f-49ce-b491-612cb669d9b1\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\":\ + \ [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/711fce78-7227-49ae-ae00-0fb2fa485a52?api-version=2020-05-01 cache-control: - no-cache content-length: - - '30' + - '690' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:46:31 GMT + - Mon, 21 Sep 2020 03:21:02 GMT expires: - '-1' pragma: @@ -2374,7 +2416,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 26a5e22f-ad87-4917-be0d-7e45b80e6e1d + - d692043f-5261-4c17-9721-b6a7c7eb770a + x-ms-ratelimit-remaining-subscription-writes: + - '1199' status: code: 200 message: OK @@ -2392,10 +2436,10 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/566abdab-8166-4982-9875-7b11f6516d2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/711fce78-7227-49ae-ae00-0fb2fa485a52?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2407,7 +2451,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:46:52 GMT + - Mon, 21 Sep 2020 03:21:13 GMT expires: - '-1' pragma: @@ -2424,7 +2468,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - db4a8c07-525c-4573-bc04-32fbe892bc8a + - 8ffa62b9-1af8-4c6c-a142-f87585b714da status: code: 200 message: OK @@ -2442,10 +2486,10 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/566abdab-8166-4982-9875-7b11f6516d2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/711fce78-7227-49ae-ae00-0fb2fa485a52?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2457,7 +2501,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:47:33 GMT + - Mon, 21 Sep 2020 03:21:23 GMT expires: - '-1' pragma: @@ -2474,7 +2518,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 02c74028-7a52-432e-889e-15f9d78c3d74 + - 02744919-39ea-4c74-b031-34fffc31ac4c status: code: 200 message: OK @@ -2492,10 +2536,10 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/566abdab-8166-4982-9875-7b11f6516d2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/711fce78-7227-49ae-ae00-0fb2fa485a52?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2507,7 +2551,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:48:53 GMT + - Mon, 21 Sep 2020 03:21:44 GMT expires: - '-1' pragma: @@ -2524,7 +2568,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 7b939bd4-3e04-4230-b26a-db6afd2d681c + - 666861b4-a174-476f-b35c-36b45e5d97ef status: code: 200 message: OK @@ -2542,10 +2586,10 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/566abdab-8166-4982-9875-7b11f6516d2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/711fce78-7227-49ae-ae00-0fb2fa485a52?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2557,7 +2601,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:50:34 GMT + - Mon, 21 Sep 2020 03:22:24 GMT expires: - '-1' pragma: @@ -2574,7 +2618,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - d7a5755d-51d9-43f7-a936-082b83f91364 + - eddc8033-8c90-413a-905b-f09618204d1c status: code: 200 message: OK @@ -2592,10 +2636,10 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/566abdab-8166-4982-9875-7b11f6516d2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/711fce78-7227-49ae-ae00-0fb2fa485a52?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2607,7 +2651,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:52:15 GMT + - Mon, 21 Sep 2020 03:23:45 GMT expires: - '-1' pragma: @@ -2624,7 +2668,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 839ab6c9-a8bb-46fa-9c96-97b1cb2638a7 + - e353c1b2-6db7-4181-89e5-8841d0b078af status: code: 200 message: OK @@ -2642,10 +2686,10 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/566abdab-8166-4982-9875-7b11f6516d2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/711fce78-7227-49ae-ae00-0fb2fa485a52?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2657,7 +2701,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:53:55 GMT + - Mon, 21 Sep 2020 03:26:26 GMT expires: - '-1' pragma: @@ -2674,7 +2718,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 0531477f-7fdb-4cbb-8b92-95146832d5d2 + - 05443935-3830-4698-a084-7ee807777866 status: code: 200 message: OK @@ -2692,10 +2736,10 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/566abdab-8166-4982-9875-7b11f6516d2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/711fce78-7227-49ae-ae00-0fb2fa485a52?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -2707,7 +2751,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:55:36 GMT + - Mon, 21 Sep 2020 03:28:07 GMT expires: - '-1' pragma: @@ -2724,7 +2768,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 35231ee8-b045-43a5-acc3-e8bc4e6c1f8b + - 4d862d25-faad-4a5d-bf30-a84910b78964 status: code: 200 message: OK @@ -2742,33 +2786,32 @@ interactions: ParameterSetName: - -g -n -f User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"cec7eb52-d8b5-48e6-af5c-3de0cf698fef\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": - \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": - \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.DNS.EnableProxy\": - \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n - \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - []\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_ip_config000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"76d01086-8cd9-4051-b9bb-e967aec31e73\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\":\ + \ [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : []\r\n }\r\n}" headers: cache-control: - no-cache content-length: - - '797' + - '691' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:55:36 GMT + - Mon, 21 Sep 2020 03:28:08 GMT etag: - - W/"cec7eb52-d8b5-48e6-af5c-3de0cf698fef" + - W/"76d01086-8cd9-4051-b9bb-e967aec31e73" expires: - '-1' pragma: @@ -2785,7 +2828,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 9f77197f-9c39-4122-bdc8-ef6f0825aef0 + - 01f01cc7-51e0-4549-ae41-d57084ec4a8e status: code: 200 message: OK diff --git a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_management_ip_config.yaml b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_management_ip_config.yaml index b7767cd262f..853a681698d 100644 --- a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_management_ip_config.yaml +++ b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_management_ip_config.yaml @@ -285,7 +285,7 @@ interactions: accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"pubip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\",\r\n @@ -391,7 +391,7 @@ interactions: - python/3.8.0 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.2 azure-mgmt-network/9.0.0 Azure-SDK-For-Python AZURECLI/2.0.81 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"pubip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip\",\r\n @@ -502,7 +502,7 @@ interactions: accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"pubip2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\",\r\n @@ -608,7 +608,7 @@ interactions: - python/3.8.0 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.2 azure-mgmt-network/9.0.0 Azure-SDK-For-Python AZURECLI/2.0.81 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"pubip2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip2\",\r\n @@ -719,7 +719,7 @@ interactions: accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip3?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip3?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"pubip3\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip3\",\r\n @@ -825,7 +825,7 @@ interactions: - python/3.8.0 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.2 azure-mgmt-network/9.0.0 Azure-SDK-For-Python AZURECLI/2.0.81 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip3?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip3?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"pubip3\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip3\",\r\n @@ -936,7 +936,7 @@ interactions: accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip4?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip4?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"pubip4\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip4\",\r\n @@ -1042,7 +1042,7 @@ interactions: - python/3.8.0 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.2 azure-mgmt-network/9.0.0 Azure-SDK-For-Python AZURECLI/2.0.81 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip4?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip4?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"pubip4\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/publicIPAddresses/pubip4\",\r\n @@ -1154,7 +1154,7 @@ interactions: accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n @@ -1269,7 +1269,7 @@ interactions: - python/3.8.0 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.2 azure-mgmt-network/9.0.0 Azure-SDK-For-Python AZURECLI/2.0.81 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n @@ -1389,7 +1389,7 @@ interactions: accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet2?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet2?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"myvnet2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet2\",\r\n @@ -1504,7 +1504,7 @@ interactions: - python/3.8.0 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.2 azure-mgmt-network/9.0.0 Azure-SDK-For-Python AZURECLI/2.0.81 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet2?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet2?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"myvnet2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet2\",\r\n @@ -1624,7 +1624,7 @@ interactions: accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet4?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet4?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"myvnet4\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet4\",\r\n @@ -1739,7 +1739,7 @@ interactions: - python/3.8.0 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.2 azure-mgmt-network/9.0.0 Azure-SDK-For-Python AZURECLI/2.0.81 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet4?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet4?api-version=2020-06-01 response: body: string: "{\r\n \"name\": \"myvnet4\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_management_ip_config000001/providers/Microsoft.Network/virtualNetworks/myvnet4\",\r\n diff --git a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_policy.yaml b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_policy.yaml index 4f94953ec7c..26e9368e80e 100644 --- a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_policy.yaml +++ b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_policy.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"location": "eastus2euap", "properties": {"threatIntelWhitelist": {"ipAddresses": + body: '{"location": "eastus2", "properties": {"threatIntelWhitelist": {"ipAddresses": ["101.0.0.0", "101.0.0.1"], "fqdns": ["*.microsoft.com"]}}}' headers: Accept: @@ -12,40 +12,39 @@ interactions: Connection: - keep-alive Content-Length: - - '142' + - '138' Content-Type: - application/json; charset=utf-8 ParameterSetName: - -g -n -l --ip-addresses --fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n\ - \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.microsoft.com\"\ - \r\n ],\r\n \"ipAddresses\": [\r\n \"101.0.0.0\",\r\n \ - \ \"101.0.0.1\"\r\n ]\r\n },\r\n \"childPolicies\": [],\r\n\ - \ \"ruleCollectionGroups\": [],\r\n \"firewalls\": [],\r\n \"provisioningState\"\ - : \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ - ,\r\n \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ - ,\r\n \"etag\": \"5b007988-c622-4b0c-939d-3fa97e106e15\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n + \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.microsoft.com\"\r\n + \ ],\r\n \"ipAddresses\": [\r\n \"101.0.0.0\",\r\n \"101.0.0.1\"\r\n + \ ]\r\n },\r\n \"childPolicies\": [],\r\n \"ruleCollectionGroups\": + [],\r\n \"firewalls\": [],\r\n \"provisioningState\": \"Updating\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"a192b8ca-3d2a-4ca1-84bf-13d3c43b45f1\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/1a1c5a22-3b40-44b7-8dba-61859ba716f5?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/1ede2908-7de7-4a12-a9bd-f5d71c0eb0ea?api-version=2020-05-01 cache-control: - no-cache content-length: - - '717' + - '713' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:05 GMT + - Thu, 27 Aug 2020 08:53:52 GMT expires: - '-1' pragma: @@ -57,7 +56,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1194' status: code: 201 message: Created @@ -75,10 +74,10 @@ interactions: ParameterSetName: - -g -n -l --ip-addresses --fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/1a1c5a22-3b40-44b7-8dba-61859ba716f5?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/1ede2908-7de7-4a12-a9bd-f5d71c0eb0ea?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -90,7 +89,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:16 GMT + - Thu, 27 Aug 2020 08:54:03 GMT expires: - '-1' pragma: @@ -122,30 +121,29 @@ interactions: ParameterSetName: - -g -n -l --ip-addresses --fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n\ - \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.microsoft.com\"\ - \r\n ],\r\n \"ipAddresses\": [\r\n \"101.0.0.0\",\r\n \ - \ \"101.0.0.1\"\r\n ]\r\n },\r\n \"childPolicies\": [],\r\n\ - \ \"ruleCollectionGroups\": [],\r\n \"firewalls\": [],\r\n \"provisioningState\"\ - : \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ - ,\r\n \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ - ,\r\n \"etag\": \"5b007988-c622-4b0c-939d-3fa97e106e15\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n + \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.microsoft.com\"\r\n + \ ],\r\n \"ipAddresses\": [\r\n \"101.0.0.0\",\r\n \"101.0.0.1\"\r\n + \ ]\r\n },\r\n \"childPolicies\": [],\r\n \"ruleCollectionGroups\": + [],\r\n \"firewalls\": [],\r\n \"provisioningState\": \"Succeeded\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"a192b8ca-3d2a-4ca1-84bf-13d3c43b45f1\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '718' + - '714' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:17 GMT + - Thu, 27 Aug 2020 08:54:04 GMT expires: - '-1' pragma: @@ -177,32 +175,31 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n\ - \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.microsoft.com\"\ - \r\n ],\r\n \"ipAddresses\": [\r\n \"101.0.0.0\",\r\n \ - \ \"101.0.0.1\"\r\n ]\r\n },\r\n \"childPolicies\": [],\r\n\ - \ \"ruleCollectionGroups\": [],\r\n \"firewalls\": [],\r\n \"provisioningState\"\ - : \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ - ,\r\n \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ - ,\r\n \"etag\": \"5b007988-c622-4b0c-939d-3fa97e106e15\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n + \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.microsoft.com\"\r\n + \ ],\r\n \"ipAddresses\": [\r\n \"101.0.0.0\",\r\n \"101.0.0.1\"\r\n + \ ]\r\n },\r\n \"childPolicies\": [],\r\n \"ruleCollectionGroups\": + [],\r\n \"firewalls\": [],\r\n \"provisioningState\": \"Succeeded\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"a192b8ca-3d2a-4ca1-84bf-13d3c43b45f1\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '718' + - '714' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:19 GMT + - Thu, 27 Aug 2020 08:54:06 GMT expires: - '-1' pragma: @@ -234,34 +231,33 @@ interactions: ParameterSetName: - -g User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies?api-version=2020-05-01 response: body: - string: "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \ - \ \"threatIntelMode\": \"Alert\",\r\n \"threatIntelWhitelist\": {\r\ - \n \"fqdns\": [\r\n \"*.microsoft.com\"\r\n ],\r\ - \n \"ipAddresses\": [\r\n \"101.0.0.0\",\r\n \ - \ \"101.0.0.1\"\r\n ]\r\n },\r\n \"childPolicies\"\ - : [],\r\n \"ruleCollectionGroups\": [],\r\n \"firewalls\": [],\r\ - \n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\"\ - : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ - ,\r\n \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ - ,\r\n \"etag\": \"5b007988-c622-4b0c-939d-3fa97e106e15\",\r\n \"\ - location\": \"eastus2euap\"\r\n }\r\n ]\r\n}" + string: "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"threatIntelMode\": + \"Alert\",\r\n \"threatIntelWhitelist\": {\r\n \"fqdns\": + [\r\n \"*.microsoft.com\"\r\n ],\r\n \"ipAddresses\": + [\r\n \"101.0.0.0\",\r\n \"101.0.0.1\"\r\n ]\r\n + \ },\r\n \"childPolicies\": [],\r\n \"ruleCollectionGroups\": + [],\r\n \"firewalls\": [],\r\n \"provisioningState\": \"Succeeded\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"a192b8ca-3d2a-4ca1-84bf-13d3c43b45f1\",\r\n \"location\": + \"eastus2\"\r\n }\r\n ]\r\n}" headers: cache-control: - no-cache content-length: - - '835' + - '831' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:20 GMT + - Thu, 27 Aug 2020 08:54:08 GMT expires: - '-1' pragma: @@ -291,48 +287,37 @@ interactions: Connection: - keep-alive User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/firewallPolicies?api-version=2020-05-01 response: body: - string: "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \ - \ \"threatIntelMode\": \"Alert\",\r\n \"threatIntelWhitelist\": {\r\ - \n \"fqdns\": [\r\n \"*.microsoft.com\"\r\n ],\r\ - \n \"ipAddresses\": [\r\n \"101.0.0.0\",\r\n \ - \ \"101.0.0.1\"\r\n ]\r\n },\r\n \"childPolicies\"\ - : [],\r\n \"ruleCollectionGroups\": [],\r\n \"firewalls\": [],\r\ - \n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\"\ - : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ - ,\r\n \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ - ,\r\n \"etag\": \"5b007988-c622-4b0c-939d-3fa97e106e15\",\r\n \"\ - location\": \"eastus2euap\"\r\n }\r\n ]\r\n}" + string: '{"value":[{"properties":{"threatIntelMode":"Alert","threatIntelWhitelist":{"fqdns":["*.microsoft.com"],"ipAddresses":["101.0.0.0","101.0.0.1"]},"childPolicies":[],"ruleCollectionGroups":[],"firewalls":[],"provisioningState":"Succeeded"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy","name":"myclipolicy","type":"Microsoft.Network/FirewallPolicies","etag":"a192b8ca-3d2a-4ca1-84bf-13d3c43b45f1","location":"eastus2"}]}' headers: cache-control: - no-cache content-length: - - '835' + - '578' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:21 GMT + - Thu, 27 Aug 2020 08:55: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 + x-ms-original-request-ids: + - '' + - '' status: code: 200 message: OK @@ -350,32 +335,31 @@ interactions: ParameterSetName: - -g -n --threat-intel-mode --ip-addresses --fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n\ - \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.microsoft.com\"\ - \r\n ],\r\n \"ipAddresses\": [\r\n \"101.0.0.0\",\r\n \ - \ \"101.0.0.1\"\r\n ]\r\n },\r\n \"childPolicies\": [],\r\n\ - \ \"ruleCollectionGroups\": [],\r\n \"firewalls\": [],\r\n \"provisioningState\"\ - : \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ - ,\r\n \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ - ,\r\n \"etag\": \"5b007988-c622-4b0c-939d-3fa97e106e15\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n + \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.microsoft.com\"\r\n + \ ],\r\n \"ipAddresses\": [\r\n \"101.0.0.0\",\r\n \"101.0.0.1\"\r\n + \ ]\r\n },\r\n \"childPolicies\": [],\r\n \"ruleCollectionGroups\": + [],\r\n \"firewalls\": [],\r\n \"provisioningState\": \"Succeeded\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"a192b8ca-3d2a-4ca1-84bf-13d3c43b45f1\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '718' + - '714' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:23 GMT + - Thu, 27 Aug 2020 08:55:09 GMT expires: - '-1' pragma: @@ -394,9 +378,9 @@ interactions: code: 200 message: OK - request: - body: 'b''{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy", - "location": "eastus2euap", "properties": {"threatIntelMode": "Deny", "threatIntelWhitelist": - {"ipAddresses": ["102.0.0.0", "102.0.0.1"], "fqdns": ["*.google.com"]}}}''' + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy", + "location": "eastus2", "properties": {"threatIntelMode": "Deny", "threatIntelWhitelist": + {"ipAddresses": ["102.0.0.0", "102.0.0.1"], "fqdns": ["*.google.com"]}}}' headers: Accept: - application/json @@ -407,40 +391,39 @@ interactions: Connection: - keep-alive Content-Length: - - '375' + - '371' Content-Type: - application/json; charset=utf-8 ParameterSetName: - -g -n --threat-intel-mode --ip-addresses --fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Deny\",\r\n\ - \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.google.com\"\ - \r\n ],\r\n \"ipAddresses\": [\r\n \"102.0.0.0\",\r\n \ - \ \"102.0.0.1\"\r\n ]\r\n },\r\n \"childPolicies\": [],\r\n\ - \ \"ruleCollectionGroups\": [],\r\n \"firewalls\": [],\r\n \"provisioningState\"\ - : \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ - ,\r\n \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ - ,\r\n \"etag\": \"9fafced2-28a4-43bc-a586-edd05d56f35c\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Deny\",\r\n + \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.google.com\"\r\n + \ ],\r\n \"ipAddresses\": [\r\n \"102.0.0.0\",\r\n \"102.0.0.1\"\r\n + \ ]\r\n },\r\n \"childPolicies\": [],\r\n \"ruleCollectionGroups\": + [],\r\n \"firewalls\": [],\r\n \"provisioningState\": \"Updating\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"628c2c90-83e3-4ca1-ab6e-cab2f046abd6\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/4293ce8d-f651-451c-8f4b-4b4514c22fe1?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/31dd57cc-6bba-434d-9da8-d8ae336f52ba?api-version=2020-05-01 cache-control: - no-cache content-length: - - '713' + - '709' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:26 GMT + - Thu, 27 Aug 2020 08:55:11 GMT expires: - '-1' pragma: @@ -456,7 +439,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1184' status: code: 200 message: OK @@ -474,10 +457,10 @@ interactions: ParameterSetName: - -g -n --threat-intel-mode --ip-addresses --fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/4293ce8d-f651-451c-8f4b-4b4514c22fe1?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/31dd57cc-6bba-434d-9da8-d8ae336f52ba?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -489,7 +472,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:38 GMT + - Thu, 27 Aug 2020 08:55:22 GMT expires: - '-1' pragma: @@ -521,30 +504,29 @@ interactions: ParameterSetName: - -g -n --threat-intel-mode --ip-addresses --fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Deny\",\r\n\ - \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.google.com\"\ - \r\n ],\r\n \"ipAddresses\": [\r\n \"102.0.0.0\",\r\n \ - \ \"102.0.0.1\"\r\n ]\r\n },\r\n \"childPolicies\": [],\r\n\ - \ \"ruleCollectionGroups\": [],\r\n \"firewalls\": [],\r\n \"provisioningState\"\ - : \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ - ,\r\n \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ - ,\r\n \"etag\": \"9fafced2-28a4-43bc-a586-edd05d56f35c\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Deny\",\r\n + \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.google.com\"\r\n + \ ],\r\n \"ipAddresses\": [\r\n \"102.0.0.0\",\r\n \"102.0.0.1\"\r\n + \ ]\r\n },\r\n \"childPolicies\": [],\r\n \"ruleCollectionGroups\": + [],\r\n \"firewalls\": [],\r\n \"provisioningState\": \"Succeeded\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"628c2c90-83e3-4ca1-ab6e-cab2f046abd6\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '714' + - '710' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:39 GMT + - Thu, 27 Aug 2020 08:55:23 GMT expires: - '-1' pragma: @@ -580,30 +562,29 @@ interactions: ParameterSetName: - -g --priority --policy-name -n User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 10000,\r\n \"ruleCollections\"\ - : [],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"34b33746-eb82-43d1-ad57-7f8ba29dbbc5\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 10000,\r\n \"ruleCollections\": + [],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"5e7a58af-ec49-4b32-bcb2-a77d99bcb6db\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/cbce6cd6-e07a-4df4-b1f6-346edcdcfba1?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/0029c890-6011-4750-99cc-e914831e6113?api-version=2020-05-01 cache-control: - no-cache content-length: - - '548' + - '561' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:43 GMT + - Thu, 27 Aug 2020 08:55:25 GMT expires: - '-1' pragma: @@ -615,7 +596,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1194' status: code: 201 message: Created @@ -633,10 +614,10 @@ interactions: ParameterSetName: - -g --priority --policy-name -n User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/cbce6cd6-e07a-4df4-b1f6-346edcdcfba1?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/0029c890-6011-4750-99cc-e914831e6113?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -648,7 +629,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:55 GMT + - Thu, 27 Aug 2020 08:55:35 GMT expires: - '-1' pragma: @@ -680,27 +661,25 @@ interactions: ParameterSetName: - -g --priority --policy-name -n User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 10000,\r\n \"ruleCollections\"\ - : [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"\ - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"34b33746-eb82-43d1-ad57-7f8ba29dbbc5\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 10000,\r\n \"ruleCollections\": + [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"5e7a58af-ec49-4b32-bcb2-a77d99bcb6db\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '549' + - '562' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:56 GMT + - Thu, 27 Aug 2020 08:55:36 GMT expires: - '-1' pragma: @@ -732,29 +711,27 @@ interactions: ParameterSetName: - -g --policy-name -n User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 10000,\r\n \"ruleCollections\"\ - : [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"\ - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"34b33746-eb82-43d1-ad57-7f8ba29dbbc5\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 10000,\r\n \"ruleCollections\": + [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"5e7a58af-ec49-4b32-bcb2-a77d99bcb6db\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '549' + - '562' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:58 GMT + - Thu, 27 Aug 2020 08:55:38 GMT expires: - '-1' pragma: @@ -786,29 +763,29 @@ interactions: ParameterSetName: - -g --policy-name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups?api-version=2020-05-01 response: body: - string: "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \ - \ \"priority\": 10000,\r\n \"ruleCollections\": [],\r\n \"provisioningState\"\ - : \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"34b33746-eb82-43d1-ad57-7f8ba29dbbc5\",\r\n \"\ - location\": \"eastus2euap\"\r\n }\r\n ]\r\n}" + string: "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"priority\": + 10000,\r\n \"ruleCollections\": [],\r\n \"provisioningState\": + \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"5e7a58af-ec49-4b32-bcb2-a77d99bcb6db\",\r\n \"location\": + \"eastus2\"\r\n }\r\n ]\r\n}" headers: cache-control: - no-cache content-length: - - '622' + - '635' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:37:59 GMT + - Thu, 27 Aug 2020 08:55:38 GMT expires: - '-1' pragma: @@ -840,29 +817,27 @@ interactions: ParameterSetName: - -g --policy-name -n --priority User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 10000,\r\n \"ruleCollections\"\ - : [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"\ - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"34b33746-eb82-43d1-ad57-7f8ba29dbbc5\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 10000,\r\n \"ruleCollections\": + [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"5e7a58af-ec49-4b32-bcb2-a77d99bcb6db\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '549' + - '562' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:00 GMT + - Thu, 27 Aug 2020 08:55:39 GMT expires: - '-1' pragma: @@ -881,8 +856,8 @@ interactions: code: 200 message: OK - request: - body: 'b''{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", - "properties": {"priority": 12000, "ruleCollections": []}, "name": "myclirulecollectiongroup"}''' + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", + "properties": {"priority": 12000, "ruleCollections": []}, "name": "myclirulecollectiongroup"}' headers: Accept: - application/json @@ -899,30 +874,29 @@ interactions: ParameterSetName: - -g --policy-name -n --priority User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"9f5807b0-641e-45c1-a76f-e17f0cd11a23\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"6c8cef61-dfa1-4a72-827e-736c5bdacd23\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/c0ff9486-6d86-414e-9648-289390b4c77f?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/0a12e582-5392-4b77-8390-392e6333edb6?api-version=2020-05-01 cache-control: - no-cache content-length: - - '548' + - '561' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:03 GMT + - Thu, 27 Aug 2020 08:55:42 GMT expires: - '-1' pragma: @@ -938,7 +912,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1196' + - '1193' status: code: 200 message: OK @@ -956,10 +930,10 @@ interactions: ParameterSetName: - -g --policy-name -n --priority User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/c0ff9486-6d86-414e-9648-289390b4c77f?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/0a12e582-5392-4b77-8390-392e6333edb6?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -971,7 +945,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:15 GMT + - Thu, 27 Aug 2020 08:55:53 GMT expires: - '-1' pragma: @@ -1003,27 +977,25 @@ interactions: ParameterSetName: - -g --policy-name -n --priority User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"\ - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"9f5807b0-641e-45c1-a76f-e17f0cd11a23\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"6c8cef61-dfa1-4a72-827e-736c5bdacd23\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '549' + - '562' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:16 GMT + - Thu, 27 Aug 2020 08:55:53 GMT expires: - '-1' pragma: @@ -1057,29 +1029,27 @@ interactions: --rule-name --description --destination-addresses --source-addresses --translated-address --translated-port --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"\ - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"9f5807b0-641e-45c1-a76f-e17f0cd11a23\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"6c8cef61-dfa1-4a72-827e-736c5bdacd23\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '549' + - '562' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:16 GMT + - Thu, 27 Aug 2020 08:55:55 GMT expires: - '-1' pragma: @@ -1098,14 +1068,14 @@ interactions: code: 200 message: OK - request: - body: 'b''{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", "properties": {"priority": 12000, "ruleCollections": [{"name": "nat-collection", "priority": 10005, "ruleCollectionType": "FirewallPolicyNatRuleCollection", "action": {"type": "DNAT"}, "rules": [{"name": "network-rule", "description": "test", "ruleType": "NatRule", "ipProtocols": ["TCP", "UDP"], "sourceAddresses": ["202.120.36.13", "202.120.36.14"], "destinationAddresses": ["202.120.36.15"], "destinationPorts": ["12000", "12001"], "translatedAddress": "128.1.1.1", "translatedPort": - "1234"}]}]}, "name": "myclirulecollectiongroup"}''' + "1234"}]}]}, "name": "myclirulecollectiongroup"}' headers: Accept: - application/json @@ -1124,43 +1094,41 @@ interactions: --rule-name --description --destination-addresses --source-addresses --translated-address --translated-port --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n }\r\n ],\r\n \"provisioningState\"\ - : \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"44d0c20b-f925-4b91-9018-50721c4380df\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n }\r\n + \ ],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"61064973-ee19-4539-8009-456d875f458b\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/e4f19a91-c2df-42c8-bae5-f82467b551d2?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/319089a9-e0e2-45b1-a77a-7d226d774a01?api-version=2020-05-01 cache-control: - no-cache content-length: - - '1396' + - '1409' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:19 GMT + - Thu, 27 Aug 2020 08:55:56 GMT expires: - '-1' pragma: @@ -1176,7 +1144,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1195' status: code: 200 message: OK @@ -1196,10 +1164,10 @@ interactions: --rule-name --description --destination-addresses --source-addresses --translated-address --translated-port --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/e4f19a91-c2df-42c8-bae5-f82467b551d2?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/319089a9-e0e2-45b1-a77a-7d226d774a01?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -1211,7 +1179,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:31 GMT + - Thu, 27 Aug 2020 08:56:07 GMT expires: - '-1' pragma: @@ -1245,39 +1213,37 @@ interactions: --rule-name --description --destination-addresses --source-addresses --translated-address --translated-port --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n }\r\n ],\r\n \"provisioningState\"\ - : \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"44d0c20b-f925-4b91-9018-50721c4380df\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n }\r\n + \ ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"61064973-ee19-4539-8009-456d875f458b\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '1397' + - '1410' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:32 GMT + - Thu, 27 Aug 2020 08:56:08 GMT expires: - '-1' pragma: @@ -1311,41 +1277,39 @@ interactions: --rule-name --rule-type --description --destination-addresses --source-addresses --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n }\r\n ],\r\n \"provisioningState\"\ - : \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"44d0c20b-f925-4b91-9018-50721c4380df\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n }\r\n + \ ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"61064973-ee19-4539-8009-456d875f458b\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '1397' + - '1410' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:34 GMT + - Thu, 27 Aug 2020 08:56:10 GMT expires: - '-1' pragma: @@ -1364,7 +1328,7 @@ interactions: code: 200 message: OK - request: - body: 'b''{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", "properties": {"priority": 12000, "ruleCollections": [{"name": "nat-collection", "priority": 10005, "ruleCollectionType": "FirewallPolicyNatRuleCollection", "action": {"type": "Dnat"}, "rules": [{"name": "network-rule", "ruleType": "NatRule", @@ -1376,7 +1340,7 @@ interactions: [{"name": "network-rule", "description": "test", "ruleType": "NetworkRule", "ipProtocols": ["Any", "ICMP"], "sourceAddresses": ["202.120.36.13", "202.120.36.14"], "destinationAddresses": ["202.120.36.15"], "destinationPorts": ["12003", "12004"]}]}]}, - "name": "myclirulecollectiongroup"}''' + "name": "myclirulecollectiongroup"}' headers: Accept: - application/json @@ -1395,56 +1359,53 @@ interactions: --rule-name --rule-type --description --destination-addresses --source-addresses --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n }\r\n ],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n\ - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"2176038b-2db3-4cde-8ac8-0a8dc75289cd\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n }\r\n ],\r\n \"provisioningState\": + \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"372eb78d-6938-4300-b84a-3fbb7afea71b\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/490f2b7b-b221-43c1-9643-f4a41c534eed?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/2dd57ae4-f962-49a4-94d7-99b33420b7f5?api-version=2020-05-01 cache-control: - no-cache content-length: - - '2244' + - '2257' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:37 GMT + - Thu, 27 Aug 2020 08:56:11 GMT expires: - '-1' pragma: @@ -1460,7 +1421,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1194' status: code: 200 message: OK @@ -1480,10 +1441,10 @@ interactions: --rule-name --rule-type --description --destination-addresses --source-addresses --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/490f2b7b-b221-43c1-9643-f4a41c534eed?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/2dd57ae4-f962-49a4-94d7-99b33420b7f5?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -1495,7 +1456,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:48 GMT + - Thu, 27 Aug 2020 08:56:23 GMT expires: - '-1' pragma: @@ -1529,52 +1490,49 @@ interactions: --rule-name --rule-type --description --destination-addresses --source-addresses --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n\ - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"2176038b-2db3-4cde-8ac8-0a8dc75289cd\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n }\r\n ],\r\n \"provisioningState\": + \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"372eb78d-6938-4300-b84a-3fbb7afea71b\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '2245' + - '2258' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:49 GMT + - Thu, 27 Aug 2020 08:56:23 GMT expires: - '-1' pragma: @@ -1608,54 +1566,51 @@ interactions: --rule-name --rule-type --description --destination-addresses --source-addresses --protocols --fqdn-tags User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n\ - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"2176038b-2db3-4cde-8ac8-0a8dc75289cd\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n }\r\n ],\r\n \"provisioningState\": + \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"372eb78d-6938-4300-b84a-3fbb7afea71b\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '2245' + - '2258' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:50 GMT + - Thu, 27 Aug 2020 08:56:24 GMT expires: - '-1' pragma: @@ -1674,7 +1629,7 @@ interactions: code: 200 message: OK - request: - body: 'b''{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", "properties": {"priority": 12000, "ruleCollections": [{"name": "nat-collection", "priority": 10005, "ruleCollectionType": "FirewallPolicyNatRuleCollection", "action": {"type": "Dnat"}, "rules": [{"name": "network-rule", "ruleType": "NatRule", @@ -1692,7 +1647,7 @@ interactions: "test", "ruleType": "ApplicationRule", "sourceAddresses": ["202.120.36.13", "202.120.36.14"], "destinationAddresses": ["202.120.36.15", "202.120.36.16"], "protocols": [{"protocolType": "Http", "port": 12800}, {"protocolType": "Https", - "port": 12801}], "fqdnTags": ["AzureBackup", "HDInsight"]}]}]}, "name": "myclirulecollectiongroup"}''' + "port": 12801}], "fqdnTags": ["AzureBackup", "HDInsight"]}]}]}, "name": "myclirulecollectiongroup"}' headers: Accept: - application/json @@ -1711,71 +1666,67 @@ interactions: --rule-name --rule-type --description --destination-addresses --source-addresses --protocols --fqdn-tags User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\ - \n \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\ - \n }\r\n ],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n\ - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"81b7b9e1-ad2f-41e3-98f6-2ba69a9890e1\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n },\r\n {\r\n \"ruleCollectionType\": + \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \"type\": + \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"ruleType\": + \"ApplicationRule\",\r\n \"name\": \"application-rule\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n + \ ],\r\n \"targetFqdns\": [],\r\n \"targetUrls\": + [],\r\n \"terminateTLS\": false,\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\",\r\n + \ \"202.120.36.16\"\r\n ],\r\n \"sourceIpGroups\": + []\r\n }\r\n ],\r\n \"name\": \"filter-collection-2\",\r\n + \ \"priority\": 14000\r\n }\r\n ],\r\n \"provisioningState\": + \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"db455734-23aa-477b-8865-2c4b4a623a57\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/266e6dd0-83f8-475a-a799-67edd12b269b?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/c85fc03d-1e90-4e8a-a781-7f260650d315?api-version=2020-05-01 cache-control: - no-cache content-length: - - '3257' + - '3337' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:38:55 GMT + - Thu, 27 Aug 2020 08:56:25 GMT expires: - '-1' pragma: @@ -1791,7 +1742,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1196' + - '1192' status: code: 200 message: OK @@ -1811,10 +1762,10 @@ interactions: --rule-name --rule-type --description --destination-addresses --source-addresses --protocols --fqdn-tags User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/266e6dd0-83f8-475a-a799-67edd12b269b?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/c85fc03d-1e90-4e8a-a781-7f260650d315?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -1826,7 +1777,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:07 GMT + - Thu, 27 Aug 2020 08:56:36 GMT expires: - '-1' pragma: @@ -1860,67 +1811,63 @@ interactions: --rule-name --rule-type --description --destination-addresses --source-addresses --protocols --fqdn-tags User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\ - \n \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\ - \n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n\ - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"81b7b9e1-ad2f-41e3-98f6-2ba69a9890e1\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n },\r\n {\r\n \"ruleCollectionType\": + \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \"type\": + \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"ruleType\": + \"ApplicationRule\",\r\n \"name\": \"application-rule\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n + \ ],\r\n \"targetFqdns\": [],\r\n \"targetUrls\": + [],\r\n \"terminateTLS\": false,\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\",\r\n + \ \"202.120.36.16\"\r\n ],\r\n \"sourceIpGroups\": + []\r\n }\r\n ],\r\n \"name\": \"filter-collection-2\",\r\n + \ \"priority\": 14000\r\n }\r\n ],\r\n \"provisioningState\": + \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"db455734-23aa-477b-8865-2c4b4a623a57\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '3258' + - '3338' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:08 GMT + - Thu, 27 Aug 2020 08:56:37 GMT expires: - '-1' pragma: @@ -1952,69 +1899,65 @@ interactions: ParameterSetName: - -g --policy-name --rule-collection-group-name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\ - \n \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\ - \n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n\ - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"81b7b9e1-ad2f-41e3-98f6-2ba69a9890e1\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n },\r\n {\r\n \"ruleCollectionType\": + \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \"type\": + \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"ruleType\": + \"ApplicationRule\",\r\n \"name\": \"application-rule\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n + \ ],\r\n \"targetFqdns\": [],\r\n \"targetUrls\": + [],\r\n \"terminateTLS\": false,\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\",\r\n + \ \"202.120.36.16\"\r\n ],\r\n \"sourceIpGroups\": + []\r\n }\r\n ],\r\n \"name\": \"filter-collection-2\",\r\n + \ \"priority\": 14000\r\n }\r\n ],\r\n \"provisioningState\": + \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"db455734-23aa-477b-8865-2c4b4a623a57\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '3258' + - '3338' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:09 GMT + - Thu, 27 Aug 2020 08:56:38 GMT expires: - '-1' pragma: @@ -2047,69 +1990,65 @@ interactions: - -g --policy-name --rule-collection-group-name --collection-name --name --rule-type --description --source-addresses --destination-addresses --protocols --target-fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\ - \n \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\ - \n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n\ - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"81b7b9e1-ad2f-41e3-98f6-2ba69a9890e1\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n },\r\n {\r\n \"ruleCollectionType\": + \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \"type\": + \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"ruleType\": + \"ApplicationRule\",\r\n \"name\": \"application-rule\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n + \ ],\r\n \"targetFqdns\": [],\r\n \"targetUrls\": + [],\r\n \"terminateTLS\": false,\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\",\r\n + \ \"202.120.36.16\"\r\n ],\r\n \"sourceIpGroups\": + []\r\n }\r\n ],\r\n \"name\": \"filter-collection-2\",\r\n + \ \"priority\": 14000\r\n }\r\n ],\r\n \"provisioningState\": + \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"db455734-23aa-477b-8865-2c4b4a623a57\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '3258' + - '3338' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:11 GMT + - Thu, 27 Aug 2020 08:56:40 GMT expires: - '-1' pragma: @@ -2128,7 +2067,7 @@ interactions: code: 200 message: OK - request: - body: 'b''{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", "properties": {"priority": 12000, "ruleCollections": [{"name": "nat-collection", "priority": 10005, "ruleCollectionType": "FirewallPolicyNatRuleCollection", "action": {"type": "Dnat"}, "rules": [{"name": "network-rule", "ruleType": "NatRule", @@ -2145,12 +2084,13 @@ interactions: "action": {"type": "Allow"}, "rules": [{"name": "application-rule", "ruleType": "ApplicationRule", "sourceAddresses": ["202.120.36.13", "202.120.36.14"], "destinationAddresses": ["202.120.36.15", "202.120.36.16"], "protocols": [{"protocolType": "Http", "port": - 12800}, {"protocolType": "Https", "port": 12801}], "targetFqdns": [], "fqdnTags": - ["AzureBackup", "HDInsight"], "sourceIpGroups": []}, {"name": "application-rule-2", - "description": "test", "ruleType": "ApplicationRule", "sourceAddresses": ["202.120.36.13", - "202.120.36.14"], "destinationAddresses": ["202.120.36.15", "202.120.36.16"], - "protocols": [{"protocolType": "Http", "port": 12800}, {"protocolType": "Https", - "port": 12801}], "targetFqdns": ["www.bing.com"]}]}]}, "name": "myclirulecollectiongroup"}''' + 12800}, {"protocolType": "Https", "port": 12801}], "targetUrls": [], "targetFqdns": + [], "fqdnTags": ["AzureBackup", "HDInsight"], "sourceIpGroups": [], "terminateTLS": + false}, {"name": "application-rule-2", "description": "test", "ruleType": "ApplicationRule", + "sourceAddresses": ["202.120.36.13", "202.120.36.14"], "destinationAddresses": + ["202.120.36.15", "202.120.36.16"], "protocols": [{"protocolType": "Http", "port": + 12800}, {"protocolType": "Https", "port": 12801}], "targetFqdns": ["www.bing.com"]}]}]}, + "name": "myclirulecollectiongroup"}' headers: Accept: - application/json @@ -2161,89 +2101,85 @@ interactions: Connection: - keep-alive Content-Length: - - '2079' + - '2120' Content-Type: - application/json; charset=utf-8 ParameterSetName: - -g --policy-name --rule-collection-group-name --collection-name --name --rule-type --description --source-addresses --destination-addresses --protocols --target-fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Updating\"\r\n\ - \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"37e38f87-a7cc-4df8-b8d7-384acab96a9f\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n },\r\n {\r\n \"ruleCollectionType\": + \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \"type\": + \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"ruleType\": + \"ApplicationRule\",\r\n \"name\": \"application-rule\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n + \ ],\r\n \"targetFqdns\": [],\r\n \"targetUrls\": + [],\r\n \"terminateTLS\": false,\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\",\r\n + \ \"202.120.36.16\"\r\n ],\r\n \"sourceIpGroups\": + []\r\n },\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n + \ \"name\": \"application-rule-2\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [],\r\n \"targetFqdns\": [\r\n \"www.bing.com\"\r\n + \ ],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"57599a9b-517b-429e-907d-a617bc7f28d9\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/5de35e1c-6fc8-4e28-b517-98024380f320?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/40626721-4c5d-44f4-9416-eca91feee5af?api-version=2020-05-01 cache-control: - no-cache content-length: - - '3999' + - '4146' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:14 GMT + - Thu, 27 Aug 2020 08:56:41 GMT expires: - '-1' pragma: @@ -2278,10 +2214,10 @@ interactions: - -g --policy-name --rule-collection-group-name --collection-name --name --rule-type --description --source-addresses --destination-addresses --protocols --target-fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/5de35e1c-6fc8-4e28-b517-98024380f320?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/40626721-4c5d-44f4-9416-eca91feee5af?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -2293,7 +2229,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:26 GMT + - Thu, 27 Aug 2020 08:56:52 GMT expires: - '-1' pragma: @@ -2326,78 +2262,74 @@ interactions: - -g --policy-name --rule-collection-group-name --collection-name --name --rule-type --description --source-addresses --destination-addresses --protocols --target-fqdns User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\ - \n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"37e38f87-a7cc-4df8-b8d7-384acab96a9f\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n },\r\n {\r\n \"ruleCollectionType\": + \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \"type\": + \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"ruleType\": + \"ApplicationRule\",\r\n \"name\": \"application-rule\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n + \ ],\r\n \"targetFqdns\": [],\r\n \"targetUrls\": + [],\r\n \"terminateTLS\": false,\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\",\r\n + \ \"202.120.36.16\"\r\n ],\r\n \"sourceIpGroups\": + []\r\n },\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n + \ \"name\": \"application-rule-2\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [],\r\n \"targetFqdns\": [\r\n \"www.bing.com\"\r\n + \ ],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"57599a9b-517b-429e-907d-a617bc7f28d9\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '4000' + - '4147' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:27 GMT + - Thu, 27 Aug 2020 08:56:53 GMT expires: - '-1' pragma: @@ -2431,80 +2363,76 @@ interactions: --description --destination-addresses --source-addresses --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\ - \n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"37e38f87-a7cc-4df8-b8d7-384acab96a9f\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n },\r\n {\r\n \"ruleCollectionType\": + \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \"type\": + \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"ruleType\": + \"ApplicationRule\",\r\n \"name\": \"application-rule\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n + \ ],\r\n \"targetFqdns\": [],\r\n \"targetUrls\": + [],\r\n \"terminateTLS\": false,\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\",\r\n + \ \"202.120.36.16\"\r\n ],\r\n \"sourceIpGroups\": + []\r\n },\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n + \ \"name\": \"application-rule-2\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [],\r\n \"targetFqdns\": [\r\n \"www.bing.com\"\r\n + \ ],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"57599a9b-517b-429e-907d-a617bc7f28d9\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '4000' + - '4147' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:28 GMT + - Thu, 27 Aug 2020 08:56:54 GMT expires: - '-1' pragma: @@ -2523,7 +2451,7 @@ interactions: code: 200 message: OK - request: - body: 'b''{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", "properties": {"priority": 12000, "ruleCollections": [{"name": "nat-collection", "priority": 10005, "ruleCollectionType": "FirewallPolicyNatRuleCollection", "action": {"type": "Dnat"}, "rules": [{"name": "network-rule", "ruleType": "NatRule", @@ -2543,12 +2471,13 @@ interactions: "action": {"type": "Allow"}, "rules": [{"name": "application-rule", "ruleType": "ApplicationRule", "sourceAddresses": ["202.120.36.13", "202.120.36.14"], "destinationAddresses": ["202.120.36.15", "202.120.36.16"], "protocols": [{"protocolType": "Http", "port": - 12800}, {"protocolType": "Https", "port": 12801}], "targetFqdns": [], "fqdnTags": - ["AzureBackup", "HDInsight"], "sourceIpGroups": []}, {"name": "application-rule-2", - "ruleType": "ApplicationRule", "sourceAddresses": ["202.120.36.13", "202.120.36.14"], - "destinationAddresses": ["202.120.36.15", "202.120.36.16"], "protocols": [{"protocolType": - "Http", "port": 12800}, {"protocolType": "Https", "port": 12801}], "targetFqdns": - ["www.bing.com"], "fqdnTags": [], "sourceIpGroups": []}]}]}, "name": "myclirulecollectiongroup"}''' + 12800}, {"protocolType": "Https", "port": 12801}], "targetUrls": [], "targetFqdns": + [], "fqdnTags": ["AzureBackup", "HDInsight"], "sourceIpGroups": [], "terminateTLS": + false}, {"name": "application-rule-2", "ruleType": "ApplicationRule", "sourceAddresses": + ["202.120.36.13", "202.120.36.14"], "destinationAddresses": ["202.120.36.15", + "202.120.36.16"], "protocols": [{"protocolType": "Http", "port": 12800}, {"protocolType": + "Https", "port": 12801}], "targetUrls": [], "targetFqdns": ["www.bing.com"], + "fqdnTags": [], "sourceIpGroups": [], "terminateTLS": false}]}]}, "name": "myclirulecollectiongroup"}' headers: Accept: - application/json @@ -2559,7 +2488,7 @@ interactions: Connection: - keep-alive Content-Length: - - '2342' + - '2424' Content-Type: - application/json; charset=utf-8 ParameterSetName: @@ -2567,91 +2496,87 @@ interactions: --description --destination-addresses --source-addresses --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n },\r\n {\r\ - \n \"ruleType\": \"NetworkRule\",\r\n \"name\": \"network-rule-2\"\ - ,\r\n \"ipProtocols\": [\r\n \"Any\",\r\n \ - \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": [\r\n\ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n \ - \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationIpGroups\": [],\r\n \"destinationFqdns\": [],\r\n \ - \ \"destinationPorts\": [\r\n \"12003\",\r\n \ - \ \"12004\"\r\n ]\r\n }\r\n ],\r\n \ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\n \ - \ },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Updating\"\r\n\ - \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"4b9e90f2-98f7-4e34-ad18-7d359a606071\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ },\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n + \ \"name\": \"network-rule-2\",\r\n \"ipProtocols\": + [\r\n \"Any\",\r\n \"ICMP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\": + [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\n + \ \"12004\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\n + \ },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\": + \"application-rule\",\r\n \"protocols\": [\r\n {\r\n + \ \"protocolType\": \"Http\",\r\n \"port\": 12800\r\n + \ },\r\n {\r\n \"protocolType\": \"Https\",\r\n + \ \"port\": 12801\r\n }\r\n ],\r\n \"fqdnTags\": + [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n ],\r\n + \ \"targetFqdns\": [],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n {\r\n + \ \"ruleType\": \"ApplicationRule\",\r\n \"name\": \"application-rule-2\",\r\n + \ \"protocols\": [\r\n {\r\n \"protocolType\": + \"Http\",\r\n \"port\": 12800\r\n },\r\n {\r\n + \ \"protocolType\": \"Https\",\r\n \"port\": + 12801\r\n }\r\n ],\r\n \"fqdnTags\": [],\r\n + \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\n + \ \"targetUrls\": [],\r\n \"terminateTLS\": false,\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"05794789-22d2-4e2d-9160-affc413137c3\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/2881ecd4-b471-42ad-b27b-f00fb206c088?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/de27d8e9-a710-4b32-9423-b060ce41f1b5?api-version=2020-05-01 cache-control: - no-cache content-length: - - '4603' + - '4750' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:32 GMT + - Thu, 27 Aug 2020 08:56:55 GMT expires: - '-1' pragma: @@ -2667,7 +2592,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1192' status: code: 200 message: OK @@ -2687,10 +2612,10 @@ interactions: --description --destination-addresses --source-addresses --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/2881ecd4-b471-42ad-b27b-f00fb206c088?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/de27d8e9-a710-4b32-9423-b060ce41f1b5?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -2702,7 +2627,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:44 GMT + - Thu, 27 Aug 2020 08:57:06 GMT expires: - '-1' pragma: @@ -2736,87 +2661,83 @@ interactions: --description --destination-addresses --source-addresses --destination-ports --ip-protocols User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n },\r\n {\r\ - \n \"ruleType\": \"NetworkRule\",\r\n \"name\": \"network-rule-2\"\ - ,\r\n \"ipProtocols\": [\r\n \"Any\",\r\n \ - \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": [\r\n\ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n \ - \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationIpGroups\": [],\r\n \"destinationFqdns\": [],\r\n \ - \ \"destinationPorts\": [\r\n \"12003\",\r\n \ - \ \"12004\"\r\n ]\r\n }\r\n ],\r\n \ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\n \ - \ },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\ - \n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"4b9e90f2-98f7-4e34-ad18-7d359a606071\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ },\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n + \ \"name\": \"network-rule-2\",\r\n \"ipProtocols\": + [\r\n \"Any\",\r\n \"ICMP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\": + [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\n + \ \"12004\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\n + \ },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\": + \"application-rule\",\r\n \"protocols\": [\r\n {\r\n + \ \"protocolType\": \"Http\",\r\n \"port\": 12800\r\n + \ },\r\n {\r\n \"protocolType\": \"Https\",\r\n + \ \"port\": 12801\r\n }\r\n ],\r\n \"fqdnTags\": + [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n ],\r\n + \ \"targetFqdns\": [],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n {\r\n + \ \"ruleType\": \"ApplicationRule\",\r\n \"name\": \"application-rule-2\",\r\n + \ \"protocols\": [\r\n {\r\n \"protocolType\": + \"Http\",\r\n \"port\": 12800\r\n },\r\n {\r\n + \ \"protocolType\": \"Https\",\r\n \"port\": + 12801\r\n }\r\n ],\r\n \"fqdnTags\": [],\r\n + \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\n + \ \"targetUrls\": [],\r\n \"terminateTLS\": false,\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"05794789-22d2-4e2d-9160-affc413137c3\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '4604' + - '4751' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:45 GMT + - Thu, 27 Aug 2020 08:57:07 GMT expires: - '-1' pragma: @@ -2848,89 +2769,85 @@ interactions: ParameterSetName: - -g --policy-name --rule-collection-group-name --collection-name --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n },\r\n {\r\ - \n \"ruleType\": \"NetworkRule\",\r\n \"name\": \"network-rule-2\"\ - ,\r\n \"ipProtocols\": [\r\n \"Any\",\r\n \ - \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": [\r\n\ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n \ - \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationIpGroups\": [],\r\n \"destinationFqdns\": [],\r\n \ - \ \"destinationPorts\": [\r\n \"12003\",\r\n \ - \ \"12004\"\r\n ]\r\n }\r\n ],\r\n \ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\n \ - \ },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\ - \n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"4b9e90f2-98f7-4e34-ad18-7d359a606071\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ },\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n + \ \"name\": \"network-rule-2\",\r\n \"ipProtocols\": + [\r\n \"Any\",\r\n \"ICMP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\": + [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\n + \ \"12004\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\n + \ },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\": + \"application-rule\",\r\n \"protocols\": [\r\n {\r\n + \ \"protocolType\": \"Http\",\r\n \"port\": 12800\r\n + \ },\r\n {\r\n \"protocolType\": \"Https\",\r\n + \ \"port\": 12801\r\n }\r\n ],\r\n \"fqdnTags\": + [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n ],\r\n + \ \"targetFqdns\": [],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n {\r\n + \ \"ruleType\": \"ApplicationRule\",\r\n \"name\": \"application-rule-2\",\r\n + \ \"protocols\": [\r\n {\r\n \"protocolType\": + \"Http\",\r\n \"port\": 12800\r\n },\r\n {\r\n + \ \"protocolType\": \"Https\",\r\n \"port\": + 12801\r\n }\r\n ],\r\n \"fqdnTags\": [],\r\n + \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\n + \ \"targetUrls\": [],\r\n \"terminateTLS\": false,\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"05794789-22d2-4e2d-9160-affc413137c3\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '4604' + - '4751' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:47 GMT + - Thu, 27 Aug 2020 08:57:08 GMT expires: - '-1' pragma: @@ -2949,7 +2866,7 @@ interactions: code: 200 message: OK - request: - body: 'b''{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", "properties": {"priority": 12000, "ruleCollections": [{"name": "nat-collection", "priority": 10005, "ruleCollectionType": "FirewallPolicyNatRuleCollection", "action": {"type": "Dnat"}, "rules": [{"name": "network-rule", "ruleType": "NatRule", @@ -2966,12 +2883,13 @@ interactions: "action": {"type": "Allow"}, "rules": [{"name": "application-rule", "ruleType": "ApplicationRule", "sourceAddresses": ["202.120.36.13", "202.120.36.14"], "destinationAddresses": ["202.120.36.15", "202.120.36.16"], "protocols": [{"protocolType": "Http", "port": - 12800}, {"protocolType": "Https", "port": 12801}], "targetFqdns": [], "fqdnTags": - ["AzureBackup", "HDInsight"], "sourceIpGroups": []}, {"name": "application-rule-2", - "ruleType": "ApplicationRule", "sourceAddresses": ["202.120.36.13", "202.120.36.14"], - "destinationAddresses": ["202.120.36.15", "202.120.36.16"], "protocols": [{"protocolType": - "Http", "port": 12800}, {"protocolType": "Https", "port": 12801}], "targetFqdns": - ["www.bing.com"], "fqdnTags": [], "sourceIpGroups": []}]}]}, "name": "myclirulecollectiongroup"}''' + 12800}, {"protocolType": "Https", "port": 12801}], "targetUrls": [], "targetFqdns": + [], "fqdnTags": ["AzureBackup", "HDInsight"], "sourceIpGroups": [], "terminateTLS": + false}, {"name": "application-rule-2", "ruleType": "ApplicationRule", "sourceAddresses": + ["202.120.36.13", "202.120.36.14"], "destinationAddresses": ["202.120.36.15", + "202.120.36.16"], "protocols": [{"protocolType": "Http", "port": 12800}, {"protocolType": + "Https", "port": 12801}], "targetUrls": [], "targetFqdns": ["www.bing.com"], + "fqdnTags": [], "sourceIpGroups": [], "terminateTLS": false}]}]}, "name": "myclirulecollectiongroup"}' headers: Accept: - application/json @@ -2982,88 +2900,84 @@ interactions: Connection: - keep-alive Content-Length: - - '2094' + - '2176' Content-Type: - application/json; charset=utf-8 ParameterSetName: - -g --policy-name --rule-collection-group-name --collection-name --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Updating\"\r\n\ - \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"14898ba1-79ee-4d8c-a48b-9f31769cc3da\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n },\r\n {\r\n \"ruleCollectionType\": + \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \"type\": + \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"ruleType\": + \"ApplicationRule\",\r\n \"name\": \"application-rule\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n + \ ],\r\n \"targetFqdns\": [],\r\n \"targetUrls\": + [],\r\n \"terminateTLS\": false,\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\",\r\n + \ \"202.120.36.16\"\r\n ],\r\n \"sourceIpGroups\": + []\r\n },\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n + \ \"name\": \"application-rule-2\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [],\r\n \"targetFqdns\": [\r\n \"www.bing.com\"\r\n + \ ],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"23abaaa0-118b-47b1-ac21-9acc959b3157\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/187445e0-abc5-4b6d-a859-31be8ac305d8?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/4cd23e2d-a125-4461-bcb2-01acec830802?api-version=2020-05-01 cache-control: - no-cache content-length: - - '3999' + - '4146' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:39:51 GMT + - Thu, 27 Aug 2020 08:57:09 GMT expires: - '-1' pragma: @@ -3079,7 +2993,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1196' status: code: 200 message: OK @@ -3097,10 +3011,10 @@ interactions: ParameterSetName: - -g --policy-name --rule-collection-group-name --collection-name --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/187445e0-abc5-4b6d-a859-31be8ac305d8?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/4cd23e2d-a125-4461-bcb2-01acec830802?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -3112,7 +3026,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:40:02 GMT + - Thu, 27 Aug 2020 08:57:20 GMT expires: - '-1' pragma: @@ -3144,78 +3058,74 @@ interactions: ParameterSetName: - -g --policy-name --rule-collection-group-name --collection-name --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\ - \n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"14898ba1-79ee-4d8c-a48b-9f31769cc3da\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n },\r\n {\r\n \"ruleCollectionType\": + \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \"type\": + \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"ruleType\": + \"ApplicationRule\",\r\n \"name\": \"application-rule\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n + \ ],\r\n \"targetFqdns\": [],\r\n \"targetUrls\": + [],\r\n \"terminateTLS\": false,\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\",\r\n + \ \"202.120.36.16\"\r\n ],\r\n \"sourceIpGroups\": + []\r\n },\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n + \ \"name\": \"application-rule-2\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [],\r\n \"targetFqdns\": [\r\n \"www.bing.com\"\r\n + \ ],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"23abaaa0-118b-47b1-ac21-9acc959b3157\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '4000' + - '4147' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:40:03 GMT + - Thu, 27 Aug 2020 08:57:21 GMT expires: - '-1' pragma: @@ -3247,80 +3157,76 @@ interactions: ParameterSetName: - -g --policy-name --rule-collection-group-name --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\"\ - : \"network-rule\",\r\n \"ipProtocols\": [\r\n \"\ - Any\",\r\n \"ICMP\"\r\n ],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"sourceIpGroups\": [],\r\n \"\ - destinationAddresses\": [\r\n \"202.120.36.15\"\r\n \ - \ ],\r\n \"destinationIpGroups\": [],\r\n \"destinationFqdns\"\ - : [],\r\n \"destinationPorts\": [\r\n \"12003\",\r\ - \n \"12004\"\r\n ]\r\n }\r\n ],\r\n\ - \ \"name\": \"filter-collection-1\",\r\n \"priority\": 13000\r\ - \n },\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"ApplicationRule\"\ - ,\r\n \"name\": \"application-rule\",\r\n \"protocols\"\ - : [\r\n {\r\n \"protocolType\": \"Http\",\r\n\ - \ \"port\": 12800\r\n },\r\n {\r\n\ - \ \"protocolType\": \"Https\",\r\n \"port\"\ - : 12801\r\n }\r\n ],\r\n \"fqdnTags\":\ - \ [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\ - \n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"14898ba1-79ee-4d8c-a48b-9f31769cc3da\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NetworkRule\",\r\n \"name\": + \"network-rule\",\r\n \"ipProtocols\": [\r\n \"Any\",\r\n + \ \"ICMP\"\r\n ],\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"sourceIpGroups\": [],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\"\r\n ],\r\n \"destinationIpGroups\": + [],\r\n \"destinationFqdns\": [],\r\n \"destinationPorts\": + [\r\n \"12003\",\r\n \"12004\"\r\n ]\r\n + \ }\r\n ],\r\n \"name\": \"filter-collection-1\",\r\n + \ \"priority\": 13000\r\n },\r\n {\r\n \"ruleCollectionType\": + \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \"type\": + \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"ruleType\": + \"ApplicationRule\",\r\n \"name\": \"application-rule\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n + \ ],\r\n \"targetFqdns\": [],\r\n \"targetUrls\": + [],\r\n \"terminateTLS\": false,\r\n \"sourceAddresses\": + [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n + \ ],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\",\r\n + \ \"202.120.36.16\"\r\n ],\r\n \"sourceIpGroups\": + []\r\n },\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n + \ \"name\": \"application-rule-2\",\r\n \"protocols\": + [\r\n {\r\n \"protocolType\": \"Http\",\r\n \"port\": + 12800\r\n },\r\n {\r\n \"protocolType\": + \"Https\",\r\n \"port\": 12801\r\n }\r\n ],\r\n + \ \"fqdnTags\": [],\r\n \"targetFqdns\": [\r\n \"www.bing.com\"\r\n + \ ],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"23abaaa0-118b-47b1-ac21-9acc959b3157\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '4000' + - '4147' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:40:05 GMT + - Thu, 27 Aug 2020 08:57:23 GMT expires: - '-1' pragma: @@ -3339,7 +3245,7 @@ interactions: code: 200 message: OK - request: - body: 'b''{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup", "properties": {"priority": 12000, "ruleCollections": [{"name": "nat-collection", "priority": 10005, "ruleCollectionType": "FirewallPolicyNatRuleCollection", "action": {"type": "Dnat"}, "rules": [{"name": "network-rule", "ruleType": "NatRule", @@ -3351,12 +3257,13 @@ interactions: [{"name": "application-rule", "ruleType": "ApplicationRule", "sourceAddresses": ["202.120.36.13", "202.120.36.14"], "destinationAddresses": ["202.120.36.15", "202.120.36.16"], "protocols": [{"protocolType": "Http", "port": 12800}, {"protocolType": - "Https", "port": 12801}], "targetFqdns": [], "fqdnTags": ["AzureBackup", "HDInsight"], - "sourceIpGroups": []}, {"name": "application-rule-2", "ruleType": "ApplicationRule", - "sourceAddresses": ["202.120.36.13", "202.120.36.14"], "destinationAddresses": - ["202.120.36.15", "202.120.36.16"], "protocols": [{"protocolType": "Http", "port": - 12800}, {"protocolType": "Https", "port": 12801}], "targetFqdns": ["www.bing.com"], - "fqdnTags": [], "sourceIpGroups": []}]}]}, "name": "myclirulecollectiongroup"}''' + "Https", "port": 12801}], "targetUrls": [], "targetFqdns": [], "fqdnTags": ["AzureBackup", + "HDInsight"], "sourceIpGroups": [], "terminateTLS": false}, {"name": "application-rule-2", + "ruleType": "ApplicationRule", "sourceAddresses": ["202.120.36.13", "202.120.36.14"], + "destinationAddresses": ["202.120.36.15", "202.120.36.16"], "protocols": [{"protocolType": + "Http", "port": 12800}, {"protocolType": "Https", "port": 12801}], "targetUrls": + [], "targetFqdns": ["www.bing.com"], "fqdnTags": [], "sourceIpGroups": [], "terminateTLS": + false}]}]}, "name": "myclirulecollectiongroup"}' headers: Accept: - application/json @@ -3367,76 +3274,73 @@ interactions: Connection: - keep-alive Content-Length: - - '1646' + - '1728' Content-Type: - application/json; charset=utf-8 ParameterSetName: - -g --policy-name --rule-collection-group-name --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \ - \ \"name\": \"application-rule\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \ - \ \"port\": 12800\r\n },\r\n {\r\n \ - \ \"protocolType\": \"Https\",\r\n \"port\": 12801\r\ - \n }\r\n ],\r\n \"fqdnTags\": [\r\n \ - \ \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Updating\"\r\n\ - \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"cc189863-f80d-44ce-87e1-c7580cdd2a83\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\": + \"application-rule\",\r\n \"protocols\": [\r\n {\r\n + \ \"protocolType\": \"Http\",\r\n \"port\": 12800\r\n + \ },\r\n {\r\n \"protocolType\": \"Https\",\r\n + \ \"port\": 12801\r\n }\r\n ],\r\n \"fqdnTags\": + [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n ],\r\n + \ \"targetFqdns\": [],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n {\r\n + \ \"ruleType\": \"ApplicationRule\",\r\n \"name\": \"application-rule-2\",\r\n + \ \"protocols\": [\r\n {\r\n \"protocolType\": + \"Http\",\r\n \"port\": 12800\r\n },\r\n {\r\n + \ \"protocolType\": \"Https\",\r\n \"port\": + 12801\r\n }\r\n ],\r\n \"fqdnTags\": [],\r\n + \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\n + \ \"targetUrls\": [],\r\n \"terminateTLS\": false,\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"5889ad1f-db01-408e-b8fe-f3ba78212cec\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/2fd3e935-a796-414c-a699-9dd237b0a805?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/1a75e9ea-c9ff-4251-ab2f-8f45fa8e4479?api-version=2020-05-01 cache-control: - no-cache content-length: - - '3151' + - '3298' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:40:08 GMT + - Thu, 27 Aug 2020 08:57:24 GMT expires: - '-1' pragma: @@ -3452,7 +3356,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1191' status: code: 200 message: OK @@ -3470,10 +3374,10 @@ interactions: ParameterSetName: - -g --policy-name --rule-collection-group-name --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/2fd3e935-a796-414c-a699-9dd237b0a805?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/1a75e9ea-c9ff-4251-ab2f-8f45fa8e4479?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -3485,7 +3389,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:40:19 GMT + - Thu, 27 Aug 2020 08:57:35 GMT expires: - '-1' pragma: @@ -3517,66 +3421,63 @@ interactions: ParameterSetName: - -g --policy-name --rule-collection-group-name --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \ - \ \"name\": \"application-rule\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \ - \ \"port\": 12800\r\n },\r\n {\r\n \ - \ \"protocolType\": \"Https\",\r\n \"port\": 12801\r\ - \n }\r\n ],\r\n \"fqdnTags\": [\r\n \ - \ \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\ - \n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"cc189863-f80d-44ce-87e1-c7580cdd2a83\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\": + \"application-rule\",\r\n \"protocols\": [\r\n {\r\n + \ \"protocolType\": \"Http\",\r\n \"port\": 12800\r\n + \ },\r\n {\r\n \"protocolType\": \"Https\",\r\n + \ \"port\": 12801\r\n }\r\n ],\r\n \"fqdnTags\": + [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n ],\r\n + \ \"targetFqdns\": [],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n {\r\n + \ \"ruleType\": \"ApplicationRule\",\r\n \"name\": \"application-rule-2\",\r\n + \ \"protocols\": [\r\n {\r\n \"protocolType\": + \"Http\",\r\n \"port\": 12800\r\n },\r\n {\r\n + \ \"protocolType\": \"Https\",\r\n \"port\": + 12801\r\n }\r\n ],\r\n \"fqdnTags\": [],\r\n + \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\n + \ \"targetUrls\": [],\r\n \"terminateTLS\": false,\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"5889ad1f-db01-408e-b8fe-f3ba78212cec\",\r\n \"location\": \"eastus2\"\r\n}" headers: cache-control: - no-cache content-length: - - '3152' + - '3299' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:40:19 GMT + - Thu, 27 Aug 2020 08:57:36 GMT expires: - '-1' pragma: @@ -3610,74 +3511,71 @@ interactions: ParameterSetName: - -g --policy-name --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\"\ - : [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\"\ - ,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\ - \n \"rules\": [\r\n {\r\n \"ruleType\": \"NatRule\"\ - ,\r\n \"name\": \"network-rule\",\r\n \"translatedAddress\"\ - : \"128.1.1.1\",\r\n \"translatedPort\": \"1234\",\r\n \ - \ \"ipProtocols\": [\r\n \"TCP\",\r\n \"UDP\"\ - \r\n ],\r\n \"sourceAddresses\": [\r\n \ - \ \"202.120.36.13\",\r\n \"202.120.36.14\"\r\n ],\r\ - \n \"sourceIpGroups\": [],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\"\r\n ],\r\n \"\ - destinationPorts\": [\r\n \"12000\",\r\n \"12001\"\ - \r\n ]\r\n }\r\n ],\r\n \"name\": \"nat-collection\"\ - ,\r\n \"priority\": 10005\r\n },\r\n {\r\n \"ruleCollectionType\"\ - : \"FirewallPolicyFilterRuleCollection\",\r\n \"action\": {\r\n \ - \ \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \ - \ \"name\": \"application-rule\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \ - \ \"port\": 12800\r\n },\r\n {\r\n \ - \ \"protocolType\": \"Https\",\r\n \"port\": 12801\r\ - \n }\r\n ],\r\n \"fqdnTags\": [\r\n \ - \ \"AzureBackup\",\r\n \"HDInsight\"\r\n \ - \ ],\r\n \"targetFqdns\": [],\r\n \"sourceAddresses\"\ - : [\r\n \"202.120.36.13\",\r\n \"202.120.36.14\"\ - \r\n ],\r\n \"destinationAddresses\": [\r\n \ - \ \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n \ - \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n \ - \ {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\"\ - : \"application-rule-2\",\r\n \"protocols\": [\r\n \ - \ {\r\n \"protocolType\": \"Http\",\r\n \"\ - port\": 12800\r\n },\r\n {\r\n \"\ - protocolType\": \"Https\",\r\n \"port\": 12801\r\n \ - \ }\r\n ],\r\n \"fqdnTags\": [],\r\n \ - \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\ - \n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\ - \n \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\"\ - : [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\ - \r\n ],\r\n \"sourceIpGroups\": []\r\n }\r\n\ - \ ],\r\n \"name\": \"filter-collection-2\",\r\n \"priority\"\ - : 14000\r\n }\r\n ],\r\n \"provisioningState\": \"Deleting\"\r\n\ - \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\"\ - ,\r\n \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/RuleCollectionGroups\"\ - ,\r\n \"etag\": \"cc189863-f80d-44ce-87e1-c7580cdd2a83\",\r\n \"location\"\ - : \"eastus2euap\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"priority\": 12000,\r\n \"ruleCollections\": + [\r\n {\r\n \"ruleCollectionType\": \"FirewallPolicyNatRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"NatRule\",\r\n \"name\": + \"network-rule\",\r\n \"translatedAddress\": \"128.1.1.1\",\r\n + \ \"translatedPort\": \"1234\",\r\n \"ipProtocols\": + [\r\n \"TCP\",\r\n \"UDP\"\r\n ],\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"sourceIpGroups\": + [],\r\n \"destinationAddresses\": [\r\n \"202.120.36.15\"\r\n + \ ],\r\n \"destinationPorts\": [\r\n \"12000\",\r\n + \ \"12001\"\r\n ]\r\n }\r\n ],\r\n + \ \"name\": \"nat-collection\",\r\n \"priority\": 10005\r\n },\r\n + \ {\r\n \"ruleCollectionType\": \"FirewallPolicyFilterRuleCollection\",\r\n + \ \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": + [\r\n {\r\n \"ruleType\": \"ApplicationRule\",\r\n \"name\": + \"application-rule\",\r\n \"protocols\": [\r\n {\r\n + \ \"protocolType\": \"Http\",\r\n \"port\": 12800\r\n + \ },\r\n {\r\n \"protocolType\": \"Https\",\r\n + \ \"port\": 12801\r\n }\r\n ],\r\n \"fqdnTags\": + [\r\n \"AzureBackup\",\r\n \"HDInsight\"\r\n ],\r\n + \ \"targetFqdns\": [],\r\n \"targetUrls\": [],\r\n \"terminateTLS\": + false,\r\n \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n },\r\n {\r\n + \ \"ruleType\": \"ApplicationRule\",\r\n \"name\": \"application-rule-2\",\r\n + \ \"protocols\": [\r\n {\r\n \"protocolType\": + \"Http\",\r\n \"port\": 12800\r\n },\r\n {\r\n + \ \"protocolType\": \"Https\",\r\n \"port\": + 12801\r\n }\r\n ],\r\n \"fqdnTags\": [],\r\n + \ \"targetFqdns\": [\r\n \"www.bing.com\"\r\n ],\r\n + \ \"targetUrls\": [],\r\n \"terminateTLS\": false,\r\n + \ \"sourceAddresses\": [\r\n \"202.120.36.13\",\r\n + \ \"202.120.36.14\"\r\n ],\r\n \"destinationAddresses\": + [\r\n \"202.120.36.15\",\r\n \"202.120.36.16\"\r\n + \ ],\r\n \"sourceIpGroups\": []\r\n }\r\n ],\r\n + \ \"name\": \"filter-collection-2\",\r\n \"priority\": 14000\r\n + \ }\r\n ],\r\n \"provisioningState\": \"Deleting\"\r\n },\r\n \"id\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy/ruleCollectionGroups/myclirulecollectiongroup\",\r\n + \ \"name\": \"myclirulecollectiongroup\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies/RuleCollectionGroups\",\r\n + \ \"etag\": \"5889ad1f-db01-408e-b8fe-f3ba78212cec\",\r\n \"location\": \"eastus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/480af805-5c60-4976-9a83-2bd113193785?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/e2f1b760-4286-4af8-bf4e-32f1ace25270?api-version=2020-05-01 cache-control: - no-cache content-length: - - '3151' + - '3298' content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:40:24 GMT + - Thu, 27 Aug 2020 08:57:37 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperationResults/480af805-5c60-4976-9a83-2bd113193785?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperationResults/e2f1b760-4286-4af8-bf4e-32f1ace25270?api-version=2020-05-01 pragma: - no-cache server: @@ -3705,10 +3603,10 @@ interactions: ParameterSetName: - -g --policy-name --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2euap/nfvOperations/480af805-5c60-4976-9a83-2bd113193785?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/e2f1b760-4286-4af8-bf4e-32f1ace25270?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -3720,7 +3618,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:40:35 GMT + - Thu, 27 Aug 2020 08:57:49 GMT expires: - '-1' pragma: @@ -3752,8 +3650,8 @@ interactions: ParameterSetName: - -g --policy-name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET @@ -3769,7 +3667,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 18 Jun 2020 04:40:37 GMT + - Thu, 27 Aug 2020 08:57:50 GMT expires: - '-1' pragma: @@ -3803,8 +3701,8 @@ interactions: ParameterSetName: - -g --name User-Agent: - - python/3.7.4 (Linux-4.15.0-99-generic-x86_64-with-debian-buster-sid) msrest/0.6.9 - msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.7.0 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: DELETE @@ -3818,7 +3716,7 @@ interactions: content-length: - '0' date: - - Thu, 18 Jun 2020 04:40:45 GMT + - Thu, 27 Aug 2020 08:57:55 GMT expires: - '-1' pragma: @@ -3830,7 +3728,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-deletes: - - '14999' + - '14998' status: code: 200 message: OK diff --git a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_policy_with_threat_intel_allowlist.yaml b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_policy_with_threat_intel_allowlist.yaml new file mode 100644 index 00000000000..f119697185d --- /dev/null +++ b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_policy_with_threat_intel_allowlist.yaml @@ -0,0 +1,377 @@ +interactions: +- request: + body: '{"location": "eastus2"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall policy create + Connection: + - keep-alive + Content-Length: + - '23' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n -l + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n + \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"firewalls\": + [],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"e18c18bb-b9fa-4735-9089-babc8f030d0b\",\r\n \"location\": \"eastus2\"\r\n}" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/6e7586f4-9083-449c-877b-b9dff183e208?api-version=2020-05-01 + cache-control: + - no-cache + content-length: + - '543' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:50:22 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: + - '1185' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall policy create + Connection: + - keep-alive + ParameterSetName: + - -g -n -l + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/6e7586f4-9083-449c-877b-b9dff183e208?api-version=2020-05-01 + response: + body: + string: "{\r\n \"status\": \"Succeeded\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '29' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:50:33 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: + - network firewall policy create + Connection: + - keep-alive + ParameterSetName: + - -g -n -l + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n + \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"firewalls\": + [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"e18c18bb-b9fa-4735-9089-babc8f030d0b\",\r\n \"location\": \"eastus2\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '544' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:50: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: + - network firewall policy update + Connection: + - keep-alive + ParameterSetName: + - -g -n --threat-intel-mode --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n + \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"firewalls\": + [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"e18c18bb-b9fa-4735-9089-babc8f030d0b\",\r\n \"location\": \"eastus2\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '544' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:50: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: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy", + "location": "eastus2", "properties": {"threatIntelMode": "Deny", "threatIntelWhitelist": + {"ipAddresses": ["102.0.0.0", "102.0.0.1"], "fqdns": ["*.google.com"]}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall policy update + Connection: + - keep-alive + Content-Length: + - '371' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n --threat-intel-mode --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Deny\",\r\n + \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.google.com\"\r\n + \ ],\r\n \"ipAddresses\": [\r\n \"102.0.0.0\",\r\n \"102.0.0.1\"\r\n + \ ]\r\n },\r\n \"childPolicies\": [],\r\n \"ruleCollectionGroups\": + [],\r\n \"firewalls\": [],\r\n \"provisioningState\": \"Updating\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"00bc69c8-2456-4b8c-9cb0-50473ce0a545\",\r\n \"location\": \"eastus2\"\r\n}" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/402a6702-0c43-4b07-ab26-f06c28316cf9?api-version=2020-05-01 + cache-control: + - no-cache + content-length: + - '709' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:50:37 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: + - '1195' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall policy update + Connection: + - keep-alive + ParameterSetName: + - -g -n --threat-intel-mode --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/nfvOperations/402a6702-0c43-4b07-ab26-f06c28316cf9?api-version=2020-05-01 + response: + body: + string: "{\r\n \"status\": \"Succeeded\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '29' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:50: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: + - network firewall policy update + Connection: + - keep-alive + ParameterSetName: + - -g -n --threat-intel-mode --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Deny\",\r\n + \ \"threatIntelWhitelist\": {\r\n \"fqdns\": [\r\n \"*.google.com\"\r\n + \ ],\r\n \"ipAddresses\": [\r\n \"102.0.0.0\",\r\n \"102.0.0.1\"\r\n + \ ]\r\n },\r\n \"childPolicies\": [],\r\n \"ruleCollectionGroups\": + [],\r\n \"firewalls\": [],\r\n \"provisioningState\": \"Succeeded\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_policy_with_threat_intel_allowlist000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n + \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n + \ \"etag\": \"00bc69c8-2456-4b8c-9cb0-50473ce0a545\",\r\n \"location\": \"eastus2\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '710' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:50: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 +version: 1 diff --git a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_rules.yaml b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_rules.yaml index 16b90023e30..0d706ac16a0 100644 --- a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_rules.yaml +++ b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_rules.yaml @@ -13,24 +13,24 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_rules000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001","name":"cli_test_azure_firewall_rules000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-07T06:38:46Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001","name":"cli_test_azure_firewall_rules000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-27T08:07:51Z","StorageType":"Standard_LRS","type":"test"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '428' + - '471' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:38:49 GMT + - Thu, 27 Aug 2020 08:07:54 GMT expires: - '-1' pragma: @@ -63,8 +63,8 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -72,7 +72,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"3f608658-5958-4309-a2ab-99d2f61b1338\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"9e348b17-0527-4156-bd70-1673466b103f\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -85,7 +85,7 @@ interactions: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/76f58639-bc67-4f18-9f66-8fc78a5eb9db?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7b7ff7f8-14b1-4f9d-86ba-dee82b71be86?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -93,7 +93,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:38:54 GMT + - Thu, 27 Aug 2020 08:08:01 GMT expires: - '-1' pragma: @@ -106,9 +106,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 0ad9a881-5ef2-460b-a0fc-384ea0552889 + - 37558ba9-f474-47ba-a30c-b323a178c385 x-ms-ratelimit-remaining-subscription-writes: - - '1188' + - '1198' status: code: 201 message: Created @@ -126,10 +126,10 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/76f58639-bc67-4f18-9f66-8fc78a5eb9db?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/7b7ff7f8-14b1-4f9d-86ba-dee82b71be86?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -141,7 +141,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:05 GMT + - Thu, 27 Aug 2020 08:08:12 GMT expires: - '-1' pragma: @@ -158,7 +158,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - ddc1b2c9-862d-4533-8b69-32e51ac63bf9 + - c995cbee-602c-4a1e-b4f8-d9c3f0c64c3c status: code: 200 message: OK @@ -176,14 +176,14 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"e2a8799e-f727-433e-9234-e6cfe1b841c2\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"09d40dbc-ae1d-49a2-b9e8-d8cbf91580e8\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -200,9 +200,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:05 GMT + - Thu, 27 Aug 2020 08:08:12 GMT etag: - - W/"e2a8799e-f727-433e-9234-e6cfe1b841c2" + - W/"09d40dbc-ae1d-49a2-b9e8-d8cbf91580e8" expires: - '-1' pragma: @@ -219,7 +219,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 74b9285a-9a6f-4e65-9074-c04a7f86d119 + - ba92237b-5187-4fdb-831d-2f66fcc0fb9a status: code: 200 message: OK @@ -238,8 +238,8 @@ interactions: - -g -n -c --priority --action -f --source-addresses --protocols --destination-fqdns --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET @@ -247,7 +247,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"e2a8799e-f727-433e-9234-e6cfe1b841c2\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"09d40dbc-ae1d-49a2-b9e8-d8cbf91580e8\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -264,9 +264,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:07 GMT + - Thu, 27 Aug 2020 08:08:14 GMT etag: - - W/"e2a8799e-f727-433e-9234-e6cfe1b841c2" + - W/"09d40dbc-ae1d-49a2-b9e8-d8cbf91580e8" expires: - '-1' pragma: @@ -283,7 +283,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 9174081d-e9a4-434e-b560-4f2dba5b54ae + - 7d55f3a1-3bcd-4968-bcfc-8fd3b7eafd47 status: code: 200 message: OK @@ -314,8 +314,8 @@ interactions: - -g -n -c --priority --action -f --source-addresses --protocols --destination-fqdns --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -323,7 +323,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"f6797210-6eb3-456b-9a00-bc87eeeb11d9\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"b65d2107-3704-4034-ae37-46ad11e14af3\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -331,7 +331,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"f6797210-6eb3-456b-9a00-bc87eeeb11d9\\\"\",\r\n + \ \"etag\": \"W/\\\"b65d2107-3704-4034-ae37-46ad11e14af3\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -348,7 +348,7 @@ interactions: []\r\n }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/d5ab6c9a-a6a9-41bd-b06d-c9a4a4a492f4?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/a809020d-37e3-44b1-93c5-9ae735042a69?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -356,7 +356,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:07 GMT + - Thu, 27 Aug 2020 08:08:14 GMT expires: - '-1' pragma: @@ -373,9 +373,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - d3c83852-1a31-44e5-aec8-5d3fb1eaf6d9 + - f7c2023f-48d6-4e8a-aa46-14134151cd27 x-ms-ratelimit-remaining-subscription-writes: - - '1187' + - '1198' status: code: 200 message: OK @@ -394,10 +394,10 @@ interactions: - -g -n -c --priority --action -f --source-addresses --protocols --destination-fqdns --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/d5ab6c9a-a6a9-41bd-b06d-c9a4a4a492f4?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/a809020d-37e3-44b1-93c5-9ae735042a69?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -409,7 +409,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:17 GMT + - Thu, 27 Aug 2020 08:08:25 GMT expires: - '-1' pragma: @@ -426,7 +426,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - ef48e7d9-064f-400a-93c7-c631ca4a091a + - 910b1af1-057d-47d6-818a-ab26781e9efd status: code: 200 message: OK @@ -445,14 +445,14 @@ interactions: - -g -n -c --priority --action -f --source-addresses --protocols --destination-fqdns --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"ac65aa16-4926-4327-a504-94faa0d2c9a8\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"cd289e09-5da5-4344-acc5-c70744215069\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -460,7 +460,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"ac65aa16-4926-4327-a504-94faa0d2c9a8\\\"\",\r\n + \ \"etag\": \"W/\\\"cd289e09-5da5-4344-acc5-c70744215069\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -483,9 +483,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:18 GMT + - Thu, 27 Aug 2020 08:08:25 GMT etag: - - W/"ac65aa16-4926-4327-a504-94faa0d2c9a8" + - W/"cd289e09-5da5-4344-acc5-c70744215069" expires: - '-1' pragma: @@ -502,7 +502,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 8e2e0438-337b-492e-9db1-c8d46382267b + - 90b40f9e-9734-41c9-be15-3784ecc47f74 status: code: 200 message: OK @@ -521,8 +521,8 @@ interactions: - -g -n -c --priority --action -f --source-addresses --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET @@ -530,7 +530,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"ac65aa16-4926-4327-a504-94faa0d2c9a8\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"cd289e09-5da5-4344-acc5-c70744215069\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -538,7 +538,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"ac65aa16-4926-4327-a504-94faa0d2c9a8\\\"\",\r\n + \ \"etag\": \"W/\\\"cd289e09-5da5-4344-acc5-c70744215069\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -561,9 +561,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:19 GMT + - Thu, 27 Aug 2020 08:08:26 GMT etag: - - W/"ac65aa16-4926-4327-a504-94faa0d2c9a8" + - W/"cd289e09-5da5-4344-acc5-c70744215069" expires: - '-1' pragma: @@ -580,7 +580,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 36a408c5-50a7-4c67-a1b5-9116be606759 + - c36ee62a-533d-4cfd-9144-1d1c7b537e57 status: code: 200 message: OK @@ -616,8 +616,8 @@ interactions: - -g -n -c --priority --action -f --source-addresses --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -625,7 +625,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"654bd73f-dbf1-47a5-a3ca-8a7d69c87aa9\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"19d810eb-12fc-438f-b1e3-f7b6f2acef10\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -633,7 +633,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"654bd73f-dbf1-47a5-a3ca-8a7d69c87aa9\\\"\",\r\n + \ \"etag\": \"W/\\\"19d810eb-12fc-438f-b1e3-f7b6f2acef10\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -648,7 +648,7 @@ interactions: \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n }\r\n \ ],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"654bd73f-dbf1-47a5-a3ca-8a7d69c87aa9\\\"\",\r\n + \ \"etag\": \"W/\\\"19d810eb-12fc-438f-b1e3-f7b6f2acef10\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -664,7 +664,7 @@ interactions: \ }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/deb62aa5-c138-45d2-84f1-acbe6e29f9bb?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/8ab66698-08d0-4c23-ac05-40b445e0b66c?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -672,7 +672,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:19 GMT + - Thu, 27 Aug 2020 08:08:27 GMT expires: - '-1' pragma: @@ -689,9 +689,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 84ff4db8-89b3-4ca6-814f-d913fbc6e321 + - 3864e823-cc25-4b44-9b46-edfe4da4a7e3 x-ms-ratelimit-remaining-subscription-writes: - - '1188' + - '1197' status: code: 200 message: OK @@ -710,10 +710,10 @@ interactions: - -g -n -c --priority --action -f --source-addresses --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/deb62aa5-c138-45d2-84f1-acbe6e29f9bb?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/8ab66698-08d0-4c23-ac05-40b445e0b66c?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -725,7 +725,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:30 GMT + - Thu, 27 Aug 2020 08:08:37 GMT expires: - '-1' pragma: @@ -742,7 +742,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 2820e4a3-9dfe-4ac6-a791-07fc42ac40ee + - 87b1015f-02ca-457a-8b6a-53532b42d3c7 status: code: 200 message: OK @@ -761,14 +761,14 @@ interactions: - -g -n -c --priority --action -f --source-addresses --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"0a6154d6-0a74-4766-8bf1-b78f256088b9\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"626f91f0-c96d-4dd0-aac6-1a30fdaad167\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -776,7 +776,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"0a6154d6-0a74-4766-8bf1-b78f256088b9\\\"\",\r\n + \ \"etag\": \"W/\\\"626f91f0-c96d-4dd0-aac6-1a30fdaad167\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -791,7 +791,7 @@ interactions: \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n }\r\n \ ],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"0a6154d6-0a74-4766-8bf1-b78f256088b9\\\"\",\r\n + \ \"etag\": \"W/\\\"626f91f0-c96d-4dd0-aac6-1a30fdaad167\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -813,9 +813,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:31 GMT + - Thu, 27 Aug 2020 08:08:38 GMT etag: - - W/"0a6154d6-0a74-4766-8bf1-b78f256088b9" + - W/"626f91f0-c96d-4dd0-aac6-1a30fdaad167" expires: - '-1' pragma: @@ -832,7 +832,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - c773fbd3-3fc4-4e77-b26f-9bb43b973f1d + - c94883b0-0e10-4c41-8bae-cc7fa2d67298 status: code: 200 message: OK @@ -852,8 +852,8 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: DELETE @@ -865,17 +865,17 @@ interactions: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/6216e5a1-5e1f-4d41-9d66-86bfbfbdd319?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/3c1db7fc-3d67-45c8-9173-45ee11c92715?api-version=2020-05-01 cache-control: - no-cache content-length: - '0' date: - - Fri, 07 Aug 2020 06:39:32 GMT + - Thu, 27 Aug 2020 08:08:39 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operationResults/6216e5a1-5e1f-4d41-9d66-86bfbfbdd319?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operationResults/3c1db7fc-3d67-45c8-9173-45ee11c92715?api-version=2020-05-01 pragma: - no-cache server: @@ -886,9 +886,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 19695792-bcbe-4cd6-bc5a-78ca88532539 + - 3e600561-64c1-46ed-bfb5-32d192b065b7 x-ms-ratelimit-remaining-subscription-deletes: - - '14998' + - '14999' status: code: 202 message: Accepted @@ -906,10 +906,10 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/6216e5a1-5e1f-4d41-9d66-86bfbfbdd319?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/3c1db7fc-3d67-45c8-9173-45ee11c92715?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -921,7 +921,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:43 GMT + - Thu, 27 Aug 2020 08:08:50 GMT expires: - '-1' pragma: @@ -938,7 +938,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 479d1e30-86ff-4497-aee8-5b28da7c03c0 + - e81afc76-db84-427f-a33f-46aa9854a6ac status: code: 200 message: OK diff --git a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_rules_with_ipgroups.yaml b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_rules_with_ipgroups.yaml index 7e66b5915a7..9c6159a6a8f 100644 --- a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_rules_with_ipgroups.yaml +++ b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_rules_with_ipgroups.yaml @@ -13,24 +13,24 @@ interactions: ParameterSetName: - -n -g --ip-addresses User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_rules_with_ipgroups000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001","name":"cli_test_azure_firewall_rules_with_ipgroups000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-07T06:32:53Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001","name":"cli_test_azure_firewall_rules_with_ipgroups000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-27T08:07:51Z","StorageType":"Standard_LRS","type":"test"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '428' + - '471' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:32:55 GMT + - Thu, 27 Aug 2020 08:07:54 GMT expires: - '-1' pragma: @@ -62,8 +62,8 @@ interactions: ParameterSetName: - -n -g --ip-addresses User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/7.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/7.0.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -74,10 +74,10 @@ interactions: [],\r\n \"ipAddresses\": [\r\n \"10.0.0.0\",\r\n \"10.0.0.1\"\r\n \ ],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/ipGroups/sourceipgroup\",\r\n \ \"name\": \"sourceipgroup\",\r\n \"type\": \"Microsoft.Network/IpGroups\",\r\n - \ \"etag\": \"281434b9-df55-4aa8-af80-0dd0e7641dc9\",\r\n \"location\": \"westus\"\r\n}" + \ \"etag\": \"22d55e22-fba3-43e6-91c9-3a2a0821dcbb\",\r\n \"location\": \"westus\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/nfvOperations/eda4b989-b928-41f3-8b0f-ff76f1ae072a?api-version=2019-09-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/nfvOperations/dcb33491-41e9-4a6c-9c10-10ca5bca5b7a?api-version=2019-09-01 cache-control: - no-cache content-length: @@ -85,7 +85,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:01 GMT + - Thu, 27 Aug 2020 08:08:02 GMT expires: - '-1' pragma: @@ -97,7 +97,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1196' + - '1193' status: code: 201 message: Created @@ -115,10 +115,10 @@ interactions: ParameterSetName: - -n -g --ip-addresses User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/7.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/7.0.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/nfvOperations/eda4b989-b928-41f3-8b0f-ff76f1ae072a?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/nfvOperations/dcb33491-41e9-4a6c-9c10-10ca5bca5b7a?api-version=2019-09-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -130,7 +130,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:12 GMT + - Thu, 27 Aug 2020 08:08:13 GMT expires: - '-1' pragma: @@ -162,8 +162,8 @@ interactions: ParameterSetName: - -n -g --ip-addresses User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/7.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/7.0.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/ipGroups/sourceipgroup?api-version=2019-09-01 response: @@ -172,7 +172,7 @@ interactions: [],\r\n \"ipAddresses\": [\r\n \"10.0.0.0\",\r\n \"10.0.0.1\"\r\n \ ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/ipGroups/sourceipgroup\",\r\n \ \"name\": \"sourceipgroup\",\r\n \"type\": \"Microsoft.Network/IpGroups\",\r\n - \ \"etag\": \"281434b9-df55-4aa8-af80-0dd0e7641dc9\",\r\n \"location\": \"westus\"\r\n}" + \ \"etag\": \"22d55e22-fba3-43e6-91c9-3a2a0821dcbb\",\r\n \"location\": \"westus\"\r\n}" headers: cache-control: - no-cache @@ -181,7 +181,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:13 GMT + - Thu, 27 Aug 2020 08:08:13 GMT expires: - '-1' pragma: @@ -213,24 +213,24 @@ interactions: ParameterSetName: - -n -g --ip-addresses User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_rules_with_ipgroups000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001","name":"cli_test_azure_firewall_rules_with_ipgroups000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-07T06:32:53Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001","name":"cli_test_azure_firewall_rules_with_ipgroups000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-27T08:07:51Z","StorageType":"Standard_LRS","type":"test"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '428' + - '471' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:14 GMT + - Thu, 27 Aug 2020 08:08:15 GMT expires: - '-1' pragma: @@ -262,8 +262,8 @@ interactions: ParameterSetName: - -n -g --ip-addresses User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/7.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/7.0.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -274,10 +274,10 @@ interactions: [],\r\n \"ipAddresses\": [\r\n \"10.0.0.2\",\r\n \"10.0.0.3\"\r\n \ ],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/ipGroups/destinationipgroup\",\r\n \ \"name\": \"destinationipgroup\",\r\n \"type\": \"Microsoft.Network/IpGroups\",\r\n - \ \"etag\": \"7c960f46-a8b7-4bb9-99bf-4130bda410d7\",\r\n \"location\": \"westus\"\r\n}" + \ \"etag\": \"e6c74715-9108-46d1-9d0b-2c2c7acff3a8\",\r\n \"location\": \"westus\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/nfvOperations/420bc9af-b868-41d2-807e-5eb1359a30a3?api-version=2019-09-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/nfvOperations/f819f622-6eda-4923-8e7b-54a5c7ddf939?api-version=2019-09-01 cache-control: - no-cache content-length: @@ -285,7 +285,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:19 GMT + - Thu, 27 Aug 2020 08:08:21 GMT expires: - '-1' pragma: @@ -297,7 +297,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1191' + - '1198' status: code: 201 message: Created @@ -315,10 +315,10 @@ interactions: ParameterSetName: - -n -g --ip-addresses User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/7.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/7.0.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/nfvOperations/420bc9af-b868-41d2-807e-5eb1359a30a3?api-version=2019-09-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/nfvOperations/f819f622-6eda-4923-8e7b-54a5c7ddf939?api-version=2019-09-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -330,7 +330,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:31 GMT + - Thu, 27 Aug 2020 08:08:32 GMT expires: - '-1' pragma: @@ -362,8 +362,8 @@ interactions: ParameterSetName: - -n -g --ip-addresses User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/7.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/7.0.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/ipGroups/destinationipgroup?api-version=2019-09-01 response: @@ -372,7 +372,7 @@ interactions: [],\r\n \"ipAddresses\": [\r\n \"10.0.0.2\",\r\n \"10.0.0.3\"\r\n \ ],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/ipGroups/destinationipgroup\",\r\n \ \"name\": \"destinationipgroup\",\r\n \"type\": \"Microsoft.Network/IpGroups\",\r\n - \ \"etag\": \"7c960f46-a8b7-4bb9-99bf-4130bda410d7\",\r\n \"location\": \"westus\"\r\n}" + \ \"etag\": \"e6c74715-9108-46d1-9d0b-2c2c7acff3a8\",\r\n \"location\": \"westus\"\r\n}" headers: cache-control: - no-cache @@ -381,7 +381,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:31 GMT + - Thu, 27 Aug 2020 08:08:32 GMT expires: - '-1' pragma: @@ -413,24 +413,24 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_rules_with_ipgroups000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001","name":"cli_test_azure_firewall_rules_with_ipgroups000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-07T06:32:53Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001","name":"cli_test_azure_firewall_rules_with_ipgroups000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-27T08:07:51Z","StorageType":"Standard_LRS","type":"test"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '428' + - '471' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:33 GMT + - Thu, 27 Aug 2020 08:08:34 GMT expires: - '-1' pragma: @@ -463,8 +463,8 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -472,7 +472,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"d373fdce-c4f9-4177-a7d3-6473673fcd9f\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"e280b7f7-7087-4147-bd7e-3549eebd7ce5\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -485,7 +485,7 @@ interactions: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/51af3cee-e4b8-485c-9d56-9562dc929851?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/27ba06b4-dde4-4641-9ab4-a8c954ecabb3?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -493,7 +493,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:37 GMT + - Thu, 27 Aug 2020 08:08:38 GMT expires: - '-1' pragma: @@ -506,9 +506,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 748cfdea-6760-4c39-a03e-3e80b61e1b65 + - bcecc6c5-9ae8-4d0f-9e13-bee044bdc970 x-ms-ratelimit-remaining-subscription-writes: - - '1195' + - '1197' status: code: 201 message: Created @@ -526,10 +526,10 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/51af3cee-e4b8-485c-9d56-9562dc929851?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/27ba06b4-dde4-4641-9ab4-a8c954ecabb3?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -541,7 +541,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:49 GMT + - Thu, 27 Aug 2020 08:08:49 GMT expires: - '-1' pragma: @@ -558,7 +558,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 469b25a0-db8b-49e1-86aa-1c16e23bb348 + - 12164a5e-e5ce-415e-888d-0da478bea5da status: code: 200 message: OK @@ -576,14 +576,14 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"c7a588be-40b4-465d-afc0-20c0502751bf\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"982de6ff-31a3-40cb-9e5d-99b2b234b9f4\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -600,9 +600,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:49 GMT + - Thu, 27 Aug 2020 08:08:49 GMT etag: - - W/"c7a588be-40b4-465d-afc0-20c0502751bf" + - W/"982de6ff-31a3-40cb-9e5d-99b2b234b9f4" expires: - '-1' pragma: @@ -619,7 +619,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 6247b216-8930-4f41-bddd-6d0f58368caf + - fdaba047-fe27-4a7f-8a30-bc75cb341bb6 status: code: 200 message: OK @@ -638,8 +638,8 @@ interactions: - -g -n -c --priority --action -f --source-ip-group --protocols --destination-ip-groups --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET @@ -647,7 +647,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"c7a588be-40b4-465d-afc0-20c0502751bf\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"982de6ff-31a3-40cb-9e5d-99b2b234b9f4\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -664,9 +664,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:50 GMT + - Thu, 27 Aug 2020 08:08:51 GMT etag: - - W/"c7a588be-40b4-465d-afc0-20c0502751bf" + - W/"982de6ff-31a3-40cb-9e5d-99b2b234b9f4" expires: - '-1' pragma: @@ -683,7 +683,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 53d45403-ca29-44a7-942f-3023089bbfd4 + - dd025698-7177-43d5-a351-0b9e6dbb5f67 status: code: 200 message: OK @@ -714,8 +714,8 @@ interactions: - -g -n -c --priority --action -f --source-ip-group --protocols --destination-ip-groups --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -723,7 +723,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"e728dc6a-3222-4acd-9b92-6253f73e89b4\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"be9b416b-582a-4d19-a838-17343ae48998\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -731,7 +731,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"e728dc6a-3222-4acd-9b92-6253f73e89b4\\\"\",\r\n + \ \"etag\": \"W/\\\"be9b416b-582a-4d19-a838-17343ae48998\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -747,7 +747,7 @@ interactions: []\r\n }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/9f8679f4-cf13-4ce2-9010-d4a30851f366?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/4f640f39-974d-44e6-8a65-949a2d408238?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -755,7 +755,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:33:52 GMT + - Thu, 27 Aug 2020 08:08:53 GMT expires: - '-1' pragma: @@ -772,9 +772,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 522d3d57-87fb-43ba-8ca5-0f2c8ab4c565 + - bfaf983b-de4f-4de4-bbc7-889623a22388 x-ms-ratelimit-remaining-subscription-writes: - - '1194' + - '1193' status: code: 200 message: OK @@ -793,10 +793,10 @@ interactions: - -g -n -c --priority --action -f --source-ip-group --protocols --destination-ip-groups --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/9f8679f4-cf13-4ce2-9010-d4a30851f366?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/4f640f39-974d-44e6-8a65-949a2d408238?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -808,7 +808,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:03 GMT + - Thu, 27 Aug 2020 08:09:03 GMT expires: - '-1' pragma: @@ -825,7 +825,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - bad4df5d-c681-41f9-814e-146e0844850c + - 69e6d9e8-35b7-4e98-9888-88e65f507d17 status: code: 200 message: OK @@ -844,14 +844,14 @@ interactions: - -g -n -c --priority --action -f --source-ip-group --protocols --destination-ip-groups --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"0ada15e6-8cd1-4bb0-ad65-df40bfe04197\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"ef60c24b-ce2b-4b4c-b2d8-65cad91f1a3e\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -859,7 +859,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"0ada15e6-8cd1-4bb0-ad65-df40bfe04197\\\"\",\r\n + \ \"etag\": \"W/\\\"ef60c24b-ce2b-4b4c-b2d8-65cad91f1a3e\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -881,9 +881,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:03 GMT + - Thu, 27 Aug 2020 08:09:03 GMT etag: - - W/"0ada15e6-8cd1-4bb0-ad65-df40bfe04197" + - W/"ef60c24b-ce2b-4b4c-b2d8-65cad91f1a3e" expires: - '-1' pragma: @@ -900,7 +900,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 391c003b-e365-43ac-a97d-99cfbfb612c8 + - 61ecfd0a-8e8d-44cb-bc02-0a331908c6e1 status: code: 200 message: OK @@ -918,8 +918,8 @@ interactions: ParameterSetName: - -g -n -c -f --source-addresses --protocols --destination-ip-groups --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET @@ -927,7 +927,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"0ada15e6-8cd1-4bb0-ad65-df40bfe04197\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"ef60c24b-ce2b-4b4c-b2d8-65cad91f1a3e\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -935,7 +935,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"0ada15e6-8cd1-4bb0-ad65-df40bfe04197\\\"\",\r\n + \ \"etag\": \"W/\\\"ef60c24b-ce2b-4b4c-b2d8-65cad91f1a3e\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -957,9 +957,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:04 GMT + - Thu, 27 Aug 2020 08:09:05 GMT etag: - - W/"0ada15e6-8cd1-4bb0-ad65-df40bfe04197" + - W/"ef60c24b-ce2b-4b4c-b2d8-65cad91f1a3e" expires: - '-1' pragma: @@ -976,7 +976,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 2fbb7521-fa3d-4e3a-a5e5-18302d2bd4c5 + - e842d827-bbfc-4867-b9f3-e3ec2a0331e5 status: code: 200 message: OK @@ -1010,8 +1010,8 @@ interactions: ParameterSetName: - -g -n -c -f --source-addresses --protocols --destination-ip-groups --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -1019,7 +1019,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"a216398f-1058-4c37-bd60-934dac5f415c\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"f0a89ac5-9a4c-4d69-9572-7c3a2a4bd053\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -1027,7 +1027,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"a216398f-1058-4c37-bd60-934dac5f415c\\\"\",\r\n + \ \"etag\": \"W/\\\"f0a89ac5-9a4c-4d69-9572-7c3a2a4bd053\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1051,7 +1051,7 @@ interactions: []\r\n }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/99ab725a-896b-41c0-a7ee-8ec9ed400070?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/57abb8b4-c067-41d2-bbd1-57f67b977a79?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -1059,7 +1059,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:06 GMT + - Thu, 27 Aug 2020 08:09:06 GMT expires: - '-1' pragma: @@ -1076,9 +1076,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 3a3aea8a-f052-47f8-8e68-65f62b79b6cf + - 26eb1ff6-3851-49c2-8f48-d656496bc79c x-ms-ratelimit-remaining-subscription-writes: - - '1194' + - '1196' status: code: 200 message: OK @@ -1096,10 +1096,10 @@ interactions: ParameterSetName: - -g -n -c -f --source-addresses --protocols --destination-ip-groups --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/99ab725a-896b-41c0-a7ee-8ec9ed400070?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/57abb8b4-c067-41d2-bbd1-57f67b977a79?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -1111,7 +1111,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:17 GMT + - Thu, 27 Aug 2020 08:09:16 GMT expires: - '-1' pragma: @@ -1128,7 +1128,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - e010024d-8020-465c-9b04-20062081aa5a + - b486331b-50db-4ba5-8abf-04c5461f51c9 status: code: 200 message: OK @@ -1146,14 +1146,14 @@ interactions: ParameterSetName: - -g -n -c -f --source-addresses --protocols --destination-ip-groups --destination-ports User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"4504ae5e-1da1-41e3-b649-b811310446f5\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"584161de-ce64-427b-b0ed-bfc158e53444\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -1161,7 +1161,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"4504ae5e-1da1-41e3-b649-b811310446f5\\\"\",\r\n + \ \"etag\": \"W/\\\"584161de-ce64-427b-b0ed-bfc158e53444\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1191,9 +1191,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:17 GMT + - Thu, 27 Aug 2020 08:09:17 GMT etag: - - W/"4504ae5e-1da1-41e3-b649-b811310446f5" + - W/"584161de-ce64-427b-b0ed-bfc158e53444" expires: - '-1' pragma: @@ -1210,7 +1210,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - baafb096-620b-44ab-b94a-9fa1d8d7bbb4 + - c1235be3-7dff-4bb5-85dc-04085d28d8e1 status: code: 200 message: OK @@ -1229,8 +1229,8 @@ interactions: - -g -n -c --priority --action -f --source-ip-group --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port --source-ip-groups User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET @@ -1238,7 +1238,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"4504ae5e-1da1-41e3-b649-b811310446f5\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"584161de-ce64-427b-b0ed-bfc158e53444\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -1246,7 +1246,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"4504ae5e-1da1-41e3-b649-b811310446f5\\\"\",\r\n + \ \"etag\": \"W/\\\"584161de-ce64-427b-b0ed-bfc158e53444\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1276,9 +1276,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:19 GMT + - Thu, 27 Aug 2020 08:09:17 GMT etag: - - W/"4504ae5e-1da1-41e3-b649-b811310446f5" + - W/"584161de-ce64-427b-b0ed-bfc158e53444" expires: - '-1' pragma: @@ -1295,7 +1295,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 6e7429cc-7fc9-4411-ac1a-947874adb516 + - d2453896-d016-442e-b88c-1e22d9aa3520 status: code: 200 message: OK @@ -1335,8 +1335,8 @@ interactions: - -g -n -c --priority --action -f --source-ip-group --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port --source-ip-groups User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -1344,7 +1344,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"5c6df1da-3741-424f-b4f8-42eb7073522f\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"ca702bde-238a-4b52-be21-65b38c11baa6\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -1352,7 +1352,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"5c6df1da-3741-424f-b4f8-42eb7073522f\\\"\",\r\n + \ \"etag\": \"W/\\\"ca702bde-238a-4b52-be21-65b38c11baa6\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1374,7 +1374,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"5c6df1da-3741-424f-b4f8-42eb7073522f\\\"\",\r\n + \ \"etag\": \"W/\\\"ca702bde-238a-4b52-be21-65b38c11baa6\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1390,7 +1390,7 @@ interactions: \ }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/66002e8c-b34b-4aad-959f-c9790c0d7b26?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/b0aec23b-5dff-4fb1-8c17-2682ed48495c?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -1398,7 +1398,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:20 GMT + - Thu, 27 Aug 2020 08:09:18 GMT expires: - '-1' pragma: @@ -1415,9 +1415,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 7316e593-7d38-4e73-9d73-a674ca868afe + - b84c272a-be24-4d84-be8e-c76b055457b7 x-ms-ratelimit-remaining-subscription-writes: - - '1190' + - '1196' status: code: 200 message: OK @@ -1436,10 +1436,10 @@ interactions: - -g -n -c --priority --action -f --source-ip-group --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port --source-ip-groups User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/66002e8c-b34b-4aad-959f-c9790c0d7b26?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/b0aec23b-5dff-4fb1-8c17-2682ed48495c?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -1451,7 +1451,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:30 GMT + - Thu, 27 Aug 2020 08:09:29 GMT expires: - '-1' pragma: @@ -1468,7 +1468,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 58ba5cda-c460-4a6b-a46c-e64585836acd + - dfb59079-c7e7-4c8e-9021-d4f6655db898 status: code: 200 message: OK @@ -1487,14 +1487,14 @@ interactions: - -g -n -c --priority --action -f --source-ip-group --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port --source-ip-groups User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"d829b541-5c6b-4c5c-9367-3527120b0c71\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"a4deecea-8230-4299-9eae-ac403590d689\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -1502,7 +1502,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"d829b541-5c6b-4c5c-9367-3527120b0c71\\\"\",\r\n + \ \"etag\": \"W/\\\"a4deecea-8230-4299-9eae-ac403590d689\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1524,7 +1524,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"d829b541-5c6b-4c5c-9367-3527120b0c71\\\"\",\r\n + \ \"etag\": \"W/\\\"a4deecea-8230-4299-9eae-ac403590d689\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1546,9 +1546,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:30 GMT + - Thu, 27 Aug 2020 08:09:29 GMT etag: - - W/"d829b541-5c6b-4c5c-9367-3527120b0c71" + - W/"a4deecea-8230-4299-9eae-ac403590d689" expires: - '-1' pragma: @@ -1565,7 +1565,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 3c86b661-3785-457d-aa5d-555940175f1c + - 258e35d9-e6d0-4b61-9ce5-e9dd83ffea02 status: code: 200 message: OK @@ -1584,8 +1584,8 @@ interactions: - -g -n -c -f --source-addresses --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port --source-ip-groups User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET @@ -1593,7 +1593,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"d829b541-5c6b-4c5c-9367-3527120b0c71\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"a4deecea-8230-4299-9eae-ac403590d689\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -1601,7 +1601,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"d829b541-5c6b-4c5c-9367-3527120b0c71\\\"\",\r\n + \ \"etag\": \"W/\\\"a4deecea-8230-4299-9eae-ac403590d689\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1623,7 +1623,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"d829b541-5c6b-4c5c-9367-3527120b0c71\\\"\",\r\n + \ \"etag\": \"W/\\\"a4deecea-8230-4299-9eae-ac403590d689\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1645,9 +1645,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:31 GMT + - Thu, 27 Aug 2020 08:09:30 GMT etag: - - W/"d829b541-5c6b-4c5c-9367-3527120b0c71" + - W/"a4deecea-8230-4299-9eae-ac403590d689" expires: - '-1' pragma: @@ -1664,7 +1664,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - f70bdf86-125b-45df-9bd4-80277a35a300 + - 3aca2df4-58b6-4e55-8607-d0f3bd88930b status: code: 200 message: OK @@ -1708,8 +1708,8 @@ interactions: - -g -n -c -f --source-addresses --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port --source-ip-groups User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -1717,7 +1717,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"163f87f6-933f-4bb1-8934-fb412b111988\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"4ba429bd-667e-4d50-926e-ce78f71ca3bf\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -1725,7 +1725,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"163f87f6-933f-4bb1-8934-fb412b111988\\\"\",\r\n + \ \"etag\": \"W/\\\"4ba429bd-667e-4d50-926e-ce78f71ca3bf\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1747,7 +1747,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"163f87f6-933f-4bb1-8934-fb412b111988\\\"\",\r\n + \ \"etag\": \"W/\\\"4ba429bd-667e-4d50-926e-ce78f71ca3bf\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1772,7 +1772,7 @@ interactions: \ }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/d1029d72-697c-4305-a29a-42307e89a36e?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/b1899f45-d47a-49ca-be6a-afb734b0e5f6?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -1780,7 +1780,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:32 GMT + - Thu, 27 Aug 2020 08:09:32 GMT expires: - '-1' pragma: @@ -1797,9 +1797,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 994e3bbe-8606-4d48-bd67-9665aa40d038 + - 6852bfc9-639c-4e9c-8b6c-40d639a05eb7 x-ms-ratelimit-remaining-subscription-writes: - - '1193' + - '1194' status: code: 200 message: OK @@ -1818,10 +1818,10 @@ interactions: - -g -n -c -f --source-addresses --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port --source-ip-groups User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/d1029d72-697c-4305-a29a-42307e89a36e?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/b1899f45-d47a-49ca-be6a-afb734b0e5f6?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -1833,7 +1833,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:44 GMT + - Thu, 27 Aug 2020 08:09:41 GMT expires: - '-1' pragma: @@ -1850,7 +1850,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - e5f76365-df20-4f50-8373-f6e933375ad5 + - dadbc81b-1ba9-43d9-a44d-8ca1919e38d3 status: code: 200 message: OK @@ -1869,14 +1869,14 @@ interactions: - -g -n -c -f --source-addresses --protocols --translated-fqdn --destination-ports --destination-addresses --translated-port --source-ip-groups User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"ce502a9c-fd10-4e8c-87b8-0d16d4cc65ff\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"83177cb8-cd48-4aeb-a2ca-bb87426efb4e\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -1884,7 +1884,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"ce502a9c-fd10-4e8c-87b8-0d16d4cc65ff\\\"\",\r\n + \ \"etag\": \"W/\\\"83177cb8-cd48-4aeb-a2ca-bb87426efb4e\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1906,7 +1906,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"ce502a9c-fd10-4e8c-87b8-0d16d4cc65ff\\\"\",\r\n + \ \"etag\": \"W/\\\"83177cb8-cd48-4aeb-a2ca-bb87426efb4e\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -1937,9 +1937,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:44 GMT + - Thu, 27 Aug 2020 08:09:42 GMT etag: - - W/"ce502a9c-fd10-4e8c-87b8-0d16d4cc65ff" + - W/"83177cb8-cd48-4aeb-a2ca-bb87426efb4e" expires: - '-1' pragma: @@ -1956,7 +1956,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - c0d3b5d7-71c2-4e4e-b096-59f933323f07 + - 6f300a82-c405-4cfc-9957-961498d0bd1e status: code: 200 message: OK @@ -1974,8 +1974,8 @@ interactions: ParameterSetName: - -f -n --protocols -g -c --priority --action --source-ip-groups --target-fqdns User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET @@ -1983,7 +1983,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"ce502a9c-fd10-4e8c-87b8-0d16d4cc65ff\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"83177cb8-cd48-4aeb-a2ca-bb87426efb4e\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -1991,7 +1991,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"ce502a9c-fd10-4e8c-87b8-0d16d4cc65ff\\\"\",\r\n + \ \"etag\": \"W/\\\"83177cb8-cd48-4aeb-a2ca-bb87426efb4e\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2013,7 +2013,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"ce502a9c-fd10-4e8c-87b8-0d16d4cc65ff\\\"\",\r\n + \ \"etag\": \"W/\\\"83177cb8-cd48-4aeb-a2ca-bb87426efb4e\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2044,9 +2044,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:45 GMT + - Thu, 27 Aug 2020 08:09:43 GMT etag: - - W/"ce502a9c-fd10-4e8c-87b8-0d16d4cc65ff" + - W/"83177cb8-cd48-4aeb-a2ca-bb87426efb4e" expires: - '-1' pragma: @@ -2063,7 +2063,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 09be4b74-b1e5-4b20-b5fe-83e9ce8783b8 + - 9318f576-fb38-484d-a212-89e6e80e4603 status: code: 200 message: OK @@ -2109,8 +2109,8 @@ interactions: ParameterSetName: - -f -n --protocols -g -c --priority --action --source-ip-groups --target-fqdns User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -2118,7 +2118,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"05ea9fb9-fd44-4ff9-973a-8d525f525fe7\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"ca284600-a86d-4af3-9ec0-d5b0f5b7ea5f\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -2126,7 +2126,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"05ea9fb9-fd44-4ff9-973a-8d525f525fe7\\\"\",\r\n + \ \"etag\": \"W/\\\"ca284600-a86d-4af3-9ec0-d5b0f5b7ea5f\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2148,7 +2148,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [\r\n {\r\n \ \"name\": \"rc3\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/applicationRuleCollections/rc3\",\r\n - \ \"etag\": \"W/\\\"05ea9fb9-fd44-4ff9-973a-8d525f525fe7\\\"\",\r\n + \ \"etag\": \"W/\\\"ca284600-a86d-4af3-9ec0-d5b0f5b7ea5f\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2164,7 +2164,7 @@ interactions: \"Microsoft.Network/azureFirewalls/applicationRuleCollections\"\r\n }\r\n \ ],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"05ea9fb9-fd44-4ff9-973a-8d525f525fe7\\\"\",\r\n + \ \"etag\": \"W/\\\"ca284600-a86d-4af3-9ec0-d5b0f5b7ea5f\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2189,7 +2189,7 @@ interactions: \ }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/f98ca7d3-7b0b-40bd-9806-5a25d7567c95?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/8e71d0c3-b142-49de-9c30-44fc587391e2?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -2197,7 +2197,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:46 GMT + - Thu, 27 Aug 2020 08:09:44 GMT expires: - '-1' pragma: @@ -2214,9 +2214,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 555ec98d-79ea-4169-8847-44bad5e86331 + - ad072468-a0d3-4efe-9bcf-78c40f731521 x-ms-ratelimit-remaining-subscription-writes: - - '1193' + - '1195' status: code: 200 message: OK @@ -2234,10 +2234,10 @@ interactions: ParameterSetName: - -f -n --protocols -g -c --priority --action --source-ip-groups --target-fqdns User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/f98ca7d3-7b0b-40bd-9806-5a25d7567c95?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/8e71d0c3-b142-49de-9c30-44fc587391e2?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -2249,7 +2249,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:57 GMT + - Thu, 27 Aug 2020 08:09:55 GMT expires: - '-1' pragma: @@ -2266,7 +2266,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - f8da7c18-d99c-4d15-92f1-a6f7d5a1bbae + - 48d02083-085d-463e-b529-4c99bcf6d0af status: code: 200 message: OK @@ -2284,14 +2284,14 @@ interactions: ParameterSetName: - -f -n --protocols -g -c --priority --action --source-ip-groups --target-fqdns User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"f1895c81-825a-42f6-ba80-2cdbf02e3c4d\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"0d82717d-7319-49c0-be79-fbfb4c595202\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -2299,7 +2299,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"f1895c81-825a-42f6-ba80-2cdbf02e3c4d\\\"\",\r\n + \ \"etag\": \"W/\\\"0d82717d-7319-49c0-be79-fbfb4c595202\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2321,7 +2321,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [\r\n {\r\n \ \"name\": \"rc3\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/applicationRuleCollections/rc3\",\r\n - \ \"etag\": \"W/\\\"f1895c81-825a-42f6-ba80-2cdbf02e3c4d\\\"\",\r\n + \ \"etag\": \"W/\\\"0d82717d-7319-49c0-be79-fbfb4c595202\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2337,7 +2337,7 @@ interactions: \"Microsoft.Network/azureFirewalls/applicationRuleCollections\"\r\n }\r\n \ ],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"f1895c81-825a-42f6-ba80-2cdbf02e3c4d\\\"\",\r\n + \ \"etag\": \"W/\\\"0d82717d-7319-49c0-be79-fbfb4c595202\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2368,9 +2368,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:58 GMT + - Thu, 27 Aug 2020 08:09:55 GMT etag: - - W/"f1895c81-825a-42f6-ba80-2cdbf02e3c4d" + - W/"0d82717d-7319-49c0-be79-fbfb4c595202" expires: - '-1' pragma: @@ -2387,7 +2387,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - cc7ca53c-c302-4da2-b0c0-81a8e8ae4ce6 + - 4daee7db-8221-45fd-a7d7-42df7cc789b3 status: code: 200 message: OK @@ -2405,8 +2405,8 @@ interactions: ParameterSetName: - -f -n --protocols -g -c --source-ip-groups --target-fqdns User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET @@ -2414,7 +2414,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"f1895c81-825a-42f6-ba80-2cdbf02e3c4d\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"0d82717d-7319-49c0-be79-fbfb4c595202\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -2422,7 +2422,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"f1895c81-825a-42f6-ba80-2cdbf02e3c4d\\\"\",\r\n + \ \"etag\": \"W/\\\"0d82717d-7319-49c0-be79-fbfb4c595202\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2444,7 +2444,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [\r\n {\r\n \ \"name\": \"rc3\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/applicationRuleCollections/rc3\",\r\n - \ \"etag\": \"W/\\\"f1895c81-825a-42f6-ba80-2cdbf02e3c4d\\\"\",\r\n + \ \"etag\": \"W/\\\"0d82717d-7319-49c0-be79-fbfb4c595202\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2460,7 +2460,7 @@ interactions: \"Microsoft.Network/azureFirewalls/applicationRuleCollections\"\r\n }\r\n \ ],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"f1895c81-825a-42f6-ba80-2cdbf02e3c4d\\\"\",\r\n + \ \"etag\": \"W/\\\"0d82717d-7319-49c0-be79-fbfb4c595202\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2491,9 +2491,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:34:59 GMT + - Thu, 27 Aug 2020 08:09:56 GMT etag: - - W/"f1895c81-825a-42f6-ba80-2cdbf02e3c4d" + - W/"0d82717d-7319-49c0-be79-fbfb4c595202" expires: - '-1' pragma: @@ -2510,7 +2510,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 2d7cafa7-fee9-469d-9e85-1b822b0e564e + - 674358b2-5292-4d77-bbf0-29a8430e4754 status: code: 200 message: OK @@ -2560,8 +2560,8 @@ interactions: ParameterSetName: - -f -n --protocols -g -c --source-ip-groups --target-fqdns User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT @@ -2569,7 +2569,7 @@ interactions: response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"0d7db30c-ec78-436d-8f9a-7ca2b44c33a6\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"0d2138b7-a815-4883-a461-8c9beb924fc4\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -2577,7 +2577,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"0d7db30c-ec78-436d-8f9a-7ca2b44c33a6\\\"\",\r\n + \ \"etag\": \"W/\\\"0d2138b7-a815-4883-a461-8c9beb924fc4\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2599,7 +2599,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [\r\n {\r\n \ \"name\": \"rc3\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/applicationRuleCollections/rc3\",\r\n - \ \"etag\": \"W/\\\"0d7db30c-ec78-436d-8f9a-7ca2b44c33a6\\\"\",\r\n + \ \"etag\": \"W/\\\"0d2138b7-a815-4883-a461-8c9beb924fc4\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2624,7 +2624,7 @@ interactions: \"Microsoft.Network/azureFirewalls/applicationRuleCollections\"\r\n }\r\n \ ],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"0d7db30c-ec78-436d-8f9a-7ca2b44c33a6\\\"\",\r\n + \ \"etag\": \"W/\\\"0d2138b7-a815-4883-a461-8c9beb924fc4\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2649,7 +2649,7 @@ interactions: \ }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/caaa5fc0-786c-4c43-a35a-7ffe280c6302?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/c8dcef43-b2ff-4ccd-b9bf-a9d3b8845703?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -2657,7 +2657,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:35:00 GMT + - Thu, 27 Aug 2020 08:09:57 GMT expires: - '-1' pragma: @@ -2674,9 +2674,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 63853c21-2c3b-46c5-a9ba-0d53d2ef0e27 + - 49da700a-14f5-4d31-9348-44df700963a0 x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1191' status: code: 200 message: OK @@ -2694,10 +2694,10 @@ interactions: ParameterSetName: - -f -n --protocols -g -c --source-ip-groups --target-fqdns User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/caaa5fc0-786c-4c43-a35a-7ffe280c6302?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/c8dcef43-b2ff-4ccd-b9bf-a9d3b8845703?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -2709,7 +2709,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:35:11 GMT + - Thu, 27 Aug 2020 08:10:08 GMT expires: - '-1' pragma: @@ -2726,7 +2726,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 8aa15d7a-bece-468f-b73a-bf0536bc8dd0 + - 5b4e5ce2-0e33-410a-be9d-e4cabf621aef status: code: 200 message: OK @@ -2744,14 +2744,14 @@ interactions: ParameterSetName: - -f -n --protocols -g -c --source-ip-groups --target-fqdns User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"2abbf6d2-e169-4634-ab45-2f7ab068140c\\\"\",\r\n \"type\": + \ \"etag\": \"W/\\\"1f88065c-4fd0-4f78-9f84-aa3bbeb38e53\\\"\",\r\n \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": @@ -2759,7 +2759,7 @@ interactions: \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [\r\n {\r\n \"name\": \"rc1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/networkRuleCollections/rc1\",\r\n - \ \"etag\": \"W/\\\"2abbf6d2-e169-4634-ab45-2f7ab068140c\\\"\",\r\n + \ \"etag\": \"W/\\\"1f88065c-4fd0-4f78-9f84-aa3bbeb38e53\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2781,7 +2781,7 @@ interactions: \ },\r\n \"type\": \"Microsoft.Network/azureFirewalls/networkRuleCollections\"\r\n \ }\r\n ],\r\n \"applicationRuleCollections\": [\r\n {\r\n \ \"name\": \"rc3\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/applicationRuleCollections/rc3\",\r\n - \ \"etag\": \"W/\\\"2abbf6d2-e169-4634-ab45-2f7ab068140c\\\"\",\r\n + \ \"etag\": \"W/\\\"1f88065c-4fd0-4f78-9f84-aa3bbeb38e53\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10000,\r\n \"action\": {\r\n \"type\": \"Allow\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2806,7 +2806,7 @@ interactions: \"Microsoft.Network/azureFirewalls/applicationRuleCollections\"\r\n }\r\n \ ],\r\n \"natRuleCollections\": [\r\n {\r\n \"name\": \"rc2\",\r\n \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_rules_with_ipgroups000001/providers/Microsoft.Network/azureFirewalls/af1/natRuleCollections/rc2\",\r\n - \ \"etag\": \"W/\\\"2abbf6d2-e169-4634-ab45-2f7ab068140c\\\"\",\r\n + \ \"etag\": \"W/\\\"1f88065c-4fd0-4f78-9f84-aa3bbeb38e53\\\"\",\r\n \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \ \"priority\": 10001,\r\n \"action\": {\r\n \"type\": \"Dnat\"\r\n },\r\n \"rules\": [\r\n {\r\n \"name\": @@ -2837,9 +2837,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:35:11 GMT + - Thu, 27 Aug 2020 08:10:08 GMT etag: - - W/"2abbf6d2-e169-4634-ab45-2f7ab068140c" + - W/"1f88065c-4fd0-4f78-9f84-aa3bbeb38e53" expires: - '-1' pragma: @@ -2856,7 +2856,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 3e3210da-0c8f-414d-aff7-b24d3b68867a + - 188b77f6-e6dd-47b4-8075-6bf52871b690 status: code: 200 message: OK @@ -2876,8 +2876,8 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: DELETE @@ -2889,17 +2889,17 @@ interactions: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/0d7f10d3-2344-4b6a-8be8-85ddaf4e177e?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/d1f6601b-c344-4f6f-8a2c-481f285597e9?api-version=2020-05-01 cache-control: - no-cache content-length: - '0' date: - - Fri, 07 Aug 2020 06:35:13 GMT + - Thu, 27 Aug 2020 08:10:10 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operationResults/0d7f10d3-2344-4b6a-8be8-85ddaf4e177e?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operationResults/d1f6601b-c344-4f6f-8a2c-481f285597e9?api-version=2020-05-01 pragma: - no-cache server: @@ -2910,7 +2910,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 6c44999c-52a7-4131-915b-4c94eddca408 + - 1010c433-08fe-4c5f-8111-e26c93c44993 x-ms-ratelimit-remaining-subscription-deletes: - '14998' status: @@ -2930,10 +2930,10 @@ interactions: ParameterSetName: - -g -n User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/0d7f10d3-2344-4b6a-8be8-85ddaf4e177e?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/d1f6601b-c344-4f6f-8a2c-481f285597e9?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -2945,7 +2945,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:35:24 GMT + - Thu, 27 Aug 2020 08:10:21 GMT expires: - '-1' pragma: @@ -2962,7 +2962,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 952d3f4b-b12f-4877-941b-4cb1831622ca + - 4c880f26-6db7-4179-89dc-90bb910c7a1e status: code: 200 message: OK diff --git a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_threat_intel_allowlist.yaml b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_threat_intel_allowlist.yaml new file mode 100644 index 00000000000..ac83ec90ce6 --- /dev/null +++ b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_threat_intel_allowlist.yaml @@ -0,0 +1,1313 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall create + Connection: + - keep-alive + ParameterSetName: + - -g -n --private-ranges + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_threat_intel_allowlist000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001","name":"cli_test_azure_firewall_threat_intel_allowlist000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-08-27T08:07:51Z","StorageType":"Standard_LRS","type":"test"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '471' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:07:55 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: '{"location": "westus", "properties": {"additionalProperties": {"Network.SNAT.PrivateRanges": + "10.0.0.0, 10.0.0.0/24, IANAPrivateRanges", "Network.DNS.EnableProxy": "False", + "Network.DNS.RequireProxyForNetworkRules": "True"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall create + Connection: + - keep-alive + Content-Length: + - '225' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n --private-ranges + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"34d7b515-a265-45d7-99ca-37408b662ff2\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"10.0.0.0, 10.0.0.0/24, IANAPrivateRanges\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n + \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": + [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": + []\r\n }\r\n}" + headers: + azure-asyncnotification: + - Enabled + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/3cecddd3-fd5f-4124-b17d-cf1227d48a46?api-version=2020-05-01 + cache-control: + - no-cache + content-length: + - '877' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:02 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-arm-service-request-id: + - 031e5c64-ddf2-4cfe-a88b-2028628146aa + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall create + Connection: + - keep-alive + ParameterSetName: + - -g -n --private-ranges + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/3cecddd3-fd5f-4124-b17d-cf1227d48a46?api-version=2020-05-01 + response: + body: + string: "{\r\n \"status\": \"Succeeded\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '29' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08: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-arm-service-request-id: + - ab52d756-69db-4417-88de-4016bb15eb23 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall create + Connection: + - keep-alive + ParameterSetName: + - -g -n --private-ranges + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"b72d003b-e3c2-418a-a293-ba975695185d\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"10.0.0.0, 10.0.0.0/24, IANAPrivateRanges\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n + \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": + [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": + []\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '878' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:13 GMT + etag: + - W/"b72d003b-e3c2-418a-a293-ba975695185d" + 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: + - cb60dbf7-fc6a-4b87-b7d1-9008cd0cb6f0 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist create + Connection: + - keep-alive + ParameterSetName: + - -g -n --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"b72d003b-e3c2-418a-a293-ba975695185d\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"10.0.0.0, 10.0.0.0/24, IANAPrivateRanges\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n + \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": + [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": + []\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '878' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:15 GMT + etag: + - W/"b72d003b-e3c2-418a-a293-ba975695185d" + 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: + - d29f2b38-c6fa-4264-b4d4-ff2e1dabd648 + status: + code: 200 + message: OK +- request: + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1", + "location": "westus", "properties": {"applicationRuleCollections": [], "natRuleCollections": + [], "networkRuleCollections": [], "ipConfigurations": [], "threatIntelMode": + "Alert", "sku": {"name": "AZFW_VNet", "tier": "Standard"}, "additionalProperties": + {"Network.SNAT.PrivateRanges": "10.0.0.0, 10.0.0.0/24, IANAPrivateRanges", "Network.DNS.EnableProxy": + "False", "Network.DNS.RequireProxyForNetworkRules": "True", "ThreatIntel.Whitelist.IpAddresses": + "10.0.0.0, 10.0.0.1", "ThreatIntel.Whitelist.FQDNs": "www.bing.com, *.microsoft.com, + *google.com"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist create + Connection: + - keep-alive + Content-Length: + - '752' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"729c4942-7a07-44d4-96b1-9e019e23fe73\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"10.0.0.0, 10.0.0.0/24, IANAPrivateRanges\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\",\r\n + \ \"ThreatIntel.Whitelist.IpAddresses\": \"10.0.0.0, 10.0.0.1\",\r\n \"ThreatIntel.Whitelist.FQDNs\": + \"www.bing.com, *.microsoft.com, *google.com\"\r\n },\r\n \"ipConfigurations\": + [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": + [],\r\n \"natRuleCollections\": []\r\n }\r\n}" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/e78113a9-d3b5-4a9e-8406-386052158c22?api-version=2020-05-01 + cache-control: + - no-cache + content-length: + - '1027' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08: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-arm-service-request-id: + - 308108ee-5e86-4432-b168-4c6833a220b7 + x-ms-ratelimit-remaining-subscription-writes: + - '1197' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist create + Connection: + - keep-alive + ParameterSetName: + - -g -n --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/e78113a9-d3b5-4a9e-8406-386052158c22?api-version=2020-05-01 + response: + body: + string: "{\r\n \"status\": \"Succeeded\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '29' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:27 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-arm-service-request-id: + - dc8d662f-edfa-44f7-bd72-84a91026191b + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist create + Connection: + - keep-alive + ParameterSetName: + - -g -n --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"4b00a8d8-1d50-437a-9b39-fd17be8f8c87\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"10.0.0.0, 10.0.0.0/24, IANAPrivateRanges\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\",\r\n + \ \"ThreatIntel.Whitelist.IpAddresses\": \"10.0.0.0, 10.0.0.1\",\r\n \"ThreatIntel.Whitelist.FQDNs\": + \"www.bing.com, *.microsoft.com, *google.com\"\r\n },\r\n \"ipConfigurations\": + [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": + [],\r\n \"natRuleCollections\": []\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:27 GMT + etag: + - W/"4b00a8d8-1d50-437a-9b39-fd17be8f8c87" + 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: + - 87c0eb01-7103-483e-824b-49d5915b7a51 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist show + Connection: + - keep-alive + ParameterSetName: + - -g -n + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"4b00a8d8-1d50-437a-9b39-fd17be8f8c87\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"10.0.0.0, 10.0.0.0/24, IANAPrivateRanges\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\",\r\n + \ \"ThreatIntel.Whitelist.IpAddresses\": \"10.0.0.0, 10.0.0.1\",\r\n \"ThreatIntel.Whitelist.FQDNs\": + \"www.bing.com, *.microsoft.com, *google.com\"\r\n },\r\n \"ipConfigurations\": + [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": + [],\r\n \"natRuleCollections\": []\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:28 GMT + etag: + - W/"4b00a8d8-1d50-437a-9b39-fd17be8f8c87" + 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: + - edde4624-7138-41bf-a1da-8201a951cfe2 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist update + Connection: + - keep-alive + ParameterSetName: + - -g -n --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"4b00a8d8-1d50-437a-9b39-fd17be8f8c87\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"10.0.0.0, 10.0.0.0/24, IANAPrivateRanges\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\",\r\n + \ \"ThreatIntel.Whitelist.IpAddresses\": \"10.0.0.0, 10.0.0.1\",\r\n \"ThreatIntel.Whitelist.FQDNs\": + \"www.bing.com, *.microsoft.com, *google.com\"\r\n },\r\n \"ipConfigurations\": + [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": + [],\r\n \"natRuleCollections\": []\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:29 GMT + etag: + - W/"4b00a8d8-1d50-437a-9b39-fd17be8f8c87" + 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: + - 85f2c6d4-0104-41a7-ad5f-3b1989866522 + status: + code: 200 + message: OK +- request: + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1", + "location": "westus", "properties": {"applicationRuleCollections": [], "natRuleCollections": + [], "networkRuleCollections": [], "ipConfigurations": [], "threatIntelMode": + "Alert", "sku": {"name": "AZFW_VNet", "tier": "Standard"}, "additionalProperties": + {"Network.SNAT.PrivateRanges": "10.0.0.0, 10.0.0.0/24, IANAPrivateRanges", "Network.DNS.EnableProxy": + "False", "Network.DNS.RequireProxyForNetworkRules": "True", "ThreatIntel.Whitelist.IpAddresses": + "10.0.0.1, 10.0.0.0", "ThreatIntel.Whitelist.FQDNs": "*google.com, www.bing.com, + *.microsoft.com"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist update + Connection: + - keep-alive + Content-Length: + - '752' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"5c4426ba-ca48-4fc4-b48d-a1a0821412d9\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"10.0.0.0, 10.0.0.0/24, IANAPrivateRanges\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\",\r\n + \ \"ThreatIntel.Whitelist.IpAddresses\": \"10.0.0.1, 10.0.0.0\",\r\n \"ThreatIntel.Whitelist.FQDNs\": + \"*google.com, www.bing.com, *.microsoft.com\"\r\n },\r\n \"ipConfigurations\": + [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": + [],\r\n \"natRuleCollections\": []\r\n }\r\n}" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/a3d35464-83ca-48bb-b7b8-fc6e93c1881e?api-version=2020-05-01 + cache-control: + - no-cache + content-length: + - '1027' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:29 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-arm-service-request-id: + - 4b9af02e-0a5a-4b82-91e2-66cc816a4037 + x-ms-ratelimit-remaining-subscription-writes: + - '1197' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist update + Connection: + - keep-alive + ParameterSetName: + - -g -n --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/a3d35464-83ca-48bb-b7b8-fc6e93c1881e?api-version=2020-05-01 + response: + body: + string: "{\r\n \"status\": \"Succeeded\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '29' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:41 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-arm-service-request-id: + - 30172086-ceba-49ec-9117-82323e50c421 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist update + Connection: + - keep-alive + ParameterSetName: + - -g -n --ip-addresses --fqdns + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"8ca68a17-d444-4ce5-931d-0106bf176187\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"10.0.0.0, 10.0.0.0/24, IANAPrivateRanges\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\",\r\n + \ \"ThreatIntel.Whitelist.IpAddresses\": \"10.0.0.1, 10.0.0.0\",\r\n \"ThreatIntel.Whitelist.FQDNs\": + \"*google.com, www.bing.com, *.microsoft.com\"\r\n },\r\n \"ipConfigurations\": + [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": + [],\r\n \"natRuleCollections\": []\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:41 GMT + etag: + - W/"8ca68a17-d444-4ce5-931d-0106bf176187" + 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: + - 26ffb8b4-eb62-4c75-8d66-2fa7a9ff5a61 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall update + Connection: + - keep-alive + ParameterSetName: + - -g -n --private-ranges + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"8ca68a17-d444-4ce5-931d-0106bf176187\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"10.0.0.0, 10.0.0.0/24, IANAPrivateRanges\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\",\r\n + \ \"ThreatIntel.Whitelist.IpAddresses\": \"10.0.0.1, 10.0.0.0\",\r\n \"ThreatIntel.Whitelist.FQDNs\": + \"*google.com, www.bing.com, *.microsoft.com\"\r\n },\r\n \"ipConfigurations\": + [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": + [],\r\n \"natRuleCollections\": []\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:41 GMT + etag: + - W/"8ca68a17-d444-4ce5-931d-0106bf176187" + 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: + - c9231275-9bb1-46ec-a075-01d6590f9f77 + status: + code: 200 + message: OK +- request: + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1", + "location": "westus", "properties": {"applicationRuleCollections": [], "natRuleCollections": + [], "networkRuleCollections": [], "ipConfigurations": [], "threatIntelMode": + "Alert", "sku": {"name": "AZFW_VNet", "tier": "Standard"}, "additionalProperties": + {"Network.SNAT.PrivateRanges": "IANAPrivateRanges, 10.0.0.1, 10.0.0.0/16", "Network.DNS.EnableProxy": + "False", "Network.DNS.RequireProxyForNetworkRules": "True", "ThreatIntel.Whitelist.IpAddresses": + "10.0.0.1, 10.0.0.0", "ThreatIntel.Whitelist.FQDNs": "*google.com, www.bing.com, + *.microsoft.com"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall update + Connection: + - keep-alive + Content-Length: + - '752' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n --private-ranges + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"006339c1-1c06-4b56-a500-3ce39e8744ac\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"IANAPrivateRanges, 10.0.0.1, 10.0.0.0/16\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\",\r\n + \ \"ThreatIntel.Whitelist.IpAddresses\": \"10.0.0.1, 10.0.0.0\",\r\n \"ThreatIntel.Whitelist.FQDNs\": + \"*google.com, www.bing.com, *.microsoft.com\"\r\n },\r\n \"ipConfigurations\": + [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": + [],\r\n \"natRuleCollections\": []\r\n }\r\n}" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/61f25880-720d-4f81-afc4-455de6d7b968?api-version=2020-05-01 + cache-control: + - no-cache + content-length: + - '1027' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:42 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-arm-service-request-id: + - 95577161-d452-416d-a02f-704e5e3260a2 + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall update + Connection: + - keep-alive + ParameterSetName: + - -g -n --private-ranges + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/61f25880-720d-4f81-afc4-455de6d7b968?api-version=2020-05-01 + response: + body: + string: "{\r\n \"status\": \"Succeeded\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '29' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:53 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-arm-service-request-id: + - ca67181f-ee49-484d-b5d5-98fd03a0f81a + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall update + Connection: + - keep-alive + ParameterSetName: + - -g -n --private-ranges + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"af646762-1d94-48fd-bbbf-e9c4cf75a626\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"IANAPrivateRanges, 10.0.0.1, 10.0.0.0/16\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\",\r\n + \ \"ThreatIntel.Whitelist.IpAddresses\": \"10.0.0.1, 10.0.0.0\",\r\n \"ThreatIntel.Whitelist.FQDNs\": + \"*google.com, www.bing.com, *.microsoft.com\"\r\n },\r\n \"ipConfigurations\": + [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": + [],\r\n \"natRuleCollections\": []\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:53 GMT + etag: + - W/"af646762-1d94-48fd-bbbf-e9c4cf75a626" + 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: + - 3533a094-bc54-456f-804d-ed1aaad51115 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist delete + Connection: + - keep-alive + ParameterSetName: + - -g -n + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"af646762-1d94-48fd-bbbf-e9c4cf75a626\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"IANAPrivateRanges, 10.0.0.1, 10.0.0.0/16\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\",\r\n + \ \"ThreatIntel.Whitelist.IpAddresses\": \"10.0.0.1, 10.0.0.0\",\r\n \"ThreatIntel.Whitelist.FQDNs\": + \"*google.com, www.bing.com, *.microsoft.com\"\r\n },\r\n \"ipConfigurations\": + [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": + [],\r\n \"natRuleCollections\": []\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1028' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:54 GMT + etag: + - W/"af646762-1d94-48fd-bbbf-e9c4cf75a626" + 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: + - 702c0afd-5225-4be9-94d8-3863e469daad + status: + code: 200 + message: OK +- request: + body: '{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1", + "location": "westus", "properties": {"applicationRuleCollections": [], "natRuleCollections": + [], "networkRuleCollections": [], "ipConfigurations": [], "threatIntelMode": + "Alert", "sku": {"name": "AZFW_VNet", "tier": "Standard"}, "additionalProperties": + {"Network.SNAT.PrivateRanges": "IANAPrivateRanges, 10.0.0.1, 10.0.0.0/16", "Network.DNS.EnableProxy": + "False", "Network.DNS.RequireProxyForNetworkRules": "True"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist delete + Connection: + - keep-alive + Content-Length: + - '616' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"fb8c30ba-061a-48c8-8df9-10d102e6346b\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"IANAPrivateRanges, 10.0.0.1, 10.0.0.0/16\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n + \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": + [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": + []\r\n }\r\n}" + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/8c8c44ed-a735-4335-a940-c3144c2940ec?api-version=2020-05-01 + cache-control: + - no-cache + content-length: + - '877' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:08:54 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-arm-service-request-id: + - dbcff579-e2ed-4496-9bca-291cf2f8a855 + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist delete + Connection: + - keep-alive + ParameterSetName: + - -g -n + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/8c8c44ed-a735-4335-a940-c3144c2940ec?api-version=2020-05-01 + response: + body: + string: "{\r\n \"status\": \"Succeeded\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '29' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:09:06 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-arm-service-request-id: + - b1d9f80e-606e-4866-8861-f300bc530e92 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall threat-intel-allowlist delete + Connection: + - keep-alive + ParameterSetName: + - -g -n + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 + response: + body: + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_threat_intel_allowlist000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n + \ \"etag\": \"W/\\\"ccf27158-c3b0-4094-9f9b-0240e08f95f7\\\"\",\r\n \"type\": + \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus\",\r\n \"properties\": + {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": {\r\n \"name\": + \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n \"threatIntelMode\": + \"Alert\",\r\n \"additionalProperties\": {\r\n \"Network.SNAT.PrivateRanges\": + \"IANAPrivateRanges, 10.0.0.1, 10.0.0.0/16\",\r\n \"Network.DNS.EnableProxy\": + \"False\",\r\n \"Network.DNS.RequireProxyForNetworkRules\": \"True\"\r\n + \ },\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\": + [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": + []\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '878' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 27 Aug 2020 08:09:06 GMT + etag: + - W/"ccf27158-c3b0-4094-9f9b-0240e08f95f7" + 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: + - 09bea6fc-8ddc-43f5-bd03-e4eff9ad1161 + status: + code: 200 + message: OK +version: 1 diff --git a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_with_firewall_policy.yaml b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_with_firewall_policy.yaml index bf781dd5240..c8365fdb081 100644 --- a/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_with_firewall_policy.yaml +++ b/src/azure-firewall/azext_firewall/tests/latest/recordings/test_azure_firewall_with_firewall_policy.yaml @@ -13,15 +13,15 @@ interactions: ParameterSetName: - -n -g --type User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_with_firewall_policy000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001","name":"cli_test_azure_firewall_with_firewall_policy000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-08-07T06:38:46Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001","name":"cli_test_azure_firewall_with_firewall_policy000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-21T03:12:52Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:38:50 GMT + - Mon, 21 Sep 2020 03:12:55 GMT expires: - '-1' pragma: @@ -62,25 +62,26 @@ interactions: ParameterSetName: - -n -g --type User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualWans/clitestvwan?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"clitestvwan\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualWans/clitestvwan\",\r\n - \ \"etag\": \"W/\\\"b8a1ca50-be66-4e4f-b74b-a1fc5c58606f\\\"\",\r\n \"type\": - \"Microsoft.Network/virtualWans\",\r\n \"location\": \"westus2\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Updating\",\r\n \"disableVpnEncryption\": - false,\r\n \"allowBranchToBranchTraffic\": true,\r\n \"office365LocalBreakoutCategory\": - \"None\",\r\n \"type\": \"Standard\"\r\n }\r\n}" + string: "{\r\n \"name\": \"clitestvwan\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualWans/clitestvwan\"\ + ,\r\n \"etag\": \"W/\\\"261b3d54-3780-4408-9ff6-843d87fa6d99\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/virtualWans\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"disableVpnEncryption\": false,\r\n \"allowBranchToBranchTraffic\"\ + : true,\r\n \"office365LocalBreakoutCategory\": \"None\",\r\n \"type\"\ + : \"Standard\"\r\n }\r\n}" headers: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/dbf5c892-fde7-41ef-8dee-ba8336b40a92?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8b20f366-4fd6-44f1-899c-a21b935280c3?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -88,7 +89,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:38:55 GMT + - Mon, 21 Sep 2020 03:13:02 GMT expires: - '-1' pragma: @@ -101,9 +102,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 288caa81-0056-4157-b8f2-a6d5b08fef00 + - 74808dd0-a76a-4204-a3c1-0a52fca9ed76 x-ms-ratelimit-remaining-subscription-writes: - - '1192' + - '1199' status: code: 201 message: Created @@ -121,10 +122,10 @@ interactions: ParameterSetName: - -n -g --type User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/dbf5c892-fde7-41ef-8dee-ba8336b40a92?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8b20f366-4fd6-44f1-899c-a21b935280c3?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -136,7 +137,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:06 GMT + - Mon, 21 Sep 2020 03:13:13 GMT expires: - '-1' pragma: @@ -153,7 +154,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 164aa36e-0e6a-4cea-bf26-b3769d7e8359 + - c2211a9e-efe2-49cc-98d2-0844b1726ac1 status: code: 200 message: OK @@ -171,18 +172,19 @@ interactions: ParameterSetName: - -n -g --type User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualWans/clitestvwan?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"clitestvwan\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualWans/clitestvwan\",\r\n - \ \"etag\": \"W/\\\"3bab68b6-b6d8-4e81-b222-8c23fcc88118\\\"\",\r\n \"type\": - \"Microsoft.Network/virtualWans\",\r\n \"location\": \"westus2\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"disableVpnEncryption\": - false,\r\n \"allowBranchToBranchTraffic\": true,\r\n \"office365LocalBreakoutCategory\": - \"None\",\r\n \"type\": \"Standard\"\r\n }\r\n}" + string: "{\r\n \"name\": \"clitestvwan\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualWans/clitestvwan\"\ + ,\r\n \"etag\": \"W/\\\"b79cfbd6-f36a-4ea8-ace3-5492ecdb298b\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/virtualWans\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"disableVpnEncryption\": false,\r\n \"allowBranchToBranchTraffic\"\ + : true,\r\n \"office365LocalBreakoutCategory\": \"None\",\r\n \"type\"\ + : \"Standard\"\r\n }\r\n}" headers: cache-control: - no-cache @@ -191,9 +193,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:06 GMT + - Mon, 21 Sep 2020 03:13:13 GMT etag: - - W/"3bab68b6-b6d8-4e81-b222-8c23fcc88118" + - W/"b79cfbd6-f36a-4ea8-ace3-5492ecdb298b" expires: - '-1' pragma: @@ -210,7 +212,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 7cd64ab3-2912-4a5b-a597-75c976f0ea37 + - 49173a21-ced2-428c-8bc8-e9cd700d4541 status: code: 200 message: OK @@ -233,28 +235,29 @@ interactions: ParameterSetName: - -g -n --vwan --address-prefix -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualHubs/clitestvhub?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"clitestvhub\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualHubs/clitestvhub\",\r\n - \ \"etag\": \"W/\\\"7e01057a-9fea-4dc9-a124-9d3e78d18fc1\\\"\",\r\n \"type\": - \"Microsoft.Network/virtualHubs\",\r\n \"location\": \"westus2\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Updating\",\r\n \"virtualHubRouteTableV2s\": - [],\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"virtualRouterAsn\": - 0,\r\n \"virtualRouterIps\": [],\r\n \"routeTable\": {\r\n \"routes\": - []\r\n },\r\n \"virtualWan\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualWans/clitestvwan\"\r\n - \ },\r\n \"sku\": \"Standard\",\r\n \"routingState\": \"None\"\r\n - \ }\r\n}" + string: "{\r\n \"name\": \"clitestvhub\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualHubs/clitestvhub\"\ + ,\r\n \"etag\": \"W/\\\"b1cf07d1-50e0-42c4-a420-bf9acb510852\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/virtualHubs\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"virtualHubRouteTableV2s\": [],\r\n \"addressPrefix\": \"10.0.0.0/24\"\ + ,\r\n \"virtualRouterAsn\": 0,\r\n \"virtualRouterIps\": [],\r\n \ + \ \"routeTable\": {\r\n \"routes\": []\r\n },\r\n \"virtualWan\"\ + : {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualWans/clitestvwan\"\ + \r\n },\r\n \"sku\": \"Standard\",\r\n \"routingState\": \"None\"\ + \r\n }\r\n}" headers: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/571b9152-2628-4dd6-b22f-3d3bd7cf74d1?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -262,7 +265,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:11 GMT + - Mon, 21 Sep 2020 03:13:23 GMT expires: - '-1' pragma: @@ -275,9 +278,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 018ada31-b334-46ae-b21d-aa2ad08ce8a8 + - 9ae3d5cf-2801-446e-9a46-2def62027361 x-ms-ratelimit-remaining-subscription-writes: - - '1190' + - '1197' status: code: 201 message: Created @@ -295,10 +298,10 @@ interactions: ParameterSetName: - -g -n --vwan --address-prefix -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/571b9152-2628-4dd6-b22f-3d3bd7cf74d1?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -310,7 +313,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:22 GMT + - Mon, 21 Sep 2020 03:13:34 GMT expires: - '-1' pragma: @@ -327,7 +330,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 37ad495e-58de-4fb4-a98e-bb689a0db04e + - c90cb496-91a0-4c06-a826-65a5ab42c0b6 status: code: 200 message: OK @@ -345,10 +348,10 @@ interactions: ParameterSetName: - -g -n --vwan --address-prefix -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/571b9152-2628-4dd6-b22f-3d3bd7cf74d1?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -360,7 +363,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:32 GMT + - Mon, 21 Sep 2020 03:13:44 GMT expires: - '-1' pragma: @@ -377,7 +380,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 14e14a8e-b0aa-4c28-973e-1d44b37d78cd + - 310de513-cb27-451d-b549-f2c9ef845852 status: code: 200 message: OK @@ -395,10 +398,10 @@ interactions: ParameterSetName: - -g -n --vwan --address-prefix -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/571b9152-2628-4dd6-b22f-3d3bd7cf74d1?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -410,7 +413,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:39:53 GMT + - Mon, 21 Sep 2020 03:14:05 GMT expires: - '-1' pragma: @@ -427,7 +430,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 7af7c551-e0c6-4a97-a44e-ee3ff0bc4e2a + - 834ff2e4-aa00-4f6f-bc89-42d0d0fd424c status: code: 200 message: OK @@ -445,10 +448,10 @@ interactions: ParameterSetName: - -g -n --vwan --address-prefix -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/571b9152-2628-4dd6-b22f-3d3bd7cf74d1?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -460,7 +463,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:40:14 GMT + - Mon, 21 Sep 2020 03:14:25 GMT expires: - '-1' pragma: @@ -477,7 +480,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 58ea6946-6f61-4395-aae9-b52d022251ad + - 2af3b6e2-fc39-4b70-b913-79bb91d3af21 status: code: 200 message: OK @@ -495,10 +498,10 @@ interactions: ParameterSetName: - -g -n --vwan --address-prefix -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/571b9152-2628-4dd6-b22f-3d3bd7cf74d1?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -510,7 +513,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:40:54 GMT + - Mon, 21 Sep 2020 03:15:06 GMT expires: - '-1' pragma: @@ -527,7 +530,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - c5364aed-a1a2-4196-94c4-4042aa22dffd + - 3c6bf9b0-6d83-44b1-82b2-a9048bcbfac7 status: code: 200 message: OK @@ -545,10 +548,10 @@ interactions: ParameterSetName: - -g -n --vwan --address-prefix -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/571b9152-2628-4dd6-b22f-3d3bd7cf74d1?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -560,7 +563,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:41:34 GMT + - Mon, 21 Sep 2020 03:15:46 GMT expires: - '-1' pragma: @@ -577,7 +580,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - f1b51393-6971-4e78-847d-033ffad4a5ef + - aca79321-5305-4e4a-bfe1-6890ed987f5c status: code: 200 message: OK @@ -595,160 +598,10 @@ interactions: ParameterSetName: - -g -n --vwan --address-prefix -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 - response: - body: - string: "{\r\n \"status\": \"InProgress\"\r\n}" - headers: - cache-control: - - no-cache - content-length: - - '30' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 07 Aug 2020 06:43:14 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-arm-service-request-id: - - 2a187126-5111-4791-9568-6b3e498ad88e - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - network vhub create - Connection: - - keep-alive - ParameterSetName: - - -g -n --vwan --address-prefix -l --sku - User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 - response: - body: - string: "{\r\n \"status\": \"InProgress\"\r\n}" - headers: - cache-control: - - no-cache - content-length: - - '30' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 07 Aug 2020 06:44:56 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-arm-service-request-id: - - 56581515-4915-4d63-ae47-353ea35bb39c - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - network vhub create - Connection: - - keep-alive - ParameterSetName: - - -g -n --vwan --address-prefix -l --sku - User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 - response: - body: - string: "{\r\n \"status\": \"InProgress\"\r\n}" - headers: - cache-control: - - no-cache - content-length: - - '30' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 07 Aug 2020 06:46:36 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-arm-service-request-id: - - f1b2e772-1e3b-4ace-9d66-815117f80774 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - network vhub create - Connection: - - keep-alive - ParameterSetName: - - -g -n --vwan --address-prefix -l --sku - User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/8189eea4-6bf1-4b3c-930e-cdac9f5a5071?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/571b9152-2628-4dd6-b22f-3d3bd7cf74d1?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -760,7 +613,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:48:17 GMT + - Mon, 21 Sep 2020 03:17:26 GMT expires: - '-1' pragma: @@ -777,7 +630,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 07ab44c0-cbd4-4142-a359-ddbf5286ea29 + - abe951ba-0377-45e5-a9d2-7b28161223b9 status: code: 200 message: OK @@ -795,21 +648,22 @@ interactions: ParameterSetName: - -g -n --vwan --address-prefix -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualHubs/clitestvhub?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"clitestvhub\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualHubs/clitestvhub\",\r\n - \ \"etag\": \"W/\\\"c8ea58d3-e628-4412-86fb-7bde87c1af04\\\"\",\r\n \"type\": - \"Microsoft.Network/virtualHubs\",\r\n \"location\": \"westus2\",\r\n \"properties\": - {\r\n \"provisioningState\": \"Succeeded\",\r\n \"virtualHubRouteTableV2s\": - [],\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"virtualRouterAsn\": - 0,\r\n \"virtualRouterIps\": [],\r\n \"routeTable\": {\r\n \"routes\": - []\r\n },\r\n \"virtualWan\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualWans/clitestvwan\"\r\n - \ },\r\n \"sku\": \"Standard\",\r\n \"routingState\": \"Provisioning\"\r\n - \ }\r\n}" + string: "{\r\n \"name\": \"clitestvhub\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualHubs/clitestvhub\"\ + ,\r\n \"etag\": \"W/\\\"174ec5e7-ffdc-4efc-8ca5-d4679baee0b2\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/virtualHubs\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"virtualHubRouteTableV2s\": [],\r\n \"addressPrefix\": \"10.0.0.0/24\"\ + ,\r\n \"virtualRouterAsn\": 0,\r\n \"virtualRouterIps\": [],\r\n \ + \ \"routeTable\": {\r\n \"routes\": []\r\n },\r\n \"virtualWan\"\ + : {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualWans/clitestvwan\"\ + \r\n },\r\n \"sku\": \"Standard\",\r\n \"routingState\": \"Provisioning\"\ + \r\n }\r\n}" headers: cache-control: - no-cache @@ -818,7 +672,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:48:17 GMT + - Mon, 21 Sep 2020 03:17:26 GMT expires: - '-1' pragma: @@ -835,7 +689,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 6ab50ade-f4ac-4650-9149-43fcaa5f29cc + - 59d93d84-2a39-4901-8a7d-92855c34dc4f status: code: 200 message: OK @@ -857,22 +711,24 @@ interactions: ParameterSetName: - -g -n -l User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n - \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"firewalls\": - [],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n - \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n - \ \"etag\": \"96c0aa2f-a7d2-437c-a76e-2f88b0032832\",\r\n \"location\": \"westus2\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n\ + \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"\ + firewalls\": [],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ + ,\r\n \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ + ,\r\n \"etag\": \"d53dec77-a079-43bb-9e31-b09d03b9686b\",\r\n \"location\"\ + : \"westus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/nfvOperations/6be26cba-a2b7-43e8-b209-a041aa6ddc5b?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/nfvOperations/90ca88cf-921b-4db4-a87c-73e2972fac93?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -880,7 +736,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:48:26 GMT + - Mon, 21 Sep 2020 03:17:34 GMT expires: - '-1' pragma: @@ -892,7 +748,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1181' + - '1198' status: code: 201 message: Created @@ -910,10 +766,10 @@ interactions: ParameterSetName: - -g -n -l User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/nfvOperations/6be26cba-a2b7-43e8-b209-a041aa6ddc5b?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/nfvOperations/90ca88cf-921b-4db4-a87c-73e2972fac93?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -925,7 +781,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:48:37 GMT + - Mon, 21 Sep 2020 03:17:46 GMT expires: - '-1' pragma: @@ -957,17 +813,19 @@ interactions: ParameterSetName: - -g -n -l User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n - \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"firewalls\": - [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\",\r\n - \ \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n - \ \"etag\": \"96c0aa2f-a7d2-437c-a76e-2f88b0032832\",\r\n \"location\": \"westus2\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n\ + \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"\ + firewalls\": [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \ + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ + ,\r\n \"name\": \"myclipolicy\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ + ,\r\n \"etag\": \"d53dec77-a079-43bb-9e31-b09d03b9686b\",\r\n \"location\"\ + : \"westus2\"\r\n}" headers: cache-control: - no-cache @@ -976,7 +834,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:48:37 GMT + - Mon, 21 Sep 2020 03:17:46 GMT expires: - '-1' pragma: @@ -1008,15 +866,15 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_azure_firewall_with_firewall_policy000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001","name":"cli_test_azure_firewall_with_firewall_policy000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-08-07T06:38:46Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001","name":"cli_test_azure_firewall_with_firewall_policy000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-09-21T03:12:52Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -1025,7 +883,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:48:38 GMT + - Mon, 21 Sep 2020 03:17:46 GMT expires: - '-1' pragma: @@ -1060,30 +918,30 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"b48f45a3-0e2f-4637-897c-b9c073d408fe\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": - {\r\n \"name\": \"AZFW_Hub\",\r\n \"tier\": \"Standard\"\r\n },\r\n - \ \"additionalProperties\": {},\r\n \"virtualHub\": {\r\n \"id\": - \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualHubs/clitestvhub\"\r\n - \ },\r\n \"hubIPAddresses\": {\r\n \"publicIPs\": {\r\n \"addresses\": - [],\r\n \"count\": 1\r\n }\r\n },\r\n \"firewallPolicy\": - {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\r\n - \ }\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"87ce0d6d-2b65-4be8-9123-cb7012e8f2b8\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"sku\": {\r\n \"name\": \"AZFW_Hub\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"additionalProperties\": {},\r\n \"virtualHub\": {\r\ + \n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualHubs/clitestvhub\"\ + \r\n },\r\n \"hubIPAddresses\": {\r\n \"publicIPs\": {\r\n \ + \ \"addresses\": [],\r\n \"count\": 1\r\n }\r\n },\r\n \ + \ \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ + \r\n }\r\n }\r\n}" headers: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -1091,7 +949,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:48:47 GMT + - Mon, 21 Sep 2020 03:17:55 GMT expires: - '-1' pragma: @@ -1104,9 +962,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - b07ce2a4-ab60-4c0c-81c0-5ad76c8fa25d + - 279dfd73-b071-4192-bfe4-65ce3a2a31a4 x-ms-ratelimit-remaining-subscription-writes: - - '1186' + - '1198' status: code: 201 message: Created @@ -1124,10 +982,60 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 + response: + body: + string: "{\r\n \"status\": \"InProgress\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '30' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 21 Sep 2020 03:18:06 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-arm-service-request-id: + - 792ba207-2834-481b-8f59-1016593cafa3 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network firewall create + Connection: + - keep-alive + ParameterSetName: + - -g -n --count --sku --vhub --firewall-policy + User-Agent: + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1139,7 +1047,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:48:58 GMT + - Mon, 21 Sep 2020 03:18:16 GMT expires: - '-1' pragma: @@ -1156,7 +1064,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - b7cb7114-81d5-4f52-9a86-a597c8296cc4 + - ddf79b95-37de-4531-b3d2-7d41249dfd2e status: code: 200 message: OK @@ -1174,10 +1082,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1189,7 +1097,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:49:08 GMT + - Mon, 21 Sep 2020 03:18:37 GMT expires: - '-1' pragma: @@ -1206,7 +1114,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 0b8182f6-ef61-4d5f-a18e-70a64e70f25b + - 471f8f28-1877-4b8d-85b8-ba63fea8e78a status: code: 200 message: OK @@ -1224,10 +1132,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1239,7 +1147,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:49:28 GMT + - Mon, 21 Sep 2020 03:18:58 GMT expires: - '-1' pragma: @@ -1256,7 +1164,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 1b2ccad5-b01e-4e95-a085-60537e711b49 + - d305e72a-2c4a-4ee5-ad31-2d2cd8d73f75 status: code: 200 message: OK @@ -1274,10 +1182,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1289,7 +1197,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:49:48 GMT + - Mon, 21 Sep 2020 03:19:37 GMT expires: - '-1' pragma: @@ -1306,7 +1214,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 7cdb2c70-553c-41b7-bfce-91f1f8879321 + - 085bdc09-9ca1-4b92-af19-cbe8bcc70254 status: code: 200 message: OK @@ -1324,10 +1232,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1339,7 +1247,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:50:29 GMT + - Mon, 21 Sep 2020 03:20:18 GMT expires: - '-1' pragma: @@ -1356,7 +1264,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - fcfa0212-2af2-4cbc-833d-6db1fdd0b541 + - 647cce83-1d29-46a8-b031-0edbe51e52a6 status: code: 200 message: OK @@ -1374,10 +1282,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1389,7 +1297,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:51:10 GMT + - Mon, 21 Sep 2020 03:21:59 GMT expires: - '-1' pragma: @@ -1406,7 +1314,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - f9ac287b-7e54-4dd8-b7ed-e4c863880cfc + - 48784315-4a6f-484c-98ba-6d787c68d77c status: code: 200 message: OK @@ -1424,10 +1332,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1439,7 +1347,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:52:50 GMT + - Mon, 21 Sep 2020 03:23:40 GMT expires: - '-1' pragma: @@ -1456,7 +1364,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 8d8c907f-fe5f-486d-87f3-1e0b7d1119db + - d0239900-3603-4418-9d42-f3f4661c88ad status: code: 200 message: OK @@ -1474,10 +1382,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1489,7 +1397,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:54:30 GMT + - Mon, 21 Sep 2020 03:25:21 GMT expires: - '-1' pragma: @@ -1506,7 +1414,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 12a5b8a0-89e2-4076-b1c0-515421d498c5 + - 81b5e8da-7ade-45b6-8d65-5c8929e78c68 status: code: 200 message: OK @@ -1524,10 +1432,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1539,7 +1447,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:56:10 GMT + - Mon, 21 Sep 2020 03:27:00 GMT expires: - '-1' pragma: @@ -1556,7 +1464,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - b4789177-a12e-4b39-a4eb-f8a68f12a9d8 + - 6aa365e6-b341-4e51-a446-fb33903bb3af status: code: 200 message: OK @@ -1574,10 +1482,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1589,7 +1497,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:57:51 GMT + - Mon, 21 Sep 2020 03:28:41 GMT expires: - '-1' pragma: @@ -1606,7 +1514,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 3a454bc7-a2cc-454d-abe6-4613a4900142 + - 5ff04d97-7d7a-4f59-9f3f-44a3e727921f status: code: 200 message: OK @@ -1624,10 +1532,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1639,7 +1547,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 06:59:32 GMT + - Mon, 21 Sep 2020 03:30:25 GMT expires: - '-1' pragma: @@ -1656,7 +1564,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - e05e4bc0-e279-4c2f-9e0e-e4271cfe8e7f + - 7a7458e7-08f3-4ebe-8fd4-6800c7b329c1 status: code: 200 message: OK @@ -1674,10 +1582,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1689,7 +1597,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:01:13 GMT + - Mon, 21 Sep 2020 03:32:06 GMT expires: - '-1' pragma: @@ -1706,7 +1614,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - dafb803e-cd07-439c-98b3-6bf05bb3e8af + - b09ebe4e-6577-476c-b02d-f28d220bf2cf status: code: 200 message: OK @@ -1724,10 +1632,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -1739,7 +1647,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:02:53 GMT + - Mon, 21 Sep 2020 03:33:47 GMT expires: - '-1' pragma: @@ -1756,7 +1664,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 222a400f-29f2-4d9b-86fa-a8207221b668 + - 590ce0bc-819c-4103-985a-1e92b4e674b6 status: code: 200 message: OK @@ -1774,10 +1682,10 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/33e5f01f-5b9b-4cf9-9d4f-a2e135914fef?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0ad30a2e-b337-4ede-aacd-ef68fc7289fe?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -1789,7 +1697,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:04:34 GMT + - Mon, 21 Sep 2020 03:35:27 GMT expires: - '-1' pragma: @@ -1806,7 +1714,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 03a1a7c4-9fb6-4c75-adf8-7ea8ef225843 + - 9988d55b-44a3-435b-aa45-47f55d12e562 status: code: 200 message: OK @@ -1824,24 +1732,25 @@ interactions: ParameterSetName: - -g -n --count --sku --vhub --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af1?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af1\",\r\n - \ \"etag\": \"W/\\\"7049c14a-ba2f-42ae-8265-484c88d3c978\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": - {\r\n \"name\": \"AZFW_Hub\",\r\n \"tier\": \"Standard\"\r\n },\r\n - \ \"additionalProperties\": {},\r\n \"virtualHub\": {\r\n \"id\": - \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualHubs/clitestvhub\"\r\n - \ },\r\n \"hubIPAddresses\": {\r\n \"privateIPAddress\": \"10.0.0.68\",\r\n - \ \"publicIPs\": {\r\n \"addresses\": [\r\n {\r\n \"address\": - \"20.190.19.240\"\r\n }\r\n ],\r\n \"count\": 1\r\n - \ }\r\n },\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\r\n - \ }\r\n }\r\n}" + string: "{\r\n \"name\": \"af1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af1\"\ + ,\r\n \"etag\": \"W/\\\"f028a898-6054-419c-83f9-c302964ac833\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_Hub\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"additionalProperties\": {},\r\n \"virtualHub\": {\r\ + \n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualHubs/clitestvhub\"\ + \r\n },\r\n \"hubIPAddresses\": {\r\n \"privateIPAddress\": \"\ + 10.0.0.68\",\r\n \"publicIPs\": {\r\n \"addresses\": [\r\n \ + \ {\r\n \"address\": \"52.148.167.70\"\r\n }\r\n\ + \ ],\r\n \"count\": 1\r\n }\r\n },\r\n \"firewallPolicy\"\ + : {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ + \r\n }\r\n }\r\n}" headers: cache-control: - no-cache @@ -1850,9 +1759,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:04:34 GMT + - Mon, 21 Sep 2020 03:35:27 GMT etag: - - W/"7049c14a-ba2f-42ae-8265-484c88d3c978" + - W/"f028a898-6054-419c-83f9-c302964ac833" expires: - '-1' pragma: @@ -1869,7 +1778,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 62e6a522-681b-435d-9ac3-aa5936d0763b + - 35ac57ae-ad4a-46c5-92d2-15a71361fc39 status: code: 200 message: OK @@ -1892,29 +1801,29 @@ interactions: ParameterSetName: - -g -n -l --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\",\r\n - \ \"etag\": \"W/\\\"3f226c3a-4982-4432-88b1-9a208b5f5976\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": - {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n - \ \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\": {},\r\n - \ \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": - [],\r\n \"natRuleCollections\": [],\r\n \"firewallPolicy\": {\r\n \"id\": - \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\r\n - \ }\r\n }\r\n}" + string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\"\ + ,\r\n \"etag\": \"W/\\\"354b9a42-cb9a-4f25-b9bc-de0efc1943de\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\":\ + \ [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ + \r\n }\r\n }\r\n}" headers: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/eefe6eec-b005-4cb5-8cae-3c43a7f3c81a?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/272765ce-b520-4c75-baee-7825a1f9e9f3?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -1922,7 +1831,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:04:43 GMT + - Mon, 21 Sep 2020 03:35:36 GMT expires: - '-1' pragma: @@ -1935,9 +1844,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - c62b1197-cac9-4617-b260-5be70ce86bc3 + - 7a93bfc0-ac4f-4f37-928c-7234475cfbfb x-ms-ratelimit-remaining-subscription-writes: - - '1185' + - '1198' status: code: 201 message: Created @@ -1955,10 +1864,10 @@ interactions: ParameterSetName: - -g -n -l --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/eefe6eec-b005-4cb5-8cae-3c43a7f3c81a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/272765ce-b520-4c75-baee-7825a1f9e9f3?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -1970,7 +1879,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:04:53 GMT + - Mon, 21 Sep 2020 03:35:46 GMT expires: - '-1' pragma: @@ -1987,7 +1896,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 9e4b4048-a52f-498c-9834-95242126d1b5 + - 8a7be2b6-64d2-44eb-a981-2b7b0c42fc06 status: code: 200 message: OK @@ -2005,22 +1914,22 @@ interactions: ParameterSetName: - -g -n -l --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\",\r\n - \ \"etag\": \"W/\\\"5faf7ef9-fb2c-4c61-a4b8-f098b2aaed3e\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": - {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n - \ \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\": {},\r\n - \ \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": - [],\r\n \"natRuleCollections\": [],\r\n \"firewallPolicy\": {\r\n \"id\": - \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\r\n - \ }\r\n }\r\n}" + string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\"\ + ,\r\n \"etag\": \"W/\\\"4a55d376-8438-4eb8-95d1-5b56722c9715\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\":\ + \ [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ + \r\n }\r\n }\r\n}" headers: cache-control: - no-cache @@ -2029,9 +1938,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:04:54 GMT + - Mon, 21 Sep 2020 03:35:47 GMT etag: - - W/"5faf7ef9-fb2c-4c61-a4b8-f098b2aaed3e" + - W/"4a55d376-8438-4eb8-95d1-5b56722c9715" expires: - '-1' pragma: @@ -2048,7 +1957,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 5c653bd8-98f3-42e1-8a87-dc291777f4c9 + - 077a98b9-5313-492b-ae4d-11bcdeea23bd status: code: 200 message: OK @@ -2071,26 +1980,27 @@ interactions: ParameterSetName: - -g -n -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-06-01 response: body: - string: "{\r\n \"name\": \"pubip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\",\r\n - \ \"etag\": \"W/\\\"927f9f88-61ab-487b-ba46-813d0e2dc071\\\"\",\r\n \"location\": - \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n - \ \"resourceGuid\": \"4140670b-19de-43f5-bb53-56bf22038263\",\r\n \"publicIPAddressVersion\": - \"IPv4\",\r\n \"publicIPAllocationMethod\": \"Static\",\r\n \"idleTimeoutInMinutes\": - 4,\r\n \"ipTags\": []\r\n },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n - \ \"sku\": {\r\n \"name\": \"Standard\"\r\n }\r\n}" + string: "{\r\n \"name\": \"pubip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + ,\r\n \"etag\": \"W/\\\"41a6a9b7-9a4a-4aac-add2-f0589dfedb85\\\"\",\r\n \ + \ \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\"\ + : \"Updating\",\r\n \"resourceGuid\": \"f8faa2a8-601f-4312-80e8-1099b25e429d\"\ + ,\r\n \"publicIPAddressVersion\": \"IPv4\",\r\n \"publicIPAllocationMethod\"\ + : \"Static\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"ipTags\": []\r\n\ + \ },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"sku\"\ + : {\r\n \"name\": \"Standard\"\r\n }\r\n}" headers: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/446ab679-3e94-41e8-b05c-490d9e9b5b26?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/be474c7b-66f7-497b-8cda-29e144d4252f?api-version=2020-06-01 cache-control: - no-cache content-length: @@ -2098,7 +2008,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:05:00 GMT + - Mon, 21 Sep 2020 03:35:53 GMT expires: - '-1' pragma: @@ -2111,9 +2021,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 5757546a-80c2-418e-b39f-729c5d6912e7 + - 30538644-4930-4694-bb94-18b8df9c33ee x-ms-ratelimit-remaining-subscription-writes: - - '1187' + - '1197' status: code: 201 message: Created @@ -2131,10 +2041,10 @@ interactions: ParameterSetName: - -g -n -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/446ab679-3e94-41e8-b05c-490d9e9b5b26?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/be474c7b-66f7-497b-8cda-29e144d4252f?api-version=2020-06-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -2146,7 +2056,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:05:02 GMT + - Mon, 21 Sep 2020 03:35:56 GMT expires: - '-1' pragma: @@ -2163,7 +2073,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 42c51d58-e176-4872-a7b1-c0ab99861ef5 + - af4088ba-76d0-4752-bed9-0cfc0718447c status: code: 200 message: OK @@ -2181,31 +2091,31 @@ interactions: ParameterSetName: - -g -n -l --sku User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip?api-version=2020-06-01 response: body: - string: "{\r\n \"name\": \"pubip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\",\r\n - \ \"etag\": \"W/\\\"e400897e-174a-46c7-99c7-dce15ac586ba\\\"\",\r\n \"location\": - \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"resourceGuid\": \"4140670b-19de-43f5-bb53-56bf22038263\",\r\n \"ipAddress\": - \"52.250.34.229\",\r\n \"publicIPAddressVersion\": \"IPv4\",\r\n \"publicIPAllocationMethod\": - \"Static\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"ipTags\": []\r\n - \ },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"sku\": - {\r\n \"name\": \"Standard\"\r\n }\r\n}" + string: "{\r\n \"name\": \"pubip\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + ,\r\n \"etag\": \"W/\\\"1ce1c180-976a-4b28-96e4-a57a39054cdf\\\"\",\r\n \ + \ \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\"\ + : \"Succeeded\",\r\n \"resourceGuid\": \"f8faa2a8-601f-4312-80e8-1099b25e429d\"\ + ,\r\n \"ipAddress\": \"51.143.55.45\",\r\n \"publicIPAddressVersion\"\ + : \"IPv4\",\r\n \"publicIPAllocationMethod\": \"Static\",\r\n \"idleTimeoutInMinutes\"\ + : 4,\r\n \"ipTags\": []\r\n },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\"\ + ,\r\n \"sku\": {\r\n \"name\": \"Standard\"\r\n }\r\n}" headers: cache-control: - no-cache content-length: - - '697' + - '696' content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:05:02 GMT + - Mon, 21 Sep 2020 03:35:56 GMT etag: - - W/"e400897e-174a-46c7-99c7-dce15ac586ba" + - W/"1ce1c180-976a-4b28-96e4-a57a39054cdf" expires: - '-1' pragma: @@ -2222,7 +2132,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - c83037e1-f88d-40d5-a7aa-fab81515d8c4 + - a8e7f4cf-ebc2-4f9f-a35f-93b629d04b8b status: code: 200 message: OK @@ -2246,35 +2156,36 @@ interactions: ParameterSetName: - -g -n --subnet-name -l --address-prefixes --subnet-prefixes User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-06-01 response: body: - string: "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n - \ \"etag\": \"W/\\\"bc7e24b5-6121-4cd8-96bd-043b9cab2cc4\\\"\",\r\n \"type\": - \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\",\r\n - \ \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n - \ \"resourceGuid\": \"1a231457-6a8d-497e-967c-4354d94f4c53\",\r\n \"addressSpace\": - {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n - \ },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": []\r\n },\r\n - \ \"subnets\": [\r\n {\r\n \"name\": \"AzureFirewallSubnet\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\",\r\n - \ \"etag\": \"W/\\\"bc7e24b5-6121-4cd8-96bd-043b9cab2cc4\\\"\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n - \ \"addressPrefix\": \"10.0.0.0/24\",\r\n \"delegations\": - [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \"privateLinkServiceNetworkPolicies\": - \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n - \ }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": - false,\r\n \"enableVmProtection\": false\r\n }\r\n}" + string: "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet\"\ + ,\r\n \"etag\": \"W/\\\"0d23d16e-da9e-48f6-a200-822a4482fcd3\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ + ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ + \ \"Updating\",\r\n \"resourceGuid\": \"7d932d5c-ee8f-4a25-99a2-1bb336442495\"\ + ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ + 10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ + : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"AzureFirewallSubnet\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + ,\r\n \"etag\": \"W/\\\"0d23d16e-da9e-48f6-a200-822a4482fcd3\\\"\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\"\ + ,\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"delegations\"\ + : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ + \ \"privateLinkServiceNetworkPolicies\": \"Enabled\"\r\n },\r\ + \n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n \ + \ }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\"\ + : false,\r\n \"enableVmProtection\": false\r\n }\r\n}" headers: azure-asyncnotification: - Enabled azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/04aef479-74b7-4cc6-9f0a-34ac63773fbc?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0d5f3e3a-19cb-449a-8780-7d15c51f87f0?api-version=2020-06-01 cache-control: - no-cache content-length: @@ -2282,7 +2193,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:05:06 GMT + - Mon, 21 Sep 2020 03:36:04 GMT expires: - '-1' pragma: @@ -2295,9 +2206,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - e83cd005-d154-4ef3-85f0-9fbc727b5e98 + - 60f12c2c-b3a3-4032-81de-bdb33770d6a4 x-ms-ratelimit-remaining-subscription-writes: - - '1185' + - '1197' status: code: 201 message: Created @@ -2315,10 +2226,10 @@ interactions: ParameterSetName: - -g -n --subnet-name -l --address-prefixes --subnet-prefixes User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/04aef479-74b7-4cc6-9f0a-34ac63773fbc?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/0d5f3e3a-19cb-449a-8780-7d15c51f87f0?api-version=2020-06-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -2330,7 +2241,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:05:10 GMT + - Mon, 21 Sep 2020 03:36:08 GMT expires: - '-1' pragma: @@ -2347,7 +2258,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - c1fc9ffd-6242-42cf-bd39-f34b337e5f08 + - d9b8b5c9-a16d-408b-b9ef-ac08616a3dff status: code: 200 message: OK @@ -2365,28 +2276,29 @@ interactions: ParameterSetName: - -g -n --subnet-name -l --address-prefixes --subnet-prefixes User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/11.0.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2020-06-01 response: body: - string: "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n - \ \"etag\": \"W/\\\"c9ab9a44-21fe-45e7-acf6-8610f3a5c19a\\\"\",\r\n \"type\": - \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\",\r\n - \ \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"resourceGuid\": \"1a231457-6a8d-497e-967c-4354d94f4c53\",\r\n \"addressSpace\": - {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n - \ },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": []\r\n },\r\n - \ \"subnets\": [\r\n {\r\n \"name\": \"AzureFirewallSubnet\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\",\r\n - \ \"etag\": \"W/\\\"c9ab9a44-21fe-45e7-acf6-8610f3a5c19a\\\"\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"addressPrefix\": \"10.0.0.0/24\",\r\n \"delegations\": - [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \"privateLinkServiceNetworkPolicies\": - \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n - \ }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": - false,\r\n \"enableVmProtection\": false\r\n }\r\n}" + string: "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet\"\ + ,\r\n \"etag\": \"W/\\\"403e5663-7e2f-443e-aaf4-6728d68469bc\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\"\ + ,\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\":\ + \ \"Succeeded\",\r\n \"resourceGuid\": \"7d932d5c-ee8f-4a25-99a2-1bb336442495\"\ + ,\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"\ + 10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\"\ + : []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"AzureFirewallSubnet\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + ,\r\n \"etag\": \"W/\\\"403e5663-7e2f-443e-aaf4-6728d68469bc\\\"\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ + ,\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"delegations\"\ + : [],\r\n \"privateEndpointNetworkPolicies\": \"Enabled\",\r\n \ + \ \"privateLinkServiceNetworkPolicies\": \"Enabled\"\r\n },\r\ + \n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n \ + \ }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\"\ + : false,\r\n \"enableVmProtection\": false\r\n }\r\n}" headers: cache-control: - no-cache @@ -2395,9 +2307,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:05:10 GMT + - Mon, 21 Sep 2020 03:36:08 GMT etag: - - W/"c9ab9a44-21fe-45e7-acf6-8610f3a5c19a" + - W/"403e5663-7e2f-443e-aaf4-6728d68469bc" expires: - '-1' pragma: @@ -2414,7 +2326,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 59fcf6b2-ce36-469d-9d2c-6db41af35f0e + - 4c7f2da5-4b28-4b65-8442-3c9eb1ca3977 status: code: 200 message: OK @@ -2432,24 +2344,24 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\",\r\n - \ \"etag\": \"W/\\\"5faf7ef9-fb2c-4c61-a4b8-f098b2aaed3e\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": - {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n - \ \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\": {},\r\n - \ \"ipConfigurations\": [],\r\n \"networkRuleCollections\": [],\r\n \"applicationRuleCollections\": - [],\r\n \"natRuleCollections\": [],\r\n \"firewallPolicy\": {\r\n \"id\": - \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\r\n - \ }\r\n }\r\n}" + string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\"\ + ,\r\n \"etag\": \"W/\\\"4a55d376-8438-4eb8-95d1-5b56722c9715\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [],\r\n \"networkRuleCollections\":\ + \ [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ + \r\n }\r\n }\r\n}" headers: cache-control: - no-cache @@ -2458,9 +2370,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:05:11 GMT + - Mon, 21 Sep 2020 03:36:08 GMT etag: - - W/"5faf7ef9-fb2c-4c61-a4b8-f098b2aaed3e" + - W/"4a55d376-8438-4eb8-95d1-5b56722c9715" expires: - '-1' pragma: @@ -2477,7 +2389,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - c12a643c-0d4a-4de3-b126-a4fd96356ad5 + - 9496c0a8-1284-4633-b4c0-a0d2734f247b status: code: 200 message: OK @@ -2506,35 +2418,35 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\",\r\n - \ \"etag\": \"W/\\\"3c73a947-7818-44a2-826f-2c43fb4a8af3\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": - {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n - \ \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\": {},\r\n - \ \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"3c73a947-7818-44a2-826f-2c43fb4a8af3\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n - \ \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": - {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\r\n - \ }\r\n }\r\n}" + string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\"\ + ,\r\n \"etag\": \"W/\\\"85765ecc-474a-42c6-92b9-be0e242ee431\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"85765ecc-474a-42c6-92b9-be0e242ee431\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ + ,\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"\ + publicIPAddress\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ + \r\n }\r\n }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/dd46cd45-197f-4bb6-b793-aa4437744c2a?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/66288859-ebf2-4cd8-9a98-65e22e202e5b?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -2542,7 +2454,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:05:13 GMT + - Mon, 21 Sep 2020 03:36:09 GMT expires: - '-1' pragma: @@ -2559,9 +2471,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 88975636-9e04-4547-a57c-ecadba6675a1 + - bbdb6172-7e0d-4c92-bfdc-f4a3909f86ac x-ms-ratelimit-remaining-subscription-writes: - - '1186' + - '1197' status: code: 200 message: OK @@ -2579,10 +2491,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/dd46cd45-197f-4bb6-b793-aa4437744c2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/66288859-ebf2-4cd8-9a98-65e22e202e5b?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2594,7 +2506,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:05:24 GMT + - Mon, 21 Sep 2020 03:36:21 GMT expires: - '-1' pragma: @@ -2611,7 +2523,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - bd9a9885-fcd4-4e5c-b952-25680fabac27 + - c78e5833-601a-4edd-9426-0c0c7ba49e33 status: code: 200 message: OK @@ -2629,10 +2541,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/dd46cd45-197f-4bb6-b793-aa4437744c2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/66288859-ebf2-4cd8-9a98-65e22e202e5b?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2644,7 +2556,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:05:44 GMT + - Mon, 21 Sep 2020 03:36:41 GMT expires: - '-1' pragma: @@ -2661,7 +2573,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 7a9f7ea0-a38c-4397-b3f6-0fb0e1d26e0a + - 2e6752a8-5f90-49fd-866d-711e49009fa4 status: code: 200 message: OK @@ -2679,10 +2591,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/dd46cd45-197f-4bb6-b793-aa4437744c2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/66288859-ebf2-4cd8-9a98-65e22e202e5b?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2694,7 +2606,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:06:25 GMT + - Mon, 21 Sep 2020 03:37:21 GMT expires: - '-1' pragma: @@ -2711,7 +2623,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 9b6971fb-2f45-49d4-a0d8-43de1b69b527 + - 493f2edf-8c3e-4182-9d89-8f8e51c5c4b3 status: code: 200 message: OK @@ -2729,10 +2641,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/dd46cd45-197f-4bb6-b793-aa4437744c2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/66288859-ebf2-4cd8-9a98-65e22e202e5b?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -2744,7 +2656,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:07:46 GMT + - Mon, 21 Sep 2020 03:38:42 GMT expires: - '-1' pragma: @@ -2761,7 +2673,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - e77ce0d1-badc-445c-8930-76a908db67b2 + - 4199e96a-a37c-4032-9ecc-75ab9864d08a status: code: 200 message: OK @@ -2779,10 +2691,10 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/dd46cd45-197f-4bb6-b793-aa4437744c2a?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/66288859-ebf2-4cd8-9a98-65e22e202e5b?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -2794,7 +2706,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:09:28 GMT + - Mon, 21 Sep 2020 03:40:22 GMT expires: - '-1' pragma: @@ -2811,7 +2723,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 785b9207-c89b-4968-8807-d0fad28e3115 + - ce18a6b6-b1d5-440c-8c67-ce9cbe80b031 status: code: 200 message: OK @@ -2829,30 +2741,31 @@ interactions: ParameterSetName: - -g -n -f --public-ip-address --vnet-name User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\",\r\n - \ \"etag\": \"W/\\\"1af0a9f3-3f37-4535-bc6e-613e833de448\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": - {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n - \ \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\": {},\r\n - \ \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"1af0a9f3-3f37-4535-bc6e-613e833de448\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\r\n - \ }\r\n }\r\n}" + string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\"\ + ,\r\n \"etag\": \"W/\\\"40db9ce3-c6cb-427d-a1a0-bd5679819cfc\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"40db9ce3-c6cb-427d-a1a0-bd5679819cfc\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ + \r\n }\r\n }\r\n}" headers: cache-control: - no-cache @@ -2861,9 +2774,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:09:28 GMT + - Mon, 21 Sep 2020 03:40:22 GMT etag: - - W/"1af0a9f3-3f37-4535-bc6e-613e833de448" + - W/"40db9ce3-c6cb-427d-a1a0-bd5679819cfc" expires: - '-1' pragma: @@ -2880,7 +2793,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 73381e99-4c61-4cc0-9031-cd5b5d691bab + - f636b806-2936-41c7-b4b4-713bb6631391 status: code: 200 message: OK @@ -2902,22 +2815,24 @@ interactions: ParameterSetName: - -g -n -l User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy2?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n - \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"firewalls\": - [],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy2\",\r\n - \ \"name\": \"myclipolicy2\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n - \ \"etag\": \"62319f8d-6998-419c-ba6b-dba0cdd2ec9f\",\r\n \"location\": \"westus2\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n\ + \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"\ + firewalls\": [],\r\n \"provisioningState\": \"Updating\"\r\n },\r\n \"\ + id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy2\"\ + ,\r\n \"name\": \"myclipolicy2\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ + ,\r\n \"etag\": \"1a8d6bd3-a481-4511-bb40-b56db0dbe7c6\",\r\n \"location\"\ + : \"westus2\"\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/nfvOperations/4311b0d2-47ec-4f85-91eb-4351069e21f5?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/nfvOperations/e563b020-b648-43a1-8c72-675f00f766ec?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -2925,7 +2840,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:09:35 GMT + - Mon, 21 Sep 2020 03:40:30 GMT expires: - '-1' pragma: @@ -2937,7 +2852,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1180' + - '1196' status: code: 201 message: Created @@ -2955,10 +2870,10 @@ interactions: ParameterSetName: - -g -n -l User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/nfvOperations/4311b0d2-47ec-4f85-91eb-4351069e21f5?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/nfvOperations/e563b020-b648-43a1-8c72-675f00f766ec?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -2970,7 +2885,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:09:47 GMT + - Mon, 21 Sep 2020 03:40:42 GMT expires: - '-1' pragma: @@ -3002,17 +2917,19 @@ interactions: ParameterSetName: - -g -n -l User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy2?api-version=2020-05-01 response: body: - string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n - \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"firewalls\": - [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy2\",\r\n - \ \"name\": \"myclipolicy2\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\",\r\n - \ \"etag\": \"62319f8d-6998-419c-ba6b-dba0cdd2ec9f\",\r\n \"location\": \"westus2\"\r\n}" + string: "{\r\n \"properties\": {\r\n \"threatIntelMode\": \"Alert\",\r\n\ + \ \"childPolicies\": [],\r\n \"ruleCollectionGroups\": [],\r\n \"\ + firewalls\": [],\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \ + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy2\"\ + ,\r\n \"name\": \"myclipolicy2\",\r\n \"type\": \"Microsoft.Network/FirewallPolicies\"\ + ,\r\n \"etag\": \"1a8d6bd3-a481-4511-bb40-b56db0dbe7c6\",\r\n \"location\"\ + : \"westus2\"\r\n}" headers: cache-control: - no-cache @@ -3021,7 +2938,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:09:47 GMT + - Mon, 21 Sep 2020 03:40:42 GMT expires: - '-1' pragma: @@ -3053,32 +2970,33 @@ interactions: ParameterSetName: - -g -n --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\",\r\n - \ \"etag\": \"W/\\\"1af0a9f3-3f37-4535-bc6e-613e833de448\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": - {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n - \ \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\": {},\r\n - \ \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"1af0a9f3-3f37-4535-bc6e-613e833de448\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\r\n - \ }\r\n }\r\n}" + string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\"\ + ,\r\n \"etag\": \"W/\\\"40db9ce3-c6cb-427d-a1a0-bd5679819cfc\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"40db9ce3-c6cb-427d-a1a0-bd5679819cfc\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy\"\ + \r\n }\r\n }\r\n}" headers: cache-control: - no-cache @@ -3087,9 +3005,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:09:48 GMT + - Mon, 21 Sep 2020 03:40:43 GMT etag: - - W/"1af0a9f3-3f37-4535-bc6e-613e833de448" + - W/"40db9ce3-c6cb-427d-a1a0-bd5679819cfc" expires: - '-1' pragma: @@ -3106,7 +3024,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 0c83aa38-3d86-4492-8778-16da1b921425 + - 55c1458f-ea97-463d-aee9-6561ef6a7aa1 status: code: 200 message: OK @@ -3135,35 +3053,36 @@ interactions: ParameterSetName: - -g -n --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\",\r\n - \ \"etag\": \"W/\\\"7d638040-785f-4bce-8453-99c6f0a3f49c\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"sku\": - {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n - \ \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\": {},\r\n - \ \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"7d638040-785f-4bce-8453-99c6f0a3f49c\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy2\"\r\n - \ }\r\n }\r\n}" + string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\"\ + ,\r\n \"etag\": \"W/\\\"9ee1f4d0-9e62-4962-8ff5-5a3d7ac680ce\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"9ee1f4d0-9e62-4962-8ff5-5a3d7ac680ce\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy2\"\ + \r\n }\r\n }\r\n}" headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/078e2d28-5d8e-4f71-af2c-5624c41cb50b?api-version=2020-05-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/23abb281-c9e4-4c29-b0aa-0425926a93d5?api-version=2020-05-01 cache-control: - no-cache content-length: @@ -3171,7 +3090,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:09:53 GMT + - Mon, 21 Sep 2020 03:40:46 GMT expires: - '-1' pragma: @@ -3188,9 +3107,9 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 4afb6cab-d70f-4191-b8ad-f76c50f36b04 + - 9c0a71da-6cf7-4c07-9f25-b4dde0232e76 x-ms-ratelimit-remaining-subscription-writes: - - '1179' + - '1196' status: code: 200 message: OK @@ -3208,10 +3127,10 @@ interactions: ParameterSetName: - -g -n --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/078e2d28-5d8e-4f71-af2c-5624c41cb50b?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/23abb281-c9e4-4c29-b0aa-0425926a93d5?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -3223,7 +3142,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:10:04 GMT + - Mon, 21 Sep 2020 03:40:57 GMT expires: - '-1' pragma: @@ -3240,7 +3159,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 2f3e1fda-23a5-4b4c-a366-d4ee703c9015 + - 7e3332b2-57a4-4d28-ac32-d06b87cf2c38 status: code: 200 message: OK @@ -3258,10 +3177,10 @@ interactions: ParameterSetName: - -g -n --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/078e2d28-5d8e-4f71-af2c-5624c41cb50b?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/23abb281-c9e4-4c29-b0aa-0425926a93d5?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"InProgress\"\r\n}" @@ -3273,7 +3192,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:10:24 GMT + - Mon, 21 Sep 2020 03:41:07 GMT expires: - '-1' pragma: @@ -3290,7 +3209,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 5f14fad2-0b9b-41a7-98b3-bcb46d876f5f + - ae070290-2ea3-4aa2-b1f4-e06c04464066 status: code: 200 message: OK @@ -3308,10 +3227,10 @@ interactions: ParameterSetName: - -g -n --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/078e2d28-5d8e-4f71-af2c-5624c41cb50b?api-version=2020-05-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/23abb281-c9e4-4c29-b0aa-0425926a93d5?api-version=2020-05-01 response: body: string: "{\r\n \"status\": \"Succeeded\"\r\n}" @@ -3323,7 +3242,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:11:04 GMT + - Mon, 21 Sep 2020 03:41:27 GMT expires: - '-1' pragma: @@ -3340,7 +3259,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - c4e0fc23-341a-4bf7-8698-7b5f99578081 + - 553ac9ac-87c1-4470-9ca6-54aca00ee7b2 status: code: 200 message: OK @@ -3358,30 +3277,31 @@ interactions: ParameterSetName: - -g -n --firewall-policy User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-network/10.2.0 - Azure-SDK-For-Python AZURECLI/2.10.1 + - python/3.7.4 (Linux-4.15.0-112-generic-x86_64-with-debian-buster-sid) msrest/0.6.18 + msrest_azure/0.6.3 azure-mgmt-network/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2?api-version=2020-05-01 response: body: - string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\",\r\n - \ \"etag\": \"W/\\\"4566343b-2cb4-43de-ac1f-06760ae6fe78\\\"\",\r\n \"type\": - \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\",\r\n - \ \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"sku\": - {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\r\n },\r\n - \ \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\": {},\r\n - \ \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\",\r\n - \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2/azureFirewallIpConfigurations/myipconfig1\",\r\n - \ \"etag\": \"W/\\\"4566343b-2cb4-43de-ac1f-06760ae6fe78\\\"\",\r\n - \ \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\",\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_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\r\n - \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\r\n - \ }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\": - [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\": - [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy2\"\r\n - \ }\r\n }\r\n}" + string: "{\r\n \"name\": \"af2\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2\"\ + ,\r\n \"etag\": \"W/\\\"a46db07e-a07d-48db-b3bd-dc489f97aacd\\\"\",\r\n \ + \ \"type\": \"Microsoft.Network/azureFirewalls\",\r\n \"location\": \"westus2\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n\ + \ \"sku\": {\r\n \"name\": \"AZFW_VNet\",\r\n \"tier\": \"Standard\"\ + \r\n },\r\n \"threatIntelMode\": \"Alert\",\r\n \"additionalProperties\"\ + : {},\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"myipconfig1\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/azureFirewalls/af2/azureFirewallIpConfigurations/myipconfig1\"\ + ,\r\n \"etag\": \"W/\\\"a46db07e-a07d-48db-b3bd-dc489f97aacd\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/azureFirewalls/azureFirewallIpConfigurations\"\ + ,\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_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/publicIPAddresses/pubip\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/AzureFirewallSubnet\"\ + \r\n }\r\n }\r\n }\r\n ],\r\n \"networkRuleCollections\"\ + : [],\r\n \"applicationRuleCollections\": [],\r\n \"natRuleCollections\"\ + : [],\r\n \"firewallPolicy\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_azure_firewall_with_firewall_policy000001/providers/Microsoft.Network/firewallPolicies/myclipolicy2\"\ + \r\n }\r\n }\r\n}" headers: cache-control: - no-cache @@ -3390,9 +3310,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 07 Aug 2020 07:11:04 GMT + - Mon, 21 Sep 2020 03:41:27 GMT etag: - - W/"4566343b-2cb4-43de-ac1f-06760ae6fe78" + - W/"a46db07e-a07d-48db-b3bd-dc489f97aacd" expires: - '-1' pragma: @@ -3409,7 +3329,7 @@ interactions: x-content-type-options: - nosniff x-ms-arm-service-request-id: - - 149ecb9b-2f0f-499f-93e3-bb3a78fefe14 + - 765fd6a5-86bf-4c2c-97ad-8556f8897dac status: code: 200 message: OK diff --git a/src/azure-firewall/azext_firewall/tests/latest/test_azure_firewall_scenario.py b/src/azure-firewall/azext_firewall/tests/latest/test_azure_firewall_scenario.py index 08d9744b594..bbe4962a954 100644 --- a/src/azure-firewall/azext_firewall/tests/latest/test_azure_firewall_scenario.py +++ b/src/azure-firewall/azext_firewall/tests/latest/test_azure_firewall_scenario.py @@ -145,8 +145,8 @@ def test_azure_firewall_management_ip_config(self, resource_group): self.is_empty() ]) - @ResourceGroupPreparer(name_prefix='cli_test_azure_firewall_threat_intel_whitelist') - def test_azure_firewall_threat_intel_whitelist(self, resource_group): + @ResourceGroupPreparer(name_prefix='cli_test_azure_firewall_threat_intel_allowlist') + def test_azure_firewall_threat_intel_allowlist(self, resource_group): self.kwargs.update({ 'af': 'af1', @@ -154,22 +154,22 @@ def test_azure_firewall_threat_intel_whitelist(self, resource_group): self.cmd('network firewall create -g {rg} -n {af} --private-ranges 10.0.0.0 10.0.0.0/24 IANAPrivateRanges', checks=[ self.check('"Network.SNAT.PrivateRanges"', '10.0.0.0, 10.0.0.0/24, IANAPrivateRanges') ]) - self.cmd('network firewall threat-intel-whitelist create -g {rg} -n {af} --ip-addresses 10.0.0.0 10.0.0.1 --fqdns www.bing.com *.microsoft.com *google.com', checks=[ + self.cmd('network firewall threat-intel-allowlist create -g {rg} -n {af} --ip-addresses 10.0.0.0 10.0.0.1 --fqdns www.bing.com *.microsoft.com *google.com', checks=[ self.check('"ThreatIntel.Whitelist.FQDNs"', 'www.bing.com, *.microsoft.com, *google.com'), self.check('"ThreatIntel.Whitelist.IpAddresses"', '10.0.0.0, 10.0.0.1') ]) - self.cmd('network firewall threat-intel-whitelist show -g {rg} -n {af}', checks=[ + self.cmd('network firewall threat-intel-allowlist show -g {rg} -n {af}', checks=[ self.check('"ThreatIntel.Whitelist.FQDNs"', 'www.bing.com, *.microsoft.com, *google.com'), self.check('"ThreatIntel.Whitelist.IpAddresses"', '10.0.0.0, 10.0.0.1') ]) - self.cmd('network firewall threat-intel-whitelist update -g {rg} -n {af} --ip-addresses 10.0.0.1 10.0.0.0 --fqdns *google.com www.bing.com *.microsoft.com', checks=[ + self.cmd('network firewall threat-intel-allowlist update -g {rg} -n {af} --ip-addresses 10.0.0.1 10.0.0.0 --fqdns *google.com www.bing.com *.microsoft.com', checks=[ self.check('"ThreatIntel.Whitelist.FQDNs"', '*google.com, www.bing.com, *.microsoft.com'), self.check('"ThreatIntel.Whitelist.IpAddresses"', '10.0.0.1, 10.0.0.0') ]) self.cmd('network firewall update -g {rg} -n {af} --private-ranges IANAPrivateRanges 10.0.0.1 10.0.0.0/16', checks=[ self.check('"Network.SNAT.PrivateRanges"', 'IANAPrivateRanges, 10.0.0.1, 10.0.0.0/16') ]) - self.cmd('network firewall threat-intel-whitelist delete -g {rg} -n {af}') + self.cmd('network firewall threat-intel-allowlist delete -g {rg} -n {af}') @ResourceGroupPreparer(name_prefix='cli_test_azure_firewall_rules') def test_azure_firewall_rules(self, resource_group): @@ -331,8 +331,8 @@ def test_azure_firewall_with_firewall_policy(self, resource_group, resource_grou ]) self.cmd('network firewall update -g {rg} -n {af2} --firewall-policy {policy2}') - @ResourceGroupPreparer(name_prefix='cli_test_azure_firewall_policy_with_threat_intel_whitelist', location='eastus2euap') - def test_azure_firewall_policy_with_threat_intel_whitelist(self, resource_group, resource_group_location): + @ResourceGroupPreparer(name_prefix='cli_test_azure_firewall_policy_with_threat_intel_allowlist', location='eastus2') + def test_azure_firewall_policy_with_threat_intel_allowlist(self, resource_group, resource_group_location): self.kwargs.update({ 'collectiongroup': 'myclirulecollectiongroup', 'policy': 'myclipolicy', @@ -356,7 +356,7 @@ def test_azure_firewall_policy_with_threat_intel_whitelist(self, resource_group, self.check('threatIntelWhitelist.ipAddresses[1]', '102.0.0.1') ]) - @ResourceGroupPreparer(name_prefix='cli_test_azure_firewall_policy', location='eastus2euap') + @ResourceGroupPreparer(name_prefix='cli_test_azure_firewall_policy', location='eastus2') def test_azure_firewall_policy(self, resource_group, resource_group_location): self.kwargs.update({ 'collectiongroup': 'myclirulecollectiongroup', @@ -399,25 +399,25 @@ def test_azure_firewall_policy(self, resource_group, resource_group_location): ]) self.cmd('network firewall policy rule-collection-group create -g {rg} --priority {collection_group_priority} --policy-name {policy} -n {collectiongroup}', checks=[ - self.check('type', 'Microsoft.Network/RuleCollectionGroups'), + self.check('type', 'Microsoft.Network/FirewallPolicies/RuleCollectionGroups'), self.check('name', '{collectiongroup}') ]) self.cmd('network firewall policy rule-collection-group show -g {rg} --policy-name {policy} -n {collectiongroup}', checks=[ - self.check('type', 'Microsoft.Network/RuleCollectionGroups'), + self.check('type', 'Microsoft.Network/FirewallPolicies/RuleCollectionGroups'), self.check('name', '{collectiongroup}'), self.check('priority', '{collection_group_priority}') ]) self.cmd('network firewall policy rule-collection-group list -g {rg} --policy-name {policy}', checks=[ self.check('length(@)', 1), - self.check('@[0].type', 'Microsoft.Network/RuleCollectionGroups'), + self.check('@[0].type', 'Microsoft.Network/FirewallPolicies/RuleCollectionGroups'), self.check('@[0].name', '{collectiongroup}'), self.check('@[0].priority', '{collection_group_priority}') ]) self.cmd('network firewall policy rule-collection-group update -g {rg} --policy-name {policy} -n {collectiongroup} --priority 12000', checks=[ - self.check('type', 'Microsoft.Network/RuleCollectionGroups'), + self.check('type', 'Microsoft.Network/FirewallPolicies/RuleCollectionGroups'), self.check('name', '{collectiongroup}'), self.check('priority', 12000) ]) diff --git a/src/azure-firewall/setup.py b/src/azure-firewall/setup.py index e9c43e01abb..db13747da4d 100644 --- a/src/azure-firewall/setup.py +++ b/src/azure-firewall/setup.py @@ -8,7 +8,7 @@ from codecs import open from setuptools import setup, find_packages -VERSION = "0.5.1" +VERSION = "0.6.2" CLASSIFIERS = [ 'Development Status :: 4 - Beta', diff --git a/src/codespaces/README.rst b/src/codespaces/README.rst index 2d9893a9c27..7de82d8f4bc 100644 --- a/src/codespaces/README.rst +++ b/src/codespaces/README.rst @@ -29,6 +29,6 @@ azdev test codespaces Test extension on fresh set up: ``` azdev extension build codespaces -docker run -v .../azure-cli-extensions/dist:/ext -it microsoft/azure-cli +docker run -v .../azure-cli-extensions/dist:/ext -it mcr.microsoft.com/azure-cli az extension add --source /ext/codespaces-VERSION-py2.py3-none-any.whl ``` diff --git a/src/codespaces/azext_codespaces/tests/latest/recordings/test_codespaces_plan.yaml b/src/codespaces/azext_codespaces/tests/latest/recordings/test_codespaces_plan.yaml index a2a1b541ec1..9b7cff57933 100644 --- a/src/codespaces/azext_codespaces/tests/latest/recordings/test_codespaces_plan.yaml +++ b/src/codespaces/azext_codespaces/tests/latest/recordings/test_codespaces_plan.yaml @@ -18,7 +18,7 @@ interactions: accept-language: - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/azclitest_000001?api-version=2019-07-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/azclitest_000001?api-version=2020-06-01 response: body: string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azclitest_000001","name":"azclitest_000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2020-07-13T23:12:19Z"},"properties":{"provisioningState":"Succeeded"}}' diff --git a/src/codespaces/azext_codespaces/tests/latest/test_codespaces_scenario.py b/src/codespaces/azext_codespaces/tests/latest/test_codespaces_scenario.py index 2acba1eac77..2ed144885d7 100644 --- a/src/codespaces/azext_codespaces/tests/latest/test_codespaces_scenario.py +++ b/src/codespaces/azext_codespaces/tests/latest/test_codespaces_scenario.py @@ -21,6 +21,7 @@ class CodespacesScenarioTest(ScenarioTest): @ResourceGroupPreparer(name_prefix=rg_name_prefix, location=default_location) def test_codespaces_plan(self, resource_group): self.kwargs.update({ + 'resource_group': resource_group, 'name': 'azclitest-codespace-plan' }) self.cmd('codespace plan create -g {rg} -n {name}') @@ -43,6 +44,7 @@ def test_codespaces_location(self): @ResourceGroupPreparer(name_prefix=rg_name_prefix, location=default_location) def test_codespaces_codespace(self, resource_group): self.kwargs.update({ + 'resource_group': resource_group, 'name': 'azclitest-codespace-plan', 'codespace_name': 'codespace1', 'instance_type': 'standardLinux', diff --git a/src/connectedk8s/HISTORY.rst b/src/connectedk8s/HISTORY.rst index 6a89cfe2e50..ca6110c925b 100644 --- a/src/connectedk8s/HISTORY.rst +++ b/src/connectedk8s/HISTORY.rst @@ -3,6 +3,16 @@ Release History =============== +0.2.6 +++++++ +* `az connectedk8s connect`: Added support for proxy cert +* `az connectedk8s update`: Added support for proxy cert + +0.2.5 +++++++ +* `az connectedk8s connect`: Added support for Dogfood cloud +* `az connectedk8s update`: Added support for Dogfood cloud + 0.2.4 ++++++ * `az connectedk8s connect`: Bug fixes and updated telemetry diff --git a/src/connectedk8s/azext_connectedk8s/_constants.py b/src/connectedk8s/azext_connectedk8s/_constants.py index 313e768f7e8..1c74fa66b6e 100644 --- a/src/connectedk8s/azext_connectedk8s/_constants.py +++ b/src/connectedk8s/azext_connectedk8s/_constants.py @@ -7,6 +7,7 @@ # pylint: disable=line-too-long Dogfood_RMEndpoint = 'https://api-dogfood.resources.windows-int.net/' +Helm_Environment_File_Fault_Type = 'helm-environment-file-error' Invalid_Location_Fault_Type = 'location-validation-error' Load_Kubeconfig_Fault_Type = 'kubeconfig-load-error' Read_ConfigMap_Fault_Type = 'configmap-read-error' @@ -40,3 +41,7 @@ Get_Kubernetes_Namespace_Fault_Type = 'kubernetes-get-namespace-error' Update_Agent_Success = 'Agents for Connected Cluster {} have been updated successfully' Update_Agent_Failure = 'Error while updating agents. Please run \"kubectl get pods -n azure-arc\" to check the pods in case of timeout error. Error: {}' +Cluster_Info_Not_Found_Type = 'Error while finding current cluster server details' +Kubeconfig_Failed_To_Load_Fault_Type = "failed-to-load-kubeconfig-file" +Proxy_Cert_Path_Does_Not_Exist_Fault_Type = 'proxy-cert-path-does-not-exist-error' +Proxy_Cert_Path_Does_Not_Exist_Error = 'Proxy cert path {} does not exist. Please check the path provided' diff --git a/src/connectedk8s/azext_connectedk8s/_help.py b/src/connectedk8s/azext_connectedk8s/_help.py index c1ad0b6f16e..602ace31de6 100644 --- a/src/connectedk8s/azext_connectedk8s/_help.py +++ b/src/connectedk8s/azext_connectedk8s/_help.py @@ -22,6 +22,8 @@ text: az connectedk8s connect -g resourceGroupName -n connectedClusterName --kube-config /path/to/kubeconfig --kube-context kubeContextName - name: Onboard a connected kubernetes cluster by specifying the https proxy, http proxy, no proxy settings. text: az connectedk8s connect -g resourceGroupName -n connectedClusterName --proxy-https https://proxy-url --proxy-http http://proxy-url --proxy-skip-range excludedIP,excludedCIDR,exampleCIDRfollowed,10.0.0.0/24 + - name: Onboard a connected kubernetes cluster by specifying the https proxy, http proxy, no proxy with cert settings. + text: az connectedk8s connect -g resourceGroupName -n connectedClusterName --proxy-cert /path/to/crt --proxy-https https://proxy-url --proxy-http http://proxy-url --proxy-skip-range excludedIP,excludedCIDR,exampleCIDRfollowed,10.0.0.0/24 """ @@ -30,7 +32,7 @@ short-summary: Update properties of the onboarded agents. examples: - name: Update proxy values for the agents - text: az connectedk8s update -g resourceGroupName -n connectedClusterName --proxy-https https://proxy-url --proxy-http http://proxy-url --proxy-skip-range excludedIP,excludedCIDR,exampleCIDRfollowed,10.0.0.0/24 + text: az connectedk8s update -g resourceGroupName -n connectedClusterName --proxy-cert /path/to/crt --proxy-https https://proxy-url --proxy-http http://proxy-url --proxy-skip-range excludedIP,excludedCIDR,exampleCIDRfollowed,10.0.0.0/24 """ helps['connectedk8s list'] = """ diff --git a/src/connectedk8s/azext_connectedk8s/_params.py b/src/connectedk8s/azext_connectedk8s/_params.py index 4197216f036..cf0c51f3351 100644 --- a/src/connectedk8s/azext_connectedk8s/_params.py +++ b/src/connectedk8s/azext_connectedk8s/_params.py @@ -4,7 +4,9 @@ # -------------------------------------------------------------------------------------------- # pylint: disable=line-too-long +from argcomplete.completers import FilesCompleter from azure.cli.core.commands.parameters import get_location_type +from azure.cli.core.commands.parameters import (file_type) from azure.cli.core.commands.validators import get_default_location_from_resource_group @@ -21,6 +23,7 @@ def load_arguments(self, _): c.argument('https_proxy', options_list=['--proxy-https'], help='Https proxy URL to be used.') c.argument('http_proxy', options_list=['--proxy-http'], help='Http proxy URL to be used.') c.argument('no_proxy', options_list=['--proxy-skip-range'], help='List of URLs/CIDRs for which proxy should not to be used.') + c.argument('proxy_cert', options_list=['--proxy-cert'], type=file_type, completer=FilesCompleter(), help='Path to the certificate file for proxy') with self.argument_context('connectedk8s update') as c: c.argument('cluster_name', options_list=['--name', '-n'], id_part='name', help='The name of the connected cluster.') @@ -29,6 +32,7 @@ def load_arguments(self, _): c.argument('https_proxy', options_list=['--proxy-https'], help='Https proxy URL to be used.') c.argument('http_proxy', options_list=['--proxy-http'], help='Http proxy URL to be used.') c.argument('no_proxy', options_list=['--proxy-skip-range'], help='List of URLs/CIDRs for which proxy should not to be used.') + c.argument('proxy_cert', options_list=['--proxy-cert'], type=file_type, completer=FilesCompleter(), help='Path to the certificate file for proxy') with self.argument_context('connectedk8s list') as c: pass diff --git a/src/connectedk8s/azext_connectedk8s/_utils.py b/src/connectedk8s/azext_connectedk8s/_utils.py index 9e944422698..0a9a26b479b 100644 --- a/src/connectedk8s/azext_connectedk8s/_utils.py +++ b/src/connectedk8s/azext_connectedk8s/_utils.py @@ -4,6 +4,7 @@ # -------------------------------------------------------------------------------------------- import os +import shutil import subprocess from subprocess import Popen, PIPE @@ -22,6 +23,7 @@ logger = get_logger(__name__) # pylint: disable=line-too-long +# pylint: disable=bare-except def validate_location(cmd, location): @@ -50,10 +52,16 @@ def get_chart_path(registry_path, kube_config, kube_context): os.environ['HELM_EXPERIMENTAL_OCI'] = '1' pull_helm_chart(registry_path, kube_config, kube_context) - # Exporting helm chart + # Exporting helm chart after cleanup chart_export_path = os.path.join(os.path.expanduser('~'), '.azure', 'AzureArcCharts') + try: + if os.path.isdir(chart_export_path): + shutil.rmtree(chart_export_path) + except: + logger.warning("Unable to cleanup the azure-arc helm charts already present on the machine. In case of failure, please cleanup the directory '%s' and try again.", chart_export_path) export_helm_chart(registry_path, chart_export_path, kube_config, kube_context) - # Helm Install + + # Returning helm chart path helm_chart_path = os.path.join(chart_export_path, 'azure-arc-k8sagents') chart_path = os.getenv('HELMCHART') if os.getenv('HELMCHART') else helm_chart_path return chart_path @@ -74,7 +82,6 @@ def pull_helm_chart(registry_path, kube_config, kube_context): def export_helm_chart(registry_path, chart_export_path, kube_config, kube_context): - chart_export_path = os.path.join(os.path.expanduser('~'), '.azure', 'AzureArcCharts') cmd_helm_chart_export = ["helm", "chart", "export", registry_path, "--destination", chart_export_path] if kube_config: cmd_helm_chart_export.extend(["--kubeconfig", kube_config]) @@ -104,11 +111,18 @@ def add_helm_repo(kube_config, kube_context): raise CLIError("Unable to add repository {} to helm: ".format(repo_url) + error_helm_repo.decode("ascii")) -def get_helm_registry(cmd, location): +def get_helm_registry(cmd, location, dp_endpoint_dogfood=None, release_train_dogfood=None): + # Setting uri get_chart_location_url = "https://{}.dp.kubernetesconfiguration.azure.com/{}/GetLatestHelmPackagePath?api-version=2019-11-01-preview".format(location, 'azure-arc-k8sagents') release_train = os.getenv('RELEASETRAIN') if os.getenv('RELEASETRAIN') else 'stable' + if dp_endpoint_dogfood: + get_chart_location_url = "{}/azure-arc-k8sagents/GetLatestHelmPackagePath?api-version=2019-11-01-preview".format(dp_endpoint_dogfood) + if release_train_dogfood: + release_train = release_train_dogfood uri_parameters = ["releaseTrain={}".format(release_train)] - resource = cmd.cli_ctx.cloud.endpoints.management + resource = cmd.cli_ctx.cloud.endpoints.active_directory_resource_id + + # Sending request try: r = send_raw_request(cmd.cli_ctx, 'post', get_chart_location_url, uri_parameters=uri_parameters, resource=resource) except Exception as e: @@ -169,10 +183,9 @@ def arm_exception_handler(ex, fault_type, summary, return_if_not_found=False): def kubernetes_exception_handler(ex, fault_type, summary, error_message='Error occured while connecting to the kubernetes cluster: ', message_for_unauthorized_request='The user does not have required privileges on the kubernetes cluster to deploy Azure Arc enabled Kubernetes agents. Please ensure you have cluster admin privileges on the cluster to onboard.', message_for_not_found='The requested kubernetes resource was not found.', raise_error=True): + telemetry.set_user_fault() if isinstance(ex, ApiException): status_code = ex.status - if status_code // 100 != 2: - telemetry.set_user_fault() if status_code == 403: logger.warning(message_for_unauthorized_request) if status_code == 404: diff --git a/src/connectedk8s/azext_connectedk8s/custom.py b/src/connectedk8s/azext_connectedk8s/custom.py index ab59e8acf77..91ad6f0aaa9 100644 --- a/src/connectedk8s/azext_connectedk8s/custom.py +++ b/src/connectedk8s/azext_connectedk8s/custom.py @@ -8,6 +8,7 @@ import time from subprocess import Popen, PIPE from base64 import b64encode +import yaml from knack.util import CLIError from knack.log import get_logger @@ -37,7 +38,7 @@ # pylint: disable=line-too-long -def create_connectedk8s(cmd, client, resource_group_name, cluster_name, https_proxy="", http_proxy="", no_proxy="", location=None, +def create_connectedk8s(cmd, client, resource_group_name, cluster_name, https_proxy="", http_proxy="", no_proxy="", proxy_cert="", location=None, kube_config=None, kube_context=None, no_wait=False, tags=None): logger.warning("Ensure that you have the latest helm version installed before proceeding.") logger.warning("This operation might take a while...\n") @@ -45,8 +46,8 @@ def create_connectedk8s(cmd, client, resource_group_name, cluster_name, https_pr # Setting subscription id subscription_id = get_subscription_id(cmd.cli_ctx) - # Checking cloud - validate_cloud(cmd) + # Send cloud information to telemetry + send_cloud_telemetry(cmd) # Fetching Tenant Id graph_client = _graph_client_factory(cmd.cli_ctx) @@ -64,6 +65,31 @@ def create_connectedk8s(cmd, client, resource_group_name, cluster_name, https_pr # Escaping comma, forward slash present in no proxy urls, needed for helm params. no_proxy = escape_proxy_settings(no_proxy) + # check whether proxy cert path exists + if proxy_cert != "" and (not os.path.exists(proxy_cert)): + telemetry.set_user_fault() + telemetry.set_exception(fault_type=consts.Proxy_Cert_Path_Does_Not_Exist_Fault_Type, + summary='Proxy cert path does not exist') + raise CLIError(str.format(consts.Proxy_Cert_Path_Does_Not_Exist_Error, proxy_cert)) + + # Checking whether optional extra values file has been provided. + values_file_provided = False + values_file = os.getenv('HELMVALUESPATH') + if (values_file is not None) and (os.path.isfile(values_file)): + values_file_provided = True + logger.warning("Values files detected. Reading additional helm parameters from same.") + # trimming required for windows os + if (values_file.startswith("'") or values_file.startswith('"')): + values_file = values_file[1:] + if (values_file.endswith("'") or values_file.endswith('"')): + values_file = values_file[:-1] + + # Validate the helm environment file for Dogfood. + dp_endpoint_dogfood = None + release_train_dogfood = None + if cmd.cli_ctx.cloud.endpoints.resource_manager == consts.Dogfood_RMEndpoint: + dp_endpoint_dogfood, release_train_dogfood = validate_env_file_dogfood(values_file, values_file_provided) + # Loading the kubeconfig file in kubernetes client configuration try: config.load_kube_config(config_file=kube_config, context=kube_context) @@ -89,6 +115,11 @@ def create_connectedk8s(cmd, client, resource_group_name, cluster_name, https_pr } telemetry.add_extension_event('connectedk8s', kubernetes_properties) + # Checking if it is an AKS cluster + is_aks_cluster = check_aks_cluster(kube_config, kube_context) + if is_aks_cluster: + logger.warning("The cluster you are trying to connect to Azure Arc is an Azure Kubernetes Service (AKS) cluster. While Arc onboarding an AKS cluster is possible, it's not necessary. Learn more at {}.".format(" https://go.microsoft.com/fwlink/?linkid=2144200")) + # Checking helm installation check_helm_install(kube_config, kube_context) @@ -96,6 +127,11 @@ def create_connectedk8s(cmd, client, resource_group_name, cluster_name, https_pr helm_version = check_helm_version(kube_config, kube_context) telemetry.add_extension_event('connectedk8s', {'Context.Default.AzureCLI.HelmVersion': helm_version}) + # Check for faulty pre-release helm versions + if "3.3.0-rc" in helm_version: + telemetry.set_user_fault() + raise CLIError("The current helm version is not supported for azure-arc onboarding. Please upgrade helm to a stable version and try again.") + # Validate location utils.validate_location(cmd, location) resourceClient = _resource_client_factory(cmd.cli_ctx, subscription_id=subscription_id) @@ -141,7 +177,7 @@ def create_connectedk8s(cmd, client, resource_group_name, cluster_name, https_pr summary='Connected cluster resource already exists') raise CLIError("The connected cluster resource {} already exists ".format(cluster_name) + "in the resource group {} ".format(resource_group_name) + - "and corresponds to a different Kubernetes cluster. To onboard this Kubernetes cluster" + + "and corresponds to a different Kubernetes cluster. To onboard this Kubernetes cluster " + "to Azure, specify different resource name or resource group name.") # Resource group Creation @@ -157,7 +193,7 @@ def create_connectedk8s(cmd, client, resource_group_name, cluster_name, https_pr utils.add_helm_repo(kube_config, kube_context) # Retrieving Helm chart OCI Artifact location - registry_path = os.getenv('HELMREGISTRY') if os.getenv('HELMREGISTRY') else utils.get_helm_registry(cmd, location) + registry_path = os.getenv('HELMREGISTRY') if os.getenv('HELMREGISTRY') else utils.get_helm_registry(cmd, location, dp_endpoint_dogfood, release_train_dogfood) # Get azure-arc agent version for telemetry azure_arc_agent_version = registry_path.split(':')[1] @@ -194,18 +230,45 @@ def create_connectedk8s(cmd, client, resource_group_name, cluster_name, https_pr # Install azure-arc agents helm_install_release(chart_path, subscription_id, kubernetes_distro, resource_group_name, cluster_name, - location, onboarding_tenant_id, http_proxy, https_proxy, no_proxy, private_key_pem, kube_config, - kube_context, no_wait) + location, onboarding_tenant_id, http_proxy, https_proxy, no_proxy, proxy_cert, private_key_pem, kube_config, + kube_context, no_wait, values_file_provided, values_file) return put_cc_response -def validate_cloud(cmd): - if cmd.cli_ctx.cloud.endpoints.resource_manager == consts.Dogfood_RMEndpoint: +def send_cloud_telemetry(cmd): + cloud_name = cmd.cli_ctx.cloud.name + telemetry.add_extension_event('connectedk8s', {'Context.Default.AzureCLI.AzureCloud': cloud_name}) + + +def validate_env_file_dogfood(values_file, values_file_provided): + if not values_file_provided: telemetry.set_user_fault() - telemetry.set_exception(exception='Dogfood cloud not supported.', fault_type=consts.Load_Kubeconfig_Fault_Type, - summary='Dogfood cloud not supported.') - raise CLIError("Connectedk8s CLI is not supported for Dogfood environment. Please switch the cloud using 'az cloud set --name {cloudName}' and try again. For Dogfood cloud, use helm directly for onboarding.") + telemetry.set_exception(exception='Helm environment file not provided', fault_type=consts.Helm_Environment_File_Fault_Type, + summary='Helm environment file missing') + raise CLIError("Helm environment file is required when using Dogfood environment for onboarding the cluster. Please set the environment variable 'HELMVALUESPATH' to point to the file.") + + with open(values_file, 'r') as f: + try: + env_dict = yaml.safe_load(f) + except Exception as e: + telemetry.set_user_fault() + telemetry.set_exception(exception=e, fault_type=consts.Helm_Environment_File_Fault_Type, + summary='Problem loading the helm environment file') + raise CLIError("Problem loading the helm environment file: " + str(e)) + try: + assert env_dict.get('global').get('azureEnvironment') == 'AZUREDOGFOOD' + assert env_dict.get('systemDefaultValues').get('azureArcAgents').get('config_dp_endpoint_override') + except Exception as e: + telemetry.set_user_fault() + telemetry.set_exception(exception=e, fault_type=consts.Helm_Environment_File_Fault_Type, + summary='Problem loading the helm environment variables') + raise CLIError("The required helm environment variables for dogfood onboarding are either not present in the file or incorrectly set. Please check the values 'global.azureEnvironment' and 'systemDefaultValues.azureArcAgents.config_dp_endpoint_override' in the file.") + + # Return the dp endpoint and release train + dp_endpoint = env_dict.get('systemDefaultValues').get('azureArcAgents').get('config_dp_endpoint_override') + release_train = env_dict.get('systemDefaultValues').get('azureArcAgents').get('releaseTrain') + return dp_endpoint, release_train def set_kube_config(kube_config): @@ -371,6 +434,54 @@ def generate_request_payload(configuration, location, public_key, tags): return cc +def get_kubeconfig_node_dict(kube_config=None): + if kube_config is None: + kube_config = os.getenv('KUBECONFIG') if os.getenv('KUBECONFIG') else os.path.join(os.path.expanduser('~'), '.kube', 'config') + try: + kubeconfig_data = config.kube_config._get_kube_config_loader_for_yaml_file(kube_config)._config + except Exception as ex: + telemetry.set_user_fault() + telemetry.set_exception(exception=ex, fault_type=consts.Load_Kubeconfig_Fault_Type, + summary='Error while fetching details from kubeconfig') + raise CLIError("Error while fetching details from kubeconfig." + str(ex)) + return kubeconfig_data + + +def check_aks_cluster(kube_config, kube_context): + config_data = get_kubeconfig_node_dict(kube_config=kube_config) + try: + all_contexts, current_context = config.list_kube_config_contexts(config_file=kube_config) + except Exception as e: # pylint: disable=broad-except + logger.warning("Exception while trying to list kube contexts: %s\n", e) + + if kube_context is None: + # Get name of the cluster from current context as kube_context is none. + cluster_name = current_context.get('context').get('cluster') + if cluster_name is None: + logger.warning("Cluster not found in currentcontext: " + str(current_context)) + else: + cluster_found = False + for context in all_contexts: + if context.get('name') == kube_context: + cluster_found = True + cluster_name = context.get('context').get('cluster') + break + if not cluster_found or cluster_name is None: + logger.warning("Cluster not found in kubecontext: " + str(kube_context)) + + clusters = config_data.safe_get('clusters') + server_address = "" + for cluster in clusters: + if cluster.safe_get('name') == cluster_name: + server_address = cluster.safe_get('cluster').get('server') + break + + if server_address.find(".azmk8s.io:") == -1: + return False + else: + return True + + def get_connectedk8s(cmd, client, resource_group_name, cluster_name): return client.get(resource_group_name, cluster_name) @@ -386,6 +497,9 @@ def delete_connectedk8s(cmd, client, resource_group_name, cluster_name, logger.warning("Ensure that you have the latest helm version installed before proceeding to avoid unexpected errors.") logger.warning("This operation might take a while ...\n") + # Send cloud information to telemetry + send_cloud_telemetry(cmd) + # Setting kubeconfig kube_config = set_kube_config(kube_config) @@ -467,8 +581,8 @@ def get_release_namespace(kube_config, kube_context): def helm_install_release(chart_path, subscription_id, kubernetes_distro, resource_group_name, cluster_name, - location, onboarding_tenant_id, http_proxy, https_proxy, no_proxy, private_key_pem, - kube_config, kube_context, no_wait): + location, onboarding_tenant_id, http_proxy, https_proxy, no_proxy, proxy_cert, private_key_pem, + kube_config, kube_context, no_wait, values_file_provided, values_file): cmd_helm_install = ["helm", "upgrade", "--install", "azure-arc", chart_path, "--set", "global.subscriptionId={}".format(subscription_id), "--set", "global.kubernetesDistro={}".format(kubernetes_distro), @@ -482,6 +596,11 @@ def helm_install_release(chart_path, subscription_id, kubernetes_distro, resourc "--set", "global.onboardingPrivateKey={}".format(private_key_pem), "--set", "systemDefaultValues.spnOnboarding=false", "--output", "json"] + # To set some other helm parameters through file + if values_file_provided: + cmd_helm_install.extend(["-f", values_file]) + if proxy_cert != "": + cmd_helm_install.extend(["--set-file", "global.proxyCert={}".format(proxy_cert)]) if kube_config: cmd_helm_install.extend(["--kubeconfig", kube_config]) if kube_context: @@ -491,10 +610,11 @@ def helm_install_release(chart_path, subscription_id, kubernetes_distro, resourc response_helm_install = Popen(cmd_helm_install, stdout=PIPE, stderr=PIPE) _, error_helm_install = response_helm_install.communicate() if response_helm_install.returncode != 0: - if 'forbidden' in error_helm_install.decode("ascii"): + if ('forbidden' in error_helm_install.decode("ascii") or 'timed out waiting for the condition' in error_helm_install.decode("ascii")): telemetry.set_user_fault() telemetry.set_exception(exception=error_helm_install.decode("ascii"), fault_type=consts.Install_HelmRelease_Fault_Type, summary='Unable to install helm release') + logger.warning("Please check if the azure-arc namespace was deployed and run 'kubectl get pods -n azure-arc' to check if all the pods are in running state. A possible cause for pods stuck in pending state could be insufficient resources on the kubernetes cluster to onboard to arc.") raise CLIError("Unable to install helm release: " + error_helm_install.decode("ascii")) @@ -565,13 +685,13 @@ def update_connectedk8s(cmd, instance, tags=None): # pylint: disable=line-too-long -def update_agents(cmd, client, resource_group_name, cluster_name, https_proxy="", http_proxy="", no_proxy="", +def update_agents(cmd, client, resource_group_name, cluster_name, https_proxy="", http_proxy="", no_proxy="", proxy_cert="", kube_config=None, kube_context=None, no_wait=False): logger.warning("Ensure that you have the latest helm version installed before proceeding.") logger.warning("This operation might take a while...\n") - # Checking cloud - validate_cloud(cmd) + # Send cloud information to telemetry + send_cloud_telemetry(cmd) # Setting kubeconfig kube_config = set_kube_config(kube_config) @@ -585,6 +705,31 @@ def update_agents(cmd, client, resource_group_name, cluster_name, https_proxy="" # Escaping comma, forward slash present in no proxy urls, needed for helm params. no_proxy = escape_proxy_settings(no_proxy) + # check whether proxy cert path exists + if proxy_cert != "" and (not os.path.exists(proxy_cert)): + telemetry.set_user_fault() + telemetry.set_exception(fault_type=consts.Proxy_Cert_Path_Does_Not_Exist_Fault_Type, + summary='Proxy cert path does not exist') + raise CLIError(str.format(consts.Proxy_Cert_Path_Does_Not_Exist_Error, proxy_cert)) + + # Checking whether optional extra values file has been provided. + values_file_provided = False + values_file = os.getenv('HELMVALUESPATH') + if (values_file is not None) and (os.path.isfile(values_file)): + values_file_provided = True + logger.warning("Values files detected. Reading additional helm parameters from same.") + # trimming required for windows os + if (values_file.startswith("'") or values_file.startswith('"')): + values_file = values_file[1:] + if (values_file.endswith("'") or values_file.endswith('"')): + values_file = values_file[:-1] + + # Validate the helm environment file for Dogfood. + dp_endpoint_dogfood = None + release_train_dogfood = None + if cmd.cli_ctx.cloud.endpoints.resource_manager == consts.Dogfood_RMEndpoint: + dp_endpoint_dogfood, release_train_dogfood = validate_env_file_dogfood(values_file, values_file_provided) + # Loading the kubeconfig file in kubernetes client configuration try: config.load_kube_config(config_file=kube_config, context=kube_context) @@ -617,6 +762,11 @@ def update_agents(cmd, client, resource_group_name, cluster_name, https_proxy="" helm_version = check_helm_version(kube_config, kube_context) telemetry.add_extension_event('connectedk8s', {'Context.Default.AzureCLI.HelmVersion': helm_version}) + # Check for faulty pre-release helm versions + if "3.3.0-rc" in helm_version: + telemetry.set_user_fault() + raise CLIError("The current helm version is not supported for azure-arc onboarding. Please upgrade helm to a stable version and try again.") + # Check whether Connected Cluster is present if not connected_cluster_exists(client, resource_group_name, cluster_name): telemetry.set_user_fault() @@ -634,7 +784,7 @@ def update_agents(cmd, client, resource_group_name, cluster_name, https_proxy="" utils.add_helm_repo(kube_config, kube_context) # Retrieving Helm chart OCI Artifact location - registry_path = os.getenv('HELMREGISTRY') if os.getenv('HELMREGISTRY') else utils.get_helm_registry(cmd, connected_cluster.location) + registry_path = os.getenv('HELMREGISTRY') if os.getenv('HELMREGISTRY') else utils.get_helm_registry(cmd, connected_cluster.location, dp_endpoint_dogfood, release_train_dogfood) reg_path_array = registry_path.split(':') agent_version = reg_path_array[1] @@ -655,6 +805,10 @@ def update_agents(cmd, client, resource_group_name, cluster_name, https_proxy="" "--set", "global.httpProxy={}".format(http_proxy), "--set", "global.noProxy={}".format(no_proxy), "--wait", "--output", "json"] + if values_file_provided: + cmd_helm_upgrade.extend(["-f", values_file]) + if proxy_cert != "": + cmd_helm_upgrade.extend(["--set-file", "global.proxyCert={}".format(proxy_cert)]) if kube_config: cmd_helm_upgrade.extend(["--kubeconfig", kube_config]) if kube_context: @@ -662,7 +816,7 @@ def update_agents(cmd, client, resource_group_name, cluster_name, https_proxy="" response_helm_upgrade = Popen(cmd_helm_upgrade, stdout=PIPE, stderr=PIPE) _, error_helm_upgrade = response_helm_upgrade.communicate() if response_helm_upgrade.returncode != 0: - if 'forbidden' in error_helm_upgrade.decode("ascii"): + if ('forbidden' in error_helm_upgrade.decode("ascii") or 'timed out waiting for the condition' in error_helm_upgrade.decode("ascii")): telemetry.set_user_fault() telemetry.set_exception(exception=error_helm_upgrade.decode("ascii"), fault_type=consts.Install_HelmRelease_Fault_Type, summary='Unable to install helm release') diff --git a/src/connectedk8s/setup.py b/src/connectedk8s/setup.py index 32497db1dd0..a37d019c6c0 100644 --- a/src/connectedk8s/setup.py +++ b/src/connectedk8s/setup.py @@ -17,7 +17,7 @@ # TODO: Confirm this is the right version number you want and it matches your # HISTORY.rst entry. -VERSION = '0.2.4' +VERSION = '0.2.6' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers diff --git a/src/connectedmachine/HISTORY.rst b/src/connectedmachine/HISTORY.rst index 8f4aaca642b..49706ddb961 100644 --- a/src/connectedmachine/HISTORY.rst +++ b/src/connectedmachine/HISTORY.rst @@ -3,10 +3,14 @@ Release History =============== +0.2.0 ++++++ +* machineextensions support + 0.1.1 +++++ * Remove the limitation of max compatible cli core version 0.1.0 ++++++ -* Initial release. \ No newline at end of file +* Initial release. diff --git a/src/connectedmachine/README.md b/src/connectedmachine/README.md new file mode 100644 index 00000000000..59996b1f21b --- /dev/null +++ b/src/connectedmachine/README.md @@ -0,0 +1,104 @@ +# Microsoft Azure CLI 'connectedmachine' Extension + +This package is for the 'connectedmachine' extension, i.e. 'az connectedmachine'. + +## Prerequisite + +In order to use this extension, +first follow the quick start for +[Hybrid Compute](https://docs.microsoft.com/en-us/azure/azure-arc/servers/learn/quick-enable-hybrid-vm) +and onboard your machine(s). + +## How to use + +Install this extension using the below CLI command + +```sh +az extension add --name connectedmachine +``` + +### Included Features + +#### Connected Machine Management + +*Examples:* + +##### Show connected machine + +```sh +az connectedmachine show \ + --subscription subscription_id \ + --resource-group my-rg \ + --name my-cluster +``` + +##### List connected machines in resource group + +```sh +az connectedmachine list --resource-group my-rg +``` + +##### Delete a connected machine + +```sh +az connectedmachine delete \ + --subscription subscription_id \ + --resource-group my-rg \ + --name my-machine +``` + +#### Connected Machine Extension Management + +*Examples:* + +##### Create or Update a Machine Extension + +```sh +az connectedmachine machine-extension create \ + --machine-name "myMachine" \ + --name "customScriptExtension" \ + --location "eastus2euap" \ + --type "CustomScriptExtension" \ + --publisher "Microsoft.Compute" \ + --settings "{\"commandToExecute\":\"powershell.exe -c \\\"Get-Process | Where-Object { $_.CPU -gt 10000 }\\\"\"}" \ + --type-handler-version "1.10" \ + --resource-group "myResourceGroup" +``` + +##### Get all Machine Extensions + +```sh +az connectedmachine machine-extension list \ + --machine-name "myMachine" \ + --resource-group "myResourceGroup" +``` + +##### Get a Machine Extension + +```sh +az connectedmachine machine-extension show \ + --machine-name "myMachine" \ + --name "CustomScriptExtension" \ + --resource-group "myResourceGroup" +``` + +##### Update a Machine Extension + +```sh +az connectedmachine machine-extension update \ + --machine-name "myMachine" \ + --name "CustomScriptExtension" \ + --type "CustomScriptExtension" \ + --publisher "Microsoft.Compute" \ + --settings "{\"commandToExecute\":\"powershell.exe -c \\\"Get-Process | Where-Object { $_.CPU -lt 100 }\\\"\"}" \ --type-handler-version "1.10" \ + --resource-group "myResourceGroup" +``` + +##### Delete a Machine Extension + +```sh +az connectedmachine machine-extension delete \ + --machine-name "myMachine" \ + --name "MMA" \ + --resource-group "myResourceGroup" +``` diff --git a/src/connectedmachine/README.rst b/src/connectedmachine/README.rst deleted file mode 100644 index 34c3267a1f5..00000000000 --- a/src/connectedmachine/README.rst +++ /dev/null @@ -1,5 +0,0 @@ -Microsoft Azure CLI 'connectedmachine' Extension -========================================== - -This package is for the 'connectedmachine' extension. -i.e. 'az connectedmachine' \ No newline at end of file diff --git a/src/connectedmachine/azext_connectedmachine/__init__.py b/src/connectedmachine/azext_connectedmachine/__init__.py index 2844f4e0207..0e9b9399cd1 100644 --- a/src/connectedmachine/azext_connectedmachine/__init__.py +++ b/src/connectedmachine/azext_connectedmachine/__init__.py @@ -1,32 +1,50 @@ -# -------------------------------------------------------------------------------------------- +# -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- from azure.cli.core import AzCommandsLoader +from azext_connectedmachine.generated._help import helps # pylint: disable=unused-import +try: + from azext_connectedmachine.manual._help import helps # pylint: disable=reimported +except ImportError: + pass -from azext_connectedmachine._help import helps # pylint: disable=unused-import - -class ConnectedmachineCommandsLoader(AzCommandsLoader): +class ConnectedMachineCommandsLoader(AzCommandsLoader): def __init__(self, cli_ctx=None): from azure.cli.core.commands import CliCommandType - from azext_connectedmachine._client_factory import cf_connectedmachine + from azext_connectedmachine.generated._client_factory import cf_connectedmachine_cl connectedmachine_custom = CliCommandType( operations_tmpl='azext_connectedmachine.custom#{}', - client_factory=cf_connectedmachine) - super(ConnectedmachineCommandsLoader, self).__init__(cli_ctx=cli_ctx, - custom_command_type=connectedmachine_custom) + client_factory=cf_connectedmachine_cl) + parent = super(ConnectedMachineCommandsLoader, self) + parent.__init__(cli_ctx=cli_ctx, custom_command_type=connectedmachine_custom) def load_command_table(self, args): - from azext_connectedmachine.commands import load_command_table + from azext_connectedmachine.generated.commands import load_command_table load_command_table(self, args) + try: + from azext_connectedmachine.manual.commands import load_command_table as load_command_table_manual + load_command_table_manual(self, args) + except ImportError: + pass return self.command_table def load_arguments(self, command): - from azext_connectedmachine._params import load_arguments + from azext_connectedmachine.generated._params import load_arguments load_arguments(self, command) + try: + from azext_connectedmachine.manual._params import load_arguments as load_arguments_manual + load_arguments_manual(self, command) + except ImportError: + pass -COMMAND_LOADER_CLS = ConnectedmachineCommandsLoader +COMMAND_LOADER_CLS = ConnectedMachineCommandsLoader diff --git a/src/connectedmachine/azext_connectedmachine/_help.py b/src/connectedmachine/azext_connectedmachine/_help.py deleted file mode 100644 index feb986be4a3..00000000000 --- a/src/connectedmachine/azext_connectedmachine/_help.py +++ /dev/null @@ -1,28 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -from knack.help_files import helps # pylint: disable=unused-import - - -helps['connectedmachine'] = """ - type: group - short-summary: Commands to manage Connected machines. -""" - -helps['connectedmachine list'] = """ - type: command - short-summary: List Connected machines. -""" - -helps['connectedmachine delete'] = """ - type: command - short-summary: Delete a Connected machine. -""" - -helps['connectedmachine show'] = """ - type: command - short-summary: Show details of a Connected machine. -""" diff --git a/src/connectedmachine/azext_connectedmachine/_params.py b/src/connectedmachine/azext_connectedmachine/_params.py deleted file mode 100644 index 54124e4aebd..00000000000 --- a/src/connectedmachine/azext_connectedmachine/_params.py +++ /dev/null @@ -1,23 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- -# pylint: disable=line-too-long - -from knack.arguments import CLIArgumentType - - -def load_arguments(self, _): - - from azure.cli.core.commands.parameters import tags_type - from azure.cli.core.commands.validators import get_default_location_from_resource_group - - name_type = CLIArgumentType(options_list='--name', help='Name of the Connected machine.', id_part='name') - - with self.argument_context('connectedmachine') as c: - c.argument('tags', tags_type) - c.argument('location', validator=get_default_location_from_resource_group) - c.argument('name', name_type, options_list=['--name', '-n']) - - with self.argument_context('connectedmachine list') as c: - c.argument('name', name_type, id_part=None) diff --git a/src/connectedmachine/azext_connectedmachine/_validators.py b/src/connectedmachine/azext_connectedmachine/_validators.py deleted file mode 100644 index bdbc5023a4d..00000000000 --- a/src/connectedmachine/azext_connectedmachine/_validators.py +++ /dev/null @@ -1,21 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - - -def example_name_or_id_validator(cmd, namespace): - # Example of a storage account name or ID validator. - # See: - # https://github.com/Azure/azure-cli/blob/dev/doc/authoring_command_modules/authoring_commands.md#supporting-name-or-id-parameters - from azure.cli.core.commands.client_factory import get_subscription_id - from msrestazure.tools import is_valid_resource_id, resource_id - if namespace.storage_account: - if not is_valid_resource_id(namespace.RESOURCE): - namespace.storage_account = resource_id( - subscription=get_subscription_id(cmd.cli_ctx), - resource_group=namespace.resource_group_name, - namespace='Microsoft.Storage', - type='storageAccounts', - name=namespace.storage_account - ) diff --git a/src/connectedmachine/azext_connectedmachine/action.py b/src/connectedmachine/azext_connectedmachine/action.py new file mode 100644 index 00000000000..d95d53bf711 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/action.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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=wildcard-import +# pylint: disable=unused-wildcard-import + +from .generated.action import * # noqa: F403 +try: + from .manual.action import * # noqa: F403 +except ImportError: + pass diff --git a/src/connectedmachine/azext_connectedmachine/azext_metadata.json b/src/connectedmachine/azext_connectedmachine/azext_metadata.json index 55c81bf3328..4f48fa652a5 100644 --- a/src/connectedmachine/azext_connectedmachine/azext_metadata.json +++ b/src/connectedmachine/azext_connectedmachine/azext_metadata.json @@ -1,4 +1,4 @@ { - "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.67" + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.11.0" } \ No newline at end of file diff --git a/src/connectedmachine/azext_connectedmachine/commands.py b/src/connectedmachine/azext_connectedmachine/commands.py deleted file mode 100644 index 1b88b101410..00000000000 --- a/src/connectedmachine/azext_connectedmachine/commands.py +++ /dev/null @@ -1,23 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -# pylint: disable=line-too-long -from azure.cli.core.commands import CliCommandType -from azext_connectedmachine._client_factory import cf_connectedmachine - - -def load_command_table(self, _): - - connectedmachine_sdk = CliCommandType( - operations_tmpl='azext_connectedmachine.vendored_sdks.operations#MachinesOperations.{}', - client_factory=cf_connectedmachine) - - with self.command_group('connectedmachine', connectedmachine_sdk, client_factory=cf_connectedmachine) as g: - g.custom_command('delete', 'delete_connectedmachine') - g.custom_command('list', 'list_connectedmachine') - g.custom_show_command('show', 'show_connectedmachine') - - with self.command_group('connectedmachine', is_preview=True): - pass diff --git a/src/connectedmachine/azext_connectedmachine/custom.py b/src/connectedmachine/azext_connectedmachine/custom.py index 3107989aac5..dbe9d5f9742 100644 --- a/src/connectedmachine/azext_connectedmachine/custom.py +++ b/src/connectedmachine/azext_connectedmachine/custom.py @@ -1,18 +1,17 @@ -# -------------------------------------------------------------------------------------------- +# -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=wildcard-import +# pylint: disable=unused-wildcard-import - -def list_connectedmachine(client, resource_group_name=None): - if resource_group_name: - return client.machines.list_by_resource_group(resource_group_name) - return client.machines.list_by_subscription() - - -def show_connectedmachine(client, resource_group_name, name): - return client.machines.get(resource_group_name, name) - - -def delete_connectedmachine(client, resource_group_name, name): - return client.machines.delete(resource_group_name, name) +from .generated.custom import * # noqa: F403 +try: + from .manual.custom import * # noqa: F403 +except ImportError: + pass diff --git a/src/connectedmachine/azext_connectedmachine/generated/__init__.py b/src/connectedmachine/azext_connectedmachine/generated/__init__.py new file mode 100644 index 00000000000..c9cfdc73e77 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/generated/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/connectedmachine/azext_connectedmachine/generated/_client_factory.py b/src/connectedmachine/azext_connectedmachine/generated/_client_factory.py new file mode 100644 index 00000000000..e9940cc3c93 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/generated/_client_factory.py @@ -0,0 +1,24 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + + +def cf_connectedmachine_cl(cli_ctx, *_): + from azure.cli.core.commands.client_factory import get_mgmt_service_client + from ..vendored_sdks.connectedmachine import ConnectedMachine + return get_mgmt_service_client(cli_ctx, + ConnectedMachine) + + +def cf_machine(cli_ctx, *_): + return cf_connectedmachine_cl(cli_ctx).machine + + +def cf_machine_extension(cli_ctx, *_): + return cf_connectedmachine_cl(cli_ctx).machine_extension diff --git a/src/connectedmachine/azext_connectedmachine/generated/_help.py b/src/connectedmachine/azext_connectedmachine/generated/_help.py new file mode 100644 index 00000000000..ceddee2e726 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/generated/_help.py @@ -0,0 +1,126 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines + +from knack.help_files import helps + + +helps['connectedmachine machine'] = """ + type: group + short-summary: connectedmachine machine +""" + +helps['connectedmachine machine list'] = """ + type: command + short-summary: "Lists all the hybrid machines in the specified subscription." + examples: + - name: List Machines by resource group + text: |- + az connectedmachine machine list --resource-group "myResourceGroup" +""" + +helps['connectedmachine machine show'] = """ + type: command + short-summary: "Retrieves information about the model view or the instance view of a hybrid machine." + examples: + - name: Get Machine + text: |- + az connectedmachine machine show --name "myMachine" --resource-group "myResourceGroup" +""" + +helps['connectedmachine machine delete'] = """ + type: command + short-summary: "The operation to remove a hybrid machine identity in Azure." + examples: + - name: Delete a Machine + text: |- + az connectedmachine machine delete --name "myMachine" --resource-group "myResourceGroup" +""" + +helps['connectedmachine machine-extension'] = """ + type: group + short-summary: connectedmachine machine-extension +""" + +helps['connectedmachine machine-extension list'] = """ + type: command + short-summary: "The operation to get all extensions of a non-Azure machine" + examples: + - name: Get all Machine Extensions + text: |- + az connectedmachine machine-extension list --machine-name "myMachine" --resource-group \ +"myResourceGroup" +""" + +helps['connectedmachine machine-extension show'] = """ + type: command + short-summary: "The operation to get the extension." + examples: + - name: Get Machine Extension + text: |- + az connectedmachine machine-extension show --machine-name "myMachine" --name "CustomScriptExtension" \ +--resource-group "myResourceGroup" +""" + +helps['connectedmachine machine-extension create'] = """ + type: command + short-summary: "The operation to create or update the extension." + examples: + - name: Create or Update a Machine Extension + text: |- + az connectedmachine machine-extension create --machine-name "myMachine" --name "CustomScriptExtension" \ +--location "eastus2euap" --type "CustomScriptExtension" --publisher "Microsoft.Compute" --settings \ +"{\\"commandToExecute\\":\\"powershell.exe -c \\\\\\"Get-Process | Where-Object { $_.CPU -gt 10000 }\\\\\\"\\"}" \ +--type-handler-version "1.10" --resource-group "myResourceGroup" +""" + +helps['connectedmachine machine-extension update'] = """ + type: command + short-summary: "The operation to update the extension." + examples: + - name: Update a Machine Extension + text: |- + az connectedmachine machine-extension update --machine-name "myMachine" --name "CustomScriptExtension" \ +--type "CustomScriptExtension" --publisher "Microsoft.Compute" --settings "{\\"commandToExecute\\":\\"powershell.exe \ +-c \\\\\\"Get-Process | Where-Object { $_.CPU -lt 100 }\\\\\\"\\"}" --type-handler-version "1.10" --resource-group \ +"myResourceGroup" +""" + +helps['connectedmachine machine-extension delete'] = """ + type: command + short-summary: "The operation to delete the extension." + examples: + - name: Delete a Machine Extension + text: |- + az connectedmachine machine-extension delete --machine-name "myMachine" --name "MMA" --resource-group \ +"myResourceGroup" +""" + +helps['connectedmachine machine-extension wait'] = """ + type: command + short-summary: Place the CLI in a waiting state until a condition of the connectedmachine machine-extension is \ +met. + examples: + - name: Pause executing next line of CLI script until the connectedmachine machine-extension is successfully \ +created. + text: |- + az connectedmachine machine-extension wait --machine-name "myMachine" --name "CustomScriptExtension" \ +--resource-group "myResourceGroup" --created + - name: Pause executing next line of CLI script until the connectedmachine machine-extension is successfully \ +updated. + text: |- + az connectedmachine machine-extension wait --machine-name "myMachine" --name "CustomScriptExtension" \ +--resource-group "myResourceGroup" --updated + - name: Pause executing next line of CLI script until the connectedmachine machine-extension is successfully \ +deleted. + text: |- + az connectedmachine machine-extension wait --machine-name "myMachine" --name "CustomScriptExtension" \ +--resource-group "myResourceGroup" --deleted +""" diff --git a/src/connectedmachine/azext_connectedmachine/generated/_params.py b/src/connectedmachine/azext_connectedmachine/generated/_params.py new file mode 100644 index 00000000000..989a9057cc7 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/generated/_params.py @@ -0,0 +1,105 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + +from azure.cli.core.commands.parameters import ( + tags_type, + get_three_state_flag, + resource_group_name_type, + get_location_type +) +from azure.cli.core.commands.validators import ( + get_default_location_from_resource_group, + validate_file_or_dict +) + + +def load_arguments(self, _): + + with self.argument_context('connectedmachine machine list') as c: + c.argument('resource_group_name', resource_group_name_type) + + with self.argument_context('connectedmachine machine show') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('machine_name', options_list=['--name', '-n', '--machine-name'], type=str, help='The name of the ' + 'hybrid machine.', id_part='name') + + with self.argument_context('connectedmachine machine delete') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('machine_name', options_list=['--name', '-n', '--machine-name'], type=str, help='The name of the ' + 'hybrid machine.', id_part='name') + + with self.argument_context('connectedmachine machine-extension list') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('machine_name', type=str, help='The name of the machine containing the extension.') + c.argument('expand', type=str, help='The expand expression to apply on the operation.') + + with self.argument_context('connectedmachine machine-extension show') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('machine_name', type=str, help='The name of the machine containing the extension.', id_part='name') + c.argument('name', options_list=['--name', '-n', '--extension-name'], type=str, help='The name of the machine extension.', id_part='child_name_1') + + with self.argument_context('connectedmachine machine-extension create') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('machine_name', type=str, help='The name of the machine where the extension should be created or ' + 'updated.') + c.argument('name', options_list=['--name', '-n', '--extension-name'], type=str, help='The name of the machine extension.') + c.argument('tags', tags_type) + c.argument('location', arg_type=get_location_type(self.cli_ctx), + validator=get_default_location_from_resource_group) + c.argument('force_update_tag', type=str, help='How the extension handler should be forced to update even if ' + 'the extension configuration has not changed.') + c.argument('publisher', type=str, help='The name of the extension handler publisher.') + c.argument('type_', options_list=['--type'], type=str, help='Specifies the type of the extension; an example ' + 'is "CustomScriptExtension".') + c.argument('type_handler_version', type=str, help='Specifies the version of the script handler.') + c.argument('auto_upgrade_minor_version', options_list=['--auto-upgrade-minor'], + arg_type=get_three_state_flag(), help='Indicates whether the extension should use a newer minor ' + 'version if one is available at deployment time. Once deployed, however, the extension will not ' + 'upgrade minor versions unless redeployed, even with this property set to true.') + c.argument('settings', type=validate_file_or_dict, help='Json formatted public settings for the extension. ' + 'Expected value: json-string/@json-file.') + c.argument('protected_settings', type=validate_file_or_dict, help='The extension can contain either ' + 'protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. Expected ' + 'value: json-string/@json-file.') + + with self.argument_context('connectedmachine machine-extension update') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('machine_name', type=str, help='The name of the machine where the extension should be created or ' + 'updated.', id_part='name') + c.argument('name', options_list=['--name', '-n', '--extension-name'], type=str, help='The name of the machine extension.', id_part='child_name_1') + c.argument('tags', tags_type) + c.argument('force_update_tag', type=str, help='How the extension handler should be forced to update even if ' + 'the extension configuration has not changed.') + c.argument('publisher', type=str, help='The name of the extension handler publisher.') + c.argument('type_', options_list=['--type'], type=str, help='Specifies the type of the extension; an example ' + 'is "CustomScriptExtension".') + c.argument('type_handler_version', type=str, help='Specifies the version of the script handler.') + c.argument('auto_upgrade_minor_version', options_list=['--auto-upgrade-minor'], + arg_type=get_three_state_flag(), help='Indicates whether the extension should use a newer minor ' + 'version if one is available at deployment time. Once deployed, however, the extension will not ' + 'upgrade minor versions unless redeployed, even with this property set to true.') + c.argument('settings', type=validate_file_or_dict, help='Json formatted public settings for the extension. ' + 'Expected value: json-string/@json-file.') + c.argument('protected_settings', type=validate_file_or_dict, help='The extension can contain either ' + 'protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. Expected ' + 'value: json-string/@json-file.') + + with self.argument_context('connectedmachine machine-extension delete') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('machine_name', type=str, help='The name of the machine where the extension should be deleted.', + id_part='name') + c.argument('name', options_list=['--name', '-n', '--extension-name'], type=str, help='The name of the machine extension.', id_part='child_name_1') + + with self.argument_context('connectedmachine machine-extension wait') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('machine_name', type=str, help='The name of the machine containing the extension.', id_part='name') + c.argument('name', options_list=['--name', '-n', '--extension-name'], type=str, help='The name of the machine extension.', id_part='child_name_1') diff --git a/src/connectedmachine/azext_connectedmachine/generated/_validators.py b/src/connectedmachine/azext_connectedmachine/generated/_validators.py new file mode 100644 index 00000000000..b33a44c1ebf --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/generated/_validators.py @@ -0,0 +1,9 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- diff --git a/src/connectedmachine/azext_connectedmachine/generated/action.py b/src/connectedmachine/azext_connectedmachine/generated/action.py new file mode 100644 index 00000000000..b49bfaeeefe --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/generated/action.py @@ -0,0 +1,10 @@ +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=protected-access diff --git a/src/connectedmachine/azext_connectedmachine/generated/commands.py b/src/connectedmachine/azext_connectedmachine/generated/commands.py new file mode 100644 index 00000000000..39032d402e4 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/generated/commands.py @@ -0,0 +1,42 @@ +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-statements +# pylint: disable=too-many-locals + +from azure.cli.core.commands import CliCommandType + + +def load_command_table(self, _): + + from azext_connectedmachine.generated._client_factory import cf_machine + connectedmachine_machine = CliCommandType( + operations_tmpl='azext_connectedmachine.vendored_sdks.connectedmachine.operations._machine_operations#MachineOp' + 'erations.{}', + client_factory=cf_machine) + with self.command_group('connectedmachine machine', connectedmachine_machine, client_factory=cf_machine, + is_experimental=True) as g: + g.custom_command('list', 'connectedmachine_machine_list') + g.custom_show_command('show', 'connectedmachine_machine_show') + g.custom_command('delete', 'connectedmachine_machine_delete', confirmation=True) + + from azext_connectedmachine.generated._client_factory import cf_machine_extension + connectedmachine_machine_extension = CliCommandType( + operations_tmpl='azext_connectedmachine.vendored_sdks.connectedmachine.operations._machine_extension_operations' + '#MachineExtensionOperations.{}', + client_factory=cf_machine_extension) + with self.command_group('connectedmachine machine-extension', connectedmachine_machine_extension, + client_factory=cf_machine_extension, is_experimental=True) as g: + g.custom_command('list', 'connectedmachine_machine_extension_list') + g.custom_show_command('show', 'connectedmachine_machine_extension_show') + g.custom_command('create', 'connectedmachine_machine_extension_create', supports_no_wait=True) + g.custom_command('update', 'connectedmachine_machine_extension_update', supports_no_wait=True) + g.custom_command('delete', 'connectedmachine_machine_extension_delete', supports_no_wait=True, + confirmation=True) + g.custom_wait_command('wait', 'connectedmachine_machine_extension_show') diff --git a/src/connectedmachine/azext_connectedmachine/generated/custom.py b/src/connectedmachine/azext_connectedmachine/generated/custom.py new file mode 100644 index 00000000000..34070c45e44 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/generated/custom.py @@ -0,0 +1,123 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines + +from azure.cli.core.util import sdk_no_wait + + +def connectedmachine_machine_list(client, + resource_group_name=None): + if resource_group_name: + return client.list_by_resource_group(resource_group_name=resource_group_name) + return client.list_by_subscription() + + +def connectedmachine_machine_show(client, + resource_group_name, + machine_name): + return client.get(resource_group_name=resource_group_name, + name=machine_name, + expand="instanceView") + + +def connectedmachine_machine_delete(client, + resource_group_name, + machine_name): + return client.delete(resource_group_name=resource_group_name, + name=machine_name) + + +def connectedmachine_machine_extension_list(client, + resource_group_name, + machine_name, + expand=None): + return client.list(resource_group_name=resource_group_name, + name=machine_name, + expand=expand) + + +def connectedmachine_machine_extension_show(client, + resource_group_name, + machine_name, + name): + return client.get(resource_group_name=resource_group_name, + name=machine_name, + extension_name=name) + + +def connectedmachine_machine_extension_create(client, + resource_group_name, + machine_name, + name, + location, + tags=None, + force_update_tag=None, + publisher=None, + type_=None, + type_handler_version=None, + auto_upgrade_minor_version=None, + settings=None, + protected_settings=None, + no_wait=False): + return sdk_no_wait(no_wait, + client.begin_create_or_update, + resource_group_name=resource_group_name, + name=machine_name, + extension_name=name, + tags=tags, + location=location, + force_update_tag=force_update_tag, + publisher=publisher, + type=type_, + type_handler_version=type_handler_version, + auto_upgrade_minor_version=auto_upgrade_minor_version, + settings=settings, + protected_settings=protected_settings, + status=None) + + +def connectedmachine_machine_extension_update(client, + resource_group_name, + machine_name, + name, + tags=None, + force_update_tag=None, + publisher=None, + type_=None, + type_handler_version=None, + auto_upgrade_minor_version=None, + settings=None, + protected_settings=None, + no_wait=False): + return sdk_no_wait(no_wait, + client.begin_update, + resource_group_name=resource_group_name, + name=machine_name, + extension_name=name, + tags=tags, + force_update_tag=force_update_tag, + publisher=publisher, + type=type_, + type_handler_version=type_handler_version, + auto_upgrade_minor_version=auto_upgrade_minor_version, + settings=settings, + protected_settings=protected_settings) + + +def connectedmachine_machine_extension_delete(client, + resource_group_name, + machine_name, + name, + no_wait=False): + return sdk_no_wait(no_wait, + client.begin_delete, + resource_group_name=resource_group_name, + name=machine_name, + extension_name=name) diff --git a/src/connectedmachine/azext_connectedmachine/manual/__init__.py b/src/connectedmachine/azext_connectedmachine/manual/__init__.py new file mode 100644 index 00000000000..c9cfdc73e77 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/manual/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/connectedmachine/azext_connectedmachine/tests/__init__.py b/src/connectedmachine/azext_connectedmachine/tests/__init__.py index 99c0f28cd71..50e0627daff 100644 --- a/src/connectedmachine/azext_connectedmachine/tests/__init__.py +++ b/src/connectedmachine/azext_connectedmachine/tests/__init__.py @@ -1,5 +1,114 @@ -# ----------------------------------------------------------------------------- +# coding=utf-8 +# -------------------------------------------------------------------------- # 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +import inspect +import logging +import os +import sys +import traceback +import datetime as dt + +from azure.core.exceptions import AzureError +from azure.cli.testsdk.exceptions import CliTestError, CliExecutionError, JMESPathCheckAssertionError + + +logger = logging.getLogger('azure.cli.testsdk') +logger.addHandler(logging.StreamHandler()) +__path__ = __import__('pkgutil').extend_path(__path__, __name__) +exceptions = [] +test_map = dict() +SUCCESSED = "successed" +FAILED = "failed" + + +def try_manual(func): + def import_manual_function(origin_func): + from importlib import import_module + decorated_path = inspect.getfile(origin_func) + module_path = __path__[0] + if not decorated_path.startswith(module_path): + raise Exception("Decorator can only be used in submodules!") + manual_path = os.path.join( + decorated_path[module_path.rfind(os.path.sep) + 1:]) + manual_file_path, manual_file_name = os.path.split(manual_path) + module_name, _ = os.path.splitext(manual_file_name) + manual_module = "..manual." + \ + ".".join(manual_file_path.split(os.path.sep) + [module_name, ]) + return getattr(import_module(manual_module, package=__name__), origin_func.__name__) + + def get_func_to_call(): + func_to_call = func + try: + func_to_call = import_manual_function(func) + func_to_call = import_manual_function(func) + logger.info("Found manual override for %s(...)", func.__name__) + except (ImportError, AttributeError): + pass + return func_to_call + + def wrapper(*args, **kwargs): + func_to_call = get_func_to_call() + logger.info("running %s()...", func.__name__) + try: + test_map[func.__name__] = dict() + test_map[func.__name__]["result"] = SUCCESSED + test_map[func.__name__]["error_message"] = "" + test_map[func.__name__]["error_stack"] = "" + test_map[func.__name__]["error_normalized"] = "" + test_map[func.__name__]["start_dt"] = dt.datetime.utcnow() + ret = func_to_call(*args, **kwargs) + except (AssertionError, AzureError, CliTestError, CliExecutionError, SystemExit, + JMESPathCheckAssertionError) as e: + test_map[func.__name__]["end_dt"] = dt.datetime.utcnow() + test_map[func.__name__]["result"] = FAILED + test_map[func.__name__]["error_message"] = str(e).replace("\r\n", " ").replace("\n", " ")[:500] + test_map[func.__name__]["error_stack"] = traceback.format_exc().replace( + "\r\n", " ").replace("\n", " ")[:500] + logger.info("--------------------------------------") + logger.info("step exception: %s", e) + logger.error("--------------------------------------") + logger.error("step exception in %s: %s", func.__name__, e) + logger.info(traceback.format_exc()) + exceptions.append((func.__name__, sys.exc_info())) + else: + test_map[func.__name__]["end_dt"] = dt.datetime.utcnow() + return ret + + if inspect.isclass(func): + return get_func_to_call() + return wrapper + + +def calc_coverage(filename): + filename = filename.split(".")[0] + coverage_name = filename + "_coverage.md" + with open(coverage_name, "w") as f: + f.write("|Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt|\n") + total = len(test_map) + covered = 0 + for k, v in test_map.items(): + if not k.startswith("step_"): + total -= 1 + continue + if v["result"] == SUCCESSED: + covered += 1 + f.write("|{step_name}|{result}|{error_message}|{error_stack}|{error_normalized}|{start_dt}|" + "{end_dt}|\n".format(step_name=k, **v)) + f.write("Coverage: {}/{}\n".format(covered, total)) + print("Create coverage\n", file=sys.stderr) + + +def raise_if(): + if exceptions: + if len(exceptions) <= 1: + raise exceptions[0][1][1] + message = "{}\nFollowed with exceptions in other steps:\n".format(str(exceptions[0][1][1])) + message += "\n".join(["{}: {}".format(h[0], h[1][1]) for h in exceptions[1:]]) + raise exceptions[0][1][0](message).with_traceback(exceptions[0][1][2]) diff --git a/src/connectedmachine/azext_connectedmachine/tests/latest/__init__.py b/src/connectedmachine/azext_connectedmachine/tests/latest/__init__.py index 99c0f28cd71..c9cfdc73e77 100644 --- a/src/connectedmachine/azext_connectedmachine/tests/latest/__init__.py +++ b/src/connectedmachine/azext_connectedmachine/tests/latest/__init__.py @@ -1,5 +1,12 @@ -# ----------------------------------------------------------------------------- +# coding=utf-8 +# -------------------------------------------------------------------------- # 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/connectedmachine/azext_connectedmachine/tests/latest/recordings/test_connectedmachine.yaml b/src/connectedmachine/azext_connectedmachine/tests/latest/recordings/test_connectedmachine.yaml index 1fe84b99a15..7c8840039d1 100644 --- a/src/connectedmachine/azext_connectedmachine/tests/latest/recordings/test_connectedmachine.yaml +++ b/src/connectedmachine/azext_connectedmachine/tests/latest/recordings/test_connectedmachine.yaml @@ -7,66 +7,34 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine show Connection: - keep-alive + ParameterSetName: + - --name --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad?api-version=2020-08-02&$expand=instanceView response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.HybridCompute/machines/DESKTOP-N1DNFRL","name":"DESKTOP-N1DNFRL","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"290f543f-718b-49af-bae2-3d3f03a52287","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.17001","status":"Disconnected","lastStatusChange":"2019-07-10T21:43:17.7295785","errorDetails":[],"displayName":"DESKTOP-N1DNFRL","machineFqdn":"DESKTOP-N1DNFRL","osName":"windows","osVersion":"10.0.17763.134","osProfile":{"computerName":"DESKTOP-N1DNFRL"},"vmId":"eabb9647-127a-4d3c-ba49-95402096944a","physicalLocation":"West - US","clientPublicKey":"MIIBCgKCAQEA26tKetvghi3yu8QlkEG4176Pr+oq2DDDO6dWSkkJdFGhLCpVjg84XF2RwnhGTQsoMAl64JHRqW7/cmzA9hXJFE7+0YLIme5syKdacJQI70+WXnWGHJfDzIGOuAR515VI67MRUj8cJr9jKbMQl6gVmd/HcBYF8eAlYnDpuD/SIxiP+UG0UXF483pD0jF2Gwx1xEkUW5KPb9OJ4N4oxBc+WUjQl8rGqUxS4G4NBNAPpEXcuxIUVVlkfqzmo4BAD7XZW8U4LPc2wSv0GbJ4omNbaKuITGTeoczw9/HDq7oeqnW3HNGqXR9yEhcODweXQwOzq4BtAKjiGxLC2T9DbMWsJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.HybridCompute/machines/dakirby-linuxvm","name":"dakirby-linuxvm","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ade8534-f068-4777-af92-5a99c0774c5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a66e3ce9-bfd9-44e3-bc4c-41bbfb3db666","physicalLocation":"West - US","clientPublicKey":"MIIBCgKCAQEA50N02I2REU5ULQJJidZxQ7e8IL4LhCPHf1d1cSouraPk0DSDZasix3mzgMkjuDQXDzVg7khyUILLRcF83p596WT5wWLPBqy9pkMsiA0kTuoGx6bNHaroDYWel+9nNZYD+CkNOFJTmuOeSMSXVpabPakbfsSJfO4sOmmzRaoOKUwNQU+uXKNakOdj7IAdFj6DpJNb+J5KJvwlaHLY9aAUnxjxLPAGV6PwB+Z/ImwgpSq8JI/cE3mUXB++pc+8FMG7CgQZIw/Db3Cd3fvRaXPPFQB6ZsMaZk6CQf3HdkP455wjPavm6L3eubAyDZscwEwAOiXuz/9UhdbarJvmxBsnyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_12","name":"winwestus2_12","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ca59131-1250-4127-99b4-0e52d32a7556","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26003","status":"Disconnected","lastStatusChange":"2019-07-10T21:43:17.7295785","errorDetails":[],"displayName":"RaghuS-Desktop","machineFqdn":"RaghuS-Desktop","osName":"windows","osVersion":"10.0.17763.557","osProfile":{"computerName":"RaghuS-Desktop"},"vmId":"f7fa858e-fdfb-44e5-a30d-476aa94110a6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm5TIVxL5HiZIXmXs8QhWuiuuyakB4jM0meua/BcccnW4/2eDnRIQApzTELgwo5+L9Yox9saeG45bbAT8ByYEleA5whzECYvtfLekE2a/W0PiGlQPY//iRuEf15R9Tdg+TL5oTLJ4BlI2WbN+0IPWm2j4mGznVLMbCApNLBZ4VdEuHuZHBeaIMpRaHxgVuFmVk+1RgayZ86OaZnyQMWH5MM20Bq0wd2GrMdC8YOntTv8T/1sFh8sra1kuHuSTzfax3tXmYnEizRB8/k4q55MSXxUhvHO42bcCwLKJafogJcRoEJzJ7XdEi3QynOB2IuXh/UkY2LsaYUqVvYjKxWVGoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/linwestus2_12","name":"linwestus2_12","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"5244318b-5900-4710-ac87-f74bc796f719","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26002","status":"Connected","lastStatusChange":"2019-10-08T16:07:12.7169453Z","errorDetails":[],"displayName":"ubuntuvm","machineFqdn":"ubuntuvm","osName":"linux","osVersion":"5.0.0-1022-azure","osProfile":{"computerName":"ubuntuvm"},"vmId":"59791735-81b5-4696-a44a-ae848c39cf0c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8zubmKGKEHBGUEAyiKRRFHb9wA7kVrIr8VinAWpxe9FIivV56kdfs73qgBSiheWTz9pr1mibc9xHvdhAEH8ZY5B4tmUV2ywDJEFJ1s/C5o5BV++IffUUYZ/qrRtHHATlpm1lBikwL7pA+SWVpI3QBe2JLs3HlNrIM/3K+grQrNx/bM2MU5J0e6A39aygQ8hslsTLfXufEsVZQa4AGhvogjJVAwxNlBx6SZFTGSneQJj9PwmPD9rea/rfIWbrAX1cjGzHlrVKVZ3FVeYA9RFoQfa8nbf81dlWlW50AAeviRmY7785SqDhHvnwslf8fpV7Rm1V2eI8pb4mk+zKrRjtJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_17","name":"winwestus2_17","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"977f44b8-0a24-4489-ad33-18b43fec97d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.27003","status":"Connected","lastStatusChange":"2019-10-29T04:22:15.0882961Z","errorDetails":[],"displayName":"2012r2","machineFqdn":"2012r2","osName":"windows","osVersion":"6.3.9600","osProfile":{"computerName":"2012r2"},"vmId":"111c42cf-03b5-40f1-8e52-19646ebdb0a1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs1wNgivYee/hbPPN4ut/Ua4wovlh7yePISBSE8bp+SqM5OIfrLdlPDNTFv1E49Noh3BiH0wuIwMxZkNcqXcmLVtf6dldpYp5EJ222KCo4n5Enpvo+FLhwwgVO0sBsoEEbekshqpNhVdRozyaD7DIHCVUvjhYF/xW5Om3v1ij4dF3roIfEQ3BG8USZZE/+OIc05ExQhXL10gLYLKO9MzRHrToITO18I3KueV63kSSZEXz9/WAe961iW4bLCSvyD1Nb4zKK81ncv9KQf9hOZ8d/o6jtlVvovWSS4fcWVn5298uqu4BbIh+SODU8/d1CAP0QCzn7SJLOaFnEL92kYbXHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_19","name":"winwestus2_19","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"dbb73adc-00d2-4ca5-8062-d4785243dfc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26003","status":"Disconnected","lastStatusChange":"2019-08-02T00:23:08.4594238","errorDetails":[],"displayName":"RaghuS-Desktop","machineFqdn":"RaghuS-Desktop","osName":"windows","osVersion":"10.0.17763.615","osProfile":{"computerName":"RaghuS-Desktop"},"vmId":"26e3be5c-81b0-489f-bcd1-8900eed8f067","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2FC/iz3AAyl549swwsmKoUdpq3/J/LdNUKUy2rj8s8umpxuEO40IX7B/u2VW4AlsX+H1JWFQBqXUwkAFurfK+ac9pGEvalG6eAOI8q3l8bG51jtKkwRfOSMO2DsSbjiXsLIzz0Io/Bjs/0QgzTbmvNA/Rxp2KbfjuQ69mWphdjL5V89Av2uUX6xxLbomIHJt+6utVFMV4M3krTtrPawxp2lo3AqEFEBNByG7yG9MWnZvKjgsRWT8rc8R9btnyCRfchD02xiIv+TxPdSRcK/bNB3Nw1VHupadp1ge7780ZYRTi/lu+xVwQE5054UwFizf0zFSDY3NyUxL7dcHiggRvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_21","name":"winwestus2_21","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"7dba683b-b0d2-4c76-9e70-75d3402d1373","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"929c7ec4-2c49-43c8-a802-f0a57c2cf1a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo+nbtslqnit0PurR6Cgp2BSzaCAA59gqBfFgXotvrJp/sgtBNPfxyo9YzSbbBJ4DTEL3I7kXU1a7lxaJ+VSLfLI0U7ZZnbwkkFX04Y4aZYsqQRr8CoRNWud9LkLrQMvR20JMqMW7I7ex7TajCnF+qz7brrveQLEvLIJxxnzUwuSpuwVP1zoBGvhmcDr/7uuYfULYTIQ8WbhdAakkKxqupkhoznFfwiyIISViXBEk37jMcXjhWoEtBSfEyi9eriHMVJO9LTcfopAnHvxULC3NMWvxXqJMv9a3DjC3GwgadkySWtz1OdWxqnOMIii8lUUGO6opIp08N6vXwcgVn8OIiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_29","name":"winwestus2_29","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"8a3143d4-f4da-4fde-8c7d-596a93352922","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5f1b3ae2-668f-4c5e-ba1e-eb88bc6f62b1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsMANMrVwhqzc/9QvQf1zYQPUw0uG/6Zf0NmIhBAMamVbsD1ZqMVjFaxyYa9rUc1T5PbKamtnbVDgWwlM5OLZYBZjHorv4vhET1unuHBBd0qd8+MPO+ar8cZI0BSstu2kUrHQEgxgjlEIvIT5JKAp4Wpi5PninecjY0ODpc4Z+OFZe4zGvIkJBloRitJb/nPKPK54Cli854wJdX9YQisO5w5X98X8dJSbai1WYsttkiAQaovd3t3JqRaNxGdqxMENFkldU9g/JkRRnGaBs/i8oCun2UrZTRFCNKbPueRWCL//lm//10pjS3nYmWJM+7rJVfT1gO8RXFRI4LuGfnsL2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_30","name":"winwestus2_30","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c49731d-6cbe-4fdc-994e-22e3d898452c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"55b3c9fa-cc6a-484c-8311-52b43b0a81ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqUALf7Ar91Jmv9MNya4KLrcDdKFXWVIF0rOyceXeyW6wGqaQT1Fu7d11s3tpaoqrYYBavDl64voS8WSESAhmuEscpyvhqJQEeloBBCyV0XWYP5Q6pCtYLksulAXSo2UuVoRgp9gb+Pnj9Qd9hruaKaPizv4fvrRdVJSqQdWy9V9LakTxl21O2uMoLY6dvN1Uy9ZiJ/mBc/LHA0A4rRRvVjzeFghimpO+V5xzMlJnaMh65QQzo3cgPo6nNRpiXDl25erWwVmkN9qq9ruGePtl2f84ls/CZOBngCyJaaPQ4UVT/8hhsKpITnhl43c9i36p5tvYyrzd4Wrww/FlASt+/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azure-sdk-test/providers/Microsoft.HybridCompute/machines/TestMachine2","name":"TestMachine2","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"7dbad483-4919-4856-8f19-5e10f2504860","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"27db2631-3b59-4a69-8b76-f96f2b9d79b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy1wFJ8ITwDEy18C/DpzgT7URZSEButh0qYXk7DyrfqkNve0+ERsUxFcXq5IbNyz+ZnEQAZQPhmDWzeUXF85yEWbB5KwXrs/nv2P3qsp1X3b86XnrUsrs6/rH6VEcHv9VAhLA1jyprzcbWZeT5vLDcifOrv4mcTSMDRxDAiQWFwZ7Rv4AkCZu4dZ43LORuGdgTGshTVAy/IlFOyCzBbH99qCQCbxjVFLXSEnP0ACCQeLNGxlHJ6lM6K5uS6fIM8dH+AdITKkpVrWfoumfQ9x+xQar7jqfH/rds/lEBO5MDUYbdk/ynOaCJ8G9DR2AjNmy7MsqEaVgHFo1DCxPeu3TDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrppolicytest/providers/Microsoft.HybridCompute/machines/winvmpolicy_1","name":"winvmpolicy_1","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"834d15f1-4ef3-4c50-b963-b009da044b21","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10001","status":"Connected","lastStatusChange":"2019-10-29T22:41:46.882458Z","errorDetails":[],"displayName":"winvmpolicy","machineFqdn":"winvmpolicy","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"winvmpolicy"},"vmId":"57c44599-9997-4cd4-b314-a236d34f3f5d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArK5nGwYSep4p5Irr4u2N3kF/9veiNjbwdP2vGAZTTNwbn/3ys0QEKGgt9xb5ZPXWhUGlf6B2xt/HCpgvvKvhz5ywW7DiadrAwv3FWWVaN/bogPSvU2rYJsnWSG98I7WxMrp6tuZCw+gs3GM5lGiHZtj0Yma9P30xhBzPtjHoWVJ8KX7ZFnruRnkvZAmXmREQrSQAU+mHHHEvzg81ikJOb1BkqiYC5L1kWyPaDeej98nCgT7jpw8xPceL8o/SrcVHMW4h6BITIkoRi0EUvlTMGFSai42mfu32fx4WQSjtkg88cPDIRju8jgkPjXEUdIsRc/kKWhbL6U98hutjnkbSqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrppolicytest/providers/Microsoft.HybridCompute/machines/linuxvmpolicy_1","name":"linuxvmpolicy_1","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"2931d35b-3bd8-41f3-9b65-f2c5d94f5e3b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10001","status":"Connected","lastStatusChange":"2019-10-29T23:15:36.7443803Z","errorDetails":[],"displayName":"linuxvmpolicy","machineFqdn":"linuxvmpolicy","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"linuxvmpolicy"},"vmId":"6f5f3a29-5e72-46e6-8584-df4634ed3aec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx/vtn3bidKlNbZvkLBg2hIkpKmM+W2mhcKCVjPapt2FqPEcRkPf9CZ1imSuRBDfE3MVFkvQUDFoPAg81dpn2nK8tU5WNX2hC6bDqz6UPfaSJF8Asc8GL9WL44Nbv3ExHgpDOIA1HkJcyHzEii2LI8u/qu/GJiaJuUiEkGtAwm6MjPjcGBivNlMLrwXqjgNNEejZbCRlvUwaOnCPJr3WK6fMDYtUWBQ76kpA4Vowp8WT6paO9FWITXpuuu+FXyF99Eci2THSk/EWonpB4lW56281SQnpRzjBW78ENBD3Y/pr/QGMQcP7HAqoR+fsMJCuReq+piQnQQMa8LvZkdur4cwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/PumnamhrpVM004","name":"PumnamhrpVM004","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"dade6b66-2657-49ef-a098-66f28777e370","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"72657696-be8f-4fbc-b0fa-71357467409c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1m4sqJFa8OOIyR3OsKjtmbp6NG8PD2MBsM2TN/52edC5JLnvubriAI6gu7nPfozl6S2VmMIWdm5B5TbbGONZth+JrzUfc+raHjv11x3TOtJ/bsBWvs8tSx0AoJ2S1JYdEmiqYTQxXUaUEr5TZO1dLSBezlRVv7eSl7PRTXKzISigdowqxcaIxWJG4L3FNfNFM028XXAyOVEXCRKGtMj9eDkXnQzp6+g7QAmp+GpTSTLnVtmb/1wx29NxPDT80tvEsE6EhFdM51AFE9GmniwqNejcaX1KfvQVD6V5pVOs1e/87ry2pK/YVBTlVg1E/7X2ZlQv4FzfaCKNgAwR3XEG+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/PumnamhrpVM002","name":"PumnamhrpVM002","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"f2afa603-784f-42b7-b2e5-5f6692ca7f71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T22:24:25.5722303Z","errorDetails":[],"displayName":"PumnamhrpVM002","machineFqdn":"PumnamhrpVM002","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"PumnamhrpVM002"},"vmId":"5661df85-83e5-433f-985f-f5a8baed2fc0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqna5fESsAduKHmvIoo/+mnj4xy/7NiFWOwYg+yaQMuHde5XYkz9GrGDf4z6bGIcBWi7OnH0GPNQRTt9IMZP1qJSwcWH1K+DSSNd5r7GvadrYH66AmZVIkcA+hA29QGxhZNFAwzl5bdDNdZ1E+gW/u2+B5zf8JsmImKSk/tKDqKaiZR+R1pCeqW/FJLNqkCabL70hvqmq7REHCTUl+xfpaySX+Xc65B/+gkIMtBgA5gTlQck9TX1QFTYe+6Mb1cFiaurMx6XjClmUB93UHfR1d9ymoYiKAmIrhJmsagfPbKqa6f9CbvmGqiNB7LRqvpO+Jr2lBM50uaZP7uV+TlzgFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/PumnamhrpVM003","name":"PumnamhrpVM003","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"8739ad28-db61-4444-b3f4-c6c9e1592390","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T22:24:58.4659711Z","errorDetails":[],"displayName":"PumnamhrpVM003","machineFqdn":"PumnamhrpVM003","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"PumnamhrpVM003"},"vmId":"a101ede4-ca40-4776-b4da-e0e2a615754f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAztD6IHq3hTf2iPpOd503KQksUehKVW7XZWLAkqAmN2fVSWYFC9AIHk0YTxVz1Y4hDTmZKcV1KIELK4HU4ngOFEpjRiqJAGorsWUfIPf/TYlxSs3tfvI8V3sHSA20abLyl/00WzgmtHyhfzkcplXcX1JVShfJ1bNS5ZDPMNsvWuG2fvM9t+A2RjPwtP1NtbwgGPAsUzUmUoUe6YQoa+0CBU7ra8mLGCnJ8S7FDOfmXG6AsbjNGQAfUISZCKjW/J8K6pQSnvdiE6Ubb0nHjgNW5joTU5Bj4l7pZPBH3SXVUemlHTu+8h0B8Es0VuS5xtz76X5aYfFMY6c13BBQiZoWzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamhrp-az-1","name":"pumnamhrp-az-1","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe test"},"identity":{"type":"SystemAssigned","principalId":"e8410cac-8b33-4948-bab8-4ecc2e257f90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-06T22:26:59.7776662","errorDetails":[],"displayName":"pumnamhrp-az-1","machineFqdn":"pumnamhrp-az-1","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamhrp-az-1"},"vmId":"bf3ca134-8959-472f-b7de-09ae13498f7c","physicalLocation":"building - 41 :))))","clientPublicKey":"MIIBCgKCAQEAy60t/eUEdPjgb6xtsh+IEhJeFV2NsjW8URvhMZYoMEUncyKWe7kVLnXuiHwrKbeIqMlZKZE07AYOCIhBuR/1r8ECEuj+1QqwajezFbdFIBotc+jmuJKTi4/vPYZVvfT1QTJYIO5Fz04DR/v2VUE+7YVRcQEU0w7k6o2aJteF90ZJKMpK3hUmmt6NXYbzwGhI3P6UQXLThFnc74XT6/n6isVIwezBJ/NO1iokOl13PUKKNf81tYT3JQu5XT7ASparazTo7Mq0H4D/ZZB9WVaB6hkR3ms4zCo12eYA0lreuMSPsXoCiTOdOLRXmDjdyv9t1x0EbAVu1rAplvpxIBnxzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamhrp-az-2","name":"pumnamhrp-az-2","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe test"},"identity":{"type":"SystemAssigned","principalId":"0b39623a-9298-494f-9a67-34df9b79c012","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-06T22:31:59.9084664","errorDetails":[],"displayName":"pumnamhrp-az-2","machineFqdn":"pumnamhrp-az-2","osName":"windows","osVersion":"10.0.17763.737","osProfile":{"computerName":"pumnamhrp-az-2"},"vmId":"bf340ad2-70b8-4870-bb16-de94c4acc6d9","physicalLocation":"building - 41 :))))","clientPublicKey":"MIIBCgKCAQEAs+Q4D+Ocx/5I8lmkw3RXXgWLEVDawgSfC6ZYc8hv0cjqSu25uV/FZpq5jCwMDh+XNltg+sPDK4YVPs3QZZgYPP79+7wjXyOwMKRVcH4ugRNF0neBNZ+p66UnIVEswb8B2Y05+wRyB+CeeAkhkA0Se5vdzDbZLURLhukjN4mAYe9+uwevUws3iABkbJ+ffknxeajU9lh7XdeepNI1kqw0eB5u4DdGfaxNt1jiTL9sICrfrtCAWG041c4uAt6Hxb6xYZzDE8DY9NJVyE+6KqqQww8XSK+Z3hg+IQhQ7v33NQUBrMfXER2ba+qvA1g4JsgPoMgxgVd4u0FYQF2sMybBSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamhrp-az-4","name":"pumnamhrp-az-4","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe test"},"identity":{"type":"SystemAssigned","principalId":"5c781fa6-fd3a-4f72-b059-3b5ea58eb97a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-06T22:26:59.7776662","errorDetails":[],"displayName":"pumnamhrp-az-4","machineFqdn":"pumnamhrp-az-4","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamhrp-az-4"},"vmId":"192891b8-0760-43d7-93dd-ea061452bd5f","physicalLocation":"building - 41 :))))","clientPublicKey":"MIIBCgKCAQEAm29gjxGlgMmQYs9eltZTTHRZvtdb2o0OFjimlBQnqicwkTfn3La8AHcThpSp6mAyo4vQYFl42VKDhCkNULHUo/NljZonvokR1CzR5tLXxFluxJsAj4sZpfYciDbqoYv0haEy+82Eaco0bnv3L2YeExBEGDyl8+mRYf3Gp/jQnsnHlQkBEspgN+6If+C2zbY4Ab0NSWEw4DbHu2r/YvPeu+g93Kyhj+bn++mePf6EBqqe4+yIM2AubRtfbGQGKtioTsm6tqOzbq/GCKRc2QqGQLegHtwVMz6XAJJFn9yWxFTssfqrZkeiOejVAHwXtauNC7KtW6KKLLN4lgAIqgH4oQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamhrp-az-3","name":"pumnamhrp-az-3","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe test"},"identity":{"type":"SystemAssigned","principalId":"458c854f-8f49-4502-9252-bdf19cdaa0ec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-06T22:26:59.7776662","errorDetails":[],"displayName":"pumnamhrp-az-3","machineFqdn":"pumnamhrp-az-3","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamhrp-az-3"},"vmId":"07292d9d-370c-42e7-855e-a031c3e8d9d1","physicalLocation":"building - 41 :))))","clientPublicKey":"MIIBCgKCAQEAtiIlfAT/VWyFA9AmnY0PPYP0gTaI//w6sEMCw/ndmYi4qBrknwtDF2SsCivhECLEne5gp8d/4j7cVsn7gmFfbplrLDuXxWsf+whoQEjdnZN0JchHqERQKehwDCmRjrNUdfLF56+KLvwYEGTNEf0+MFJN8TsjP27OsjkUJzUCsV8Q0wjoGuipxnY1XM+uAmOwD5W8d0k7RzWAHWXAIwiv0X6zTXoeGaoe+3ewO4zeLuVPjBoGuZ4DTsmyyizStgjmq89z9lSM5ktxR7ZgvLP3+QxjoLSvf3GKiQ0uT4Ws90NfpXYrGBbiBM6pCRHN3JjgYr2cl29ihhW5+/pzxEji0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamhrp-az-0","name":"pumnamhrp-az-0","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe test"},"identity":{"type":"SystemAssigned","principalId":"fa0ef415-dae9-47a8-a3fd-fd5625031ecb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-06T22:31:59.9084664","errorDetails":[],"displayName":"pumnamhrp-az-0","machineFqdn":"pumnamhrp-az-0","osName":"windows","osVersion":"6.3.9600","osProfile":{"computerName":"pumnamhrp-az-0"},"vmId":"22532305-0cd5-4c6f-a6e6-c2981e3c2be9","physicalLocation":"building - 41 :))))","clientPublicKey":"MIIBCgKCAQEAtTau8RmjUT5N4viBKyTr6EsVlpHuuGoPnNNP3b+AfpM9QEHeSC48hW0zYL3oN9DBltYJ4zWsQT++JF6E6W+Ujtd4TZNzGk6IwKOHEEImob4pb53GJHgyZNK0unCr9MMnneonkXYWfuZDugQMRdlshxgL1CtzTdpZG7QB6d1Yz8akYXregP7QuQzGZI+m5aB7FHaHFCnjtwTNkw/LqUFBqT9rA67gUxE226hTlWfUsc8Ql6ty52Nl2CBtTrixx+vffCZ9wVctdOSI+W3RAy8qmKI0DYfbpgMd2W0X8rC3Musf+07Y/YLEhXnFQRisYuHGUT2l+gopMfdZKBoPZhx1gwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/PumnamhrpVM001","name":"PumnamhrpVM001","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"036e2680-1ee4-4689-a97c-6cda9cfb0008","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"87a92aa4-6cbb-4a95-80e7-41b0397f144e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAucLebjDU0Ff9LcIpqQRf48oom5MiorIQWzBN+eG+8xbV0AxhWdodhQMrQDiIOm5W8BPP56JMVOMum4vbKAXqvj9zzAM5ZxdANVO+xXx04mOynft9vvVFzvRVQYQgtkPIO7uWlyxsyOXfnzNboS/ii4RnYd1wFUIJQZLt5JRhzdfgDny9gtPYtfUaHlTC+vCbEjMS27sayFBH1CvaBmf68Jps3/gzX/3HsaMIQ7gWwbmwqzwX9+Sxq14eXjGuZke2M3A6NXX7v2yDv27mWeouYIisw5tAz6/ztj7JIZcPXQ73lAd4MpkU+XufNmIAmSXPVCzcsoBCKOo1a7tArPIGoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-8","name":"pumnamrhp-dk-8","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"11141419-62ba-4584-b499-42232d569ee3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:32:28.8106343","errorDetails":[],"displayName":"pumnamrhp-dk-8","machineFqdn":"pumnamrhp-dk-8","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-8"},"vmId":"7f08e467-ae41-4e78-8727-3140e8f32900","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzy5qwZ5yg0xbzP3oO4HohgTwr4bz7mTVFSzg48r9iVwD08B6TA/v8ANHcuEIXwcoqjq5V2bP0DHHlEqhCv4DK/K9wdKLCQhWr2I0xjpnLsZ0dB/H87hr9WMA8gI8E6PsUSjNA+aQokNpyavr0NoDo3vxFCtuVJzuuvf3V6/+FFO2UqQm2syGi7rkcZ8Bl88tfcrW7AJ/lTr/ipya9ivOYB/jgbj7FvkhzD3HE5CT0GOI/av6JSBJXUcMEfOWcH8Hx7XR8deWXu2iyP2wPuhVA8q7j2cOfYWcNnsHb3wc0p/XLX+k9K/rXWvIuk0k7UF49prcL+jKk//hUPP9gY8fiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-7","name":"pumnamrhp-dk-7","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"b31037a5-c19b-4a65-97c0-2eb7c5118d7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:32:28.8106343","errorDetails":[],"displayName":"pumnamrhp-dk-7","machineFqdn":"pumnamrhp-dk-7","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-7"},"vmId":"ba5929c6-f8c1-4a04-9b32-30a68866f93e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA13SNj0xmb9xqptebWZEN5az7gXDKSGgvIoGAWCf7jnyCRvZsLIZFrNkxmk8fTDYDdjDXxzkG6zOgnrtbbbOOjjjlb3UHv3eozDO5sJ8t8h1UeZWiqa/osdDnMj+/t4AYzcVhAds9qUE3QPKciLNxxaTCN+evOLLLSaOaAsoid10ALWmk+EnBW4ALM/2P6yD3WMIcRH1GZAn5YeiWgFHMRwJKZ2biFT+aMcJIK8LpGbawx+gqDrTNXlU5dVG9GSCb5mHTNgsWZAVIHP8sQKiEnFBswG1dMO6/df6+vaY9brWHPtz5LfLTUf2Jmga25BWn+vHX/97xTZQeejbvCYDJvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-6","name":"pumnamrhp-dk-6","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"a145aa61-4abf-45b1-aa31-a8299ce0a0a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:32:28.8106343","errorDetails":[],"displayName":"pumnamrhp-dk-6","machineFqdn":"pumnamrhp-dk-6","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-6"},"vmId":"edf28f29-f29f-4283-975b-41e8ad495f08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsf111d26RHql7ETfjvuqk0NbMRtY+uBJQuQ/B7uLWvYL39zz3achFmdN+Io5DzcJRHP3FaoPC1Y/7o5Hn8D6XYoB7ZLyo0HxdnlotSRezY4LppzIAz9dBLZU+UnrwjUOgIc8UBJ1Mx4/Fdg6jo40+A62by+TyB+zXEeYOA++Bijfo4OsQaKMiz1ck+pXKk/9XwWYc/UjsksjvscZ45b1TOHhsQraMPP56acSypeedEu42DbXD6/WRwXXpu4iOHCbBDIZliUDvO0IJN10oCA2DnVkVT4QktmpAycxFv6V3iLNuvtpEIzZdz6DZpRahOD5AT6JwNakphpnqK1h00aTiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-5","name":"pumnamrhp-dk-5","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"e1ffbab8-4f5a-493b-ac10-3d5eb13bec48","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:27:28.6580122","errorDetails":[],"displayName":"pumnamrhp-dk-5","machineFqdn":"pumnamrhp-dk-5","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-5"},"vmId":"d3a1ed93-ba27-4787-bfc8-5913fd84702c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA14Aak4G8lmrKUkbyE+85w+4Cw+MtELLq23W2Og2mFMoxurnftFBg41hUUXvwui/hBhHKSLEWSZXXHgCQFL4oJbg5ilQncszGWBHR8JYG2bDqWryHmytCm/mNM/UXl1D2epgxWkl/D+1h2fmXLJZn+GRN5nWqf8DSYpZ7YhbPyG1+6xz8S1kW1EJLeD+H82J/yYG42Vxfql1o8Gef2dB3HJNN6qVwpO6eT5oLcxMc7KxrbUnPGOs/QEHCCQS57rR/pzEoLJgbz0jvWTKa+e0XNLwhVgBFiTQOTCixL1CWweuC8rAugRAWJQoNpVe94VXUxePPe9Y2hL54JFWh5XQXhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-3","name":"pumnamrhp-dk-3","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"88df6269-21b9-444d-9b6a-d9cafb299f7e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:27:28.6580122","errorDetails":[],"displayName":"pumnamrhp-dk-3","machineFqdn":"pumnamrhp-dk-3","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-3"},"vmId":"1773a627-ae5b-488d-ac03-452bdc2d9c42","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAytWVfFJgU6nDG6bUklAVPr7Gx5dX8lhYeJST+X2gpzbDRstXBylgvvEMDCLbetMPdckoB7QdBSeIIN24dfcFDgf4RMYhwqtV0Y4OCZKUgJrf8pvOu73bbGqR7PtBmNlv7LIuyRmKVE2f09wwt/+/n/qnNTirs8bpaEJ/grqT1RW8cZFYHYsF+YFANdgGkwuRxJmxGAX6u+FTOj1is7mp2BnPI9k9JTmRPWSJasOxSyabXSHIF7TQlPmdde8ZRKQlbuIpJ8tpsPo0BeyAoFzp3wo5f8NflqHU5uw56WTcoBBt9WQDM1athvMiTh9LVO+jyLnAgraDjSmb//D0dGK0iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-2","name":"pumnamrhp-dk-2","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"7f75ad40-a3be-4204-9d9c-a2a69a34b66e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:27:28.6580122","errorDetails":[],"displayName":"pumnamrhp-dk-2","machineFqdn":"pumnamrhp-dk-2","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-2"},"vmId":"ef5df962-119c-45b4-beb6-65811dad74f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1dg2xd8VCOkSmsyl+S+aMx9M0iBJl7aa9V3tDjxcLawS2FV6geBEpWDIQOEziToYQ+XX+vYh7lxqUvYxBmxIvZLfJMR0EqIiDIKtN7sP9obzbjqkwm6bqZnVJpKcZpX7MhumgiKPWtWzoyKrRXFG3zXYjPP/8c7/YWw1seLO268YRL3BybIye5gDE6azkxXiRA3z+v8760GZWNyX7spge8Siettqbk2j14V0OgIZqzGguWXGu9VBxsBT4RqTvRx54agh7Bs6Q7E5WNt9VaN9dTRP8kOdVCEkscMKRJPe8siclx7tDHMZEP0U3WENZaSML0p5PvatDdwJ30CavJr+WQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-1","name":"pumnamrhp-dk-1","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"fa3ee688-76e8-47bb-83f3-575ff7d9d987","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:27:28.6580122","errorDetails":[],"displayName":"pumnamrhp-dk-1","machineFqdn":"pumnamrhp-dk-1","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-1"},"vmId":"8cab4029-f4b6-4b8e-b1d3-648001a1ae0e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAprTmkkRQUiKjtaXZwlUhkqojgRHImkcUxAa9U6n7PDbcYLgOVrVBlyBFba+o6Ue2wwTH4lvt4tPTfBtesgQrEsiubOlupZE0aBuYGaZZ9F4hjbqfHovDjsCsUXaq+QAUPQbaKUZJbCP2ZIKTz6xeTJGuhWRabhbp88RX1jTKT/8Jriwq3mz8CI6Ndy5YvZVaT+OCtnrKbKXjQ5X+IcyWm7pxFUc0RgCwojxif1KwDBWYBAAe10SxeJqWSEUOOuqAWG2DIRfY7ozM9+eCrHxJvS6x7DZKebAIqkCyi90tAjTOzITka7rcmUVtxYTiVD4ZiEggT3XYRbwIX00UypD1zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-4","name":"pumnamrhp-dk-4","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"f6a8f909-b7fc-41cb-b51c-91c33b5399e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:27:28.6580122","errorDetails":[],"displayName":"pumnamrhp-dk-4","machineFqdn":"pumnamrhp-dk-4","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-4"},"vmId":"64be14c1-8e19-4c26-9543-2c33d445f917","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnUVnhSp+YwDY25cl2czDvLH4wNRNohBbeFr8MqPguv17bvbfmr3Lr+h5UMgPVoPXQ3qeef7AYz/4aOzw3CiVctzYA9OD3QychTk+q82XE2Xch9YvSUGMGb5P65+eB5kwL7CFo9gb4bqNOLD29kcGS433fDj7A+vnQo2aUaaSFifkXITdEXoTRoHg1WivYRR5ZmOgOBhWrThXbi93SjlNG7DinlJdrkFp1vJZXjamFwOikVITsWtPm4Gz0ziJKwLahes8XmeOuEEGjSvCahDDH2i827LsFTs/45XsDkih1CZTXmAJ497K3nB3izrXl9/3IA9aIFCrbgUr9rh2AnpNCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00000Y","name":"pumnunsig00000Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7c7d5ebb-746e-4e95-a497-75882a9ddcba","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"01e3b399-4f7a-48f9-a196-d9e28c98fa5e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvMxr7qL4OBp/0pDch2TtIUDf8ilfeotRBF8wH3zKMDrZkJLoKL7/YQeXHSv3v9Y/iEg34/bFS3wUQRvx6boBQNMfJyj7znHotNAHY/GsEA9AuUw7WV06uLmB/20PfX48pkEuVghmaYyvVfT+OaS/Voi+537gOHZ3tJOPr5x5anzvynTw9Xc8DRA7nOsO3IGzDLw2AfQdl0HiFiLIcJ5dqNnhwRqpEOLuEgXeF/X0fxGEH6NgUdI+ckQ5Eq0H3WowUdH5DFMtmF1mVUAzosBD56FifmdJ9+suDB9euYPvY0c4m80mJrKnKv85NAtdv7iVTwidE/pSJaV8cPNZh+Yx8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002B","name":"pumnunsig00002B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ef9285e2-1722-4861-a05b-497537625193","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"03bbae67-208e-4cb5-812a-4ee3f55f5297","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0aZMhrDPVd6WZF3CtrUy63r8vN4DAQ/8tgVe+ASfMvPJXeiQAiEDfHPtSMAsIKvcnOH4//UlyZE8YhgZvGFH2Ryia8F81q01q/+I2zZ3Bkzpyopjh7YaTYCRHvMH6WHzLhGMqokJ0Fsr31rlxBbAiVNKesk9of9JMCZsxrpLxc0FeygACKXZ5mqVPf71Ud+dqrH/J/X38vQqji01kluEEtqaC0N5SGwTt7coBasWCWkWlhzYZ0tW81s9MNW1iQYxDw695eAqbNbA1jRJ8U9TS0Q6KBO21yGl4RepcyntPCx3UGtM0bsJPvXmKM61F12og+nTQnUoVj9KP+EF8uMlKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002K","name":"pumnamuns00002K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7587fd95-cb3c-40e7-94c2-342e2bc6ce4d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002K","machineFqdn":"pumnamuns00002K","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002K"},"vmId":"76f3d643-9200-4b59-8626-f97588308780","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5IrdcjrWnpAZPp/hUPVrD//vdQ2AmypOOw5fCrygSRtPjW5/GeKaVL1Om8kWfX050K1q9MOvnv8kDHj+CXBAIw52BYzjBVNmbwcmLnkeW2rR+J3dnL+NriH4ytk9+FsDVWZtV5QxjbSVhGDn39ziVYrx7EG06X1CNnJmx33t/dDUf76Q9aqzOgCUeyAxIQAYa/jXHVC++GrPF5GWi+L7OEXHmqFdniMImKqCxaaWgbcOhUYa/lK4OoyltOYWrtM3en9/ylC2yEjLd3LHuRrW2k3Z5sA4T7wpU1M7j59dunv64JGhs+IOxJjYduDgMpR2nQiqNWsNbGM0K5pUb3zcUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001L","name":"pumnamuns00001L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2b2c770b-61c5-4c04-b200-547a54c186e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001L","machineFqdn":"pumnamuns00001L","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001L"},"vmId":"62618401-8fee-4329-b4cb-03b461f68b2c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv5z+EWAUKadESqhxN9CxRgZxiQxnOo5luC1xb2YUiCwJ5YiAisDdb99HoqQi8NoRH6QwYAOGYj7jEqRNVpK4FHTbGcHFNL6JjPWkH5Qdsferdhir3/iGMCXlBx4JL/3MDJ9/bMRKVdnOckM77V1sJhGs/V2rEz0s3ZO86r+aIPAr3si9fyNpvR7DQiVqq1/pSt8zNyMNOj3PeTpK2fK8FPkScVV5UlrdlgOa5L+FlE72fxFQiqRKpumZnaHqSIMP2Z/lk7khiK74Laf6mptFqiwLfsCyVTyEYdIev4jsNclHUyYeBgKxjFhfBpmYozUjvVfkfsxVKMPGKP9TzIMyBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig000016","name":"pumnunsig000016","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9fb53797-e222-48d2-b433-7ac8c7a119f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c5811569-dc55-49ea-a55e-692367ca7233","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyAEvn5tcNxSce/NbXYSkim1psnczbzTLfQP9ARIkqTxgRmOyP96YRq18rI2B3xiWjoKt2Hvc3eibCaUHfyJYpE/hTgC0FytiDhLAmcwOzLhMtVG3L4bKjVbTh1W4E+ZYTXu99VVmSULJtKgi4wPrtdS8AeL3UuDGRXwkZulUSKCAaOZTsxsjj5OZpxf2XWTEplqPVxAsnzY+T3QmGmPL3A4JTjujoZV5wgUahRpYsWgHNgLp4ryFSxd1AaDGlf2Og4TqOSWEA+0nRb1HYpA8dFAAivoHrGjrQAs4kfDqoBNLm4yUlBtAGrzblIgY3/CWNltHZnDcnP5zsqK7j495PwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002N","name":"pumnunsig00002N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"53692763-94e7-4014-aa4f-a09eddc5ede2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"71ec0cb9-8abb-414d-80b3-489b4b76d046","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzv5SkP22ybxmTpcO0mjnFya38MN6on1uyCQTkGUM0ysGkitKjsq4ABd+Q7S8kxFtocXUTWHZ6r0BLWmzS4JYENgPzBpeenLz4OEVuRoWxIjrnknlD5CE2238SDnYBHp5X51sIZz8YJhrbeko6HM0cCdkSK/c7FBHp43758hR3AZs16icMxV4QnzvgqI9JNila8aw/T7CwqxI9l84rcHWrPk8ShCkcxL+w3Gaz73+REZMcaVca3sb1pYOv4sbLG05TANkLdmo+mV4BhI+RFY1tlGZKUh6CfSYD49Nt3E9eVxDR4ynODBRFTfIYmnPrw0kRYs15yg8krocZ7B5wAqyaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002U","name":"pumnamuns00002U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1af6cd9f-5aaa-4931-8e48-43a7b994640d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002U","machineFqdn":"pumnamuns00002U","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002U"},"vmId":"207def81-da62-42db-b5f6-19423a301372","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7zfKg/wD5E2cW68rCbHIjIdyUO42tlOvaluXnVZFSfsbifRd3KDAEFpmKZHihHqMP/WocNl/fdUqTafJqzl/ZpN2d5x6+RzBQXGu++Gb6o0MTf1ma9z8lxZefS7l9DqWl+p1CcMxAcraIr6QCSjAhpz4T69Q/X4x5m8BFV44gU2XQCcvJ7kiaW7hvz5OBzWWhn0lqkVuh90ghMaZQ4YaGgkOAjppBjsDxO+S4aMV3uvAn1hDCisq50a35YWbJhO0tDOdDRb/McKx3AvApUOiq9GCankgHXZNp2vSsmmyRJMNwwWv4/oDgo4Vnb7bsuENolhWHsXUvoLSzs+hlKJXtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000D","name":"pumnamuns00000D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"82945939-5d2d-4cf4-a68c-65287767ec98","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000D","machineFqdn":"pumnamuns00000D","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000D"},"vmId":"271355d6-cb2c-4d5a-b5c6-cf781e7b936c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2931WwWuCughyc4Q86g+IT8ctT/cwOXw0+S/pfC4BywztVXcdBCgdR1Q/sU0D6pKg2NW6hIrPMbRRQHEp1mOy/UlU7snQsutQJn7MCp+/+GH4iCdnM9LG9dxOr/8VpDQGyB+hNtKghzF1H0fxLwqgEI2WMFsC+KRt3YBev70gNiYCSQ6eXFTzl+AKd//Uxcrcopz3Dv7LMEhYodAIE9T6q/u434AzRMi8mxlfoCsBJu1TqSYVRwnW2FsK6e4jJQCf05G8vraZ0z3TiVyfx3L2FpOb5aHHQTSIYtKEhuirkiC1sLTXjlrBcb5KM0G8/fDgTw/aLwecH7/jEuF95aZFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003A","name":"pumnamuns00003A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"11d6f069-6b21-43d9-8c88-cd59539c83e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d48bf163-5fba-48ac-976a-53057331a374","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2Wgd+2nSWTXvn7x4cCPJaKzMHqPkbl0rOs56ZPJ+fOvrg5oDg+hMQAOW9UCxMQcWWJECcL5Px5rTJ49mS2yW18r5FdnedjsPV6aw56Jttfz2yZTnfiweBX88s+QG9GTePm+XyNzuTJgb11luUeCI2O1Npm9kYWR8eDRF3+eyFS3SMUUMLugb/UjwQMbFHK+RcjjbK08At4n/0Fu6GFl4PmKsvrxwlVUqDELoiCiFZFB5bwgHZf5ipkcS4rT5fjEk9HbRIz3tPKSkK7QLA1KRlu54aNLE+2KB4rK8i++G0lSwBlYAzK1tAO/Tbdb0aoaLCmsG3hklbTA5wpSCW6U/4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00001L","name":"pumnunsig00001L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"907c51b5-6d92-432c-9e6e-7aa1ba842702","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1cd05fdf-a614-4f88-9567-a185a318bcf5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2zgxtyW2mzPoAmu4oPNjs0di9Q2v7SfCmiog7o1OtbjQiRyxXG+0Ge8sWdO7TZ1j0wUrIycwHwXaVlaVi1/8w+YWcW0LFZhMV59ubpJOakwSDzk901SSlj4sufbY1IDmbxz/SD5E+X9st9GLovhFbsjp2V31do1LNSN5YxkeOzW9vlYw9J7cVUVZl2Gh9X+ue+QE/LUKPbt2cybXGNg9dHBHF+0VDoo9meMek8nj02dwKNkgKWHM3cId7aIlQLkYhndiJeVo1/2LvfO3b5LQkrg/8L2ZWHhgo8rpGyz5tLkp5oRRTFUuhPBRU9rL+bMt8e6K9Dx+/kUqYDBVzgyJswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000015","name":"pumnamuns000015","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e6c33a9c-d502-499b-a276-55c66dd7ea7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000015","machineFqdn":"pumnamuns000015","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000015"},"vmId":"f6bd274e-232a-4395-adcd-07b31b86843a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtoBNDhAgf1nk1nRzOKCqbQgcTvVjL3Gls9XaQacUzEN6VZ23/mnSUKWYEqLF8CH837Aj8KVqtEdIKkncTolFZftM7pbJYWxKiVLhrK87a125e+U7PPo1MIYE23Bhwno8+i7DNo5GpTdOkemD6FK4amkmfn2n+A9Pq1skcrGSCZAUSQFcfUdkybwspiKgNHjeKao0v3+F86DgaQuZn23rbbX3O8uW/OBA8Bq9cX0TBOmRynM4qAlW6oxJzpLuDGSpnEgPrhiZDrp9JWgD0lg00df5N/ogJV+En+Wz9+rgoyHsNq++W1R5yzoUgro3KECBCexIiCZyr1FEFhuRWlkR9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001V","name":"pumnamuns00001V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c825e09a-5dc5-46d6-804b-76ee2ce21539","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001V","machineFqdn":"pumnamuns00001V","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001V"},"vmId":"5500351f-adb8-44aa-b1c6-91a5e970bd17","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA44Qd2JFFmVnIPAJ3INAys+V7Ls3nkicMCU+10x7qkMvQiLVsmjnEGk81VoozI1bYkNRG9DNj5gwFCK21Zq7fBLls2rFLm/MAu7er4hgP/PtIHyuwdYlzPlUAyec4oKqMrTzGofzuyJRrTnFJQvMD5NXxZiix/vu3iRDV50Syos2MQXNRoH4K1RGJDnmQqn8HwN3LXJO5ogUSHjOBp/BSes0hXhFOA5147v6JAmdWdx0cb6ed5d9/ZNp/UNe3ZP8HxXr+2b1K8dvPKkMAOFzHrYCigMSqP+4OPc+uTdSMrr74Z6oGv6FD9qlQeZKLnfLDw7bKDhq9q4U4Cu8tiCOb9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig000021","name":"pumnunsig000021","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b883d5f5-90c0-493f-af53-28a8d7de017b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"9554d6d0-7990-4d61-a54f-3c589162c177","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwFkCP6C7JHYBv3Jnf4mUuY5uosTZCr8pKBkqmO2t9caRDKNNWUGRG3eJbm7Vdf18zYE4eMXk+eqRaCR2Hz5GJVNFrtB4LDw593rhxyJPUVyEsgfRnFzZWR7sOgUSJ55Ctm/r9/QrSXsjpCoNyTvhnHna7HSl+SzjlHFkAT6mfkPkb8cBahejJHMMi2M/TYS/9PGcPvp6AfsaiCbFawW6NZqheoHhH7YH9wr2LXK+OtEmby9SMFbj1YD1MpdADVBuYjKt/e4x8KDpoujutWtqIsW1kJF5gjkUr9cC3Zff2HuneF9UZX7M9AdzHQsAmD2OhMQdvFZufk9VGuS7L/X8wQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000018","name":"ukspumuks000018","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"914a3d3c-bfce-4e3e-8fe1-1d745f09364e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5dbf4686-c5d5-4ebe-a4cf-1b10f0608088","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy5F8GrmDhyg/7fxeHWt2muul8kHVjZHdkB/ed3xYIldaOtNr3RlUjGTEje+/hsQZS2EV+gWE1ZFIPnWvDPgeX+8ziBvSp7JENUivcwjlikxPRK9+OfhZMgiR74K434C9iTVLvJGfqpKb0EhthKIUHLp8Mi2Ji5l12BMyz1Gje+wAAch+Xwf6Gp6cs0A65urT3bxSNO4r7d/r1B7fIeNjTRuxahx4h5Jab8u7MW9Hj9N8gU0iEhXRd3EnUQBgz2/uaOkPF3apL3F3ggjiN8vwaaAxktslS4p9roWPv6ZgJCJPT35hUTWa1yZPcxSlR/iqVpYQC0pC8GOMSI5Xa63tGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002D","name":"ukspumuks00002D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f1088dd2-e316-46be-a00c-56599ffc4c90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5504bcc9-2a88-449c-9231-bcbdbcb224ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtwwNJqLwjNrCzEgXmAFqwxXsU1cz3wGMcYtXZb0+1OapnSu0bKYiu7sje74+QRpPVQ2ul3QyP2jzr0cC3zWrNVXZvVmlTL4SDM5u2779Lsil8LTz8PLxcxzm3ajkvaU2hGNn87Z628y2CDzORxzowBNys20K8Du5HWvln7FPcCGrXk6lsJ/u0rQvRSI0aWyEV2N0/xG7FyV9XyaSCTomBoytzngfXHhIU2jIfOR+9pk1qTHzTP/EN+iuwDxEy6n6MHyN3Q7icJSG2Xkjxm5bBuHEvwe0dteay8BlPpE9ovpcHDaEb93q4fBKAGqJYyLiuYdXo0Nqt2MrF5zdGA4pgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000000","name":"wepumwe2r000000","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e92338ce-0fff-4b2f-a6cd-04c5a6da778d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"7e5fa016-052b-4bce-9882-20c0aace745e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9A160cJ/ufnZKWYYnnuVs0KzhZLI/JwBCq3Bcju5UJzwLXlH6//GUD7mO5QotDQyK+9fvkl6Qys6Q6F5cMq0l56g9YHMgg5/CBSZDPNViPcNv1JePd9DBWaPCO4wW89oprxSgXvoMW0JGz4EMqMzsWLMldNks76vfEaOUFozZqOV+wSdSi1bD2FNV3CsfV1CLeF112vo1JsqTfmaq06vpD+IqsFziN3/lzDticD9EQLz+GSsEtWtz6qkYKCS1qOypmaz0uloMHpUg5UVHSWT37h6q3Hzpi/z/0Wvy4lEthWwTcyJHB/i8KP/BxeOiDcEzfmak6XpfqMItrZHfixLmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002E","name":"pumnamuns00002E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"bda05194-d67d-4045-b265-c2fd482ea48a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002E","machineFqdn":"pumnamuns00002E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002E"},"vmId":"166fe35f-8959-484b-ad73-973066f25595","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4cgp06aOj+NKbeNK1/y9pMDZV/kO7FsSGGGoKYpJe8c0TANtYy5Q1Np5j99GOaYR86CyivBDounrnu2uRVCOJ4G8aqFsMsVA4m+vUBvfGAg+RmReX48r1IKj9e40Te+ROtyIRDq6ApGsTZhLfqLw7mofMjOytX9gkj6SfXbMW+xwgNvxh8z+d9lozWxJp+vriTK40hZjyiCxssCZ4UsXJ1khcGOiYI0QXZlpj+1JcYTbgRICJrodSnhm45XB1yUDbC1kTKMivNOCpxlg75cotxUwXU1TWBsr6tkaGBvoKrWqdl0hYcmyYrVJto+6URSjH2f3wE4s01q0UMW5RxEONwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002I","name":"wepumwe2r00002I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"83f0d33a-8c51-4491-95ce-9dced04a628c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5298b273-7172-44fb-a485-9ca467b5d0ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5itpM8Q1PT5ov1Vp5K76LEoueeLhtZGff3jY5glOyFLxjhkPcvFqTendGvJWUr+MVbdVohELvy3DSSyj5vse1mOPKyq8dje9xynlrRP8Hk8zx/qJipoRk5ppUX4Nd+/7X/BZ1y5L8SNt+rCSNx5hnbkTUulJ2eqTVEdfa7r5V8ipjl7BSZX4YfdJBgtw4W3/Q5NdmV2DqzSn56tS3sAYgYn6ndv1AsyGwaHYmJQySTgu9ddqPSSk4mTBqF7gKdoBuMrRX7jK9AV8iEXfLCApv7nxSIuudCp39bSjv4PyUljbAlbrto4PaBnKUX7XdA024tZwqbBrk/CNP2RxJRuOrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000Y","name":"pumnamuns00000Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d3302301-9618-4918-8f5f-99eace1763d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000Y","machineFqdn":"pumnamuns00000Y","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000Y"},"vmId":"fd39b13b-eb46-4a05-8b5f-1bc082fe8133","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyPvFCBCh6N5QULX1mHzrQC2bPzVAvyKD32aJSVRPNfO0lGVI0a8BCjeqzxZalSEXty/bQOFgmenFaxMGIvj3YPuhOkFRboNmm6FuHSayUkrj2i0xEPp4b3OOFz3/AKp0oTnd57S4vkIYaTpRE69SHGBF/kog0A3YUhf9BHvTRnmJY0y1ft6OPa9sbbWagpMNg7r8m43jyxUaPc5Sz4bz7lpibitOCbrirIK8wDSfMH+vZIzDhRi70kgmOKHAfT/krafTa1f+n4CTW7qf+A8qmJqGJT7yaoH3I9NRNsJICA+WP0KMMiJnqDxm+yLcDHeJXXx+2O51TqhLzJ+u6vrYOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000X","name":"pumnamuns00000X","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0571d499-0753-4a61-ba64-ae214688d41b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000X","machineFqdn":"pumnamuns00000X","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000X"},"vmId":"b3781bd0-ffd5-46c5-8d8f-937e94a1eeba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0s6pdoToypMOwHV9xrsd2C3lziym8Vm/wF4TsQA50pYpw/v3WTYOSwhWAdMgLFlgPGQ255zv1tVQ0VWdR5DTs/s+8QA+CR7LM1c16s9fU4m+/GJW6V+0ScUSnUgeTVmSbOFOgbTGi/ENzJkf80yUQwVaQp1ZXBdGu2SZOejzOXH69TDBW0LZVAETjkGp1FJGoicO+V9Wb2HnkhesUCgaX0oUC8dQCsNDrikmNpHGhCCxt/imEBeGQPvQrDIbY0LHU0xVVn1n/8axgVLh04jBrdusFX2N91cdeNdOYyuxJhikCw8pndFBLDGLVu7nMnyOuQ0zW9poqDS5EYooNHDU+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000039","name":"pumnamuns000039","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"cb7ee615-a891-4059-b93e-6ab584d67d8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000039","machineFqdn":"pumnamuns000039","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000039"},"vmId":"dc43977d-cd1a-4f60-9bba-390f9efadecd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlvC3SWYcA2phjETFlhi8Trozcf+EuibJ6EKsc+Kup/QUO8kjgFCd9uWi2Vu3BCMWIG97Lzwrer2DDlMD3ivdKsK8QFE/wJXq223rdZLXg4gZIKFGaHM9jZmOcDod/u8nX/Fg9aVhDwqj0lqAnUPmNqr55QmXhynd2uWLSFmmPFBm1J1JcTOJZ96NsPNjr0xYSsk3zt1+FGc96qy1az1qvppRkv0Per3yfViajZe4oyV2NHG239NHtVsB+R5gYYeIvSxqC9U+l64Bc8Nb3lUjSlr1zP5CM/xzITRkKKNNpDnuGujPo2zsrdA306X1NwNuQikoy9HaNWqy9EfwasvHxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000036","name":"pumnamuns000036","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"99c21b67-cb0b-4030-8af9-d8fd4a8b56c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000036","machineFqdn":"pumnamuns000036","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000036"},"vmId":"888825a9-4f8f-428f-aab1-cac112e02c55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuvG3dXq4sE3izg7FAtdN8oeV6tK+CBOH6XQuKnOEzBgrYfPxflmwZSMaN1ECP1YgPgHGDSjbz5c9VoMveSNMZ6GM5YG7kBsYwWs44FMJ9LGddQoY6bTwEMfKkHluaX/sng6IO0974F62wFZ92kT15q8yIel+6KKQsK4ecWa/bcW9MpbBkUy/Tpz6cwWbc1zXfkxJN4wpn+mWUzNEavUq9cUIvx/YhmynMfZ78jDrJCN6HzDiqwSSshbeOi9k8TSFw4INAW9ALenWBPLjbQP4Cwungasv0IA1uXkK28btT02D7a9b2UC8M2+u2RuZwbUp6g8I+VyioLU4et5VxrIwFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000N","name":"ukspumuks00000N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4f6adb7b-3361-4940-a7c2-31cc87d6e534","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"db22bd74-7023-4bfe-a59b-3ee0322fac02","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9X2w5mqeeci+GctybULAIDtTTY5kPA9zxE9CSBaSBmXPJ6pmCsh/86RCsJkanmmxtUpmKLZ2BCj3Mvf7E7mSuqvn9Q7bxG6Wx1V9bVIr+B9E4/wyO1ZBl7nga793iDFITsJXnCLa8zDguIAnY1JxRAXbqBEOT6+PYOHvrLqGS7xkODHK88OwRu/17nnFigJyWD+JUJDKs0x0RY/dq85LOapTWeMGckhvLiVx+jobD6eh+zsDkfF0BFr0QlbnEIXZ943p4WZr425gE5FIQFJplVk0lltPWzD8RNNN0RRBd/PAHihr7SoiY66CYwtthJdm/U9l9IUgmt1vG/e6t3ahiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003K","name":"pumnamuns00003K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b37bbf74-19fc-4a35-a8fe-3445ce022698","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00003K","machineFqdn":"pumnamuns00003K","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003K"},"vmId":"e4d2452f-4118-413e-9479-9dc08075578c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Zpe4rTo7jKbr8sQ2OT2fKYO3TcOd5jVHZ94q9O0wmX3PkinZRKtETLyJQWNRZO0i39+oCAFVFE6oBXRIdy2d1iKF2MlkTTEZ1Sn2SALPo+iqOSHRDtYUsYTRcRIk7yM64z4N1BUGO5pRVptehMmYTv7lgAjDR0vqnnRVvz+DCLXE7T/xCDEhgUazi+o18EioZNNLEYw+pCvRxVG9cY3fS2LNmZ2UjweKeAztR8C+96EHq9Hx7g8kht3A3hBb77qBQnq1lH2wQCqgN57CM9YYiNVxtG0sAHuixngZkgYUJ4dw1+qi/M5K7ScwTkKeFkkavDtCKuRJxhlf/FNT0IN6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000012","name":"ukspumuks000012","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"16053790-4e3c-4cf9-9a4f-9f0a7fbf8abb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"671ce4b3-c591-4ef6-b839-4e88113b0bce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDgPwkUb13m0PdcljK6tWCuIY17gyBPkyCBuE+bqikVey6nH3U9cb5LMs0i9Bz45B32ocr+CqoQvgp4pKEw1cdofb3cybvKbdgusd/00afrDFsTPVzBEVetSSSqI4mNu0XYWkwD7+qsA++yFLHC5jUxGQXcz7+3eLdOV6boKuFNZJDqdFpxVnJdTu67NEK4ayxW37qS6hHaJpXWwm2jaxN5roRu3BIVPNmFkudwQIdPRZhcVV8w/Ip64sIMPfi6aLzRLi5SCjBitvgKH1aYdaVJsfiqMnljAbQ751+Y7ev0eAtTKGiT1Ks2bXrugzX8YJDLOx1C6tumELuARjoQd/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001W","name":"nepumne2r00001W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0c1a540e-bffe-4eee-a713-38e71abe4d2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"68d1478c-bb23-42cb-9ff4-7d4ede69218f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAziQincZ82YadOdQTVUx/Nke7QkWtJfxyw7Oq+gmqeOvBIkaNrVSfT93KezYXmLIeNOhRrNTg9zkvImcMEzXO7NCUhDTiqF7GRd5qDb+mAisy/vTdOmb10Nv1PV2USLNRS0tDbVK/GNjeOjqb2nwuyxtK//y4h2gEe3soVmwdMtxC/OCPAp4s26u4RQlQECAhTKzccveDe7nTRriS4VrZqZsRzip32D0V2o3hlJlHDRMRSfyEaAWJ/LXzJ1hycaIaRsKqBTc2kOI6ththsHilsW5OZ2QWKUnp/IhJcaugEigBzZcSnqDaLnMffgDBoT7MWitQbiyqZEBMHJfXMxqG/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000G","name":"pumnamuns00000G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2029515d-13a0-4d02-8528-c7d7c979289b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00000G","machineFqdn":"pumnamuns00000G","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000G"},"vmId":"32989712-029b-4eb4-a753-d2e14a437845","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1zXaS3octL76VrrtzpV/oX3VL7ap/fZWxDQ08F3rIGxdroc/f8f4UjnaoHWErRAKNljwKZskKokEx2HPV/FjmmLYO4UUSq24rAI20jZ+e76MqQKpBvGeKwgIR7yZFn+tPaUz/MNf7J8BJXw/7sFt9v+f8oBwbvAwV9qMWjjCDihpB8iy5Mgd4U7VZg72sSvvTR0ju6bn+EtlhfzWkOHOlU7JCi1uQwLTbLCRD8XLWNDeF3RQEdARm1teKAMiZKH4hcteuEgOiXm8oKxLMBtY3xEjaeXxl7bP4gKA7RVHcpzVmZNm6QWISFyCyf44fxIavLknasL4gqebulPJKzIuMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000028","name":"wepumwe2r000028","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dd10524e-dd25-4040-a696-a4ddbcb54dd4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"91f397c4-ebf7-4a17-a91c-d5d053f52147","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAty8pCqTF9AEogItBRbLeWPGadXbFxS05AwevxSPGNZEnsV4t77wRKzHJWQsmzguJkchs8P7I1xhhdqICrj43rLiutTVZEkmI+bx+T5OMTAXFEixei0/a8AkBo+XCotMYHyl9MzIzk7WUdSouUzhqIJupgEJOzjJdD24adAmJP0Te1tpsHfmK25PFE+BttU+IvSj60apGw6deTUQ3tEY1fGxPu1nbGNFSYs57164bJzOv7sGxXF6OnLBPZoli2yzcK87XWDIzvxKo4+D6fKZjTU3ARPJePR0hK9dgO3izAdEfuvvLuckx+NkNnRQgm6fLCHDoi86S/U3mVRFGTrqf8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001B","name":"ukspumuks00001B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4a325fd0-d2e8-4603-8773-b1b4927980b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4d48e6d8-cf59-44ce-a65b-eb811586e66c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo8bzViSE5OQyMRO4wevfWs1wNSplDF+7TS2XuAtcpQxOhn0POH5JDXlysBPV9yD2iOfDF39cDqg1DdV4bY7aUi2e7Xw/2iR1svjQcedqmK30Ge5e/7srDDUyz+l0Sq8ujsjSYIsUM+7YSGl26XXcw1sGAmHM7ERC8juwqk9qD6qjDU0d5+1KyJHMFP8bLdXUw45tJMpFIvrmCDBotulrd6LGqlSQ0Wd3+vKrypVb70T4zxoImF9opOWyLW5OxILqsuEjrsOWakwp4iytBIhQAs9JXNzasm4VqvQ+DwMS27YCKfFJIjXdld/EAZ/KALJxjUPOtcJBsP02vIvkOxOn1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002E","name":"wepumwe2r00002E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"802b2b2f-2007-48c4-ba21-c6f6ecae3763","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fb97eb64-5d3f-4839-80c9-afe3800d447b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr0XezIx0W4dLi1+D+GEOrJ8CcSceGxPiuKysschFe8tTobtKE4GG03Y/qsGo2HBzkfaBgixNj5ORFPNfuEU9V8s9GEShQJVTUxUmYpWW9ESSkuuFVUs92o7mdcNl0qjsU14OBiHSEjgtDH3Y5PnFw7PdKWbfk/Jbv0qEH4s6L2vi8JKTWDQ8lSmXgy81JNgeXyrS0kAfitzbDi7TDAO2CSr6PK9PwHjLxCB2iqoJPQQz4GRirsrUCHMJ+8RoxkD31+BkenV6rDXpg46tkzGi738J1CeILVG6UCs3JFSEGGjSwziT1Zkxj4EZrc90g9tQGtLtDFQ6Kj892erEoDA8KQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000032","name":"nepumne2r000032","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9fa097fa-86bc-4796-8670-ad49fd04d1d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5cdfc432-3eee-4ea0-8c55-502cd1e3e37b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA29iuRChK+Ap9U9uCXdis5MnWIZNa9kfCMFcdW9FPjiw6Ten/QnZ7cfbh+rGtq4GI/7wnNNThtxSPbcYKFjWsEyqJgP74lSvUQOZoyxlxcV3BSu4SaEjwKim1fFrRNXWC9mSvRJmWMM7cO8J6gxcNBNvb0Zu4FkSWXlx8O1QkaPm9dL7V8SlWlsr/J0/3OkBWPj11QDURkzMKF49To+yHtxJEHBNrLAV79KYn7qTVk5/k4s0KbC/6Eb999ZsAk26xQHL/i/sPDQnakjyvqnEzL2fbH6/2vjlVO5PDUi2pkTmwzAbG7NO5b7kbP60qYSf4uF0MqDrcc52FwxAKp0jdvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000K","name":"ukspumuks00000K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6f51ad86-aed6-490a-a762-b43e8df69e85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6c11d7cf-730a-42a9-8f78-d0ff8c396cb3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzXPoNsrK26Db0cz5c5MTtBcD3hZFAnhES5fywRkjKqXYfXEtFyGJBn3xr2ke4OvbgunAFjXXCrKrYEFYs+u5ESwoX1hv5Z1xN5zysfoD6CuTrwA63ZrB1jL0wyO1INgrF/gXaATIEy9AKUO0lbNIMuJeo5rRyASoJPPmN80ORdxkBCD3hlO/JtY1wKh89LwxJmKU/0XMR+p5PmB8yNBO2CF5/b96nI1G9l7Fn9Z6QjGuMrquRhesdlr9fNjK5s6e23++elVQhLIuuYnOJM3v7N0gDCazH0pAqhP4u1PWrHqXjAFwxmNNUO5mn7Xa4kL1bRwcszUV+WvV2qEZrzv5NQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002U","name":"wepumwe2r00002U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"41984060-4abf-4c44-94b6-ca7c17ae2a10","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"faa1b5d0-b232-49f7-a076-9330f210d81e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy8FCcWrdwt/aJtj+T0w/QqILs9+iicjnNxd/qlQgXBleyhgH80/zLlE08IZyK8Yi/QfguQSNdqEFtAMQRWRz0D+9GL5MFYS8i/LKNrXkS2FBKIBYkkQPmKnz81p1Ae1WhylDYaIH8/Ws7SgGX0FX3YH3a3WjVaun0CgKzuEsmdwyrqgOioEWZPoL0i4MWfCm25REyH4Mk8nwIc2GFFABbrNQGCPWTPTyhcIw3tlAD6LCRPU6NA89mdpfAk8JMsaJUErgIXkMfVRyfuCzbN4vIOPjTnVjW0VAsrXn9OCohpiuT8/1YvfGH2DilibxMxREYMi1i6vAQugKh3ZvIKFekQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000010","name":"wepumwe2r000010","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"eb4a3b0c-9a6d-403e-8c80-be69374ab330","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"2c0993e8-6c58-4108-89bc-89cf5af4bcec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr+Uxbg2aWrcrxC25jQL2lvz1NKdHO4aUuODtYZPV7Ye2vHetOq/kDWA21wjEYji39ctbYD8QchggMquo/Ik7SpmqpSJ9eblBZZ1XUzcNWdV15AKsHAf3ajxU0G9lfPxwHDoeImfsI82NuZXMhFinOVjrsJQ+/CeoNouCjeCcOr6GLvNIJvEq9sHtIl+w21epa1WoUDNgGio2OPg59eXjW9/GM5D0T+7XYYVKxx8UeoS8HDcx++WsumgDOsGQm9NPbBrYEZn3feDyVFwxEFjSRSgBqRfkSKGNKVZx1NVrsLPszOO3IypzlQa9OkisSLnkdOrPF0Ri77P/3nUFQlQnBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002T","name":"nepumne2r00002T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4d7a73d7-dba7-4d86-98fe-88cce8bd2427","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5f30e2b5-fcd4-4d56-ab2b-5961bcf584a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv+nsNv/qUVysvvAdalF3YeyauhaWbrORvMfCoszUHskOaVZXcScVvMl1e1xzw6dr6RUc1YZACPilNRJmPo5Eda9BUHIGQI0Ipt6cjPL+/TrA9x9ij7A5Fb89JeU2kADHJNSYszhe9mCOILYep3sj0SANodY1iGgusf0jIH2SgW8ZSvY+ucdUaw4pUKOyyQnSYzPmO6Ox/FtqEEUMHifaFcuKys5j8BSwsRaGLNuNv3qXyVTEibdmnuwtnRZR4qtCkreYryv8KbDos1ZsGF6vdAGwem/Qy/7on9IGkcU+CdCg2jiRNxro5B7pPRgvlgNJ5NJtoFWOI0hMgtmf9Ect8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001C","name":"ukspumuks00001C","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fd23b70f-23a4-41df-b27f-da58542504eb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c8e3cb09-8bb6-4782-ba77-7082e657b775","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAycwYqhGLthu8YGtquZ4zFFCXmpj4eF5Jn2OCrv0fmaoLrf6defs2kOcvaGdKPKBdITyJM3jzgYHB/X284zlnzbqsRIR8irU6atAcCAu8eYcNkdapt0gVkSWkh3dPsztsrIZZdtsLByiGo01V5UY2qky1Vb6s7NwFbacvfX9Xy961kzE7ymNYuY9BMQJBGzzePqGPZGV7i10LcYVdRzOXm7KjNldH+AUNKRQqCkCnEeFrij2WqjKZrqMHYoOOqPPT8IYHlxFP6ZMkCusNP+y0R7WxAfki4wr3BbXzNmJCoe0/adqJLOYgMdo7XoZwl1HJ6k+hVQf/JbiQ/tVCM6SUjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002M","name":"nepumne2r00002M","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"baf1fa2b-a7ec-4cf8-9e86-839f9798f639","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c30381fc-cbff-482f-8a4b-15ecd85e3f1c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9w77wa/OiTo7E3Jp5QkZTypPFaQL2vXT+PD2Ap25gqgNhEXZrw6W7CpMovqJwh10N14Fy9E74iV6TxjjUTRSdkCKjzqhX9ZfV2aew/aIoZ/uy7sLLJrS4tC2hVU6gLVboE3CJbn5OZ0KOa+3SyjgB3yKw8Zg20SAJgp/y/2QZ1Us1e+ksFz7QwzYNIKXSjJcDY0xJq82WmIFKwFtIW60BCx+ogH7NsjJ786TNqrytxOtWABAIkdU2LkCCOlWdJ6qJTEgEStmtGcFOr7pkeaf3qkrzDa8hpcFKBqzrn8D6NVRse9c0xjHVFpWmhONcEL5dLeSRBngw2ZG8f4kaGMRIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000029","name":"ukspumuks000029","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e7e1f52d-1be1-4c3f-8d2c-9a6c4597f8fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"06ec0c9f-f3bf-4b82-ba9e-bc8ce3b34cf7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzXiPORJB5qI4wJ7jeIAfphUwCiY71AxEU9ff1dk0geiwg8ira4NQlg8dVQLAOpaeuM4cLlY2nTYj72dppYwOsBpmTNLcOxZGhh+lrpN94qFLQj7ntEml/VJ6Uc8t57g5K1Jt6PGvzu4iMrF36Y4dNogdfaDQUdDbyveVMfavczKV2OQ0QWSdrneA3aB6iR0sXt8Vhlqk05KLWexfZs3JQ8/mLJPPX0s6TynDSMrDXZvyL54DzIAGOMDdVAJA+PFPdr/PdINzs+gtG70rdso6AIIGNblKDi/6iSg1OCQMyj/uWFjxGelq/m9Z8NsH+Z8Cns5U7TeLZPyJQ6fr5wv6EwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002L","name":"nepumne2r00002L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9da63a2f-65db-40be-8183-53bee7d82d9c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"9915298d-ed81-44f6-8588-8ee70d52c983","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtvUaCQ9FHHJztBhBoXQabA5U9Ww8HhxrWLHYJDDy/K5rLZ9ZE67eRIt3OsITTKuYSNuvuJjMJysfE2f6U1EpsF7x4RVdgZFoMuEOngzGsJb8YthBM/byxHesoqaOg3OM14Mk51MA9IcTQWjpvwLqwXwm3TEZehrDAks/2Xm1xH4jMN4fdrhTW6QziRS/dJuuWZKfep5tsKoL4V0zB0xsbU3NU6zDcGeWZRqMoXQW/aJYyWLP1uwulGve3P3P8GxUp/LXQ+rESo6BTjItznXNDZplnxNKVHSnWIMhaj+vUKYKOxMTolCcYHxD9oC4EUW2ELXMgkwStCjE3a5bPull1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001J","name":"nepumne2r00001J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3829ce93-0895-4970-bfd7-55ede4052d38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"38637e29-02ad-4ab9-8a3c-23f0a1b3ba14","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAurZHdD8lGhnefmsARs3JD04B3YXSYHS/HVUDRHJzITk8SH7eom2ZuNVSrV525q6VIDCG6cxVnXFYSHRYm3KrleSfUNLmSagjs6W4HUO29P74CuTE511B8p6nTJDwSbdFuQ3HlHh6RiMNSG5tX6erUZ64THvc4D5vTnIcfToy5G6Trj9JqQkc3OaXBA8I/7Ss71pLeYPWBS+CHZdmUWL1BGrlxNOEyrN71JZmlR5FdkWjQiKPQN9fDaHi/jkOyxjZiJ0xbGAAcRqSjp41XGgR8xZCu9x9lV7HXhFv+eS+QbBrnW39ZEzFwMQZj47I0zUIy3bvt6J+hAkf58sQ+KCEmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000008","name":"wepumwe2r000008","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ce46bf08-ece6-45c6-bcfb-05cd1116b9e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"779baeca-c240-4b88-9481-ceae20864a8f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmZGujIPJdnPQw0d72ibDpe2CvV1T04lP44HXKE5EVWjgqwspRYzoPIiX5qx/QO2hJaw57vphUjEAyEnkU9L3A1xwQRN8Uan9r8qrHaoz7/QgANOycghXU4lMQRHimge/nZj8Cy9Y2neRX8Qb7hr3fKk7iL73nYlhc0sbPpPQt7TtxxFIWR+FkjNu/IojWMk50dvyKE95+dUx0FmQh3g1myemShANXDcDpgWu0a1sNfWVGvK5re3dm8wUXj2SInrIZ4KMk1l3fd4ply/BoFDFGJ7OXXFw1PMtA1BosN0A1n1V1CqVZg6yEDNJ3oaeSCfXRMkgiXBtCJQd1zXVJVm4FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001V","name":"ukspumuks00001V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"94928af6-7d88-4e37-9544-a8464156d22f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"137ca9fc-0dfc-4ba7-810c-b56ea34c7174","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuZjCLYrwdYMDz4LL72XLxyJxLqRvBha7MmDPOWM+qwMMWniZGwu9O+bIdNqtSVzU1/cbaRREg6u+nbsHHQsql2+tBM3VhQLsRC9OgOYWOWjjkLsEocRnpbIFv4YEl1kbyJlMwRb3l+zSdz0o+a2r/tUXsYfsCMUWI1M5qtct+9EHOyXJCWbOrQ5ABLVfINiqGhQ7Cm8xZDnpw588c0+uOEmdXbkLdTboWhf7LnTx3U25nAp1msClsy+aRbNpq3wR3Yxt574JARePqg4CigXFEok7TnwLFpiKB14SDVchbbJ0uCMXOor7nmEPgfu6dDwKpTXQpITIbfz3WT2gUR+10wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000002","name":"ukspumuks000002","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d758e547-de22-44e5-b3da-4a68a9233f01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3bef0a80-e574-4bca-ba8f-c63de479db0d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA103UvDgVtTUOZCDwqGi36uST8T810di1BCGLY7u+jeAK7t9qeV2U1bDTywg/PtClgsQOgTTUFR4puo2vCu0XTddsvDW2Pt0NNwp45YSwGyDVV98V7zggkpmjdPSstK6Y6LCZ5aWvHBlRI84jDejKSLgjmVwDIZ5KqUImE2Ngg3zliUsZbAUylYLnP+/UfwrDHe/xN/yY6tpew5HwbLQ/QP/f13zxDUYU2m4V6LQHh7mmFLZU1x1ZUSTquenYOI5k9Rde2iuiIU95CUVqA0r6ihNmsbvPFZpzx0jcAquDm49Lyr2Ymuv498fF7zIR+ZawFnjhX/NXMyjJ2Iq4q5k0VQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00003B","name":"nepumne2r00003B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"098d084f-a700-40eb-b74c-20a9c762b6c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"629bff89-d90d-48db-8a5f-23272e0cfc93","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9DA998S6jnnytPh24t0sm79JNlZHDTb3bsjLBw3W/wx3LVO8w4cr83smNmB4wjrd+KpFFMJoVl9sb5yc4CR3ZkJ2w4chR9WVPdU0I/1E4Hl1RPMzS581+SKP1vNKCT9+fGfGcqq7BRB0OViWAg8x4Wj7bp8cNUTfkClo27OY4CoZis+Muw+qUrLw2T3MOv8dSRmsI6wtu+upedsXDLdxzsGb6LvXJk8cG0BVEU9z4hMqsXhXpakXiP6dmza36EHrPcx8gZ2MbXYvVHMkw3YiDRpmKfGyey8S6DSvCHKeXcmU9b/UbFNlnmWV6gYg5ywquUFdx8nNf5yVL6bwGl6CRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001I","name":"ukspumuks00001I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f4b3d191-6fce-4b69-9354-4ed3501737f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"7106b46e-b277-40af-94a0-0229983073da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsB8HMcm/6Jhjtsx89aqqdoM4pfzlLJL6uBZ3rk/31RaRYmGHKbAVlys0vkOSwpmM1pX25Aej5ZTeyBQzo9mZ3y3H1w2aZJoX80ufH4cRiYvVHXxRCMeo2SqGhnJuYyVamO0oY/JMCPkb4nEUEcGzk9lPRTjmBmeOZDNFLF4dzJh35zTFXJtG324VTEVi1pf3X6rG4+KNf+E7Ev2VT1xNGrwS05TWzFP7JtOYUmRgnjTksDRc1typ2dIkUXSoI7NaLWmPRtoDTZHQfhyRv3uVT3GATfOglON4EWKlcrEKOnMZy9Zh1a0Ja+2hTr5xabEUCAf3k8ntQekMsjofTknu2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00003A","name":"nepumne2r00003A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8f0ab7bb-f7a1-47dd-a195-13bcfee13b8f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"afbc2666-cec9-4411-abc0-9203cc42f5d2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt2gm001ODw0+5wAUwxpvE+XLggehOQ7Ugd3o+cS0+MlZ+yuTLoZpGQgZz4gYAdhZChWAoD+bFI2WH7aPhaOEYJtBzv590VV/epi385ubZ6HbyPO3mhvZe948mPcHXK1RQHk6LP2pmEW2d9Ofz8ESHRB4lqJkmojM8HspuD9fxlid7Z34IHEvujVrkElQRO0XyOSXtc10gD4X8oOWDT6JoMrHmvUl/rtM6POS4g0k/T2w+tZBQc/ZJfyi0nyt5b2+yoJE0DZPuttRSMgWfsMYh5znrI/1vZ4fxACbxsXwTpFkbQkVcT/sxtYlFwhvbaV9wfYB8iDHeLnNFO3OZ0if/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000026","name":"wepumwe2r000026","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8ee266ee-941b-4c03-9e37-c3e17b05160c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a2b266d2-2886-454f-9cba-c92df82de42a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvovvYjacX1lFhtOkhTj7oUYjlhWSdhlf12ad52GGwvyJiA7XkZ2GPJsf61D+SnjQYwGVGj4OQyQ0e/5xMYBu/u7yJ998utRkt8sNKWj12W2k/PozP1lMWXYdX5OYFxT7gOmUijNUk1XjwXE6eOZgs+yrmYDDxLXy3/wEX37n9KWX4Ty5LilPOYdi1NF+FqGX5McUr4rIu2iMgw4+EbK4anjqiwo3xfmpX+NBizxfAfCKny0djTEAhqFk22S7cPoMwFuRliEavuWl8dlIF8IUTxETa7EmFF3GPQ3Xl2aXGw3zczhjzdAv8KRkMiKKpoxdW1FN7BIwzqBEAB0guuCupwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002G","name":"ukspumuks00002G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2219b28a-f9e3-44f1-ad0b-193274c411ff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f01a09a3-d4f0-4f9a-90ab-a140cede0cc9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxE08wCUoA+kdVveaqmhnoBA6SCglpTifkbgp8+5upimbx0tHp7x+maQ6TzQeheP50ds2BtpCX41gsuExq794ZU1cyXgcaCaDUfRkmDTpqrR1wI4KA5e5ikKhrvdgCE0mNqnlsksegbjBkiDoAYtgtrOXHZyWK7GW6tXXzTWcvkglnJT2c2HL2qhGAXUd/mmCy9u0zKgslUZzmewxTZPpsIzJH8o39T/Dt74OMFmW6qrMzsOaCo1oazsX/po9cKr48m/OSQiSXONxnuWyU+t5/leoVSzFq6kp78MNHYNzvXwAB/wsGKAbtRLwHS2qXZ8w+3ViXCBDcXmNTLFrdvbAiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000020","name":"nepumne2r000020","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"63eaa2b6-58a3-41eb-b606-4b6abea0a118","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0ec9fa97-0d8c-4f9b-a34f-53a8574f95b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuIY5rS7mxoEQnQnPWCrC+QcxWDipmP1Bhe1ypJq3Z1nLed09f9C+SCO6AFyVTBijLze/jKthwvdsGOqs3wqiiHJMh3pw2oh0IDXf7t5wOsk0S0uxFZj1MUS+In7YOS9EW5kqFOKtzkgYLQjSDapKzaO/BLEtzOh8xedFV8JyXn/p0ic9sW16ZfYk1yKUAqzIFMa/WXafr5f5ixGrJ1wLwXjlTyLNxsc2zn6tJa65jSniL+Nmpxm7PAAh0uUl+TWi2ElKpCUDJObirbMg8g7G/AjSBqVyK1W8rpLjXftXIY4ebf9HaZkPM/qLz2g+IuVVbEiGtzvARr5BCmpaQtb6YwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000005","name":"wepumwe2r000005","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"51ff20bb-e99d-466c-9032-bf043bce8d31","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0bc73e3a-fbef-4805-9373-da676e1130e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzfc++/Q2oO9BIMjjtXbLOYAugfkO5zzGvfDvrzfweZjOaYKinkFeZ0xHGTYKzYUNg7lTXvBBcp10fB155cl0Vmb2GAdW+bHKEqukuAy4YUzTq66nHX2N8C3Jft1dgY5pfBSYEfk4YXOZM5o9Y2W79USj+0jTKIGETjlD029kLhyNxKBd3f/+xhE+vQ9pSU3a70e9O8MPcBw4RhcO1NDyxTKWzDzbjxc27NtBBuZKtXQe1/J6bVI+J05z4JBkmz7omWlVZHu/FzXHZLQH79lIZ2wrCM9spvSnZ8FfzE/MhzqiIkV+6WEcitawLLmdE7Wr62J+wJh68wnRxMVEnp6ggQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000019","name":"ukspumuks000019","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6fcedb9b-ea1f-4b13-86dc-0cd66f6a8638","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b1553815-41b1-4f1e-9c0f-6ff797253f5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxQqYJBCl1csZ/2h1RbgwnhSzeVe1S4NBtxWNK4RFH6nf+SfaXSUgR5kFuk/HiqbS1WeBnu1nMSAJE513gVIN467oOc2eSCcsJMDt/6qHDW7z8FxjA60/VD2SmmB5drAOMxk1Ha2KQvcREgAZFMYoUcVY/k3/o/KlbHIE64aayhgTnZFeuHc1FDlGJOwglXSgMMGRx44XOFRRd2r01Jojw4BqrHI9YahtbMYyEpoK6IfqJ+1mu/U3PLcUkW7C8qNFoz0WUHuKyMOwibXAIzz1S9AOjH0pUduDzcrGGRaFNBBJv7PWOvnJOI9oYnRYOmLg/Few+neqLVMfHvNAEM+FwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00003B","name":"wepumwe2r00003B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1631872e-05de-4965-879e-663c54b26a48","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c14a0ed9-1ec8-4472-8c24-663073084cde","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyWyaACrD9teocDhzcdAk/n2fhT+rburVsxELaUOGN+E56m+N0slYHpt3DBtZ0u0p8akutfS46qmHgA1jbmp6joR5PhGKk5ZJv96FicfP9FXCv51/UkyskhnD1/vos1oCXnseDc0ub1+ueu0tonymQ60jRHNMYKTnADvt37oWuwdsVgO4hSdc8WLwTrtDpsb5TJUTJWL3rR9l8d3JJ+AHKPss+VLt1/YCJh81GIiurTHmpMv2OEQQkFlvz0B1vHDHUtkrAYTmTWc8rAB+meuO8Pmv1Ou37ft7juVPVOBneb8KXCUUJPFR/RGsdp6gyYMAFIpLFaZ4Bd6oDhMq9nLNDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000C","name":"ukspumuks00000C","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f730556e-252f-44fc-b535-791248fb3487","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a2a21340-e66a-47d0-801e-751287655865","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAspoN9Jsd07MasuRVTlTbP+bWrtfc96UaDgBqJGMddF1NDT85om/s9b7aT6fQXfIxTL/E+EUpbnF8PjKSjexvgorGZrphM579IAdYNGuPHbnqVM8hOxUI+SYd6HWrhTIuEI07zST7dX+b882QScfpgL317vwChm4u3EUBbyrt1DnW/BjzCPnvuRUvCDEoD7lubRFbeS2vmY3ERO5WYs3siJRU8t0yShnikmXFOaOMhMTUsjwwu3ptJ8QLLCUJCeOVKqDI99IcFS5pTT4JfkTJcJRdVxlZLneQVQJs+0OEeiwKNACQV2VwTBKMLFOIdO0k2DuuBRwHNyj5ekrbRc4DSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000030","name":"ukspumuks000030","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"055aafc0-5bc5-493c-b6b8-6d4eadbdec7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"686a8e43-9538-4690-9791-282ba3961267","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwMyAaBFO5DBM4EbHtczJ/RWyW9Xhi3Z+0O7FT0UEGERUutD1VikQd86kPpS/HHYY9TPFCxPUALm3j4zTaTF6Yl7mYbAFiNERQP5Z03xq9vXTj6rhcEUQ/jAvU8FpsRVt4eM92iGkmo0iMYfLpR/ZVOxPqxYB0AGnKpLmR6MzPSzIEcoUqK4AzTQFWWyZdKJlCIZ6EjRNG97vCfA99Iw5SizP1+bD8JPOpO7DDzl3pPWKDdwYiFajQb0NLyiBLUZLEgeSvs3cJWXYFwQIcE7g5Tn3Q9elQcOkpGMtdqmBsj7yHOcwOukyC5U6pKDsXyuF7hO3T1vEpzmF09kX7NKdkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001J","name":"wepumwe2r00001J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b5c711fe-f42f-4a30-842a-ad12477ba8c3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"df171918-8ec8-4db4-8791-1a84244ba9cc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtT+YP8+Yo22OMD5DqbstrdKzhpA4zBgVlB6KcZ8hFp7G5Gr3dikLShOZOp7x70AOY7pG6c3d86Mqz5BuHD4N9nlMBoz3IMqB6tuvbGkzN1b89762wZvS3JTKJrww33oYXJl4VB7GSGwdzYLYd7F42Pm8bKgV75KAkYqgsAB6d9tjz+opgSYooZSuFUY+sEEPhS51jnR+QOj09PyzjQpMUsdTNyvrY/ose1RcF/IBiUlsB5xbpPzq7aL/b0psSgi60W2Z964Ad4keti1bZ9/RgWvsVRSzAOX2nFHMRk/wfdCJWZhwlIUoZcFOohSJSCV2YuHdTHKXf+Twm5vgoM/AFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001F","name":"nepumne2r00001F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"831010c1-c896-463d-be23-8cd81d550735","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c1bd6055-d358-4715-891a-f5426ae8d9d2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuqA5gUKZvnx4vSV/0M5LShXFk2cCTQw7+KdspBQUcHRqxhT0QRWP6npD+ON6Agq0/ALw7poWuGffBpj9cSfefdrkyyDt193q3g9lgL36XKp0mxSLHA3493BKWuVhV2lfPvsL3ghYdFcLAKd32rguFLwy7FE0LzHeAt21aR3pkGuTJOxxtDiqW0cjT/aG9rGp5PlbjPHLmNCtCM6qYxc6RZcm5AUCt1QejuQCJgU6yhrwPw6WHOfmaEFTKmkvUhkAwBS9PGuepsjCJG+Hz66OUmDWvPzqMh4KcTtdVRNzNWKzSA9Alh8wqV5tWbIiG6SD4fW5KUyz679dH4AcftQzNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002L","name":"ukspumuks00002L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"56b110c1-add7-443e-b86c-2d91a235ccaa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"19771f46-2dca-42c0-8ad2-7c217d7a6832","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8ddJ4R/uAb+61l5O+eqheyz14/LTjF2DxovU5YXcEzNlQfgiuB3S5LTi9J/Y3VRvBRojDvA4pyg59G0oFr03lA6g6qYCEXn5jXjc4h9nQb+toc5JZWzH80uytmVGaKXuQHZIRbsbkQ9e+f/qfLLpgySmcv55nDDd3mC07KR7YaAnjXoTUF+jHHC7DrthyXex8HuSZnbE3ZFaRgpwij7QIoY/ANZw6xGi5N33WKSq7qM0V4gGAbi8fQ669aKQFmIGLQyljw6bIwfvmifK8bWoAso39AIx3M5i5eqVYodqLwV4MX2lIcTllgTfrZinHLzNYUcd/RQszsxYiHTiin1yYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig000034","name":"pumnunsig000034","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"12c9d773-e3da-471d-b468-60be7e1b7493","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"63f8a742-9867-4715-8360-4883dc2a75f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzm31Dqmm8a5+VpAr0b0ay9JlZJzoCBmf2cFMVmXnhxm6tK2/ODrkhcUQsL2kpbuw7UGRg0MlhrHB+tQEPOY7HCAsOWntwV+ehMcsod5S+N9BFgZlOedOpfBchXG/Ir2Fek7W53mdhHRnGxbw+H3HJdXKOVLmfXRzgE5EjzBT+liyegehSleCafoMc7BajAfSOD6jL4CyZ3p/c0bCP69GEjbEghW6AR1qFC2vQjHqIygkum4VSTuux0PL3RLwrmZm/fcH+bAgvfr6frwRS+yYgZUPemq5Ab5MHQEQSoMsFJgCXg6myOo8qRMObdXFwFpodlrPJAOD1hpa9VsXrbLXMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001J","name":"pumnamuns00001J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b6da6da3-74b5-442f-a9d8-283ad2eaa6dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001J","machineFqdn":"pumnamuns00001J","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001J"},"vmId":"acad2636-4160-4b9a-b282-c2781ad4374d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1pbci73p4520EXdxi1G5+KFr5rJo1QqKZpW+6r+B5JTbv5zBIbuatI2zBZ0CxiM+3hxDDIvnrW+1ELhAEbkY7hR2wA9vCqnwn2kFJOiFX+wRzw+HkPJ2TF+Lo9KggvA1Xahkr/gjLIAZtX9npa47m0jTB3PwiA9FGEyUKdWeuIwY51I+wxyiwEfQVpaAz3dXTxdt1ffK4y7N0/x8pOzCEg0H9vwsUCPkFhgCgBaqfHe50hNMT+zmYSnnw1A093eY48EPwG7IGvRmoKwxFCVCb2aVbHuVljMHvsdusIU3+CVVI4vXybPL1xTtV4j03SisBbkYllOyqDrWeixE0qZTCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003E","name":"pumnamuns00003E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"68ee37ea-1829-4c9c-9be1-6613ca19116a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003E","machineFqdn":"pumnamuns00003E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003E"},"vmId":"512b2c37-cba4-4993-a77a-290560efccb6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsv1IuN8hByx2YrifACNozj5yEWRZSs0zrpADUobwD2BjbhlQZ7F16iXbyyn0YEJtjEFe/U2r9elaCSKgOWxfOcKqNDA/bxo8jYHW9tsth6U+bJzVtwDvR6ySlbsfLMSPUK0pCOIfwDE8BiNKI9QystmzPTVBNCS8bAuoPlhe9Vo8DxJhkRt3YMJEc8NSEyRKxsSzjqWILYCHv4WTaiw9cV9DhpXAmr6T2j/kxEboqmCtflnp/3sf3s+8hLHZrbb5nNWhbvodPrYP0EXx+M8oaPI3yQ3y+P11dusbXFrCmS1qYbXRyRZ3FSVguUBba5riPdY3FXFWRSJODqmuEcej6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002V","name":"pumnamuns00002V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2388b05e-48e1-4218-973b-2e7625af7dc6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002V","machineFqdn":"pumnamuns00002V","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002V"},"vmId":"50fa1dad-0a5b-4391-830a-8bafe4e51c3f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ztsPelxssBD+aV9zm6ie9ITlprzSB33mZSZQ540OCLvMEaCKERDK11ul8jGQzMMbFqX4xFEL7wFt4/hFUOFTpnjMRxBEVayrUmAc2nHtcQRxeW24+x9YhGLGFry12hY85+ogWvW/GTEjgzyFPxk2Ch6MXI64Qlfxwi8OATHNjOFHWLkxqsDAz21VJN4+SyB6ze6bgGUzJwx34hm4/oTB6qt2EmYYK4FX3df077WBV8lSsnhUv+C/vRdnLsqGfRII+XMoBZ58qtL43XU1oHl2WEp++197k6vEfwQrjMLPPfsoZzTun6SkjBVQQ8ZIIAl1qqI6qVGdiUy0pLGSjud+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003M","name":"pumnamuns00003M","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a99fa507-5f05-48ea-bb60-5c7bf0009102","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003M","machineFqdn":"pumnamuns00003M","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003M"},"vmId":"2ad67f25-1f05-4b2b-9dd8-0bf0c9c32245","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwko9BKikQ8wymiqtgTJsIvohjnZbwIdYHNCh8GQN+M/ecRHehxTyYc95isgzch7tsNpV/E27POOZRHqGI8hFQPhP4qeiezcASfWabrB4cJsQGGFXm+UTAtaY5NQRLczIQ8heNPYYiF/UIindbqX57YNu1MpeSi2mxEas4kC6h8yESCoSLqgG/7sko+OqP/27+vHMPsYU7eCRQxxJT8TuGbrY/VHUvQDIilNUma8doaBIfkRh04I3RzkhLJpNMcmjNoZUkTP/myxLM0iJtW7FKZu5piR11RoK8dgTg6VsErQEnGd9QkN/33IGknPYXZfETZ2qzgXqrPYV/ABVW70WZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000011","name":"pumnamuns000011","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"62997037-6d85-4bf3-a628-8d8fafe4f50d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000011","machineFqdn":"pumnamuns000011","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000011"},"vmId":"f6acd49a-1a50-4ab6-954b-144790834c49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqDDxUViaWfmT2uf/1/RmDDqbivQByD/ApuX7YTnxn3HsiVcjyskBkpq5wyhlwtwaskE55sFuQW4erQwAnx3URhAkJVfnSNYC3Tuu4VIUhT/VC6lzdbNoI1CJyPj4C2KqaXdcZirSv0L6fx8KxmaiqexCqQkLlt9gKbxcm/Ru5AzF6zZWx4U6slSjH+qLZQObXi0FgxnC/Z6t58Ju5LBVFx3Vj/Gz6xY1WkoyDZVSaBvjWVOvvoIw/MW2FuXyE5ivbsfCUiNUe0RpvhWIiRbFC9GehVVWvgVORjrzl2L0bsSJdlInhnuotl0vNTvHrOjcaCjwVU4cv4AXbwRmQrMS9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002H","name":"pumnamuns00002H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ed78f85d-5adb-41c2-8c05-732bcedf14e3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002H","machineFqdn":"pumnamuns00002H","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002H"},"vmId":"0a411825-76ea-4ee2-bf55-f007405673ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2knmR5mMfpMnNS4iSjGv2S6nmRar4vULXfz899Q88WdGe8dtan1i3VQBmOL1jvYYcusYLKq1yHmJ5sJ2NA6vxAmq4rw11a9wNPRkD5Su0A1uqi5g0OKCShqEecRoCLtVabgQ57NRFeeWYfo9egYQ1PqPxNbXEHYrurOn5wPJRSCjOGidD3plratf1vqLwfCja0B8vvnZJEfnXp+8zWYIeQ9o0icv1VchT+N45cEIEieEhHIogNhNDI85UJcvEmz60BVISIlLnNyP11mKS9FPsL2KIlIplz2a3Ju4OeIRC04Yeoe/gSq4RUy49174gHEXZYHF19AvQsYhfITuKzeRnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000019","name":"pumnamuns000019","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"06278809-ae8d-4870-b800-9596accd746e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000019","machineFqdn":"pumnamuns000019","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000019"},"vmId":"e4634669-3e67-4175-ad70-972d4c925147","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Lw0EGlZSIqi7j5in/FQBBy5e5anisXaiwweePvXg8Aq3zRjOoTy3EvBv2QhO6i2fQAXW/XrKjU/ZqOSiqUFGMgxP2pyxCoIVj+mHVc66PJlbnB77XVUHEZka+WJ27tL/p/S2tEseKRY9KVHgJRBV65e31EmByZNXyOgJK+5ezj61fqgFqPpD1sYzZ/7qTZk5Bgvxki6L/tl1DgM5nlGaas7VSM+tSgWOrtCOQb7yf9/MItYxlKYZ5F09i9Rmx+ZF5IIyS5T++eJYoHJ9KFoFM0Jc52niAHwqJDB2F7sE/lIo3d6/hi1swXOEu90I5I8Fgrj/6jYz5Tj7tlmtvqYyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000033","name":"pumnamuns000033","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9246a27a-5994-4682-bb3b-6cefb383723f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000033","machineFqdn":"pumnamuns000033","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000033"},"vmId":"6e613f30-7122-4185-a487-eb122d8933d8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwlXCumkX3YsOo0G9a7nDwgZiTQ/lqqDEEwZvX2jKAEN67feIABEL6SB0xI5ycF5RAmrAN/2nZY0HPrh3khgNmm4FCZcjsz81G6vGUfZr4vRQrpvpS1UpHeN2M945WsO346I7g4QpH97Q+CZmATQ1NJ5bZ1Khp4ugA9r4Zu290k/kjbQa9XfyPVGFvglr9Z4KaXjixbXx8afrgnfSMWLtGAtyqhDpUPjsDR6eyvCsGLzmQ8QRic3iTr/nNjbLv3mWYE/7jSMV/5GwUVhpPv4JDhJJU/By3iALWHI8FH62VLoaQu124Eu+x/tsGZgQF9RGinTGDWylB3oT5BDJK7vHUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001Z","name":"pumnamuns00001Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dfbe8b06-fc0c-4777-838b-70b944ad3fbb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001Z","machineFqdn":"pumnamuns00001Z","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001Z"},"vmId":"0f3ecfdb-6d01-4480-9e4f-cbe8d9066f5e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp+nL4KWQih9h1gkYl8nqYUUOctOs/R68QvEN7S0gBXRwArzNoEQLCyGxqboyKq/PmxIPtjcO28cJuUymtBS2QwHhx9IoOS1Hl3TaWvyJlz5798PVKedMyrrzVug758zBO87uOJYMMGZGuC5cHNOVqhENwfkve//ImqfL9Ied4PUa7c+iMf0nRfeEP+xLDln1dvyDz0YKhz1dIVRVsJKclUaoh7mjDUmP73tzNjoDlPg9fyg/s80svAMXe9rrjnsmfCptCvlXjIsO6NPEleWBxUEcn8CxXb/DcwdMPdN1RiLSEbkgBknmeQCEEsCKbPpwCoLp5HL8xxek5wmp0E7W8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000024","name":"pumnamuns000024","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7499a523-706a-4b08-9676-3a86d0595a44","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000024","machineFqdn":"pumnamuns000024","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000024"},"vmId":"0c9a1618-1d0a-4eea-9a85-bb862ebd971f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0goPETmlehOHdIQcsaUvwaw8qe49UHfEChxA+weDhlBC9sxUudDwvblKJoQ789frDnZ943FX+DrrCAZsOKyME+IQz3Es2FISXpIx4WI2CEfw9q0xYOXsMCVPHV6lVX5vH4uybKczumQjjiS/gvXmpjU/yBKAkrzIBc8+diW+3gCgZ0HGkhfx1wQAl87/BTnYtduJeOMI2nPN9oDl9cET6G0+XvfuSQU+Wgtc5VzM1zYAHXU1o38V+xbw0SsP0VOMwXG1Un327q1w1TTg0kngINwIpcvjI28O1V3SlI0amkmiNjblUT+cJv6yiYxBfJRbgd0z9QTsOpw0JDt1KNvQ/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002M","name":"pumnamuns00002M","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"16ccffec-69f0-45b1-aa73-7544af719d27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002M","machineFqdn":"pumnamuns00002M","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002M"},"vmId":"fece161b-b092-440a-91c7-6b8952864dd7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt5YZpTaT4rCPCgANmP3T3ggL0S1E+FSTaiTzm6CJE07LOjcuI/r+jPDDE2q6q+yqT3L9vCNRIUZPi4GP/wVkgOlc6K7RuapGZCGHewI5FYyZZBXc+HgTCpcCcvaUdkHa9ezIIxuouosuWrHmGsdLKDhn3q9z4UlszaMrmCelRAp2z64Tha1+g8UnxiTaCNNtcRoGcOLaLtlY0EYHzVBS3zndK0jONCQwMj5I++TiNCHXBPf9vQIN5AUGekoqz0iY1G7vfvOBuU0A/B+eVBcPWnsFwkjQUdLAWNp+uMfSM0TCXBrkgHXsAdtsGtC79G2dU8XqjfuoBDl+CCsWIXDsawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003B","name":"pumnamuns00003B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a7db3c48-a47e-4ced-b756-6c97f026f805","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003B","machineFqdn":"pumnamuns00003B","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003B"},"vmId":"7727c89b-5746-4f57-9138-28afa0385dcb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5/O+iAdgxRWG48KtOLPbp3Q59Sb8NNFZxLMwuioKkTo+yHdstbhpHQMrainw8J2uNDP53jjuQt9T7CcsmEJTeeHOumq6N8uSdIFXBTHB1F5UqSfLC2own8EGTL6UTjwtXPwV8oQ939iMk88GPrc0mzEb0jt1H0++wJA71YZ8xqFFpGAfgj7ANQTQQosPdqsNDkopBJvcAF/fD6qMnNpEm9gqE0/eR8CDioWDGTRnqPo43LzU0Pfn6Z0f/Fj9FP9a0cc0GBoG/TrlrDt2IDQk4/hf/GGF8vLWnEfjqwcol9jB+IIEpdKu0Q+L89afwBIJtjUmQdJqDizZXh1D3YsRGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00001K","name":"pumnunsig00001K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8506fa1e-62e6-4ea8-9506-dd155b12f148","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"291566c7-5f57-4970-b07f-0f0000d800d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtUUwkhqI2ML8v0XgSlTcab3gU6FT/ELlJ+sxJ88cjz3Wo6/RcdB9hGrRM8Ubqx1o2c9bfhdJyOxP66o1F74Zg/nAZ3UrOIXTaIGPH0stvOFLdXQc+5Qb7KxbmChHgq3gGVmvRHsKcoEe1ep1IAUksJl68v4e1Vm/yD4oR2tDnvBzdxgytBpXz3rjX1HCGsj/yyAAm0NKHys6LJPmhM6OLmb8IDsHiK7fnpYVfjF54n2+zJPzRbzWSbARzpI81z1eS89Ow0WvYo/FxkBMs3b9uyuGLJIa9kgmD3fH7M4drMYV1zPsTeFuz/clHjYz6Cee2xiXr9/C4eFL5efvOpREkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwesteuropenew/providers/Microsoft.HybridCompute/machines/winwesteurope_13","name":"winwesteurope_13","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3d4a481-ee71-4f82-b98c-7eeaf4ca8bd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26003","status":"Disconnected","lastStatusChange":"2019-09-25T20:07:43.9384623","errorDetails":[],"displayName":"DESKTOP-SEB7UE0","machineFqdn":"DESKTOP-SEB7UE0","osName":"windows","osVersion":"10.0.17763.737","osProfile":{"computerName":"DESKTOP-SEB7UE0"},"vmId":"56207ece-83cb-41ac-b26d-2a31e802e86c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1l778BpNNmiBc3/8ZZrx6tBSeEvw/4YVmon/gu1HuOg6EHwwRX8Kks53L2anBzGqbJkfmrWjeViCSs3wpRBrRl+3GulH9l3b7EOCWGQRY8WEoUbGLmPjSzTtuiVpWNtv6FFkfY/lW+RtlSoEhTgL2YXkZpjpBSjP9cJIAiMXuUEZQFW4ddhUGR/m4ZpMsaE+ZoyJ1M+bDr6uA0fK9+Rbd51cXPNNcBgPApmzlCgtttg4yRhLygyp9EIO6CbdCRp2tVQD5bVnV3cztPrLvN2C7LIsmz5S6cuzyNpWLRKo6gFVYVh4+fRTSEnOFa9nygn2xn5i1ftFBc9LlQpm5v4liQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/katie-hybrid2/providers/Microsoft.HybridCompute/machines/katie-hyb2","name":"katie-hyb2","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e2a212c-6870-46e8-a481-23712442108c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Connected","lastStatusChange":"2019-08-30T20:19:10.6151031Z","errorDetails":[],"displayName":"WIN-1ICTUBOJ5AD","machineFqdn":"WIN-1ICTUBOJ5AD","osName":"windows","osVersion":"10.0.17763.107","osProfile":{"computerName":"WIN-1ICTUBOJ5AD"},"vmId":"b87eb75d-4432-4c24-aa29-88826e90c44b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArkCpJE/uiN0ThxsakL7rwkA0kli0lm2T0RaclKg/vVerV49WstzhcPXexoUjgK8QCfY0CU1s88ckeX0fD/DUDobu7ePNOueqz5T/adgIJq6hqgGZYbWSu69811AXfqQKhABXCiY2e63LoPqy06fxbk0DCKNU36AqSgguntStKN6EzVas/wqvXv1oJpc4/zZMD/X+jFbC06LO5cjMZDGGL/X6fIFNzdPJxnHFS8dMTQHWMnJp+5ePzsVxBtaDvHaLtmdLLaylMHYtUr+HYMtwW8ISo3+ThdFSDlrz4wr3FqKg/YTkUHNLxbCQNSurD30ohxdMt3KXqWkgdiC4mtVIhQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/aashishDeleteHybridVM","name":"aashishDeleteHybridVM","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"6ebe098c-7ec8-40e0-969e-e4bd8f1fc2ed","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d78abda9-d38c-489a-b631-9a6e532c9c35","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv4tJAcFzzTeKzLPD+UDO0Dq+JS0o2F9zijq/dXWaK8BLBf6ReVaQXB+wyJetn0UZ2thzg+C1IdequuhYu8Cur7QgCDMBdwUaFStGLUn3ZFKM2AyyO6KAjaM8m04OCrBJcBxaJS2jUgI7LwJxuZiMroxNn955B8pdkl/DBDwOmPJOT98GPJlw9uLwQCvYWvTYyOnsOIcOoLsgZsY0Ma0Sf15X8JAjNQ64Gwr+9OkFxJ4+9COOTuFvZQMcXk3YNqMoM1Hi7EbMzwQXwdUcZn8KkACBDm5rUWBTuA/TXgOx86ekxpt1BOsIfqKxWBVeoDeDTz43azu0Fwmx/eKQ791w8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/aashishDeleteHybridVM2","name":"aashishDeleteHybridVM2","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"e5fa8296-8fb0-4469-95ef-1bf22971a8cd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"57de55bc-f1f1-47dc-b585-f966eb477e20","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwohyHvymqTIbVO1uJDIM0dNob6rvrlt37AIY2JmUX6HUHpuDvC5VqJFdiDTkxH5UFU7NJFM8MV3fOlgdS/JycBsMnK9P3fsQylw1tdZdkMRyOrguVK9y4yt3fVeGMJS5FSjThE3ZK/dWIQBpq4T6DVWrTeuV97LK9y1ieAtXXx1qHJ3s026xH6AGUGrl9XWQoE8Kg+RT2YDd44sBOUwxbdgg7egn4imINLX11UZ+kGXG114DZ9KQLVKtVxsBDOu7RySV727CS8JkMMUeZgufEnPiVxgxRfesKAY59zI7jl+fW599QwySjH5Sn4SkfeQOrAP2dWr+fAXvYvPpiCZIxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/katie-hybrid2/providers/Microsoft.HybridCompute/machines/katie-hyb3","name":"katie-hyb3","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"8b626ac1-fd82-476c-ac09-74324db3e020","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.27003","status":"Connected","lastStatusChange":"2019-10-29T19:51:43.5573388Z","errorDetails":[],"displayName":"katie-hybrid3","machineFqdn":"katie-hybrid3","osName":"linux","osVersion":"4.8.0-36-generic","osProfile":{"computerName":"katie-hybrid3"},"vmId":"d7c406c8-78eb-46e6-8d15-920d69bb53c0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu8VVr2o7Yli/9NCRBtdg8Jv8K+YqL9tGEhaxgWMpag9zF75CvJSvS40xriH/FQ7IL0O269waDbMimuT82K1WFjUjDOFBRD7DUlF9zuLk5QSviZ6IWFE1VYA3Rxt6qHf0qymBvnSEU53P+kKeFPASGwAgeg5GH83xVgqTA1GHuLiVPTsL2d8bjynN8AXhwBCho+FjlqeRw9EddFx0DBoXgZ3qa0aNBTeUYofM4labcJ501qv3xAjeYVAns91YQ3dTUbwHwBM5yIlMXCqpN9vmy+Z4GrbeVbhVW+72UEcEjWJUYfa4bYQdJEpp6MsTZfgmnnuiahBezS7QSJcxhXbNmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest12","name":"jianyuntttest12","location":"westeurope","tags":{"george":"sdd"},"identity":{"type":"SystemAssigned","principalId":"e573b27c-71d3-4fa1-82a5-1b2a90b129aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T19:24:25.7102658","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"2696b68f-5324-4ec6-8240-83641ac9bb2d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8uCICRplri6siEjQ0XtR8yADAiEhUrgVUD2Isze0t0yxn59hgWFTuuC8VfW3xcwoUyKKyAFQUuaYZYq9DIBFCeRIi91NANmS0bNqSW4jfm9g0cW1r+yTPIwYgopBxh6cfBQpKKNsZTHrlAKQ3dh0oVb6NWYk4TwSs1i0VA2PbusvZFu8h75ObrQzgWI670UJCYpgUmdEuAJcIC9DX6OSs6aWs14ddsHJYDQ4yQBYVmdQCqBs80nDV7UIPxnRPK3Hqw4yQ8cRsU3P6KDligmczpIjmzTwz4sr0sVWn2LBg/+VS8f3WEt3daayiCAtEFZ0ACXtgnZ4WfIvEk1bkfovLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest13","name":"jianyuntttest13","location":"westeurope","tags":{"foo":"bar"},"identity":{"type":"SystemAssigned","principalId":"03950538-4851-4406-a969-fd4cd161ce49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T18:54:25.2736772","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"bb7d9d6e-810f-4d69-b619-5aa67c90e5e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7hKg64LFXUXgjsgcSmXy17I2hLsHTOoRc/1oZpqOk0QMNedx7tWA52OizDWIAWO0I73DG9Yb43UQYl1YttKl6J9ZudgL7vwR1+ZwYAR5VaQySk7oSpSMplDS9y9FF4JEL7OZBoFO3TfoJZ+hYUp04Ya6VogAe18mA59EEdpxJc6AhO2kPYvaV3nZdUXTdGUxgYE7pqitO3+OZzC/y03jQSa+pUHySIzMXGFSjpJXDmXDnrPwX2S6XetuG1gcBveV3asPFNuAPV6KVjK5B8fUR2VmK/S5tcXWF4K1Len7ovoKa6bzqBJSNnAW5K9WpkllT6OLvwTjYwHLA0JD/vwUoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishCustomRole3/providers/Microsoft.HybridCompute/machines/aashishnew5","name":"aashishnew5","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"82af5cce-35f5-4a59-98e8-1a24648316e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19001","status":"Disconnected","lastStatusChange":"2019-10-25T19:23:54.046252","errorDetails":[],"displayName":"aashish-desktop","machineFqdn":"aashish-desktop","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashish-desktop"},"vmId":"40a81226-f53f-480b-86f8-5c97bc467c41","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6dQOX/kOWnjqQHBzidLlDiB8diwRIN2378nKNzW5eEoE4TDMs7B1ePFaUVOpl+vW1VOPsAFedE8bAiFNtTpng5BRGewHJEFiZ19oRE5s37YHVmDbrhAYAf+05YUy3MnY21JzCw7WdqC7XavLwh42FJievlKrHnpoh8E2pQj47enEVHSPk/w7mjOYG1T08921qaw6vKmAn2lj5d8BmKaDGJDY+SQ9CW6nTt/8XIcA2nP3JVdcv5lZtrNfOSBPClpTFWDHLeFgfgCLcSlwJQBO+q5xLcKBHzGUQ8Ws4CsfBnLxAfOYdhLlEhIgui+THBWfhTfpRPHyTIfngPqBzQ4XJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/EDYOUNGZ420","name":"EDYOUNGZ420","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"d5c2c9a0-d511-4f77-9e22-5318ae0add27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.0","status":"Disconnected","lastStatusChange":"2019-08-27T20:18:44.9052222","errorDetails":[],"displayName":"EDYOUNGZ420","machineFqdn":"EDYOUNGZ420","osName":"windows","osVersion":"10.0.18362.239","osProfile":{"computerName":"EDYOUNGZ420"},"vmId":"9d5af5e4-1bc7-4a98-8be2-cfd411e393ce","physicalLocation":"redmond","clientPublicKey":"MIIBCgKCAQEA1e1rFTewLWjwkDdZzwYMJOSriYu7lNvqM2SC5FGyY8kOUqW6ygK/MoQCUe9bEeaBorNpLzlMjExPYEYlhrEF2gFCyanbC5gA58Tp/gVDcbsGz+LWZNrD+IpYqU2GbWYaVdMY9SkWbjl20X1vO5/wKlrNv30Yggl6dGOL/NRl0LrLc7wRFUPki+5SANXaNetUkp9+oCbgFISy6GjIqJYGcmzuRZbfRzjgi1bsgPmb1immg7x9+CJQOyeucXaaOZEmfTiqeh9n4cTAjhCSEvrtzdPqsSnl+lUQe4gccJMnMslJ8OJoHGE69pZmL9i5clQo1q3Udzh9Jbr/RY+IrY5/zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest14","name":"jianyuntttest14","location":"westeurope","tags":{"f2":"b2","f3":"bbbbbbbbbbbbb","foo":"bar"},"identity":{"type":"SystemAssigned","principalId":"603a526f-16a1-4bab-9147-7670f6c6a907","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T21:09:26.7899081","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"3397357e-5870-4a4a-9061-4435b2c29b44","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxmLKT4Z9A7BbToQglVIGScIbYKMOkFQ3jV8GAZi1TYJWxyJjqrJnr/Z47+PRFI1jDpbvVL/mPG3RjVe3jr29DkEIW8vBSLchU9CZGSqFsEveCWZHoRNjRhpenVqsfdTYFH2CiqAikxHdSzDLc3nkYlTZoilQBUTBLiIvUCE5pdrqcjfzWmS2r9o0dpLytpxsHfWNaZa3VCuT0/8hzVJv9wGsXjGlRKWAyJRc2AYKXLnUfUDfdWP0eHOC2fYSVJSyzPJMk84PkGN6khWCNNEn+GfdkKSotqdoatfQwOkUXoTQfRZ6oqSXe+OmJ6+aS6xQrE2EI46dDVzajYNCWOnnywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest15","name":"jianyuntttest15","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"3f2b79a1-ed32-45b6-b9ab-5907e22ab6f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T19:49:26.1219261","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"2d5b7cfb-6915-48c4-af15-69b059cebec5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvXLOnD9hx0+QdQ+1f+8p8CBNnN0lteFhfDnsRLRANVYMmDKtETp/yyxCSPz0PSzQO3dX9KDQqzmttJzPixz5Q+P4dWTVpoA4h+zs64NZyp6L0jQq0uN2BrMKHK+bNxuouq4fIRrsnO6s7nWslR2i87tCG3HnjBt/l5PCJJxxXFN8Pwg+VFayovcK76cq9O4qGclnPyu3COVGNqvHR9+6jCskSLHG/usJRiw/gLq9WbqjG5czR6nCpAWqIVQ3gktehsUDq1u20RYsT8dbyV0e7DjGEWpnVsBSpOjJFA/QNUTJ+ZIJddVsRzIp4XNTHnB+wUvUEcy1WkFJM4RCSA/onwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/amitsara-pc11-1","name":"amitsara-pc11-1","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"8dd776ef-81b6-4743-a67a-e5e70511da77","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19002","status":"Disconnected","lastStatusChange":"2019-09-19T20:36:47.8032409","errorDetails":[],"displayName":"AMITSARA-PC11","machineFqdn":"AMITSARA-PC11","osName":"windows","osVersion":"10.0.18362.356","osProfile":{"computerName":"AMITSARA-PC11"},"vmId":"b2013086-2488-41d9-bd61-0ff0f0845666","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4V5AusoLSKDmfP3xSV0JAhhaxXXyojS5qKVcYTbc3FkpC0QJ8bQ5ExQZ0Id46BZxrqr7W3maIBig//KH2zwhSdfHoVfGtmsG4ImslV1tqrVeTIGyqlH8w42eIybN/E9P0gPyjS1wG6sFmsea1CmkQ7rgm7wtj4e2SpEc9BtEe4StWbyDWWmtDB9h8o4/hCFpfoWGCv+7BDkjyvosajGoBnRO9TpjFWpbeirgKgZ5fnjjgjI4sQd6x8oUqJsZ086upXrJRcbT00hRUxDBUf8jQGW2Fm+LTTwBJnrmXAeq4Smg9Ftrh/qU7PREHq2GuTtrskGwHAjUyK+oDQarpjU2TQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/amitsara-laptop","name":"amitsara-laptop","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"d9fa7101-4efe-414d-8e4b-bf3656e83caa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10001","status":"Disconnected","lastStatusChange":"2019-10-29T18:24:34.6299206","errorDetails":[],"displayName":"amitsara-office","machineFqdn":"amitsara-office","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"amitsara-office"},"vmId":"4b750460-b536-48d3-8611-75ef72f93b9d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtZqdEHcVZwt5wjoW+jNQiUQkuPsL0uSYkQF5pIHN+Npq8yLOKvfmzdKvZPf6hWquJ1hgcfxf0Y0aLfq49D7DUvuaqD2hNaElFYFobbUdBKnovFR3Tqwoj8fI4tdSrzZBuWoY+ffLVu9qED0uuB11DT26/UkNuIv1lX7Dk8SADtT5x+W2mZ5/UqrZZFZb4wJ29wXKZQ6nBUv2F3Pv3qeH4W++y7YawzYgkxijMbB9hu3Abxbq9NmpGzpWxlbTKfXAIciaDxu0aC5xxmJ33KViDWBS3lddTWXOFaWeke7HGjQ6KVORgB8xgFP9oatVnXs4Lm34UHkc5uAaZlAKNRKC1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/amitsara-pc11-3","name":"amitsara-pc11-3","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"50e6d224-cb12-4e32-a332-db72f24ab29f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T22:42:53.0862503Z","errorDetails":[],"displayName":"AMITSARA-PC11","machineFqdn":"AMITSARA-PC11","osName":"windows","osVersion":"10.0.18362.388","osProfile":{"computerName":"AMITSARA-PC11"},"vmId":"be5ba8af-0e17-43f2-bb45-a41178cdeabe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAssB9XDhmx1bqIrgWBs3l+lrOgVeUavNCJ4jjc07gorLtJ8gtUTX+Cr6nttU7oC9DbR4JQjI6cK8LvApIdSx9UyENnGNO7MkkW69r+XfNP2CY9veAsyuIytiJBFTkOEcJa12oCc+N3NHzrz+/szNLO9IhCP6YPw78PMR0fo8gZP4gDl+9hdEYC+4ZBzGfgFFR2uwAp+vL3TtQP8oJdEJAZbO1mrmH1pt0zpaw9idmEqTgfvpN5XzUFI1pjESBJSR+d6I/s7NLFT1McmjhjEwJ+SwpqY0fdxMkA2PPtNVGcUPWekMxc/5R7jrIyqeWZ+K1+iFmP7hr8r1KX1Wj7syPtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest19","name":"jianyuntttest19","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"4aa1090e-5eb0-4288-a65b-2fb245ef8ca0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T17:44:24.3994324","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"e38343fe-5e85-4087-9781-488a6bfee044","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1/c9IeWjeNDj0KcUzFgGICk17WJB+Weqkfz9PgoMD5kMJuWGZ9BxHCR5QZIHYFKWBKtttJxHqS72oLcwyj7kfaraUUXIOtO1LWlIixJljiSezFBE8TnsEkvCPqoAsNMy05KrqAsyvuFUVJRcPFPhrYaNWZjA9/5jSb7H6aks9aM0cqaM7D7xC7OMIdb9M66L/yI4cA6z/2LmtZEehfKepDgkLr1VTti40esFCPAgfPXiGdJxgOrxggXR8lV0xshOpxK12dk3gGm4N2W/9ShO8ggZTJ+Gc9/PCJdF/7h2+ml19udiTnGYtqovSzPtLNKkqCpIC7LLLOgGI6xtWWINcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishgoodpolicy/providers/Microsoft.HybridCompute/machines/aashishazureHVM","name":"aashishazureHVM","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"edc44460-e235-4767-afa2-b826067f452c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Connected","lastStatusChange":"2019-10-29T22:46:27.5946874Z","errorDetails":[],"displayName":"aashishvm1","machineFqdn":"aashishvm1","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashishvm1"},"vmId":"7918e6fd-a67b-48ad-b73a-92d96fb7b50d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnBJTERiM/f+KhYPQMd2OlMmjNsIUEM2WMB8D8zu0IzjBG8kyMEMkulzQcWiz6tSLg41xVCgwAWHOgD27uP2lUOYKgUrNMN5A2ZLjp9zBFTF6psoky5VN7SMmgOOArIsv8qRqvyIQePVvby7kEhNF7LfMb4TJhr5stnsjQfhlbRczBHxYSCwGbzp3dfCDtWJBMTK7oJJlgrMD7IS3kGE0qbrlEpYJ0vUJoFlF3HB1J4+T/j2bphkVcHh+rND8kKUqBj45eWjHPtG2i65EkKB793p8vwwY+G/9hASCwfMu3a+j9QfkdB5uHT2nJ3wAMvfqxnMQUSpFWX2DPHg+83SQ/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/aashishDeleteHybridVM1","name":"aashishDeleteHybridVM1","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"bd5d8d99-c5ce-47f0-975b-58f0af5cfe93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25001","status":"Disconnected","lastStatusChange":"2019-10-25T19:58:54.3694201","errorDetails":[],"displayName":"aashish-desktop","machineFqdn":"aashish-desktop","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashish-desktop"},"vmId":"e99d8fd3-adc2-47ea-b54f-bbe7e3fa2ac0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXK1lzLMmP9mTyh0c5tRDc90lMonNshKSnWxFwkcjStKbhGJiiBsphF9CuPaec3taMaLB1ahFGnIsqcyO+vEKs9LRS0ZzMTC07vCtFN8o+kXH0P4FaXXYve2yzn8b5GsTMmVfBG2TFL4ex4JCio1+S3d3bp9ZQx4vyVRte2zgIYkRtKck2+lXBaRGwMsYXHgtNSmMqp26Se962aM3hwe+wEaYb2IQrKS5CVv1GXhd1X1p7WUAgrRPtjyO11EFBVaYwbCCxY/vNLC7WlUSbwv90YBzf7Sr070vbEwScIBqrUtoA20YhjU/rDrIO6w9Hh1NMkJQlUPJ2/15TurMNqwpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest11","name":"jianyuntttest11","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"762ebff8-1e0f-41fc-8218-2fc8f1011ac8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T17:49:24.6347891","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"ab0d5943-8686-4975-82a0-bae2f70f2653","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt9BX6CmnYw6yFKayPeAy7Pnq1/pqIwnCKlCYD/JdNoYGUtFx0Wq5teP5+k8RSLTT5+Z87CDrB7uCLTtLf2qrg/gk7kB9FYRRyCzy53DNfdnNdWCYykLRK2KcreswOVH3Gka6Bt2kcJKWoVgE83RNepV9ISmosBFl0Va+QluTQLsFfw9SK0GlNedFdfUd6KUi22rnxD5d7CqmTSaj/Cjvs4WsAOWBKeFqjbf6z9sDtFfN+u+F87azA+HC3MW1xqMjiXbbVstKZQM6oca8a7LYY6xsbrZIzkpioc175817gHQ1yjfX6m0Z1RAUR3P7WpCe33yN29SRP/hR8/eyw4JsawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishHPolicyIgnite/providers/Microsoft.HybridCompute/machines/aashishHybridIgniteWE1","name":"aashishHybridIgniteWE1","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"83cea340-e0dd-4c73-bf41-5961c87cf3e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T22:32:40.3452588Z","errorDetails":[],"displayName":"aashish-surface","machineFqdn":"aashish-surface","osName":"windows","osVersion":"10.0.18363.418","osProfile":{"computerName":"aashish-surface"},"vmId":"06797531-d406-4a0e-ad14-d889b7a8f005","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Uh2KNxAmf+aSqO5qcAoLFvoaOyNsArlF5xyHj6Xy2p2HzdhyB//brL4CUAT2BZfGjCZCZ5PJ3zbBC8ixWjllHFNxCVhYa4ogLVCloVtTQCXCz/wPRr0/wpbO9OCmqq2SxsMT05UWhWMyp9TIGv6G6sCLgC05GrapssogqEPYbJlx2J533ybe0zVf14X7hOB2ZozBJNYxggvvZMfE1gTHfhvIBGlR/vwLnG7e5arYV5ELZSddflgjds8JnhxQlaIhVv4sbM3RXECJv1tNJeXzlCC2ST7Slp61Gb4hpgEkib3Qoc/t72guhp5CDMnZjn4sVPr3Jj9TY0Uz4OKz6hA0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/FR-DESKTOP","name":"FR-DESKTOP","location":"southeastasia","tags":{"bugbash":"2019","fareha":""},"identity":{"type":"SystemAssigned","principalId":"a04c76ed-9583-49f0-b14e-9811da04fcf5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.002","status":"Connected","lastStatusChange":"2019-10-29T22:22:58.0157889Z","errorDetails":[],"displayName":"FR-DESKTOP","machineFqdn":"FR-DESKTOP","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"FR-DESKTOP"},"vmId":"d134fa1f-8fa4-49d5-807f-cc204778551c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1gj3mvWXb+7bI9qI6KJcztF8wOTE1azlaRnAsMntyN7bZhRpgX81Te1GG5Y0sAeyA1VmaTDhby2HgdwzHkFuRz6QmZKaT4ILQ65jaTMFMw1DCbjdys9WVZZ8juFeuCDnk5hAtPWwnp+Ljw66TVwcLw58kutofqKEoMrR8Vk1jksQE4poD7EJZaXqxwi4wPJaDAu7Xn6R/Q3JyNMgM4Jf3MTTXA1DcJeWD6mfIN9XmMxU0b2GpzQoDiwzmHF9AeEAiyCYBkzaO1JRzudbyv5On7ugCDFSv5t/D4lqNPKYm7d3Wt6vWxauC7YdIuL03XY9EqKlAsdTl5NgJjyk3+6jjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/aashish_hm","name":"aashish_hm","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"818feb67-d022-4bc6-a529-14987bb9abc1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-07-10T20:18:57.2214435","errorDetails":[],"displayName":"aashish-desktop","machineFqdn":"aashish-desktop","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashish-desktop"},"vmId":"a7e750b0-aa5d-4fc7-8d29-46ece49fb442","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsUNxBcCrS9XZwSwBytMoDvtks/jBDyu8jAIaTchreHIE3Tu2zHmd8kczL/Mobm8czlvRpZRD8TGptblnQI/Pivud2ZL5Wen0eLjq2ff+OFpy9Azvmd6jFz3+z7bvpdMzW4MuZRdedA1dIx0v0/qwSgdpXsTb3VUBKKATE4006KvKQWyn6n924aGgQECITfKGvXgk8cYP5SDlM2Ni8Fn8RJlHprHSffy12znyoP4LMupET2eh393Q3FkrCchh/w7EUVfvZMzHbs5atWaeUqE9vmU0LKVRrGEuQ3PWtxrbe2HLKJuWkjonkULYl/DcfWDqNOJnm/bbLicb2w0bMg10UQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/duyt/providers/Microsoft.HybridCompute/machines/duytproxy1","name":"duytproxy1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"26f27625-03f5-4153-bb93-0e4c11ef344b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-07-10T20:18:57.2214435","errorDetails":[],"displayName":"Client","machineFqdn":"Client","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"Client"},"vmId":"ba51fa26-8302-41c3-bb03-ec85433ad857","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAskE9VBgjTGGMzaCy1TZuzZ/i7hcgeBHB3/WLyXtuGLDDM+NvS4Cn8w4Wikj462DZOfLUajfaJZXRoONrGpFoz/fig8DRtAUlpdPrj+Zc3Gechjp9AjyZpUoljJAJ50UJOg0Zeak35jk/2fZe3FlXxYuDRVrHO6FC6MQMD5UqIUNBBXKVlAUg3DPxnMBxohgxNyEDzUoe0bl9F04cSuG06y2He95Nc0dcGtZ5IDW2ArC8DRMyJ/9VinKfJ4YGqnIbNUkGn3nif8xF2UyVqEY1PZOwD7ZYB5ky/fVPJy8HE2meXo+Oc9UI8xOl5Qd/fQ8qiaFNovCbl2LpH/Pp8zZoxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/edyoungtest/providers/Microsoft.HybridCompute/machines/edyoungtestvm","name":"edyoungtestvm","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6d935b63-85a3-4ec1-905a-b8115cd01b19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":"Connected","lastStatusChange":"2019-10-25T19:02:07.1123512Z","errorDetails":[],"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0f832be4-6fe2-47f4-aa8a-af0696d07f69","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxjF+UzItcm4gQjQVXfwJQjUzRDK1/drH+t1XPBxxzWibxb7VdMYgZXRN0lefM1aQvrD+sehweeHCmNY00puwlMwQlE/TCZcdcT/aqtgdVa6j5cLvsmO05s3A7RmmlCd4tYD2dD1gMo9wQohQK6rPNviVeb747XIh42Fzb7TQsBrR5WaZsYi5PZm86k2AvawRcnY9KJ658kMF4kGHbgkUhNQuuIbYtcHr9i0qQKq8C3xbnuS3FiaXEsSLDP+S6DdN+LUHGxc6hALHA/2SUVbvUb4UC+WCtiWXE2iYtOcBTqAXtHj9k0ZDNQ/4csXbDGPO4XDoalB8r6q2AhVTm5WO1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishHybridTest/providers/Microsoft.HybridCompute/machines/aashish_hpv","name":"aashish_hpv","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1ee3e128-1797-448d-9acd-eb95cb0c091d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-07-27T20:41:27.489995","errorDetails":[],"displayName":"DESKTOP-NUHLJRV","machineFqdn":"DESKTOP-NUHLJRV","osName":"windows","osVersion":"10.0.17763.557","osProfile":{"computerName":"DESKTOP-NUHLJRV"},"vmId":"8704de4a-79dd-47e7-80c2-6c4e0986a49b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx/qWAXyMnXFCi0+znEgcCtH3VBpGEqkKM/5uH41K7FuBs+FUfR1q/v2BJFzQkqB4UNhUff1o6sBWZ9eNXUofdQRIXUOxQ6x/y7IonHdfY+I/gtyNpDl97/aOiyLt4EvkjveKgPKXTdXnMLbgHWlUFhgmQirw9oDodAUl8JYzdBfJiSsnXhboNc/PVfGOnPSLI9P6w2Y9cs1ztnbym1KLw+zH3bFLmAcTkpk4ssxr84uszzSfbPsVA3iLnFG6ubYTKqz+Q0IDsSd/IQK5xTjT6wpoMVZk1FVOlhEdsQtuk4SsJZGMu1vXPNeEEW80gaTdBF3KEN2YgrbJr/HhRAd2SQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HCRPSynthetics_USWest2/providers/Microsoft.HybridCompute/machines/HCRP-e348b74a-95f6-4f0c-9cab-b356854188cc","name":"HCRP-e348b74a-95f6-4f0c-9cab-b356854188cc","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"076148a2-f008-48d8-9a0e-7f64619ac1c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6807eb3c-1c6b-491b-9414-24fe6a0c821a","physicalLocation":"Redmond","clientPublicKey":"MIIBCgKCAQEAikLZJbsO2+El3aWZCWYqlEYk7LqN8vmgbe2XfFOxEui1YY2BJKIHP2aYHuLtE8keUs9LrEpgTjGnvBHrRyE9zwyeOkc5FxRXs1zTnbOa3eWZxzmiM7zuR41RYdrlZhKfOt33biUsdO/fSHy8Kzi/X3iUD/WJXYeIZamor2kDLEHmY5FK/CvaRrb7mEJKlqIEUyHA97zue0Patem6troGXuPR4qSvKGB3+/GGZT56u69mFzO7RoM3tQ5RwXpxM7pxfc2msl3C9snePu/Q73acocsRqHgjhCdcKtYr9uqGKyk1DpL93OpUhyai8JUP4vW0nQ6ccvsdTcaAn1h1Tp7btwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HCRPSynthetics_EuropeWest/providers/Microsoft.HybridCompute/machines/HCRP-b36cb938-de33-4d85-bf66-f9de339a3af6","name":"HCRP-b36cb938-de33-4d85-bf66-f9de339a3af6","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f58593c3-3dd0-4523-a8f7-58b057410577","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"7d8c52eb-4c6d-4aed-9e6b-c12dc7392da9","physicalLocation":"Redmond","clientPublicKey":"MIIBCgKCAQEAm1Z26Ivqog6kY+49bKuB5n5Qiy4n+ZuWOWeOwDFDMtzZSGG5tnPgAh0Y9wtghpMjhPRps7BIy7lVq6uwf+vXYqSGs9qht0yqDUBT3LprakZ0waDdu6e5DW4me5a63b3HW2GS/EDowkd/lpMVTbfzRxt8Q0QtfUCYKPYw9jFoWXUwhcjrrCDdv+qn/IOl1jMo2TJBcSSyT/nFePQQ9kIOTHskQAqvxJyzU4dXHurPTdW/o6QF7uXbgsBvvlv/ooqH+lD4jMxAjf1Uu4yvpnre4IBXdEfPUhe7V6K2JWqzTfX4kosmOEoAs4rF8VSM9kEDsBheF1Mo0e8HhMbzXiUQmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/laharirg/providers/Microsoft.HybridCompute/machines/slpdevbox1","name":"slpdevbox1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99b3f96f-67a7-4d83-afed-28be1f26d720","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-24T18:52:52.3481268Z","errorDetails":[],"displayName":"slpdevbox1","machineFqdn":"slpdevbox1","osName":"windows","osVersion":"10.0.18363.418","osProfile":{"computerName":"slpdevbox1"},"vmId":"ce900c87-e38d-4c01-8735-fc3b9af4a866","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyw61rpCzIAl1KdIJBLLWFtVQ58ugfCssIZslCN74Z13OiH0kTL0MoWhDas8M1AIQgiUqrOeC45034JE0bTvDSJ2bXSnsc8J2sc2gC7IrCCH3vOWCMrqG4ChYHWeXaoebppwo/bNEpPC6Bwl8ihlYFnvAv4fx4VqYDAKTdMDSNg5QPXApx/yqPldo/qZD/s/4ag+Eqh6HGP7cO/LbYNRz3TKHfobhaggxJO6M8R4zUFEWY+8BagCN+xF3rNd9X43oEP7VaOetE9gea7L/74LOAe5Pv4z1LGrsNqMZ4DNyzk94rd7DVfxcVNIxqqbaWPw4KWgxq04UrEVSzKZrMpflbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aaa/providers/Microsoft.HybridCompute/machines/laharilinux","name":"laharilinux","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e0777d49-63fa-49cb-9582-dfe7f0eb513e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-07-23T17:50:26.4571057","errorDetails":[],"displayName":"slpdevboxlvm1","machineFqdn":"slpdevboxlvm1","osName":"linux","osVersion":"4.15.0-47-generic","osProfile":{"computerName":"slpdevboxlvm1"},"vmId":"68c970e7-bccb-45d8-93b4-0f45046f2843","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA54K8Y82740qPOYfa33Fuuj+Lt87dZJiEKMF4sBFrfUU35LjWc63tSjwEnJVofAzQXcHb9bR+etdhjMQ28RcvGXmvVnqOch0kyezBS8H2bEuHvsVDhaKi47yLjuzyrOgK8g9DuPubY2EWmMR2gZtewFSfu+B2MIUEl2XFBHrEpmMYK+Jef6NEgBb0IEIu9eW1dDIph8xYgIBslxKslvf7MFmh2BSDmiKJjv44+yjbqRQYuCA+ix8I2vBgTWf6GXHh4feyLGzXtWkk4Q0aOR7S3mbEaeq67lgayKKfjr286boHPY35EiNikaDhFXwv4twN5gUbTfHORxDUChfdNYOSkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aaa/providers/Microsoft.HybridCompute/machines/slpdevboxwin2","name":"slpdevboxwin2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ee34be08-2848-4203-8ba5-039c1ad2f916","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-10-10T22:15:41.8328344","errorDetails":[],"displayName":"slpdevboxvm1","machineFqdn":"slpdevboxvm1","osName":"windows","osVersion":"10.0.10586","osProfile":{"computerName":"slpdevboxvm1"},"vmId":"cfc2fff2-1d67-421e-aae4-b4d083277e12","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0SrcI4c5VK0VanAln2Sj/rUfftXJGBY+D1iBWeb+H6N7J5b18fmK6Q1yxTF46qlVFbP1J2KAQDaXkzyZ+KExFF+d/mTJJrjqeai08H0UjUASOiDgtJV1HV2i4FB416CFcpFsuDHZ+VIAOEPIx0JPhCD3sAy+zXvODgID9cBAuZVzoLasuOUchFMXdmU1MX8V8EvM38/hqTExbOq6KZkCoFG7Q8Wa+k+Im7U0FNlvBNSgVh4XB9zWH8Mxi46c55ANXJhjjHnWIPfgQr4TljV/Gijkre4mViJHb/eG0Lsn2QDA+kEOaGXmyarPpXwguLrCu8kmCNXr2Muvv9v62iBm6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/dfsdf","name":"dfsdf","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"383f3d37-35fd-448e-9b1e-197548301300","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-09-04T21:51:41.7692665","errorDetails":[],"displayName":"DESKTOP-N1DNFRL","machineFqdn":"DESKTOP-N1DNFRL","osName":"windows","osVersion":"10.0.17763.134","osProfile":{"computerName":"DESKTOP-N1DNFRL"},"vmId":"73ce9706-5938-4b71-9fe9-4a1f5a26fc49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2+jHohqk5PKmy9ok+WFO7Y/mlB7wO6UrUQ+80850KsJ7vxMXgZdH+mK4HFLlD6wSLmKekI7z2td6/fg3t1BdL9au/lZO/xy1dkLAcsbSUUFUrzbUlTdTnc7WsUeXUPe4aaGzioKnlAa3cHr7WYJ8300MhemValvrK2uO89MmO+mNSe0aXjI+7Pn1c9FYf+/AVJ2YmFAvMgCU+GFTwI4aAoy2LHI9jvwpwawY3Uy7p2+L/CoEss+3R8gLR5g6rZ5CdtbPDjCQJ+H7EFJ7XeR/uPKFvAWJ+S6qZr8+oBvA4zkSnnGxIJQ60ixZJWGvuLS5jao+F+VsnTImO0quhwLxLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishBugFix/providers/Microsoft.HybridCompute/machines/aashishHybridDvtRes","name":"aashishHybridDvtRes","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aae33f7a-b573-4505-8dae-6e404ebc518b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.20017","status":"Disconnected","lastStatusChange":"2019-07-10T20:18:57.2214435","errorDetails":[],"displayName":"aashish-desktop","machineFqdn":"aashish-desktop","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashish-desktop"},"vmId":"c11a99fd-1985-4ccc-bec5-dfda6dd86387","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4crXSwZbVgKA4LZ7dc5XyXRbJ80FTNexm8GOWO+krkI83e6XXe2Zh+26RHp0q2zH6rdHkvtNVuDr/SEioC3RNoYXBPT1pTHPy89w2L4Syj46tPVjuXWCW3fPWCIEvjDD4vuiFH9SHtm0gbqZiL7Nx16s5+rGn2Vuul0JJmmoip1FWTB5DqxMGJibZPGnNw6+2oS5wZZA/wFoxEsn7FENkF+UMLsN/vuVGQ6hqJgPd/gu0gWKwi40iSilhVn5GXtrZriKCnJFBnDln2LXYEAIsq6SQZne7+l7DwRLAESJOoEagqkhG4JeiInS4GIlqZVYXlQzbaDAHiU5r485PEseZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/suso-eus2-vm2","name":"suso-eus2-vm2","location":"eastus2euap","tags":{"suso":""},"identity":{"type":"SystemAssigned","principalId":"587dd0f3-fc10-4bf7-b18a-cd748f667021","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26003","status":"Connected","lastStatusChange":"2019-10-24T17:47:53.7803294Z","errorDetails":[],"displayName":"suso-eus2-vm2","machineFqdn":"suso-eus2-vm2","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"suso-eus2-vm2"},"vmId":"7ff04d84-1d31-475d-a22e-ca546e30aad2","physicalLocation":"building - 41","clientPublicKey":"MIIBCgKCAQEAqsFHvvVwzTAx0C6bJD5FcLcs96MdywVXW4TZv676vY+Sl9UcS+mbKXQ/1BWAAqq3tc11H65dSbwRS4mBmeym+EYNnmeCl5Xvc6rDgCBLSDxUziZNH/S1u3bmsm787CwJ29fg2WFAeMM6G/lvfYaSJfpwQI/cMY0TL23/POjQZuYN/OzkOQDcWIUp7G3GU4fSw7O8DWewwbCksewArRAl3xxyIIsYjgnLSjhq1GzWdre1OchM8dJMMeLNBOrdNGTg/QcWNrTUCSjd7TjHXQBnQIifcVqRhuh77Y+1ruqBMAVVQsTe7D1dInnPpAqDfSBYA+LXbhFts35jB0DToEAtgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpcentraluseuap/providers/Microsoft.HybridCompute/machines/wineastus2euap_11","name":"wineastus2euap_11","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cca3ff82-2648-44e1-8248-5bb525622e5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26003","status":"Disconnected","lastStatusChange":"2019-08-08T20:11:10.9466588","errorDetails":[],"displayName":"DESKTOP-MJVSSPF","machineFqdn":"DESKTOP-MJVSSPF","osName":"windows","osVersion":"10.0.17763.615","osProfile":{"computerName":"DESKTOP-MJVSSPF"},"vmId":"63149ec8-94b4-4b56-ad37-8b6c94341dd3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1QbDSTdo94xRTM8BGQoJGuKHzx52/xRs0bMFuQ+s4QXVkmPbXLm68KeX6i46GGQEFcznC077kO3gqFmZDVZx2OegJ+54c19Kab/zhUC6MEqNxpRK6A5JOvqN6rKLuX6NWmOCUM3TLKQNwI/YAh0waihWLHEJR8ryvZouk2E4mo6kaP8tlKwzyXBBYIYJ4+/rNI/fx0LM+DfjFIUzUf2pRJBxGGLEQflZIcaehDAmxbNuI5aPIX7fc+SPV88Og3zZ7JfERivc7YXNmJ+EB9EAf0/HRhtpCzuLV+AG8opO9EVQwIj2DF7CTeZtw1VBSCSqDXAn9nv/8CrnxxfDrhmwrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpcentraluseuap/providers/Microsoft.HybridCompute/machines/lineastus2euap_11","name":"lineastus2euap_11","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fcb7da14-ac82-4bbd-8a5e-36398799122a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26002","status":"Disconnected","lastStatusChange":"2019-07-10T20:18:57.2214435","errorDetails":[],"displayName":"ubuntuvm","machineFqdn":"ubuntuvm","osName":"linux","osVersion":"4.18.0-1020-azure","osProfile":{"computerName":"ubuntuvm"},"vmId":"2e8a2d76-d2fe-4d10-b319-027e7addd920","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA07+QIR37wH9tTNtM6KJNqnkSfXP02IkiQSLI9QJdOfsrdANwlhBjlmv5K+w0hiLA9okTw7O44p4r1zHDYNytupO8PqzFWqcGS0eZIfCHTnH3f4fXBDIddCaeo6nsKpichOaJeP/Ad5hjIt6bJEO1JQzsyIqhd1Wgn7jMQQ0Oy2/a8PHlJC5MPJGs+/PXruYuORsFzl2eSUVNuYyX4RZYevonP7IH3XU4Nm2YVrLyJFD8xowG8x66DXlvrmZreIiBF30th2QMI/7ZePvRcnGrjzRNPZ2bBHNQKZEywapUrLTGb50QbyLXzkE2oMhdn2DD5+2rp8JX61wDEO+4lDwdVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/laharivm2","name":"laharivm2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5c2b7851-6640-4b31-a194-d18e219b8dc0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":"Disconnected","lastStatusChange":"2019-07-30T18:43:09.768826","errorDetails":[],"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"065fc90d-374c-4f25-a9ad-3ee456534016","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt925A4nXe0HzcDjt1pn/m0AyQjM11tsYljGH/Sd4CGabh86UA5FIGDDiDWrXEitqIawhIc6oOLMQWHUYi0MGnuJFf0isqDMQYXfYJgwVH+wGCJggnM2iXeBNI8W6UfxUI7qD68DebVWvTz7lAMVRxU+1KCdfWn/CkG8svbB2szealhGbVLcdetHYldeD6kEusbyPDU7K1aSDbbqZ97MWBHGakhHZ1zKfCJRZ5U5Hl+4hlTb3GQWZHvAqDqqaS2noLw8CDFZhOTNayb8c+EGq9CGmijPd6GVVMtTd+LDU34l6OTfCGRurswxVb+vELMselJs9MTr22pTICWXunvLLfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishManifestScus/providers/Microsoft.HybridCompute/machines/aashishHybridDvtRes99","name":"aashishHybridDvtRes99","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4a069f0a-f4b1-44dc-9840-56917fb368a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.27003","status":"Connected","lastStatusChange":"2019-10-24T17:47:24.2478527Z","errorDetails":[],"displayName":"aashishwus2vm","machineFqdn":"aashishwus2vm","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashishwus2vm"},"vmId":"82bf0b69-8833-4971-bcb2-0ffb93638dba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoEMPz2uXl2A3DgfdfR74u+PJNvTL3A7DHGqB4+JiredO3k7KjDaShlpNF3Mi9vb6FR0+i1/CdGxfxBGM2rnMrKTYJQbm9sDjS4pQl6GRbhx8T+a4jztvL89hm+ylvqxyTWBpqOaj9+IrWSTFbL2C+QGX9CxFL98MDOVTiUsZXE5D/dIHathkOdTmBvnFlBeOWo3aYFBOiZOvmdUTErJhmgANaHGxsqhpmiLBmSQ341nVtc3RwhjiSiL1k1HTFr+lv6JdIMujb2jpN+naVQiebyJpZtrJU3vUpX++dO5Juy1o3+bUpFPBnzxbATs/pGMqBzkPlrW/i8qhhA9Y4vujxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-trial/providers/Microsoft.HybridCompute/machines/joinni-trial1","name":"joinni-trial1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"109df763-0ef9-4650-b148-c4494d28cf50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-07-25T10:05:39.8628233","errorDetails":[],"displayName":"joinni-trial1","machineFqdn":"joinni-trial1","osName":"windows","osVersion":"10.0.17763.615","osProfile":{"computerName":"joinni-trial1"},"vmId":"c55bbffd-16d1-4838-8481-efb1f25f9220","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2H6hsxWFqWKED1AZLgszduuLK6zd5kDS5eNzMpkEKzCQ4vH2oYOKv05dR2tCu+GCV1/8IJHOBoxyHoI8X5GJ1iwPv2w/1nEfR7pxfKRCstSXP2LTPFlJ9BLMGo/mtMldyRNoQFWiQ8qvfEwzlX7Bl2sOjkjTA72xCR+WUjD0sDujpjFKSGVJMxIMnTWZ8YwoFKRHaMVDNNq0CLdhfekzPxSZf9rNb/se6WuGfMOp6jKWa/gkeG7ur2MuwpIWhxoQezF3WlFxcSMzAFkbd2zrLOP1sm1so3ECDmIgs9a/mJIL/5BcTW2qevaYaYMx9ZLrQI1Y0rGARZV7h0CucNoJPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-comp/providers/Microsoft.HybridCompute/machines/joinni-comp1","name":"joinni-comp1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"47c7f47f-92fa-402c-a589-70928df71bc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-24T17:45:56.9926436Z","errorDetails":[],"displayName":"joinni-comp1","machineFqdn":"joinni-comp1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"joinni-comp1"},"vmId":"35a2e9b0-6d2a-47a6-8f1a-4fd89b3a802f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8QIOrBBu4hyhJbXLSxfUPKUlxTwDPcUBbBJCz3bEFCU8ag6bTjv7N4bKe87Nv8vzY96wReCWq+hI3n8JL8MbImrdKIHMuDVaYRGzYvMp2PnEWfICMa003xtjRynmDhmhH9z08Qn6ocRuaH/8xa/3ISTiZ00KtYvIwZZGbv8IRudKYb35TOy/aT6ouIci2QR64QsRTeO2/Cr3zUN7QLyYDB9130FGEI/e1trgmaMb3E7wEBUwkAEiJEK2IzsI8afF615FKq331+C5kv1yKlnsHwq+lDJI05gtIvCPMpEVsO+Ez8nfDzBN3g37ht+Oys8sGBa0KBsKL5zPTlRDrDbgxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HybridComputeUXTest/providers/Microsoft.HybridCompute/machines/Test-HybridCompute-Connected","name":"Test-HybridCompute-Connected","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b4164639-6234-45f4-aff8-35cb54a873f9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Connected","lastStatusChange":"2019-08-09T21:30:14.1056664","errorDetails":[],"displayName":"connectedMachine","machineFqdn":"connectedMachine","osName":"windows","osVersion":"10.0.18362.239","osProfile":{"computerName":"connectedMachine"},"vmId":"acc5614c-60dc-4c48-bdf7-27ba2efd6b5d","physicalLocation":"something","clientPublicKey":"MIIBCgKCAQEAzQE3h3oZCHeXcdNYuSzM08Bf13Wcg4WeqRdAHej+Hu1tX7H8uaJwv5uXpjT+G+5+wz4hOR/IhAX28FgE4HPq+3tHVD3KJaPJSfGIZ9i2WsfLs5PIM9EKBqtK+Wcap6q9tk5+uVSBldKTgk79Hy9Dy1niN3BJMShAVGi1rE0k2QdXVUnytiv4GoFcA0Gwt7sLnYhfqg/05gAjjT8AE+SyRt6x76lggDOWpwtGO+7GsfQPvkGpsC7et+j6In6USq+2ioCK/iV5Cg/Cts7N5RH2/RDlHXbKacqk/80mo5s5lnFI+nSCGTYeoYB4WKEhmhesxbX55XVe1ZkdXit2Db3OkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HybridComputeUXTest/providers/Microsoft.HybridCompute/machines/Test-HybridCompute-Disconnected","name":"Test-HybridCompute-Disconnected","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2c113d95-17a9-4df3-ad59-51c31ff2ac1f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-08-09T21:35:14.4059936","errorDetails":[],"displayName":"disconnectedMachine","machineFqdn":"disconnectedMachine","osName":"windows","osVersion":"10.0.18362.267","osProfile":{"computerName":"disconnectedMachine"},"vmId":"60d9edab-9732-4753-bd65-7d7a745a78bc","physicalLocation":"That - place over there","clientPublicKey":"MIIBCgKCAQEA5NBvehiw0RgrIzy+4o7CIBEK0xNq8eLxpC2d1Lq5bhh28Stf3ZDfo18WwGJiJrkgiztfs1DNKpZii/OptVwpOpg/t+SDabBd4n2qNP2rKurxmBcKYpmhgWvVvGAE1ByfKRkAloJDaSUKGU0I3HbnpmsuYCioWostbyjPZOTqQGvCAwhU8fCaegAkIcr8LfpMnflrlmCroFigjCPGvlHNukMYl12uk1yfF6lVx4CLmYR1gxol87YWIZQ4rRELUyZLcgh27T/XT5ASx41PeTZ6ofYaJXFoyXFOPVuFiWrBkS8hypLEhujOXWTn2KGhylhkIQoLOJNvWYh0XhoW3yYpSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HybridComputeUXTest/providers/Microsoft.HybridCompute/machines/Test-HybridCompute-Error","name":"Test-HybridCompute-Error","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9629399a-4f3f-4aee-a633-cd687452ea3c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.01002","status":"Error","lastStatusChange":"2019-07-01T23:15:50.662108","errorDetails":[{"code":"503","message":"Internal - server error. Unable to make pancakes."}],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7bb744c5-9aaf-4005-9f82-44be5717da69","physicalLocation":"Hyrule","clientPublicKey":"MIIBCgKCAQEAxrQseKUW31uIknx9/q4W4zgGY5ozADIz9rGj6vACWn6sUQ6YDjteeY/U5qW21C5FQTmElFE4lQ4EYbqkm6J3KdQwMPsmLOU/A0x3YHfqXRdULrkwmzUBxReDpxy98NUDseEa9BpTo2fZCj1v20VmybdcLIx3cdf6ckjWKcnG40aXYdSl1oBCaDs2TsOjxFhKQHighdygOAGEVsXZgnlSaeRuPfvgzveLWcJCphSVa085Qr5PkK7u41MOk6C75D4ybXaUVqMduvMsZTql7FgIA8rn+XAH5RxwzjCNrzkSacNPuhLX65bEEtY2QU+PmcxlJjryHU/y5PVjF95AiWW+ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntt_linux6","name":"jianyuntt_linux6","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4847b251-d48b-4517-be9b-a6e26fc06a3e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"10e154f1-a455-4943-bbdf-401d348388f7","physicalLocation":"redmond","clientPublicKey":"MIIBCgKCAQEAlim3Z2r8aR9gk14l6FgjY9g0lT0dkzeJdaVCxDAn0jKZdsCA/iCSrv+8zCuqJLfVZQu0zYqhwC3lSd4bUHLODYtyDkjI6PRCPhcyYv0NnkQjUEi5iWqh3MzyHOt7VAZJtmvpOlaADJojIig9gd5ap0TSxJj5QpLpa/kmz230bv1xc/3skqxK+lrrgYN2Ln7O33FU/7mskmIwbLmWDXoqs9++ugBogaZSwPiLoUt7lIUDknoQi/ssOByqLhIj4Rs2VtpKzSI/qz2JLA/2cRra+H2PzNGlW8GdYZlYRV9EnOSi3Ff/yCsObOwk3OeDVYYS/9rYxOX47rYJ6ECSX0MvowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-test/providers/Microsoft.HybridCompute/machines/joinni-test1","name":"joinni-test1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"449f329e-f628-44e6-ae21-5c1802120316","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-24T17:46:18.8648403Z","errorDetails":[],"displayName":"joinni-test1","machineFqdn":"joinni-test1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"joinni-test1"},"vmId":"c341db9c-431d-409a-99fb-783487dda936","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx8JOBfSewAxe5rP3XECu66N/QMOCbPKlX6HwVDnx6MXMPDLVSlOA+uhDBnnaAv+YHy9rLKcpE4SaSmPGuolMMAT1WuzFCEdPnKPLSRE1hEdSs8G41+9WHvpE3pjxZ/67alrfWr4QX4oIn3izoPlGM7MuMrq+HNTP8SB+eTadMfRshTo4ltQzWa1EW8TarepvGB68jyHT2nb2EWLTSV8vRlybBJjVlOz1y/8G5vftIuEyg4AR1qOwuauV59Xsp9gGZ8ws6wVWvJz8c20WHJyst38z1y7K7h9awoGsZRN88PT9YE80HZf5MC42UMWd8ngmJglnc+b/x0r/no2Kp6vO6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-hybrid/providers/Microsoft.HybridCompute/machines/joinni-linux6","name":"joinni-linux6","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"340540da-e100-4951-91f5-1c595f748266","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-27T18:13:04.3528202Z","errorDetails":[],"displayName":"joinni-linux6","machineFqdn":"joinni-linux6","osName":"linux","osVersion":"5.0.0-1022-azure","osProfile":{"computerName":"joinni-linux6"},"vmId":"e086a4b6-abb3-4603-b617-22249698924f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAstrr1J34uoxVMwwqMfU1V1Kw0oXAxFmkuK/6qNlR+y1cZVJSokD1aJ9yDdzo47NWtmHSLd0c3xYiuszNAR4zL/MuigG8/u4TNVWe/D0ZYu1qe/6itCw5fDhcWKD35kSTSWfIfSn/KongYAWGYsJtB4S75PI4NTTRDa0AnIQtuW/fpyARqfLLD83ehXuIYvlDa3mnKAjOkjuB8DJHuQaCZfMNz57YLCUat72gG8sxUg8UCOpnbCD8zH38AS3FFFWl+iyF1bGu/kpXEphMP9OQ4P2Db/B84gy1o4pyt2nUKn8ZWfuGCPZbTFxPPxdsh+aw77sEzRIMq6QvmZmL0a7KXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-hybrid/providers/Microsoft.HybridCompute/machines/joinni-linux10","name":"joinni-linux10","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"df03744d-dc28-4843-9184-fda4291d4ff1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-26T21:59:57.6589401Z","errorDetails":[],"displayName":"joinni-linux10","machineFqdn":"joinni-linux10","osName":"linux","osVersion":"5.0.0-1023-azure","osProfile":{"computerName":"joinni-linux10"},"vmId":"1e0c0731-61e3-4f6e-979c-6277288680a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwAsJg3xh9jarbyYv3xPq61sjX08vU8OYbQyo4d81z3AJ7pA8/RUA8WV352NXkYB5GQsw82uWOifPYfdbJXXpnxROOaeUw99OP18mhcBWEv2d+xQbCIdg2D4p26ArrKEhH/ubPLbbSPT5ekidedcsMuiKZoeJ5I/pUWwYfAYQcO3iQG9iMwcniQBpGg3tCyiZTQ/vK+g8KqIXPDDh5pNfN+4RmeYqF3m3CPIGt3ulC7vm6zrCqTpst9p2CqdKkqsvxmWTl0/lOiqBHsdwthvwdj4KeHwCTHt9rvVHxXHYoOwunSoCY/adSld/z4XMCWogjQsVAHNjSiah1VN/PmrmZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-hybrid/providers/Microsoft.HybridCompute/machines/linux-demo1","name":"linux-demo1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e2c9166-c601-4025-9b23-0c35a2c34667","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-29T19:39:29.8521048Z","errorDetails":[],"displayName":"linux-demo1","machineFqdn":"linux-demo1","osName":"linux","osVersion":"5.0.0-1022-azure","osProfile":{"computerName":"linux-demo1"},"vmId":"345b1fd4-c067-4452-a6dd-2b8ac630297f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1rUMCcLY30x3A9o+bLuiLL6he4xWHGdGCVgRKGusrh4abn12u/DQp84v1m5M7mWzQXY4TMzl1lMYdwDx8fL8W4lFFAPMx1ocfw19a87RLPBnnApoHhRcdB6AAC12AQtdsv8SI5FDe71Twp6KIRCKVjuT4tIA/oaPtrWE8yHu5pcGmVmTPod0SPM6K8TO0sPq/8WQ9h5kO/d0n57gfdKnvgClI37h/bjc11H7+3cIUaiWr2M5D6vnOfbfoct4sRSWwgZuo+3Q1a/KksYaKiYEG2WKB70T47HhQnS6eJ26eEw/HeI5YN7DIiOtVBS+VfNpHXNmRD1gOUIir+n4BlcdXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-hybrid/providers/Microsoft.HybridCompute/machines/win-demo1","name":"win-demo1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6c9541ed-4ced-42fd-bd24-70fd89468a2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-28T10:55:37.8337352Z","errorDetails":[],"displayName":"win-demo1","machineFqdn":"win-demo1","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"win-demo1"},"vmId":"55a2ac6e-1863-4082-86e4-71078a51f93d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAup0vxcDUgGy4n6lAqOmSoB4mt1SJ6OXzGfZrqXDCfrqPCQSfN+xcQbkerWh3MgBNJwcWy2czBBjKroIJePIgsbbBshZcP/26kFv+PHMmL/G30t7TuZ3fIeKYEX5m5e+Cecqb4SYAEV0nTZVHhIIH77xwtk6C2dIaPm8aBJcLmeuXRR+3i3JflnxDA45cTR6g9UJfMdeWYkqdnqRZvk7S/84NMcY5/N7vawAAsKaouN3aKNqV+awYBtOsd6cLGGBqx0xYddNtSvBNnxeSEU/HXx0al6KGoNvNsrKKym0hTGIrmLTdCn8km38QCwFOJLWBrlGzZuPDSdF3fr1LDE16pQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-hybrid/providers/Microsoft.HybridCompute/machines/demo-linux","name":"demo-linux","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"02746dee-0b16-47d0-a247-156b824ac395","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-29T19:40:10.784522Z","errorDetails":[],"displayName":"demo-linux","machineFqdn":"demo-linux","osName":"linux","osVersion":"5.0.0-1022-azure","osProfile":{"computerName":"demo-linux"},"vmId":"ca82ba53-e1bc-49be-ab93-5a7ba445abf9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz9gNBZv9s8kYxfudl3dnKNU6v/1xu+OM/LwMPCATrfdP0rwX3IND4yrYD0uJPlPW9+phAsR87NWy32SzP78ojPnHtkxRgqe0KfozBqfQ2CU+chzSaUDGUEo3b7JQHy5PNqyVfXzu6FFc9lhx7ZEO/Gq/TJbWOQIdPpYCZHNwCzmSoQjCUce2iOKF1oyYCjxC9WE6To//sZ0rGURM6Z533z9ZvvLhxeuv0uJhtrIC245IzK3PG0sGfjJXoBYP8DjfFc7Agx3tRHshNxoGQXnfhEB6zQCxOTxWWE2q+eUnYWMeeyA2Y6eOCjdtxtqB0GAG6q95JHGwzn/85UHNoh9RjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HybridComputeUXTest/providers/Microsoft.HybridCompute/machines/Test-HybridCompute-NoHeartbeat","name":"Test-HybridCompute-NoHeartbeat","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63d05895-f9a3-4fbc-87f4-bb6e8f4bc540","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-08-09T22:39:46.6678869","errorDetails":[],"displayName":"MIWEE-PD2","machineFqdn":"MIWEE-PD2","osName":"windows","osVersion":"10.0.17763.437","osProfile":{"computerName":"MIWEE-PD2"},"vmId":"b260f04a-2490-48b0-8bf5-c221de3665e1","physicalLocation":"the - moon","clientPublicKey":"MIIBCgKCAQEAqPMzts2JxuJwPWNOYo8RegZ3KC1vKv+lD3xP5OSRKOASMbEpCSQuERl7ztcALXSpcwo4kLhvH6vMflOqxwGuCtTsl0poUrLrMLY6EVNcznr4b8TvLZewQ6s8BDokXNygvQmGiH4oYb3nm4z/ykSJgD4IySnNLNwWrXScskMyZ0rsUC/cTIM+SQtyPOvVHEF5y+9ZOFjlMPlXbgp5CRaGrjg0wwWkM0YZIm88MDMv4f1dbRssiIXuFYTcYPuBumzr0foWB9D4jM5po5zp32X1sdl2H0oQOMbL/CvCvc2oMnk3CWhTe5SKNKD6zpC+rjuDpWcPNds39EbQWorgxtAKwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/suso-ubuntu18","name":"suso-ubuntu18","location":"eastus2euap","tags":{"suso - key":"susoval","susokey2":"susoval2"},"identity":{"type":"SystemAssigned","principalId":"6230a8d8-1c73-4e37-8352-e2f03ef0c46a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":"Connected","lastStatusChange":"2019-10-24T17:47:18.534017Z","errorDetails":[],"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"e6287d82-799a-4a3c-9b74-499c30c845f2","physicalLocation":"1demo - room","clientPublicKey":"MIIBCgKCAQEAoOr38ATYYr/nbsXD1FA7xPD813bn9HXhh/0fXrzf9QD5M/KWqsLU+RLgeZJqdfSD3PpaUxb0iwloQppG+lkPJxpsqz2vl2n4lj7br3IY9DGev7W8095SDa5idyvVKh+Yv7njs0yn9Ay6z2ZzSn6MHMbbCNp3Z37EESAEaQBGOtEArp1TKHibclXD9PocYAdMTWq05Z/eknx/ZoNC2MBY23U08UEDx/hJYNLc4fn4cdc9/T/wfKhX/Z0R4ulaftugB0ktZ6ovBcZmZ3tZ+KfQ+BZQoeVr0+mvDWvmgBFcv0wwTi0ONCDpgMbjx+ge9fE/4ov9P+mkQUBeI0eWZ0yc4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susorg3/providers/Microsoft.HybridCompute/machines/suso-hrp-vm3","name":"suso-hrp-vm3","location":"eastus2euap","tags":{"susokey":"susoval","susokey2":"susoval2"},"identity":{"type":"SystemAssigned","principalId":"18349194-cf76-40d9-b64a-c0196c171be1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-09-05T09:36:46.0576249","errorDetails":[],"displayName":"suso-hrp-vm3","machineFqdn":"suso-hrp-vm3","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"suso-hrp-vm3"},"vmId":"36523e75-6959-42ec-989d-99b60d3a2db6","physicalLocation":"dance - floor","clientPublicKey":"MIIBCgKCAQEA62BCthvFuY+2UZ/FFw3i3fMlgpQ6+qmqOfX/M0z0z3epT7B65ZLdZiVUBmR6jUT8iCUwEeqNBL9rEWBMsGbc5fDAYi1Vtzqi/bGw53uPNfJsvGAx8WxzgUHZGH0Oz7AJTETqU2hZNpV9g9l5vJILQRb0O1MDJ6fGLcODEWFTg3XkWy14tMj/Uos4UJp9QZ/WQCUpieg2qenrTJunnAdzR3kpkUEW8chmDLwOpYoRF6H0WwM9gLXo3ExJGAy8FWls80g1205pK8SJO2jcyhLz30+a5h7PZhCVTVw/+a2oPb1iXezuRUh3hfPUSgIPyMp2bldlydDeBKV6sWovj0jVsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susorg3/providers/Microsoft.HybridCompute/machines/suso-wus2","name":"suso-wus2","location":"eastus2euap","tags":{"susokey":"susoval","susokey2":"susoval2"},"identity":{"type":"SystemAssigned","principalId":"5a4eece0-60d1-4e1a-9f12-54db4f802ab0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Connected","lastStatusChange":"2019-10-10T05:20:55.5175087Z","errorDetails":[],"displayName":"suso-wus2","machineFqdn":"suso-wus2","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"suso-wus2"},"vmId":"66908ec9-5b81-4769-8466-9f705b2908f8","physicalLocation":"midnight - moon","clientPublicKey":"MIIBCgKCAQEAuFxeBt4Lw13AuAw7JBdqHHSek9MDA+/jCw9MVY52uolhzywC6VSDo6hkjdpaZETGb5UahXd5Bj+4lJmAsrK6ZWqJwYM2CRiQQfW38m7h8I/nkt4CiWiiqUjIiiR5qFABhtpIaQPtf3f1GlCmi0e8HASP6PK2yXox50RaTmg6xE3zsFjfRlUUYcvqLmD2ltem6YSf7XFK2jFPJxvqpoBG7xXuSuY1cCzT+De/87COlqk5m191F8DBZAd8ZIvD1nIJNVLbmJmj3Zur0W2LVIwsS6qvHRkrSQpfY0yfWzbmud1+sdHx+TjiQid7Kksu8gChYU+0SOodlt8WNAFaNNZuqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FR-TEST/providers/Microsoft.HybridCompute/machines/FR-DESKTOP","name":"FR-DESKTOP","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bbad0922-3ac2-4394-bdc9-8fa4a4e8883e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":"Disconnected","lastStatusChange":"2019-08-20T20:41:46.0330062","errorDetails":[],"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5ca230c3-074b-463f-97f1-69cac5c35f00","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxrXqxPV5zxWv7DsJEL/cvbhCFtFd6rMTN9Rw2Gc9+FYMCyU9x94fuFf/6/Ha/6Da9W8boEaGpkJEqh62sOASDZw39X9Y5uA0ZUDGg0M4CBI3o6GF5zTnaZ5xxgWWBGhDWTF/uNdmoU1d8qthUFA/Md0QW1d1eBEdTADxGe2kXkCWe7Cif/twCy5z5ybV3vFwDbA2OtOuQgvFKk5Go9fssHnWvyvpHljcB/6NsPKTb2WVhAimglA4xFj+JWJ+zMHx9f3WmcdHKqngo7HCy2Wq44EM5LITWBO6MjXBiOoFs7PY76rLwKn1jHQ0ZOzrqnOuZst+cELJFtvpblUFcnI9lwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/duyt/providers/Microsoft.HybridCompute/machines/duyttest","name":"duyttest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"07fa084b-c8c9-4c69-b3c4-2ef46c1f0940","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19001","status":"Disconnected","lastStatusChange":"2019-09-10T21:12:55.5215734","errorDetails":[],"displayName":"Client","machineFqdn":"Client","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"Client"},"vmId":"0dd741cb-bd52-47c5-9f2c-64a07c60ceea","physicalLocation":"hyperv","clientPublicKey":"MIIBCgKCAQEAqktOh9c+xZZP/iWZbgBDkUZQqY4PXJIv5ckC+2duXu6P9t6aEi9yFFZCP6rdxtFdo70ZKF6pVONpnoZCehFevUeLKtVcosXny5k04K0YKh2PqbBJ0UFzUa9lYVUnRYCZ8u1MZnQg+JZTwmWkKpyDRtWZHl5umlqPtrzh5CG8hsgFGopifPs7wcU/ax018U5L8kwwCygx/uBtaauPzKyoe/RgfGcb+vJaj4WBSxRyJ2cserb2mPv2xzxcsj9DRUI9Lux0+Y88/MQmx3RGEmy4Y0m2XFDRYqIH00n1RhEUmLynhEEQ1Xr9p5FJ+w4e/snmAgDXzfRG+76TxjLqbY53OQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/haikuconfigdemo/providers/Microsoft.HybridCompute/machines/ggopalk8s","name":"ggopalk8s","location":"eastus2euap","tags":{"ResourceType":"HaikuResource"},"identity":{"type":"SystemAssigned","principalId":"0fba2da8-7ffc-479f-a43c-3d72ca96df42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d76fa49b-1391-465a-b70b-1fd97c89d343","physicalLocation":"ssh-rsa - AAAAB3NzaC1yc2EAAAADAQABAAACAQCoVCdJKRjQizDkqJwKP9d0mZ+VwYakz4u3gXv5UHZmq/fSYfl4AWU9WBNIsMz4L2NlQXWnXyTKgFGMFx8NNQ+kHBf8eCExIiyAnluPRfIebGiyN4YNCmrHVJ0nslXadSIInQxxjZ5vJm8Vwkxivwbk2ijyRW1pAfGw1vOKHAgHyVNe6xQGIOskeVLggRG9+8Nb2sm2HspyYeP/ekIGJ9o5XuwuHJa5dod5Z2E2Z7K7fCkbsHc9cDFA40J11V4cVKVNLKzhIlNN7Z9nnK0Pi8mYkX+CHZF5XuUPNsZ1XtH75Jd0llSJSCN/ChdEsHCwLDb8wNKdBW0h1pxeXNoAX/l9CB9DIxmY8Q+42Cd9fun70wpTl/xW2/U3GppWdLP7tJkpIzUlD/5HaY6yrHy5gy+leGftaTWM1/k2TJRVr1GuYrVC7sBe025wm2Z7tkxyFCDowcI8JRqlSWGs2wK3Cm2I5quJFd/kgmExMhGUuo24esh2KT6aU/4gYhsT+GhTlw8jusxJ7bkzhNn7wVlouOzFLNHEEfl4oJnOk7o1CISNjXugLyvWnsKrpcQ4dQvWiJvrvj7IZuSg5q7wnpHiVgfpgJstrk4VfBBeb2e+FKe7O0YmisTzc9XXthTzJ/QDjeMbUfmc+DnMkNeSfY1IoT++AkKvBYafada6Qi0L9UOguw==\n","clientPublicKey":"MIIBCgKCAQEAoTF8jJPTz1b5LtbBYTxUSd6sfELXyV1fpgosq3jIYv306iZ+EpLVtrjNnFtFyyVe1DpTbO+HbldAgUTcdw+7AOHrf8RGqcBTWA/woGYiM6dPZKq26eMLA/2XLJuuidgwODvuKS1TKPzdz79O6QGbh9Y6tWr9emVE/xuN+GYlKfZZYn2mc0VETywoJkvSBFH6YeADaTIrzbwyP5uTWwOLy9rCPE8j262LnvCO9/gmV+EJHStHym57V++i/glrXw9A9mD2f/SrfWALqE9pdWbRE2XPxLif5N8cqR35zwddqjJY2+KwbkEBk2LyfX6rVtO7yg05NvgH8cCQTjiAtidjJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG2/providers/Microsoft.HybridCompute/machines/suso-hrp-vm2","name":"suso-hrp-vm2","location":"eastus2euap","tags":{"susokey":"susoval","susokey2":"susoval2","sunnie''s":""},"identity":{"type":"SystemAssigned","principalId":"bd8d474d-7c6e-4237-aca3-b1396bf7b58a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-10-24T22:20:51.4496528","errorDetails":[],"displayName":"suso-hrp-vm2","machineFqdn":"suso-hrp-vm2","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"suso-hrp-vm2"},"vmId":"76ececa9-a877-45b3-8801-25ca0695346f","physicalLocation":"dance - floor","clientPublicKey":"MIIBCgKCAQEAsfm4sNNFM8ghhzEUzHgBmlLEKGkRewopweGTNLPMY4hImV31EX28D9l1V9GG7k42SeMMqZ2Ol2ILPsqvaM+ePIwmFR6QkpQmRL4F0qdmwGQz9/otCiPJnt+0Lso94JtYWSgzuDCAgoIQtjdwQCzzVhb+4Mve9wHqBP5lSfeUq05nmi97X6koPH+7HZpXzzfpVo0bteFmC8DAh4Sj1YZSNg5ZmQO4L71eklLv+tif1duRHCODFB1ubunotMgKpWvkdUPpZTCZuz44zzPOmxu5NzUIZzECWwqy/os0njp0ClGpj5lhNSebF6zeD5BvDST/givr30M/ifGR3Exc3/qaKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishCustomRole3/providers/Microsoft.HybridCompute/machines/aashishLaptopHVM","name":"aashishLaptopHVM","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5404878b-6625-405b-adbc-4d00e638512d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19001","status":"Disconnected","lastStatusChange":"2019-10-25T00:01:26.5885975","errorDetails":[],"displayName":"aashish-surface","machineFqdn":"aashish-surface","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"aashish-surface"},"vmId":"d1e32941-e516-4801-96b5-35f23a012ad2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9T5j5LjQnh42GF55ptBA3S0AA5Rb3L70Y/I5Fgmh1K9tOsyhODdiyWS2Ndp/G1lYlFiiyN5bYl51pmsvC+6Rv519JCjZTQbeLP+eRBp+aMGcF7f01wyV3uR2YKLNG8Nw7NSJTw+NHq8JR6sZW5d+7RelmJSh4bJEk8QPfe+obgIA+jlEzjAK5K8ABGMJceYswdI0uxd8QKh+xpDULGo+uJLMF9u/W20c4ZyHrBDrxx0IwyJ54KyilIUD+PKy8uWoUepjq4fhBvGiRaKwP1Ux8MH5F3fJUFFduQ3YRUVom3vJRAWa0Z7r1iqzkOLmD5wc9PdoeFuZjJ6+x5I9+2CyiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/exttest01","name":"exttest01","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"643994d4-3873-469a-bc2b-2b0d5d22e758","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-10-17T17:48:19.2306555","errorDetails":[],"displayName":"RaghuS-Desktop","machineFqdn":"RaghuS-Desktop","osName":"windows","osVersion":"10.0.17763.678","osProfile":{"computerName":"RaghuS-Desktop"},"vmId":"1f4ef32f-7d17-4e5c-bb39-6fef3bf774c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy17qdDTwfTkaWZzlyUchjNtWOi6A4PJ1bf5GRTeWJkBO4PHv66Yq2HkjM4KmIdJuszehEVBMoR1FDs4ko+2PJR4ycS8QtPq2Oj0gafoUm9XsGErmXUfwhaCQEnDtr4Ey+RVVeEXpOJb6AWQqJLp3pqp14cjUSZFg+Qiiyrs/u1oJT2cOG9WghbwunGGmFYRHOYBkn8dVccuQlcODKaexkeMNIXuErUfzy0oa0jMmw1tA6S4H8KcnX3quxCI1lf5SV6/MVyW4k6v2karSWZjJxkYz6BDZXk4nfXjpalFG2TVpUbxi+Ie7SGkCgwKTOVCQ4Vu1yVeHCX3ACIXCuDwQ8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/amits-test/providers/Microsoft.HybridCompute/machines/amitsara-pc16","name":"amitsara-pc16","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"52b2c9af-95df-4c87-8985-a265898b980b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T23:07:36.1732857Z","errorDetails":[],"displayName":"amitsara-pc12","machineFqdn":"amitsara-pc12","osName":"windows","osVersion":"10.0.17763.737","osProfile":{"computerName":"amitsara-pc12"},"vmId":"5633c7ed-b209-4edb-87c4-1591a6711b32","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA230okfE3ypE2cGKOaeShQoAFaVXd2cqdxvNF0z0aJbE+3/Q0l21DbqLUaq5DTg6hSBZNMQRlZeI4tEyrYaoqZEwE0S488enp7iNobLapXOhKJh51HZTr5OYisM33PpV0T3oueFDntI89S2WeadyiDMAZnC21LhlNBLymI3SKDHOfP3irO3i56vdVefiwZcu2feTnkndEoVNKH2RFkzuuIl3VHzydhoA67R46wMkvrFDR/pbHUtu16px87w6NHb7OrG1z31hygTCHLnj9lyRrggOD71983WCgR9ClnqfXPnH8abs5bTVFZbQOa9LJNYgKbIHl6XSyBuJS0jsq9opB0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/exttest02","name":"exttest02","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0a1d0915-74d1-401d-b9de-8da031c92b95","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.002","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"raghus-desktop","machineFqdn":"raghus-desktop","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"raghus-desktop"},"vmId":"9bbe41c1-74b3-425d-85e9-f96eea614562","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3k23bN0aSREq/XAlv0Ny1nYCZkRIBUiARiTh5lnfCGgIPYLrrlPZyFJoShs64YuSjRwpWM2WeK1CRzEgi/FnIFqottM1upiUvGEWEv3ANeGiM+tJK20+vUaMP9bUdInwH5ERETbPw5+QJmzZhfs997MGI3prkJ4CJLapCLFsp81zBpjOIzky104S3i+FHIgnipMVOYKabGI2JAF5Q7IqglcMfxbHOdKCu16SjnLsk4Z+L4Qy1WkmaNp/LIf98giSfh8Z/tKoNSTerdGp/IcPiAhSZ5xzdTko2EM22f/NTx1DZKUNgLm+VDDYOvq4K97Uqz45MGeC1K1KpkNZ1MrE0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/duyt/providers/Microsoft.HybridCompute/machines/duytproxy2","name":"duytproxy2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5c902191-d869-449c-96f9-ff355ebd43d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23002","status":"Disconnected","lastStatusChange":"2019-10-28T20:17:31.1150005","errorDetails":[],"displayName":"Client","machineFqdn":"Client","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"Client"},"vmId":"071e65ad-7244-4b2e-b97b-443e997b29ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnHOeSmaGqmqqevsu+RIzIN1fQ/cU8hmjhgrUBNKYteUaHvcGN1+B13YtI6hJ2OvUoMWFpL5K3A2pAz4483j0HjM2qJfrnjr/W2kBBHhqc3kCSLZ6ZgH/Hx+t6WOfaVisq6Acmsfg+qXh98gK3fJ/bvaHTLFVZSHLop48srp4c4CL/4IBlZ9qEQRuyRPAURR8TfKoApsJZB08lPHbpaWGnRxpFs7jouDLaHF1rCiNKWtFQsfuGvJSIxk+it7kcH7nfZMe4F4Bbj4Kt+VSR+7XMmECp1pNQLmqpLDp4jimZZelMWXvC41RwjWLwEJ/Xv9UED32uUm+8iCJ0U8wbLBrcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/fr-t/providers/Microsoft.HybridCompute/machines/fr_t1","name":"fr_t1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"46407311-4a42-4916-9373-e17a6d39c1ee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.002","status":"Disconnected","lastStatusChange":"2019-10-28T21:42:31.9273539","errorDetails":[],"displayName":"FR-DESKTOP","machineFqdn":"FR-DESKTOP","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"FR-DESKTOP"},"vmId":"093923bd-267e-48e7-ab75-4127b905888e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy9jQRPlP65J1xWUuBpVJZ3wuaeT8Wt9RWJ6U+/BpzuUXBuAtQ9CuqCwJFPlcC3RpC1HowQtujmUk6tjokN9SiSwyOOTRffa40cZczUIcnDWHXAMi3VD1zuQogtrp0jLs5YTDPTrDzldZ8MrmGSvWzYmKxjcke3dQM5peyjyRxuPX7cZXUtMW46aQI9dPiN9yUyX/pNOsSjwb1tJ/vDh1CLipQCgSDjUSnWu4EQzMb6eOhFdMi2pquHCC7jDRr2QQ45YBHnRWUbYP/3AZ6ciDhgbZSrk2WPfBQWUFNm/HGM+79X++DG0hbMjoYuiXNDEzHGTRsxOhWws8DWaYxRiJkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1553ea3d-875b-4647-86ee-bb37b37beb53","name":"release-1553ea3d-875b-4647-86ee-bb37b37beb53","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1d7c6025-0f58-4375-a849-9e127a741b2d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418916079277352206400515461442446888437202628162646529254357239058294128098475848483124597863531342202537572197571098955716813987608842586042843880627480668647862405391255238624856422986864161643427933073963222636374014577411292846698967662251843898960271263684592808263172376792069349030899390281224677448508360639301405474403617318572343822764735940177192228664189004223419511927198684037013146","osProfile":{"computerName":"jianyunt2"},"vmId":"d7e223ce-7e23-44d3-8e99-79711fb40ceb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyqk/mtz2pbi79KbuNgzHeuAWZ4GveVbUy9uBXkiypcr+10qXQLNNpGiQwzahpqlLMZcU1rRhAb2nrRvUVIwO+4DbwGFNLiqBgNVj0R3qDG8KJBlMf0cEMWrusFXdDJmKkb29ebmRjhFRvYEtfs+LVzh2M0FnRJp/4AbVWfov3NsFnvkKu44m/NcDxNJMzJrxjA47nIwgHh/Z/TldNviMpioikODDyp3fTCTKy8IJw/vPhESFvKlJ6sDzZ2CIMK1/bhLaLl/2eol2t3bTSpTZPkImts+6FTz+r15OO7UoYDIv9hvBegJfRsslqCf/b2lZx1qz4PR/IpPIyvUx+UtpzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-aeaef18b-fad3-483b-b9e6-1da674bb12f0","name":"release-aeaef18b-fad3-483b-b9e6-1da674bb12f0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5bf4762d-a76b-4a0d-8b3a-cee71c10c4b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418286113841480829939058366931583760586618779446132047486636709125352638989486528734274979179790837354707652496396345145757055377614458429773820262419999622796238129529832061506971669713305164146555770232894497769052584828710713669286133887018512985925641456977460026441028371526053739791627911381795814987139231178913975078265598519879529869794891457446175423279767288004471769166729787824605921212188401444109291062089","osProfile":{"computerName":"jianyunt2"},"vmId":"08e2481d-47a3-462b-9b00-afea171cdabe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsNu+zSGIpXvw/kiS5KdFBgDpoAkCnj6DKzSWCr804e2LCcwIyHcCBDxeITQDhDJBB9GZVl6cOf4w6JKzl4d/+S3psX3eRPCuKS8jiUP93WL6b3p4U1ClOQxWaITOaIyugOJY3vXF5A2iYbGLh4yAtfTdDewud1H/Q7pdU30Jck0yVHstlv/1bof9l97lvtp/SrL3EGQV6DgLCGl7dMeeHRuTYGfNwmGZI+S7YH3M7tep3o3peWuXxUqCZW8+WWmHkk/bz2AltnS7WE+2omZRxvvJ29jWNpihEI6kiwaIWwwHsoj9AFQtYJz3VsUaPE1xvyqt6XDCoaOW71wDSxr3TwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9fcaf8a5-8db7-4808-bfa8-09d9a2dc2c60","name":"release-9fcaf8a5-8db7-4808-bfa8-09d9a2dc2c60","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f738569f-1f3d-41fe-b785-4fe10e772826","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184778441606990876950497617628238313963901197911506126729666976500449672973971785019881120248382216515038286532028684256685737073669436929261334103736949659922973908941390817977850956722249510754407241112768925816114335178489521682172056150640094683032781387246122590868276065898787658667281969411535928574448150128888625366392457432154165436390846134485155071543","osProfile":{"computerName":"jianyunt2"},"vmId":"93f1fc27-7c17-4400-a2a6-a69c6d769cba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvAUAsAGDF2c4BBg2pS7X4uY/X2SNx4yxOILUmaLZ0gNl0yYBnPSAubqUTeHM9fdTxuRTTBeThxTec2Q2oV5Y1dYUQWQ29pZwRbQ37Ob82P0Lue6YA0IPl67g9zxiFIV5L5rzsr0YjPH8zu242damPAYsfEs+sf2fnNNfJAUR1RrfZilTBfuk6bLvUJ07/dUl1PB3K84huW/za6FgqwwI5dNuRy5cUD91X4RHbgzmvlvCCNk/vuhlFavQhF31myLG1KNNkFm+5wDL9MFaNx9ohpF35MQLCBXdppEqJeMBjFHxV3ueTTDJ3hjTwwBrWxqTPkCBFTxxS5RRbI6VHFmUmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-52120dd0-f419-46d6-844f-995513015e02","name":"release-52120dd0-f419-46d6-844f-995513015e02","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ef025dba-a4b6-4b52-8ff4-01036e5d58db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188981689465938468747101359019564426925266564547986108065820959861944485304565159989227694236713831420988186228767736487954849960642687265179957061331517857381156116781029734548699411494612666162912527439406887663128268923628017355514169421122398216625670247327504539286695773800348737242708761477937114439168735337921125781591904383047609793888350776150132968825947251696320729107221085018408326840018411403279757120727587666144188756193874962174522649635323964379","osProfile":{"computerName":"jianyunt2"},"vmId":"ca5d4dd8-2495-4323-8e9d-0d36275cf6d2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8IRTDFn3pzdgnZOKPkzMb7GJUhkooKkBhATR7L8kuK1V7b+gcLTStfgSh70xYvv3Eq8zrzAsJR8nn0GUgb7CiyYkbNhGJW6fM4Hh12PpsW86S1nt6P0BiZ5+9VQCvcWy3XYOz8hXhY45uLJPo4kuu3zAOeKobDi+PnDmcixgN9Bf2rckgAxk4pWsc6shJJdawCoxZ6OjYMOCulzJI8EP1WJ66I0ZVjGpWMoum/FmCZ/ne4B4bEZQ8x6QmH3WubyP12FX2G3aVLL0aYeP8PxAmg/ydUmV16U1p17Qp9N+XbfUES5v1K3IuX+dnK5UbK/ujF33UUfU1KboRARgUX3jmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1aaf4a81-9d44-44e8-aa30-68ddb3f3ee82","name":"release-1aaf4a81-9d44-44e8-aa30-68ddb3f3ee82","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6971772b-840a-42de-b4f7-f05eabe93e0e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186923378362147881741798537688206964377625327610716887182929174647021144733903640812176394391275125591574481852904363198540672244704644335355846673495442592287931511216513629678998701105426941169957884861305685858284845397756497829652076211621703425600913119567475730741602295746264699397347794492540350348885278792971598028523981922171506064806694639292482986514124581869217797338233176838017334599121575256","osProfile":{"computerName":"jianyunt2"},"vmId":"e596eb8f-cda5-4821-8bea-2960688677cd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwfEvdjLLYQ/weO/ZxIR4wd2nbKtL4c8ySj8B8//URRlzK+ZXJmi3PgNLsukGWttAFocK+FRfZBa7gKsF9oFLLs6w/kK1mFXODtPmtt950MzgUgcyOlOzmhubXxi50zrXHSB9k0MWUP/UFuyzkbXfIMvL6NtGkUlAATaybvfL3UlJEJxFeya2s6+0yX7+WoHUmfti5UX5NioCmDJxk0jVRSQDp9QoucXwZgEnOpEEzoBp65fSY+4NWvVs15/5r6yy4amCbltvAFwL9SIXc3D/cjA+6oRNBFK5LPNwNl6TVJM3L3FU+XIY6GI4MSLve99OKqmqzlSgjegbGlE+lA7TJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3bd632d3-7b8a-43bc-9ba1-dd67f99bfcbe","name":"release-3bd632d3-7b8a-43bc-9ba1-dd67f99bfcbe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d5c6026b-a7c6-4e9b-9fdd-63800a8748ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418489753781949311725667130044556662217557271537865284590299855176210613958849545665058751233527783223738232287193234171587370939116523715225890231058951843547775933845963522111047632530511458652258437949990547921255099525585031222594777514003450599567401841607799936436853945230227237888191429848681570619701224856221419272151836142912019753987998750058978","osProfile":{"computerName":"jianyunt2"},"vmId":"5e6f2fbc-a5ce-41d6-8685-244fe92655fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAriOKNbOzYh6ShFPVGzquYhJl1qsPPgXysasQBW3vAjtX1RdMYaivMiOD3MKKjnuIA7XA04CocYNsvd7Py9wVCRCTGiPBQKNwooSNf2RATGSCTzJ/GFSJubxfVjY7cbb2IGJt/GTrk8I2FAa/0P8YHjd8XC+xekC36Zq7RkXNBvHEODgkl4ZVi3Sw0md6aTMh7Ekgvnnxjwd5AsAq7ocvFBTAHZ+VIRWqY6K5Es9dOdjXr/rSR9qICSSfowi+XL9Y+oQqtc4gT33hPbVlkeRCT0Jm1Tgp/WSFy5d3FKmh/uOZMY2+2NmPj6X5BkE/f7Al6bnQFATXeoB8kJkwEcJXewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-291883bd-67ad-4130-b6db-8c3689baed13","name":"release-291883bd-67ad-4130-b6db-8c3689baed13","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d4903dd5-7ffc-4ce8-862c-224f14f7aee2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418763552961988810098955572366699053288099456657918683232413415464598692725894307915379861112189036654632996878344039410273134317242215958148172682801432438449286877583072699662479959193636699369804223902559733681609727781117535419180970852751922361472741792988064891552797864981953867660599276447849624701294528963949785684958013821113905142183796707776400235598125358945929495135188052","osProfile":{"computerName":"jianyunt2"},"vmId":"82aad7b3-16b4-46de-8f4f-42c47b1aaea7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAykLf6WSd5QNhTN6WHnjKhxgj8AmQKPsWj2asiwT4Di4UBPI8GfldtU9/Z9zSSXdb/tXDjsTB1YGTnh94c0NoVBacQelLjoyhyFS6AI01UvxV+p0CoVYG8CbI7DpFJ/4yvHXcIqEp34xunwr24A5+58yiMcorCR0L6WfFD8BciDsJLPyWGbSCNUQbZlic7e7nqWVaVj1q07c2Q5yYj67Nb8lAS9O5lQ9Zem7+QVvZsvFi8DAGGf17okQ14BMl2D/5CtRAqwmoXcbgCuUYewV+uHVkUlFqfeAnpCe/gdMPxx+/n/aY5UpGlYAWKgFGUepnvlEOuvDuAr6N4g4TPWqXDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-799f0f03-d050-4f7f-93ce-578e704bcfb0","name":"release-799f0f03-d050-4f7f-93ce-578e704bcfb0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c8209c45-7af5-4e26-aea6-c5d85d2ca805","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189668387237466223210088155151613185189143257775846448998519266899793631378488156235717319064912788560019129403606885172777619404785401816248829908082225266400610071449316665615644145716636482707765847329415604176790957857748047925301533060995244077492166672964274383034951898631767798287443861463046767048745175489214543411557100579084527369461346149780657637160785438305985","osProfile":{"computerName":"jianyunt2"},"vmId":"4deecf7c-de6f-4141-b783-d9c74579efc5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzKhW3xVrU88zdyvA179iwUDSvUXbfw6t7NB4EtOji84SjwA8rqcCJ6UwYVgb9zUst2kZugOTEo/Dafi3uIsjZUmaXMBnHNEQ+c7J/6050QjmtbLzI6md7q8EQjA6xvLwtm5nFl4T7uTOLo3lazymHhful1ma/Bds8I9EdcZYWOuldZlN1IB2Hc6JYtwFZymO6MzqGUmWbaAkp2i5Ypzz6k3wgVUUO34QEH+s/O8kR2d3sw4WfJVxmW9gbvz3F4fEz0r9l3S0UYqZxmLioPnBrsHXgAVd2MCaCNo5MRGAUrdMVRSd9sOScypcqmQPU2Bx7qXmenV2xrz8CVmpIJdwewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e813f192-0500-4b72-9f92-feeb3539b205","name":"release-e813f192-0500-4b72-9f92-feeb3539b205","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a941d428-da8e-4c04-911a-f6ed1216205c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181893950424844314952830016334192837879565106564264335263990419189683247595736258504600688723406361853439531320896544138706692863565256759483196315310710531331365552279445997420163663174339515199663348706060617350939303850161973573260127135523754244214438716364983561579194202059681017626060491143885541186619389542641160794387546555846391656135516015384452847239377874645126311","osProfile":{"computerName":"jianyunt2"},"vmId":"0adb73c5-2481-400a-91c6-e7dfff8d8b5a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxYHwU4QWLRiM+3Qz7azA/3J2PmtRAq1PDFPME6GS4eQ3hir2r8exnb0bayaj7oOhZxh4H3TfxiCi6vrtNFB9CPR0JgH3VQS+LrqwXO8Cky+eJEo+CUA8sVT1VnRP6SmSvPdwFHBHlJAFJ3sPu6EO9+y49WwNvfeuPas7vGVBpBhm1gg+/ut4xgDdqV1GZZ0Guxi23cgQwWcRaoVdqR9Pnni6KO83Qtu8RiFjuyOtH68Jh83G0CFUCgF6LUJ47QaZEDkJ7CalK5jp4bT+2satBQyKI9CM5nQG4+mv8H5taUUHhxMzBHudD7xiOVmz7XVKxUvGF4P8jKMtGbyHInHg9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3351b651-1215-4b60-9d4e-576169e2e91a","name":"release-3351b651-1215-4b60-9d4e-576169e2e91a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8ad35135-96a7-4a1e-b9e7-f7dfbd054162","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185613897384601338414585602984171118634031828160356634924590617785381649634889663703752913246488710383745197702285991395137936710276691166779321434271287736744686314422278442491340157723456651958113085743431749160152380591478888225161623019123948195938776135217543537149913685142231869431567854359868614781442263215403821862218340752129958729291392174889517777344141394313818662371085330239423681742588432051528","osProfile":{"computerName":"jianyunt2"},"vmId":"8c95470b-b4a7-4b30-a0a5-97991e005569","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAplI/MEcwKAE4QsI/PVpeMD4sdQDBICavJTsSVu4NyEVwFW/X0sO8GJlKhP+WH1dKLGcL80wj98KV0ZLuIyrpY1PuwwbBbabiws4XniA4uDrImOGbhh14AgZA9exDm46KXgZrOBEOzvQTbfhOkSX4fSAIZ3pJhZYAQt6DVyY4UcAbXd0GT6pDGp5aUOEj9XMAIf/JxAJ7iDLVTRIShqjbAHIaxQ5PUL1uzllc8SWc9Nfr+22oK++TKBqznRZGDvo9MaCvrUa6XP1StLDl94SG8K5eIO6o9KrW8WCv6jDb0XrW7NuvGpUARLPqwiVEriXsbEZw+CPfKYxOJovYl+eZpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5dd67d3a-18c0-431b-891a-f192253e5391","name":"release-5dd67d3a-18c0-431b-891a-f192253e5391","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f738f111-6018-4f4d-8317-1660eeb618f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418665723081627145530917362393815860812645254522109763172945634351466092956945174880222040125052682091455031592548883056746270811724119906199986013037338534113436476389659212013160768839445968268413771179624129494622526271276969410812366096677812532737428373563548835015926113677245458542772085407789742640039042615127611314790464364588661379788833279866264303486789742541231870068269506166422833554565828612363412530809277614372131439","osProfile":{"computerName":"jianyunt2"},"vmId":"c896cc76-5c8d-44cc-a7e4-1f28f3e991fc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1LzCrkB4IkDIZLCrARlYLkmnGGlvPl4U01X0O/B2JlJ1/KnER+zJRn+Jpv3ftbC0tAu3fVcMPYjYNEkvvD23w+b673mZOaVFiS4yAoTZjzCnRiY49vmEsfygxVfzR2NZtwFT2LolkIpsSRny5xdmYz/mzOldbMKFtWgjP0XA0gR0ZXk7cR2KNFCpD0yPj8WJ8L8yBERtZ+PN/WKQL+DGOIRhgnPtRU25kNici6wQU+VMrTe+y+/zgmAoDi6rwSbycVdGx1WhJyomlZjpBy7aGOSU1u43vJsgRlG+mQV/G0hI2pnsWtgndGrjveUSqNaX+FtrBwmtA2CRJNRu3zWClQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4c3b3214-c32e-427a-b966-24ad25d13746","name":"release-4c3b3214-c32e-427a-b966-24ad25d13746","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2dfbc3f1-681e-45c8-a2f7-34d08f41b036","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41832763433788134356549588014699711947622698129790510625986380895756161991878483869661662764813345433941653026083885173013769086437934627797775842433052783069594531392633246073845716983133685036537448053705338820470649551405368838251093870878786442812195034922189527463740295754652460507677550785903405438759951833108190224008690514043521315583945394873377068311043680125486231730479419027628789821525740171485580","osProfile":{"computerName":"jianyunt2"},"vmId":"2d8f3bad-07e7-4fd6-9963-1bed221df69b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Aj5Ci1804BBseOyoITWIiBACVxTmzF16fAhOF4pECnnQbdSR6T3T4IiABEU/VMNnVl++/dUSna8ViJKLc+pBIoT7HWRahDwrRiOYTQwFXMA+S9bnxdcmiUkQKdIpJIoKV66XimPOE1/4HMfbzvuyUv0AWfWMwLcoWBF0yACOQAbXaDIULzb+7xW2rs7EKSUWj2YO8pZM8iCXR2MdOGUzZ8d2+APl+trw8Ghd7SecJf8jdtS8csdvlGiW9a2nIHV75whBRW8/FAdLPu94jM5Wv5eoG9KsDE3eLczSNwg4LqQXNO+YwXEEIPXJAbLQETP02I6qqoWhdjjKAO6uh9IpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a4264bc6-5538-4631-be4e-54d002fd7628","name":"release-a4264bc6-5538-4631-be4e-54d002fd7628","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f19732bf-c845-4459-b1fe-bf6de0ce54d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418627382980218563346970812526618815525412336921731858693853777127107069054383800649275385146050115753992707599421853346243649759651827923014633322727953379423231532662797152499013799961959504620795637336328205164075277780089353026310042338797157172731090530291931921618834056655917153371826502166842169464335783969992233569884852803897653739888701962117519853770326342880766389814128251618247931","osProfile":{"computerName":"jianyunt2"},"vmId":"4005a65a-6864-4d81-a0de-54036953d7e3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtsQNye/VmKRRUuUZNKuNs/r5tqs2OK37XKD2PZp50zEVfDSA5zmQFWJsL9dTmKVUMg4BybpfSgLD9pPqrFm9OiUxMDwzb1QsHrtnHKwU3fNwb111tgt6Mk8OREIuJLXjMnyg/fGjTY6qEbL+GQSDL6cwbJQf3NtnGvCL/nxvBV8l+hcm2FNszn6SHIhwCSZyvMqnpJ6RAlZQ4dLnBf4LA0zGqsYSJsEvd2FoXNMjMUIGGUgEgDi0cT1YzMHBnTYt4oEphZECC9NVANFDVXDSLkRexJdXbIjc9z+LXvj5BLGAWmhZuGbBB9wItCXPZWTFYLyDW0bdphtGEW3g6ibgEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0200af70-5b23-4ec0-8ae3-f0d973798375","name":"release-0200af70-5b23-4ec0-8ae3-f0d973798375","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a0e0222f-dec2-47a1-b2cd-3cae10ef77e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418337824768367646432721063142189041901179135389128366632344121332326462558861542912341364695591837848256907388719542536279366035076719357244637394760471171442636277350942025977392286595038607251992064391817692646407534415264437037992811394822613396107430687246413279714437683765219147893493383070570392958079445751725488977086524856015049362474714735697489989030761366773514806217343129469721893641323739639627506817589721018704301394727282538975575715792382719368416503599499293","osProfile":{"computerName":"jianyunt2"},"vmId":"abea818d-ff10-4f25-8a2a-7583b796093c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Z6WcrabZQxPATVU7/SdLqTkyeXrmouHNE+fW47OJQ3z3uwNqXoibbNqsdlri3DRx/uY1pNaajbbHiaFIF+GZaGcGSe5SgSSrjv6kYl2fvlMO2u3pN3fzjdf21D5qDvzLOHkNpL+wsgCvmtH4PlR2WKmC9NnSO+70KiwT9mYGZBDlGsURtcYiEjdtc9RwdgUO0VsUG2Nb1EfxubOn6lHwFHmC70jen4Ggkqw1H8hYVtZEf1IDIRfjf6aTbyD2oqwhxTErbJql6ZC1pB8lml1c17XjCynsyekC8Pq7KAsZzlS9N7uUNQH3jA8oQTgqKtLn5O7GehkSBgxjbAK9DZ1VQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a1ffd172-0684-4c3a-9c73-83b3560f391f","name":"release-a1ffd172-0684-4c3a-9c73-83b3560f391f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c83cd589-194d-4b02-b0c6-f08b5b4b5d2d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41899683756932376806311464440391612827193631290727960132316985052916351712025893673857986613989272459225363064536612669195487764913841574213124412259818263364998057117128744346850313560429772940978906891207553548424051165193818565982310544084165335314931351665612790509380134590682884720174747937198385994634416274473238989961521730396864545220543639768099767413685002961330632308246346553840905997084","osProfile":{"computerName":"jianyunt2"},"vmId":"97dedede-2057-4502-8bc6-77af8046fe8d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA38dZKfjw3WpOtXOB/FWkoPkYJWyasScRYdu7iOPtsqo0gtli9qp8dmUhboAVetm4SRQmK+ThVOqaE9yY8Ou/jd5i13HrOkCbriW/rWjByx6ICzJIyOANcJOhK9tbzlN9kAwanznjlUDAuMNrNU0ylTI4gTx7q/ubqr8PEX1tOEJ56J1K3C4UaozOCTcrt4vBhEey5PdhNAzWUk/ocI2Ol2af/3pvIHoLAWumUd1lcAlpI335VOfngZ53iQZUNg2TxJjfQvJWISNi+k29ptCmdIHG9CeFyQrZqB5gFRVMU20WGjSCe3K8xCGj2UfyM5o+Rd3UNCfl1Zhnq1z7Nj+IJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fe4f62ae-f9ae-4acc-b3e6-782f5428f700","name":"release-fe4f62ae-f9ae-4acc-b3e6-782f5428f700","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e5515cb5-6fba-4e35-a460-2f44351093a8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418336481416848043512997582864551196221783939032175971344971406823834568048195098178224834924485522485574913606072299304402137647807716177338243326621141076814382963397378375869567764979746581202129767272588143997779507363474105073326119454434102098559622707570562881391778784435811498114951197379726492134239242577930697835243666351745878396375321574601484621333269766950013752746631849909515578820372064177172235647956978713686287514126032700726187269","osProfile":{"computerName":"jianyunt2"},"vmId":"8c19d6ee-e3b4-4fdf-bac9-ca84d933c40c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx1h8cUfUORWZ7Q3SOqT/9Md+tBl7uJt3yBsegnzJp/4Xy76ttAtlzsXTecIK8RJjt6NhdMLX6nQLvro0YjCZrZqYLBaED44VAlETxOaA0AElC6hhctAtOMsqqEBC1VebpdpuXyJWb36KwswY+26BHzrkcxZndsTr+5rEUu5wpOUMjq6GnXi6vmO5+w5M62oM/Z5f9JD3zvmeXE8iTHRs0PXzWP6C6gudeygRXK85puj/u/kloIDc93ERUabArDQLhY+haJNXK7e1m7ZWPmZoH8lTljhxfn2Jpx0uT8f6ldnFoHmo5hnJf/VMZ+oMcCcLlmGiHnp7Zqb3Et0oqAKVHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2983dac0-5871-4cac-b7e2-62855dd4f38a","name":"release-2983dac0-5871-4cac-b7e2-62855dd4f38a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"869cc572-490a-448d-bd04-0763c5a78163","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41831707655155146139573153933116704308341214452931606866901607350254653775444189236313167431247146054498435452432154538277740149109817478532471162785790859243900996733588350540648594951198691724255087252217770463194041996614202002449917563182361322665453936281911822823675774110709212491248784896292962404464200183375232254641474118188736870017603195671762839","osProfile":{"computerName":"jianyunt2"},"vmId":"04c83412-e632-4d08-8db7-fc9e0a438b6f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyYFUs6mGUq3IwCS6bFT9EeGSap2/QTq6vd768ykbIyOTIAiwOFLIx7/dQ8nc8k+u5lECfmw+C7nv16bJxZnHbKFuPX5EX3dGvN0TnVIgC5nZ2Q94uX2sCiNz3K8rmpdeLzbznq7nNyE6aI8pSIlLzenMqzBqLwtpRZcd3UPdlPdmZ+GyiQoM+KfmlHxDXukO28nvKyhigeBUPBXwqOef5orKRCbQcHl9wL9VczXcsOOuyfxiQQinRCM2vmPNwonYbp9TjSoiBl8tQNG9X2nmVdTAem7T9j7Ka1Eqf/jfydCnyCTQqQEoBdoDBlkeB0dOX3Lf4RkqMq133SjLbGn18wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-651e8790-5e75-40ea-8d6a-c01640b1ef1e","name":"release-651e8790-5e75-40ea-8d6a-c01640b1ef1e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bb8b59dc-6e5c-4a64-b806-d786a88ae44e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189282286925774307240511966578566841837681103762284469001968770723249843136376677388727724275769096766611994734392017256760770552506133293362070429112545201677628856415460672679733152994631698233355869695429766969586251297452869094290474131243884891715000592078139699306763276990587562317435249345229449157378518853766490160641627302","osProfile":{"computerName":"jianyunt2"},"vmId":"1371d28f-60a9-46fa-934d-f5eb3d94b42c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyH35BtQot9wvY/cJTGd/ic66HPGTwlec3wmQ84N1gTbRKCclkNvACx05aAcPom39hjOnXM2x45heDMyk3VG3qeFM18sXu04j3mZMRTjnN0ItrPe0cAl/izliEAc4sZQISOvL73Pt+v2NaHq0DXyJ7ffK3vLlODqA75Na5F4OfqDF9yj4r6AW7y6M7L9IG37J/D1XbsOW/DXG2TmODUsyBk+UEveHVMLF/FLUeDrsPLo3KiU5S8b1FOIe2QAjPm7e/NF0BIUZF7XEz5G75GihAOxQ2CjVa7bRiUgKyD8DAVUok9zkap1CIa391h6ZzebFPu04oIANPxVhKtZ9PS4HhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-012507a8-29dd-433a-a54e-a1817b926fde","name":"release-012507a8-29dd-433a-a54e-a1817b926fde","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"aac2f17d-2ad5-41ec-967c-c9d8eb975b36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418347492255086806114284177756883453016951480879083029242635842256300367957657886777967954476786957661908152468849091840461744234749103757235937589931539606172625704371372530651485934877126812299338108295659533810603380561616396210162801071375274096649990484098785494383261096559851753676303200965103333700948002045234222325015217396753304116545971095687166048217775438123714366533659457295297633054639623","osProfile":{"computerName":"jianyunt2"},"vmId":"acb730af-9bba-41f8-be8d-8111461c0c48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmpNV/a91D7YqdKP07TmDUOYXzV/IN4g2CKNAjxAguSziclwLV0GCAkFE6ICoxw6G4X5tYsazJRaqI8ebDYNY67X9dRCIA3PcaPImamyiLNYTQT2aId4+Eee5OekcWsxgoQ29z10nDWMM5GO+P5+hzh3cwPEv+6byEPQzfjG8NlJ6MUiOKjY/x8LMng8g/+TJkXCtq1ZCMPMCAT1NCebLRK1VpgKY2N5n9sKumEd2vEKSps2dlsb4ePnFpKpwuwKMfl2MV5vHZODHznubEbiyPlHm8g2668JFzt+a+OT7w1ijDIvwcToc8gcHsgM5pseP0NxZjpRgqArDq/bPKc4N0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-78db9359-05b8-4e7f-a3e1-314a75a0b21d","name":"release-78db9359-05b8-4e7f-a3e1-314a75a0b21d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"13ae5d2d-3054-4c93-aee5-35729b03bad4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825838504327823131207612513129943956164237028048828634863627902598963285063986388238966811435551526964871130321289749514865421652991461093715378310116229558681794595821250766790973882646530729110602580984147621622601089203885920387792073658735344158430736987627371567396749240493145484916236697512230713369059107535013477597948674684786784648498469725076899323938207886888623725111148365220125377483902581560204649429201690216196","osProfile":{"computerName":"jianyunt2"},"vmId":"cf5eb1b9-ce19-4d3c-867a-ece1c489e20c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzSrdl6fMnp1J9iotSKB7yqDFG6jedqCfWfs5ssE3/Ut00nsZV8aT64HFV60Up1fvPg0UnObRFsAmfRpxex6W04G5qpGK07dkR1WK1XxKh4dXiamHRMGBtZGF32IFgW4zjQpHL2oLfyTSHTvn218CGRnqrbb6AW1HX71+owg26jMiA4CT+/9nzGByT8oFYkh38ESBrMbuG15qYMm4r3aK2SJ+dmPYfMVjv3FuM5YUJlWRwrK2idujrOHk6M4QjGI0Bb3ikLs7hz9UZ8mhFR4pbaTUNNI+xRsy0pDsjF7joDGRjupDIDZ7nWrKu7CTomaX59XyluMk/cYBZD2s8y6MewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0df73a1e-bf09-4b48-92f4-60d4dd3fa6cf","name":"release-0df73a1e-bf09-4b48-92f4-60d4dd3fa6cf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04ade15d-7385-4500-8189-7d3749630b32","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418732121839732240096764959541571224228554341742071120998548184155552365116687287273038327892073358769541382782228621649054075238247431296136537876698029630997885923781592623885936907094736808576615548509294585269238878254845036806963703030653267244043740734634906208925931403988431566805375170109491162639983393820819790199342543774825926565261998543752325819192231458","osProfile":{"computerName":"jianyunt2"},"vmId":"d21e6417-acc9-4882-a230-eea3076f9e92","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxlnK3kqxW7JWphInks0JIdy4AS5irIw5JHbOXl0I6gb7/dkSqp2JRAyVO6ACI3cT50uc4LTdN0WK9Xn7/q5cqd3PEfowStsCWXe0X8LLa8teB1WwfOPB3LWj5DBhU4UVImhXfoIuACj1aSKeshinHHcRFwIu6KY5fBSD+UnTvXn308wpdAzhkzNPNuDnPtTINnl3gdHw20VS5Za40skINgSChCxMbtxL1TC4Wmxh3tsmGsqPivhUOKONgASguzmh3RJRmvGOR9iyQmXcdIW875DOcNleuazJWACGdaFc9RkpXjfbaoXXKhH0hPNGQNbLB1KA9iveozD7uQzVM5SqHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6450b7f0-bcf7-4b9e-a618-fd9b7cd0938b","name":"release-6450b7f0-bcf7-4b9e-a618-fd9b7cd0938b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3bf5d79d-7e39-43b4-a4d3-787a2e978ffe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41878269155302176516769202704522667523511466343435682479959383389319499981977944970758445910114446382654398465058099840775411816578067086783849618181955211435947289513281047807559373769629744508861776686281684765103255909044742561322434192589939939765666359021051172373841667996208370747638361550222682175037542659983476414372065513376461945806323975573206931786536887128106409706423285455505226635719837066476853","osProfile":{"computerName":"jianyunt2"},"vmId":"313d53b3-38ed-4383-93a0-aeca4c32984d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsLS+icg8N91kkZPl2t2hwlJQ+U6UK8u+jTXJrJWBXbsSf5sxWla1TmrUy6T+9zWVqhSSWl3CSvlfP32UA+XVuXZwvIMRp9wqBcKITREOHsQrbTOoO0/e6fgm7+4E3LfOgHnpdgSbPz8OlkMlw2PaxS8vyKVyWdhK9d3HJuoAzMULwJCZXIXwlnu7DKpe9nL18Bf37z754CVRRihPjMjfoYh0xHRezKwTUxwRvJqQ57WZ0c1Deux6GANmK9eLe6NRFw0kW2mwg33eLqMPkvli2ZJf1x1d5XSFAdUjhCmx8am6qACbN+HEnE7UMWllp+1pTE69l1yoevRV5csfu/PO2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-30da944f-d3fd-4ad4-ba16-a360af332d3e","name":"release-30da944f-d3fd-4ad4-ba16-a360af332d3e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"022b3619-c915-4c52-9023-3a6f2fac36d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418818285321848878064829161747968063930270775878254542074052162502046429604316022537051826446115375131700331041509960651840123899139576245534736843795346354773685793566222794408371222288659309101795387334848831787079516572982556381686529758690816036312187152224237017898414274046616126657540202843675670688690217789350430092211123093515394498013642594486212565148543645945345511181622469602990134614076","osProfile":{"computerName":"jianyunt2"},"vmId":"9c817a4f-3c42-4c18-8c7e-0fe4f0b3776d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzKeTXysXVoa2JQVGve7jNIjSl8tBHAlh4MiPMvqbkuP5xd6U4fKDkTk3PsWWBfzzeiVh1+R/HISsrRmKDOvnAVdv17tO4z9sJwTjQSF2H14G/zZiWLh9cqj3RDoxRX2pq77rCdbi2mlvGqm/Yqv78Ksf7dTZZurKBRh30w3H8a99jNDCLcJDu+4WxlX/JcP82VKdNJg6CBAVxHVNJ7LQqhcuK9CIKCFxRzvp2V81/OfWQoqUh0IwTfOyjw1UVF/eDFllVhYihbYFxkUfdt36NciLybIKvGdfwt8fD8pTSIhyuOJpXrT+fyuc/9ePJOsxWKDsTN8+ehDID+VSG0xUGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-266973e9-ade6-4e54-b781-aa9998048314","name":"release-266973e9-ade6-4e54-b781-aa9998048314","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"19d441ee-ffd5-4198-af9c-3d07e9e62028","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418181568912761216153914043981796011594543488251991690542403026454943934972931658576111994486243330809584936362799913157337408951608197941745525085751985824223662281738844098752411786419261662874586384392873701162915312139279755748444139580431167082253986715464843219922761375230176163334272893853651149799515077352658432368703815328389251319391003144","osProfile":{"computerName":"jianyunt2"},"vmId":"5af37106-7f89-4b72-b88a-d584662f23af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5LTp8ZqdFaEbKJfxfvagqTwhB7oTT2lKNBmQVJbiV2dKIoJryeQh2QUHjvXl9KXJDdp2G5pytiSZZJLfpTPQstbr5ZQBMQu3ioEXQpOyIuMRgnNTW/JHMggLi1xIYg/YIScT+rG9VsjsPaFUuLt8W7NtFjsrf1ahr7FY5sW404z7lEnwbptLSzlRr3J20zO8bKhof9FVOUus8jof+vfoQQ4A4f6GgEAfk0ojzSwOPPKBIoVF32q9dh2zRaVnoEjjzKxfziUZMk/0yI5NBXa+wqKD+ERan4jEkijBIXBHV1d+9lL64L7rTmXTxP6kf+qWqnmQ5FO6kD5rNPS3PcpStwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-184602d2-9490-439a-8642-b18186c80dd6","name":"release-184602d2-9490-439a-8642-b18186c80dd6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8ed4aba6-c200-420d-a19b-1078a7b80aa4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41839891582503479173097486748799906266595199894626565932170394550951807636709941909650499728020892546211232272393203214426912160157844271532352492753477532317240783710458331219542131925135901237010488301722039661875786914844937571107831391508444490724739649002140220024491258625152272939379635284817640961653390132111755193890432599216952636313021941165576510878966559452469643246414552091930577104610795597192340192724935414374545313272321562698374027631783775219578","osProfile":{"computerName":"jianyunt2"},"vmId":"9b77dac9-0ee5-4dda-be05-5404d398f02f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXF2ikrcYOOVGPkvffSQAj4d7XbIWezmzOKC7IMo8aQ2f7r83F3Z1KzqcklpAtOko1cOMLDQ5WpO7Pv7FZzsVYJizNcIE2pIrzuLIicNT0Ch0oMk1b+iDsVj6T8vVFOsCEV58xCeTFnSVy4VYvGhgV4B58VGc03VhUPpSexaZlOsf4A3ba/8aEVSbzzDu4IMc9TEM8QOX/Lqb9W7i0B1ty/gB9pF2h5QjEREw0eGs/Pe3Ar/tX5y5MXWzsCLXHGLexsyi0Quo6l68nsY+EohqQHUK+ByEPCd58reyuvhdNHV6j/uBs5TjNQ3++82LlQB6sLrfXXneZ645yl5m3wphwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6b6d7ed2-bd84-4a13-a74d-bf10c64c55b5","name":"release-6b6d7ed2-bd84-4a13-a74d-bf10c64c55b5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6b38be27-02a2-4858-a5c2-dc358db7ead3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41856878892649652731544389564847650029379963762145779685437496475316315095109300182762384302433762553366699413864395207546877373745453654336640214475017728104426915854115210947029639824260975385854259023944275042128279893938555782140883568106613478805616347468109131388772051185845684225271161884268923470615056618175286652736742556582237335893921679764460237612620117520526061201626110397937988841847735917322","osProfile":{"computerName":"jianyunt2"},"vmId":"5bcbfd09-c516-4037-a790-fda2ead68988","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn9Gdp4TN3SdeFfy5qSq5ahcngotmMzyZ7aJRP/uho1kyS5S5A2LLQy9MtaSoM4RuyO2vUvF44td3bAoqgIIq+u9d1aDKBu1LVY0NcnfzDMAOaE4Q3YDOayu803Q19PKSBuqUaXx22Fv+L4EWmwmPCuFzs+7F3sbZ9hKwT0hlKMsQ4CM0PAcyE8S57yFNA2XHSTyVu8XxRUroyQOozKbkTAbC3PZzt9hYz30eLbhsL8D11gtMpwLRSATwboF+uyt2Fu4uxuSoiZ+Ob+Q9Ka6qwiVHtdbVerR/RwtiLe3gwvJrT006I5zsbJincptL7D1hBjvDWU1niFGOqwyfGWiZmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9dc93d3f-7e7c-4afe-9d20-f9e16e644242","name":"release-9dc93d3f-7e7c-4afe-9d20-f9e16e644242","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"43a09f8c-c620-45a2-9eb6-9a66afb825fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418798399381124520990222700680585366132595110395469949393845520740732975388829613535492559160920185244021922226276821544487748836793624277804691124256298228772615763735061808232349232176284596734632234875699345001546870927591024770670678062484882343232905389510590739749310805095720919927236824940756517379981669930123144696745441441647555481149042887401303943","osProfile":{"computerName":"jianyunt2"},"vmId":"bb35f44d-df63-4fd2-8209-c7e75a7d9060","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw97yAdPPJiTyoBDrXsNKME9r8uzmG2dBCcN58tIBxtbyRpYw74KjKCvbEdmtxsSTiTWEN/nuUWkr8u9FWQqPK7ngE3LPB5brTA68Whp3uIkT3jPB9CQvcn8Z05/1Z2t9Q+J1Wd2fi647yjulIyXuzRP3aM2698wi1BpGQpia0LYK6seLKHKu3OrqaV+dBRBcdbTmAq0TlzFLRJx3Atbb3DIOslx1Wy9GT1ftiDfe6hU1XVLD/emo/ssZ3ecD6lih7VyJ/u9J9Jzc7VJCemg8r4j/oUhWGxJeeLoMIlkHnMwK33eh1jn/PrNgBRV2V65MtgiA1N9DzoU1W4pG4K/Z2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-56b47313-68ee-4344-a94d-86366808f2a8","name":"release-56b47313-68ee-4344-a94d-86366808f2a8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04bc79e7-54f0-4c50-a2b0-28df4f0ab8a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418695092812125027110702818038940300062212301259777266335516726905647679134532749351812235215356930387357941941547235226374848657350492286739909917572751002667214498380601241539777825393198112963031407301626459105194372480641907737240321751851075404188535489842348542820918596113245248796052603932654509452932742870354015527337452356944386789844788963265168364159031329156392886466122551667","osProfile":{"computerName":"jianyunt2"},"vmId":"83b7c13a-2313-45d4-9470-f681fdf93006","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3civf/gS0RlKNh/8q361niQLSmBCIIaAdxX9wc0lf7zNx64rBqHrHb3rCrLjr262V0g9Ws69z4UiYZ2IwELsfk7X7pL70NScpms/dz71XVmNb4Xfqwma6LuaA5/CQZ+CniKw3doUJRkEjA4O+RNXfcq82GZhG3CASp7FHSAlUSM1qcL/41nZ0WcgnWdxjMkwnlA2mUOVPHyLtro23bQUeAsc/u4kf2dO55rItaRko0e3K8IrI3eGo53BC/auUXf5xzjxh0pAtYyKI2x9GuFU6hhwz+yZ0W39BtshGIDGINbfnvbFGER2vJudBOp/1bKlPHzacx7PVURJ3/s/wMsoFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f90d6901-8615-4029-8115-a9d11b7556a4","name":"release-f90d6901-8615-4029-8115-a9d11b7556a4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e61cac5b-4e36-4a5c-9a45-6475a761804c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418985651592661261980138631294225484537690548668475221069209026513773446832593742843324434494557685412431095888703672473015431247264762755058734100687171493414725932836435062259290377586196847589451166770713496570240170788073382683627363538514604747617753944469035959521301820541060252890783064761803411581969825991749546071917172186379426754889869474808522356572777573616","osProfile":{"computerName":"jianyunt2"},"vmId":"67a37e46-4522-4196-bb27-6d05ff98e6ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv0C2a+sVKqIHA4VL1jXdU9NSuZI+b/Xiw0le5OZuwgo7thnBoQVkF0mzh5j+1JSdkHaX0DqkeIjC6Nva+aOxyavqCKvOlTNlIjEVexkEuuFxBSdhFsdN04PlIY3w6wEhmQhXGpOWsthGjdlaQwv79IR/tc5oFDeGjda8OBDU41uwuMec9AMubQmNe1t7oZ8VdtRi21lidgY8hT5u0BXmKNhEGldigD9oH2vDA+Rbp9Bo+S8WvNQ9nyA4tZ8Ezh7wZ/Nv7exviqsPFPdGJT7EGpjXxv8vhI05QrzwbNcI6cTYnzqajbEQaZFmjE8Ll1J/IAz7EJECVydN2XB7L59W3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e7c9aff5-2c3e-4455-a780-dc7b1b04f590","name":"release-e7c9aff5-2c3e-4455-a780-dc7b1b04f590","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"88863692-3a1d-47dd-b740-1ce79791c94a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418521146973852682122688394856675430824614639482427389109941435912633584428122944118348610486682464980194319709405647253412616603636814038940790959038377864756268642684167926949038048746975334025201144088782288454234324847448506396448349832785050083824567670499614797689893528795224476864647607649456811416913445782167354307278665719801865954852234","osProfile":{"computerName":"jianyunt2"},"vmId":"e12d0141-379f-46bf-833a-29347ef9f264","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0HK4IMIM+tXy5M9tprhvV9OqL63MSOYtoZtD5XuKuidah+Wrq0KTdX7Wp6R9QzwxVMS2vDZ3xqzaqg9z6T++6U4NfS7xmwcQWgtHQiJpNZXKnICgdXmH1RGd39vkR6Z7THXSxCyIw3GGmCBg8ibYeb5KTWk8dxRNfMg2FdBHZVFN8KP1t9cpoEFVbg1VHKchsCWzNqdWop9LG5QLNKQmGtWKnMkhpH2O9ehs7jAdrlQzRqV5peZ9zpvp4LY3d8ppsN/A7l7lbfWwNbdZp407W3hHYKvwNjrV07Q0hIdDPEG9nPITNV4fOzxYXVaT82j+5cBqdJC2fxbNUWbUGzyhHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-53953f93-01bd-4d3b-ac56-f46896566673","name":"release-53953f93-01bd-4d3b-ac56-f46896566673","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"823a2514-72bb-44ba-806d-31bf4d25423a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825043516802634214683915665272027064546480011286305853402863351865185087927918434104979383444719419535652593696099634204539568113074220521215784307445178160987147523170398462768908627648548462813019656496145005103173224942156448341353257765251182727375927837361020766116701757278379369842466243199840301783785339975160224077602230454893254731898340316016329937375901663134546945070941840741186676480865066","osProfile":{"computerName":"jianyunt2"},"vmId":"1cf4a0d8-6ba6-4ffc-9b88-5a5c1bcadbc0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2m8avHT/pDcs6NSuGm6Z32k34LF4yxq8DcES2c+wHSaWIf9ZS6nrV2mUTQEFgan6yUAq7TgRtXKB4j/ke+TMrHfKm4giD1xWXQ4qNo4pHMU54Z5b9cTWKfnOApGnzlBUTuTCEdcBE81qQJQqbAfEo/fKUAd7kukPZNDGlXxvTxkjQGtpefOlhNQlZUCkSckel8b/edJBS1Ufu5mBpfL3TQIu2gzcL946A2NweBbkaL5ZvzLwUYb+YHEsHbpVyyLTi+L302lcaazAi01ocvmDkTXkRar6dK/hktEenvru1D7OGZuKGFrSJC1vEjpuBS+Jey/yiSksfqIer4X4X+hijQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-53c0d811-89e0-4999-8208-05e30f27ee69","name":"release-53c0d811-89e0-4999-8208-05e30f27ee69","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"70fac3f1-dd42-4705-8aa7-203c0ecda9e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418321076844897257819352084676964196207139138460408899514755349390138020724692996926783101868234410499850635049473937788296814039004558637792643897667214569387393981062244695195522369183617611323737462561471661578276283263959650041055091781537556740509534005695840092618657558313151122132252278887564020687375584607701795822899515755084821005172356402227573999487722388668286088531813380","osProfile":{"computerName":"jianyunt2"},"vmId":"b568cda2-c242-437d-92bb-28a3b282e4d4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt2g64hH/KaIvlbh4GZIj6FN4SFMzzbAjuvUiDt8YDGF8f8uZt/Nsq9H8QzLMAwIkujwh7sY4bPgOLSjT04E6kP2Dw4eg8+fqxIHKNGc30/0kx9YjW0mnsZwlAiIsICEgjqbm7mbYEXzEhnmkLfCYl8xAfdBzCZfubJ+OUotlALqR94Pwfncenmf+4Yal+levYfpHRubPjRI5a74yzfDxEJLCLdPdjK5shFclnWrmVbg0p7ss6rbchxvCUCpK5DlVwdxNN3lua9X/QMoNeuZssL6ZsJ44pNGEFITLHff9JgsWAmgAErZ/b+Hz8D4l2euKS3DxZqNo2CKOgdTMOhZjDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8dc73d24-004b-42a2-9d10-f0b421214cb8","name":"release-8dc73d24-004b-42a2-9d10-f0b421214cb8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cdc11812-a427-44ce-a05e-5b4c4e653f07","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819521227831796424832328283702678350846059256955648606943382471164732990251621243933947209831179858587266969191027189338441273193626724522972842136657127304593428117174704230092525490773221573237866981047605278215357491921824882872339338835564586088816881715229101416413696741743241939032126799364453859957216835448578117222739656145283780610938923926265268945172392265325427778917338199","osProfile":{"computerName":"jianyunt2"},"vmId":"9f57405c-bff2-4a81-a205-a7f2d5a2de4a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxsQf1FJyGdCdzHc9gixNZh+uH+rwLMO0R9q+RTDGjUALFIbnYjT1AOB6jpsQJX35Gkg1gnwoL4oGDjlyoIi7G6bubp8/o1n5y1LIihNEKivA39cbJzWpgHPbAwbb4VwHujPti++oTHiJ7MXuz4OCHFJApdfH7qgN0SmoM820J8PVX9h1Q/rApLwTik28PsjNnW6lawwvTptHCH043Lq/X6L7K9tNPzDpf75nQmwHxijR6MPgdnUNnXTISWvgbgSbFeozvU6v2CISGMJ/Lpewk+5ekg+jMp8feI5ViZ+AgImFyGrZvKuDXYNjhdhU5etP8hO/NHlBO103f39Z76EPCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4cd694c4-75b0-4c71-a17e-9fa6a745dbcb","name":"release-4cd694c4-75b0-4c71-a17e-9fa6a745dbcb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"92731f84-990a-42b1-bf5a-280d68c2dd2c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184382639574586890940115403755737034607199178474194249611133048481533357146304823547691042100457156793554579498342819143358315037029988439095257260995841268396804981523563478641623402500938095921591316347655916190152626725906533924118144865880635149990917793734598119645015222120270272025417589680107855500536064904679550154705138284788893591226091222475617062831319592241978","osProfile":{"computerName":"jianyunt2"},"vmId":"edf7fc18-dc2b-4c52-96f9-a378a63f5592","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq+F+gny8HYvO/ZQp5CIqF9BB5OcX1KBWX9bRIUIXx9mQypRQdRghyqI4mpcDiIXSuh3YzA3KisDTtQsM9ruIQ1IYYJALsxOnl95lSzIB9WIlOa/AfqS3qzyjBiCNFLRx+UfPtmBZXszBNbVQx//+lvAaLBxA4J4ZXC0laI6j5V6rC+ohp5UMCmD2W7IXMAPlgzsIEjKinxz5zRAmNW5nweMPKiQErSO00OX95MkIg6l+oPnRjzCLeqc8RmjuYNxqccj76sD8SOZAbW0CidpoiYLJC1MuEJukBKX/C8hOOJny/Nj0fCDXU0n+DLtX+1R+bmi+k5u/QYSgI0+ayNEizwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4936e8eb-7d56-4e28-9b9a-352aad2a8fb3","name":"release-4936e8eb-7d56-4e28-9b9a-352aad2a8fb3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d0fc5c6e-589e-4757-a3f1-022d79b88a63","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418321139714188240975922210838557655229161002624114546742258910865661209754698770367856696034599538242897930142108149677387029728978213009436973652953627776021304189115198277766643298838471774366533692488882733033939684989718872508624298653034482451107063037692551947059738291655012386945403356207716215455883350416614674089360534477678278973709435706161846950950183932605979832567520216988236015","osProfile":{"computerName":"jianyunt2"},"vmId":"730563c7-69c5-404e-a831-57e79475cf3f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3RdX7LE0oxVKiDyM8BhWwnGEXTU1b2ExCSty2vCPl4LLglW0NciBTWvL4//dwvoEDqVWQuyIOy6ivft/iGUl7KvQxQiY72r5cTlLBtq6Thw9NMMaHFAmNeyskccmW84Ll21joiEDT3os0nONUvNiWCaQBJ5RqCTQ4h8X5lHTg5tmTgdAX1H56F1lCGOtOENCMadO087ObYp40QSP98/uNLlG6Nz54t+WY0eaXRp5xEopsvVm65mTRP1+tj2NcaF2fItNIWW+MriDDCl+Kys3m7/CpCWFXLophqmZvwJe0E0Txd83w4YxBw2B8vl8ir85nruw6KKZOQO6gcJNOj104QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0419cb68-e19f-4e8b-a881-c8df0e10a555","name":"release-0419cb68-e19f-4e8b-a881-c8df0e10a555","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"85c3cdaa-c611-4262-8441-0138a6702d1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418449545011712141627244105194122683282787233897042972399192896754299230719660339369306126566169387213094104567668325520829737315022215744002898565260931813516542551468342576051047410843025229476327618506517722431311464627571165844830328906839352175585441986499180635553561223312994089699796576733704596839899844501168768945418535606107229431248401608940154875531191869893806096144593952381181161737562","osProfile":{"computerName":"jianyunt2"},"vmId":"115356cd-7b06-4c18-ab94-2cf2a6f133c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArqwrY+X0i7DfLi1nm7z7G/KZ2Zj4rM7G3GczfgWRV7x0gs17yVHD58FJozkIjngzIj0Q/5F0g7H9jE6tnqb02mD+NScBPsvtVN8cijI88+LglNqD/oHH9WQ94N+uJ7un7kx8BL4+MAAqNToUdKEsmvydt2fMGuUcmGnxCWbEN9azuFYCL2kbtTLvXhWSEcXfimwu/nMszOsZnaA1tKL919VTPKnmwmiiz1+q96tn4ywO/Hk7kexmRrOG6DGMrnY/e+LnV6NtV2Yr39L0xEXzmpvTHJ1K3p7nIDQGKj+ob+DwFotlCpud78w3cgu1AXj1wIDn4zH+z9shMoe/fR/TQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac574bbf-cd0b-4cb3-a798-f39ab9c0769b","name":"release-ac574bbf-cd0b-4cb3-a798-f39ab9c0769b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b1bfcf65-7ce1-469c-be5c-0df395bad6e1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188015447635805551851166676267826295878528792764437005223824466352570721319444328371360315173925099759966986337435087639073817730136371762649839611907637339698929634689464279537663235181161142253673211799507918303640353165748867726455707174272683963024427523307206969321801405586352856568722233225964834987545020666932297643284720438506993844193209684311810385679360511716948108813244602973646967443581541510520667063","osProfile":{"computerName":"jianyunt2"},"vmId":"f5fe604c-516e-405f-99c9-60a8ebda25dd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvwHxqauzbiVxEeC2omv4+x6KdCtH76RQEq6NCAYaOZBuKzZwdahbprsmSgs5f8fnyaAp+DEE6o7V6lyi/J8fe+835w13TzxHVImbUQ/yLZM0JkamT0jumn9KLvVrrzcw8LvhruA/6DJYKirT2sfwxHskDdm+5ieOLuTC6FKHYq/GnQYSLfCJzLl358O/ay9T1KR5HqvYz08Aip5+n2n8TjWYrP8KMHmCg/gBLa0EoxcO3yChc82+evldHSgVjW1JN8ntT5sKOnE1yUncIzg5dVtT24Lqf3P/14WMXKxmPzEBPEl5gW+m9M8QpgZxjRlxLZOenS5iKbz4Aa4fl+8pcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-db06850d-c3c7-4e28-89a0-c64a2d0bb22a","name":"release-db06850d-c3c7-4e28-89a0-c64a2d0bb22a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ef7d27a7-659e-4280-923d-3b8153d049b2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41821804714191827787265923317321026500786598718242443609696570335726348621973184026930886387578533259912484649721565449226047966779877939704470316171769428779147719871370410985019466357727138402089434886748041961036274362485140531874604821021226551950493245688629951144652957910646695764942401901310117152535860312346473117341659989565773798488125765923728072619782074692185278577822310961831607019","osProfile":{"computerName":"jianyunt2"},"vmId":"d1da2941-d46a-4dc4-a641-17b879ddf232","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAshXoA5MR3CtRRXZekETAmynAHTCiNoe+iwb33veCHjgiZXktWj7Y0sfhrOWXXLnEAo5b+ew4EsQ42g4bOIbfYHLD07bojb2wx4PAlmAKFwlMRo9EV+Cry1H33msmRLalHqvuOpuGY+k6/XgvCh7mvk6uDYtmeWGkVBMceSZwrlzQHt6lJgBGLMYRfPn2a/EpLBk0GAdnrAqROl+zW9yCxCPAsisGaJW+Xqfb/IHDna9SJ0BMeU2t+cB8A/agX/22CZuTZ6qe81gDtdWoCEElISRCqB9CfD9bQTgUhffNqIluH+6fpQdHSyuZ2bUtTsv7Znrhl9JhwTbQO5zSnOfX3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4ed912a3-bcef-4eaf-926c-bf1e9b4937f8","name":"release-4ed912a3-bcef-4eaf-926c-bf1e9b4937f8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8945f009-9cc1-4487-a950-8a759fa8d065","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418983150818419470615155201552885584016618421771808500885979790701113611748724579452483706314483532358325960041096511460365983144881312111475548811348077995292424284631613011674069939776874329561159866245297864528973827677821080722467565754500618837583913807983938699998965670215900454940117073268763539473492996935819227509948593530381981682978203553833259779173993426843648391875","osProfile":{"computerName":"jianyunt2"},"vmId":"d8545197-ded6-4e93-8895-ef99795e5262","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyi0pbkPmnTQLdWcwJARkKJBOvroWvDr+lWWcXeI7SIodtt+c/mtHaSTL9Z3Rx8aGGfFTzUu8ld5Z82GMA6SxnDiAoTGgSGgyjGJeLkiDsPUiheydQ5y/R9EHz7s89Ce3s9MJgE6z60/VQ4adE5IqFgvPx351ZNmPGVXcu5ajo1erqzglzD1UaXOlXhT+KpuQr01FMSp5+D+ie8Sivogi09RcfntWPrQe0O5hCp7APx2HE3T9hVill/c/DuIKnZThlmVCctZ0tKBohQRlXBPN6jGM2fyBDsPywQ9iTdNfDB6BSZ2v3M1EoVXHzX6ELGtgaQin7BRy8eT2tEjcPUakZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-77b2a539-da4f-48f6-8589-e514b29497dd","name":"release-77b2a539-da4f-48f6-8589-e514b29497dd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"049c27c3-2aed-4cba-aeaf-d93b376538b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41897088101269149342720718337426005082238594484269396581567301139893432571774586357649793875874094804457381785387887659050823624997405273652533258624212235728310677977658678817174614464403678819098605888099733985550846927279423664876223944747076889983548682316703520993052955261324928155863547199588181765204045898657862861669515135282342378648155748781580949133689713091195464423019","osProfile":{"computerName":"jianyunt2"},"vmId":"47826092-3b31-449b-a405-0d963509bb9d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy+ydpvZRHPnPRTGGtRZQ5Xb4bpqr9wtP63y7y7FUY3a/QJlc/9YuxVd9kNCG3k7GJeObjG3AP0mqAxbtuaorjAIKB3rvBtSxnwaTxdamKFIuxF1yrbT9ECrXonzzS+U4/3BTrk2WGjEtvoxfAZo2SqrN0goelXPyLpPO/ZNiBmXM+X83tYzAWHQVE5yXiR5K8neU0HvW4OCDUZ6ad+I4UXWzLT2bZP5XIpD2iiCNJAwpXDSCnMI+RYq7QPfI84pdneUo3K/4WMwVgYfGO5e/qOtpAXgRQecriDAfaAZQskd/Vxv6xJRSlA2U9/wQBSVmW4CMHkEHoFFneI9wsQIRjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-62a359b9-673f-4c98-b256-87ee9589299f","name":"release-62a359b9-673f-4c98-b256-87ee9589299f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e839ad6d-ef53-4354-859e-8ec3db1a019a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41843083033376711531641286669745856843675617151545287685723956182319439451795562781035689280563595094770320065498253886925699103170754442005470250883934826543163694527529964677289561881462691443643886338379945307423993966594865793138822254445491747240812394567549459622643408286426897482254892349991102980093601927357649416843363689215637693857552876073851","osProfile":{"computerName":"jianyunt2"},"vmId":"a905d4f1-c16a-4d9e-bfd7-9e019319a2b7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9wGhkZgOr5h2tnexqU9VJclcS7RmMIaruj7hbqmdylsPa7PUDLnOQx2iQzJ3nsZ9cUoRr5NshTYrdm9bCq3G3eRyWNuAp80o+wBQdjDnC3rgB5tbuS5q8O6/q47KzxDnkhlQ5OQZFSf+7HLtx3ldhl9TLK6mZc454VfzULTVbxnQnklI3KpaOPyfxG5E2lMBjosL2+tRAS+PImVmhJw9rVJYCTok5Nh7NTWmQIqGmT1dtA8EmsSGxEt1WEGGjUXopMrDRD2sBEmF1SqXWYk1ebteoX0ckrUOeVnSaK1oL5pb4dqEZWWmCQxN8/fmTijyGMJ/q/rXNabY3Q/TCZn4rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9e80d547-15cc-4bfb-9aa0-953a5334f46c","name":"release-9e80d547-15cc-4bfb-9aa0-953a5334f46c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e40704d9-c839-40f0-8073-2348ff7966ee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418345522396514128798497641866847975299230520578453307322932828135184546153217445187476532523225780863863356675127552616677543389956674634768498247580734038863165584891104822473384603540866537606789138036072393182336267879547647510318426630712207975238191118878401229930863581668080814676884729299860789986602061930799933602401114166108","osProfile":{"computerName":"jianyunt2"},"vmId":"b074e6ff-f531-4804-a191-9cee271301a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu6qAp4nc3oc3q/0Kiz3Gis6EV6QVCFiuFcJ5CR1g7khqDvJwV5eF1+7zsFgJeMsJ/EZbqPJW/FMSyhSO6E1sqiQCQzjnl+MbBF0j/AwMF3HNWf5OJ6iodg65YbzDVRxMNbPC1II13GVYdkh0+hDzK9eSQblYJo6vQvvM9wtoR7fFLnZDgHqTb4H8qC2+yUi4VbGhKht6+0baYfORjqAPuocoHRmTbO+PRJi9sydLoMX/dQ3va+chgNn/00sTZ6X8aQDXwJze6CgwlWYTh+O8FyOgWkXBOZeAFe3s09dclTgc0GV5MTaV83lHE5K4UIm20o62N4TY8aebl7OJumMT5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f2147b95-c378-4942-830f-d108b64376bf","name":"release-f2147b95-c378-4942-830f-d108b64376bf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"11b0d783-3a28-4345-ad3e-dcd9dde24a31","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41812152108327346076003479918952093149877267236420261463178721048485452704778656712422356295158871923277020049647496982969935876324369506117423715261453103174516899949212950713499323959437589959677913788498523184112918453325991600339816267544038222788443701379701384888194626963058509228679921958219943619218000144531808875209488503092159929672410","osProfile":{"computerName":"jianyunt2"},"vmId":"e50e6fc5-ca01-456c-a8bd-46c3c28579d6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyi6lr3xa08wP8pWRz/iMWGLyPhA3NGtZd8AuG0JYmUbAGU/PtocWhAu4w4FylVB/r4FC82ZwIqRzcabc0+3YiRw96T9XTPKyUQ6DGnrL3g2blOKd/S1xtPubWpx/BiGMxhyk5iJ/N0jFAx0z8rxXdImsBo0N94MbwD9iGIF/bZmKoB6ELjAMXE/ybtY03sCaivJues/zt708M4x2ejflzF1d/axovv9/OzqTxdMLS6OcAtEdljdMFhCt4uhG0R69I3Plz0s9R3zDR16AyIU4BNbVg2VFdndfvLO60e8jCVJkXq2tnYr8eAeQrITBQku0Cmll6Y8HrYYdFTZjIruXYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7da191d0-8973-4088-ac9f-d0792e62ab3a","name":"release-7da191d0-8973-4088-ac9f-d0792e62ab3a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0b62fc28-c74a-4998-a042-ec98ce95816d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182061299205499447587275678996733803248663337701497676862963188526377266526493120537391336674549893652131426146236997521197587760176441285634864553162425954127986571201633234791857017305739805655654837349730672856378041915466376538161303874033435105053191713359957443965687006154050523496899348645541276934154787676923271299345360705036504582809082948271435584359446920562205","osProfile":{"computerName":"jianyunt2"},"vmId":"df8c18ff-0ddf-4035-891a-832a040473f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu7td9+oQdsNjzX2Av6lrFRdyvpY3X3XT9Xx60H2HktYpF+rFH54IVRd4uc7rpociS2f5B5BKH23KdGlG0BOBPYvTAIaXxbGhocm3jpTk7mbYsDypV1nOljvThAmjyOyBA4myLAZsYUOY5uXhAxMy49QEpLEokR+9y2a5YaDxH80gZb4UCnudl6YmJmixfoZqk7Zl3jgs0xCvXsnsSLnQ6MUFS4HnTu7tB1Qte5NUdnTkjLYnnMCzo3afw2o9+ZErP/QqbvOWvo0dGU3jHbFFkSxOz683L8eJIDHMHT57mOz6LK+83T0QhRpAGlvll/aXKXxGPFVGF6hRUmkcXQAohwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f3882e62-f35c-4764-93c5-790d3382889e","name":"release-f3882e62-f35c-4764-93c5-790d3382889e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3f5ead01-d10a-46d5-9af8-f29576db3005","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188049124259225106151758983321267739922013896899004877267292164771497094242528514749936112588478662131629323380326904321290109310833918769873656110200777923473951180705558836930079967651354978763946423739517838388335858938190745097318705225561855135834330354906504548474128370445324469968908185314491159361995723444504117302654182992273969713817857338790164019885412475471462390967197768812891220081490903511395814","osProfile":{"computerName":"jianyunt2"},"vmId":"0b18df63-a196-4700-8aed-14d7f2210521","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArxoqaq1LP8g1eZVBO/RrWLu1jw4sz6ks9t8AOSo3vS4gdfQtdb4ITTn7Wfrj4tRClqe6R20VuLVKV8pvxSYg5ahvqrq+xpGAGR67IyXxZD/9xsurcmONg1+BuGnSG1ZaplH30kfUhRY+jLTAICxtkXolI/1ToL6phVpQrT4Rs2kkogZgN5fAdlwrg7Wtw3JOacatMr8V0/eRh4LPHWG/S+zV3ECm+wGWZxiqo8S90sPylLNtqL+JnbXgGxxmkpMhu17qBhR5WIrgHGxjdFOr4V0eFcoT5+zIwSMKN0/a6ULuEjMEWgFlh99FKlHEgIieRK4BF2Qdig5hCZcc4ZJ/wQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4d0b7a42-d8e4-46f3-bc17-4939b7adc2a9","name":"release-4d0b7a42-d8e4-46f3-bc17-4939b7adc2a9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c5e42171-fd02-47a5-8c21-39b71a90ebd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41813796027717060051702959583986943997354731324133744923922476359257862473547149795105891724119067148211039038818354431944968308433345536863856938297533615024920428097875786074108062039568937445963720526235143043117537304992428673691820404342227681354845502703993586044786215348344826104355753063896258099505008962639407885671417863804611764743428284153081811790282184787","osProfile":{"computerName":"jianyunt2"},"vmId":"1e9a67c1-2755-45f4-b9c2-4edb340ca3f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0mTstB85hWWQBpWi+wgtJZ89VGd4PXzWAR4jIwfRrxun7YHj+zL5Jkb93eMhpCiEKyRqKpwv8ejEEHkIRyjClTKwGKkIZrw5DpDhgtxWT2qzxoBzIbtaB+2PR0Ax5D810b29euSCRdJDIYJlYhrlP2im0PgnxWBYqyY1xi8OP52QfkslzpiT9KjOowNR1dIk+j9gmOk6OcEy2+wrKliw1NBDM0XlnFbrVV0QTc7PvGV27/cRI8dsR/UaZnZwaUS88dbkv2keodpyECWZqcUAoWeXvhmB0FlRtGhMoN3iPGx6FrEJgAHoA9cxvltJ2wvtL4h96LyjebYFXIquNYPXtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-01ee0bd1-0081-4ef5-8836-52df45273555","name":"release-01ee0bd1-0081-4ef5-8836-52df45273555","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"95a23f6f-5e55-4e54-b54f-9a95741e7f62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41896166763197993389708440181552149101791415889240527795272865939045282634536580025847892223323241239985634547224664872415419253021370310989698730739584539259222074615957307553914862431902020805744629323514180479477567160510113245669552598129889625655099761230860457610868789056038561768128827134972717284617474835630651671640725783249569700191127899477560876470810481038640615314071513936776760993693","osProfile":{"computerName":"jianyunt2"},"vmId":"16158c93-205f-45f7-b285-ced4ef8db7e5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtY9C4bbH18zRneSPetjGe01921BfN9UIEgCWwHmq/Epn3XaidoGh0WLzJBvD0fn4TwX4ou3v349Cl7PW+T8zTpA4dGMW9F7yz3HB1VfqFr59byY95rK6s3+E+1JIIVUfvv3sM4kBW88H4j25yktMN6LAVBsMSHNV7vF1mkQMZBUkF+txvvr93f84r2x6UiBnB/0jw+T8dyLr4onmHg6TanrJqs6hywzSdcmFX7DneSFj2AGaLJ8rBU+VjsXGjInY98MDiShr7DaAbU0V9WNrfyFUI3rRC/aIxsrUkebIVHrAqamZtFYeNvZAQun7jUL5MqQcmNayKO7lOVydQbHEcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-49fe9072-cc41-4a34-aad6-56e68aade62f","name":"release-49fe9072-cc41-4a34-aad6-56e68aade62f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"53396c88-eb57-4b01-b5a2-d5aa82f269de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418771172418129967484878637325070992913398084133046313339748291770337191869136566184929138738819929801188874873831475523658875795892857019533513891774608959757902177587678914268053349136938959330081214816964151134897670653034697947565406613126312465217083674503969116187446157734254678523570655385032647176224478852348697142113386158193365687322138084904591913178","osProfile":{"computerName":"jianyunt2"},"vmId":"97074bbc-7c9b-4aca-ad4c-05f5dc956d11","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoKaEfPHzikBZuaQdNO2QEwlXrk3rj98d44e0y81kJU5Ldq2/WyeHEi75DLC71/VLxBhLURJDAeEWIt/VFYyWff8nbBt2odUJaRcbVWNoL00ALXe2i2NWY9EzpMJX/rM3nzHVvIG2FUmB4yyScWyC/nawoTAIwZofr3SHu4qHhS51ABeU7BfEfGlVQA0lwEj+9VB5r6TCkuxublIr3R5wQTA7yh2ccOXM4kCdtI/u/NRkUM/0ewtrpNhkK0IpxpgQeitNQBwY5vW8x543RsTt+25Wk828Agv4DAyygGJ0S7z7kCsVZ9Kt2g3fhFQq6NFdAhaGbTsEJz77zJrLG9enqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-615f74bf-066a-4e1f-8b21-2f4eaf25149b","name":"release-615f74bf-066a-4e1f-8b21-2f4eaf25149b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"67737950-cb95-4498-a1df-d070e91dd2b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41815517640226783595078779968651353838924072799228156104808291924495114757125170466947406335569620277936357772413528016482991036266041543677202839752633749123606179627532848775469215764173976897532877134153236997428563660474018547101495291017513841789697766208482849261146322387548653193509188536054359962063917819507936145871691133991984551222449232347965166270647296925266044615720918332901608380681202774828418548771147042658066869867486170216513","osProfile":{"computerName":"jianyunt2"},"vmId":"971f94d1-32e5-493c-ab1e-feed388b00d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz9+hF2GEfyTiK+kD9SiyjZAN9OsGl8RtIbCWwgmANMFGAaK9hOjR7uFqypZ4GgPn+nYbBoXp0joSlSy9UsnP3K4P4c74YJPjeoquoxyfqJvfUNnyem1QPTf5TpCF1HPFLWzZk4B22Xxz5QbrFLW8yylvHfKQLeTD+gurdvaTM/k1+jJCamZqdwHGH6Gesc2TGv5/iH8Z5Fytc9KRVckV6yuQ5Ks4TF6L3LTbITVEr7vJYxZXptuAwn6Bj2ACy4VxKLzOQ/c8q85ity/COgGf1jpINCFdRDv+Pdp+q7olrX3bDOk3d28H+LB6L02RqdiIisjA5wbJfYt0SRgqS/Lw0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1746aefd-6292-4448-ae01-96b64d46498f","name":"release-1746aefd-6292-4448-ae01-96b64d46498f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"29201099-5057-4620-b74a-286203943b02","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418278582352324509681545135216804941443197303426680972604347480490644451513333573797329197441688643551851704854552109679661859928101818237863672672808445925096375698312620986212252034942799454662152540860054853493915904647483382314871790440161923596372248029136506218947511263891165595342661761168413597087027849906827548954406328612219669391058881586848948617287122649986657778","osProfile":{"computerName":"jianyunt2"},"vmId":"aa5ee553-9d1a-4ca7-ae66-32e001cb96bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4bkIe1Jp0Af4bDn2Ga3RCSSJ8nhFPKEkZIfpKUT6RHX/SBHgwZTgTuAxmECVXhqqVYwktBfDPKQIKX8XMCjE3YaCJllxedjkc42aHvujNzDVuk2el25vSjf/bFnmLEjtz37BrFITwP3jCe5R59WnbDkPlVWjJ9u4i5WTRXfWRDrO5KP1M3nqoOx1YnAMfD+WSkaFgdZoXBqOQ1UrnZNXWM2Gtaer6dARn3QAzHSU9KraF2o/tqi7m1nn64rzDN1wIXqHdPsQ8mthTN+ytUl8nb7T74Fw4JCOcMoz2e/OB9+FZbJycqzJCZQhguyrRfmnYQ8LmHoZQhhjEJZXhSulwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2b373086-e5b7-4c11-bcc0-559afb9a0270","name":"release-2b373086-e5b7-4c11-bcc0-559afb9a0270","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"27f02255-77bd-4060-bc4a-ca14b278dc37","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185226214717006519723362712567599681420244922817991993459997916512542878303663752998754485424904537693546067473121372913532718388904545306315154044242562711607067018821201363842444982375659350298764858417429586694968616518232068833575336664312084174876157139661561419853934943083025276497629568819656423469232978066824986149737325845288985315939031612833123044593195045115998399034","osProfile":{"computerName":"jianyunt2"},"vmId":"3a8dbc6d-5ab1-4923-a165-2d701104ee75","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuqdO9ehSEL6MXROKRmVAKVL7Zb6dPMMFFDUikd7Y+43HZuiuwHmd/PQtdI9R4W1HDKQovmN322VWUadRs/Q+FkQETPwhe60IwNPD4zz0gAols3pyWKHGE5Y1lnArQFPezXMc+nhgrfEn0OzgEvX8oSRohrBbgktjzR4LIqUg+S/RrSEWwk9EysN0TfBwfTQiDQVeg/Lt9A2YhX+ngzlbcbDmUEY3h+cSnIhiyQc+M11p+u1A84oKsN2eETQZTlDVH2JBdwvaQW3R+csh8kC4MbL/sag40qmlF4R/3jUB8YyI2Q1BfYO9hDI73eP6Y/Ut2OTOEp17szA8MYPCBHSetwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5735562d-8eab-476b-afb1-6ec33ccaee25","name":"release-5735562d-8eab-476b-afb1-6ec33ccaee25","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c2c0a3b1-1da6-4664-b2d1-a46d748971bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188815992253501603281312354007165379630566799454441909677669449023730928541568172639792794911693431338833261270141095659869854460734633149160786371198497692628774421117802895436489487034532840965214648646951864787151040661481161671448544774139193998974535590410362968359386420504633336037873753802494206172605951211259284329135274511577569097430788711638538974123484171530458364302059","osProfile":{"computerName":"jianyunt2"},"vmId":"05cedd67-0f58-42f0-a978-298d46775b38","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs91tPpIXQHmoioorZ8rnbSHm0TJWkOV6mjFBx2eFqf5FW1CXpHkV6bcQnXbPMXAOjFaNPHeZX8D/1oUCv8M464YzCL8B+vpBoDaDvc70Nb4rHk/nZQ0CYaq5VfqP0vyWNuJBp6LdOfZ1SN81Phbs+LyReJPy344/9/TGWOQoeMRd6MMev6QCtKaeIGlSarQk3UsV/ydqGbnbcR14v3pU7jjmoMV+Uq+ecY1gx7NMEH7cZZvc57BK19LXpZz6yrZKB05EdpwWwAIvhxEtmK/FwVp1MI5kHrSpR1cfCYM1y0sIh76giLvvuxZCwv40f91CuoBQltUwDdhGhfx2YiaLgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f5e7b409-8f13-4430-af2f-b9dfb151b055","name":"release-f5e7b409-8f13-4430-af2f-b9dfb151b055","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"72de1546-efed-426c-a9e8-e0d858254c3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41821064820799288583323193545798653519845637239758174233795385690123650337259752826773871506668631235352588066947338544792069131794819397142838731127432181023922575477629901444863225892937981705510686383996201784918845315127911414638526233661835656725653843577034139985231351672716295699762872661978993447567131685434151757333407944667340926122516562185416198365758419882741578710116624187217","osProfile":{"computerName":"jianyunt2"},"vmId":"80f56d62-6682-40bf-9609-61462a8e5e36","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtFZHhoQqIgxjbpz0kpK4q0CedCIPFbzIEfF/pN2dRjt24v1O9vl/UE7QzLrlQ2p75DVN6JK7EVff+7+uXvqiR6Na+hD+nsd0BA6sQZte8Ho4lZPq0xNw9OvMCqEM1nNOSBoA3hwCoHji2GEWOoX0h4n365685NFwcDi7JpWc0ENtlYklYMCqpvaDI4PpbkZ2AI/8EU83GjsLYKUrxAMKzcijVSTqh87d2kD75JGyFzpnWkmSYEnsY5V7hl0JMmDo1K7f7rjgAn+NDYrcIolYytVTOoRSLwBv5CYC5ZaqLrcbHBiPMPz5TWYBpxqG0S+TVfaHIOotJ4sL0JJ6NMM/iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8b077594-a713-4959-b362-e3c22acf14b0","name":"release-8b077594-a713-4959-b362-e3c22acf14b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f89f8837-507b-4f79-9bca-908cb9b12795","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181359225467427217681038054303519840002362118418111463926136842857596648569046746620489165403564165116442563441819681092293125750343321362032086841012395553812408124934815693771261390079533669955486484305550298747678690265716108537756968201040995674249892958322105599728186830389821693227140172051112954387683187637324782418826840224441325158514277063179091519700512393845151331605757611629712327638979912995354376559158879976768211631677723899828555887267875725942051831","osProfile":{"computerName":"jianyunt2"},"vmId":"c35ba130-58df-4a81-a7fa-a41546b0b833","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5JAMVNv+lIEaCAXX/lTdh4p90pnZqVDxavakkAKKuzBN2drsb1neMnetdFeY8Q0Aj8BvLDiosfUAZ6voLzfJqoWqL+7bXwuA6iOr3XfqwCqJrZDfz6iDTcFBGieRGpj9zlzm87MZEN9VCJgVr1aQQ8kGCcKldGZm+WgSsTe9r2OgrfOHl1JL2uaTLro51G8NuKUCkV6d/djVowuF1ROMnnuRFPmOVyL59rG0WMr86Xcz6pV7qE51haq6NgMuetQjSyv2QZqIa+a/qL3sNAizvJ4S09qrKCYakl3jmmoXlZm1nAT/3tnIIpBmYdE14NdJS7OKsNlykAMCgqum9DF8SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a02933ac-219a-4ad2-bc9a-5d6074fb059c","name":"release-a02933ac-219a-4ad2-bc9a-5d6074fb059c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8f5ff258-e16b-42af-9ba5-93be4da7fc5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189076800117422314788353328078649453343675804104150497796809819183541276743214031126931485491234665169669930316381074395188079576080933854490865032848860761862913185893144556284853321272892257271710071414187312846389665803741312412146798871694953696631375526381793139909497581734865095336398366453896648570557285284318360591197739869234235252450576402274464092648336128548511493358925531693374007053474847375063161562997081684","osProfile":{"computerName":"jianyunt2"},"vmId":"3738890f-5fe1-4cd6-81d3-c4c5859defd9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuusWdIwzIuoe3I1eAZv79DW86Izsn1H+f0EGwD2CoCivZWkZRgd12uaV+aZwZuqIzGYTdfK/jF4Bd62lCRPKk76scihq9tJskASyR7X0nnj+7SJ6mt9fmcDpRuxfn1IwuyEi6go8janur/cvSNxL+J7XnVuJujyW0mxceav5iVm8pqCvwYkiudhPw+tny/5HV2wxSGgPJDsZLUIE/x7qGBnOkbvthO8TcrBiIc+7NP+m3RSKR8FWuXB7MPj2BSjTPR+iUoUTvYRoFlmtgE20dHL2w2otK+9kaKLslBXCqp5cmSoaVEFnEr7y1gK44d7OYTsPm1tZOSl/N/RyITqzHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-24b4a5b5-955e-4cd7-9634-0993f4e4844b","name":"release-24b4a5b5-955e-4cd7-9634-0993f4e4844b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dffdb4a6-6f5c-419a-ba4f-bd63c35769a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810241964432644256324732386355775422252718779138637219923227956268496377524236272353818529035667565045375878943206769628532454376315511149801260419148603867514244284841343203174282282616405762769091440045073388202639999441771636998919732253934944963944204607453124889063217847782575715396906197436779026122877649124773363727508210131315796397571949481271972962141679817786513687","osProfile":{"computerName":"jianyunt2"},"vmId":"a441299b-c620-49a0-893d-5e4fd7710374","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6ZeqwsLnTa822tfirLw682RnavMEOo7DOfPyyour5dWMoXYPfEkT949uFjZi/oFElniA1T7XgHWriFTI1zEK9UMRI4d7OHJA+MEArRSekY44y/YvT4Iao8r916yYIR8UM46E6nWb7G3wMFssXejQj+WZDUuFhZw5D96znJvA+qQudV0bOqAvfUuPbhIg9LkhH0WFB1P37b1zWL41B0e7YUDWApgF5Xjyz3gvSC6Bkut0bjAyRW7nDnz3laI50xpCnItLdGOziWvmBgBsjrX4AxJYiFCqID0oXnRS8V0EzQ/Z7CiAsRW2sdiyTfdobZMUDq2A2OvlUY8Nh24R6aLVxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9ad7f40e-e7cc-4205-bffb-8a25f1954156","name":"release-9ad7f40e-e7cc-4205-bffb-8a25f1954156","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1a7d6407-2d59-4f33-a178-c7ff0a0a179e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418938735988465274488125253268437970212768289860732757919742016822289666765881274604772619259642958221892626866175571367876596839338278564764635339459817318423354475954417471968793429887229178479148930292061749277297603873831206178864232752896755523314489188140816946764382607695463634514596908231707437285936202175355438842228857267726486952764933295301692951443164237629943077862208460729413729","osProfile":{"computerName":"jianyunt2"},"vmId":"144db572-1fde-4efb-afd8-b28bf6851801","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzo8Wz/vI9J6MstZHdhB7F/Tvr/fJuI2thcJZuL82GLK+zTa325bWKUlDx5G6U+IxsFeP+Qmq9daFITJm2lIycTTrLZUnMtL0HfZUWFGnWh8AY1JnCk7OcGZ9sQotBSt5Q/zAUodXho3Cot2MUymwdDkGN4iEzNweI4Pr6lJ+n918bWCyK9AWYi5/xXwgvKjlUgL1ClFcECnkRQnJh/GcarDB9iI0/8766OGAa68INv3Kr0e3QcdRN93LnmBLOWqQIzaY4Oy/H2FoG7VuXwBoEdNN4a5tXmymgOf43tWdIqF3iWRaN5vUuoeFHI/daxDBD8mixOeTtN8IzfwGEsPKfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6f1f2f46-8136-412a-b37b-fab7274cf6e5","name":"release-6f1f2f46-8136-412a-b37b-fab7274cf6e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b7a0c61e-c993-4037-9428-86e18a789e01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418547171064956297946537455856415747468204306030226291705082992153458689172036121646773862206292551133208804046648523575952792724830326634634700546013629728825373905536670570991151483675192562357991166973888891537637989046347876693042178441190123356448524803512155969695285070379202684750826097102817865766943472755033041631168796275544446183362448033728064573080544691038646967886741723744578046656","osProfile":{"computerName":"jianyunt2"},"vmId":"990d9123-8412-4522-8afc-3b1b4856b573","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAplO+6MWSaK+uUiC/AE8h2A0hun+76RRDAhousop4CpLeAK69SNRxN+JgpNprxLkzwG4/yDzYFsAXtCxf2SCsVu+Wr54DjBfFbqQMymYHfCK4RKoCMxBhdlnsUu6gViuntzmMFhIpLLsNyF9+YaSW+QSoiWq0du7n0dCqYxoenXG4BrkyAxDP4sMwUPSq08qZDGYm2WxA0T36Rs4J1U9dRGZIe2hQsxl//15RmRy3g6pdSSqiWQquUZ0p7xKuzjgwaOlnpKaiCouLlxtmMbGsDkVQP3Uu7Fhjyou8iGirf2t5ZOn0n/+pP2ZRztX78KdoVk0JBTl4xPacVDtOD/V8FQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNRU6MwEP4vnes9iaVAgTrj3GwgaNRqQ4te%2b0ZpgFwt6QBtUcf77begnfEH%2bHTMkv2yu9l82U3eeoVo6jtZbKrexVvvic7m0czoXfTyut5VF4PBNi7iTGxFUZ%2fHr%2ftSnCdqO6j2qyop5a6WqqgGq5GwHMtNtNQex5plO4nmOtZYE0Y6Ttxkba5X%2bmBXqoNci7IaTGRSqkql9fn1y6qUa09td%2fta4E5JLgtR%2fYp3UjtgJCa%2fNPThWNNdTTe0XSkOUhx%2f%2fqg2cjdXG1Fc9kek75C%2bYdTtFHXfhHY0SMh8xH8DsfwDd8N9UcbhRFL4%2bPomOv2%2bYYZzDBoimIdei3QdMZs9IsYkJqMPiOzRyLRxFkzbGMiuaL7gC7ihL30jOLg5n5oIJhEmDNJhgASQUeA2fOpeIVBQZCxiQPfh0XoYbZAmaUme4V%2fGRSY%2baXfn2Mqvp%2bhitnHzGWEYQdBCx29l5PfOehS6ftEIpv9NzxrI7mESi1dz9Hgj2ff0jMmFtCGgW2vqEp62HYsiD0eUl6BtGIqFvUTlUAoNTB2EWdfVsdl2NUADCfk1IpRF53GMznMYh7yLZxv4DcCBKsgBryDeg%2bgOR2JTXweYAwNCYRmhKTjtaoc8HaPh2gJypJnHODCXdnnROsTMqJwPJoiqzoMLSMMfcI6iIj9FZZ3WrD%2fWpKzjaDa3AAvwM4LaBR%2bA4A6wymAFEVaXMPBQZTx4Ush7CRSkhNwDidbomXozHTI0EvYcYQV9DpGdGewKvMwDLCFps4ZA8wAInvqWMMpBMY%2fjBCO4us0np2ocvzI13RkA1qitvtO%2bI3e6xNop3K1NDR4FRTAzePzGgvsMTu%2f2O97O%2b%2fs%2f"}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad","name":"thinkpad","location":"eastus","tags":{},"identity":{"type":"SystemAssigned","principalId":"82345a98-889c-4dac-9e66-433d50157ac4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20231.010","status":"Connected","lastStatusChange":"2020-09-15T00:12:56.9220748Z","errorDetails":[],"displayName":"tyler-ThinkPad-X1-Carbon","machineFqdn":"tyler-ThinkPad-X1-Carbon","osName":"linux","osVersion":"5.4.0-45-generic","osProfile":{"computerName":"tyler-ThinkPad-X1-Carbon"},"vmId":"0de46979-ee34-48b0-a8f9-d8777543e3ca","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAt0RblNqduKOICwbj59hirIA3JkxB8qlSAgEo4jBEjCj1pcL4zM/NZcu9zhh7yUtrg2fkH4qKPiW2SlVx68eY7JJWswUey9dcT2pkiGQttlW04KM+k2vg3JNsoJY5Sntp1V11IAaXDbjU81Ox1PfjFw172QE1Ncjhhcp5+4RXRLugIu4wo12zpmVVhesqNIBeiJ2sezomyMDRGRzOUP8XYAotosqtwRtlYQ+VwxYyRAZceVuQA3o+VfV50EHwbdoE6PiPzY1eJxHDzZy8bEZwqwN6FsHOixcPnUwPQawTURwPGr6mVrepUMevPUzGZk+rGpr3nA20fVt+vvksJNCTyQIDAQAB","osSku":"Ubuntu + 20.04.1 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"tyler-ThinkPad-X1-Carbon"}}' headers: cache-control: - no-cache content-length: - - '282705' + - '1273' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:19 GMT + - Tue, 15 Sep 2020 00:27:35 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -75,11 +43,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 5aa7416d-222b-462d-8e93-5c1882299de0 - - f862df44-1fbb-494b-9a62-b8e96afe8897 - - c0907c48-c511-4cb7-ad77-0aaea1870541 - - 51ef500b-f746-4ac7-b74e-d5f06a0c9e4f status: code: 200 message: OK @@ -91,32 +54,33 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine show Connection: - keep-alive + ParameterSetName: + - --name --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNRU6MwEP4vnes9iaVAgTrj3GwgaNRqQ4te%2B0ZpgFwt6QBtUcf77begnfEH%2BHTMkv2yu9l82U3eeoVo6jtZbKrexVvvic7m0czoXfTyut5VF4PBNi7iTGxFUZ%2FHr%2FtSnCdqO6j2qyop5a6WqqgGq5GwHMtNtNQex5plO4nmOtZYE0Y6Ttxkba5X%2BmBXqoNci7IaTGRSqkql9fn1y6qUa09td%2Fta4E5JLgtR%2FYp3UjtgJCa%2FNPThWNNdTTe0XSkOUhx%2F%2Fqg2cjdXG1Fc9kek75C%2BYdTtFHXfhHY0SMh8xH8DsfwDd8N9UcbhRFL4%2BPomOv2%2BYYZzDBoimIdei3QdMZs9IsYkJqMPiOzRyLRxFkzbGMiuaL7gC7ihL30jOLg5n5oIJhEmDNJhgASQUeA2fOpeIVBQZCxiQPfh0XoYbZAmaUme4V%2FGRSY%2BaXfn2Mqvp%2BhitnHzGWEYQdBCx29l5PfOehS6ftEIpv9NzxrI7mESi1dz9Hgj2ff0jMmFtCGgW2vqEp62HYsiD0eUl6BtGIqFvUTlUAoNTB2EWdfVsdl2NUADCfk1IpRF53GMznMYh7yLZxv4DcCBKsgBryDeg%2BgOR2JTXweYAwNCYRmhKTjtaoc8HaPh2gJypJnHODCXdnnROsTMqJwPJoiqzoMLSMMfcI6iIj9FZZ3WrD%2FWpKzjaDa3AAvwM4LaBR%2BA4A6wymAFEVaXMPBQZTx4Ush7CRSkhNwDidbomXozHTI0EvYcYQV9DpGdGewKvMwDLCFps4ZA8wAInvqWMMpBMY%2FjBCO4us0np2ocvzI13RkA1qitvtO%2BI3e6xNop3K1NDR4FRTAzePzGgvsMTu%2F2O97O%2B%2Fs%2F + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20225.002?api-version=2020-08-02&$expand=instanceView response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000R","name":"ukspumuks00000R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7dbdca9f-05e6-4384-9b9e-0094404b9507","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"98c09f69-07de-4c98-8786-68927f1f3dbc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2hFkgTruOS2su/LBjnUUI7xubwVC2TSJOQLR6h8ZCEamZYy5roqErLbcW2xlLxExSMzCg3xshB2ozKFBrKJwdAAs6ovEr64G/mRo2QbBuSo2oKCQV0H7K1XpAkCQE76OW2Ud4C1+MnxOE6gRC0XvndAPp6yOonCT/zvkAC+JqOpck2J54x20qtdgXC7iib2AsI7Iru42U6+OaCUsttltALLKEwYQ3XIamZe0Zz5QSC2K09YX1l6dRTgyLqTTa2zkVKDisddWauSuD3wwxK5bcU7RXenwuOvX534kI7QCmCoXHCEcbu5g7mCGXmJE3DNxd+3X4Mz5pRHh/XekDL/7nQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002I","name":"pumnamuns00002I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dc34e144-7865-4f52-9b1b-2efb14c48403","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002I","machineFqdn":"pumnamuns00002I","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002I"},"vmId":"6c9393cd-748a-4bc3-8bfb-be12cba3ec3e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsHGNeTDqoHfqfqWo7uiFEiwGBvVYdblc3Wf9YvwzT8OyzBTpV0cps6RlGwuuxAg4xAspVQlGiCoLZlVc/JrwnTq1tHsTmzjr90muLo3SCkI3sqXRqcR8Rk7i9+4d7sJo5PAyy5dc6we8ANk3h5EEycW6ZgdvItB5F0Cj1ow2T0aCFaUQTixCptRMwmQUUrFe+/ZympcBev+U4MjOJn7SG0nuccWu30PPr/Zd70R7pXre6/ojITPy9QutpgwraDfjdgOfPD4wIxXcV6Wnq1chMqTOYeVGfFNoatAwltU+Tho3ys65MMVznWPfdhpKRH0YZshDPzj753lnAVUJ9tjm/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001H","name":"pumnamuns00001H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ad034995-738f-4715-8fac-002babec2ed7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001H","machineFqdn":"pumnamuns00001H","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001H"},"vmId":"7b157cab-da74-46b2-b69d-2cc4104a5492","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2FMHQH4zAvh0hKnpCgLiMBNxgFq/O3PL/BS9xd6qDIoABkO/Xipr65WvJE7YOsPT1AtOHqGVCFCOLdZBgGEIJvONrPnktJPrwnhtBh+80PWx8JSsJ9tZhTlF5J6v9h19Vx75gdxz++ycv+Hsdeo5B0ro8KiJGkbQX+1lzaNweVvdfynygVzXA3Yg9EFTAidb9VOTRKwHZQBRVYIpPkOYqV65aycCsguVyMU0xXCluqQZ1u0l56ddqrBmL1zIZB2dmvIOk5ALt6AaQdfVXtinMOzdFvymXvnB8zQmTHSfqh5sIfMiXT78AW4OclXevSwdD7fjG28/0Dm7hoPE+EJEJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000033","name":"ukspumuks000033","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b6741574-e4ba-471e-8c16-2bd70ef3571a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"69b7daf0-1fa5-4ff9-bfcc-3c3cbd6b18e1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwkyvXyZ3KyKwHeWSQ/MmXc/6Sd1XBqII71mniA3PUzOR6EEgsHHTCCazwTTnY9g8HJbjo+nsZ9v9/kfROMzdzjOokqVH+PpBOAt3qNiV8dV3YFFzn46xh2048pdnVsaj9UOhg9vJz7U0zDdQQErGHBPL7RLPK2mwRNeFGIpQvR3t+9Wxwy9zZiNhPCc3d/S4fswgdC02xm0VtIrQI4CXEvR/4wNaowNLNGxSIj4QYK7ts/6T843aQFPCB/TiyLKGJbuVxZdmpj3MfIrgDLToljFsVUuxSqjMG45MaW1krtkWyX1uMvotoagslmZTaFOnFuCx9MBjGPGvTpiJ2NRomwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001Z","name":"wepumwe2r00001Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a6ef4270-498c-486f-8315-408e256b7fe1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"97d2e58c-1c64-42e7-8a49-5078b16554a2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzxD5TBaoyodMpMrR8OIulmOocJ2X0IPpo9WBizSIimoU2eLP9ISsFTHB3PVmGNlsffDe5SPARPma3faQLlYRBvPt3dZDbrlvvNv6gWGN+AhPEsA6iGxu9ZTMybRqzcUlCHrY431sQf72nDldEmHsEoo/xItFyRBZkKI3LLDEoQxFumdjw60Vp5EAduWrzM5rZ/7VyWLTcCpy3uAvY2dD+Fz0gXQ6X3uFFS4lODzjcJrF+cymismuCAnisjkDpCcp6rmpUvAjh3ODdsrzLh9GB2qAgUGOnYks4pFQWRnaSYlNqp8GGEGu6vh2+BRNtWwwRNaFXg3aaHOiho8ZpYK4qwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001Z","name":"ukspumuks00001Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"592e1161-f626-47d9-a9c0-d6454679d619","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a3efa200-1275-4637-ac81-15bd961f9e3c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArDjpZF0RxyVu/y9TfIr+Y0WI6sfudQZMXkNZRbDLOylv0TTnfLzkX9m1zg1xOclNxWDvsqLUlro5XHX2RlPsQO0F0EJ8S8fwvFySdjmhrQONjyfUUFtOpZNiIXdLYEuhOUfx8aY6Ts0hMIQXNWBRy3WBWsg1u47yUtmHfpTxQ7taTm8Bug3LP6VvibJO1uHFJN9P9KCRzh38c/MyafrELa5Yqex5gsHW/v+OqlNg/xapf7Rd3l5/kmaALn22j0I0YM41dbbA60xZHAtk0lXwfX0c/M0NUGYIWZoXcgLKwOwxkDkqkJAgr8HK8DF7iUJ8qO5T2BV0yCYU8O8BmDJEyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001R","name":"nepumne2r00001R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"446b4d46-c1e5-404a-a82a-3967a61e819d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b6a28e21-dbbc-4228-b88f-d4a0fa3e87b7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxORshmLX0BN3h/XxomzCzJSbw6OXfjplIA8FajCaI3WCc1iccNtHcbJ7tRuyqofNMQm9FBHBfJgTFVG5n2KOjZI8zikYp59IaDjZtu9BupBjq3n9D7/beBH6zpFDzv13o9zxX6+nmx6A5O57zMCOR+EQVwFt2b9dGEkmR9DUZmwwNMFn1vcM44Nno29ailKNangIPU4hIy5VPPOsafy1J78Hl5nupcB8q2T+CF8e7LCD+ZxaaUibUj8LPzLjChCosyX1y1I2oG+ZfCfIMh+07fdrrUJ3S8iC8xtaW/An5VEsSeb3PqbAU+ld3vudnlWHHKBFcKvKfCd/jT1NZ1UoUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001B","name":"wepumwe2r00001B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ff2b9224-610f-4673-b202-c90545b30da3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3744d96a-6ab7-4cfc-a426-a99e4951c760","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtP7ZTEqqR3Ie5bNgzZ/wGdHogFPp+DhqCbFEzpxHcZpYjtDKbfTrAeNZWWascK+moL1rqEXr0VcTIW6PgcSL7VJWOPS6jD3pIXgWdWVDRjqaxEsVRAcYtJLuQdU0KDIELdWhzk1IMCmor9j1rUhCCwJ0a0+7R8vcqRMmkRMklmg+D9ZzGbc97ssB6Qo9InrsM/2piZA0PSyjR66IdsP5LFBGUXh7yvKrd5BdCl5n+Ac66yqiN7kgBQ/0v/ZZTI3fmf5KI8Rw6m2dLXUIZSwc+q8fjgqU423XL7j/11IJobGoFIS4NOkeqOFuMoEmBww3hM0HAszHKR1PHXW6DeePCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001O","name":"wepumwe2r00001O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ddf134a6-5db8-4ab5-a5ae-0635a9c8cf11","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"470ec58d-9c1a-4c92-884e-c108891f6907","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqoLP1bB7QFKaoG288vRYh2tXe/WzGMnHIH8+ukVwq02SCfNrnYy6sUferjVlz9T+w6paQBHws3Diaf9ALiFho0EOgPcvu2SFVryT+8deUzhD7F2n5Jf4NgLO+kdqmnaOnmgkigPpKGaQAED6mbiozxoJ7MQ1nvTLWddKh4jVWQWPpF+r/oqeemdqvNdr0/93ETJR3JfY54biuz/QWnVeXnWQaFZ4dPezSqQ8x2w3i3MfjxY3Egfubd3ZKokxopIvpgnbo2V8x2vHA15RFHmA4e+2nqxDDPiaJY4/l6/mBEXqmkxAu1DIyN3RdLAtklx6D+9BQEP30jAzOcMEdl6UHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002D","name":"pumnamuns00002D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9ec1d445-5c29-4ece-92ad-fc77631c51bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002D","machineFqdn":"pumnamuns00002D","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002D"},"vmId":"ed1f8787-85d9-4bc6-8377-a8d5e46da899","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2XyFj0gT0+z1qGWQaTWENlNDLvM2dRrfKLZRBrObf7EPAsqYuT7BNQU7cu+2MyBmAegI6uJhem62gRF+TgJs6V7yfbyuxTzoj7ubGEOmepj0exp4w473poZO0dk8V8GPRrK0KEDHDI7j+Zzffwg3yWdTIrDEAJFzL7VQx81PRH1S/EycHfRCD/8rYHp4AGzWU/Pxq7iqf9+SKXvo7QO0DUw4RRDzhULWOWGurIYQ3YCtwv6NI4kxt86L4pzQ8Lg1NiiP1u1aE3FD7id41v93zyd4vSt1+2vI6JjMzxqURWDL4mslK6vB6tlbSsMisSGTsc5PALFvIzkZQ6gtRIfcMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000W","name":"pumnamuns00000W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c55a2fb8-a3d7-4c5c-b67a-e0cef6b6a772","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000W","machineFqdn":"pumnamuns00000W","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000W"},"vmId":"3d03f2a2-ba0b-4447-af03-b01a6443574d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4/kwkQbnUJLAHCpYqyh6L2ik734jgyAtHz0Ey1WIADgLkcvuY3E8T0VID/VPQiyYlegtNOSdCDySZaRZzbKxrnG+lymKpUn/QiOpAoEKxYBSanWSYSg/cMQcbRGCLUoy+f6FqucyiqmB8ZWqzdgeCn9vTRSkbcjuK7CvkHxuYNdJ2SaqJjfUlxUkftXMRj5sg2CrFjAQf4lokuOTLYcimSzmiDendilWisYnxXmH4jGOHIQJT7IgdN+ivyp35PLCdHKAnrxHI3Tx2qnUR9TAFg20EZpmFj+bjYUPwxlwK0YhlmqOH5h2htu1XdFbGI0mKxcG1u4xqYUmWQinBhLiWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000016","name":"wepumwe2r000016","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7cd5b48e-9203-457c-be9f-2b83e1340b51","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"54943150-1fbe-4a8f-94da-0c5510c7c548","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApm9tZmGg3oDXsodvgwyAzpGQBWnfPZJFNPmdVzURloZcT/OF379nL/THfcXBaWvt4JNBBSfaAvhGRledUGyB9lDRpwiJNDvlLU3hkyEPPtetENQfvuTB5c3iAUOsj1rPR2KTzHS77T45T0Ays7xN554wzq2WYmbOHqE+oJ5IeT301M+Q4TuxIqMDL97Xtu2Ds7Ej2Nha1tHfcBfKROIIRwhItHiF6eZmJ/tqp4rB//zyNPD/2O568lHDwPVtT6OozZrkBBFllebCmJ9soXyNPQj1PrTxoQTVlKFoNSoVcSfhoSj1GihX3m3/qT5Cf3UziTrO7KuC7pqVPe3x7EI8xQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000C","name":"wepumwe2r00000C","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f6b4f78a-1ee8-4b84-8ea7-f4860ea2985b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5cd9b6c1-02dc-4ba0-a0d0-f10ff0ac1870","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApFiAEID4JqQ+nkspN4KA+9DEJ5nWty3wyftob2bBROvCt7Y+7NSJryelfVEZxynPcxtkf91SOlxS9kr8z/ySYcMqSrZItK/hTQNtcbGGsbvIM+bvcZqFr+RFtq/d8TVL/BmOzVULLycTsbR06e5MmhOyLm9oLojVoYQhLNrZqFCWzY/gQQ2vtIizxFsEhFYmC70snpHmhJCABDCl3T8fWy48DoTxYePpg23/4qUiJT2nLCCkyUHgIg9PZrARzHyKJnjzlTyN/7U1QAs0ExJdWqhXbO7xVSk1sIdoBqGMrfhI5cFvW0jURgXT7zHNw4sTqXa2Av0gG6P1CV9Ts7ArAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000N","name":"wepumwe2r00000N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"613c02aa-6b18-4bad-b83f-b63170c632c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5d22c905-c7a0-44df-867d-81699931047f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2caRTg+W7qyybTIOtheEKnzCVDMUyTmV4ZQnDECmnOo0xbrbG/PQ/ziEnKQMr2WV3V5LHAbVj8+EUZO3VRYPgyTJyjIx/hQSgI4TaO9QtSVL6L8f+3j2TYZI4yLgiwiD64KvCJof81QK4Z4hMwfxtDZ4CqvbQwmf8F59Daq6yHD1ncc6K8pTQZ0qZ5izGjrTc0tBg3LpWeZJ3nS6y4+4FK8fLBFaAsfzPl4ycQs01KVYaahcqVNZruKlHmZiXab7M90g1t3tRoUaHTLN10RMivlmfenhiSiFGiIYkIUgCbmA0+LpEMG9hrwR/2aM0qEU8zP1eDFV2hA9vcP2xt9v7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000E","name":"ukspumuks00000E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c49d4f01-5cc5-4b2a-a244-c3211d206f79","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f37521cb-e98d-48ef-b0da-a4b012b622fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9zVaD3PmkOe6QMtaynUf2lC0rovpGYA6ZdW6i34LBAKyaHidzvfvlxyVjlwEzP+Q1enzg0hs+7Xp1jjeI27GPoXzhwaaVaQjmAZlGQQWAL+WNaSmF9eK8DWwXW/4/g+zoMTlYrkI6QXFrFE2NodmdqaxPx8tucfcL0REYKcKiopYb5jV6DY22hzMlVn/MvJjveZ7E/j5j5c8sP00Ovg8reuPIZ6SgcoSTamA+/z9jwXasoer4EmZIKx5s9zLm2EoDipzIL3tQjBJ98xPEByvkjSR36KALECRj8yPC86V6A0THUTTHx96cS8hIKwrEh+hg2yYCP+zjQK9GB4SRno2SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001P","name":"wepumwe2r00001P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"03c46674-bd63-45e8-b102-7b847b506c84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b1baeff0-6cf6-41ad-9f2e-d0563e79fcd0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwcaada756HG8VuP6/xHS+Y9MJMiRycrsoYemAPSXmzThDCJYbGy0I6Svsl2lXynVN0f50HJfuJyqbZjTpvdRf4kCaBYHXEQ1mV+4jxCRcoGGofConREhxIJ8YMxnvJ4qcgavoi18l7dvTSCCf2onh3fMc56s6jenmM6ukXlUmQfs1cFZvce7xaNWu0sFHUuGBKa4hpuei1W3737heVkiGVOwFFyIJjEtbju9KtKvrFWP15DYtFObATvYB8jhXjdFY395ndfggOhuaZ4bwEo/RQ9Jxckw35kB8FgFLjGiUDAF1tpTkh00UAQZ2Dq2VvfwWjSZEYGgND3lEVlpvWWrpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001S","name":"ukspumuks00001S","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"adfe0b01-8ef5-4e3c-af97-6b45f8f19682","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"82225b39-5c41-4561-aecc-6f5cb21834c9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1inuQv80+xircFOEufKYoFK4Ty63T2PoYeZJIi2NRQgUImA/biYxblPfRhm3QrEUMOqTEA5LtQXhyPAcxu5shL7/E/+J9EUtFdmb1sKPv6jGrrMuWDtDmG0bWNPjcDrCESKbZN+rMq0HDT407rLS72qMmrTOG0x+ZytGVPOWUoYQqLYUQUr/0sxo7l2Y90stc5UsWrFjtbjeY2Y0PHbpMCo+8SdEOOhFoh7aZUDUUfDdPiiHBYZG2yW+tIfSFba6hX7cj3bTBnVtxPP5CoBnnEkHfFcJ3Oq1x3BtyVXKuZEOoz+Ydmrg7CTY60it2UZ4ilVYcUs28Pidk8naRk6YzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000033","name":"nepumne2r000033","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"20cab72b-239a-4a21-93a3-a3f797af599b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"23f0e715-52a1-4a31-8e0b-13ec3ba45e5f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuzpKScCXm98ewirkWFSl++SEpKbmY8eTgzjMmQjD0/G81ZWYypuITJGy0uW5h5QqNSXfBQZkAt+vwVwRgnpJbOODUOvTKUP4QAnny1E1ZG0xp869xM8WYkiebQa60UHl3dNOp2gEgLpMus4RfkC9FL0uIkYUtO9G1cKcNQa4NjGwSX1WSarWakGamPem1QX3xA14YRQeucUKx5tjcRR33TBXiMjxfBNNr2840U+DecVvP+ghogp9vEraOX/+JYUe0xEZNQzy2I5P0a6dTSaEJJHs1gYb0bFy4zTLRi0rlinyV/DDUXPPkAF2BMSNkvFEfzHCtVTucwY3LqOeuhIwcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001S","name":"pumnamuns00001S","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"bd71bb82-08d4-4acc-8aba-384f6962eb62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001S","machineFqdn":"pumnamuns00001S","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001S"},"vmId":"def46fee-3272-4fc7-9ae9-b8a279b3685d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0oUcVplj93HXFZuAe+PzCelzocFJlA2MdRIWd5xnVclxsIZlDfe9P+8jcgAYYssn8SoAnRQmaJIx4aoPJ+UrskZPP5Vhp69VuZGSfKHYlQ5Qs/EwPbtcd0tk1rGINXJSXXNfgtnMCnDmtHNM77oIVx6cfYzIl6ljgD7S8uz2Ymfy9Pnx1KCljskW/OoK8eQ2/TYmrK+8M2LoWRuXo93iVDLNzfljuxs63/cqJYkmjynIXvEZNFr7hBzVXbnWHb+HagG33rlg2q5dsJ4eiW/GG4GMVvR3rppdnYhUv7W9zBjUthrkujtXUwpdpaj3Pbe2hzcvscJUUGXPnDw/zv6IvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002Q","name":"wepumwe2r00002Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"59a5604f-cd40-4dda-b6d0-2d0d3d5ece2c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a3a714f1-d727-4f11-8fc3-af3102bcef96","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3EwIQhu11mgjuIORwjT7+0wkC8iGc0IXFzIKdrjqDkp2DPNO1A3HlCu6Sdb6kywD4K8UmewZBrhP9mWn4HRaf6HvwrCdbjSUjSRGA44JNRdKiy59KavioiHcrc655U6xsZJG7F7xm6Kja33tDPFVDI+Flo4o2VtwlU2GOcFek9EyEO7EFOtO2tEyPLZgmBm6gzf0cxtVq4OOqNY5zsvA5/4rVej8uqoD0J+2QslU8btYPC1Rmg+W7gHvwJbwtiG2zCugZIbatGdhTYLXfm9EUUJ51rqmuYEjmkmoiFXtdIKeKJkMmOFLYLORS/nvJw5fOWQdSaURjfDjMbvANtnB8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000R","name":"wepumwe2r00000R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e6ab1daf-d007-470e-be33-4d4e0c3a98be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"458f6ca2-0d45-41f9-a83f-6a530ebbdb42","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+3mbmqagDLng14iL1qVd7hItk6LK6MVsBm9a/oqFidEKWQQWkIAtWaBU+XGOEldL4J9y+Aqg0zJUB9SfSutjDEgYrACAC02pEU3Dpgwn4aCQt7eDX2sL8fxMXBhlskfgy210gnKRV/Mb4pW7jtjAJ+g+/qZO88E+kA98omQzhVPMDUrXsTJGimX/kxskyJtnGizSdQiidOpDhq4Pbu5eELuMRNVXcdM+IYr/zpd9r8T3xwTcRkyCDnFjxwz8TIewPc31AVXuzkgo0mleHxveJOpn+XGNUeWoX47rkSN8r3DyrK+NuQ+r0bHTXdILsqhUgrv3AxE+S8foDKgwfPlhoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000030","name":"wepumwe2r000030","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f7e089e9-f2a4-4304-be0e-0c39df349dcf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"dd6bffed-59ea-4fb9-9218-5a2f61ad78c5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA68OA+PwmysjaG/SXZRo96yh+p/62bX/bWes0yVbJ0CtrQZ5H3bcACNrWjM5dU6gGVMjoBymIr8OtSYTqAsLZOwwTkh5u1LXR/pc48nFgd6z0BvF46i0JEE1PDSnqFsV4fxT0Qf50y60kuO7bfBvQBUXUEbE5RSGwnkgpD+4UC6aGylyXLvxt0ZffFHcFuEZVBDnOYQ+R5d0hpqYjz+u+Mjtk+zyttjsJHRHAirT68QJtX6OR8XoyCePQUPVhOdsYmOmATmyZfa0uMRkhvvQX3IO/cmwRyl1Zx9K5DUDtFhUcRN40hdfPAhwlEk6k3aS1oot0cYsRNeh8krOJIJoovQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002W","name":"nepumne2r00002W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d543241f-e108-47e6-84ea-90a1b562e6d7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1625aee4-03fe-42d3-af8e-13e58352bca8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoZj9OYli9fE2G5zefmWS7sURJW9JloIYYS4Z2QsAoiYX/3a+WU+LQGES1My3pBRAef1FAVkgB23nP1d3nVGWqIEZ9nMYkK3BPprL2Qu9G/zQ7DI4P3wsn4ePFmij9dl33b/aPsDVmasclAAZ4IO7gPn6rcDbBBJPLdvtlMc8jFlZT0Lp9yAi8/nWXlbvFWXB2EA4U/OdWleo6E9QZ4itHWSQrXZGmo+YJuK55WBllxfRiBL9Bkgw3LuGk+FjhygEhHcXIOWGzr8IMXPx0lZh1q8XksPWlwR+KIABgFVIKHjCTjFjjWRwwFTcSVIMDFx9YYTA8Y9+N9RKSqQd4QuL8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003G","name":"pumnamuns00003G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3ae16224-0061-42ee-bc31-0752d577e796","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003G","machineFqdn":"pumnamuns00003G","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003G"},"vmId":"055ad238-5286-493c-ae22-c82ffd31bbbf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+VmAaITpHpeuklySyiBN6VxNIrxJODLAfK7xxafbup41XoHzHkchhWEd6zaGMcJ3EaCC1uuXXkZBZ2R31XttLlZfuFUbSIZB/l5Td4ciGZw/VjeZk5j4dWXnVFbCK7I1WmMmFkl5LJrfDqXczesTVv2QY7gPgQu1KNo3zAGiORZfTgs4QRFZfP3HpuDIweZrcvXdC/nyA+kKokqlm52Tgd0ABP17pXD1PAlRXu+s2laojU32oXtSNlH91PzhXE2W7qhYA4R/NUb9D55eqG/eCtLY6VmISsJczUsksbyq/chvjXNnNhDPwMzpyOvEEQF8mV7mFSO/Y7oTgTPv5225hQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001A","name":"wepumwe2r00001A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"67a7fdf0-ef5e-4d6d-9397-c648a038959e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"7e834542-dde2-4b9e-9fda-b2dee6e2d2b6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2mIZRYG1BavViyr1qg4UvE+8gdlHkIfYeLBBwUAVqWw9EP6v3y8YheTVYuc8h7pZZ2tMqp2EXzm5Wgk5FjdkvO3Eliifx+iBR7O44NU0RSDEzYZNA1aJdP1iri4tXHTW6yx0H71dx2TIU3ngnMQtPzqmoiejYFN3DZYvZhhCn9PjRsXEabSLQTMP9qj8N38oXdciY8zliuCB83pr1GlZ/zxxFnU9tsbf1Gd0P8gjsNfWjAd9MsN7XDRKQcwdWdZfxdR0WfAkZwGVZ3cLxAIf45kpsCUZsMOtbFmK0J18JPnF27w2ly2cbuNG07e+l4w3HU9ey1EQUTdaVRDzY0tYEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000Z","name":"ukspumuks00000Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8fd96a4a-0c8e-4ed1-b3cc-0dc443948d27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c9f53633-daaf-4902-a09d-5bdf9757ad59","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8Rr0c5wrBM+UPR8H9Zta92/Po0/UuSWIfVF/A41vudLA7HYWJAMQQDv3NNn4nrr6bWIsHgy7Mqx78pVYKPqfk7jB5f1PTxs657D/y9lf6jOa46/9pxI9jwc+M0gj7H7z7o3JoWnNlTE0/0duBSmbo+9D2juLwc5umhZ7GLjWSUvIdyj6u/mDMF4HAaUNmJ5JsXjy+4htrbDAltTcUXRHJ+hTO4w7j79qdlP5r14m4Xm9JWwQTYww2kAUMGCX+OHhftHWB04ah1FFQROWmsIpfKPF5LYBLPbAhqkmIm97FDhD+TiFAVBfICHLIs+dJYMd4HnJgNzOlMzxCrXWUejMIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000034","name":"nepumne2r000034","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fd52098a-b106-4273-aa6f-8928750ed024","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"be6ac0a6-d099-4eca-9945-41945036c9ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAurkxT1Ix+alFrxcFx/D9bm8iwjj6dDLBvveI/Rz1D5QeJ25YcxIaUsE0LWVXc7/TCQYDHX28Valr+D6SYjM+U9IomJyOQjSz9a3UgKDqakmhm/+AL6xMphvLyTs1qOsUdg3YaHUargk5eE/DJpg18o5g9M/9Z4uhOq2q224t2IBs47sqoOdVCnFmNdMOQs9cfzAqRj2y369GtOpkUtaDdAL1/WYJ4xpO83fRzrK6RcAKZwgS6Yf0eGJOJsHhMS156PAqit19X13L0EMwdPsmZoEiJ1NQvJ/uchW20tDDAIzSu+mb7dPE7iCdW6fBMv0RS9m3y1eu+zmdSh6zJ5+DWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000G","name":"wepumwe2r00000G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9a05a588-eae4-4032-9049-20e08f91d720","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"785a3bd4-04a2-4236-9cbb-4e820638790b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtnZLTCSamzpz3gdsD23g2g0oZT4Hv5Dgi0JyvAbRAFH5o7o0mY6WfP1nLGwOECtan9Iyn0BfAbuocHo4IaFr3yEUHhpeFYDG2UdZquSMnME9UOBKXW/Z1CzTtz8/KxuYE1vRRzYoInJpl9KfOC95iWJFz1Cpebva+G1KKsrLcEwwLsR3QNzqyNeKkre6tJ3DOXnq3IJzbNc91M1LbqLyHCjqs+JSERcGlcVA/p3lSpLL9kipIyl1G7jkqH62b2VnrjrcrzTg6djNUqOqAMV08dH7getygmM2zxR2jc32QV42owVcG4xwL1p3nrebYh+lNFO6K4IuKogD1pprdw1ZdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002K","name":"wepumwe2r00002K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c060efed-147c-46b7-bb7b-63155c479404","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b5293831-9240-46f9-b80d-a81439cd0b84","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyH/cg2WLqoF+h0GkbQ09oQqoBIKo6XXVIspCvVmIcoDCmImqPFZPFTIqNsWl9Wcjzu6aK0O5k0VT/InCmUebKyrIYgx1UF6ZOEjnN1L4WEa2g8bKXbdWxYXvReh4LEwLjrIYRLY71hryEdyCOUEveCmpXj6qxisasGySXAfktSiSxVaC3I+82M4imRoo/0qsnCw9dUlKG1ueyxMTI40PqzGLr0kuib2QceGIdRq1s7g3ufP89JjHoTvXyjHLptRnF8hW8PfyfpXkZ8gXZKNcNI1OOWsByAsTslVGaevkg1riLfOvsxBZ1i47+R/9OVs8auMgho6TBDur8SvkIjaynQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000009","name":"wepumwe2r000009","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"289d327f-b9fd-4d20-8e72-d0611fe1e2c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"eade38ca-6106-4344-bccf-d4048ffd96b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6L+X8wFgMQ/ZwBS4Fye68hidAjn5Xgwv8J5iPjuc08ePy7Qdd3pvfKqZpD4h+0ztGlV2bWevEHZxTCA/fMGugr1veCU2iFtvuhkz/qc4o+45ojvVFswxt8InZtyM8yyR0IXc0lZI5+FQNN7KaKCyadUNX8nreUq3fS9481LSdkcNMKMS59qw1gr8kFDlxjTjRWRXZXhQLyvWJ9ZfCvUr2hLsknBYEQrd6zY376nCLwIBZSSNj3ouRl6fWGvq8CTqfRfUswuxXUcAWR1JL5jOvm2FrlLeWI9j8SbbIzSpZc89c3A/TtEsmLwLADHNJpdIg52CTtyTHRdrgDZGofxvewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001E","name":"wepumwe2r00001E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0f5f93e7-50c3-41ef-82c4-1c465da55551","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"wepumwe2r00001E","machineFqdn":"wepumwe2r00001E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"wepumwe2r00001E"},"vmId":"956d19a0-4247-48f6-b60f-615941029122","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwDjxELiVkS/itOY3Fgy8UoXHCFSUHzIwhwWUS+mRBz/4Wtqzn+h0ZUmzTIQyc90bPykrp+lbwQc6dYxSD0fnGSBKEQY9Il4D4/fgvJ9X3xNDHZuFnrYth6EWevmu1u1XIE0NCL+K+X31m50z92gJZfwJld5GK/yPonUpLm7ibpykDMjPeZZDwVYarBGnQRbXHwNdCRueeX5pNXlaYj1r1Rteafy9wj3rn+anBSBtvfcSubDGzAxCiIfVRiPQoBr2bwHR8wLEkQFUibIWpRfJIkKFc7D0KJR9IGbqMIcugQaeAY1lJnKb+M+vqZhRBYiypLj0uAi5Bxx68ybzgXh/owIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000020","name":"wepumwe2r000020","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9505886e-f802-41a8-af43-c25ff4d2751b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"369a560e-f83c-4e8e-adfd-f7dcac34329d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArWgwUULSOV3/MncjKCl30Br43lngE1NSp63bzgAX/yc4lh+OWHyDdapIdnzTIPoNAHu3BkMHdN/QaWJ9SjoHruiMidICK0ufye3laA4dlIl9UIoNlHz0Oo70dvSbN4kdPxaFYbsO8PTSST6/K9raAwjVihHStpxDw4hAnq0JfKnJUmrZvy7ekVS3JGR8qt8C+SdUfXCjmsS6WW4nMkYTJvpfhja557r/7Ittlw6TgkGuxnyfe2rgapsnUM3g4BCW3T+5WRHuuTg5hs4EkVeB6UlpA7MC6B7hDwz133GCl56hWPm8vhceY4URC9BsBErOPaChGmTHdQfySDXiXrewAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001K","name":"nepumne2r00001K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"426f25f6-06d2-4095-8935-3277e85d865d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3b03b373-c173-490e-b6a6-950abd0f61e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq3RvuA0LgylQELeDfBGoPvnYf2X52NTayZDjOESh8LByU+f6n/iwRbpUv2XwThro/mYpkzdaB1ToRVZvSCL9SzkGpk3tgMbsZisFDFfWkzD6rx/gu9up+IBnpwm3bImpuk3wUJJtV85ePk7B8/UQ8nOlemvcYhuJG+WkOB88qsrNwJbvtz/QPkovY8V0b1ac0cwOKooxG+IfT8roJmoaaAVIMcgdgJrLePLaj60MPRDP0jBxXWmPTUDO/qw6AJHSx9Nc9fq38mil8vGyS3dKDZYXuEOESCDcylZazomOaQ0vG0KumsMQraoI2LNsPU4UdInTIuXcs9reX3Ba4fFACwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000026","name":"nepumne2r000026","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"af736307-ad97-47f1-9599-30f9379f1e08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3dd39692-5aa0-47a5-bb32-cdf66cf1649a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1iz5NfIX1Z+30I61bjMRyiC1SGG2CmiMhAN+Oj/WSYU+AIxQX6h5NPnpXrhuGg6qQsr9RqTU/YVfekKof2/f2uTVO59o/vBc5Ske/f2WheXqQ8JbIYidgS9k4io3I4gw06wjC+11D7ZA5WhxdWkMFWJTwVP6bmKC76BupQyb2FnM/ALAFOEf7lM4LUsA6tZDJHLaAG4IKmWLBKv1wpknuhB2IZ/6IWOz27KTBlJWL/yv1IqbxCbsJTzONXp7ha3XF3Yul23U6erRvBBMtQDeBlxsDZBi8Be21v52xk46uUMVN+iq00vODn01ZNIwbDA1jQHwanqRvpkfiQwA03mmyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000031","name":"ukspumuks000031","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d6bf90f1-ab1e-402e-aa65-1386d9310f93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b66fc12f-82b9-4552-a091-fbee1e63f168","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm+YfdP/ZVe7jQ0qyqjYVo66B3zm+mtEDCquy9SnWQkdlskPwDFKdfSZh3wJR3+BpI6VjUywniJXu/C0UeFMMOVOgZRly1YaI4K/juOgUi0oXhCZxjz7Tw57UeiHBUiU3UJPhn/8YASgaeL6iRCUx4JA3NrfDe8um4fMrUpA44ujz6t0X+xya3hNeMe0Xe8lB5rVNxrsJmLDpM59CjaPlC1ncrAFYVJLbC1WW/20OfvIeYgL2t/1denm3uvyQiioWKtPM8KZqExZDNyPM/9l5tM+AHtfuIY3vkPiIrZifHL+OSfQO0Tiy/0fzHAnJDgY6L4APCLUuuozKwjsS80N3KwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000028","name":"nepumne2r000028","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c3de83df-cb19-432d-91db-abed14fa0a1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"25a0d9ea-7a7e-4565-ad5f-bf368d988943","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAni/kpvZA6ctu+19yMrjdLCwUKJ/WF/PJG5JH9teog23Ui+DkVmwMiJ5y/gvXD/w/kJnDIgNGhakpzXX/0UrShLH9bYXbk1ZIL6ECKmbxjg+YDz9Z9ySzqz21KP3OIid3t2aSBoNtxwbDvq0m3tB3eykM5epz4mLdTh+tk33hwtpqQSUzGZDd8CsJs1YPf2aMMV9KlJeGFodEH/wgY9Ox02sgL6kx6nbSV+opIfaBopa8yl6MEIqz1cT8EBgCtxEsZ+gX7m2zlGQpVRpugVrSkNO8qroKylGNzPgsMk+DjYBrg34yVXqmDdAcbduYvDWq0lLwPzJHy6SWzS2wrIzu3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000027","name":"ukspumuks000027","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"98801242-c608-49ef-85e9-aff4fdb11c45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5f95fa95-e364-4c91-8ce1-aa272e1edf05","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmaSBWqeYxvip3q50LdcOYGrRVIIZh2KkvfruhY19Yn7VQ2VNOSHwqW8qyCDwK0ZHGbOmpa9gvaS912P0ho5l4ZpNJiGaLlnb7SJDCYCDt6ZpQpvYhi1NdcLdzQXJ7THXKJjiDte13D6oWtbfxZkLtKdc3Clg1Hm7v6o6guJMeVnOOSHv3lzW+4JMOlXqztZScMQNbbc/0rLgzi/yBkPLIcEiEMXfAe4/OjcIm29gMcOaK0vRfUviUOZ04u/5SAqQfqzmWTR+07eURZ1L9bozs8iy41vk0XEKuHCZG5xNe82vhe11RQKhMTj6buFn8TzvrxH/sYuSStE82KrShRG9ewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000014","name":"wepumwe2r000014","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1091db28-8fad-4ad3-a5cc-73cb571cc1f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0ed71d1f-9839-4c7b-8098-782e063c74cb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq3vXa0x/lQu50gLF6KqYxGjI7Kw7d8FruQFrmu+GHssSrFP+ui0I/yaUdaXhcjypuVAM+cTKB6XkikKStLiod4bExj0A/Vor+sG5Av+QZ0cSwracjROmEpLb8mKbK5FINwbTI6bvn7xB2MTdR46OUYBL0L5mBEtsKpIeA8q4CCxr49ZQj1V+oLGAz//cLQndmQyz/AyyewClu3I7zAwvx2jIbtegvlWs1HCgtvXg9EZXGaTnyS46d5bbZaGOJvcP1a+UCVpVtV4k4BldH0G4g4WXLOgyHLEg+dEQIsfHUj3HB0R/QZ4DVb5dVbiQ7h0wQ7pk5Cb2sDs2a06iCoFNZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001I","name":"nepumne2r00001I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a8bd2817-425c-49c4-925b-ba7e6e7db61f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5830abd5-3d52-490b-812d-b7b7ee7769c9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5PzrydhINFzWyZTGnUznIaxArN6WpkMzgRMq1FAy8YwpPmMpY/6juIXtTOidNIMn7ufpjQaMiEppuiOFVLC+hxCusUgsfEbqXUiKVwB252IJKsdJ9ET4TjjOo3ysQ4AEsvzO6rCJUnmSvuF1wJVC/4YT1jVIgoNE22FgsF3AI4bxe6CYjHlj71aPbQmbnx14bXOh38S9GAo/V0SJLxkaUe0Hb2JhusasbhgpDOV23UljWb9dX1v2LOLMXy312oSoZ3JQZO54tZrC5b6UAkYNcQ4eRUHcEa/lvV4/D7FlYiH8+9KaFemXKWT9JAXlO1MWSuVtbZRN1Ts5oKrRzhMX8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002Y","name":"wepumwe2r00002Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f4fb43a7-61a2-472c-972a-025d90f47c5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"bddd9a18-4488-40e7-8bfd-a3cea78d62e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwmqbVIDydhsqvRb4HBrHGIzXz70S8lCo/39B0aAY26qIQkifShhC9ahXWfqv1QBqKg4aYzdbhNXnTIHWdhVBX/XRJojv3EZOE9lKaM1IcA4J0eJudwnJXKszHT9ZizR2rbNTtWshahgLneYioI27VQ3i1LE6nmnLp3BTt1eMPA11uQryc9KBlr2Nf57TcPTfo6REhxh+iLGNLEi2R3Sfx6sx6Zb+xiiHnXTXzE8wCJX0YpmDn01ZUx6f1afKg+dGymV0lda4PX2mrC9XY1pgv/MQnb0hhXkCIzEwxKnJTZ87U3FkkoegbgachKxh+yghIn9ZSwRTW5piD9EA2aouiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001Q","name":"nepumne2r00001Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a451d9c1-3ca3-4c76-a009-481254fc18dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5c0f3afe-69a7-425e-a9f1-de8b811c5848","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz7QgRW2NIg6fL6wQBE+kOq09laJsyq3Isu9J/8TWpN6gmb594SRNFlGzfjC51OkYiyI/soMEs9PCiFzFvlIldtDrYescHxgwFj7s+wNXEXOOo1t157CgssKGhcy8YamFj1MKgTA4oukSQTLPA9HLh1gaqQAwab1u/CptpQidjv/Dcobvyq622N8qOcqNHZGAO47kfXVxwOKQzXbYB++bI5LxlOjjCdkyWI82k8hPpZ36eR/MUQ+i6XkxaHS71L2IpxFhie29SuNLifFvh8CxqtVG8SKVwbKiGgZXqqzh+u00o59k5e9P9I3TNH11gCX5WwSdicLndf4XjGbTcAzSdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001S","name":"nepumne2r00001S","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"26834ea5-5130-4c43-9e7b-97246c1cbb7e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"58b5f65c-c419-4961-b4f1-934fc807226d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAl9bafUrPugzk9geMfUUxyKcsn5NP+3RS9OxI16aO6gyCsV+qRyPKSqyz5oSknfd7tOYOSTuz+nO3punHVhy96I6DcDKorNIUXp7EEwutlNluoJdLXI9UUwJ9rs59sUNemz+JjaZvw+wEQHr6zQ/tB0HnyhdSq4dzk5ip3lVA3CJ6QltK9X9CddhMvaXlqdL4W5qe+so5q4JLfAod9Uv+A6ZlayFMK3BbU1cgzd1NWaRIC83a8DbV4cc//hOucr71EWQpOslYkhOI9LH3H1xupLqKN+xCXuxx1QCTzpiruVhgCkaTZKi3zjO+heLc8CFoHHT/cxEO2FmM8zs5XpXlNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000Q","name":"wepumwe2r00000Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"94dbf210-fe91-4f7a-9bdf-a25a31287111","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"55ca6841-9081-4137-8c14-ecf108b754ca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAswPVReixmWktiK2lxeAmw+gy84o2mOF3BIrFc09UcI9DggHxY2VHTFDp/KzxF9GXw3vaRGaM8FfJ9RaUyfm49De235euREtNJva0D7/0T4znQLt1HL/5R19jm9FsjJaE5eDa6snC6rf9s1exRqG44tNm2m25ce1neI2nbZhf/vCD+g4/aMHBgqpLNwRmQpnUBjjeTaB5E4fhbr6N0OJAxnkbVlCJZMQi0y9BkMqRg9NkMSGtBzC5EhtpWyA2+0Ov7J7lZBMxRR9mWX40nWTZ9YD8vlLp4mi8dqIEplWp97d7ytlHj07TlKLSx0eEDc0wzPLJcVZ43fVDvTdzFXUp9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002S","name":"ukspumuks00002S","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dbef9e77-a29e-4361-a6d7-491ae1c6bd9e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"469ad3a0-f49b-4e29-868a-f23acb4ddb90","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuq5P0BAr5dR+m7GQw0ewytFI066U+9p7/wl4hyLYQFWU0YI2lwwigvz9qP3crx4oDQm9k/3NNIFOIqmc1skfgOSXpCRgl73vIk71YfUlUPI43mjGxSIT8HSyZsgedDvomHpa4r78LqZXFXhdQNmF1mSeDh8ToiGaxsmBLoZFyd8naZ5RF01ZMTJEAioSWMNm0gadGnhpYRJnndrebA8c2cf3XYPmb2swUPsqpjnFAvLwuF/dnrJ0ARurUsIz26SNZYiG8/xbQmHszHqWB7Xg5scW/qW4K7QUmFgvuv4m4hNMNbMLrOHcpT3BqeAgPQ/ii79vGavAhDXiVIoqTSmW7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000V","name":"wepumwe2r00000V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"48b029d7-1706-42f3-b253-8251b5ffa4e3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"411d0f18-17b5-4d32-82dd-b4749d969a46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqfzcLn3Orb6v7zoflEos8iQzWP+2rpqRU+VXsOpa+mfjfcwtJ11LpULfImXKgXtMPimG3AV6wlivYaQXB84q3VUiIH4xPeSUfDUMC8/q7WQDIzf9+hPCh06dZ3/Fpw3fKPilI6pPL8ILeT4ChPzER6AF1lQmB0DcK2C1mx+bF0cre77xldhUH9L8gghZ8VtMUDxbZlM5BHkfO8MTVuHAYLWrrFkLOEVBNO8gyG6zZPsgi+NmZUYRvooDIcOESPWR0amgsIwLm/jf8uhJkpBv1VV7H1qyXEN0YCrgF+wgRJjTT75K8SjxqVbMpXblvqdmoweJxrzRpFAIyqQ9qnddSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00003B","name":"ukspumuks00003B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"98be64e3-fc18-4fb1-8cff-5538455d1772","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"225baecb-f67c-4e50-ae7f-13bda04f4d55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6bJQYKqivvZV45IeLeRANcNLXKFXwIF+Hpd0EjWlWKBugpyYggzv9+jG6po8yVavTB2zjR/TobzEKy3OxOPi3rbEoRfOsfBl6o8e/qorHM2bcFziMPo9vrsUsPqo8IMRaATcMCb9jqAI3Jk3o7VqtI6bLboIPIRVNu9KWhpH/tWi5rZwl/uVAUE96HlNgiFAv17nS8BG5qyX6/LQl0rgM2B5PY8jPf3+41LgGJQsX8xYzJNeVoYyJZK6VB2xjEMrNHdd8/Yd+uC93+ZXfv1GQ8bAC972dU5w7wX9zUFIXjia85uWTAR7saJDecilQmx0Vd4f6GrQ3F5WtSAk+lx+wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001E","name":"ukspumuks00001E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5d2fe592-15da-4ee2-b7d6-d83685ed4b86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"357d4f1c-f68a-4a6f-8534-d23207ddb7d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvgrVhZTkR98TMvfT1ihWK8bZhB60gEbm+x2YKN8rOdW3zTItRQ/YGKsgVFwlE5Ax57N/WaHoDVWHuqiCJKF4w6tHHTE12od1DkGL8RmSMq8o1f7GXCBZvXDKZqIbsC+hIJ7zitQnftFemEuno6VsTKIdLVOyvgW01DFfkcQmQ+WqSNMlqcu5sYRSnmPSIYCeyuHNAIaQgGvOXsDK/cA2OB+klIm4QjnG+1krjAb+hFpSZLpfcjF0psJq8qrWqKzUrzDi1L+D3H6kCqy3NzMZ6yw2sTFWFqo2m6qm6MQ7ekDY9Bc1AhvE1Mmmju8MpjzuZQrwenVFIpIQNmISZEDKLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000022","name":"wepumwe2r000022","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"12c75ac6-71f5-45ec-bdaa-b3b30f8cd8f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"eea56074-97d5-4e50-b946-845a53d74a8e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6M0u4/IQOdFbCoOY4NgHlAE+6umUcLqmZ0zrCA0DVrWIcugCeCX2LNT5H/PugMmHS1DK001A9+qtBGTV5ZFUTQ21s5ODOoEDVqY8tGoDGWuvddiVoCfWsUTLS0GCKjEsob+J9dMnLJQBwWfGjodyPa+X2OLSRaPLEp4lLgIY2kZKJopjGmdQC3QEEFwO3zYYA+Pm8W8PcAu3ccgZued0bkE0NpAlS7NUKPGxU+JLuYKYYkzUrVYkecZKAleHB6yCon+H267M1qNXKGu5ql8IyJJaAVI9TpssKGv5YhfIVV68DsP542RYEZrermGkTw3Ih4pLSMKt00cnYP3EMNFcUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000037","name":"pumnamuns000037","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e46e863c-b954-43f9-a036-2b4d1e5f35b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000037","machineFqdn":"pumnamuns000037","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000037"},"vmId":"a29c79ce-f9a3-4c94-9e09-e9d3cf54fb56","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv/pTOPz7qAydEkxK9DUMyMGTNzOzE3v1XYnrzGfo/rIrxb+6eoJd6HEn8ITXgVFkcdXHi0mt5lVwZV9K3N0cAB2aSY4QKUMebOx7SgYMD1JMvP/aNahAAM7PXvHnyGQuv5eQftlqaY+lPkNp+oYgrVVPqIJfMCmr2E8h88JQp2lwTy8LtQIgmm3y8itqsTjy9LTyoDvx5UKJATbn9dYvaDQ6Hb6BzmKlLdCBhRdVJ9+7dTBGVDx4LaHxZx4OeqktPdITOiCmC9I3FhuSmMxlLd5qM0I2Zk77Apqv4rjt+cMItUpvl6SYrX8re6ye71nMaw8nDy0JZuxad0oTel9OXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002F","name":"pumnamuns00002F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7118a7da-9702-4938-af7c-d47d0c245d74","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002F","machineFqdn":"pumnamuns00002F","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002F"},"vmId":"30db2f5e-2edb-49ec-9f22-8ca79520df08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzWWLg0sAgj1ewxSB35CjmLd5H0ZP0U0J0Fncqk3akF+D+0+coqQ8NhNXXC1WVljTsGUxw35cMNPrxiDP9E45UPBoqWtrOhZ0j9YRkzwdvhQmIP2b09SHb5L0Sn79v8SnYCGBpW1bdbQ5B2piBzXesnOLya+/XW77a/o+8PXc+dDu5/c5/688txjCWm0PiQnZsfgvuOh8e5nOYAz9Os8LnAQ1S47bKbnl79Ana1qYikW/+REwiU8rBgvUozCuPulvM1uogS6q2nDxyaEY+cuZDKKyEWzxSW+s9oAvFeS+iJjZa7YSx+TOJ0oQkys05iEbcsorXctF9ckvF5PlQmiOtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003I","name":"pumnamuns00003I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"aac7a0d6-b420-40c5-b244-53a7ab06948c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003I","machineFqdn":"pumnamuns00003I","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003I"},"vmId":"f1c44e32-3f1d-4f4a-a835-1828fa0d17ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzJzNv7YBsetEpZTsxuysoO8hMzaq/K9tuS8rpFH3JcCVSzFyhTBpb9slSYLU7DD2pZAbb362AT7Or1zX6z0LrB1Oydw84qr0JDrYC3ihL9svggwwcDmjWBw7EzlNxGA0qwDxQp/5ie7bJB5Q+gQDKuBhNZARj75lHU36LZzoxzu7QED1QBj1VClxnzjbZmSh/sBROJThY+XqX1lbRmClvKy2v5UeTyex1LhBI5uruv1J3BNhMKDlOpp71U+Kzh/mp/s9jPEZjy2AsOb7US0xSmwBZmOvdSsHD6O7Nqw0s+WJjEobpIytgHEKcnM4cI3Oe+sA0iSdxaQ+7tNkK+EXrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002Y","name":"pumnamuns00002Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1f19d3a1-a01d-42e1-b0e5-c8b30040bb35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002Y","machineFqdn":"pumnamuns00002Y","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002Y"},"vmId":"d5bc453e-f87d-4075-a7b4-4bc7f1141535","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv92CxZ8KZ66V8sMRRPt7ZdZ0PfDrRguqpe2a5cbbqoYXMfDDveTScLqQ3N3I+vZP+1UKf3tI5U+x6QWH+tMBGLTSqnhcJTQAux/qNYjuXxReif9xfqJzYU3KNLmOXU36agnj17u3luzKIb+Fnu3vmXyAvl4toqRgO0BzGwuYAHUmsmTbhsUWObb9cZadPFdwyYqjdBUlcZ9sbBhho6RSuvvnDvAOFHi9VFt4y2sEl3CHsIxbx/MdsrxQALIEeKC3gCNXnL4AkeAsstbMB8zQhME5KAWC1mCmo0Oc4LRLt472a5Sy8IkK357LLSEHOjciEUucof2Qe3gPKjnB4nUeowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003C","name":"pumnamuns00003C","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9822d39b-f6c1-48d3-91da-a0a735009e2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003C","machineFqdn":"pumnamuns00003C","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003C"},"vmId":"20af2939-ebd6-4c6d-bde5-514c722b4b71","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvpcPgScNrkQPvbXWQIAapSfxCMBIdvy90uLaLW8lv0/lTNIiCXAy3iob1myKmuO9+3eRLHbWsprRyC1TuBtJNMF1DvJkapYuRE2y4Bvg5psM/n9JvSuK4TbENUZQNF6CuJds/Uvg5yDoqPqmvYsgs3k1TgTGhXVOPQipIBAQzT5iqL28hOXf6kOitksqgfvr6S/TIw5E01m/8XpDMy6uYz923nHn7oJe6PhwqnpK67/h3wrfmYsGbX7vFXYQ1HDWa1/g44uRyAkYyV/n7G1NV9wN9QZTVYUBJnt/Bl/ZtHEsisNo0HVoyb9cOcXjkksm6VUk8kuYXBhT+PZB5y3zvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000028","name":"pumnamuns000028","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ab57489a-c248-4d7e-8eca-35f4a07df264","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000028","machineFqdn":"pumnamuns000028","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000028"},"vmId":"ec493ef2-9299-42bd-87dc-44b27a4cf480","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvsprzPpUZYwGBolIetqiR5Xzczd/QxScOZdDAk7Fw4UrufOhxQOXx61nvdO0UVhTvscXfszpInXeDXNbb5JJ6DhQtIhl/y2byFHyQGJO2gkFnsuJ/xXQOQAB1/zwijomWEDl4/E/VIJrdd1wl+y6O0AGn9M5JM37SzQ2iDyS9Ab6JtnXOYHAP56Y+8I4WZKcnYQ2USH1dcY3bFpXKviA8UKOqAnQ4v09pNd7ej7G2+RjJJrooHszOLUoNGNWYGx6MPDkk3sCg/YadFoy6joPYxRRax53wfYCBVyc+J/r/boAwQx3RQhQkEpi1g+BZuIzDpELX2Bs8hOpmOkfhOwWIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000I","name":"pumnamuns00000I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7c786807-8211-4390-8f92-6a7f04fac1bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00000I","machineFqdn":"pumnamuns00000I","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000I"},"vmId":"1a0e56dc-e555-4cb1-8bbf-2eb87871a512","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwdQ+V95u4biVxY6kwvL4+bPREPLglfnlc0aooqMkdIMDLNem2nG8LVc+GzJG4MmM1R0Wl8yQ8pqdtZYbLBwa/XNee//MRcucWuuxUV2O0GgcSnZ4aBtRA+U0wCyORYnAUwxSubcr1yekj+flfiAj/MbKzjNdJ8fQJPcQzuV8BHxJm2z4307Lmn7c4aLIEJUYoAx9w7uib/PMN/vo1YggNPzAXLVxZqr5eNRjWstdvPE2uFpaGmKqaa9r8uFOlx5yNVKHe8+HHcjHy8iZTfAlmqwOM03E/ckjnDl5zYBbZiUKjcbg5UWikzjbnicfG8iN7LcwyGTLtmIPPm1Sg0i3YQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000031","name":"pumnamuns000031","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b2273ed2-b437-4653-be18-4d2d126a94b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000031","machineFqdn":"pumnamuns000031","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000031"},"vmId":"751cc535-ea1f-4187-b170-4423a2e43c16","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2feyhWRu37Z4MKmRxVjFmUuXrPUtgAKbfnpHssIHSTwrwdHXdqfxV6Fy2NXykn7XvwaLLIU+fuqWOreKr/mCw/bCfuyutV3ZwO1/C3OqsQgFtLRzdC+oG258KGF44FEofPxYZVvd9SvJWaPRxU7DsSiabCOIT+lwYM4aDCeBXJT+6zxQZEla79cqAfDXncVJsTqrOo6ML1iS//kSKxBiAxa3RjsWYP1I5+wiW3PELG44tEd71oR2BSL5sFC2qgFZY34qrPxY6c2M7gD520OhJdUc7xFRCOo6sn/li3Z6eWWNksqKJ5/+9gVy615hvofjZt/u0Uiawj3lRazBLB5TGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000030","name":"pumnamuns000030","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0896f059-124a-41dd-bf46-f7d4c5b0a6b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000030","machineFqdn":"pumnamuns000030","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000030"},"vmId":"c63c23e0-c06e-4a9c-98c3-bc1ba5287839","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9JxQucS02pEGmiT7iUpxHGSvASkNoUAZBU4XsqDoYDMOqGZa4kALIrABSH1LH0ipaSt+4yRZzLZ36Iw+ZE3f7AY8ravhzwlAkT/b16gtGADztgaJS4Clfw4UrppWZsZuMXJAGMoZhLEjLWCQSAuhnqTgrKzV/SiH3d2jXo9EiSgm/LOpS3ZbDlBGBLQnZ78exqloWSyn8u5kpez53HjtEcaPKzN2MCNvWlV4RJJDuL+EFR7LPtkVGpg4eeaUl9iv8zU8P4Y/n8nJDuCQRb+EpO65fk+Fru1HPSR4ay1LKkFxt660Ca6vk3vI+pcOOzv0MAxDKyqaM2YP5j6GXuAkAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000012","name":"pumnamuns000012","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3028269f-342b-458e-bc6b-067e892498ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000012","machineFqdn":"pumnamuns000012","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000012"},"vmId":"86f33667-0815-45c1-9d46-f50437776834","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp7GhJ6sx7hmFmK8nxhQCKZ/kfWENJQgksI5iJFI4spCiR4BtuaUSAF0TAeE7G+g0x9X6pzUMC+3OBvPHpGmurWknPfvqVgtF+1yIJ28OWfNiojC6mp0CHIsGcA+diaQH1xqaDGA30eQAO/iNuq2sP24fJzzuVrYr1TlZRQar0WAJSmRt5oUZrRi6qXuHrJPZn5W9TIKk3LF6xKzfk3jk6pO4wEoKcLE5+KK0AA99OdjUXcL0P/Jg9RW3xGD8Vl/HE8HoKRO2VV2gPIhsHy8LLPRO+EEzwxFf16VgHQzsiqqGUJ/WwZBeKNGe+Cdect9UJU+h8lIlAGE5IftQ4xr1dQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000Z","name":"pumnamuns00000Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"eb8f43f7-907a-4674-897a-af6f5051fd24","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000Z","machineFqdn":"pumnamuns00000Z","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000Z"},"vmId":"ad162e33-9385-47fa-ad72-2ed22098766a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA89QrWUH/Ur9ZzjcGDZbams5aqgvqkizP3d2TUeT3qplG7len/E/qHJ/LsgwLHzFpa18d+q+HqQB4RSjO+QEqPAsCVSqWluEI0ddtlyEimGq6RrcUQipbAXxWA4Co537sfDJAE6Y7Moh8rb+Fff4HU6FdUHUDyXbpKOMmAreDNevd4mu2H/ZTS1UZiaatGC6DODRPR6Df3zjlGwWeFsDAm8kbZWX4cHUgmKSr2j7IP/3bK03aoKO7ZoDtcA1kxRsz7cP4M8zrRkLyzIiY2DnNOgDUwmXJZ52AVrw5UeIrLcOFQ5G/74K+OtROZehi5KtkFoU5CJIdtXVcuIX6RwZapQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002H","name":"pumnunsig00002H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"47444925-c0eb-4728-9c0a-0486def3cd86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fdc3fbdb-e3b5-4379-b360-3083de625ff0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsvRHInehuTEUF0HZ+wtiWrVZOwzUOaM+w6vqxOGsQoniaJuP6DrcvWMbrP4jy1Xov9owh5AgnyBfsRTzZAr9QVpz8FS6JixwXcVYUCDon4ecK1VT8tUzMOq2eu5ei9PeU21lXyExfUugCLcRQOH1ZXXMDUT5xtWXC4cBuzhJbG03qUGWg62ehFoDTaMWDezXB+pfOauCUwTcdIUYUV5q9mHFPkqzJygJtosuWdH3YEr0w0BdZlTiATTG6ACotM3O7TeIBxAfHwu60PkrIuNeD6lkEfLw8+DFGuR1fWIeYMQGdz4LEuNc1e9ru0aMgrvT+tN+am9ScUiQDtqr6XjQJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000N","name":"pumnamuns00000N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"af8449d3-5a94-4824-b4e4-696fa61f7e19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000N","machineFqdn":"pumnamuns00000N","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000N"},"vmId":"8a6c8e92-80c9-43f9-aa05-5447eaa18b0c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr/Wye1ISiWRcrMZrQN64s54KIdIZKZNx5lO2Em8hCX+NPKmCsTORDSljdB5M/gog3b6XNrVjzFxIFiDXBeXyrpG2/drYzuUn2BEwFfautOMVe/ONuY0oDY6UV6uNuL5w0f0mNze7+dO34s8aVM48/oe+9nfom+YbYc/mL8PjfAUXvH+o6xDDRhfjeOuDbMSO1fPQD2V6aWzpJFyC5wKaWB1ee8Kym3Xc/tXDIk5DnfqxHkgASW8r6BJRzKQ22M3ttC5pvVDWMyzAaBHcISGnNpRUbgTLB4Y8SyHadt+HQP5DDDRBeVGa/KG2T9AqKcwLLwCbWIBQUeFXxvtpgESXaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00001U","name":"pumnunsig00001U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a6fffa24-eace-44c5-ab44-4ed902a3e6e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8472e72c-2278-4819-b47a-49798a1234d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2eZdcUzmrL4yqdiRDe4P8EEXzZV/RuA9kWM/bCDWGZ00B9ivAAUB0D34nFswmNeNDb9g80Qepjo71MoqmjfnwQGY0lxX7upSuZ6Q/LnEeXhqVBxfIfELK/YS6AxaLv62rNZjx/4i488G4laj0qlavUsv8Mp9fUCu9epdKxcAayq7gJbhYv5Bz9sh8eLsrcE1t3NYeu+zDJRknINXHILmNAmU+HnwlPl6YvL+TX39qJ1wgMmG9bZF8PrqaoXiC3LRW4X5UIV0jbXQfBmDvHe1FCpKhmzgPnCWvXf80qHrKFeX0kOGb43cxdG1NgJnN1zk90FV8deloRBL0xBLkIyM/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002J","name":"pumnamuns00002J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6f2a95ff-d0ae-4578-a5d4-fb6bf74d3c7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002J","machineFqdn":"pumnamuns00002J","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002J"},"vmId":"7495ac85-289b-44e8-bc64-447ead66ed38","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0+Twhm1ib7qvgcmmnNvfZ6nLBS+HI92i7uVTEWUE4kcGBmD8w1b12KjoQamY+2G/ABRejIO6N3jvzierHdjHiwREKW6aPMM7uIwYA1fmBC4McWW0BcUhpGSyum/SfixAV3a5F6mN6OJ1ZsKXmwuMD7FWNzii0zE0ZtemU6uWCMc/PCVVw0p7uN6v7oa045e3Lw/zQnGTId7Y4a9uHMJiElUc3+vjv1IWNWmS4xdxsPcHfGG1LaIKbq5WDehbv6FzOM3Z3QhAK7T0FoyHKHIlXe7nX3FnQsG4ZWzLvPgzPcjQW5miLM7vBIASpZJTg+Awwui24OWS9XPQROHqFpJGQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001X","name":"nepumne2r00001X","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fd0e72cf-14a7-4739-b1c9-20f915c05bb2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6c2f3c27-e0f7-426b-b395-7675966da5b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs7FGvBgmM7BwzSb2QLi8TrtPEIcE1r04ynVbaB1/aX/BFj2j+mW1wCzWJWa63m9Di9k/IExJ4SZBaQIadqX6Hw8KEk2Xle0Mk1u7lEjKshQGTQ77e5DzQ28ZCoUrCrs8a+cQFgJiipi0FvkwbvCEC+ybD0oe+IESs8ybZ4ofNpliwgskZ7saAv/cP5ANnB+UqVItTaIaMY4Mb0+Ml/BlQFqnjzAKzwY2JmAulyfvxtBZNZbJkpHBDvfH7WjLEnQiPkGlQ3Rgn8oQQl/7QxOTH9XK1YHK1AW/wz949P6eSdB8gfJjoObGz1wL4k3Qj/MnVsuRTNyFcR9C/l9IwveE9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000K","name":"pumnamuns00000K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9fb38eb2-a167-4d40-993e-85ab68c20f7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000K","machineFqdn":"pumnamuns00000K","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000K"},"vmId":"54878cfa-4e64-4356-a3e1-c60adbd9d658","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1dMJHxUb76ZhQkgetkzbLWTJySokRzsZyF16mhe5afvVuB0mLGp5tbvJRnLaIwFclxiIpfK406et/4Ol4oIKhrg/lYO/4YkP48V2SNEG9fQOy2M4fwLvvThRoKVlVxjghYcBLK4/IIvTIe99kSVkKzTzUdQ01Wf5pTD+3Bn3c43XEHDtcuPQQVv2Mt9s4772vA/WTAwCAYchfSh62c9wL3mpRT8y/aaD+ZpVY2r0QhsLVCDQc5oONlEOHUtlppWAgAgc1PmDD5gCgxklDx4tj72jHGn+Glr4gQZ98d9VrMqkHGHpf3HEmjdUJhfmttTSlrSUCWD0mxpbp2jfWFXeWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002H","name":"nepumne2r00002H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6bfa1863-3c26-4672-bca0-f6dfec7c28b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"66aadf05-733b-4afa-a9ec-cbe9db37c402","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv8TFeTY0yTT5Ce0IiCgkr0bsY5WdJvPVdcd3oqQSQghSX2/sK93jEUyKI/bbXRMFxyKXSsa8IRH6zpSyaE+7g+kfM06OPTl/IE/qnyN2WwLqhpLoKnQhzycQbNDGuCCb5M/+iwZAofSkx41m8dCa2g/UedwJSkELCT2FkWlKbDhQxvz+7UrJ3sQTo9Ft/yi65knagUTetNVB3i8Z40W6vDJUBS78iK0VjsRz3KSvdMtLntwo+BFOvAiDc1hqT66XnN8vVtFqUXBdgHad8BKDExV1CnjK92w0G2qVh7KKlCGL/PHFdl8jErJBCnSZMICsdPuMoNHPJANwx7RSXhApdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002O","name":"wepumwe2r00002O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5494076d-5b77-4f5d-94df-8433732482c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"76e79e5c-9008-4af5-85a1-c2c0baa26928","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvBmyt5sS5s9goZHmb7aiZxyuIK5xhhjjLJc1U8xxaKOFsbz1uUSLZ6LfteLazcMFK3lozAjPn93BMbau+mqffRCLFNVcbvBsdgIhq9W3FEQQAgjWYgIhbz/QQOofabI069tPLKm1WFNIKcZGKz/cHXQSaGLOkHtSHNy3MbaPBGd0szaNMS0R4aqxZzfPcvY4OKo2m4HU8zZfKlOwsUyTCExeEiOnt4oUFiAuT+abg+xbBJdcOQpKt56k3Pwb6lO/GG47Ub1GtLjyvBJuw0TLKX1iLIqvA7keiwef2rleEWAVE2VsMFuCUH/dupIngqqYIaqGg2NXzJC9JpYl0qlPlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00000Q","name":"pumnunsig00000Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3beaffa0-1585-44b0-b7d7-7c92e54e6245","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"50a01845-769d-4c7e-bef9-f370c86f38dd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3p01PyhXbl6gR6OnIOtDvJrvO6sKSMGSfZBiJl1PXvSf3hS13HLJ+n89/ON74pntRMfQLqgDNLJxm/ZLXLpY5F9cRWCJzJ6nKCN7/h2X/vfn6IOdlmOtdU8T99tmt+2okJ0jCEuFfNIs3H+KFZJlZiIPPrE915EORts6P7dzsWnCcBb3gelfi2vhnoXtj1ErtjgRP725DY6Z3tTg+5W6HHtqnJXfYPjyO2rcLUflZnrQcxrLTJx5xY8DZyjGqjQelxGIwJYAP664Rymz0Afe2JqZ6dza3rYqXiX+9f0nxrOQdMrVbjycOa9gUQEAipOjSZGZsbcR0UoKI2uCzxThlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001E","name":"pumnamuns00001E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"26c4a6a0-d350-4e76-918a-3f5c3ecb74a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001E","machineFqdn":"pumnamuns00001E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001E"},"vmId":"f1142ba4-f68f-492e-b0e8-0f67da8070d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxHvvXQGwvm4EHNOojstf4bail4C51FeDbX0zfNM6WMd24IYmnplI51uF6rP6cPCDsWUR9ovxucZvpLygzYDeCBWLEj5d5CWOCGmYHF5sYZM7wvrsILUr2W3ebBY53DVbQdYeNvn8Kqa+ANSwI8ydfp4IFRRiL0socLz7EmkNQmOnkvfg8ma9OTcOFM9NBZ3aghVBiDQEI1Y3jLH4a3QKyd3KHHNp0CMk0MhLazZzVGFG8ez1O8IWowBixPVapRa3zK1C4eIoJ/Xzi4+xyqO6SXCpCuzjKT3EzqtdglCNoj5kTId1aCgKPYE1i2SszMtqFlKUlQIzJI7OCUNuwGGFNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000F","name":"wepumwe2r00000F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"35cf9f82-3ade-42fe-a936-a5aa6059202e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c4812de5-b681-4faa-a1e4-b25ad7b8a8e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2q1O0k1DbaCei8UjVdcyJxOBJbRZYX6aXi4PUfi7oS+S532y7sW6h4kvV61mTupLx80t4TuBBBkfcQ5rbyNobQCinMXeX7xfvaXybOxAO1S7xvRtOwTzKSGiLle4XyOf8Az2BAvn51eL/KxBazaF9UCjGNggXWQgAfEDMLp6rX2TP1Q/Spdad7RbT1Aw6lui/tsDcl9H4/shR7ZeQACvscFo2Xt+nr9zYTPlF595RnZpRSIiPg3SwwPl8FvOeQJczTNYqMUrdJn88vaVC3Nrgv1YCk+VoAWWn/XWX6v/Ye+pYneOmjb+7nuLZmi+2266gzbwZPaMLc5MFr0TPbrIiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002I","name":"ukspumuks00002I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2fc12cd4-036c-4109-9083-f79a401567a6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3ee147d0-6871-4de0-9e49-4026e9cb419e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy1xt5SBGkTuJPhTU1FLcouYx/ElgPXr+EUc+Z/0td9luo+GudTBop5cTz5iRRrhajYopvnvuAX4brkHxP0IXou44wLuNmLmX3fVR33RrIcua51XsOM9uILt215Dw5bybqu4UcBz5y/BSUrbK9AVbgQDD8bLL2zRu8VMjwDyRN5/r0TrtZNRTU9FsbRJUi4zvjhLi+XaUunzq+wH4FyZhB6k+MNeJoPtVk/zzAmlsMJtGXxMp9NcyEkNsV7v1u/FqVror6qWGgZp0yqV7NFuHfEHyw25aKpiZ/WP+zASvYtlnnQHzTEyJgFEvtIsSA4PrZvjzcOhER3xdFg7bDGRImwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002D","name":"wepumwe2r00002D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6a291634-e7cf-4f31-8e04-49dd24cbb336","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4b5bb25f-364f-428e-b5ef-1bc73b488f78","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAscqooS2iYguQssUPDs8+h40L7/z8L72Ll4MILVBm85itQsU6WaM+/X/3++tFxiAZ0RMPcew5BNQAhiK5BvqTEX5gsdtHTbyCku2EtXrG955q0Y83Sy1yO+90b2+tZj9aswOHlQaNd9MSHw4MhkeiJjTZfELD2AsaRZBIJcVwdjwoI9QmA6NCJp0jchRYF0y55rJFok/u+8wShxyI43ciMEbCWVbN3io26SD3RJyTUU0e33ZoXnrl/K1qCwneel+2Cgq37QFZPpbfDIT0rJUNuMVpl5cQDtOzKW8WIv56q85HvMtRMxlrk/sGCj0+pcw2YoK6RoxCid8O98/nhYQBkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001Z","name":"nepumne2r00001Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"78d7b208-2661-4fe7-93c5-df29808e9027","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"dd7c6b33-2bf5-4a34-a608-e101b88b8517","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsKeMdsa7lTADhIrR/IiqFsy2UnyaMiFoM6I4A0+qvqm9U5xs22vHr/SkecgPr+7bdzf+Fpb41PcBCGC20Sf1pf8cBRguqifdQaqSPhAEh4ndZhC8cJ+XwlNFdM7X9tinmW+aXusDTneqxf1ewd6D6w7lMoSoEu0X/dPBEOzAUyXl/CLuDl7P+EyMVccdOdO/VI6FTAxbseG0YLt8d8krF8oQBneJuhAt1tmBkvQq0g4Yg3i20ulpRt4akPea0cP54FQ04LEsUqqwFkEIkxrVweWcbLQ2qeU0IFMrm7G+muQStuz9D0Os6ntGf2PaLWT1y9isefOGRFZkuN8cg0Yo3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002J","name":"ukspumuks00002J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1515b76a-728f-4a0b-89c7-2308a17a1391","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0f2c89e9-4a2f-4d21-86fc-26fe29a839bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3lFDdFaw//rsA++GK+NjsfIkWUKSEi/6LGxUsGemvUfYjO/Fk0tadh4TBDOCKQdXjgUG/3Vmm8vq5k+v4jCHvq40ZrXfjtDvZ2sCGV1wtGUe+0ARfhUvKF8s3rs2TlqWyvvve1KvWVBgmUJHtC9IF2m60OTvpxkuGltu2tK4jRrUnWuEaEbbVkmle2xPUKlHTcAwXkTZgypKEGJXP1pfKkX/7+uvzLfnXHCUY3TnR/lvcXqvmROc46YBjDgqIlnlIdrW/gE22PkZM+B8bjZxmp8D81L35JRt5P3nav+VOdHkvpr79VmPAOuzNMjxpmVeLwt91y0K5GM/yBTqjdh1MQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002V","name":"ukspumuks00002V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4299bc97-21de-4dc2-b425-42d791f2017c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"75e40a91-8a41-4148-91bd-0d019e42a809","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxSUfdtiCroOiLbJ05MYGFEWkxz2VwwgjWvVc2Dd3Pcai0n7I8Ml1Vf0Z4ZnBxKQE8pKRNSTxlNp2t0aldQ2I0GDEQhly//micZyuiSbmzGtnpY/a0Z4XQ2xoiVjOVirGayXENgPJA8N+nnNS1bZBZt45Gs+olMyAW4YWzSqTDu1lD6dn+E8QwkCVZCuNdG0rWCm2du/9OEsbLQgQUqtIbEUrFqn/gSJZtM2Z+fo/M7S45fHcNxKqbnm1S6CfxqEyUMWS5vVPbjy1FDkkyxxEyjppKCvhmiIEli8KplLA9W9c24BMqDpSYMjz3rjkFBAQOxgIMmRDyYnrildNTvhuOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002A","name":"wepumwe2r00002A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a2db988d-9b37-457b-8fc7-17a777ca59ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"506f661e-b5c9-4af6-9056-e31995da09c8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv4x1SiF5g3D+M7a9pNmpAGxJhFVJr9rwivX5bmsfi2DzcFHNLxdKbKFHPE17e3p+ox/BS/OlePVJotI/qMFZA2fyd1TK4Tg4avObVlvkGnmb1ncH+80cxTbPfrg4zD44HfPBG3HeT18w4Cizx+MgLixPBAD1m1Jom+N3VYTvGLUo5ppYYr87bIZicHM5f+sf+Xt7btMre+Pav8bYp92kOKZCoMmzyibnxLRAZttcqA4U0ICUl6rzed3rC5YIJz7+6D6TgA4Yemz6+lkFYKuMEXTaS1urJudzKajKIB6GYnBhDAGUoMr+23xLqCYro3i9eLXW4jP1hYKykfQiunvvyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000032","name":"pumnamuns000032","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ac01d5a2-c354-4d07-a20e-f0c6e11a75f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000032","machineFqdn":"pumnamuns000032","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000032"},"vmId":"f83534b3-c20d-47fc-90de-ee8887e5079a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA99Rz7LsrWI71N3bRLap1QEjaC0jZsmmx3rX6a67sIlEhGXnQBuoaePmV5GH/NEqqykrx9DXW3rmvE0bx4OD1LuxGUsQuHSnh4Jeh/UfmMrjtJAEUNnCVCjVzWla0YTUb3qnjIje55t7adyTd5v8Ifw/aAEFAvlf7CnY0O0jp3qJ4bCsjpfwBixxU2Ubn/d5jqzSfRKH2A9dQIPWugLN+mOA/mCGD5onu7p2BBrNHTnaR81Da2w7p1mVNx8J/wGLdfmJ3z2zePP6/jD15GxiX4s8Mu19MWxGlCZCRS0hyRlumO7VDQrTLNiY4HhP1rlo8JBWrD3ivITcBwlPnEhzpzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig000026","name":"pumnunsig000026","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f2f35273-f676-49ba-b4dd-82712253eb45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"2b8959e6-1faa-4986-9af7-92ad0bf1d45c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp2HP4QuExk+5e0mXueLW3li5aI0+MAuq4B5e2kVpEciYxpk/5jUZ5P7oABo4jUmgAaIG62TRP4YhImKleR/f71jI+/+oGr+2dlBE2xcNpTZuNvkb5UeXM0XyGAUS8zWALAidbfryr3t/UWt76rqB62zEY+t7N99TNAeRmUYkDaG27lmIhP7Bw/JH0r/M4Bh8exOIaDprxLDazJdYL5Iiz9Yslm7PI6FLC7hB3ngJsCiepnQD3Jk6RXH5yFJvA6FoLc7PJtNE84q4PPRqQyQHHmRSCeddCSvxSfUOd5rOcDSUSMbVEzfNfBwfUSGmpU2VuzihB6IoTsNF7WlL4mz4DwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002R","name":"nepumne2r00002R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5cc7c2db-9a08-4f27-829b-6a6876a0b5c3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5bdbc383-74ef-472e-bb28-6ed419483915","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtX+rVoXRUyWoNLRsrQW0DiLeo3WeOxg5mhMqyl/Cbu0FyjSjHj7GlUC1C43ouYI0zgufdMFUJHtbubwfVPhycoa93iARYi1yDe/+vouhn/5lNjchjLLVnP/ej/75p2oYB09mPhguY+KwFhM5cP8jE3VYwKASj2j2GmkMjGpc6VJxDCQWKIdp1jHKgRuIko9taHdcH9/AobRA2o1aCW8o6J63MMt3BHBe29C2JBsssGotnqxkzMj3hC0etVDQtL1WEB4iFp3lp77gAXSdk9Xotso1dBXX+m6Fv9cnSllQM6t7kPWWGlBlUv/z8V76rSbj0jg/p7AhX6/VLjZc8mw70QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000G","name":"ukspumuks00000G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"214cf4fd-bbc9-45f4-b975-b38d9599b138","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"ukspumuks00000G","machineFqdn":"ukspumuks00000G","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"ukspumuks00000G"},"vmId":"9d7da3ae-1801-4d33-b372-4f629646c8b2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4uutgBemjtUHafUFW3dBLEnVA8S1y4QoZBzrnZnWUilM23/6JjyqUqQbXEffg7EmMFAcnppvsM2kAq42tjm13bYi0tCjcvMiZwjAz65eqw+zQSiT1ZlECHWCB6o3Srf8QsdEuh07sNqsc+IClUhu9n9hvVwAapsQ7FycTeP9H//THamAbmv0n4G+ylWEW5x4ga65DE2v0SNl8mCark1/kyGcndv8p2Tv2LYiU7I8TqSkR6H925AOnpDYDSpt/PEzrON286Zjcef7/mBjIbkNPD9/0y0yMZfWcmOQjNrQCvZxRaOIIxTB05YumCjvClyka0efyH3l42+OJBCuMxt+vwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000T","name":"wepumwe2r00000T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b70e637f-d73f-4c04-b3e0-636b4b365b34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"42741a99-0657-49bb-b4ee-82dbc0363803","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvjSwUjpXJ8FW8rmREBlv+ZvRG6fpGvmd5dvydqCioW7+6p/8iMFjSUbC3Jm+xIQdASNOB/dNz4tOGU1YgfNGIKpQiTlK3FM5RZm/51l1DBQsqaSiofz0wPCpDYTDHMUOPfxUVSfyFVrnIo7omyhHlkULsZMy77wLW+o08tDrlki4nGvsYt5q9VRVEaDyoH4bju8/VzAXPjpOodydiVrTvdgmd+seQVA8eE4ZhqL7N//+zAqi//NQZesFVgrY2fhT8423BA3kB0oq0EdlzW9jjPliN3V/lsFnoQVWBus388mozf54bwVD/EvdUnaw1nX93yyS6SRAqo/gxcEwq76HswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002P","name":"ukspumuks00002P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0ecc4ebd-c522-4393-9c3d-a4af773dc331","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"ukspumuks00002P","machineFqdn":"ukspumuks00002P","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"ukspumuks00002P"},"vmId":"7f25c202-b9b7-4020-876f-700377f64385","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqPkMqUaKPm/Y8LbAAo1dxVCbEjMFBQIv9dVwD0oJk0pWQQOmdXQFtIIs38nBrMK+Nd3EgtYf26p8mquGLiZNxe6bWKVMU5XXnmvlytLtW52hI3sqpb2O+x29wbnrzvpv0sqEaqQ7WzTMtqJ77Ovy0tsgWFulLdyONE719SufZbxhioL/FAR0E+e3cBbIHsy2EiC6gA44Zgw9Utz6zCV9pk9QqKIKZkLOH+EHJjID8Oi5B/xTHj/+1ToE6iF5V9hs2yCy+8+feskXmcLfOa+cLqIY5hsrA3dn/p3WIfmjZrNaGz+BDL+YHcdTzsx5RNj+gBYxG/obpkrkvTgjfJCwDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000007","name":"wepumwe2r000007","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fc4f85cd-a9dc-45bf-af0a-c59cbc66fc0f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b32a6243-c0f3-45e6-957a-5f1d7e8a233f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvQEvMn22axoc1N6xOvE3M7/Up36YQtSTEbbriL5GSuQKuE6LEGJ8NzFuNApR9dn5bjnr3oUDI+niRjuRhsDc6BToxbZh/fgbZVWGPGMt+eGEutTNFl0YL9amasgllnnxSbHZ8Moe8Krt6Cvgzmsa0qFlF/P46okGiTbOFYXzPiknJTdaB2AQdxWCeaitMHosvItqkTTy2HPc9HU4+5Gyk+djCxIkxydhfERq0P3WAy5W3ipBZyhF99swnVobDO/O64zy03cFGomXAG+TzTImWBPPlyjZhv5Jrm8yFTouVvfRRnmRX8c5uRglyTH8nk5OIhfkLqLjQ6sYQ+ujUcy08QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002R","name":"ukspumuks00002R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4fcc0853-5aaa-484f-8f34-15c9dd08c8cf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8dd85ad0-428e-42bb-8131-03d31941e366","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwm0/s2zCMqcWFyuZMc+5PqjU3mPWAOtWLzZ70Yvcz65NxpEl8ZQZk/TXirF+mhsnxwQCOn7wFjJWSYVmlQVL6VhKi1pAUiUZdBw4UO+7VJQXhsFFpLwP3A/gYrir3wBulEVVxeVQyceYCT2mTpVdj/9I6IHp7OKFrdfKktDYIotNfPJ9Ox6WxsJyLJe1RnFvNhFSMfLYFaeCw8OIXDM0DA2AW8WCBlJNi2p07U8XJIWBnSM39I9/IEHZEWMzzogBkPoYKWrI2PF6vzw7MuzfGpDwgHlsSwzlbksds+N7A7EZuADIsNMy9J1CWw4KCCyuoYfTjO2YKvDGbb1vNNn7SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000001","name":"wepumwe2r000001","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"67b7cce4-8e8b-4e2f-84cf-551799b31417","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d0c54fcc-c67d-4f30-a009-8bcc90ecd427","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyIj0qOVEPX0GoPy+vzTO3hXDdlPlYWMnIt3b+b+j/F/Xgwoq2zEx7/rYHs5DPYnLE28yGRvkHraqZ0tQeyUE0d8V2+E1QCrTWVClMYwmxzDUQNJoJG1mBhq+dlo8eLxQ+zo0z5vuh9v9K70caord2o0ZB1gHDinn6F9xfaikcMDsAODGdOCr6tVPJE2m0Qclht8bejMnXv3hM/Dseat6UT4U0y+QMQA9K4GKY4BO5xMf1eaB4Gee45sLSl5kL1bS4InMK3NTZgb+Rk0OiNppO/U775iLQ/YjUoAtEIy3ppdM90MVztx14VYjl90XAmNjDuAZFJPL2gdS0XoLwM3opQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000E","name":"wepumwe2r00000E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1dbc3e16-754f-4d0d-88a0-4e1a71c134ff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"27ec954a-993e-491b-941a-06521b106d80","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJn/NN+Ii3gfH5WMVFXd6rDbwpzz8zR3pJratvz0M6Lf1ImOuGV/XQ5OUhUuRDKD5NZE06CM2wHx6RoA9sFVSo9ZU85v5y+bYQDnyHtc0FViVrI/3eaw6geB1P3leQ42myWXF4LFjIFV0R/1jJL1zgNkhfZTd20IRSdjHcatfqFeIX+eAr7jtlp6JEPqHJjqhAuA4nm1g4WIQCiL4gLMXIbWlSC4umSGwoOmamvupzzGyr4dwy5B5HJBg5KSBHB1e9UnA4xdIqjMykDe7yw4uzAD4WqBE3hu5oUG2zuwhA46JDDZHRyLDqh4M+JMIzqA0LlhuEiWvQ5Txcc2bAsNFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002J","name":"nepumne2r00002J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ae1e7999-81da-4881-a09e-08c80753163d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1b42c9b1-7046-4b35-8b0f-2f11448306b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxF3Dne5vxG1HYeG5+xv0bnKvupRaOKALC70vn3bywV8t15qXG0VkzhEIrNcgYS0m/JEp55co38xmhhbuSSD79PZPGdc0V/+PDKa18IvGAhvpdVm2BFPeNhGnpPwzoh/SBS62+FaTpgLARBQfI+MDUdYtsVKjrQQLSlvIzAtHBAYeRYQprovIxqaiP2ZN7aPoWVT4BklAzlBCQBqR10yCXcTKCc5Y1ywUxTS27VROv7UsMKG01thjjAOoJgcmIawAIr6vWH5FA66eJFwhgdRoLagZVRJN3wxvyKNi5sfF9hZwiuqh2vdDbXOU6KwVfhpMxgyxQJSpVjdEAzZb9+LtlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000P","name":"ukspumuks00000P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"12f31d01-47bb-42d3-88ff-9045c38df6df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"16af5c46-eff7-46a9-9f6f-1aaaf97c5440","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAl6hR5OWtqlLgyPG22BXaTMn2EO44eHCy/nkt81e9/ovptRgYEUrTw7mwDrtqIXjt+gk/WotAQWh0mxfFF1n7SvOMX1mAD2W6tBRo4qo1OWKFc3eKyjjyxb37sCgFtqehE023yMHfD+u+PWrIr/CIUAPyXGrJJLMoYxxMe4S2+DpGyBeYrSq6TkOb9L1ya2xwmeeRtXtKvGJr8212nErjW14jDEgGvCnWGvg4Fq3dZaWj7NKUHomBDTki6u5dY7CUZTjgex9rVWzRIe/U9/3XujvjqPRXJ4Ee568C2sSv61yVSX8PxIyA+fhCMEqOowAKmGOxi4ilZBf9cW/GuZhFuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000023","name":"nepumne2r000023","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"abccf45f-30d2-4f43-8438-59640203bfc5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b5de27a7-b541-4a65-ae2c-2e03bdcba3c3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxnvFXTMi8Khva9k+xX5VBfLLOrv5a19qiig4A5cNZzeyIuXUUyvvMBGXAXbuhNbYiGneQIvOsDpz7bui3bkwUgZpmAHfavjcH8+YEtH6R03/cknqcE3UExMeaiobfo/A3u+lofvtl5VuJZus3pp0g+oN1DOJ7F2Y4txJAAtPGJSg1opkd6o7sIMVzlWe6FXr0uZClq+mFQPHNCfauSVHJQ5X9wHkRKrjpWk3egqWQt9XUS0d4z4J2iN9mmDKsE1O3iCkhdaRZRzRe5MXUjTRxtu51VQBCyzzsivN6KzWlWhJW8q8XWaSXI3aX+jIUPe1+UPXqGBZMHfK0UxWgtPc1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000000","name":"ukspumuks000000","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f6337ae1-e2b6-440d-9d7c-07e270600042","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"e60601c1-20db-40e7-a488-41dad31d37ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxmLmo0Go9+6wyw89+i4A39VOKwC7BXZ6vfWySnDTyEi7ISd7BAuaaeEvQnQeKhTIsRxie3/OVwIc/bY1R1s7PwlYTX+gQgLRfBWZUswDTinFM+bbSb6U7/42wbe80VoI7HfU8bRojqn16mUy6ViahCkfc8VSGDeIZJfl4utGFg1hYLMKP7kuzHLZonR7fWJI07VcDo80pHaM2GxvAkE2zKXJqul0yr6SxTBCS9azP8SmBQikCPWhH6YrQJksqQG95as8YXAlNTXi/l+hOvksQoKArIGLiO2eaG87uerHve1kLJVRCTCVZZfy0oWfZT5g/7ldt084J0Z0U3lqb9vcOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000O","name":"wepumwe2r00000O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"34a8427d-e989-440e-b059-71c572a91e41","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fd491498-a7fa-4212-b52b-c00dd8f01539","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlMnGN0fTjoR/sdYF16SpuYshKf7KPdhpCoNa50DJRFgWGPHCqQF2ylxXkxHci/SdrELCAkRrdG++xEPi5gSQxu0NlG84XZuiQ0W2BwhqDptnznIHK1dTlf4tW0QdEQiQB7W0JyN0UN/YpYzyrmTTN6hRy/xhaht6QMzbJPAoekGNytKciTS/2WJKmLeDdyvcX9dLoPZ5RIjaMEnDe6qXZj2KzYV2aYvDZW9ZyvWjfAT9AiNMewrAFvFg9QkRdep8+Fz6Eyn5J8AvDUeXCzbErEKJKGi6zQPr+Oxl5BfWLEwmRN67IAgw7/fFDMUti7D/8xxRDyLOatByzIeHYb178wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002K","name":"ukspumuks00002K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3bddccdf-edd9-49cd-8183-0ff869a1b1d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"e0a50061-7622-4dcf-bedf-1e86deebc5a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApN4Pb0yc5SehXqca/wrO/kCjHJWThcd1rZEwWbDwH/Cxk91ahfGyFOQsJzbY7Tg5MpK8zLHw4nnI+NtyRPdnWer/xqMlyznnwa3xpMbkdoho8pc57IMiINMGsIuP+YtfP9VvXsFGzjpcMEY3EbI+gS2iTEUkCGN2KrWOZ/sddKBcUVWx6xCGOeBqGxMe1zv5jo5Vc3/9dDNFuWsM0vCuiAS8jlxu0r6z+93r7DLLERYboDfKUJ1KFsxyQBcrB+XgHUOYdVgfVBb7SQmJiRNT/kdUydSIBfS+jDCKn3XmR1r0tli0lA7M7++SJXztQyD0sFB7XJAe8nUK5AaXPmsN3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000S","name":"wepumwe2r00000S","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d3d4697e-5f37-40e5-8327-008f0633c10a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"54e0e434-9a74-4015-ae66-36b61f1e8dfc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApMGDZHI87qxk/UgDvdm7JnuU8KUD9o9HVcmHw98htJ8JcfmYBVaTtGRM3n91tZaTDTWOiDDrhI1NbhwB3eGRJAun0Mh/fNxOIGNaKYQ+kTNr0SCR6oPQIb0QpaL8DUAggBofq3PlcsjlUQbb48okzIBz6sj6io8y4OXisY3zGkfZSw1hmMtxSIgQdjke/UJt+VlZw7Rv7Pw7MEPvo7Dw+JtBG3BQmFIZ8XDnoHMeQ4usdNRL9Ai3W9rpRtSDmyiA0N/HuApropwqFuDsXaWzkWjfsma5t+TCDL1QdebjFxIEJti14jmx+YzNDQ9ObhgQLA7P6Dab8gf5065TGG259QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001H","name":"ukspumuks00001H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fcca24c9-ce69-4f67-a2e2-6f954164f9a6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"66537796-3f23-4d9b-97da-ec38530456ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqlSPn8RgrBQ38qaP+W78yocsng78Bjtecr5miU9M5kjNfBI9vBkvNLSxaWV6BmKEL39ByEzSigIfYh+7EwlF6tsgxl4Yb3c/DiF7sj4D1xRvSWx1nmojSwxmekM2AtoyNx+eo5c0Y874dLYT7LcXbwdXq372UAQAGFwaSUMdVszXHHjClsjcgRXIwucXS9JuYr8BspRYNgkwD28GmRF3gUSqpVbBal2/O6H62NFFwRLsX+FqEGyvBlntmEFRfh8cdFTlXXcYHGlWCd+P5MFSqc8oQ5m00ISONwg00vQgNy+GwRKYGp9phZG6vmdGuHQL1j7NQ6yVzYpiNUalCAbzcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000L","name":"wepumwe2r00000L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"17b4f505-1e8d-4c0a-a2bf-b15b8f9851fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"335e5711-74b1-465e-86c1-366ac5a6fcd4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2tSPSc8WrGpdr3NR+0XEX8ueuUUW7+rqvNwmxWQrWgUWuzzZceVqAHXr2X/rnxzIMBFxD4mEWU7xv/pgn7+pu6Bv99xSVIENTMr0ZRuA6gBZBs0Zz/Hv96KEOMTYtf8Fr+DGWq3IgqeWJOQwp34NxYHPpQrRXecbJmg6NyWC3Ajt7LrvrxXKNeYcvLA/Xf9ALDJ1/Ese8Kd7wC0aEWbu5mp4l6uiaTHCAxAzF1TVGCS4CHdvv3enwjYesmvnDCYQLJue/MIgi9A1FmG6ksO6ONKbYr/8H8uLGSq694KVBl36Hq9AokuYOjJ0QU8p0PgcvOz3twYh0ovDgMkwm44mdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002Z","name":"nepumne2r00002Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"afee6f17-acfb-49d3-8a1f-f25fa898cc4a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"nepumne2r00002Z","machineFqdn":"nepumne2r00002Z","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"nepumne2r00002Z"},"vmId":"0a6ef287-cd40-4410-972c-1e75eb0240d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2KDqQwfgCGHnHfXSO7fsVqqDRM1U+QhLPiuC9TEIbONdVPQgg2Oa6E8wnWdEleWLRlT9HWK3q1DrBnjWBfmzql6qxaR3YpM+2tVlc2/e/KDsF5PUs9R00xNEDgl8PIFHBTIeHu88vGGlOrkdlE1PbkYeoKP4NpdZcTURO1xA6Q7dfVukWKThPXr1FuoA7VLmJR7eKPVmxLp5jhph7gYEtL9OLt+ntEPWhpOR8VsPqLjrUAwbArkNN+8xiSAPXzdNpWBHEJ3nTWPegOR48rq+fBpyQ5F+gB4cL5GprTYQ14EG9CRr0MrPNZA/4b0deuiu37cmhRfQajYQP4wqm+lAMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002E","name":"nepumne2r00002E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ec138ec7-58ed-4224-8e0f-79bea6d0efa0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"68e04686-8e0e-40e2-9f48-6362ff27faa6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlw0B+2mk6gJ/PK6QH407ghomSTR1slkIuPUbaKp60e84CGeOf3mLBYyXbxnwvHFCe8I+2qhI+x9dYcSgDovRUNvBZNus9rv6RNUlXfj3OWGdzMjVreRqmXnqiaT6WYoMyGCyIT930uclN2q8MDBG33FlxDD/Y8hwKfHD9dKf4mehteU2Y3IgIdD+rn0Qhk/85e/xwTPYGsOf7jg44cDvl9eUGKqewWXYrDk8pBdHx0dzQkbqu4aqybLtZEdTeCjo2Tlf/8InaQvPLsvTHUiAJ9PA/mNmfjN0iGYxR4U+e+39qcPC10m6Gnozq3g5FTD1EpjkJMSzbsl4DGvA34rt6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000035","name":"wepumwe2r000035","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9dd33872-1eec-4054-a2de-29b0d43e6156","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1180db91-7399-4f73-9a8b-2353ba6c1ed9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn6KHZJPizkzp4/Ql+9xCT12/qZ50fWmArFqsWCWavi8pFRY0nVclYrbBbYo21KvFIJz+VIsgn4/sbizGMOGs5StNjVXypxlXYoLL+ghtxyXE18QSN0lmn2aUYoYS3fkpRx3jIK8h5V6GPytPpuYNtVgIwJYXNRbpSjaFxZpQfN72KUA9Trya9sAIws2pnSVdHAJoiF2O40fX9xaoVGkTcofFhMQtIcHZmx8kSJxW3HAqbgekBENoS7jFXTATrAlP0qCxM3aYOISE+GCRNcT+mWma0zFGs3U5FDRXDLwZogtOp5qu+I+87hPhYEp4+8dG4VDqUMKs9xO3Nm6QKys1ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002E","name":"ukspumuks00002E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fc0d35ca-741f-4436-ab76-fca94e9f08c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"ukspumuks00002E","machineFqdn":"ukspumuks00002E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"ukspumuks00002E"},"vmId":"7eb06237-2d79-4deb-91fd-cb26ae0e7e9f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyMTqOQALeH7tTjFL/u1sRrNhRNLGKuBNKZzP7VT9SeVi9oDBMfmefFX5A+dCwyxUKY2Ck9SfZhx6S5oKfLXbKsIsvlzP0/ZHaljOwzaewr8/MIWdfQfsFsk36B6fvNtzuDwgwKkda8SuUq5/LuWaoHGXM1cKihYuzJCLdxEKU1XPkT3lrdOSzAugOG9bzLoZ8q2E6qMl28yMoXAbVtriQk0lPQ6J5SgESZfQ5hJ+AUzoGPz6kalVCYSnUeTb8DwmdKRGViTV6EyWddNy4PAqM0/D25ClnRXnyM08+dhQkOavHkb0dZ5bHDdfLwwHm8OxyaN8+MlTcrY0fi+j8/xL7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002B","name":"nepumne2r00002B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d6a504a0-1d85-4e47-8a06-eb1a0caa3d60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a78726a2-4e24-4636-90aa-a5eb21a54cc9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtz9aR6TzRHJOe6YUtFCWqcwYl7PJiT6KERyV8y/75jFPu4YmkF4Nc7VxRJeza6fwvdTN6fKy/EjUs7Jls5rDP3MoB8yCR3D9pVmeooECrknxHOMqHVYAYnBWCChSJn8PsOakB5PFfWSE/YW9hZsxVxBHJ0kRYpgiX4c9g1oGUsNh+KxpkF20RuEQngk++TmKHCUJDY75jC3Ld1l4mtdt1NVRX4U1DnIAdlDL48GfNM9uJmMm8X6Y82wnlQ9t8JEFGLnwqmUraRnlHr3aVnPQ+A7g7MQAXCXKXnXnBqTVqRs+Ghpt7zFQULzyq8WCvyInkzuvldt3ReSndZfJ7NqD2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a3f0205b-ccfd-4f38-8d33-994f4ceba895","name":"release-a3f0205b-ccfd-4f38-8d33-994f4ceba895","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0fb8579c-f4d7-42aa-b097-732027b1a5ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895715512432273615934658855391851052513931885731196442336121006030498830324376271591376911500573794427409152852675989994838075969055293977640633221795981687193901582215520010688250463276943359240721788257750246178497453208080427765307554237883266126022360686012556430884061524407795389383279265446512115587120512535261536643164178969613801638420591761224610753133998828213444693533044945181906053338146976343305837","osProfile":{"computerName":"jianyunt2"},"vmId":"2a54c6da-29b2-4020-9b2b-db006be7a8c2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA68B+VkvqUz6CP8zAb50QsKyTvXTwe5wJvShd4tFFuMsVMt2JrHrlxAU5GIfe9HVQ5SZLeIArkNWJMGrNf6FhkVPF++GWN3j1mtnxnAYOBUl0p4ZzMtg1VTr67IR58BpVEf6B1svLJtmLzgW0ohkzsX1mOh1E8dtvozq8QjODgwTi3LWLlgyrrOePVKsz6kL40/Qu+iDoq+1sL3w8q0lSDWGDMfMpviFqPEu2HDBpkLvh+nln2hOSuBUVzbX6erx9mXtxCaG5yGtRajRdnzP/ByTKa4tdN8aVLJPPosn2M23augIJyemoXP6UCECoPebQiNiaAgRi0V8yzlVSmgR/MQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-42d16125-45d7-41f0-84ca-c8898b0d1c10","name":"release-42d16125-45d7-41f0-84ca-c8898b0d1c10","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"10d43e2c-8adc-4529-a815-e5814647fae6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185894391035456349333397942699875919377835592441183043696635036085878214633679391896165377075301843392033836843645488981494286531219194559898641423209193293994476853154619498171940573805225776635447337691428339274489458538476431918633743840639130326315535522299551218398426925468259143102273528178127284093466349512722749224197655398030476954137396477056154151824246711583564139728429549138354821355176342379075880258055434573","osProfile":{"computerName":"jianyunt2"},"vmId":"05434944-fd4c-461b-a7dc-ed3dc060dca5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0bl5j8InrDQ5XZl/CV0Hr7tuW9A4Ck51b0V2K0U8e4cDwVCY9ARVGU9U4dVlnM9R171linYJuOj25+hYt2FA2HNnIBGwRhM5v7Hd66M0BQVm7D9HrrAxaNm/+ftUZpaE6Qu04B4/pTauQkDgriQJsSBCMRpgz1PPg/29owbTLQ+Vql7KHKKNFA9ghh1dKSu9jJVsqfdgfeqJe1n2xd1/moLT2gK7XkO//iLcs5hMLwCDXjQlbDOlvwuwoi96Knq0kPp4DEBWpsJve8udzU2tuZwOt6OMCBAIXQoEEHXXuhc5oemK8nHKF5tH6p70G1Hah6mRK1rxvaw3sTXNV2fRrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3dc0714d-5e73-4f47-9a2b-afd8bda79746","name":"release-3dc0714d-5e73-4f47-9a2b-afd8bda79746","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d15a4129-b1ad-475e-b479-cf46975b1bd0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418364668972207808417371243884690091445831697260619751124131463063437234404968764158232566478047828835604360798137074437670625828884519158959029365533526278016301788933915171045398894719840235838391796857851173183051645180121858043916849812387019116685059877508957083477612782261424199229789737326149267573754711558625951832053543285945028619479526837981208494996261883","osProfile":{"computerName":"jianyunt2"},"vmId":"7da36696-d38a-4704-a7f5-a946eceeda57","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzuv7HIzVx2dNgPissTyYtLZfqMhdFgzbTYFTKoTbYw9THon4jNJC+lxumaLYXcwrYCuR2VzZXAuFqOORkeZPpPBoUZx2vxz6afOs92yfU0ICc2kHvbUu7UG32+6N1DpwqUQrWRYYuLvQzzWswOkJX7iI+xcDxh2Bnns1OZv58L0WemELdYyqHgGrdXK3Ny85o4fIesGr29GN2/ghlZdbubTOHr0eX28TDonDDKjf+r8Qf2kg5is1Nmh1ejP/xsLjVpTCODgPdVbXyLdv3h6G3VzrkDCOYsduaQd040AqUXA6IGMVNAJ/00TwbTFqwW8/MW1twCzWu8SuJAntXQDS5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f31a3f58-64d9-40b8-9547-366a3356bbe4","name":"release-f31a3f58-64d9-40b8-9547-366a3356bbe4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3e672a8d-dcbe-41d7-95e5-395ea2002859","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810033164328289588889649714789999092226335256379434729634546004583083779387880477828979557595896647747261074594163911540426111750871860783153069352348659161006570434344509743092328477246753909568409735052436377951373266731332621829135169239145835826757445833188361289524660810351264862876220084128923894671621654443619172541196883371532544896700","osProfile":{"computerName":"jianyunt2"},"vmId":"0f1cabfb-3b6e-4f18-ac37-82a1e131b118","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw86WusRJCAtVbWMv99M0ngLliQF68TS8f22vriA3fY6xUW4zVgjp/E4DO4HRx50WYTbSY5NEDISQoU8E90PUBWFm8l1gj2bUruQ2hIcbBQm/+7VBWdxlFXtTH1yRPbOerT50+jQh/EUP7STr2vnEAKh+nNCI7vcSSI+Jkmn3Wlbbat2aqpbmwSbQo8s+as8PBAQYyrQPcRTKHKEnvMYIJ7kQ726kn9hN9j6Gc3jzrlGkIAMOeqc/pR21jMm545ZoALpzU9ilLN4/JmAV1Numn6XaQDR9wTLhVQUXgKQPfBISr73YH3919eAFY4U/5r2Aq1On71gBBsxAPVM0lmGIwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-974663f8-d651-4cfc-a6e1-7a923ed6f46b","name":"release-974663f8-d651-4cfc-a6e1-7a923ed6f46b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6c28deb5-403e-481c-a0a3-2a622ae2ee9b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41863389492436038757071638162719181522446905115145073882884896131143337841216842648811901562636067265295304274302518411316796149155976364168767335760826528006445438701107879534631232527353202116260599047728621376423306276055710881569221945515329984725814867564315367666639474935869730386643645774707913389226784783639343204324309512077343571257324816410742116996","osProfile":{"computerName":"jianyunt2"},"vmId":"b8263916-5f36-4775-9da7-eff844c8ce49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8pM/mUy66PBpJKPugEQCZUjcNRjo+7ipAGr6W5snbSgDJe2IlEkLv7M8KvFFmt3DOnZ7q5dqRGzAHaG5vjyV2ceycxyJCrhwZU4wXL9b+8rgkwoxI2iR2TaLkjS95p8GJ39klwhHKrJapBUkbeE7ddXvMMvL6G5KKEav/7lDAICHeGgclLUB0bzy1+87kUGt8pulYoRjfROMy7xEE4VPkeM2Nza+xrKGgF+FSw0nOZSJl81fM8S+Rbagcl1ZbVVjl5DbAHAfkSmIInI22DrevIaPdy4fB9LzYT/ZwAerAJZeue/GZbaJ73I41ANSoEdSIdekxfL198FsmEOobMVeAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-273e5826-43ef-4bb5-ace0-ff07f89e1a1f","name":"release-273e5826-43ef-4bb5-ace0-ff07f89e1a1f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a2ddfab3-9134-472c-8c86-2fbf17fdeb2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41888494381947633134157348093088287887836112271108212834372301074105342504201709338761769783427128493942242214063737331324551076306787532021125601660860262173767450959603773556011166522355571739282840179953850470021378889970338845157633374894329488937543903320508395998723121597604885683558599524395941586912027789562386829309283254683525041472638226144604900796599860814342093863995898478729259830126357588177283286498664","osProfile":{"computerName":"jianyunt2"},"vmId":"cce678e0-938c-46de-854f-bcd5562de0a0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw2r22XiBYQejsaL2Yd73FNTTl65bveViTkSA6miCcTZ1VF4/goZsv0WDKMD603mkLi4gyAHtmEGPL+Jo7u+CRXvdxn0lP3QfwkgJOL281HyFZFW8bNKhrr7EN61iqIGiMgxNz4t429DmfTKUNOjsbkdoCeIx3cOFs0j7Cx1m6T5x381JQhMn8Sn3KUGh6RSLE80VYaWKdrOJZzi3O+BawKHBQuuaEYo5OumR5gluvTvqzHhKCdU6aoUO1Zim8toc+A5NCROhyNq8s4WRywkXgmirLh3yvWIffBTd4NMUz4LxkMRy2OMS2K8J03DbPa8p0Y4aNgpfHJax852/+W/QzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5f842203-00ce-47cc-9989-81ee66279b8e","name":"release-5f842203-00ce-47cc-9989-81ee66279b8e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3e310fa3-ea9f-4858-a82b-7527bfe678bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183810310188439051911449103595714254513987269529193318374456219271857261666471887841658650015411330400082841997439927639949086363068346587962211201864772828576247317258117075386219135980782905237111683793757594532353387056739095397095916920812382647442156099135743237963014149422401648275546523468418837007262776139615056637746362164736552071703560","osProfile":{"computerName":"jianyunt2"},"vmId":"5ddf5f09-7af4-42bd-a26a-97b372755ffe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn+/A575BnNhGfKeXHEjshD13VBxPEZmJP4xY4v8BGOvT7HnRwE8FxO8d2DzgxjZW4pFD8i0ruW5VZgbrX7SCWukT5zf7Fl36NhGG7msG31sEV2NdqMmlm1B7g2mbUWHvAMSu+7K8BQZ7v9+QxHQxN7DfhyZkc2+qulbMidl4AdHeM80wTQmxHPT3f7vBqtc82n0c6cFb8p6XRW4kxVyWrpDViZriwZRmmq0ZX5W8od7w/zwhPJA9g4WyN+O1ELX29SPekcInRljIYvvaCzHsksqPV7oyw1DViNkCdvXP9Dy8hNrM/zFhK5hzh7nvJ9nzgWHs0KWCRW4Sw5zmvHw3BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-87879715-d79e-4c26-91d6-ab0d5c06627e","name":"release-87879715-d79e-4c26-91d6-ab0d5c06627e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9cf9546c-21d9-47ff-9001-bf503da6bb50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418880791053420454128099755437085107163899132468799667414529842961868194549497295228184807280834446788484281238978744154642262812705812361148352631625236601824910890275961982135535082685325553332727163593796205991852509179764122241126220311214172426691823605015556994946449101179226915023132429540937751318723401179602574887442408084471356468525245222858531125074347107593893051226597684426715771266672699800304483972537394943202387281653883229997341537611126","osProfile":{"computerName":"jianyunt2"},"vmId":"228e600b-f7f7-4b63-afb0-86add8188886","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5hZU3CA6MLjlUszx8fg0qHW31OighX9NMU2UwD2wKXNxLYq1y5mi1IUA5Gt+afs1WwAA22OG7AyBoV0KKIce2rq37YzWn9TSXjSgQFfO+IjCkBcU/xl/JnM7IJR/lQjK4ArwscoNw7NlJYb/kn5ksZjEwHtYKd7pAPy978MUcJPJwEJAEjh5/sXAx3/KplqeAZDx4O7sXMgja/kYEUv+Ha1+a3ZTaIksX1perJaKodjnHsQ/WwUWBNUa/DgJyawuXSiD5TbFjjWBMt0BayF52CkCu3sFO+L/o5gVGcv9CQaZCUk7W6ObO1y9OWBfQyj5aaXyJn6s4XsF00zP8zPZQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a59de816-bbfe-41c0-8d46-45aa46df9eb3","name":"release-a59de816-bbfe-41c0-8d46-45aa46df9eb3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2e753078-3f9b-434b-8816-32859b8128a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418678884611476576813713393359284763916120242389588297431402621956534212892279737597347895467366378364102356157999581836211383788853252665211026337804088389610255633428365952552849315948028328632878961392951859549383036733455585747196263882835986126110943960181990054035746770435014138562491416992796010313331420970736671432910236139266351474699793840476526817939623485534899564367076934470","osProfile":{"computerName":"jianyunt2"},"vmId":"17eeaa22-6f08-481c-b6ce-7acd87e7b304","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu+5MwyKrRBPDXpQhWCxGvbyPokRBtMqGBkSJ7Osoe+ILQwqLzJh/2OusUbP48uNas3QyxYR9WUuOWFuPgAcy/5YYSx6wNsdqBJUOCxT/oeaJz4kXRgEBA0nBdekmsltbpex3thrJF3MHUln5mpGPSmYqNYPnHYyjjf0HnUztXUu9nZ18TqxTlgcU3XqrWlzKTEDyBNxfJ0jo8i6IaMA9vBq2IYBYR5tATZU5swrFq/vkE4hBlx3uAVP2yxD7TqScWzGJ3OCrQlTZ0/SFARhAg8nocUhAJhqyJ3HbmdgWtWSBSmpxrIKfKI8hKIrp6XbmDX+QrPQwvwLNdykvZEayfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-80f0c182-8a67-4276-a821-6a28d82e3f38","name":"release-80f0c182-8a67-4276-a821-6a28d82e3f38","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"743d98ab-60aa-48f5-864d-774392aca0a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188172454761018955648649843665282422154870164730893123330801976274052039377215267928984548372618745007474267578333602660557811819461735679059910768671987123984647186721705833233072542441418801606338347801852342643429871466589933701554894834921744647403259319437672332739244196331700910634481097276313796969212651246016857536418578454631985704969492718951307917221760","osProfile":{"computerName":"jianyunt2"},"vmId":"229635b3-5e59-4492-801e-4b449d9cab6f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr4qv+c8qDJ1UIFIbd5EW0tfuySDi5+Smupqe1T/46I6K1X8tcnqMMr9s65oAWiIVBiZpj/T1Fkph57j7tHqI2sIV1BhTdHSVzRcx99a7inGxHS9qJILkEM0aE87h9CYnhi0uundyIyf/AYe10y7gD4bzJbe1mDBMjNkzG09emgjJxsrx5538ZqRfFa05aJ23DQWAinXdNl6TqoIAU9H4a0lbM0wacNGRfOxglNsitr71aV37HKOjqFQhNmmTLWFzZ1YeSRs0c11c1sbwCuNhqVJMoc29CS5jvaOd2UA2yCYZDe0nFSKGaEI8sVkN9/Up/2sNulLh+acCSY2/Q3WNowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d7ef4b6b-ba5a-4fe4-8bce-1665b767127f","name":"release-d7ef4b6b-ba5a-4fe4-8bce-1665b767127f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b7fbbf18-85db-4b8d-acce-2a6907435f18","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418388918253364406940188466837385362886310056214027926260745223993322497507903576189933781393358988002742660864437625207194544166848169528669141621336805266581186006879172440391385786914375623898679456349110739819289009709548377975435344644371093504177068292418969813296199841216726790237116405678987111108128332198623333650411433166396615736366431560263526054829","osProfile":{"computerName":"jianyunt2"},"vmId":"85f1d345-a04b-4b27-b8b5-238de91f83b8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsbT94aSW5asUxecyZCSD2Bs4nDQwFh2aBqjF+sWQQANXs+FCORV76ajLpVeVkS0X5k2K/R27y7tcHKv2i4EUsa/1m9tcxRwFZVg081RI9HyFmAsJpHSc5narzdkSRdVSHchrwVfjBzYQRmZIZhHGolRqVU50d/xJE3AC1lqKFyODRS96r7wJ/ymjkGWTPyiNULRMf5t125dEtJzgx0W6bEPrXN8ubFsVS1Dl2BLr11bhCJmhUm617Of0mviDFn1nvVB2A7iRi2J2LTIGj2zPn5Br+hfswpTG7tnQYZ21h1Ae99au865N0QASFOz9AVVaJewrnP7w/r1ZotOaav3tPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c73a52b9-6f0e-407e-8787-ff06ac0f9d9a","name":"release-c73a52b9-6f0e-407e-8787-ff06ac0f9d9a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a3a10e41-7360-45d6-b677-a9ec3fbeab33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181806159653594489269638136566341626737436827831747063916820662341772665622062822413700224786190574827288339184298141894698742978223210739945985351166492380922244558666929040198351178342450184575724370837842947664296452171804450415225993567635255315352497219683360492156156927815032178457519174309717756433825502826883128715488974535305529452940856561195955868982","osProfile":{"computerName":"jianyunt2"},"vmId":"f15c4aff-dc2f-40aa-a248-c55897032e34","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3jSXVSa4GEREGrVP5BMrua48DCq+B+NHsHku5iaIg9a6nSQLu9sqryZUS70pTe0b9uMmkMZEh3gEtNgKabzbp5EeE6jUCXr216noSs7hETm7706iZRpwBvdcmTZWny3NE8PXwXox8axYgWcWBe6VZCb/PUP6VgJ1HoWUdVxjYwRZzI4CDTqpJC180lE3RU+MQpZqD7w8JSTK7kKcYPRm4kMY8a/x65JDWk9senf27kIgSA2ImouNCKcOAJCjyXam+IITxUAu6pdsHXg0892YvNi7KuGyWNGDM8YkD+FFGa6w/tcrC0apRnvKuz9xVCMV45Sbn2vu4a6jAvgC1qRHiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4e7d110d-2f3f-46c2-bc8b-015332330606","name":"release-4e7d110d-2f3f-46c2-bc8b-015332330606","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"506c20a7-6988-4499-8139-0adc5c7d783b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418586899294951246432411061833820261511314798187434850354613986401934427541067697332222046719311533262467628308334536084880811443063611116983778668090591828579106945676309988699537898174266708097057818600678949792254269682691907678163981440272769834714890080828704428166756351613884447931708916847354451523846246910107729509026176278687285552360893742075630","osProfile":{"computerName":"jianyunt2"},"vmId":"beb38891-5f34-43f0-b7e0-d22ba61384bc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwK8bbagecUoQ5i2YWbfsVAQoGvct3ps8/EVbEleLKpKhSLNMVJBKEocNvTYgMVJ/zwzb9zkagsYz+fVWHaklkVtzLuqoSMRBU+gFoTuOZF8ZTu3xiPmOPeC1KqQaK/Ti7a8nrEtAizAmHbjaKOf5X3GwIJjZVoEHsQ39prJO6phWDioX7uzQSgYOyyspnhett3BjBSClIeBVg5F++2XcuxACqwvY/Hj04pufUC/fZfF0fcrZmYvj1Q3ed2PHTJ4VqpO8H6zFy+n/EnHo1r8ms86xBzscnSY86cIXLlv29bhINyQ3ppH+d3M9Ug+xjblN59ELCHms2xhnUW8VUpBpnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-787cca14-15a5-4e69-b05c-4ba53f376baf","name":"release-787cca14-15a5-4e69-b05c-4ba53f376baf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e47d9620-03d1-40c1-9a8e-8188e8b03335","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185131607332986273935779593697655017221684277933868392781299634661296541327497684473229296623530892773566031386195372669271399386199832425189568226504782565372959065091163818839159237852583358208853294736734915968589850591621505619107349433221946216975417603519592964817922249351685855175123235011583645927208442653821557877868619482524532942380119678320398462537542243553177627823279","osProfile":{"computerName":"jianyunt2"},"vmId":"0245c2e7-73dc-400e-af28-366375a5d7ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqoxs5Ijt025tUzK9LKGYP4oEQTflOi3xI3L3rgpGqHJ4mkeibFP+Cp1Spi7PQaP8qeGHgGkv9PXs/t7zn8OxQqxDLjjGQVAG7gKkVHMWVt073u3FrYOvkHIZkKTsgWch8ry2EgBU8dqmGzKQbXjNpKAgAMDlC9rVkFFMLZeJB2Q7Tw4Yx+rbC0Cb0r6TW2Najr3v/1xwRmOOGNbje52wBrpCpIyV8vNy0k+0exrQ013cKCuvUCqM93RRWP+P4uu+0ca3zZQgR0gEMLcRxuvbzMfNufUNemSUsvlMF0Md+DOsNKwhO8711CwEysckDi21PR6Y7eO1G18ngRQPhdcmowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d4bf55de-f129-4a1f-8576-2b76020a0b70","name":"release-d4bf55de-f129-4a1f-8576-2b76020a0b70","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c6806914-cf73-4636-8046-2ddda7685caa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41820021535513351631395933206920788971308612015479264341457399090193722426974261368952180658969279386957034905251114949973558948589887386234714440950430303186289587898994933252917123323520529027620191779462410383412034052169597813953529532334768872526311068277906648215635628507623679309762733483827706131590470314452440538405821166376636156647356982318306126011583020693550271354694068217382837712341478457772727851123823943423806","osProfile":{"computerName":"jianyunt2"},"vmId":"a711d066-0797-42bd-8d03-3280c6da7807","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA30ylg9WRTLZsw1wOfzJT9prob6Hl64HUfN4UqUDrr5l48dUliu355KyCOGFkv0MLKUukW3SdZaL5+NmK5/hb2qKUfzz/Fo+rQ6vW4FCCv2GYlXIatd2nCA1mVX9OWntzXYuKFCPvqtsghu7SVbS6pj8FmULuEDG3aHXEo4K8LnyjUgTciB1WFCfZ4c45ZGUgsydR/+6ezh3OIDYg0xI/nBd0OmoTbVOi9yBqA72A2O3mspY56fPU1dErcNnTtozuaIegc/K7dCzEIq8A9yAoQIVpHdnG7KODtTmZ7febHUXw5809+JKGnWWdEb+JOzsHi6o9F2bp72cn4KvMpVx/xQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-994704a0-1d8d-4b56-8b01-1cbdb2049083","name":"release-994704a0-1d8d-4b56-8b01-1cbdb2049083","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"020ec656-5b6d-4abe-bf9f-05842e6e15a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418339915759576113435869406265015595886594293372853309445955143169911017415997612496751481254976391301313809189563586554030112198438648558220043754458551002125519680902960883890877366860871983392928300224119496239612238622525401146038878985732043949024935778038424123414808213744780857758823347194742693897394622857890615125914215428873117407561288979897744288973534598367201793999569150165194","osProfile":{"computerName":"jianyunt2"},"vmId":"3a571572-69d6-4f43-8a62-190dc2bf64b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwWkluku+/XNESRyKyFEt8n4cS+akbRVrq5/OWvgmDokPQwU94g8AQiDC9LReUgEmuSGhhcCFCxF5NAUVQ5LwRSwEOslkug6RdvTPxPTM1ZWD54OIIoe/c1fjzDtGBsObONAgaFabjxXLqKP5LmcbQx7jsnZAvpl6dn2Pv4kAhkKqWvfckSIn/PpVvFe19eDNueTfrnMkDiTBMXKiTbw1mwaoye4jWDsrEEQydcEre/8Jo/oOj02SGairzXi79SiRIljiwxRcRJvuJL3YM46EsfRuGx5AF/pvmzUHHDPda/t74PcQagM0BAjgMr3d2DQJMxkWMhah+clOiIeDaTOd5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c5416f9e-fa3d-4ceb-a24e-cf2e437ad01a","name":"release-c5416f9e-fa3d-4ceb-a24e-cf2e437ad01a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0ab4c5ed-4864-44dc-8290-613fff7c71dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41889353369207648438820533080206173326340265819500731661454046667625313059960764720921782343243716876880690478401517332475965418779346682201539233920605135789861342324102496535063131629514621997808750382597158930052962784225615374486506472143843729991738327112354144734831636724911144555225859922815456011751982368636091512390738962530425101747511767187846742246624464669310753060128657367196749715","osProfile":{"computerName":"jianyunt2"},"vmId":"8b009157-2b36-408e-a87b-d5ed4c2e1dda","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy894b9kHj13C8plTKpUsqkThipFntO9dSBku/3imc1Vw8qVuA5XAWkOOEgSM77wc0JQ5LrgFZEdPySEoJ0/dNyHLqe1JTSbzICyE+PamxDe4B+Ndx2Mb6ypTw9+N4f01P2Q+LSKEcR/aREr2RGJatUosW0ku5FSr/f6oFnkDT/ovfhC4gQX8mAa2l4Hs+5uPI2s5g/Aa5DN95L/4KvjlwBPKpQ9I215MCyE7PSoAS7Ux6M+J+6GS5VlOYTWGpFl0JE8Iv0WAV2tHet1W04qOU4PoiLGainQzIu36hmnfALttp8w+jlNHBctKRA6BjEVAbvV4LJiZHmYLTUVYeSFnswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0e362d09-30c8-45d9-ab7f-323fbfa832cd","name":"release-0e362d09-30c8-45d9-ab7f-323fbfa832cd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1b27ae0b-46b5-4b51-a727-a0efbe5e89e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41832897486771813490103423800576966527189495640312634762752144536548530584309225524764631111296005832630817554623631369528723260026556038672606161525097267878282322488361364057737648514815077237611530223212474823167275396251830282299982178344134192756915296989521386201144402218022793914726150839377542027648585789401925948473194492384329863624996893387528891114566378396034864191534548540911376756707564511765559227326626935574649121954945","osProfile":{"computerName":"jianyunt2"},"vmId":"39b5e912-be17-47fc-8ac3-ee7bd137ae48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1d44n648onBJwGXkceh0zgXbZh/usy4gNmGfQFf4nxg/ZvNRarqsdMNll+L+Tnte9cHhBjHkXNSLVNMmO8gnx/q0F/OXIoxEI0NZf/Dett8sRpSuia8uYN1rg+tJBdlBAcxLvaDGfWb3FrKFVkB5CpfFH6Soby0p2y7RXGPvuT1LlpfjdBtbuBHUJ880U/emF2U6RCSOMu2sEmX0CxSnwsdvAbrd4xy7rR60V6SPAn1YpRAeFFbFfQO2/oxIj8L88HyBI8DWGkjhhbcOYCsp5cYrvEigKvXsI0Qsh1NLPhpLl+npOoU5tfNFtScyS/aHB0q2C9Ho9XKyG7X0boMi5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-216b0963-488b-4633-9f40-18ca23a74161","name":"release-216b0963-488b-4633-9f40-18ca23a74161","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1780b1c4-07fa-4120-9644-6076fdb68864","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41840668210842831338677394384153378304160118057968410642258041086707187724861413860138027886885863379276993952424968011029577567957853727222731234621527165228006076219065321073198050861388204837798969624223024104733101094171240841978717283447374435630686986254199220466688498282112704689062414838564318457840325552221366564965307200444462549083151948023613896588305143332723102683136762972248918855852614232353919379684958923177156663301148073617343454966223722645122286270554651","osProfile":{"computerName":"jianyunt2"},"vmId":"47f5ce85-4725-42b3-856c-a0a1f0dac13f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArjUnWZr06ogH1SRtyEeI93tnklSuLZSG9snZMfTDJu+ELowe/1fxaCR9hqhwn0eog9ykzY/Pbf1l8aIFdtZMAuksBGH7lr3j5ZuwP71o26/i4p5SZCbNKEu9mAkNOXGXmO+0wTWqnIfaogXTZ4f2AIv/jv0PpErfoMpzdhaApsLKgvHrHg+sukYgIzv78x0cmUGu/zJJQXHICg0qsfg3wnVaQorAks/qRVqItOOS6hcHRrnAv4YL/NvvaoGb9k38dfFcADRezlYtAoSLtku1LQYSbVCZcqWy5ZcVm80IZpty7fU9IhP4amp97kAWbG8g4ze1JJRgLvc/LE9fD0oGwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-408e6dfa-9e9d-4345-9bec-aca1a0269679","name":"release-408e6dfa-9e9d-4345-9bec-aca1a0269679","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d7a42e0c-8ae1-48fa-bf7f-6d3acb0b2130","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187811367517094461533490033171978597248536373794851046215807787766912148330652586735029987378266017098592124603361845892917263156627055518449312011481539962606714457714256736935030963482387521307152144469631038083963748399125145383426121348320843637417045781837163123301222153452908227777950231661961728567769756076534519702966769923679443971718360058562905694822668578901756879580567342976279300929933827977781220068733890806152581917","osProfile":{"computerName":"jianyunt2"},"vmId":"9dcd8eaf-14ee-49ef-937a-7e12cae6110d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzCYSylV1j01PAzceUhDFXB4hbLKT31QdA071CMBmo4AYEN1ab6/kKEKDHPkciTl3M49FeCfoGalO2/U/wa/EVQuonGT8S47h8IezcZTy1lNgTrGj8BaTPlnk1XnasrISOxPsrPfveyPP+Vm7B6Syeb61G8cihwJOu43f26NsdOrhxVD6BJyxuM5uCZVxS6adSRKWuFZbexj2aP1/t20v5fkYPpgTdMEURpwT5n33ZTeJpDGwJpF0+3fT+VTwvU983E8N5F+u97gknvKR/Hc9Fr5tSHgzi1uJhNUpzzoeou7acYAM2u8MCfGC/CMuMkCZtqb8OXhQ0NnQ/2qgSAhSjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8d597e9e-cc75-4948-89df-27dcf50c852b","name":"release-8d597e9e-cc75-4948-89df-27dcf50c852b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"be0a6bb9-bfbd-4a4a-83c4-fa56a4fb8f5b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418969348198808830470729208062330119987436219333547223459512145157246774722353788261341235977327653781484339857772343109591303945434366810565640312241564852473254147667849861654844370918581541576459821972855832008685643329386718569845676534176307142607738693664857833799071511257964515595743971613933140261515852896251943328634791752688830497164794575775984934779388691991100532779046862374633180631068227466646302720399728091102440493284748875377486840772599007827786761847645","osProfile":{"computerName":"jianyunt2"},"vmId":"4536a451-d492-4b74-a245-2432b7869536","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA00E3HV/gxiiYdGGYVO4edeCk5UjWdxP1DL5+KMQg0aDCeqnGLU17YzwglPUTbJW4zlZjWCoc5yfxsEUdJHOZ+q3P5TvaK2zFbU9ieGuurEQbCLv4Aj0ryqw5lOHF4PcSTZAH3BNa4NOgQzHCEbYfTnwqArZR997uLF9793h0Y23nBSzwZuXvjhhJGITCkB39Lo1teVYTZp33WnZR3fGn5ZlO38yCx9vRJAnJgOwCXBl8+eH0G+QQPpDz2L3J9I45bznj/Ihig2ZNCyukDeecvL9Tk5qCt7BAZWA57ftXMyVEWteh+5wOZjhjDYLoEh9GRlg94Wt4ai6l41PKg7C/rQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5ec6e189-2e22-4141-b2ef-af163b4a2d01","name":"release-5ec6e189-2e22-4141-b2ef-af163b4a2d01","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"759cefcb-6b79-4e8f-87b6-d5b93186f536","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41875315387793913790241553461219361139544417288207970266548893584684458688902264850377215133282194380429861933156998393315232182107012575426428440475085675775874681431870969622459501880428069586914987337355776053741365485984933217283322947055661808013205482374813234567943181299842747040067419864169573015135906740514579259175691095752711457971846672821971824728946832912","osProfile":{"computerName":"jianyunt2"},"vmId":"ccf15ce4-f310-4f15-b9ed-6693dd9c681e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnPlE6oe9pbuDYtyQGNSDAzSjQ6hS/iPbpRAqtCjUOQJj65t8g3ogS55OLq2yV/N6nf0lPIpNGQIsDU9cBRN+JebarqK5qXt5MRWIjk00y3afqBRaLeq7tjGCIo4cbtt5EjveYSRBj3LrffM7KJByYAtTt4nX5zEcuT5LuIG8Ku4zXVaVdRbQoK0t6dRoMcolLmnRFQtsfF/YufVHV9KA2n3hDcdtRoqmQM2Lu3kwkYaYRqlJwyWLBN0GRKWuf75W2sYpeyTQ01pPkTNs/AZBKdEtB01mVLug6/ikioGSuZBnrmI5hMB1GX1w9QebRWjMp3geXX4MGH/xh8L6SyOYiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5950990c-0e0d-4cec-a6b1-3b0f3b6ab795","name":"release-5950990c-0e0d-4cec-a6b1-3b0f3b6ab795","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3bc5d503-0112-48f0-8dc0-21d7b9d727ca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186757403338425524842708782687262343230367250156229171934127082629761319120650901899852983914506712149322932756357487617952287673661079085869593480615943904073996835638362262565761452954478909225491130131646758767569209170115492728110841152108218045512409320496918261747553797087192781935260980781702895722173289765981121752851272853569715518277426878198635452262465594825335529576111928816459","osProfile":{"computerName":"jianyunt2"},"vmId":"d123b138-2926-4bd1-9151-b84b379f230b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt7dveAqKOtBqD+QThf3unELMJ4vbNkbgqTHM0/JLZta8f1suMHL/TJF51AU0oqXLaollCstUK8dn84N/8W/JTB7rDlcNeXHbLNSfzQZCnio/Oa+dYF2AY3qoLJt1IeeKzCImXJoqSgE3SjCpWz6nsNllS2yrkX/VtOPxeJbnFgZIcvrgLkdR4hSaGsLpib6rIN8njWx+0Uvus8NvCvTgPMcXgOrFjXzBjlG7BzCesq19UdAtLscODpaePwEPoQvIknFW8FvQZCahwV11vC+k/6v96xiT6gj6jFRI3MWnabAjcONyUxRaj1s5Dd8vq62+pSaektoaWMYTJUZHMBbocQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-38a914d4-93ea-4a73-9573-849e7fe3ad4b","name":"release-38a914d4-93ea-4a73-9573-849e7fe3ad4b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"546d7255-d1fe-4b54-8117-c177a5abefda","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182608642221928390337572931298953457874789758590131294844322141206922321729171676562238713414206897494743439976164611572918978472670139855950268247396173120333971609320646702381977575999459348963544855745634461698743277254773944402052101568364251727976459655195876340783556436436933790081989909940814649663831533437374533771387939235164526535451349528142","osProfile":{"computerName":"jianyunt2"},"vmId":"e6c98821-4ca3-4184-9bf9-3639546fd660","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7sxA4ZQNeByHevLC6AXJN64goI0byCBs5uWKT8yzyg5uOL3nuCDF/Iq4LhtBl+RT+isiJt96LpkBtKr0KckFK8KOe5oxOPm/ln5x/m9hFUw+34k5ejpIjlZAioN7DJA0xiva1wSsKQ1hz8ru0SYj0wbDr7qrArHzBrecBdxhk/vAPlPexo6Mh35ylDufX+rxmQ/wsYkBYREViPhtx9QJeE28ny+2ASt6ZcZBw2oAGHcywJMPIH7Zr5nLU6mftyTMWAX3lVWScGfUx4HulE2kQ5GxOSBHGt3pMRLWhFUDWjO5/E+Bgru3rzUQySguYS0r8Oe7hm7mQYRSJGUWcUGh2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5cef3120-f62a-44dd-81d2-19692394f0b6","name":"release-5cef3120-f62a-44dd-81d2-19692394f0b6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d35a66ba-ffbf-40ec-8e7e-48e6a388472b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189916766639505359269244510255650285189746231531813895200853236508256310121871505314918822503980333732180271773656014815310653819418616264767967652834581971592397989645146914756062005654448229621149094872925833377133048535879350212735932761231612047161418178634391513560165852264429824138835709029333948319516976507516295515074709622875082787468731992971532202999631884949322","osProfile":{"computerName":"jianyunt2"},"vmId":"e8f4baf7-a673-4655-aed9-97233b283853","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvjL1m0BrMOXmuDPAVb+XiUWTZhSWJMKCLjTq/UE1TkaMEx+zXsJxMJWIjyLFA8HvGGAn7Nv2H9G78JnFsMpbqh+E6WaC8sJLdX0F1vjob7NrB0igip9PMPgR/0vakHwAPLSBaUruZVdoBSRNBBU/myF7V59IvRfJtdub+ca2FWD4N6SfOD5fiQOywL18JJdCZwqFBUE+7IbVqzwX2tGDZtGBw4kGpcvNhz59PL7pbRrR9iisT8mjDErBxEOXzpTadn3CwfBwIXCIBxXg5+NVODBe2nZnhT/rVDf1SghWOdnMtMJRNOZowCNGD8DoSLaDfqbHlJ0Ba5qs/UEmqsXjQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9a75ac22-53e6-4f86-8809-4b809661e2ac","name":"release-9a75ac22-53e6-4f86-8809-4b809661e2ac","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7f6633fc-e148-4ace-8e76-4a1895a5434e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187736958410595400362338344833252672042046950345870145912964892076823929188537826522535026041514498976931513669832885699128724805347124751634144261337950420717020666894380687153794916622405408487007591348199923274157355220654390648630635435661551560242370609018518887014647385212782373617854100170063093812828792477974893249274953388815288913464281145","osProfile":{"computerName":"jianyunt2"},"vmId":"943f1a8d-ca09-4fe4-942a-f933ae883fb0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz/xSDiR+2CKLyO2nq1Z+SGeSuBaxtQVplHEKEvdr3KC/ASQlTxXyC/ARHo3+M3YFh0ysWDSfpxCQAqJJUydcyLVLyci7BRsaj3u/+bjI815KpflogiPgJef2gMkJP4/2+YuaK1MOK1iS0+HFAJjl13ke+8S0v7G46P5pD3J21Q52X/c4OkUe/oFP0vBKUgZiIadaTy8hP9w99dpXLplanSdZ1zu9USvFom2Zo3sc5cZ05kqPD5fh/1cMoRp+i7jEhzhPExD+S5EiPMTgR0rpXMofddi6Llao1Yb7AKSKCJU9BSbMF8zEWSnnMDdAk2ts/1q8G/1FdLPo8UWBWB2vcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-974b513c-7f9f-421e-8d0c-5f382c3a5300","name":"release-974b513c-7f9f-421e-8d0c-5f382c3a5300","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"17ad5b4a-96df-4707-9dfa-128e65d700d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418434717336624594817759681729940649021110827407795282454682223239729847223438941296627185063552068450913915369252246581663053661296402260316382567133495967925008541786018545584586980359963506987182564456569846278315668126315663812630748168987241226326407686346778072493786427317450788001000998753331397330969053257","osProfile":{"computerName":"jianyunt2"},"vmId":"17dc11d8-0e85-4939-a734-04909b106734","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4ZQF/ADm9bS6FgdarfEsyvd3th2q0/6bHXUKTtqbk/ArjfoZukVFUwO3YgzF5qQ3cPMK7DhrMGpaGlX+6l6zrk6UEzUTrXziW2aj6NPZ2CV8bCoZaJZZCbAIYjt1NcBKvnZR/QdIoBsQo5I4IGq9joK073vi8o8cIzq0xAl1cgWzBSgKdSEZwX2fM1lGx9eEggI+OYJm1InXqbtob8oZdCSVhMmMejPtoYB4x2rJ6X4MC9sAAvULfW9onQzs87AbP9V6NxeC1kYVZ97Hr9FSXMmQZ8M8rj0UTF7CBOHaZpXapvl6UDJnhept5xh+15qvSWpdW+FkDSvdg6uuvQPnTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bd13b17a-87b6-4c9b-9d91-49640b1450c1","name":"release-bd13b17a-87b6-4c9b-9d91-49640b1450c1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8d2ab68d-6d48-403c-8c58-138aa209b1bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182292657262886591958113655146766304658238818775486065784949590529589884520215481247276417819905734565519676304778853010117996996913820080396226180676137262359662475029655405595233913987533538247586741970901855437396137566655495577910027902316349995978425067894851843166498626913781823037714165780393596539500330970742644827776303908358212747","osProfile":{"computerName":"jianyunt2"},"vmId":"07029740-dc3f-4f0a-8517-df3e51708cb1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr7ejKTXeeA3I6tWdHy+e+gmrDeuFeZfh3S27u0SlkolNJcUsaT9lr/j6zlYPJ+FfGxy6qpOXQrQXj9wc2fE1juawZFftk2zJwYH+d6ZEoiC1aW6DoaqtehVa1pavbDKHcCtcDHs1wWf16UnJJZRsX2DGXBqcshwBSPhaUbv5KXJhqlJwknJSTDznr6YwDy9nfXCQK4woj2akgWi8QB4mpE4kHFF1BmVhKMcJTsjgVN5cE4VXq0cT5m542vaHusurpquT7y4NBy12LyPCpTKDdMHy5tcOgBSSvSvuDTeWZBIAj/77UWZifNhKy9/Do3fXzVLkoGv77rMn6rscj5fmWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-04aa6fec-7b7c-4678-abab-dcfca4bee2e6","name":"release-04aa6fec-7b7c-4678-abab-dcfca4bee2e6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1e6eb34d-e5ed-4fef-b424-85ab1bb04897","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189781242268614452216175312525733679196584361818851819845570223447486422599261937756175040525993811179364995171393125114505516978494696172933062087949069702497722432718508296255239699182976614151014548451216195165830907640154712880378842640845696633027731555940368693982184640679018572303133037817921189170672778657163742275740745581153807987106079","osProfile":{"computerName":"jianyunt2"},"vmId":"b02dfaba-74ad-4874-b627-2bea7d6056cb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz1fKNI1oQnDQv486pDdh27cIJ0FSuhcKyxKXCf8ax7WI6xNm9EpGc2b6I6qJ2jjvhpuECvRv9OKPkxYF0aWpOkTcZaXMeTnWkStXr2hIuQEbBzFvy62G7VmutMndqT0lyK7TOTOPm1ECzIOAHoKPBl+nxeaL3JCDd3gpoTOkFRwrzNJcOHOPpCWNV9CoWmEetlzcWfs+QPa6LKvsiO77n4hCuqYkoUew8w2r8FMP9I4uqZtoZ6SjOjCnyeiZcE44GzYLmJ2z/9U86EsLquJe4dTwEzj1Nvw6Kv6SpuDNTdyGN9f4l/riT0bZOijfsJ/B0HrKe/Mpd4VixHx1R1HgcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0ce8600a-40fa-4f68-a070-1267fbba31ae","name":"release-0ce8600a-40fa-4f68-a070-1267fbba31ae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3d1e2df8-e6d8-42d7-aae1-8327affd7e1e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418146486396560945941633223814746462547186498180941828122771509042788056491929153097146982554513016249812462827857234833099206691987447340793382099108646350059672512061400919335790163250512037725505715956218981233750846444103293849798740872523758026331688756908242771366176292568393523791499481749739383823814746362926972231172330383976362141496587172237525537820748313728","osProfile":{"computerName":"jianyunt2"},"vmId":"2b0369af-4b37-4f96-8959-996f13037044","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt7hYNKl6IJ34l3MwkKj+nxYufI/FAKSCSj+CuxmmfqvjwqYzWFGqQI/eEkFhHBvybTNgCBLiFdiByaocS8wgDNH644ZduU6eGgpooq5vh+COr347Tpi/n6RhbFvG/9HV2DRNFDHdO0mG2voJ35X98Px6xsYLykur0/K+XDBAN86L+jkrXr3pYL1WWUDw9RhOYmnXP6ubFyMY3nu+5INtnET4Egn6csNz26m2X4C589OWx6AaB4feLC5A8LZJ856vyh13IVXtDMVLxM73zi9XpCpFBebRqGV1Ge9hrrha/o7SqzR3mGR1F5WPb0eLBkiF2nD6E4DyBl4xmuOdx8bylwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-153ad363-82b2-45e8-8b4c-716385e86fc5","name":"release-153ad363-82b2-45e8-8b4c-716385e86fc5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c1d77a7b-61dc-49d3-8905-d2703dabcb6f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418329763397571354167717501354412706264683568011976630193519444951197434662457496645982338446245576788143393795549967699717715573790123955133089703289225739162738749582859755896717990744529418505422879113309341287627522365535225333390259687785844391904264168880830668112309360961568763098455751345855094563866564761839957742016747693455207786063198366255673389652839430441789664546367777341030752513804556","osProfile":{"computerName":"jianyunt2"},"vmId":"6dbf6339-eeed-4909-bdd2-a37a52b86654","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtxtgekZtfnNzDE6chS4jMs76Eepm8PoqcsmgioPu+IZoE1/w+cIjiFP3Dr48MlCkgDzCJrZ1isptJ7MUTDeySUMwMWfVf375l5/EESDvQSR6qtZ+hz/Dt1UNhehKN71DzgNOx8H3HXHF9NK/3Ndo9BDw9c2OV1qmBwU9eZFFFFITFtE3Fsk8YFVWLmU/vLHl03lmeAQB4ydWN6nsv737MpfT9xhWBWjDFAyx3ATtG8EX9yLSrWrge2n9c8ldPDqCzBFOqAjfQgsmTZhSUr83hxhloPvrDEMLCG5wGuTSj7L32oh3vf//tiXLHyrY0eryuwNHBxQZpGCOj3c9vv0YKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d64c9a06-8637-4672-a27f-ee265d01c179","name":"release-d64c9a06-8637-4672-a27f-ee265d01c179","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"563b682e-30a9-4784-89df-60fd42fbb533","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41878157901061919230089264113067227865923167939793997798391664868448713577521938678792217885119364857195093396483630692919537908421939421712670233623805382366432901155670496021554588988315593611562298178071156336906227276624526158124434872076487880755893289573676672467982422627918996365782231320964747724927423298511237329832931065581197749013456360595364789558809124638450215441018818384753294569546777493664181051471798","osProfile":{"computerName":"jianyunt2"},"vmId":"4b602ef9-162b-4651-853f-2327b3830546","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtEwy0kHFda7rsTHsOTr8knEgE4Vb9w6KKzg7u63Q6BF1My5xrEe3zct4P9oBumEOitlEQjh6R2vUqknuCbZER1/MXcnAWPAhu7uMBE3viX8aFkBqqw1YndoGtuv38Lytr9jhKHOuUrCivflihhCs+ls6TNV7FaXGBUJuSvRlh7+auPwuMsLzuGH2ZuO18T/5e5Bkw0KpUgRVimh7g/7S/Wh/poOEI04TBddXeIdqnKgbuvAZEsA9ofG20QKJVUdMb7iwJtCYKJAxheTvBcerPaoogzOeQDwh5lmceEfsf7qSKLPZT4TyfKZuTYZBxmZwLA6iXaJTh/pY0yBHrwkL0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-070363fe-e8c3-4d16-b3b3-b71f1eb0e410","name":"release-070363fe-e8c3-4d16-b3b3-b71f1eb0e410","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"81b4c68d-5a6b-43f9-973e-45c55010f424","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828146981102998016369354258968286793685951200155831695539792563550813552329174859286233752034962189164222750589014454627921628969319699293187569248637179298497857667701345665429557404316208140727348743599244284431810475169939585261396993229895131338231922772977680924587688875373332556342873117698236552621427854144272835613963492623935483302426143973186711523210656711252545114591164452467439023083829575528615703125606112960611683196","osProfile":{"computerName":"jianyunt2"},"vmId":"35865810-8e95-400a-9b77-7fc73282a8c2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA057hpF8uuqUX8PArtPfM8P4HeI+Wi7p/qIzhcl3UVE9D2VsvsOoZ9buKnS8/+D7KFicD0xAdN1yFT9AkFgiIJVbJYMrjLVeFa2K4Ebr86FDFpBeHOdIhyMvDLZKWBHmk1q9F7bPZEFo5dnOZ4bz3YfeOK681lBTAYArjq6T832hQ994H70SinxtziopZZr3KZLCTm9xV2TNliMXCs7ZQdAzGej79F2IQwmbqwVYV5xwleKgQe1ZA1tpnyU0LyHL4YTb2Z01/WEE/+NSM070YOgIaTYS25qvzsft7pknyG4Y5rULBIDdCFmKXGvb+ibgpTTVrnmBtVN01TQid6MWWuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0a5beda0-0667-4ac5-934e-17166abb209b","name":"release-0a5beda0-0667-4ac5-934e-17166abb209b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9976409a-66dd-42fe-bdf9-bd22ea46b082","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418704130225462286627723119806567978134205042338575510428942819669634096101520314142273357789399243053532263706329529534403280775667544795629770579726986492535750610841020189467409750275010051436795644838936630665662644846310269892945541633818336399665951725966760725960216832279592587349011887714246189409526953248679965844415531742198928485712402796119571996244891694927140899532414421982268189752879587797937160594238225900181123561535917029533","osProfile":{"computerName":"jianyunt2"},"vmId":"7299c86b-2735-43f8-b473-a856e358a5c9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv8kuUbLM6NSDjDngMh+XmLUQNRo1yHE7JL1dLQGU+Pcg1p6pSXwJ2nMO3rLFTLwtqA/ZbNN/1PBy4w7cNlo4SZ93Wrnwdl2fmi0lYDz+CWKJ1QF31AWVczi977UBoVW0IVXvw+mB20mg3hrRVft2hmzG+9ajN+uQFTLwvz9aTbgxflkuhE0YfS5uGCtOTBLDTT/gSSmBY4UcAPC970O/aUyPrH5lSdYKCx6pvg3VIVeFhkRAXf2kGsL1LgcOCu0Srjk9IsmvTqxLS0e7lNR54SSaQbGHrABE+8NFfIY2Ju8cifrxNbytkxQWYjaNJ1UWfZt+BNtoLyvOifeR9Km/VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-181f2630-32e7-4aab-b7c1-630e332ca1a6","name":"release-181f2630-32e7-4aab-b7c1-630e332ca1a6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"464a8869-084a-4d23-9651-26c3b473f238","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418635355572604339832725227773197250983032319018964214997808334691373579625197961283221694095750966263434650424744425211387445166860061715455955581478564860717863320788333034291496512464425648403766632599231888375402999975763379879884659514308511971275861500015634347363858081784231973275563825550582188777128967892173380939529027188640962777417943674445869496971387976441409776","osProfile":{"computerName":"jianyunt2"},"vmId":"129e5eeb-0870-4bc8-ba7e-e2d7857566fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6x5MuqpS66rH8e6DaAvYpccexu/vSsoYDh755iYoTKhvxxHxBCWZv+/NxmzAppzfJ3a0FRKbyk1ed+xM8XPE2y+2ZeBTbKvTeo/G1DwF/fGZNxO3adtk8w6thJuf03K0CN+m1SFDM/BR8QyR4ep1kWqi1ofJPQYDlbNv/41ha3EjZ33goQhL47VbC6iWL5oS48NQTpxq3No8m1iRZmPWOZS3I+tE/eF+rx/0TGWfynraQ6rLCpud93x666QaUMCm5V2Wd1UaVzaRMFkeLDagfgPaXcWl4d55GajuHcj8efDMQYkQNkaOXdd0zhQUt6G8jYDsZhzbdKSh+f32roftSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d0da14e3-7ece-4d32-ae0a-fd441c88a8a5","name":"release-d0da14e3-7ece-4d32-ae0a-fd441c88a8a5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"900fc5f2-bde2-4cb0-bdca-951d979b00d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41834823798698379250865450502001754088593982459497325818385341788652120498394833898757990428094624734967163992669829479379724766567723671295887982403487519462754324769315217038522825422683599127257658344985414282639101356511329417492993988466964969842649464974910756444451376651236391116881556018828559250321773983636641642552535325757490167142595700610684175694172803100199295881642187081965099820736186889293554201379959881568052663758134157117851059107253236890095017","osProfile":{"computerName":"jianyunt2"},"vmId":"4d43696b-06f8-4bb5-891e-b94ba4f49250","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvL6CNJBSnEQEJ9MzV9W+YTqL3S+UgQEEVzwgPuAatuUqm8g+S//xpxbl1cF1Qok/OS0pgRcCVsvW1vQCR5wSH5CA0VKth6dCRnov9LPA3JKf1TL+LPql3+NJe5/1fTJvJN2DncQ9Tir9LMFH7x4UHZGNcMqXGTH4DMHCUzs+L8M//uX031JNeoYro0Wm0FFRP+qOsanrkPdKrQ52cQ2UAkT66DXgp952DLtz53k+zRz0qdmQyNyecfVj2rfdQ5YhbjEwhUr0ayAF4T0dsojIKb1lyiRDPpwCQ8T1/o9808bRgDThhwgoI856rRJunud2WDYkn3LYoUBtPqMzyDo4XwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-528713bf-7dd7-4c25-86d2-91dbcb459bd5","name":"release-528713bf-7dd7-4c25-86d2-91dbcb459bd5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"29474a88-fe4b-4417-aa14-e14ea1617c6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810308568118447253854603976378882271777538108298584633379231160865585916638322412593197027196325988421842974097315782303887133234892698973254636349047879391341445516203519313851765955661718392585784426438743094887257181961079842634566366157379263630174121811821544170261641195522425929811309540518364285942291511125683042937534939558643843673347035789438430884133249113936295188686353060574029254517422878797561738186242","osProfile":{"computerName":"jianyunt2"},"vmId":"659563c5-2b42-4882-a3f9-00256064495a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvxdecJkmOrw5ji6aBVfHrU6HCa6x5rtaDnGCzF8j36jRM9DSbXWaAasyHkrCOtseLIofKwuJwezp2C1hgnQUTAU8tbgSo2C/nBauPdojnnkrwhojkO01Y+C8VhGwPZPynk38NqmQVKWmL1apVkR2/9wADtePFG0E8Nd6aMIrE7/Zmu/FH49BgbWm16P/jswubdqJC8DpmecxdAnI12TuEjUGKZ60uJMbtjjq/XfrvKjysLCFbV6PPs0GCNZu9hNk6MWcriDtm5kDYiHRc6c/z4lcq+UUjQI/WqIaOdzf/CXR9TasrHOHzO9Hq/YqOxo4SSbumC5E41GQLb663biJDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1b7a321a-46db-489b-9115-ebe5692390f9","name":"release-1b7a321a-46db-489b-9115-ebe5692390f9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"926aefa8-c10b-4d59-9991-35c91ce840a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41826749210582577892126137221896124165837564435170624617883607596481591091497610298873377260183424219450874474313703954360018754273168785208312240361601272178287145151243375585398263184908315384701541475304671701607435821639143255827623786541463872372933847710156903986644980967097174349877878978263738894882430559665881964160047851546699206516791822389308694861912745664761555323427","osProfile":{"computerName":"jianyunt2"},"vmId":"628eada0-9268-48cd-b221-d2783a07d2e2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA63eQNbVSDbSlvtzVRfqnXQD1yhhjIlSgKTB+wmmxKHrmX9pdYmwuP2WHqXC+iR/P5R5zDSoBgUf7jkmAuAP1zG7kdoumRlj0LTrsz6mqgwD9WWImoOL/kv1yNOJK8tqiIigyd9ejbi37csFa5SOQ29IzAE77NprdCsTa3otuiiviprwTRa83WT5a8Z0mIeTm5Ap/GuiyOoSMoOFPN4HIOucXgDNjI4zlkrlcHs6hUsMyOF+XrV5RK+LY07lBSINi7GStFbNB+52yY1HjVaReR14ZYVdE08PXeaDn4ZbEpZBSX2vUGKvceMv8D4CVn7nspaoUSF3KlyzRVPYydy/wYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-155ac4ad-f160-460f-9fb2-03c43a5973a2","name":"release-155ac4ad-f160-460f-9fb2-03c43a5973a2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"973a728a-913e-45e2-ab28-60d321e9cf71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418196248642383861681817568200355229548903960889159872956152445143436401282841161482907878962129668748564216696844093105845185444956225552432980562391339813838792963638762298691737567977299863126605226866198340271556257923128219428900424646839265877685327649960351096343745332245011608183945096985267838562798145153075266905940796616698822584001953373713891357277159423023778266634213790048159259715869731506","osProfile":{"computerName":"jianyunt2"},"vmId":"dcfcf7da-e76e-407a-83bd-7f3156761d48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqnT0TnysVhKY+tjwh8u3vectlpA+eBgBZWvXg2F410fJwGYwHTshIoIooefkrne7gCqkybT2zvpOK1x/cdlMCO/tmwqMt9TaQpW5LMtDctTxVh4FtDsqfoBv7vntes7PDlq7xgUiMFY7870EWzyzEN9nzKAVa5ErtEAfeLE+h3sypldV54kZI7cFRr2tP5Hdh5QCjkrD4+UUyt4/EbaxJSuGyvvtb9/y7u+QmNUtUuxL2Ieditp9ejbxvdEqTC4F/eXEprNAZ28sCZ6rlNXFzMc+v66KpkJ7Rs2siQSvCPEhqnC2F53bHP1mScd5xdJU4s04ovUDKunEetqL0zTh9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-131f1fb1-a73f-4b11-ae65-d9ebe2eeb889","name":"release-131f1fb1-a73f-4b11-ae65-d9ebe2eeb889","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"61077239-0356-4cc2-bf39-865ff9819155","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418443957914597718414798089790463163784081287595062333158846332262708698351709400349723352875279182772695451395477242217508212180058624088505280029166884119056680497551941956572022311750599488265389845466277685956915878586794334181269420475119669919367647028224574947848064354498916303271160361446083905128421652884623557779568862052713116566002110763364146649767382095638683927930972854252077726239252","osProfile":{"computerName":"jianyunt2"},"vmId":"92c05f26-9d66-4322-b079-4cdf5231b9ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuFiPigpCOtr5RwUr2i4iiw8HqigY3kNyYz8zzQrx1ZVIf/lGZNIoTFawmXR4JO4KHupyTAVVIlY/JAdyD1d6Pu62br0hHMslR93uf8eyL0qDlYlTfeEge1UDiHcAteHYdT/VAwh6ZnK48p5BtCO1u+6p0MPUj023DdA4Pgl+yHuodyxCRT0ihvfK9yqaSL78AmxABLuMELx6yNK9tYnXTybMNxRlhdFt9jkt+rh5K7JjkSIy1vyhFbv0WhLvW2yQkZXWMVjkhB/i03boUUV5TEqFdTslW3fWJ9qeraKxCwEDcFM3SV8ae8boUWSj0b+kq4CgALSteBZJ1bul8qTfsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7a6c8518-559c-444c-a4b8-91706d1a6e52","name":"release-7a6c8518-559c-444c-a4b8-91706d1a6e52","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c3af4bc4-f083-4f2c-97bf-2051113c6ff3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184789575567926033442218246202336546957231814888694232339340691459201703359021323437839781706201704189975201364976347696164511215087606344427053999517079531481743677699590785319274082853377471360170633385594536837542697856661143695443127963685670281383403633689948332357962514098594035953120782357321985286906935459044957095818259588301700623887302818923919326","osProfile":{"computerName":"jianyunt2"},"vmId":"541d21db-c5f3-47bc-bf79-a3292615e678","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmwmw2EqxBRGXtQ/NlKmkhfEld36af5t9PqXg+8RKoJfkIAij38DHI+3uSeKuFWTRi3GPF+vEgYYR1J6+tSHL0AqOhK20KRjfYjwijGaVoH96IY0UvPtFjsd3IrIFQxd4RG2O53Vcg2DzoBN3HUftWNdjPdsUnUujDW4YQeARiblq4mcLQ1xNUONOJslZkM6c8vEsUzHkKgfOBd7dfoklvfESc5HprFEbqUegNvBsQ3kC0YwuBuQczhjDeX5hf6OnECe5iKonbbi8ShLMq+S5PuMD7F1HS4PmscZinVCdNaNhlwNBqd/5EdEoyhegSqqqpaDYhyLQ0gJ8/PeKIK0cpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1f869445-8762-4ed3-a729-7c6e3550e80a","name":"release-1f869445-8762-4ed3-a729-7c6e3550e80a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3aaa7f49-a15d-48fa-b58e-d0cb9e903ad2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828996178772063288660845325728421775222605848771070991580941658726761352459301993522512669874168603966050425595253619613179541344245963275365472861257508703882037239556468565374795950299422950159495509393725329264657204711111654831769628259204280186398228674718994513980753277670826947367788150753678967554115105299734622844500430379681439734089335114241998568167976611685317925726634553767777879719042882806811612572","osProfile":{"computerName":"jianyunt2"},"vmId":"5a4b8ddb-9fb9-4cde-867e-abd76f4ba156","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr9aSnSRGy95sCWD589+uEjW5xZBWLL1YSO04ty3zgz/gfkgevX8adjh6s1M+YTyQRoFakDo8M0cV+B3fo7YfD178TGcdAHLm8JV5CkXRYFTyRrGnZAc8JmpH0B7N3SjVDQbMkoB8IcthIkO7dhUxy//AszQ84qAj5OvTXiiiiI0C6szgc6XdYgZvQcYvMp1MXUiojfhBwxiDPkq54Vnd7n6FBIM9o4jhCTsccLp3NmLd2qhqqfxqK+eFqOs9s8hAffAHBvsha74DCYbGLccOv9E5DUqfZYWtPjNi+bhlF4n87/TiyWiyh8h1oFS+u34xH6vCzMhNfykSaIF/K948awIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-918f09c4-be74-4453-8096-6670e44a12d1","name":"release-918f09c4-be74-4453-8096-6670e44a12d1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2d847593-2497-40e5-9454-5bc5ee4c78e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186607267166682166392308663915815505505025479272164238352584945875529374791211218699370719247153894395754480398250801706334185585272405189335779997665775593651887182012986058995760051774857171102410877286706222194595114852329036815416739574866725746229925838628448996259946874492701630352432484781119599215487788738949500534507388357264806568210801115195384597558867804042109638857332873543837907979046009147","osProfile":{"computerName":"jianyunt2"},"vmId":"9d604b0b-256e-4b9d-b3fb-b7cd11746531","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtrYCUJFd4AWvs9m8xA+brBQAa77Md5mx+lg8XStwYQr952g7A4xwy+iODkRqBAVKr7FRg1wsmZqJVa2plPzFNremyKnNxL1H1UcYptDw443fZl+qhuyDoEMXse15BRbqEKt9IdyPeDwUpF28FV5na2tkI1J/W1Keqgw5VwEbKR0QsJm1jFYewcP0C4jfZlwXn6uIS25ck9Phm1u00WruhVyCOKPJSHXBFdotMeOc3hgx2wmtfojOEi8RV5SYNNvhe9DWkrvs5DKSl/xirMc8k6YHOxJ8U6Qm74+XyBlJZqfecJNO6mrVco2265tH0eLoY58+3PTrr9+h1KJA7f/cjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-53d79358-5882-4fb6-a178-89d630543b3f","name":"release-53d79358-5882-4fb6-a178-89d630543b3f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a7bfa404-cb6e-4743-9d93-37dbf0df79d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845952441199937596869867635250337767165586612716849441104553221839183991379090529567445749977884793653149882131709576402880184811729481929500798699030269210697636901856659477702299611756883598845009889718924661726961030541372923868411082837723001519305635321917776913599291777482815138139105854653848820642968884456229575175454891789591162564524160596336496426086753635359392426139","osProfile":{"computerName":"jianyunt2"},"vmId":"cdd10b63-3d05-4585-b3a0-689e89a1e51f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvgmtxipnM6Ly1IZKEq8aeSETaz6qa55kbte9qdx2dezboZLMbTPFHrl0ElJJSatpgATMVi8k8Nd1QZxg6ZgE6Rb5bZJc8LGafa8nFP3WZxtor2YLtsG1Lhc5AEE+dGaYL6tColQGB84x1AtyensAZcPyhZZxPn/gZgX75QcUkk6RxDld8aWKNLX1kI62Q0uOLFFcw5/bG+WSUigCHNID8n9C5idzmlzgK9ZNxqfVHVpZY5oZqSPe6f3qUwIOgkM+evo2/Wo4QOvAQEhugNMhI3jMjf+eN3RMWTzviemwTsqcS4vq8qwcWQznzeJb9eSj96n+mDybAAK0XHk0VJ+tSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a95e9099-fba1-44fe-88d5-c0545d71e36d","name":"release-a95e9099-fba1-44fe-88d5-c0545d71e36d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"42678970-5aec-4a92-aa38-abefae802841","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187417312246090673947981496587623336961174710798738083130487560024009324783142775121217405789736601819244606901131988091226220493720063344881986844246852344276270327154912562706582472258564334611192468849873768340640052191379699787388614831782854059388159241859158118816979382129318379660012084136249924439889541840976676401876648633667866613966495433065963113373135894828293784134683","osProfile":{"computerName":"jianyunt2"},"vmId":"ce5e0fd3-5109-4883-bb53-c104c6a6ed40","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxUpmw1AsMTqnu3+NbzunchTcNyv9zgMqWMDN0fD9JPkbL4j5d0UfVxgr+d8UlkvJ3RBEnMJRjKVj7HmYpglGE3H7gN+AMivCL0jPdeN18lc6hDrIw/thNo70KfCgnKWe5P46xHwgqqwKO2lKb/EgYC3+sogkhLe25GyLPQbjGR6gQpq7T6OJC2w0poUTYP1B71+t3cRQYrOK5vZfSo3p8y4LCgRxnjvh9rrJxqULkMg4JkXJvrxTNdZAXrnPyH5jiFWVEQYtECrEVAc0RowsX9T2y6LcCBbi3WxO6uSHfxq5KtqrKYFu0BWnfGaRLTIr9wjG8ChMkFWwCPnTEpnHlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4eeedb14-c4cc-4732-86a1-71c90502b055","name":"release-4eeedb14-c4cc-4732-86a1-71c90502b055","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ffce052a-859a-469e-ab12-2475045252db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188382790129547506624589609326670746498262265794689713036185345014607461530344586298253281534092465789002841267957241446688534295970435963182022055852741347042763959657793175399368956541358795077051331469960766984834798474856853817037186571696790427507737898182560671424935422698625531173782848195005595612790783352173366015511917313126855797014182960","osProfile":{"computerName":"jianyunt2"},"vmId":"22cea0e0-01f4-4bf4-abb6-db32d0713b07","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsYkJM1ZzhRui/1sv0TCnP7cdmjzC59/sy5pgmG0PiY3zgVbbq7sW0CGGc2TGiiFcmOGSzDQsdEBrDo8DOXxj+v196dkOaMr4ABLMUOFguFjPs9p/+hfgiLVUB1qybaDz4XqK2X45bWQuuexs5tqm7cyOypRpg1d0m+bz5Zi9jZMy8W+F6qrvFGbVCJY1WZwlw5g63CPvWox+fRWulIH9cIRq1RUG7iLcGmRRAJnM8CEiYwwab4Lb72SF8VhyNi9grdBk3HVQLy/qhMwM7RwxzzWJEWb+ytGX2lk972mzIFBv539mpdscLtNnrmvo8h9TRyERyOY4t2gdXzjaGqWF1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ead58c41-e76b-48d6-bcfa-74659aa9a0f8","name":"release-ead58c41-e76b-48d6-bcfa-74659aa9a0f8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f61dbc54-fc35-4d9c-98e0-9dc891c0185b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418578648493064348042474477019844922835303932992233274229978738845391515346906015237219184117618432882162094161753762740235941225021073058854253411304300250139467570298163898138657179574758130348407167299063866044512669844637532278353994168170718478546260612301786599336741016921830525225226694768289169130161545136635641901663131597909363229876114452480849769692142018734874217308896958522971918225580899422200597327978271181446452869","osProfile":{"computerName":"jianyunt2"},"vmId":"fdba3e45-d803-48e0-8295-d88e0a2124a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnX31Zor6Z0U6lcCJRElcbUaRsxz9mrkjLySftQMZjFHybfp3DyE7vo8ZipUZwxuwlkBrnGAtcAOcdPfGLtpvSyQ657GmOMG+ZEu69ynKQkYrVVrxCfWouJKFfoyop+aNaQVjm9tkbDVDAXBPVNIO2iFnTdUTwjIgk1eXJ/U0xx6Xf6MDlXLJtkh8Z+BQA3yRfnl2CZPl1oYuWz7/7RU9yVLdmLYjckuVA7ahzjSgLve09hr8O+y89xqbCT9JuKMKs4z8m5dYHZ92xPIj1y5KuuAMFTvgjE/5WqE4ThY6G2VvuIdvLEFBks1hzwBR2Hi5f18SCLSQaQEfRhJgUUXTfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e8ceb163-220a-4f9c-88c9-889c0aac51b2","name":"release-e8ceb163-220a-4f9c-88c9-889c0aac51b2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4ba979aa-05cf-4135-a9a7-bc514e5ce8ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418755217834906407171484369133314528224504620611594703735798606666450949996263610689883383925428988348439004273313432282833662628155061309499541699370249963115025298236764457271131254443678758654814212354884013304924963612726919192736862771652537873708149479030767580675871901423359645386782292035104972475941026131812893828473555373845748029075009766756488339452571686359743596266108803111965025777930667373903383554767904879098419386697","osProfile":{"computerName":"jianyunt2"},"vmId":"af82ac20-bcdf-46fa-afe7-f7287b10f69b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtGr3OIYjLBUkKDaKy6FU0fbuVuwZ6nFE/CIavMjR4neF8JzNJkxZhjlVekbAsqDVyiUhp9Ei0OQsy5QhLExeUIipfmlpwZBcnPEoW3oflAnYj9tjvBA5dqMYDNg0yIDa2PA7K/yU1zd5RD6v2X4kfBB09RUw0IPfIYPEfYLBnkpeixMyBSkfx8RT4unYhrxiNjBrfD4w6ojsG6/WBDQ0MZ22xZnJ4EFIg+7pVx9BapUfZjfJwVz87+ngiz3xazk98DCy/vmpm1ojkuu6UDFXdBcKnxHQjrKAxxnhSolYJTpCEQjkuEnPEzmqayJ3YIxYpcHvyimxGd+bw8jfj7p16QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2de4e5e8-bfd4-47fc-8e70-ef8e37c6ac5f","name":"release-2de4e5e8-bfd4-47fc-8e70-ef8e37c6ac5f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4fe3d457-b9cb-44a8-95a8-5a241a100add","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188449383733624018440842229557257145659396489663227402638820023797461512312134148261676924464417136326001843986326529446654638926828564455107461967783659888624378976538299530528641279664749961824528241014878952404372979677351305286404419435454929155562451894840082681258893583887287878170569959506862970153552926621496946545701261576353088025416172701478239019991989","osProfile":{"computerName":"jianyunt2"},"vmId":"f84a8f40-7f36-4e90-a90b-1b59d9a72a91","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4bvpaM9gOrq+gA1CkeVtrP7XPP+7XU/ImEeemydLquK4E9AbGiOwnMYJZNcy59ONfKmjIIERyhHIBNXQ0CoaPUDvH2kQekcejPqrgihQWfWkxs48v7Q5B8bjsfu3EP5m+01PXUQwvlzbAQTNcLW7BBoSsoh7eT/qq/h1fYdRTV64eJzgHi1dzdiRnMqYTrMbgT+/J26B3o2tV2y9f1ROUsaobEox2AzFuviFCRmiwNj9fwnb9wgkeJ1ytTHRr5uPWY1jaVvLDYP/pzqxoDK01AkXgVTaSxxSdOdN/CZ+cOwsqHuaE2MxK2DMngWyzvVpDCnamLPyZrPy0PPooUP7NwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bb399749-6a2f-4aa7-8339-c7f64a794e50","name":"release-bb399749-6a2f-4aa7-8339-c7f64a794e50","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dd96a89d-9a90-4ef6-898c-8669ec981e8c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418870588528247229537619816851307916522231706991447341947758640283865984131793192369852837657690975581526256416717789869212975296549313855623347815810153489861922782510643473905310306233602838422234944451461717382161912991888213192517261231543868600526112646868595789244613493756833893134549087917678457037441117497818616720577878293620234255619514009746203517216701869811172192184110429280132715531667389643612457160743563930","osProfile":{"computerName":"jianyunt2"},"vmId":"c2dd4ac7-f5c3-4b80-b46f-d0a1eec22ee0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArs8lvO6y0sRn/1+ODLWN4RkFXr+ZdXRecl862j3lGXfPhVkYlOsG85oo1MkXljUnZxT9wJ11T1X8i6KgHvpc04xtD6V8qKylWPHXxMG1PsJO+7QbWPa3flvmMV0DqX70Fz0GPMbW3QhJaSy7ZoO8VxlwsBGAQMplUTdwiO+6V8vN4tIesORMJE18sgpfozejw13zKD1IRGU4hiifA7NF1GuGNI30UbdE7R/fHfHbNoH0E9iffaOtBk3qDPU139RWwzLVFxvTQS+oXdOzNsZ4QVqfMgQGdVOvrTYaO9N2Z6Bk1bpQJyIEkAcgsgVnHoMgV7z5jZdK++6fUj1HH9XjrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a71027b1-9f62-48c7-9a54-06f4903bf003","name":"release-a71027b1-9f62-48c7-9a54-06f4903bf003","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"684c38fc-9ad3-41a6-ba0c-7ab7157ce1d7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186167388561467517997210082441548437865545245548741773892062303622550688977512619192622149562517808814242226526252301229997028284981418633125407025652754300235277125959893231559129359095573550960183233612532544661741476483356661697639033147247959552582516755369722309127077330989921089206388416990770246459894864443053105550346753482445526068476924888429232074965772112688767228292","osProfile":{"computerName":"jianyunt2"},"vmId":"94f9eac3-3c9b-46b5-96c9-c9dce0a1f6bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6qUKEH/rDTF2OhYH9mPI9KVZGbcKbHKNLWbwkhAbd+pUIxJj04p7BZq4Bla676lpRu/IDP64l9PE7kjezwiaiK4zhqeXs1ZOTNv/WD6euEvHFN3cmQm6AulyoDEWpM6lO4IFAVJQLWeg67xf/m8PcZlhsEWWgKKUOPf6nAWZdYoW8rYclCnMYnO2MbrTBfG0Oa0sU3lNaXThRqa4MqpVI6DDkHDdHMpf4jFUFdLOIl1NRybyEvPcXln86iarjRCSz7NudJBETkbo6jUHV6Lzpg7lx1gRLZr+GImj0L1C9zOTm4RlE3Ll+11ajXxa8TpiHosKYzOoXLk25A6UhAGkjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-106bbe00-b4b6-49b3-a6fc-cc332e962ced","name":"release-106bbe00-b4b6-49b3-a6fc-cc332e962ced","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c00f0e01-ae83-4c34-a29d-613a8f06622c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186855528341159418794190194639771522124616776356066272293743757015843594226437873773148469593606420256093619725033029886735467522762772027696325566766354998558266563403293811276336750647929573761622800949339475788744898246940571114806297221842210996250932457184892188566256522747153692186287965575444077636122664962128600951881850692197437739876847809031896","osProfile":{"computerName":"jianyunt2"},"vmId":"9dcdc72c-64a3-40ca-9c6a-d08e82b4e2f5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsSjzX9OwRkA+GKTtg3O4zcdd5jWte6vVBNXCPEzrmSmUivrMz6TjPTr5qUiAizBa8H9uSaU2ZDXLrQ4E0YDSmIrWLa/orTX2yXFfLwuhp8+xhzP6wwlADTUWBqizjl/J5haOqIwW+uo9sr/FW1ZIjAyEfbo2fDGCR/vNjDQmn9KWVE75W78PG+ZhnGTIPMDOVgV3PjmQM8/OK3h4aEKvcxZrJt1QATFphCLF2zJ/35qunz8gaD9uomTcmx1B7TPp6r9x9/CI67eCZbrBRpQvswQsdzOGtt6hUUeK3d4qsrh8oesaddQ4MBgF7cxwUo9R4DJNBtk30tHUL1E9LP6TpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6b8dd5c2-89fc-4208-89c2-872ea79cc517","name":"release-6b8dd5c2-89fc-4208-89c2-872ea79cc517","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7dfe0831-223d-4fe3-9d2d-909c6281ef34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418776560657262869733978723646971536380679265187156468641022837148287424651162737584726199155947314022883155822116383950744929746566055918933552127236087229067399340523888597347669389944077475300540137094712724033113835464718009425874379074786424511198790195257647498207678514140807465829612753943702856105389942824547948403809523499353398543325737099910104050881564264461887104445276466786558938388210772964234454","osProfile":{"computerName":"jianyunt2"},"vmId":"eda84fac-fc5e-4f71-8500-ba948a7b5876","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsPul/pLmY/YxSAYKEN8rincatntGa2B3ybUSLUrRy8fWxnDo+K4p4eQRRaerCHVkDGLHpjC8WWOIsLxU3y++XygXyp6enHGz9z2Y3Fd5d7D30ctEV7xeQTLEVQCzLzejkL6VaR6TFExHW5rE/3CvR0oDLogX2jQgEwcR5Fjk8rtJT5HMsyNDOKbIKwigEiBEdkDx4CimgAUDy4Px3eTJAYpDTdu4MTgKwCQn1LtvJTCoR1pZEyQiMMJPQPXFwE8D7RPI/iho5l9IE50F8YVz1Nd5ibSSyfOHo98SPWk7cQ5FnN0jyEVXy3mnmikSmmAP4ndImA666OciKk22gl5beQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-506c1612-783d-4367-b336-3475ee3f26a0","name":"release-506c1612-783d-4367-b336-3475ee3f26a0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a7e13509-9a63-4ad1-b5a1-cd1289b077fd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186823492252565205904521791155315445845878323816327630251059608152262955409134572188408041322477203252216253023822621650763905345232622376438602544975964901338873327868199118283100232079494681992343452069821730123377663245847434611833891108308510587296890344821652665760606741669763548508565311475055562698869842501453237211970632643259533400437094949527098113703967416077016146534469012","osProfile":{"computerName":"jianyunt2"},"vmId":"cb904f84-d483-4454-bfe2-7a9de39ccf68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAurKUfcg+vrUp6dYezjyZZJ0znlx609sv4l3Ci7UE3g2P4JW07ro6hK+frzqHTidbPrr3hV/nP17OWGj3vZoo0+/uHdkqj6g8v6m0oA5pKpXHJTBNd47yaJk4yzMn9K2VlKQ41gePlYD3vXlsltqubQCMl+6GwR+Dn+Qrf+a8GmXgqegSv1Vhk7E4I7gYUD14XeNxglm7yqBU/67lJvUt2HYccQg0w+x5rMSXQh6yCb6/PRKS/vGceN6JVmnoPSet+MSsMAQPelY94gq6luejPZUFYkwdyXKK4rfVseNkmBopv2ulwteWrdUxsuIduIHisJ6jz0MVDgUvTBYTfTtqswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b029b6c3-3fa7-4cdc-bf62-9bc4f6e20e49","name":"release-b029b6c3-3fa7-4cdc-bf62-9bc4f6e20e49","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9d4dfd82-d155-4749-879b-f430cef22f79","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185445539272546463273879426160955292804159389072947872250327355456333879436602505236637120968826325765746159540846555518095579357139080603648306040182079709318383753805981432662438291430432797540977178642502394275345737191250244971179562031842889331595796786376902425284916208043445597725940257646544961766233206949383179886402852432346857170358197712733379126349493376236115807224442018514891767965289754271608436973366982215729397823344351","osProfile":{"computerName":"jianyunt2"},"vmId":"024846bc-53f8-4451-9b17-92bb522c2ae6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvClwlp0Ca9UXknqWYMUBLuvqs3iHuO5I2RlL6Tp/c7K4f5JR7TQEJbbhaeV5AN4u3u1nJqQivaAwz2HoDe0LKETioGISZi5FfFtuLoE8nVexdi2P0lvaqE/bGj3U+2Fa9GwQKqwneDTwy2Yrbo+WaplGqRWkzs0FoyQc/8kQX2KPyjE2Bu5Yibbe8klqOVGsIwOaOq2DfnxGbkNLFgqZmB0y853DL8SSZxkemLRlNCdJRCLBJ8lbKPcYlAUbvrl+XuMw/epIKS1HD2yKVR4XY4RiX6fC/xeWCCnnJXY5XOf3QBT/4+/9ObvCM7x38yQCvfZoQ62mGevB5khPwOY1BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-41e1256d-5fe5-4316-9e62-d35ee1479ab8","name":"release-41e1256d-5fe5-4316-9e62-d35ee1479ab8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bd3dc2a7-2f4d-4f2d-b1e1-597ff48f122c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189856252190341236730576840503046644898571584394893268168394826354851466598664998951311310124686972212985995885410377936294005259618713068789518604474409261951742173406465922485169224368888053405536351794155598104087658556867064356459246555953804582546897316064204380457459451443099324586622077223520391475500910381881320280744933575870126446583366614038971369467680117823270556804605376638790084181343523179594147734418630470233619109","osProfile":{"computerName":"jianyunt2"},"vmId":"a66c2ec3-36b3-4a12-a160-3211291f265c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwwgtZZVle7P+lFqejy9PXS1vixJDgeY/vGPBWwrX/MZbn0rpEWTGlvDKiMKwZB1sAiDDaMakU/r9mPjaQR3JRy8nzUCc+xn0GrNV4qPXNyP9Jk7F6AFZTgkjGkkzYlWNXcXhyKXWR3lAVdVe5DCO1JB+ALlGBI4Vdv7gJRTQPuswHxAzlndyORX5H5/fMKlVQlzyT66hmickWGFthJiHWMUFvF3wMIYkSOABJPVwyrByFaj0mPuhiatCOdc5c3frrQyrZimHUzA7H0KQaJbTUHH7ljuq7APinCYmW5ig3CBmCKPM61QNN07U7BE5bNbVelI2vY0PbPHBeML9FByonwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-88784899-fcef-431a-afe9-98227194a7f9","name":"release-88784899-fcef-431a-afe9-98227194a7f9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04ad6e6e-679d-4994-ad42-0cf59e48cdca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188643209153485971879047879221412723955566848333578256535361395516280125769329131741259508098401651879949124537248340698233532885451709855139122353504341351309808459998173189510372345379365745116255566477646393324338466544315756637464640889316378380925275226689094937939680913132519180574360379268675692332526852850334696313727602135428866267510211823458586991127701437544698348946971730167633377529599540456531914639199823513170","osProfile":{"computerName":"jianyunt2"},"vmId":"86cd8ae1-a99b-43df-9f11-6cf508b79bcd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvT9OoDqw0jW3vWGHgL1WNOGlXkDf5rgfEzgHdusG8oOFsLZox+v0n9xRYcw2fqT5/m61u4GkZLBvvQDI9FjWBmXhcw1oOjnjo5gPzsS5TB/N7LTXzqfK+PsrcSinnHYQq3f/XtK8blHnfdW651uVNsnPeCDy35HWAnF8By9IhJuQNsubDTQtY2JCsBbTDNnqUB6mekkiIkoH2IWdjaQ5knyZui9ZqXBP5SQZjCy3xBJuty/hoPCfW0ttkDas+M4H4u6Q2GcVqZVdRKeDMmJhyOxifAjFye8ZJ/n5bJx19X+IiFLn9V3dzxEUTIWgq2H4SjZh5eunOtTQGv/Ld9A8CQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ccd694f3-a586-45f3-bd45-3fbd476dea55","name":"release-ccd694f3-a586-45f3-bd45-3fbd476dea55","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dd259d81-cde4-4011-807b-46e15b919ab6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418833757695438808047426796816117651458144578198158183403255389411149172277908841113409881383568412024228350743693035623925546783270319895950377455532727336462771513344356535306331791822382419125700785348972648590826461867965993626721451353937562049400848490447656465666811489375471829511352356357782717844926650426081486786649561332613784795836","osProfile":{"computerName":"jianyunt2"},"vmId":"7f47b663-bac4-4ae1-817f-549f09ad7390","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4VKJSsMmTNdO6qXNS41auZi1EczgS3xCL0RWv58xl7pTWc1OYQ6RdKA+N8TGImmGpySEcRE4UNVVwItYfG3uVpzA+WPZ3n4vAOjYYvveRP8jI0brzBKzSmnerFwWQBQokgpyTphWJ1AXlyA+YFhxSQQCz0iSzu6xGwu3q/UXh7fZ3ppsloQ60SkHXC30Ayd/k1h/wIwznnp09WM8p/CSXJN/d265+RAvjCG3iAAsm+5MZZ16210uQDwO8Tcn/q9ZA/ZWvqtFjU9f9nF2lNGee9QmG8XKcU06+KXaD5P8NMjkTYLCDoYHJMTRyFYLGc0kft25TaNZd269yDuQwLlL/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-433cd41d-05a0-463c-b374-be2a22b1aab4","name":"release-433cd41d-05a0-463c-b374-be2a22b1aab4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cded71d8-a96c-4816-9110-95e01ccf356a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189481694545552627287991941658659760534438344771964122126397429678336798389753140074940341314142252386264655541377501613079248966763445154890559280106125903230714075787492689667212933437628803976081914897613860074429775536725957737242581268534413828963356159517782674242317228360420801367961128652232753899887274564144682717951690170185869726093852682444045650578351205299748486804565734764091447341360432779360410488034","osProfile":{"computerName":"jianyunt2"},"vmId":"340d8ea6-384d-4ce5-929e-30a3fbc4472d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA03bzBrCBexQlL+K3QeUDulKPlBM/7qei9CF9DbaKM3g5PKmBxbCXsxLFzzdt+J66VCPqYFpPTj+M+ZVIx1P1eNG4zN2XnNcpIsw2cfhdYcws3EjgE/h9KTp0YdiLhCg+i1v3pQbEOJ4Xi2WZZgOLDJMksdrpzeui/KDDBqVepUO5+zKkFODewW4jGgSp+sCSxS2Zk9BqFbjnhWMblRxHkGTIXXsvBwG8eo455inNzOTYHZZEh4BhEDymejOmi01GLoPDV4+G6IOn1YsVZyI6h0jt99om6nhtLVa5wP2FinUpb5v6msWlLfAHTInQ5sWkaqSwJWMU+/1D9aMee2k6NQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-10fb9ebb-fde8-4165-bf2b-51d5299de681","name":"release-10fb9ebb-fde8-4165-bf2b-51d5299de681","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"92420a7d-3dc9-4fb5-be58-e58b65572e48","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418333675894068303443249869315475494261570854532210964326694688797633638066911375306713459863552677273018565308197185755134473938373630471751203687115353873033236531679045599852597467934212346300462159298462285287478341747210315453263485226204457933467945032710130925489047787426471342516845957917386867241196689102331371253862559614255156242074489418864453822310665541331062122916657338660815066208","osProfile":{"computerName":"jianyunt2"},"vmId":"b02ceade-9cee-475c-87fe-502f6cefe417","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2BY1PnCXyDGR6aXrT+bnmKtTY/FLwuoRB6ByDPUtBG3GtAevvKZDcsFChccAXcOrEZpPwpZ0egyRJMig5Zs0K2HyHr2aDwPHDM0O0l9zJIvD0Zaytc0URrlR8/3tu0RjBxxm6xli98D0qAk4BeUS8+N8pYBFw8QxuiTwZAf2MtA1DEB/vlQughoAJyow2xB6DP8zJTkzWALMxdUNgqNhIC3AqeaG47cTgXaE53+EvLnnrKFsrtV1gy88I8gPdqTnqAD48LBv69XBYoSJAbbDYBG8YV+pbi17ssG31noiYloM2OtgmdSKoDm5yLKMPVUts0bbjYpChg3R7aFvRdy1+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-05853b63-fd10-4bda-9726-afc5b27796f3","name":"release-05853b63-fd10-4bda-9726-afc5b27796f3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"45833424-b75d-4fb4-9852-0e4ab6f6da20","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418177673294858342764592826327355200528461290439238969632892044899556299584511144924243380491947019764599246473405769150565476677657199246367293655407012907665117250536095940227909944493293398046627844610284316191152453470557082690775424795371656051124132820426913682388590446337545541175472179917633187218945390756038811759134297714660944224731741879669155045905729635795975028289678377449435792831094289011737262188785448974975420","osProfile":{"computerName":"jianyunt2"},"vmId":"b78ece69-7d79-428b-9a7f-ab2bee40e649","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApDCI5uwtb+8pPQfgrhEmmJMGl3udCXegPLgvjHfPZJCKhkwnSvCu2K+LkjxyAtSY0+A494SVti3jU7GBPeQt2dFyh31FcKqSasaa/7S6d+/+lfDOzL2FWK9f3ZwzJRnk0e7CHPnj7vv7ndrHRUoaMy3VJgq5+INuSUusI1cqRKX4nGl2iG2WwiTCDvJZVJqFbjQcE/u5SEzOK9Kq3yEYT3Mis1D9VCvTZJMGPjxjbuSiZf2R2iu83zZj7UTYJKEu/56gifufJgJykEz5NNZgs8f4RJkelwfEFduA6Ty82gPc8dVDeQg2BtgdK4Q8lrAkl6E2rc5f8w43+HhM0+ZS+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6efe84a1-510b-4a59-9b7e-c22c82108eae","name":"release-6efe84a1-510b-4a59-9b7e-c22c82108eae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0b56bcfb-6f16-44df-8b79-faa38440ec22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825598383539943233123956774897603911897419722319621859917919171365315637934642624936759081160563506261730811932927459456959591405288442072953685724278202635017726946973430483702643979867953818835565287599981243578386863546509327349512096941429684454819343556889821366787276638193054793622925497191469373267172948642175257235688474733627816778849357665665594777091947687935826155681811644423152996949162527706","osProfile":{"computerName":"jianyunt2"},"vmId":"48d5fc65-b6f4-4c88-8d55-adce02a621a0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAquHJF1mZevu3/CN744JgVfjPJ8Nxw0nM7IKRxF47kE2S1VB1wEliVl+2nkvtlgPqZLMSfRKhz69+thzx8dosyWOyakjNpbh0MPoq+vQxCqa3A1hGB6foG+vVHonWRomwWXRCm9QDLAqS55Mzbn05pZtQ9nA6EmBTNQh5v9BR6BYdVqgX/eXDUu88imdDE9dQMsAtRXP8XvbCV0TejgR0+ueaXX0rKiNnZjCIKg+A4T/C904+S7/naDPYYDNE945RikGGDIxZ2D7NNmal9qj86cCZ046YgVJX0JuinH29PN0ZCUWSVYnts/JYLFuHi328a1rNwCJcNWBh4IO4/2Wn/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7eedd4a6-8004-414f-8527-fd5fa4144cec","name":"release-7eedd4a6-8004-414f-8527-fd5fa4144cec","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b78bca0f-e628-4584-b806-98ff48a581b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41874649594134136649307571118256716473676646785331160247625885318629042274121841835361165613242775321836624456132601738364214607607673961059715201165651297118396667085757162488852208895627622424889640085848242696549761431896206170510638073592723745446423651743377239880097711328875229739894539638238887969706950122373982827679352380324250252146028408884575924554473644089166800309444132738431728691920","osProfile":{"computerName":"jianyunt2"},"vmId":"89480d4b-0c00-4c9f-8978-9a073fc4a0d2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxDWA2K4r8BoK/PU447fogVp5UocfSZGiRU7FzQN3XJCXOk7HByxqcoFQEsrgyHiPFJHOVAcs4MDle+a2eUT8fnULA1yvLPnbVLKEGvFQQLjdr0jb8QWFa0Trgr9mh5o6tiFBQSyiJp7xYtPExvRmbOoHKkanAi82zEF1Mgq3QnQnwENqtSS2h+oeJLGkWr/oPTE8xHJ8bATYUYanCR6IiL8y7XmsP9WIvDkM/thzqmc6JmaUot+cMBN0gWlbQ/GQvyzc8KdZU9GBO1i2GhulizLNk4GZFNaxaUVw18/y8JYhDuFhMwG4LsEbhAZswx5vkz0gkH2vYOufthqZPE5dpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-223b002e-a202-4582-8ad6-2ecf42d32830","name":"release-223b002e-a202-4582-8ad6-2ecf42d32830","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ef868438-c966-4c86-ab52-309411a97de5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41887416319377270553485577814296863566652193535825238070327750373696624728027621240569819747333332533394754268966483715504864963767182721143904341183125862067522270865340836113464328461515254409362638335579856630267196999610812482026216460943436803864577530278927296418860685316140644157368979256373877125895901366648921243147761340541601789088762840972192946798558230208239322339576196915234546788322692027143276464179","osProfile":{"computerName":"jianyunt2"},"vmId":"865e2155-5026-4332-b8fe-35e6e5b47672","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzfqKI9cGYca6gLSjzBSLyXc/3wSgVJpETe5M2zKWf51uhJewr1Lf1DqMu4Mh5aiAixmQvXRRzNPVr+x9l5rmvl2xQ3dLzv1fZwkY4naHSucNgGlmb55nFd/0HXHM0a+ps0to2TH/NhexFQZhLz1RJXXrRNGOMvnWvrVriXgGSWa6VWxYq8OMt/oM/HwwtRLejd8juIILfFHxpaL/tbTnDZfWnzaIt9D2IvKNGQ91Dzd4D5MDsZQ2mUyolwnNE0N2rR0Dt/oPuixXzgO+J4XB8s42y7XNiajTzXuyB5pjqQbLapqkPKb1GwU5g4A3Qrprwsc3Cqut2ZByJmph8xIMawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b04be34d-9865-4e59-bf7d-b65b0bb39dfb","name":"release-b04be34d-9865-4e59-bf7d-b65b0bb39dfb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c1a4993b-13c1-485f-a92b-054b89db5474","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418236781040061602962462067516642118657896443474903124140236513427379039811280706561435762817772208895001165915452424838689611233670573843208970917494186455580125032617187859328135439017335428706826955705144439084866186093638836261089784751382162404520594357960775280708755393242248234003237062123528446637152692955932057761224775937191270846777029764979654212635391942338886295822912567981476331702224177917399290333","osProfile":{"computerName":"jianyunt2"},"vmId":"be28c1b5-d57e-473a-a3f3-6ffeead45d2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAte8GvUmpsTUg+cOIFleOFrDeDv25pTW9dhGdaWGxHYYTSAzcpMfl39uNgib9yADVDginpPkNk+kWa0xqGHSCqEQEnyRns6r8c5UvhpvOdVyuvTsPX4LkPWZ1sF+d89Gr1M4BPB9wmeoNQ+Dv0gbCm17DEYPGOa0e67+ip7KuiXfUs1135IDkLqkxghWK5NRY1MUB5Nl+UmcULCi5gdoKa8b3z9E7+aCStVJRsTJ8paI6k/qMYfrfLIgu3eP4xQI09Il5T52LeiCtwdAavf5I+GFnSuo0qysbjXCrUJ2SuyU2RvY8ZnkvpvaET5has/TnQUZq5bkQVyPTrVOk6WL+IwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-786ca226-2b90-4d7e-89a4-7fdabd540896","name":"release-786ca226-2b90-4d7e-89a4-7fdabd540896","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1297b44d-c7b8-4336-a488-d9e70aad3c34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418582047222602148342734060450629347040710338594371723968028916918075653774065590339925998292963334079212698289339332659829252548752334581623349084374318146955225731166485765169585208303921626976863884110703857734779671921135678312930356237579175381565014546223335731310467838281421120986379551563440528806298722829009877126981706447194385190913734848411853141402727430633176752447098268099340740815296962883136415859626876456805187125944459248986471","osProfile":{"computerName":"jianyunt2"},"vmId":"d0907cea-ed25-40d0-9033-284229045a0d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDbbIqh/GmmpKbWl/FvfcLKwSYz/a7YaeMrx7CSVBMit/9K/4S1umrmSru1SIIKRgx8WrsaJIcq+Os9PqpZu7tYvAvkB4r/Lz2edSHXtfjvBZHXd+YB0M1sDGEhdRvZPXgX7UkYlH1XHILA08dPA5Jq8SFclxDp7t1DinnveGCWBxBsMhJS+D/Awg9Tc1/nGrxIKIAxhg1WuoQ9xLVJjfxLoJ5QDI4Qyg1GyZY1k/l/n0UyLEINzM6W1EeNsxNMzFJmdkrQquzENfO6hk3x3Bpll4LZASn3VsdfquRjm2vBR2UBxbPSf5h0/bwdyroqrE5jrV6HMeGRsxnfPJni4iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-089977a3-13f5-49c9-940a-eeb37cc8bf46","name":"release-089977a3-13f5-49c9-940a-eeb37cc8bf46","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"830d5f1f-1cc6-437c-918c-1b60b78d0c97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418404394860384516527741411864639545961009375959864715689417688132372667111655317702139329479892198203361651467699256892494862770901939502079236629246381979093378830100890053322745576469124335156913557942178557652716335105200363554120386268766661508931208079825823743340222623098059086373591428973471668636228962616868572581889933364667548148513578092597339576371760167346788695327844042755553793927296102420653946052427999662351364","osProfile":{"computerName":"jianyunt2"},"vmId":"bfdb3c61-8a22-4757-8cf5-9149c6763280","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAteADpp2+zgrH0GAiSsqVRQKd+ZkiazPhJQ2ZuWMA7XSOwHFFmHa7FEUsnihAHt8qAF88xfjenXr6D0bD+YiHtaTsl1ifbidodisFqMi9G9Am6kzvc9lBT1idwYVacneE0qJPKwgLkiW1yOzTX7tEKuvW/fSmrqdtu456FY3BaVy5c2/UqR72bDB3YRdm/4KmvYIBvBYdFr4DAbSDPL/1AUeOmkR6iDrrjIPinxkUCLVsZSH94RZtQ3wu6Qpla5UcyWN6/ZNl034nXXfPPktLaI5mgv8MQm88ov9D6Fw+x6RjqPVx4kLWCmJJVlV0Up2a8wiOvP0DF4AhNUJJxJfkuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2a9e9efe-58e6-435b-82b6-115d6c0ae83e","name":"release-2a9e9efe-58e6-435b-82b6-115d6c0ae83e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1afd41b3-2e80-4598-8835-4a0a1f6f3f62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183655700816971474102615835922375489198608917065972563120198071503709399395234904921813551445515735182086334611728507097818111208456791197298655562987441192949084998637467157132261953779431930453938043747736732985489860933243634351808923419842118998902395994087724522395330658343675392274317782144542234343333776227535712140996980679848271728356728331558322165489504749404959631414331206885360043991339","osProfile":{"computerName":"jianyunt2"},"vmId":"640b9682-b2c7-4e9c-816d-96696c5f088f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvBIbMMsy8KcFQa4xbSu/Fkr0F7sopytgoBGHl/hGiKzHeusiRHnZpAlja07dbhhb3GVRLQjqEl/xKlDjhGzNSVWULHbYnr4JxabqipF7Uwdl4KsENq1G0A39NY89vDedDIdtXYLK04EBmATO1YIZkwcte5c0LhZd8UOMpoTVeWhlr4t2g/XtOfClDVIPm4cQEFvB5RjT+MLRd63EdQnoJfLaRNZWXqFAm+7NvmCC+scGwcSzc144gYNkCd379oukAfC1F0jqCGDLZQ606T8TkoIHHhE398uyOkmCDfhSqvsUCF6HPpOdnfA1QGh7Vii/ZW+qFcfs8ThMtjmFtOZfXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e35978a2-a798-47cc-8b79-957089ae00b4","name":"release-e35978a2-a798-47cc-8b79-957089ae00b4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9e83170a-d9a1-49ae-8f03-97a67cd3a95e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418570371282501316551855705439815221847460443016723320181292441246773201118434636166788216841766863742920964333699775841149376273360151422446351332279257229941329009347119162348544307830632753895604616038303581594671105151146874158158952554825307626579644033800871261960624511724925875778389402497912824184153553238722712172575257719761464843609788069928538619291005905986198855343851659744843","osProfile":{"computerName":"jianyunt2"},"vmId":"69f78b25-a312-4bda-9d8f-2caab01c0d04","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7PR5kZ0VBWeX40BZ+DZT2f1XKdSMvhsXnCXugGXGUlvJPbE5Cx3u6B+dfnX9+xH/UzsNsVDPm2wtjUITb9tCUNEyA907pL+BUvyqCiXUXV2ncZSjrD66uVEInhhR8mZgCnYI/6VVaBrNIjbRHDp/jWhmDvJPiJhaqKb7zt/smQFlLGGWjOYYzHYP5K+qL61edklpruiJcEAYi1HfzBS3UqZc4t+szYSX/FoZfSxZUaBQUWtjMi7p9hTVRtgnIPy193FLal8Mi91p9nST5861nE0WRTs0I52MMW7syJKG44KIafoDuEsHAJFO9GlL3ECR05VB/39aBmRpUe9Pi0W3mwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-848d31a6-86b4-4c30-b192-1b48b10ec766","name":"release-848d31a6-86b4-4c30-b192-1b48b10ec766","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"540619d8-1d56-405c-8efa-20b40b47976d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418611170634731929866414045758677386360862248298939362138049121768904392567805652322398037397997656752034444268481058118359849199981568693361951244663224459641751331594378332726676143999951237535140192630379610903815162236970935483684378865074192612358555504782334490374304576096999211223845132371996234214524897795373328907950683782700478568728640224467206588798133898024868140101528456991560527619947802747991679237156","osProfile":{"computerName":"jianyunt2"},"vmId":"2f2f0372-1cad-498d-a122-5d53cb3c8a24","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuyK/GLMyFiTJzPbON3yMBUHt5z5Rz619zFyN44rb/d/7vOKk0zO5yqtLoynJ5pWA/CaXAjGcEARbAHP5jYn3vl2iaCt5tn7HiPM2sL1vf6rLL+WLlKPSFo+ENkSm1UMLUeDo9682XdRVu8RxeHzG9TIWPh1vnvvKrt5xiwGY0lptSlwAyXhyRGd0zY3eSZvOlzWqt+6GaKpT7MAdYAAxpfVQH28q8LGgOMpeG5vI/bqLzuMwxTwJAGpeXfwqby32Ahhgl4B3Xj944a6K+0dDDVUoRilzrZ1OEwws4hBVVjlGZ6vhjAzuSdiD6qx1EnPvV/9T+MaG0LRGPniyNYSnzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d182989d-b076-4c73-aabf-ed1e2e1d6726","name":"release-d182989d-b076-4c73-aabf-ed1e2e1d6726","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"943b1fa2-868d-451a-ad3b-c5a7a9f4a5bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418975578152499239573928383342820022224629469686802481823877493487337959669584711848609598018794090142243857844636324353375047429040955416773463225993271915620196404406131904051665151712306416432123559720445535224867659943592940379537218565191925570936005661311991128795466178169421973204876642849993541738210281805687629845156664308587102417275733377802151832328522387","osProfile":{"computerName":"jianyunt2"},"vmId":"d7520201-a443-4fea-83b3-cb5061355c1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtEyFqReqjUCHqFBrnX00YlH3oOfZnMNgax8G5+EMvEwA+5lCRKW5aZ0duL9bmz5aE7AEb0LmXOeNrcKn8VlIq/pB8mB3iK9EP+nTZIW/EkCwFeQ7QVBfkJwVbjz61WSPzuEwmNMlE1ryZ4eEP8lK0KF9KTIyEOk+C+ZnjjWXrpGDNkkiaGLqVNvq+yeqv6255auE18ABx34DWaEkyOMAd2WzITYD6uGDypNPR+Hsw/get5I1PJZrx8WBABpEhlsY90RE1s7nZeS9UjPSe4nfdTOIjfDeBWKVFBghcGDDJsLOwbMYTTjBIRf3eLtbsqeOZqIyPTW2KxkCIbTVC8K6lwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-eb2ecd5a-95e2-4082-ba0c-8c6458336c3a","name":"release-eb2ecd5a-95e2-4082-ba0c-8c6458336c3a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5e31ccf9-fafa-47ce-a733-b99e647f4bf9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819489683729228252307360426403052159578555905148075167844987057141581615770164587942715628365431578079107983247780002997317879281013126152470609106133371225734497276650439578523913577797307390955282348781804432886529693416618823824912416616944824687328898456338248952660759637191407386184437136497620511391493065310691820781652366544592544643307122686690204464","osProfile":{"computerName":"jianyunt2"},"vmId":"f5be8191-ebdd-40aa-96db-7310dd8c894a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3OVt4XJkTEPiwCK2spDUec7mzT1snKQswaHxMCEPbiEOyadc/IRqX1yWcoej66DYmVWKcFzgHdAYHO2UEIdaaA1/EDYteerz2NaNXGBJrT/eJhTvukQ5c2A0wMp1w4dxncNbwceM3wB1N5wG2CPjCOxFn7II4JD7s62RabUftUw8xSs0Ep6o+oIciH5gxF72RpecmfVjkg6MnSuCIQ7gl4iBRpvxggOrZsUznenHJ0mJy4TWxkl+oWNGeVbDL4LK9wQyEsv2NWcvRn7P3oAHKJEh3frYLdxcGMOB60vUh9v2SPfdL3g9jMm2c75cKnmCYC/J6FtjHJjiseV5SH4tiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1811874f-1b20-424b-a5a3-d514b38bf3a5","name":"release-1811874f-1b20-424b-a5a3-d514b38bf3a5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6d27e4e7-1c97-45b7-8a8a-9b24d4339712","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184437780120026112838230297653201892750973163591732614873985069125349976086721448613327533194963399786706636539555291422474636556196805491941933230359234681438101491445588719955619354111264791792062494199940067835270855896321930976461940492716967353303038283628210768521307544945094852235054185759142734888054851822058292445833469917816919220584693160641835082552","osProfile":{"computerName":"jianyunt2"},"vmId":"7a59341c-32b7-44ae-85a2-aa01bed9c896","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3pTxdH0JUPpQTlGWIOAPn3k1VK1ZitvlqAOS12+nGOFQLxBO8QpdAupgRwqzODdgJaG3sNsqWqraFxaBpGQN/tojY4ql46wP+wnxW5g9wYbfOcNCMhH1o8vmZ++uTYJMa2wwEri3S1H7DnQQW0aT0UPot8zcBBztSlhALNCR1fMS8jSb8UHNLAOe1Hkmw4WrdEgWXgIwZzrAtQHtq4NfmwkuwIjUR0bift8PI9lYd6uGbnyZO8EP20R4JhTlEHUToPFipAC0dYEDh5jcZvEVAFAa+J6oUBAad4RD/zMQ+5zcoCbdMIZGYHpbmCDFHhhJ23JxDKnkxdusmFBMkGpzKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5d76db29-fec5-4175-8c02-1dfabcb52b48","name":"release-5d76db29-fec5-4175-8c02-1dfabcb52b48","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9ba12779-4283-4f34-9464-b12359227294","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418889991821728485539544548398838638576652984451654914500219436644479220782391586946830842382461376238473361921751128320939364317627617514944336542667852984739052052759019721304403496111759867347611719878764773509789766573896281437481926469342291291252450165642956822144478234728832435560292124803171356489422331681234738493938111906803091493149326529578887329332202220691710309460911633187221680757905305457393184147798966629213128195","osProfile":{"computerName":"jianyunt2"},"vmId":"4eeadcee-3c41-493f-925a-31eec4b08656","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ZPuL2fMGQ08DqdXdD/Oi83tFE20BLJd7Sm/fkQaIpGN6m2LcYbeY+lP1I+6eKaV5RyWWmKeijhEmwEZWqYJinzelkFFWA4v47JxGbUyMKkYlf7y8Rs833bjzxbPgpzkKls14OE6aYNQbGy2vFaKJr26RpYtxXz6FaaeXKUwRQZBYisLdn5/WdvyiU3lnJr1+QOx4CJJszaAxJM52u5UlLhpQwsITH3pkLsbH8kwncbzNJjnGAamY9sh0Mb1NDAuSgaaAkkvx0y5Ymy3hd8/VtttKZkriRFEe4hvbGOUpYrCFoXQ6AuplGxzTYOCtYCdEu3wyvajErDqX9wZ3pc1IQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-04ac0933-2eda-410b-a0d6-83e48ddcaa58","name":"release-04ac0933-2eda-410b-a0d6-83e48ddcaa58","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b5ac8cd8-120c-450a-8f35-fdbe0c81f3c8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873078959498474695038368658201262408100819071301022755054655638927472063330775012790687459178753749054419671146892452382642157581730338997565174118848512976409624851078537123378976051582356636688516814976735672833231015851609252749286227329627067759024935789025461553948987963446082189497627771168840988784851384381508369491175054656270759233320952762904810667189037329","osProfile":{"computerName":"jianyunt2"},"vmId":"ac74c63f-c585-42e1-bfaf-56c887e3aa46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtJIDl3uJtk2MOXLWauQ+rPW//0/xhfAQYwBBJsN1oPBKe3F++Xj/g8tY2tobCNeKekU7E/PT7Ssq3Ua+KI5W9VQ7R6QO5Qx/j7Su5MiBH9/kE1h0DM4Czrr6Uz/gVraxq4eE4b98PrfvhozVWkWgZejX+xbl70S+sBG9UlimEDcdhZvgslXUjYoTkw/p7jdyyEEfXbBLyFOdWgzFW5I3A0710ByB8EdXrEDCvhaxyBSdnD4zsDTVb0o5NBKOU5nMw4PRRB4JkKpQenagPL8nyZp6yf/vw+UHM9wzoxNkJfx44r71LIToIIHZu7VzzPFwlgfYQk70krALgUcQ3n+XtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ca106e31-54e2-40af-840b-1d4ec6288926","name":"release-ca106e31-54e2-40af-840b-1d4ec6288926","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"550ea5cb-b3b4-4b70-ac34-c7d92b84d7b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418861690027458446998891235744915783946739202026263643369575123501966660607397801244314312404370339029160050846086251170563675911954742037967589162110561017824253075340690178774933733095177691892239164808108712136242326988063628496766743805132667357995957561581736220446888071777722872832302069878833906436741600253172528471901837417883823026656004739769409395338939126032685570194399150264292670409777005916604798362324546572997831","osProfile":{"computerName":"jianyunt2"},"vmId":"49c7177c-cf8e-418b-9c36-d8450f7b83f6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5t06DxC8ThQ+7cGKsev+wEbFNO5fDwOb4Uaf+OwvmvqI3JD4DHGxqHPilEaSx14YCbgfD4SqMUxeSo6SnU3DQiW2M4iTwDGwqsrwYc1YdjZWBy1GqSg/dKsRPLSvHBZhIBdEwxEJFyfED+TuIw+gEMO5buM/rqu3aa/nsXbr/4yaya8K64dd0t2Gxw4RPvzwMuaS7MJf83IBJqzpDfF/wqdlOpv9UWMbMxhrh9a7COJ28QNPfCaAyG6u5RwLBaMmn6HQFXoyLdEoVaAyMP0xOk6MgyjoYN2ZjxqHzVMnQ4PaRvAt7wA7XuK5XqMrv5PpLqEjS0rkcVbCb3lgxYZKKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e6debb6a-b7c1-4b68-a42d-ee13b9feef7b","name":"release-e6debb6a-b7c1-4b68-a42d-ee13b9feef7b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"97ccfa7e-234f-436d-8629-507cfccd1638","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183459410448759569220577724157476640739515306422745524184579040784936318621578694598155518657153237218518903759086624014457095318809777258618777197612868713273389615985852401869428803691411532807951152571966174068971051826938188476941675244572725634909977326828973041699766935085155847505283763801438642612048815798389669994890725027774587673938437955228501679134785904404","osProfile":{"computerName":"jianyunt2"},"vmId":"4d87d496-2a2f-49e9-bdd3-6ac3661aebb2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzXiyzZduplKOSDPqV7fWuh8S1KLuee8xzygM6dLm4VXXfDmobU/NcNRGleXho/4gsof9Hs5UHi2ECIbSuf5Ybkw3SlVWPROOXIOjrgd0P8b+WN6DJEsvZfb/viksa+OWfkU9YqIqoohlbG/WllBYNHpEabVRmQ0gv02EaJSgC9LT/8WE5GxevksZL/6YcU2XJRuvL2gyRBD8NKDMLjkyImomRasnsrAe2R23++qFsnmaNIsgl4pfg2/r+7Klf3lW90up1HShdThIa5ZDOILUPp/21ia62Lr2asaz+IjgjAdEBH6UTL2bAH+KMqiFUdCDqsxosHmioC7rCNTQR/lIbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ba18c39e-8582-47a7-8c58-824d631dd0f9","name":"release-ba18c39e-8582-47a7-8c58-824d631dd0f9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cd112215-b2ef-4c8f-95e9-4ebab7572edc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187787402654543516300256872742412729316260664529639707605107827581519903688975133661792354492794418474335928300881849754691964963426385878523785947143296589440156637595401879112539363463661955068951075645475444890316139049327942769895833594762223313545277439885658079922785144384056513240550066602260202037994706514889876482478119421056870619994163957547972445549738851343563239989816329136789698475328379673963768165637821428356049424647771529837276667353","osProfile":{"computerName":"jianyunt2"},"vmId":"184e8ae4-d0dc-4881-aad3-bce37851b53e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuC7CBlfe+TB1RrGYdnDenZ662fA/mExuIbH+P95yu64IPsm1OV51FwAB3Tn/kypKzhOGF9m2Q/8U0CeiEb4OG7QtqnDZqwSwJq3KbdioO6CG/rieVuy8ihcKbqbt46VOwX64bYX8kX6XC/60n5ydDpwKbAygzcRGMg3TZXNxBp22WODw6dZ+x0eWZJjunHAYnfuMGcRLgYK0p6/jqjL3sSQsITMbW81uaOniPWv/7kGMmDt60M/yhxWrF6q8wGCimlxRCOySDbwNJT+ve5Z0kR5chPEAQL+XVB3GUZ+RmB0CmzvkObJ2KYWeK2Lwjk+SNUFaiDRse6Ep0D9AUor3hQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0978e052-5284-4212-ba84-7c15a74c8ce1","name":"release-0978e052-5284-4212-ba84-7c15a74c8ce1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"87022052-9d45-4f40-abee-225000058d6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418530581947898778949819014929372780360890669148178125283413222961049811786080049641462113946646136206601788433216786927471167613581718179034976332116439073638599532833783736419667790271752690117776277907974206588131253235974768881825977273407748328453999314566751120987453465952635616035424206848986775762511705953584452363445545271689459198688266948809602786788215784717482755412374697052483466659470735353311844703","osProfile":{"computerName":"jianyunt2"},"vmId":"e3dfd9ea-eba8-4adc-a0fc-7ba1ac7f3c52","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAk5oIK4iz5KhoPAxephadqQ8cD1iHg/u4aqbNAU94SYHIlvGUacdMebScl/x9UMixPVLkoHuFZS7fd9IyOnnu3RkPdS8W5fu+sLVpQpCYTCxyy8DuAVE67ZyLrR6on1GDP0TXzl2+Cdd3ZYQXSLNKMUFAyqconf/Gx9VeHG43jy9fxgfsq5lUNNujZ8kLOtRFUkEPn67nhm6KfXTbktPK701+E0qxI4OG59aaCoIwarlFuy6Tp9XRbFNjtp2GeM+jrFmwT8BZ+yV0VxgMAGqwF/L8DuujqndNs8gLU3zTYsc3Kg37vg7eFjqPoed7eITNhVpspX1gqmMjHpTEf7dUgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1f9535e7-1cda-45b4-9248-560ae89b99cd","name":"release-1f9535e7-1cda-45b4-9248-560ae89b99cd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5d322d68-9197-4095-8064-43cbeca213d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41858503970313020161786427649437846480821988121613356298979140758999363249661211529765728483422007761541858301552138949645495755478316347538940943880981279277314256870154391126394799185581258305430197205180184547011967492232058492160577932886806095403098235524436861483610533616980549981635290985634435205977396979515566827188079478654766473533321760023509368116119811860685558627531453294786899985741894516370389690673975779483742722254676278892173624693821294341938148","osProfile":{"computerName":"jianyunt2"},"vmId":"0e197782-72bd-422e-ac36-4ac20072ae2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnhsgM7ZRRtGsozZV/sWSjr7TEtiIUfrGPtDsHNb07+loBak47o4m11HfU/goTEEbM6JCmLR+XXeEL68QWkUSMoS7S7S25viA1B3vmhhHwZfyL19GsfonDtZKRPj4szL7RsyvtscwU84+iFu+kJTVfGMz8A+/k9sGfw6WYO1Slv1vw+fP+l2R1bmU72aJxTMWzPYta38i77GjLGbwa3SFoAqDRMHbhsQyRH1QkJc53E1SgV0BtALNxKUrAFRUHwaHW0HUjXuy3Yc3b5Jz8BOckxIBwlNKiRwNUVtjbrWtmPgyHkhxSjzoDZViILPj8sMykbwX1vKnqgWlQSDUEleCkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c211866c-1966-411f-a538-e44a809f3477","name":"release-c211866c-1966-411f-a538-e44a809f3477","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3ed5fa03-83f5-46c4-8235-6ae5891e5d3e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189949964587657021627664878394459412774261512120090044627282552545244138260553277264051644159416851882133227724941764202294305140064481963863074334532574649382735086526813616047426362448615283758405994920131082936679177404148978449607227654430422615635094821063549294482763161781362438165450684426304737328652177082946979912697892303175891209233613696238104682174625738603562212355","osProfile":{"computerName":"jianyunt2"},"vmId":"08583a01-31c7-433b-be1e-a18f53acdc55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu9WCFLlaq5XoJoI9apGQIceuKugG1cCzpVfObgLrguMCpOUNkJcyNMo6OXeN2GrB2saFPrnHmAPFQ6d2U/9xNpB6rA07UV5dQybA5+AaZ3eRByZsp9xgpOeYetJDLrfiB7x2g/XFm9Nqz9yqDOI3gqBG7BYtL+8IKD+h3ST/RbviidiZIQGT1Et2K22F+aokGPyYbemfDl7XTppTYsAVMeZb83Y4AkgeIETEwtjau7ow8JM3DgSoc9D0zBYBWVm/j+u2iPxWolvUp+UHnbNLyRTuzfJG5Jaw+6clIwCPrxCu3d1vBtAzTEeisy8ZOrZx8HdlWI/DKXmQsuptAAe6sQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4baf5cbe-d2c2-4236-9ae1-91d4d96b28cb","name":"release-4baf5cbe-d2c2-4236-9ae1-91d4d96b28cb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"88a99a1f-8829-414b-958b-311f6b3575e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810192892541830937895679292049186428259998985975556042551807116392557376231704245254166837685017712208744822383766506191469391947764298377326328217552439801775158549503659957295716226745096171372035593459724011889318816194434535582730693097168920965334735835573954987425219571074428297865429486231544919826411190470221499024025397651681926229293652189567412512550321696524473692689449108321","osProfile":{"computerName":"jianyunt2"},"vmId":"c58a8ede-4bc6-49ce-b811-2305d65ad495","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxVIVi/tqGIdPtPCIFBiKDSofWv1QubHIsIIrlzrb1pW62LkNpeg+FxenUTRPTsNjvwna1Db5qPrdkCqjhuIPNuP6kaN93QYTlcbj2eyqG83pzhQeFDiuIU9IcrCqxsF2M4MyfVcwBXTooYuebRUsXyhxxmfme5B7QkpnR0/2cVgP+8y7ezjubLHs368XZDlyipxa6eLqznwVti5qB6LK/WwwltG0mVXUKDYm0GXI4od5v5Sgu0whqWErXUClvua6snEFs4o60KJseyJgiCAJ0ja6SdLmNDgsf/K260p4ma7nPJhYNXO4aP8JXI8+Hh3MWj9wSj2hiaHwfuxnhnYriQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1c6b574a-2246-4065-9a37-63d8ca07fe86","name":"release-1c6b574a-2246-4065-9a37-63d8ca07fe86","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a627e1bc-92e6-4b4c-8dec-0f9c2aefc19d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418434871337741591835136879166912610646098829718480912127057468570043676895176724126696197247583938564087951508117553004365798814063133209722891638188866338873265410327891152237464438155696319559802649353099875613238866253281878543394670471126739635880516853102516014583637923344862844973623171750480096063594875764432374493152468445833706089021431891255024114449315832540426980104408317644343922593324054006603446067619206","osProfile":{"computerName":"jianyunt2"},"vmId":"a7694466-d350-4a0f-9cd8-868ce6a5f0fa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvkdijP59kgE64RCzkTRIwduut2RPckRGUdO+3GkHfeFchakNyeDaJYmRhEl0/STGBz8ky8J/lGyQevRwUKKNmG8VhbuX/ki2drNxGd84UwgFSJhyHmazoGQ8M7+C/FhUAV7DMMvg5+83xpZUNDBvjfibWlKiKqAc/8E4gTCytOA1k2i+MI/XXvWgXya6QOWBIXnK65pq/fvNp0PkGQggryhmrsRNi2Yn8P9MyEoVzVZyNUI9+Z2OphIGEjGqpgvie96iPQ+QNydHHK/LjhW3vvVaN+N1OYcgDojWRBhcViTs8fcNRvU2xgFSTqI0/hoYkqNqczkIWG92Mj6B8HkAqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-da3515fc-ba34-423e-b1e8-8e06e942c7de","name":"release-da3515fc-ba34-423e-b1e8-8e06e942c7de","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d411fabd-306c-43d3-9531-504c2f88c34e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418790040233170691615083017896650135787366711479017327612558644173634353664472649623595086285318849243420451741772486150098422115406651899699136261915129766129298553465291355451713016928113641317745953403552591331772754519236931445289148699437037771355919118296634648332557197780059994433827123570642434627387734119748526064760924244508985696292134105382967256146754442022134881914604250644227941197912487941318","osProfile":{"computerName":"jianyunt2"},"vmId":"c7a99282-31fa-4768-9145-d4a8076126e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8ZPutnnBpkZRhoKqG8azG10n8qjrMUAMfi+KrEaLyloIthzWJuAGgBal93uvnBSZgU4xdopj22pVXRJF9jCm/LcCn5TsFeVe9XOfqUanJwof55EdMtAxz4iot2wKD0vxPrqzspOdSXsxA6zUKxwct97oTo74ak0iXJPWK/nfTXr2X4IGizZTBJJLu10nbdpCMlxSDqOlet8+56Qd4rI8CQzvIimsGfgMEmQRl+7oxuvVXzfwJfIPmqZEHE5CISqOi3q9jFAHQRWtKG1XXPOEEw1embnvyw7pk7rKuiTru8SFT6rypgNDQLeu1uGv+3zjWQg0qG16ThCRXlE6pCjqMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-82b864c7-a35c-425b-8b5e-57ec1fdb4016","name":"release-82b864c7-a35c-425b-8b5e-57ec1fdb4016","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"91cc0f38-bc1e-4ad7-961e-cb234662fe71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418295655145205560534238290871214434903061919120583899179598094044858213399766540503668889602125454656298474970979445937667211083694548025157717789524194935286670418172258265310469365931728303163136679746692974730554124982784899837606002488326301959586587115618932845312624519970423315614758095215318687582585082507536503016408198653258901272941852891866946075725014817087463326333736026394055501897812631929131402483","osProfile":{"computerName":"jianyunt2"},"vmId":"614fcbe4-947f-49b5-b3e2-49e64cfd2ab1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4qvtpA9oFfUezmG+gyzVfW024rMdU+HAJe0WatOgbZYCixCf0qDI1zluXHqlLOAKm4HsGBAmpeHe2R5cnnSwC6cknEI0NmbEPGXTXRJv3+Z73AVWNkPpFVqdC2Q5OFaZ+b+rlA7zmnKP73iGJFc70FboCl3byUbmQrswb9WQsBdmxoghtvseVaTcKhXIRle10TsJ6N3ySwBvK0QPAPwaPp9Z9rsG3+hZSqxA7WZNeZPmuam7we9S0ttr3bV+rpSHuF+qCR1QKoQG60A90+H36hl3ggbzwMYr2V1AJz6mxio9SVSk9V8NDjTeAYTcRHRX6AAWaDmwkQsX+6C0HZLyHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7fe41663-ff18-4503-8c6e-548642806d44","name":"release-7fe41663-ff18-4503-8c6e-548642806d44","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"db2dabe4-ecda-4047-8289-1da7fa3bfe83","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189289588365181385213488627420328399365688113351148466685392627249838649519325316619680038985650759866536019467277838554452329511419420650693582569230715077286730122198154132315031180818857429845904709678845158343716334594598358698698793695625427173042618843196947778223882435558401400084446894265653373673624140725342570736367262296564052694062441198177361714942793528471343526029569591316023578277019683581598435813712674004222118292535","osProfile":{"computerName":"jianyunt2"},"vmId":"b83f93e8-ccdd-474c-a39c-aaa5ddbf9f56","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1D+17ciMj/Dah6ds6C24nXPu81AwurfsbrspG9CUJBqa7A+XVs5m8T1lJx/77aM+V2+48SBHf/KQOI6vD+zUGuxk/xzHxGpgY19wog1IaukRlIj7n68vgjfe7DrYjXeUDKFS5j+GvuLWY0zdDdqvAckjYj0oZ2Izsk180oqYZjd88Wf/+HDUysPK8sE0rw18oBCOJYuAfu2Nw8lYa3JQ2FmiPNgq7nRvYYrriiNzMxC2jRLuf39XWzHhmMd9A1snrbmNnEj9+iBNFp2bmB5aMu0rivBag9B9vfIPR4nVP2k+SMLVPconsyH221fd4ZQFZzFPBgC9iOZkZAwd/WUSjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f4cca2a4-64f0-4204-8593-1d39467703f2","name":"release-f4cca2a4-64f0-4204-8593-1d39467703f2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"74b37b64-21b1-401b-80e7-cf88e70474b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186680410437641698961178825640157264361446271668918261671972171104689306244578147681724512866463841201671596772625597961457331247537066437510465794566139763198033814661432969382880176193121618794828159871189617997480708548132360419261792873673115529952719988352556577472041977427802468158026115552989134112574964415927028801927884543729000105188784837578661136011762642539439417808061707170","osProfile":{"computerName":"jianyunt2"},"vmId":"b0023e93-866f-4393-bc4b-4f736c1978a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6UXafbNAS5Xj6R1YkNggkv1bmsMJphNQdIxZSdCBlLJSOHAFuhS0MGRzwuhb0V9b4bdwMuWZXylDlbDhpkpFXMYq3LqheSXJIG7sunDRooDzrytVME5zWEgQSEF7JS8Q3tfVoGnSkEDC+OfVdSdGLmlwCLUshbIvvl00DT7pyF11DeJL81eevU/V+s6qUh7OIhJHe3wYT4xGkjjkLSA/cwxyHev8+mpTdT0le1CaO+mJArWFgHZOZ6wrk+dsoDrMRCn+FwLkeWUS1qRUOi9B/dl0oF7Dfpj9CaOCiSKgOyi1/Xv4ADTKMykkB3OxP6XBdtMPLvMfbQdoJiCHuqbKxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ecc25df4-e974-43cf-b347-adba7e4ea288","name":"release-ecc25df4-e974-43cf-b347-adba7e4ea288","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a7ff33f3-e0d7-4081-8785-8b887199c496","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418190074334447581258225387427483257825320755790176079165688283661988532484281959746993591887286691529708626853516789183279689789486899557791155452737334789728777513937023083933464259789472941182811317348544922967616480784245462934223196607913235750736806498064183764332116727618202714560896526043366156567864607106181909358589085541779364970070203201713157347832423232028003970795501276741626410387696768286337180","osProfile":{"computerName":"jianyunt2"},"vmId":"ae651623-a95c-457e-a263-52510b7be51a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8Ze3eAKu7o3YTMS6ckGODbdyVVjWqi8RJYs26+ya0Doe5VTpPI+hzQIOoiKDmsDw55hONNNDpKd5fAYEYd7GmFlRJuHYUM9SorquXdeWsAlmGfe3zXUngFBv3Vabyb9cB73siFIf0eru0zZsoH2MdDdDZAYQGlZYGptFTmtGQdDfd+Ln1NygiO2sa8zSPxl8iIc1oYLJ3kKFkWCSZ1kfPZZLqfv0R7j0KbGVUtK8iOH+6rY+CpYDw76A/q9eSxLj5SL3l9XS+ovisX9ZxB5ojE5rIdBkUs7I0Nr138Qh9mxs9epqQHM/CkcLlpbNMqQdVFLKcLzSGCeMF4vaoPo/6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-92e892ed-9b53-4c1c-a86c-5a2c30c890b3","name":"release-92e892ed-9b53-4c1c-a86c-5a2c30c890b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9babcb89-a226-454b-b212-541727eb8b7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183509904920288314178377812435765974015579794230956400278221433303905945227152755881577799750466892987502957809124155737897018458531636716759646810168875224634355784526373446676763244012628957371628752568918377686789216922647012857097037605768311930953427630909061802604120509365365786695101570476887122126027825531129913476084293819621487753451167743210661949298057431452517695540588974192429817561453464370168036066051326946747035413196741091508858","osProfile":{"computerName":"jianyunt2"},"vmId":"5a3d1e17-a281-48f7-a879-4fb8de8c3ffa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp75L1pYoUFIv+EXExRr8ZovoHv3lLVasF9HEBbV65NjaRVahu6DV+fHxpCCNBgCYmbhoHdHwZ6I1SXYBd19JMBVxVy9wdUncTiNpfSoHo1shoSBGbIdWYqfw2g+ANT54hmm6HPEzDY94jGgjYo5+KNJ1PpYohx0+HTJ8icNeYYwMh2fmmxez4P/JprlvbFjitgsQOqKTtgZCnCRbXHwJy5f9TNoOmld2g4KdhgiGqkDDjLBF4Dnr2OdmkOWxngq3Xh1jTwXV6TqsgJv6YXZyQu59QenmYHUJhMjrKNDXA6tQ9LzdgKggkUq69nRh1pn2mg+WwGkqBLwc4c8lx1z6uQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cea97c9f-20c9-44b0-bc94-c894a756f8b3","name":"release-cea97c9f-20c9-44b0-bc94-c894a756f8b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"705a5439-f18f-41f1-8d97-f79c2eda66aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181861784830218262946561646169428932506057895129635302114212148200618447716982465347151484746965128490977516444004853285758569628692077314617247294140635186580796644967373794745718171510197591722718557676179126856820876400265495209299126376951522370498125541516244331836472411446517565173671653857449414493072550920068963281368077069198896580244836851961703101550293254337219204972193758244251066515","osProfile":{"computerName":"jianyunt2"},"vmId":"2fd39206-ede5-4cd7-b4c0-1366ea85022f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtOhywOWZtw9hmu7x9Di6/L88fXEnidFyu9pNDYSPtsiEd+fOp5WbnuOc/trVNjv/MBrnPZw4uu0Mdae+4GhbumkuJlSZDjS/m+n2ZEWT2r/aOK01CJviaeYl4b11ulgbbmvf2YTT33gw74uro3aeeXJ5ixWIcXPNihR08qrkauztQlHsWRZJ/SFgyucyadBjcWHvk6e8J88MEzy84vwLet8gx38WfUaAmXI5wYZG3gzUX1WP85DI+VLEripJDdz3oY0EB3WKGyf4toi0liFwiN0ABt8z7euMNQmPES1QeiMoihA0G8p9ZtZqEobmUKslnHwEnGWr4NsK0HMjddpGNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-209582bd-7d9f-4edf-8899-bfca0cc7ece8","name":"release-209582bd-7d9f-4edf-8899-bfca0cc7ece8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e3d7b39b-1442-4436-9484-549a4ea1269c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41891102844614074467258863555913496891833188073365505919885449746733063294581674246503693676967586935207123195570825013365744964348837856366954887834568366680995654311269755746528471280632484879898661979934577267933426985848148384325523039795662473857221856939076910742348695727496632114094212552541521572725538765003935025602068408733038969172551574446083163719034271626666210687185031225267999615400088086217","osProfile":{"computerName":"jianyunt2"},"vmId":"e625aae6-0438-4519-a8a0-9420160fe39a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuFGFd7N/2noHwz8kCmz7M2rofWGi6XvIREZChWWUfHaobaSnGm++YCRzJ6fvJVBi1vDjRTnIdXQ83l6I1/aihxiwAj+/78gBSeJB3/oyejx/fgQX9YchEbJi3/l0oGeAPKk3Ixfe1z1d7IMFp9Md8o2KbAn42ug/0hB6Pth9GE47J07hbSxonu0DjIYCjirO0SWl+RzGi6lE/xfRNyZSauPAsqfoc+L8Eo0Lk6dUMkgyCvVXhW7ty904gPysVlliaRmpEaDPjXcWHEyoGe53u1lhSfPe7xhAt8o6c6Fqqv1zAKUyjMOhuTl4Y3Uwi7baZdKBfZf+AzS2fQq8Vn0xtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4d2dd47e-2718-496e-95e2-383deac0be7b","name":"release-4d2dd47e-2718-496e-95e2-383deac0be7b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"36932798-9756-44ce-b086-9e91e2222a02","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188944433345763263663640421528132897105702382515865457288759725560121762407553983092364511774924039814504156782128616843146837634030267455557460765885176304263175457673873085349417138455632818858268961728367619164531592049360673135354525716855046686770172950478542966440965956307177351904499560256103144718851294307290284976884759616486343699719817071930","osProfile":{"computerName":"jianyunt2"},"vmId":"1e71b3fd-c63e-47e6-a72f-0b2342159903","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1JVr/ZIR4FbWH/ldMv/g5u40Mz6y3Xd1so7AwBDx88KT0fBcYyfV4iJmJS1YN6IOC0z5z+BFxj8UE2S1iHAT4dpeagQlqTdC3v1XtSQnvv0JWgQQmnGLubicyRQfIe+zWaANIt7m0McU9X2ByPKQAMK7nhkZPdCuK8tHtHi9TikFqIQdCh9go7X9yW2KlyzTx6GS4sVNzjzQgKAcKEgPZgPXCEr90HPRHG44dhfjmbPLeprHa0+Qmth8BRlmVG80tCcJZ8zeFrfq6ssnmMxJzTVtSO4D3YcNrQnUhrIldL+IC4cwF4i/h9c5Hp2E6BLHiwsb71PdId9Q8i9QmaVyPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e550b741-e59c-4665-95cd-8f6bec5b471a","name":"release-e550b741-e59c-4665-95cd-8f6bec5b471a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"708cbcc0-b968-4a6d-ac8b-e99501cd31c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418559129871567662886477308190219836754136440692357559734671144438007408055286706997917968286909648530897260938273943974804379761054520451753403613447828932783432681469686225277888056955096984740335987609910807910730071996004995296535114867673868745327546584299268987237932720894087874979640813344472378347102840928496906175965586936489194231067416388650212196750482749898733584335737471","osProfile":{"computerName":"jianyunt2"},"vmId":"b6b3d173-2d18-46bf-8b06-498a5932a2cb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsrifNbgQ0NUS0mhE0zUhsDSNwxkTTD1Nqwml5nIHolH3GVxFXJAP3zIij7MIKQKZk2mLUUybk52vI8D1e1JgRDyQPGoljwsIk5EIk7qon/23D8bpjW8TUG5q8/daXBUo/Gk0eOFswgUFFrb4fCs+fLxwneRDWTdjPSIY+/Iez1Udio+fbtRXWQlXpuZrlqEy+MZG8+weXdkDTA8egvtH2SZAjHlToAOCiBsym2njTRKzUOJFrBQBakmEX0+oGN2hwDwJybVl8J4IgQC54KhBoTxDNXw8HO0Lw8qEVWDb5ek6ynsEeBHuen3RG/Dt2ykzQcPCqj6pKLWWczaMyfaizwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7eae6320-cbc4-40a1-aa57-0ea2477af677","name":"release-7eae6320-cbc4-40a1-aa57-0ea2477af677","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"62829173-9c68-44b2-88b4-3e6175154143","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184805676390236798816312016929724310554167938850188344645248584373774573017847905959766265075989970824283342527236704395211258895424897635032462948428333933304629652424633741187425543995931776306467012527959934183741924357997603827410116612190447953599039605540579910571941297738193758635102304583112994223552517045834569722549900376025058436698151022122781961496179612681059087169968299357196070401989929238573492602311","osProfile":{"computerName":"jianyunt2"},"vmId":"5862edfb-1f08-4b2a-8621-3e49d5b3b4aa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA07gGAbvKjsrkb3Rm/307yONjhFE204n90ycZdJ29CjT7DdeQtSo+hyNwH8zM3mzasMZKQLiaIfo9xYWsMn4TpjNRzGeJx+Yu6jakKKym3hsilJCnRZw3naI59ZTAg36Uq/x4o63tF4unH25qd5fOXUM+0C9JPcq6jFQz11PIljI97li9cwcRVdMgdVBJ7QupHtX02tXnQLB39ucltQP8SO8Pdl7L1ut7QbNzh+cRQYi95Z1MLROmvpc75DBBACZ6fn8f5lCHd/qf+WIdpyRUxa0dwmwISy3CwwqpUTVlUpG8WEbg3xY4x9oZj1TjZhxp65zan4sTax6p8Y4fgXzd/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-180fb2c8-8b42-4856-b78b-e91d26eeab27","name":"release-180fb2c8-8b42-4856-b78b-e91d26eeab27","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3f73e74b-d8e8-49aa-bab0-4d4406bb5802","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183249726531141319695480999892249574256535055301865874388260782651165009127342226247696538101169339194161528395820285759762615566832746412032631257784511543802216713620496910787613963724165805237866148666605014662489794466079379736799672603965675778618995453803213641489845954875475822119844318580851827322875587116206676761125047988767506576752792682269643431285384239383747801959165524564901577042905511737650494488803134491738035","osProfile":{"computerName":"jianyunt2"},"vmId":"7a6089eb-5b7b-4bc7-9c4a-9ac6646a4a17","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2RmWMRoShdCydRNWN79KX9ZU7idVvrAwnpMKBaGjnBRNRa6ssaGDwrLmtoRcom2lCKeVzRXDF8Va0Adxlcg54RYrbYTxlogUvPlxjQRC+ZXlvpUXITGmKoN4HxDQUmisxRshlnAtMNHuHjMs6jGAGYtDE61g1uN/J60Hvyv+dfg7ukEY/izNsw5P+qPduDXYHq0GRWdc0XCec8QyeFPeV50zxppGtNyDXfK+Z3yTaefcrL+k8nnquXe5SzMRAMGj6YYOvSLdOV3wWmaNHyU8MID+7RWOkE21AguYX+GNWkj2LFdIrXDD4sL2pHmNmlKxg0ls/ZT9c9OL13NKdQcj0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c3e9151b-bd75-4987-867f-52f5dd4aa96c","name":"release-c3e9151b-bd75-4987-867f-52f5dd4aa96c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e517d182-d941-41eb-a35b-6f9e76bf1710","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418788412274564183112101610625813018189950004366262060988041441836199472220244583675334017415713153210427881599965739114160795838901335584994162928163509211522133980427181482568852162516857849442265092220826078043951224494220831289623646069966965095538348170148273327853844198598778348376444854104359425527324154243946133346929256351538310341316681968729494778763367502573403723514549732490149030923607545533564859392688002","osProfile":{"computerName":"jianyunt2"},"vmId":"811ab8b8-f040-4512-9440-fd6781fd300c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyZde1+g43GYONh9ZX2Ooa+sbnBRS7+I1gigQevoQiyDv0EnAesJ6a7TTqD3+rkeSBwyzPTrzjWtNxjejZ/aSofRIzvPDpKxue+iVHc5OZRXq1eRbZvhT1cEBkR32S4lnuLB9Sm88CSfAvA3MdJ9R9h8ZAMYy2re4/Jq9XTqaaVtYOe+IV1Ju4XtPHOgERnafBnSKyc788LlanahtfBLrvapVWIL5jo0X6MHH4XTqZDbO9aDQ0bOb42P8JPyXS25AhMB8A4K75+ofCHreKTZVHdc7THxutCVudXyVSwGsRZhN+yL+5x2VT6NYDf1H6j0k8jOnFQDFnqo7kfS/EfZrHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e5c65257-18ac-45b6-ba6c-6fc20eabb528","name":"release-e5c65257-18ac-45b6-ba6c-6fc20eabb528","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2eaaf615-c544-4399-8d68-0ecdd4c7b635","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41844048858261314446973456475829287613575921539851830937025362924478779190967164812719404522493642658340622271992071184595154710138563223676254298349331817948226418768659571837923821220980690797042029220541730284266452883609536721997125420623957023814743997261549082313141985159943296241272092212654581866834828683614339712821760936284079076554962866821387073753657384576788619","osProfile":{"computerName":"jianyunt2"},"vmId":"23aec21c-27b9-4019-971a-3fc6c38645f1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvuO1pOQHy3IWQ6yYYV2fLCClbh6s+jCQWdjb1tA6fEdIPcFPKbHAvp6iFNaYfEig1UCEeaEtKRFpzmZS6mbk/V2DI0JnW5lAQWh/MW9o7yxPbVAsxM/ANc0nYsLAsseqkQ01lfXbGK7IyNsGRV22lq3vQO4qKpFIbIeiDVvwe7eou2vD87RRR5t016x/ofSRYv+0tgg12b2nLv3hw4f1z6pDlJdoZHQ1nQ5rRGNyPP+N+Tkk3b7kbxYHZZlb2gH0KCeoU1PfHhRbzkW0tlvZdNNRVtbkpDrso4lZA9qPi+KOPG3IsW9Lh6Yz2ZXB17+htgiAkJeVuZIcevo5CmGOWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9c6a5b8e-c00d-45ba-beac-674a48b43598","name":"release-9c6a5b8e-c00d-45ba-beac-674a48b43598","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ed280280-ccbe-4c90-ab32-8ff3cd6c3d66","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41860606896852441857336592826744503373063782797899796536912304092095936616129644295652437887689322934858582530766596476989114095695510946293293423801465198853123154496976343213938505926629784454674129393647382561921502577327892547811395260256580734007162692107899712474888020123286984832330639670706845161052336428874355668289092299783667783008282650381933958595388751363690025403741","osProfile":{"computerName":"jianyunt2"},"vmId":"9cd0a090-eed0-474d-b01f-3ab09e6af474","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwGH3Uur74RQi77nwjMd/T24P45S9xDgpz8n97ksgaMir+xdjbbblmH27l0LJJ0tT0xcJBW7LrJQFEvnX6uy5WdUjyLwXFgnc9PhDi5w0Sud+NP7UYqJYNckTlK/uqzbwNjtwuuX1eoIL5ldXUPwTpPWC9MazQbhjB3Qj8fSu4SYEYPHEqVc7Jxe1EFZW3SXmZjM+L0FUyxW8BpgwDlXvUwf1juzkLw55PhpErnAO1vCuxBz89DgXsE4+iaKteDI03/e5IoV9x3hKfbHOq0o4jbWelCchx3S5qRV8mi5VSSA+lrfjUyNKzReNVWdoWfwp9rQQDwptiapO6pFZ5gZLsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-84585a77-07a0-49b0-a44f-f6c3097e8c55","name":"release-84585a77-07a0-49b0-a44f-f6c3097e8c55","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e890fac-a6d4-4e07-b58b-b56becbc6bab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182399939871074290856939424753757297894476813491941708810389203643725068609666968551567218417550486549988553986469088270135471186771649021206705235999990279091306479892870131408944653469695731111799516509432857462872131082427251788110176743092119290079559653621681310959828422179548210964377301470988760882293679813219300585758456758448973084261495094865820","osProfile":{"computerName":"jianyunt2"},"vmId":"45a7587a-90e0-42bf-8679-bc747e757461","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6ttv9MTR9zK5kx4thK658vkIxCiFfe9YkUpx9L7IAJVlLC4c2J+GbqSqD2IDxn9FocfB48w9uCp+oRvBgslH2sg9eein49Bwwwdk3pyj1BDooSdu9hz9knndfkr/UE35aUsRNOAMhTpbv9U3yooabrbqR1vcTtEYX7or0XaquBW0OrNgQ+dCmRy/H2enb2drodoFiAYntjDts/5ny92hT3xXhXmAH8Yb9+2LHM/kr60AbYD0THZxyfmelGayN5txrZPFFUUFdpw7BSjNP5o22ladUF/2p20SCW2pJIBXV9v+GmkocbsLN/V9pBZht8zuCPiLNKSEoxkucKC72piKMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4f6f4bf9-b8f0-4581-90e6-4e4e0dc83725","name":"release-4f6f4bf9-b8f0-4581-90e6-4e4e0dc83725","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"44c7130d-9c5e-47ef-9b0f-8eabd6238370","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189838226628036157718951695684576167206405929365841882424246361536596142942205247507457878476882071375004754939801790796665685353593332213803884851867620650363933046805286846219417916946034832042414998208297947642134498407902366175499114052571915549152259071461143795131636443102063804306624156162725218282127904428378098399731319274897775902712182407267505350532224612437267272464149875379918406171535574125694266383694838111254","osProfile":{"computerName":"jianyunt2"},"vmId":"61edab82-6638-4e37-8b53-9f31b8a4bf64","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtvD9t3ub6uSFkuctsFSfZ0dp6CEpmiC9WUD1fN0sjRZLdY4aaCpUvVMCrwC/OYDEXsRef4V1v/Y0iDXQAO62GqC1U85vvjC2USW3BniU/gwwJrrCIOYSOCa/2t/FLldZi1fHJcoRaF2xW96krKo9LqFG8GZWf0LICoYEXEJHNTFONb50QjHbUGMUu1msvJZBoSi1h7bKnu9CeH0M+ozbMv/SvYleFTR1CyJcrxlNJQbGnO7jd8MPX4d+W8E1ahJw5PjS50vWKzNyK3rreGagFZPmY18HKHvRF2XLt6jNl/W00gAiPagX+ZQA0tsRWCbFG6nA/Eju2JzHC7urGX4JSQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNtc5swDP4vuWWfSkOB8NK73k4Gu3WatJiEdck3Qhzw0kAOSJq21%2f32Cdrs%2bgP6aZzPevxIlmRJvPYKeWzGqtjUvcvX3gOdzuKp0bvs5U2zqy8Hg21SJJncyqI5T172lTxPy%2b2g3i%2frtFK7RpVFPVgOpeVYbqqtbS%2fRLNtJNdexPE0aay9105W5WuqDXVUe1EpW9WCi0qqsy3VzfvO8rNTKL7e7fSMxUpqrQtY%2fkp3SDmiJzq8M%2fcLTdFfTDW1XyYOST9%2b%2f1Ru1m5UbWVz1h6TvkL5hNO0RZd%2bEdjdIxAPEf5hc%2fIbxxb6o5vHkmcL71zdRGfQNM5qhEZqbs8hvka4j5tOfHyyn94js4dC0kWdhawPZNc3nQgChL27oEREe%2bgabxOiOkYMNI8tnPpDxJr0P9osRshmc4hlnmFyVFJn8SLXLfas%2bZ97ZbJPjv8cw1kInaNcw6J31KHQ9ojGE%2f02fjpDdwSSRL6Y9HCn%2bNX3iaq5sGNMthHYuQhN7Ecc%2b7rieGY5NCyzUoHAohSOEDsKs66VnMhwlhgSJxA0iXPNO4xid5uBForPnG%2fgFIICWkAOOncHceIw7sWmgA8yA46zAIkaKnaLakVh7SNxYQJ5o5nMB3KWdX2Qv0DMK5z0TRHWnwQvkKO7xjKuMgzUK63Rn9X5nzbsczeMtwByCjKB0IQAgGAGWGSwhxuoSDj6KTLCHEvNeAAWlIPdBIRs%2fUn%2bqQ4Yk4Y8xMBoIiO3M4NfgZz5gCUnrNQKaMyD46lvCqYCS%2bwIPaCHK23xyqsbT50xNdwqANWqr77hYezdcYO1KjNa6Bp9CSdAz%2bGJkwd3X%2fjtvb38B"}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20225.002","name":"0.10.20225.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3821ddf5-6dcb-4b64-af3a-1607d0db856f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"7d5e6311-a5f2-4b42-87bc-27e24632fa27","clientPublicKey":"MIIBCgKCAQEAzIpWm6N7fDW/gRfv2gaMSC0sDt2vTz9dGct8L5fsZ6/I9ZPjFnJ9GKVLMBM0Lx13lEGN6cBnLsxZadpmECdTAJ90QW454VjvuRQymphdxCjN8YFSdhJuGfl7mtY4pHjgUopgOzViRRTdcfdLQoJd+1ue4vtIFB2BV33FhNvjK5d2+0tpWAqwtrJLJlk+e6Vlwe/FSTGpXGRdOLer36fqaDXaiUu9r7Nbn7zNuS8OqOSjf+0Xch0vGEwBASjovJy4N6UD+nVmI3IpORBcOg6xGAq55WD41gw5yY/qisV9nEqLC2CgSga+vrA75DUKKyWrms5H0x1TR/V9xHemiKdrYwIDAQAB"}}' headers: cache-control: - no-cache content-length: - - '277841' + - '894' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:20 GMT + - Tue, 15 Sep 2020 00:27:37 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -125,9 +89,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - a1d122df-61bd-41a3-af38-06f92b98fda9 - - 10adc1d7-f899-4c91-ab58-2faf3d8202e1 status: code: 200 message: OK @@ -139,32 +100,133 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNtc5swDP4vuWWfSkOB8NK73k4Gu3WatJiEdck3Qhzw0kAOSJq21%2F32Cdrs%2BgP6aZzPevxIlmRJvPYKeWzGqtjUvcvX3gOdzuKp0bvs5U2zqy8Hg21SJJncyqI5T172lTxPy%2B2g3i%2FrtFK7RpVFPVgOpeVYbqqtbS%2FRLNtJNdexPE0aay9105W5WuqDXVUe1EpW9WCi0qqsy3VzfvO8rNTKL7e7fSMxUpqrQtY%2Fkp3SDmiJzq8M%2FcLTdFfTDW1XyYOST9%2B%2F1Ru1m5UbWVz1h6TvkL5hNO0RZd%2BEdjdIxAPEf5hc%2FIbxxb6o5vHkmcL71zdRGfQNM5qhEZqbs8hvka4j5tOfHyyn94js4dC0kWdhawPZNc3nQgChL27oEREe%2BgabxOiOkYMNI8tnPpDxJr0P9osRshmc4hlnmFyVFJn8SLXLfas%2BZ97ZbJPjv8cw1kInaNcw6J31KHQ9ojGE%2F02fjpDdwSSRL6Y9HCn%2BNX3iaq5sGNMthHYuQhN7Ecc%2B7rieGY5NCyzUoHAohSOEDsKs66VnMhwlhgSJxA0iXPNO4xid5uBForPnG%2FgFIICWkAOOncHceIw7sWmgA8yA46zAIkaKnaLakVh7SNxYQJ5o5nMB3KWdX2Qv0DMK5z0TRHWnwQvkKO7xjKuMgzUK63Rn9X5nzbsczeMtwByCjKB0IQAgGAGWGSwhxuoSDj6KTLCHEvNeAAWlIPdBIRs%2FUn%2BqQ4Yk4Y8xMBoIiO3M4NfgZz5gCUnrNQKaMyD46lvCqYCS%2BwIPaCHK23xyqsbT50xNdwqANWqr77hYezdcYO1KjNa6Bp9CSdAz%2BGJkwd3X%2Fjtvb38B + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000038","name":"ukspumuks000038","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"22222113-bc1f-4278-af53-b5b22a1db14f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"827d8f73-3133-4670-8ba0-b678d7a190da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy23RYKTHtBIiWJd35qlYg6gw/Dl1sAYNpK98ut51KoRlvDyuOJ8eJU6MGAp2+q/UAH2vdfBzxMgD2Ax5ySxRr1s9TFdMuELoyQd5GqasKFfu+mVOj9Awaqk+Bb4jrpHTpSmzJFwfJdPxvGcT6O/dqIhpGJC/5jJuT/TH882A1Fb8XWXFFjl02Fn3nFphm7ozteT49HuI3fCsEUJIp0JpKD/ElNEc3I8SnodZk9lbYWrcUks8E/p/wQntXCJnpmVf9wfndGLlgOonluJX/B0yvQ+/0tH+l2ff3gTMUoV7d30wewDOzzJcmG01dCDVY3oQhymS+EsVLKzCCjGXkigctQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002O","name":"nepumne2r00002O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9a1772ec-0e18-4a74-a49b-b9e9540de221","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"faa7083e-d234-43f2-98c6-b49f320390ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuqbS+LugBfct6RghnS02E5py1g8VqBMTquD+ctHbuhv5z1Lp9zNPVOqU68miMPaZwIrVH8h2Ea3hOYQzWEAlTyykaPsoEO8sUD4+vAVRl7ReRgVMi5WdTwxYONTF+sHM4CNwEOUPMiN9wqyPPRIiE6BzIXNdV1Lx9Dh6ygnF8IKMRDmpCoDb8LM+lKt+LLSgFq0VdFfHSC5+cVYB+/iuiHmLEOjn9yI9RaO5ui/rV+d9kJh4A+8naCPdjM7ifBBcoNuiUklJOoom9nJHJUXBxqPAH9FcpBkrViQCHX7FnMj+8KGDZHQOSKXUDQ02/3gpTplrcQHvq1c4jsOivQvdKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002V","name":"nepumne2r00002V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dbb552da-365f-455a-ba81-9bac7bf38175","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0417a1f7-2dbd-4043-83da-320f4342e1df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzV3/L/CeC3MboRK9ftK6SMgOokngQQsZdu8YUpVHp6vbJHwtVv8hfo78LQC6kUPfRD5K0lMFwptyPGThga9eGui2yZ0EhH+s7pMrfV73lOsV6Q1JkPiXPhV2zLQ+ebuAr79xoO+tg4EOtWy7dWvATg0q9bivBvMeZiCFFA2gz+7vU4q5+xoRCB4XHbF9fVagJknwXBDKdSaR8oOTARJqT9akTy8QyI67qSYhSQ5nDaIhXZjGy/BMdTQ0VJdob5gPGEWN3Aw9WxwXtCxHljZTVDcsNe+VehaHkpWmdw/5RMrtM6KZzRfTs/A+2M//LgmO7fux1z+yqke0h04B07OxTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000L","name":"ukspumuks00000L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e045b3b4-3355-4f36-8825-499937e53797","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fae7bb5a-99b0-4422-80c3-30993f8a2fab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwh2df7rqhB8yBfF4r18UyUntmiXpvB5nzMu06PCyzmrbK5Cq0KObwzaSte5rMTwfxWUMKq807+YG0MSsOW30bcjEgqxwPzF3jIxWAsWDPMnZupRULAS+bZjl0smnQFsaL7LbhMTZmkMiovGqRIVjK4OdpGjVLSb1V1kU+9saRur/VA8Ft7EmkIE2JqlQ46C3WA/4l+4IISBvqv1U2c30I+sITJ9Raj4g+c6vwHwlwIr46vuufEzB7NqxVpdLHBXx5Rq6ojaKm6hZgfro/qfeIoe34JqXdg6BKsTOMI5iEf7XwQvFgccAp+nypS4uNTzTy641OKIhT09wy4rkteWaCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001M","name":"ukspumuks00001M","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7880bdd5-bf54-4ee0-8387-b20e05b6bb36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1015ab14-2b67-44f6-baca-4883861c5063","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr5Lj0y49Vu5iD6uGo0JOFerQy2oLFKSTr3rfWU4+Js0PruDAivZ12yN40eK2PFjVBDL0YMcr2S54iSP+wtvdt9nm70BcZOcFrRaeGeXqsrxuQAoviGBbY4pizZV4svFh+bNNNSDrsPNVb982uuTXrlQtB4t2l/vf1s1VhVvTrbzNX/hoWuTD5PYMvYZcIGmY3TPmT9vs02q2NvV1Rl9RvrIVMPiqb5YuVtod/vFe5n4qA435D4nA778cOww7tX9COOMaZl3x4TefyOCulFH4UOu5wnOfhINYyk0HiKh0KzDkUJX2jNI4wPl2+kc9PkVANuk9Q9/Jz+mSEiUJb+fG4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000W","name":"ukspumuks00000W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"332e65b8-bb89-4bb2-8d31-0ea9a665f0b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8fa78a27-6ec8-47bb-8289-8c2f07bd1e89","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw88nHCtV5y9R4KzQO6upqQTQUc2rDH1luvfNvVFPbxzTUlVVOlyzpfRArhY7O9UtgzfA6hLrK94mIMAarjugapSuoQMEzMKR54f13GESwRO8ELPAu7tYJMwD9XW+AHhrCIh7B5KrpA2AXI7+9Cs2ZaudUd4YnT2Qvb6GyyCJU/XZUwsFJk1dWgp2VkTc0vsXYVSTOXSceBKgcL+eb5FGBTsTnRrPv4zkcu3OAZTAfJr2hNPWt8xHoiz+8aACQQiBTjQJxbiNyNBFRJObObpmcziJn7/K9+OmQau7IQnk15tr0DAn+bdEBaUX5LagkaqUPR0kRcBgXf4na/phgEDm3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000T","name":"pumnamuns00000T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6c43c209-c557-4644-bb9d-a72fa8c75e9a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00000T","machineFqdn":"pumnamuns00000T","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000T"},"vmId":"f540733e-989c-4b69-b73e-4423f0fb829a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuY4iCIK4ZPThKgKiyBJ3WZ8z67gG0B0EkctsdUCe4yhjh+xezoEUwj8SpIHs9qlHhM3jC+ozZ97KqnobGAay3yBr91eplg9VCuTDF8lxgMaqNQJWH4+yZjSYUxkBYiIpbkRAYkNvvqZEGj3BUwgTCfAaBjzgjYl3p25d8ETOCKPd3ZbPFkogsEw8xsPWsAJ3F3qk7kG+WeG+MIJYqn5QV2cnxbnanXqlWTi1OPdgmBbH0jB1pLug8ot7yJcTFVPabLNvp7TEbFQFTBZd4z6LmTBf5PqL4nJ8SsXCNfgBI1oMND3Yzm2pAmoyEMyXGjXn61cZMZvD0CGhSc3jJlQo3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002W","name":"pumnamuns00002W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b50d17c7-5861-4e23-943d-ab061854147e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002W","machineFqdn":"pumnamuns00002W","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002W"},"vmId":"758cdb0e-36b4-4bc2-83e1-b7b52b14d97d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtouigufN0bQWGmqnm6hOdEPTXo6qdxWwEXHpghBZp+WSlJFBrGaFqschLFZyTZS5R1N1H0n0uZE6pAqJCz+RTacaHPrX2zD0148Em/w/Iskgr/i0Zwdg7oy7d8Cs5pwH0mkVBgALRdd3v7ZxpIsR2fU4Cb5N714DTgFzLw10C6MJ1U9/t8GNMXPAX7mk8/fjSRM1up/j6YYxaotFn/EKY8pvndr5JDtQuuarWG2a9U7b4e/uJWrQ/kYQ1NzLzi1VVO6/1GxovKXd8tA8OCNs0X4mra5ZMUPVM/qT7BqViSd2a/LjpBY/9xxivvWSFXMHutiEjTBhK5RbWffrWtfkLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002D","name":"pumnunsig00002D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"192fbdb2-cd24-4e53-8bc9-bbbdf42b70fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"ff480906-63a6-4021-a6b7-ed134dc1ad13","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3G0IME8CYvOsQaM3gaQIl7ZoeBHOwNY2CSjJ2T2zrFH3fKAfZArRfJv04F+Po/2LTIjValL1PZ0LtXf5w22QBJ5B2IV8mdjJ21NA5sDu4h8gaDwxhxkW5WkiqBSn0xJDCGN4fJV2iPxDHcIQBiOm6DHRH+SEwJVC5QWaZ2ZD8bb9PWg95sg9cGGQdQbRZQ3BUBM+eIZQT59s4Z8DCVbP9MROywUxsI+VcIuJwHPffm3ORUDhesHe16JUUzmuMfVGdgqwBOVSAHt/kHv2PSSoRy2N5Ncz9cxNEvIHQAUtuWhvOINw9cCGEKKYeiD2FA5TaJH4QT6S+OSaUK3DBOHYywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001Y","name":"pumnamuns00001Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0e555614-f0d3-433e-b936-523535b70684","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001Y","machineFqdn":"pumnamuns00001Y","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001Y"},"vmId":"8f248389-2e66-49cd-b521-8e21a8111164","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA548Lg11ocbsfmS8ryEbCji27BRjbUZYSHQgQiPTa5RLIAy2kS158D6it28dHwTIhuweksC9bRjpcJOwBGssu93kJ+vFidbtivK2cJT2f0k26SX9O8iB7VL92XR6z9u0O/xLM6o69048C/e1gDykFnBSFuK5kAPOtbeit+sPOCrAwzGUeTY65z1yz4sPOjj8SDs6x2ulXJ1PCV9I7RDqW4UGBCiGv97SfL26dnFEBe+okQi58Vc6O72FDmYSX+RpRE38ZDE1xLX1H8dZ69vRj6T17TSFrzCuwFMvUsSNvlctAJwYCIGYUa1dXkIEu+XNIvA6akGjHhlEMH+yEqxpHiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000016","name":"pumnamuns000016","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"28439d47-602a-4a8f-bb19-14f9b09db3d7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000016","machineFqdn":"pumnamuns000016","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000016"},"vmId":"d62aae91-5665-4af6-a31e-ea63b36d1596","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAulo1PJanJGeH7E2jL4gRmEOg5QbDgWTsVGO+AxJM4+VNeZhJYPnorWzmeEJKRHP0ZY4iBMxf6EQo2KHzsA4MD/0+caMvW1BAoqWQvsq1AsKbQ9tBPhrDa6q+3gQuk/2e1kF7hqaCGXEkqeKmiMJUAIEOH/zE8/aBwZfj0ehJR7uTNgHcqnJ8Tjrk/bbUxCsM6rIZ3Ge15x9vxRgizMR6K6pUtPrw/M75LVxcBvST8Fz80D9AFqVoT6RVMVuHdHPwioF4IMOWENrOqYD4nUzNbfi0ivl9MzFkBt0FvP4LP7smN9l4ZVweaZzN7mUWFMBBAqeTeGSBpo++Kw16X74feQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003O","name":"pumnamuns00003O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e23ec845-db56-4d30-b86a-63e6eb23eeef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00003O","machineFqdn":"pumnamuns00003O","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003O"},"vmId":"203239cf-284b-47d8-808a-70e83c0e6173","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApIv50qQBx5C5mHJxsMghW/qg6kXWPzXWW1OGyXA4sbPlJiCm0cOyC2S0tcATw3gU9z4ILAltmMAFTTplwHe84/I9YdwO395TnlVQAlz8H6P5Q5IYgudXAFhjzuONDgMXehDv4HUccFvUszjWtR8n5i+acu4ComcaDluwTweEzI7np2PP51zYu7llWM+40HtMSH90fK7Qo7MCEcDXMaSKAtmJL9T/HzCGZbNU5huDlBvS5j0HuavuC3OFaaaFM5aW9ek+PX6SZQ6gi7ySbm2h0qnmHUSy0tfkIl5E8yji4gg1Yg3CuSRKNqebNr79kMuNQibj38afE4kTddK0WHVEHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000U","name":"pumnamuns00000U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ab93d771-e4df-4af5-b2b0-25b288bbae88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00000U","machineFqdn":"pumnamuns00000U","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000U"},"vmId":"e97e34c1-c0aa-4c8c-940a-9a6bee461186","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvIb2T3Ig3OVQsUdCZzkg/+2W82VHD4YF2Bf8hAQ2/OR8v3F/Oxnmc4j/8Kv2DNHvMSp4xn0jqH+sbTCnh+84320mii0sGdQHAD0iHPBs4Mcc/+YSMeP1X8yu6oNms/AI1s6fXs3sdlo7f9ccYsKniJjAQbvSyJcBbdyQYkhAZiND61sIAXf8S4NZDhQ94BHc6J6xUSPtrUJOxy25KSV1b8th2honO7bve7ccylzfs091S2PBpRjyVbzv3uXae8pMiZcoUHBsvKNeGtf55ZUiVHN9ze0aV/EK9PdHLtxScJgAjVnj31uftpUWnwybRHrEpLt26o3DEvOkXxv0OE6BlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001P","name":"pumnamuns00001P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c31ae9f0-88aa-458e-b2e4-219eb062bb89","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001P","machineFqdn":"pumnamuns00001P","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001P"},"vmId":"e3af880e-50a2-47f4-acf6-c0e473587a6b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtmZIt3gCPy7utIfjot1RulSU3RbJaDDtW2TkSBpj18evpItJpLTKb4oBeGnP5JzoIBMRiQtoaWcpKPmlA8xH3rh3GZ4Lc31twoiZXqDzzM+X3QPkwvh0qsFSwLwaTguU7/yPQ/tylra3hgqijr+vURgumMv09rZY8ZbDgekjudeOK8IJjhV5KuaWPoQ2/7EOhGlSOABPPaxF3LlZbnNPehjVRd1T3lSgch655CHxSbwVkLX6VaUoJNY8EvbGRm3PogE0BMKAEoliU+QcNrjc6dKV6cGZcuVA2dyczX3Sj+2ldguCZ8Uoxrhg7QC9vu4LklvKDTti6VyJ8YgAfPjOmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001F","name":"pumnamuns00001F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"90899f61-c9a9-4b5e-8b05-23e136c1c69c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001F","machineFqdn":"pumnamuns00001F","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001F"},"vmId":"6fc7d6c6-f0bc-494c-a932-13a1d1608174","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1SSTHFX5M19n6wlVvivob2LIoR6QkS4BwFIVeIaAxSTaEuAVdUyDRB7DrxSk+TeZtrhBBwwHj0fk5NpgKNVwudq6qj3CINkJuiVP9TwKDvPybLSNyX8ejJ60arewUET3tKH8Erg6eDZqWTUXDeiFQxf1J4ADYSCXI74JuU9Rpkxp2sGsx352DHE47Mok9i9QOw7Rkol+++t3a//BwsJYP1DLLXDyvnx9qAOj0AVcdmvLWD7ytIRXRA3QFyaqcKX3iKcWdH6LwdlLnogLfWqz2DkQxrqF3Y4UKe+gtfXjZ9ErfPjd2Ib068o3maTBtjmyEQqIDN9rz+WNWGkmsL9VnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002G","name":"pumnamuns00002G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7a28d83d-faee-4340-bafe-a0dfe40eb8d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002G","machineFqdn":"pumnamuns00002G","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002G"},"vmId":"7a3ed7f1-be84-4963-962c-46480fa49fb0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsKnJ5LPCMW3CMvBzGgXt1Lj1wlozqAcHc8KccFVi+IXgXbV8HY1se1cGJkusrrQ0RGZCnJcO2VnV3d+8Lr6dZB3FR090g23BVSpltAo55udHh5qNnbUF/7iJ7EpGtC0+tggafpUgpRUhahF2qXZjenYqR6AGro4FLh3lE9j9O9JVDQV4N7gtCCFQZ/Os5/tozs0hf+iH/P82hqcI7WdBPEIDRJsOL1tKzTNO/SgcSskQ9pFqpXq8rKWQpuoQn+FhEJzB18vusE3GTqkNSJYMTiXOjSlGxppYy7jP/7Elt/W7QbQd80Rfyn8q2k51Ezqm4E0/OktKrGcqrRZn5Hl3QwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000E","name":"pumnamuns00000E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"366b60ed-0018-4e84-a4ae-6f7b1624480c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000E","machineFqdn":"pumnamuns00000E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000E"},"vmId":"d32f352e-de94-4f15-9995-3349d09e6794","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2GyxhH8Y/nE1IB1QweD9dVm/Bed30yjp6qI2P+BxSTarqSv19UTps0DMFc6WCYWYGNssanBR7ArqkVJ9RtqHNtf5dlHq1kSJGdLY+ZArmL00U+JiVtxzmMiGao6mV3eKF2WZ75FRrct3ca+ZPxeJMx+4Rwk6zK06rPi5pe9hwH5GqwYtu5j4UK7ZH8opD0VW6vaENCRAdqZiiT8f6lIwGLcGdTVdwT7YBapXVilDq/V68fWorCQdQrZwMVmxnUkzioCProvZTPj9mjyZclz8wY47qYQvLOL0qPFkTZMLde9eVvUIDOk59+g/5E07FwlHBMf2WNwF/0HgygxnYvOipwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002B","name":"ukspumuks00002B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a3f29bc5-79e6-4fa9-8c7e-e433f381ae58","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"ce253d24-f6e3-440c-84f5-06a506834a5a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwsimyff6ZbVD5kxSrH5tbppSRjzlQaSZdKQHyMqQb8crLOBXBjX5H/iQutjsXLXdyKWW/WjLDNNUY8EvSpeGTVTKhD6itD2ne0BpXdrbCLc5bZ2n68chxIIrm+ABgcz1oDUtnIADt06Ve4G82mptpnWoDG4CMiUWFC/uEGo1S366clBxiY6a5BbOeIuIpU5ukCXSDxjzA7oj06LZsQgBlVTjCz2k3fQKnjtQFOndAWjQRBIj+eps0E1R2rUjUsffkXuYIW0oDuPeSUUT6cVgvotOIBnYthgtxsPL9VRmcxx6ffQLsgc3VRAiP43JPoWmLdABec2fWp/TljHG9vLCswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000P","name":"pumnamuns00000P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f45eba4c-ea88-474b-8684-9cae8b4d8fbc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000P","machineFqdn":"pumnamuns00000P","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000P"},"vmId":"03a7b9c7-5acc-48eb-afab-8799effd8980","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAucwt04cZKpV2yJcoLH+OskjT+B45sH8KRAQxHOS9ErunoYxJuLjVE30m8V4AR2K0je8C+246bEAV8e7mPaoQRsmJxiXjQ856HVNWIUQkTlFCZldNJlnQVhCcAxvR5V9xzZkR3R6GfusWUzyZTgqVGK/DyZ33uo3sxWE3qYxUDALmTZEbXE3S+HCVaop8aiddbbXwdO8pRN7NV1vBmO4/NnlNVuoyrFq2umi9ipZ70GgSpnAgwR8fKr1GJmUQQKexYKB3agxVzaTUlOmeiuzs6xiCbB2HYHLc0MiTofQTBFYXtN3X1LyRro5HqIcDuclbhxVrYtD9y3ecS8L7WP2VLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002U","name":"pumnunsig00002U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"11f851d0-a5ce-4a3e-b7c7-127d4c949bac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8f3656de-43e2-44cb-a56c-b9b0f9d3d991","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+VtAxcFq0GBuSfrhgxgj4twYH3Z8opNgWcJ8p7pqo40iivjMGhVdWnN93zOd3Dj6AsXFwyrPw+SXNrTN+hrPCVXMIwqlv589UNnwo+SSAa9M5qS2XTZzwEhSySjWf58VGeYOPKpQs2vSTWXu1HxRtJg21XK/6yq1XW9gktEU5r9S6ysUK/l2XA6FkejKtzTh14YwM9fxEUpUwy1qK1iy/uWX9+eRQmVGGUPNrkjnfrqOBc4I2KJXeEU/gN+nzr96e2E62VC9Ni8qTqT0OFlt92rzmlLMNN+kmsK74qRlWvhQzAEIDxczH9QM+F1m4ibM+fgX82C3upjQAJt5pOOdOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000038","name":"pumnamuns000038","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"015e54c1-ed6a-42df-b709-dba328e84179","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000038","machineFqdn":"pumnamuns000038","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000038"},"vmId":"26358df0-3b31-472a-99c9-461885d962ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3LZfuXBUputAnAcwsxdonL17JEr4qIvPdS97vDHx6xV5gbNyNtCBzkkVl47M7uDFEvHKfLCgvMAEtp3h81UvjTm2LQ6bL+ODsXAfzeMPIhDjEgs9j5Lc8ECNtfhZ8aMtTy/UsG9qSz4wBKlRMhXFX9eoh+KSiwKl3xO/v0Sgmn/HGMBWGF8dhow34Y4vcLRMn1MCbMtb7KA4TUHxGxREIHEI5lqYihvVMXumynPFWQz2s5+sSjDHKc2ksBwtSk01eJzftpyi7H5zNNXLWOZd4IQH2o32LNp5wHHhRSoVw3Tq6EwFXqTnujiYa6XdiH2Ytmg8LJfLwwICay2gtXj/lQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001V","name":"nepumne2r00001V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ba5cabc0-7b34-4141-b5a5-782ed61928d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"928645db-2503-444e-98e9-108c1e4749bc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArtc2qSBab9jYVqhQqpU+sZYAC7hAWlnOhXm7g+Hf+dV5xOnZd/YOE7HR4QdEinbAtStKPhFyQC/dOOJvQuNB979s6E8JPL7yVhpa6p+eUuBQW3V+4guTmyi+2VHN5YuMy1SqMz7b5XO4HMAN1m4l8ReBpUmE8ERktwNgEZMBBmuBPXeifqa6cASyhxzAVvIsiHWL6kwA1GBoXpc/4UJvyrAyckk2xVPPpKsTeDGBwkUybVYTMvXFmffFIjrHJSEnYKm5aD/HOp4tFvGQofkaPJgb0+uvjMLmxupZOhlvILbzjjKVx6KnZPaLO0HBeqBNaF57GJ3oaC5unlocX3WJWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001H","name":"nepumne2r00001H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"975495df-cea4-48dc-9555-1d6baeb2cdbd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"89937142-ab57-4cb0-8ddc-de9cc010e6df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt4PjbSHL4Z1TBWBoShycG5m3KpEBxl42lWGgB/619S3QPtbG4pzBBmObnroP+PpeDrckvpdp6Ke+lPCGfcjtb3kgpQ/UzsxaOBdGLubmqLya/rzGJvmJn1vLoVaoLyfKdHLJiksNiWqQ/y/GJ5t+YehyiPSrieWIEi95r+RGyPke7l/tUOqmBiNRVtqTB6JbbXfRXAda0ZDZ7hst7qwyhWIuLELfEc6kJTU0eTMowU7/ONhtYuZoGUdoUj5gsFtPoiiC3ceCTV2qMauyVNjeLfKaTgGyH8xQimmWDAwNf+5cfwfFyoFM6tw+VoYdwoHGLHETZz4XMHDgk5bUgKhz/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000D","name":"ukspumuks00000D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1aaa5477-b329-4dad-b220-17963704c6c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"01311c6a-e5e8-4b5d-b7eb-4d9f35af0305","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxrgm2ekDZTS/d3QU94I29JGeGwfF2wO/na5W+zM96u2Rp5D/lps3XJrb0SXOmV4LBgCDCi/6JvoT2FXGgzh1zomBIfNEv2pqvxqu3A9sdt6/8asPxq0Hao/PgLg7KlOTKhaFOxLPQci+cRXj+OL8Z9VdZSfX1Ia5vA//jQr36mfvQonss30gn2fKn+tOYI2M3ah9VXIo0+6a5RR5VUzC0Nfjw25dkzYY0DsED4bpoJ2TE/kkdeGZTIz00d7MJS1xF7GbChLJVwo5mICxDXk/z3oESh5T/fMlCz1DHVJKF7+Uu+01BY+rUTiOBUBwV8ancctc9AR/TQ6F/XM5b/wQSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000026","name":"ukspumuks000026","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3c53ada8-3dfe-44bb-b8ed-a1d49bbddda2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"9d4fec70-b6b3-4f57-9457-bcc6726c9ac3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2OwT04T3v+cDGCTw14XWFCHWIMm0SAT4S08u9/gxKtCj2ofvcSLK8o58/lWhc9Ctd19CuBuW/t9Drr2eJm4nTDmQwN/9H8/u0jTTLTTti1oNlQjKq6sqeeURLsvaz0tG9h51hCPd7viuhIA33pK8wDj+sEbF/5rum/RtdY9ShkCQanXwe2TaVROfPeJWIWHdunuIbPJc5ohdAbs90o2jVyoLF589y5w7h9iUxEOe3oQAie2+D8Eh9C62PxIjO/CpU8EyoiX2Qsu2m6Dd5a7iyyubHUo5JEE6tedXFLBtMWBEguP4vzWmcELoaaSpJGjY8NG9REfp8FGKMcpTl4zfOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002T","name":"ukspumuks00002T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9231d129-7bfc-4d5c-84f7-653ae5683821","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b9f85045-9ed2-4438-a35b-89eb615109e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoQjUkUoEjsZVenoW7TCMXJS5jXz8XYWi4ts3ZpEFY0AbzptC1rHaVYTuL+Wl0KSH7ufxP7l26S8VeS+MwGXrfl1UltnneR5UCQpCKDwTvb+1U/GVfvIRAh7JO0CH2RpLrihaZWxFutzo6owNS9P5WHTkB/gItvrrBZJD+/5Ms1pM2GyO+lkOdxknWWNGABC+plv7EhEF753hDP7QNEN2kcR8v+uM8sAyRRCJoJyPi9ZiKDa+WSRx6Lu5sg5Qone+hR/PZHdHL80bYRcBicoODgtvKKwWaWRa3tYiwWnkz86/DF3rqcSYQQqGDNoH+MkSVuPiwWIffKjwCpfi/mrQ7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000O","name":"ukspumuks00000O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0fe5bee8-73c0-4a75-9bac-1c80e9fe525b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"792cea30-29f5-4314-9ff7-afab88f1892b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqVQOwq0QzvfZT43KCYSAY8lGoVtNzWpZkiXAa/f40q472bh4Fzcs369RcBjHFEFWDXmUKmPHfkGTjOHfLpgFqZQ5Id5FBcy8GsennR6UFo4KdJ6HlKNoEr9MgZ0RrPsm7oxSUgKyxvbULwOqqLAAU5hcHWrlKWsdIXJ/339rlcMIKz+PkYO0PWk8ZLoci+hauPecpAs2cUJxnNcB4sKyg4vbtlFtjeVjzN26nKz9KW3qvhzOYQI1OHBQM24fNXtl53wNCcxvnlcbo36wrxsuMTsdLWuiFkFqV4ID5Xaqs+mvOKoO4dhkY7q9lfAk7ueSoMqRYTWsMeJgHN5ZAIrHEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000022","name":"nepumne2r000022","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e24655d5-ae0a-4150-bac2-a4a44f4f8caf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1908d6ba-3db7-4b0a-9300-9b3dfff11919","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu+dsIYxo5dBEFflERkKGA5D4ieA2oLwzM5uKR0mAz1ZRfkEWrJ67hn8W1AR2nQINVRKIsTwDlfolOxaUpoYCjdpmhQdHrhdBkr0g7tDR2ZEX9ij2sws0Qu5X//bMFHQi/CRIAUAz7gGdqegUIAlGySyfDLd/2Vpjb01otzO0VH1SuGXfOp2nvYO4VZN3zpBXviIpvxvPZSrHpYlTwHfLeplIgTQ2nhUDsz3P/gF60kWQA1m0K68rNcVFS1yYydzJmGBKy4ym/F6LojQ4qexn9z+3WSBVMflTROxpHou3VC2E6Fq6fwnjEmnnI9jXhlwMvOjHB2msE3k53MYqlVFiOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001X","name":"pumnamuns00001X","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8c64c3f1-d2a6-41b7-95b0-1967be41ce28","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001X","machineFqdn":"pumnamuns00001X","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001X"},"vmId":"b1d36c46-9292-44eb-9315-5eae22972fd0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0+mxs1VmTvOmrgi0yGQmXjhANM1QRy6MUsXItM3hJkEluPcXa0LxugsZJ3jilYJp8549XlQ/IUbrdAoGNIEbYpzgsOwuZJ2H9fQGJ4Pc7UoKGYrmh7Vx1wDRrOCOE7bzaPfeeIaiqwmfLaOv7yMZqUSP/Z+y97oSJwl2EosbSMyTOUvJM5ye2fROQT5tg6azCHZ3bhO8RcQuxHr4/qu6yRik+VNirYB0jDiTzbloKHxcuh204XvD5BIpSW7gw2FiG+Jv7iA5oJLTLUeU3ui4pCqk/VhBsJAkuJ36VJK8pGgMiscGqzgd+WueYbIPtGmKrgJqLmW6fDG7QLhcwRf50QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003P","name":"pumnamuns00003P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d50abe0f-7178-4e90-b9b0-f78e868be7b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00003P","machineFqdn":"pumnamuns00003P","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003P"},"vmId":"d91ee27e-161e-4231-9ed8-9e35d824c73d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQxKNnIIrydAej5IegNlSNiBdrAyu0hVkySN3QTsmutpN6gcXn2iL91eu1tuDggWj8xf0cduG8YaxXsvGUocaCZIBLsk83CHQNdNV5223JMnx4oG2DMPCS2KoNZHY+Ee4ibhM3eqzv5JFTfReuYbZgTl1kGBF5CKsNj/bKCcL5/QSiWJmR7SdP8ZcfVVW+dbVPmm8lc6oKyTEnVjF7/hT4Qb/ncOhtFos/Nl/FBFTpXdzceC2VqeR42CuJiPdzvptjMw2+wxnje+L0Eu37nirA45S41r5LVcZIpIV9AytzaGTZJrAGSU9mwJLym/Os2UqesKlf9uXqBsQqF01mCkxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002V","name":"wepumwe2r00002V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"504db780-5b9b-4058-910e-c4e30dc4d966","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"ef61b122-b26a-4dac-a862-842c711c2d85","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnx0tIlcytnPPvnltUTy9KlS3/u64pd/8kTRPJn2zKmfDdrUfxJYatUuUp0l89vy7re0rVZ11E8lb3EE5xVrBRegDaWKZnVNL57+HAG4aXkhVDbsIqMlBCoG1TTEDy5jnd+VnxGB3uuPmTXWvB3rszY5TDjcECjr+uBNTwX6omcUf/I94E3thp29AFHkepTbDH14srtKf9nSzYI+mDUd1Djq1RrK/KXtURpZfRjH8eNwaQN80eSg9NqAWQ9jDjDq+Z2wSY+Zs9TmAZLJ1P8mxIy+eSt65BTAHwsxROLgmitPVxeYsBs3vrn4v2n0S/oToySL4QDGP1nO25QUsFZft4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003F","name":"pumnamuns00003F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4087fff1-ef95-4712-9946-7e91d9a2d69b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00003F","machineFqdn":"pumnamuns00003F","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003F"},"vmId":"fdb47497-7b99-407d-90ff-93a63fc67edc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtqnCKBb0dqwQuVobPwWXJZFOkpC62NISx49PRDBfquh9kJEslllNT85x5PEfMn5PoFND9IVP1OhitGKs6vQUKNh1AsQ4+ozCIKBjpMbt3g5nBWklsSy1wP+CIw4sSB30aliLxuufke1D+xprl9nunpjQLZ60Lte1T749buBBkwIzRJPRHQAN2KwFeP0D+KbziLtqfgnoUBkZoVdAdRn5QIugcQAyNs2mMn41Xc5DnvE7j/rYQSl6YqCv2jeZ0qFC8WFZ/csIluFyG143yDqHUQSsf/iCY0vP1zdBouUoXz+k+c8iiUeQf0SerLm23BQRewgJ37nzhUFC/RkSc15ciQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000013","name":"wepumwe2r000013","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ac732b44-014b-4268-8f5f-08582ee7a0bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f83dad70-4068-4731-9986-5e63890fea7c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwVW3gqSGdWsREiMcJnKzJHpqVPhW+i8z/1ajt+Upi7lEXK597B+TyprCYKF1z5+zzyaLoShHl01SyA0UB64n/RECSLvHN9JYM+I0oAZsxMX6D0FBX+Ix5oRy8h5+49koh8PQO4UJwuBXid+1Tl229Ad78g5+sulVQAWjeUCVb7ET8bRSGR7JWbg4rKry1YwC0OKVyjy70e5EtIjFDEICrM0aq3xglRkrvyV8tWSxAjcylWhrrYIr2PFhtuLL9zcoIGBaAEQbWHPUh8QasOafhtb0QV7870VuSAzvL1UNpK2TSAqzc7rVA0To4S/9yLngzab9Q9nypm5f4nH3+5QJgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000I","name":"wepumwe2r00000I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ead4d390-13e6-47fb-a031-3e8d83648dfb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"e0120e0f-2cd1-4b4c-aa18-242ae188a6fd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuTojqpZp5AxaEkgv+w4WdiZeZk1QJrgQO2zOEAWk7mqvE/BK6NzeHXiTqG5sZI9cAZIpE5HkRR2Js8OkarNNPXF5dOPc7HllcNnmX0G0RdBoC0/+UNJ6atZbnQSW9IbB4dWfHJTlxBSJhihwrI/6jfxhb3CYQQDYJrCEqVyqgzn6yhIU8IWMkvVvTVdLQs4ZQXZk+OiLi9Rcpwl1dH3Cv7b+Jai08QWLF3H9L4ByfsMMsfeR27OVSUUokg9v2JgJNASbyLCQnicLN/WeSopYTISLTA39IYPSimN4LL3sTDlgs01F4unkR/KlqjrM8TZl5pMrHqsrQSdw9+8quJYczwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002B","name":"wepumwe2r00002B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"38eac6f1-f4fb-48a9-976c-5bad5e976309","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"656191d0-3f7e-4f84-9066-c066870b02dc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDCB/xRkVgB1IxPWGoIc/VM2C8cgqiYk20qxtrz1QWcehICTfBvYckoXa2pM4pSkmEWbHAAuP0nyByDrTW+q6i8t85uPZmb25BFB9h3LO1/M1MfJ91JFUSoYvvRtrIwvu19T9HFczIVP2zcejk6fUqo0UUd4RHvGFEXGG6Mm9Hdwf+0HmtOxOf2YDY6fpl9on0xFwzYv4jxU3YJT1crrz9smexzm1PhAR2OU21ACFy2uwiAbVjGF1fdjvQnD1hVCoCcflmmzRXStucYTsygbYeswSJ7bb1otPvYhjB0wmLO6EfKrBal2ystiVPBHBHE0EvIZuDOlarZzupq2o9HZ/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001J","name":"ukspumuks00001J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ecfadf35-98a7-4cf2-957a-c2690fea1b6d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4db1dc0e-e0bf-42dd-9695-ad658322e042","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Wo1IydN6j8Vh+Rov2OCdjqJ2JHHBXvr+Dljr/Ak2TxUGnTLIMvvAmgwKzxmSjERXvj1JQVAP+kwPrDBymenLEt4OhME2uO7yOtosnseBcb1SNTywmpNfcd0m6mYHkAHPXoZpYmq5s4JeEfyfSyr97ApxMHkzfIgeJeH9j15FWVHMjICygMlczW9NDN73r4hsTmOIuQRFJyfNhZi8DPiohvx/gG1C7L4kEJjj3AfJ+Dsq3YvGEHWhY3WR1E0funiEoiis3odJODGjlb4/rPwJ1fqJhKb2gSqX9HrxBr3GkC+Vv+AIhJ4JWqNQVnu8Vi2bg8BU62x4vzp832BOyxBVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002G","name":"nepumne2r00002G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a1045337-7f20-4692-aad5-8dee3a1ab34e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"984920e0-5995-4cd8-8d3a-cb141557bf68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArctOXKmEoi7wquGORro5GizD4NKBa1zc11HR7hM211+Csksf+GWlsA05tpg9ia411lernP04EBW0lyBB7d4LhxGyGDkY7yQeokSVbQZ6wAkK/RyEKXNFrc7n8K65FYxUM7ZW3O7ZJFIF9WgG3O16+caQpGz7kKDDifzUJBwpjrd4AxJ7EL/PdrJEE/YgWo2G2/teQfvWD5SMGc/2E+LcXrz8zAv2OEK8lSw19nVFnmWOQk2cwNitH5qh8P+gKRtTJ46IfqVx6R9b19RJA1/2ZvcIn3rhnuz6CRQds3Uekh7fLkmfvV/nRxiDZwR1KNAuIOMJuLE0rrNNjLeyriV+wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002N","name":"wepumwe2r00002N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5655da29-26b1-4099-bdeb-a105a00bc109","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"37291adc-8487-4a28-b8a7-823e33610133","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA19nholdotwaQYbAArn5Yb5wUQj7WfGAMdUUAurPh85OWqZmxd0H+Xm6NJMfjwYafSp2IvXoSdKtqnmQgePouhI0Qc3XBbiiADbNi+dWdBhauIJCF8sgoCUw+scxJ+N/cbTKpyAnf7JNKZRQWlZAFsG0NqtvVUeQF57vGMBeS3DV1l1sP0we4rNxEmMKLEDhiV27gnz1J2aUXJkrQwI5Wr0jqY4Rp7BskHYuAQZ9OG3nj8MGy3IxQ2SlP+Hy/qfFFv+B/SMWX99YZw4uTZ4PkNF0JwtgXBeLg8OxG+lr17cE+2lozoxhGsrvleEX63or2lR4oJ86T+0NLIQsBPWTpWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001H","name":"wepumwe2r00001H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b6c6e100-c6b8-49b1-b7c9-1a7692022ed6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"067c22e8-24f5-4a9b-81c3-f6d3e49e0466","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3zqe5EwzQ5qK60fjGauk+SHdrrmxjsM97efJkjV0h326dBmXUm2BJkN3CT41umqZAXB3KoPw5zBtyPO5XRJ6XyzfGRIEmTI0WsQD8VfHftQkGxivRPlYAxmPY/GzPugwJXeGifGEc/U8OiDZ1hG2N3dMi7/Rbd3HePIj3lgYOw0DGEqNEj8obusDE44u4iujHsWe4n+izFEGwLekXTKEn97S5wkTSQHge4ujTiTaIW9MVy7DCkmLKnoB0dsVHFasbJtdjef1RQYYlifP4M4yfca+RGuHki0E2zPLlIx+IZhW5SkjAuy7yml/pzhqSgfCvpFwVs0NSejeNamQZTlddwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000M","name":"wepumwe2r00000M","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ca6f7f02-9339-4510-b15c-cc43e94fbf65","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"wepumwe2r00000M","machineFqdn":"wepumwe2r00000M","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"wepumwe2r00000M"},"vmId":"75365ebc-7a90-4f24-beda-5072b558a2e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2g8mGXgrUGLFjtExmI6uhb6o0lDJ5+NghzRTNZkgM9NxaPiRQY9jQvtI/896vaJcKn6tZl/icf5NghpYd78xa4SKmgTV6af2YqscWZuOwUUgQwD4SyB1Ksnzo7Ogdjfk871rS8dxz2AcUALBTo2Vnhjg9xUPATKn75CuwyRCGXXmE3He5ev5/mjFP0wXAROvaUg8MlKPWRYjz2z8SAj/E20I5Fpk2vxduthMKQLxlfeE7+d4i5aP+2A4+SKiaRYECBiFfqboUIBLa02fwy4WpwHL/M4tRuCXu4NqU2CVYeWzIZk5PtAEg8/7lOmlFCJrbGlyffb1uCC0YGhZsjnvdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000036","name":"nepumne2r000036","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b0d62174-3913-48fd-910f-f9445504b37a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"491da173-f2ee-47f0-ab1f-1286ac9c4b50","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtjuDodTNMzQaSTMcUnkwnp3PFv0/b4Qw/MW6Hup+TP4B8rb2ZqFrbdimhCMqNtXT122W038VqBY7TiMoAhQj6SpSD/JYVJFVYWQRJdkDg7cC5FCeAVMaI/3/2oSmz6XLQcCBEld7LoQMOyrsdNCA7WfHA7YqAfPAc/8aXdQgyryPIe8Z65BrOegKo9+H6RX7QknnRJgKgKw4DkW11LlBCc5Ogt467gh4JMovu7FGiYH/zH62zQ8dKtnjHrpbNeUsqT8oA1DXRi2kJwNJIk+Pz5QH+xRq63rfIwp6HERZB2RjIaO/KxaywuVNAKdsvuwkDxt3gxXU+gYaeMh2tDauhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000027","name":"nepumne2r000027","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"889fa6d4-4df0-4e5f-9642-1ce3d6936f27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3fedbcb0-99bb-4015-9f5b-b6763f3facd4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2JaQU7zblLvmXhgEnL8gufzWTjIVZFLjG4UJGRtw0A7SXuWlHfMoo93+dkI3IahfZ0oRB0QXLWh3TBTigd9Xx/6zwZzeC+wR8yz1QbHY7uL8K5PKnvp5AR5r/UF5MXquS+2uP7WK20DewR1TupFrzGBCsGRNCcGWrcb6xH9zkFIBQHBWkIuEix9ZibQyjC6teZZZ0h0CTU2lMPAc7PE+e3yaSRU8Ceyd7fVs4Kx5hSUlII0qARZZJgXBJ5W97pOFIIsuEk0NolV+qJ5DR401Y7pz1cpIAtrbiXUeobxH/JT8R2PmQPQbuRyhFAkgNGm6BX1WmdBRguIQ5cpHsHmbbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001U","name":"ukspumuks00001U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9b9063df-163a-4829-8aa8-4844b1fb5218","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"62ebe388-3f90-4ea8-80b7-1d292b26e15b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn2oJOW8fbzomU9vKiWZVND4/7x7xll8Pemh5PMRd7kEA0NbwUbpn1522LDPzGH0F7ZWQS7Bo47nV4CjaSR2r181LRlFM3MKnaLrSPHgtxSMJ9NaVWVbAntES/iNSFFNmllhgweihcRr7xWB/QijOGyjWI6I/ybBj8Z+iIvMv47m6lIRhvxkXr2iF7cqN5eFnooIbdhy79zkQQ7an+MUtWHYXk6NQHHJH1y5LjKbRYGESKZr35NLaVNWLKN4xMNfXi/w+jwHlDKp/i5s6JMEuyyu4bkz4VqLA4xCEboj5379KpTxU0ESEsY2O9XibMM1p9JeQlBOR8iF6MHtk8ISpqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002F","name":"ukspumuks00002F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4076e0eb-5558-4b40-a6fd-7eec96ca1773","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1f37bfc2-a629-4df5-9318-094ac4bed3f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1JZvQnLZvqj8jaWhiQdpWX18ZS2FODhXBfWCu/0z0nv8r7ISLwRfbXskKhXDzA6K3/YV7ljEvapMRv/GtOz4d7/0B12uPTyyrsDrCKKt6qq7bZppiZtfEHjw6AiPcbByQDq7MGvIYIwVTjC5fH8LzERwNyqFaCYvrhJwQ2Ar1ltbYgCNQ+FQRBaxgfXmQs2tJd7YvQKI09XuKpmzHCpVvF7e5zy30TTNQOIK7t+pnEO9uBhWywPzW9r5Bxvn++NBys0+bwH7Y9sqDfh5DxVHWQTzZdioLYH680/8iT4lcOvsC8kvkA5b4JAwSCor6pS+KtdXMyICJ1NHVwhXWr8TDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002N","name":"ukspumuks00002N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c7970ace-6891-4764-8950-5bf2ec0255f7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b178d74c-934b-4dd0-a340-b513a7958cc6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA35kNwGar425zu+5qILL1h2r73t4cNsjeAPJv4xG1AMagY6Er4P5xhNgG9FzavAuk9Ji1J918N41Pwe0rGL+JVRZr+Jwx1Tyrb2fG/SzdZAfCF1bEEpHe13AjqYbvy5CGXyvU+OnAbdsJdy76dN4u2bX35R4ZJS9hmG4pn5bbArvtZJhjZypIl+JNRwo/zUQgGnPm8KDAi576/x8NyLgnBTXcujLWst/Dy9pADNLLXoMKIvDF3B4jC7HnqQAb7ojYS9VUXrTomZrnIufT4dX1V3cVfiy4rg/EetGBd58v1zGMUh0qckc6KZwH5KXvD4w9iSR23dZo0iT62xH/hNvjtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001L","name":"ukspumuks00001L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ec23ab3b-1546-4632-b434-cae28e626478","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6233b099-2cbe-426a-855c-caa002812904","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu2G8hwh8zJ1eseafmkFNIKFcWcL9AE/Vs+20LrPRRuBYMmYq0InNenYUA6W7Q9K0ti6OZ9/ICKhEuuEx83kLjxyhFoQbxrCiKILWwBg8kpy7NT9SvXpizP3aJqZEjwKI876KIbqkNEVSfHAHLasv6zB8/YAXvBN3/XLfpV9pf0dlOWid27PAt/x4sR+TaOR4p/q/38kbKL+3+Lww6Rrf+ikPxzR0EYMURj4UOi5w4BG0HIRE0H33/sId/IAlcPA6tiv2rTsLbhTYnTVYHTUBVGLjkiItarjcSY+Z3DWsoyMZS91HveJPo41BWK6xcv1kPk74QwCZsp0pvSChQSga2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000003","name":"ukspumuks000003","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f8988fec-4c22-49ce-b500-63fe73928f55","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d7776710-6af5-4753-beae-69573af3d012","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvq1bCNxwumVlO4CzmPfsvRe4kW7VBK/PTCVlaPO/VhHMILRWjwASHDn+q4Yu1VNRZL7/ldkllc2xzEm57b46alflibPIADaAj7CDBtXO17nA9URqKuZCLjrH6B2WbphcdZx6M/eD/RbRSgAuDWoZGv1SdNwZ525fdHrLzytOo1xEH0OJcHO4XglSRGqAeDKptvWT9MwTSM2jWofIP7Br6/7i/cPOlGv6Vf4yehaT/HMtZ4wj357N8t1LDyVK8tzeMfv7TtGYZSlB5evjsx6HrjDGvpBBt4fMZqfH4rLstAlcGDQ1X7Qbr1VlaUtEHGnFCXUF5074Dc9XmYeXUtZWqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000X","name":"wepumwe2r00000X","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9e30caa4-9f68-47d6-a1cb-0b3ee06a93af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8bef7c38-3062-4d09-887a-722bd66b59ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsDwZ6rmt2nOygv1HO9XVmr6phGiW0DGjcT7OU9VoZ5/BmsFYIpJTdOmgqS3ae2OgV9cSlSGsi7d+AMay3deBee2YKrN0sUqz4RSaygLe3yjGSrogPETZoVcHdm8sujjfGR89K6TsFaSVTwBxrfvlzgcF63Ov++Fu7RT+T7Cd8LBKQr0aNEG8ykYhfyYzg91tC4E6pDY2EuwcUs0EE+fUdp1iY1B1sjToQXU8H1JZ/9bGhLjIoiCV4LHNtYwydUhmIDEsRYZifdIkTnrylcpS/ufUA02WOoMt4ausVu2h0cPm5n7ysRVC7P6pTXxVmKD1RaY1nqOYGSVYHRuV+EFOtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002F","name":"nepumne2r00002F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"253174e5-a02f-4a00-b061-c774b67e0ab5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6e969e8f-81e1-40b6-b032-feba62c0df80","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsssnjirbDXiOp7IeU+OJYepFJM+RBH/qA3mADotbnK5m+KtLDTP8EjEmKAyGArc0lLG4yfGg7dbbbzx9jh/vIs3PbyZv0KcTrPU88rrTqqTX4pCzuKUxpgLwy9jh8T9F8J9dHufmpgs3om0oj/0o8V6WqOKWX61NNaHD/jm9KLHlvuHgnRTCFST9xNiL6ncCz70SDxt2YyWPGCnCHzqPoT7wJ6I4VFsIraJfBnJp+TxX35ipLlfMRQvIKahU7LpNQslh4ksZLglSXNhW47YJM0KT2pmg3X82udP6DckgR1OBFWsRms1MV0pF9mrkbuqO1Vgw8TCTuCVwBbfx9SmlcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000K","name":"wepumwe2r00000K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c06eb984-4ed0-45d1-b900-c629d2e6a90b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b712b07a-0a49-45b1-b024-9a13b07e3e08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsrcqH/2vNO7Q5ig8WIm1POfoDscinsrWtMMwV5va8RHdmJfQIRjyojhSxYf/PoCShTZ7Yvum7ghWZ9mRS0wFjW6+5HQCv/627bENct4R4GLqQEjUx9GD6kAYx0hPkF2ZKPui5k00nyJfQSofD//+3yCuvhxep+1P4ljt0AdcNJHl+Y+GPVxUwW3WCFM17wZ6Iz6b1vYO9FgSupuQMHwYHNmzFcW7kaKDj4X5UWNYjYF9hOIuAyB64RJX0txnq2lRE6fdX59W83plJj99tua1QLomEE298C6AW9CmBHAzmoWUD5o6i9gKWuxob1HQynQqZyjC/3dlqDZ96JpoCzs4nwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000015","name":"wepumwe2r000015","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3066a123-60ba-4c8c-be1a-b68d3dfb2743","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"2763a5d9-1575-49f0-a4b1-4c8f58187bd1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzw9Yy1gPCwpx8jqBXD79kAc3AnECYYtBjzTHN1MHhzQKTLiEVA1GdB56w4o2v62fh/GYxLjDL2ZIwWlB3Zozq/v0pgEVjwUKNmWk84MBg5fSGUHE149c5APSvT4RU2feuLyECc84iiqJst4shCMqckF0dBl1PQFm7E7yhvmO6CqhSQ4orgK9el6Y/O2h7g2mO41Uh9lgz+yB/VWKN7IMJRtOV19qsb+lYdLbq5jL1WFLTiRssAhsNV4m4BAb8ger6I9i+CHItBmSB3YyFi5h5YCOVWxCIAzKFxEZYWTso3qaLELi6GOu2FJAw+WhE7Qhe1KDeyEaoezFUzgfwAsmCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000008","name":"ukspumuks000008","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"bb67d99e-0acc-48b7-8d75-aeafc25f40ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6443fb2c-f2c6-41b7-ad15-ff1d1d16764c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtYRFvrXALGfIiO+kh5tY/Fy1TIVmRegrq0H5088DMX2IdwbIF3ZwwFqAgKdem9NhNB9gt92KTi3pXowWLx/RVViEstOfrceN3UHnqxT0PUCpMb2w1RN66CwogLO9h540yLtiWyrzZTeL5z44hhmuOJdpnb8Bs5bkclVsACLl+i/ODinxgNArHtGz0lcZbuAJ0hcgBmqY8GmH8YiMhhWgc9Uld3ENQckw0TBli9DOVKm7HGJxPESVEX/M8WOYIRsvqM7FrEYIExTjawPIUUxkrCOxP2bnzsl3koR5DlHG+/Zfm9iUCkxAt5qkeYzKr0y/RLdYEjg6x0uusxHtAjbsvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000032","name":"wepumwe2r000032","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c23848af-e91e-43c3-9c27-1c53db4a1702","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5d8ea528-296a-4dfa-8f02-5820465f7ad9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7m6NvX3LX94HusyHu8hW8eLj6kb5inDBgf35Cgjbwn7ZZmHnAOicmMoyEu3E6a+t2uMPRVxzk7rtgRPRMvcopFrLXC9EzhrsRhSna0ae0734HHiInVd+2P0kDZL3wNcp0JX1rVN8dE2lxcKcOUzBL0VVeSOxknS/vewa6kVuExle1q6v/bgffJcU9yM1QqcrI2PxcNR+/Tvmk7qc56GSaKXf61m/A5ljNYvt8ngQeEQ7TcVdGw8qoaC7bu+xQaYY2SmPo3E8Z2qkmCTfi5YGk+6Grx9OtEtyqVZlg7TbcLpOIqSU0AWcJtTHuiFf+YzNHwCd16B50FaUEqWMrOY5FwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000025","name":"nepumne2r000025","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b46dcad4-70c4-4120-8a4b-a798f69b1fc8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5695e8fe-9998-435b-86c3-e215699af715","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAttHD33+CbWR2QO1SRz2uOv0iG/1UH5yKi3w2nyHMM1XinIPyblIWOAcqiDJxU0eTtruJSA9Ghnz8jReisQ6xyM2R8eDVaRLg7YJW0laRNDMb3WzXowkmgKleQLRYk1YIX5+WgL5/gD9t6M8dP+BqLArSEitLdieXrW6CeiFXNTgr1YWKPujDA8ZHttv7WNAa+OWUbnOleRtphbta0hNlV7903Gx7M6Dn5c4TRGZb2wMaWlj8AUbvnoNJNjILqGDq2Wn5dKSx6D/yIyNGjLUfS8IlptZ23G8razQSimYpOLrEe3DjnYYAiu0tnLjxyx/dD0pI0uZoujbu9HCFlHi+ywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001R","name":"pumnamuns00001R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"35671bbf-c88d-4fc4-a65a-5250251823e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001R","machineFqdn":"pumnamuns00001R","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001R"},"vmId":"00938234-e4e5-42bb-9cf5-fb062e0f36b8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw4EtR1dIxIoNCjTKEwznL0ihnmW5bqnEaDeZyPcrvlGC7zFDcrQh2efy4uYsDBfl9g5JD4LUsJAP0HNcVcxFqxmbvxpLZxridqybtu2mrwQIjx2AB25ZjXod0vQ+pqZ+InvozY+kFxsiuOyX1uVcVhPe4NSe7Yw9qa16dX5C/lyJtoSTeDjc8OuoTo6Hsu/wswXb5Pm1EflWYaU2y+ytBs1FuQPiuw3kzcDPu6RQ+e68/wX0SgKdPRdqe/XJbR2qmN3egbOO6WlToi4iqYNPVEwRlVnTLE2FmEk3GSQp6C1Jj8nnRqZvY09oWP8FuqArD3Yd3PWRLLOOYXR/pZnsOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00000D","name":"pumnunsig00000D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8d61e586-5d14-4104-b952-977bdfb02583","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b43618a6-615f-45ec-bf93-9f14ee90a053","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqIwQ8tdCjimIurQ3TF8kLVe8sTPtO3wQOTILI3fZi7CxZovmw2RFF+ekzxjKcQsOSNxzuUvj0GPProf8iG9QYl9tFlnlH1NRonpQvHFmuu1xpvNfOZ6R3evKbHZkPOR2NLnKQ4OYJon2U5vY2I8UBl0N7VoPZUS/dRs4uHNZrtSVpv2nVhzp0dh62kpyLeva4a/jAC2t3SsIn8v8SCBD6QuHIwW9fF0I+cDU4euQauP8ZSlQxmkDgrCNqaVEHsB7O0iM/xwiXaowAiE7FXt67KfznKgCqO/K8l+A+3ZlePSehSy1d62qw+vSvrW/BxG0CEKrpmgAYRaJ3j74YAVnAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00001W","name":"pumnunsig00001W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5cffd6b1-9cb4-4157-a6ce-13f250788af7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8f9aac9a-2c17-4036-9618-365372424a1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Lu1och0XhzVOyV6Q5lp0yt+Ea6y7SJzbKg01kPUv2rXAjjcsDBoLh3wbv4nfjsiPuY+RZgzzM7dvT7biqQVuXEjoRvkMzIh6sy9IY89DB8gpGXNJfnvKhdwJ5XhwGWk0bKWUCcvqiKTNhOsWRwFOlcsi19Hul6Ed4BxFAqiIcLic7+JdnWs/5LUbbm+yS5KemsmRuebZJfa3rHcI5ykvSEp6mCXX+Ch76iOkTouJ8KUBaomjuOSLejSXyY7kPaCODugsc0kJT0grUCb023IUT3uM/bFKEOtLpvNeiX4dDKttShd//RlGdvGe7+k25KHNonYDlTPaY9iVyN+kwnEwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000011","name":"wepumwe2r000011","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"807842df-c2aa-4293-9831-918654002f3c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b5c329ff-7dba-49b8-814d-acc680355790","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwGS5/h4iDbKBqFKc+R2Pl7dw2II6n1g65xB49qffbYEHpWQ2VatS+mu4ND/7EtMqGPIIpvwkzcRyGM8yp05937yYsfBsplllcO4XKkkt/uewEihQcu9YqEe05anHYVCFU7JoirUOQf6L2hYoM4DUaew4ijTHyTrkNIeJoJgrRv45r2BAO3wAS6FgR+fTlIH5DNz29q0Y6v42P888RZAjQidv6ou/53RPFc3U2uov1EfJMODgf7OiRJxJukAgAPUlv4Tl9fKjhcMnJ5QAJpLT0ro5BSttO0YpjuowcTE/qE9RWWwuSyzTzCKqUW8ps8ZtVr5/4UigtZhb+3ecmeTfwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002T","name":"pumnamuns00002T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c2480e31-6cf4-40c1-9206-215b010e89c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002T","machineFqdn":"pumnamuns00002T","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002T"},"vmId":"c6bb01f9-cf35-48b2-bed4-e3e7cebbf170","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtrjZSHA4IVom4d36kefnSv39hjWe3gB4l++A77WosTcWymWvMMmf0vZk3Wbp313xhiNsW8DuRjF2OWj5d0e5o0dk3TUVFB81zyPWeMCbQkJOpbGvS6Z5Ch2Y/7VlWzYPbuBWJ1WVn0ro69PA86mY3intwCKWrZ/Cj8lZCB1jKzuuhda/pUaD4WIGPGALCznbtJeah2rGEJtWmSrJlm1p58TLM1dJQd4AQhaGbKtPkDJSrlhKxh68nXrne/FpJj9latVJxJbVEo4HUe84/pfms7PTNaNlxfmlVRCwXIUJxxdl3e4Mi07jpddgPM5qBRqq9D7ndzSLs+wq+F40GCekWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000026","name":"pumnamuns000026","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a3449011-643f-4ecf-ba14-cbc4f7938a01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000026","machineFqdn":"pumnamuns000026","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000026"},"vmId":"158d4224-a1f6-438a-ad53-794011e3caff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArEXEZweynbi5WLgz1mlfGAtgDaiOq44Oc67qN2xhy+SD7sfUsA65vD1u4SRKC4ia+hThXhyr+Qlb5m/gD3EGI+5S8/BdWYg/ztLAaxZ0miD0S+EdotVlZAxMPPYIyq5WDq/jnzK7a/L2y8ddaFijBHSCdYhMZRXdHvn0wP2tS1lfScsKxdF6H/aiCiV+SW3JXQS3g0V+Iqy5Sqz86QkWe221R1nXKVAQEH9cnPGJkN1wxpP9NGEMiEPlhNNhnZ7FXXueCou1QyMbUQ/CLb09Peau5vTZaYSl7XdY2fryJu8Py02P2OIW59vVI8DZ0r/C+d+rct/bMQBZ8UVn0i39LwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001O","name":"pumnamuns00001O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"cbd6bf78-52ae-4e04-bedd-350c49b7b2ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001O","machineFqdn":"pumnamuns00001O","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001O"},"vmId":"0052611d-8be1-4e5e-997e-8e171b505098","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJbosNVD1rF+sw9gU4BOHLAudes9Bc25E7woZ6rT7MjYanD69E+u/EIGqjhif+dwVKe66nOB4bODAbotSGdUigTE9D6J3JN1XL0hf438r076avEPNWZY5wQYpINzoqZB2T6e61QqlHei6/LEqbwdCGeKiLo1Rpov7ONNHkMBZFK0nCv6S7o1yOv+jzBgzmtPqOJEjAAJqda3Vn+FGG9F5pXzcKw99fOLMZFWmkvery8Qpw2QRXXJllO1YBR9OIChfMfzbj+h8aPbpdztjGYYuZCX4xjp26zd0jAeO32i1e+SdLGgjgYlcGXPxxgAm/G3NUPQM+znUO9/7uDfCQ5/awIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002Y","name":"pumnunsig00002Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"93377629-40dc-4a7e-8356-4cf85e1629af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"60fea3b8-0b33-4749-becd-3f1858939fe3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8dLiWOyc1iOs9XpMjldgBG572Oq+WpePsCOi7DpNh8HTuJndlRZfwPuMMKpwxlGwIA5Jd5IG1ZdS9KIrVKbrmiXW9o+M96eXdFBJdHHQEL9zuGCOjfxUs7txoiqzkPxuBueob015cuhqQrlkO2GymmoFYtIpn1Q7RRKkBD54gBNFSBmm8fVzTjQQe1EoBrHi0rXBpF1ceG9/kvWnfmAChWXjvSzDNZXLuidorTQEJHSlHuVNdg/XXskxxOYy7Z6/04kC35KuEubD+94oUnmNAnIdhS0FScECP5Zofv7sUdEN69hW38X4vQF8RWxi3ATswCXqYbf1MXe90nTZbCxPxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000010","name":"ukspumuks000010","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7a04d531-5789-4d69-a28a-a4073e5424d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"14a0c948-0a5c-450a-9b32-95a6c525ba6c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoKW02kSsoZha26Yay8VfIeIWrLgNoMcv6BYTf5Ubke7XopSbe2YDG3uBIz+WbVv1IDlupLE/CBHd1/vf9Um4gX48GYusa7cYraA5dzGq7K/LqwBRgcl5WQ+jS07G+SbDQ+BT5MwgFOEy+tyr8mlc1v/JXEMj9KVVS5ME9tlhl5ybpg0Ou4FXWzjhAifcMqhT7QtHarJCL4R1K0NFVKI3vf4zDJ44tP0f+PMAys4ilq2ow5FiObg5ReropsNshDpf2IVKmtmZzhZoHkbgzoistXb7/MjT9ToEUcnhCxLjpi78AHzhk7OVa6tPoz46owR3TXhXrDdz8tfVGv1GyCWR/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002G","name":"wepumwe2r00002G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"88f0cd47-546e-4f23-978e-f48cc399774d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"wepumwe2r00002G","machineFqdn":"wepumwe2r00002G","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"wepumwe2r00002G"},"vmId":"dfa431ff-2d03-42c8-9602-c09d351bda05","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoKEAMV/ZwixDrKxhxmFrTWTRCGZ3OBVbnXl7iD6T7Pk5e1Fj72Xxvtt2yO7GlySRh5hUoses/NEbiXzkr310xnVWZG7Cy/IagQ+IUAR1hyTIDFhvGPkoA82CPF5431ZXaCmhGgD/Fq8jFNe6NB+B3ET6Pmt61/SA8vaooT7lGDe2dcSnaYctDPnRdD5QEkU5pvyfXoEoehh8CzWsLB14fIvHoszBRQkjIqwru+qbv7ahTBDQZ1KS8oKLUSeth2TfaeqgEIPXImOqbK0YngcranaRRT9wafv0BQMo1heHGsZkCnBxFYDNNlZbyYVuaWEZT/tga5/agFOFtuO5ycsXfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000P","name":"wepumwe2r00000P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9a27ee1c-abc0-4288-8e24-0504a76994ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4416a0c0-71f9-46b0-be25-872dbeb783d8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0TAqyicrWtKFZuiDUXR5EDel93eGYGmVpwzZRQt95SywqVjshDpsUlMXt6hbq4/9RqpCaoJYcqBd7WEy9K1fdejvH7eauTTuhRQbH5A9KmWOEBBA6dGUGFIQRKGIzvlWuNbDejs7CrtAvNXJ7NiPHfmx103NHAmRLGYWIn08/jXCOqnUikTAswzu20Vox1/iSUkra/rDu9vpB2xgXASJgld7M1efOua59Nqmdup5atK8FAgeDNMtWt4ozTBvJSqUW5oiJljo47+f6agrruMMX8Rw7cHpwh+Wzpft6lUTKNCBQmS+98vKLo0qkTXY7RgWsU3jtzb3XvB2mkm/kbWtOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000010","name":"pumnamuns000010","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"559f9344-a0bf-40b8-a0e4-0c348f44ed14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000010","machineFqdn":"pumnamuns000010","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000010"},"vmId":"4ddbc635-1c27-47a0-aade-a9510bf028ad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnm6o1Ujci8+OvseG7nmBAiR+eeTgNTo3M4F5+BYRCPvR9hPB4WwNde9pkCdUH1pkhCRRwuxsUsKA8bEnudPPQ5JDV7UonnP7A94rl/G8lFxJ0KXr8p6aAzcxNDRIC3HHBdreevZTzNUDaRDNFH/Ag1g5YByxAFgxdpdMa5CwwhLI5UhxLK546wIsUlVztcpyQuWB9SmBKZL+aHymQ+SG+Lv/Gg5Y6rWWjhjhOhBBo+HKYVUnBA1NjwxhtFSMb7UIB3NJB/Mkjqsk2s2YOQqS2pLZggo9GXv2eN9UtB40vlhZSSDTqUaAb97TpEvWowL7EbCQaimcE3HppJb+lKOrcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000R","name":"pumnamuns00000R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6d986379-be27-47dc-b2da-175864e5a4ab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000R","machineFqdn":"pumnamuns00000R","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000R"},"vmId":"5358312f-767f-4286-a8c8-9ce0059776e3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqXF5L1m9L0BuLPR0LAfg54NHl+x2QzKUfzCDRmKjG4eM1kndF0ngQAsehPfw/SeyIuWnypuR6pkHV6DTrpId9F2VW4UI2uOWZGo3HGTOBXdXqIUljXfPmg/dAaADx/4ukE91LCjuOWD1xKQMr2FvO87xNOVpHZemVAT2SKh4DqHWg7aJQdqJdP/Rca9MrPsh/BfaFhZ/G9TK0aThP7UTaXLQgjQ4d0D2NY27A7MvOIQkxz2cXYpfgACrIPgrvdoRJsyRvDMJXfyUwAUUXhMPlx/Z8tEUUepSWG5q9BoXwRwqahrnoiqOywd+kIcDGW/L0oJyle7UOq+yN0oDhJISXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001O","name":"nepumne2r00001O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6187df1b-776a-4e23-ba11-5c76b9732e68","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"nepumne2r00001O","machineFqdn":"nepumne2r00001O","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"nepumne2r00001O"},"vmId":"962d1564-fcaf-4677-a5c5-b9193a4ff896","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxiGNRdv7xPtB7sZaYJtZSiEksRWRWkGfQWG6GiDrCkPD9sJaaVpkapVy6DyvdLGsqZMU0tyjbwKM/Jmt1oopsC43EaICnyuMFUYkRtdJtOrvx9s4970xXpCUqhrSgg9IL4eW8BE/scN9NYFVGlviqnmjPSlyvgDxuf+JhGD8//lBjByyat48UD7oAt0HHhdnruVuGXxHObJoAdk+Stwt/qSq1YFi28TDtrHEmqL3bVt8E5RDtzyOaakhV9atBaBoxs0159Xz5vqEAyDyFhS94s6/1W5Tt8Ozu14P1B5cMCoHgeVrxG7+3voBuVc5AZgEX7FYD0FGLxPegU5+cKnTUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001K","name":"ukspumuks00001K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4bb802e3-89c0-42f0-994c-f3a3f257c74f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a973e3d5-6c90-4453-800d-07930f23b96e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnwNXoMlOju102CmvyPiYXKqtvP6Ub0f3pyP8Q+hgyr++hgs1BjPff0sXPk5T7E0n0zPgh53OpMZidKIgfdIn2KfxCoDJXhM85cs7CTxKS6UBdAoPkIEHAnUPrXbi6FazZi/Mr9UDN1MiJYILR16u83x8yMyWULKZyPNLM4+h/l/j39vn7WnfnqniS1r1iq3wGxDx2Xs8YsFyROlMwfBpCXfa8j4uC7POn/fC7oFGwTYnrtfYZ2vGq6QDwOlpwkEqzaF1yynZxTIGRcuuI+emOtCf1J5JjfrRpoFo0sA0/jVbAnXuw/OxGngmIy9gmRMdo2wBK1aJyH4YaPzoc2pPmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000029","name":"nepumne2r000029","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d815c900-406e-4243-a864-757aa198dfcb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"df2fa5c8-73e0-4294-8d68-86ec73fcfbb8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqnKfbV6WquVOtvyTNna3ncy+CkhcCB6tNozv94WmFR+he0HW3X+weJ5q9QVn4jAotBUcvSm4mYO5NC2OHL0V7ueoyNB5LIODNDsZCGJVrpBA5c/vhHM78JqG0lpOn3p/o2bFVzbE1ACbCkqOaB8tAbjyLEhDpEM7ymaaogCL3HgElRRITa7NK/tUXVVN0j8CsMF1NUVzxm43sRiVSHet95axWIiDJFBPp6iR8oXkDt2Y8HDBYVpevLOBP3qPxMqMGe3q+kvIjxCPBkNf19K5aMn0/89+CIXF530Klzdk1jegqFjHcB8HGgjsU3fX6EOh5mNs4QuHqywQN/UqdCUHaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000H","name":"pumnamuns00000H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5d555dfc-eb9e-4f34-925f-3086856d0ea8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00000H","machineFqdn":"pumnamuns00000H","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000H"},"vmId":"9c3819b1-6c9a-4747-ad99-d52f196f579a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1OOKcMn2o/fhzjGDwoIfgCUtzVU+l631eoezud7EOr5Fe9fKjpRfdwPmpN2cacIoVhyDePiQqBpKbKZ3S2INzg+n34wAvOOainjHXX8qIdecvU00jJeWJWRZTcG2vDMjLhPXrFQndUm1SxC5xAOkwbyY2mEdQro9eNJ32UBSRVs+5iDBIllukGPqVKMKWtYGw8X15GrZTbr3edEDI5D3G/ATYW280xyXkGgZefsMRvkMmUdK0UKSRaolWuhJUzskm6NJdcT02YAEBvzMXqtBUsk40nuiuS2RKD5r7BiWXI0TFLr7dTCSt0w4n+NS13Du+4d4pUlqLeLQQbntJF/x+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001N","name":"nepumne2r00001N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6146174b-98cf-48cd-83ee-4f1c4cc3f3d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b018369a-30a8-4bcf-9d08-00108ec6ef74","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAomk4zsNOJU7OJ2dG8fgzgc4vRyyORicffdyEhySKArtNrQeAIy0UMPtveGYXGN/89zVVymq4cM9POJoZBwge61gfhi/qeBAY4MXJR20whu7wR5sUbN49Rv0N/p+oozTECSUhxEqQtc/9XCSt22gpj/+347k0UvqfSvWpLd+F9zCr5KX7+JBKgkysQZIt9M8Cg2gf3OkTXgzTNvN7kMi5ikYyfClJ6fBoTvgbMFvgBA5ZBQEQFJrYKZUiD46aJWtfq46g/Lg8IOLz2husvNjZARedGDixRwXCMGbgv2QEYKAK/XEqUSIIQr7X/Tk8KhoZsiZF4AxsJTJgQWY8+RvidwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000037","name":"ukspumuks000037","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"83ca6014-ccb8-4fd1-8efb-e449ee1cf1af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"80a3a9d5-e41a-4e2e-a1a0-151e7942491e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnEwV6fy6LbqX+QFJZ0YBcuaC6ydnhzPdTf/cOVDTkthDegLhNs/7JZTABCT4r/fjr1n5rAf836lTIHdjRlLKLnsckLEijaYH5/hGnYvJwIYs56ZCdNec32/ajNnbHgiXA6AU5dWOhMaI2k+j2U9854UDYcS8hcke+p1kMbapf5m/lNWMnJK7d6GfTRW1+0zbl5vX6FzrJdb5381d0rwSW5ccQ9Nv1iUEAq8VwqbfknmbWedevw4wUCqSBPm7swWMA40ikFzUM0x9epVvDm5nR1q3Mzt5i+OP+EcIzsFlz0C5xpkgUoSS4pPQxQ+IyYb68+ycZsWSdtZkJNS1BdOH4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000021","name":"ukspumuks000021","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6ac721f3-55f3-47ca-bc49-5f7db5ecfb84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f2998f33-7aba-476c-a24d-3dc3e3faeb25","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzHrJjud5864eY9f7n6r5gx2Kv9JZtMFwGpmYR6lGmr+pXj+pzArt2i7O6oey/4qlO3HTY5ZnF6GpWawdCKj8eKcXUiXqoQqMqrCRAZSaJR1jhqlAkpCmY9S2d4wgFQOixc9t542Ua/33t2D3tkelrXrSuNd1wmgd510ICsNmTM2z33+C5nzaHL2f6TyCx/1PEmMcsMHxx4ng5rmbcwEsaYZ6OpxJtkji4kaA5pW2cnDtbhA+qAa27HIpgPfqOl0MVA7eHaAAGxEuE1HvSFzI8AdzQYQClndvS3t5zFiVORzcCEEydEPJpjAN3svkhmR2UBdySYiWXUWM3hOgx+wcbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000014","name":"ukspumuks000014","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1f2758b1-39b3-4c5c-bc37-129e3bcc3093","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c335db19-7a85-4a17-a2e8-7706aab9dd7c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqc0hwhG0YlUuoQNtbi6igNnJtSOT0IU0XMFHIwfJxShhDJm2kWjU+k9ByGBqS/ZvFsL8+mcDNVCsxD+5GEamNJmZfO2MPw19JN35f+y2jg/q7psNBPF4T4c0oteDM1ybC4LONljxKVQVN6GNHi1Wg9YB3SdyIba7SMKNuvVIKmmfRLKEWRcoHzFEvicqOM8Tq+32qRig0HHDKEieBA8K7iVqO9YWD31hQ53yVJgFMKLjaPm10mbXkymEKz+MsrGCCG9AIzEyKA6YP9qaxXNautnr577qS/Nl8TdrFW7HRfsA/28fNEUxUZrgESYWU255fRMt+Mcs9rjyZQs5vuNsVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002W","name":"ukspumuks00002W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a6601999-1802-4a69-a577-ba707856bbb7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"57c69d8e-4d1b-4677-a9f3-331169bc6c97","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtIUAGdkjobKXVqBsycmtEZ6iif8CFLe/YGLihbZGQo8pCIP89ltgO62pJSud5wD/qgM69ponliSUzwxDRsjAzOKxQDoy4Mdw51VQ12Bsveo0qj3srzN/AFAHV3QbP8O6Ud8Yq8XijWHAn65FLStBVuvIR9nSz9JWnKJsqOfDvhwEV1zJ4rYxIVj9jtO/8HlZpHruH2R0i3eBOeSOiL65nfSngIBLnAO5qMqKaIoS8p4mkgfodzfLd3H+pSgVRUGbJ6WH8hOy3gkMmUA86om6/iVKbQR1hjkuNgZvIzYDCOvjq+p9DmbYWERbpyTM4ebOLmzZfgUmGxB6zIoitaybmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001Q","name":"ukspumuks00001Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2db19236-d7ee-43e0-8ae0-759c87324156","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"abb7207f-dfb3-416d-91b7-982057b8f331","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA48jh2ASVP82y2jp0wJ4IDPZlxOGpQ/vRIbQcLVAlRK33OfKwjVdHIU6flGCLgEuT4tMd3d+7xXwN8NvVYYgGrPIal4f/FEmCjuL3fCRTZx01xgtd3hDP2nBQY9b47risTmvUpksSex8KkuZfpD1Amazb+EC4Odq4D7saacba5GHuCupaXVhBXhP3j45ISfM/O/HzhhxuY4vuZDSyFHJB5LPIGrjDADuIVyjs67oFzjrba1wz9+n5Kc3B8gpMtlmCPEBRL659ZFh1lxX+Wa1EVfvjwiyPZt/QilXrQLc+6LAzEQ0TDZ1XIr8FX/KvGdALbZoUdN40IzAesPEEdiiPCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000021","name":"wepumwe2r000021","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7b80faa9-ae0a-4fa2-a0d0-019e0d62d418","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fb151c10-b284-4bac-916a-f47df5c252b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyxfLUFVAUut97lRE9gfkznD4DLncI7zAvQRyc8zWXBkp4DxHSg/20jFuugqpyXt5YtYJHUVsFbAOiqBMfwLE0cLYvSP1T7eH5CVw0pg96TtpfNe7SXuYZxVZoa7CnCfA2H+/0uPIKmtHGAQEJkhUusU/Gpvd+ODPl8DtgCKZOQP6Bd5qYTHGglIhuZIVrMOnZLxqg3ZqgGwtvn4DZ6o06zV4A1MeHHZyAXNTk29kqmZwpZo9d3kUoGxhXaRB3v6NYgXLXrjqH659FCCODPQK/dCW24vMOGSENzeMu7pwzsklIIarKdeKELUu9Sl+4TQP9sLAihJQaKhTx1l9fuyQrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001T","name":"wepumwe2r00001T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7222786e-7da7-42c6-9022-a489675ba6b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"75c687a7-a167-4b2a-83aa-3a54a8cf4d01","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuWIUyhLC33dzEFp8nRdhahkfq3psjUL/iqO1UWHrIs3uXCuoo51iTFguUbv7hZFAGiL9aiA1lUeXwZtqhFUz6LPl0iMnAuwTL6nnk0HCtsTRyzBgmoAE2PjiHDvyKFIeJYG5Pqn5sHPBEI9seNgpfHXZWi6+B8KoOW5HgzNok1rEIUFjKtkzJNCFwQu8hWB5xcamWLoiXT+p3wvs4/gnyS52l87O8IdYRkO5ePme6G/1pbySIXLOQm5VvEgjYHkfURloihGk4yEJ6RX6ty4lcGgEATsbITJ+Y2wtGufAHN2I7XfJduG/ljk5hurNd9P0jOLZZP7XvK6mRsJfHngbdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002W","name":"wepumwe2r00002W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d44a3188-95be-4037-b435-ae0ff8c7de06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"07af714f-9ce7-460a-b601-dd63be590da6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyU4AOaVEFN3a9i1XKbvZJI71vekfHL6pIebhyr5qZ7swNjWGzOEH6J5/gOVfwI7nCCgAob5mmMNc+n8aVjf/+LL0Jhl+FnEdw8OTu/kXPpuYO/fA046LIsr0/NQiyJygxETwXnuMGDwrDGt4WkQqkwhPlxMzghQ6fdPNJP+wEiaBw4YnSAgjZelFV7wgLRXAOYeNeH74iz4dtzlEmDaYNIzxq/72TyAqTUnFPrpqTaWaMmWmFRNYlHKxB6J5q/fyqSEk7IC4JL54p8CIbDAs08bUfTL3ef1A8f/jR8KhvfXSvXLWaMbDphZrRHihxOQeMsMQ81GZhZfSVQ28dMEJIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000001","name":"ukspumuks000001","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"bd7d2c31-80cc-450d-bb85-89b181852215","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"94fcb9df-ef4c-4248-bfa1-5cbc14642131","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr1rxMWQUGWPczktLPjHbDG9EfiUN2m7/wBLaUf7mjuj071vJrT1CsF26/R4V5mFufBdynx6LrQlN4nR6I5sfpu7crJcTOaKirEy1j+sVENGwbn48z9kaYfZMmat+PfIie0/Xep8/erXAu3RvWKG8nLGWeupxTKtH6SB4O9G+ySP7x7GAHO2pl6TXFOo8GHrEyFg+3GYB9IGKg+CzFsIqxOl1aIpQHfCY21DR+ybtq/0fpGhvHV4BZnRemVDuFhXrWsu7nzeeNc2lf7viwYSFbeFobsaRcOSg8LJ8nF4hfhScEoyLlI5TmKGYEZQF7DDqDq6gPFVzjM0buFIOZ8l2hwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002A","name":"ukspumuks00002A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2d351f02-c426-4d36-83c3-e9bc418c1bc7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"bfaba6d2-993d-4567-80bc-d4e90fabc783","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwKoy50Vspnk1hYfjG20twf57sUqSWTddqHWfD49vwQIwh6oQ38I7SCdYdppDPFP04UrTFxUNEycbarLbdUk/ajeIG0MJ4me6G4GjuIeDeC3FmCWCu9kgSo9WxIVOOX1J7rJZk8JUksbKIYgUl/pQWM95rDzgtjfXzQUSbdHvpH8QbZTSK5uVPFVT91U8hSFj1wxIfqV0A2p3xL1t/yRs7kUBPJJeCq+w0HwOr4zjB8b4XVqIDHYWOBJFbq6zO3vecVivZtQzH+Zwt50R5kfyqZgh0iYqyzsa/pHzgzqIxNO2ZeOGKllxifHyBveobUcq8ac5l8+TDFPewGoHf9rXjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000U","name":"wepumwe2r00000U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"bb44ac73-ae4c-418f-99d3-dc1dca609741","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"wepumwe2r00000U","machineFqdn":"wepumwe2r00000U","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"wepumwe2r00000U"},"vmId":"69d85b5b-569b-43a9-af6b-0ea4c4ea6101","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5no8Ih4a3s8eHjU7CydwneMblrzSjWso2IxESK1QA4MnBymHPFzRxGbtC2soBfN4g9GiZuyvpkVqUYtXIIgYujQoxtZoSkyvCpl5bi52TjwjV3mTNF2a0masSLRu1ZbVik7CynutbdLF3DYBvhS/sKPPfgTqRuZZCiS6zi16y7Tp2dqYy5frUm0di0GKQ+xjuyummvlwl9WPSDkw8fmIU+G8ulw5Gb/TJTOCmz1CjR6pCbtpZZUkzk0wQtd7wk6hsch5yFfI2p0UI+v83gJqZ56svvX1jGIR6Up/5s2/eKgtmIcQHkPzpoQ1qfPqO76cs9sheNYwG+HMd3/a2/H6CwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000Q","name":"ukspumuks00000Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"375dcb88-8780-4f7e-a9e1-b5a09884174a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"02067ebe-34c9-471c-9c16-7b27a5f743b0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuk+xU+eXPHNegUqmHtel4s2nabw6y5Rb9Oskn2vnOtrpoB3vdGvGNoUVNrlCh3NqbrdyiRz8cmVnMsqITWpv9RBk4P/NFKg5C0UcUP5NTQ0TlW+N0VDAuUToGejhRvOopCaow8DSqZeDGMK8cbrwIp4kgiUalCZBelYw9hovs50NvortUGylRLaeC3qfKqeQjRC4U3qwwjYi30EyyCyrLdrNY5IJ+IG3i4a9rKdfNnnI+XI89WriZgNco0tMqM6LmKs9SNxCEsH1kedxeWKYEy6kc92KY0nNVZfsyN7/dBlGCBwy6kRC0YN0LVTv8MnMINUf/REaqm6Vx/TS4biTnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002O","name":"ukspumuks00002O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4d8cf829-18ce-4eb0-a66f-728b26015590","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"421d7397-11f2-4125-832b-0540a4b078fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApH4KuCvNCxEc0+EhZMn5Dx1j8kzOxpeep+Q1rLpZ3vB7Xqsqb2MrKs5rEHHKiojw9xuGJttUxIUoW1VyvHJDG6EHfAFX3AY+VBfNcS6D6K8qNCVsiYJdFV4/jTrFsYNTTB22Vvw+YvP61jTVEKP8JjHbe4phEEA4M6RibKn5f0tJqXV5KWFFTYVnTMloAyAy62HmYdrr3uSdKATsIcDNjGQw1mxKgLMKJSbJ+/1K2c/wMiddMhNcr6lLtKo0Pr79EXlYzCKCnLv3HDdTaA9AYMbVr7bBWJNurTS3wHlmqtr1J2VaIz8EUjCW+vLuza5W52KKhTjUnlhNI93zAD3agwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000Y","name":"wepumwe2r00000Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9473f00a-bfc0-40b2-9dc4-be0ca8914605","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"349c297e-de78-4eb7-80ce-25e530b82694","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq44WARiJdQZR+pfwuteAfacHloEvwN+Zj4+AxiQtrj2iMLd3/CX2rvUu21U7lJKa+mE2e0kVwWobfp0oMzf7m0bO/vbjk8/ON4bZxQkKXABLz44CaQp1IM/Gp+p15VPtsdiqkeJDf2lBq3Do74hX0BJPqf6FLUhyrLW9FFQTXkeOdY5fK2X+EQonC9ZARVRV8ntai/9AKzKga72+GVUi3gG5RpwKQyDqceYfNjeBPaPDY5bwyFnLrL0K1lWURzOW0g7PPZppc3Hnie7Bs2V4vODL9N6nkYIcQHRwkAAcMqQJ6FMplBt+khkzDqrjiWcwsKuakVWIhurNEv2Xfou8bwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000030","name":"nepumne2r000030","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"05d8ae41-ce64-4514-addc-1d5f434c7240","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"baece42a-4918-4602-b68e-7d1e08452060","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAugagpEtdqEtzKMTLhGf2XW0nE3eu+hzL0FmULRJip2pe2zMCrwXZjyClf6vrQV1e9ZzOSHasdna5ueIBDiw/5zkF0frvY2GQSgGTrnKY2/6hCEyVEihiatUDiCB0nkb/4A9ov+WaMchDZE+MAMpbbBucW7k5IPrnFL72fvQ+IngWFASgndDU8J/imWQiZ33aoxqC/faqAt75LY2kfe+kwtB5XH7GCfEjHJDO1by/Iew8j9fC8EY/V2hFg6QxPmlh1Q8BkACdb+JNuy1SabQXx1xtg8gx9iBxtsz/AQNBL7TpEDXsAf8tbgZMylb31hRFLPkQMmxXkHKbTozhvcR0/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000012","name":"wepumwe2r000012","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a74d1581-0cfe-4760-8b87-14bb40023f12","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f80c6540-0216-454f-a9b0-854195ef0ae4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlwho+BfsE4ZEv8Ji3Rf0wco51BEHPQKXSt/nXA7jf2BKU6BrJ40Mz6vVjXdtrPjyR9+vZz5hsUxoCxQ9Sr7f1pNDWpsR6TSIyvQmcju8Omb1X1G1YlCgahINAuILww0MQkdH5C7H+D5jXrO5v8ZGoTVMrcb5klDfDHey1UUtSsf5YrjLqrCvM2E8tFLisGEyVf3DDdbTYSXoqM4VZ9H/+PA6tb3dL65giRhy5j9hz+q8IQFdosSaZfPwok4ltUaykrDwcdWcc3a8OopGJt+3qkIMM95bvPL3muI1Cf8+ccYyXhYBNT9W1QevLfPWl90Pc0h+ELFckFvzkxfGoNoH5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002Z","name":"ukspumuks00002Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0117bab7-dd70-4b8e-8a65-ea122145f921","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5ad1e8e3-0132-4c28-a1bc-95b484e1ecae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA90LoTdDUAwEWcFyZIt4u4SActzHrm/eVjwK6Ob7gPnFYAQbw7yVYVSzYKZjWrAF5S1YPbPxqSqV6oGSfH7ogmzP5axEFao79/qOolM8k9/RpD3mAS9AHQp7RGEgShRlrUsxs91MvQ6r5kz2pB/db1ZD5VxGxXrA+c+mpzuhaCq8+ufQz9V+/OvO1/A+yCOafEXWMiQvJF+/JRU1SN7k8ggxeglgjC9dp7MlXMp9eZ7c1NDIEY/zcWNqM0JZ8enmbXUbUYCVebjqjnbN/MqRdOQ1htDnVc8zgge1AYE+ozvrhicN6rKBFNqZwEwzzJ/uQpQBhj7W/7LWvhr5wT7tjNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002J","name":"wepumwe2r00002J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8462d447-b420-4253-9097-4a6f9522b4e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"59d8af60-0a4b-4d46-b088-26e8ad2fde92","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArQiXa8iEMWp/CgIAdknnXnQEOATO9mkvXSOQhAFaFqSo+P8zITNNPiwgyEtpjU37WKT+rlU9Bnd90lvdH7UWhdiVqURqcej2UIFHv31EVRlrQgflp4N59wfvch7/tiIwk/q77dzixA9FLsI+CTz4n22VWheD4pfzJa10Eunt4HOE3neUoCXtNzQQ8HHFouoME0x+z7Gxs38HI0onDuhtFAv/Rm3fP15GI7j0rg2IMM0tryNENZssl8z1mBvMKjneeQpw/RyGLrmaBlxVxHSLff1HEM8vb04+heXANzxfW7R7gF9XlEzdyu8999nhrj+/cOWyM5hg9ZZNdcJHsa/mhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000036","name":"ukspumuks000036","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"94ef1b45-5d62-46be-b10e-ec1975ded591","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a0bdc0f7-8b9a-4b3c-a230-316aaab8215f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy6kuXBGV9+Vf+fXnXiG6tAoTcwot2Zrc+DEdVsCKliZC2X335eZV3wN2h1s7iCFq0vdHZ9d4FK4cliqvU+Ynuxf7eJmc8fKkuBkZSSEvOTTi6fT+zfGXnREbfeNVlTxY8Jzr9OpPpGLamTI+x1HLsscIM7HatVqhXW5AqNoq9SOvo9+okAaiWsiVNEOoJHJo76t+82/YiGTv8QI99/RAJeSSttdvZHuuVFOTduKdkbX5JSMP/PntlXaNogYPdZL/qY+u/q/F46y+Wr8rkrUbJVgh1c1Iox2m6vSf5LXdum3MOGuJN6fNIz9uLt+QVwJodoED9WVm0vHRvLGCQWSdVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00003A","name":"ukspumuks00003A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2f6e4858-77d4-4086-9b6f-458ff1a1a9de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6ada4581-d257-49da-895e-5d8bcb3d82a6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyJn+ELkGyVueh9WRBESV1TmnHzrm7OsxIHa7mvIQPpArVlJV40/NxHKKg+IUPfL0PXrV4Bpnpu5LRfr3HMlROx/9hWn3dOT54I1MB+Ootnd9WAuCTirlSsoeYwVhS31/9ALyhEpT3W1wR8lFrU0QbfHqLYI3kGyvp4zNudJbD9qM1ILQmCXJA3HWSRdAKmaDO83j7SJGpkrYYUYGQwh+GZNDTar/HhgTh/MjPgXtcu475m3y2xsEUhBF0gdsKADs4KsLxpyQbG8dXdD7SwzH8+nkKUqs0pHbpeUmBSMNjjHUFpeO2beu9t0Q3dQVqLq8dFpJ5Qfv9lBOsr5ARY9OJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000T","name":"ukspumuks00000T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6217134c-170a-419a-8b30-760990dd625f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4d456c13-5488-45a3-a0e9-dce2aaeeb3ad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1AibWGCTU8H5VFuh4rQDTDxQaJCsiRa6yhXhJkTqnIRw3AmkK7bUPgzU99v89oeiaojM4PsQk+xficG99lAg1g9aDJdGuSlVY91wf03o0Z6EYjUYnXF5e53Y+hEIZ9ItmUENI4LKxc7J4R0Aq70X8ha+6NgeXDF1Ild+rvAIjQXUrkzvOyOOhUsGBW/izylXp+3IpC16U8st9LGO89RngtFJMn88x18ID3t6MtijQg+gWC4DzsQCypqvze7Os4UBLY8/iJvFwzIJAOvDAwVMGTgFVWTI5rXLNOQE49jWRo1I1heQb5LHJ5pXW8oL3PeFPpuKVu5Qk373Cd/0y+FPAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001T","name":"nepumne2r00001T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5ac39543-53a3-4b2f-aa7c-1f0ac0dcaca4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"44ed521b-c242-4f92-bdfa-bab661b79917","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1ilcWUt2zCKg+LcoZAQGIHTpWrsQSu3lfKblRDVfTVfU+LSpkvSRX/zeE8+LU8sO7zmfVCI8qyX7UgGgYzeNWqgt8p2rDMFwOoPF5KuzrVQlAiXc7YOH+8Tj67XF75qaUZ8asw1gmjjE80xLUmNXpzssGA/UTzrXfsJtjX6rGFIXsVwpGq57Ua885OPNK8LVwfg3h/0gSHrzW0uZ2CTFhkYXkJwRxOlshRjeoNkHcIN1LVs9BtCeBI4AyrMI8QTeVFoU5V7qxKxnvm/ZRfuAFFk7+qoezWMjghGF7QoA0BA0kSOUoTxuv8V0sJ/upc3H4kYto5LO2aBgn48NU8lu5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000006","name":"ukspumuks000006","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dfe29794-472d-471c-aa8c-4d81b82cd22c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5e348c17-0111-42c1-99dc-0f6ff440991a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwLuc0BxvD+Ou+SDx4JVz0KOL6ifn/1z9yn0+CN32c9gcaKGkzENVNO0UtYVELsx+/9AEdoUPqAcfKOffA1IMgQdBiDPJbhywaRQB2BHFVIWUv8uZd/QNH6An5tPWZMIRK9zKY35ntb+5cVY2vi9bSni5FCGeR483jx4RMYcRSJYGP18EJksBms3Jm7Ebg2xJFPxyJsFEDZiLcSEGV96z5MaUAfrnMQPlZVHmgFP1eLV+WOM07rXhHzoIZjUbd+soMMD2fKKKLOZR3eOgDWBvQQJ+8JtBrF0iGJ5IWs+/+vRXw43psCd+V/30ptft6zpjVWOP0pSg72xjWI5gRLIMvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002C","name":"ukspumuks00002C","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"aa34587d-1f2c-42d3-9f13-3d6b478edecc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b7b36df3-2d14-4689-a5e2-0e96bae64209","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo0jU9wS6W/RT8OeV2wTEz1m13KwKKzZNPk8uFtA4PkJ14PkqrNQnlKDiKPyii0k9JKqDUfGZ9maiy2NlOY4NcMzjmiZMECxXEvuin+z2iRLq8F/v9oz1uU5+QCy3aQSgO0Bn3piJMUqSJ37H+IVxn6bElkXBd/Ro1dOHEIglxxrlU49UWOh6sb8U0Oq3R/KEMWGLoCQdo/RIdJ2aTLtSDnA+tbXWNpi1hCplGC8c3o6JsxMORqtoygHm8lr4tcpBG6ep+MuazJPsoW4MjaRUWYnHfFvyX6DrHnJtGjuIMLuPvVo0gDO8gvArQpKK0x92Zdx+UNSxrjY0skvxQV3d/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000028","name":"ukspumuks000028","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ae8c48dc-d558-4684-aeb8-a6b8c458cf73","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"69b0b243-a0d8-445d-bed0-c32dd99f5b58","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApgxTK8/PLd+rwMb6I1klZ1QTACqmGScOWLzuJYoh5edQ3q4URZUdjGBp485Di+1Q9D6XZn3xQvmQdmRGvXRHKp7OFXjbq4ufhFq99KjCVuzrLaSFxlO1Fydvix8iHZB4G/bD9l4Eh8z3OMGZG7bH//Z5l7VAxyrTrT+HOh+RUQz7Y3i0veFncHwhOYNFvDPkC9jeCQRDBMhMLTsl9kRKSEHh9/rLzI9iap1jf2HWIJCxe+1v5nfT4hhnAiICxOSrfG8BZvqA1xX8RxmtHqVDthxAHizaXqiW60QsJ1OA3cLvaO8ISF6AsvpU00Mm/o5XFmvEGgLGG6b4L/rZHnp53wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000024","name":"ukspumuks000024","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"708e9cc7-2434-460a-946d-bd1b1897ea6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"bb99a90e-fd99-437c-8ee3-b9c546385e9e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApzRHWa5J8d7LUCwoMIbinjK1BGIKlRzcHNZYJnjP2zJE0IAIwK9q6ZANeM8Ga82xfKWSHJDjKtf84lHu81RghLooylAfDmVx+s0rcWBXe+Dg1nWV50qlhfLC/b7BBca6EnvQeB28ZryrvwCeb70UjJuMB+WYnZGSxGAhNvyomaq/kK6Kai3kxwO7y4A7TSCnYDerzOIRHHkcMG1RhB6ADxqYCSLsmaHGq1kBD3NEn/wfxZPWIkMXFX8MzOPg2MoJA2N7FSgpkLgn3YfjOAmkIOnvU2kcQWfMtvfvyHHxTp+1dNeTsu9l3IgHEX96klwyOD6kHW/Uy6WtxBPunRUkjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000A","name":"ukspumuks00000A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"faa78105-1ec1-4f7a-b91f-f83c48e3aa2c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"92528824-0ee4-477f-a310-0cbe048046c0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtbKnyJXB8YxIS01LxbRXCLKL9ESCo3BIxytOSrGl01euUXz42/KRWjRqLaEGInbore8unAxZWDX8bNaRsLzfo/CHR4rasmSsmPHLUkyy23HJ4dpBERYMesL8chijpXckhYRyaZQVYg/96Q7o1NnvGaW8dnYaXvY7qVBTBcoojXCAg7T209vcRGWH5HjyzqVpCLlxGrjlsXbtM79z+z3C3wZgxzj/aidlsBoB6FTbISNsYno+IfXeL1yeZDtVxrj62N+qKKjQpkzBA6g5ugJUZFmy46SXCwzw5pZ+gJUETy70RYD/x3YqEcedQz/1WHU5oZlr2JvxBny3LdN4zLjV0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000038","name":"nepumne2r000038","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ff4108bd-2fd7-40ee-92e2-6697d31eb79e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fa56c9f6-4025-4efd-b496-adb6b0a31a41","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6jYZ/nxQLfROjOaIRyxXAB7Sdv05Olr7oZO36L33jJfcbbkYZVFGAjyCnQft7QbXXO/zYt5nRzMl4gKClWYPkO6CRiQ0BfF55Ut/RoBg7FiHjiD++l3THcpVgWLoThsbtu3j0l+ruee39QJhzF5Y1ikpsBPTSGYwoU2rMRQkoWt8X4VQqO3Dy0dZs7Nb1rb8kPopy8I6Aao2bqqYzdKolEbx4+DLiVzDrvP21lwuygcieUGrdGyd2p6IjretOBtoI74DaKpWRyj/5QCSr1eZ07I24wG7FxLluuSpO5wX82mqhou7dXTCNxwbFM6PRvMYLAyCELXNOG3ZfVefAeW5XwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e69b5019-3d41-4b0f-8459-3861f690418e","name":"release-e69b5019-3d41-4b0f-8459-3861f690418e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"58563796-c294-408e-9b8c-8c8a182b72ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418126800990011832183671198107751121405667099507574611338141586567181783916395155506342796859361798545191659086256488972747058375131147532199898987067944259517035503288937946181799436367625231371678416360617633354996332676357765501840584921826502796066774888482143447684729512781243101868159761719499528701434921475454823714056959845503978378162328294430427451798883438141655764495950631446031695360296511","osProfile":{"computerName":"jianyunt2"},"vmId":"d67b8a64-20e1-482d-b339-0b0d9b6cdfec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAkO9TgcSwAWtUc/C2Ql8MNyMzWu+Do9VnpAMxy4Y7IZxWs+XelJ5+p9DAo1CLBu/+Kxbm1iZ2hmfpimETQRwyrW/Sp1vTC0mPiaYk4zZaQMI3CAPeKpT3dvWzpYj1VBJtqaoLEwORPSh5Vb50TqFBhXd/ecC1q5Qd0vTiItlBVSdEYu4Z/XZUEVjppQJS+IvPCVFSW3wAQYd29cDPJsorwG5vyeO4gYKw+23iu4Jxz9zGlxX9FiEyS7K/cPMzeOXqr1xj7bVnaIkkAtaYMS40+cXdI79K5WNmPY2i8OZTXw/6Vo5PVWQjqnk2mGRBe9sQ273mBMqfdCgI0Z6M7F+vEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-12c48a44-6dcf-45eb-b0d8-beedc8c2d7ae","name":"release-12c48a44-6dcf-45eb-b0d8-beedc8c2d7ae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5106d371-96af-4fdf-8e01-7c4905b986f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183935274258956328917884196719366824382603637455323339363235483078240880288818850493877976242854402102315773368638694950406827690883656622356522196407419930643446053999362675791653223513920263123162597549724470059298082475758078343844672225788358719940659753058474367616681355194511985276729267596074785648549002620342860301599286134329559745843035931986110381520083976","osProfile":{"computerName":"jianyunt2"},"vmId":"aa431d3c-ac27-4903-a2d8-01539c251832","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwb6f5HUCcVjy2WH2a2V1QBNClcXGGOpMpqKJk/d7KGInDvgwgX+/diJn/k28Vyj/A3rx7UJjaRjalV8HhU4N90YXWRmcfX9nLCH7TQIn/fGoVMHz40CM5Q0w+8w5Y2V+QXpSF15VU+LYBYeKGmAMDQWpXg/Q1dM4Bot6/6CY5rdIb1/weIvjdViPPgN/czYDHxkQbmOjaCHp/ZmRv1TkvMQmU/MxM/bwASpGw3NUNuUdhOeG1dbrlX4+DlOwnmwZqYuDtECOC0jh9dQbTiJH86ngjXp+H3zbJHQC17AO5pVKiyqG/fwpSjX+zaeoWKuaCxkJ3hAfOMWKDE+oqcUofwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-30daa45c-06dd-4d51-b594-042f669e7042","name":"release-30daa45c-06dd-4d51-b594-042f669e7042","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3f4a983e-4417-44cd-a116-0edf540269fc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184853221266345742115473989541436582397952725681399587212378068888897652959273731771788574277051002632537985951800296958103253512244855558699615142546088843686165991981673936124247635742198598423923789135259493281509701247938548886216333032477990993483861285125921727665821015519251291654686655096109729177850592584976667837806667244453233835972551478249955029532966913956303401175411496159393912911153","osProfile":{"computerName":"jianyunt2"},"vmId":"4cfbe279-7ebb-4614-81ce-15dc11195bb5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxO4H+9+N4XFTORs+WFcFM13JhFCTNBUBqo+RlUufSnlNlWU2ZC6o4bFm+frqmjWBQS+TknLcWOt/TvTuL3EPfhgwcBux9b4iZB05xM73ijWcpU7CclLQt2zBmM/UFE5uMN+fQDaHVmg6Pu4ho8wZ9Z2AlOxPGSsV/0TDhDrx6u49gmYkUqvuVE1tj1EIvgLieIYPW87hn3nSr6rI92BefeiVB0hSorHZRkBMD2WFyv6QsYiaRfQ7x4nkTdLptDzchysSE3RWsL6AzQ3o9Ayk+2raIZB2Q7e5FpxAewHkY7t0gtePRIqXWureAoYfsHAvIl/V+/dxwBV2Sq3Kz8PCdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7b2993fd-7edd-4909-98fb-901b7eb4cb59","name":"release-7b2993fd-7edd-4909-98fb-901b7eb4cb59","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"088b90a2-a9ae-4490-874e-56619bb43c30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188480765011942792913248109773464235463806192934141603806817057890604372197321784466921012322455978769539083892456494760735491295071080473462459347823861140085172363584941292309388356318922416144855676467787007349217941314306686532698271917917242238517304933319991149931701336563724941623119164519782437852815298740074631847106326520433293619376107933106541453763","osProfile":{"computerName":"jianyunt2"},"vmId":"7216ecf9-509c-4d65-8973-c3920fc23c07","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwLJBIQPAUn0/EZQSkWuKA8ZuECjvIvUvAEmdU8XhCMzhPOrZEJNJgajbQry0/Ldj7TqrbIwvO+XD63Jqtssq1fyamOHXuqRexLhvJrgPyKjECuwd/nZKaVG82xpBwR8y9A3FsQgHBzV8RCb0CQYAmPByESc1Ef73j19NLsPFg05N870PlrFL7To+T82IBEGLLYNeDCwHMD7ngqbP7hsA/ntuVsuU4/hoLIuhd3n9IvGB4zjEVo40GjiE6dJJX5i4E9xBc8b6TSv5Nf0A68bfv3BnzHyUao3+NLaPYwjtv7HLzJsaJ90EWltXILyQo5dlkX+9HxTTOT2ACzb1SfEm6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c96d628e-ee9f-4921-ad9e-4ce416e44122","name":"release-c96d628e-ee9f-4921-ad9e-4ce416e44122","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ac8a7a3f-bedf-46bc-acbb-2676e5a3fd78","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181656182972591487870078182697529979316947384658892600778849813198516288884350154763682301933847736817331175574616443851704806470228814552850262449249861333842475288121301334288312588853857660721201861447343653662488596072842221196474952198950374249087920962692779891984334829014101967412569495169873944377466870376378359056624364344174444301466329185970096162854884487446978683919","osProfile":{"computerName":"jianyunt2"},"vmId":"095e95a5-b111-41c4-a012-b61f673536db","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw9iiF/s+w2iDXGUbk9/fiCpG0E965wS7TQFM8nNOGL4LNUKOcVRpIFJGcXBfCOo1BRNs6cJlhgZMQRoMjxVrDiO3UW89H1bDG5EHMJAXElgllULpQGvHeFUysUD0vA7zzjC4D5ypwA5dJuMHFy2LktqO1v8ym3IzTQvmdeV3dIAaNAcGwOdiGlUW0vQGtPZEuxauzqy7JYisNA79rVdmGe3oADc1vALyvIl770XFIwKOM7Jn3lJJQ+aGxlEkBdlHyFoOr8XXdXSAGvSYMCHZV02VxR6qZ5SuXGgQlJFIiN2779h4sSCxbMRETOJa4iqy1xsbOyBX8vvxvL19eaLy7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b5001365-28ba-41c6-b3e3-3e3866966fff","name":"release-b5001365-28ba-41c6-b3e3-3e3866966fff","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"df07c1ef-cde0-4c91-b0de-2735cbe313ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41850816572760268658536365349418696517668536218736248553324325620689576393376233681932638185355431544636477040843361626028382558297587629199838062603818904142709337409244706651578431954022184597949920269213976495610628533317549020979236805525647394635341360992925237139570478983573887704056458855998176269062260725160523326793024417507489394958238727649","osProfile":{"computerName":"jianyunt2"},"vmId":"8f6462d3-b29b-416b-a4a0-5f9b52821815","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq+YiIfB2wnGtGRfgDLk9BQ+DsWAK0lfm9kllU2fml5wFk7kJ0yECXLtCLRkDKcsEKluEDotP7noHhj1HjcIcKELVWCacAMN8xUo4ongmtTQMGzIsXT4H3CDzvledaoZ1KBZ39DwDiciDEPhOT2o5zkub2sqdoWt7CjTDdrY5Hw2tM/KCCsGttw/B4LStkTVfpRWXML44s2yIYo+oG1oZvgh4gp6WLjzHXss1D84ywrwkzu5JkDE7ZitL/lcZRJQMZLpykoT4MxduzRKBWnObCulhvUqkIBUROX8i3OEKdDGNXZMDUA49CHUK8pVL5hw86XQmMwdLCHveCd/1ItIxKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-68065816-63d6-4704-b1a6-4ec104d0020a","name":"release-68065816-63d6-4704-b1a6-4ec104d0020a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d7e72802-45ea-4b9e-a72c-54855f1f6420","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418567838380437467195314563272242814437861216502780375172520778641027924875087265024699411466361485166925585705282777862142653516337198135674220634703232765259937738578172472204177090176007766481584813676261301381817100674959573232341306211424125068980527834625344398934448485834990079825760416177187370889451731512508837488088748498258559555673137104573","osProfile":{"computerName":"jianyunt2"},"vmId":"b0798434-0be3-4973-b22b-8a67584ff627","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwKtca4vG3dNxwr27nPMk4ENxYD6g7+NEeGXVgbOZq9no8g5xIZwRz6T1byq/8BQZW8rzGAufWmsaKhQ1hpgd+eTHiD+RVZO4WWu4lz5fK4vL+NvvjPNrgjWlaRjiT49hB0cbIgnMO0c64d/lPFFBF22aMv9+IblRdjeNkou0WNo8MRMHMTAFjgI/Wy7uQasiozzPGVUbqYT7+5DQkDL5g5BDE4U4ZPXwy/m0rMzeFVzyUOsDC+2ldFDJnSnnJe/JOisZRJzdnG1VOvrlNNtyzxcAF7YVQ0XDU9KWx5NaagFNUw1jqeO0lzXI1uscQSPbBbDtDCQVAipkelMav5JJVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-896022e0-c261-44b4-9aab-db4bddb1df86","name":"release-896022e0-c261-44b4-9aab-db4bddb1df86","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c19e5641-d970-4680-bdc0-8388d95a254f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189974157542993266535155045929929891142473391530596546462358651156983607784352141628326145414396645580338267031385624393972932988268932533178434151965741530527822494193732723456207624259247996141256597607672362644918718120591011984661423733208688306271095608583993123787984561332944611780181184771372527523576079016086786425857924580610419223281716927538111527636949343492539208670868076723175004609503","osProfile":{"computerName":"jianyunt2"},"vmId":"7c3af18a-6dd7-400a-ab36-e180e23d539b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0NSuZQjfwV5F4IBCWOJe/UA6Gf52EBhrP/Smg03ZsbfgZHIyF4o2WA/XgFxzaUt9gpJ4+jJ0RWoxIZQ5cb+e3kVTAjQd4F3NP2p+SVRGSMTFyRPJpsfFXSDmiO2ng+azfRyrrhqRaTrmlozwU9Rg4NVbeJU1dweBwy8sBZRGbdCAvVcqmob/W+Lg3k2BE8FpYvae9k+T1Q5DIWTlJAnE9Iks5f9KfCZBDSQEYlEJMHfGbG+alaBC2jPjIcbllgkAohDRTJd4DR1ctt+Pus/j7u/rqBEcYCEg7VvsuvVG3qnmTjIOb0stUxph/BJZVAn5e8h45CZD3f8XsR4HzFj1OwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-96df5a96-62b8-414e-801f-04294045d85a","name":"release-96df5a96-62b8-414e-801f-04294045d85a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"96275511-b9ab-4f1f-a986-5804a5dfe7fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418573453857009914577425053233917637183313580416810217112822561629489523328783288313755382944915019698681327897944176993715055242365764299826974349289180624160223253713879184712817800092152492133396381752132327628209622367658621453222292348639073682574353366583483297490458420251174518316402390587310500603224853690880364412007827464708129955384766604715053428968255","osProfile":{"computerName":"jianyunt2"},"vmId":"d68dac84-d746-4622-ba90-c4f6794382bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAptJte3rj+c4Xr/dwianxmz8S6RVvum59QVB8A9JRvJku+JaFtfugS2ITUeOBgfs1uF0xW7jTYdJISYJ/rfHGRzeChOhMPq1PDVLObgtpLeDWNSrahCGnrxrCqfqtbfIyyk0Ht7QfPPsaEnLqnl/MPLmoLSqfskcTj6EQlvsenXuEpJYtagApC9J1az0AetSJ+8o1jcNz7aWxPYP7kHFH4INEi13Y2uYOlCKOygbeo6YhZHHkI/zJWFRZen47o3PHzJGzycmwO5QB4THdWNP7WC1ANsZVT9HjkbIoDoJFG3Sdq/6XQqFIBbYLDd5RYRqvFobHZy1l31aQmiuEwHLDMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1209b232-c5ab-4480-bc57-65f3e4ce74a4","name":"release-1209b232-c5ab-4480-bc57-65f3e4ce74a4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"88a561ad-1cad-425c-90cb-bd2357fc7a76","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41815777339621158379639710522624553187708876556585581688497590348928531783139267246325584299215725656852675437347546956892042625177706851710759095601687641665749678925596697596797974927175782251182637550044712868183529987019272908815782289364322715634053734708674571893430766623534169943443864410517891702987447014631057697820195681029762320143697148654368623147657039361837235693705630","osProfile":{"computerName":"jianyunt2"},"vmId":"a661c1b8-7857-4d36-8797-c4f7a6952788","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArdLsJ5/7R8U6WKwlUwjEJSiAuaNsIlyEhTN89NGoi3Qhr3A4DjJCY6BHROyJiUvgoVQvFpODUGEk+SsjCkKxQHUfMi1Ncs6X3F+Wc2Q2DpvzTeIW7X+evTMDROgBw46y5rRghH+Ed9Vv1Chp+XDIX2RfD3ra3XaMJCrQwT1ZIdFTozJgCtZ0YsyZCvBV/AmV74zfijiLnq7iclVhozW+kccjEqbuoM+WfVf5uKgmQ50Ul+SjHJkReFNK4hGQ8JO0vJIqy7ZA7yiBWysP7tRydFTlVDPiZivjljfWBpSSVaCVDJwXyTNkfmYNtiyYA2r8n+SmX4+wI7EKbSWllOSdEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6ba3a6b1-c6ec-49be-9867-7931697d508d","name":"release-6ba3a6b1-c6ec-49be-9867-7931697d508d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b1c0d295-e371-4b6b-a2a1-248b2b12da03","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418322977739301893479334793449521322181971369976103563844769599530520326265121630025338846653363204271493675514511820860113051907462131674338227882376740168652358744408228716551579876469822260221084098361388876795148587485495281386795088368741093572932110133279101089213767193868224868850655064265110351394603974770079437605764794445858293369782858884854666517764","osProfile":{"computerName":"jianyunt2"},"vmId":"b42609ca-e9bd-4a93-9f8c-0cc155a0a69c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1uucVzS3yN4dR4NyUmfTTl5+rxDDl3bHtTXP0PEXur+bQNC390nravQPSZIV1uHIExUPvPmUMDLxQudxIo58bzj+3v9WXDTa4n4ShjsQQ9dlKEaFIRvFbDugdN8BblzEWmGYhVxiOpsA2kaPOYYOxPmO2o4+sKSs1OkLFxNzk2AcORBLKwhwb10P30MwptO5EXP2gsKymxzH0W5UJfvg4X06SLRfVWi+KpjhtIOJ+dV7JKRP6WBvFy5jycIRCgZtbEFzO+OuGMDUg/9zKs0EdLTaI3yd0tB5KbM3zI/NR7D0XIvtsi8yrcLy/eyROVubWl6fUJUzMfuDt+PKAnPSdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c99d4767-27f6-4e79-9ee6-88a8cbf91c02","name":"release-c99d4767-27f6-4e79-9ee6-88a8cbf91c02","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c07192b7-6dfb-4fdd-ab83-91787b435276","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185442368564771767810610356346467971116451667384879215971690877645267444279107120948150128800287914877888444714255441598678465141392549426838985196582549218322836097863793410223501384037398236780316068127683745236693318982222240829787326209293613918462801877509394413725872722912130437755684231169695547874303286673492153268925461707262483160007029645878252414764127012207669631667788838890272238877424795038625763","osProfile":{"computerName":"jianyunt2"},"vmId":"7dbbf583-e8d9-4f25-b177-add07abd83af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqYKXPHnIo2NVt1Yek5b1G08hitxAJAuo45sTdoJx9ytvN55sNbv2VfiNfOr3bX27vNB9Z/huStZKacaqQBFofJxsNU6NAZeCoMjdnrn6I2Y0QsSir7QjpfPi/Z6eCRu3TVdwHSvKs88/7BInNXbrxwspa/naidzs1aO0HLAGAUW3Y/OBwQn71T0eb82s6GNhkoZ3zdGAtKmJOtBwzBIxfIDA5UHvLBRox5xP5ZcUG0UdNHiwR0OfshXEb3sxFTXyhZbOJqyGUcpGOyvEH8hTbOUDwHLkewjohVUrF1FO/tBph7UvqXPrCBq1SLTz44wErXLtFdMfoGtN1mjCEtrdewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-efead273-c89c-4dd7-8c9f-f8ae9d79514a","name":"release-efead273-c89c-4dd7-8c9f-f8ae9d79514a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0d80b34b-f877-4386-8f99-98c75026ba1d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41843465739685843873928825751095877228592416456384933463000813460477572418306394895780825570945637632765670638692831978964605147252189976716126828970392248457202333875038515898850379873926244616733427352464876858149732057873418225349170614467832462254416650908330510097752717475812784186863736313478570859385","osProfile":{"computerName":"jianyunt2"},"vmId":"bc151d7f-4b3a-4788-b469-28fbcea4d8df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvqoU/z0KpmR6Rrl6ObHmgNec76HuMO2jab/h99Kv8apVW5VBHtFr94rK2g3YUGA5/m2mem7z0fVi0l398nwn5QSdzF7xU1sBXkUicWxO+O/aML3E9P6oc9B5b7sb4fEPvPrVPYl9lJJneSMZFXXELx85ul7lDd2o3Tto+Ph7UUmJuxxpuHy5cLxFP4sQj07YdMByvOeb24ZmgIg00UsaKgGWTLJa7L+OghqHe4tyE8TBy6OHeSKmG3fqnIt2E9w0it2bwTxbUK6U+GEii0J1L2MRHEjuVyvMh/oL7N71WrvDbfH64evjyll7F1+ZzB0Q+drOxwGvO0zkR89Sz/o8IwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b150d419-143e-4bc2-a692-8d63668bc978","name":"release-b150d419-143e-4bc2-a692-8d63668bc978","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7bda45c8-46b3-4e7c-8c17-98ac0c076d53","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41832639461951123175126314134273321594861367485441858849628392546873620782168092407674793398274850487479400186840770193031368440309584209681855115334633381085296749796192589393713686163652895777451924923865423268485184938179349755763676844518052194041271564522759294743801758373436684514293438691847395384606704269238869747813994051112","osProfile":{"computerName":"jianyunt2"},"vmId":"a11b8e6e-1549-4615-a21d-d81e123013f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAruNVTGEOCpUOd95us02ZN79RT5gY2vZessQgCxa6qkmcU7kf1jtWo9ZmBT70YlP/RMeXE4bMkriFFP+jBtvRBISoexhluypZDFM+QyzVGktoDjA2co1f1z6aMRS43dLAUI+sjgtCsR+85QNAq/fsQBvlHmvg5hEOYHSR+h6sfY0LFHurabmALsVO2AODaA3UCFa1rRCW9vnI116/XhbmXK7loqfEocR5REEitFi+GWGM8re9d4qd+OBeP6gHVVf7m/yLQexQV6ohhWQEAeUo8LfH6F3YYuTbbDUJNXvcFYur4jr74w6jzcydge9P40SQQhM+0IwdshcclkGqg6kZDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d407f8d7-f213-45fa-8cd2-7b151ec4ade4","name":"release-d407f8d7-f213-45fa-8cd2-7b151ec4ade4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"041eaab0-9607-4571-8bd8-fc492f5a4ace","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418885189011290885756770349445943863367547170585432156479782414044379792193011423797174357521239412326412748077974773080798840745010004904891777312894620899704667396832313337760549451286443148711576448263874727447109096693638654760015456881183876043268387464333367233687835443040447719357101773185153199","osProfile":{"computerName":"jianyunt2"},"vmId":"cfa7277d-6ff1-449c-ba4c-fff6d80415e6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxCy5btTYuE1L+umWUV4aqpfLfH3LHMF5YfQXLMOwtUdIqYFBs8s6yYloDCiUVW+fkMPQSXeSns9Antt2TAbr/hpPw8sMJXX4MW0QkYP7gM4YYwk2/Z3ILScLYurQunioILvfViFNi6GigJXZTMr8Edjq2cH9i4ou/f/6VmAvGZqtgat21pX4nZ9pN/bwZSdGayapdl3BG7WDWlJyNi3m0aRhiB+AiXiQSsbvy2SjlzRYkcDX5EnQK96z7MSVVZ5DZbfMsVEJmgIs1IjkwWZWeoK+8bI43J6LZqXG770LdnnYNtOKT/8PVLXuEeSkgVqj6NK11yND8YK7RmjreGphVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7ccb4a1a-3906-4861-ab7e-1b2340be3347","name":"release-7ccb4a1a-3906-4861-ab7e-1b2340be3347","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4a69f6f2-2179-4f11-87ac-6ba2818590e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418432350928149953943662594003534266712383175158098956417178132144176166039468665878491361691694935881712056395445441044158264468518299493115043389990877286291146535820613184718060832540265414279928349218278524792301244288983420790722884707719379904225794218531961772469164938002970445459206128412163015964351214734048336110959894958194009545474818488697463509774490244128642209963647271","osProfile":{"computerName":"jianyunt2"},"vmId":"d611dac2-0074-48be-b6bc-c37d62902376","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvSlYht55Lj5K8kjcfhC0p6p2jjPoilBxGH445dH7o4cFrD9aCIB/xFHPI1qqOeaHfnfPRdDUgcrqWCaEQ/bjE3fixeWFygR0ru1vx3el+Er6CuAwDLd72T5JcGeV9fp6SyYIGkgwOHnBBvdScSpTxdZZZKsmGQ4BQqg06kOo9NYkZCZexNYiWrvZ2eYNNPMHLd3SOCQ0vehbiOjLPgqJcmavdna3oldcJ6NTng+BLsAjJD7ye+uVgDbDvmoaW3jZAkisx7djJkbpsn5/07MAdFt8mfvYMLBpETx3rBuyu6pyfhJPTZhg6kN23tzZoM3/TDfl5gfmXNhxaRMnlovk/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-81148ba5-0f2e-42d3-a4dd-852662abf4fa","name":"release-81148ba5-0f2e-42d3-a4dd-852662abf4fa","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"88e26454-5955-4d2d-90f5-01ae89b4f918","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418695313084882459143988595532134566334331430376739039362367137806366792518969502032910210928236598935321794956368378374871990913685787912898340947962272640435145558929467912266860417780163936123574644519184322454913902292197312850665785201542248255125827432834084997584791171260892094959678878208785496684688710206696245102717631976474630902392947278472733374078902966701337283054966789","osProfile":{"computerName":"jianyunt2"},"vmId":"52fc5a0b-dcd1-48ca-ad1a-c0f09e71a0de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXiEy1N3cXYlbeUYHix9Udq36RqTwjD6DDT0mbg0eIpecDSUSzRh0lgvSTeyx41712OD4hSW9dDZaeZgbzbhrosdUIUKkiurGVPYaosK92yw/JUk2tKr8TulOQKUa28li3wUA7UvZ3r4Q6JJpGgdLcloEw8Th8Zg49A/XJkutzhS2LiRVDraXJb/k/7GGMp91UqDrlxR0LzqDEt47efvsN62oqi0oQ9pe6Gh4+C5UHc9LI1Vs2utQeFE404j3qQEraKDM4ck8zrkLl1hPgDKakg7bAIwheMxPqgL7EJmRqQwex2oNEu17jPKVzYYjtX9c2WXMRdaiet8Hbc0nX3C5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ab7bf7ef-ac82-4c55-a35f-db700bfad437","name":"release-ab7bf7ef-ac82-4c55-a35f-db700bfad437","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"728d1c78-0b58-46bc-98e8-b854b98f86d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418927668487837531744957414644160429980690020701754581033075321142163011447285313875020746025314369120143434865638286483465407656369224183202357170038718313889378172235132311826656078198915971628495904286881306175949971157365875920645892866133973253951189881699159986008051766770808956862295961866343158","osProfile":{"computerName":"jianyunt2"},"vmId":"3e586866-56dc-4987-8d85-82d3c67dde10","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu8qzvvs0I42Ul5djd5bZUWIBPdUlsPLBoV4Xae/Mi4FXrtWwN2wuA8k+tMeQUUQWFM5y7y9tUscWh6SeChsvkq0PoGnFjr85DZWcciPAOqxe0BDaEznZpYqz/4MjNCtk+2xeAAlNOq5IuwiYrBU/wRpED6JI4tl99C2CAhwpwL98+sJ58+Nn51SyGZ6s9WNxGY28UTgesLSkma3UH2AcsqfOnXPAuUXWbyPHAFwil23vtBtADG6cN+gVPBSLeL/A+FQjOq5NXU4Sq74+hlhFhg1eRtsbjXL+w4+hrByxPjcS0K8b/Hf3v6eqOWCXBK1btxEzqcXY87dJqLKhpla10QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0bc1a348-8345-46e6-8fc6-a2c588756d7a","name":"release-0bc1a348-8345-46e6-8fc6-a2c588756d7a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a41bb0db-7d72-4f9d-8156-7d4b7054e438","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188581797266002372859438090442474476256450626556852400846558805342052828709252854793667525387874263618446430245238361094445293908477118581684940243468825735473913060678614319040995514225784775879380187119133295363562714826876771694742423464940963973981508626344625811140648063887642695796598773091332724373197851874027114656762269824151463909951498488579368927810142061451200","osProfile":{"computerName":"jianyunt2"},"vmId":"c3356e9a-c5c6-4fde-9cb5-5e1fb829cec1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0eX6sN4AfaaPEqxg3z9QQxB3Y4agzkdJHz2vojD0ewx6FjN2snaT92x4SazfyMe05YKGLGuDLpExJeyCM9MOnDZbRFEZZpaTfVJV36p0TNTDXF2wrz8S6/C+SWt/aEJiNJozxCqsfYLtdVpEZlQ+3o+L+OVro4fYWqvDn6FvOXADU4eY4x/W1bCN33zybaoLmKCURXOaEzr1hR62chKRme7TpXFOp00WuGkIq8Ai08u79Xk7K3pVnB6M7wJv8++IYvL8png23nmo19A5scC111yvDoICcihsgm4LGk12HvSSZ1dP/mKyR8Pe8JIvGALYYf4IDnDZ7xUHaPDLnpMNhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e50e8c52-8f45-4b60-b237-c705d867fa7a","name":"release-e50e8c52-8f45-4b60-b237-c705d867fa7a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1b523aea-a054-4745-9dc3-ec442f4f44cb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186211473076163364223538935184133691906105635446440049105666866792253870509370050422167637089758718479866578553337598829447856960460162756441150032004875290265724168216205004704691166044829423448964295139826041951020323172240610246440842513097292192274959703130081607056743114949489083211796896212811948561670987518926712700542447389015266588361294172555376405330536255627829667398133542688890862623286","osProfile":{"computerName":"jianyunt2"},"vmId":"20ea5688-747b-41f3-b329-ea21a0da2bb9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArlAUz2RcKxGGTTxF0BOzpF74UvS3v71ubAtDAqvDzs52mYKATFzn81Pl8A0qNfXVy3hXd1dhCtS7OQfG43ZmsFCBtjqjH4yvFMeC3vDCKVezNOtnvjknppzbyv0/7TRjL4BApF1ZI4RHN0M7YzIag7+kVolJw385w37S50rcANL7vxgoHDNSjwKnQ2pnx3025z3GTQ1pxZVb7oW1nnYnhFTkMp5d8OQy44ntI1hj0iO+JPrktKd0ViQD2VzSuEZnb26J6MkVMNUbhrra5rSjhPUeM9ln5oHAcMNDlSjIbTdiYUaeD6OM4+AhrmFyrYCdVctiumKimQxPkJrXy1yvpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2dc877f9-4e8b-46e1-9241-a446b8b01600","name":"release-2dc877f9-4e8b-46e1-9241-a446b8b01600","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"94de9c03-9e22-4170-9577-ad212383eda4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418498111091087198073481415954926319947564597565240280261485107209123988775859618176295292640719444980166087502357471294951813636551562121380293740912650803498573116823019808257634894780012374263440131494216585072718547643957929086779500591287762600558559445494219141339013146572751162454487365972936332184826219409710761442156309246829116824524895787156744392094218331225898496624713985458319559497118433154155485701","osProfile":{"computerName":"jianyunt2"},"vmId":"ae720eaa-9b13-4736-8216-32c1a1c7d402","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqnc70XWxtYl8beuRqCF3kdMF56n7fxPKAznnt5ZP+NmvFbGGJkBJMOQxZGoZiGHqnnVeu/1EZUvs1TSXVerftS4+LuHRFZzV0lfn+FWtUlggYFusdOQnFS96z2SLn+apnhAX/AfUQtz4NSGItK3EZS4+0DYUWpnALWL8WbV/opBiuf03LIWrygG7mtbFfSAfP5otl5FMX989GFQaZA3CmUtzfq0k3XD0+9SgYEqi4imzB2RgPVSW4ovTWBm2WhZjENHCjyvHF+P/DLwOFh/xFVNhOB20kIp113rEe3NjNLz7vUcfyaCpcrAAXDRhKoU2AWSpz15i6/uaa0y/fBPNlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-62ae10bf-6ff1-44ef-8bd9-201aa9583c1c","name":"release-62ae10bf-6ff1-44ef-8bd9-201aa9583c1c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d89a83d0-cf62-4ba4-b047-bdf6db0c3b3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418945511102454606921073207650624339252944505521567455888127103721217151177276698698882700927857331939147859784419499693567217569408692834357099271461117583529388881857525371098279355274658961594121548217939646256403963229876545274008901624910233826931417740937135831315995984536765627622262488002325424445021375620439586377418566093790453711530530252274557675221843500541","osProfile":{"computerName":"jianyunt2"},"vmId":"33f68cbf-1678-409d-9bdc-da67164c07b7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8AOuvARTq5lwPTZSN5Jajn5/c1nLT7X0BXlM+BgQ0sKl9nxOyryg9Te14CNOlVVJAA4Dr5+13jAyXClcxtwX846xLbcY2Nxb8s48CEI2/IGq6pNgeZk155VrRDyajAUCEZdOeFO3jyw+oLveIQaUBZhgwM+qi/JYxU6kIyq71lgn5i0M7rZ97aOe+hLI1rXtsLEkPqU8Qwu3vp2ksTAE9pcNHx3GLniP3rPPVT2AGAEXTMecrlWYzuXmiHF9KbTv4Nr1Vps0wL8YiPyFcAacXeURtRQWkfFGceOTti2sbV0pSb+smc4MoM1V2vCBIST+4stW6P2wws6wvw9DgLge8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b5f6f2a2-64a1-4077-90d7-e64fd94f3a5e","name":"release-b5f6f2a2-64a1-4077-90d7-e64fd94f3a5e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8087ca05-4a9d-4c90-872f-5c25c04dfa51","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41830747781113873574856378884558159674138342605281027926728511168812747750150734900123352099632465727065771910297673746599741502859581393395476561261363542829357125594535815546166194464223451719982526352607697870287664380136951935910775936768247460426227897957518363682475832868985628591855095702771693684891472059417341999985265975842826149426433521083008765073473482766880707224050328235","osProfile":{"computerName":"jianyunt2"},"vmId":"26bbae00-6d58-4cd3-9a40-a2de6c35d714","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv/5qzeOhaXS6EAu5DjFNlwiWp+a3TglBjALnp1/TZ4dZpUvymTSTTGB0XG+rTpRzZ5Cis+Mw4gYKsIhfNm+pytKEfc1P0M0WgBEQRdZiSSeEf6TuntZXLtWxDhQPLpD8a8HRLJa1J6IK/sry+2aX5GCT1+X6VsfovHfV/7R3GsJamwFFfqxDB2HETUGZqHLXrIDeSKMbFIsZyhq9Q2WN3JkmICcz1syvpasPei24sK7e0lKfIw4LVJOlIgDpfDuBTd8UE2ohDbXe2yK6OLxlnxiIiysU458SKVz+KSXmy+xlUoaxQav6Me5QnJ7v/F3QI0Ht0t5klu+b34XOToiCswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ec43bd7d-eb03-43b2-9e65-434481e0896d","name":"release-ec43bd7d-eb03-43b2-9e65-434481e0896d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c18658cb-b52c-4d7e-8859-d57b64bb4eb0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183668135060132232891129854459537630574649688191898907483388267783403909036452632228646936141929395617282608728049809367259219258187086835302550288661065959977336907692707491233703508118106456620984957964130393637805478353624242152389976613750464335133675791193471800287865027775372646176443546242412381752639568505776406590856595545558213005201216211619547969230002518803378683267","osProfile":{"computerName":"jianyunt2"},"vmId":"9b77a5db-c85e-4bfd-8e70-e08ed4d994bd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7T7TanHfK/5l8SC469mutK55fauukd2jf5ZIkKSEmddFZZQs6YKY2CDr/R6pPKIsoCdiYLu+vrCKKJIYQK0iN9Oq1x7vQU2CNO/1ZjoSjM1mdDkDA2SgnKNTlwQTdky95c5pdNv8zENVOeDmvEm85pTr1e5sBjBtq0TxgFMfQpO0ZZMOaOJQ+4M+kNwf5Xw7whWBIbCDFsQ6wTWKvw/+GM+oLz6aPtfhA7ZcC1Yh7MZyvNF4lh1CflS5AJIbLNThvV9sH/g7sbIc8xtZ5URf3TXRDVWCIvzxO0Kfbx0Lb6Jg+T+L/IWY+F26uNQtOfETh4MWiG4V+z9AQfvuin8E3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8c110826-70b5-487d-801f-07e3f947e941","name":"release-8c110826-70b5-487d-801f-07e3f947e941","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d607e719-5f25-4bc2-87ab-fa69b56ee77f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418276914339814863980771087143023275917556465523018359239983282459361112768955661091409190076899849111987197544723694512193767349034312405870749175504977034316896837734918675466499394386472546778618254895496364410134485344115702546773690761510906563348182573438763304606813941091458916619226815250410717256687759327267554885389854863051918217760731577983596877749808231908006","osProfile":{"computerName":"jianyunt2"},"vmId":"720a3016-026c-485c-bc23-82b0a4acce01","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9G3S15ulOJ135Ck3sGdnPy8PhiWOFOognDGzXupvinGMnR0cF2YmxZTTR3xe6evelmKdfxBg/alDbfI8jA76u/7SnsBbcMacVx64tBWsE20UvrEpN6bwfdLop82H8ICDZnku4tnIsPShgCsgabtV5hOIRT/6JYwY1lGMnq5BYu2dfjuKLCiYH49SUXVaDpQRFO7HHHczlgzPvOGs/4SC81n5pyCwIprzjIvuKzyHX/iNX5XmNDSOB+v6W4MNRBsd2WtsFTGUFrgcyQ/K45b3VhK3ljoOnxD7jPPdtn4G7xBJmpFiTtwoBQdft0gCB10QWfeoYvQrxx5jaWSEH4WrZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d7f9a50b-88cb-4dc2-af79-1f0c797e53b1","name":"release-d7f9a50b-88cb-4dc2-af79-1f0c797e53b1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"00de8ee3-b0cd-4a4c-ba10-c372c96cba16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418688446219065335667841143986748740584382615273571868166010192926763294883680357456965097073271887618164233643163692575472122076857900440277785254303171801584827310322634292141652412615861978873394292068098077114727542069542498732059337382031159379464475990830148316196654625141845658066129255795784093893291119295528998921020365561927716901315816582684584724398683555469","osProfile":{"computerName":"jianyunt2"},"vmId":"cca53933-14e5-4586-bd38-09b74eefd96b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA65dpVw2TSmH97qnA18UjOWukB05auK1WdpVc2fDE80V0L4LnelkFmA892GY9PHh96gwxOhg72a0NgCfTleui1wI/2EuFE3zoSNguRZDZGEr04ARgCiqvC1SUAvsTXWyFBPqNEBL9knGXRtQrlQZfzRjKOHhJQ+8nFHpnvytdiE7DHdOWOaau45bOvRiui7xpp9TFeIvAH/1cUt6jQDvpr+BixuoabJrgmOsCZSHbafyqFGY7c67ltNYmbrdK15Jxq8ZsXkBdgAWoRYY626iYZkea7cP65az67Ih5pHart4ANug0sIG9kQdGSNXq07L6ZFPO4XsFgFnEBuOd8o82ITQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0a173cab-b3e5-45cc-af1e-04c85821e73e","name":"release-0a173cab-b3e5-45cc-af1e-04c85821e73e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8b7615ad-a831-42ff-860b-008afc36d623","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41867012219449673297055408697239078347966897956966266365763950609519729887778404444052932400838931339767909325222135898038784893650673311439960725393593803558286045472184533874861381485712823720496193563162252850746138516625229726262697987742098024066482888246065702556380181231864686990097045516519555272236482676416265247298444886136764759003460633828530482627625748638645","osProfile":{"computerName":"jianyunt2"},"vmId":"6c201bba-05b3-4b32-92b4-c7d15c57fbd1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7K7Jdo6ru7BbkQK3bDVppXp7fQV/8+WOugQiZ+/I9zjC1B0aTIpQeibd9maex/iWoUNquDBnv+91OgPPHaQF4t4ZZUF+YfkWRGxC+N6sfN7CNNG4ihnPOOpknmY0llP2YDs1tIBp0ww3F+TT6MEjhkBQcJCEQ7MVCI2hxeIMnHtZyL7nZO74CHtgQt1Yki6Bu5J4nqlfEecoMFR4IXZfbOLH1sfUwxEBVRC4/Xhv3jBC+7MPxSSkybW/IRALTYj4k0q1JkLeGQtWDsuTUQDwB+tLhk0JBzHuvynpeDcSajIr6hsums8rrdezP0DOdvnH695Z8XIf6JsG6BZRMcn6/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3307ff5d-6268-44f8-9bcf-4f2fe04ddaeb","name":"release-3307ff5d-6268-44f8-9bcf-4f2fe04ddaeb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"525cff3d-ef19-40ea-bbca-3bc3bef0eac1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418280268656475897397708084122060543236897820172172332877098982458692371391256856517510872729068415344041671291226087801425635322891873109881684531299969279899452136995146203398414527003787768227621401387974799839666548694250288913631435672510565319620863245294068128202884638312681912421533936636894272388418092311956186865807043996753454508329913791333483197737021112439616991644182955488728866486","osProfile":{"computerName":"jianyunt2"},"vmId":"0bd4a55d-9e9e-430c-9d15-5c9324f311fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1kVrTL3UT2nU9ryeQGYl+mGu8qC/F1XDTZti32u3v5iO+MpqYtC7hr2rpF+mUgw1t0+8aetug6hFLDJLmmx9AmhICsYGG3RPuSjKN9X7yfPcgsOX3ym4j+plP9kriuSijIyNblCJC/fD9nTsXqKpAd6lNLnm7YRshY722oiwLgdkfvYS8UPNQ3lsdhCPWK4NwgMtHd5zBEadaQxbKo0ORWq3APGl0qSXT2nCwUPcWYEs/y9wEgRwj40Rk30vJHb6o2FsLFo3lzmFFW0TZBD864vlmJiwDwPAkR5LxRcKDZtr4mLj7Hx+pmxj+UMVM4Bar1vg6oDmX/iQnAx14lcGdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b1436a2a-44cf-443d-a358-ccf5b14b63d6","name":"release-b1436a2a-44cf-443d-a358-ccf5b14b63d6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"140b1c27-7395-4eea-a6dd-3ddcd6b03017","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41859866525107349269385995234068358892299855145752851629623898185978088804939929480173881167818394928383886374881515668859321550343691688573689343097088440302598405377121393274129382647378973475763288920107644001683363345747623036632136086569500764333109747972572922440536065763808448492328348613961087239112959053842220992512549935476105274553934570719831492738","osProfile":{"computerName":"jianyunt2"},"vmId":"e75c0d21-5e08-45f5-bbc5-fc80f2129b14","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1spRjkklwlMrv3YEpZ0D8YOXX/mXdaHEX2qtQIfKGtpG2SpO4Z6A+v1u4/y9L5E4a4h6C7irpSsazvqQ8LKkwDNVtoo1unzCmPDktOZ32sgsTwXeyJMX4JG7X/tLzT+U5r1GnzmZjb1g9EpAb3nHoBczFBCt2tPeP1iWAXCjLf9WeNTdjd2NgIMAgkRejkk4eWsyJ8lgfGHzW1osyiPxZj4V0IynOlugZCCVe4QE4YFHrNMHAFnOohtAERQvyWNPTG9GvpXuUvw2mImQ2T6oZ9ejln+yJTigwXeIpqKU7GCqlkWcGgNKIxhOde8gBTpx4cFH8WwMYidFp3BuC/6GWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5acf8bd6-f134-41bf-bc1f-1b176fe7f7ba","name":"release-5acf8bd6-f134-41bf-bc1f-1b176fe7f7ba","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"75283705-7f91-4e6d-846c-b7a04241a267","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184861157028045533103681558332051945767468960425793615821599334299178860068451018713520193243020163992946227840070886816543385842093641886357706818918196994281433986384769567469235283519083408585195665734646142026383806885091368054141815107865370194881028702207697965834801159811825496556205236562892845458331256630042881800323924922801673332264588453091603244253596435915925113293359341222010885311662747366560","osProfile":{"computerName":"jianyunt2"},"vmId":"8da9d935-33bd-45b6-8a0a-80814bef2d90","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA41yQiWZVwOm1emn7KSbNVMlm7SIHfgcA9pObPejXKtijDrZ1OCQh4c7vTQXJDzR/YunGzNEE10NGZ5EED5YDP22R6NTIw4BF/PD8rffiPGTtOaoQWGhrjrk4oML1oEGpyMn7N6SsmxOTYRu0MaOYV2wwh7PZD3mZ+EnPMZtiG4IzVxObhveyDWq5Q9EZr0b4SDSLHmlOPCjIlvLKCW9CT3HXrDNKFFafqo4+M8cUAQI6G3t0Y0d4e31bmXRgaLkRxiRMbG+5o8D0NLiSGvVIWtziSmW7bMkRp+OI1Tr1iKDZVHgwN08X/pMLEmetCy1mwDUyiYOajKreZ/sAoKvVDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3e8ccd2e-70be-4345-a123-0121b3f7100b","name":"release-3e8ccd2e-70be-4345-a123-0121b3f7100b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"88ab2014-77a8-41a7-a7ca-599ad272177a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418232738626801368297716627095445170382412351271852232368802080275021185955899137518265711441778743248590809477123815264211134067217212774891480902148527731319220786279845272275373736882130966203800281816697751477994391758472851463806181531041163573532406280694246839542553388896365397323970709544484168938516922198552452152198597583400026831448987647286908292147188155528960846003207999402253874745107534658368542177165137813274729728631725731","osProfile":{"computerName":"jianyunt2"},"vmId":"93cf2f37-21dd-485d-a8bf-5206fa02080d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ZzRs1AuMP2Ybyx8RWKTLoJ0exa4NCEOFI8XKDJJjlt/sHHAKYfFk+Rn35XXb+PXw7I67BT6R/51RwyaanTn9OrwmOpf+ihPIaq1aKRE6nCj6GAqXjgHZI9P1yQrHDflhtzEY2pM1nBwb/PabeNNLqubRQdHiN0buPvAxCx8rK084iKppAIDOL8sNI1vFPJPg2d8Ty+ky3F6IaNPdlT6Wv5hPsXv47Uc6SwXMYjOBQakLCwc51TpZpIMzMyaNPayqFm5nCkDfLNPMdMr01GmZ8mz+l5uo5S9nEdt3ZY+StxyKby75jjipmaqQ5IhOSRkW6wysvyzUaVybEB+Wfgo7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e9606e9e-8ff4-4957-beb7-d43b93b58e2e","name":"release-e9606e9e-8ff4-4957-beb7-d43b93b58e2e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6b46306e-ae58-4d9c-a296-a4ea901a4530","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819220856854159981624449582132474078829476637995902800319504961616459965801121841845166860408775789399337248813510609763716837206011537762632461837014045634332052076160288220633538697711818330055537520277463739685637129256324352665983941199161614655441134940693338244395823367856745271092177939763471759029242646158703915360650317371474195649172","osProfile":{"computerName":"jianyunt2"},"vmId":"38520e51-e2cd-4ef3-a0bd-4b179fca4274","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyHOvfjJ4q5+zwy94X/BhSzFxD8gcVaj3a7nCqwtBS5IQUpboE0C2I/OsZLJgwwJ2TlydfFAJtngPgw1DxP1xhgLhjC8BPpE/LzrjqJprO8BqoMw8tJgTrUfpsEfVamjKfedh+7mb8EnDnYkUQmLY36/MKGpvkBs2c2UoHP2pfl81Gw25AxNPuWE5j1YybeiWlWrl3pvQWoZ2dAKFPjL6mxfyEuiZprEIPC1hpEo8fnC7suEHqeqktajTd3RlNt1EtNV2xBDm3uXFEeQj4tpoEvBvCZqb4ohkLUyrE+oNSygHZ6HZGg+E7xno7OAw7QtppJmShd5lRvrPoS9wsvBD0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-de217465-3ad4-4844-88ea-38e353383a46","name":"release-de217465-3ad4-4844-88ea-38e353383a46","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"64ca986f-b121-4771-9fa9-72c926e5696c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41833062269173135375776321223382562217632036719721959392469944850629932277600752811007797544632708303640592446509379654056094810163074212313346482028675298287976913712432400541843239875104339648633847461604490479179585054276219575691202517558491087642122711336302882851007177021744069307827371992151292831758639571845426413091182520488566260176216423448034513876222946203407237080258446","osProfile":{"computerName":"jianyunt2"},"vmId":"8cee46db-1605-4da4-b97f-5cd0cfcbd970","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvsT1dQTCXWHVxvmI2gfNhamiCQxHeuhc/BtcQfOE6aLzc3Bx0uNDVInVvAbORmRNeBCy9FSKmMDhr4IMbZuj61cy0ttnenznaV4VyuA05sT5hoYiz0ZhlTMfDh6SvTbBq+cxhp51kwprGBjs59Tw2bUeFTagCRowhq4q//jn02O+N0sWuhjlgGJGldzbF+rK4IgLAn4+LuhVHyzE3urXOnLnflGjn2y+OArCpWMxIszsLawXIdX4YNubxx/+371RtrgLcP40qx7IpLVxdRWKUFliB4LOL5g9+qeYvdg8Ego7c95NWBDcceVy1BLE0mdFynvX10Ctz6/i3l2H0wZFBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bd280ef2-259c-4f82-81b4-a27ca5129827","name":"release-bd280ef2-259c-4f82-81b4-a27ca5129827","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8cbc1f3e-705e-4e74-8997-83134709cac7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41874054347559447489203186544639366198319601175898279321756749411363484706628635341171230695748537494010842391701579165203219818801482355482120295665334687979981383687838950169014646174781467663661927798913164303329424539803667921059982139497049194256156134672886213189239924487685132721431626211671286837661723709482383423422242120","osProfile":{"computerName":"jianyunt2"},"vmId":"a7be5b16-1661-4dfb-b90b-54f9b8f5766c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAywTpx3OgeQN/s3SQ9fBX60lWDhL+HFiGnCCTu3JMOb9CfyOJjAdPzWvuJmGdrYXTVpjsELlQUtk3kYpH1SyLC8uHwR09Bz9OV/NGi8Xv/nYHYA1kzis83oFlKb4iJy76JUpJqNHXW2nEizssGUUQTzXcgRKvSiV120R/8GZA5GZbrB3At4YV/41zq6DhcgYZe9yclMLHUSDVk+BVLZQTGW4xGwMQrbYKK3DQ1stXw9n2lBr6ApPvbvezTkuo+1dhmHK47VfhnY+x/P/i4Zkv3a+uE+sNGxp4XuvMPZ/Bbr6wXYcJugpswIEftoBoD6gpwTHr7N7dsmzTV1yCYKrdRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-263598fb-3bd7-497e-85c2-84338b6491f8","name":"release-263598fb-3bd7-497e-85c2-84338b6491f8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8ab80d34-5988-4def-93cd-8f987604cb70","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418650278434510875858237034231140909728255886864582716683423681865833876311568870578058573096861366910972270765734939395432355893090602120758586897560883188541923705803838579785181755406655113034887621906860187101393183032362562979691123255695088573346540135295097681806228944301057106917425089737404823071588114163910868782532777831472946510038550480129094299100850282850940228282965","osProfile":{"computerName":"jianyunt2"},"vmId":"a2838d36-4685-4a16-b525-e1cf46b78d29","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz+h5thmi/Hw2xPk+GBpqd6gpx/tlI6YXgDhL5ziV13rCtTxKlG1Lz1grv6tNjDmiu9aJTddpKfFfRk+lYQDC2zQb9cmdKz7S3jWL+iVgphWH/7Sz4dWiJGh4JZ2HzJi+Xov57KkXyyTRdlsI1qCJNVgdsOxZ/3/UNCBX1KxUpRjuOy83dvcVkCG69t3eESjzc4CLFnCa08/TKYkU/qUa8FirE+vYTxalyfcqV4hIGSgLsSFG8bxCtxi1i9RHHl9UKCHuiTx9TsdrHA5SoNlYCh+IBzkJz5x3qmlHr3OT1+3hozQeJ8qLat8XeNXbi0mNN+NS2i8llIGcdXTFKDk2/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1fb30c3d-2939-4352-8577-322b99c6d29a","name":"release-1fb30c3d-2939-4352-8577-322b99c6d29a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d7171b03-e024-4b72-9229-63e986943148","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418891514999306486015298383744668948640314223293654185576372137377263935967471811560315728404232239027548108559359170689042249041373927121992132838306412482351295246741963012851918995939292971148713174533689881119288381252945453999603997562288823362155360104333608869998117907788788075148300194435151075595780906716118249199754234314495062739830077296254430145186708885","osProfile":{"computerName":"jianyunt2"},"vmId":"cfecd471-b7e0-4f79-afd2-3620c1ce88b0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnswM+jWr76EK20fvQbfDWUKe2RfiTiE30txCyb+NKAx/9Q6pbm0rLPa8y5JtEa+ymWzZQ3w1ZXN+w9FpbneLHoUfBiGD19FYCHa8p589wTZCh9G1RP2MPV27qRIMDn8rDBJzDNz4jA2vdtvn1z1+dA/VJdlU2n+l/g1SiTx9QZSel/jFb0LTO21BIyexZT89g/zPafXvbQaFbFMrOenhqr2cjXSHhfSWsvu6YxsvrxmF43OIrEWbEL3cH/U6EgDyMlF6XP3GKguYJM6YeH0sob1LhlEJss4uoAQwu6QZm5ne3zCyPMNxoBNR3fBbFbX9Ee4aOAszg33eMCNd2d/bAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fdde4b2c-83b1-45de-a64b-06c2405dec30","name":"release-fdde4b2c-83b1-45de-a64b-06c2405dec30","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8308180a-de39-4688-bdf4-bf941e835e2b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41820311599570891779379156207620907416302612745486217150035931322053692367028239655515529476869968910049491552887415239629448836198233695731225439037079440462613428384433913155506415532830682023407564857970843391655649294720392482736581622490961963195593089847121273322566924179808089394038064791219355791615976361153236042034339502649941088236180035841312573114341","osProfile":{"computerName":"jianyunt2"},"vmId":"815237ad-3f55-4bfa-8fd0-fe9af13935e5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvEBMenwBXt3Ac/NLkjcHDTxrOJtOEZVY4pzLenbqafyOS6vWR/HNnI+GI1NViED/DF628v6tBlcdGdOol4H0A1W5pnebA25J58ukQORaj6DyzAAoaRXOToeTFyxFKunROZknbFhwA/UweCWltKXy30MtjF+61+uVMC0/TNwhGjq0ekgq9buRp/bKYXvLR6cHZYcteUFfKAbxD/+OQqV9H17+gx4bmCeiNWt3vtvKn1nJCT+LjkZO8D8+DJwT/9vHUmE/kdvvPIjIW0oPoI5fOdCRQOOqXicIoxgL9ahDnSTtYCzT0yTWBmpjNCm4FSB3N904YKpz9mj5DKQZGrzv9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7c330df9-266d-4e2c-9678-9090bc39104c","name":"release-7c330df9-266d-4e2c-9678-9090bc39104c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f4e2b671-fc8c-40be-bc81-867709f030d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418111059381783576945456606256734153114443215796663827013313013027671068591343819759117661895842799529265617291735713188142714406530591444501242531173916664852823497858174162141145345922615468642111941938925644359969407538340386229966363748924369850479456102531152163003394113538481071257588454431009932575569683311759275906301900576308884681670022781587946965440632661912831447445049742529","osProfile":{"computerName":"jianyunt2"},"vmId":"af9cac86-06a7-4bab-945d-340066ead04e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAubDrfR4yK/GK1Khbp3RU/xFlprmxo8HAT6S5T879nlRCjIqL0YAa4cYGLMKIXs4Mf0236NxupZ9ud/pta54mvfAWDrouhg/xotJccOF95imkWPpF+QhLogKDJudjoLvVatwRAxIksTHs0kHtgj4qQE2V1k+nWQV2QTvqDSkh6nmoH83lbH1YSaZWTNx6QJwLYNYryzqrMlWgfHnXK9ZhtCjMqcdUPrAbwPxqL4uckrdsOCRX93NCxyH2hVcM9+Wnld5y4hSpveOaiCuYbjHonyfYiIL2ZCB3UXd+2Y4VE1e//T5erLh5RuwEmwU5hP2yfKumszn6AIMF0t2Rkdo59QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f247071a-e292-41c0-b906-72e8ec49e093","name":"release-f247071a-e292-41c0-b906-72e8ec49e093","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f9dfe89a-efbe-4efb-99d5-2dc8e2805814","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181030293246043324165973867370377997636889763828312116551528097461873111992565056657023186631606267925807909248524296916477867296276720081420469819109778848132396476720329531174768535118804149709244131623706357683771462728429900723390043889872137066086921361788185601366253451653984347299150973731961281476543963489462995211839745827929636639955625276290384112345455344661","osProfile":{"computerName":"jianyunt2"},"vmId":"5234179a-0998-4ef2-8280-7e18cbeaa7d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4V0DqyKmcoaDq+PnSbqNNyyOOijSkWpt8pzYVPVDmf/7cqVn5i++DBhhWQSKV0km+dsafBjiV7eAX+oRDBNeJ2F65Xpe83CW2Wld89v1FLJVMYaBATU6LPqk6y0GWbtlRjGSRl41BI31rBWH9+5n/oiLI0iRcovDcxyuRMqmD8xcdP38ppwq+7EnR1LyIbQryAAB6vm3/s985RWAMEeZdWrgjLDP7p8vl3aO8YE694XnYjue/VUyC3RUpRPQZuwtlWLg8LtGKpXTTTCDxOmbdTnCwa5KznTXNZKJGRkzA/wjwYx5ynpE4bR1DEEn/eOUmUtF7btwiff+mDmK5ncJwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9b2e2e67-5ddf-48f5-8dad-cbf4c465305f","name":"release-9b2e2e67-5ddf-48f5-8dad-cbf4c465305f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26cb66cb-ed6c-429e-90f1-e17eebc05e55","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41871063402198363209028601122044779691234822530917998637400193986997598632869835957396018672798187096418391458960035425907739248462373285378462822949040522827574660994349434114538896696399824557544104442857635475817255724512691625885897862349781239430433969904419014656175312813985306176320783024782333964367541055123331971206319622765202812935428224345383","osProfile":{"computerName":"jianyunt2"},"vmId":"8a1e02d2-d359-4c34-b48b-3370fc238178","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8bNPK64CWdFBk8dv3X0C61r7osJrEbJ1vQ2F3R+ufyg4h/4W3qcP7xjVZBySW6Y66u0m5WZXq7c/OnPE1wgumouzbyngB35EzxDiGS/+JJGuNPEXyOq8dPScrn+JcpZIGTQ3DW0tHbR/BRE13StjAtpY6kQ+jrEB0vFLxY/vbfTcI8r7+derlQE5cErCQZ5ZcTnLa8YHe9OL4FH1jbkaJzeDtdGzTu6Dkq/rQZRDmbAV4x2dDSUlhqwoHtBx1h5I8BesyTtPZzjQUDY4UfpRs2rVVkEqsjkDfjX7GsbwgGOlXtmkaK/nkN61mL5/HFh0WXe/3GHWQ4oe5RYWj0/klQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cdb17884-26b3-4101-a77e-4543ddc14d8f","name":"release-cdb17884-26b3-4101-a77e-4543ddc14d8f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a3cfe98c-afd3-445e-adc0-ee524e2d8336","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184580852680110744661494032907873101276717814956159580285852175243108710810841370954918665454419484326239450949196046978639685741658437334637153810556273434382143255819959720372541456181972157537540275843238267299064457064556021557882902343618589263602347869716927671914557745267031274108678735891619765540291731884644692212402293174752345254485594145395819382489408483722525343183530867557688298297890592908469766841","osProfile":{"computerName":"jianyunt2"},"vmId":"66f5bd30-e237-471c-ba92-e2e796095243","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtLfwuFRg9sI5HDw9bWHngUruVWyxhimjN92+3iePcRpeMXW2vY076pubKMpB98qcIdO9AKrhwLhZTl+v2fXrhan2QNQtX25biapLW62aiJ6Zm22WWudrUuMWciI+3xeFMiABUFQD+MnR1UDU0G35+kHMNQ7AAf9INTmJVObZgjKevTXaFaIs5K1qkOlyRP0s41Ngt5JACsIrrKTb8fhC2v+XT+tz/tntYzCSepcOeI5Xh/filDBGs3ll1ZRJ0iQa6HT9gJ7BrQSIZoaeNZ5Z+S40WAICmH+19POaWVpcYbjt23xyPBsH7a3HUSf5V7nPaD4szQ0NBO917+DHZMv7gQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-380ccee3-2b70-4416-a159-6f9b44674232","name":"release-380ccee3-2b70-4416-a159-6f9b44674232","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c3249f3c-ac1d-461f-b182-89a02e59599e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183607514694388537367179020648989760444999777590110122089333415757047767971377651957066254584316906878536575679615485903366137362395790947093565451087175202054812804102464915744780418690668206459214941462719684647852043753417272706435161398258235726099392289151201186077615391712425282796950148243189245617065728127399751820968391178693241792897371257208129877554","osProfile":{"computerName":"jianyunt2"},"vmId":"e6be4e92-4d5b-434f-9820-12fc9f39499f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyZZydUA9TgF9h3HP6KPoVplMlEtvFwwmyU2eqXMQalnxkx6JTdLOvLPUVfjX0s+jUHyAbEgwCLQWf62U7MDsS5BLqADXWQHYnru3ZgzyQsvsc6eheJ+To+64bGCE25AXHfCWBmt1BtnoHOOpuptxCrWSdtIC28UVJ7sfCh3CcXIWRiwyXEVcYVpx1YO7cePiUMWOq9857FDLK0ugmxcQDVzXErX97Jq30zlt1SdrniO06x6SLR3P7yeYOyqeTfAs9/E9wWO0JQF5nLPSUA3kkSwHFufSetAcx3sNHkF7HEUyF0mUSrwWM9WfEVOYKYd6plCd7j6UIido5wxqD/4X6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0bb03da9-afd8-40b6-9a9d-17fac5e041e5","name":"release-0bb03da9-afd8-40b6-9a9d-17fac5e041e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fa7b0d70-010c-4a4c-86ef-09cb45b93e62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418693080986566006130310456346107576392528372337264504786117533738816181176236661300056193656010154169988249017716347144140125615308542516951163129496265393170017923884959637137828746766159807714578847372912540990491754864686777868162726375136787431317651982299728115788457260871116105174544767290307263163181163741428167159309921314756295326064686740293141792209856947346215853756425558","osProfile":{"computerName":"jianyunt2"},"vmId":"2e2da1ae-1b85-4d7b-baf6-919b4760cb33","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr9o5CFa202XeWr6uWb4a1V1NufI1hIqiV9Tv5Fs82uABU5ySjVNGHdZKN2+1wJu5P/xT2inKLzGvodvHw+iU3ErpdVyCoGkStLzLyMwuZLOjoR5GMzIKylgfDi0Ks8UjJnOCo65OeOAASVEZTI4nXOOHFCNOxpDrWiTa9D5VvKu/fkYSK+QaNrzbdKzsPc2uqhqhXEvwPBbdBu9jh46l3lqs4lDT8wfEKhaqzwyOAzh18PbGSw3EpKoXb/aCGWoGuKXE5rCgDIvXxncEduhe4mGiDir61k0CL72I9nPr80BHw/eMlDxrIkZYMNq1Mc3wNlTHKPhANde+3+/2HQ6aRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c33db35d-93ab-46d0-823b-131fd0bc39a3","name":"release-c33db35d-93ab-46d0-823b-131fd0bc39a3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dee4f776-44bc-454d-a818-733969d713c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41885077758907545328870329059153249430843438817523642988072299506879169441899748720926591720959773241377422223963252665114255597098338396115342579007400144685664535918282221197478330928154961423870962713866946983826571362032096380889687541480145979140490686158811784005033298977327256326183903582569918159269739714264439825911228308974166230576788633238","osProfile":{"computerName":"jianyunt2"},"vmId":"438b90e5-5c21-481e-af33-88119ee67567","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm3LPT9E1rmstmGUQU6cQuOMyM/4Bo0h3bqEZlZGXZ7+LBPWuDdZDu95370kkjmXx2o/4+MOoP+sjIA7zgwAnpSFHP5ysGRT9CKXW7dI44UFGkuzeF0DRS27lj9Wr0I8savQ8fSNGGZu7QNYPSyuX1FffzwMQlgmkP/zi2NS045+yFX8b4SwEicQxqpW3s5GhLB1wmV8jEQgI/gA8xWUtB/JMc30nP2U2MG4e7Pxcnxz0FicuKf/Em4uL+veyeRA1sLE7Jzkf1YwDbx40HuD+mqND5Yylf4WnAXQCr4odrcb1vi+teifVx8FJhv0iV8IwqIVzrfbHVtiKGzE600qP+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac95462e-6ab4-491e-9f54-f88a48db00dc","name":"release-ac95462e-6ab4-491e-9f54-f88a48db00dc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1b58d582-c154-4d21-bff2-0f5c250fcb27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418123495829577305886731036845458653984687913625339707538935602726145096362554180686273107549823400408230532135750539559323378224843318734018675466529768906657786162132448940508013463413673139174995768560063629545199296705196655156590503932747990547196343477385458526618019857075142986032835843514756619191924363851544030506296936034174115972115738737492394199774534496894826380855573648945829878469991141464","osProfile":{"computerName":"jianyunt2"},"vmId":"f73ca534-7a23-4995-b755-38bfe37c62ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwwr9JlD9AZkm+X4WlOWJVYihBc4tx3iUCflHXxSbsm6YBSFildZtwlI5HtWhSXOPtZI0tWv8GVWEERDqhYFQ3BFLiBhHhIn9RvvX4owi3YulMZe34zrNAcyaWt3oYmizpmmZrv7R+nvCNH79JcoLh/iQV8H5CMTybU+/aN1BdI8McKoCHzZEt/bHOjoF2pnhJndLY9geWaK4ee9Xr44pP1SAxOyi8YZCT/9In6eNHiLIh/9ExUDOFxNBhd74Q4JNroJIzM6eh81ilrW8y1FhGFno0FiztK3nAr+vzrnlBcqWWPN8jnyi9iqHAy0RkHdFwxk7i9CQXNDbgIW3SceStQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3ab8ef1f-e209-4914-b9f2-c3522af00fcb","name":"release-3ab8ef1f-e209-4914-b9f2-c3522af00fcb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"86a478c5-2c62-4e95-9f36-fd4ec072046f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41890977557995520775738690873416487713193862543799366110981860761980895038924530008682345794034750329019060879011583712097399105495667992206402515021684256636735834345776166714279908668418916890416969049121617013724759751163989850259542697232215962299117599242136370863954412873779579804854676586332697506524293427702302729699976917457898624947931916963284459959935719129","osProfile":{"computerName":"jianyunt2"},"vmId":"e8d0978d-0f5f-477f-95b4-6f0b1e0b6463","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAujgpVC4yNLU3min+IM5XKu17SeSFEjd8V5jeG593UcJd6FE3By3c7e7nO2VlxkYep52ZwZ5qNmRW9Vli97pskco3uFx7zsA0yYviq7AbtnpiBvbRnxpn+GhC29KqKrjwk0WWnZfFNN5QdjFmwkcfRdKbhEL1Ma2WmMjynlHSOv5oZm5LMHzfWIRrx2wAVR87en2n7HoXekbbfP+TNaB8Rleb9HO8JxIF5KOa6cf0s5G/xWOwqlBlWTpBB2PndwjjRE/c0z7CB3tGjTCYRqRqyJ1+3xPu2OOH3U6TWUzJIlk/YkPF+lrTYelVP3e2ZmHuZTp41H2axxYwlgKmlQ3R9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-34d39076-9143-4626-a932-d8ab0641cf34","name":"release-34d39076-9143-4626-a932-d8ab0641cf34","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5cb8b7b7-37e5-4238-a272-c9ee485c8895","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187161008850464415896772685014435722736796809576528595394280240622089291329548494766254495634933924243477229791001474129801013593155502282830864742922067248536699051212139380639754689710345829135633698264194548318928137075773879548900757559791167873369507485299276855611785150291747190151598587749495879944535708096442454487209161391888899001895937244390536695476415757447399176347274730774091420086578228","osProfile":{"computerName":"jianyunt2"},"vmId":"13b40337-c4e3-4f3e-9a1c-2b0f7c0a23f3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoExEfX9PhvshXMyUOJoegcHLE4PqMBFNvozJmlduK2nXgQ2tUkCb7J/4QpSzx1Xw2sM7IhxP0CSXKRfFA7DHykK8eS7wcLqzJf55lh4UhKWBJ23rXiZyexvw6IXGVaCXtbJrcljL66h6QVkoNaAO0pzgxQf6hgyu1Hj4ckbsBgOdPGSB243o9CWgQFEJQ3m8YhZjayIp56Rg6fCPOVUSpseblrKzyLX1dGHdBlh1o6o/25z7v56uSYsTvmynorwtg15Y9Yp7/Mp1BfrYdeChqvx6l3OinbYq/1BKwRNbfeaEU8/M3spnfcCYQrW+fHErjMUnUf1nMST5eY5cjA44VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e50d8a8b-078d-42b1-8b36-0b1c76ec2142","name":"release-e50d8a8b-078d-42b1-8b36-0b1c76ec2142","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"be11ca97-9d5d-4a0e-bfde-0253109db988","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188734790427766003379493170546171426392532388712119613468650556645120545342249782816567559841492597306056224630886375627352318411228150231654596842678200283333848259577460716563515065004023759672844781044190276261209685956279454765349388056223216490049168871924432625261740119116996289644954829062573212839423299625192434928189895419483121112435784849180498351980","osProfile":{"computerName":"jianyunt2"},"vmId":"eb53b642-a522-4c60-a20e-33e68d9f64d9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuitjGjlgZV2x3k8iEDaLqVOfSn+IAaqo3uN4XpQX82wW2Tbe17jC1Mw+viCiVQ9RF+7GuemwkouBstc4F039M8HsxEIMZnWlzT1Uh7rpRBIIwk/SDvCamVWCBTXgkfVRFUqkKpfwUiytrwKKpWkwdjHJLrCRZkByyGmXIsMtp8hgp1j4KNwUa/gNvLe+Moo+s/ESuW8vgr1xmb7eEydXAinrQvFnom43RM/m1rqkwZbsYlcQUXktLXvnCiGxNFBX9cXnKgZJ0sEwHTAugRkaP8VykdLL+ZbMbePpEncAH7M1dfils7T2OT7A7YMIDi0uNb5cYCNMUU+OrczOqpq4EQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-566ba8ac-a1c6-4e73-b8c9-4e270eed63ad","name":"release-566ba8ac-a1c6-4e73-b8c9-4e270eed63ad","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f6d33d11-8726-414b-85ac-38310eeabf44","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41839716248565770220438491213390929095614885637934451765977283928829752925031412713820123276921615867391923099287373274527483649586979918366832549146159924443826829053441782970264346318336326898964862577015428325572072382236257661261980717267449788651473762996884443572319290621652440820773571905215876323009118932977467295698946438457822258129620372764203068558530853357","osProfile":{"computerName":"jianyunt2"},"vmId":"7f33c66d-b971-474d-b0c3-093c3466cd8e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyo7J3KYrVAo3SiGwthTfSZZFl0XOE2SgVyJuh7JwQa5TOh+mtif50mohAqVXefFSu+LKawREqQIx6NFTm1tHSDRVT8jpyW+RfvAoVBC6einy/DbYdNC9vHAD7sB5kG/+MaYLVUedRwj1OD7IzlYCJM4lmk75KK2/8q39F470XmBZRXCxQ4yQggQwbr6F2iZ55pbTy2hY1+ky/Ybl4OyltkcB+VUbI7LJ/Ms+d4C5NYjOnwVSlBgf/uzZibu2k2JK9UDOgh9yX5Awd6eJKxx1XJ9EzZR5Byd+2vGlw8Kv7OLPDx+t1VvdcST1WROrlRCA6x+nk3fu1QD2CfOYZ6GiTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1ff7744b-1359-4b9d-a543-25c51ef9b99d","name":"release-1ff7744b-1359-4b9d-a543-25c51ef9b99d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b972d0d8-6a3d-4efd-9d5d-b6a8704596ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186612381393182276542512178465874596482009936428418403337504511813999504874235927036114828913810820044659594359692196116823278650760708526872880472063466751023633478711411529709605712926595957363942898514275544124231623082597684466594121825219499420277092261489044144805419128188887266880039519849411938753975367935711496515275792814185462724256443702528790716774912976","osProfile":{"computerName":"jianyunt2"},"vmId":"dbbb6ac4-b0c8-452a-a217-7efb98474a67","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr8MA/d/N4WPl5vbPiJ5EmXuxXRCYJzwoE2IGOiaBNCe9/vkj8/CXZdcnWehoJ3lqqmzUg5gKRsRba8Om3M9JW8jLL2wqF4vceAsadyTY90azEN6gnhHpTTognM0TBHXDzjJKoM6CLOdcAdIQ+UfX2SIx5gYCCYoGWua50gg4n9Vx3QrIjqXoAzt/hQ83hrJTZUsObV8uVDIn4ATFgtViLfx1uIfT5CC3ReboS7M6lMsztMxaMDcJdUFuzcTkjmHiZgj/n9/g1aLeA+wgWLv5CbE5m2ztVc3GtKsuTS0Z94aZZGAbMHzYXS2/WOe7p8CO1p5Y6suxWPZzxXQr5Pv6/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0b8df84e-37b0-4818-97b9-852d4f5a901e","name":"release-0b8df84e-37b0-4818-97b9-852d4f5a901e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3916e4c2-f476-43e8-9c93-7ba6c4e39279","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418250565738286226325588608841517143381290625679552840629566897610968657449448330439686717784599176979482624495659849901532278579040270325397681746264348619945145978214181196461733272747489188067312540824140446700916493234404739076289931749331782258843526507553983544303137606924141389157700115564589208772651732546362684033749316819125059890132756088976773292970046678183021031211697627392809060547079603971283993673573922697672048802080099273408457291896","osProfile":{"computerName":"jianyunt2"},"vmId":"a83e27d4-90f3-4af2-a93d-95b2c0479347","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqdKWtF7VR8Mnt20X/jRO0Ts0HJy0ARa8p+fGAfYYrqJoSUA2qCV0AQepJ2FuOFddXwmQRncWif0jgh+jqbcH+4PSdRHdWLFm6Z9sYIA31Eok/oSMGLqDkEpF6rPIJbEz2FzqQwUzRBeaPU+gp3JsTeH70941Lb7nnK1KynUvN7EoGkoWE6uCo5AGRpv6Hoio779X/zbf/FKBk1z+/YMKZCYhB9S27FWMrkCTIepka8NGr6+XEjl7nFa75+nYAkFy+mcoUSvTqXXdZ99vyH36+rfNNXM5aRxiig1kSOK4rZHcM15Stz9wuf6l7BK2kEdV/+VF+kHywhEK/S0LPlO+NwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8fd19be9-eb28-4113-b7e3-f0962e296cda","name":"release-8fd19be9-eb28-4113-b7e3-f0962e296cda","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b3ff5d0d-312c-4a39-80dd-f33d95acd7ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418797798748913686917075853190626766401173432752377297688134047107526823535770351572286557304565091965377283070134997293552468713721240693948831165452526333871516208676088615159989482401185018763843972272245804747417226206569363871010539139173369719265906564601520542933158140545052001136365687302192565116638420585094253061143438361039775997671113980418284682818865551637780968601485108985183782383769019988507","osProfile":{"computerName":"jianyunt2"},"vmId":"5a52711d-616b-48bd-a41f-82327ccc9b2d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0goXeftacBmKQTSshl96AkuhcBpd0cj6eYVlt6oi2JtX0S4Aw+iHuDeaqhvU1lAqmV8rfHV356vbXM+1QsHjEQ0LTz85oa+UK2Ey5uCiEhm0A5gVoavNgdrZXDA5AdSdHEuiE0xpu9cj8AErG9OUF/J9CNELU4aZj4darim9PDjL3dT8rPYvf7gEGEskmqmLNAQOkWb9anvoCnaGa5m5UUBMP6VNRKgT8tMnu6HM5F4N8eQBl6J6/C6g+rX+bbXT17OmvgLWRKOsT++4kCQBlqSBPnf3x4VdTUobZDOfMxxxc+W/54DrDUoR6iMQiAunwzRSSGxdjzBfLPsINx30gQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5512cc01-5347-445b-bbf7-cfdd77bd18d8","name":"release-5512cc01-5347-445b-bbf7-cfdd77bd18d8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6edff86d-7844-4a94-9bdc-e29ae1a62a4c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182443473786486753247380515616387537631977635129025763033180188829103774581815079856763769083876125775350807916508257331304533959432888379392427157842719582845156104215456414034641888342288417286638506869647018370922848385573426379795643932018690515768435651262367896630806778162483452972574080658091164695927946014577680388740534131520894714699840834457527166508092801213779561309952982281207571","osProfile":{"computerName":"jianyunt2"},"vmId":"f3a6bdff-de35-48e8-9f75-c36a8d59b942","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu4/afLH2Gj8LJGF7De9TTurT/xf+tTrHNG2xJDImPnNg0LicHWFZkXDVVbkM3+BvhEfvNzTigRtQjJ2XkuQbZwMl/gJR/9ff+VCuGpVoBrUln4iAcPC+YGzsjTapHwZCLcQPWx3ovlKrHzzW9Zzq9hHaK6d2njzwNIV+w4Q6cG3hp1eSSSdyfVQ5jR30LfYH/FKYDAMrz659gDNBJQqiYyzr/hqA7qgQcWT0KyPEtbjXd+6gcrs1Qu9XgUlBiKpQbWVc51xloz35sMRqGhBTAff6PkPnS4R2b41roJE6OlY59CrMS2gkIeronnB9/YvAlWrNCqdn+bddt2FebcClVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-224e64f1-cbe8-4240-8a74-a562788fcddc","name":"release-224e64f1-cbe8-4240-8a74-a562788fcddc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fc9b17df-b8dd-4e6a-a6b6-c16f8f73407e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418925491474470535752397759954992617063684817801372283693742154688158418174841555119179016782266947578375726604103967206237320582930528124734569446687999553972303123516875547517030843766057801662245392032959143686336481449141526657154836639994187455480612318828564236916649437894302797710908129162504522533697943545271899176018982537487273182535889395366135216474277464390637178355913","osProfile":{"computerName":"jianyunt2"},"vmId":"dbe3fcc0-40a6-4a86-a0bf-9ef398b9b505","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvwsxX3xUfVO8WiosexWky1CBHVYT//Y+kQiRd3jE5izQy36zR6DUOfqC3mcQu+XwcfuxyyILo8Xax4LgyY8byYAKEa/IryBDvILB8gmIGZ/jCnhHqyrbo7qAwa6tBH7bbYGim9uSlpYVDsOmO+cFPWQd937S3z+RCLIod7kI0k7XWTu2SLZaYV/vv9bSrYB+j+5a+PlQ7/1Gr3jdwOXXeYAknq4HJYdFYZqgINaZ6TbamQWwLis+L6uOoJvjCNB/ehEw9v/DtOTebQ3QxVn6T5uqsNxTb2SGWoxtWrzZZnI50xVHZdqW6ne/ccmLcxouT+nbtANPXLpW8FpLt7AyYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-35d20fbb-086b-4d43-8fb6-98ab10b8b138","name":"release-35d20fbb-086b-4d43-8fb6-98ab10b8b138","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4fa6926c-c970-4ea6-9d9c-463961328810","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41856876943523016863208698366878011792545792351317487703215633796285547917211622065775633181129766495992067835829373813613542519736563367479495719348891717295557618132368454991990713434226596255554086966619481699871928918949382152287159933624994602805413674804143413943825997460803261519203750292542227853428496526174809607771256081627610597967291342","osProfile":{"computerName":"jianyunt2"},"vmId":"f8515522-844b-4b7e-8a0e-f424029f9a23","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2MdaI2ND4qEznioPTWcODzGjP1oiGswMPSOzQv9W1iqe3rSTRtCzCpCwSyJng7jwvfwjYWW0AvAvY/A9D9syEq+ORa7XWANP+4QaEb80kUVlmqb20Bsa7qN4yYiwOtNReEosZGaSPWYYvm8R9SXvP5MzISMj6zjKA3t4UvAb3AGOcoarD55HyiwUrWC6Xj4i25Wn4RhS05odJ3i/BdxU4pPpZJOVguK0NKl18yFuaCZJx1LT40darNbPrO6L40P+ZhbZVJi2gQZdZFGj0RyTNH7R5OVr9sN5erNu56S7O2PzFJNPWP6RSavdGpXMRbQiSRGAp6LZiT6ioFHzSKoHXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-38ba63ca-766b-4185-86c4-331583dc74a8","name":"release-38ba63ca-766b-4185-86c4-331583dc74a8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f216bb21-a67f-4c26-a03e-f8172bf5c5da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41877389353258259569432462226829956720394369487275283268551940395855366764093478303961527333736998897286931345849083552534249679185963898854787403958259236118918429754749985156848076985177946603185015806853936459784125437971594004692162839155739792443017472565714887405024772314737683966485452199701141464419143077349708320437096280279141489117146754489476501165231576051246099455549520251662600","osProfile":{"computerName":"jianyunt2"},"vmId":"4b177e62-9f70-4be0-acd1-e70669469fc4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuBDkOZTc7lTUurjfSx8rO7X3VTAvmCWub4ySXD7FlWnIavdCUMYf/xuaicNTrRNvxiSwtzvcQzhcc+kKRgZmLeFz1IFkuIz5vjQQE1Cu0RqQ/80AqGQZAoOBqCSYrtc8YqvLkaGQYtS3O3U9eNt9jpjr0FpYTxULcVTJ1EFOOxglrsLEi7LbycfkBslF+Ypwh1D9WNpixlOktQQKYhWAb5CKAKPlbBpv+Mkf2Fo6cZGxcPhvD9Qo8nG3L/0bbF99PE3M0a8M1JVk92d8+nJ+6Z4vWNbG+4OQr0//isDD6qOwAabnxPh0tlvy8lgevGkofwiLZYXgxaR7IGpxuWVtHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-60fd4fdd-1252-4e99-becd-86b234df5c33","name":"release-60fd4fdd-1252-4e99-becd-86b234df5c33","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c34d16cb-4b57-45e4-b3b5-c1ca541b3a56","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41839966087263479139570724639709183681571476617131083927438472894661643866316924794360744438776627212919260111886826431559486488394361047472828595136533625572906229093770587485158555689223991547625780580311482309549041835310987674538764651745625550590210462120210999777259550027809891298091909527727075375742600059641454748245938254847670166231579851983127587144654394260270909277","osProfile":{"computerName":"jianyunt2"},"vmId":"3a071d86-6cc1-45bc-a10d-ae577f8a6a30","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvvJGrYysgoOHnQg6bnJjKYHxyCFNvOlfklma667VQYkRDD7710bhYm4tKpFp/ubZDU+tACSZx0UfvSdBN8AS6c7ETiRxMz9r9ClfR8lkfNlpepXDFG72OjNXI4e6i/dGonSgtiBdcUGNDS7D7Wz0ghEjggCNGI/atAOENg9wucz2bcqI6ki3x9FWMWTH+fHYUtArUKlVvLsKJrkjHn/KMl2gY7fnb7h4nRNrFRp4or7RCyE/Od+eQgfeHWJN9I3XI3Gp44MAr0HoZj3NAS+IHuAuaFi7InnEr1kKQQDnqoH/xrZlKMMjqXUdC5r4yInvHZmBhy4kF5L6RVSJDw0pEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-35d0d009-15dd-498e-b1a3-24e8007901dc","name":"release-35d0d009-15dd-498e-b1a3-24e8007901dc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"df26e4e6-c533-4a4e-b3d8-c7cf939eeec7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41831512632122450026478532691723488366882291119575582828732014923837432809467353801590777264638842838101745081672737367781552817889118811057752135249905910880653497953766753913354851140088704860079432142627614161182784123067176629781939063574919131061044251653666863691478211568214276817278391776280078907294855126642936345588401597430233972082507034353241879237235314842","osProfile":{"computerName":"jianyunt2"},"vmId":"498b3ca5-064b-4a1d-b827-0ade2d95a6ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0KSvruiTi6XZ/osTjgWaiz50EQL5cbomnNVpycD8jtwhiUdB/FN8S/jvvyTxvyPCMdCSkjt2Z8rUrsvn2wy2aLfDZXPTjyAIccPsB0pdxV3SRMVxqub3Z2dEV7o/9QHBlkk12OtJuv25IxwPO5uLAbUFv7Bkx/S+uGyEbMPrSBs6319WvSP+NKMXEta0zvLRL9RfSAH05Iq0DV7qOo938iQiTFdCuTAsvmDcGSvdJ6ikdi2EHlVPdgG9HDoctayCs0fqbuj6+asGEq000eJMpUE1DG6M4s4+nLu4rmhCT4eFTTXpiDxXLmW7Aeq/7/cT4/k9jTwidbDJ6ycIKey4iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c140c595-6884-4d71-b6bd-17f0dcc47528","name":"release-c140c595-6884-4d71-b6bd-17f0dcc47528","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"52e66261-72fe-4f8c-86ff-c8946b41e26d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186649241849894536577392287975191296412068499308691653034588985661088307368786909579067497650770922495171594006996911586681399291888246685739423749555770886293475163232111338567647443259835028352598787676795947609605681596544436877260263252881658887909597166444789092545816476589456987990020268936780726435809470826459381725123936474167457794670426048579577207315254944546791891","osProfile":{"computerName":"jianyunt2"},"vmId":"994ca5cf-792c-435d-b1dd-f22bfa5d1447","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwavekBla+sHIXm6AP1KnD7198stTa6N8Bi9pp1br/BmnsASPgcWGHKVkKKXRkc9PBexCt79FKzgVcPtyW9AIXoVOVs1w7/rwz93my25T4oJAwK3Tat3TgTGc7a5TiAA3kgk6mkNjIpnwWmGgJL7lHvvIjr4/O+pLSPxrjR6gUKrSacKZXFLuLY2ODrLKREFvGjIN2VD6WN/Vy71mtTl1SmVg1cExGvDBKoucnwRHcHHUzHuPaBZf1OB6FrmE9Z/J6XPO8o1d/7nKPM0/kGK2sfumQrvQK5BERdq8lYlaGl+66IiEAd1/vqicnnFvU3pLrTLuBoR3oyxJpuTAOARcPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dde614de-75b8-461a-9cd0-4f174d753161","name":"release-dde614de-75b8-461a-9cd0-4f174d753161","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e161c3ae-23af-408b-8df1-110e714d7b7e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181975508690981276148633433158652428814701126856324597622361446715891342869642723656878785601971116282119397425246796137105198376538475791143653038757612062700604562144719092105742949789438963194078544481954745186939138784886850037303647381157179309330149921250432072746961568632413363395990431232420232889275629559138983809669171761465618243642202","osProfile":{"computerName":"jianyunt2"},"vmId":"34dfb26f-5cd2-4d85-be55-70c7b1712a14","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Hw/oYUdAxkHcBmEeDmU4rOdlluyhQwna9RbxFf4MgliQyRYw1qQuS6jNGNSMw3pND1rPQNMnnMv2mOet09QFCHad0rDVqwxIF3mdISbFEdOM2Wgg42VoI2DanIvJwxIpeHWpr+RlEF/8WfI7YZc/NDl3HatO576RMJfqQQLAe7nWTXjWMxgEEKi7I3Wtw9Z97YD8ngKwdh54kCYB0fpI/Q4fTTCH4wW574GUa6qr/ml1wSM6mxz74pmVCunx1GmS+YQxq1hiJBNYy3gSN8lamYMmer3T0NC4C3wYym+zQRMKmIrEqv4pXbjJYz99MQl/5DpDO9iv+F4Tedz0DkbqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d6edce4f-cbb2-456c-990b-c8d7e866661c","name":"release-d6edce4f-cbb2-456c-990b-c8d7e866661c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2aa58e85-80c0-4de1-97a2-b369c4738772","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418995862375604534372423003508919722128360579507339755933649682653388235021938751602424312907453673659122905979957140371476861889215443293231806192327478991542759101293126343816837150933677411173327787115910313674777505683048659975731325291731726695450671765125481437982678444726120448716612433476053552193238745562121","osProfile":{"computerName":"jianyunt2"},"vmId":"05189d8f-6deb-4809-a4d1-3e17329438e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4XIdLGy4qOuOyv5Kr7YkfDJXQSZtjxASrFzP68P/VZ65k+Rjjp+h4/TZRvxW77POkoZ+riQmZSsb527Z2UdTLyzWkJ1TtZmAYeEy2t2oZW+XNcjyiG2S57VUOvb+PS8xMQsKiqNpzuRq34rR4BOde2gxlReRaHBcjv+h/Qk8+LLcGYEtXflQZO5QqBofnfPnQWOhJiIHuajta+jvKO9N6P1wkW8xvmEAsoQAfSqHyYGJ9t+I4pYoCgziiKZZfQMMX90IS0F8fy4jnokuTZ4XCtu08wJFtY+jwRVrqJ6htEnBRS6dvERiOFSHYMUvAx8tauphG90DOcSuYUvVdd6dsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6aa62639-9d0a-44b1-8db5-092de253f9e9","name":"release-6aa62639-9d0a-44b1-8db5-092de253f9e9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"71328e2d-a6c4-4ac8-9f8d-bec3b29fa9ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188028422986993816681454186195273831293891481512129519300234364074922391072481863159017679851054331867364992329047705120504792624815825816055142677521861599896253621853310387980866071759444261714696335450921957900980582539227568292858881340785689798792967042774144206039419929609038275978724333483604546833928957165525434900861854886342878667597218047988718438453089688749888416096905986402249233930656199475635046024047627090172915863717332729993633779064220","osProfile":{"computerName":"jianyunt2"},"vmId":"5f459251-9f48-4213-92c2-f55a77caa39b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyE/O//Hq3r7Z5EqsPnUoY7UaN+HW3npqwdjquhBX1gB66gO3pFwsqoxZWDb8BS9/gKMfekKLufu1nS44smBlagO4NQqkzKnOAQg0GGkOIZFV6tz7KdUsTEg3MjrZbswxy0xAMo431fEpOFHX0hBJWI9luTo6wsfKB/UmDDmmx9cF5YVzjcFEJo7mTUrxqOqQbJXcBHYtHfk40UYU0b3k7GQDAXZZAKM404Z45ESoV+g/XHgSkbPyNqnjJ8M5wTvxkAKNb307tQi06pnZM9lDhfwX6M28edpKjjiW0LntglTvn3o503H2GFKLV0GhNui2VN5WP4GyI1K0Nvu1p5KzMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-47c39a01-c40f-4ec8-85ef-501910861882","name":"release-47c39a01-c40f-4ec8-85ef-501910861882","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"22823a02-6f8a-408b-b4ca-a4c4c787f844","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819912749847076263162881047484948478946554999531551523337848138907522493595540870831623586786251561734550824150591476990051122784681427442314786069482063677304973518578259041454174970672233335788024165908570336557367153926122486826241372791154631719504366167246233909648562881368369360575281246239582281016466106461648531865329792672352698822503217823345168472893484989255772876894632788878388933245768465231833034061112288","osProfile":{"computerName":"jianyunt2"},"vmId":"15361ed6-b1e3-43cd-9bb6-2e8a6f983b31","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsTCQZAWOi4U8tFBHRAXwn1cnIe4ysYj015DUySp+aKWAbYK0DEIUt8PK95mGc80PLb4EPiVfwLHTc+lNV5cA/FR1mdCaLu6OQSycnQUXZ98xcM4iWHgSd1cGGFhuttydPU0pvwyazx8HhjbAZiTj4JMv8+uPnbvt8VyqcfvIVkrxQGFPLbAQMnVkYZGu9IbM87C/HQ8qkXlKNP0aSCX1R2YjOK2y7E1vW71BbQyaf/SfLzL3Gu22X48Ne2Tw3Cif1Fg63Q+bbIYJiPT3IvQ9TwYsYjnOEcnMR7co/0sDWsdlstBLC7az69Ci+wJA7fIkM59q1/LAjn+QUMOSQ0pgmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-944cce49-ceb4-4c86-8dfc-057a794fe290","name":"release-944cce49-ceb4-4c86-8dfc-057a794fe290","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"397f62c0-ae1f-4bf9-a09d-62d01575b6a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41833333599984137202003940514206378650421044380658391294354657439023828511868424444741884449577283317385018427353144592189531992521689710537809598365782777887583611717896613974149599439880347307912514035835948610927164434164201363218916147816946136475331317615044701113083051363735443530583459900174977122530088893657198338991272781748543027111203738773606618198161091202168764699234389833996445311322576201","osProfile":{"computerName":"jianyunt2"},"vmId":"a8a14467-57a8-499f-8bbc-af63b5e88edb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArt6Rq31zFpUXOP0SYsor9aT3BvsLOQc3qi16gnlFdR6mvBaYhvMqkroF9tNBlNybdtGn2AfV7R/xmj+Yhdhh7KIUucxN+gvu1OFuwP30tGVAMw8M+6r2tYcIpHdj+fl85W4IniMOx76bPaHbAnH9aHysIhBNEqnSeQqL68bwxBEAFjOXkjppU1U5XU7BzPRroFrDaChmKdwH6yomaIEgSibS4ytbGgSl7gKDHsQkRed+YbERkGgXh98h9YebNFD2Ru0tV5M4IwrcawscO5k/Dz12n+djKzOTHIQK1+d4jxr+8FiIA7hf6uWOELINu6140gDxXz8jnNVQ3UmZ3EiYHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e0f57c8f-564b-4888-9905-27d4c242a407","name":"release-e0f57c8f-564b-4888-9905-27d4c242a407","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b960e50e-d9cc-462a-98f9-8798c66c2f18","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41822616464736956345848430995295197937954327405903226483770708322960285979814176310299842988485712802853428194723541715781799893996933409948532804694563077889231403284689007367465452561488120802196387573322668873031493225383980101677710848815517624654262878345047766727330960455445998186436873407418211930356142274590273346953935837924358200496242409652325","osProfile":{"computerName":"jianyunt2"},"vmId":"173c2976-35a1-4292-b257-3b2722bcbe8d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwQNyuIuW64IXTHmIQCIy+/AX3t5s8TSaRMEJTzJ5VyIXjiarTdoURDr5uaByyDzLeli4OSUXEIu1XSgFbS7O7p8AwqTAak1S3mOKfvlembMkjhCFp7dMjHiOFEczBCUftU7Wd7z6PP9mCgqQqNabRkavswDyYnawIjefYGQUOkAcD6Vebd1cFW+sxFBrZ0+HxmmlvISc9baAWqLsfoVZS8VVKa9ZMbQ52HiXZ7xmMn4JB7TzM3P3hpyL+Sag4w6N7MuxlmXGBcSSz0VJ66Css97Aa1mmc0rwYtQKaOOQHUmNEtzuscd4E+O4DlrzT0KW5FXz5M8D9zbSoKYjXq813QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7714efe3-cdf8-42ca-956e-86c7880cc8fb","name":"release-7714efe3-cdf8-42ca-956e-86c7880cc8fb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7f6108a5-3b50-4453-80fe-0e1251c81cd9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418130252865512460873422762520259007579670813688342165697569745365945456170548899690072233217479591596031684717033784792533547118198243075119920714723766645459071589122199350635838660937250748279307223532358711983743121633316394656903783145422323142706909135480622787130831997757296749797471518397919688932189025381517934347554426846239318346915831421538441690774887522452896660212274911376374","osProfile":{"computerName":"jianyunt2"},"vmId":"8c27a975-ed51-4a63-b9e3-612e44db1ed7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp72hxhtD2xm/zG5eD5X6uZt4nDX7J2AfPAUDWDOJNOCXCXsDKqR10p/UB+Ku5rv/n42cW5Ysj/sulEVNiYinj6hJ84K4n+JeR3ZrpzBWCJmZtUGa2klZqwQBT7yxdrSfriUCfL4FLLMK9dufi2TwQieXGmfKQq5rpY6c851UkWVrCcb1LGHRq/OkhyVzY/nGdnJgCdLWMIha1h3lw+hx4giw+Ar2vmsjTX8mlxpTS85nwTc94SJgIB93L5a0HSfKOO6BvHrpZtBl3WmEMbolm1lZMAv7OzDAaQTik22ymEMefT9I0Nhaq6LJyeLx2qL/1efNp6WKLrXQC+uwmstMGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e95b798b-d524-45d1-8a33-6105448c4afe","name":"release-e95b798b-d524-45d1-8a33-6105448c4afe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"684a4a38-83d7-4b9f-a135-9026b71fe4b0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41854649013309883223304397482293569122916898553253405461464318610199679656094195504529947396903620865236272546963375967273741722635677338697117087713591143076557130194872433598571796815354444330769056973825253868717912797879577977040785726193930949989334176813404041202515889409848762237180816670877031538448326234972932418261641394327933756994269768423157402772514513935257894677078408696803917","osProfile":{"computerName":"jianyunt2"},"vmId":"dd6108c9-b81a-4ef1-a03b-6d26d0c7cd17","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsBJWNPrgj0X/MBeOjsCkMUMDiv3U+2orvMpmCjnN/ReDK8uixlG8c/ae/DEQeB9yn+NicevnUfEqIgCGAPIIbpsJGDq642t/qdKFYqtIZhx//tEDcdX6QlAA64F58SWqS5sKvypu82n6FtUnqZ068wjK0/1j90WrpJCK7d52SNBCV1+cwESfqcX1BOxiJ2nVtqKl8uUrFhRdSiD6oYCc3r0dmMgyR7lmEcbCtloi8fUIgACCcJET4eOGzlpOQOElBDOTiZ0ebLhdRVjLoKP5seuD4t/gH0rbZUE5uxWq1Hlajky8PJe1ULtx9YOUAGNycUADG8QBpFleEhbQAiNMnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bfebc8df-1b1d-4235-ba40-d53a09994ccd","name":"release-bfebc8df-1b1d-4235-ba40-d53a09994ccd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1ef8c253-fb2a-4753-86ab-95a145e084c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41830026880817248296749754159487495705656658927354125553081429666310606705746129206355447222482647611814509212831163671249810237693039364795865431881798369459463796589324343200099271248380644461601765911417289406127763352215939520812393419491786299335928928443557699211975704936881030995846546333583570467450067483610933090293666938079762150953055860762193015860184148944214914463457969227738002781151434223871","osProfile":{"computerName":"jianyunt2"},"vmId":"3821378f-9ffb-4502-bc38-07f26e3c2b53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvmHCj4RWvEHc1X2xO55YEp0nfP4fkzcyFlerNiYgYhOqDAaTAS9D/jaRdAjYlCKXiVRv2HFf886eUng3kqodK+zXEKnaXbi/KaSCtuWYsYfOmJpBYZ7ncwg00/hKW5qkOqTYSFixWLLABThNqquSZ5DHCH8490gQqHYrx6e8DfJyWxpnx3tENs7qo31Al++GIuRZCxSZIEfEYGRry5bY+PDVGZd5/sWbfY5iw7YC9IsN24qTQC6bRbDtYKBDaaQSMv6cf+8+34FoLuDljrlAGyYm07kKi0rsi2XgFFe8Gylzv4SIVMcZPpRE+rU2Zg3bFNIZ3loiuLhJymFs7rSfaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dd7f41d2-fd92-4df9-b473-e54f9b7b74f8","name":"release-dd7f41d2-fd92-4df9-b473-e54f9b7b74f8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0a619205-86f8-413a-8413-cd5233314069","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189160424183159754125660151079742149247509440576759512990321598617761496086891547847888296793283168667187261770133320141681548146766057187569791587245368594618719991279863267720017903916736373737114269838207154449728507784316568226912285926845260752423409368444482879255389167285807560445723133737442744233785333338424213416446237463881123372365276832521717862790002434950037438082355659183267567834421847","osProfile":{"computerName":"jianyunt2"},"vmId":"ee50e80e-4adb-4657-80de-7ce8e2f9188b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu9rw2+aQhbMBSNEfWJz4AZJhoZSLWGNbUy2o9uPqWJgCco+KWtPOpkw8WSi9rtcnTC6tL6PMyQKN9MSfQ4qgPxlca1unsihRda3cvSrTQCMIy7iWPpWUGNuMvmTC+0lY1dZhUsM/N7GgDjug44X5kxf3dHe5ypwXc2rH0zAR1cAr+OGIn1b/VS13sMe2XxBl3yqlxvpw16jjdwXN3DluaxWAr3FRkLuxZtsrwls8wMeAJClOkedBiUo086JR65eIDhef8idjW2Qdk3wrUv5HnMbA7EzGObWeFHReiSpKCX+Sllk0uLjqxi4kILzFAbJoBbGmsuwo9UH+f/YUm4c6FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-39329ab7-f03e-40a3-97c6-d2d95606390d","name":"release-39329ab7-f03e-40a3-97c6-d2d95606390d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cab645ea-44fc-4e6f-84bc-1d9ee9ed3bd1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418244964089727221847256686721322571145636936429533907913049205529340484625303317717290788848367555336667527513611226559409235874137615302136112562938141479573616260617211849995173813872616499154250323555607902628017594881758911442961379483519432379488427843911646382087725431231817910225908791551696001959517594118371854212961396202291419207548047974855718850740634021622","osProfile":{"computerName":"jianyunt2"},"vmId":"0de78ce4-bc3b-4042-92d9-44a472bbd198","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoRaaiwDpwJhwBdxVzUACd4zO94EiPGb4exCmvLqj4ChCt3rdY5NMjbrFp/xUp2UXvRIIJdIOc9hyTfOQIpG1RDPu0NiFRDJtlbDcjS/zkha2A2TDXoY41C1bEWq6VTfSmkJwpU+27r8fQv2AY4taVLTu3M4yS0RuWKn1S7BUvNmpRXpZ6LoCpTJadxktJqFjK8Z2Zz70anD3y9KsJcHTEuNg8Uq/Wnkv5ldsXtocs+xlxyq5t1MvrYkZT0Z6Q2elDOIudzp19BqLXj/o39KI8iqXWTwjfT1LgfAOjc6xhg4xZ3BNr54URMLyHK8iJTds04oZ+XRS3TcP8abf1ppdrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-269326bd-6eac-43f1-bed2-130d46fc5aaf","name":"release-269326bd-6eac-43f1-bed2-130d46fc5aaf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7cf1a4a2-7592-4809-b5d6-84d64acfdd97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183265433392239625552068343796983692986480488027423969758104165579064310843350843209646275652898073905282879047306515440522903665197855118330593472035245610445120703594014978575652739768777489468368128147845216339955527597413615074026858288222569871797782372429587617931116916756202702143992531730662430131006292866025674492446456578299","osProfile":{"computerName":"jianyunt2"},"vmId":"11bc0784-a827-4adb-ad51-8f397567d2a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1hOwSGUG1FvEH5RHQhPxwIexiLxntGCFnDAkRWEwwl4OVcxuA6Yov/pbaXpHWzg8Z9aCv7xKA1cNxs/zE4HjF1OiMlpGWvApHun6FTpGaJ34QZQqgzRPW34Frg4KdtxZxlBdQvPr/LoVmXQuh3DBAIV2MZfj+knS5RG0LXgTLiZXkYNA5MOQ0fOoMQWDHDXZdRraU36PH3X0J00jMF498Kli5k8LhR/CQfLYzm+0XQ3nfXvJTD6/jUnVScYCQvcIcqP3uS61j9k8kT80cnukhNj3qzK+kivWYc/B5kQvK099+tYh9olQ5+Q74K2G9bJPGW/goYw9782J3RUPQC2+owIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-37175de1-8ec0-4836-8ea3-1bdc9cae106d","name":"release-37175de1-8ec0-4836-8ea3-1bdc9cae106d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bb7e3713-8e07-4949-8b5f-b27d6cd5f2b0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41877533744153173825880990369002943462339269534126647690362502130286890404354839497943557470114412200662542339153609111364316293246641919486950169740177719264961654325654379859580194760025993440553814212373350721316930468251151882399372914214128313526576385368108752276220194028988934131511281272450556991788834149678585025501065803414542739927","osProfile":{"computerName":"jianyunt2"},"vmId":"872e062f-9433-41e8-a0f5-79787cda9f28","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoldC1FH/mRgH22ykffIls+ZEJ4gqbP9R+PIeo5cNwF1YHHjegJnnXUicxgMmKTwu9X/iyqxTpuCEyXLDCG8QFjoh4AkRnih69rB/z7gowb82sDQNE3WtB/EPRYvUqYRY50qQCVV4n7U0wavnRULnNHfm1yysHGeOQKJdkRUpwZ1UwNKi0vgsU7yS6hiTfFyPyG1QqqZvk5tL6+fLbeJqWvhUow534+6DoxxJe590hrYtvm3IPEtn/5QpAJkRouy9CdLut/sHGfPoshUf/kmq34OwlvJzf5kzHH+912Exrj1kUpZ3fuQ6ESWquR7biQ7DDjkBCGPSjqP3e++x2q1p6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-56105573-0bc0-4312-b9b1-1900b70e19f9","name":"release-56105573-0bc0-4312-b9b1-1900b70e19f9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2d514b1c-bffc-4c14-ab59-92daa5b0834d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418710536003261391588106663917716253870568596993233348352931265905933679024373202586553968099816708465651919612685111963909754628088842093665316251787572399566786599625629479266361949853191988669195330541261290445515063682958655476175554194110844803846552966886467128190737482127591543429211092608719368392272852944589163746927118278677098501594452458733824447336977659270015827593331390882464262283129569591884","osProfile":{"computerName":"jianyunt2"},"vmId":"fe4d35b0-4158-45a0-ae95-206b36c702b2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzi51IIYjOjBoBTGk9Q8n2YaaMWT02ezuaHGZe2vD8e98QPZrMC8S+bBdnxoJnhFt3cS1amrV0wkYi0AukWMv3lGYKR67jrU+OAab16PUPog1Z6E40VtFqRY50DfC86vWNNiaN+RIgstB3EO3Ecgiaw3tJWA0Kiue+hyGRF3QsRyFcDksE6AGbgVGednTCIGsnVbWcKmOKOwk/2MZ6WSWMclRH/RC2wI+nI/uhNK1OZKg2yM1ySs9uDIYZQ2UYiDElOSlSigcDqMvJ1h6yDpVow8ZI0FNyvxY0MKQO1F9ZIjNjv/DA5P1b1+O+9qfEBEB1vQeXrqIiLtNyfODaFDbnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-43ef8846-3d5c-4ba7-b670-5801c6ef7be4","name":"release-43ef8846-3d5c-4ba7-b670-5801c6ef7be4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"79b05e25-e534-4485-bc06-26a903f65cc5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183469223757963010348571882737654472219504585513137762995133670759862757990763553715332538348696399232787994582147961936912189688442139900724649555533604391475904744397488840747521479470585101371400966377994448114526254316319867046654314019294526701997783953766682830187","osProfile":{"computerName":"jianyunt2"},"vmId":"0a708d89-d905-48ea-8ac5-1a73d88148ca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvyLOUitj23oTcQVr9OnGX+EVh5uKLQPhs5bIjmo6EetZ+V20Lnr9AJmArlfO+sMuP0C5OQbiOx+e+aim2cL2gnkz5DucxyGT/liEhfZBU7I/vbwnPCLUZUdRDTKqzwT9pg+FzFfbRtlNJEXzDvz+ea6/Bqz0tSo2dhzY+ASxaAySZgopHSLtYGueJ5Ut7ZxGVX02UewcVZTAmgOy5DCUiwF5n6Y5OUIXh4uT8O/WXV6fTLfuxGRq96AR1bGXw1+oRGT5GjuSjNZBN7X4psUrx/dtlVAZOASZYY6sSIsu30wJTTw2kHxNLRXeD2oOzTAZV4vGroOKI1uk7HInnGvpswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d34f4421-c53e-4d8f-b3f5-dda5974e5016","name":"release-d34f4421-c53e-4d8f-b3f5-dda5974e5016","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"662f4b4d-10f3-4a42-b759-24b47c195077","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41848657731314811424486320512832630717412670166003871515323784866808076483226815652106593699370880066722458809880178084995850614607911302089509550980048452614595946850664658619676877927516321692189527108324344652899735512291909439539304238096891193711619333405257338898926923152451104498601321532761815772163953038374065104514653022132308","osProfile":{"computerName":"jianyunt2"},"vmId":"9fbfb99e-d608-4d78-9dee-76b4feedb66c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyys5gHFg0UkgtCuj3kENgdx3mVZEU/kwlgVuPWpz+4p+sbpZz2S9FRcIK6KTZasL07PBNv9i9zLEtBNmZwFQn8sFoQyenfbNT2P7p24/QJlamXw/RE9jQl9dg1cjTZNu/VaDewshWthcZBwjz54ZGIjP0F0F9HH/QLDO3R2X9vy2mUOz0t/f2co31aWhpxQW/q3dbnm4MxB+J+sxGhjGlqiU9Qa9yEMZylRKUlrsNkVde/qCIqcvTPjL5J1y8rNKrbOLgw7Lsi7cIO2n1IAaOHdJWz1cpefOqricGdNkEgZumInDRiZ4tpVvIZYlsZgNpzIeYFPPYkNoMZpgI1Dl8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-af430394-1fb4-4e35-8cec-3cfb58bccbcc","name":"release-af430394-1fb4-4e35-8cec-3cfb58bccbcc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"636b7fca-5dab-4ec7-bc58-fb7d7db3ff1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41837309704111120643347827875337128495946354434865497585713215426224762885367806886122844145511423017597688971823242422458561798538353141457566116318897628235411659427713375623527922333376194341483662326375612194422943887068901973362353079854862081493526953027969624379801190724030956413349398608608338157191338406748798879003396862916267109084865041301967","osProfile":{"computerName":"jianyunt2"},"vmId":"da0e9641-3b2e-4c64-89bd-42686ca01a75","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzX+QDCKq/USi89HnQe130ueXqbHibYSe56NZwfdSfnuLQnGAby/d8QUethcC2fhJC8I1Cq1tZGl+Ll27lKvMlKB5DhYXmii5CUYCqyLlF9xYjoA92BEfTpGRAnk+JKiWklPPjX/ozQgzcbKVzGBJPzRbu3BVaz0rvwEieY/wcsSKsIG4VS4o9EBU5xpVasyVJBxJI9YUkwmtWjAVfS+igxfVoB9pcVtbmZt4bfwbK65+bqkH7RJGHUE4jd/8J32KRP9vYTwFqc2DRfPeqQi5ciM25+xBc2qUilriM3rbVqrIuU33Hm/q6d2BBFbd3SxtAfrDTE3XjUhGd+W2m4kHnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-769910a0-acab-4a18-b662-e8aefc3de723","name":"release-769910a0-acab-4a18-b662-e8aefc3de723","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"afdc0d3e-5e78-4565-a5e2-f3b1b20fbe44","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418754704369782309904633763280604267129131180810140322773173409586238728546778357209954429740878071883838262958658903769923916530477354229842439957698069565690309308410792586275905750668345156826478685286060917713703189830421387534258619418505755403926713235596347825674769646412532802159339409567559886537906556195106658327507745560275376577961367434499780","osProfile":{"computerName":"jianyunt2"},"vmId":"d5cbbe7b-880f-469a-975d-4b26ba1ae38f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA02AX2FLpf1zJ3UhFNI/4lKAUx+iS/31YbO2iO9FDM/zeOV7NkMQIY4LEPqdJcWUV68qaqsbSWlVk0NP52W166vVqvnCZAloy16givD7GY/n2kZEHZ4hn8nUOpDl/Hd+Pk8e4LSV/epnoXMPo5Fh7gHj+ULlPawmgKfn4T4LPglL4QQbFYUH2OgC5pcu7qglcKFSjm3Pd0cHlMwb67Uj4kYcvMZ8ue/9pUTpHCxeEd5xnq1OJ6G66XiUcvIpyktz+1dXlhyYJ6Ryf4pp9g7DMYBsa/HUU2bgS/wIGbSSRBJgTMCou0W6mJs8IIx/LrxzcHVdWPt1wl5VfdKl+o+/9TwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e07106d9-196c-48dd-9c45-8fa8b93bf187","name":"release-e07106d9-196c-48dd-9c45-8fa8b93bf187","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"48fe95d5-24d1-4f0d-a74e-e3bf24d9e5ae","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41844612239672396389925319337579236542709630012729326156214735831652120317262985424227558945454993910973879054864458565216353877674873069391951358342332667542155749718414854605366921079842513769116145484244166391697227691255681683626184682770624647499255512273340326035728487354334598985739661481727150856266560699359855279301355915063934428997482746297776185939143","osProfile":{"computerName":"jianyunt2"},"vmId":"0ee5a517-5110-4248-bf3a-a6e251eaa9bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArzukrsWBqpNr8YFRtrrzMpoFljN67D91lo3N6KcNldy+wL7fn+8ICRv0nuNoGKA/aNBh191wuLWk0u+211U84/wb1KEzw8+Z5FwBj9+OF8sQV8adnSTNkORNuhnGhZHETa4pXOUmYxt5/6lLU38eDF4HBsGshDnfsnRUjod42ZYy5RJGUsMh9WiRYMRDaAZrXl8UY1R6+25Vl1CeAP8YlT8WlyTVipHWkTRlZxSdyojb7MFHKJDhz1Ckz62rQwGJd9q+fE9zofildpI7qpQYm63me5c1gRiEvVZAI0kWLe023C+/R43sNmI3ErJOmz9aocr2X5hQHW71a+mHWMaFewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c94f5dfa-c7dd-46d9-b875-4cf832c7d159","name":"release-c94f5dfa-c7dd-46d9-b875-4cf832c7d159","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a55f8a12-8f22-4eca-823a-24fc4bdb5703","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418579481494796899733475336334190018665758231932525880973683862564562655273755410277029941320287657975719044249663689626585433149114036851660649015988966398210732936643250349031465855144555522279512801393575228366527635269725392251280626878179439689853804831353276022419632969162475303541063384289832626755147585256781110318949372516195181005775","osProfile":{"computerName":"jianyunt2"},"vmId":"b6b9acd9-9c1e-49df-b44a-4ac4f0e76881","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnua4ibsj+qme0UExh+blf3Su1Uz7KD80/8vUvaPfi4ErtaHRp1H4RgdAD1gdEagdw5d7RROb33LiAcnQ+mC7PW5HksmbD5DgqEUaTYXbVcEaqU7UO213OXMF0t++KtQO5qdqdWY5HKXlJPAH2om/sdyQMdf1KTj6Baqt2KwL3fXyXzw4MQBY3x3Fq0SOCMolW48m6QQNm2nyYxZWEAg1ApV09cEPK3RJL1DVpOGlvdCuAL3IjqJ5CQt5hfKEnM1CcAfo4p8VOa2rA07HEcro1CvKHTDX0HLQ6QTptll+wIgiKzO3ny16gsqs9ekyY+dopWZDnyWPyFGh+4MnwXLJoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0336d345-3d9f-4cfa-9e80-c6fc5288c20f","name":"release-0336d345-3d9f-4cfa-9e80-c6fc5288c20f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"963a1985-b1ad-4b7d-97e1-ffb17853f031","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41874916396300631811511838520763936548060827710886549555111236736578296895487429698782617107393482831742001423468122021692430420477249513524922431457971172318854610170064447762021274500456137354961452196066483561770824909941102610975146866262896888859490858913883403389261233996146021406303534460157690153941619691008441677627845020449207687099876903420171135161578485921852792886325123642812974774850247001340811585525638254","osProfile":{"computerName":"jianyunt2"},"vmId":"8c50c3d6-fdf6-4b9c-9d1d-5b6e0e4f86ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA42iHwT72Klk3QN98D3Z++1fagtbuSlCTBctngjpeVC35jneOYnQ9nHAoQKRLCPI1Vq2Tnq0CAlDMlMbla9Y2HUrMNWdaB2am+qS3E9tp/ZA2Go6nRFhISgrV0/Uk++BlntGcsrFOMfAjoc4NeVDE+C3cckq9AnEdTzelLp5lXR3Dn0f6kdeZq0iErwdJ/k/Iv5wH37+KqgReJUvV3mIv8kSD6bhhKtK/dRUIgss+VuIng8UgQPhFT6kT7O6L20qCEGA2QYdUMOWJXxa7YOCdsZSl04yGB8QQxYE29fCsd4PqKB26hRB8hYGT1XJWLJaqAMLGJOVE4WDabdsLwZnEQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2f9d1237-fec1-4027-9e02-b1e84a0dc1d7","name":"release-2f9d1237-fec1-4027-9e02-b1e84a0dc1d7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9c5b6f8a-61a4-4023-89a6-4413405f6fa8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41823276869504090831753801119894297336418757753207402864278441713449499034521712578873323024549953493517489275066253911577203875847392441681247192092896512867168711693575393706181195679865182161059984349689329689487983950767625403577509048889023406984548181909552723260614173807114373068539729754115103092958476616975263014357020876025534242391539880881228876704667639702248182293814","osProfile":{"computerName":"jianyunt2"},"vmId":"7809c28e-94e6-49ad-8f9f-5e08930ce711","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoqlARi9fiPHoH4Bph46IZefsq5RJv79f2NncRUygigIQ2MVDieV7J5BF/BqxmilvkYlCtSVzob7eN6A89rWUkwpwLq0bn8HyyNUsnJZhm48Q4+cc+jkn3FgtXDSLmRHcpllb5uVHs9B/YDCN7NgZwyxru1s89gkIQYoJN9yA6pAP3QndJrSf0c56eRXbykQVB2tF3QBvyNF9H6i1yso/mHF9wJE4yfLeFYmDfyqLKQBLBE8C4V8+kFVx2OVfi7MLbYwWuVsenDSMw5M+TthMX9m1lTxWI3/H0KJrYRInmY9Y04G0JH/ncukSPbxAsxuJW0Y5q39uW1ICz2DMcWJlaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4692089b-155c-46e4-9f93-5d42844598e9","name":"release-4692089b-155c-46e4-9f93-5d42844598e9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a3918aa2-7ab5-4fc3-891b-50bf6b6c9b69","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873957052208455263117451593823820337449769704849941789078963594633317311172493865607894276102827497058295243800687459902692316841689484863213408532297247476762695211689922957058216331561157004561498217787997711014436510837828962744879568496837327995866812142334443118132546463445904307665898870549676273819304712984095970","osProfile":{"computerName":"jianyunt2"},"vmId":"c856a07f-c743-4825-8550-9f0ff7028fcf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArEUiAoNi5DGmGPUxXR2lfC0l/YRP5nNEh2DhfkWvqoBshI5IwZDo47OCJBDcySdqHGuRM+KLWXjhdUVRUjQ4rghALc4Xc2PEQWipPAnv6SPVzjUHTTJnjBsWUxuQONWgeaWrS1ib8S474Sj9z4CnXYXNIUhZR6YKRbA/7f7M54oVT28y9WEOwzzhfPl1kSEYv4IVoWh9jr0FduI9a1AcN7VTcS8yM1BKM+4TDf8AAohuBk7bWsSOP+SjQ1ULcuIkMFamL/QKaOsSnrAhfCE47Jl7gPuIcFNf2BzFmj7/GTeOVQEpQybtGyhNRz7cp8/NWuXw7CHg9W2WpXgD11dKIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7881be78-1ca4-4425-8d17-e3160d107146","name":"release-7881be78-1ca4-4425-8d17-e3160d107146","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7dc7a8ad-e843-498e-b020-db89a61b6c19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418686427290555208424373543777687811941293742443482592585179019904955643869802597733118323605711607655935934687469848019665388915796649916372477186278803908877753837822227014855268942049875401711329281631432015161308951649766591505313910342592869828844286842537862058799689886283490999170013323211210737429300725521342306206722919268486442475565400625615896314183625042971409590151569580439863499945378442","osProfile":{"computerName":"jianyunt2"},"vmId":"867e4165-6673-416b-b0be-259f8ffbbcb7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA24gmTA0suPNiUQmbw5jBELKAGIFoG3BKc8vH9v3+lvt4tJ34zg5ezYJT972cfoTMshICSbBGYOzA7tE1gNAsFzJQT+SHIekiTczFQUSF7GuVYR2Gq5T4dsUT3Bj6fv9VZOPaDF/j0MCgLbNqKIMcIAf3ykftsbZEi88W3h/hZR/nNQQDfjmCX7rMFIeKfQ8UDlFmvEN66aXnwxHRTIyU8CK1BEm8uCJp5ZH3nQzEyJ3xaPbYtLa6Gtrr5dDk67+sS18dVi6oIN4oOZbB1EOlAkCWGpCp4eYvep3tu3G3mqqmuiUDrQMQhkvi7ANQ5cABNP80rx026haeJCIT0G5neQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ea3e9b19-3061-49f8-b0d3-6e51128f57d7","name":"release-ea3e9b19-3061-49f8-b0d3-6e51128f57d7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d0621767-7904-4bed-a687-ac1ef590a4b2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828687653315538299263146230812089032350231637454287064247722185048216312657389440847866216613686543146591328327929366949149033335525995328982356322256293424484974828753598550964242999876231140575345700210603929746792902862596617137111615294563141854107977465871107769714210991364428098296564346263595456831182673668865671943692153018948197378983886659","osProfile":{"computerName":"jianyunt2"},"vmId":"abc10d83-1a1a-4190-b151-b1e781f25326","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1zPEi0tzM+cgg3ZNz9tL5tr/B7z8aKSZLyJVuGlPiSaHb+/ECS5d3ucYG8WPc7jBkywZ2IMDO64Loc/QKDVlNev+nH8VKMWEw3E+DvMMfnAOZUu6IjqY6xODa+C0VCw+iJVru5U9sxD7FhDU7k7GopPga2MQlmeV2BiLMc7Vy+vnETimuWTT6nvzLCBQbuwuV7uOlwHPwli2MV5mPD7n/L//Pc0A07/8HW57lGUTV2pE4Ba4zig6RPTbd9ibqR4EF5PkgItkPFS1AJUf9rN31Fi7kdnFXg8hM50qw3PxeWvErYE7aMAUVIUv9f3d7XWLp4MDPIVgHnvoHM15GGg2vQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-12aed2ce-25a9-4000-9253-3ac0185772dd","name":"release-12aed2ce-25a9-4000-9253-3ac0185772dd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"48f43d7c-007d-40a8-beb9-b39a2bad3d6f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418732876242235402460181860896396575371512605513829587023048572414102895878469719258783819186268888573569336485781120944296670757413842706181968673304514830441009197883918705902623822231960748165418583903450431999336567229468019205418546479906481478571512277414543098691597538051990177095848414155229124355824657028862538289992470334159147058526327745432550586791726902901082754665101407","osProfile":{"computerName":"jianyunt2"},"vmId":"8fde6b24-2f4e-47f4-a78b-ae3bda45b93f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs90F0xDaN1r74KRWbEwcbFx5FY+DFIDucKsQR4SKpevEvVdlJNDZyxGqmDw+3H5yM8weK69FpJMCA5BQsg9at6tFeKHBcdf5mqV2km/UAw7cdyvzQ53u2MbYoWpJVpzlV/5leMsdkgcmGUYM6xXgB8M4KpaYlOO6BQOsE8dzOodHmPkEbS4bZHi/SRbytivScLhUQbGsQhQEEHAlHS2ZYDa85XO5a9lt9I5vxhdn+0lzamyYsfLS4KE9W1zzk0Q0z6i1xNvJTP6zMbNcQ38xM7p86m1Hx5Jdj5TBOYdIE42GoTGuwXimQyukyHsBJiOBJvcMsI7GGXa5RHxTqNh8ywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d8c43877-7d0a-408d-aa20-fa6ecd09b6b7","name":"release-d8c43877-7d0a-408d-aa20-fa6ecd09b6b7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b7a31a2c-28e0-48fe-98be-fda6beba0801","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188266938838367877028307312633195245927923472311638169985959984457126334668115342871620737078348623818595904317912433474587725765757176479139285339171196804397156460557304010533258495621743593053216632693530883148320531346652345010227345997157785320546411189683491497317331363916238812938219036179341946689041318749515058319234165361827104193273365004404454679452502246397869789790794444868774243802580603218291748542880926181084998","osProfile":{"computerName":"jianyunt2"},"vmId":"18c33905-00ec-4a42-8c14-f92fc23fa6f0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuqoRjowGfLK73nGzIjOKJrnFfX3xKOw4Ya5bNvT07Sq4FxBqeLJRan4kiSDm0IEvstj12CjOnGPfZtkmbgO3tHlfM3GfVm/wY/Fy4ggAMoXbC7rR7jK6blI4eOQwQjHca4OSceJ9++B+UZEJ4SmWPhdsO80LFH9mwMFfL7Bu2JE6ZlYRFP2RhQs2kNYt+SKKjivP3rK1r27gBTB28FwpYU0aRtKBD/nioRHbRm+IxdrDjXiReKk8S6c1EavDYAXCyX4jmvMecvTfN+xghB2qHEeHagW/n+ay8un4scOHqTWn48WoTIvoJ0ttFFIzo9VBOza6E0SsLRqtB0gWiZa8SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6200006a-8c62-47dc-ab05-88a78fdd6c0e","name":"release-6200006a-8c62-47dc-ab05-88a78fdd6c0e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1115cb94-0c65-402f-9f9b-ad146daeafd4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41847774996187819799266186473836501488376229347624747023259362168637741007576615097148080147147937380271296547502467732375176724638499729344821189835556662132426108643691138560515740152426807021186013322990914159185119526709236447260613101913758533644155713944492127762301781883091660862282364017214736972551573411396979888338855618961654268809796922072008","osProfile":{"computerName":"jianyunt2"},"vmId":"e5e3b12f-0c6c-4671-a98f-abc7b16886b0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx9GwYtqftKrL1G1pgxO7FPor8lJUzYdMVFuFIkT5GVqYE17g4FoMzFxTRwsNYOqNZx823MeTxzWlK/v+hxmDzEu+GFlWWTbJZdkcVTc6NUjX5wYfPhHBbnp+dYmerMpKBDmNgGCHKGy17dmOelW/fWB6IJwzCVr0Uj8GdQ0huD9eR7cRIy/RtBZ8oxy3TgbulWNhmJiiNuVlU52uoHGXApdPAyY0by6H5rr0FYhSgQ6rJ14NtAxD70m+Oyd1kow1fC2YaMpxs8cvtDEcYeFVIzspqQSSb7Wd+0ehkblzXejeWsTICFNiG6IfyXUEsTNGDzIJiHaVy8YODvFXorri4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1d9dfc64-cf40-4977-bc68-4c88d305528b","name":"release-1d9dfc64-cf40-4977-bc68-4c88d305528b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"33903ed2-ff5e-4de3-b2ce-3f4279ee7b27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181719244621495264840877433620449680692612989711722024181434159275345466626419343547324719827388506978732776985798269974791752342264383387607623769478420792587818897702278918338541779473582427991553740282098659249626455524270656222082946266110781548286783045319091896634331422886709141641379215367216262672684294847237371491061801851230849851855794449717706527273328107650","osProfile":{"computerName":"jianyunt2"},"vmId":"65d19d5b-05dc-458d-83e3-138b614f9a0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzKbI3fRO5QugaphzygXHObf4ZyBNBUGknCNxyWiFAz7fro1awdsGouAjbcyzR5w/AISy6g5HANIgQ0nTyjU4OcTj0OXuHyIgpfLBtBDel3Y5ItQ+l3NTPaUyRRSCUusjeT6YXeqSDIvrIkEfRyNutS1FGJUfQLemGA1pmTmz+JiXUrlSpvbM0JqcdAUO279du5UUKtB2RFBmqEHCUo1vX/sMk+tWT0hcRqO6tBq4t16RGrw5fmsNN7ggxqdBM0n/XtYXsErEVcYqU5gWdLNiANsyyfEjhmFHPHSwzWDr/j2i3fajUD1J1pIsF0VKQJ77foZjEakGx3byatDb6L/XvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-712da2ff-a6b9-4e3a-a3c9-49577c7204e1","name":"release-712da2ff-a6b9-4e3a-a3c9-49577c7204e1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d460e2a3-33ba-48c5-9732-fac041df1754","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188925121824118345544818379016451667839736064383851054891929969096609579392786767335515487651157099441753175988078328456683451562107938942697895363974681476708953156277697355620381202538565796461286126960571017922662018417186360438043280219837867263425522788060843434049488752143693313399396489128046378919798219222603329369817323662366517281387842898306198757619017242","osProfile":{"computerName":"jianyunt2"},"vmId":"23c47346-d514-4698-8ded-de405770399b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA40yPaDPq+Hwcs8uXnH5ShUt4uGE/aCtUcicPALmLvTIAph7QbMhaRhJJBKEZ22chYKrAAYQBbuPS1GaOEw20tPugdw6Zicdgy4/Z/mFG05h/Da/nd5Kz/ZsMD3mdBwTYAXAZU6M+MQvkrYVn1w+Q8G1KOMZu1P/XFZhXTWsb4decbLVXF3TWFHwcuztfi+GaVuaYC2k1m+PBzQC2bU11PuBKM5is9taDCZAQt2F87uBkuuyVvfyOQaMJC6iUsFik4TfRpt7JsEdZNi+YmpvJQ0WLqp4/NACUpEs24GuYPRPE4hWjjqxjC93ctDKPPnB/bezYhmuay5YrxIHM4OZznwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-527513df-3d91-4c95-873d-de20b27c9f0a","name":"release-527513df-3d91-4c95-873d-de20b27c9f0a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b2d5de87-7f9e-4482-b411-242104d551fd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418623161738214127814348849213443146663304293753126934932593179772712924820695039458535070253123554942999010746663642682876483251646159801516916606789715011263735189374820840578475206737483558063363887051551634115744644356465774321537188174766623573234401945815555006509262381536196060916737508236527945211901920944856780252870805013497554347963468282419441675471546270842824468125448861","osProfile":{"computerName":"jianyunt2"},"vmId":"08fdb786-5d0f-4c47-a312-cf3b191b7264","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwnVSzZiquPr6wq7Axl6Au5307/OVcOaBPH8Z79JynT52Y40CwUmqWkz0FaztzRUur64wgvx76vE76VzdaXPjIehqMuV8FBxRFjxZGRmybnR3W+QtlM0E19DMgBeYH6AcsI+6wMl0x5YRBAf5C6To6XJMRUmqp/3XI0LkQCWw4vpGIpJqFeMd/wKKVOObX9L0mM2MV+lrTfmzx5zBLJwz0p0VsvIsF+ht9+znCQYMLAwTt7641C77AXNwrcyBFrc6ZdLM+XtcSM008iPkKNXsQIfaJQJcAoJJOV/m2d2F7w2g/s9DI+VaBXMLgrIu7cOAyoMXIWyPk0zFTgB9wWVaSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f51b42ec-bfdc-48e1-9cd7-e79f8f46da33","name":"release-f51b42ec-bfdc-48e1-9cd7-e79f8f46da33","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"da3be48c-8b9e-4c4c-8b81-4f92b9a15d1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418665959343645524692574673551692130718120867987628323916265695469250556903787376448547236160151846019474565335957284461653509314546416863565971482566123922520702785118627711412988531446264767579137938803662628671485970435436389537423125938916241395765733187396079480803385182417491138462134751049377886969569639769320112872128671024564326189889478327786111178444432389926693905709","osProfile":{"computerName":"jianyunt2"},"vmId":"56de96d4-1f7a-4389-b152-6420f8d060a4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA27nTBMr0NsleeEz1yPFv+j+Qvlevof/4O22aLq+gYPLlu85nl5UbXgneumf3jTc7WHooQjvrTrCYfEUmFgACvPusXeTZgC110RR5TZI32vAGW/FSKVUrWdoGuDTXRpkjumKFBG9WfvyfDSZV9NkpXW2GARaX9FNSblV5Lj+OPLUB4JMPXP1tybyC/BHasxhhFqLGqJ4z3e7FNFOiauWb807jJcICuj46VXxU0gpFDNWm0HdJTy2yG3JtfxEjkKKRc3lXl6GkD/PzeTNnJDLZEB/zBxOqW5tIGmRlCekOEQas+N2ueUmsH08ASRSCHUYTb5fZtYEry+cUCOIeYZjUXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-65a1d127-97bc-4d78-81ce-cc3baf0d9884","name":"release-65a1d127-97bc-4d78-81ce-cc3baf0d9884","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c0fd766a-91a6-434a-b108-30b87150407c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41835468731492919448223683562452014546716062392648404232996819467301544481831594172777893873676794870594750813968266379980774552920333796251254164627547458171508050671172627861559145521851349037690117029102033728219123232733056016210584327192758102057357546364075585148957655434454417622928567938255368232506517437088732682125337214772254734338715027974410356124830022961186194068839213562384","osProfile":{"computerName":"jianyunt2"},"vmId":"b4939def-825d-4bfe-8e33-14fad41debad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx9Dflns1c1YpZuEZ6Kk8U19H92VC+1qMRVuorRqBVN+C7wYYFSjNKkzPdB9tPV308T7dvws8EN+8l8a9537SkP/FQ9XVLlbWNxFRIbizhdv6aHiPCA0BKRNpzKJHyFpHOvm/1KKWhDz5VKuVM8DfwyA6RYj4ee3XgogmOfiQBA6bQm3on4doUjsHZ5T6vlsXOJCx8YHv05Y7Z9KDIVFy85itaKznh/l2dwx2Zu2ueWIRu8yLfbrGJmnXgSLCZ7wf9Eudx+5RMw4Q/D9/CH+Idbh+hj6NqJkn3c6rjtZbiHTJQ7PKO+3kvUh5eO57s5AAKNxdtkKfwpF6vL+sQIHaZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac0f4bf8-9c76-42bd-9ca3-5d3b36bf9f47","name":"release-ac0f4bf8-9c76-42bd-9ca3-5d3b36bf9f47","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a4d4c54a-9b9c-4743-b72a-9eef33496a04","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41811498390217296190595004891624167270584860108434133040146551747657092552917652591486416841264839761960657665998712630349917326146332033773285407087709736277359037418624650232417821021204925882256444817397264144181822982227516902407728321616222679773174788476544231260442563460860814834274511316781600484123269791984440407881248696506760494794148308218353962437214132788839998719183208721741827668","osProfile":{"computerName":"jianyunt2"},"vmId":"146b3402-9e4c-41ec-978b-e3ba626f2972","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwrxl+eppqv7zle/tmoJfgOV/SUIoRn58La9KONyl1suEPL0DlmMVTFPUhru0dW0iYyGLPrsaDYb2UWi6ufecNxSIEYAosIVlZ9Q15vb5JZgLWUEXI5MIU79csOaW9INyh9Y7Z5OQczt6cpZlLcXUDg9ZC/vKCVD0pNy5QE9brpdByhs92mPlNTa+yAQQBrGIvEmesyv0hQvq8Q/CaFBtZT++IkCyGZsjn1XbYd7xJ+Xb1Sb6LCDsnW9dJqi5obsqb8amnR8qzyNWNtWcjNTAdLGQ7XBOIrtAwlRAFBjSTte5mC7XMkcWaqdjho91p08fStTyTIdIkn+6xMb1eLMfiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d69a6b0f-ffdd-4eda-9da3-d7f73298defd","name":"release-d69a6b0f-ffdd-4eda-9da3-d7f73298defd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bd7605d4-e74c-4aee-909a-5ec306a63901","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418607535288041728314862576669532654345472747389522606393576384871021899390723154021567457237635514128069354813522154199599600724910809504996631599679931119874727387287294252925871969639653400944691004499298118614369642160432349343928611343053699364033875463912729084011678762469847165513552611863489668187192846947404844681820614009353051174435","osProfile":{"computerName":"jianyunt2"},"vmId":"63fd000a-a78c-4244-aac2-cae9af408752","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApNtZouzGKioeeVS/3FkHJaM0b+1YD0NNlH8OZqhrF+jshuGJFCivXc/0O4ZCRJ2i2hxbgO2suPo2ETdSTeVc3WC80LqetVbDM+cobUz/3stehcrnda7t04xATzMlP/Sy/UENFM7aTlb/4LlbaU3rGohtRhciAsK/NMS79ET/akQN7328of4giaFWjxKkBV7KHwvL/ORUnOdrgR180Ae9l/1Ac9b7WnMmT+ixwlHKbjeYtYpNZJyhwaqctqdrEwhva82umJCj+H7mAO3cJK1wYUB6ByWcdT5RPOtkyPGmaS5A9u7iyTEJ89va4l0bC6dkyE7CaqzyPPTWf5iRaNrX1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ddccbbe9-c13f-4f78-aaf1-57cad5bebc1f","name":"release-ddccbbe9-c13f-4f78-aaf1-57cad5bebc1f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d9cdd299-ee00-4eb5-80d4-ef9438803773","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41818291754571456672816575813040579807495841374046240861014176814677537167983539263795569656187070453469248691641545678895293165433255185561159030342872703330600076067661303138494278555319130898339531077872396554332958045139512567980146796932416094199599078021818113833281909070117766503326608944124757596707287285356500","osProfile":{"computerName":"jianyunt2"},"vmId":"7e07f229-3490-4472-9487-8bf953aa2d28","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2pjyFA9Z93E1FAYPydlrOWZ1zf0E4Y+L/1LB2rusioofxPHqrk9B8N5cCaN6d0+cJqbLW3iI4eH39llufeJ16mtlPaCDn3tmU1QlX9HbMurrkiFrZtVvmZ/Vr21T39Li2DUm58V/umndp4jlHHrcuv5dkTlDdsew5to0xL3ZE6ILwTeh3XnOxxfbEOJfJ8QKxNGBdPyFEDr9kXaI/MmaQ2LF5IdmGBMQIXrzn7dGGRtU7HZa3OL0kvEOpv8BFEQMTUeI5lpuu6kUgrIyY2u5F/9NvHttarODhW92cxo6tLIRfOrbbQlPOXzh2MLs9/fo/GRfaLyYQvCB57yHOTFECQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a0bb5760-4892-4020-b515-dbd4d1e9a73b","name":"release-a0bb5760-4892-4020-b515-dbd4d1e9a73b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3bf4585c-e739-4837-bedb-b31a417a3793","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418743726638207750188865881140481833125060603884632295135796991067861667533749860392599063395303770458464988617363074734629275702322459415249757853408871226297024640773566187385203830989531224279367168586675493933134564771475425777357894726049524216334664041607891216308986074021953975524292613706391808611913363","osProfile":{"computerName":"jianyunt2"},"vmId":"b672b465-6f09-4e91-8278-3e0409fc82b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAycfOS1J6Czta4TjkuMihr/zMxf9moDrnlLfVAGo+0b0WiKYDXLaBbrRLX/y6L0K4WIPoQHHiJMe7VoqD9ezsNOTjOpSRBGiK2yTT+y7u6/5JCRs7utvosXBWTZUJH93dKIT25gZMfr2PcY5nO4btnE7jMt5VNyf6If97kJFKIFt606NcDYF8HWkcuVEbc2LkKoIaqQgeOfOaZAFhCim1niH9ml0dS76vHSlBerkq2fsDVmvPHaWs92eLFzbLT5jiHWwip/Mo8gCMF1Qc83rhyLJk2jcI7HR2SZ2wTvRMKrmxtzWNXROTDmXVjkjzUiwhS36Xv8b9xF2dntA5xihwOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ee5392a7-1d91-4938-a920-2f63dd4a1a8e","name":"release-ee5392a7-1d91-4938-a920-2f63dd4a1a8e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"48c6681d-2684-445e-b8d7-9c29fa16bd00","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41851997434214021146515363519674491127187583523274828037638916662511852566617272395662255918712254186767357199292119175041926731203996252572581726550686256705373601687939627892375014072808564570028026992539774863648728574773663342687946666517017769150032210313016384026674624351059988474996027785637552621943398523039971949516831815882222437386865325112396483783077059631785817218794345165653895306","osProfile":{"computerName":"jianyunt2"},"vmId":"42fed95c-524e-414c-a364-239d16601a03","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt3Ve9qTaPvTqGoRUN9GVzgs8bJfSVanEaWKU81wxJiQpVFKRiXjdNq75Z0NrPbvS5RhMXMbv6IvNYzg8K2b5EDCKlmlz4+QFL3bUYW6UzjC3VsKGpXMzP/7aWtzWnX8dfL9awiAEQ5rs0jsTy+BaQodtpErMkxhVQXgIfUQ30guhpSEzf72IRaqL3hzPim2KNMitN4TnoJlmjuGwU4E9kGEV+70HPc2OP6qtOJRXIjOrvEVN94ZlFkG8Kwq+2uWv3t//FemDNC+PCpyzXJGodS+4txIqWZxXH6B6JCN72DS/nI1h6gbN4aPAMIrh+MBeZY0ykWq4CiKN9mrQYPc4bwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-609220cf-1e46-4619-bbb4-36236f77c353","name":"release-609220cf-1e46-4619-bbb4-36236f77c353","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"77249638-eb0f-439d-8c90-8066545269e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182363208679676544527161569473345350946288889042912330751223423546107217291494900929044209769148199073759483926508642834569821555938388631859231021214123588535246766607033097687378047849391732456654197433294527486724495815272616161091875073647258365961526833476730883309460735725836447931527139048129166929646920874168496796523011323962560389194568853110536085546258412576352825129168707","osProfile":{"computerName":"jianyunt2"},"vmId":"3475b272-476b-4941-8e28-8cc9182bf34c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnykjQVsK0Ri0g3bF885ga/DYIqlEXVDWYlwr9ohrm15A56E1XFK14asZ0LN6/OYrc1Z1dXd+yQ/is2I9uQJaSxX9IZprIBqZbkbgsgf5u2hWU5XJsTldT+CpLJgIjHnkfHoTL7jbTn5PQ17o2g67p55Zg+Y/SoRGydHSrThOJfqqc+DMD0w1mzeMGvuPxuy1zMS8zuwI9MMKayJ81g2p9W/KI38MajWHGGbPGNB55xp05p75JAJ37rlxMNawu/wPNgMHg2gGGYcsCDhBeKX+fiqqde8dTNInvgjO2TYQKVGn7qQS2Lnqt/fRF2l/iBWKDw8500oU/il7+z4y1E6bQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d71f039a-0a32-448c-9913-af0d9e6a1715","name":"release-d71f039a-0a32-448c-9913-af0d9e6a1715","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a18e6e6c-f815-47e2-99ee-3d9f0a27041a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186387327783086532219013454278639635193203315121999461903923545853188793285442719711370604415186317396594465950254684821862773700158512258637467539879974839222267817724104514116063581303915265593858613787038338537455365667196885344618758955632845231139363254608786332880686322224439358289721407087019414907856235567378175210959198755614075387422056426579093352657","osProfile":{"computerName":"jianyunt2"},"vmId":"93a2dd9e-9a74-40e0-9358-3bb32a6530ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp+EpVI8gpYWLSmgwSupcEgRtEphM/3m1uQwSIQHqfDmxVPos8EOU9gb/TbXsyXwewnz0hNuP0FXsas5NI4wmUFE3rB/pEd23h4MXPr/rLVZcRXGPqf0ok8q2t8F6qawl5zNAfHEVIfQTONUYWCvKUNcp1vwnFSWOsUONu+GcJWQJu7SXzQ69ES0uXc5jXmnvjp5Auc09BXIWVsh/ZGaPNYgHjLRTbL9KPzsyDPBJWkmXeb1Z7YOBS9xekZnojwxVZpdu3PQ4hLhjlJRuPSC4P0WLPhxZ3obPlJyIfhiznv6cZyvaaJtOkqEj8xxNN1fyQWJrgzRhFLO6sd/pplZTJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1f5eaf46-a6f3-4f77-b8bd-75df3c8c7c62","name":"release-1f5eaf46-a6f3-4f77-b8bd-75df3c8c7c62","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3a367208-0ede-4a7d-a714-e8dee1e4bffd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418776921843519441896364948599492908176586507113744284235555629787691596139361553116233819346794007138966059231845152547886853031596010665087759929819347212918969430992822726653924460295971090393845547910887769308770389211784411691206648754720986972538885923556425597867541194915008370810511234248810693089220688143923674720966561461042340817002259461967323277444042348893","osProfile":{"computerName":"jianyunt2"},"vmId":"1789af84-8c6b-4271-a72f-b5b0c2a972cf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXGOH9zo4vecWqletK0tVKag35r1DxJItDGDki2iDjNYXQSc3rwqpe/MEfI+OxMIgMPAmeyTymsz48caMKdv6rpCXf3QSoNnJO0UaS9XqYfz2+K9TLKdh/F9joF3mXZhE6xfUTubDlTlralmCpUdOhjTTTL4uFtcn+hl2AjoXUd08Bib+SIgbre6Voocw6APxR1EwB68wSmRAwK4XHh9WyLt1np3BXMSY8ea/zt5Rcns4ZIG9znkhjrJIUcwui+lZng59iWrqgDUHuq7AKST0od9p+FzrBm4Ocg1vJYiqscs6f3WeFDbZPMk+5hYojhl5XtxdZKq0peTG5oGPCqTowIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNRc5swDP4v3LKn0lAgQHrX28lgGjdNG4ewLnkjxDFeGuCApEl77W%2bfoOuuP6BP43zWJ1mWPiT5RcvFsblV%2bbbWLl%2b0BxrN48jULrWsacr6st%2ffJXkixU7kzXnyvK%2fEeVrs%2bvV%2bVaeVKhtV5HV%2fNRC2a3upvnGGiW47bqp7rj3UhbkZpl66ttYro19WxUGtRVX3JyqtirrYNOej06pSa7%2fYlftGYKY0U7mofySl0g%2foicGvTONiqBuebph6WYmDEk%2ffv9VbVc6LrcivegPSc0nPNJtWRdmzoN1NMmMB4rdQLH%2fD7cU%2br5JycqLw%2fvUsPAx6pjWbo5OFYD7zW2QYiFn0EzEGsRi9R%2bQMBpaDWjhtfUBe02zBGYzpM8AKU0lfQMYlRINRIN1dtLGhi26eIZUqyaX4S6xjulOfeXY%2bu%2bT4j3oYttAN2jUItDONQtcRGsP0v%2bnKEeQdTBLxbNnrmxP7mq4wtVAOEJrDPSF8il0N49jHHdcpxCFpgZ3xKQqXUjjC1EUoYxyEcGiFODghGsiMjxDhWnQnrtmdHIYz3vmzLfwC4EALyACHzAy9%2bBZ34tDAAJgDQw6wjNEUfmR1ZnwzRMPIBvJEpc84MI92cdF6gZFRuO9MENXdCV4gR36POq4iDjYo7I876%2fc7G9ZxtI5jgAUEkqD0IAAgmAFWElYQY3UJAx%2bF5OFDgbyXQEEpyHxQaI0fqR8ZINFI2GMMIQ04xI402TX40gcsIWmjzoBmIRD86zFhlEPBfI4KevBinE0%2bqvH0manlRQBYo7b6roe196ZLrF2B2drQ4FMoCEYGn9%2fYcCe7h9O%2bzK94O6%2bvfwA%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-8N7AI0E7NI4fu6hw_e2etest","name":"WIN-8N7AI0E7NI4fu6hw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3258cd4-9924-4cf7-8c57-7e7df2d7ed5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.001","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-8N7AI0E7NI4","machineFqdn":"WIN-8N7AI0E7NI4","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-8N7AI0E7NI4"},"vmId":"d13cf291-719c-487e-8979-ae6574c8c46a","vmUuid":"4242A410-4B8E-498A-BE8A-9BCFAC0C9AA8","clientPublicKey":"MIIBCgKCAQEAzp+HoWUln6oLwQZImfk/HjwlG2JrFTtljLfhJJLFAwp5nwTvHjRZ2mrtNe/SFLUPloSTiJGQtoDIkDo4n0DLQJYhnYXLP1NHsY0T8U2tLsp9o4wx4dKaVxwu64nDAr2u0qD+0GrmyXBjrNB7e9x/nVtK62JwwcHz38QH5zZPTKwdrA3EXB5jIyIxalBT/rh5E+PxNSfl5KIxggarG/6JAlQ2TBatez+LetbnfTVvHeKep6ylA0Ss/BcJGKRZrpsGEHZJ0SIUDccxuq4PjCuoAkxNNLdhHYkth2mC5OJi6azVR8nh7nzQWxib6axBuJ5jFzOtGPJYyKFH8P1UN+XIEwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-8N7AI0E7NI4","dnsFqdn":"WIN-8N7AI0E7NI4"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_CENTOS8","name":"0.8.20132.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4ff8a959-fbc9-41b6-832c-67ecc16c9281","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"4380b8c5-0418-4891-9abc-08fb78585dbb","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA0JjsLHxVHoY07S8pR+ROzg2Lk665ReMIFy/0vnW8lCTvoiwaxA009WBN6RIeB+XbJDvDnOl4XbEqJ0zvmVLWtJbAg6YNxBnsNJwR+GcCfTw2knIy3HN6+8zj5o09UdJxBsFUwJiULLZa+ItrWkvHFayWEYFQTbf4yks6uefL2HQbK/IytEUuYFYM1LOTK4VTN67li0uaqYOeUJzCsKp/aj9hqi6WKSrtX9Hf5ESbqmqzAMiCbacls2k+vwF+W/b4/oHuTZGU5LqWcd/vAgGYyvzn/Hhh/mQ5uVcWXfHE8D1CC7f+nalhHChCpnA25OQlcmDQSB5Z4Frz3UQ6r7uT/QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_RHEL7","name":"0.8.20132.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"706cdb10-d78a-4a74-8497-2c5c10b31d14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"ecf4c152-1f8e-4f6f-9da7-b90fb1da45b0","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAxDpUxVplx88EAV7boHgMZR29cvmMB1KQqXcowB7saqA2ozdgaEDNfpU14V98jG+ump+UMr1tgrFu5yUxLni0LilI7cl37eyy0GRVDg9lg0Nfin5kan07aMRVTBiAdfuxgaeNarh9VD9GyrA6SrJETucaxtSG12ESSn2b7f1+qn0ipfHkb6UMyc5PI6R4KhjqkvV8b0NMt7urGBj41rXaS/ElbJEfKIpOB/3ymr5gYGeoXDYlQ7zN2FmWSASQC3GIN9EQr1cCpD8O6fw+jxaOqRzS4A/Kvr60Kn4/7xs3Qi4wGL5e8r6SD9FDDgh683kJycEpXVwzIdgcr791ChXLnwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_SLES15","name":"0.8.20132.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3b8cb84-1e18-4178-874c-b0f39db92693","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"09078b60-1b20-4ca7-9ba9-0d56bda84907","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAu0v6KHCys+WneCOmw5PVpA3bJYMka0anhsSsj1p8iqTtgbL0xca9r+kvxYQnFHWbO047Spz0nm/UNhw37pIzWGZ0SBZi2OKTejMeTddnOSgglGpn7cUq0rihOqHqSpRzhK8wnrqEu81LCOVMbtQ/OkQsn274U6x0GC5Dm0poHP8Pw5HnXzHfyEsyIFdDuCBWwrTJzmDI3kT6krENKg3MNfdujVVj2TOpt/9amsn6aq0p/4X1OrmK29bX73FMhJAXNQZ+quRww2TIaYIDV1vnLBfEg1m7U40DIuCk0EBc+kuHHfRaE+fMtYzzOQc4P7op9ykJ+58eqXQcItNTSLerQwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_AMAZON2","name":"0.8.20132.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31c9960d-090b-44ac-9fb8-40bc41de0bc8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"48261bd6-c812-439d-9b9e-40c9c1988034","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAvMBbt7nv3PQFQs9AGy7Z+6hWnmMH7Z2ZomihWhCkNARkrBT5SdztoSrzJJP40WPpzEW/Yz+hCDBqSZXdD/Oau1PAcNXLW3Nza3U/Py/q0Ny4p9yJHCOAW8qV3foFjvyXqP3GWalF9Vyp6LbO1r7U5NxMASpmbmeKdZc+9Ab1EH91tWuqqckiyu0yz0TVJ/mJ38aGDe19/9u2RwrnB//MRxdfzwNIh0A7DL7Na8Q+IZPhOp9gdzgy/j5rx3MtaeTUwK9ywIUaly2e5+7W7zpXkSslVyJxsbQWSb842meq5QGGJR4B2phHLBfYG1WcIUPO3bsaUnDGE3i+LUNTsxWD+QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1gjrit_e2etest","name":"George2-SLES15-1gjrit_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23234002-6bbd-43cf-9f49-dd989d13ecf8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a77e541e-8355-41a0-9558-566b1637f49d","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAsP8gc6e7SpPoeFC6nkAd939iOX9fPQGIKWp+F6cWysbuKvlrYpIkguh0GWtVmdRz/yynmhr714gliDCK1j3S1iFwc7TMo9kCSAMTWGF20Ro4tMNTHCJdObLvFiBXCo/eXv9xFjT1eyhx/yytqdxkOUtXIPcvacArZ5hWp4gDB+zfntP3p7HS78HYyYpZtLvWlEeapEqzYoIYcelMakTfIGzC6WUtPcHj2VURvisn2Wan9CmU/w/lOOCeUHYBF/K7Udd2i6mUGF1eYyO3Lbky3XOPM492nF6SFbHVyVzccWEUzDw+9Z+9M89id4QdVMWcQkzlY8JYQ3Vnd9UltOPEswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internwgdcu_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internwgdcu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cb5718a6-a1a2-4148-b2e2-fbe975aaa906","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"b9f67490-193c-41d5-955f-6615a2e1dc09","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAp2HBDQscOjdsNMZy9cuMjvrGH2pyvxX8ra8tFSaYFHiacANP1lcKS2t0L6uffi8waRiBUzMds0Z3b0nSp4Jw/l/N3CoaotBxNTpyuaYobooWhtw1bpqRDuTXlTypxY6vkZp9ujCUafe90nI8VUsbpR3oF8nzDF4tA8knMDHS7klNgC9hL+GaTfQCbCD/qou1rv81lFhOc+WziM6dr78Gnz+R8q1XbTXQQBg6nLaCcGQ+woAuOVc1/zyPvg8/hVaulmzSihADHT/tGoPyrHDI9Zqm99nJe5UStVdc8dCNYBco6rEL1wQMte6o0EGfqAPQPVNt9neSIq+vjvL2gqfxxwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1dz2gl_e2etest","name":"George2-Win12-1dz2gl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"485e01c0-32aa-426f-ba31-6015dade8065","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.001","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"1a435213-4061-4ebc-bba7-60d8fc87c0f2","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA3uXX9IP+ZVxRfrDXOW8Zq5N5NVn67P+sL6bBp3qYpddbNJpQMmZaZlZDme2j4/e5oQrcVfWXO/qIKeKaEagzq5lQWFAtLJzLiYoCqhKwJIpw4ZBtLnF5UkmoZDTCQDRmQhv46zukVzu/PtAmSIKCdvyHVoRQfqGtm10tCkkaclgWV+uQnD02GkH1Tzv4qoasRS2Pfod4fxHiQVDay/4X8ttbPpLKaxEFawhrGCdX9wkwRyKgn+C7ZVi4NrIVa87UESJVjhe4+zgBJrOiOucVzJVP6hAHrO7j0ndedUipqk0jiTSZC7tpYqfuKRLS9/ojj09YyyNtO+97JxyaWsatpQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-156uva_e2etest","name":"George2-Win12-156uva_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"74844da4-1e8f-4b59-91ce-1acb578bb14a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"0bc3a514-c3c0-4b37-b00f-6bb27af87a80","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAzCxTbYgv/ABnoNapYvZD94xJpm0jd8+cciYM9B9k2dKNvLi3Ax9zDriNiZgklcmOT4agxFcxdWSIVJOWxnoQTqD+3G06TLybeDxz9eZJyEhpl/NkP95vcgBxmdQC5ntzM+vOpvEuSz3uGcVh91QoRMniztji/fRKMt8iZoka77ZVdw0aiw08lO9BSmKY4HLpByNOx+Eq0A9r8V0+Ma0e7cxiQvXGu1MykxInIdkK8pzwYPfNHJlLArXFWljTUCaEdl1FAxDu0PrXINjoMPGsRkJqNUoXJc3wx68VXixR0LH0vzCzwCksfKQqVDd9CagaNHsvbP7qqQ0drF19WOkivQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-8N7AI0E7NI4icrzv_e2etest","name":"WIN-8N7AI0E7NI4icrzv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dd93a80f-6078-442c-8509-b689b8dbc500","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-8N7AI0E7NI4","machineFqdn":"WIN-8N7AI0E7NI4","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-8N7AI0E7NI4"},"vmId":"4b5ebbd3-04d1-4570-a71c-5150d3b3502d","vmUuid":"C5859E41-223B-4589-92D0-29B6E86042A2","clientPublicKey":"MIIBCgKCAQEAu8ctDzlKqcSBM2PbiaPHgLP3B738fjYRHI4jiAuk4qkVn/gpRplfMbx/E1XtOJX+CVAiM9BBXpxEnxdtG9g5hBqJ9UP8rr8XANViWCGeFifrD7mwGLI4uveKRo0IJbvkeIRvrfxyyxXfqAcyHG7N0R/yWrg1CHw5Qg5GFMwa2ev8Jkm2WXkoMCnGEqYdN8tDGKqD/eJlJSM8aLLRCW5J7lofDQ5MjK3nvckU3gdjBeFSNDMX9URytqmY/kq458l+HyBEI7iIysHL2OkvneH+d/e1daZn/xg4wiVH1Co6rGbRfnPukF8UoY9yS7kncpTgAim/XsoHWft5Bv4mfasiWwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-8N7AI0E7NI4","dnsFqdn":"WIN-8N7AI0E7NI4"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-8N7AI0E7NI4rlpkz_e2etest","name":"WIN-8N7AI0E7NI4rlpkz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d3eb34d-1e0f-4e5a-bcb3-dd287afd5b4b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-8N7AI0E7NI4","machineFqdn":"WIN-8N7AI0E7NI4","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-8N7AI0E7NI4"},"vmId":"2db3167f-4807-4d76-a61b-0be37cef12e6","vmUuid":"C5859E41-223B-4589-92D0-29B6E86042A2","clientPublicKey":"MIIBCgKCAQEAzrXB/3JR2+xB8O1PNHH0JD3VKdqIONZYIxo5/skXiOA5Ivr1r2pgeJN9peE675AwELFj0IpXNv3JkjjrzD/9Nz8f3QUH6xOw5dr61QnFnLdOYYCuOGiU99G5t4mv4HeFur8aY3qfxwcv8tciHLXtvumIIFtyh0pPBTDmzEKZYGtTS/WJT0vjuH6zDncyM91C7vc9ekQvXCykY+IdKvldWAflG0ZiJHG8YlwEOzK3q4mrZ5074pkgQ7G2rsGFJEnP1TJoe0BV5vsmJy/JbJh6q2WzX9/onHgoZcruxEgNYJMKUPGcFc/RTDmRGDpJQB3t0jymKNk2f91BxmxylMxJLQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-8N7AI0E7NI4","dnsFqdn":"WIN-8N7AI0E7NI4"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1eaus0_e2etest","name":"George2-Win12-1eaus0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3494b4a-74c8-4454-a602-1e834e7d688b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"76d0f85c-0de9-4ead-a262-4e953dcf5d19","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0Z7faRBNbu/MFppf/4JCfA0Jspra/YayX7EJeh2ChpP0lezFB2/D3vl4xY50PJa73QZtcdo+tPC5cdoH5scev5la+pcHpV46aUNkzZ3oGkHzgzaG41tfrA3T7S5CcXCoOtc23E5Nqs2VcVNYd6Jp+u4axOiPR7UDLIsKZBEoykJTaebcD/o2Eh8d+Pl4S5dJLVM98IJ39ptBuGYdV8a5xjYjcxVAurqSLwoaEeKjB9be5NU42tdpcJ/ECWYoaxNmPNr7Cx9FT/mnmBq5SFc5VbGqqLqQrYT8xV52XZGJPqBRM6Py33jpr+0FCQO1/T4vtqX0tltH5AP/wtywAHHuYQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1uvj67_e2etest","name":"George2-Win12-1uvj67_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b5bffb8d-680a-49a8-8d9e-3836a2ede5dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"59f23e4e-67db-4eb0-a3d7-d7bdae5d320a","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0/8ottXPCpqcPBUbO4nmtFJFEQ4Off8mTCc8tD6MyVzNP4bHYDE4ZLwpZJobNnRHVMAP6GE4sOR5hsVpkZm8mgXXnCd+Qg7HF4/82tm4S2yXbUJYtSAhVrU6Z2Pq8XX7VGITRHbxm2x6p3zPOaT0/U8c2J6rPKK7p4kTkLuuNHH647NDrXIAxSvg6MCxe/cPpuk9fQx72g/47fo+RGJLk2GTeXm/LKWPv1m6gHMgNoXnoBYSyR5lr11tGZvuyc9+eqt9mueSTxE+lttC2q0FGj8/kIEC4DBjl9jYZDUGDnNEJqsLStKPiffJbeEDugwrqMQhRpP6CVGxDho8vMgo2QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_CENTOS8","name":"0.8.20132.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39e93cdf-85b2-4627-8a09-4bbb2035a2de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"d5350685-3706-4690-8462-507b3f503a0e","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAwTtBkQ08YPZe7HZwOb+W7kIFCJ+/Vzlumv1EeBqUD1D+8zwjwK3UcSR55VhJJYfZb3pnP28RLtiiX9WrB8X06At1K/5pa8SPOQKMidnmk07p0A9hbCSPAr/92P2VP9m9k3CzbCyq4ZzvqbOrJytvD0MUljLfHzGswI9tJneJzySCxqRpTLFXP5/0tuDOaN8gLoZ7ImJ8ZgirlODZ1VOuhCC6wPO1aOwq7iGgcV1VTU9X0btFqWvFfDP6eMGBoKS7BuswJ037qoXSFnGqsj5VlshWrvxs07uDW/30ZvIFmo6lTGrMiQs7yiXfblIzfT9BP62r08Fgky9lDfw4dFQViwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002","name":"0.8.20132.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ef0734f0-9e78-453e-a866-771209740eb9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"387c6e7c-5b87-4de3-9738-8f450c31b903","vmUuid":"C2BA7E28-B235-294F-A1E4-563E14226B1E","clientPublicKey":"MIIBCgKCAQEAxzNZX5p38wtkxMC3x62tkRCcsv58jKhtuSEdJX484LV5Zxr+43dC9JH0IV+Op8aJFnRB525dOGmCmQHbVqCHasUTLJ0PsJrAoAltG67aFKthUWs/lsRhvbQwTDFIUIRX/TuzDx79FieghTtwhGCY0D4hU0kROsGYOE+OU+j6fMtW0JgXM4iejqZDorX0tWZvsWXsVcAciOKuCgHeuwOiC/FIQNDaT7Kk+IdFlM6JeUOMfrPWZhO1ufjVpbQpd8T6njxa2CXl6g+YLJM96U4OWMYD25UdOcqhMZuHGhKyA1Mn7IYJI11Vwk0BXs7AoeWOz0XspkBFXPJDrbHCkUt52wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.vacfwbfucjge3ocqqcpybczljf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003","name":"0.8.20132.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a3f6aaf8-1667-4274-8c7a-5dbb8ee66c16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"cf1e655b-f7b9-4adc-bc84-2d0f09624b56","vmUuid":"1D1CF3F3-089F-604A-B40D-04624F77E29C","clientPublicKey":"MIIBCgKCAQEAwA2/7tJtjehWDGWPUeIYStbpLGsYS0FMFzDdIvDMV6qF7N05T4dobHi8LZrDRTbAQPCoDgeJ0Q3ACNdIi+5O6Q6uwg5p4q0BILZDNdo2qY4CypLsREnIqt7GV6dxfXjNYKo05PdsIcpQNZaOLPLxtdi5Ff0/eExRzWotDUcxKqJynV6WT56OBKHTryslNRqWRGZ0/WuVwu5TC2CjnNnsnxBrJ/W9N/NDsL9PemvgtarWtAjMiNOghfyXifVNaxTZZ8jRP7iNvZ1voLtD3pdjxhYqwmoXYqgcw+c/OIOvc1Uh6F2SO6AADegd4WlbkI2aMk/n783kBf1+weUSo1XGuQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.j00ifzopav0u1gr5crzbvxqzxc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_RHEL7","name":"0.8.20132.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3f98ca0f-5857-4f17-9a50-67624e73f088","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"55647cd2-a886-4d69-8569-c3d466e7bee9","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA74Uun1dU8kkk1ijGU9p8kL0JX4RKItyTpEpKzYK3hFoWuVn6EE0/4h+pQWr9kD5zuEp9VjsoZvG8uurJ8nmlT++OG63HA6N8hal+yMY7NdLVvXGBOZJHAeDtjb5F0UGnLmJ+woyXSRO/hUJFOA0ZFySdbu9RotgL0Voj4c42NE1QS1KpdQ1EdLM27vEEt4pwens98WKzjzwJ8DnCk4uHxlOjXH7GKiSBLQ8UqEniOPok6bx7lmPjZJVejQ1+lxKjlBKnH1OvdXKlsf0irTgk5DxN33ESrBVaN1Z056gdOq2g+mCrWcLuE84LKvVU/60jOd6Y6vfazar3tBaRLbZgjQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_SLES15","name":"0.8.20132.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e05e3828-9ba4-48f6-8274-9e8d1b56356e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"45088455-9f1f-4f70-999c-5ad0d84a4b56","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwDj3rhQGSjLoGf1XUQUt0oBmZxh+uW6JrByKAJ35C223h1blXNPjXJROuggpipSPrRQedh5gGw2K9FQWM8+q1cWd32t5Bel8b8asy3QcFkBnTZxF7NYLmzmgvBj9sCZ8J24T/05IXDdYNuMb47WxPk6F+GFBWM8POZw7XOgXuVfD6UFageQ73WJPxlbECsNTrByC0rTZvo0R2wv7O1HKYr/PyFF/Qxj0p3ch22rB9GEJd/2vrR9UvhcIJjflcsrHklRavyf7a4yMCerwvSQ+BPfvy6w4y0+5tYYVV7ZH3P3dlWrq3Du3NOVAOdQ3CA6VZwsQX3A/q6jf1+zjrrMrWQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_AMAZON2","name":"0.8.20132.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f03de612-6b9d-4144-b1ad-da61c7df27a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"284058e6-d8d5-44d3-bf5e-f5b6ea11a069","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAvAnxx58JY+j8/77zMdiHxViElzbAIkClXPrsOMAyOMljoADLQ2GUI61uhCMFc+7WEsaDQTHPoe7kAtlPGSB/BYrk2q7AdW8WEQQFau9+UV1oe0jBCLBpwE/+6n+qjqmi738wttwtV9zhZAbTb3SvgVbzFvw78+fgGI5mQnkMeCE6OoUP/nI4Mzjhx9ABwo6+I4x6Hk1t9rjzQbtyYCwauSSvhoqokIldytPULCYsbA5W7rvT8AD/xunfXaTbRL5U80/nPcua/EnLTCCvGx7B8pYCs0ZX9e3xWpidSK0LGM8HkYhdXGzjCrF7yDPGajnJxxmOVdV8EdtzICJARGcJsQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1upv46_e2etest","name":"George2-SLES15-1upv46_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3490e9f4-978d-4ca0-afcd-d92fee5e3160","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"cf8d7415-bc09-46b5-92d2-f9bb05de32b5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAv+Rphp4eTod2kahBK+NxnEDAqA6/I35xjZpoI0S4CZvL4iDSCwtk2e+C+8JJuNAgWEsOk7DvVRFGBfjdGiTLVyhzgnMTOWcoMTBsVjVIVPiC9kJAr2eSe1rK8YrKdF8VOm5NqUrfbDWMmCDkJA0sMYA3Jb5xSZvX+CHMi/yzJrEeVmkOD8I9R9s8jnOzydqSKhiuB663mBBD1lealttO8/Huw/EbEpVWN69CmSVmW0M4Cc6RlNKEHMvqqxocCZa9Z1F5ifQaW5wlSqjbSCfaYoLCkbuqswrrNNcaOhTDDdF7e7cYVf7bIKm96dwFjk11H/ZBL2oxPWSr35BYTZ4RswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internrozna_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internrozna_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d6150de4-f622-4347-a734-0a904f3c78bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"97ceea4f-4f47-40cf-a870-e4ea7e3d7f68","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAwWK+KHnlREPwCIo8CR47d7fOM9TpT+BsT91kO8JRajvwRoAyfBcvJlkQUNvHsv4th17WfGuFKgeFspRt7dHs+ZCL0c8S7n8O7MqfzPaiZkw0aEdplC3RyD4rs/Q52FKliUpzHegQMfu/dgIkujOTym//5cAsi4XUEfmoOFNLeRmGHYIsUdrAu1VQ5ztgRgC+huBG/EN5pd78EbK7oXc7/PqnxIqlF+W7UO28OnKjP79CJzKrdjMPJIW3T95cVR8XyWeicccCTSkhuCAXURHKP+GK8T+o2JAqX5EYIxpGXzifCUcUWFuhy9ymju6e1Y0xPC22gdO+0k+B9CcWf8pS4wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8904cq_e2etest","name":"WIN-02FU1ULEJJ8904cq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5ef2caac-b85b-4ae2-b1f6-30936633ca35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"70e1bada-9984-435f-aa86-bf93c76dda03","vmUuid":"74A418EA-E422-4F3D-80F3-A27EFF134897","clientPublicKey":"MIIBCgKCAQEAoMxSCygnr1P7HcOtHKFKG8U6x7i1El4EpDBXM3lil1eMSfeYbHI/shkeONSggkrxZTASmLrLnBlb7zRpTU5ICbEKxqQnU7Ril0LPEAvBTHhUNedpkRVvBUO2tdJSgKY9oAiu9ZcSYND9QlXu5I9GfZcvEfAK0ppr0+dAkBXVHR155SLpgVgkmEsBa/3T0xZgI01dt5zBkKFqAPlW9Szzcz1bXK4CdIgEXwXDgxntb7+cNSGTMYuMx0AjksOnU16vdCamVPCZHIf3S9MAFLJQ8wgyprBoJvAjpAEY5rlev3eIel7+1GkYEe/KW+VOIaFE4gTAsSeNvQr/1PoFW1Fv6wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8z8yb1_e2etest","name":"WIN-02FU1ULEJJ8z8yb1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0e945d2-a5af-443c-9c21-12625ca3627a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"698c63ef-d0c2-4bd5-a11f-516547201e31","vmUuid":"74A418EA-E422-4F3D-80F3-A27EFF134897","clientPublicKey":"MIIBCgKCAQEApXHJ04xLKtM5Tx3JkJBkUl6bCgl4we2qmDaLXirXvGlic1tFvvk7aID6Yblj7N50s9fnAPTBySDE7Ae6On5VxejtTr8PJsXVvwM3pT+KFsF6N3B4LgfOeegl+mV5Q89j8q5xXjnNnhqkCbJlGrJhF4pUnJclaNxmFPTcJ37zMg2K3A69YvPgUsurV6maUkTVQjiDZtJQ8owT5qJ9PUmdaw2i4HuSEnSDPXbxvxOBuMQll7uOHXIPCygACuj7h4SIluKuHV2+uZUo10+oeTrRxcYZOmrNqzd3xbpqo/b4gOx/0aBUMND2vDYfEgYc66J302K9ABYCCkM981vcxU2HRQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-14fskj_e2etest","name":"George2-Win12-14fskj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c51d7a79-c450-4755-8691-f0f9af9776fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"981516a6-6cfa-4f78-b303-b744f7697db3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAqqiz1CYitN9N8rYVybynJ8czx/xO2znwtqc4mIMAI7v7aZhRMO4W4aaROPM4V3CUGyVvE7zftL/YoWlBaknjsZOJBY2tZpChbWVKy+F7zXM0E+WIhRaOMe0TN6UtYwdqAETZ8FINNEIXN4UgSYO6CD1J/oWVl7uueQEIc6jJNzVd5AKXppGrUijrp7mM28YirA6c6ZnqhSZULIbCz/ie1dD57Wwv9vlXdLyuS2lXdnMUx14UWrHNrXxw1jzJUAZi9OpsWue119acuTNmnIq4tQ6curzgXHq/Sa8AD/0FKT2YG1a4c+6LGm5EQPeAfJexvgVUwjoF/nMm90yTJMp4jQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-12lrcd_e2etest","name":"George2-Win12-12lrcd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab3f7557-56d2-40c9-b0dc-f83c616ff509","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f933867f-5131-46fe-a8df-76070e6a4dbc","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAw/S6yqipC/FvWgHL3RsIHnyS1Nc88AT4w+K+9uTvLwxSKm2GWzTweC/sZcgDOdoFTWa+pjJNDmfd0Mv00xTxW3/nk6ejuyJ4GhxhrPqfu9H6As4j89w62o4IK25+tyDZKgIGV68096gUiDbWp0YxIKz/5eVlfOvOu7K3zk4J9jruS4Rmzwkwklw7zLz7iNbXAIxmj0WwTFlCq03lu1bw9qdMJLG6yHR+GpebkM9ke1QQ1InodOl4lSxjRVcbegE77SgMPPd2xETvERmnFGNtjYLpdgUIHDV0LfTK/X24gfohu1UczV+JYExI3zIxWzGN2yak+HZOnkJlre8SbxhtvQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qouvy_e2etest","name":"George2-Win12-1qouvy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b6288677-9168-496a-9c18-72a39ed50e7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"03a29982-9edd-4474-aa2d-04ab6cbb8311","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAtN47Ld+y/l4uNorbX8o4JqA00ZAdac6EHFll8zbru+yrGw8IPMHosRkucwY3t8n2fq95lzVqTywa+Oa8j9w0pMxmgaRvj2lrOfm5aH3cDJqrqVYGpdxhAhp0LlCU+i1TvHZQIgslLvC4bAOLEOZUHd9CNZxoUHthyEm4f99ndV03CNBPJBubUCn7enLFj4HPex7fyvYcjR99xpkD3elTTGkNa1vpeK1hK4ebofzE8zIxbt9vBu5xh1JRyYQ9S+aMQl30AnQmhbyewWn4/szT7PRGXkbuognI2+Yk3Ai+Z7fmq7TBzXU6ZU9Pm0T0++GJODLYnxBb6OibvmuoiiIV3wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1v958t_e2etest","name":"George2-Win12-1v958t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"916d0211-7d99-4f43-a3a4-0d29f197b3f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"b2574619-ae24-4d59-95cf-241e06ec6b91","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA1mZjj6g2QApu1lNmYaARgEGa4JkcSJxMCNzDgd44pT7fkK+1wTfNgOizXHRhQilZYguAnG7bnXw169jjm6nLD9bAAdaLim4CrEmtIoVWK4Piw+lnjxEBz8kp6fWDhWTNU0Hyr7fkBfm7iGmVFvlr38LEJAdj+p0TitLuGpS31rHLmdEMPjZNPCe5qE5KgiQ6SCA9rE38nB3WqCJlwY/YUJ/0uA87/3+SUdV5wQ+31xPc/w19YyIad2Gs2wt+XCxc6JZGwDmnpHEZh8UTTFpjuCYZWeOrNkSehC4aF/bqXiB9tC8JxVVFDCm/D1ALjvSI1+UfyUtLL5p45m3hPF+yWwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_CENTOS8","name":"0.8.20132.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"83795b92-73a7-4842-98ab-e4fab5f48acf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"774e8a4a-712b-49c1-bafc-391f93e09631","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArjwXbPEHZs93QOfZqBWuj78EP8yWzkgSdWmXJSle+97k6wkOh5tyw2/3Zw6K2iTATtFgbxZuagL5a4D/CRHWWXazgyxce6YZRgQDtWsyNa8Goflsnb7eu/YlMWUfoRyvR3u1mpsPhfkP9DsNnTk0Dmp6fQC0BlzQVh+ym9GpyAbFjp3dWOYOyVdxFtC8Yu/98bIpTurMhxMGN8dTyYPGYOODC9DM9exU9zqg5KRn8STQig9m5xtqyoC386xjLkZSdnIaD2+fn+yDBI54NB3H1roBSr1gvPSSsnhC+Z+kXxmH2S4+o0FPXjrFQdRmi3kboGo8FD+slBO4fkU8v/mbWQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_RHEL7","name":"0.8.20132.004_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e905340c-f1a7-488d-bec9-7b2ff01e1f4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"08db830d-7672-4815-a778-b1de59c7a68b","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtI/CVJ/Kv1m+zEh8lvXU08cViWZ4q/wN+u2no/w2nrEV3RLCSV3eKo5LBS3/066t7XG3dCyqyXtB90eDVhCalI+79MqLmGZGVhtmrLqj1s0kh6ofaWA2szFh/Luues8Yl6FbSspENOKsCVIqTTueSLl+KpsOqk73WkIZh9vJmYoxkNgiAWJ3Vf1666vGFyLB9L1g1np1BnwTw3zEzaMLrfFI0rAUOKuJ/vSXYSuXJIEwNzkUJiky1yTgStkTnIGEBiZxZpmjsZbb66JEVtk2F0fL2lAEu/3YkXvPqHrVWaETH5JCuoxIBtgjcZa4g5Oua1oY3BAnfP7Nkh28we1URQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_SLES15","name":"0.8.20132.004_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61a623ea-1c59-4269-aa96-6d2983c56161","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ddff1d10-741f-4586-a6ff-2a346709aca5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAqZFtUkGbT0HkmkrwFEtPaVTNtQ6dXl8Lyrpn6M/+z5hd/QzrPn7lg2XZMGZdk/O1DC7Dpki24lUucwS4gIBvpaKIbuTmcQ+E3W1IJTr+S1pOskf6oytzvc+61BBGrXVi2+b0mcTRWyp/ku//zliDcSJ/+HVHkKqPel7N93TWTXPfqbdfcXj7Nsv51/OePu5aVif/3GQT3axeSGUqO24hWMDMKlOUQJegtiz6ms83AJdNf+O/791b3s4l4a93x2zV22sTw07v1xvobos3rvrPzsBNt6GdjBc/7KNfcm9TXtFu1od844drMzI+2CM5jp6HgEwZA4hl+XAorzMLmthZlQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_AMAZON2","name":"0.8.20132.004_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d366390-130d-4301-a73d-932a2ffd1c30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"ac3debc8-23e6-4d01-923f-96190f4656f2","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAr7zpo/1oNXl5n2TDvroifWnXNhmTaaFc8OuHzRHRAH0rXWeI+6s5hzu21X2IXbkyIFchhPm5OQixK5tahxALl0KWmii+4p42PdQStoQpfsYt7mDfZBC3NNYct//JUCTwphFnLqbEHqEFtIzk77v3V+XbZImhTokLTXPlylMef1s+P7d7NEuEv5p4LL6LNhKTHW6IK3FKKav8vhj3JMby1NcoX7eagbgHdT9iXgBDzUQAKSjefV3d6ZKr1jb54A0h2f3BGh59jqMM9ob058es3XEI6foziemEdr9YyW09zGiXJTbuYS2wUWHTbI8aPEz9OavJ0pCU2sYy0DoUJU3/kwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1fkdc0_e2etest","name":"George2-SLES15-1fkdc0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"163fe101-33ce-4327-9fbd-5b6eac0a985c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ac8b381c-2636-4c51-8bf8-f855c4ed7588","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAr/6WCXIN/Ri+/p7O5HbEDe+kintAhclVf0W0a1FASXxe2hMgANG5EdeGZWNsYMhb2ad+ymX8/hS4/mSd4SM+YLg7v6m6Gysc2G14LxtT+8eDRAOINtZoA1C1aX0V0E1gk9fr8eiDt1RkBTWQVsgwyvHyxQYw5+oEAq95SZ51GVxhnwayWLI7KXvr+yju02RUgGkFhsewRYDlKqPcjIytU+/UrgFvXA0d4ncQ2hdSP5Pr9x1Z70h4AmfT4yZ9QMUIQsGMywub0SX6CgVeqKa5v0zTTTyVhC+M85RKZjdo/87kWkeBVnxe9Kl3rPCBSSWB26ygKTx6I8gs5aPYynF20wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern7it6n_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern7it6n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8358ac55-da1d-48f3-bb53-0e119b8c9710","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8c40d3a1-d43d-4ff1-af3d-4a53d54926e4","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA2eyu4APViRvngh94GeHgfgU78kp9GbAVHvhbgodZ0bIh9SJl5+xwd+mXk+VvRxbFQmQuXGUEXZR1Tr3Tpd2gVRmJHaavaVVN8EJ1RKuh5CUONpjRI/1YBYl4JxU1Ka+XLzGEAZNPBDm3P1NU6CPs7KRa/gTs7Epm6wpd1IqcPVPGbibzBMsPiQcFuXvD5f0aieCzdBzdUUI7wmOqXFVstMxil+9dPUVYJ1HzWuaLCA5SZ3FEVubyMEKNR0h57u22C1PkC6XVJOp50GI0hsAyNqQH8Sh0jte2kE5+PFDJqiVk5Hf82WaA8kOQnoo6oedPjuAif0CUwzqkjbfYEzO/jwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004","name":"0.8.20132.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e108567a-1aa5-421e-b1ee-ec7fe0d6dff2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az408"},"vmId":"6a3cb0aa-e6b5-481d-ab83-8328ce1f1cc9","vmUuid":"5CEC16C9-7CBC-F249-8BDA-2883D00CA0DE","clientPublicKey":"MIIBCgKCAQEAzudBF+FJISzlU2Xya4GT9mtXRSZ0RyBJvZFNb6fg0yJhRYVsXWsKniy2srn6lsuqRPwW2b5kHiBunOcM0e2YRnX7HvroUyohOKK0T+aXl2DL1R+VcabPhFjBrXb/SMwURH2X6cflGgZ7mbxo432kaMYKZvmlnCh12kBN97QGwJLpa7G6Y/tbu41vwA584mMPSY3bJ5lDMLuqfQ18EZYxhSEEMP3D1/YjK+Y+Ekr4j1UYTcmMJbZrgdEnMyNebWpUGp8BBjecIL4hnm2+5bxQvVQjZLk7mBjVdbHlCCyFXbSWaybwlqlmPD1MX+aNqgYgQmYTXOAT/XJN43EUsT8Q/wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az408.4k0o2epyryaezbzsyjzfdcfrjb.gx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8vs0up_e2etest","name":"WIN-02FU1ULEJJ8vs0up_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6c559a0a-6ca5-4b3d-a5e3-3514bff16f22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"384a1f32-2177-4569-8c02-ade0abd16c67","vmUuid":"466F7451-2E27-4839-BBB1-3FB815D2A040","clientPublicKey":"MIIBCgKCAQEAttWCU+UckObeaGMt9TZGA2ZeX6NL09rJLPueLHhDcBmkoQEp4y2OpQm6v4doFv0GArueSCca7QZ2FBVJosCkmgIIupX+3J1FVZd0N8d0HaDg9AFC5VkLqB2FanLtRQBT6yE5BRa2lx8HJqMgy9U7f0UGi3nx0zIEAGxmiqzSacxqsdPIg7tXIyB0UccFrHhsG4u2UIxVmaMrDzTeutCXP0Mg+OqIhilO5+a+QFycsf9AOM9gi7FRzUerM45xhVvqfDJapJqzGz8hJNILwMuuX7ftHDBkBndMYACDE9hzgINBmMLLO7iSEiKxW9hWZlqkgX/L/ZHN7JlG/gMx03xthQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8gi50b_e2etest","name":"WIN-02FU1ULEJJ8gi50b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3d477249-6d94-49b9-95de-1866fbad8e85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"87f7d102-501d-4bfa-9e3b-512e996ed9fa","vmUuid":"466F7451-2E27-4839-BBB1-3FB815D2A040","clientPublicKey":"MIIBCgKCAQEArwF20VXHF8e1RvtTCvvg1sU3JpHFldWeLCZEz5tDKOHpq6GZJZexWOn4eLm2neiIvSUYoMWUvlhAXUCA2zbaxQ7cAqQgmFxMx2HAJ5QVQ8nSVt5jcy1zBagGUPMpCbfXyGJ6XxsJlmeG/DxxTzbyqDhwt7Ou6EqTh9rK01mjmFvj0lSbsbvKq3ypptkgl4eXygPDRgTlYkcfqg/1rYXM7jRAM6i6E3kjTTQ1BE9EJzqk3MYu3zcQszqbu6wrp4a81LkrtAr4y4WHSWHAo9YKyQIVILHS6D+EFHxNy2Y7PQmDhpWPAvLwHA22GEKHq92NxJBhhY9wPrvqtmwVPSx41wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_CENTOS8","name":"0.8.20132.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4f4ffa6-0066-4855-9a51-80e620805020","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"8b210f52-55e9-40f9-a5d8-71b86d45b7af","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvqgvWvd7dAw8m6hg3gLJeOxvnp1S91n4p322QpIAGpD5hrG8HpiNRukogYsza/ahRowY80U3YPd53TaBBwqnC8SF00AUEjm09nuFKxQTriJ8GuwopI3N6VgjvGRn4SKWPfSd04nn3i2Rm4evRmnLCRlWWvpNUtohyQ38SHmz7huXyIwGyr6IhLOXINh4EnkUn2Hz2pN2NwQKNlVtlpsW6490pi8qV+JtpTNIXRWuPcb+aXSHyHDSTfWiJKA4W/TPXNSCS/fj6M1gM84evS4nyJy9hIV/6vr09tbrIyakTpvEjfT/B2MVdcYFnOWbid5dktcdUSWXEGVVotBf8U3IjQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1bciu4_e2etest","name":"George2-Win12-1bciu4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"567503f2-9293-4f80-a18a-2157848c48c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"82beed98-65e2-42c0-86ba-053310fe571e","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAvIKGfHEUeXXFjrjGD/Mwf0CM39cGep4pHYFugT2A6cl1iSwhaZfSCssT6g/HxN0utPVqUl555P9f9nGOCaZACsBSuBlJ+gkYeZkn7begF564ZmytdUQN+iDW8G8kDRAMI3CLbkrtQC+sos8c5ng3Gxn1H/qOt2Xm7jbtOavghYBPFcFiS5ioFBlsnErbqHqz6I51pyFuUWXc//Eu/b5F5CShnqUmToG0gwRaxndyxu4bQpKihRtYQEvrlGezkzNrBXoylviAZv56SxVNmR+WKCHfJE1Ax+m7T6D6D6Y70TRLLIKWaINbrJbYaM2wpv/jiOlavKgj5oLc/dh+LCotjQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1c8lji_e2etest","name":"George2-Win12-1c8lji_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8ca96804-0712-4cb7-8ae1-93d879a2cbd0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"a58bc268-7341-4467-b088-0014b76f555f","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0h8oOAGqjOdnpxmDnZjh+2g6Wk9YlAH0TclS0YEFPXaP3grh5Gp0Hz0zT4TMqAcoTQz6R6IJBXoSZBg+TmdmNHPbkHUAN3OLG7eb9ivKVeaPL8ZQBuiglQHlZP97BabuTt96Nbj21BlvtuyKY8sznSAGuSRQVGqSfb1n3V8L88sU0PE5q77Kbq1/FkEnxociabdMVa7xYlrFhtKeOseHiHF74cMZ1PuxsiQGUK3rkXdSIJOu7hcrtQSBeGc4B8kcVmV2JEy3ljve8SvrSmmLJ+vvQW3wMfurCXqz7+pCM2MuA4hL3ss29qrmAIeOCEKrZpQmxLvuvh1wx5lO4+vzKQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_RHEL7","name":"0.8.20132.005_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dee3167a-7b92-466c-aaba-882aa8e658c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"559d8e1f-5240-4e2e-8eda-6507b0d355e2","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEArtiqAS4EFTkjbu/g3vzJ5HZ0xVPHUkZM2bp5Lpp9PhEzQTucawRTt+pc3q7n6p8Ck8vIbmTnsN8nyP004qFYWV+HTybK3GAbKE5KcTGF1FnMt5AYgyMv4L1vfXnyc4XtUk/Jb4TvA4dkUHeRr740qT9UlCY5FvHZ5koC6wWK1djDB//UXco9YDXisxIJsobU/PQ0o08k2TMM2eK4JXiXwIxyByNXYOw/Mwz0jEy3M65CNghO+ras0uwwZNS/2QS0zhtF9vtJMtEEC81EZXhpUGvzrFMtkA1hcGEJMbCCdCyni3YH/A8Glx99w9LGq2wvSjhasITRYny2XRHCXS9W8wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_SLES15","name":"0.8.20132.005_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f4f9b5b7-adb1-4023-be59-0b9ee35812ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"14ec7122-9949-4d04-a4a3-d674483acdc4","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAu58UqvSVbE0RhNZOheJLtO+4hFLOvYssrE8g3Di4I22EgFmq8vdbSKHpW/phrMaAB65Uus4xKaGULnUOo6c2gjWP9Gu2qpwN4CgwkOx33iiuFrAJWxBvBZASwWtxPcSk8jRUVpSMZpcmhkiHlc7P/FQfiODtgi5BOfqdj88kegxVqpl/goC5PBXKaXKgcxdEVMdk6n+hZyXgqpqbjxBSkKYwXEeKytOu9lDA7loCCCLUNd9Yc7c23i/hW9zaLpr3oiZcjYJGe6PcYnnhWUge5i6Q5yOAunLJg22NaFgwjcBKFcZMybzqARh8trjnQ6vNv9oqvUyAeo/FApGXZOYecwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_AMAZON2","name":"0.8.20132.005_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98631d1d-3182-41a6-bd00-108e6cdf1336","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"d2f05234-9936-455c-a007-83628c75fe17","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA3urhUDdPb0knNxiY/h9+pXNzhYOedx0gf+2ROCSbCNMjEvm0VZ8d3Q8SFZMt9ry6bqopzqK5mXafz2puYq+JDvm6HqJ+9ymjLFgEkGeWIazy0UP+pd8xRLu4yO2ipt3XEFta2WtJ36V77F/8R87+qH50qwhSgtV8x5kxgs7AkWfAssp7A00XQTlkUQvoJzdkm2aLqHBaW4E3c63jSoqVY8q6X4XkDX7rHnvRA0QyLC2VT5vMapmq2nB2+P4FcRMTfwt42m8i1hJgPl/lZ9aYStD1jOY+uKvueZ27QIpiyotDgrvjI5mxYBhYUf6FXbuw1LwBzRBILNnPgVniwURlQQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internnks2w_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internnks2w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"643acab7-e743-4aa7-a66f-3f74bbee33a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"983b2492-3b4b-423d-aa2d-19b359d31ff5","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAtaHP2HDPCSCIF9cx2bCYcxIWGVS/78gPzhgrabVrstkn/CtPaN/RYWbvOXe91G1LJWvV3kRF0aHj5C30WVZ1qlyOnr+4NszbXZzLDSR1/an/3CZ9ChTEskTo1E8qJV2DED5BeuWqVaHFwFVcRD/NYL4l/GNnlfjFDoZWo92BFc2j2go5A5EncuBJDaCZPF9dEsyIjMb38jUms/yoo54CspSXmnw5qSV5d3rKJXljqvfyUTAh53Nv5uYbjy9CaQjt8W49DgG6sHeh8y1mRv/Orz3VPIdIkZkzNVQMAmqum2uaOI92gH+mblPALRX1cjnuBWnOtStLbWNkqt84Wd2eJwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-12gjoy_e2etest","name":"George2-SLES15-12gjoy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c845b6c-24ae-42b6-b04e-a396456e3ce1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"26701144-1954-4766-b9b2-146426695855","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAuFu5tqsMvNeCJEZkeRXJd+QKszFKd1NDDa7J87WjIzgCIsaiizow1Hj71jB6LXAr54fbKmmj/+4uqY7NY1wWiZTvaxCDKQ5liMlalTnB/rt0Tnmd2v1Yj4E+xz6NhEoJYRTNQzflUBVJ2vHBNeyREVPXHjduDogoxSIPNFIYC+myoUahKVSkF0+ZUVraKBt0eYoDkM9FQiSeCrbeZCAuQ2yO9BTGil9zIHrNQy0hKPG0q3by1DD16jx+UUgJoLwwjpONsiIOiQyyByI6sNxAq5HMAZ+Y2kCYKwEGvsZUvjTBNBzlQBunKyGp/G3sOmjK4/0iDMpcAl4SvmmuMktAfQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_CENTOS8","name":"0.8.20132.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"83144a79-02bc-4fce-b4f0-bf129b3c10b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"a12c4e1b-0009-4cad-9c0e-3c59d6f56540","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArZyDoBvqEJQsTX1OuoTm8+LHa+/VTqeVUZP4lX2vv5Bv6XoQ9VHA+vFxTSBPAaFvQMn+HCVTNpKzehPx//qitz1H7e/Dm0RpN1dXyfQKPhPtXoEyIxtklYKzLprXpXP0RLnGHTw4rtEubdbXckDOBbVyA4nKd/nUEyNmObBvYaNo2ssw0gh14QH7E+QN53/66Ov30yfxFHSKNWryw+oelutE2b6C+gO72LHYWF3Rp96i4aJKsi18CYnNoiv54gkLDn0WcLpt1ThpYiennQCnqDdOwK8/ja8uhLrLWZcWHSzsaNYFislSAfDk9PhRVqa5xJ9r/LCwVMcBb3RE/xol5QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005","name":"0.8.20132.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4391b1a1-eb9b-4691-ba69-775777d9008b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7b8c41fc-e52f-44af-90d4-e6bbd7361d42","vmUuid":"F04BFC72-B075-6542-8A28-571BC8DDB5AE","clientPublicKey":"MIIBCgKCAQEA7EyFaGtT9mWqrGu2FhaTlbfrc/WcPBeAz4uqnpUSZvD3OimSRsbXc5RqAP1ag/hStIAysloYIhNYNaeXZVEku9FHFVqlNonkjeA0VbgmUM1GyQFqwzd6BZBKqFPGyf2mczKpPc0M77bqiP6qtRFtROYSS7ArDSGMAGrBs6H4IDDj1ISMoJq+Ygcgzetk7KI3T/EfdoR3xeAg6HsVlyMvMXeV1JwNSRckolLkmby7tIsZFUJbrHDiqxo7Ral4cA1RgaERqrBTUR5c9upnfLfpazaz9hcLY4NvxJhRmzUpYJFchLJadrgmyXNUSsS5FcRBP+lonwGrLnpTJ9hv12L4hwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.j13dj2sevrouljjtk1aaqegv4g.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_RHEL7","name":"0.8.20132.006_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5730798b-a5fd-46b8-bd54-dabafa785be0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"e091fa2a-f56e-4afb-9283-d8137150615e","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvQLQsNvfFv9zEq0yzA/xgaWr4ggRjIGJ9xiovZrEWNIQN6gTOC3qsl6Fm3Z/xCGsmE9TWJbHErRUDgn/gGtGSA69B/6J+j2zIwQmGx2fFClzNX62X5LvqdSM92lEXKyrNEs1pj5CJbVXKLZw4gJULr9SYNPqDDl9Mdb/yqEK0o1TlUBF0cXmBGStLpr0ZSv/3a58hwoSvcRuVSA+vZHCHeZcTfb4NHzGVjxfhQ984yYvz6J3r5mFMxDyTuvlTy11Z+d3OAvg9VtpadrLq2vE1PJvRI3ZnZnP1onj2TkXMQRHWzYCL42wnMPgLlOYvBRMpyVx9XEur3g8GmppEnmUEQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_SLES15","name":"0.8.20132.006_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e613b01-8231-4f22-8815-b14fe1d13cee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0025dd7a-94ea-42e3-99f9-2506a5803005","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvDoBF8e75LlLnDQfMQoO1bolu7efyzAaMDI7OywD6JLpxrxCgrqApqB4YI2dZa5LRciomVs44t5HDBK2fRmO0hVnElUe/kMqyLa2+Ud1YRNehPPhGE4CFfHBD5KKkcyslZgx0XqRgYAn5hP9ttxjdu4UEyEmd0aPGv4sfxfE7mvGXeQb4DvnWNatYSYMCSgJTy7e2QXLaUyyVWMHbX+p5g0wDzHYAmffsmJCZ12ZWhPAdMhpq8a7iy1/uod6GtQQ/fsEf9PA8I9mvzAkvk0LfDPoZ7AVNqHMdlPYv0iP0a8EXeNroRf//PK0AMPWx/zOSnc2YwKJYIoF9Xj6aiMzEQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_AMAZON2","name":"0.8.20132.006_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9f23790-51d1-4d9e-b962-9fc1eedaa9a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"5b57d319-427b-4130-8c94-5c536403a03d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAnGjHjTuszQMmUXSGfFP/l6q5jLQUb52QUVMC6jyjldWtTCAVSnAgVjg88J1EitWOpsFjyJw5kjxqhGwNgj+l8r5DaFPVWT+k1T4I1e9cOChXBnSHno19rwAthcOudmxJwuo8i5NDaE6C+SYCQnkOdagcgCzxSxmQiQ0xgFOL5C/mO+u+1JWx45yvSrNvC9LVbMprwE4NyhiO6QiSHwYIk+HyhuBb19XSz86AqNisjv71KxHHsFyoKHRJOkHXEdlVt48ec4F+dHKGBmj5Mc4pMqTAmQ9/wRR6MX/M+6EW0hM4Jl4CUS0ehoeSEDB+nd5JJL7wCt6yOBfu192EyfxAuQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1xwejo_e2etest","name":"George2-RHEL7-1xwejo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"602339eb-3648-4ae2-99ce-2202476748fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c7e0eae9-6105-407d-85bb-78eebc64876a","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA1aMdd3KmEZoxhgAGj0zY9DWGSdPmk71XV1PZ35YdYTN7ub1FIMNuTeXX/g3lKztgHFHH2R8v1TvJlETTNO/jzX59+Xl6kQ4Y6hQSVKdGo4dLT5i8O1cpYZs5HFwDcANzbQBiJg9lyctToG8HCRbz7B9LkZxCqVVFaGAMMNjnBqJxfUY13zBh2SYLTP7x1cBOMuJxOE6L6Qi3HlvkeA6iwAOvjbXTuucH62798A3EmIpDqtv8NpFEIkaZ6jAx7NGTLgw0XMUw7TV2duSbgdGunuuWVPPIbj8PQBvrvPbs2rim9Bhsnr1g1xnjwb6QUgFNuZcUbDviHjxnrC6SU9xbuQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internd3imk_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internd3imk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e597d99a-29bf-43fa-b31b-3298022fd38a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"768457b9-48b4-4eb7-a3a3-36c22c276c93","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA8aPoFMrWZiAeG6WY+x/68Q6DhV/RrZwkPCC7WPUKIxqNJsbg/Ytl+39AmSAiLy8TYbU16nCsjwg+Y/nIDlWspL68uvgDBypFa7sN2c9DOFduu1UoPf76txkscieukDltgGzOpcLzWwQ9tQGlmq5tjnd8PCDtZEWmpUoVwS3pUKEQgno5aQaTDTSuV7wV9i1oaCIfy60jP0uS03wI0aL8EtrzBD5YuepHV3GmwlGt7FJIIqdLWFn+XLuTPbihEf1rk6Rcb64nKhd85UJVJhAYpYCg5E2VwfoPnfS4OWDNs7j0+17gSzK/FHZYCx1tVJFmRPYI9K9UKO4tE7I1qiLphwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1niguj_e2etest","name":"George2-SLES15-1niguj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d7292370-99fa-4e66-89ea-ce13b0ce76dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f3c6b569-8dee-4cdf-b37a-2512f0a16863","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAsNL6EUfMtWcUjtX4cy7zwVT50qT2gw1OGsBCub9LyvYjF8hKbplaSuSlgS3kPlY3otf1gcdZ4nlrkFwO1v9gtIIhlWQVlLmB5xc16FHVubAOtVNR9KFjQBZLZ9K9sumbY8xPSYCtm00mLKJ4IYP7WrfH9ET5WJK8rw5oxylc6QF5gacCFIacOvLYb7BTPdGdoMXL5YJbK8QjX6gWdDmvV83NDKWkm++FCbqJj423QC8VCvgU+ev/N0doERe03bgNqOchP1BaWIEn3craNUsQkrofg2sbcGe83thTQ4Dp0n78MqYv0Q8AZtWgd1UehUF6vUeUZ2G9oy3BE3V1q2cS9wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006","name":"0.8.20132.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fe73114d-4aa1-43e9-977b-25bb802aaa39","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"3b591c06-5e53-4718-9e3e-00b9881bf2f4","vmUuid":"563F0D4E-E58C-A04B-ABD4-9A4818BFF51F","clientPublicKey":"MIIBCgKCAQEAsL83aMh6tLI+RgfnUTRdTwq3QfQRioK9hX8Bc9dIQNPXuwn7uSP8xvlr1VIj5YapCfrb12JGpDPxkHcj4etCTg00z5p4p/PH//RVd7pLpgIydAeBlv4mymCprWCjHN2/PdJxExgzkneVkope7b957da8f1+jeubG3np50G2F56Ty3HONbewHrvwxnjnowaIaEni7hPSibEPeiMQG/22fv3hBCFQvMSLEUjReocmoZi4mGvg0oZW9QV207zuZZOCtFr2EYB/gl0BWCAEzpkaPiFfNCZTe+101JFsfkf2KQTRO3kbYCPo/8aH8K361c3EzapDxcUmi3+dxHeD+glT5RwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.xodcrcmrbxaenejqqy1jbz5gec.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8z07ul_e2etest","name":"WIN-02FU1ULEJJ8z07ul_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d000bba6-47f9-463d-97c5-cd754ebbe7dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"3a0a7413-0b9f-4cae-921d-393dbda15eba","vmUuid":"EBA6E616-E35C-4069-BE7B-F5AC6FE85D25","clientPublicKey":"MIIBCgKCAQEAwuHvCyRiciPgOB56tVULJmwApYn+NxR64P2CGq3MS+RTF1tCPIxTVYlB7iaLEN1clR92EHvEebcvFRUAXMNC2Q+k7QU5iVQWF16OWWuw0zOSb5xjKVZC6CK9ifeYTchXEawOd7AL+HdyhMiyNPYq3qrzc3GH9t4NRs0Tw2dW5fQL/75rZ6LgVFgy8Wqwy76mq5jPI4yIl1b4ZtiE0FmxsxuK6DlrpZHMilkrZZc4WABJDznHQK23utzj7vbhN6IXtuGKfxmKfmQmFXQnsFK03vfOE2kCyZ1wY6t8dWqf34VJrOA87lkA8ltWpk+Ah11KpN14mYsjSedzqowQ6Y0QyQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_CENTOS8","name":"0.8.20132.007_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f30a0510-b22a-4a34-81b4-9f2a359ed618","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"e9c7c84d-cf7f-4ec8-a653-05d9ade3c137","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAu2rHX6uEUWndFVsw54GbFCo5QQxQIob3n3qxotjOPXz0mw2JK0Rtoroi/RjP2lSTF/GOu5b1Vrj7yWzvlyXF2UpZ2XSfKbEjf7+lG0t26GJIfnbpo/kRNdUWX1O5wLPMlyt1AlaHDmnJNX2P/cXwn3kHdYKXO1JyUBWJ18JR6rq56vpPrUf6rAXheHRZTdIIf4w2EVbJl/UkTiHCCFLwm7Hyqu27bXzjv1O26BvzYIeB6ZrYI7qafmi6NcWmZD9PWdH03fB7bOGFkjN2NhGGfcy1e/3s42onVwOwlLZagF4hoQUmYSZ/Ve4qNYjo98hXRGSZikdjV1jfVUmZVfutkwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8nhy84_e2etest","name":"WIN-02FU1ULEJJ8nhy84_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f0bca5a-5d5f-4fff-bebf-446109fcb4a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"ae0c1f59-19d2-46a5-9291-1a523271cb92","vmUuid":"EBA6E616-E35C-4069-BE7B-F5AC6FE85D25","clientPublicKey":"MIIBCgKCAQEApPelSz7apK68fKOfR8k39xdoiwE6BlKur8wI5dkJaU/W5frGKaicvSmced1UrH3QCWNwZJIHpOeaC6Uwf/QgMrIaYAKhtUzNPTjMD8Zi0XIWa+eWieAaNeW3omQRG43ULBzqqo1vDDHn8oHrqaAS8OcOQukOB5kkPYz3QodVA2cL/lOTFNGJTK3+jG4fSpZi+QbIS6LA5Q5FPtP8FysviVqWS7CSEVCi/brx98/BeIfGDaHqmjAlsS7UaJK3QM5ttnHkmvNl2MntMXcxk/OkzCa2pYImyxP/NQqe/0NneiwvXH5YOQi1RJalHlvYqsR1F5FhuOq/5Ofrtq5+3AuLwwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_RHEL7","name":"0.8.20132.007_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1d121182-4d47-470e-8f78-56c6a29d9622","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c2916255-df88-4ed3-a3b5-5184c795c728","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA24wIXzAF7ntoHCkf5XcwpxNxf2sf4SVsgphFEhtaB+M6RUEOJ0YmRWK0TVvMENf81eP1cCBjiN7beH1Tp/jNw7ws1ekwxyzBdyqOYwP+wP58Tb5pjQSaI1N4Wb5egftFbKzK2fymCVBvY7Jzd0ieQUvafdj4KVIDOsYR99UD0cbMRZ/boL0ajuas2tGeQ1dR5MyJF+VPGkZKmWzrjTnfbsXc4ptJEm5kmNGGUhIwIkkprvBgIhBq3bGgWwzlSsakQoFJPcMe+Mofoum02tBKwAiiQ6rTO4bzsKYWwKYDnovowVlVvn5uYP1sb/5gC12ydJaAfKzGMkg0dYDzth8QdwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_SLES15","name":"0.8.20132.007_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0f3ebfa8-d08c-44ee-b83f-a12998a9ba17","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"6556056a-cac0-46f7-a481-6034c16cd4d6","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA7JT4Y6IpD3bzuZD2wsyWFcUj4MTxko255PdE0j0TY3K4NZfDmK9iGbHJtCvqII7erx2EIoB6qIIRS19XAOHVuzY2EUPJYGO004E4jk6s+VQ/lb8P6qh07O/ui4ROxm4LmS0dKJ9vw7wnuuD2pJJ7eSQmIUhfO4Hjdm6fkX2N4+H4jZlj9A6V6VweCNGOeqnTCPu7i0UeEzoXKYpvrNDW/hH5Oxxv5gzRqvg+SZqM1/KrqF+yQNcKZyWAFvW/Uwcnw6oBJj5rpx7pUSZXPWfCaM/aa02B3GN8s+IjS/vELtyqyVKRBW0UjjoWc0wjYRzn9NetPQ82ls9A+2WkZC/pfQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_AMAZON2","name":"0.8.20132.007_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb1ee9b9-b7be-45b7-92d9-315ecd7167fc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"f31aaf77-b55e-4923-8d95-fb7e272773b0","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAza/pSyErE6RYWTwloVZsfeq0Sl8/vaDDlOxdYBzP84ckLfvCkXKlGztZEaP+Y4p0IUk5NiRpXoNl2vfGTXtRF5fG0f/3IFasMM0x+A/W377qdcMxkzGRcGEtUwxFYTadKWETF0xeNAqONcijjvIkb0+dzsQpua8IWTliqDDq4qHGc2Zt2U7bZcJJMkdSSjiztvWK99GuyztD6vQexZ8cdUOyXSc58uyksF5KQi89J3Iq11DONHBuecQUhlRk85tPEPOlT2vIKfnNliFc7PhweyYho64EAtAQ5YcVZD9wK/uZ3xiSPs8JRoNgcUUf2oyCI6OLGhmMt45xK0XxYqFx1QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1hy74q_e2etest","name":"George2-SLES15-1hy74q_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7944431a-6262-428a-82b0-411c295957dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ba9a5112-78d1-4730-aebd-665fd19a07a7","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAw3IjpPgJqoweh5xF3V0D4mdUK4nvBx2qLxqSqPRbdsVlS499yXTVLvYK6FIUr5XNWt36LVTvx8j7QFLDixWrDMNWioSNCnfa0ms02Kx+usz1aSJ8+KpZ9J4j9JWDoD29ITNNnwsalNAMehnvHwIi9OwUEHsBwFvZ+Hhv/hfvmPlcOlG8Ypt5EUMZRizkc4mW3owf75XY+1FyZvHUvygqfYvoMxR6lcEuXhucBzkbKEWLKLxY7WgA2LAkOH8K7JB2QsAGmP4hkKaWjVLGA5D4deYw72YRcztEMIzBQuCRU2CPrTEDDClfdHHVB3rYlAL9J5ZhKeyLxillZ/3FweP07QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internfj0tr_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internfj0tr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"972e0eb1-fda6-44bc-91c9-5c899aea9e42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"f50671fc-2be0-4043-a0bd-a71eaa1bca85","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA2KN/VyGT7uSwsVNyGqvsKkuYvhzd5TUrJJ76D9TbC0CvBCpz8fwrrp8lEilv1XzdyzAOEvWtQmMGfoC8RR5bFwRJioB9kPJYRF8Q85Sl8RYERv0rp0wAGlnJlQSlsrEe4jWUwTxyhRst7EpU2o6rBbYsqAvYTq0OoL58WHmdfw8n+X08F0eK5+X1kpwDATeu28VkHd+cTK/3w257fRfKaZwnn8jwyagkmJdW/tku+WyR9ELLNQM7HRr309SB/wLwjk0p1dFsRIBGF2RrWfxv4M+QS0I/o8rTRnQyNQnaFgkdba3doxA0rSCoeXLOfRSx88HYkt3gMLgr5kzW+vtwcwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-12tbfw_e2etest","name":"George2-Win12-12tbfw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c811de6b-9a93-4cd9-9055-25634cc59db1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"94eb4634-d86f-4d30-9946-e0053cc02fda","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAt5ucgc5U6o3aoZ6DtMY6beiSi7d23j3k1KVyWzkKIib+JF0oPxjL3sH2c8xiIOb1XTrdJha1e7B3WrqSkpY1n9mMtK2mdRToLfZ4DPNUvsSDg5fx0e/Bt1/L0Iw8wbMhY/0bUK0e2uRqxFyvzPRKK8sGVH08XOdeFOfsHzE0ZaLrF+kfxxFIl4PsZ653jRjhhwd7Psr+xsmJGY7NV8VN6mqekU2ez6W6MUZpXX6pgjcSbu5CfH+ZUO+FmHWDOhic1gs/S7XJSIOFuw3uEy/d4BtL0S+evIbDN94/XWPvrpV82d1VMs9R9AtGQ7/3ER/ei1Qq+Z6B8nvVFMK+SaZdSwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qs7zg_e2etest","name":"George2-Win12-1qs7zg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fb66b18e-b789-41d1-b9ae-ce4b48dde886","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8d56a022-26b9-4277-9649-19ce382d5408","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEArl8G02jegg1SDplMCWsMjhhpetjgS9LnJ1woCc6QSVCN8TRNWSfA7dwD868CL9SMvhsUGibfIQ2zS2NZTw+gltCB6VoCovmBSqdLTeABh61M4yDzWmnVhtJNuCK8uJSRgcR/quhUMHNO1sVGGw/vyAdN+SUu0NZkAYxP3SyXVzjqJhgCR44tkjCC0BoDcVqRsDsMXldoNzHERTRBY851zJpWvSIxYXkB58k1a5vtpbrMy5jY1zlxyKZRvzZrwn9fmbsxkj7PTfNF3E3V7Hqlq7dCQYRBrbR0DoMg8q4WhCjiYRzx9np0yHe5nPolD5rvdaOHXsGQvmaLO/1pXXZUawIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8v2hfe_e2etest","name":"WIN-02FU1ULEJJ8v2hfe_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7acc4ec7-f165-4a9a-91c7-4da8074ae6af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"c468c4f9-6dca-464f-8c58-b67c0fcf6d10","vmUuid":"99BD7DF4-CC1D-48DC-9921-227C86F857F7","clientPublicKey":"MIIBCgKCAQEAvQNzxTofrLqrP0JS2+JhTDZPuEKeiL/SIPOL+PLPPHmZUHo36mkdCdbziF0mf5IKiBfPc1Uaryzva4L56pX9hb5Us0Rd8Qsi9xBmHAeHSbm//pOeepJePYIAnVjZZSDScfn33o0Fj9r2vgTpwmWrIzTKtrCqsy3GYsMXJmuQLmiFAG9N5Um8UlFuDDklcpDqQsT9LMx0yMLwfiET7dTB0I8/VYDzgPv052kTYQz1C516l/ie4ckUvyukif/rwNw4xDR9OZDUyhWNIH+ybV9r6FXhS2FwlqvDD8dJk0RwRYkg1yHoRZKqUVm0uzgpBjxupHJ1684KqY6S3x9a94PjBQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ88xu4n_e2etest","name":"WIN-02FU1ULEJJ88xu4n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"49f248d5-931a-4e2c-afba-78f679ea404f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"3a14a311-a928-4af4-af12-05cd81d8d99f","vmUuid":"99BD7DF4-CC1D-48DC-9921-227C86F857F7","clientPublicKey":"MIIBCgKCAQEA8Sb1HKd+cW+vRYmPu7KoOCfyspUylxxCz7QbDQXinn/Opj4kcfq/Jj+ji7rXyEhjDNKQrLbRz2fM3njt/6iJX9LR+Ez+RMQF5L8hFj0Fv1dTbGErn6Zvp+kdxXyetSErBnGaiBoOEuCsoJbzKAqKJ1WbtrAxJuka5o5f/P04IWibEceZKPxZyGgA2L4zf/3kFizuF5/4j4XZno6CHM0mt+obb9EoToUm2FrTzmrFWg0kcafVLDhGaKDaIjIRig34RnRcNdIrRYsVGTg7jaGqgufm6dT0nGOaSB+2vkHWgfg39cMjyydm0hCx6c3ZaR1oTSGoAtZV+/CbmQQYXeXAuwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007","name":"0.8.20132.007","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-05-11000","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"9fa00d9d-6e9f-4087-8b87-00546f0cbb3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az508"},"vmId":"12acfb07-69b3-4e67-b2ec-7d6630fc86ab","vmUuid":"FAE4B41E-6CE2-1745-BED7-30ED0F949B78","clientPublicKey":"MIIBCgKCAQEAqVXNsm57semqwfFCFe7dfGLa1CpSqlXD8nQeW/uOUw/hzmY49i7dejQDto+/c2irUScbycvTEZ2+eu2kQDA4BZkov4/U74LiI75EwAcTvm0iIFL1UyGkb4sO6+7E1PhDHseAJ1CA+SCEd/5s+ehY0TmKrpk3yyCyNZEYPlpDvrnCTg+im+ngOGxIi8n4qoBMBdPvbMzeIk+8GPn/R7/Zdqa/KMKp1pkX+KnXW9kvzC56LV0amHXQrXgzKPaPaf9+EelE+HSUtk8M8lVFqOTW/9eX0w7ftwqZtdq4J8OHTYzSCAOTaQldCqJvqDEYe6+0TFfobcNhMpnS6jqyE0v9VQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az508.jctbnuovcxfe5mefpt21zlomrg.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-137us8_e2etest","name":"George2-Win12-137us8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"488c8013-6815-409b-863d-4bf68d30a700","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"bbec014a-14f5-4e13-8561-5e15f34aa806","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAwGsYHorVqMWQkDRo7b+ulV6iMWtTweix6F9v/omScnbfBXCMyLtO1Xo89TOnyDwvnsJXXFY8ZMF/eZuOLFZcFEFOUyzo/uekEc0yNYY5D80QB7wpT8SP1cdYmOqUBrW3ltbOqKCUO4r+0mDotRi2YGs4L9wzp3k872CXm7fSwz8ZhOHzH0sqUOSvXtEryrv9s9uLfouw2Wqx5NoBU7Eh91nTI15nK7cGsVZlTIqd7wdATN099EuCNwQ57KK7rarK1nYWcYYu19WcuCAukDe4VsmfglfOxYGsBEaJjgvuN+/Ge3Rxdj4h7VWacwuG7aAzXXoMPvENiKNhlnf3NPFFJwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1mc80k_e2etest","name":"George2-Win12-1mc80k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"415603c6-5cad-4504-930c-edcdf7153b12","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"82dd6f99-5b19-4c95-b143-64b2eac9d037","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAz6TmpRRJmxVX8mBy2TZwk995yjNt4eu908SpwHfwUNXiHEN8aqL62VzBD62wSsaZnrk1aVnsL89hRwM7pS9zAgRdgFH2VEyMoukFv2sC5q6Rx0+PJRyGkSg+fKFjtWT8o2m20dvH5K0IAHdce/8ieXl1nZvyoMhn9rpfKd8oTtUI0dGJui4a87mp4CAlpP0eAX9BdK7fxLEMtafhbLRdROFmDDrn/xXYi5OrgihXxieBkBqTnDPEczd1TvQcDRZ2E0DtVJOooBStAK5S5LjWcK4qmO7SvgrY8dHdj4OWsslfDidt+M7S6ib4z7b0zEJFgQWf0cNKqH6yHsXAWpW2mQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008","name":"0.8.20132.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d25cb2c-2fc7-40a7-a2ff-41cdca76420c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"35cdc80a-44e5-4fcc-ba3d-ff23cde07c9a","vmUuid":"2C63B9FB-4BE4-BA40-9C31-FF9E32488EB0","clientPublicKey":"MIIBCgKCAQEAmZ5/JD8yKrBMgrPJTiL0ezsvOAgwMCw4gj/HfSO3syILba9gpHY0GiF9Q542PhHdkuIgnX4/SyME0mSGXK5mT/HuVlcW695HEvC4yPxTGYoRcr/3F8o2KX3oU2JGM5FrSo7ndbd2UgIlvi46tp+lcw6uxJDk8P6n9zo9iskvn4AjD1/e+K0Qs3f3OwXfw9SRCcoLqB1tl9FbQj8odyoleWt8DE+GSEOxrUFZ6khTBTGW073+pCQeEKKJvX4IjkYKzRmFQljG8AOhraefUhxCtY+QdZgQvO0qtaZQRsUG337p0va9LRqtaa7Zj02V8FFa9iHfZyS8ISHgG2x2Jt4hPwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.gmn05kb3ecvupfarzahc0q5hra.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009","name":"0.8.20132.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ea3031b6-38ef-40ae-b77f-78a536ef9fc8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"820f9c13-24ee-4902-a0d9-2ac985ad00fd","vmUuid":"F72B5007-D016-AA4F-AF7A-D9D3EEFB3A97","clientPublicKey":"MIIBCgKCAQEA0hcXLOmbBD0OOhqBS7RO8eTEW5hraZuI4qCk3SiSW7isJoSeN/sLCBIvNn/imdEnnoE2WHtA7a1I7Ze+Wyp9XELBx3GStdM+ErdckYDnj7lHWNH++ZUs2+khDHIJgU6+e9vA5LQaydVF7eQuacLADnVtILWVjP89M+Yzz+6BHpxTzuqrGtLCeyPGIiZEUIIhR5fzQW6G1AzDZzEoWmu8QetPH4wB7gh2tygRGQV3VMaFtYRfq25hXj7+oMRRC47xe5b3z6rDINC5irbeVL53Px8gpEethnb8yhd9Pf0IGK9n4x/ffAuLNwsWoxJqzaVma1JQuCFDC/jEPRxl3HyfJQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.n3ngdsifwfiuxgagf4o1uwsj2a.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8rep54_e2etest","name":"WIN-02FU1ULEJJ8rep54_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e98c4df3-fa2d-448f-8807-e031db208e1e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"6ad1a115-7f45-4b8d-a548-e28fec72993a","vmUuid":"7A3A071E-0422-4C0C-8169-9F576A2820D7","clientPublicKey":"MIIBCgKCAQEAwBmIUptqsj7Cg54p9PivXBoge45RdM+7BNsJQhFeLEZtH2zf577aUiJyv/VcZFWiTF9qJfXq8dEBbWjneDAlmLX3lTiWvxkMOUftrDZXcNWhJTV/e7SlMZY7DiMU4g6+i/VTtNQB6dYheErmiqXXQpljcQOy4+TVxohGQgATkORecGuNXl62eSUa84FhO44lG2TJpQM2curDdiQcfD++b1CKZflehsHL4YVSx2ADYYz17L4kxX4VLGTZkQ2vy4UG15j1FkkhgmucJD5Sdg1yc/nXbjXAcILXe6vyzk+PCYJUX+MJwh26QO4WgdsKVFGzXYvX8ADT64nrr/r0bM/XRQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8psr6d_e2etest","name":"WIN-02FU1ULEJJ8psr6d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7d38566c-181b-4004-af02-f77b74421f1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"48f6e12e-1b18-4c71-bfbf-efd8c08f7e93","vmUuid":"8B04F426-9E16-4685-9C90-3A0C4589155B","clientPublicKey":"MIIBCgKCAQEArO2DgDc/GxceI2cWUMQmkWQx52dBYvG35wB1xhmB+vfSgz0hp6Xpu3X83HayzUD0K7HpucR9t7CBBovSkc9MIjQKzDpG1safVYMccCNs291nmpyKPDTsHw7k6KnlJZdmOEZ1xarfjk2c95YmBOfYPuWg0ds+bDg+g25WK7jzU/rjsHn0uidx6Fx3MMmbOGwHiCBmD8ZUryH7Tga0sLu9gQ2wEugkGYgNj7cpPP2jpaTQbn2pnQ0pGD/WfdFl0YBPRT+uegz1I+UYwi1eg9OQFLn6P1Z1VfyIj0+pV3o/1Y1NxCnTyb6d0w0jEtir1tzlmuGsjZsT/eX/pXRjWDUpWwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ86p401_e2etest","name":"WIN-02FU1ULEJJ86p401_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8dba50ed-ceef-4476-81e3-10540ccef95b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"0540e097-6dd7-46cc-a6b7-8785ec15b601","vmUuid":"7A3A071E-0422-4C0C-8169-9F576A2820D7","clientPublicKey":"MIIBCgKCAQEA2X6X3sXRw7hnSiteXaxziGo8JfQKk44VC4A9jNZCNNRcEtueOeXVIEgWqHWozZZa7Pj21rCQ8IJEE6n+kvv6vTnbAewKvkIdzxeqOBCftYx8lEloMCp5VBNAMl7lhv6JvU1AmAEhWP9cUacq3XqLVHTogJBV3eJ9YPRi01UoUK1lnjkwefgBr9VsN4Dmbxot+dL25aQ98wfW57GQP9D9poFgRiOMFrxRimSSsXxaSxd2yZ+nwrYRPwy55rWQgGCjAdW16mJ1mQkhiO7WmDAoKB0UF3xDXNnJLiGvm3RZsKsnOw5NgJhvtv7SW4BoVhZ5WIljHOBZQQeLwnqb2JoVrwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_CENTOS8","name":"0.8.20132.008_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b61023ea-75b9-4bf7-98f9-1aace28f6013","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"eeacd519-df57-4a75-9822-297baf0e4881","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA39Ktn+LKJ+XEg9ZhX7vwOe5dFZOsVDgKxIkyDf7kp8ofXAqVGO/Bk9lraF94MI0gdXo8KhqXx9L7EnEFQSvy0y8Msm0HW/BXRujKAk+DB5OS2Ht2ddsylM/2QnBrdqEQNR0ikdmIIJdfxrsslC4ZStLz2JB+PfBPVm7jbg1LbvjmUtlfugmAdU0nbrlLsbRsiBgwfe1/IPpuUo4QcAJeaJ5X0J6JTpUk8thJO7ZBVCSwt4seXK7SkkhXFO31DaLvs82xJ+laApC4ZshdBPtqMRDf4gwDZqEXE0vXclVn1BlhicF4OH5A1RilSrVcqbiOe3YSf/V3gtMOETO24SKuDwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8rybz6_e2etest","name":"WIN-02FU1ULEJJ8rybz6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"93eea9e9-d699-4403-a893-653e74e96e90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"e3bad5e9-8782-4bdd-adb8-036830a34ce6","vmUuid":"8B04F426-9E16-4685-9C90-3A0C4589155B","clientPublicKey":"MIIBCgKCAQEA0gGEBBlSp9xzgZFUp0GSvyfO1kpnHDIRi3V24Cu3ETcQq0beL+QFrlNvCOR03licYzQcIEzyTG+3bGqxemjKcE3C9rCf02DQh+7ANtQo/eJKukA6rUIHeqLfyMdYk2DKyFZhdRmbgbwC/BjRBIqUTapXp+lXLDwI2izdl6YTqGwCDkznjbrJJ5DCypQn17Sat3CyQVQ3qEj43wx5M4U2zrXAOC7Owju3u4TsAzSBIpEVEHtqK0ESAJU/7DpMNNMfFZPLnpofMuGlGWbv/0hMzMNGkolhCdxFraneMdJUviw1jMZeeRrevqPLs6FJ6ynHruRPaOHTI6zK49K295OnXwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_RHEL7","name":"0.8.20132.008_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"01d5be29-1e43-42a5-9d6f-8b0e6dc64522","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c8511815-5bb6-4766-a4e5-1ae29b492326","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEApaSyA/B+J6dAlZw0lfqV4iQu9QGtTgmDHuBhz1iz8Rf8ft/2+2V+rOi70jCbB824vPEiTsYe2mdEXM+cly9Fet6YhpzmHByC4YVrCe2t+q1PI1NMp2XffR4zr9UYapKMZTTj83xFaJfxcAsnkFltT4Qs7788sACQkqgOxk0uyl+CuPeJtYsfowVWpsnYj6afUqn9lOhKvBVjUo3DKqAuoOD2/CtN2KNA183fe7CdWKpytb31zb/SFIcyGiVw3BjPk3U24el2KaNw/i2EJd8kIoBJtB+jglIWyQ66evlcLYYJHRF2Hxm+u8lqbny6XJM12odm7Hhq4K/bwKY57wMTFwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_SLES15","name":"0.8.20132.008_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ca6c179-7047-4428-b0ee-b86b004aae16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"c50e96f2-c77f-4992-9aa5-4f3a6c31a709","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAuM9UzTqGdesSytPBF/KpV1dRD3PmhyJ+0peDyV3aMFWtmhmw+34qLHEp5G8L85tmXMBRYJx1QIa+QYNMoIh5BKZLTa8eECWx1ZqEql5iq9e1abaYLPhkL5iIRkn/LZeqF7RLFaIVIduCaa9BdfVu1b3chwLNaWnUAdXkmR+87wqZDAu7+aBrEMXM+pPtX/FBnrBQ3himJ0Ttp2JKyESCKfFsBEPMNQT+9sq7hglfFl/Q36hjq1ZlmqJH1hzzYwyjybEeTEpua9fEBFgZt7r2Euk5s4M43erPsD6DyWIJ8vrfCHDFNRxPpGxviTIZokJ1wkH7zWhi9LoLGq9OfYn0wwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_AMAZON2","name":"0.8.20132.008_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ad35717b-5a2d-4d87-80a2-64931ffd10ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"171bbf46-d504-485c-823c-5de74e2466f9","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAuqSI9091h7RPtzeKvTjYZ+LcKQkFgh5xvVW5/E76v5jTkvlMnRZZi4PynRS8hqbbqYdoR53Uxxw+WLRXoAoGsBU093plY4ssUZXJ41gWEKRgwlILjX3yHKTJhgc8E5HAUf84qD/q8gspie66q4Fd5vlRFb5Tijq/jjjyu1WwZHNGBfzPgY8KztBC3Lmxw8S1FweXbcywxcjAaZzEDuupf2ET89nvo/wPV4ui8lEGogsrktvn8ddgTJdOgT/Xcco4onMHHkAjgCIOTrT/2oYcoPFQf84xxSEGaOomHj8vgxlAIIbLY/ufuQ89iIAmNs+lxr2cfdlF8LSZOoEQGmJSbwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1vpr5b_e2etest","name":"George2-SLES15-1vpr5b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d79ecb6f-d8fa-4aa6-9baa-18c1ee9bcd69","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"352d172a-bc4e-4ebc-b112-bbcab0b0ab58","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvv2St/C9GyvZMCdr4WvNK0fnJGyXLejeGxrJ3P3niKqjfNll0jySBAfqCswMyCcuu0cR2ppyatGxu0jRPtLWH5lv+3SylS8No62iXIKnUcJAhK1cI/k9PZpYs5qmp4RmWq2100EI+gdQbqiOgS4yuuaFDzy9Ndj5OLA+a0NINjern+gMmUOeJglKl4B9VMafV7KMI4yTfkFvumlaCuDLLRURSPkUEjOiWkWogjiMb9DRzogCIKb1OvKyQOu0HiQ+VjaYdZ3hkyRMyszGHTf8Nz9cXlcRpv9vZc6/Jv1/gfeT0j1VWQ0hcXQ6a9KvuvdKdGWJIN92Eiu6a40KLj7LZwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern13w0d_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern13w0d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f1d50fee-076c-430b-a816-08a1f620a1e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"26cb58b1-cb49-49e8-88b5-c32277ddc577","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxA57flDiYZmf9Oy3LQVYHa06t3clhSExLzw1omRxTIT05yH8xBBK/jnuXD0RgSoAjClY6HcciV5AgljwZ7vLs4FAZEAyPql5a+VOx7kmWEfI1vQR8nf1liQAB9j7oaxBkm6M4iy2sAGILPbm4apeSCSrLnLQWlWtIpUECOaiRqoCU9Zdtzi/R4QMaU3LwS+xwTDwQC0cRFWAqwN9VrSrhm6CnIV4wAh8WRGtA8C/qD+IpHlpbVLChAiEPlIjdn4kdQQ4f/c+dDBrs0RR5/mivs5tZZKJBYFzmXvqOs2B4fI6+BH/i3q2wFLscMDYc06DTpKMAnfhw7NkC3MJcAZlXQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.010","name":"0.8.20132.010","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-18-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"e8706757-dc8a-4e8a-b9b9-131e89fd6785","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.010","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"d55cbb03-6282-4f91-87a1-3027d42c8c13","vmUuid":"BE3D9DCD-3173-B648-A739-4EDBAFA02966","clientPublicKey":"MIIBCgKCAQEA5bxPc2U3aHUrG5Iyrow/WNQkSO0/tUUlP5mix0jzP/uuzrqolGTWOLaNIz4lkB442Bef3N68ATV7EGqBwXvAtLiRgKh6QaORVntQOcFlA1dVqJxB/h14c+6I3MW1H26uGr2ubcz3o4VwN6KeUu1WYlfWmdtKMysOgokp+EOzZyJkgdAVwopOrspruU/7ehNM1/p+aRXOzu8xZliKe94n2rBWrXTqDi+0uoWpYpQuaAeEj5XTtaJZ4vucAoRYJgA4sD8TG0yV4GT9gq86r8TR6N5R9BoZUvoLqcyqE3XBki9Sg2c2hgNwXNlYun69HDak+cUaBYs59U7pD9NyKYsbuQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.sw3udvhcmjdutktn0inz4hrtqd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1g7vro_e2etest","name":"George2-Win12-1g7vro_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dd67909b-e790-4998-bd5c-48fd2d97ca4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"9258f2e6-375a-435a-a032-7bfa11831ea1","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAzwYycOFJoKKyHRU88Nm0ZbxY3qNa2U5qwN1/CvNgvyMfFB3ocq8DJaOpyMMjG3Ah5DlkFjRbbjDGSBZpOKXnx4nYLq92iBCRGFOPHzJ07WIbAV8a2XqiLN4b9YNZLWpNhPNKb7FqtE6F5vk+l2l97JX7BprtaPRzE3PrWNcKq0VfHom1Ic6SCbLoO/xj+tjBFjRxPVcizlZcTzHHSSXd4C6V2q7exvRxeuR8U9dlezKNtTIMImsefUniF/7I5/vv+O+ZhvdM42FX/e66/ozoJctiIuxN3CzWXUVOxjAu3UXjOw1punsvfAkKtd2py7IUTKLGK6X3cTjiSb+QITQwzwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1ath04_e2etest","name":"George2-Win12-1ath04_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bdcf7d57-0a9a-45ee-89f7-d6eac95756e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8a95beff-5c82-4d87-9918-fc07aa906889","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAlvsRtbrLzFKbI3xLyrXnHM0ppgt8WJzY+isVO9onEa4j6GFgNKKfRA7EsLgNM4LUO/P2IN4yFrLoSOQHCoaI2ScsHdXIuk0M8cYFNYNlpLg6u2hD9lXAzRuK7YICUG6tOmZpvy1bFblMyFH4yjAQ/kRL1w5NsNTx5jr9IHxBumxhGGd1cjTzoA79dstoqvNHpRPp+XRVZRO1bCrrmKQtDA4BVZZW/3uKNPtRZNF+OdS+wt4MxNj4SScIFSJvroNHt3xwQBVnL1Q3fhEUm1lFpF2XlA6iJd3NzEFuuaoiSaEFclIdm/S2k0f3yk08jtasBx2hHKf1Dk+0EnCa+GWXyQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1flvi7_e2etest","name":"George2-Win12-1flvi7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fe557d91-57c0-47fe-a79d-c65e92b1093e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"957ef51d-3f0c-4247-8c69-eec6547ccc76","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxjU0W/UQESw6tzBT0UfaW6eRhs6lWhroDNDtQI63Nfhc2mF+h3SSOEDzqzLMC1+73yk/fMRkiXAYWeeXfd8VjVtzZtrOKvC8cdM4v1k8iIlt5WWlA1KjVk12uaD81tR7SlUl18d0bqGgth5a8JebjtYDpzqYanOM1ugS0icWxKdtW6eXHEFyOjzPz14IuliWObjzp+QRwUIsskmydbywHuSMWQ3tiPP4rUvXM16C9XmgZqe8KoDPqR/GbvImf/HDJoz7/3VIt1pJCtOX4FhVSZQXKyvG5HjgaXGeNQmYwoLxoQkS1oq1TEKOjOq7TB7gYTskhergkM39L1xxJwT76QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16devk_e2etest","name":"George2-Win12-16devk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"10d70f3e-a734-4eea-b239-f61928e1bb2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"94db0b9c-3298-4203-8894-e3140e5d8c84","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA2l615y3/0jjFXlUPvitzqUMoMDPtv5I8IhORF14tSA8liFo7uOQYUG4IZqg0SEzGXQlHDBj5yeJtnZTqxCKpUdqw3n4zytR4BoAtpqBOnyFhO0IeHeqoEmC5fSbsbMCZeI9ScyMeVAYM6qvoUUa88dZH2rX4dKtiQX8/hbVBUFVsK492HF88RTLP5xGJ45DDVElZPnpMVi7UPebFAki4Q8Jxblm5uWuCwhMhSr2NK6uooweHMCHbqynHUjlnYiOPFMYVGgmFF35iudq3wrQtGHVACJJyZBPTZvYJGRymKFpBbwa7WhRL/TUvB7eBejw8hmmG3ErDsBjUF1FStdtC9QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_CENTOS8","name":"0.8.20132.009_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1afa7907-a0ca-4ab8-8de9-bc522012b2b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"25f8051f-e32c-4067-b74b-0c219d9c0b64","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAz9JwUG2oo5Jj6Zeyspk2PhnV6jZR54UGE2cr73/ykTBSSC19OjRvssW+2eRAlkBJlD43y/zAVQIhVy3vy5x11nrTVc6L8+d9ky8sDoUlyMy1//3Cody1UmL/t3buLHPwV2N6FNro7hGs0kk2boqGElYy7U+1KDw/jMX4Ou054hw+pHlR7/bogoINl/KbcXGtoYOxFa0zDvw3irTu49S9mF50dzhJAAszH1xL1xhFcdfzHStYvF04tvNxMS9e/uJhPLM6QZBumeUOAKKbpuI6B9o/b0MLqdUX923ZGpS5PYTaG7Bui63Bjujf1Juw0ridLbRhCHXAaKmPGsWlzB+N0QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_RHEL7","name":"0.8.20132.009_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"743576f0-f8c8-40a0-9595-a4b38b817548","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"6d257ecb-397e-4690-b252-deabcb88c81e","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAofw7PCMN9Wk9yLZu7PbZltwYdUd/lnViKjRoa1lUnRvxnCjvuD6zlIEkbgPsgeoVQovtaF7sRJ/owsBrTsh+TadWigYcXEUK67Lu/SpsaDnaGUsG2zcwByLlfCHKvfdqOt4ScAW8TghFWODs7FJo2uujGNa0dhiuz/YV584h5Y3dIxP0ln8R+99t4oQ51x74S08XoOGOi377f0jG6i1utoonNwdiQ4JWv8Ho8ovAyYgtylt/uRCo6pJX5lNDrxQS6uM+7lliNkWENmiXEiAGwHgTykUHBJFdROS6oJDzirhM/c4AzdXF1iBkg6ofn+SxZnuSmFEaRejkgrMtHBUSRQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_SLES15","name":"0.8.20132.009_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2511fa17-5d6e-4453-90f9-293984117c0d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"cae66e55-a58d-407e-9b3f-0afa4b85981f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAsxOyxPImMwOUUJK8FWxGyWM1A9AptEF7ysez2B2S+CO4zoYka/aVPvfXghFoxKNmOez59MooBXCnKG9PKz/PV5M6u0Rdvt2j6SBVeCYEc26j2XPkk02SW55OZYKdm8gJDsm4bPYRAycpdyynygxh0lTUHKHtAiUCKiakZY8MrBl2zLvkoGbB62gQIFNnpo/Sb/qTNjZqBKx/GAapeNk+uz/7M5Vq6d/uXzNCwJl2jwKgrYWFLKi6huonuISkxUFFvAOhMkHkwOPu59elccC2OGXL49ek5kFf4a1SigrO9qfPlnefWssaiZtePdoQBXIb/x8VfSxs9v95i0Ywk6mTjQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_AMAZON2","name":"0.8.20132.009_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9643e418-a0ad-4191-86f0-963ac4306ecf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"7a5220c8-36a2-4888-83f5-a60d796e4038","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAy8H+ZDByykIAYYHIMdfy53IMSMRCRKQcJVsM3WmAajZjvi0x6ZdNwV1ur/T7o6804YCqTbs1dANX3OQgp8HnNordc5PS5qIMXcEFig1f6VjYjJvCXNi8Ii2QuXNOCVazC1ZTSzZLAEhQvHXWFlczPpufElHzF+MQGBeseW6VNO1IBXbD9NlqmGSXH8uQikQ+tyycwV+n3zPJwHSz2swiNpHCZEsYN428E/+2ZD7/yI7i1yOVvZeuRjLTJ/VXDqay/3qgy4F55sLhV3cm3T6iFuII8nVgvas4GcqvusIWWkFRiHxPFyGQeOw+IK1ZEd8O+2yhiL1A0hrnbwSNQLHqBQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1pyhex_e2etest","name":"George2-RHEL7-1pyhex_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e856ecbf-4e25-4a2a-ba85-f0d79747e5f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"350b90b7-7aac-4c56-a000-d749324d1d46","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA0GjiUxMMRZhvCabfb5Mq9RqPJJiW4bb8az7iHaV/NYDgaNUFSKfHNs3KIWGluDIFV9f6Y6xKp10AUtwJ+JeCJPI8zyXEuLOH3nwMnvKmoVDxHtOs1CWVxRCF/AYfaDQ35zET0b8RANQ6MJFXkkwnZBRfobKc9Bc93GTrGDBVE6Mu5DaRT+9octvYk/7QZmTQweVePYChhvtIt4faexGad+Zsk6vOHmc8lJraMnlOKIySUHbc48ZPerda6iw5Yg0v190DD2FAjcAwieogcZEF88sfxtNb4aOE6H9139sPszEr/KbehdDSJPd2G9ONtCjilV1Hn1o8jDeKFyCUDudzKQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-189mqg_e2etest","name":"George2-SLES15-189mqg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a61ebe2-3f9f-4ab1-aad1-d4386ad8b0af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"8be52886-f4c7-45d2-95cd-b4c1832e8088","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwfSfai50Vsk/u2VJUtUfY8jbqrV78QgezHhdVjOzy1Qg09RvpamX4h3nG48n5gC92S3wSWtCxL2pw+RUHfTu17p5rjt1l4t9+TwHiGcqTHGSuejZu/6dE2/dzxv+g++3dsg8pWnUJ5kAnJ08bPLckaCKHibiU/UkqTlTpgVVuIv5h7B9pvASVBqJvr/OKiV+7orD7EGaLGIHaermJNjf6jdDPLwASmJO/qUAfZOEgvYKeyaxxl1aEanbcDgsgeDwTq5/grYybOTtMPd8bOiUjhnfAUSMBftjkF1BbyvhlXpV0FvL6pPLhle35dQzQzoGyrzl3b7+UR4dV6SeoyHZowIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internm4jv2_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internm4jv2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1719033e-7b2a-40a5-b20f-6709b41b6090","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"ddce5ba5-4149-4985-b69d-b2f00c3cbb9d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAu4L9lkkVBRtuSeuEecHmit/NaqYKayCcG1gDnzUDS7y5gneNA4UT5HoJ/CGfoAQAxMWzTyIaIC3c/2t7GJD7lY+Jj1Ld+hxRIXSakt/8QHEduBnVLleCNGxTMr7v38C3YcOnkHCMsonE/7cc+Un3Q4n1qDq5j/GPkxg5uw2blGYP56pY+I40zYG9OTir41xjVZ7xsx52P6wLUuNKDgDOK9w1fie7v4hmjjHpBxexvplhq/1YUSKvHpPMFEzTjbm6jbdb7uL4po+pZMT4S5g83I/iXLvd6mHSvBMbrmAeWGcSHB0E9+m+epKhbjkxiPnlHW1lt4VcCXk64Jsfkb3VEQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_CENTOS8","name":"0.8.20133.001_CENTOS8","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"2053370a-7541-468c-8e78-ede429f6af61","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"bc73d352-c3a8-4486-a58d-b2e974364c16","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAn6R8s6VpAZz/AYburhO4YIWJAh/Pa58Soi7dVsp6HEIDw+b0ACcANgxkFlgHPhk6BJuCecIBLdhLHbGhb1QbWjyEoZFa1fI0C9PY2Url1Ah+wSuD92xtCPK2cpif5l0j1Wt1JZjGxMH7Nf7+1A0MyJTIgGNpLsMkrorzEZKPXXHDIlv4JptqrodMJh0vxoY1jvc9s0pKEv7YGtEBD6X/AXfw8zmzztF4u3g08scjeLmwgYXifY8CXFuG7278FJsW30ST457rdTo1QrYCDMpj96TYR20JlCCzR8CtcOhrVCdkMR2seB48AOhTvdIfxw7i+zlU4oOO/P/H74Us+/Z84QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001","name":"0.8.20133.001","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"9392ddfc-a960-4043-a036-cb735d469331","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"55ace41b-9836-4bfc-b8ea-3f4836857809","vmUuid":"F112B3D4-5A81-1743-96AC-73990D52D97A","clientPublicKey":"MIIBCgKCAQEA5eSFNGjJILpdi8bt8FzTnOE0AXcOWDIDfLYQHpLY5H7C0HFELshVwGjiblmPpJRv54af8jKhfqRxl8DKI0aBBeUpzYPdNLwjk97SsrBl/luRMc0HfL9SVYbf8kY4Og0dxjIHugMRs8Tb8MHpycPQi7vd6fJYR/e9mZzORz2abrm+arpzd42HnPDJMvoR10pZksO22ofyNqfeG1eeB1OiICZIvtJorOcMxNwkDuJ4rYbzzQGMNL4NlFQjr0JlVVTRhZ794IcD6zz7IfpFNBI36A51kcL/f7oVW3BSOy2NR8Wj5288PgnC0W7VJIcT+7+BV/7/9SMI0hbanaSaw/0YdQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.ocottejnj15erixwif1dizcbje.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002","name":"0.8.20133.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31c87c05-803f-4604-9751-1c2c0eb5258f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5ac3613b-be85-4ff6-8e1a-7dd53653495b","vmUuid":"5EB839CA-D712-EE44-A255-C68C29DFDEFB","clientPublicKey":"MIIBCgKCAQEA0A17z/ica79mSL2y40iDfUgzmZ7ia8UNdxmz1rftFo+s+g16fM7YVk4giAT60EB9W3mwzeUqo77riGoI7gbzkMaaPg684wdsBv0cMEota1IlGBs6+GuT02mBladndR9qYPAUQI6Ei2QyxBtnIbyZqxmA4aumWn7xxt3WkzhtwmxlILI2EmjjYeJ93Khl9RJ5tISqh+l32Jj4FllU50hwYH8UHhECSE/Nyp8I78xjYmOvGOUEEd7gNaUVE/QNALMOIOuE+rWAvaJhZvKqbD6Bg5p/jd4f3i7T0UxjmuN5j9FNoLDY9B20ZVzJnF/45nh7g+V/JDNAlCn2n6dG06yVpQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.du5nllmmj0oebjzgijjfa2qnqc.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_RHEL7","name":"0.8.20133.001_RHEL7","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"ac11c9b1-3ad9-4fc9-890a-1055489440ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c5b1f106-94d3-43e1-a0c3-729f640f1c64","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA6ZYvy1E2a7AdWmjlbfGbvWs/vtgD5e0QbjDVDTFS3p7tlt2pV93h2eKGZMActbRV3S2PPvpmA46TlfaoHBZ2EP/MkTfM8Zv1rsfpoqtsYH6NF227WYT1JtEyLD7ZILiVhbOGkn+oFJoXei+PntLLydzl73uqRTqZH33h6MXqpEQtxl7+Ebqd696pEmL1HMc/hycC6RSlnZk3zHM9THFZvGS3p259qhfphEMgBQNAxQvmVlOJGhBNwkPRFe/Xfe2ijINMeucgdM7fkDKJUVhBUBndoMTDD8Rtm1+AG4B5N8Frbk8glsAlO1N2CaaIqmyPUgbZL91a1JdSiVjdxgn5KwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_SLES15","name":"0.8.20133.001_SLES15","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"0bcda18e-8db6-4455-bc41-f2331bc8972c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e0fc42de-fb94-4b81-900c-0c8a6be29768","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0kyegZbmaNytvkBgnziwHzwY6+OC6EPRZy+T9fFOxgAG+2CbU2c82A88WMcBE9FEfBR4BSVg1L3Lc5DINiaclxzQ7lSqeeAaq6r4z33Rvj4e4cvAzALClK4V4t7A3cTqPwm603Qd6/nRhzlG/kaafhaSWwgmfgspN5HYQHIiIq2/pBckAEacLl10PKaykUg7pq14mzZI+hCxFawSDjBZ1eqwfV++7WBeITRhUYAYiWVy8o09oDAewFdm5VETA46UpSNa/G4pR0DhQxOjaczCi6eaK5kQ1UfP8B245A79dzr3hq18dYvJT5XdItzvZTrpBwDodtQHY48RQoMFTetaWwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_AMAZON2","name":"0.8.20133.001_AMAZON2","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"d592c835-814c-4e6d-9467-36d47be88c83","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"094942d6-9f14-4457-9f27-7a212f6c87b9","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA2CdTIQw8sM6RMXvMG+kBjZW/QGRV22JoDSrYNKoifdVKSKlDabwxestcbJDewD3YU8BisZdQq3XgnsdJYI01LXg6PeRvF2o73ho+Zlf2OXYHkRPUa3gfvxeNvvWFoPgVxBk9/uxZgJAgNSkvcZBGJXCJAak2ezvZXVrcZd0ht9ZPltl8P9ZT0zUxdjdfFXJiKV1vdMHB6PFOI0zArHg+MIPWK26M2mrBsNewLFBQhSNeTq7RAEUrY8gsGcAU2LSzC6jdHSG1dc2b7QVEA6bIK2HA6fKk56UjcLcbOs5VekRBaIOJ2icTCoAsyqI4WQwKaHf+wGRRrfJg1MWQNCunkQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1ktiq4_e2etest","name":"George2-SLES15-1ktiq4_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"3d269f62-afd7-4781-ae8b-d05d9c36d414","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f9aa01c7-058d-4043-8290-3e266e464bc9","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA6YgznuQgPENqf/5FCbuZcouedSKQkQaGW/o3rGgTjnWCd6D4i+Pp117yvAgevvjpg5TfDen9DcpsYva5QcdCpuquXtrKkc+GiTT+fR/Oii7bHtEHDeaU8viZzHZULTWkt+vUAWtRUSc8BPdhOKkdtmr+M+E2gGAl82ZQhCffw3dxpCJ8K7K1+gbGEcVcdB9cFtuBp0Q2svSD4EBxcozJ4Eu4GU0WWbifk5sY5nV2fAQ98B9xieSUU0poza+gtYPkVBoldXSoqdVEsPTdEI9CspIN7+oIgwB080aowM8OnjQOhGn6ab6X7v3qx/UmwOdkoC0r30d6Bw54Kr+p2y30FQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.interng5nz4_e2etest","name":"ip-172-31-14-156.us-east-2.compute.interng5nz4_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"48d592f1-dc2a-421a-a363-96e8050c3f9f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"81d8d8a2-299e-454b-87ee-4349401b73dc","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAwjASU+RnGUkUCOCBKsFVeRUBIjOl5g4NkZFqB8n8QHzGUvZB5dUCl/z2rFR7NVbhjVXRBirK1OpoK3igaqzCDxRWd3Eg81EgyuI93Uubkd4/UXVc+xQNGpOCjcoRlg8yy5Jyd9TIlWnjc0n42CG67/s3bq/nWA5rRRgjKYJBTQaDUQgJU6YjYkxu7VJsoGGfRliG3x6TQP6bD7O1SzWfvY/+EFVT0hFULxhwneOhh4/e1x4hEnXYRMez+LdouVBp5WlhtxpCSvWSEuIcmnkzItGR/+ZO1Y/ovenA/0iCb2FymNcOz4zYilw6j3OH5wf1Fw1fyn5yGPlsX9VJ7PjVlQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7Z8PiAAAAAACA%3D%3D%23RT%3A1%23TRC%3A100%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiAAAAAACAAAIUAAAAAIAAAgAAAAAAgAAAKAHy%2BA8DJrgGLAgCBAAAAACAAAJ4AowIAEvhBQQHrgAuAE4AJgByAIoAJBAAkcAwoAAACAGFnEJDgDAwYAC%2BFDMACpxAAKCgCGwAUIAAAAISdAQAggjMoYAA%2BhQjAAh8AQII7AAUCAAAgcIYCAFMAIIJTQAEAMIACwKEzAgAxgALAMCT1AfIBYECBAVQJAIULAAAUGwAzBIBiA8UGWBIA6HBhAN2BwwMAUOwACAAPgbiA3I6CAAAAACAAABoAepsFgAaAG4BYgAGAKIALgNCLZZECgBEAJECDAAAAACAAADAAJQsIAoAIIAgAUAAgEgkAKAoAkQEAEmKRcQIADCiABoCpggHABAiBADQAFYC5hSmAhAAAAAAgAABoAG%2BBAcADABMJEggVQAgAP4o0AwBCBdRAAMACIgBUAAICJ4BpgA6AAcAABu%2BDoQVQAKMCADAIAIAAL4FfgDyGMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '275183' + - '137426' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:20 GMT + - Tue, 15 Sep 2020 00:27:37 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -173,9 +235,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - e4a5d369-3e2c-45e7-ba82-40c0334bdcff - - a8b7e277-9405-4da0-b9c7-a4cf4e9649ea status: code: 200 message: OK @@ -187,32 +246,133 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNRc5swDP4v3LKn0lAgQHrX28lgGjdNG4ewLnkjxDFeGuCApEl77W%2BfoOuuP6BP43zWJ1mWPiT5RcvFsblV%2BbbWLl%2B0BxrN48jULrWsacr6st%2FfJXkixU7kzXnyvK%2FEeVrs%2BvV%2BVaeVKhtV5HV%2FNRC2a3upvnGGiW47bqp7rj3UhbkZpl66ttYro19WxUGtRVX3JyqtirrYNOej06pSa7%2FYlftGYKY0U7mofySl0g%2FoicGvTONiqBuebph6WYmDEk%2Ffv9VbVc6LrcivegPSc0nPNJtWRdmzoN1NMmMB4rdQLH%2FD7cU%2Br5JycqLw%2FvUsPAx6pjWbo5OFYD7zW2QYiFn0EzEGsRi9R%2BQMBpaDWjhtfUBe02zBGYzpM8AKU0lfQMYlRINRIN1dtLGhi26eIZUqyaX4S6xjulOfeXY%2Bu%2BT4j3oYttAN2jUItDONQtcRGsP0v%2BnKEeQdTBLxbNnrmxP7mq4wtVAOEJrDPSF8il0N49jHHdcpxCFpgZ3xKQqXUjjC1EUoYxyEcGiFODghGsiMjxDhWnQnrtmdHIYz3vmzLfwC4EALyACHzAy9%2BBZ34tDAAJgDQw6wjNEUfmR1ZnwzRMPIBvJEpc84MI92cdF6gZFRuO9MENXdCV4gR36POq4iDjYo7I876%2Fc7G9ZxtI5jgAUEkqD0IAAgmAFWElYQY3UJAx%2BF5OFDgbyXQEEpyHxQaI0fqR8ZINFI2GMMIQ04xI402TX40gcsIWmjzoBmIRD86zFhlEPBfI4KevBinE0%2BqvH0manlRQBYo7b6roe196ZLrF2B2drQ4FMoCEYGn9%2FYcCe7h9O%2BzK94O6%2BvfwA%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7Z8PiAAAAAACA%3D%3D%23RT%3A1%23TRC%3A100%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiAAAAAACAAAIUAAAAAIAAAgAAAAAAgAAAKAHy%2BA8DJrgGLAgCBAAAAACAAAJ4AowIAEvhBQQHrgAuAE4AJgByAIoAJBAAkcAwoAAACAGFnEJDgDAwYAC%2BFDMACpxAAKCgCGwAUIAAAAISdAQAggjMoYAA%2BhQjAAh8AQII7AAUCAAAgcIYCAFMAIIJTQAEAMIACwKEzAgAxgALAMCT1AfIBYECBAVQJAIULAAAUGwAzBIBiA8UGWBIA6HBhAN2BwwMAUOwACAAPgbiA3I6CAAAAACAAABoAepsFgAaAG4BYgAGAKIALgNCLZZECgBEAJECDAAAAACAAADAAJQsIAoAIIAgAUAAgEgkAKAoAkQEAEmKRcQIADCiABoCpggHABAiBADQAFYC5hSmAhAAAAAAgAABoAG%2BBAcADABMJEggVQAgAP4o0AwBCBdRAAMACIgBUAAICJ4BpgA6AAcAABu%2BDoQVQAKMCADAIAIAAL4FfgDyGMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000034","name":"wepumwe2r000034","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"91c8f6a1-3ca4-4c4b-b1c7-fbd29804f3a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"304e08d2-3fd0-44b0-b325-70a15bb5336a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtJ9t1vGAOc/MFWN+bfc+4/JlEtRUzbtfqbCHDQ1ox/JEDrrG2cRMzHQ3nkRPmrLlC5bp9OjysxsfrWxb3rMUn5idIcny7tfvLtRcSMEeUC+1PFzTUDDNPdxeiMUxeVS/YQsEKUuVIG+NR9LahGMaHniF5Groxs/LQeuGlQnngPfPtDY8n4wSEVelhLjGjn2O5mn8URpDxWiKOWv/HtNNh1sXy+9cSzUJCATu9NzwN999tyopE5VeECPXJe2CK5TPf8VYhqHVnSb6wgpZAax7FB168K2kHNa1PjDjO6YCnxTRAi0zAUYbSHWIsE0KR1QLMduwGP0Xwv84XLh1ybKzOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/aevm3","name":"aevm3","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"089085b7-df73-468f-8e66-ac30d57120c3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T23:08:26.4761186Z","errorDetails":[],"displayName":"aevm3","machineFqdn":"aevm3","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aevm3"},"vmId":"bb5c2b6c-3d6c-48ee-b689-708d3aa9a165","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxtJhUP0r82OU/vpPjxcSjTsMQRVlpY/U+O3BGOE5h3r6rdEvbkCTZMPIoYrKEQRN7X5XdI6kEBAC4y8KE0pO3KVkBDnh/U5Az5zdS/gLhLHPTBJ+q1aejcfiigBwda8gT+9HtSEdDMzcCU7BI4ifaIseeHJjHKkqT+F//yF1iRDcaKnh/RNWi8IwSBQL4LWFow928Ej7/d1+l4jUVH6y9t6w0dFPkq0RhgbKLgof8WUXRv/PWlzDUkpYnGg8Wm9J0BxvsDd6lu7+dn1b6tOFbGWX55mq4N035ilzOX/sGZJgyRNQVpQUwOhXn3vqhoJtTl9Egtkv8jPVYwgFL4x1lQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00003L","name":"nepumne2r00003L","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"60e9cefb-7497-47b3-9fb9-c5a44426c331","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6d4d27d8-8541-4048-9f8f-6d4d237103bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3UuyizvCndQVtkx0Qjl+/KGixGTwg9yLpUK0MqevgV8M6PF2UiN7PiW+0lpaVPXDg8nYEXyCkjv6PDFGvMMCBnPpVBzxNKf1iPLARbiqT6mVzhM2AdaPWSflBtURn7veh1z7OuYqnxSU9O0unBtpcd2x4+zQRu5QKx50/fNl0AWjdIw7cTvuJNUPFsOoidv/Sy3ASoh6q6Bo8nOUJGs/HSHinAtBewnB5B8XcuPPLTJM1NxJ2d6zBS+0EwP23s7ALh9C1/d52QSymgODGiqk+FJ7lR8AY6FfzEAEgmfU1CjT5X3CsHmO9SAngPwwKtbn9KTc/RRCduzSp03GW63SwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00003Q","name":"nepumne2r00003Q","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"7c6765f7-0bb4-4c4d-9ae2-8414bb9630d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22005","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"nepumne2r00003Q","machineFqdn":"nepumne2r00003Q","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"nepumne2r00003Q"},"vmId":"d1890170-484a-446c-ba5f-b3a7ceeea3f5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqdSgcLoYgp+c0B/z3Pb8ShTXawxDkrmIY8AzmpJTrg4uVlmJ+Sky4OjGS/93lAi8JTKabqfdVqWbrgwd7pApfsaGGuHovM+bccWCCPp9GZmnBt43hY94AOsMiH02cwbEehVS/aRSVWpANBp8wgyjg43Ac1Lq6fvxtrJo53t1F8SZu2tFurlHnmk3RnrG8aUS7jYw+KHgCyjzsNBIn+NoQdhMraTvaP2gDprKc7eym8yHm4QhPHyj1bWxam27wC46zORA9IAaayCuhGT5ULSVoIyddUdCxE9fab2bOU/dE64/ZAcAn4qBqEBD/6PSn9vmjR7+rSYFXkDPisBRiLXrWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mariah/providers/Microsoft.HybridCompute/machines/MININT-BVC3J1U","name":"MININT-BVC3J1U","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"a31132f1-e037-49fa-b11f-6bcdcd5c6cab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-25T22:38:33.1540468","errorDetails":[],"displayName":"MININT-BVC3J1U","machineFqdn":"MININT-BVC3J1U","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"MININT-BVC3J1U"},"vmId":"1ff25a2e-371d-4a33-807c-69522cb09ee0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu1GGtSseDa25c8X9I6Z77fc5Rfbnbahu7SsyaQVV3NiVhFvU/U9l9MyRtYTxy7OTGVIWOENSFnTQ00VG+xgJAsCoh6CAZTlI4K1SpFyv9DKd0+Q9qttPtWlmwggNiX7WhF8Z3+L/SJ5hBf3bszYE08KezyP1yZjRCCvo5DLqt/dmVzw+OOQCxLWiZd1vBnlVVGQBcG1QmSIhhN6Ice22+Q6W/UTwC9Nlrnekoqlnu2raT1lmvhic1B7CImfo++vcX+9HIDFtx87Cd2ewGlkEvvxY54zRMdrb7x+PqdAs6dyNMcH7u86918z/20GiAoPaENdxxoT8+emORZRuxGKW2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6334cef8-17dd-48ab-b146-9c40d190f529","name":"release-6334cef8-17dd-48ab-b146-9c40d190f529","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3141fdf4-5e2f-4882-97e8-d78d5e0a7471","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188255400261689073759034698119188234947146113074261011968310528061670737583254925448429423374347757147758603801560016256852977781188941041721283114421750912715568372723052738618012566091706171347213382235356986156875427259967976622708567942459803213518312619780604682905876569876838543022875894969179555264429328455127185146622863410718853520369933113398","osProfile":{"computerName":"jianyunt2"},"vmId":"85e15d6b-b804-4b0d-833d-b90c2a2cdcb0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApNlpXXt3oBsTh0x5k+ysv8GVE059bgntJcka0BnyWEinyqU0sIJTHdnWC5LXwaUkJWv8ZjfTNwxcG0tVVVTee2U+I97+4lJP7uM9nqfg1EhjG3uExYnTos7LLMJGAeauw2EzP0t+fwWoV20Oyoa9lXPyb4HWf9rbRx4kr8E0S8RI0T5E2bxOVwKl7EyZWBetd259jrUF8WRDRaqSSjZpMvLyOczss0wlnTa0z2BlT3AAc/wbfJRfBqaZfVOcRzR47mSTApoj44WRlf+k+FoUj46/nWG6uq3HAcLBJFQPDfKyO8KAJLy8vMnRwlz/3bk6mCBtqz9ckaRI8rt5/1JyDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-741d754a-299a-4f15-ac2a-cbce86982c3f","name":"release-741d754a-299a-4f15-ac2a-cbce86982c3f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5c880db5-c16f-4eb6-89d0-0934d86a2ad2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418720312422033792175446607866247738245007639873342417478359283484283836347054251947652691512168667299161173224644481549325093654800285629488879138686067932818471341734653379835681698218498879227688014016226795549845472466746015594509986852613854740063259075815861859911295947506668594590563928922740957511130850745932299811385889832551366641018617668479180","osProfile":{"computerName":"jianyunt2"},"vmId":"08cf80e2-a009-4e7f-9fcd-6736113b0cda","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5WSUrva0xw4kuRkoicYjO8DE4CWx+dSganWOZ8OJZj3tlrx8UtBgM3SDLf5r5DtoFF5bELToDtOVf/L9W2Orbk0UhWKPhzJiqhFEDQUakbsgVUq95/1x6JCM90bmBhtmp5bjEqL40wx+2PrNwBjckaRNxs8K7SHPbR4/XuPxbnbZi5uqNJgZnidsgSgC/KEKrf61QUcgprGdCrkUvo2v09cKb/VruBOX+j0sHHNr+rGXs8iK/1tT6Rh71mHID1VaD4Tw83M2v9XgKfhIu6+NbRufIVBV1rcCb9VgbPwE4ADj+keF5pPrkCv6RArs8td6Qj4qet8qrnW+NHmWqUtvqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b9cc8d1d-3120-4704-9b34-df3f49985932","name":"release-b9cc8d1d-3120-4704-9b34-df3f49985932","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0385b79c-03df-4112-8fac-0aee747c494e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188317028195198626165576226088737243979881489358864752219329582140875426718959863691739480410974672819156060055196255224269247637810067684185041813758883279321958221985140073185370990522223103911199182500829263749619221801915704568641429061704503673405628445361655097887403084141950876918340192035983609928802837322246006718416977371641890369822992747169305423194895177817","osProfile":{"computerName":"jianyunt2"},"vmId":"915a6f38-8d9c-496a-9f5b-115fa058ca70","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuK2YSVtYfM0FVCYix+VAPRYCgjx4FtDMuVm0ZKUZy2p4XNNDHrQu6whJh0dPe0VexM8rZnr3kNIJkQIb4M57CJ12uKe9xv1bLzcozLVz5NsonAPVtMrgu5ISXNRM0/7y6y3i3bTx1EKpSyvQb0m98sidIocyGBvbiQSaxXzD6wlNlDE6hAEIEtHjIME0zOzUARkviXWghgcK3rp3tMKJWM0Qd8NiNnQPnj9Oimsd/cLXRfH5KbItYv81BmgXXUpVKnc+1REvzNYuZPbRm1uooRiC1lrSr6dIGkK0x/za5pCYoqoWPC457VeCdpzgCBvZmDo8280Rn3oAlg3aXwTlIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-46e2b669-644f-4c74-9faa-9eedf20eab4f","name":"release-46e2b669-644f-4c74-9faa-9eedf20eab4f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"14def914-068a-4cd2-84ef-1a262c5f2d8d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181032590737694575486676525172415685739881959667382334093441225231588463041987194879143312634240866861169457788222222687661526468128349297895015636031955637143914548728535764125270733094776786707851972311279848514959401167664589678937899367689203118532834961841513149563836463608672555883777864953713993696217591545772124335474119613598530740932187024819522121092738","osProfile":{"computerName":"jianyunt2"},"vmId":"33bece3d-f3ca-4039-b8d0-15da8867d3ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApVWVjiU+VQTBdcy8TZgSyokfeMH0yjJUjhqoPoPN+9RwVMXbcWx/8ay0VSUUxQ38cOKeSkcSU4WuG+PvP8WDNb/yo5ZeS0ZUFil/4PTDexpcxaGfkfX9fFSn37u/NoTKxceRP3dqQNK07cc7VCjvO18TRmrtwtLiWr2F/zYQGDljPiBTUSM1Y+IONJjKC7l1L67Sry+/jfE5aBCRIyZZFJgnMhkXFGT0xWGLoeVQzFrVF+9/bvJqmNZ8tR6CQm0nyDuGFrnsFc37kxmWcXyr/ahk+z5XlKUWHKbv0NkbNUxtADvyERkP19QVFO4k0vP5WVhjW8vL+rpvk31ehR6hWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3d53761f-a5dc-4e02-bfe9-af840aeb070d","name":"release-3d53761f-a5dc-4e02-bfe9-af840aeb070d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7218ec37-a565-4496-bc3c-e92f0555d881","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183962768390781473356106511040187679422635646107330289527011167814665663899171358517082246234393291824536184680672648192840648320608638452594674317175718145064438077494157405210255731817454518230084497849116686387216841117243805604638549251730340550714168367021867121885929012776447698939642696966338478872639193424747603059995199616332193032309222813602614994949238361531688638937436263","osProfile":{"computerName":"jianyunt2"},"vmId":"55aac7ae-819e-4805-a1a2-e97c5fd1fec2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8cEC/HSHNOP3XBfPcNRTLD2mFn8Tqv7VucYhob89llCxDdzqEWYxZZ9mRHX8SKCDvL2Vjp2/ntlvN/6JF7/kdI8gjqpcXkT1Z/GY6VZSVAD5wSDGYgC419ZBGYZvPxf9AnEio9LPJoccJVuw9VsaAdzhMIF4chDaU8iIq0+Xk+UA/illHDW3jczbZd15T1voGcL3dqW7ycfrVG7WLIkGMe25KMz7Wa3e4a1/1VpCE87UdU2QMDRuNsiLy9dKg0u8yPKSRU44msllCg3OXHNwKCeGDEZb9SgEf0XrOLZwriEFzBn+3swf2a18lsXdg8lpC1PrKQGC6LQOvkoS5bKgmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a342c6da-73de-45e3-b0a0-4b6fde5f338b","name":"release-a342c6da-73de-45e3-b0a0-4b6fde5f338b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"eefe74e8-5784-4db2-8c89-95bc20af0ba1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418567247276143635175030487479687740336252955838851703146612075818163396887125495936319348113430557782603246821140139933053774104141135940209352602550190926284514796139314444286781989732029505693022349534507155554475836465927312752059285240928752362474861376646226061183610328710385692244475609096538636526110035913063140887288592558411311293062428368108315739215117954903323199772152145333595626020446541","osProfile":{"computerName":"jianyunt2"},"vmId":"4362fdad-0f6f-4889-922b-b9bd91be15e2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoatIIK88Yac0U6IfV9Tx56DzVsN9nPJEFKbloWWjDn6yMXB6nbnTyhUjOd5LAxL++aq8fwsqYF4mEN3fd3Us2T5vnpym2V2wojkDiBMurclr/zKSi6ogvwAbsEwfa7tzg1V+5AXQaG3Xzg08uNq3+GpNFOUpCsw/Mzuk8UzyqH7K8AeJNekX4JNM7Ywh4Li4u9YThMMiKfcSMXkaD0VuNQtgPd5H8IoHYLNr1j7JxnxIs5HZNy0MpkTYZaBDbhCeVcsu3kwg+Ttt5LuagTpmFasKEZNZXh8xTgLQDWKqrStbKMq9ZnEBwFNY+kjxlRYic2crIndwjZdQp9rNVgw3XQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a64ba354-7310-4df6-8abb-3a76c9d5246d","name":"release-a64ba354-7310-4df6-8abb-3a76c9d5246d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e687814f-3533-46b8-b665-eae2ab9d721d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187885206082993425651870928316433487500747994607445371507092802522444683780437367529426677481941565232356354250456739644149273599671907235138384894976507170363355229546349538333699312427912590608746740979392118056339293179619310081428872854036578595671961496451396681481999184297790298682208757515493013","osProfile":{"computerName":"jianyunt2"},"vmId":"5038d3fb-a69a-40f9-b0cf-073047b7f1f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0OgA66QqICde9ug6+E6JHtj1qyuK6KpXnR9/ktX0SLzA3AdjsGzpdyBMug0WmBJ5VGh4uDyjFOSZUiFHEQDu50ieDk/ReqiD9zLBlM2EsC4Td321gYpn1C5AsgHRHlkio77o+XsMxGhNNf/7VbnAPbfBMdDFH0r9Zzi6TMQMBYhyoV69elxwnPlw2y9cZZsQRNmfCvbR8wXDHid1bUlnlLfKElYa1CWwC0QHQn2FJ3eWJniePe1zg3ezC6AvM7UQ1cAECTGum/hCrXRTjUHjYgp1Y7a3YoOsi2Al7jzfry2VKUHIfKFzvZJ2vxiLaT2r4KXzIkWilbwZS6/648ffLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ed03b581-87ed-48cb-bc0a-23cb02c32574","name":"release-ed03b581-87ed-48cb-bc0a-23cb02c32574","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f6d83493-4ad4-425a-9161-013a25511893","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181091783632119050150819498549231072503744825761572427304230695048536351507578858456717038706183263025990450404942572296243483653854856288549073166738651055489799235959252193835619970552309821221799399738290229272109203124013476743755911587600911203542277867733811936430128431174459056749473975783946619875310987544404475768508236337480234456738457273688936843","osProfile":{"computerName":"jianyunt2"},"vmId":"8ebaf756-d1e2-4928-932a-c541a89b8fde","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw/AD46A8o53MKDoXsziL9j2Y3iXNQdAS1GuSvxI/3LUgBCd24Nfb1MlUWCVbi7oJc3rQtzlN2tHBe//kbScc8nZPTGcIeZjzVSu7IZ+JCSsFWZL8hMnigjdswbuxf29lUJpXS+j2nMMbWnFOY0kYXBklVdavzesQ7J7BAwEGaTC3bH4CKgvbvcJHcvRdfn6wo9PuCc9Ty4ZSrqEZpBeoC1oSmTQS99kE+6u0SE7MLTH1Nr60I7Qb7NV97rfra7Oe3Qrf0Vs9ueh1vRU/sBDjDIEVVV1U+4yeBQ85pVb2wG60HE0RaiYN+smGw5sAnCv+sCPXE8iE6qyWtHczCAsJ2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-38004c36-2222-4d0a-b926-5aebe6c78725","name":"release-38004c36-2222-4d0a-b926-5aebe6c78725","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c02c65fc-3be3-4260-9873-c9d0522b682f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189954241233665189263343112473493889561401960847771461256905874282719706389259437201106555814066292937506958146019855501933066424493636562901639046682822856715509767327288249106578822696390531258715427860600569086596161157239432347496084128172578153716679107635419823200969167328462969259646369574687715314844496170597399194697281579545796746217933823292511715125982277522794","osProfile":{"computerName":"jianyunt2"},"vmId":"b69d3f90-d369-4b58-b964-2c39a0aa134e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt5CcGbrpsiDKy788DGqEq0bpve3H6+xxQu1uQi56r0zz6mLvLBZl4BCvQj7xgpzU2ZiMTfatdXV+k6Wlsmk4+pVKzZyv20Q6R41kGvrQKEGLxKEYLN5QAchlNrh/nojnSewpd9E+eDKOvEFNl6Qtz0uXaEs6G1S4UNNTvJgm9DQhO4fKmcSsIvLuqEmHA/7KIpH7wITPWhu75PwgbMn+AE/1Y7Q7Xvpqz2tjm2lRqkagmK+CsJiVt+sVlEO+VLHptHT32vfy+SAFHKk0Yyn8tHF4T1xhoAe8H1xwB/B5UdZO/UI2RNX+j7Xvwp0hLb5YyoM1CM10uoBqKEc+2JkA2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ed1aab73-4b8d-4208-9f21-ae8036e56481","name":"release-ed1aab73-4b8d-4208-9f21-ae8036e56481","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ce54b51a-d532-41ef-9ddb-a0064887e62e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825172559064278478521447329825499753853180465253293538723896615682235015651181441752910125126086174360354152471282210228045483472397324897961201916619316613682685824741711394149750552084007302428593614911560046822369094171956517583798530230310802280919048186444656353909839722720812972043279843650522323598765168540317886390883068218418427800366817379125514694079517832680552796181550111493415697572219454164276511407098910946843089","osProfile":{"computerName":"jianyunt2"},"vmId":"87b83732-ec62-4bb2-b144-6b55d01d1a7a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsquJoGslupu/kNoHZh7QQzzMebCzJX18+mYzqG8XsvfweSOzzlU6n0CgrjLYYAdTlJ7BPxN0py5adDc1DydW2bNfPlZ+A/dhE7kqEDE17oxaz6iWIziWpydYC5VuDgvRqN7E4NwawkQtEukUDFZoy95CG/MDX6BcLNTpDLXaJ/9HzzhOYnM1k/4MO0+r9KuqaHWrb1gCAIvUayMm11ejoop8QS4EeGabjV0a7/fbFemeosnEdv7MQfpxlh1u0cQeGqty/LemNTmSX61UMBzNza3mnXKRkkyNyC/5Xf1n7/1o7PZSBxiNQBmSWIRpOkiFV7Gg1V5zotcH56RKLRKHBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d6f4f90d-da5f-4c61-86bd-5938099a7b5d","name":"release-d6f4f90d-da5f-4c61-86bd-5938099a7b5d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f8c2026a-243c-4022-a3b5-7ee5f8f70423","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187236753370381936185945895926717407121897826120668115591417956496253164367140084041285283711088296225559312681616273727076264759856934544491783316686101471885977474104622601143967133871898883683820595721174945538156189464356138482578304248419795971958421628953912633753777680861496468772887230623016017042670937204922734898851756590245486023481694219144882740036638172191302680835646346","osProfile":{"computerName":"jianyunt2"},"vmId":"2c399b8e-2219-42e6-8b07-813796441b09","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuS6XBqNTjosqvaVXGdDURrEQmIZglBQtFw+CksOo9IdRXxqBodM6M7YysiVU+aE0ETzIj5d2JOFGM1W72MayS6E6WSGL+PFRV5m8WSRP6vZ226XllRNTSjTVLSg5zZXt8jpAFRe+3e38eajp0jTFIXs6SylPAHiAAD1lAIP16D3/q3lycbCa/+6lXVl/g/4ey1G2TEHZLAXBhC2azuvFN5EXbMrkv8cyRwvq7wpP3bjK9LWKRioShvlpjKW3wqL/Im9G6trWq7KASMDCqyb2dDvUkkpcPb04hv6kEekYMdqubbs6Xr0179zn5ZPFJl23tl43moLGdOyPQvn2Wh5fHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7ff40336-5575-492b-8eab-ad305b1fabf6","name":"release-7ff40336-5575-492b-8eab-ad305b1fabf6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f9f4cfb1-a86f-4620-a3ab-4059776a4ea6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41887817766459524996911993436909983339966655129771768889671196789693783133853197358008162184383315625948271171797470919105606737365701241131908888867361316554112989632145408328374174920959884341840261525745671884292616989892988052773380859517843474175279845222797642181984609150340370699914976320138574106350048396357994322481859584891094887461467335376055235725967487549727929693950265793910780083138477","osProfile":{"computerName":"jianyunt2"},"vmId":"8f420f6b-e30e-4bc2-b341-8280b67c9eb4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA31jTAtRerFtIavoCjoKjxyoqPVrjk2dzZGdhZgU5dizZHsNR2d0lJ6NYioqDbUx+ObJ2llgQm8AAWaimOO+wtilEQnapplJ8OtviBRiiqzjbzS7HZabiGNRhVk3Qy5AZMQ08738HsBcp2A+d2ezJLuF5fWETL2hLxWxjrA9cPSTCbB4ILyUTUKf9H/4grLRHCzGt2vgRzMEnj46X2omtDn+SCYV8+oRGJ06+Nvy/l/+MoUNAzy9sHiooO9pkZXQFT7+q3EmV2Nb6ekNAzykFFIurzaZ1iYpY1CHxSqRwhquy0NNzJpVo2WiM4F25N9GVJ/fhWqye0CatcOyGBuIEwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3e1d1c44-b3e0-46fc-818c-e8f23b6a54c6","name":"release-3e1d1c44-b3e0-46fc-818c-e8f23b6a54c6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"27fbca92-072a-4069-b63e-bfa2ebc03d46","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41866132569161285999955682085357174724211299827435847029537375720438641131387673295589537693045559536750674089722745702264829544386135971371831103546033856499396162233758541760389473557557054590967848199244430751232270691345025609447954703963119984121971479157909353465601185513850238952698426976098539280442276631863315871","osProfile":{"computerName":"jianyunt2"},"vmId":"2c661c7a-603b-482c-a10f-e1728d34ec9f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwXYz3/6SeDyO+y1YiPdIhlUz+t2xL0y3vTQnlGWvVUEpZqgwtO74mzrKdDD40Sty0VUJaE0DTZNhezIrS1SN2GyLTqaKudgfb+uLyvkp8KDg7HpFTnTTSyDTYoI+B1ENBSTwoG+QaxRAxh2mBvQObDyrlQvNIja4jQEwsa4WZBNp+nR90uIbCy/G1YAIQ6APIfEcis0xqFyqZKFqn+v2tEaDLg3bdvVyKb40usUhJVy8zF1n5mKGOknKuUoHVHD80vx9PfrNDUpACXDIq0Z2/zuvKQ13X0wDcmntUIsn1V8K3Y9CzjJurjRmKYJj8sPQ7VEDhs+4U6sA1q0acIlzAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bb8069ed-51f6-4225-9c56-c2d2bff89d94","name":"release-bb8069ed-51f6-4225-9c56-c2d2bff89d94","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0ba9b2b8-e0e4-48bb-862a-887d5f890149","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182085472665478378931259945763539424043589398217399189918160774787343324728151257678662270827884610165632306216566957989455926053079273757934443300588963359877519642911015263834777564478495762056184583417798807420285481116397352920817016052717242432541674619044466638185457152722719079471576574573917226372658654284702727289431511139474285737","osProfile":{"computerName":"jianyunt2"},"vmId":"14d730ba-4927-475b-8a4a-874f5d740544","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyFKSEWM+FN19ttzZxAZP1Se1z0QQtDjeZI/UTJ1+5QP+edpXQ5i3kPoZwRyfVrg2XPAORMDs8oWqPDcG1hhe22GI+8ItrToyWeadZ9VaNnnnwLeyV3b8t2Ds4rdkwhga0Unwt1ahb+f5URO+nrkN7AxuaaxBuYJYw+yr6/NB62FBh0J8l0KroM/9HdiryvCQsrIZk/PZHOlqjN36NXMUgcv+FXzgfYoiP91RXWf9SnowvEbZkmdgFrBt+bk5vO18j3LFhM1sMs8XfTBDdpzPC4ctJXqnaKER5+9K00rqzm+dKphn+OswKy4Ix7sP6NZojndJEiwFytIIkmhrcGST1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4ed9249c-e2ef-4a86-9eae-759f64026f92","name":"release-4ed9249c-e2ef-4a86-9eae-759f64026f92","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ae40ae43-7525-4c55-9d4c-a2a5a9659954","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41833758832192751819859827321294866263813643582004224546960328703101969551733452967278084470378292567110961739291972436773004330819272312126442411152609658845615353234160354898879360723963785799232107274312247064925871953248955471625779865325281208501146821698794263371955137943081220662459403812324359893619806419715781783971063419025541577514468076114918727149079827688471746265948726517413","osProfile":{"computerName":"jianyunt2"},"vmId":"fb0ac09b-6b83-4bc1-8891-3c198c585d74","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxK3yB4yBpiTvQ4PgBzFFgEx1nkEml6X7ZtN/EYXBMJW0rbrA9BK7c/Ldg+2mF/biskHcSPU+7xJdGlvAfMqYRC5DU473woAldm7y2iQYdq8j0YPKeIyYbtliTvSDyEH5IvZmoP7jseKcUJMsIRyeRMobzGslSldRjKApN8h4SoN3odfwA6dOYuAf5Wh8ZdTJO78NWmeqTCtEyG/8kee2cXJQjgFyJQSfL9SobERROUIb8HJuAtdyKKxaL+305d5acMyvGuAFlsJP7GwAr/Xkxx8od4rXPlVP10/sJ0LUwXPLH+2SrG4tXEh7K7aXpjEQCCINpfjeP9GxeZhTftu+JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0d16754d-5735-44a3-8ba5-6f6873c4a354","name":"release-0d16754d-5735-44a3-8ba5-6f6873c4a354","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"840c0a7c-20d4-4394-9aa4-b850917315d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895364528947271616946559844713852671638063265877510717790204520138961426146063953831857815835616028812723114311821927903498371472123651114663336468315776439345959559601082624009957662184915913275652994089216212884330251963111661159933543125679913595840734625343699917362614327518056876200986667912708768102949494364822540242374884697544785248836874","osProfile":{"computerName":"jianyunt2"},"vmId":"8e037064-fa30-478d-9500-780bba2cac4a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzvKXAxqFUtJGO0Ke79IbUvIFEpn4x0NyvLm9y+8r/svHv+cz0Rw9CAP+seS1KOaL+o0HWnpKkHVLILU+5kpMgEYWyiWQtSsU22Np58Ij320NAfv/UmHW+RgzAermqO5wKPQ1GtFnGa6hSbFySfBpc2w2e+RraPRXDJeN1ipTBvPnxsit/fjSWD46VZkOHjDLhDMwhoxUqkEVs2MgS1sQICyGFCAUy/wdb879Jdy5CLqJVkHGOe5xV6F8qHMcCH/9iILccQnQ7gXrbuTK3Ymg1iJtHiJG4w00r1vPJCayd5k7qjO/a3ep+tFvqCFiTsJsnIME7EoJk2MPL66Y2KUsmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1278f294-d020-4695-91e2-bd78cb364df8","name":"release-1278f294-d020-4695-91e2-bd78cb364df8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8beef183-efaa-430b-9611-e2c75d6b4c36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41849624367299116062075424488875881679559579609224641056813560821987929071796177756051284803037021371462451867195376565367404995162862828343747512836743425882031903627739621264738736301914189198957947150177612880114927683691595788161934508303277635970742572254358971643761725268726748211967586530801547417030673438952769137695712136515862939152206189579631267519252882170662303055833349283155407","osProfile":{"computerName":"jianyunt2"},"vmId":"d4960fb2-3ee8-49bf-b2a6-9ecb4714ead4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxm3ZL6eXpA5ddQ5D4UCDvp/Wp/DJSasQpBvoCNqcjEeDMRGecxA5eMBiy9SQ+eTaCgWTq57Qoq4ygUl8rrfZhODJjYwCoRsUlLg9tlcJA+/3LJCAihc5DS1v+AamwJVcg1WUxogPP/8GupLI8KY3EB28ZwSvILwL2GVFWRgSlyO+GTtDq21s2PINp6flCGDRJNPY4RlELMy2deHdkEk86fOsu5FaF4xthpjWPxyorwdVWJO9sxrxUUhALjMs3pJADzHpcZ9ju9jTGne3MubS+AzdNfH1PaFakanTqoyUDg1keCVM2hufo53YDgYOb+8hii+vCrbBdLms6T5acHbpfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-923ebb61-e96f-4daf-80cd-c1bf564e59f3","name":"release-923ebb61-e96f-4daf-80cd-c1bf564e59f3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04604f02-0da1-4f77-be8a-6df098eaaa9d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183058261563300774441542984747991335887291534639941463136118608797279128117145887777210796605460790279822204297165257278922636547845598220408486689368446423646856936729651549571564126278804013895289822796517869177717412395309722061041789508711670850734439604849934165732213365320651114378475782737714626540066185509480148965887718889357648174979046967481224955725646368833289248420657279828761476752","osProfile":{"computerName":"jianyunt2"},"vmId":"18b00364-f621-4e24-9fd9-9592779f738f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArwzfBHhFzmkApjo2h1wO/+g14Ss/aD/YrV0KnNM5HSaDG3g3/gBH2O3/pRYR9ZsKCsYeH48ZW+nT7O8NrbPvmAMa3vgETO3p9QIG+Q1GfAfZsldJNH4Z/Dmjol9QRjVpcT0a9tfH3h0DMYA9n4h3wj7IxEnmJhpzHHixm3emibKtjxy8FwDodPDfY++07AzSxNxSci90oXD8EHzWDuazJa3j67ZOrbG7CKba2tKjOvfPolRURsspPVRMgjmSbztL94jrwjv8m4yIQaOzK1IPbeU6bCKasGzRAOh10qgPrOSDi8QtBFodPJOW3fpopNLin1OLKlo5zTSIOOMy2ttDLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2a7bd26a-1307-419d-a9a2-0c8add49137b","name":"release-2a7bd26a-1307-419d-a9a2-0c8add49137b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"edb8289f-5e87-4498-8266-c90f144f80d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185671443703951344111151495336018329932459315821368594601281323691927119542479886522531648454584202844128210940396359825123735435245432361470711386631697059871676111904852692426474540385970801737634477677149049641137417438471242942713761684179247517852800289217506802440645403785243296211982771961324904541817793119485897471434417530705299373378157550372716","osProfile":{"computerName":"jianyunt2"},"vmId":"c4e9eefa-2eb4-4b74-a885-049c0e4f7f33","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwxEyXCCsHXywmzd4Ve2DE98KCRCFHgFh4Dzf1ByrzFE3YX3JVEboE7QkSy9DGUgKHVke1ax8GmgaUCe3P9jDchwbApR3oJo+sGv9eEKBe6Prjoz4CNG89VGsEN/8klmrUU5kES8bTo5XDYOPh9xfgLxhb3NsHABV3Lr0d+euzL47DXOCvtiqe78+/yDpeDX3UxOum6VAwYXjlUE6cb9FrYGkLTyc12AGDcA6VV/XusBhUXH5J8kwg3DUbJXcHaDS7IrPppvSrBbhEV73hvWWViWc286AWq59OJUWl72u870CblHR3mUOcALnXDttU1KFP1AUM3b/9E4fa7dDvwJCiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-52dc87cb-a63b-4134-8618-63725f87e35e","name":"release-52dc87cb-a63b-4134-8618-63725f87e35e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"28271313-a646-45dc-b6ad-aeca63e717a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41812829730422652793485306650478155908824666332965363895530847393226662288963265758127716167281597809229637944808610928071123987009149851264321183535991681776854477722971862588323653193869410678606031805711658051600866749382867863844166152887264229651938361182443095104389675692570947486985958519329712760247716044269410192852597377388853784826940873266115747867083379742681251283593324117617","osProfile":{"computerName":"jianyunt2"},"vmId":"ff032ee8-c246-4256-a2de-7468e0923a87","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7K5DVoOBbMkKLnD9i5JMGFcA6Mh8z+lPHzp50R5ynRYFQIHyjKzYAJJfI5Y/L1LGjcZzMnGojoACyoRrECZJj3MogTHm0qB0SMGF66OFkwINlxOFf5oFk18kzlOkCiIz8HIUdy3OnVStW2BVeNWZo7UCdtn52iUKxdEFJu0bJXh6fqRrh0IF2HBbQdHWv8OI2lujnDqYJ84hh1snv5SA0HWRQQEXnhj27ZSZXvonVQpBcbRDIe62S6yfbcuFDPcF2ImXslaYPq99KN4NI1EhaiLzJMvvYsjst94BNr5cR8KrYqXZOHrIJ700mCeZBLjdzUP2Nr4hQ507RbCyZ4SPswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-53433916-fd3f-4b24-9d22-a8c12162de7d","name":"release-53433916-fd3f-4b24-9d22-a8c12162de7d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e2d00b61-84ac-4cd6-b136-143d5df778f9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418792083764081762739085104776126386161163472259788481610149731634775212186386311757442836581235797710911804585147397958487108298083870385297677322167636443108422928646288212224872176105263587332608970078539164860670481688659726020857236406369536864765970195043888734831887697019435637496882995349324359381488382651632285791754033363870307061","osProfile":{"computerName":"jianyunt2"},"vmId":"01173e86-a0f4-4599-9666-179964684411","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtqDg5D6H9eIFxilpB27vvV8BpzqorFVkVzxQwBpr5mY+P1krFrHwt6LPa+HGGEaqtkT6pq93St8ULkvhwFph6T9aYk7VpociZoViEk8A2Wy0RRNWq5tf4mZXAtooQrH9TMiCpxe/WsUKdRiCJsqKpYvoXQ+rkgpaRNwbCF1v+nYrkTf6vfVBRob9cduwptycnZAju4bGJsZ4lHBxSv5BlYUv/S5Vv0bK4vBpWyBX2ugACKANGvL//620K9KA3Si9z5yCwSrPyKLhCZfND7+UNps6K7xMrKZqtubJ9amf3D6YsA6yfHiJKcwglIT1esuYTKsIybpmlXJvidy02/Rl0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-01c89e34-aaaa-4295-9194-1e8a13991cd8","name":"release-01c89e34-aaaa-4295-9194-1e8a13991cd8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6da635d4-9ae3-451a-ad77-57d4742ce0b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825677268463479910426444322752547084934278422369282609537777657258998639814794536895213494000131686485911536577325557310464648562227422675848955470717566475293920856738670673880084060158113756913767435483526745356710151711749254673017818802933664274607976262422457199712410030743671579756932931026738611316805449919344066566716621719813361463857","osProfile":{"computerName":"jianyunt2"},"vmId":"b50a92e6-4df9-4d8c-8043-23da2c9c1e0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqeZRH+hmpWa9iWZ4EXKzjYo++hnm9ELgfSnd6RIZyobMBYmQibPNTbxbBOK/FtRXhhgdQOHX1zRDg9DCQ0BTBaSwAO5xdufNZAXlO7sYJdKr5MszAtpJizBPjsohOH6OWhluiQzkB7sassK1U4szIPhqkaSl8io2N9WyMvJpE5ltMl8OuoFkuBE8x7rZx+yjADPVlTSlZychMh3TBEw8J7BLdriUSeTJVosVJcomy8LmifPFxSGZ4G558DsTv9WwwWURW67zCKN/DgmE7DGpzClWHzsJmrJ16ezbDvundAWe5Lik581cDs41FwhJSxfcBXh4FTmtbLmQ9P8kL7NZxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-25c8dd6d-09d2-4db5-8df9-56b107692550","name":"release-25c8dd6d-09d2-4db5-8df9-56b107692550","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26e5dd6c-bfad-443e-ada2-c840df8445dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183376748912676082453435445786440311375206123437982029395216116135752438763622695967895105182692637489407905446917818204180883940336818143792132467998260318646888409619285302320733280514875576043146870354548419812603492593277243050357986882530563795815709509963885457529079060649186837333908286194799069836733444401697238466884399456991476354318578647802539798369370961926167501","osProfile":{"computerName":"jianyunt2"},"vmId":"39d22b13-c97c-44b0-a983-3f7c58a61209","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzN5WQaKJUrLdcZJPEeOeUtbcPknuHJgiQRPWBKFZm5xof/3bXl0Q9awljbzwC/A4SOJuOk9x+tZOXzys9avYwyidYom2cKKS3X0QnL52qKtG2oOqO1hd24AICSDBlJd+C/v23kkU9qzyG7uPdfPK6eEFe6ooMLXcK+HfWc+EGHnqdhfZ+qxsoT5GRjEk4TVPpnBEqBAvnJPt0+VMMoCmdiD+2r22nXeB1UfGhn9MV230/h65F726338sIyUdaMQfusHr4r6yVM+2xXZA5zOYAWCZoPYF1/EQ/W4FpkaId54lby7LK8sheZcgO1ZPYmB64BvZodkthuqad3y+NV2IpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1c743996-7e1e-4a54-bccd-bc58ca68fdfb","name":"release-1c743996-7e1e-4a54-bccd-bc58ca68fdfb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7f01cde6-d8bf-49ff-a94a-1b8051538b55","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183780146647464635789614361626992445526854500742677835079442091075096807414644259135375932655232735469792220249494687435726751487554309463751429589112433970991090855750488738356995282387461111130071090531945214931796449086913344475135325942644205381109996305056103298226366123688809144668157556115405318151811738152677643612027432355384077377766136736465788749425236880547893183376920659079435","osProfile":{"computerName":"jianyunt2"},"vmId":"861719fe-70ba-4295-b7f6-f9f82343d39e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp0D5Sy0Mknph6gU1JTnq0hBZ/bfOMCSgjBpRc0nPSby+fW696Rpw69s9FYtvkitbO/NNHs/H1S3YmfsQI45B6DPHzyogTQcmUfklhHMAy9myVD0tJ1sLabYcBWFnJQ2dMSjdQpfpb6pSHqvupN7gNt2CKK1NASpCngyCwY2NpHOH4itSDmFH/wVO1NGPlWSTNyPeAUm7tpa+uIKIFUpF7/jfL6mvej9H6Y9oHs7X6rVdTsrO8uIk6I01NpjSfw6MlpypPP/2bptpREEh42s8VLK7AqTkkNA9PRM/x8JXe35Ufu+nGExinacq5pGsj8f0zqt6DalmhjuumAoG7ZiR6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4d67fc07-9b04-4535-8a30-688684e985bd","name":"release-4d67fc07-9b04-4535-8a30-688684e985bd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"397b6005-f619-4b66-b50b-e24a9570bb90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418544424402216306780566959722126157297825774448225495178531304702777437638618268398492676683822159549584868039086765814803691576121662531733671950328233889054621638665771664541988788316464223679929131377519928607231620257108683285053771776676237145195629913438905078362373908184912773740845667182040363855652615908639166270812674762396318661805254054285020845367478506527124135915954382346337087461","osProfile":{"computerName":"jianyunt2"},"vmId":"87c301e6-dfe5-4923-87ee-701ae9a2eb6f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzwLpB1X7LBgHWmnNNCK3RaA0ln5nNeULqOdxgQeG5WK+0BlQAkJQ1czqLZEgAQtqLPYFVP5T8u4sokvsBoBlui0d42cjDXGDCIUCpvf1+qsVyKPS0bzrYWt9cgNmltuN7BzJEpbBeNTXYTERMcFCP+Td64ZK9sZzP8nOmSiZkL1mmwu8i0VkQUK1aD/FG7eNfWGI/pfAtR8esOXDVfUWDafvZwj/1xX53+YsNSNAZ/55dhPpzFdgimanlLVKS6UZLTgAPQSuOb0gMouDGMSHQCIsnlbzPgq2FQtgr0ibnpXTvFWh2qMuUYXdhivyIdT2vDpNHgEgHfB9cR98HSUPxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b734b7bf-606c-48d5-8d68-b399098e8428","name":"release-b734b7bf-606c-48d5-8d68-b399098e8428","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cc2c0e0d-8089-43c2-ad17-203847e34128","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182665631626389334730827683436308723326528762360671135257997587074374576548664914452824829435683404300552956796194969970454749619468923569664093984445343969462178719026444383019422096308316468371739651083775688737295222057837790648546473096362834885299865745552584828527026816338719754607884308328752194865865912222895244362836805069806382605725975783976794879496052243846717281204132894746","osProfile":{"computerName":"jianyunt2"},"vmId":"10432666-3fd9-4c9e-a56e-53d6afe76933","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzh2NxyQU3KMbxmCOgXgngFoOo+7ceIMEDXqh08X/JNiJkVQK82gMUSYAtux4Iwz55mmFSdj9T8IIfM8+m2dyTWOWaNxxjACPOhniWwt33Rl9pRhUynSiEEEwsa1iK9o5Pkv2t3tySL1PZ00uYpe41bRmlZP7Gg1EEnei5zWgyp9Q6T1QPe0rc8UIPlPpXr07o4bfIDWwgGEyFSN/AwgMLiyQm+HjhZz0VQraKbCNWS7/XCiMuD41nZ05PV0bmTv9SiyVLHeILdCP8vTo7dipH3SfZA3bDurrPnOLsygQwisdPSiu9EkKtNVZ9MLUloBOa6cqwLQ/QQ9tEaxgTAvO8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-188fbe1d-b125-4d04-b7a5-c180386f8702","name":"release-188fbe1d-b125-4d04-b7a5-c180386f8702","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3d5a4881-7b53-4af2-8b45-046b7908309e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41858629338716304683581594336598478931285317054166591481170183636312742778383974193027674550577490728708989913951787525316787567665615148466897841372619649021059505471311648936065308297824875654861267792725283621567474576599565333781675532667672803937411166066734467216527034818280252662442383898510249374349602861182639038946484727535352451134652326998747537207629068506158791507635","osProfile":{"computerName":"jianyunt2"},"vmId":"41d2304e-9da3-4645-9879-83f1e3ecf478","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3XabSJTuieEI7O4bHJwq3vfEQuq76S3hLGA8iP4qGBHAz17/X4FAi2Ef/YkcafcDkzHYKahVnF394dfX0yxIt9Oq3f6ZG0BGA1OH2Bm8mx9wU9O/1RvrpBoSWRd1gakBs+vTHH5L2AejqnEJSBfhs9UTG55VVhbYxsg0yo+gqcAHN7s+ekluivULFd0OVRc1mXBVOFxTZWgugiplSfoJfwCDSxo6oX2utAtKqaNe8d2aUuVt0Md9ztkZFmtTO87pKqJhWAUY2gYr7653jvYcFhl1qHkQbEneKY2v4Nnkrbkg6n5F3jJrRDd5/nuK4qtDIIXJjKoPdGqQuQH8EC9OvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-65d9fc55-aed4-4454-bb89-6a6f4da5c040","name":"release-65d9fc55-aed4-4454-bb89-6a6f4da5c040","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ec816bae-a04b-40ed-aceb-07748c64882e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418863094114564404656375782314127268215654179655335877684600032813815310923553138468457965265476902143265531552655300239952859455457386128505379862682365994461824764986440518746904879369383372147886623780734894971403440226693252056634892695836665005155935774149180145090724005244221257661012517416832986814868180415283552935689064932510055985698111739939","osProfile":{"computerName":"jianyunt2"},"vmId":"044f955c-ac48-4768-88eb-948bd889ee0b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAncOww7n6Q3pxrwKT42FSB93HCPoAewK9G/baTvj53PfCuxagKTih33DRvrIChxmqmygPzZ2JEE2PL9cSO7mZKNjvWQQGAzTzoK/kd5vb5oNmIppxEg00161udl1OCrDdpm8lgpqRO8V/lui0Yf7Cudo0XDPr0o7ZIi7/+Hh+VJa0EHv/os2EXpsrR4SXBwYUh0ujuKNdiSqEB6Gs4m6wfbWK+pklQuMjVXdBumklww6wKUOcKzTXFBRgmn3ZBvXxHLHS6Ml6b5v+o8TESgAUOQ6U6Eq09mxXvLtSU/yn1thkf2A2z4UYVrIgfDTtpf4dF3EQJNvggKOQIwYciQHqgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4cd3ae69-00e9-4087-be55-13f26d3ab86d","name":"release-4cd3ae69-00e9-4087-be55-13f26d3ab86d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2bb4560c-0c97-4ed1-a547-b5a958dfb91e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186371161932166061337036185721806133462303989338035653592055797949144450916693737764814329554968362958691052474708934436564511455456072157123255287513215669195351168972649864394923805321182482113371532219801297135760663920340463082175375754894775863119744049175434815012451580657963840703780075319236968471163497649608680427982496148741402857919842081602294293748452734927375108201168718185525","osProfile":{"computerName":"jianyunt2"},"vmId":"e6b82eb2-52db-4925-bd08-26d114c946e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvLzR+Lkzdx09LsEXSs3/JARUpVHnWR3SzMfo7fFlKFRPkj1q3XPBiiljGVfxEcvt7uKMaVQ91xoV1IOenkeWyfwbzpCbnxSMe135BPWy3ayr/R76No8PSX8fDq1P8LQSNrc0nPun6GjLAXGfSmXqm8sjjG1/JqHIFwh9mbaMQdZkDAcTvNXwmaXjcR4EegKpuCEHqB/o9i21QBOHZC4+RAM7LqR5TQruPcVJGI4n9jx+QuDGvBEXRyMSYwyP8e8KciRmY6B7vsCH723nPs4DmSFKRliLtnVjikJfkzrVjrPmGbZAbH6jn/87Bq95OVxC0OfOFDaBWEIn7Sab9vu8JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f2ee0c58-0982-4046-b73f-39ec614b02c5","name":"release-f2ee0c58-0982-4046-b73f-39ec614b02c5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"676e85bb-c644-4015-828f-a4ba5f3058e3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418449263382944334214064584184520996232948385051128383516185680362237289134569960879662961736169714866778694283076872362994948441613676425785067914726989528678591434359128568501544282001108435495451520348573064363114697683722536561961868696646159585096523788803110922446215381118368802641367632198231003353978685735478260996831955238226939254263648194597056631477274379586306252112713284536184650903157","osProfile":{"computerName":"jianyunt2"},"vmId":"c175719d-c34d-494d-90aa-3d881c079c29","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxkeV2/qEeNLmL3rsCOjfX2Czt8bdKVPEP6mJafRJPCiUeakifTLiGRj2OAkVJ/3ny2ICcAve05ywVtFCRbkUXiZnF7zEo09+NcK2+2X2BYOtWrAkrrARQtDWd6M5Pge87mgPnY77EZ2VlLL5vql3M5ReW+k348jMC96IrnxoOjk75pvLYXuhn9jz9M1Y6550j8RVre4SY6RJR6Wlq+ck283eg8jDxM/uhj1WG0y1Doc9uxcgh4P8jqzuNk24UMGRV5POIUY8nLxfJwjMaGpxpCtsROrL6HwKVnE/LNq2I9f2Ky4S7DOZ//g3FGymh4qmIiZPewupP97G9hZDYRDQ+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f7f32dd3-a290-4ffa-a3c5-354698b8fabf","name":"release-f7f32dd3-a290-4ffa-a3c5-354698b8fabf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"542f02f7-dcf1-4cd0-a730-dbc21dc7f0a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418560119669029718135157250298139489167344089105885600788388022366075956674967918900930617885123159819618449568166014151069339600461673144911692559209871426879741291973972134569880291529649736221359912651382703589635746678162387354664213447395053379194991679762948754642495623257873329274043645927335694300567083519840567431850821860937602828486539156896679953365436564381160650404713","osProfile":{"computerName":"jianyunt2"},"vmId":"b761459f-a859-4fe1-8fcf-d9fd8ba4195e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs/AHlLXMbWDE64ty7m5KaKyR6IDhzQROJ5R4uz/THKYhsq5ohaL3aTn8v+dXdOosG/7BrBoANPrjyAZ5nRPWNJMbDtAIu30Zpcgk163Olw3eZrt2pZZNGwe2W1S7fS7NiyaaauiDBYW9XOyaxAVxWjB58miBfG/PIYFPYwXtp6zjCehkSYhKFSL/ub4i6kRynbk8NIG5TGNrnUC89jxIPNvgYIC3hMGYOQVJOYP+JW+v3EoE5JMaXbGy41dkvKGCy85xEyo9OnjU4U8p52i4ZzTLlS0YHEYgqqZ8ma55e2MvT08CnjjAcqSIg8KlKcHfpEOxlDrCnPEtaE0UlHV7HQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-26cc3d00-fe66-4788-89d7-6a29eeb7528c","name":"release-26cc3d00-fe66-4788-89d7-6a29eeb7528c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d8dfed95-e7c1-4bd2-aa2b-cfe4b229af33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418930746029769782948767056124557853920309254130512815117171333970888665154784735563826335131160034949950500487548934669853464965316235153775712554123465566903380260952501514448765673562271369954085704547718665148941155325280148889212302418964100388893283015997866871573714954658395918118727509363779536615578047333639221015655006448","osProfile":{"computerName":"jianyunt2"},"vmId":"421cb251-fae8-4f36-8661-23f8a73bb0ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAySm3bnupYFOmm8D/I9HGd/4v4PmDJHbj9VvbrW8x3UZgNwi4Bzj9fmT2Ju44buxdI5egFMvJF7VvxMo2/DnOXJpsBn3TTA50WONZIZ5Qg3lB7Mcvmd51NHGZ4N7vXg6GsFus4R2dGcfMhUCKRlxcbTZs66ommtWceA35GcXwBVOcBTjn4VAVlQkidYDNcEoLyD6S+lvE67UcNwe9Q9Kb5fJltPLwQGRqr0H5zijIEN+Ex5KuziNB4R1rRQFfQKy2Xg7KDUq/x0OivzA4Mv7Y504Z6ZbbwPVD/GwLizD2c3rbsoEnQYm/YwSZgB9BjlnbJUq3c17Mgwuc/WyH/SUqlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-75b6e844-4228-4d08-9884-151b98b39d4a","name":"release-75b6e844-4228-4d08-9884-151b98b39d4a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"64922763-13a7-4d9b-967f-ab44e94615e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819536076040802114223327349466256584757391658237829434372285087605226946737716869611783596061800488754769161568236202012420049821888419311775067576485812767200499433451374749515858443862639576331923973528856223371118420853249238280333885923668661851164912443317512352963011652208231761556715305685736020743122534424403715719079266160157229798502687533643532684020947356059","osProfile":{"computerName":"jianyunt2"},"vmId":"93902f28-37d8-491e-b442-efca1e8a7bbb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAymWLaEQY9a/aTGW0G9y59iXbaWcYVLe8NrMtuYG8dX4FcR4drIwMwlokWnfNHhrW4mmGU7+3316FG1F3FKCnsslnSNm18IY7RW/M1UzKrPXGvLsdurzF949GlXvTsIYMznf9tZnHxVEMFftl+Lhwtd1YVEtetMP4EUo01NcxI+IfZ2WQ6Jmm39uVz0MajjVhJFLLaYygimus22zu1SiMMqeaSLcz0uQuysdXDolMv5ev2tGqYgCaFJb4GvfOXBxOKaHJHgMaoefS1ZIornojAHYpc+T6oiBvCcw0tbBz4c5uaCNa57leDD8eVny8nzcSsDM4TgvkSaouYo2H5iwglwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-54f81e48-024b-49cc-8beb-f89f23bd0037","name":"release-54f81e48-024b-49cc-8beb-f89f23bd0037","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"106a1d60-a385-4f71-9ee3-efe6233ab186","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418637789942390228178375408248810315001452576378843571137026609561375983749335627239309612103647384715325064105498558058149388187577115338995892629382010957707692196417233320190905491400832637411851844283408287995866542848421093166516307972651379722718074993254563525569353839627556659770892814220930513367175395202502996634534789747669127617052","osProfile":{"computerName":"jianyunt2"},"vmId":"c189fc8d-9f0f-4501-aa11-1a14df5300af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvSi0tJ8Nl0fn/3/efW7BfpKNhhJPkFbx18ZAYTFCPGQhDZ7k0EswDI/CxRSGQf222URE2/2g6T63hGrT+XLioMuXjtinDFE4nzD0+JQrjEYhYA+mXXEhVuU5MbhiJ55a7M0uopCufTkgBmgQqJER+c5erSkTHO2GWE+/8U/5tuUDmi4L9TokRLJLgCM9z/xrEvFV3AcAqMGcrilAaBgvB7RqLEBGh0AnyH/BWdI3HEP/llklqC5udjkyT4UQS6IhqVLr6eRh73/JxJubZhP2wMz1zNic+dYcfiZIyz7dLImRokC8CEdlWpJw8UlrWr1Hs29v1lYBFlnr3plvAFbUmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-30e8cd13-f696-4240-a9a9-b84f787eda02","name":"release-30e8cd13-f696-4240-a9a9-b84f787eda02","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1acac7c5-71a9-4b5b-97da-1adb0836d314","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418864018368046159584083839516538808006202998005860841257808032477245998881738848260426282443596022342508766898537153220629307981464148452282198102985659592636817196425732117207108173209043305826648547586279280125731346017138968783979374359518431878548422279796136063566529072906847363574376512344897565942257795253969340432437432822099847011976985049804982316682302772","osProfile":{"computerName":"jianyunt2"},"vmId":"b68a9737-ce23-4661-be90-6679eaf27aa5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6rKdydjiecby3I4f5KZWeyUrN9hp6HFgVZ/bfk1Grzvc1noU2mxG/bl0FuTHEnVMNnXAMy0smGX0mmDLaU0VCuf2Sd8Hhx8Ud0ikdzDgmdEDUG+nj7lZNpxO/TBo6s1mWC1VxGBrSjnrK0sH5/oCVddJkbJMXfizOE+lmjMd4yS3Zpup8pCAIiaSAxmV5gti57qi+Ml9yNHmzT9liW0CqpojeCP0RQAIBfQkfwjKgroQOud8BbX7SIneqqa0Vnf3PO9X4V4zmh31wYdsOyk8VXSZhpeYn98mql9C/9bMMDPuZGAli/l4Dt91NlQPkYacZpGQJg81EONkoEScqtriSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e1885b52-7e49-42ce-8baf-f71b74aae2ee","name":"release-e1885b52-7e49-42ce-8baf-f71b74aae2ee","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f891108f-ba04-44cc-9887-dd39ed5edca9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418956185232797249464901296902709551406721635054358800192726942723854587151502256045205295542721139328811845049564452847918495960986718134981192048675570207967115562810519887427103123586031505623433158629266330176436319552870562541966128783188381145607956348724538940776588632881812333150670956448505526037682134535849489806790671073811443746292342","osProfile":{"computerName":"jianyunt2"},"vmId":"28c82c12-a050-48fd-bca5-570b4ae8a0d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtjSiDZYpZCG4RTe+Vwqs99sWzcoxo9ba5SSEIrwJ01WA3J5Y2iGZjySQLMeP2a7eLo1O6NDv+2i8Bf58HH8s3MaL9cQ+d5nKjubl3lYdSXwp97bmkQyscHKnhru/RjbtBoMn6MG2pM3fP/iagAXSTrgKi/I+PGpfodssfq4znT/6E6NGZzaveAW7hgZcSoTpSaRQN4DKrnTO83zwKuIGocx2rFwB95TXtmisl6ya1cYMmmXxN72OaHZneWYqL6BTyrdvFfmNnapQywBwFCp/+LPtAtsn93391yYslyT1MuPuG5kOl/o8cmRZ3heAFFt2rwpoB3KOIwqgrP49CGKdWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-97fe035e-db3e-4d1e-988a-6f3d65409e4d","name":"release-97fe035e-db3e-4d1e-988a-6f3d65409e4d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dd8f5359-5e34-4286-939d-9a9509acc32e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418344568501466380837047315552274273366969128908467785113129516360780947761835137057720140818556258277436668506306025747122901981418424357646376082261950716787781985165191142780980876627184411428852847321357273652496557968287823553285314047694321125312256774280343005594958411155393055465499188046457415874982931439916026085359645553714940780637888223416889233311692249155272139779","osProfile":{"computerName":"jianyunt2"},"vmId":"5d0188b9-d05f-4f9b-9e40-e2349fc23fc9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxdtQ2PCcBzbKBM6/3iY8DhpWqP0MyV89iKPsncg/tUL0HR85m6K7pQRTzgWvEYF9V2JcDF9NzH8z0+YgrBmJXOBi5h/kV/8t4TmLLVjxEX7NB/8QWSCnN6XoB1TPJ70H2zMSf//ep8KxbD1RV5kX0r2V26Y73i+XWZmGnY0sLxoc9f29kUH4JVhRfhHRf72BJuyFmj3R9StftrMcDmyFGx4HtTBXnu4vocItyFArSq37CNkhmD91qcxDfFMCl8vFN/+hp9HvpYGBXh3K+FE28q6P3XoY96nvP2hp/cQnG7sYqTYUMD1DmqH254HCaB0IqRkahgLLtM/SZhBGV02zCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-57118a5f-76dc-4284-82c7-448c6abf75e3","name":"release-57118a5f-76dc-4284-82c7-448c6abf75e3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b56164a7-a97a-46eb-bfad-145f7a53f348","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41890573231896533589388117219601227308890331071928964340178728709943496325135666236571689781572078728846456747575137124783081368183723565641065708088961161176541687738125317794367462339471359934802097208978976052743563643403729685792487332853208475640035437892716939077165090893789772737404836541909864391679383567908580570929140372719702660949036603267","osProfile":{"computerName":"jianyunt2"},"vmId":"a965777c-3998-4dd9-9e35-7eba913d61df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo3tNYZz3qWrhcYpbG+FpTqg9cOB/VE0wAS8kRknxe6DUnJEMrTe2mqd5ppec91BOOiDv1j/NyZX4jEMwXetScyvxjUU9uQiO4UTORNnXP1UyHyDNw4a1M7XBypEZJdvNt2NtH9Lq5TEwDx/oc64Mu43slXXWwMp0UWrAIBLWXpNx8Aj1Al/rmqKl61orio1Ku0+W+lfkaU72gSmOc/h5S90Ls1dJps3Zs78Zd3iK4l7VDBeeZ1uu8D3TC7rCMbuWFsx2p/29Kn9pnoskZ6tEvL2/+jSsg7BPMBU1lrNOYtXEG2tFgfpjAygq9h5uWnu3ylWOhzWAIS2EsaAhceyP3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-daf6de36-218d-48bb-8250-ff77485fee53","name":"release-daf6de36-218d-48bb-8250-ff77485fee53","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bf25d646-f5c1-4ad0-b6c0-bb7b1212f4ba","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418654684295400804746328619369994664685630875898735304935269217704221693701258721426619133643216019965289854388826806382637378610102803911229336437997994676558931562319249077351965926810865602756677697308581179118886413261497277400103643365524170758266979391295111252695395071525234382624724158984672027355128994421304300108175691176256627538863660824555264633486540012789852453786022397625705038","osProfile":{"computerName":"jianyunt2"},"vmId":"2c0de37e-c253-45ab-8ecc-300cfc46ccd9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwMapWn11uXzkjlYiOlvvT2VP8qeOdK5YftJn92HPAXcjFR2yLAVlVe4Z2dJtHf11Zp6lu3HuLUHx3NGZdLixxqZ/X4JpnDwzQAamRgCSm92HWN7W3prQcqTONWiYWeQqupy9w05tKlsNQTkyHoIoy3KVsCSPIiS0utVwWK/lfX6cJZLck+IbIbGMPdH4xdFtsZIN4d7J1QqELg+OL4sIuzrcJrAQso7iLIiN6V24nJahBi61GqxqjBCgaarUlbHCC4ByH6jOwWN54G/hFj7Fj5u0+57e620X/EgZn7YpxPbhczbMy6BnU78sQMs6HCpsscJUfUhsRDuqczhZIFUEqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7615599b-ad1d-4f81-9366-8ca66b5f55a8","name":"release-7615599b-ad1d-4f81-9366-8ca66b5f55a8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"aea0b0f4-e1df-494f-a1d5-56272f83a868","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186240650991487461698849528837298628182852735795319949404060341252711373319574930216407601658529383208849299668684125866772603280459072108524457118153162681096222280394547945322773637993057705322513330586848653676601596836416961086005834622976753316536558897562365717024256294796220722701987236592026809612371580317655892528578632984822659543249432212849111870696718127483","osProfile":{"computerName":"jianyunt2"},"vmId":"83895c62-7618-41b1-ab5f-64e264b0f5bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt98CNlb2k13xGZuhArnu9JfJ4km93E9NvWnBfwfmNamEJMRZsPnWGG0dQGX02iaRtqEaGGyx7yandAzk2QxW7wAW+RhZLp84I3U5hHu3/5j0LuuuUUMhhmgOexVUnvBnplHnT91BvYo2ALJcMQ88+7qXKOcYFYHP+/YnEShMXRLd/e9pD3BjD/qgs1BQVFG0ecTE2IgUIaSm75UDpJ8aa0kesINF75c57eNGWpBeb3vBwpbMfhQTH3cHz2l51mDj4sA4EuO37ueZRY6HcdfBLxUAMS5vWfUoASJBdl0lOXY4iFq8iRUW9tqm4B+yqzU5ebn2K/jcroVkcdDWxsx25wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b18a9f5e-785b-4012-99b0-db88ed6a48cd","name":"release-b18a9f5e-785b-4012-99b0-db88ed6a48cd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a899ce28-381e-47c6-a6e5-f7a07c27f916","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418761586026958908749019381596644436483913577920663548645215476800794920587391644149795037353232936326188041226411959605853708153833846511393722174155892837860179789309394157958806068625933705742717868808965672531736816941887076632565378321781145830244031862560098743550026955186367783805832768359437278470557576885752788719691048780174534252298512381338811869863462171847606422932290565481","osProfile":{"computerName":"jianyunt2"},"vmId":"191cc607-b418-41ed-96a7-224a93f95fb7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz/8BYndTOmj81Jsi9aXFBjx20WKVrdnK8nzDMfkZUorrzVV008l3CC+3G++FgnsmVgm5GnWdZcTXQBrdGNK6iVW7SGTbQjod8gskoeasolQHwqoNEFAmem8ni0FkhJWy5cblEGuWn3A0k3itB5SyowIls/jxOcpgAx100QU0Ug1Wrg4fTw2cD0DmCPLyIpQbC41jOpNmDoQxgDhwU4c3UvHQaPJKkq7PXv9EZUU1hPQ2wGux5m28DBI0uwDQeq6dCRQ5t0LnGeSLHa9p8EWa8ikUjIfdllDbx/PBUXwiOJYtLUwVLFMelvw8uHJH2533Ig+sOozcYfCcM+TaLlCYSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-00b42ad3-bcd8-46cd-8419-3516d86da694","name":"release-00b42ad3-bcd8-46cd-8419-3516d86da694","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"528f7b87-a2fd-4bbd-983d-3cf693537ed7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41864459816470868020853054519661297699046584452555119434906263144977959214819078348562909800882328849974783261797046240418692382628010811836145930040503038347141915748841384495388946934205297574072386226627785172533653536668092403332521734547547326809857188756026293660423095783028637373372978939390638314855195948935276310996202022124667151845813657366026991551863129206831","osProfile":{"computerName":"jianyunt2"},"vmId":"180004b6-72a1-4e36-b8f1-3ff976b00f4a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzGsve+d8EOpUkKxSg6By3niYp4cdjPJWxNk2Kp8W/fEh+FcREmxD1M+H/csbWz77TBaAw7/4yjVLfUa914i13ItNElmvkIRilMo3x+c3eNPVd5Zagqw1wvfysAKvhRm/z3RIWXAug+jNOkO2mGJ1WlRnrmx8rW9J/U6gVj8MqoT0eRS3loRUJipSn5eI/P8FeT3LdhIg82ZhZjTOCL5LfRx0VQTdW0MKqKk0VpLOGotEzFq8WDMDc9lgVBPM0p+nziusRgCPf460Tx3oiYj0l9UNClzebHEEPFanlHuFBFjNQPrzBgwk4SmPHeWD1H9fEmVcSqzoamXYZ701TF04pQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e1205a35-7aa6-4059-9dd3-c93ad48eefff","name":"release-e1205a35-7aa6-4059-9dd3-c93ad48eefff","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0398a59e-16ff-4d6f-ab52-c34b6b2154c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183275694423407509304643651555651315547920509182155094960516049606155811159964788480955953256919918113819215162977104417555510730295830367289131525370416988229686984201753532272766130814589180086741219565320075777679250028122131756994662172772207251264623073747247748088393352749876355410715969575864024284786875511347484838543829093603702886719151832566129357332993","osProfile":{"computerName":"jianyunt2"},"vmId":"fe926598-af9f-4556-a7c1-cbbaae222af8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwrNFTOLc3LtUKJseT7gdR7HvuAk9uOpWCdCQoW88FpQXu3ap6kPzspgn1NQu4ImDfvPATGgLlIMLUr6Hl4/FVqc4QxCoOnOIUX1j2Bp4YMsYhLl7CXCIcHJkn7NYsmFLbzm962D3YbWLElxL1Ca7r8PJNIlD4kB/e+QzAnlcvIwxD5zxOZSDabaZT3ykaBbJES9DWGVYxkzw7bHBC2Z83BBsfiiD1MuGSPuN2/Lh7RuMP26yQopPZ3JY/Mnf8uHWjdtA7xAemuVuMz23L36GLWAft7hVB+0op20KAfgZ9h4tVHA0oMKLq3greAR2sMnBfxzAFBNom6kr9Db3rk8KIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-07b67241-fd73-4ee7-a6b6-2980ed61ed46","name":"release-07b67241-fd73-4ee7-a6b6-2980ed61ed46","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"28b777dc-4a86-471c-ab10-54476ed4e017","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895398184861438542010144469469514488717777592740660027931398056125073101111550477053674961305533361904640334674515451170469535171878698873992867510195315150699967989438947679668426530980711468445136365698022897412932071413599474164132679754388755585343390598071054347411687613015603138013365130356616688855435350574167002482050816905251860111645","osProfile":{"computerName":"jianyunt2"},"vmId":"2bd8214a-9096-4ecc-b2df-37d9646cf6bf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv9YxYTmzzIOQW8Pc93dd6dZTonYDYdH9xvd5Qs+CWCnLukgAcpus2qSWaPt+d+aE8cGLdrcfCWD+wHWreCViLp6cciqPtHO07NyzjnD9MCKazmcqp6oin3tnoezPF053LjUj6LK2OEJOWVG+Ut7VzkxWHeT2mbrX0KpTUC6sqfAze4wYE5DCP9nWGblV3S4m8iAJETAA2UdS6ddBd2V4Brat/uWRxOsIVHQitjyJ7JySrZ97eoyM8r+2MeG9EQh2ToYDmqPn0JzvJopwv87Go6NLmzCkxxYCoZbGT5kuIVWFr2t9MZUFirekw8B3vAt/KsUuY/Vf9SNLyer/c8hKDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-46fca25c-8e00-4ae6-93dc-f74664382990","name":"release-46fca25c-8e00-4ae6-93dc-f74664382990","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"37dd4152-a9f4-4f04-ae1e-d158ecf41dfb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187120745092964717491230319478249648697942447986216466127269848721346365792807827961373554323973485062094440159532723845419351496490862042641243330414578568656959288463716723791128450738991186678768555256113016714791092931765468334783767638628256076756374108837551159931171701375945997750134597941304548053491281137855513485483652656","osProfile":{"computerName":"jianyunt2"},"vmId":"a2091986-7e85-454d-a934-7b5055cf54ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6VgD/82M4rE1Zx1abSTgTcGfWGoZOO+H8F79cKOtAxkbyI/9QgUTbCSFRNABDvrOSOkROSPGrVHDsZndYMKxCOP94tNw44lcyA45Vz+jXx0ogiYk621yRiP+1FvFKerVgwcSJu9VVi3NfzRBNmtzpsSpLhwzmGKQqzLyycSNXYDEYgCdOO1MsUw9cSH4HuQuP+r3Qnvayf1KQ5uubPk1EQJKgDEWYZvesCkvMCxFMfjeJMmvRaLKkX6SDeBA9KpWDREI8VOEYbIe5d0UofQzzLAxVDcU90A7kAuOEPYmczHEXd5T5lNtkmggiOtcAp05P+l8QMSHLHYMn4KVuEk/awIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-08f04979-2dcb-4453-85a6-91e49bcf46be","name":"release-08f04979-2dcb-4453-85a6-91e49bcf46be","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e413f43e-0c80-4abe-8b9e-13f1bbcd3655","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418286112288722331593476288396718318599151631688828851522354812378869319354851949519185494844985269287183674221149967609297317665068344436548376355592120943146619163145461865284208449525873718265286973365649917434295427840341786840727299363596758455132123530114084679333173828187809527262605661654797052284452597009474441980299384645847527795607805243157208736","osProfile":{"computerName":"jianyunt2"},"vmId":"3768bc11-e4fd-48b6-b6a9-edf0d87f3db7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzOGAhYrmgOinfkvXxX3H/vH3V1hzqbzZmomcb6+3uoqh3tOSaMK2EpVlsHofgACkCjQF7kBMT637nQm2GX2V9LlCSr/yKf7refchlGSfG5Knez/px9CVd4benXrqwaXzNkbPofdp7mdb7/gKLZxAVByMOCQX9ut223ux1KJqoarsbszD7mOh45GBGDI1rCRB/cg4iRwJHjfc9tYuaddm+kVjTUcjtfDPNYVhA4HhzDpJ+kdZ5LSEmswJm0rdHyjsIC6HUxBgQnTnD6ORSwBd8/nlmKS9PN6FVLJImTzWyi9Pc1tqjQ38Pyci1+U4Z7Zx4xwA4r1NvzPLlkLqe/BcDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-26324daf-1555-49d5-a036-d79de548b952","name":"release-26324daf-1555-49d5-a036-d79de548b952","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"69c0b67a-adb4-439d-aedc-f0ad43bcf548","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418436564677430600029423162666694333778343383659175278732153207787972769057318445362655858872089151535523084546570268326152580183648644851945074005740327126699096486843052093331841534407397147238809902642879375237122104485720606727472104107040601177507173716028253821289627742333383148283720797402352850385756829778365682158682243482787989058722653357277309019601275619313605160068252965183952904","osProfile":{"computerName":"jianyunt2"},"vmId":"3e809b01-94ce-4317-92c7-26ff93e851f9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAl2V7BW/osfoKGt53QrJmjsBhdVu1gFvn+89nQzd7IWRXPc5EpOzJJMDnrACCdF/gyMWUBTjd3NN4e40qeZw4Abkq2ioOkZN4yITgj4kUs8sjMOVvWo8A+ZybXtXTkjenQMz6eF7CuNqIZH3WpgyUkzrefRCoLKr68xIa0+ohnCLeyMiAna4F5h+o9qeI5z3It3wlu0WMigrWOBEBSOm1KsRprUS37H9Jf1hxa5jO7zvrcVSoQzC1UTR1F5x/A8EBoN/daododif6vkz6ItxtTEPw8sSNxJHBsu4GA0iaIUIu9dcW8QBvtxMJyeAiS6MgfQwjfZ699ybV11Bh3uFRRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3e201ab9-7958-45eb-b1ec-7953ad717592","name":"release-3e201ab9-7958-45eb-b1ec-7953ad717592","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"63a92e33-64b2-4652-ae84-c4a24504c8fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184431437065751269695560335060999602186382726826388261619036384917144416085643119730181252238382306133701247649609380115435788939303072956373407696705790293860316307583848937694748569941559478418108148737037331813962351488763337281844872477713257495777208526419633851746434528588864241682854324163809699813990488281827395191674696455001544581986618","osProfile":{"computerName":"jianyunt2"},"vmId":"528ae95b-5474-4981-8873-1f770198734b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwvlNm6crZnADRz58Vsn0pnUAqer56zIjl+90Vc4in+6pUK08w7KULPIACqk4veFZchpvEwwQLgAUZpgYdjobmKh2cgjaWoZeTIF+jmD35ZuskANSQ4tPDH/JdpSyyAz811ZQkWFY62A7zBVvnHkebnaQwBxX2ndVrDpBqqXjTWzq7EmkyxzrWWgCQv8pyMsMnr7U/NwBJ9kZMiDYB7UWSC9bPBrIGwY3vDSGHlwFAqMCGFDiJwYPHOxzGxPLISXo7N3l/EUY/V3bGm568v+uZjWk3/3BfWX/Wzhw0OUmOWSSqcUAKDysjzZSZAEEtkRuhVv0K82OGn6ZJhfbihC0VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-87f84645-2939-48c9-80bb-42bceed8679b","name":"release-87f84645-2939-48c9-80bb-42bceed8679b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2ab8b294-dcfa-476c-93b3-f13785edd2f7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41874903277599777534056280745273699529258458493904327829738131836477937242284948576477908951514283127966556142571397380984933015532560353353926812865497240588831174828790482348490810964234373425513075857499278844888421942586348839264986118939523930755828393128845394041803669225151719545735638337709681656465783641262352581789","osProfile":{"computerName":"jianyunt2"},"vmId":"cd98bd68-8ac7-434b-8e16-0ee3241feedb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7CDUljL+CFzcDI9UNJvV6bheKEKhkdeh0estaVdo7uQ4pr8EeYPIOmnY4OMXBGwjiwU/mr39AQd1POyWDF8L7z1UEahw0zVz4CGTdMiiyTDD+SEoQMFNvawPuBFJQNtfEhQTUAkA5ApI2Fp8zUPdKUrkXF7qrmRc9WqGQZAgTqaxbkjt0WM6ahyeijaMIDvbl1jmFj4pw78gbpIzg21QvjJijU/c0yRmKMmMNy5W5XdyH79JCdrqe4UW8WdUGsagjSolv9k8wy34b6V+amdt3bgjxx7VbyCxqfF6Drx8O9yqAlP2RLCHRE6d39UIb3DqyxLeIIVefeRG+cTJ3hcHeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-287eb5e0-6894-4929-90f9-9da49bbad6c0","name":"release-287eb5e0-6894-4929-90f9-9da49bbad6c0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6415c5ce-59d5-44b3-aa78-2299da572e63","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418861703813398598027633931055987951978726592616729799860988570874291892087679736143025917175045236797567198842988676197841858862095834342986602348336723807565350780561944205182836485785784511536788071803822255350497380745776922818323335613555815290882366167087731451412591164717878477175907706869939057744930301803276214796503184383134913118746209717919318678995669166","osProfile":{"computerName":"jianyunt2"},"vmId":"ce8c4568-7ba5-4554-9089-286a67345e81","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAygVT4PxCKPqpkYLCXW6px9PNfBY1tsc69YfRnSYHdiAQD26WCyORLzUr55kl9DT7EOeU5neLMgLwjO9RARD8GIbccAOF88/O47aP4u7gCbBLRkppmf3JSv4FjKIz2sydrPizTXnILSkYAyOeHhy9krxcDZriEAJGn6kBCZQZ1ivvKj//KwQps2SOqhC3yPXKVk8yRxsJ34jGnJJsNzXtfTSQFQYq50jgbWhXmHUFtt5BfY6XOb2Z5kqX1jJFLN0ulnzHgdYEqHsonQJ7jupBZQO34zK1kSySunidK+jyR7jF9mX/35Ur6r1QunoyKu0Vgc302U6CwAJ6f34QQmifSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5f11ca05-0b90-4dfc-9cbe-3c64de92ab6e","name":"release-5f11ca05-0b90-4dfc-9cbe-3c64de92ab6e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"08d122fc-f75f-4e1e-b8ca-1ddddaa52594","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41892775982208248121136843420109418864772646670324682281976686949612893378853808744999460411330876843848582828626576225928106982193723654302677737755145670026633262712956337186242865252622203134605778882400684516350204281059394689859298321799832755638583827930999231742728312455383279768977732714253819707","osProfile":{"computerName":"jianyunt2"},"vmId":"c4e97273-fca6-4737-bcb9-9f8e86abd08e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzzqdH4Q+A021uPsmj6yHFFhH92xbuJ/VdyM4kkMyMbud70ImjWdBf2ZTWMntCT/WBP6IfYtSzhSSqLl67OuJBo0Q7+Z4CrFPHWoHhWtHdj3kk/FjKAjb9RSVgZlmx76Jscox7Cw1qlsLlOMsYeHVYCo5A+NK8CHUb31149FcoY3ENlMTDMizRMaCtyB186vdThc3+B8+2QGyHEmbAArWTHDdXN/ml7aXIovY+6rgAsyDNgj9vhoyv8XgLi3nk9hCT7h6sVVAO9xbbRvkkmFlA/azhncr+ruhiKtMD6cuaghSC2iONxMidwk5BLuWXnaoh4I+8o/ZVbwv4h4kPV2+nwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-32b3250e-b91c-4622-a1f8-8607b1ea929b","name":"release-32b3250e-b91c-4622-a1f8-8607b1ea929b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e0fbccf6-da57-4210-849d-6d94f81b50e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188312441977854422217293522844646238554876192124513971490897643600451556301446109145078211269999868451138354920522652102689019252876961129728441153323099946207917289775696926414817219126616887219346044305364283737477764015584738731411952431331559781857724467223626880046017106333579845892460079468743852382333356970877236345897101569547228968921326624587887463026072194","osProfile":{"computerName":"jianyunt2"},"vmId":"63c08b92-f04d-45e2-922a-7ee40e4a204b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0L/cT0mNLkjuV5pRmtCyyzRIKoWf3DVnxFjLn/riZRA/ZvpUKr1i40hFcqLdk8l1iY2AirBIb0Qr+LqA9Bn9YHUO8Kd9661dAa6M0g2eK1X7aubKbQxE1smSyHh5CFTmLhZtOMuYdQEC5U+gvPcQYFQJrF3zo1hf0y4VxupMUeYLuhjM0jfm4Vi1zr0w/ZBlzWj4Sd8LiSzauvnBN/Hx2s0dokilOh5sOWX/p5KU1MdeZkMao/qz4DPXRindl3MEznr6ucfanZ3es8Y44pZ8iElQtK5eowEd1MZ9OdctL4SU9EDwdhmZENiQpTFj2AZ1vo0ru/HFsZPv8Y4wiqbSswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-463dfb6c-373e-4d50-9274-e5e4200d2914","name":"release-463dfb6c-373e-4d50-9274-e5e4200d2914","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6c638c61-7234-4b93-a7bf-4e10c0d44de5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418316132316689632935967678256821086565065098877877957458883555417594100794892606827202047224988684895771180573534076712797345295175458559906978270087587727060882383827700484758628963091927054007646337783678270999537336942170858253166825408958796382091839366352711815681243167307769059015523508073145752559443892002343195220807413552968385632376513769374","osProfile":{"computerName":"jianyunt2"},"vmId":"d26d95d2-6a8b-4815-8f67-e2fba13c52a1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9HcHCVwqaF+VNAQ1MRQoKfJFGHLwGe9w151YaE22Fx3sFRExxLREmhgIxf9FtNCM5/mdPPxFvjW/VCp1VldOSTS9/xRSv1P6ZVitsUhdZwscg8xGrJhHU9Yp5A1QHwG/S61flcJJCIi0qHPEiWRqn3ZvnuaAaocc4jiKN7iI4zZfs5E/4qf5w5KeUjX50VZx9S3G8N/PXefwuIcwj2c5HRLmWB9pJrAj8KY3E57+h0h33imdUgPBMQo8VGxh8fnUBsNQyc79lWoGd+4MhYQlWEbutJ3BkeE8SwQqvcwWRrRJavrH26UBD8esjcJAPZXXLgd+xzuVU79V4yd7p6uahwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0c902d20-acf7-4b8a-9178-eb99358c8582","name":"release-0c902d20-acf7-4b8a-9178-eb99358c8582","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cf0c2eb8-2a6c-4e96-b475-e3f3a3d358a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418345218958896469944143937068335710935196339821532709565469461875485289716107199499481241411535457262672370312336435442306948270181105490036772134946763692375782174408273106729944264669039423069944139666065387518749254671289713784578559767537927669996361902194150066383675696090379253168191006712608856676217600539473258571105927957698417421018894235769650898551632038724429627907706","osProfile":{"computerName":"jianyunt2"},"vmId":"42228153-29ae-40d8-a90b-14854a44ea0a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3A3qiMoXTZHGTHUjn+/5fgohutKn3ogKohKR8xyLK061TxbtRH60ge9QA5IZnmgEgKDeSDNWfwwFle+hO5PpEpVtmoq7TKAWS2uWn3PfU8ogRWHT1fg1VdCXuhJXvH28hHJuSNI+8Tm13UlCwBZzBqTQV2TBJ0ZK/gERaFg9KSdtIAv75gBCnEZUWNZq9Gr1payMvl+It8R7VHO8oRb0i/W3u4CsW8TKlvLh9czYKGqmp+9D15qEhq8gC5FCqMJSbpU4FSCQ7UXv4O6Z3d0LSVIuDhDYDBPbqGOXdrlgl0emIsexUVH2A2/Lb8Vdk4dHY9yPVFumxsS5QQgAv2WhOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0da0e161-bfae-4091-81da-db08260da484","name":"release-0da0e161-bfae-4091-81da-db08260da484","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"64d74948-068e-40c6-be51-83047491a4c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186511742076996241931673816212360425098754135127460738631069247956292415019029718638216491621142921174079256054458568393861192245178558921128766315138167766440682182183765380941038852755386037759566949755971879238085389103559477146247660423922734743517491168338165597474111750649126199697287317439161951656909981272434480762295994459237893101058615091530","osProfile":{"computerName":"jianyunt2"},"vmId":"0173241f-87f3-493b-808e-9dcf37c8951c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4V14yE7ODC5qIg4sw2kCDAeQyuhvzYc8GuXCf4tCK2GA+BdbMf6sYoL8gNjvSBbrCkb7S4nvY6BCwgHR/bPrnAMpVO1VVxew70L4Kcyw12S2I7u5enkn7C3O7B+kUDr7b7gyqIB0pJxuuKva02T7rHArbC2iJ7P2cJE6+kQTRvvSVh03rLJCnygSClYxF9fnWrzhwWebYFIkWQEFDrGWRDNpawcQuVNhJxTBaQHSVyO1YaQqhxCbi9whmQeaTnNX6q8rMsCRz7jLY9LrbjIqPrLqPNPHwoYgJ5rCnd2xqegSHrLMOIK+lApc22jrmRkLIZcXo5eq1TrCbFjV6S+BQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9e6f4486-bc02-46bf-ba4c-fde7973b4bdd","name":"release-9e6f4486-bc02-46bf-ba4c-fde7973b4bdd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ab1d6cc6-69d7-470e-9e62-3526d85fd308","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418675515199020685999589797307247210392584642413422100228924552280780342716826227859266768083844447074206162229681968663381134206707223783208474020557533253916777455689565260490646120603496999175458208891945222956323730925992570929879386863631869673329435497114866177224135953522255747384844388557322670268441313817919394971842840979976979705550691319369287109682898349436016251","osProfile":{"computerName":"jianyunt2"},"vmId":"5e957a79-4dcf-48e0-b8d9-3a4ef7c62edc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8NDsIK58KF/PfVCpCbRlh2htan00jBpkkVLB9yfB5wRkcFrYQ30RE5oBCJhFm78EYSP7bNell+mG2Ie0o1fJtNySYn4xbT8EBxR9nPknNbe8bOs8YLL2IrRXyffww5rR6jwh4qG4C913m1O1vbXN/b56pAIlby8KaZkDs1KfI9POcAyODNZaalJmTNgfket/9wINdplTxWjIGk7VyEW2PJ9TmRYPkun3eupE00K6ku4F0QFqYfvIGfQGMqus4I10gcDq0+Q6Otp+MCWcTfYAG9wdOwF7R9kOul1diOxsu61oIM0/TOVJTFJHRnWj+uQCMJQnUof5hL16UZemg+bSAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-959fc43b-a202-47a5-993b-c95a38a83c84","name":"release-959fc43b-a202-47a5-993b-c95a38a83c84","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b07e9b87-65f6-48c6-a615-e4f780a1c892","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188755509711839722244214035764478953157577734737939766380985916179858586085422697914044012677156235073919290043359953280740453028777533186122471050184945720567691183824696046816330271583625288591179020603032949988937053947257588597869477236430356264642777770117418848095192596277248651679479366193048352178121002107388","osProfile":{"computerName":"jianyunt2"},"vmId":"12b65466-8859-438d-bd9c-0f986d241a21","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw6XFds9KJA1fnua9WjsHAFp9JpGN6tHxWRX4ACg9kgrL4OB79CJm/rTXMQ9dhrfG9fx+T5F7pD6hcLbfS9ppreAQGROYyPHjFM4qNv1wLlQQAjCmyDUphmhryl8mgHIRa8LJeWF7RBMWETgzuNSWRVDkrRPzujnqLZMjSJKJjJK4XuPTqvnVfFCbWAFgVGySR1zAd1GyORWdcJoFE/AhVcxzal1qaKBm3e6XJszseC1RXAENVTldOedeCKzm6MLGaTvdcJIjM09VY7ZXYBYWAMKiUfejgyFt8VhxwocZP6rvZfyWZNhVzI5KI8vviE0lKd0TX4rIyhRqj/fv/acSEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-180aa102-f48d-40aa-97af-321beaba32c0","name":"release-180aa102-f48d-40aa-97af-321beaba32c0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5ea20956-2a37-4081-8ccb-d641701a540d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41869344517218704551780496708102537338438229868865974518197234817364717733232199877491199454132523344744541255392528111502895082178371352454909817760349733002271867379831326787521547784339771472331824227066216490193993684162371296503456549382876898257938840279105470871873358088917395214589251857307190613432847810743819192087","osProfile":{"computerName":"jianyunt2"},"vmId":"0d4ac49d-3810-4245-a1c9-b840faedcf0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmXceg4K5Z/ylp0QQnHx120Vz2k/WDKMVwqp/5NAQbaUzLOzyzXd9ucaj4oOkqB7x8UjO66/az56ZzudnmtVV1XdDgu3AxSi7SjzGv0RS1Ry+rygnJKD3YZ9OriFcZnYNEpCz0SArkF7ibnM6ZIAXE8nmELeDAqivNqKLVjZa53J3+KoUlt0CNV8GeQgIBUsT9hb3sBwEwAWRmg88tWeemjqavHEZ1tcx5zbX9kYkucAFRvjtRt2SRUevC4WH129yG5C1dykG73NRXtvCKe8FROcA0uTUWllu7BaMxXmhy9gJ3BAXvGPwNlJr0JO3sV3Rj3Go3k/l3ZjtcYzyklgWdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-60c930e5-2d8f-46d7-b52b-6757d5aaff97","name":"release-60c930e5-2d8f-46d7-b52b-6757d5aaff97","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"913d212c-85f0-428d-bd5e-7650d1417a65","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187576232682713488925525133661947507325658342995390793456735926474765593517428013732223276228509353486225959312797815524459528548359793556247745515488614954485229411344977580797512225772841749875659858803957159183289173439463703148099583762779259122296106992381137315907330169829869714432339166465035","osProfile":{"computerName":"jianyunt2"},"vmId":"9d41ed5b-4ebd-4728-bad5-c5eac27dd2e6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvI8ja4/OOF6OIlmoCuOOaon4FVF1/e7KYTd0MrW8zdm+ehKkcmmlR57ozDp3F2V8Zkr2F7KX08Id4y4cBeJLhR0yfX730BcY0/yIOg/GZlFB+Sj0pzT6MdLNsqls5tIPRGgZd1nMWxNB97wJs/ymQ1bNw3RjaROsV+uGealZvawf7S3EbV3DNgF8xht4KKE+RSehlFG8GBBbtxERBem4J+SbHuDPj1qX0s1+3SIRD9xSnsXDsBH6DzBgGUXkOzNDYC0yAnBaPeuYP/SJgPJoKlq6mYbwQBP9vtqD4OyzuHAXQeet25PbyNGZYOHt8kCNEfFe2XZGt4uRYClOu5dVzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-26f58be2-0b70-45cb-9f1d-17ab9f413d84","name":"release-26f58be2-0b70-45cb-9f1d-17ab9f413d84","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e2684bf4-4d5d-4c3e-88ed-cc4020e85e82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186369576756695390373854444392988047702093132759491705793402892997042372411468714775904589098333863158344844319853357853188370961049787498302831182064336545584035111578234132713419859105981485538409143244556150954406332906337723106663243516592863988156148989513065183614721714864749678197094341476268771261145813257049123137116693827052389370477401722558612492","osProfile":{"computerName":"jianyunt2"},"vmId":"b39ec0f9-44de-49f6-8743-3e031db8dbe8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA45B0nwVTRCy/i/JU5Be3/mrJg2//7tNtlw1AU4D5KTlOiH5gQJmEek7yCbYrkbzhsyH6QMLeHFVGH78Q6mjaNxge9REjuHLUCuEtGB/gwmzkJShHzWbVC+aSqEVzrEqqjZby6sSa7xmDUb/XgjnqjdkZ75jH5Yf58eMr2jAmLuHWmsW4bZ6pt1TbpzJxzWNH0QEGMmsxgghv7qplAtF4xDTY5MbxusHGvXTd9LYRseMecFIU2sGl/LrDtfWph93QwtXTgg2k1NVzpJKI+iRwgkyqI/Cy2x1qfMRN0YtxVa8lGSd883L0YZmE5fTyC9jBExwkaT4oawLgMp4gmfIAsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cab12ea2-c006-4ab6-bb0c-f27ba77f59ed","name":"release-cab12ea2-c006-4ab6-bb0c-f27ba77f59ed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f5735f32-cb77-451d-80c8-5adb3f8a6a67","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184612368277558358384513898513934706791563118189434943032268938485018529643239729372124028634269739371436084391851413366668975757110795160575654374021237481381353267331406473803969446263031817840358201845549860777545583491348641561914448591051007291285007833117084495123868824626268558180729162555519361864426191853151812153914130029616","osProfile":{"computerName":"jianyunt2"},"vmId":"2474715a-6140-473b-8fb4-eb517fbce55c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1ds5b+To57xDVhPQZwc7Rd1bu2DzZRwROHAv3QsC8FdR4vNJcuRrL1fpMioy6un5KLEZnaup4BGt/iIdvs0P+cztcy62BqKJcglPYEq3gKqQZ1BKtO2OrRDiRgsY5hl4SI+8W6QguLgK/zKDxwwsAQRsgCm/6uMxPr4IPKbLCSHvXhqc8Nk5zhDvMLlbl/yJkSLhm7M5Inp4ePIzSM9wPHzBSwpVQCriv/AhHibdm/6EbMXbdTwvnhkDyGvYb42QVIl7W12qlr62zUOqr0wG+/57rYILG+G7ARUgAn7DkdbX8t06dWlq8qp9W9l3tJD9mZft2BTgXk0GoAA/cnzw+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3d5a8bca-9ee7-4cae-a592-da8ac432c97c","name":"release-3d5a8bca-9ee7-4cae-a592-da8ac432c97c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7c4db47c-9950-4faf-ace6-51a338f9a62b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41851241149873697939268135499238037332864397168863773920188511079195947950085529157256449949666293916564113154272076574231819399513364418542674824851496545639378562955357672282318981881476049937524922509674818603650264140976364411983761568623762762918879813743932183215788279252499622722045484915004028656031334104773313605838383750798051800606976525490498692459122275714","osProfile":{"computerName":"jianyunt2"},"vmId":"36976f52-3d39-4af4-aae4-2af9280ee108","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxci711falfjz0UPVGz0FTC33yz3Qr+Oj0dDiArp/l2PunbUccNtyKJxMfEpCeN3eqrUgOFUCRDdE4KCl2GIyXzaSABu5xXbX8PptZJlqyrwjXFjVU3gWx39sCgkh4CVM6/wdZBUpEZ6zw1Cokppk9ZLkrUhDf2hc6zctUXPVR3tCHAmbE6nuVdT6F7Akii0h3mUGTPVu6PTNa3Rg6NhdI+Y5iknKOhfsBoMy6xNQ1uFFdPg12jJrk0xMoSkULHlRHfcCLRZXePizx1jM3ANf3xd7DRpNVz7Yxr5dS19/+fpqllfavTCtn7b8Eug3XS0dLu4zQeDkKp8a3bylzprMIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7115ba1b-6980-4acd-b751-61d483b1ba35","name":"release-7115ba1b-6980-4acd-b751-61d483b1ba35","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5eba37dd-1c10-45a5-8fc3-02b49537a628","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41816657237529561205037829346018331131811843911130514766690893660009793318724459085925581392785302519125164583283946190957784872979966442730205480645118006684156032284878783780038837139139200183962067351422043947931499304106473482514002294396992092566019197430943942349377494374511262536692733741008567491307880531378615255702011544256219155116609","osProfile":{"computerName":"jianyunt2"},"vmId":"1ff75119-33ed-4a2c-b0ee-93044f11d1e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvh0sn1yx5cqoaBZIfUyGdkLe2omUtEx/aj7lMRlLI7gH9V/0i0ryz678qLb912zJSbHycnV8eRb+nLJYrTLJC91ZeGmahiBVW9IibPnCr1X00pYL9RI8kT8O4rQcCK1or1dEJIvfE3p4riOEnIWk+dJjDbY1NZirerhiMwP30JD0J7sofwfezTZ3EyWn84vrQNVyMeuDlg/O3VbnfBVPU4EODbPCoHsm8H9rww1UxfgYU97+KLJexa66FvAS7Abuv1sHS8L6bljmiOfxcrDvXytltvSnKTvTMJG/qiI6qbFu/8Uzoz8PMKPpQdna92ZaZEpaeVfhDt8PWniNdcJIhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8ff1a123-a47f-4887-ae84-b45da3579153","name":"release-8ff1a123-a47f-4887-ae84-b45da3579153","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"367726f4-6e4b-4641-9db0-85f5c425d896","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185890878053538552221646263513546192633540895228422666702488848269826088652894951225870897498165691738827288284629807907945152480892227664728805457088889450134068014645948993971989492040403806358747342075599330778584905423953309586725484123021356963172301765174073615437910219681807069631840301966353802194014804293","osProfile":{"computerName":"jianyunt2"},"vmId":"e2bac3f6-5e53-4eb1-8e91-fc12391d269a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9bcQmuY1PQr+OsiRpBDBSPrNCWYjvMLQr2poc5thJG+182+vC+U4wJ8EZYwzSh5CTNaNEEHywTAa+tkBDGKUNigVb4G4t1+it3LI93wyQqYlypf6sveGlnQXniPH85wkXaJhgI9pACfv2IwuKcOYH9zf9rqg3Y0auxVyQ/rxM565AO8xgz1HX/XXE1P3DzqTyIOV4xT0Cj269XLrduNgCbA1ue7hs8Ni/cXFCDwA/EzxX+kzkrbhwbN3yJzGuvsCoz6EQd6dXQKnea8q1910SidujFoCc8J4kAG9H4Dyi4BatucTulZHhn5h+iOcliPehL/iT+uKmksJXPSpP/qLgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9412ab6c-f1d1-43a0-9911-87496d0fe86a","name":"release-9412ab6c-f1d1-43a0-9911-87496d0fe86a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e8ae25b9-890a-4773-8ae2-4c76dd77bb1e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41815279503547736391299789371588638980315193653933609489569891257561433036382252354884422847478424751488617548795559754992186665657502424915843457751482803129640451434520596817836489580418612300535296676840521063851777384176579629489351223313952001476598602906821482773429595168008424588524417109536807084089480984498856280774611833675275411397712132741583605","osProfile":{"computerName":"jianyunt2"},"vmId":"8223db0a-72bc-43f5-8286-23d9a4be1fb1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3cUCNLM/BZVZIdBG6RQrhFdnO/kqwxKluqI6Gtd3nw9MKO0iDcdTjLV13pYv8WHje/axyADFvQeZ000GpdNqEgSywDyJa4P4ZVcoBsMw/VLChNMEJymlYrYqPMY5TjjV55RyHP+0ai9N2QfwlSVq/Toq5tb4J3bX8joDgTTSKBiIFxEU2oNXQZxlCYof1VY1LkXrAcJFREl38BhIhPB6MUGP8hexmZJcZKIsoMDW5tLWKK4g+a6ymTPl/XwXUbPz4eixsCW+J1oSfmcVCQNJapi6civj96rFYdQqFwHfM+YBQDY7v8bK9qP1jKChc9/EI9+IunKLYdGrBfOR0agt8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c390119f-9202-406a-93ed-98794dc207ab","name":"release-c390119f-9202-406a-93ed-98794dc207ab","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a81188ce-ebcb-434d-a2ab-c50dbc9f96e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418994976507608580123041735925710239212649968806937941424980693734675492055151866601492986178196740017145865511186831572918628242492554366148989067856113961625285283825474675713933381767149683121510852463714572332123999151421973092411711381958303689925796179582502968057400408762056403826208973479320145199872732168240987720735926352760792021412147622383151288635103718551702605062744248","osProfile":{"computerName":"jianyunt2"},"vmId":"24b6a283-f432-4cfe-8ae2-6dbde7203027","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzdPGseKZZGsiAI50mh6opBI1CyuApMHy5M3IRv1JmFI88H6AIN2PDY37jAtP7Jkufw+eVls4vmARL2l+Ad3o+yHqE25b//awuLRyk6azL6ROOPp/bh5NAEdJtsmoZjFuc6ieU2k71HRkLNTxBVGExYJxhK3UIz8tiHdhtSQ3ttsMA4fQsifd/VEF8G8M4CQRzspE9CcyT5KrTyRfJTX80OueyVyYqrt+KzD4csrt0JSACadlFgm5djzDWLRtvx3u3JFHZ0uAdAoi6U7OM3PUsnp3RWFob9eGwP69Xeo8lkHvSdg8l9CRklAFLkxemV9pLmZ7TN/T3BP/f4BE4HUB8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6300b9fa-449f-4588-b38e-ff859927353c","name":"release-6300b9fa-449f-4588-b38e-ff859927353c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f0809a4a-5262-486e-a0e4-6262ea24eeb3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183312667278284962971163505772806648940933723359561625661514175766374329864243682964520375718927968052036095770764944602861909655336897457881163618305970957783949225117563047101195284588878285405237284447285831100778865451902007344272292192664783401466917891784053232263029197456727277208866632253414528782482575256630352776891289543653841620008343716965926680404245955157842","osProfile":{"computerName":"jianyunt2"},"vmId":"388361ce-4dc3-4f25-9be9-c02f5468b15f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6PCjsVlKjfPahC2U96L+q0ygurTW9PVwyApnnCs5RGS3jk1RSaN7YYLRAPJ//KZWGCFBQz+rMb6xw0J7JXQZ65lf87zFu/mnlK6YeI1GvIEKSxl4eHbL98F9haS5B1iL7ppFR324UwMio/mz2EuF3DTzUJxo86ZBJYnGT1V1Zd3ORyZfYJEt1x29cYbYRXOzBiRf+TeM2dphlP8soMo5c6VfFygblKDv6AriZGFOSZrWLYPAJcQI1SzE2ys8MpY3CYZ46Flmswwk4PLfot8jQC/Ddby0PJ4/EhmtBLoafBoalKjQFYlFKWfNs2pXMCbx2mGBygpg3RDMKiYePxFnDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7b56b5bf-58a9-4baf-97ef-70b80112c7fc","name":"release-7b56b5bf-58a9-4baf-97ef-70b80112c7fc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"944e0f01-cb37-4b69-9865-0c02ac44b0e3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41861983343389569593679048366824421658795662153864445659452288713306598362794093979467722177822383256357872235096130810117937053562413993074362346869948525559669073378192846808582844767276580739875670514349995487790318700807522537915582699752557099309049517384433804867976558494728209664753351265335355514322555644057914817561916042225","osProfile":{"computerName":"jianyunt2"},"vmId":"14cfd204-6848-47d9-82d5-5cc99be94af4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyF718bNakMN/vFQISOH0RWWUrH1jeD4B2UhC71i4t8Mj+fkM8zI8sGECMFMLLNvn1/VRc0B7zAy7UmNrWDQg7x0CtC0nxTxNzyh2OSgfQYF7XyevjcePARAUU+G6BKa2gvvIqZDss3v0rYmjp1b4v35aL1DkiA2VZ6pY6QjuVyygOf4QeeRDBWlQfVu9o7D3v0oLyEgB9ZeK/SloFSaOK9ar8wbNrwu90EFviJind3v4oEqvMlkjWsDVMPj9WUjPg2/mNXpMi2t7HPA7Xri7IRyUVfQrgn2xaS+nTmvxIlhpzqOYzDHnGyKd0JLnoSYd5p8Bktb4RpmSWDC3HHHqcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4060e4e8-5363-4af9-96f5-2cbf5adae30b","name":"release-4060e4e8-5363-4af9-96f5-2cbf5adae30b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26d1e981-d5f4-4a54-b417-44c93ebf233e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186290322583457368926346416143387972505131582526988255694143318591788575885152471485109060405628469808258367004599666287348234195864478532742044291531162271713604770418033872571379488261352550762389663508899869939162112391097000765955105165705316924634833663550199067872346766515563","osProfile":{"computerName":"jianyunt2"},"vmId":"0b91c500-7746-4811-82ca-fa696d4f64a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqY0QZTKVWkyJEVRllbLRgJ64ZQj3PsQsyMVIu/05DLt21IPM6TK7E8zISmmHxJzTYLZCLgL3dU+4F7bniIYOZTQpPVQ1YgycCeWOykyrXW+O63CzO3jINFG7WxYZQopG/ew/1BChm+J9q7iS7gpy2QTotLU60NXLdwbL2shlMCgSOxyv855TMzRPcklyth40sRE/y3e381c9+KaET4po7e4Uf2Uy14sF8pz889wNrCB/n6ZsNPgZK5AtbtsKIQXhplZwMEwL91IrIKMmd9N3dkknpxpqzcw6PUUpUFfKQxdl8syl42qb/PMsrb/xV9C3iyO5tMv5FMjEo/OJM2UXpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9804e622-3b78-4c1c-9743-f167c9ff0c98","name":"release-9804e622-3b78-4c1c-9743-f167c9ff0c98","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"eb58664d-4a4f-4bfb-9102-8aabf6331151","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41836292409533936447275608881308155675653374376332835571524668727926870884395833020144863457195897436674171351242067434597440099422644112030018519172465052245847722359743595276495035734464183947099161933456930106722372258278111529883110919238776665062446131621946048437009286663075815932688416356395686404783843110","osProfile":{"computerName":"jianyunt2"},"vmId":"ee0c0385-d536-4e49-919d-36fd97337d53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxXqjKWBDDJiQQCzyxA9hhJiYNjPGnGnElu1Qzfxlo5h0oj6O5eagrt9qUWjSbmyjRiOuRqp9DeST5nZASOt0qfJaYgjpVzMmOA7dr8KT+QqpPQdPmTwQW4H+aQTT/dsH3Z8JmCIKL20GDFxWzurxIHNVhS6syCHDaXLXwEUZ+TA4IGh3iW2fRxjl1XNk6Z3EhW5UCXhraSsWW5W+zFd0tVPopZP88TcHfZJBlGGPweahRpobM9rALelDtGqul/isEYvPOZIpegBt+j7z70dyaS2ZKbIfjbsNLDyILKsxl1ACA6qb7XBZy1YUQk+SF7N81dFWONAe20wXra5HylEfrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0bf5b6a4-80b1-41ef-a2bc-1ec0c0444ab7","name":"release-0bf5b6a4-80b1-41ef-a2bc-1ec0c0444ab7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c921516b-6683-43b8-8e74-3180bcbcd85b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41844504625935196881109700930287901797293339252344171958468046514232761899441113591315829639713375026047436337218882232545643977487524465959673504526516566176765560368098362980658624129716798317861992464627137661835669553523789124693233729989020154746155952282380384323527543429884239045265445389674949405185947176186535028115664840560676156013094497188244273178819387679596443399664292611719704","osProfile":{"computerName":"jianyunt2"},"vmId":"6f16b143-9fbd-4474-b29a-7f5281884bba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAutuE69Xt81Do7i3iMjAezSWPypzn4qRHy77MenaayRf0qkmrCa2NkZvxvbCiJtr/ubenn9Rp4brI6ew8/DqiAUJz/7Kn3dUvVz6o/L/i9HA2PMIgnXH+n1kInpJbYUtK+QNQ93gDcxegKqlgUQKIzJRBRoldhtwYevGiCtJvbVR0c/O2L8JcGdAYlHjBaEVHV1MFTnumdbojJnktF9MbfIXh8Fe6NEHZRIQkbvu1tkvPfCTHGZ7n7mp9urXDDhjjAVhLZQyWlLp9mR8KlXx5cytJGN/5LkFT1FGD2QPA1tDzgOR/Y7cY/xcOiTRNIgD+CEZ9LNhyNwO7dsZ10wIGjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1c293826-85ee-4a09-aa43-4e26729e65e5","name":"release-1c293826-85ee-4a09-aa43-4e26729e65e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8d52c773-75b4-4b39-8789-95379ecf34c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186138536375863344766456833156563193024500312559751224771211942062475510722244839553411329139439757664714219282771931788770149529902988749522588340352743443456861384655515471018162090776341474231475999169935624403261884676318990124042324118274390711743832942313975511334919909799834347182197436481085683666622592550450675972423985749364757532","osProfile":{"computerName":"jianyunt2"},"vmId":"4df8275c-b4a0-416f-960a-4f4bf28af4ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvOzcC8r1oFhUTkYIaUvsHo6VH2Sj4ROGKLpQJc37ErmcsSwK+5U7rguPsz69wF3EzSq3Y6gWyJdxldi6wQbU18loVYlZP7Tp5o2QYivI0mXOG7GDsAWyXVixl8ihq7Urgz7QgijRY9nmoiLTdE2t64gVvP7IpMveL/VIv/J5Nh/tbEdYiS5dyXDhkbTY+0cdUR9CsKUuGdLemTf8R0TFL7zqkhQml1zBgS5eJS1yJKqBUZkNAPunBUj0C52W6n9rc6V8yW/axwCgMJZJSHN9H2SIIF6Nr6nrj7N1DbqKUVklEMEUstqCgrccl89i4n6+NgalWg/F+vYSKnnRGlYasQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bcfc1032-91c2-4275-86f6-8750afc5b7f7","name":"release-bcfc1032-91c2-4275-86f6-8750afc5b7f7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"78fcb85e-197c-469b-acab-a5c5160ecb99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41830789248793816935981385243529216521671283618540865570031197143551349358072404350249651688724273623909430859792707022104516934229378761398891263577894800368851668660812122899571345949756367882344952883073624521825870941244845598514482867920919173359844514740156461285701470957743336680294686720375554287315399611962968488926564534755784240426555461175817279","osProfile":{"computerName":"jianyunt2"},"vmId":"249160f7-ee2e-4deb-9322-c9cfa5ffb048","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtKUE2NoRDK54+WFSxd9rQixy6DZYG0mtEGVuTbuV4Af/xVprlC0md++5KVv+EawnZ1FDsPtRiyykeUATjgup/SykH/bM92Cufozx6YaHs+tpAGdiooGzq2n3E5MMmWvyV3gTtsg6K0Os0f1Ug6uk3cL2l8oJ0jxw89T1tJCAgsOExmhuFr9LdnX6++HLw8NhXs6m7J9boz7i3pyn+M4yUbuD/EZb7ULLq8j5vW1CY54aY/bdGYYBPe3msqTCsGl98W6a+FDYltr2dS5nD8fF0Xr/F7+ncTBD7d4JsVfn6t4sNCkPo8796TdVV22hz8Y+S+3lAloi/KPiUBBhpicxHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6767d2c3-6d09-4478-b9c4-71b0346e19c4","name":"release-6767d2c3-6d09-4478-b9c4-71b0346e19c4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"29e5e0aa-dc9e-47f3-9050-89d63185ab90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418270365381093769833273924991546684421479359101133469350265546165398183457613165290488198162739926615996930085982554124462833688938997334226297789248580283213405624577317069089598600644762306085588345217586645526935817600877222331795632890079605471201254135457963546187409389239995252376","osProfile":{"computerName":"jianyunt2"},"vmId":"d406be77-288a-43bb-b39b-99ac88047373","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAooCy7FVs4u+hD53TPFuQX3kCHZ2roBWaXUaHVNtKg+JcPNLBDEB4ltRQFePU+pUXuQ5YUBURDmGIrTwzeGuMWOZTxGPPRYtH27cCAccpU/T3Md9V+YaGfBtnGC2nppPT5iQ9vATaat+r/wZId3pds1tYyUcu9vpV4eK+hjXO7M8L1BRZjksW2eD6+PA0vX7BjQDkUlyNyV2viCmURpyr4b+7JbelDHicaBfubaM4igJ/vd5tdSRnAgGyfVu/2Jga3iE/Zt6aMStXXoUFfI6BXT4iqfX9i156avskbGM5gI6nDkmqjYKHoiJi4L1aNkB9XeIjBHfv3nmCjEsCKvRccQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8482fbbb-9aeb-489b-b2cc-b5c2a73581cd","name":"release-8482fbbb-9aeb-489b-b2cc-b5c2a73581cd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b050a161-2fcd-423c-9d2d-728480253caa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184544637052843891372292344112916015252618562675541782768845517138184753742423738618113687865235016693608971278202570990212145901831532957582652127344449383148961269496238592288786509535186056992522419449422532004579634499869600112809575382154819509300617152400746977024484763969053550612328995482452713510755509127343162685620571080343283854694564867806579712984486342621544484","osProfile":{"computerName":"jianyunt2"},"vmId":"18c1f9ff-885f-499b-849d-ba90de19ccf5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvBvcIRMYah2bTkXh8Z2L9oyRdCg3JgEBIuFDWw7iwrqRIRm28l1Wi0nlmXeNIcqngk4IzUup6+mU3Gdb5t6PFXz1J2hgxXWJGClV1igu1Vcm792DaialI9CZHgskQRKYiVgDeMpPd6f5/umk+qZ/15ANWeTFjfgWqeTUytNCFqZzhJje/Vt3GW5EF54Jqk2GtHRVWAwsaybUv1RySia9PSA1BhHyXvlKkxyoHStYaOZWRhf7ERxCDcarb1WIYLqRwidAUw0aLGbNwM2rHzhknGaLX8woBIJc3wKur+y1eUEGeB5GTcAhEoBTmzpnhu+eIxSWE9M9viSP3wFRTr2vyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6a3e5574-ca70-4693-ac0c-8fe6d4d49aa0","name":"release-6a3e5574-ca70-4693-ac0c-8fe6d4d49aa0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8aad5115-aac9-4ed1-a378-f2bd05c3e537","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41886874118862618644002124765357235157515926362816408958783716461045841392908992242746281039433095130136114270718892464549330457407885701568924442225782965043671917351316191076379877458146540432211515327499038812915123688885539658029023813443128274828269177822197718768932731998988702664533324329971169991058014357423010363192455257851583998938354790242618617495778529447914886171428945178071136843157093089","osProfile":{"computerName":"jianyunt2"},"vmId":"ff678675-0101-447f-94d6-185b7bc339ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAugQECBfiGyD/u5yb06m9uUimdCnxri/piM4C/WDP+bBfCmXBkR9/bFjjs50F/RkgTwHUPhbnaY06ehVHBAnhJWcZoYSHrDqeMkQnIeDhnHApQyFzmz203+s4f8R5o2BZZ0rvNjVm8lCQAT4fgKznIvfMTJ+J6o6bnYLgjAMDFMxe08R4gdThFU+1rbXowrjlZi01di/nhF4yT87pUiJ2oOFKV1EKI/ceO9K7ti5WHwK2XVoP6XL06e5JsG4cuvrdKW2FsXIUrTo3pEwp/YL7Ssjpj6ZEjUwwRxoxRcX65tKLh+zHldpTXERrE/A14UVOX7S0O6Li9kdmB0wv8q1xHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-05a70add-6e90-4f63-ac2c-0f27a0be17fe","name":"release-05a70add-6e90-4f63-ac2c-0f27a0be17fe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8e430b54-0e1a-4927-aad8-8926d81c5fd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418791748451314110912721986701064208778727497807771278095443158213823016585269821413973304573644761637989029486263216249332054541578896704683476914544049413795236938571835114863053744287299137845538242228078470569792573630446649006826170899131976229223172085353518311742725879782193265511687157349450802293564582774189881870882298157693102195489672233760","osProfile":{"computerName":"jianyunt2"},"vmId":"2a4ba187-edf3-4a4f-ac31-a112650cc8ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvUVlDxFZyD70P2NC+ZFr6vyzYfpFXa5E/ztFzGYHaagJgxCldjHbEJIRHbJmCXY3qRpQz6AmDvd9Mr/zKV4f/BgvFEOaFIWIdNHYUzR9mJQGsWsIcTJ7gmH3pWFsukoOpz/PIqc/NFwa1bh9QbqCEB/vZ6ih1ZNUSWCMCkkLWt2rU8m1M6GzxDsmGY87zTHEn7zz7rhN6thdgQV5/X8OxolsJopH/htOnDGEZLV4MY8e2vjQF7oh1wWhbyhBskyxrk7SOOeKH/bATtsnW1Tr3llhxCz3O0bIWRIzuceqv5PKeAW7Sbe3bZNmtBi9laJ1Is8MrUYyn/UnWj+Uwqj2BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fb2329cb-f025-4731-80f2-f82d81de79dd","name":"release-fb2329cb-f025-4731-80f2-f82d81de79dd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bfa63923-ba0e-43a2-8657-7168b0aacd4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418867307698204199301497437594120261485517343881161345646807178938217241779544998565261255180894423160428040321782445767229696452774729572963661217013585578834026738241751073525667373536767018625496244556159416254217464949241464174013443576642873539672916952691693636735469365577664471185418144109627519258042220660861362882616249677508761028311802268248459887774236947235","osProfile":{"computerName":"jianyunt2"},"vmId":"befb29eb-299f-4d6f-a303-eb9dbed24e98","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyVSdl6mwfS76dWNpDrGZumHXyaweFIweCR9yoMb072dhU3TmeFPWiryIM+WC19LpRKxOQRm2MYvle1pk8xK3Fr/WGwpPHs3WcpF91PwFEDUgFOhxBIaFR6fQfNybBebhFTBV9z5k+Yu4wpZgi+u60YgEeGK+mrliu1Zz6na9n2fLrmUSMwO4LxQDwgEwU/9vDsE8j0GS2DT/eq7wRRbgA3LAASDubYrd3zv5WJd3c5IBRaV3/UK435GtjbPXIMUsB/8rkW8HOKzodJl+aZDOd8WH0AkyFd8W9UPeyFGQMqOVkik9KPkgRpbL+Kqg6cl95qDAQcN1kYCaMyk5WrvOGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4ef093e4-7b4e-41d6-87f7-bf3b02d17be0","name":"release-4ef093e4-7b4e-41d6-87f7-bf3b02d17be0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d434a3b9-0488-4e7b-85df-dbf45a4a1d42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41831857859403990439853469578738803123450868994732190784227690862528391849589109929933124775158140192771919262301036884484112585170389543595346743736652984553969355527155385837218516478007438359317033961486853195214824319580302337477297779654194034905211318767413505276363683091927889495755688886851867139737261854214167","osProfile":{"computerName":"jianyunt2"},"vmId":"ce75cdcd-a751-444a-b2ec-232369db049f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwdVrAzro1GN7k7/ftdQGdU8QAkRAK9kZnA8puRNo7SuuGMLWpxjXfsUXGfaMkBgTp5DBwi3ExFAez66UiefbwYFVMobhqIbjijt+JPUOGZmZyaX8D67UE1PxDFohsBe9alKi5Si/zE0OmBuE1aQh6DlUnPrwiNHQ8dhxEukwuJAi/yD9zT8RMW45YZGRLjuhnHd75bzq4EGdm0JvHwC2zXV5s7speizOqJ+r2dyBc6Z1YhcGeudWcTDLHEp7eLxe/tG26Nof/i/8yHRQa8yjgh8UBDPEWjr/fGlMxKjUAfbKSQIbzd0lWp9R9AN2kCOZMqdW94mPKR0ZPEQ+cUTamQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0eae774b-6afd-4797-a168-d2a3ff940589","name":"release-0eae774b-6afd-4797-a168-d2a3ff940589","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1058e169-642c-46d8-858b-f80eb494e93d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184844383913759705402480499178349103247509417896873314929661941915378150481394704159546862854883083255536811189072777071196880752217986759882238786288903428800779933031498541641999041793686271556228099836339872322421304131993198783139494932295239752549253254125466291483610522626229810593330358680883740489543534178439008155522194358401737796755231259410355747379339454247164794","osProfile":{"computerName":"jianyunt2"},"vmId":"4294cf0a-5681-4d59-a516-ea471c4c7ce1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs46mjBm4BxHzb71zLsHHwFhJW9tm+HCbEYjRpr6M8v2Uivv4oFHaBVMjvu4gWGbHqOBHOfu+kJF0RyZ/CZ9LOtd5Wa5pRNloVAryOdyY0UB62Xcd6mHd3is71hH8eVx2wJ4HWWo8Ei8+ZnHhHABqr0Tbu+RLHSKHebxRGAfoZ+Go212z+dZCJ0JxdbJEBSdBtIxRudbUQlraQ3Z0ySYmutTxpRjr7rMPVudhQbKYQm6W9fNlEcA/WjTiCk4wqgoO7Jfz3gSBgDvRrubjPv9QR+xOluSOcb9iX2NsdW0H9qwtSlqyPI9hWQUuliOhkNHzN/y/mwpAkbx05LAWQ9G2+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-edeeec88-7517-43c7-88e2-efea9f8df69c","name":"release-edeeec88-7517-43c7-88e2-efea9f8df69c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f0fc4336-5718-4a21-841e-3f594659b7e1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183423611134167456775923549428101863992014438564942074822281964682344074108646997244615690776294768029383584116821904512373624097046365640950544401745314357075648626843693819044107473578747666421469926384780086689723399420138348685564393142199612079098143038256888465283241511600279175271903","osProfile":{"computerName":"jianyunt2"},"vmId":"fb9e6c9c-1b3b-4757-9252-832d9391fea2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmIquFbfUdiJz0gvNCVzORaF6hIL71Fai6Oxjgbn1pYDpwVZ7m4ewKYO7fd6YfJ6vVPOdT1XahEK4Lo64ig0N0/u+WyjXg6UP0dvcWwV1EQUm7iEUwPfRLE1ujEoQpLOhKRF+B8bDS3zC7CH1oIXDt0RQ1F5dIO1L+5oUjLabErTcXuEgA7RK//oSA+P9BT3TsACtFy8phvqxkQuaeI2cM38kI27ReaTsOgjXvbS1Gg7xgQWSSvLunLJ0j8ttA1jiJc83hNkOFs9/3tCRUsBXiVctGRRzNuFtGsUXYlNUn6yh6fxHRwzTmgC7bO3CGmfqnPV4AVpXvgJXN8zwd0uv+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-33d5d1fe-2652-4c3a-be23-f29214625165","name":"release-33d5d1fe-2652-4c3a-be23-f29214625165","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5cd41b47-e8e6-4e2b-80a9-f00eb8a6b7a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189358636917695335301427073224907289038687121460878009399339898888584706129613961563388194946311814634918338528156028386358037108801520192436623336459394383819744702507162582458691022954844699658647880786792091927333752013743846738175421615537856408061574896987526457276214526144530234097741914695087424280904182216934712626194080123282","osProfile":{"computerName":"jianyunt2"},"vmId":"51de0a31-e8b7-48cc-9233-dd2f384f16a2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqfPl5L4N41TVPlFCH/Rzqf5ums+PYBFqG2cUtKiA2Z67lLR/D02rHKSY5ClCMk9d+5a4Bzd9DULoxFnJu0HbuecnngaL6K5iIEdUZNyJjR+9YVYUJpXnjKa0S0sSC6NHSe158TvpT1bxzl7NpwAt1/Py5/3IN/ZUrBmK1dynF4Nv2aX4nAC7V3KHJPkpGJ613mJEd5Z99VcHBRTJowgpwv679e/87XH243XCUFy+y4dpDXWpPJJv4X1o6FABR0+F3yNIU0k76sABGr8NgfZa/WtBWz0Stqmv1Blpbahg/1Pf6Fx3Nqp1AdlKZQ6skU9DvmQB69wyzImmrCIQhzyGmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-118c955d-edeb-4332-a61a-c12aca1829c4","name":"release-118c955d-edeb-4332-a61a-c12aca1829c4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6c3392d4-22ea-441d-afa6-7b76eeec1fc1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418861754873900281850332172201190483485258810451178402809753012959799485056399360410687240645223196624950587365823350959738091276335634084296158360996742583931843191141473156784683358651666446200337022361344892805862757117776062889982363072377042767359529524948938776067351595884336815140106303501137011597085860","osProfile":{"computerName":"jianyunt2"},"vmId":"7463ec20-fda3-4a64-8432-92ff202a030b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0jD5UZjsZhmoRNIDS962594mOPe3Q/PQUNe/BYbWgAc2i9M6WoyvYW/yBTSfvd5ApMS74B9b8Y1IxBhok5x6g45B8fySdjl3ibC6ZGoK/aBnOOAqNr5EiVmixVTErvMWNi4amJyXnuVriwW/hTLx8w6Pp8ARKBzOJc+vBJSBe3dYzduEF/SeyvATbPm8/Ij+WVHDUuVQQMOZ8AB6j1hY05fpzzM/6QlKfC5NRdysUVzRVuSj7HsUEA143hWy6OjaPDLAoaZGRaZu95peMgfNTuUsU9GBkEzBJoRggzSb3y04rTixljqGtyO7mOKRZZQaIkAU6663up5dzOF9CZ9SbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8a7a88cc-a293-4097-877e-1104af5ffc31","name":"release-8a7a88cc-a293-4097-877e-1104af5ffc31","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7bc2e702-846a-4c97-a78a-16876f5c9a27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418390684323569813864955219162850764994904734545708776687813624422392289969733642286813349448363625902479336090043862985663479542798677676042723290387330213496501751013240488671184909454909953651053845534783964941899901494794315347878721988484646387629557913629158130730702510169368062131764","osProfile":{"computerName":"jianyunt2"},"vmId":"6aaa0695-ea56-4f61-b339-3c05c51b7661","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+eW70RvOoos6tqFv66glsNMZv0G0TRExTPUrZFBZLX1uQCiAUAZ10/ZOdt1viPejnSFz9X9Xr8iLSdi6vuSYBnA15gaNUL20/LiHbBdg7H5iRpHE+iZirW+fCKmHGr77WZ7idbbKlcVNS3HpVThb9Wsjo18pRR06jwZ72Vb0oz1PZW8tBPAq+vH6Xe7hFfnGW5DbTCKi9GqvcyZmAPIa4CrSYmxWZorCwMDiGVG0GN2j1cccyYnZwHoiAaxMaIp85QSBFRlCpsZWEQCnMLN8AjfhO0uUSo4xQHP8F4cTuaZwPrOHByBDGCS4cSW37mqEUOfanZ38uQ3uy3BuwEXOowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-91728eba-6c73-4c8a-902b-8a341ab73967","name":"release-91728eba-6c73-4c8a-902b-8a341ab73967","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8eb8e7ac-7ef6-4df6-b035-9b52811f5ba6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41859481711303360499008654146926028901414317979689153665524555375934438543196136558978816401127180878586831597482593261406643560254286449266586394894767662561735858685311186120557106572941885906783864539827453889452341336623938173580260548558599219131649166714894799468451256903096988778758581905240588445880449083197519973542848634512098650134663511462470586698302248171957626483632750301655609","osProfile":{"computerName":"jianyunt2"},"vmId":"44a85b16-6a87-479f-b9ac-c59665e320a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9J+xvv2FkQMGiIf4Y2y8+rDsZs6JhL05CAQ3ulTsg93c3pSEjwRYmou6RHO1kDGOBUd3z8l40EOOe8nXopFWz8oWIh7JxU0KNNRLbk0cjkZWJJ16aUh+5QLhDiY0vJKnESM/KxkbqCHI6q7YE1Mok3Xf49e6N473DAjdSpdyA26hBsQFruy2eCXKsqkZDM4qMcpESTNyKHaJqvxDAOj3ziYJj6GeOuktxcuIbAXGrPde8pEoXv4kPbej5Sal5yJDn1xQ0vxE2SBR14t0cK8RDXJa0na6wYh3EcJsis5KutO+6qqmHpIIG50/l05hPIW+LA9ThG/JZGEeUVZSrI7NvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-572af4af-4cc0-4019-a9a4-53a2cc94449a","name":"release-572af4af-4cc0-4019-a9a4-53a2cc94449a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4a9c4bdb-4087-41f2-befa-39d2c115b224","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41886422816258576868425170396513377190330902517651266825482639408343511707573819664132874195689415763326298302925311533187162796166643520416648369395442750344952552567121893957250724830531610250942408139899483938477456226815996764472696128687764413945512633443348690236069732056476058509436503176625152144966729525923240466164519515147270412796307331276695004239898223861714741347259355630623179774234","osProfile":{"computerName":"jianyunt2"},"vmId":"55b7e3ab-5f18-4f61-bd6f-07e030668df4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApuMY83+600yhAXYmBynwpyVDXKsSoiQoebrVPQmKS5WkYK63Z1dOTbBmLI0Bxf13fjVdXv2x4GRhL+nIHjQtiEoe8HG4OwOdTg/dr42JYtyAtGDREqzI0FjOcGX9AX1uoTipYgvOChDTcG4Ynkl+y3U1oW4kZf3+lazNTNIkf08ZSFZmDF2knGtgq7L14cCypBWo5zIqeBZdEuOJ9zvcOQivFaAgDsd6FV1Uqk7Lbrtf9JzAfhT5OCzh1Ipfl+lsLWd2Xcr3aMlTyrYC9TBavVivwpZFCgjoYCFKhvmjNzhtAueaG1ALUy/ihY1cuaoj0NFk130J9H1jjKftOOqTdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e8a70395-bf78-47db-ab83-8543faf82760","name":"release-e8a70395-bf78-47db-ab83-8543faf82760","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"13dd6a72-3c56-47e9-b031-90dcaff03ba7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184487209445768712953717578676428846054277451424364861998997853805326530785763156826994567871515180493449345102868895660916029991215518675269992962129842032734138833876479997287456028259440217238145840075463734594241624281936036657198624291064860277896234788748334598390725653647862315932144776688794535115491586429893060407122125440630908558","osProfile":{"computerName":"jianyunt2"},"vmId":"7fcd5839-b8d6-4b9f-8ae2-e377920a5112","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzjRyMu2sQnyLRc5BhxVoVVqLrXWjD6GVwFwrgPaTTMc9kKZj5abspkbmqfYPR7DaM4uyGHYwln/q9wWJA/spFqk6iaLmRuPiID7numST4/C+a6brUHTcTimeGaXkMBnirtRYlDGggGLbhF1NKyHIA8QQV7gTra4f8EulQQAHnsWzeuqoiOObxmpzTSkTATrwOPnoNp1EcFmwfbXH9IllgNI1TV6iDLVK/5qQWQK6JgppWOlTM3do/TLEw+imDF8ZZkKR9V2WvAQpfkI9M06wtZODwo77jKIbwcE+77I4KRHbqy6pYNzinWXelc3H5b/WVhuYHwr3Aahpgp37FVcLTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c73df27a-682f-4495-8a6a-c863b2e05c7a","name":"release-c73df27a-682f-4495-8a6a-c863b2e05c7a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d5c8f1cd-4f44-4074-bd44-5fba1cb4a82d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418878738216932210230754822535676566389661569087264328114425837948558549455683856497763451289249575612196910134517895195356676844340907998786835176926941275349577374170588669679795821945841637645062315238034455259282261323933460858290468082939164674994152741841318714195668141339855942699857694551988472195975409619682812672484480827482728971365164642208278866144","osProfile":{"computerName":"jianyunt2"},"vmId":"7e4cf4f5-bd02-482b-931f-4b3f4a8345a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmDH9r1Io0TE22u13sFok+SOEr95y1Ua5UkwJwjTs95z9AK0ZGZjIKwKmIseozbgPwcQcKyZKk84JLoe+OGnBqzoAiPwbmHvDo0KAiLjCXi8m/4jjW2Zfj+UXBvOhnk0rZ1AAkM+2egQLcZBVFIPIf+udnKfmM89+4jDTxAYL/XS8YozZu+KbTWAFqCycR+c264teS3i6NnymtIpyHLQGPXCxa4RqOL/NVteggQwOK0PNMe25fknIqbeXzht6nmGL9Eztpordge+i/DfyKKa8ujlLrFR1GXfLM/VYIDWealKzrmk25LW5qUf5R5YjNF3gnCMOYSt9APayeK3xu7zs5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cde05f8d-e716-4670-8803-f12f8bef6775","name":"release-cde05f8d-e716-4670-8803-f12f8bef6775","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6b812fad-64e9-43f5-85a9-423ff3f5c3a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41894708554582668479440660996852417320287529591073777966988415927966261476947553490162153577489779333992347411870448844684076831457007436957678213913232514937264832207567652843003594385064108296664022309411871976387529324197295111253475865990276286303470590409701460498484774763285004350374070346872106124495967852934517221797449472219435807274213236594","osProfile":{"computerName":"jianyunt2"},"vmId":"63d4597f-9556-401e-8950-48aab115d8ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXzRDIHNOwY70gLwXph6+L1PQXApAFaKo8GANSJbdso2GbbaVJBgURzK+FYpRNbxU5CtbZpRKVbjrg4ZFvoBFBOfQZaEW0xH/fSBSmL/uYkmDv9jC/TWOf1vTq67vnM0brlah1E8AlKSg+BIC9pfTjoEZeuB24zJhEnezQu3A8xLrWqJBd1k6nhevrcM/2nmS2hdt3zWNWmtVjnhManbz/evPCpjIItwfEv2Z30HI681gYD/rvvwHh8Ju5tgCwfrU78Z5IDSF8QQ6WoWjgQOgM8f+BlhhLz1l1u+BS5R1UhmjoiUuUjHIBwhSGo/pY1GLckT4zB2uu3oqIrfvw88kwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ad504c85-8864-4d76-a305-b7f0d6d73e22","name":"release-ad504c85-8864-4d76-a305-b7f0d6d73e22","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ed301d78-01aa-4adf-bafd-eedd33c36b6c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418247632656599203426966936586977965323156888206881604749274263955946146952498866954913111104599267464830806176478019851395559699672394116864211150922311116616458009227560885527379055602738723901972492148722571973246485484983647727618395937968965283950835711825253710332439744398156690190961934658584494111689200538422794901554289836089085473","osProfile":{"computerName":"jianyunt2"},"vmId":"7403a6ba-5edb-427b-94ed-31e9e38c3808","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw15e2yOaLf6HUcY6+V5DZDdlNz2ZCVIdy5XRghDBe90NXP1WjjpZDrADFZvoaVwnPluCtavA5MgFesUwJFHlQfvwcatqeDfT6/oIUWzF06VUk2uje/cJX93CM6XyHMZALtH4KTMmL7tzpA8SSnkOtn3CrN8fXfZT5/GDdX93SDzFanbECH0m/ZJFxhOr/hbUpXJEWqiNvKzRJTw7B/38Mi2hpjG/B9BP2368+gCMOeIAmcCZ+TeApk6555PYGyLIq8taf9+qHlx2WZSSzdUVi5k+NN/CYUz3ctTvab5eqPDOVhK4eaLHePupVRQq0JqZBlCkTIDEq2YVvsFY3lJ6gQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6294013d-672b-44db-95bf-5a3f12367610","name":"release-6294013d-672b-44db-95bf-5a3f12367610","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"526a135b-2646-45f8-81c1-9175324a65a8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41836605048961052355399965784471834301862850328774558275491786239772276070244264515452246998138964496294332370069942883438465965760815674073344302429333483673056269950179197641975085844451691211603340117128783458114667915552692632785182986156738130266611321735290558322271477448215778122349094521364915423455495515169957765488359996428175545760135497173345421921812034156585792356457584279452666337","osProfile":{"computerName":"jianyunt2"},"vmId":"f29af437-8bce-4e14-9728-61ec3ee35bce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvITdTEstBIKEN8pNqnVXpkIAbMSnzjSiYXW58M5w20V2KKvken+E6C8+C+FBVHz2g0gBSW0kNfPH5T+zs4pt6MAfkMY290DrGEYx/Gui+jhMmLQHQMN8DmerLZj3Eitzf0xjybYzXjEAi8RkKDGgSTGeCILgtmHEyjIRpDLJwydsskWuMeEB2Ph3RZdcNWyf9saMOc3P2YMgqKw/6HAV9TSkYHf1QEAKP0DvOKhqy/CTi0zVUi0qN2ZA86nrJWm2LDr30wHymLuVBwEkoc/ORY4CVIm5BQst08SA5bojHiQsaldZW1Liimw5x/zUBTzLww2u1Fin8SBjTbTlQ0/yPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1ab92b26-9019-442f-a98e-e677e4d9ed00","name":"release-1ab92b26-9019-442f-a98e-e677e4d9ed00","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ef7ecfe6-cfdf-4696-8d31-94f8b43ae31f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418284359241799994384243563667486333219257365433769132381904014117393731177345668795372874184699501172764047823907316799965866099630248631849544369869449182135811355450304722732193847737182701276039732924297052490467714968251426270729911109653284625678417533059133820448453577488719105715534461851134228938276443313976542753425780064253775687786114819659198429032080827335807274942189475662290","osProfile":{"computerName":"jianyunt2"},"vmId":"169a012d-2336-455e-8e9a-cb2d5eb039c6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyXOH6z2ejdsBUjxesmgbBGX080D/P6DKGLv0Az8439n+oXIwPF7v40vaBUtK91QPEcAcECjQ+FQ1a7R4nB+qcQBTKqRAvrKN2YGBjAj+qPcFfsAv5btZzh8JoMbu6Rf/xWUcYW1BvIJuX64JGx8abnp4TIId6DNiz7ikMZkDv/y8NUXx2kRXccq5SsXjOJZOa0nfEB3/7UoI0C9UTu9LtfCEtwHTuSKoqxxlGrDBtJmjqqGosCqldcYFXL2rwUuswO6cDocO4GNvuuYam7G6QTGes700ovPHtbaYrl425j6ooIdiXe2kHaqy71AAox/53VBB7SR9VWSCDtluD2ys+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-16fb60cd-7685-4beb-b468-fd6d7aab32ad","name":"release-16fb60cd-7685-4beb-b468-fd6d7aab32ad","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"323b04b3-c6b0-4ca6-856b-c573cd961c30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418471370220455943984636155148910154437218106692781124434477211633306544527424729990925127060465170853411888134488767491373171630934868634187830593764788363794977821967566381032250467570239241233119716853266470268765016916411224646886497530777862718225878961231336118099983330537746118832213683566924022221188430349256097618232067996075462","osProfile":{"computerName":"jianyunt2"},"vmId":"5e1936f8-71c1-41a4-8481-e702396dce69","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0gu0CwSIsjWzyQTvDhy5fwlIjTXP8buGbnl8vdxg1ig3FlbjOhwIEgXUjaM13P6DNeDjlBdtYUTlVoZNZNtw5x5hFfXpM6HX5qlyaTt+94GeXoAihbkeIQtbszsTrQ2Fcr/7IVkSheKw6fL3HD0PvMDggALyGESHWhou9f7AV2NI24zxz2SIO3MLVRHP/sEvkJx6xHqt9Ow4YsTkx7kfO9wSquU/snLhp8cpx8OJd+gUBLknVy+apurQirBf998E9AN414Ut3LpMNYpx0bSFxFvprqAZfUd2jdjVH4Q2M6RGc7pGrTccv5u4u5zw79W5/i8J/yqrLylY4NdhLTM+pQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bcc8357a-4fcd-450d-afb1-802696f90e5f","name":"release-bcc8357a-4fcd-450d-afb1-802696f90e5f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bff13c4f-2156-4be2-80b6-beb3df5c0a16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418606243612389394729161654289040394014145939025367998753521147660885965243497226857042210327425342870649422424239991889558504177803222618602310191434839609350933583818724307673100963276988606450882870484975606114685629053485854851287502604632862443262178190426265178687630057636805309327062872584182537778482812295844626084939726732314","osProfile":{"computerName":"jianyunt2"},"vmId":"b2653e21-ce23-474a-a47c-93be9d73a207","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvYT9ak4Y6hJ/t9x7zqM2zMNjTuvQ+ha0XMBuTwHPfbX5XTP8q74xc5JCa6aLLUxF70sKULBCG8h6qR+mtTT+Kpn+CfpFOi0Ny8KlUr8bR0fBizOEkSTxe/hz3ULhAgFpUK+GVrOh8rYIi7lGgfvG59K6wMxs9NCDkzc6fBevAA2K6/YOy6xxc/dMGUUy2Gx5ys8QRJAw2y6x00vsIK4Y/hKXBmh4SGj8MiVOBHbIsAyH4Ra3iVTHYzGkFK52WsYILSFHwBVqeOUN4vzXLJVWBgtJIi0UroY/QJrcjFzThomi9AGYDQXVU5FNAckWmsBfemjhQWg9kd83D7CIoDDZ/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-287d26e5-3d0d-4dd2-b4c3-6c18a8faf998","name":"release-287d26e5-3d0d-4dd2-b4c3-6c18a8faf998","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b2c937dd-2bfc-4598-b34d-a3078c2dc910","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188974503138219994246556242101451045565612981534491062241978193026573799875829517185882986112950557369392081446094669739230487737573977060946289339390712857988204450395617825931648297282587502092779840584331554766513824947722536262877696820128950468247455639650597285466118076059322610902017233526","osProfile":{"computerName":"jianyunt2"},"vmId":"94a83099-b231-48ea-9b48-51e731c17975","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5H6kaokeHj1S4oDgHurzTLwYbtZfMCfe80S04hZnGUYv0cBB6FA3dKqxCq4ugnIkDtT058gjd0KqibSzo85qLazW1yx1wnFghmH69Zf7A3gtgtE6m/u1UyFSPSX77fuu3kkrKMh0sTaDzrEru4x2OXwrJVgomzLFRz9IF+oGNDAvtCAyTdC07ZbymZkM9sr63k1tqDhjiAAle7wmUKixIoigQUWSfG614OAn8TliHdJgWULl1ztNCZtAB3H8Lj/n2GsKgMGZNv0ILYaWjbuc0IWaVHyx+A5Js/JkRSZlBVRPOgIXQGhUmTm17V+IGinGuNpDet0nVa1606qdgZJQPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-eb7c0a37-dacd-4b31-8819-15188758f506","name":"release-eb7c0a37-dacd-4b31-8819-15188758f506","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"07fb342e-ae12-4312-b65f-8c0589a28a81","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189108122150914893437440165420437140566361396513899140974765928986948063966112554974629827365749058240050962582195842711690629811640599040372497205416102425383289232412018135515723775460419332053214634171470643719676099106838163428884400341976836164170938611304568884563813272306704077231703652265939695756736293686578130397534769158587821444109","osProfile":{"computerName":"jianyunt2"},"vmId":"9c9e0b63-b70c-4806-ba0a-52c7cd19cd83","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7vTHBZjXl7z8nwO13FpGVrK1IuF6qt8ZmyjJghGtvKTrM8fuMKB2Lj9z0vUDNtWvPFA0LTFotcFNGSVaeUCZGXMNcJvky4XLTtZ3yFRojl/4AO8kRFIKUFJxHi3JRm85RQHP3r8CwvRXsWbhOPzTnA9YCVXECnvD4zI6EWtuzeNrTRZUg3LRf7ouAKQ33m4WLsLVC4TulP+eTfuoqqUbIMe1kzDFkmYdrx5MGSmKnm1TYTiQtyLUMn/5aWcLidIpfMuRXzT2gWiy1Bto7moMTnV0XYzfcaS/N7NozEMOObdfsoplwXt90noKdT894OnXFFkDQPaAA0Q22Zq4oBj57wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b2d7bea1-848a-4ec7-8589-8a41ef4dec67","name":"release-b2d7bea1-848a-4ec7-8589-8a41ef4dec67","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f9edac7c-6581-41b6-b4db-f4ce08516a53","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41860969779584921435662218992983738626328128095898333177881083465099151793542975177773595209843654501230559857281923534624919832548090114116810535947775209804796247817440455569544612578553896514035345354715349951890169706769759567222403435766540741708466292091783229336649358152758652656663077877963486841457112410227863591645661812882","osProfile":{"computerName":"jianyunt2"},"vmId":"9ba963b7-fe23-42d7-8b04-8914746e6347","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApy1Kb+gHOV62F70+to03u9bNkXkQGSRxaCuFcfpX3sCaThtzoCfvReDCkO8BlntoXjCuy8pxanjdQwDZZ1UekKlDyANstrptwAzIVH+xmy7GflnGkzFFHnTuZ35U4SAkRWRThSejLBkPfCy6LiwIhje+/zqqY1fcJsD+ygJDOkOWl4xb3Yeq6llQXzLjNtutKjPNO1w2qDoE25VPhj3vEnn1GDujHti9CfVH+xHLbTYVSDGvxYJ+hGEoyAnMTqawX8HVsYjMApfaHq1TNYzL3DK0JsO3cKwlb6mdCdXErwAP2DV0crZujo/hdh6BuJiYwa3kv+j15BW663FHf4jWkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cab41e18-5945-4aee-8721-21f3700bd808","name":"release-cab41e18-5945-4aee-8721-21f3700bd808","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"32ec8663-dca0-4d04-b9a3-e5d66cdc5181","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41870682483332013359614327331219772116524075217345124670179836767900915361803166352251790174995907676747897732399386191759521864838492038204321539513523224771814832766839881765695594176642788429969173916979532098247924717929836128514520286890645754073447447154406786386571706996309560647232121095166968491869115672857353138153959355463119","osProfile":{"computerName":"jianyunt2"},"vmId":"d01a1c71-5d61-456d-afda-2fbe29da3645","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzYK+1H/3xb5ARPivA+SqmKzXe7BOzbgGTpzF3kxXljOb0zAsoG49npin73DEa+qMtUAFqwi66jos597/uHTLZ590OlsNN7ff04YdCQUkkDfUDm4jJu/ACm3QftwvlLEPQUPvZkuUkajnZ0dtyVLVdHCyfJVYSVn6yUZC35xCwVi+n3O0O45Nv6t8MIUgc4+3uQG0KTq/OzfxDdQPiFqWyHetPnpKGMkEI6BaN172kSzsdoD0VXnj9muFjAQN4+xwhuFM7+qMGMpOH/WMlsCMwSQ6+5Ey/woYs1HdP08nGerhjnT00wD5wnsKmo0fRYWnBI/S3Bw8ArRAMKuIOgGnBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac8b513c-146a-4d75-ba4f-dd5453a529d4","name":"release-ac8b513c-146a-4d75-ba4f-dd5453a529d4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e48a692-aa11-48e6-be5a-7d7f34d24cdb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41871329312151699900780635964957865195764892245224786535931896740353842994344188474139559271158451442687927451978697426174613507263936341693382570178565478471685715928752817945884751937278761357241851686014892263887751497180647262215091355550996827378662339626265280873814826831760010992454325290969395041503795414988714826632187617680269082112235803235529467733227691918455947961993056256045358593248961731649795","osProfile":{"computerName":"jianyunt2"},"vmId":"9bbcf3bb-7026-4e00-9008-447409c8201f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuxaba1iiTspUSgE+UUydyUQJKwko/vhJZLQ3HFU3rDUghI26YXEQbWJASdIRbj5Ks0FmTvHKWAhmdFshojbezUoDeg/0ismWSf9Thk6Hs+yqr6tSBeuwfZsozacb1OtQGjWv52oX2lWIQd1OinuT7o7IdjzVlRfhb57rC61fXwPYO4blL2egBzhsVfBcMUa+tLT0HsyxvcsIGxWeG/YSQDBYugigiGE5L8uT4a6TH9GeQ8BvaUSXmX6+lL8jz+uQIcejuOnqTSUruY47xqwtBMtu7svlvxdyt2cfozk9LxyHDeOTh9ykC3+r4MqL20bF/Bx4grVPkMSQoyvzQmiD4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-491b9b70-2e18-47fe-b126-a8586403edec","name":"release-491b9b70-2e18-47fe-b126-a8586403edec","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bb766a64-b2ae-4a84-a87e-32ee6f6a7338","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189448271690183599633927637775105836192343240833184816689479176874795378312112278614637190002506329054320031038895916163299089469564790046425770162780762703731097127938602974256263314384474682393551199359378177413195517581343249494361469118847195417290898957211310321391651142285168292688728284817353399459684071230444553899802427969009760234764575564605796639432347401330470603081719553531273879","osProfile":{"computerName":"jianyunt2"},"vmId":"b5d5150c-4cb4-4357-a739-751890c4625d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAspTBcqzWsSfCeHh/IA7vaCoU+PlNztbpsVL4bD2sROCW+aUYY68rkrDzxptaKcK6xwsrtfGpmxMRM3+bMFmZrR9val+N3G8XJ9VseV6IKTm55FFlRTA2aWfFz6Zh6Q2RKDtDvw7ByKCRChtXSzK4TR4ulzEFibQrgQhEvWyvXEHlWvh1zxmG+ylQ9nHbBUyAgNbxycMnDzqg1nMHmXjBdneI7/axXtIZkjfaKQOpUhwj3UOKx55bgXtqNnMIKxDw7PqsxjofByHecdeFD79vD4YWk0jaKLJNdBiScf43w8xVtebB2vv8Afw7qAwGqGfUs7y9qBPFGhP6D2RIFZYbFwIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=VVJhb6JAEP0v5rhPR7WgAk2ay%2byynFhtXRETPyIu654nUEC0bdrffrPYJndkYR6zM%2fPeTOatl4tLM1P5oe7dvfUYRKs4slgMi95db980ZX3X7x%2bTPJHiKPLmJnk9VeImLY79%2brSt00qVjSryur8diaEzdFMzG3uJORw7qek6Q88UVualbrqzd9tBv6yKVu1EVffnKq2Kusiam8nLtlI7WhzLUyOQKd2rXNQ%2fk1KZLUZi8XtrcOuZA9ccWGZZiVaJ8%2fdv9UGVq%2bIg8ntjRAyHGJbV6F%2b0hg36a5Fl6CP%2buIB8hHkiXu0xnb6EcH0MGy99w7KXKwwaIlgtqUaDAeIwWiPGInbInhCNRyN7jH%2fBQseA%2fBWqjbIgZEgYLNwLn6HFE8aTK1ABitCemnOfadyiIsIXiOw0RuKgHQWQofX2nbfdaC82Etx2ua2rOEmBAESSMpA688Jbd1LwBQcyBwmMkz8rN%2f7iLAOdbbuZhAlEEO4Bfp95x4X%2b9Zei01UFcp27O9sJwMEAdOz5YwcC2d14VyWee1WYsQKIhCdA659hDhDgKMgJSE04TpVJwOlSAutERpIcgNOHkLKQopdEMZ%2fOOAXgwNSaQ8wfgaye%2fY3cwAPmzYZYk%2bD%2b4e4x7LdgcglUyilQRiEkVD6z89ccyP86swsyLHQP7UvX5dk7EExGNl0aQk4lw9owhVyCpdfjB75VkkvxuTDdBh3Vv%2fvTxRyTy2eEZQU4IstwfH1Gfu%2f9%2fS8%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_CENTOS8","name":"0.8.20133.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b39b173-1f9c-47e8-a07e-68d6dba692ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"88ff7074-6b0d-4702-925b-73a476476876","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAuKJK7xRM1aZ0XAIjX7N/OsToTVENo5imPML5JABOoMT85q6lrIRWcKvdBzyu897KLBW8fS9e1rfhv6qf50wu0weSwE4RDlWJFvwUFMiUz18kv7+nYRcGiSfl72kjzCaX7xuvgu3kzE/rErhjZizsypiKRTRHAUiaZBI9aSVmQ0bnF18OyXvAWbpNH+XIriYnYMC2qKQrAoqZ7zHQI0dh50Oqw0JIKG+px8ZROkTGAVL1VMNJIjv2ubltU3diTfBfD54wpUA3ygTpPp3Dcz/8FLsKDPC5JMRkgmMkCAFw2UcR1tEDYhpL+GhAL5mQFhKNdMqjuWPtBJ2RqO6y1VzrZQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSF3gtar_e2etest","name":"WIN-LREKSV3QGSF3gtar_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"65078a77-2b6c-4a66-a0ab-96022f123586","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"b39efb18-f70e-4e04-83e2-dc27ea5cdc0a","vmUuid":"3DBF8104-DF41-4F7B-B581-68E911184417","clientPublicKey":"MIIBCgKCAQEAv/HQ97egXZ33VFKA0KLJjEw2dNlBhma915SsjLuooF7SUHGhmz7dlDUwQqskqETeaUH4TUty4xIEsPldZ/SFO92zRJ5bVH9jp+TJ87hQKujXWpTJOfed6KIlUIbhDqifLUAjr9OFro0Ha7S+Buiznx8lWLR4Q+MgrVMP3QBaY/5aGHnZsFRzOAQ/0JSo8BsYsdIGQpDg4bLR3w5V1Za99x/nBaBxngl4qanB7QahIqQyfIWVQbBkBIxLDATNvFoAgrB2o8SavIssawFYf1fYSQZDGBtUnw+3rjyOreGRU0cShLiwOVilMeA9OxAib9XEbXiDDh1mP4uGr2cqfFtN9wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFk0h1m_e2etest","name":"WIN-LREKSV3QGSFk0h1m_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"e8ab179f-bf81-4120-b4ba-9faef59e1034","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"9262b0fa-5cb6-419c-9734-a5931321e443","vmUuid":"3DBF8104-DF41-4F7B-B581-68E911184417","clientPublicKey":"MIIBCgKCAQEAr+yeeD45SUhEFMF90vNy8f/Y21JiYA+rsH3X+V9RQOuSUk4nN9I5VS4yyiS/ZMzN9X2BWC0rdBx6lFW6M3Cz2aHKtJvzKfitcAgm1MhiCejxf5bknKBUZgxu37Pls4715kAFhdhkghNB2LhsDcu1CP2de34LgLx7P5xQMkEyBpatyLgcyKXdMzKN1QJaab15DKFc0cjn3s2R+DHmQoyEgxFDbpn8PnhU/UZJG30kfrMnMHyaWJHRJeJ4+LJGGki4batwdn9ZL5oZk6+hUEcW/EvZ2j8Nmju8HLhEEL5AGC3/lpx6XcpRzulsVW1S29oFO2MY1SxWF4r8acylKrV7eQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFqgrwx_e2etest","name":"WIN-LREKSV3QGSFqgrwx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c03d4548-d962-421e-a518-24bc78c17691","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"69f85757-5e12-4c3a-80fd-642b54bfd296","vmUuid":"83D5E96B-FE12-4876-8E23-4A154A67EABB","clientPublicKey":"MIIBCgKCAQEAyfVRl5tcCs1W0yADsRU7ErShIybH17yte4U8UAau+TEl4qz2st9+5i3wljP8VV4LOgnt00/Q68IRkaiBALIjIVGt6hHNptl3JtTaBaVcQaVM9eh0TNbJGhNxdROYugQ5TJyNTtgXLoBZoGWK1GMDvymT4FoNA8woWPxXCHxOaRBgnjGgEJArf9+WMDIRUabkhj+p9u1D52OQOZrp7AWdMVH0GKPm5jjjQMEohqILyOzZ9EDOyuetr0eLvh/kKfp4OPtpRW4LlsJbk8vNsYfF06hSQA4WH8f28Qy0VVcgX5tZYbYXwy8s7qTFsJZNQH7dv9tp9vUheCiKblDtdbDgsQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFks0wz_e2etest","name":"WIN-LREKSV3QGSFks0wz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"56f0e5d9-365d-4445-87f3-aab1f1481c4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"8fa861fa-881e-4b65-8f66-af9b0d28dd00","vmUuid":"83D5E96B-FE12-4876-8E23-4A154A67EABB","clientPublicKey":"MIIBCgKCAQEA0zY2+YMh4WClDhLBqZTLOUZb/cM6wtIZpvkAcpjxYWz2yVrWimBWszDDVxzJ2B5SYOl55swwAs2k8jG37/iXv8xW941HZZCP4TUMUmkOoPE51FPA7R6bNONmlEz65Vvvq3ymVI3/UPcAZhxVEFbTr67jfy9JqWxaH6Cn90JmzJsqv4PLDFRpIW2nzeHNVLYWySz55koW6xS750eLwA1ExmVBQ2TgvSJcVQkPKlYvxQA+3Gmr13nH4g5hIkz9Hzgahgl1/B0gtN+Q84BxEJQ8fN+V5i64li8aoKTGuY9Hrr0J6NGT7n7iJmxKtVcMv2ReqUvC/d7cLknp8n8y84QfDQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_RHEL7","name":"0.8.20133.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4349bce2-16f8-4841-888e-c135608ea1bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"6adb3c07-0bfd-4cac-b92d-cee71fa91ffe","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAq9hfyzrDOQEIKo4/avrXo0aGjj1vARLpZTOnltW+AfYfAW4LXcJE2qjpEk9As6cF3W3n2zTYZ5OWyzsVq2n78DbikibmP0y6M8eK3gyoYio18w6bGGTDHV1sqOZikOMzk3gjmrqMcCmk17sB1k9c2ki0inDFyrSg+Dag3S8ZQQGwNPU/yXgwyXUsa1ucHgwCy4bUj636maPqGQ6RD28dXQdsBaSaHJChILBgAwhteRLf1hyMAbijg7K7CSzbQjAgzUxNXFiqnuDFXdOuttsyapmI9ELpRh9VS9RnSHQvN/4EraaAdp2wUjozcT5J9KhNQcbQi7bIPKT6yDYAsCQH0QIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_SLES15","name":"0.8.20133.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4ed4782-71a4-47b3-ae39-42d445c9fa86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"b6fdd393-38ff-4e2f-89d3-534be132bab3","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEArC7gude1TxxxN6wykFnHjzJc5L2HlA0GZ5m+1DgLUN8hQfdkvr6DcsLZn+5FwlLBqMz+XycUSTidne95PI6NfQSiSWH5zDcui+1KOsEX4Om/vQSCaQgCC6xTCCwm+bB/j4D/snWSYsP/pTWVUtWQiU41W4KRSyA2JpfBI2y40qtpwIx4fA2Jxt8FgF7aCxYFFDKZfsRgZc5ZCTVJkEEI/GppqVKeKABzxy9ps0Hq6E5FfYy9YoZtAycebQjImnRSDCFRxTd7QxGxDdwfJ4jF2Jxt5Dw3tACkX/+RG72g4z3KvKL2NaiEjotSoenzVgc3FdjUrue7T8WnpQpoQlwN0QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_AMAZON2","name":"0.8.20133.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1c7f1c37-1326-4557-82df-b72135610b86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"4b8eb832-0b22-44bc-9041-22ebc0619ff1","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAyV7fPlye5n349gYqpzH8xur+7uDQj4GR5WH3Bs9zO2+3TszvT9OAlksnnpr/NnDl9+zXL9SU+ww6lTtLYvw5Kg8gLm9S/KfbvU9YEShPJjGS5OeR37kw+E1j/6RIECJ4fcfVCLjx46rOKhC2ML4dh0DvhOeLniFTBsCKFSyoKElu3y4sMQGnvcFN+TAzzy1aiF4Rj/frIZiiV3mdS4DKTYpxBgTe2WTzhUKNBN7pJ7Yvq4LzYPnSZPYtohlEf+7PlXXM6ygVJuTQyNb0mdupDvyOFBQPPHIejO1P3YuMFx3EwvVSGiq+FVszCH4L9tN+IIqtVuzS+SoNyMHM827gbQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-19yko4_e2etest","name":"George2-SLES15-19yko4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"18dac130-8f26-48a9-a2b6-bf11c85ba842","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f0fb692b-6e5b-4e38-a3b0-107cabb166ce","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0dmVlPu+WlCf7e72txVlyZI+aY845TOcmwzYlT8zD1ZGhkyIe19emcwRKiiG7eWF02+yPUWO57/tCEEqr1gh5pBooPzQugycUaVwPdo1uzB/yw8yUDHr08H137XcH97/VWT6b97D2p6EnsFMK6aPTf+UykeJmrzTeI8/v9ZEHHOe2Ra4/XnGmiXcxMewep/qj+FblTyex6LTjQVXx1cOKL3tJu1yFnCDIfcGFzhW0yIIbnibjRtEXLBk+qGU8AXBVB/oNFG5gBBT7IVqIlxInh2aetrlnWGIInJmeiR6wjTjR4W5hzJT73xt4hDm4JmtCMYXF5cCkzDOdZuTCH5v3wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internyp5tz_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internyp5tz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"627bb7df-14b2-43ad-83c6-3a50b782bc09","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"e5dc081c-3959-4468-bd5a-b05de29895a1","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA5xqVoCtSa9rWQpV+YkRnTxkIsiglEe1YvtX13Xzph0h/NVATzW8X0YCy1LPf3DKxyDmNva1H+Bv7KMBcej05ANWGS7FaEGrxOxcVlZ+Syzol8wkkzf9uj8YayM7kv6Fz5FchUWeoZmQnpzSeinMfoDJmEKJXCLQjc707TuHMgLLkHxNv6LUjH4408JLuG25zo+F0QUCLqw45yFHKk4koDOkNRckeJz0IKN5IHE/ExVHrMtss91eJMtEo8hcegKDd2U+cGfrr5yLYzqgm+3AYTS/qiYMxx8hLA4La4esB89eYCwEwmWVI2nbzhebG2yjSTiXafdzJStMpDpt5RrHYjwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1y68fl_e2etest","name":"George2-Win12-1y68fl_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"5b3c33bc-3320-4793-974e-d77333d316b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f3b28418-da06-4df2-80f3-6c79ef22cc91","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsSEKGkqXaUavfbV1XN6OVp98Pfj2MdWlmel6LA70n0uQuf+k0lJ6FIQCg8A1VxqER+fGS01qor11NkbRYypO6vxoZ4KMAzOtjdCMaBD6mrwl6VPM3Q1n0R3BM4igizRMJWLzS7yv1MCe+GiUV5rvz8/gcNCdFaU1JER1gkjVBjJRdQsboX0i0i0n/rpOg5jbodo9IAETEPhoJ890kU5FJj7SBdM0j/ZCzvnsaCsQuUWfHndG8DvGSIRu094zQm0/8KFDq+yngIoycrTzf9HDhkQKikbfw08g4k/lZ1VXXqEp/FtYb7hYMHANpcuh9lH3w6JfbyLHFzrEIGDPrBNfTwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-15mt3y_e2etest","name":"George2-Win12-15mt3y_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"5eec18c4-d630-48b6-a94c-82edfd6b502f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8ae50ad2-0c71-4ffd-9cf9-6a56f61981a8","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA+dnYlvXoGHz/DO5VTA5K7CTDEKxqoHV75B0HS3h0G/HTPjt5jmSJEpxLBLABHZ78yYcwumv9x4T9SLT68MM2lj/RkJq4KlA5voN2ROIbY0ksB7cfxSq7v+EEw+u6m6C+usWVq+4NIA5+PAMt2DP6KTuWFZpMiIAvHTn6B6FT2xwG7+8aQoJ0QBPTgZ1X2bMUrpVcDFBI7QC/Fh6flbsrZcr65ByQN1xQyPJ6gxP88zFh3eQ4X7f4Rxz0yAZQpCOp5h8NxVv/NfRuqE6l+EZROCcMYwPxC/ftkeaUDzcZyl6yVdvx79TLGH2rtv0QfSx+hpmLnbNOW020RYDweZLPTQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003","name":"0.8.20133.003","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"c631e812-bea5-45a3-bdd4-0d346d57ac69","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"80bada80-601f-4349-8470-3368e4ecfbff","vmUuid":"5103242F-F1A2-E240-93D9-EBC6063CFC65","clientPublicKey":"MIIBCgKCAQEAu2nxL/NUCPCgfhIuQnSQQgmQWbhvbC3LYw4h48Jb8x25+4X4nfT0KP3+0MkzGN/1SqwovUdqC8BzDFNpiEqUZTKfIetSXVv7a/GkUxWl4OG9aJhQi750saIv0Ubk/fx5pb60vPjPW0DA5vRIA6jsP+o1WYI5zvKLc7Quh+rYvNWYksWake2HI+dqKOOZsEB1d0QPZQafzHRZ1MN0hGe6gC1dGZJ9v9hM/EN4TfrPZK92EsqRFf0JeqCnpmka1+UZwbB69v6js5mWlyrpRfVFCwaq8ToFHF6+xPp/cbBsdSaGRrvvKW17LIP6hyY4taWDcuC/yK/9QlrJRBEu5SF5SwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.tneh5hs32a2ubie2nppnwrrtfh.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1ilh9a_e2etest","name":"George2-Win12-1ilh9a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e492660f-ee10-48dd-8f2e-ab2896e83ed2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"01123a85-996f-4d36-927c-52ce8f6fcce2","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAyHCuT34QmfDAcTeYD1lLiH92MBkAdIVHVd1Y1qNwjphPiYqZCzH/Q8xW1Cn47DooX4gfxc9sMbg9DXY5HDMr59s/zVBGr37JWPxIRFsC91nd87kPhCRteNLXO5XleiE0IdzoFtvHGA35rntBuh046sObOBqTq2UI0pm+ISmQf2VGBgyobJZa948z66rKj4Go41DFtqCJvHASmDMulwPDhKOfeoYYz8PJbIRvthITSVsho5PLEkNdNDgsFhA4br9SKD+TSXajXnj/UlvDbqhCAurdrAvB3PNQWFP+5sFsXcjPt93/SXjp78h1yR0sGs8Dh4VxuyUt7E9bWi0AFiP5AwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-14vdrz_e2etest","name":"George2-Win12-14vdrz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"794c806f-35ed-4720-ba22-a9a0a70074bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"dbd39965-9412-4fe5-a2a4-048caae4f641","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA6fgry/2AGAfcW2WSruTqY96TG1Hgy3Es0MHXuMqq3rJ6A6ebIqzGNFu01+Mha8OdH/48tD31w9zqrqGqw9FpK5sjcixmOn5/P4EpF97rc06ZP8Xk3MBVh0Ib0iukG2kXi5wQYMCt2VZhxEoqfxwEncNzS4AJ4VozhZ+QeBoL/5Qfin5rx5jF3bnHAZtn8ju8Sbj4rTDXJlYmTX+xriVDJCCefkSrF95RwmNzJBOtq8qoOWG0wKqbA8dlLB0dG8svHFJYg59a1inhQdiENJk8tNLt+uqPCkTOOsw2elXS/66O6QUWo6vPQ2sGdOg/JjFU1kU5DHZch4SEl3epqKQKcQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.004","name":"0.8.20133.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"efc8acd6-5ace-4ad6-959c-90d0af119da1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.004","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"fcbe8edb-494b-466f-8a4b-24514fd8e625","vmUuid":"A67FA963-15BA-7447-947F-D5C493323538","clientPublicKey":"MIIBCgKCAQEAs91EuO3RDJJUPEpsfQjqYoCwA5AFBPUNWmxttb2JoYnazGz0nQ/yqBOuMygjWfazlyYpCaru3+z0efGY6T0/LdzZJVrCvOd04SHRcsGArWVkW8FMfB0w1CeSsbi4aUsMg1+ERK5WmgzfIZQ4gAC2z2pGggZZP7kQg8It/y6A+72nTmk4uXwNmFk6eVQ1IPxy0bbB6h4X5ZNecGsUibGYEXkxIp8/TMeawgcY1UkOb1dbqJQLyOok9755sdEBB1UkU0LSuS6gLvCK6yHrtZosLCcTnZtQjlnVSvTa/mXSoJzfE1W+HsYDWpp4sPCMfQIHoSWlTBJr7huTpa8BDWJVawIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.ef5nk0um5skuvmwa1mcx1kwj1g.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_CENTOS8","name":"0.8.20133.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d6746a79-5eeb-4d75-8a05-ac28fb03f59c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"1af0a676-2755-4a8c-a61e-f8b9c6026c2f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEApiUBb+EPFebgIGuXTuYAmmZUiiKF96IKAkmBCrvCe7sbEq+gPGWOPOqkkaGt+RbUwFam67b5nzk15B30ozsPFy69mDTgGWJ1jk4JCZnl0Pp43nUGoPiQTK+dTC0QIyTZmH1anqrpTGrtetxN8vzz1LCOHgVdiMT8DV4u2WWIK3z0HbzkDts4tvtbhcDb4kRMMLFJ7GmOrhm8PaHV7K5pdadOMyv7myisW5nTGHezKsYSx63l9f+tnWw/JlxsMHD9vzXyoBLP97ctKx1nIkYNUfW4sEcAwD7R3dZxOHRgALEmfvcBTzikY9C4y1HLRGh0cVJzr+6bEy2sgL/niSkOewIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_SLES15","name":"0.8.20133.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f9a745ec-4ae1-4757-a05d-a84a321ebe11","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"c1521aec-7c12-47b7-a78a-9b72c98f547c","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAqFUILhONAxWNecJ+OAPUx1z2/w9BqcMzzCDSrMmubYBJTqjRSrrrhWIZM70fPwvXTXWQNLAzxsgknBXQ8DonEPH3jt3PJf8BazV4ge72eybpqAfZ1nMhW2LQXmFchWyYn3RIsr2aSHHguxOjrLRZQi7gb8p2av7Dr++hytbpnpvdA5VTckOY2VwvhC7bVHIRa/dBPZY4mGTRrRwil3PdD3LxOxHVxix0WCWniWf1mdNeNjz+7oH8vNHPczyz/nTybeNyKLblSLf1hKupS/3w6ywBVXHT3XYtjHuZTqncuFCptpAvJWHmTxOW6xugw7Fzjk+Z+cl8VYxKKRY9lDwMswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_RHEL7","name":"0.8.20133.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"949995dc-7997-4b84-a10c-88596d42a37e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"59ce5fa6-932b-4b58-9b45-2913ca7f91ad","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvXLBP8ebVGP0SgQcw5pzxhxS3lif2mmJIv4pUzmcSvpITJwLu0OhHPviWwlPwgDtnWDzAUYxtg2O9ynVUwTcVnU8HSmj7p+YzLZhWXjzvWh92N/dhyWPU64f7BH5MJw2JIPwFNxCPcbv0ixy3Xn3HuH2Yb2GUSOpeYdfHdBpE7sqvULjPyyZgzRGnb6VhAeza56rtMCKgNe1RgGPEG+YdgjYCQMUXyT7FwBun71A6XVRtR27Z5aO0ZSawEKc8IpEL+I3ixcAr7zCQmlO+UjL2DKcs4UDiy0HtUBJiXrhtt4uForEEtHH9FtrvnExnviI6uRuxF0qrUn6NNY+ItQMWwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_AMAZON2","name":"0.8.20133.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c59738c-4fc1-43de-a35c-a9f5dfd7fecb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"bff91c1f-5cb9-4abe-a186-de5e335449c3","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA3Gc6HZMdXUMljfgVEhs6sdYjXOPo7+Zv+p0zvfsjzQUQ3s9QaQ13vZG6ZghhLVNdaadMxlh7NVuOMrmpWxvdzLLK6JV+R/88OrVqfqf9kMPjd5OPy3D10u/urXfgUU0QDc8Fys8GweLI6gcJhl5KbBp8OiXC3A85CKzqTOjmZ7PAqDDsRgMQTB7cNyqYstJRWxDYlUqIQlM7VUiWRnhcqeBiKWX6Ak1q2dYo6wjHQaPvHEcF+Wj57x8zEdRcBG+i66I094cLu7a8cdmpPvoTzgy5mY7lbGricUawGjjAIi8zXihiX2fyINR45mMfGH9I/eKsRzxVCYxVFLWEVUhpXQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1zghnf_e2etest","name":"George2-RHEL7-1zghnf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"34321c5b-e9de-4b0e-ab80-251df9913dee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"4eb887b3-2c73-4a9f-a9db-049568ace2ca","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAyv3BnU75xmmEln0bHltS3XwCh3O26cezAiOCw7b/SBfRzz9bgFIX39IRk41L2LLLXTES9fIYqkiQjqq3hHwMiayQ2NHamNqXRkg85DcJMBMHRwVdT88BS3l+rmpS+o64l1pCdL+RU/IzGKP0LRv3B9VLSDOkDsAbLWoPXIlX862ADfJbOFFcaBICm+C5EqHfeehPacVlcy+66xJrVstbncT1uRryTfa1Qi5n5gAnh0QosOyo+PhdF8+nG5Rs4uMcN97JMd1J6V8l+CO3wmr33JtvXVqC68P5m93JzkT3+xCG9UKb4YRnKcGgmsSLyEfT/0rAH31MsZ9oRNQITspNMwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1v5sna_e2etest","name":"George2-SLES15-1v5sna_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ead9b979-2a4b-4811-8aa2-bfbae02311e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0e62f9c1-091f-42a8-93a6-7b489cc10ee8","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAy4t+o6t5AJakLfztnvB+eO6yMb7lL/WE+lyJZFCzd5poRqrW+3+t6ADxVQunKscm4HZBoyoebRjmH+mKeszuI41aiCVlUOthUYLrMuW6VrbhxIj++liLtHb+hgOK1v+AOgA4AxnayKTu/Jqwcbfmi1wfT+D/ZJzLvM1AP+RB9XVK8v+d4F6qoN8xK8g/hA+GvL9PMRRvawmV0k1WmcX//by+6XXtbZGraeHpsa1E88nTPe8E8VIf2mJW59h/Nm4MxeE72nXN+Nxn5z2gqvWfS1hbXQl/N07AmadFWhq7V8tbLueJEbSXxYVAAP41FoYMHmL+KrtbMGsZYP4jW5mwWQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern684jx_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern684jx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5e8c509c-224b-4a49-8cb5-6f2c80fbeb72","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"f636cd46-6045-4256-9789-ff0dcae18525","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA4dQHmceZllDhLMvAVfefnVs5HdTVm6fn1SfE8g9/oTDAEKCNGMuSuWFupV5veTI9GVFYmnUdInUntuG115McakRkQoOcFTwgAyf449jgs6XtHWCkQ3a4gTVXnUICt7R6dROjB6K5X3eov1iIUWWfmrx3wVsc6EizP0sFHT335R5RB3ihA7OYuRYu7zeqoBw7VNMvKgT+/u/Oz+AiK+BFXTPVAe+RUuZFajFWhoF8BVCGPxLBU+bhXQTYadgj3MoAauUWhWwMXVReiAfEk0nhxSfbzhsgIWGZC2drKMJLPxkxbAPGpH4ZKP9lC8hdZ2u2+SxEjYJrDrjioNkKu37ajQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSF6yuco_e2etest","name":"WIN-LREKSV3QGSF6yuco_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ae6f7ac-0ade-4cf2-a51f-3b44c493815e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"150dcd27-5188-4285-8709-5042e89c1861","vmUuid":"6FB2147D-39B4-4A2B-BC36-3F794CB11608","clientPublicKey":"MIIBCgKCAQEAskVAB9GgH3vN5PHaQaIV7wY718jdc6p0f0RcOXCBiUsSvOy52qYN9uLUbAWHFhxzEaw77SEGq8wCju0knOEqK5TzIAhUrzQlEG9jGdHdhu0jnc/sjpjNkCvZtznPBJhjXOyCnNBCLe3IiNblIA6mHB7XBjDt4XM/xzphidi5MHnds0UUaaE0SUWuneZ4fYlt1wzzp7Kd0wpGgGsSZPwXvxC8o+lQ8CE1K5VqueJiWzQZhQQlwqDgULlIgR544U0ctHW4D1JDbE91zJF1hfRwJwnPq+kWEUYpHlCIQMcnwo52p72xZHUeUmfLf/eqv2m4OL9zNbvhedBwHL2Fay8mIwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFk2ajt_e2etest","name":"WIN-LREKSV3QGSFk2ajt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9451c274-e423-4ca8-9b8f-cc38ece6d449","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"1ebb0081-ce09-4a17-954b-3c488af1d2de","vmUuid":"6FB2147D-39B4-4A2B-BC36-3F794CB11608","clientPublicKey":"MIIBCgKCAQEAwRQq40xps7ILHtD3Xn+s2zPiBfF/RZkbdsT6yURTwAIUPPJVwzBzvAVLLOFqXE1MEfCqeeS+4DTK5v4F1fKfIonyQNMzj300d6lZmLP1UB0kjo8orgb+hNNGxFfWXq0C7kh70p/YmMnkkZ+6qZxLTowP5ld4EzzUq0bvUD4TmtTdQ8p4lWY/P7Lx6fByvo74yX21lbAUOfinYljZUFV1Ia6vuSmp+HLvpgKCcTgGQZlaqf16/93Zz/Ox+E3rCl3/7woH0Y8KUNMcVXUbUgTn+7+OJvR+1fTIyfvhycag/aIpTnVH328IOvMPgoPR4FsEIo5ZQHw5+yHYTJvJ585XHwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16hijk_e2etest","name":"George2-Win12-16hijk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"022bb990-9906-4e8a-8c8f-2d70cd17e2aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"6417585e-c214-47b2-9748-9096ac12f6b2","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA4SpIqWijDaSqVe4X3DU9JVmDv2R6YaRgeIQTNdL256uE6i9tyqWZXZ7csYpeXm1i/LyNQ3nl+N3KMJGgIfkB5JNGEt31n48kQxuYTOd/3Q+s9ohjnp6zt/kgW94MOBHFEZYqlNMJ5vXhjNJicInjEwF37dChdhC9ks2fjwpOVUxtV9UexOU5vR6P4KTbsIiGD6xIoxgabP4ePe8FAS49FszOYiEinv4OTytzq+9DKH2s12jufE4TZ9z+Wjz3LvgQeSmok8QGmnyGQMPh0qePx+2cw5RRGDrogZimVJY1DSDDoDN8YE5rp6apUTTuhN32JwUuCcmpszNBHIcsgf2pgwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1pbg0d_e2etest","name":"George2-Win12-1pbg0d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb13c956-7b10-4a79-95f5-bc210c7dcbb7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"601b3bfd-5cbf-427d-90a9-613f40c1e2f1","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0CGpMZyQZa+49M3e9NmVWP10xZHXZpYG5dQlvlZmlmZcslMdJOI1taoqxIYLKQ12/6XVtsmDK/MU/uthZ0bLYAIXcLIM9iQpiY5QeY7RTae9l4YeewLOled0hA9DVHTWI3AZrL3h7HC4TUWCm+ykeILpUSLFVnpV3AIvKdEgio8bKwW7K2I+Eo/saagsatswa+03fTxs8zMVcM+gO32T9qFI4GdavAhCT7BnM415Bt1QZD82+RuF4T00VkSFKCtaw4/CDul3zwk70bCl/y9fuARtxmBQV95knmXEg4torZAN7cIWPibIbBZDHIIkLjmB2u6CY7C72mzsb7N64DznfwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.005","name":"0.8.20133.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"10f19df1-6168-4ad5-a1ce-d6c2b943deec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.005","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"a473be34-c53c-4136-a331-7eacb504b37d","vmUuid":"4E8E89E1-9201-9E4C-B76E-57FFA2B62A29","clientPublicKey":"MIIBCgKCAQEAtR1vkUhPF6gvA/R7kMFm3aIcQ/bNTHDGJxmTRb7GgV5v8R4V3gqs4v5vzeVlmbh+g06kWCR7wYNuZHNa60wsid0NSEi8oExyY+5Hd6dbGUsRov+YnZ8rAMVWLOJCajTv2g41V8jPklK0sUAjtKm7vA81UugSb8fy+iFFhezH29pLP7JP5HBaVNe4MHkCTLary2J9sO+jT74Pmxe9+N/vGbwY0p3WRHaEi4Cxu2YecSEkrgHqR33AuYgQw13/es8gfk1NgtY3nfhC1Lg8BtviZx7C3E7FQQzLiUs4enuHxbvCc/HBLKTPwapo6cR/XbnZ7FGITeX3Se6KiYZtO6ITaQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.qdwxe10fqyneldbloddyfm1u4f.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.006","name":"0.8.20133.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f43d2110-d96f-49cf-b6f2-258095e4c117","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.006","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"5863ad0e-4f13-4668-8115-08b692d6f22c","vmUuid":"975290E1-CAA9-9140-8A4F-22A669D7F3A7","clientPublicKey":"MIIBCgKCAQEApKqa6moksSeVoKZiI/2JiTYBdvcR2+BX7DiNnK/xQroN6sA6kkQtZpSmiRX2cbpe/PhS8z+lvAdlxUNUWO41JHDtt8Ey+NLX8Z5uX33fU2Njcl9yQN7ecO0Jf6+NPtN7YxnWpZIv5W+WydLC38BAS3O/ZGRD351YXVXPzZpn7f05stDDm9JkPMVWuJQ6N/hXvrlXyTi0MG0Z8jQtMPchHBpJj+I3mUnwpWFOzot4ZtWVkUvfP+X6rR4OYzXVDSu/JLSuTWaKb/QdFscYr3M0hWCppcqCDkaFMqwDH6/DvrZzQ9BEZhqpv6Tx1IFAZn2SF7fSCTqKofCm3R+P84b+vQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.bpruthhbxwtudmlczy3lqysqub.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.007","name":"0.8.20133.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e8758e4-6337-4eb4-a3e5-d64cd6e0a9bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.007","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"fd6e4c2b-2ed8-4f7e-960c-c6860f1bdde5","vmUuid":"1F9B0601-6E63-8C4D-8CD4-F515850C20B0","clientPublicKey":"MIIBCgKCAQEAxHc2W6CkWMNbG6Z6di3ejoN+4JtRM4l33tFjbMOQf2c1/M50iKgYm815y1U8AsAC8JmYalXFC7UaZh1/bhyERvBzjEBTJCowhZhcxyhqneZipGBvfSaAwzEf6K2oOYcW+RGp3RC+J52ZnQkUzFa1hw91/mWxp4vyMn7Tm1ZUoxSz0+gdsnrcqKaMyLDfiPNZNZzfVEpJhn2E0o4GbZOq0pCjwCzBV3bnvW6fBRkthu0uBOiwjnHgG38oe59rLxENTnjnLmCEkBqGODwxT5ILP+82cJSS/F7t5pfO22gfRyfWS1Ytz63btfemxzlZhdEZT9gQUv6fF8FH70xrPDi4/QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.zbskxvda1ckuxde1evqbg2ljkh.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.008","name":"0.8.20133.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e6d08a6-ce44-4915-ba22-e1f99306b90d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.008","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"cd5e3ebb-fe0c-4422-898d-52283d3560bb","vmUuid":"C42530CC-7FDB-484A-8AD9-FFB2A9DB841A","clientPublicKey":"MIIBCgKCAQEAuPesKfLk7QkvSBer2jsO0sqTUBkdNHBmy16mKZudq+RwxuJSPpBRNPJqo9N5PngHgalCktZJJ/ScMyi5GcJGhAmnqf0125ZjG26ChJDqsZsUii+pzHrJiIUCZmxUSmNOGSFU3dqYHBQ0cVwz8UYScsOg5iHAnfrJuGExEi2mXyeH7vYKy2KGkzfXmJy3FzI3YahBh0Zz7mRY5FPg9IazPyUF+qi1orHJStyJmoCInVxsqU5t4Ph+gPjmQD2RQXOaEtnrW9Pw+UguNj9CYcaX7CVg9Mrc+n1O1dOaYBmd33BTnFG7nymM0b1X52F8DQxpZ0V+h54dUPBhShzlkLGyAwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.ffgswbdmdm4e5dbi2bjcytqdqd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.010","name":"0.8.20133.010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"12062175-65f1-4c38-84d9-b4f657bcdc03","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.010","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az408"},"vmId":"96cbfcd9-b779-4cdc-8b8f-052aca01faf3","vmUuid":"0220900F-14B6-034F-A722-AA3DFED94423","clientPublicKey":"MIIBCgKCAQEA58AxxrrH3BQ9OjZnaVBKaA2Qqrv5NTQATR69vtXx476aCWKigfNLi6xTxcQFzI5ygH5aSbQ/+rVL76M22y3BYG7GK+d4rgWeuZJuUrm4rZVWs7jXweff1vzhLdxCNB1nEH+rROj4tv3vAK+ZajY8iL17JRg2eaJDXybsefWiFWwS6wAwQ1BhSXwvaoDK9bTWWFyW2myCVNrnbsW8RDftr5UXovuh5fLCFn8aRRbXsPYNZXJh86uFJbHYqimdO7ewd8uIp/hUqmVt7ddULFHLWkW4DD2ZqS00qKvUKt9xZ2d3EroyUFIqfD6VG0h+F8SDYWUzAZwk279GuJKsBcdR0wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az408.z33hul41uagexmierj4pakqxgf.gx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.011","name":"0.8.20133.011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"283dd25a-75b0-4bd9-8868-ae30bd4e3e80","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.011","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"91c869b4-f149-4325-a072-cb839b3b6989","vmUuid":"4E8E89E1-9201-9E4C-B76E-57FFA2B62A29","clientPublicKey":"MIIBCgKCAQEA2AsCI61gbk/HQr56T/Sg29wa/Mk+OrdzJUjeulm8NHf7gQtOitE9VdxUJkOU0Uk73LHXSDp90I4zpDdgFm5tuomxtc/d1C+qn86OJv4/+YNFX0NDDUsB6bt+Ar9aoeJid5pr7vlCNhnHMtu4H0b29A2I48rmTDKrdTdwhPDItAGDtu+Td7qP26QRImyJNOUPqNjnN7Waml53CMkh4ZSvtRgqUvI48rx5MWD/vYNTzcHaUEubMnFGb+iwLXQIFt6gNzPRLrQLyaew0Wjp4mFQgrotv+h5bNVpNsQgIp0zGU3HP21ywikWZR0lDfmd+h9T8OfcIgogAyDqijZRY8POswIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.qdwxe10fqyneldbloddyfm1u4f.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_CENTOS8","name":"0.8.20134.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06435f92-a6fe-498a-ab81-ecef1a22571f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6aa96471-041c-4fb1-a164-255491ab5c2f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA8MKPiJjwRCFVgS2l64rjnzKZ6GqMYqcpsE/ZdIuy3H8LwE3COjHGiOLyjYiC62PPWwXKGPpfZY4Bc9ZY7o9/B/zhM+SCtg3NeFoPJ2YyI2/DXSsIVffiGU5VDtSIUPWUCJ5ZmqI60Vl5ZslKFk6Q35CvSmB927AXbrI6N1pHk05egQZexks3NJ7CaZS0yFevggSb6+DvUgXaws1Ifm75TE/ni9FQbF/KcVobSMmR6r2d+E6KQzmXc2PHlZ3YBpAWbrPmpjoOSFzaVAmdFeq9bZpFzzzOEAmqtgVv/BWU0Ae74nc6xupvabV2LnfLEToEFIvNGSSFGts8ab80CUPDiwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001","name":"0.8.20134.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"509a2542-3d04-4919-87e2-afa671c6a67e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"12a05564-c2b2-4d60-b1e6-93a4a8711f50","vmUuid":"6223B258-5AE9-C54C-B3A2-E2A3E6F49A68","clientPublicKey":"MIIBCgKCAQEAvh5ljGmC4/uqW44/+YWOXJRnqPuqvVCfKd5Yn+DOYAAuBrs40he395wWalV7/nRm9D5mRrc+L69IKM+MEzOXSzbQyfaDkoITkIui50WZxRNAyhKO9FwtMThQ9AhTmDUP6MDp3hsMba07TSa5lQBb/UZY1QpjKHHU9yzB8vLMFmUs/pCyiZg3jU4Sp+GeiCO9AalODDItoxe8rqBwlA7XkSYv+hUG8OXfoMNukWO5VSNexX8hGX5Da7AsVtpo6NmZMCvzw8z+hM2YAVGaJn01AxKaJ1LS1oiNSGLBm8xzYHLFeatXWnxyr/ohUKSXX4ev6f4SjtKSfvjXXovuUHLt3wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.zafbbzi51fnevfezdfpz3d5yaa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_RHEL7","name":"0.8.20134.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e63c5fe-c83a-4992-92f9-3ab73f123c6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"0c32c90e-1709-41a5-84f5-5a9305cfa472","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAnyeb0z2k/s9av4IPhHBPue/Gj9+bMc710QdiNTfZQKrpwjUxwn+1deUQZUM8En12jG06zWE8fQQjYcYc21hnb/6yhBMDKM1cfhDH58TXSAy3AtkTHRn7/jUMdbNjK6KdwQDooxxsdjlIdcQvarUBxK1RYN7HtE5aJZdxg4e9iaVcuu9uOFvvvgYnXuxShijPMt/6Jyrh890f2dLLNEd9RN1c++Y0g343bM8BHAKEA7Xulj4/8cP7P8Xef70GoVUex/5Ix8FZkwX7YTmhgcHjgMg7xraTs3P3kFuHhF+4rljy68+xVgYfB+KTTtmE1BOgTG72Iltf1EcnwtBZDMEzywIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_SLES15","name":"0.8.20134.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3b663d3a-15a7-42b8-9307-0bdd6b6cfe94","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0233290f-b4bf-47de-8452-685987775d89","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAv4bCCqsDmK8kwBrkPt7pOQIxX4PwkvnFJDXBvo1/Fg+6FVJVwJiiyJG0PlVbaJIsvFYwH/t8fNYPf/Y6h0AbD8pzTfZcCfLI4rziRTVi99x8oFUA6NUzNiehyk6vBPguTt6pg2hyM1bA93CLCGrC8Ov/IVa0vZsFk6sZX5Kbh4pkqNYu1OUTNU/JijLqc2W7Uv2OriRe2rXoKbix4MibvKnuW5BqsECCpkD0xuq9T22CDTc5PsHYcVeoNkNZZ5HTWDHPreKddlGA5gzrosvfETxuecrXr5idVlLCzmv6EIpc9Eft/umRb5MIYxNutXxvqjlAQYuS4jgpQmRnARUTrQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_AMAZON2","name":"0.8.20134.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3e3d604-da80-46b7-b7a3-e0be08c285f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"654f8dc3-f1a0-4847-a631-061ba0c46ccd","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA6YKw5rtzpACDn7RiBBU0Axd/QTR8maRxlU/yUUzQKCdpFQ6JBCal58wSfzs9KD9Hf3TF0emOF6OSufCkFJrBasATC1Xs+XjfgPTt2ub4adbzirS606/7t4uZ74lI1bksteZzARf/yJxMZZ4ZQ+oGXroLxjxdNPiolae00Zk/Aujh9R/Cfb6rhdDH5eWDjaS5YqQB8Az5MCB4HNIbHQ5mRw0xODaKHlVmaZSCTbKY+OSgqaDJhoeVKPw3lObUGX3uQkenKygDOa3KkhROOanG1rW4V9AfA593fE2Y+IEHajvf4xg9Jy9PY6f4qU5hqofQ1/5jFKD01wDmAZLuKbH85wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1mnjye_e2etest","name":"George2-SLES15-1mnjye_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"658d3026-6871-46d1-a9e2-656903c37bc6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"9ecdbe3e-6e43-4ada-a2d9-093fae7f29bc","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA5uDJrAdvxalNbGd4+2hdAu0IXGds75nHuVKUll0gbYgALO1KO9uqIqtiBhkaIYjOrsBO6D7C77+9WEXxikUOqu3lD3y52mi2BMjJAvxj1sLuwBwS41E2GXCXclQa53gFT6hLu/J+41e1jIffTCVMpIEsc5GC6yjbXVdRIANrNx4Hq+gNI5/izpDSiCb10Nf8Mkotx/954/F4nSP7X+n1rCACZT01EW65CQDnwZ+SUag7l+w0pIZhDPY/+c/iH1znxt6vAZ7Py8vtKJVqdY92ErVtCZCLsslhWuk+aKO7pUlMWYOzL5+K4azH9eFBNpTxGY+Emyd/Ky45lyLV3ctQKQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internhrp18_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internhrp18_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9143bbc6-8c37-43ff-ad53-746ce6b18d37","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"b45a82e1-1c41-4738-bb9e-b6adbdda0c88","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAtX0Qns8LrSf2e8ztw9v6tIK5nHz49Z9jxvgeVWOtMsyasrYklUai9iwkoiTyW2u1rms1wZuhsiZpE2ODnEltp73+03/N1OWzzPA4xamxdu2DhND7HkezrEOv0JK1bBegKwpETTtM7uJL87o8jvt9SUqQgq2RRUYZG4Tp8hkmta/ncZKKgkJsUCMNdt//rtvMiRotDkH375SVASWR9UMf+lAvkAtn/216dEj+mbqDWeqBMy5RuHU3Ump7semcaJInwxOx6OK9DumL3biO+7+ZxHvnl53FTrB3ryYvch7LsTlp/zsQAExIjjGIjcVY+8t1+SI1kkjaAq8uaXMS0UVpzQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1k48xc_e2etest","name":"George2-Win12-1k48xc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca3c53ce-a7ab-406f-bb86-1f6ab7bb2e16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"eab1132a-76be-481b-9539-2171706b4e85","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAt1XWmTBir5f7lDQujemRw+eNsGiU7pAkYcgIY+OyJYZ1W5oBnhA4I0hEbmR4aP/rfHpbJIYgj0sX1TgbCcFgSdePHEhtfNaVtlARjbsediNW1YwhWvoCn9xrHnp+xD4kZ8jWFzmcOurjZVGWl8gIGQT7yAV8aNUj3oxGdKewRFaC8J28B2CwRIPnJAnYqqFEKByqLTKxtrL6sIHcpX/pkEBz+VBAfDmlapVzop+kjvLaTSqxwfbRfsxxqzaQfYpI7hzyjC42drTf3sji/ef+DaXeDfUNbeMI1jXNNqQfK0BnHLW8ZJk2C1sWR9O/mxUvZmZDoJ0G3IqKdJVTmWQTrQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1nl35h_e2etest","name":"George2-Win12-1nl35h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"18fc7133-6af7-4ec4-9fd6-8b2619ac211a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"7d87e464-9233-4241-96a5-5d2bf29d4b5c","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAueGgyp1wWVm2OlUzl0oz7vOnBjOU358LwlUCZLxulsW9PADKmJ0aQt6Ke9GYYhaADCl1m8yi1kVfRpXHmx8Rt5H2q8taWqcXb9LSczPvuDZ4hT6qJTfqMFctxs10R9GPzkixx9x5/8RQPEeg9jTbcw/pDG4mUbG0uTX1MUOAxX2uTNq/Tzw72c5q8riAzyPHxnZSbbGVe5LtudYS7EHflEVB9jtfea0oh6InkM46Nxjqsj/9ca3X+Zp4pxQUCgxXCPnSDAED1H30h7qOVEKMP2OQFrysjp077GhXBHtPFG/TdkXJC1dLqb7vMNlTRhVoZvr5nzlvVXwSr5RNJhUrzwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002","name":"0.8.20134.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"60ba5837-9676-4ddf-85ea-ff57caef4a6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"d478fe3d-fbaf-42c2-a013-f98436019cee","vmUuid":"5563E810-A620-404B-9477-1DBDE0475286","clientPublicKey":"MIIBCgKCAQEAyLfV2ieF2KBsw89E2QhIKEm6TJoLUxM6ueYzcGKbuiPCQrL6zwUJtavdXy09DV/qf/KWTAu6P4WZHnL80xQxxYREH79tf777MrZD8gn+zCELSCSZU+Oly2w9GojenQI5LOfk3AlESUWIqcneD+1VFZIHLPj6F7i1Ma4n4nolHqYC/9vY/c9sSEYbSwQ+Q3Rmv67CGjBwV8IzhbSJ7GtCLETQWkQAtMuUQW4VSeRH/J1xk0bYUDLuqJKgm3YqD26036SLFNjJTQfRHe6Z+Vm9uAilXkujkiFFOvQjvxSg8VtRpDT6eOTPI9K2vEdvyZk9Sm3RlVYLWJuN5Gld4gSAWwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.2xic1wte34aerappddupiv1lse.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_CENTOS8","name":"0.8.20134.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"43d06006-6e75-4592-bce9-f2c93d2582d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"d3386331-c084-46ce-9ca0-a8dc62596d67","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA6BLGzbF0mY/DRjg4MPCFkqLlYHktLFdr8XpNYGX4U8ulm+R6Gd+ng+5px7CSXz2jTdxLl7o07BDZaLgB+QihGxkL7h9arvEDEIAwD0tJGpZcNex8By1n1b1Hg0t8l06BF/Euh8I1UmPiRjzd+GEoDhjcYG6kRnqi3VPBhnHnjc5bKqWTSBNHrNpEYignkqTLDI8464BuRU9VZa9fkdwMY5Bqg1Rurlknwzqabf9jshC5jcxk6kK6oqdr3o2I0/s8u7AjyBVnBlyWAoP3RGMV79jl/N9ugN/h1NHikpybCC6kSGfWjUb5SLIJJMOnqU9SuALmyljq7MMuhTzKGZ+v2wIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1ewln6_e2etest","name":"George2-Win12-1ewln6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a1dc7d54-14a7-4691-8358-902408ef04e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"932c0dc8-d6f9-4072-af61-5e0f3f62ab1b","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxB+LHaRpdoeIWo762IsJmFHF2ieHV+MpGKFYCt+HhJUKlp9y2a5h+Gk5USq+Wny5b9XteW8BOGfkuoAWc01/MjFo6hGIjnKUFa+QLGRxQrEU42pmkOuyXyRPS3d7PhlTL3fcdmDoA527iHFybAOtNvKPpscBwomVOShUMoDHMvM/FQs31Q4GwGDcd/rRtusB837zM/KzwMZc04xLgPHbX6kTOlPSdvhvqrJG0jkcCE5TpvevheBk+0UYUWh9vyiHI/3eWrh8hvjTjjloHnPC4fzBKrq0p3pyNPCpakey7VdY2AOfU7Iy6/SU/a7xFCM1u6U9J9dhkWE/zAKuDT/8mwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qbs9h_e2etest","name":"George2-Win12-1qbs9h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f273bf4d-4c49-4dfe-92ef-4dd998cde4f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"add20709-3fbe-4850-ada6-b07829bd876b","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAs0dz7OIQCctqblh64Ga6i+q8N5ivif+jPuJtSKNSZ65U/hvr7lJULy79vMAaPi48TnV0KUwVgYdix/JeGp+sWmB4ocOQjN/fQ+pZ7RJnSWIr5w3ZW8FGABWr6Wi7ivLamQFnfaW9lxW4zRd/VF9szLMXCH8Zi6coNItlZDL4gVxvjhoFFGtixoK191Y+7Rxdxnd0OPThjtLRdND415dlymLUaWXcza6D/QrFhjbes/tOLdY/OGUYHeyM3HGszX60YjH8/Bdg6ZrTNN7j5uPSU4k7DYf/JX6qbgme+j1xg60jn4z0qKS3gk+82hVDyle5sLXDUAMeYIo2U/3gACg/nwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_RHEL7","name":"0.8.20134.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"51c3701e-e289-4e56-90de-6fae81bee19d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"eefc92da-b3c5-4db2-b28e-058b772caf43","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA3i+O/iLZQIM/qn0uHnghBP3Ex1qxVJOoMKyc4/0dva6GdLD19+07gzaPsKKm51eR/P4G8BvdeO7vY6WgqTDrheAWNsVbeMSw36UsPjASL6fhw4yCUfOXKOl8th0F2tu0NbEBIeTQq0hCZmN99uedJDInpXXJACK8XELOzyb6LeW0L8Bl54Rewck5lR2mg9ZQRlf1e1z2g75UMU81+iIXkjCRUurFmVVqVnKfZ21kBMAELcKzfm5ENOMtW7UbMhqb6yONF4UZuuG3dsjHP28F9TV6El4bJ393zAtGS1ltX/Zo4GHs4vBCIBYJi8K8cWvfpiNfbsV15AS7+POCI+fvgwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_SLES15","name":"0.8.20134.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fa77bfa0-02d6-4822-9a60-27337e27eac0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e5476ba5-d000-4b9b-9ced-d97314413b0a","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA5Lj1oQDqt2lc4kfwsdpYo7yIZNoEw4TDvMyo52RiV9pImS0cDjGrsB+qoDz14/Chw2aljj19ONgMw4+0X+8h4RHN1fnay8r7pmrjO5JjNR5QPvLHYIRbsmOqkCV2UShgwC/8Z9IaewD3oKPnN187eSXGghsD42QqknhMMw96DqNgfuCIsAMkT2wnEmfDw5V7x9YIhyGu/Wuyv42PU96HYACcEGiTjRvBvLn962fMv4PpHZ8f0O2mhNaSBaOFdkS0wnvMhr0dZzXlf9GvtUWsmqR827MUSwexPPEFjJVWkfeFs3yZEG91XA2T3wmOIuArx908LjvKmacl27YGd49piwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_AMAZON2","name":"0.8.20134.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"01bf81ef-0716-4a24-be7a-5d7c04c4e328","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"2d0b56cb-95a6-47df-8541-46ef5845359b","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAuSnwBwX4MCw3P8AkSbcYMunaHxZxrxahht2991i0JcyhDNE4jtYXcvfnlGS8HD3hHhtEBjnAEchytbyu8tkmdXZOU9sylHZz3Dvhh/b6b88W5GofZgGfwJn2vVXgJuzkouuNXrOxKnt/wkbj44Z866+DYUahbR45yY5oPlPTyzTxe/pvX5nqO1ZmLB4dDhxPgc0gR1Si0re8/crq2dETRFCTUpOtIyUVqUVgUDwVoPyZylNPOlNFb9U2pEFaQ8K5QMpmZzhoIJjqITqWpbH04dNv1ZSCtqVEpoFwtt690KHyRF1rn3CP+DZHhCfM9ILW+PIDIkUHGLT1371az86oswIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1wolf7_e2etest","name":"George2-SLES15-1wolf7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5aa79d3e-d2fb-4be8-a315-81b0a006b79b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ebb696b1-d88d-4b40-85d8-0f8056af2111","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvGN6+BMlEzxReJGjOAzjvH5JIF4nkhnIyjXY3BHBNRg0v7loY/eg58toddy3OH++6G8bDdz32uRr7+hbjr1NiBNkIaDhhuYKTu3d8sviQJngQPJehTibkNQ/XxsTrz7/4bNNb+UOM7f5JM4Dw7Bd7EsvGwn7dNMWsvXzOGi5Fzp616V66fownRsCc3M22zyYnJHJm+4cEWXMLIJMN3easY2FVqFjQEFkuvMMbxhekjExXQAPdFQbEGCcNUrUh85gnrnAag7st5NOhGWSghzt8yc7skGe0gg20eHbkeTvyTZQ07K1cmVqSTnek8Zk1prP7ktpdTfqQZ6DFyFu/E/OLwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern8n1rj_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern8n1rj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5dd74980-6a99-4151-b150-eabe68fe1355","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"b8a2320d-71fb-4e7e-ba73-511fe5ed47df","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAwKvhQQEGJRtTQdIjMyRucr0MnYUBYoNCHmyzRK5sMtWZTZ3wODihGKjDpozkaJnDBANXwB0Eli4mQihd9g4vHEtTMibUebO0rcCtNSpA2YBKMonW3fyj3uQXzgRNpRxP/apIMk5RVX1L7GPNxlyblKEHxRRkuo0hg0QXX1b6HqQR0B1D6oAMfS6wzmnOOLZ8cpYLQhXyqnOC3yDvdviAqqpnT512J46teGPYx02pGSOLwGE2HoKgKVby4ZaOp3TL3pFK6u3kC9LJURZBEaDqJkMcELtQGIbTZNtbU+JR1xyVuVrqeW4Fhnc0mheXepNfX7dIpCwsGVFSLl4RZxWZGwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003","name":"0.8.20134.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"840a6e47-b733-4bae-9501-11e0fcc8035f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"e6f1f1c7-280a-4574-ac73-32cb665defa6","vmUuid":"C42530CC-7FDB-484A-8AD9-FFB2A9DB841A","clientPublicKey":"MIIBCgKCAQEA18x1Ljl6N/OCPNm9GI5cS88oH2k3FXIOCMZ87aCyEI/cbgSJ7limrgujUtgcjh4WZpNuLOowybAg1CBYpWaoAQjPrZjGp2AN9xMMl049sI5glQutvqarY7lftCGQEiaWFXg6jKVw33QwbpoMlSsi6YZkDbDy4FaLmtxJmjhHbdH8ezdmgpBBJCQNHTYKry4zbLJpiZfpM8jD8KnQXLqF6WPls2zNulBddhUKBz+52RSPnGUlJ72t6oKY/EySY+eFGzJZJJsok7MUp/pKZMHFtns1cgbK3fP5MdE1YsUn04LGwvbaeKXJVrnwK+VXCzFCSlW9LV6lLCBB9A74iirydQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.ffgswbdmdm4e5dbi2bjcytqdqd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_CENTOS8","name":"0.8.20134.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31abe465-21af-4bf0-8c71-ec8e3286285c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5bff04d5-6bcf-46da-8db9-c586149623da","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAty/ir0SSB4PTNqPy1b3zjufoTrOxWhOUUGkEI32rrKTRLuEG4my4r2w9IsgMBowUoEgYpkTCnlvlWLr2lmRHzpXf+rhbV8YlZ0CkTEW2KRxFvSGGg45A2fw9hsCDS/R2kGbHqSFrypn+jpixegP8jImfMkUwOIsOTeZdk1J5YFT77R5jt1f9RKVzd1OL34J7jZWzhbxRBRU0ivy292AcDTsWI2VepS/j3cc3J5NR7Nw81o3zjIFToR8s/gox3izp79g3grOMLyhyYIFT0VPevDXySE95N8c7Ku6X2MF2A8H+THFdNV0/VuAXENQWYWFLb7huuwsf+w9g3tPbQDN6rQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.004","name":"0.8.20134.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"024602af-65d4-484f-873d-dea034a68876","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.004","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"cd566759-e873-4019-ba6d-bf3acfe86743","vmUuid":"4478E0CC-60BD-0E4B-B704-585910019FE1","clientPublicKey":"MIIBCgKCAQEAyhti2vUSFeEXmU5JyM6BPDm0KkUsupAXU6er6Co6nMVPXH3fk4ArsTzBwfwh91a2TR/icTe8qbk2LNe8wZOpocv3iAyV6Z0O777ObPo1AyiWgT/xAKxme6gGnqTl/oZ5Vk7RIOm9GmopdnxjFMm5zskgeL3G908ezOzVwEvxBOlBWl9Lmtbzc00V506Y87/EkcLExWfza0jYpYeRQBoqWe80JOfxusgauj3Tjuov56FbVFYWIj0CaUxgK9e+KV0ra05G6AFxY3Yfhdt4pg0ecx7gH9p4ewY5P+goPkyxF1wAjiIYN4nT1fNVtB2nYryiqQ7OaFx9Byh34kDRO/+F7QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.gtdrheriyrqujagviru4wh35ne.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_SLES15","name":"0.8.20134.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"70276647-739b-4c63-8388-32aaab93767e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a113f884-1bc2-4ff5-9256-46029ad3bdae","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAr+Uir9Xhcxbwl+yeMr7CPj4wgi/HVng2LaECNT7iqJW4KFrFmQP0B8s9BMy2ADViHQ+Lv/MGHuZ9HOSdPj/CDWrbob/DWmJ5BDCj6yXYK47DrTYIjEXs9juwFu3ySKUcVlz117ZmyxeQbwo2yyvFRh7bYziK32wPwAcpWgIQD+8ntl6+AINYQ7xNS00hMOQ7cEpJ9lHX2bUm2uFqu34r77FI4pCciyLvmsSsOJXrD8/rZiscWcZb3Hy76pstVUz/JplUXN0w7xyulnny/02GcKp5mdjcoVfw5qDDxECOItAsVPRApwvy+EG9+hTLVn68kHhN1IXCMgugdxVEnG+nbwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_RHEL7","name":"0.8.20134.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a45e6f9a-30c4-4ab0-907d-a8c82ed7bbf2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"3dc68035-9217-40ad-b6be-70a78da08737","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtCLYNzQyhyM2rSdYm7faHeCKV3YimtU1HazeJVEk3MGHyrXnpvTf6GlGFw5d2tAagIimc8ZKr4tTUUg+KZJQjz3yFvqFu+63SxBrzDdFMOc1sm4Sa2xl740VPCZ/D4uw1BjJRo1InYHxCKpIZCVJ6QzP/ug3eXIp2uZq3HuA/k3TEXSsedkqkNUKuudDbYH50YNj2Eec5TbxxXbtvAvP+g7E6s4VT5AusRWgUNWOv1u1DEXrMjz6/OEytvW9MBFzYalIhbLAXpdlTviBksjpf9kJTkSO8WR4QCfNzrBFqyECUkaa+xkhS4KARmXigBT24pPQnrPwe/MGqL/HOeYi9wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_AMAZON2","name":"0.8.20134.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"33ecfdb6-19d9-4ef9-8701-17ff4a360fe1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"35adbadc-6ebe-4294-b84a-e657ecee6078","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA188zeX3gxVNtXPpyUToZPigOs9Cv37eZp2i8l3MCr+H/lgbYptXp0q+F5z53AiPxU/s0GXYPp5Vsk0C1OtxJ4ToS6WVPrBTCsh7cpFwwTcOHb8rjXBgjI2FMGvN+4vWn9tlizpGkHDL4wL+nyezBT7+bKCqayLJGaNTDJ+62nsAD0kAmcp7XLYdRzkjXgDyK8Igxlazec8Vg95H0ZA8fxYK1nJViE+lJ5wN/KkdRun5nICGyb1L9OArHy9F76F4qSGIwPJi8QY+7/KLWfB35yjFyxjV6TuZ+QKhq9B+b1RXhI7UWSgpMmeNtszi4Qd3bYzQkBU3XTfNe/4gbjRl49QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-15sqyb_e2etest","name":"George2-SLES15-15sqyb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4cce640b-15c3-4475-b540-43e24c57798a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d6fee947-aca8-41de-9ad1-ebcb97f9f689","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwctxklv8ujsCR3I+M2REg/M+arAriWa6FH8/LAQGrekP3wwG8+Coxqbq7iuEYA7PLPG9ZSXl1bzJ3No15dOyIyACvSEFJE4XIhmzDi4nUX0ikJ/7G231n0rmKu2I3tkzM5Mj8yQOSvrbj2yx87AD6/40VVMbDGW+R3dJ+frNwjCN4+guVgPqrktxERWLIdIymll3PbyeNWhnfln9GVYaeIyt0bIM8Goi5NDH0F+hLG2vN642oh3Z9Ue7GtI81wRzSwRYC4DqElyEv12Ope6i3MITLRxDDjsKnnIsSeKYa5KoY2arJzrmREO1deO4odDf8MAya56lfbUTDhag5NVZUwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internjmgpi_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internjmgpi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ffd4a2e6-2a1e-4639-bcab-c96bd2448386","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"c63e3ca7-1341-4861-9740-4e90c245f26b","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA4/WwX2EuCbrpwRT3mDpIpGINjfVQTjq+foIyf2xEUoZyGV/VNATT0KhZcxU7uCGWJQ/kcZd5eHdgIC/j5WmDrLXyUobhAf43t5RWP6eucA3ItQs9Pb0Uo96WFLIuDSvBvhn9HwGOslRrf6oOd3yVMb9anG3f14PAuk0Ol3x56zet6xluj/OFiLDxG4tUsJh/hg1Sr4ouHMf5cxmNQUVUt0K7yZnQIgJRGNF/9jYh4wBwZJzwBp3MQXjjAgnwQZNtpiql4VE2I31QDBxnENuO9b9C6SDTlziZpZVzEcG9AVhxjGqfg4WXIPL+CU2N6giNewy9I5M8c+WUSlcf5JoEhwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFqgj9k_e2etest","name":"WIN-LREKSV3QGSFqgj9k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"08fc1af9-2be7-45e7-9d5b-d69439e1ced6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"ac3ddb89-4e70-4908-b93a-c81f5c535b9e","vmUuid":"9474015E-8FE6-48B6-8A10-8FEAA72C4175","clientPublicKey":"MIIBCgKCAQEA362dT333p3n85cjqqU32V8jhB2B1NoHRo1wzUjXtbfS0CT1V0y5Qu3QbTB8KdBkJ4RefimUd3ggexJEmR7lMPzeob/6+lvav95YkprT5+N02NKPmslGVPKQzIl3+NNZKd/f1zMD6QI9sUdCZFou/geqN+1H7ciXbUObjMQBeoP9oBmy6SoG2wJg+l+LBTtVbG/EBb0/VIxWRLeaeL/qUkyn4sJu2Nx9/jOEQwVX2gkOgVIeitvHs7+Ql5QQD/niMO5k4PvbA9cFQiSjQm9c+UvFrDEs7CBzqJdRPRDuBrI4ospRnm7WSiJcblKtJ70bRvIjquhZDzLRDCeQgjsPZlQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFz1kc3_e2etest","name":"WIN-LREKSV3QGSFz1kc3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63087317-2e56-48b2-9e4a-59d4dadb545f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"0e876c2c-c465-4d7e-baa3-adf1b8c3f0b5","vmUuid":"9474015E-8FE6-48B6-8A10-8FEAA72C4175","clientPublicKey":"MIIBCgKCAQEAv6lsI8g4v3AT6l8Pn4kPACbH6gVdll1j7J2254IAWAdewQaa0xUeBj0drG/X80aP5lvS0xGLnVT2zkSy4xNqB0dL1kaqG7KL4yUL54OV4xMunHYC6fOe3/BUtJEzVGB3/MAtnIAgOvdCctGSjzQwraXDXlAeHDhae3gGE+iEZ/rqBtTfU7fiC2AfsiokGpCl+2EMEo4h35OfJNpYk6DqAZv92dMwECfIAL8XVYyOQptTZtBEFh4JWw7UsVVXz+/RN0XVk+grqNFhhsT/vnBPXjLr02YDvUXVcxAdFGDEB3+51KtVCREAt1L86Efg4Pwr+PxpRNysbhkcCuH8OCD/8QIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16ycqe_e2etest","name":"George2-Win12-16ycqe_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5d68088c-0d58-4acb-8f2c-ef329d1b1d82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"b430ee34-84f6-4461-bc21-132c0f6bf374","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAlzP/TOrxFQ6XcSFGq0gTLuWF6aFRhEkhuJS62LuXUyDtjSWQGf65mWCGdUgXv1IVeGQ1Nc+jZZBXgjXjwTDJr3WatxAdsVE0Gfol9G5voZlAT14hsiIECtpxfj8r97RHFsd9DZjv+mr7b/MBoBzGSsr5MuCaFAb3pezOgAaeXHT1j8L9iQkePvMx3GImZKvdDZNzhm4YIeDh3EzC9btcoJ9BXW9PL9vueQkTOZufHoe6GQDk9w+bAuaTxlI7z4tYrN7FrWTyZZlD/LTFLcZy07ex6xseoSoCH0gQW3Kh69rvNQ3jmda1mBPveyigI/oFE9jLXeHihM9sXjnJDeXNIQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1xe3k4_e2etest","name":"George2-Win12-1xe3k4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d267e45c-c330-467d-925b-ec098120155c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"1981d4ef-5473-487c-bc0e-4f03a66f2ed7","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAoREbTcYlp3paThNpNibZriq3AaDoB8S8mniAowErgPrxKpjdlnpP8GC3Dimn3xYvIbgZ2oFNOFHcdZrE02PVuDivlMGx50NwI+4A3XSUMVJY/Oyqmte6JC1JXKMac78lGpeRe2Q5Msk3ad8AShP5QW3spKNnuxquMTCnm807wl6xddXuVx7qBn4HOW6OuCp7B9XtcskspAH/YRSI7dYfIl3uvzmu/ABniDUaL9PO+73qJR278V/NmubfV/8spVPSHcgpUWnLJtOsEyvQlx0bKOCZ55JLYg98DfkV/VDE2i0hqeSXRTowVHbSspxzThl4xh9ssuqmO0PY9SzpgBItrQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_CENTOS8","name":"0.8.20135.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c4286ffa-2a58-4413-9b6c-d94ef492f89f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"ee0f5f5d-bdb3-409f-a62a-042e1abae453","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEApl/2bO/mkFj0ikFWNsdR2Da1suikLiAYilrZF317YOUf2HkGvJfZ/UV6NsVfWEkQPu17Z5XI5BZNQ3xRk6T/Olsc/hUjscpc/UAlSSQzvqdOWTK9LKuHWtJXHc6ZwekRVPdvRIBw7diyGXpHaWaSeHCikZln7H/VDZeMMcKN3IXFOFV7VFhrojHBKhb8rL/++N/GaHj5or1Iqjpik6L88x7ozd9/arAHk+d5EbFjEl+yBQ+jJVjeGlOBuCYvvqaf4sFFaHffHx795LswyFdHy/WTbSMI2gj1LIfhnPfVFZJpPVg4DKKcWXM+TcNnlSSmT0pIyHBuo/GMxYQoGQ8UqwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001","name":"0.8.20135.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb9f8c49-580a-4afe-b3ef-14fd32ec9cdf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"9c632e23-a35a-492e-8936-209938f5a0c8","vmUuid":"4C7DDF12-6924-3047-9163-E89203AF301B","clientPublicKey":"MIIBCgKCAQEAwaOfyGDwQvf9qGtymi+NhGK4TYOXJaryb2z3ROBXgMWrKdK+5Exyq1kk3SvVBJvuVy1lJYmIB7urs+FAn79wlRFKsBdOFcq1olS3ohBdEl23hKXOS3xnCCA+HiOnHwkVN7umKn1NMLQJdnksbHpc0uwDwXQQiRtO6RPXQTMnh2ZSUcRQzgZNdPgaKgYGq26Ym2Z+ECZyI2nNPkA6/QLLJ85my8qbp2U+I0cmIvag8kQ1JkKpQwoaqHAeiWRxBcHA8DCWHzhfdLP2v5HuXpsYWhiYmyzqKMdqNvkVxE+zxWbunXeqTXw0las/Sv/CBCLVft6oOSuvBaczaIhvrVGTwQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.ocsent1bh4fetb53cn10hqkszf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_RHEL7","name":"0.8.20135.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d283fd52-93a0-42ce-89ae-88647b4f7524","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"f89433ed-da35-476c-bf5b-535ee56bcdc7","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA9UjLmTf+wVtmsmAMo9HudgSsiebr3TaFzc+staa1CqAVHtBtp+dU88gISDQmAcWrj6jvCOtFmuR74AguFPlQ5xVIsUUjUUSgKLYhe7vggv+nwnFhBd/ANZwHmKednx9c9JH+p/fP1ihxQWVykCXykamc+9bPze4qlD/dL08q5NDx00gcMxyjCHo9uo0x1UDwUZO8+Fbo+1fzBEfjeSiB8eTsGn7IB/dFPvR6nD40HKI1ZnJE24olMb/kFc1NQNZJMPBgX8uPbkcbbgu0ur2S5nl93/U3M6vxv5Y42IubZbB6euI/W1f5gZ/+kiXhBAAj/x+usVZbQn2JE5SifDkyxwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_AMAZON2","name":"0.8.20135.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"235858f6-87c4-4f8d-9119-8130ad20e79b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"eafd3c14-ddde-4df0-b458-974e768636a6","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAp2BkU+0tu/Ft4T50VIigYXvLCyEE0O+1wQzSZc6A6+FnnXdNwHQhiSLyu2NDVoCEk6Wy2j2sjUJjFRtg3JiazrOItY6/gasDDxhfXUDm/DQx5LdvL8URQxJGxkFdw3jKIsNulJAAKAY9rvTLTlkgLic9hbnlIBGnxUXChZRStLXST1ZgkDgF4xPxzwNfZlmJjyUZWXP3/D4aUuVpMFr4rOG6i4/5/gEqcSYhmzCVtlmMTt3AsmLynnmyS7I6Zzjkp5JiDawDwaZ0jQtdJSQBe5PV8tWfNCK4iP0VKbJDfJzq169gHc0Z6E3Haoa5tqbxpEdcTjogRWopjO1Ir3pN4wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002","name":"0.8.20135.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fb53672f-3209-46af-991e-732f51876b82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az548"},"vmId":"d01c0b25-cca8-400d-9421-aa828a80f258","vmUuid":"A7FACF79-9F04-CA4F-9E0B-64FF59BDDF8A","clientPublicKey":"MIIBCgKCAQEArvCS9rwhvbZqGwvpWDNtMhxgVtapmie8z/0I94eIRkWoHAvKTKrV9ugCm9IuB9uNGIFCR836F5Q47ez4EkflGWXbMc/cDzUe6Doqrpd9LjEHwFFLoLIx6GXfcoU47U72H9lEDOE+29YkPgc6bYlWt7bvnfRvAWfUlAwDKkXulZc04BUkiiJMDTFUxtP1OrUas3swCpIUgpaRUlJ/qzs4/3RPloKY+QSJ/MGCvjYMSbnEBCzIk7C8UoccBKRh0bS6FNaaW4umG2L8BnFYEjwBWFgtKtkAUj+tZKZ6yNOseLdO8FPb4GsWTfso4UWiGp4LamcnENovXkRK8f5NvSsRYQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az548.q1k22ag32yfubbsjt2ngzymi1f.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern5jab0_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern5jab0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9624d05-5198-4e37-aade-1e288f86942c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"66cf6c06-4508-4f0d-99df-afae72c67a8d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEArgelrz5l2ZD+yQDEWaUwgOTk98hPOpOsaS1b2smWySRjcab0Ob/RVuAO4BwETjYPMk+2X2D7o8NohYrxDkufLc10z/VrWSFjz48cZuRs8T35bjnXUvZktj+UlFaz8GscjRqZftb/moJFDOwZCZAT367BS0K/g61qrwrtAlL9EgKUbJPowjaJrcBci/LbIWXrqrqBampoVxBUHuQ63xpIUf5TQ7ZSM8YzL0B5vCoT9QU/eHz3aDH8pi0aqliOG9ZbXKHuckpPgvVYGJe7U/6spqy79HoGjoF78gSfvos3IdooAw1WfCaDh412yEI0hvl5mXETpccsACN4y5WjXBxnjQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_SLES15","name":"0.8.20135.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"653550c3-2adf-45b1-a1d7-de1314bb4a0b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"207e71bd-e385-4eed-869a-b56d2d6b3623","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAoLW/l0b6ozIIny6PY6e8TQ+IiZc8dwJgavCwlBuKqzU/CWOIWi3MC8K63FA6UI5XVvxgt8Z7eMWhmSL3kGfFt3rd5dS4Z+fLWFFNpF1axYQ5TEXVF2vKdV0JD1DhixKdsyxGJ0/UAI9D9St1vJb3BSKU7OxYrMx/tIHWxjFIcP4TsuVnySJF5Br1OWh4x4+5CIpBI3you0fBLw0cJIpdhztE3b+fXXaTE8EJspbdzzTG0tKo0gzksnWUwY0mnVPhT2reh/7pptjZmHBUxHHenFBJIBqffiUvLIoBJS47cuNA9ST/B9+80k6IxTiLZi6i0JwSORZSz7nAcYtWdNGA2wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-16oqzi_e2etest","name":"George2-SLES15-16oqzi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6ca7650-4ba3-41f5-bef5-8ebd62592324","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a4871b0f-c07d-4e08-84d0-0b69507c2671","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvVRmrdPRMv7FAlXv8N6/UkDubYNs+GBVFPjQq5lKUlmj4eKGUdE/iaj8VFRV4CtHlOqS+OCx3K6461nLqWhIrJ4+mYGGTMALExsuFV4K9zt2OhoSucNGbtv9CCr1UuoSfH9tEXgbZIYesJgL8CYh2+j6mqwFGN03md75iL887OYOwCMzT1doyq8P3cq/imDcqSMtDooOQtG76OEFgtVHtEQzxFRJ9G5Uf8i7qxkc4yNe0MMbLvrqyMi5kRk4HXNOzC9XaPlRhcNTbmO5mbdGv169jpFprbeKe5TcYmC0yZ8LVGgAXDlA5Oxn4733r9J8wiAwLqFcNNJYyPeUp52CKQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUyinmr_e2etest","name":"WIN-PRKTP3PG6DUyinmr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5b6e2028-0e82-4af6-8cef-64889674a93b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"6a7c265e-3f65-4f29-9ae1-cabafe841beb","vmUuid":"9E6924DB-A763-4923-948A-2428BDF56583","clientPublicKey":"MIIBCgKCAQEAo8xDl6bbVNSasuySaQOrkSTDOHtbzUWV+5Z95lpISWv7vM5qm0YrMN9BhdpWsK602tk5fIOxfaRIFzOV2CBXrdACiEYpUw2Sl/Y7yBPLdWYoSw/rszd5jCTmtEe7fT++c6MJyEqce5C0JcWHFe0bRDbC7VgA4v4GrCSkt9K/6SqtNhu3OPrm2bv/30pqQej++RdrIIivgeqBSe5dXIVKO820UfJYI2XtimoKLPBEot7zujs//WKetNJaBXk/mqsLdGTMbHNnZOxNZY8PFSXTjrln9QS5CGr0002MA33ehDs5sMboryVZIud2qWS3V6u8KSYPxBrpPwZwLxRaKJSdYwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUr3pef_e2etest","name":"WIN-PRKTP3PG6DUr3pef_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"03b5eb6d-55fd-4b33-bee6-99d9f3d9e4f8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"5d4e87af-957e-4fc6-816f-92917b94fc50","vmUuid":"9E6924DB-A763-4923-948A-2428BDF56583","clientPublicKey":"MIIBCgKCAQEAxHdlK1wk9xecNKTyOF6qCJIk1n4A+6zrRZDTP46Gt64U3vOICTHdTTHgR9ZvLAAbUQDzF2TEUBCbXzs7Ay8YaoBwg1LRBN2GInII56c3+yLL+9D+H/wvRquqUlhUaLCrF0mEiHKvpseXB0+3y3Ilg7XJ5go8o20xf4ydf2I919VK8FzQsOXtyNcqNZ4SPAq7/44a7Rj++pcbCDht2hpBngV/Hl9SDr+jLf14vaRSv5Es+YABC2Hjbn4WbkCPnMvR+Tu5z3nDZ54LePUnYKEua52HJvpOqmhYlUsqkCcFsEJHOYRyAayjqLyXMrqoAczBZkeN0cmFyIdvuFYRbcYFsQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1i9tgk_e2etest","name":"George2-Win12-1i9tgk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb3dfc78-cbe6-4438-b30a-391bb8e04e50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4a4ad4e6-34ce-461d-bfba-1152889ce2a6","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAt0Rx0zruzbbbCBHOi1gwDmjWAunUZYwfcafB1fspo+j1FULzerhZ+e9W1u0evghGCRmQaUIRim3fWBTOJB1WA9K7DkPtPbdATMRWsNlm8BGjABzFZxdvJKug/leRL3YqrD/40FUfrzDBcQY3vYKS2pCIFr24SZ8vpNayHQqA9qpWist8ZAFCCBT7wMxjpqb1P96LJeYezPXPTBgRfINOqclBdB4PIIkxYhOLOELckjU0RbFlhlfJZTdNO4C0sSrLTl/nLg1CMwXObNIsFbJPhwPVlmpL+19shkuki0dodw2LF4mSEfacJ+RArmS+/wHGpwks6iNqp/ickCnCbwuuUQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-18dyxk_e2etest","name":"George2-Win12-18dyxk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7123acc3-99a3-4331-93ef-489b4cf15c50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f8df0465-7976-49e1-8afb-85fa86ec427a","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsw4SDzvoHszMYEm4Ksjybw/3yDfPfiS7crUh/IwP6JqRwC1GEXOB8wWWIcTVfhAv8SmdCycmgmKDJ+PPT0IICo4dfIDtzs1Xd9nRabSMK6hNxlk5l1j5z3U1JF/J8U4R/iaBa1P9tX0kUfxztul5t3UtzRHArQ0IGMgGK3Vr2wj+O52Cd4RzuWIlGu2M9enndkFigk7rQ5+o+a20Q9cO5fgSG1gdNN8CTY2k7XKl6G17pRbI42uMg8d2QRiTuQzQVL9qq0sH93PkrYHgD92AFS45WJZ8v1tsCmwIKXLzdWtaZCDi2k0YQV7RwTDW9hTmukCb1n9zX0kiXHSspUHZFQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002_CENTOS8","name":"0.8.20135.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"88cfd692-5b4c-428a-af5d-be92fcd60dea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"7a56a465-912d-4451-a892-8b966d26a093","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzuqtahE2UwCXz/u+9tTbVpTt4wLSeOZmj9YFS2m98BdSxXSzVdkVj699BF8fyAjL3+ITwAffH7wm0A/fiZB4cOvT32e1LZu39ifOR7ldaD+zR31yQNhbKr8pWF+lSmFXmwL6fWnR/us8iqvzLGyAad/q3qS/VdbsEESbyybnP7VeHbTxNp92glQCzCeVBvDKhgTFCr0lfR716q+XWynZsmGTlrbDeOTS4wAQUuUBmtgsqN/Tf1OH4P5Z1RESzUpWYWWe0i4Bv1SZM49jVnYQX6uWgVlRXnZIPeEKfuT2nhgcMINvy+jS1KInaTVBi2Hq681BV1XeiwYK0twcYMzbvwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002_SLES15","name":"0.8.20135.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3a31d885-07a4-43f2-a54f-960fc3bfd8de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a879835c-e413-423b-b0cf-3a7d1af2bb60","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA6pBiiiBdaCNgwr6wI31uBuV62WxByZvPaT3kM6cAL4uPRNzd+bj4Tdtlja0bFL23Mo2dnQPpEib+I+OJRWMgbx4WC7B0sD4lH6gJZy8wyYjP7BhzXbPJVfPJG/upWDhb8cnOZpdd3j7aq1cndMYhqEmMKHcJgmj2qlJoWWUppDwa7P5wyCUuZAk3FDmEStUiolCZGlVT67ptToIjoAaPKeFnjiKhrI6k5QQO/wwjAf3gCWGIRtpW918b3XO7OrbUtU/oXH2yLvtHt1cOufnENjjv/WReEH1aRUSuV4yS8OcmkNZZG36yWhlNA+AXbAnD3NJ6GvjA+iaeCInv/677eQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002_AMAZON2","name":"0.8.20135.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5dab97e2-8b25-463f-a659-0f1b1e2aa317","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"9727d8ff-39ae-4530-a495-70d17afee20a","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAziOrDx67FuwZCMP1fJohot9EIcD3c4cEtRtGGvt9SsfNMrwltO8puEfZWZSOy9QNdYRWoEayJ2+7QVCYUKuEAQbMhlFU6j2vu+DOkXxkP8+XaBo65Okk4zwjJbtt8HfXR63V9EMmrNDZMT2T6zS9JbkELZMn72TFzIDMgozd7273riB1kf4fxiUXlVf+mry2Gj2vDPFiiafbNrolQh+pWy3qZB7+1Z6CSHUOcq/wle1Stn53r38NwJiezYoZfcG0aIbPVMsDC4d3HHRCcS1yX3IMSgG/Q/pUYhdOoxZBsUCegS0bV1ZFyA2KI8op4mfpLMndX1zGM2i5C9f+em9TFwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1t9dxk_e2etest","name":"George2-SLES15-1t9dxk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ed4cc0b4-42d0-40a5-9978-140b3137d7b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"41fe9b85-8148-4769-8671-2e765a44639b","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtLO5V/me88X2BtPifAYVn5Qoo+cXU/skLpFrGMHe8vuiBZUsJuHc4js77Zpjx5MpUPM3Zh8E+8nmcxfehDNBaJSW1a8oJ4g4pdx0AtCtnlGQ14gbHy5Yv74d7Bt7xvqGIp2cVWx20dAFKNA7Q3oyZUhVTog3LeX3x1fTcQz3kmcNjVEqc4VwFWApJK+CLf6he4sBDcYINhnlT77Xe2JYXa7RPy/4POJUezVCscenLYy72Ch0GrgJdmdRzj+jEVA37KLfDIgN7JQiI+YSXOBD+5xNQruBVTpbY5n2nsiEAn7clL5C3lrtZ2ztJh/r6L8pjKeH14wbFUV5WwU6uGCcZwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internv4wm8_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internv4wm8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ee747042-2f68-408b-83aa-534a8a44302f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"2cb61b3f-591e-472c-b58f-71b6e0d6afee","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAzKIItQE6zxxHX1Gx6AqGenhxBY0+mEu8kCOXH+EtfgPMiB4+cCSMbd0nryAzT8Uq5vevhy5tlpjevpyxZzhcZZdUjSIK5mgDS3dC9WBXNFUYEtVrMSvvws44oQpSOiDFWNbMt5UaBD+Hv4XkkqBxBedTlOl8LwdunLxgEToEiFnSKfSYZRHUYBUimlTpkFIbnx2AoiDO7YC+NCjorjTQiv/Hd80B5CoYAuHUJyM7YU7YEaxAdkMsrmBvtu6GivhMsRgRneViW7Rybu2jKb+clP/plehMdyWZKsEBE4F3WfRJZmDfPPtH/Lika9RFOSrC9chzFNpjRscAfYl8diskQwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1lmdap_e2etest","name":"George2-Win12-1lmdap_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8c31bb61-359c-4e19-bc84-39d6c4934ac5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4ad584bc-0da7-4f19-8b43-97d9f4defc90","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA7UwJ2jfA9Cm9RWW3yveP/R/avfWTzpIGOtXGBHTJHn2tjUuqwOOAy6YtSHc4P31zfjTbeRLFKXkdHtjnpAo16L58tfP4UllKGuSizNgqdz1NppJh6tTR6C5ktYtn/rxTasBbnJKphLduGRcG7ZgFLhgaAodyLKSC1g2V/3z9RU6AIR+SxMIPbiziaYyj/yQCzUnQ7x67IQ5g4M8Ofu7VREM4BYNIaMuSpGQSiYv/WbwxTRkzkTzFsHa7eszCiSfRcMXLx08gpNLyeJ5LnSP5KMZ8DDc4ybCDL7qOUDeKpmVPhjE2yCTbLpapt6xkA17wVrYFAW6U5smrw93N8s1uhwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1syrt7_e2etest","name":"George2-Win12-1syrt7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1d9a0b0c-17b3-457d-975f-f672ef8d1eab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"69687331-ae22-4aa4-aa9f-d44ca5a28eff","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsw1gZL/jKVeakisDB6gzvAZEW+Syek5M2Tv/29aLIiIEKoRX/LUAy8WM1Dd72KcU8k7AuYGsZhWHmOxr0lY4YduTa73D3nwhewl7ntGUhlUbgeoqThIa+7ahIcDgU1XXznM3hH+dYZUyk5EoBCN0eYGmzetCDktslBJbqzWqjFKE7MsmE+DCFb4oHvUP4NCGC0m8MVfg9wF5ZUHQal1l9K58tsw6SGoeuimYnC47zkKSSTJx+Bn5ZEhbd3t4VqikfePfKnfB5YxfmKcFmSg4MIOQUON88PyhlNYglgVT9vGjyabWdHaJRVKqwkpw2LjcZUXGBAxdm6fMf6/+0BpOiwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003","name":"0.8.20135.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"51afa8cf-37fe-40b9-9eb8-be4d445cef45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"1d472fc7-3a6a-4565-aeec-11a6ab84d643","vmUuid":"5F5B2A67-A1C3-704A-85DF-7D078D2492D4","clientPublicKey":"MIIBCgKCAQEAsxGn76k6zjWRUaiZGKMZTVst2fKY4bGxPMghCCOYqQTYVuaIGvieqn3HfkMYNHpl6Pbw35uXrYk2LNvkujOfXn0HlYexDOZ76i9wgxYIxI/RcvGJ1nUijLiU6hBQhk6t3nLEna3VjoiPmcgZpEt/YlpArqjfZhBYOPOOsZXLcXg/JPz4Bal+QS7FPELBe3Ofq0Da/v+qYdBgdpLY7HisBy5I6UtDgPSevaS5L+AC6WTqq6iqICLLNgsj02L/RaJQYvtNyw/A1ar0Jgyq0kCXfHcMddHc5lm2GdlCFqaZNt2mwPZhDIAs4FjaSap2lhT9dvuf5jicGIEUK4yrUM+mMQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.5oo3hiinadeulb5espkiox0tzb.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_CENTOS8","name":"0.8.20135.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b0930f6e-bf0c-490e-b6e5-9c72c05e5fd9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5f8db445-c11d-45d1-ac85-b3b7e06a0dad","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArXX+6MReScs2jV5ysJXXQ/szmqj3/vHgkEidecq0RLccx66UGD+tTXPUkO34ue2pTK7NCb5cbItz8b1/cJL0F5G0dmtkRO6LD1mzdh9fw3X1LkcchDzZcJQKMwGFJMvYhT/heN6q70jGCkYjIO4ubwzgmXFFytuWw4am3T2fbINv+hR13KRZZiOILFrFzvfeKLZOIDQECtbH3ZlBPDBFkrFMkGHUlBPwI0k653XEz45G61KXvxUrx7MhlVlmijQLnq1Us1h1vwKGFfRs1jbUApr0ve3/K7CJvepYEVQw/q+3O3Auh8o0LZUj8GrHxU/2qEdBSxAcCOsM9OS3ctULGwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1leayn_e2etest","name":"George2-Win12-1leayn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5958c6c3-86ba-4a4f-9ecc-730791a2644b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"e522ac99-b5f9-4fc3-961a-fd459f2405ae","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAkfIPv/jQ4RZkxnUqxFHQjK0w6JdcCygwMM3RwDJhLlUiiIFUudYnh+NdeWvdS8TKcDapeJeV1svS3TlNLA50NTGbWEb3AF4V/DIt4rwe9LNVk/29Mg57BCbIB5lSwaTFeki4TNyVPfG0WlOWkscLThqZUlak2Z7Wfz1NMxhuEgAKZAf2Zvcndi6LlqKMxJKCGQT1qBHgKGwgIRBSRM0SKINstg1a2PhrRPOmThs6m6wWJ+2k4hTheq8qf0ROu7YGEChWtzz90aBsfP1xJFmYouzK2IrEiF360x6NyQfDptWQCtO0dJED6n7YJPWtPB+d9XrYKcJjywwJap0vD3ue4QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1xwf4s_e2etest","name":"George2-Win12-1xwf4s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99b62b6c-92ff-4c3f-b66f-389e31df2aaf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"10a8fac5-de40-405b-a4ea-ed1862db7ba4","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAue/Ad0wVoilEkzEORfzQhHQBgRpmN3Mu8HKyAFODW4AaBONSdtqrrRWTQ20M2HIJLNIgtfgl+EXXIaLyEFs+CJaK1Ic/9PJSqt60eeaE+lbzMbhWn3qqjNAtrS9T+jEPr4ZDv8HVc8188vE5NgUJD5v2bIYqWd/Fw9iU6XQ8oBqspWKNBw+iVukkgcqeJ9oNCYZ0rfPYdJoP2qt2D1Msjrj+nuFe61rM4HTnobitMW4gL9nD0A5+nDRDwXH1zENluEhpqib3jojMXx/AQ27ElcFQkqHRkZsP59KGsxz+RnQfEcIW2qq4JxC8hscqdXolAUc0Y+2OqEwSJsmSyjVdTQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_RHEL7","name":"0.8.20135.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"572ee89d-014d-4563-86af-209e987c3d04","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"891d9688-4fc2-44dc-aaef-6bb8895ae707","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAxs4PB+d81dJyKH+JFzPmBuOOh+W6ZGpJ8nNDlppPMhGctFcw1lZ4lqEt8eMgWG0+WHy1NUM/uM/qS20jT90RDddkYWGwrYwWm6BIjKV43aTb9gH/JjRyOxlt1OpwemjhJwxKCpYcGpwvawBR2bVO0cDFOQiIZHi+e7nwm8+qh0wq9OZp1BjcT+5mfPIgcMyx76avMCgg4KmPGHDTv3zYSXaAKtPg4jvnF24ir5chwEPBcpc5s06OofCutFVo01gP9dnhcb9wP9jzkhJqU/6+jBjbFPv7KeqrbVV+wTj4OGFU55jmrmL6bLI6jQ6ja6Fziqw4Qij0XR4cIyrPE+h53QIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_SLES15","name":"0.8.20135.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e4e060b-da14-4561-801f-de4986970b7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"66a3c5ea-bf9d-4427-a938-b717c7f8b4aa","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtLks7wvMEi9R96t4trGZMZlebjdyyUVwzPutxmWjjJdBFZ7XiBEXqTHIjkXcOtEZuKoZzuiv0BpRwlwmfR7XOhtlstZeMK4GvSXbDsmaa/5NR9scMd11SyBW2Ou0rv+HLhtjAAG2DwO+wSPM6ib02BsYAl5Rmmq+5h3Eu2rRUKsD5hpX0M6rIVGMfmmkIy5ZS4aNb63Vi1kH97Xf/ZrsOw/uLgTNIxwmAxvC93LmZcEOwKM8vtfjbyxydUJFIE5Un6ctHLiHYUMeGyEECwECe5fBmtHi96uk13PIwVzfZyjPIe75UsTzBKEk8OWj1gzb+ng/8UYqWk8k0BWvXvLzQwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_AMAZON2","name":"0.8.20135.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e211a72-0ca2-4a36-a718-cf1a1d92331e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"d2a0d5cd-274e-4573-8df6-9c5542ee3023","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxu7Aq6dDLdamEwIuL/it8elO/a0K1poklCX5bL7nT5FEm1ZNeB3JrwQnswYwt8yk4bkrFT8HlBwkU3U2ulDdrHTB9g1fPdOmGl5gU8A6vGagMOtWI8nAbaDf1zb8lrP2CCK/kNXej07km+gGCwFiwNkzGsjc7knhgO0K/l2F19ryJxG2ViulaTqz+pnfmULkU8x2yv0Jbz3QbOYeXz/oLjCe3+tSEibqMb2PxU5Shf+jZV4QfqLp6MoO0uP9POSiBIe49S2GKJMnANFzrgDTF8PiztC8kswsLoIPyAN4g6r3kUq2pnmroDF94iDPVw7/QOXwcI9ijQJd81fRGGyiRQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1z1nqd_e2etest","name":"George2-SLES15-1z1nqd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c8cff46e-6fae-46f5-875b-2201013f7672","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"69245923-9534-4860-9b71-6dc4bf2178dc","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA+gq5rYddV514tRvyDl9deKymjGWtKh45tQg93x96Kx9Id/DzjBF0cqRShEQPGeibdl3m1uSIuw7jyz5uuL84iRIG84sD/TD0mv7SSSkYtyFD1FSHaDJTyOiaq63SkoSTXyUHxi1nArWYkywAi8FpxbJAb+g8wx1eeHBCWBlBugSlTaOJ0upEB2cMuWatbWADFjuUqnkdRgnapPFWN8SKRRUUFZ4tnP2h1x9LFHQKxnbVYRCOJAoW0NNtf53g8Kt4DxxxydTr2yewxs6YXhAPx2BL9c+ck9iW8aEq9ip5DCgZKDKOoLdi1fubwO0vEwNg2fjgm9prz7Wh29eDwVKO1QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internze9ay_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internze9ay_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68f9116a-2781-4849-bf12-05aeefa0599c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"c6282763-9480-446e-8d56-3e83cd569fff","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA5sqrhJAOTYda3Jx6aGu/k4xaVAwnSHtOXRCe1WlM0jcbA1RXd47i5PzEYV/lp/YdKiafSO6A9fOcmSnQGyqIvEc0iL6Fg4q2nbQnMBrrqQvgVqZKMWAoqoSDoqqUcX3HBGp+Pmhm2CUiv8jcvGKoka5t9sYYGVjnupAQsAh43rENT0J/ossdc3QGk6mO91cDQn3U5DyYku+Qkj7C2aO032ZKQxXA9F09z554yKHAUWIoF69vi15+y+cGCGB73IL7CeoHtdvGxVeCzImjumi431+eIIecgMeeeyNcSGx+Mq4CkZNFisdm1uLJgMxqWjekBT2bL/9KgNfRmQJRTNA3yQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_CENTOS8","name":"0.8.20135.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"35c856a9-53ff-4ff4-9192-e0fb8e7a45dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5234cf54-95ab-4de9-8a30-0f59253ff225","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzN8NG172Mu0zrX+GyjditkK1AGUCuzdq+Ps6XYcPkCGYzglTaXRDJ9SC4AZBSd7QXCCKovxWVsGDo2qP1LWCzlLESpKbWPZJihlXfZxb283+P9IvoNECTpTHfY9JPLrgeqrBd+tD663ZdnQMw7qJWQhBY4sUdJKYo7oWL/6DoIoHxg6bl9o/FqSrT5H1+4xd7fMOaxkvpvS7sxGHynClPYUpheqqP5KBPxYkjSuhe0122kcBPCatt4+orngHHwg869UDpXeXH3A7RSNN7YIR+l/BghXOH7mAF1nonlhu3xqJh1W41EaiYwnBPYwPfPEQMgyCD0ynOwugyPdA7gcxSwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004","name":"0.8.20135.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6e842d7f-93ec-4796-8661-aa725b835eb6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az508"},"vmId":"4291e7ca-46df-4742-bf9b-0545298372e5","vmUuid":"46362F28-1C8A-8A4E-B7A0-C2C1BB9717E4","clientPublicKey":"MIIBCgKCAQEAut/7+MpCMp9C5J0SjzIb+2wcP3vQ68uFx2aJfRZ+fnczxELblV0D4UMwxKIn9bLK5vllN+nRfwaupngnXSN0rEwtTsUdPOOtJSQqn6/cne6rAiWE9RVys0wJ2aqMYBbz8A/fuudAibMXqsoEmJ8kceRWFCiMpVY7wM+RDdLMf+2XxFSkEpVW4HZcXaYVRx5OnwOj0jemlb5IamfEQvOEHi/IoxZxtvVXzmp/Y0jeCDVOC34djBCaMLSXH9sRltm1u/kUsWKel5Vz5Tt/mwxR1YDT7qD3wmIXgRrBnPCa/PeBXVc6bt7Fs8nJO6kderB6IXiLfubtRN7HwsGxuLd+pwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az508.prdvehd45o2enfxezc4bub3qph.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_RHEL7","name":"0.8.20135.004_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"24b8f894-e6e2-4b44-b33a-e592a0563d91","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"695dc9e3-6977-4a49-a903-368f1830b1a5","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEArjyfp93P0B9LOP2xrdxoDww8a6Ic/1+XNcwiG78ivB1l+QSJhSMatugl8BSXvrhs5T7PPgZwLfqyyrd1uc/chPN9SZe6PST/ef7EeWnpQHHov6FlP5UvVJZGT8bJWLtiKPlowX/hFwPtgr0AbypMjHS9NrAvCNbdv4FgIC2XW0uTZ7b/TX+X8Tt/+E+pDpEXMs8TdwNrus3lkLEwCwXl9WvdNH6/Afg/2lwH4ALrfZ8HaWMt2TIgyOeAj/tBT5ro4zXmneTPbpxvVlb5VcbpFyP230yREVj7LM5Sivm6zQdoLrOIWUN522zQtjkPjdL1yXoS8t/zqt7jQqUxBeKICQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_AMAZON2","name":"0.8.20135.004_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"79a7584e-aa36-4124-8ed0-cd54f2b66e53","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"0fc0a0be-10ad-4cb8-90ef-1ccaafedb32f","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAt8ZHWS2bkkvy4Vp2zg9cMLlh1pgU0jQSeBOX+6iNcFmCFEy2MQU0IPFEIwLIkTwxu/dxk1hMEq7Trrh590Hj8lcGoZMbN3bQ3oZpqlqeS1kTEx5lxnRgVdlCmzE6PBDnR4U4Ue5sEWaSzGUoAgSk3RMF1qvFiyqaKsin9i5TVDBQIE4wbIbtAcyEe3h8M5LwvmNeU7AMoI+ng9aZL/PeTyHN4kswBCIugrAjubVzT9jvtYPO5ccpQUj8tuMenWPgfoZrmbVrKBH8qt2MnJ3IPH+LfOP1eXZb+LNON0zyuKR9laHRJej4p0+5E1w5byWf9pXmCAFD7XQ28pDtE7Pq8wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_SLES15","name":"0.8.20135.004_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cc907a1c-4f9b-4cce-92fa-6122d1cd3a02","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d3ac13d7-aaad-4424-8f2d-e32b4ff65098","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwUndd47HVFvQk1qjekH42Cuo9ppoI9HMWJuqeAjpB2jwk1qMNpEUHcpAsICTS/09HED1L++Oq9nyAZNbjYLVzz3+lqiaWb/UyU+3pCFGrwrK08EhaKETmaVPfkGFmvdA+5Mp5LoLYt+5l1VKYoKLXNccfukuLqn7fjvLs3NW8rxrcQr8gN6whr/UsJ+YTlxjktJtusSV9FilIu1/5bku+jwBeYFtoFjieIE1JkUpvxDr5+tjxhZrc/k+5JxBURAiefkx44ffyYMF+pLbmRA2JDeppOUXKFNHqpEcQZD6J3Xw6AcuOj5EIlKJ79La23QNEwEUVvJYWMMDzAitj/RJqwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern0fwhm_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern0fwhm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a81b1c36-f25d-4599-8c44-b1dc0fb2d31d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"bfdc1869-85ca-4ff8-a3e7-1ec36ed1fbea","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAtI/+/MVNnHSddiDkhNunM71eUiYTLuPtR2+BvQwU45s88/3VrzbpRD6T5p8CdtraCjtbZWloIZ62zavSLlkjvNAP/otmtBomgFA9JLoBIjJlYKEn8uF/edIQGjhX+aC0lFUTgNRunPADwryzma6R7oV4FKHw1/P/2yzvRs3phAt7yaf+jnI+Zkms6vUzXsq4wf/j/x6Ijh8+R2N3go/0C0YWumfWKtUMOai2GVRUTVF9WT9gu9HFYvux25HK2QkzNQgWzz6YpPIMLo6fDB5ID7WKa0mbW/zovyc4+pmzCW5KR1H5FACL7mW84xxX2lj7s8BB0tWDjmGTgTddgQGEEwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1859tr_e2etest","name":"George2-SLES15-1859tr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8604665d-d826-4cc5-b1b7-e067349514b0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"7b839e30-818a-4019-8930-353a2921e729","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtGcvlsZ7OQHOodaIJw97Cj7A59dZZifrGoJZ1FWuSxIvyJjzNt7zKY+YHhomZuvCNgSKkhcTYQmlCc4ZuxlOAIw6rBlOUAm9Zhe0YUHwiR6L6sue6FKUxDGPrjPn30Tm/VqCGc7MMCoqTVUC0Uz7pW0Jt+CkMHGG9dRRCyejkD0JDwXVio/IITzob3aH5kcjG3BqvAM4ShsWg114bEPXcmGEnwH6xum66/IZcw2IcKVaHa10Ae2J64TqTT8bFmz4ejgzHMvMSXuonWOanDgV/hJnfllYn4MezpF7QmvB4VJirUJm8xPvqnBOX8FBCnPccng8t+BmX18oquhZL60FmwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUdwnf3_e2etest","name":"WIN-PRKTP3PG6DUdwnf3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5bfa6ea3-98b2-4491-9566-dd637a626951","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"15763459-c6db-44ee-9916-5ceac828db9b","vmUuid":"D788AC1E-9680-4D8B-A723-721E1C444447","clientPublicKey":"MIIBCgKCAQEAvabV0sYy0/b51OZDNkwZpPjy2xI8+fTBL+U51WBl43jfnTlSI/eW11Tsbha6XjGaVgywAkjCSfTvFY9nRYYIDFKg2ELLEhTVEYt7TS2iNLvhuVh/NHgNJ7fUMEsRV8LugFQkFTkxQ0HZv5Cg5t5ja/gZNzZ2CxY8eFIoVVtDB9DvqXt9ah41g8RPKBgodYyfEssOgRc+Mjza73GAk1avvJQKCpBXiBse0igv0A4e9UyAIcTt5O78tUkfBhA5mN5Rp4hfOXGdlo3OnYH7Kyl9Jkb2lTp/uOSKzDZqSWgirCGn8umtjaoNj2ln5JMtYTy4WTSsca+ENUoMnmpl46+bbwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUtfpaw_e2etest","name":"WIN-PRKTP3PG6DUtfpaw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"838f9c75-3be9-4666-a62e-7e6015ad0ad3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"a9367fdc-110f-4352-b279-c7db293e354d","vmUuid":"D788AC1E-9680-4D8B-A723-721E1C444447","clientPublicKey":"MIIBCgKCAQEAne13UAzNZaeWKSQqgZCAT75LDKNaYAxgDUg/Q33ii8X7LMMMeVbFTtPYB3EN7nBixPWpRvD13W9qVV1ylJjUuO99lGcCMI+/IpX3UwvXYzVohz7Ay6H8FKlpYGAq1jbOstapQYqLMmxGuiGHsN12NEbE1QpXzbbyxksKwDaL44Rn6kE9dE1jw/CLMNgL7YDYz2vdcig6bU3RcN+dj9XVXJnXL9ua6i3wcZZ1NaymyVnghp6Wr1ZuPS9EjKKlOsiHu3OIuOtcJA22ykiK1+ePRbgaHWwmmZ3O5LpV9230eslJ5/78Z3XnDJEVahhjePzNVRqNd8NCwtoGsHNUzGK9ewIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7a9TiAAAAAACA%3D%3D%23RT%3A2%23TRC%3A200%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAABgAL2OAcBgAD6FCMACHwBAgjsABQIAACBwhgIAUwAgglNAAQAwgALAoTMCADGAAsAwJPUB8gFgQIEBVAkAhQsAABQbADMEgGIDxQZYEgDocGEA3YHDAwBQ7AAIAA%2BBuIDcjoIAAAAAIAAAGgB6mwWABoAbgFiAAYAogAuA0ItlkQKAEQAkQIMAAAAAIAAAMAAlCwgCgAggCABQACASCQAoCgCRAQASYpFxAgAMKIAGgKmCAcAECIEANAAVgLmFKYCEAAAAACAAAGgAb4EBwAMAEwkSCBVACAA%2FijQDAEIF1EAAwAIiAFQAAgIngGmADoABwAAG74OhBVAAowIAMAgAgAAvgV%2BAPIYygDWAeYDRgGqEIQIYAK%2BAC4AZgBiBoQASAIaCUYIIgFIAhAAQAByAI4GFAAAAACAAABAAToMqgF6AYRWAATSCLoOVhg%3D%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '162701' + - '136995' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:21 GMT + - Tue, 15 Sep 2020 00:27:38 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -221,9 +381,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 591171cd-4dd4-43d6-bc95-0ef7f7e4fe59 - - 4be3b5eb-8421-49a1-ab4b-fa6d4b54829b status: code: 200 message: OK @@ -235,32 +392,133 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=VVJhb6JAEP0v5rhPR7WgAk2ay%2ByynFhtXRETPyIu654nUEC0bdrffrPYJndkYR6zM%2FPeTOatl4tLM1P5oe7dvfUYRKs4slgMi95db980ZX3X7x%2BTPJHiKPLmJnk9VeImLY79%2BrSt00qVjSryur8diaEzdFMzG3uJORw7qek6Q88UVualbrqzd9tBv6yKVu1EVffnKq2Kusiam8nLtlI7WhzLUyOQKd2rXNQ%2Fk1KZLUZi8XtrcOuZA9ccWGZZiVaJ8%2Fdv9UGVq%2BIg8ntjRAyHGJbV6F%2B0hg36a5Fl6CP%2BuIB8hHkiXu0xnb6EcH0MGy99w7KXKwwaIlgtqUaDAeIwWiPGInbInhCNRyN7jH%2FBQseA%2FBWqjbIgZEgYLNwLn6HFE8aTK1ABitCemnOfadyiIsIXiOw0RuKgHQWQofX2nbfdaC82Etx2ua2rOEmBAESSMpA688Jbd1LwBQcyBwmMkz8rN%2F7iLAOdbbuZhAlEEO4Bfp95x4X%2B9Zei01UFcp27O9sJwMEAdOz5YwcC2d14VyWee1WYsQKIhCdA659hDhDgKMgJSE04TpVJwOlSAutERpIcgNOHkLKQopdEMZ%2FOOAXgwNSaQ8wfgaye%2FY3cwAPmzYZYk%2BD%2B4e4x7LdgcglUyilQRiEkVD6z89ccyP86swsyLHQP7UvX5dk7EExGNl0aQk4lw9owhVyCpdfjB75VkkvxuTDdBh3Vv%2FvTxRyTy2eEZQU4IstwfH1Gfu%2F9%2FS8%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7a9TiAAAAAACA%3D%3D%23RT%3A2%23TRC%3A200%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAABgAL2OAcBgAD6FCMACHwBAgjsABQIAACBwhgIAUwAgglNAAQAwgALAoTMCADGAAsAwJPUB8gFgQIEBVAkAhQsAABQbADMEgGIDxQZYEgDocGEA3YHDAwBQ7AAIAA%2BBuIDcjoIAAAAAIAAAGgB6mwWABoAbgFiAAYAogAuA0ItlkQKAEQAkQIMAAAAAIAAAMAAlCwgCgAggCABQACASCQAoCgCRAQASYpFxAgAMKIAGgKmCAcAECIEANAAVgLmFKYCEAAAAACAAAGgAb4EBwAMAEwkSCBVACAA%2FijQDAEIF1EAAwAIiAFQAAgIngGmADoABwAAG74OhBVAAowIAMAgAgAAvgV%2BAPIYygDWAeYDRgGqEIQIYAK%2BAC4AZgBiBoQASAIaCUYIIgFIAhAAQAByAI4GFAAAAACAAABAAToMqgF6AYRWAATSCLoOVhg%3D%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-63cb9e88-0e02-4738-bb7a-945417aaf076","name":"release-63cb9e88-0e02-4738-bb7a-945417aaf076","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"87de0d3a-d1e5-46cf-9317-482b12c29e14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418945372469294431838344981569555534318799334128765844965549708266162849269849662926025487878978189660182895745198177687393998554964299883225276192586536559757571440657726738929678259764068266121364213409646557054751281576577958440609975881631562837722919179049418089613452127001311517132896672387334207014198275753395639","osProfile":{"computerName":"jianyunt2"},"vmId":"9ed80160-1521-4ef1-bdb0-6a2aed0fab0d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwsssEUry8VjydIVfRX5g10PkBFbik4Qa9CNHfzXygJn/pB/tX9zK78QWWeD3akyRG6JTEkHVP0C1c1uMxVVZzsKozcL6P3h2Hw6vNNizTu+puu423y+zrSkSKjhPNMFJ+LBi+DDnWyMFk80j/JQOi60eKtGt2InKWjxC1rdjDigdxU8jqMYb+pf9eAR/kMKvjk0LPUafzdEDArAAbrZmp3eE51vR+yAk0+hHnzCHOGdG2bLhzDIPxGEA4et9YQ9A5c5ojOJevoIDD4xugsDYdrjTssX3ZqPjCUPaV3QpbhSmA5sZ3kvYqcgTEOD94H1cn0Vm+F2jsXDAiUjawFoWMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-60ab8b56-4851-4985-afbe-76fd69be570f","name":"release-60ab8b56-4851-4985-afbe-76fd69be570f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"658e731a-3765-4377-b3a2-19f2fb381648","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41868693557251254775017735577467678779637150332946134348439484472376152624822229788697578089371940669023887937837623493723033432401691165760482524123583541334680664234260822952164475621288528004662951274603500957127240648833568703731420142794849159318890449345177573991697441343096141992422606407990815196666568054418372317834405894519518316580693373133964534862316560558151057044055522269389294157634261491422688","osProfile":{"computerName":"jianyunt2"},"vmId":"313f099a-d221-4fd5-af44-149f89113f0d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvy2TtRzYWKR6U2U/6IbhEC4dnynIJBg4AJ6cDGEmWgVs4+nsLGE8fqNpC9KMk8sJ2t49Bh2zVvZ2dqf8IbvwrDy0yA5uupzOuDjjTGUV/nQSNshZhG4zhd9+2AICz7kiNAd1bPsuIh1q64m9vJUCePP80E6hBIvxEjpvDFkrIEc82k+0GVomZHtgZcURXyhI433NWvNMQ08RaSMY8cSaatUqrePOo4dl47CFaR3ZnRmsaOkuJmZkyTZkXbeaOp4wYgAC6pr6a+HtPVcjzYb+H/ZljL4uaeVj1dwHGGkB72ymKd/HK5GvaweCB8Q0SABpqyOd7Qfmn553CjpPHwqu9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a24caa5c-c4fb-47ac-bddb-876eb7cc9a50","name":"release-a24caa5c-c4fb-47ac-bddb-876eb7cc9a50","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"930d9eea-bf61-4a85-b959-51593fd91b0f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418594083272283918926783128254364401139535540822290128432380952161878083757609695378521374163570331722511940588248121403185455789450354125649224991374049585030626206778953706643914882561454235265831272132083116149134207354894744201975497578731788427734582916580351889251904590366114261869899463803031007220133527451316698427491765855218668628751691266915819758","osProfile":{"computerName":"jianyunt2"},"vmId":"205d1743-574f-480f-843a-b4acca7482ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyOQZ3jajQyt6/CNtREt9Pj9qOujkPBS0EOQDsfukprq64aVIA0UhT+0wrJKui69jF4wZ3xFWVY/SZ4g8xNManGoOyNH4qaeiIZkzmqTb/NXOXiRtyABaDmNP7g8Ek/WeTXqSgMTp4vboihA0kqeYxktzTFpCMKBlOhJGpOBXOqOhusHa+VSmDkOIWdHVSS9b+iS4Q1PpEuXOI1XbdVEJR8qLgXDfnw706tYRxqPpCDPNGbQf2lQ/jsS4LkuTSUTlYy60aVhYmHMXC6kZQOCiUpn4/ct0awhSH6YPwZRU2JUb+US8D7VVelEcjPqUMF/Wm70BAfxlvERvhFUrCIGzNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e84c81fd-20ac-46b5-975d-eee61c86e464","name":"release-e84c81fd-20ac-46b5-975d-eee61c86e464","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7966e7f7-a99a-496f-bd11-fc199c5fa4c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187785890851782305741755586386909155416775184310241093890870173552798553705141681997073666396726261695343736505180120739181188625384918480496558757199425923904158921279927779860286094251657363548195561663938196625020384155823318811541213829779177278154285518139564808419752308477123758478442910927428668873512735456310961821141562421056811209387984874177971583029191554126867","osProfile":{"computerName":"jianyunt2"},"vmId":"06a1cce6-4e94-439e-8e34-bfa70ac342dc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsY+h3ewy1AwH5fXnr/UA9/NcjALoZFJ2a+IU5BRiVLaiA5vlDm7S32XBa2OGYpu40BQ+q9SdUI9H5lBAlhsEZO6O6rCEFfctKquBxMh1ZIwpUXK2a5AlXiz6AKABC01WSru+UcVVU+6MRvQG5LjoC1cVHc2w1A9zXUViS2Ep5v/PP7S0x0FBa4sxlNM9T+xbfqK9bK+o730bpt5mSDODPbXHbUzMW0JLyt5CGIkQydkMfFuuFjlL8ThmERhK/zkPpYc2psNLekuJGYHPDkEre5Tt1VeG3KAIieSD8Zmr8k3CJ4/6QYBwE5Swc+k9eezib/Q8nmbcdXz+u7eoE5lpTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1ae76e2b-e03e-4a2b-b4bb-68ce3babb2e7","name":"release-1ae76e2b-e03e-4a2b-b4bb-68ce3babb2e7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8316ce3e-2b6e-40ba-85d7-078313459854","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41888587847586524991030338282884987328389235580115280356892275218758619973475801620618045986317950691088262531860431054602245015306826971823792694541089838182772652094475078322032968135604176218414133568356669090724691016852179187684662296093883120963696822483275557363983124647104628871025142334530086751732266816196788758975871453097064024935592569497571","osProfile":{"computerName":"jianyunt2"},"vmId":"7b35c5a9-16ad-44ae-93ed-7ffddc7f0135","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1rsROV+P2/EpDmLsmdbwf8TvmZG9NvqV/BnUFMd10qa7fC2YBeqlVM7tJNTxZ2Jb+cIxPKmYwd+JRW0urbJzLjM7WAVSkHZJkaxdN2t8tF/FwXvcSpb5gNdkb7MqWOftp2MxTtx5dWoeuZxi4mvC5k6NGg8fVu9/vuqum9/HxBztetLfsy9UdwT4lFFFy6uQgd9iBwz+tcbQt+uxB1+z4Auclu9kt4A7J3+NH+v646CIx+G+4DJHLWC9qA0Gn2n/o76bzm7P0EucT0eYRwF7DPXzeV3LCj9yiE03XOX2nDt/uopk23pTLogw5iiPOxm99YZjwD7hSLSoQopmrCPZBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-032fc5fe-6cb3-46a9-b0ce-1bb98b48351b","name":"release-032fc5fe-6cb3-46a9-b0ce-1bb98b48351b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dab741d4-7995-4b0c-b1bf-91605542b07c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182507187246462663812083839238706889102893863355346394259238996527440958556235280071897976923772243147737586261766502867870545520284923155794368154319276955336205835893404960212723819807910571991935179855076269749300573065879291022538342869332315276215298606960914016383112338013196778825167194457838105208171645144596228996326490","osProfile":{"computerName":"jianyunt2"},"vmId":"426fc5bf-8699-4eb0-bb1c-a986440804b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2NpfDhDuK0W0ECjhQbpcem9ePqnEQa7Dkjalm+S0USRIQfEzxdtwjMFKa5LVGscXo4v3OSiM2AzldrFY1h13WTUyQPiwjkrw3UCRGcXsNmvyu7dXjNbkYdEsxbIFSj1fldEVvdPWCBQcka9jdcOlwXZUdtUpfRMD3+2w52TxUihPUTc/G4PS9W3TBN4wBZXeLpzAHulDN9qqfAgad6q61u22atuSv1hfBSk4SIXTShM+pOXtpLfVj67i39zGlgi+oU86mSmmKvshYa1h6Ixfosiwi695CfrPO6jkhi7m5QOfuhzm/shx2umA+TQDtUBUY+CYk5ktJbUotLKouOKuZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d718d8e5-bfac-4c7b-9b49-787f1f041ebd","name":"release-d718d8e5-bfac-4c7b-9b49-787f1f041ebd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"98ddec13-9d1c-4fd0-91e7-c91df8d67e09","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187235918023867583398266269935325502825529932368241135832863777411621367999348501255621829725348883504352021392613443956321259692475221507793125545511107028618648807339852986802669577403616635976283903762033276845906117855541926926477518765667463540551305505886292458764480971197701690852061355483867413926037317717816005722051625362305987198076942523234874176316527242603962939869450","osProfile":{"computerName":"jianyunt2"},"vmId":"fcc96820-1dfc-4702-a69d-b248bd794333","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDHN9bIQdKbexshfolKh79DM9w6DEtKcpXtd0YbjW+8GJAz+CfSYj6bMBIwsnW8aXlNWCSVmDjXEXB8vOWhBRMFLlKrK2AYutsO2Fz9k1HM1mFJR9+cXB8HbeX/M1/N9/mrpbNUWA9F09smsuhIyyWeREN0HByjTP8QhIjeBXC6QeuS2B1SlI00U2bqDcV+LxaBOUWGyzVNoCJwuH3yeaU/KR6oZDAts/+gWR+uuQn/mkbKlLf+EVGAZ/pYeULqN79Fe7Xk4u8PrxeWvP3veUlcYhdHOaV2aX8xorD2b1T0MfUJtiaATvOvkCTvS6y5IEzSUubHA64yQnD029R4jqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac2fac99-1983-45ae-8d73-ee4df4fe0b6c","name":"release-ac2fac99-1983-45ae-8d73-ee4df4fe0b6c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7c579618-6a19-4173-9de7-e2d879894ca9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185503377454538923461978049198150846605501147849183987093964169636352440537051422211574172978619477882706814036517588751680293693215356316684655103034736745268197606903488777582304934235359751803144641459991148728744778442881356684964912775186818201510614714756397518218916613553184578544002919367797386734169296654370998458099351956781355862657254347187","osProfile":{"computerName":"jianyunt2"},"vmId":"3a482b08-a10d-420e-bf66-671479250ce9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxyFWdUDNfz6IZL/NKg8mPzVSWiuGimkAZg+dE+FUykqJUPyKKwTwEXSWv5E+112R5wKd7/bSIc2KlbnnhG0d81pNDfrRg0aOeIhjxzEJEMfReblDZo7hrKWmnUnNTBFRrBVW+dtIUy+vJNM2VzidHSE5UDU73n+Yr0gyu61gAzaIsqnOXhIEq7t7fDahLXmkwt1/y06Qs49v/LXhDwG23uW9TUbe3A1el8MLobz/M3THBUwHrUwifaf5KF/t2H1eMMFgWfBy5E8zeuJ99ZcTrj+TfUbI2ioU739dwMPBPBqFd9UIUmUXGrNV/GK3KaMD2i3qt0ErEK1geOTdUhOdSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-163e98b9-cee3-4f36-ad77-451fdf9c506c","name":"release-163e98b9-cee3-4f36-ad77-451fdf9c506c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b7f512f6-7c66-4fde-a198-db5644ec1d75","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41899129434894875165687218637788393532630764219157819462568209945877715429820723229204323773158451409673196276148651591526087780261405332953269842378885420041562114488039610645778301395655672650822617475958911152354447556287641801330713897714541763622337354462353991186447339351189722017537537047949871172355931046556294671531657814850248971928768083799700595967449922633780053318608","osProfile":{"computerName":"jianyunt2"},"vmId":"03d59ad3-525b-47bd-b74b-b2dd352cb328","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyXXzvohCjdLQU++AUbNRse600SDGWfOFB7EGwHB0XTdQe+zH01tkOVpENm18MPOBnVxD3L347fLpDVH4hhgPS+zhcI1lpqvySi00mxpMPnEKhKjdN/7Zo7iX728QitsfTIc60zoqF6WpKNyXjrwSVyvUuu4sBO9/4F0G+YNcIyprJ1d2GTVcEmbw9Nc+Zrofwfr8RjMCQ9oBcxP0Q6QXMMy6QFjHd5GJK5i6hk3GWZgATBHjV2CCMrdVIfaSvh/1943ggJqDvrQnx7Glp641vCjGwtX7QCxYlVH5RPKOLyY1xj6tq6EfduraH/fRbCCrKBpDrgW94S16lBqzmQIeTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7b8aecb0-5dc9-4286-9337-17e920d05bb4","name":"release-7b8aecb0-5dc9-4286-9337-17e920d05bb4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6a85c10a-613f-4ec6-a3b4-95664f0bde5c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418630499786878820635624781214959784552867188336094608116423775335988350939911547801244067048312317141397954044955396411520649560766842448406752238561162597896210469530937882752684533449606994225853126598569378412594309554741428548717897445463536182063487137112413546779074618235795417465322385056015517381296204238681823983356108047735582817559724621","osProfile":{"computerName":"jianyunt2"},"vmId":"43e6c719-de25-4fb6-a6bb-415e7fd393e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqiEYNtz4QwfpC9XkdQ+0A2v3jq5RxpS3fYXJE5c71J5BawvfXG7VwiFKH6pt1I0wxXI3Rqldm8mnmDBpcmbCvjufvKBpumK+grV5J3yMMaK3t1WqAEgoubzBMz0E6GfYgLSRF8yxGyDdn5AInNCFAHhKxbl8nxDRdGtVtfwnhv8MY4hs4uomqP1Obe4IpiwS53VwWrGfdkl7b2I+hR0eyebIhlyJW+WRA3+tQG+RrOVF/Q8fY/EyOvamHWfU2U+0SaYSknNrK+kiC9EsKigHFA1qNuVuZyfG4VpzktB42jAZb93zt1FUdn2wAcRR+LXByKMTygERIFY8CbYD78AOWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-55f73771-3224-434d-8a94-dbb0f7e8cd07","name":"release-55f73771-3224-434d-8a94-dbb0f7e8cd07","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"72ca4c62-be97-4cc4-9850-1a17a3a59799","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41857759066164584144769246611758922364259396666449056801700490299702403629984327605612857117325911757082142665046479102204359653604644965639155663656421029914758604141130078915501070772933561233092166475953610765538328317471530181121447167958025294219229674322491999103866837011126733369875352374806447544587687739984326795668894676935966048832734495212244119201844925","osProfile":{"computerName":"jianyunt2"},"vmId":"c4e4b116-00e1-44b5-aae1-6261c40d7ff9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5nTn5upie2swIQDgPJSIf0ZhkfssG6E3/UhHpGx1egNxJN6BuhBFaFpAqCpByeYhNYiPaKt49vvu0PoN7cOBzKX/BPfVCFzlVz074CQFNv+Fjx+thWEKtZtOb1s4fG6fwrx/VPe8KBFKB1aBdzo2HhKZ61u/9qbbF5542fBA1Nm8QVmp6e9U4f95Ww8ezK0efTYC1cMlmqgZl9N14jPiltb1+k10/ON9HKz2pdiBCVDvJOQ82Tg+icEDNL8Gd7kxPIaECoxxKw0PhWii0P2PfV3sWUvRA7XaG/epa++tiiLdbfXltFwf3SjF47wZg6OfUuVlD/Psk6vhtZKMiq0RmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-50acd335-896f-4dd2-9c92-3fc47efe3645","name":"release-50acd335-896f-4dd2-9c92-3fc47efe3645","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c157e0d2-c7c1-447d-bf77-ac27dbe9286f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184097727368183051241969319642718317935323285971719054361553324047577736688176322859889666261567340963010637393116466683382137484633083179139677346999464869237252474960960048885983936564993698174568627545597224983214142843743302116505248302971101754492748231998370","osProfile":{"computerName":"jianyunt2"},"vmId":"0024b970-336c-47dc-95af-f2d964ea09d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0KwvvnJiJesHU+v/q6RZzrcy0yxw8TqwyzSwmq7WWtVJoET3DPjE2SlRHY7r8HN5ZqMt7UokxJljDnsFY9FkfBXKAx4NB3ZwS2L4j13PEwVQnVsqetpzqlP7/TdOIDwAqY2I/jwoauhEwJwT4T+185POdQIlzgMAbEuTxmXwBpgnX9MjhAonrSWegtmqYFRxYB5MkaSFVRy35QwSugavWo4pC2c6p12KqAZX6Zjr/ucQzbpMSUbRx4YCHEG68mGLRjVkxXT5WIPeLe5fbk2xR3AeZhUFM+OeFmV3zSVs6dCAOrHjAQVYYFLs8ZLpee902KYE0mnlEQCQzFWVYSTvGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a91171a5-0dc5-47cd-ac00-64dee8f46e95","name":"release-a91171a5-0dc5-47cd-ac00-64dee8f46e95","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fe2f7819-57c2-40f5-a9bd-ba32be082a16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41864928745618194144373546307606328752686686440787104561660444599650892141276854162429049465267239903782630737536782188333491955888760748224692973134526288501530489805416992253536448833844192164181713294472127598253845853163881427623302758296493476211554475638043253355759224144556","osProfile":{"computerName":"jianyunt2"},"vmId":"4370df58-4ad0-4a99-bdff-365c36f15244","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0fBR79fA17x7l7sNdZ6mtEGx2HhuB8lD6WWIzezian2SP2EDm5yp9AcnXuvHXvLBOxnBlchgvxCBh/5HW8z9C56eSVmwXuwajEOO0mn4Qu8hFTkM0bNP22mWW5lQUFDulvUqaX0cy6h5seBC881DpjOomAeULrJNP6SmiWsxWgaL2LVa6s5lqwOLWKjkLGHljQmnL97BEfE12GuXUdzHVAtc3yZAZtnXHdKGdC1UR1gqdZfx8a83PAZDvj2nnvX/ycR0CbP58hcOANTs2jGj/jyLjBszzvPx6vT52vVioiQGljucUUzmIEdliKc/SCOyxkekZrTWT23NUX198JUSnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8b4528ac-0c71-4a91-9013-eab8a809601e","name":"release-8b4528ac-0c71-4a91-9013-eab8a809601e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"af7427a5-de1b-46ea-8bab-d58bff1d6d7c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186922203174336026296391107291710677848073365149575556756310098623602052446641404147036595169669401710731472189236303996273634562049625136770663949549655770246008373186365748287344281369726588685792015346620666026788178216285525575041299921695713028962674544056081207947677171643914875358136189573280244248902434712558424393158948166348664907611624249693150552215357","osProfile":{"computerName":"jianyunt2"},"vmId":"f2583547-416a-4e8d-83c3-cdfb4edc6e6d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvpSgHGWigsGLWDVWA6ia6VMI4BERiPGq3UmCIzjk2dkwvFxSp/nd+j0QkHgYapDl9h3GgRIxmiYVdz0pOZfRVXBNgDNy3094k77KLVQFktin+QNya/lKiXbQL9Q7agu80gzn7n/2bhH7RuO0mboIo3XNo5DHcyw0PT2Zi/45Kczg0Zv+t74/jnPWJ1oP+kf+IpQmJxlmID/kwM+s3Lo2LSJ2tWAfDfKldIX5ZWrrt07MJxIxtRwtZTGZw4C7XYl4jq8DL/pSAYvgQ3EXjuL7Mt7xiAXmm0F/9vxAunFW1cH0sstv6e2RdjK7Zq2a2BnNRIFhB7w4RWKltM8po1HxhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b2e191e8-291b-4dd1-a5ce-5e173f3c0b74","name":"release-b2e191e8-291b-4dd1-a5ce-5e173f3c0b74","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1f35b198-95df-434d-b2f2-005fa76ee93d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184966252126264709782398498635379875466140125229415458212771815607500234888544370234363891216109851260391606796149869783595435481769329154855561059839027733357645156201711819661774594107008688120734467329025883426347768364782880342007056707333765788800755887956046822428455134771687857478","osProfile":{"computerName":"jianyunt2"},"vmId":"5d981ec5-c8de-4ecd-9b37-273d0ab07593","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8XU8LXgLzBlW6/Rd02ufr/b80jWMlNezwuEcy4vhaculAfKn9BiW21vUcxIQhDkrH9dByKs40pTNGGpyj5eFh82YypHo5a6VOTt8rUDl9xGUyJWV0U+TEZG0/M+JTDPvIEwpSeYuph6vQki9KpKMwm5LDjBvvsOogENPX9Yg4NZOcpfbrDda0PBjo66dfI1+WgEFmahuYkmSYp3z6/1yy/Gh6gdtW0+zt6v96WAgI4fH8owSFaNDCaqz21oRp90aUNo9MClaLs5zPIJDTrG+6zNtfgMZA0UgAI5n78u24Y4/qgHFVj6a/yzmyk2qoeI5jrtg7GIBGXyo9GpHp3oPRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-06e966f0-1bc1-46b2-8561-466e8a826ffd","name":"release-06e966f0-1bc1-46b2-8561-466e8a826ffd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a7c62eaa-61ef-4592-b23a-8c48f8a7d8c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181145869270145635487648048751220924929159093194553583308484960789279774758644848428950869469447999894993422569858114318376794023559327169703940109196694116652834732823643023439279557877857443622417126122696622313634332260675471813804217796895474912688606927737076124886488141183351464942433226578250","osProfile":{"computerName":"jianyunt2"},"vmId":"e68a9611-08bf-45bb-a4b0-3b09b3d2e434","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu/DQvVlNrF9Jba15GyRSWOiHKzU1aQNsliqT3csthwEW+8KpRCwAQXAVaiYCnDbdIGosmOGyhtMVvbpSCQs3IlL93kIh/EiLewenPqw3Al5AjW0AxmWDj5R3gwKNPffe2YUqj277vjTBo0jPx2m5IPMbV5hhBk5PkysnZHQvbIBL01BPWM31eySFVEdBA5ABEmqODWQjw3lug9jyNfE7+UI+MHTp3iDOs3Ee/t3cfxDribSGI7JZ+3yjcSw9v90Qo9v3UCJGXQd0Cf6xFvZps3VVavflYsE9rZxkFPMB7+0gI8SI6hswYJ8MMI3JSrZUArh4R/mEqqSsEh8fOn79GQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-52e0e85e-e4cf-4744-bc42-be4fed8b5930","name":"release-52e0e85e-e4cf-4744-bc42-be4fed8b5930","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c538879c-e384-49c1-bbbd-7eda90fc79c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418455194834070575079836090804694453794396559332801732228767959996846779235086822012807023472593254081439557556025252636417602192854324402156115188916934461248882720434199587528251330851733219716678778461928136835653677423730786574758161413645189261451410206884698450757778122211064362952613432754000747126332835578981946917","osProfile":{"computerName":"jianyunt2"},"vmId":"5debe63b-4a4a-49bb-ac7c-1a5091ba63c7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxLqIEfmR4nA46bgV2J0P21Q1+aYNQsrSHPhi2tmUdCMKEjZsaDivbDBWz7yPrhilV6o1Pn3HoGrS4TYAdECX73SjJSmk10lWDx1jFRup1ZfMsej0S1c/bbfYlkXLpiqbNpQyEA0BQjgz7k0SgmVKQv6VHF2O1JmATY9KKGl1gW0hHlWMPdp93tm+GiFqeDju8tMa6dfYjE3KritJmgwoxkeYYX21G1+ZKIL/Yz1XmPgcxs0rlTubPmteN2u6MS8DXQfFQxq7alYM+72QuEoDagp4cDaqt/TBXFGDetKaKHSc6lGbF8xoe+kMnWOBl+3ZXUhDE/SIgOEQosOEEkHGIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5a30ff87-0273-4019-8dd7-56c4b6d476c2","name":"release-5a30ff87-0273-4019-8dd7-56c4b6d476c2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d853fcf5-3e43-40f5-af55-5f8756c24fff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418549041318984314564212658744151232354430598590904600872645879136469646284586897649087777401053121871192013834371526654645241291266013801343671805967532493413142876325792397168112430511044852358948246845524645010473231462275143991930573199211378318416587439215192085267","osProfile":{"computerName":"jianyunt2"},"vmId":"55dcc9da-8c16-412f-85fe-b60682d872d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuCF7s2vl6nxzvlNvQflM6fSP4zm7KF+ypvjXnYdgxwwm0WXT/aSOVMKexB32klEYh/Z2t8KHQ3gNBFi1304DOKY/nskWucghbYhXmW2bBUdz7R35oL9QOU1CiEcKDh2nEO/UVN5l3oHrHQoMNruNrTzOhHVGEVJg4OsEbP0VU5UpLeInCe+fYKmUHnzBeaq/gNn6OZqZIvl++tS04wNisbncuIwXMGBBOuwsLlJitsqrykUQRWpg/FcRYba9eJ3akcQ5yq9lFOnJCzalgYJ7zAM9en+DkgAz99uD3UULUG4kRT8Jk28LIZ8JoYSuOu5V9c9kkV4jGDXNdQwjNHUmmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fc4d9b1c-894d-4e5a-ae07-ce25d3c56f12","name":"release-fc4d9b1c-894d-4e5a-ae07-ce25d3c56f12","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6dd1469b-bdbd-4619-808f-f8d78ba84a25","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41829715494897793103589899172989913970983069104350135260383856259152879404009506082534491178259677643933274495089419367724296663115548744854365758803193893796501007685416813589129140328884856926110834989354725133470438081419554863312518991159055024834791091951177442725284370014044157761548746376184252994879520105722799688535941417080257425277409863812057348958581474","osProfile":{"computerName":"jianyunt2"},"vmId":"8be49a46-5e4b-4562-b39b-3cbe043dbd08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqesxRAPVzTW1QyYDXy5hMB1nqV4TAfdsHO4k8VenaTs3Dz0TiKjUs5p4qcjb/DkUqxSGXuV0R7Ju7BSzz5gYKotufQJMTPAy4006xpD2xNBKjJl7zLQJhO8/jn1W62orItLPXs22WgsnlAaRNV4CY+bWWkbti/9XBoPwgqz8bDtNZzUGReKlwxFsNB5HsIEBm3e+YS23YlYOmSH3NMWtCHyiixBToyq/95foi51J9H4RiBIq5Z7aDMkm/D4vnu+PRYD3tqZaFejkk6m1zdjlLBlgPWUUlKcdZlDICX1n4xlPy7z9KDgkQYIxPGTUd0M0ivVvtNdr1nke6zEzAhS/nQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ef30f313-2f21-4470-aecd-3dab0a8fc962","name":"release-ef30f313-2f21-4470-aecd-3dab0a8fc962","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fe360853-cfd9-490b-86f9-6c0ccf0871d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181542587158221589534416303659407859372561756391931000973120963165497544808833293318971945538131919507683794356461933199475588631990577009103914042629877332576885325460986787406985981356552212668893818262243728246500554567746462659556585255114198459168773789422296944320617562857321644365182390643734947466010641735253721351643","osProfile":{"computerName":"jianyunt2"},"vmId":"75ff3330-849e-4810-8c5c-1a94097d5676","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtmFr10bRMO8i9OSxwHKDcryk1RVS7ArxNbLj90no/E1RU8P5ofMJSPoSi3A/ysbT/M5GuobXWXvS3cBba52PvNOyqTV7R/tSFxOXXTE0qyb3GOpxXyvZllUYBmyp8LmzWiHEJwcCaRRFG8JvYm84Os6eqGTPtkOltvNd5QBCcPa3KEz7MqR6oTvgA2UivIjPSvRls/HJaCRivbH63LXdCPG1PstXZ4xLGfNIGy4gD9vv5ySvDXdO9+fERfLIJbJPinrh7+lIF0xrzupQDgwn6aOj9Hx1ySX49HkMYJXhmwbFWBExKMfDntPJZx0ZhFYpWhCj0fsY+YgUPOAsgAwmQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e86be006-5cae-4dd3-bffb-834c4deec731","name":"release-e86be006-5cae-4dd3-bffb-834c4deec731","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26d6e528-26f3-4f3d-967c-67e811bdf376","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41835507409628298146077550068019771794015271597533815229496747428411187959298617111651857721271339346546203099891355783892672252090906273939233263037710563411304298852227788569038405945266722212824673784625978789589321084918268269990682730199155237036765062713901632394841730427274421755673359384657313234388799496486932302","osProfile":{"computerName":"jianyunt2"},"vmId":"114266ca-2fbf-47b0-be35-edf571a437ca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuFqr30GHD2qj6gpgUnPlNv/Qi4bwhpS2cdjozqy4qCFcQ2s2wWREKG5U5N7gy69dbisZhy9tLxKgH2ELCUcBcZ5ZIwEhfl1aUmeRDBfxbOZ7YNOTSGMsKVWmMyE5AeLWY459PA39OENJRgXn4UF8z3VIz3Dhf0nui/BOIps0sl+X65d47o9yUsoW65AgV+0VU3AMMYfRWvru1dM+E2l3wyp9hmyXtdh4L+6/oS9+9gPBjuP/S7VODAdu8xaFaaVNtxffREpTXyhoq9VkyU14bpVwrXjVkaoiUhJFmseXpq0AuH7IZjLHZilq6ke54K2Z33VCVl/zYv7BBsAON1V6iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-444bca50-e507-49d6-95fc-91e360ab39db","name":"release-444bca50-e507-49d6-95fc-91e360ab39db","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6de5f931-4667-49ac-bd09-03b5091d8eb7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845223353251961718455717492633645562457592926552669149960409426384572333563784200152879554097601652622491849924404982125416674595297025227458403663225624706048745287341351747321082373467589990411008476662344538410676994379160384017658728397095306891853207760566665528198292372463203868667636575314343425928732127212419237116483572377750120476433","osProfile":{"computerName":"jianyunt2"},"vmId":"aff1d9a7-9354-434f-9e8e-9f1fc77397d4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAysqhJHPO+8T2S7PYKgZN7+FKgnDnkoROf6Jy0gtaAciiSaNudYRcgD0IhRjncnoQMo3aElzWzfj1VIs+9YvVmGj7ujpwXNtKxSwPABq43JNXHb8RDf9U+NDlPZDf/0CdCGBYhNDTfTteI1Q5mmP/oJjeLW9/QcgUJ95wyIUyoWfRap8NAz3+0Vn4JZmN/zGo/0fIi3XqxbUF5CYZBfXGMbLhNwFQdP6zAEWInr0vBRc5FnFiFoFPb5bKBrr76ag9diuV//0I0KyL8e7nctP3TQL0xb6HhXd/7pijbZFzCWxM/4dD/DFnYBJOStdHwy1Lt6edxX4HhRMPhyogxJmqqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f7407dbf-9025-41eb-a5c9-0129bc79dfd9","name":"release-f7407dbf-9025-41eb-a5c9-0129bc79dfd9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c80a0c2b-f8e3-4cd9-b17b-3a86a194412e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182916604617642955438072492807711554155503545429901609504980036001406691214624257088948939997439261299859017695490373613368370264325709488691283673606672768454511705831965851795193936436365922121896078034613384097123951991207870170945043276658540821857225578911883034767292942042155914238961531532889974789397","osProfile":{"computerName":"jianyunt2"},"vmId":"01c838d0-77a0-43df-bdc3-88c378a6e81d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4DIxXaTDRmHN1w/4E5ljtxO2+PSjYp8jK9ErrbN7JlJyAQVljZXeLz/W5PfIz4bSPlL0bRQpJxMkhX9KtHl3V7TydzqoLp0bRcR9KJZkXZBN7UItr4/Luvssnhwtk4LtVxcYzEdmZeBZtyZmrioUMSYX3YZGrj9n87xV2GWCxVdQotw4UZ0CY93UlH8izAaQrhl2mPdt0VKdypNKgfSMMQntFD2o4kuSmxi+kVDObMyw++Z4v8LlwJkWb1PSQyBrCv+pD7asN0CDz9z2wgsPlG6KgcwrjLD/Ybm/V6ugHuetyJPo830SUJIE6zjgSdvD73BEwLlP4Li2K912q6JtfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6fdd5cea-d06a-4cf6-8978-8e06333053d5","name":"release-6fdd5cea-d06a-4cf6-8978-8e06333053d5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"055f3bea-1720-4d82-98ab-3c094084a21c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418845035537820722245733077369686703559347634522767981539481148571478081821052148840997813647220966442442548352740710061684658778382695605474048862015571095227969872677751248042093772165451837778409748787686241866528400547736084690811614549274641593774791706871586931592993818590104488047177534487551558408442249278313876669279130930710449287369026","osProfile":{"computerName":"jianyunt2"},"vmId":"c28b4948-f52e-4053-b5c8-6a294c509fbc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtr21z0sFXv427b0rPIM4Ed1Ars+F9DN2xEST48Ye1HPTnfapMuss7TQ0lWhvCFmFmhVPAQ8bwa+AN8IHRzMClPBwAkzooFlT/LV70ZvL4RQLyoPfbo0z2oWSHsc2wHoO748bcKrJ+1YjHK+qIvg3iZcE0nwTsfmb/Q3yez/0Y9TSOT+0SBgl+2ItAufQEGbm7xdOTelwbIJgDw9fEkkcsTfdNMxxVZH4G1vh/KvIlPO/wqbkaKkSz/LbySKvYDOBdtmSm3C7yBt7KjT02R/4Q2qYg5CXRJdurhV8FN2FaFQtvLxIqq4N8CLuLgykHKIT0ZiUU6+JuGhdt8q305EiXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-df3c8201-b62c-461d-bc35-a565b2744a7b","name":"release-df3c8201-b62c-461d-bc35-a565b2744a7b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"71260a4d-e3e4-42a1-8f74-999cff8cdfa5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181066880402391408262419080507628461686846343986860646393583977666867219852757627557543859363546843041926355273211270700565134171818457941586679970064759480999595766761578237035401352496543790643099567387708918122068294334770185745700969750399588696503382802462917545531895662291563172824986366384576089387475503270427686602884433901","osProfile":{"computerName":"jianyunt2"},"vmId":"92d1fdb0-5fb1-4097-8ed0-49c0fd56c13b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw3m4TlaZXIHqHMe5YvwcFwVS0naLx+nJhlxrnh16yrJK4Wa4ghIrRdZpp/KKgmP9oV7X63Dr4MkJ1ucm4PMe0sL5QQwTCsP4VhdkD84dNflypvhB/AhXkeQUkW2baLrkW2PN+K3ryldnw2c6OB+Ej0u/m4BNK8xlgysFLXRoeZkQ5pFHROZxF96IgeOHcsNdcCTBWwqXvl4Qdf1/fhuMl2KfHVRhxiyktmPy2bNrcmg4W1B2hNrB5mF/D4/YIrtYzhKsAb6Kh/32hi98Hu1nAjM4UleVUqCMV4dy55uCgLIuS3wPK10nSiPLYqjYKDJ3ym6/7CbqCOUD63dwcI7niwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9240dd39-a3eb-4911-a0e3-f5640635bfa4","name":"release-9240dd39-a3eb-4911-a0e3-f5640635bfa4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2437d865-505d-456d-85b5-07082c293db2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418754707272582270335415977709818750856997859790387356286662986807132714613332686106354814068178936767963920398452914172278671122652598989910956373255521666771559211926921702111818826618737076434551535583278181228954213358671290295359605985415081626045838874102734991068762374195357","osProfile":{"computerName":"jianyunt2"},"vmId":"82ba8a4e-c74e-4e41-bf26-1a6e3c58484f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqrGYUcYNsq+X1/cLwZD+JYFj4BaC1qQmKm2cvGAV9tO9STjRTTwhu6ZMFTV0hgCVuyNufa6CnvZ1kcsN4RRB96YwjqKSmR8jS1jqsiWNHLlnC/64TFVjl7xsBEGKvb5pWRkJynVeUuNLxlazLAH1zx2L1aEwyjdXCioQ/6U0qPapeK1jEHTiNuO5zu9gXip1irGu2HtzOw/KCvBCPAYE2qe87qb3pcwSV1gP3r1hZUZY3khfpaAqMjXNo+pWm5VukcHTdddLTlfepOAxL1e3lq1Ozb4dH0B5xhIf7f4T+h28xEk40Y2xZTHsgorRb1xYPHp0FMjI7+UXk4QzvqSaQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5d38deec-1329-41e2-bc33-1ffe7dadf93b","name":"release-5d38deec-1329-41e2-bc33-1ffe7dadf93b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e9677fa-1e49-46b0-982c-6ff588fcd2c4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895665215826018498125274389865241948350258527311549318685680768095182376661584297200400444943005655480371671648266269091539778195611816971186628581508144409211994751647587424198378042597989161922298371744894218128811235533822151130252771025413590189088036838866243845435154255609114652091456242340706228694785287279883374036","osProfile":{"computerName":"jianyunt2"},"vmId":"8ed597df-516d-4506-9bff-b5f0b5680f6e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApWrxZr3SVv0nGxwLtwEBITvAHtlkVi6K7Wq+rLYx8s5iLeDzyd5gM0od2Ow1Q29IhEhyN890SC8r7BtgMsFTqKNmgRDqKZ4W1fuAcYSF36YIOJRWL8fWwZDFHiUDWqlXUgbqZtyMjWR3QKaDAQLKIESCgxG71mQTaxgJLoecPiDzxiZx4vaNvIXhYMBudAQyIxgFfh9gTkWUUEhrW+76rPggDZ/zm7SerBvJ6WyU8A8YscPA0Ee4rNh6j4cnbgzznX7fnW98hpQDC8DMpxs65WtjeHBm+v0qihdc5W2zEE4UKYLhwoNJz7vUuXUScL48R9+U8N2cSBzV9D+nuuNGPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-50dc06fb-5909-4e9d-a88b-88fbe7b4a6b0","name":"release-50dc06fb-5909-4e9d-a88b-88fbe7b4a6b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"077eb6ac-44c7-4aa7-b877-4089494bd034","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41899795827905272455831622702122467936463326234758563215491649787479464202560418782750126638446871780180039885101672476497679212564939674874009170203539152043631752608607069274249156682233214892344925225187712072424172170581798849050429803112438708888569030562136262933681726994196467988209345237646848901893105522207114358125496020291479402749119227","osProfile":{"computerName":"jianyunt2"},"vmId":"643d7c95-7ede-4c9d-9871-ec29a636bab8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4B5HfL3AARqZUoqokJ8qKzJyVbLtuTo07sRw69DneGGJQ4rLRTCmohblpQrqbUwxO6MQI2J+y3631mFc7P8Jsqak+wvtPJFcTm2Rkz0pEOZ1hS+81UWLoGkha52Z5+l9KvOvxnXztW0LiTR1grOTZyCtfvekJlfg8F6rcNtpH5xpZvkzL9EHlg0Qhj8/ZsLUv6i/TsUaJmeI0SEqxiKS/snEUWV+YYTwft/T1RiAZih0+8vTvZtHeYiFV2rzAFNfATB+wSiCA/506OLRSnnxjP+KjuXvcHq8W3GsB/lssLr9E0n1dCQrqv2ZJNoq//WmulKOp6rsnhUUYpX63B4o4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b4e88040-64d9-4fa1-98bc-596dc58ff51c","name":"release-b4e88040-64d9-4fa1-98bc-596dc58ff51c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"97dcd48b-0266-4150-b34d-6231c5e6f2d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184805122938737221911828948307498280818831833563669485270503937322995185616742450264638455583551045177178248979732934233932961967967964285871439008141182563488639907189159995712101778860899525788192193269482685745220395360594510231360117538881618191633226341314085661235631875181526192190745520657516672905270648932746150511957573903","osProfile":{"computerName":"jianyunt2"},"vmId":"534bd696-128a-4839-8d86-9b56887c56f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs+/M4U3luuBrfHXQ/ujwlII/hmo/k2dl4m/NuKFUUd6GUC/2hQZCJP+Itj4TcALkiY/KglXiOWxNJLHk9eWPZQW3OJYU2Xilh5pmFi41IyEsOwoM0buhNA/uyx1khL1H595e3BNRgxel/8AbxkTqMK9k7YXQPLL92IWyZsmIq+QdBaQ1jbvIeNl6t7qcUuFpg82q0YVdpTI+84VdvE1jEpcWeOlGpPm/Vb1m/1DHwA+sVsGXMtpyd21rK3nlHVNxJLEKv5laqG5J/EYCjZ/nvxZsxXXDLsSpx8MEk8O4ybtBU9eTqDuWkQJeuZrL+JzqRlJHJ5UzKV5tLKGnRrN6MwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-831b328a-4528-4f61-addf-5d7a5144ba5c","name":"release-831b328a-4528-4f61-addf-5d7a5144ba5c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0291c93c-8e6f-46e8-827e-9c94811aab9c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41899802406367730397147048578678266954218859801611244513899835328695620542876872339832969252672876542443207863463834365378463497656598384475720996638132710977756129828347679217548563434744277405757780825772880720254195025137320866506988477889986171658669758889882849956418822413792887130113","osProfile":{"computerName":"jianyunt2"},"vmId":"5a1541bc-89a3-42aa-b7d3-e574d1f8efb4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwjmVsJ8GWWirI5JOVBLczEogbHMbyYjjXQ9j0HA1qPu8jiakhbtDIjA4PGhakjqUbIRReFn6ph0IC59zqpsViDSgVfAWnAX3LXHnnYccKSTpTbnkyMQ6hce6ZxEvHSDv2xqxnoqXLX3YLNfc6n64ZQZge2FBVzH+RIF10b74SjtzbS0Oc+ipJvtxS1nHXi1WvKr5AV6L6XCSV4TfSx9AEvq8CvC7v9uPd67aKUxC1VEfMTq2ZI9jAXy9UqvU6yx5IT+hUBOxtWzYlb4o3atlQPenDuKcsjMIBsSw2uE9FEYBbA2XLeW1w1ZtA6KTY2gvBqyH4gQQSFtfc7YLyUTtKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4a1b127d-1c68-42d4-b94f-65ed8ab58ed4","name":"release-4a1b127d-1c68-42d4-b94f-65ed8ab58ed4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c1370dd2-b765-42a5-ad6f-b5116b519e87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183445867486413191674388082649306115308276711219351639094685361568810188618672741301972483340276324681072233432847648840678388076694327935768847014208946843934958131694088340517651722548016643699578810419674592024867235239192418391096450885597772698145882755283131998448407573861375463225727450878751804083078707892845489839149767778442559819205382984310852212822","osProfile":{"computerName":"jianyunt2"},"vmId":"a3630ce3-16bc-4cf8-b00b-f20bc8d657f9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtfZoIGwKicX5sNDSsmJeko6jwvG5l0xtJdS+mD+2glwV260BsuGBkdRxGWTD7C8EW7zjmLyj7FPq+z8DshwP1irc6MsF6Hpa3d0rT15j7ZG8KhLFQzcXsm0Eb7/bcLAUW9UiUok4PG9LEWMFnPQ5GwuSPnMENxOGgjeOMInJO/Gx1DJCthH9+RgGKlPNJmHNpLKUtELYyA14YXfX+frjIaTas+CRc8Ix7hHpmnvUWAkcsf3mFLh/g4osAsMPgOaVUVzXe27ndFJDbCWVhjrPhL1Y1joIpSQqkzM4U+V7c1zdl6Zysfr5T4YmEdaGU1yGYsA6+zNU5aj5yuJNzKzLvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2d4bd85b-08f1-42b8-a33a-cbcab9089ddb","name":"release-2d4bd85b-08f1-42b8-a33a-cbcab9089ddb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3206c815-29a2-4231-8b15-21b85d995a76","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41882231550544415593959198279744511338742728037819674494363779112676198740893041808281365503234329185861210862109490484545680657037709780534212697967105181414651383066484651682273677644582044246809837746691097981297473186955383779844267881640468514763061686716417820380133840647738580293354471936644669429109731544683525261","osProfile":{"computerName":"jianyunt2"},"vmId":"51caf780-7c31-497d-8068-95edd05bb02c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsT7UwO080w13+YHbea/4awHttPNBAwA8cpsih7Hf5yPGp8omo6PH3jUxl/zTVn6Rpj/+F6asZQEqN6QX+UigYrWY7ABYsYHFLeEVwwsninSXWZBuKZfH81/4wgTqiBIN0KK1DLnUTBxry0QLE0JbkiIvtxNg+wdO6rxv9deUzoMDE+7f+jGx9wo6rKAQWWKoq6YChV8XMRem1lQmaKAD8OonDQof2kJwryakaWY7DgP8iPCXfQ538gbVjN/R3BKyT+FJTHT/ZlR18DdRhZkgjXCJgGplxsJ46sKIfzivUF4o5j5escmkycwJCcF8n+DNloZ6UcaYH53jjPZ/SeimrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-472d391c-e5b4-4c96-9b60-d45f0c08bf62","name":"release-472d391c-e5b4-4c96-9b60-d45f0c08bf62","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d5932fc9-f8dc-440e-ad96-111d49ba2e53","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41862147165661824066744623846904051814139746745412623346763296939940452315145183145201079771479799221027133378997174329967930384492882464462773768257895106661461469232727079618394360932845189754830824069315850041431366327832385782746699558284594531878682885012366074468211174084125237691340513582","osProfile":{"computerName":"jianyunt2"},"vmId":"074ea394-3739-4071-b77b-ec8dcfc536ae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApS08wZyGuyRNjWP8I1wWGDK5EDngCTVWK91/1RjS+zJ23MoOwXdz/yjtWe8cYUrIliLgbeLaGMAjxWImnZH3Lw45sXnQMgMoXDaPv6BfK4VQcreocyC7GTrrUd9iSVmRgSuvYOVbHPlWPXpS+X+lO40zSEOD4SP3bLNFSCf4TzPcLuyL+Ud1Ius7Z3IcAhRibyE+iozHCJ1lEWOtd78plxk0/But9eUMPnhcB2u7Ok78BkhpviMyxJvP/yagY3oIVIeUN0OZt1h7B2cZrpPmX1jPM9rF1eVmM+MREObPBgPxG1oDA1jPmFbJ/MLnXH7b1g9LfRnERbk/xiFKY+mp+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1019af7c-79a5-41af-802b-4bbee95585d6","name":"release-1019af7c-79a5-41af-802b-4bbee95585d6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b1a9d4e1-7b3f-4f11-afa8-5f4fcaf17d10","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41829277320265631247055745535786472062351307349426626860461051014241960666294263742026946124185077392423967211668129155301301329117283992109967624462878371607804877522237768575455137131787439179735055474219148632966425638187333883330929098063992935483750857750148451137122702639632918456179132944183402956607555184761866629467616957567936378306984838536613340492505370860110376474","osProfile":{"computerName":"jianyunt2"},"vmId":"7902b32a-0cc0-48cb-b716-972c5d26ae46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvqj6I+WuWEkiBItIk/gAQqf5YK6BXKkf7qGpy7q6WyGWmikhXTsvPxSYKpF5F+UUz4I7+B/9pT/y7mj+TklRLlWjYd3W++1LQP/kclfqOL9Tn+tibI+vNm5/f/Y+eCeXKbtJgufYb9mlusdenDm4ek13XMc85XTNLUB+CY/GbUmCLpIucDf8jXXZ6kL27gfKU4YIOWPktjcWcxbKV+aNpUK63FcVVrVZ61vLuQusffuhCjXuTKhy7fTPaKvR4AdnY0LB6khBQM8l9/4/vQA3DiUx4bweWu0UP9ytLJktuy4INuJAOAXNdpFkfkO9lj12DpPFVwvwAhORIHq3A3fmQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-640f6347-18c7-4686-9c10-7532455b456c","name":"release-640f6347-18c7-4686-9c10-7532455b456c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1e62fe3c-41d1-4be7-8507-fe096dfcf9b2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184687182686086478724210759184528788422300293350448965220614023136639753970129103653989138879119623604436516640654847479364936416266848700137442472813211938593578875835360468987408232629111151424888643309222939764350928949344082664119576493470185605385981247348904439552563879381442005575237577091857689602862376058","osProfile":{"computerName":"jianyunt2"},"vmId":"8c5d933a-cf34-4262-9243-ed52efabfea3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArg3/z+W3ZLDBEn4Lu1q9PAnIABj9jeHKskUtXsN4uPiDmRYBLabbc8om79DXJRzDP6dSgWO/U5srP3/qjxepGpVti2r370WnbqQ8foofz2Zjfu+CrKjBWY9VvbAqL89GWnNbrhl6fIx3Ndof044TH9vUuLdSiLMYt3FjwxSt+18tUau99e4rw6sdvjIRSPS2cO12vTHEjkENMgaexZCJi3yNN3Os29URoTdzfJJiUoFo87M3zsrHbRAzVXfcS3NolTbnjc9U+PU3c0run393wymqx0W0nmP2JaqstTAqr8oduq78ricj4eOYOAhw2DOxHeyhi79Q42jrH57OQeYVqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-07715f48-df5d-4f73-8342-1dab928f0f1b","name":"release-07715f48-df5d-4f73-8342-1dab928f0f1b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0cec42be-416a-4f71-bf88-6fe385fa0bdb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182221692983798162304643577172271334714375879042364738571784436174163068600286025878684776215047140744729149498724454666850580334882993761982437619724454678618271439227666947262938452778498577972389076780730625527837288433077198925313738270895570419308795056114001","osProfile":{"computerName":"jianyunt2"},"vmId":"cac49328-0ca3-4a1a-b2c9-830be1fa348b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApz/aO2tVeip/G4dTuvwnNhRjy2czhAYToNyVvKt7JQ1IxsFZOWfikHIm9a51NGaBJHtK0LU5qLMYg3PBF6k5BFVTeCF1D6H+QBo6+/0N+vLdFPLmvgLDoAx0keP04vwl+ClTezItTj0RGW7E5ny38AfRMP71635ge9iUMyp38cSeGy8rf3qDOw+4Mw4pbiJNQ9YMSAv80Db7Xmgfk0IL6+dSm+vHUk2aNSyUG4kuIv4XoPTRI8b2EAp/OVWCxaGVGbloqBxyuhRnW0K71df1jdDPlMP0a55TEUK2cqsiOo9gPidwfvAQCARQukwpweHc6/xpAkOWR2A0mUlxL4Q8XQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9d84a407-53f8-407f-9f5e-9a956ec23351","name":"release-9d84a407-53f8-407f-9f5e-9a956ec23351","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"168af023-3775-4a8d-a61b-45446d599da1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41818039817834413917564080971025093553052186684314690651579156249083563972928998465244184673452504306296899121700542364677625916653709944141864173551159854036473025730435691733446557689224418344183596109927991025399156591723824939531823938316563826097144469142286384966096735976567972437399764139305345560866769760368052310","osProfile":{"computerName":"jianyunt2"},"vmId":"60aa63c8-9b36-4112-95b1-4095ca2db1f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwktJB6fRBn66/Ls9T4dZqjgl1B3PDzVyrzVvULpdcnJBy67gIE6UG+2IHg+7uCkEWNScODRh1enWF8CU06rS0byI3HSH2Jo1LkhBugiPk9R/9AMtrnOe5DFuAs8OVIA7kU+7rIFkEwodmsCP3g5v6FlKA5/TWRgIc8MFoFQ3iksIVZYrB6mZB/xCP+EDBYMHpSPAorVvanHEB4SbK6tYvHokC19I76y+4t1IE8AbzG/plKia41fMnSL89O//7M9Wkb3ovVyc3sbM37XIzpzKIXnTJegVrfmVNr4kd1WmkysGfj+36UcVWYwGGrtiTgILzMr9VgzQJzKNzNcSKnefiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f3d1cad7-7525-444e-af6f-8018356346c4","name":"release-f3d1cad7-7525-444e-af6f-8018356346c4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"27c1aca1-fff9-4489-b3f6-b39247ffcaa2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41812037083713553767209228285452070738936934886724415781758748508417512455675336763212603257851307464737492857983232472141879489182872711485233541490308742101349370125652917727530199091506837338624203850666663650960322298909276785961970482547984944346791974963047933544591348034536514382816646599","osProfile":{"computerName":"jianyunt2"},"vmId":"e2d03d4b-4f1a-4636-bc39-13fb8e0e16a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxVPvj9jNbVQ/wCkldvQ1ab6yRQzIm7kolJbrpGEEsqplR115j/zXB9KlVdxxj3qnbFFx/jJbMddiAQIpEsdaNZVn+AYhr1f0l7eJ/JvDjVQEz08aUZfJuZ8ernJ12MP8bVUorSUjxuKJHV5KN5QSpDP34VyjFsUdavdxy6T5UB16eC/d9cUKVcyO5+8BIyyXRNZVkRiRU6Q4Gfx24LOhxySDqj7oUhk7SUfzHBdd/cpEBqvS82Q7OYK+2h80+oYpO30BxPesH51L/ktozYFok6uTmL0VqjCvxt0WinBWSlnOo/xF9DB8/4MOH5Pr8F2IC79c52RWaUMsCzxaC/zEGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5394e14b-e1e8-4e26-a83e-e5b6d32a83a7","name":"release-5394e14b-e1e8-4e26-a83e-e5b6d32a83a7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5a580e20-9305-4afe-8677-3c3ff166ed06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418901374043449594447134334181228328447868778649273497422455733131185671147615407228883587276553111949923020219504262569623608879736718929808544624484134780496294746335383244852784198270126553946642549625111747046713372615237288544057550094786058993667672175153413989950146829978448569453","osProfile":{"computerName":"jianyunt2"},"vmId":"7a470efe-6968-4fb2-a0b8-3cd6ad9ad167","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvixU7bk4GS4W3aHihdbJCWZcER9VcahFWm4s79pcWB67oGSNPdsNiPbcYxYI6xN6u5mQx0ck5s3+cluGL9M09JPXkCoWvfVSl1U0f5hrkT8cT/tq6U9KO5lFP3ss1vwZBPy5+QLnzOWfU9ZFlgjeWWI4AFOUqbC+SAVnxKfkt27GCpb5Viuz3MzxJnXtgpshpTv0plZEk6X1+uxx4Zxt014TIG61Q4KrfkkjhzGoZw9vIvV9UpoFBCYuXYkuUjtLOj6IP/iYze5uv5UDEpSdZphbAlfVNFyt6QuvLnv0+W7v+6i0l+/gDaRhQTtpW7WgEXvb5tazz8e1mG1dbpN3zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0ebdbab0-08f5-4d18-91bf-8a08084af776","name":"release-0ebdbab0-08f5-4d18-91bf-8a08084af776","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1493b0b5-5b7e-42ee-b954-ff54dd5bc5b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418506822586004958320877739110538866734583111894987323892794688345529201365894232425913991749197991916115871219204249713878607639635277182358282395387653383716242167959041225425434297238571623900113841566657745720787582615407828038577271216660501736728291509411403149469895017794483853406350","osProfile":{"computerName":"jianyunt2"},"vmId":"154ec2db-4517-4e1f-8582-6da9c6983752","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAry23VDdQIIbyYlaeeHZ9flj8VmTV7+2KBOMHJMb1+UbX2tXYtAE64sfr+/fc2T/rVf1Fd/7lQO6x5oV3JszvFc+6EjMCyDURNrrFn+j6wbZTO3KhcsDFpxPlPjHKXVecOkCNE/orlgrKLDDAFKuoLJu1O+AUr2JdoUOdAW+5SXDQ5vv+v2LzvDXZ+vjPR1UgNKLpe+tWZ+v71IyDygY1JiVCEPwmKHbVKAxjaAth52hf1Qc0MnWo5zGOWefMMzTUv+4MxJRraP/Rb/Q3UPmAVHRpDkZ/U3sAkwUsSR9SJaW+Wj9S2hw14XkYIjjinsNIeZSGXO53cMiwdyu/eE+WCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-44a324b4-adb0-4a35-8f24-41c084d4a547","name":"release-44a324b4-adb0-4a35-8f24-41c084d4a547","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"01af2580-bffd-4e61-bfc0-6563cfff61f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418143413489642116328928236601733919501689843887817280860127504667299750014574610801477029206649494183298500965468165914575319567811425576329894427462455352897203352673748991842706959066443760860509197400397374079890171369515943916195914012388498933085525551020354993253988195941320696678935281987379585814950087959353523232129862606","osProfile":{"computerName":"jianyunt2"},"vmId":"22f8b507-29f2-4556-b27f-9d6d3f17c59b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1f5Ihairgdk7D5+8WskeIWbgYWoz7bvbNiJdT6lMrjO9JaGuQC+wCNH7gQkm/33+QQMxUhL5ztyiOlBVx1RbLw8Q3scTNC8FQTjx1E8MRTQj693tr6sXfJa+NnKMu7e3REVtuCrUTgXfmo0zW+NhCFabKt0QDvonsTVP/Ug+Nsukfsu5VDwEgsPtcyKssxgn9lvvBngBLCGCrhw15OrHOn6do2E4KPduD4FUBh1LcpUOqJ9ZbOQF2am3ZdL1x+5lTDiNkPqU3d2MUFejVGh0fi2tKO+FM2SRdYojcsqZtb3dzO8SrqlOFVcIN8vJIpBc2bptSs38SDqOjXNlHN16owIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0377f9f2-a0a8-45db-bd9e-c9a65e9f6dd3","name":"release-0377f9f2-a0a8-45db-bd9e-c9a65e9f6dd3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6f6407c9-09b2-463c-a1cf-d3f5f273bd4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188859258137026992498014403238152999484912863222144499320561269556444025569684782330671950143811329288232114226379357725136867450854065118412177082099155110893647340562211087585878193679172221780324842607277516190886990791419648249627444047556122487189713506882107971326958867633159282323278104944766322485193586998","osProfile":{"computerName":"jianyunt2"},"vmId":"0b316dcb-825d-4d53-8f17-58fb451aae98","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6rDB+dgIHlV+GyyMOKwXXAydXkb4w7/egxh3FhqqMp0uAqSjklIgXlL7kdMBTfMVuCWHT7ic1e8k0cGQYSVk2EtWrHxDoedBSG4Cw40lrwgpsxJWUWInZKKZUj72hAFXxEC4YLMy42aCo1WdAFjViz//xKevKTavJ7Ag/s1tX4O1b6C8/ZunvwOGXqlwt9z6VmGfkreJ07fjK0+CNryJLClQFXq8G1ZUiB+8bLiSBQqprTfvaktO8C6VraaAN+hztxeAWadEigK7Ma/MbvQ9B7rSvdj8n4RLhsJ3Vfl5vz6kDv7HR7kZknLB3ZPAyRgNSMC2yj6OzIp/+UY7ylJaRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3768956e-8706-4279-ac56-61b6d64711fd","name":"release-3768956e-8706-4279-ac56-61b6d64711fd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"838f577c-79c9-4167-9c46-bd0b9c983075","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418640727957952914446734172175482622728619846671115905565349065769605612881380254549435476467974545992097721393991501541870994147971402054756441709842655410271220867926602269716468570371359876866589485636395488867756139137560445196952740502805923278352983994814251457659395620084185665528933754826753204733885161675927464972958970246246846262321708346265511519746712184563693812624014235141","osProfile":{"computerName":"jianyunt2"},"vmId":"828d3548-3945-41fb-ad23-c84d7c099cc0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt0/vwrebH2PSb33TEM8p4hGjJ6dTLeloxvBzb7CLVutZjX2oFOZkG136OZwWsx/RceRrWyEqpkObANV0VzrCnS2v1xNhx3ekvgN/w+EDrGNM9GnNpXx649khvzgFyb1Qulwe9iZix77hsk4kv0bpchvMnpaVR8BBuEKdL0gltLQz2D9WIDLaP9fkVv9ltj0kfHmt2gkue32ImJtj3flhfFuWcIGYC5rwvO+I46CGvXyrNZde+xUV5PAoQ33zW/JEpfXzAAMc4lILxM0u+DrLWN+AiK404J5to4+Nb7ReLnevARq3jn0v9Zz/qNKyqM7xW6ZsRQRbZJFmnsl/4omtaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-70e46781-2dc2-457c-9406-81b08f427b62","name":"release-70e46781-2dc2-457c-9406-81b08f427b62","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f86416f8-c514-4403-a151-19fbc7e44af1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41868691988641296664688725325142768355530274990852568222921419685075353434183581817318847435147946578558999209686684274388306520832105970897339089226670183313761793916634655057276473965370383628494984768467112457853013504159244321649194043270430694938438160285435135410949227825664873245897534","osProfile":{"computerName":"jianyunt2"},"vmId":"e2d9ec84-0726-4dcf-9a15-c024b5051b5b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq6IylSPsMfABIYFDwtqzBc064MFXn+0G1WjHlcjpRYg83naKw3U4zEcHAGIcWc/Aqc1CcMa7p9wCZpRt+HZqRE1lE7yugrAV/pjuhybpaYipnC4XtSZ2T2abH/qrMDsVhyt1JZSyvSF4MpGRhUCOLvozdn2g/TAGpGaJ3hSXvZ+Syi1eGiaCF03R/NrbwQeEgp/xG/E2Z6mLTJQAezyFNpAtBIVthu406DRM851kmL8pSobnhCxh+rZrZ9II88Nx3RJBfov2y0uwpyL9+fu3uedE16PzgnX7hhWQzEivZISR2BFUi43WgB1dy4SPXMuZcpdiITDPvMRbEDE843xE7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-544ba117-21f8-4b16-a4ce-625fdca0f443","name":"release-544ba117-21f8-4b16-a4ce-625fdca0f443","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5142b1f8-0e6d-4392-bf2b-d873fc9880c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41846951142386073138206717189417877163486637830031092702124143864739264359683793793794913431666293944544830215088361796019896278898878303362718366094010926129042067196116491650758271139778570168317484812025421735413786476348246082382980857522983602802355401393844839437250167714745209816619785868762926651995283326868873056470884283358458616162638025551552755487797753943456","osProfile":{"computerName":"jianyunt2"},"vmId":"6a32b148-c498-41d4-a684-abc7f03a6a8d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4oTLgY9Oj+S3FH30kixUJTyzU83TDEZC58ubLKtzF8r381H91mZShwlj94bh/tDDhHqdnSz1ZiMWyyDoqLAmbRz5dp9xJjvqXfgmT/2/X+jGddCAvIy7h2mB9j89Fnf6d6RnbrEMn0LQ9qOPbQiykoDgnDJyd8n9k4tHvOfFxZF2MY2kx7y41C/Lb/8D2UzJBSxbYcU4I2iW2WiEa2d1ukrrgTIJ1oBX0gfj3Dc3AYI3mDqXBSRNH4nQH/e+XyfXu5y7F7oc7LLWzX21XQiedUr+5DHl3fd/naMHhS+BqkewqAsAPfR82qtd4O+096CevTDmn1dmZaIKu4m9vUUPmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b3c271ca-824c-4af7-b69b-87f0d1fb6981","name":"release-b3c271ca-824c-4af7-b69b-87f0d1fb6981","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ba057103-809b-428f-841d-365e4734657a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41864365958405759249189329832085173249268360376935502717523341111579085424290448319538495689234884969871135142041550593464791970921885374893977697029649698246551372285602476748553453251581605260284739953637078322862579472608177981459536658836838519523577344418059676876656948999265286892767704889894831863286024477127199885025966022096884200998397820417520194676860706738222843962192227785","osProfile":{"computerName":"jianyunt2"},"vmId":"3311e304-bef6-4d4c-aaf7-10f87511aaea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu9nI21HzgU9i2krnRoQYWGuu5Oltmj4b/sJahJH688/2uzu2y7SGYuFjUpDAm5NN8ZtntWBZYHs8wFB1qskY/M5TAftUfW817hI38auAGlNKTOYHV+L/6ujfnjj4Dgevi5ktAh+S8eoJJbhD7qPTuqUnE1k2kC5F/aa0VKJRnRV/LOCEQbp4xZryfKVEFJGB64IzagM5zh9VmAKAj+0Wf8rSzLoTOPZvKt2RSqfry0wHZTO9CXb0iY1ikHLty3jITn2K3ZvgSBwrV7yq+wXWawdRXzTrLw2n5wBXLlMW+Y3D6dm8eOtKqm7wBte6Eu3u4d/2z2eh/GuXm/o0OHvMLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-21e62d20-be7d-4cd8-9902-58ee2d51695a","name":"release-21e62d20-be7d-4cd8-9902-58ee2d51695a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3cb5fac2-bf61-4bbf-a10b-c0f61432a76f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41874897370762457634873330776983838586461209963275719589957731974774059346824369843915804122617302364268649295720126716639075631947769327898814195464461633510631923692126165923707077016007991062891845896776226205503347531231460148865739902933216226783115612167009650904314358577251285922284528933302361357589207385126593894259","osProfile":{"computerName":"jianyunt2"},"vmId":"f59a7ea7-d46a-4ae8-8c44-da83611e7b45","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyWneR+cS3kpZN5QA1Yn/R0rruPIzDF3VUc+sgLkSMRA+rKvTdCG8gfe1MUYTjRbvExeK9gFWpKV1t7IzJHZfiAF9gCCukKmq00gedDtU3f1Uq6UUlh31PYPT1U5y0km4Ym/3CfT+xp0yqs2Nqv+zzbQjmqU99PD8jhrRuJhLnQX1FBeDvXwYnurKr6AU76a79cpHK896c7G4D1O0cZSQjSgZ+6gdv7giSnh7AsV+mQi9brf0WNFyztsXxQXhsD7iPtPm/+A5PPJyawgyTv36qtvu7t5iGn2uI8eNJeoIhLWSKkqIZTURzCPq+5+HeWj37K33T9jE8twCkHFYNvBEqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a36a9cef-c8da-4079-ae3c-a19590adc195","name":"release-a36a9cef-c8da-4079-ae3c-a19590adc195","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2c4ca922-98e6-4e44-90ea-404f99b0728e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418418013337310829570446508523206880348285145783109082729919670323782197631875128020873225796711419193996182895713839798543698984964445605761202539560759996075883854748051158581029636640785331512141912535503810245694502351196008333522284610453188904963037961170334324614357145274507175656161827652038016814010118567684628799544","osProfile":{"computerName":"jianyunt2"},"vmId":"aa4f0593-625c-45c9-b572-c0342a12e88f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnsOqw44sflV7GgSgdg6sFupSPeO3oDAru74RwHQxDvmhVnZ/MOoX460DLbVuS0TP03QrDTFZEDhYauwwZz7SwqhEPxXzD6dG/7x2adXtko/Gqy9uBSBZ6lb8sfX1A5DqhllFFEPl7XGmnYOdaCm+4WTiFE5kCOi7VqTloeq650P7zpHHIFTxCFeQkSykX1X0d7ZXS7Bhm1ydSXNjqWzUQ8F6T/JuKYtoREB9GAB2f6cryapQk/9E/4KutqVikRQXNR0eElmx3F9psvDt6L3QsXGP5BdPrjnfthqjcGjWCJeTqKq3sumvuufiGsqvTBUUhIzjS0Uuhwov3xMrzrEHxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2d4e8b71-5b18-40c5-a923-de1a5562109c","name":"release-2d4e8b71-5b18-40c5-a923-de1a5562109c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7cdfb4ae-964a-448c-9a76-ba3e36ca4f4b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41842132607191751543700918183721844124387166317857934321709352234496957147667172498181299935466421233657103754489233026479947403691720433705565433919328465583836247502765290327303598147815859543819281379476340854403591924364745241808367834043434057433323149272946249872562523206855487479513539572078974147889645511635537327","osProfile":{"computerName":"jianyunt2"},"vmId":"fe1d8724-d45d-42a7-83d3-0c8b144ce3be","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2qu6SnLfQMrTZCcYUlgQU0MHlZwXSBXyKOBFavSWtimOOLD4g+xTsvAsdI7c3laAWI3GpQS/URWYe6T06c+cS94JU90cJF86R3ZRpYJEiWTs83w0qW9NaOqNrwoveA+2IaLDcv82dxLcVEyrDFw7gyV9xEMIlf6XIS46tXxsyeMkrjEW20E6m06uK2f1hsrc0Au6+S4Do1lYSsSv+yge2t1qlxjLH5LaeZfYEafJ40dKCbhGCsu7dNtrQ9lAPXTaVVntdwEx8Ku4xVXYxVmXm5s/qvJsep6iymW52/25OOa+BjKMhahL+aM51/2tqkadhD7IIhreT4vga35WYuLPBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c302091f-6d5a-40d7-be41-aa5d6a665d29","name":"release-c302091f-6d5a-40d7-be41-aa5d6a665d29","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"791d352b-27ee-460b-989d-9f85d059fdc1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845597741313293921523941814437007305927787339211301670099554673997192860545681706966458673272795630285199929642324592062213504555122699488219605586125095416279913027307746933662928373528906641797594148385608822139026832188785717321433827952806377886266242908618138264438469834952097824473985206467073042683987443679310591375936459767421839832842455961124","osProfile":{"computerName":"jianyunt2"},"vmId":"b0d7694a-dd0c-4c73-bb66-d053eda2bd47","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx+TaVj6RuaQNZtUmG7r8Qx4duV7rlj4E7T89RpIX/LN/Gj9n3bdd4vbThfzLbowN88oPvAtxG/V6ZYj+NMBlZmGkxmh+K67BzCoHaRM2NxPyE0o/gncmiI6vDB41TOU6e63lSMVgSdClPniZbwMJ6C7lmBVpOJV2aUlq3CSjG5vcIBxqv/q90Mf+Xkkv3rhG2hTfdT8jC8MAt4M+pGGHdJlfP/BE/Az/4RecKoW9TW1PgijPSCuDDzlK80jsun2rPLEUnoJ5J8dGeSXcIALFpqfSuPP5umvPyZrDuJNyWe2/x+yo6HDR4R79y4Chw0FpdL/YFKcoNvHwJJ1AoYUv7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-23d2940b-8bac-459a-8299-06a2f6cad0b8","name":"release-23d2940b-8bac-459a-8299-06a2f6cad0b8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fca7d1d7-7dc4-4089-9f21-2b0fff8a7940","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418737137039152278421013034911458516226152993259448616796413725437779384813123018009703971783493839858622311105849489402253712630162953514736594484506045744023161945196552913546125523959781982527356890746537431428842832063846395572026058631811559962410904827917404768576288155299548335436458485734876813822929014999243243704289600143571632739872287","osProfile":{"computerName":"jianyunt2"},"vmId":"4496d54f-7712-4831-98c8-a76a58e5479e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr3Nkw0Y38TmtkCx5cZ2ARc4QFKcYOXsatsX7dftqAZBS5GnK5DGT4FgL6O5QxNBZeDNZ2tG7z7P+UkBkxSfm6pnUN6nsZdeLHZDnSCs+AvK14uvguuU7v9unulYjCwX04jsnoxSUSff+0YJIZpszZH9nL4nFuGeVDe+Pi46Invy1vmlI+MqPqe+RL0LKFTpDBWQsRFSuXUOlfjuzUlLKFJ36B4BCduI6TMjQGkZws2gkfnqCVfYcgNeercOXuoUrxpO6Zmu4C9kp2zNMvHCtSB+6ORDuO2Dw8JvIjPTjsBQT1dRx3sLJFrQMfVd30mVqUeS9OrPVISR8TZN5S0Jt5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-36a8e1cb-b70e-4798-9480-9a92247cc1be","name":"release-36a8e1cb-b70e-4798-9480-9a92247cc1be","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"42b4b898-7489-45ad-8eb9-688f5ff31ddc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41894017993293262629826406591940889805994194149355959634459874527413221401953121372362933523678206111927793860654566465571047176101738136933210140033406664790204887997335886164384557862367379333225502838633957088890872542219633395388262742115742852076314697145499764531432204012882751147819298253820083923981698682696777656467146891834723060728215915104","osProfile":{"computerName":"jianyunt2"},"vmId":"541a4e4b-82d0-41a0-bcfd-a94663595fb8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAys0+sHys9f78arQnPummXFU/QDzlznVQGPr9oqVFGSaLehygMFEKwv92somhNYyM+Vq1qbH2aclPoGLAABs1FDlof4KJUNc1soHvbTjU753TY1Je3Slnr/baM7Q3Lte07sNvBcUShSB8FxyOMf06SSwlVXVn50oV7lusG5ZOX4kxDk8oYRJ3ZAFaqph4PAl5lMraelNWdOMnYFbaI0BB39BXHDalYaxFUZd48KEHjaHPuJ0AU39b6MaFLKnjy//m+sUNy0FrWHZKQGQKLWJmz8GLvhcTt/jJQv3oOCxWIFyC4vXyN7XGWaJG/lMp/ZckiykXNRiZJZhHE4G7+5NXJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-076c852a-ac4c-4270-ba85-b5ad73658619","name":"release-076c852a-ac4c-4270-ba85-b5ad73658619","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"44d7f429-092b-4b56-a41b-1f449171ad9f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828073514477563118010178859856889019629409023904938770529906683983259969220240936109783557510903581531483826051790916811997737576397685299628046301841753829939664883650375631494700689546382160395765746908303245677769264569921167639372326612901222972300154187275444216463931423385904577053688533148223800459844411216522420988827314760016415227444431757","osProfile":{"computerName":"jianyunt2"},"vmId":"ffea1de5-9144-4b62-b14c-2d3d1372cfab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA13OjcPGwNMSaAWzpSo9LfXeFcHZqv72hORDPGWy5MUyI5EEpIv8rK5wgZKYvODAZEdBOzGidVqrOKdmiL8AwhzWnvdca8DBLHKf7mCABctDgJc0R8N24z1jOFNH4Zw4J3WOxh5u3xB68t5JZTmnClrIOA5ffMk6toF//iQkFGzeminfzpVLswIvTevS8cs2zEEIWR+JKG0HMcK/S8Z7C/EwbXpw9gOQxda2kT9I++QmF0YnE3tlJqHEU7ZJC30AD6njWJIImtShXoXPtuDmbE9sBRl7XqmNZB+KGn0ya9JJjNt1CorYIsvjlnc2gu18n2ptTZYIk+2BCLsV1DpT1UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bdbd19fc-5026-4b00-8033-c9893530d923","name":"release-bdbd19fc-5026-4b00-8033-c9893530d923","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d88f87c3-3d13-4b4e-b214-7c27dd5b2eb5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41840921016454143085107940021704940394444029568958454586576142457196564654060603943446393763118991356170359941418313622840394979682739967633861728384676893947443807636656127383836750376047535236981558565701035976548712192556478107940528266477154395788192012624146313884886915557554208430363348569786998321362618","osProfile":{"computerName":"jianyunt2"},"vmId":"1df2a01a-94aa-4a3f-a797-8c593a7c53b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuDGh7anVxrvztB4GQHyQIRCzTWWeUzJNIYjmuWMjvdrve1Ec5sXVO75DZ5N8Fdmv13ty9vkult9smkCS1mkg32AbxK6C1KbKwkPFos2cCodrFA8cTtlTcMxdRoBd+gUR056RbX1ZW1yGa387gTHo9Jt3wQK1Xk5YzNozHhdyYu3vJ658qKjlP4Ef4oUmhsPiFBYFqwPbZuSKUaF+11+8tM0DlACfV+lIFqrDgoJChFykLYTGSuxhYFLvMiCH8j8oOEFyWDr1QWFLXk9gL6rihPBvBxyTZuA7eQH49vjMeSbmJK72hkklDnPsiFJwICGguGx5552UNdwYDYats5t7rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a09cf376-e999-4f39-87a2-8640c1af07dd","name":"release-a09cf376-e999-4f39-87a2-8640c1af07dd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"54b6a4bd-1944-4af5-9582-e76dd7d43dda","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189081717488755640563375756922265259316891692906349468714454091002603256112221110130173354803877549686725758177956494738255919842457917706680144044963678879716118800837410079499140314502942935028865298618562088004470049498602575018831121414460702454677206745224808272838809721644572515650188776267576343689863092133996811372265","osProfile":{"computerName":"jianyunt2"},"vmId":"6a15743e-92c8-4265-8feb-0dc3fa0563ab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqP/FgXQ3m7GiyNfZ0C8jqDeUjjeds/EHhC8Wf9gilRJK7+3bCHQIi433Vi/RBEmlLH3ERuGBe4e4Ug05deqpA303KeYJ65rYxcsu501qOITULrRNUSLELNnnWef58lgsxtAI80mA3o/1HPHElBwxihI8DG+UnDqwhg9C6Hu/BRT1FjOxAM/9DNlhzXxab9rIsJ+JMLDxxGGi7p7libGXdVbgTaEk+eNYWkX4+q9JfdNLMIfnIFmP2ebinqvPLCb1WOgGn8vUEWDJYVewJRwFGRhVnRIMfrUi+Kd/pogn78rI+AQehHUyFlOTxIOkEjRDz/am9+w7CawnBlxb2ClSuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8f8cdd42-9073-4e16-a6e8-6d8020aeea20","name":"release-8f8cdd42-9073-4e16-a6e8-6d8020aeea20","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"def3ec2e-0719-497a-98da-ae54addb94ab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181366308578407196512527289084371550254058333093033720294783428191765296449298621320610503587802455894726521411384650334783591089941636915980744014786092960653656903175863256752361987104263403041133965315054032462808601398432664378441358830438641621920401878886400565213315343","osProfile":{"computerName":"jianyunt2"},"vmId":"6aa0abcb-6aa2-40b8-a550-54537700520c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn/AirauZEjSFlU/N6x9/7qGoNaEjnNFdSVGYPVoj9JjTu53WAH5Eyh9Um/XPuU0zbjFa1N15zi6axE16109M6OmnD8JmKSJnOF9CwihBDRCP4QVro3PLRad2Al2HiH1exYya6pVP3Vkzg1spSL6j8OHsD0cMeeqXN5j79vQtmC8u8ZUKnIHZ4D5jZjmFdX5EB74RxyCB4HKvDBx6jMFtMc967/7bELTJKI3rBsTQOfAM1r2cF545SVCTYJxtCKnqMselnRSJacaSFTsXATnHZPMTtSvoIG7jP1DnOZbsBQy+PP+v81krmGtLtOFA8FggIxzUJ9JTZHmJOPfKMlTvAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2c1fe1b2-9f8b-4c50-9623-e5afc6e9cc75","name":"release-2c1fe1b2-9f8b-4c50-9623-e5afc6e9cc75","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6498ce1e-676a-4430-83dd-e6620250a47c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184207451986107279902633056405341408316583217409997338517429717460211912563750408996964831217979428587106793169046535032925448332326591612160144266642862660248645176777606756682277791796061121762225199772575168670344048174893767387714844159274657773408346614592659155147604826667626223","osProfile":{"computerName":"jianyunt2"},"vmId":"dfefaf84-73e1-4f3e-997b-a3b583cb2418","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxsLgnOJdstR2Knsfi681AiPcFf0C5+fUIn7hvW7cPo2qjiVXyB0Uk3GR4A/xmvahZu5cVIInK+IUbTiQ9DlGh0LA7OREyGhlpPpJa5cWvJh8oOkYslFiwOFl3fC9yd4Re6dOXN92fE8vGsPqoP0TcHEvMKNa3wr1u2FtC5hWh5cCet4pqqAefyLhPBl053Lg+XxqiYhvnT8khWpKVp3gq/FjZUiYzrlIKPLJhKUrLtusSkbmufrgmBZafHT18jmlrzev4L8Lsgx2cHMYM0To/C2Lst2ZmlRjayOHudcheWxPUjrF6hRwD8JhrN91oLA6I1H7jQZ8CEdnwLIp5Jk4zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fcbee0ff-df8c-4075-b6fc-1b9479df6893","name":"release-fcbee0ff-df8c-4075-b6fc-1b9479df6893","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d05d6d3c-fe3f-45a7-868d-c6d18487047a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41818543567680735826633753901679237104896545098073120251090148063224141113800117942522744810858593983675917293226325447279885583527993575673374349628871091413245647560579660248265586474263497061778425767733093647708878980849353706225328101008182421638504045866939173340311985745909670730819998519767975110641399575409","osProfile":{"computerName":"jianyunt2"},"vmId":"d1ce1ec3-56e9-4890-9096-82fe71f24db9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsQMEoCzWXevzLTxX+ax1nn20DgBKQ71DAwZevVdJ0It/8jLhyY05PxiC4Xt2xdVjhVh8gkcqH/v++MpfRNyaGG1TbHAb39JJ3aWSBZyV3BEijI+KAa72Wis3fewCWRWc/fetdgNLZFlac1mg6VuVpQq0LT0i2ActrP0usjSVHoYCn/wKAfId4VfczmY5L7eUUSFJU9zCMa2ayZ2bUIbI6iQhmGoO6DOnRHqx0+1Wg50TcS9a9XUI1Tg9yyhjUswwPgqp4ayTmv04Jk+l204rytETz0Qs/jdoW9cz+YUTkjsKamoNvHgyk2WPVmjhlTKWsvIv89nJpBHn7vsIQ6SGvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e9ee9776-b07d-4fdd-8d63-70dca192d60b","name":"release-e9ee9776-b07d-4fdd-8d63-70dca192d60b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5b67ceff-1612-424d-9e5d-81f497514cab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188259140035674228217111191519298829966771452222185688766250139455127981510058837683371708863299627424936122874096986031179114469406337168379936587579880732331453992714196722834157435344126701396835343145645146104338565636670662944267761248170590496895562231414790","osProfile":{"computerName":"jianyunt2"},"vmId":"bb769b13-71a3-4b1b-83b7-6cf451295ad2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvuBoinMhAq/x6D97G2imqxMgM0GBzNAN9ybns9X7BoB7ywosRBv8zjwgWSpRmOC3S6UHqtYzccZkOY1lAphpJUm+V99WPOJAHZPYmw0rEGiAWoiONo4FgNPI0JG2Q8Y7aXsS6J9VSUkQXcBdKO7ssHE17NdkqpyNWR8CQjNSglvYei4+pNdrYqBDZwCadVqkynef3eWytdu7JJgGZAwpQ57YVeFUBiqPjNGRZMReoHP9zhMjHA+Ck62tUsHrv298VjkUVFPM9OhLMu05XukdHDIw5UIVftzmZXE5i3G4iHCnqBw/12M58jRhnYXBVgIrtb2S+J/Tp0h+vWPq05FgAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-010a2d27-a37f-438d-936f-5442b80040ea","name":"release-010a2d27-a37f-438d-936f-5442b80040ea","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d2762956-e4ee-49a4-bddb-47eda7d0e0f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418863827953464477598419128935445848644297551621248652769889567718080876095762555696526163296510623871229418543881448450308983676648767610418305304525135758962033470829147388322353377346811728552555217029746704256947322081700366250836526472437636035290115531985981873319163137063951461258999983154","osProfile":{"computerName":"jianyunt2"},"vmId":"fbf98171-a8c4-44c1-b4f8-281a63ddff8b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwCj4wqP6yIyS5bTyoaCPSJxciv6uTCWxMP+JCTIEPIDRFuG4TovTdt+WpW+jDy4l3hYHwSsLo7RaAGAuw+6I6yXbr9W6PLhOFDlwI+PlXfuQuVX5cU9eyWSYuLomic40yHHnXMD0H2pdbW2jhDxwS6kGGkNs7hq5XtMaBeem/xl3r+RnPDHwYQyggxbYWVzFWlqmyAcNHg6SW4S9PFdNneWE567AA5DVmyLElWF35m+DevOumhc/YE0oeEq8R4Eytp/Q+wlfqyfZe3bkJ46SiG2Z1V4gAFi2A/4YX3Q5bTP08LkadQNu65C0IUqpGqcUoA1DdLmHQrXZ/iiKKsLLVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-04df20d0-b26e-48aa-bb10-bfa122c72923","name":"release-04df20d0-b26e-48aa-bb10-bfa122c72923","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0452eeec-8056-4587-88c0-728cc82d0d9f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418436716633571104449094898588266423692991579928116128138535707523037848231356024274232329298141589298182496019038707493087637355433860327117275427248204406687221454300060121277936931935078850027805293611430259851160890849598334961253807199983624349842328142188816015353928411825050605840612264302580133431631165123","osProfile":{"computerName":"jianyunt2"},"vmId":"3b56a4dc-4411-4546-baa8-4a7cc6eafddb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0S9+/c6s/bBpd8nLBDdHPJdO+teYIKQ/Mr5zvl6Um1FJgXKYeChIoGC2OK6Staqu6e8pp4BC/uVv7c9J1tn49l7hxSvvMVg2+ySRkgZUFtszpXK26xLDRbNlvrQ7ImK/C2syZ5obrCjjJ5I4tahSFoWoXhoTpCLCuPFPVPk5q/DdBLG1LA/a0ivjZ2Mb2rjzXUgVvJbAvMGqSGWnV70geplNkT97jA/NPlbRXkSEWy+4tt2625voIXy9lD4O+4Q79+Liy64dnarWfw8wWiXmKm4TvIHwq6Uxl/IDs4yijfUJ3CAOvo9Rhrajns7Pn523gTE8IbDNDisJfqdwf+jP4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a3978813-af26-492f-a1a8-4daf8b755f07","name":"release-a3978813-af26-492f-a1a8-4daf8b755f07","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"59a646b7-d2b7-4a99-9323-89696f904070","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418828870106982358463320365078419696628097784302497751796797894186082102953452704495765845701655450499381651640967122562828344122724190712047032202949911630821840726930433592586832587149949753852678270987051241540112218085112956915207365361112606883693193614663778656978916067147901025755077426902","osProfile":{"computerName":"jianyunt2"},"vmId":"0d18fbad-1728-4ba4-8e1a-fcf7ed19aa55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtM2SXkt4r5FKIvMftZ7P8IJgDhzw7Za/SNXuGzzUswcOdA9O0vfBfMTNW1PQ57QHO9Nq8kCzOEyNyZpS/oLB/8ciJul/KnMW9VOrFa8YXCfVZ9ykl6RlSM0y4kqUElFjxXM2b2qoHcL6eL+upn2/Sy+LExcOE7+TpJCz6qp1XiK4JI+uUrq1bsZgXcvSrpYo4y0dDyB3jDnBlfndh8XXo9wV8gBYIGoczwm2120aN9nb7ouIQ5hsmIov+D5Ee/i9asCtuxLAgcooY9cuBetoMn3LvFOeRwe2uzurZrp2dnn4H1VCQZ2U6jwNqWPIk9KWFHr9BRA9Qgg4y+9cgGlrlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-94247084-0398-4988-b053-fa6006e68395","name":"release-94247084-0398-4988-b053-fa6006e68395","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ec3481da-eca4-410c-a5f8-cfd798d4a90b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895313539246592376834829712387485627713220194918513115985476896147605244883505165374742171578077406390124971858525371658206785595050498236126516629604721364896184489416841980388448910312807692377988483163146383536439731118054535886443296202851356354587511","osProfile":{"computerName":"jianyunt2"},"vmId":"ef3660df-6a40-4a5e-89a1-020d0d150763","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAof/ppJlsomWF3MyCw3JZaMgOY9/VvlOaO9qIvxtB4o2JlZQ3DArMn5HlDOFqhoYex8lhePNh3VEQ9yBr3n6MR0Ggx7n8IfTkdfY4ala3mh5jIR5jJV8FXFVMUGkKFlm1SeEhshpeOi6k7xJydqdK5UFML44ZPCMfPUUTfA0NDE+sZLWWa9VWNkcF/dBNWqhuBh3hwekaXtRTldcHjD5f2PWSO3MUyt6s5KP/X6bZfwiEcTnQGechyqyDWdfzZ/fqZnsSGuyY/Zuv5tlBMsT2Gu18xqQVegc2MOBYniGR+xNoDGhXdk1+SU0xsWoyX4j7FZ0AGMc8Y+3W0NY7rKyKQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-401bcbca-2e29-4c84-bd8f-856151ec6c59","name":"release-401bcbca-2e29-4c84-bd8f-856151ec6c59","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7ce4aa7e-7c0d-433b-bdae-a547591ea7ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418344749974702569167661769273414164119752720697172200518074563543430768657980350249363324562220163334133913956416820392681663378163993851939641463679604638345897450153510431302286576254989568999025581481261757914487311027782672511219170213766635161494101218778550","osProfile":{"computerName":"jianyunt2"},"vmId":"ba7fd23e-0d17-41ad-b204-9fd2b5a1bef5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtXbI0G5MHjv4rS8ffmvgsSkzffm79KjW8hqkokMkNsAq4bjcMhAyePtTrZb9vi2ADsCy/0tkxq0JezCOSCKw2hV1KbWdDCM6kDO2scFXKXGeX6ZLkBdRatZifvRHo4BYVVj5PIuIsZmL7izOxIEyEyqdwGH74czk1yzN5fruQEyLPYRGw37CamdQMe0M9/tJcfS7MhSrKiAWZl6WV0Zy81CuFKNMJrD01shq/gqnV78kyXvWBH+feO+eCF63Y5bPJ2L53Y/KkAq1taHFU6Oa9ehNzvFcUiuLweYIGNaeFqYYEYdqsHqvhKr79ZuKOh2c866/RcLlhToQnADxhdhMmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d4ec4a07-aad4-4376-9942-46a95b059b7e","name":"release-d4ec4a07-aad4-4376-9942-46a95b059b7e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e396b1d0-64dd-47d8-9a43-ff40769f5910","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418812597827454917505146037019361746354883854573878091669847480063556691583818693731980517127408662818349723873237065653704244835327984749975057112708649611130721440922543839762843418147478851035323856717515835422847714381877454868794743463982727569665983057133834549608286652447820484363811318915776137068835223166135970675477907573114546664490908385241276764526348932","osProfile":{"computerName":"jianyunt2"},"vmId":"ec7b55b9-5793-4a0c-905f-a121fe1a2a58","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuq+qtBTMoFIFs4eF+3N6K8J1o/hDS0NY7EgEtaok/HY4Gmug9kxHGWKmQjtcYS6GF2EbacFDbcy8kWGlfcqFm07IL7snlh8l2JcJbdzg9NT+zqPJpA+6wzsFbnz1Y4Z9u440gt4qfDTK+HHu/VosYW4k8dfTP4noH1dIztisuMyM9nRmyodhYE3DPslNeKkoyxaOpcVjDdwiQuBA2Xg7NVlQjwCXSwkpfbS2W+nBXs7Lt03gzbfznHkHZZsWQgrqZWM8MkWNFKeLugF4gPx/5GGzHCyrtevqc42YBp/QLj26ilz50nBpIybjzfd3LGzzAmix/eiY7rJzLSqbYV+YewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-84a40a12-68ba-4ecb-a10b-e468ed53d149","name":"release-84a40a12-68ba-4ecb-a10b-e468ed53d149","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5faab1d7-d3bb-4b9a-ba2f-33c6b4140fa5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183722290563983702010559863907189505087109311118110519614085584670112426426330443323063342867582064275880880914802242382478894422726696274180417242713714746643040114748931148192859479105103693259721486159239645216115243254366986835457833417942786878064293676763336249070882577485063718728869076596112","osProfile":{"computerName":"jianyunt2"},"vmId":"18c29db2-6aac-40a0-a4cd-005315e515e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2LnKNR3gFez4GfYlBJLBeAyc1cGXl4O4NTrtJe+d2CiJMrpiaPowIW+9QdSE5/Oon2l58kkjfljEW5qwRDrrFoZRLuA4WpHB4ZW5H+DPaYQfAdnUMZ5lKku1geT7ueTJeASeKIXhjZNTZKpeNSUQ89+i/zOCu+kEk3+ClUALWeQh0h+86qbpzWx+0L8Oh9cd9K3ikHbca+iE53ae12NdnCXIPrVq7iYgB6Ng+bC07r76ARgl41heNsKPNmdyBYVVTLuwV6zAfstQoU/F5RK4efi77drJ6bDvDyrcJQrP1tcu/w9cdv0TKmkAPgOzwo5eTHIf2oYJWBtHOxL7N5RpcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-25e17db3-e3a3-4d87-9b2d-38de3105bda3","name":"release-25e17db3-e3a3-4d87-9b2d-38de3105bda3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04933309-c44d-4335-a23c-608b14ca4e84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41827772457242093935433138454579059056713852644512918671967920533554250853879438820756613821467180022159936861545188234096347187210448817919036585556279402026732117111851073737438869772432662580824674735837322079862252688339895900799127618946176992643532348784817567836319882714325647586231123234","osProfile":{"computerName":"jianyunt2"},"vmId":"71959e8c-b4d2-4ed3-99ca-cbb994b90cbb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv1fj5l0HzAkccKL5yUgCqGsL3u2jmG2b+mT3EmsXrlsQzsrZPPti0hz6J7nBOdZtrE2HjeVauA1sT/9enL7Y+VL3SmKawHvWsTNQRqoXK1YaBu7R7yPHvvmzSvscQyG97q/WS7qlhDzybr3179n6nq0e/EGxS2zj0r3tnwE/xMFWOen5gS7vSY+R+QD2CQ63Y+gQnsxE9ZWLTKyHIXDDQetGOgGNobgm1nJmu4n/aUUewP2IZc8im36U76mox9Wr0jWwsbBTRfrEeSd+vAE5rLTnWif7hRKUGxiXNoSqhXK4/E6MlYCupLl5cR5UPtyOu88Wxlw5qLRy6edA4WgJawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4fe6afcf-c817-4b8f-a447-c4cd97d00ad8","name":"release-4fe6afcf-c817-4b8f-a447-c4cd97d00ad8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0ecba3e0-b483-403c-99a7-64905fadf557","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41858720897213796220754606959949504265388793875158936612352086166165665155411682905543458732998888578376342218743969051542421356845845975677800678514892167871985368243390175928603113417647344204588595907465407405193585574703962643847822988494382088751553738090993752","osProfile":{"computerName":"jianyunt2"},"vmId":"9289bb42-395d-49f7-b9f1-eb90dbf2e550","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx0E3qDABagvJj94bxlCe7dMFYpkB/CUxUD1oAmetS3pxyeEdiwjP9oTZ9P8ffSgdL5y3Z3QXbgrn/rXTAp3cF9HDQNcS/Ovs7wUxX21rQ1/5EicYQclwl2TEVdQ96snF1LF4fIrNG28x7eFXAogjKnpS8bA2gTLy/I7eW1yfAbGMHf4wnFlDwFDlFI7vceaBDG6w+sL8xTk9ibq31Iq5NBwY7HuuGTYTJzeGAXT55LLcv2urZp1zlHAoGk8X/ytJSCfaiky5XJ5ahAkT36hb/VHf5etj6zPHpCb3lHUw2N9I0z4C0xRuSveYwq8MIzrpMmAdmbDC0gI4CUnkQENo5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1ade9e91-c73f-4326-8827-07bdc59df655","name":"release-1ade9e91-c73f-4326-8827-07bdc59df655","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"22b8ea3e-d735-42ac-b822-fee9cc47d733","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185536719383565405973926212517222437582604390368918666247269846324084556815374800540310588201348169175675738133926144837569824840272159297322454899505820968705576289287664411369558183797754166668205288795369219588225961913422763915796876955255773578736794214461432066347984059222871698321109973750166616808494880059853493875692694167752567683495","osProfile":{"computerName":"jianyunt2"},"vmId":"26ffcdb9-1677-4a67-8bb0-6fe952760d88","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzingbiZLBPva0oQdC6Y9u23/dTvC+YxjJaMtJpkIQuWL9M3zSlX0AryHuSoqA6clvRwJzQdt+KGXrm7Pggp3wgAqonUWMDuEgMB7UefofPyIOwm+8HQcQ/U3re3GtmTvq/S+Q5KjwIAp7G08zf9jchLr967pNw9XU/nvBFjW9aGXqxd/y+B/yPqNTkqSLaR8KUeQ04z6t1gF5dyeeASzAor9xYJCKnRosxzYXSB9b/otzxYJvq4hQjJm83Is+rI6Ude1VERgJtAxh7JovWsrdNFMNhtmLwAT0jSOLZdOINOZbVvxGw2gEnfqEr+zz9/x+T77WKPOEEJ82Xr3FDhYWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-98785d0a-da49-4733-9d88-d4280adbd6d0","name":"release-98785d0a-da49-4733-9d88-d4280adbd6d0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e91cfa67-2ff7-44f2-b276-9f699907ffe6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418232640467625163241982603592377818946009246277876486438136781466534698672467900964761494021172774959879032523835832139726617708853018793463500589033047156594917608453967781306204297283253204299559973321845991749330431199624484858723817510134834897404057571940536325623161846835369639869138980891704918","osProfile":{"computerName":"jianyunt2"},"vmId":"497c1324-f67c-4469-bc5e-9bb5aacec2ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA561nVM1fGpC6ssv6ha93v1SgOhnsU1ig09fXRQ5kX+6byatrbmbf28F0R0KVbCbQJL+DuvnHwPEECbuzgjt7XqSAY2eIt7AQlmtjEycN49VekI8EdWLpgV8ZTCFIuh9fqQ9YRh0QW+ID5x20nZVHMyi4y6ZpKkXfmCbN8wZ6mRQ2rpIs4m2B01he4re5cBeiaHJcb9oifbPwA1WsWTIIVkzihm/AYVD9UJj4IJdEOtf6ttOjnTrpCWWmEGNkARB5PdWYCxGeVFg0q8GMk45dWKfWbhEVPUq4cAOLYyPTOmYixWT7cxM8mQhAZqg656vptdmeZJcfRIySVb1s0QWQzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-62fb8b13-99ef-4da6-a520-107ab592ddbf","name":"release-62fb8b13-99ef-4da6-a520-107ab592ddbf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d6a58efa-be32-4d93-88cf-f9c54c9268fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418943299733397497369278641514405829615457917623132853785938901857377956686793525122688415915658994892348835782213676021245737502897056496395524583938124630076617633966207161521645141268304881103570986146333098113674679745207751018766112305375138390839421564753798271518261786843195754974013479","osProfile":{"computerName":"jianyunt2"},"vmId":"1deda684-cba7-4bc1-829e-6342f520b9ad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx8YMe2R6Gteip2cf53ShGvPBaPJUQ6i4K2QKSJShaW7un8ItFMw7hV4SP0jzbxqe1WrqsfiDGcl0QRSYiirdFmigeJFSVLqMHnwWAkG2Lhabo8b9Ncl2w+RmccAmU1U8xb/pnd3/Y/YgbIujgHrnQKEPwgKFUhAqdmZX1g/8evgojIt3B/dMNGdDveArkL5Pdxey5jVAG9mBvt0MLLRMlrcnHNQNdl2/U7Le4BV1bJLZbNIhAEHeWHp41LHSUgiotl5/c/F+i6jL+Toz5tXvuxUVa+kHhpFghpfp5ThYF1Go5z+ZBB9HWmRmVUColts9snuxd96tNhf42mcpPIjp1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3618e02d-4d9f-4fc1-b90c-001e50c1cf1b","name":"release-3618e02d-4d9f-4fc1-b90c-001e50c1cf1b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cea1855d-19b1-4926-8aaa-86d4caba0566","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418463679791740154536394050408728668802956991493692310826819108932125473871810948368325580668297144731544198887275508690074221359446985475427959957356518441155198226967768566062543734393050622639819268723118877087164031310636051173510065411295729922170672447097288972346020385352114218664132454374431638348703","osProfile":{"computerName":"jianyunt2"},"vmId":"3159f7ec-09a7-4b2e-9b0f-54395900a23b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArZLAXNnlFapvzC7DN9ppI8hHsZFd2nd+vjA5lb7fOO/3sQW++5k/O20Iy+RcYDZDP5G7rglipzLWhxvFNyPyAC2k70/xKsOn+M8iax16qYJ/5/B7qnm+ehIu5kAcM5azhsVgHPQp3ywKQL2QE37LiexTEa4U8RPi8zXgKkfVHx4vxeW2ePKUhPxhXSehgIGtlvh3h0s6MBxAMHgWEdmEWLTIJYnxrRipfkolGA4eAOdtaeLVz3CWCEhtcRxiBu64O7yw7hkDyDH94IoL3zyrBnq38Lnyh7MQBdoQyEmUIvhpR4cjVDhevmzfhTSi+vVAYQOC/zSrEPYaC1tWnT1+cQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7c975d1e-c5b1-4afa-ba0d-d5a4b3cde94f","name":"release-7c975d1e-c5b1-4afa-ba0d-d5a4b3cde94f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a24f1214-d29e-4202-a537-ab1cfcbfd68f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181473110351569905632153173613596119696089551117957314161532783647489249495416866011832729252723722957525230159295832773109851399583756590970767310440145212603853885102841132844483705825036182865788277795083633933073519201438983223406967395385276111712496923424335245995693049913066613813359046562","osProfile":{"computerName":"jianyunt2"},"vmId":"42bba3b6-e8bb-4db1-ac2b-939b14387d5d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1r9bSCt7f9EoInQWuyEVf9k7JD5YGV1RHCNLel3gsAd0RGl0jqDPPgBdwD4n7qqqkB0Y34r8KzqUKIXM5yW6fyuiFc1QzmVt43f2K9jVp6kGHwq9QV+ZA8bPz2MQrMGMJJn/GbhMSKMjywG0FT2ncvRvgoiXon4rbMhdpXiP0Y7W+2uwY76fXLDWq5QrcYCp6X69M1pyOsks1v1TER7PYDLHtUe+cDn0n9GsuxvQw9kMngEHRQoho8VNY/E1Rd6b88+Y05G+j2Pnh9ufQ6cUL1JcqigqiAVA4W/oM0qgrL2F18/00ZpnefKnoxWJarxh9EE4aYYSqaVKFVQYnZdonQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e6cc821e-ece3-4b14-9f38-263b2844da66","name":"release-e6cc821e-ece3-4b14-9f38-263b2844da66","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ff8a958e-b2fe-4e1c-9b52-6f47e1439d17","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41850974800983777652015321747285048468377095834321282816144951630008224339721549128282156817340451855503401604356265338624160421933556323362868040696785751337901666809401565883518376925757906281685992818078203073564684202742563771361064778412669211773715649343903038131999491876391253641008925569169097287757988293407475312970388691192427268244","osProfile":{"computerName":"jianyunt2"},"vmId":"5db96ea8-0b13-45fe-b0c4-869f1ac2d98b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwIxC6GRCiCgPbXsmX1GqU29+XrF2YHyE9F+a+4rLhok7ge9XAznbvy3jYucOffvwz4E6/uleLlOR1TvtmQGct4Jhhj9a3waFgIbddVAafpHBt/zX0DxAEwNpp9R0H6JS+sDCbOgVl8UMJQRLo50vYyMgkxDWncpmEoQtHQQan82OBFAfO22SttVX5dlYwm0UJLvTPcOJlMh/tqk3IKCphmrNS8c7T7mdeOnDeTUZC3QkW/xTQWZD8w19vDvt1IRew5q3fs/MWacMzYsKttgCx/CsqdCAjDWfOUCmp/Fu8iTrflt4KFJYMnYEkS+IzV7dQQFFmxX8TXINcnXWr8lBwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0b3ff923-7549-4755-82c3-03e174bd453f","name":"release-0b3ff923-7549-4755-82c3-03e174bd453f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1d083ae2-60f1-4357-b9e8-eb178dbc87a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418760237679397832780389991217621329170285410701579694572362074165372953556107333811732651249603224861847708385910636928561168139597339642811826625774635093901541214066688179233852212988806171444988164371817968671193232145335892335577387129132742646238031015448801958624576436273067196285188218887259","osProfile":{"computerName":"jianyunt2"},"vmId":"6e1058bf-2e35-4266-8c76-61ec16fe3c4f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxdEX/uJLX90Qs6Apm6cEFKHm+62Hzn9sAsOHUIrMl4i88AR6o3PKatsdIC4bLV1h1p/fpH3uyL5qV9tPAEKwEkIKcceqNYw239kzCOHddBit+1GSks+e0WocrWptmaJaC5ueHxr6+Fv8+OUIVzFt9iY9UHaNiKr3AHLiVGg/V8JIGdsLNvVHO1xWZduTjjiDnAiCoUdKmcL6W0y0AeokUvGbGNeMDsAPTGhWlK7mTXc2yuEcLtGlKVM7lZwtfnqGZ6bL13Usq16WaQQ/2oeWkxqCVcE/ALrzM3yTPUyAnNqiPPTAEoVTa7uMnf4FcOHB/3OkCWNrjJ7Im6hNzry3kQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d460cee2-b2b6-411b-8389-34cf52d608d9","name":"release-d460cee2-b2b6-411b-8389-34cf52d608d9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8343147f-ca6c-4dcd-be57-23579cd16c75","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418799655117101553922198197576314562351242802740515460589552813169562294388915052689705234462422399749681201662632824991274260583641167533398221841720350089532965375563107268179362054347817068483891995867968034754614349701671712663144942216023209317122817739388787401997881915924427639139089841360725241506170722440474043563953","osProfile":{"computerName":"jianyunt2"},"vmId":"eaddfa15-0320-4030-a0d6-f411b4cf7f13","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQjiak5sIJVP6bD8pZ7Cv6IadLCerCOWjPWufItXRGWTYV0GHKZ9pOY9/nGwVXESsJpufdDPE+deUl7nEQ0AEfETzwcw6/G1loEGDBlsR4uqbp6ICIiC8v85pmV97Xw/udDRXXDgpEmfhWHilo+2ukRlYOO2bCc83HXJcjb9Kzlch+6fI/d5sEK6PXC+Z3HLEC7ePUQGHKhRxJmXTNrFfhAJG3rzylIFVKf9xHVmpGHUtsHqKz4scpiDjBED9zhVxvQrlo9OiTzbbBXgVaKc/G02ScNDIXstCyuX1/xMn3OD9IDUC2eNr/2jY3g6Y0Z3CJipapgsUeiHhku379wFZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-98316f70-de51-41e3-8722-cc3e97545fc7","name":"release-98316f70-de51-41e3-8722-cc3e97545fc7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d788f4b6-09d0-42f0-baa2-f4a9a33b9b00","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188525389493074102512221506526604469829248173832999362798068462171699783264955377509148518604160716415749726883323723033616991798358102731045866177878743224315414391318283962557083924525279943985626859033826538869628150215538769775973210324342987220509515199994493641680425244167593852285614583441278382338129456595938641476290490724849968417581867590","osProfile":{"computerName":"jianyunt2"},"vmId":"170f355e-3963-4a0a-a794-26e46afff1c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs9BqwuAwYu53GSpa1GCssvbL7HGSwZYp+Y9yBiE3qJkO6MlUnfNbhq1oyvuCledDzqYUs9gQZA2IQZ+3p0qCTdih98T0+4Cqf2eSK8ety3qoO9nLNbtkGu+N6qT0vrb69ozW6tItZz1RWYSla/ssMqrxcn6QQ5NO2ajU6iu3Lno7HqBFUIRhf4EkUyc4UXoCjAkLNfuKP7NXJtDFYxsHfmZ87WtCq6LB+HgqVKTo/7r9vskwKNbhAURYrXp89gRF8EJV07Hb9QUu4dHKMDq9C9tqucug5tQTtsVLs1IzQAAeupGMTfFZMHasfg62uNkeSrbST4h02sqxYgD5gPT8BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f0aa8247-ad28-4e2a-a4d7-6c4a8649dc5c","name":"release-f0aa8247-ad28-4e2a-a4d7-6c4a8649dc5c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ca1ef5af-c167-4ab5-b0d6-ceef3b3c8e00","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418180442775306688189299499611622856108386753681143305373350037661712363994884701639998318251856137703768748726112248342356412191193834940375192893003650049022596744511954367472206898471497361265277546940393046746548150624453500362463340502026891627463634599392866180339001404509978974028354316292718850442884289787267584077123296853154013","osProfile":{"computerName":"jianyunt2"},"vmId":"dc95f268-e467-4f5e-af03-bbe10018aeac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqBsLYgDiA2KX6EtXaSFfRXdR851nFPJYmlNPoSBjSRJ9YeQS5uk3KwBf2PXffxOl93iG4LqjsSgGJX1ZPotImRxrP7tx4KvMexfn/Muj9tT401gC0XawAX27q5mWHLj+WYpfbgZLXVsYDtx15sIu85VRL1IzU/8SDS04yxXFBMXrAVW8DplD7hc7fvidqU8WP8v7cwDI2XO3sKBHHPs4UddmwhH0YV5Dm/t8CWNNu5NZvAr2t91UIpnzyaC58B4rDQruybHsaEROYE/hUT5T/My7jMvqmm5AMzyH8JEFmVjbaFDeMel2oHuD3f5dHRauFEHIl2ljYavHAw22zB+14QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-737569d9-bbe5-4be0-aab4-1ea37a82a390","name":"release-737569d9-bbe5-4be0-aab4-1ea37a82a390","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"06e992da-8d37-45a8-8ffd-f8b14c4187e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185539695665410142038180268537461036906936998405907288323982214947551274311251651900917318308641641792033605490587666083233755729712475383406049478301144247480896105523578944879758304697679165949548933714686993825261532840498290309995311172046633296510710934463947722504972552850009317603266","osProfile":{"computerName":"jianyunt2"},"vmId":"6ca30773-234e-47c3-a57c-7feea8094770","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyHb+KfddP1KBR28xvHLb2Hu5RNfqJB4hWVksrmzOJvKY8Q6E190IFdJ/WF/vi+wkprZiCo7nMIJ8QffGdYvX4fIwIHT5u7F0VtofbIbjWepFSNIZk95xZgpqwroiv/mtKm+KWu0Hd5NOlVH+Vn0xWnRmKRJZRPj2PCpbVQYP9/H05/tVvG/HRIAXL/3XlT+S4c7q931QhPydXZAljqEBzsVJFczk3Td+og6XaNZat62o0lOR+Z8c2qSYv/y+sd2VWKjYNVvi9M0GxnkaZixbj7F71moksUFn9luFvOk8k1Yauuz9uZl/GRqJQvHn4OPmFK0Zt9VWVlniyp3OVgIi8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-17f443be-1ee7-44ae-9d81-1427c65d7ded","name":"release-17f443be-1ee7-44ae-9d81-1427c65d7ded","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a2182837-988a-4266-9dec-e29527a8530f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41836903150499682847063162436715321530868859320988756551065520851714814898791949721324689549834172770578300532478616684976190817382743057711561821444524381418550141530778667699648961187428188452985896119942461869467258316555144792063458891057575945397719541904222725021950793664621558","osProfile":{"computerName":"jianyunt2"},"vmId":"60bc109b-7b19-4573-8f93-e80ff2f5bd1a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvSoUU5uQXYWlHUVlfy2j3Jo3ZCTIf193Jx6lNjDHihVk7QlSrk9uLD3ewe7ApKqp4cJC8Cj8ETYJsfAVmQlx01HNln6DFWSswlOFYJdY2V/RifOnBIskjRyMP99B7p9MxcEINCnRGvRLexJCSPWPSuAOmpPUdJkxf/0RKgzsXx1/B3o34A1wfC5lKF8B3/g7fh7Q/tBPZ0RSJUJQIHd66YijZdFYbqxLrklUjXoSEn4zDXzT1VXCRluZw6FWAeP6COc8V5CozFHC7TxU80O4AVvUNS+bZ9OAFdZ4t85NyemR2S8NAiBAs2GiYfbfo9IXNSe5uW1g+8ENibsOAyB7pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ecde35a6-d5e9-406f-be19-11526954b85d","name":"release-ecde35a6-d5e9-406f-be19-11526954b85d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e049369b-dec4-4227-9e8e-970d638e006a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41856244637607114307921715835102349370587142672682524136632598674545665573830739765797479776815392782766475799056332434290820879828403417261938147730829339657856629460832396247390946865823566202660175725461224704517698573651858775578775470834543191901499059704691687848031707","osProfile":{"computerName":"jianyunt2"},"vmId":"a9a14577-d2ef-42e3-b187-3b9e7f53b469","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvwcGi2NCtAzObk0UiJQUWOLASZ2hRNKoNOk1QGMkj/JrXOoV4xutqmgdlK42/HPGYugzkFQAvZjeC5P0OAZ0ySIOGbWLFOSDvng7Tru+T26K0PbacrH0fVYCIKpLlcOKRLt6rD3VXnOAAM+don+j5quXvo8FZ+dZ64cHR31bnd6yytTg8ZpsQKW6f6Aw5AFH1J1QsWurUQS7oYg9zKKKQb5/BMe+EEqPxVC5AN/jYvGxPq85FZVZ3kOifBO8aa7QVGiRBPIFDNI42HdqMLxOonCaA5NS3quUrSJzaHRInal6qnyw5tIrxbiHV19/6twN5lx41EuPVBxKxDo5k9jVzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5c2795d9-4b11-4237-8ed3-e37532d37d73","name":"release-5c2795d9-4b11-4237-8ed3-e37532d37d73","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"edc0b3bd-9cca-4c00-b64e-aea144e80740","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418696684519937942154186810738562323712822887346721979317846599076909571989349377104682561382951522487065341316527958424202717074681735762324134920659084386506543327071321440996296063853185088469266561729668265300211766653216849356838080515952879947299261079946834656536504","osProfile":{"computerName":"jianyunt2"},"vmId":"a57fd8b6-e812-4fbb-a79f-1ed91c315116","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmU4Apekk+t2pVD9pUP08KOAn/QIuUc5lbWejN6UQmPb1mFIl6EGora8yx0LroX1s6+Sk2Hr4RbVcrhnFUltQOyvn3xEYSyPZrNjr3apAuhHJ7PNbyCPBS2cyoUxgKUPNQnK/hwOH5cjjw0G1vMBkKkDlrAwfsZy5IANUCLwAKlS2Yzq9Kv1UGA+zdW2W8PbG3HPRwnkSGV5nZiJ0tYkVdgPOJo/ROHQClthgkDzdQWgIj+uNQoEw9XT91cv40WbywUZAdc/laMI7wJQWBbAsefI3KFvIQbPnem4AJ1mWTfVD0JfIFmkRPToC86myHKDc2T7CWpvBDQC9l+ZJm+rnGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5991cd5b-303a-4355-9395-5b74bf29ab7b","name":"release-5991cd5b-303a-4355-9395-5b74bf29ab7b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c108465b-f1b6-434d-a97e-d65d44020f35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418126089938302767896638858737699025635455394009460700185691362447480679064096856310289878600443975305419326224208579239370758548113252669551385758307693737475165022157560162184116372314332419977983517026350826933321916273460687026786475562966654128354666768639849076704729168291618735973081626300555194609","osProfile":{"computerName":"jianyunt2"},"vmId":"12819c53-2b25-48d8-af60-1fdf8304b036","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs7cHPgD4DVpgbfKainmELiWUbpHFXWrUj0VQfV2tjB+/Ug8jzHKRjlRmbO0W2gUNTmYAve4qwD6yNlc0d7QK2iqEwVK3fc9dubY6XnNr5hzDN8O8YsCdJVrBsyYhJ9ERYdBMiOyMgLMYwzEcsyd6F4JNKglRA/bSd5UfqdAtYImcUOnFGM9Frh+Lmqlvkyl82UpbduEf5SNLBnEu+iQx8q5aJiQmwDTdAblIkuZ3yCf/iRVJW52HcvZCuH7IXkvUC8aWGwI1khYEB1figKbTBSkH4UEzMGsiM2AwGBm44ymNPfzGt2pJ9F4yZEupue2PCT37vYGbTE4MXrCc25ejPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bc434670-c5de-4c57-8fd3-ea9a38a0b06a","name":"release-bc434670-c5de-4c57-8fd3-ea9a38a0b06a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"84129de5-fc2f-4ccd-a1f6-440b11109fef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182117971791980362674221267057703738219234266167605789433007183696748821097209433853323921238756587118086871493989069131127545320735251209355186798437837059689934505682498585364551444884561058583352293772411428962536286431846356727181663228792504222847172294970945498654731407857243514853136956243876314911931645227","osProfile":{"computerName":"jianyunt2"},"vmId":"36b731b5-23cc-40bc-af5f-6a94a4573518","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6dSQwDXNnFOrag1RyL997R3pHei2hi8jsnsM+FfuUJ2MWFgcgra2yPotsOFxcwIu9rMot1C4USwqrSDFHhz0I2IrItpUZ2WgxSHDUAyShowLIsGUMm/i7geu3uH5GJu5I+qClC/JT2DqoGFd7daqkfRhskqpN19RK+GV21Zbm2z5H/RgLHhWdrWLhyfnbyTgNni2DCxA2z5tVWKhz68nzB4lwAvJ9bAX1AslCtp1Vn7cjS2EzVVKrzA9WCZAfHRd5YmjUkwAsiSwAHbm5mRRI3fbKOlhD/PmW+GzVSNw5AgX7q5MYNFyRJuTqniBFSRV9w2+45CYqWnNttxZjz3SmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-67888148-cd64-4de6-9b13-aec08de415ef","name":"release-67888148-cd64-4de6-9b13-aec08de415ef","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"67419eef-402d-4efe-98ee-18cf0ff4babc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187537638653597052446608317632352926844628394538767383977065879854949025375639337353810430059114751299888831666790813392461658742291310716083382924552812489236619161851320819469118281902144426905467298025142751944091818503517452853528295780331618508343865525438996413882356965342833355012","osProfile":{"computerName":"jianyunt2"},"vmId":"7cd1367a-63b0-486c-9b21-750f79ce19a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuQ9xWwWmAkOAUpt6uBiNIBjE3MsInXj7oo6eFXvv22YJT5i7FWuJPyixGapjcZcJXUlE7SLNgil+vKl68OUKb8krl6PcJc8V+CgDh8ryCPpwtFGYgSHbXfJk+YkCfOScv41K4J1QMN4VWgFX842vf1H3Uau4rHz0Y6JJMTu0WTciAHGWJOGKHzrsBbKWnl0dhB2IV6/bghVR+dhrLRycrbmfNeZeQYHGKWT3QqZr/fokBEWLIiUbbMusO6V1BExdubcrsRspiPl6lrx540U5KzbkPsNjKfK8bTUGm4do8ofIDZFMhe6hHODb9ntGyYJo4Sn/oXAKDIheY7GFXqYnlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dfeba4d8-f0c5-4a2c-80d7-fae8c6dfc882","name":"release-dfeba4d8-f0c5-4a2c-80d7-fae8c6dfc882","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b823a5c6-e676-402c-a3fc-abdf068990ae","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41896747342875431859255623549549333353120249793935157515921919663695284321152268095235764092718303258476748891123633922587745173117221722326444940623180714882437735863088574586621141576003757840769659601026301826424403765165496321331658683894288732076354651491076577462042222226654498627736778357111711360373458809215385222135","osProfile":{"computerName":"jianyunt2"},"vmId":"62a17b01-c9dd-4c12-a886-5b0c3d2d0944","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2HzjdM3BIizZo8u+45JOh7d8gtb0axuPzd+5CPheAzr5U1XZqtLrsXztOUyYcPXYWM+HRzrj5z+VE01aaXax7qYaoskg0YO240Dk9tnnJhYZBtMm4B7BC/i0c+OLQHnS5dh7HeXdPdHyQtjF7M8rgBwB7HTYfMyqQ3XKYhrEvqdFGETTWL5fjWg9xAVk3qQNX2xGooPQftRviRJYDY3qur1pFdfRWldaQKC3Hg3IXAW33+H2gkT9+8Jdmkt2kUJM8b35GSfvQ/1D0zbnjwffLuSqm8X9K5Si6ETiX9riQdrSpuaUYe1ksakPsnGnZKk0DzbTgzvjL/HU568lG5g+2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-51ba8e26-3f4d-4e42-b5ef-d9f46f047e23","name":"release-51ba8e26-3f4d-4e42-b5ef-d9f46f047e23","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1482a39b-be63-4d41-af8a-5da892993728","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418282856696165956371585572747913318915833851551829758933698032767998555281219596880834162158680639886584333914494377742517466682656983682175298972881855100815934162973105836471972200798416828237895104979622769073516109712305485967315583813016027494572122395381313097417876820605900504115506177414156878732689","osProfile":{"computerName":"jianyunt2"},"vmId":"dbf07e4c-43d1-4b4b-9eb1-5baea0619859","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv9ZK2JGce+bWzqDh5h9VOGFWzjYlS8Q4P3uCmU7dEIKhqIG37kDzrlAyHfD7KSiiJ4feLYQ1U+vPv348KyV5WKjyvctB1+ON41r5c3nwjeDY738KpI2Ex7CYHflHtc44irceXbL96TXi+mbIlfcc7eEZYabEWLdmve1Md5+bnFeMjQOHJ80tJLKHhiSuwjsGRBZ2DKJhtFq/y2HlOGvY60E9ezkAYm2Zt6GRsB63JUZAxPZ7frGmFfuovOJpb+29+H8AFMULRv4VBhM3YIJyybuqsbN4bEZ7YQqyTBU3CKyQQRitVlEHspdP1CGdWK1nsTHCpmT123/nGkXO0T4SgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-912d1a28-7294-49c2-8e97-01753862d5ed","name":"release-912d1a28-7294-49c2-8e97-01753862d5ed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f8aac49a-a772-4d4d-80ff-bce4bffd7c54","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187990156434523523841665023870850768098619977925889707524098862188799826021941651548329630558074496003598944686543609172541506967777565859575623154523939475678191505803633930311756745121241937464246365222822694899143589995745025029087346373426236973026259240195579592198681987732771952145948426209360622228031343887088386535","osProfile":{"computerName":"jianyunt2"},"vmId":"a497d2fb-ffb4-45fb-9859-05fd4bd82422","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvHZJSx11SXSmzXAUEkoNcOM3QfCASHJqsSwazfxydj6Npv1ffKujf+dcH5doO8/AYZHQgY0beiE9s1Alm4cDK50ujbIFHU2vXSgs3r01v14iUGKIxG0kTYjvaPV7+Ephbbd6ihZKslb4WEXtgxfWUfeZ5OgUasYs6rtLMso3IHl0O0O5AUVsMyCFbuYMqIAqDPsEYGiDjHgilmykt5fnNd/HCoF9v8MnVrfAlvMC8egk3wZcr72bAMwYi4UypORonuIxricuQqL3gw5gB0+Eym9YHNfbm5Erq134ZSjAS/hHZoeaY3PS2DvNWzg9senrAgoPm9N2aHWX7ImpSJMBZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8b26be6f-1330-4d8a-b34c-03c8134d954c","name":"release-8b26be6f-1330-4d8a-b34c-03c8134d954c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"295f05b8-a494-4b75-82c1-9f6612e2e3fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418845255804347109725602149398820374012325776304182379381257132253340379040325533058660417951133797294914893745108176768598490657463995337848288216149882754180626628155613898877170888844049634127072396802637407083175072503018997337254561719419641796060549485548819528693338734932285","osProfile":{"computerName":"jianyunt2"},"vmId":"bf959748-0dc0-4cdf-8574-4b16898cc7f0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvlkpFO9lDJFTVobfAqoFclrtJiG57Zrg4tmyhT++pnPmXiXHoQlEYPOWtv0c1uZzoC+ln9qOkAY3vUE9jGm5tDNb2QtjPPUSwh7U1wfE+6pe4hAUK05u4Gbp57PCfdJbwaAFzWlrjyG/q253p+hEy/OJlnYTyBZqAmSKXwhCSALJD2xmYm1oMtvu+3ciKdfrF8ClhplGC1jNaI1beDInrvpZddpE84F5GwBBYQt36GUUmLWmFURz2r6uUJNL0Xk3Fpt8rX7FdiWK0f5Y0Yd8ab/I+zw5iHz/NI+TFy4X9HgHOsvogs2XrOfVubLSM7WSn5nDMVfWUefxs491BGErEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-676942f8-313c-4cb6-8f35-fefee609ba20","name":"release-676942f8-313c-4cb6-8f35-fefee609ba20","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e4ec167e-fa5e-49f0-bd28-631c970230c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41857276181865926821713647051077055757253676363052778547135339345890836111983481719567119709132787454586777029577720163587521715740474152306347466793163508522441901477451099672224517742091673441227154283792571269497614454344614415885978076371065965673215721598598150644313308277514683824148049126748434069827214731777445777775643024643985916543508","osProfile":{"computerName":"jianyunt2"},"vmId":"df5720ff-4744-4abd-98a8-1c7b0e72fa0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAubRvJ18XQ3y5nL1oKeircUMk57WnzwOGGPVKjAsqOqCswcoX9kfdjKN8bnabjWUzI5GvU8Q0IIXru1rIguuIjSy1bpFe6+t4//x99EzVroPjk0SzDrmJ/qHOu6rmUMbHONhyXCttxymyfjRi3v7Xqpxg2S175KTs3jo5eIBJ+o+i4epscM2k0enKSrwrr2PGe7jbBUYB1+J1tHnbNFDoofivemltWJF/yrk8WQaubHTCUkFOPJxvhfDvm/3T3sUHcqDcfpF2fUH6QQeaTQ6rKBRrCad7DOjz0xmQazk3v9CRGW3+ZMmRhmenDzuHUPYsSBktzftgEnvSJpOswK7JSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b618a489-91d8-4330-8efb-69d1b0dff19d","name":"release-b618a489-91d8-4330-8efb-69d1b0dff19d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"58599cd5-a4dc-4b36-8bf9-65fb1d673411","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418933545833825996423237027480333231641140866795266283418501598213014447495831238442814277639726860870776128316628153459511717739816356653548536820064483221021672111950317868175131639351147174569524157473161812316773158572444781336866782635522165803820936736363122051115179491319264969424391610764098861345471304773","osProfile":{"computerName":"jianyunt2"},"vmId":"4edbf62a-0d65-45fb-b2d1-2e9cd6fc0f9e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt5R30IfCLatzVGlqaRW00Jj+FVB7XWzZThoYNqJdw29uhiBJmgA7WZ0pvaBunPDQqQHA6NJJN2ooTZZjDIeIYrd4hodCM9vMoZlqhm/6NgZLui1FRV19tdJdkE5FMxraGl7u07C2mcnFrLYZboPaG2vd8+fIG5AF2pLJmjYeu43ievtAuTuje57qtDLgU9CjLd1PI2RS9jnZcsnT2ONr+5psoWF8Oxah2CAiRY3+SbsZ3Ov8WZBusZ6YvQVw3AmL64Q+OZJ3krboUtY6XPTGiEogJ78hh0aRXkr2iH+vA+oKXr4gsK7s+UmAxINylL2dZo7kbzTti0V23S3R77PYjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8d3e9796-b0c5-4f89-ba56-3df2db40866a","name":"release-8d3e9796-b0c5-4f89-ba56-3df2db40866a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3b37317f-9ba7-4c73-abdb-91a4ea1b09ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418900377695974727603502142567728228110975887913311306047856872139222225901304331199141115913558139456449525846737242771063298227722128175323427473757884667112425221583838692016117121110761924867952949683969420725040619745804462604155786769246998245549513366239769496579579173373391452102613757945480913720241180","osProfile":{"computerName":"jianyunt2"},"vmId":"0f15e678-139d-45e0-99b7-02d890994250","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8+4RgEc+07w1kwDEtzisp9J+Uc3z0Mps9rDN7IZfU64Cfc5VZIHKd6T2zi4fVK/VWfqaYX29DT3Rqykg2JG2VKxVIpwcsEut7F6qIp2xfoYGk9d146TL9Isnv6KSQAZg3cIrq0yPDtnZQMJ3RpJwqTaeZcjAyKUOWyU/Nt17CYxGTAp2yNvx3V0nmf0JQTXY/IrxtfAgvO0ZJqI5UNpAOnYFpCHJgxL//Cm1X0RWAsjPXkbpIKjX7tBDKsyzVE6RFbJnutWnXY6ZI0mfaIJtFyipAhK+F9inayecGyX1s4M3+U5wHYHQA34scxkG0oA8wsWNMFyphoTlfLiizoVL6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fbc3cb90-03ae-405f-af4d-5355fec27a53","name":"release-fbc3cb90-03ae-405f-af4d-5355fec27a53","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2cf9f939-24b8-4486-b767-aac6f107409d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182928487463294936409673645384291301115498739720384031815664130165449393142720561191752530148965554232908175092686347370092050111960488591139151541974236843528892143961073576997260895891892563396557516553955737273153037874276168408920330308302515115866090","osProfile":{"computerName":"jianyunt2"},"vmId":"9b144d0c-cb27-42bb-a7d2-c402ffba3f7f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn0oSqjE87pfYj/O/aqvojep2aAMScbJVo0IrkYX962+jk9zhhxZJ68aBh3h/8X4ubkftxRxGXHSDcSqBLHSIKxwWwcOXFh3PuGb4mmEQFWN/8pYQwmz60OhGdWLLUeqsGQIq1Vs8sXUHwjif7fAkucsJYnHs/H1kFUc8KLpVFQVQAExHdfC1rFdHI8tMCuO9+20s0TBK6UPK0WIkl8CwcxJcakE5WlaejHB6dORAw0cncGRg1KCV7LI94b6n6YHMy2hjYp8KBRH4g4eziiJcZ4I7qeXfd0PPrV0lHmFT4rlEkkQ2wMyVwXjFXhSSu5luWzKNp9z5PAP6wIbA43T3QQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-54f587f6-1deb-43e9-a4ea-d8a414104366","name":"release-54f587f6-1deb-43e9-a4ea-d8a414104366","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6944662a-cf1d-46d5-a326-9ec8bc8284e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184685107375692239512214128663113588363269367750895286717539862761085392625325328369925252205124101570794623641951317701323679347114827485133522783696065084187247811232501983798301101649027143549365538114152742678428667667571825721977688360810282127218902397054177490984534156253665717805415543285219460949483746688114010532691","osProfile":{"computerName":"jianyunt2"},"vmId":"ded9bb96-3c7e-4806-b3d3-3f42175deed5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA88Sft33FEL1qcWEOODm5V8ZzxSdfPSo1MgQweV3PJOXc7xuSu6YU2nh9F9DbReIpJCG1LNBWHIOku2EZWPg7y8tNREz9BndE8VdJu33ziXDP4nPy2owz63K/L/Uvrotbpg+aAsEdCAihka4g4dWS1z+gjhGISDtPpM4sYteJhSJ5He1JuceyOfB8vnL2v81GK8WVkrTvpxHGQE0JI2Si07UHq8b38EPlh20OJJ9zjEwgcM6ltrPfwGkJNCTebrB7wCagUMz6lB7+Rz5HB4iy0niLpjPUDbUIcsrNgp+wLHXGCEH7x9uDr/rvXUP8bD39IRZIMPLfPZmm6QYJZKHNEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1e18ce3c-121a-4393-838c-ce582adb750e","name":"release-1e18ce3c-121a-4393-838c-ce582adb750e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1ce2c57c-e9c8-4eee-9a92-36ee0d4e1f36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41850051206608667246894342629909123356987409670401362829966691148652268089310347844099261535661695469456225467457183936124938671395621463401910161284737774575390826106479467007384712322791569354885821894734366047232808232725329166617942580432945467826454355691184148263566075117865223484923912972579799199820279777422944796698033","osProfile":{"computerName":"jianyunt2"},"vmId":"3424e874-43c0-409e-af65-0878fbc2e37d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxlDruMqu2hZf2Ya69s4AsBNDdlg00e2Jy/IeIOV8M3iCefxipS2gpK+qGQ+S/K+CSWkHVfLq2OCsS7NzylRI/jxqbMhUjj3/3rvO/V65y7Mg0Tb3pOIYdq67oGuHASnjsC2ASBO6j+m0RGgELE7Z/GD/aJtGnPjbz2otx+FI37jd3etDM7XjEC4hb0loxDmkhUJyNVJISCIzpiFrpuDeMzNQMC4cAqfq3TnQLjWBisgmTtGb10cT+qXZnoJ7I0pWSOJEz4SDZpLT53jTSk2URAbQH7lvjMytwf/2ev6PcNNgqSmCrGgHLQX2UQnnqyGhls369Ay91BinrztHBkD4lQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ae787cfb-cda4-4742-9a9e-17b856b1d41b","name":"release-ae787cfb-cda4-4742-9a9e-17b856b1d41b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2bfe0328-49be-4c4a-b56d-06facd8db180","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418797257089763863624854429225176771864457872042309438941939115250266636773511553652909312255965838347726779531693306993118957805965329626127400797097207852414718657594699079848100675038010876394752615062182654620779456613881983652566297955246433713885372935388595739419746793950364537158923670479322421809275502062965659575222396967969970","osProfile":{"computerName":"jianyunt2"},"vmId":"9988ae97-9cea-41ac-a2bf-1e75f275b5b8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0yDtAZlFG3j32dEic0mN4ZVhsU0vn5zoRtrLoyXU7Cixyo+szYYW92D4xvUeecm9bz84p+8SrHEzQQ11QRyM0yDLEbBIbUk9amcx5F8Lcec+4dN1KJga+T5+S2objLK6A8u0+7R9ZjOEtrH3BIjmBd35FSJt7P/lYJ7NWOUTzLAkma941zwHmxX5pGGWngfFx/XdZNu5+sMBFrV09XZ2N4gz3tSz25Zskt1fspNxegjdhKBxeq2su9C1bre6WnBP92AHqH1DAbLbF27k+Wk2Md3CktIsGpmt5KjuTQ91L5Ju89STd/7QMkKllVGX1fObu3S67R9TIfMdHMXAnO65xwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-68e1649b-9a72-424a-bd3c-b29024cd21d9","name":"release-68e1649b-9a72-424a-bd3c-b29024cd21d9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3b698b22-e359-4cfe-bb7e-86d7d1867643","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418590475671710456959908069530131284698229219517094437350373014995291299889249082124061135886123065889989837097954508773781391736526945185498078297251176235769955411854544536281344786173734177209446422272386664842915896020111640740125354387","osProfile":{"computerName":"jianyunt2"},"vmId":"3d7a3757-d21c-4397-bfa5-dabe8df1a2c8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1lszzCdFMcbZtJbTdC7L6dOBJ+IIfWGje0Yge2TC1ootm3DFxELxfkXaMFOP0YyT8buQbDWwpbZwo7qvZ0Zs368bykkjFW5BeAXepc0n063tOK/JVpoxtsxJJWqIrRxL/iIY480eKDeuBPf1V88xD2xB3AfIQNNFqdrCILNVfmXBfU4cJeMTbfJTSpl/uio+B/qbqCVvv8BBihLrUiXF5pxgtfc4g9M6oClY2PUqo5YvrtEBDu3MaH8O5sBA2qhM3pJj4X/SNxDxPzoGDXQLbSJ2BcpVd0IdxLHGurKgD6u6cQUCnIjtvqwAOWOaiIp8eM5TGaGDb6mQfdm3AiWVUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4fab8a43-0cec-4a34-9a8b-ce2ccbfd4979","name":"release-4fab8a43-0cec-4a34-9a8b-ce2ccbfd4979","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"22867bbe-456e-4996-aaf4-a6e1b8520856","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41822102259340788237843101480889687622758719841305861979182724258138293944996661531536286323014508771486101183434372955756321619088318573942232793392072283744329467682362681424794625669191181016468934655734694402421752561694623135209552535056106722885166373439163205608524344509963272712799506649512772638","osProfile":{"computerName":"jianyunt2"},"vmId":"6f7ea411-b908-4152-8095-5ed7a5f82c6c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlGYWygQ7GXzQikqSFuLaP4JcztzJoWinr7mCYFSKRhmv7g/zHwlnMX0+eez41RHj+GhA+Te0NsR4WpOhqXcNdCIw3jPiQ7fBb/YLCO/5rjRFs9COO/4FdD2nPTJr3RBYBdpREVbB1mRUhngduZitauTXQpv5O4BjqbmBVGku7Sqb9CZ2en64/PC/3wiOGVAQ0lAoXn5CwWvzZaFP2ZRwPEXPelqGd40jf4xATI6MuYGPLCKDAOKSAK4uJgBFrkaj4FK4HKPz19d8STUSCX0fZ6jmCdvd2RWbsyzbtMZN+s/FdYrKGHQPD9nLoNNA2Cxp5Prx2KH9Xvar6B9X/2mJGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cb7f79bb-8975-46fc-b695-f3dace4eaafb","name":"release-cb7f79bb-8975-46fc-b695-f3dace4eaafb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7a180cf3-90f9-4511-8992-92bfdce05279","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185888120891405900306519348984722424545302506160085301216644774526094297046096035923631104116198768723293323313871964797956788858263873108925219681528813317968581662605842876184362607774094003965780994675335903848675164529481669491525491371934321237007957331453428185063136744301282464399260","osProfile":{"computerName":"jianyunt2"},"vmId":"d7469ca0-edc0-41d9-ac3f-f626562a18b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA00RxiYm1VlkLQUqhkWNS+gbE0Fc49ahuEx5bO2SfKJepGCr86zOVyP8kz/M+WajAEzGaX9C3s1wBIyhjNQ2Q/1KQO2xat+6gOBsLcKLI27dYYVVClK8Ykeqnz74PWxsIMAbHJ0z1QPy+wRI8Wc5ukjt3zSyUyU0eiaDr8UfTEiYMnkey5hFl+H0bn83AoQ4AOdTufCbIhi0lmNAnzYCAk6xtXzThMW4cYl8CeHtYBuYUC2V6tcYvuLzNsVq3doF+DQWCLN9RtdDilxnrBYY6KijD75CD8EqC/hgXRYEIbaEYQF6RtkPvi+7Xoiosc9c/pJnh3cjEUDaoA3rPEaqGowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ea2934e3-e4d4-4789-85cd-41d40adbd8b5","name":"release-ea2934e3-e4d4-4789-85cd-41d40adbd8b5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cccf3c80-266a-448c-b677-5c58101cccd1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184199682659958720958212947857747554857934352967527272557458893291277168335448845166483641124752779810268512347842347893456832452867582876792961941575205545262318037879256696838061947935010131648433873662395959010789502312972483583858167033475363355949427466834856800338770969506969369072226167279916056596197075573187","osProfile":{"computerName":"jianyunt2"},"vmId":"66172410-b65e-4ed9-bf3e-f4b133129a1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzu7MJafDAy3DbpP8kiX8uY9s3nIE9IWFA3a/D3x4I3EJPX8x6H/QcjfvO5Ln9IbNYwJFkXeDziclHQIpe3S8CBh77oaBk2ToUoJh7D4TJYX+buJWAl1LNCew9/9GXT5FuH1avVVgzY+RBuP44w4A749JrGlKSu59DXDtn65GWpE+HX8NCSvxCHkKfhj3R5/1od9niIz4T1i/NiSoxRpU3jhAA/mdEghBtURYTOMaQrAB6V4+37/QQthViyV9kqGuTpAUyk6TJJFjXpDSb3Jle7Vd/WDT5LVhWPCjPm92kWjbqby5ZIeH8/ldtP0E6OXx2lyEXFXrKuF12T8S6nyrmwIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVLbbptAEP0Xq%2fSpxBSwgUhRdZaLs06TcDGW8ojxGq%2bQgQLxJVH67R1spwpaMWdnZs%2bcnZ33USWO%2fW9Zld3o9n3kI1mkie6nCEe3o23fN93teLzLqqwQO1H1N9nbaytu8no37l5XXd7Kppd11Y1XE2Fapp2rm6mTqebUylXbMh1V6Bsnt%2fO1sV5p46at93It2m78KPO27upNf3N%2fWrVy7da75rUXVCnfykp0v7JGqnvKJPI7XfvpqJqtarratGIvxeH7t66UzaIuRXWnTJhiMUXX%2b2FLVjEw%2fHUWc4%2fw3yOKJzxm4s2wqvmJ4%2fIpBgU9RTfiBSVNCCxid0CaRpgnS8JEYnD%2fmdB0MjGmtAvCIQfFjMsXecKzXxWhzaKNogdUkKdEOIAjw2NEmGQFZkByyBmsj1F4cZXpEKClX2PM2UahRY50YBiCpzmCA3ywB%2fDIvTIELkUOYgsH8A8uEGO2DI%2fxZ%2f0yvaeEzZEogJxxSB9uyNhQN3DO3IO6%2f4qsS2TTpd6eMqYBDDKUcfEblxPG6azSsZMCM8AE2RA4AClczEzMDsHQ04T6AnCfLf%2bQ6lnEwOuCRwUnbzCPUfbgIGHJfAkWQ0PwXD9JVqCmc%2fuB048YjyNEdOMiYT4eXJR0fY7Cf3DrxWcn7K86HVLsUwUydIehdZdX8PSICKjimR5bwpEfAaUr4L3g%2fPb6DxqUNqsKcR2b8xzt5NcpOufsMurpdbACapCuWN6wJt7o4%2bMf"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1h1vjx_e2etest","name":"George2-Win12-1h1vjx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aed0080f-4ab1-4b2d-aecb-f67944ccb4f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"addd1a2e-a5c8-4bad-a44e-22765fbe4f06","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAymTxR0j3XbJR8kd9EbVU3QEt3Bc/Q1MmwLZbn7r1mLxil8LSUHR0N5KPVm3KmFokFa8VhDw5+ORyfu1XuD0AiY6hwrcW3LLMsKZkMkRwPYZapaeTKhX0ytFCtTl+NuAvCGJw45XxMLb6SetskVr8gAGZH5WJ+zBtXK7sCCtsOKSidozKcRFiRVUXMeQiVUHOvorEDqB1nu1p9ewGXt2OtZZSIwNVp52BykIdqDoOfberMsVtBX7/c1VkXscjqxdPl+7O9nuDQZ2M56b6Z0irVcOkj9waKfaD6pLo+LLULadm/4p8n74w8xQf6xGHg9PcKC4kEznLRhR8bCOPXR3H1wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1khp5b_e2etest","name":"George2-Win12-1khp5b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ea761bb-f064-4802-8438-cee6b6f80843","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4ff3dc86-ea0b-4dde-9d43-29239c49def6","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAuX8T1cpS8EOz3HwjaLOhABDEADQE7Tf+iWo1uw/eMMupYcEDzc8n07o68RKFsEDGDFfDMFme8NGez/tISKKAWUpiMvo2UWGhXUVMj6z9A2BdDvQjBP7uTlA0lnfZINNfKtjAWKCrmMgq3Aeb/uuchjo0CjlhIvpVifIqdMrO4S9VtE4hl5MhWOyMLRtGtiDIaeodIWwzpd7zRRrhcClSOWawGx4dQ63X99Yy6TTcd7MdglBkDLbdpwU+YTCiDOmm0cR9jwXhB9K6ZGpOMgfnSPeXeJ7he6DkmmfDgS/NiiNDK6OlNryzubPwjlydpMqP592oU72YoNMFAJnvcJiCtQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_CENTOS8","name":"0.8.20136.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8ed71f41-0829-432b-beff-cb332faa8fce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"e40958cc-222a-4504-8446-fcccf65050f8","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAwG6bRzu1HFRpZLKDDHwkZKo0iz9vFZDAQWS8ZcxjkVROoNdij18SzgYKG/I/PEGgIMGqOWjpwWVmB/wue7RWoJaw2uyr0ikfrCtEskawIdny+pcGKUddyVzHuOs5QBEUH5OMjCk13YViyw8r41894bUw4ptVMYHcx/js40/6Pb3wGCJK5NFdXo8ykQP5V3bzh7a5wEyijeZs4caJnjwiXfga0xBzn+gFceLRAjFBY7BsWPhzBshQouidFfvDLA7xt6q84xZLtV5O71ku/GQUtUCrsIuk+b26P7sUUbMtJ3ja98M36N8XdA3lkKA0EdOU7a/x7kYW1rTFklikTAiUawIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001","name":"0.8.20136.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"54911ab4-88a6-4b82-b0a8-9a602e310461","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az548"},"vmId":"40e6fbd8-26ae-40d5-95da-0b733d8a6d6e","vmUuid":"E76DDB17-07B5-2D47-A138-62CB361A95A2","clientPublicKey":"MIIBCgKCAQEAqn0KmWNXr7GbCJGrfGUB9pRiGQDtNNAKUdy4GsMhAtMO4cw/0wwx2Glv/Z4k/WjJ3c4Inu/VZlJPpkAwQAgK6c+vw4sj6kZ05CY7QseSXlsXd0Quxs2BM0qZ1rAPIKIKvhV5r8GnyrjrxujH6VppAmKoSOLwYtUM16rcvh0xjysjhlnuRQak71pM3femDErJ215gQoRXhZ9vAgpRzDGDAxiHChJnA0I1aPHs5YQzof902c18tyU6H26QEZiyAEKcXv/9Rn/gNgRm35CCKrEkSCuBPxjrK4YLTl1HiP9k6k2Zj1iEFbApGRsZRaGH4t6ozc55D+eksnpS8OrNEmkJvwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az548.zsjyr1i2ym4ezfv5jcqjrta0me.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_SLES15","name":"0.8.20136.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e08a86fb-45b7-4424-99be-e5e5c7850c4d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"94b1e4a9-70f6-4672-b6a2-69194aba5a28","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtAYds3gNiSD3R/zF61pwt5NgohNw0X7ABRcbDA1gPMB2wtiJ/Y2hwMOfyIOZCq7WJXSUAT9C8xCQG08Za5ms2JekA9jhxeYHUxrgZtkczvDYrqM16QpMr6+VlplKYkJFNksX3bV0C9KR5mWT+vH/byFYMpBwMsQoHJ2mRxEifjw6fiEAiRgsWueMuXlhNV9a9K1I4bsUtVmUgHMStRlhkFp+jsoVyW3+KkigG7bBJPl0WRBdfcBv8WEvXJV+Ik++Se5xeW72oO3ecR/wz+ycM+C746EXEFpGYz3A17CBobcs27m8mVKWlmajI3Xltysb6XYReE+hJ3GKFrG39y02hQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_AMAZON2","name":"0.8.20136.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53e4f738-7bf3-41f9-a29f-80ad0eebafa2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"1367e536-f4cf-44a7-a2ec-93ad4eceda73","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAsnC5v1UIMhuz7QOKc1gh/6Brp14QznSxVzfcYfg/2e/7g2Z4c59k60pgk1HDVplFFys80RKl1v3s2A0wRZWDirLiMUf3uAiWh2SNqPeXADjOuiXiSoqScHokNGFJFjQ5XTlQHDzW+fQQZfQlAgoevOLlDrJiD7GxxbLzDhCtmsxO3qU5pyE35A/BmStlS2hCO3+fZslETwlnUt1/bfW3HZ5qrSzRfRoocneBZrYHcXp5aS0uJltmDVM7WWSshPwCxxYGxIC/MQllGAykzrCiuGnjdpY4PJYN5TYi2NvVfYKiNsyAP9MBJUfrV51L+exA1FWpTS1U8e5yHzwgQQ+TjwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_RHEL7","name":"0.8.20136.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"457ae1ca-7911-4ab1-8d59-3ff35145e882","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c38722db-fa0a-41bc-ada5-e646e1722a93","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAuVTqYK04LGXY1fjj7ADBpDsyUmAvx93/SD9l97TciY24n1Y2JN007GoyvnGldKDXsPEvU2+V0mCaFaFezVV6132olOldSq/J0p6DW6BeRbtMqbiHHSe8fJuc1sOKH5Tj8QD4Kh3hPHo0wgh3h+DP5dSt2cdkmMOsBCA2h8yOFBnxntFQp+K+Kw5ta5DJeZZmAM2vVRxkjBbERRIe+O4Cus14TpZ1XDQDnvacKmZyqcJcApoi1s4CcHCA23k5ghO+yO2MT0JLFPZ764PeK0NgMFBzH4W0l9cxkYyhTuswjgMyXDGQx5vSWSR0Mc/e3KQn61iNuY9qXT7XF0GvNjRXrwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-19r8wk_e2etest","name":"George2-SLES15-19r8wk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c261c137-c169-46cb-904c-5e73609d1f81","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e8d4f88a-1918-4bbd-a512-1b195629ba5f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAxMfiv5ewZQsryHoS+HIrgc0my3yqGYfICgJQbDN5lWL+OpwFI0X9BJDbKQyhXMO/kuo1xU5+HobQb8KiBoYoaTyauWZajdy7MXGe9Fyo/X8Eb1uwoRIi/x70Tyqj8SQQdXRezvVoMausG8scgI26iacLGO+RJt8t3V2lqdd10GraqZFiI4dzmIBwcwzL3C3WWEPUf72vP0du3Wrp1so8TzrCfiShXWeOiOILzIOp6QJn3DKu4jbPv7gG4qvs903mGQ/PxLu/o4zcakJjnw8f2rgov+dRxMBCyYBMX2NrMG/KtZc86CE+hFNni8I3OTh2cGHGCBA2IhHC7x5IHll/AQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internfvtna_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internfvtna_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d5fc6b51-96f6-4377-9416-350d05e8e851","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"24ac3393-a37d-4eae-b4e3-b62a52352b9c","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA3qDg5wX/DbJFgw6I4VWYWB87iKREcBnTTGeSm37yVOP/GPKfKIqeRBJKsRawoiqHZ7jDQ87C0Hm8qe16NUiSdiNjq6TDNWjjj3xjJn2eOBu8MRmGqgYvoJzbUeqAlPxJV9jgGXhUZNRKvrOS9JjZ9BwdhrIiSPsCs8cUo4zYldC5oGwXoKiH0GxtCBeDVAzHgk0XKbw1z722/IoHG94l+lTmwAMZJCUC/aBY9ReoUKocTRA3Re/4o+M1K+yZuCrNwpVB6/PRxFg66fZKxZP1gPp0VuCByM5/sx8CQCXsj/+8kN2aljGxYqi2DeAvdnXidEcBsL76y41T6wLq7GSDYQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_CENTOS8","name":"0.8.20136.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97d36dc5-cdc8-4d5b-8a7c-e35c40752608","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"019484c1-494e-4993-871c-03619dea1f9d","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAo8ZS0QEtOLYAgkWSxQOgLJH/yqJlL+usRvFCuWghEi1sEBBb9gBkkQGE5Tq//sGfoUjvy+zxhOQBlGwMjFqX9JfY6EU0VzFbi5IL3+QT3uLWBS6C3fz1Ki4v8v4fPvRM/rmqm5YZYFM2WlUuW9M4+c5U7+xuQW67/CuujA70BlmqBiXl9usBoadAWi1I+yQ4ClJhXqqD++bvvOktliAxZXaosWyoXaHgFhj7pcMjAx6xNjX34asxdnNWdzhTbiL+Y9ASj8xNAveWuK/AYGQ5aFZjs0U21z2NCFIPFDBEt5p1GzvWcoXvitiL+C7bULHDBwGEG6HxZ8rN5AfUABlixQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003","name":"0.8.20136.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"abd1d548-b9f5-4ce0-a9ed-c2e09c510c66","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az548"},"vmId":"8db24f37-4d54-4acf-8b89-f96281b854a7","vmUuid":"FC224E98-E214-5D4B-A858-1E64FB792090","clientPublicKey":"MIIBCgKCAQEAyr4w7MSpNg0oQjhGSnpvRLz/fL8DN1oGVkmCwBmdPwrzhTFiih/g0a1orrJfHJ6OzoI+LZFyrMGjJaHt4YPmaEDwLTPoDkIYmoOingbeC7+9+IZb9Btp2lw3yL1gZqhBcJYGoqT2mLwBtDUOozaYjKnVL03zbvJNA6xnHuo8yrobOE+oomEJuCGSnuOSG3dnZnyjVudQukgMuFygdoj8rB/JYgFVSU2mxRHZj/o4S341GC24+cQ5tLBUuW4pCCB1uReHVO+Gd4d9ac5dedipCXAQ0RB31WZPjTh3cxfoHTF5kGtiiFlG1YDJCGfF4suluTRa53bR1IDPgpXXb8X+owIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az548.fg15jhqepohupeyanmzswwgoze.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_SLES15","name":"0.8.20136.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eecd24f0-0a89-478f-b782-631aa7579806","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"66e3c8f6-2721-4f7e-93ef-a53ae6c377ac","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAw7mBmYb+cAYjqJwmpG6wo0kwkyiDK5eDXkI/JMY24WrT56aKqhm7cRZ3/VgjuQFAe8PzGIXzAS8d/gwDOfA59b+Pn5qQSA88Ais750M1UWyIYIJmjulmMxdX/p7uUJdwsvwa5rfvhAhU0TesmXSF5LcjxYHzXY06fzTwS38pb7/odgbdGp75MN3mV3AW73BgdA2K3UtH4iuZg2BNPbEHrMKL8qr6HufNmq74X8wNtiYvIj38afor14eSIz3+nzKAVAmUPflIydG9Kt1AElsZbKoHnIPTW689VRfvIMqzv2BhcSjrC4lLNKQz5WG+PkhB234DtEuOkMMGrQeaJC+kSQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_AMAZON2","name":"0.8.20136.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a250ad0-009e-4c38-8c60-47d72d6905c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8f749e0e-0b3f-498f-a0e3-ccfc45fa2f21","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAuU9fK0LeLh+hF94FpwNbZG8yBi3pUBmo6iTMv6Z+vDWF8NOQaIinDyXl5IoYcl58q1LkqyH5r6xwbnmVoCXm0275n3HwqjhK6qmIBhHgyfW1XJfsIeoh5fzbWdd1JxDUXmfSlZrBtKZEeen561wU0nQOyz+LxmNiHNL+HwYpaZH0GLdx/42PWa2sVU1S8EpHWSwA5kHyCnq8/OvEi4nKpGz8zb44ZLggdGexy8KQ6MO0xvZxnwzkWi7ZwCf1+WVCDwb57oDxOyYjHBrFQblF4uEzXQZGTVtqeSPqod8XequLfLuZzdc1CRH4iTfMBws3Qj+CMDp6FXiMOp+L4FjsUwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_RHEL7","name":"0.8.20136.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d4146d38-efa4-47dd-8b1d-afc235c5fabb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"eeab2c81-b3ae-40ae-bbbb-6f9eb072d854","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvWC2Y9mS+BHERYKCpAiXhdMpVyem4aTwwEc607H+cz1E/EX1hMlMrvDh8nl5lti2MyIsAjpzEeP2wyBI15oi8jWeVVy00eSAMZFyY8yJMaXl/Skk/nJSoXzNk59xW+hTpIvCDdcgaz13ilNFG4o8HKcW5zBOlTo9eZjK8IhyjWWJr+D1+g9plivjgbT6/zGdyqMR4Ab5d8i1/PjqDy8gIw9UUFvRX0nsudwNI4E25EVJSKMi0CNnuW2JVBMHPhFrPA7vTDbZTgI6EzEEuHrMQ6GexVpZNaDR9ygT+mVOU565RnMapCT9zdfFoN96AIOGFn15z42hxOlBAlMbG3ykZQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-19cz62_e2etest","name":"George2-SLES15-19cz62_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98c3d359-beed-4953-b071-e3ebef8cfa84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"45665547-1dc0-4cff-bfa0-c3adfd8408e7","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAzPmetQVqm1DrpMpco0mD+VCh+47dSTSI87+fTEcC9Uvlie/disDHqXqRo7k5gEF4L5AebFO1xPB23hObSF+9K+ykmuG117SWebxKe9+aeoh+hBpE/NsWA4QtHOm/MhZOPzKigZTkLl2zstVieCMCHMArroSwOmHJKiqxMOFWyhSqa0QkTr3CZnloULgMXp9gIHp4f2w7nwC4tt6UkwT33BVuQIpNhNov8AZDyb4USi87alvgHF5wpbKkqd+XdjinXAYL29+Dk4HdV9Ek+D2wIsrtYcdnx1CNuwHIflXo6TwN8ZKUI0Oy+i49/RBz+854qFhQqJus75pbECDdNRZnFwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1pcthf_e2etest","name":"George2-RHEL7-1pcthf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a59d480-e7d1-4550-bad0-70a8fcee07ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"ca6bf979-44f5-4448-a09b-909861c20154","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtop8BcBqZjgMkCz73Iv74ZG0KTq3Opef4mIhIRqxR5NZI+C/x6Au3FZ6uH56wd+DgeNERbY+bQ+QQ2iBaRpHuISUhTosbDGKiUDepdZY+Fwr55zg9CMe49x9OVUPUCKv1KNvBg4FjzVbJhnrWOBF9tFYJddQt05RojzD3wDT0mRkouq4t5g9occ82RUH6a8zELN1gBKOCW/nGPZGOKsstgaiSLImjZnCO6fIl1VTDIZaSWb7qol0RC8nSxxHh3uJHo8tM8JOtptbP7zSvl9eQ/+Bz6aUi6YMIFSDbJ3YuZ2/i6Ew3woSoiXKFbNl8cQZIK9oXb0rEJsN+dfTFqvdawIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internxjp3r_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internxjp3r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"719f8c2e-784d-49b1-b4c1-47fc9056cdef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8014efc3-c830-473b-9ba3-aada79342bee","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAs0SwOfk7NkwA4IVA7/Vi2geDsLhG9hIYfJHOEDjzehxflH9JiTJKFHlasWVJet9VPfTol0rexqtBJJvA0m4ik6+YT2gAbFXCI99iDPxDuFW5D6yYSrcu63iMU5bzRRKJRJqhLOn2RuSiROJ6zS0sgMysDJF5AgaLlo54HE4uAUa3DpT+k915G1sotR6lt/5i8RNGpWi+z7SUufCk5sADMZZW6dkI3ElMh8wbYjKLBaL7lvi7J0/hMJTGrEqQmbbFkSa41neK90T+ron9TBbj2IzIRs2Lqbj58MCXSc8GnpFme4wv6lWrGOK41/VR/DMzSTkCnRnHfDUq2F1f2PVw5QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16hdpo_e2etest","name":"George2-Win12-16hdpo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5bdbb17d-0127-4b77-9992-9aab30a5dbe0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4fb53aae-e647-4b46-9261-c58488c83d40","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxsGj6vfk3XzD5cDQHBQ4UCMxohXxI4iUgpGfolBdZ8dBtOMWAW/ZGxAzyFvfGYhWJ1Fa0d+FhSijxih4ILQP4ze+Y1htBK5Fmpj3r2NoK93R2dpfjN7EEQgyBni/R3JEB5srP6cOH28rBvO0dxRIHclxNEfyfErHZHW5EOr4in0oBHBFQQoQRTT2oZB2UqxPeJ9RbkPDp5sweeKVVX8WUaXS4gIGwHlGMM4u+kCEopCoOEfnoAu+e6zCTWkbKfA8DwNDBBKjbABU7wxYBkcFxTIr9A4y9f90SjTpRZN6OQn7kJw+KIy8epBq2mCqgTZqY0RiDvJ1rSampRTEl95OCQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1h32bg_e2etest","name":"George2-Win12-1h32bg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1a02215d-7999-4df9-9875-5012a56ea170","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"544e900c-dac6-4fc4-b2eb-38c2228f09e3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA423hOSna5lvetTzdV5b8dUOGAUCRBfliMGmpciE7imxynNj/pUMjBCR6iSvfZfHWGzag2SViIDD3TEfTX++UeC7LEpy6YS1h6ZnmMCtAAPE0rz1TI987bESSgZTUvWEy4tXAcsQOeM15ilbq6unsBKJi35J1DskXKtYBEDz3khEWAk5M0DIybb6P7Y0u46e7QGwzno3iC26ntUcrTbyzQJrRd+Ivf+Vpm8m1iW9O4CwQ1Ps1QnVvkSE36RCIMJlEDlntmm7gal13tAqgJ9tVjWdalHVciOlxQa2TUhZBk75GAPDDU5Mskm2hJSCCb0ZPC6Ho/eIlYfogsL53w6YhhwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004","name":"0.8.20136.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e64ba1ea-cd9d-49c5-a256-552e36dea64b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"7ce91cd4-2000-4c80-b955-1625ebe6792c","vmUuid":"72133E5A-9249-0843-BD44-4404E9B3B80A","clientPublicKey":"MIIBCgKCAQEAx9wKDTbyQAP5uP596VvCEOAqT0phok+91l+jauVK78gQlmc/iXwhRW/3rCCkDkcILZ5Y3r7HRgOArainxXv5xYI4wuDDYFnvPfMNc7U3rOa2VE4QHJtRn6Ces7bgGG2hET62TJIJubNVgUXRXUj3uWquBEgfTkpNCtlHuRSaX3GxyCypIUtBJg0jZvMoGv3vdn26HtmhZ7wtvsVbs3efxZ8IvoIOKzCoX/u4pLJ8A3zg8MNAneAde4Sf/kcmrOh5aT/R6p1kCtTCe/BaJHYb35M7bbXNF/ihMbZZzIvU1/J2eT8E1i82nJxK5Y79nq4pzx51PegguCdOKTTlvlEQLQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.zpcne4xntavulcipgeiqvzfuxb.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_CENTOS8","name":"0.8.20136.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"363e8e65-f0bb-4e9e-b816-ea7189e73912","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"49d10c59-f995-460e-9e21-0e8fab19c5c6","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAtkahKnPfea9yft+0MDdflDdBfYWeThtu6P/J0QTs0jJqr/mJd0Gbe+j8g98ZDzatTJ9lXdqYs+68jF8V2u8KllPc5vYIvo2TTSGtLOzFKB62VJGcF2ysmpqkHrnnHWd/Dj8pDn78acwe5dG++7UogswdWztsLxDSAYm8PpGDKbXZBH6e19QD+Fa5TLE/szD2X3+jJObVc6bP0NsmGxiP5nUQHLcy7B27oCIBlLVUkZyCpjabf4siPGT0fqUjvuKqxftUxSf+dyv0rrRpEDrVouGOXX1rflssI1a9Zj9fR5NQru8fSh5SSszSk9i1ZA/oppbQkG4OMFctyqcX/jcyCQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_SLES15","name":"0.8.20136.004_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3eb80ed-b330-4e6f-825e-22f72318bf97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e05108bf-147f-43e0-a67a-d1e619acac0f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwflQG7z3mg7aeXHF8nmAaoDUOXozGpwptEw1Q3OYzVDrnB8kBVopecpupJS0ZbreYousD1UTJMYv4DCf28Tu+JCLCVEUV6O9T+eYudAhFpWCNj/9TM+qvOtgAH/oilgEvx2TKrkzV6WBwTs275oi4/xU66bfA+3zPCXJVxhNkizi8N+uIop+gOTBvzCctTsCdRYLfU4T6kDIuTG7pF4S0UKczfQrDnrcgekb4lYFJRb4ySU20Pefbbj4pHBj2BdF4UzZfBtUMGacZhWWc/re0h0GLQIERARr+Fe7fEStBYUtQlsbCh8rLB7eLxI36jObNe3zlTzKALRxBX72Sm0emQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_AMAZON2","name":"0.8.20136.004_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"14860c5a-3c53-4bab-bc5c-023d7a2b3145","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"860856e2-cfe5-4103-a033-4ed8a5eac018","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEApPfdU9KqAmiMgsmLPtlvFpTzyS7CPonNKZHPzt6YtDKxSwYCqbPUxQPUNjB+DLt1d3E57azou3bo2BV2hZdqabaVQjrC/0pXxJMo7pT70y2gZBJh1pC+HEF07c0Rld5g/mnW5mkfgdEWqH8DRbl+IbmjUzisOTZ+qmn4wzB8HRh6/gLz/aHO0wWpAlro8IqvJ5x0jfm31pwKF580jNXCBznAiImJsf9CigTNjVj/WsWCRguM7LxLAPhq5O5i+nE2S3nuqBcIbFOgkqtgUgftqOubQSfyMUwSlw2QQpP5kX5PvG6YWhsqtdfT45vjXrh5xhCLJHWJaX10Te22pUcrAwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_RHEL7","name":"0.8.20136.004_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2fdf0c08-01ab-4910-a7dd-a1db014ce8f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"24737347-b5ca-4ff6-9b18-bfa7969b153d","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAw3wZ+hCNJd8QxWHuPYDPd+iILnrkwALy/4oeE+3B7hT6d/lQAA6317KS90ZkvmPCf6DveUW02dAux/xWo8hRbxQD+4t/oqn+sobTwDr0zEsAjGqbBL42f4lSbDHdXtp6ZflzAZ2d7wzncijPLxc6Wxw8ENs/2CMhLFk5rjWXf7HS44XP6mtQzpxdXhkc/w9gYWIFL3gDnaSXeEfmmW33rsDIhUQGQo2Qu0X0gY+k2xX5Q/8NJXju+aG73ZXXpmDQrrY0d5OzSA2liu2Tll4FUPR+fuShUsQF5B7JE++z4Fnk4F6XaVEvT336cl3ejo4yR8E0lkEDEizRtrkpKxoikQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1otpmx_e2etest","name":"George2-SLES15-1otpmx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bedb2f6e-2c22-4c80-8fa4-0d9df0b71311","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"fed02961-8104-49e6-9652-7264271bdf29","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0A+8KooV5cW2ZjQxuipyQOEzOqYaVoePMcyT/VhfrjXs7VptLY+XYujcriN3zcbrvtP0C2qhZEliB5LX9Rr6o826U5r7DzFbPCDP99BgL4aa1VNbYOuoCHq/DZkrQLPOpOenzGHbdf7E+toYbTT9AwtfJyfvzkX6w0qLmC/A9kFrx9dgvvnSJ1KAZ/3tUOZspELbLDcI7W0rvTsJgnlkNnA8KJHl8QlzTbTozQLYwJ2RyHZnYrOm/zfkABNI1g0Jdax/DCXPUsjPZkC91DFgvF8aUTu2nidUwYjoWbTZ7efwB6aCdjIihm8MaxbrdJ9ILzRwx1LMjyyxsFALZ93I+QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern65zuy_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern65zuy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a66286ae-3282-44f3-bf41-8513dd886880","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"57ce28eb-d800-44b6-a15f-516da0d7ee50","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA18whmzTNbNIe/nfwYhf+WQSwn8LFVHEGEOFLIJwPImJphvaHKHoVs5fYGcL4U8wq4RXx8WMUa588lU/yl8crxIoBNpuaWwZ+KO1Pj6c59TI15fPb30NChCUOt+neIPdgQKQrRWDhdGlTk9sk2+BdQwbOgjDfCB6QkOVDjFOqRFOFE05KhEqAHgaAKq+Brs9igvCvUtMLbGlhHdTqNx3sqFEROND8bd8HRUTS2e5hu4Zr8DxzmEHwrKE12C4aNjZswgNco+0RJbq4vovg7/MKk0GmafK5ZECYicMwFfs51ZSLTuO41QmmuC1VUexYsHg8K95ewnLvXsF4D+xdU+v5WQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1bh237_e2etest","name":"George2-Win12-1bh237_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8051019-f38d-40a7-9d03-2596ca2df9b7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ceb4e4c1-7a5e-4cac-b6d6-089fe5266790","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsq9q+RC/6V4WiDB1BeQ2PcgwOXvJR/rREXXvcwBQl7ALBFjkk6YVilkSoVKVGBE3A9DonDSQrZyOrXybUBtdEftjG4BVEgKHPTHeMDTCjWlmueZtIx01sXPCm06yxEkEUl7RUB7RgbFCZxGsaTsOUfTrEEgVjlCk4rteqstgNrVCYUf84HzzEaS9ObiPIgCWeOaJzf7kL3ZZicvO7p/SqtS633TRKolZwTYdii86V9VpGglTDuh2V40F8vIBXfM0qRnSvXMq6aaZKsreo+zGNvGqtX3i43Ul+0+qPeBH3SarXUjxd//QReO7HDEAsPv7VBQBL567sE1w6n/WZ1hegwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1q4dz2_e2etest","name":"George2-Win12-1q4dz2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e62eb495-a997-4278-b407-1ee93d77f2d1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"b053cbb0-3e1c-4788-8119-af5fa93e8265","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxwlhJauFf3LkxJBUP8Lk/rNgpGuMfpjgRJp3Us+VqlPPwlwkXz2XzOp3fqZPoodcXPKRBRXzZInhgxdX4grFqmbF20E34y6TH0BoCHaY8XsDYRCLkRMs0aAJuEZkEi4MjTthiQIwBk8yFyW8wSWTmXm81yRFISy+Jv9OrjQwbZ7Do3ZE4FFgX84jE3y6FIb1uF6OGJA3/MmLKXg+4DLuJnJK8zj1mL39oomhjTeMQ/BPRpneheQhJr/7xdH3/3eyUHLzPwqRpyXqzkN08kWg0HdrTFK0pJ34uhdmz6pge1uyuo+CyL7Ub0ZqIrshqZ33U/6N3W4tXYklQfL433f2RQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_CENTOS8","name":"0.8.20136.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6bcc6472-9884-4c77-984a-d769a64b5fc6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6e3f035d-b25d-4cf0-a8e5-467b795be284","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAu5xSFjW2m/UQ4yV03bgChS61BMm88JGRX2xHk2waTANsfjvp9/ZPnOrMTinj6PWp4G0rqLOGFjKCTxU7DeUgtjl5nDjR5PEQ5ykn1fklZs0PxqfcJkbgmNBw1CZzXHKgBvEsNyiK9kJ9NnEdGjjJDlhtyF21zR2LI5wrB4c2XNL0Ka9SwyWBrB+FL7m8x4rBK3CU+e/WtPZ2gVQCtZwL8HPFaXU23rrkGRToEGCku52OsaDiGQl8eggDFG+TWpFnmiIG8KzOXg4pN25Jg1iTH3DyTgnCPVDGlmBESjej8XTlG4YvxwrBXrfiIvEdsF49XGB81dFbuMujhz5CIwnHIwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005","name":"0.8.20136.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7d48ae29-3715-4df6-b83f-b5af96662c26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"39769dc5-52b3-4a04-9dce-40bad0c09476","vmUuid":"3B70B7B6-AAC6-4B48-9BC7-BF709594B6C8","clientPublicKey":"MIIBCgKCAQEAxzdBYlZuVzTdOOONIuJiJIL/UtsTILioJXyO2I7j31NRepFE+5O00e3Ndqjvmjn1YVRkw/MY5N4ZyxL4tWe+XYZAuC4l6FzcJHupbaWhxE816hbzln+JlgA4+lokU0h3GnCRXJ25viJAOMyKSxL/2/09ZgiS7dlZG5+jNnpsZRWGBxQqHrpEIVStiCCdaCeCK708UPwj4rp5NthjggNRtE4zpVbLGugdnyPtg5Z9GK0IGzFCdk02OaNQjbkMI9N1xSnwSf84izEVliNUFoT9778qLm0tes+NfrqpgSEes1d7dZ+Fq40e7guwBkzJ+k5PTsc0fo9QrMmq5l3hxaOVPQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.airydkjhyxte5j5rmihydofhkf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_AMAZON2","name":"0.8.20136.005_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"82683f40-a6bc-4e45-bd74-7bb8ed5ea5f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8d33fcc2-c7e9-4015-8227-924cb7190a15","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAu+G24lOoMgZcfg/t0sg1mF7nS6ix99gH3d01eypUcHKvakgmLA5QWCKvckWNPaU/TH7wbJrvUrhIiQy7jsbD8+VTKUu+OpUKIkwmZEuzpDdXLo0uqTOKIHEpsZGNZ4qkzYyX7nzISJWLjgVevB50/osKSQgsnbDIpeWUma7InaKN8DPuJw30uiziLN8Z8yANZ1yKP2SfeIkvkKzOqitXE0XPOa3RKiObrTp+WlsqZzvFL2UyPA/83Qn4b/tq3dmJQHcoznsZKqp1kHF5V94R8PI5v35C5XaV6ynp7BK5jbig+09UkAg1cRc76a1M7vQSUXKYe5L5+/obhRXGIkDoVwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_SLES15","name":"0.8.20136.005_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c8b90309-5d74-452a-a5c4-6a9ff67416d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a1293bda-e86c-4cd2-a7f3-175da1f2c452","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAngPkup9L51Pf8Ub1mRLccSRmRO9UpzeCWFFT4n2sbdQlO7NKlbtNVH+EgUv/EmmN1I3oFJu35ejVJz4kcXk9MmkK8Ig5d/5gpj9myG8UfNQHPG03SYwqwskFsI2uYSyHYK8m/nKFm7v47IhIXqsT9tUaDMg4IUbAodtq2Iizzl78NgD1u0s8xujWlLXINQpGwH8YL8CKl5bEdhirhSQ8FhREIe1ZDkDCfd5Ec34T18ikzg+E6cxBazcAheDSCzdahooGaANrZkQLMJCt2U8iIdH5u6Ykvyp2pTMDN3ib4794Fug31X1Xyi8LyCov/auyq+Kx9HSBGQSqyWE3giW9oQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_RHEL7","name":"0.8.20136.005_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e13ec12e-abb0-42c5-9ff3-d81ab22ec8a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"3dbffc8d-be38-484c-83cd-15bc4c3265d7","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtXJiGFh/VtaOXnGVwFfq5M05/gk4N8qk5VOUaywNZqS+uZMSe5V0c81Uuh8dm+qYIIuyzVlvmjOQIlx1ulc5vOkGhcdrPFRXtChbNPpXNhSxo19oPRPtwDsNBjzZtxQusvOjTcWHlIhlgv3Ax/V3tOmnxXT57v/mk3kGdP7FzQcOcCeht1MYzumX9BeJIaXcv/HbQgPC/vuUXh68M7JoweSsxPFt1FDc1WWIbe3u6Z1zxgt/6Iwpvap3LUOEviGA3Ku2JlVnntDUbflLCmVbqurtC6q/nOeQo4cTkH0qZbde4nST8RcC3NyC3m7BE3dBDprYChLnZUmGJHlzZE46owIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1uskty_e2etest","name":"George2-SLES15-1uskty_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"755385b8-848d-4083-ab99-2fdf2ffb40bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0fa02e8c-0a96-4ae9-a6a5-2e98895d9c32","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwYG3cSlt/9S5Ad2C47OlZBmqbtdE7bAxer93LX5xN9d27VfWqyFqDqP9/SW34QYEXBlQdAKWm1KFk3eutHA8Ez0ZUVisrmrVK9qXx4JdURueIFuzEVJLG11UlpnMMyd0EnPssJsZ+VYS4dRxz+Ify/wmexISG8bW4F0udJK41OEJ3dcFQQsQbsZ7dqoqsUIz4sArDwCGhV8kZIG5IHlR9IGuTx28TAyEmGXb9kJw1CV0JJ2zog4qMFHvcN71y1ghKxh6VKS/NJ93wGL+vo8hMBWi/+SgSXjRZPRCAAvqoxXob34NWESPfmEstqeN6JXv6pzGMG7iXbErz8BPM+GZowIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern1qv5p_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern1qv5p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9f669b2-2019-4ac8-b050-e098846a2cc2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"65a5c03d-f13c-40d4-ac0e-46615637bd08","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAlkPZJhxJA/V32s8GaA1y69Ea2nkvnG8jW1ABf9lNdvoqaZ1IVWB24L5zp554shCWJMTc0zskTvpu1BzK9VXL6TE8SWgvJH/11ja5TnqHcgk/Xew+YNZbJHp2jfdJzKZ03DWuRgsC8lQj37yb1OzabcKVf4tSK6aW029SQ1eCrK0Affjm+Egj3B1TglIX8YhyDLneKFOJix5ShC3RSFND3cKKvSTmc/jDayA+P5dbSBwfbT8bhPFpdmFbJTOQKLBskLvgdopYzKbAH2rfJ50ONRh33gDLlU2H0vqqygBQgR/m1wGzaWr8FubxZm5VjBnwSccw6Ze+JXn0yi554vbq8wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1uevhs_e2etest","name":"George2-Win12-1uevhs_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"65a9bd1e-2a0d-4239-bcc2-487cc374d177","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"be0a6554-ecea-4f8a-9b59-ece410b2ff91","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAz80kRVFuhHi2wc53InRHSiB9ss7HSV049CtOg0vZLwfAcEisNF3gK7i+0la/zUvP+jZqylZqL97g2xtE3hwCxuTd00MCiwES+4tpxxuajd1Kzke14JCu67HCDums+9UgxiMo48/x1fK9ZRPL0wTBx92VLkAumvsHFOgG4oATZTEwsCDLuVF98y9QcEnGFvWedDNUiWK90fk8CoFcu9q4HPJfdaVoEE9f5jWyqxzMXR28/xCg6TA/63dDnfyePXm0+TBybXKIQ9ecRE6ui0ki6ZZeTIrxJsva1ZwHL0+pai1R+/d+MqTQEW7dEMjZxaNP+zAYVpGS27kfBp+erN2P2wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1rc2ql_e2etest","name":"George2-Win12-1rc2ql_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b8878e41-7be5-4680-824f-d02009f1020a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ad32d535-e9e9-46be-92ca-ca63180b73d6","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAvr5TVmW9tCFzRikOSbxbjoVI+1Gx9kuBNfDupteoAzJxuRM/jQTl1sJlnlMV3gY/HINObsrLCb7qSI5rVfvKVBgIurVD/XSYCVpjb3hMLW/FhCQ+XyMBGjISFewqM+mC5E9wPtfXW5S2uhB/joMzKZic+BvUjiToJIgGY1Mb3guz8cFTKXhswLHoETQuYxNDOVlJdSpcboWRNu5Yo7Ivcro6gHwwheqn2dlSG2gg2C8iBK2swhO5GbL7vuUk+2P8+p1xQ3nATaGEdUEyYl1hhC/38/ZXPyF6WS2YdkeDCwIfHt4wr2NhZKNkJHVjwx/tv612A8Dc7XX02wAj39x8hQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006","name":"0.8.20136.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68aaf9c7-6764-4492-a3c7-02b1c17dcee6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"3778ae6d-2642-44be-bdf8-4002f65643e5","vmUuid":"09A9D872-01BA-0741-8C2F-88515D2A465F","clientPublicKey":"MIIBCgKCAQEAoy3bNuyvkCKlcWkLxaLxLqK6OTcyRhb/kAtC8C5Z1lDoayvIJCXUlzVVARzj35F9kGlr/1PfPUv4YSPzdaZ2d8E/wjt1Iq+TO6w1CSR0J0QWljtOlJjOh9jgKjB2BAt0TgCQ7MOk1qGzCBMRKzRpywsie5xkFOEjABBTj+pG6veh+5F7fvTbiEkNkRHAQ78cZEtpBc27gGh6IgewtjVGqS+CKKIgqTGFgLpisddw+mqjgRgnYE5dFJE9e0uIyOkAm5Xm0q+ovyRMjTILFcY9yESEJEhNm4CyxLpQvwTgsm92APgZgBy/AbWcAeKiTQtJZMyU3GcLpjJ2IJCcPOhY5QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.2j3e2trhfdxunnr1oqskkq0moa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_CENTOS8","name":"0.8.20136.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f16e675f-3aac-4abb-8a1c-c45bc8387ca9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"11751fc8-8c7f-4810-adbf-04011073f976","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAy1da9Pmq4vpDmvfII0ssPlSBbqkxHJAanaVsVLHF4fqK8o0zqntzEeFHCa/QjPBtsSWdOYrasFsEuLb3+WPvmyfC++0GTSxhH39YwnP1G17xmF7B4+YzvYaiPFLefWCUj5KQNhD6uL2lzIZkJxpKjAUbTYA37UNEIaN+7wH8SNEC2GUuGyywJCd4DmX1WyvrZK7gYEUMJ3QUrtemabfBUpx5MrQ8+JzSai8BjtunyrqzIkR+wiLQ3zXrVRmlMJhcvM9jOVY5YZjmtA8ZJukTW+tdhuR1TizFuHiDXceXmuvgX3e5hBpG26KfvLs5LlTVhC2g9u8IRUx4W4O9FEeNEwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-105agj_e2etest","name":"George2-Win12-105agj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"917b5bb4-262f-490c-adda-55b02ca0452a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"33892697-949f-4cd7-941d-a4c2adb8320e","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAppa/LGb+aM6jp7ZKvHxcuHcpg6U9e/8ZeTKGLqwfTUU+Nb2U1WaxkEbVf2J3re+YWIrHiWWCzRvbNQmEYFIAExga8UMdWJsnep9Vp3/ByZHm3LZttP0Dfpc0i+thjOJC9X/A9o4I9mPQ91njAoP+D86/Jwjzi6jI1C0iZ2Y8yXvpfm5LA0i0Te5bhCVJ7XlIaiN9Yvf9OFMAy1xBmB6HSYHvE3JUyZz04wwvFFOHXr8XtGIto3aGaTTMOaomqHkfF56IE2X4WtfWhFJ7xhnsmlTaMsOmI0xFIfCSpO+AYT0RB1mgcpUtKos33B3OWnuXj+TkGGszXxhhmKgHgqj9swIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1dfujq_e2etest","name":"George2-Win12-1dfujq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fa693e65-b697-44bf-9d32-aa4152061046","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"50e3f160-9c4f-4189-9e41-ef2ecfeac2a1","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAw0pVL7FST8v2QG94WuYrdbPkT9U9NS+oQx4WWkPyFWiFz53WbtKGixZM2qMe4NOMpPge5WkICpmXyHAkcwYfe8EJ3gKZ8p724hDinyiEfTmECd5+nZNQkuz+gt06ow1zCUidXnzAQa+ZTH/grOVerOhRQ+yypz8EATMuLlAmljeyInpFk+va4N5HOEwjN0QKEpHPoGOQ9aBg5a23nAtjhW6rUZl3PCpN4uQuqxqi9oL6jxRsHxzSGJ6qPRrgrhW51lp+UThBlEp8Y3/XJT5l3GVpywnvsGaOzR4s6bRl0+RL1JD/TOS7JOIDKZfUQRlOFZCJxQu08rCerPx9hjL6eQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_AMAZON2","name":"0.8.20136.006_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"988cc1a7-2b18-40f5-9b0b-db2ee3f1fd1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"e3d97fce-ff09-4de6-832b-dafc77f82812","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxbIYvYqJJ9MZJzrP4Y+ssvn7awPtYYcW7ECiM1lJa57duRbbVvX/eD4oLXCVyAchgG8Eistqu+C8xjfbKmsKZnusYUhVVweUubpx52aK+lKh2G+gdN2nXTFkKXDzCo3uPLHIBwfST6MC34QHvHeJQOa0Pex8oX8dNOdwK4XHwp/4yPjj3uttc4B8qEsRKamQudtY8pFt10JPljI7+Ccmti7Ju15KID2TsWsW4/YgJNBXIwD/Lasn9KazRycIdcNishnA6J3FWahyrzg/t+l0j2gt8hhmLI1tD+wZYIyW53l+ewdbSMONQgb24adze6VHCthpvrUlV5OBf5ISAlge/QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_RHEL7","name":"0.8.20136.006_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1133a5e3-f4d0-4edf-b527-c17023b8851f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"2a272d4e-4fc9-47a7-b265-fcf8de26c712","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAreG2tk9pmQc8mLxB8mDIVpqlgNPOYnh6/L5JEyOxwVL90LJd2e77MTvWh3PMY92GYqGEK5G+LnFn7EkzauZYdGiKQTgrKLy4o1KBQkjwqXyOiZwzwl4TTQ5GJjJC4nOgzDClrxcB8K2QbJz6tK4l6FZnT2SO7WFbfx14ey9bP1zdRNQvwjbuAGzo9J3kZujaIA7U65AeRy8/7Wq0rLIiZhUmGt+fLHw9oHHQm5pR/2ki+fcIJp18mtyn91u1WF7Ko1lD2qIOFPTmT7eelCesviu4q3WSMzPmuhMfTXFh+PClJVJBuGm6O+nWxPegVxNx6a7Q4KbAICov4WeuK0KTwwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internf6dx9_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internf6dx9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6a8a854f-7eb2-4f3c-8e99-e10c2cef952b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"36a2ae8c-94c9-4bfd-93e2-7a08d076cfe1","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAoo2ywdYYxfrc9TewcJMOYEExkXLSA9Y2fhJox/DKxsxtIuqx8nFtTpFcaZUxlwFpRdFY1GtPmWZ+96Nm9qwwW3Y67tsvT52YaHDR7q+mPPpCFd/dzdEwAzNeW6CDk2p8DTDtf5tdBwAiCPH6jY6gqmY0RXkTN8XRoopNquJIMP0xkmXSEiH5UrU8JxqdfXBGjkuiodpmMuzg6E5OHcH90KHFPi/E7di72fh6KBNIYHW3m4BPm1tW7Od/pG62oGvwP4NGecz+UEq5kdEQghIBZGpemutpTFfo7pNGykDCfpLMP9C2WMhB7esiEvmrGSd1z6eHhfz4Ng3Gm1P6Emx81QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_SLES15","name":"0.8.20136.006_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9abffc68-1c69-4972-af61-159942bad288","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"677c1b5c-d9f0-4266-be64-4ddb26b02fe5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA1kmmxev70sq6voY0sDq1JSchAd3ZJK46dt5PnA5k+syAx3+1v13J6k4DA+VJrIXumy/nc1cxwAfGpVhdlHnPEqe/FmbpRQT6l/FjMBHRAlY5ZNqM7jwZReyuklp8tLS1oUc5FL9QqGkypMIsAYGNf8bKwVstzibDQSJcHtOry3DGGWpGXSrN75WKF8/Z9RTfvIqRu0dcsGXQvGhOql/erMWDmhaWcIPRowx2ARMUt5fpgt51f6JmAG3U1hZU0p3xYDdSNhj1M1qd0waKvV6oTZyGtRpX3loTE+UyqNlY60OB1H2H+TPV7u8sIExhwu0wNGVTrMjpkWmbVxgvc74N+wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-13ts8g_e2etest","name":"George2-SLES15-13ts8g_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"412ac9ad-6c0d-4b1a-935f-18a5d46e4ac2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d811fb30-f1fa-4fc1-add6-4d29c9d90eea","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAuOtSEfkb6Efu6bu/qJBPFfAY8Q1h2SkWKi0dM3aFLr0MppJg99DdB2ieft0UzJdbSbRmjkeEvxg13TZxUWEg/+yq5XprUtgwhWVLMk2IZBcEdLWhhw/oYUFJNmQpYW7pKdBJHDHMIMnJ787GTTlfX74byMNPny4LRyQSpchpi0FCwHNrK172JgAztmQgi9Cy6X4/6AfK97Gaig4OmURq9gT/zSa+KGmUJxJaPra7CeATofDOxhbYRyROEyoDCHxeSK2bwdNhIKiwYgoVIDs0lywAmyxE2yr4GtQlACCA4AFVGL+Yf/iRO2s5ZdTHK/1tCSfMVDh78Q1NuN6DZaIYXQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007","name":"0.8.20136.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68ccf031-ca8c-4af5-9806-3bc284c4ec84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"97219d06-8e1b-4b74-8d67-2e04b5ab5c07","vmUuid":"5B3AD4EB-2CD5-4549-B5F7-DB36D792B178","clientPublicKey":"MIIBCgKCAQEAsWOX/M8xNaqTePRja6yyt8wYczgl5YFVr53EbnsLLqeCTEkJxJRHqeTSdRdczamzhvnM0Pmdck3Vaz76cs5rJ2u8tRY4aYF45iYp+bCEowBTA/XjOCPOteve8IisslPpd92XwBhgJrWiihZx+KHHpM7AQdBHzggx88yd7pp0+8pGYU8nTBAWX1sgVTlZBJTwXXSc/Y0P+dibsXjJeKdyEcJseeDOYStuRlb5prdcWNTZ60s0ciSEfHvCEigdYWm6ZRx4FMZsXK7l1SBIF2dRFE1ha2wA9swjeIzSvJJF5i+4maBErkZZKUDcaE+rvjmzB58m+5w/DwGkKOIwmMJp9QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.tneh5hs32a2ubie2nppnwrrtfh.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDT3i52j_e2etest","name":"WIN-KLKL5O3QFDT3i52j_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7381e400-51fb-4bba-a5e6-f6bebb3eac7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"0a63ba34-65f4-4ad4-8a5a-3e7b6bd85f6c","vmUuid":"59AEA5DF-D3D9-46DB-92C4-932981898C96","clientPublicKey":"MIIBCgKCAQEAsmRKipUxKJB8ZkDaKxGytAPJbhfm5xsfIhkRdU4f1vb2Y4J16cIZpsF35m367F/Pu9hp7gna4w0kW6hWWPrzGEgI2e0d6jw3lNdST0YBYo5kUlGkPSSr/r6xEPNevN+IZiJ3S7dn73YWax7Nzlb0pGtOX5zkhC1pICSon4sxkO2dnL9qFpTwABfvpxz+sJjLRVHyQbM8mMG2BwOlH85KJv3glru50unMhZ2VHNspdSCjNJ3l6qWEezRYn9BNoMk5Q3w6xlSO62pfquruMPQnK7XiKO+LZXfa7iaZDaazZwGKpJMmhniF9fhehvSKuXctUFDbOoQTRXhT8A15wl6W9QIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTu4l5z_e2etest","name":"WIN-KLKL5O3QFDTu4l5z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a5f2d205-925d-4701-aeff-3f102012b01a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"50473b4f-752c-4466-8efd-d07f7229d843","vmUuid":"59AEA5DF-D3D9-46DB-92C4-932981898C96","clientPublicKey":"MIIBCgKCAQEAwSHA/DyIwxyEz8thM38ZBb4BQtg3K7Kc5WZbqlu3vqWFyKd2y/ls73adIDVsorKyZAaGun2bkqz6CYNmsV0JpAClCA3OfL7MYBFYydgLko3ALxiL70YUlDmUwEh2lKxFOlRqBe/rw9ZjRY0Ybg4CORFtQ3UjM14vaK5XckP/MQS3xIhFPh2oqXu9Ms4GLZuL8Q4xcSpSPywGuFxhXEGvkRi9zbwW16cATW7TnZMbiWOR/T5TXeQKwIoS+7EAEyJAd0H504CVpf0mXftuskX6eHkhvJ8TXEqoFqh7KxfDKFilWJg9WALh4umJOEz4+wXggm4QdhPGmiYzu512MYaqaQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_CENTOS8","name":"0.8.20136.007_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06a49a9c-cb25-438e-90eb-8d520bb89ad0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"c9f0009f-7588-4e0e-8f40-4b7a19b6d3e5","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzP8IB8W9LRSsnU97Eti40+lk0d+OJe7su/ik49no9JLLinXQ1huy6uWarvnEtTTQuPoNxF8OmwS4gHXDx0zbmUz1RBeJO48WK9Qes+ihfNug338+PzNxWYbMUX1HHfwnqipxyI6zMiyBSAMVWm1NXxXfmPKPUdViHpAIRqYOD56lJexdYt2HWTbUua1+vFeMNWZuJfOzXkjRFM/r+MG5OMfw2IIGGs+I9vDOkIkUD0Gg6RqdMw73HSLKH4tvAdV7/yOyN549DqTtK6TvruVXs8wzHwWZbixPPZhv2CGqW4ykTU/e8kimxh7hTNuxKiQpLJO0wsjyE+HZl4U8x85TWwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1x6qjc_e2etest","name":"George2-Win12-1x6qjc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99f5e12e-839e-46fc-a1fa-961abcc148a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"7dedc1d2-35d8-4a6c-9c74-040fd0ea0ece","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAyNWRFBUK7rahdKphuRku6DlkguhydsY4N93e6E1MSMhtBbhZCJs8JfjCsP04C1M9qVIXjAQls95FD9f2NaRv5B3ihHJJ2dLlS2CJ81OxYWruoX556fmKKy2Z7FDYdhfCwQoo16FVQWXNheU2QBcSxPPuudZdabhV2WSUv8YCFn5mEHML3bLOjmKWoHu6yDTIo2Sa7wlPlDs9JJW/Oc868ilAL3VBf38FEToFfsTdMPcu1b8MAystK9MdqPHdpOFz1l+9NpAfOgB6RbsTULBj6SY+Bk3UaSZYI3OrG0cg4tzZ5eI6HSivXsaYiXNoFsoyeObl7+MjAjhmq9l6L5bDcwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1n6ptc_e2etest","name":"George2-Win12-1n6ptc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6287e31a-bed7-44b9-b7ff-58e031e3faf1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"1f17f6fb-7113-4488-8670-51dd093f1fb3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA41N+Dl5qT402iV93dRMA/SofZj/vsEcY7PKT79UZQdqBMkPLqIuOGk8B6h2ZuOTYJ2i/aJ7w7AxTq9pOzGzbqpfczvh5iN2z1YnRMlXYbktsSxFQZ1H/T9zL8ZyHoIY2bx1boeOPZLQB1d+o+5NUAptqRcVeZhHhlwyrVWeASKFG0EdQLGtdxOAT6tW1K2hfRx+FbZupdCQJGan+Dxv8o6oxWrR6B954+Xw0CQbPGx+r0pgYvDonroQeBnL8CKFNjU8a0xdZ8IeclR9eadrfL3WtB6NT2QXoS9dltzXH5jSbcTrFjdyUgY76GnIxTYAhcdK8jPmLWPYqkrHGMsmt4wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_SLES15","name":"0.8.20136.007_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d2d0ce0b-f721-42a3-8122-6193ee7e288d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ea98ae63-4c30-4f3f-b5a0-03d07b5a76af","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAnzU+UH0X4xA7OHcenJegFBV4ck25p34AY1UXxDcCEQbMBccmryxNkKp7cD+uRjG2E+VlnGjhPr2EIGFifmdUCMtZFOMD1tDkbxb0rYVumwDnw94/dPyDbotv53woDolCMUzJeGdPLWOuUZSqzXZOI9ggOJ6kmtFReavwf1qNuGo5DluaLoETyMx0vdFwMwWvT+2RP1xu15gdqFmTDe2gMo1ab8NwMa32Zs5XfcQYHrA5QT8Yh1Jk1pIpho2N9jnsnMLOgMlR552iNbuWqWDXnm+cy15AL6lGnTwr4n9UqOcdHL+H+2zEPcS7Rxj6NbxasOcpwnkpjYX4r//u/a1LMQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_AMAZON2","name":"0.8.20136.007_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fb474612-7236-4c94-b9cc-0059189e3cd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"23b09333-77b8-4e86-a8fc-05c4791b4ddd","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAvyFddUKCKbH3+AKp/kUhLw/D/Em0PSqg+YhQTRpzFIwkGJCPndSUOgHebdOLqulyTPjNT4zK6xLABaG21KGGLkyiyObmgEpM+1La2PJoq6AgSswpHkOgbD26HPJJOHOXQUtHf/mLYHj0VELjZN3NQnXG8pHenoAdz9FpEwMVErm2yNV9UGeRRHOJMjPB/YpeNzNIgmtLsDdGEL9+Z3j7gH6PncWQI7LHrEvAIF6Z7hniFUkqzLGgJcg8vZPW+xzE8yPc2BwNU6KKFzpjkmcbZk8arzEK9lq0wfksPrYSVKcVm2AM07gu0sIE75xtxXyGraJNE4XDUDmiJBeBLRVoawIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_RHEL7","name":"0.8.20136.007_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9e48b5a3-758a-4c88-8e6a-5d1d2066c007","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"3a3fc060-2354-4f79-8e96-74c617959934","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvphSPWQC6UFCqsDOcfHME3NbNKKr7hYh30Dnx/wGwoNN77Im0Vy3T3UBJjENkQ7gvVr75XR4eM+ljziZBd3/NQOh1qBSvrjhw/68++4C8QdC2ZXAQFTt0HdcWibMFMejqhE/rkiVeDE5BkCNG9MtZsYR9DjDoOZZA6nABocuLzwP0HLYl/LwF88KJ1pPFBu5aqINB/V7suD3epMLfoZwC9dnZ00vFJTU7H4AefmTX9KV+x1JTnMyRgsGq2CWDEfXw2SPSICFRZ48TyhgYNw33qe/dzFvHPOheUwfnfQs9uQcsL8j2JyqaAXpFBaJGOImgznHCK+JG4dDdKiIKjWUZQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1o2wui_e2etest","name":"George2-RHEL7-1o2wui_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23ec8618-ce4b-4991-b81a-ce8c8e8e06f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"b74f0334-dc24-4e1c-a10e-3ca5ba022563","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAsGxy3ScgKXzZCZUoNLbQ5vo38pYL1wLHXICfBfczBk2ZpssIfdFL6NbKnqT6TPxbyOEaWhXTcteeMV7QP+QXshYeTj68+9aiHES1PKZZGu9B3VQbmv1/dNikI/iJr7t40VuyqYxcHvFZTm/nBZo3kr5AnTlQW96wV9UyIEmalHmxe+wTq2Am2D4u4o0oD3KVFBboUq0ZQALyFqhUwnWF+onSdONYW5GapAZXXltyNkoAVIJLXEpltuoGdKwYSCNNSPA6sCAAN5FKuudCjhqzrJBkUUWXYoMItvZK+i0C2uIRJioHqBC1NlSJ8UxFGhKqgc2MEF/XbwseLHm3i0M1/wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1pb8jq_e2etest","name":"George2-SLES15-1pb8jq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"09403fae-fbd5-4351-9e3f-fa31a375a91b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e64049dd-d695-4f5f-b7f6-8278bf10a827","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA107MZJOOOwS6F3zJsE9fewxD8H01bQ+W/eN7fRSsYVRUpscFkwUljfzhO7poNjEEvbGI1SaGKfPk3c31ZVHu7JXpEIKyHj2ZzhWRJ5E3N0v0d6kOtH+VZiJ9qS7DgeHaIeJJsSTvRmbIQXctKSgr4Q9W6dNYMa4eE/FR04hKc3BDUdRb5YgkTPkfTz3CU7MhvQYnuH5K27YetG5VX8C4GYm6oj2vmBRVBHqp7GUZ5ZkCLWTmbjAvTzVzYGInRqHwIbWarq+Aimr/1XHnK4SFB/re9TAhNRMsS7Vj/zfG8RJEnUrRNJ2quLuhjKGyCJQ42PkUlXkmuQiRSCzG8NyWtwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern4pylw_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern4pylw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"067c0eee-c24d-4a05-88fe-25c25a240eaf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"33313957-874d-4a84-b7e0-0b4274f75e3e","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAy7JRvuW/AReDnRRVsxQS+LTqEip7hF9hfvr03esdCDm2fX/DQwly4XsvYS0k2J+bI8zOjGhvdBsCdC0k6zWZDazSRX3kluYUo18RDa6Em0Ki9OZooRg6ZEqzAC/wH+xC1474+YSugZoVIQU5iKjromYK4S3uPnisJV3Ng/f+hfQQsJ+NyZ65WDTfxc64Gu0eA4v56AQNqlIArhz5YT/qm7khzWiG8WP6S7ezJoI0GgZDLZgP04vQejDGEziqIro2IH+kpColHGC4L2kRfoWLWroECe2uaTLOZXchc/OjqsPQa6P3fcNP2c80d9NUz8l4TQIgCarMLwd8sLFqBcQrYQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20137.001","name":"0.8.20137.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2fbcf248-d834-4216-a4d2-d03033c16eb1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"1996752e-f7c4-414a-915a-ae54696a3934","vmUuid":"5AED6459-95F1-9849-9AF2-0BDD5E94ADCB","clientPublicKey":"MIIBCgKCAQEArZd3aFRfldDE2/51Y5I+qtQ9drcv7iwSrNm9hB/pC+nThZ2DhLJUAUuIpC6U3ymzUxWZT30JiOtfMiwF+4Dk0McrqnCtsDEN7id2DSnZOA1DC4trUzvV2W/Wjo8tt66t06oF8VoiCzw7g0vvBTAN4xqdQz87g2O8lG26cZAg87TUfxaqMrP0OEMN6Yo0U2bik+nyUEVp6Mt7a73oHADPpAp5mU2pd+17mU1TkQRWkdgK8bvKjnZLcVrCYhEBg7R/gBjCpJxA44fymXKeXpBXio81WzzEPK7pPRKx47fSdyhn+byGFVhx1SgfIpIy4NgwPhGWLtmD5pxpVzoFCWeOrQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.p2e3fkk4edoehny4pbfwpj3lke.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az6237glbu_e2etest","name":"fv-az6237glbu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9c89e50-510c-445e-b31f-409dcc7c2deb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"e13b962c-b457-4257-9329-b0c16614c357","vmUuid":"5AED6459-95F1-9849-9AF2-0BDD5E94ADCB","clientPublicKey":"MIIBCgKCAQEAxvBVAFspV6AL/z+W6FXBZcVl3Imw504jtWxfyQWBzJ2jOoqyiUgGtSOPp/cg3r2y6+7/xRYsaEEPknHyV1UONTmJ9o+wbH0K7fWDxodYvN3jJkvkuqo3ArmUtYLFxJI45Feo4D6S9IlhmuQDBXyuf+BHLxRX104ag09/a7MOTQYvnezmVe/d7a8mITSCUU5Pp5d561FyL5zkSzYFXHs9xYTMH7gOTVnHfRW0Y4sRVi1LNHNKUd9oBnj+BEFlM7MDqpdREVRCSlWmeRAh4TZl/SR9vdAvcaLXaYepGAY2cyLDx5yQvFaqVUM4PF4qCuQaTP3Y95iDhS26oVCc9lKVhQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.p2e3fkk4edoehny4pbfwpj3lke.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTw3n2m_e2etest","name":"WIN-KLKL5O3QFDTw3n2m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6352c176-ad2e-4fb7-afc4-82a5ec1bb50c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"200b5ef5-e48e-4f06-8a01-8cdf78cfc20f","vmUuid":"65DDD9B2-A755-4BB0-824E-A44C9FC4A3D7","clientPublicKey":"MIIBCgKCAQEA6PFamMo5INdtC+gpq/Z51hUM4SldhGmh1OGLnp7fP+qTLcEnJYuw73yW47W9AfMfT2CXZoiXDtdIVrQwFWJ45AYx4sQm5N20s/B/cqCDTwkW4fwu0e7n+FHSbhbjlTGJIJ2UCMZBbupXHzXJUQ4PDxtgPSdZzryA3scuUP9hUSlpFnBBvmiK6pcQl/XxXCMkaxgBd2fxJhMiwbhHTsITvrbXrnLsJyJEHRk12TYgIehwuXiluUB7sisywLghQN4Tu2SMGPV34eDj4lRfed2jBN9gx7/o3ZvZuqZLkIrpjlpm468iNAZVoIZXfrXJpl5KPjN2X9aglMltgcsivIqKzwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTr4hwo_e2etest","name":"WIN-KLKL5O3QFDTr4hwo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d078c926-3ba2-4db7-94b7-35d422e42332","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"7bd1bca1-be45-4670-bc7c-7ef390aaf4b4","vmUuid":"65DDD9B2-A755-4BB0-824E-A44C9FC4A3D7","clientPublicKey":"MIIBCgKCAQEA5I11CgxWESWbws7q9JMTCFuoGXVjpsPJqDlU8yDbhefTL2ykBd6qzYnIYtZs9q+nQZjpp1PDg7CLSmx/ttLUxJ4JJnOLf/EoM8sM0zuW3r5W9vqo1GxsbnNZnYC0vs6nR5ki8hRy7OVE8oGXMHStb7VEHMoEf4irXaQ2sGYRiRdq4cnclBTzVKyB0BDIexZ2wvZzjjiKQk4n0UiqA2+qHBZ6vyrEfjANaYl90BWRuquuqpVn0MI/5GXSewVgWhNUNpOtTCpjloCryCsNLvWgI7EidB7kPzTNhlmPjdiodlY2i1oxZlA5esaRteue9rt8GVpON0mGcIgNuKOEFP5j8wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qj5ri_e2etest","name":"George2-Win12-1qj5ri_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97c5f45e-cf3b-4454-9e46-6ad1218d2a73","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f1feb648-e680-464f-be0c-428b6e4195d4","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxse+hdhi5+TioCTky6TmNpzOpwLihcy6gMzP02j+Syk/l3Bh5ohlLEv6CbwyD0DWqLuETO5lv8AG+7biAMZ3OgPidUKcKwQvQdGM3Pd9OFXbTS7IXXdyQO50VtSRJAA7ToJ6jwcBfQHBp5/baPm5MEttAbFHaRIphth12HdVrwKBBR+lyCYqVqWAJsPwQJovBe+t/o+tHu0ShaIuGKnI9YgDsi6HjwomOtQ+iS76Q1/2iproPWJ2qhKsds3XOAfS48YlnEEkobRmgKM45O9v6MoR8y8TesnfE5NJtiLOOCle/1WrR4BtGNznwLsTrwo4jrZqRbC2NMaMIP0kajYcIQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-19oy7r_e2etest","name":"George2-Win12-19oy7r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"adbb4f43-5ea0-4dc8-95c9-c8f636c84b9a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"99f59448-27c3-48ea-9d95-f3e9d7f980c8","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEArexpmowa7sT4dONxAIYv6uI1PqkZ080tCRyNumKw3uIrLmCQ0Svky26ZaYzhA5k7N+QxL89ig/kVpW0N49XqRM3DPRtutN4N1MBT+AonVeuSEvzyUM4/nxINiXXw7J4gSZxSFhOzpY284VKv9pPCRKuZrkg+0TpnIkyvY/5PQdZbl6dzVu+FjLyA9q2sQgkiaCslPmRIyjmUkssXggXgWy5b/lvhtI0+JLGGVxRld4BaHZF+z/XzTo3hdEqBf5uPW9z9gyPp3TSBwohBqZSL+TuYCL6KIR7Urrh9ylCALc7vejPyjO9Ximi+Wq1yx1Z0qpFbJ6NKNEn0K4mkkpzC1wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.006_CENTOS8","name":"0.8.20138.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"edc8494d-4255-4ef4-a8f2-3a941e3b5475","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f6f1bd19-9683-47a2-82ab-80bd727ec5bf","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxs6WeW5cWuTr/qUSo/1/ZSgvina1vXja3/7flMcb96btZHnFUG9ww7a32pqU+qoD/CK2PANcfCeOKm0XPNGcweVdyxtRvQgt1HJ+Oq7tBej3xFwypTIWQigfi14qHV9EVPB/K0kB4wV87heSDz0KH/EFj4kzgWpCaVBbR2L794W9SDKWH52FKM9Z6gT1YL1xFIme3mrsiCrH/j8PpOh9fZ+oKnIOosDJhuaZEgW7X198KEtQFdFL44Pf3chENI8dqM6jJtf55L39JZnae/IGYrnN4pD7E0PKMOpUQfc+bJLIfSFfI4KLNVArFY/R4txkWR56EDfG8xMah+966/e4QwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1uk9lj_e2etest","name":"George2-Cent7-1uk9lj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2b59c19f-eecf-4fd7-9151-fec2faa7bbe8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"77e375cc-7f0d-42cf-88df-fa3d3b397400","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvk743KcvaySIWIYBa4Ec9V6enfgvh4+TCaQkA9AJyE8CQ93XUNwdZofzfxB7CcaBCqS8ICPcqgHT6hoD/NWi/7PkO2uhdG0ALzUi4pfJ9Rb3mC9CF++/QNgcYUYBB5s4syM0MPpN3UfQjQKmHvT8hju3Dmn94TUqiEfDDWYKAyzob8QXsboOp/at4mgS1EOUlHSne/FjQwewRf0ORMHHnS82I9m07kUxVuIIbK32md0tQEQtDiaUGl9wUkndpIe3EWaz5sqnmLroqImTD3lkfZpg5PF1MQ8TDqss8E610GPrIlcGVG0ds3vg2mSRMyFQV2GHClZsHooyD5ESOrDXFwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.006_RHEL7","name":"0.8.20138.006_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9450aede-c8cf-4d57-9a0d-c782dbc44b0a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"e8d0554a-faae-4b8e-8cae-c8862da42d96","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAwi0XYeShIcWIsGy510GtIWqlfGgmRCmP91KDcKzk3k+FBmLpNTGA/jSJr9wwZrKSZ2RdN+Eqb7VxCKCmxWdP8HbfIQCNOl1yu1DFQzg0R2LmjlQnvLWRgyRKATqDV7tGjAFbDZbdxvOZvQ8aRAMMHKbqZqqWa2vL+uDrKAgd4v8jQadHBjH6ObItTuUxHOD21kD3v2h4eO6cbzEsDt2HDBfXlHg38UCbD4OsSS9QrVTI9JAVbHGboTSAXUR9+K+GS6cqHWl1t/mHwEfMO2UIJVlTLNYCeZYvAkTLyIbKfSzFMNieNQCQ7P/RD6orfBfL3NZzzTmRM9DmOubKzYsn8wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.006_SLES15","name":"0.8.20138.006_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b55d661d-e4de-4514-970c-9eae972ddca4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"b0059006-fccb-407d-b310-2d972e071517","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA2u/PjlMEi1qXtXULx1MfGsGwxrB1NqzGIunRzsznqgTsHGBxXcYb99G9JDzQW8sg4APrmUrRs3BwqsLaHCg4Gzi45VKYEhah5gMUhFWbCaOuPOB5OFAshOaiJgahDAjSIUYvaYoPGpPmAY4/qIlc5j4jx1jhRYZGmQ1wVK4oTnvtTAS5mFCZGuv0cVxcjFuysa7JmB2WJc1elHuV1mJF5C2fm8r3aPcvgKcygJmuVlBJR/xYqUUrFQ0aiKQZ5qDlsEeres/ytn17ISG71haAiXhHRwZpwYpf2ifh93/m928d2JoB5OEKzQQxlY9HBDhQ2MVvLaP2gi/yJtZ/LEZDxwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1rx8d5_e2etest","name":"George2-RHEL7-1rx8d5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"57e2e441-cd3b-413c-a1c1-ac6ac0782da1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"52b8f5c9-339b-461d-b84f-59655c584a7f","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAqpYNxgN0xuKDAn/JQm/kBTkADByEHoD6wD/65VnwzyD8iq6e7Z4pyFj6FR1ox3TY1p/hBX7wq2u8mFAz4sS4QGpvYXCk2UD0PmIiIBiiEHTk1IXlA3il8njJhTeqC5h1bxFa/VxCvZR+9t5s7Rr4vaaykHkJqGSIlU5qBXKofRvHHxJXAE6OmRcryxl4UGDiDzq6lWBeHip9iJW9dBk849NqtQx7SF6zpLEbwhWbZBAsMU4wjE4SLT7QfHDUE2QLAeqly62A0ZaE8QEHi/n7WRwO6r6glVlCGr+F+2CQdD9CNtHqMVmjaklcOZgcAVlPDwOtka+/IKCu4043+UuhkQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1soj5n_e2etest","name":"George2-SLES15-1soj5n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"129bbf81-ec64-4155-85b1-7018c79dd768","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"b8e64145-791a-4765-9456-82880308f3a8","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEArCq1exB+gTKLnYOYpROM0uS+7Y4VROqFqDNLzRD+ewZNYmy3WYuJLIcusryYeFhujJQbaZcon669pn9BnvVmwArw0QaI367fQ6kmScduRkzj1QfA+5Tc1TqdX1cA13pEhcShCbyCAMW02UPRkP7NA1l8ZwIHfzDv3o6YbRmk7jEjx/PLWPCwO/shcigTgo4ovI2yjStGxJ3Mp0RQ3zSa42Y2mvCBrGazvILrFa9qj+jvhyeCKaUxuXBiJaB2bzxjH/D9Ox8ArUErJeOu9h6V6S9+pdgT4zK3WB1PSEZBR+JywLjQ3TJi1BGtF2iTnjLsW7IV9Y3yQaDZRYgwZQf6EwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.007_CENTOS8","name":"0.8.20138.007_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"79008029-d323-4c91-ba9e-e2766f02f878","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"781b350d-6bff-4541-958c-5a845f39ced3","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAyaorLmyfcxJ8lfd4RnKdKJs4FjtbsiCmfxUZDhAxPwnR0bdGrn2Fq1SCSkwd7eeqxwLEBN40whmOSR9EIgtx3o1SQ272N8/boMLrixghEcpYm+9lAX9oqDYsnMNrCGost/lA9AMlAs5MQDTZ6fhxLV0ZhBHgSa/bvM3BXLy8aNrAPizTmOm7BZ3r8sQ47X0pV4bC74nbXBCJVanqT5xu6EpaPLI1FY6wG/h8KRaHfGwLXWBK0PhypDp512/neFBQejXy35Php8GkUU610nUK8xFp7aYU4vfDFmGra0DBZbhxtXFo/jEc3TCBLJjILtxzYULLbjTbaoDdfPuScUsKIQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1m87uj_e2etest","name":"George2-Cent7-1m87uj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f7c5f79-fbc0-4f28-b956-310848b298b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"45f28e4c-01e2-4f4c-af31-af347a94b16c","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAqukxRxPIAR62GclpHICkHPYWphMfrqxPG0PCWC2IqsYT0tKuV4mc529DDtHr1KnYjPWrWx+dxJwhxl/PjNCaBY8gZerrklaPYtJOXfhbJkztHhT9a7z+X0NK5oxGoVoBuLOorNSavc8elxc2ifySpAeZgY0d8sQKF0jy2yr6LUOVJKf68Vp/4YDDSxuBRSuX/O+t2ytunJeKmN6SaquBeuVjnLt1CoNH9w8PSxdCMRxgjmeFFAOKEEmTqd90xMxUPuB3YOFLPzDMex9T/xXMAPBwzx6kCtSyPnsMuDgyBQi9XWxzp+bu0gBJttFOaB8PCxNAVQMbSgHGaU5wqJxLLQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.007_RHEL7","name":"0.8.20138.007_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7de66e01-6b8c-4d79-a426-7a51eb511e01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"b0287728-8f16-4f77-b3dc-9b510cacda7d","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAxTq02G6YGS8NYBkXq95xiEFH+QvLHcBXWcWJxdLBhFrHa/c9+NldgKvY9LLfVMydysUHUyJZ1J1TKaq3ZXEIT001adA/JmfTTEhOpAz65nnH5RSqb5MYzrTjC00t2hTyR90QuOUG/JV/DE+fj/xVxSYeUBWbMGsdeUA9B2t23DAmkjvxapLbOLBDGDOldrQTRlEsGk9zOR9O3pXCnyt45VXnPsaQwaA+Zjm5g1JTy8bMBqXT0OWlsOC0+hp/SzDKb3+ZTZe7/ta0gXDz5pO8XCYm5sfOHfWp18h5paVugDuqFRcby1UQ6+0235lUaaAEwuv4d21zNMVpfYLKzcDSZwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.007_SLES15","name":"0.8.20138.007_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b469d105-82b7-4c56-8cd0-65ac184be250","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"3f57da5c-be13-42b8-abbb-db72157d8404","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAyXHN4Tv7Co0jXbLhGOSHAciu81Z5Rz8Se1O2rXjI4mucGvxAta/UwyKII7E1o+xGh4WCAR9NjymMtLhruTomLLMWk9mm3+IbLvSWV/PXq5GFZSCTE1HuBblznCVrMH9jiDa++o/+WV/ukM5hBpzLhAVeGY2VHypSjoLDVxXOady7g3estZy2DXgOXyMfvxs6P7lj0m6vOy1U1EFlkctOUGHByqdZ6YsD5M7zQE1un15mSjAJnY+R3Y7htNyyIlErotLoGFJhaK8qIsh3r695abNEOsHTuvnzoS0mnEWmUzphY0g06nCu6ecDfMNJe37guAbrklEa2pHrfqMmFCScHwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-14w9ra_e2etest","name":"George2-RHEL7-14w9ra_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"29279d46-02e2-4311-84ce-6e362e5a1d28","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c49e5c1a-c725-4e5d-b219-945155532531","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAyMkL7aKwNJm82w+zFw11NHjwMuSY7/iv2gVsUtpTM5xYDJ8+D/lihQ4H4ql1Q/Cz/rq49Y6ax0kbAVZa1bhdl2Iz2PBMmY0mmWF4q2YnSCOp58F0nt55YKj6HYWDT889Unl06kwRLN0y7sWoAPyVDqedDvIcFXur0WFUyZZ9fi7kNGaJn5y6KEJ3th7HbTbsGsHSsCVQ3JieZG7/pL68cU5zsAOLn6JLHHP92kLvbh6DWGPOmlaiOomwSafQtEgTktR5zGazSQyAkdPnWwc8bNC/NToHJNO5iSEVdbYSWS1WvLCeiqgua0nIZUvU7sMas4rGikXRc/ynaxsi3YjXwQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1yl0wo_e2etest","name":"George2-SLES15-1yl0wo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5ba07ed0-858c-407c-827f-d61609f8c66c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ac4cba84-43a0-45df-82f6-be32f8518f9f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA8vtsdvRvUacKsQtEOOzL18AdBZUNXuCrPFKNVA//gisi3AgXSMSXvvnRzp0nS7uYfN4KiSKQ1Pkyc6jc+6havqlqCKh9eJwfh5Tc9tNLOU34qkVeIjLMAGb6vjY5BQmK9g7J1vYa4x6LezOmoHjc0id9Gl+7mFHCkV4vue+/d2leNlQdKfdIZcEFdFkhkPY9f6CJ2GTfIai7ziZRLI4+VFTRr4DQRNX8vGQxNgP41GhO3yDcHCQPQH/IO2Bj0Vtgj607ozdQVZZXEkz02K81dpQqv/t9WzgvIEBhzmXY1rKIAk985c97L+c5K9VQRHJj2V8dF9Z7aeWDuZe8A+fLswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_CENTOS8","name":"0.8.20139.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"421645f6-f9e1-4b5f-981b-05476261e84b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f83d411d-dc11-4bec-91ff-4e5b432dd387","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxvS4xkvRhGt58qEgWXdM9R3nLTDM+36byynyKAX37UVtwQ84Nq5GJ/ZftIDAXfjvbcWUqhHrtCp/TfaQQswOB9bmMc9poOStX7UuoNLvBlbI3nOlP6kA7tySdjgUO7mhlPUzMIIH4+f8upQNUbP2Y4OCIHFwr6vVAzd3S/EbHLp9AKH2AfNb571iBIq6AvEbItEy4/Rnvc973/CPIKFG4TDAmfptLybG/7m+TKcPoUWvRLLxtCN0zjybEkveT/W76ezhsdiAb83HjFfOAsImJeUYim5pgm0gcRLDDs889faA49OCWysQTP12nNSy1igifVWiR//vUrjc1DI2zdDEMwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1e4qyx_e2etest","name":"George2-Cent7-1e4qyx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f97dd8fd-75cc-4a74-abc6-8aee94c4a5a6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6aff4af4-fc0f-4e84-8b1c-f0a01dee8962","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvhsFCsyoOHerL2iZc8ioT+7giAFFeCycVNtEeZYL8ntLt2n/TDuKJIu+E4/u72Ck1eVnXdJAwt6BCxpBl7ZuzS3Omu7NsEIKWSjobL5eQIsJF9RgkjtS21u/6OkHckutyQ98gKW1liExmlco9FOEb4OP8P+WlGXAR0lDJRHP1YBwGt2o6dQ2nI+kglpTYbfYjDvqvgjSsdaLwVWLo2zYRxXOHGz/v1AbhvlpL2zQanLtEgi8yVAcg5eFx1JrHM3NtFjvcckiR82F5gfW2CbFY3S40dVIVL2CoWleyY719RXqHWchURGViS96y5b0HQVYuskQ4+9JSR1dhqGW3n9x5QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_RHEL7","name":"0.8.20139.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a2971c1-a1ee-42e1-a0f9-c8a1b229a828","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"777e4910-a4cb-426c-a841-b4969d397cd2","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA4YiytD2/bUitj3d1ijDIw+zJ6ZbDaN8brp8svLE0OvJUy8CeQQi9ZuL6kc/f5+ykroSKvGd1UkQZOVA5qyDm6KS+DSxtRj3HOGN0TnZWpt1/QC+wn/yPmo3qLKybFY7IxORfAb6/nBN8V34nR6V1fkQGtQSbbfkWZ39rb8rbpAR7nEKV5YUwvVK1WlL38dmitfk8/38rQxcs/X9l8MxZ2Jg8SLkUAG6lStwD3nt85boyx4UklUr+4OqHEfkCADo/gY0aj12bv0srNGBzwtcuvQwc6AgnB02AEIUMBr+1a5xXt6vjsteaD5WhKmNkfE5MSufP6OZSX6u6fBIOkPHtLwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_SLES15","name":"0.8.20139.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ac9355fa-4f68-4f19-ad46-34dc6c972779","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"1db0cc5b-e3b9-4811-8d15-d3f05c3778c9","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAzEQZAhrveWmMnPSbhjXrHNoNBlxL+3eT0rmDAlJmy5M2YvI9zLwA0oYsBkPgVgfaeWeaEniovrRbY5y5bF4pWwu1fKPff98ZugL43r1nOVXIf7w5En0HDixePWjkuA+XP1/9E4Li8rj6FptGQDp7ZCADxdWqz2GKMSQJCAfURofGNsSRiwYsrbct4GhA/oH0wXa8tdw4yAvt6o6sOgaJzHimcBUuKl4WC66xaAGJ49ZrwDT7aaXcJ9o1Ol5KjQlPyk20zxZO0Hm9D/SBrQnETHhNTz7MrZh+B5+GDQxhRElKSzjDsOITcbCUHcq0QQTbaSwJB3kKNYDdJ5PDlT8qBwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1hx5pl_e2etest","name":"George2-RHEL7-1hx5pl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d4ef390-38b6-4812-9098-7ceebfc67c62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"15a8ffd9-45e9-4d54-af30-3273176934ae","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA6JnmESrzfWzxGCIrf/BEUwoCsmLsTA0wuO+EuVV9f+4v1DGM7cYR2q9BVHbfA+foanttrYivE2jldj/NP2qpZ5qSEQVwX16zQo8i306LqBufbEyBwNHCW38osY7/+DbFzJ4i4CMrOfULWsg/eIPjztklwwcr6bY05Kn0DbO7gPBXoDp+2VTI8y/kG9qCFXf/+yPER78jnxVdSPILv3PfmmHuLjtpYc9Fs4WoHMa5TvNRJYgO5w0M+VtdmEPJwaR5026jjyjJCb6RiBh9G24Hib4XctCoF/zgH5jV2kin9BGC4az8zYck+CVRUK639d3kEP+/c3vmt8+xBDB+y/x/awIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1xrpwk_e2etest","name":"George2-SLES15-1xrpwk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"59a6a4ed-7983-4408-9111-51977b7224b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f86f18a0-20c8-4db9-b2d6-ba8310e10e02","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAv0cUmBvPA8TEOVPZE2Euv9n01pkRzQgt6Z7DZZtrq4mpU/f1dRgCG+/y1FiM8+suZzUI9SQNXgFMYc8B7OtqpenRWXkzx1kOt7eWBwbNwT49LvkgXO/MadvuFy6yLYf73TwyDC+8AFO492QfC/kZgBCC7YMRIb8K/it395OEFjLvlydYCKbUUMfbIkwVi+azrRa0Eeenx4ap8K7XmIjRKg05vw6syksgyBqQ0q+fiTxy4PFZXIK4QHeUcgKraP7w73aXNOmqfM9qh7hH1ArWLcw1unQS1rnN+QTx5svWfetD9nOdvOOFU7FhKXq+Xa35V6mLvaUP5DYhAbmYk6DwJwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.002_CENTOS8","name":"0.8.20139.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"69bc80c8-a0d7-4f30-8087-6d2a8e0c02c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6efefbb5-b9bd-4537-9373-062ae4042d74","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvBIE9G4yTc8zYg1k+cxZteLL8PcaEDXn8wfSiodkR1rIjLvdhmNNFya2P8xFBCzKVDwBypxS4ouL/WpwNxLGJHGePRJ1ARXTiIPP8PSpzKeXUiQucNdemeMotjA0mdylhkhOe32cOCD2WqUmaRvswIUaqsFYHzAHaoZsB4FlGbragdC48Ys23y/vqwmwHoZE4dsPq3oQ5SN+ksdRj77OA53zKP8tUcUEhk5gB1daNOu1qOxZjvtxHTJAqQBLUiOUvIny/GoOhssNCQ46gozl7Ft8TmdTrPyWyvVsCfxCEewGlcWX+T6dTo9dm6kvRJyyNeBEoELaO3HZgREksIEO8QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1zda05_e2etest","name":"George2-Cent7-1zda05_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"760fcb2d-9f7a-4cb4-b7a4-bdee5c6b1249","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5e08dbf6-0866-4814-b9ce-fd7c0ab9751f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAwBj2KA4m7GUHAm3HxcMCM4haHv3hZ1OYVvR5Bb68HPpx2qGsjDK3Frl2WOChR1wx6YsmPNOxu3Et+whmKvtN14dCvbKABT/xrGEr2Uifh8MD36xiKCD5Eb1zLgtIjbEJk69u1Hzsfb0SfWii1sAqyS/YyLfyGyIfkAXPVtW/Zy2949V2p0W5a9j/krA1jLDucyYYaMYLAVuiIdpug0mY7v/dJIxJwjSU8n2DcehgHqhuWmneVkBCZDnNWEeS9YIdS9d99qyLKN91f/BmMnbmZ1d5udFQC3v23S8DBkaFxWyD3n2FQJyzlB8oiBWNFpprczXE0Q0IAPRS29wr87hNDwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.002_RHEL7","name":"0.8.20139.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e82db330-3aaf-4bc6-9316-ad8bcbbb583c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"50eafa26-8bba-4824-9936-d936c165f80e","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA668brU8vdPpy26DdHCSKEng1E6aqBUIKDdYJFSxYuqZFV3igVi3EKiecRBfdutR6At0jM+BIY1sdShXiu1zpnmxYFqnLdTwFD1ZIeO1kd7kgeisLqz+x0Vk1xH36J5n5hBpYrH0ezDh7UkKifeqqFuy0CKSekSKPr9fPOS0QzEQ+QFyq9aUXBkCfZZkaNayeoBVKesj3iNV3zWxwcEY0KGK3zr1q7NbQ1MyuB7CKVOluhXBrpmXsE5qiW7wG3ybqVnyVGt6fRrZH8LztfA9Js/I74Fc0/hfgV5gfClq5cw+LbQYd+zsYB/o8NragDOyb5M+45fwHx0TsSQVEJQpNAwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.002_SLES15","name":"0.8.20139.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"41344176-d5cc-4316-93d8-ef48eaeddaac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"5f3ef7a2-7e8b-42c1-a07f-b8bbb9614110","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAx8JCzfrZrBSf0riC154TeMCHz1KE01GzXhmrPHfkyE89VRBvDJX2mI8AuOCCqXg3R/Y7zUPpaW8hnNwMcxq4yZp4PJANdh4ECcJFV/1KJwiQUJpqpP1Jo4vGih83FSWMqMSlIwXPi0yjI4JaNqdh7rGwcVEyX100Oy4TUU+PNYrCHtS0TyNNKocT8X+Rs7ChbQkD/BbxY3luiPX5PNlQvkcC/g2qalt7cadveymUd8R/yZp7E3GEVdaqzjTdOLc+ToDpc44xE/T8it2lOt3pqdGwlZ+3ZNQ4Qm7wI7YzYbSlYRlYybHgTcBCfIZCM2P4KT8fc/8COjK/rWmjo4M7EQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-18e1yx_e2etest","name":"George2-RHEL7-18e1yx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a94dd9f6-acb5-428d-a52a-b522d7075472","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"681cb118-94b8-41a7-9a65-c2f1eb63be62","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAnX5pYA1+GF0ekD+iQQeTA0YIi30MZhx9A/V55EXF0Ywi7bvlaZEf8JrJlvjpfpG3Uu5DYNpPLE/Bq1rOKJNFlCz4OedvXk0Itsx0VvF0y6NM3uoT9twBTOnaOqwcprJqCAlWUqMLdI8IBNVUhQNcM3WKMsRU9MiouvGFRzo1zDBbl5IqTZ6XkXLqIXFdv/bTIRazAFSx+TqodHPkKQ4+7QP/4G6cM8lpzvpQsYP0wC01kPI3KuS28XQ53wpdJ4BDGUce5eOdD8sz/JwNqvpRFJ752SZGXYhu+0gla49xY/YbQHHXtFmwtdk9y8E9BrhtOrQF98HixqURklv6I6Yc6QIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1tsr29_e2etest","name":"George2-SLES15-1tsr29_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aed4b41c-b9ca-4856-b575-494917520638","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"26b9ee1c-4f8c-4cc2-a2da-31ad3e500c6a","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAyqif3Yz6cuQ4HUUkEWQEwaJramsaIxj3/MM6kK3WjfSGHiCxFuPPDsZfVrITWZufgQOWfUccGRO9WJ6gkr9C1+A7UGzixY5VuFWMIcmlBon8W+jDNOlY5EBYfHaU2qlpv9E1fCnJjJvCbB2Jv9ur8zxlmPFZtqMcoDW0B5Q2Zw/2KsF71jXwYw1F/m7himob5wC+u5b4itmoko+mopou9TXtukfbkqI5Y/mEt/+KIk12jP0/3WPfCEQsnCn4lPHa/Mqi+gUXYQcUrJL1U3dajC/2HlbtwW21HnyXDRrpr3TgTlJSj0xDv6ef+7cZtvLpkrhpz0S/l3XZ+OcD6KYPFwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001","name":"0.8.20139.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3ccb7d1-05a2-4b56-8d55-30fbee676d6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"141a97e6-244e-4378-9444-14a8531c1095","vmUuid":"F266B359-2A39-0A4B-AA81-C08FEA6AC91F","clientPublicKey":"MIIBCgKCAQEA2vNseWTiHefm2ilDqzhSUAAakgl4+XtVbqZqeG9mSlOCCjq9WHMtO0wnlViNRqmfCKR27xBCI3uUw4qatnFdC1FVWYL8Bo/AHIzb/cdjA/D998aq9Lupm5DIW3vKaemYHJ6x506XX25kLUlFfZOe8jwSDZWGov/g4bLBfMNZT8+NGhL0w7cShHJmDHrS5w6BjGUICpiLOcGtZPMnhsgKcQSPjM1CQf6SFKyK5dfVf2Qe7wHOGbPpB/13XiKhQKblHFny4MRtgt/0a5tiiFul6QBJKm/cJJgIc7ALUVeD/uhHjiDGA6f463ltparxATlRGwnA+WSA2RBBdkNlZJlgAQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.0vbzrnv14haebbzv04bog4quxa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_CLONE","name":"0.8.20139.001_CLONE","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e909b5ff-520a-4f0b-8d50-bf0b9c00f897","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az601"},"vmId":"5f13ddfe-6aaf-4d89-b1ff-3c7359b41be7","vmUuid":"B94043B0-A07C-9646-B532-ED8CEEBBFDA8","clientPublicKey":"MIIBCgKCAQEA3GITLjeP7z+gegH8DFuCiKV9OcPazoxFSc9+Qy2hA4xxvbk3GveR8fN30utp0Yj5vH1mOg24ez6cId2yY3pgD7xgu1dleJKH2kU0bJHmaAplldFxYBpbPcNq5Z6trU+XgwZVUzxS57hpI7epkf3Uo5C3Nmv2EAOZaXk8FzWm0i6RJd60eRk6lnc+9bogV8eH58nqDPzq3VZcV9AXmsXj9qW5LgWG8y8RcD6I64b413/vw4JKUQ/eqztcjJd8crHSP7sC49nSUskhsWurH4vSxzyVqBWS4TeNKv5zcuHB9c3EE8PoWfGPzHycODA3Zznk+Dm5q3Ja7+lmKviNxd4p4wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.owvxebsflx3ubfsd4erqvjetvc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599kh2to_e2etest","name":"fv-az599kh2to_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"545f9ee5-c8a5-46be-87c4-7a53d36d1f8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"7be59420-2b80-47ef-aedf-db160b1ecc04","vmUuid":"F266B359-2A39-0A4B-AA81-C08FEA6AC91F","clientPublicKey":"MIIBCgKCAQEAt3zTBkfLJnStPCKlb/is/O9valp3jWK4J1nSPRRd+tGMNf3ntB3TfPYYVGTie8hZ2xSPO2Aur1lOp+IQ6Eh8I5QLFdYWP58EwWSVJwxXNkGb76kBZRbi+cQuwctT8hkck1czjcw/NXm3Zs9KZ1WnP2S+i6PrN+OByHXm9vyoRetrsjzrj20guDvJJw/Tl8mbeWARQj4cp5IELsY1RaM/Ya6TUWSGme3chGNzGmfIB5e1WhnDQA1tlVEOWAmm9UGvxObY3c+BGbZTXodGv+zvzNu+qMIZy22bsiRevThEq66rZbE0SVDUhS//1DVrF8+wKUQcMKH7LpcVJmXqBTsBtwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.0vbzrnv14haebbzv04bog4quxa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDT4qokp_e2etest","name":"WIN-KLKL5O3QFDT4qokp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"584b96c5-8e88-4cd4-81ed-bb9cc5785097","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"4eb5b08e-381b-45b9-bdd0-555785f48bff","vmUuid":"D9498EA4-A0B6-4B59-B135-CCEE8813351B","clientPublicKey":"MIIBCgKCAQEAnlhRm+FkSlSl+TCQ9Ddp7lptjzdIMwlIB/jbIZRBs3y2dM0gJ832PolhdceVPhqlE+NilzG2YdQxGywAiIB4CWsZUjf+cFe2bj+mTnxkZt0pxOn+0qhdfYExglC8jeP0ZrHlL112YZIzPWXvYPDabW4OgLXieEuYQib44Ubecd5qg3T4Bs44g81q/IY6a1KxLlHJ9CH2+qJn1kFGFkqWj8m0S3jBaNN8Ok2AKTfpcsiCxXAlyCMdDhDGQo1N2F26mLB/Zjjb1vxGJpHnF9CiZN12mSaxv9iVzax6CsD1fltleN9/XbWoU7Gbh+XCjnaUHM+xFgvWz5JAMELBpZvPbQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.003_CENTOS8","name":"0.8.20139.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca2d7704-ea7b-4b24-904b-ff6be06fa8f1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"2b3210f6-9808-4fa6-963a-3450ba5afd9f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAmVMqkx+voBHTsxNt7tpIQ9UUn/Bi3XO/Q1J/gvc8CxzvU7MLhjhvXOYdfIorIvX4Dk2aH/eGy6z3Xio6qiyUd/N6dTUjNqXb3CqYvlZZOZBsyGH5TkGuPKyuMz6vnXY1J/HhSAK9MTgPNbrjIXUy6HVgh9ug4iO4aDF9+/KLzfybxj16EtfgC4/qTclc64vqXHHuC2W6OB/otyAEsqHElokCWOJigeQyLp1oFrx6mSPYZD9QDLW57a19fVjiOkexOC2a7OHqJV0dLToO/D2BwyoD/pKUdx+YJcyf5Lrar6DMHz6Hk8XVnEBFPoWrMModxNc5BjYTclh1uQlNn5ETOwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTs17lx_e2etest","name":"WIN-KLKL5O3QFDTs17lx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eaa67b41-4b58-497f-9cd1-f35d52a571a6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"f544859c-b541-42c4-b892-e55665d0930d","vmUuid":"D9498EA4-A0B6-4B59-B135-CCEE8813351B","clientPublicKey":"MIIBCgKCAQEA+DHQufO3uKexUk0a6omjjpyPtPr3CcUHE8pMPfPJi9W5Z5mz7TKtuKNjlYzl9gFTMSEzIk4frQ/P5BggMP0FJzA4NNUbNKBunEl7t5ZUoSCixT4NA54MYGKc8eUHlG7meLc1E/vipvc5wSq1Wr8v8YV15xTKjjI/e1gYOJ9eTRbZ9pMw+8DqF6w9LN7Z1Zf0PcNDjy17hlPGXfL+cnUe+9TBxvi8uom/Aktpa5Urcihnq4jyhODDKTBewENhl6x6N8rJvVA49GShGHHbFFsYtR+I0kFJq4CHXhWImMe5T0e1UGbZnpXQNKIXCx+fNXHUFoalExT0Mu1g6Tf//7ayLwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1e154d_e2etest","name":"George2-Cent7-1e154d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"926caf1b-18e5-41d9-a37c-40c62ba56daf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6eadad72-2a7c-41b1-84b4-ff6d4c6638ec","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArHjECX/4Tj6yT8SDouQcKT9yoQBFAYMlnyxdmS1sVIbqphoQquuO2bG1Y5fSBTBMXmycr1WqWASMY+30N1K9rGlDTErHxjZsV/jC0o3BpRz8hQqgXo3Yoj6FT/KAAZ72lf6kHZr8wFTDnjhbqUCaSGLGP2J7skXxxY+xNi+6Q6ViYlkd2BDOWCdy8+g4kzzuI8rvtA5SuLRT5jRZwieS6S3PwGoCmLFyIkrxzVmhpJ7L8zVH826G/itlscBEEH1NwK71biaFVSqwxmoLGZFl9EwiT3UaZInbQH8XgO+aHhsMaFXA0FEjDeumeLKgCeFz/k+CvWDiswsdu6zgfAdWHwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.003_RHEL7","name":"0.8.20139.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ee2cd06c-f08c-41ec-a412-90b967f26dbf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"393c8455-f018-4d47-8d4e-57cc28f82014","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA19brviZnceE2yHX+rti1CA9uvizhPjTOrmXotpgKq1VoKngkZS/d7c4zm4i+SWlJhWRqjZ106CwQlxUh6ApYvhC8UF0w6PHrT4whq4z75zhqqcug1xddiKKJtgyI0YS7zaJ2jUF/ZZ6ujK04vsEz6oRgGrcBC9Ny3ZJHFEGzHbYDpPpdUSh/Z0b1mQlcGFtJwqe+ss92xkoaA+mcW39Y/gfIBjpOGjTHx43PCI7kc8qB3uwJ+i+hkHTEaN0VWjcoEc1JeTxq82cE39+8KZBsH9wZhfah4EZjzjdoN/Xy/DOlzTy2KfanGeg6VBtGcFLevROdsRlBKrifle1U8uz6ywIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.003_SLES15","name":"0.8.20139.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e86d5243-d5b9-4be1-b4f7-59913b8672aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"122f9b2f-f1d6-4345-b52a-69c599a7a73c","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0rfDju+b58Ditbg0iw+CWXIXtwNX3r2ZX8wZ8sf7uyaaQ/6Bk2qu3drYYn3EKazPGTvnkWxAqRSd0gisa6ElFrPTzMXXBkwOdeKErbt36ZgQlEltrA7KsZBgFIznMAy7NQ4vODhqP3BlfkFxwSu/FgTdD43gRzdobWCgAygfvPLcQHBPzxlAqyH4V3GgPyRZgGri5RLF/C2b2BPa9aQm2NVDQspgr9XLX7jTFKICVMH4Vi4Rm+js2OWlClD8hFKgFPRc85AhERJXoUhrJ8n935YmZ99HcPTDkNaJcEI67junwVhEmQG0XCzwL1rpMijiDEdbrqLlCjWeZuMyIuF/fQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1tjcqf_e2etest","name":"George2-RHEL7-1tjcqf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"50ae053a-6595-4dcd-b108-72ba6c0e95d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"b5c1c54d-62b2-4846-9397-5994a825e0d3","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA1TDxdao31r9IVlYg5NNKX79dgElHWE1P4fh2Z5dL/xFn+lhG6pXmgygAX/S1+nNTPq8QdKZhfbvZdNiADYR9c/78R0Eq5zoF9sGR6iJgE7OkVaEAYe3fZcP6MJF3Sy5dA4T4SzRdxJr1jqPKt3MITc3mBgzX5lSGgkUTrqa+nrbIaiypZol+khWwKpR48YEvBJ6WuohjnaRXNezSJ/Y/3BrWTfDThjddmv3RFZkM0jh7wrTXsCULrQeW0z719wnThrhfidcA8VS38An2f/v3Y1dR6CGGIv3Ph4gP3Va5N3Li+MGaw/Gq7nQYqPbWxwQXSLhacfZVCE6PdBZSobbgHwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1iu52z_e2etest","name":"George2-SLES15-1iu52z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c2ac4bd3-3166-47a7-bd9e-c6a066cabbe4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ddfa18fa-7a60-4eab-a43f-1d81cd3782ca","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAl3y5Fa8wl0UxEDrllNpz9naozVRTMI0u3qePgRd9tIVglbnCRqAZMV4P9OM97yMNuLAvpBBH7BJS4YbsIluILjHG2rnXNJTjGewZ8CQV0j1NkI9cSsubAUyKGTKkwS4sac4jrrRwOu+7XMwP2Q+pbkuLKerqiMud8AXrNgdeAyB0MXRYC0egdt3TEAYmoQbWqIFdKobgakw9M1502urclmsbNT6nSQSHVGTXpmfGMiG0E0L5a79XNErC8tjecX34mReNP6AuQWA3X8K4oWQRSWUBW2qzvkTYPg/hbpcLMBVLb0mDB+w6UAPfGEwmdWhebfUWfiJ4tIKeP+qJodjR3wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-19gf47_e2etest","name":"George2-Win12-19gf47_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9e7c8a7c-ebad-4931-854a-8b06566a2d41","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8f82aaa7-63e5-4b77-886e-c1691662100d","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAumecaJ8uH+W9Y44azSdMuS5xsS2go9UOOXpD7wyw6+SMR3hRMZOiQI36mx2TfYLxaXg1rXAii4r/VEK6tECqYdo1uwjx5+vlGGAL2LtXSp2IueZd6+WR8W1OFOZBySKsJRWfo7LhOJJxt/4W/DNym6phGcR1q9KtEy7tUh9Hz79VKWWKqR3phTHCeR09C20WhQtyjBYUFugsl2SKeeaZWeEfE1PbzCYMUzH6SMujEMjPXHogapn+W1n9H4m5SlZQmaf6Rn/a/AO6uEWk6RG9j3cWvkSsd29jlcqiT+MElsbXIcd7BBDDWCA/lMggIOG5Y4SxmoJYDutxTkDQ4zq1TwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7b1ZSAAAAAACA%3D%3D%23RT%3A3%23TRC%3A300%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAAAUAPElYADdgcMDAFDsAAgAD4G4gNyOggAAAAAgAAAaAHqbBYAGgBuAWIABgCiAC4DQi2WRAoARACRAgwAAAAAgAAAwACULCAKACCAIAFAAIBIJACgKAJEBABJikXECAAwogAaAqYIBwAQIgQA0ABWAuYUpgIQAAAAAIAAAaABvgQHAAwATCRIIFUAIAD%2BKNAMAQgXUQADAAiIAVAACAieAaYAOgAHAAAbvg6EFUACjAgAwCACAAC%2BBX4A8hjKANYB5gNGAaoQhAhgAr4ALgBmAGIGhABIAhoJRggiAUgCEABAAHIAjgYUAAAAAIAAAEABOgyqAXoBhFYABNIIug5WG%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '153050' + - '137175' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:21 GMT + - Tue, 15 Sep 2020 00:27:38 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -269,8 +527,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - c58cc292-d32c-4f5b-a754-c35f852046aa status: code: 200 message: OK @@ -282,32 +538,86 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVLbbptAEP0Xq%2FSpxBSwgUhRdZaLs06TcDGW8ojxGq%2BQgQLxJVH67R1spwpaMWdnZs%2BcnZ33USWO%2FW9Zld3o9n3kI1mkie6nCEe3o23fN93teLzLqqwQO1H1N9nbaytu8no37l5XXd7Kppd11Y1XE2Fapp2rm6mTqebUylXbMh1V6Bsnt%2FO1sV5p46at93It2m78KPO27upNf3N%2FWrVy7da75rUXVCnfykp0v7JGqnvKJPI7XfvpqJqtarratGIvxeH7t66UzaIuRXWnTJhiMUXX%2B2FLVjEw%2FHUWc4%2Fw3yOKJzxm4s2wqvmJ4%2FIpBgU9RTfiBSVNCCxid0CaRpgnS8JEYnD%2FmdB0MjGmtAvCIQfFjMsXecKzXxWhzaKNogdUkKdEOIAjw2NEmGQFZkByyBmsj1F4cZXpEKClX2PM2UahRY50YBiCpzmCA3ywB%2FDIvTIELkUOYgsH8A8uEGO2DI%2FxZ%2F0yvaeEzZEogJxxSB9uyNhQN3DO3IO6%2F4qsS2TTpd6eMqYBDDKUcfEblxPG6azSsZMCM8AE2RA4AClczEzMDsHQ04T6AnCfLf%2BQ6lnEwOuCRwUnbzCPUfbgIGHJfAkWQ0PwXD9JVqCmc%2FuB048YjyNEdOMiYT4eXJR0fY7Cf3DrxWcn7K86HVLsUwUydIehdZdX8PSICKjimR5bwpEfAaUr4L3g%2FPb6DxqUNqsKcR2b8xzt5NcpOufsMurpdbACapCuWN6wJt7o4%2BMf + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7b1ZSAAAAAACA%3D%3D%23RT%3A3%23TRC%3A300%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAAAUAPElYADdgcMDAFDsAAgAD4G4gNyOggAAAAAgAAAaAHqbBYAGgBuAWIABgCiAC4DQi2WRAoARACRAgwAAAAAgAAAwACULCAKACCAIAFAAIBIJACgKAJEBABJikXECAAwogAaAqYIBwAQIgQA0ABWAuYUpgIQAAAAAIAAAaABvgQHAAwATCRIIFUAIAD%2BKNAMAQgXUQADAAiIAVAACAieAaYAOgAHAAAbvg6EFUACjAgAwCACAAC%2BBX4A8hjKANYB5gNGAaoQhAhgAr4ALgBmAGIGhABIAhoJRggiAUgCEABAAHIAjgYUAAAAAIAAAEABOgyqAXoBhFYABNIIug5WG%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-38c6132a-7a79-4c72-b098-4aa2d2ef9b50","name":"release-38c6132a-7a79-4c72-b098-4aa2d2ef9b50","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1a3d53fe-c562-494e-b7d4-6956f2d4be5d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41878343306521256543109928266316923238516911395374331158617544284171512984758162690617422399532202083549591993175381124781175530837237800850483875987913540079162895689231319061596931630682822546552679002859802782477593787598921539507491924533130534807579345903850519152866300322329776127","osProfile":{"computerName":"jianyunt2"},"vmId":"e8572250-4a17-40be-88c6-fc49c74b9177","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm/fVE4AfpWqnuaqvPpC+aFcKv15ivORV5/m989Zecv4NkSrRbr1gmnd9t037Ld/uM7u6Sop03c1OnQdgGtZ+b2RiUNdoBLEEvYGa1FgWbqPrzr4Pxck4aly9Fsd6s3r6nj4GAPmY6jI/Kxm5Q8oldBbrYGZADVL22ksMu586hRdEJhZ8nAHG88ks7hfaKBF9l2nNShhRwrspnLMAum0gT6GQZ7Rh0HVZHzBZIBNdp6g1syzQMldOhhWgg82gMsEOlfn6y3odBm1I5+svFEwLPVc9lG112kpcw+C8++7fH2t+VXZLvra9ApOyDy2J/UwaUdu6FGSyscdLKsguDoOErQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8f32fbf2-f6d7-403d-8a4a-97dc0bb3f604","name":"release-8f32fbf2-f6d7-403d-8a4a-97dc0bb3f604","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ea046c2b-47f6-4f10-a369-b80fe3292d06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41865708006706128714779520729459405887540769363858128912839421877108700440904941869457333722992632827792646598846637023253014354367411641703180882298395535361982903103684519038903854832652458649737959496262464465474280813145574025197845438078567422858095765972047397910334882668908394740841651","osProfile":{"computerName":"jianyunt2"},"vmId":"154fd616-cd1b-4bba-a580-7fcc2161fa2c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxbsH/7z6QbUKsPvnRhR8SYTrodogsKiP86lFY3Ss0eXA0K8yZ6JaqZ6Z31TNRrbrvpCqbITnScSdSrEyHhuXmI9yD/Z8nrUBrwmx6qsR1OVrrgH5dGbsxauh7XNh7+DkROmFHBbUAJfzG3BXHRPSD7XOJSzDJ28I85A1EYCz10u6vuH5n3XdNefW76XBquBvdIbFzMGIiBUJsePCKCFLH42Amg0oQn2eToonBAiPw+ecMB4CZFhZZEZM2eaxtgpLZrAU6hW8xqz/fz2sUsPUP5i8hfp2JDY3Suet+odBoGm1NoF/kbsLpOHriMd3l8wcpkwBJ8Lio+Ve9vl+WMSOcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f3a97afa-1947-402d-a7bc-1e2163323b6e","name":"release-f3a97afa-1947-402d-a7bc-1e2163323b6e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3d18c159-3496-4e76-8927-82b80e4b969c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418813924574546732464436226784160096885458322550611276827784924384603641914145008544617611663985749725987594386247637689744815913918352639279154492825560589674289894852307962875115969500188769803215404021065378358110882995907335846449660381398814641557779729184415622688816798092568529294221244","osProfile":{"computerName":"jianyunt2"},"vmId":"c6916f77-df0e-4ed9-a890-b63e7867a1ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5a/Zkl7HQrI8WS1xsMsu4f11tSrwxtAC8geRRhQ9bpZOMBxHVt0HFN9LYJFT+Ti5U/uoP97LzUw00aNfCngQyS1w9kaomm51fwsTRDwYrTij0UsTSd5C13J+V2BkqQtBWl7QYzGgm+g5p8ENYuZnGfWrtnE4fLlpXd1VFrjd1TuxHn4GETam5LeIZ9JvMBiSRsSq3amn6uIXdUv1Gd9HCYVhWkW2eaNVzmp9IFLEuHybXaOcHcL2k/AAGxARAfkBPPh84UVZKhHZt44ksIqk3Eb+j3jYARsmqSXG2jKJcYphKkZX8McIrQWWrhcSYPiQFzPKxjGC/t2yKtcNQ4VePwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-83162bb7-d48d-41ea-a6e8-0d37868d24aa","name":"release-83162bb7-d48d-41ea-a6e8-0d37868d24aa","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"64753110-a3fb-4cda-afc8-89727b3ff152","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187002617075501755553160753451070217377349463248239201901619979476796263566335678214035874741402611804515416121555943857292566336570706870147548164632637259907636431676857319092819555329392153269756448579743465538071734059158281835674197122055943072698696239755445305227213712611611056574599924122241044495377742148424073164445","osProfile":{"computerName":"jianyunt2"},"vmId":"f1974ff4-3cd2-4311-b9a1-3e447229a1ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxWM6jBHDEddK40kUh723A6FC8RU7IAIHxkeoRX5cTZrxC6NwmLoioab25uALBmHBJAKyWpAS1l3frkTBc+KThGIQemOanHx18/OoRtB5jy5mNppjVy6g3Jf21jhB0PVFemaebwun+55wg1QbvicYYd3x/696esvBCN3eoO5DgtmI7xCnsqr9uv/ZwEhS89QubTST9fOiozyon8m1esaJM73+mx5AjV81eD104HjB17EP8Ri5WjqSJPQxv5gETXeS4KCkUF2BflmiBCeSqU5JN99UjlJyPIFfjT/Nr2P6Xcs/zmWRc9T82J7TD7YEpCBZ4jTnEhsbM7/JuFHJotJgAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-60197d24-d21b-413b-b253-0eb18697e10b","name":"release-60197d24-d21b-413b-b253-0eb18697e10b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ec2689a9-335d-4dc9-8268-15296a392f7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181192571888956829995078086628972781878176440652847678049211617915034384865548211566093635248553542826667803481870428826447378982546207931732949324649056328549448074968737818213774261216891348410291983462161393946443480272228790277415307424438464280255977862736","osProfile":{"computerName":"jianyunt2"},"vmId":"4f87c606-c97d-45a5-bf7e-6960bb7674b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAphnVMk0ydr4bJSYoqOrBOuUGaqxdV+OG4IcTTBbIS0u8QTewWTYDiPyM36/8z9fVlh+AxpTAoVbA76rg3E5wLyOrgRpmlu6CY9M5jEtD5g3RGjpj1rvY4WodzgmFXenKcYJeMOCHMyA4MlUwrlmc1hlyRTkc6MgotghZvB+FHjh7hhbyoRA+ZbEuXzvl/WNUGUTPttCfkjHCHAy98Cta6ZYhupPnDOKFSl++WL2s2ltCwvc2iNQYdON4IvxojKmucJ+7J1ynKPCMSNQcDen6kYlDQxPlwDY/ZRrwHSZl6wzCiMoxmncqxNx9xoAJ2qKoFdOMIWV2Ve8e9lpTZMRvOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f53dae2f-013c-4a73-914d-d77d8e81efa1","name":"release-f53dae2f-013c-4a73-914d-d77d8e81efa1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"09beee3c-dca8-4b2f-a53f-c915a6699d8a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188886761662192926370760596042333785659935717768848562373648319668123939839069171697552322513147596585419545611399264928598511909227825612039078637774855066611833593414281294710795539789430958119676420275912554301615740323735878420685989517104129763637975293942738045508849692919917058359550666601157","osProfile":{"computerName":"jianyunt2"},"vmId":"dbf141fc-16e2-436b-97f2-87bc040f9d51","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp5I4GksqS0dwfthF5i6TgQkCX6aq/aaselOOrdG034zUaSbteFUq95wnv2L694M7I5Z4aDVmw3ww6zmmtwS+qlnodnKgIlTUa8B2Sj58EtgSgTqEryf4S7qtKM5pmaAoxOwEUg6bu/9jcX8gtO5OJh3INobFXgfmf7mUUTZDXnFUExyVedl4i3YSbLirjxAdefkD3Tzvu+ZKH5HMpn+JNK8I0P3njq7xcteJK2m+x0oJwGV7xfuViveqFC89JxgvWishWfA/brn+aAVOSw+K4iibcadTXcBdcFqdnPaS+xre9UdpIO5LdMlucO0I6F+ASF9pVqii5d/kL/eF8PxSwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d989309a-edfd-43fd-9046-8af70f838698","name":"release-d989309a-edfd-43fd-9046-8af70f838698","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2134ede2-eb2e-4bbc-8193-8ac0e7338d5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189879841243543099803741766054842417550927559582744635712286581025452390494755473854219969883492003323197317195571141821178687426102073063916504064472238120616795394320486748711619841569372823385499862914151016994198010195227177289432029612623011628372959575687948025942321498057321326953594288623920322295332920548468697301719254878423883459814","osProfile":{"computerName":"jianyunt2"},"vmId":"7699c0ed-35b6-4aa3-b3ce-b3c92846d321","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAswB2UqWdC+PZMfIw1NE3E7Ygyr98g6UkGYSiqzjgROivlZJi9UcunIiYAzTxqjzwEVyUc8nVqrzeTuoy0L90uLcWHx+emYEObiNfq1xacMeXgW9gwscvDjHLc6+Chz3JWbqYVVxi1d6OrQqt0ODZyz05TqikQhx/l9nPRfTPZQ8TAGBdGDjVI/KHqzh32/PWC+s618TlF7W8hyk7IJ4tejoI/uJrqDlc/bZAp1DYlYpAa7IrpSTq6ixJ/ujdcmyqQ5bwa5FVjlAXLIlC2Csw8EWHnUiULuH7GGpnHaq8Nj6cxoxKbzAcVDr3UfqKOAck87Knr6FtdTIxUqLMAVo1dQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6354934b-fb0e-43a9-8a3d-8a60165454d9","name":"release-6354934b-fb0e-43a9-8a3d-8a60165454d9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2fcfbd0f-9313-4738-831b-5971408c265f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183807195240692968635892867543236760235702172625090031974143169343338976235625749694530818773179116929428191151275174719517185613521716644907941376199497530769887891634834159393197779842901158056905688148947011134335968739275949849807228378419754974931456272828664","osProfile":{"computerName":"jianyunt2"},"vmId":"1f7a622c-1d04-449e-a86b-881d6506bade","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtUi+6KoWfzqy9kE2FdZDEag7h4UAs9YJ8Ig84MQx9WcuS0+2CCoWdFWS4DsWvsc7+sY/1VP58LnnKMKkgvMR8VQbQfaBeurXayW1NjcSfIQxnOvVrQmRMSRaqDNXPSUvRm4YXTVMoCf/gsqRqP+BkazBucgOXK6tijJ3xweyJhHLsN1Qa4jZPcTdWwbrXR0rRIdLTAsV5AXoWSkh10XNg++OZkrsZllAMF3DDENWI6VDIT1Ze90NzfPpoC0F/XtVMelIgGm1MUkajk1+eMn7r7Gub5JWqeTPT9PCZX/BI/YBUgCuHF3klYvKBI1MY8ndNq5oh7iPvi1Vo9itMbdtawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-92574f88-7ab9-41aa-a524-459e3137248a","name":"release-92574f88-7ab9-41aa-a524-459e3137248a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cc70fd13-4def-49a4-b3e0-36da0d1b10cb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183322198899841025952926927571176958893031611518852559692729286929944341340281668208560386031785644152845202134644438969826202711563032376589635672416474802624494168197137238064788961471789894435858504880820453121344594823196211237546506539328146615398734251234530561685273017669553098690473513262334606510418601578489482615","osProfile":{"computerName":"jianyunt2"},"vmId":"f2208198-604c-43fd-bf19-4ede0400ea2e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn8x1Si+vI9ri7D9MMy9EXEb2dkEZhcLoQUqxZPBtnrwoKdOpdG0jy+//1i+jnXkdTZzJSRZO1x6xmB5jEsBzasG0O6+ll/twgoG/B/WRK4+XK3HQUgQu4lW3yj3E5Rbep+QEgzFXX0MhaKarZ789GMakT/Q193ZwfteRjVcL0L5BnFxKhfRTU36ojFFS6vEyQscWJwjP+hpBRz6o3oEgh/hqmAQm4y8/sfLVEp8AZMAq9HIG0mbo0HKpX+UUpY24OPH4BCq5zB78nLPtoyH5yLcMm0ObaK5MNrGkh2yRJOB6z9DebL4yBZnW9mwTcwBXlRPD8t1FFfwnI9Eu18c4SQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-eebeb1d3-a2ce-4eaf-869d-d4f23bf35b84","name":"release-eebeb1d3-a2ce-4eaf-869d-d4f23bf35b84","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"91d4e083-f1dc-49a3-b6ed-b1e96bdf4490","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41826584850809278257805995577901185136217413260910129521495746374406257141798153017795627566504660101330393284264612613574778977228193834470025126224432385532154448881931926573570179101817645318593761104766473683388826197750694610621760393722606825182771712808988977045340","osProfile":{"computerName":"jianyunt2"},"vmId":"050e1e2c-451d-4075-a639-1ccdf8fa9156","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1NX2bXC2LshOMa1Aetyk9BGoBKlnxxU6zZ0EG8RCGRXz4QWGrR+yiL0hJJukd+qlZud8iyrrlI44K9tUJRuE3uRygL9hVloOZ3ZzujGDTx28ONHAHCHwQC6EztulDaRFC1WEzn54lUVUId0o100BbcZpe2J09NsjMtCt7JS54Ak0G7DaGrxnuATgwEEoXREElL9DGW8Vy3gaVIaojUULZki3ZzTCDXF4S/W8VB8ViXhxBLQ7zW55/rTLTCOShwUDnyuhhKfaHFRM67+D8PKdDTSBFXZ3sw+ZjcGwm2pLwUqwL2FUbMmc6Z+o8sBQFFBfN3TWlL1d7Q2WYpou83drJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c8846c41-c129-4c3c-a487-b76f09814ef0","name":"release-c8846c41-c129-4c3c-a487-b76f09814ef0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fe483f6f-6258-4a7a-aca2-84bd66e2c882","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184700269935088402557067694201793860811596157220747789004921580718376615791293737383539527849128985763089635868914049524860979476348397230541890626898503619114971501375982793384211345292844119147576798701600543833943643197144483266691699928749555835536894695455533997832360636085621410473225842296498306642919239571179861","osProfile":{"computerName":"jianyunt2"},"vmId":"e9d6172a-edbf-46cc-b001-4ccf6876ca14","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs/xHR8hmba/iumG0vpgYzhfy/fmJIMmLRIwI5dqbGFS6MJw0YzLzKejeUrSmDP9+IgAoGnN2pxsjjGe9ylL60Nsny7LrjD8/nj/QNDHECrBj1WdvO1w2XOGqEG/P+s0BZG+m/haydZayJWrbzxee87Wj1sZWVl7kVvSpJWz9DuG8N5a++H4VS9Um/WP2H2jXX5HE7Oem8xyThBwsiCF5Z40oH7xS22j1d29NW+CKGqSD1SFqjqmgwCXTK+kpqkPyZZiQSPcr1cjCjv3OSamPOJLJFickKve3cxASdCf/7pIuzWARYWSWqOXZNmho08ZFywuHD4irvfEax9xORRmxzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b859134c-ce82-4984-a3b9-7e825ddb58b3","name":"release-b859134c-ce82-4984-a3b9-7e825ddb58b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7c04a393-a099-4391-983b-8773fb7fdd57","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418126041204217482617222985451061778227577738023142054785596153933799442356017296145314482846596237082526663669131023488871061628690164391399180455794006271797738851170362448508685454958813681261991333559872007525966440285951882640191927587723963355775784265295103414976322943995653266676203028543127848644597818795426973","osProfile":{"computerName":"jianyunt2"},"vmId":"28b038f3-4d53-4f37-80fc-650ca4cd3e85","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyXlH2vk0obvN59c7p2E7rrXY0iPQRAfp41AQo2rAaKBcEuHse2Ojz66uBeKRP7yUrBSmChSgEwQXgaBC84mIt+NgjLG6jdnieTumBFeZm/RZT7rAsrmYop3eMAhl6EnAHNxEgWNfNuu9/+xbLhm2RtI5YacQgxNAGLqfVz/gtPyX7TNnM6P5Tc6N0oQ+c/YwCZXN1nukFNzDk5CjbtAkun096Jp0UJXQyS5oNb3VYg0i30mckds9X0hl0kdoyIpKuCI99ee6IgyoWx0ecKY+Biu3BT5mwTX8kAw77SygRNkb++MLwgWCSPwV2OC5wawsTZjDPNukRlDpFFwBshiA2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e789141f-e572-48e0-aef7-6fe224dc1d83","name":"release-e789141f-e572-48e0-aef7-6fe224dc1d83","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"abf0e576-d658-4e5e-8b77-125a523b7534","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189002612622249586166478746145268612585666880924208134974398908479725773466923044237365573647941662672197183843759537041943119547940983660695555310754696810361254437656916873186198582669885131455520148511986471953156803508302953134072653373326141166474014186289584661932814111761814113624127134423551779378642069588713","osProfile":{"computerName":"jianyunt2"},"vmId":"75cf3a2a-15bc-4377-8fc6-f17cff22ddcf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA26tS4InJ8I1qsok24Hq87Bt18ZbJGzTXWIjeQfNrbAJ2BNzwjp7NW8goBKp1sVCafr8lUWQQZQKcmzDNZx92TUCeuKrG/gbFr/ZFqNP+7yIzkNHFi5Tw6vAky3DhaKM9lExXJsGs7gei/OaLFnOsRKsO/7+1fL9ag6/l+MqUQvget0nl3Pu8xkNRkYYJZm3ggxft2Z3h+Qainz8IypDqL8jZFQOon/wqMjBvr1o3Y1WTEte29MXl9gqSEZtbeP2/MfPoQfKkcZ83VC7ihaZLNaU7KalCg7YlhAKLG7D03vrybciZzxHlYSkgQqPJzCV2BlD1wFzK8u8IfIob2gLu+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f47eea28-a494-444d-9e8d-3f60f1a62b7a","name":"release-f47eea28-a494-444d-9e8d-3f60f1a62b7a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"45e2b037-329f-4b47-9225-1b390764a096","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187966674723044791790183526847778642635157284431701886674677206715888969218684355328060583106934723331854848363193359956568958280675080859024571164978468483519525537230601523027316488234121421132735377600670340178343166935007637597418176916568287918555540233837295528029679527969635298034322971699618076507548407266193968001485353170354556573935718616631","osProfile":{"computerName":"jianyunt2"},"vmId":"11a02ffa-ced4-4c6b-a358-97670e9b47af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA73PyZWfA2dCU5y9WkqG8Jsh/7D+qf3yWsN1mslIwgM9dN1DgHK4AKu+PCaFLmDN8DB5DyuZV5lCEqiLXAETRiQsWCoQtMzpe9h5Fo4siWEuof1TE+/rk3WMac+pnxLBPaigq7Nx5wKKCi/isYjZkHxUSd3o3brGBNdDtnoJQQpT9xjC4PYD2/g3eCYecWTZ5Qyz2lWQsOkvblNAlhkcrwMjHQrvNyUwVcc+ud0d/izJ7B/B6ne1DEDi2YrSKuWnYWe6WqBITOv8hJfR6CF3ZgCe7DJzSR4ylq8TpzLKTPu9ZeEpEfHgzknNOIhC8DCOiFIVaZ+WK1xNQS2+naUtVyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac949da9-e659-4c06-b30f-8feacbf9ea6f","name":"release-ac949da9-e659-4c06-b30f-8feacbf9ea6f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4f8f35fe-21a1-4a42-a85f-70278ae534c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41880042017565749566458273727533225429360792786978372768029225743361565582444157640363623906454488495860156075603211992241273344177802362112120822155210247464546361017716997731244159508690524845366718890481047751784938939611933714526959174276121792799766281431286542873051213926628116","osProfile":{"computerName":"jianyunt2"},"vmId":"d2518a89-5926-4d2d-8590-d1768cfe8296","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyo8eA9KwLDEk/tcC/Y3SKv6sZ6HmMFmiuDg7uSkdoKWj3zOaYoRG9DKGSBWYvDJ8m8YA1affxs1kjVCDGwI6FLqCU3LDlRoFBk2po8jCz1ifiDvUQS+YuFz9Uw9sJnRFzMAHstRdQbmxFZ2KxXv8a8QLho29tD5kutZ+3QdJUjsfBkgp3SUQH1Ha0aevE9iJHJpEodbA7QxAL08U6dWsJRVBZ6CneYsMtuC8iKrPyiZzTA82gnTzSDYf1/SqV9COrMBeBoDjQSLj6ISjjhiAIjXlldlBe4gX7cBqdjCrvOCx0f9NAPSu80buGshEmh/NU6uDBW2opQbuMyCTOxpJOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-02b1cecb-d728-4cb4-9a62-28a2150e2499","name":"release-02b1cecb-d728-4cb4-9a62-28a2150e2499","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"52a363d8-6a14-410c-a784-f00f2f0b8dc1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41883703304989691237432628434925962923761194819511777640435242579517625291259473107609716196697946763560198903451274221584747351033259986191911294546220115463536704515215502972222809424741680747647218319761963102175995479711927154796507310771047216780332089778589215595225943182911748375740153387548062","osProfile":{"computerName":"jianyunt2"},"vmId":"7b319b17-f78d-46df-9ff2-f27a266f1f6a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApFlwaMvP+NNosvkIyO3z+zKCaRyCb2rpl/8AEWtMv0tqko6fRkVhAKviMKP3YYXMwMiTO2B48DcXIYaaDfxK7LcxhIxsEQJ1EiIHiYGx+5iX9MNvuqsnxbzg9wOP8I1SRXLFKc5w6jgbk0m0tqZdAbEkIbZNn89PqQMoSyyIH6scK01ipwi41YcNv77Yrr0TxqubTv+/JJdB3wyayD6XOTolm3bZUa+TfwGi6qcDnNesY7fZ+B3QhNS7oXHSV0IQ3BSnmHvVbXDf5g2Q7XvSibe2xYKmN0pturlzHTRbFyRNU1uyrmCWb88Mx18BcIBjylHeOSRhX9ZFmjY3zrnTowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-30b81c80-9b90-45a7-bbbd-161cd1bf36e5","name":"release-30b81c80-9b90-45a7-bbbd-161cd1bf36e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a904f66d-c39d-47e0-a31a-8e75d6c5bae8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418682984652609215663081812778121535961671122453341978697163609610445321145851381671272782665249716916624789681471190289153131917431909437839372217254842321636525685871203093947191635033957478544457439366832809662324101036354002112494053002552326315316167418633808153163381867008","osProfile":{"computerName":"jianyunt2"},"vmId":"0da0f0aa-05c0-4766-9720-7b7b37033a73","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu3EjEhcLvyf+ACQ4vDBkQlGnnL+4lxVgE9mtaoLzYsCDVDyrprDHigHXmYSKpz8XqZ4DT0EZe1oP4fs/lGcXzfZ+Nrp1yd2TWwEoRfJ5aOXE4XgIMW/b4ED5i4NGA2YqoQiwqLP/ss/OwUxmz184Jz29M4s10b+itCY4GdrIYS7gucCXCsRSf00QMhxmotj+i+7bPAJP9c3QLkuCr4RG9Ai9dSX+6TLamBeQBFSZmXvohjs+H/Pmzkr21H92a3aQEugH3BjHncxEvL/DTaFnX5vgbOd0jr+Q3yoSfcQkKc0L8a5vUnxd3x7gFuILUrNLt2DXDvxDMnFhkzukcAbw7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-155ec4a4-ce09-4855-a694-75e92e574824","name":"release-155ec4a4-ce09-4855-a694-75e92e574824","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1a3cd672-24ce-4303-abda-b62ffb9d423b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418642890623087507537205231207666662463433831324142056586328759835549934739304572167985741748065927935732925134901508969542047131815984861515971263000980739914603704941843453309351296871725467526008293810861425122198056645767289785357286329006195851288627586114406786619918478496758706792","osProfile":{"computerName":"jianyunt2"},"vmId":"37cfe988-ff1a-4810-b772-3263719c1d8c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtGg16E7eFuVaj+GNDrVgH2uKpha7obebbGTWBlw9nj2NVU8/qcRVoEXT7Wk5q1zKRToX8/rnShaaydLY7fRprnwNtiTz4BjBtOPI61lzfPVIKwnXyR19yuXnQPoj5pj4jPZ/E3KVKhK94tQ240eNmf5H2aGb/6ZPB5DybhOO8i7+PAjOP2xHRIAlNJYf9ba+7soHjRyI8lu1xK5uuZoHFaGH4VxeQTlgr4wIkuEUCUsSbTyh0qsf6B6T7YClsf9MQ+X6sqSEK6xymY/GixXkyTMR6xBvO435PV+mN7JsA8HVFpo5BMx70pUSRKPHZ26O688ZkcKyv24jBAcsdw5egQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7caf3f79-8e0a-4e65-a0c0-6e83658c69b0","name":"release-7caf3f79-8e0a-4e65-a0c0-6e83658c69b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bf1e8daa-ab90-4f82-80cc-93560e3196ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810247268751295664516734365078176450809457517974624737756170965321769825930374956081690214495922423377342962822934140881447400892380449416301919545014593068033616597510493820028207596415474309643592883631998649104114305435124783143712159732810529252489952084842845322896343283045967850134946","osProfile":{"computerName":"jianyunt2"},"vmId":"d8744a6c-c541-4ca8-9468-4bed784a1461","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArlFNf5AW+FDrPtNOSES0L4B1Z9h8uyOCgqn3rwN+vBYHeLQsW6TCaeZ+6wjEqfmDeKI7CwIIlu2x7sjpna/KVQytWzwdA+dtZhdNfHiiaQEVteZlHl2K1ml7YRywHikH59Tbbbvndgm6yC/I+uxp+pQKWhbae/ejq3gUy/1oCjYt+8bhWsLId3x5hXhMXdaWo7qTFrgbi0H0I9HVUrGnsUe63h0V9WluvLogW3+ZArwWYWrlw1cEUVrR3PPB66JQXrfM6Ev/ZftFwOjwYjfjX1ZDdGPIB2L9iPk7jyXFo34ckNZPi6qF8A/9k/f1Qi+zMteNjKUwqxwTUY+9xRooIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2d3c9508-3189-4b7a-ae73-fe2ec01e89f3","name":"release-2d3c9508-3189-4b7a-ae73-fe2ec01e89f3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"35640881-ab24-49ff-8977-166aab819364","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41851706591658662894575118775755649151693034086794553722699861325438623252536591759468514934308920445176343851827161137752943644914277318864231453188144866882780671549761723989467473654516499016438637210901167858772237383883950532915780795688666818779289628965535764618899295429456379391896447659116413288518","osProfile":{"computerName":"jianyunt2"},"vmId":"f83fb206-1c42-49c8-973e-91c1550ac04e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxLnqvNnkpwYsq81X52qWlVx5GEpLuGZFSBLP3Xl/qmZRmm3A3m9kbqxvZAZy1VKn9T6aYIQBZYekXLrpS17++tkSlqdaDwMEAvpqNgbABmkStYnceFUztJA/w89fkqKjTteMsjoRFjQI0JY7WxiL6+WCmZ43rqUwaZ8Lwi3/iUpb/geO4X3+MqA6ye8CRKbvuGc1h/PGuPLZuJIqhTLBwOBM4nXL6R59BGKgOBoLPHqHQXUnOZSwNm1ZaIXmeJmbMSzzerG6sJviYXmOeZvIn9elYXEZQT1XiGTCEuKoxUjq7noF6PmJiks2z/UhbhaclOmjlNufPRQ8lZ3qU79wZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c616db01-5435-426b-83e3-daab66c75253","name":"release-c616db01-5435-426b-83e3-daab66c75253","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1177a50e-010b-4d43-b3a6-06d6fc9e994b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418718825807422587525518785710474859367147476338421234687630274023799396532333673684270314173985999754787499549340711664527786520483919981141142265149623185558608512311311911514833278694293486422968191113903596228649744288575328827679965424368667514339013214947497363655433672662725866310279866316202","osProfile":{"computerName":"jianyunt2"},"vmId":"712016cd-9905-436a-b73c-432de1f20e31","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3RVuHKe5isE3ow0dfYT+C8Ta4LARsTSkQncNANOWBNBVAdMqNt6hLZ1X9tEjlkuwZ/PTghaYyPDqwgY5SFIuCmGJ0zy19t8BaXlQRv2KTIqbJEuDAooGMK/AS7Bgn+v/XHui7fEr+r4sgo2cdBVkfKy2pRzNr+RfdXIB+3HDl6OdG5nSAjqJCy9YZH+2Mdd/53Fs10tFQgHg7+33XqL6Nh22uahpAL0M1DmkMZ0YnblaR9Db5VxoPfq+bw8mp2xX9p+UmcTUNkL00kUdirewsJsPf7Tu3tstIFzuDPVnpzOdVwi6LbaTptbNyTZa47KooYHdXvXZ1uydCDddYxgmBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-55e75049-af07-4541-a07b-6b42d2c71c0c","name":"release-55e75049-af07-4541-a07b-6b42d2c71c0c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f579e658-1cbc-4bab-bffb-0de21de80b80","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418162879145858546339029848528783059767827208012892688010983973705936887827806260634009899190532191713167352111477382868351942275878468475336463947759382267524439523598826798167496352860327247858575791554674966692326655982908913811563498581432544190518478670953122292594363332201616524491207413368389221450424421685414559832555037417110492661689555004444","osProfile":{"computerName":"jianyunt2"},"vmId":"7d98be08-d295-4b6f-8895-0882272cb206","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx3Nd1ZqVQFHsTyWriY44LqfnMV4UxMIuB23Dkm563lBuTVI7J7F50ntIsMNgVt5+JHps3hntORPeTh2Dxd4VMmczE8vw6XNOFPYKMXVPratloZkdQbdZNGwNdeVB7i0/gxyR3tupBuW0gh4OOSIF47HzBe0+HOP7nsLwVinRxayhmhVUzsyaZ6k7GUohvEiDcFE6e5+YQlWkjJg0MxGZemSMKureFQMa20N+laHBc0dlLKl8EHeFr/NsmUB7SQtBE4DZrLW/zvJiAETi2vzNsim/JTKROBFLSvOpgl696n82MnfLT3x2WGceW3erPqjzOwwZmrDAioBHacvhUjGuzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d9e9edf9-a14f-4d16-98b1-80a5c5a57535","name":"release-d9e9edf9-a14f-4d16-98b1-80a5c5a57535","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"737f10ba-e3a6-449e-a218-f73e6eacf9c8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41816221758389984628286434391777924697482056329950120829028275135123569281331444488572466363564283894844086537871144978282348262990217586433846156981594906353978687849865738886906114219730846753162495461704242733869392371661935708613959717605415188040619567593959655268744113716400420391845","osProfile":{"computerName":"jianyunt2"},"vmId":"24c6e0e2-5d9f-496f-b995-d456fb3ffa68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5mBTUbhE/MXct7tInYSqwXPUzZ332WHu4RmFC8cAT2I8ayHDtoSoD1rrInN239cw3Wo6ZFxwHLFGHE5GEjxoe/Ds3uuMzUTBBz2kSAzo3Ir+IJvvmoPQzAq9RydGClaujzyb1lopSvuaQtApI12u6Nhyc2uOmdYAoCQlCTUhBOu9O1a0+lcERAIwsCxSzFMsK2N4wpO8HJNsp9N8gP5TKvcIdP5XFK8W9uaGmYAq6troEfedmy6XbR005mr7KiOUVvsmWc8h0de4Fn12vKxzwf/KrZJTBnbfPPOKsBWI3cTQm/lNds2+kPz4UJ0KacLztJ9BWWEOERjTewB7AQkEqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b16c599c-e005-42c9-9be7-a1c69e0cd13a","name":"release-b16c599c-e005-42c9-9be7-a1c69e0cd13a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d59f4de8-926d-4794-9de5-1e9a046c2530","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183637889977282553169149697976721276729347909135531866749134121823180160139201163988398162030911334941291336198976615739026814693533700139106007165667096618492483827595107738893632260328473871262062578869429971915758556243357531615043752269621485639714427400427489478346083004070474092012156380482415081325650772426842205683603334","osProfile":{"computerName":"jianyunt2"},"vmId":"e019fbe3-1b6d-4ed2-b227-fd98c4e9fad7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6G6p+rR18vYpoZUXJ76Q7iWtH+26TmRQ+9tUfH8C0Ck6HxBtQlwWA9H8w3lc/lZMezNm2uPT2g9UReNRHl+pK8mVslzxIft/vQdyIpKPewVAz+z66Rfic2fFXtEQmaRNWQeiTwl+wQwvk9WeTXvhcTt9RCtfA8uS7h4fvXF6DeSruEGkfT3O6YM7sSkzvz21jbX9HqHGmwgG7iswsvUxxB7UCPPPViyZT8PCLy4RrJghvTE0mNwwvzF5kpKsWVW3f08XCGdaLehIzTFxtsjcsZLk9/uJP/jRlWsY58MbOd5gx4sjkAKbnyizxj9bSXSF/+wqE5bEhX9n7WwdR/fTSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2bd6bdae-af74-46c3-bf77-bae0db5c8613","name":"release-2bd6bdae-af74-46c3-bf77-bae0db5c8613","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e02ef4e-e76c-4692-9729-1f150fe68d36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184635265491696420432541183421853233624517103450202643330829413782211178092396918721048177949822364935782494923570278208160089576067634147689256562296049031123432462475429192611214089724239899547840854784428412012713868503117688130759925823747535004577249315128048705240361884712885768347791035169563536624111659162440217151601452892684274611216049537846506536","osProfile":{"computerName":"jianyunt2"},"vmId":"3301a57b-73fd-4296-98c8-c497db75763c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsouBYHxKeuAtsC9EgBwE90EQL8bAT8BL+Rty7NaHKXdNCKsslkiEVHUgr+oyVrYCLcgJj69in3z2ntAWblaLUfmkOdnK46a47y1LdXZZz30zh8+iSl+32b3b11nkuGaBvPEaOHE7SXSWad6sszm9J/XTQm9kqpeY1yU37oXD8RiYOxBDqjj1yCgH5q33/sPxDi+Zs4JtQbk4G/IOUvG6S4O8qEPlung2HUpGFAHDe/FgGyn+Y+mGiCo3jCxH72KFvbi+EkXf0+y52S3YTlQiAWfk6VAdSzyzhLxdfGGqugmcuZALSQ0zs0GdT/NKw2ykjw4T4jxR1tD7ZRIIuEFJuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c6d0e8a8-9ee8-4d68-8842-b140ca0f970c","name":"release-c6d0e8a8-9ee8-4d68-8842-b140ca0f970c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"585b0a06-1b26-4f35-958b-ed0741fd478a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185792235142228512114729278261435660612526654583611055286389573808473584542103777781184998992575118737160667362166626407051486535104189549408522292426391074705469255052901908798864945955121687756566341778745834853899458417525116692867882515193984951447871433868183215669855857522789231653101634772871121709188033875610","osProfile":{"computerName":"jianyunt2"},"vmId":"e6d32578-9b9b-4ccb-b406-448343462b48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvfwGov4P1LfF9Q/xr8FGs5oENNA7S2KpmK2oGqoWqCN2an2PbJ1ZaJB9mf7mYTpgTi9l9Ptq+R9EKZWQlOZ5jXbbSLuUHdEzZVOLeuaUJP7/2xJQww0gkUbBbeAMUT0mY+5PR6aykMr6iuN5xPMIGvHmLZCMsTWQfnaISfKhJ8Ej/449k/VzBy52lKUXrWQAdmtBk/x5sL8/Z+KPBQcaF5KUeRnPs6XaETMUU8W8xY7JAWvX903xiEfA1iTZmK7k56t/qhqtAZPKXnK/47k0jmXcXCDT7ueiAiIwbyJ0oWqtgtviIJ5Li6mW63Qy9qbQhUR5ZJKDSXL9P3DzvB2BvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e5d842a0-8ebf-4e4a-a68b-0cdf618ef483","name":"release-e5d842a0-8ebf-4e4a-a68b-0cdf618ef483","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6d799f5c-3ef2-4523-8c8d-1805b3ea4348","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418179652809257267999718351723196860513427715823387521783455554488661870770997691896989035352367393477599126843167120261107167549363177571984232116702301668396830367641327863858198514636242356521154762672149890288835279983072554422528340278207894822896636760631966662009756299262169537713526617702761575733364","osProfile":{"computerName":"jianyunt2"},"vmId":"912c62f1-ebd0-4728-b33c-0bc71f3bb2ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwbPe2QyBlNNN1vr6wA8UKB0Vx6WfeIIjNqzI//sdaOIm//bja0OwvMejPHODnHn4Y7Il4kv0ujdgGg6BD1ZeL2LILYDp3i4urdPSNPJdN6tyu0SqGgurAm51lszp7+IAcb/rPkn+EmclbJIGCFBVyZ0N7SV0tpi2Y+KYVg7u+6VHRzMgGiNi5Vku492YSYUN+bb895h6zp3NKMV4jK6Img0SdMyX/Wja8UpxtL9oe82JXWO5YBT21ISum0ZFiAIGwy8tzRekdQukL++JlkPGqd8ZdgQSppozXeS7xpyzgkgeo23L+J9oMA60CZs1tg7zERQhk+aQfX9/UJeAoyHtbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c8e1ad52-8096-4842-b6f4-a55736fbff9d","name":"release-c8e1ad52-8096-4842-b6f4-a55736fbff9d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c02053ce-595b-473b-bdec-3e2a08343403","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873853872103940848193665967428119524591697467681437134451043489865464763205067231216147124588360616208537593402152928431413027524573635670124085143705543522678535416816370343543960877360228703970916288749317542598331126923465722200414960544068847078886492942861004349161656521375048869103128644903419327","osProfile":{"computerName":"jianyunt2"},"vmId":"368f170e-bef5-41c4-b0ab-1144666ba0fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyVhv3zvy/V1DAn20MMJK3yqzNbormVJwtl+AdKGGZKWi0mm0BOfnH2ZOBWiEbPpkiY0vPoaV2v4mMz09faRIZoRH0cV/vQDCdmt6Ke7pv5MY8GjDphf63PTG8n9XEFPNKBfrjjLf7vhZ8R6Yyrp7/B+dfzZ6OA+mSgi33y/g0gs0x1t0SN/JqsYIFmxtsVZXealFVsGObc4uOZU2l6IBToyi4AbDtIVnvnXA7oWSoPAx18Y/nNUqO9rf8VZQbkR2D55wUhDBAn9T45b0yh75cp5Gw4/sS2py3BK8KFVrsYt13Mh+Z3sIDo++eNfXhoT+R33y+Gp3+5JXELC1owx2VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-de5e1800-33c8-4b5d-a583-2e62490bf4f4","name":"release-de5e1800-33c8-4b5d-a583-2e62490bf4f4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"68e1c0bd-2089-45c3-a817-8ec581b5e9b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41870422579817350379422712539557882447421176519379542426984459027997569212175999867160631739804754485731248883878107165918846152700988206133582784369898512564452531270514770573111977682422746108456451261359669556897721085981496208272683770","osProfile":{"computerName":"jianyunt2"},"vmId":"4e5a4970-2c90-4421-9df0-77498f24e882","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApxCMNAOE2Qrk2FJK/F0sUBAb9CVNIpcu0OdRyiLbkaHnL1CC/sKc4AMA0DBt8V35ZfSt7seyXq8/4kgO8x+jO6qJiPY0T3Hlkw2dYv/NoylWXGzfvlqaVEeCrG9/qz06lGpGj0UHlXbYk7Lis4r/lpZEDKu1IHUTiQEJC+rF4bPFtlQIO9/WVUV8UtwxesomfcM8FxOS78fW1AK25E2l/hzTL2TTdkzLvBbLXQq6j1Kua/bprxdsmL45XNzSpDUPoAEjAFg2ZJjua3wZy+QBmo2XAfrY+n6lz18sYg2KFbcM9CMapO4tvh6gzHWdIRLewTNej+Z8vDC7DQIdT3EO+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dc1e350d-2140-4739-9d97-b92a94fcebdf","name":"release-dc1e350d-2140-4739-9d97-b92a94fcebdf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d205d459-5f78-4c78-89d9-6e68a883f1a1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418247343998221878800251022740636063968587491144564426463098177827075464223150756364202823844750284802370824922695151986024257272563626077588924237932522770712743849683953344977720191190276456132654072483540935422585853772937650468580952485449085155482428161014601659631235479826675721466308930965604","osProfile":{"computerName":"jianyunt2"},"vmId":"6ce38fed-1771-4631-a7ff-e7b3b750bcb4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoLc6wsFeqS1LNr5VRi1CS1JiubIh9hGbB9ph0nDICxKzbyebxEz/rFN5VTctlZ/6u/kHpw3qausq3D+eQZxPtIKNmcUs1eny+psUaVCy5hNO4yD4VAgBazpqOUpK+Kw1q0u1U4O/rguBFhJux+ixRu0yakd3al7SFl5p1V8FESH9rm4OlRuajEHFpd9wMtCJWDnANWZxbL4/lgY5PFOvq5pCIZ8SzumTDEJ2xjdrlhiMJdf85i1qkiQolxBINmQUoJBAT+rYzipmsp+MmY5FoxofN+nOLnLPMSLE/0bUP6E7fuxZxSJHSs0EOeGoQU+21TamK9Gnl+hILGpbOh8WZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-72e19a00-6525-4feb-ae62-ecbf9d276469","name":"release-72e19a00-6525-4feb-ae62-ecbf9d276469","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f3754833-50e8-4290-a92d-c41c1bc98d25","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188338501879078360493395818449873633723831402973617499067243251605541336031919478127725643257575964733977516910499424590035114177539961837326289794654159741045615808673374008624620355977907889667326901642169876165101871814757010902456640517689895883336784","osProfile":{"computerName":"jianyunt2"},"vmId":"89550b74-87fa-492a-bcd2-10a877d1f5c4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8i40wl2fbGvYrvvnqM57ChdM1j6V1d8PN6z6VN7NQRl5u3sA2ogVPSdPk8UXw1F+XpRBe6xk1G+pSpX/ZNry5L6bx1ndmdN0caUlEwErCotw8VqaakMGAXmluggsHJQwAdNE825NMdiaMLuGjlWsd/5WH4SvBkYbr1V/S92XVW9OYVknKWgTJlkKL9MyLg8QuWCJa/AVbWKZiuuXhbh4YyzdzPSOIAThE367jGkNvm2ixqWyWqBIdvynN96QicTZasmgqyTdxuOs9bJWzIJmP8ua0tsK+mqLmg4h3IuB85DGkGpg8qlQHL487DYUUS6My3QGQ3gZMnO1Mrs7y+vPOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-84631fad-fc40-4699-ac08-6c3afb42769a","name":"release-84631fad-fc40-4699-ac08-6c3afb42769a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e612c05-1356-4f2a-b004-e9a585b7ce1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184967078374263786712852793907418816339183666685634560264243139075379541218677937149976147584736782367776225521542295473849695269783470721656663287813080317457591613526926952266436321217489915468869541019204896995614696983145788306546429554585816192346541708591018887665903","osProfile":{"computerName":"jianyunt2"},"vmId":"7e9f38eb-5c4f-40e4-8228-221cf87f5159","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2CHIr1yQeStJbUC9KDxJbi1uAfq0uBEurEUBpeyLVBdHIrXB1i9WvK056lneW9Tk/eXlNtYqnBYApAtVdU/aqEY4VYYGwchpiIS1tYoRxGKsSiaudAjSpB3X/1cs6a2JhKUr6eho9wrOrskBJ227AZAOXyBx8X3HYz3jXZHxdVyq3f6+e3TRwybUendcWh9oZAcgrTJgQo05uZUbnmG46n3SwKfQGJlRs/julO12dYaHqADGYXD8K2mCjrYVI0gm357rLPVj7N23T1MG2J1kEU/QGEJQjS9zx8v3gs3mlel8nnt1RR9CaH+Lsr5nDZSXajqZME1H8q35TpDlJQq/7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-73b2ba02-840b-41ea-9605-649b08315ed5","name":"release-73b2ba02-840b-41ea-9605-649b08315ed5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"039c3409-9f6c-4d4b-8b7d-407be26ec376","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41872397368301861567529546836961671444896551038764689695359805386635759859076122709724272591233453939167291467636357427983380911438707301767210291918709913936896595524352585152554442890468378389163472761553894571871492357038374245021135938297464738693454289198695345068610011179244707862327623271428578661503","osProfile":{"computerName":"jianyunt2"},"vmId":"97a01f0f-0dee-4aa8-b19e-2134c0d4913d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3rfbZMTwLyydg9c8wlJeLwZKMNaeWRaL0yYwIkdXnBAu56yqaX0sNzNvFd5P0lZ7RBvuDn74cEE4cyNxXMnxbUc4v8uSVRYiA+1nXt38XoC2cWSjqGgDRGRsr+dM/yBReZxlilRN4czVJrfcHr4dp3ROdbUTV85LFs4RM+f5D7Zj1o5w+r9QQ3AD5+EsnnQn1+QRcDEXY8NFrMMVMMifckcs0aysi5I5TBgOdkIgFfyN85J8wQY6ohLF0H9tada6fRXrkhldKL7BWPQmjidIg12GM/csdwdH0ptk+z7XoHQRyzrtxnGDqvglm/rRdHHflgan2HK3phN7+1GlO42rSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1b1df994-3c21-4f24-a491-d1dd2668fa2e","name":"release-1b1df994-3c21-4f24-a491-d1dd2668fa2e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"28f0f600-489f-459e-b7ec-23199e9dd165","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188182487158392808227446052002510966321482768728766945649119777567198518166729312610606359354807606590142981566151629552494381659094760566968868750754258187613743365564749718304912416076510785485941318777304484555211758819142740113945424950996531537347327716448840147729971297889004993105353331069199","osProfile":{"computerName":"jianyunt2"},"vmId":"755e28ef-a147-4486-bf4e-2b7208a49d90","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzpkWS1kAjFnvvkb68PfBgC40E9lArmoYSXaIHXirOMKLOD4hQvDQOPa+zitKd9DeiuPe2jr30eDp2W1A0MHxy9/N44BmZqs2ex4gy283Jcs4yiJ9jwTF8UKLI+O7pan0Td6zQnV/naDEuBtI34Api5h+g3IcbF+LE952ZpLnM+yOdOfALlc3UQ7Pu7zxw+DeceGpgryKuPzU86UyXyxvadyx4AXm3jyvpDm8eVfWQ/7TD8YbzdsPJ0p843f0CUaPuS7ym/4J+v5GZYBWWBAtQWRGYRtHEW7Vht+gzJZun84yKgMW2J+rlufsqLwVdT0lv7OCdS3VkWKVieAGP7wCgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-118b4f00-3379-4431-ae7b-4a35c0f0add7","name":"release-118b4f00-3379-4431-ae7b-4a35c0f0add7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0cbba624-989b-4c0f-83c3-e3d8c7902b3d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418510576126025641499208954847331317870834549401191819630591315535732392349749409161245962962614889394040126323663659317165664948706084356059926626074683640560784747873631126085750961589066252546126436004485431578977137515540831604472314624608562279111305984158469558139642232129633246372515283367639787986372027252549122321898066214250593630217712653844445583745747","osProfile":{"computerName":"jianyunt2"},"vmId":"e546b55f-800e-4ee2-b1b5-17155db4ab58","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqWQ8Q0oD9b7yHyiVVQtvdBOcRS4EVbelj5+QEgq2nYBjCqdx9rZroSWPulGvgp+DKJFNYeN1ANJ2HE+089hDl54Go+6qshL7UiPwzYYg3wQ7G/Bc6EkylJHeY6Mz0wq6aV5dO6B9uowboSgaJfRKI3Xl6YghazsPwDnMbMmh+4vUXkdPa9dHSF//3eJQSJqRmL6gtqkHwwSljOUtld8A1SWoPIA5rYYERoJqQF9ed1tT93KZH8RIBt3f23HhswniX6fb9FKuCBzW0BYuvEM0FIk7keDbowGnjHnUXqAC/ktAZ31NXWwSC7lx3rmuKIFEC7LU/zB1SU7aTDyhGV+XCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7caa1070-49b5-4582-96c3-2a249a094e40","name":"release-7caa1070-49b5-4582-96c3-2a249a094e40","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2f4039f1-370e-432b-9348-060520063fd6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189854275124806038658537033963382989541339506730714787993339423415857184290351869540038751774188677447637699186222839960577331028204914883304878688835773406499237691217291808476393775854213154449426742773117181648356264572555346438928386390807899229626867572699865685176977865656051","osProfile":{"computerName":"jianyunt2"},"vmId":"65d935a0-1e76-4417-a104-0cdec6c968f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxhLhrfByFNDutzshVPpcDiWprPx6FJAg+HIqsVPXqUmh7+/FuQeUv+EjKKD0h83U1QgzbznNKjvWumAOZgnI/8PObLxs2xigyqkhj6ol9vh6LmBNAdCsGkNhL6/L/FxDRdupHYWdjftQYUYw6R0IqrMpUf2gtrs7HOD0qjCpKsn1qk4pk8BM4umImjb/HH+Jdk6Lpz09v7SRYJbE2baFQREpNqZNMgrONj0ILg4U4cQ7OeBk8j7a4WVnQRXSbvRDCRuRl7o0y8zBf5P5VsihRckLmyP1MlQdZeY0/Ox59Xv1bvnaHlaiaCkZ8jp4K475XGX6C8BQP5adKiKWKUW3ZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ad2f6804-f3ee-430b-959c-39deb0183795","name":"release-ad2f6804-f3ee-430b-959c-39deb0183795","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"68610647-5f4d-418e-bea5-07fa3b027b08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418235656649655434932585752224581541696567769044994969211391664438680911957744954912738504204582140166845727816168288495984838498025184355652897101492088544760112415749351231889327615893952129751523859594238808573364520899985853101487241996287928228313258284135238385315783092298666983585853771667197698","osProfile":{"computerName":"jianyunt2"},"vmId":"e771f7e7-1c5a-4f4b-91ee-5fb4013ea34e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnk+1E8Ckt9fnY5v8UGveQfWd0ohMai4cIG800F7OWv/Ct3a7llYTDvMWFDFy4c1LjUWReBiYcvBDlbj5RoNZUDpWhX4wC2M27/QkwcFhkU2P0WJj3UJ695C0d5ZvAOrqqDIM9gJ2A6Wwjb1wNIDARhXw7BNjMAE3eOtDa8IEEHG3CG/8Xixa6xW+rc/UoDz8oEafAqWH3PAg/xuULt14EeLd3/HeT5kuwLA1RlNgJTXB7jv+3FN3Vs0OsNzQYz/lc/5tti1E2I54Qor+w/a3QYYkisXSiTFt2GA5ukVUuMERTKY6KADu44vFjVtGXSxEkiMApPXflKVZKOZZIibAcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d121c7b1-8f0d-41a3-9d94-b337875f6cd0","name":"release-d121c7b1-8f0d-41a3-9d94-b337875f6cd0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4c7ad5d8-3bf3-41d1-b83f-b69b0134ca05","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41841020733002968869704841264119803848824024200748917038576755217054487474089344740727978398433873747704135940178636570312493353738332066724663735662768226941544171597960649308655995197490185839009026771769285007656324615062947161491986147030795255573653063757511663707099508259233951782457765833397770593383464","osProfile":{"computerName":"jianyunt2"},"vmId":"6132148e-c5a0-43c1-ae52-88ec5202908c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7gXX8UVp3d8TRvxQA/q82Go5sbMAY5JAZnPk76FgZydXVQFM+SzqJASIigjd2IcMBw1gKdgrmZaeMQTphqFVWbrYYJFPttgg4XAbluAVXiIWcIvCAwlaak1Eth7J3MZbO5ZAjQX4XB+P9IUeZMRvYMOB52EKw/nzhVEBfjcm4wKpwDQqe5Ch4TUqbhkN8nPKTJaXQmsfuYLUTte862Rt6dN5QQWXwTabpkx1dMcYG5UPuy8ZaqPhsO342XPRc3vkUJDUhAInZehvFaSzwt6mrYA1JfEiTWLpjTfc2wE2Rbmz6YF827qrXH5SnfalesQWYhwE1EoHCx4/OZ6+1KvDXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-803dd905-fccb-4995-8dd5-3f62956ec4ca","name":"release-803dd905-fccb-4995-8dd5-3f62956ec4ca","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"22bcaf2d-9413-45f3-ad3d-92870befe188","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185103600382837718235337211206743747687246616465168657153328761540267119430971848207659930534612134516158026320795491894908860573540779101267871502218835017823812365590375510600992779815897050410124043300912575985086888063668078357656083073347661439960354014198665830920798090","osProfile":{"computerName":"jianyunt2"},"vmId":"8ee0aab4-8fa9-455a-9547-b542a651d1d4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9bnF5ItR0qSG2YyNMdn+STDYlBw3Hc1MUAfVrO9uVHBSGuKoCPNZ6qanLT1wF9vIz8q0qU0z/JmnBtysXIowc70dkgsi3uIMrdssRi6PLW+13ohhwRs41x5LcmsPLisiGXYwPyOyaG4SM8/rBKmuUE21PzJKM9FogdpknLl2qhuQzZx3qJrFYB3fiNaE800lw1f/4rKxPhvNxiBbyBwzKIZze2xjab3RZICR8AE6grsyuqce7KpZVQddEcNsb0+pkKUW67lW81eyj5Qy5sER+NJTnGrPBksGJN6WqOm5sQl7lO6NZm+1HZs+BdoAY+9Ci2zug/25C89JGnwCiwZ8MQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1c6d24fb-1ee8-475a-aa7c-24a99435db5b","name":"release-1c6d24fb-1ee8-475a-aa7c-24a99435db5b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9a9a8975-7d80-499f-a880-5e299c6a2243","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186061851158980547568652348986837301668579672563454290945069865067213555617267826767535686212791805871038475075374762684787831813465778637913246854825105463860292989139544783093373217956932127571674177825773556166818299742627847118445193244371783119416663759697958192307161491786416","osProfile":{"computerName":"jianyunt2"},"vmId":"24acd3a5-6c38-4523-8a8e-396ad1a1f092","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz7dEkJQUOpgU1++GK3ejOl8Ux7yWk0RTIF1oJ8IwVd/dtnkd22CuR0IcCOORzZbcNM7PFYxTnSsGV8TGmKqQ/dTa987nG3RQGYevjpiNygyCrqh5lK/2pjXTNksAJ8p2QuaMdhHIlt68QydVT7/9nn/To4n1jGZoiw6gX/zo1PQaPeWYAMERDo09uOzheBPg77ADZa8JMmTzbbJIefNW2/nGNTKgQxdyT99EnpjLBO9B21EoDUGZL/gfAZ5CMeLb1dySS/FSWBrrOM+ROhVDYppf5za0XFv5Yt72O2EUi6TMWALWURBkuWzIcYdxkYhnR2KR5sR+44QxbKSHg4wJvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f0e77de1-b3e5-4a3a-82cf-b07beb3e821a","name":"release-f0e77de1-b3e5-4a3a-82cf-b07beb3e821a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4d07862e-45ad-4dd4-a93b-36d16fa832a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41877364432629587876931577844335352880351485416137117491280335489632288344581961588981338762502545616977434428872060399108383226397153157334616691457862781594831934618815353987073952064329590092480776049162175824691299468980472437114497846927075274086995020667993759246387068549806973775104756432057348391277952114309746447115922164279","osProfile":{"computerName":"jianyunt2"},"vmId":"a33387f9-8ecf-4478-b611-05dfb546e323","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1rlo3qpp6Rg6m39M62Tbq82yZ/6ta6UmQMqO7wIIzbEgsGbYq8UruUzax2y96MXYlxmJ+H4bTL6lUQAkOHsytsLijVfhK+s1zBiHIqcLid+gdC1l44zC0CDqwACjrTKA5ywu2NTTKSxxrs4MYUzZ9SuE+cnV62tJEJABN2tVriAq4vj96Jo3HYuLTnylJJ+kZkQsv7FLKk0hJ8FtHXJAESBCvXEuZrsNTFNAidRQf8KmNZU+3mt5vp9YgH3QKyfzCoOSDCofcmjixmOefQdnhvPeCK/fKi/Cr+zuxihzFZ+9fPVK5nKP1Y5kjuk18TfHTh2rNXptqdNB6wrZ54zO/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e2e622b4-2d04-48f1-b6e9-7c3e291cff53","name":"release-e2e622b4-2d04-48f1-b6e9-7c3e291cff53","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c36c71dd-fd76-4418-b14a-11a2a94a584e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41839374361809319483625369175693216320894943566639850027241347516651737562563464755486406031894307955234282373834132664890082720667469312805198545130547892182784399945540052102253493758727001211947117493409633788919472502088866782228897464980319992552011135562804619266300430686948704759629213492995424626432053086568231","osProfile":{"computerName":"jianyunt2"},"vmId":"c999b8c6-44f1-416d-b71c-f1faaf261fac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5OUX6XKKxA1u9b/WaoKqdZ3vcFkV/0NOLXH/szy74Nl9uyHmHTHL/wWQ+cCoFOflwhau8HyQMy2TB1Obpg+gi0broB3x6yHGpqQ6kuKQOcsqYlKduyXp4PXJUGM4Msyox8VCzJHzuUgDX9KPrt4sj8BxuQJCAd6cPjn/x12AAvnGda2uHJoV8Z4X4ySJtzXh804XnNeHJ1atiUIN2uj7nw6hsVkPf7qBOCaqC2WOszZ1XX4/GhyXWBgyf6F7/VfONidS34bnO+9Z5kg4ZtQWSxaGjPceEpJR7TUoVb5eC4o2NqGQVupQKtsRMHsqO5e0+WDyxnArhMN6yn9JXlMbKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dc95427c-e1e6-40cb-8f26-5337a19b36e3","name":"release-dc95427c-e1e6-40cb-8f26-5337a19b36e3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"91340268-f8be-46a0-87f3-5df3fc8f95b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41891326704940860552258923572630230222353146071414974485674528331731070749042753049956619842825285754454536306116327465587735760716835027870361161113678490522899226687679236689379731498830522998756504852602461992061627614413893278273168426765586727462826170867749781982468944766150","osProfile":{"computerName":"jianyunt2"},"vmId":"ec0820b0-8db1-4e55-9a2e-10f5c29fe7b2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA99W9whbBBfXWlZQnvYfPc107EA3aXHGqa+FyamucirFQU8LyEgEPwGN3gghwSE+/+XyAjKgiPBTMVVdOrPMruOOEmE+v01jKgFIhuC5shP6PdSCncbkSwYIXS9hrd12bR8ru0WXh/Fk4nZUdMIOHvJHPM0dDTrmYdfXGChBORQMXbzd3K0Vev+3LH60bnRsMF6zUWjnKbCCl0y1vZFOVBP4trPblzuU5hm+rdOyjB02msVnKPs6XpPHYxZijsYHBAl1eQGY/F2b5oZXxQhiDFXmtF2kKf+lHZrlU0GaXc3jKRjvjfxrCHoUkkKGWYtAxNmjc+5fC1UM4W6k0Snr5vQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b16269c7-0ae7-4cec-b4b4-e0f5564358e5","name":"release-b16269c7-0ae7-4cec-b4b4-e0f5564358e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8b6d6659-e12e-4365-85fd-a4a5214d9f82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418186353567177693174105578371703015067276409559311944859250932795515503848961350870978234286967250844974423397162376400371664514242705431880405341569388151376419451886844977519288348432335947217508173237600598688468071526579037956275432051883238998259077624647286987317673392194757465911133535501346","osProfile":{"computerName":"jianyunt2"},"vmId":"40a0c31f-2ee5-40a1-9d49-c8e59103200b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqUBJpoDL+VBANMKUc2pTtJhRSuQ9ZuChcdd/8H6OGj6E0gz+M1z8jRtrSdERyumARUx0QGnWyF4XzDMJ5j4tFUeFHZaDw8E594Wc+fRJgFRuGPag6Zd5I9EjpV67PR5grxZxEky4e8qKXB/nN1NBjtgzI3BZ/WK3vDXo0R6qmUbBuZAy8Lul8B1khrNRS/g0DZ1snMQr1eBt8+e0X5fYckWY5tNAtnzZNMvx8lYO31I9zWdQgyfeetXewli65Duqo19ZG36A0fU3NsrXswbwhT7zBoRb5ii9FDMHdTnV/5yvMIb3Sd1dHSk6abRIuiVkmutbH1hewCmhg0UGOZQbtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-64a8636f-7582-4d45-93c3-3cbdf1836b98","name":"release-64a8636f-7582-4d45-93c3-3cbdf1836b98","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d793b27c-81ff-46f0-b23b-4147d2040455","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41840492012788192190679811920202567733202549543395907833274125878113175253386757447142178022499370586019346788995898364582460699552832059239607940211325934696248593213677552350895487997279646631971702517185240396758167913597736525745863451797853308636516061150491275104693815863662968816407064611636","osProfile":{"computerName":"jianyunt2"},"vmId":"6e1920dc-92e4-497e-9041-4af2e5bc2611","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuQ2uoP2nPdGopXhEvMJ/17ovkUWNRLcTBHachH3inwWFbQ2ECun8dv0A1UycsPsc8hLXnW7dhgXf+M8nd+PURgo31KQiQIqw0j+HyJ4+gUJT5k9hx/8eJDfsxPCTzWDUPxXniMzVx8DGrUsCDsvNKos4LkIbhzL0Bq9z53hdZXY4gJeBPRIOplwFhVBp93mCb2a+B922pTST+CYiswXRniby1YGD5xj6qWOirJf7AvMruwi3Vt/056DueQz1nGomsfbozG8zOwKaDRahQbyCmaQwXlXTh+AJqSQtJubWcuEUqR9QTjeSwXhGnMSZ4qnMq/hGfiEoqNThUXAtb4WFtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-886d606b-3be2-488a-bd99-9d6fb12c72b0","name":"release-886d606b-3be2-488a-bd99-9d6fb12c72b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f9d8d74d-c42a-4e5e-b19c-62b4c55d1635","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418851538924320652114893376724747011419860586307211968072521851704626815347313842407562724797643723852192696892429828329841099533219100916448561463531289251431138471579248760690937427263187354545994052311781141879190701045893732239301606199337440145242419411475015101506369276249170847257263671","osProfile":{"computerName":"jianyunt2"},"vmId":"31244702-5bb1-4a1c-9f1d-4c941e6c16df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0YHMBJtghrkfIjWo9tGPSi9IYhj9fRvVETR95AyOP8WSscjsUO5Coojs39/eXLoQkx+AUbEj9pVeILMHGPQ2UKvGnjiIn6D1//6VQIKnMIpNFxNHJFCT3TCYEiARcU4rTqMy8P6OjC5GPh45zPYVN1rrNDNdIFFNl3RP86K4irp+8cnXuy9qX31dTY19WMzsQ8D/63YOrzT7IH+IiyMz9sp8m4g1x5kZ/oBofh2Vgx6/aBdou1zg2WyTT6bVZCZ+Xk4rGbeZTvZx3SmXx6YSwxosMwqW9WvlIOVHRqQhWSIh/hyih+UprKWi8ZgtZcnhdGz00Tl4TfmtPRvrUeVw0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ea2c6fbd-fd13-4967-bed8-97d99d2fe0cf","name":"release-ea2c6fbd-fd13-4967-bed8-97d99d2fe0cf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e37adaec-d68a-415d-960c-ccf665bd92fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418533838475950149247754699797919677950267286138157714042414457841028831384424289338098182092046420371195834948608180003315682633794583198518885824326222748138779615834184384618595286337058482752298061506836280464334616534249359262656560175731432995936477567524372699084641378399464075336199187502","osProfile":{"computerName":"jianyunt2"},"vmId":"5411f8cb-1120-4402-9517-cca156986394","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1SDmqN3FqC7KWmaSzKUgDVvlrqdjpM8uoleis+cW16nOa58zTpImRZja1XwBWAIERNjmO6siji0FEXJxFDxVED5RyS+aoV4F2UN3F7huf7xPCUL0m2h00uzEZhW5m7vDzbM5VYJ+Dr062whyyFuPHJeA4Nq11VPwWM3n8InIB40BrrdQ1mthSkro7l81olX96ns53ZMR8ywejNAOP69gLt288cScyQlQc2ZLF2Z7TJcqoDnsiLXnbOBxS1tOtAk76QM6lQcoumitMvGjeu8ZWUUUJh0l4XfOwOdX8awhP1QRqXVq/A3rn1r+6Pf8dbnc2TFqG2UE6wryPN4MZA1zNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-67198214-8474-410c-9251-0a5a7783ea65","name":"release-67198214-8474-410c-9251-0a5a7783ea65","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4acf90f9-ce49-4ede-a701-222834345e73","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41850991473851462698896633582379959816774786748519413842558946383385373619488318408937562796566155769023716620345633586894241612587171974065436834489116366084386640330853797367470717220194501606145893597646469690021955839946633694954815952670440630047990540428427349549437565637983","osProfile":{"computerName":"jianyunt2"},"vmId":"24e01f49-0834-415b-857c-e883bd89668c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxAVATCsOy/Jee6dtcxWywWXOJy8H6e/reX38e8MG8JT3faqFsuwBzCgWxYsRIvv4eTPlvILPf0EXabvYZdX+jYBF9hDWZQKZNXtYqcvZ4adi7O+k6CznfSEzUFVdK+0/yrItknMcD7DTJqItSBXx8oooc8fimj5T9OSVg3qY1V5/akfPq2R4We72IeFk7F+Ku9K/GUXDWYpsQ3uvip0BZ58nTl1ZZMBWbTB6PpZ08QafuO4KzhGHOyVx/9Si8z5S5H5veHMtQj5nd/f04IBKAHCu3wNPJ3wyZj9qjkc0ywqHKqw1+mQLZZbFbLHKsHfVuqsjpzHAkM66ycz+J6zN2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b1231ea0-7c1f-4c1c-a34b-8ca92f536978","name":"release-b1231ea0-7c1f-4c1c-a34b-8ca92f536978","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"72649eea-6f35-4af5-bbb5-25fb9e94ca99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185233206262471199357374677621352077592670848179818243459523747996941421536409532586972581677467818762413348336593650283491682806255513592679299342209948498059102352924800383566287498764095010431996588235623834906103962265946078814642096835360306253199476737921804868","osProfile":{"computerName":"jianyunt2"},"vmId":"378b843b-9f4a-48ec-8858-fbba641e69d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzYe03HTAyU3R3GKvzW74+3wpWq0dagQOEujoEPblDpsXu9/FKiekYqmKXeOB6l79j17jFdqLmyh0jMDthMlLjLQRNW/U8n/ncH3KzlEz/168gQdbYTztfwvDDwTo8Pf+nKBscv5GItP9fyZYsEwQd2Ez9Df6TjQMg/lylB2z+wgdeXnOpNVBWLMSNRXPRjeoSpGWRuF1saGGfw9goRLYol6qUEvRa2BGN8U3Wo+gJqBjZ1vYaWgmdDCeWjpSTPpKVDV252mCSpl2so9o9T/XE/bAknes+YV0BNRfwWO65MwE5HB1RN4Ec9z7LoJe3ZI7jDDfBvnAShKsDodG+oAgAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-95bbfaf3-b603-47ee-9d16-097bd86d25ab","name":"release-95bbfaf3-b603-47ee-9d16-097bd86d25ab","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cb35e40b-2c84-47b6-bbe0-b383260adc07","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41814146355999112908018945764519886637942486249844300237311241555866268897955528984594543232315769662473664871670648722001542161018286956932315271604224145072252096166750473252617375470639849857298344736806195256496341375372936301883965664214374843021132144221626146863928202345557163878649403386579125","osProfile":{"computerName":"jianyunt2"},"vmId":"d606a2fd-a005-49c5-bd59-29bfc2876eff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6c2bDaeLG7NNS/0ky7EXStOK+Jk3iCWBddwZ7hFff/93D/r//4lYKX7jJS/5ynvFInybhnXvyUcPqtFR4TltCFv+1zggsZkZygc2RcVB7Eg/Anqd+XD5rYsV1J+MnQTMdfs+Ebgjg1EmNq23bfjCRkKnB+2Z/e52lVP+xWUuzqPV8UK3hsgTT+aRVk/i7g5WpPQs9O2e4H8re1ptBsbwxvlFMuHvj/r0UaWgIvfkslDTwANM3FF2BrpPO1Jq8kq/TBANNaxkbn1FntwsabqGVRul/5Es8b4i889oTcsag9hkSWD4l8nVDjaD4h2lRQRYPoJvPSrgOE8sRfQLLFLLjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-06a4a790-0342-429a-a418-92377c003d0a","name":"release-06a4a790-0342-429a-a418-92377c003d0a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e7cd3a55-d130-4b45-af71-01d3df219632","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41881841915611480932918412112571462225642462724525428641480767836208739114096659737398492118360691026487556488829238104526579194400085061050781673402266188725186658366323347931612680688407983403999551551889111046125392258380768985141544774553097490836662898799125376990356237292502770789158892735456492823767392195609768732081804989752043062832848","osProfile":{"computerName":"jianyunt2"},"vmId":"645a87cc-4cc4-4a43-8bd2-c12d29282b6b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwhCqbIMeYBppO0V1hAYEYXP5r+t81H/9BO3AtHd4J1uN6KQ+IrKsKB4LfXMNSQiJ9yZtAUGel+DufrHATsFJfA3B9DdrEWPuT9cG8eb4o0bensvBUG6rTsB2haas3tFEL6Yinya+NdpdQXKftKmqFcLvH2uXdo6FGUZC7yD2BS/yafskg7AIqNlvTejp3JNT11wFP1UxUB/HvgddhJL3BBW6cGfgIk3EguJJoTp43ghtzVdupatSx40LYbCiXIL0zeUFVt5HedlY03PHdQrwHBpbo9NCKyJ/mNcmBotc2D5VugEmkgIInz1QTht/EYYpTagtCzgNDtrdmkpfrReyGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c7e6ee98-8292-4089-bcfb-5652979550e5","name":"release-c7e6ee98-8292-4089-bcfb-5652979550e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"65146713-0fff-4431-a89f-19030c67fe00","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41869948808709542718002247930747767408467159824371424964654551917662937487516631868871185764291309793974475827725722304237051020407552649311633543806655886089046054875390761605676582939975508917657328256945759363804698952488444157387240117982219946510512633231551562809923673842617428438396799284197069765457762101613","osProfile":{"computerName":"jianyunt2"},"vmId":"0ff98dc9-b021-4026-833b-6b90fcb21dbb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1KGAbuI1JiMYj/sINu41eqdS3KPw1pWeiylf2o5lriax49q95FXoefhWW4CKzooh+qQy5lTUH4NY58RsjjSWVY28qSf0TIu4I2oNYiMsPCWJO7UFiuQtTQsZ2qG2N1eJwHU5r8I7Wb14+a2D+pjo/90uMwLfuUXGhUCtRdWqcpzdfZcEFzjZo9YQX9wptbrWIgxTc0Nzd/Qqf8HjNJBI9lUq0CVj3JaD6A2pmIq/4+8zAkFOaDqldMI7XJu4von6dK3fhdroCizUm5EsEFi9lQNyKTISXzjAEr09EMAPUUFqA5zEQAY3pE8fzQIOJy3SBl/yPWBAwZshXqFN7GQD1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9af25dda-05a0-41ba-a989-933ef2aa429e","name":"release-9af25dda-05a0-41ba-a989-933ef2aa429e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4c228ce5-6948-4f0c-9549-c3712abe9f5d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189006181631151295268634578376734788581977637861982052058128649883018955847371911443990648348546876440738954195547193395326227839580857137561613034479225954974616399953649715115309717766037222544382269792757451011971480754262849118098461834330879562589590068034277087756201254947694496573","osProfile":{"computerName":"jianyunt2"},"vmId":"afd5284f-d928-474e-951d-c69fe59ed87e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuZRJVC2p4JqW4GPsI9bNhCQe4f2NF9tFsGVKYtI3XaxBr2LCXwxxMncNB6waRb1k1uYTBZW9kDK0cPsLTXpfi2ahhzWXOejUyb0qxmE+SBR0TU82GMDSkP5tP8ehLM7Sa/+MEFUMucGUn55/CjwRSKygd5sTtID9ugU7CB/LfGGQMeWKL/6HR+43P2RdIRsZ9OC2IVOCXfMqPEXFfg1iG+nsaMXEbDNP4nSxAucOAGtgsuM7BApZ6g32oeo9trWFdaKoeuDRIYR1TXc0cYmVcztbmz03t+jCrHMTPDuvq5Cc8+ZLp5FwAITA2SKwPD6kWVD0/ttf88k9yejiOGLuhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7ad77f97-0bd9-4316-a1af-85df0c3d09d1","name":"release-7ad77f97-0bd9-4316-a1af-85df0c3d09d1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"707a37e9-58a0-4393-83ea-c63b3609e8c8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418693977743350699675271718696863975422327137849709406558407687359210142237966165661675972652376346595344031411380981845464083148030195897771643897664918011122974866651524969844077381676709830487312956905417197175996109450179219781189893822815615544838718930814735171541473283732725225015617964435336851211067606337336701","osProfile":{"computerName":"jianyunt2"},"vmId":"97bacf0c-4a26-4e6f-9cc9-404a4f6007b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2QDiv6tkaNHtcXe13QiclaC3gVlYvaOMYiw6Ijna6scUyKkxfW4yJhO5YqwlgK6taQpjXMZXo1s/SCOsaLjtQap/AhEkkCNpKMAndMNLxubO0T6xW5TZGKYY3DX0SIqo5KPSHYFkYdtuiOBXRk32aS/QCUw/lpmVPMFqtg/g6sUxvPzxl1sBz9pqpXQdCI+RL2FwdKSvoHGXrQDJ4KTOkjx0R0ddMdX0b7oL6xq2jjq1Omd5rqhz0DSFzbtM7wrwf463/Izn91U5EflBuNCNnF55m9enlS83wq47YIUM6+O5Q2Ioxw3/0OT0FsiLRZe5hT4XdeJ4fGRMsuosvM6scQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-75c6b640-d3b8-4971-b6f7-c36c44ce7c75","name":"release-75c6b640-d3b8-4971-b6f7-c36c44ce7c75","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5e29813d-a1db-4c41-9d20-96a1cf250db4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418818460979823245036342855452841376690834466161181341515155920710757681403377005494861008289931117743524429789594957649541003238416169836046658144541376808190017475719886949566754433269552684486159368534425731591206432757375530608144211773323665937883499105866256936192903392411742365582575405984219675479","osProfile":{"computerName":"jianyunt2"},"vmId":"8c9af7d0-dcd6-4e99-9e9c-d4c34847c7ae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4D4NGiVcrC3Gs5Rofa/n2AgE3Nxg3DP5LZ9566TkrLrT/QYXDCzSZwZaaI7DoH1pvcDpHVGuVfQ3sQUnocrjyzeh48L/xghUfW1LH1+eNPbO8PuzDme7onQsnyjNtOF3Zm5s2NGGs66j58XEcaQqqWyzwq+BpOLZZQcrFYLb9okxYLVy2TtR/GpPPlAm9vd4F2j+KMJ08hNISbkP+Z2S2PwcM3LM43InX6Z3r/FbzMJQ7A7MMujDbdcJijgPIKBqiBM8BuRS0z/4KtF57EE5z1CBc9kPMhtVpLlrSHsZFRD4txeN1xUYksCylSKuq6mvzc9WKWoSyhznWf7qJ5WF/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bacd60e1-a42d-4673-bc12-b31b7820e883","name":"release-bacd60e1-a42d-4673-bc12-b31b7820e883","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"03659d88-e096-48a6-b739-a47974447b0b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41821331057758712838643057080331382267494632738037645947684147935777295965027803210653257803373028744633140605030940285124220828531992472505127252015471822590368134790918156909549641475595487423435749229227882990913538294413416851270595211286482360022734289211063564117501856633575675","osProfile":{"computerName":"jianyunt2"},"vmId":"6ac8a2ea-6cc0-48c4-a502-3ef133e77a9a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApTMcmr7pG0+bFnnq6OId6kmpKbGs2i0ZXuZOkte7KavVTgYxok861CfxMMbg0jnsGIanLlDGUq46H6Uuq2h47XDhHLKRDMoqrkXW/6WCpZOEJGCDM/wq8mIB0TF3xWsu5te2/zUQ8SPex/qzVsZTupe44gVG/iZgBYTyubhFRxVvnw7QOoIG/3FiaFZhmCpiU2HmVzgHmqK+538CBEuztjPL7wIS9RpJFcOUSsdYaCs7jpIAxzFEJhaoAOx68BdHe307plNg6frB+I0pJSX5+bJnxp/3copYmXs9V2MWpn8D/vttpHNhPVoS0TdgNT4ow3qcFGahlyrj4LUUKLXf2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c0a16149-5a41-4de0-b6f9-f53ef087b777","name":"release-c0a16149-5a41-4de0-b6f9-f53ef087b777","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0c664307-ae1f-4dbb-b620-6fc00f26e1bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188697277118859072743915791485843912978686833183998752161176378050945788451348702065624650598244291382730954645134442296442960356127422832661354039547861960759438008130022061679805543956531252610226904512989711302118452147012932993732074204923018513101640045761215201743937846408282020123537381386485073888339085395805345456030","osProfile":{"computerName":"jianyunt2"},"vmId":"364ccb8e-982d-44e3-92e9-c6ad4987e520","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJyXR44HnaElpipAEKbvKgZupx6zOpQpV3FELM2F6rf6JubKEm7QzpcLH121iLfwavicCAoRvJBFtpD792MdUyY5xA4vDzQunneNdqAq0BNwm0irKBfFqFN6A5eaIjMsXayAZtw4j1KzZDTs9hYv2y4HRoUW2hhWtgV88pj+moHSwIDMuXleJZKNrfbfnjQlM7g222Demnl/52BvFRK0++0hS4HWdX8Keg9GQsZ2ePeRAkfzus7xgRXgd5uqgbND4QbuxCqeolwspyVjgV16pWEFFjCIg+I4rhn1TLQYyoAnp1ICAdWvEeqHK6s+NXIFX2FooJbNot8KWllnwjB+DwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d2ba82c1-d2dc-4687-8d51-398e820f680e","name":"release-d2ba82c1-d2dc-4687-8d51-398e820f680e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b4982007-f09f-4429-b522-cc6c94110cab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810237220216060935545344975472338924016734449352375105742596420292474359970265351763226444784321428314088769048916618517918458424126224452219537598858164261633143152015944153422542588758894371136787837471462999454695042464370556534785947444977976508711063219848235463985505489797017771117464445961753772979942027106769593526755795616704742474039561","osProfile":{"computerName":"jianyunt2"},"vmId":"f7ed913e-aa75-4710-a7c6-9a6ac98654cd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAujVpzl5/T52I0fLuQF1gRZNCxZyG0RSv14MsBIaae5bGVb1vACsRFLyp+RGnfgbkNxZPaBTVe/pBZ/7+Rp1OMQPXVlIXEXk4Gb6ZiRt2mdLltB9BxYATrMWyCkfYBKpIcWW83XIQYc4NZxTMpX6qkNyMxil+oYigvtfuAOjnUn2lm5GjazIxrOPfj5GlDqxVkO3leg15Mk8Trxa5a6zdkXQc0MrmzWv/myWDGLZVxyz7OxwEM9lghRg9Xd7ROITMcqrcf24nCXb94nGQ0SkyxynbIlfeD5N5mQ82VS0Dh5Vom8hTeYx5G6UzIVVM1UIROEbjmlUa/aEo4ViQRVoDGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a7aad890-d82c-44b1-ae36-8c51681468bc","name":"release-a7aad890-d82c-44b1-ae36-8c51681468bc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f6cf54f8-245f-4ca4-8bbf-1f0582eb0031","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185033512257436882638681552970415725185054012120227106398835724036853163447042294278743694568275252830443675067727349094820116958148191293084819460512045858765860593014065744468242318587699767964286590116648371818085505590470089872441745186772246237099555116234052442969134077512312","osProfile":{"computerName":"jianyunt2"},"vmId":"64fba4c2-ba50-43d7-86d6-3b07bdb7ef4e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApZQtbM4GsdWR4w2CS265rTzwrctfV6SseG02Qs4sYYiMRo8KpEaVgujiiuAnfhI6hANfTLy1Odg5JWPOtrZxWauHBWEHJTM3tKNmgRqXzpfbzVgSXOLXYQQd1z6eYqhuohoeJUnIYd1SgPODGj9iU9lSLJhH1BzbK6ad/KFDfAgln6KoDfv4ZmbL1Fp+8Z1FZ1bMpW7ts1/DHsn8SZrAC2fq757lLekOLAVLP1XImbvgF1UWVyLJ96p7gdmhT953WsletKOUsezQm59SsJl59/yPdPAAOmHgB3TlWuj7xGYZSEbqDh5RDfiI7p1I3fg76BxqAJvMKg5dYBIZwPqxMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-faae82dd-329d-4242-9b8a-7f3560f2d410","name":"release-faae82dd-329d-4242-9b8a-7f3560f2d410","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7664a895-b8e6-49c8-9fad-420db8c02574","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181877274153128451975953851815373704272161123622408174799878726516336043485388126950942076283180972312758790365414241448416281173952705727897432770405205940726784804965331748488409677285891425929685415771469487387367401931142652971199921583694375687021761608865396626317689822172112568437444533561191825289385910063762419","osProfile":{"computerName":"jianyunt2"},"vmId":"de7675a5-86f1-4d1c-9e57-3cb8e0564949","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxM0SsWcb2C7Fpo5wNCZIapzIC9sTD+IRmbMz/P0JgDiZtgOJ+7sQuyVjiYaTdAXaf1wB5nl5ky+VIPJUCqdMBxzjEORNtvnmD9ZMGZiH8TC//D0Vt4mVthvga2KfBRAlkRCaVlV9Yatc8GWNyC6SIlGcEXAeHG6mMNlLH7t7JdZNgAbblZvwkiSbH+G5DzY4Gr9kp9HWd0zSB01ZzVPWhiX0rYCvbh+7bvT2incGprBBfDVzRdr5w29TW4tDt9i4KPrCB7kpjZnwaeFxww6TWp1Omn8+6SkIBV2hV2WQOsWl+USVhExdJncvTKxZ4PR/NOG19+gWBP+4ANPwb3Se4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0d98e45b-a85b-4bd7-a99a-a97eb71f2202","name":"release-0d98e45b-a85b-4bd7-a99a-a97eb71f2202","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d10f0132-bc95-4be0-8bff-2586718031e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41817051962655248094643948477862956252238895443695343943113504207137078853190549328812664529932248733288599823387886685584753458059843254781004018271239583951390239402490129547335399464975534396771173452712511815407694524058961535361413504145487197386284882364984881286533009346195540468106485971542951939660","osProfile":{"computerName":"jianyunt2"},"vmId":"11b0698c-be4c-4751-95d1-7ed2144add3c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAl54//9edPEdq5L5NapDs2WbL+5HOxtQF8sGjcPg8rOGlkno8lao4+xXO9sbyNyWz/iW7XKNEJgC0jNWpBA1GsD5jpN+UUWmwz4OyHzhMRZHefp2orhK6x3ssvY0fli96EgHidXBkDbiKJfKGOL4n784rhDru7A0j0etNHeu8s9QYiTU2GPNB5s8065303hYQF5ktjZ5bebs7u96n5yhTpSe7P4Ts5NP6jK2RfDC7WmJVzmwYp2uFgS1REYFjZdlTjPfAshrTVFom99yEFbFAriOnZyjL6pcI0CY4VbKh45wrTMEUogT5Wqo0LpZBKohBpwlS+wByEMzABRuwJSptTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-666837e4-a5ef-444d-8574-19fa02d3c327","name":"release-666837e4-a5ef-444d-8574-19fa02d3c327","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"634743d2-d226-45e7-afe5-39abd21cc146","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418759911914240316725924319837990199271292798488657341293164893195838472678056856603677773442928379685889331469698228505655476984177264808897860253967045828859183584681265847023361238436388373622764168577670255244258187833863983293678821628290329193415226236015102130477495067291424982966417134890468694282423947273887711703820391324","osProfile":{"computerName":"jianyunt2"},"vmId":"650e25a5-5b95-4c24-953e-5e0fa4da98fa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2m06qO2RwYEDAmZA4RmjfUstbOyqgb6KfmJqzXjQr446Hd6xKugeCEMokntd8zLj41GwWvgXwEmgSz9mSrzzTvdUqyU4TXGIj4MAYqSzkVb9hcn5WHtQR76Y11cXwAAbUwZsW5CWFy8KAnM7XprPx+NLfLifvo9O/wDQaRHPVfhjkL4mOKf9T2ZsYv2HFYOCgCbIz4LeDjANTL6+jBALxpM+BhNvq2ZevzJ9f6NWKZcDoGDKVVnavn9EVEnd9JLEk9ohw/jgTk9KgS1GJEg/PcCatWMErDA3Kkc9r5QdIxf4dC6O3zdHnhoY1n/mmhsURfi9rdfVtVEukza9bwy5RQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-866b767f-be16-4adb-b16d-7604c2165b6d","name":"release-866b767f-be16-4adb-b16d-7604c2165b6d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"60019875-8b4d-430e-9929-137d353eafd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418711428825015596800258919478633666213585636754579098825395157038008379839911195457539164759751842336027981540506721973927046202657451424597529649029795838006417926324457958911874869785485067966036978872967588450517029849528449238641864659838089172510373145972646291111696307010459343784373734445","osProfile":{"computerName":"jianyunt2"},"vmId":"9f362cff-681c-4bce-b28a-3d5a5e8fe168","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvITPGwm1bjW+NB2QAcScN89mBCI8ixZ9pdHnVqRnmBklNhY4yB+PV7a3GLZ5Iv+pahmaBWf/lSfvII49fIJRaUvCbiRj01bXm+EUcjMmKCVMbQ5Yfs6V/SEvMUt4C19/O/xhKrk0HgnvQQ7J7uPPopFEIV3iW9XGKr6F12uu4Iir/Ci52/iwgp7kp/Hjt0rp9gx7eHLE7z5o6AXdgVXpyOYMiaVsH4p2vWhMVWdmzJ/qxcxvkFob5bAuE8x2ouYKZsXLL8uYscuPuOrubN+rN+E7QGMdJ3Z+mOSo0RkvVwY5Ja/dYitJKeIjBUcOyFO6nDQmLvgcpbqoCUnWRgkPgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-def5bde6-5f5e-4666-8604-43ddce961978","name":"release-def5bde6-5f5e-4666-8604-43ddce961978","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6833a28b-237f-4343-be42-b0f84b8aff4a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418318416024698807272112853644858692391394119132873189252720213725818558132733724668381708409984022962170833588133016914261387158387120066275411696683128913279201961699063951621843292561339779870639342392425776897461962749889604744278298234379967658189","osProfile":{"computerName":"jianyunt2"},"vmId":"2595e0ed-8fb5-4956-903f-476181fc934b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw6DMe8GdTRJFbMc3MxFrWAd8J94w2rwv7fn2k3UYFKc0qXP1lWw8Vke4HIahXbosrGVU0icTTVpmEY1a1cF8yevY9Uc4LBiQpPWRrF/P2RdQltIlc2FPZNUZkGtG8UjgffiRXmE3fx2Lfr/mf06yVnA0Z66NK53RRb+EGThGD1146cL0BZBuif6tqIDHpbxe9rfl33uoCkJfQ7O+oHd6uRwi1+iT5Oii8tmzPAK3qKmxatQAIP+xbK83gZsdwzsdfFXZcEaPmKUXUpqDYSCSUO8JUqCAl0K83YwRzvim2QwgXXUpnJNRYGZBZuygv8qaaA9UXIx2Ay4v0KS8e5p+OwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-719a2887-b8b4-40d1-a3e4-ce94a1e76777","name":"release-719a2887-b8b4-40d1-a3e4-ce94a1e76777","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6fcaf3ec-d452-4248-8efe-266ebc504789","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181554565924655229323722595053940361998349426015582427924876336115773688080596510188378067622124172578491844044997214859877212865240621356191126712302075880311322177896724748025946695450263377101875712548566110089326739947973904980493004455340116333172564560426837425176","osProfile":{"computerName":"jianyunt2"},"vmId":"a19b808c-adb9-4578-9b36-d9e8e7c84b0b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyeYwi5NUZDX9XBgmUWg+Vy2ujCvhWUQtmYJRgenjGjSCFH9rSmsYFuvUm8idVCohWqbakDNYZa0aI//ud6YLP51t8bj+pw6gdbq2GETvpuX9VNqgEeu+UDcCNowquNKPm4jIQzXsDAwAue5bb+DwWRar8qBE2z7Y1TKg35s6IBHKTs2F75EXd6hUJq8meJhh2KGw3kFtW4CsP46tOKBql193oxz0zBghl1z0EIQGypVHpPwk+QSVKh5iOb7cAib/lO44O+3uDVpUk8wmBQKsZ+tCRyb3rHkq7uyhXLdT+4lrTDIqIFCyTfBV4r3ZJCU7Soh8fBH1n/dtYLfGxFUMiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6c982841-0ab0-4bff-bf0b-21451a5150f6","name":"release-6c982841-0ab0-4bff-bf0b-21451a5150f6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ba182b85-b165-4b46-b386-db0daccb60ee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182032585139088562917953134624817877420088433830288712195342166677339589280342388953666549473411955836875382484352398505246628729023311029105794386782391273958849123287133688672322909803896948522614419950439989803941525568238379946435053869196239577786575669167399388779373829510264129383642637649262830076601624482168144652852","osProfile":{"computerName":"jianyunt2"},"vmId":"e7adcd4c-6928-4ad6-97db-a4f6b8be2655","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQImPiFVfANSqUxYEuBms9epZWrcbgc96FWRMSFgNfb+bEJVyBhKUInzwK84WjEpB2aSC+Vsm1D9U8hdoIMyCxbuf43jiQmg3LFiaDbloLaj35oJBDAM4Izo3NoUzUMz3xOyv4R++OL6AHrRfzrWpPYAVVNvlfRSsAgEspmPnoR8eYXfm2B2u38EC9RbYhZTP/2orMrqaLfOR3tapv2x4vx+zUaKFN1T5b2eV4YuqlHuB6Hfn9a400sZkoZ+8OcKgoge+LU26a/2yGWmbpuCCHWDOLRk9TjtXNQ1GyxNFZPG+XR5y+j+ABEB0sE3mswj8V9BGCg34esDauK0s0A9hQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b900f5ce-9544-4cb8-bd74-291dab2e1bab","name":"release-b900f5ce-9544-4cb8-bd74-291dab2e1bab","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"688ecb15-a88f-487f-ad11-788e115d9490","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41822751696005256963173756611127312259895616962929679965908934773821183618344229862491688627842314515693405792946574912389624015960846752795448593474405944087419034392164825483809312190905152244120933945214135014789349226512647992907447707353763181527664718397844491266162040639655782","osProfile":{"computerName":"jianyunt2"},"vmId":"8a1a80a0-3344-4bd8-a5d2-235864c07140","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmy+wCafjJG4Ztl9hnA7gwyA0kQK29xtrI1T/hPc9hGFmCrL4HVtISpn56UVm35UT7UfuRazqgAS6zkRqcHyvvD4kBUlMGs5DstSzE1z4Xng5rfKWYjkBSLhn+CoCsiOadW+PIn1kcGILx6MMwlN5R4yk4zX2uCacGFJSQEtAgUF0Nz/QKuU7E8HVGkD/6c7DVDtpXaXAPnA3bSdheMT9XJi2hzj01d9EDztKdW05qm5qrOrdaMhz+0EOAVvA9SZhDGzL/RLcvjmoIFbrUcP8UZ12BuCwbUWSzM4FOrkfq+iBJF1IGYq79900AriHwQGsSQVv5V5bSUQwkIdaT2h/HwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6196afef-e556-4f15-9d72-a31071739dda","name":"release-6196afef-e556-4f15-9d72-a31071739dda","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c851f0ca-c42d-4bbf-8a8a-792da2775ec2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41890594282488254864201841946971897420966775337265627050576213957624175353051273556279639572858473078429810931644123908790386817498653940306686406556786637606129678592775395435044345939023941483753344759337296458641720730131819188025744929233763127213282721273","osProfile":{"computerName":"jianyunt2"},"vmId":"f163899f-cb3c-4d6c-ba5e-273e8db92c2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5mYR1ennt68UpEPYj9oq+94VuWs1ydgSeAei3uc1N99XFouuooDbKJE/rWNBcRhJByOvnYN+apjzNpkHOdTQnTepqXfJlZTudhDi5wtHxl97qIYKGYVweJm74qXQqpklcQCW1YavhlzdhlzRtw5kPTLgb4EUWWS74AY8NkqaL4olP9o8e33lvNyErXau+YyK/bkGkpCE4IRrjfGZNi3TTV7dlFT4sM/j+RKlwv9YZi9S99NwyHF1yOs3Kactfvi7wmh0dtDQd8Y+d0UsH2c0nKLE/KUZDfVE0LUGVz6HKNkjfYpcWk9Dpn/YM9Owm0IotNzf0uVKWRsbvGZQVyQ2YQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c0d6fb0e-8e61-4749-9754-a0210074bbc0","name":"release-c0d6fb0e-8e61-4749-9754-a0210074bbc0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0436a275-26d1-4bd1-acab-d9c4efe6c03c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41842571352494634106860602919368838949345304760130979185568392198996053127598030099748626399729113225569748224225820512223787542222716714466146216150344323977223262994475366056036328691695544281226747522573011425347968255121314893191402083721335847782759172495917727369343016774173106475967058981423","osProfile":{"computerName":"jianyunt2"},"vmId":"b4e1ac94-5d08-4f94-ab04-2552ea20f87a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxZ+IladlRDj8L2UmZ9dMEjsi1+2RSPPmU18b6LBmvV33dzCmg/ROmtNC/J3/Moh89k6ul9rDXJzZt82LMMOIZ131oYoHAFKbY9csrcjZ5zlg7c/p7/c7U6U4H8nyTlJj6fk4x0BzBB3UOFDGQqpoXNVoH2blCSmQd0qCJbgR9M5wVyDCf3iRLRCZpRAbw+/kB6X56j29rJOUtXQ2H6ygx30UGEetaJ7keAH/oEvDsEQHz9bPdQlCT50HlHkyZemJcHn2RuFfQzOQX/3cJ/S1eGYbs78yn3V6QUdpcMVwoLVGxyH9wfSLKKcyjOMpswAiAeTKxzd0A7XPDrYj1PBFdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c8902273-1ae6-46a4-87d2-8877f9ddc670","name":"release-c8902273-1ae6-46a4-87d2-8877f9ddc670","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6f98baac-e9ba-4486-b1a5-53984be14b0d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41880534862263516415239571276920296299097983233839925974115229346419830638594815467179364013146763937335016320377292253830966954503215114629453415240255685953780743284104404956192449064989355193957573395545587920473242719568926186577773800160954929287580857516233367532088426967120954870","osProfile":{"computerName":"jianyunt2"},"vmId":"7bb430bd-5a2d-4277-85b6-1f9f9184a879","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxy7I4ws7/hvISneWj5r2hKWikiyKU3M25BQ1a2DNxbcf7w3PlsUKzUIgoXAJtUlvETv/iBKEJi6rAKPQi2Je+6QZCj5lf82LzEu1AQ80iok1mLjCmvl4MrPji35qos0h7EFXdwYuItv62PxGK9NWOzDP143qzvdbV+DoTNoSbCHVQV8b0gRIGyk/pafTRYKKzGW5SM2L4Nk8mvY1RV/Il3fBW2JqTnCpqL+Yq6WBRVGLkbgLnKaJAHZMHVV4X9LUd7CCoBoG/UowjF783W9cUXilixaK/jp4Pr1yYhj39f61YC+yDEGBCEJXNjgQmG143uiT56wb7Qc1V2miDJtbMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-67885951-a28b-4ccb-beff-dc6ab3f5b949","name":"release-67885951-a28b-4ccb-beff-dc6ab3f5b949","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1f20273e-16c4-4aa7-aebe-600e06a56dfe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41814035790400467727521183821128174909693685293554990060058608794488584911609035360033358182644799672066397397205758382821788733396433636090799581610380084058847708982651426598864183139213919014437906990724105856806787842690333250855432393996381993248717788531264344573506612","osProfile":{"computerName":"jianyunt2"},"vmId":"4a866097-7d34-4373-b32c-6da7e2756ea7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzbhP/T0U3jar+m67d4b+E/sjG6sQSvKK1TPIXSoT8JYIhs9LBBHdsxcXuUhwITs5NPi6YoSGjoA+sI6c1BuZ6OChB3N2rl8A3CCFfjMxKHYEzztaPdHsJUMU7XiMg4lj2l0/8pJlGcGZD6G0dqkOzyqZPS5Q3aq6ujndBpuKxhjorgo+TlBL7k2dXqpRaQRR9pHrPK8FyfqdFouCL8WXcxQXze631oN4MQKcwcNQEI0CMBB8/dFSfBoV+L9o3/xfYXnLYqz08IeLRL5w65WwrO3aT0oDlTxmNGIlHyc3SX2VsIhtDigEOI70D9Mcl+rkylLZgZ5BS6TQvkZb43aGCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bd7ba083-2474-41c3-b358-406020dac07b","name":"release-bd7ba083-2474-41c3-b358-406020dac07b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"73ed51c3-6607-4065-b0d9-df72f95b7b83","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418212172941710743117096547241789813073269634408164977782606142945983854520238929794823739212768745752592482073502107545942615494195334394601294982631646998064121383888541512310155051083943639728794597225585254498141528380141993564279511654634996808234684336499296386079509373428513764175233270806","osProfile":{"computerName":"jianyunt2"},"vmId":"9380fa8b-f463-4933-bfa0-ed88271aa75c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1nMciSusKTxx7T19qgVa+E3GOP/ZdG7ZnkaF59Pwnj55dKwlforNHXG4kFQKx6Pl1tvvHjRe1hJDby27yNdRAnWBXKjCHqvxK3Vv3LG/EotWxBbtA2EUUOAhABK5m+4VfVZ7p6eUSZqiNuvGaJrYerYzUFfnWuas0u2uL9MEiqu3WTYlwjVL4slZSjf4+oOVwT6BoJQr1ZQaBXGSojIuGLmTG1SPcRykYS7qVFS+Kvoyvd9gsJhrJV2coplKHDNqOgG2oOxvNiDpISqPpBSSxJOlMiZ8/GaKYVtC8RZIT9wWFao9Awp8mxUZ6Kqa8jpNySbrnwL/BXltuUelpluXHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-09eaa0f1-9ae1-4340-b0cf-396a35276f53","name":"release-09eaa0f1-9ae1-4340-b0cf-396a35276f53","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1f120cec-e10b-45f8-b5ae-8a0461b9bb06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418791892946650503752531244545547908705494487052768876459179649683656328416763368901228139627282755941892446423914535964369877925367921012172673891762236294646154287132032450441913504524949117821559857914593895638574963848344264538075159076367335775474618714484955671571727309727926117543415398","osProfile":{"computerName":"jianyunt2"},"vmId":"f952806c-42a5-43cb-983c-cd09ce3ce14f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq60JX7pV+X3pfDkZczAqIkuV3oFfvuunZxXY2Adpcp0TYNk0vALBbN83H7B/BD8Fhbb10ffnFO+xWpP17PksTUYerIMLMVHtOh6XJJ37UwaL2y4NhhScto0aAhWfWkMDGeROx2JJTRUERxesgv6vOPGe7Kheurk95vri8Fbkb69PIvOrvDr18cIaVQ8QlfD+ASFaFCaJiHqj6b4SL+TocMemxfVTsYI0CGPm9Yqx7R9mBS24bf9k937uYpGEEiK1CCHNAtAYtOQq1AAZP/MIL+4aMb4IO8D+fAeRhv5jeL5zQ3wq7JnxU11M4KPSR259K7MTk10FAeg7FrXQNwRNvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c4354608-92bf-41c2-97d7-7a6887fd58df","name":"release-c4354608-92bf-41c2-97d7-7a6887fd58df","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"50f9568d-2adf-4cb3-b9cf-e80042d428e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418927614414805311985567726921245616050412287402837109650278863414116991766389508633058093364046704291892041183439329832342140472976675991353783841851065713445354812704639504685731670251314110533456799645952645799644935333645231","osProfile":{"computerName":"jianyunt2"},"vmId":"b7b7631b-76b1-4d83-9527-1ddeded6f615","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzz1VEAjZqKUbLWxjPQEoeCtx8yCsBg1FjqjrnrrkaKSHl0Z8D2u/iIavSlGmetJysTJoDOw8q0+WWfWHdTLzsV0qnCdCEVXuRGbrSZ3m1yK/8Nf4nteMWJzobWI4EkRrRMPOFymVjd2gP9P4J+UcvAJzdyhpWz5yrsqyIUimyyX4cJM6jOygcOztcKN2hnK7Mg6zaUwM5QU0Bs4kwYBhTRGKAB2YaKbSUYmgSZhw+YcZW6sh3Hl9zSyKFz27sP/ZGi5g+cTYzNsxHZC7cB6YHYZLiNLSDYlOZHq1nv/9rh+oibVMoywkuzGVgaVRaY2Xr7n7RQUVlCyWhNxr441PxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-63411168-0f35-4fe2-b10b-6c68c37ef347","name":"release-63411168-0f35-4fe2-b10b-6c68c37ef347","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b9c95386-183d-4472-bd21-8a5ebdb5f31c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418205890651579266648841432072134984125498254613896416562623662038934944197174797830643259536626380798062866740248045266698216038316519763398777616192752136721830548562441613306059492436883212210961938111984379482264900335991530370895573303763423534239591701522524535679998034651611317084488693965265894622711207469773837954030403672494957972154","osProfile":{"computerName":"jianyunt2"},"vmId":"cebae0b0-5620-4e85-ad2f-689695b6b56a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoypWg+hEbv2qj137EH0UalxMV+vk9tbrAQPjCwWWx5me2pel2sfqB1QyKR5ZU7YF27kjlXlRIIgUlU1plxHlqNZtfuzgzsal+sypLjQAKWD3XafSZWYZSukdLaFw/J9atKa5iO/4NFJ435nsapCmZ15AVFfoIBj9jjs04oOX9mYoKee35qDtoQL9vqVFsa2ipNvEdSgh6kBWCTgLbiypJ6zkxhKcZsaqLz6bUiyCIKg1qZFETSGSCDvbmda9bQ2Y/dNAiwYtOy7blAt15uSkRygQ5P4a6AvKtEqp27EEv43/l6kg0KPPdw+0MtqCgAoXps8RAv+Vp/v/Df79EkP0xwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5a01c6b2-6fd7-410a-84cc-1a374b911f27","name":"release-5a01c6b2-6fd7-410a-84cc-1a374b911f27","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3c7dac5f-15c9-428a-8f86-8127ec54b2d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41893944555255791088516380935862430880369123482960398021635142629291863293854441607232473075159941747425750567424026554454811604928206194702259439842871609749364884346945873344717356505509360597878128960232341305461337076532765625442285232321205772847053178952791764079112628058902599275037830196218542863005145936649875365","osProfile":{"computerName":"jianyunt2"},"vmId":"cc536627-b982-4abc-845a-aa866f2fb9ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA50OU3gIOES4eqTrK1Jp0l3/APagSQRvvnNKoSEBRklzaiQLSviIawlT9d+zJ/GBpNccXgWd0EvQz08b7+Z5WrHSfPyqoX7mV72ykYmg2crTKxFnP5tEUogo+/LcyWmWvD35MB1CHrsnvN7tySSus4klaDpI730gVhiOBLe8LIREnJeNNzAfzhOS/0qnzSjgL5DDPJZKkil/yqm5ssJwXXEAoKVdkj2QH/d0bOOMCDoA0hKI2TyQ/3Uf+lDAcsWVgG8Lsw7L+Do57xiVA3BSAzeaOREwRyKi6Fc4ZjYvs+bWWw9QfdPrH5olnldSNALcuUMgUdUsRoMgi2uZIXD5j6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-eb2205d9-93eb-44f4-9d90-3a36e00c1dac","name":"release-eb2205d9-93eb-44f4-9d90-3a36e00c1dac","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"05966dcd-5ece-4e1f-bd03-6ec7ab15be9b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41855877954677681627764889544166788230043740538716362657745528996655306853126664547878769228127665463008708179114699275833760461068747990386421157518539003784240725759277722847598475992193942929659608289952273233841309792024970534670004363939439034069738628204537242809995817415855298","osProfile":{"computerName":"jianyunt2"},"vmId":"82ec30e9-eba2-48f6-b00d-80840cdec4a3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvc15IM0Gcjm9nYunFdjyh5OQ7vm20/DkfqrsYcndHrzbpNjJ4xHlgJvUmRqaW2qsRvLzzmDFJaHz04BPXp3BQoEozv07j0lm4BQfrMuA1PdEBW4ooa/tjxe8GbQxzhrt7vQN7Omt5aFathM/gEMU9nD5RiwAFC9tH/leDtguzPJg41z+QjAZH/3QKTYB8/eoA5XyrMM9kXDrrh43AIvJds1No2JtGV58nem1Vqhe3SKxK2nKhAYDarynuoMBPOJGolkzV60koycSL3+nLmVDiMCZN0qBIuYMRfxp5cn3HmS6V39BUQHf8C5rl1CIRvsjQxJKrKLdd4aW4GDI9NKq2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dd5ad897-4e1f-4dd2-b363-f802f36a25f5","name":"release-dd5ad897-4e1f-4dd2-b363-f802f36a25f5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"38eb3963-468e-4e19-b1d4-61a0b468a3da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189868505397129304646459915804311897794056022992322250082547122683864563968187275835917708937343286420928723043303244970542616957742892375911156152271154324428482789998648533185738771280283280279880714812944273176593793128037177718565583337485130599338767317166075824816799193166666529316531999199740410364954097536471989484","osProfile":{"computerName":"jianyunt2"},"vmId":"43c3845b-a9c8-4926-b30a-c80dbf4bdfa3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwv8p3uByiT8Izpt4oen+2IaXDrjz0xt+ipwQw7MqWJfolXyF/GY/a93lyt1Bo0HGyBphvnexu49obYOw5NNk1I8W02BewWvttyEIqZemw14KoPSyn8tPwQAXYKv9zht4kQ4awAq7+7+OuW2PXj5twmZuTh1Remr/7IXsRaAFJ2xpD6jvT1BJ9WPuIwyCkG7BiUC6fGmL89/rlQQ7DJCaDy4A5tGc6Sbh4aYaQARnCLId82l2D/zTUD7RnrTsS3tQTERD4PxLk/YAEjK0MlQMf6mlubyhaw1XwrixZRuZe17VS0KGktXOXe9c/vnhhu4BtmPk4eQ6ToQh4uQ9fXHWtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f99c77fe-12dd-4570-995b-802fd62d2b33","name":"release-f99c77fe-12dd-4570-995b-802fd62d2b33","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ff112d26-58ad-407d-adf6-6dda1d82c34e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418119512252605885791613848745249999487321683334561265625345035363789122840273718352216996597685880637994793713449594291932257556611727921527111326186175323523398567882567988941129208293478877430400874820971451891175625402782653752840979273787184302213823201868558","osProfile":{"computerName":"jianyunt2"},"vmId":"6eab87ab-ce4a-4687-acd2-5fb594d7d1dc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqSDhYgUqGhS4GEMv4k4yrYM9o5ThIRjyRFeU+ZQHIxR7p6pWLR5SqgknwYpgzvvd5u31WCm3VGnjDBcPMiWNCViwCgfpUrK6nAWQi+yRQBZqSuSxGELawkKg9sL0dzW5Drc6Qiko9rkhQ5XeE33hAFLSJtz8UGiS+pGcpsgtXvV7DBpQ5SGe6VPVLh6dampzcjNouRf7R3ykSbvJ6fpaEUz0drieALzm5pih/rh2X8OFtJ8oYKofWpKbJzfYuGYbk9QLWD2A2K3uLNFVaxG8IvGIzuTMv6iiA+uofeTx0AnMd4dQtlVU2/AEAfbsqPQrH51B9t+Z2ch0IBh0tczUtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-be8e97a3-9441-4a6b-bbb5-896938d2be23","name":"release-be8e97a3-9441-4a6b-bbb5-896938d2be23","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"97e6faa7-1b0c-45b3-861a-4c25a9483329","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418708235477531283076892149305050527886884453716460522396929327399732204573771634064945124731215894935957312157545924937745991816611749078976439199074134470827839376193053225142888012931055828065781789085783794673899284431729082833470043617220794475938123276386854817","osProfile":{"computerName":"jianyunt2"},"vmId":"e50d6cc8-2529-4602-a717-75dacb52b70a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsWDU0S42D6nHjTEqPxUstsUZwG1LCteJm+WP6rzzNOERe9UGNdoQVGRTH60+gHMwdJxqzo7R5b4WWYT98p+XY3UBQsbvksWGjHG5dJ6qr7x4mOOGwN075mtDTJ0iyet5sepe5P2MpcL1RQtIJlZVrbrh9tJJ2F/Kv1irqFa163smmh4muuioAA41m1epTBlPzt9yA1I6sIqHpx8d4xtwbwCr45WLUvlpV8qa/0XDgBrqfprA2EKQkz3Ney/bJUoV3rY8Zy28hq6S0tsUXaVYek691va3l33kDOltMndMgZY7DpZBkxcd05pG0PJm4iKf3Wdx23jniQ9mpMtzE5ASdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a673186b-5c2c-461f-b145-39f5bfd3cb68","name":"release-a673186b-5c2c-461f-b145-39f5bfd3cb68","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cf4342b5-3659-46ef-8752-3b965eeb8d85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418572745418835877479881279795168578275526337398529199898589020773773947417206099988186669180422065666472214318885030209064497053244288192245682165536327427947448681586873481852123414009909484562928596327434435606558236933905352212350540147966608245115639113173794265321456511269399244266536516","osProfile":{"computerName":"jianyunt2"},"vmId":"821f3d38-d87c-4be0-b083-045b2338afd1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwoGxnYDiAOuaHscd5hEimyyeFhROol42D3QeUEcwxTmLXhNvXs0Z2qg5QQwyIvH/bn9japlzb9h4k+g0+NNAcGVkLinHcIP03Nbqh2Yi4KemouU+lWywE5ZXHRMUrH5LXa7+hrBN6zDynyOJJNpXBMf4CodN5sskiLSkr/6zttT/KIGW1Jd5ThlsBxsNymSvn6xSG8ZBzPu168BCSEyYQBDwujscYBxrtdVUpaDcEXwrzQlO0HqpW9xn818qqGJR4FKMZx5vnOplNe1yrIJEJUzVKzdGKxvU25E3XMstASyXwYabfkDI/MbWl1a4PgWu68trPPptc0CrAtWo7qzGqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5969d603-1bd9-4719-a9a0-f2c3ba807c5e","name":"release-5969d603-1bd9-4719-a9a0-f2c3ba807c5e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"022dbdf3-1881-405d-8ddf-5f27e52f3165","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187637391914499655710235328971699967071688602671550357083013382391661535811884360244163642853172460332550199235542651216057222780931843052637451602869779617208562193680291259143699097219595168427932742771167542706487176179994277958181341980337346895612948843117318553581141918192402176","osProfile":{"computerName":"jianyunt2"},"vmId":"66cc9dc4-d245-4cf5-84e3-f7acdd611fc5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAte405LDFH0ehiGewUKS8kGB6c6CW2Ex/Dev8ErawmKNw8Q6prQZvlOam6VhQc766l3+rSGv3grAPECO7mtjI2WokK1kVUCTiLeyAOmNF/HF0DUFCZQMLTwMtswJZnsDW48BjL93bBgmzb1v4WIpT62hVhGoyVjvs/juT1DeRCMHrxv2k9wag90AEDmxjZ3M7EocfKyFLh3gELsxRO5kDwzrhZyvRNbo2lcBxpDxbheGbc3qgdg+f2b4x1UAzjR6Rlg8UfKJWdVH88lI1VpUj+Pw4ul0GYk8Rl4aaho8FpX7sfznmQkfPAJfVzpCTmYMaUMZhdH+xz90uFFjPWJg7OQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5d32218d-e49e-4530-9b94-072b2ef363fd","name":"release-5d32218d-e49e-4530-9b94-072b2ef363fd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ed6fa0f9-a915-4d96-bf44-c99c854a85b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418817949158054226240412588672447108897458467197707935057209456549561909526550892075010724631345240785194434694338542696339841690831880594174319624993181559385526315503897322291209496979548845472190569981421876264834763053036685656635778926814965182404409375417805358696826046296348386135379971636848488981921524322773011","osProfile":{"computerName":"jianyunt2"},"vmId":"073f5ad0-904c-4a7a-81d4-1d60f8fafd44","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoe0ih1eyP3CFOCQ53J1RBZsf1mYZ8LZIqDr1CLh0w5I3gTyncYiYhr5pHGOvVrniqXkCE/tvYSSxvNlV+LDRaFe1k1PIdDzkXuMH2Slh/cmPfVMivOinUPPcgZh4G1VoLiHvKmJwcqAzs4ZC1IJ+iI9sBo1JOq0pxOYQXoVx69p5eyqLuSdkrNY7XhhtbFIYGYYCx38M84sCC4V5U1ovFhhsT5ob2BbAuYaad7TH8GciKhYpr7dux16g7VWcnJ92zhxc7BTbSioSeMePpOyPJ+h4najOqP2qpTOC9ADr7F2h1lXaRLdl2E/HQNJmYeSDStWc7nRD+69JUwGB7dg92wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1d55ae9c-3072-4987-b4a4-a32bb32f9b94","name":"release-1d55ae9c-3072-4987-b4a4-a32bb32f9b94","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6a770e03-1b0a-411c-ba87-b2c3062c787c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418190443572747269699193247797104343509768479820152657147250481020479942047819541627207892359496397919410831503594503516387358225516099462263436835927849367148077395399029051383426854355485058740476391781395147515796721716322461014306381585182925442273536689633449043808044277347819071110523378140739964036161996178588214","osProfile":{"computerName":"jianyunt2"},"vmId":"36463812-83fd-43bb-a3ec-1bba6aaba335","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxzyNJVUKXY2o4dfsiCIQ+AkEbnRZygWRAkcCQsYS9NeAnWCmvC5swOjjnqCYU8OefwJdKAoFcuyEETD2w5OgmqHS2XZwWx9/MD2yq+l7JHDGCygWPi3e8jXilAtKEGWSy0AQmFNDWSBn4qLCCcgZtHuynWwGdeCr28QXkndEj3LTbkmCYfNiXGIXTm5UzbjlnKC6Us66SJXnS388dw7/Cg+mO9R55BY7+W6+tomFD/eJUY0cCuo16yGg337KerFlnXFUnzmOGyNMnoOWbf3tJJ5bdrM8voUCW7/rgd8oGyDOlvk3GJ7GrwD7bbpyL1eqpyRLV8R+ZpHX3Cws6nzpuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-54710253-2424-44e8-b353-3e5a2cfd7924","name":"release-54710253-2424-44e8-b353-3e5a2cfd7924","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"014bcbc7-2540-40c8-bdfc-6b4fd4812b2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41876482462399194137435597957259392809924152144701957422365193137359683252643207631074089001237247793128498049481754688870698763625768592683786873035138506545979139465827413939584818902801141318772876269898617003216848952912253692214730713940168527537020437526187859873709281749827","osProfile":{"computerName":"jianyunt2"},"vmId":"e57ec78d-e1a5-4880-8ef4-c66f75ecc056","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2oMvpm2RaijrA5FClsCrKh4o18COei8FUfyFEqlbDYcM3ppYCQJ7juqxPAOwstxHstOerRwtrH/BpZGj/P8GeXKNVq4NuSPKImuRwvunIJzutwLdlK3XAYLqK8iQXn9/eWe3Vf3zrenKELp6ptR8Xa8JFEEJ2HkD3y/+DyYXUz60dMaw0S1Ik3KABcC+jNLz35t1UY0ImYii4kdWRZQi+DEhLoQ/lKoflbCulmpkkF6auBNFtrJKVinwdjcWr3ZCWngZIk+nHkke6B0CsOdnPQAzrEqnmbkrOU3UZB4nTiLj8iiW9mT3a7xnt77CYifDet63GsFjHft0yhtaZc2cBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-efb730d2-ee50-403a-9bb2-22eacb6ffa25","name":"release-efb730d2-ee50-403a-9bb2-22eacb6ffa25","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dedb945a-8ce3-4d73-8c4c-7a516e1ae919","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182556595856372932608186028852554390524166945844171699919210296041137870404061546230104090084083301918494204905210151624826435278661870376235674864309466618243220528821534758312285692131231762026896177747688632697940755722558915552264","osProfile":{"computerName":"jianyunt2"},"vmId":"f28ec42e-79f9-4225-8d3d-1e5d94c42524","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0xC/ynIB4HpHYwlLu9stoxdwVI82AX/3Z91nNGJwlWPbAOD7g9rIW3ImN+1PddiWZxMoXwdBHvcnxunUreG5iiJONtafk1OG3E349obesGGNAJ/AYNBOLcGlagYI8/U5jhvDDkqRdUUe+dfp04JL9teLiQ5FH6YGyd0cPMgZNpTQzFJnjwqL2EZq5vgOtOGmR9twriO8BrUnq7bx0euY+QDN1jAvW9BAx8xa+xY0wg9jpULZmyhLKxO5dQCgiIatHl105YNxyppo82Zl7WY4vE0fOlYJTZWDqaQ0p1iMHvs/Krvbp0+VW71yjlhqywGMEhIWgoZXeOB97uEoMLDKawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4d9454f2-b4d6-49a3-b7a7-5b4570e0e3b6","name":"release-4d9454f2-b4d6-49a3-b7a7-5b4570e0e3b6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4a74522d-c2ba-4f4d-8c8a-c099fa306807","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189304701763557438950127243512348461336010593088503650485239587437943363452498228637663512320182585704717016192260484434805841793536469958930664125118032389659755353744658592333300268121109157632227626558171963138129319299142151506686599222062331809674099153393296371285389827237961968440513168181","osProfile":{"computerName":"jianyunt2"},"vmId":"9648e428-dbb9-4c57-9167-92be96b5dad4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuWCr8WDLTGsCauIgY3eo/myxYbF0Sdaeg+dOl2DZDxzQQdPT6lIHjTmH6c+tiwQdUr+xsQPgAPEEe3XwF8pE56B/Ta7Fkhd3I7pSKstW2fsaLg5ykT9395QfZKxIjvcxm52/eg6w+/5Pb7viDXiIkZ+2AoZFNWExP5yqUUQN/tiQPGODdwWv94/qUO6u6GzxLlsCCY0OcbcXfArl6Z/4sDcrRozomYZ3tjmVrgR0Pa4F7zU6Lr51uMe9rG7sjxz+VyJFg9amcBmJ15s9RcnYe/wqN3+ZKXCWPQX+AotVn5rQ4wgV5bRiZdcl6fsW9iB1CboinuEGenv6n7g5Bi0igwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cf7bd538-752f-4394-b9ba-12d844933052","name":"release-cf7bd538-752f-4394-b9ba-12d844933052","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e1b04a27-5e29-477c-94e7-d23cb37a5a68","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418200549077005689063825753234528233166889041986088697570213900405390222578726612621444698833635677981039051357243098420511656294396985536668091607932086115583243777768307916201408492137824116927770230669370856779249214484725952209963398339641331151584796713033406849927962584","osProfile":{"computerName":"jianyunt2"},"vmId":"a4c3dab4-7934-45c7-a4d3-6a0843426350","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvxkHJ9FMF3njyCDMHA50gUsMtYsXY7H02Duq1/QlU5wMEBC1VHiuzOOprvA4LgY59LzBhI/PHWfeHpATZK9VIdX+wypqEfuTs/6h1XmKXTZqPh1rKiooIUsznNiiUOVWkLtKthFgMGDGI+ZsQGOjlU2SAELsAs1f+fZvP+OLf/XTI3HayqU4d1c/TOBi2VOWdxI/Q4gRDOtic2j1d40CdgYerqmvNoL3amJTM5PuEAzyKrOEY4OugJAdnV+bFr7PqLwhgd2Qo53N9D0XV93JKQMTOOQ+F96Os4CJp7dSSyDsNNJWvSbiNy6xn4+qkMRZ083X4+Rsg8DkHjXeCT1pCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f26a869a-4459-406d-8af8-c1c6607f32c4","name":"release-f26a869a-4459-406d-8af8-c1c6607f32c4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8caa9c76-3dc6-48ed-92f9-b3c2dc94929e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845098955292698153978134415154293451635031567838821082740761863955780606410571200311255975270985518779378383187920377244587532932906783019456374591294466236185511107122418394145541788620346394715608803483058043766600530082523156813911475348776901422139438177716482071811140350398149698796946166212","osProfile":{"computerName":"jianyunt2"},"vmId":"9264076f-25af-477a-8e3e-3c14e6693055","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2APCXryE0qyj/mihPr1TgbtWvF7ATe7uAVMYCw40oqlGS9lj2ahzeRUwjk3ETsy3invFAJWS9Lsj4dSxTw51kr76GsaCSepjEan1pjoRvJGtBljtzSHffzKoAaczEemAa278ubcA7Io7kkkzcwGF+O6kb7Z/WRi1JOiAoABlLeTPWSywh1RkFHos/mJvvO0/L+5EyjNOplokleWBcGxqDuwTBKcUirHELHDCGEpZSMBIWCO+eiUSmz9HI/hudw0v/DTpEbTU5Uc9ZQ+wgO2mUqClncyuLgfzkZTHAoiUHuK+/NRaqxeiNf+N3RMmnyYsmcbvuIuzYGBzO6s/exdylQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cfa29813-7b4d-458b-b2ee-5119ebfa3cc6","name":"release-cfa29813-7b4d-458b-b2ee-5119ebfa3cc6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"60a972a7-1680-4f60-8be8-b98bfd06f6ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418296664347610159876618253793279958750215387229441989498339143727180926249372853550965549746928265765332919881893434361683103290658117930757677920819961417166313422495396446558605465875754108545178628351762196291589227783819383624041663558583831455582073","osProfile":{"computerName":"jianyunt2"},"vmId":"3bc1d287-e5e5-4a37-b0bd-9a859e5b3ed1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn+6qq/1CEZ+C3FJRqXxlTSuXfPUPI1bn32oRlg4e9If0YRGOyDOEEdht9sRX1opW7dIcdlVlI7Mr/fYrUhEPtCxhYdNuFaFiNr/aZCxn8cj2U6f07xP7gaUGA/5FFpMBA8PeICLO4eN50lN3H7n9M1KlefbzIR4dlZT9uEbAi7GNCsUOykw/OVG4LEufSPm0KqVsrKThWBC8ZBJxm6ohe3LNHqG1nlYi7orollUuhEguhMf8jxE50l/NmhgbLIoicpaqm3a972hhg7uj2HWY2r31KwJRit2LX5wKtHw8+Gf0xCvuimGaiRo/KEcnRpQex3NsNkuuNMJGolcqY2lb9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b6b6d2c9-2321-4611-89e4-acd971d412ff","name":"release-b6b6d2c9-2321-4611-89e4-acd971d412ff","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"66e9ac7f-ba19-4161-a95a-08fb44504dbe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183896179335559593876697844539933770851067707673482395095065797226553968452316444581265684036364958481915988435988169261932561966931736153454292198885080750220962131530093826066489343596458678603940387974270918438621912664880168719909429884096496964102267236685184873032230082571356863550537518967133","osProfile":{"computerName":"jianyunt2"},"vmId":"8568003c-3529-4e9b-bb0f-0497faf3ea70","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzWCUThX7AfKCB339bSfKxEEpMOzeL4gLcK4BGBelkgbjbLwdHHvEgW27vsMe+IvR40nt3IiJbaEqMWJNIdey9zaC/2WWYEbmnIZ3qWr4kq/eye0QoIGVadcoIgkdVjx0E9NOWl/YJ014ADQoiNn+E81P/cO2VFG+ojgAP1XNzPI4MHEcCBrXgzfrEEaVW0ptZzV6Aq9aAiQJXHBtSZ6q5ZlVWT9MjvrNleGNnFasXpXcbGhwBcdqvdR8Qlhzk19zN3/yxz4+pQg6HjtJarg2WE216Zb91ThLPLqPwwgeEryZIH9AE6/tFZbj1QnZLkYARpZE+UMVpo5NZxsMySDIfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-28e92e21-ea2c-4892-97ee-f8b0e1f338bd","name":"release-28e92e21-ea2c-4892-97ee-f8b0e1f338bd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"700f4105-75fb-4619-94fa-8a0411b60dda","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185693836438332533118740502303627512544893219963423131639599915237247090755997919234714640262875886906396477347670799408291758766629548645761964925703453346043492733576121283196777880491917653640660547099246530385214807290760151855840076608031553228544683177814736294619764636344276854322143703","osProfile":{"computerName":"jianyunt2"},"vmId":"5ed57efa-9168-48b6-85c9-f87021a6cd3d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy8nXJxCGIS6STQy9gpKZid1oSW2VN7pgC7YapaJVn4IlkmOYXzfcKlceRGxBYIygF6vXqUyhDi5i4buNYJ4aR7ZNybrLJzU6+ApmLie3MCo0O2huJztNnNfeG1SXA/x2BYhBNscK/hpI7VeSivHomyptpGdd1EpPs/le3K+qVxa2bFL+788m8jcdmUjYt2RfLpmxKCd84emDY6YRFXxO0tAspenpLgPVXE3cms3gCafpHvWLd+Wzr7+ns2kCy6v0/7vmsFWxK0408w31Xn9lF+vyrOquj5HHZWgrYbgCl6DP6W7JMIIfI+N2zePZAov2YkYW7lLUrziQI0VXND4j4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ed6af5e0-0852-4578-a791-bfad0582e245","name":"release-ed6af5e0-0852-4578-a791-bfad0582e245","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d4794a8d-eeaf-4b31-9429-dc0be9197008","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183508434785344534842686826578526333820420384478540386875886803921254714200455123024155556553117281284571292640685241599736893764732585858097833441658424832259501260539669665184347032245228617423639407296098492701535057372661656012482301215341796276025457221621354945484811989548989352810","osProfile":{"computerName":"jianyunt2"},"vmId":"212e0f4b-b4b5-4aa4-b4c3-7f83c078d785","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxDHDquIGQpkDaOg6KJCjndId2X/Tgt0eO2xUg7fqCxgN2jT4M6PtOjHnCZfIpDzGtGoFiQlXO5sorjwocA0+mn1PaLURTZYmCltFtNrW8erOOD41UDSmiDAaAYPPkFXFFmpMznbiaawfsbL3cuzHR4mT0mvuIVIUBTq6QUB2tjmq5hPCJmILCplxmx78te47zeHq9E935nK/fWGQR5KT3oO0lIf0Kk/dYJabxcC0v2OMclFerfCUSUCrn3TuDLb66IKVtkegt3Kyj6HeWkUau0ttK/nVcUQ1tyh9DfMLzbqpJAqayNyk++/n/s7yCEXLms7atwUAfB8PQn2I+bWnjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-034a8d0d-b4fe-481a-9eb5-d51944ff48fb","name":"release-034a8d0d-b4fe-481a-9eb5-d51944ff48fb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a43e2c10-8b4a-4790-aeb8-612bf89f770b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41848626478461713722364818998575411202489126997944459773811108391052222895913647884193771998477530718647822778842941314864765438467439497455097932410864121216194699654242424032801448869226682145871709121356217793407632738559856919361735597531649467160","osProfile":{"computerName":"jianyunt2"},"vmId":"545fc191-4de7-444e-ab0f-cab78e506417","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzn7fY4wbcaTIDJZRk1Jq/Bbe49bQO1zTBQ0HhVjCdbUXj04EVXoIpm7VORdI2gX3rkOQggcayLYe++0S3l7YxhvV/jF4M8sbBhWJimXoxLR7by0NBLuECUA2/HlKcIBf2LtwtTpC+E96CGTheF7PrtE08x8v1nDAVaqxFRgVKkJiP/7xMmpsF92VEd3Q7zW7Ngmh0YBnoPwxVeEL/i7wKt/cxGpfhqZBZ3nTprz4cjH0wTjQlPmY/OCWi4OsBxdEOyYtpIW1FyVYq+cKzSGjX0BIfvT4M+TVCndC72IaA1P0X/XqxXHToNZ6Pitv0pVeMsvtA1Dl0RcJteyRgQMOrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0e9a1649-a885-4733-82a9-46aebafe9790","name":"release-0e9a1649-a885-4733-82a9-46aebafe9790","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"148f6310-f9b9-4ca9-b29d-782359e72474","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418782981642849955973319959324576204399362927088227843594959828482345462593696112127960631570899855282523252540337801561758871415759915211596389828273270569298352780834387628384369102572601782666903351534977514171363653898324487615193551637913485892871052155330433293424256167877591819073130267401522310682678863996434","osProfile":{"computerName":"jianyunt2"},"vmId":"6fd080cb-2efe-49ce-8e34-70e37c291de3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8lYWXd9t9rQqNC7zKeiDLEBiKwz6h7YY7cHcpf1l3M5OAjIT5VbuB5tJrIEbEckEobfZ3us1bUZ41mYYj46F4+pQ3pzxSUC1mghQG5FTuJMMuWZHyppc6gQs3tKN91ccU2Bi6nJfI5H/UzvVIowW3tFhtSc3SCo9tgwWgNB0GbAihSm2c9gGTd2ehLftVbiMh9GzEUg/yA8gLyovcsA+MYu5KZ82bmoj3assEXGk4GFJv7VGH33SJYielvEIB+7N/ncBMDEi75chozY/zfqVq3mafC7A+vK6cJrR9x/3L2sMi2oz0sySWlYHZ7LdWhWGJZd0a8pFmhrOdqH1oPKlfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a0eb7d10-2984-4e83-b367-06c39ec10b68","name":"release-a0eb7d10-2984-4e83-b367-06c39ec10b68","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"814b3dc2-c628-4c7c-9490-b307e720a03e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188265143751618965586257954697718973618019794754811733994771663207844269857195914588345564957376453924845468726152760143229112665578346124753766181893594877473160127938187789954987233197090717765469298588275161479736944764990353381749612589364120557379337528040681778420818108423","osProfile":{"computerName":"jianyunt2"},"vmId":"e7d535e4-dd74-4d31-a393-d171eddd7808","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyPqWEa7xF8Q4ca1fzLLKwiQmOerF/sjCQWebf9jagzPiM5D+ZEBmdgX0PK3C6M3bK1gIsHN2tRUx+XsO32lyJSseTWMz4BC/OCqiLOLtquORVTjuRzTKCUdKMMNQz0H8ZPMQ69sYbfUWjbwrVz/wu54dswkF4X1fVKr28VC2uJ916gokzKo+yQy9lU+8l4RlWMGvVB5iuLL9xNJD+Z4svhTHQwVydoH8ZiKTjrN87YjRk+Kpj1a7/bAQ/pb1/YBg6gCCe3iIlVntY/aQn5AfogJOqF83IPc62l5UyeF186i0kvAJfa0bKk0PJn3jXzHOP6Qpq3ukoS4umkF/L7+HEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a1c4dbca-6e90-4d86-a06b-f226c32d41f3","name":"release-a1c4dbca-6e90-4d86-a06b-f226c32d41f3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7f447bf0-a38f-4581-ab4d-3c4b9b2de438","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418507058555921372949289688806384788132252585451806450181547727613725213786840625102231841138914197896183594564381126829486304696400979412409728649467317572248988578288103657657449534236236895691183593984860287186742455268257679227948113943385990760144296971386273978","osProfile":{"computerName":"jianyunt2"},"vmId":"3579cd71-cc95-4f3e-9b60-a216810ba929","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6sPKlQ6VX+YkrWXiTYrzXRDOpYeq8nNPi9nvvnYNrLNTlHGu0s44tQAlxR3fAaG12/t3TwDCz5srZMQ/cjm+TzcEuKNvO9XE6waQCA31/Y1RQubRa0/qM9/H5B7j2wpIyh9EvKUTzqGtB8S+LEbTvGLAcSQTIqkOJpdZfQ48lmogJReATzC/GRqfS3YhKG4F50+iISpauF9DeGfNBjv6O0UBDKOezy2PsGR16dADXzzxFU+I1kExKvcyWqRwnTlLJUSK8ETKGwJO1WWsjQsTyRIfm9Tm/fTmZ2Dnr47aRE4U7sAa8izlFkN2vqioDEd/kPo7kktkrMb6BdAV3vo03wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3792e6fd-826d-4c54-bbee-7d6a934bb6f5","name":"release-3792e6fd-826d-4c54-bbee-7d6a934bb6f5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ed9e60c7-dfcf-4431-9040-5a2b69adb4db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183318508930968910192627009110844273832060701260992812179048069353707862760989818885692615804434539409657182852440361532208091342581872394279073743748350974604840140958188383651366274878273222405277622629379742680493317805240893880971370290813467184038828","osProfile":{"computerName":"jianyunt2"},"vmId":"bc9802cc-bf0d-4961-acc0-cfc42335eb15","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsOZeHEEGJ6+NNOilzboRTE1JcyQPd44U9EDcAuerch1tRQVApflNsIfqzu6wt/f32gE8BChdosxuqds6xz9hRfIMwNDU0bnpf8HK3rmtiJ9Cl7PZxkEqJyMKREg0LvgkSQDvVhtkOj0bdR0Bad9znyrdMxbYeEJVC3/BX/FGo4rsspZnzGc5wDw+zV1WwWdZwtr5VqiyqEL5IJysTA1cuIyAbn93SVLiVoT/sGClXktpwaY2LMGyBc0vixtt5JkRTT4F2xxO5+AjkOGT2WgqwGSKIjYRxEkrf/Y1lAaGLtvjks1o0u6ZZx+W9nYpUuBbzgaDARMTcOJlMvM2LlnovwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-11ca8598-6895-4c9b-85e9-18452e602e7e","name":"release-11ca8598-6895-4c9b-85e9-18452e602e7e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4fadc55b-95c2-4d53-ada9-b3fb83471332","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184469744429744323452288834841086896530827721213454031592340336381364346378928378814161781926302156682561760603461749846518294446067465720729244029145354906463283301999258137229819540273485749726081694401866162788919299117841995769746069430768551184756875","osProfile":{"computerName":"jianyunt2"},"vmId":"f816fadc-55c1-4a1c-a68d-6480cb83e61a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoJI1fsC5yErsDvqo7YMJJtFV/Wo5W+Raym2S/uYVpST9ntPAuVzDJGCs7jbvHVr6HtQ72BO89kGhnfH63HfW1srbD2s6tSwA5L8H+NWzyFetJh7NWIJk/oRnUKYsTETY8ajnkehoC670ULLbIyRw+8eRnyCgdIbgvRCc1ZlXna3wm2HnWFL8TqlrlmrwB/k7e9Htae9sz8y6Mx4viV3C6l2NJh8sliYTihiOmXCnyUsWfrY1eFA9pD/H2LZobINlZSj+f+K3Ku3Ioy3UeNciXPSaPjetbjkLtzT21/PzPYHMMKnT6RSIr5eXPPbWZFhQzH8OTfOnRTb5LTHeFdlZRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f4b07980-12a3-4386-961b-d92555f09b37","name":"release-f4b07980-12a3-4386-961b-d92555f09b37","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3731a6fd-153d-482c-93e6-8415e0a5a6de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185463650931052512316550472114443039605861677012756391771430786189886469813298168064478209744632059027397423698309936651816458148765046877725631832561658453217636795372403993692610470165874139930461398541528487186557349315972799893066166210367181336652383593813646610347426343757324422739424457","osProfile":{"computerName":"jianyunt2"},"vmId":"a58e5f8e-08ee-4210-853b-f77df74b5e41","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy5ZiZlgTMmkgXNiOQS1A63NkB0TaTTRlElLT1KzE9H8cShRorRrpP9rQvcHWIquvedaomq/m2fLwzlM1WAdyKNjmZ3eniulaD3fJFxu422Insl37T1QSFkU+rm4MATMUHkGWKI2ScGQwrOCPuO6lL/BUSsy4PeLkZfyPLgAdEFqWUO49rO6pALPD6j+NilHEfGmHRa8Hreof8Jbtndc1g6thLWEckiq7CrxaHVcpvTQ6T7FFFQuUBn7fhU0O8GinuyQxtSXcBycmmPJ61rworHYSQWojeQbvgKs8J2myXNVs7yyDNEDA40ZKP5hayo8fBkY519d2DYMSTpUfbYWU5wIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVJrb5swFP0v0din0WRAQqhUTcc8Ujd9BAiR%2bpEQh1gowIDm0ar77bsm2VRk2Yf7OPf4%2bn4MSnHqHmVZtIPbj4GPeJnEhp9gMbgd7Lqubm%2bHw31aprnYi7K7Sd%2ffGnGTVfth%2b7Zus0bWnazKdrgeC8u2ppm%2bnTipbk3sTJ%2falqMLY%2btk02xjbtajYd1UB7kRTTt8kllTtdW2u7k%2frxu5cat9%2fdYJqpTtZCnaX2kt9QNFEvmdMfrp6KOpPjL0uhEHKY7fv7WFrJdVIco7bcw0m2mG0alfOjUTajdYxD3Cf07In%2fGUindz%2fDh3OS6fZpLT0wwzWlLQhMAychUajQjzeEWYSEzuvyjreGyqmGChYpDPuHyVZ%2fh%2bhYXchQvNCKggT4hQgRPDU0iYZAVWQHLIGGxOKk6ZikTttIyrjznEYZMhUQzKeX5AcIQPNgcP3StD4JLnKHZwAP%2foAhFmq8UpCrdkp7wiuSewPREEMsYhfbgLxnp9Ts%2btwv4rsi%2bebZt4B0qcBDAvRBe7eckwz71KZxrnmAEW6FwARyCBi5mF2TFQPY2pLwD32eo3qZ6FDLzKeZhzsgYPEYoOHCQsfliBRRgheKmeJctRUd5Bcfoh41GIkG6cx8zH3EVB1%2bfI%2fblbLf91YvpVp0OKfapAB91Bte7yCp4REgFV7OmxIxz6IVC4At4r%2brc3ftCgNGmZi%2bvY9HO0l1%2bnqI%2fZp9TT62AF1EJDsz21xt7g8%2fMv"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1k0ndp_e2etest","name":"George2-Win12-1k0ndp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9af583ec-f7e3-44d6-a42b-db772729ab08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ada8e183-7a7a-45d9-9651-0ade5865e7c3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAzvG/yGFmymvNqrCOq0ginQ8y2I+77bKDfCERCLCIrJUSqmpCa/V+ZKVrfJQV30bD2S7vv0hJcRxPrFjaazlgZx5IzrEy9xqSj60o0Aiqrmn5ox41YMMmlkav4iDYE+sazV9avKEB8ruwEqNBbs4a6NqZMc91p31IR0O3ocq9EPUmjYuwGCLbgW5pLtQhuxjpXn6Wco1UBzlPD749YzDXYMgkTTAGwGI+lMx2R1l7T7zlKMpFYxtNh5zSoIUV5KNrufZ4hM5t4fLKmhhvZBKSEBJJFpRuKV1W5sJkBXr4w1k7bBOUO6Z1bn9ZAqc8D/2xbkZAO+KNcO9Msu37yynaPQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.001","name":"0.8.20140.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6299b1e2-b378-4e49-b638-94b4694b1872","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.001","status":"Expired","lastStatusChange":"2020-08-17T10:18:28.4448556","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"9e690952-3d61-466d-8275-6901d4a7de61","vmUuid":"BF68C3BF-9F20-954A-8C5F-FF9D03FA0EA6","clientPublicKey":"MIIBCgKCAQEArlMKwByYfY9yukums56AhwnRoxcDI+dJxIhx2Es6/Q5gh/vm0WocHw+TcYigvneXUKUiTEYh14/XUl1BedUvFVIHAmDJ2KkuNjnmdbuaP0d2QeLyyudhQFVTtpjhDPmRUyewp0l5rjw71u+HBQk1fskim2mT3kvR4MNgV1kRtPQoRgsK46Z3dswy2msz9QpSfqMuADgwMWQp4B+T/o6opmymWufMLcJGmh7zCUaTgq+wMIlKyX8Bv91e3H9VYA2akT2BkbXPeeW7S5NsHRzeFsSVwMPuthynji1ZJKqeVQfRhSPZkwV888UXpfl3IduGwz7DtgKcM6nb7PJDN2H9LQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.5yxfznrddh3uvbucdxho4rdzrf.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_CENTOS8","name":"0.8.20140.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"adac39f4-6566-4e32-9190-33c7efc0e6a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"513bdf83-4e26-475c-ad24-eb72c442a9c2","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA5o65YqhfYpPDR+1NxYqbI0rmYzd3tZUtnQD7wMGfcc4O76B3WmqgXg15+TQw9I9M1DJ7wWlLmv4m+w8pyHxrlf28ERDz/ctqhWCOOC/E0DwqdjbAX1SH/ZmaQyB3TZm6r3WAQWp/n14w5pqMmWwF65AuXKZDW1H9elOEWXjp/7xI2zaTGYt8FwkRe/tKBsgh/U/UN7Jrp0ine9zNYstBhs4tBwl0W+RuSoNj7W2wg5C8aMs788k3uKIPbRSmbAyGjzwySIVWTSkS3wOnQoTLbHE83xmX/OHC3Gvcquc5GGGkpuILgow9mpnG+fy5x7Q9jvFicfbuADKzUSsiXnbofQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1t32oq_e2etest","name":"George2-Cent7-1t32oq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a080dda5-dcb3-43d3-afaf-7350516cf025","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f381838b-3899-4476-9296-2874d828a561","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA4i/1Tgb6/gsm4AKk2yIe5kHa5ayMiL/DIqH7pjXiirHKin4pG+xPD/tTLc9GKUgrZyjNr+36k9GThd5urfMRdoxtOPfc9XVRM170n73rPtdVXqMNsPFTDPa3l7Fw+m3txMZ+bE/8ijGsKVlkrRJjSaPyPhSeW8bSgnF2SHvUdRTT+atJ8R1mLxdr12aJajIznaRHmOccI69KHp0EHS3SIxEEhQZIoqDpOsuiuGma6DgrgVhJAuJ4KA1d3KpZax3v0tX2EEExQF3MxCAtFPneecJ0TPvvTDa1V5AYvjGhZUB1Rz22I0dY9Fdjyca+JQyPP1tZUOkLJx0QpSlhSVjtmwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_RHEL7","name":"0.8.20140.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e5781f00-049f-4946-9488-842e7b5ec34e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"14c96ff1-93e7-48e6-8059-1120a8015056","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA6s2tsjY7qtteIryUJFnSDN+2WVCGQzCtA9Q1jl9jPmwK6W8j5wzswofBOriFAMDa6BloT3EBxg2t3HJzlAyUGELX52UUNn+fVqBhOscsAQ0erfELQjSD9ctFsCTD9WxoUncEqKqG0sOI7jtz9Sb6CTLXO/pnHWsfnGzUUCXc/IH/8t0681X0eyS+hb/LSYIw08uBjrw5cpp6m7ZcEQaiFhh+0X5D/oObhBTQM4m4dmevrrBP30OBpZORJfPss6cjdeZj1iX9pIFq0j/f5cFdSBYgKjCuMMtgb78vTV+cpdoxt9L6nYnGFik9RxXGhG//K5W1KyKM2K+xgFwHqtlnIQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_SLES15","name":"0.8.20140.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5f1a7087-0288-4181-ad2c-eaaddde4aa23","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ee3ac381-fcf9-42b3-bcca-6d12e5f2479b","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAw/7lJl3YtNNLwm10o9CzqSIqA4eSdLBnPPw9ej0oLWHrXlzcdqIFCAhHCryiaNv/rUkbRUuzSEVVeYjo9EgEo0IAk/Qx3U+tRzJg2yW4dqxgJVsFZAxpqaCkHfmEeJ0Q0KmcBBERNYDsd91KS60ozFrrhCAAnSXIQLWRwh6vhDowGc3PKW+PHvqqd1Xrl+/q85cr5UyrsjycB4XWEfUaiCvCqSqA8ut3S+uk200lYN49SUDCu2iyVQI6nZ5ZFlXEkSJxlsOTqbxB+oGNflEnZCuei9dvQmYdIPRwQo9h/5qsNAFt9SpK18nDwEkkUTod03ZhC7hTpdY6tN4q5ChONQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_AMAZON2","name":"0.8.20140.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28a5d616-75ef-4091-a29d-fd7547b225f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"ip-172-31-15-69.us-east-2.compute.internal","machineFqdn":"ip-172-31-15-69.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.173-137.229.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-15-69.us-east-2.compute.internal"},"vmId":"25dd43ba-7a2b-4083-915b-12765d3151c5","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA5P26pSA0dU48njsFoq8994dRy1+BbzTvqK49z7MAUcGT0gd8BKEIiSuNPbSH3lFgD+a/XOZ7rrllGkfxq385sDm+JT42Z5W9O9lwppHJT9BcKwW16abh/6sWjWEtKVZUTks1+M3SOVJmOkrfMldIKjrnErqiOgKB8iuBO/+c2nSshwsB64AnUaHv1Osrwzi3W/jTNdfyHMjxMPCefaouVsED07ltEuQvezyrFk9rcfDkC2j4fGcGc1LxlcHHloSJFknQ+BqmmCNAuoFkXNcqdo3kQyM2iWawvYhgxAnTr5phr/TlsZpac1ouw4n7CGhpcXjf4mf9ZF4676YPWu3k7QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-15-69.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-19ev1y_e2etest","name":"George2-RHEL7-19ev1y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c102d797-4195-4ff2-949b-b6b20ec9d4e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"de7e76c7-9890-449f-bff8-93b44f773491","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAzWE6KFlQsdvurxOTwh391b/s0as8b9OcLut0T77308e46fgj9T60ik2QEK118d744aukIqkD1SwtktLQ93iAgqftCDkd2tZu4Cmkf2HkZCL/B0947Gb7QrkkusTsdpFo27SnGoHGy7jPNiK/hYsrKTKbzMs4YvzzuwVlw0bYoXA2io8XIsIrLZ+nM0fnBYRir9bVLQoal6t9EZbO+mLTzIRHjPhq1v3d6xm2In+odPUUokygAAP3l9TP5oLQXNEEu2TmI0CHX0g/cb5l9qBBK73KMCkwM57GWwOCbVUA8MgSOBbxttq5A2xviSh7q1PfFfp6kM8iVBMOOln2v/f2SwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1uo6sa_e2etest","name":"George2-SLES15-1uo6sa_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bc0bc5ab-da3c-4e3d-bac8-00b5d72ccdaa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f9364b3d-1910-4595-a8f9-f33923825ca5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAxRoJnlxP6L5lt5NBeZSj2U14fLlUe6qo3GWpi9PMIdhSYMJxsAd6c6uvaI0eFFSCdpEq2cx9iJ55uAy+uBBXZoYXYU5Af+Cge8VXozfa0g0LdtFNepTz8Hc3eWqI7Qp/W22YhqYLyc64g8dbHkwej38w/bLrrBRKUbLD2HTsd0pGOYWSyiq5bbsqHPAw4WCNkSgLqKgURGhVGQwNn4toBBZ1spR8KC/1/E17CDjfvl5pWFiUkDioasmA/QSYO6tQM5X2/pPNoaZU0y7NtrPK8F/ynfB8OUovPB+9qPIjk7bHzjuV6L48DJ77RU7Q8b63L9NSNx5Z2SkZitaYE5xs6wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-15-69.us-east-2.compute.interna5yf91_e2etest","name":"ip-172-31-15-69.us-east-2.compute.interna5yf91_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06f6d30f-b980-413f-a230-359ce41c8343","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"ip-172-31-15-69.us-east-2.compute.internal","machineFqdn":"ip-172-31-15-69.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.173-137.229.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-15-69.us-east-2.compute.internal"},"vmId":"74ca4003-8a0e-4b86-a9dc-9dec43a1a204","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAyfk6lJ9gU0VcGLtDYaVH/VO7K1aNM51t00uqhv/2z4+0i1vqY+INIjxCk7VZGesqvbYOUGbMr/WPgkM9biFhWF0H6oIqdKr6eC3q5bDC2N9hbKLmffBAEcBsW7rxEqBPmVRkYuuTzFsn1Bz8D3bzGe9SU9+SEywhcRFMQp5SUN+5DCNP2PlXmAj4YZS23iJ5EZqJEYDz/8E7rUDQoA51ywiKAqnW3aSuBxX239kwBDaZJye+HL+/pUTAzCXZNREnzKYcUyKUiEjJsJAYrs86cnAkQHJB/QzrhUNO13hdqys+0kV8eqG/HVzO04Kzw9LDvMn72PkCYM3chpO/yRhNzwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-15-69.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002","name":"0.8.20140.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7c026309-838b-4e67-8b8f-43ecb4a67209","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a52b6628-7d4e-4d7c-aa4e-59656f99d064","vmUuid":"F8A8F6EF-DEBD-5D49-8966-80ACC10E83D6","clientPublicKey":"MIIBCgKCAQEAqclXUZ4hRa+khiXjHlzaD6clTV6UFqrKIEXiCFxvKRcb62aBJ1VBWMebHmU8UTQVU18pZxiprUC4q2/N1paDWWsBsvxnOaqJt8QizB36kbfa5B+uCNFywfeavnkkDAhGAeZekmoEr87iuT7qqVfgCKPPRly8jJ7xJcHs1abc6cafcVYma/kMzWeAhfg5Q5pjwIRTB9Atauhis3XBaBhXjKs4H4qqlELx+NqY+QNb4iPg9Kl9eNQjRC6KuTiV6YpCpmQ5VTs3edEqJLcCj9aJN+owpNVcjSpREshE6CVFMhxi5xI/oFijceHW601T53iKWoryNGtebVrB2wvsU6qwlQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.thhlmbu1ob2ebewt0i4sncldfa.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.003","name":"0.8.20140.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e352821-4ffa-4753-98f1-17e06759f546","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.003","status":"Expired","lastStatusChange":"2020-08-18T10:19:01.4422383","errorDetails":[],"displayName":"fv-az105","machineFqdn":"fv-az105","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az105"},"vmId":"b91a3b29-5fcf-4e97-8d20-dc4bc2e0bfe0","vmUuid":"9BB8A5BF-3BA5-A346-A817-DD60EB2E2578","clientPublicKey":"MIIBCgKCAQEAx1IvbwLvSIgAQMBJlGATvL4HpiSeSWVuI0818qEiblHbmf1Q3H1Nx58H46VOYpLMPQBGR6+54DIwEv705PVLqsafA/EFXBq1eTR563XP3fkmKYuPoISlP8ykLRhvqQydG6UHI6/Iq+1FJllbhsE+Cdv1itgpm/N6NItrqbyb1pmm1eRLyF7PGEgofaFc+fsmVNIbuRsUyqRwi5OgqmTFi1yBCsmL4UZZyX/HbNxFRtXXhRaoYyvSvkhE25tkE6gpX7Xm6k0Oqx+DWMxyAb3dHs2gXXUT0pU8kt8xYXv2pT9LJQ8Dvg2a4x53t34x5TI0724HJGXZZbIYxa9utn6dGwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az105.rnz4jkk22bvu3pm3k1ir0agftd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1lx8jt_e2etest","name":"George2-Win12-1lx8jt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98bc28d9-8799-4cfe-9760-e303c6881e85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"e5ef3f2f-b8c1-43ac-bfdb-13d30ce89da0","clientPublicKey":"MIIBCgKCAQEA9cVOp9Fi08H/OHwq2YTP8Ci+Gix1h63wCzhIF67RIWqfoF2dtxtMKgqj7ij4KeuPIIAgHMQvOQw28OwDCXNL1tYO4CaIZvN5exEiIXot+8wv/vYU5xSO1Ks1iKh15eItvSC2KYKfdzHJnrj5Aesrm8im4r62zgcOKKtPJacekzyLFSKkNUXXI4fb/Pl5tSi32VVgyN2KwZ2Plm+s9NfLN42ikG4FKluRvrvpx1o9lGR+cSoOTT2kv77H2EFwc3/dAFC2R7RoAr9LNJj3SE5C99BaEz8Xf99O2S59R5VYnCIQn9tqMoYpy5DOyJ8CMdPR5RM0+vXxYijYuCgWusSGHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.001","name":"0.8.20148.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ef3e997c-77de-41e4-bfc1-f334073e3bb2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"osName":"linux","osProfile":{},"vmId":"4606313c-916a-4bf4-9bd2-f8dd248d192a","clientPublicKey":"MIIBCgKCAQEAwy3qgi9ZMqwqvwuKdf24MQZnJrwCU1PC5Rf5wJf77O4SvgJVU9uRMf8o2hGVTsxfahhY9E6U+MpZ1lo+fB4nd2YUNAfaWAI+JEKnG3bHgvbR9bzk7jANulo3Kh27NituCy7yZ0QuSaMOyZ/yT6jlBgzopFXml74EzhO8tHmbczS/htCYuZDjFMfh+dn+4LS0/SVoWNPJmGAfhtZ/0Ry8Ip9RFm+2ZKKyaEajGr5BEUbY2bCRgwkNlhXoe9qWo3cQlckSqkM30/e3TQs9lO4zMSPIFgj42opmFOqdqZclfemt7NwPEa0Bv2CvHsEa9GrBpmTUkNuVuw1GKfpR3AUNMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.003","name":"0.8.20148.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bcbd5832-4375-497a-8e20-66a4b98ca69c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"osName":"linux","osProfile":{},"vmId":"c606723b-dcd9-43af-afc1-13374f053586","clientPublicKey":"MIIBCgKCAQEAt8ruwEmH+js1G9TmPNiLWgCf+llxPLhNqe2neOqr98znYR8p0HlZCDs8XHKJsLTQlDJAZN/ib8Ffxm9s7UfQLbLMmMVugbK+sr8HTY9p/8CeKn3uo5RB9Sp9yUVcnCw9kM6FqWv52WtVPeKgEff4ULpISNoJKu5aMokHdnslB6wOHVXrKk2PnRGavThwbqzNU5GSt1D45xrRgSG+xutQjC7y/i/WTHO9Bj59UfvgpGKt59ENNUQjdpfUlDb2VRPS2opDUBLYQkwt8gJZ5wJAJDxrcOdWDdkJ8zNSwhKx+GNf+brULNED3iKbHJJmsF5CtzIDzQeh5VAUNCIzFWJW+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.004","name":"0.8.20148.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2864a917-e05f-43c8-ab2b-e1625e3529d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.004","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az506"},"vmId":"c0a48d1d-d524-443b-bf17-df41bb3a7ac5","vmUuid":"19640E3B-13A0-E940-93B1-5657D539A9E7","clientPublicKey":"MIIBCgKCAQEA4b+53CyXnsAVgQKuDICShS8NjohjNSlECFgcuyVxhh47Vp3sjgWnJXyobG/VWvlVuFXZLg9ou3RWBoHM48uh8VxaGJitaRL2z0S2AWGFVLAyEuyCrgcqO8GZgyV6ayMuvayUc9W01pgO5fpT9Wj0lOXmaxxFcYtC5+PyPzeAH8mc7f3gyKEXYeeGPN1VzwA47B3A7UqIPrjMXtQhF5drRkelLpH+IT207/Vq4EFv6V2mktZp8Ke0pZ2Y4wBWl6IcSOXmFz4f5jNlPPnbe1fS5yZEWxabkt66YooDmvUf52yQPbH3kyFhOIHOZu45AxEN7BUJPqTy2ZUO/EpT9MPqgwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az506.vdlmqd52r0eupcr0gz2ffh33ue.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.005","name":"0.8.20148.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3b84e9ca-8221-40d0-90c1-d83d520dd521","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.005","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"d71bc733-5e1e-48bd-95ca-4741f927b929","vmUuid":"2C6CDDAD-CEE7-C740-A30E-A74EEB6556F9","clientPublicKey":"MIIBCgKCAQEApzFkZTE/w1+t+Mn9/kRAK65bo/FTpw1X9XiWPBc1WPNqOG0zple8LJYEUzGTa1dPt69RGr3ClWPQOI7DX9MHJWZGCyBuH+ykxVbSNp7Q0pSXPxqJdVjlSiQsBE4a88GMdFzLXEywyZbACUSliKr/24frRrPHwXwL1sz4Uvn7+J7SAHBOTijGZ5prvMkSM8qwaCJSIMe+yHTxbIUn2rePvkKwQzNQNmLIlUi58kQHBx2/45alBMfYPkeLo148R2SpvBeb//dnG6x4TcATq6zI0OqjHo/ahWHMQJFfDhskS2AZefe1RLty5fW41kMyxATiNbRv+8cIpa4JoKl9D124OwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.bsc2sesxfc1udoljni5ygnmrzd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.006","name":"0.8.20148.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca854e25-862f-43ff-afc8-d9ffc9b6ce2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.006","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az508"},"vmId":"ecf0a6ac-8186-4b59-aa63-e8dd9ad48c61","vmUuid":"4326A456-82D4-1A48-B7FD-B96AE29C93A0","clientPublicKey":"MIIBCgKCAQEArP+Z1j7BgQDG0jZmt5ZdQE60Cvmf0nKSR+exsI4VYZRZldUVjSNtXcGO/X8fWZTcf1ZMlhiPg8B9binT35o/+eyVnE0VwAEGPfHHCuKLzFbj3D9iRBMfWAEEPeZoNidqnAnP0oy1Jokw29cDmST2rW7th09N4xKfto4mt2vF3mKrhnMp5adcNM3X6b3MveWbH8uyCImw66PsHJ3KxWO1jSle+FMdx3XHJKDfox2rxtaLjYtOuUVkZnroMD37U6pDXlFc2xM+/6hYtCX3zenGLjLx8UQS611DOqbTPtPxGdsPizalnX/jVdnoEV6NWfSHHDTcGeUZSsiuDLq0cPWlkwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az508.xbcc0agzd1judjqpxfw4hfj30a.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.007","name":"0.8.20148.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9c4ec52-cab1-4b31-9466-bd62edad41e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.007","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"41fd1b24-db7d-4138-929d-0b7fc28c8e94","vmUuid":"356FB4A6-2E9D-4E46-963B-D721A0C23BD2","clientPublicKey":"MIIBCgKCAQEAz9FvOqxkiELDP2T2+UvhibuCDYoKXhb5zzAYn7gYhy40+KDAUzxjBLQ4islxhFUqvmP+S6JYsYxiBfhC3ckfGMaGJgxhbW0uH7LksUke+R0sukvGk2MYzFB/IpNfTqEyJaGdrKRAI7t0rhJOPvUmNopefUfCLVvKmpxJ0qD10QSsnLdtBMTdUPh02o9f/V9JhqJ59OMzwbLv0EyqCGraLAgfQ/c7ZVM4F3++O4Ouei30D9tDOdBiKGEFwtHr3QDTV492VosC0PY0wO5j25yT8utr8xryyibTqorXZOiA6sO1rGnFQGyInZhwePc7wuG8b1r0LsNqPHXcRZmxcUoiWwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.cum3dcti4t1u3kgngbyia53dcc.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.008","name":"0.8.20148.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2fa7db69-5205-4797-93be-2d5e15ae9bc9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.008","status":"Expired","lastStatusChange":"2020-08-26T08:33:35.3536928","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"a9384e7b-7d4c-4cd4-af88-be5af3ff1bde","vmUuid":"D4D13576-EA82-2245-8EE8-52986B136C6A","clientPublicKey":"MIIBCgKCAQEA18zyfJaYjif7tixS2agsnM/CnT6Y6yuxrnvWIvwBcETZIbCjWd4E7Hk6U4qqNhLY9rFgrKyO8fn0I9dzvkd0p6GyxJ5CE0cCGRNli4ZhzkCvq82apNufHg9Qo9lttH3z5DWzdfpsPF2eRXSgS9jdUrXIeKaQqnsjske6JNxWD31s79Pkk/kHHIs4VJL2aCoHCi1lpQw7VoBfaW82n2MiB4VbO1wcFsfY159pAnCka1g6O7Dfd0XXI2Rfdp6hndHVGMxlE8fRnKpYB57ZFnUJpxKuEBttJAd7m+BrxiVOpDRv4NrdkIP7Wm5YHiLG01l8enFZ8Mz9kujMgabU3dIi4QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.p2e3fkk4edoehny4pbfwpj3lke.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.009","name":"0.8.20148.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c7c655d1-c0a0-40da-87c9-2254b24c7673","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.009","status":"Expired","lastStatusChange":"2020-08-26T08:33:35.3536928","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"ff1a1c20-9e8c-4802-9479-4a7cb6063e60","vmUuid":"3EC110FC-328F-744C-A78D-380843F7A42E","clientPublicKey":"MIIBCgKCAQEAquEBvgmrw1o7KtdL77HIs8tOdKbCJI0d+N3BCc0rlri3Hyhk9CnH38oHcHb0Vc/VqineMF1LAyoVILU6nNTAqAcnxcA2E7MJqu8VKm+9Zo3RepowetK7eSdFruZkJd16tsO8I6qvYqnYY1rVnYvPcrkfjPDJw3iUWavO31nH1vEkPJ7fLf5iYwA7L3haWRJKY7GtQeNO3hRMM+3qIewZO4G4mciVRmjp2WGsLi22SsLpmYMKozdNOc2RqjYpITTk2xsOqrxgQI1rq3IVVW+ZMGq4YGi92CL7NgIc0oh2GikdGCnf659XCKnLERVWiNP5HTXOhumh/HSg7pE1HrLsswIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.qdwxe10fqyneldbloddyfm1u4f.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20150.002","name":"0.8.20150.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1acfcd8c-10c6-4552-b8b5-4fd023eafd2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20150.002","status":"Expired","lastStatusChange":"2020-08-28T18:28:35.6664975","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az601"},"vmId":"5f97ab40-0294-4a99-a29e-552cad866adb","vmUuid":"921C9F14-EE10-D54A-AE3D-5DEB5501237C","clientPublicKey":"MIIBCgKCAQEAsTe/0XTecL2F0lleF+vgDfRvCv2envHBvutXajvx8aMpg3KJdt9Lzdz/OBdi/1S4U0N/KNKVVi0aZ7FpFkBlCh00lrEeNuaXuGIf/4IwJhUW9SntVkOZSVV8IL8rzd4IERKyfVUOBnkwFCZSC3cETgCl8YoAwALzIWjDuBbsg3QjHkTz77ZyEsz0sp7Gcn4Y7DXZlVbb8Xa884JPykKPzpB4YILzFq5qL3xGmL+ug50U91gA1c9SBsfIYdRTaQ5ESj3WLYNfs90SRXwH0GQnbsOXWH8IL0PWyI1ajznDlq81GCy+y/lEquMFTDAJ+s/nRTuuT/vRIZXOKMzjL78WEwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.ducyatw32tcezdgw54qaeevh2h.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-T071065R1ARwb68h_e2etest","name":"WIN-T071065R1ARwb68h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1983cd93-c56a-4e75-b8cc-023ff8ca87a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.010","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"WIN-T071065R1AR","machineFqdn":"WIN-T071065R1AR","osName":"windows","osVersion":"10.0.14393.3686","osProfile":{"computerName":"WIN-T071065R1AR"},"vmId":"5c8b5d4c-2a8a-4e09-a6ff-d8ebe21f7e19","vmUuid":"99B40FA0-9426-4410-832D-9C88A85B0C13","clientPublicKey":"MIIBCgKCAQEAw/8PFKw/4Jnkdyeoyl+4C4sOyjXi8uQNnKhEyyLbKPX0j+uzjgQxw6m3lQ0KCnPcpNP0lTBTKelLF040q+T7Ki4U3GziQhjvuDy+5WLW63aQ+Pl3khXAFcp/naonyDNPGkVQ9PWknk4PgMquo4CmeRKkCP/36TU2Hk9baEQ4Y5R+3O9F5QKBW4iNARKY/QEErqdo7szHIBgcLmnqmPCyJ1GmI6+5PSJNyNn5bWhIC9yyz/73V23eEa5zxHsrHpJMjcxJRniy60qEzQySdR2YbOMcxsvXOyvfmgKkW3kwgcSU6dZ8DeqIwmmxpWXZegqZuUCML3r6DQZ4MfLWUck60wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-T071065R1AR","dnsFqdn":"WIN-T071065R1AR"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599yrca5_e2etest","name":"fv-az599yrca5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ec39e5f-17f8-4ed8-9a87-1880a065c8b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.005","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"90f1936f-2d6b-4594-b948-6a76ca1bd1bf","vmUuid":"5A4B9B10-38A5-D547-9869-9A1F979E92F1","clientPublicKey":"MIIBCgKCAQEAtmn9rSmAItreckS438R7DfeNwAeAm74GqV+qVy+zAOBiz08U8HY5g61ZPYzw61iRpKGLwruefPozWf6WZOvR+ohh2HzzxHhKbe6JlSs5slApzIFC7OPiXdx5ycDgrPakbQwh0zGrtG9TNj5SQFGTz2z6rXwOIsSZ7h5oU2gPOGfn4IBV5TEX9Ekxhg/JIk32lTez0DcEIselmATZdMtnvvTjH5x2vO8ujCJ5psN7roBX09gG6+wb6E8pB0fyitS+JhM1zh1/QMMmeFPsN372Lrbtz/uycylS1HfWygeqUBsat2XUJZ5Me25ZFRguRlU1juxfVnpR74KGsESuUZ9RFQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.b5zgbhi0iuxudlar0by5ovazsd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az623y82hw_e2etest","name":"fv-az623y82hw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"971d02a8-f33f-49f7-9e8e-c8e7eaa693b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.007","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"f8656980-cfed-4b7f-a1e5-92e0fd315115","vmUuid":"62182673-41F0-F544-8782-468AFAC14412","clientPublicKey":"MIIBCgKCAQEAxjgKREGVmgtg/JtEi+Gz2nNj9Ka9rzI4uKnJl4c2WLF/hYuyL4pul6NwZAIzZSJ3JdGqbHGBD8aibaEAlfrgtXVc3tg0cmn8fKHulaN9I0jnlCSoPwy82ua/4CkCe1AvK2L6RPcPPcvznh5PYrqaRl3x7D0u5n/AD3Emgv05qIo+L14HOqMkQSucSwy4YRTimfjVTwUi9IeZFdT9u9q5Z7vxkTtrjPE+Syad0tq7q9IFUj6gWv12s9iNORPEO1EMTjh4f96DdCBFyhFMQpwCvQFFw1vj6A+CHRnNcfqKyFvOFBt3RPj8j/7CePqeO1O/aaOUSQJCakDQ/idFESbrPQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.cg1cu1z2oi2ubdftnevakm22qa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-T071065R1ARqtj8l_e2etest","name":"WIN-T071065R1ARqtj8l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7044ef14-9fb8-4e3a-928b-0f20cb1773b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.012","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"WIN-T071065R1AR","machineFqdn":"WIN-T071065R1AR","osName":"windows","osVersion":"10.0.14393.3686","osProfile":{"computerName":"WIN-T071065R1AR"},"vmId":"c928106d-27b3-434c-9593-f1abe6035eef","vmUuid":"7FA963F3-4A82-4943-AAA2-0ABEAC933EDB","clientPublicKey":"MIIBCgKCAQEAl/e4BxZTGoO0hxbsDJD+lHY0TEuc8No2QyQeImSGtuNbxRADqMRWh7dzDf2HBlRNhuFPCP4NaaUU2nP7zNfLw2oUES5axbTREt6WDuD6Z5+wGKtUjK0pCHrDHzpoaAE32gkv3A+CZ2+09rF0SkQahHaeazomxYwKK6sFWd9GcXa1wcuJsVWrRTh2fAGk8C+wd1EW2R4JFgkrp1VkkQfvU+ZtD2BIwaw7BE7o0gjh6TyEmbza1GM47+MGHapoRRwTRSQzKqpBR823JGfq6x62N/4FT2ZKvpScFY2+MmJsfaQGtkIPuR1xUnEz6TyzlKKcSmMa6bW6rpsgg6L5vrkjGQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-T071065R1AR","dnsFqdn":"WIN-T071065R1AR"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1260c5_e2etest","name":"George2-Win12-1260c5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f1e71a42-ae68-49d6-9d1f-6c3878367de4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20154.005","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ebb1fd7b-ae18-4159-9527-6aa07a2c2652","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAmtz3sbdPTMUihUWBCB7aUq09Y4auJABxzlCEiwj9cAjq0oqqA0mEVDTUQvdmPSlOkFpoI13LxZitDO00B1pzT5Pb2mRT3nsIVLrPxYSGWEQBC/7t62XO3zOhFLBefqaW7r8Zdw9xBAMzt0ME+CiZRpRaZhIdPo9K6xerOaEn5aQbfbCQ8F0sSNGut6aIe4G+aJcgM2i70YZtDzrylWwFopC5kNr49qMYWCsUkLn+q6twnEsrOM6TBi18XwD+Y5CzP6gRV7RddOIhx86f1gYDHvavHiUvu4Z9L2DZnt9ATZKWjBjuygjBLNJTY1DRRJlYmdF/+zcQhY/qZDjotG5j0QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.007","name":"0.8.20160.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4ed42e0f-c4cf-43ea-83b4-ca85580ef1fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.007","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"bdaff870-8b3d-47a4-996e-92ad95236cbc","vmUuid":"BF0D918E-BE44-3E4E-AB8F-F436368D57BA","clientPublicKey":"MIIBCgKCAQEA0kIIiDMNrdM+7H7/JjIvzGFjz0+AnnDn7y51nquFDndyCnbUBVE0qG4H3HXqBxS5yrv3MApN5zQzurQQ4i5dkMqVnIzp4Om154JC1jZ+LlKtRqAj5K5HV3iNMPnoRmzlMHk6fZ33y3c9GoW1MVSo1baG9S5Bc9chpv8ig46Jjomo2/0PejGYOJzJmJgeY88m23Y802RsBt+Fw3z6iDfVIBa6/C2466TTcMVuaoIlryAgxpodGDJF/3BQJjNsBsR9+ZyVWhEKQtJ0H8Cfrbwpq4NVXso1xbxRkGsRjoRfU1Q53R5NgFju1bynVDUEtcIwyLP459VkyPmOLDBNktGY+wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.5ojcw3ym5ilufjsim14cbcpkab.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.008","name":"0.8.20160.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"473c358c-6187-49fe-9d0e-f1f0a6fe17ca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.008","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7d8092ac-774a-4812-862e-596f96e5d515","vmUuid":"571CB8AB-A1D6-2D4F-998A-0BD9A386F071","clientPublicKey":"MIIBCgKCAQEA0tfGyyyp7/Zu6V619vibEygImVWrDQrNLlbjcb4lbuYt9yt53DCunVq/AIYza4BB1iVquOMUILq7G6z11mqKbZbOefwKygFx7ZzGCza+3KulS33O0W0zKpmRnHNBcHr7vY2J0nIYSUVgoSzWCjP4ujcdnZlSX4YDIJUgAM5qOy9biv1/F5pPiXSYcGNHoMvbZxiPJxGrOcSsDSjgTr6wU7ZVchRWuRGA/9hjquSx+bGgU3MGkdmlxPTy1PUg3bsbFwhyVJKm7Xx/ZPQzTSzqJZAT3juKwiEoKMcg1s0ZvNDX1nCp2hPe/rY9UkA1fgAz/geJiVcYsEPUd/UVbNkkewIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.ildyvi3tvs5elcdgr3ogoyb0vh.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.009","name":"0.8.20160.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"edfd60c3-5f43-4ac6-912f-4ce0bc84c9a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.009","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"44a6938e-ba61-4aff-9b60-c08077607128","vmUuid":"14EA5401-1F57-1C46-9563-3AD238F7DFFD","clientPublicKey":"MIIBCgKCAQEA0lZP6NBRG2d99atnQ9CCrUMxF7jB5Aik7P507oOem9btFWWwV0Zd8Uq+iOZRBqfZkc/y5lMNzNCqu4SME5ODaX/EgR2KhjE5Nft21qUEZpqvpU8ts6jwRw4TbX9XxlZtWDkmRyTavMSN1u9vIVBsyFQWZaFYpxSN6kmNCb+OEiq5uG9Q4+CVbwoqcRbJiUFs8uLSbMHgA9hufkRLWpoYp0g19CpbRiRUJWvQErLBQ+HlaE3rMeOUk+ni7cClkMZgH1MGuZY4bKT/vGyuVjQ/Rc1LwgPr5e7Ufc+Q9oFbpDyYVe7E9xbMdqIDpAqICmCLf/RHI6vvlNgEeYfoJ+hOtQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.bkzmlvofaskelm2nw3yhgljy2d.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.010","name":"0.8.20160.010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5437386a-6c61-41ca-b7f8-43245dd09a19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.010","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"b1df6045-710b-4034-911c-a7628aab0d6f","vmUuid":"54E37B1E-08A6-FA4B-BF28-85C0ACFFB979","clientPublicKey":"MIIBCgKCAQEAwceyiPqH0gYbwwqFjCpSZ8grm0JI/pDF2IldxMLxb4GmCEjEPEs1214PfDeum9zTYJ22CxFWAfozYpCojNdL3eyGIYFXzCyzYBC2G3IMO/6wdUaEYBvmUfyG33eMHgo5XcMVRK7AYHOXo2rAtx7zz/o9x4eqTU/vHiG9grymJYi4JkcPQRd7JFi4NXW2WJ38ubmss8z8H0WA5O44iyfHD237p4cprJbqJuZdsiQNfs/wFKW38r1XzFxT6VxtOkSkDhwWkDBQ2JEoIi7nXMSZwlySOHoYnXl1IVyjIfZLbi/6yDErXbjzXqlglNlkXIL/9T32qglgX4Uh26eh3z3APwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.ql2clh252c3uddg0p11b53udya.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.011","name":"0.8.20160.011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab48ab2c-650d-4b18-b304-06666a62030a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.011","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"3c2942af-8a41-4245-b0b3-3f99bf271007","vmUuid":"E660175E-A21C-3849-90AE-FD2FD9171FF2","clientPublicKey":"MIIBCgKCAQEA6YYcNkDVzIxG9h27j1z76DhYsFTGvFiizZrw6WuGKKUpq6OXJOVbGOJne+vXoIiWzDjKNyvjSAP/G1O1rLapoeDvl0fKOB9CFMyaj2FNvXNmZCOVO8vgbwlmqj/x+odO+jFsQxij0XmAZYXw+D/07G5uDVBFVTERKINiaRs6BNXX2GvAm//OEZA07yn6dTR5WngHh42LAaHxbW8LBrIck85QMkJZQcCVKFAp/DnUmcVSYqcW4aAYctoOHKLpXmg2jTR7DmWzDajquzI/YKdNvd+Tjtexmly/53vf2q/BKdfluloso/pRy+oxJqVfYZFxyc0LhNLwKc+bq7gfYGlIIwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.0vbzrnv14haebbzv04bog4quxa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.013","name":"0.8.20160.013","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b577fa0-f307-4f1d-a6f6-93721e5a51c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.013","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az601"},"vmId":"3905f3ad-f25f-47c9-86f5-2495159566b9","vmUuid":"DD09BC01-2A86-7547-9E78-6585A18886DE","clientPublicKey":"MIIBCgKCAQEA3vZU14g4RyFTsNufwfRC2C1rLH+BylLQcEfqNBKLCBdoUHC6finKHRStPzW4jHZyrwGVzbrDtFgHznv6eUhdLsqUNIX6RWVilyZJli8FVIqY0LFhBEjT0H9Rro8nn+Zkv0BqQz3iin8eJKNg3jG4uWqXkGHyWU++fjLU15cEkQX4GieEdpbnZuSzekUBPuaUBRjMYa5OGCuBZnRgIytqwL79PfGtG2Upjknl7wDSI9xmA2+srZmGUag8+NSq75FQ9s8c9kM7B9GKihSfjA7wM0Qf1Ys8aDkPRHuLxAZ6wIK62NBCQCPRREuD8B9TyL4uGOQgihfEEhe0lG2paJ2XiwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.0iy24qiibn1ubo1qogexr3ojhc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.014","name":"0.8.20160.014","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"34e9da7a-f282-4409-9fb1-203505edbc2b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.014","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"0f2832a4-358a-42b9-8849-c54e80588a77","vmUuid":"F7CFC891-2292-0649-844F-87EABC1E4807","clientPublicKey":"MIIBCgKCAQEAtWEE7NkNjsIJcnraLqTrOzcQWEen2jJsdBNQV5wrKcE1TKVhBaIvpo+F3tH24pxQyJ59+MJx+SOJm9qpPmdxwGYI/U9t45A1jQ+Vs4NXdH1Cun6u2RS1PJ0tcIJgq5bQvb9e7VzF9B+OumoWPBpxOUVkk+AE17A6WzNZvN4rZNW/f67QpjO9+lpCiOJ99zBMIkvqPb1/mjumVydYyjkQkcUCuN98W92wslt6JzVLP8B9VpZNYvrAwsumVLuJTUUjP65X16vcHj9UdvnrqqL4/y0iaoL4Fn6qLP4atkYfRTGlXw9gudA7ixrax0C7ZessC9RENa69pvYiWUPstiK0QwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.ce4rv5wmiucu5d01e5rcbvhjeh.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.015","name":"0.8.20160.015","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"201d821a-f1e9-4637-8499-54c95f290174","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.015","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"ae9d3e1b-e6b1-4af1-b8c2-fd5ef417f21c","vmUuid":"97D1C61F-F056-7841-AD4E-B3F836FB793A","clientPublicKey":"MIIBCgKCAQEA2Iitx2ltkQtd/ykMY2Lh/il7PYqIbMz5y7+C48BCd+dAC25X8uk8fTwrSdeO2irbKiPNOjlXw90kyiCpthTD+SVQhutcNE2fP+29SRv/+wTY8FwShgi1Q005Ga2r4gYHJ5OX5M+UeNk2xeuIGXu0jd3HrnHGwfjYSEPYg/uN0AyRtm5DN0E+atgYPwLEoiyxP6SRoeOReSTP7pytUh0x3Jlr+9moiZ3Ry47/CZdACWMdoZG/XvkXIVCXDaOcTuHCnrA4iEVe3k8nDmIVN5HTuoxUl3pq86bGjGF+Zcw71XlA8XoitG+DEmR4/cLZ388IEv+g6fVKDRVP70J/rcdNxwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.yzqxp43x5douxd1gertvzhfebe.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20161.001","name":"0.8.20161.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0be87a15-80fd-4aff-8d58-8bf11413fb6a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20161.001","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az506"},"vmId":"a914eac6-e225-4e08-8833-47744f5057e2","vmUuid":"8C3472A4-6605-7442-8052-B18D22E12031","clientPublicKey":"MIIBCgKCAQEAy9Astsozlx+RCHueUoMx64zwARkifD/TgerjYTnPOKHO5XirATuBGrPsaDrLB48J6VcebFZGVBfCkGl88Bv0v+0+DrNysrWjXwYKpHxoROW+LNKI/R271m/3TtKM2panhY8hBsCsUQO3ih5r+Hj0q+FNbbtrya5U/S7wptdDkpszFB9PFJeiap4tydfyj/EjSL7faummNYth9vb2mi5qof192Pu655I9tPpx4HeyLoXEYDLHhzoj1NuqapIJf4b6WgMldT5k3ZUYZJRu4yzoKVNdiuJ3hnufxsIKNqTGO++RWmhUntVmheKi5GO3vCuzITdG3jLo8qnsVXYE5vkSkwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az506.k41kkzibsq5erburcnis1cdnqh.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az4642a90d_e2etest","name":"fv-az4642a90d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28d4effa-c21c-46ff-9c43-dd103a115c68","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"46123955-7a40-4324-aa3e-e68df8cc06dd","clientPublicKey":"MIIBCgKCAQEAvm/Fg748zDhHrwvL9ERky0htOPJfQXakFYsfZ2O8NoIHVXI63psav7ttYCeNkM+4HOye1LIVQ1fRCAeuadLYKTupK2pOEnq67kkG2JSHbMQ8uIlWAefF/+uDj00QAp+nIoyHFiRQmw3nk2mh+5mzKOl1IIq/NGKtkALzx+kz+KyHbuIPMrYTIUE9okbljkNXmEx00bkP9cgKpe5dbTPl34I/nNhN+YD/DO2Ie2Fo1eFlJz5qmhm4DlU4JY+H5xGYsvicZHFK2WBvD9d2XrjRtqHnkTwT6T9gLrpeaz8EjLOFQaXGLtSEwz3JYarMBUw7kyWPVA7fcaM537U+sZUHQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az464sj64k_e2etest","name":"fv-az464sj64k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b6e4e269-1471-4513-a8f5-110fa91dd578","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"5830e158-e04e-45bf-ac92-490bea8a5cd8","clientPublicKey":"MIIBCgKCAQEAt0T1TmjDYmR4WAdr4N81v+N4Jt1wsVN2GNlUd9Ry/eqwvXjHm6HQD9ia3UUbCvhlbxOHHVImYOVTO+e3H+mVhIsx4pRRcYWFTShPMczaz+caSROQXEX7hSyPY+gpEh8m0klX11taeCK5PL/O/BEheG+fHKKc5VoexXlyo1L1xEgKfJPghCRBwXVQAzTHscyHVPy0zUuI+p8cj9niNR/lZcakScW7lZy4HqZn3D2mYLNg9ZCs68PiWoiXOhJ5oDOyGQwW5paueJ+17E2SrxS2iJRdcHXtv3PWQtXRHsq1aff7pTb3kaNa+s/1D9zVd9a4FXRk32pYai9Wsr2eoY1HbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az204aph5z_e2etest","name":"fv-az204aph5z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b72cda6-6101-45e2-b6e0-a9d0bdf782b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"92277d92-bc02-4589-97ce-7cca258da09e","clientPublicKey":"MIIBCgKCAQEAvHRkN5Fbtf1yDpMmxAKvnJoD2MSi5Gty/Dm8scKPYALxIS+dFifzo6Px3AW8yFqhG01jI13h5+rnh9MdbcDv9Kt59R2Devt41MitgMSb0aLTqOC4OUIgEhGTLc4dK40ULpsi4+YDQ5e3Yp1pLEdlBJ7nxWdI58ehr4eWZ7HDOouX0aO+5mFzcKnYfap2QYmaQowP2hhzPsoPplcxcQk/MvWSv7sExJHnZotJUzJQv8RDmqvhZg83ELWbpaOKN7qdGVFXQlw3Ya1ZoVIM8SazpDF5HeL4Y8u+OQnee//fmPTGq4Q61SdxOiTbQoHzv4+Zu+mNUH6IcTm/OuW78WbLUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az204s5kh3_e2etest","name":"fv-az204s5kh3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb8b0084-fd4b-4928-8ad0-6fc3351091de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"482e22d2-456a-47a0-bcd5-ca1e0191e711","clientPublicKey":"MIIBCgKCAQEAtrJV1Our5oDQI1N9BntbdS+GITgWukFI2KEsWEPh96oGxl3I8NyyFu/jKpOKlTEBZNLCCCjQlHxWJ6ftHiDHPUilCCVAg9RTdUWffaDotIMrxZEHmr930Mv805Sk0HTwRnqCi2z8XHrT5OEZ+hfADEKQW06GIUZlntMtHIXmI35g0PDKpQzchZPTYG6UHnHf91xjho7nk80cp/5ceT62PYZvwtSuMvnyB0+zCgqkOVdDtgAlKqHgL9nkrFRLleYL/RDixE0rsv+GhKjIQVRMfPWsuX2+dSolbYfT12bj1/JXpSuRUSL/Y5Tct/5ZWq+n/9Zfjz66YM6n4hd9GU634wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-A60UO141VJV5x6yk_e2etest","name":"WIN-A60UO141VJV5x6yk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"66add2be-b8a9-4643-8eca-1d8d88e79cb3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"edecb0ee-85d0-44b6-8513-976c3d40f6d3","clientPublicKey":"MIIBCgKCAQEAtnM7xzVHX+AszMEGSPA2rvMLdDhvUEUGFMxMbD1O9M0S21rTgGyCwJWVsKyhh57ph1bi/6Zs89GGvH1qN5xZv9SJUQXiruvhkDixU7jSFsq60pOTq1J4tiAEsdub8dkbCk6CXMf4b8Wf9F7b2l+Sya8XyJ5txRAm/iHBIcjmo8QA3KlEn6mur9c2t7j0MNmJNqhKU0y/7T8B+K57nSIhlv7nemg9dXWXUQ5+Tg9BsveZ6NoQuRp3qW248ws4KPnmf6QXCTjKitQFQfGFMXPQ+WcvQh64I6M8yfaIeEsXt86oEDbmDIHcIkQvcfRBg5qN9XrvPJVGi3atU4LnP5B8OQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-A60UO141VJV8swof_e2etest","name":"WIN-A60UO141VJV8swof_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"346d5ace-5bb1-472b-b8d6-f950bf4c1445","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"36e8cb83-a86e-4767-97ac-e0958c8cf961","clientPublicKey":"MIIBCgKCAQEAzH6EIafph3E0FVGdgQZHfUMIbigW6OlvT94wk21MI29qm+sxZYHofjRHG5dIJBE8BKqGN2K1VVrDUmSDLS6cjpYxzCcWt+A/3+tJL8lQChSHMw+gepa6uyNlOxurgNMTT0K4IlY5QdPyZiQujBaGxpB2kV4gkW07jBzZ8JBQ1aIQrn1RSMwkjFm71X1A5tEhI95ISDioA6aH0AFVEiL8XC1mucnMk2ep8x3A1v9UeK0cZR6nCF93gw7NX97ygMGe+HpH0ZHZhxmHo0PGEiip6uxbrxXmIkkIavddLoX5O7A2BXOZEAWA/mDo40oCs5zLrlaawal2E2t6quuTOfvLkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20182.003","name":"0.9.20182.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddb2e716-3b8a-4440-abad-c905eadccd93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20182.003","status":"Disconnected","lastStatusChange":"2020-06-30T00:35:36.7830554","errorDetails":[],"displayName":"fv-az592","machineFqdn":"fv-az592","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az592"},"vmId":"af98958c-a06f-4f3b-b698-f77a80b07cc9","vmUuid":"B6F06A77-623F-DB43-9252-985B26316AF2","clientPublicKey":"MIIBCgKCAQEAsbT/WvqzmBp/hsQm+qVjMfAqlHV2dsHRxdJEvl/V+80WcH75maTCLWZC3i8h0FGZxJwIT7rEz6sU8wiJ1//jocWFFfW+IV3ltOiRyPzzOKpRMDCAFcSFK10EQLTM+DFhYvyZItmrsITNFwi3E7rQaMZMcm/wgouRaL1jZttUQeJMMZH9VyF//1fMbO3KAJ8pZrLTS6ODLvLSvILIgAVvmVVyPvwnLyxpiFibHDd/p2Q9fV75eBpQUKywr1SHaJ/XGCeHEaSMAEsLThG6otEh6qyP63xrIkimNVgz9kugeh7r/IpZV8oUtVi29gvB+BXz3gi/gQXA3K9oFJK0RbBUUwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az592.xmvnavnzuulepgoe4dute1qs3a.dx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1rhnw4_e2etest","name":"George2-Cent7-1rhnw4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"82a8df74-e1f9-46df-b40d-677ee7c06261","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20182.013","status":"Disconnected","lastStatusChange":"2020-07-01T00:12:40.9776619","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"58ef2c10-5f4b-47a6-92a7-e2baf502abb2","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA2rWxxgzKlzn+XrQvkJXmtfB9UINrxT37NLAxF1sqom5EY3gl9rjh5+GHo0VXDLtkeEnKs1ET3PPYNQvsfhW2LCGvKeX6cef2zI/E3V2TlvdrbzNhn2N4XNCKWd/ZsRB42017NmFhgJIqBesvPRq3uOcytUvDUpaIOV/pEW6x4GDA3w/2dce8GwJQFqYkqnIwlAxgYBtfHDngRQ7DabwaQqW7ZIeEEwcGxwwB9mDXCtAoeFrHZ1O3c5QGFpp+yfH3psVWqFrZn4nZ7Dehfa5KaFY/tmzk+GJ9/dvS4Uw7re16AcWV3ermpuONL4cp+MZHBW7aNUD6LfUiUvBIJrdaxwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599gsuwk_e2etest","name":"fv-az599gsuwk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b555529-3ffb-418e-ba9e-539b65ea3c7c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"bb80e8d0-4b71-41a2-bb40-ed965836edf6","clientPublicKey":"MIIBCgKCAQEA5iFOziDzfvFd06efIeNE+tso4iSuvB004PR4SzuaEFa0hVdunspE8hpEyo5wLE3Tl+iRkrM44hCffimLusg9obfIY4W3Cu+GFVVm2YmXI9cZXjMLCPwDER+NfV1mCo3iyeJK8fDaQCmvKjw/VR5qN4cTVF3+fzVxi38XvjalyEIrsRQqBrID/HIK6C54SdcJy5xyCAymUO7wzeUjZcxLamPSLCDiuO1BRK45Ld85LCfcAgzMEEC8jraTrs71Y8ZIOFZ6h3DFl89ANk0udVZy/7jiwB8b3FNL/s0g7dtLNbxkJi1vX9x1zy2ofY+0U8DBsx36fvgeyKhD36FeTbGNxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20182.024","name":"0.9.20182.024","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b935a21d-e146-4b1a-9a53-3744c63f48be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20182.024","status":"Disconnected","lastStatusChange":"2020-07-01T00:21:07.9839268","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az601"},"vmId":"dd3e2f91-14c5-4cdf-b031-e3db7ec5744a","vmUuid":"0115A408-6802-D24D-9404-81CD64412893","clientPublicKey":"MIIBCgKCAQEAvS0z2tE7TSZhCplSEJSIetbq9qAIesc7icwhrHYWYhkDhigQ8SfVnfT5N5vLaO2q9sjwzczbWd/3Eja6M/n/W5sFSEoPHWVY15z/s0guCNR2+UBRY3g4HymRHd5/HeTwfY/OaVh5vBeT7hKcnZD+xSqbKzUZXl9kPTg9Q6gRyAm0sW61kOpabOvYIT/bdOFgh/Iq50JmeIjOfDg9XB7MtWxO7AakyyJFvx4vW17GPuBrs91VWlFw0zOFjvi/sZM1PFy9jwE9Sr3URcrIceMia1lD5qLuZckEit+01Iw9p3JMuCwpRJjz7IjV4S7o3M8jdnBFpvY1+GWRi6KAR7T4qQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.pcpg2h1g525ejh0tv3jmoy1nxd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20183.001","name":"0.9.20183.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"93012a06-6fa0-4422-be72-a4a890725555","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20183.001","status":"Disconnected","lastStatusChange":"2020-07-01T00:40:26.0733994","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az599"},"vmId":"092d5599-c6a9-4509-b1ea-efecdd0f8da3","vmUuid":"6027C647-8853-8D4F-98EA-005757C04ABF","clientPublicKey":"MIIBCgKCAQEAuBg5KnSoP3oFnjMr/DC2uQ+wGpRNoPfaUbs8xumzwIVIW8/GGP5VHKzTf/dmZ6is8/IP8eY6INj42a1Mb1T2lWm3Cc+LOPUpp2yI43qAWHY8clltKkkL0Br/ENvWLwGGMUz8dmyQpiyLxB3W3ksNmvawriKVpOFDy1AS+/PryeCUpLhKXdYfBVCK6GKA1Ke+HcCSehY5cSXfJBadWGaFuR6mD2gliXeem9kJPqlrI3BZmP03qJY8Bqv38FklsLnB69uPayBEyFM27Y7/sUO2FJlgvok/mg06Oo9gg24oo53faaRbiKgxbSOZsMCVcjvm4uS9PXHZ2nM8PxbCYP6fhQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.caa5ld2553leva4hj0flsfn1wg.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20184.002","name":"0.9.20184.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ed6d1e2d-30cf-4380-ad0f-01f61d3f305c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20184.002","status":"Disconnected","lastStatusChange":"2020-07-02T17:36:06.0836204","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az600"},"vmId":"40ae1198-b1c8-49ad-88a7-5d61e12bafd0","vmUuid":"9BA7E64A-105D-6541-9567-8A28809A4E11","clientPublicKey":"MIIBCgKCAQEA29ozwyaMVO1axLNA8ycJbYQfDoaT9tCGpyppBgSueueo0YcGwuom0TeP7n8GC6Q28r1dKEmk4hla5UVKzj6sjkhuPtkTMKtYhId2O4Fy5G6k/w7bj/YZalnwtuVBqOWYLETefkiCcKsChJcBWMkN40/nw5SwmkCmaJz1fBmtOivOPlLc1NeNKOYDdQunwx20b1WA8UPasYD9TIL1vyitJ4l1A6mIRaiACo8NUHcjWO7ocppXqaIrlmhrYybCpRPZChbE45/KG9kJ4EzvE8YJIT/F7hTvuOVsoPZDKK43FYdKDHcinU/sL7GtrLTbGws8caSQkS5jMw9o7IUg8NeTawIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.5ojcw3ym5ilufjsim14cbcpkab.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20184.003","name":"0.9.20184.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6c3cc24-c5a8-4fd5-adc3-fcbeeb6f89b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20184.003","status":"Disconnected","lastStatusChange":"2020-07-02T17:48:16.0109701","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az599"},"vmId":"08bc6d83-ae60-4b58-ba9a-a7d8a819d0c1","vmUuid":"3EA049E6-A895-E54A-AA63-D61BD6D28CFC","clientPublicKey":"MIIBCgKCAQEArhAxbDkFOoIdvGo7dPrqYbS2vFYtI7V8DbbiZjwRk4PZWgX1JeTLRP8CrOYMR1L1DamCtHs4r/UzTWybjLe8z+MHcFQIx8/06pNUwKFCQF4ErtMHNDNLSBhaKXOwjNRdegkKW/wMpvlli7PP1CCL7B/nwkxHC5duWosnW8DJr8i/LFXS6c1eb98Sstt4YMksA944XOi0Zb9Ty+8uv9Bu2eIFRNdaXrqG/D+sP1BI7J7VK68B5NLXPS4HAYJAlHjtwDMKOcEVsv4sfyshXsqoV1PWpzQRXkH44SW6VUTZWnhtATYEr1SQyluFcwbbaHg/7NhoTDzTAz1t6+sCDNAe5wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.2ledehzeahbele1glp4kl2cd1g.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20184.004","name":"0.9.20184.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5b2c2b48-daaa-4150-9ef9-0aee11d4e8a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20184.004","status":"Disconnected","lastStatusChange":"2020-07-02T18:12:31.013066","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az506"},"vmId":"8ae6c129-65ba-4ead-8ee3-e5cfefff0eda","vmUuid":"115D2A96-17E7-384B-8A53-AC9EBFA316CB","clientPublicKey":"MIIBCgKCAQEAsxcCp+0R87zfQEdq9WfWfSNrRu8LrqGGihuhvOL87TjW4O7+kMcLE0hqHsdn5z3P2KUE+Q9Ao2Las51XtkMAjoP8nERV9dMRez+imjR0RTz80WPACAd/3rozKFFgRd91ys7NZVGf7xUvWEcW9JburUu+P8cD84QO3pbhTuhezj8wjwlmnKovy40+H06zLMv2x7oI1c0XpSOe0dqfYFLSi4DpdkKCynH75nef0WsRvJXMrdPTzTqPEjxdoEeXxeenn2p5t2hd7nGXdQ2huh6t0iObnku8e4K6Cf/Mz3LrC3nbKzi4IeJ+LSWR1fm8ap4W5nixsVxog5BxBDD0L/PLXQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az506.vqgg0dttccoutdojecgv4izhhd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.001_RHEL7","name":"0.9.20185.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0c153a4a-1017-4eb4-adab-180bc3eec61b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.001","status":"Disconnected","lastStatusChange":"2020-07-03T01:03:30.7270388","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"014468ca-a336-44df-9a29-b23b7836b7ba","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAycthAsOpoz6Hqrh4t+mDIk43EK6zGjD+pvjPqKGTM2k9YIkLRDSdhrbKtdb0XEB5OV0X61tGWA/cd7ZhGapTBSYB6Etv/TBXN+mQJL1MATUOb5kRnBdxcIJ5fJ2IB6K/voYTFVkkUlsxfPq5X24W8cVAoaMDkeYJtyGXDKuALJJbY1D/MXB00I/SRcVezd5RdcbFPIPLVnmci6dp1Z6T4j5w6g2oqVlpvY4k6ua52+qtvZpPKX5vv0DBMQZ9hshHGB5FHG3sMWtNxNRccCozKgvqbIjh85H1YrJv7LC8fBFItMFU9UThUDwhU212FBGQwmVSR6Ui7pDP1jL5J0O/1wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.001_SLES15","name":"0.9.20185.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddb08f15-672b-41d6-a6a9-22620215cba1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.001","status":"Disconnected","lastStatusChange":"2020-07-03T01:08:40.7213192","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"51508edf-a1be-4442-aa5f-d36d20c135d5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtSIs9h3sUmM4NL4r5d3zqFqQG5AUCPUqoZwcKBM8E2El7xNPU6iQ3CFlbM5CkI6Vfdrpk2J6aUeP33sWgnDghwP8XYM8I9K33L8tbNlNYM6RFTT/EZ4x6kSmfbkc9LYYZn1qfAKU3AgpiMADGg70fioUd4WumyBOMj5p1ZyTI0kA9f73sF4MdEESxUQrknyd8pb52sT7UUWQsIn5enuayH1ioF3+pRc35kNHtkWOcaVtco4d8J+dKRnGf0+OXhUjMOXg1BZHf4X8iMJjM0oodkz1DC1akLOCu/uh9+eZoSF5fbTXRevzcnSpMSiQDEOXwREAIYizgi9HvC+4F9babwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.001_AMAZON2","name":"0.9.20185.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec96f63a-f23c-4720-8684-9944560898eb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.001","status":"Disconnected","lastStatusChange":"2020-07-03T00:59:19.7388674","errorDetails":[],"displayName":"ip-172-31-15-69.us-east-2.compute.internal","machineFqdn":"ip-172-31-15-69.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.173-137.229.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-15-69.us-east-2.compute.internal"},"vmId":"cd9c8c75-e237-4687-a85b-34d96cecc41c","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxhYdGa91sE/orLAqjK072u01eJELbn+1Bi20mveWnTe53HAhSjHOKu1XT7+GJBjEfaCU/dnCbegCPNOLnBk2rd8kuq9rEVPplDlB+ixYcdSCj5R6R/z4uFG2/VQ4av/zo4u1kVPpoQasvJY7CGxXQXcJmBwxC41FWKHLTe2KJR1GE4vMQVIezbpP9Q1yoSUA6rg8ZBPWf9VwyF8zz+6mO0lXWkPFmo6TJYzJ0Rs0wIobA7zqvHeK2d6z7PNQnJ2T/2PvVy37WxN//n+s6Zh8gqq+7OYA5PM7ccOlugL48eQ3KIKC/OFItmr2omNcdQWi0+yWaHhaORS7dk2/auEq+wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-15-69.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.002_SLES15","name":"0.9.20185.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ac7d7e0-ae95-4dd4-ba59-063794ee904c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.002","status":"Disconnected","lastStatusChange":"2020-07-03T02:37:20.7333324","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d7558fb5-5f6d-4611-a205-08103b7cc2b0","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwoI9YnivUwNGpaP0BiNz951y0NuJbGtFtrGxKt5s9+kuQxvcW/xqAqchpCNaV1C8vgvM78jwksP30OVi7vEF0oIr0QtxvDEt4k+gL6skjFg74ryIDRdv5mBsgiS63G5zksSl1owu1PiqWn/Zq1DiUsc5N87HVQkKXXqT5hEV2n8XHKmaxAHSlkg0erexke+dTjGqGCNcE1QrYe7koLxLKocgHwUDOshqnoOG6/ieG3d7kOM9z5u28BBkLGyLyGcaySv2gWh7FIbuxB3+NY8xJ3r/uFcdzfm5MdQaRaXxwI6H7KPdxInGzK/ql//T6/3F4istTlUZCmtcvM/VwsxwlwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-19uk6a_e2etest","name":"George2-Win12-19uk6a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddb74130-7253-4b0a-9a69-1fda5ed90d38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"a27348fd-c761-495a-bac1-f49002b11200","clientPublicKey":"MIIBCgKCAQEAvZKUmhHJMhbGmhm/BJvSEdQirtDBq44fp9F2UghmZcnkMb0BzS5UixYCu/Z+dFJBG3z89dRffz+xgN4dZ/Pb7f95VAXryuBrx91M8A2KcP9ohv0ZzBjOVTf9zKzKehH4om0QXIwjlG5awz8RKvNHuvAQ/TlWGNWo9GmbCR1OQiMm3jXQNUnrTXy/6e/M73imq2vB8AGfjAmyhn/Vw6dv97DpO4RW+QWOuSS9Y1BCX2fdIUXr5QhSnBjS51dyvEeslywfQ7Pdm6CsreROlGeRVYBOIOSeUogE6Q5v7wMRtn/yGsYO0qXdj6t2cnr5Y9alA+N/7xhZZv3zLr1s5fIynwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/gwf2","name":"gwf2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d719b5df-a65e-4864-8e87-28243b741019","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.0.0","status":"Disconnected","lastStatusChange":"2020-07-08T22:19:09.0776908","errorDetails":[],"displayName":"george-ubuntu18","machineFqdn":"george-ubuntu18","osName":"linux","osVersion":"5.4.0-33-generic","osProfile":{"computerName":"george-ubuntu18"},"vmId":"6db3a498-7acf-4d22-93e6-5dcb8c237b2d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA8O2DIKdADDtFMz28Zy0lbApk2gmM4yNV+ZKY3yNjx/JElQnVyiIPAlQDc6vooItIpgfktSVEgck2JO5vKRHYAg0EOeZTXXptG06wlMNq4RkSANF3P/i4/oM3aAUIDPmvbQm5bIht7zKeXthKTtOaIbtNwX48JVGA2yj0Vp5QyUnQcWxayi5FfMTHkj/eVCyOrxPtR5q7XJbw9FSJ92zXSgsiTRd4GK81tAlr7ggBY7dfxmV292tzBORbu8EMCKVwfFzKNZmW0xtuGvDSXEBuO2DeSZNajRXcB/JHudpEEQxu8PZvohsS6tWPpVLMjbj17Wo7hcoHjjiI9QiK3rOCHwIDAQAB","osSku":"Ubuntu + 20.04 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"george-ubuntu18.guest.corp.microsoft.com"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20198.002_SLES15","name":"0.10.20198.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8739aa7-596f-41f5-9cf4-65f8ab55ad18","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20198.002","status":"Disconnected","lastStatusChange":"2020-07-16T18:20:59.4913227","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f679c5fc-a7d7-4e49-818c-745526519f87","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAy/R7Erdwr/V2z4OHC0VJ8xfinsxhMU/ur5bZ4dqpPbSwkSU4JEPYdG0Iu1NP3v80OT0G+I5Vu2ZfCfA03kT+wTqu/48zfcsVqEzWkdbYfVdTaTqW7gHnATHcy79R1vWZaPVxV0kU6LCHoKOFwNNwmV1SXKGFLunPHPwXIYFZkUAlx5nPb41olxaaWj5XATV5AM6DFkO/qufO0zyPhFwzn+snOEDPSQaPZw7KZB0ycSFGuSKQMYuENxlu3kR3gOn317uoOGTIyOwjC957i8MMjpg2iJPsCCrrMwGWMoPPOiHzG3TN2XVm6zk9Pokny6Q6F5kz2Wjb0qgW+Sp7YEKenwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20198.002_AMAZON2","name":"0.10.20198.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cc3a2d7a-592d-45bf-9ecc-11bb3695f784","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"63407692-a90d-4c0f-958b-fda0164da564","clientPublicKey":"MIIBCgKCAQEAvThrkmmKqcVTxPgOyd3lysyb7jmSU1rO7bmAhZbJRiT7mD/QbBwcpjOQZUwZRk7TB/NV0cwHTd+EQbXC3Z2+PDc5aeZJJvPlwAETsZJ1+hnwF4xpgFK8Ayb77Mlo6YDsXawzOl/fvYjQO+dqZmHiBaBXqYWy4o5MD1c/4tRXeCsOtQDha3ftB8ihlbgg+YDi93ZYwv2FUmIIgaqpR5gFZD59PDK3LwqCGp//WYhpTyRoK1dwhC4AoVBViqP1Ta/YYuPj3yEu6kwMKueoYyXaxo2+9p3v8l6YgM+fX8R1SE3qSSkxUVgobR9fqCHq1UgQdjCpZ9WTpGxYrCtkvi1mPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20198.002_RHEL7","name":"0.10.20198.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39ea9b96-9f6a-4b33-8128-1dcb148ba62c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"2a27dbe5-9439-4342-a9b6-cf560033aa01","clientPublicKey":"MIIBCgKCAQEA5FP7eXEuOxhovd/Lnon1GpWOpxr1kPmuZrUWbIqXaQqKs1HcOri6k2LaMV42VL9eoP0IajxWxFz0erI6ww9SK5JOJCoX3AZeVhrNujkLT9/qfaE7mfNwDCMd/gYMy21Tm6dQFs8KGagn5nykPGeyo04J2rIr1e+CZ969KjcIgfEUQQY6Dz743PLoI0dyaF2Knotv1+zpjfU35NLACBorF5mdjz3eav1BjSJh3/9rDf1lkJeUvMv0M/1S/ILVLZmUPNWA7KDtD9nm30engGch/C1myYvdLahPchYu3ruGVTTzIA4oYOA1CQK7SShpyjbkwC1x3Whr22B7d+cqzwENIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/d3f1b97f-ebc2-47ce-88cc-cde1870a460a","name":"d3f1b97f-ebc2-47ce-88cc-cde1870a460a","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b72f188a-e8ea-43d7-a87c-35bde1bfd1d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"c2186265-757c-4747-8894-b9b771738ffe","clientPublicKey":"MIIBCgKCAQEAu098ET53DynMDsoVHrtCfF4/zEIZknGpbj3s8qXDn3wd1QdH76tg1BEfHZ1ht3mxjbXidvxYqbj6XM77qT9J1G86CHqLsmP+st4RmEUhvm4KqZ6cKDB+zTqEdNUFh7cWFkzY25QSdoe1RSDwFl1KKUjPywJ8kuizZhehMnmcw6iMNPWSkvdQ8NFlECiVhWTkE1/WK4ta9g3foTV2tH7l1ay2ABd7Dr+/UdkrT/sUzzyyBVeWKkM4T6c2imijiq60mueLqg8cBWcLeua2qPFevBsgpc5Tq05zzmUyQaMzUbH+16kbxw2cJ91m3Hfy544FvSTpr5kev1aW6ZE0qlP3UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/72236bea-9bd7-4cd3-a7f3-8ecd651ec25d","name":"72236bea-9bd7-4cd3-a7f3-8ecd651ec25d","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d1f7e660-8a67-4e6b-916a-f594b1a62bd7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"e56529e1-5ab1-434d-a424-38370c08453b","clientPublicKey":"MIIBCgKCAQEAv7c1hAztN0TAfCz/daCU9nY/KiTp/bC5MTcSr2fEJtDp+XIgoY03u+FWquMqqtCdzgn4vUbPcCYJH/6mY/AAuOAVnWoAIOEqfMe2/IYaR48qmJHdQgrfFF/LAEkP9UtpgzkEHJRd9re3Zo/GFCseWZVPdZtWg4tnTXyhnDjMUNpPsdzkWBnB7GD+lyNryburPSyN6HZU8gXjYcA6aaOiSbRYHvROBmz7K+rXJNJu8XUwtzhKHyHHqO4ZpNyqYWwyCmmXWDtehbtorfiGvGEay58N4qk02s5kE2fdlGG0J/iDFkY2rSImhttuR2ktPHe327rtBUzL9V/+hu/KNh5MaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/7789dd24-9f9b-4364-b589-5806e1233f70","name":"7789dd24-9f9b-4364-b589-5806e1233f70","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"49a02d06-2414-4781-b481-69fba98749aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"d9e17ac3-52a2-47b2-b2e6-e80596624a84","clientPublicKey":"MIIBCgKCAQEA6I4cFhOkobnC3mJHZQ2iKkazKZ5vb7mWu0L8vIGNMamR4gtnW83WtubCuwaG0r0fCcjoISTMjRzJ9iqcFNnjHNhBam46gURzG7I3dm8Sk9ZUgLjwMg3y/+BGbqwa7rJ8xkxHdXMYdBQWKSJhfQmTJ8HqtkL+oPs/qEoG2V+MrdvZH0/GR3ogfrIWjFVTCsB6xjda0Rn/qe84DAg8ZEcJtFrAd4NiuxwQ2IqF260hIYzBLuPI6rgv/NIgdcmL5L8kds8tB+da0Eofuwa8nEMnnyGCAEYYkFYfZ2AXgPi9TrWVmSoIMFUtVfQZ3g0zu3mcV/ztXO/i3g3r25LzZpfT5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/151b4449-b67f-4b33-84b6-1954d9a782d9","name":"151b4449-b67f-4b33-84b6-1954d9a782d9","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c83505ce-3759-4e6d-b808-0795a2ac2bd2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"e8cf829f-a7b0-49da-90b4-27785ce75a60","clientPublicKey":"MIIBCgKCAQEAzzrzATtgq75aS1SnpcxShkE0+tRpyCXp5Am1xVADycotyKupWyLUYfWqnO3n0E5HEHtUE0PVj50TMNHaxofXjnMbdEYQLfnjyq6ft/kmzR7Raeez0nwK8t9D1gK5hnXygp9HMxV9SqF7y7QcZP8w2MZl7QeKH22chUeOiliZI7H/cQJZpvaUG5jxQBxf+wQU7jRWHlDeUaAwk7q1TC2uDK1sWIPUM/T5BnMPK2eDWarssoOE41RGDOlFX+I6FUzslNLUowyjmCX+VKRoJGmKtoJBC12DEchbBwQR473Ck8UcuuWGvfc7JWoLVJZmMl/mvm+CRDDsiX09nSo7i8W8JwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ccba2389-043e-4d8f-b353-fdce88a91783","name":"ccba2389-043e-4d8f-b353-fdce88a91783","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"71846523-02c9-4268-8e49-6447e257dd58","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"e9be826f-de66-4675-8a75-dff32e03587d","clientPublicKey":"MIIBCgKCAQEApA3GXgLg7Bw8fEXWtG2tI2g0alRBx+BvhEEC9v/8/fc7Tjpvxk7CQZNGGsGK0Egax1r1pipw5bSM9pmoQB8l8n7vkmLLUodCOIhzSJ3PQc6j+5qCLf+QdrJIv6ZzM4lFyW1CyAuSlhTs75NtJPnssVaqrho44eyGCZqBWAFTw8qwHZYTREWJuiTfKNkQH5IIyUwAMRccsim86TD00zU308cv7lrivmus+SSGIYgjohIbIeQtAsKIxSaL4XCKY/FPetVq9LelQrI/7xl1OVQ0JvqoQP6EHYRKgD429HkC/+7zv3wb2DtA0VidkU7xbYluY2Yk3fmmENP4POStZgS9pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/9aaec2f3-e1a8-4599-8bd3-67b250479c96","name":"9aaec2f3-e1a8-4599-8bd3-67b250479c96","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"848dd201-ab37-43ae-a101-8061a192de14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"f0d1776e-aab2-4c6d-b107-6518d9b3d4ba","clientPublicKey":"MIIBCgKCAQEAvcqmZ7DgqF9by/HbpJQSdB6Kti6S3LNbfp39XuAruUu7nFSM5+UsgsW31JeY3p9uHCh03rCD1ayzjYrmPfhkRxbugWo7O0PNkR3pMgG9GpOt+hWH4YVXAsE9+nN3cTYpi0mb56/8AoiJn3HgHbBF0tspX2kict00dl0jO7V3S00yntR6JSY3B94Vs+csP4CLwyo7AxoPiSUMO2k4HiTnj/cZWu37z5BJVEsdq8FHHYUweU1Z7f9rz6abI1waX5Dz5eglM9PJv7yu2Gk7OIH0oOrYE4ZIWAlMC9DhQmyN/cDWrkIbPetOSI7ODlI9MQB4zGeWU9ilztGHUIadJu9b7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/dd3ccfd1-320b-46d6-9cad-1c2015652528","name":"dd3ccfd1-320b-46d6-9cad-1c2015652528","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"065545e4-83ac-4d4f-a32f-7e345344a188","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"61ce41dc-bdd0-48d7-936e-017073f0c679","clientPublicKey":"MIIBCgKCAQEAxQdFB0O8kk/21QlrwAGUSNrQ60WCUaIasiGfkOHtSPT66mWY0ciw7riYSfU1WVqNR9YJbBZNUaoDSbXUIxlbonl7WovMX/2yFCINaeLxMurpfCpBWLEMXkby7WlbJlbZLLanMua7cyKkox2LATU8F9vcPTCX1k2P25vUThOo5/AenSjywDXr4jrDeN56JtkzAG2e1KsRfARBOVL3qkwgfEtLKQwWcNNQth/A/43mDEZGOTFfuEJs6al0pB4bL4F9orRlIF7xU8qH8CW/FVAT4MDMU/i7veKtLwWoEuHcnvf6uTKG7z49AeVW7ZyqkbsuXdy0ujLO2FzL9DrX9arJSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/da0e966c-e82e-4b35-ae16-2e32a0d161a4","name":"da0e966c-e82e-4b35-ae16-2e32a0d161a4","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63fdf2eb-712e-4fb6-9f66-e43cef5fcd70","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"ceda9340-0e80-476d-8d16-46dfe1d9624b","clientPublicKey":"MIIBCgKCAQEAvi722JDGogW5CB3NZPINjUEqIbPw1cDZrUOFSEcggv382NZfu+e91GCIlXrgUyH2m6bDBiu4g11gWBvDVGK7Zx0GQFE/Q2+4xyQ2+D2pStjtevLtN3nEHuEc1ORvx6tUxz+Wz5y40Mh0CmGDx6ZcFm/Jc47g5CKHDpBpcXC16VQOoWeihPn/s8ZuRJ5bcBLVW/gGO66rF0YsEapJoyGad2CdH9hZrzLSqPSAofpVHAa2QCI2joOGg5U1ZrpOuP50YKFbMXIbNApTTWFTSN2LWMrtPW3Lb4K2I9ldWN1d0GrNH4X/RfElTgdOONZ7gNOm8cKpERLOwNrXKf6nJpm3BwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-15-69.us-east-2.compute.internaab7yi_e2etest","name":"ip-172-31-15-69.us-east-2.compute.internaab7yi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6b7f6aa5-9808-434f-b95c-a0757ee1c920","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"7edfcbb9-0248-4eef-961c-074fe60ec297","clientPublicKey":"MIIBCgKCAQEA1Xm4vGXZ180VRljx2IRpolRXRedsW7snLMbbyFbQPYmSdQocTymd5DkW/4+Lsz0WPz2j1nLgiDSj0ijpw9oAvM9Aw507dvoL59chAoQPfWUI9GuhGj+mwhCy9/NhdE9gHqfLFYHIn+AmOsX4CyefpJTI2fmpUITmIhq2TXufiuoetqtH5QhfaMXef7ewORhWr5qcJsGMWHW1VuFdkfD/FXXj9ppSSJ0EzlIwhDQmyocWFNEc/SEetQ+GkEU6GTgwlkzDstxW03SAzKChexXPxEgm0aLcg7XAxX+o4JPRsjzhoKGImTwRCe80lvZ4OZs2r1FmGaof6wr5MCvovQtS9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ad0a279c-c4e5-4b8d-99a2-94ee6bdf1efa","name":"ad0a279c-c4e5-4b8d-99a2-94ee6bdf1efa","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4fa2a3a8-d874-4144-963e-c527468507cb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"dc4ecc0d-f67d-4dc8-b438-a6502270f2f5","clientPublicKey":"MIIBCgKCAQEAsj/ZCz7Rr/uTajV4Ix6aE+mZmSP8IJrHOGN6CEwKdXnj9momg/Av4VftrqoAKyAs0Oj1yCD+7jzUGKQLgYNAzc+UT4ASTmgt0cf/lVWgUOD7Osz3ZgcfcnoRKRSLAykihlL82eO6FSvN1rGFu0tPBnZoNOfTWHCKy3MJw+NjP/NBq3MkCeFohIu+w+1y6s2MoslhqTuKjZ26hy6KhRKF/2PLOSNi/fRPMTupVzCNmgIYG95cYdBtHG5jQcOKQIOZWEr6JecdeiV9rxr8SjaNiDY//2iTJ6/sL815nwZAbJeer7NlHwgcJrE1V2V+3dyVAVkdo4MFYLoZkzvfrwYB9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1ipzxb_e2etest","name":"George2-Cent7-1ipzxb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec91d3fa-925b-4a2e-ae7e-095cec0abbe0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20216.001","status":"Disconnected","lastStatusChange":"2020-08-03T17:23:12.4893705","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f7823708-aa1b-4f5b-a6f2-e5af8493dc55","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA3C6UEV3k9gKExCGgHc781MRnC/2se3QyGtZN26WcDUIZSVme/RO6kbzywgDeGWKb6W/k950BL7noAFb82d2nWF70y/Rx0V6taZAjrO5kG2te26ki8F/OKR5hzhtzMDlMzWdQ7W/DgV2lo30LvSqLCyRZJqoCh36lS7FD6n3WrsAGcDWkRvcSIfgtHaHkbDqURkjXQ7hGpNFSmZeDXIWM/b/MU7Z0KpYkqMrClzyiKzuueRvxtrd4HJ9rn47JdfkoaYie9DZcWF/caVtvmF7Uf3KJB7WAtM8qQLnJ4Q4o58w3Pc6XbLbF5WiZ5kvzd/n8Lt60dKwrd4aRRfl/pgXQcQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/2a90c01c-875f-4c70-9a9f-3044ff3d4fde","name":"2a90c01c-875f-4c70-9a9f-3044ff3d4fde","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d2498121-0f44-4c53-80c3-3e9abb06754b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"c975440c-90f4-4da5-8006-3e8c697c70d0","clientPublicKey":"MIIBCgKCAQEAsQM6jVmgYOe2/Jf6ezhAFS0i85UySmEwMvcw/1EC365CqawoSwUbZHW6VDhZ/hjo2DAlDkKE4K4kk1DLMznqWg1nhpipuka6R7ycZMtaT5WMCwr1aHELuSQLhreAkxGMH9dYUKKXSl+DIoCCuRwZUTi3uSO4TU3UahAPtriQuVOhKo6YPBPrjfBdTuteNGCrLCMHYrT082r7mlrq4hmRV2h2ifDN8aLCPCOEQfd3ReniRT3gSgVveLyZxs3ythoKzrjtugncT/zl2/fTxI3p3eSGR9a1C3KLeD5/Wo4O3PgOVR8X4D2s7jBL65Ba+QxNbTnLVxy1k8Y8xImDtgZOLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/34689ca3-6b8c-4c55-a967-28307b02528f","name":"34689ca3-6b8c-4c55-a967-28307b02528f","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ba93b0c3-024d-4095-9f99-0d87bc889a5c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"84b508e8-be57-43c0-a882-c84752f04c71","clientPublicKey":"MIIBCgKCAQEAlK0jmQcvuhS9NLmaY2Xm90uXbnNT+kFaO1MD5irnVQTpoP7nsc1gy+0D7K82EOJwOeAViUTNN+5XZuMLygGuHeQX+OKJ2HBnzuSGJu72RlrPlk2rtj885FC9VVNMJj6zkIYO+rQRS5nMfwbFygnUt9dE5sDxjxfjJlrXKmul9gTJGE5lcKkpxZKNSUHN0RVufbA1JQ+f9gruCf911PVnS9myl6fGy6DKmOHJiEgIHaVHtEdedqGFYfNoc3ffxFVVjubEcIrNhv8/+A2CzUz+1B8BFygfhi9wjHSYQKtmFgUKKzJQ5+B+HGL/xbTkrDrfZPWjNIq2IBR88OepA5tHRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/a86c5353-78ec-4f56-b9ca-c031ac250702","name":"a86c5353-78ec-4f56-b9ca-c031ac250702","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99688550-b755-48cf-8b63-d85fc60f3d38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"57f55a53-e9cc-4cbf-92ab-99650e537611","clientPublicKey":"MIIBCgKCAQEA07sRT62L14732APUAkRTWNqPYaTAK2aDaNxPOIr0nLHkU+eWzVOfFX6KyeG6RIrhZG7DdZaSCTZQ5EplukO+t9AtTpIfNmFfzcV7GeDL5Fp6l+7N3ogCP8SnLdExqTEs3G/1R9B4ECkRwUQGmZQN66X57uh9Jwesydc+6itCx85uH52kDsn2dz9hv3A/xEI5iKaj6vMO4LbP7cyoXQJHds4UrmF1LbxwjAbt0J5VfGukPnc//bAjzNh0FHImn7xbI5pRLkiFvI2vIPoGDw9VXcYVLbdW8k/u1nLFBPD0os2fbzKkKQEyayHdgHXfw+GMoA31KguQkMTlFa5FiG/dnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/523900e9-6faf-4fbd-bd51-300023b09fd1","name":"523900e9-6faf-4fbd-bd51-300023b09fd1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"280a5dba-5b13-4107-b370-3969ab8ed273","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"b7c93cf0-d79b-4a25-bac3-c392b722ef5d","clientPublicKey":"MIIBCgKCAQEAvOgN9b50e/2TxS3TuVqImbVSIJ83Z0YZImTPnS4DrvycFCQA5HWxt47Yht61Y+gZMtCQC4vXqxWwn08vcBXMPz9/WFZfCWK/URUsloB2ClpYHwG+Xh1GL38rNS0drBgmrqa04VjtyyCdaxVzEDHZX7rUOCxEKgfc9azE+AlIUUDfo0cNPQCxO59/pF+vmhI1KbQEqG7B2LS6DUEWOKcR4k5n8LLsS046rGxHfMbzC27UHa2FtJIWj8Kqt+9tKK5VpePYSqT96u1NfAhNwpQcDgONQvsB67BCC+1PjJ/SWS9ivqoEErwIhAXp8+k3WcsOCBwpiZ0HifYLuU61gqoDnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/bf0fa768-949a-49c3-bec9-608c968929be","name":"bf0fa768-949a-49c3-bec9-608c968929be","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"533f7336-54cf-4a4e-9120-e2e22edbb478","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"d12660d4-3923-4792-bef0-c57173fd062d","clientPublicKey":"MIIBCgKCAQEAnDF/KNpiGe4xEcs0KbS0IKR737ssA0nrnSO/WBjiwwmVU9FTqt2QDgFit5TNPIuu82ujVLMtmjCZIa19idUVrZkTtiWAT+B8c5Cw4qqBh4p9UxdmunmWTL6awySwxnfXO4D/IK5l3TZZf9D9lHUY31+g7TfzXqr8363XY5spMhDBDcoro8x/gP/GsyNLEIGtBEOcjbGc5ZYhbot4RzKI7NOXlksokc9gKtFWBg/2FIo61I3Px5H7eBTUbgRLJcrOPOZIZR6uBMxfMeSuSEYz1djaXSUm0+gcaT4VxgqLpHqRJK0HHFqj0MhYXZ7+lTeneVZNxw5mbGkQHLWRF1UV+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/cab0a77d-8515-4e4b-aa31-5de781ef1912","name":"cab0a77d-8515-4e4b-aa31-5de781ef1912","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"42dbe497-462e-48c4-a263-80db0e2a9174","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"87ad4b65-59e7-4ffd-a5ce-5cfd3c1083ed","clientPublicKey":"MIIBCgKCAQEAx758SGM6YewLN1F1TDWBnpFpCFOCoJFgUyQvqDMxKHRwa7K/VAJ5wVebV+ik6O3wU9hX9efyqtLwv9pzZldzt9A8aVKm9tst6itkowz6gOH3qnH0Ovj9H3wyIU8LRgTNrBOTFcVl9stlSlKoAKumIJDCk5CgBK7qc3LrB7cR3a4AO1pq7Y5LxKfK3psbp+iSFek4R+SVQFpOAwVCEqR8SmwIPFcrdM8Fgr+LhvZWgRdEq0cBqzUx4DUaZEcsno4TGDulphea7k2DbVj9PEjPjBQBc6g9RkAm8yep3BeqJmPwm1I020gvDNgOh04lOdEiUHCv2mOpaEPXk7qMdbqEBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fe896c3f-e32b-4b1e-ac6c-a2d5965c0237","name":"fe896c3f-e32b-4b1e-ac6c-a2d5965c0237","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bcf4d60b-fa9f-4d8c-8dba-d6b70034ae5e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"760a0511-3cfb-462b-a120-13871760f413","clientPublicKey":"MIIBCgKCAQEAvNdUD3nddcgnrwLcLEQSceh/hTjXwzcwlVg5yBDSlXLsBw3h59DK3AwOjOcTQ3AwxPpZQotxGal2fS6xIXf3ptMqgPKwptDUBLKnhKcAyAOK+XxsxdTgPaqjja4yT3+tWpG2+Fd2Zq5TDmYH/HTCZDbf+D1Ro/SYA1/5WIpgS3fMdjVYWPsMuCJORpF+cqCdIiO9P7/LgVqWDI89NhJnZfDXhf2WiscHVzxj2BpM6x2LVf9k5weRMKQF06NAnXfvXJ7cx558M6x66Az9LWyO83ZOpYfnPTkqYwCuegPhI0/bp3313F3kswBzUegDZ+ezQXtAoNU2nQXQerLTi2CFFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/cd65252d-4314-49f9-b609-cf2466d77bbd","name":"cd65252d-4314-49f9-b609-cf2466d77bbd","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b4affe86-dba8-4519-8efb-f1b7227e5113","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"dcdc7281-6a24-4014-bae7-4732772f8093","clientPublicKey":"MIIBCgKCAQEAwd/aoqQ3a3XxA4wJAYTbc5BGDpFG5DvHL6vv7ezDhf8ZSUuyFzD3k3J/AUZWkjoRX1Eg6elWRZXlr0D9HZR2UGWKjUsND66Fc3M2PzSpoXAUKPN5rPgXFfRrI2vEJldLlmplVcxkwkqASK1+mygK9CboV+j+7IWNojaY5kSly4e3MVU4Hztncxy9b1PUotLgwjL2rWAYcENXTY69K8ykDHdgyIi8QxOEhOPO6qq6V6gtXk6ef7OMsmg6i+gamE0SZbEG9LxuuQ2ykMsA15uujadZ5jS5tNldUuwsWX+jeHpqkCDyt1q0HCYiNwHU/RfcLCDvcJrigXH5Is0/yrLwHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0c632630-2a72-4a5f-b6b0-1307ad433c57","name":"0c632630-2a72-4a5f-b6b0-1307ad433c57","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fcbc985d-96b5-4708-b268-45adcea3e7c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"2c6f7147-34cc-4681-a669-3662817f8923","clientPublicKey":"MIIBCgKCAQEAoyvgEtykcJjn2yHFYPWAm+aYzO7gQCF5Oog8c61WqA/Rf9r9+1F3EoijV8/MAEcpVPR1ROfE8s3YfMxhdsa2Uoitlw5UYdittzE8fq7JxHmXPDK7lb/VIfY5KAA2tDs8qTOSEu+Ec7OknN7yl5QtKNE2EJye+eWCuKilJEKetBflzsCLTUYhZg3eFDm3R5zG8ftCgYiHCd5llARQi/OBygi9cCv/KNjBSKgXuemXWYaHcxXIT2noaL1K409CX4cKfw0eUHyDxxk1LNbjbff7/IQAVbF7oV+GI4IjMYfqzvtz6LdVNgsNsAeYk/lSfurxUhzqHxqjHxxTpnM5hUPl7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599gv3du_e2etest","name":"fv-az599gv3du_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"20015249-1b43-4ddc-bdbe-9eabbe5c8291","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20216.003","status":"Disconnected","lastStatusChange":"2020-08-03T18:24:46.5374311","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1091-azure","osProfile":{"computerName":"fv-az599"},"vmId":"cd370cef-75ae-4c14-8eb8-dcf61a930a4d","vmUuid":"6FEBCF1E-4C81-1947-979D-1B02B755312B","clientPublicKey":"MIIBCgKCAQEAyK+WSba05zetbh+8yc66MvMDW3EY10oU56dFOufjrWJMvvwQV1H3ihWdP0ZHyXtl6++Ad5xiMZyGyBkaRtc18VPkA0hOXtRLap4fxzl0pTqUpdTGQQNThO9wsCfrNPDpbpibZaM2SGQy+CM24VOlH/9CRYq/r9IyvpuS1I1DtkOMh/q7golW3E5nlbE3pTtLYxt7G9pSBC08o1nd2KfIKanuiB5Z8jDn61A0PlKX09pHtlj69Kl40T3lBP4JP6QMYpj44rQFh3gnug5Wm7aP/Yyu+uQfqn4oyCtDnFe/NCxmP5pd4ETaOHnEIa0TLJSIWKpkNO2YfIAluirDwxgkHwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.airydkjhyxte5j5rmihydofhkf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/d5737846-684c-4677-bd09-17f6bd6d43e6","name":"d5737846-684c-4677-bd09-17f6bd6d43e6","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"445ad1bc-2688-4494-bdf9-35cef552f758","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"6a4659e0-0ae3-4f03-ab72-d5288e141586","clientPublicKey":"MIIBCgKCAQEA0ke4HVo/wrRIbj4SnIwmn50E1Z0HCIgdoSk3XFLTjSg4l1twegztSoiNs0D77m3e3lbpTHTxkxgrA7PDW3zFRdgNeRJJGgfm+oNvRTjfH/HQz3jKimZHxeht6n1h1A3LPK1y+r0i5c2kwZy6hPM/KLqYtg/u5o9STztMfLco3Eak41pbxTmjmuVBM9mLu+hJ33HDLEYkDK7uBYc0+48r3PQc3VswVuLxvcs1K6LvBCwi8fDRcdPoR8D4euc7TfMX+KYD9XAyfCx44xCnIZunnrwdqw6w2tZ6D7HdpQc6yiVEXqSj9psoNUgbU1sbTYZUGsxaGDI+BrEO8/eGD1LNJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20216.005_CENTOS8","name":"0.10.20216.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c013deee-0be9-4d7a-902c-3302abd348f1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20216.005","status":"Disconnected","lastStatusChange":"2020-08-03T21:47:38.646154","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"35233802-56e7-4f80-b794-30920b9fc659","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAw0PI3TdeLn2zuMFMs8qjmWLt+U9dsLlr9rt4NfWGRTqtHgpaWlTATjQfZn1Hoecz6YVcrHG6RdM8bPjog7vKQdDMGYgu68zIgfqS+f/u7nVMTTX0XsN91lj4t2AfRl5Agm8ReXhfGy/uwtqosV19rwEufy+wWZ6GWiuHtEl2Dt8Nx02YJ6mq+rJ2M1VXmlAi7le2jqPWvnPD53v2eXsQFbgj+IM7mdmVsooIrmCRVjyyJNYJLAy+ljKtlWptjh/hBaYgMLP6loC+VouEh31cOT4a3KzAo1Ox7Qo1BdP9n7gdJTq+XEYxPS2+J12l9jK87ux5oV8LPhcDqFlfTEj2rwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/85459b06-6924-4593-ad37-268a76e64312","name":"85459b06-6924-4593-ad37-268a76e64312","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e25d8ae-54ad-4ec7-a3df-5987a9745675","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"d2ac833a-5c37-4b78-b72d-fc531a879077","clientPublicKey":"MIIBCgKCAQEAlxwtNTf0SwcBIkd36AmRV+AMuxUx0L/24Lon+BqGyfHVHKZwty/P5ItOKedXUn71qv2w/XYyvmx8JXv17IO1v3EV2uWOQeTMmu9LriV6aG1HpUckJG3j4LGu40LAqh13sFxyqUcxKAzU8nyvqgIAtu0xt+jEaSnVvhvPNGTV2Mrq0YHBo5bhd6PFLEchYTnqQuUsllQcMIhV3LylUq9L3yqf72ijMSivcwy5T+i5HV2pOVog8JL5UZfHDnS4uIRzivmgz8xo0PNCuusHJlA0m1W+a9Rmm1Qqmt8nXEWfEIpcXLjEm61DMxATrGx5Amsjkw+dSBy+ExD9lgu4ENNeUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/9674e03c-ec34-4a8f-827f-8fe51cd3b3ab","name":"9674e03c-ec34-4a8f-827f-8fe51cd3b3ab","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c09fe076-d940-42a8-a54a-313600f918bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"76646fed-9d85-4cb2-ac9b-4a417be9ce5f","clientPublicKey":"MIIBCgKCAQEAyXndYqPaHI7MPXpI2KsVBB4xwVJM64qJn7r3ssmKVjjlZwembWvFPOa1Hukc9a+lg9Dp6/5ZVefpxgS47RZI1BLjRu/zS60eYW2JOoAvJp+kZwjeIGrl5c00GL1LPDjUnTXqzidJYb84ArCsogKq8eQK7I5+Th+WWK4ZomxlB4++KYRa2zs46Grkus1ftMYFk9t4t9ZgkZ6rzToe1Y6KkfNmFRLECwy+97hhHJmF7PXR84DgG5wQY8kOUpP47TmdXccdEL8gkRVx2NoTN+wUWScIEHck3Ob1nUXXIJ7KN2AGIjqyd5LUfnNxXYp/0xTQXbaFg0PT2TB3d4fsERY2ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/bc6bc772-9a82-4abc-9c79-12f55d54c19b","name":"bc6bc772-9a82-4abc-9c79-12f55d54c19b","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"835aee7f-c24f-4e72-96ba-7ab0c090171b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"cdbbdb3a-a197-401a-b0fd-7ff2b4dae4c4","clientPublicKey":"MIIBCgKCAQEAx7hNA3/8tgBY3NTPQYk6P4PByLNpwpPcBenERG++Mz1XLxZMQdVH5bX5Pwf0DUedc+uv96mQ0DXjYjaEsjJIvfI4qVNuoXgBB0xdj7w02F4R3PqSIcriclG1Y4v6U0fLGcRY4SRRVrY5g85T7KglyV+bUQKk1x9BysveT8HMAhMVZPNT2DgX+22k9mAq06WlP5Fglyo74V+P5rwfhbg/22r5Kv7IuISG3Elx/6ncH4qx61FRzJwh5Bk3aw3f6qjjwwPNkVS/3J0pCzAcu3m566AuCUAG5FzFoyAf/KxuG24GtD5CqDl5WPG81hTX2lcENb1o6JcGfrfKGTIsXyQIcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/50ed4ba0-361e-4cf2-9c9c-c9ad7baaef4e","name":"50ed4ba0-361e-4cf2-9c9c-c9ad7baaef4e","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"33c29919-c72d-47dd-9e4b-81deff49a3a1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"e2711060-159e-40c5-80a5-e63c312592e7","clientPublicKey":"MIIBCgKCAQEA2suHylM0e4qsFQxLbCD+kyfs3tYHdCHWB2O8OtATkpDu1t+PefjSTb7B6QGPwNZwKxtI2HgTba8CphpEa9C+n74EatVeRYp4Rojn0uNPEQmMuqzoxXJ+YnhSZBiErD3m6WFogp8xfcZXu7mb0IMgxUECRiI3yYJ8yjnTf+WiTWEf3Gj2QoJAm5QRtOExRNqDpeI0WlL5VGJNai9baCgV7N2OviGZzqt94ZJ0uMF7+bmY/Z1vvMqZg2t8HyAZsOs2HDedsP4hsAKckwk52jR4LbFOuUcPFCegLtkUveFcquIFalEUQXvJ+lCLFJhqQKUyjmkNVPBLWBdB9yUiif2QvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20217.002_RHEL7","name":"0.10.20217.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"028d806c-6007-4ec1-a11e-36d8d629ea7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20217.002","status":"Disconnected","lastStatusChange":"2020-08-04T16:29:23.7357023","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"f27f628b-55b0-41d6-88e1-1fe4bcf94260","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAsqsEtYnOlFNgxKzsk37DLABoSHgKdUPQwvQcw7j/g6eHgaXIfktimhHSXnIi9D2LYykLhN9ea4MqsyalEzUzdlvBbIt1DCq+dCzJweUYjHH5omcI0XvtYMPiQrt5zDv1YV+Ha3wC/ZTNdHirvRcf0bfPBIyjom3MzT6xhRSnWHhIf5PwEnCDBLtVyhEltm/6GJw5dGFOI+jQmq6DT7hNL/ZCZSXtgyk+qrtpzHn0BsUw5VPxYtHrhpSFrHgtlk+MnWcTL4124SlPQFqHzgd5bKEkLUkE2AN0mXY5GfpCiGEjf98JzzKcl22y2gvcPg0H4TEKlWdQIsk5qARgYq5PIQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/673d8fd0-f67b-4ac7-b850-a7d513ebc50d","name":"673d8fd0-f67b-4ac7-b850-a7d513ebc50d","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2c11ce44-9124-4e7d-b658-f4686e2902dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"8cae07ab-3c67-42bf-8da8-01dbd043457c","clientPublicKey":"MIIBCgKCAQEAv68jO4kT+PRnr3HkDRnAebrcjwMEglDBClb1MpmF/LcbM6COL1h25MR+tL/k6mE8NpUP5Hb8jWRNMn/uCz0ICqfEuVQ+3eclAruA0JR7LjypJO4rzM+toeaELeh3LtN4kCrgvvchH7cFMkELp2RbOS0g3eHj+XwK7UL3D/NYmDZWQEW8M1QcgZ6D+dIJELfEbIEQVTdYQmpWpXtXNG30zPUaKMU5v2gFiqn/5eYpmffg/OoeaU7R+T1Z3ecFKZJK2udKMJTwT+X2n1kFcrKkUFMCux5yXDCvzrgn0oRCizc0eqZknBRe06y5IaRXYZIj56BmxfeeliOBmlDY9ISB4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/b9482e06-b88e-47fc-82b1-27d2d7b18de7","name":"b9482e06-b88e-47fc-82b1-27d2d7b18de7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a796bf32-d21e-4b18-9a63-82a10dae2c60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"48db57e4-b569-449f-b781-42b4ac177f30","clientPublicKey":"MIIBCgKCAQEAzWFlg020Z2DQtHpTx77ThZxH7jfxMPIb1RiCa9u98wXwYn95B8ad/u+WCbqHx72uY9UvfupgDYd6xM+AjCFzdcxQTPF74P/BxyfKgc8+lEkdu043lJuCG1Pp19lEk4A25W2U1UQo0iVxWBhez7YzJGLq82QlS65DdpHFidv/JnncjvqkbbFtj8Ws6CYauQV7DIgcdyS1jm2DQoo4uCR19xi/w7z3xc5goU4VFiuG0EIHdv3N4YP+omuxZ5dGc3bsqkZq9Jm4FVhYz97XDCjXaMIEs5DcLglS9NzcICfhoi4ckx99lRhfBQi3Xc7zgK/uDRSbVscOyLGWn8EWzEnEeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ad7f6341-24f5-4b91-acba-5c388d9ba622","name":"ad7f6341-24f5-4b91-acba-5c388d9ba622","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d382f3ab-8ad1-4a34-ad40-8b78e52683fc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"588d2e5b-d3db-479f-ad1d-c0fcbcc0f40b","clientPublicKey":"MIIBCgKCAQEAuEeJ+NRmIB3hdFyG8oK2PYSute0argcLzrrJw3b2jcnbckcW90CX879zauxYkMNA5x7LetcEl+u9SeanoH+iJHJ6DVZQcLgZq/t5qws8l5Fl/7Hlkp5AH76MQHcaKWook9t1430V7YAepuu551ZguIRixGOrbbl8l2o1QSHTmSFWAUdx+QlFUqdDeqQnu3nbASxw2pwMlpCHSbf/RtUW5QMY0ZfqmgLsdf8HRB+VSoPJ+TFdHFdn5ynfHI6Yk+ghmgHZCcpjUT4TZ6WwFqDkpH5x/9b/CP6VCzZJV9aI+8OfDpwfPM4W5ee0qjfA3iUQcQp9m8Y3g0VfxJb3ykGB4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-GFI5H3F6T01rel4y_e2etest","name":"WIN-GFI5H3F6T01rel4y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c50f953a-ac0d-47ed-88d3-149a1dbd2521","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"58ab21d8-8051-4822-8473-6f56e093a4e8","clientPublicKey":"MIIBCgKCAQEA2bGyz0BAnHfYF3O7JvdnNVLmLskhl3PnRnaZKHR8x4k2gckIsKvbZGAbtzUiherCB33WQ4CDTSxDYK2KS/64wUwBjDd9UtEDFsUYoZJ0s5aiuXNyXL3KqgmxG2rGzY6BOVpDnfaLYNoFnJfE4VgFJeEE3g2nIg7Rcikl2FBgOtpljs9/2uei99mmpBhPLrm642x8wxBumJSYMm204tUxTAOBzCv83DqTWu/FejAEe0veQYbVQbJIlZ/JFI5Pr3qZgjFpO5md2PTaOZtl9rIk/2KUGIoV4VxkgH6WQVxXP3uE1a1dozXw9bL4RmGpLDH9OF4fn5Zqp51QC/OxxLNtGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-18npal_e2etest","name":"George2-Win12-18npal_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b8e44982-7d66-4083-a36b-3b224881faf7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"ebe42cc1-aad2-4cce-877a-9c0f00dda01f","clientPublicKey":"MIIBCgKCAQEAx1Bd4GmFMoI1of/cZCzhXFyTjUDmExqj2MJL4Q8cjR6mBcQ1l0JRRVSWS6MhfijP7zmxsv2R5NOxnuj2LyMlju8N4LcGG6Px1gEpe+9Wj/xOxWOuBUjJT7a7RptB4ROImn6Zf9sWd1CzeoKao8SwNIBuaPIiKUjgOCZxFdn0fgDOyZ/o/kF1eh4McoX/Pmwft8xBqUr4TYc4QjUGsgQVrVqZKHYZAhk5BHm3/+bAweLyGXCE7bAJ74xRc0QCFmwdafaCUOtFr/HhX65u9Zld/TvFuicCdsGICyE4iodmVqtNSkgzuGmzKuR/mcy7ob7OMtMCgPQLxZC+qFZ1Pi4OwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1afboi_e2etest","name":"George2-Win12-1afboi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"060e38b0-ad5e-4ed5-968d-83514f98f365","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"abacd270-9302-4f8b-a511-52d62dd2dc3d","clientPublicKey":"MIIBCgKCAQEAtQVxdwUddF2RmOQmm6NSPMVPKbKbuqrQJyRTdTMlXDDwfMw41y6GWWv22KoF21bIqEcM0jfFUuIk9Uhvj5Ix+WJ0rs1NhEQHLv1WdDq7d1z5Gjqh5hRaXfU2pNRu5deq3F3obUGyf5iBYiwgWGhrBu1dJLggtwUqEzDTGVn5gfbAwzEmaV0uM4CWumUBV2+Zm8r6HbyMgtROmLzjV2eHDlqSNcyrRen5+Y22BA7ItJR2HqQql4Eptzv+7rg4wqFVLbBe729c9creTepRtYqqIFlTW+CL9y50xApIGMAx/uixyRsA2KbqQErPDNkrOh4hAii9ZbjEzH9BMMtvag6YnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20225.005_CENTOS8","name":"0.10.20225.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"44ef7438-7fe7-41ba-b403-142f58821506","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"14c3a491-941e-4106-8244-dd759d1a29ae","clientPublicKey":"MIIBCgKCAQEAxnjNnfBUJO930jf+JSmskwRbe3nMVoMabI47cmkdLMp9Q5XOe9cixgjm/PgOKsdtN2KJ7EV4ddPWst46JPEW5Ub/N2a2tKNENkW6NZkSodzmqu8MqScTv+m+sSKyNcX9wPSUOta+ls1Z/SB68dqD+JUMe2r1mXIcEjSyvzgzBkheKSkqXanr6DdZYQ4PPNbdzbkO+neong/f5nP44oCWQl4Cd7gbHhoAgu/UUm8IkaPgsctem+oTL/6jnfdaHvC4bypQZTvTuHi1+YZyPo7mf/rHO+c+K06DnfmIqYGeqKkokWjW5I3j4lI2yyDXazKBK2skDQdvUers1cIkl9+9TQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20225.002","name":"0.10.20225.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3821ddf5-6dcb-4b64-af3a-1607d0db856f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"7d5e6311-a5f2-4b42-87bc-27e24632fa27","clientPublicKey":"MIIBCgKCAQEAzIpWm6N7fDW/gRfv2gaMSC0sDt2vTz9dGct8L5fsZ6/I9ZPjFnJ9GKVLMBM0Lx13lEGN6cBnLsxZadpmECdTAJ90QW454VjvuRQymphdxCjN8YFSdhJuGfl7mtY4pHjgUopgOzViRRTdcfdLQoJd+1ue4vtIFB2BV33FhNvjK5d2+0tpWAqwtrJLJlk+e6Vlwe/FSTGpXGRdOLer36fqaDXaiUu9r7Nbn7zNuS8OqOSjf+0Xch0vGEwBASjovJy4N6UD+nVmI3IpORBcOg6xGAq55WD41gw5yY/qisV9nEqLC2CgSga+vrA75DUKKyWrms5H0x1TR/V9xHemiKdrYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-GFI5H3F6T01ecji4_e2etest","name":"WIN-GFI5H3F6T01ecji4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"966ea2f6-d9b7-4b94-a596-b96d8cbde89a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"7f028758-7241-47c7-996f-62465bf15339","clientPublicKey":"MIIBCgKCAQEA1dV5BaVcehhGNBtpUjGDmUlKhPoBpY++fRSWnRFxbKm5kMPL5B4zNzv6QNaOAUAbfGYhKTyWsPl6x/HcYS/pZzLoT9lIfrGJ/FUZUtXXnVpJoboySOL3Ai/ltD3A1F5Tdt8tLo4h3NMezWQyeZgl6jp9UFwZ8uhyDawVZE+Lucj4BEmmroUAB7lt94RVLmvCTs3lILcKRRtSBw1jS6fSvYilEV1PJpviD4OyGjgBzY+nU7yRWbIMuQTgfixuJCOIPbmIeHqRWdbQ/AClPtwhc5g3FueSqccCRG70y6VDBHlhC7zIO6fpFCBKEl0s0ERfz9wjvVd6JvtE4ij1DngvbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-GFI5H3F6T01o8tj5_e2etest","name":"WIN-GFI5H3F6T01o8tj5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f984392c-affe-4bb5-afb8-80cb0af26410","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"4aa7abc6-fa99-444f-b7a4-66fdc5ff1dba","clientPublicKey":"MIIBCgKCAQEAmc0Ml+u3QsqaVllaMdkbq0fMei9WZNU8S/dRGfbtbhNc2lz1x9ET3F/lpAbyJA/esJBldd/NfcIL7wuy1GPLKHH2l2AU1+vUzr1C9dNYw7bLkfDW7tujsa14w4cFTdt+ZLXf7eFdQIXEEaTEjO9+wOz9nR0I/gHxSDGuu6sgJiOpRvGsgFvzZR45ZZJzayBYqwr7JYT8VczLWtttvm+ixgu5uugQ8ocdeMrZ/XeiMunFjmYvQkBk2RBcKVTkeT7cCZ/c06EIVQA+X8UWzhtix92cN/kHAUvmhz9amu92SIS+kT40bt45xAOTuKzjZb7qHcRny91i+Hqlk1aBkoy0ZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20226.003","name":"0.11.20226.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f4b7793-5d3b-4ce4-b6b5-60835c400b27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20226.003","status":"Disconnected","lastStatusChange":"2020-08-13T17:46:04.4500181","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"85fbe82d-e2e2-4efb-81a0-cbededb32aba","vmUuid":"1A065CD9-2717-2B4A-86D9-0543A9CE7987","clientPublicKey":"MIIBCgKCAQEA99oA98OG1nexsmO1o+AuAl4nSlRbs3ZfY2dYOW0Kn1x1GquHaHEkIwjgH8qAaWV51TqChcaPAtQk77iTuaK2+nXPPbwZgk4zKpLHIFPUvxDnIeMVbkuDMwIw270DuqdhKYV3Lac9MPiFzLjquZHpOmCNtToBOPX0kFwzasx8q4XU3QUwmFy75K9uNzal2MsDL2pWJXOYtP/IL7uaRh334+Ud26uEScUsRagAQmOVMUYhPce6sdvZ9sKwHtaBogsd+ldNKWldlFOXm0GEUza4wAngTN4xkQ0b0MNMUugQ6UzhyZgok8rPZhxL9iBIKEomudP+YrVhafd0geQ0UMwEuwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.tofnpw4zf0vuvhgip1ohrha5wh.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20226.008","name":"0.11.20226.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"14331b12-418d-42a3-999f-e3224c50893f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20226.008","status":"Disconnected","lastStatusChange":"2020-08-13T19:01:57.4849254","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"207a9406-3a90-4c1f-bd21-7252898b8102","vmUuid":"15A85B52-68F4-1746-9978-E4AE37923C43","clientPublicKey":"MIIBCgKCAQEAv90lIo3vHh7Jl/soGg349klU4NIJwk40zcal2JFjCY9HAx86Le8TaQO07Z0+54tgdOpx+CLBkdkYous6wk0PqPZKLuKBdYAxvXISv1L2irwM9ovaiYY1RbJFbuoMgqITAdcV3CC5VZC20okZk2KtjnFr2hPzxGSptLYnWOTMtKXvN9Al5jrwqVU35ME3btsmqNkyzSWQxyB5TbCQQI3oAAbs+Sq3D+EAi6ho2BVpwrVgVfbKykSxNh066iZUy5jclLoqvm7i6+x4/A9rVYjKf5/Tnyg6UpYDLaOMOcoFYpUlbGfdzFyVSDzuOgTbbk+g7E6RyHiZ3NlJhfakM1kIEQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.rhlozgf2hpdudly2njct2sjlve.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20230.002","name":"0.11.20230.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61c3fed9-bf78-48cd-ad8a-795970261361","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20230.002","status":"Disconnected","lastStatusChange":"2020-08-17T17:06:43.4371884","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"52cd982c-b97d-47e6-b8c2-b64fe681c6a3","vmUuid":"93672C39-52E8-A84A-A634-B9FEE2AC9671","clientPublicKey":"MIIBCgKCAQEA4A+9+ylgUysrUTjyJenQUB2xgrIFBQuBe8R0Jjn0N5qZDH9pjuzxKUyK7brmsJ8yKwWweSlzGPI6E4NzBgR+QPnmycq7yDbgZTOv7Qsi+Idvvj+0XSpSnLdn7dKgMuByaEUZVTib0eR5DggHF8lUrKblNnZjJpaLOr4eaZSI6JiOLX0/f6D75iPECe0VOsynlQuA67uOpSVy+s+CtiXZFkK7rfoyIlJDGpZ+KDmfEgeFr5KFUAQJ8VPFPqUqmXKaBQdJj+2dZgV1uBhfsvxW13fBUOHEyp3Zpt6zmSgcuLBzJo3FLhRmgi17Exg4Jgr3j4J5CVLpOlCAro1DRASzywIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.g0i0jinzrjnehgfokct3h5wgrh.cx.internal.cloudapp.net"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7asLSEAAAAACA%3D%3D%23RT%3A4%23TRC%3A400%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiEAAAAACAAAIUAAAAAIAAAhAAAAAAgAAAsAKytMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '150813' + - '114906' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:22 GMT + - Tue, 15 Sep 2020 00:27:38 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -316,8 +626,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 9f678f56-c7d9-4da2-808d-74f38fc2f50b status: code: 200 message: OK @@ -329,32 +637,57 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVJrb5swFP0v0din0WRAQqhUTcc8Ujd9BAiR%2BpEQh1gowIDm0ar77bsm2VRk2Yf7OPf4%2Bn4MSnHqHmVZtIPbj4GPeJnEhp9gMbgd7Lqubm%2BHw31aprnYi7K7Sd%2FfGnGTVfth%2B7Zus0bWnazKdrgeC8u2ppm%2BnTipbk3sTJ%2FalqMLY%2Btk02xjbtajYd1UB7kRTTt8kllTtdW2u7k%2Frxu5cat9%2FdYJqpTtZCnaX2kt9QNFEvmdMfrp6KOpPjL0uhEHKY7fv7WFrJdVIco7bcw0m2mG0alfOjUTajdYxD3Cf07In%2FGUindz%2FDh3OS6fZpLT0wwzWlLQhMAychUajQjzeEWYSEzuvyjreGyqmGChYpDPuHyVZ%2Fh%2BhYXchQvNCKggT4hQgRPDU0iYZAVWQHLIGGxOKk6ZikTttIyrjznEYZMhUQzKeX5AcIQPNgcP3StD4JLnKHZwAP%2FoAhFmq8UpCrdkp7wiuSewPREEMsYhfbgLxnp9Ts%2Btwv4rsi%2BebZt4B0qcBDAvRBe7eckwz71KZxrnmAEW6FwARyCBi5mF2TFQPY2pLwD32eo3qZ6FDLzKeZhzsgYPEYoOHCQsfliBRRgheKmeJctRUd5Bcfoh41GIkG6cx8zH3EVB1%2BfI%2FblbLf91YvpVp0OKfapAB91Bte7yCp4REgFV7OmxIxz6IVC4At4r%2Brc3ftCgNGmZi%2BvY9HO0l1%2BnqI%2FZp9TT62AF1EJDsz21xt7g8%2FMv + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7asLSEAAAAACA%3D%3D%23RT%3A4%23TRC%3A400%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiEAAAAACAAAIUAAAAAIAAAhAAAAAAgAAAsAKytMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c9a33b58-b8e1-4286-8fbd-e3dac6576722","name":"release-c9a33b58-b8e1-4286-8fbd-e3dac6576722","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ff85fc61-1fbb-4094-9b57-c1aa1dd42bc9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41835585494027876658334277908299382611109698368923297309695161857375563226348318867116786077780884784043909728928931362175402474754612512913979049099492153410161045776606546390712187274356372050163853074275767606575614507403564178825229923343788003303467914819893595764105140","osProfile":{"computerName":"jianyunt2"},"vmId":"2a2e539b-a4c6-4a8c-bdc9-897957982bea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzuLJQTpf2G3j3P0oh2kx2HGBG0UKg963aDbJdqsKNtmXf+Im8sv1w3Np5U3Q3UGlrLnhJzAP/PPppueUx/S8bzNlIjs5/pPYqS97WKJSULjS8IUunmkrAWjQ5JYLwkfhRq8165kw3X2qFhKEOKu7BvLA/T/Y3YzIuOChd5Rwoe3O6ZmiJOY9J5MwCfLiiJt6LFrtrJ6bc81vmvXs+iCFRT04OdgWCl3QFODVclHFspex6FEZyZ595HcATzSlMd4sp/qg0AEz/PIEOdIyQ854EKy+bfwY8gwHrVj7VSlEh08/Okez+16ZzgW4pZCfA43XH9C/dMu4QN8Rvt53Yn15GQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9640ee6c-bbd5-47b8-8f84-007ddf5b8cfd","name":"release-9640ee6c-bbd5-47b8-8f84-007ddf5b8cfd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dd38523c-fd42-4c46-934d-361317da77fc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418568703645372453144164158054823473580721496325767312891078453650953985761677896209152164126559416944817497822317949331227868849194561699936746028027470686850401109294986124533107016966086186926862016442912560621686645829946159145831038252301859654936531482431251388","osProfile":{"computerName":"jianyunt2"},"vmId":"64faf73f-251a-45d7-a45b-086b18c610ed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo4p3myHubwWGrLYwag7Vk6cn/sSM8r11USeVk2mTdLHyKk3e8hHUNpGDrp+ZHpSDWMn+AkLXWYe3erlbopXk+h3fXN5aM0cPZAVnsZTJjSTc5T+E4rawAAZhSit0iMepi4suS4RIL+0wygqAq5JLJ+hZJiKNHN6BJh2YZNq9mxtVp96HpnJlTDN2COVV6GPObkO5C63K+2awNHQRnrDp3fp+gt5QPMBeSuJXzw9FMGHZDKEiaKvZkQUVRvHo0bDyA65ZV/QgtGiFPlgWNS8YFxKNizM+2MnIRrKj/VFtx4zFk+gLAi5LEzIsTaAqckAbfOD6IsRVFtaemrScu5A3CQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-229cd8e6-85fc-496b-9f4e-efa4d5f130a4","name":"release-229cd8e6-85fc-496b-9f4e-efa4d5f130a4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"80bba935-aa85-419a-b29f-72b629d5e374","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418979100695684824487469623817774749482819927753244099762335322199905771373868683274289071235820872261713477385220872848244763361323453213162846080752651602826396636483147421923766686174340784817203300681255664609574483580650455799180285411896554261492446400","osProfile":{"computerName":"jianyunt2"},"vmId":"320de8d4-f341-4bf0-af29-be5580c8bc38","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7qfHdHsiO5rTlWB+sVZoOluYSFDvPfvWfUVBeb1s/wxFC+TXagYQy5GE9FZVKIqclL7Y3tcY4TAP0dIE50wcMj8JCBNcTuT3h5yD5Bl8hhSUtYYtvOTqYtLBu2affYuNIGV2ovNovgTUT+fxWr7gRSAtW97Vm058yBqcxmqUIIUBug+Txf81GIV38/zuM1+vrDTDqyY+eA9zQOZtlLyEr1vw1tN5nh+F1oV8JtS6YvWagWcQ/yYOaeltisy78Z7TCbL3+qLhVujScfsrce/68cftTYkl54uQr61c8bE1iTJ1yiklKWcUQ132Eim093la9f6j8IIBVejyM2uE/LY1dwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-933f66d5-0121-4ad5-b562-6f66c265e005","name":"release-933f66d5-0121-4ad5-b562-6f66c265e005","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cffad0fe-75b5-49ca-bd52-7f3982fd2aec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182197352671926003508469897180726741532974954650149651735381527967430867824064413665029272881643572457895111366402433686531102578800656183494135824942050566184183247198240572750278325856165244488964775411613038778914922572430523131761982434148273033714514618585966359418041505","osProfile":{"computerName":"jianyunt2"},"vmId":"65f6a501-6966-464e-8b0b-6633296c49e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnCraj4NkCWHsaK/HRMPUEFZQRt55jR4NW2bqCL1/qVYKOn1jK/CHGhlpgd3Ny3ZEWIgDbs58j7Rh4hTEUdLmAPwwaZ/cMuMIjhTkJPCC83NNSmDUIkYnAzyDyz079S5Wlc9kg7BIyzZIEEB8n/C5apPdaHMZ3QYC5SprNiolRax7ImpU80FVls2v0J6jWpIjxlBPaHvE589XCYmAorMoaO/eT32HAJsCRA8BZQ0KdINTusiN/VCTlFGMRTr9737IISWEcq9BskeWAs3UmaPtJ7pkA9jgUUfh3XziqI9C2Vk4fyo7NtcglQwlaC0bw3khqpySetMcpRM/BwPCKMnYVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-55e6e68a-e593-4a8b-a287-5956a8818596","name":"release-55e6e68a-e593-4a8b-a287-5956a8818596","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ada4e852-2b80-4e8a-a19d-c4475eca2757","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185457350185626735226741514574850110828560195658462322311574527016514517791171639928185159743632795634102219417219612272867635566564256056252489982694645718076019995404511595155403414663394587728872452709639786878798586480927718222","osProfile":{"computerName":"jianyunt2"},"vmId":"e3836c13-27a9-4a07-b0ea-cd2c32786f7a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvB1J64cXWIIB0GoQcDuEI1Mu47zF0Zvrp3qspY8hVhkoIy5uywkfXV6TFWbmgp+6Zz5U/Rdf0iXe7YmxaXwyj9KzcBhLr4Wz9uCB7mRjC2tFJRdMJYLY+HpDA06zsAjJgDs4z1S2HH2apC231PWM8A/QKZ4qsB9JFdKdF4d+p+dRqVu48/ieYxk5F49y/X6tTgEo823ZfdzzHv7EPMwl5GyAQJAI3/iWB3UZ9bQr1xQDQTkGioIPFuiUsKJ9co++GoeHUjvrkIR7iEQDSawabp8iGlR9LnV+11L44TyGiDm9R1DMzXggVSE3Z+RBkZ8G0ctmWz03aNJAZ9Qc4oyWFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9d6ce9ee-1819-4adc-85b7-c375886a87f6","name":"release-9d6ce9ee-1819-4adc-85b7-c375886a87f6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0be6ac23-2465-4e16-b8bd-adee97e79fff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41898365665639335661577747121430388073689513969744502732065187376557744451448886547515087674674499856623836457344836814415579271144425555959954162697264505495651504128519984614333155214153523905920136298821273237897960637443133445745129576217902231141703","osProfile":{"computerName":"jianyunt2"},"vmId":"4ba46bb5-7459-47a5-a1c2-7e2fa65781a2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwgQ9ClDxU/BAI/rboJr9NZYUAtQwkak7/fqLVbafT//eCwjDmTdzC2GQdgd9GRmxFttuJeTSMpuCrURAs4/DbfBZDhBG/6phqhgrnp2BlOjrYeKHDGjt7UCcWPVtTjgAqW+u61GGc9nY8AaBkIeZAGpb5LzOqVEgjvcJwjGeob2UFFRkHfXe0YpqyoY5KlZBDYgsfD6jRigb0mg2aIA4B31fyWI/07zd0WnABzIl03LestqO4jFjrrf9/g3cfnwbnt7PosU1pCesdhhI33cUy/KRu9cId1QCI8o4//Gl/l5cdiUStM6HDM1xse5FoUPGSyJKCw2UzqxW4DHnJe5PDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fbf91133-8aa5-4d6c-bdaf-14b892ebea71","name":"release-fbf91133-8aa5-4d6c-bdaf-14b892ebea71","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"909096f6-0d3c-47e9-afc6-a8178626824d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41886012026268714753174772302159504975639384692274222495831616181736738430676490520115425276139894745121992588305247595828725750839322045364160344269611069356896169025475646821292077445993011759201749121436361437706583390369661076767659498423917895488911141","osProfile":{"computerName":"jianyunt2"},"vmId":"4662110a-5bb9-4d0a-962d-046f5ca83047","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxgBgaK7Y8SB6eZAdWtHOTC4lovpoLxlq34m3l4RFbqZzVetw1bm1RmfkM8bUOXYlBeN95PSyvD7mbdulF4frrWXaYBcOvZRhKl2CBKEPwdndEVziMXhscyNdf5ZggUNrTjMKw2FHFKC1pDBJdqYR3OZMSMNp4RUJRk0eYB1Ppu/miD4NdoMmWMOdQQI/DzINPoi2F0ierwRRNuykMZnR9C0iWl5wsO5R+0sP4+hf/QeV/OFl9rxg4gRkwMbiIVBfpgEdtdgLiuq7hOhvup4hDugYEYGUDPF0O06V9TVpkg4iLdugP/D0dU8M1k57WZwefbe9IN6Z/3oXBXdLq/WpjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f49c2561-47ac-4c48-abe3-ec8c5cc0574b","name":"release-f49c2561-47ac-4c48-abe3-ec8c5cc0574b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6fca6840-33e9-44a9-8fe9-24b7fcceffdd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189753097461582244246545973163820259046703781453137160082877910487719862734106814924405002712675452507677431848186601976032588538862049309040792937861994927591725278251915663217790919876966294289719596616836768235758532092722365246097955994438953571363872132993941648539775931474375713","osProfile":{"computerName":"jianyunt2"},"vmId":"bd0154bb-c2b6-4a52-a164-c0a147f1a9d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+eczjzTdIKeTGHFZH0wMfAS+kuSPcDSB5JOmZJq0Lyc+inVlHT6PDsaZRYjnA0fjED6jkOwZVimo2hogdsha2TjyHHIxAMMYw/XEufbE9ADo5quhGcAvqo+JR+ghlQKwLTwCC0jSXx2+d4AGRJuYx2OfS4QDFY/ht0PeAWZLnajwL4ghZjp1SZnUD3hQ9w9/uIBmchfcEMjF9qdvsRNKK+HPcSxqQpujArbQo2nPmcVDThNc1YS39xxZxNwOrrEj3KbVMowd8n+H2bLRKF1apHyPYLsxqWwHFVSWetDTe5zyipWPLYHjjXNEHGV4MSsNfg9MJ1IkUieXIId4zTJ3AQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e32bd837-c473-4150-8d68-fb0b7d06f884","name":"release-e32bd837-c473-4150-8d68-fb0b7d06f884","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"78659130-1430-4a66-91d6-ca75c0ce5822","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41821901016815397293240586719807973453612216438838596120013588992998858795465940072097863389407243853458247672315857114317449168282914989923149138742393779541377209867872059285392895372233504038536490939789961943272354464695247725869307377776161897629049836288557188","osProfile":{"computerName":"jianyunt2"},"vmId":"0945eb7a-6747-42ce-9262-83289994bb20","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt5GY7PfJ0oohXm792Zpa7jSzvdLbw5J9HoIIJ0sDrMQjwlxOMo2B4KocmXiwU2R2UkTWJLS4q8p7godD0D4gYhL4DjHZo9DCi1md2ZhngCNW3Hiex20JG2i5490Q29xe16wC4f+qxqK38IjgnMUPr2XpBTB9u2A8JR1tkOg/JG16e1xCasu5zrDTUPryweHsxUDCugY/xXW7dfpUn2bIURxFrUCITb7P6kVPCsjsVfrd9n/wi1R0cH3gQ1Syj1V9IG4txn0WGK+Mvra24c/B/3R48sVnBy/laEQ3kpTJBeIzx2MCE/P0AWfWtuE+NFrVn2FNaCnsqve8874uean/yQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-47a5b1fd-364c-43d0-a448-3df9751e2469","name":"release-47a5b1fd-364c-43d0-a448-3df9751e2469","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f1b51819-ab0a-426b-b8ff-e93f46183986","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183948530142212043262264456629299845894502015311287985518134549226983525604839020494024268997545643106177721296409771489847213964692780144349752755077529378910960271525536513887961381928960334854778587488641118818432678093959464345121282735975585585096445255775915896316277933810131394473383390121582526994376439","osProfile":{"computerName":"jianyunt2"},"vmId":"c802be87-545a-4d0c-937c-5422ad5a485a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy0IPBkPzEnXQuEpNI7WLQtYo3kOgK996R6/zQX+57t7GCqrfZhPEKYg5hKX0CjfT6/IGtAcHZQDYGOxaPwYjRVY/YTOi+EYJAjR+Jr4/6QAtFm9DMrDahKHoiFy29kSJwbzZhoOGyQYPh7JETPrQo9bOm2dpi9NsQxhVs4BtZDxk+4MSYSW0Vzi/Hui0iJRFzP6nhhPc9xXiclzhN1aMudbZMl82Zi83DTni1w+c6VpFEYnRpxeV5AnhIHzEBE2+O/rE7uJxRSZJWmhEBXjY4gCU/dbZBHmXM43S/cdJ7TPG4N468OTKXxjmd2zkMtCibsQ35gD0p0356uJhV1AqJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e7c7fe3d-aff4-43d5-b0fc-ce7ae24450fe","name":"release-e7c7fe3d-aff4-43d5-b0fc-ce7ae24450fe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4c724f20-3e02-481e-9960-1fa878197a98","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418683358344065272997126095779742787567138596049379393607560402903590491632073343140912524749909872729339868992295874318545150722989957452232187097346981142186434774720265504552184961285018607559504351885861472474724954807629260387753019163563166450449513855030866722105379276246824725604278555252418592104977427802398","osProfile":{"computerName":"jianyunt2"},"vmId":"0329b37c-0cec-4668-ac98-5df4add08894","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqe243G4CeivXsNthJGNJGP7Xph9Nj5FMe3x2cCc9depeZ+bAMDg5JVhCysXXvx21yOlr0whEUQgC96dV1pNohC93ZKRU9jAbLzNge2lZDXMLSZKg9bJKGK4dtzqGsbyUoVnmKSMxqHbnTSegoU3Zm9s1m1fDRYu4p7+uz/xEr4q1zc3oLbFmnl9OsPD0qqy0Ak3x9stQV90TTvNMNlIo/fWkqAjnLbRRCe6aez8dqG04Y1E5VuHbWmfKDcHHGQkxDMDob24p3LFrIex8EKq2xuEnf9AzLNu91sz56Dx82ldamPcQhuNisuM2/t41sGmr7rxzQYHdzkPUx9DPxbgInQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c3ad6e28-03d8-4710-b5f5-0dc9ddda8322","name":"release-c3ad6e28-03d8-4710-b5f5-0dc9ddda8322","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"679bdf14-6ca2-4303-824b-d5abaa0829cc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418991216707718813695104563779154803271126353904686858077121671246319115732354957010606791584818405439824470847416129475559915302789128636965369757751361830373217515984792575988726791825765789880134206685339368559459538574145042016658418155109770756392011758223629857883788005146137329009431936081923510","osProfile":{"computerName":"jianyunt2"},"vmId":"16bc24cd-95f2-4a48-a270-2c4c46527611","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqfSp9k5OAu+DoSmYIlzc9M6Te6WhHUojZfTOOt5cyUOYrpugeoMaJ8ABa6UZatyxUmjU35RlW9wBNzGZlMghJKAdHomWVB/8tlqBs56SVMzEoggKpss7rDwCz5VUGSUWL0ALD/3305QKZlkl7GjWYD1V4lkg0ySADiGVKzBy69DoKMAbsNqedqBJruhfEqw1Mq/iubr1Pc3a5xGnUAzRmUzc4DG9uXbn5B4rj6L2FaHgPXIT1TU+xnJdVadfOACrMsKmxIFZk7/MqQ9ESz/o0cgRHCYCKuY9bsq0u/YxMgTxQ2r5gbVstnAsNXPGIwLOIb65CqfZkWQBCn1/iPrQCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-11fcecae-bca3-481b-83cb-fc4d24172dc2","name":"release-11fcecae-bca3-481b-83cb-fc4d24172dc2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b6c31385-22b8-4696-8c9a-9637cf426c38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41891129330789321689589833539835501661156630989794587506039004508492069466296303488693754724314452583275731250890523753885845585736197307573325409184159912678201535996742727447748166935372105021794635347951582368799571733726402993658815206763638752658168348641400","osProfile":{"computerName":"jianyunt2"},"vmId":"8a0d3f9b-ebac-4272-acbc-7c6f2e975930","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtUcVhR0QDMG9dwFyiXf0qpBTaggKwc5rN6FiSN5FMS0+pdlxmp2smG9GVur7BMNgnN+0wRx6kLYFehM7U0XSJBKBaJaRYybShdXbVYmBMe3np4AHmU0nyFKVR9oLutlnKilQPBlQEQIz68jSbyiTzXC49suKKsa0QiBiIahxkRoGelnu6asUaOME0d1zwQOGXNdZJlhxFSQ6fY58ZbmByaqhS0x4b6GIWbGgib5VCK9hi2/PWXSXjKqfYMnDYZhnj3E71lberJ+EjMpkd8mRYLm2gXvXUoL4/uucJhAUhl30F/2D0L6ZT2ik6V2Lb6svIqfvnAvd8LY1gdbtL8kbOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-383d8839-5d66-4795-9840-0173d04b776f","name":"release-383d8839-5d66-4795-9840-0173d04b776f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6815d489-4d5b-4e2b-9ff3-7ddfe14e61ab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41827737745626882311097346427586862577217294059465492959946538241404878197315352107294564837076253173961905584817919445356714420287014858462791117591963150799839558684454130735005572936075223487722733118607020183433761725843730177005014123748153115668483723047204892178892767242396131179352053165225462529655349226954116700629137183759192879942476944998","osProfile":{"computerName":"jianyunt2"},"vmId":"2659ace5-1967-41c6-bb26-322aab80aeb2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0T/06aK+UazT94FbEGOnQ8kj1OynYlvhMrfWDe2BnVERRv4KbCYJ6WqWA0bzNADZf+CDbgHNmJSbzwJubHjYQg3dF4ZQeeEUhUq4SkZXUZyf4/hmp0RIdZpw6ZswZ7PAZhwMJQ+nC0KEqIARrhz4B/z7NlAtUC+tAm7AizC7XRLrE0GDoMxn0lrgipjb/1G8sIhWk1d1eFw525JkkiqnR91ey4j98PT5C/VoW+yffFkKDyJykwVO8iwvebFOj1S0HfG/UxQv7FxJQimvNUw5mBMLnOztrTPg2bIuhENb0h4G3d5mRFodM5VjGKHzRc/aIqpYyGk+8oEbL0bWkhMiHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-07558901-065a-4f9f-8e48-f92197274442","name":"release-07558901-065a-4f9f-8e48-f92197274442","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cdccfbab-8e0d-435e-bade-a1b269b56d85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41875213835699429820162471449199527361623374803649146052244517006639929756285126269472899331983959877356920145538499992892340635629981092082391982685779704428095413222305572149517169989038376739090026441179362009420541483162656104323657327168392996748100917264268864554675347385","osProfile":{"computerName":"jianyunt2"},"vmId":"a89b33ac-5587-41f9-a14c-91c8973665b7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv4e8DieO48WHALIQtVX5kJ8uTEQDqrFvHhv+w29D8hcxq2F6Uh5EUTrcx/mYqAyiw1n0Wirtr9mFGDQ2RR8wu7Lu5irkkXx3rFmroEQGybx6UpAzr8NzXWJTqoBHKFU0TGJyfAcx0fXg2oS/skJqfT9RMRu+IV+stUI7/wLcKZJoLl8+bwnHY+c0yyYS2A2jdYf9RJZy8KVHR85vXv6T+CZuBNfyka0w9gar3BYx/OsxCQV+BXiUiPMdSI8lhSMgxFZOA/hEfEymg7qh4+ynv/UJOoSQLPAh5XSFWYTa4N4SjHpjs7j49WzmdA6q7liA2a9nYPJIYE1PCKniU5xtlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ed28e45a-826c-4593-881d-3eeb2050c99e","name":"release-ed28e45a-826c-4593-881d-3eeb2050c99e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d557deed-e5be-435d-a5c3-c041cbce5603","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185606879643701613490369682194505788809335947062099489109534745030628954683630202695473288131474519631284920668873566796436924456299739408087948841028285130156494561398911711296283214311254185186018277260978714722913585900555985232938","osProfile":{"computerName":"jianyunt2"},"vmId":"b44a9ba0-7e7f-4d0e-855d-94aa34e334cc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu3/tP+dByOD5wN5jNQGaWhCh8yVwvbCJ5hPcWmjI7Gk/0AeIBLkfMcqP19EEKotiqpdLBSqRlsiWkEtlzp36GIY4nKBTfa+JMNGSYziDO3cHK6G08pgQ1zIOmlEZ+JmRAginWDEN+rsp5F0jmeLpD19bYF+yTwTXf01aZLK3dd0QuKO27rYt4GCKlKXX+hGyv9xfLp38TN72kGLobmjGFDro/uNoWqklmYqbEietiVnCrRL28QzpNPaBtBrKMg6PlctR7l2Dxnca4JqtlVDJ0n1lwOsP5uYs16cCeLgCUeSVJIxeufYs/YVsWRGwObc2aBFOkORFsYFarbI6KEGFywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6a7e8d0e-29b1-4914-b183-3379cf6d4e26","name":"release-6a7e8d0e-29b1-4914-b183-3379cf6d4e26","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0353bfb1-9e6e-46d0-8e93-09554d840fd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41869076786306240941486510438495370159665093705730236029508762207676484977696359696876353528744609876212240653045716122283483877622988521351660889993525060909867464506374747472834832903128112066143972054597522870851067568172318251978325419206660455192785249756310397862441994945719514420551486","osProfile":{"computerName":"jianyunt2"},"vmId":"b19564fa-420f-4e73-9434-01922b21acba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAttiMDVT6fF/093bKWnueJM4zVjgsMMzJolhvq5DfJchtBwP0DUP583sjtEwz8NK44LgZi/+bciaQZC9d7nCfHiGGOnYCM5uJmScLlMxhKDkREzwv6es1xSQw/eGUpdLg5YHrRKu6Mwid52FYdZfJP3pgvLXKn98iemfkatYDmQWAUYW7na3eZ1wRJ+2zpJLpnn292z69/Yer/MYIUtJaXHs7FCrfzmnYNEQt2o5jSv2BZQJZbTG5cFNEoPaHYszKNa+x5EHmZ4JJ0ztTiPcq4lpeelQIRRP4PMWK0zH4n/RafSnpbbcVSlkr5llbBhR8YOz15F7veXa/O3FCL6P+WwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-895ed0aa-a1ee-4f9a-9439-cd30fdbca95a","name":"release-895ed0aa-a1ee-4f9a-9439-cd30fdbca95a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"09b5edcc-e1ae-401a-ac74-b46379236719","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182189609820205780221936748238891515308469645555322487294498234746025599695094681513486994697933982894601992928284291667884487825744806385580573744841177133683512212804806739576612237897886903273837235674234336779767568929897387829807904695719794782470352443205370549036240350348406548991463636","osProfile":{"computerName":"jianyunt2"},"vmId":"5fa14529-8d91-4268-89d1-4be9d8072e2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5aTC+yWQJhRhSRv1FpoXgJxAnrzhID1bIzj9VMZvqEfdiMgp/cDSEFZ6dM1/L7SFPNB9VNoFaiCZcl3y7L5dx53dxlu/kn6wWNKNYIFsdKeJjI8oQ9oYSVy8WOMcA1Ckyv3uMgICOwC9yDssvH9Pc1S/I8tnJ5b7Os7ieu1/AB+yuGn5KIG+YADIvBHbl5nfpkDzXM3jOarG0fgJRaCJMgGaHKAWjalFnRZBdw8BKGdldqRZp70Rts/hQlUV2NGA8UdJ95mMou1oemecPVsKGUUYLNxmC9YQ8yxGsJe8l04F0N/ZLCEKP/+UbyIhEnU4F2E/cO4M0uHfKpLVEyfxwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a5748a34-8df8-4438-a5ff-4bdec935af29","name":"release-a5748a34-8df8-4438-a5ff-4bdec935af29","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"785bdad6-2dde-4394-a4fb-a8b4226aba07","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41859926323724010518294629743117362102523561344990799915708214511055277732297834023155322488523198374464640239326484949743939614984823234868330852376848083729802017807477613222979363498616648537063650045951194338633177359454878891441930911972028253014931232","osProfile":{"computerName":"jianyunt2"},"vmId":"1780c26d-1d9e-4231-b529-dd1243827a53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArS2i3ecaLOCjfzTtwF3loTfyP9eNF9tedtskxU4KpsZn1qT8Ka/cXIk14pFqPn04ems46M6QCe3ln/EOxy1BtTz8YEaaqEcMR3Zo7sLSZi7g2tjUnNGgG5C1Fc1eU+YxS8gvTHONCdLk3S0ZXNPXs9UyuAwekC302IFMu+5kp3/d+F+ebpofi9XKDw8bS/J7wHMPkJ98uZT0UKp9aFsU9sl68zsR5NoANZCxCRqey03zJbh8uLZRFSn2RqrlKjhDcjjlF3exiy1zm8HDkBU9W9f+a7jQBrTxFCJjVKR4A3SalMUIq/5zXpjWU8CMEGN/WNrh9qCSTNMCBcDwnYrM2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5c651c8d-89c9-4e86-bc0d-9af08cfcdb42","name":"release-5c651c8d-89c9-4e86-bc0d-9af08cfcdb42","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"25bce33f-47ad-468a-a7c3-ead70eeaee4c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418569497019357904597754492838705089315751454576686566585262209794482189853325333157280839689355813785397104318985692623380555792711908962334641741486189087532845021151829427128156911282769957082430970010078263066258727982866308991985287673678745621046935360398444188950450995671027813763524573947","osProfile":{"computerName":"jianyunt2"},"vmId":"ae7edadf-8413-4c8c-a2ce-ec051a9399a0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt+ypyNX6qXNBFW7/UEFHGSBZ3hrRPz9VXwYeBMVOxyVmfvZ5jBREPdsbHJuXqhZ7HccrWsDh3Go0eEAa5oGyeTbfwo2eFZCL04iGwb45sUOEZRyDvuEUjtqDjm8sqCVkBtwtVZmHWn+G4y+8iWK49DYLdxDxJa6E1M7H4k0dQjFM8c71odpoSZJhsbMXMbBuOoYP3WVZDMFYWZqbs7gxe5gk+FuQGa3fGxV6dXlRaImViQZ+dwuUUiVWkokRpPT1cvBd0Dng4YPNNCwSs2aR2Raaxd3pZJ8f3EaUDnH6Fgz6azxxFSLUJIcK23KXq2drvN/uiUFLP5qyOm36aWFYhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-56bd3442-4aff-40d0-85c3-1fe5a42a4774","name":"release-56bd3442-4aff-40d0-85c3-1fe5a42a4774","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"449f3840-a037-4f0e-a6b7-861c17c0992e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41868199265557326186830112771309764982186264855834180070441474425149319431440893517731599381661100742271882538681666885767921422153494218700571977199067634577704369820563845848673654295851515744764482094203310318086009367769730507952336942354002794202346163621382309116376532119925177716913126332549568","osProfile":{"computerName":"jianyunt2"},"vmId":"8a095ad7-ab10-4519-8601-a0bf29244b85","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzN6C6KwhkfF7zov2uu9/K0S7U/cFI8f2FiXEl4/3zuk0APmhXGpDp2tk0AsypEN4mY1UKnTsQe+4bAwJ6bQRIjz/0H6GGh1thbjyGF461Eno+NE03KKkZhI+d0qAju388k2VhFBhXZmB5DtnshkJlflfi2HX+APUXuS7rilXGDlteqIhZL9swK3Hx97m0hGf8y/QYJ/pD3S78ninpGY3SOJ2aDfFWld7V+1fBbAfdM+xSIoEq0AzbxxYiGdRqydn1PnirOsZZSNkF7y/f1c6GJPlqQYqOv4mEDPHG4JznbIQVaQloj8O9mMa6Adm7jAyhYzepmJPn7fOEbAW7QJp3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5a8ff119-04d9-472d-a2f7-5d0b3e6048a0","name":"release-5a8ff119-04d9-472d-a2f7-5d0b3e6048a0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"681d9dc7-e572-4503-a082-89cf94848abb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189461057688763018821256497545128706814633163126468770699880562234052170212450540737265985784447353858530828114882336562968418920153487622223511372426227253198563266561164659270922576202316443471894068306215274721835620630787864","osProfile":{"computerName":"jianyunt2"},"vmId":"be488a90-7747-496a-a015-7b38878af7ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsq0tlN6uNabTpL0YrdZ8paCGvhQfhnwfqdWACP1iXgxsFYExaWFDtUgG//E3CKhq70G+y8JCJ3mGnwCg4pCKsLq3yD6T+fiCdZgFRXGL2sHIoKwQe2xr8QwFx7Tuo5sirh56Kl89a8F9PXP+OnnSWYB/XN1yNKBjx/4yrU6g5XQv1QUSZVDqvJdw08HORkB8kOrHmwu9jKQPNkhdZ8yIz6FCP8XsleN287XV7hsCZeUbOERNBq9KBVD2R8PJfGtbBT1YfDAszXqUrxj/7BBWToNLaEdbBIe/zeHwXplf2Ur+cm8Nu4WQEMj2lzIpeOrCkthga0BxwOcMczF3I9bhWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6b469693-f66e-4ae1-9c45-a612071177dd","name":"release-6b469693-f66e-4ae1-9c45-a612071177dd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"192282f0-eac0-44ab-a3bc-2ba67d51eeb1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186735391330419563054593429274809254025578248146671908329432537823189987065835511092978284819622302413075866660109748703897288186060723531904693386868241110557464431707649378582946555757180432336451825461551216237777311936114116656671237583358751287268985766202394011549424","osProfile":{"computerName":"jianyunt2"},"vmId":"b1658325-d2d6-4945-b93d-2e5d120e8df6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApVs0qtiVfCvwUA7gh6jqBrKX13cUPGmPPt6WqUUn3JdgODY3jB6Um0GunzsmuZEctkKUQ/NykU91D7ttprG3sNEpcznHptv7l3lojj6uwfWLO1Rt8pA6XL72OTSe4KuEHPyxOS0Veu7W6DbyoYR1kriKaoNKCP7HL5z8cOcGQBhf+Zaf1LMkJulRWHKwSxqXEJH9Amx6ZhOF3hto8Bh2x0h+0kjpjhVUAv8HvJfbjvBZQNaX7HoYaroY/B0Akf6SCptNhSiWQExKSqjEpJgL5orcHy5IfYpW8wo4QqFXMy9MMN573RYgWCFbz+9g+v3/kouuw7U8bGdtEz+Q1GqyZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-94b70dcf-396a-48a0-9c97-b3a8b5854e94","name":"release-94b70dcf-396a-48a0-9c97-b3a8b5854e94","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a485ec16-9d56-42fc-b549-346053632fe3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183976755552386401413277936643281289451088931878145050527836203815171482809786329293620678867255456077333512350744686218572951724420983679037662503951063035821081614519404233466942511257177799618586511947872236548923406396964070166356671127193298741899","osProfile":{"computerName":"jianyunt2"},"vmId":"117ebf77-8b6b-4ffd-8595-348d12a9675f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwu4d6rezdOCERnfwp/MthFSY1mKHQ0rvUoRb4jl69BkSVePeUmInLYnNkLLY5lpWm2cb++W64EZgo0hs4L4Ok0Gfwkt4DpVYQ9L/swcj2dHQQKLRC44Z/yDjBfOrF7QCVY++OeUjUedbns6dWbzQYl3m91Rd7Sm721rkwy72CyZiCtxtOITzTKzfdKPsJLGXMAq4L27I3PxmDSAi2wFA4E7oTDNvdsZj4dzrFcsdsDnYnrKq/dp04wntYX6OB98AfpwCNnhSlpsoD+H8fNhAoLpFhTtn2L6t7FNf+t9IECcWwCBo2nUVZ003T7ZQMsSooWIGDd7Zsm55cAaoOlb3vwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ed2bd2e4-c8af-48ab-8aa6-32c7ddd35ba7","name":"release-ed2bd2e4-c8af-48ab-8aa6-32c7ddd35ba7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f4d7e02d-ba3e-4a93-9347-0177d6b1ba5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418125232636643476358903434661861219139502947498948894680919856203100688418888463879909866185570953092985580302901511383232721764170248216634729425725224602796264036847245622333042138820801505252283547324077451900335478673530818022745953931375832468562083188024492061408350457194895457377002","osProfile":{"computerName":"jianyunt2"},"vmId":"42e805fc-ec0e-4bb4-b2ff-3a5c9fbb7165","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7RDPn71RvmxzAH2TxThSJwkpBUcv0/FRuUWDQXF956h9yO/FbCYRUyhkrIGcPKeVXXOBcbXqr1/7N33xa5jfl0fvfNhLeH67in/7jcTov7nR4TEbfgiAzeLkGkRVVJcUyT6UCZY3zPVxekFNEsDxhiugQT20Ucaq39ItH+tB3pTnzUIA416LLc35a0369VpHE+a0Gvf4YUN+F7QWu66RJ1+MJS4H7bhOaaZerm0ZKdqyAEeIvvhelbYB/YEVCtOPJSH32P6K1QkwTRc9Mk+88gtdtHkFW36FHhwqB9DliyRMBAkA3AsiE1coUPKBDCKsmgd6dg9dG+qFM5GzLCjBtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8600642f-df4c-41c1-8e30-a7b6ce8f2db5","name":"release-8600642f-df4c-41c1-8e30-a7b6ce8f2db5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5b5f421d-ce95-4f3a-9ff5-31f9bf2cc377","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189763561376553126062322852472364552750772029314199320313879514696024270863980668344816153304162778189508535956818213401123793571713840596493475118414184173427734431466413709712047125559250902794391469942012944200814142624426140866414225772914828819143861701738195483782732306843085811","osProfile":{"computerName":"jianyunt2"},"vmId":"0b176e1b-6764-41c5-a3c5-e5943aef5ec2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx7x03a9JBCHUDhZDYb2GQlB8g/+9CnBfX1Ih9sf4kWvf+2arfqy5EgsTwf4kaR+v3L+gPEp8NaGUHd2Peeq6O192OqhZkNLFp4Ohz+oABePWtLpln/Na+q53EfCENMXOaVtoFPvOxmfvP0aLlsa9WDezWgDEVAyM4f+kLWVW8U1SRt4OpoALcKNED8V3WoxVlehJHX1roZ4M0fbmc6BFSbmg3LOYhYrM5j8shbR+JUlhTAtrXZZ5SAAeHMfvAGhkmzlcwc6oBMyGCt2fG5/bBDqxaqDeLvu6YfXEQ04e6VJvzmxUETeEOsslohIhxJPVs7f3kxgvyQS4BoPSKKeRQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-efebbe74-a253-4e2c-8289-88b1b9a3b3c1","name":"release-efebbe74-a253-4e2c-8289-88b1b9a3b3c1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c18e42d2-bf39-45d6-a9ec-5f01d4483309","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41836186156981277798199728262078524105498494475690862213407664523516652122284681547921666739114857389897054809271512905115426797362342338323909433734717102364690715196398526626469673772589035300164051627881414025551807109479122753465639754661715660445626384192463471534635142158769027","osProfile":{"computerName":"jianyunt2"},"vmId":"ad87f260-8a66-4931-930f-3fd9242955e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7SksBp0HOtpunhLYHEX58kp1N69eJoUml/uu5ugYlRB8u/2wePGdUo6Z346jcNHGwqfO/EScMg1sw9idQxtxFcXUGdbmkI5Fd2LyxIyYZrNMi+6uKnDGkbnKfAB3iutdvLzvcAwFUoSkwEes96ph1T71vtqCcvvWxuJ5b+rJS/7Ad1lJ+melupEYF3zMKTPPnZPtWuH3mpHwXN73GG+HvzV3i6GUGB8pjUoWVL1J0yFqsmnBAG7oQfAKqPlsHWYPaNvVrBA2u2QtBS/XCKpjGcpSYh0TY4/9GVon4gYuBvNOPS/x1TbFEIDkflBH7JBJhI3bthpluq9jK9LEBsyCmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ffcab33f-6adb-4294-aab1-17e2290df998","name":"release-ffcab33f-6adb-4294-aab1-17e2290df998","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"03976d99-5559-4082-8891-8293c7babbe5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41816350001181727319912824213294783193783040548033753296721181496552157519852915244980874839086007867480685951180661191007936846866159303495369069814022509454611333807270183283685610456683769209031570113808041536835798232221664965620812512425436","osProfile":{"computerName":"jianyunt2"},"vmId":"713b7ae5-341c-449b-a025-71929dd8f7bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzw1xFU8xEy5ox/lw8hpgzUvYtJxK09ngzxXfPpNihUKb4U+fE1f/0mA2/mOpYEdSDuF72XiBJPlDssaed/VJD6pjxvXpblhFpGuFMZapxltuzZ06A9baN7GUVwXMaqRwNFkCJutY3hPYL7bJLOF4PislIZVkbYtLk+Zn5LpMKzaoJ8wfjJIijFD3qG96joP7sBTSySFpjUqVgY3g3GX8LpTQTg9CZxpCvkEpgjZuDRqywV75g47rKYRnT3WZYjQN0Gp+9UxMbdW+zQSsWS3PGTXZW+Dlv7nKknulrCbjMzfEn1nPQ/6jfHwk7XtGPOPm2AQGY+YKr7kvjcHTwhfSuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0dd58fd7-4aea-44d3-bd48-86c19a33d259","name":"release-0dd58fd7-4aea-44d3-bd48-86c19a33d259","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5527e0ad-440f-4685-9f04-2e80147344e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182531417072465024799065031921103447981821553311615463313713497843762275063915451755104601771389430445345501477330731851990629378747691503628941955407688940874358849943335665377856426455609131164857599920491365100663729028566349511635461796020105405644171566686711","osProfile":{"computerName":"jianyunt2"},"vmId":"c23bf0f8-c976-4594-a0da-35e6e11d0bf4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs0FbJY/45YVDnQfK+WMRJ/ahwR0m0Vx1S3ZYrhZB14jy0+Xn700KudP2/0niCPuWszLPF74ASsIUxncRhkksF/dpwb7jTeiJo/02ilJqvuZBAAh8E0bpnEvSvChXA7AhKJNpZXSdoam+oOwsEEpBm0goJcwSg3F9dy4E0c8NvOVfv4Mq3TjDnhenX16WpfetPU/hA3rxQSzOkZGgd4AHKhj3lHObUTmkBZue3FCqepAJTawUy6ZN3IQckNQfan70YpROjJc7q93vB4X12pd/M5hpj4mgrtDNF5HReBA4K8PTu7OGcj2iArwOsemzPWUJOzfMmH4+u4jLvemF62oNEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-24175ae9-f574-4ed4-857d-cc9339a6cd11","name":"release-24175ae9-f574-4ed4-857d-cc9339a6cd11","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e2ffddf3-dec4-44a7-9814-8484d6839dd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187685988785825034697459031176139925399972433499666332266482488791377934114497011786586379432656934422950518915756792864047697125849276772125161048645480681847623936486347122816230188099917313239656313935352829729748645479807506184381669950218897501030620819716364156655885223","osProfile":{"computerName":"jianyunt2"},"vmId":"1342b6f4-a6ab-463f-a82c-2922a5bd3734","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsQyNFUqKo33+RxtWIQrdNAg77KQjOU9XFZMfuSNZNEVMCKRaP2UwJp18jaxT4iVX4z+DwSBKwXPyH8X3IvzW5T4z/vWJ1VLqlRVPv0MEzA9QG+mi7zs0eb/D++5OiEoJNUSAwCsJc5OQxgUt0cs1o4NbSupYvGePEvdh8VXe/dsjfSF1P1egR9M7U/tdb1fGwGMdAbAQdKuvZkmGTS+Yd1+XrZsRcGerqX3Iv7T1IBNudvsiM4azPcr9IxlnFykdssrcF8tj9G9IHtWzzgzAEgWCS57h4Kyjz7rhWOqCo5+dks42OfFo2QWphYNYlxL/QdMRcdoi0EC6GmWppH9KGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1e929214-5238-4896-8751-6bb6c4fac171","name":"release-1e929214-5238-4896-8751-6bb6c4fac171","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f97a4ccc-52ce-47f5-aa72-46021f092dcc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187144638020004558347950615677626270192098577631491307399836897133752848053275890028579699869355724597122935883218561176418636798374419054185923765740929178031181936296018904181159717864995699009604823041089900688173148637898372007806971406023579652502705880616618539556","osProfile":{"computerName":"jianyunt2"},"vmId":"0f0846e9-3221-4567-9bc5-848fc7b72502","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA79F5dZch+UiG4U1RZSXEZD8L6CY6vZlBNm6LNZ9uRP0JtsufgFuMwt4IhGgXwvuStSlCNL00288xF6LZvtWNW0OyxElaSDheTsj2hIjaggsnLsGBHkdA6/wkPyxoSrndhtuRvxycusdl4UpTAlr9UD05tkzMGgp9S/bH9XiZZiMsC1saUSfPVSjFlvfsg4o6QllIZxMcBYTmWEJXbC2NntVyr8BdVN1oKNZvmNyZx8ubuDzPzQgZgDBHkTrmjkW7hsshFdddgux0cuMI+B76yurmQzs9hJO4sWERK8yjR34IVRrdurBeohe+GVxy8NmczCmV9MMJ+nAZgqwbkO8dfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e2e46025-2528-4172-af5e-70fd678456c7","name":"release-e2e46025-2528-4172-af5e-70fd678456c7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"518b1ca9-fdde-4a57-b5d9-4b1c9cc2b8d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845530669887428247521716151115378014036862614629276818111812221817893808209114566944481969026526934940208340487728939278569165018571856569043396318663633237688597285522568436054908762773649501893534757352562750452194934687373063481429421595582517748124732086681549","osProfile":{"computerName":"jianyunt2"},"vmId":"50b0d03f-8059-4851-85f0-dae81c8512b7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuO763C1KWFr5Sk8k9N5T7WBMQ7URsmHlf+sHDCUC0sFudrhuf1Y6iRxLnkq2Au5HCmDFQEQ99JuwmMoThxckNS0X/ud0Ph3OeLZTglYeBM6uuBUta6MxvY1bi0Et6dSnlqz8ntBXB30Ffval3HYzIxKQ+l8ySP84X5SS//ZU0EDCDW72hUlopnG4AvrxGJuohcLzn224vvproExU6CFQtoGRhKykfKDK806653OnhZtzZgSzF1Omfgrd6YdEJ8NBsE9mE2tWiNikKHWSemj04n0LHuX7ZQBzP44TTma+zlquskO3eHqFfULOQ0b8Rc41ZtxkxDgImsyGBf8Hy6E6awIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3c7aeaf7-4163-4b87-999d-97bc950349c2","name":"release-3c7aeaf7-4163-4b87-999d-97bc950349c2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d9dd3159-15f4-4e93-bdb3-eaa343865f65","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189247821662422627776697195755697967542062225107400693847121781231321970144887199444468812806287934893978883885155426265859258320619640962314487327965226326629403874559273479119623704402178129453652562547785222271165233225950985263926769207435393660225263573934650780241951722","osProfile":{"computerName":"jianyunt2"},"vmId":"9249ea76-3e82-4931-bb31-b966bf56b5fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyjV1LOm0U9XNjSF358tqyjmWMSWZcWdAUqVklAzdr2V34nLhj/dA1oHfXzj8wyUpSq6+psQQlsBMCP/QtuV1sCZqyZazwfvV3H3YTB0bpIw7SDv+DaiHehQ/w7c5xxYosK39KMX+OWP0jN7gTzQYgS81Kzmku+04x4mfMJkvQeNBgetszynV0FaFbHoZ8aBMEtBJVRY45pwwTW55EYgB18nOHq0crpPGizneII21pw8BhKZ8nUYpVlL3UNXPDjf6P0a3H3xq8rtYJ9V1jJWdMEAYyvoYkXjaU8NVrXpMp9LWKh8NgIoD48i8RsZAZ9KlXb9vSJkiOmmOPFCKTkxCZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7ddf8ce6-ce48-4aec-af30-7d8ba793423e","name":"release-7ddf8ce6-ce48-4aec-af30-7d8ba793423e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"db7d07e5-b223-483e-9d03-473d927a0980","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41848138860618542647263405593328642713976699088811197245465616266853215486811462336476126256261222295661113122487964343604358813674765156655283958209526072167203815736123519598017313464223116185755605259185718003618064725753","osProfile":{"computerName":"jianyunt2"},"vmId":"1b3b6de1-47c3-469e-8783-759069d3b8dd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuGdy6tZwqsdl4wKWT9jVXnTV32Qc17PtswfTEu0dTD9Z+oFP0ic+bw352iLnDWsQNHSls8DcIrBtOi663Jy+y7EGSuoZggTScKc5suYdd13P8O9Yr8LKZFSPd77494EFVwnFCe77EwaAR78acf8KuBwmibyRGvDmSz/UDoxDhIJWhg4SaSoYqFqhuZsQ/Tehk3Osbv8RhOWVX71nIv+TBb3PoBKKe6VzuofM6rg6kXojakkpFJqvpjzmZz7RDUqPWLlnpOZUETI8TXRMgf0M9KEUrMm0inQfOX20WQ7JIYGjq26eNNTSAeejDqiVhMWbzME4AJslH9QLpQwI5NXovQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-100cda2d-7cad-4608-b987-3b13635a2113","name":"release-100cda2d-7cad-4608-b987-3b13635a2113","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7437c96d-7ad7-4ffe-8695-b0fb143b4e49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189405348748134020126785166405912666891611561820429345943731984428773046805643489925505998298075563840180377058626361318242544384274918850776971983355553636212658406105000928914377453513485976520249873721725128372503640343035207724891847159283609426510289108584","osProfile":{"computerName":"jianyunt2"},"vmId":"f9a4cd7e-70df-4ac6-bcb7-94106c50600b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv1rFv9JTp52uC0ucbkVR8x1J2CUGeCyC6UAMpLFtDPuwMjgqxcJ4dOCmtev5js7xkZcZbgmZrxkn+MP82yVja/i8u3QpfSteuRph5LJXeYFH13u2t8DIBQo+4ffTXCTTbYygnHj6Yz1do3rvIeQ/fL9AvtwHxyZNjmvCiN4s6U1+43GYC49wKZGNcpTEzL5I68nivewa+IUQw2i/vEAzFv0/yCVQzvJW/T9oyv0AUGy1k3M/0JM1vymFa+3z9Y3ukJjkRfVjqUaefZRDQ27dckS+8+XiWoLQYtcBUqToEfzTEZe1+IZ6oV4naw4cPeCcs7a2q/76/epMcl57EB5MMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-56d20555-f460-4dfb-aa0c-a3077ea71b07","name":"release-56d20555-f460-4dfb-aa0c-a3077ea71b07","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0ce26fc0-afb5-4751-be5e-db28449403c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41853238318528670402930305762604983975631704838107139028761878939885476793135874422960771682253409173522624591647361345145856744165344481861841691188328158529453205606369901051341411196026293685049296715737365641150431987268592032295273822287674729751764727515995","osProfile":{"computerName":"jianyunt2"},"vmId":"f2c8972c-4614-4dc4-afdd-cf65e70cac13","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0ca/odpdh1raRC4kALXGA2tmQfMkq4VqZmknHOfs6LJzXB2S37gmKIHcQqV8f5tKb8kl/mS5cVPJnNicGiegAo56PNMsCkapUH4MUmejwlm2EuhOr4mN/q2DGiiJ6DIjK+mixkqIf2Hn1NgfGp/2SQkvXDCFY4jJdK+cCPUr/gc18/sAw2F2cuYNGauIXehSTMJ4J5GF1OmXYzOGPcDLKd2eXsXCn/doi3osRKJZe+UvBE5mFy5nabxuyCLKI9X+k30G5TnRblTqz21xq1xs/G6Q/KyrmTGvQ+3Aa5DhLNxO07t1VrlfztKvv4UC5J1eag729B/d7ThyG9jUy/p15QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6c43ef86-90ff-4699-b2da-b25f2b2d0777","name":"release-6c43ef86-90ff-4699-b2da-b25f2b2d0777","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bdfad530-42c8-4b9e-941f-8d01a5f3af0e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418135716808955380121113934809297417820261975962798163378692590375218838438145729540932962806440548238889897762967104525223594782236699031315562809358977627584110582889600381387742539536581293781665717791294033186931605965759140979487623406358420297891505062616785194017581453163573178477702476045282101339529738","osProfile":{"computerName":"jianyunt2"},"vmId":"52d4dbdd-376d-484e-9741-bc9377f1b045","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyw1pV8aJyN1OU928cuXIAz7gJ4oYTNL3b72ay53fZ1081IRz51GWU90LnI+MVr7JXk7nIBWcwOBV8DDseuzoNkv46XhIaa8YPRxbDGwFn+ySnKqGbghCkRddC87Q4AqUOzq0Xq4fqGOpGdtak/+pOrtgUfQEKfSb7KDGbZfq+BrAg3s1idN29TifKAZLHMLKRv8iCFigEmJ7ZXg4OMarT/jqP1Ab2ITQ9t9FrZVcFY0mo0ZLAqNez1xv1DyDDcBXf6veE90JssNmZSBcXhzMh2X/1c+ak75BOdHRyvmuHaDxnjkgWsvfdW5mRNAh0LnDFzuOrhqxOaTRNpZcxAnDGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-08940d4e-777c-43d3-a8f0-cdcf1624d36f","name":"release-08940d4e-777c-43d3-a8f0-cdcf1624d36f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"61b52eeb-02a7-48b4-b32f-8ffa5aa85b84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189646137073824143113773309193730028949359995104242569806353106687584980747937169872267995449136492195597598293322447965137817751796734419994001488960698399397778432898132983743655341632342223334404348027182890251344477266723373699775885874846519997376662015205527475410932937793095687780346","osProfile":{"computerName":"jianyunt2"},"vmId":"b8a25a83-aacc-460c-976c-d899e46c81bd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2odfr/zuYn0kavjcUVsIU9a6mouvVx1s5WqMXLTgo+a5p9airD930JJT+WCXdF38FuVTvvOzQ0rqxxVmwLOAhk11LPKMPD1m2h1kNM/LFa8Y7GAQyosOt0MZ7nr1Nbpx+4wuzY3viZp7W7E3kMMQLJu2gcYcsdlYFTDkbmD1d9G/lTMTgaLkalND5V6hioHA+BhuamqAB3YH4wGQAVKiFLtgM8SHhX7uOGfGCPEuZ7hovEmp+aIHIfcDY76EvoG8Pr2qCj9m5+vSDT4ivcj3g39cmsfXVGOBQaLS2Msns5YCrCMq5cAuzSgkCOpTShLGkIg4lLZohMFEFh0NO7LPNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3e8f11eb-e866-4782-ab96-0c007f46c32f","name":"release-3e8f11eb-e866-4782-ab96-0c007f46c32f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"77362c98-a52e-4322-902c-7ee340cf1ce4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418461460778139398788286631690836079206768030328601293587332450938882292787106716982104249161675465583722472219914140632545838560069739027683519684748140336548233286649721412535166108394647098283263291213165337791993452321646862747765258045711898792972237506700490881532761873811243439526364294881","osProfile":{"computerName":"jianyunt2"},"vmId":"10739940-0a65-4ec4-a72a-f372ba72b413","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Klo0K19aLIP2UkHgSYDZkv4dnaGEGUZUbsOpRbVLxrMrm78rOBNRSWdpQ3wh9ZLDImW+NxefUj7B7Y2QM0wthQkQv9cl4G5CMmTATF+LmDhZCasUCDBwVfBLRq1pWZz5gSvNTsNaqPtVV6r0DlMz6TBlPzDn/A7PY89wRBjk6+H7LMhNDjmKujgRLX30kD3xRVovHiSM82rbtJz9n+UQbUTmB+Bckz9mlpv8vbypVieM8b6XcEaTMEVHspQT2KiN+gM6Qa48eq9LdcZ9ely2WykAikDfHhft3Tbag1bc3wY9KIFuond3QgigzqouVgH5tjfiF/7GYuNI+zxCo1iZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a53fd7a0-a0f9-4ef5-8de8-79bd2c208af4","name":"release-a53fd7a0-a0f9-4ef5-8de8-79bd2c208af4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"07b7a218-4b6e-4515-a97d-d6c62ea1153d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418341614304873670521017858127721582785807691289607691239792155497430044976074539836318301313516174171637455502096221417898644171850116584518112798095442059458344876130524017356969132194088171649902874017274210144462752810819834804225661867700765450860402212213043227462231956023036448894978306","osProfile":{"computerName":"jianyunt2"},"vmId":"e69f805f-c6a5-406c-b869-9ecc881dc13c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvt3KN4uckHwiUsHop5oAa/RvwdxPKHgYgvS71HZt7fdcKk5S6yrHVTLgps9txR9NYx7yttJkSvw1XTC2uQG1xoovgFmKRtZizPR2a1NB73Y+3zKwF811tNh9sfIL4W3JrVx9Te0wUG+p1u1dOgiazGN88tTQ5rTNxexmLt/PpOR9iZawgtwSa9YEB0GIxm2y6k3KN5PmxqNuEzKK2IpkZsFuFg0wg3ExrF6vCO6rFajk5nGpPW01H/wXOKgVs+9H33ZQuireHSVuSX8B0hXzsI75Qz8X/86P/crTxOmfwyTPRru2GXC2hQoS1e3paBIgbB5SESlWp20ISQwfjSFQ8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-11f63e78-8b0f-4548-8d41-2ff013078894","name":"release-11f63e78-8b0f-4548-8d41-2ff013078894","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"53ba8420-2339-444c-9f02-ed6fb56b9111","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418753095921013482498533522876756196355232560037213776937687596423242835519203223305200319384493634125173599543662193345608130745074100786160912746665831659635784995922432759255317566061500319171371529445315824837011125881995542758636431325049899240017254483567869584479264036037378","osProfile":{"computerName":"jianyunt2"},"vmId":"7cfb27fb-b023-4d97-88ad-0997ed554114","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3413GgOdcE3TmOCd+Go+BWsmPNze2XWmhd4fBUFtvvvo0z580zfUSiBntF5AqdiTOdpCHCYrpW6XkbE8MfXKGM4S4umKuWhcNEPI3wHpi7NvMRAIFOW/PzUs6+ksFmdkwSRpR77rwN2hpESlsVa57iN/WKQklM+0bObA9ZNu0H5NfHQjTZuyYY6vsMyAKb9GfykZ7l/VMRAG2vU0RhSw+dP3X2yCRdzHTfCUuHdR0jgNWg+Dej+oUF3VPkiQz6BYpEwMaqfkhByVOFhxZbtaucK1o8m8SdI7irbVUX1ui9WiNUpib3WC8jWBur6eL0/OOjgTsoqgRuMrY+60m+fBdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dd2705c2-29ee-4061-a9f9-82b6daaa525b","name":"release-dd2705c2-29ee-4061-a9f9-82b6daaa525b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f96837e8-1230-45fb-b73b-d880d1cc0efb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182971314320683777923287885971578776138994859268902878586608233536816473196297860632235098259791117314338086266070191142284369944870355602517059889499811203584304953373636297716715408163857662921328298473337372452490513051342434542116370669027558930398467149957981365543511866639544227479285","osProfile":{"computerName":"jianyunt2"},"vmId":"bed3f612-5795-40af-9fa1-837fcf82f0ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0FnV7uF193+3iNkw5aaHfoYtf4agLpHFSbKEGBoIFrk7LTjMsLfBMmmYVvJrgzOHW8kYmcOfrjaa6cUxXEAP6To6Nbe0yhQuD4fbvMnPNxOZk23GtFjFdOeg2jq1b2ZMJtHCRlTfzGB6/N7UTtc00u94KT3zSXVrQdjjcvnx8Xh+YO/Up+LcAwcXk6E9415zPzurYhgSQSofjQeCjpc5IcXBrfjRxUg5g6bYCgkS9iLpQJ8rc/kNTJ9nrI+PktNy5RTWiw4SXtw9kdlZjToPc+KugFjAuclHdfjepfmHAS8Zq0yUheJ0ppMLs71eZXXhsjlBSvGPIeviAACH5LM9QQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-127c5c5c-698f-4709-9479-4579ecdd0e80","name":"release-127c5c5c-698f-4709-9479-4579ecdd0e80","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"55c85109-b823-419d-b96b-f353c1578343","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183434942567046914655112989902808187894796951048262233164556150561792110158899835899930994831448370279464769149152753399843937289292110859799429137374359522124330841315825751447383415848373139838947414263669312532888831618269951858198780857134026717127851112865117502310991231777911095919","osProfile":{"computerName":"jianyunt2"},"vmId":"b060e762-876f-4b1a-93c0-2c1778118e96","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtuQbqLwRMWF20gcda1bIgWFj+5Nd3cmOnrV1d2OYpvt4IIKSOUlCAdjXQKhFWpEF/rtu+psR3MOHRGO6tpU46BdkCABxDmpivL1RtKnTYZhFfaeMDsF3CR81G7LU5TZdM79spY2+CZSwTPxITY2nwO8uPb8MTBfYbidlNA9p7FGycpOdWlr35t0gdGXd3ktmsac5QxFBs4sSoBSoBtiZoNXgh8+fUPm3p8EYl5EvJ6VFE29lieBU4n4V3AYlUZsENLPYG0D65ujl0829ESH4sESJ9VWwQDf4PSBEBM3CUJ+tF/uZKj0WFyiaBUyy3RwmcU+c72RRQmZCWrNH7m4cRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4584ffcf-d0cb-43da-b39c-1f6cc267d714","name":"release-4584ffcf-d0cb-43da-b39c-1f6cc267d714","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"15c740d0-a406-4223-b25b-057a9bea5152","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873919418241717806573829769847969698372541451971126199197550655839316452875336681825996724360233456323747568017614359968807926029642958942343198914748531696305556749375176221838770952309127387675567597264039337309835522555846925856841295783484279663754716392080419961940072859077119593317706932169659302600971346195612","osProfile":{"computerName":"jianyunt2"},"vmId":"04620092-d5b9-46d8-82a8-3fba81b7b60c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1D4rCrx/70ZkWdF2u75OnHcdzMlrjlHVxmIHysjOuV71PmWn7yCjcHju3cwpR7z53p2d2Xjfi28lr3kKV7pAwSV5mYIFKEhsmjJbNi75igHAEA/HIgesGTR5o15rAfSW2aDo3RkDx7K4SSzuwugeQuj6662wCKygBRMMDWkuhj4LgHGIkfOajpnQxlLLx3SjfVpQtsUmo+SoRhrlTh/ovnC4+jur/v99CYo9pdDC14faQ1ipbjD6824tdLgCV896ZwZbMc9EG/uY5mUjTNPeSlXN38Lb+tSVLwLJZ7gJlQlh1fGpCaogQeulhb/EKftpW6sF4OwbZc1H4hPXgnHuaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3a13b7f1-fb0b-43c3-8c91-5aba7103313f","name":"release-3a13b7f1-fb0b-43c3-8c91-5aba7103313f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"69661b23-4ddd-4a19-8b39-6191feb42ea8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418926693497354414135029145803174128593154141698484431191867058627866355205157438188483201850283634015428734842982523183142741836621935284733938607129292735927538519016081117685375293837436945741957776741683132295925146553969945015032948195587254658875124425140720761893227028725931249611783924975443435","osProfile":{"computerName":"jianyunt2"},"vmId":"d107e412-6714-47fd-9c88-5c35755a4904","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzdM30gnpJe8AeRUCU5oG4tOBAHL0CNjWSqDjsz50nfqwnhbNyojtgixy9JcbY6mjGbZjAbuTAt2RkmejuNqUiEEReXx5fcPkU7bXCi0XWaarZXYgOaouuOKrFCyGaUFMe/p2SUm0IUHAOOMkDqpPq+lui5u71O7/QJFPjvUR3DH4b2Vy8yIfYgwd6XgFjgHMuP680uhsjGitzMd06HfC+sJW4ToI+kOozHnKZrCgI608ws2dMTmv7rwjp6yrLuOejk9tUZi8RPkvgpzmmhvgwdwcb234x8lwkILuv3EPSfVyUC+T5cwOLnssTbnb/6BjuGTQANJLBwgRyOpAA0ByIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6c050ea7-d864-4e83-8e42-3c7fb3723630","name":"release-6c050ea7-d864-4e83-8e42-3c7fb3723630","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2ce41d30-382c-4daf-baf8-dab524e0c6aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418941148498913621687206274916980823588445519542554492296486134780749341993668521387062345132073145850383730868331702796338761268729437975571314351609618785721828280704310559962605582792906712689091685034495178462823614578558047630311325229965784488171641149039627856898498856996384648961241631","osProfile":{"computerName":"jianyunt2"},"vmId":"c1180509-f04b-4304-b28d-57f11f96e957","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0uy61joPAf+iovHMljz38zMg6nLgDDb5F3R1gUeirafym3C3JWsOOH4h/G58g/FVIpbi8rJUQbyZvRLrj3vSVpiBgr7QK1AUuKMP7HhqzhAw8NKT22vXm93249SiMvYhsPKXr9GJgFVSjy+ozjPMJg3Sy5qsbqm8rzqEfTsrBKa8vBbZacjGzY676dVPt+A0eNXd+vW1pEBd9+spzDJbR7mhoJDhvRc5Op/h191rl3texdNPVfzI5gs4Su1kuwquKAqpK1Mlk1tjb5TCiJL5v0SaV/13QAMY501mn6brBWEZL80+vuDQshaVIc82+BrXnfgFkHhJCcUjAnv45MCdGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9e510121-f43f-446e-80c3-413ea49f5f15","name":"release-9e510121-f43f-446e-80c3-413ea49f5f15","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"193ad009-7428-498d-b568-60c5600704d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41823072446425622539834231840932224832219838948340481444680387194563117899747032769463750033973469076841570419332182150231172886642294392668814983760390461848592341232599617045475671684121195505786978658090250047488015330906152118169449322499848782455355843959079334433504707968515284368223022314330398976340","osProfile":{"computerName":"jianyunt2"},"vmId":"a04d0070-f7d1-43f6-bfe9-21a4f2c5c029","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqhwEEErQqqR/WkLEyfj7vX4QexYVoAd7mzXS15sj30CXtrnQW493juh0r/Si3eCIuyNN0EH/0aE8B/hJW8sM2xFO7DkMwuKIFee0SUvJ/JOL3CPN4zAZqMiK+n8kZMEdHmw9vkgvPHWIlB1jSYLqyOvNqadGyHnc68PC8ChYhq41lMymYAvWCaAdj09sFDYlOxJEDI15TQE3QfPV+Xwlfi576cx7+H+RiaAb3VuzXTyjmVt4S5j1ur3Dn4l1NQVFXBeZC6++PHUcluPe1zFKIm1Dndp35f8TvEWkgxpH0h08ugX97rlMtCEfqx52I1MMkv0jplVtoKhBxucp9rerwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cbc167f3-e977-4223-9314-509c8a91c214","name":"release-cbc167f3-e977-4223-9314-509c8a91c214","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a94f4e40-52ba-4ff2-b337-a6b4c0f4efa0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186137473492198340964301862444921814633978175071453144603145372463175600294249415647663124225538347564270031319237126512589404604778023134457495595399682656384417378112758202316316085644323394273610980532712455568501129266149494748409149979119488970","osProfile":{"computerName":"jianyunt2"},"vmId":"21021b5f-3b1d-4ca1-b185-90b6660cf2f0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwOWW1Nm6MUoF5ApFA6h/82HZUNxsORqmCRoS14/GrEOOcFBpz2GsG2DBF1V3Fy8XDPNO7UQs8i9RMXebMhqTG4h9ZPvDZ5/6Cy/4YSDAY9yKZFSdcYDEAhKg5+GucN8wyrjiB6m1VfX8lKRPyalvZMSE/rh+LxROX6i5VAmN9Z1LAvD0xkMnjgYG+K1KEZ5ugoiA+tnmrpCWcE50gywQH5TbcBi39++KdY31szI7CttygtQsXeqBsK6CrgW677osWA3RSa9lwy1AHGilmv7EG31yDWk4PuUcryCjRX/7/dabzq5fyIWYH3RMv+mGkIwnCU+nJkCmaU9XCjz5UZboQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-36c2c267-a44e-4c6a-96ad-f31fafd0f01c","name":"release-36c2c267-a44e-4c6a-96ad-f31fafd0f01c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1c622017-f2a5-4872-b07a-9d0eb4fe3773","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41849026569766136765732609974578515214383522966940854347027142840608730404941524830272615824276953099967731827411291115313942429745325078086988593746286833841475783073403037707934519117155852147654493511908722163259504409430662556147","osProfile":{"computerName":"jianyunt2"},"vmId":"cbc64e33-b070-4620-9599-989ebc6492b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzn0PhXQXwdkMlNjYSCWj7EBFHmlW3XkMUVpqbe5/44Ew2l+wLZLwNqzja20P3peKfWbQZi6ZvE+6WjpBFQ6plW1L5wjPAsktGEFRqKZdIILhoILXHuhL3GH3Yv0OtE2rr1KSaFsb8GmnZUNk181htz3tBmyTkvo7JRVeok/+wtdGDNPVS7VViUbXus97621iNHP3u9nfmUfK+qTVpRYNNIXwwb25lQGZc7dxYIQL/j1m3c7i+h7F+CmvFuzB7fRVh04QdhiFc9e68CQW9YkmCXGB69WYa+C9JWlA1c6drhBhQdNVi05qg9hbQ0RVVkl0f4F+Hfk0i/Czy5ADkkJWZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f7b34bb9-212d-4f1d-9e0c-68eadccd69e2","name":"release-f7b34bb9-212d-4f1d-9e0c-68eadccd69e2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e1e508b7-ec33-410c-8dd1-db9877d42b26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418701737253954935952930448465713873948915993887641880887826365419205069804748641753823163992160110936011454429238558267430203619676506985751285931383518595108099421496712750834828962671524856274457492589721737737983339892159804545548686176124838271249939413172130745425006","osProfile":{"computerName":"jianyunt2"},"vmId":"b5a87ee5-3419-4e92-a93a-5abaeef9924e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuKKg2aT4vorodWr7ErjqPW3WTO3m7Ow+CTBAvbOK3Qc4I5AmfpEYRnfF0R9XdIj1B6PblYFzyC57p6i0ytFayssTgoOt6UOz0Y7fTjlZgBydzPK6rff9vuyeEhoB4Ze0mdshKmn4Ykw5TrA2Zac6Za53ZOst2GWLuhUZjNLOO0KRrdNoMkkUtkFVEroBj79z1FJeeioZ1x65QoI8gILJ3teXUxaCwlHA65pqQkmOyIDx2F16//dB42sO8l7diC3bXGh3BV4Ppv4HA8tqlIxuMdD3LaYjtms/JqXFqxmCqLiY5vnQxV85nQzDWVYo5h6kS1PCnV0eG7cZpq6WwI/IaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a064fa9d-20fd-4238-8a63-a964584cc108","name":"release-a064fa9d-20fd-4238-8a63-a964584cc108","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"70530020-e51a-4d2d-b4cf-4e2e9b847eaf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187255840318249331950126052104144498630851462580099144584897280256739199421896638890947675807458739517971333438091532393994613742116821943005833260613696170688526883297354292234794917585808056835761709960122899861729037145183332657791598221553","osProfile":{"computerName":"jianyunt2"},"vmId":"4fcf4f4b-8f6a-469a-9ac8-aa5e53c87757","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt9iw/jMaFiM5Xivm3dhBzbMyTrZnQbdNv1CIHl/xSitlaVY6sLOdoqsQuEPX2xt3ZIP/ZLwd9zISIBKNfz5UfrGnDojuCsT0ACfjVbXVz3MwmR76dPnqcJC+1aZl14RzI/EjDsqSpUantgnYfPceLmN/4LcAnq3JlpyR1tq2PFk7hVw8fpUNfBcf8yhXDA3slPeLj2+KxFWnbG1Hxofe57jUHFtEZjNLh2kqS0EXoM3Xwz8PSznsuMJ4VEfIoKc4euClDxt9WQZrQ9lJHcuO98Av0H6vhz28onvFO/G9uwDuPdz+1UPiD+SCFDf4r3WYt1Vpv+epLDu6r7d8MxqjTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-93d403a0-def8-4472-91a9-d5579312c6de","name":"release-93d403a0-def8-4472-91a9-d5579312c6de","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4a981519-e0d2-43db-85cc-793acb5d63cc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188835326587476155243672047339302430764909819491218948751144165158637725396736002751804626923759888096878791222938052185648348512645241541220343616625087091953732179145606358434488980237435873574288536198784562805608915427856965189486124472615051252376993870004266757789351148683463477982520414975497","osProfile":{"computerName":"jianyunt2"},"vmId":"39f19acc-de36-43f8-8cd4-9db3853e3615","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsBbS9tnOUeLESK/YQRl0UuaopwvkR82ikRNVeWOR+wsfJpdAGSETAG7jZDj/W+PADSXKusrulFiHX8uxCHuYJ85EjiGzOD4xLofYf5Hsmj/bpwm93iDX3kTzoc2s6PurcDEYq/iyrvHIwWOf+Yn6cU1NfrSerWjxAdP+OaSBW7rOP7a6CHFneMsDCGD4N7vOt9y5HIfZwwppr1vJloc0ZTXLobxu/W4dKBBFuWuv69AWeHwjCWIi1+NAZcNBs49gQxO8oZgCXm3x6bjbUQXRGu0szP0LiAheM5Zithj06QM+7yBL+EE3VPxMmpyHRXLD90tZFIu/YjoX6vhOkmTnSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-64717c2f-3ac5-4725-9ff7-18cbefc42fa5","name":"release-64717c2f-3ac5-4725-9ff7-18cbefc42fa5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3ad05e4f-7e8b-4ff0-ba1b-a99d2e143e71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41891922935277344969944527986446379102637746345517278109136193620376464478302276683012257655332356817977846797979822610773616245282958819473513884572309246514392118340142623662297786983843161839673545629623662943482195756101959370684876745197348788843","osProfile":{"computerName":"jianyunt2"},"vmId":"6dfb713f-5b19-4351-b340-c78e86a0905e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxPDAUyZk7/uNPw5HCfrojNKsSDdXvCHg28K9bDFivkBUD5EYELlU4BEd8vj8f/NMUFdJiIJU/KIeUtlpMV1HmUll4QWrMRngDvuGa6ficGORh/R5k2jxHpmYl8bqhE3FZkUcCEq9yidZtRHNTcIrXiGwqZjHJ8QaJxyIvotuv8U1JcMxa6wcW/FF4OgWHGvEv3kcRhMrekGWm26N2w07GZWzhQfLuGKwwWeHqIvfz9AdCntT7f+1i7TaGhepBizX4OrHP1BraJVoB9yGxPXrFz+C9+QQjHfxxBahekLi8RD120KxK+2X8xMi1tMf+E4FLvqynHQ1Ag8jS2wcIj1xEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cc9bb52a-8784-426e-a401-999a1acec5e3","name":"release-cc9bb52a-8784-426e-a401-999a1acec5e3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"68da6a8b-dc00-4b2d-b465-509679cfa45c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418853831346240555389197409667878128134545808489911323542076275732795337099803235867829534743148795789960088560862891658779983371723669538435150350756527107023472226906601455562851106529298519707367695578141769929267778818831524769131412819926419535578","osProfile":{"computerName":"jianyunt2"},"vmId":"68114bd3-0685-4f00-b182-70efa0eb5b1a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnbGlrR3yPeZ5TNSKPxkPDswtVov/TSF1uiGYB9sbADVggLLjunaPxPLjAH+pDCYV7j4yiw6CI/VkwFCOoT+5b04jfLmuHMnwii1aNN02xlE8Ek9eAmQkmB5wO5HUIm1kggvs5hhkPpIiMksKH49Vz/LmKcljkhWO2kOb7gtTg15hmS27U7xOhsEDzPEepUoZ85WtKzi+0AKwvyJcFA9zJ0MFiUB0D2ovtDxh//5Os9S8yvZU+e7uTUiBq2RJetaD6rN0e7bZNTBbrovF/faczDwuqwNgD1Pv2F7aFyfbp5SiNGw8iS0LJxshliJ3tvqfb+4DKoe780jM6tffGmP2EQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-12038ed3-e8c2-4cb2-9dfc-fbf93174917b","name":"release-12038ed3-e8c2-4cb2-9dfc-fbf93174917b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f78631b9-0f7e-4068-8c95-37f965aa97b0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189201104732523203815429141069902143074552158487015916400127508658299269682321132210049792652077074117917734647810094157586837627682148719408474941549188562219961878922441376538179043149406190342683118843240712791895408590724137124877517622277439244323","osProfile":{"computerName":"jianyunt2"},"vmId":"c6dc268e-31f8-46cf-9cbc-7f7e650a8ad0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8TlKNBBiaiqEHUZrMILJqipnfxJZ8WVVt68lHJRMoFABgaaxTMTTGB+vmBLsBxFNPEYZJKB+4e1akRtbUUI6oVPJi5i436KC2uw8D6amqmR9AUCwiZWdl1V7V3VbHlGfkmoVazzHbW7qdHHSpgjFnM5YvKc0tf4KuAY1651UdaZB832guIVyNqYPABmr6nQQN7BcRcnhpk5H9biG9p62ghFiJnewUxjPL82b6anzmDhnPQCHOoC810C64L4/VU4oe3YgiiXVnhHQCoTfTFErdVWxqEtQJd655AuDDnmtaANytOsdqUNgdz4tbr4erCq8jS027+Wee8/FEvo+5awpCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cce0c2db-0a59-4779-af70-999c935058eb","name":"release-cce0c2db-0a59-4779-af70-999c935058eb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e29050df-210d-479f-bb0a-7c13e8fa05ae","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418152099944890589153484095256457526278859055436711266943426758687879167861225264839592503815916484231186482080275192497137706349353111275728678214797858252858651998874199598752501354108269886812631982093701875527617057416480881974637675890118407615762139484018673611414257808502455575906415","osProfile":{"computerName":"jianyunt2"},"vmId":"264a3f13-4884-4940-8d62-4c3f642b92c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtxXshH4/xb2XJtmWs6EyMje13npVFW4T/8sc1k8TmB/ac2xzhSKwZ2ehp5CglxiCLu+K12UcLhzeTuQvbVtvrIqMEwGxeXSzWXQSKQ2JX3z6nF5ibLRC1Ouu+71EGI5rgB2nJ5Ui9IMw6EXxcRFGJ2iQb1FqgQVYlwvXHsqMyw7C3tpHEp0WfZxqRwrUCxYkcUof5vHZWZ9oSwtigAjJVLEv4s2H97S/U2UK3Lnu1hWPsTK92ai6j1wNUdECKfXXE+6b1TpzWAknqF09/8KSK09iQzVKYn3QxDmWP0OiHMp5gXNwgjsb5p7fID2uyLiogjytR9ueUWWU7kfxCarMqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cc7b5302-28bd-4696-8ff1-af811c335ef2","name":"release-cc7b5302-28bd-4696-8ff1-af811c335ef2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e4c42a8b-302e-4961-a0dd-e0b75b138a64","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418599253981306681565218923357161599141538981486466272864925980279577994922213868463052911854585571246165604920867825016651122289778996195657863848210175096250158128190068363539146185773178907513856729152728957002596952607151879171651541310811014888843720509725884562629484605591127561256195399906029436631289737","osProfile":{"computerName":"jianyunt2"},"vmId":"8606aa50-58c9-4e8b-b8be-b096adacfb5b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqZavrw+EHYUsDMk7mAAwXIB+64RHybp9GhgWKSJon2yzG1OQ4pVXMvdqZK2Y6XdOjX4LQ4QB5Zr/SfTafLquNMcMR5lwm0OJuZT7a4fDX7yJU8FcA6ij+f5rDyQM8cjEPT9LHkClQdmf8wV0P0VVABx2Rz/+HvIUpofmF6Ps55/jv+SAslN5PLl+RXi9G1wQ1f5bXsu+eym8FmM/D3+mJMa2fDNrtdRxDf5tRNXSVCnc/EdXet1RcxX42JOivQqq23y+Ews4HkhM1tl3fzB/iw8rUC79LYYxk8rQ7zxPbToOLLYD3U7DhYQv9HaBt6A3FXgmCyDqBsGR3no4JLqbVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9a9e5322-a33e-466b-b2f4-35554a104bb0","name":"release-9a9e5322-a33e-466b-b2f4-35554a104bb0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3bcfcd0f-5318-4a70-a264-ba27dea847dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41840049454600431248922509478149107779189565918087389177743917547428431353516978364113950677749384854271839427484574325435826525697679678369783562114602299936799271216370217398869763670852759258975374948489853438031525359861149654223915438865","osProfile":{"computerName":"jianyunt2"},"vmId":"aeb20804-feeb-45b2-8f23-218b72216386","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvgVUNus7fKZAE6uJ071lc5+RVrM93hHXOgXRuYqdCjxEa2otUungPr30trDOFREviHVUSy0pTCpUjx2JWjDgzXynHI+F2QYEE37hOhHO0J7IPA8MU6tL4FtEaDw+sw98DYtAm/zFEejveaQGfpNsiOTzqLrPHsOLinZKba/H4iWLG7YuzmC53L1qckHXgOygJwRz+3da4dYJEGcWCwYg+ml6R821Wm4Cm/A4bMk5d+3nqK0dNM0UiK0POu2UREN+RSUG+gxpaBCSdS467cpO25e4Mm3WZhtaEiMoPUlC8z75/Ue/YjwJ9gT4tY0Ec3HinuogLdCl2Lsjb3qVlM/HWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2e9b6612-9dff-4da5-ba22-7e4f714163d6","name":"release-2e9b6612-9dff-4da5-ba22-7e4f714163d6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4378063d-313f-4c7e-bbd9-c16c5011f0ec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41848104236212295792839708943767935557725375981824971032763174303261889732138726448802126494361264994705261930075416095190788563678817935697234159262598985901818535647505188730214609443677467076752489739226130547320261903109575316456791131667638771457","osProfile":{"computerName":"jianyunt2"},"vmId":"45d93f1e-fc4a-490c-9265-cfc080d9d1e3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq2MeoWi6pPFPul7Kc599cQLnJoVDnrGQGAmaxYrvBmmWl8Y6qkpPK6jPjzma+1QPIQvT9qD0irk1sXD+aDuyFd02rFVdV8lHgVOY15gem0SAG0OJo1kqKuDAS0jhERtKc//o6jCkxH1Gb31fCi71ealh7a3JsA/hqQH9iz4artAXfDviWN6OgeqYIfi88lW2jqfsDNJiJHAK+4acFeOyUrfezEDDYjVM462BQf/fqIgkhu4uzNOSXWNXSW9Am20jhcY5vhpRMQO+/rotvjlgpoHUq554+eJJAZsw6qmITI7Oaoxrmnv67TXxipUa3hLU+C5g2VuoqbYGKHn6QRs31QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bbec7ca5-71a0-4ad0-9bfd-874a1e75866b","name":"release-bbec7ca5-71a0-4ad0-9bfd-874a1e75866b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cde6d10c-bdfe-4194-a9db-ae29b948f9bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41853929720781318045272905627659771188341226181658453164331963097969172286822689605885341824184424298203426867621573207601820245632249190248147327411278003810933477548667862032425384955968079006876292175738681367199116530372026178912916176247112889670948423812672331619914450997755594","osProfile":{"computerName":"jianyunt2"},"vmId":"b05faaaa-9ad0-457b-abea-231277888930","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuhrX4I6O9KNKz9+bE907NfwZX11eU0faSk3WQpB9RnTz4rqJE9JLNlB1UEIl+WwLFkn6TwTqKsgAGTBKW3mO3gPgCDfm12IeT9ZAkYmSmGLVj2xRexk+tDCgxU5zTJWtz6vzRn+x+7T9p9nfskjaqu2t+C3K3OC6Hs7ktsxIXZRCiXhMQzoaS5tnFJxn9xRp+X0o4HIScTCxxXGXepeHvUzgKoYZN8Y19AbzEucSSBR2pXYizJC+iqHAR4fJSIxi5ylemWG8xWZl3EzKOgV/pSiGc8zkd9swyvRFYofzQOOBoc7OO+dCx4tai9qb8FFEQ4Wk1dnBMT0zr2CnZjq80QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3c019e1d-41d1-43f8-83e1-437efddcfbcf","name":"release-3c019e1d-41d1-43f8-83e1-437efddcfbcf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4285af51-fb31-4a31-84a6-18334dd05940","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41840285723353862788997415955701157153951731884253978441356183889118906355864317091678245317026401713354122304476570989616016293495286761066630664388707756017695888870449993625703847719973916481880959849949225162285093355935688123409399245491467750917328841487216034033905069728739777392885549942136532931274057","osProfile":{"computerName":"jianyunt2"},"vmId":"12d07cff-e315-4f9c-97bb-f45fee8d4bf9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1I4rIDjZQhVJbGEnIYnCCouwEFow2NVhU7jXCSauVJ46JCLFaP0fUWf8O+Uc3S7WcLW1bq/2gN+pXdMGSJ7U8kRFPVmTyI5pBSBg/KvWKDm2bl4IQkhVl60oDT/GuAJJBqVL08vDDsTeFPXDTaM9M44e3wyfnqHaBBzyeSGH2zrRH2D9/ddTSBzDaLKKsxYEAu7sosDkWfaxZexx7pOP+aPoRrBvOuLK+syUzYbvxFO4Ys3jaj6IdjwXdRngWZCfqunrBLuE5QMKD5KxClx/rHhB6/1sbJltxDtwW4ga3y2Ae37R8wS/PF8+TJdA3cMEmx+W6ztWN++MV9no3k+30wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-99d6d812-27aa-467c-8700-7946904648ff","name":"release-99d6d812-27aa-467c-8700-7946904648ff","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"253d0ce8-bc34-462e-a9e0-e8bb7a3458f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418395653791102562082639489100688106099277965294136550835423705835883715291284741875516187762196096049671186446944890951202788911494673238543203741346506497742976185209043078656657283837497877155013710803067118652217458628852719395847258330629578901076","osProfile":{"computerName":"jianyunt2"},"vmId":"5a0e9ad7-bf42-4246-89ed-60889fc50ae7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxqOc00bwSC14EYyHhTC+lYfn4swQmKl3zCYvAOkWP1/J02KMpV7TLsqTOE2kyxGAxQWI8Tzlj43gSjyeU1O9Yl59Psc9kbpglApQnZUFFWL07V/KaS7IicygLpyN48ye/vOQUyqu4Sj+Wetd7P3ms0ssYL1Cp3XqbbjMec9f6fvgsi6aAgdZWq6ck1d51/u7KOVYcUEvfWV1UJi/XJAQ58AAErL8KWcN/2dFifjsb4Jbuh0qJOCzVLI/YGscKPY+dNv8nbjO8lqcbxaznzHWxnbR9EmsQYJOnUSu47Wj00Ffqq8zDahqAVh/GJOHckEnEyZsVudCL6OMcKiyzg8YtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2be909f4-563c-4a9d-861b-05be7d246732","name":"release-2be909f4-563c-4a9d-861b-05be7d246732","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d8d4a3a7-f406-470e-8251-8f03cbe5d272","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41846705793426265727870810912646439528517575996882207296755673307194104515972026993842483042071408677938284323983066465655153753001392241072941316707567796384640557833939784998269262930282612104120318303342336750563354454545154950986981541531532722388464826","osProfile":{"computerName":"jianyunt2"},"vmId":"63399a7e-2ebd-4dd2-b367-9e71b4d751c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5IzatTmrBCuiJIWjJ8YavcTflEp2sfHTS8SYaia7tyruzxqBgajYbo/0I6ddbAKN1YWM0tRS7uRiFEC4Zwtw33S1f/vDyshmqujQtjg2Ra8u4ainCnYZPyCivkb+ZEabSND34Tdy3xaMc1FEDHZFYHwf70j5voJTAfuh+pAACDsIwyVlwcIGrxtQWzMvKl8X3iSMwp40s3PPqGSO3So+W6mdUiV78SNjbedNBkXD4WbvuBBkK0xSpxiyqqDJLdWtcG/mKID2qxwlIUfZDLSeqrSeJwRslkIm1aJx8nYV3k6Uxn7EXeJQjoKufr+wJcWjB4a5CJUcQgP1j4LNYgH7swIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0cc08d36-ba6c-48e1-b9fd-8a7bcb4f3cb5","name":"release-0cc08d36-ba6c-48e1-b9fd-8a7bcb4f3cb5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"56ecbc9c-8325-4bd4-b6c3-47f270075caf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187072555460545679555535607839671579912191595123530454384138516197251568112980384801987898387246368629094073104985355481854874693790068544327386985328900671809514178293623466759919741761234712679907822183637871160826916263994607181868257812466828390","osProfile":{"computerName":"jianyunt2"},"vmId":"3826a2da-95d9-45d4-a1fe-a6dea5410594","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2+IxSYS5vAvskUSmrHMCBUv1iVdZeclr7hilOEcjaf6JjUoXb0uSzVxRXMRe0htkquZMObNT7SYaz/mFRBc234BUGGUJhf2AgasQI4qPLDZUdXKeChtZOEKpTGkRVYLNG4VrdlRiPAjDTDxahGmbP/exYbd38R69fIdDBn9CAaSTFB8fh4nGBbbLvsGssyraKa/09XuFq70vMIn7PUEryXp152IHZoqug9azzRs0wSZJXyMsDsp2cHhfE8t6NT9FSkuXc38dpVbgjIkmBvSo9lrI5R2mpvbCaom4F1kPKqFh/S6JxsF9B/f789XltjnW8GTxIfo88Zxqo2BzXWMjowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2672a70e-c54f-4b9f-9737-f0aae9d07d39","name":"release-2672a70e-c54f-4b9f-9737-f0aae9d07d39","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9589aa8b-725f-467a-894d-321dbf22f606","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184195849012517644421788198644614198348699257173174668171862557967836640253844213899628603378575520248218160158446687981849371849446585941864809989409480444615934076163697065742310957458346462204519086977593794861186816122957960688683182063632265937868890182817999032617178298018870027124196","osProfile":{"computerName":"jianyunt2"},"vmId":"c35eeaed-049a-4010-b774-791757b1a368","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqYqbn2bShGY1N2fEGPXfPwsloSjtr75NZDLThQAH/yW91O4MbRiOqJWNW8uZH2m3lAalT8+2GruEgY9sQYHZhSmJ9l5gsNhK8CHOMIEPzYOZF4IUtT/bX217moVLQ0c9I5TESv5GKs6ug45qW705K2RTBa58Eemx+/6+C89ykfFKvgbNjiaGhgn3okuIns9Kbm12B2mafVpcgV7Xyzs9o76AEcOIw+di9xn/Pxf/gydkuR3NsQSD6fA/sM8kR+8ceb/WaMjAfAfvANHQB9cZV/QYvfagtuExpVz9ruOsL5z/v45I1u2K7+45H8jw0dHd1xZz/0EXbgd2CAqWKav8XQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ba2cebf7-950c-4255-bf19-a0f5d34f200b","name":"release-ba2cebf7-950c-4255-bf19-a0f5d34f200b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"beffaabc-e38f-4215-99ea-5223c5134e52","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418885507280167721108397273651846605575117854476753056643341674860254329484583184708408612326493833329797679537995656085483639936325184139784061881228095668911214242227093365591916383508252357777837344481182901125829673039287525422781213495917848616118","osProfile":{"computerName":"jianyunt2"},"vmId":"9a26522f-c791-4b69-86f7-461bd91ad0e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoxcuntICu+HfKqvFZvqnZpdJrY3jrreiFkwiGUMvUfwdRYUFhbDEg9GYPpk753RAIDVHHBY8KNJeycBI5zoBFWsBbBHuvrKR7UuxJeenXsiy6jDpC7ZNOkybDcc5Pluo3MCg3om6y5AkeYU1rn/S0S0c1hSpgB4kFTW7MnRyMxPc6joGmdDR3ceUz1bTCD3Br7UQvnfeBpG0o7I/ejSCuvjqyWyW4sEkVyQJ48ohghIaDbsxAZFKm8ZU63PiwUHwRdLuwuabvRIWQnmOQ2lpRBERonbNQu9eewypUImQo3w5zI09tD6g75AHWPkcGq/9c+ISTWQOF4YpkKP5mqD2zQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d5141830-0d12-49c6-9170-615a70481978","name":"release-d5141830-0d12-49c6-9170-615a70481978","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4a7fcbee-a53d-425f-97dc-e7541756d599","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41878517121102973885770603797598414840162681341550944125935123994299422376714553230729751816618685194547949211991682654911364649749258757040898384296538444691935759956678311031296169760758729596491583872492933897184513799857535392457193388979140644976111350925416603095925422475617636873325406933923985233","osProfile":{"computerName":"jianyunt2"},"vmId":"ed7d879a-29f5-492a-a127-95461761dba5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmTSnZ7SYYVnng2dD/lNt/8/J05vfaZIoOlQyIs0Ug9GRfyUCd3SDavVcpxGx2LMsXfJNZG8YcccIWvQg21HeJvLJMzBNBzHx5fKsIwNJ+S6IMF+2x9Ac6GjqZEDHgXYxU1ej210h3roT/tgTiMhwa/X1hIej08/xhKghlj1ZJFKVoNb8Mn7d/QYopViFj0IZVN8w9xjRlPL7JS6zEHhNYAV+lKrWQ7Ohy7yBqqVVA7jgMAP9hoKc+nXu+ikfw/bP5QZQkGyo89XpJK67AHYpM8ZxSkHc5x5HyAPjpdz7SX8U7mNajbdE8H9uvPX0N9hF7QlHI77XzwtQqmKX7hyFjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d1e61c0d-5c49-4858-9cc0-8d02b0643b29","name":"release-d1e61c0d-5c49-4858-9cc0-8d02b0643b29","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3f5e6df3-264c-43d4-af70-004ac1161909","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185494164819163077825246983757993675732302738783734189017929363493346615412132551174774122337301219412790609153375689465950983162016357189463389214903157025501479868177804602361119128783281166944799597640892675962366921126569823629156907258822192854948","osProfile":{"computerName":"jianyunt2"},"vmId":"c4e6b97c-ff67-471f-b249-9647b1ded19c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwMg+dMtaeGXMR4eCV2S6x4bh9JDphbA+r3ElmWAkyCNDi0Yoy45ry+/gqf/6U2E1WUxBcomIUjJ8F4h+ZXwo8nDUWT3gRcvJ7YOWDMqyzRxNHa6wl+Ezu0XNWluKu6tbptofvMw3TIMkE9P/ZxQXho9vQnuj4XEd/PN4pr02Vp3A9nLpIgqZUHB+2khqe9LaON3zvrIt8KecmQNk4HMIKhIwtVkRnMTzTSQVxrOunw/hYiKQECcm/hl7esVONNm2ac0yneZIRMagYvG+9961+D6AnmlHwnTKICynmEncB3E7LQBROWX2AK+gJ5i4wjUKdLgPMu5/0U/fAqicmrAlGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-414fc3b3-9497-49c5-a353-a1cadd0cf339","name":"release-414fc3b3-9497-49c5-a353-a1cadd0cf339","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6d3b31f5-f7b7-472a-b046-200b5287b02f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418964115671692785225094632252807554563933603885202190390620714495432324168788164988352972813914591132402241616397256939009159221359454469819225517194521868130402790521281587688897580186738267869817866435193575410566460562636842893824635022348515093281671760656145749669368751686853379","osProfile":{"computerName":"jianyunt2"},"vmId":"6f181ad1-185d-4aa1-b1a6-b08400a01168","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwTZ6FGnQCzimXtnuxMgcxUYKk7bJLYNalxoiJv7Y9TwhH6AuFQv4xloMN1F3tdxRMy2rtFAn8qMg5j4Xm/JUgmtg5bktlPm0U/bXJrDwolZH07BMrOpQx/x6Uo9JqHAPDMkSNxMc0K4inRUskb5P0Dh/8P4xX+zOn04Ij53qIz1Efp34orwcq3PchhkXwpRpAOmL2cVUoVak1ogfMJ4mq6FKfHTUfWrsmvCqpIeCJNIBbsJQ7V08eG2vURYrb/8zcrNmYmk7jqpQRHYYCDciIG2fJboy1xK/4tHKLAo936iQL2Xe3DvBldVuJpgpnDr77uBTsc1BcE1RIOwRgLL1jwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f2114d8e-2a9b-46eb-9c9f-3eec88011a35","name":"release-f2114d8e-2a9b-46eb-9c9f-3eec88011a35","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a0b3f54c-a943-4b6e-8af6-dfdc8c8f5499","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418175548079099925657738679226814264272413072588473719520301879311209493139734196957591859206153935925454765320917167473703297129474196754887443441619706331960831475094418888791107386626687746505232585388415071196238087804920627455361577927677174","osProfile":{"computerName":"jianyunt2"},"vmId":"8a604145-7e3d-4369-92d5-c165402159d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1G9uPmCRs49izwo3SDBoEX8w6809f6Qks+GsgvQOLnthA+R+ek1E2IHTBEMTvnwAmUNb8SLwGecLJwVwjD5wQxq+wP3kG4NI9hqRmlv4nx1oyTSJHPjUVCJWaegAAXTdeUE+7UPc8e6BXCCTjDk15xKPv6M9EFMYT1Q84jEgAfkMqZvgohpnu1BBMrQDSuwlqCidUhY7UBtZpqQxk3F30CL5MOEEDUJfbgyzmojW7/by4qc+lCiVdOHd741zA5+W5EZ6zhRdyE87dz2MsiR77eu/Sc6K46ws1DPeJ884mVLwuTEYP/aT2Z8NGqblX0+XcjY5BL/ASgIryUjgPDCu6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-40faa741-b602-4e04-97e8-1e30a6ed14c4","name":"release-40faa741-b602-4e04-97e8-1e30a6ed14c4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"243ef05a-c328-49e8-941b-3c08f81322bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186154866476367469474615504594111729423526572877467294929037083393371976005152775749390941522034562425289952634597548066139648821836661356264610125847161359895375355394763674267281144862456998187085283822339086710108453441016415336826798166347285","osProfile":{"computerName":"jianyunt2"},"vmId":"1433debc-c532-4082-b89e-f27e489cd264","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsNc18M99v830waE+8xrDO/GCZJygb822+Vu0jxXF4nVZoIZwzyL068UVqy5oii7O5cLK9w2JtOdEIfdxk4XIh0WzUBR1wNEsUqyL8lR3Pzcy9ysKWeDktQ7jNV49g9ZRdsGzHZzBYWAahxjxEBqkoWRA4JrTAUOTAbbCHqQzJci4ZuOvAbr+/YSza9v2MXEu9wJ0wbSQ3wGrXZrRZJeKEsyvWfMEZoqbKJAiYnYWfunCgeI4EgTf80PewB4y612UiYRsSFcGQ0D88lvC91JM0uw7/e2uIq50hkYB3trKjruQb439wQXVch+O1t4xwtAYQ4uNQ/QfFD4GZ127KL0VNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-48c87a84-694f-4f60-ba5b-f36f93600da4","name":"release-48c87a84-694f-4f60-ba5b-f36f93600da4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"13a29671-61c6-428e-ad24-cb95e24742ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41877898980776762147371381689306862303994842825657654526842462956088007018765913142050188876975783125556563323918485656008285559429838156618737081218510516032143464417091935654491896622121120768171582854474183886165663623269967996168296192461921079601116562418480063056829199402483","osProfile":{"computerName":"jianyunt2"},"vmId":"6914f948-41b6-4187-a96f-4653f55b7499","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAurziqPbFMZUkB7FgNPec/kn6evx1leLEtJqFiH9ZiV0sS3XhOps4qOImB3FakcrH8x4uctF88C9iU6ns2g8j7X+wWKV7V8IVrwZVT5wj+4mv7yl2TrpIBNATRXNusi982NpQ5q3Mvehs0vxG0o7nor39PnZMxu8mMpzWiH8XjNU4VjsL49gstQwTp8NloBPCcbZOjn/8z0upL1SfJM5xBlXzCFleBJEO4Jjrwpq0t3yULUESGB8twnvLN7klF+eWRo4xUnjxVRxH0w0vH7eVq9HUXVM2zyk4WobDdTcoHyUB8eVa6U71p7d3Z5lea+lL3PBt3OTxDWGNK/L/WMwimQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-621f6f0d-7668-4849-9d63-e9a76eb03ef8","name":"release-621f6f0d-7668-4849-9d63-e9a76eb03ef8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"77fcebe7-3044-4df3-92c3-930ad9fad809","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41848009762362688694118489470939726352928453399184263709063889749874089738714822392862483558405208523270521393775210138767758264863582784057578443917230319366900790013650143049856148132396318399901272656878804553253626666796","osProfile":{"computerName":"jianyunt2"},"vmId":"1ec2533b-ab3b-4de6-b753-a19bf978bf22","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv5IkpYACdzhurUOTEvLBA2Mr1wkxbs6WuAoqx3pfDCmlA4Zdnp8DEiABVXu6yA1DxVBix4tfu5+DPvO+mV4OWRMcVteg3f8qw6HsPu4DVzhmFPe+etKrOSm5fUSShVDX/0ELY2Se1NRRR3ULL0dIbnqIXsVqSdcZj0pRp50Oz9ssrLj/eogmxblW6yhX4/ytE5SUhC5EaiMzzti+zDrm+Fak5lC/8DVrN4qp/EvIvXQyF5pDKdBcx/MD79h2OxY47j+fBGEApQBw4p7UD5tArs4mVIgrVuLLM7w8zSsbOsTp9PPVUrt0UKGIOkydWd1uOLV9qy5egSmAQ+F29yaBoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-aaf368d7-24f9-4917-8656-273207c12d59","name":"release-aaf368d7-24f9-4917-8656-273207c12d59","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ac16542e-8c9d-4278-b6f8-ad7af9585749","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189207564715317607090889844089706341844887252872512157102926045315670564052985158440907769688323595610899792606116703628312915526343088806130522755364720481805188413214772309768653141324355839903860437941374483059846809","osProfile":{"computerName":"jianyunt2"},"vmId":"843cff70-ce5a-4a3d-89de-142916d7eff9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuMJUuyZdueLDN24mO1A/XOkUDve1ahYRgP8IXoyK9/JiKBQjOaGL45zM2XbOBeG69XMfJxK9oQa2C+DGExlfm3pOYSjV3culX34JR3IG73Yam8fNNlQY1VVAmrM+JE9PVEHkLGcKf8EhNGnQzmDlNX64ixcfuSB1EK7wT4vWAWfBNowwqc6JYjnIR1VWvEkTePMFjcRXlzs+5sqg/7vSSzG+VnQWybjPEfH+h2J8KtoV1a4XqmndSENhTSVqSHwHa4Mobv85hHgnn5ssPTOb041a3RFogMan1FsDIRiyvCSM9IvLfWma6TU61S1S5lRq5w/+vZUrQeyO1gL+uO9mowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4f076fa5-78a8-43f0-87a0-2ff4834dd4be","name":"release-4f076fa5-78a8-43f0-87a0-2ff4834dd4be","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5a563bc0-f7ed-49a9-bfeb-8a6a1d4bccb9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183230740790449068048430038379132258571987296109859956142348542218176697765053286057352463723172359952216930139548827538983158349821674214904146037089433752226243064340075977963017541594119046170524462456192435794989406259440023432731287127403273632168803","osProfile":{"computerName":"jianyunt2"},"vmId":"445b3f01-ed78-47da-aab9-4744f8191557","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0pNX+0aI52yXkgFwAjS7TvvomQ5272iRtK91dYXK+kJ1LQF+dVpsHtJME8b6/OLs7q6BJlrbaAxaI5LIn2jpDFuUHdjq2JkCbKmwRF03OOuigf/Bpn1KFfLOpeby6Qx6rYNgVQevZQGiUmxgqzbi5KGjiTo/sfP9vEW0nt4vruINhNXPBf7haPYSIIkJJaPjZwQn/7HvQ2tMLfX/VqZ11/vVraIIEcHHJBfJV11+3KfhgyO2MMCsVjFFfclCDlqC5BVxV+sWZkAOWG+x6UXz/jJlDCEpW30R1004jwFicvDqMjEsPA8IJX3hX2pVkzDGs4YzOFDLKhaB+lUKO9FzOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e7cb442b-95a6-431c-a2f8-aaf0cc902b0d","name":"release-e7cb442b-95a6-431c-a2f8-aaf0cc902b0d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26ce79d4-f548-46c4-a4ce-8621017d70e1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418923408978798423436642616683609731316391351883337582294095828191725365157395830808149178887876162984698999309408059206064078509083457884682121981976436637646084451387452299962552689400400229869170984389808274398902916815689409404982162815686953120138116631","osProfile":{"computerName":"jianyunt2"},"vmId":"a5ebf9dc-19c2-459a-ab36-55b29222cec6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxDfDuKJ3KunRVHoZrcBbNp+y5/ZEonUdTgaz5wdAbJM24Bml2Y99EJNDP+ICSjGwxSoyeWRIddQsXeFP+GAegE06i/ACo0kqUEh/kzeRPiWeVJeVz0RNf4cAp8rWMiLPkygmrMmMXBETD9Fw1JAokbFOf1Xt6xaIlAdacTHtvQdh03Hjv2VH8ncTkkh4GxZQeQDG+jyJYBK95nvjKHdOGb+UDxxNeu97oWGtxIYexUuQ3GcvLBVWs23dMwNfCyeklhNiA+vR69IgEBswxHfD0LzHuqntHR3U4JVxqq9CZxxQMsBQAXDvI3yUCCPews4vJMBOxH6u7J1Ssx3r8xdecwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ae883499-8ee3-490f-b9f2-4e2b4b14e924","name":"release-ae883499-8ee3-490f-b9f2-4e2b4b14e924","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cad78959-01d6-46cc-8673-100574e1b756","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41865433521966911637472276451965301403986857798898504150193978461142847380646347145715723851839017941715937868047527897665137984977884143509306266392444309771799407151292159843096111662956083396957835609926613885513269258731929804451010484126386483542016203450484631671801137283514","osProfile":{"computerName":"jianyunt2"},"vmId":"c766ee11-cbe3-4fdc-a73e-1313b856338f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA25har1m06OkwMDNP3A3v/A9wsJTpHj4fyn1YVdgKIZygJcu0ctRc5FLjyEnKLxS0w8HYO/3dlq3M2dF9q4i+5NmSEucj8yhWh1V816eQBZg7iVo59u9gbxKdGUKMsWZR9FT/Ae6qqpE/XmUKzqEEnJa1gjm1E3jVz4bQMLkQ7gD9gcUB6PYIJF+YiNE6xtle5xGcZ2UqHTBdd+cCrzZcfUudOeR/clX5yXUiz9LgdJ6j3lz1LmGrO0jiw//hYsYXfAX/noC9uooW795VLxic5/nv9MWfg2Y5xUCU649bth7fhM3SCUF8xENG+3Lfrko4otXuNBLpC/6tzt1wyokruQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5a75c5ba-c119-4697-b335-0bb44cd326ed","name":"release-5a75c5ba-c119-4697-b335-0bb44cd326ed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4152c381-a8df-44c6-95ae-a99b7659ce86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418307293122152804067479034094037326163574264825178677474652435826655143918398263789132255961843896708354934237805123709244132284168706600799749332454055222989644566374425445828813638560339658657190123943155136964448873324888313743895816056745764382338486062260626777369393275367251926439450745127","osProfile":{"computerName":"jianyunt2"},"vmId":"5cee3abc-d6d5-4532-8d9c-e6be21ba2d33","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqyn7BMHavMFLwdO4CbN+2UE4a7CehqlX8JRA2SpmMxoJf11+l4YYIGRSdJxxr0OgKZo3MWPvfbK4egEgs8vr1SeIcAd8P84jXpc+Rp+B1uYKMp30hXx5PoGX48qtttIXuEd0kfSJZxOdGz2xYQFa6MaiJkEZyZcWceX0APYcSemx/rURhKFGblHMI/XqUypKGkeNtO+X5V6lOcuFJx3YXGQke7uEurLr/VknTJzj+XZ01+xbzNgfcLBjKV8cKI+iimwvCbKFdF+WsvfkZ+roVywEPD02dkGmY1KhSImeJo1PYKtOIQSESbhRrHxoeMC0kBDcs6tCS95OHIuymDoqUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7dd2f2a2-2e97-425a-9330-c0208ea6fb1e","name":"release-7dd2f2a2-2e97-425a-9330-c0208ea6fb1e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"550e572c-f62b-464a-bfdb-ec90a054cf88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418156329940634943986649477287931057653726876968360299416819388782252179391566523370145570992637672876918160660913423909559436685191487349994571206839839925644314629884889695486826440523667360669276699648109968194462291498905771093655608577788435776766832834661","osProfile":{"computerName":"jianyunt2"},"vmId":"390c3f86-cae8-466f-956e-e4127f37ec6e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4QYllvAEntM4SfEx5o3b4MUL+cGNYs2HiQ//Rzzz+OTAbWamv1IByRTFmCMfY3gSoeUzkEO8s1++CPYN7vutT1iSL8LAG4MAUFO310Jg8e4NrpUJszDEz1GwA5D1U9HuJHKwQ4k9AT41gJ/ptUDE/6lcWl8xW+ByxCW33BFQQRuL71crAmGXGMjQrzJB67VJOKsRng145nv9T3kC2FJ5bO8eb53OiBpjev6Dm1vGV0OYKTs1cHwshk3W2nSkhiKVLy/tmrAbfPJlWI2sCvqeGPtSv424mWhF1Y2kzNoI9YKEb83G6zFxfD9gq0VmUTXutGQ735JNPleL7ZJTLiPsuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e82809e2-aa88-4a8d-851f-437e118d3bec","name":"release-e82809e2-aa88-4a8d-851f-437e118d3bec","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4783b75b-4930-43fc-a5a9-81d8e64aa61b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41866522016713432408831105360322003778211117980448247954803122084712684989155136079967587099330304964156766518560214448806179126973743652992659513681895483395117378989538961071314409447354068320355513472108938312392813111837726834181704095825938354404237497464482612274716688179621243166472811056816537844572488748651973731750777682676","osProfile":{"computerName":"jianyunt2"},"vmId":"b8a1c87c-529e-49f7-85ff-72bcef308e76","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwA1ikYHX4CNhFVxh2AmL3Bw3mgbNcdRw2JnCN9ZrA8ZAUT+n/2t7lGqBhXxajod+yaSxdcQtdJuC20WQw7SCOcR+1ZBT1/dRbT1xaR6i+IUsc474vcWX/xGtuV/grTRoiMYnigpijx4xGtWJ/Pnot2RFHskbNBFyk0MYKceefJV+LDcWw4fVtwCTp1R+JAAA4kJX+YuCX7QWBqvOGqMoUKvKAiNEMoo3lfzQGKacUb1YYBhteQrGxVA+pENFnYxzSCqRl16S0pujwawi1U00zpLywwUSbc+n2anZIPWrQYQnLQFtm9WL9wi7N+feIXhr1Pgexm1P3QXfCHJwai7wVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e04f3638-0861-45c2-b2df-033cabaafa0f","name":"release-e04f3638-0861-45c2-b2df-033cabaafa0f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ad134f91-9ffd-4fa9-b98e-cb2e9999923e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418387573343046876503633066474946598071313525168704720922370383113539702130805914536187491433777425299132225477180991130261971757851807468599893211477969992354187921198527288863716265849131257644418620992315932240721459423550376937266249643069253217162432247590668683161737093707","osProfile":{"computerName":"jianyunt2"},"vmId":"09f58632-1202-41c3-ba94-f50aa22aacb3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvrKFlnh71SJQ1iP9utlzF5B/AYefxEMEPEL3KSa5rGfWgDV32uxkVdlTIcSmKaEzGLH07mjbj11Fp+5Vcjfj05rF5BvEwsb6/ZERsY93I+XLznZhIbkHdoy/bA3RDFAKlpDQMMsl02ugD6VYm9b2PDm4Scdujxtr13nOIl5KuhelRAgjbjVNc2VeLtOxMUrBdMsyjA5HbiknFWhhBHDU80tteFkIJbacUg9oI8CvgwbTQ30Q79IueExZs22k22YQUCM+HHxJ15N0hbEs0NHaqcjDI8DpHbEuErsBrfBBLicH53CikqdncVcEbSvikJ+GSW/vYl0lLo9gdKObq7AZVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e6ce3a61-b38d-4abb-b699-c93e8484ba15","name":"release-e6ce3a61-b38d-4abb-b699-c93e8484ba15","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"396e6803-2542-468b-8231-292c5eb18a88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184144454740004980742752987376957366743041631132374104406597671777714734751768149082271364143250463043684414429880959913925455204550955327561180330625993651036665582798099969837765855704448546167185350142765213472220275489565573767994299838080860448016187283275272136957718704235211016","osProfile":{"computerName":"jianyunt2"},"vmId":"d6862f60-bbbe-4e9b-bfa9-7739a61b1d96","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2DhibirqyTPpxMPiX0wo14g6O3IHT0zRDVAGSZqFM/c2+u4IAzWZ5rGBw/FTT7assytTgogAT4+lbTJMia9sKLSUYBY6pbAvDA4jmpbJifLygaQK2eAZa1gmzMkgSGCzboApsgxmxBPJiGMrLScaYkBq8Loup5zPeKX3P/SBo4MBozckzlaJwfHogfeIIPV077wb/g87nqecJJO2Rt7r4gTh3uItVDgR61aQ3MOligngwmsheGBuGW2h2rGuaST3owivxo+O4XQKNahZO/hevHGeoUA0/m29WWx6d04NCyxipnePG0egJYtKlezYMvnq7sRR7T6yQKinpzAstUCPtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-68b54fbd-fb56-4f24-b275-bfa4c89f9d92","name":"release-68b54fbd-fb56-4f24-b275-bfa4c89f9d92","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0b43c721-792f-47b6-a943-e3924b30afbe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41837051453718126176574223729348795922193985832479363457394684844935514936945558488904318729585787192580136252143769353633253234671195703306856106065480312667841641224175163089492776169097823134475364712140294211688688199642668185268962145135146547279471973028857419280330086344238055109467","osProfile":{"computerName":"jianyunt2"},"vmId":"f66a3ecf-c835-4167-b531-a17cdf661100","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA43KZNnEO1sSpe31cs0VtteUDYxToI2xp57/3461TF9vCCJwUNiMt0Y3BGz4UWigw6hSOxHsA9Y7Dc8Q1NHFfEmVFaSo8aRokIr5eHpGBb2Qm9xR+LxY3MB9DcpJEHdL2Qg767167CdAWFNGgzqtHNY+M3UMVISji6I8cyzigMyGtSgYjyZytUuvitIsTP2pDfiWWmdrB1/4+v1Im29DHCRulNaf6z5hUGPTBUAEUdnenG1tF9MBn3TUP83IGyhSrSZ7Fb+o9grSNJFISMPILWaEzg3tB68nAIpSOLxW/RYGEFKGdF0VB88G0P/bwAVWtv/iFkeaJ8SVmtupV4hEQcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ad1c6874-62da-4820-8e99-5e040eed0ff8","name":"release-ad1c6874-62da-4820-8e99-5e040eed0ff8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9cf3d875-bfc3-434f-9861-e3157d2d7b2d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181394945247367292100221050306073959773804012662027033747857957325734884372676696240166918988588480356093520229649556979888466043654661233477296416851215502782575946809730734588827548540926648764058564165533258952511998033041391887343769664131057839905912006406221","osProfile":{"computerName":"jianyunt2"},"vmId":"72a786f2-6936-4664-8e0b-ec88a7720167","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxUr7uF/1HDeFN/naB3mRCw3DC6PxRwwsnERE/MLNXK3Vob68/OYAS7iVzIIgriaBU8wMs5mLjPkErvC1Gdkcpu4/ONrFxU2U28n6e5oKgt9e4Iry9HkEzJ0wwqqLrLRGPKMP4w3jAtV9rwkypBZfagI719frrGlQZflHi2xdiadC5QIwcc/5nsyWjupISOKJG6A7zrhEPksS/zdG0hRzL13hETXNC4e7UqscY99OLmvWtyUuymXoGTj2h/ue5NS+2oY4o3o/IFxw0MggQvSsF2i8FPF/TBdiyi3arLnoGUiYlHX967kARFXwH+BwC1tbyzd1DvUSGt5YrEJMMOMYgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-84d7a1cc-d0bd-4326-b63a-fc6957d87895","name":"release-84d7a1cc-d0bd-4326-b63a-fc6957d87895","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fb602117-453f-44be-893d-4eb772e007e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41815741903682184915024700897604323447315041629192294736488621492134087997202283585582178637168405055351642365215522415439582856421144438588770386828261765471147202365140857665441732118427152487162812971296645475807690311789169779912017124699774180457011347","osProfile":{"computerName":"jianyunt2"},"vmId":"08685a2e-f0d4-4a2e-85ae-f3d2015624ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzW1SR23ri4r/oySoW7jF+O3c9qX8lRA2M6q8S9uShSj/0fCMfmIwj6XfgWECev2ZpvxnuPOiDabEuh/lNu3zrxHoHrgJKUB8Yl+uY+9LPOu+DMYF5i8tEQ2DEIeIvbhjk1kCfznaJH8yR+O4oKSDEoH9gYkvxiMTs7jRV6BKvJoormmVBNeLDuB4VSTG0YSITZ2v+CkbV+K9qFxnDvncYWqDEhsfgmbrkVbTzUmMiQg4tZaiWxsRDa3eEGvBEVt4HhSAn187dTDYgaR9Ek1jHO5+TfNyf0rX6z/m8nibfVV9T/3g7g4ZpCfP4ccEIFsNLzM8IDMCc0Yjw/sWFclA4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dfee1674-9b3b-4925-b40b-e78aec1d11d2","name":"release-dfee1674-9b3b-4925-b40b-e78aec1d11d2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bf1d886f-abc1-41ea-8c70-fbc7e491d923","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418318238755144710235387161586495946241104337135998934234768398058134695166711684584044507514613897910528779539470552184208906281222330345207299230429323329220364669213138579023741653642154550771882973715390623351841163552771086250544966999659696","osProfile":{"computerName":"jianyunt2"},"vmId":"a2534993-774f-4d99-8fa0-73972f121cd2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Tudj/iJqN0cbpiPEpSSNBnKIffC0uRKOgrf1EQ2MrL0InsbDSN8hZuo1+j2/qegkA9Re+NjYWDyNfYd3N523YObddEnRQKc81q1Ca+pL5/P9juOMcU8z93FOJXpSeEDAV0chciUweb4v/PVX+t+wGBFpwNs3N93F8axaYfQ0blQ28e22D8jHViKCnKnkFx+lTZXmUYr27dr2DMmghBERsaEZjUWjzmKzVkohJkr6yPHcSzoXdB0knxlR+kSskvMMtze6/GeOXPuVedOVcEdiDqew58o7nKr7ZSHh1FDhYX2VYriR47+8Ybzu88xdKxDiTu5aQKzbW31jPuBQdCmxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7c5d0150-5c54-4cda-8e33-f976fd138718","name":"release-7c5d0150-5c54-4cda-8e33-f976fd138718","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5e750168-f70a-484a-98ab-d05474fad314","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184777705428079762455458434185820292376463348253894338543541108445519226514718679148447923241572721851014868218134763187726967234077375084339740261748971608810749356897940338731099228779032198995255930722337365597133281338588283412021825271806939607863386026","osProfile":{"computerName":"jianyunt2"},"vmId":"ca6d1163-7eeb-4ac1-aac1-3797bcf2a89c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDcxo2Zr8d09ESmZtiP4KtO8CpTxugZiWyq2u4pt5mJ7EPWvrWBi4+0AkyQjimfbm/A+GtZVnDrH/099ioeR7ExDYlCy7oy+WYexbfKmsjkkJVU3E3gO/MbDcoUrAmovlR2se5+hhjyKRjCZue9nTxdW1s6k+GBwdgWFnXnDD7zcpgiCAXD+Pc6t8ygbMA2uda88dlUAVPxqeayufVq1UE/+OgTn1dW2MX/FTSBra2/aC8iSGgHZfQtnW2nvgB191Mf67l2EtpQyEzNb6OHFgGtUX2cKV1yGiq5gwAtm8CulsVz06gOgqXdTAJo4+dBoqZsWqfvBUsxXYmDkxN6GDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4eedbf9c-c263-4bfc-b781-e0b7e4312626","name":"release-4eedbf9c-c263-4bfc-b781-e0b7e4312626","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"350c5e33-21a4-4963-b5fd-a757f3e16901","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418545451985199617045047002524542396806119331471526915838416730857889388570419865484751231836710159676712923279298707494900296907754263627670684884408517476662893995020901437356366118725532473288081460911172696916760836805157988388223520892675865773593734247629591852031923359691081419914727819814896526","osProfile":{"computerName":"jianyunt2"},"vmId":"7287f2a9-60b6-41b2-ac60-c1bd60e68d22","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuSrrM8hJ8EiyL09QyTHzFV+4FffkU9CwEcTdaFf9Q1dKTr9WSH2ySOXAA5RGGCMsmN8/TUppEdHcir4jzZ0CAP0PAQwTl6EhtVhFbc/v6SlOrZcpml3ahkIHiNwUD6Sq9SJ6GoVIz6SD3MfUmUszhLP/IyzNGCoyxiFHxzUMzT0oyZp8DInvUdCj9u7HuGPJrN9S2gbqf8aliW3ffDjrE4GY1Zfrd4eWO/vQwakKfo/ClIuySZPUnjLzBhY/WyGHCVSwVsIC0sqpZeV3ZUQoTnCKzjfayldymQX1Hff5WEFoKxq3+og3VZJtjUhUK+6EG4d4L1aBPI9JqQP6+pxQVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5ece07fa-5d3c-4e2a-a1d0-e3195553c144","name":"release-5ece07fa-5d3c-4e2a-a1d0-e3195553c144","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9c6a376b-c9bf-439b-82cc-682dc63a245c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828855192423373214370344358298600424141159535899633443874473233496433195273012079883236459757859433761993194870165991912553186715423613397671844665133022150864459915789566167393560461776265936100173595834667715985412303515050548233864365759676472123381477397471336811921581115170620870339889950220635988","osProfile":{"computerName":"jianyunt2"},"vmId":"58896077-218e-47e1-a3b8-b68a26abf30f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxg4W8lhlnM8mnCP0C7n4KPKJpV2iLmzHvoedID6KvhwXG1UQ0/EXNLxGfN7YdnSocgv88b7ra7CNCjCLImeHJTvHvJKVf6+HUOLjXoY8Pq0pX+zpwgHs0Qh3BMguSePorNKIcuwRhxTk2b6aW+03hhsZK9jSZ6VbvxbYcpzF8UPnocFNjOUWVdaF6z40dTMnIaasACE3yyZtPGsXoceO0UUOS0afdsWYQ7ltGYmUeOWcSDWGLhuchE5ioNs3mG6wxwsCXFSszJ4j62h4cJDCQyR7q9BW7qZRF6BHiY+Jdq656F7fIZVVHv52lgT8GDIckA4Fov8M6LwlLt3P2ldPDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-970e4e80-8bf6-4b20-b4d5-795ea85a7dd1","name":"release-970e4e80-8bf6-4b20-b4d5-795ea85a7dd1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6f99aa48-38be-45e6-8c3e-d871f2b31e35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41824618223755411648787315871645363537797406799534392064639309587879893904612775669551531827514229310529176297660964764524308849054044031168965436027771802319973065885381659214641482201585561235276679343309151327853600530768216136643418734576494572671847595849801438612597644390062234917","osProfile":{"computerName":"jianyunt2"},"vmId":"b34ac7e2-c69d-4831-a1ef-3451336c08f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtRkboa5hbp4wnsXdb71D1za+Gkis9fF/C+1YomuIHD8Ai0yQJGJv06ueXZAKWkxGWqE/OQccydW2D2WW2ebM/0ZF6AMwj4vYOsf2NdosTHI7z6ncStAr7/3eyYrAdlAZJq7HanlRY2AQL4AlQw6/wxMGTUNZDOx3Tsc9szYZYfZrhIPBz3u8xK2m9jkXG5GBcwXmvJFVSwfq6j+z2wNoEeYykZ+i5ow0RtvCQHnMsmX3Cqjb3MQuvwNuzhR+OSZFMIy+n4JoCTahNxNYGMdNO/nOVhZSisIlyGrYXaE5yj8IGb6KNsXMK6ZdmQI9PnscvyMfs7qq+Ni8/dfjbW4URwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-24809e4a-a4db-4639-970c-e8d772a86dde","name":"release-24809e4a-a4db-4639-970c-e8d772a86dde","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4205190f-32aa-4f72-a439-d4be27719406","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186711442647730062225882882185880561349296916432694043761128644552417286695375529351062567847382178807182086883505849477063766333194702250320537358538238105325458825505311464564862252662967629071630971176103767044393354787457722578466502","osProfile":{"computerName":"jianyunt2"},"vmId":"c4f221f9-e851-408b-93dc-2f1b24d4e546","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Up/lTe27DmoW4S5rvwQYB0MwVfWb/NMkoreEh5DrNVOu6TDz354AWepaOF2rgFIxBn3naUxIouYca05FhO+PdMBkqzli8HpoFWOMsf/d6z52QtPjzQyRSd6vlxQNTQR8PaS5hX0bZuy1gi0NU6b7z/KGxIV/uuL3ut6IsKOHE12WxuXf3J+qVkro0iiH1xmcW8DZPOmVwyVaXScVsjp8fiLAfwBa3DT42KVoyaWGb0PBvzRg7e0ofuVxUWVUhCXZ69pRM/5OfvBWDDQItKTCGvZDG3vRMAaQ3cdazRM0bCnc7xVF3XSQhv4FQINo2Z1RTkCHH2mAE8Ik6s49RKuJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ea3e205a-5cd5-48c7-8a27-02c5c17939b3","name":"release-ea3e205a-5cd5-48c7-8a27-02c5c17939b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d1e1339b-0bce-4cb2-ad0c-62a2dc483f1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418700042362365162923779044918289841147886589458677392974031393899623551549523713441618181476353226191362442325979688139400495146600498294932594867694412854924883886691349374110884311351474186032017163270801622565312455602952760169801227973940955353955521163649025526793498062534662809782206087701911163","osProfile":{"computerName":"jianyunt2"},"vmId":"5583d202-66d8-47cb-8554-9fd885846938","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9onXch9IxmkgqsK30X9evsgw8VW1vbysfziFFSY3UzYMPhveJL2VnXNJ2jKQrs4/OGMLuGeLiHDqJiuanP3RfT9M7b6bheuRSIluy6cQ/iuBmwiogN5zL6NVTJJTiC6+FizUjKaJMMUteeZbPHNTFzRVPIjDVC3g3MfzYU2y1NAosV9CqsXBJ6uicnpKdpYaAjfFaEVEy7IaXpqpCn+vQ4UkLAnbKF1m8ijrCzaAL/xAd1s4C7SW0ZmYPsvNbmRmGxaKgXvNnDHWxnjS83uh1Ppo2EzbmrowbcXHctl8+49eFdJ0TQ5MZL915uAdhQ0Rd79zaAk9cAFmFm/I2WdZ3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f0143e66-6894-4b41-9867-029d19a4bc0c","name":"release-f0143e66-6894-4b41-9867-029d19a4bc0c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"36efcb95-6ea8-466b-826e-3e7637145e6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418711169891363951854484645279453233764768855456081506575722301198314527401680466899894981419334219429574604811469297175346563296358366414060052442535247879187166728907481925671455557681270761622918846801457349518722408535877413873123519958196219855614832077604710134","osProfile":{"computerName":"jianyunt2"},"vmId":"988a883f-31d8-4d8c-b13d-455ccadaf3ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1KZic3OSluexcDkTcbC/DTBEyPA5edlGuI9aOeThVDuJ8iDFt3zr65FpyX+dn03k9n54pU1rlXbPySjU1trx91eyzXWfKdb7h6s8/nurznFg6SNvM4d8KOuo0bYWumDfdIQcamf7Shp4liIe309ylcaRryHWqaOtviE2b6BoM446ustgtDAqS42EDU6EYjxbv8jOMJbAr+fBV1U6s/AlvLeyLYIHIcwZJ5BR6cspDY3Cdh+XdgG65nZMDc8AXgLqjED513yAvVRliVa6ZbxA/6VZC/pGYtQQtRjhbqJMPmqgPcFnsNnIkWxTqhNzs7Nvw+RKEAwKIV/WBYTMXy4RlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f8cda6a9-113f-4cdf-bae4-3b790064571d","name":"release-f8cda6a9-113f-4cdf-bae4-3b790064571d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4ee99d94-8b9a-48ab-9daf-5c571eb248bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828714702343499058858948154449158028776609885041889410336092870272119572613579936173356919746995424735188189689324557548847942012626567381658927652626623527134373259764669801533330263408473323837403636644068186202924567764684554710546079784716136083274371926805632034944874832519962296595241718973416618837814308617","osProfile":{"computerName":"jianyunt2"},"vmId":"157e18bd-2c1f-4e45-8a4e-91b72b33cb62","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnC4rCKx+0PYlDYZ+voW7QkX3jl/2lRR1RxFKeyJYIms15oxDZTZ3rRBiylzS1aq0k9DDU3CKSaNBnNuQXgI9dxORnHLDSSS+QFxOOC9nPi+M6gv0HOEP7h1k8HVqM1t+DI+jfI9B2Wb4nzbDJtjEYRpaFj55ared0n4jpUBxyV8gHP3vPKXNR5VpW/kST0KPNh0OEvJkosOB8N/vvN8K245lxvnCYYabZbh2Rempouy2Q09gagCUbkLoN7gPgEOUBqh0SdcSruikv0oZmt4HNUt5zk515++UEvpM0QoginFyZQvQ/77/x3YdZ5X3GcuHmTTYKYIPa+uisuF1FHQDDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-89028cb5-1177-4221-a2b9-4eaac1829ad6","name":"release-89028cb5-1177-4221-a2b9-4eaac1829ad6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"79335d83-d1ee-4526-9781-c476ff2a5e29","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828463903830615273947083704671392045574584473246092157532591997777225513277218042302271452619684662720497261360673031008555200695451785227267674849195511694301787212826088236672933197471955099678705221253589805517349172880196596706321394404052514967838641713632432355586041452261","osProfile":{"computerName":"jianyunt2"},"vmId":"f225bb7f-bf46-45b5-a586-9f52ffc2fbaf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvYkdHUnzRTITuAyYcKlIQse6l7Y5BP7+O7Sx88euy7MApD9b00Ib2T/8Z06SjmqmhsNeApLs3OOG3YPQg6LvSbCbGNQYVNYE9Zxqh3gmywog/J9pMUAOtXENqkqAw7eWc9jT1wmlSuCOZZMzcuiSpJ49bgNBvbeGl5wFnEun1MXcAow2r/dS4RSt10jgNsArh6ESa/6KtVY7fB+oG6SEXSFMTJVJ5hBNdbyPnWTGm4Jr7D6+4NUbCrnKHkg9o98Q7kY2SbsZGdZxx6byiklaOZgT+UspHLfsWgNmYVERVoMzBaJ0IvXnFwI03avgzWllIRQN1UELn/2ENNv7gV7/3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dc388f1b-a5fc-460e-80b5-43b7b4fe8823","name":"release-dc388f1b-a5fc-460e-80b5-43b7b4fe8823","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bd82fe10-673d-4dd7-a620-c19ff0401565","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41859554081711976031118463761479686870489439476927589976808985873579202339497472595846881577322234435473154056637777216836868288171983344682993172813347745743829752379633521069951393763412418431518040138342528828887885623677880453234594888","osProfile":{"computerName":"jianyunt2"},"vmId":"160c75c7-1f0c-49c4-a0c2-6b919d59e4b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtnx2/gBenPK6GDQR8Awz8cgrsQ1fYgPJsNDzbLKwKIsQ04EaaCgc+T9/CcrPdd/JhYbB1b+mmRkEgUolXp/goZYnZJheiSYHYB31LUTeYo+kLxUFipivO5TP7aSFydFZkR0zh7CjLpYrDRVcTZskWKgTq9pgeJLUq+b5occIfDBogO718nE9bY4rm9/RU5LxZLmtNwF+0Cl8uPOjB79YsqpuxFTrzV0o9qsE4EAunOoqAjFWFYf1YDNIohEa6Xf0xt+G7c8jUCmtU7cxvPyzI7QZXjxL2jG7efRAih+/SGIu8Ua0EB5isWPdIEg4NmL9EYh5rxYpcpPU8U9O/UQuHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3a557209-0f80-4cc5-9447-be89f0d7e266","name":"release-3a557209-0f80-4cc5-9447-be89f0d7e266","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"57b3a227-9874-4da8-a964-80cf82025e7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418527685254397435872655365876715476419847270217558861840434612716853614841958495927156782354278252211683962446967243869951717579118464213952597521079527318385320932258341028285618973041874414056263714204645913431951734145889537509483745552458481929819839935313836136009134937460797","osProfile":{"computerName":"jianyunt2"},"vmId":"90ca5bc8-6c18-4aa1-8219-bb0d30d1e3be","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxT2MIhPXjgOc5FI3dNNoMmdNot+yOjnCNkS4NxHJz5JqX44SEizUMXtsz+cDyQTXhQA/RfvCPXBIH5bjqMFtzoFcNexR8I38jcHBt1bSZcDe+v+OhcX8FSyhLpPl8iRC2vYecGg3ZEXE/mXAXFnR/OtTm9nD9IN25UxWaZajqQ06AkInGifB90rqjfeB/tJl37CLagO5/IsgIfWzSL7+yqNnT/F0i8+gnii+ZSaBGwpxXjkIopSdKlUxLMtNBGZC/1OYncVnxnLHSH5XuM3moGOWFAZSB9X3FOuv23DSonvxGI9ycre0Gjczd1fKtp27epl4i0OH5KoA2P4+zT0E/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f7d2de8c-0f81-47d1-b60f-5c056164c642","name":"release-f7d2de8c-0f81-47d1-b60f-5c056164c642","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dde9a1cb-8b83-4ed8-b80f-46418851ec84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41816463274789797581158895092057510947717635224348737483544435320738289220099589672430639917584962919454699327248126908083545372349784488396498757234473879262887783266094722734828717332603550388566927441271409898616308805354463150268586430275206674758191274955223831191781697731659833873152712289906994","osProfile":{"computerName":"jianyunt2"},"vmId":"975d40bd-019f-49fd-a6bf-cbb732964e79","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7x5d9Hx8Ek0+272I4vtKtqAni//x0hWbOCAn+3HLkH4uRgEo/D2b49EQQk/8w/vbvLCK7toKsp872WdR+l/Jyb7iP8oJU9qrTgpKe9pqZOY7/0UWviIdw84QgU66bMQLV/muUZ0p1AC9u0VWwr2CF3f/F36ZWT0in2yxBOCUvIWjOzyTxedmcNb6Eh49kHR3ufyeWBRxoplMmlezKyXjsK+eOiZpryBtPIE5YACyhODSN9CnKk5Fqi2+SCVHGfuXUvI+08j9TxnK+EVbfDzx5RWqpqGwds/VosArlMtmvXl7bpYgRi3A6A+kQZGNBXxbvzHag1kR/0uwrQi8fdX2LwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b8092797-1cab-4286-9a28-88dd5d02b5f8","name":"release-b8092797-1cab-4286-9a28-88dd5d02b5f8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"41027258-7c39-490e-935e-1c578fc757d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418708640003862188145373911104864563299367623742778172522661348138083664992283330556170603920305674271111802058115672509951338472596162085104233433580348545645535202671192310558075352424864156650559575815317192517936383784719699495810561165945915311381731684721493164","osProfile":{"computerName":"jianyunt2"},"vmId":"27455658-71f7-4c66-9ecd-734ddb98dc77","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu3PemOmnbfrt7nmYe5D4ucOV9F7E4Gl0liWUE7aWZy6gVRKaqSDJSOQT9RJ2gWrD0L594wO+LhHz/hmOzA105j6t+8fyZA4RDPfhsOYgnVUuaZlHpvt4dHFbYXsYbiQnU6MoyjkgLEm9ihS/2za8XfNmZb6hmLqCw8ua1YjQwxpe/TRfQUnyKKy3Rhv+NqWyauRgy2kzdahaaJ4I99+8Y83glKRmznrnm3ef5UwU4treJ/eSkQ3uzFWsJ1MyDjlVOJVSyPtjLGJSMrzRYzObjq6dTwTyGDJwY7fJ9jju8d/qnodTncBGVn7oZ6KDKK0GBaFIm61dzS0wanuvcDCvtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-43689c78-0a67-4554-9d89-8d8d9d6b8742","name":"release-43689c78-0a67-4554-9d89-8d8d9d6b8742","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8572e7ff-4d28-4b00-afee-acd2d3611d56","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187669300383879394411172104410024481706715135764628971141582210449320643879474918499069724624792053464310414409786775516018773844711295119647428295475838543451308327376062795733929743798760436227091678134560733847939279136333044461376428903592667151247885375593464764916588754673062220480499443731812947011","osProfile":{"computerName":"jianyunt2"},"vmId":"eaa651c7-f4f6-479b-9900-68c999746dd0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvJGJ7UmhtVAfsWI5YHSBzPhE8tXYoq23OEavpDY8wG8x/aR2xYdEQ8EecEawP7awHH4luhe4IX4LYWwGgYHD/aFEU+gGlnHVTnCMQT3Bv6SfSvHcN6vYxzKKAKOgWdyr38h7B0IoM6F7M924cAIlxP+H9iFqOXW6k7aJq7v67MdqpYsQp9YxaNLJJ3+E2w9fWvDe6gFBdh5eyZ55REJ8pYqvZzB4vIKE5Ms63GMfeTIAi5y1shcfXe3WSVwDgYYa0+4d5MHLWX+z+SvBmYEYv4pwTr1C2xUGDwiX2N+PF7H7bsyjwceQQUX4fE9Fz0RCIXuEzEe8nWkrAXswNI6FswIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=VVJtb5swEP4v0dinkaSQBKhUTWcwC3lp4xAi5SMhxvGyAAUCaavut%2b9M2mlDxn7su3vuudO99TJ%2brRcyO1W9%2b7cehXAThQaNYNW77x3ruqjuB4NznMWCn3lW9%2bPXS8n7SX4eVJd9lZSyqGWeVYP9mI%2bskZ3o6cSJ9dHESnTbGjk6N1InsZODedgPB0WZN%2fLAy2qwlEmZV3la96cv%2b1Ie3PxcXGqOmZKjzHj1PS6k3qAnkj8YwztHH9r60NCLkjeSt1%2b%2fVCdZbPITzx60MdEsohlGra54aiao3SDrwEP8%2bwriEZYxfzUnzdwN4PZpJho9zTDXG3SyEGzWrkLDIeIg3CJGEjOgT4gm47E5wZu%2fUj4gfgRyJ1uYY5acRUjj45I%2bJlagYsyjCjdoJ2yFyEw6r2bsQ4pX59i9Njv1iuL9uy62sSUjCRCAULgUhIq8ssae5mzFgCxBAGXk18aOoimacBW%2bijbtVMAUQgiOAD%2fbv4q2n4ouNxWYq%2b10mJavakYGcmSPNyrRWZybEse%2bKUxpDkTAE%2bDptbAE8LF8cgFSEYadpAKwoy6BbSxCQU7A3Hng0kD1mYQRmy2YC8CAyi2DiD0C2Tx7O7GDOcYtRshJcOZw3ijWm1OxBleIGbjUhYC44pm2n30g%2f%2btMr5hhpWpoXroqW%2bdEMBizKWoImCsocsMMMgGGGolv%2bJdxJvjHkHRTc5b%2fzkznc46vHx6G4WOLDM3y1Bp7vff3Pw%3d%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20230.002_CENTOS8","name":"0.11.20230.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8476c2df-f693-4b82-beb9-eb2ac445a25f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20230.002","status":"Disconnected","lastStatusChange":"2020-08-17T17:57:36.4415671","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"7f450245-22d2-48c1-9340-289408a81dbb","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAw4WbMA8AgXReDKmPbgT/q8jLaIxBzr5m6kf36AJoYW9koHqRuSaWeAOuOjuAtqxX7pe6fVQGV+9scV601c3oH2f9fixNotg8Bp7RRix8Q9KisAg1sP1W9qcVqe66oyKGSQm7C4rYOaowAO4dP0Y6vebLVOk9AtXBgs7M8hiQZiHAao2IQSSPcU1RWbZbvtEfiXNRhd/sNeKCkwF9GVPgN3+jiqwZ9ZzD8j4jT0ZQKyIz/u5W2VwwdB7Pg8GcCnLe5tTmPUH+dAU015eHeYLb9eHYxyZ1TjPOcGW1mRLmtF3u6NVToEVgHVrtY5UgMyFrS50Cy93fJw0Ta/R9vk+MYwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20230.006_CENTOS8","name":"0.11.20230.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4696c3a2-f8a3-4665-bab7-25ca551e03d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20230.006","status":"Disconnected","lastStatusChange":"2020-08-17T20:59:30.4561857","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"b948906e-dd23-4bf8-b039-4f62b168395f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA4gYOuhUiGfQJjd/sAMMbpl0kYoYq7HTS4g+l5ym4XXunHIWsiHePAeCaM6L0PYSvtZY78fUdbgyB89/lugAjGPjiWjdsrScS3cIEFrpe9PIvhjydp1RmdMCooiXBUOWG/jDOETUpuxPIyKapHW73f3dC+boYy/bj0NxXZMdo6y4owuN1YAI1jNi12r/yh1NcR17a9wuNtyXh9XbMiBWDmId5cLQHdNaR+d9TYak5SMoMsaFkKlkowhedKtjoeORXar93hDV1DlpS7Q6ZdVwZZamEGiGnkelsH+UlANDwj4jtlss1225PBEgt4vomHyF9DR8rtDxd+znE/QakniQXLQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20231.004","name":"0.11.20231.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f6becc59-01ed-482f-80a8-be58f1811bdc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20231.004","status":"Disconnected","lastStatusChange":"2020-08-18T02:13:36.4544887","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"267c389e-33be-4bcc-ae54-305c47b38543","vmUuid":"B0C61338-C9A2-4648-B9E6-E9FB6A0FF880","clientPublicKey":"MIIBCgKCAQEAwZVlEjTSUe+F5cGRM83xkwVHo+HrLNOLZuRPpwq3KX+eHRnNQ5X4bqiA2TR9ecHeYt0q/GflFFsEQb7ziDCvVJraCoGHYwZSk5n9/mlFgERMJB6xMD/s/7gHRTJ6V8TKeyZKQ7PCxnY2cWq1GP6C2CMgqUb38cqTeW/4xfxkKO2bklQlI/p5I8ZutASGWAsdqCOBykX9w84M2rGGaAW3zGl95VnCeH73YWbVxYXGstbHOH3CKwsgtcUBOm/wVxT3GK1LKe+viwEQfju0m4JpTUNQdgWpf8gXZ72VWPckuhDhlbiV47wG7rcGjb2rBu8Yn1QW/eh7gm3UCR4L7ejzgwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.lkroqgmnepxudhkyn532hpsgme.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20231.002_CENTOS8","name":"0.11.20231.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b216c98-6f87-4721-bb80-705d945c8156","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20231.002","status":"Disconnected","lastStatusChange":"2020-08-18T17:24:24.4382303","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"9da81ebb-ca2d-44ae-91af-3867d2c08c54","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA1guq6On6Q8Tka27QCVhfXAO0svYEhcYUdX/XjuPR5rPgLRLeOQEKd/yWtVfB8+B8ZqA69ZacHknihQK/oTm7k/4BEGrx1wSuMU6rrFEx8s7wd2mYFC2LeI3727iqqDGrTLGo+gGH4dn99s7PU657ab9gJlVHQ4vL7Yy0AwKs6LvLP1T41Co+VnzbcVz7aQ1d1WXpYpxMfNWP9Lj83kW7zZOEPOg18EBblTx8zIyquTElnyY+Ccyk5ID9pHpt++8t2MF6U6b8mxFHUZgMrTAy6pnK1FAYrwUWEw4ToZZmEQ4krFk5ekeG3TqcDm+GPoNbyeFN8y3Hwp81t8Pzf3hrMwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20234.002_CENTOS8","name":"0.11.20234.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0fb0148-6bb0-4f4d-90ff-1d95f0ca645f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20234.002","status":"Disconnected","lastStatusChange":"2020-08-21T18:54:39.3570663","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"3ec5b290-96e0-41fd-abcb-8689f89a1222","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA3zNgzgq/nvQqohKfiYStFD6LOK4OG9LYvp+oSZKCwWTUohhC4dTlMqzkrjl1xGQcWxGbome/8nfRoLUXfhufiou26lkVTVJa0Ie5DYwFtmF6au0vtx8hifRcHbxVN0b/QovGYXvFP7mb4P1aHcWUFOuR34RkOhzbR8W6A/vX0GsvrP7YpozK7fS9KtOew4eIdwMkQtnPgF3KJ+CFbvgzJ+5xMe54i/z42CkoHQVBJOsY+6/dQVvlwSs0chTau6IFBy0Bon/GceShbZQJDtArp9RHwdGiHD2nceWzb+owEXLkv9RmkdcWsCwThKR2rpf1vVkXCMq67qJ4mMb1njrmpQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20236.001","name":"0.11.20236.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb6fcf4a-e0d5-46c7-8664-9b5657baedc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20236.001","status":"Disconnected","lastStatusChange":"2020-08-23T16:15:38.4188717","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f79e7672-fad9-424a-92ef-b762cab2dc68","vmUuid":"8A4E8484-E1F3-FC48-9E1C-7AA8068E11D7","clientPublicKey":"MIIBCgKCAQEAotkYoIZCIraWIcQH4PS4sUlqdzBqOcsgARUozAZcBRMfQ2bJiN0+/odcw0eiQplOU5QdNlft1gCV5Ont60a/pDwjEHys71S5CJZd01Obwv4rPQz3+Ek9oTtgftuM8qusZQJj+8xbYIqdrNzT60yjOqOntpzesDCYeGD3BBc63Deci7icTcwY7XUue3pRGwQxBhAeqctgF5pbdPjP5WPu/focK6hXb1rPn3ZmCrw17Iw0ZDxDWmJh1eQMd/qXYJaHdk7Ce4fTYdG1eznTGAw8ib+EUl19oBxzo/Vtxw3ZEgRFaNWqkAHJIgsHJC0uGYBX5gUfJLf6bl7cfFIS2MBYxQIDAQAB","osSku":"Ubuntu + 16.04.7 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.ildyvi3tvs5elcdgr3ogoyb0vh.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20236.001_CENTOS8","name":"0.11.20236.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d420635f-8919-4e47-a793-d616af3c693c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20236.001","status":"Disconnected","lastStatusChange":"2020-08-23T16:33:49.3631415","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"1352eee1-9a3c-487f-820d-e52896f7343e","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAviLLloHtipN6PAhmsm9N8e44YA55ps5rnQxduk35bT+sK7WNB73ioD9TYqXdQU0I/LK73yfxAeL1Q6I5yPIr6Wgy86wo5FYfruAbs5xVthlZWeP4GhVd4OIzutTLOFABihpmKOZXRrpsG2cHVeOVtnjWat3VeUyV34UUD18I9ANEeBxD7cIKpeLMFYP5UCRmxG3jKOO6aCE6cmu7/uW8oPSfr5xhJdiKOZi5riYgy3kDI/qoEZRKalrR86ix1UW8kar4edCzBqurnowiHRVF1DS+cWmWLcjR7bcD2HQFfw/jBfX3p7vmRxjIs3jSW//0i3fl6DxE8x1DAKiZvCyT5QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20237.006_CENTOS8","name":"0.11.20237.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4e0b7698-45b1-4f02-8d10-a8891e9503e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20237.006","status":"Disconnected","lastStatusChange":"2020-08-24T03:12:06.3545855","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"a92b0cdd-7d59-4b8c-adff-5539c2a99cb0","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAliOB/tPFKcwVHrOIHLdtgVSsW92lQi+icsTaM9Ks4CE5Bj7lKSjl4Mnm8wL96NqZR2oPCOxOHzTwIzn8EHhGQYAPTUI5XzOoko6SD4G3BzL6mZugocuXT0hoIibE+O22BBIN3ofh+rdfftcXlZ2c733pJOmpJR0MbpZu/bRQziLLuudmAVmCy1g+2SLFYyolfq16cQvZASwBraKjCmaAzc9KaBIB9p5Yehnp7Hc06CgpQMSBcEwmrK4UrXzGZxnJQ9VZgiP8zmbjla5w5DbbWVZX2eiHC+O62UBMurjD+Aeip8/xCnYqN5sghvUXflEvCqgrpIx/rBvdxcuMpMcwhQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az456qpz16_e2etest","name":"fv-az456qpz16_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"371b72cf-a7e9-44fa-b8a7-05035a5072b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20237.007","status":"Disconnected","lastStatusChange":"2020-08-24T03:01:59.3653855","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"07346bb3-cb53-472d-8771-bc393b4789b3","vmUuid":"79072C0E-A43B-F949-A395-87C45DE594D8","clientPublicKey":"MIIBCgKCAQEAt6gWbNbguMA8c0BI35k7ioiiZhTDuhk17fTBWjIgn86owM7tTv0VOdtKtTh9FzHpbi4e+EWCBrt5CuR5KPN/Iv//caoLnBeAJ+jRtYTgIrI/XT6nZreRp0BSkUhq+n6dvOUFtRphwxwnZzMkceQPJ2T2NIIJe3KbnXBneTOlUAITROmkLr6NbYWkc5rlVnKEV2wlgDh8GGCq10gqO/GLlVG5FFPIiodKsQ0s45pc52iLOCiipTddc9aCJUqw8ftS06xzBRIJ6YMO/FZjMdUN/7MtwC88VbDDQCxbJ2kE6mdW72rdJ+wUWwFGBCySQl/G1VXiiV5nopZrlrVmgPSCmwIDAQAB","osSku":"Ubuntu + 16.04.7 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.drjxu1y3psgujimpbu1341pifa.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20237.009_CENTOS8","name":"0.11.20237.009_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cdd27828-5866-4a8d-9a22-b1412756838c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20113.001","status":"Disconnected","lastStatusChange":"2020-08-24T03:34:37.3797761","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"0226b9bf-9847-4b65-bb43-33a17acc7af9","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxspOYrOm3kzvNPi50B9I7dX6lMboeW5Xd85M30USoeAVDom0qn3mIiDyUhkd08uPOk36oHwN/ekYfrb7m9jMsPAsSb5jcNE79GDRJZOscPykABrHKSE3rG7VVjEbTGwBPAbZzkmoLYMUiO/ye7ZgkqCkl7eReNNkkcbaanKQhHLIN4jdmzF2tYMA5SojPZw78RSVLZDEXYpp65zJ1uNvOE7YZu0hGCL1AHIjbXlbRzcgSpA0LNHDfOpG7hsqFY0IiO/MElXYRFoO0rf8rC0oBnGFu7h6N8CXAQGe2nQWWfk/8xvh36UdKaFVABuhy3cc69zbpu3N0YmFQmaRg+VHQQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20237.012_CENTOS8","name":"0.11.20237.012_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2c96277a-cb48-45bb-bfea-b3a9cc54d74d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20237.012","status":"Disconnected","lastStatusChange":"2020-08-24T22:07:58.3493332","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"128b14d4-b832-4cdc-8510-bf96301e8dfd","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzmCf+fiLfL1pC82nPHeNsIf4u0FJdoCZwoGdqFNgktsSJDGTokEjawClQM8jsqCDpYGJeBnsvD0l8Zhm+XhFUCMwd3v41bImvl3MgTd0GDXUK5IcWHT5rNuZcP1CcQDCTqORNKh9HI+VYWLXJWzE0WU8/iyBNeGN1/KUVHFoZpxrzrp92vxfHnoe/BJtiTLezf10QzHFsNJsusmHc2Q2wKTQMKIpwbxje744D5gPRgw+kDc+Bulv/M2xTKZfNIpuuHTap6n/xNIBK5Ii+wUk0UxoMDrw0zyOtaL+F2plcLEkUdVc4rDZuEck/IHAKi1W338/P+e1+5qG2Wr9DiovYwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20238.001_CENTOS8","name":"0.11.20238.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8a653ff-48fd-4229-86d9-88e0a52f4527","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20113.001","status":"Disconnected","lastStatusChange":"2020-08-25T04:43:52.3575225","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"96b56dde-8bb6-45c6-9f74-6dbbdaa0f497","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArjf5vwLqb7yh5oG9KBZ3/x1p1kblCn2R+HjgDTS7JNx4LDbJ1Fic7N3hXwK8//N8SUBaPnSK6l8p920TwFOPh/bceJd0vbHklV7J3nbMf9D+boKlWuYPNsUsJCbEsj8jPRk9fucwDSInmxoAoo5um0eGZS/4Syk12g0zHqrazauGc2n49+y1DjR04gDuZXQggozmZSxQ6dW/5CD6N6KD2SWefkHsF+Hzm5uMXRiDfOg88IOOZlKuW+pQkd4Ph2H8hRGICjRwps3bgaLIpwh4Qpo7AlnIAOXRLDqQKecC4iMdaozlaLkH3EZAYqIF3Mau8NVaHOYOy+IZixhvO4+IBwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20238.001","name":"0.11.20238.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"89d89ed4-4aa0-4cc9-bd4f-2537b204c297","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19305.023","status":"Disconnected","lastStatusChange":"2020-08-25T04:48:56.3594141","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e998a329-b64f-4b76-8de9-579d8ac60093","clientPublicKey":"MIIBCgKCAQEA0YV4iZ0DrlvLSbJDgTnShqpJTujJXyUkOBGR7xINDz2vJFjVFcDzPcuB0k/Z+QSYL6koHOUSWdEfFz5wrIq8UUVKh5VDItSaELmcD5Cw4qjG8vzH8ORy3DtF7FZbezrOPvsNlFOUEjXHmKiRQ0D5ObdqKPXPo53z1I3FktZAoKhhUqIdqVAvdf+ijBT0ceADDS8izd2RtoDoexQfAjip2VOfhHx8D1in14ZIKUxikwBp5lg+YhxzjkSDEQQRUQVfVZd14v2OKdOkdOB0rP9gA3YqCWt82Up0RkVxBxvCo7TXo7wwhgxRHdurCITZzIlfJjdQ688I/rvsaFpmE7hbaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/9b634dc2-ba30-4635-b790-cbe5042a200b","name":"9b634dc2-ba30-4635-b790-cbe5042a200b","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0728c609-52a0-4954-9fc7-292d8e71c335","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"aac6916e-1364-4a95-ac37-8880100c4110","clientPublicKey":"MIIBCgKCAQEAt1/rF+yXzNMWF+mRB3PnWVaQXCCYcRUj9sbpLQzBX1sMPzSYvmInxANxIyH3H4zL8Zb5EYZTPMufIL9Iz9H+WI5H/QhAQod66h4mI8WrNYC0PeoD8bcRCehv65nv0KH5BXVkakyO/jAKVKfSgZq4xKBOfw0B8DhrlW5ZSHeCR4QsuHjPFAN4q8q2vYQfx8LzBlixRlHoVBaYfhhs49zcubOHrbUj3ftbll+KbafNZUzBILZs49EtffF7c5dAxOesG93EcGF+Bzs+GzQK0eMfTEslqLwko5745ugtI3S7Bd8GADjV30oxi69pk/iCWHPXOqF+7IL/hRQyBVipQEFU3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20240.009_CENTOS8","name":"0.11.20240.009_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db71b535-5e78-4ee9-a0c9-47a0917202a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20240.009","status":"Disconnected","lastStatusChange":"2020-08-27T23:21:06.460295","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"a2ef56b6-c98a-400e-ab37-df5043a18253","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAogNdNGfxUCANZNbOulrSZh+B2lokXjVqtC0OpUS9VOH8JCfCOdlSYpaPe6uIND0lr46aGE7hbmq2GVqo1arYBrED6Lj7EP0Qy53ClQjvNj0CkqM99NLVGVBUcpBKOqzGRhniA6+gdhAubmdH8vaKc9nxjZhVkcb+ebbD3uuHt+Aucc8L6f/WYFiDX298f0UunpQrOxU6M6cnwHxBC8PADMonyobMp1xTrLYD+BYNhpXDJefPkgtKAf+5YS1n/FQxc7u9hNB1+si6iMUFd+IReG9wiWO/N45iYQ4LkQuAZssKgr80Pr/WRyj6zT/3mICyAWYgTGgHHsTEPDsAprjdiQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20240.011_CENTOS8","name":"0.11.20240.011_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"65922019-a8a1-41f9-9a45-7f94f720db61","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20240.011","status":"Disconnected","lastStatusChange":"2020-08-27T23:43:42.4597621","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"05a922d2-121d-44e8-b8ce-01c1ea1281bd","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA5wof/BCU20n2l4Dx4MFr8lBCZ8Tx0ALEuuz+ToC0MjUWgvO4gYbbjIGx2G05z0J6rmaP5OXiwhs6cRrXh7Uw4gQGly7gELmrkkD83NYe7lxYwquSVr/7J9F7n0letkxtkCKHiAn/b20rGUYDOT4XdK0eF45Zw9O1paGLwiClLM2XlouI9AUg1A0MjtplC3hEGAkbXBAuyPdVxPgm3Ts2CC5UbXEjNT8wypb+rETRNdYJQeFroKTnVFBb9qZE3hcmOor8dXRvJbAM0LPjD2eLSALYNumWMRNrKrJELiWKzBpYqKdjXRQW9p+4FL25N9IwAZiNBgwV/h31S/BL2oNG6wIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.001_CENTOS8","name":"0.11.20241.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dfd936a2-e19e-4f8b-8709-0a25c6fc90d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20241.001","status":"Disconnected","lastStatusChange":"2020-08-28T01:49:23.4695676","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"c6495731-ad98-4751-8ba2-a8d5528d3a18","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxJ6uv2ihSKXw/5FkB1ly/PESCuaDzgDXulC0p4ThspOrRGCoSsTTbgOXP6wh9reQraogv03n+db+FwOPME0lJ1eWcmJx1S1+ob+zjhqy3I+Psi+UbSP4IBGxkGchV5JX7j4MA228YLPaFoPugUTwjTZj6+BzYrQ/uuYhnu88p4hxh7ZQB/DnzBfGW0RglK/POcJxe02m3cJV94U3r67zAizhg67LFRt8l5soPUoHm3sYyDJ/cU8VZlGbyi/ZoJelj7jn+Xn2eOxhE7a4P7TTkEuEGmju54Vl4Nbbc13uy6bzXTRoGvcVDZENn2m4UOvRcSZvjwdfO7v4jfXYnIpEGwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.001_UBUN20","name":"0.11.20241.001_UBUN20","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb1edcf2-7926-48f7-8218-fe94dc9a1657","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"8c4af13b-1270-416a-9200-60e003086eba","clientPublicKey":"MIIBCgKCAQEAweJvXbrjBbfsk1aBoh0pYr4ZYWJU8oNKcgMvrGX1INt3ivQbxL+05gATm7xuf+WUDhnSG850vIWm2mWxxbdYQG+2sIj5Uy1twMph0liEZn11/Wwnr5w8WkuLHcZhBEJgpGjbsVfkhPtZqnp6r0YpbHkn+QdqzK0gNb7baaW7RZAI7Nh5WjKTrKspvDL2k97ofGWe8dF4cwb6jkIgqQcbd8LIzU80keSwWwhHEvDlRb2JNSWT1mk1nzpqJtW41OLsborODPEoUvF4OFlPHj2SPzmHyv7nt8A3IBf8aNd+FtJHT+0Hj21+lqam86gpkxmbd0CTlcZT4159OSjvK+3BgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.002_CENTOS8","name":"0.11.20241.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec42c732-f170-4ba6-a903-80c13784d8f7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20241.002","status":"Disconnected","lastStatusChange":"2020-08-28T02:01:41.4655342","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"82174704-0caa-4c60-9fa0-c254e28e5627","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxyAfEEVcCqgEMUs3kORxLQgFghaofHggJBEGH3XijOHQuirBD6g2gMAKeLOijEYIMDcsWJLn3GwdkQaJE13J7OwSU8Fvl0K9QOkgFESV4yN/uis4lGbYHYZUhHxGaeJDfkVMpSip1kusBGIQkYbmd8Ttc7J8ad8Ioy1Jl9I+hZs3wXfB1oZrzV2f1JeYvfjwHbkCrTvt4szbusZtrGrQJtqlCysIkXJaDnJHfGsyn1c5qXewqJWDu1JLNyZGOyWulaRWKYbSoa+sJbSLDssh+BG/51OPS8cx2Hliwjud8A6+gFZ1ayN4BnfJ/cm/RrO5PUPPzRjAxoYEHDRTIl9FswIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.004_CENTOS8","name":"0.11.20241.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"367b6ddf-f597-40d7-a788-d86b025e76b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20113.001","status":"Disconnected","lastStatusChange":"2020-08-28T02:11:02.4660539","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"132b7714-4b8d-4756-b651-c564838e7366","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzmuagX/0fZoU1/LSZeiTCOeGH0k0o2O8n8xhwR0p6J0osGU2cKOsNuvbMsyQg40HK0tnMYjrx2HT8eihWRz4HpzMXG5uxzWJw7+XNVQ2C5wzDy42EBz1Pw//9Z8tk9+8asiTmhgBhVVREPDe8rxvt4eEykU4LAwbWqOGfkczrBK15sBpDozQ8j+XH4CeQzGF+Q6i6xc07DcyyLCZGgTKJ5wFcb9VWY4gYRHqv6KpjoRahbOknIlxvU887VijU/prYlInYDGrRMN6CMOyRGxhD1OFMWgYBhWX3VDjthWWLmgWSPz8FJIWrb1ayovXzEbvZLkSO0ymUEMGQWN6lCXdWwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Ubun201fkce_e2etest","name":"George2-Ubun201fkce_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1fa738f2-4209-4348-9922-33f17db5d4b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"1e17f694-3d31-42f9-8843-f12d481c68ae","clientPublicKey":"MIIBCgKCAQEAu/q3RuVtMUEOSPxQdNwuN9kVUVD2UmVtqBESL2ppVSS0SwPaMdexNxVu+pD3eNuh5qpjZ57DpyM5Sw4rfXIClk6Jgd9W2rFPvp3MucVqLljhCRUFR3Gf2xsPizNFkeNmuIPa3cuNLaog5EFLLIr7YeSnZqLBMk7z62cFBX+P1z8OmD0R6q5rvuxpUcRIIlEvMJe+lGTYsICe+Z0W/m90nvNUjZsKkmH957FI6XnDmC7+YjOpFlNHDTXqzvDTb5EnbH/ajQC9zypm8p5dRX5JcLQqBYPMISV5q7ztpOgcAnNJI3llkU77/6Hd9TsmgftCPHaMYTL2vkrZ2k+vEUWMGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20243.001_CENTOS8","name":"0.11.20243.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0533922c-5c3b-42c5-b3b8-771d84d1b68f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20243.001","status":"Disconnected","lastStatusChange":"2020-08-30T23:20:48.9938907","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6e69dfe9-5233-48ea-b64a-30c3f01a67ba","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAyyNMC2NDb4/TPDpg/wGRmr4UkOTd04dv5M+HJ5vbdD2qqXQ94kKkUd6ZgtG1Wy6C3BT3gJa3P61fRDKziNN25Br3mjfwdtFHg/1lbbObfxhrmKh/kdBIhct0/cz1YAj+EvYoL3DA1zoDXI6ygUwuhAwkzNRNFkJR91NBYxILwVbDXLi74BwA74nw7W37GcvsuDlSumL8tuDKPfwXBXIvM7xrKYb0ghewG6giYrefJyxG5aN/kkrhECoiascqFSS26IVdF0ZyQhVhiB/XlQe0tFnjr93s+Q/AkT4x6NFbWAabH/9AH3RnRE47+AAGckP3ehTPYHjjcbU5CG/RMMU7ZwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20243.003_CENTOS8","name":"0.11.20243.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"12ba9666-b9cf-4013-842d-408fdd638118","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20243.003","status":"Disconnected","lastStatusChange":"2020-08-31T00:37:35.9640601","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"2225b674-4555-43bc-91d1-563a647d018b","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAt3oEIFvd0Ah5vZwpUKwuYRqAA5a+ANJeB2u+tIvOQapjJO1TgnDskWMfOmwgKMM5T0JR9agEboLvmUtmsH/75skkHQkkXfu1BNjnCkOJRSbCDm049OhsYo09DiH28Gdhj6zy4+Tj4DZkNhjNCUj9t7fxSL3vYDXPBgYralhS7raHog+G3bZ6Ft8KSOoYqHmjbnHUIxxe5LrZ6BdAAmk3sS35IaUgyQYwi3EV+hkLhDoq9JOUcQXDkhL1S4zlK3dH23zd/f/uwSzROiJcs2TIlw0sbobBGfWH6o1jTJKQSZa/YTcSQRTrExxtvpcm58Q6WbRhaEDFsAuru44+OnwmbwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20244.002_CENTOS8","name":"0.11.20244.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d521b33f-91f9-4fac-8467-197982691d95","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20244.002","status":"Disconnected","lastStatusChange":"2020-08-31T06:20:03.9461627","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"634f954e-3246-4afc-98a0-3e6d2fc93051","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArTxaaIFsjd60KAWC48mI7ADPj1qSnod2+s0obeh9353HS2ZM9lg9UIWwyjsqPN0wB9tuqLM0Kmslx29RWISJHsjb9Go6Twc2UKlwv9gtw1xieMh2gvhK4wFB347b0rY+h8XQBGPP6CIulD7tYgvn1A8KxrBGUZYN8AxtpU709ehbgv56b9byG5htUwlkrHNVSl2pL7xslBTX8TGfyDctK0rKza4+RnNqdelo8P22ia+Tdu9k6MTSOCKFpZ01kIyevmsXmskIhAC22CKfcRyZIhz1mjp1e7oVK5IbufV/NRB8ckUxjj9Blu9Cleq0RH/nbacWeJltKY6/d8FvTMEn+wIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az4965vdgz_e2etest","name":"fv-az4965vdgz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1bff6507-48c3-424d-a8f9-3b5f04d99999","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.12.20253.019","status":"Disconnected","lastStatusChange":"2020-09-10T00:30:02.0619137","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az496"},"vmId":"84df3f78-aabb-4d51-8512-477cc0ba286f","vmUuid":"2717036F-18F8-7945-BFED-8E947018CB8F","clientPublicKey":"MIIBCgKCAQEAxuo/WqUDB3Ua35QxRSV6GYQ83BYcLz7TK9RWoAJEdpvj6hhdMClzhbqSawtpQf14Lmf8adryMH+7fqzTI+RGIgVXi8SAjKURAAQjUo+oDFXWcc6yDPR9WgQJVc36LoPzCwr1ZTn/GAWtRLwrOK7vgq5B7Qd3RLrz7f/4gx7eOXbp5Wpvg9fnxj53YH235X/6VTwIiEVHuP1PMUvQ3ppd6GUIb2k1SJm15rgYuT85vPkpOcQJQKbupcZ95qbi/TzpWBXgV7ShjMPQvufM/jExX9iI1rjsxYDGe25PQ1tPPG+ljXIBuXuNQIh2g71fyAJ6Jx1ojBjvhgWlV/wi4BDINwIDAQAB","osSku":"Ubuntu + 16.04.7 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.xzc1nwnja0mellgqx3qglmmi0g.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1ro45a_e2etest","name":"George2-Cent7-1ro45a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"caace50e-59f8-4edd-a404-1465681b8d96","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.12.20253.020","status":"Disconnected","lastStatusChange":"2020-09-10T00:24:00.3095301","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"269b9522-7cda-4918-8a6e-78e43dda1b12","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA0pnRoBoES9/MOIcimtX313e9YKaxnzAWdW83kCkpcNWTF8K271WtP6iCqJ0Y9u4kGDindi4OdoGJDbjNAfyV+AVg9btNQzG+5OMTwVJmqYXidhHJT7cHD+IwAjp3Td8LPoHfxTxVzTY/vmJ6c9LbywHQMZEwYI3Hj/pXz5a0w6YmRMWt6lJA9Mai8AOffDSoOyUjBnCtGHWpMKbKyeHy++on79fyoODZOQq/nbton2/2G72WC5sYwMM5U4JQEPus03YAagdx4f7HghSdERe+yNJEhKk0keMK7m6znZVh6yySGlsDHBFNuU63qUijI11qcG0cLeuNRC4z5iy8sNd+AQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/gwf1","name":"gwf1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"96c313d8-68ee-4f15-8347-42a7ee76b294","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.12.20254.007","status":"Connected","lastStatusChange":"2020-09-15T00:17:14.1662018Z","errorDetails":[],"displayName":"george-ubuntu18","machineFqdn":"george-ubuntu18","osName":"linux","osVersion":"5.4.0-40-generic","osProfile":{"computerName":"george-ubuntu18"},"vmId":"a38ce6ad-266b-4456-b364-6ec21fe87e3e","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAu6M/hZvooh9AEswZWP1w534xlWuU/bhkEYKfQ2hCvm+FQcYV/1de7Rzpl+5LHyvDB4AAvmfIb16mUutZY71MSVpVkCAmvRHbv9ZyaKm3sS2nAmJkEF3LtH0TRCQ6dGTXnjREa17v6DUrU2rAiefYszfkQ/bx6JC9qF33ot95aKgNCo/g4Gb5cXLWA+6/M1nTy7Q1/YAcuoALhtlm/axl99GTL0WXeEF90R+TKCdYdeYt+EuGROacc0UQKSUqjsy7TD/1tSJzHwUy4aSt8jVpg00+qRbB0ghwyU/3L8xvyWc5H0O1gmwjuCMhE89MxNTKgGhxD/RJX2QaNYfN4q4ggQIDAQAB","osSku":"Ubuntu + 20.04.1 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"george-ubuntu18.guest.corp.microsoft.com"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/DorothysPC","name":"DorothysPC","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4444182a-314c-40e5-a2bf-0e7a3ed430c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20231.004","status":"Connected","lastStatusChange":"2020-09-15T00:06:18.1418698Z","errorDetails":[],"displayName":"DorothysPC","machineFqdn":"DorothysPC","osName":"windows","osVersion":"10.0.20211.1000","osProfile":{"computerName":"DorothysPC"},"vmId":"540805dc-cfe6-4c6d-825f-9e2950460d3b","vmUuid":"731AC6D6-85D7-11E8-9C43-BC00005A0000","clientPublicKey":"MIIBCgKCAQEAqA5huBMQMhqEIoyHC6htf4/iIcbTQJ3Hnmu5je0ZQXwhhI0hYmrA3pk49Y1BBTtOChfzGU59Zqh2eYuX9AKwXzGW4k8huhwEjX/K8LanJXT8guWrOCJjiRQ2R2BlkGSXp/vP1Jbz6w+PZrKkHiyp1TJTft/phcb46XSbN0D5guiddJtLXQU65IPbovNMHbffQh+Lgu3jpaQkISURbtwqRs4PF5CcN/ll7WvMV0tUv9BIqW2p7HvQCgLvYtP7i1bzEHQIDB38gARJmkbsCtaI8+8YmVmrmC7uhdsqcVrrN/0pAXc6sq6H3LGlV0RuuJYRbyr/rjOb2/a5OD0ltHQQ4wIDAQAB","osSku":"Windows + 10 Enterprise","domainName":"redmond.corp.microsoft.com","adFqdn":"DorothysPC.redmond.corp.microsoft.com","dnsFqdn":"redmond.corp.microsoft.com.DorothysPC"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/release-098f57e0-b279-413d-a6e7-a62b84e3f958","name":"release-098f57e0-b279-413d-a6e7-a62b84e3f958","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1c4473f8-4b92-4c21-8a1d-d9501b6fdacb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"0c4aafc2-9dd2-406b-a9c4-38bf71bbbc19","clientPublicKey":"MIIBCgKCAQEA0yza4CEcdtT06KQ/RdkVS09O1IQZgUT92s0NyCQODqO0F00AU+qaMhcx02Y43JdHGONoS/lklFRMZx9eG9f+ZJfcoIUwWGZjrKWk0mb5tBtKbzAeTAZw01il137p7/Y43mgTbzXBZcKdAArl9eW9V75oBhyYJEVp3fbGGRk60DrfpkpRmexOu6FlGP/m8U3FeHs9/hm+3qbme4cQt5dbJlgyo2Wk2gu+Dy4/lcS/5O9y5G0xY7SbqeV0Lk+LhDf3HFpNYWvKQGmmdBZVVO7bNfB5lJNZ8DtpMPNsXXFNyZ1GFfqEdRof0woTRvwYY0xp/69IidDJsBnYz1NZXW8mgwIDAQAB"}}]}' headers: cache-control: - no-cache content-length: - - '148589' + - '37321' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:22 GMT + - Tue, 15 Sep 2020 00:27:38 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -363,8 +696,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 11f3d785-0738-4e0c-a713-e7a48961f4f7 status: code: 200 message: OK @@ -376,32 +707,133 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=VVJtb5swEP4v0dinkaSQBKhUTWcwC3lp4xAi5SMhxvGyAAUCaavut%2B9M2mlDxn7su3vuudO99TJ%2BrRcyO1W9%2B7cehXAThQaNYNW77x3ruqjuB4NznMWCn3lW9%2BPXS8n7SX4eVJd9lZSyqGWeVYP9mI%2BskZ3o6cSJ9dHESnTbGjk6N1InsZODedgPB0WZN%2FLAy2qwlEmZV3la96cv%2B1Ie3PxcXGqOmZKjzHj1PS6k3qAnkj8YwztHH9r60NCLkjeSt1%2B%2FVCdZbPITzx60MdEsohlGra54aiao3SDrwEP8%2BwriEZYxfzUnzdwN4PZpJho9zTDXG3SyEGzWrkLDIeIg3CJGEjOgT4gm47E5wZu%2FUj4gfgRyJ1uYY5acRUjj45I%2BJlagYsyjCjdoJ2yFyEw6r2bsQ4pX59i9Njv1iuL9uy62sSUjCRCAULgUhIq8ssae5mzFgCxBAGXk18aOoimacBW%2BijbtVMAUQgiOAD%2Fbv4q2n4ouNxWYq%2B10mJavakYGcmSPNyrRWZybEse%2BKUxpDkTAE%2BDptbAE8LF8cgFSEYadpAKwoy6BbSxCQU7A3Hng0kD1mYQRmy2YC8CAyi2DiD0C2Tx7O7GDOcYtRshJcOZw3ijWm1OxBleIGbjUhYC44pm2n30g%2F%2BtMr5hhpWpoXroqW%2BdEMBizKWoImCsocsMMMgGGGolv%2BJdxJvjHkHRTc5b%2Fzkznc46vHx6G4WOLDM3y1Bp7vff3Pw%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a6f608f3-3ec1-456a-9932-7c7e7297126e","name":"release-a6f608f3-3ec1-456a-9932-7c7e7297126e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2cdd7c97-be38-4fe7-b89d-e0c64c3aea76","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184349352714226747321973232558236349713258346756574074669195754414144263252966123120365238214350146857301848625640397051135881757124296356872689483664114083501522987555006822736119968424459575822229268985297276125628419397965790952927718061788","osProfile":{"computerName":"jianyunt2"},"vmId":"9e318173-d8a4-49dc-87fa-52e247501447","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8NvqW6yGq6EeiiBdQB4iPHanMACKAWfk4XPJI/CcH736UtOPQd8mMDChpFB5xpPDtgngzB2/5fG62GCuOO+i/QjdYpJSp2WLRSOb6bRYCa8qPHFgZEJ/H0cMuIyfjc/xCDs/o1xk+RV13ecq9EP7aoeiUDvsbjYgdb/wIeFyaeAUuj1qg4/F2Hl06StUo2/HQAX8GFKSR6WvlNlktACbrmsXpRAJQSaiYrbqB3vwNYHCI7sW4T+sryVX8/901n7gaDo+EiIVFAJJXlRw55/vWP1fslko/eF7gjHoBYmNFMAW7BS8MJEhYUcbxYofzY1lKSxg47MSQlSTnC3FNr8wlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-72bd4a4b-7ced-4b8a-a96b-f9e6474378e7","name":"release-72bd4a4b-7ced-4b8a-a96b-f9e6474378e7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5d5d2ff7-e76c-4aca-ba52-7f3226056f20","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188220584941642145444742781725149507152468444971672696462810230068159605722337406587142445398908128636246589979068084544533164398154572467710734830451744315286489103224655918569993387209717822900768612087842394798867616324404603177755533964523117365179339985861515564243344708813030903492824526149343","osProfile":{"computerName":"jianyunt2"},"vmId":"419f7db7-f410-4cd1-b9a6-8a1058673574","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw6043YZUmfivfxw4Jj0XvY+Q6PINKkDZRqY8aKl9bVZOf1pHqVUSjuw2UDX7quo24b6lqkd6U5R2TOgEAmRriYOGIPwtdwj+1bFxKFdohPiM/UTigRAB26p2iPs2FYETa6cT9jrQji1YwXpS0GQkpelY+3+XIOXltjnmv5dTlOoWskc8LhOLhS1pNCCG+QvOyMkdlGXNUAxqXoIN8darYYXezHRtvVBUjW8XwLjR56SkaE21EK07FgQisbxeBdBs7hG/lyQ1uzE1GyVXZAJ18MTnPrF9e22rHzByJ4E/7RCRvHAVZl3elDxXbpQpIpPE5oVtszEC0UItUglO9XC9BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7ea717f0-48b7-4133-b6be-ce39b439e7f9","name":"release-7ea717f0-48b7-4133-b6be-ce39b439e7f9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f920a5a1-e081-45a5-8a4a-ba10a06f8942","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418418932819911536694532204444462699957469774006966551165903780542621992890216137807272616560666624945412453828917659459711120686742327344949287066468697114525641917085769535656616363342878944531059776141239636330809136934620273153629235542712426423674296486158245208454676538281891362503524356091661322404491393492","osProfile":{"computerName":"jianyunt2"},"vmId":"331bffcb-a902-4c55-80ec-c11dbfc89301","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7aPTJsx8nXySyNQ4iNlA2xj4gNcx8b6/ihuRpNhz8X3eZl7CWTrH3nunOjwv0v0xYvLllv0S18hqBW1maRgKAEjN8T6KjRmM+Yo/KaiYrEtnUUZvenQ+wOE0yUN86qqqJ1dDHtvoVNkbRxqOYmZrVRCPWYQ9sjGj6JkhEfr+ULP5r8cm8Kwhzur14QixFUbIXZ3JVw+B+fdZWHvSLZC3daoFjuijRmGUOeS6Rt2e+QjPkPP79M8mC19EhznWiJdFEf0yTAeNSxxDGadJRavdVzb6TsEs2gl7Vc2RylRDx4K9SnRreTMxvg04eefHSPQpthDbM6G/GujwoIByc8TGvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-96f3e452-3d27-43d1-a427-32312192a476","name":"release-96f3e452-3d27-43d1-a427-32312192a476","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c2f2ac7c-fc5f-4602-9e2e-584cf72bfc14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418630123073573828167713152683842922327865578990143248802118992059132116988667887758768700159133869549462740153902635146444575157199585361720330447752314524734867451780358525461456614720385263476462971264739827401111223419759952952654424157842755734174117305761924924282952641005936290","osProfile":{"computerName":"jianyunt2"},"vmId":"a0eccad6-df84-44b4-9ae1-445596921e07","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApKJELp0cnbrkAbq037D//WXDIqJ4pfgR2v5HbzyFfto2YwUWeFYawrIHZf96cmE9sF0VxchgEj3QPpk81R7oOmy9aE4Onx/hisydPyVPkm4brbH20LnbwgyXzHd0zIWeYTlDCS51bIILY0yeYrrDXlBn7FNWSvDe5eaW3ZZ6WjxWpyCdW76SyB38yCTj4b11p0yfIwNsXHo9VPg7P2od80WsAhO5lLfW7+kO7DTaj071oTvGTHv+0ja7EuLyRUPeJtA/IJIZ+84DVAss6vIV/3NSgXTFl/MqoFf0OQyLYbgrE3lTdF+nHougNvlXbyf3+0fQ49rMzCloScAyQ5i4ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-096632fc-80a8-44ae-b968-670506080eec","name":"release-096632fc-80a8-44ae-b968-670506080eec","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c42177da-cfad-4340-9df9-fdb9906a429f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41842077294369552321548941415382134812501668971450109997588424430956756198578344444869423284573569722682817622477333855912245278628562294986925876294219033643534914066748072399033429757486042970111023928015533123763","osProfile":{"computerName":"jianyunt2"},"vmId":"9fb84bda-7bf6-491c-9d29-0f86da12c22d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA26ToihkzdInQ7XUzXPcxWErZpbMWtQ8RlGgVBlsrXLY5TkXK8UjqhrxW9MQ/MLg6g2wmh/KVNpwy/0r4dGSKufBxN+ifbSkl97O0PiRQy/0ZG1wtVImXSFi+dl9ZJyrEpGjt994MMhf1J9vWHt0h/62RYzUensypdMQQSNftLD7cNwEnEkHq6tk4surWjsSNJ0qx1QkO0ItMYa/sQv+b8rTRdltWUyYJrysoVqLgl2J9r39B6oTMtA45FzO9o9pm/ugEolH+4MV5K6P2BEiXYX2kw0tmVHiCOjC8XnHhVVh38TsZ4ILMLnK27aEsttJh0rSvlVKNlSIXMP1sw100DQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b3647d26-91a3-4e41-a7d5-e280400ee1a7","name":"release-b3647d26-91a3-4e41-a7d5-e280400ee1a7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"146aac67-2619-4da8-bb6b-98b926f7b431","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418282776513183236570627652464717731107757765585172987362824355841794695130418500340450552952996743043286895812453482289529246952193989947836622125119685122172511218228498189576337923561541865250156175844845446135064744154274432961337057841","osProfile":{"computerName":"jianyunt2"},"vmId":"63d68489-6595-4d4d-ba3d-a88bf93b192f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApPJHYIgMae/0ZBedEQ4kqrPc8yEcWsTXTLyktWBKfz/jjIRSCzrnqZs6FFqbREwtFccIgvTRETbCgsenGxczuRfrswalK6rmCB6lfAJ0DFrg4YWCZixrTeHCRnE+A9dT+0XkG5LRCmY3UgnBLNCDfvfwHhRAoFejEz29Nht/dyOUkjnUMtrnRdjvgJe/nKnvMCISSoxmAFBBViW1vccpxCPE6Iqob4f+XeSy4kWxEAXAwerhb1YW92Mbjgd3Zh9L1s6Qoazv4bxJRc5aUSYunZvFJpE0+oJiQ4CkyzUlK739/z6Zwm8O7ZHG0x94eN2vbvxirUJYkvFCQQThi2TtYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-96e58f67-2571-46f3-adb8-bc0f7a402d9f","name":"release-96e58f67-2571-46f3-adb8-bc0f7a402d9f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"21131ccc-7235-4401-9245-80242617cc07","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418869314564117743452331498282716494160995284463527755313393366249577375649482965293796247290317136836247376889772229858583964363839602714332581213884179091443261839269218834521816518216187465122335211106710393763404225569713730996876075022398158757266","osProfile":{"computerName":"jianyunt2"},"vmId":"46688f3a-798d-42f8-9ea2-0b4bd03418b8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtrE76Q6dEESUD8os5WVIgWLpiYXoP3qPYr7wlY0fYGvilmHfF7DmCtdPOiJ5L9ll18Gk5fD2mNNHfyb/ALUHtMaYRvdHPENGLSfH7zqPlwKYZWQEILmUHXL9q9tJXjcupXZm7ekeYFIC1FxmEhPCqa9+504VD2v83FZhLmCbNqDGIJrwYyhRQcT5wPYdlYg/KQJpDet4pUWF68zEt7dlGsbydOgOCOKf2kvoEBXUzIxuvSASaEi5xKigEEg0WzoypfQaWLivFRhPYofr09ZF/E8RSAoP1nSRjN9urch6IEqHkInctf68pPC7FtiIB6gy3tGPW5rfUij1ZlTbvtMLgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-228a9a18-e898-4c93-893b-fa85ff64dabd","name":"release-228a9a18-e898-4c93-893b-fa85ff64dabd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3981e529-3fa0-4b13-b724-ffff7b5af8e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181963169891863475118716553304384017795457762290775203250959022863351609171939814986205804481668902917490659853556572695987490825017891240786929953549939174279133526348423182914421964691492933418224014393399753848419259176229290039208426","osProfile":{"computerName":"jianyunt2"},"vmId":"243de9f1-3cc5-4490-82b7-ef9d2cb99323","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxEjVNNfrSZkjCLJDj7UVAkYoZm0EsoUZq/WhH7+hLw3vhQ+X9xpO1rWp4CmiqbT1I6+1NBwYCeflgHXkNqGpdIkfi72GfdKKeW0ITDUC6lxJ7330QVBBUSupiT79d+1wEhYtvcyZpr/l9jRS9Dop/ygyTSCeEqhEdcq6FkCrboEV8zbZmBxy/9yacAMPuRs8DkFhk6Q9jepk7ZGnywr7CeDI2vPi6CkLvl0xfYoqQT2j7tQY+gA85pwuBUzrnvjJdsu0tB1rRCK+KUmqEc7vQ7u9Ar/huwMe87iK1sTXkEJCBYxSgd4GQbcX1AWu2Ov4VkrZa2IYXyV6BjsR5JT5JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4646dffc-ed33-4619-916d-4d10792aad95","name":"release-4646dffc-ed33-4619-916d-4d10792aad95","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7be08429-f5ef-4942-a600-960e6d5630a8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185184394155885469624847184393526892298071532267101353552866606085447271787886152483696367831499675910789428061205782622614027679797236045147478687123754693821146863815884617882919054719356944684237981391229544306650069884163719610422272034100209697414332016962986271775","osProfile":{"computerName":"jianyunt2"},"vmId":"27af107f-999d-4655-977f-59885f8f0ae6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApya0g6vv1jQwMWASQHbQ/4QolOZCgoCzH+SynWy+VHxx4j7HXrxxdg/CD08JZGfgwpZaevLdPuEyO3+t7U8Bfi/m1MVidq5ps3VSzlq9jEQGkELQMw99gfLEscEiKf+LMjXVLEzwiyVPrkXXQ53htIxlhUfYNeH8jqBw4J8c3cmVeh98grifjjVW/Jk6wsXMJApkpRGfWeakQX36QGxcOWhiNgxjAoja6mCgx3a/by83kvhS0qCQ3ulbJ4nlyG21FvHECv5xUu4c//h5cRbcUUnYaWK9bNu0e066hVwyGEpiras1L+HOF96xrJ3FsDH7wlRu2iJxW0mMBTrAHdBlywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dbf6136d-ba40-4048-a0ee-fa959e6eee52","name":"release-dbf6136d-ba40-4048-a0ee-fa959e6eee52","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e0c1699f-b550-4be9-af28-81ca355dcf31","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189041555874425965903613937079417275732295604564630594235339170824831566783362286950055552450356113856246484054379319424873447015731611739952900816925861558769833865169665364291532517651046826797376922090943076739235435908541157627071379528112499443","osProfile":{"computerName":"jianyunt2"},"vmId":"7e368ef5-0e14-4d91-b75a-a2a7f80f2454","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyht4aEr1MTi6aZFwHcDWG0hfqQKh4ADk36s2gXaMmnnzPpOwMDrgLeBcqyagHEVTENSzE7m9Dm5az21P5oF926iS6HDm+6BjD64/DKnF/hlBlqn2J+CwhzRMjQeIAqrzD8CxyzM9EBBWuLvuGj/AHvlVqTOkcb4gWevt4vvHJaze+x4PhjcjeuHmgDwE6wP93yl1NU5xh0CavQDaSR2k8uWDvx+n127HXLhb0Oe7uHBd+FdpmDqxF5GtUJJun3GFV9i04EdZvxnbnoX/ZlOzDPFw6OO0JBsiialv+mBiQQbJJYHvKzwbm/W19c59quUoKQBuB5mSfDVYQddB64yj1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0a987415-e43b-4d83-8d94-00498f6bf763","name":"release-0a987415-e43b-4d83-8d94-00498f6bf763","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e4d2d5c0-a649-42ea-a3d9-3118b9761737","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188467661818099322809428575071947559314551657342511167936528610227255743419722444342360772333237366059924546980910720989978695422815784941734608644656892806095334868851646243121923187644388467556405343120363792465380466364405662026092877134046985932053910440564872","osProfile":{"computerName":"jianyunt2"},"vmId":"47b5d5d6-a122-40e5-8c5a-e544b3b4da47","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7WHM6/cPr9Rp+Ky6s3NT9B0QTvZxDvzmPR73/oboJJAOX5tn3gt3ryxdr6+i7MxMChkydXW4thnk3YBaNI/rJQii5w/Ei4/1a4CxegoEY97UuZqaCSa4UwwckhRWco2cpDHhZbFUwBFIDYSV2DqETyKkflA/egUCudJqqSVL/6KBozf8f1DZTZoymK0n8JCehIlFsXWpwvUZcVh7Srqg+l9BRPeF+XcfdiEYA6QlyRR8n64fkxZ4wl4HvI5ZStEkXDEuBqFfb02In8+NhzUCqNnjPLSg0Ugt+mNlPpSsDayA8yh5VgvUrrOzDVq8VwEgNDwjDvdC5irCdTW1/vjyZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-42297585-b712-4b53-9294-f04626d802a3","name":"release-42297585-b712-4b53-9294-f04626d802a3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c95931a9-07bb-4925-8551-b938f1d9c0d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418971311704385953003637333842615410143987104270563786140465844455435547336888696345446046234338301750972675786625344330876567746510499458684504664546511262568135948730101491416458565888806394850556817998220510143783452145247193580401589406314261349293751409507","osProfile":{"computerName":"jianyunt2"},"vmId":"97aa28c7-8665-423c-83ad-808a69e08099","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxe6fSf5hqHGTmcBhhk2RDyFLJGB82tXBIjpNZZPraIETQwZ8en57TXGuoeXftns4rMtY+MoD5y9pS1WT78SXp8fwmB+H2OTprnHohMLENiK9DGEVTdERK+3G+LTM++R9L+9tDRX8zOM6LgqBZOBDOZANXpjFZUmoUgHOTdvU43KxbPAsVHvsD/wOLV/Opa4LZ45AX7MgIxR3Stoxco/mpOYDQlMAGmlFBxIK8SiI9YpQ8J22bRXIWM87lnTAid5JREqrR8HDKE1m2fMMB2xtcVxe+djjZDlQV5kYN/+xiJWSe2JjbnnedJ3ICVM2DckcNoZ2gC1iEZpME+vw/FYBpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-95e6682b-b7fa-4719-baee-36c8054e80c0","name":"release-95e6682b-b7fa-4719-baee-36c8054e80c0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"57c23618-d254-4f47-9055-b4533bf48531","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189132967335951927364162569476137262139721686365915621218120998275999583963314855343202623233870515599819226625057796091883169493682622602736570132825299257838736509739514021383176095613559528211212271837282047779246148454518455699519644036913859408390459167869859736266885301495416655218980739389930438176831550139","osProfile":{"computerName":"jianyunt2"},"vmId":"bcce43d8-b9de-4e99-b340-7913649e09da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzswWWwTHfaigvhK0E0UN6DTF8OzH5UV2kYvyE2rjIfl05cegP7NtsLQGNsR2IzltsXR/bIoS7Kz9dfrUYKO9U3bEvdXbLjNaVpN4hcNxAbtSbUiXRbDai4POYI+X2FBUvvyPuCdUxiwZJTG4Htinh9E5iLLiPZsEUnZTs8qqXBrLBMqtsXeHeK09w56CNGAPnbTQT5HXP91EnrFWGU5KhMbEvPce0fr/sOfj80TxJ4uJiwiRWGv60SdsvFK+03OHtfyMwCOpe7m6hI2VRCs8cw7nDvbhoURfacyGhFtSIT8eN7+iuUf3EqYtEUdC2AvvV9DHXhDw2BBhmXlxW7xSqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-91505eca-4ae1-486f-bf08-67ab4c39ecdc","name":"release-91505eca-4ae1-486f-bf08-67ab4c39ecdc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1152d2d9-f738-46aa-997c-fc333a6199a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182646254851831368488422369991341853204163682640403986866538572151157791997847383676438144988636976874766333825646444291355417417567320887794892273938892324601763558119275615830221222677495665227994367485628336785716866816199996838395995700214233480677611906774997113312920","osProfile":{"computerName":"jianyunt2"},"vmId":"74276afe-63e1-4f2d-a8eb-f443e4afed2f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxoYESXVDMyKJj9jrtCjZt74SzeAYtSavzrE8xanfW6EAwBaL54RqryOnY3LeYN5EPjr7w0V9spOvQ3RBPztAefei8GvkhCznjlxWcC4QpaB2Su5dUNZ2y69xt7v2x1tZcAr3WJtD+yHHi4p3h08h3J2C207x3o2wGU5q8MbRb9b+h1hhCdj7kzNJTVpCPl77auSRRJLuj6BxlUO+9sxVgNwgiamQJFMEESPCPKoEB8YkHuS8QKxbzxBL0RnFSla/vhl2ui3OAUcMJzRz9MWDfCuRNvW+ISvvq/7t+nxu+rcBYs8hCZvyh0R5kg72pQGb/K4M3y9CeboGwLljk9PbCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2e4c478d-d936-41ed-be79-303f1387893b","name":"release-2e4c478d-d936-41ed-be79-303f1387893b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7dab9085-4f39-4217-8f9e-15f53a50ba5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418591313353516020124170313034044437455130199709434270543394333193774437528587814964310130983274409386875586192964039024483168414033204911231815953259444581279559825453583932798736136875876869021466014195559989123902263729133505052427941282789593494502651126915454877485625386235136667334999","osProfile":{"computerName":"jianyunt2"},"vmId":"1621b150-de12-4f85-9e4c-a70e4b48a17f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA67bU7vtE5l/h+QP64jGh5UFnGbU/bhZr/V6sMPHgxPtciwIuAs/IAvQvz7MjuAxA1nbFaEux1CW1/RCk+CUUXoIcfdjm0S0iAIH5pVx6+iX1azXfk51lSFyPiJAE6XoaQXyzZP76pxTe6+Ld1G/pWbT8I9Jk9wHO0+X2ClufudAkvQYjt1y+EIz2Y4slXsX4kD7qWWe17HEJDuC6jHdwHUiW5lVQgOvy3qa+zBPf/s1m+yFkNUXtKeDOACN6wLUyHL3kpgL+BW+7EeMpUrH2pKZ8YTTIQ4Sjjoj0IPtgQO2A04vr7nFC07uhY142Kauub09h2/Do9Jazd8vDF2jUHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9c5f4e55-c544-40be-a685-e4ebd85612a8","name":"release-9c5f4e55-c544-40be-a685-e4ebd85612a8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bfb2da17-f7d4-47d6-86f4-6abbb05d81a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41846314608575231287493719152280821369237213057649755333061877530837252778618857761997568598809942558370916067958300347125691087751230828412534635018154468104058344425580161813982980655372846762871190554443829424910486728414846379266204125521992632017725261844649","osProfile":{"computerName":"jianyunt2"},"vmId":"fc9272e3-4496-4de9-9a44-394c4b1287a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoF4TZdl1Zn6fU03vSGh6fgH3iOJBL2l3fGUbi/1ebQltU/3g4kEEColyS5h3BrueHtXML/89fcetl7j2T3MY2q/nutrglrd2dUR8yB8Pd/0p7u+cQ02FZmozA7IsKoXXzCrUZGfAcqhsA5xMGrmvO+Y+VTVT93OM238QrJeJe9CDH7lL2VPkBNYe/bPEbpcWJxpiQgIg18NNwY9wzyPSWucLZw9pD2LEi1e+dGSKn4cKCh/LFshJ5z97kVXTJBPOm8kZsJBMLi+tWW50aIioAdP0OIH1ihvaSzfzqtK2beIdIE4yKUhO4EDNpYLs0xC4GCUZQkrCHF+/i05Yame4nQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e5d82d11-5781-4015-8695-d50c0490e6cb","name":"release-e5d82d11-5781-4015-8695-d50c0490e6cb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7522f011-25b5-4cd4-af23-4c3529833973","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418276333092592627526147726516882854339507154064429259728777073695726690146961722678844193377608334916026162540096558974335310999455589347875824743385314819462069826877464459833737430373415354842112112153884528612105248842915641088737258609112866883679628133604","osProfile":{"computerName":"jianyunt2"},"vmId":"c05be930-4a24-4a62-9a20-e35d6e7bb60a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8c7ZMGvOBdrGP34BcCKiqTiGyhwyhgKqcOaFZdNrdmDTQm4a20Sg95bJc93XH0KIKdQR0v1FmX11jimePm7EGNf2j+iLPpgUTfWGkqt9Sv12Z1JamRdfmRM9MHZy9dAhlety2eZF4/nUpWboL7+1Ij4P8KKs7onGPf6AChDqn58tXV+w98mIQkdBBkxdl2KSH2GHSH29f5WVrlQ7iG4yxVdz7ur9sF1hIXxUfSRfYkayh1btUxIsNhJY7//FDGdX3BscRon0To9xLxXofh8LBfbRDn+HTFkfAJ4QeRTdGKLSktOA8Dx9URDMIQXU5pVk3P/ag06L1q9GtHo6YZVOLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-49feaf5e-6afc-4cff-a589-dd81616b58f4","name":"release-49feaf5e-6afc-4cff-a589-dd81616b58f4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9e659248-56be-44cc-9227-44bbbc30c74a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189246131921435932703220464654552074398596152413868784443549146929491978036979608372354556322909887532134710188909772560198504770249531856463654922925123058552836197803318222346102353593831925635898346912918868737234161955867529764727735244213618","osProfile":{"computerName":"jianyunt2"},"vmId":"b6834042-eb22-437a-9bb0-44ae68f82cfc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ieTC8asgFeeN/ZXXaOakwaqxw8NOaUgNNKTAoPzckfLOVT8M62IsIkUYlh2NVrFruSo7lZOddtqhM8DfyJ9CbIeXVjDtRgo+jVRN8DlOsA3Vm2nELWMi9+bzHGY5CkprrRYXziyJmDPC4DX8Shwmzkn2Gxl7o4DWF8jM7OMECfQwPKDdccA4MZIT+mQu8a4l0eE0bx8Ypk+EYDH/jMseB0sAF7URryXU/EddLOH0ojc6jMOARBegydfP5UnlwzNpaa+2m5RG/Qnqv8pGG++i5rl3sG27jOXdIi9LRh0VyBy71epdcERAVyWsnQU3O6TzrH9AuJMiDnDS/Rfn4a2hwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-86fb9521-93d2-4eed-9fef-ed498f531c52","name":"release-86fb9521-93d2-4eed-9fef-ed498f531c52","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bb92417a-8d87-47de-83bc-b390b14169f9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41891043327992378162167211070508518503751506286545619326104582901533614541531219642294607783123527194967499538497067871387768432199619561178298909232540137575293504227448588910839767140104676808129469910222712469195882917690777844137668187631788205920859892203107983694495541340615292519625612855024461165937556726","osProfile":{"computerName":"jianyunt2"},"vmId":"a46f5c0b-3f3c-42ae-aaf4-04bc2731bf86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAslxxiDwTfOep6+5uLD2bKr4zGIwm4MXc1gyPO1TG2fzhIARNhyvjuzKpeqBOncXHvigR5gX0xvyG+oBM8aGHdddSBedcb+blTBHaqqTx2DS1nZw/gvnq4qxa7gWaoY5BEUlP6mjeZqklUL4teFPuwXBKPB4tWnjrSRvOQ+UuWin467TA4WYim24xSU8JG9nLoZzHMc9W3X6jZzGGVMSDyO9TpLpsoZASgZsvI2pNtHzh6hUK+D+BlK2/8HTYUmkWtIIpxyZ9K9tKQlk/QVyrLLWYghd70KQEcAHkF6tDPyMnOLXunByBL2koPBpIiyf08yrof4HUjmsDG6o/zzJnWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-eb998722-e625-4c8b-9d06-079de0cb9e10","name":"release-eb998722-e625-4c8b-9d06-079de0cb9e10","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9baafaf4-7a1a-4b83-894b-ccfb6aab754b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188781106053762155936275004616573953414300695840175207281744372379382839370955994612950219776774526572606386311329143716112893107236543797409209041659185233253653254727499899253858965741884416483280548819952780391321862274113276612671386197853879766123081381545826056817","osProfile":{"computerName":"jianyunt2"},"vmId":"52c7cb4a-0395-478f-8bbe-e9ab791c3380","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0kdTzTK7MklXx8AZl1j97C18DkaR8JgL+e6hjYKStqEJHKNqo5fimi45dDYbomuS2ZjnX0LH0h1J2Su1Aw/v9vrfgt8vdXpicuuaBE59kwBQGDQcso6ztrenR9IVFs4F0eWyZID2OkO/8djSe16hXVDGZXEhXci6mgDt/nNtycko1NJ7SDiau+pP1x47O/0Mohn4NVxg3OYWMbs1XExxBmQMU7D2Bo3Z7qbxmYfyBfRAzeZ3a5C2zU+JcrAnCxS33Ub5npp4Ad3Ulf8N2LZXFmbBGAf4bMUliFNGjLfJuWkHy/OSMEDiieP+S0yl59U44mB+ok3AMkmQzpNRwbkMBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dec603c5-4c3e-4f35-9b15-1e316a75d59a","name":"release-dec603c5-4c3e-4f35-9b15-1e316a75d59a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"318f128d-7bcb-4429-a685-6f74b750c384","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181372603318451332979542006562363357008913950080837751449312696444795341834627960152737546241116333156112397246472715994553572691514832265847909035662956718084838115666016417123251182369647668392142076531568037322020681861519086623703767055455474398705","osProfile":{"computerName":"jianyunt2"},"vmId":"57be0585-af96-4839-b309-e8c7694300c7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwTnZAUviFSzqnScxmg76pMQrz3DXScTfHN41ggt9DHGdjyW5Rn9Chg3BIBeUmShgwnYpCOGY/+xa92YMPM+89vqbQ+CkxTii9OC8CEOPTGPcGuRevrjwb1Ukv/jEi4i3cU1rBiAoI6FTibuGe46h15MegUED6Ur1pDVmG6aO1oyz+RHLtQsEmENdUv8QtO9UPUNekg7b76pXcVOiAD6AEdZTEo6D68593Ji4a/w7s7H8aoz5g+72jygI6/nWb8BPG9kElvlCh39rR5fIvyhhjMxhZw3jzTO3w5jAbcepPZpuMZa2k/XjzgmIc+Vp3EE88Q0ELz7yhwxjStcjJDE8pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-43787be7-0a4f-42f1-a471-283c8a02c418","name":"release-43787be7-0a4f-42f1-a471-283c8a02c418","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a86c6d9a-d518-44d7-8a4e-6c013e30dbfc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418752931131702413845115732742450031889141070555117460277951323397874659375219314453084208506067974269361549755130903769657873001924981062631985558197711039195477712571607567235782731432192894051413815340367425103168332773495360722017257","osProfile":{"computerName":"jianyunt2"},"vmId":"5af63fc9-9ddc-4656-9dae-ed001bca16b1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6wVWx+wCWTmzSVnFPu0/AG1rOOr5nYRq/QZ5MKX0gP7qJmK3btWxRcA5guoOlfWUxAg/zNKEfjRH5J2JD9V33bdZiTUqyg+99/J2MaGzHbnG5OBR3i5c3yYapawZJRf8OuLQAZyD8vNAtQSIwP8Rh3LY85jp9opQgN+CY5+9utrSmWBhUkSEOvevabo9qqW6AbntMv9NEknYHL54w9WtZiXmfUgh55sqRyY5PFIdMo9vH6fq7OZ2aZgGlcL0EBRnUKYGncCVzGXNZBOEGhR2ffFEws6Malau7SagnwFCqw9cXHhnFt5jbPFM06bC/K7FOTcY5qUzJmeTE+G8wa/RPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b5784e5c-fde4-43b8-ac19-c3d4359ca4f4","name":"release-b5784e5c-fde4-43b8-ac19-c3d4359ca4f4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"27672d18-1479-45ce-b2e6-7b61604a922e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418583242345349846361017003904135539649515914520115464583712791404620827332669845817618713371381531402789365153434141688453155441194582936233014195721648609313188535955991718532306795680799181166830602196472314443723832797623658888783894112039663974980853847696914117836238484609143624427560422672286147","osProfile":{"computerName":"jianyunt2"},"vmId":"4261468b-168f-431c-8218-e5addb008b26","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3UbiiAjtfZOzfBkVhjXhU6xAsOFvi5+/al5lMCyh2VVagSY5RpThCId8S5rkd5s/dhgr8pYXt07EUcZWAgKlV2ZOFaanLzHVfpKDkQcsBZ+DvZNv67+gXXj+J3Wfep9MRQVI5YYGVRl7ALCGwCbiLktY9YvB/c1xBepDOLvVMF18dv3DNeG2ly1S/iYXIdnPI2DrHPuG0wLXiyELrLmdx/PN6rNvBjnUAxAkas/asn3jG5PPaT7eEoAmKDOy6akoLxZAMbdxeaRatQ5ruL/NY+prdbwazVga8zGh7TRu+tOS9IcpEZ8ENWl4UDGhNYMv115Ijfwzthbsw85PkvIs9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-02220c20-ed23-43f6-adf3-cad25352b855","name":"release-02220c20-ed23-43f6-adf3-cad25352b855","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"225c41b2-c94e-4623-bdce-96ad2dc5bcd5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825093132511661024850815524901477477820706544419237541591146509158285373532784544413192718683959304927872306545299311139936274152179963674381651234015764351365633111735975096734939844385094429867441895875365663742592897651167884093908198411961940459332351890496345420755468744630362450616968899820741213393","osProfile":{"computerName":"jianyunt2"},"vmId":"68ce4dda-9098-4561-bbad-28b20837bb24","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArwwHt0PPWJtefg2FeND9u0/ztMO/u9EO1AAqCoVrq/Q2QlcIVV/5peCIvAW7kfcKYznVXpMNRfD+kM9C0wcUL1CLEsTNyMxzppFYfsE2bR9TNHP9UwIyg8zeMtRd4sKIY1jcABJaORAB4gKt9PZTQFJzqzW1VkheoKCMtG4pR4IO02gZphkYxO4eCSzz3fIevY4F8+MsthEB5qOLF48LwR75sTYNt6hfY67NG5FLF0joRk7+edM4HCCLgd7kJTXe/WMG+Bw1n3954uUpuqEZD/Nm6y1tHeZTzi3MKylutfqZ/ztS9sFep44oOUXnSrA7TB++0HDgucKUfkluGrY9FwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bd9032e6-87ee-4a8b-a2d3-a27483aece62","name":"release-bd9032e6-87ee-4a8b-a2d3-a27483aece62","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1990a421-142d-4b49-96af-9de7af204697","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825934028129370759942605983385996614816781572982169441244464011277555743944028651656813443637364386830562344476387360148006144498451968063620696031108743720010755015747081631684449548151068668059308022528165791000282278135858677460979932177413464661653860993807512197832008685904611354752653878735597616649","osProfile":{"computerName":"jianyunt2"},"vmId":"94959821-908b-42e9-8cef-8839afe6d497","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsUrX7W9Wxmyqz61FqpApHEf0AdY7A9Fy9gzo48YGrdngAdjTJnOevzz6jQb66L4jFdFAP5DU8RXAZXrzVmMBxkc01cvgAvRzUtn/elqkBnMvVPfvvBlA6w1NS1nIggkFcnOPO9qIgWUZih6kyw1CsPxeYJbFSMBHZHjF9VTv9gAXcwPnhh4SbWGGc3UQnAGq0F2KCcmCiDJOj/Q8vRy4DdlLzovZR5jNnWwe+q35bp9+PIZ+GnW1IIl/ifFc0RaTfE/K0nzNXmbuGusVGr3JTR98hBIQJvoF/8HDtbpcTE1tCDpIcmu32bV69UaPYCtmSqQiXDCmXJjoqHCxDsezcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1dba409e-ba96-496e-bc69-e8e89ca9f547","name":"release-1dba409e-ba96-496e-bc69-e8e89ca9f547","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3b6674ad-f9de-4363-af7b-9a281f022659","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189240794147506686687841167781431346861830752214904615752513727349260990075293911315953333356535779043533450692291375470450636809997928247114579953779551658993561939198374187328280447716503520724288314294630775963452598615256497965926941424329498562463390676377673457863884564275941564923299","osProfile":{"computerName":"jianyunt2"},"vmId":"1d9d43c5-9dc0-4d19-941d-92ffc42abc03","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz7SOZHrOw6TgHuZLavqrqwUDry4rHSzEkCgBIi29uWPP9Tgr0+7ZbqwyvB+Lxc94Z6ZEKPaHESOssWxggPKGJSKcm4/z7ailSDqKsR326NmoMJhqkHguONLrALcXN74ysVKzCdNFsC+xuBWNRRvSjhZA4HLw14dLkBUbsj8zYpndDok6rpwuQrtUj8MbyGLoZe3GRHaWgEXLdqjNv2me9SlOeoUxGWDDSvL3tuhr8QgAuKxiQLdfrvt/yuGVnKbs/uCMvHi1BDIsxdLTg7bzdNzaYONBjZzFt+Z7EmOLQbpy6ryD6AJjqeHd5jI285aDwXYaunQ+DuNDnFgTuQjV7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c8d10c62-e4c0-45c5-bd88-c727cb5c4d01","name":"release-c8d10c62-e4c0-45c5-bd88-c727cb5c4d01","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e6006bf9-96e1-4e73-a963-067a9c94e8df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182571300737641340394365219308336960789063732331385679813727019049643237455877531942025721028237978916555682257841512720728858769055575498874998917641333656110366178695809222091291513167693915573912647696160102086867360332969612119633267025791688387273338953199204586836786882973615855147929612192423693353233558","osProfile":{"computerName":"jianyunt2"},"vmId":"fe2a7369-7765-4a11-95b2-88ed5cd1c63a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1FHcWVoRDadOpQqh2E47j4+GYWMnNpLMzrWQY/+QAfuxRPIwOfOIyULK/imU+0XYnxdYrKn+/BTWQljziJZXz1us5UkGZqs23y7hR/y9RYe2idX4BMP4itbt5o1BaV5GyeC3AQICZEz8BLrReeaIzwkuiyYz5HLDnDQZBUwwMcvDUzZFiJjwYwU6zUbKTWy8IEhYEgITqjyquMiFgCDLKtuQ9w0KfcemvFH3tOTYidXiwJNkBjpQr/S0eazD3OGXtfxV+NJ6R4cLsq3ja/dQdcadDQgYeluZuWLmavTMUnoE3zqjcAXtHJ3ZsbHhqNSRHV3A/Ly5el1zVOOjsW3icQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-15353ba8-cbd2-41be-9857-a47a31887adf","name":"release-15353ba8-cbd2-41be-9857-a47a31887adf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"da92c29b-3577-4060-af2e-59a1bd0c39c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188120756125228096582192097378038651598137814458836004076562311678364294893266958927738558621037213163344732490170923280693266084611315882703044319671741523108399922784336918017923073166215530842847578309826424007610923590944286828713118485925598473565","osProfile":{"computerName":"jianyunt2"},"vmId":"3fcf633c-4bec-4822-ad2f-acb045b15a2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2SFGP3Zpkz9uujal6P2gA1eGVAwDlqGa2bLXt8LWIqnkr7HCbclszkoemaFwn58nvDyyCbGKnPJVRRWzl9ZIM53My3bkTmCHL/xlgFUSbG5GRFICRSz7V4RZXuR9bzRLXQr1fur3GUmAiW8Uy8cTNz6QDsi09RdubxIIKu4w04LUwCQ2jzP0gSjC7oDEVz5FYCaOg8XhykySzZ5YB4jKIJ3TjT9qLYic1ksjjQ4vj8sdzrAF27XZeQYgZa6W0ldksHZbxyJO/0gCv5WkO28WXXOdtbU4eNOw4xk6bogAzDYm2EoR7fKluoKQAahfag5t4WoxoDuLlAffBGlZex0pcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-45bb2aab-4214-4788-ab6e-e336a9e10675","name":"release-45bb2aab-4214-4788-ab6e-e336a9e10675","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dc98534b-61a0-4922-aea3-3dfe294edb26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181146296234319471546832419366181366599569692871272474698865851296400577107234176724572359220075269119213464854531568330906265124084624519752578415478832860537589745835298374876573238903722471855115944490444837499807323233721954461360642159500564071567279314699749017233171568516157065709467021767124733527454780246882681446","osProfile":{"computerName":"jianyunt2"},"vmId":"5d6eba01-6331-4227-980f-74b74747ca0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyr7QaN/AATW+BP0fJoIwBkERb0WF7d6ajPRl+R6J5pPHfgWMYZOdvVj7jaYz9UoxdKfx6MfcXURrmCsm8rFfaXH6wEBcejs4TFbV8ebG0m8a3mdM8eWTztCHxe2Uj/ljb83UNg5IwU2NCxa3BqZ8Gquq6DPwWO54QF8xFv62/EXR9hOoOr6To4DRkLIr8NlXZTrw7qfZRElOCKT+1BLGZm3GFatFfUpgfO5X/mhyMuRB7PuPbyRyzwX15oea3byZfQIKHw2pxkHS6/PLWh0UH4axfSVE7P3IQSuICGCxEI69x3Kq47dPV0n0iEkCxZrNzF4kZkzh1NLK0OYY7GIcwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2e224b93-3242-4082-8e63-ec5143d3a0aa","name":"release-2e224b93-3242-4082-8e63-ec5143d3a0aa","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"786f0630-7dc0-4e93-8cda-8f010a2b0cd4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187431568568281488492186052703018932176074687396962267698673287015642249769621480599444133466449359041876945557250894637677294659816008474541287458941183680127377982831240581942972046875607289487303854393666794316537463597493637","osProfile":{"computerName":"jianyunt2"},"vmId":"d6a61356-5aa4-4f85-ba15-2c88b2a647c0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwrdA5hh4wzDRKPVKKHHUTGTTh3kt/P6FprOaNIcqRZHdr1Fu7Dq3qc0Y4Id+cLgqFEKZQUUJE6mmlCyjfLxUuv0WSavOuL6VzP5FMrKNLlsMMEZ1M7CIa4kf7QYWj0ynoMDWLmJx60b843d+LoyzH5RXXKO+xaG3KSQi0ohvUWvlFW3UOmRnYMgO3qjAsMuu2CHcZmYD4F+Ug1k3jLFf3SeTZ2T6kxGtyU8Dw9I+d9wx70TApYDndIxfumy6GC8XmMwFTLh3CdvW8XNTwscsFajGmvQi02lIy8+zZ5PoFd2x+stEVyr8SvGMzt8AAiXjwvEOqEQLm3pGHYv0JHYJHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d39175cb-7986-4749-bd43-1110a07eb4a7","name":"release-d39175cb-7986-4749-bd43-1110a07eb4a7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"efafa5a0-312c-47e6-81fc-e91216b4b419","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418151189291059336360608058417161546926545880033913722211561656186972117969559412045803743851834543755258789809427612364961734474789445845432524458361047354327293005758056126885597570292594747517491377439837307913176543512573563180926174285841041531774513033102471457223775988393238","osProfile":{"computerName":"jianyunt2"},"vmId":"c27fcdce-1556-4ca5-9125-26c46282b9fd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwNJI6sqqj2a+ydvGDHGdnCiXT/F6JGqiwM2YYtE1EhVcfMa1OYrRqbN6WyAYjYSdS0vl71KFBfLnP7am062GKu75Y8C/uh1K3EzVahFjsPAHl1KyVIx5i13h/Mc3q5RA0C/kkhDrfBArA7APGb8kk1UzlItrKLGflOyP0NsQswlaXzemuadMbl6m3o4zlST7E7cKmdrFlYx6WIjfBP8hqfU4WOc4wpJ11pZ/wuKAUeOAlNfKVdnvy2LnWDkqDGKII8xXGfpbkNvfeApF0woJqRIW/Pyl4MO2OR2GwF4S9ODwKN7fil6StcQQhoSKt+ZVosKASGT15M1d3ysF6CVnBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7a647458-031f-4460-accf-829f405dded5","name":"release-7a647458-031f-4460-accf-829f405dded5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ca6dea61-771f-48d0-ade3-15f8a71527c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819799659779664648550891015299550260623089797941152488926855691778827876607636120375996498624597596621446735878034405760935026360315978912391319923561118296922277016736468518044914686930394169395487242026318994352688750257977546230486623941812","osProfile":{"computerName":"jianyunt2"},"vmId":"318214d4-8869-4fb8-a497-b9c1c09c3949","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7ike2uYu26ScuxbaSvMtVths4gc8QduEyWnJXCb1PIEiNlCLtPv3/HnY17SVFu8TmF0DrICr8HIikdrHsMhx1hdiTTwubp46sPpdlut3Ib7Vyic2JOCU5hoDjBtLL2qYYsOowR9t1yWdDSGLqTRlKfVHIqCpBqxXi56/a70cy8DUhpMxIR7E2KonMBElR8BGyQOn9ghSRi+YgEHOIoopYcbuyWTtJs8X+htu/qb6Pl6yOrctYGLdLRr8PQpRy6DZT91ybAdEPcDN2gcnWtwqOzcQYdsJgwJ0/Mc/uXT6KSQ3qB0BzlUtE3N62FgfnA4ehY47ff+tYg0MnrnyPfwOWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-caec43a1-978d-4635-af48-0764d142ead9","name":"release-caec43a1-978d-4635-af48-0764d142ead9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5d91ea33-e6c7-45e7-8890-6d95c9b92828","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182858223813361104770082068308107055238651340068863614449823411925903379964423318723295489468792944199345328497897289126373224670149075968224495621662631719167612935086432492607674111266103768951445885290531716401479566239314619094355930877668992433651575624579873418","osProfile":{"computerName":"jianyunt2"},"vmId":"e0825311-306a-406a-bb63-24f1581dd6f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsIUo8lE/lNzHVU7Wtw1tZPzMU5pnF83ITWlTltl9eOP9/zoqZ9rqfsdDjHBJMh72ESWwb2Mm7rq0iJ6P5DwSf/7Q+Sc23FG64V/QVuOqFzBOVl9Hroc2hcGY3XFbTBojSuEw+Obu1o+yEpHmLGAbcqlz20NqTWkrHW7s+4HpK/FWQFB+3Pq4lkO0xSkkU/q1CdGFALnKP9Wgv1Q/i17qc4dCBSgXzdQBMy1mz6vtmNCwQAHSRL5jWkkc9F01AWwmcYZu0mqwoZ0z1ublIkGQB8Kup81dOrfLe1qYHghltYfkl5ZWnjc9EELfY4+gJPPdyQiPchwX98Y0/XllR4yBRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4291364a-9acc-419e-91d6-cd6d5bf1ad91","name":"release-4291364a-9acc-419e-91d6-cd6d5bf1ad91","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5d428b0f-df2e-4912-b3ae-169aa3fc76bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41866769014713782171675986876073215710443645999430056785744563759864375609332735250465337791634503835011042795513732031163328673972754706255303877774034987114431445191352167300668353019801216802236114423937541973433366548018333609538497395862796141425579083311641457307056","osProfile":{"computerName":"jianyunt2"},"vmId":"c9c44f14-fa24-4170-ba8a-1fcd58713b39","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnxT4ExiBMcIPx6zDEAuBEUpnCl8EbbWcZWn9gBcx94A+CL1KE2h3jzZRyVkFWJQnuSPs9hTyNQJ0PsT9+CUWvLB18wqi6LRZkD5ikHbhPLkBBYFtHaeKxg5p1xfirNxtd+sX+uNRkHlw+NA10Eq+jIGxEE/g97jj7bnItx9ZgeMfSYBvf98p7FJldW2xex5fDcIIgu0UjgpTj5YC2UEjgmnvnGS4rrX7hvHuUBmwLhvVA9uGcoOLwuDhY/lp2thBgaWqyHniEM9EPZNLXLOIqhr2iCwis9D9LuqjYq/OYdgJSB+MHgYdtFMu2GXlc9nsh88CuVWGkrUfHM8k8ZkK3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9d0a1bac-b33e-45d1-b15a-e2fc0530e4d1","name":"release-9d0a1bac-b33e-45d1-b15a-e2fc0530e4d1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ed9b6418-8591-4b36-b55f-196691ee9b7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418334316069829617213685005862787734073049950331892763482997286146355186788557867081018611315824828141416663481699498122368540293597197773695021773891070774046574724068550541465358608406887480856029426356302607929771378945752377014","osProfile":{"computerName":"jianyunt2"},"vmId":"8238cf38-c61c-41b4-90fd-35353650e63d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvN+r8z1Wt2AfpaffTpe8158yikkfLNVADz/tkyR/3JaTaBb/gGUCv3UyU1mFY/GxQNIUdZC4qWXA0rJLr7FZDsphH87eWU9skcwVlIBQiNv1y0ahROCSVM6iIamUxMORwblhiW5rj859P6nVkaNDOlc2/n3NjpR8AHoUb8XU7yEtsnp3qWgB3sICOZBRlFPNx33W6kgjJ7zVZoGR5tY9dAL8VK+JDk7GiKGJ4c4jrHLc+Y9izXRkNF9qLRXXQ6VnplDu8+ceYwN5P9IwU0Ledskds2YcNvwQ8I3MsD4iiXqumEqRptlSgnKKVdWSntLZI9nSxCB/cQJr+TXURDOMOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1b8d8edf-d43d-49b4-a48a-bd475c4cb7ae","name":"release-1b8d8edf-d43d-49b4-a48a-bd475c4cb7ae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"25f949e1-86f3-4a35-86b2-2d7713530284","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188436684560921206428829351268395248987256398450594998152020805890971818239372403369606923318802544146376898700728363616851613662507017453442025442428329721234100817690948126103647029460285064539535316154062051527530666905920631879387286","osProfile":{"computerName":"jianyunt2"},"vmId":"b70b7374-d7ac-4be0-af8a-c9d2fd6833f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvs8rkt/gDvB20VukzbkgNF92XarCStjgFlguq5gmO+wIoCUPaTRFSPqbZImbBrGDsp76+rHOQ0YoQdqppjFAo3AvORBJyqC/AdMWH+v8n0UoJ47iTWDP/KftB9pAnxwJuJlMlh3YxXHH94pgDajqHRkEqIv/MEL9lEQFi58MbDrRd+V2Co/8nGaTKEEvsT0g/eAC/rFySXlgwoPy77CRI1C27epZo2PTS+0BB6ZhCU4L7kA0qXPEfVAp8QYjJ3zzRhUcxf1I01YLfD87t17wHnlCkNPB4IP/t4tQu9MlM+GO7qbtKcX2f++ktPkJr+Z6zZX2v/D9BaUfHcj31y12pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6fa929ae-bbfc-4b63-b822-cf8a0a7fc1b7","name":"release-6fa929ae-bbfc-4b63-b822-cf8a0a7fc1b7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"313fffeb-824f-46d2-9969-e13a221a1008","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873562798645292082578591834839329453023445567852759066348695683284206648427756398591228483325419939247247485424851209523487333221081335130746162971487167150596717921202167163866239887821516893609516156011765640594448619218734045108177","osProfile":{"computerName":"jianyunt2"},"vmId":"9724fca9-41ba-4790-95fa-9680a6dbf9a2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuSmFphlibvq54g1CwAqkjec1KSXVUc4nUIpy3OisU6F2fTl1V06qXqo9rQYhZTiIdS/hB5fRAXBuGHn6hyHm+E1VF2jXuw5+js2RFn5eKYjgU9TXo1Jo3DRA1yYAY5YvaqaJZe2g478GNW1IgNQ9AkEo6XnPecBzpT8GOeOJQBRWkhgiR0JPTbgsqjQCPelesIZQGdzxDRESdUnV+B0d89CWzXqgOB8IitUOWpEAyzAFAPc1VP02e9Ra4Nl5DMJvzHf+MeeYlDC4Bsks4ELLpiC8BvXkEvL8J1wGlwtM9xxpc04x4BSQaiAQBBvJsVkRnkCuHhzADChbU/Z6dWY/RQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-27008fee-7d04-41eb-8355-66a7867ed8fa","name":"release-27008fee-7d04-41eb-8355-66a7867ed8fa","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b8d52fce-7a11-4ee7-89f9-e23eb6eedf26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41832648686182666247922457696320129698435956657152779999339362908778656276551432331316055926218497838321877922854212708531329214187765640991185455896981007352221665552834214704421349841549724946268404993124492374903575178649923369409452729429710346115601300475694924","osProfile":{"computerName":"jianyunt2"},"vmId":"cdc12305-eff7-46ff-8f1e-5038b764a19e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+C+fi8Q5A0i1kXxbpB8PJm3fWULeS8bJl8xDNZKwmdWsBhBifm9fvYxYaYacUplegmfyrFl866s4tfsPxaCGQmAjiHk3pQkcyJT6Yh72JadszXqOM7MkMEY6/HzhFfGFpI9UDShRKiMJ8dguVLs0Rc7VsJBCpsAboEbFqDmFp8nl7CNrd4+78ENMqOKZl3t2ixHA2YcVMjqmXkMIcFUguatOK6lRo3/QkX0UBHpZsNmSHbbXoIOW4VUbcznpOncQj7f4nLbfeoiC3y1uy4NTx37CDcB4mVToBvpYgEVUrXiAVogaE91n56eFfhfpZkZEOLoAHyI9jHihuYNhxJBnTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-86260fa3-a424-40f1-9b11-20a7b316a76b","name":"release-86260fa3-a424-40f1-9b11-20a7b316a76b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7f8fc202-2047-4761-be52-76825591dc39","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41861448652895234678298148760121551982474756361714488743484730325296184581392793887387916148130925258613164595454785246954027840495999115282654767298768662388521192324861366382653551172029257796903507988570344502920557471577690568489583181944724497595932154579613258425127","osProfile":{"computerName":"jianyunt2"},"vmId":"508e2a8d-c59b-4025-846b-a003dafe6c9f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzNkWBNkVD67qdY0MKggEKjLkeDRFgZriAhRRbPNeZLG0Bi1V5YlrkJ9LXr4pwc+ljwBiES/4H8iqQlUrjCvhOuMvYAp4MAftNiC4BUfbTmXFkdJi3cLlZnIZXDsVvkoRpUel/clqZsZzKsUy0+VMJmHZJJX5DMbJRRbZYD66AxhZj6jUVwymM6ey8eiCQMfl8/b4QZUKRiPPfoEU+cACZWOFVV8Xn5sBEkauxZcX/STVVgE46jopPmIUGXJjU5w76Es1rSO5GBfTo69EfOlCYZNIO4WnyXXZ/8qsU2zmoudHu3uSOXJSGcSpamZwt9YlhxIXI7eS2oLJCaW/SZ/pRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-323d2e12-fe6d-499d-b99b-e47db54da460","name":"release-323d2e12-fe6d-499d-b99b-e47db54da460","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c0f3f09a-11fe-4da4-bf47-842d480fd41f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418643070812978807897946904824362437204078546590212403578036832529992038795005717922324747608094639298843090644881230194441903350645181217451192128421165277326309953797621446060289482129257950832685500345992202608536711401663759694784833083186124936062900895184973646","osProfile":{"computerName":"jianyunt2"},"vmId":"e3fd81d9-e555-4ebe-846d-81daf8d5ad7d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu3/uKi8OFIlpXu2BOWq5Pzkg4inuNJd3RohFhSsH6b8e8rdnSYKf9z7LmLvAvS2+/6lHenJr4JfqhAN28Uly8dEvgMEhjSReV27koCK/7C7Yz+7hSK37dnXi85lQLV8Umxoa+lDSR+YDj6wEtGgAspSoHgAo8HaeJ8MThi/GtSMel8nDH76oYoeIqXf2r/9842br94n2BmXPuViEGZmH9doOQ1Vh/sQVV0lNCxgGBjGdLmqw/YDaZnk3Z0eGyj5hj8xZSHlZwziyxFFxjBWwtiUyvkNzvY1uRRpQMIANPfye3RJY3lwSdlsT77N3YZXMPwZiWcEchB1RKU4K4qBjlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9fa2ec97-4eb3-43dc-9ec2-b89b1773a0b6","name":"release-9fa2ec97-4eb3-43dc-9ec2-b89b1773a0b6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"771a5096-5fe1-4589-b091-03e604bc29e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41836632051662557373422772585022135250170997465313269595066480495338444235442190675478537251210862151849373747739982189133915813474499872281338165632335948462252797552343862156867662019563823685551713242455191306251818191543088359878466685182194163108221260424621906140986558622523298737537755","osProfile":{"computerName":"jianyunt2"},"vmId":"7251222c-74fc-416f-bd0c-dbfb8cb861e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA29qT1SjeXq/CPj0zyF+uEjNuzM8xJaTPFU5AXUbKmVM25EvWgE7JSf11V89qi2h+npSOaNH6J9TB1OAwVqXY2i5s5akDjiSYYtIK5wILc+uX8O5RbX3rKYid2PmwNMH2pQkvFw+j/lw7iGfF6GkacIQrwhOINbI2Xdwa0d+6OIqAZG9ZQiqOEhF4uD9XNLLxulfC3/WLMraMO2Bm+y5kzWBKs2RsJ5zE/K9Rc8IMsvppt1QVz5F0XVf2y+oMEJ1R7XxXRrf7MtXHv9exeDqRBgqW/DEeLn8KzIPyn7FNCWgnlWpRER/csu8De/tWTuV/LNg2QWITXjX6MRnoZLi7hwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-858d065d-f70a-4ff4-a1e0-ee45191af3e2","name":"release-858d065d-f70a-4ff4-a1e0-ee45191af3e2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2ffba0e2-f2cc-45eb-816e-6345e73968fd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41822965932956761619831228693324455625565948867923874395858530636683585229481967183669346512886505151349156798485243012735523429732120643933648537412819822562758527288342207781510870176780966475719155692684125394871697415740593886984178434534525629","osProfile":{"computerName":"jianyunt2"},"vmId":"883065b3-5898-4e75-b5bc-44d14e49c08b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ZQWCPP2umnaI450Hn2WFCZpKFqr+YayOC4Wg20N5gFMBIoySEwUc6jVEs1ggUZtN1RqFlfVD0XLBsBnszcxXsd3xMt8HrEmLd1MC3ZJHQeA9h5c1ASgNmwN4ODp4VynOcgXyAl/kEuggs2KhfMEj9aakY027aOfW65ajP8CPJ/DMojtGv3c+QtczRb0wNIJEB5nb47UFcfffGyx6hmWiKRA8uQ/19xdI+hNYiB46eEIACYxJqayzEpBxauFcTh5bRc6c/Ku9G8ghqTV6x3qW1meHfDMuX+IdGWHVvjckjTRM1oIEBQQHsjIV47TpL5Rjr/SXZu520xWXw5QtbtZvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-385d47b8-d54e-410e-b1e1-c6cd5c712787","name":"release-385d47b8-d54e-410e-b1e1-c6cd5c712787","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0b5fad46-510d-4023-86b8-3c583bf75ed8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418744752276373140432035270874856230953476856886944140459970808359366218988900402064436040763410766926528168607218780494108114597032244360531790467506426755262773584250090268809621327442669363498856603338598673648366609150126831071232496253699786951611743212476475398836447455671896","osProfile":{"computerName":"jianyunt2"},"vmId":"32bdd373-e0a7-47e0-bf7d-b11ee3fe129b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqSaJfvNdKgW6XgpyeOQRlz543FLZ4sh1oaD0Qc9dKxazCOVo6Ly/W0oLH7BkliHLTzJHQRhPPVZQJOPtkvUaIFPTfk7xQbHyJAA/W6cxN3gagsWYgl6mC2LJdekxtF/EU1SVvB8f2mIsHvTnAHFgZ19cSo5wCpv8tlbT41NtZy47V7g3y39R/Eg9O6tMLElWHVi99BS01xEPUxyJF0+/g/sACqpLUer/an84omZSl+nVST9uC9Taoybw2ySvW8r6WBgAUO3v4krB/5m9zJy1xL6t2obefedbux/xMB0DcSKOdHF8g0Z/aBhnjfBcVfYEwXK3xQ9xUBJotbjNVODApQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-472c1533-94b0-40ee-ae48-da6a2c24dc90","name":"release-472c1533-94b0-40ee-ae48-da6a2c24dc90","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e8f828d0-7e45-43bb-b006-88c85e78f218","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418643723073041985585168852579340266671730780923514234428369580444744945020768327845031563550419521350511266729079221415665803383949760925806214514138739292364288840307145267944579339954646464632186757439574199171789106544769266357942997657690268684828432966727221942","osProfile":{"computerName":"jianyunt2"},"vmId":"4795e261-93c5-4660-8cbe-57c58c8ef930","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4aMhDAAkZH0tBc5n6+q7EQDvqYYFf4u7LGG1ibKvKyQJVgL6wFlUaTw+qIE9f6PptBILYZkR6ePLcFUKZYdLXcQWMZUKmpJUhkt/uO4+mpmx2EteLS/kSd7LAlgiNtoZZ0MThFyjHmy8DNNDftMuRNyJpFEwQQimU6PC7y/fcYd7AuB4kmUlPTIPy5yXDhmLFjAl0F3/L1Sds46LKvIWE6CD0nrociZ7yY7TAzrfMSLrkv/8NksU0O5RvhUEqad7Klvw4Ra0G2jIyFQrDRV6H972A8caTEgko7i2JOhE6ugLnysYb8TDE+OYdJBOE85hLtHeZoWgV+vITkXnbuJ0swIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7103ea06-23ab-4027-a57c-d22efdb074bf","name":"release-7103ea06-23ab-4027-a57c-d22efdb074bf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"68684066-256e-4762-8ab6-924b4f9c8a23","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418774225822083313445287976764514255582540890612581936251159198595545614356497534247205105242055266259570138055249780724758211584228517946315013208890752054186947415824368463392959896606556192051129445594268159379158604843310429376266979403467578712470690028711","osProfile":{"computerName":"jianyunt2"},"vmId":"c790fef1-37ab-4576-af44-082d92d157e5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyBLEv++UWvLlM+ph4/TsPFrib2vovdfLTipG7caHS81lmmRPnNR2nkxi1sPaRFhD0el4H2UwPnsGnolI/Vblp4W9oplVHTUREOm1pfiYek4AgDFVurKcmr8SjAZFJdxWhRjvF8tMnH+QTF1FvELyD4AzTR4iNaqH/bGK/wYL+k3OL4Dhn0UGhTBA8ADiQ3L2HNaI87JIpSnwTzPpRN1xC3VDkAXElhIZ5ZUB4T3MiEh/+8y4zQ1aVZ4LMcRudHzbuJvW5ZEwFPB6VRJA15Hgw6oVi37VI7YGPBO1peFWzamQkcPIVOO2bxPk6CxpazMyAOR5aGBNilK714eSVwfUvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f62f975d-e699-4781-ba00-b4f2d366984e","name":"release-f62f975d-e699-4781-ba00-b4f2d366984e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a4ad2ba2-8ccd-4584-be37-972ed70527b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41896430831852283713218472518613768479640996137679331842073828031299331104571626518737996342424281225796792179151074294879676193893845481437423916982776822415227421670663067836474364041476582344429907375404700906789565000854285036092595327107356","osProfile":{"computerName":"jianyunt2"},"vmId":"41e4924d-436c-400f-b43a-cfc364a4ab7e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxQOiW0OENdhFq1RiA8cZ76M1v8na0AJxDbReUvezrmO7cI4gJgUvIQMhwBCAAEO2wt3LwUIJlUjGcw9p5V+lPZofb+b1PK8uXv0iZT1JmImx5/clmadIuValtomwHqg5CIBDLSRDn+vey/TvINit1TT6E+OObPTkU8wwbO4TiKRn4c/Cn/2XJ4g/WkO/fHYAElILIQg9okYYNOBRpi2MPHJ8CApHIl3MP26i08RBVZhnlWe/r7tvT6c7YlCU+zRumzL3C0fMa75zK0I6ROe562dm/sRtUc/L0Cps0nP8j9XoiuHrShIi/Do2XbfBh0JB2Z+NlDrwMYFFY7inBzRXsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-108f2210-cfaa-4aba-b874-e91c27b17d7a","name":"release-108f2210-cfaa-4aba-b874-e91c27b17d7a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4c938439-8ce0-4bf1-8d99-e97e05cea52e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181752119352469839861766087875792957463361028485348559788876913125844233837347114601246392859831776707997287457381544632127359311171984824117265755889256093510206652904238337033153855733666904505790422002507176555485448364551271278748997740598769354613637473487087973923525096853189927482","osProfile":{"computerName":"jianyunt2"},"vmId":"2b65b5ee-d39d-416e-87c4-d6173da3d55b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxXbhUoRptJx3SqKQqrNg5lJwUi8iRPoZQjy3lWE/PEETNK2He1tHJyCTUQrEwiwFMgEbV73Xw2iMYcESzR8/bH7MIGB6HBm2hzpgRbkzI7dhokr+1A4C1H2OwadDAMeTdaLpZXQOypeOl8xCILMqYGh+goF8BLmgKMT0E5hWldqKvm0tl1oSHToReBHLZ0oYVUPHlcxY19io96O2odYi1Ja1vPKszj5b/iFjbhACs4VM3xIaAyRYN3NNiAZgUPpc2J3ESC+qPcAt+xPdh87jdRKybDL0pGhEgRVkvjBiR157XCNqdJjXNIEZojALF7Mi6qsiaZ3dnAIVRs8TslL8ZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-264ed335-a7c1-42a7-9218-7d96f97f040a","name":"release-264ed335-a7c1-42a7-9218-7d96f97f040a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"928f9af8-298b-47c6-913f-a92abf39a89c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184439593480103652528469088838917631484397950832439458834775992542961502686925594106095838027458157277447685496161019151854949041274840870884730731251349864287161531917072104789190231334174279518169471703587134558689593716293895280817976965438326754538910654226298869968278783224303386628523182423","osProfile":{"computerName":"jianyunt2"},"vmId":"06ae40d9-1bf3-4036-9903-5e07bf4aa2d2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9OqyoFUcVXF/CVDgcofBoyZsWUp59xJamNAaNsAVW6CvN4Tqaz0qiULNb6vxMK4RDV0/NgoJfz3chyd4fQuFzfplsIM30nzzRqMUR5vwMQgMJ6D6dFVsqQ5dgQv9ppGDe4MXH7zxjf0HGH0OSHqY12PtpDXTlH4Aoab2qu6dQfKhxdMrlOAdACJEyFpijRXk0cXPxSJPhMioqGJlL4D0ASo9jq4G9Oy+gvfdQMOXtBATALIkmAqjKIyIn6UFRX9E1Sxv/D3QFI+NLUKYQ/IpfBo3fLRGnarz0A4dq9TQLSkF+WGhnE7TxOm/BbWpBuq7t+uzP7tHRBpxEATpU6iroQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a973d0a8-c00e-4253-b4de-23b301d14aaf","name":"release-a973d0a8-c00e-4253-b4de-23b301d14aaf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a90ec991-f2d6-4524-bd91-a088deeb2096","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41877433152177857374989949650477538516003155143635219371599883915056452047242161548938169266785504361486146106016935746859307568848672369331802396617754762955087497172208977997825541067641286495882058241617882484799298925850421349926707","osProfile":{"computerName":"jianyunt2"},"vmId":"54f9f242-140e-4683-9ce5-5ce80d1c4911","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoAACGil7Qy885XYB9du87E07gPiHMoLdT22nHG74qUfAnm3Ii83WK9WzWj3BkvFhqluDxxDnkiUr8r2TR8myFaYETXm/Mw2UJkI1DvbFay1Hhfia7F2rKbMSjJaiDkmeJGSV3aN6qmB7Dn1BT9FuD4T4sB3+4YV0iwSskHSpF7ntTqUhoftvp0Jg8L7Y3JidG2K3DCvZXOSGg6FxZ0CWLacS7p6viPBdCfrLXSuAygGLWh+z+M3PSF0pnONljb7IJn9rDItvtQWmbw82vYc3seTWJtcqv32ngl4AK9CObTFfidZbNda0/V0M5Oe/d2j7Syu7eyuTCEZeBwZvbsJg4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5c1e58bb-ab9b-4427-9fe0-c06dc889dedc","name":"release-5c1e58bb-ab9b-4427-9fe0-c06dc889dedc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8ce6a1ea-76f4-4ca5-a0ae-1172422d236a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41834249348799650335184017850581213411218725975033893365199746186746725414342245593904769801692683331326431217433957886603438353576897186281252460854815991581297269017505111687892479105279128508617486439277615171719246415282511693402118732767637490372013035336477562771","osProfile":{"computerName":"jianyunt2"},"vmId":"87ad7c20-02e9-4cb3-b182-55bd99d0f6eb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7gseVw5UdiLRzThV/EduVgovST2JMMRUvG1yfZTIB9mzC/yR4ahlaywuupYM6a3KCUg3VrMMn/jPzZ/5A6A+Os1NJA7630zOjXXnAyLoJRVAwpxx2pS8uU9q0NabBpwKBmj+94ui3Rjj5jLeToqjP4Og0B5Rhj8WZ6lefYzGq4/ZaTM3l1RA6YzmsMHH89luNr7+RrwrBCcjQV0yLTODPwyXGDb6or582y5a9M33hiISQ8iIBy6c1A05BW8JUUYjIktR8T9oJBDgcXd4zm/KlA6ubX38EAVCClovrU7DSQyTH4Iwls59RK2zPrfEmUS8/adND9Hgem2if4wt9/wwgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-33daafcd-e9be-4ba0-a71f-998b6d62feaa","name":"release-33daafcd-e9be-4ba0-a71f-998b6d62feaa","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"edb2a4f9-19c7-4e18-8574-cb25380fa05d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418507251494866790757665295331389364346592246491713366518533626467631879989866406630937147641525713969824499454213927124957289931430199768145130775091037158257532053337175463483988124803932686260188073759114370291544071633712322003601772947667","osProfile":{"computerName":"jianyunt2"},"vmId":"458eecbc-3291-4663-a3a6-ec8ee2b6a3af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxjpOSvn0kMTJXZZC/tF9dWPMkt5q9GFaDBCJmQo9BHuZWq21cY5I3jb00CmPPVXdYYHfTSeDRl7qfb6moN5N9wOIA7gYR4E6oE9LXLRrd5Ku+qQRJuGUGCPduxCP4tnUXoxAksW8zXG0euc9AtMBWPsemxVD7vKpusCdeY3WIUFl5ZxfFPMhLPM94HdImeyZKLhE+m3AiCBslasK185UGz/OwDqSta+630dbnaVwzsqP1peRiFmFoxftahvQIivmfJsea4IWG+IqJy4mVwvXeEUEZq0VMhMBF6HgiftJhyUOadSeo03oAKlC+4zyafGzx0PANy9Osa2AyHKEVmLnQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2a21354d-d469-4a37-82e9-21736b39c238","name":"release-2a21354d-d469-4a37-82e9-21736b39c238","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"782283ea-f86e-492c-9dba-ad892735e261","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41859109616755585418537382699167917474291986779173511639163684287371490679326535130746944179331816259615796535111629786186465529696145498535979693267780136219454112384272329827657738743033869174354319046115574772317602043891924152238486665737834962592474361079","osProfile":{"computerName":"jianyunt2"},"vmId":"abe1a32e-0208-4f42-a5ee-ca76f3516aca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoZEk6biPMkT6Eb50fl2dwX9rvYRgZN1kxpqWh+f/aYyt/DQeiNc/2LhOipzdriCeDiIvomMI3UFhSn04nrU7K6Zep5uabKSJHiL8HwZwcXMyuYC20xezfzQUFaNpUFYYfcpVuUWcEio4QBQgAdpuUfDZrJ+agbPRP6ro9NcH9VvDqVHYjkCjUShW1Yigk28/tPDKSLRBhY+yeq8StjW2OO0mNqM+QbmkOJqtvasRLLQlMBVL1qqNsTzLJfGhgrkFodCl8EpB8ZdDsvy06UxDdpXxa4+cIQs2Dm5e49IwntMV7KUcx8VczhHN5X5xymhUmuJvH5l/iDBI5vqCuZA0wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-40a764e5-8eeb-438d-9081-6d71567c7fae","name":"release-40a764e5-8eeb-438d-9081-6d71567c7fae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2ab480ad-02d1-498f-afa4-77c8f3097e22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41869775332026483663209244477267673371489426926185025899111372764878206341647723667950218750671584645320183616967246432345204043846753012741801868293816640817768531675726893507308405379936870275542393558739480768022409676242900105734801226255764257948543553882298219293","osProfile":{"computerName":"jianyunt2"},"vmId":"e6de1129-066f-417b-9a7b-72217e2309ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2iNAYfY6peN8aLknFP5tyQrJ1gnngCzBXbn+sN7onRRIA5B7yrr6BVYWhbAppvC22d4K2YH7G5wAJxeuRIAIuoOmHzQ+SjL//VMO5UuN0GWV3kOk79UAc5t7PAK5Tr6TZV59Zm7RGzZuCLtxHBdV4smlMzLamciWl4Yx8egVGINkCb0LLkiSuAp+3FHVc9PihGZdl3ZpxRMTQwF/NWyvF85bYfslXule+EmJWEbohsIt6amI3/Bfx8i+idmgaYqXN84vKamlOM/Kf8dHBR/yoPnPlEqMkeCf0cWPszxMdi3QXc5qXGYXhp7XtlVfKFhZIK8p4TxgafsmRg9WP8xLQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bcd6e8f7-51f4-42ed-b10f-fdb061d5c80c","name":"release-bcd6e8f7-51f4-42ed-b10f-fdb061d5c80c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a48631f7-d75a-4b15-9d92-f2a784125cbc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41871919245717132135918021808153754453514997980379713315750466932826250187908808514457073453490484055372851666075691541450854421984469258625636721926514199213603215198402941894341656021133216795928436115561193253310837798717083699113422112058212667755721289151739100879831791767206237233868327103036895865777156946543","osProfile":{"computerName":"jianyunt2"},"vmId":"9884e8b2-08f9-4627-a68f-9f7ed7f3f9c6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7xxMXE6IR4scAffs/7y4ZbIZScYhqOH9kMy2zttIdzSND2ULk+HwLI3Kou8vRJacy9Kj8JIpljYdPBqIT1L0dsYvfD/afAvmQ6IPTu27Nnhv/giK8EapyVzqC+ilAndXUHHPXk6TKqMAhSuNgfRcgATRYi9onqhF894UGlhL7dMi7KrO9Ot6wZ5djYEcykRWqick82BcoL6NZtYoKZ9dxtbksEE3BtlFPIYoo0q5eNYfjELlluDQFLenISc+fRPOwqKjrqbzlXcThMMq7ySY18gdCL3DAGn1dk2l/IaJjiujc38H4gBiej/yaneDZ/dPfuTGk2jaw7RJeTCkcdi1owIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-63d452a7-36af-424b-a2de-bb4bddd9b19e","name":"release-63d452a7-36af-424b-a2de-bb4bddd9b19e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"80636f65-b4e5-428c-9f73-baa268df4ebb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418761246822372821430618909287466536376419824711386223659572376914640476236904194329620920827848682787731794368848667171663283164664928446373175277549771738267961501416739446084298174975241530464438877518991479076832593811163501406122497019203212473774057958","osProfile":{"computerName":"jianyunt2"},"vmId":"26dc65ef-bc64-406c-8f59-4b163d071934","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzp6QbH7GAzGJ6fDt6j/pWmUZUwWpEet/1L/plcJwa7GfKVAhtEp98rgr3XdU95w8pSISKZoe1S7PXnELPDiGLAeJ+1m/9lDzJw4dKQV8gxbF05hfFvhQNW4DdWtCDM9FJgZ6ui4q2llOzfIja+mm9sgmhm1w1kmpiZP6/0K0k6o5izUN1MW6feQBxMckPW/gdKIN5OsxHoXOWM5X/nSZ0Ba2IeOiOiIj3JxnUtI/wkWJkUdoLI7jJQ0jQURN3borb4wckkVZ/ELvctA6bx7OLdf84fizB+qzk/LdK+r/uZ2ALnOY+UDidfFWicvsUiL5i57bwyxOe+WHPaaJ7TMCbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-205c0de7-1f85-48cf-9a73-df18f677b6f4","name":"release-205c0de7-1f85-48cf-9a73-df18f677b6f4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"aae1ca97-4997-4f1e-99fe-6b8bf1247166","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183035429915724250891390113040675990473677820112328565489331892142934930960972906654512415065891378140679869562718937611412215901178153462991363916432372974298271072821849114024518594179916945560741771422733311982351853758114086767826099669582","osProfile":{"computerName":"jianyunt2"},"vmId":"f714e887-5b13-4629-882e-e8e792e32fe3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5B4qqBuWwhXqpG5BP8/hJM10M690Q2kSwugaRh1jBnKfiiCpqfYtI8OISKupsSXGSm8bfogt09gPvUqXpO8Spv4i6poRSOE6n5YS0e91LkfJdjPP8ABOz6fG3Ql4woQLFrLsvR4S5bSP8k9lIf93Qb7FV7rEICKDYs3i27QN0YBqnfSKPsOoWpVxi2nLKGiNLdrPjZ3h0a8skQX4k+GyJgl5o0uEIHja7Epi+i8KQl9WLqtTljx0n8Gxg6FoVsrSfnzpgnguL0NHweDiYKHbTfyITvFcZSLP4pogV0TDdgn2HU1vOSxepmaOvO7k1QdZT+hv3aSWjXQsyEySKtYBwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-710c2484-9493-4f4e-9b61-215d93802842","name":"release-710c2484-9493-4f4e-9b61-215d93802842","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0fac8306-d7b6-450f-bb29-53685cbff5a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41826022326434975083438693444239184242628213674413813225828465079203954808297755805939669857787113582213753463787957311612823456296906795534161613070869143799496061141542264477848333342681692734157559641881459148350721972282560851720337267159038321802828985802492","osProfile":{"computerName":"jianyunt2"},"vmId":"f4d00758-80fb-4583-8bfb-f450765caa48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt0S+1Q+RhCfDuT4YGI7lmCvCmOwEKevIbnss8+S3EVAhHnHrM/okQ7TpTjAmqt5E5gAMMqkIPQyE3+EPo12ZA0pp/UcA7tvkt01Tx/I3D+HhKzsmjKGL0BMJUP46DtrV5NBRYw1+S9F8M5HTnM8SdhvWnZkAZMvXvKbxEy7udjSOLK31Zul5UM1RWMPx+uB+evcarg4Q15ZdTiUJjzJ5c5igVxqpWYT2qHpuFzXCd5xhaAZskpjwMtRaguTvHceimTmv8QBsmc1WwPKyGklYX+/nbvu4PYxJInos3kDfkjiz0vMJ89JN9Oxj7MNYNmZFVwst10iD3PTbRGDVPYcB8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1a3b57e2-7e10-4afe-9dcc-d7ddf3737bed","name":"release-1a3b57e2-7e10-4afe-9dcc-d7ddf3737bed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2fb7ac77-9142-4cc0-aa20-85d60a4bf677","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189073261540314329301733419064535158417291882854825576725036808334528602395253765622837977906562623816258562293699271388599735265589344792406994715878644055195102187734224866722789791954849180967336137747834366229888463918491854536876999750817321861806778996696463543936836504318159393515356455347953461797471856","osProfile":{"computerName":"jianyunt2"},"vmId":"d74c68c5-e88e-444e-b6bc-0334612ce176","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvqQ2pdNX5U4g0LoF9Y3cbwWxakFrsySFE3esAdapjoV5iRVJy59H3Ie+FPanidXYt5QeEKQp90Jm1IkGOJeb1EGcW5p+NKULDzutxZNqgta0h+EfqNuqfPsVSMnWVUcDsnkPB5blCfPEg5Za1fatr59OsN7TmzAo9WqqA0nUiLchQNosQMtwbgfCyh9Zo1wx4C0dg2t80Y0g0pEPOrmkyxC3EYbdlvGASOBCgL7lHomaNshdxF7chDhaJLUNm6LjdlMXyLTFXYoGbwp1D542kFHRgDXlDfZlieirX/Sp8hcgqJeVmHWqah7lKWl0VytMZtSEZQh3YvrtaCxs0P8gIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f1fba520-3069-485e-96ff-c67dbb0efaa6","name":"release-f1fba520-3069-485e-96ff-c67dbb0efaa6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8c9cfbda-4d4f-470a-a01b-0e644065e6c4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418404175733912143053567861762926126949646088477625886732373541529214117845832332359657400948928779345675118189136369683627143887616742438372757984279065691278395863091314952966432090906581851992422273266846656610575614205862598485832216431589519050585734696880374615775590792393440671108538","osProfile":{"computerName":"jianyunt2"},"vmId":"e109b009-164b-4fff-8d52-b0f680f35bea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArEyqSjHJFn70J+tqCiv3UYrIwb6vXgfdbD0574fvDsd7pTnX8ElUjUXpvQRdPde9Tk/4kp+gD2pvZtCLhzG+TI+hocAKBfZb7FXap4Q0lggpt92KCCR+cpLTcmsE8Ioct/bFfCqAMpAzCbRXGT1WXdcSB4hga5+Zxemxry/mUGIGjD9RdvH1sZUF/yXrgqRbLvhfHmHGHPlhQylibXGNRHlM/k39fKHAh0m5rM+m6aTOA+BQlv80iixN4FPS4m6FIU7tuI2/8jhuok2T8Y7FMgsc+rDfeEN7XPL5rsTSIeSJ1hwIhCl18MIx/IFHKpg1fW5zza6dv4YkoHZ7xLXSiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-739dba6e-253d-4971-9331-4408a385f218","name":"release-739dba6e-253d-4971-9331-4408a385f218","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b292bd24-31b8-4c97-aeb6-e1ebeabfb303","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418608143424810808173129781595134212537518971493228582691107064483667897365663573175667856381176937915517447287569379878316686146950434226253734253065664760287238998136218535761779106555904231790376156183325571238635662594167705917","osProfile":{"computerName":"jianyunt2"},"vmId":"f72c57f8-9ac0-48bb-b7e9-3d9b17003864","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp9br93qkpBoNpRmWIyqC7eLGbKkvToZ4Xp4Lvc2JytGmjKESnPgzDk5Y81PootsOwFjL7d6b/N0gNh8LBaQGA7EqhCzWr9vDNmIAYH/lV79kOZp+3IEVhril7HsQy3YJ0QcGBnPozgCmAYUIeah6J8zRfIz9e5bBBoxnWmel31s7WS0qPfhv2qDb8X+FtFnHF4ALIp9EqRIgmhMMT9bci0rjiJvY2cgAzB5o82lV26crKcrj5qLKd6u+3XeW6lZGnwYT4HhYTIyYF4VwF2XZXBj3DBjk5/tFg5GbcXEpWNYCUDZKdSqGkqEOqH1XTrP1tQNZUY5A/xD/hQRXiwZ4BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b2a1011c-a266-4948-8282-ce2cb94028f5","name":"release-b2a1011c-a266-4948-8282-ce2cb94028f5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3a1f36c8-fa53-4953-87ea-13ef1c21a71c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41833958792092736680799859848471194340539856655257838974932261022426053322994735276958392921046274586461440264949331951679938410706915488257387942276687540370958254694573057143445324188427584490134252438911794055472261506837343792599133172353045584760079332393468533941301356776731696798466120317981534849024","osProfile":{"computerName":"jianyunt2"},"vmId":"ccef0d73-ef25-46a9-b7ed-8668b89318fa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApVkLEYGeNfpEXwbW04z2nl7Mk+THv9NQlHH0Uxa9y5nMjXWO4WncrWsCi6WwrE7Ye/IzsgLoREi9lX/kOP43r/Fc3ZXJu94pMfhUkiw2OlW/zJFE93e5upzX+V87iutmS1u9nGnfNzkvUG2AQwBETaqCzk+wyiiWKrDRa4WQm/hXsSD+Ns8bMvl8yFP+rcP59FBK3EEzOBEUCeyYj3khSn0ePngSt8QY+Y4WZfLWSsa6zlkNiQ9/HCjp11xX0qGeLXp+AX9uW1t5CiHKlLp/cXBF+9vpEije/AWJxJsZRvFKH9ZQnyusT4rT7nf3XLpQPravv5f09ocHVRLDB6Bl9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0a663d4d-8ba4-417c-99c7-956f6c7878fe","name":"release-0a663d4d-8ba4-417c-99c7-956f6c7878fe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b7c7e35f-40c3-4e15-abdc-4df0189d7748","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41887682813295939259712399261220545032235963856797477068596997349880348818406455423690959796495177567862826992017593599884398584522585242830637523586235419743764913521751228199867741460624791921744957569408130865664228283632583183014466458369592147196378","osProfile":{"computerName":"jianyunt2"},"vmId":"d6718a3a-60fb-452e-9605-bc74e1dbf1f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxGXPp2PP63B03x+klioum0iTGqYJDuf27skiMnhkgNKR7MKyzriFIdegCkzfHMhF+a93zn4yK9VDuPuhImAPREVsOi69rDlV38Ru2VpICcvxi5q/gb6DZqYU2REChaL6AlGutwOYu8HPr0w+oT08GNpavA5ZKt21SD7EGVrmZw+ERSOZpvSyfMRcBkLl3twGZXwIuQuhnkQ9mvABSyNnbEOB/5Eh1tDVfuwlMIXv9APkj5HOQoylf9mxApM4nqS3ZVIlpLnJJlW5eSDv36cmDTSL5u9FInBESs82RZfp3uh4IjFpKru7Cczj2WQ2skDXUbMyxub/rv1IAEu+CEI6zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-01543420-f5e9-4a93-a88f-9cd5b80fd34b","name":"release-01543420-f5e9-4a93-a88f-9cd5b80fd34b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9e9072a7-1f60-4202-889a-6a6a26f55bad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418101059262057932978744835312047481561727423639287544738659831138079269774485141431657938137236487941616817896940645689869405108045192796474964925551450523292287506045073127641072222154702533898788865094601795635386543357857645175038310348438683249269850989963419519132353714451965504656930158338165172798621472156395207832","osProfile":{"computerName":"jianyunt2"},"vmId":"5a2e8d13-cabe-4a96-a07e-ef1a3b15377d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtG1yrkzTE2PXZR5W/Mg9ynC7A3wck77DaUBzXC+KX3/odgDSWR0oatrLXaOLOnB0cghD1cbtByafCi3N/pe+dZu6nuiQxEjVQLsiF/fupx8lxPOISM7/0fWIsYfZw3R2ks3O2OhNPJVqyT/m5NH3IqeZf0ZuKPG52wMh5yYFSygiTeNYItgf0JKfWkfXhnuk73vAhiscUzUz1AxwC31oSmFXXoHw5hmpssjEvvgX7DJPacy0SU/DScJD2FKKv0Ur0eiF58uh8wxFo00xJlMmVOhcenFjriLpik8tUtoqumqOEt+ARidkMOo6BcTe94jZhLysLIXfn64O0t/3+k+rNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7332ab90-f50d-4726-b49f-d3b40b952724","name":"release-7332ab90-f50d-4726-b49f-d3b40b952724","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"15c3ec39-18f9-433a-8a45-903cec6487b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41826388129897024588318993607664859638696660505179399543799458379100734174185454690441493810690241437861708116765358382751673694848651962808622586340378061415787199304684349596671581040149860336154920629254840475922868008046197156303836","osProfile":{"computerName":"jianyunt2"},"vmId":"582fb1bf-179a-4ac8-8233-ba2f37010b85","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnrfE6RQAR5MfLFh+DxpB9/K2kwdJwUOyp7X7Vv/Y1pyBy60Ie2BSwveeZEQfb0DKIGn8GAw8Wd/aCQFAYvhq+hRCRCr6lT98cYAVHbm86gWv2OiZfQ6MSbVJ/QvzJeJxiPSIErJUrEcll6M8ywkt9BuyT1k3B2SHgIa8xdHa/MIYP9pHvZD+oqGdigJd7KO23EdvwkRxIPHzNuzulFj/4abAn1a4/ynI7T4GoxfC984HNo+fOnQQKVuLDoEb5fUbYsgbgSa4HjqJC7h6GaSAEbswBX2ZghroMa+wHu16Vyufq094ipgSBQdTeJ23V6SZhe+DC5E8M+Q4X4Jjni8nKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-04e0f1ab-2fb1-43c6-9e38-eac08cbcbf52","name":"release-04e0f1ab-2fb1-43c6-9e38-eac08cbcbf52","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4e5ec9b0-0f05-44a4-8c37-f364f0a49812","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418845315561811155321658831610571302287536657826375171464026361458399325805898240004600203593879128223456643846376590593538666355300602343451470366600473525574904535772564261926347337865833148874313442139461094586195993372545588733409557027915294805065953273875672793348312258057034","osProfile":{"computerName":"jianyunt2"},"vmId":"b1bb6bef-f621-474c-ba77-61b063687398","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp8HJAdVnScBPt1zyMPlD2oEleEm4/nJogiMx8TmabK2QqGY/iQNNtE1X9y6QL0ZVsrzHYwQW1lGIau4PgyXHLgJYQ8h2HQx0rjynAKovU0SzJvxS0J6R6Kjc7yWXJd2anEdUTAWisRbJwC+SvtXmy4vtvyDHTRHfaQZHLBc/pBHAe8c9Mgl4Qh9lpwF+SByJRLQTnTBKQm3wATTirIqS8ScwDCnJIM39c6fFmH7XcKwqo4WSoRGweJKWO4j518657UsvTSUasQTL3Iwj83WT2BhFTkZTZkLMbIW2P4bH/te4Inz8eqrl4ino2GqQrmdhiYH7Jki1I64HAs9awqYGTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ea664f15-e370-458e-89f5-d65ff81bbb66","name":"release-ea664f15-e370-458e-89f5-d65ff81bbb66","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4bc1108c-d106-4f54-af93-3128ab440b32","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41897512674416839275575628454530035757730969895728914750351233835299473806122791165386026168804158804234237464388930333584875760952863776387820472539057040563625142862141412679723433505243855059128857109043177781221007936940746195244331042157388231772521165005939167752229839429575533552525","osProfile":{"computerName":"jianyunt2"},"vmId":"e50b873f-d5cb-43de-95f7-5ff8eb4b7c6f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoh4zUCE25oMN/JH/cPZsfgtvRJKZ4IrkuzXcBnV+2ntW52DfudjxdA9xY8HEH6GfhSvaswpQB6BY678s4nZQKPtoaR2dqqELICWVdkb7S2rfe0xJeNh6GwSHHzR1lgbXxch3jDZivIC1MbXKojvTA7x852h/ZFz3TZ8xpN1keMK71HxajEMHZBSYt4D1I7sUdbJO0+mA5tmCI2FiZjkQXE+0cDI1yU5XtrTBGEW7pNygFmcOKePb1q9nFSJfxFUqkmFxkWMQw3l56nru53hToK3ckekTeGMsbP1Isod4f97ivSVC7CRWlSF1wvT+rWKrjUYl2kOuq9TAxfM1LREdywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b7c50ad7-209e-42d9-9819-b73d9cfd1d9a","name":"release-b7c50ad7-209e-42d9-9819-b73d9cfd1d9a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b4642e4e-0c9f-4d29-bf67-5ae2f776dd00","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418291547259023776975872279555119457647863587570965827437155661505949280362273718754314851898778377069104038893444650574532651173743248697982470721039613854268154818164597780761151353896676848965748444893581814264145824464948780682604291830856055244396079093597572227138150351863392930","osProfile":{"computerName":"jianyunt2"},"vmId":"6e07b497-8239-4901-a439-1c427adc4269","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxVhxIiH7vzO8+Nh9enoiS4RCEzdzCPxE88bjdS/4Gbq96OYI02lUSAVfYHW3M7/C0F+Ejia0boTEAOtacB4HVLp0g95Y+Q5luuDe9EdX6pRtFjg9hvnwBXJ2EClEg+TmLhSZ9uIC+1Y1zW0PE8BAlFF+X8HuyccQytFYWRvZOYjzyZE1W3dSADoSjOuxugqPYhBAU4CKSee2P5sJgvWbV/qNmuSqkX1q3ucHg5BBInmJf9EXHlvlg3qwXZS1DGgdixQJsg+bauIZ2JM0Z8+Ba5fdvOTtIw1r7cAGuoAtBw1QtYudmrGOcl9Z1Gvt/Cy0NlNzV/duJ4lklRwYyVCH0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-09179643-66d2-4051-95cf-65a3ce28b5b0","name":"release-09179643-66d2-4051-95cf-65a3ce28b5b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3855b789-92e4-4727-9f80-c2fbdad6516d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181831716855048294253520270352076959907913769405535529410483193270740476246144510747177906420758118661258471529819149074189194169857172022581717551711370258198950433493362296082282745090925003215765188437196039583143274963885424544673530025634824289791008571581131572085474975126415286","osProfile":{"computerName":"jianyunt2"},"vmId":"4b41db6d-1e20-4095-85b7-b569779fd6ab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvXu0qOaPfjW9pjjUqZg1MVQLwdxC/7KZXrgPQIHkUockER6c38SChkh+eneSbfoccimwrLI4UkoqTvfpfrWc0VOuNQiw3RNuOvfiGuFbdXtfEVpstFUV7lm9CoFb0mizxvjYvaFrRrHfuSBsRvM/hBXPz7SyDnuvf1CtFr1564K55hg/ZZeAOUFSTZITW7MtnrSq2dqNWGBeHJ5Bdq2irpW9FAqRYRPZrPRTRQveJPHL5gvcmzjzsTu+YdQIelhqdIBBWJENWBGBE3PUDpUbT/N6mckwzUHwb7kTXa9UeuJG3aCa57IKH9YgEHmljBq/MmUx08N6ljiDliMAyPA+uQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f4b3ff44-8947-4486-aad4-4beb0fe28d16","name":"release-f4b3ff44-8947-4486-aad4-4beb0fe28d16","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"961b4917-0d9f-4e70-a41b-ddef6ec28d48","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418671545051589860132217279518653447598644019414985441768664734560342221154651712860045602822396807163625843231611908241269704505229564389150052797953621251884133875342319526500893029684932762965176008160307823129541608835872130","osProfile":{"computerName":"jianyunt2"},"vmId":"d115e31d-48e1-4a06-a947-bcedae3f1d1f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu+q3iuWnFsj+ZDyn++YHUlSVwlTzxAeUA8GXtt5NCTS2PFL4Nrxs9uVgN28IdhO0VU+u2/8A7vbgH/gOAnHJCZaV/PvZNGaEnl4FXEcU0HY7DYHoOwftFXNumvpCsQLo4DvTYdXdy45qYl0cSxaAmXagW7ZcIavDjgZaL48inC0grd98HXw9zdJcbKBSz7wnmHQ8IvqdUL9z2OCKbV8mO2V9mBBMiTDGn626usz+S+uFc1nAfLLMlAg5fyq3QrbMg7aqzRbZb9Ke0cmRO7isVcMrxiwqGV0+imkXQCETrFUKhufAph7OtUQ8vodxsC2cnHGnHaNp+d2uG3D1Lxl08wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b4580e70-3e9c-4ab9-9b79-0dd996dc4415","name":"release-b4580e70-3e9c-4ab9-9b79-0dd996dc4415","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3b2b7a3d-ab81-44f2-b30c-8a802121738d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186247418863137717178430295786809421807264942119526451883699511404016646386998324968862317202354961604365366350419382349833921369300607023711307801977294775842152212708387838955171997275986855134192329125939323830626925437788428870229337919370994223824100274619649686115158342305815037221958180233366410987096255033144139937479","osProfile":{"computerName":"jianyunt2"},"vmId":"8dd7f069-276a-4fb5-a75d-4160263a6864","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtmHqQYpIxVm5PxKKM8rnAbbyx4RQ6sezVIRJ/RDXKzeGb4+00LBl4RW7zQP5jA1RXNLwijBx5/LyQzhvIcjcGbWQfPi1ZATvEp1ODfbvQAaOkS+0KkajN/jUCEBUfNLjvQATL057PGosD6oxHD4zldGZR7CMUvMkcsPsJqWE533rZrHxsSh4+W+3zwyFj0X7J3cNRnKppckJ1CtBDu5sRMBzk3AdDIwQNu/IRKntbjEkqOPU+tpGmxVJqjAgYvuocNEYzRpnFDHZP+6EtxRisGIzHcXoHWduEN+3qpUkULpeBrUiVEwHEj/w3wM4z4P2gnbZD7Q/d9qPtaK3Xyi1rQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3f3ff396-aee0-48a7-a435-178e49b0934d","name":"release-3f3ff396-aee0-48a7-a435-178e49b0934d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"34a9384a-4b7f-4df4-8814-20c44899742b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418569821312736188669495323147157415697714223218150670708362638112130322894320414962505781900489838471886372649109594422150250415345356344526335157286775627929428383383268818465644695094449882265443917771769455557326573997505635879821872545970613033138485218374251858","osProfile":{"computerName":"jianyunt2"},"vmId":"ab7a1046-bb5c-4853-9246-66c80cfc605b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0NMOuBerLMMLftBhvrXwUJcudiJPHOmpy7bNhWDF6xloepK7quZ+V9TJjte/A6TYeBAMJ94oyaAMvj1GsqpQWao6KZZBOyjX33U3swHobPs59j5OWsyhQxy/mx36uwmKeXI2+Dqenb4puIs6s/zKjeGBRczzROyx1ad21MzFnoAtldIG6KTzVMFIp/2O5fqA5Errx7gDD4gTHu+LsbKbb2LNXt05gELwATszgfQvdmzI/7pbKMKvI1lckczRJhaWnqZ5e0bDXYfifK8PX7SQ0lIh+S9WtQ5b1gr/+0ga4SrZ/Xy+lYglRnAszgzqC8o5ga7WwKHnqTInhwk+abkmPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-973cc01d-1730-4f3d-abcb-81fb44bc7fd1","name":"release-973cc01d-1730-4f3d-abcb-81fb44bc7fd1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"025e4fe5-58e2-481f-9299-856364666608","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187043126826911247121210235261830622127214612602611866197147084212859237757669943171774831325182634296814347522412554855531345551664434570653621753438395330600132724943706911382120790944152299836473892981515191850664683969093503366297374511674153530568772496402827409908660614459838434168","osProfile":{"computerName":"jianyunt2"},"vmId":"40f94154-3fa7-49aa-a114-5ced68dd2475","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwkyI2AAuXPPTu5o86I2TuyXQ9nQLV53S4Y5swH8MKK1DhtLs6BO+NDsk4VQ8gF1ZHw/3WQGWenWWBmhlEtJStOMyOVmZOjsuwUfH1nkMNfIug3QQthhkiBGZA0cyRqy3v4McCLd/OxPrzIlFlJI8kBGdVfDuHqDlz72PmFf87KfyvH0n6Z6lxDrzXXHG7UH5EXRJ7i25ONlUGGtI27cMaxR8TZod6ypEUykLjMfXQhiBOzkKgLZcHroRDzsbSeaEpn85R4wSvWhqzC07EW5SzH4k8VgMC8w2G2+LvETojGryGfCzh1Rz3mYWXtaYnP7DJuyIvZwM8EILoiId1WLVhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8b7a9d85-5c4f-469f-82c4-1d3ed30cd3b9","name":"release-8b7a9d85-5c4f-469f-82c4-1d3ed30cd3b9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"76d345f0-1400-44a2-8828-97d461b7d158","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41841173045113195442394703882398278416977102828111287613506432469180556119391063545287823391347752644333584302504016572297460259666237764641844931237549755519846601898622074832525394629695325528270922611502965142148508048288473","osProfile":{"computerName":"jianyunt2"},"vmId":"d8999d4b-d442-48bc-9bb2-089e4086e62f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0AvrILa0beWRyOu7AO9EZt8yPPR5Z8uFbIn95zJZCaKw7EZL2X2tXQ9ThmqSeWkh/LG/7X8KjNz6J9/+3ru/3zNgc6Ynj5HA6m056CUz/hfRXCVvlh5AmVxaPhiZU5B6HxdAwGPgvqCR6jKhX75YTsVnF4DZB3OQwQwDOEfYxkQQEUPleA2R901IrRRXHlyD9Et1KJfkS+CiCQt+pxB28D2YJS2zHpyQx18J4u74tUXYckmRerNnRrzJhW06J6G9t6CJubMhEq45CcGvANV8ir7mISyNyIm0AU9Is8D7nT2FK/N9MFFfNUSheSpfeJEr9+DAGXpfqOM/s2tjQ/fQDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f1d6dc60-ce59-4f91-98b4-f6cd272c6fd0","name":"release-f1d6dc60-ce59-4f91-98b4-f6cd272c6fd0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b1b0a013-c163-4b92-a1bb-5b4445fde262","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185266807069407411119518617309245945404596461211028698736612374328387675409279668841240146973938981814397672011655769365540224533349471659639594336231474448690011744150390045816573573182588268516242999604745017795193130887098685972477602384710543342","osProfile":{"computerName":"jianyunt2"},"vmId":"438ffde2-e07b-40df-b723-15bdead65217","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApnmtr8SfvpVNvtsEDItJHzmOgf9QvqN0p1h6FutwaPTa6r9wkswIX5c178h0yoKy+zmygzTAH0EdSbQFnnOsIVo9/GH5WiRt/VatcflpQp4zQMyvd++iSC/8rKorrJbv0VAbtf1xiODvzeLo9aaarhvx9pRmC1+3vRm538lItTP+9TL7g0+L9AO+jUdj7HpVawI8sIJ8ZqvXG++gQ8VbzMx5rbQcrdMVzssHhsR+ny2KvckWM2pmvG2TbM6mqVSxuWnz7qInkHsPmGopuNFza2E1Wn7Cv3F+F59+1KdEmU6M5rySEnt4hvtxXq4jG8KKTCDSrOBK/icIVfsLhqLDqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-300f4fb2-9b94-46ec-a1f9-3b73a25fde6e","name":"release-300f4fb2-9b94-46ec-a1f9-3b73a25fde6e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9b0e6e47-f32b-4d4a-aed1-6836094d8d47","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187121820947592442928137481651143377634602627692739321446375315771642463654766567903310097332173924146438638151715614384469284522829907012247366142163931083734559183795412218688118938673347059395896860036757524774641364601073852642762921637343905001266087687934277615175093319435043844161218034544491311","osProfile":{"computerName":"jianyunt2"},"vmId":"0033572d-8306-41f9-b33c-7d6ce5c49ca7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5bv4gDtO5yxu8WlcF+SSyBT0JNY88WyYu2WsMvX5kj18873G0KDAmSfybZ/hJekyE0UilRWTJjax1tAW/lD0xNZcsWz+SXAEVD7T76TXCCMJ3cGNaNM4W4Jsri/vbLDp8dvN+F9zcGrKoGXoyR+CKDbozNgJRlNk5CapkQbHj9PY5EbnUnSy9mpaV/wqMkyAvXHAnwbTApJ0chxEDCF7vxG5ZcCci6sYXUBJAhM63QDX6+UTrtDrRDgEWpcVXZmHjgAOA4+zH4kdm/O/6VbVL1sVaycDk/oyHZcAKgR+6hNeId41NBBT0yaq269tJWF9sIWAxjnRFbsD9znFYbmlhQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dd56f6b1-e61e-427d-8d23-01c56e23c1d0","name":"release-dd56f6b1-e61e-427d-8d23-01c56e23c1d0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3a9cdf48-5717-458a-ab68-8db2b2a5b683","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845389834984052487451384368415708435442173777207353319487119674671506598256461405203867331826330337607032719434826055437433612654721731011356080954680424495192706477762553933729789211769774867397157426447885622719873478642497277669123656610105800506830428647","osProfile":{"computerName":"jianyunt2"},"vmId":"7146ff0a-49bf-42ab-9460-21711b1f6cd4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApkn0+HX3nBmxcAER9Oqs/DIs9FAIFRVxSzDaP8b14jrdVyRzTDmv/1cryUUtyLjjVIFamP4FjhPtHCapLdlUxO+dxWyIZDOsB1uK/b4xTNHO0g0QARUYm1YfZRvjSgrbe9YDcZ2sijxmCZXSefUOrJWhsLnPHTGCT02LH17vvWuwVo9fsbz7P3BukrdLoSsXqYW+bAP3iHtxF2OyB2o8Srun2yLWcKnZlO5fYcsv/cZ6cfSDBlINd11jZ36SUu2U14Ef8oCieQQZ0FVBt2JpXmlHfJz3OKCKzNkREVZKTFSA6Jo4iqdTenkDf8+DWvcPp4z+GhVv/YGDVy7b2h0pMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4c619f85-212e-4581-b188-dc022ac4fe10","name":"release-4c619f85-212e-4581-b188-dc022ac4fe10","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a1402e1a-89de-4177-85cd-e03c46ecc56c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183615916263755874187399620970541333658914781078208981563398873739778679765238228451828061729209482727789087768426271763799239936447879233087620518925624811951741493562630527219259993447094216075904961073454289199921954946905658619258255540335752302502","osProfile":{"computerName":"jianyunt2"},"vmId":"54248c40-60a2-4b58-a9e2-dda13d781a0d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1S35qCRl9s74czV3x64252nm785OL/B18YjxbZwkvZ+6tEJYtx0G+R+Uwc/xABRUD1IZEfUgHHoabRPyT39sY6ThPyWaTOG3zabcto9YpKCSwM0lp/WA4KBJaEOn8zR3DtPqfqnSsjodHmCnnV4M9INJq3HjhiJVJHajXYC3ubpSbWJgzYtHFBy25A8+dKbWU+osKg1BQPL8rvg+xsu/VDuDfR3r9EPksEOc9RNecLF7WkFXSHWW4CahtHG+I2ecfC+c0nG8wmCXoumFGtyxj3+GB3JMfzSI547ZPJjdgBUkcuh6WCAVM9jrcQzadvRzz9pKv3n2xc1qqwF14Uk5DwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e50ac54f-afb7-4283-8ca8-bef57e863d63","name":"release-e50ac54f-afb7-4283-8ca8-bef57e863d63","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7c759072-bb74-4f27-b820-524bdec26274","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418439724412886716539633554285470572955842185724287156331836683992430142455928606066814623605937978213624379136068672425844824309992145889193167687034934820257184792987293944680259804221235226556282136695393055314477552795459788077528747749568821236692391906681558500892631438","osProfile":{"computerName":"jianyunt2"},"vmId":"d9c33530-43db-4f3a-84c8-a8964d703979","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsiHMLmkP3Piy2OWFkUhGbWTO3UuhsufrK824SW7dOksgshSYYA4HuppaUlzLIBb5C/l4GCQX4Wan76YGLZ4mLJPcqJJbnevpSNFmoUF3CtmrvFm2wYqMrd8AKBp+VBOoJLOWS+7w2ntKWmo0S5CAw1Iw7c25RRRGLMwVRNm4vRzJ/Fqc6DvAIJQkjnGpgGgJkMcllCrKARtJZMVUwiH+U3KPWd2xI2rOFwN8TrlU/SbIuP3qE1smDTTIvNvB3WBWDXo7Peu4TMqfnZTkHmVKYp4bxmf7lTRUIpjtiwCdMajKaIC/4+vr9PBSFgYgMXGN36DDRN6BT7oLxMBAblyW8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-54f2d53b-9f4a-41e9-97d2-e9db140630e8","name":"release-54f2d53b-9f4a-41e9-97d2-e9db140630e8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"281a49aa-7029-43fd-9e75-b9c0778b1384","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418167651743777917938996567946766428391211160952683766885954467359584264122865675648027702682371173933802459982680885521888040625206103120539734525284182894995215628550966998619170578516605971803583963969186710493585428948187190799213940135167897835357531807959416715193","osProfile":{"computerName":"jianyunt2"},"vmId":"817c1e33-2313-4a9d-9e9e-ef2aa3b8fd6d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApjTbHzf0qSV1PcW+zpNHbOF3NF1VvRW7Y/IWSiiInyBvZBgmUupZtemMRH5rViIQ6vrosylEZMXSzPnKZy4kq1OQsKbVOnEKFR5llqvd3BbHlkIo9/eovIBT8ZFgeVE1mvU//Zn8zSNXMYFkh+trBJXKw7847YyqseRXjopNVH/9xGATHPplyvL9DJv5qzI2wmdIzslhDalfzJrVK/tIQMqrFdqOxD1i2ByCNoEXb2aClIrKBOa+74qNEkbxeTgDANTcOA+ip6pHahDZ51kijoj1j4ntdyfMQcxiewS6lsR+D+RU8btFDIVngSBnof+PY/SxNsbnLN2kIucMuR9hsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ee36eb0e-5078-4ec0-bb87-e1411524ad2a","name":"release-ee36eb0e-5078-4ec0-bb87-e1411524ad2a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c5f9dff0-256a-43f9-b6f8-eacf6618702e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41882005812151017235740192929740448630509245467929629973485959443786986807956511873150898091211897437231976792790930194754910532578552471385544308063930053869478316395741228378961587096986894369649464332499899275313940689372483981910218256674737114531934306069764025269824006615852172459309","osProfile":{"computerName":"jianyunt2"},"vmId":"c3197fff-8487-443a-91f7-4b3c5e1dd6fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA22829Ga1LSJd0hYAZCVqLzgM0KRkX4DPDHhq6Yn8e7dv0F4Ty6gRq5QixqVw27C5cvvLeeLB4jQXcD8LvS8dnsta3lw+fFRc2HSBSxzZdUfA8PYmZ/VNL1ag7gU+SbtqVVy86Rpk3bcJneJF0iDNLwhhFbwkSM2rYf6+lIs5rAHQd88oYbPRIFuOb9AgaVp+kqBivMwxAXuK1TWRolFqtCnK8Kx3Z3QZvJfsFkhnwmsJZyBrUvcVvhlhgeXuy+Syu7kh4B7Cv2GiBR/E8MOWzwa3DdRpUWD0ux6BlbhMmVZSWlt8tUuTtu/ZExKXrN+Rpc1VF5J7v1MdWRexH1VbzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-191eb36b-6d9a-406d-93dc-edf9a33a5ad1","name":"release-191eb36b-6d9a-406d-93dc-edf9a33a5ad1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d1858515-6539-4ce6-978e-52474af2e630","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186688457061604689248646006020752677704270280342338694422633278153747620097525302365224359096255937228481217895547687961356477099952447742532785976718558818555185964863636619059778227013343235601022245078281681592592206532222450329918508731932958245534388989656662964939335339131142681492571","osProfile":{"computerName":"jianyunt2"},"vmId":"b9eee255-83b6-46da-9666-3ff26c46c35c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6sMHs7N4L6cowtmLN6BdNqhoKbtbkg3iW30DzVstF1FvtWCqsRhSGt8B8obczJFJQdxw4hd2N2u4BSE1CTsD+hr8SPYL98qyeipg+tm38pzQx3IoGa5gPXj/gQNHhhMzLS22Vjkmj7kT5atApOePZG+uq2lJhJBcN6DRIJ/jznGJ3wjsvWrUuTSQi2vdYtN2JWp19wGuOjLMsHHjYFpq39s5eiUD++bLkG70mgMdTb6+GYTytI9aZLM4VGhsOWaucU9qRnrd0Jsdwmfda0hAvDf+YzQK+ISnYKu/PK5iLu9rQK4vAJEDSiblJKOTO/1fzH+Lluq1MmuFS06D4ZcY1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c8b5fbae-5e43-4963-a1ce-2d1fb4c28835","name":"release-c8b5fbae-5e43-4963-a1ce-2d1fb4c28835","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e89f0d68-ba20-40ad-8521-db94272a424e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418111657093884720458652345826247548839598413372456010722362517346975755766941908206117802862780576398862324206452387167818071651863823559740560967579755148622289771826145744893867852943708714187498545761567001141063948505634836018717802783563194537124118046131231132","osProfile":{"computerName":"jianyunt2"},"vmId":"60048a2a-5c7f-4865-a469-a1779a73b462","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwb6IUW7jk7o3G7Mpx6ChQHCyNjVF7Pdq/rNDlR7wq9WiW9iCExhH65mlX7+gL5iMhPAAmufj5Ccg2R7djN19eBWNesv0NCoHBY9+UTa3x3DYZjTuzrgsKksLGuuWeb1dhXGYkSkDUatjzmE+QC2sdoukqfEnqjuScVwfrNO9dTbU/aSsn6HRAZOxuVX5+fjQaqGmUgo5zSaF07HhD/bgvhWs123e9ofWbhL21dGWVhB3RENmpRoTy9BAb+J0eAbNKyyQ8QuYLbvKs01MWUVefz8b6nKtgSWKcn19XXGoy+uMfdtj8Vrvr775csnPdHUyw77mEWfzX/zILNA2IQo22QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0b4a502c-123c-46fe-9fe7-9e28df7aa5d4","name":"release-0b4a502c-123c-46fe-9fe7-9e28df7aa5d4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c12aa3ec-37db-4088-8a78-b7ec1111527a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188423468392310288297827214442171163250079618284110159391503466043196490823530082071217659990746441804443801026252499013712636596566721450459208817705969163309992826438810462964897353624149457126534181124914600704177678473801074381184482757711940","osProfile":{"computerName":"jianyunt2"},"vmId":"936031b5-0370-4330-9f3c-08e280870076","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAovKKWOGWLYIjm+4X2S8Efllv9UklhI7EB1IICxaQJbug0vxOoqHTH9cFnGglIaQz5cHXywzyzDkzo63KTrT8Y0aKEH9yo2KRCy1cuMcWWyWNoAhxJ/MPS0Xo1FcawG8R+s8Zk0ARDI/sZO0nNirpOzJIzxWLpPWEsVv0p/OHdC3IV9Sm7Ka3rKn/Wx2i+W7yUbpw64mdEZYMEUbasKFuT0/MCmJeCAUjMTdle51hpjM/vyVHCw9HAloz4crkztAzTY+9wBIJW/Wu//yvy61k2ExNGU9IUjzBhb4CQMrsxmfQUm4F96Y/q9uVF64GFCZJqM5TFYpS7BolM3DTuFLu3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cdc4eaff-629e-4658-8ddf-8e8f5a157549","name":"release-cdc4eaff-629e-4658-8ddf-8e8f5a157549","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e02345b-6e4f-4957-b076-cfe6df3e395f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187180102534677459787739514549382222837905966133797811852211691172883249683512414203249704772313205341306765139624739994322558517615326962984520488498284165464308447571465681735874494445549343045554597968372861565203121397855237104182574178833473617113861343","osProfile":{"computerName":"jianyunt2"},"vmId":"84d5cb1b-0714-4f85-a0e5-cdb575f9b420","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvvTygpf+B/YL1texoPO6P2cmQgt8ml3Kg/VLkhHYFZ+moIsVrZ/WGcoXucI3l0+fLXMgIfBDQHRc6UPH/HdaeDkwo8F2qrZLmx20/T9Un/SvAzb/kiblXroPoJqkWFhxeGub6/Z1vVeWshTNSjXyaJTY3t39p3xqcAIkuE1GfTS3wmJDE+PJSbpECzvawdMlsIi4xE7Wv4n9HxBQM8H0XHnJZ2XngeRAMmMtvh1m858yn4hmv8nWOGW9wto5dy1WPgb40lEawQ7s4AlIUcpw+e2biR6Th4VEKKenMIUFC9hs+6+1uaEpHpiqot4084XB7AVogZaOroktpJohKo5EbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-93bb1b32-45e7-4e44-a7b5-e2cb03d3d1c6","name":"release-93bb1b32-45e7-4e44-a7b5-e2cb03d3d1c6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dd704804-4fd0-4c29-bf0d-ce85b3239fe3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185582547364912364953498854499697439720372678542785256261348352954827397052557330712411272834846299874882827336011729879322932535170568516996604267876920582216803775012292397784108506459546001633126671547238409878997824","osProfile":{"computerName":"jianyunt2"},"vmId":"9d16b1a7-69fc-4e72-b345-e619de37ad9e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyAWxp4gNeiv8IPCEs5Ka5NVGLkF0SoxQDz5h4KQ6+OlitWddgkdZZUGj6lFNS+AMvROMNTUcWQTH5ZE6Ev4/PGLmeyseO2BlSKvYsMe6roWf/TrSU9aKFKt2lmEU5qSlsPhdgSJEKCr2bFkRbRhY/kVtbBgu62tXpgbRnLjcXSeYu0DxQIza8pg7LSnSklHQgySJbtTGL6d0CEnwtIVfPj4Q1N57aw0KqkKyAOchmVHVDteJETtQ/7JqHAAx60ZHQQNQSMyo3XDgbJxfyfn4KXZJtvaPvnJIft+O6YfShfl5e4QWuifV/TBOhSJLlWsqIBfJ3/Pfxbymed9FnZpzZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9bc77c33-1a9b-4af4-bd01-9549cba1aa20","name":"release-9bc77c33-1a9b-4af4-bd01-9549cba1aa20","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"13f39468-8710-4fb2-a5a0-2905054bc9f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41814247380788289742280714506139225754922546461613003272344234603480605256264606799949279765655275625936984953422673123444982914018245344510294302998115387225843484140590849871906041844678824429611454985857491571687507484451134513640431670916478475808316770459790799186","osProfile":{"computerName":"jianyunt2"},"vmId":"0026ff34-f572-43f0-aa9d-ffbf2f37d13f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArCa8uF8J139kEDrikFnQM4rKhXnmvsRRlXhTMdcBFHyVeDYHiZ/b+FkVhksy0zDOaq3PFd627a9pAKj+QmWYWRkNVnlSVpHK6b5Vt2GffI8QG9J98wz2/NoY6Zg+IQc8viW5gPUel6g5xDOkm8Xgwevs5wh+HLGCn1WrF0+EHbrtmUkx7FXwmQhstbT/UqoYpb/hZ/FtfpmjBn9ihXEXQrhwBPGjQ20U6VWccrmhTKHX0XEu3dtNDdmAVp2SSm93Ag0lVAZdKb/8QbLfQ6FXzH/65QP2Pmnt6wI5zGnSqwLSDLEOiQUPiHVAgNCLwRTTvYFvl10nPh267qTeIhLmEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9ff8c1d4-9e31-41d0-8629-1f2a013f7d98","name":"release-9ff8c1d4-9e31-41d0-8629-1f2a013f7d98","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ec521504-c154-4a43-b77e-272a668961e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187707357593481051873310261398956820295509327461764707115545988081576130629572216652641895817865832663286940150953284865407990054825041126931951558873103059987194592720846918762784401743147326367960336463931407935396688791332588665743052773599311638902114650047068","osProfile":{"computerName":"jianyunt2"},"vmId":"68c8a047-22d8-4872-8933-6788e527726d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtHppkNNEGcHrNXGHh0Se1zCIJfa05ddQAHtBEUPgTFNyGT/O9qR/jA2E7xwk+F8FJ4Df64ItIEvx2wBiQQ9DxQzSmZKi7nDa6e+aaesiTE2OEdaJyTk6pqvc+IW6y8UJ756Zi7t8+Q/V++A4wS7cOEm9ww86ynoxyh4IN7bMIBz9PDh9KiNairQLHRCb33qqRSe6D8wgsRvl5Wl3VCz2hW1X/HAqF0OEIX6OgKzodBejErN8l/4IBgJQUOuPobD5fQ/ESmGXlbbeiLm47IG6mHp0lem1E7MnOvgllC7IekoSrIK4o0nftRN+qVnVDEiAFEZJpuAvq2PeUxEMn5++dwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5507daaa-27c2-447d-a0a0-94db0d14b42c","name":"release-5507daaa-27c2-447d-a0a0-94db0d14b42c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9043f99f-8eca-4aa5-8659-fb3cd52f3121","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418352580996582263923815074320947515739249916417381759952243679612341962804793897785447742112446612736376199779054007403693658634994562530244732704047952079318089867837720365708062300091811686672914866217678565065889230233545884","osProfile":{"computerName":"jianyunt2"},"vmId":"d0dbc48f-45c0-4117-bac2-604bc399904a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Ry/TtmXHZms6/33p5VE8/7xY9uRQ0hdLWab8u7zbCsImj8s57sNYAg0mgyJMtmcGJ+HakwXJqNOpH6HFkERUkIwzZLbO3rYxI4BO1A4fcBW6aiWp+Af9oYcThGNJK12E43bxp19acouCNoTSrjaS8S/MR92SWXgOhoZtM9FF0HkuCaoaxNWJa3Nmf8dEM4v6lwFvaHDYp5bI7xrN1Svp+v5cdib2Jlyitq/WSmQd9emt8sWq7lsXhoj5w0HF2ah4sFABqLWgMyS6B4p/jSDC7gVx+pheC77VowbH/YVNyamRHONTYEPDdrw33lWYcrx4/+6kJVjUCtO+ocHD0kWYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-20fc2392-00af-4b65-9649-63ae63fb26b3","name":"release-20fc2392-00af-4b65-9649-63ae63fb26b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3a76e1b0-8aee-4612-9ec0-eccbd99c91c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418793574845448724555659308217028048109367781884582755625183742229157159873938655223033948184660082817597815316253081647443815542471938087121984231594156609829355848648654638895518396269886392967738857111165342851283774797778493695427698865232144565246466380630843727","osProfile":{"computerName":"jianyunt2"},"vmId":"e8e60ad3-9c3a-4ec7-a51f-15727292e6ad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsc3hRodVWIfrPFBjnHglDaZQ47akOhCNwTshl7nGRhUlIxolRijlk9FuOoBbzGwYq9Haq/DJ9GorB/r/Jvk4Kt8oXPsrp0h3vxMOHv0RBhYNOosXjBD4prTAqbwxUrn/RN/01IALKzwzydsA9bKZw6VPETWfZ+TRQiYalX9vk/hZTEoBFfH6HnPsh1Pi1H9pUuHldYuGwfagm52s8VQLVbqeSkdVVF3+MvJPwkxvxIlc9oYAs4MDgvWcx3eLZcmG4EOc/x8o9NzwPghMyxO07+Dg0hJNwR8LTqr7AQ4ZbjE5iJzUjl/QaUdZG0NWiL2xoeFVIBbYHkBrQ3N+ye7vHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-061fe1d8-d533-4c5f-8e4f-e0d3eeec18b9","name":"release-061fe1d8-d533-4c5f-8e4f-e0d3eeec18b9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"90cb9391-39f4-4241-940f-ef50cf6ab764","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187639339067107753880747448594784573277918293326494153983988495328902021651153793414697601438687666118541642943552335147104189244591042564217876698717009288177857082896343040753756276420375189303702580632308311437275212672506451282296605227175869385396723623750758377531","osProfile":{"computerName":"jianyunt2"},"vmId":"6b41eeb7-6f55-47d4-8831-48e6b91d62bf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA01Exrb2tViCxghBqf+I8jN/418lnpXhzUp3gEwQ8TPmd7dNzUFu62bQRDuXVCBBxxWrRANc30cYZMnA4lyhlz4EuAtBh0dYyA0hHhOEyfuL5UvHXaHrAT8VDEneg1FAC+xZkkaOHbgO/Z0cFvzKzH8qh5/atOjsgr7Y/9ELAkZjz8eQEzdItcO8+3QcD5qBLaFPeFw93bddRyUuds2LF9LmFNa+atZUayrqTQQ7OMXZxgZnCnsgjKFmMhn5NRwO7PnB3nY4z5tS2N0rrvyWUpQRqAUcSEeZ2nUOOJZghF4T6eAwr9JUGwQdazZxGQSiP+uJk7NuF4Eol/eV57UZPpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ce0a3406-0f5c-4496-af55-073e9159479d","name":"release-ce0a3406-0f5c-4496-af55-073e9159479d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0753a438-62d5-4d70-b6ea-aa981e676114","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418137590617883925589788519527621156749796265708882404585755044261420343217662827649604580680581044899761987076640143146495604771980321395021790557906805261930012625937049008130918145416751621991930775425869611987647397740","osProfile":{"computerName":"jianyunt2"},"vmId":"370fdbcf-6e3f-4e86-8711-40c934211d68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+1W8+9LLMSpSJtwZHeT7muDQua/zQCfrsfJoIwZJavsVClZ95QW4DbTWVmHJ1ulq+vxESQ7aRvnEmc8lcYjSlKk1pM0GAyDSU9hcmyDKifnGL6jbrmf1FRA1K2PY2lts2TzSFH8UXliALyQlvFlVgdo0z1KaVMWtOgqANlQy8NMELEe+D1Nc21xrU9qlzw0af5b+mt1dAd4Etpis5wySU1lWHr8DxYpoimRAi13ozisZKmBfEAC0NX2swnSOLF35bntPSZO7PEIWfLDE9AYgG6OoCqVKVtVcjwu2089LlXqYc9L4p5KzGXmQNZWKqLxcoQAteHNceWjc/Udv876FAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b85467e7-7b34-4645-810c-944f1bc254d7","name":"release-b85467e7-7b34-4645-810c-944f1bc254d7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dc30225b-a275-48a4-a551-1cc6d40d435c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41827386970575386014791974997631444642903841385213100080849639602475896263706629036761808586795682534832161610963145262475126485174209326062181976553657688813757167894247451278004568639443819925333795324077620349470626259456932224100374936502468632352645724","osProfile":{"computerName":"jianyunt2"},"vmId":"dd817d16-f179-4bdc-9129-d728d5dff0de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw1OaGagUr7IRG+k7jSSOKDCFH5dnwT4k7kiHzLKHZuzgedP+BcQTna47VxL+n4u5g/FI8f5lnITAhdN8uwULH89e8ezQblPn+tHGFihsFGpSfS+FMqxO8C+vhN6chhKshSjUjb62jR8+TcqfC+VMDYzPUqgHgIkyPxYK7SPrCgFWvMAfgJfFyWKICmbzElrH9PexBiCVHHT6hGTfFEdCj9Crs6wDEISuZVHbv56lzbAScg5gYUrgI1Cn5K0eIkvYmBu4V7VVvMUFkI7nCx7N5C3+qIawYtn13UUfxDECYr3S+qbjJvo3EZ4uNvJwwTKMqNyFJZcWrN4yPU0uHxtcTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b175bb3f-a391-42e6-9532-a52068a57d4e","name":"release-b175bb3f-a391-42e6-9532-a52068a57d4e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3daf1510-b73b-4b30-9e8f-38c0bb3308b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41876362634331024694275916825552584462648568335329441234115168747497485461565186665824532041245446482922274311186374559765813547941965705657641946193550023392385220942759709538189042016010711966004138523014756415794010426437193578489945965429991748586224951265565427164701451686886106637179529680422083527468","osProfile":{"computerName":"jianyunt2"},"vmId":"97693210-6f77-4e3c-86e4-d253be55092e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7ubWSQmuBD6W3RZ0zWpTMv8uju8MU+dvtCmA/SlCvMhgIrDDB/C0nOJQDKA1DdZd6pLH+CpDnMuBC7bB5dwxBIpuNxNaKnl4Ns0pOya/9bmFxHAaftidenMjk79EnCc3z3rbExnVCmUDX5vZZvvqRP2soNzXvREyTmWvwgPid8UNpOkfzI+BmPyFMcXkxCHN14T7sJKGPthgD9lFwT3vhGUNzc7LgFoDVkFjJEY41DiWugKORC7jA0ov/NkhiiB/yw3bKlPtifNPvaoLHX8QSiywhkdyGaRTGQIFJl8qbqHsX8NnORb78sJ2X87rbtFekBSIIZHp85ucNjULs38HuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-be0bac4c-2c09-43c2-8f2c-628462cb3b34","name":"release-be0bac4c-2c09-43c2-8f2c-628462cb3b34","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4d826d3b-0b1e-4705-9a00-759eb1ba0041","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418453285167107416930593441277885647554085372334638285430679997895697845903382288854406893438324503789142756678284212489566551842220344696352688629850296164823483155014146192984082060849821103133199645404748322460407172509223764541860405633920162618416911188573","osProfile":{"computerName":"jianyunt2"},"vmId":"03baeeab-eada-4a18-87e0-1ac0d4fbf600","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqY2Fe3M3WEvrmJfmiFJdb+faPRddlgpmZwrq0qh3bEKWY7SGU2F4/ox/tn5A5SR3Jkb9OmpdxrIP5JX6ozfwFFty0Ht0mIWpHG1UwyrRWr6r9E+E9TsBlwcxxAEBFLg8OSImeLR/rDryM8z/J7ev0pOPWVZX4HjWkP98uRD9zXKKT3/eAwvCTimEmV5k5NC+2aGzRseitaPAVq0IzDWw1ENlzq/iHvDuY0vPj545txvOAfpeQo6hFwzuD4yqJDIChmBEgVxSgRBITN2NO9XHqH86/4HRp7ldQMJqCpi434rthhICFIVb5mhle2sDkMH9f1ugD3Fygmag/Kg4GDy5JwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b3b23e77-8f53-41f2-9f51-b6b2a62dc0fc","name":"release-b3b23e77-8f53-41f2-9f51-b6b2a62dc0fc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e2d5d1f7-3105-448d-b130-f4d7b442e897","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187373722242402794233650928851715303239897857896266513644501307330387352964976769689334213663835635899855442604313973979942562376758179977838823546937766559155364063517132762144274586362198232044709768673160841169474922648976333993602495733404920","osProfile":{"computerName":"jianyunt2"},"vmId":"e2e43db9-908d-40b2-bfa5-9a65764dfb4f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyWGtcDmhnwn81LHDFOgj7pknyFsg9WODzRId7K4FFKGST5z90oqeOLtDFiWwGBUrxldE8FVEQqMBf0BDVdRtVNtF+cKURMFfrCxlT051dnUSWk+QH/bOrXLnCrnZoKr2u3OjEfK0nEVjUBjg/FiAeO+iUzI86KH0fiH84O4cpN8xm9v8mu7PdPnXf+lRiRCRYoAXaeVI2WozX1R7TgAgoFMzlpRYophgd9Dj+xWx6KN+1DZIRXj2gIJjQevQIWQTshCBAtRk+7y3fJyYvmUrY0+haGW7Ai/z5/mcmMmyvFoquBwcEOTAL/6EzrwzVLK1zixy2j9OFTwU+zMkIwrjPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-253a0081-0dea-4af5-992b-18e747e2f7a7","name":"release-253a0081-0dea-4af5-992b-18e747e2f7a7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6a7e5967-8981-4fec-a62b-36b02279cb48","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418611250257654145040808887363352369289862766011461871618942288949363612731304737105581076747388725395252250284099282171744559619654730616340534013262539617385462632997395777362229975188648228688554930","osProfile":{"computerName":"jianyunt2"},"vmId":"5c1610c1-4121-41b5-bfba-a5e190bb29c2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqjPOIaZC4APLJZtGKGLM2WNlAC4gRjKe2PYJgLIIKKDEORQvKdc1gjiUxE7OldFJiSNDceghpiIM3gxwUlQaoZwvMb46pAECXBC6KPC63l/bc+NjMlc74ejChLIeZtser98sBaQN//tS5GXXmA1e9XCC2K0wHvJfd7pxMn39NGOKP83jw3oNR6dnZZvv+di8COStT61tx6ami7bm0nT4lc31CrhYD8Po53mJgdvMjmizKEafJGZcviQNLCk/llxcDgORB6yAEbnk7nBqeX3XVoYzgk/Ma0sFmdNB0GHAhIzBYkAUnkpE54SpFJNzzb/S1pcg39P7tR6tAM7CVnD3uQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a44802bd-a164-4cd1-bf05-0e83f0f2a1b3","name":"release-a44802bd-a164-4cd1-bf05-0e83f0f2a1b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a071c567-4e60-4581-bc8a-3da5c89757e1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418717785996194606014192657496733631471522242291533643466974295332443201958130114718999153674678825544059492758504953998428868708607181222995054777331785457566740883373148650886229077322403597219058204781322604771559732497026304552439478213644611790593148","osProfile":{"computerName":"jianyunt2"},"vmId":"562778f8-b8f1-47b0-995d-eb8bc0020406","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvB5HveGNqEiaTdZ3Uja4a5vLNGMyThLXFIeTG6BIThxlH+CSP4moxHJQkmOM1nexeeWnGauh1ko8i2DkhcBCOE/C8dAW/q39lwa2x6i0deQvUpk005YFAJGqu99peg/Yuq2UmwfqaIvb9q3ltt9+MRwPAKE6wztZpEDO6jVlw/5dtAhKyprYZ9XJ10o4A8ME9pSECCgtezHKSQsJhOsQfkNfRQp1of4QNTKkpLkdI0cSZJQfYgzJCpiAC7VpHmPU9nTBbq2qc4WwwS/pxo68DeFQ55z+qOBHBTHbdX2R8V1ZtZqsFSF5ipaM7iDR6ZTPVFeMA+WrG+9PhWnXsY6HuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4a9f6fdf-092a-4b19-afb6-6fa2a21d9f29","name":"release-4a9f6fdf-092a-4b19-afb6-6fa2a21d9f29","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f6500f47-752b-44cf-9dd9-d87f6315e94f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41832263424450253261362921178774986368211797227645407927179541534763986456339494141381423785785745964395871153941329798684724282537372805649924686978852921217836602622944839841262010192290924229067192798089374398335618362663","osProfile":{"computerName":"jianyunt2"},"vmId":"7a850c6a-a8b7-464c-a676-f6b94f47e381","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAud53DMoeHY7Zi6uhtnCD/XTanF3ikmtuSxfgJbtCS2NuGeklMDzDHkseD5ko5mV1qfA1t3XNujcaCpQb9gMB0coV3VjBQjwjZpkbulrmazW9VMRZNFMTYQA+Mx7mK7/S7JfTQbGdQNBWZ3bzYR7er22itFdQtJlu9QC4f3Qtqr9mAJ5Do8qGJULWXEQFUgyffXJOFWYkw6+tqbWDgK0ntmxu6KGcdv8U7DqucPjCnE1x+mnTPTtKj1gLaHpl81tYtPJusJK1qUKQ8Dy1iLOQmc6W1d8izNcuhoUFzaq/eO0TvX86FdDfwK7yNYi+nS/eBqeJ2uQpGROl7CVGaKIgmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bda7568b-11f3-4de4-9b90-9915935d0c0e","name":"release-bda7568b-11f3-4de4-9b90-9915935d0c0e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f86a6fad-2a43-4484-9769-9ba4edc9578e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41818977600557041909794312886777415644561695781736469076911771240935901697715354518268499335877295981905426451544219980759027796714183211483827190948446542574111571573743545498664349911105674","osProfile":{"computerName":"jianyunt2"},"vmId":"e30b30b6-3c8b-401c-9f39-5fa3a1a7e30f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnr3yfEZsJEXFcBd7B66mvqyegUmDvxVYrT4Hght6l1EIt8clOVWXlDFcdfZTFM/Y4xW95PgEFHHN06ZpOb1il/zENOnPK2CW4ceikKsGZZnFRVmJKl9AiA5hwEaVg/B2oOJCp6Vou/hw/4Ox5KzPghTQjN4+MnSMbg8FynpWole8oQVEeyn7x51qIctOrl/SoY7pwHBMsWToxn/q60vpYC10ZMDcLVd+0X/0x4KWhyVzxCepOVxDyBZFErCiDKA5qmR18CjHK6+DSdHoh4tL+iEeE7k8OuyUiD5eBxtRfogbtoARF2m4SbHBxMQGKMGSlReg9io7aRd0R5RbUus4PQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-34701e58-567c-42a8-a48d-5d479e4a1d5b","name":"release-34701e58-567c-42a8-a48d-5d479e4a1d5b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"647bc69c-c64d-4e76-a335-c2851af3e6b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418558026246492218079961983720491246686000547357678226957917990666013324196423302843243757912651977796817719985156257497134689907629042725237876645594138761351573567373197228298149934972298499122248819944750922269675037771273526423141466850675244843642","osProfile":{"computerName":"jianyunt2"},"vmId":"a726be20-aead-4733-a91c-cc841ac1c86a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuV5kmvK5ziEys0repMsxnFS+xK3oyp+Ptn1CkG3hsolJyxl+6D+xpclmicLeyweLzRDx9Q4HmboVr/LDadzg5ekEQHKhLHSA3ztsz4XGsGHLADvUUATy+nT5i8wNqZkT9SHHdHnltMjs1VMtFIKGvF2GigM6EF6Z1DejF9vSLUTgAsH7LRHijhYhHv2m+qh7wHQwaNlTBfGZxSjPt3tUpavOrJ48judH796VSzSKTGXvTi+EfraVl1Ji7au0p3AWj75yjIZ5DbZqeOqxPB+WMRqd/2/aETY/BvVamC0Gjz15pdTZfxuKnLOOi+KxEG2/cvSd3VsM0Ra+Ihx2jYMwEQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVJrb5swFP0v0din0TAgASpV0zGPzM3a8giR%2bpEQh1gowIAmaavut%2b9CsqnIso%2bvj889vtz3SSXO%2fS9Zld3k9n3iI1mlie6nCCe3k33fN93tdHrIqqwQB1H1N9nbSytu8vow7V42Xd7Kppd11U03M2Fapp2ru7mTqebcylXbMh1V6Dsnt%2fOtsd1o06atj3Ir2m76IPO27updf%2fPzddPKrVsfmpdeUKZ8LyvR%2fcgaqR6JSeJ3uvbdUTVb1XS1acVRitPXL10pm1VdiupOmTHFYoqu98OWVsXAMOss5h7hP2cUj3jIxJthpsuE4%2fIpBh16im7EKyLZBFaxOyBNI8yTNWESMbj%2fRGg%2bmxlz2gXhwEGx4PJZdmC8sUNFD8bBzgwPEUmSmcAMyMQQ354jYgyhMh1mGvr1jDn7KLQokKbXW6%2f3CE7wwZbgkXtVCFyinMQeDuCfXCDGYh2e42g3yrEy%2fUlgd6YsQM44pA83ZGzIGzijNmVl%2fx1Zl5Ndl3pHYswDGBehS9y43DBeR5eOnRRYACZoDYETkMLFwsTiFAyVTKgaAPfZ%2bje5XkQMvC54VHCKBvcxyh4cZCy5X4PF0BA81Y%2bSFajp3nHQ9CPG4wgRvbhImI%2bli5Kez1H4S7de%2fauE%2fdmnQ459ykALvWGoKx9qGHh6RAKUcZTHnnDkR0DpCnjPGP%2b4%2fo3ao82qQlybZeyeg%2fzcOyPnkFFNr%2b0UUAl1xfKGMfMmHx9%2fAQ%3d%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-8N7AI0E7NI4fu6hw_e2etest","name":"WIN-8N7AI0E7NI4fu6hw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3258cd4-9924-4cf7-8c57-7e7df2d7ed5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.001","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-8N7AI0E7NI4","machineFqdn":"WIN-8N7AI0E7NI4","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-8N7AI0E7NI4"},"vmId":"d13cf291-719c-487e-8979-ae6574c8c46a","vmUuid":"4242A410-4B8E-498A-BE8A-9BCFAC0C9AA8","clientPublicKey":"MIIBCgKCAQEAzp+HoWUln6oLwQZImfk/HjwlG2JrFTtljLfhJJLFAwp5nwTvHjRZ2mrtNe/SFLUPloSTiJGQtoDIkDo4n0DLQJYhnYXLP1NHsY0T8U2tLsp9o4wx4dKaVxwu64nDAr2u0qD+0GrmyXBjrNB7e9x/nVtK62JwwcHz38QH5zZPTKwdrA3EXB5jIyIxalBT/rh5E+PxNSfl5KIxggarG/6JAlQ2TBatez+LetbnfTVvHeKep6ylA0Ss/BcJGKRZrpsGEHZJ0SIUDccxuq4PjCuoAkxNNLdhHYkth2mC5OJi6azVR8nh7nzQWxib6axBuJ5jFzOtGPJYyKFH8P1UN+XIEwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-8N7AI0E7NI4","dnsFqdn":"WIN-8N7AI0E7NI4"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_CENTOS8","name":"0.8.20132.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4ff8a959-fbc9-41b6-832c-67ecc16c9281","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"4380b8c5-0418-4891-9abc-08fb78585dbb","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA0JjsLHxVHoY07S8pR+ROzg2Lk665ReMIFy/0vnW8lCTvoiwaxA009WBN6RIeB+XbJDvDnOl4XbEqJ0zvmVLWtJbAg6YNxBnsNJwR+GcCfTw2knIy3HN6+8zj5o09UdJxBsFUwJiULLZa+ItrWkvHFayWEYFQTbf4yks6uefL2HQbK/IytEUuYFYM1LOTK4VTN67li0uaqYOeUJzCsKp/aj9hqi6WKSrtX9Hf5ESbqmqzAMiCbacls2k+vwF+W/b4/oHuTZGU5LqWcd/vAgGYyvzn/Hhh/mQ5uVcWXfHE8D1CC7f+nalhHChCpnA25OQlcmDQSB5Z4Frz3UQ6r7uT/QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_RHEL7","name":"0.8.20132.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"706cdb10-d78a-4a74-8497-2c5c10b31d14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"ecf4c152-1f8e-4f6f-9da7-b90fb1da45b0","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAxDpUxVplx88EAV7boHgMZR29cvmMB1KQqXcowB7saqA2ozdgaEDNfpU14V98jG+ump+UMr1tgrFu5yUxLni0LilI7cl37eyy0GRVDg9lg0Nfin5kan07aMRVTBiAdfuxgaeNarh9VD9GyrA6SrJETucaxtSG12ESSn2b7f1+qn0ipfHkb6UMyc5PI6R4KhjqkvV8b0NMt7urGBj41rXaS/ElbJEfKIpOB/3ymr5gYGeoXDYlQ7zN2FmWSASQC3GIN9EQr1cCpD8O6fw+jxaOqRzS4A/Kvr60Kn4/7xs3Qi4wGL5e8r6SD9FDDgh683kJycEpXVwzIdgcr791ChXLnwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_SLES15","name":"0.8.20132.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3b8cb84-1e18-4178-874c-b0f39db92693","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"09078b60-1b20-4ca7-9ba9-0d56bda84907","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAu0v6KHCys+WneCOmw5PVpA3bJYMka0anhsSsj1p8iqTtgbL0xca9r+kvxYQnFHWbO047Spz0nm/UNhw37pIzWGZ0SBZi2OKTejMeTddnOSgglGpn7cUq0rihOqHqSpRzhK8wnrqEu81LCOVMbtQ/OkQsn274U6x0GC5Dm0poHP8Pw5HnXzHfyEsyIFdDuCBWwrTJzmDI3kT6krENKg3MNfdujVVj2TOpt/9amsn6aq0p/4X1OrmK29bX73FMhJAXNQZ+quRww2TIaYIDV1vnLBfEg1m7U40DIuCk0EBc+kuHHfRaE+fMtYzzOQc4P7op9ykJ+58eqXQcItNTSLerQwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_AMAZON2","name":"0.8.20132.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31c9960d-090b-44ac-9fb8-40bc41de0bc8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"48261bd6-c812-439d-9b9e-40c9c1988034","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAvMBbt7nv3PQFQs9AGy7Z+6hWnmMH7Z2ZomihWhCkNARkrBT5SdztoSrzJJP40WPpzEW/Yz+hCDBqSZXdD/Oau1PAcNXLW3Nza3U/Py/q0Ny4p9yJHCOAW8qV3foFjvyXqP3GWalF9Vyp6LbO1r7U5NxMASpmbmeKdZc+9Ab1EH91tWuqqckiyu0yz0TVJ/mJ38aGDe19/9u2RwrnB//MRxdfzwNIh0A7DL7Na8Q+IZPhOp9gdzgy/j5rx3MtaeTUwK9ywIUaly2e5+7W7zpXkSslVyJxsbQWSb842meq5QGGJR4B2phHLBfYG1WcIUPO3bsaUnDGE3i+LUNTsxWD+QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1gjrit_e2etest","name":"George2-SLES15-1gjrit_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23234002-6bbd-43cf-9f49-dd989d13ecf8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a77e541e-8355-41a0-9558-566b1637f49d","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAsP8gc6e7SpPoeFC6nkAd939iOX9fPQGIKWp+F6cWysbuKvlrYpIkguh0GWtVmdRz/yynmhr714gliDCK1j3S1iFwc7TMo9kCSAMTWGF20Ro4tMNTHCJdObLvFiBXCo/eXv9xFjT1eyhx/yytqdxkOUtXIPcvacArZ5hWp4gDB+zfntP3p7HS78HYyYpZtLvWlEeapEqzYoIYcelMakTfIGzC6WUtPcHj2VURvisn2Wan9CmU/w/lOOCeUHYBF/K7Udd2i6mUGF1eYyO3Lbky3XOPM492nF6SFbHVyVzccWEUzDw+9Z+9M89id4QdVMWcQkzlY8JYQ3Vnd9UltOPEswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internwgdcu_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internwgdcu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cb5718a6-a1a2-4148-b2e2-fbe975aaa906","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"b9f67490-193c-41d5-955f-6615a2e1dc09","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAp2HBDQscOjdsNMZy9cuMjvrGH2pyvxX8ra8tFSaYFHiacANP1lcKS2t0L6uffi8waRiBUzMds0Z3b0nSp4Jw/l/N3CoaotBxNTpyuaYobooWhtw1bpqRDuTXlTypxY6vkZp9ujCUafe90nI8VUsbpR3oF8nzDF4tA8knMDHS7klNgC9hL+GaTfQCbCD/qou1rv81lFhOc+WziM6dr78Gnz+R8q1XbTXQQBg6nLaCcGQ+woAuOVc1/zyPvg8/hVaulmzSihADHT/tGoPyrHDI9Zqm99nJe5UStVdc8dCNYBco6rEL1wQMte6o0EGfqAPQPVNt9neSIq+vjvL2gqfxxwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1dz2gl_e2etest","name":"George2-Win12-1dz2gl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"485e01c0-32aa-426f-ba31-6015dade8065","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.001","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"1a435213-4061-4ebc-bba7-60d8fc87c0f2","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA3uXX9IP+ZVxRfrDXOW8Zq5N5NVn67P+sL6bBp3qYpddbNJpQMmZaZlZDme2j4/e5oQrcVfWXO/qIKeKaEagzq5lQWFAtLJzLiYoCqhKwJIpw4ZBtLnF5UkmoZDTCQDRmQhv46zukVzu/PtAmSIKCdvyHVoRQfqGtm10tCkkaclgWV+uQnD02GkH1Tzv4qoasRS2Pfod4fxHiQVDay/4X8ttbPpLKaxEFawhrGCdX9wkwRyKgn+C7ZVi4NrIVa87UESJVjhe4+zgBJrOiOucVzJVP6hAHrO7j0ndedUipqk0jiTSZC7tpYqfuKRLS9/ojj09YyyNtO+97JxyaWsatpQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-156uva_e2etest","name":"George2-Win12-156uva_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"74844da4-1e8f-4b59-91ce-1acb578bb14a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"0bc3a514-c3c0-4b37-b00f-6bb27af87a80","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAzCxTbYgv/ABnoNapYvZD94xJpm0jd8+cciYM9B9k2dKNvLi3Ax9zDriNiZgklcmOT4agxFcxdWSIVJOWxnoQTqD+3G06TLybeDxz9eZJyEhpl/NkP95vcgBxmdQC5ntzM+vOpvEuSz3uGcVh91QoRMniztji/fRKMt8iZoka77ZVdw0aiw08lO9BSmKY4HLpByNOx+Eq0A9r8V0+Ma0e7cxiQvXGu1MykxInIdkK8pzwYPfNHJlLArXFWljTUCaEdl1FAxDu0PrXINjoMPGsRkJqNUoXJc3wx68VXixR0LH0vzCzwCksfKQqVDd9CagaNHsvbP7qqQ0drF19WOkivQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-8N7AI0E7NI4icrzv_e2etest","name":"WIN-8N7AI0E7NI4icrzv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dd93a80f-6078-442c-8509-b689b8dbc500","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-8N7AI0E7NI4","machineFqdn":"WIN-8N7AI0E7NI4","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-8N7AI0E7NI4"},"vmId":"4b5ebbd3-04d1-4570-a71c-5150d3b3502d","vmUuid":"C5859E41-223B-4589-92D0-29B6E86042A2","clientPublicKey":"MIIBCgKCAQEAu8ctDzlKqcSBM2PbiaPHgLP3B738fjYRHI4jiAuk4qkVn/gpRplfMbx/E1XtOJX+CVAiM9BBXpxEnxdtG9g5hBqJ9UP8rr8XANViWCGeFifrD7mwGLI4uveKRo0IJbvkeIRvrfxyyxXfqAcyHG7N0R/yWrg1CHw5Qg5GFMwa2ev8Jkm2WXkoMCnGEqYdN8tDGKqD/eJlJSM8aLLRCW5J7lofDQ5MjK3nvckU3gdjBeFSNDMX9URytqmY/kq458l+HyBEI7iIysHL2OkvneH+d/e1daZn/xg4wiVH1Co6rGbRfnPukF8UoY9yS7kncpTgAim/XsoHWft5Bv4mfasiWwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-8N7AI0E7NI4","dnsFqdn":"WIN-8N7AI0E7NI4"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-8N7AI0E7NI4rlpkz_e2etest","name":"WIN-8N7AI0E7NI4rlpkz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d3eb34d-1e0f-4e5a-bcb3-dd287afd5b4b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-8N7AI0E7NI4","machineFqdn":"WIN-8N7AI0E7NI4","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-8N7AI0E7NI4"},"vmId":"2db3167f-4807-4d76-a61b-0be37cef12e6","vmUuid":"C5859E41-223B-4589-92D0-29B6E86042A2","clientPublicKey":"MIIBCgKCAQEAzrXB/3JR2+xB8O1PNHH0JD3VKdqIONZYIxo5/skXiOA5Ivr1r2pgeJN9peE675AwELFj0IpXNv3JkjjrzD/9Nz8f3QUH6xOw5dr61QnFnLdOYYCuOGiU99G5t4mv4HeFur8aY3qfxwcv8tciHLXtvumIIFtyh0pPBTDmzEKZYGtTS/WJT0vjuH6zDncyM91C7vc9ekQvXCykY+IdKvldWAflG0ZiJHG8YlwEOzK3q4mrZ5074pkgQ7G2rsGFJEnP1TJoe0BV5vsmJy/JbJh6q2WzX9/onHgoZcruxEgNYJMKUPGcFc/RTDmRGDpJQB3t0jymKNk2f91BxmxylMxJLQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-8N7AI0E7NI4","dnsFqdn":"WIN-8N7AI0E7NI4"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1eaus0_e2etest","name":"George2-Win12-1eaus0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3494b4a-74c8-4454-a602-1e834e7d688b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"76d0f85c-0de9-4ead-a262-4e953dcf5d19","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0Z7faRBNbu/MFppf/4JCfA0Jspra/YayX7EJeh2ChpP0lezFB2/D3vl4xY50PJa73QZtcdo+tPC5cdoH5scev5la+pcHpV46aUNkzZ3oGkHzgzaG41tfrA3T7S5CcXCoOtc23E5Nqs2VcVNYd6Jp+u4axOiPR7UDLIsKZBEoykJTaebcD/o2Eh8d+Pl4S5dJLVM98IJ39ptBuGYdV8a5xjYjcxVAurqSLwoaEeKjB9be5NU42tdpcJ/ECWYoaxNmPNr7Cx9FT/mnmBq5SFc5VbGqqLqQrYT8xV52XZGJPqBRM6Py33jpr+0FCQO1/T4vtqX0tltH5AP/wtywAHHuYQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1uvj67_e2etest","name":"George2-Win12-1uvj67_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b5bffb8d-680a-49a8-8d9e-3836a2ede5dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"59f23e4e-67db-4eb0-a3d7-d7bdae5d320a","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0/8ottXPCpqcPBUbO4nmtFJFEQ4Off8mTCc8tD6MyVzNP4bHYDE4ZLwpZJobNnRHVMAP6GE4sOR5hsVpkZm8mgXXnCd+Qg7HF4/82tm4S2yXbUJYtSAhVrU6Z2Pq8XX7VGITRHbxm2x6p3zPOaT0/U8c2J6rPKK7p4kTkLuuNHH647NDrXIAxSvg6MCxe/cPpuk9fQx72g/47fo+RGJLk2GTeXm/LKWPv1m6gHMgNoXnoBYSyR5lr11tGZvuyc9+eqt9mueSTxE+lttC2q0FGj8/kIEC4DBjl9jYZDUGDnNEJqsLStKPiffJbeEDugwrqMQhRpP6CVGxDho8vMgo2QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_CENTOS8","name":"0.8.20132.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39e93cdf-85b2-4627-8a09-4bbb2035a2de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"d5350685-3706-4690-8462-507b3f503a0e","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAwTtBkQ08YPZe7HZwOb+W7kIFCJ+/Vzlumv1EeBqUD1D+8zwjwK3UcSR55VhJJYfZb3pnP28RLtiiX9WrB8X06At1K/5pa8SPOQKMidnmk07p0A9hbCSPAr/92P2VP9m9k3CzbCyq4ZzvqbOrJytvD0MUljLfHzGswI9tJneJzySCxqRpTLFXP5/0tuDOaN8gLoZ7ImJ8ZgirlODZ1VOuhCC6wPO1aOwq7iGgcV1VTU9X0btFqWvFfDP6eMGBoKS7BuswJ037qoXSFnGqsj5VlshWrvxs07uDW/30ZvIFmo6lTGrMiQs7yiXfblIzfT9BP62r08Fgky9lDfw4dFQViwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002","name":"0.8.20132.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ef0734f0-9e78-453e-a866-771209740eb9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"387c6e7c-5b87-4de3-9738-8f450c31b903","vmUuid":"C2BA7E28-B235-294F-A1E4-563E14226B1E","clientPublicKey":"MIIBCgKCAQEAxzNZX5p38wtkxMC3x62tkRCcsv58jKhtuSEdJX484LV5Zxr+43dC9JH0IV+Op8aJFnRB525dOGmCmQHbVqCHasUTLJ0PsJrAoAltG67aFKthUWs/lsRhvbQwTDFIUIRX/TuzDx79FieghTtwhGCY0D4hU0kROsGYOE+OU+j6fMtW0JgXM4iejqZDorX0tWZvsWXsVcAciOKuCgHeuwOiC/FIQNDaT7Kk+IdFlM6JeUOMfrPWZhO1ufjVpbQpd8T6njxa2CXl6g+YLJM96U4OWMYD25UdOcqhMZuHGhKyA1Mn7IYJI11Vwk0BXs7AoeWOz0XspkBFXPJDrbHCkUt52wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.vacfwbfucjge3ocqqcpybczljf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003","name":"0.8.20132.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a3f6aaf8-1667-4274-8c7a-5dbb8ee66c16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"cf1e655b-f7b9-4adc-bc84-2d0f09624b56","vmUuid":"1D1CF3F3-089F-604A-B40D-04624F77E29C","clientPublicKey":"MIIBCgKCAQEAwA2/7tJtjehWDGWPUeIYStbpLGsYS0FMFzDdIvDMV6qF7N05T4dobHi8LZrDRTbAQPCoDgeJ0Q3ACNdIi+5O6Q6uwg5p4q0BILZDNdo2qY4CypLsREnIqt7GV6dxfXjNYKo05PdsIcpQNZaOLPLxtdi5Ff0/eExRzWotDUcxKqJynV6WT56OBKHTryslNRqWRGZ0/WuVwu5TC2CjnNnsnxBrJ/W9N/NDsL9PemvgtarWtAjMiNOghfyXifVNaxTZZ8jRP7iNvZ1voLtD3pdjxhYqwmoXYqgcw+c/OIOvc1Uh6F2SO6AADegd4WlbkI2aMk/n783kBf1+weUSo1XGuQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.j00ifzopav0u1gr5crzbvxqzxc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_RHEL7","name":"0.8.20132.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3f98ca0f-5857-4f17-9a50-67624e73f088","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"55647cd2-a886-4d69-8569-c3d466e7bee9","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA74Uun1dU8kkk1ijGU9p8kL0JX4RKItyTpEpKzYK3hFoWuVn6EE0/4h+pQWr9kD5zuEp9VjsoZvG8uurJ8nmlT++OG63HA6N8hal+yMY7NdLVvXGBOZJHAeDtjb5F0UGnLmJ+woyXSRO/hUJFOA0ZFySdbu9RotgL0Voj4c42NE1QS1KpdQ1EdLM27vEEt4pwens98WKzjzwJ8DnCk4uHxlOjXH7GKiSBLQ8UqEniOPok6bx7lmPjZJVejQ1+lxKjlBKnH1OvdXKlsf0irTgk5DxN33ESrBVaN1Z056gdOq2g+mCrWcLuE84LKvVU/60jOd6Y6vfazar3tBaRLbZgjQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_SLES15","name":"0.8.20132.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e05e3828-9ba4-48f6-8274-9e8d1b56356e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"45088455-9f1f-4f70-999c-5ad0d84a4b56","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwDj3rhQGSjLoGf1XUQUt0oBmZxh+uW6JrByKAJ35C223h1blXNPjXJROuggpipSPrRQedh5gGw2K9FQWM8+q1cWd32t5Bel8b8asy3QcFkBnTZxF7NYLmzmgvBj9sCZ8J24T/05IXDdYNuMb47WxPk6F+GFBWM8POZw7XOgXuVfD6UFageQ73WJPxlbECsNTrByC0rTZvo0R2wv7O1HKYr/PyFF/Qxj0p3ch22rB9GEJd/2vrR9UvhcIJjflcsrHklRavyf7a4yMCerwvSQ+BPfvy6w4y0+5tYYVV7ZH3P3dlWrq3Du3NOVAOdQ3CA6VZwsQX3A/q6jf1+zjrrMrWQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_AMAZON2","name":"0.8.20132.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f03de612-6b9d-4144-b1ad-da61c7df27a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"284058e6-d8d5-44d3-bf5e-f5b6ea11a069","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAvAnxx58JY+j8/77zMdiHxViElzbAIkClXPrsOMAyOMljoADLQ2GUI61uhCMFc+7WEsaDQTHPoe7kAtlPGSB/BYrk2q7AdW8WEQQFau9+UV1oe0jBCLBpwE/+6n+qjqmi738wttwtV9zhZAbTb3SvgVbzFvw78+fgGI5mQnkMeCE6OoUP/nI4Mzjhx9ABwo6+I4x6Hk1t9rjzQbtyYCwauSSvhoqokIldytPULCYsbA5W7rvT8AD/xunfXaTbRL5U80/nPcua/EnLTCCvGx7B8pYCs0ZX9e3xWpidSK0LGM8HkYhdXGzjCrF7yDPGajnJxxmOVdV8EdtzICJARGcJsQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1upv46_e2etest","name":"George2-SLES15-1upv46_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3490e9f4-978d-4ca0-afcd-d92fee5e3160","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"cf8d7415-bc09-46b5-92d2-f9bb05de32b5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAv+Rphp4eTod2kahBK+NxnEDAqA6/I35xjZpoI0S4CZvL4iDSCwtk2e+C+8JJuNAgWEsOk7DvVRFGBfjdGiTLVyhzgnMTOWcoMTBsVjVIVPiC9kJAr2eSe1rK8YrKdF8VOm5NqUrfbDWMmCDkJA0sMYA3Jb5xSZvX+CHMi/yzJrEeVmkOD8I9R9s8jnOzydqSKhiuB663mBBD1lealttO8/Huw/EbEpVWN69CmSVmW0M4Cc6RlNKEHMvqqxocCZa9Z1F5ifQaW5wlSqjbSCfaYoLCkbuqswrrNNcaOhTDDdF7e7cYVf7bIKm96dwFjk11H/ZBL2oxPWSr35BYTZ4RswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internrozna_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internrozna_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d6150de4-f622-4347-a734-0a904f3c78bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"97ceea4f-4f47-40cf-a870-e4ea7e3d7f68","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAwWK+KHnlREPwCIo8CR47d7fOM9TpT+BsT91kO8JRajvwRoAyfBcvJlkQUNvHsv4th17WfGuFKgeFspRt7dHs+ZCL0c8S7n8O7MqfzPaiZkw0aEdplC3RyD4rs/Q52FKliUpzHegQMfu/dgIkujOTym//5cAsi4XUEfmoOFNLeRmGHYIsUdrAu1VQ5ztgRgC+huBG/EN5pd78EbK7oXc7/PqnxIqlF+W7UO28OnKjP79CJzKrdjMPJIW3T95cVR8XyWeicccCTSkhuCAXURHKP+GK8T+o2JAqX5EYIxpGXzifCUcUWFuhy9ymju6e1Y0xPC22gdO+0k+B9CcWf8pS4wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8904cq_e2etest","name":"WIN-02FU1ULEJJ8904cq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5ef2caac-b85b-4ae2-b1f6-30936633ca35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"70e1bada-9984-435f-aa86-bf93c76dda03","vmUuid":"74A418EA-E422-4F3D-80F3-A27EFF134897","clientPublicKey":"MIIBCgKCAQEAoMxSCygnr1P7HcOtHKFKG8U6x7i1El4EpDBXM3lil1eMSfeYbHI/shkeONSggkrxZTASmLrLnBlb7zRpTU5ICbEKxqQnU7Ril0LPEAvBTHhUNedpkRVvBUO2tdJSgKY9oAiu9ZcSYND9QlXu5I9GfZcvEfAK0ppr0+dAkBXVHR155SLpgVgkmEsBa/3T0xZgI01dt5zBkKFqAPlW9Szzcz1bXK4CdIgEXwXDgxntb7+cNSGTMYuMx0AjksOnU16vdCamVPCZHIf3S9MAFLJQ8wgyprBoJvAjpAEY5rlev3eIel7+1GkYEe/KW+VOIaFE4gTAsSeNvQr/1PoFW1Fv6wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8z8yb1_e2etest","name":"WIN-02FU1ULEJJ8z8yb1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0e945d2-a5af-443c-9c21-12625ca3627a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"698c63ef-d0c2-4bd5-a11f-516547201e31","vmUuid":"74A418EA-E422-4F3D-80F3-A27EFF134897","clientPublicKey":"MIIBCgKCAQEApXHJ04xLKtM5Tx3JkJBkUl6bCgl4we2qmDaLXirXvGlic1tFvvk7aID6Yblj7N50s9fnAPTBySDE7Ae6On5VxejtTr8PJsXVvwM3pT+KFsF6N3B4LgfOeegl+mV5Q89j8q5xXjnNnhqkCbJlGrJhF4pUnJclaNxmFPTcJ37zMg2K3A69YvPgUsurV6maUkTVQjiDZtJQ8owT5qJ9PUmdaw2i4HuSEnSDPXbxvxOBuMQll7uOHXIPCygACuj7h4SIluKuHV2+uZUo10+oeTrRxcYZOmrNqzd3xbpqo/b4gOx/0aBUMND2vDYfEgYc66J302K9ABYCCkM981vcxU2HRQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-14fskj_e2etest","name":"George2-Win12-14fskj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c51d7a79-c450-4755-8691-f0f9af9776fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"981516a6-6cfa-4f78-b303-b744f7697db3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAqqiz1CYitN9N8rYVybynJ8czx/xO2znwtqc4mIMAI7v7aZhRMO4W4aaROPM4V3CUGyVvE7zftL/YoWlBaknjsZOJBY2tZpChbWVKy+F7zXM0E+WIhRaOMe0TN6UtYwdqAETZ8FINNEIXN4UgSYO6CD1J/oWVl7uueQEIc6jJNzVd5AKXppGrUijrp7mM28YirA6c6ZnqhSZULIbCz/ie1dD57Wwv9vlXdLyuS2lXdnMUx14UWrHNrXxw1jzJUAZi9OpsWue119acuTNmnIq4tQ6curzgXHq/Sa8AD/0FKT2YG1a4c+6LGm5EQPeAfJexvgVUwjoF/nMm90yTJMp4jQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-12lrcd_e2etest","name":"George2-Win12-12lrcd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab3f7557-56d2-40c9-b0dc-f83c616ff509","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f933867f-5131-46fe-a8df-76070e6a4dbc","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAw/S6yqipC/FvWgHL3RsIHnyS1Nc88AT4w+K+9uTvLwxSKm2GWzTweC/sZcgDOdoFTWa+pjJNDmfd0Mv00xTxW3/nk6ejuyJ4GhxhrPqfu9H6As4j89w62o4IK25+tyDZKgIGV68096gUiDbWp0YxIKz/5eVlfOvOu7K3zk4J9jruS4Rmzwkwklw7zLz7iNbXAIxmj0WwTFlCq03lu1bw9qdMJLG6yHR+GpebkM9ke1QQ1InodOl4lSxjRVcbegE77SgMPPd2xETvERmnFGNtjYLpdgUIHDV0LfTK/X24gfohu1UczV+JYExI3zIxWzGN2yak+HZOnkJlre8SbxhtvQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qouvy_e2etest","name":"George2-Win12-1qouvy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b6288677-9168-496a-9c18-72a39ed50e7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"03a29982-9edd-4474-aa2d-04ab6cbb8311","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAtN47Ld+y/l4uNorbX8o4JqA00ZAdac6EHFll8zbru+yrGw8IPMHosRkucwY3t8n2fq95lzVqTywa+Oa8j9w0pMxmgaRvj2lrOfm5aH3cDJqrqVYGpdxhAhp0LlCU+i1TvHZQIgslLvC4bAOLEOZUHd9CNZxoUHthyEm4f99ndV03CNBPJBubUCn7enLFj4HPex7fyvYcjR99xpkD3elTTGkNa1vpeK1hK4ebofzE8zIxbt9vBu5xh1JRyYQ9S+aMQl30AnQmhbyewWn4/szT7PRGXkbuognI2+Yk3Ai+Z7fmq7TBzXU6ZU9Pm0T0++GJODLYnxBb6OibvmuoiiIV3wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1v958t_e2etest","name":"George2-Win12-1v958t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"916d0211-7d99-4f43-a3a4-0d29f197b3f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"b2574619-ae24-4d59-95cf-241e06ec6b91","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA1mZjj6g2QApu1lNmYaARgEGa4JkcSJxMCNzDgd44pT7fkK+1wTfNgOizXHRhQilZYguAnG7bnXw169jjm6nLD9bAAdaLim4CrEmtIoVWK4Piw+lnjxEBz8kp6fWDhWTNU0Hyr7fkBfm7iGmVFvlr38LEJAdj+p0TitLuGpS31rHLmdEMPjZNPCe5qE5KgiQ6SCA9rE38nB3WqCJlwY/YUJ/0uA87/3+SUdV5wQ+31xPc/w19YyIad2Gs2wt+XCxc6JZGwDmnpHEZh8UTTFpjuCYZWeOrNkSehC4aF/bqXiB9tC8JxVVFDCm/D1ALjvSI1+UfyUtLL5p45m3hPF+yWwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_CENTOS8","name":"0.8.20132.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"83795b92-73a7-4842-98ab-e4fab5f48acf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"774e8a4a-712b-49c1-bafc-391f93e09631","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArjwXbPEHZs93QOfZqBWuj78EP8yWzkgSdWmXJSle+97k6wkOh5tyw2/3Zw6K2iTATtFgbxZuagL5a4D/CRHWWXazgyxce6YZRgQDtWsyNa8Goflsnb7eu/YlMWUfoRyvR3u1mpsPhfkP9DsNnTk0Dmp6fQC0BlzQVh+ym9GpyAbFjp3dWOYOyVdxFtC8Yu/98bIpTurMhxMGN8dTyYPGYOODC9DM9exU9zqg5KRn8STQig9m5xtqyoC386xjLkZSdnIaD2+fn+yDBI54NB3H1roBSr1gvPSSsnhC+Z+kXxmH2S4+o0FPXjrFQdRmi3kboGo8FD+slBO4fkU8v/mbWQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_RHEL7","name":"0.8.20132.004_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e905340c-f1a7-488d-bec9-7b2ff01e1f4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"08db830d-7672-4815-a778-b1de59c7a68b","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtI/CVJ/Kv1m+zEh8lvXU08cViWZ4q/wN+u2no/w2nrEV3RLCSV3eKo5LBS3/066t7XG3dCyqyXtB90eDVhCalI+79MqLmGZGVhtmrLqj1s0kh6ofaWA2szFh/Luues8Yl6FbSspENOKsCVIqTTueSLl+KpsOqk73WkIZh9vJmYoxkNgiAWJ3Vf1666vGFyLB9L1g1np1BnwTw3zEzaMLrfFI0rAUOKuJ/vSXYSuXJIEwNzkUJiky1yTgStkTnIGEBiZxZpmjsZbb66JEVtk2F0fL2lAEu/3YkXvPqHrVWaETH5JCuoxIBtgjcZa4g5Oua1oY3BAnfP7Nkh28we1URQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_SLES15","name":"0.8.20132.004_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61a623ea-1c59-4269-aa96-6d2983c56161","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ddff1d10-741f-4586-a6ff-2a346709aca5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAqZFtUkGbT0HkmkrwFEtPaVTNtQ6dXl8Lyrpn6M/+z5hd/QzrPn7lg2XZMGZdk/O1DC7Dpki24lUucwS4gIBvpaKIbuTmcQ+E3W1IJTr+S1pOskf6oytzvc+61BBGrXVi2+b0mcTRWyp/ku//zliDcSJ/+HVHkKqPel7N93TWTXPfqbdfcXj7Nsv51/OePu5aVif/3GQT3axeSGUqO24hWMDMKlOUQJegtiz6ms83AJdNf+O/791b3s4l4a93x2zV22sTw07v1xvobos3rvrPzsBNt6GdjBc/7KNfcm9TXtFu1od844drMzI+2CM5jp6HgEwZA4hl+XAorzMLmthZlQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_AMAZON2","name":"0.8.20132.004_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d366390-130d-4301-a73d-932a2ffd1c30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"ac3debc8-23e6-4d01-923f-96190f4656f2","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAr7zpo/1oNXl5n2TDvroifWnXNhmTaaFc8OuHzRHRAH0rXWeI+6s5hzu21X2IXbkyIFchhPm5OQixK5tahxALl0KWmii+4p42PdQStoQpfsYt7mDfZBC3NNYct//JUCTwphFnLqbEHqEFtIzk77v3V+XbZImhTokLTXPlylMef1s+P7d7NEuEv5p4LL6LNhKTHW6IK3FKKav8vhj3JMby1NcoX7eagbgHdT9iXgBDzUQAKSjefV3d6ZKr1jb54A0h2f3BGh59jqMM9ob058es3XEI6foziemEdr9YyW09zGiXJTbuYS2wUWHTbI8aPEz9OavJ0pCU2sYy0DoUJU3/kwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1fkdc0_e2etest","name":"George2-SLES15-1fkdc0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"163fe101-33ce-4327-9fbd-5b6eac0a985c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ac8b381c-2636-4c51-8bf8-f855c4ed7588","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAr/6WCXIN/Ri+/p7O5HbEDe+kintAhclVf0W0a1FASXxe2hMgANG5EdeGZWNsYMhb2ad+ymX8/hS4/mSd4SM+YLg7v6m6Gysc2G14LxtT+8eDRAOINtZoA1C1aX0V0E1gk9fr8eiDt1RkBTWQVsgwyvHyxQYw5+oEAq95SZ51GVxhnwayWLI7KXvr+yju02RUgGkFhsewRYDlKqPcjIytU+/UrgFvXA0d4ncQ2hdSP5Pr9x1Z70h4AmfT4yZ9QMUIQsGMywub0SX6CgVeqKa5v0zTTTyVhC+M85RKZjdo/87kWkeBVnxe9Kl3rPCBSSWB26ygKTx6I8gs5aPYynF20wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern7it6n_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern7it6n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8358ac55-da1d-48f3-bb53-0e119b8c9710","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8c40d3a1-d43d-4ff1-af3d-4a53d54926e4","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA2eyu4APViRvngh94GeHgfgU78kp9GbAVHvhbgodZ0bIh9SJl5+xwd+mXk+VvRxbFQmQuXGUEXZR1Tr3Tpd2gVRmJHaavaVVN8EJ1RKuh5CUONpjRI/1YBYl4JxU1Ka+XLzGEAZNPBDm3P1NU6CPs7KRa/gTs7Epm6wpd1IqcPVPGbibzBMsPiQcFuXvD5f0aieCzdBzdUUI7wmOqXFVstMxil+9dPUVYJ1HzWuaLCA5SZ3FEVubyMEKNR0h57u22C1PkC6XVJOp50GI0hsAyNqQH8Sh0jte2kE5+PFDJqiVk5Hf82WaA8kOQnoo6oedPjuAif0CUwzqkjbfYEzO/jwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004","name":"0.8.20132.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e108567a-1aa5-421e-b1ee-ec7fe0d6dff2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az408"},"vmId":"6a3cb0aa-e6b5-481d-ab83-8328ce1f1cc9","vmUuid":"5CEC16C9-7CBC-F249-8BDA-2883D00CA0DE","clientPublicKey":"MIIBCgKCAQEAzudBF+FJISzlU2Xya4GT9mtXRSZ0RyBJvZFNb6fg0yJhRYVsXWsKniy2srn6lsuqRPwW2b5kHiBunOcM0e2YRnX7HvroUyohOKK0T+aXl2DL1R+VcabPhFjBrXb/SMwURH2X6cflGgZ7mbxo432kaMYKZvmlnCh12kBN97QGwJLpa7G6Y/tbu41vwA584mMPSY3bJ5lDMLuqfQ18EZYxhSEEMP3D1/YjK+Y+Ekr4j1UYTcmMJbZrgdEnMyNebWpUGp8BBjecIL4hnm2+5bxQvVQjZLk7mBjVdbHlCCyFXbSWaybwlqlmPD1MX+aNqgYgQmYTXOAT/XJN43EUsT8Q/wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az408.4k0o2epyryaezbzsyjzfdcfrjb.gx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8vs0up_e2etest","name":"WIN-02FU1ULEJJ8vs0up_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6c559a0a-6ca5-4b3d-a5e3-3514bff16f22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"384a1f32-2177-4569-8c02-ade0abd16c67","vmUuid":"466F7451-2E27-4839-BBB1-3FB815D2A040","clientPublicKey":"MIIBCgKCAQEAttWCU+UckObeaGMt9TZGA2ZeX6NL09rJLPueLHhDcBmkoQEp4y2OpQm6v4doFv0GArueSCca7QZ2FBVJosCkmgIIupX+3J1FVZd0N8d0HaDg9AFC5VkLqB2FanLtRQBT6yE5BRa2lx8HJqMgy9U7f0UGi3nx0zIEAGxmiqzSacxqsdPIg7tXIyB0UccFrHhsG4u2UIxVmaMrDzTeutCXP0Mg+OqIhilO5+a+QFycsf9AOM9gi7FRzUerM45xhVvqfDJapJqzGz8hJNILwMuuX7ftHDBkBndMYACDE9hzgINBmMLLO7iSEiKxW9hWZlqkgX/L/ZHN7JlG/gMx03xthQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8gi50b_e2etest","name":"WIN-02FU1ULEJJ8gi50b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3d477249-6d94-49b9-95de-1866fbad8e85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"87f7d102-501d-4bfa-9e3b-512e996ed9fa","vmUuid":"466F7451-2E27-4839-BBB1-3FB815D2A040","clientPublicKey":"MIIBCgKCAQEArwF20VXHF8e1RvtTCvvg1sU3JpHFldWeLCZEz5tDKOHpq6GZJZexWOn4eLm2neiIvSUYoMWUvlhAXUCA2zbaxQ7cAqQgmFxMx2HAJ5QVQ8nSVt5jcy1zBagGUPMpCbfXyGJ6XxsJlmeG/DxxTzbyqDhwt7Ou6EqTh9rK01mjmFvj0lSbsbvKq3ypptkgl4eXygPDRgTlYkcfqg/1rYXM7jRAM6i6E3kjTTQ1BE9EJzqk3MYu3zcQszqbu6wrp4a81LkrtAr4y4WHSWHAo9YKyQIVILHS6D+EFHxNy2Y7PQmDhpWPAvLwHA22GEKHq92NxJBhhY9wPrvqtmwVPSx41wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_CENTOS8","name":"0.8.20132.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4f4ffa6-0066-4855-9a51-80e620805020","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"8b210f52-55e9-40f9-a5d8-71b86d45b7af","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvqgvWvd7dAw8m6hg3gLJeOxvnp1S91n4p322QpIAGpD5hrG8HpiNRukogYsza/ahRowY80U3YPd53TaBBwqnC8SF00AUEjm09nuFKxQTriJ8GuwopI3N6VgjvGRn4SKWPfSd04nn3i2Rm4evRmnLCRlWWvpNUtohyQ38SHmz7huXyIwGyr6IhLOXINh4EnkUn2Hz2pN2NwQKNlVtlpsW6490pi8qV+JtpTNIXRWuPcb+aXSHyHDSTfWiJKA4W/TPXNSCS/fj6M1gM84evS4nyJy9hIV/6vr09tbrIyakTpvEjfT/B2MVdcYFnOWbid5dktcdUSWXEGVVotBf8U3IjQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1bciu4_e2etest","name":"George2-Win12-1bciu4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"567503f2-9293-4f80-a18a-2157848c48c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"82beed98-65e2-42c0-86ba-053310fe571e","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAvIKGfHEUeXXFjrjGD/Mwf0CM39cGep4pHYFugT2A6cl1iSwhaZfSCssT6g/HxN0utPVqUl555P9f9nGOCaZACsBSuBlJ+gkYeZkn7begF564ZmytdUQN+iDW8G8kDRAMI3CLbkrtQC+sos8c5ng3Gxn1H/qOt2Xm7jbtOavghYBPFcFiS5ioFBlsnErbqHqz6I51pyFuUWXc//Eu/b5F5CShnqUmToG0gwRaxndyxu4bQpKihRtYQEvrlGezkzNrBXoylviAZv56SxVNmR+WKCHfJE1Ax+m7T6D6D6Y70TRLLIKWaINbrJbYaM2wpv/jiOlavKgj5oLc/dh+LCotjQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1c8lji_e2etest","name":"George2-Win12-1c8lji_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8ca96804-0712-4cb7-8ae1-93d879a2cbd0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"a58bc268-7341-4467-b088-0014b76f555f","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0h8oOAGqjOdnpxmDnZjh+2g6Wk9YlAH0TclS0YEFPXaP3grh5Gp0Hz0zT4TMqAcoTQz6R6IJBXoSZBg+TmdmNHPbkHUAN3OLG7eb9ivKVeaPL8ZQBuiglQHlZP97BabuTt96Nbj21BlvtuyKY8sznSAGuSRQVGqSfb1n3V8L88sU0PE5q77Kbq1/FkEnxociabdMVa7xYlrFhtKeOseHiHF74cMZ1PuxsiQGUK3rkXdSIJOu7hcrtQSBeGc4B8kcVmV2JEy3ljve8SvrSmmLJ+vvQW3wMfurCXqz7+pCM2MuA4hL3ss29qrmAIeOCEKrZpQmxLvuvh1wx5lO4+vzKQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_RHEL7","name":"0.8.20132.005_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dee3167a-7b92-466c-aaba-882aa8e658c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"559d8e1f-5240-4e2e-8eda-6507b0d355e2","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEArtiqAS4EFTkjbu/g3vzJ5HZ0xVPHUkZM2bp5Lpp9PhEzQTucawRTt+pc3q7n6p8Ck8vIbmTnsN8nyP004qFYWV+HTybK3GAbKE5KcTGF1FnMt5AYgyMv4L1vfXnyc4XtUk/Jb4TvA4dkUHeRr740qT9UlCY5FvHZ5koC6wWK1djDB//UXco9YDXisxIJsobU/PQ0o08k2TMM2eK4JXiXwIxyByNXYOw/Mwz0jEy3M65CNghO+ras0uwwZNS/2QS0zhtF9vtJMtEEC81EZXhpUGvzrFMtkA1hcGEJMbCCdCyni3YH/A8Glx99w9LGq2wvSjhasITRYny2XRHCXS9W8wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_SLES15","name":"0.8.20132.005_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f4f9b5b7-adb1-4023-be59-0b9ee35812ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"14ec7122-9949-4d04-a4a3-d674483acdc4","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAu58UqvSVbE0RhNZOheJLtO+4hFLOvYssrE8g3Di4I22EgFmq8vdbSKHpW/phrMaAB65Uus4xKaGULnUOo6c2gjWP9Gu2qpwN4CgwkOx33iiuFrAJWxBvBZASwWtxPcSk8jRUVpSMZpcmhkiHlc7P/FQfiODtgi5BOfqdj88kegxVqpl/goC5PBXKaXKgcxdEVMdk6n+hZyXgqpqbjxBSkKYwXEeKytOu9lDA7loCCCLUNd9Yc7c23i/hW9zaLpr3oiZcjYJGe6PcYnnhWUge5i6Q5yOAunLJg22NaFgwjcBKFcZMybzqARh8trjnQ6vNv9oqvUyAeo/FApGXZOYecwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_AMAZON2","name":"0.8.20132.005_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98631d1d-3182-41a6-bd00-108e6cdf1336","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"d2f05234-9936-455c-a007-83628c75fe17","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA3urhUDdPb0knNxiY/h9+pXNzhYOedx0gf+2ROCSbCNMjEvm0VZ8d3Q8SFZMt9ry6bqopzqK5mXafz2puYq+JDvm6HqJ+9ymjLFgEkGeWIazy0UP+pd8xRLu4yO2ipt3XEFta2WtJ36V77F/8R87+qH50qwhSgtV8x5kxgs7AkWfAssp7A00XQTlkUQvoJzdkm2aLqHBaW4E3c63jSoqVY8q6X4XkDX7rHnvRA0QyLC2VT5vMapmq2nB2+P4FcRMTfwt42m8i1hJgPl/lZ9aYStD1jOY+uKvueZ27QIpiyotDgrvjI5mxYBhYUf6FXbuw1LwBzRBILNnPgVniwURlQQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internnks2w_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internnks2w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"643acab7-e743-4aa7-a66f-3f74bbee33a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"983b2492-3b4b-423d-aa2d-19b359d31ff5","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAtaHP2HDPCSCIF9cx2bCYcxIWGVS/78gPzhgrabVrstkn/CtPaN/RYWbvOXe91G1LJWvV3kRF0aHj5C30WVZ1qlyOnr+4NszbXZzLDSR1/an/3CZ9ChTEskTo1E8qJV2DED5BeuWqVaHFwFVcRD/NYL4l/GNnlfjFDoZWo92BFc2j2go5A5EncuBJDaCZPF9dEsyIjMb38jUms/yoo54CspSXmnw5qSV5d3rKJXljqvfyUTAh53Nv5uYbjy9CaQjt8W49DgG6sHeh8y1mRv/Orz3VPIdIkZkzNVQMAmqum2uaOI92gH+mblPALRX1cjnuBWnOtStLbWNkqt84Wd2eJwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-12gjoy_e2etest","name":"George2-SLES15-12gjoy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c845b6c-24ae-42b6-b04e-a396456e3ce1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"26701144-1954-4766-b9b2-146426695855","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAuFu5tqsMvNeCJEZkeRXJd+QKszFKd1NDDa7J87WjIzgCIsaiizow1Hj71jB6LXAr54fbKmmj/+4uqY7NY1wWiZTvaxCDKQ5liMlalTnB/rt0Tnmd2v1Yj4E+xz6NhEoJYRTNQzflUBVJ2vHBNeyREVPXHjduDogoxSIPNFIYC+myoUahKVSkF0+ZUVraKBt0eYoDkM9FQiSeCrbeZCAuQ2yO9BTGil9zIHrNQy0hKPG0q3by1DD16jx+UUgJoLwwjpONsiIOiQyyByI6sNxAq5HMAZ+Y2kCYKwEGvsZUvjTBNBzlQBunKyGp/G3sOmjK4/0iDMpcAl4SvmmuMktAfQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_CENTOS8","name":"0.8.20132.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"83144a79-02bc-4fce-b4f0-bf129b3c10b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"a12c4e1b-0009-4cad-9c0e-3c59d6f56540","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArZyDoBvqEJQsTX1OuoTm8+LHa+/VTqeVUZP4lX2vv5Bv6XoQ9VHA+vFxTSBPAaFvQMn+HCVTNpKzehPx//qitz1H7e/Dm0RpN1dXyfQKPhPtXoEyIxtklYKzLprXpXP0RLnGHTw4rtEubdbXckDOBbVyA4nKd/nUEyNmObBvYaNo2ssw0gh14QH7E+QN53/66Ov30yfxFHSKNWryw+oelutE2b6C+gO72LHYWF3Rp96i4aJKsi18CYnNoiv54gkLDn0WcLpt1ThpYiennQCnqDdOwK8/ja8uhLrLWZcWHSzsaNYFislSAfDk9PhRVqa5xJ9r/LCwVMcBb3RE/xol5QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005","name":"0.8.20132.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4391b1a1-eb9b-4691-ba69-775777d9008b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7b8c41fc-e52f-44af-90d4-e6bbd7361d42","vmUuid":"F04BFC72-B075-6542-8A28-571BC8DDB5AE","clientPublicKey":"MIIBCgKCAQEA7EyFaGtT9mWqrGu2FhaTlbfrc/WcPBeAz4uqnpUSZvD3OimSRsbXc5RqAP1ag/hStIAysloYIhNYNaeXZVEku9FHFVqlNonkjeA0VbgmUM1GyQFqwzd6BZBKqFPGyf2mczKpPc0M77bqiP6qtRFtROYSS7ArDSGMAGrBs6H4IDDj1ISMoJq+Ygcgzetk7KI3T/EfdoR3xeAg6HsVlyMvMXeV1JwNSRckolLkmby7tIsZFUJbrHDiqxo7Ral4cA1RgaERqrBTUR5c9upnfLfpazaz9hcLY4NvxJhRmzUpYJFchLJadrgmyXNUSsS5FcRBP+lonwGrLnpTJ9hv12L4hwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.j13dj2sevrouljjtk1aaqegv4g.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_RHEL7","name":"0.8.20132.006_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5730798b-a5fd-46b8-bd54-dabafa785be0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"e091fa2a-f56e-4afb-9283-d8137150615e","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvQLQsNvfFv9zEq0yzA/xgaWr4ggRjIGJ9xiovZrEWNIQN6gTOC3qsl6Fm3Z/xCGsmE9TWJbHErRUDgn/gGtGSA69B/6J+j2zIwQmGx2fFClzNX62X5LvqdSM92lEXKyrNEs1pj5CJbVXKLZw4gJULr9SYNPqDDl9Mdb/yqEK0o1TlUBF0cXmBGStLpr0ZSv/3a58hwoSvcRuVSA+vZHCHeZcTfb4NHzGVjxfhQ984yYvz6J3r5mFMxDyTuvlTy11Z+d3OAvg9VtpadrLq2vE1PJvRI3ZnZnP1onj2TkXMQRHWzYCL42wnMPgLlOYvBRMpyVx9XEur3g8GmppEnmUEQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_SLES15","name":"0.8.20132.006_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e613b01-8231-4f22-8815-b14fe1d13cee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0025dd7a-94ea-42e3-99f9-2506a5803005","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvDoBF8e75LlLnDQfMQoO1bolu7efyzAaMDI7OywD6JLpxrxCgrqApqB4YI2dZa5LRciomVs44t5HDBK2fRmO0hVnElUe/kMqyLa2+Ud1YRNehPPhGE4CFfHBD5KKkcyslZgx0XqRgYAn5hP9ttxjdu4UEyEmd0aPGv4sfxfE7mvGXeQb4DvnWNatYSYMCSgJTy7e2QXLaUyyVWMHbX+p5g0wDzHYAmffsmJCZ12ZWhPAdMhpq8a7iy1/uod6GtQQ/fsEf9PA8I9mvzAkvk0LfDPoZ7AVNqHMdlPYv0iP0a8EXeNroRf//PK0AMPWx/zOSnc2YwKJYIoF9Xj6aiMzEQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_AMAZON2","name":"0.8.20132.006_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9f23790-51d1-4d9e-b962-9fc1eedaa9a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"5b57d319-427b-4130-8c94-5c536403a03d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAnGjHjTuszQMmUXSGfFP/l6q5jLQUb52QUVMC6jyjldWtTCAVSnAgVjg88J1EitWOpsFjyJw5kjxqhGwNgj+l8r5DaFPVWT+k1T4I1e9cOChXBnSHno19rwAthcOudmxJwuo8i5NDaE6C+SYCQnkOdagcgCzxSxmQiQ0xgFOL5C/mO+u+1JWx45yvSrNvC9LVbMprwE4NyhiO6QiSHwYIk+HyhuBb19XSz86AqNisjv71KxHHsFyoKHRJOkHXEdlVt48ec4F+dHKGBmj5Mc4pMqTAmQ9/wRR6MX/M+6EW0hM4Jl4CUS0ehoeSEDB+nd5JJL7wCt6yOBfu192EyfxAuQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1xwejo_e2etest","name":"George2-RHEL7-1xwejo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"602339eb-3648-4ae2-99ce-2202476748fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c7e0eae9-6105-407d-85bb-78eebc64876a","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA1aMdd3KmEZoxhgAGj0zY9DWGSdPmk71XV1PZ35YdYTN7ub1FIMNuTeXX/g3lKztgHFHH2R8v1TvJlETTNO/jzX59+Xl6kQ4Y6hQSVKdGo4dLT5i8O1cpYZs5HFwDcANzbQBiJg9lyctToG8HCRbz7B9LkZxCqVVFaGAMMNjnBqJxfUY13zBh2SYLTP7x1cBOMuJxOE6L6Qi3HlvkeA6iwAOvjbXTuucH62798A3EmIpDqtv8NpFEIkaZ6jAx7NGTLgw0XMUw7TV2duSbgdGunuuWVPPIbj8PQBvrvPbs2rim9Bhsnr1g1xnjwb6QUgFNuZcUbDviHjxnrC6SU9xbuQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internd3imk_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internd3imk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e597d99a-29bf-43fa-b31b-3298022fd38a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"768457b9-48b4-4eb7-a3a3-36c22c276c93","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA8aPoFMrWZiAeG6WY+x/68Q6DhV/RrZwkPCC7WPUKIxqNJsbg/Ytl+39AmSAiLy8TYbU16nCsjwg+Y/nIDlWspL68uvgDBypFa7sN2c9DOFduu1UoPf76txkscieukDltgGzOpcLzWwQ9tQGlmq5tjnd8PCDtZEWmpUoVwS3pUKEQgno5aQaTDTSuV7wV9i1oaCIfy60jP0uS03wI0aL8EtrzBD5YuepHV3GmwlGt7FJIIqdLWFn+XLuTPbihEf1rk6Rcb64nKhd85UJVJhAYpYCg5E2VwfoPnfS4OWDNs7j0+17gSzK/FHZYCx1tVJFmRPYI9K9UKO4tE7I1qiLphwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1niguj_e2etest","name":"George2-SLES15-1niguj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d7292370-99fa-4e66-89ea-ce13b0ce76dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f3c6b569-8dee-4cdf-b37a-2512f0a16863","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAsNL6EUfMtWcUjtX4cy7zwVT50qT2gw1OGsBCub9LyvYjF8hKbplaSuSlgS3kPlY3otf1gcdZ4nlrkFwO1v9gtIIhlWQVlLmB5xc16FHVubAOtVNR9KFjQBZLZ9K9sumbY8xPSYCtm00mLKJ4IYP7WrfH9ET5WJK8rw5oxylc6QF5gacCFIacOvLYb7BTPdGdoMXL5YJbK8QjX6gWdDmvV83NDKWkm++FCbqJj423QC8VCvgU+ev/N0doERe03bgNqOchP1BaWIEn3craNUsQkrofg2sbcGe83thTQ4Dp0n78MqYv0Q8AZtWgd1UehUF6vUeUZ2G9oy3BE3V1q2cS9wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006","name":"0.8.20132.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fe73114d-4aa1-43e9-977b-25bb802aaa39","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"3b591c06-5e53-4718-9e3e-00b9881bf2f4","vmUuid":"563F0D4E-E58C-A04B-ABD4-9A4818BFF51F","clientPublicKey":"MIIBCgKCAQEAsL83aMh6tLI+RgfnUTRdTwq3QfQRioK9hX8Bc9dIQNPXuwn7uSP8xvlr1VIj5YapCfrb12JGpDPxkHcj4etCTg00z5p4p/PH//RVd7pLpgIydAeBlv4mymCprWCjHN2/PdJxExgzkneVkope7b957da8f1+jeubG3np50G2F56Ty3HONbewHrvwxnjnowaIaEni7hPSibEPeiMQG/22fv3hBCFQvMSLEUjReocmoZi4mGvg0oZW9QV207zuZZOCtFr2EYB/gl0BWCAEzpkaPiFfNCZTe+101JFsfkf2KQTRO3kbYCPo/8aH8K361c3EzapDxcUmi3+dxHeD+glT5RwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.xodcrcmrbxaenejqqy1jbz5gec.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8z07ul_e2etest","name":"WIN-02FU1ULEJJ8z07ul_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d000bba6-47f9-463d-97c5-cd754ebbe7dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"3a0a7413-0b9f-4cae-921d-393dbda15eba","vmUuid":"EBA6E616-E35C-4069-BE7B-F5AC6FE85D25","clientPublicKey":"MIIBCgKCAQEAwuHvCyRiciPgOB56tVULJmwApYn+NxR64P2CGq3MS+RTF1tCPIxTVYlB7iaLEN1clR92EHvEebcvFRUAXMNC2Q+k7QU5iVQWF16OWWuw0zOSb5xjKVZC6CK9ifeYTchXEawOd7AL+HdyhMiyNPYq3qrzc3GH9t4NRs0Tw2dW5fQL/75rZ6LgVFgy8Wqwy76mq5jPI4yIl1b4ZtiE0FmxsxuK6DlrpZHMilkrZZc4WABJDznHQK23utzj7vbhN6IXtuGKfxmKfmQmFXQnsFK03vfOE2kCyZ1wY6t8dWqf34VJrOA87lkA8ltWpk+Ah11KpN14mYsjSedzqowQ6Y0QyQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_CENTOS8","name":"0.8.20132.007_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f30a0510-b22a-4a34-81b4-9f2a359ed618","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"e9c7c84d-cf7f-4ec8-a653-05d9ade3c137","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAu2rHX6uEUWndFVsw54GbFCo5QQxQIob3n3qxotjOPXz0mw2JK0Rtoroi/RjP2lSTF/GOu5b1Vrj7yWzvlyXF2UpZ2XSfKbEjf7+lG0t26GJIfnbpo/kRNdUWX1O5wLPMlyt1AlaHDmnJNX2P/cXwn3kHdYKXO1JyUBWJ18JR6rq56vpPrUf6rAXheHRZTdIIf4w2EVbJl/UkTiHCCFLwm7Hyqu27bXzjv1O26BvzYIeB6ZrYI7qafmi6NcWmZD9PWdH03fB7bOGFkjN2NhGGfcy1e/3s42onVwOwlLZagF4hoQUmYSZ/Ve4qNYjo98hXRGSZikdjV1jfVUmZVfutkwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8nhy84_e2etest","name":"WIN-02FU1ULEJJ8nhy84_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f0bca5a-5d5f-4fff-bebf-446109fcb4a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"ae0c1f59-19d2-46a5-9291-1a523271cb92","vmUuid":"EBA6E616-E35C-4069-BE7B-F5AC6FE85D25","clientPublicKey":"MIIBCgKCAQEApPelSz7apK68fKOfR8k39xdoiwE6BlKur8wI5dkJaU/W5frGKaicvSmced1UrH3QCWNwZJIHpOeaC6Uwf/QgMrIaYAKhtUzNPTjMD8Zi0XIWa+eWieAaNeW3omQRG43ULBzqqo1vDDHn8oHrqaAS8OcOQukOB5kkPYz3QodVA2cL/lOTFNGJTK3+jG4fSpZi+QbIS6LA5Q5FPtP8FysviVqWS7CSEVCi/brx98/BeIfGDaHqmjAlsS7UaJK3QM5ttnHkmvNl2MntMXcxk/OkzCa2pYImyxP/NQqe/0NneiwvXH5YOQi1RJalHlvYqsR1F5FhuOq/5Ofrtq5+3AuLwwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_RHEL7","name":"0.8.20132.007_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1d121182-4d47-470e-8f78-56c6a29d9622","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c2916255-df88-4ed3-a3b5-5184c795c728","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA24wIXzAF7ntoHCkf5XcwpxNxf2sf4SVsgphFEhtaB+M6RUEOJ0YmRWK0TVvMENf81eP1cCBjiN7beH1Tp/jNw7ws1ekwxyzBdyqOYwP+wP58Tb5pjQSaI1N4Wb5egftFbKzK2fymCVBvY7Jzd0ieQUvafdj4KVIDOsYR99UD0cbMRZ/boL0ajuas2tGeQ1dR5MyJF+VPGkZKmWzrjTnfbsXc4ptJEm5kmNGGUhIwIkkprvBgIhBq3bGgWwzlSsakQoFJPcMe+Mofoum02tBKwAiiQ6rTO4bzsKYWwKYDnovowVlVvn5uYP1sb/5gC12ydJaAfKzGMkg0dYDzth8QdwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_SLES15","name":"0.8.20132.007_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0f3ebfa8-d08c-44ee-b83f-a12998a9ba17","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"6556056a-cac0-46f7-a481-6034c16cd4d6","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA7JT4Y6IpD3bzuZD2wsyWFcUj4MTxko255PdE0j0TY3K4NZfDmK9iGbHJtCvqII7erx2EIoB6qIIRS19XAOHVuzY2EUPJYGO004E4jk6s+VQ/lb8P6qh07O/ui4ROxm4LmS0dKJ9vw7wnuuD2pJJ7eSQmIUhfO4Hjdm6fkX2N4+H4jZlj9A6V6VweCNGOeqnTCPu7i0UeEzoXKYpvrNDW/hH5Oxxv5gzRqvg+SZqM1/KrqF+yQNcKZyWAFvW/Uwcnw6oBJj5rpx7pUSZXPWfCaM/aa02B3GN8s+IjS/vELtyqyVKRBW0UjjoWc0wjYRzn9NetPQ82ls9A+2WkZC/pfQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_AMAZON2","name":"0.8.20132.007_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb1ee9b9-b7be-45b7-92d9-315ecd7167fc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"f31aaf77-b55e-4923-8d95-fb7e272773b0","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAza/pSyErE6RYWTwloVZsfeq0Sl8/vaDDlOxdYBzP84ckLfvCkXKlGztZEaP+Y4p0IUk5NiRpXoNl2vfGTXtRF5fG0f/3IFasMM0x+A/W377qdcMxkzGRcGEtUwxFYTadKWETF0xeNAqONcijjvIkb0+dzsQpua8IWTliqDDq4qHGc2Zt2U7bZcJJMkdSSjiztvWK99GuyztD6vQexZ8cdUOyXSc58uyksF5KQi89J3Iq11DONHBuecQUhlRk85tPEPOlT2vIKfnNliFc7PhweyYho64EAtAQ5YcVZD9wK/uZ3xiSPs8JRoNgcUUf2oyCI6OLGhmMt45xK0XxYqFx1QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1hy74q_e2etest","name":"George2-SLES15-1hy74q_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7944431a-6262-428a-82b0-411c295957dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ba9a5112-78d1-4730-aebd-665fd19a07a7","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAw3IjpPgJqoweh5xF3V0D4mdUK4nvBx2qLxqSqPRbdsVlS499yXTVLvYK6FIUr5XNWt36LVTvx8j7QFLDixWrDMNWioSNCnfa0ms02Kx+usz1aSJ8+KpZ9J4j9JWDoD29ITNNnwsalNAMehnvHwIi9OwUEHsBwFvZ+Hhv/hfvmPlcOlG8Ypt5EUMZRizkc4mW3owf75XY+1FyZvHUvygqfYvoMxR6lcEuXhucBzkbKEWLKLxY7WgA2LAkOH8K7JB2QsAGmP4hkKaWjVLGA5D4deYw72YRcztEMIzBQuCRU2CPrTEDDClfdHHVB3rYlAL9J5ZhKeyLxillZ/3FweP07QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internfj0tr_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internfj0tr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"972e0eb1-fda6-44bc-91c9-5c899aea9e42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"f50671fc-2be0-4043-a0bd-a71eaa1bca85","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA2KN/VyGT7uSwsVNyGqvsKkuYvhzd5TUrJJ76D9TbC0CvBCpz8fwrrp8lEilv1XzdyzAOEvWtQmMGfoC8RR5bFwRJioB9kPJYRF8Q85Sl8RYERv0rp0wAGlnJlQSlsrEe4jWUwTxyhRst7EpU2o6rBbYsqAvYTq0OoL58WHmdfw8n+X08F0eK5+X1kpwDATeu28VkHd+cTK/3w257fRfKaZwnn8jwyagkmJdW/tku+WyR9ELLNQM7HRr309SB/wLwjk0p1dFsRIBGF2RrWfxv4M+QS0I/o8rTRnQyNQnaFgkdba3doxA0rSCoeXLOfRSx88HYkt3gMLgr5kzW+vtwcwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-12tbfw_e2etest","name":"George2-Win12-12tbfw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c811de6b-9a93-4cd9-9055-25634cc59db1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"94eb4634-d86f-4d30-9946-e0053cc02fda","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAt5ucgc5U6o3aoZ6DtMY6beiSi7d23j3k1KVyWzkKIib+JF0oPxjL3sH2c8xiIOb1XTrdJha1e7B3WrqSkpY1n9mMtK2mdRToLfZ4DPNUvsSDg5fx0e/Bt1/L0Iw8wbMhY/0bUK0e2uRqxFyvzPRKK8sGVH08XOdeFOfsHzE0ZaLrF+kfxxFIl4PsZ653jRjhhwd7Psr+xsmJGY7NV8VN6mqekU2ez6W6MUZpXX6pgjcSbu5CfH+ZUO+FmHWDOhic1gs/S7XJSIOFuw3uEy/d4BtL0S+evIbDN94/XWPvrpV82d1VMs9R9AtGQ7/3ER/ei1Qq+Z6B8nvVFMK+SaZdSwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qs7zg_e2etest","name":"George2-Win12-1qs7zg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fb66b18e-b789-41d1-b9ae-ce4b48dde886","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8d56a022-26b9-4277-9649-19ce382d5408","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEArl8G02jegg1SDplMCWsMjhhpetjgS9LnJ1woCc6QSVCN8TRNWSfA7dwD868CL9SMvhsUGibfIQ2zS2NZTw+gltCB6VoCovmBSqdLTeABh61M4yDzWmnVhtJNuCK8uJSRgcR/quhUMHNO1sVGGw/vyAdN+SUu0NZkAYxP3SyXVzjqJhgCR44tkjCC0BoDcVqRsDsMXldoNzHERTRBY851zJpWvSIxYXkB58k1a5vtpbrMy5jY1zlxyKZRvzZrwn9fmbsxkj7PTfNF3E3V7Hqlq7dCQYRBrbR0DoMg8q4WhCjiYRzx9np0yHe5nPolD5rvdaOHXsGQvmaLO/1pXXZUawIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8v2hfe_e2etest","name":"WIN-02FU1ULEJJ8v2hfe_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7acc4ec7-f165-4a9a-91c7-4da8074ae6af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"c468c4f9-6dca-464f-8c58-b67c0fcf6d10","vmUuid":"99BD7DF4-CC1D-48DC-9921-227C86F857F7","clientPublicKey":"MIIBCgKCAQEAvQNzxTofrLqrP0JS2+JhTDZPuEKeiL/SIPOL+PLPPHmZUHo36mkdCdbziF0mf5IKiBfPc1Uaryzva4L56pX9hb5Us0Rd8Qsi9xBmHAeHSbm//pOeepJePYIAnVjZZSDScfn33o0Fj9r2vgTpwmWrIzTKtrCqsy3GYsMXJmuQLmiFAG9N5Um8UlFuDDklcpDqQsT9LMx0yMLwfiET7dTB0I8/VYDzgPv052kTYQz1C516l/ie4ckUvyukif/rwNw4xDR9OZDUyhWNIH+ybV9r6FXhS2FwlqvDD8dJk0RwRYkg1yHoRZKqUVm0uzgpBjxupHJ1684KqY6S3x9a94PjBQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ88xu4n_e2etest","name":"WIN-02FU1ULEJJ88xu4n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"49f248d5-931a-4e2c-afba-78f679ea404f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"3a14a311-a928-4af4-af12-05cd81d8d99f","vmUuid":"99BD7DF4-CC1D-48DC-9921-227C86F857F7","clientPublicKey":"MIIBCgKCAQEA8Sb1HKd+cW+vRYmPu7KoOCfyspUylxxCz7QbDQXinn/Opj4kcfq/Jj+ji7rXyEhjDNKQrLbRz2fM3njt/6iJX9LR+Ez+RMQF5L8hFj0Fv1dTbGErn6Zvp+kdxXyetSErBnGaiBoOEuCsoJbzKAqKJ1WbtrAxJuka5o5f/P04IWibEceZKPxZyGgA2L4zf/3kFizuF5/4j4XZno6CHM0mt+obb9EoToUm2FrTzmrFWg0kcafVLDhGaKDaIjIRig34RnRcNdIrRYsVGTg7jaGqgufm6dT0nGOaSB+2vkHWgfg39cMjyydm0hCx6c3ZaR1oTSGoAtZV+/CbmQQYXeXAuwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007","name":"0.8.20132.007","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-05-11000","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"9fa00d9d-6e9f-4087-8b87-00546f0cbb3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az508"},"vmId":"12acfb07-69b3-4e67-b2ec-7d6630fc86ab","vmUuid":"FAE4B41E-6CE2-1745-BED7-30ED0F949B78","clientPublicKey":"MIIBCgKCAQEAqVXNsm57semqwfFCFe7dfGLa1CpSqlXD8nQeW/uOUw/hzmY49i7dejQDto+/c2irUScbycvTEZ2+eu2kQDA4BZkov4/U74LiI75EwAcTvm0iIFL1UyGkb4sO6+7E1PhDHseAJ1CA+SCEd/5s+ehY0TmKrpk3yyCyNZEYPlpDvrnCTg+im+ngOGxIi8n4qoBMBdPvbMzeIk+8GPn/R7/Zdqa/KMKp1pkX+KnXW9kvzC56LV0amHXQrXgzKPaPaf9+EelE+HSUtk8M8lVFqOTW/9eX0w7ftwqZtdq4J8OHTYzSCAOTaQldCqJvqDEYe6+0TFfobcNhMpnS6jqyE0v9VQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az508.jctbnuovcxfe5mefpt21zlomrg.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-137us8_e2etest","name":"George2-Win12-137us8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"488c8013-6815-409b-863d-4bf68d30a700","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"bbec014a-14f5-4e13-8561-5e15f34aa806","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAwGsYHorVqMWQkDRo7b+ulV6iMWtTweix6F9v/omScnbfBXCMyLtO1Xo89TOnyDwvnsJXXFY8ZMF/eZuOLFZcFEFOUyzo/uekEc0yNYY5D80QB7wpT8SP1cdYmOqUBrW3ltbOqKCUO4r+0mDotRi2YGs4L9wzp3k872CXm7fSwz8ZhOHzH0sqUOSvXtEryrv9s9uLfouw2Wqx5NoBU7Eh91nTI15nK7cGsVZlTIqd7wdATN099EuCNwQ57KK7rarK1nYWcYYu19WcuCAukDe4VsmfglfOxYGsBEaJjgvuN+/Ge3Rxdj4h7VWacwuG7aAzXXoMPvENiKNhlnf3NPFFJwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1mc80k_e2etest","name":"George2-Win12-1mc80k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"415603c6-5cad-4504-930c-edcdf7153b12","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"82dd6f99-5b19-4c95-b143-64b2eac9d037","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAz6TmpRRJmxVX8mBy2TZwk995yjNt4eu908SpwHfwUNXiHEN8aqL62VzBD62wSsaZnrk1aVnsL89hRwM7pS9zAgRdgFH2VEyMoukFv2sC5q6Rx0+PJRyGkSg+fKFjtWT8o2m20dvH5K0IAHdce/8ieXl1nZvyoMhn9rpfKd8oTtUI0dGJui4a87mp4CAlpP0eAX9BdK7fxLEMtafhbLRdROFmDDrn/xXYi5OrgihXxieBkBqTnDPEczd1TvQcDRZ2E0DtVJOooBStAK5S5LjWcK4qmO7SvgrY8dHdj4OWsslfDidt+M7S6ib4z7b0zEJFgQWf0cNKqH6yHsXAWpW2mQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008","name":"0.8.20132.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d25cb2c-2fc7-40a7-a2ff-41cdca76420c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"35cdc80a-44e5-4fcc-ba3d-ff23cde07c9a","vmUuid":"2C63B9FB-4BE4-BA40-9C31-FF9E32488EB0","clientPublicKey":"MIIBCgKCAQEAmZ5/JD8yKrBMgrPJTiL0ezsvOAgwMCw4gj/HfSO3syILba9gpHY0GiF9Q542PhHdkuIgnX4/SyME0mSGXK5mT/HuVlcW695HEvC4yPxTGYoRcr/3F8o2KX3oU2JGM5FrSo7ndbd2UgIlvi46tp+lcw6uxJDk8P6n9zo9iskvn4AjD1/e+K0Qs3f3OwXfw9SRCcoLqB1tl9FbQj8odyoleWt8DE+GSEOxrUFZ6khTBTGW073+pCQeEKKJvX4IjkYKzRmFQljG8AOhraefUhxCtY+QdZgQvO0qtaZQRsUG337p0va9LRqtaa7Zj02V8FFa9iHfZyS8ISHgG2x2Jt4hPwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.gmn05kb3ecvupfarzahc0q5hra.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009","name":"0.8.20132.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ea3031b6-38ef-40ae-b77f-78a536ef9fc8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"820f9c13-24ee-4902-a0d9-2ac985ad00fd","vmUuid":"F72B5007-D016-AA4F-AF7A-D9D3EEFB3A97","clientPublicKey":"MIIBCgKCAQEA0hcXLOmbBD0OOhqBS7RO8eTEW5hraZuI4qCk3SiSW7isJoSeN/sLCBIvNn/imdEnnoE2WHtA7a1I7Ze+Wyp9XELBx3GStdM+ErdckYDnj7lHWNH++ZUs2+khDHIJgU6+e9vA5LQaydVF7eQuacLADnVtILWVjP89M+Yzz+6BHpxTzuqrGtLCeyPGIiZEUIIhR5fzQW6G1AzDZzEoWmu8QetPH4wB7gh2tygRGQV3VMaFtYRfq25hXj7+oMRRC47xe5b3z6rDINC5irbeVL53Px8gpEethnb8yhd9Pf0IGK9n4x/ffAuLNwsWoxJqzaVma1JQuCFDC/jEPRxl3HyfJQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.n3ngdsifwfiuxgagf4o1uwsj2a.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8rep54_e2etest","name":"WIN-02FU1ULEJJ8rep54_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e98c4df3-fa2d-448f-8807-e031db208e1e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"6ad1a115-7f45-4b8d-a548-e28fec72993a","vmUuid":"7A3A071E-0422-4C0C-8169-9F576A2820D7","clientPublicKey":"MIIBCgKCAQEAwBmIUptqsj7Cg54p9PivXBoge45RdM+7BNsJQhFeLEZtH2zf577aUiJyv/VcZFWiTF9qJfXq8dEBbWjneDAlmLX3lTiWvxkMOUftrDZXcNWhJTV/e7SlMZY7DiMU4g6+i/VTtNQB6dYheErmiqXXQpljcQOy4+TVxohGQgATkORecGuNXl62eSUa84FhO44lG2TJpQM2curDdiQcfD++b1CKZflehsHL4YVSx2ADYYz17L4kxX4VLGTZkQ2vy4UG15j1FkkhgmucJD5Sdg1yc/nXbjXAcILXe6vyzk+PCYJUX+MJwh26QO4WgdsKVFGzXYvX8ADT64nrr/r0bM/XRQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8psr6d_e2etest","name":"WIN-02FU1ULEJJ8psr6d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7d38566c-181b-4004-af02-f77b74421f1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"48f6e12e-1b18-4c71-bfbf-efd8c08f7e93","vmUuid":"8B04F426-9E16-4685-9C90-3A0C4589155B","clientPublicKey":"MIIBCgKCAQEArO2DgDc/GxceI2cWUMQmkWQx52dBYvG35wB1xhmB+vfSgz0hp6Xpu3X83HayzUD0K7HpucR9t7CBBovSkc9MIjQKzDpG1safVYMccCNs291nmpyKPDTsHw7k6KnlJZdmOEZ1xarfjk2c95YmBOfYPuWg0ds+bDg+g25WK7jzU/rjsHn0uidx6Fx3MMmbOGwHiCBmD8ZUryH7Tga0sLu9gQ2wEugkGYgNj7cpPP2jpaTQbn2pnQ0pGD/WfdFl0YBPRT+uegz1I+UYwi1eg9OQFLn6P1Z1VfyIj0+pV3o/1Y1NxCnTyb6d0w0jEtir1tzlmuGsjZsT/eX/pXRjWDUpWwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ86p401_e2etest","name":"WIN-02FU1ULEJJ86p401_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8dba50ed-ceef-4476-81e3-10540ccef95b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"0540e097-6dd7-46cc-a6b7-8785ec15b601","vmUuid":"7A3A071E-0422-4C0C-8169-9F576A2820D7","clientPublicKey":"MIIBCgKCAQEA2X6X3sXRw7hnSiteXaxziGo8JfQKk44VC4A9jNZCNNRcEtueOeXVIEgWqHWozZZa7Pj21rCQ8IJEE6n+kvv6vTnbAewKvkIdzxeqOBCftYx8lEloMCp5VBNAMl7lhv6JvU1AmAEhWP9cUacq3XqLVHTogJBV3eJ9YPRi01UoUK1lnjkwefgBr9VsN4Dmbxot+dL25aQ98wfW57GQP9D9poFgRiOMFrxRimSSsXxaSxd2yZ+nwrYRPwy55rWQgGCjAdW16mJ1mQkhiO7WmDAoKB0UF3xDXNnJLiGvm3RZsKsnOw5NgJhvtv7SW4BoVhZ5WIljHOBZQQeLwnqb2JoVrwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_CENTOS8","name":"0.8.20132.008_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b61023ea-75b9-4bf7-98f9-1aace28f6013","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"eeacd519-df57-4a75-9822-297baf0e4881","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA39Ktn+LKJ+XEg9ZhX7vwOe5dFZOsVDgKxIkyDf7kp8ofXAqVGO/Bk9lraF94MI0gdXo8KhqXx9L7EnEFQSvy0y8Msm0HW/BXRujKAk+DB5OS2Ht2ddsylM/2QnBrdqEQNR0ikdmIIJdfxrsslC4ZStLz2JB+PfBPVm7jbg1LbvjmUtlfugmAdU0nbrlLsbRsiBgwfe1/IPpuUo4QcAJeaJ5X0J6JTpUk8thJO7ZBVCSwt4seXK7SkkhXFO31DaLvs82xJ+laApC4ZshdBPtqMRDf4gwDZqEXE0vXclVn1BlhicF4OH5A1RilSrVcqbiOe3YSf/V3gtMOETO24SKuDwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8rybz6_e2etest","name":"WIN-02FU1ULEJJ8rybz6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"93eea9e9-d699-4403-a893-653e74e96e90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"e3bad5e9-8782-4bdd-adb8-036830a34ce6","vmUuid":"8B04F426-9E16-4685-9C90-3A0C4589155B","clientPublicKey":"MIIBCgKCAQEA0gGEBBlSp9xzgZFUp0GSvyfO1kpnHDIRi3V24Cu3ETcQq0beL+QFrlNvCOR03licYzQcIEzyTG+3bGqxemjKcE3C9rCf02DQh+7ANtQo/eJKukA6rUIHeqLfyMdYk2DKyFZhdRmbgbwC/BjRBIqUTapXp+lXLDwI2izdl6YTqGwCDkznjbrJJ5DCypQn17Sat3CyQVQ3qEj43wx5M4U2zrXAOC7Owju3u4TsAzSBIpEVEHtqK0ESAJU/7DpMNNMfFZPLnpofMuGlGWbv/0hMzMNGkolhCdxFraneMdJUviw1jMZeeRrevqPLs6FJ6ynHruRPaOHTI6zK49K295OnXwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_RHEL7","name":"0.8.20132.008_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"01d5be29-1e43-42a5-9d6f-8b0e6dc64522","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c8511815-5bb6-4766-a4e5-1ae29b492326","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEApaSyA/B+J6dAlZw0lfqV4iQu9QGtTgmDHuBhz1iz8Rf8ft/2+2V+rOi70jCbB824vPEiTsYe2mdEXM+cly9Fet6YhpzmHByC4YVrCe2t+q1PI1NMp2XffR4zr9UYapKMZTTj83xFaJfxcAsnkFltT4Qs7788sACQkqgOxk0uyl+CuPeJtYsfowVWpsnYj6afUqn9lOhKvBVjUo3DKqAuoOD2/CtN2KNA183fe7CdWKpytb31zb/SFIcyGiVw3BjPk3U24el2KaNw/i2EJd8kIoBJtB+jglIWyQ66evlcLYYJHRF2Hxm+u8lqbny6XJM12odm7Hhq4K/bwKY57wMTFwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_SLES15","name":"0.8.20132.008_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ca6c179-7047-4428-b0ee-b86b004aae16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"c50e96f2-c77f-4992-9aa5-4f3a6c31a709","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAuM9UzTqGdesSytPBF/KpV1dRD3PmhyJ+0peDyV3aMFWtmhmw+34qLHEp5G8L85tmXMBRYJx1QIa+QYNMoIh5BKZLTa8eECWx1ZqEql5iq9e1abaYLPhkL5iIRkn/LZeqF7RLFaIVIduCaa9BdfVu1b3chwLNaWnUAdXkmR+87wqZDAu7+aBrEMXM+pPtX/FBnrBQ3himJ0Ttp2JKyESCKfFsBEPMNQT+9sq7hglfFl/Q36hjq1ZlmqJH1hzzYwyjybEeTEpua9fEBFgZt7r2Euk5s4M43erPsD6DyWIJ8vrfCHDFNRxPpGxviTIZokJ1wkH7zWhi9LoLGq9OfYn0wwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_AMAZON2","name":"0.8.20132.008_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ad35717b-5a2d-4d87-80a2-64931ffd10ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"171bbf46-d504-485c-823c-5de74e2466f9","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAuqSI9091h7RPtzeKvTjYZ+LcKQkFgh5xvVW5/E76v5jTkvlMnRZZi4PynRS8hqbbqYdoR53Uxxw+WLRXoAoGsBU093plY4ssUZXJ41gWEKRgwlILjX3yHKTJhgc8E5HAUf84qD/q8gspie66q4Fd5vlRFb5Tijq/jjjyu1WwZHNGBfzPgY8KztBC3Lmxw8S1FweXbcywxcjAaZzEDuupf2ET89nvo/wPV4ui8lEGogsrktvn8ddgTJdOgT/Xcco4onMHHkAjgCIOTrT/2oYcoPFQf84xxSEGaOomHj8vgxlAIIbLY/ufuQ89iIAmNs+lxr2cfdlF8LSZOoEQGmJSbwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1vpr5b_e2etest","name":"George2-SLES15-1vpr5b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d79ecb6f-d8fa-4aa6-9baa-18c1ee9bcd69","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"352d172a-bc4e-4ebc-b112-bbcab0b0ab58","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvv2St/C9GyvZMCdr4WvNK0fnJGyXLejeGxrJ3P3niKqjfNll0jySBAfqCswMyCcuu0cR2ppyatGxu0jRPtLWH5lv+3SylS8No62iXIKnUcJAhK1cI/k9PZpYs5qmp4RmWq2100EI+gdQbqiOgS4yuuaFDzy9Ndj5OLA+a0NINjern+gMmUOeJglKl4B9VMafV7KMI4yTfkFvumlaCuDLLRURSPkUEjOiWkWogjiMb9DRzogCIKb1OvKyQOu0HiQ+VjaYdZ3hkyRMyszGHTf8Nz9cXlcRpv9vZc6/Jv1/gfeT0j1VWQ0hcXQ6a9KvuvdKdGWJIN92Eiu6a40KLj7LZwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern13w0d_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern13w0d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f1d50fee-076c-430b-a816-08a1f620a1e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"26cb58b1-cb49-49e8-88b5-c32277ddc577","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxA57flDiYZmf9Oy3LQVYHa06t3clhSExLzw1omRxTIT05yH8xBBK/jnuXD0RgSoAjClY6HcciV5AgljwZ7vLs4FAZEAyPql5a+VOx7kmWEfI1vQR8nf1liQAB9j7oaxBkm6M4iy2sAGILPbm4apeSCSrLnLQWlWtIpUECOaiRqoCU9Zdtzi/R4QMaU3LwS+xwTDwQC0cRFWAqwN9VrSrhm6CnIV4wAh8WRGtA8C/qD+IpHlpbVLChAiEPlIjdn4kdQQ4f/c+dDBrs0RR5/mivs5tZZKJBYFzmXvqOs2B4fI6+BH/i3q2wFLscMDYc06DTpKMAnfhw7NkC3MJcAZlXQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.010","name":"0.8.20132.010","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-18-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"e8706757-dc8a-4e8a-b9b9-131e89fd6785","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.010","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"d55cbb03-6282-4f91-87a1-3027d42c8c13","vmUuid":"BE3D9DCD-3173-B648-A739-4EDBAFA02966","clientPublicKey":"MIIBCgKCAQEA5bxPc2U3aHUrG5Iyrow/WNQkSO0/tUUlP5mix0jzP/uuzrqolGTWOLaNIz4lkB442Bef3N68ATV7EGqBwXvAtLiRgKh6QaORVntQOcFlA1dVqJxB/h14c+6I3MW1H26uGr2ubcz3o4VwN6KeUu1WYlfWmdtKMysOgokp+EOzZyJkgdAVwopOrspruU/7ehNM1/p+aRXOzu8xZliKe94n2rBWrXTqDi+0uoWpYpQuaAeEj5XTtaJZ4vucAoRYJgA4sD8TG0yV4GT9gq86r8TR6N5R9BoZUvoLqcyqE3XBki9Sg2c2hgNwXNlYun69HDak+cUaBYs59U7pD9NyKYsbuQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.sw3udvhcmjdutktn0inz4hrtqd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1g7vro_e2etest","name":"George2-Win12-1g7vro_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dd67909b-e790-4998-bd5c-48fd2d97ca4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"9258f2e6-375a-435a-a032-7bfa11831ea1","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAzwYycOFJoKKyHRU88Nm0ZbxY3qNa2U5qwN1/CvNgvyMfFB3ocq8DJaOpyMMjG3Ah5DlkFjRbbjDGSBZpOKXnx4nYLq92iBCRGFOPHzJ07WIbAV8a2XqiLN4b9YNZLWpNhPNKb7FqtE6F5vk+l2l97JX7BprtaPRzE3PrWNcKq0VfHom1Ic6SCbLoO/xj+tjBFjRxPVcizlZcTzHHSSXd4C6V2q7exvRxeuR8U9dlezKNtTIMImsefUniF/7I5/vv+O+ZhvdM42FX/e66/ozoJctiIuxN3CzWXUVOxjAu3UXjOw1punsvfAkKtd2py7IUTKLGK6X3cTjiSb+QITQwzwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1ath04_e2etest","name":"George2-Win12-1ath04_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bdcf7d57-0a9a-45ee-89f7-d6eac95756e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8a95beff-5c82-4d87-9918-fc07aa906889","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAlvsRtbrLzFKbI3xLyrXnHM0ppgt8WJzY+isVO9onEa4j6GFgNKKfRA7EsLgNM4LUO/P2IN4yFrLoSOQHCoaI2ScsHdXIuk0M8cYFNYNlpLg6u2hD9lXAzRuK7YICUG6tOmZpvy1bFblMyFH4yjAQ/kRL1w5NsNTx5jr9IHxBumxhGGd1cjTzoA79dstoqvNHpRPp+XRVZRO1bCrrmKQtDA4BVZZW/3uKNPtRZNF+OdS+wt4MxNj4SScIFSJvroNHt3xwQBVnL1Q3fhEUm1lFpF2XlA6iJd3NzEFuuaoiSaEFclIdm/S2k0f3yk08jtasBx2hHKf1Dk+0EnCa+GWXyQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1flvi7_e2etest","name":"George2-Win12-1flvi7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fe557d91-57c0-47fe-a79d-c65e92b1093e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"957ef51d-3f0c-4247-8c69-eec6547ccc76","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxjU0W/UQESw6tzBT0UfaW6eRhs6lWhroDNDtQI63Nfhc2mF+h3SSOEDzqzLMC1+73yk/fMRkiXAYWeeXfd8VjVtzZtrOKvC8cdM4v1k8iIlt5WWlA1KjVk12uaD81tR7SlUl18d0bqGgth5a8JebjtYDpzqYanOM1ugS0icWxKdtW6eXHEFyOjzPz14IuliWObjzp+QRwUIsskmydbywHuSMWQ3tiPP4rUvXM16C9XmgZqe8KoDPqR/GbvImf/HDJoz7/3VIt1pJCtOX4FhVSZQXKyvG5HjgaXGeNQmYwoLxoQkS1oq1TEKOjOq7TB7gYTskhergkM39L1xxJwT76QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16devk_e2etest","name":"George2-Win12-16devk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"10d70f3e-a734-4eea-b239-f61928e1bb2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"94db0b9c-3298-4203-8894-e3140e5d8c84","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA2l615y3/0jjFXlUPvitzqUMoMDPtv5I8IhORF14tSA8liFo7uOQYUG4IZqg0SEzGXQlHDBj5yeJtnZTqxCKpUdqw3n4zytR4BoAtpqBOnyFhO0IeHeqoEmC5fSbsbMCZeI9ScyMeVAYM6qvoUUa88dZH2rX4dKtiQX8/hbVBUFVsK492HF88RTLP5xGJ45DDVElZPnpMVi7UPebFAki4Q8Jxblm5uWuCwhMhSr2NK6uooweHMCHbqynHUjlnYiOPFMYVGgmFF35iudq3wrQtGHVACJJyZBPTZvYJGRymKFpBbwa7WhRL/TUvB7eBejw8hmmG3ErDsBjUF1FStdtC9QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_CENTOS8","name":"0.8.20132.009_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1afa7907-a0ca-4ab8-8de9-bc522012b2b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"25f8051f-e32c-4067-b74b-0c219d9c0b64","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAz9JwUG2oo5Jj6Zeyspk2PhnV6jZR54UGE2cr73/ykTBSSC19OjRvssW+2eRAlkBJlD43y/zAVQIhVy3vy5x11nrTVc6L8+d9ky8sDoUlyMy1//3Cody1UmL/t3buLHPwV2N6FNro7hGs0kk2boqGElYy7U+1KDw/jMX4Ou054hw+pHlR7/bogoINl/KbcXGtoYOxFa0zDvw3irTu49S9mF50dzhJAAszH1xL1xhFcdfzHStYvF04tvNxMS9e/uJhPLM6QZBumeUOAKKbpuI6B9o/b0MLqdUX923ZGpS5PYTaG7Bui63Bjujf1Juw0ridLbRhCHXAaKmPGsWlzB+N0QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_RHEL7","name":"0.8.20132.009_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"743576f0-f8c8-40a0-9595-a4b38b817548","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"6d257ecb-397e-4690-b252-deabcb88c81e","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAofw7PCMN9Wk9yLZu7PbZltwYdUd/lnViKjRoa1lUnRvxnCjvuD6zlIEkbgPsgeoVQovtaF7sRJ/owsBrTsh+TadWigYcXEUK67Lu/SpsaDnaGUsG2zcwByLlfCHKvfdqOt4ScAW8TghFWODs7FJo2uujGNa0dhiuz/YV584h5Y3dIxP0ln8R+99t4oQ51x74S08XoOGOi377f0jG6i1utoonNwdiQ4JWv8Ho8ovAyYgtylt/uRCo6pJX5lNDrxQS6uM+7lliNkWENmiXEiAGwHgTykUHBJFdROS6oJDzirhM/c4AzdXF1iBkg6ofn+SxZnuSmFEaRejkgrMtHBUSRQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_SLES15","name":"0.8.20132.009_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2511fa17-5d6e-4453-90f9-293984117c0d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"cae66e55-a58d-407e-9b3f-0afa4b85981f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAsxOyxPImMwOUUJK8FWxGyWM1A9AptEF7ysez2B2S+CO4zoYka/aVPvfXghFoxKNmOez59MooBXCnKG9PKz/PV5M6u0Rdvt2j6SBVeCYEc26j2XPkk02SW55OZYKdm8gJDsm4bPYRAycpdyynygxh0lTUHKHtAiUCKiakZY8MrBl2zLvkoGbB62gQIFNnpo/Sb/qTNjZqBKx/GAapeNk+uz/7M5Vq6d/uXzNCwJl2jwKgrYWFLKi6huonuISkxUFFvAOhMkHkwOPu59elccC2OGXL49ek5kFf4a1SigrO9qfPlnefWssaiZtePdoQBXIb/x8VfSxs9v95i0Ywk6mTjQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_AMAZON2","name":"0.8.20132.009_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9643e418-a0ad-4191-86f0-963ac4306ecf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"7a5220c8-36a2-4888-83f5-a60d796e4038","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAy8H+ZDByykIAYYHIMdfy53IMSMRCRKQcJVsM3WmAajZjvi0x6ZdNwV1ur/T7o6804YCqTbs1dANX3OQgp8HnNordc5PS5qIMXcEFig1f6VjYjJvCXNi8Ii2QuXNOCVazC1ZTSzZLAEhQvHXWFlczPpufElHzF+MQGBeseW6VNO1IBXbD9NlqmGSXH8uQikQ+tyycwV+n3zPJwHSz2swiNpHCZEsYN428E/+2ZD7/yI7i1yOVvZeuRjLTJ/VXDqay/3qgy4F55sLhV3cm3T6iFuII8nVgvas4GcqvusIWWkFRiHxPFyGQeOw+IK1ZEd8O+2yhiL1A0hrnbwSNQLHqBQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1pyhex_e2etest","name":"George2-RHEL7-1pyhex_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e856ecbf-4e25-4a2a-ba85-f0d79747e5f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"350b90b7-7aac-4c56-a000-d749324d1d46","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA0GjiUxMMRZhvCabfb5Mq9RqPJJiW4bb8az7iHaV/NYDgaNUFSKfHNs3KIWGluDIFV9f6Y6xKp10AUtwJ+JeCJPI8zyXEuLOH3nwMnvKmoVDxHtOs1CWVxRCF/AYfaDQ35zET0b8RANQ6MJFXkkwnZBRfobKc9Bc93GTrGDBVE6Mu5DaRT+9octvYk/7QZmTQweVePYChhvtIt4faexGad+Zsk6vOHmc8lJraMnlOKIySUHbc48ZPerda6iw5Yg0v190DD2FAjcAwieogcZEF88sfxtNb4aOE6H9139sPszEr/KbehdDSJPd2G9ONtCjilV1Hn1o8jDeKFyCUDudzKQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-189mqg_e2etest","name":"George2-SLES15-189mqg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a61ebe2-3f9f-4ab1-aad1-d4386ad8b0af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"8be52886-f4c7-45d2-95cd-b4c1832e8088","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwfSfai50Vsk/u2VJUtUfY8jbqrV78QgezHhdVjOzy1Qg09RvpamX4h3nG48n5gC92S3wSWtCxL2pw+RUHfTu17p5rjt1l4t9+TwHiGcqTHGSuejZu/6dE2/dzxv+g++3dsg8pWnUJ5kAnJ08bPLckaCKHibiU/UkqTlTpgVVuIv5h7B9pvASVBqJvr/OKiV+7orD7EGaLGIHaermJNjf6jdDPLwASmJO/qUAfZOEgvYKeyaxxl1aEanbcDgsgeDwTq5/grYybOTtMPd8bOiUjhnfAUSMBftjkF1BbyvhlXpV0FvL6pPLhle35dQzQzoGyrzl3b7+UR4dV6SeoyHZowIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internm4jv2_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internm4jv2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1719033e-7b2a-40a5-b20f-6709b41b6090","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"ddce5ba5-4149-4985-b69d-b2f00c3cbb9d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAu4L9lkkVBRtuSeuEecHmit/NaqYKayCcG1gDnzUDS7y5gneNA4UT5HoJ/CGfoAQAxMWzTyIaIC3c/2t7GJD7lY+Jj1Ld+hxRIXSakt/8QHEduBnVLleCNGxTMr7v38C3YcOnkHCMsonE/7cc+Un3Q4n1qDq5j/GPkxg5uw2blGYP56pY+I40zYG9OTir41xjVZ7xsx52P6wLUuNKDgDOK9w1fie7v4hmjjHpBxexvplhq/1YUSKvHpPMFEzTjbm6jbdb7uL4po+pZMT4S5g83I/iXLvd6mHSvBMbrmAeWGcSHB0E9+m+epKhbjkxiPnlHW1lt4VcCXk64Jsfkb3VEQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_CENTOS8","name":"0.8.20133.001_CENTOS8","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"2053370a-7541-468c-8e78-ede429f6af61","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"bc73d352-c3a8-4486-a58d-b2e974364c16","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAn6R8s6VpAZz/AYburhO4YIWJAh/Pa58Soi7dVsp6HEIDw+b0ACcANgxkFlgHPhk6BJuCecIBLdhLHbGhb1QbWjyEoZFa1fI0C9PY2Url1Ah+wSuD92xtCPK2cpif5l0j1Wt1JZjGxMH7Nf7+1A0MyJTIgGNpLsMkrorzEZKPXXHDIlv4JptqrodMJh0vxoY1jvc9s0pKEv7YGtEBD6X/AXfw8zmzztF4u3g08scjeLmwgYXifY8CXFuG7278FJsW30ST457rdTo1QrYCDMpj96TYR20JlCCzR8CtcOhrVCdkMR2seB48AOhTvdIfxw7i+zlU4oOO/P/H74Us+/Z84QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001","name":"0.8.20133.001","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"9392ddfc-a960-4043-a036-cb735d469331","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"55ace41b-9836-4bfc-b8ea-3f4836857809","vmUuid":"F112B3D4-5A81-1743-96AC-73990D52D97A","clientPublicKey":"MIIBCgKCAQEA5eSFNGjJILpdi8bt8FzTnOE0AXcOWDIDfLYQHpLY5H7C0HFELshVwGjiblmPpJRv54af8jKhfqRxl8DKI0aBBeUpzYPdNLwjk97SsrBl/luRMc0HfL9SVYbf8kY4Og0dxjIHugMRs8Tb8MHpycPQi7vd6fJYR/e9mZzORz2abrm+arpzd42HnPDJMvoR10pZksO22ofyNqfeG1eeB1OiICZIvtJorOcMxNwkDuJ4rYbzzQGMNL4NlFQjr0JlVVTRhZ794IcD6zz7IfpFNBI36A51kcL/f7oVW3BSOy2NR8Wj5288PgnC0W7VJIcT+7+BV/7/9SMI0hbanaSaw/0YdQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.ocottejnj15erixwif1dizcbje.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002","name":"0.8.20133.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31c87c05-803f-4604-9751-1c2c0eb5258f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5ac3613b-be85-4ff6-8e1a-7dd53653495b","vmUuid":"5EB839CA-D712-EE44-A255-C68C29DFDEFB","clientPublicKey":"MIIBCgKCAQEA0A17z/ica79mSL2y40iDfUgzmZ7ia8UNdxmz1rftFo+s+g16fM7YVk4giAT60EB9W3mwzeUqo77riGoI7gbzkMaaPg684wdsBv0cMEota1IlGBs6+GuT02mBladndR9qYPAUQI6Ei2QyxBtnIbyZqxmA4aumWn7xxt3WkzhtwmxlILI2EmjjYeJ93Khl9RJ5tISqh+l32Jj4FllU50hwYH8UHhECSE/Nyp8I78xjYmOvGOUEEd7gNaUVE/QNALMOIOuE+rWAvaJhZvKqbD6Bg5p/jd4f3i7T0UxjmuN5j9FNoLDY9B20ZVzJnF/45nh7g+V/JDNAlCn2n6dG06yVpQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.du5nllmmj0oebjzgijjfa2qnqc.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_RHEL7","name":"0.8.20133.001_RHEL7","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"ac11c9b1-3ad9-4fc9-890a-1055489440ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c5b1f106-94d3-43e1-a0c3-729f640f1c64","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA6ZYvy1E2a7AdWmjlbfGbvWs/vtgD5e0QbjDVDTFS3p7tlt2pV93h2eKGZMActbRV3S2PPvpmA46TlfaoHBZ2EP/MkTfM8Zv1rsfpoqtsYH6NF227WYT1JtEyLD7ZILiVhbOGkn+oFJoXei+PntLLydzl73uqRTqZH33h6MXqpEQtxl7+Ebqd696pEmL1HMc/hycC6RSlnZk3zHM9THFZvGS3p259qhfphEMgBQNAxQvmVlOJGhBNwkPRFe/Xfe2ijINMeucgdM7fkDKJUVhBUBndoMTDD8Rtm1+AG4B5N8Frbk8glsAlO1N2CaaIqmyPUgbZL91a1JdSiVjdxgn5KwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_SLES15","name":"0.8.20133.001_SLES15","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"0bcda18e-8db6-4455-bc41-f2331bc8972c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e0fc42de-fb94-4b81-900c-0c8a6be29768","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0kyegZbmaNytvkBgnziwHzwY6+OC6EPRZy+T9fFOxgAG+2CbU2c82A88WMcBE9FEfBR4BSVg1L3Lc5DINiaclxzQ7lSqeeAaq6r4z33Rvj4e4cvAzALClK4V4t7A3cTqPwm603Qd6/nRhzlG/kaafhaSWwgmfgspN5HYQHIiIq2/pBckAEacLl10PKaykUg7pq14mzZI+hCxFawSDjBZ1eqwfV++7WBeITRhUYAYiWVy8o09oDAewFdm5VETA46UpSNa/G4pR0DhQxOjaczCi6eaK5kQ1UfP8B245A79dzr3hq18dYvJT5XdItzvZTrpBwDodtQHY48RQoMFTetaWwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_AMAZON2","name":"0.8.20133.001_AMAZON2","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"d592c835-814c-4e6d-9467-36d47be88c83","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"094942d6-9f14-4457-9f27-7a212f6c87b9","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA2CdTIQw8sM6RMXvMG+kBjZW/QGRV22JoDSrYNKoifdVKSKlDabwxestcbJDewD3YU8BisZdQq3XgnsdJYI01LXg6PeRvF2o73ho+Zlf2OXYHkRPUa3gfvxeNvvWFoPgVxBk9/uxZgJAgNSkvcZBGJXCJAak2ezvZXVrcZd0ht9ZPltl8P9ZT0zUxdjdfFXJiKV1vdMHB6PFOI0zArHg+MIPWK26M2mrBsNewLFBQhSNeTq7RAEUrY8gsGcAU2LSzC6jdHSG1dc2b7QVEA6bIK2HA6fKk56UjcLcbOs5VekRBaIOJ2icTCoAsyqI4WQwKaHf+wGRRrfJg1MWQNCunkQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1ktiq4_e2etest","name":"George2-SLES15-1ktiq4_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"3d269f62-afd7-4781-ae8b-d05d9c36d414","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f9aa01c7-058d-4043-8290-3e266e464bc9","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA6YgznuQgPENqf/5FCbuZcouedSKQkQaGW/o3rGgTjnWCd6D4i+Pp117yvAgevvjpg5TfDen9DcpsYva5QcdCpuquXtrKkc+GiTT+fR/Oii7bHtEHDeaU8viZzHZULTWkt+vUAWtRUSc8BPdhOKkdtmr+M+E2gGAl82ZQhCffw3dxpCJ8K7K1+gbGEcVcdB9cFtuBp0Q2svSD4EBxcozJ4Eu4GU0WWbifk5sY5nV2fAQ98B9xieSUU0poza+gtYPkVBoldXSoqdVEsPTdEI9CspIN7+oIgwB080aowM8OnjQOhGn6ab6X7v3qx/UmwOdkoC0r30d6Bw54Kr+p2y30FQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.interng5nz4_e2etest","name":"ip-172-31-14-156.us-east-2.compute.interng5nz4_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"48d592f1-dc2a-421a-a363-96e8050c3f9f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"81d8d8a2-299e-454b-87ee-4349401b73dc","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAwjASU+RnGUkUCOCBKsFVeRUBIjOl5g4NkZFqB8n8QHzGUvZB5dUCl/z2rFR7NVbhjVXRBirK1OpoK3igaqzCDxRWd3Eg81EgyuI93Uubkd4/UXVc+xQNGpOCjcoRlg8yy5Jyd9TIlWnjc0n42CG67/s3bq/nWA5rRRgjKYJBTQaDUQgJU6YjYkxu7VJsoGGfRliG3x6TQP6bD7O1SzWfvY/+EFVT0hFULxhwneOhh4/e1x4hEnXYRMez+LdouVBp5WlhtxpCSvWSEuIcmnkzItGR/+ZO1Y/ovenA/0iCb2FymNcOz4zYilw6j3OH5wf1Fw1fyn5yGPlsX9VJ7PjVlQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7Z8PiAAAAAACA%3D%3D%23RT%3A1%23TRC%3A100%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiAAAAAACAAAIUAAAAAIAAAgAAAAAAgAAAKAHy%2BA8DJrgGLAgCBAAAAACAAAJ4AowIAEvhBQQHrgAuAE4AJgByAIoAJBAAkcAwoAAACAGFnEJDgDAwYAC%2BFDMACpxAAKCgCGwAUIAAAAISdAQAggjMoYAA%2BhQjAAh8AQII7AAUCAAAgcIYCAFMAIIJTQAEAMIACwKEzAgAxgALAMCT1AfIBYECBAVQJAIULAAAUGwAzBIBiA8UGWBIA6HBhAN2BwwMAUOwACAAPgbiA3I6CAAAAACAAABoAepsFgAaAG4BYgAGAKIALgNCLZZECgBEAJECDAAAAACAAADAAJQsIAoAIIAgAUAAgEgkAKAoAkQEAEmKRcQIADCiABoCpggHABAiBADQAFYC5hSmAhAAAAAAgAABoAG%2BBAcADABMJEggVQAgAP4o0AwBCBdRAAMACIgBUAAICJ4BpgA6AAcAABu%2BDoQVQAKMCADAIAIAAL4FfgDyGMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '147741' + - '137426' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:23 GMT + - Tue, 15 Sep 2020 00:27:40 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -410,8 +842,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - c5c98724-8e03-4907-9038-e959461b3a2b status: code: 200 message: OK @@ -423,40 +853,141 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVJrb5swFP0v0din0TAgASpV0zGPzM3a8giR%2BpEQh1gowIAmaavut%2B9CsqnIso%2Bvj889vtz3SSXO%2FS9Zld3k9n3iI1mlie6nCCe3k33fN93tdHrIqqwQB1H1N9nbSytu8vow7V42Xd7Kppd11U03M2Fapp2ru7mTqebcylXbMh1V6Dsnt%2FOtsd1o06atj3Ir2m76IPO27updf%2FPzddPKrVsfmpdeUKZ8LyvR%2FcgaqR6JSeJ3uvbdUTVb1XS1acVRitPXL10pm1VdiupOmTHFYoqu98OWVsXAMOss5h7hP2cUj3jIxJthpsuE4%2FIpBh16im7EKyLZBFaxOyBNI8yTNWESMbj%2FRGg%2Bmxlz2gXhwEGx4PJZdmC8sUNFD8bBzgwPEUmSmcAMyMQQ354jYgyhMh1mGvr1jDn7KLQokKbXW6%2F3CE7wwZbgkXtVCFyinMQeDuCfXCDGYh2e42g3yrEy%2FUlgd6YsQM44pA83ZGzIGzijNmVl%2Fx1Zl5Ndl3pHYswDGBehS9y43DBeR5eOnRRYACZoDYETkMLFwsTiFAyVTKgaAPfZ%2Bje5XkQMvC54VHCKBvcxyh4cZCy5X4PF0BA81Y%2BSFajp3nHQ9CPG4wgRvbhImI%2Bli5Kez1H4S7de%2FauE%2FdmnQ459ykALvWGoKx9qGHh6RAKUcZTHnnDkR0DpCnjPGP%2B4%2Fo3ao82qQlybZeyeg%2FzcOyPnkFFNr%2B0UUAl1xfKGMfMmHx9%2FAQ%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7Z8PiAAAAAACA%3D%3D%23RT%3A1%23TRC%3A100%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiAAAAAACAAAIUAAAAAIAAAgAAAAAAgAAAKAHy%2BA8DJrgGLAgCBAAAAACAAAJ4AowIAEvhBQQHrgAuAE4AJgByAIoAJBAAkcAwoAAACAGFnEJDgDAwYAC%2BFDMACpxAAKCgCGwAUIAAAAISdAQAggjMoYAA%2BhQjAAh8AQII7AAUCAAAgcIYCAFMAIIJTQAEAMIACwKEzAgAxgALAMCT1AfIBYECBAVQJAIULAAAUGwAzBIBiA8UGWBIA6HBhAN2BwwMAUOwACAAPgbiA3I6CAAAAACAAABoAepsFgAaAG4BYgAGAKIALgNCLZZECgBEAJECDAAAAACAAADAAJQsIAoAIIAgAUAAgEgkAKAoAkQEAEmKRcQIADCiABoCpggHABAiBADQAFYC5hSmAhAAAAAAgAABoAG%2BBAcADABMJEggVQAgAP4o0AwBCBdRAAMACIgBUAAICJ4BpgA6AAcAABu%2BDoQVQAKMCADAIAIAAL4FfgDyGMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b05abeb1-be14-47aa-a52b-3a7e48f21fbe","name":"release-b05abeb1-be14-47aa-a52b-3a7e48f21fbe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"865ce4c2-b8c1-491e-93f6-eeba8bcf0827","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181153188132125421064233665791647965848938676520421921103129530047960861101654479628586296873688749178576139391483809241552712353999818462736538523293635161466851176841271532724592383756947272333290856436355857384853533169875135992295412684768602","osProfile":{"computerName":"jianyunt2"},"vmId":"78320235-5cb0-4fa9-a559-5e53d866747a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAow/+om1YS1gaoKcpJ0LxWI9Hlf34QydSjhS83Km0wSBif/zsRx/6i81MhAw1/Glm84sBYbMmqh+LxYO759ifCAs2Wc/PT0VKaVZ5rwzKiC8+64DzrsMPq+4q1pyKSTD9HC3G8TEFm2dqPnmZyp3HiEWCh8aED7PkXD7+zO0JPWU9zP8F0Qdjp+9Qg6whqoXsKOap7fjYjiV5vet3vWgIsNGlvgCpjs88p0XR6CtKmE69XG1BEwV12LmqtvWhW47ljRlotNf5Onai/j36wpWVyws46mJMuFWaQgCzEFyeTn94EnD07o1OZn37ILwcKlVHkNs82FXqK1cY4BYmgEcgNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0806ea99-bb26-48db-8426-0a750514348e","name":"release-0806ea99-bb26-48db-8426-0a750514348e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"aed47d1e-161a-44a5-8be0-612e9fa21fa7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41899311343109754995008874120459408445899379834085155459832982718796212341448576324914305477048306243470609349445846443142899120298538493556029837217179517161672963539252056649814781661455838646701323987038874880448527769160","osProfile":{"computerName":"jianyunt2"},"vmId":"91273aba-7192-4d5e-b71c-04003b18aafa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwAch5hwZoO5eOxLzfQA9h8C3/xu472gHlv4Ep8e/3bLpcWY6yH9EswtDCps7Td2Qmw+QxgQYB7XS2mUD89oPezREMJbvI/6S4VRvwPWL5rN7wLQAac1l0O1s7ZUXc/CgkzoQj1CWfj2Aw3V0v9Ayt9XzRjuZ8l2qeChuMMU3tWp6AULgAWHji25V/P3BdACo83VbUpIwiV7KL8lEb4hXG5pNaBZi1SLXDTKfWbFpMxoLzT1ysPgAH6gCRwCqm6zJn9Luxg5tLo8VNOqE9NvuRL5s9FL30c8PDY5Nknq0c20bt2Iqxe6BYtGYna1zG0DnD9M/IVgZfBrmiy5SC2mNEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0f4c5e4c-96ba-45e7-a28f-956ea774ae0e","name":"release-0f4c5e4c-96ba-45e7-a28f-956ea774ae0e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3d8bb620-a0dc-4c43-a716-3cf9a577ae9f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182683685363386671349537025567595411554976967575939189896688576422629363648811540828684643524464311490976135889534853298867851712527902717773555962793972488742341646366499411282","osProfile":{"computerName":"jianyunt2"},"vmId":"5f5cac16-46df-414a-be97-88bf34cb4bf4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuvBJ7ytZc5deADE4pPmFZHilr6z404U4gGTnPAAm6bECusPOcua0xPyIA/rftrRe+XzntnJ87HF1F1S1plIhr+RuFOT8hGqb1HZxIHmRfAKXmjeCdzUG1e7ynuAsBtZlS143yqwzx3ErllM3523FYdvR7PkzXavp/pHRu1V3vCAksmekM1aarlyyhohCSanUVyLKFgmq9K/KLZ2eog5hwwJKg5rokJ7WqfqyWX2SOzHB8ok2K+L7xV4q5drYnPRU8aET24Bf7a08YllGBPld91u4reA4w69eIXDXyIxYGVITwJ/YB4HeE8L0tNlcO0up1g1zSsWLS3IRRrR26xVEHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b443977f-3b0b-466b-b0ad-2db010822c2c","name":"release-b443977f-3b0b-466b-b0ad-2db010822c2c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0b2ad637-01fe-49d2-a42f-4383af95340c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41855899179665862836119106774923123378744387484445255911595554316230481338159671518649992463625326560138148805367278678282260550083174681053787227327327864472900441317697975748767219605367510355447980","osProfile":{"computerName":"jianyunt2"},"vmId":"9480bba9-7fa3-4b70-94da-fe201b42c405","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3ZfhywB7k10ILLpTczC3Le4HJiV51jbWGjVmJz6WkgZbEGdqyrc+Lq4D1Jy5On7T7iEdYIjwGMTJRQDh28Numa5tD4cGjnu7u/xZ26cJYyiKHxsHDDKgOMf5fs8eK4I7W7bZ0pEzIlmxhWBambRxeVlr6ao9iKRHa+YBmLQvDZUglEKxzIx3VnUEraoL0x4akuVcIGk/PkAMLrpW3eALW2N+HZk806TraxbdcN6YRsEMfgEL6zf4mnS2RqYFx+TCdmYupEJv74Elm9UBD2aYARSX2Zvgyi1Teg7fbidhLF6g/ikTWaNLNVdtit9G3cY3GxkI4MkEY3XWS7KzSLjemwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-69844284-0b29-4cb2-aae3-d6c39d2691f6","name":"release-69844284-0b29-4cb2-aae3-d6c39d2691f6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ff90db10-60e3-4ab1-81fb-1cb2e620bf5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188890896895904238690540022889706513756382925578794422206056659896146528456367244306659442441357767388622880254426578414299214882294306793383476293631543737867196861397266149103525875713443272572732290705559287032569118462217166868334074741291615144791017","osProfile":{"computerName":"jianyunt2"},"vmId":"edab67d4-29c2-4c91-8b8e-7b01c45dcfba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzZtQuX8KUKki1Svt/qlD1u0diJX2YJcaql3BAcUftOSaw3E0oNotQJWZRxAwv7rImXAVh8DQBupRqrXWjohN+pd+2khxNsO44jyPc9HTULcr/nB0v7BZocRev54/Xp3iu2zsB9HCLiX+SCIR6V5NXeGs6zSTFMJ37tZhBfNi6KPzlaKSHEFRrDMoUiyTB9jAoWRRMI0Kel53dSlq3RYts6tyCRZTYmOZW0Xw1/XNHPjchz1++7JQDt5fGnidfGeycgCF1uTGFtUIGhmUIUrdz4LA+llugahXj7Bd/QWicnKjg0M6c0zx53za06HmN13W7pTOji/mdp9U1dvsDX9LpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-15478faa-d263-490e-becb-ce4b8714efb8","name":"release-15478faa-d263-490e-becb-ce4b8714efb8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0d082c5c-976b-4204-bd01-765ab0bf2346","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41872291683467365232864112651340409965241970968217923415683806157867796154157686989191966088973610975278826229778040816623967533418435266987326908752134530624265862295412986515537637943469746271717896872068042958435587664053567","osProfile":{"computerName":"jianyunt2"},"vmId":"971cec10-9932-4934-89f8-29ed2a58abc7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA11ni1hsSR0C9TXlcSejMvtdwTEdeJsAw/USK14hoph8Kofd7ytUoLcrKbd0VrkRSTa8eSD5b8aJt7RQ3LxmS+dFmXTSwgZp+PNA0d6d9FxOMHk/J2hIfKsjtE43b/TeCrPM9Wb3i4163bMARObVWMfQmes9Egr0oTRHEQxyGu5NCoUhKY7O5bkPKJ50PBfPYOELCNVrhL4spteOuW073y63WrumJ1fX5a32LEhf+hcUmJi3CtySSyit7ZxJqnLluA7lGd/8rNVoD+OX+/m643y5NGp4uL88L34kevYvqSMpY54hP4Qj4z1O23vyt8XzRhYcvcEOfbawV7/oGKEHjJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-64d83520-b845-4495-981e-f2b9df62c632","name":"release-64d83520-b845-4495-981e-f2b9df62c632","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"304e153b-d359-41f1-bdb1-2dbfc354467f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181402328836207575861545751294652170456727898836203695464112715108710983261646468928687761219439428159901961513007034246146406488475245079704792371027085350044924093400626645822690679198542590159096051411","osProfile":{"computerName":"jianyunt2"},"vmId":"a9891937-26a2-4b6b-a755-d20603ba64b1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4H1lLkXPH3IqqkXq56DmU4+nWkafga0Ailq/gem+KBC/qPBcwwtHKOwo9P3O+r7DuT8Uegute3EQYM8Ji9PPvTV7EI8VTkaCJ/tPb9RAN5zWtkUBMgFktek3l/vKyj0bNg0n6C/jb4XGNgrajBmprIheuqQLugLpAwAsrRiC6kyb+U3SDREwjRO4uDUJmMgYeBI5QBZYliBoZriQy7M/ZP1AscROGNmd8GnNJC/oa7LdZgHk/XoviXvQFi8ZOczw4rltCSSUXdPj7k9HgQSa/baCKTkjfYfZi4CyS4XLHWIqoo2kr2+MBLWNHNN79czAK1iCyTW6RcHhHFJFS0hodQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fdcf86c3-e470-4e3d-bfab-f3219d49fc93","name":"release-fdcf86c3-e470-4e3d-bfab-f3219d49fc93","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"362d4580-90c5-40d4-959c-b26e653970ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873565852964368455832762568455741688138515395372435060369316853752264893578733935806971181644181874733023722244294374691481863457986487814849028199847465404325085894841123467537952188","osProfile":{"computerName":"jianyunt2"},"vmId":"bcfbd747-a0f1-413b-9f48-bf94ae1fc877","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApRIOLzmYm6ITFzIh+zMPh/gh4URAFddmxgu8qedxg2+7gDGmOv8z6sm/cbZFUwuGpbhv/cHgEhNp+6bbhIwT8KH3AqjDhc37khhIepBvkRbrUxn+ZjAWoJfcw7eyU6WY4CYdTKJAf0Esigv1nYl2OQMvN8SL8/hE3vr+pqaGujrp/+TJ6+2sK+KM5FG+I1h5tLdIOhB4ibkI1RoQ28jSjRSjYEvGSli0pmBn43ufiMr1CLahgYjmUarYt98hmmSdAKJk+6PVBSid2tVjldQrBzRz4cgjJCvMG7PRlIXMr9nmfxUlWPY2erMBeI1eg2APP44lRF/R1FiXYXSKpVb5sQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-922ffc9c-d5df-4178-872b-6b3eb04586fc","name":"release-922ffc9c-d5df-4178-872b-6b3eb04586fc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f7aba754-185b-4643-bdff-ca5c2cdd7e4a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418206322286896539953681843609619926592405742283911353239061709081930117166329858969655782493934074029593863476419669585606511154730138507889886948047474811949846536832727043927744795302048310915617699029710973080304126200843502091817287093898","osProfile":{"computerName":"jianyunt2"},"vmId":"7e42e803-5e25-41bd-a03c-15bab7a1db90","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1R45GVRpfQWH1wfXpoW5AoPbLxZ/V+XoJAPiy2XmAIImiqO7rQMuSl5RWVBlePgspOyrM2zU71+sOEAXdlUMS1vxw4jaUnJ76+yJ3qYesdZb+u4VqMDFT7/KpWkF6tFDwMblsdw9ivK7vnjjHEvKyQrQpqfO9UThZNmSQR2D35hIpeyLKgypg1dQaqXcAlX2qp/95qPTtJj05OyFN1GSEqNBwUwVdQs7CV5rfdGO6KHNx+u1XNBen1HjLhoBV0hgtIlW/JIUlRL3lo+E8v24SWvnFqZD807ogdx7MrOg9mkM0QeFWkDJP+k2/3Z++daGgX7Ejfmj7jS0/VtUxOlSvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-975d42c6-c324-4596-8169-7a3d4cef49fc","name":"release-975d42c6-c324-4596-8169-7a3d4cef49fc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"721d7183-096d-4564-8822-0d1274ae57b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185187154513522752466940831701688978597827524901947302136101415154644710901790605055515989112194230456197411370648664684999445503438785285986024795173387377867917725732406907231873039759975745566262626226892648037561775303394723406425941257968","osProfile":{"computerName":"jianyunt2"},"vmId":"6e6f7f5b-e562-45b4-bc9d-c5ca70ce9c89","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsoWz5SvLH1EfToMLBWZ7Qushq7r0nK1OmBnOCW/WiIHpZVTSYrFV1wL+SxV+jD+6bpTEJ3O1GDZLOLWbPAMxJ2+1eWaYetvLVJR/PPCXiyWah8LyU4iTRlAB8NBF8pmB1Mb2WlGfg0X+EQefdX4qyF+DL2oPOEmlHk/d+2yFRUKQ1vvW1t7FYehzK0J7AtgouPpLNyHkmfV8t/BWJW2iQclnjbqTcVCC2FGKGKGp9IHk/zQXKJKZTBXhvTmWRvlHAMQLDQl5TrH2ucD96CU74LS+P2ue2ypZD4RqU1XmICXjGPZ1QzVmo+SCvzR0o2zmWfp6rQmQSeDgAQtECvL/hQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dddd6885-8370-4d16-bf6b-8d3d899d7ab7","name":"release-dddd6885-8370-4d16-bf6b-8d3d899d7ab7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9be58758-f779-472e-8a45-47a678d43a2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41881085782565821058755254531479851325234751893272605052377012763226747283337096158128378737098586320590482936825434940033035696439024127597862772200467186541838130536433969358025833041460594763724867258785279405686608770307016380746945496978954","osProfile":{"computerName":"jianyunt2"},"vmId":"e226fbe7-43ad-42cf-a0ed-46f84b25d3ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4QGQwt2RHO41BofW+v48oHzbqHQWuy+XTTs5bmrUbiu9V5OW5C37O1knq3WB2bykV8OKe3YRNYJCq26+YL/BmnsrupTEyIuO4CjI0EnNnWUcn3TifYN1DI+EKVBKdCTusYrodHMLYqKxAim8ec3ojqVZn3EH/lN6EIg/E3SQF6YIJ6ZzJ+E95ELRwUNzeqwqf+WQ/1TOvD7bEDTSxVRBlXt39BX2jiFJQ2LIZ1oYG7O/7dGBaFiyyF16aopRo8CsXFWF1VaGrf0bAFTWpelaKyAvlThTl0KX+QrUgL/e5oa6aOFKRdm5NSfl3toVgTryXZ7oiE2EAW4SAEqM4eGmSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-023d3590-1de8-4a1c-8d59-21ef0307c006","name":"release-023d3590-1de8-4a1c-8d59-21ef0307c006","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0e0ec22d-cd5e-4dac-a505-f663bfe6e90f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895085894287215096506847044550863166995831499560894099810197132809772738716255420821748851363138210357536892489863014230224802142494090885467877466256512333599916879700474519956948794929924962181044465679972736684792","osProfile":{"computerName":"jianyunt2"},"vmId":"d2514130-42d2-4066-827d-d0c75c8f2df3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqJUuUK8cL0kmzZ8FwDSQzS5EOTkljhwpq+98dBiOR7l6G1qnTJeOrtV0HHJKM0XetEke6OAkeK4aJkFYLAiPbyGvWiPJ2wnYkx7JdTI6/7Zjx/Ds6kVtMwJzl7Gs7ipsyUL7W9TB8vTXpnu4QYIj/67PsOco1JIRcAunsCYMqAZ9u7hbisPveY6if6gwExLzM4itLpmWbyW/iGGIdKPWGKssLj3FllJJt5XH9/71i9vnDLIQsfDrnu/DUT9upLTSjXkkSorEulz28XccgXzhaG4+ura+5stsSQ0bK5splg2QYLiy7T/pLz5fwPmnOgZ5Gi+TUqquXEZqTpRX9X0ahwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-482a6da3-6459-4594-ba1b-4f60c423bd0c","name":"release-482a6da3-6459-4594-ba1b-4f60c423bd0c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8c93b2fd-5c71-4164-99b4-f06c06a8e3ca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418506626722354571795407848382791714725477452614457219852464436510495775173220348821982709743145665107673014423392757564395835345830781220419752708438164268424976966501995373292868478964774702866849979078794558621123814425726871721116440062862262","osProfile":{"computerName":"jianyunt2"},"vmId":"e0743ed3-fb35-417b-8749-ae670706d032","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqp4IaDncndUXxC35VhuxpbaQo5iTUTH1U/XPmS+u/dQH36A9Xt49l/rLVw4OuH+oaEIglWI2WmY15lPDSLA87Bgp5Ztbjt/LBm1Jml8P+D6HYHP5D5XpMpb0VX1RBbpL6OpUj5cpJt4GS1Z36NRsiAnRjVDZ8rxU6SqNLOJTsOnZXFJx+LcQDMovDzOpT6bv5o40W8y21PYY1P8TO7w/3tAqAHrE/CWGmR8SNt6LKjdf35fWUFxT8P9qMvjOsP7ZxSVd993Eocxhgk+18tJtBcaVyewu8kBsu1yPsPHZwOSSnQLaT6Mhfdhrfjv7ZRUJbhrK6c5ZycwB/7IN2nRNkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fd7b699b-c9c5-41a3-bdca-0828f72c902f","name":"release-fd7b699b-c9c5-41a3-bdca-0828f72c902f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2e378180-ca21-4201-b167-18a098ff0863","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418447988501942827555192821209450584172846593491887254348407990835859682721225072654125579593402010104297148696445525639594191277413533549432901208474875196071297884774028274380325187833182048831284931553697437891358369337594135881449452153688315138102116093940","osProfile":{"computerName":"jianyunt2"},"vmId":"7c06974a-afbd-46eb-b879-b43cef5e2935","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzgpE02TSJImNpLVNXTyO9eU8YahPWWsl898fSQ7+eCue8imVycbOa23/HLyFg0uVoWiPPbGFIVFEvNR8u9iuW+ZO5/x9793R1Bu2zsA53NYl5Bf3G2xSd82FqoA6eyjy1w4fQLtc+Gh5cPIcgL8+SIsfo68zIY/Q2fmsTnOsy0tWJEs0EScHNhQo/jfPvt/ZoKYPrQMA7EXz17rUUd0d7n44ZmqEgh9kcbYqdkllFbHsw+EsqK1cAwuLxsEBuJU+EiRiePxJDSciuNKbCe1AJqGWMz05FhRIwDLwaQct0YZPW2IDl25Qu4tDlb6tUgOz2JBcoxgMSzJH6/XdcCHXoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2d0877ec-1023-4761-a5d6-9cca2465a699","name":"release-2d0877ec-1023-4761-a5d6-9cca2465a699","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9d5361ff-7e32-4483-8984-328cae1a6aff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418761750314326962148873566976669659789469646167235667162020259407614793137095266494579562461973165934542265324519796990412063394335186992170934718554884122949479126747940376114177730616118532802335881263819418412985417840440608523316981854932376","osProfile":{"computerName":"jianyunt2"},"vmId":"d82db42a-c7b9-4935-9b31-238382dd7de9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyKJvKFcRvM5/H0OxmPnNkO/Pg0pwMTgzw/T+wLgYUaQCSlEf+ppuG++2dB/gwNgNyUqwP1Aqo9udWldvDCqAsXhriWlVKrQMvxr7miyNVL1XCCBDWFJyWbXhnKIQNFmokDJ298UBqLRTd13+glEvSjaioZx1FGLpzDEu1JLyZL3jHCCcMkpURDNdTwEeT1caPkt+Zqq5T7e/SkpvPJfGulLaQ9d8hzWKa6NWYdEUCPcvjXjSPkfZLIDZmUfx1n9P9XcngA7wVoJ1c73BgdHXJeWHUnoyTxEvZzrAUqjAcuYQSlxrI9LM/X8ipN+RCq/JtjcdoQ1oD3arApqlneqcRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8013ad59-9d43-4321-beee-604d74fca527","name":"release-8013ad59-9d43-4321-beee-604d74fca527","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e017c0c6-7d38-4d4d-b7b3-31386870ddcc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187059685555423640685015924242233196161867869521151806247310018072278261375043812917740452977330950847141901362396075563811793423900210454366043704850716571458875852655357293577816960020714782556479995875106256891821290903","osProfile":{"computerName":"jianyunt2"},"vmId":"8c69d3b2-6e15-4b1d-9798-8cd2d26d9eb7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu0IKtJ7DqTPmi0qWQcoMYjQVIsDyIEn5s5u13NlUeGayxxjJwF/diI+Ca8ih4foYIe/qOn0mOMxVoHCViJ7sqZm+TsRedZPAw40hZ5o1oxXX99g9l/XiLUZcUcUDKZdB2y/YA9FzGLMEHfYU37psKnPCx7t4LzX3iY06Gp0XUzsyai0sgy9rB85hDcEm6RLUvWxJouqSl03heXH2z/tGw4AfBnLWTQH59ckF5mT64/+rykwVrtKa6dGl4VS7TzjvwLSKU8AnontAlVm8KrUsC7p8vXot7v40jnpX/s8Q77nrzIjUUphvwZaimCYuHTTRrhKafWdrp+IB1jd4Y++O4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1149cb18-24d7-405b-96a8-06d040903b11","name":"release-1149cb18-24d7-405b-96a8-06d040903b11","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b479be81-f645-4a27-8d3b-f61b5f5a29a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189003871052038202481456405840103518679038151579424615035417450653713986265428883684135837809942498268018119404278459375880342325166449346844722258745637497287822697186550320840282716827027686173289193586892052","osProfile":{"computerName":"jianyunt2"},"vmId":"d6a0b927-a4ce-4924-8d6b-83648c3a98b6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzCQJYj38BTgqEIxKdc7+U/viHlQeXdeHpMFMDtzDNLPNKGaBcc74qhdhrotx2IPs5p673f5i7/8msJSqTlIHysmzDlLcdHa9LhczKDci9AjJegPFg6GxO2wLeUrPQXprADvamInRO8XsDzra8wx7XX5U/B5O81wvF/FHBhPQUauEdGiEb8wY6khSKS+fqaBdsfkO5bgm0jDCuodyqao+LO2hXNpKsQ+n8vl2ovjRFYQEOSL6HlkYD7KI/9SetrUc8D2jVEnWyAV8yV1wmJ2NE5+e+IKkdLYKhm9ZOloeZtSiGoZ7wXg/0MMgtNqMokbL9o0rzeTI5Rj8JmkWu4Y7NQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-60c332fc-b620-4dc2-b554-d647d47bf140","name":"release-60c332fc-b620-4dc2-b554-d647d47bf140","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b2bf9339-2dcf-4d81-9d0e-3c68b855f492","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41852818074276836416535986559088805922439877838617747657611945721404571826397050287919901469067098891510858186421124366215510376199139805948915762984332612094271475281565314847075463861565989152291970282628694883880087731860515215196835241276990","osProfile":{"computerName":"jianyunt2"},"vmId":"a4419452-6d02-4617-bb55-9137fda6886c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzhSIvr9ErjKHsExSZu8LecsDNNkuzy2zJsWik4GLfwA6jYJP4nQMEuTwe0NTIFKZz8MRVGItD3bD6Y5oEJt4ikcs9VbV2HxG/kkTqwxQPj85egAQX/FhDMPckDfbt7FYsmr3lQ8QQL8NUKcvFVohjYa/82eD3l+puKXt4KW/5Oq1xngcd5vCL7OtIKTqgUWDz7gh15BpQ2a0hbfh5qlTWxer1tOkkP3A5/pF/AxMPVIkFLZ6LQPyvO8QpS3qHcThL+2qxNvH1o2BBeEpVysTP2cIAaiYxu7nsH5idTDPCwL6fPp5n2Es/VCNxqko6AbgEHxEsMbpC3U+kf+eAjQnawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9db50e5a-f0d4-4c8e-b9f5-66151c8adff7","name":"release-9db50e5a-f0d4-4c8e-b9f5-66151c8adff7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e27408ee-c2f5-446f-8dd9-13ccef00d2af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418176878286276651036238716972592953244257336899849665994438137110542934751732747293824406041776561586772030468086991233199695018292420876321104447270355099161346638003610317322695560853591826708354547246140284165051459","osProfile":{"computerName":"jianyunt2"},"vmId":"94cce8a1-1bc4-4475-a233-f2800d54457b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuoxOIJYCrj3AnUemRuOK5X4REnfNvlMuo4SkSqDXe7XLVgaXiq5scs+FskSSVbQ9ck2eizt1Oc1FzdShiGQSeSpE5ph4eL5DxLNtFBtY2qhGVTuiXzy8J2pev9mSKQ++rjC2JDTDNK9upjqYUK9XnfvckH1GUE8er2vLBifR99vQtZUr/SJTYdO58/pv+JQPSJ/m/5AQYVmzmwKi6g+azf4xZP6LjL8vohmji0XT9E5hvLpfCjeeSQe9eXbYcywO9e6Z73zrkVCxR4BC0YAnQLkwRpQ4m2gPpDmHw99jhTXVkpKgLffqrOyKUPsHgMrByGSUZnx2ZVyVKbUlZFaFXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-50356e5c-3b6a-4bba-a851-aa3b14ca9c13","name":"release-50356e5c-3b6a-4bba-a851-aa3b14ca9c13","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"20ff06fc-89be-4ce8-acf5-f373d16660c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41893112582821863771797896362495821151999581507427240881585504665933321632595467142046981142741695519673148293996410908019433418815288719142496403063953759732101020944696635657438214047341723444311968560096351726964523835828729","osProfile":{"computerName":"jianyunt2"},"vmId":"b6990cb1-f49a-41ea-9fd6-0e495c0fbba5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu7PyIDCxXRttYEJ+FXljv8uDwsQs+PhAmr4yd5UlkqmHN1SzGhLQrSjjgY0/ug/Vg0q+rY2qufYhO5S/qQUcy2PE5WK0rsnnOjzExDSUpNly4ssWBD3bgJLVX07a8NJgmvpyW0JF3Z0Js1KXEsgEInwKQUHHzJ1Jig5/w4c5N2ypepfgR4cpUZXUQzL0SKVLCUmrOgBVSv1Z0Lq4LXxkBXbU61zFKFLKNp9Cgp3c2gUhHudnx2t5mk01YtNnTcgxb+FgIm5uIlYpIakRBWBl9Zo3V+BctApLy7tGtJ2Z4W/RslEvRLkTRECDOvxS4TvwEqlPQIS9PrNAcymxjk5nZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-20613099-4447-40cf-85d6-e963425648a1","name":"release-20613099-4447-40cf-85d6-e963425648a1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9355b4d5-8309-4ff8-9057-964564ac0970","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418697628713724329792337459609459444547197852240751026644509309712404122416961943070963455319497459815173256490985425145827676328374545721142129582565713121137808733547083347244715888212407198950473751456361956582","osProfile":{"computerName":"jianyunt2"},"vmId":"8c405909-8e4d-4d37-a16b-a8e00387eab0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzbPRxzKqK+MSrtGuM/Sp0z65aRkfu6YS4L/1Euoa11C90Mj6RLh6QCpMYUaaqNiST1BRR67Oqb5JSpoVmrczjbPnoIwaDsvTcgc7soH0L26yWmEKG1eTnd9w+6/MSTdRbnLJSUa/j7guwtCIgzuMZR6+zvN4Mz+xbxm8bTlCIttM959O8+fnoECWTv8O1zwIGBW2kRGHrBelyFzE+jakEMwBT+Nat5RlxMOZi6FdVwtSC/BwtJ48PLqNSTBdNSuRp/p7wShTtNHWGokDLfdLOXwuqumePKYKunYKFF2fxPOxS+MouOfXvt95UuG7lXQi9HKVYQxTNkQD/0YtNEUhDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8fff389a-910f-40c4-b00f-9813ba2008c7","name":"release-8fff389a-910f-40c4-b00f-9813ba2008c7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"82671360-7e21-4230-8fac-525bcceb257b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187176254765565658806102085763912804658573348488849802644418271614896484221405683504670150047045641380024763393917665797957546225574873120893951911287938118694149926494667263730419337779935184558479","osProfile":{"computerName":"jianyunt2"},"vmId":"d2c01013-73e1-4677-a9e3-486d7cc77c2d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzDs4DcR14SpUDig1J6nTOQ02nmZrp4TF08NC0sPWx7dd4tdyh6YAg/U7GYHG523VYcivX8f7bTHXHsKvQ0FRMMvBiuWS3bRgh9rrnXKxd1AO2bmK+sstj53+o/6I77zIVZdXlm+taLrzdhKdfy6y+ahpDHik2IAVzpOnAillsTMbRbGwjCn7WsaH4S2dDaa5x8Dzv33f5t3WF8j4lDNntbn2skv2AZMU1mRSRFiVGg7C3h5g3AXjxd3KhIFs1fCZARm0vlywGbR6MJ85Q+Nft75LgK4/c5EgDryj0F7BhfrtxA8Gj+ocuklWDOfA6ALiMSgEtqTVJXfFUiWiS4DDqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a9aff278-f4e5-4b4e-b6a7-805634cc54e0","name":"release-a9aff278-f4e5-4b4e-b6a7-805634cc54e0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2247ac8c-b35e-43f8-949a-8c8bc33e4b21","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41831735483976844298601766597515008770649088622576248973891205033563429064745971542808148734499128303624362977530553217960215726557083119482938927168037555794856389482237123243982489605675649662404269398138936769785161525746484","osProfile":{"computerName":"jianyunt2"},"vmId":"e1fb244c-86d6-4663-8271-96106e0c5291","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu4ei4mL0mF+/hxKUtzirQ3Wh3Zik/X0kJPAcrJ5oKZ2SWtgiY4VXzMeAJ6TRR2KeL4Gm8cZ9ccNXoNyw8/+fR+Z3oqDbcjOHBuGQFRzLYKUQDmuRGCJO0b9dsPNjuJhbuSZ8pQSOFZrEbj4BTXzQWVNZVoFICWGsf1yzJi+AT2+gXA+K+cJD3csUAuOGgdkuuCNh+xlp5+tzFoaMUQS7Fel+oQbBr0jT0EnZVGyhbndYac0wF4uSfZd/te+K/CEeFU4xJTXMR0+z1vGqPNZLcYmBHqNrop76rf8q1/F/mH/ZmgNrguAwHc7V0tgA1hCrg3ls9hzRQ5jC0xcgDuqTiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5f92ffbd-feb3-49ff-8c91-d4aa0617802e","name":"release-5f92ffbd-feb3-49ff-8c91-d4aa0617802e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"175b9485-e387-46d4-a703-954967ec71c8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182905686789406853940734923875850742068606802329238528782835747213804097903775224517067127462048717342674397643087399689351192776650637343915470808227800094399067714264721059292261130353427391773318616726626293946632819604308722345388201802450737238486","osProfile":{"computerName":"jianyunt2"},"vmId":"e28decf0-d408-45f7-8b29-3c8783d097fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAkdTgANteO37m0yHwTXNTdXrpXBLdJ194iazxAk5Ty0vF0bO5ejVH31uwJcrubGSO6QcTh1bHHh4zq9qwCgPSHhqNuRcFbPT+9Cuucl1TSiRd2kEYgJZdFMCn0LOyVYNjlE7Bnj2h5g+gnI++ILhyYonvcyauM03usYJM5dTPr7BzOsQWSdkws38MX9YBYpeA/4k2Knlh4BG/HyXkuNPY+9OKzlkSZ4rgjXA1qqdfkQPM49vnlGl1RgbEEFwnjhBhlvh3iweVDRps75l/tQXLRJOKN22vaBo2Q21pMPG82g6TIZr9aT3iDN5pE8PSPEOm4Tkoh1IahbHnMhTJBXCNbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d2b0d8f4-7d0f-463c-9431-72b789fe2838","name":"release-d2b0d8f4-7d0f-463c-9431-72b789fe2838","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"37c42d35-0aab-4020-a7a1-c3fb5f0f8d33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418741724472328815413152748421548393523912597320120082679675787274695425182538136042066754560760663440404688357682213295336985974447628386751785439928050973465838488566549937437805298649164721081479200597945028429525238704","osProfile":{"computerName":"jianyunt2"},"vmId":"cf0b2ee9-cc86-4bd1-b29f-13b05c4db630","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwu13AIQxgCxQ6t9NyHnt0ynyNE/PMzXFOVrdvtUFYS1/IUeMD7H1NkRjmo/5AwsiKOVo+yaw2MrbfhYgHWIV59rA6BQesqj8tBT2Nt4jguSbCB9Zonjn95eqbzFsaznwIK+/WiRoFalKpU3p6HUMqTNeVjp5p/BD+rZn8t+QBMEv3QakhplKiTwnrFDrulCbuLryUes8Equ6jj27ScsDbHeBTob0szVjN2f9A7xQmnJ99f2/5xFfhRqfipzeHkTW3OvxOiAgSk8fIHEkZ3Zpk5q9GDt7gpVE0ijEmB89zHSu15BcvYoiGeOiwfNAFZhsSGrTgr/mwNHNjQIlTMTBzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b93a0353-ac84-4a45-9bac-1f71ff5257eb","name":"release-b93a0353-ac84-4a45-9bac-1f71ff5257eb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"475e5ef4-cbab-48b4-a626-c247eb9454ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418395785465833374622465063223333653070355403423512076389129883234579332572333876187442212191675612380341737213353650797358686152426349324885710085248582767648107114394549212289","osProfile":{"computerName":"jianyunt2"},"vmId":"e6628e4b-49de-4ffe-a438-b800d301d05f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu5IAWxqNjpsn+Uk+V9Fcy+y5lt0RJx8unQs4RioSq+cogK7h0gfVFpNNzLOXDwU/ueQRkR59vExgiAkJOa5FdHrj4JPq4WpZlOHC6lbqrxmU9PZdXmx7aqHM+SDw0dGTGq+MeihmTsV7LA/aNy6XxAejn54NDEZH36/AOQN5eX81vUlpFoNv8phmsBVWP0pRtfXPFRlJhhk3mQ9EgGQop0dMJn+U2MBVSHZSkh4WGt2+TmVsJTKGLc4jv36MDXnCQrlhuFUGSZORI8EtG8/aTJ1VT9HsvRrLAgutbsPnkWO+VUlPFBuPx+MPirnexVRHcx/R7dIEqlFjbQAFiQYVwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d0a5ebe5-80f5-4eec-8804-64a0d8253d9b","name":"release-d0a5ebe5-80f5-4eec-8804-64a0d8253d9b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fdafe6f8-4544-479c-882d-e3c883ca7433","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188936933394875519590960389069754953058416299419264094875368947441185240370406508561285678410394267435755334743322528947035463754939239661131599153771253596481450821274965600727734642942453489816194992165188101285862145494191871379115889335980","osProfile":{"computerName":"jianyunt2"},"vmId":"51390830-38a9-4191-be31-ab33e0ef7c88","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArNNa4CUrBc2cdV0PdALkWEU1OTeGzw/DdT8f1fI28DH8DKdtNDSSvLEVrWL+La7482lcRtWeteHXQbXPrmvq2l1RFic6gEXOhxv7284c2gSlNUutnNuLYSIA9zlDvac9PXp0ibrMDMGvB7n7mX6qTCR3dxZ+DeKy24Y6Le7E0xoPkazTQDacNVT4krPlZ4Vf1cDNqSE9zIUTkEeUXHY4jXlAksrySMYynv3ObjJaQISPogTNaUlZylRkZPHWeS8cCqnGYIrJmLSoLvX1Ns6xjT8llB3UbV2LCBvvDusv3jL9osufAO13Tcf5+dAB+ed8eFuq/xmKzXmQ6K1+xt6ZUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4d518867-2fa6-4969-ad21-0cadcd4d1df3","name":"release-4d518867-2fa6-4969-ad21-0cadcd4d1df3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"eaa66dd9-85ef-49f1-ba0a-e930473de4db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41844962438156411253721784549539056164657773341988020477249378651501128197144232815660636415619155258222629031291552091163240218502634600849221591401756995668844636099399674257183801765264361258799653394293552150236443835596640283722993709440174762692","osProfile":{"computerName":"jianyunt2"},"vmId":"ef632336-2ab7-4415-8192-754ca4593aa7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArXFF4+B7hBtGX30+aj868HhUjHQlzg2n8vy7NzCk688ibvn3UopX+Y7Irb4OsWp70e1Eh05QGybAdHKwLcSSfO/yGegAirPYS2tmz3w2/f4RN50XOPd17SBtCN3PInq8uIjutV4yaxyR5Bn1dyTpOtFCNyFboHq3v8BoWBrgoSmpSZXmpI7xTgY2l9hWBNNU9C6U/eHqbwefgONhjhDB0ggtlZR68wEwadx/6OfFzucZ8Ys6rTms8GBHv5m8cPrYVJVREAmpINiDT/9naUTEPlgRDlOo/dadHXxSodmwTQ3yDryeHAka8Np3lPrHLT4634nRi34ehaRd5WjvFtsxDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b60d1a8d-107b-4825-8891-08ab341ec5ba","name":"release-b60d1a8d-107b-4825-8891-08ab341ec5ba","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4944519c-27cf-41cf-aac2-10b4ec22a83f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418819169251223314081152016720206550777532444076637065677523574837155655936094311987532598999068409469112966536817334626856306695808608983134737659923604945521263345546245611500131198821187120835995639684597150313549","osProfile":{"computerName":"jianyunt2"},"vmId":"756b0785-8dae-4840-a4a5-12cae979d938","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7worY9OsBbrlizKTGJOy0KeaLWWbQJm4HKaVyCXX25m1Mp3Lm3koZ87Sa0Tcy4vs8ElpyGqAObNA1qSvFyUkFTV8F0f1k5XRpMErpw3I54i0/5t+SjTYBvDO5hK5l5AjyWyl34TOcoSvgjSbgFzCX3g2ELOtzd004sQ4DN4pWjxLsneUECaEf/ZfDYcNZVHfOx+ZoPEy53OP/LI4FIbnzanIeCZkRtWSc0cPyUQFkgoRTQMkRqd9jFUrTHdT3RwfnqD6G8GPbWyWVcpJYWJIk4HcJudzwKvMK2gmdRzjF/sK6S6zf1AnnJ8VSxpl7GcnhS0V0YDFQw+ZIlxr9vhZXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a40155c3-a7b3-4eb7-8db1-d5eb67b711a6","name":"release-a40155c3-a7b3-4eb7-8db1-d5eb67b711a6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"979137f5-bc27-41c6-9233-173f3aeeba81","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418861075229300233975352543878851313146573727617917045892915172970121622252848061724648440526442687779987054939599879409610760515183100572739202646318735043783551433118528363757120134322361993301301743368365618432263413484201784202359424660217928272","osProfile":{"computerName":"jianyunt2"},"vmId":"022fcf16-6ea2-42b6-bbe5-d661de8b25f6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx2Nn1yeSQf7ZFa7jHmn2L3U4FAot1XxVI0JVQbtvLq8TgK3KEA+QDShGvEBXlpzi27+9qI5mHG4FgcCYH72mTq2cX43kgflBLpTZmKTET2JTMzcg2df0YwsMIAHwRLP6lBKg8fq9T6+/XNNHLggcV3hAG1EDP4ezuginkxqP1RRPh/Og1hyuXQrD/kj25NMetYZnHqXwdLXhJ8h42nKSf95Wzydju77QIETUZxUOkpeHbnH1aFInXYLw09mpfZCeHnbU2yQFdoHlJZvhyPpzQZuCJf9y7m0uu6BokTTzdv2v56mMWuLsySLdNBD4vyQrrCC31Ry3fLA0LvGogRIzywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8b0cce0b-aa8c-4839-9303-d1b83c20426a","name":"release-8b0cce0b-aa8c-4839-9303-d1b83c20426a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0d936325-f0b7-4ee9-a04f-2f472b21d1a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41850464227983899616979658314326636663822646375436250057927492470433616436139710014619597959066715254891258641751321815701310357138617726381538548559950654343434678952996333614518008045347852","osProfile":{"computerName":"jianyunt2"},"vmId":"1eb58cc9-f293-4594-a353-167976c80dab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5B1J3uBXwoeZxdo4w2ccD47H/p6QUPjRVzeBx+XhKVWyyg4Fbwg4wWSnZBox8CYlvVpo+scV55MZ2/9gexNEUT+Hvl56hloAFNlKk9K8Iag5s1t3I68wcBSi8YJDU3eg6Zs9l78eV9mNA4qm0sLIPeZlA4Fb1z/8+rmnFvTpNETmovEiYNeGAzVs9mUcTkRDvBtLduXIL2ytc/0RD+JvRqmU+8jQqfdvt9h/Qb13KHNDnYtpJ0QowA3h4hTsmLqiRNACP+70YQqnqvW0b4L+sWMW3OobMmLE0ZkS0xexIRfhIxBrlChZ7aqpSjgF2wTNFn6urrH7XZXOrnNJSMieCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6d261b79-300a-4b0c-97a7-90a9c14cc147","name":"release-6d261b79-300a-4b0c-97a7-90a9c14cc147","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"46f4c3a8-bb32-4e31-9b50-5ed9af7a4f87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418555228377677456861628966432175221749389782351521296952495591527440935603874862432624582658322584066535148569240570067885146143354560789133574064283712995157786664","osProfile":{"computerName":"jianyunt2"},"vmId":"6c323bfc-dfcb-4b65-9da8-49c618d05207","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8xI8MqD1xHL16W5iUVnMJViNEZUgTdYgF7wkoEH9Op4HokW98DWesMqidtFneaMWTToRervoQvJx9fFL721kN14OxShNwc1reXjStlWI8hARiwi4n9tkKMMVAPgDl9ra/lUnRw+WHSBPhJ7v4OKJ4qxMfWddER7ZDxyEIhzf5IWZiyQSZn6La4T4DRSgIbhRfDCrUMLitJy8K1O8oq7u6NelgSlFnxSsGmGD6WwrTCV1yv3OXl0KKR7hJPpNPLk5HbBHraT7PwEI+GOXdjUFT4PkW80ozzH87tTd9VpCJE7PX7tmDrdOhvsWhM655CBaW6ld0QogBPqtj9rdi5l0iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-aaed75d2-b9da-4d64-a980-6affebf5df14","name":"release-aaed75d2-b9da-4d64-a980-6affebf5df14","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"be3d4469-f0c1-4b78-9490-70a63123dceb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418339262235770548960397765828436216339217745972235174194577041802948159823465964526436342783383179400542215683853482165699044860082385825840355651051932795274529636129386397448231218","osProfile":{"computerName":"jianyunt2"},"vmId":"9ddee766-cb00-4581-b990-01bf364a05fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1sPVkR4bzqgo1h4c7dLFpUs/gwvzrj29raEWn7vytcfTKIgrUjhzMEkm+qOWHJwiqGZiP4mo756nwQiocssmP+zdOobhkGnC/BsNk1pvmdeDZ/ERtpfXiWwB5gh6LVNmVBVe+Emlx4jKjffXfKz0MiRLxGxx1UrKHbrbwOIiolepBU6nED5R3HAjpulsP6RgBHoLtWstjdIfViEHmo1DfpkYU4DsPYOzzBXSMrlsZ+1t3LkKY3IuiFO8FDv5wQreeP0HRQtKjHXAL0LergVJSXcj7iCmx3qSdw7hrysP6O2cKlj1CTdwexotUePnGmLTUMxXt3ftmNDI35JJxQoMKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2958ce3e-e4aa-4261-a045-2b1160dc99ae","name":"release-2958ce3e-e4aa-4261-a045-2b1160dc99ae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"37a79e44-6c49-46b6-8061-786fbce2d26c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182457419893104864699284657231952775564451865465826467180687869927461362692833867745862052452931264289237962387203840103835098953073185390838402363129603682513339984705809102934852295198344405073","osProfile":{"computerName":"jianyunt2"},"vmId":"ee20dc8a-dd2f-433a-b530-7049886d07e5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm0qZHizQTrz/zpL2ucWl3oPll176pjTx+lnWS68fJby7H2i8NJmXDhchv0EKJaBK+WIHcm4jUrPPlQPTfeEi+XVRBfP8jKBfI6NT1g0GvCz1P9PtdtYdDMNdtWwFLq7aFxp+sTIexJ+XBGNMcnQ4sX7LQmNKJO8eIDXwyXQg6wxpdjsFXOdncxvmKtN7vhixDzaO/lsjD/eHM7UxwbCCJkVcpPcS9eYeQgB406dw9ekX5IUAsn9Lkes2OyI40sr5al8IE8fO0doMweIbIfGX3NhqWrk9ebxJ0EpR7GHbDuEL7yE9i/y4exCaNrMYnBCVeLDu5Ag9D3KYfGAprnjvZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-145fe537-748a-4a3b-b3b2-1c5f29a8196b","name":"release-145fe537-748a-4a3b-b3b2-1c5f29a8196b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"56c61401-88d0-4866-a3c0-35cc893a133e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41818588562046711075259201905335293034882509499094335778623136399660640149527421354959993240332680862322174092153856196622797628854335302411385022014345780798304149151765237432255947236233826945528193","osProfile":{"computerName":"jianyunt2"},"vmId":"09a62d93-7a5a-49b7-83b1-a46b256068d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoMNzjcufYoiq/seSfDjrq8krI4FkpaLwRkMZrhbfmgVs56WHj8DHsqYnvyDRiWxFv6KP2cJfBnwjRaEqTNrvYUkU7INXlZESHs8D1qZBJbTliklleZ99SyR5FIZkS9tixPQI+5d0htzSrwVEQcrYLODk9OJtRvdMo770lrwxLqKFiRBn5Xn+MQLP3auG0Nrj2DvFd5YOqISHPg+bt7UzlsJ4r6t7MT1rUIaWXiMVGMa5KOYNy0LWLNsHsfjCi5upXIE8Ury/FIs0jG2nIam2Ktshj+Rr9mOifOL+7cE8rXbIA9FCetUgNGzPxu1he6dKXPkAcWwyBB5XV1731iPFRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9f774305-76e3-4976-95c1-c28c4b35508a","name":"release-9f774305-76e3-4976-95c1-c28c4b35508a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4bc28a14-f448-45c8-96bd-88b43e426dab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41884304476415055942386622082218146205865781485338060985419359501428956008531729917124187065966873891613136115573385160680468242440193863877301140075431484630639734255044296466042385345921078789621213317948339905245545687048379856832873623314","osProfile":{"computerName":"jianyunt2"},"vmId":"7fb4c3a8-7a00-4203-a505-a5d1746af745","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzWMJrE4Zc0oAiPGy/W5y64qKBlkoor/tGKaEwWJzzsbMP5y8VVCwGJYYtPMEZJKtBv2PtyCHFVPfIrCz1751ZcF5aDrVnFG0PEUauvjnxnw/mYjlkRVeL9GmKCEfD5g7XGB2H3T+r4GwI4rzj4cDT78WUT1tYPB3qt4QoRA15y1AWy8SaDkZF3oXPl2LCV0NxyrhXU1rmyT4H9k1b5WSxQK2okq1xSG9Z3teCgwjORURf6Q8A4k+2lIBoXKWFZoof/sOcmQpy1zWkM/4L/BklHO09VuaXwFUDkPu7+alm8QSJwr0u2jGSFACezWO620x8T3H1RicBpewA19MZ7SCVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-07ec0202-babf-41d9-a639-8d95ce805c0f","name":"release-07ec0202-babf-41d9-a639-8d95ce805c0f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d36f03f7-a616-48d0-a00d-f7314f803227","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873471495371498625340518395174245180128878916315563698704635288483034156971988592589861948679554678138198589877128428442969268069273766553956682935292589900114127107175988545625879519997069696281412501126177961249","osProfile":{"computerName":"jianyunt2"},"vmId":"96b2664d-f8d7-47bb-b172-9df58db8a919","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwD0oUz5SBI2yrYScGO+gWuJsm4I+d9uqqD0CFOVxJXZ+XStWmcxgG3W0313cAVrz0OORSliVWTV/U89e0uKEuVdtQNxDJzl4CWc6pcaGzAMrLqepqSi+fi2a+vOF7ZE3nWHaHq9gccpylve5BTvDoJPJjqyMzNzFJ89/QyGmFe10bNO6z4CLG3TB3M7udCuKn8CTobXVZVA8ixIeb9KJRZEYJGfq41RKHUNZSPyfmyAHE3SKypOUamGyyN7nfdYglIJBz0S3C9SmyiZuAIkx2svjEpSEb+L0jqHSuvIQyWvVdmBpm5tV30IWZ57Cjf+UdjzjR8U7iSQE0j9S/wT9MQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8a8f28a3-ad1d-4e5d-a61d-6474bbf529f6","name":"release-8a8f28a3-ad1d-4e5d-a61d-6474bbf529f6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"add80881-04ad-447e-9721-95d64ff9323e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41878784260986275779425698151314090666728304360793339853946797374935708207719273523153805495456063253561361285476167442049285851188626071643593137535043569856162849853238631643136938744962200","osProfile":{"computerName":"jianyunt2"},"vmId":"1929e72c-6f37-486c-a88c-87270b6f1a5e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9yjG1egT1W3+v/Hd6NmxupcTSHptvMvT+OS37BAOOfVHuzJPjNMXaCKXQU4rv2zBtH4rmBoLn1r3brA+NE6iBJBUmS5MPYwQ2a2NPwhZliNwrfxjKTwxafzfK52Zldb+n7LEcJNGNqrXD+z6/AhX++zgi2+J39zIntRABrNKoqcI6iTRqeHcLBYyjI9qFT/sgRXHqixfwiNyPzGa+IikONuPOGKMDU3HcZmNHWBRnwhsP1f3DoUeT73szw2GJmRZAsoi7AHwYHgtV7kcHg7CyIbsjTdQFRc7dToBxK+pyw51Ct8es2MlukE2glQ050/WD4q0nCLXh+baw9XcsXR52wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2af835ad-e841-4c84-b918-faf7671c3e07","name":"release-2af835ad-e841-4c84-b918-faf7671c3e07","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"89e0cf2e-f487-4ea1-9373-5cdeb101ea1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418384126925842442146628912861168998318212139917850358079955584764243312547964077854354344016925586211189164382017451829492878461417305254027238795539501463819385952952051244","osProfile":{"computerName":"jianyunt2"},"vmId":"90548698-6bb8-4b02-b9d2-e5b320f1ae36","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuQpQMWpS++Ip/Ld+bocEILDPS7Nu5BK4/2jn7Mtr4WBqJXjv8NmA2pRTJdc6p8FlUdG+ce11v18+OdIYqQH0N9IIZZ0OK2iq/7l357bcLsraW3jWojxJ7t2qsbKZBRjeSZlnc52NmnSYsl8kDgsgwzK+ocdfBBvCjhzZCCyc8Q2asF7umUDHfgAUNbXYYR3m+0neAQEsJPaDMVBcF35r9ZeA+FB/DONMUrtgbz2TuNvb+6EwSlvnHjXd2HOn5X7bw7z2b+5nbVwByq7xfqPCiyNPRixxuVY6M9CRqKlOkdvoTcUpxW94y5q3+vcRL5UJXNsZGeCeVmptekuh2HxjYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d357aa35-3427-4584-8025-c9839b65828a","name":"release-d357aa35-3427-4584-8025-c9839b65828a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8799f7c4-1f30-4a94-92db-be930d125de9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184956710738703135502786933885521121166163792673505609769224696167588976512974405023297247335588994650206448670982415586853153277411411166129763221552668781051269501426885789574818231126792867633369121114782456511","osProfile":{"computerName":"jianyunt2"},"vmId":"3512258b-6c2d-4bd6-a2e6-38fd0d5aa4e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsMG2V8Npya3Ob1iVZRIIsasncJhJav61kiqSfhArsSiz+FGYHfYgYp5qHz0WxB4pSW19l0UKZY6lo2zdX4gHwlwXHvxf+XguLScThT6uA2XpKNi5UwEtxSFPmqRrF6Suo3MT+ImqADaIV/JlnzuOO4tmVOhzod6OyS0OoKwWiQak3UF8GEbmx2OcPMxh5ZFz/anPCkuhePRwk3F9DCStwDyqNhQApal/h+MtTB4I9YReqsBw25T3F9HfmmKq63tzmI/yvhCoh/HLXKGlauwV9XEOzJeNOCxhHqi7AniwKD1v+EHAXUggaibKyNTQymtvS+iWpgYsiiNjuDGupf1wZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2e3ea733-7961-47ed-8be0-a86ce073c4ce","name":"release-2e3ea733-7961-47ed-8be0-a86ce073c4ce","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5d136748-6823-4879-a9fd-8bf2d6668f6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418972685927279991922227749746193568386413567589017594223286064217542145143332263078507861420158127518981134684902220814236619916137394574807657230821335407043102964829387889793074262831635024847182","osProfile":{"computerName":"jianyunt2"},"vmId":"2156a3eb-476f-4cdb-a9d3-3eb53ff76aa1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7PqmWXtL1YGDjXVHVCwMQX/prJ8d76OkuALTji6PaveqLuvNm3GMR2Dk9iwR8F8PrkCCVFocOYs4W1e4JlcnqxwsWXs6xZkcOcRY81OJ3o9dO4xVCE8sFUZu+l/Z2BgYNGSfAF6lPrpIU25Ha1a05Kjry51F3P8kehU8K1AVaMtEGMBkaCDQ748YBorb5eZQ0Mg1nVAHv6ZRPTW5aDYzugKqvYH8xJJLgPBw8fOuCpUz4CKUKjCHVNfBCtKLasm2/m1k3MQbQeCydRFqgJCXijsDoF18IpMJQqZSSuFDXeoRpKszy0BcyHw0LvuC1HkvdpxTVScSsutaWQcygAV7/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4301f1e5-a720-43a5-839e-587c6736f5ee","name":"release-4301f1e5-a720-43a5-839e-587c6736f5ee","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"127641e4-fe0a-4e00-968a-64ce3f1f8c9a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418451634383268647779206044733319323369909875552554683463012855724336441460938095265782888154599695556495402436841286853817980318779533713983749788470189069489167027036971202282289559383043843038612373534367371","osProfile":{"computerName":"jianyunt2"},"vmId":"64f5ed87-71f6-4d76-a1ff-b2401a815170","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuvzzZaVrfmBf36Nv0sMpyqA0AFCw9IH6zRrpqgHR1fN3qEESBjVocVjggCRT7MIYAcZAMMTnM7AgfF48uPQacERkbNog6RX5NS3FsoGN9iA97u9/1azeBEr4y5AZtp/PZoqplNUPciC0bCgLtyXYF7fMsYZm7bSNsF9ik4Uo2IYhph9dyHGkbEZ3ywBMgdaoLC1X5ryoX5mP7kGhQZw3zSFSyJRIhaJF7nxgYEo7I4BaXMofnQ1Tplmy8JexwD6eHXt89yQLEvZ1T3E+CFKtMzYBCYSnwM0X1EG1NU7fBr58hNqUcUN+Dj/m6Q6YLqzHU4EOjX1qBFZmBsbksAZiBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishCustomRole3/providers/Microsoft.HybridCompute/machines/aashishLaptopHVM1","name":"aashishLaptopHVM1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0878cd78-916e-4b40-867d-033154ffcb6a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-25T00:16:26.7237933","errorDetails":[],"displayName":"aashish-surface","machineFqdn":"aashish-surface","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"aashish-surface"},"vmId":"0e1473c2-8b71-4b70-9d9d-f5a22eac8195","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5oGHXLItqFRWPOv+eX8yzYJ7bkEg6i4qwPdEWxeHOBtfJ2BK5ibXCD3qVbcrYDOkWh+a7QYjMDVmXHmRORIGj2QaGz7jixiVLJtrUpQ5ag1iNxwsFCPo6f0SZdstn43cAdCSYu9u+3gIeCoW9H+DyTxjXeDp/hAwJkV8e5V+DTavYkWrZmjvFT3bScSVbA6OfGfTCqxrO9TnKEiSTdolB2CQvdEAf5PEsvxZJamq1iiM+Z6keOiojt0pkg0nvrjPorbs8X4poAJ12SLtQJ+4QQ+zmTJNhz3pCLUcZK92VWSelmw+R4MgT1YPjvxo8P8pVSES5IBF9CusS4RBkz306wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishCustomRole3/providers/Microsoft.HybridCompute/machines/aashishLaptopHVM2","name":"aashishLaptopHVM2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"71dcca3d-52f3-4a1c-b965-1829a4b898e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-25T00:41:38.4966633","errorDetails":[],"displayName":"aashish-surface","machineFqdn":"aashish-surface","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"aashish-surface"},"vmId":"4011aa56-d868-4f0c-ae6c-e85545720398","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0FMYjDueZHUzwiZ6WmV1OKfcX2qTFkHMBO6VSaFkswdzElqCqTcacNHOVH6BZm0lD9ve6rnGKYw9sbTXmNXiv0jAt49BOTpMbFLaEV333E0zCLQaVKHLp5OS435ljSI5P1sBdSxc9dWwH7Bjn5SyKfrraR1SrnrcS1RLZcs8D7wQ6ABE+v1vVp5A6XcWXpsesifiMiBdfoNtexC/apMNOJ7+Ye+VReb72QIzGAe+c7vbGnSoCu0zBMjJjmD3xNO/Vt4OUOTImjp2QRfd7twjzw93TIKFikVSZHY8ZWBb3Rqa+XG+LbHF4P91366PtmWFpMQMCtIjESdygwARfQhr8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishCustomRole3/providers/Microsoft.HybridCompute/machines/aashishLaptopHVM4","name":"aashishLaptopHVM4","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7ae6f8c0-cc2b-44d4-b142-7a26936f1d43","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-25T20:21:44.8363459","errorDetails":[],"displayName":"aashish-surface","machineFqdn":"aashish-surface","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"aashish-surface"},"vmId":"ae174cd3-6cec-4442-a1ee-a53a55f72b63","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6vhTZyyMIZOR/3N9WQzyT6cn1m6ZAmg+jZhoF8dJ2GnWXZmumz3LSeGS14hxdc+mOtYD34hswCfE3CC57cqSesynxdLnYxg9oz7l8IU9mHygGX9hP4qbcs2PYQRgTVjKljIST7A+nRMyKHkQvBV7x/CE4lGpxhhOIOVQIszAW46fbQ4BB6X/No9GkEnLPGxn8LDOqqtZ6QxgFJQyYcjIcbrjbG1z7uMd5V25zBIn0TydWIBrMh21hefsbAYGVICg6WxI0uO1O9P5+NpXkb5rf1Bv9I5k0RIyva4cSVs/vG7SQHnpNuWbXydw9C2I6SlkNzOEZk2jq2PMywsx7QNNEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.3.1910.25001","name":"0.3.1910.25001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7d632ba5-74fc-4e7f-a353-6a9ec550bd78","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25001","status":"Disconnected","lastStatusChange":"2019-10-25T17:16:43.1638792","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"793022c0-91f1-4963-b580-98b0026752d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx6NHTHRiiy8M09z7rv6DmY+vNwrDwgSyCwc/36QhbYB/TGz5SE0/y604g+Rza5qCi70Q3e7V6WMgs0Fik+88u2XB7ZHF6MZtBTNDiYrd3yPVsSFJv/2MIJaJ0hh/fDRcA+JpG36X7G/IMNMOGnmvzC/QIPw3H2LVsnXkg7wA34MTahyHP7WSfvsz0J6vVp9dEZVkP361YrtZh/fdI5yG1s2fAIvU+0t058A4KyrSHY2mfgUJ3G/xat4hYJjoZERZlr9BZLjiZQ0OL+BYNPTMZjWinzHWzkgW5dZJxyA+/9S+Wa9ZkXPVU+Pr3uEFCAK7iIhnxiEsDxOZacMFafGifQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az599hzxb4_e2etest","name":"fv-az599hzxb4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d6ab7042-463a-4191-97b0-05392a16c693","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25001","status":"Disconnected","lastStatusChange":"2019-10-25T17:21:43.2485616","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"e5b67b60-35bd-4972-9103-6e5081b19766","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvjqg0SJQb0MZ5eulPo/WxIMzVk0yYFptZq9P79oPSaU1kwKwQFr05vAKjlc9q8DZ2ovS7nWRyOrGQhOP7OMjmawOk2IrfTzx255VKaSTOmhy9XufTBmYWmHnZEbYEzhV7aq+KkUFGA147UjLwyS3F2arbkmgf/AxixIv0wrlIxulzxSJ6cCfle1KfFbm0+Q+hoPCsMYQZXaS8L27C+DIOV3mFvOBvUjOK8Mog+OHg+ihyWHH9j/+HspJKy//PwNDLmO2UT+YamoYJK09DQgzgR3k6I7eEosgbYMfcfZzytmMzpQiZnTJTbiAnhWf0wSgf7Cw4m0vERiksXQyS0DTUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az464pdlwb_e2etest","name":"fv-az464pdlwb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2a95dcaf-9128-4a88-90ca-387b01bfee23","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25001","status":"Disconnected","lastStatusChange":"2019-10-25T17:21:43.2485616","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"b64a2bad-48aa-49c1-a621-eb4756b4cb63","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwoZauk7CB88M/bHtr6XQXI/9O/QjBN533FSJPejYjUPgrrCxzR3Aru0cpEYijxg/cdK/0nfyRaDAl57GkI5f+wzSIiTRIuQ5BXnUQrnv+W/O8ykOpCh/DQkuWQOwUCkxmV8TVndVybHUmhvY+QwiFmSps8tZJuK77LCqySn4seO369WRdSJCROKTXLs8Rzgo55voMlr3Z3qL8NEvPAhd3vC5LYIhu0umo5pbeEFZDq6wtQ1pVe3N70D3RqpxUe9Ex4KN4upmmxk5Aqjbf0g6Sx8/CK0Q2b3DPKa0gRzv+RYMvYwzNjjjn2wEUJUusAJ+TvpwbINrmP6jSAW3xBZyEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.3.1910.25002","name":"0.3.1910.25002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"00ba446f-fa11-4002-ad12-464dcfbc40f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25002","status":"Disconnected","lastStatusChange":"2019-10-25T17:51:43.4452887","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"9d7c6623-be86-4f70-bd81-bea9716bcf42","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6yaLIo1w5PysgHfIj5zW396+ytSKovM6ceZH/XT9GFSu4DM4WNBpUKzutsGz/ovoO+KNsPHykBiiclHxS9J2JcTUc2n9OvgzEcxVr4L7LX8EliGBJT9jRu+eb9JEYPuPIC7XJ4R4jG2JpNx0UQX4O0AW2CegczTBP90lypDvTen6bOuEMedzoR49W55BUjp63+M3A3J9BqRcgkEE7OUAhMK5s0vaL0qe0kP6Pft4312ItVdIqY0noawhaOTissr0/4/TaNZCunVqRBAnxZS5qKMfHVZTY2l1OPE0t1wC0CplgTw8qYDb0fy/ZmxVA4t+KzDzlMmVDNvqz5ImFxImcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az4562c84m_e2etest","name":"fv-az4562c84m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2aba76de-c41e-4ee4-9c2a-30f14e733e1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25002","status":"Disconnected","lastStatusChange":"2019-10-25T17:51:43.4452887","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"cf4d1d18-f043-4dec-a93c-25d8d1dfc83a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApwwJmqL+GsBV+5NbITHI2rFjm5ZgB8JYW4Ala4SfngbtwGDBhLiGhGeJZpuI1bilhLrVbQukpJO3ns8hNPoZ4MP4R6AHUm0ZofQPQR0cFy1xJMu3Rc3u1gSlz8V8wid0vVrctvjKICzQaGH5c802Kbvv+mYbI6kYuQ0SNMrHc8CExXe0b7CsGHTkG85qNMSfqXSad5nseoP2ZuNHBvuKB61R46d4J4gISrVPArw6hfmtnHD2qcOteCYPSmBUfAW47k0S7boiL0iarBdSkH1Rxo5o20npzibDOfLsrt6TEM8aTRZH8Vr56vshMCgrL9GMqVkOt+K1S4Gaut+177LqawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az45878evp_e2etest","name":"fv-az45878evp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ba80130-878a-4144-8ab3-3c7917866931","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25002","status":"Disconnected","lastStatusChange":"2019-10-25T18:06:43.6366014","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"fb1785ea-0067-483d-b393-3c1dd326a5d9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnT3f1Qq6hyBAPWXq+jnEBm0hS7W/GLU0MgoNMbkl7o3Bhrf4l6QO2JLsYbaT5dzkhkmLZuBtCSOhEFCEV5ZU4/EXrrkAbQFUfHAqXiKJ59+bwzyL11q7j6WBy+r1Toi7/PuYIIdtkkSQW8jgb68/9P56P8SZIo0S1vfc3d4cUWtfeuymOXnVCDjuZ0Zx6aWlbMhms2ef+6cfiqUZylaOzh/gCyGoV31c9TM6H2zDXXqm1O9VLIm8Rg48xbpnQid2AZZRzwIzuHoMXN8rC8r2QAO8GrRNbO0Sv3lvhSLGeiUbm/qct0S37TYtczni+DKAZCw/d9hUM7zpqaZnc/RXMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16009","name":"0.2.1909.16009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4166f23-b0d8-4496-bfb9-c27057d65589","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16009","status":"Disconnected","lastStatusChange":"2019-09-16T21:20:03.3033825","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c41351e5-bcd3-4a4e-9975-aa09c974415c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsR8kGbkgiS3T7N4BMhF3SPQLSM+E6Sjx1cLnKMXCZtTdCIFHLFWUuG55awAVHr3nzo9GIYrF02vBP9LZljgf79wwyWqOGtlnA86LkyeptUkRbzYrhbvbxqpD0cPa3EdS6fhxMPpE3KtUJBNbigCqZrga/8Diz24wCY4k/GI4Lm7XB+BKQ271ctoWJ1znSMuTGKMHje8goPiohTB+Q80F3bV3to4SoBmkcNfWqVz/zj9e7tByv7GS/C2psxdblbwXzBV6QVKxck1IatyiewMmM3ZEzPLwFWw/LNciOf4BxMDDORve3e/by1J5/pFhP/jC117qMoo9fItzMp7qJa6gVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.12003","name":"0.1.1908.12003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"364ff512-26aa-4e6a-af84-15c1d6ee15c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12003","status":"Disconnected","lastStatusChange":"2019-08-12T21:10:28.7090586","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c4118f12-b5d5-405a-843a-a6928cf07367","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvsFaHzigS5K6svF7yRUH4dM9fDuhiySap1/1xgK1i1/uymqi2Irv1EYaoLunJPx8RtbgHdM1/JOA8/tyH98xr+yiAwLrOAgzcv6ANoMciwp5DDdYTPvrN+KJxIVNJ/uUwWk6q+DstUZjBsD5840lXn6I+oelCR9eadrgKZAxXn+BgVquZ9sMTVQ392trzPm5Z9WQpOH1KgyWa4FbSYQEJPrMgcFaOuDfIs2L7/pcsV1VTT6MqqbXNVfazSiBzZ7CKTx4OhPy5je8NVZz0Mcu6vvnI06017edl5Yh/JcWiQGS+akdtaJAtvNr+mAi9LgI0baPIk0jGjPcg+Hmzgc/cQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456arz8b_e2etest","name":"fv-az456arz8b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9f1a1a1-0b07-4d5b-956e-82fc6b69c6e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24001","status":"Disconnected","lastStatusChange":"2019-07-24T00:30:29.0874157","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"87f34148-f9d4-4f1c-97b8-9ca9e963d4f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvZCstnoq3kzlheyp6p/TNt0kIEBDTRDSuQ3uwKw8T1EbGp9QPpoOsffY4dEwsF40tuzS71CNgi5xfdT7LyPsiD9C6r3Lc1fQevg5tK3zsxyTwOl2lkxLiaQe4xTvpx4MQDyyoWUx13zsiS83CHTUUyatfzekL83Ii3dPeRgjpNOxDh3uANnjUJDCekXPTcezmTt0AibY5drtfiuYX2+Zih4ONdote8zkQILvR1qK3MdtzDQlo++wlyMvV0bDOJVkF9n863VUfTAOO4dzaRmg7sJ5NjuUIPsipZf2nXy9DzEFL8ZxXC0jiCa7RchjAUPLv8tquDEMQ5cUSpte0wwH8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22007","name":"0.3.1910.22007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c219a03f-1da0-4838-8af6-896d6f8d5db1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22007","status":"Disconnected","lastStatusChange":"2019-10-22T17:51:34.2694146","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"0981691b-7c56-4455-a7c8-fcf763b51629","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAymQNXIR6b2sSQgGwoZWxaw7NLTMOdYZV7caZtXFPLAp1qVDVoSuZvZx6LAOSJdvksgEvm6dvHiIQnChyOhm2IJNdND7jzaghaTfp7wHqZrObYYbBQlt8H3Q9G+zqoCakjwRaknx9wHpt0wtwbozCFbWwjW7vo9kw6lgD6U6FV9DrMDtaeBaJ1N7I/QQFCD0UEIBoZ8SMsPzSfKwKCDncnw+cYCtn/YWYVM+LK6EGs3L0EmS2u8BIUXdzatUzr1wmtJ94V7XCKtelVKBBJ+A19CDip+1bgEob9xt7EyDoxGIdOUGewyiFY83h5LgNcATG/6fKnKaSlk+VHpbiGFrl4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456smi57_e2etest","name":"fv-az456smi57_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1c40c637-df3c-4a2f-bdcf-9aece5d6445d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10001","status":"Disconnected","lastStatusChange":"2019-09-10T18:27:54.552794","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"34b60086-dd08-4eba-a254-b6f29e3e3b46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv0g/dLxU0uu/t/ay1V0UCDsuWN8bwwsrPGTXMlvp38OdnzE5eF93nJuoJAYqx1RV4lxND0JTyt/7LIbYX3I0QXtKclb+f5LQgVogZN7vSnArj7vynMk3Ll4rI224w9FOLj6NxM9m9yCqGvpsqiLBbOi1JfrxRVFMxH7oUuQxN1iTPKhOoWGyQP6pqRQUKd56LG+LKaDN6h6LoR7aKL20AatF/zQQBboYoL098QLKD/agny0vyLeeqBt++3ubFxb5UB88kGjYo4bZlrMsNKFjLOkzyXO1H2LqSQ5Qew89qXaWNbnCKNlCMro94V158vt/WIRi9E/SCFe1dDd/wFRumQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.12004","name":"0.1.1908.12004","location":"eastus2euap","tags":{"ws":"ff"},"identity":{"type":"SystemAssigned","principalId":"4750abae-7fca-43a1-8431-0db5dd703e61","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12004","status":"Disconnected","lastStatusChange":"2019-08-12T22:16:54.3220842","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az408"},"vmId":"67432742-3539-4da1-a74c-b78a43930756","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5E3eSrmHfr29zNgjPv5C7bWp5TjBQYPPSL17damqx5fJuOgfvt+BmMxd7tpLAaxNMY7XRBQtIsW7fmqdZPw5kDcITbNTuwEhggyoLBn48PQuugFOLpnuTp4FPci+InKP3Dj/USERnqPZAKJuWs1KVOjQ7IhiHARQp4+t2YjPMovG6swDy5890lea9R6WHKsWXrfPJJlO8spwUBh4PRIhnOSPkKJP5zUWVHhSl+e7mgHks8PJHgX/jq7ujG7U+6rvC8XInS0TgBeQbVrQeL7sl9DRBi9haQjI+aMhldd7d/S6p1FVetX8+km/ccrWJRQ8CsTX7vDd/rendHqXmknFLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16010","name":"0.2.1909.16010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bfd5348b-ca07-457a-8de0-8182ab5645df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16010","status":"Disconnected","lastStatusChange":"2019-09-16T21:50:03.6922685","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bc5c7b50-c239-437f-9c4e-7532d0c25d25","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtH8TyYyqjKBSufEKgNB7KGgU1ooNifTbkMYTOKD9zoy9e9ZPYwgezpA7KuW6adohzsx61IIVm66MI14z1Nt3VdbgcVdgvnYcsSyQIWq4spsXAdxc8vFXwUfB4QfyJnNL3gtyElwYdNPZdyBWHywdvJb6rA21PLhGcg9V+mZ4PT79mQsRpZmJD2QmUuBYF7vhK9qBpuCdf7QAXo0gw4OLlPdypOlDaTRw4HslgHCShNz+rkCChIT/cdXzhq2mYWIHUYMb4tQDLbItVqYanMkrKhmoplGWnOKgdDtVWc8jVzkPgpWy2TL0g/nK73JbdIdON4QuNkAcNGcL0OEO1JeAqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22008","name":"0.3.1910.22008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c59f1322-5f9e-4709-9bb5-ee1621c1f670","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22008","status":"Disconnected","lastStatusChange":"2019-10-22T17:51:34.2694146","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"c78a0e67-a3d8-4386-9a48-32c85dc99046","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0cR1LSOprIfiGwE/W9bP4jsM7ZaHCNSrmjStQJ9vq5HcW2IbcPr1nVRwrEstIT06zK6Hx9wWLfL1UltoO7i+5vFOABHn0glqK3RABieOv1Qchrdjb8AqT9Eu34kJrNe5xcrnWEdGiU8OkXfxdFiFJ855YBEzBJrBMlgCfVO9VOeh+AwiVnc7Wr46YLSui0RBQPFLvRHD/N+fTcSEGmrzHkOBN6LtotCjM2c/Fxw8/vzo3YnTLLO6OrS6X45DK7PsnftnnOTtbAWe114A1NfsF98Hj2i0gogDOcho9LAI5YLjkHvTKCu0IWrMQ6C3NQxWZ1hA0sI9IvQiV9nYkdHHywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456auqk3_e2etest","name":"fv-az456auqk3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ad73caf-0bbc-4d89-b774-8412c3d7986f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21007","status":"Disconnected","lastStatusChange":"2019-08-21T19:41:13.8683375","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"736e7c30-0496-45a9-bbb9-a6154fb4e1e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6fp9PebYTC1pshKEgW7pZNfGILdoCBNNz3ynd5t0kMBVyrTAajaLj7p1ehvkOCuslSPzdNd3bwBceYY54FCWKE3iabVEHmnhZxqTg0Q3MxHeIe0O4b+WS8xiQUgvLMQ0G/bmtZJkSdTi9qWIUIgLBwNA24ZYJJ/cD4mT6kXzz5EV05lpp8Kwx/5VJwlRzQi2gsak6+8KLzSQrHi6hkqnymNV9+GPxS7z4wZmoEnDrt0pLiLwe9qj+aakaC5mS66FOO7xPpZzV6DuavByE1FWprfdBDCCSDtjrORsExyCMQPmdzv8vYAKeDhwxLPD6ruFhBK9wgHasWuPQRdJtrh61QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456sofx9_e2etest","name":"fv-az456sofx9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"04d12928-eccb-41d3-b534-300980c53a08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"ec6d726f-7a9a-4137-9582-0740a9ccc54a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4mXI0hXHuJdMSXfUJCQSSnIxI1wmB0BVxX/hmVXXwiIavp1gs3vFFxf5oaC7olDSXPE5IwM8JXft5u4ZxxspeW5yBlZTc7NNncM7eGpmJ6T+aWAxTNKOvTCMVzKZiY8dFOWjylPAaF32nNMAbTiXiiFAxzRYrgW4Qq6xYz6qJZWkTCdZFSdVedVv44RQjdmjxEFz0kDiCee7tIk83ISfwueiLvS7KJCi6YXJ1OT1W8tpUNzNkcrw7/vNXk2VPg3sOVYvVCeMm5//3i5nLZBiwKKP8TFMBiHjHEAd/Gk4y/wZSEbuP/R76tbGz6McAw8a5DgMhcwQYnrJwXXaS4SkdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16011","name":"0.2.1909.16011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"45bdb058-79ce-4801-a497-c9b081f4fc5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16011","status":"Disconnected","lastStatusChange":"2019-09-16T21:50:03.6922685","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"38d32695-9350-4dfe-a72d-664c07995bd3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoMqcluxroEofyAKud1xDbvPEFA7COpaQkiIDWFbI58Itomj2LiVDBuRjNfqkwSs+HfpzrPRuWLdDYV1MDqMoOZJGCxzCSxy+FwsAoqhRf9X1tZ+QcIlZ4nlsyC7dEnrcyvWGV0IbogBHZcH7Rr/KQ6DNwA/09rjCSbb+r28QmO0Y2SZjK3tNOc7B9OCdXRfpS99hSZTwT2rgq77mxEz6QIIDDybhSbzo9RPhMJpybb/XS+w7CMa8Vf8g6oxSBetfBcm8NRMWMk8s8a0765a2v6Vx2SC07XYjhN3cj6ns0TpoJzxT2p4dSNoq0MoErX69wSJlrDb4Zz9M0hZxWbWDUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.12005","name":"0.1.1908.12005","location":"eastus2euap","tags":{"ws":"ff","test":""},"identity":{"type":"SystemAssigned","principalId":"1cefe4d0-c84e-4d1b-a3e1-0eaf1cfb6f33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12005","status":"Disconnected","lastStatusChange":"2019-08-12T22:31:54.6380557","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8f0f5a3a-3af2-420b-812e-7103af7a0f1e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwx4xrglPcDkxDCwOgS/BSJgptrpGZ/NWkgo6IZSfPI4Nl8p+nK7/Yj0+j/ecQGgEi1pZki+kWKZZSljZqWt8mtMFzDuo7jEuT3SqkCnvPqR7TwY3Qnk4064I6sjCutKaqe/dqIN7XY9WNR4thEFsGW4ow44zfLXQJqxfHhYRjrTJwswbTQkzuTcMP0ZMXPBNlwSd2GFSQ8m0URT7Pz88FLp1Hl9iD3tb3u6Hb/Q+YkRVFtsES7NlrNEbYTBZyh5kkJioudnvZehEDWjp8/RAF60IAoKUukRavgd/5EKUs9+5CTQr2Q/Qk6qUKW6yRqTq1a7p8OwPB+rPyCTNtvZKTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ayi9q_e2etest","name":"fv-az456ayi9q_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db9c2b52-0a36-4865-ac3b-a976e628c13f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10002","status":"Disconnected","lastStatusChange":"2019-10-10T18:35:40.5690125","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7e860955-d120-4e9c-b5de-96659c8c3c56","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq5AU/sSxRoDCMJgxfFBCQXaUbz3IG1NUrfkd9XI5rSwPZcIMu1nFvjHSE9EUE2kEk1tpF/78zg8+vNDl+YTCEjtPLEtvL9WB+Qej4qWOlrSZLCS5AsB6R8grnY4Prr6sNXzrppWbURUqSYnkLWaLjPOY5j92jSdu1jwV8baDoxPeDwc7EEgEP9L+2TNTbZfKITfsSaKPlSRAkHN+0dKXbAlD+hS6Nstx//waPZ78S3xOIQEJIAOVgP4Z8nGqgju1rA8T5k8PxGW2NxUh5OIGXJ272T4oAai7pOpmUgMXFMnjymB0Oag6aGmIAdJU0XADrGY/ZUP21XvuBnWGVu3+pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22009","name":"0.3.1910.22009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b9ad2c3-4955-4ab1-844a-0355aa32815c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22009","status":"Disconnected","lastStatusChange":"2019-10-22T17:56:34.4492924","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"2ca3bb0d-73d1-4f35-b74c-f203fd090705","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnyfp5+Br/zRnzIiyYkacnuEO1VaZrFZbOR5vgpKTOmKq5Vwn1M7CwVKHCRM1CHYHZdk3MIC2gIlHu8hk2pDxFARU5RQkvKlLIereKXmMLpBzk0q1EQuoJooTj+GZJN9B45th9brSJ8zJXqapXE+rbmqFl+xbLyaDlTJHvDKU97+tTrUrXOFSkee8P3zp73A1/2KCCx4UL2O8HNGjmobNcRWil0ry1xGpjTWIsJvlUVwu8u/zyARLmdiZIP+YmMSfhFZIGRbVo7NV8tLr4LYiSSSa6uHUQiTd1LiXrCT5svDr3vO+6tBKzwcq2e5oAfi/OE0qILTl/ZpO/8b6MhJorwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t0jxk_e2etest","name":"fv-az456t0jxk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"76c9b5f0-054e-439b-ab3f-570f7e61ef45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24007","status":"Disconnected","lastStatusChange":"2019-09-24T21:08:54.893841","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fa69802b-6db4-4883-b97c-d67471f6550a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArgaey4KlvbX8/9R/ud/WQbPqbyDuW7T8h57q4120dgacUGZc0dsnfCgP4cfkva4eB7JfkpGiCojrIsoGTdb8cRFPNP2ZuWAzvimId5cr8KSISPZgc5BACHli2Q+eU0nLYn2l5IHsTZxrY6Fqvqt/mK41urJz8ckPRAmQ7oNuV80medFqmTHOXTSprndebvlHlaevvstmEAU0wNaVZFXz3pxH/3ncuBnCCCvByrGTVkn1iBOKTEXj9KKPguKvjMCH1mH5w4Pd0sk7dP7b90fD6rm95Av73yFCP7ownYONPK5MUjBd9zGNbSmZBdpg3DWjSxCz6PbLGVTO+fty9wymXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16012","name":"0.2.1909.16012","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dfb72785-d064-4dd0-9870-4879134da98e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16012","status":"Disconnected","lastStatusChange":"2019-09-16T22:00:03.9367476","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e6087fd5-3419-49a1-8848-84e884d74ecc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy+P8hRnmhmYPkSnRQcRhdKkeMuHVmNl/SNGgREtLDrLFm2RZr1lv7RDwin0OIYDZulot0cJyCAX5QphVRfErEOgVq38nzFeGUIEJy7YBn8wqU/cDxjxyINUYkGfFjvutfwrhGkuRUoezMvP+Tr6MYvvHn6ItAg2qDQAwX6SquoNPPLWpqys6jl177+7u8yr6nWFsUFImnfOTbAoMiYUxjInR8f8g7mcn+FSlHQWUYcXpVO+wLeeyM3WkuiRq8V5up7Rq2sj5+aBr1O692S82rahHZEFyuAkUZgGuLzQWHvOvGVQs72TWkk+K11J/qjsUreALV5Vx2A4EemaEwM3/2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456azq7m_e2etest","name":"fv-az456azq7m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6c566869-0175-4ea8-b20b-12bc8f447d27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16016","status":"Disconnected","lastStatusChange":"2019-09-16T23:45:04.8243053","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"af12ddca-47ac-48ba-b8d7-abd6a1ae2683","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArDTjX2dVWBnaoPotKZ2BtGZljli0EhBZJlISCLd2B43+rh/PlvDSQwXuD8lF7X85Q8upA9Vx4+HLTrG/jxAp7Ht0iAdBFhdWaDEu5HSmBVnT1qbGZCSvUCVGCGcQYHubdZ4aamTxHPbxmzhGy7DKiHCAsNdRIKTJb0ZhFo1S7zg6SVwM63eZ8NAWnIrbHc+2LgpAAizWjuK9d5ILUvDK1FiM0VMzMXq9qQ97EBHZo/kaF+VKk2TSThfIj3qkU183VFGGmSkBB9QUcTXSZQiCNMjXZ7GuNCwgoV5ZqJnJPC48IXPrW9uP3S3LQQu22DPOfTC+nmgBbmC2JzKs+3VQCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t0zkd_e2etest","name":"fv-az456t0zkd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b1b0ae33-0fd8-4117-b3b4-a925f620398f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09002","status":"Disconnected","lastStatusChange":"2019-09-09T20:46:26.9389633","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7a3294da-a281-4819-899c-9011242a5ed2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArK+gjoyL8cdTslsnrZ80KE1BNqLo4t9B9TzaLuxpPaDQfsrvIQ1c/jm0dLDojxNrGxTLwcwI1NkbM1ehQv6z6BxHZ3a4WteiEqbkcdMYuGPpV6DjFc9j+WLYqyLeUvmxZpF0vyfS8HaQSkCHRiEJQCRILPKDR0QFLW7Is41s+hxarztnfTvSlU9hmUAuceS8WwF+iHFNQ9Q+NgM1JJK5VFcC3DyG9x/+RzS0iIyJDHLqEhyP5+YGYuZLkdN437C/coVhBluxnhXHyBIKlp9WOi/009aS4rSBeKCFKTGoPDKumgCyMCbKR9LBLNeRgYSnIeIGtClLpLP5LJnm5GmyMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22010","name":"0.3.1910.22010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8c6b7166-4610-417c-b9e0-afe608632cd2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22010","status":"Disconnected","lastStatusChange":"2019-10-22T19:11:34.9008655","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"0505adf1-1c45-4583-a180-d671827eff97","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlxSeSAPJnBaqoRm28dL4ab7AqcbeCEz4GesBe5X9OfNy3t/lIFOOY6q4bUKmsAqq8knOjCPor2jLU5P7ddy1OLCnmmtoE4U5wxLWv2g5MXCntj5A3ITwEpp6CaLvWNnJRgn3vwJB34Db8jMkQyXHtEOZhaoRijot70EFRRO3Kkkqhn9vN9PQq5A4WsJQ21hKFkwcoQMQdzvUoEfuDzH7vdSl+dYPPAsBGm4W/XuASiSCP40v0OaVee2bRH9Kha4FUwyuZ5HVP4X5Vs++UtQMR23nUw7NeSWJs33W6hniPfuCWobhfe31ABmaRyUFAZmd5NP7ctFfAQo053sExnlTSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456b6syz_e2etest","name":"fv-az456b6syz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cdd43f66-d46d-400f-87c9-7b52001a05b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24013","status":"Disconnected","lastStatusChange":"2019-07-24T23:35:36.7551607","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"950d2dd1-d250-47f9-a857-d0d98e3c6b5b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApWfqX6lHEWyWUG21Xk1FtVJLn6uwTmmp6yS4cQ2HTgoBM/+POvcqLJBBhEVs5d7ScTWPsoJL7BPZ5Uffs0HA3KGJylGD5vtCfojCgDSZTv0p1nHU458g5SU7o3S3bLYuYecR5NzGUKHgmhg8P2y6M/byNcSEn2FIdDitjyAPBEc3DcmSoAUbnd7rClq3Y3WtZ7B63nTULML3irZmNZV2W4LtHaG/1Zvebdvsx2NHUKQEUGXKWHhRSq/CW1gyJvoKTHpXV2FPOzF/y6zu3HBQCQKASs3576GbMbF6dbhGIBddWriS3U6zYGZy2BuZSjzH0+0U1bwz1/xXNfuJ3dsN9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16013","name":"0.2.1909.16013","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"936491d8-ed27-42a2-a109-526c01ae22c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16013","status":"Disconnected","lastStatusChange":"2019-09-16T22:00:03.9367476","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"63d8d4e3-dbb2-4a56-b0f8-c4d0a18bcda1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsCxLkj5jB1qh/AWYGsrx1i2I7Eg2CCFwt9Wto37hqWGZIexHCcgoqXJwO+giuCAUHCEMvfnymeAF7E3PoIoV0wzG6uV3WZOmIweGgM0Kv2ThJiV1jFeXkz/bCUUseXesHhLxC6FZuF+WTf1ybTtG3w2Xdui6ZkE1f2veCiMyCGJ7ePyiHR7OHD+8X5VTL4kkNwiLz0BtNdtbmX1P/zaVzl6DE1q2vw5Bs9B5botBrlkjAPzmq7eZLDzNOoWjffxEqxMxxdITsBqVdA1PTfVOZgKj9febZ6ihM4ptm6JcsbuL9D69BtsuRXGhdg8TZSBpPFSRgFW+Wl6JziK1rYO8bwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t1j2v_e2etest","name":"fv-az456t1j2v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ddde9e5-a0e1-4c6b-803e-bb2935f90001","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.29001","status":"Disconnected","lastStatusChange":"2019-07-29T17:17:32.3262248","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"66fbde2b-7ac7-4688-ba65-963a76ed6010","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvKfBP5/XpEE2lDkAneDYcayOAYQYC6gTbWWeMh3cJI/45dfVTfuprOB0trislK4vLecYgrBFMlJ6fFS4uhllvSSWnDeJ11fWs7khU+3jkbK4GAMPI2+p16ZWpcqj5rk2KtdYwIpJ4Yv74gXANoxKo/ZnynnybtO3sJEG3cQlJIhXNxvpXvTnJLbMm5g4pJmDkI3cJpOGcEI1iyyxAJCMoZu4O2LOukrp9f895++mHFu677URd6VPg941b6lqesX0sXByuvl4+VmQdl9yDwdYVmEFJxGZ+BL2WytJ0vIDt5jG6BsQV0d1XQuVYJ5IzI14AVpGtzdIIlDFtBHz/unBAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22014","name":"0.3.1910.22014","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2af34572-ed40-4766-a9a5-4850eee2769f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22014","status":"Disconnected","lastStatusChange":"2019-10-22T19:41:35.2454228","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"12a2fd3b-2c78-4810-8060-a4ebb04befaf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsBdWQd4DZgSk3NDwMvDcmhq8Kty5Ey7dDD+QFUZe09gc+RF5hGxLfBK8q19+/Od9ov89oFe9PcWHMI+xXEWkQtb/YE6Riu+2H8f990P/1l8UbmbH4BJ+74zqWnC6DGu7TIJH0bLP+rSftwiaLI/+OOZ8i+JdEjNDXtViCmEIQ4f/Rmun9CIRh7KJCKOb0IKJ5PKVXWpdXlDA7B1V3q1c2XhAf1FxTaCE4TK+bmbOUXtorcrTzx6V18oNGCXnbxntkWT+z/YSBz0h+oVUsyjLdi6l2is0UZzRAvFVHyH1+OhQUCY84vd4ePWbTrpENAHgYncpWjfRLfQ36bstcYvqLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16015","name":"0.2.1909.16015","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"565e7ac3-96f3-44c9-ab4e-036b1406595b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16015","status":"Disconnected","lastStatusChange":"2019-09-16T23:15:04.5127288","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d8c76da5-e736-48da-b0b2-d199f237521f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3MMrlZqv2LN/5ttp1h0V72gwnvGEhvND0D9sff8gN32XjkcDql1yTawYmQb6ScGA3oO6IjgMzBAXoardp7ol17+RJOvAXBsybmL+nQJ62qoYTh3Q5ld5ZyLdueN9LKTOnlRQxGj6uQ9lmIfiF9P3QPqnuaMAnmuLMff11Vg8H1sHe6scVOHrgcZDlhGiAPUn1bRahKE4EeGarlsPE2izcz5N9sPIWOO4qnPpu3m1sGva72SngtHUBI5hbj8z/F1BWVpgG1ESd/ChF0Uwy2JEBKcc78wzFj3AGklbNF1esktteQgBkzTYgz1IUX3mHNmvUdrRkryhWwt7rXuitK/a4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t2zny_e2etest","name":"fv-az456t2zny_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9191f0b1-60c4-408d-998e-c44102ab49fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16009","status":"Disconnected","lastStatusChange":"2019-09-16T21:20:03.3033825","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"691b2cef-77a0-4d0d-8a6c-ece3a6865640","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvYOHBfY56jSsl4nYq/9oGgqB8/yuNjExSPkPBGjZtbTTbI0GIYRkXyqQCvjwuwjbm8C6BnYhYLzTyiQWZjNYjeDc7mZC5tbYvaDEi6JKH+5USLBSD0T+/I95LOvR0gASHRxinOdG+w1WzU+jPnqR0e6WkzDQGP/zLZf6k2Ocyj+t5om+UgODUWgwllF6SULAbsCzPe+ltkn6+2eeHq/EAT2N7JR+6HEEw4oJTX7XiBZ4A3wpE9FIMMLCZkVmtBowBlnUU5pvINH3GRfJWBL2+3YTphfqtLnapFK5mU1AJaEVONj+r9iZcz7tohw9M4ronfKFpcCA/dDofnNa0IMYJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456bgcnw_e2etest","name":"fv-az456bgcnw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6dc68768-e9c6-4810-8636-2e91f44c9a4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25003","status":"Disconnected","lastStatusChange":"2019-07-25T16:50:41.8903767","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7dba2be4-2e2f-4f4e-b9b7-a1cae0999d65","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2p/uxc4uY+JPQZ0h2juSET5f7MwEGDBCYBGr+rujf3+jDRjBF6gUOtjoF2u4s1l7Fa8y//y5M/M3iYExTEhGTkI0Yz/DIHUqCRqV52RHU1g1VQdFNIQSPBI0P6q/r4eCzQeGyHxjYa+yAAc6uOCyvql0LCa+DjwqGQFtrjJAHY6hF+RmwXztzGNWEwLegsINIjNeBfPmFoLusYn7//FnH88Aog1AwF8MFj/LODulcwWYHrOlxiVH0oaMfD409qPVkxlwHKEFzST4G0bmUZeDeUDOx+b2Ajr7JabhX7yy/MCN6yihD6qo/lGknBWd7wltJkAVUeST2SFGLCdXlDa2XwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22021","name":"0.3.1910.22021","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8eaacb23-40e2-4c81-80b8-a3248832bdb9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22021","status":"Disconnected","lastStatusChange":"2019-10-22T22:51:36.3574589","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"1ecfea45-9cf0-4298-afc6-cd1341f2d4be","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzJhr28EOZ1yB7DP2svFk77x8rHG1LqzMFTeHejpBn7xAOA7qY0qh2Y5YFdDN6/uItH5+zln+52A1KSgI+IWqGzOQzrbLfZk8r5HE/XlLhwXhjB/fRcdsE7cosE2QzVR9wHOfmWEgsPtChD/29eeuTyPL3W4NLS4vc3IKdqiy3TKZlDk1Y+EAyLwW32n6f5F/PKA1UJnrlqE7rkwC5ipZX2fqdp4JZHozJEwKZUXFW1jMYDfdvSsAlFDFMjDIBi072/Wdn8Ntso6f3V5KjfBMJMEXUVCYyZAFZKeH4xcyVrP4FYtPv1SJzTVSA5NC3+EclyvZINhtwXnEOkcjRXJlnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16016","name":"0.2.1909.16016","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23a97781-a3f5-48a5-8a8a-0814fab85022","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16016","status":"Disconnected","lastStatusChange":"2019-09-16T23:45:04.8243053","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1ebfc283-8c60-47c6-8689-7478faf5fce1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp/UGvwWMiiBtsJgmjZbaMbHyKRfphLwGrRAPZBpmW1Kz5oTunKEF/Pe5MS6l4u1tve/wQgEZCsDPR95nXsaES/oqvIALMWNaDX31gmgwmNmsN3Izf13tc7pNvOktIbEPhKyYz97SvineWgCC6o6PUDkEZ3WrGqlCrsqPhyfCFD/hM82lYhfP7yG+6pQGZK+mDkTYb4GyZ34DYEjs+3s8OnaLeR0i69k+Vx0RfbUHfQJ/6mtmc1NZAvRbL/ZoYy2Neatf3GQERXHC7ptssUTQpm8NxogDj7vZGkfQA2npflFqShqcm/ZhgxVbP42QJTL409pKRGGF7BSrnJBpncNp1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.12009","name":"0.1.1908.12009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ade3f05c-25ea-461b-80dc-85c552f6d56d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12009","status":"Disconnected","lastStatusChange":"2019-08-12T23:56:55.4269371","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5fb8c0de-95d5-4b00-9d68-fa6d01261220","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyMezuudGoipO4+Y9wjJIQlwL5I3HeWTR1Z2Lv2l6oDtrkBQXyNMjw6I0WEQUAQuKMoy/+ZV6EHJSVHKpjtlQyf31GtRIu4BC/OviUgSmq6AfrQ8ZmiYigwKKLnvHeDYUtpvHkcIpkE9JA93bNR7SIsPg8w9ebVwPMmlMaUZ158v70+NeLXPQ3b2z0lzs+CGh1UXYenlWlr54qAjR1VCfmRXeyNli3yRNRG6yhNm5aeAzPVHen0FXdJjkCh3ovULCJcvp526SdKjsvt63EDFPbi1fD/rE20d1RSxxREkZLqLqynnpySE+k3/I+lhFebOyQjqJz9xEYk/8m3FOM3hlpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t49rl_e2etest","name":"fv-az456t49rl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"33b30fe3-44fd-4c25-8580-ab596d782f42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12002","status":"Disconnected","lastStatusChange":"2019-08-12T19:55:28.3138941","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6ef348b4-cee4-492c-95d8-9ae86a96ec0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmwFyNLcVS8YUTdvXQNA9p1T7ZLCOQV2bq1X6u66ppTAaokvrlLKwjbwMYItLauYyLFjNH3sEpp/WireojALJfZBZomBDK6fyqQPAcKlRUwhwgitP3Selj5cdIaBwHZxevcrCH2Ky1BZV/4Yd6NGhLJjakvaCTq6LC/klUvB0Wd17fro9HYEY1auLG8vdJ8nsn/B+UfhWzIjb80hkBi30WiIbJwBsnYW7LyATqrsdSEcjQhu9cU8D+ZnKl9tsPcLAZZZEZJ+YZCMwJf/MJ36cKJIzYR4qTyEt9YqkrzE9rlHut/vjXbHtcja0Zf0k68M+MulED/VxxK0Pr3Cr4EoxIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456bqkc3_e2etest","name":"fv-az456bqkc3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0a739131-3cf7-49d2-bf7e-ee55563c3d16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27004","status":"Disconnected","lastStatusChange":"2019-08-27T18:48:17.5301339","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2e3cb80a-7f9d-400a-91ae-648c8a3eef1c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Nlo0Ih42t+znHUmm1ME+ZV0BhxXUn6kTzCBDm8rPgOBSAuSiIj0ImXJbLDbdNT42KEBfWZ3D/FNBRXQIR4x7cjLyVJ/Lxq8s30pou/DoXk4W2kcIvjOqjpgYwsMBO1QfNDIJQRPpRZODwn6WM2Tf9h6xEN/VTKxnyoH+UuLjidltl28MyvwoPKHPDKlWRJM/Q+hVifuMCWAEi28mAwtfS16DW1/Pm7WxQeVAN/gtkFVBX5vofFJQBdlcQD+X0kGrqXW6kTDYaLpXfkA0bx5912r2taaX/xFwUIs3N+21rwLxVfDUAIf4G3pZLBxCXqcurHyuw3pAyadYYbJm870qQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22022","name":"0.3.1910.22022","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"235cc85c-296b-4fc2-87b8-177edcbad9b8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22022","status":"Disconnected","lastStatusChange":"2019-10-22T23:01:36.6168124","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"9327922f-cccf-46f0-8d6b-bbb365ed5a96","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxEbdOmEYPr8csbL5jfyn49hVERuiDarPoq2hIuPm4z9oTehhNw+wTvwBr+pf+a6YwbnZyfOXYPbdVAzi70FBwAPD86fHy7HABuw6oxHko8ipMSshd0LWFwQZ2O7/WMnww8rpGDnnb8dYqxxwW++OfNnw7nEX1/lF3MDYRi1168zWGGeKvEmfzY3VAN9SJFLQkoKMTH+4hW5Zfl0UshRCoKlZtUwlid8IzpjDPzKX1LnUWBmccvMK6CIaeVBaOmR+cfvUtpDIF4OG+XfrO2jfj9qbmJrgGOqXMbeeVK3pMCiu0QXpX5rC1iCzz3pvgt3aG0fa5IoZk+uZXVeVzHAXgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17001","name":"0.2.1909.17001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1651624e-3029-458a-a47d-8d8871fb35e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17001","status":"Disconnected","lastStatusChange":"2019-09-17T17:04:33.0989802","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"760b1205-7553-4914-9782-55f45c87ad8d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuZjvBXzpyR30f7n+uSNMIM1/1254bdbftGq3hKuo5ZyCEstIwGyHd24Nqn/IqL0hnieARURUmdFJJaI7ld77joALoTPL1CPe8zrBAh1HDiIL5obPBExBwKpk6PDiQtigcDRXpe5Ms+9qL8Oab9IPoBpR66QPdifkUNCBn8dX6OqvVwxJ4EPDPdpb2CQvXT+GyRCCkBx4xuJ2puG5Mp8stEv4W5QvWETx9HXTDHprCw08ttP44NeDy09am3NglJEjnuCYn41OKAt71FuyPFZpStcO7RfbB/gQ/X4BWfu+1Fjpmb3Re/yX7utR7shhDzOSpIlt+u/sgY+mDGnK8FM6UQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.12010","name":"0.1.1908.12010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"382e2a24-06eb-44b7-9d10-e5408d945a96","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12010","status":"Disconnected","lastStatusChange":"2019-08-13T00:21:55.6485116","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8f875dff-bf98-43fb-8f1d-3fbb0378c592","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxQQuTAzbsYFQcBYigliHbLtkp5gIObSmMAY3GRXooicsJjr5tfDUuoFuIuBbdUCzvUN7PvPHE03XjfOFWc0KBDM83cckX7tHt9isCpx3tIRj5ACQBoclQWFB6NJvn2JrXJ3xNVAfWQgo+pJ5xktwvIfEQwzq09ClutH8swB0XwDkZ47YSePhvY0zAFs+/raaG1F8WDlXa+QnR35NzPquWU4Cz1omo2q0KCC7Pb4ZimiBXUAz7d18Aes3KK3ajVxJdMIaE6z9nAsnw6TOdSyW7Wx0DOYGNBdNxmyc4xrTWmYb0OPN95NToT0lrddhE/xT6B9WgWVwu9ulDbjBgLzQ5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456bw0ur_e2etest","name":"fv-az456bw0ur_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3b53a8d3-9ed6-4198-8e19-65210521518c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20006","status":"Disconnected","lastStatusChange":"2019-08-20T23:16:06.855779","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6bd3fc12-3533-4ccd-8cb1-198429a3dfa1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Q93Sib2w4K+fJSUAX+KZzT2npiNcTBrFlz4XVmzvdRxqLf+buoc2RDQiwwIpXOahysHsK3ywAVPhS5zUeg5weJ9sNGSRvQFSc6uCNnXjQnzdanQCxW2eYfh6/5qKhYXovzuFeRHSUuVAav/+7YaFUd3tTJeSxV/SV5dGxzrKbXFTgOo8Kj4U9hy0In2EDeNVlM25o99VdpOXBsYYzdHmacJCXse3VW9+ZT0+X6dlHhVz2eQSd6cQd3vnVHpIpF+dBv/4vDf089YuoQ8f+027mfTdHkruaf2PTWkX1GbM9q5rz+38DTm69yjGycRhMYHDjtX2/Bv2H+CaO6Xz7XQXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22023","name":"0.3.1910.22023","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"972c3dd6-5e15-4c23-bf44-d3c216a88b3b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22023","status":"Disconnected","lastStatusChange":"2019-10-22T23:46:36.9856987","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"d18f8e08-1f6a-4ee7-ab88-6a27bd498a8f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnqkkOG2yGdDn02tTC+nDP5Hc+zbgNlwS16NxlVQ/5jhGOuocTR1oIYJtd6S9xdZQT0t9gu1lG0XdGuq0lZsOy5PyFDSz17V0RnP+piB+9Eq+mqMxFQkf+Te3AL6fobhYX2ngsiYSfD4qfHpjr8lOP1TZYUAt0L4YRj7uwSgpp0vClM5+zsuYiQgcQ2HQRK3GHvOCf9z9I/2Jlymb4NoQTdrdT4sK+qhOyHOk7/R2VY/7F+o4PgGvhluUvFHbWECbPzG5Zg0c/oLR08mMYuGYIYuTdoswsm+rnitTOiAgGzZOTXCRnkqZplclWGN4KUej7VmXnlYAAKsx4qVDIEwb7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17002","name":"0.2.1909.17002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c206d75d-bbeb-4949-843a-596b9a2aa2a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17002","status":"Disconnected","lastStatusChange":"2019-09-17T17:59:33.6456957","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"59ad3e88-c851-4b09-9cdd-1bf4a63ee3e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6tOQm/HGp321BE1kqiIuOYmC5JdiO4mAc4/+Bwjh9QXTeitPm+NqcEJo4fIFQXtZcmmlEsgJj/+hBjeqAaYGU0NmsJ8xTgI67QT4MmCoqfOkAGdNJT4KmMLRfQN2S4nimMdaoDrxCVI1qfM6r/Xpwl4db94//AOkzWUeHWIPdkxffDjGwD2t0iouqeQ2nmHfqWliNCUXOskv0dqfZfdTY4l/P58gAHP9nXDlWomQ+1vuows0aHZWASTGIY7wL8SF+uz05tU4tZl/Yc/Wa4XGrL9guEDj92o+jU7I39R1ue82gQVL5V+b0/xakbZkW2Xvs0cs6SxhF3O+MIwNJQshIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t4iz0_e2etest","name":"fv-az456t4iz0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"41a7a3dd-5152-42e0-8b09-32ac20e8dbdb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17007","status":"Disconnected","lastStatusChange":"2019-09-17T18:29:34.2435343","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4a254acf-b597-4b37-9c8d-11cc2a146520","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx1FUcU7+iefZo22IZNti1Ydn/jfLipfLG6lKDtjoOTTMvbwy43FUWW8QtQK/jTWgiEN3I1oV+M27+UUNONxI4iCa0ARsgIxHzNYdbwiZzi3ZuUaq3c8qs+/Egs0eNdAOgivlp16DpfcfIA/jKDqWHG4zDnw88Pyw/B+qEPOobFC+OQCO4m7O/rFH4wrsLn9p2VY50ZILgDK3tfP21i3l0TCqW2kNnZ0HfraTv4AyVGV+dG9GXd4hdmtT/0N+vVVEC8/WE2UiOA9G09isXGLMp1mOW3h1rF4tUbcgxHPE1sTQa7AsVraDYtFP5qtl29F78HGuEJawk/8BeZAC2YnTZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.13003","name":"0.1.1908.13003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"33eab11f-c77b-4620-a276-b2057499760b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13003","status":"Disconnected","lastStatusChange":"2019-08-13T17:57:07.1031343","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"64c0a54c-ee82-40d4-a6b7-4cf9ad4b2d14","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnN9I2omtsVTzqfBBaLex3klNdagzyGNHUit48G2we9TNM3CoQ1Mx+WeVcAwKDyPrEohk8UE8I/7+cnM6cC0V5zqvSePpmCGMhA6Egm02uH4/KmOPn8FZDfmp/261wnwDnNV2INma3d7XaD2saLSihUTwduofxiuAqisjy18io0YY8KCjdBOXDGK7FYsOXb69QDIK1w1xgn0gebiINM80ONw8eSSQ5TfA/m1SRsWa86Las36YgFDAh44GnYXrLDe3oZfzCpqiACBnnZmMk+GF1kcYhjGMcnE8xOmLoi/7ySchl1I+L4D1VpO1IBb0zWvGf7svyb0dARB+4qcPYOevKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456c4ixe_e2etest","name":"fv-az456c4ixe_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9948aaa2-a849-4495-911e-270a67444e34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16010","status":"Disconnected","lastStatusChange":"2019-09-16T21:50:03.6922685","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6e89c7a9-b8ca-4a02-9ca5-a01192f6eef4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAprVPT4cXQe29HrjOS0YPqOt2apAKD/+dtN2N+HJeZd4pH2TJ7Y2gY0X8BUgyoxGcm1/1zOHcRAHSk82TvIMr9KPq9tbN2g2XH1u+UronDsARxtcA/ulQBF06Ziouuj61n7prKF3rXfFR6usBj9Eh9Ql8Ygf+mnGh4uCQUts09eY6OD/Z+RErB3FMjNqjMWHoShv1aQilKPy6bKgdyLIQG81rEQbTazovUbsKCYv5m3IHu6E8o2o1xoSQZ/LKeMFkOF0CidwfHXejIMrajRCtufMZkSD9ykd5s7BbCqZhZgEHMZJA1s2HQPZ6Fk/vENjs3Ad8KOvMzR+UX2YeZDarkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.23001","name":"0.3.1910.23001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fc8e8701-2f69-4117-ae07-2c39deaa345c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23001","status":"Disconnected","lastStatusChange":"2019-10-23T16:56:31.0095091","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"abfd94eb-9261-4cd2-92e8-ba7e6a8adec7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1gxYfcAQ2RvE+45Oodod3hKYJuecGwAvNPHhUWLhZ9Gq5HMzHNbxcv3oLlOKTanFBkeQKRoyzrbL4rFt/3tz3Zkpati8il4gcXH793UtV1/ApVWK/7EeDILUo+1y3xeW1W1ClVHNt73V1f+ZF4dUEKr9K6qtuXPRopPSjK2jQw01launMZmJdYBifl0k1CkESsFP/WjsRdBMyYaW+hySYEpmPvQNweZSVuBHOAP/JaWWlyTkBLwLb1tVEuUoucV2tGRKeGNk0f66rGgss2tK7zXSb49b4vvkH3vR6dbcQsm6NzN4vvaZYZnXhe7TOrLLOQjrQBgzzNb0dku36AYw+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456tkl5u_e2etest","name":"fv-az456tkl5u_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b46e9ab0-0b5f-4fc2-a980-b3fb9eb1bf87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03003","status":"Disconnected","lastStatusChange":"2019-09-03T21:49:24.949923","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f3b32dde-ea4d-4b84-b959-5313e235242f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs6aSxoJjOTMvCKyt/xbbBdTgWVpBF5FBymHEvpruKFKcF6cwh3cJp2cF0jyaSj2PbczCLLc92Spnug1thn91qUNYOBDP9REXp5dNEkD9xuArLNFzEufYX6Dp335casnFSOpjnnWnYZtwBsm4bBHroeCkQ2drqzhFiLoO6uBW3r4Eig+176tTviCkfpSG6oQAsrqkLm9Oe8Eg/7O+nGrVRKB2KGU+8234YFC107cL0Cy+hyJwqkm1pNh9Hv0wVVn4e2UaVShnXOmJOPb5j0NBAyOAkkWlfTtF1+PzlIollSaF3zcZjU78pDpzCmodu6VYdXqRRoQRrDHJkhCh8uB10wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17004","name":"0.2.1909.17004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"296ef777-4cbe-4624-a45f-4cf51fb9bfa7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17004","status":"Disconnected","lastStatusChange":"2019-09-17T18:04:33.7190304","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ccf8f6cd-1095-4c53-be4f-774565abe7a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0UIkDD/aT0k/6pQbUjnenqogcs8DuSG5acVkwWnmI5q2r/obSGC4VFNwawWZWgsbn9+QAQyWC6iDG3vkJZ0xdzNBcUqYFbfKoimBMiF/GQg+YNDdDCDXoXMyZ8xd/xx/vr73teLvlAVs7OAxOWE52WsPYxUB3QhpT5O1GVAAhp3pse+xdtdx+PpjOd97lqjr2duyPi5c7g9bWi57n/gmmDOpfvNEuyUM+cK0Mr8QgNsINMTpTgkgVKlrLHoh2kx3VEQLvquGUj/fPHuOj+ksL7+mvXiRSjc1Yg/EffbGFslPLYXDEvCkSjfW45clZCq9RoZzEP//iwyX039tCiERpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.13004","name":"0.1.1908.13004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2df88459-eb26-4828-bcb0-f376af2eeae1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13004","status":"Disconnected","lastStatusChange":"2019-08-13T18:22:07.3062765","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c163f79b-66be-4d0d-855c-a686c70696ab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApfdClp/+3YD/iIaSt+LlwQ2GAFVeJXQ20gsCtWnQoeZsTaYB/tFzpg1rJtW4vAHu1hbSKkqvCQIl3fpi7jB5HjH8VKIsrvuQl3imixPB3WKiLE0JBLi9XxNhruyK7pSiFN1GyGQ15323xu+xnUOPJGr5gu/EDI0P/YUDvbV7tau5nwB5hXsVczBjRdMHZf+icq2E1EKwmHjgfE1jHoFWyMxMhmQpTM5w6CQOLktnZcABGMIpVbDw6lGEkZ7pwdVgw/Rked2pzqPoPDer5wFDpFoNCIdt+ly2Ad7mwetr+mhakDetZOwp2FtH90wqkmhetaJoHRSfTh2fqvIjsKeYsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456cegoy_e2etest","name":"fv-az456cegoy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d63ba2b4-7d79-45cd-ac31-26c9662f7733","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23007","status":"Disconnected","lastStatusChange":"2019-07-23T22:30:28.2943653","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5a4a0dcf-c8fe-43f2-a139-86eacaa32917","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuTMIag34AEI+vURTTmT6izin86LQxfM5TEPN9OJjx2opX3l0YY1LnKae/5puU4jvt5ouusRjHlC3exXXBOYwW/jgm2XqDjfFvnlqT37lQl7iol9IyB92MY6pGKakn4hKsvOIJ0AYsUnorz9G+VY526GRE2aC5UCmBme3Vyaf0SxTWDWjbcVm79oBf0iglxWLxMOWeRa9h/r2srITzrn39skV5DL/LXIu4RdfW8rzEj19Xnh5wK9CZqUwLfztxvrDE8bmLtkkyGLALHoSFF7ZQijIuS2UO+sg8LTErx6dAYvuwJLej8OYoP8UbDyYcIw0wc4ZJACplydOT1eTn8yctQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.23002","name":"0.3.1910.23002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a41e3b7f-fb25-44a2-b805-4d28527d5d95","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23002","status":"Disconnected","lastStatusChange":"2019-10-23T17:01:31.1050499","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"281c0f41-635b-46d9-bbbd-0f52662407b6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwS5XaLEeRm+7HMr6OqzCGeRcsOV++1e6Or13AyZK0m/PntTnkWXKd9DjuJFQlgK4cOMweKQoInsvuwXZJH7FIBIfBpr5vMitwYK0N/xS225+2YhMevb1OnxgeWJzaBYBorHXF2c50kYKJzsd0n5O733pNPoS9eIKEyXDiXBOFoV7DmUvKE4SF1mDj8j9G/vSPE4qs1aIRxblwsZMDi/N+oYR4gcibxus2wfb0g4u0C03ggdB1QODeQDRLALxFcbaXlf3wnegXq47o0dfSR4bSQJbWQJ5mBVh5ACMLncmeLLlESYDxFUDIRA5jab/2An58p/ExsfkI+eUAIT4+eVgZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456to1sv_e2etest","name":"fv-az456to1sv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2b2461f8-c71b-47dd-b872-b9a6841bc170","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16015","status":"Disconnected","lastStatusChange":"2019-09-16T23:15:04.5127288","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6f5f45e5-2e9b-4f18-a070-b926feb907ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyJoBTe3SRi42DaQZRBHA1vAU+55Of9+jjIMPsJZomndG1Dk52G1Xnjk8H7FjF1F+u/fQ9corFxpuaPtXlwzNjsPW9LmKCkvmqUbIfytFORUKzs2cseo/yWzQm34cVw909u0nmpCG+DrLFGelqwDHu2x6rNVzySTCFFD6hJDTJR2GY64xxnPv25/w0cbd/F/I+Crsnzez23uhYCL7BjIuoC3ZA9sQKMk4dd0GLzrBn2JJl0PDOoTBqYTaLzliyzOWulm5lrkPZyvvdD3IVsf0Ol+ZGMnEZAQRMZ7ikgHmE4oeinV6mIOjm0QLJm2UhPII0Bv1lu67AViSWfgkEuaD6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17005","name":"0.2.1909.17005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"178282f4-17f4-4f68-a36c-9215044da2dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17005","status":"Disconnected","lastStatusChange":"2019-09-17T18:09:33.8033566","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4672b997-0086-4478-9df0-83f0a89d7f56","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAygqR9GQdMJ5Z/nVxhautG/jK8tmOnZHGNEzB6yHAGp2NHhSwIr7Z5LNbrUskSz0TICg9v5+RDEEC7hhV0wxHtGY2uKZqj1CVjKpAJlVj1nvr5KWTWCtR4TXZsSqh3H7akEERKU36djEJavqXobo0mwAf8T01jkbCd7etb7Bl/2uScv0RsZVLSHAHfP3GZZ3N0fK0uSG6hZHk24uU7zD339D1+xpSQwuGvQDGh0xpDDhoXSpGUdSQD8fqBKaha5I7okHZPJNiPOD38UtCZV/g/09/AAhYiTFVUnAF/Kq5SmuRlDML2yd5IEJk5/csfDq9+EW9KlrAQlhJmOcd8vOZCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.13005","name":"0.1.1908.13005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c2a7bf5b-ebe4-4223-92e0-bf35beebed99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13005","status":"Disconnected","lastStatusChange":"2019-08-13T19:22:13.7476612","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bdb3bb93-6958-4500-98e4-3acadb0d9322","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4+zv3EfzvTIQSEBgjCLExua4z4xKSaT1BJ3zWvFe+hz1e9qMY0nmhIifbgcnyMQY+0Tv7DM0bQrXjqjqauCfFKB+Fz6iZIuw9FX57ubmbFVQGYKK4dPIej1BwaJo7C8xx8EGvgf/dDVxSdSb1UOmimhbencwBh+9Yd/IQTUXlzjjC9mVL4yBMOYm+3po5wOWHeV0CcYAR9lyaFMEMsD/tRMpQRBJkvK6KPL1P0+oqo1mUNUOPy5KbeL2aNlmj1iFWukfGF7EmfohN8bXRfdFJSXQ62qDJLBagcoS6CMvoCIw9UtdrrysYeYv4PKQZZha/L9JstskCOYfkglqlIYphQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqMwEP0XtOzTElhDAkSqVmMuqZs2iSFE6iMhhlgowAK5tFX323cgfSiymDPj47mdD6USt%2f5ZVmWnzD%2bUAOJtEpMggY0yV45933RzXT%2blVVqIk6j6Sfp%2bbsUkq096d953WSubXtZVp%2b%2bnwrItJ9PymZtq1szONMe2XE2Q3M2c7GAe9obetPVFHkTb6S8ya%2buuzvvJ49u%2blQevPjXnXmCl7Cgr0f1JG6ldkInJH4jx29UMRzOI1rTiIsX154%2bulM22LkX1oE6palOVkH5w0aomDH9CI%2bYj%2fneDYgUvqXg3rcPKY3D%2fVBMvfZWY0RZJLoJt5A3IMBCzeIcYk5gsWCOaTafmDL1wM3CgWDD5erwCDQxYw5HnKgmxYJk8IshvCAEyykAG4G0o5RsMu0mC5QaaFWKDCEL7fpN3iX9BdxaCeWfc4%2bb9hfk28l0nLmABYAHaDcAVIAEPFhYsruEwU4x9AbCA7v7SJSw4BVYXjBcMo%2bFTBGUPDLCx%2bGkHNAIDwnW9krSAGt9dhpwBpyziwBn3ipgGsPSgBMYZFMHSq7cIvaFz53ufuLkwwApocAbUIWTjnD7hmAArjunhiJgHHKD0BPivMO6e%2fEKh2rQqxJdso44n%2bV3FkXNKcadfwoa4OaLa%2fnCmvvL5%2bR8%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_CENTOS8","name":"0.8.20133.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b39b173-1f9c-47e8-a07e-68d6dba692ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"88ff7074-6b0d-4702-925b-73a476476876","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAuKJK7xRM1aZ0XAIjX7N/OsToTVENo5imPML5JABOoMT85q6lrIRWcKvdBzyu897KLBW8fS9e1rfhv6qf50wu0weSwE4RDlWJFvwUFMiUz18kv7+nYRcGiSfl72kjzCaX7xuvgu3kzE/rErhjZizsypiKRTRHAUiaZBI9aSVmQ0bnF18OyXvAWbpNH+XIriYnYMC2qKQrAoqZ7zHQI0dh50Oqw0JIKG+px8ZROkTGAVL1VMNJIjv2ubltU3diTfBfD54wpUA3ygTpPp3Dcz/8FLsKDPC5JMRkgmMkCAFw2UcR1tEDYhpL+GhAL5mQFhKNdMqjuWPtBJ2RqO6y1VzrZQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSF3gtar_e2etest","name":"WIN-LREKSV3QGSF3gtar_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"65078a77-2b6c-4a66-a0ab-96022f123586","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"b39efb18-f70e-4e04-83e2-dc27ea5cdc0a","vmUuid":"3DBF8104-DF41-4F7B-B581-68E911184417","clientPublicKey":"MIIBCgKCAQEAv/HQ97egXZ33VFKA0KLJjEw2dNlBhma915SsjLuooF7SUHGhmz7dlDUwQqskqETeaUH4TUty4xIEsPldZ/SFO92zRJ5bVH9jp+TJ87hQKujXWpTJOfed6KIlUIbhDqifLUAjr9OFro0Ha7S+Buiznx8lWLR4Q+MgrVMP3QBaY/5aGHnZsFRzOAQ/0JSo8BsYsdIGQpDg4bLR3w5V1Za99x/nBaBxngl4qanB7QahIqQyfIWVQbBkBIxLDATNvFoAgrB2o8SavIssawFYf1fYSQZDGBtUnw+3rjyOreGRU0cShLiwOVilMeA9OxAib9XEbXiDDh1mP4uGr2cqfFtN9wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFk0h1m_e2etest","name":"WIN-LREKSV3QGSFk0h1m_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"e8ab179f-bf81-4120-b4ba-9faef59e1034","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"9262b0fa-5cb6-419c-9734-a5931321e443","vmUuid":"3DBF8104-DF41-4F7B-B581-68E911184417","clientPublicKey":"MIIBCgKCAQEAr+yeeD45SUhEFMF90vNy8f/Y21JiYA+rsH3X+V9RQOuSUk4nN9I5VS4yyiS/ZMzN9X2BWC0rdBx6lFW6M3Cz2aHKtJvzKfitcAgm1MhiCejxf5bknKBUZgxu37Pls4715kAFhdhkghNB2LhsDcu1CP2de34LgLx7P5xQMkEyBpatyLgcyKXdMzKN1QJaab15DKFc0cjn3s2R+DHmQoyEgxFDbpn8PnhU/UZJG30kfrMnMHyaWJHRJeJ4+LJGGki4batwdn9ZL5oZk6+hUEcW/EvZ2j8Nmju8HLhEEL5AGC3/lpx6XcpRzulsVW1S29oFO2MY1SxWF4r8acylKrV7eQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFqgrwx_e2etest","name":"WIN-LREKSV3QGSFqgrwx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c03d4548-d962-421e-a518-24bc78c17691","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"69f85757-5e12-4c3a-80fd-642b54bfd296","vmUuid":"83D5E96B-FE12-4876-8E23-4A154A67EABB","clientPublicKey":"MIIBCgKCAQEAyfVRl5tcCs1W0yADsRU7ErShIybH17yte4U8UAau+TEl4qz2st9+5i3wljP8VV4LOgnt00/Q68IRkaiBALIjIVGt6hHNptl3JtTaBaVcQaVM9eh0TNbJGhNxdROYugQ5TJyNTtgXLoBZoGWK1GMDvymT4FoNA8woWPxXCHxOaRBgnjGgEJArf9+WMDIRUabkhj+p9u1D52OQOZrp7AWdMVH0GKPm5jjjQMEohqILyOzZ9EDOyuetr0eLvh/kKfp4OPtpRW4LlsJbk8vNsYfF06hSQA4WH8f28Qy0VVcgX5tZYbYXwy8s7qTFsJZNQH7dv9tp9vUheCiKblDtdbDgsQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFks0wz_e2etest","name":"WIN-LREKSV3QGSFks0wz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"56f0e5d9-365d-4445-87f3-aab1f1481c4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"8fa861fa-881e-4b65-8f66-af9b0d28dd00","vmUuid":"83D5E96B-FE12-4876-8E23-4A154A67EABB","clientPublicKey":"MIIBCgKCAQEA0zY2+YMh4WClDhLBqZTLOUZb/cM6wtIZpvkAcpjxYWz2yVrWimBWszDDVxzJ2B5SYOl55swwAs2k8jG37/iXv8xW941HZZCP4TUMUmkOoPE51FPA7R6bNONmlEz65Vvvq3ymVI3/UPcAZhxVEFbTr67jfy9JqWxaH6Cn90JmzJsqv4PLDFRpIW2nzeHNVLYWySz55koW6xS750eLwA1ExmVBQ2TgvSJcVQkPKlYvxQA+3Gmr13nH4g5hIkz9Hzgahgl1/B0gtN+Q84BxEJQ8fN+V5i64li8aoKTGuY9Hrr0J6NGT7n7iJmxKtVcMv2ReqUvC/d7cLknp8n8y84QfDQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_RHEL7","name":"0.8.20133.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4349bce2-16f8-4841-888e-c135608ea1bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"6adb3c07-0bfd-4cac-b92d-cee71fa91ffe","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAq9hfyzrDOQEIKo4/avrXo0aGjj1vARLpZTOnltW+AfYfAW4LXcJE2qjpEk9As6cF3W3n2zTYZ5OWyzsVq2n78DbikibmP0y6M8eK3gyoYio18w6bGGTDHV1sqOZikOMzk3gjmrqMcCmk17sB1k9c2ki0inDFyrSg+Dag3S8ZQQGwNPU/yXgwyXUsa1ucHgwCy4bUj636maPqGQ6RD28dXQdsBaSaHJChILBgAwhteRLf1hyMAbijg7K7CSzbQjAgzUxNXFiqnuDFXdOuttsyapmI9ELpRh9VS9RnSHQvN/4EraaAdp2wUjozcT5J9KhNQcbQi7bIPKT6yDYAsCQH0QIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_SLES15","name":"0.8.20133.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4ed4782-71a4-47b3-ae39-42d445c9fa86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"b6fdd393-38ff-4e2f-89d3-534be132bab3","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEArC7gude1TxxxN6wykFnHjzJc5L2HlA0GZ5m+1DgLUN8hQfdkvr6DcsLZn+5FwlLBqMz+XycUSTidne95PI6NfQSiSWH5zDcui+1KOsEX4Om/vQSCaQgCC6xTCCwm+bB/j4D/snWSYsP/pTWVUtWQiU41W4KRSyA2JpfBI2y40qtpwIx4fA2Jxt8FgF7aCxYFFDKZfsRgZc5ZCTVJkEEI/GppqVKeKABzxy9ps0Hq6E5FfYy9YoZtAycebQjImnRSDCFRxTd7QxGxDdwfJ4jF2Jxt5Dw3tACkX/+RG72g4z3KvKL2NaiEjotSoenzVgc3FdjUrue7T8WnpQpoQlwN0QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_AMAZON2","name":"0.8.20133.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1c7f1c37-1326-4557-82df-b72135610b86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"4b8eb832-0b22-44bc-9041-22ebc0619ff1","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAyV7fPlye5n349gYqpzH8xur+7uDQj4GR5WH3Bs9zO2+3TszvT9OAlksnnpr/NnDl9+zXL9SU+ww6lTtLYvw5Kg8gLm9S/KfbvU9YEShPJjGS5OeR37kw+E1j/6RIECJ4fcfVCLjx46rOKhC2ML4dh0DvhOeLniFTBsCKFSyoKElu3y4sMQGnvcFN+TAzzy1aiF4Rj/frIZiiV3mdS4DKTYpxBgTe2WTzhUKNBN7pJ7Yvq4LzYPnSZPYtohlEf+7PlXXM6ygVJuTQyNb0mdupDvyOFBQPPHIejO1P3YuMFx3EwvVSGiq+FVszCH4L9tN+IIqtVuzS+SoNyMHM827gbQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-19yko4_e2etest","name":"George2-SLES15-19yko4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"18dac130-8f26-48a9-a2b6-bf11c85ba842","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f0fb692b-6e5b-4e38-a3b0-107cabb166ce","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0dmVlPu+WlCf7e72txVlyZI+aY845TOcmwzYlT8zD1ZGhkyIe19emcwRKiiG7eWF02+yPUWO57/tCEEqr1gh5pBooPzQugycUaVwPdo1uzB/yw8yUDHr08H137XcH97/VWT6b97D2p6EnsFMK6aPTf+UykeJmrzTeI8/v9ZEHHOe2Ra4/XnGmiXcxMewep/qj+FblTyex6LTjQVXx1cOKL3tJu1yFnCDIfcGFzhW0yIIbnibjRtEXLBk+qGU8AXBVB/oNFG5gBBT7IVqIlxInh2aetrlnWGIInJmeiR6wjTjR4W5hzJT73xt4hDm4JmtCMYXF5cCkzDOdZuTCH5v3wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internyp5tz_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internyp5tz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"627bb7df-14b2-43ad-83c6-3a50b782bc09","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"e5dc081c-3959-4468-bd5a-b05de29895a1","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA5xqVoCtSa9rWQpV+YkRnTxkIsiglEe1YvtX13Xzph0h/NVATzW8X0YCy1LPf3DKxyDmNva1H+Bv7KMBcej05ANWGS7FaEGrxOxcVlZ+Syzol8wkkzf9uj8YayM7kv6Fz5FchUWeoZmQnpzSeinMfoDJmEKJXCLQjc707TuHMgLLkHxNv6LUjH4408JLuG25zo+F0QUCLqw45yFHKk4koDOkNRckeJz0IKN5IHE/ExVHrMtss91eJMtEo8hcegKDd2U+cGfrr5yLYzqgm+3AYTS/qiYMxx8hLA4La4esB89eYCwEwmWVI2nbzhebG2yjSTiXafdzJStMpDpt5RrHYjwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1y68fl_e2etest","name":"George2-Win12-1y68fl_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"5b3c33bc-3320-4793-974e-d77333d316b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f3b28418-da06-4df2-80f3-6c79ef22cc91","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsSEKGkqXaUavfbV1XN6OVp98Pfj2MdWlmel6LA70n0uQuf+k0lJ6FIQCg8A1VxqER+fGS01qor11NkbRYypO6vxoZ4KMAzOtjdCMaBD6mrwl6VPM3Q1n0R3BM4igizRMJWLzS7yv1MCe+GiUV5rvz8/gcNCdFaU1JER1gkjVBjJRdQsboX0i0i0n/rpOg5jbodo9IAETEPhoJ890kU5FJj7SBdM0j/ZCzvnsaCsQuUWfHndG8DvGSIRu094zQm0/8KFDq+yngIoycrTzf9HDhkQKikbfw08g4k/lZ1VXXqEp/FtYb7hYMHANpcuh9lH3w6JfbyLHFzrEIGDPrBNfTwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-15mt3y_e2etest","name":"George2-Win12-15mt3y_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"5eec18c4-d630-48b6-a94c-82edfd6b502f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8ae50ad2-0c71-4ffd-9cf9-6a56f61981a8","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA+dnYlvXoGHz/DO5VTA5K7CTDEKxqoHV75B0HS3h0G/HTPjt5jmSJEpxLBLABHZ78yYcwumv9x4T9SLT68MM2lj/RkJq4KlA5voN2ROIbY0ksB7cfxSq7v+EEw+u6m6C+usWVq+4NIA5+PAMt2DP6KTuWFZpMiIAvHTn6B6FT2xwG7+8aQoJ0QBPTgZ1X2bMUrpVcDFBI7QC/Fh6flbsrZcr65ByQN1xQyPJ6gxP88zFh3eQ4X7f4Rxz0yAZQpCOp5h8NxVv/NfRuqE6l+EZROCcMYwPxC/ftkeaUDzcZyl6yVdvx79TLGH2rtv0QfSx+hpmLnbNOW020RYDweZLPTQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003","name":"0.8.20133.003","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"c631e812-bea5-45a3-bdd4-0d346d57ac69","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"80bada80-601f-4349-8470-3368e4ecfbff","vmUuid":"5103242F-F1A2-E240-93D9-EBC6063CFC65","clientPublicKey":"MIIBCgKCAQEAu2nxL/NUCPCgfhIuQnSQQgmQWbhvbC3LYw4h48Jb8x25+4X4nfT0KP3+0MkzGN/1SqwovUdqC8BzDFNpiEqUZTKfIetSXVv7a/GkUxWl4OG9aJhQi750saIv0Ubk/fx5pb60vPjPW0DA5vRIA6jsP+o1WYI5zvKLc7Quh+rYvNWYksWake2HI+dqKOOZsEB1d0QPZQafzHRZ1MN0hGe6gC1dGZJ9v9hM/EN4TfrPZK92EsqRFf0JeqCnpmka1+UZwbB69v6js5mWlyrpRfVFCwaq8ToFHF6+xPp/cbBsdSaGRrvvKW17LIP6hyY4taWDcuC/yK/9QlrJRBEu5SF5SwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.tneh5hs32a2ubie2nppnwrrtfh.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1ilh9a_e2etest","name":"George2-Win12-1ilh9a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e492660f-ee10-48dd-8f2e-ab2896e83ed2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"01123a85-996f-4d36-927c-52ce8f6fcce2","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAyHCuT34QmfDAcTeYD1lLiH92MBkAdIVHVd1Y1qNwjphPiYqZCzH/Q8xW1Cn47DooX4gfxc9sMbg9DXY5HDMr59s/zVBGr37JWPxIRFsC91nd87kPhCRteNLXO5XleiE0IdzoFtvHGA35rntBuh046sObOBqTq2UI0pm+ISmQf2VGBgyobJZa948z66rKj4Go41DFtqCJvHASmDMulwPDhKOfeoYYz8PJbIRvthITSVsho5PLEkNdNDgsFhA4br9SKD+TSXajXnj/UlvDbqhCAurdrAvB3PNQWFP+5sFsXcjPt93/SXjp78h1yR0sGs8Dh4VxuyUt7E9bWi0AFiP5AwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-14vdrz_e2etest","name":"George2-Win12-14vdrz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"794c806f-35ed-4720-ba22-a9a0a70074bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"dbd39965-9412-4fe5-a2a4-048caae4f641","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA6fgry/2AGAfcW2WSruTqY96TG1Hgy3Es0MHXuMqq3rJ6A6ebIqzGNFu01+Mha8OdH/48tD31w9zqrqGqw9FpK5sjcixmOn5/P4EpF97rc06ZP8Xk3MBVh0Ib0iukG2kXi5wQYMCt2VZhxEoqfxwEncNzS4AJ4VozhZ+QeBoL/5Qfin5rx5jF3bnHAZtn8ju8Sbj4rTDXJlYmTX+xriVDJCCefkSrF95RwmNzJBOtq8qoOWG0wKqbA8dlLB0dG8svHFJYg59a1inhQdiENJk8tNLt+uqPCkTOOsw2elXS/66O6QUWo6vPQ2sGdOg/JjFU1kU5DHZch4SEl3epqKQKcQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.004","name":"0.8.20133.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"efc8acd6-5ace-4ad6-959c-90d0af119da1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.004","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"fcbe8edb-494b-466f-8a4b-24514fd8e625","vmUuid":"A67FA963-15BA-7447-947F-D5C493323538","clientPublicKey":"MIIBCgKCAQEAs91EuO3RDJJUPEpsfQjqYoCwA5AFBPUNWmxttb2JoYnazGz0nQ/yqBOuMygjWfazlyYpCaru3+z0efGY6T0/LdzZJVrCvOd04SHRcsGArWVkW8FMfB0w1CeSsbi4aUsMg1+ERK5WmgzfIZQ4gAC2z2pGggZZP7kQg8It/y6A+72nTmk4uXwNmFk6eVQ1IPxy0bbB6h4X5ZNecGsUibGYEXkxIp8/TMeawgcY1UkOb1dbqJQLyOok9755sdEBB1UkU0LSuS6gLvCK6yHrtZosLCcTnZtQjlnVSvTa/mXSoJzfE1W+HsYDWpp4sPCMfQIHoSWlTBJr7huTpa8BDWJVawIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.ef5nk0um5skuvmwa1mcx1kwj1g.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_CENTOS8","name":"0.8.20133.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d6746a79-5eeb-4d75-8a05-ac28fb03f59c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"1af0a676-2755-4a8c-a61e-f8b9c6026c2f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEApiUBb+EPFebgIGuXTuYAmmZUiiKF96IKAkmBCrvCe7sbEq+gPGWOPOqkkaGt+RbUwFam67b5nzk15B30ozsPFy69mDTgGWJ1jk4JCZnl0Pp43nUGoPiQTK+dTC0QIyTZmH1anqrpTGrtetxN8vzz1LCOHgVdiMT8DV4u2WWIK3z0HbzkDts4tvtbhcDb4kRMMLFJ7GmOrhm8PaHV7K5pdadOMyv7myisW5nTGHezKsYSx63l9f+tnWw/JlxsMHD9vzXyoBLP97ctKx1nIkYNUfW4sEcAwD7R3dZxOHRgALEmfvcBTzikY9C4y1HLRGh0cVJzr+6bEy2sgL/niSkOewIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_SLES15","name":"0.8.20133.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f9a745ec-4ae1-4757-a05d-a84a321ebe11","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"c1521aec-7c12-47b7-a78a-9b72c98f547c","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAqFUILhONAxWNecJ+OAPUx1z2/w9BqcMzzCDSrMmubYBJTqjRSrrrhWIZM70fPwvXTXWQNLAzxsgknBXQ8DonEPH3jt3PJf8BazV4ge72eybpqAfZ1nMhW2LQXmFchWyYn3RIsr2aSHHguxOjrLRZQi7gb8p2av7Dr++hytbpnpvdA5VTckOY2VwvhC7bVHIRa/dBPZY4mGTRrRwil3PdD3LxOxHVxix0WCWniWf1mdNeNjz+7oH8vNHPczyz/nTybeNyKLblSLf1hKupS/3w6ywBVXHT3XYtjHuZTqncuFCptpAvJWHmTxOW6xugw7Fzjk+Z+cl8VYxKKRY9lDwMswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_RHEL7","name":"0.8.20133.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"949995dc-7997-4b84-a10c-88596d42a37e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"59ce5fa6-932b-4b58-9b45-2913ca7f91ad","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvXLBP8ebVGP0SgQcw5pzxhxS3lif2mmJIv4pUzmcSvpITJwLu0OhHPviWwlPwgDtnWDzAUYxtg2O9ynVUwTcVnU8HSmj7p+YzLZhWXjzvWh92N/dhyWPU64f7BH5MJw2JIPwFNxCPcbv0ixy3Xn3HuH2Yb2GUSOpeYdfHdBpE7sqvULjPyyZgzRGnb6VhAeza56rtMCKgNe1RgGPEG+YdgjYCQMUXyT7FwBun71A6XVRtR27Z5aO0ZSawEKc8IpEL+I3ixcAr7zCQmlO+UjL2DKcs4UDiy0HtUBJiXrhtt4uForEEtHH9FtrvnExnviI6uRuxF0qrUn6NNY+ItQMWwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_AMAZON2","name":"0.8.20133.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c59738c-4fc1-43de-a35c-a9f5dfd7fecb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"bff91c1f-5cb9-4abe-a186-de5e335449c3","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA3Gc6HZMdXUMljfgVEhs6sdYjXOPo7+Zv+p0zvfsjzQUQ3s9QaQ13vZG6ZghhLVNdaadMxlh7NVuOMrmpWxvdzLLK6JV+R/88OrVqfqf9kMPjd5OPy3D10u/urXfgUU0QDc8Fys8GweLI6gcJhl5KbBp8OiXC3A85CKzqTOjmZ7PAqDDsRgMQTB7cNyqYstJRWxDYlUqIQlM7VUiWRnhcqeBiKWX6Ak1q2dYo6wjHQaPvHEcF+Wj57x8zEdRcBG+i66I094cLu7a8cdmpPvoTzgy5mY7lbGricUawGjjAIi8zXihiX2fyINR45mMfGH9I/eKsRzxVCYxVFLWEVUhpXQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1zghnf_e2etest","name":"George2-RHEL7-1zghnf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"34321c5b-e9de-4b0e-ab80-251df9913dee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"4eb887b3-2c73-4a9f-a9db-049568ace2ca","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAyv3BnU75xmmEln0bHltS3XwCh3O26cezAiOCw7b/SBfRzz9bgFIX39IRk41L2LLLXTES9fIYqkiQjqq3hHwMiayQ2NHamNqXRkg85DcJMBMHRwVdT88BS3l+rmpS+o64l1pCdL+RU/IzGKP0LRv3B9VLSDOkDsAbLWoPXIlX862ADfJbOFFcaBICm+C5EqHfeehPacVlcy+66xJrVstbncT1uRryTfa1Qi5n5gAnh0QosOyo+PhdF8+nG5Rs4uMcN97JMd1J6V8l+CO3wmr33JtvXVqC68P5m93JzkT3+xCG9UKb4YRnKcGgmsSLyEfT/0rAH31MsZ9oRNQITspNMwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1v5sna_e2etest","name":"George2-SLES15-1v5sna_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ead9b979-2a4b-4811-8aa2-bfbae02311e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0e62f9c1-091f-42a8-93a6-7b489cc10ee8","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAy4t+o6t5AJakLfztnvB+eO6yMb7lL/WE+lyJZFCzd5poRqrW+3+t6ADxVQunKscm4HZBoyoebRjmH+mKeszuI41aiCVlUOthUYLrMuW6VrbhxIj++liLtHb+hgOK1v+AOgA4AxnayKTu/Jqwcbfmi1wfT+D/ZJzLvM1AP+RB9XVK8v+d4F6qoN8xK8g/hA+GvL9PMRRvawmV0k1WmcX//by+6XXtbZGraeHpsa1E88nTPe8E8VIf2mJW59h/Nm4MxeE72nXN+Nxn5z2gqvWfS1hbXQl/N07AmadFWhq7V8tbLueJEbSXxYVAAP41FoYMHmL+KrtbMGsZYP4jW5mwWQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern684jx_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern684jx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5e8c509c-224b-4a49-8cb5-6f2c80fbeb72","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"f636cd46-6045-4256-9789-ff0dcae18525","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA4dQHmceZllDhLMvAVfefnVs5HdTVm6fn1SfE8g9/oTDAEKCNGMuSuWFupV5veTI9GVFYmnUdInUntuG115McakRkQoOcFTwgAyf449jgs6XtHWCkQ3a4gTVXnUICt7R6dROjB6K5X3eov1iIUWWfmrx3wVsc6EizP0sFHT335R5RB3ihA7OYuRYu7zeqoBw7VNMvKgT+/u/Oz+AiK+BFXTPVAe+RUuZFajFWhoF8BVCGPxLBU+bhXQTYadgj3MoAauUWhWwMXVReiAfEk0nhxSfbzhsgIWGZC2drKMJLPxkxbAPGpH4ZKP9lC8hdZ2u2+SxEjYJrDrjioNkKu37ajQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSF6yuco_e2etest","name":"WIN-LREKSV3QGSF6yuco_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ae6f7ac-0ade-4cf2-a51f-3b44c493815e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"150dcd27-5188-4285-8709-5042e89c1861","vmUuid":"6FB2147D-39B4-4A2B-BC36-3F794CB11608","clientPublicKey":"MIIBCgKCAQEAskVAB9GgH3vN5PHaQaIV7wY718jdc6p0f0RcOXCBiUsSvOy52qYN9uLUbAWHFhxzEaw77SEGq8wCju0knOEqK5TzIAhUrzQlEG9jGdHdhu0jnc/sjpjNkCvZtznPBJhjXOyCnNBCLe3IiNblIA6mHB7XBjDt4XM/xzphidi5MHnds0UUaaE0SUWuneZ4fYlt1wzzp7Kd0wpGgGsSZPwXvxC8o+lQ8CE1K5VqueJiWzQZhQQlwqDgULlIgR544U0ctHW4D1JDbE91zJF1hfRwJwnPq+kWEUYpHlCIQMcnwo52p72xZHUeUmfLf/eqv2m4OL9zNbvhedBwHL2Fay8mIwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFk2ajt_e2etest","name":"WIN-LREKSV3QGSFk2ajt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9451c274-e423-4ca8-9b8f-cc38ece6d449","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"1ebb0081-ce09-4a17-954b-3c488af1d2de","vmUuid":"6FB2147D-39B4-4A2B-BC36-3F794CB11608","clientPublicKey":"MIIBCgKCAQEAwRQq40xps7ILHtD3Xn+s2zPiBfF/RZkbdsT6yURTwAIUPPJVwzBzvAVLLOFqXE1MEfCqeeS+4DTK5v4F1fKfIonyQNMzj300d6lZmLP1UB0kjo8orgb+hNNGxFfWXq0C7kh70p/YmMnkkZ+6qZxLTowP5ld4EzzUq0bvUD4TmtTdQ8p4lWY/P7Lx6fByvo74yX21lbAUOfinYljZUFV1Ia6vuSmp+HLvpgKCcTgGQZlaqf16/93Zz/Ox+E3rCl3/7woH0Y8KUNMcVXUbUgTn+7+OJvR+1fTIyfvhycag/aIpTnVH328IOvMPgoPR4FsEIo5ZQHw5+yHYTJvJ585XHwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16hijk_e2etest","name":"George2-Win12-16hijk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"022bb990-9906-4e8a-8c8f-2d70cd17e2aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"6417585e-c214-47b2-9748-9096ac12f6b2","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA4SpIqWijDaSqVe4X3DU9JVmDv2R6YaRgeIQTNdL256uE6i9tyqWZXZ7csYpeXm1i/LyNQ3nl+N3KMJGgIfkB5JNGEt31n48kQxuYTOd/3Q+s9ohjnp6zt/kgW94MOBHFEZYqlNMJ5vXhjNJicInjEwF37dChdhC9ks2fjwpOVUxtV9UexOU5vR6P4KTbsIiGD6xIoxgabP4ePe8FAS49FszOYiEinv4OTytzq+9DKH2s12jufE4TZ9z+Wjz3LvgQeSmok8QGmnyGQMPh0qePx+2cw5RRGDrogZimVJY1DSDDoDN8YE5rp6apUTTuhN32JwUuCcmpszNBHIcsgf2pgwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1pbg0d_e2etest","name":"George2-Win12-1pbg0d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb13c956-7b10-4a79-95f5-bc210c7dcbb7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"601b3bfd-5cbf-427d-90a9-613f40c1e2f1","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0CGpMZyQZa+49M3e9NmVWP10xZHXZpYG5dQlvlZmlmZcslMdJOI1taoqxIYLKQ12/6XVtsmDK/MU/uthZ0bLYAIXcLIM9iQpiY5QeY7RTae9l4YeewLOled0hA9DVHTWI3AZrL3h7HC4TUWCm+ykeILpUSLFVnpV3AIvKdEgio8bKwW7K2I+Eo/saagsatswa+03fTxs8zMVcM+gO32T9qFI4GdavAhCT7BnM415Bt1QZD82+RuF4T00VkSFKCtaw4/CDul3zwk70bCl/y9fuARtxmBQV95knmXEg4torZAN7cIWPibIbBZDHIIkLjmB2u6CY7C72mzsb7N64DznfwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.005","name":"0.8.20133.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"10f19df1-6168-4ad5-a1ce-d6c2b943deec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.005","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"a473be34-c53c-4136-a331-7eacb504b37d","vmUuid":"4E8E89E1-9201-9E4C-B76E-57FFA2B62A29","clientPublicKey":"MIIBCgKCAQEAtR1vkUhPF6gvA/R7kMFm3aIcQ/bNTHDGJxmTRb7GgV5v8R4V3gqs4v5vzeVlmbh+g06kWCR7wYNuZHNa60wsid0NSEi8oExyY+5Hd6dbGUsRov+YnZ8rAMVWLOJCajTv2g41V8jPklK0sUAjtKm7vA81UugSb8fy+iFFhezH29pLP7JP5HBaVNe4MHkCTLary2J9sO+jT74Pmxe9+N/vGbwY0p3WRHaEi4Cxu2YecSEkrgHqR33AuYgQw13/es8gfk1NgtY3nfhC1Lg8BtviZx7C3E7FQQzLiUs4enuHxbvCc/HBLKTPwapo6cR/XbnZ7FGITeX3Se6KiYZtO6ITaQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.qdwxe10fqyneldbloddyfm1u4f.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.006","name":"0.8.20133.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f43d2110-d96f-49cf-b6f2-258095e4c117","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.006","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"5863ad0e-4f13-4668-8115-08b692d6f22c","vmUuid":"975290E1-CAA9-9140-8A4F-22A669D7F3A7","clientPublicKey":"MIIBCgKCAQEApKqa6moksSeVoKZiI/2JiTYBdvcR2+BX7DiNnK/xQroN6sA6kkQtZpSmiRX2cbpe/PhS8z+lvAdlxUNUWO41JHDtt8Ey+NLX8Z5uX33fU2Njcl9yQN7ecO0Jf6+NPtN7YxnWpZIv5W+WydLC38BAS3O/ZGRD351YXVXPzZpn7f05stDDm9JkPMVWuJQ6N/hXvrlXyTi0MG0Z8jQtMPchHBpJj+I3mUnwpWFOzot4ZtWVkUvfP+X6rR4OYzXVDSu/JLSuTWaKb/QdFscYr3M0hWCppcqCDkaFMqwDH6/DvrZzQ9BEZhqpv6Tx1IFAZn2SF7fSCTqKofCm3R+P84b+vQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.bpruthhbxwtudmlczy3lqysqub.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.007","name":"0.8.20133.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e8758e4-6337-4eb4-a3e5-d64cd6e0a9bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.007","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"fd6e4c2b-2ed8-4f7e-960c-c6860f1bdde5","vmUuid":"1F9B0601-6E63-8C4D-8CD4-F515850C20B0","clientPublicKey":"MIIBCgKCAQEAxHc2W6CkWMNbG6Z6di3ejoN+4JtRM4l33tFjbMOQf2c1/M50iKgYm815y1U8AsAC8JmYalXFC7UaZh1/bhyERvBzjEBTJCowhZhcxyhqneZipGBvfSaAwzEf6K2oOYcW+RGp3RC+J52ZnQkUzFa1hw91/mWxp4vyMn7Tm1ZUoxSz0+gdsnrcqKaMyLDfiPNZNZzfVEpJhn2E0o4GbZOq0pCjwCzBV3bnvW6fBRkthu0uBOiwjnHgG38oe59rLxENTnjnLmCEkBqGODwxT5ILP+82cJSS/F7t5pfO22gfRyfWS1Ytz63btfemxzlZhdEZT9gQUv6fF8FH70xrPDi4/QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.zbskxvda1ckuxde1evqbg2ljkh.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.008","name":"0.8.20133.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e6d08a6-ce44-4915-ba22-e1f99306b90d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.008","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"cd5e3ebb-fe0c-4422-898d-52283d3560bb","vmUuid":"C42530CC-7FDB-484A-8AD9-FFB2A9DB841A","clientPublicKey":"MIIBCgKCAQEAuPesKfLk7QkvSBer2jsO0sqTUBkdNHBmy16mKZudq+RwxuJSPpBRNPJqo9N5PngHgalCktZJJ/ScMyi5GcJGhAmnqf0125ZjG26ChJDqsZsUii+pzHrJiIUCZmxUSmNOGSFU3dqYHBQ0cVwz8UYScsOg5iHAnfrJuGExEi2mXyeH7vYKy2KGkzfXmJy3FzI3YahBh0Zz7mRY5FPg9IazPyUF+qi1orHJStyJmoCInVxsqU5t4Ph+gPjmQD2RQXOaEtnrW9Pw+UguNj9CYcaX7CVg9Mrc+n1O1dOaYBmd33BTnFG7nymM0b1X52F8DQxpZ0V+h54dUPBhShzlkLGyAwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.ffgswbdmdm4e5dbi2bjcytqdqd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.010","name":"0.8.20133.010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"12062175-65f1-4c38-84d9-b4f657bcdc03","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.010","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az408"},"vmId":"96cbfcd9-b779-4cdc-8b8f-052aca01faf3","vmUuid":"0220900F-14B6-034F-A722-AA3DFED94423","clientPublicKey":"MIIBCgKCAQEA58AxxrrH3BQ9OjZnaVBKaA2Qqrv5NTQATR69vtXx476aCWKigfNLi6xTxcQFzI5ygH5aSbQ/+rVL76M22y3BYG7GK+d4rgWeuZJuUrm4rZVWs7jXweff1vzhLdxCNB1nEH+rROj4tv3vAK+ZajY8iL17JRg2eaJDXybsefWiFWwS6wAwQ1BhSXwvaoDK9bTWWFyW2myCVNrnbsW8RDftr5UXovuh5fLCFn8aRRbXsPYNZXJh86uFJbHYqimdO7ewd8uIp/hUqmVt7ddULFHLWkW4DD2ZqS00qKvUKt9xZ2d3EroyUFIqfD6VG0h+F8SDYWUzAZwk279GuJKsBcdR0wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az408.z33hul41uagexmierj4pakqxgf.gx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.011","name":"0.8.20133.011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"283dd25a-75b0-4bd9-8868-ae30bd4e3e80","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.011","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"91c869b4-f149-4325-a072-cb839b3b6989","vmUuid":"4E8E89E1-9201-9E4C-B76E-57FFA2B62A29","clientPublicKey":"MIIBCgKCAQEA2AsCI61gbk/HQr56T/Sg29wa/Mk+OrdzJUjeulm8NHf7gQtOitE9VdxUJkOU0Uk73LHXSDp90I4zpDdgFm5tuomxtc/d1C+qn86OJv4/+YNFX0NDDUsB6bt+Ar9aoeJid5pr7vlCNhnHMtu4H0b29A2I48rmTDKrdTdwhPDItAGDtu+Td7qP26QRImyJNOUPqNjnN7Waml53CMkh4ZSvtRgqUvI48rx5MWD/vYNTzcHaUEubMnFGb+iwLXQIFt6gNzPRLrQLyaew0Wjp4mFQgrotv+h5bNVpNsQgIp0zGU3HP21ywikWZR0lDfmd+h9T8OfcIgogAyDqijZRY8POswIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.qdwxe10fqyneldbloddyfm1u4f.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_CENTOS8","name":"0.8.20134.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06435f92-a6fe-498a-ab81-ecef1a22571f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6aa96471-041c-4fb1-a164-255491ab5c2f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA8MKPiJjwRCFVgS2l64rjnzKZ6GqMYqcpsE/ZdIuy3H8LwE3COjHGiOLyjYiC62PPWwXKGPpfZY4Bc9ZY7o9/B/zhM+SCtg3NeFoPJ2YyI2/DXSsIVffiGU5VDtSIUPWUCJ5ZmqI60Vl5ZslKFk6Q35CvSmB927AXbrI6N1pHk05egQZexks3NJ7CaZS0yFevggSb6+DvUgXaws1Ifm75TE/ni9FQbF/KcVobSMmR6r2d+E6KQzmXc2PHlZ3YBpAWbrPmpjoOSFzaVAmdFeq9bZpFzzzOEAmqtgVv/BWU0Ae74nc6xupvabV2LnfLEToEFIvNGSSFGts8ab80CUPDiwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001","name":"0.8.20134.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"509a2542-3d04-4919-87e2-afa671c6a67e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"12a05564-c2b2-4d60-b1e6-93a4a8711f50","vmUuid":"6223B258-5AE9-C54C-B3A2-E2A3E6F49A68","clientPublicKey":"MIIBCgKCAQEAvh5ljGmC4/uqW44/+YWOXJRnqPuqvVCfKd5Yn+DOYAAuBrs40he395wWalV7/nRm9D5mRrc+L69IKM+MEzOXSzbQyfaDkoITkIui50WZxRNAyhKO9FwtMThQ9AhTmDUP6MDp3hsMba07TSa5lQBb/UZY1QpjKHHU9yzB8vLMFmUs/pCyiZg3jU4Sp+GeiCO9AalODDItoxe8rqBwlA7XkSYv+hUG8OXfoMNukWO5VSNexX8hGX5Da7AsVtpo6NmZMCvzw8z+hM2YAVGaJn01AxKaJ1LS1oiNSGLBm8xzYHLFeatXWnxyr/ohUKSXX4ev6f4SjtKSfvjXXovuUHLt3wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.zafbbzi51fnevfezdfpz3d5yaa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_RHEL7","name":"0.8.20134.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e63c5fe-c83a-4992-92f9-3ab73f123c6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"0c32c90e-1709-41a5-84f5-5a9305cfa472","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAnyeb0z2k/s9av4IPhHBPue/Gj9+bMc710QdiNTfZQKrpwjUxwn+1deUQZUM8En12jG06zWE8fQQjYcYc21hnb/6yhBMDKM1cfhDH58TXSAy3AtkTHRn7/jUMdbNjK6KdwQDooxxsdjlIdcQvarUBxK1RYN7HtE5aJZdxg4e9iaVcuu9uOFvvvgYnXuxShijPMt/6Jyrh890f2dLLNEd9RN1c++Y0g343bM8BHAKEA7Xulj4/8cP7P8Xef70GoVUex/5Ix8FZkwX7YTmhgcHjgMg7xraTs3P3kFuHhF+4rljy68+xVgYfB+KTTtmE1BOgTG72Iltf1EcnwtBZDMEzywIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_SLES15","name":"0.8.20134.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3b663d3a-15a7-42b8-9307-0bdd6b6cfe94","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0233290f-b4bf-47de-8452-685987775d89","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAv4bCCqsDmK8kwBrkPt7pOQIxX4PwkvnFJDXBvo1/Fg+6FVJVwJiiyJG0PlVbaJIsvFYwH/t8fNYPf/Y6h0AbD8pzTfZcCfLI4rziRTVi99x8oFUA6NUzNiehyk6vBPguTt6pg2hyM1bA93CLCGrC8Ov/IVa0vZsFk6sZX5Kbh4pkqNYu1OUTNU/JijLqc2W7Uv2OriRe2rXoKbix4MibvKnuW5BqsECCpkD0xuq9T22CDTc5PsHYcVeoNkNZZ5HTWDHPreKddlGA5gzrosvfETxuecrXr5idVlLCzmv6EIpc9Eft/umRb5MIYxNutXxvqjlAQYuS4jgpQmRnARUTrQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_AMAZON2","name":"0.8.20134.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3e3d604-da80-46b7-b7a3-e0be08c285f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"654f8dc3-f1a0-4847-a631-061ba0c46ccd","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA6YKw5rtzpACDn7RiBBU0Axd/QTR8maRxlU/yUUzQKCdpFQ6JBCal58wSfzs9KD9Hf3TF0emOF6OSufCkFJrBasATC1Xs+XjfgPTt2ub4adbzirS606/7t4uZ74lI1bksteZzARf/yJxMZZ4ZQ+oGXroLxjxdNPiolae00Zk/Aujh9R/Cfb6rhdDH5eWDjaS5YqQB8Az5MCB4HNIbHQ5mRw0xODaKHlVmaZSCTbKY+OSgqaDJhoeVKPw3lObUGX3uQkenKygDOa3KkhROOanG1rW4V9AfA593fE2Y+IEHajvf4xg9Jy9PY6f4qU5hqofQ1/5jFKD01wDmAZLuKbH85wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1mnjye_e2etest","name":"George2-SLES15-1mnjye_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"658d3026-6871-46d1-a9e2-656903c37bc6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"9ecdbe3e-6e43-4ada-a2d9-093fae7f29bc","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA5uDJrAdvxalNbGd4+2hdAu0IXGds75nHuVKUll0gbYgALO1KO9uqIqtiBhkaIYjOrsBO6D7C77+9WEXxikUOqu3lD3y52mi2BMjJAvxj1sLuwBwS41E2GXCXclQa53gFT6hLu/J+41e1jIffTCVMpIEsc5GC6yjbXVdRIANrNx4Hq+gNI5/izpDSiCb10Nf8Mkotx/954/F4nSP7X+n1rCACZT01EW65CQDnwZ+SUag7l+w0pIZhDPY/+c/iH1znxt6vAZ7Py8vtKJVqdY92ErVtCZCLsslhWuk+aKO7pUlMWYOzL5+K4azH9eFBNpTxGY+Emyd/Ky45lyLV3ctQKQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internhrp18_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internhrp18_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9143bbc6-8c37-43ff-ad53-746ce6b18d37","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"b45a82e1-1c41-4738-bb9e-b6adbdda0c88","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAtX0Qns8LrSf2e8ztw9v6tIK5nHz49Z9jxvgeVWOtMsyasrYklUai9iwkoiTyW2u1rms1wZuhsiZpE2ODnEltp73+03/N1OWzzPA4xamxdu2DhND7HkezrEOv0JK1bBegKwpETTtM7uJL87o8jvt9SUqQgq2RRUYZG4Tp8hkmta/ncZKKgkJsUCMNdt//rtvMiRotDkH375SVASWR9UMf+lAvkAtn/216dEj+mbqDWeqBMy5RuHU3Ump7semcaJInwxOx6OK9DumL3biO+7+ZxHvnl53FTrB3ryYvch7LsTlp/zsQAExIjjGIjcVY+8t1+SI1kkjaAq8uaXMS0UVpzQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1k48xc_e2etest","name":"George2-Win12-1k48xc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca3c53ce-a7ab-406f-bb86-1f6ab7bb2e16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"eab1132a-76be-481b-9539-2171706b4e85","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAt1XWmTBir5f7lDQujemRw+eNsGiU7pAkYcgIY+OyJYZ1W5oBnhA4I0hEbmR4aP/rfHpbJIYgj0sX1TgbCcFgSdePHEhtfNaVtlARjbsediNW1YwhWvoCn9xrHnp+xD4kZ8jWFzmcOurjZVGWl8gIGQT7yAV8aNUj3oxGdKewRFaC8J28B2CwRIPnJAnYqqFEKByqLTKxtrL6sIHcpX/pkEBz+VBAfDmlapVzop+kjvLaTSqxwfbRfsxxqzaQfYpI7hzyjC42drTf3sji/ef+DaXeDfUNbeMI1jXNNqQfK0BnHLW8ZJk2C1sWR9O/mxUvZmZDoJ0G3IqKdJVTmWQTrQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1nl35h_e2etest","name":"George2-Win12-1nl35h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"18fc7133-6af7-4ec4-9fd6-8b2619ac211a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"7d87e464-9233-4241-96a5-5d2bf29d4b5c","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAueGgyp1wWVm2OlUzl0oz7vOnBjOU358LwlUCZLxulsW9PADKmJ0aQt6Ke9GYYhaADCl1m8yi1kVfRpXHmx8Rt5H2q8taWqcXb9LSczPvuDZ4hT6qJTfqMFctxs10R9GPzkixx9x5/8RQPEeg9jTbcw/pDG4mUbG0uTX1MUOAxX2uTNq/Tzw72c5q8riAzyPHxnZSbbGVe5LtudYS7EHflEVB9jtfea0oh6InkM46Nxjqsj/9ca3X+Zp4pxQUCgxXCPnSDAED1H30h7qOVEKMP2OQFrysjp077GhXBHtPFG/TdkXJC1dLqb7vMNlTRhVoZvr5nzlvVXwSr5RNJhUrzwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002","name":"0.8.20134.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"60ba5837-9676-4ddf-85ea-ff57caef4a6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"d478fe3d-fbaf-42c2-a013-f98436019cee","vmUuid":"5563E810-A620-404B-9477-1DBDE0475286","clientPublicKey":"MIIBCgKCAQEAyLfV2ieF2KBsw89E2QhIKEm6TJoLUxM6ueYzcGKbuiPCQrL6zwUJtavdXy09DV/qf/KWTAu6P4WZHnL80xQxxYREH79tf777MrZD8gn+zCELSCSZU+Oly2w9GojenQI5LOfk3AlESUWIqcneD+1VFZIHLPj6F7i1Ma4n4nolHqYC/9vY/c9sSEYbSwQ+Q3Rmv67CGjBwV8IzhbSJ7GtCLETQWkQAtMuUQW4VSeRH/J1xk0bYUDLuqJKgm3YqD26036SLFNjJTQfRHe6Z+Vm9uAilXkujkiFFOvQjvxSg8VtRpDT6eOTPI9K2vEdvyZk9Sm3RlVYLWJuN5Gld4gSAWwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.2xic1wte34aerappddupiv1lse.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_CENTOS8","name":"0.8.20134.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"43d06006-6e75-4592-bce9-f2c93d2582d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"d3386331-c084-46ce-9ca0-a8dc62596d67","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA6BLGzbF0mY/DRjg4MPCFkqLlYHktLFdr8XpNYGX4U8ulm+R6Gd+ng+5px7CSXz2jTdxLl7o07BDZaLgB+QihGxkL7h9arvEDEIAwD0tJGpZcNex8By1n1b1Hg0t8l06BF/Euh8I1UmPiRjzd+GEoDhjcYG6kRnqi3VPBhnHnjc5bKqWTSBNHrNpEYignkqTLDI8464BuRU9VZa9fkdwMY5Bqg1Rurlknwzqabf9jshC5jcxk6kK6oqdr3o2I0/s8u7AjyBVnBlyWAoP3RGMV79jl/N9ugN/h1NHikpybCC6kSGfWjUb5SLIJJMOnqU9SuALmyljq7MMuhTzKGZ+v2wIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1ewln6_e2etest","name":"George2-Win12-1ewln6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a1dc7d54-14a7-4691-8358-902408ef04e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"932c0dc8-d6f9-4072-af61-5e0f3f62ab1b","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxB+LHaRpdoeIWo762IsJmFHF2ieHV+MpGKFYCt+HhJUKlp9y2a5h+Gk5USq+Wny5b9XteW8BOGfkuoAWc01/MjFo6hGIjnKUFa+QLGRxQrEU42pmkOuyXyRPS3d7PhlTL3fcdmDoA527iHFybAOtNvKPpscBwomVOShUMoDHMvM/FQs31Q4GwGDcd/rRtusB837zM/KzwMZc04xLgPHbX6kTOlPSdvhvqrJG0jkcCE5TpvevheBk+0UYUWh9vyiHI/3eWrh8hvjTjjloHnPC4fzBKrq0p3pyNPCpakey7VdY2AOfU7Iy6/SU/a7xFCM1u6U9J9dhkWE/zAKuDT/8mwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qbs9h_e2etest","name":"George2-Win12-1qbs9h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f273bf4d-4c49-4dfe-92ef-4dd998cde4f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"add20709-3fbe-4850-ada6-b07829bd876b","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAs0dz7OIQCctqblh64Ga6i+q8N5ivif+jPuJtSKNSZ65U/hvr7lJULy79vMAaPi48TnV0KUwVgYdix/JeGp+sWmB4ocOQjN/fQ+pZ7RJnSWIr5w3ZW8FGABWr6Wi7ivLamQFnfaW9lxW4zRd/VF9szLMXCH8Zi6coNItlZDL4gVxvjhoFFGtixoK191Y+7Rxdxnd0OPThjtLRdND415dlymLUaWXcza6D/QrFhjbes/tOLdY/OGUYHeyM3HGszX60YjH8/Bdg6ZrTNN7j5uPSU4k7DYf/JX6qbgme+j1xg60jn4z0qKS3gk+82hVDyle5sLXDUAMeYIo2U/3gACg/nwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_RHEL7","name":"0.8.20134.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"51c3701e-e289-4e56-90de-6fae81bee19d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"eefc92da-b3c5-4db2-b28e-058b772caf43","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA3i+O/iLZQIM/qn0uHnghBP3Ex1qxVJOoMKyc4/0dva6GdLD19+07gzaPsKKm51eR/P4G8BvdeO7vY6WgqTDrheAWNsVbeMSw36UsPjASL6fhw4yCUfOXKOl8th0F2tu0NbEBIeTQq0hCZmN99uedJDInpXXJACK8XELOzyb6LeW0L8Bl54Rewck5lR2mg9ZQRlf1e1z2g75UMU81+iIXkjCRUurFmVVqVnKfZ21kBMAELcKzfm5ENOMtW7UbMhqb6yONF4UZuuG3dsjHP28F9TV6El4bJ393zAtGS1ltX/Zo4GHs4vBCIBYJi8K8cWvfpiNfbsV15AS7+POCI+fvgwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_SLES15","name":"0.8.20134.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fa77bfa0-02d6-4822-9a60-27337e27eac0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e5476ba5-d000-4b9b-9ced-d97314413b0a","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA5Lj1oQDqt2lc4kfwsdpYo7yIZNoEw4TDvMyo52RiV9pImS0cDjGrsB+qoDz14/Chw2aljj19ONgMw4+0X+8h4RHN1fnay8r7pmrjO5JjNR5QPvLHYIRbsmOqkCV2UShgwC/8Z9IaewD3oKPnN187eSXGghsD42QqknhMMw96DqNgfuCIsAMkT2wnEmfDw5V7x9YIhyGu/Wuyv42PU96HYACcEGiTjRvBvLn962fMv4PpHZ8f0O2mhNaSBaOFdkS0wnvMhr0dZzXlf9GvtUWsmqR827MUSwexPPEFjJVWkfeFs3yZEG91XA2T3wmOIuArx908LjvKmacl27YGd49piwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_AMAZON2","name":"0.8.20134.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"01bf81ef-0716-4a24-be7a-5d7c04c4e328","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"2d0b56cb-95a6-47df-8541-46ef5845359b","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAuSnwBwX4MCw3P8AkSbcYMunaHxZxrxahht2991i0JcyhDNE4jtYXcvfnlGS8HD3hHhtEBjnAEchytbyu8tkmdXZOU9sylHZz3Dvhh/b6b88W5GofZgGfwJn2vVXgJuzkouuNXrOxKnt/wkbj44Z866+DYUahbR45yY5oPlPTyzTxe/pvX5nqO1ZmLB4dDhxPgc0gR1Si0re8/crq2dETRFCTUpOtIyUVqUVgUDwVoPyZylNPOlNFb9U2pEFaQ8K5QMpmZzhoIJjqITqWpbH04dNv1ZSCtqVEpoFwtt690KHyRF1rn3CP+DZHhCfM9ILW+PIDIkUHGLT1371az86oswIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1wolf7_e2etest","name":"George2-SLES15-1wolf7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5aa79d3e-d2fb-4be8-a315-81b0a006b79b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ebb696b1-d88d-4b40-85d8-0f8056af2111","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvGN6+BMlEzxReJGjOAzjvH5JIF4nkhnIyjXY3BHBNRg0v7loY/eg58toddy3OH++6G8bDdz32uRr7+hbjr1NiBNkIaDhhuYKTu3d8sviQJngQPJehTibkNQ/XxsTrz7/4bNNb+UOM7f5JM4Dw7Bd7EsvGwn7dNMWsvXzOGi5Fzp616V66fownRsCc3M22zyYnJHJm+4cEWXMLIJMN3easY2FVqFjQEFkuvMMbxhekjExXQAPdFQbEGCcNUrUh85gnrnAag7st5NOhGWSghzt8yc7skGe0gg20eHbkeTvyTZQ07K1cmVqSTnek8Zk1prP7ktpdTfqQZ6DFyFu/E/OLwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern8n1rj_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern8n1rj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5dd74980-6a99-4151-b150-eabe68fe1355","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"b8a2320d-71fb-4e7e-ba73-511fe5ed47df","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAwKvhQQEGJRtTQdIjMyRucr0MnYUBYoNCHmyzRK5sMtWZTZ3wODihGKjDpozkaJnDBANXwB0Eli4mQihd9g4vHEtTMibUebO0rcCtNSpA2YBKMonW3fyj3uQXzgRNpRxP/apIMk5RVX1L7GPNxlyblKEHxRRkuo0hg0QXX1b6HqQR0B1D6oAMfS6wzmnOOLZ8cpYLQhXyqnOC3yDvdviAqqpnT512J46teGPYx02pGSOLwGE2HoKgKVby4ZaOp3TL3pFK6u3kC9LJURZBEaDqJkMcELtQGIbTZNtbU+JR1xyVuVrqeW4Fhnc0mheXepNfX7dIpCwsGVFSLl4RZxWZGwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003","name":"0.8.20134.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"840a6e47-b733-4bae-9501-11e0fcc8035f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"e6f1f1c7-280a-4574-ac73-32cb665defa6","vmUuid":"C42530CC-7FDB-484A-8AD9-FFB2A9DB841A","clientPublicKey":"MIIBCgKCAQEA18x1Ljl6N/OCPNm9GI5cS88oH2k3FXIOCMZ87aCyEI/cbgSJ7limrgujUtgcjh4WZpNuLOowybAg1CBYpWaoAQjPrZjGp2AN9xMMl049sI5glQutvqarY7lftCGQEiaWFXg6jKVw33QwbpoMlSsi6YZkDbDy4FaLmtxJmjhHbdH8ezdmgpBBJCQNHTYKry4zbLJpiZfpM8jD8KnQXLqF6WPls2zNulBddhUKBz+52RSPnGUlJ72t6oKY/EySY+eFGzJZJJsok7MUp/pKZMHFtns1cgbK3fP5MdE1YsUn04LGwvbaeKXJVrnwK+VXCzFCSlW9LV6lLCBB9A74iirydQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.ffgswbdmdm4e5dbi2bjcytqdqd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_CENTOS8","name":"0.8.20134.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31abe465-21af-4bf0-8c71-ec8e3286285c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5bff04d5-6bcf-46da-8db9-c586149623da","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAty/ir0SSB4PTNqPy1b3zjufoTrOxWhOUUGkEI32rrKTRLuEG4my4r2w9IsgMBowUoEgYpkTCnlvlWLr2lmRHzpXf+rhbV8YlZ0CkTEW2KRxFvSGGg45A2fw9hsCDS/R2kGbHqSFrypn+jpixegP8jImfMkUwOIsOTeZdk1J5YFT77R5jt1f9RKVzd1OL34J7jZWzhbxRBRU0ivy292AcDTsWI2VepS/j3cc3J5NR7Nw81o3zjIFToR8s/gox3izp79g3grOMLyhyYIFT0VPevDXySE95N8c7Ku6X2MF2A8H+THFdNV0/VuAXENQWYWFLb7huuwsf+w9g3tPbQDN6rQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.004","name":"0.8.20134.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"024602af-65d4-484f-873d-dea034a68876","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.004","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"cd566759-e873-4019-ba6d-bf3acfe86743","vmUuid":"4478E0CC-60BD-0E4B-B704-585910019FE1","clientPublicKey":"MIIBCgKCAQEAyhti2vUSFeEXmU5JyM6BPDm0KkUsupAXU6er6Co6nMVPXH3fk4ArsTzBwfwh91a2TR/icTe8qbk2LNe8wZOpocv3iAyV6Z0O777ObPo1AyiWgT/xAKxme6gGnqTl/oZ5Vk7RIOm9GmopdnxjFMm5zskgeL3G908ezOzVwEvxBOlBWl9Lmtbzc00V506Y87/EkcLExWfza0jYpYeRQBoqWe80JOfxusgauj3Tjuov56FbVFYWIj0CaUxgK9e+KV0ra05G6AFxY3Yfhdt4pg0ecx7gH9p4ewY5P+goPkyxF1wAjiIYN4nT1fNVtB2nYryiqQ7OaFx9Byh34kDRO/+F7QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.gtdrheriyrqujagviru4wh35ne.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_SLES15","name":"0.8.20134.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"70276647-739b-4c63-8388-32aaab93767e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a113f884-1bc2-4ff5-9256-46029ad3bdae","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAr+Uir9Xhcxbwl+yeMr7CPj4wgi/HVng2LaECNT7iqJW4KFrFmQP0B8s9BMy2ADViHQ+Lv/MGHuZ9HOSdPj/CDWrbob/DWmJ5BDCj6yXYK47DrTYIjEXs9juwFu3ySKUcVlz117ZmyxeQbwo2yyvFRh7bYziK32wPwAcpWgIQD+8ntl6+AINYQ7xNS00hMOQ7cEpJ9lHX2bUm2uFqu34r77FI4pCciyLvmsSsOJXrD8/rZiscWcZb3Hy76pstVUz/JplUXN0w7xyulnny/02GcKp5mdjcoVfw5qDDxECOItAsVPRApwvy+EG9+hTLVn68kHhN1IXCMgugdxVEnG+nbwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_RHEL7","name":"0.8.20134.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a45e6f9a-30c4-4ab0-907d-a8c82ed7bbf2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"3dc68035-9217-40ad-b6be-70a78da08737","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtCLYNzQyhyM2rSdYm7faHeCKV3YimtU1HazeJVEk3MGHyrXnpvTf6GlGFw5d2tAagIimc8ZKr4tTUUg+KZJQjz3yFvqFu+63SxBrzDdFMOc1sm4Sa2xl740VPCZ/D4uw1BjJRo1InYHxCKpIZCVJ6QzP/ug3eXIp2uZq3HuA/k3TEXSsedkqkNUKuudDbYH50YNj2Eec5TbxxXbtvAvP+g7E6s4VT5AusRWgUNWOv1u1DEXrMjz6/OEytvW9MBFzYalIhbLAXpdlTviBksjpf9kJTkSO8WR4QCfNzrBFqyECUkaa+xkhS4KARmXigBT24pPQnrPwe/MGqL/HOeYi9wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_AMAZON2","name":"0.8.20134.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"33ecfdb6-19d9-4ef9-8701-17ff4a360fe1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"35adbadc-6ebe-4294-b84a-e657ecee6078","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA188zeX3gxVNtXPpyUToZPigOs9Cv37eZp2i8l3MCr+H/lgbYptXp0q+F5z53AiPxU/s0GXYPp5Vsk0C1OtxJ4ToS6WVPrBTCsh7cpFwwTcOHb8rjXBgjI2FMGvN+4vWn9tlizpGkHDL4wL+nyezBT7+bKCqayLJGaNTDJ+62nsAD0kAmcp7XLYdRzkjXgDyK8Igxlazec8Vg95H0ZA8fxYK1nJViE+lJ5wN/KkdRun5nICGyb1L9OArHy9F76F4qSGIwPJi8QY+7/KLWfB35yjFyxjV6TuZ+QKhq9B+b1RXhI7UWSgpMmeNtszi4Qd3bYzQkBU3XTfNe/4gbjRl49QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-15sqyb_e2etest","name":"George2-SLES15-15sqyb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4cce640b-15c3-4475-b540-43e24c57798a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d6fee947-aca8-41de-9ad1-ebcb97f9f689","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwctxklv8ujsCR3I+M2REg/M+arAriWa6FH8/LAQGrekP3wwG8+Coxqbq7iuEYA7PLPG9ZSXl1bzJ3No15dOyIyACvSEFJE4XIhmzDi4nUX0ikJ/7G231n0rmKu2I3tkzM5Mj8yQOSvrbj2yx87AD6/40VVMbDGW+R3dJ+frNwjCN4+guVgPqrktxERWLIdIymll3PbyeNWhnfln9GVYaeIyt0bIM8Goi5NDH0F+hLG2vN642oh3Z9Ue7GtI81wRzSwRYC4DqElyEv12Ope6i3MITLRxDDjsKnnIsSeKYa5KoY2arJzrmREO1deO4odDf8MAya56lfbUTDhag5NVZUwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internjmgpi_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internjmgpi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ffd4a2e6-2a1e-4639-bcab-c96bd2448386","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"c63e3ca7-1341-4861-9740-4e90c245f26b","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA4/WwX2EuCbrpwRT3mDpIpGINjfVQTjq+foIyf2xEUoZyGV/VNATT0KhZcxU7uCGWJQ/kcZd5eHdgIC/j5WmDrLXyUobhAf43t5RWP6eucA3ItQs9Pb0Uo96WFLIuDSvBvhn9HwGOslRrf6oOd3yVMb9anG3f14PAuk0Ol3x56zet6xluj/OFiLDxG4tUsJh/hg1Sr4ouHMf5cxmNQUVUt0K7yZnQIgJRGNF/9jYh4wBwZJzwBp3MQXjjAgnwQZNtpiql4VE2I31QDBxnENuO9b9C6SDTlziZpZVzEcG9AVhxjGqfg4WXIPL+CU2N6giNewy9I5M8c+WUSlcf5JoEhwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFqgj9k_e2etest","name":"WIN-LREKSV3QGSFqgj9k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"08fc1af9-2be7-45e7-9d5b-d69439e1ced6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"ac3ddb89-4e70-4908-b93a-c81f5c535b9e","vmUuid":"9474015E-8FE6-48B6-8A10-8FEAA72C4175","clientPublicKey":"MIIBCgKCAQEA362dT333p3n85cjqqU32V8jhB2B1NoHRo1wzUjXtbfS0CT1V0y5Qu3QbTB8KdBkJ4RefimUd3ggexJEmR7lMPzeob/6+lvav95YkprT5+N02NKPmslGVPKQzIl3+NNZKd/f1zMD6QI9sUdCZFou/geqN+1H7ciXbUObjMQBeoP9oBmy6SoG2wJg+l+LBTtVbG/EBb0/VIxWRLeaeL/qUkyn4sJu2Nx9/jOEQwVX2gkOgVIeitvHs7+Ql5QQD/niMO5k4PvbA9cFQiSjQm9c+UvFrDEs7CBzqJdRPRDuBrI4ospRnm7WSiJcblKtJ70bRvIjquhZDzLRDCeQgjsPZlQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFz1kc3_e2etest","name":"WIN-LREKSV3QGSFz1kc3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63087317-2e56-48b2-9e4a-59d4dadb545f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"0e876c2c-c465-4d7e-baa3-adf1b8c3f0b5","vmUuid":"9474015E-8FE6-48B6-8A10-8FEAA72C4175","clientPublicKey":"MIIBCgKCAQEAv6lsI8g4v3AT6l8Pn4kPACbH6gVdll1j7J2254IAWAdewQaa0xUeBj0drG/X80aP5lvS0xGLnVT2zkSy4xNqB0dL1kaqG7KL4yUL54OV4xMunHYC6fOe3/BUtJEzVGB3/MAtnIAgOvdCctGSjzQwraXDXlAeHDhae3gGE+iEZ/rqBtTfU7fiC2AfsiokGpCl+2EMEo4h35OfJNpYk6DqAZv92dMwECfIAL8XVYyOQptTZtBEFh4JWw7UsVVXz+/RN0XVk+grqNFhhsT/vnBPXjLr02YDvUXVcxAdFGDEB3+51KtVCREAt1L86Efg4Pwr+PxpRNysbhkcCuH8OCD/8QIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16ycqe_e2etest","name":"George2-Win12-16ycqe_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5d68088c-0d58-4acb-8f2c-ef329d1b1d82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"b430ee34-84f6-4461-bc21-132c0f6bf374","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAlzP/TOrxFQ6XcSFGq0gTLuWF6aFRhEkhuJS62LuXUyDtjSWQGf65mWCGdUgXv1IVeGQ1Nc+jZZBXgjXjwTDJr3WatxAdsVE0Gfol9G5voZlAT14hsiIECtpxfj8r97RHFsd9DZjv+mr7b/MBoBzGSsr5MuCaFAb3pezOgAaeXHT1j8L9iQkePvMx3GImZKvdDZNzhm4YIeDh3EzC9btcoJ9BXW9PL9vueQkTOZufHoe6GQDk9w+bAuaTxlI7z4tYrN7FrWTyZZlD/LTFLcZy07ex6xseoSoCH0gQW3Kh69rvNQ3jmda1mBPveyigI/oFE9jLXeHihM9sXjnJDeXNIQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1xe3k4_e2etest","name":"George2-Win12-1xe3k4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d267e45c-c330-467d-925b-ec098120155c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"1981d4ef-5473-487c-bc0e-4f03a66f2ed7","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAoREbTcYlp3paThNpNibZriq3AaDoB8S8mniAowErgPrxKpjdlnpP8GC3Dimn3xYvIbgZ2oFNOFHcdZrE02PVuDivlMGx50NwI+4A3XSUMVJY/Oyqmte6JC1JXKMac78lGpeRe2Q5Msk3ad8AShP5QW3spKNnuxquMTCnm807wl6xddXuVx7qBn4HOW6OuCp7B9XtcskspAH/YRSI7dYfIl3uvzmu/ABniDUaL9PO+73qJR278V/NmubfV/8spVPSHcgpUWnLJtOsEyvQlx0bKOCZ55JLYg98DfkV/VDE2i0hqeSXRTowVHbSspxzThl4xh9ssuqmO0PY9SzpgBItrQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_CENTOS8","name":"0.8.20135.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c4286ffa-2a58-4413-9b6c-d94ef492f89f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"ee0f5f5d-bdb3-409f-a62a-042e1abae453","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEApl/2bO/mkFj0ikFWNsdR2Da1suikLiAYilrZF317YOUf2HkGvJfZ/UV6NsVfWEkQPu17Z5XI5BZNQ3xRk6T/Olsc/hUjscpc/UAlSSQzvqdOWTK9LKuHWtJXHc6ZwekRVPdvRIBw7diyGXpHaWaSeHCikZln7H/VDZeMMcKN3IXFOFV7VFhrojHBKhb8rL/++N/GaHj5or1Iqjpik6L88x7ozd9/arAHk+d5EbFjEl+yBQ+jJVjeGlOBuCYvvqaf4sFFaHffHx795LswyFdHy/WTbSMI2gj1LIfhnPfVFZJpPVg4DKKcWXM+TcNnlSSmT0pIyHBuo/GMxYQoGQ8UqwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001","name":"0.8.20135.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb9f8c49-580a-4afe-b3ef-14fd32ec9cdf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"9c632e23-a35a-492e-8936-209938f5a0c8","vmUuid":"4C7DDF12-6924-3047-9163-E89203AF301B","clientPublicKey":"MIIBCgKCAQEAwaOfyGDwQvf9qGtymi+NhGK4TYOXJaryb2z3ROBXgMWrKdK+5Exyq1kk3SvVBJvuVy1lJYmIB7urs+FAn79wlRFKsBdOFcq1olS3ohBdEl23hKXOS3xnCCA+HiOnHwkVN7umKn1NMLQJdnksbHpc0uwDwXQQiRtO6RPXQTMnh2ZSUcRQzgZNdPgaKgYGq26Ym2Z+ECZyI2nNPkA6/QLLJ85my8qbp2U+I0cmIvag8kQ1JkKpQwoaqHAeiWRxBcHA8DCWHzhfdLP2v5HuXpsYWhiYmyzqKMdqNvkVxE+zxWbunXeqTXw0las/Sv/CBCLVft6oOSuvBaczaIhvrVGTwQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.ocsent1bh4fetb53cn10hqkszf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_RHEL7","name":"0.8.20135.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d283fd52-93a0-42ce-89ae-88647b4f7524","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"f89433ed-da35-476c-bf5b-535ee56bcdc7","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA9UjLmTf+wVtmsmAMo9HudgSsiebr3TaFzc+staa1CqAVHtBtp+dU88gISDQmAcWrj6jvCOtFmuR74AguFPlQ5xVIsUUjUUSgKLYhe7vggv+nwnFhBd/ANZwHmKednx9c9JH+p/fP1ihxQWVykCXykamc+9bPze4qlD/dL08q5NDx00gcMxyjCHo9uo0x1UDwUZO8+Fbo+1fzBEfjeSiB8eTsGn7IB/dFPvR6nD40HKI1ZnJE24olMb/kFc1NQNZJMPBgX8uPbkcbbgu0ur2S5nl93/U3M6vxv5Y42IubZbB6euI/W1f5gZ/+kiXhBAAj/x+usVZbQn2JE5SifDkyxwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_AMAZON2","name":"0.8.20135.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"235858f6-87c4-4f8d-9119-8130ad20e79b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"eafd3c14-ddde-4df0-b458-974e768636a6","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAp2BkU+0tu/Ft4T50VIigYXvLCyEE0O+1wQzSZc6A6+FnnXdNwHQhiSLyu2NDVoCEk6Wy2j2sjUJjFRtg3JiazrOItY6/gasDDxhfXUDm/DQx5LdvL8URQxJGxkFdw3jKIsNulJAAKAY9rvTLTlkgLic9hbnlIBGnxUXChZRStLXST1ZgkDgF4xPxzwNfZlmJjyUZWXP3/D4aUuVpMFr4rOG6i4/5/gEqcSYhmzCVtlmMTt3AsmLynnmyS7I6Zzjkp5JiDawDwaZ0jQtdJSQBe5PV8tWfNCK4iP0VKbJDfJzq169gHc0Z6E3Haoa5tqbxpEdcTjogRWopjO1Ir3pN4wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002","name":"0.8.20135.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fb53672f-3209-46af-991e-732f51876b82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az548"},"vmId":"d01c0b25-cca8-400d-9421-aa828a80f258","vmUuid":"A7FACF79-9F04-CA4F-9E0B-64FF59BDDF8A","clientPublicKey":"MIIBCgKCAQEArvCS9rwhvbZqGwvpWDNtMhxgVtapmie8z/0I94eIRkWoHAvKTKrV9ugCm9IuB9uNGIFCR836F5Q47ez4EkflGWXbMc/cDzUe6Doqrpd9LjEHwFFLoLIx6GXfcoU47U72H9lEDOE+29YkPgc6bYlWt7bvnfRvAWfUlAwDKkXulZc04BUkiiJMDTFUxtP1OrUas3swCpIUgpaRUlJ/qzs4/3RPloKY+QSJ/MGCvjYMSbnEBCzIk7C8UoccBKRh0bS6FNaaW4umG2L8BnFYEjwBWFgtKtkAUj+tZKZ6yNOseLdO8FPb4GsWTfso4UWiGp4LamcnENovXkRK8f5NvSsRYQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az548.q1k22ag32yfubbsjt2ngzymi1f.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern5jab0_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern5jab0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9624d05-5198-4e37-aade-1e288f86942c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"66cf6c06-4508-4f0d-99df-afae72c67a8d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEArgelrz5l2ZD+yQDEWaUwgOTk98hPOpOsaS1b2smWySRjcab0Ob/RVuAO4BwETjYPMk+2X2D7o8NohYrxDkufLc10z/VrWSFjz48cZuRs8T35bjnXUvZktj+UlFaz8GscjRqZftb/moJFDOwZCZAT367BS0K/g61qrwrtAlL9EgKUbJPowjaJrcBci/LbIWXrqrqBampoVxBUHuQ63xpIUf5TQ7ZSM8YzL0B5vCoT9QU/eHz3aDH8pi0aqliOG9ZbXKHuckpPgvVYGJe7U/6spqy79HoGjoF78gSfvos3IdooAw1WfCaDh412yEI0hvl5mXETpccsACN4y5WjXBxnjQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_SLES15","name":"0.8.20135.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"653550c3-2adf-45b1-a1d7-de1314bb4a0b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"207e71bd-e385-4eed-869a-b56d2d6b3623","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAoLW/l0b6ozIIny6PY6e8TQ+IiZc8dwJgavCwlBuKqzU/CWOIWi3MC8K63FA6UI5XVvxgt8Z7eMWhmSL3kGfFt3rd5dS4Z+fLWFFNpF1axYQ5TEXVF2vKdV0JD1DhixKdsyxGJ0/UAI9D9St1vJb3BSKU7OxYrMx/tIHWxjFIcP4TsuVnySJF5Br1OWh4x4+5CIpBI3you0fBLw0cJIpdhztE3b+fXXaTE8EJspbdzzTG0tKo0gzksnWUwY0mnVPhT2reh/7pptjZmHBUxHHenFBJIBqffiUvLIoBJS47cuNA9ST/B9+80k6IxTiLZi6i0JwSORZSz7nAcYtWdNGA2wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-16oqzi_e2etest","name":"George2-SLES15-16oqzi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6ca7650-4ba3-41f5-bef5-8ebd62592324","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a4871b0f-c07d-4e08-84d0-0b69507c2671","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvVRmrdPRMv7FAlXv8N6/UkDubYNs+GBVFPjQq5lKUlmj4eKGUdE/iaj8VFRV4CtHlOqS+OCx3K6461nLqWhIrJ4+mYGGTMALExsuFV4K9zt2OhoSucNGbtv9CCr1UuoSfH9tEXgbZIYesJgL8CYh2+j6mqwFGN03md75iL887OYOwCMzT1doyq8P3cq/imDcqSMtDooOQtG76OEFgtVHtEQzxFRJ9G5Uf8i7qxkc4yNe0MMbLvrqyMi5kRk4HXNOzC9XaPlRhcNTbmO5mbdGv169jpFprbeKe5TcYmC0yZ8LVGgAXDlA5Oxn4733r9J8wiAwLqFcNNJYyPeUp52CKQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUyinmr_e2etest","name":"WIN-PRKTP3PG6DUyinmr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5b6e2028-0e82-4af6-8cef-64889674a93b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"6a7c265e-3f65-4f29-9ae1-cabafe841beb","vmUuid":"9E6924DB-A763-4923-948A-2428BDF56583","clientPublicKey":"MIIBCgKCAQEAo8xDl6bbVNSasuySaQOrkSTDOHtbzUWV+5Z95lpISWv7vM5qm0YrMN9BhdpWsK602tk5fIOxfaRIFzOV2CBXrdACiEYpUw2Sl/Y7yBPLdWYoSw/rszd5jCTmtEe7fT++c6MJyEqce5C0JcWHFe0bRDbC7VgA4v4GrCSkt9K/6SqtNhu3OPrm2bv/30pqQej++RdrIIivgeqBSe5dXIVKO820UfJYI2XtimoKLPBEot7zujs//WKetNJaBXk/mqsLdGTMbHNnZOxNZY8PFSXTjrln9QS5CGr0002MA33ehDs5sMboryVZIud2qWS3V6u8KSYPxBrpPwZwLxRaKJSdYwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUr3pef_e2etest","name":"WIN-PRKTP3PG6DUr3pef_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"03b5eb6d-55fd-4b33-bee6-99d9f3d9e4f8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"5d4e87af-957e-4fc6-816f-92917b94fc50","vmUuid":"9E6924DB-A763-4923-948A-2428BDF56583","clientPublicKey":"MIIBCgKCAQEAxHdlK1wk9xecNKTyOF6qCJIk1n4A+6zrRZDTP46Gt64U3vOICTHdTTHgR9ZvLAAbUQDzF2TEUBCbXzs7Ay8YaoBwg1LRBN2GInII56c3+yLL+9D+H/wvRquqUlhUaLCrF0mEiHKvpseXB0+3y3Ilg7XJ5go8o20xf4ydf2I919VK8FzQsOXtyNcqNZ4SPAq7/44a7Rj++pcbCDht2hpBngV/Hl9SDr+jLf14vaRSv5Es+YABC2Hjbn4WbkCPnMvR+Tu5z3nDZ54LePUnYKEua52HJvpOqmhYlUsqkCcFsEJHOYRyAayjqLyXMrqoAczBZkeN0cmFyIdvuFYRbcYFsQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1i9tgk_e2etest","name":"George2-Win12-1i9tgk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb3dfc78-cbe6-4438-b30a-391bb8e04e50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4a4ad4e6-34ce-461d-bfba-1152889ce2a6","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAt0Rx0zruzbbbCBHOi1gwDmjWAunUZYwfcafB1fspo+j1FULzerhZ+e9W1u0evghGCRmQaUIRim3fWBTOJB1WA9K7DkPtPbdATMRWsNlm8BGjABzFZxdvJKug/leRL3YqrD/40FUfrzDBcQY3vYKS2pCIFr24SZ8vpNayHQqA9qpWist8ZAFCCBT7wMxjpqb1P96LJeYezPXPTBgRfINOqclBdB4PIIkxYhOLOELckjU0RbFlhlfJZTdNO4C0sSrLTl/nLg1CMwXObNIsFbJPhwPVlmpL+19shkuki0dodw2LF4mSEfacJ+RArmS+/wHGpwks6iNqp/ickCnCbwuuUQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-18dyxk_e2etest","name":"George2-Win12-18dyxk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7123acc3-99a3-4331-93ef-489b4cf15c50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f8df0465-7976-49e1-8afb-85fa86ec427a","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsw4SDzvoHszMYEm4Ksjybw/3yDfPfiS7crUh/IwP6JqRwC1GEXOB8wWWIcTVfhAv8SmdCycmgmKDJ+PPT0IICo4dfIDtzs1Xd9nRabSMK6hNxlk5l1j5z3U1JF/J8U4R/iaBa1P9tX0kUfxztul5t3UtzRHArQ0IGMgGK3Vr2wj+O52Cd4RzuWIlGu2M9enndkFigk7rQ5+o+a20Q9cO5fgSG1gdNN8CTY2k7XKl6G17pRbI42uMg8d2QRiTuQzQVL9qq0sH93PkrYHgD92AFS45WJZ8v1tsCmwIKXLzdWtaZCDi2k0YQV7RwTDW9hTmukCb1n9zX0kiXHSspUHZFQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002_CENTOS8","name":"0.8.20135.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"88cfd692-5b4c-428a-af5d-be92fcd60dea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"7a56a465-912d-4451-a892-8b966d26a093","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzuqtahE2UwCXz/u+9tTbVpTt4wLSeOZmj9YFS2m98BdSxXSzVdkVj699BF8fyAjL3+ITwAffH7wm0A/fiZB4cOvT32e1LZu39ifOR7ldaD+zR31yQNhbKr8pWF+lSmFXmwL6fWnR/us8iqvzLGyAad/q3qS/VdbsEESbyybnP7VeHbTxNp92glQCzCeVBvDKhgTFCr0lfR716q+XWynZsmGTlrbDeOTS4wAQUuUBmtgsqN/Tf1OH4P5Z1RESzUpWYWWe0i4Bv1SZM49jVnYQX6uWgVlRXnZIPeEKfuT2nhgcMINvy+jS1KInaTVBi2Hq681BV1XeiwYK0twcYMzbvwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002_SLES15","name":"0.8.20135.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3a31d885-07a4-43f2-a54f-960fc3bfd8de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a879835c-e413-423b-b0cf-3a7d1af2bb60","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA6pBiiiBdaCNgwr6wI31uBuV62WxByZvPaT3kM6cAL4uPRNzd+bj4Tdtlja0bFL23Mo2dnQPpEib+I+OJRWMgbx4WC7B0sD4lH6gJZy8wyYjP7BhzXbPJVfPJG/upWDhb8cnOZpdd3j7aq1cndMYhqEmMKHcJgmj2qlJoWWUppDwa7P5wyCUuZAk3FDmEStUiolCZGlVT67ptToIjoAaPKeFnjiKhrI6k5QQO/wwjAf3gCWGIRtpW918b3XO7OrbUtU/oXH2yLvtHt1cOufnENjjv/WReEH1aRUSuV4yS8OcmkNZZG36yWhlNA+AXbAnD3NJ6GvjA+iaeCInv/677eQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002_AMAZON2","name":"0.8.20135.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5dab97e2-8b25-463f-a659-0f1b1e2aa317","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"9727d8ff-39ae-4530-a495-70d17afee20a","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAziOrDx67FuwZCMP1fJohot9EIcD3c4cEtRtGGvt9SsfNMrwltO8puEfZWZSOy9QNdYRWoEayJ2+7QVCYUKuEAQbMhlFU6j2vu+DOkXxkP8+XaBo65Okk4zwjJbtt8HfXR63V9EMmrNDZMT2T6zS9JbkELZMn72TFzIDMgozd7273riB1kf4fxiUXlVf+mry2Gj2vDPFiiafbNrolQh+pWy3qZB7+1Z6CSHUOcq/wle1Stn53r38NwJiezYoZfcG0aIbPVMsDC4d3HHRCcS1yX3IMSgG/Q/pUYhdOoxZBsUCegS0bV1ZFyA2KI8op4mfpLMndX1zGM2i5C9f+em9TFwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1t9dxk_e2etest","name":"George2-SLES15-1t9dxk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ed4cc0b4-42d0-40a5-9978-140b3137d7b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"41fe9b85-8148-4769-8671-2e765a44639b","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtLO5V/me88X2BtPifAYVn5Qoo+cXU/skLpFrGMHe8vuiBZUsJuHc4js77Zpjx5MpUPM3Zh8E+8nmcxfehDNBaJSW1a8oJ4g4pdx0AtCtnlGQ14gbHy5Yv74d7Bt7xvqGIp2cVWx20dAFKNA7Q3oyZUhVTog3LeX3x1fTcQz3kmcNjVEqc4VwFWApJK+CLf6he4sBDcYINhnlT77Xe2JYXa7RPy/4POJUezVCscenLYy72Ch0GrgJdmdRzj+jEVA37KLfDIgN7JQiI+YSXOBD+5xNQruBVTpbY5n2nsiEAn7clL5C3lrtZ2ztJh/r6L8pjKeH14wbFUV5WwU6uGCcZwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internv4wm8_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internv4wm8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ee747042-2f68-408b-83aa-534a8a44302f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"2cb61b3f-591e-472c-b58f-71b6e0d6afee","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAzKIItQE6zxxHX1Gx6AqGenhxBY0+mEu8kCOXH+EtfgPMiB4+cCSMbd0nryAzT8Uq5vevhy5tlpjevpyxZzhcZZdUjSIK5mgDS3dC9WBXNFUYEtVrMSvvws44oQpSOiDFWNbMt5UaBD+Hv4XkkqBxBedTlOl8LwdunLxgEToEiFnSKfSYZRHUYBUimlTpkFIbnx2AoiDO7YC+NCjorjTQiv/Hd80B5CoYAuHUJyM7YU7YEaxAdkMsrmBvtu6GivhMsRgRneViW7Rybu2jKb+clP/plehMdyWZKsEBE4F3WfRJZmDfPPtH/Lika9RFOSrC9chzFNpjRscAfYl8diskQwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1lmdap_e2etest","name":"George2-Win12-1lmdap_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8c31bb61-359c-4e19-bc84-39d6c4934ac5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4ad584bc-0da7-4f19-8b43-97d9f4defc90","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA7UwJ2jfA9Cm9RWW3yveP/R/avfWTzpIGOtXGBHTJHn2tjUuqwOOAy6YtSHc4P31zfjTbeRLFKXkdHtjnpAo16L58tfP4UllKGuSizNgqdz1NppJh6tTR6C5ktYtn/rxTasBbnJKphLduGRcG7ZgFLhgaAodyLKSC1g2V/3z9RU6AIR+SxMIPbiziaYyj/yQCzUnQ7x67IQ5g4M8Ofu7VREM4BYNIaMuSpGQSiYv/WbwxTRkzkTzFsHa7eszCiSfRcMXLx08gpNLyeJ5LnSP5KMZ8DDc4ybCDL7qOUDeKpmVPhjE2yCTbLpapt6xkA17wVrYFAW6U5smrw93N8s1uhwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1syrt7_e2etest","name":"George2-Win12-1syrt7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1d9a0b0c-17b3-457d-975f-f672ef8d1eab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"69687331-ae22-4aa4-aa9f-d44ca5a28eff","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsw1gZL/jKVeakisDB6gzvAZEW+Syek5M2Tv/29aLIiIEKoRX/LUAy8WM1Dd72KcU8k7AuYGsZhWHmOxr0lY4YduTa73D3nwhewl7ntGUhlUbgeoqThIa+7ahIcDgU1XXznM3hH+dYZUyk5EoBCN0eYGmzetCDktslBJbqzWqjFKE7MsmE+DCFb4oHvUP4NCGC0m8MVfg9wF5ZUHQal1l9K58tsw6SGoeuimYnC47zkKSSTJx+Bn5ZEhbd3t4VqikfePfKnfB5YxfmKcFmSg4MIOQUON88PyhlNYglgVT9vGjyabWdHaJRVKqwkpw2LjcZUXGBAxdm6fMf6/+0BpOiwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003","name":"0.8.20135.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"51afa8cf-37fe-40b9-9eb8-be4d445cef45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"1d472fc7-3a6a-4565-aeec-11a6ab84d643","vmUuid":"5F5B2A67-A1C3-704A-85DF-7D078D2492D4","clientPublicKey":"MIIBCgKCAQEAsxGn76k6zjWRUaiZGKMZTVst2fKY4bGxPMghCCOYqQTYVuaIGvieqn3HfkMYNHpl6Pbw35uXrYk2LNvkujOfXn0HlYexDOZ76i9wgxYIxI/RcvGJ1nUijLiU6hBQhk6t3nLEna3VjoiPmcgZpEt/YlpArqjfZhBYOPOOsZXLcXg/JPz4Bal+QS7FPELBe3Ofq0Da/v+qYdBgdpLY7HisBy5I6UtDgPSevaS5L+AC6WTqq6iqICLLNgsj02L/RaJQYvtNyw/A1ar0Jgyq0kCXfHcMddHc5lm2GdlCFqaZNt2mwPZhDIAs4FjaSap2lhT9dvuf5jicGIEUK4yrUM+mMQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.5oo3hiinadeulb5espkiox0tzb.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_CENTOS8","name":"0.8.20135.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b0930f6e-bf0c-490e-b6e5-9c72c05e5fd9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5f8db445-c11d-45d1-ac85-b3b7e06a0dad","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArXX+6MReScs2jV5ysJXXQ/szmqj3/vHgkEidecq0RLccx66UGD+tTXPUkO34ue2pTK7NCb5cbItz8b1/cJL0F5G0dmtkRO6LD1mzdh9fw3X1LkcchDzZcJQKMwGFJMvYhT/heN6q70jGCkYjIO4ubwzgmXFFytuWw4am3T2fbINv+hR13KRZZiOILFrFzvfeKLZOIDQECtbH3ZlBPDBFkrFMkGHUlBPwI0k653XEz45G61KXvxUrx7MhlVlmijQLnq1Us1h1vwKGFfRs1jbUApr0ve3/K7CJvepYEVQw/q+3O3Auh8o0LZUj8GrHxU/2qEdBSxAcCOsM9OS3ctULGwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1leayn_e2etest","name":"George2-Win12-1leayn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5958c6c3-86ba-4a4f-9ecc-730791a2644b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"e522ac99-b5f9-4fc3-961a-fd459f2405ae","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAkfIPv/jQ4RZkxnUqxFHQjK0w6JdcCygwMM3RwDJhLlUiiIFUudYnh+NdeWvdS8TKcDapeJeV1svS3TlNLA50NTGbWEb3AF4V/DIt4rwe9LNVk/29Mg57BCbIB5lSwaTFeki4TNyVPfG0WlOWkscLThqZUlak2Z7Wfz1NMxhuEgAKZAf2Zvcndi6LlqKMxJKCGQT1qBHgKGwgIRBSRM0SKINstg1a2PhrRPOmThs6m6wWJ+2k4hTheq8qf0ROu7YGEChWtzz90aBsfP1xJFmYouzK2IrEiF360x6NyQfDptWQCtO0dJED6n7YJPWtPB+d9XrYKcJjywwJap0vD3ue4QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1xwf4s_e2etest","name":"George2-Win12-1xwf4s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99b62b6c-92ff-4c3f-b66f-389e31df2aaf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"10a8fac5-de40-405b-a4ea-ed1862db7ba4","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAue/Ad0wVoilEkzEORfzQhHQBgRpmN3Mu8HKyAFODW4AaBONSdtqrrRWTQ20M2HIJLNIgtfgl+EXXIaLyEFs+CJaK1Ic/9PJSqt60eeaE+lbzMbhWn3qqjNAtrS9T+jEPr4ZDv8HVc8188vE5NgUJD5v2bIYqWd/Fw9iU6XQ8oBqspWKNBw+iVukkgcqeJ9oNCYZ0rfPYdJoP2qt2D1Msjrj+nuFe61rM4HTnobitMW4gL9nD0A5+nDRDwXH1zENluEhpqib3jojMXx/AQ27ElcFQkqHRkZsP59KGsxz+RnQfEcIW2qq4JxC8hscqdXolAUc0Y+2OqEwSJsmSyjVdTQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_RHEL7","name":"0.8.20135.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"572ee89d-014d-4563-86af-209e987c3d04","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"891d9688-4fc2-44dc-aaef-6bb8895ae707","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAxs4PB+d81dJyKH+JFzPmBuOOh+W6ZGpJ8nNDlppPMhGctFcw1lZ4lqEt8eMgWG0+WHy1NUM/uM/qS20jT90RDddkYWGwrYwWm6BIjKV43aTb9gH/JjRyOxlt1OpwemjhJwxKCpYcGpwvawBR2bVO0cDFOQiIZHi+e7nwm8+qh0wq9OZp1BjcT+5mfPIgcMyx76avMCgg4KmPGHDTv3zYSXaAKtPg4jvnF24ir5chwEPBcpc5s06OofCutFVo01gP9dnhcb9wP9jzkhJqU/6+jBjbFPv7KeqrbVV+wTj4OGFU55jmrmL6bLI6jQ6ja6Fziqw4Qij0XR4cIyrPE+h53QIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_SLES15","name":"0.8.20135.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e4e060b-da14-4561-801f-de4986970b7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"66a3c5ea-bf9d-4427-a938-b717c7f8b4aa","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtLks7wvMEi9R96t4trGZMZlebjdyyUVwzPutxmWjjJdBFZ7XiBEXqTHIjkXcOtEZuKoZzuiv0BpRwlwmfR7XOhtlstZeMK4GvSXbDsmaa/5NR9scMd11SyBW2Ou0rv+HLhtjAAG2DwO+wSPM6ib02BsYAl5Rmmq+5h3Eu2rRUKsD5hpX0M6rIVGMfmmkIy5ZS4aNb63Vi1kH97Xf/ZrsOw/uLgTNIxwmAxvC93LmZcEOwKM8vtfjbyxydUJFIE5Un6ctHLiHYUMeGyEECwECe5fBmtHi96uk13PIwVzfZyjPIe75UsTzBKEk8OWj1gzb+ng/8UYqWk8k0BWvXvLzQwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_AMAZON2","name":"0.8.20135.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e211a72-0ca2-4a36-a718-cf1a1d92331e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"d2a0d5cd-274e-4573-8df6-9c5542ee3023","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxu7Aq6dDLdamEwIuL/it8elO/a0K1poklCX5bL7nT5FEm1ZNeB3JrwQnswYwt8yk4bkrFT8HlBwkU3U2ulDdrHTB9g1fPdOmGl5gU8A6vGagMOtWI8nAbaDf1zb8lrP2CCK/kNXej07km+gGCwFiwNkzGsjc7knhgO0K/l2F19ryJxG2ViulaTqz+pnfmULkU8x2yv0Jbz3QbOYeXz/oLjCe3+tSEibqMb2PxU5Shf+jZV4QfqLp6MoO0uP9POSiBIe49S2GKJMnANFzrgDTF8PiztC8kswsLoIPyAN4g6r3kUq2pnmroDF94iDPVw7/QOXwcI9ijQJd81fRGGyiRQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1z1nqd_e2etest","name":"George2-SLES15-1z1nqd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c8cff46e-6fae-46f5-875b-2201013f7672","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"69245923-9534-4860-9b71-6dc4bf2178dc","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA+gq5rYddV514tRvyDl9deKymjGWtKh45tQg93x96Kx9Id/DzjBF0cqRShEQPGeibdl3m1uSIuw7jyz5uuL84iRIG84sD/TD0mv7SSSkYtyFD1FSHaDJTyOiaq63SkoSTXyUHxi1nArWYkywAi8FpxbJAb+g8wx1eeHBCWBlBugSlTaOJ0upEB2cMuWatbWADFjuUqnkdRgnapPFWN8SKRRUUFZ4tnP2h1x9LFHQKxnbVYRCOJAoW0NNtf53g8Kt4DxxxydTr2yewxs6YXhAPx2BL9c+ck9iW8aEq9ip5DCgZKDKOoLdi1fubwO0vEwNg2fjgm9prz7Wh29eDwVKO1QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internze9ay_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internze9ay_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68f9116a-2781-4849-bf12-05aeefa0599c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"c6282763-9480-446e-8d56-3e83cd569fff","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA5sqrhJAOTYda3Jx6aGu/k4xaVAwnSHtOXRCe1WlM0jcbA1RXd47i5PzEYV/lp/YdKiafSO6A9fOcmSnQGyqIvEc0iL6Fg4q2nbQnMBrrqQvgVqZKMWAoqoSDoqqUcX3HBGp+Pmhm2CUiv8jcvGKoka5t9sYYGVjnupAQsAh43rENT0J/ossdc3QGk6mO91cDQn3U5DyYku+Qkj7C2aO032ZKQxXA9F09z554yKHAUWIoF69vi15+y+cGCGB73IL7CeoHtdvGxVeCzImjumi431+eIIecgMeeeyNcSGx+Mq4CkZNFisdm1uLJgMxqWjekBT2bL/9KgNfRmQJRTNA3yQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_CENTOS8","name":"0.8.20135.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"35c856a9-53ff-4ff4-9192-e0fb8e7a45dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5234cf54-95ab-4de9-8a30-0f59253ff225","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzN8NG172Mu0zrX+GyjditkK1AGUCuzdq+Ps6XYcPkCGYzglTaXRDJ9SC4AZBSd7QXCCKovxWVsGDo2qP1LWCzlLESpKbWPZJihlXfZxb283+P9IvoNECTpTHfY9JPLrgeqrBd+tD663ZdnQMw7qJWQhBY4sUdJKYo7oWL/6DoIoHxg6bl9o/FqSrT5H1+4xd7fMOaxkvpvS7sxGHynClPYUpheqqP5KBPxYkjSuhe0122kcBPCatt4+orngHHwg869UDpXeXH3A7RSNN7YIR+l/BghXOH7mAF1nonlhu3xqJh1W41EaiYwnBPYwPfPEQMgyCD0ynOwugyPdA7gcxSwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004","name":"0.8.20135.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6e842d7f-93ec-4796-8661-aa725b835eb6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az508"},"vmId":"4291e7ca-46df-4742-bf9b-0545298372e5","vmUuid":"46362F28-1C8A-8A4E-B7A0-C2C1BB9717E4","clientPublicKey":"MIIBCgKCAQEAut/7+MpCMp9C5J0SjzIb+2wcP3vQ68uFx2aJfRZ+fnczxELblV0D4UMwxKIn9bLK5vllN+nRfwaupngnXSN0rEwtTsUdPOOtJSQqn6/cne6rAiWE9RVys0wJ2aqMYBbz8A/fuudAibMXqsoEmJ8kceRWFCiMpVY7wM+RDdLMf+2XxFSkEpVW4HZcXaYVRx5OnwOj0jemlb5IamfEQvOEHi/IoxZxtvVXzmp/Y0jeCDVOC34djBCaMLSXH9sRltm1u/kUsWKel5Vz5Tt/mwxR1YDT7qD3wmIXgRrBnPCa/PeBXVc6bt7Fs8nJO6kderB6IXiLfubtRN7HwsGxuLd+pwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az508.prdvehd45o2enfxezc4bub3qph.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_RHEL7","name":"0.8.20135.004_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"24b8f894-e6e2-4b44-b33a-e592a0563d91","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"695dc9e3-6977-4a49-a903-368f1830b1a5","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEArjyfp93P0B9LOP2xrdxoDww8a6Ic/1+XNcwiG78ivB1l+QSJhSMatugl8BSXvrhs5T7PPgZwLfqyyrd1uc/chPN9SZe6PST/ef7EeWnpQHHov6FlP5UvVJZGT8bJWLtiKPlowX/hFwPtgr0AbypMjHS9NrAvCNbdv4FgIC2XW0uTZ7b/TX+X8Tt/+E+pDpEXMs8TdwNrus3lkLEwCwXl9WvdNH6/Afg/2lwH4ALrfZ8HaWMt2TIgyOeAj/tBT5ro4zXmneTPbpxvVlb5VcbpFyP230yREVj7LM5Sivm6zQdoLrOIWUN522zQtjkPjdL1yXoS8t/zqt7jQqUxBeKICQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_AMAZON2","name":"0.8.20135.004_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"79a7584e-aa36-4124-8ed0-cd54f2b66e53","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"0fc0a0be-10ad-4cb8-90ef-1ccaafedb32f","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAt8ZHWS2bkkvy4Vp2zg9cMLlh1pgU0jQSeBOX+6iNcFmCFEy2MQU0IPFEIwLIkTwxu/dxk1hMEq7Trrh590Hj8lcGoZMbN3bQ3oZpqlqeS1kTEx5lxnRgVdlCmzE6PBDnR4U4Ue5sEWaSzGUoAgSk3RMF1qvFiyqaKsin9i5TVDBQIE4wbIbtAcyEe3h8M5LwvmNeU7AMoI+ng9aZL/PeTyHN4kswBCIugrAjubVzT9jvtYPO5ccpQUj8tuMenWPgfoZrmbVrKBH8qt2MnJ3IPH+LfOP1eXZb+LNON0zyuKR9laHRJej4p0+5E1w5byWf9pXmCAFD7XQ28pDtE7Pq8wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_SLES15","name":"0.8.20135.004_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cc907a1c-4f9b-4cce-92fa-6122d1cd3a02","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d3ac13d7-aaad-4424-8f2d-e32b4ff65098","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwUndd47HVFvQk1qjekH42Cuo9ppoI9HMWJuqeAjpB2jwk1qMNpEUHcpAsICTS/09HED1L++Oq9nyAZNbjYLVzz3+lqiaWb/UyU+3pCFGrwrK08EhaKETmaVPfkGFmvdA+5Mp5LoLYt+5l1VKYoKLXNccfukuLqn7fjvLs3NW8rxrcQr8gN6whr/UsJ+YTlxjktJtusSV9FilIu1/5bku+jwBeYFtoFjieIE1JkUpvxDr5+tjxhZrc/k+5JxBURAiefkx44ffyYMF+pLbmRA2JDeppOUXKFNHqpEcQZD6J3Xw6AcuOj5EIlKJ79La23QNEwEUVvJYWMMDzAitj/RJqwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern0fwhm_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern0fwhm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a81b1c36-f25d-4599-8c44-b1dc0fb2d31d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"bfdc1869-85ca-4ff8-a3e7-1ec36ed1fbea","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAtI/+/MVNnHSddiDkhNunM71eUiYTLuPtR2+BvQwU45s88/3VrzbpRD6T5p8CdtraCjtbZWloIZ62zavSLlkjvNAP/otmtBomgFA9JLoBIjJlYKEn8uF/edIQGjhX+aC0lFUTgNRunPADwryzma6R7oV4FKHw1/P/2yzvRs3phAt7yaf+jnI+Zkms6vUzXsq4wf/j/x6Ijh8+R2N3go/0C0YWumfWKtUMOai2GVRUTVF9WT9gu9HFYvux25HK2QkzNQgWzz6YpPIMLo6fDB5ID7WKa0mbW/zovyc4+pmzCW5KR1H5FACL7mW84xxX2lj7s8BB0tWDjmGTgTddgQGEEwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1859tr_e2etest","name":"George2-SLES15-1859tr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8604665d-d826-4cc5-b1b7-e067349514b0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"7b839e30-818a-4019-8930-353a2921e729","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtGcvlsZ7OQHOodaIJw97Cj7A59dZZifrGoJZ1FWuSxIvyJjzNt7zKY+YHhomZuvCNgSKkhcTYQmlCc4ZuxlOAIw6rBlOUAm9Zhe0YUHwiR6L6sue6FKUxDGPrjPn30Tm/VqCGc7MMCoqTVUC0Uz7pW0Jt+CkMHGG9dRRCyejkD0JDwXVio/IITzob3aH5kcjG3BqvAM4ShsWg114bEPXcmGEnwH6xum66/IZcw2IcKVaHa10Ae2J64TqTT8bFmz4ejgzHMvMSXuonWOanDgV/hJnfllYn4MezpF7QmvB4VJirUJm8xPvqnBOX8FBCnPccng8t+BmX18oquhZL60FmwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUdwnf3_e2etest","name":"WIN-PRKTP3PG6DUdwnf3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5bfa6ea3-98b2-4491-9566-dd637a626951","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"15763459-c6db-44ee-9916-5ceac828db9b","vmUuid":"D788AC1E-9680-4D8B-A723-721E1C444447","clientPublicKey":"MIIBCgKCAQEAvabV0sYy0/b51OZDNkwZpPjy2xI8+fTBL+U51WBl43jfnTlSI/eW11Tsbha6XjGaVgywAkjCSfTvFY9nRYYIDFKg2ELLEhTVEYt7TS2iNLvhuVh/NHgNJ7fUMEsRV8LugFQkFTkxQ0HZv5Cg5t5ja/gZNzZ2CxY8eFIoVVtDB9DvqXt9ah41g8RPKBgodYyfEssOgRc+Mjza73GAk1avvJQKCpBXiBse0igv0A4e9UyAIcTt5O78tUkfBhA5mN5Rp4hfOXGdlo3OnYH7Kyl9Jkb2lTp/uOSKzDZqSWgirCGn8umtjaoNj2ln5JMtYTy4WTSsca+ENUoMnmpl46+bbwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUtfpaw_e2etest","name":"WIN-PRKTP3PG6DUtfpaw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"838f9c75-3be9-4666-a62e-7e6015ad0ad3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"a9367fdc-110f-4352-b279-c7db293e354d","vmUuid":"D788AC1E-9680-4D8B-A723-721E1C444447","clientPublicKey":"MIIBCgKCAQEAne13UAzNZaeWKSQqgZCAT75LDKNaYAxgDUg/Q33ii8X7LMMMeVbFTtPYB3EN7nBixPWpRvD13W9qVV1ylJjUuO99lGcCMI+/IpX3UwvXYzVohz7Ay6H8FKlpYGAq1jbOstapQYqLMmxGuiGHsN12NEbE1QpXzbbyxksKwDaL44Rn6kE9dE1jw/CLMNgL7YDYz2vdcig6bU3RcN+dj9XVXJnXL9ua6i3wcZZ1NaymyVnghp6Wr1ZuPS9EjKKlOsiHu3OIuOtcJA22ykiK1+ePRbgaHWwmmZ3O5LpV9230eslJ5/78Z3XnDJEVahhjePzNVRqNd8NCwtoGsHNUzGK9ewIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7a9TiAAAAAACA%3D%3D%23RT%3A2%23TRC%3A200%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAABgAL2OAcBgAD6FCMACHwBAgjsABQIAACBwhgIAUwAgglNAAQAwgALAoTMCADGAAsAwJPUB8gFgQIEBVAkAhQsAABQbADMEgGIDxQZYEgDocGEA3YHDAwBQ7AAIAA%2BBuIDcjoIAAAAAIAAAGgB6mwWABoAbgFiAAYAogAuA0ItlkQKAEQAkQIMAAAAAIAAAMAAlCwgCgAggCABQACASCQAoCgCRAQASYpFxAgAMKIAGgKmCAcAECIEANAAVgLmFKYCEAAAAACAAAGgAb4EBwAMAEwkSCBVACAA%2FijQDAEIF1EAAwAIiAFQAAgIngGmADoABwAAG74OhBVAAowIAMAgAgAAvgV%2BAPIYygDWAeYDRgGqEIQIYAK%2BAC4AZgBiBoQASAIaCUYIIgFIAhAAQAByAI4GFAAAAACAAABAAToMqgF6AYRWAATSCLoOVhg%3D%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '127616' + - '136995' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:24 GMT + - Tue, 15 Sep 2020 00:27:40 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - b63173be-0669-44c5-a1e5-aa815419babf status: code: 200 message: OK @@ -468,40 +999,141 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqMwEP0XtOzTElhDAkSqVmMuqZs2iSFE6iMhhlgowAK5tFX323cgfSiymDPj47mdD6USt%2F5ZVmWnzD%2BUAOJtEpMggY0yV45933RzXT%2BlVVqIk6j6Sfp%2BbsUkq096d953WSubXtZVp%2B%2BnwrItJ9PymZtq1szONMe2XE2Q3M2c7GAe9obetPVFHkTb6S8ya%2BuuzvvJ49u%2BlQevPjXnXmCl7Cgr0f1JG6ldkInJH4jx29UMRzOI1rTiIsX154%2BulM22LkX1oE6palOVkH5w0aomDH9CI%2BYj%2FneDYgUvqXg3rcPKY3D%2FVBMvfZWY0RZJLoJt5A3IMBCzeIcYk5gsWCOaTafmDL1wM3CgWDD5erwCDQxYw5HnKgmxYJk8IshvCAEyykAG4G0o5RsMu0mC5QaaFWKDCEL7fpN3iX9BdxaCeWfc4%2Bb9hfk28l0nLmABYAHaDcAVIAEPFhYsruEwU4x9AbCA7v7SJSw4BVYXjBcMo%2BFTBGUPDLCx%2BGkHNAIDwnW9krSAGt9dhpwBpyziwBn3ipgGsPSgBMYZFMHSq7cIvaFz53ufuLkwwApocAbUIWTjnD7hmAArjunhiJgHHKD0BPivMO6e%2FEKh2rQqxJdso44n%2BV3FkXNKcadfwoa4OaLa%2FnCmvvL5%2BR8%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7a9TiAAAAAACA%3D%3D%23RT%3A2%23TRC%3A200%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAABgAL2OAcBgAD6FCMACHwBAgjsABQIAACBwhgIAUwAgglNAAQAwgALAoTMCADGAAsAwJPUB8gFgQIEBVAkAhQsAABQbADMEgGIDxQZYEgDocGEA3YHDAwBQ7AAIAA%2BBuIDcjoIAAAAAIAAAGgB6mwWABoAbgFiAAYAogAuA0ItlkQKAEQAkQIMAAAAAIAAAMAAlCwgCgAggCABQACASCQAoCgCRAQASYpFxAgAMKIAGgKmCAcAECIEANAAVgLmFKYCEAAAAACAAAGgAb4EBwAMAEwkSCBVACAA%2FijQDAEIF1EAAwAIiAFQAAgIngGmADoABwAAG74OhBVAAowIAMAgAgAAvgV%2BAPIYygDWAeYDRgGqEIQIYAK%2BAC4AZgBiBoQASAIaCUYIIgFIAhAAQAByAI4GFAAAAACAAABAAToMqgF6AYRWAATSCLoOVhg%3D%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ch9t1_e2etest","name":"fv-az456ch9t1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1415ac8c-f718-4809-9d8f-7f7564741e90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21008","status":"Disconnected","lastStatusChange":"2019-08-21T20:06:14.089862","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7cfecb2f-cd54-4898-9611-d68550805145","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxum5cVE6/q4QrX0lIHK/sVlZFSE+V3HM/ih9dTNxnTT5T0OPx8VneqFR4mCJukyWAPosI/1shtylgSJ40Usq9AyXoSlr74Gd57UYuGTITAB5S0PrxsABrJCc6s6GYxrC9PWYInIWp3pgJEHKOVjb+ELZrPo1VYunIwLX+hFJEDVgDdN96zxynSf4t/37Mi8KhPilo00bjEuSkjiKE1TiFrAQvdmXbR796ok7bRCv40Cx9/bsu9MP3jhXhf5RzmDEDkgwcqRUBR9hW8CF81lEDn6rceMD6tC8+Ma4eN7Dwy2ybzYNuNfh8/MWv4pjusrPPzweBt+Lik/ZNwC9MLW56wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.23003","name":"0.3.1910.23003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e7ff229f-fc8b-4070-b265-c76fe12a45be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23003","status":"Disconnected","lastStatusChange":"2019-10-23T17:21:31.3081837","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"bbdc8b1e-4a97-48fa-93ea-8b0bdffe9234","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzUmxiZeKIzvi4wwqiZwTr2QGkRSWuK2CAGq2UxPpDIFUwqzQpB/atNBWrXunhtBLPjBJyIQbTJ0y0aRaHt8Q+6Cfi0jsye3azg76+PmqTr40DVGNumU3wXpuf8+V+UypDXSOLDDesmRMFVNSfLASjLHMr/j4+8+8R2eX2+HC6Gr2qGqIzTqT5Ow2397KOtJYAoan05QG1MOMdY3HhHJkRnUXAMx5x+nryLHslxh/cLBPMJXeJkp7dGYAiW+G4DaN7k4N0vvXsbrjO6io2HrG8evlN0FalA6YpQUrJY3cRf8i1pfpxaMwGCxYQbOcAmSz/LUEmP+NCRN9URSn3IsfOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.14001","name":"0.1.1908.14001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8e5c148c-60c6-436b-99fd-12e34e1d4adc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14001","status":"Disconnected","lastStatusChange":"2019-08-14T17:27:21.3409795","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4d737171-c2f2-48cb-a920-39e996203754","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvpdbnZ8xrXEgfMyhZWRxKmLR/p+TO8azrhvQrdHLJXOVqCHwQXuCVGI4quJO6/DvKjPXc+dQWQI5O8XCrSnX7qztAqDdUDAJqUqANuuF/Md4c7jecvORClijrEIB6HCggAgQra2La7Q+a7z6YY2H0cEgtC+y48/8DN7aGKvayvtN3QGE84AFnc2pOXC0HZGtrx48TlR+5pavh1ipQLy+v5S8N+M32FnwkPYvs+B43KMmPXqLoSI/yn/K/IgIp5a/CXfvSDQlC9+KI2zl0XPZuWa32LywEhoSrh3sANyrrUh1SzZvP1Fu/00KlmfdCTWimALwsOrb9PgOHSx+KYxxhQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456cxsde_e2etest","name":"fv-az456cxsde_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bbef4ef0-bfed-4b14-b66c-f0f00a4ab4c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26009","status":"Disconnected","lastStatusChange":"2019-07-26T01:40:25.793968","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"302aff59-33f9-4a95-98c6-2a8471614d09","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmkZfWwvUWI/j1fyY1kk4kTxf/6fA8t3LmhgWvvjcSKZu9yHuxbWok9cq3IQO122nNKqLbNOS+0iFPGMqOSiCeWOGwkgSANPEFJ+w5WrMUEu8pzpyYsyWk5v2HM0LNBNEEnTN0w3JjO2P4WTZi1JmONnlW9A6iOAEP0CGOhOhWsBnnAIr1ZtV8A0uCuGJpQDEi9pLF3SAe4HcF/Y4KXFwz6+PVjOJbRQq6Dj2q2rlDYld+n0IuiSGLg9k2eBZD05895kEjyPOWd9i5wZMRcE7WA0kpIRkxHfYGKF1FTRaICHZLX39URyXzZGQ6xrwOzaUVsiAL7JbnLcegJRREKWPtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456tph74_e2etest","name":"fv-az456tph74_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1b940470-bfa4-404b-a383-47b8f50577f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d531b465-a3da-4f31-8ac8-99eaf660ee6d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwWTZuijIR+gzv5B0qO+syhmAVwv27UBP/+GInm5iNQpOLUa/iHbayi8E/h7gh8M6YCt0fmMYzk1WuQqT8sgbI23/TimU4U6kzXwXg2el2M+NZaqhvOfw8HT9OgecxoNxOljPgxBeLRV/yJKEw4O/4Xsso7uCAlH6p1VjS7MB01rhApg+2lbr+xoMya9tL782u6gsc4+vGhNw1hJl0dL6W/U2wysv79aRf7L6IvfkLFIQc2DyFgni1PR+s6CK4dLht9mk1xW+5mWQZW4fBE6ImRWfLGd7U0wu99m5Jx59nSBnN1Ji7U7D9v6+bdV+eDAJqjl9RnaS2djdREkZBgYq8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17006","name":"0.2.1909.17006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"055da00c-092f-43ea-acbe-7ccb9f9124d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17006","status":"Disconnected","lastStatusChange":"2019-09-17T18:19:34.0238281","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ff39bcaa-b511-453d-bc63-2d7107a81c13","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4oMpMd0C4OcinUbXDMzYua50gatrIzO7cNmJBA0Vjgl+Y/0CAPfiOrj+ta9tDoj4+y+1etaNPvCWJ8k2Yg+oqo7T4G7/lFj3WQPkddRhmH44fbR02Kfc13Rdm0cMg5Nm48rwl9IpzkDknbbQyqv2WHUaqRoRkSW3wbcYk3btuas5DwIlzA4OnAdo9Hv2VFARcjG1HaMhSO4cvoaxyNcEWAIqDycaa45MvsYKdNsMEIUrnegSzFY0sFxUVlQbQ+igyT0NAG+epCmz5C8Kw/QUYX1BBjV2pjLl5tV65L3LI1mWj3n9gbetS9OiWN3Ee9JxEJnPYRzBR5Kp4NBXQ3hUjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az49647q1o_e2etest","name":"fv-az49647q1o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f0719137-be73-45eb-8ec0-200749158bee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25011","status":"Disconnected","lastStatusChange":"2019-07-25T21:36:34.4414679","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"10fa7ffc-e778-4593-bf11-6da6e9e6c5a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2yJe6fDn0UKFDAceSOhsiAi70UOrhLUuTJ7hSdESpUZQ9A2Jl/JOe6dUSGt//Y976vMwPqCLlR+lyAxBJCZSLZNJFVONQPMy3kijdBjFaHiWJSqHcUlhYaSh2PC8bvCfzHt2IBin6IOYjg9HGx+AYFVHGGppgxNee5dfNl6M+L5EsuXVxVKPcfjQ5o+tCy3lqap0/MHDlae1aQyK5Wd9Nt40HdgYUef8nNPK1y8lBaFM1eIMyq5wWi7Lb+gPPI6IbJ+7dJuwKqStqYg5CrtC4kUEh1GkaTNhRfNeKcRW2L99hMLLHiW1ogP8Vd+AgU2fb4Hdg7JUL8G4o5nNZHaIYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461oex1l_e2etest","name":"fv-az461oex1l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab268ad5-832d-4bb6-9361-01cccb8680fd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.29002","status":"Disconnected","lastStatusChange":"2019-07-29T17:27:32.5898875","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"bc5fe9c5-e9cb-4c8a-9cf2-f44f745f0fee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyYKd5u7rw80EDIZt6QO4cbU/7WWE10igzDVZrzX0Ntb5jkSt15QYsl0FQM//bHA7zcVxMCdTVhpaR962AnQuO4AliZO+jfnNEu1BENSYH5F02h8sOfqClZH4/GErnFymrf/JWoEsnZUY5T+xltkEhXgfBZzYBzrFEe2FhP7OIlyvLxrbgDThqUYtWK+wZS1lyFxoLA6HZn1nvBKEqcWT8VPjOpuIhT3vHS2Qblu0regqhy7pRbtvrar3Rn+Tj+yIyZLug4M1NZSanA6hLDD5gW9hDIfR3+LW4JKMrV3CbPuwuBfgJR4D507b4WAA8tgqAudkWFZJZc3NYU56cgNBqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.14002","name":"0.1.1908.14002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8e961bee-5877-4166-a2f7-17417ff470e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14002","status":"Disconnected","lastStatusChange":"2019-08-14T17:47:21.5664194","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az508"},"vmId":"97e22898-5bc9-4c4e-b6a4-c5b862f74db8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwvo14qI8avWc46LxDX/LIZwcHhx6KwNGsTCMYmLLdr4AStJzV7tLveHb/6OkBbSZ+agDz/mdMbZ8amcxwyPh1DN0KL51o7wi/3YifGW94PCI/iXzcNDL/8xJlNNv03j3faEMTFmOMmP+/OGsxhMQOTc7K8sJ66hKYYkG7PI8nSOvaRRLSok4oYeMj5rBO8lVTl5rYaVbCVAU8d17dL8HUSOn8xp3GCpL8R1SGNZB+HUy65s1wkIev97cHPJBD2ar34FJ+AkxGQN3koLkfky4p2rlG/NJlcDgc7eqZVSGGF21D/Jhh3ztjvBCijyhelp9WOaoIcVYr9hV3mdHF8KdlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458m1r2n_e2etest","name":"fv-az458m1r2n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"074a0a0c-a363-49fe-ad35-5b0c9a690c99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22002","status":"Disconnected","lastStatusChange":"2019-10-22T01:56:27.8891539","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8e5ddbf8-562d-45fe-b35c-faa0a0d98a74","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnvJ4TxGYy3e3rtjGK3KBJiAuz7bTXr7yLsrb7mFMpiwZYKOKWCM2HLRFckORIze5eITDcldOTOcMjP4vSkJM0L5ASRBszKZ7Zf/ADuTTTuro4B1ek88jffFJaFonSioCIBeUMNiIeIuiFKb3ul+H0oxI0T8CbILHzGOEuQfivW2KG7R5byz5XewOn/O8fH+rCp6vv69cW4YMVAkjZ0q21DsMjK5sDsWtat3JWocuLGLdAPNT5o88VrHORQyzDecRMhJ1XYlZX4804PkTrcLTnD+h/l/pD1jPfVTASc3p8bvF4jWsg+QkzMf6mDFsevmgu4YKsZiySYvQhy8dpXYFqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.23004","name":"0.3.1910.23004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39f61402-703b-4ba8-83a7-6b8b4aa3618a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23004","status":"Disconnected","lastStatusChange":"2019-10-24T00:12:34.8696807","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"f9db7153-c34d-4774-80f0-624edbbf09f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA38FfyErW/M4sDg8oPWx3Ize19rN9scNPak13D6aDIAwZckW9XwCvfRnbRhWPOWnicQZowzL5EXCbzXjpPFvRD2pLAxr4ZK5kvyEZaPzh8lpejd7hV25pKN8a9pJLCjBBrDNY4IXXFMciCoVtMXzAWAh3ZkoekZxsNNc33ZtbEyYHlCYRH+AakjBcnSCuihHlKveO/T/dqBPg1kh06t9pZlW2iUXylsgvtwOv1sPrHzaP3H8Zl+gRaufOJk+/TJe5Ks7rjl6TFtHpVJ9StY6klx1Hk4/SepEm8RtHD+iG7qFzfl7gssaGt/cv37FxC0LT509Ba5RLm5tl4sllanacAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456d0jr7_e2etest","name":"fv-az456d0jr7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0c1b70b4-2a10-4404-affe-e49fea3a191f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13004","status":"Disconnected","lastStatusChange":"2019-09-13T23:09:37.9300084","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4376d3cb-d578-4f3f-9536-08db8ba1f7ca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2NsqaVASqycgfM+M9epzQ5cF21Kw3EiI0KPfWt9o4TJyPks2RtmZ2Buqq7OODLoloZG9FxiJE5gB3JmBlKhGDIl9riwqz3BSwwJbb9YhIt5zuS0W0vgra7HnPZSduysJtq/9ihXXGVo4I0z9+lj0x4ZCymkXJBKQBGyCmE6Rgc5d9qm+UaLqxHQnPx+hLHJClrcmMB6T+47R+lqqlphUWsPwrqgvsz3nYTA1semjxdErbPPd1LDmHpis6poft33RuwfZZR0Ou/h07MrKRiTWfCIvLleL0gkDSB2a2hy2HQ/RSKYLLU5Osv3t/MKTSsxB4K3+MEN2zXWKOOucrDixuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461olhkd_e2etest","name":"fv-az461olhkd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bbd2fb15-a28b-4163-bb1a-c43617d07eef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11001","status":"Disconnected","lastStatusChange":"2019-09-11T16:45:52.6759191","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"8b097902-50e9-4a07-87b2-7c024fbed306","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnu5z548MteqCzjhvrDHhU5/FOH27SLEbIMiSGNcfcysiRIK1WA3KulrYyPnNMGJV7zZSlP4Xez624k0HiYTJdWdbwAiBGspTbkL6PQfWK/quGu1tTN0pSrY1hoAlBDWIK5YYpwaS7LkUn2obrL2MF2e3qu+09hNiSAmkbHAVQuy/Zd4NEOll8G9MMPAtCtFcNdP3frBkaKN9vCGElmXp8fQyYMsYtTIwvZQqOGNRnKJBAKDxMr7ony2TWjxjdDb57bapHxO1G/wqcpE5VD2p22X00F5zNx+Q93Us+x4Titsor3HuzjnSEV60EbB+5I0JNnnpMuctv0M2HNb4LL4P2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4965n3gt_e2etest","name":"fv-az4965n3gt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8b81a306-4a47-4e33-aae9-541d02ed506d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26020","status":"Disconnected","lastStatusChange":"2019-07-26T18:10:49.5426326","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"44d18282-d0da-4c15-8813-5e3cb73dbd53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3p59ALAAN2HT7UWy5bHOqcdCnnS3R9TAM29kB9qVrNJKBjb2Bs8ifVf3hVtZ6kQJiEZtBt00ZZi2ALrUQw4ii3GMiBX7uXcN71Mn0tSmQVQ3sKEsIJiuY8WF9mrDaAOy074c2D64mgs5e2F1A4W8SIQmuDUeRetO1PvoWyyCca5yazps91P0UUvVFr0Uyf5gUtDq0Or9kd5UViTqa/+5vNzwwpFLLxKEHPpOz7L7ramIrx4X5EfGTKfXMvEqh52wpdiTyK3Ov9Y14qqi5c5pfunByK29yORrtsXmN7k3aNtklWSEwG2y7nwmgGktIsU1ieQy1A1LtDUsKxkg9WwI+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456u0apd_e2etest","name":"fv-az456u0apd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aaa2f317-a215-4469-aeeb-7521b649fee0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24002","status":"Disconnected","lastStatusChange":"2019-10-24T21:35:50.7142982","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"2874a1b5-7556-40e2-a492-7963b9557497","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnyU0kOH+eEcgpQIuzOIwg8BnYbPBCM+2Ir514atXrUJOM8hP60Hg5TATdoyVcBQla3hYML0j0hDI01OPnF5KIZPvRAYG9bIfxGswehMOfXN7jf5KVGEbHPZWefxzn+1pMQ/o99uG8PhZOcPIrTa3qnErJyKEBP8DbReRtPcZD7IlnDK29xFN1grqsOka1sAIWjxPBjTq1yEfGjKcO3UtQcm6ObQHB1/5GQtYcPDMBMoLg7QJ5qTNC+OWL+bTNTeR9yqcNGlyAPAfjAVtWEWVDjXmeL2QKlG5lrcCV4R+MH4I+S0rhJ+l7kMPktzbBnCIujPOIYLRKmBjLUEZANPQ4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17007","name":"0.2.1909.17007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e23a163a-0657-4ed7-9315-207c39fd9e4b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17007","status":"Disconnected","lastStatusChange":"2019-09-17T18:29:34.2435343","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a0a68609-9df6-4e06-831c-450a79e4311c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7stkDatgtlaIOvDRyfZko0+1oqoDzDg9xzUDOhQZ5BhkHOpWmr3BjZQySZ5gysE80JlE3ByH+CZjyvRxZo0Sf127OSTPM3CB3fKU2kv0gFkr8eyD8rVWaS9uJNJSVQhNvTBlqjQ4HQz75gQs/aiZeSk3Wh+Qm2VAYjkQIvdSqy3KMg8A1qNbLcOubcYydNc2TCNePxdYZ6DUVu+UI1XQVQDEHrwWtTU1wPzwiXjSx10tpGnWGXH2LG975cPwIxOdZUpQf2lNB2kWlWLZdO0F0J66Rb3vfnJ4uDjGBcYcn9nBHqj8AdO22RHF4Lj7s2lndn6JFU7its1Ggz9dE+q8RQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458mi3h6_e2etest","name":"fv-az458mi3h6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1757fc77-69ac-4552-b74d-2c6be09e77e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.06002","status":"Disconnected","lastStatusChange":"2019-09-07T00:16:02.7861504","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"51110de6-9fb3-4bd5-840e-ec636c314e37","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzbsxHcWXiXqofmKPQcF7BZTWG5X7b85SB3w4pQsDgnF3Ow919ZTZ4PoZ+ZCzWmdSt6fgOon28Rv5PBERoKwbcGToO2gjNFBEv0hY83+pcMxpJQSrDVsOCpIe4wSHfZNoemhquk2lniEtjdQYtBKCaT9AWM4Rxgt90HONl8DO1vchaxYG/EGjCVNjxwzGZwqOdmC0Bw8YdHolprq/E1m2g61UW1gYAwqLxUqnHGn+6/9X/Q4lls3nLP6p1cuZ9zVHxp1YwLNxbR2QUyqAj5njOqty2GmGhk5057l7OqL4by69IjgP5woEHrm4d6Cwkrh8S9fucL7/wRvxaPLfS6uYDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24001","name":"0.3.1910.24001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"673a315b-9a46-4c5c-8f3e-17f11e3383d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24001","status":"Disconnected","lastStatusChange":"2019-10-24T21:35:50.7142982","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"3b90fcdf-036b-454d-84cf-f786087bd897","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1vY82XvER2YGpsPgzWUZwCg4skGNmAXzfE7w0KOPNK2YtNCGhCyqouO5n0sqvSPjsDTXWL2FQKVIoTsr0wI7LXJ1ge98ET9FQNF93RVyrvP/SDmjxaoVd+WW4451BHuzFnedizj+xIReOTpZO0P4DS7g2ahgnityxmBWzOEFVmL0MA4oMh+2NnYfH+Zi5SjsqKnmpbjrdI0RK3Ak6F7H1ydei4xbyjkVWDPMRl4BdgGaA5C+MpxmGt96r2P5GBCil3fFrOYOrjisKXi/Ew3PY4KpwNg38Sv7IwmjK9hTxy3Rp40TLm9wEdJZmmCYW+IAUQnqx553CRvCIChJXoP3+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461p1kd4_e2etest","name":"fv-az461p1kd4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb053c61-a98e-4395-96a7-7579176ec393","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18004","status":"Disconnected","lastStatusChange":"2019-10-18T17:18:42.8814452","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f4139590-6043-4435-a8b8-22ff10d45afe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ECRI/G3dAFH993zIho6jV6YlsM9CCTLTdB/esa86XJF8a55MR9rNobNyRWUrh5cUbUt56pVODymIoT3OfTmYpt/WGq3StC1RY/9rwtLbLs6wZq7gJvmAcmeID5aKBITzNpD7bdN/t8C1Dq+QZDlOc6QGnFPfuCuCBK6dOe9/gwCeeC3bpxELXTO0vDwdKgafE7NGijkk8LThL07kHtPAiZhQE7n9i2HnOVy1l/0I161ZB/R4i8HWNiV3KjyIU5FP1PTpcVjZDDJeG3yaIPdPvN2mBPqttgQN9qmE/LvU6WdGNhdTEnF4E+zMHsrZa0RNJgAmWpqaPgFgmW/++MGdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.16001","name":"0.1.1908.16001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1e21c0ae-94bd-4f6c-aeea-14f6f1aac7ba","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16001","status":"Disconnected","lastStatusChange":"2019-08-16T21:36:12.5722718","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f42bc3b7-6009-4f97-a2f5-d8c629f948dc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2vyjmSahT55Z53QFz42qviKZKqn+ayl0FugpXnLsdc2PCEEC3AYVm+BTQFp3GskuJxy7VbjUnQGTrvt2h8BUWjuw6/zYYdKtfzkraOS4luqSf1L+Ls/cmCbS3gWTjotyIB96IZhqnigmUJ1ug0gqEPCekOMBOcoC9b7JOq8ByNp6mNhdaGXmkypwRXgYqeXunneIQ2SpVDyO2AcaG4m4rwReIH4I9x0xWr5P08Pj7f1L5JbTZ53LPVc7SAGBWYfaq4q6Cn/uxZ06BMqKRCvygArHHdPaVyCTdzzE4TdHs6FZGKQzFV77ZVXl9MVFlfaLYTSX+CxmvXJFAvAbphu/mwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496bh9im_e2etest","name":"fv-az496bh9im_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4177e5d5-36a9-4d36-b1cd-bc06b85b6efe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01006","status":"Disconnected","lastStatusChange":"2019-08-01T22:35:25.4339998","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az496"},"vmId":"6ad57029-bef9-4097-8ce5-2234c63af4e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1zjq1TqCFdJHgAVF9BvWDkJKXkq+WvfXoqBGW4YBdhOWT96LCdac8/WP179gRsE0Oa8udkD7cbc8IbMT7r8DMQE+9SrRrsgWPRsLXiqTQRibUqglnDfUcK+Gp60CSrH3KvYbUqIWpzoDF1lMBiGDOfI9zzbtX6GIJ3GvEkaFqZTlnb7cXp6I3ViG7HgFhBgT/UjMC5KouaU0YWIQFkp1QmEq0nFC0bM4XuowT63kkSBz/3JEfrCwzbvbFSFUc91W9bqUjwoS4qO8oSh46AHDXN3/WQ0yX3JcJijht8zvVjyFA0LY1hg/lpe6cKYhb7fH6poAmTWPqe41GxmRQiS5ZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458mo28v_e2etest","name":"fv-az458mo28v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"934b0d3e-5167-4829-b3bb-b98cc5802cca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31001","status":"Disconnected","lastStatusChange":"2019-07-31T23:04:51.3936979","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"9cd9b401-8a29-4347-9913-20d4b4945e4f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0BoCGe6KsaBe0SnsgFDx8Tsm5QOhyYwi3ts2DNRfAkbcRsK7tVP+UwxhrSqSLlFoFG0K24WJpbMRirfcgtOhNAFkEcIl7VpbVX3q+idNaghpxFPtccowC640z2E2pAJv0D1vg1/IiGOFltDJcNrc5n2ksPXPWnyL9ySY2Ewozg6jjWySL7ud3COkt25haUl5u3htJwMcRgQwysvKZVCeA2+W9kPz+m5gGeaCDzuCwHIGzz78XEe04HmwLN9xnOMEeL4CVnBIbslCGLs8paPKqS/f9njwKCBXtJlOgs3MbQixBYA7fmEv1f0ecjmvt8tjZvZVN8cVfqefoyQbTxK5awIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456d2js1_e2etest","name":"fv-az456d2js1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"05dc5fc8-2106-4aef-9642-eb2f04eadde4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07007","status":"Disconnected","lastStatusChange":"2019-08-08T00:12:34.0833074","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"151aea99-1aee-4763-be8c-8e0e3a4a6de7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4FAIakMmaw6IFv9NTD73ZBsMcUw05ukaGkBlu9BQtLav9D8BpkspU/kKH+H5csQ9n3dUYPD8nx2Pw38nB9r7m/xsdaf9A+2Ig1NzMv2WjFOdsTBAyplDe+fuEkGEMcGPO9FBQHdpXL7L4bKEgjgjYK3J1U8CwkqeNZO2gvC4CztGm+r3kBZ09x8uyaDFp6ZEr0L8XiM4KYOgCzynQ08+WHf0lnbMBg58DxzVW8MgbJbG9rGkD1Reclyd0T44uNMiNsCETeYehtebdJCEK6+qk/rt391nCbVtO7DTVgMFz9cNlDQd15Bado9gh68fKV1gekI5/+xlxXPW1d7Fj8u+2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461p4z5i_e2etest","name":"fv-az461p4z5i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8f3cad9e-a8e8-44bc-8e7b-d8de52e4087c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25001","status":"Disconnected","lastStatusChange":"2019-09-25T22:14:04.0472897","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"d6d01c2c-f6dc-46ce-86a4-4a1712de0911","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1a6i4nOyq+CfN3MkB4dsrTGECImY8i8wU7+RTpUqfta3miFW9LUa90MRizBXhTEYigm5ApObboKl8pT/nrdU5yGKs8X5IMLPFH8et8RcBYi/sOS6MNCjKipnocOtOnrZSZ1NDnzz0LaS4KKEbDQxndyQdM/R9KkkU2kQYQkuWVOH9T2czulKGsPUCchHiOAnET92zJ47pjCBBOCDw8Z+BtAt0bngd+4wtAxnVNP6MEwZ1p4HC1eMT1lbtwH4sLNNrfHwE4mAYJ2rYkYWfEUge1KOmPOOWrZQDq03IoD8wmHrN3BpXitydn/m2/iEhwglEms3hNu4hJoRSDmfO8BSFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17008","name":"0.2.1909.17008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ad89ad76-cafe-477b-8ac7-7daa20279314","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17008","status":"Disconnected","lastStatusChange":"2019-09-17T19:19:34.6307992","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a7fcc8e3-88bb-49eb-b298-d69ee3a863e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxlBAGSLA3nteCC90uUyaPtppXkbBVTYLpah+OOM0ocgO1H6W2PCG0SQnDpkXqXdcoCCmScH0p5Z2K91LTlGyv29SQTSI6O1Or6PNJAn2GUDATQ+ssmfBKdbR5Lag6PhN1asJ/yoaL9EhMxGhs0Kpc9x4DbSY6FLSMy09EMRnvK2yzweViXMyX1ItwSiXBFGWa9OogJW5I/x5Vy60fc913KuVDVJ3z2r64Ee7q0L5BR17bAylhT9kh7pkIKVbWnzrcYmOA0N4t6HgXB8QnaBj0rbRjz4J/qdBkpiQpBMQWppfwOuQeEIMMt4CH/jF09mYoPwHoZ4KA0JbDdwZdyneiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456u2w4h_e2etest","name":"fv-az456u2w4h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7035a894-928f-4b8d-913d-0080e50376d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.02001","status":"Disconnected","lastStatusChange":"2019-10-02T22:24:36.6405636","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"a5078efe-46ba-47b7-bc95-2ca9415e07cb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxew3h2ASbGI6xSmqihRE883EDQj0jrkYQyx1q4BGMl+qub9Vd3p+7v1U4qOgnf2UR9Pln9627FUhk5qhROapOSNz84jiQNPUtDuOrSCM/eKYe7jzdQJFdBH0MYW72o1OdSZIVs5s8eiZnTtkOsGcAwy48JqeV+QtTbhzjLJqqWAODrqZzzo6TfANYW+6UC5nife7P5FODj/7cKTirgCyY3YBebt9kgQ01lHRetr/q1BIVQVkfeggMT1Rno4n1WsUVmYRslP2x3BMKYhcz+8qzJ8X7P/uRcSVCdLEeivyCLEwT/c4SeMwZqFfl+4DIE8MbvcEphEOekDxEutKvpkIyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24002","name":"0.3.1910.24002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ccce9c03-516c-4bca-9682-c1409906c570","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24002","status":"Disconnected","lastStatusChange":"2019-10-24T21:35:50.7142982","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"17102f8b-40b5-4e7e-98e0-c71996f37f59","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5O9Sh0KHFaiBQ32KeGBrGUO/X4FPbXR9VgVCxfNt3P7+9cTjtfduqHhKWOnnVfC8ZtT1AhWb5wVgASGAS5YKJsgYz3ni1NJdR5DmmBxFqlstUPVuVCbyy53sQ2PQRXWk/Kpw1FvQQIbiKOy2CLKFnxhOkaWhgdV7lNmeeG3o9gd6rxYnw5H1nCVHP5saifbj8o/y8x7GYsKUKzZdwNZOhggW7SPTCGfWhqmKJmd8pbDFxaMyLyS1OAOh09BYICYnDZvkKvWQPPxyZrR1Z8334+djtkR5pc2lxy2364prGVALN61LJNpY7XTs7XKpIGM/tbWIUxLjk0ZzW92IAp+qLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496dg9py_e2etest","name":"fv-az496dg9py_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4b1dd727-3621-4891-b516-ee2f280987df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.17004","status":"Disconnected","lastStatusChange":"2019-07-17T18:23:30.4706521","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az496"},"vmId":"19985f3e-0a7d-4eed-9518-10df97905e0a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0NpjlOfgooTlqP02F7A7udPKWMSy24GLSQqfcqOabC9WzUwVf/x/VhTXXG68YqB9woybHYEAenBCBAelSE8YXY7rY7xznxqzBjgJk67csCrXAlKSl3fPXaFHtHoTyvVUyf9lyRXVrmYLT1yN+wBA9gotdMYHstHE6XpEAaclfbqEOm/qnzxA+8HVIGesAaasD4L0UxoDdh/OHQMSEiMyYGlDKYmhkFOJ62z1UKgrrEUwZuy4POUtxbVhOOgbMPFQSzf37WKLkvMMwYLkOsxnAagPa+DzeYkiHPgbG051elVA4Jko1J9U0UMcceVgsnra3leTW6N1sP2WSy4eFgVjHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.16002","name":"0.1.1908.16002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7176c8a7-b982-479c-808e-81d39c38f43a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16002","status":"Disconnected","lastStatusChange":"2019-08-16T23:51:13.5547803","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b1d50be7-4d4b-4575-9cdc-da190bd28928","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnGEBjanAsWKVhGp2WH66Jmq4n803YT06E1KRTnDIp/bv2ReKy76chs+5cvoV82TaXZOTs1UtJG1/L6+xRKWGQsu1htMZHkXOSwudLVo+UoiyUqmCkpF1Gz/k1GbpErF7uBb20YqsHbhOpNYg5aFpLj2ZeZghSRguZGI27O2gQoXjfvy4cPGaRJ0GE2LhsYEM7rPILhUohur6LLwHmXPEVT1MLKyVzsinJN+Z2SzdtSBa7gm9vSUXnYjaqoCkcayESvFtp11e50MyYW64dv6fYR/bnP5w5IPTY1QxRbziMz4bBVr/zhzmOATAa0i5hA+lX98DfCSmVBWpT5Pif9mE+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458mofug_e2etest","name":"fv-az458mofug_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4600294f-35d5-45f0-96a1-2992f04adb7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25007","status":"Disconnected","lastStatusChange":"2019-07-25T18:00:43.1952382","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"7805fa81-d70c-412e-9097-0f04db6a5df1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzyDL52HY3f8XXFRbeewWjKMWbZiZwCRESuCBAm0qwLK0lZpUjk5TFEbhLtj+uMqQtyrSWo3ePdrj/2RoLArd49ftFna1l1bCYlPPTKSCt9uhPZ4jhtmbiBnoFK4ap3R0pm8Qafi1eLYkmCmScz4xrvMYZu2oXwUBEaPHFrPgdzsnG1rfNj81IjE0CyEE6V/GehuzokU9q9p7j55eFb73+SAiHPuUsy8fC6gTzFUUQ7b2K/RjGzslF3fYE9Yu1kBViVInSu9W1t4J9AY1HCKmmrm1xZdj2APKZ1ll7Fd2bEjKsXqmWB0CyV5fvxaUj7XfPfyT4uQQAF1RbyOaHEPwFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461p9wo6_e2etest","name":"fv-az461p9wo6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8a81dd08-d894-4d70-9eec-dd24a136b5c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22011","status":"Disconnected","lastStatusChange":"2019-10-22T17:56:34.4492924","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"d256541a-839c-49a0-9524-0eac2dc58642","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqU+Zhm84F4rSVncriNRHxpu4qC2v15vBuMtYwX68zn7k0wjc+l1MlyPFBhO76S219SSU/G8BNGehtSLFblzVT6EB67RzljGlgRsIzCFanVTTk3d8yfXSbZM1tLOEu1+81AhJhdm2JiV/UFi1CMNYbXB5E+4U+567QZgdMlx2j9zuKqlUPSHi1D0cPmtgrmOcQeAETCMUpLF/naxRIHwv3MUVodRRmVcOacTdJzjbBGAyCCaKdyl5iv0fQIWNFaa1ny6eN0Nutnznzv8PY5J8Ci9FrlrEgJUI1GgiZxzT5lPK7Jg/VdtUhFJtE49GLr5EjnimuXhXlC9V+EGi17s28wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456d4mjc_e2etest","name":"fv-az456d4mjc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7db66a79-dff7-439a-af03-2da12c15c620","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31003","status":"Disconnected","lastStatusChange":"2019-07-31T23:24:51.9251377","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4d73d694-a52f-4ee8-96eb-625cc952420b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxvk66ub8k5jcYioI4CUOlrc3FYJvdNUa+ihm66bNAckULOjp0njNms5oKveR8xEyiIpZg9wLTCcVmFSossdfCJlq18fi62IsawjUFT+vmZznRiCaIBTiG9OmC1c3UwK0lMsPd2wd1Jf7uqHfySuvpsjv7sAe/YYAJT24CXzkAQJKEO65GkzZGIu2h/vGQ91RJ1dh6pYwgW/tX5NxPFq1XfvEbRGq1lp29tCnMNWDi98CDusYo6yU6M642DSmsU0+O+TqkNH0c171572cnG9a/xKR17Us05Kp8U3oFfogFJVvwwVCdg6oiJygGF5DFnEOemUzbtCN0xXC7YXCru5vjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456u4smz_e2etest","name":"fv-az456u4smz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9448e8a3-c2e6-4b44-bb94-1aa2895b38e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19003","status":"Disconnected","lastStatusChange":"2019-09-19T19:22:42.5123375","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"23531569-c4ed-4af9-aa1e-3c7b6499978a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAumlFNi8p46rtCGF/q3uQB8jKffJk/CyYSSLvmUnp/RY2g7DB1vfVDO5RObr6abbtu8PmOgRCdaWtqClrkgF1nGxK8783c98yl6zyvBUbf6KD/w9/50aGXx+6Myw282ar0MG6KucDtKnguWUKbiP+odokRxKWpLr/T4SLhlqDrVIeRPZPZo9KgFXKNrDwNKge3tNmGdTGmmySfcb9pZXxialLmOD515ZOFTSR9uHGT7LiJnmyROqf+fG0jYi9rDvP5Vj78dJ6c1K/gdQWmHkGj6WERwNVAx4/7osZ8jPZNui95wavQhztVACNT988IG3jPyqUYOYEXo0Vw8KiTyH0CQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496dv8yo_e2etest","name":"fv-az496dv8yo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"621ad0c8-8f49-44ae-b1d4-2c8009e51809","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23003","status":"Disconnected","lastStatusChange":"2019-07-23T17:15:26.2330754","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"64dcfa9a-f9c8-46e8-bb08-5aad21493030","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtlkETH6LDD295LDYXuRHgNxMkKYyVJJiIGcGcJOOeDWFjJtQz/fuRyAStAoNBydqaoK4XSOvX2n9Ry7CRnuTZ/IzgizgfLBWcr/WXEv9gFmG4+FML86wXSEDmpjpo5Ch+YZq+YUwqep9P1vzcQklkaQkCQ7MWBHu+kQKMFMV4YZVy1fsEZXesD17iija760U7B//ERT598wcsTo5at96y3roHPE+lAvyZAMBpE83nUJ/rUUKpJSEBNWER2QULurbzxzH7YQn9aZiaOAuXk32YPNSgPjR7dEpIsvonkgzPJY8dGFPGfyEOrT/HoquhqX1fnqIvHJE9bT+whvjV/qo5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458n1pf9_e2etest","name":"fv-az458n1pf9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4a97fa38-5dff-4630-a828-a28ea6806ee4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31003","status":"Disconnected","lastStatusChange":"2019-07-31T23:24:51.9251377","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"ca5cbb11-be24-446d-86f3-655a54da111a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw03a50geaWhiRW6dmkkEJhUU0gTr5RQRb78PjgfeqeYqPJashsaSlUkQn2h9kDpn4i3ZIe8D4caIldPmrPh4JEO1d0zXLyGBh6qjBiOC2ZON1RzkzvbO35NEaADy7tC9+GXWhe1b6Ldryyju3+vhEfwh5r0ZwWWWD02kqfEz2XBtQF1zJjEQdhfkb/2SiWii55Rx3kpasT6ZCvHrzoCQO4YpZebp7BcnsCXL7nEeBFM4ztZYRkdQJZkJXaMb+bCauXMjE3J7OzRtqdETUrJgmi1X0erWJo3sGfEZUiADmTDdzbmdOmTcRDNfDDBgh2YJhd4gsdw5u01H0gdwLJmJCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24003","name":"0.3.1910.24003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"58e5a4af-0dd3-4fba-89ab-68a82686c986","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24003","status":"Disconnected","lastStatusChange":"2019-10-24T22:00:51.1244851","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"9530381f-9cf0-4c5c-be9d-3946210fca68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDWKVtvQXlJ2jSup2mnMRz6rcjm7WunJ3duglRqWcVM1UUL4aiGDWSL9SHu9TLrHZNsuhxmyrYPiN9To596m2uzMa8CXVnXdFDUX9Qop3wK8/JhvbVTFD3oz+wZu5vKSeWeq5MnywyFXEPTopJohWBerxstldgTs770d1WmnSqnfLwx+Yln+T1s2K4W72OlyucfKvCXVqc8Dj+B5cVnUNuC8vrZi80YpBwtXzE/p+UwmwFkcFwT8YnN88fSi9P0YUw8Ao3UQpK9yzVKam8HJKUU0rrPfWPRAObRtrD9+WNx0KBFuxvepBN4S6Pc1JtPhRELEskHBr3O/ovNX+WYYkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17009","name":"0.2.1909.17009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bda6efea-4bb9-48a3-9b01-fa7e05b4a5fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17009","status":"Disconnected","lastStatusChange":"2019-09-17T23:34:36.3348574","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"aef5306b-4cab-47cd-9cc9-38f75382599c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqKQXuTrdRY7ARbnlWvun7/cdwEwsFWNY6DX7HsbJ+UmmQonMTF4DjGYm+gU0bO9ceV4hQ0l48qOhjLq+nTKZkkWDE390vL0fdC4b8qi6gpKV17AuXEc9ozhodrP3bGt3diiqmBL2yJZOmFN4r+BOJ5UUdOuPXL7gbxGJUjt+ZQkuXXm/RBVxLLfSsNe1BA452BQpl1alVZLv6wNunN1jCMgIM6BGPxWAJprzKpFb2F/JWVWG3DQ345oZWkIg33ZkqNdFBhVU1JLiKyQECarVi2wruIk+shWvYnlKD0LKJmJkoS+/NuzZ9XZ9yuOtEwD1m0OO2Gyx1A+0CQCHsCUPcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461pt8cg_e2etest","name":"fv-az461pt8cg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ff5324d5-fbc1-4c59-b928-ba6cdd54617a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10001","status":"Disconnected","lastStatusChange":"2019-10-10T18:25:40.413624","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"6619f06f-9f39-4c23-bb37-db98c26d8291","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvepu98iQLCXZpBxHK77HJor7RTcr/XRAOgbo4E8nUD3/63IVhDB9yCPeAoWULsF1nTDzcpyuiPx1neIfEXGbDttkrDbJzRngKwLQKdqGDzOXFnt/kUsod/aRsz28imEfiBi6974O9KKoT/+E7xwmEk2RvC+FjLB48TYtwzzcCtDkvCo8eXUF7pRokcktlW9ghS6IiPN3V1CwJzP68er89rCThCWcU7lIFBHbFnm5tyR2/zylBdFvrZmMHiQIJ1rTRv26+YFGKA91OMl7iICtxWVAgfCFVzaNcCWaKNkbTbuswSIAqXiKvDs1owbn/32JLC+8m1HlUQ69z9iPjwuKrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496fnmzk_e2etest","name":"fv-az496fnmzk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ea7ffc6-7852-4416-9cd8-aa8361286f58","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26024","status":"Disconnected","lastStatusChange":"2019-07-26T20:50:53.1701887","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"0198f72c-ae9e-4466-b81f-bde2e494593a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0M4Zeh4kZvWyd7Fs02q16mYi/+zhl8PW1LloxOB5jkPgtmxcrT4MqU6iyzf7bVwVRBmaXb5E+lGQoIJACF3vbPkUPMg0h/n3EF2SMQAu1elTv+snMBRtSLiKQZQfs2Y1frKGHEXNEYdBDwngDRrR+BFOwpKsBhVYzhgma8WnQXn15Y2tR6840gCQBz8o9mfF5OgwSrVtPwG90lKTMm+6wMDLVvlslTRrK33Yue06J938Ky/fB55c6IBGuLhX4okwLGflz/sYVYI5APb2mEHV5zXu14Q3YvjrXm7pzyJz0kj7wpu2dc28HDUMxbKpuvwls469CBf8RZqS6nuwBXMwvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458nu2mb_e2etest","name":"fv-az458nu2mb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6638de48-c9c7-4631-9357-d8e2b3241144","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22007","status":"Disconnected","lastStatusChange":"2019-07-22T22:45:20.8283723","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"2c095719-4de1-4420-8463-33d6b52ddaec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwXb3GBlenInB8A6+GlRTozn+fezZEdpVE1vejb0w9x2Aw4wPcUwoQsrWyhcgkg/ykHSoG/XLheX6I7tXy0h0dF1ikxe9zOqVkUt4bFCGmMo1R/hO3aca7HAIXRNa9ON8OfgdS/XtMULuOHrgyt7eOn73twKoifdxTS4UyzwStq/CZ1yoQiO1RFxP0TzCrYQSlKhOSIsl8E1CLR1Lc6vvsQyaAN19sIx/Q5l4yUZLEambubspZYt/dY94zJw4BzLErPeERJyJTZhGmMUtcoBxIVhSFNbPrefSFSoJpiLlPszsWVhyjIUufaEIS3O60wZRjrKlYubsco0cZwGxcYmQrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456u68g4_e2etest","name":"fv-az456u68g4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9d20847-c2bc-459e-afd9-9248206bec5e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.19001","status":"Disconnected","lastStatusChange":"2019-07-19T18:28:45.5727419","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f9f9863e-6588-4785-a32f-3f0fc38e75a4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu5BCSvK/LDMIMJ41v4qpuAfQhkCcvZeOe0nrjlB4ZBGwQC77pr9p8TFJ2bEohAdT8l2u+BzLrShUeA6PUt+VLnULsigHDNsBUSZlaouiWB9FJP8CHkxgiP00LoSl0LWbRWi2KIWfHU/YfxyedYtmRXbpy/hZrocWgGlVpoTb3eZ+vUNllk+l8WKgbEHelvlrP2EEioOotZuH3jWr2UieA7+D4UC1LHsiR6b52DmaYKSC/egu/bE9iH36Fe8piBoIPBWsQ0Ur9xVFRZ5oPVxhpPzbmrNphqO8b3EY3Rc1Ao8PTICge+eq3sF3HkaF7qm7veTmBM0/1hBpveTgt80bcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456d9kqo_e2etest","name":"fv-az456d9kqo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0a6c9e9f-5c24-4913-ba44-e16f5787ec2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17006","status":"Disconnected","lastStatusChange":"2019-09-17T18:19:34.0238281","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"af5cb6d3-caf0-4069-a6d0-9d5d3198f6a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtcwhSlyS+BHreCvyWiPJ7b5Y1Dfow0GtyWlZc9omo2XDFQ8xIwcwHCnKaTte+RhX4fBO4vgrI8KF62kx1vD/bKF9X9Umia9hyA+3zl62kDPVBkDls0hFq+Koclm3xIV2EMaEfUiaCv8+bSagMRTnO7WteFSZ9pS2PJyG1BuuIimVduJsupgHQRYoL+JuLcpeJIDIrs5BCS8OyXkFrVYGx4NtiISnpgWZoz1jSuC8ZB4n//RALfbjpDf0wyXlDMMaPGj/R8o7YRILWSIS31UmhXee+VPz2oLq09zP0WFOqrWEd808O7ZGhgO8qigF1S9IfoarGyDJWQzHj0uDkCko5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461pwz32_e2etest","name":"fv-az461pwz32_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8211add-0998-4f7f-a5e3-f8398086ea0e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13004","status":"Disconnected","lastStatusChange":"2019-08-13T18:27:07.4145009","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c97ad9b7-1668-4c04-8642-4107b63acc2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAosxd4TS4sSrQjVnbkV9R9WFSoF72C3QSTOfTp7P7po4wX60H1Rf6pHQVRBSsctDWOAdCwWMrKo4LEp2h5cS70R2+KSniRexzSV6rusYwkv0ih5AWoob716REqB3yc41t5IgNgXs/ftCxYfd2EsrlpHJxX9cYXLQ9Q/ha5pHvPuPb3VSNZE/fSfu27j68RdHfAz84VNoEfT482+eC4V3i6GHqlE8BJ4MCzZSKWuQkxBcmHwQVR7Q9WcNHQS+j1DIB+VPM9Zez5CZhzMD5l6lDKX/4VrNUfALj5vSKMHK/AE0aaTarz4xpmhqYMwu63SN4i/682O42HnoWa3tLbxcv5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.17001","name":"0.1.1908.17001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"da7f42ac-1ef4-44a2-9ee0-dacc1d217ea5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.17001","status":"Disconnected","lastStatusChange":"2019-08-17T01:31:14.2380189","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"960c9205-255f-4c4a-a435-942773a21300","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuSmFynZZYpNyxgTx63LvMlwiBAfRUNs1i9SBorPCJtRzvGr/3tRK38E5YXkLyzRWvUcxkolpKMKsBUuPON6VVzmhYWyjMTVg7QT0gFXUbZ8Linlaoi76Nz4AW9j28bEWOqNTOjLvu7vzoAI5csIiJLda7mEBxchO+nQSa0d+ZwqtDPPGCsainBt4td3D9HB5ic4ZJKD20jSC/yx+hJXMhwO/nNPT8BnE/xwicBtQ1+gC1oAwkGU+/7m5XrO0LN5YkTY14NHUnc7r6aJKMGs3eSqCCl87XQNUHrITUZxAIiZLLlxIiiRGhQqmJxkf1JIwY/FjVq55t83XOVEqpeEMhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.19001","name":"0.2.1909.19001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53835def-c8cb-45b6-aa53-635e040f1a26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19001","status":"Disconnected","lastStatusChange":"2019-09-19T20:42:43.1079175","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az548"},"vmId":"ab1428a3-0ce8-4d89-a711-25c43725571a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnZYtl2emTmj4Q3EnAr2tsiyGWfirt9TgZRDui2YMjRy0udIAgEf3lI5JcoPHrAbKA8oK932MCHecuqX14r+vXnQYym2+M0OZqueoU6QXFwMg6FVzORL2SUhwTqmAozaKl7CYWFIttkf8HSDqg9z+dDVz5QX8tC6kggLG2PPHWDN52xjNNbMUmHslHRv0TVqLZtceYZiz8zZBidpc9XviGn0L59YETYMNoJ/Kxb88yzqxgkBFpwGBQSAzlTF/eJf7/CMmggpM0RvQReu2pZQOHSgewYZyw/6WI/AKhEj27Wymg5ZIyksm1ulXTtJTjqJNsX529TgxGgCFQPDiHjgI2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24004","name":"0.3.1910.24004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d744d1ce-362b-4a19-95ad-6c607a8b1670","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-24T21:55:51.0279103","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"0331556a-75ac-4a67-9209-672782481fb1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAww+6TMi5UsTsEZCpmOKFCl1dacTHf/CkLf+/6cDSCorzhEwnF6+HMSY9qg0gI7ZZ82TnilN4oVhyNj4shLaTroCSOwNXwoZSRmNb9x1xhgA3i2cItZM5gFyBxk4t/nWr8euKEItrItee6sbqa26XoRA/kSvQrxp2a8ZjP2R/N2eJlaY6YUHeEdbSMAI3ZkFnpMuvrju/FgKUtUMSAnxmUup7/c0KfNrHD1tr8P30DQM/8ApyrriNb4rPqgAD4bWmfpDaJZKY35zdGECtX+aM1qOsmksxvkOddiUvzxG7QLio7Gz+rnI02vNjCrVOs8BL7h+YfpDSv7GQFacBc2UW5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496hbu9l_e2etest","name":"fv-az496hbu9l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6496512f-a7e7-47bb-a505-a0395343173e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26013","status":"Disconnected","lastStatusChange":"2019-07-26T16:45:47.3746465","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"e1f5aa08-e699-409c-b300-10b667361b01","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyzZBhpc/FUto2iKIS8CTYIME+INeZ7lPLK9p457OYzUh1vE8L2iJq3ljqE48pbnGGi3NDqSePWF2GD08QxbaJ2mgIUDSeuOK3lMwSIOAIPH5FkcbJHHI9dgKGERdnfxhQKor2yj0FrN8CxpEcK+hQ+ddspbI/trEmZN1rnZvBpWhuHTH0twra7UpxPZTf2R+DEAwp6BgWKIOHotoFh/BP69PKf1uuiX1FH3fxqgMDU3bvYYIgRy8geQDDpbJdHAcH6R7+Ogq7jpB8V4ObaJgTtg7+FhEW0D+vY00t1DFhLXDBXWVusg9CenALE/hYXLW3X1zsMptHoamJu3gZ/LVQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461py142_e2etest","name":"fv-az461py142_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6122d12c-b5e1-46b7-a74e-0a3cda6e4690","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24003","status":"Disconnected","lastStatusChange":"2019-09-24T16:38:52.8227789","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"3df125d5-c2db-45bf-8ffe-3324d7d6ee08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmuiaWBueLZfetO2TKrUeOUiYtQ3R5gQJyU6JQ6w3bKxQYe3xgTuKYIMnQDEMrX2VfTUWcYoKMPqlQj/n/x6phFlLVc0scDgFxEYwMRfkQsBSFUq9gZTSV2a3oCWTOqkiG5QAVPBWSxdxunVEvVI/FuiI+IVMbPgrTVRRCB4I5suiqh6uhge8/ok5HHLz25jynQby3r30LIOjppezerUW7QCMNTgIMEjh5y4W/tRNaiYyaTqGao8i7jQZiL/tFEa+FFpuS++1LECrT8D6ZHG1O0geIfob6ewo5fUtBbOx6LT+h6zbXHkDafrPOdrqqb8fDwuo+/LwPSze9DImsxZM6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458nw5su_e2etest","name":"fv-az458nw5su_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a045f67f-33fb-4650-9cbd-355898885a94","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17001","status":"Disconnected","lastStatusChange":"2019-09-17T17:04:33.0989802","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"21b01359-a91a-4b63-918c-1ec742d29681","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxeZ96nrB9n+W5CoGYpv5lccpRiVkuBKUrZFs1lHQObcPV2oL3K50w1GZVcl6p/bJe6DHqxyhy6ShAtgo7sYTAHe/Ox7+vBsjOLXsLgC49KCGAg9iIYHQs91y89Xwlxki6LVqMBnqkbVtMW06p5nqd+gQBnmKwG1xq68Cs68ckba3PkqIl+jhtOdRsopYHf59s4DqIxJBxPGCBvLB08hm5+om0cZFkzNqXBWbsK3pRTeQZFB7YrdafiGJK59ejX5QidRsY1nq6c+Qroz+ottgOoEimUgH1cCzkxWNLLwDA4mlr65SCZ7Cw7wCr8T9UWleFgE5K8BpYdi/xBUw5WpInQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ue746_e2etest","name":"fv-az456ue746_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0269e2e-47b3-4214-9ce4-e7673e08e4c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21004","status":"Disconnected","lastStatusChange":"2019-08-21T18:56:13.352039","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"702bd58d-7198-4dde-8084-816f179af332","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwpqOj7sHp1SHKMvjJd8QSsct6BqSuaxX89DhYy1g1FUWYLOrCLyeS7CXJgSZdCPaqNVSx8BAl6EvpsjV05wh6BxAqCoNgksruDvelAsCkBNuN5MbIEv4katQU5mH2DVXRJ4dfIoS7fLwnrDMxs5jpIcdP0Tl4AXKGwY8ABzZHwypgUXWdGPnTGc7KNeWMgSpC0Fbp+Qihu2prIwz68IxjbTERo9zX9qXVpt+qENNj3jR06m7SZJpz0H4+Yvoz8qlg3l9AcySuX9U+HN0/iyEbjnXV/ihjEl6cAulj8N5lgYJLK8XwluLdio1V2+rYexnM72vGKHjac1R5sd7Ur8hBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456dmtf8_e2etest","name":"fv-az456dmtf8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cf0491f7-edce-49ca-92fc-600337eb8f32","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04002","status":"Disconnected","lastStatusChange":"2019-09-04T19:46:40.6750779","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"41bb323f-d22d-4d61-8fd7-1525ef00a1e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApkNUuohzZ0zSlOE0LoGfDmUtDqASeDl/qJPx00gWB0V76Tl5WWAdLPx/cOY2M6gny/hiK1k/4mrLKao585CZR9yFcYcxyioUIb0ssJ2JpSALx4/oGx2pM5QqWcrQx7sgl8pw1iGWwVLmawuc+W6+Qvm8wZlkr2tu9t9fcgO3VrTQTHeUEEr4xtDsM5vmdE2d5+VTXRHZXIadODCY+l8JNoy00abvEWPkSFhwVMmkVjttdxR4c/U2H2rBiBIkMkUyprzwVWpL++Bzml9Ahx9U5s6eB6fFtsmjND7HmCOJw5k0/+O6k691JJCiIJf242lNvszFcZYll5Ax4sVtiOJmKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496jfgkt_e2etest","name":"fv-az496jfgkt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f0cee280-f15c-4ecd-bbef-1f060c21c4cd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26025","status":"Disconnected","lastStatusChange":"2019-07-26T21:35:54.2509407","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"cefc91de-b8b1-41b2-9f10-552cde28010a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwyapZCSBIj2pyDD0m5NpGbYKU/dYMgUfimG8sSDDG6m+yzgfdiaeyNuNrq4+qAHHreCYdD3iUbXWwwSGrfFR9A4zpepykh5LEj9HIegNB8U8eTknzuGJnkqzAEhN52wJE3Nx7hcZdOuabg4FnfqpUITEtq6Q/98KP67/jdO+RUbB3q/6eYrt8dYoFDRjg/uy9fKsKZveYaIJEVxmQaCdTfrQA1vsSLrIg1Sk6IEnDNQZ+MniTSFVmhtEwZ2ZfL79egEDokitF8VPQFMhPK7DaCdyH03q9cn5i/kd5wmUT9W/sbYhFZXp+DQ5QSR0eQ4lOsHDUm96v7zBS7RUqCXACQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.19002","name":"0.2.1909.19002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7b8a264f-3186-4749-a5ff-491406199a0d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19002","status":"Disconnected","lastStatusChange":"2019-09-19T19:12:42.1236707","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3a0513f8-0034-440e-98ba-85a6340f574e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3DjllkJkVxgLwXJHO6n6dLENUSCoRR211QX/1+iAoMeAz5F1te/pb5TCl1VN0PZGyUCf9TtRVAUjItpgRv8V5FvfUYOt01pMiJf3C0iqTIxrIYwQsfd6fGKbEgg7dbFeLvSXvj+g6VXkZWrMr05qUV0uoUfXiM5PAJk79UOyebBLv5yELmuu5ev+f/VourPZAPyBllZMQ+/EooboUabO7M0sNaPWhxbJMh3bKuxj/FVH2iDBGkQuKRBarzDW5opCrMWOneugNMufDuV9aR0AqJeDxUvb667WWscMxuLNbMxXizgbfGvL/inAPcHJBrw2YcibWISxb0YBGLhE1mheLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458obdis_e2etest","name":"fv-az458obdis_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7535a736-a330-49f9-8494-1d74def16200","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17010","status":"Disconnected","lastStatusChange":"2019-10-17T21:13:21.7043179","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"a34645f3-ab70-4847-b032-c45815d9ae43","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA00x0ChAeNHwxG5j0RzAuzzNkT8wcfJle0ByqsDJCY+m1KtTzUoYLWrT1lJyFO6LBFQ1j993pSVD6df9Mv9plSvEcrNqAGqabzy3EZFK8bRrOCKEMfJoyJf1/R2jnCdckmAfCQ4/1YOoQAI3beauOel7GsPFDAkSasroFjEMMRXcNKilq3BJT1hD7XwBSGcxaTdX5wh1NInojvzO3g74zvyXsI0SH2j6dCNQcpx5L/ZYtFSajNb2ChHCEUNwrc4vbHe1FLYupsI7ZtbTNlrHnxrMzW9sVSpnsaysLRAoLmuXeQhL4lhLt9uTwVd3fUtkvGJzpHTK2+GzXEMYq9KGiwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24005","name":"0.3.1910.24005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a2d63cd0-d333-49e0-a3a0-baa85a41a6a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24005","status":"Disconnected","lastStatusChange":"2019-10-24T22:10:51.2650559","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"24d654c2-5567-426c-95c3-0009c33c0fb6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz4T2QmbXDAlnRQE4ksluQJwnmdgH6JzSB9GE0StySvsLucp/SrKbd7gQmQjwSv/svnMsXXmjdWbnyLQEmAVfw03A+3RGN8+GhdOAfPv6C9y3anRPTExw4sPBUjUqzaOtR7C76rHPtEXWzkaq71DPcrXOWqhqkC9Hh/SDhe+x5eao30iMWYIujVabNBM7P3uIf5hkFuiFumPexsqU6HtxmepDFfglvv4Ux20/QNIqfiET8Ti3qn44E7peH/zKxwTb4T5PoGJfJMrPr8+H+0UuqxXQALbCmx24t2tFFoKIF7Xv9tjVyZtU4m6/WiH9QWfOzEJmRJYEeVPhPLPr3xv6QQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461qc687_e2etest","name":"fv-az461qc687_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db849139-d781-4761-b4ca-db1c90b5787c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17006","status":"Disconnected","lastStatusChange":"2019-09-17T18:24:34.1565184","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"5311a840-7c93-44af-a49c-14070b33798b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzlKfidJaZQY/wmy1tiEBh99pR4x5YUP0QtYxAtGPwioWm+cn1TYFrKvq0vrZHLKFkZGmrkK2czp3kT12ST53q50H+EysFRJfUlN+LkNd8ZqkBcJ/bLkyqcCgpxqEVtvINU5RK29qaTEcnMbLLHV7VFJqn+yZRwBb1CWTwLBteDo5sJeZzThym42Q9g1sn0shTehaEmdk/pJkfMZVbXQbhP97DiHz6tF6C55TR5+8Y5I73EJi5kZEufsoZ4ZzwruZ5b/90iVBvc2oR7nHv9h4XdPefYeIgYr9YjWf3FFoJiMuYGw9X44SbhG8t3xawWXCPejB1MVU8qeDPDYcpGeIQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.19001","name":"0.1.1908.19001","location":"eastus2euap","tags":{"tag1":""},"identity":{"type":"SystemAssigned","principalId":"99d9c415-c1b0-4743-8473-3002114119bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19001","status":"Disconnected","lastStatusChange":"2019-08-19T19:06:36.5728932","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2af53ad5-dce9-49cf-b3ed-2fc603e64265","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo4wrO+JCjNbAxf01JFR/4P+7wGOguYaRa2kEBy+PP1YhKvLNALlh3/Ew/9ueXsXiODgo8TT+nerGDKDCqvv+8X8IaiY5LJg874XCTGC/lTHFNwdXo3FKVaorONRliaoo+IfRR/DmWSvG3Dw0tG8Yp1OsJdgS8eyVDPw0c+0xBXe0h5+lbId5pVE/Qx82pI5IQws/tdog2Gqz4rRtnjyAeMkev31tJY5VnW474GyWeIurdyRJpri6SLFdfRTCr0dgtNghs0VWtqDnOXZ8lIj00R+9sbuNgaodvtbyDpqve3qgm7/N0+9A2Y3EG1swfGSoo4rEkf72XXDza7g8yczbawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496p7aku_e2etest","name":"fv-az496p7aku_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"44c7da19-6e07-466b-b176-336bb77f491a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26014","status":"Disconnected","lastStatusChange":"2019-07-26T17:00:47.7656177","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"40d2f796-d5a0-4a91-bd80-dfb139ee9fcc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxbo6N5rGu0fas8MkBEXNV5Jrr+q8QxyhnaPOr33667OEEk8w9YkPPY9HI9AbNxkbjqcDxO3AZWjsUafdVD/R28wt6xnFIA2GVtIPEhXL4oduQPswxCE9+8LODvnwtBQv3bZCrJzFEKAi1aPzSeIOqCgGDKmuY7V4A9j0qr9xPS5vGxham3cA6ehVHq0m4ibkogXxTvJSEL3uysAQun04VARgcv1ibVPK2LGv50dltwglR4sduhMYj5nCaHr2mWMM4umG/dSuBq/Fw+0ALht/1andWMV4Nrg+ihn3QP+Ky/zoaN1T4WdaGanGhF+l5a4Y4CQ4B3QuKbqXbLrVIBx3+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458ocrgd_e2etest","name":"fv-az458ocrgd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61e7ef58-aaa1-45db-a5ea-e6139cd1bb88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.05002","status":"Disconnected","lastStatusChange":"2019-08-05T21:41:16.1826147","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"3669e27a-1789-418b-bd80-32ec25689309","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvKtlLknGIWxSG9KCWi3gM1bkXyYj/QCW4kXiCkvU2Gy3Z0V42iPvEXrYFIgPTud5tDy9V4wp7h/o3LKMSCw0c1P79FAmrOPn96zmIN2eaIlf2PgSpzrKBB1s7O6M1DWW8jnKXYhBmsJJwkEl0t2V8N1ZtU53CRli9cFcnDbsrf3fIa5E/8UtUDpITda5pC7r2eZvwweaOBDpD1zPkJftox9H5PUE5RKO9OSbuGQ9N+JUlExuoCsfdVeHLmO8DgQNOYVGiBbtHqyp3X6Yry+4USRjw2frO2ynZOUpjseZZoPz+S1ONJfHDsKlmivDL+RKtxyR16AgG13+l39MULcA2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461qy98k_e2etest","name":"fv-az461qy98k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"08a01abe-39a6-4d0d-b9d3-3dc5441b8aab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26022","status":"Disconnected","lastStatusChange":"2019-07-26T18:55:50.5746328","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a9c0532c-3395-4ff0-a3ea-b0dbfc0228ad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxVQLwxM5MIFfUPFhgoDfoRx52p95haB8ZTQaavXSoGomGzATiNA00mBdz8j8+5F0lIH+3IUcnAWZz0eVNh3vlcNlGNTI6Vn4qzoOLyA9tywVKTrMm026uI5+hxhfUJWCCajPEB7v9GgCv9EHjC59aLeoND8Iygbhqpo7cPpj12xxqI5EKhSkxPv6mBO7FNELyUhyqDlAY6VfU09gTOtgI1mYsBuFyzBXi5fftisemR7vc+9NmNpNn+Z1Z2vCaCKi1KrNqv+HxTxG46v7Y+7NH1SsSiPo9LNRAMONHo+JPPf/MDnr/dpjZB9TvIWue3pS/aIlOgFt4lg8aqyg0Z6XhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456untzx_e2etest","name":"fv-az456untzx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98bcd0db-a1b7-48f1-b7ce-e66f1456d416","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03004","status":"Disconnected","lastStatusChange":"2019-10-03T22:39:45.1132758","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bda0a7c3-a2f0-4949-8141-b3ab1632021c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn0G0cMmw+ZfGPAVT5qXzvNArPT9rOZuenmXrhre3lvENJj9Gklpdj07NS490lPgQ9BXIU5NuYeMmQxhHn9qXCd9tQiS6gNiNs4jNM0CZvp9sCRWXkH2CTVXQw0tBId0A//2kdjiXenK69knfDN3RG5IAq9UlQAF5ovOBpUuYD+B5v+TXAOotXDDu3gk6DJ03TfcZGU2TqpG3qq+6tocprpKz9vHQPyuXX8SXknAsrZHmtWaHniWcU8G659yc0UKrtEAU2cXA8eksZBFp2Ar2AgH8BUGWNg6Lfqp2oq3BxbxfzdEYyJBdjmdQecr8liC87OYsQoEuiUw6vo4nKgtPvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.19003","name":"0.2.1909.19003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"25bb475e-157a-4d2f-bc3f-647f90ee5d6a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19003","status":"Disconnected","lastStatusChange":"2019-09-19T19:22:42.5123375","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a47f18ee-54f9-4fd7-8ef5-0915c829a49b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Wu6u3+EmmVhSb8ZQ69nqVTxPRAHGBWTmUVKLZ6Hdo8m4Z8OgAK7O7RBZMxFufhcYAtBki0tfdoOO4AvvLxSmjJuyWj+gfvkobP7R4uuD89D5nAJfPj+T+PFdTysH+GtLbu1QiTQdK4IyTTTUO+yKbu8R6JhqZHdACVnSlQAJjDScO9O+unR7X4aD81S8DmmWBLdTiztMXCyDpocbPKLvW3K4Df1YErNIFaTvIg6n1xtf8iCR/WH26FGYTbk8Y5J/XtbYZzBIyu24pNTDuiDrLf5cHC5vvR5zIJVupzNPFaQ5gbQLmYxfmwvuzfTQIzUdVXYcrG962PaBhIsgX+V3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456e4wk7_e2etest","name":"fv-az456e4wk7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"231bd99d-1345-4076-9ba3-a0316576261d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08005","status":"Disconnected","lastStatusChange":"2019-08-08T23:42:49.093055","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b3760d75-c80b-4228-8c5f-325f314965d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAquGNcB//f9PjPjcGt+NPhc738StgmAxA+5ASq9grUWI5hO59uRAQpS9djLVZxoNFeq8Vr+Qj32k2ymXM3NFJMQt1tzAUU9uDnyKjbxZg9qMklzdrkrr0+4y6gybGUkOwCtPzZRwlKF4BohKqp++glquQ3bS/3Pw+H9T6QBIBGwS7YG+bKLsrDq/JQqhqOBAv4HgRXINuPVNYJxi327u0U8+nHsJX21aqcUdAoNOJpCr+i9A5jMZjVe3e0IYoOY+D5rbhcj3cai1kzzquWIvTISZGfmGHv/CNNPO9u9N8f+9xCY4TGY9Xup5hIoSjAvofSGifcXQFGRGme9PnmsdkFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24006","name":"0.3.1910.24006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db19af14-8045-4fd3-800e-d6cb0b7c9125","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24006","status":"Disconnected","lastStatusChange":"2019-10-24T22:30:51.5298094","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"0b8b2050-7571-4b19-819f-9dddbe9dbaa8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1mi5ZhuwnZCyYxqkqfvvaD7evwPUrIpTQNsbtaifPhWNbMx5xJHs/uBr3AWqtFLL+Bp9kqrgSFZE3M26xnThrnK9msnodsNGkJFtfCGwclhNcT4rBgQoi6A8jF06887RaRVhmo/0tKow7nE339ENIkFLFskcwofJnezbOgMUKgaY6PpPFvCiiYPUTfpc5lpdyCjFrgi+WN4GoGgC01jVz1BKV7u3vB1ZPULjhPwiVZ+3IvfVPI+4HBDg3SjsppnE4HQUQC5ILPR18mU4Dpug7HLF1mdaW2VtSwMnxhp+1zOb6IsfoDnm4Nu1GEd3hajYhGiIPxUrYXmZQUwsqLKluwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496sl792_e2etest","name":"fv-az496sl792_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4fe73774-c037-4393-8455-24e426a2329a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29011","status":"Disconnected","lastStatusChange":"2019-08-29T22:05:57.2823385","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az496"},"vmId":"54c55135-02c6-4335-9083-e223f2f27d65","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5sLhnPHfFmhdBaeHTzXdcgfy5pLpRS2yH3yDEtSXfirTpyU1QU41U+pWQlp+LCK0RnBfvMLzztBKFofkgIQQr541BMKnjq513Ix77piuoLIYzPQYDuRbj8kgp1bXbIVZDLZ6QFPbYhRkICd4hC66YFciOnSr4fdYDGPANz/IquVU1j47tnRXnyzZTtKjxsBdhQgqIUXQcHvpZfG2Sbz8gMdhnPCX9Es5+m0JdhhPRbhND7J84r/lGgBMJNwaZuV4lUnUTngYHN8cGW9s2bDeMRUCTbXppDd8bYdp2m+OiU5wWfcYXZ/2WZL+5fK17GKHPXDhtEeGW7sAHcYqsxksAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458ogcbh_e2etest","name":"fv-az458ogcbh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c790b4d2-1dac-47f2-bf2c-9dfb958cf4bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08002","status":"Disconnected","lastStatusChange":"2019-08-08T17:18:04.2414579","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"3a1a5bea-ead8-440e-a258-bb7c03430b08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3jMKO4fbzbMK498UfZnVdL9kILLym3L6jzPzGZALw1YO6NzYWzslUtGRf06g4DwH3B5bgIjvpIOxhYnWynJ+uaFdRdAMsSbe2BYJKBeMKpWVNdZBuaOQitqlibw+KdgsWiWb0ll966+yfE/eYlRNseMJDTeMzz1EP6ITPaFbkMITcHJPDYfyZxoq2yIVg0SQDfgDGuwNgRqQOsU8aIWTtsQWZ1dU7/0pnifqxR5kBzrGw3zgWfu3TuT3jIy/8BmGY2SclBxi1egAZi12B/aJciH9YqJSV5cvQ5HKPKqzpom94foP7mZGH+XM4RVLmm8/TCHMFFu6MobdR43WwZvYowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456uxdc4_e2etest","name":"fv-az456uxdc4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b0c51e0c-e39b-4c5f-b458-4e754ecfab09","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20001","status":"Disconnected","lastStatusChange":"2019-08-20T17:16:44.6457814","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"49c9314d-44eb-40ca-8e8b-749548e39607","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtYkLf7XMq+TulW6+Zw6r7VBBUDBHSVg/9Lv/oilXS1ZldOxTHQuQHBMJCVQHYk7HAtSybSJlkabHPSSRRKhhU4fE3tN/2qi+CrT8cD3yZTYo3A5mjthGf1h79zTJvNRAapB1QFnACvUwAo/e6pTOWm5YOvArMj4CX7xi0hDGw9AOUbJ/Ru+gnYv8gmyrrjxtir5JY8H4F3SG/1bcdvdN/a+8AqOq7T6N8vt1VcQJrCBaATOiDT0ZOkRLdXlFWho96CMP6Hlz5RyYBj84Qy+8zbOr6/IkesuLj0ojWEhOZRlA3Uv0ykZDLyDORVf9gqDVxKA5VF8g42VMyKeQS8z3zQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461r0k9i_e2etest","name":"fv-az461r0k9i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"713cc51f-6e50-4107-916d-16ecce7753fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05003","status":"Disconnected","lastStatusChange":"2019-09-05T17:08:50.4581949","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"4d4787c5-eb52-45fc-8755-d2b68ad21b1d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtOwAsSCyTbnY48tUfgL7Oo1MhsOKnpTJqCqoyJx4PFPWFoBVNeL2Y0guIzZyEmzCe7BfxIpNsoGzyhPSkRmTxVnA6ylskh7jAxaenHV+1Gygokc4TDub46t7PaAKGBVo7YCQ99veg+lEcwwdJSASpE/92FTAzg18HnyPoFfXPYQEb0ToKyssUAxlt/ZuRkJSrsH4mm3kTL9OPhLP/u+oxstt9+pfElBie6VunomCVjcnZBTnKGkhLhclfH1EixWRaiHTpZWyHog8LCQUxfuELBso3vlaW3pQAd0IK8tyNPezfkMe6OKJNW6B/Wi6mQ7rno70kBz0MmStN8ipuojkDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.19002","name":"0.1.1908.19002","location":"eastus2euap","tags":{"tag1":""},"identity":{"type":"SystemAssigned","principalId":"415b1f6f-c055-43bc-918c-428b009c5bce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19002","status":"Disconnected","lastStatusChange":"2019-08-19T19:16:36.688436","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"04d3c91e-7a5a-4239-97c5-dff1a8a5b732","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyWxtvWHxp1hGjDmbCdys/UisXSIMoqx+Fl66Jv4KGLyjRe/iDUP5SXcEnaOYX65KjlrcSjPAFx5TG6qo8gIulAHS9Sxp2A8j5aWRiZyKqNB5AgquCDniQew69UbeAmTocYcKibwN0XlQxoxtbWhJN9MTpzy3UGKBQqaKGdiTefxEFtG2w8lVUadAzI0TJ4WHBRaladJmtoOFcxe7raAB6hYvJxrqAvLVCrQ5XBm5PkOR+7Mx3PxVssa01kg3xkfWghMLQKpN707JG7xKl7vDmUuLhP5meftVKHsqJgw0DOQyLJxL0+yi6+B/7Og+JpfHlUlPLbRf4G3gh4JwruJ2DQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496vlwc0_e2etest","name":"fv-az496vlwc0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"823d4620-48af-463e-9d15-ecf5c48fe06e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26021","status":"Disconnected","lastStatusChange":"2019-07-26T19:05:50.8306893","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"77ebb6d1-4970-4863-acff-ab6c61a9db4e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuQG5hCwLFNSghS3VqI4AdlOF6JTazBuEuGWWXKtExIEtyKLos/OWd9O8dR5L+6esBekkiwo1lVGBsL2/NnRVVrVo5p0qxfFDjq4MzWEte2bDL+u47YSQwQ2ZLEgApSm0VlHJCYvj1h34gz82A9IbkYGxuWIaT+6R8ueLDfCue58T6uc1KcS+d/NroX5dF+qyKLKlWAV8MpQj7UVOp0tbS9TFQ4cmCXmtNn/4VT4U2WW/CEjg9P/d7vE7kjTKJuaRNH1pav/Znmk/5/4jUmbpTLN3s8SadooIJP6UjZjjISAocv/sGadFkGm0c7bQlz7KTsxL7XVRh568lMwtE1yUgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456e52v6_e2etest","name":"fv-az456e52v6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ef26a6e3-5c1a-4c19-9ceb-24cddbd22e29","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29002","status":"Disconnected","lastStatusChange":"2019-08-29T17:16:57.0662992","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"911cd5e3-3abe-40c8-b9c1-c85a18acae88","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn0U+R7yvM2FsmxtHIM5Az/RDggmqm0T+YjHCq0dcfhFzi5xECxqKs2jUxMHtZ52buth6ZpOIfcmOnYNaLk8dTb6yW5Kh7Wnp4afVYS3SDYNRH5bC2e+CbgkvDXe1zCYGJxcl0VSw45bIssADRpFF/43W0XqbdybV2exDNJSaj6b7k2h0tJ6D80t0zelC4VdkvXcAcvhVYsLG2d5e4sPmLOJp5V8nXHSaFV6ptHQak8kEzy6nr2XHVryRZuNJIjlb97DzdF3G3HGysfUCgFZKH/6cJsCVMf1yxFLOWjBhSag3T+uKa1Fj8j49//4HQIj3YewkiK+ehxSUbPl6TVtcYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.20001","name":"0.2.1909.20001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"12d89663-c81b-4dc5-af81-0198b0cc8c30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T16:22:49.5482724","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b71c21b1-8ee2-49ca-87d8-0d0235271c5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzIOk6E8nWPn3MDuwImRDJLOBcYP/G3veSf+WkIrkec1GqCbk/yhqhbvtc4VnCtbNYw2L7vkBQLOkJtq43gfgwdNrYpVkza5ZD6Si5uijFdChi0e7R6dMR8aMI1koRhQpkZYZHpcTrHPq0IiririF+6O9kasWMosBfhAZMI61RMdtCnEbWMvZV5v0kLZswUztSR+s7R79t167Of+3HK+ce9OtShhN8jbOmQlUP6CFlNuveqKGEw8gwy+AE9vpKlgHAZUuSMOQmpUEWw5upMle/LwkRJqs+WiDl/60p4dnFQiUZVm9Ui1BVMajg+8Ym+959hlPs5KOP1WLoL7BiF+IkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458opquc_e2etest","name":"fv-az458opquc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1144bdc0-0208-4aa0-af2b-6d3eb11e28a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10002","status":"Disconnected","lastStatusChange":"2019-09-10T22:27:55.9615849","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"c54f9221-8c6c-4cd5-a75a-ce99462d205d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw8wMzzYrTnfrFhV5yCbEm2WUHOByr72QTwf5Jhw+pEfF1X6dVDrluk9B/3A2N82Tuxj0v4wyDVpsqeVR0OVBx8LFqN4Z329S/z9HxxUpqlY+iT0QPyIsFp0rAIftkpSNeY1lWW8b+HpxABx0czEIce6+eiYdG21KGD3Hxka95o1yO3ejaw9JLrUVJhnzSB4fs+IMZcBCYlMyl7x54fF0SwMk989qYEqEfahonQnbB/pnVCscjFzKGvh3UHYdmY6znY73p63/VoKs4iclaztMLrGobHpnv7QzjgMHeuirZNUyk+0yrQmYCHxHDtnyBWGmTz4sr32lAtSSg/9pvQBzcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/dakirbyTest","name":"dakirbyTest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2f03a74c-5bce-4b4b-8049-dac8a77cf0bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b0ca10ea-153b-4443-a1e9-51ae055d814b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4iptDgaNQMulVY/C8xjgzZh34doUFSJNW2nk5uMn8mqNcTFrXJz+JSn6e/P9Bz1ChOlxNTHSu3IvaKM82uxVZuKTd+ynWionDrKLF20lCZgHoyx0gQRS4mkYRf78IzkhohFXFoloKfRW9K1eIi+1pUWEdANsCCHEwwSGFtBn4ZRJU0bXNulBOZgeH4Lh5rlhgMrPt6wjDnjsbsWyH2bBSm9Jnw6weULgkdK5hZONCDgd1Na9Nw7QLGfYUVQUsBsO4i61hqQTVgb5LKbyW2880T+IbPvacw8i2RvqrRSUq9/U5kAHTZS8uaOnqJlmG+xvsBXX5WfZD00/lYju1Y1UVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461r19mq_e2etest","name":"fv-az461r19mq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0213aa2e-994d-41de-a70a-023a58fbfd62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03006","status":"Disconnected","lastStatusChange":"2019-09-03T23:09:25.7444053","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"7991de34-d8d8-4a95-a57e-309679c8028a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4WiG6YRFf3yJF86DbcTKIpEUzkY0L/eDS7WogXwHJOPd9AnVhJwpS8PMawCKw6bQKz/xMNvF1dK95z9YYbWxa85qhN8EuKCnCmU0u5LKmq2pownNDggM+kxuaS6v6KGB7ffsMAlvxAgkz1msdoJvlOsWc4EFDvPZVitN01U3cT0VchwEmBmDJd3K4WPY1/xbyeNJ9yDpcox5kzg7r5H6ZmZCW34h7JiGas0DXKJ9m2nXljfnFAtGj23VHsjIWE/JHb07ejtI0iDOtnk+fv3psyKfcac30bZQsx/4iSoLhDIf/EtmM4Qn4aBAsiDqziAb0ESGZJpDq+9EcaYH6C3rIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456v0q3m_e2etest","name":"fv-az456v0q3m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0dd779dd-2520-419a-a27f-a305597f7d4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30003","status":"Disconnected","lastStatusChange":"2019-08-30T21:46:05.9495073","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"df4781fc-bc61-48be-804f-6893810a2524","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArofqkb1SWU9zyjFbVeTDDvfVThHfUbEWXNlep2ZLhtHYT+omL/XkDZXQ7QF2NZrwnpUdD6+gincllt560ehWsoHa+xgNewcadzJ0ClVsAuBCh1JrVbVdSrKq77Ns0UXOGsfeVMzomkqxMRvdEPZ5Xfw0v8x3GrK5ZC+GI0Igf+oxvzi4AZkNppssorxcwKAfsUxXToMQvS+R/Rjg1fKyrQ4pfdl4c2LhU7YJKRfGHW2UkOalPiLIEEKtgFiADN2BI7Ifs9YxbsgV3EhaMoObASXmij0uL859S6MSj177cDaQtA7L+7HLi2+/LgcWmxTypGhrTQjFqCkM7cTYNJegYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496woz91_e2etest","name":"fv-az496woz91_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23ea7bea-6217-4135-b624-713f3fd2c8f1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24005","status":"Disconnected","lastStatusChange":"2019-07-24T17:40:34.339088","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"d7c18ccd-8da8-4146-bc91-425bc530d300","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1L7hIRuVDw4tKzo7k4sFKDbOzia9EXoX/1TdqTThqUhlsMQdl5kpxOiVimCcrl/0RXAcwWnMCYC5XYkPpQZs61/Pt55MMz8V+8ij66zSvvXzTlkbVbrF8U0cRUo5Zu37iZdebR4rYqRmNPP/lFMMwRE7XCgECKgPpo2GO7mTjOR3EZq/LRyfAwvvokwjzbUluW/M9eyi04pzVdUaNuxUxURT7DNR24E7zDGzHLD2uMtWpTrvELiBKeMQ6k2UbnU3JbbevbuZ+zGQYdPYcoKxOyuQEdFM6MlD1dLrpcx8HXicb7bOFnU0E1nTE51q9+d6/mwCAJ7oao0094r7TWcipQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20001","name":"0.1.1908.20001","location":"eastus2euap","tags":{"tag1":""},"identity":{"type":"SystemAssigned","principalId":"4a268e2d-c3ff-487d-a265-c0e4fea011b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20001","status":"Disconnected","lastStatusChange":"2019-08-20T17:16:44.6457814","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3ee8aacb-cc1c-41a0-9411-89c1d77e3268","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyyXiXIJRAdpHBINTlq/RX8SN2WLWb8APceWhlqV8wdGdSuEP6UnggJcH7FcqiRhvtRqXavr+Jp/01RtbNiePtJjy213KR7ZbLGXd3QumpbRfZ1z6I+tLq0e6RG+2gtXz17CPhxUYJIctqXNxWLOPCTuLgqv/MWcK0JPgK8UGOB89rCn6tHGcFR73J+dzG7rTPZmG8KG2tesAQbo7T9dNP+Soq5Rm9Jtpzjs+p5v7nhOhHntWkmxbAUdkllZ0kEwumxYtP4RVQ49ZX8dlHCtNM8lBu/hZZksH9im6J4OrwRIvg6+S2FuIUDORlstzAW52Vyyzp7OeGpsLFxUrw14QywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458ow0sd_e2etest","name":"fv-az458ow0sd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"43d0fd0e-45d8-4919-9743-894ccbe53a8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30004","status":"Disconnected","lastStatusChange":"2019-08-30T22:36:06.4811305","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"83c56980-6fa1-4a2d-a723-1d9faac56370","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArT7A4VlgYYZucQZryYYtO2+vDW6HpnLkyGACCkmM2pFfrN45CD711ZDa6wBB89TvBcHR1/33cWcaRJSYFfeYKsOSY8fiFDB5H/a0OA1fbqsQ123MkZE73BoOQaCEbVAQJ/zxrdyYX/F5rJRVg0fhq/hxHWGHN0MvwHhtj1jIV8B3X2SKQ/n1fll8kGANoDjzKn8dFFnq9kWLfzlnkj9NKFN091Oss/8JXkcBYqKH3DOs+m1BmEMUM/HnXuPdW44yjsmvImvju95+0xFcV14UXp1Xyn8FXY2qtofGRH1j2HWrzLLEaQQ9nmXP/GmYLxsYMK11UBliC+iyfWtf1wOdKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461r2g69_e2etest","name":"fv-az461r2g69_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6f048a00-518e-4093-af3b-eebafdc90928","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22002","status":"Disconnected","lastStatusChange":"2019-07-22T18:35:19.1776709","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a17fad35-0776-4feb-88a7-68a5c9f78d07","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Q6B6lelocF28kPxQJlXdwacdkklmQomGPp5ZwVsAlAo5lkueD9jvLo+163sOyBWH5oc0hP2x07QPw0xPZ/PKepetaD6QZ1eMyCmmUOSNzcyZmeaWvBoXB9BRS7B33TOgpfxBJPdJ4J4PZKNzjZ3arOJ8UK9ys65tvIu1GhPOHnfUiN6c+S0o/iETTeW2Ki8hINMV77+xPhU87F7h8HxLApCESQFWkNSpR1YteCeyVso31hCiwq0BKePEI9gHot3pxhfDXp+qAYhAWk/uh3TpV9T20TisJeomP5le3I7C3IKKCdBcga4PCK1CfwaaAvUvGcCxR09tKULETi8q7jhxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496yalp7_e2etest","name":"fv-az496yalp7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1d92d43f-c69c-4702-bbf1-1bd23c771a36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01003","status":"Disconnected","lastStatusChange":"2019-08-01T22:10:24.82892","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az496"},"vmId":"8e0fa961-8f11-485c-9636-9917d8953e24","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Qgizl6Ebx3RmoJHKeYibNaIykhFVZj9kd/xnhRFTxumVp8QLSlpaCmOL+FPkls4UAimctj9ld8BRPI8cH3NNc2sJEgfuzyM8wAVj5VNa5VKLGAs7gtGYbe3BSkZ9Nz/Gwhrr+6Y39Qcm7JdV5vmRcApBYmighLVncm0XnAFXj3JHevnIa4Px81O2k5iYNLzJcnNhNyerAmhTYd8TtMgnhXW6UaNdHQpshPN1dYduEBQuXIx5tdUzYfT8mBgayFEBQ5hwbNk4Rmw3F3kJHo0fSYbwoaSKbJQfKqukeROreEB8JyApZPSoFvnIZ+Ai9vJrlbNsF5p1K3CICm3fRtVjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456egauq_e2etest","name":"fv-az456egauq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5d312024-6280-4e10-a04b-ca050773d173","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26016","status":"Disconnected","lastStatusChange":"2019-07-26T17:10:48.0263647","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7e0eb252-6aa5-43dc-8fc7-aee8eeb91f1a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1FRYQofhFqDCd1vTPMYrdPCYfJMYj+L7FY7C7ht/9LuSVnI69A9NpmbWISdWWINQ9WZYEF1P7aLMkW24Qids6PSrKGDpLAQKrPHt+6PTrrcgeasht2ei/h/aDSvS+MG1a/0AINT4/gEy/ww3TRV0ucLC6MK6rFOZu7stNMAvQ2B6T/0fYGGRl47gME96wflse5DW/UGgpLZlojKd3DP7amtlZVrvqjse/ixO51EsJyDeVMroYHWkxX0x2fhD2BjhJgQPX2TUum7Gz6EK2Dd014ET0FDxoRwbMowG3b6+imWUmqeWP/FigVkqT6Qh3n5kv+BRSyED9p93OkrtbjGUfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456v3bm4_e2etest","name":"fv-az456v3bm4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1aa29d39-8c9a-4a24-be17-cb8e9dc46949","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25013","status":"Connected","lastStatusChange":"2019-07-25T22:07:23.6898561Z","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c99587ea-4f33-45e3-83e9-58b3e0c432c4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwWUbEfmCRxuIiScIY2R+dAbqLkTm6P2IOxvVpJvpiWqaUHtElY6KYywOd6Mn2IWUjvPnVSZpgBugLiCIiybMQHQ36FGwUAxhHhlVjhKWYqt4L/TqBicX8CkCmHjvYfsU5YEZAb2osNIZ5v5/TRkus6zfU/2XH4GgaXrqW4zlUYVlQ0ZNqR0t2FLIAGkTRgqioEFpS2HL7mPTf3PniqbPuxDRPv3YlWonRqvYpMLQxSkKK4vleLoFxaEmnmkanjBKGgSHXwaGjQ96fKUfJArd0VtumWZsP00L89ymZBeFomTyxR0nvQdvUJ7RdY3CifoYLPKm15qlue6dWXb/1z1g4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/farehartest1234","name":"farehartest1234","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5d9016ef-4bff-40c5-bfb3-22af7a2ec1a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"37c8eea1-7c3b-4d35-8ae5-9a9a5f1d2e91","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4Y+Xwho2uPvbEiw2/CC6xc6quKtQ9EPXIfLx7JChGin0PSexAGP0tHEVmFcIEbI8W+hw8dhMgHtobkNAElHlb02kGRJKuX//UmDzusPpgOxPcoJ3IwwHgqouW5P+oPLLB6Bc1Z+VkcLoCtUU34MUa2FB7JjcDkNATsnv1+9JjfmJT4SlaWYdwuDkNM/R5F3EayR9HoGvNQBOgEVoY/WyPINStPjR29QM6QKuK2ieExKdbZmSsrrdYnoeMbbA39ZaqsFJDKeaLKXdkWPvcYFlxSOmdSgjwU6lLL9qRqPeJ3z6m/rsYBWr3AZdu8F5E+J/0Hf01BsqlMAy1qRpdLM9PwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.20002","name":"0.2.1909.20002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"162fcdf1-834c-46fe-9ee8-a1e9122eb5bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-09-20T16:32:49.7486435","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d22e5089-7270-4a89-96e2-7b3593aacb15","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAulzUtljtc1eJbULXd5ueZV5wUFDudaAKq8IivgBFf7VQYKOZ7eOQ7LVXXAzG5DpEflokCytzjriHAP0QhmM5HTx9po0kwYs3LohhpafX3XF/L1ixPhQfvFlALDkcENiaS35Gug7AnYQ9IjRewKOKVu/AWrs2xnBO4VyWLjM4ZV/YPus+4mNRhmM6WL2M5Fj8pCOUhmhQNsBLJWwkjBKmBhxl2+RmWEZPDnYiY0chdvQEpvOX6BOZ2KjCDlrM3N/Aq2MUTy5YB1kgTzGitHdBQqkKrniRnCWceZJ3wKE8BfyLtw26vI7HAuxlBSaMVy+xM8rXncKj+SeXtReLutxnNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458p07vd_e2etest","name":"fv-az458p07vd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c66245f4-c06e-4be7-b29b-7112923ffb21","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22005","status":"Disconnected","lastStatusChange":"2019-10-22T03:51:28.8010301","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"a7f94e78-2e00-4b87-b32e-01f1a48b2bbb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8X+P1MCI8IR1EoZZF4LkgPQUXYeO6qX+Nz7rmi4o8hSixfMlrzaUXwuIxuM4Ym3qGcA5F6izZGyBG7l6J3lkhyXiLDXxCE8fxezjvZwMvgheqFqkWfuemBrGy3VFuiDE5zqBL11KWOh/TWT9wlxll0ykCFIXZQdb6muevU72i1KpIyZEM1aQwnBXxb3ARlWEJHdJHiWJ3M0zPJsBtwfjXC+FOGSBeHoRkpTxmFqZ8racVZRbWM2DoGbCtTHvYXCQr0kDRhvvqYEVRzZg9+rFClY3HykwhbVcpXlI2Xqi35RFQITGpcFVjwXukCgvapwbY72GTgxg/+SeBCOrtDAeFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20003","name":"0.1.1908.20003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"088dd937-6838-492e-b5a6-a4a3f37ff664","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20003","status":"Disconnected","lastStatusChange":"2019-08-20T22:06:46.5470254","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a4ed6009-7b84-4b83-97ca-dda5bbb8805e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApmpsm3gAuP0+2QKkakkiCr23wvDw3519OF0oEM+SFaxtx0xwgTakwKCUMEiwQyk/a7hxt97jodscShYTm6Gbzd5rDYRONzwjLYcJc8pHmbfBcPNHbMdOdf7fK1AGPpG7wGf9S3xc2bK+6SL3rn6eFX1UdsXEuwEUC8rf3LYHZomj6CNlDnpotUUmXIVUsftFErvEO7QlVNZh157H2zZw1uEV85bEv+V5gMaaFST5vzDqCil8NuEq2gPVUdDOVi5/e0TtzUjVICEnEfuAzaRn2ftulR1SzoF6xrz1n5vHuVus8Zc0gLEuE+WOK7e+/hdypUjG6oG8rqEJQym4FIyKrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az5061jsr3_e2etest","name":"fv-az5061jsr3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2057f52f-7e12-411d-bbb4-2059ca9e161b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26019","status":"Disconnected","lastStatusChange":"2019-07-26T18:00:49.2623425","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az506"},"vmId":"a1e867a2-0aab-45f6-be67-3b3f230eba1c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvBXEf08gYVHckUMoHWkflK8fonyJsha7PRBTsXTpBgqaNNacTEcRL0WJtENNEtFx34nlugEK8fjwDRGN6NiY0YNACRkMYUvXRJlKRZcxjLTInSOLZJdxesyDelFy6ywGPitseVpKH1VTEZ62y7GGtVa5zrdqKYdwLb+vvdztZctGjlhTKrnMr+czh3feVtMtaUyjqke5VfpkXYBsrrGJ+m26y3jNlVdb9oTPudqcDMUf/UsaJ3PX3JrRnXwKOzZcL8qG9Y3utNscFAQ57kmZx7KG83paVxBN2Z4k9ixO7szw8tWJxAbu0ix8HKuDO/xmGbusJXVzuzHGppjFssArvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461r4mdz_e2etest","name":"fv-az461r4mdz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5aa4f0c0-6ccf-4382-89b1-b8c46bb3d9ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18006","status":"Disconnected","lastStatusChange":"2019-10-18T18:53:43.5370511","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"def8bc56-d367-47f6-94b9-62448c7138d5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwTn/MHD5oDQvZzIT9tSY8SdMRl1Y43g7e3XfBMNBlPCWKDSKNDppbbx4EuzYzusAMRkPJiPJoPrIUBHxsu+5WBbHp0AFdR22CTl99ZAl/Olt5YCQcl+s6ebK3o4eEgTZiT1tQOTyLD8jx0AMKi+MTtLpJWs8UNy7suTMBYLCiT6CesNJOQyQZ8aVjBGYkFNhoOezi7hJu8naUBjJLxXej0uRzdzAthqhqnIFqAHupPAIpzNeabqN56mrAqmM3oU92FuzaTlpeODoRqpM2AsrS37sV49fisdAMjEO4BvuHlf//+KxJVmyxfaDb3z30LQR1dWGM0E0J2SflBDNNCWkEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fr_msft_1234_aa","name":"fr_msft_1234_aa","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f8f4a6b8-e5ec-40e0-8eab-b757fb49c835","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"de160f7e-2f9e-4826-a932-097bf0c2b0e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx8+M0LMrhO9JLz1s1nw7Vy1R/dLE6qMX2dy5xH+/y3zlGm+vc4vfQsjVDwy4F6AP7ax4YeZXbc4RMolRwx++XhK6uC1Jb84sWWl8oBX6eqdmhajpgoOEFL7/Rm0vGE4AVkRFPmYEgWxf9fGvR4pK/2kj6z2gzQmCPcUqWcCLV6ZwUqSGsz4MTD8sR9q/Ty6ohy611UWFcFUWVyMIuTy46qOaJ7Lg/60jmU8uLpzI+n8IiK3MV9/NsvvON7dBfFHCGiQ7lCYPy8rGuiLgoTr5CpOpSjCpIz7TTh13e/Qya4i2TBF0mW9tBawF/NoYiXx9jCqWLCi1mJa4wO1njesBaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az508zljwp_e2etest","name":"fv-az508zljwp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"988c52dc-d331-4b83-b20b-f1578b6944a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14002","status":"Disconnected","lastStatusChange":"2019-08-14T17:47:21.5664194","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az508"},"vmId":"3fb5baee-14fd-40bc-b871-bbc3cfa1bb44","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwnP+amm9D2+74Odxwf3I1Pvck1bvb0j/3US5tM5nF+eXS+Msi6R2WRriZvnLXXxt+QaYQlknTG48zZ00dMiT+CVh5TY3r28OMPrCBrCz6GBzQA1Krlt3mxPITFuKMZ0j+d3T0kRR2U33as8oRw1ecwO9fMRTixyG3XuvUllsPzgU0Mcrw8WBxxHb7jdYQqBS4NYuEzpvJO2gWU3lYXMQR2NJ6Od+4IHzgidHgVsKMojsQM5nHNStUoFOPDoktsHTUiKxwknZEompPjm77sNysj2SCoccDdncfbOf4QH4e+44Q9fl0aXO8zAeB+RW49mIOGpmCLF8CXq0ZeH9u7qxWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456eucgj_e2etest","name":"fv-az456eucgj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6abe18b6-ffbb-47b6-90ec-0ab84b5a9171","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03005","status":"Disconnected","lastStatusChange":"2019-09-03T22:39:25.3909189","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4e8e42f0-9c62-4b2a-80d7-817df5e24b4f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArh3BJLk46BzwJHHqKMizogsuUoKZQB+bFp1oMPgI/IPExCpZldAPJxppZKYGPtVX5N0W3uh7fbf4mRernOzjLNYhWwm1gBjxEFJd2j2U6uCAnhqvWVGHDjf2eT6LHEttElKrQUFUeDBj+vejzcNzf1okByD0u48JfwWnpsL1rT7RtEE4Ay3FAGJyE93NPRW2NKsV27RGkh9Hx09e4QYr4YthoQ/B4qURbPFQojc1onGm08KeTqvXhK+GvxrULbnbTiNBFe4wwPreTaskU1NH8tSwnYkXXawSlbHcu9EKS88Bp+AN3xxQjY0Gr3z9MZrevUQr7/3Gbyl7IGlk2a7iqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458peynu_e2etest","name":"fv-az458peynu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8b56b643-cab0-498f-8993-7db9ed5476f7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.15001","status":"Disconnected","lastStatusChange":"2019-10-15T20:06:20.4530384","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"60bbae36-67eb-4744-8c8c-ef66fa0b2a45","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApOMQPpw5Y7JjLgvyK3DGQsnNF/vYFMoJwxB2nZ2dOo45nEhWx81SNfFKU+jDfW+kmXw7efUQ6ceuVXZW9iafzmQKDGc3s358tAP6uQ7Q38JGByfPKY2rahIk+2wFoDY5v7COgFPKwIJjbfBHqS2xkOFpsnAc7ODdeTGgMyqZHa45jJLatgBh6m6M7Z3wn4pJY/6FeiwxmkWcoWixx+hRWxv2VN2x6DWP93lQIm/x7EpQ66M09eDcKZ5rjmmFQ2yWPIW4LhH94zAVGGfQZLKULkWDGderuTyj0s9f8m4LgKK91it/YlxDnN0FiFIg9CdNNbVehE6mgP9lWlEdB0IvOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.20003","name":"0.2.1909.20003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7b986fd6-0cec-4435-92c3-13c4b1e363be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-09-20T16:37:49.8481733","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5e109721-2d91-4c00-aeaa-d11516c1f1af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0aYVHxYFRp0c+aSIPs8Y87870GVsNtsR+UF3AvRSXtpHSAGuFzAI28h/ZX+guWILCynShcYSJgWOq+1U9vZ3Yjwz9CKswx6wOIFJqddRt7MvBpAwQamf33uxh4mlfkL5uDduoztrYYGkRS6wbS0BBfOaasoiCXB9sionzabuJikLkyaebdOaqME+qY5f4BJsEKQ0bGITVqveVzeXbjAr7lMLOZAk1oOkjsrG5HQ7lh3I9vRG/ryqHn2VrTaL1WS2SGBxDPdB48v8h405SM9ElVZ2P+OPgYblFRg+LxMNYQzsGk+qfHUm1GCotb+kzvj2jKNbHAR7kWugtxe5X/nJywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461r5kq1_e2etest","name":"fv-az461r5kq1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a97e67a6-0a6e-47bd-9fcb-d6dd8a3e4578","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.19002","status":"Disconnected","lastStatusChange":"2019-07-19T18:28:45.5727419","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f3c33463-d9ee-4db5-ad13-8a1b3587dbed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqrVcIjqg/AaJQUqqcy/MJi2ujdmw9K08tgObtvGK5pkBi6aE+XlKVKHh+ozrU/14AKe1ibhpqtAOlRn9SFmQKgzcoCs16PZz6Gd3Fv8Q4KhOS8cOC8RsW9DJqJIXOPGsz8XZ6MuwvZA+tBooo0K1/CvufLSZ5+Mvj9KEuNxRCnLja/TaxN1HqSkOByFNZ/Mz5SqQzfiR98PNTzNLFk8ziJhcN/SOYJjk9iKPz1pxFrhu9x4n81jj75/ge9DNaLLT0XPmTQ3DLgRY7CkYsKf5mAm6Qk7Shfw6+VLtthdlVVWiDSf/QW/2wGINEMv+iGwqK1LnXexednf0b5yznr3SDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458psyvr_e2etest","name":"fv-az458psyvr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3455a138-4b2d-4c13-92e4-73aa3d860a3c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22001","status":"Disconnected","lastStatusChange":"2019-07-22T16:30:18.487134","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"1efe85c9-3347-41df-a7f9-e866221274de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9edwE/OyMBbLlXZqS2MjXzeMgcQVYUfV1XQXldPpRiYPLu3oOK5g1faL98fDjJNGl5LIHUkBZ1SRT5XSR06E+9ITzv1+t3Sxm0pejT25zqVR/YEC7cy4lhotmdSAoVnDiJeEqQVGyLOr5GKU9UkJ/YZwefkzzthn4T3gUNPSgks4wvsK4EbkUbL9Xnac5vkS3sTfkrWwMX4/KTiPEuvqgzzo96fFnmtg+Vhzeuu/xxMKCCiAJWKyqhbd28gFnqzLuAGz5lmeUyakd/ujBXyVXD22m0Q2l8T/KGBjPsGHguZL6IfV3KEWi6DHhygImXWFX1oGA3gEG9H0ubDn6mHbRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20004","name":"0.1.1908.20004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8cfd7d27-ecd5-4e43-b265-996861d8d9f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20004","status":"Connected","lastStatusChange":"2019-08-20T22:41:58.6766096Z","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9be3b774-3a2f-4976-8616-86bd6570175d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvhtx417B78FA/TdX4yOc4Q+Ob6TMKzswzIPlieoKU98FkV5imJFr4OG6TxM3iijDuaHSN/8lbP5yWFeDjiJ/0zgyhb0isbX3NqHNoh3/MPyBgWKip6KcxRGR6+KWJOHehzHYWVVlknuqULOF0oHVyuGUvwHy3ctRkHN1XVBgQb9+I3Dr2sR0fW9dYIRPYyarXNFrlF5IIKx7pCdb1d8TklRTEvIDO+Rd+OU2nGPAJndvrArnVq2re4/oHtN2fE5BUZYfAQIWjNdbGFzcNBkifHR+td8dRKuOJkduijUVUZ7x7hLF+W1jtuHmaWvjpSELxQ7mHl98qIfs76F4uFvKcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456v6eho_e2etest","name":"fv-az456v6eho_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2a8df5d7-a98b-42cf-89bc-d17491eb8ef5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18004","status":"Disconnected","lastStatusChange":"2019-10-18T17:08:42.7692846","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"4712fcb3-a447-4d9e-914f-8a87141d8bb2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvUZW3gY0ZWFfrHxRyUmZaAJfNUoVKtE6+U2VT27S6vwPTUG5hpNawJqYKuTSIez6aNT+HXHkFIxumcPUH73aN5rbQqiW5RwR38RDSMJE5TpXjn+39udaNFKW3SgOMMq4NFbd9YhaWHzi3G4OKhhV0RHVPs0am8BQJsj/VQi9H2E7FjIrferrqKU2raelWMrngQWd5xN77EvSBXFbylfM0xZHPDPBvDb4i1HqbYf1227YQ//MezYBCJm7lKvUg4eWpapxVRshrGLNFJDnoU4JMBzMQqGmOK55AultoHJxZhs/1YvRCKufOWw++MljhTs7naJjOWpXgqDzu7VPAbh/9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20005","name":"0.1.1908.20005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97064a16-1eda-4a2b-b58c-a14034a21ebe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20005","status":"Disconnected","lastStatusChange":"2019-08-20T23:11:06.7719795","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"13c96c90-ee12-4ac0-987b-6f321d4b1ff0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA27MmOcmkRtqFWIXQ/bjgt9mXC27BScB1pE4KnlYXSugyVKmbP8jYnL6iHfLccgA5LFp+JZcu8L7cHAokiwew2AjBaXW4yy8eW5pCiGNGG899uLR2Q7Nndjl5BLRao+Sd02Ew7rp77boC8ku3MBuGlA31MAOUh9DWtZpPGAztne/tTBkyY+BE7VlmemydretdjdOTCtYuI6UwUmHPayL/Am3r9rbb7YtXRHn1Al87mVD3fd9DBqXmmOvbb68D2KvbX1EOM0Ku7U9k2bHdw7tF/wT0iWi6MkFuvJeU6z60pBUV1tkeyOgkh6lXfhEH4vwLTdweMFVO+puIJtL3RIZGQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458pxnt3_e2etest","name":"fv-az458pxnt3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ad162f7e-0c98-45f3-bdfc-160388febcc3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08005","status":"Disconnected","lastStatusChange":"2019-08-08T18:51:02.0733127","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"c2650270-4e7e-4e57-9d7d-b12c739bd15f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuPnBzgqBYQ5tOSFTf+8/RY0OcTvPa3d6joRT7YCO5/mjcKGXZdeLaPpPllah9wf8daIAfj71QubwbU/dnxtfsOZnGFRjiH1Fxj9eTYdCTEVt18ns5474LDpyuyG4EO3VEV4AkjK34OGgrJwL5K7i6K2JLTzPMYjJOBPg9Bm4n/JHerqlIMXR+Ig5pm06SdfqlUW1T1w7IYRlHOqqmu/raf6XvKLKvCMPp16n/iopScQ2fj4SVl1OqXDTV+jBS/O3Qom/UJdR38N5ZXBrEnOLSdTKPKdNb7iicWt/SQ7kkGAqlmOzMNvNHnc8cjlPsXDan1wiXUCGSh8jEsEFJETjVwIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEuhAuESqVh4u6TTbNECI1EdCJmSEYFigSdqq%2b%2b1rSB%2bKRvjYPmN7fD6Uhl%2bHP6KpemXxoYSQbrOUhBlslIVyGoa2X%2bh6nTd5yWveDLP8%2fbXjs0LWev%2b674tOtIOQTa%2fv59xyLLfQjraXa5btFJrrWJ7GydEr3OJgHvaG3nbyLA686%2fUnUXSyl8dh9vC278TBl3X7OnDsVJxEw%2fvfeSu0MzKx%2bD0x7jzNcDWDaG3Hz4Jffv7oK9FuZcWbe3VOVYeqhAyji1Y1YfwTmrAA8b8rlGt4yvm7adO1z%2bD2qSYmA5WYyRZJdwaibeJP0Bgdlu7QwTImC58R2fO5aaMXbUYSlEsmXk4XYCGSozN2u8YbRAiq7AHB8YoQoKAMRAj%2bhtIp72UZNh1pVoRjIoicW%2bbYZwHWiewIzBvjFjdvN8y3ie%2b5aQlLAAvQbgAuABn4sLRgeYnGl6U4G%2bBYdPeXrmAZU2CyZHHJMBo9JlANwAAHSx93QBMwIHqWa0FLkHjvPNYMY8qSGGIW%2b2VKQ1j5UAGLGZThypdbhP44uft9Tg8DIXZAM%2b4CDZveGZAYC2DHqTycEMdhDFD5HIIXmBQgv1CuLm9K%2fiXepGYtvms5ceocd%2folb4SbI6oTjGceKJ%2bf%2fwE%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1h1vjx_e2etest","name":"George2-Win12-1h1vjx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aed0080f-4ab1-4b2d-aecb-f67944ccb4f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"addd1a2e-a5c8-4bad-a44e-22765fbe4f06","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAymTxR0j3XbJR8kd9EbVU3QEt3Bc/Q1MmwLZbn7r1mLxil8LSUHR0N5KPVm3KmFokFa8VhDw5+ORyfu1XuD0AiY6hwrcW3LLMsKZkMkRwPYZapaeTKhX0ytFCtTl+NuAvCGJw45XxMLb6SetskVr8gAGZH5WJ+zBtXK7sCCtsOKSidozKcRFiRVUXMeQiVUHOvorEDqB1nu1p9ewGXt2OtZZSIwNVp52BykIdqDoOfberMsVtBX7/c1VkXscjqxdPl+7O9nuDQZ2M56b6Z0irVcOkj9waKfaD6pLo+LLULadm/4p8n74w8xQf6xGHg9PcKC4kEznLRhR8bCOPXR3H1wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1khp5b_e2etest","name":"George2-Win12-1khp5b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ea761bb-f064-4802-8438-cee6b6f80843","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4ff3dc86-ea0b-4dde-9d43-29239c49def6","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAuX8T1cpS8EOz3HwjaLOhABDEADQE7Tf+iWo1uw/eMMupYcEDzc8n07o68RKFsEDGDFfDMFme8NGez/tISKKAWUpiMvo2UWGhXUVMj6z9A2BdDvQjBP7uTlA0lnfZINNfKtjAWKCrmMgq3Aeb/uuchjo0CjlhIvpVifIqdMrO4S9VtE4hl5MhWOyMLRtGtiDIaeodIWwzpd7zRRrhcClSOWawGx4dQ63X99Yy6TTcd7MdglBkDLbdpwU+YTCiDOmm0cR9jwXhB9K6ZGpOMgfnSPeXeJ7he6DkmmfDgS/NiiNDK6OlNryzubPwjlydpMqP592oU72YoNMFAJnvcJiCtQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_CENTOS8","name":"0.8.20136.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8ed71f41-0829-432b-beff-cb332faa8fce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"e40958cc-222a-4504-8446-fcccf65050f8","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAwG6bRzu1HFRpZLKDDHwkZKo0iz9vFZDAQWS8ZcxjkVROoNdij18SzgYKG/I/PEGgIMGqOWjpwWVmB/wue7RWoJaw2uyr0ikfrCtEskawIdny+pcGKUddyVzHuOs5QBEUH5OMjCk13YViyw8r41894bUw4ptVMYHcx/js40/6Pb3wGCJK5NFdXo8ykQP5V3bzh7a5wEyijeZs4caJnjwiXfga0xBzn+gFceLRAjFBY7BsWPhzBshQouidFfvDLA7xt6q84xZLtV5O71ku/GQUtUCrsIuk+b26P7sUUbMtJ3ja98M36N8XdA3lkKA0EdOU7a/x7kYW1rTFklikTAiUawIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001","name":"0.8.20136.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"54911ab4-88a6-4b82-b0a8-9a602e310461","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az548"},"vmId":"40e6fbd8-26ae-40d5-95da-0b733d8a6d6e","vmUuid":"E76DDB17-07B5-2D47-A138-62CB361A95A2","clientPublicKey":"MIIBCgKCAQEAqn0KmWNXr7GbCJGrfGUB9pRiGQDtNNAKUdy4GsMhAtMO4cw/0wwx2Glv/Z4k/WjJ3c4Inu/VZlJPpkAwQAgK6c+vw4sj6kZ05CY7QseSXlsXd0Quxs2BM0qZ1rAPIKIKvhV5r8GnyrjrxujH6VppAmKoSOLwYtUM16rcvh0xjysjhlnuRQak71pM3femDErJ215gQoRXhZ9vAgpRzDGDAxiHChJnA0I1aPHs5YQzof902c18tyU6H26QEZiyAEKcXv/9Rn/gNgRm35CCKrEkSCuBPxjrK4YLTl1HiP9k6k2Zj1iEFbApGRsZRaGH4t6ozc55D+eksnpS8OrNEmkJvwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az548.zsjyr1i2ym4ezfv5jcqjrta0me.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_SLES15","name":"0.8.20136.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e08a86fb-45b7-4424-99be-e5e5c7850c4d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"94b1e4a9-70f6-4672-b6a2-69194aba5a28","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtAYds3gNiSD3R/zF61pwt5NgohNw0X7ABRcbDA1gPMB2wtiJ/Y2hwMOfyIOZCq7WJXSUAT9C8xCQG08Za5ms2JekA9jhxeYHUxrgZtkczvDYrqM16QpMr6+VlplKYkJFNksX3bV0C9KR5mWT+vH/byFYMpBwMsQoHJ2mRxEifjw6fiEAiRgsWueMuXlhNV9a9K1I4bsUtVmUgHMStRlhkFp+jsoVyW3+KkigG7bBJPl0WRBdfcBv8WEvXJV+Ik++Se5xeW72oO3ecR/wz+ycM+C746EXEFpGYz3A17CBobcs27m8mVKWlmajI3Xltysb6XYReE+hJ3GKFrG39y02hQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_AMAZON2","name":"0.8.20136.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53e4f738-7bf3-41f9-a29f-80ad0eebafa2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"1367e536-f4cf-44a7-a2ec-93ad4eceda73","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAsnC5v1UIMhuz7QOKc1gh/6Brp14QznSxVzfcYfg/2e/7g2Z4c59k60pgk1HDVplFFys80RKl1v3s2A0wRZWDirLiMUf3uAiWh2SNqPeXADjOuiXiSoqScHokNGFJFjQ5XTlQHDzW+fQQZfQlAgoevOLlDrJiD7GxxbLzDhCtmsxO3qU5pyE35A/BmStlS2hCO3+fZslETwlnUt1/bfW3HZ5qrSzRfRoocneBZrYHcXp5aS0uJltmDVM7WWSshPwCxxYGxIC/MQllGAykzrCiuGnjdpY4PJYN5TYi2NvVfYKiNsyAP9MBJUfrV51L+exA1FWpTS1U8e5yHzwgQQ+TjwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_RHEL7","name":"0.8.20136.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"457ae1ca-7911-4ab1-8d59-3ff35145e882","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c38722db-fa0a-41bc-ada5-e646e1722a93","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAuVTqYK04LGXY1fjj7ADBpDsyUmAvx93/SD9l97TciY24n1Y2JN007GoyvnGldKDXsPEvU2+V0mCaFaFezVV6132olOldSq/J0p6DW6BeRbtMqbiHHSe8fJuc1sOKH5Tj8QD4Kh3hPHo0wgh3h+DP5dSt2cdkmMOsBCA2h8yOFBnxntFQp+K+Kw5ta5DJeZZmAM2vVRxkjBbERRIe+O4Cus14TpZ1XDQDnvacKmZyqcJcApoi1s4CcHCA23k5ghO+yO2MT0JLFPZ764PeK0NgMFBzH4W0l9cxkYyhTuswjgMyXDGQx5vSWSR0Mc/e3KQn61iNuY9qXT7XF0GvNjRXrwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-19r8wk_e2etest","name":"George2-SLES15-19r8wk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c261c137-c169-46cb-904c-5e73609d1f81","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e8d4f88a-1918-4bbd-a512-1b195629ba5f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAxMfiv5ewZQsryHoS+HIrgc0my3yqGYfICgJQbDN5lWL+OpwFI0X9BJDbKQyhXMO/kuo1xU5+HobQb8KiBoYoaTyauWZajdy7MXGe9Fyo/X8Eb1uwoRIi/x70Tyqj8SQQdXRezvVoMausG8scgI26iacLGO+RJt8t3V2lqdd10GraqZFiI4dzmIBwcwzL3C3WWEPUf72vP0du3Wrp1so8TzrCfiShXWeOiOILzIOp6QJn3DKu4jbPv7gG4qvs903mGQ/PxLu/o4zcakJjnw8f2rgov+dRxMBCyYBMX2NrMG/KtZc86CE+hFNni8I3OTh2cGHGCBA2IhHC7x5IHll/AQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internfvtna_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internfvtna_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d5fc6b51-96f6-4377-9416-350d05e8e851","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"24ac3393-a37d-4eae-b4e3-b62a52352b9c","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA3qDg5wX/DbJFgw6I4VWYWB87iKREcBnTTGeSm37yVOP/GPKfKIqeRBJKsRawoiqHZ7jDQ87C0Hm8qe16NUiSdiNjq6TDNWjjj3xjJn2eOBu8MRmGqgYvoJzbUeqAlPxJV9jgGXhUZNRKvrOS9JjZ9BwdhrIiSPsCs8cUo4zYldC5oGwXoKiH0GxtCBeDVAzHgk0XKbw1z722/IoHG94l+lTmwAMZJCUC/aBY9ReoUKocTRA3Re/4o+M1K+yZuCrNwpVB6/PRxFg66fZKxZP1gPp0VuCByM5/sx8CQCXsj/+8kN2aljGxYqi2DeAvdnXidEcBsL76y41T6wLq7GSDYQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_CENTOS8","name":"0.8.20136.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97d36dc5-cdc8-4d5b-8a7c-e35c40752608","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"019484c1-494e-4993-871c-03619dea1f9d","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAo8ZS0QEtOLYAgkWSxQOgLJH/yqJlL+usRvFCuWghEi1sEBBb9gBkkQGE5Tq//sGfoUjvy+zxhOQBlGwMjFqX9JfY6EU0VzFbi5IL3+QT3uLWBS6C3fz1Ki4v8v4fPvRM/rmqm5YZYFM2WlUuW9M4+c5U7+xuQW67/CuujA70BlmqBiXl9usBoadAWi1I+yQ4ClJhXqqD++bvvOktliAxZXaosWyoXaHgFhj7pcMjAx6xNjX34asxdnNWdzhTbiL+Y9ASj8xNAveWuK/AYGQ5aFZjs0U21z2NCFIPFDBEt5p1GzvWcoXvitiL+C7bULHDBwGEG6HxZ8rN5AfUABlixQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003","name":"0.8.20136.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"abd1d548-b9f5-4ce0-a9ed-c2e09c510c66","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az548"},"vmId":"8db24f37-4d54-4acf-8b89-f96281b854a7","vmUuid":"FC224E98-E214-5D4B-A858-1E64FB792090","clientPublicKey":"MIIBCgKCAQEAyr4w7MSpNg0oQjhGSnpvRLz/fL8DN1oGVkmCwBmdPwrzhTFiih/g0a1orrJfHJ6OzoI+LZFyrMGjJaHt4YPmaEDwLTPoDkIYmoOingbeC7+9+IZb9Btp2lw3yL1gZqhBcJYGoqT2mLwBtDUOozaYjKnVL03zbvJNA6xnHuo8yrobOE+oomEJuCGSnuOSG3dnZnyjVudQukgMuFygdoj8rB/JYgFVSU2mxRHZj/o4S341GC24+cQ5tLBUuW4pCCB1uReHVO+Gd4d9ac5dedipCXAQ0RB31WZPjTh3cxfoHTF5kGtiiFlG1YDJCGfF4suluTRa53bR1IDPgpXXb8X+owIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az548.fg15jhqepohupeyanmzswwgoze.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_SLES15","name":"0.8.20136.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eecd24f0-0a89-478f-b782-631aa7579806","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"66e3c8f6-2721-4f7e-93ef-a53ae6c377ac","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAw7mBmYb+cAYjqJwmpG6wo0kwkyiDK5eDXkI/JMY24WrT56aKqhm7cRZ3/VgjuQFAe8PzGIXzAS8d/gwDOfA59b+Pn5qQSA88Ais750M1UWyIYIJmjulmMxdX/p7uUJdwsvwa5rfvhAhU0TesmXSF5LcjxYHzXY06fzTwS38pb7/odgbdGp75MN3mV3AW73BgdA2K3UtH4iuZg2BNPbEHrMKL8qr6HufNmq74X8wNtiYvIj38afor14eSIz3+nzKAVAmUPflIydG9Kt1AElsZbKoHnIPTW689VRfvIMqzv2BhcSjrC4lLNKQz5WG+PkhB234DtEuOkMMGrQeaJC+kSQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_AMAZON2","name":"0.8.20136.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a250ad0-009e-4c38-8c60-47d72d6905c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8f749e0e-0b3f-498f-a0e3-ccfc45fa2f21","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAuU9fK0LeLh+hF94FpwNbZG8yBi3pUBmo6iTMv6Z+vDWF8NOQaIinDyXl5IoYcl58q1LkqyH5r6xwbnmVoCXm0275n3HwqjhK6qmIBhHgyfW1XJfsIeoh5fzbWdd1JxDUXmfSlZrBtKZEeen561wU0nQOyz+LxmNiHNL+HwYpaZH0GLdx/42PWa2sVU1S8EpHWSwA5kHyCnq8/OvEi4nKpGz8zb44ZLggdGexy8KQ6MO0xvZxnwzkWi7ZwCf1+WVCDwb57oDxOyYjHBrFQblF4uEzXQZGTVtqeSPqod8XequLfLuZzdc1CRH4iTfMBws3Qj+CMDp6FXiMOp+L4FjsUwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_RHEL7","name":"0.8.20136.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d4146d38-efa4-47dd-8b1d-afc235c5fabb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"eeab2c81-b3ae-40ae-bbbb-6f9eb072d854","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvWC2Y9mS+BHERYKCpAiXhdMpVyem4aTwwEc607H+cz1E/EX1hMlMrvDh8nl5lti2MyIsAjpzEeP2wyBI15oi8jWeVVy00eSAMZFyY8yJMaXl/Skk/nJSoXzNk59xW+hTpIvCDdcgaz13ilNFG4o8HKcW5zBOlTo9eZjK8IhyjWWJr+D1+g9plivjgbT6/zGdyqMR4Ab5d8i1/PjqDy8gIw9UUFvRX0nsudwNI4E25EVJSKMi0CNnuW2JVBMHPhFrPA7vTDbZTgI6EzEEuHrMQ6GexVpZNaDR9ygT+mVOU565RnMapCT9zdfFoN96AIOGFn15z42hxOlBAlMbG3ykZQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-19cz62_e2etest","name":"George2-SLES15-19cz62_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98c3d359-beed-4953-b071-e3ebef8cfa84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"45665547-1dc0-4cff-bfa0-c3adfd8408e7","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAzPmetQVqm1DrpMpco0mD+VCh+47dSTSI87+fTEcC9Uvlie/disDHqXqRo7k5gEF4L5AebFO1xPB23hObSF+9K+ykmuG117SWebxKe9+aeoh+hBpE/NsWA4QtHOm/MhZOPzKigZTkLl2zstVieCMCHMArroSwOmHJKiqxMOFWyhSqa0QkTr3CZnloULgMXp9gIHp4f2w7nwC4tt6UkwT33BVuQIpNhNov8AZDyb4USi87alvgHF5wpbKkqd+XdjinXAYL29+Dk4HdV9Ek+D2wIsrtYcdnx1CNuwHIflXo6TwN8ZKUI0Oy+i49/RBz+854qFhQqJus75pbECDdNRZnFwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1pcthf_e2etest","name":"George2-RHEL7-1pcthf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a59d480-e7d1-4550-bad0-70a8fcee07ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"ca6bf979-44f5-4448-a09b-909861c20154","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtop8BcBqZjgMkCz73Iv74ZG0KTq3Opef4mIhIRqxR5NZI+C/x6Au3FZ6uH56wd+DgeNERbY+bQ+QQ2iBaRpHuISUhTosbDGKiUDepdZY+Fwr55zg9CMe49x9OVUPUCKv1KNvBg4FjzVbJhnrWOBF9tFYJddQt05RojzD3wDT0mRkouq4t5g9occ82RUH6a8zELN1gBKOCW/nGPZGOKsstgaiSLImjZnCO6fIl1VTDIZaSWb7qol0RC8nSxxHh3uJHo8tM8JOtptbP7zSvl9eQ/+Bz6aUi6YMIFSDbJ3YuZ2/i6Ew3woSoiXKFbNl8cQZIK9oXb0rEJsN+dfTFqvdawIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internxjp3r_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internxjp3r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"719f8c2e-784d-49b1-b4c1-47fc9056cdef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8014efc3-c830-473b-9ba3-aada79342bee","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAs0SwOfk7NkwA4IVA7/Vi2geDsLhG9hIYfJHOEDjzehxflH9JiTJKFHlasWVJet9VPfTol0rexqtBJJvA0m4ik6+YT2gAbFXCI99iDPxDuFW5D6yYSrcu63iMU5bzRRKJRJqhLOn2RuSiROJ6zS0sgMysDJF5AgaLlo54HE4uAUa3DpT+k915G1sotR6lt/5i8RNGpWi+z7SUufCk5sADMZZW6dkI3ElMh8wbYjKLBaL7lvi7J0/hMJTGrEqQmbbFkSa41neK90T+ron9TBbj2IzIRs2Lqbj58MCXSc8GnpFme4wv6lWrGOK41/VR/DMzSTkCnRnHfDUq2F1f2PVw5QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16hdpo_e2etest","name":"George2-Win12-16hdpo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5bdbb17d-0127-4b77-9992-9aab30a5dbe0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4fb53aae-e647-4b46-9261-c58488c83d40","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxsGj6vfk3XzD5cDQHBQ4UCMxohXxI4iUgpGfolBdZ8dBtOMWAW/ZGxAzyFvfGYhWJ1Fa0d+FhSijxih4ILQP4ze+Y1htBK5Fmpj3r2NoK93R2dpfjN7EEQgyBni/R3JEB5srP6cOH28rBvO0dxRIHclxNEfyfErHZHW5EOr4in0oBHBFQQoQRTT2oZB2UqxPeJ9RbkPDp5sweeKVVX8WUaXS4gIGwHlGMM4u+kCEopCoOEfnoAu+e6zCTWkbKfA8DwNDBBKjbABU7wxYBkcFxTIr9A4y9f90SjTpRZN6OQn7kJw+KIy8epBq2mCqgTZqY0RiDvJ1rSampRTEl95OCQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1h32bg_e2etest","name":"George2-Win12-1h32bg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1a02215d-7999-4df9-9875-5012a56ea170","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"544e900c-dac6-4fc4-b2eb-38c2228f09e3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA423hOSna5lvetTzdV5b8dUOGAUCRBfliMGmpciE7imxynNj/pUMjBCR6iSvfZfHWGzag2SViIDD3TEfTX++UeC7LEpy6YS1h6ZnmMCtAAPE0rz1TI987bESSgZTUvWEy4tXAcsQOeM15ilbq6unsBKJi35J1DskXKtYBEDz3khEWAk5M0DIybb6P7Y0u46e7QGwzno3iC26ntUcrTbyzQJrRd+Ivf+Vpm8m1iW9O4CwQ1Ps1QnVvkSE36RCIMJlEDlntmm7gal13tAqgJ9tVjWdalHVciOlxQa2TUhZBk75GAPDDU5Mskm2hJSCCb0ZPC6Ho/eIlYfogsL53w6YhhwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004","name":"0.8.20136.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e64ba1ea-cd9d-49c5-a256-552e36dea64b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"7ce91cd4-2000-4c80-b955-1625ebe6792c","vmUuid":"72133E5A-9249-0843-BD44-4404E9B3B80A","clientPublicKey":"MIIBCgKCAQEAx9wKDTbyQAP5uP596VvCEOAqT0phok+91l+jauVK78gQlmc/iXwhRW/3rCCkDkcILZ5Y3r7HRgOArainxXv5xYI4wuDDYFnvPfMNc7U3rOa2VE4QHJtRn6Ces7bgGG2hET62TJIJubNVgUXRXUj3uWquBEgfTkpNCtlHuRSaX3GxyCypIUtBJg0jZvMoGv3vdn26HtmhZ7wtvsVbs3efxZ8IvoIOKzCoX/u4pLJ8A3zg8MNAneAde4Sf/kcmrOh5aT/R6p1kCtTCe/BaJHYb35M7bbXNF/ihMbZZzIvU1/J2eT8E1i82nJxK5Y79nq4pzx51PegguCdOKTTlvlEQLQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.zpcne4xntavulcipgeiqvzfuxb.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_CENTOS8","name":"0.8.20136.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"363e8e65-f0bb-4e9e-b816-ea7189e73912","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"49d10c59-f995-460e-9e21-0e8fab19c5c6","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAtkahKnPfea9yft+0MDdflDdBfYWeThtu6P/J0QTs0jJqr/mJd0Gbe+j8g98ZDzatTJ9lXdqYs+68jF8V2u8KllPc5vYIvo2TTSGtLOzFKB62VJGcF2ysmpqkHrnnHWd/Dj8pDn78acwe5dG++7UogswdWztsLxDSAYm8PpGDKbXZBH6e19QD+Fa5TLE/szD2X3+jJObVc6bP0NsmGxiP5nUQHLcy7B27oCIBlLVUkZyCpjabf4siPGT0fqUjvuKqxftUxSf+dyv0rrRpEDrVouGOXX1rflssI1a9Zj9fR5NQru8fSh5SSszSk9i1ZA/oppbQkG4OMFctyqcX/jcyCQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_SLES15","name":"0.8.20136.004_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3eb80ed-b330-4e6f-825e-22f72318bf97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e05108bf-147f-43e0-a67a-d1e619acac0f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwflQG7z3mg7aeXHF8nmAaoDUOXozGpwptEw1Q3OYzVDrnB8kBVopecpupJS0ZbreYousD1UTJMYv4DCf28Tu+JCLCVEUV6O9T+eYudAhFpWCNj/9TM+qvOtgAH/oilgEvx2TKrkzV6WBwTs275oi4/xU66bfA+3zPCXJVxhNkizi8N+uIop+gOTBvzCctTsCdRYLfU4T6kDIuTG7pF4S0UKczfQrDnrcgekb4lYFJRb4ySU20Pefbbj4pHBj2BdF4UzZfBtUMGacZhWWc/re0h0GLQIERARr+Fe7fEStBYUtQlsbCh8rLB7eLxI36jObNe3zlTzKALRxBX72Sm0emQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_AMAZON2","name":"0.8.20136.004_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"14860c5a-3c53-4bab-bc5c-023d7a2b3145","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"860856e2-cfe5-4103-a033-4ed8a5eac018","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEApPfdU9KqAmiMgsmLPtlvFpTzyS7CPonNKZHPzt6YtDKxSwYCqbPUxQPUNjB+DLt1d3E57azou3bo2BV2hZdqabaVQjrC/0pXxJMo7pT70y2gZBJh1pC+HEF07c0Rld5g/mnW5mkfgdEWqH8DRbl+IbmjUzisOTZ+qmn4wzB8HRh6/gLz/aHO0wWpAlro8IqvJ5x0jfm31pwKF580jNXCBznAiImJsf9CigTNjVj/WsWCRguM7LxLAPhq5O5i+nE2S3nuqBcIbFOgkqtgUgftqOubQSfyMUwSlw2QQpP5kX5PvG6YWhsqtdfT45vjXrh5xhCLJHWJaX10Te22pUcrAwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_RHEL7","name":"0.8.20136.004_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2fdf0c08-01ab-4910-a7dd-a1db014ce8f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"24737347-b5ca-4ff6-9b18-bfa7969b153d","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAw3wZ+hCNJd8QxWHuPYDPd+iILnrkwALy/4oeE+3B7hT6d/lQAA6317KS90ZkvmPCf6DveUW02dAux/xWo8hRbxQD+4t/oqn+sobTwDr0zEsAjGqbBL42f4lSbDHdXtp6ZflzAZ2d7wzncijPLxc6Wxw8ENs/2CMhLFk5rjWXf7HS44XP6mtQzpxdXhkc/w9gYWIFL3gDnaSXeEfmmW33rsDIhUQGQo2Qu0X0gY+k2xX5Q/8NJXju+aG73ZXXpmDQrrY0d5OzSA2liu2Tll4FUPR+fuShUsQF5B7JE++z4Fnk4F6XaVEvT336cl3ejo4yR8E0lkEDEizRtrkpKxoikQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1otpmx_e2etest","name":"George2-SLES15-1otpmx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bedb2f6e-2c22-4c80-8fa4-0d9df0b71311","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"fed02961-8104-49e6-9652-7264271bdf29","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0A+8KooV5cW2ZjQxuipyQOEzOqYaVoePMcyT/VhfrjXs7VptLY+XYujcriN3zcbrvtP0C2qhZEliB5LX9Rr6o826U5r7DzFbPCDP99BgL4aa1VNbYOuoCHq/DZkrQLPOpOenzGHbdf7E+toYbTT9AwtfJyfvzkX6w0qLmC/A9kFrx9dgvvnSJ1KAZ/3tUOZspELbLDcI7W0rvTsJgnlkNnA8KJHl8QlzTbTozQLYwJ2RyHZnYrOm/zfkABNI1g0Jdax/DCXPUsjPZkC91DFgvF8aUTu2nidUwYjoWbTZ7efwB6aCdjIihm8MaxbrdJ9ILzRwx1LMjyyxsFALZ93I+QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern65zuy_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern65zuy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a66286ae-3282-44f3-bf41-8513dd886880","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"57ce28eb-d800-44b6-a15f-516da0d7ee50","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA18whmzTNbNIe/nfwYhf+WQSwn8LFVHEGEOFLIJwPImJphvaHKHoVs5fYGcL4U8wq4RXx8WMUa588lU/yl8crxIoBNpuaWwZ+KO1Pj6c59TI15fPb30NChCUOt+neIPdgQKQrRWDhdGlTk9sk2+BdQwbOgjDfCB6QkOVDjFOqRFOFE05KhEqAHgaAKq+Brs9igvCvUtMLbGlhHdTqNx3sqFEROND8bd8HRUTS2e5hu4Zr8DxzmEHwrKE12C4aNjZswgNco+0RJbq4vovg7/MKk0GmafK5ZECYicMwFfs51ZSLTuO41QmmuC1VUexYsHg8K95ewnLvXsF4D+xdU+v5WQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1bh237_e2etest","name":"George2-Win12-1bh237_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8051019-f38d-40a7-9d03-2596ca2df9b7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ceb4e4c1-7a5e-4cac-b6d6-089fe5266790","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsq9q+RC/6V4WiDB1BeQ2PcgwOXvJR/rREXXvcwBQl7ALBFjkk6YVilkSoVKVGBE3A9DonDSQrZyOrXybUBtdEftjG4BVEgKHPTHeMDTCjWlmueZtIx01sXPCm06yxEkEUl7RUB7RgbFCZxGsaTsOUfTrEEgVjlCk4rteqstgNrVCYUf84HzzEaS9ObiPIgCWeOaJzf7kL3ZZicvO7p/SqtS633TRKolZwTYdii86V9VpGglTDuh2V40F8vIBXfM0qRnSvXMq6aaZKsreo+zGNvGqtX3i43Ul+0+qPeBH3SarXUjxd//QReO7HDEAsPv7VBQBL567sE1w6n/WZ1hegwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1q4dz2_e2etest","name":"George2-Win12-1q4dz2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e62eb495-a997-4278-b407-1ee93d77f2d1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"b053cbb0-3e1c-4788-8119-af5fa93e8265","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxwlhJauFf3LkxJBUP8Lk/rNgpGuMfpjgRJp3Us+VqlPPwlwkXz2XzOp3fqZPoodcXPKRBRXzZInhgxdX4grFqmbF20E34y6TH0BoCHaY8XsDYRCLkRMs0aAJuEZkEi4MjTthiQIwBk8yFyW8wSWTmXm81yRFISy+Jv9OrjQwbZ7Do3ZE4FFgX84jE3y6FIb1uF6OGJA3/MmLKXg+4DLuJnJK8zj1mL39oomhjTeMQ/BPRpneheQhJr/7xdH3/3eyUHLzPwqRpyXqzkN08kWg0HdrTFK0pJ34uhdmz6pge1uyuo+CyL7Ub0ZqIrshqZ33U/6N3W4tXYklQfL433f2RQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_CENTOS8","name":"0.8.20136.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6bcc6472-9884-4c77-984a-d769a64b5fc6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6e3f035d-b25d-4cf0-a8e5-467b795be284","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAu5xSFjW2m/UQ4yV03bgChS61BMm88JGRX2xHk2waTANsfjvp9/ZPnOrMTinj6PWp4G0rqLOGFjKCTxU7DeUgtjl5nDjR5PEQ5ykn1fklZs0PxqfcJkbgmNBw1CZzXHKgBvEsNyiK9kJ9NnEdGjjJDlhtyF21zR2LI5wrB4c2XNL0Ka9SwyWBrB+FL7m8x4rBK3CU+e/WtPZ2gVQCtZwL8HPFaXU23rrkGRToEGCku52OsaDiGQl8eggDFG+TWpFnmiIG8KzOXg4pN25Jg1iTH3DyTgnCPVDGlmBESjej8XTlG4YvxwrBXrfiIvEdsF49XGB81dFbuMujhz5CIwnHIwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005","name":"0.8.20136.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7d48ae29-3715-4df6-b83f-b5af96662c26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"39769dc5-52b3-4a04-9dce-40bad0c09476","vmUuid":"3B70B7B6-AAC6-4B48-9BC7-BF709594B6C8","clientPublicKey":"MIIBCgKCAQEAxzdBYlZuVzTdOOONIuJiJIL/UtsTILioJXyO2I7j31NRepFE+5O00e3Ndqjvmjn1YVRkw/MY5N4ZyxL4tWe+XYZAuC4l6FzcJHupbaWhxE816hbzln+JlgA4+lokU0h3GnCRXJ25viJAOMyKSxL/2/09ZgiS7dlZG5+jNnpsZRWGBxQqHrpEIVStiCCdaCeCK708UPwj4rp5NthjggNRtE4zpVbLGugdnyPtg5Z9GK0IGzFCdk02OaNQjbkMI9N1xSnwSf84izEVliNUFoT9778qLm0tes+NfrqpgSEes1d7dZ+Fq40e7guwBkzJ+k5PTsc0fo9QrMmq5l3hxaOVPQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.airydkjhyxte5j5rmihydofhkf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_AMAZON2","name":"0.8.20136.005_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"82683f40-a6bc-4e45-bd74-7bb8ed5ea5f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8d33fcc2-c7e9-4015-8227-924cb7190a15","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAu+G24lOoMgZcfg/t0sg1mF7nS6ix99gH3d01eypUcHKvakgmLA5QWCKvckWNPaU/TH7wbJrvUrhIiQy7jsbD8+VTKUu+OpUKIkwmZEuzpDdXLo0uqTOKIHEpsZGNZ4qkzYyX7nzISJWLjgVevB50/osKSQgsnbDIpeWUma7InaKN8DPuJw30uiziLN8Z8yANZ1yKP2SfeIkvkKzOqitXE0XPOa3RKiObrTp+WlsqZzvFL2UyPA/83Qn4b/tq3dmJQHcoznsZKqp1kHF5V94R8PI5v35C5XaV6ynp7BK5jbig+09UkAg1cRc76a1M7vQSUXKYe5L5+/obhRXGIkDoVwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_SLES15","name":"0.8.20136.005_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c8b90309-5d74-452a-a5c4-6a9ff67416d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a1293bda-e86c-4cd2-a7f3-175da1f2c452","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAngPkup9L51Pf8Ub1mRLccSRmRO9UpzeCWFFT4n2sbdQlO7NKlbtNVH+EgUv/EmmN1I3oFJu35ejVJz4kcXk9MmkK8Ig5d/5gpj9myG8UfNQHPG03SYwqwskFsI2uYSyHYK8m/nKFm7v47IhIXqsT9tUaDMg4IUbAodtq2Iizzl78NgD1u0s8xujWlLXINQpGwH8YL8CKl5bEdhirhSQ8FhREIe1ZDkDCfd5Ec34T18ikzg+E6cxBazcAheDSCzdahooGaANrZkQLMJCt2U8iIdH5u6Ykvyp2pTMDN3ib4794Fug31X1Xyi8LyCov/auyq+Kx9HSBGQSqyWE3giW9oQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_RHEL7","name":"0.8.20136.005_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e13ec12e-abb0-42c5-9ff3-d81ab22ec8a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"3dbffc8d-be38-484c-83cd-15bc4c3265d7","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtXJiGFh/VtaOXnGVwFfq5M05/gk4N8qk5VOUaywNZqS+uZMSe5V0c81Uuh8dm+qYIIuyzVlvmjOQIlx1ulc5vOkGhcdrPFRXtChbNPpXNhSxo19oPRPtwDsNBjzZtxQusvOjTcWHlIhlgv3Ax/V3tOmnxXT57v/mk3kGdP7FzQcOcCeht1MYzumX9BeJIaXcv/HbQgPC/vuUXh68M7JoweSsxPFt1FDc1WWIbe3u6Z1zxgt/6Iwpvap3LUOEviGA3Ku2JlVnntDUbflLCmVbqurtC6q/nOeQo4cTkH0qZbde4nST8RcC3NyC3m7BE3dBDprYChLnZUmGJHlzZE46owIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1uskty_e2etest","name":"George2-SLES15-1uskty_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"755385b8-848d-4083-ab99-2fdf2ffb40bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0fa02e8c-0a96-4ae9-a6a5-2e98895d9c32","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwYG3cSlt/9S5Ad2C47OlZBmqbtdE7bAxer93LX5xN9d27VfWqyFqDqP9/SW34QYEXBlQdAKWm1KFk3eutHA8Ez0ZUVisrmrVK9qXx4JdURueIFuzEVJLG11UlpnMMyd0EnPssJsZ+VYS4dRxz+Ify/wmexISG8bW4F0udJK41OEJ3dcFQQsQbsZ7dqoqsUIz4sArDwCGhV8kZIG5IHlR9IGuTx28TAyEmGXb9kJw1CV0JJ2zog4qMFHvcN71y1ghKxh6VKS/NJ93wGL+vo8hMBWi/+SgSXjRZPRCAAvqoxXob34NWESPfmEstqeN6JXv6pzGMG7iXbErz8BPM+GZowIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern1qv5p_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern1qv5p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9f669b2-2019-4ac8-b050-e098846a2cc2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"65a5c03d-f13c-40d4-ac0e-46615637bd08","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAlkPZJhxJA/V32s8GaA1y69Ea2nkvnG8jW1ABf9lNdvoqaZ1IVWB24L5zp554shCWJMTc0zskTvpu1BzK9VXL6TE8SWgvJH/11ja5TnqHcgk/Xew+YNZbJHp2jfdJzKZ03DWuRgsC8lQj37yb1OzabcKVf4tSK6aW029SQ1eCrK0Affjm+Egj3B1TglIX8YhyDLneKFOJix5ShC3RSFND3cKKvSTmc/jDayA+P5dbSBwfbT8bhPFpdmFbJTOQKLBskLvgdopYzKbAH2rfJ50ONRh33gDLlU2H0vqqygBQgR/m1wGzaWr8FubxZm5VjBnwSccw6Ze+JXn0yi554vbq8wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1uevhs_e2etest","name":"George2-Win12-1uevhs_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"65a9bd1e-2a0d-4239-bcc2-487cc374d177","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"be0a6554-ecea-4f8a-9b59-ece410b2ff91","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAz80kRVFuhHi2wc53InRHSiB9ss7HSV049CtOg0vZLwfAcEisNF3gK7i+0la/zUvP+jZqylZqL97g2xtE3hwCxuTd00MCiwES+4tpxxuajd1Kzke14JCu67HCDums+9UgxiMo48/x1fK9ZRPL0wTBx92VLkAumvsHFOgG4oATZTEwsCDLuVF98y9QcEnGFvWedDNUiWK90fk8CoFcu9q4HPJfdaVoEE9f5jWyqxzMXR28/xCg6TA/63dDnfyePXm0+TBybXKIQ9ecRE6ui0ki6ZZeTIrxJsva1ZwHL0+pai1R+/d+MqTQEW7dEMjZxaNP+zAYVpGS27kfBp+erN2P2wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1rc2ql_e2etest","name":"George2-Win12-1rc2ql_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b8878e41-7be5-4680-824f-d02009f1020a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ad32d535-e9e9-46be-92ca-ca63180b73d6","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAvr5TVmW9tCFzRikOSbxbjoVI+1Gx9kuBNfDupteoAzJxuRM/jQTl1sJlnlMV3gY/HINObsrLCb7qSI5rVfvKVBgIurVD/XSYCVpjb3hMLW/FhCQ+XyMBGjISFewqM+mC5E9wPtfXW5S2uhB/joMzKZic+BvUjiToJIgGY1Mb3guz8cFTKXhswLHoETQuYxNDOVlJdSpcboWRNu5Yo7Ivcro6gHwwheqn2dlSG2gg2C8iBK2swhO5GbL7vuUk+2P8+p1xQ3nATaGEdUEyYl1hhC/38/ZXPyF6WS2YdkeDCwIfHt4wr2NhZKNkJHVjwx/tv612A8Dc7XX02wAj39x8hQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006","name":"0.8.20136.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68aaf9c7-6764-4492-a3c7-02b1c17dcee6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"3778ae6d-2642-44be-bdf8-4002f65643e5","vmUuid":"09A9D872-01BA-0741-8C2F-88515D2A465F","clientPublicKey":"MIIBCgKCAQEAoy3bNuyvkCKlcWkLxaLxLqK6OTcyRhb/kAtC8C5Z1lDoayvIJCXUlzVVARzj35F9kGlr/1PfPUv4YSPzdaZ2d8E/wjt1Iq+TO6w1CSR0J0QWljtOlJjOh9jgKjB2BAt0TgCQ7MOk1qGzCBMRKzRpywsie5xkFOEjABBTj+pG6veh+5F7fvTbiEkNkRHAQ78cZEtpBc27gGh6IgewtjVGqS+CKKIgqTGFgLpisddw+mqjgRgnYE5dFJE9e0uIyOkAm5Xm0q+ovyRMjTILFcY9yESEJEhNm4CyxLpQvwTgsm92APgZgBy/AbWcAeKiTQtJZMyU3GcLpjJ2IJCcPOhY5QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.2j3e2trhfdxunnr1oqskkq0moa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_CENTOS8","name":"0.8.20136.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f16e675f-3aac-4abb-8a1c-c45bc8387ca9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"11751fc8-8c7f-4810-adbf-04011073f976","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAy1da9Pmq4vpDmvfII0ssPlSBbqkxHJAanaVsVLHF4fqK8o0zqntzEeFHCa/QjPBtsSWdOYrasFsEuLb3+WPvmyfC++0GTSxhH39YwnP1G17xmF7B4+YzvYaiPFLefWCUj5KQNhD6uL2lzIZkJxpKjAUbTYA37UNEIaN+7wH8SNEC2GUuGyywJCd4DmX1WyvrZK7gYEUMJ3QUrtemabfBUpx5MrQ8+JzSai8BjtunyrqzIkR+wiLQ3zXrVRmlMJhcvM9jOVY5YZjmtA8ZJukTW+tdhuR1TizFuHiDXceXmuvgX3e5hBpG26KfvLs5LlTVhC2g9u8IRUx4W4O9FEeNEwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-105agj_e2etest","name":"George2-Win12-105agj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"917b5bb4-262f-490c-adda-55b02ca0452a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"33892697-949f-4cd7-941d-a4c2adb8320e","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAppa/LGb+aM6jp7ZKvHxcuHcpg6U9e/8ZeTKGLqwfTUU+Nb2U1WaxkEbVf2J3re+YWIrHiWWCzRvbNQmEYFIAExga8UMdWJsnep9Vp3/ByZHm3LZttP0Dfpc0i+thjOJC9X/A9o4I9mPQ91njAoP+D86/Jwjzi6jI1C0iZ2Y8yXvpfm5LA0i0Te5bhCVJ7XlIaiN9Yvf9OFMAy1xBmB6HSYHvE3JUyZz04wwvFFOHXr8XtGIto3aGaTTMOaomqHkfF56IE2X4WtfWhFJ7xhnsmlTaMsOmI0xFIfCSpO+AYT0RB1mgcpUtKos33B3OWnuXj+TkGGszXxhhmKgHgqj9swIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1dfujq_e2etest","name":"George2-Win12-1dfujq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fa693e65-b697-44bf-9d32-aa4152061046","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"50e3f160-9c4f-4189-9e41-ef2ecfeac2a1","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAw0pVL7FST8v2QG94WuYrdbPkT9U9NS+oQx4WWkPyFWiFz53WbtKGixZM2qMe4NOMpPge5WkICpmXyHAkcwYfe8EJ3gKZ8p724hDinyiEfTmECd5+nZNQkuz+gt06ow1zCUidXnzAQa+ZTH/grOVerOhRQ+yypz8EATMuLlAmljeyInpFk+va4N5HOEwjN0QKEpHPoGOQ9aBg5a23nAtjhW6rUZl3PCpN4uQuqxqi9oL6jxRsHxzSGJ6qPRrgrhW51lp+UThBlEp8Y3/XJT5l3GVpywnvsGaOzR4s6bRl0+RL1JD/TOS7JOIDKZfUQRlOFZCJxQu08rCerPx9hjL6eQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_AMAZON2","name":"0.8.20136.006_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"988cc1a7-2b18-40f5-9b0b-db2ee3f1fd1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"e3d97fce-ff09-4de6-832b-dafc77f82812","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxbIYvYqJJ9MZJzrP4Y+ssvn7awPtYYcW7ECiM1lJa57duRbbVvX/eD4oLXCVyAchgG8Eistqu+C8xjfbKmsKZnusYUhVVweUubpx52aK+lKh2G+gdN2nXTFkKXDzCo3uPLHIBwfST6MC34QHvHeJQOa0Pex8oX8dNOdwK4XHwp/4yPjj3uttc4B8qEsRKamQudtY8pFt10JPljI7+Ccmti7Ju15KID2TsWsW4/YgJNBXIwD/Lasn9KazRycIdcNishnA6J3FWahyrzg/t+l0j2gt8hhmLI1tD+wZYIyW53l+ewdbSMONQgb24adze6VHCthpvrUlV5OBf5ISAlge/QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_RHEL7","name":"0.8.20136.006_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1133a5e3-f4d0-4edf-b527-c17023b8851f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"2a272d4e-4fc9-47a7-b265-fcf8de26c712","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAreG2tk9pmQc8mLxB8mDIVpqlgNPOYnh6/L5JEyOxwVL90LJd2e77MTvWh3PMY92GYqGEK5G+LnFn7EkzauZYdGiKQTgrKLy4o1KBQkjwqXyOiZwzwl4TTQ5GJjJC4nOgzDClrxcB8K2QbJz6tK4l6FZnT2SO7WFbfx14ey9bP1zdRNQvwjbuAGzo9J3kZujaIA7U65AeRy8/7Wq0rLIiZhUmGt+fLHw9oHHQm5pR/2ki+fcIJp18mtyn91u1WF7Ko1lD2qIOFPTmT7eelCesviu4q3WSMzPmuhMfTXFh+PClJVJBuGm6O+nWxPegVxNx6a7Q4KbAICov4WeuK0KTwwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internf6dx9_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internf6dx9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6a8a854f-7eb2-4f3c-8e99-e10c2cef952b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"36a2ae8c-94c9-4bfd-93e2-7a08d076cfe1","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAoo2ywdYYxfrc9TewcJMOYEExkXLSA9Y2fhJox/DKxsxtIuqx8nFtTpFcaZUxlwFpRdFY1GtPmWZ+96Nm9qwwW3Y67tsvT52YaHDR7q+mPPpCFd/dzdEwAzNeW6CDk2p8DTDtf5tdBwAiCPH6jY6gqmY0RXkTN8XRoopNquJIMP0xkmXSEiH5UrU8JxqdfXBGjkuiodpmMuzg6E5OHcH90KHFPi/E7di72fh6KBNIYHW3m4BPm1tW7Od/pG62oGvwP4NGecz+UEq5kdEQghIBZGpemutpTFfo7pNGykDCfpLMP9C2WMhB7esiEvmrGSd1z6eHhfz4Ng3Gm1P6Emx81QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_SLES15","name":"0.8.20136.006_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9abffc68-1c69-4972-af61-159942bad288","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"677c1b5c-d9f0-4266-be64-4ddb26b02fe5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA1kmmxev70sq6voY0sDq1JSchAd3ZJK46dt5PnA5k+syAx3+1v13J6k4DA+VJrIXumy/nc1cxwAfGpVhdlHnPEqe/FmbpRQT6l/FjMBHRAlY5ZNqM7jwZReyuklp8tLS1oUc5FL9QqGkypMIsAYGNf8bKwVstzibDQSJcHtOry3DGGWpGXSrN75WKF8/Z9RTfvIqRu0dcsGXQvGhOql/erMWDmhaWcIPRowx2ARMUt5fpgt51f6JmAG3U1hZU0p3xYDdSNhj1M1qd0waKvV6oTZyGtRpX3loTE+UyqNlY60OB1H2H+TPV7u8sIExhwu0wNGVTrMjpkWmbVxgvc74N+wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-13ts8g_e2etest","name":"George2-SLES15-13ts8g_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"412ac9ad-6c0d-4b1a-935f-18a5d46e4ac2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d811fb30-f1fa-4fc1-add6-4d29c9d90eea","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAuOtSEfkb6Efu6bu/qJBPFfAY8Q1h2SkWKi0dM3aFLr0MppJg99DdB2ieft0UzJdbSbRmjkeEvxg13TZxUWEg/+yq5XprUtgwhWVLMk2IZBcEdLWhhw/oYUFJNmQpYW7pKdBJHDHMIMnJ787GTTlfX74byMNPny4LRyQSpchpi0FCwHNrK172JgAztmQgi9Cy6X4/6AfK97Gaig4OmURq9gT/zSa+KGmUJxJaPra7CeATofDOxhbYRyROEyoDCHxeSK2bwdNhIKiwYgoVIDs0lywAmyxE2yr4GtQlACCA4AFVGL+Yf/iRO2s5ZdTHK/1tCSfMVDh78Q1NuN6DZaIYXQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007","name":"0.8.20136.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68ccf031-ca8c-4af5-9806-3bc284c4ec84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"97219d06-8e1b-4b74-8d67-2e04b5ab5c07","vmUuid":"5B3AD4EB-2CD5-4549-B5F7-DB36D792B178","clientPublicKey":"MIIBCgKCAQEAsWOX/M8xNaqTePRja6yyt8wYczgl5YFVr53EbnsLLqeCTEkJxJRHqeTSdRdczamzhvnM0Pmdck3Vaz76cs5rJ2u8tRY4aYF45iYp+bCEowBTA/XjOCPOteve8IisslPpd92XwBhgJrWiihZx+KHHpM7AQdBHzggx88yd7pp0+8pGYU8nTBAWX1sgVTlZBJTwXXSc/Y0P+dibsXjJeKdyEcJseeDOYStuRlb5prdcWNTZ60s0ciSEfHvCEigdYWm6ZRx4FMZsXK7l1SBIF2dRFE1ha2wA9swjeIzSvJJF5i+4maBErkZZKUDcaE+rvjmzB58m+5w/DwGkKOIwmMJp9QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.tneh5hs32a2ubie2nppnwrrtfh.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDT3i52j_e2etest","name":"WIN-KLKL5O3QFDT3i52j_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7381e400-51fb-4bba-a5e6-f6bebb3eac7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"0a63ba34-65f4-4ad4-8a5a-3e7b6bd85f6c","vmUuid":"59AEA5DF-D3D9-46DB-92C4-932981898C96","clientPublicKey":"MIIBCgKCAQEAsmRKipUxKJB8ZkDaKxGytAPJbhfm5xsfIhkRdU4f1vb2Y4J16cIZpsF35m367F/Pu9hp7gna4w0kW6hWWPrzGEgI2e0d6jw3lNdST0YBYo5kUlGkPSSr/r6xEPNevN+IZiJ3S7dn73YWax7Nzlb0pGtOX5zkhC1pICSon4sxkO2dnL9qFpTwABfvpxz+sJjLRVHyQbM8mMG2BwOlH85KJv3glru50unMhZ2VHNspdSCjNJ3l6qWEezRYn9BNoMk5Q3w6xlSO62pfquruMPQnK7XiKO+LZXfa7iaZDaazZwGKpJMmhniF9fhehvSKuXctUFDbOoQTRXhT8A15wl6W9QIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTu4l5z_e2etest","name":"WIN-KLKL5O3QFDTu4l5z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a5f2d205-925d-4701-aeff-3f102012b01a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"50473b4f-752c-4466-8efd-d07f7229d843","vmUuid":"59AEA5DF-D3D9-46DB-92C4-932981898C96","clientPublicKey":"MIIBCgKCAQEAwSHA/DyIwxyEz8thM38ZBb4BQtg3K7Kc5WZbqlu3vqWFyKd2y/ls73adIDVsorKyZAaGun2bkqz6CYNmsV0JpAClCA3OfL7MYBFYydgLko3ALxiL70YUlDmUwEh2lKxFOlRqBe/rw9ZjRY0Ybg4CORFtQ3UjM14vaK5XckP/MQS3xIhFPh2oqXu9Ms4GLZuL8Q4xcSpSPywGuFxhXEGvkRi9zbwW16cATW7TnZMbiWOR/T5TXeQKwIoS+7EAEyJAd0H504CVpf0mXftuskX6eHkhvJ8TXEqoFqh7KxfDKFilWJg9WALh4umJOEz4+wXggm4QdhPGmiYzu512MYaqaQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_CENTOS8","name":"0.8.20136.007_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06a49a9c-cb25-438e-90eb-8d520bb89ad0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"c9f0009f-7588-4e0e-8f40-4b7a19b6d3e5","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzP8IB8W9LRSsnU97Eti40+lk0d+OJe7su/ik49no9JLLinXQ1huy6uWarvnEtTTQuPoNxF8OmwS4gHXDx0zbmUz1RBeJO48WK9Qes+ihfNug338+PzNxWYbMUX1HHfwnqipxyI6zMiyBSAMVWm1NXxXfmPKPUdViHpAIRqYOD56lJexdYt2HWTbUua1+vFeMNWZuJfOzXkjRFM/r+MG5OMfw2IIGGs+I9vDOkIkUD0Gg6RqdMw73HSLKH4tvAdV7/yOyN549DqTtK6TvruVXs8wzHwWZbixPPZhv2CGqW4ykTU/e8kimxh7hTNuxKiQpLJO0wsjyE+HZl4U8x85TWwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1x6qjc_e2etest","name":"George2-Win12-1x6qjc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99f5e12e-839e-46fc-a1fa-961abcc148a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"7dedc1d2-35d8-4a6c-9c74-040fd0ea0ece","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAyNWRFBUK7rahdKphuRku6DlkguhydsY4N93e6E1MSMhtBbhZCJs8JfjCsP04C1M9qVIXjAQls95FD9f2NaRv5B3ihHJJ2dLlS2CJ81OxYWruoX556fmKKy2Z7FDYdhfCwQoo16FVQWXNheU2QBcSxPPuudZdabhV2WSUv8YCFn5mEHML3bLOjmKWoHu6yDTIo2Sa7wlPlDs9JJW/Oc868ilAL3VBf38FEToFfsTdMPcu1b8MAystK9MdqPHdpOFz1l+9NpAfOgB6RbsTULBj6SY+Bk3UaSZYI3OrG0cg4tzZ5eI6HSivXsaYiXNoFsoyeObl7+MjAjhmq9l6L5bDcwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1n6ptc_e2etest","name":"George2-Win12-1n6ptc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6287e31a-bed7-44b9-b7ff-58e031e3faf1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"1f17f6fb-7113-4488-8670-51dd093f1fb3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA41N+Dl5qT402iV93dRMA/SofZj/vsEcY7PKT79UZQdqBMkPLqIuOGk8B6h2ZuOTYJ2i/aJ7w7AxTq9pOzGzbqpfczvh5iN2z1YnRMlXYbktsSxFQZ1H/T9zL8ZyHoIY2bx1boeOPZLQB1d+o+5NUAptqRcVeZhHhlwyrVWeASKFG0EdQLGtdxOAT6tW1K2hfRx+FbZupdCQJGan+Dxv8o6oxWrR6B954+Xw0CQbPGx+r0pgYvDonroQeBnL8CKFNjU8a0xdZ8IeclR9eadrfL3WtB6NT2QXoS9dltzXH5jSbcTrFjdyUgY76GnIxTYAhcdK8jPmLWPYqkrHGMsmt4wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_SLES15","name":"0.8.20136.007_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d2d0ce0b-f721-42a3-8122-6193ee7e288d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ea98ae63-4c30-4f3f-b5a0-03d07b5a76af","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAnzU+UH0X4xA7OHcenJegFBV4ck25p34AY1UXxDcCEQbMBccmryxNkKp7cD+uRjG2E+VlnGjhPr2EIGFifmdUCMtZFOMD1tDkbxb0rYVumwDnw94/dPyDbotv53woDolCMUzJeGdPLWOuUZSqzXZOI9ggOJ6kmtFReavwf1qNuGo5DluaLoETyMx0vdFwMwWvT+2RP1xu15gdqFmTDe2gMo1ab8NwMa32Zs5XfcQYHrA5QT8Yh1Jk1pIpho2N9jnsnMLOgMlR552iNbuWqWDXnm+cy15AL6lGnTwr4n9UqOcdHL+H+2zEPcS7Rxj6NbxasOcpwnkpjYX4r//u/a1LMQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_AMAZON2","name":"0.8.20136.007_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fb474612-7236-4c94-b9cc-0059189e3cd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"23b09333-77b8-4e86-a8fc-05c4791b4ddd","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAvyFddUKCKbH3+AKp/kUhLw/D/Em0PSqg+YhQTRpzFIwkGJCPndSUOgHebdOLqulyTPjNT4zK6xLABaG21KGGLkyiyObmgEpM+1La2PJoq6AgSswpHkOgbD26HPJJOHOXQUtHf/mLYHj0VELjZN3NQnXG8pHenoAdz9FpEwMVErm2yNV9UGeRRHOJMjPB/YpeNzNIgmtLsDdGEL9+Z3j7gH6PncWQI7LHrEvAIF6Z7hniFUkqzLGgJcg8vZPW+xzE8yPc2BwNU6KKFzpjkmcbZk8arzEK9lq0wfksPrYSVKcVm2AM07gu0sIE75xtxXyGraJNE4XDUDmiJBeBLRVoawIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_RHEL7","name":"0.8.20136.007_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9e48b5a3-758a-4c88-8e6a-5d1d2066c007","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"3a3fc060-2354-4f79-8e96-74c617959934","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvphSPWQC6UFCqsDOcfHME3NbNKKr7hYh30Dnx/wGwoNN77Im0Vy3T3UBJjENkQ7gvVr75XR4eM+ljziZBd3/NQOh1qBSvrjhw/68++4C8QdC2ZXAQFTt0HdcWibMFMejqhE/rkiVeDE5BkCNG9MtZsYR9DjDoOZZA6nABocuLzwP0HLYl/LwF88KJ1pPFBu5aqINB/V7suD3epMLfoZwC9dnZ00vFJTU7H4AefmTX9KV+x1JTnMyRgsGq2CWDEfXw2SPSICFRZ48TyhgYNw33qe/dzFvHPOheUwfnfQs9uQcsL8j2JyqaAXpFBaJGOImgznHCK+JG4dDdKiIKjWUZQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1o2wui_e2etest","name":"George2-RHEL7-1o2wui_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23ec8618-ce4b-4991-b81a-ce8c8e8e06f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"b74f0334-dc24-4e1c-a10e-3ca5ba022563","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAsGxy3ScgKXzZCZUoNLbQ5vo38pYL1wLHXICfBfczBk2ZpssIfdFL6NbKnqT6TPxbyOEaWhXTcteeMV7QP+QXshYeTj68+9aiHES1PKZZGu9B3VQbmv1/dNikI/iJr7t40VuyqYxcHvFZTm/nBZo3kr5AnTlQW96wV9UyIEmalHmxe+wTq2Am2D4u4o0oD3KVFBboUq0ZQALyFqhUwnWF+onSdONYW5GapAZXXltyNkoAVIJLXEpltuoGdKwYSCNNSPA6sCAAN5FKuudCjhqzrJBkUUWXYoMItvZK+i0C2uIRJioHqBC1NlSJ8UxFGhKqgc2MEF/XbwseLHm3i0M1/wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1pb8jq_e2etest","name":"George2-SLES15-1pb8jq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"09403fae-fbd5-4351-9e3f-fa31a375a91b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e64049dd-d695-4f5f-b7f6-8278bf10a827","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA107MZJOOOwS6F3zJsE9fewxD8H01bQ+W/eN7fRSsYVRUpscFkwUljfzhO7poNjEEvbGI1SaGKfPk3c31ZVHu7JXpEIKyHj2ZzhWRJ5E3N0v0d6kOtH+VZiJ9qS7DgeHaIeJJsSTvRmbIQXctKSgr4Q9W6dNYMa4eE/FR04hKc3BDUdRb5YgkTPkfTz3CU7MhvQYnuH5K27YetG5VX8C4GYm6oj2vmBRVBHqp7GUZ5ZkCLWTmbjAvTzVzYGInRqHwIbWarq+Aimr/1XHnK4SFB/re9TAhNRMsS7Vj/zfG8RJEnUrRNJ2quLuhjKGyCJQ42PkUlXkmuQiRSCzG8NyWtwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern4pylw_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern4pylw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"067c0eee-c24d-4a05-88fe-25c25a240eaf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"33313957-874d-4a84-b7e0-0b4274f75e3e","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAy7JRvuW/AReDnRRVsxQS+LTqEip7hF9hfvr03esdCDm2fX/DQwly4XsvYS0k2J+bI8zOjGhvdBsCdC0k6zWZDazSRX3kluYUo18RDa6Em0Ki9OZooRg6ZEqzAC/wH+xC1474+YSugZoVIQU5iKjromYK4S3uPnisJV3Ng/f+hfQQsJ+NyZ65WDTfxc64Gu0eA4v56AQNqlIArhz5YT/qm7khzWiG8WP6S7ezJoI0GgZDLZgP04vQejDGEziqIro2IH+kpColHGC4L2kRfoWLWroECe2uaTLOZXchc/OjqsPQa6P3fcNP2c80d9NUz8l4TQIgCarMLwd8sLFqBcQrYQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20137.001","name":"0.8.20137.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2fbcf248-d834-4216-a4d2-d03033c16eb1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"1996752e-f7c4-414a-915a-ae54696a3934","vmUuid":"5AED6459-95F1-9849-9AF2-0BDD5E94ADCB","clientPublicKey":"MIIBCgKCAQEArZd3aFRfldDE2/51Y5I+qtQ9drcv7iwSrNm9hB/pC+nThZ2DhLJUAUuIpC6U3ymzUxWZT30JiOtfMiwF+4Dk0McrqnCtsDEN7id2DSnZOA1DC4trUzvV2W/Wjo8tt66t06oF8VoiCzw7g0vvBTAN4xqdQz87g2O8lG26cZAg87TUfxaqMrP0OEMN6Yo0U2bik+nyUEVp6Mt7a73oHADPpAp5mU2pd+17mU1TkQRWkdgK8bvKjnZLcVrCYhEBg7R/gBjCpJxA44fymXKeXpBXio81WzzEPK7pPRKx47fSdyhn+byGFVhx1SgfIpIy4NgwPhGWLtmD5pxpVzoFCWeOrQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.p2e3fkk4edoehny4pbfwpj3lke.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az6237glbu_e2etest","name":"fv-az6237glbu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9c89e50-510c-445e-b31f-409dcc7c2deb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"e13b962c-b457-4257-9329-b0c16614c357","vmUuid":"5AED6459-95F1-9849-9AF2-0BDD5E94ADCB","clientPublicKey":"MIIBCgKCAQEAxvBVAFspV6AL/z+W6FXBZcVl3Imw504jtWxfyQWBzJ2jOoqyiUgGtSOPp/cg3r2y6+7/xRYsaEEPknHyV1UONTmJ9o+wbH0K7fWDxodYvN3jJkvkuqo3ArmUtYLFxJI45Feo4D6S9IlhmuQDBXyuf+BHLxRX104ag09/a7MOTQYvnezmVe/d7a8mITSCUU5Pp5d561FyL5zkSzYFXHs9xYTMH7gOTVnHfRW0Y4sRVi1LNHNKUd9oBnj+BEFlM7MDqpdREVRCSlWmeRAh4TZl/SR9vdAvcaLXaYepGAY2cyLDx5yQvFaqVUM4PF4qCuQaTP3Y95iDhS26oVCc9lKVhQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.p2e3fkk4edoehny4pbfwpj3lke.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTw3n2m_e2etest","name":"WIN-KLKL5O3QFDTw3n2m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6352c176-ad2e-4fb7-afc4-82a5ec1bb50c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"200b5ef5-e48e-4f06-8a01-8cdf78cfc20f","vmUuid":"65DDD9B2-A755-4BB0-824E-A44C9FC4A3D7","clientPublicKey":"MIIBCgKCAQEA6PFamMo5INdtC+gpq/Z51hUM4SldhGmh1OGLnp7fP+qTLcEnJYuw73yW47W9AfMfT2CXZoiXDtdIVrQwFWJ45AYx4sQm5N20s/B/cqCDTwkW4fwu0e7n+FHSbhbjlTGJIJ2UCMZBbupXHzXJUQ4PDxtgPSdZzryA3scuUP9hUSlpFnBBvmiK6pcQl/XxXCMkaxgBd2fxJhMiwbhHTsITvrbXrnLsJyJEHRk12TYgIehwuXiluUB7sisywLghQN4Tu2SMGPV34eDj4lRfed2jBN9gx7/o3ZvZuqZLkIrpjlpm468iNAZVoIZXfrXJpl5KPjN2X9aglMltgcsivIqKzwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTr4hwo_e2etest","name":"WIN-KLKL5O3QFDTr4hwo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d078c926-3ba2-4db7-94b7-35d422e42332","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"7bd1bca1-be45-4670-bc7c-7ef390aaf4b4","vmUuid":"65DDD9B2-A755-4BB0-824E-A44C9FC4A3D7","clientPublicKey":"MIIBCgKCAQEA5I11CgxWESWbws7q9JMTCFuoGXVjpsPJqDlU8yDbhefTL2ykBd6qzYnIYtZs9q+nQZjpp1PDg7CLSmx/ttLUxJ4JJnOLf/EoM8sM0zuW3r5W9vqo1GxsbnNZnYC0vs6nR5ki8hRy7OVE8oGXMHStb7VEHMoEf4irXaQ2sGYRiRdq4cnclBTzVKyB0BDIexZ2wvZzjjiKQk4n0UiqA2+qHBZ6vyrEfjANaYl90BWRuquuqpVn0MI/5GXSewVgWhNUNpOtTCpjloCryCsNLvWgI7EidB7kPzTNhlmPjdiodlY2i1oxZlA5esaRteue9rt8GVpON0mGcIgNuKOEFP5j8wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qj5ri_e2etest","name":"George2-Win12-1qj5ri_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97c5f45e-cf3b-4454-9e46-6ad1218d2a73","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f1feb648-e680-464f-be0c-428b6e4195d4","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxse+hdhi5+TioCTky6TmNpzOpwLihcy6gMzP02j+Syk/l3Bh5ohlLEv6CbwyD0DWqLuETO5lv8AG+7biAMZ3OgPidUKcKwQvQdGM3Pd9OFXbTS7IXXdyQO50VtSRJAA7ToJ6jwcBfQHBp5/baPm5MEttAbFHaRIphth12HdVrwKBBR+lyCYqVqWAJsPwQJovBe+t/o+tHu0ShaIuGKnI9YgDsi6HjwomOtQ+iS76Q1/2iproPWJ2qhKsds3XOAfS48YlnEEkobRmgKM45O9v6MoR8y8TesnfE5NJtiLOOCle/1WrR4BtGNznwLsTrwo4jrZqRbC2NMaMIP0kajYcIQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-19oy7r_e2etest","name":"George2-Win12-19oy7r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"adbb4f43-5ea0-4dc8-95c9-c8f636c84b9a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"99f59448-27c3-48ea-9d95-f3e9d7f980c8","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEArexpmowa7sT4dONxAIYv6uI1PqkZ080tCRyNumKw3uIrLmCQ0Svky26ZaYzhA5k7N+QxL89ig/kVpW0N49XqRM3DPRtutN4N1MBT+AonVeuSEvzyUM4/nxINiXXw7J4gSZxSFhOzpY284VKv9pPCRKuZrkg+0TpnIkyvY/5PQdZbl6dzVu+FjLyA9q2sQgkiaCslPmRIyjmUkssXggXgWy5b/lvhtI0+JLGGVxRld4BaHZF+z/XzTo3hdEqBf5uPW9z9gyPp3TSBwohBqZSL+TuYCL6KIR7Urrh9ylCALc7vejPyjO9Ximi+Wq1yx1Z0qpFbJ6NKNEn0K4mkkpzC1wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.006_CENTOS8","name":"0.8.20138.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"edc8494d-4255-4ef4-a8f2-3a941e3b5475","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f6f1bd19-9683-47a2-82ab-80bd727ec5bf","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxs6WeW5cWuTr/qUSo/1/ZSgvina1vXja3/7flMcb96btZHnFUG9ww7a32pqU+qoD/CK2PANcfCeOKm0XPNGcweVdyxtRvQgt1HJ+Oq7tBej3xFwypTIWQigfi14qHV9EVPB/K0kB4wV87heSDz0KH/EFj4kzgWpCaVBbR2L794W9SDKWH52FKM9Z6gT1YL1xFIme3mrsiCrH/j8PpOh9fZ+oKnIOosDJhuaZEgW7X198KEtQFdFL44Pf3chENI8dqM6jJtf55L39JZnae/IGYrnN4pD7E0PKMOpUQfc+bJLIfSFfI4KLNVArFY/R4txkWR56EDfG8xMah+966/e4QwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1uk9lj_e2etest","name":"George2-Cent7-1uk9lj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2b59c19f-eecf-4fd7-9151-fec2faa7bbe8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"77e375cc-7f0d-42cf-88df-fa3d3b397400","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvk743KcvaySIWIYBa4Ec9V6enfgvh4+TCaQkA9AJyE8CQ93XUNwdZofzfxB7CcaBCqS8ICPcqgHT6hoD/NWi/7PkO2uhdG0ALzUi4pfJ9Rb3mC9CF++/QNgcYUYBB5s4syM0MPpN3UfQjQKmHvT8hju3Dmn94TUqiEfDDWYKAyzob8QXsboOp/at4mgS1EOUlHSne/FjQwewRf0ORMHHnS82I9m07kUxVuIIbK32md0tQEQtDiaUGl9wUkndpIe3EWaz5sqnmLroqImTD3lkfZpg5PF1MQ8TDqss8E610GPrIlcGVG0ds3vg2mSRMyFQV2GHClZsHooyD5ESOrDXFwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.006_RHEL7","name":"0.8.20138.006_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9450aede-c8cf-4d57-9a0d-c782dbc44b0a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"e8d0554a-faae-4b8e-8cae-c8862da42d96","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAwi0XYeShIcWIsGy510GtIWqlfGgmRCmP91KDcKzk3k+FBmLpNTGA/jSJr9wwZrKSZ2RdN+Eqb7VxCKCmxWdP8HbfIQCNOl1yu1DFQzg0R2LmjlQnvLWRgyRKATqDV7tGjAFbDZbdxvOZvQ8aRAMMHKbqZqqWa2vL+uDrKAgd4v8jQadHBjH6ObItTuUxHOD21kD3v2h4eO6cbzEsDt2HDBfXlHg38UCbD4OsSS9QrVTI9JAVbHGboTSAXUR9+K+GS6cqHWl1t/mHwEfMO2UIJVlTLNYCeZYvAkTLyIbKfSzFMNieNQCQ7P/RD6orfBfL3NZzzTmRM9DmOubKzYsn8wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.006_SLES15","name":"0.8.20138.006_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b55d661d-e4de-4514-970c-9eae972ddca4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"b0059006-fccb-407d-b310-2d972e071517","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA2u/PjlMEi1qXtXULx1MfGsGwxrB1NqzGIunRzsznqgTsHGBxXcYb99G9JDzQW8sg4APrmUrRs3BwqsLaHCg4Gzi45VKYEhah5gMUhFWbCaOuPOB5OFAshOaiJgahDAjSIUYvaYoPGpPmAY4/qIlc5j4jx1jhRYZGmQ1wVK4oTnvtTAS5mFCZGuv0cVxcjFuysa7JmB2WJc1elHuV1mJF5C2fm8r3aPcvgKcygJmuVlBJR/xYqUUrFQ0aiKQZ5qDlsEeres/ytn17ISG71haAiXhHRwZpwYpf2ifh93/m928d2JoB5OEKzQQxlY9HBDhQ2MVvLaP2gi/yJtZ/LEZDxwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1rx8d5_e2etest","name":"George2-RHEL7-1rx8d5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"57e2e441-cd3b-413c-a1c1-ac6ac0782da1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"52b8f5c9-339b-461d-b84f-59655c584a7f","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAqpYNxgN0xuKDAn/JQm/kBTkADByEHoD6wD/65VnwzyD8iq6e7Z4pyFj6FR1ox3TY1p/hBX7wq2u8mFAz4sS4QGpvYXCk2UD0PmIiIBiiEHTk1IXlA3il8njJhTeqC5h1bxFa/VxCvZR+9t5s7Rr4vaaykHkJqGSIlU5qBXKofRvHHxJXAE6OmRcryxl4UGDiDzq6lWBeHip9iJW9dBk849NqtQx7SF6zpLEbwhWbZBAsMU4wjE4SLT7QfHDUE2QLAeqly62A0ZaE8QEHi/n7WRwO6r6glVlCGr+F+2CQdD9CNtHqMVmjaklcOZgcAVlPDwOtka+/IKCu4043+UuhkQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1soj5n_e2etest","name":"George2-SLES15-1soj5n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"129bbf81-ec64-4155-85b1-7018c79dd768","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"b8e64145-791a-4765-9456-82880308f3a8","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEArCq1exB+gTKLnYOYpROM0uS+7Y4VROqFqDNLzRD+ewZNYmy3WYuJLIcusryYeFhujJQbaZcon669pn9BnvVmwArw0QaI367fQ6kmScduRkzj1QfA+5Tc1TqdX1cA13pEhcShCbyCAMW02UPRkP7NA1l8ZwIHfzDv3o6YbRmk7jEjx/PLWPCwO/shcigTgo4ovI2yjStGxJ3Mp0RQ3zSa42Y2mvCBrGazvILrFa9qj+jvhyeCKaUxuXBiJaB2bzxjH/D9Ox8ArUErJeOu9h6V6S9+pdgT4zK3WB1PSEZBR+JywLjQ3TJi1BGtF2iTnjLsW7IV9Y3yQaDZRYgwZQf6EwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.007_CENTOS8","name":"0.8.20138.007_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"79008029-d323-4c91-ba9e-e2766f02f878","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"781b350d-6bff-4541-958c-5a845f39ced3","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAyaorLmyfcxJ8lfd4RnKdKJs4FjtbsiCmfxUZDhAxPwnR0bdGrn2Fq1SCSkwd7eeqxwLEBN40whmOSR9EIgtx3o1SQ272N8/boMLrixghEcpYm+9lAX9oqDYsnMNrCGost/lA9AMlAs5MQDTZ6fhxLV0ZhBHgSa/bvM3BXLy8aNrAPizTmOm7BZ3r8sQ47X0pV4bC74nbXBCJVanqT5xu6EpaPLI1FY6wG/h8KRaHfGwLXWBK0PhypDp512/neFBQejXy35Php8GkUU610nUK8xFp7aYU4vfDFmGra0DBZbhxtXFo/jEc3TCBLJjILtxzYULLbjTbaoDdfPuScUsKIQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1m87uj_e2etest","name":"George2-Cent7-1m87uj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f7c5f79-fbc0-4f28-b956-310848b298b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"45f28e4c-01e2-4f4c-af31-af347a94b16c","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAqukxRxPIAR62GclpHICkHPYWphMfrqxPG0PCWC2IqsYT0tKuV4mc529DDtHr1KnYjPWrWx+dxJwhxl/PjNCaBY8gZerrklaPYtJOXfhbJkztHhT9a7z+X0NK5oxGoVoBuLOorNSavc8elxc2ifySpAeZgY0d8sQKF0jy2yr6LUOVJKf68Vp/4YDDSxuBRSuX/O+t2ytunJeKmN6SaquBeuVjnLt1CoNH9w8PSxdCMRxgjmeFFAOKEEmTqd90xMxUPuB3YOFLPzDMex9T/xXMAPBwzx6kCtSyPnsMuDgyBQi9XWxzp+bu0gBJttFOaB8PCxNAVQMbSgHGaU5wqJxLLQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.007_RHEL7","name":"0.8.20138.007_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7de66e01-6b8c-4d79-a426-7a51eb511e01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"b0287728-8f16-4f77-b3dc-9b510cacda7d","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAxTq02G6YGS8NYBkXq95xiEFH+QvLHcBXWcWJxdLBhFrHa/c9+NldgKvY9LLfVMydysUHUyJZ1J1TKaq3ZXEIT001adA/JmfTTEhOpAz65nnH5RSqb5MYzrTjC00t2hTyR90QuOUG/JV/DE+fj/xVxSYeUBWbMGsdeUA9B2t23DAmkjvxapLbOLBDGDOldrQTRlEsGk9zOR9O3pXCnyt45VXnPsaQwaA+Zjm5g1JTy8bMBqXT0OWlsOC0+hp/SzDKb3+ZTZe7/ta0gXDz5pO8XCYm5sfOHfWp18h5paVugDuqFRcby1UQ6+0235lUaaAEwuv4d21zNMVpfYLKzcDSZwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.007_SLES15","name":"0.8.20138.007_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b469d105-82b7-4c56-8cd0-65ac184be250","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"3f57da5c-be13-42b8-abbb-db72157d8404","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAyXHN4Tv7Co0jXbLhGOSHAciu81Z5Rz8Se1O2rXjI4mucGvxAta/UwyKII7E1o+xGh4WCAR9NjymMtLhruTomLLMWk9mm3+IbLvSWV/PXq5GFZSCTE1HuBblznCVrMH9jiDa++o/+WV/ukM5hBpzLhAVeGY2VHypSjoLDVxXOady7g3estZy2DXgOXyMfvxs6P7lj0m6vOy1U1EFlkctOUGHByqdZ6YsD5M7zQE1un15mSjAJnY+R3Y7htNyyIlErotLoGFJhaK8qIsh3r695abNEOsHTuvnzoS0mnEWmUzphY0g06nCu6ecDfMNJe37guAbrklEa2pHrfqMmFCScHwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-14w9ra_e2etest","name":"George2-RHEL7-14w9ra_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"29279d46-02e2-4311-84ce-6e362e5a1d28","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c49e5c1a-c725-4e5d-b219-945155532531","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAyMkL7aKwNJm82w+zFw11NHjwMuSY7/iv2gVsUtpTM5xYDJ8+D/lihQ4H4ql1Q/Cz/rq49Y6ax0kbAVZa1bhdl2Iz2PBMmY0mmWF4q2YnSCOp58F0nt55YKj6HYWDT889Unl06kwRLN0y7sWoAPyVDqedDvIcFXur0WFUyZZ9fi7kNGaJn5y6KEJ3th7HbTbsGsHSsCVQ3JieZG7/pL68cU5zsAOLn6JLHHP92kLvbh6DWGPOmlaiOomwSafQtEgTktR5zGazSQyAkdPnWwc8bNC/NToHJNO5iSEVdbYSWS1WvLCeiqgua0nIZUvU7sMas4rGikXRc/ynaxsi3YjXwQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1yl0wo_e2etest","name":"George2-SLES15-1yl0wo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5ba07ed0-858c-407c-827f-d61609f8c66c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ac4cba84-43a0-45df-82f6-be32f8518f9f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA8vtsdvRvUacKsQtEOOzL18AdBZUNXuCrPFKNVA//gisi3AgXSMSXvvnRzp0nS7uYfN4KiSKQ1Pkyc6jc+6havqlqCKh9eJwfh5Tc9tNLOU34qkVeIjLMAGb6vjY5BQmK9g7J1vYa4x6LezOmoHjc0id9Gl+7mFHCkV4vue+/d2leNlQdKfdIZcEFdFkhkPY9f6CJ2GTfIai7ziZRLI4+VFTRr4DQRNX8vGQxNgP41GhO3yDcHCQPQH/IO2Bj0Vtgj607ozdQVZZXEkz02K81dpQqv/t9WzgvIEBhzmXY1rKIAk985c97L+c5K9VQRHJj2V8dF9Z7aeWDuZe8A+fLswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_CENTOS8","name":"0.8.20139.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"421645f6-f9e1-4b5f-981b-05476261e84b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f83d411d-dc11-4bec-91ff-4e5b432dd387","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxvS4xkvRhGt58qEgWXdM9R3nLTDM+36byynyKAX37UVtwQ84Nq5GJ/ZftIDAXfjvbcWUqhHrtCp/TfaQQswOB9bmMc9poOStX7UuoNLvBlbI3nOlP6kA7tySdjgUO7mhlPUzMIIH4+f8upQNUbP2Y4OCIHFwr6vVAzd3S/EbHLp9AKH2AfNb571iBIq6AvEbItEy4/Rnvc973/CPIKFG4TDAmfptLybG/7m+TKcPoUWvRLLxtCN0zjybEkveT/W76ezhsdiAb83HjFfOAsImJeUYim5pgm0gcRLDDs889faA49OCWysQTP12nNSy1igifVWiR//vUrjc1DI2zdDEMwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1e4qyx_e2etest","name":"George2-Cent7-1e4qyx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f97dd8fd-75cc-4a74-abc6-8aee94c4a5a6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6aff4af4-fc0f-4e84-8b1c-f0a01dee8962","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvhsFCsyoOHerL2iZc8ioT+7giAFFeCycVNtEeZYL8ntLt2n/TDuKJIu+E4/u72Ck1eVnXdJAwt6BCxpBl7ZuzS3Omu7NsEIKWSjobL5eQIsJF9RgkjtS21u/6OkHckutyQ98gKW1liExmlco9FOEb4OP8P+WlGXAR0lDJRHP1YBwGt2o6dQ2nI+kglpTYbfYjDvqvgjSsdaLwVWLo2zYRxXOHGz/v1AbhvlpL2zQanLtEgi8yVAcg5eFx1JrHM3NtFjvcckiR82F5gfW2CbFY3S40dVIVL2CoWleyY719RXqHWchURGViS96y5b0HQVYuskQ4+9JSR1dhqGW3n9x5QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_RHEL7","name":"0.8.20139.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a2971c1-a1ee-42e1-a0f9-c8a1b229a828","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"777e4910-a4cb-426c-a841-b4969d397cd2","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA4YiytD2/bUitj3d1ijDIw+zJ6ZbDaN8brp8svLE0OvJUy8CeQQi9ZuL6kc/f5+ykroSKvGd1UkQZOVA5qyDm6KS+DSxtRj3HOGN0TnZWpt1/QC+wn/yPmo3qLKybFY7IxORfAb6/nBN8V34nR6V1fkQGtQSbbfkWZ39rb8rbpAR7nEKV5YUwvVK1WlL38dmitfk8/38rQxcs/X9l8MxZ2Jg8SLkUAG6lStwD3nt85boyx4UklUr+4OqHEfkCADo/gY0aj12bv0srNGBzwtcuvQwc6AgnB02AEIUMBr+1a5xXt6vjsteaD5WhKmNkfE5MSufP6OZSX6u6fBIOkPHtLwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_SLES15","name":"0.8.20139.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ac9355fa-4f68-4f19-ad46-34dc6c972779","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"1db0cc5b-e3b9-4811-8d15-d3f05c3778c9","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAzEQZAhrveWmMnPSbhjXrHNoNBlxL+3eT0rmDAlJmy5M2YvI9zLwA0oYsBkPgVgfaeWeaEniovrRbY5y5bF4pWwu1fKPff98ZugL43r1nOVXIf7w5En0HDixePWjkuA+XP1/9E4Li8rj6FptGQDp7ZCADxdWqz2GKMSQJCAfURofGNsSRiwYsrbct4GhA/oH0wXa8tdw4yAvt6o6sOgaJzHimcBUuKl4WC66xaAGJ49ZrwDT7aaXcJ9o1Ol5KjQlPyk20zxZO0Hm9D/SBrQnETHhNTz7MrZh+B5+GDQxhRElKSzjDsOITcbCUHcq0QQTbaSwJB3kKNYDdJ5PDlT8qBwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1hx5pl_e2etest","name":"George2-RHEL7-1hx5pl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d4ef390-38b6-4812-9098-7ceebfc67c62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"15a8ffd9-45e9-4d54-af30-3273176934ae","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA6JnmESrzfWzxGCIrf/BEUwoCsmLsTA0wuO+EuVV9f+4v1DGM7cYR2q9BVHbfA+foanttrYivE2jldj/NP2qpZ5qSEQVwX16zQo8i306LqBufbEyBwNHCW38osY7/+DbFzJ4i4CMrOfULWsg/eIPjztklwwcr6bY05Kn0DbO7gPBXoDp+2VTI8y/kG9qCFXf/+yPER78jnxVdSPILv3PfmmHuLjtpYc9Fs4WoHMa5TvNRJYgO5w0M+VtdmEPJwaR5026jjyjJCb6RiBh9G24Hib4XctCoF/zgH5jV2kin9BGC4az8zYck+CVRUK639d3kEP+/c3vmt8+xBDB+y/x/awIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1xrpwk_e2etest","name":"George2-SLES15-1xrpwk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"59a6a4ed-7983-4408-9111-51977b7224b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f86f18a0-20c8-4db9-b2d6-ba8310e10e02","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAv0cUmBvPA8TEOVPZE2Euv9n01pkRzQgt6Z7DZZtrq4mpU/f1dRgCG+/y1FiM8+suZzUI9SQNXgFMYc8B7OtqpenRWXkzx1kOt7eWBwbNwT49LvkgXO/MadvuFy6yLYf73TwyDC+8AFO492QfC/kZgBCC7YMRIb8K/it395OEFjLvlydYCKbUUMfbIkwVi+azrRa0Eeenx4ap8K7XmIjRKg05vw6syksgyBqQ0q+fiTxy4PFZXIK4QHeUcgKraP7w73aXNOmqfM9qh7hH1ArWLcw1unQS1rnN+QTx5svWfetD9nOdvOOFU7FhKXq+Xa35V6mLvaUP5DYhAbmYk6DwJwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.002_CENTOS8","name":"0.8.20139.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"69bc80c8-a0d7-4f30-8087-6d2a8e0c02c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6efefbb5-b9bd-4537-9373-062ae4042d74","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvBIE9G4yTc8zYg1k+cxZteLL8PcaEDXn8wfSiodkR1rIjLvdhmNNFya2P8xFBCzKVDwBypxS4ouL/WpwNxLGJHGePRJ1ARXTiIPP8PSpzKeXUiQucNdemeMotjA0mdylhkhOe32cOCD2WqUmaRvswIUaqsFYHzAHaoZsB4FlGbragdC48Ys23y/vqwmwHoZE4dsPq3oQ5SN+ksdRj77OA53zKP8tUcUEhk5gB1daNOu1qOxZjvtxHTJAqQBLUiOUvIny/GoOhssNCQ46gozl7Ft8TmdTrPyWyvVsCfxCEewGlcWX+T6dTo9dm6kvRJyyNeBEoELaO3HZgREksIEO8QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1zda05_e2etest","name":"George2-Cent7-1zda05_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"760fcb2d-9f7a-4cb4-b7a4-bdee5c6b1249","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5e08dbf6-0866-4814-b9ce-fd7c0ab9751f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAwBj2KA4m7GUHAm3HxcMCM4haHv3hZ1OYVvR5Bb68HPpx2qGsjDK3Frl2WOChR1wx6YsmPNOxu3Et+whmKvtN14dCvbKABT/xrGEr2Uifh8MD36xiKCD5Eb1zLgtIjbEJk69u1Hzsfb0SfWii1sAqyS/YyLfyGyIfkAXPVtW/Zy2949V2p0W5a9j/krA1jLDucyYYaMYLAVuiIdpug0mY7v/dJIxJwjSU8n2DcehgHqhuWmneVkBCZDnNWEeS9YIdS9d99qyLKN91f/BmMnbmZ1d5udFQC3v23S8DBkaFxWyD3n2FQJyzlB8oiBWNFpprczXE0Q0IAPRS29wr87hNDwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.002_RHEL7","name":"0.8.20139.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e82db330-3aaf-4bc6-9316-ad8bcbbb583c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"50eafa26-8bba-4824-9936-d936c165f80e","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA668brU8vdPpy26DdHCSKEng1E6aqBUIKDdYJFSxYuqZFV3igVi3EKiecRBfdutR6At0jM+BIY1sdShXiu1zpnmxYFqnLdTwFD1ZIeO1kd7kgeisLqz+x0Vk1xH36J5n5hBpYrH0ezDh7UkKifeqqFuy0CKSekSKPr9fPOS0QzEQ+QFyq9aUXBkCfZZkaNayeoBVKesj3iNV3zWxwcEY0KGK3zr1q7NbQ1MyuB7CKVOluhXBrpmXsE5qiW7wG3ybqVnyVGt6fRrZH8LztfA9Js/I74Fc0/hfgV5gfClq5cw+LbQYd+zsYB/o8NragDOyb5M+45fwHx0TsSQVEJQpNAwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.002_SLES15","name":"0.8.20139.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"41344176-d5cc-4316-93d8-ef48eaeddaac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"5f3ef7a2-7e8b-42c1-a07f-b8bbb9614110","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAx8JCzfrZrBSf0riC154TeMCHz1KE01GzXhmrPHfkyE89VRBvDJX2mI8AuOCCqXg3R/Y7zUPpaW8hnNwMcxq4yZp4PJANdh4ECcJFV/1KJwiQUJpqpP1Jo4vGih83FSWMqMSlIwXPi0yjI4JaNqdh7rGwcVEyX100Oy4TUU+PNYrCHtS0TyNNKocT8X+Rs7ChbQkD/BbxY3luiPX5PNlQvkcC/g2qalt7cadveymUd8R/yZp7E3GEVdaqzjTdOLc+ToDpc44xE/T8it2lOt3pqdGwlZ+3ZNQ4Qm7wI7YzYbSlYRlYybHgTcBCfIZCM2P4KT8fc/8COjK/rWmjo4M7EQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-18e1yx_e2etest","name":"George2-RHEL7-18e1yx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a94dd9f6-acb5-428d-a52a-b522d7075472","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"681cb118-94b8-41a7-9a65-c2f1eb63be62","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAnX5pYA1+GF0ekD+iQQeTA0YIi30MZhx9A/V55EXF0Ywi7bvlaZEf8JrJlvjpfpG3Uu5DYNpPLE/Bq1rOKJNFlCz4OedvXk0Itsx0VvF0y6NM3uoT9twBTOnaOqwcprJqCAlWUqMLdI8IBNVUhQNcM3WKMsRU9MiouvGFRzo1zDBbl5IqTZ6XkXLqIXFdv/bTIRazAFSx+TqodHPkKQ4+7QP/4G6cM8lpzvpQsYP0wC01kPI3KuS28XQ53wpdJ4BDGUce5eOdD8sz/JwNqvpRFJ752SZGXYhu+0gla49xY/YbQHHXtFmwtdk9y8E9BrhtOrQF98HixqURklv6I6Yc6QIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1tsr29_e2etest","name":"George2-SLES15-1tsr29_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aed4b41c-b9ca-4856-b575-494917520638","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"26b9ee1c-4f8c-4cc2-a2da-31ad3e500c6a","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAyqif3Yz6cuQ4HUUkEWQEwaJramsaIxj3/MM6kK3WjfSGHiCxFuPPDsZfVrITWZufgQOWfUccGRO9WJ6gkr9C1+A7UGzixY5VuFWMIcmlBon8W+jDNOlY5EBYfHaU2qlpv9E1fCnJjJvCbB2Jv9ur8zxlmPFZtqMcoDW0B5Q2Zw/2KsF71jXwYw1F/m7himob5wC+u5b4itmoko+mopou9TXtukfbkqI5Y/mEt/+KIk12jP0/3WPfCEQsnCn4lPHa/Mqi+gUXYQcUrJL1U3dajC/2HlbtwW21HnyXDRrpr3TgTlJSj0xDv6ef+7cZtvLpkrhpz0S/l3XZ+OcD6KYPFwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001","name":"0.8.20139.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3ccb7d1-05a2-4b56-8d55-30fbee676d6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"141a97e6-244e-4378-9444-14a8531c1095","vmUuid":"F266B359-2A39-0A4B-AA81-C08FEA6AC91F","clientPublicKey":"MIIBCgKCAQEA2vNseWTiHefm2ilDqzhSUAAakgl4+XtVbqZqeG9mSlOCCjq9WHMtO0wnlViNRqmfCKR27xBCI3uUw4qatnFdC1FVWYL8Bo/AHIzb/cdjA/D998aq9Lupm5DIW3vKaemYHJ6x506XX25kLUlFfZOe8jwSDZWGov/g4bLBfMNZT8+NGhL0w7cShHJmDHrS5w6BjGUICpiLOcGtZPMnhsgKcQSPjM1CQf6SFKyK5dfVf2Qe7wHOGbPpB/13XiKhQKblHFny4MRtgt/0a5tiiFul6QBJKm/cJJgIc7ALUVeD/uhHjiDGA6f463ltparxATlRGwnA+WSA2RBBdkNlZJlgAQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.0vbzrnv14haebbzv04bog4quxa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_CLONE","name":"0.8.20139.001_CLONE","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e909b5ff-520a-4f0b-8d50-bf0b9c00f897","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az601"},"vmId":"5f13ddfe-6aaf-4d89-b1ff-3c7359b41be7","vmUuid":"B94043B0-A07C-9646-B532-ED8CEEBBFDA8","clientPublicKey":"MIIBCgKCAQEA3GITLjeP7z+gegH8DFuCiKV9OcPazoxFSc9+Qy2hA4xxvbk3GveR8fN30utp0Yj5vH1mOg24ez6cId2yY3pgD7xgu1dleJKH2kU0bJHmaAplldFxYBpbPcNq5Z6trU+XgwZVUzxS57hpI7epkf3Uo5C3Nmv2EAOZaXk8FzWm0i6RJd60eRk6lnc+9bogV8eH58nqDPzq3VZcV9AXmsXj9qW5LgWG8y8RcD6I64b413/vw4JKUQ/eqztcjJd8crHSP7sC49nSUskhsWurH4vSxzyVqBWS4TeNKv5zcuHB9c3EE8PoWfGPzHycODA3Zznk+Dm5q3Ja7+lmKviNxd4p4wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.owvxebsflx3ubfsd4erqvjetvc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599kh2to_e2etest","name":"fv-az599kh2to_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"545f9ee5-c8a5-46be-87c4-7a53d36d1f8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"7be59420-2b80-47ef-aedf-db160b1ecc04","vmUuid":"F266B359-2A39-0A4B-AA81-C08FEA6AC91F","clientPublicKey":"MIIBCgKCAQEAt3zTBkfLJnStPCKlb/is/O9valp3jWK4J1nSPRRd+tGMNf3ntB3TfPYYVGTie8hZ2xSPO2Aur1lOp+IQ6Eh8I5QLFdYWP58EwWSVJwxXNkGb76kBZRbi+cQuwctT8hkck1czjcw/NXm3Zs9KZ1WnP2S+i6PrN+OByHXm9vyoRetrsjzrj20guDvJJw/Tl8mbeWARQj4cp5IELsY1RaM/Ya6TUWSGme3chGNzGmfIB5e1WhnDQA1tlVEOWAmm9UGvxObY3c+BGbZTXodGv+zvzNu+qMIZy22bsiRevThEq66rZbE0SVDUhS//1DVrF8+wKUQcMKH7LpcVJmXqBTsBtwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.0vbzrnv14haebbzv04bog4quxa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDT4qokp_e2etest","name":"WIN-KLKL5O3QFDT4qokp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"584b96c5-8e88-4cd4-81ed-bb9cc5785097","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"4eb5b08e-381b-45b9-bdd0-555785f48bff","vmUuid":"D9498EA4-A0B6-4B59-B135-CCEE8813351B","clientPublicKey":"MIIBCgKCAQEAnlhRm+FkSlSl+TCQ9Ddp7lptjzdIMwlIB/jbIZRBs3y2dM0gJ832PolhdceVPhqlE+NilzG2YdQxGywAiIB4CWsZUjf+cFe2bj+mTnxkZt0pxOn+0qhdfYExglC8jeP0ZrHlL112YZIzPWXvYPDabW4OgLXieEuYQib44Ubecd5qg3T4Bs44g81q/IY6a1KxLlHJ9CH2+qJn1kFGFkqWj8m0S3jBaNN8Ok2AKTfpcsiCxXAlyCMdDhDGQo1N2F26mLB/Zjjb1vxGJpHnF9CiZN12mSaxv9iVzax6CsD1fltleN9/XbWoU7Gbh+XCjnaUHM+xFgvWz5JAMELBpZvPbQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.003_CENTOS8","name":"0.8.20139.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca2d7704-ea7b-4b24-904b-ff6be06fa8f1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"2b3210f6-9808-4fa6-963a-3450ba5afd9f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAmVMqkx+voBHTsxNt7tpIQ9UUn/Bi3XO/Q1J/gvc8CxzvU7MLhjhvXOYdfIorIvX4Dk2aH/eGy6z3Xio6qiyUd/N6dTUjNqXb3CqYvlZZOZBsyGH5TkGuPKyuMz6vnXY1J/HhSAK9MTgPNbrjIXUy6HVgh9ug4iO4aDF9+/KLzfybxj16EtfgC4/qTclc64vqXHHuC2W6OB/otyAEsqHElokCWOJigeQyLp1oFrx6mSPYZD9QDLW57a19fVjiOkexOC2a7OHqJV0dLToO/D2BwyoD/pKUdx+YJcyf5Lrar6DMHz6Hk8XVnEBFPoWrMModxNc5BjYTclh1uQlNn5ETOwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTs17lx_e2etest","name":"WIN-KLKL5O3QFDTs17lx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eaa67b41-4b58-497f-9cd1-f35d52a571a6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"f544859c-b541-42c4-b892-e55665d0930d","vmUuid":"D9498EA4-A0B6-4B59-B135-CCEE8813351B","clientPublicKey":"MIIBCgKCAQEA+DHQufO3uKexUk0a6omjjpyPtPr3CcUHE8pMPfPJi9W5Z5mz7TKtuKNjlYzl9gFTMSEzIk4frQ/P5BggMP0FJzA4NNUbNKBunEl7t5ZUoSCixT4NA54MYGKc8eUHlG7meLc1E/vipvc5wSq1Wr8v8YV15xTKjjI/e1gYOJ9eTRbZ9pMw+8DqF6w9LN7Z1Zf0PcNDjy17hlPGXfL+cnUe+9TBxvi8uom/Aktpa5Urcihnq4jyhODDKTBewENhl6x6N8rJvVA49GShGHHbFFsYtR+I0kFJq4CHXhWImMe5T0e1UGbZnpXQNKIXCx+fNXHUFoalExT0Mu1g6Tf//7ayLwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1e154d_e2etest","name":"George2-Cent7-1e154d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"926caf1b-18e5-41d9-a37c-40c62ba56daf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6eadad72-2a7c-41b1-84b4-ff6d4c6638ec","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArHjECX/4Tj6yT8SDouQcKT9yoQBFAYMlnyxdmS1sVIbqphoQquuO2bG1Y5fSBTBMXmycr1WqWASMY+30N1K9rGlDTErHxjZsV/jC0o3BpRz8hQqgXo3Yoj6FT/KAAZ72lf6kHZr8wFTDnjhbqUCaSGLGP2J7skXxxY+xNi+6Q6ViYlkd2BDOWCdy8+g4kzzuI8rvtA5SuLRT5jRZwieS6S3PwGoCmLFyIkrxzVmhpJ7L8zVH826G/itlscBEEH1NwK71biaFVSqwxmoLGZFl9EwiT3UaZInbQH8XgO+aHhsMaFXA0FEjDeumeLKgCeFz/k+CvWDiswsdu6zgfAdWHwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.003_RHEL7","name":"0.8.20139.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ee2cd06c-f08c-41ec-a412-90b967f26dbf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"393c8455-f018-4d47-8d4e-57cc28f82014","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA19brviZnceE2yHX+rti1CA9uvizhPjTOrmXotpgKq1VoKngkZS/d7c4zm4i+SWlJhWRqjZ106CwQlxUh6ApYvhC8UF0w6PHrT4whq4z75zhqqcug1xddiKKJtgyI0YS7zaJ2jUF/ZZ6ujK04vsEz6oRgGrcBC9Ny3ZJHFEGzHbYDpPpdUSh/Z0b1mQlcGFtJwqe+ss92xkoaA+mcW39Y/gfIBjpOGjTHx43PCI7kc8qB3uwJ+i+hkHTEaN0VWjcoEc1JeTxq82cE39+8KZBsH9wZhfah4EZjzjdoN/Xy/DOlzTy2KfanGeg6VBtGcFLevROdsRlBKrifle1U8uz6ywIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.003_SLES15","name":"0.8.20139.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e86d5243-d5b9-4be1-b4f7-59913b8672aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"122f9b2f-f1d6-4345-b52a-69c599a7a73c","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0rfDju+b58Ditbg0iw+CWXIXtwNX3r2ZX8wZ8sf7uyaaQ/6Bk2qu3drYYn3EKazPGTvnkWxAqRSd0gisa6ElFrPTzMXXBkwOdeKErbt36ZgQlEltrA7KsZBgFIznMAy7NQ4vODhqP3BlfkFxwSu/FgTdD43gRzdobWCgAygfvPLcQHBPzxlAqyH4V3GgPyRZgGri5RLF/C2b2BPa9aQm2NVDQspgr9XLX7jTFKICVMH4Vi4Rm+js2OWlClD8hFKgFPRc85AhERJXoUhrJ8n935YmZ99HcPTDkNaJcEI67junwVhEmQG0XCzwL1rpMijiDEdbrqLlCjWeZuMyIuF/fQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1tjcqf_e2etest","name":"George2-RHEL7-1tjcqf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"50ae053a-6595-4dcd-b108-72ba6c0e95d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"b5c1c54d-62b2-4846-9397-5994a825e0d3","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA1TDxdao31r9IVlYg5NNKX79dgElHWE1P4fh2Z5dL/xFn+lhG6pXmgygAX/S1+nNTPq8QdKZhfbvZdNiADYR9c/78R0Eq5zoF9sGR6iJgE7OkVaEAYe3fZcP6MJF3Sy5dA4T4SzRdxJr1jqPKt3MITc3mBgzX5lSGgkUTrqa+nrbIaiypZol+khWwKpR48YEvBJ6WuohjnaRXNezSJ/Y/3BrWTfDThjddmv3RFZkM0jh7wrTXsCULrQeW0z719wnThrhfidcA8VS38An2f/v3Y1dR6CGGIv3Ph4gP3Va5N3Li+MGaw/Gq7nQYqPbWxwQXSLhacfZVCE6PdBZSobbgHwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1iu52z_e2etest","name":"George2-SLES15-1iu52z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c2ac4bd3-3166-47a7-bd9e-c6a066cabbe4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ddfa18fa-7a60-4eab-a43f-1d81cd3782ca","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAl3y5Fa8wl0UxEDrllNpz9naozVRTMI0u3qePgRd9tIVglbnCRqAZMV4P9OM97yMNuLAvpBBH7BJS4YbsIluILjHG2rnXNJTjGewZ8CQV0j1NkI9cSsubAUyKGTKkwS4sac4jrrRwOu+7XMwP2Q+pbkuLKerqiMud8AXrNgdeAyB0MXRYC0egdt3TEAYmoQbWqIFdKobgakw9M1502urclmsbNT6nSQSHVGTXpmfGMiG0E0L5a79XNErC8tjecX34mReNP6AuQWA3X8K4oWQRSWUBW2qzvkTYPg/hbpcLMBVLb0mDB+w6UAPfGEwmdWhebfUWfiJ4tIKeP+qJodjR3wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-19gf47_e2etest","name":"George2-Win12-19gf47_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9e7c8a7c-ebad-4931-854a-8b06566a2d41","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8f82aaa7-63e5-4b77-886e-c1691662100d","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAumecaJ8uH+W9Y44azSdMuS5xsS2go9UOOXpD7wyw6+SMR3hRMZOiQI36mx2TfYLxaXg1rXAii4r/VEK6tECqYdo1uwjx5+vlGGAL2LtXSp2IueZd6+WR8W1OFOZBySKsJRWfo7LhOJJxt/4W/DNym6phGcR1q9KtEy7tUh9Hz79VKWWKqR3phTHCeR09C20WhQtyjBYUFugsl2SKeeaZWeEfE1PbzCYMUzH6SMujEMjPXHogapn+W1n9H4m5SlZQmaf6Rn/a/AO6uEWk6RG9j3cWvkSsd29jlcqiT+MElsbXIcd7BBDDWCA/lMggIOG5Y4SxmoJYDutxTkDQ4zq1TwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7b1ZSAAAAAACA%3D%3D%23RT%3A3%23TRC%3A300%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAAAUAPElYADdgcMDAFDsAAgAD4G4gNyOggAAAAAgAAAaAHqbBYAGgBuAWIABgCiAC4DQi2WRAoARACRAgwAAAAAgAAAwACULCAKACCAIAFAAIBIJACgKAJEBABJikXECAAwogAaAqYIBwAQIgQA0ABWAuYUpgIQAAAAAIAAAaABvgQHAAwATCRIIFUAIAD%2BKNAMAQgXUQADAAiIAVAACAieAaYAOgAHAAAbvg6EFUACjAgAwCACAAC%2BBX4A8hjKANYB5gNGAaoQhAhgAr4ALgBmAGIGhABIAhoJRggiAUgCEABAAHIAjgYUAAAAAIAAAEABOgyqAXoBhFYABNIIug5WG%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '116500' + - '137175' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:25 GMT + - Tue, 15 Sep 2020 00:27:40 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - b7c53ec9-1791-45c1-80ef-98aed807b33d status: code: 200 message: OK @@ -513,40 +1145,94 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEuhAuESqVh4u6TTbNECI1EdCJmSEYFigSdqq%2B%2B1rSB%2BKRvjYPmN7fD6Uhl%2BHP6KpemXxoYSQbrOUhBlslIVyGoa2X%2Bh6nTd5yWveDLP8%2FbXjs0LWev%2B674tOtIOQTa%2Fv59xyLLfQjraXa5btFJrrWJ7GydEr3OJgHvaG3nbyLA686%2FUnUXSyl8dh9vC278TBl3X7OnDsVJxEw%2FvfeSu0MzKx%2BD0x7jzNcDWDaG3Hz4Jffv7oK9FuZcWbe3VOVYeqhAyji1Y1YfwTmrAA8b8rlGt4yvm7adO1z%2BD2qSYmA5WYyRZJdwaibeJP0Bgdlu7QwTImC58R2fO5aaMXbUYSlEsmXk4XYCGSozN2u8YbRAiq7AHB8YoQoKAMRAj%2BhtIp72UZNh1pVoRjIoicW%2BbYZwHWiewIzBvjFjdvN8y3ie%2B5aQlLAAvQbgAuABn4sLRgeYnGl6U4G%2BBYdPeXrmAZU2CyZHHJMBo9JlANwAAHSx93QBMwIHqWa0FLkHjvPNYMY8qSGGIW%2B2VKQ1j5UAGLGZThypdbhP44uft9Tg8DIXZAM%2B4CDZveGZAYC2DHqTycEMdhDFD5HIIXmBQgv1CuLm9K%2FiXepGYtvms5ceocd%2Folb4SbI6oTjGceKJ%2Bf%2FwE%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7b1ZSAAAAAACA%3D%3D%23RT%3A3%23TRC%3A300%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAAAUAPElYADdgcMDAFDsAAgAD4G4gNyOggAAAAAgAAAaAHqbBYAGgBuAWIABgCiAC4DQi2WRAoARACRAgwAAAAAgAAAwACULCAKACCAIAFAAIBIJACgKAJEBABJikXECAAwogAaAqYIBwAQIgQA0ABWAuYUpgIQAAAAAIAAAaABvgQHAAwATCRIIFUAIAD%2BKNAMAQgXUQADAAiIAVAACAieAaYAOgAHAAAbvg6EFUACjAgAwCACAAC%2BBX4A8hjKANYB5gNGAaoQhAhgAr4ALgBmAGIGhABIAhoJRggiAUgCEABAAHIAjgYUAAAAAIAAAEABOgyqAXoBhFYABNIIug5WG%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20006","name":"0.1.1908.20006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a18b6f95-61e7-4327-a0fd-7c50ef9bdc92","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20006","status":"Disconnected","lastStatusChange":"2019-08-20T23:16:06.855779","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e28aeadb-897c-4c35-b82b-0691575006d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvxj9lOu7NxWzNgIbiDUM+WhqzMh4S2cE7JabI0ECmL4ymYlj+VUnaH5LR+hRLYspoLgplhybVqu1Y98tibTI+yEoA2khmRL1YTYPM2+/riIrAZuxvLxlLRSKwN88G8V92yJCmVTA6fP7vl22AisXNhDDel89QeXP/TXefWj8vJMEWY0mwYvxup8bkBPdTrKkIo5JFNQEOAOpkwXN5vtPn6IKL4xnc9HePDil/8SLxHemAbM1DgfB/3gn7wiwSFdzfThKvMHV+oBq/4u9emZQaxv7NIlN0qrQYeRpM5WiQ0QnG0eGuv30kOIF5NvCAi9/QWh7WqjK6pWtHzStgxXofwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fr_test_10_16_1","name":"fr_test_10_16_1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a3a6ec07-52b8-48c7-8d9a-ebc216ab4b0d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"03b40586-dcf4-493f-8b78-9f95a1c6a2fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtqetxZ300+WW1/ADAqMI73dkL5qRs3SXEG3fzNMmOIotAE2CQOsUV8MiNzmWEliamKqJ+PednNxB8zcfEdvEoxSNJLwaYVBRxlaq24YnGIaqKqp3/Hll0kX9LkNAPMCIu6/KRBmjKUsmv1mx75HwUQCeL4D44Q7KS0jIZ9b7m6lcrSUuy32mO//9ybulIbBFIGqKjWwYsVBrvCoaurZ5Kwn2d7DtzkeZBli1nNjwJWcEeXbGu1M1jEZiVKhmn2IkTO4F3I/1Ia4ZMLEa/MAWNOpvfbzBmkZZRQfiDCnjjCL922khNI6IG2JWtGTSuAMd2tGyd9n08ON26f69ghqFpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458qkzaf_e2etest","name":"fv-az458qkzaf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8cb9c8aa-ea9d-44c6-bfd4-f55511012965","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13004","status":"Disconnected","lastStatusChange":"2019-09-13T21:04:36.5714337","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"3e85d083-8a59-4258-a4f9-fa4c0370f9da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0+uaw9c14p/QP6JOaefy2EH7OTPKeDBvQi1tWnRYwdieB2eoXM/QnPyRMaWn5J+KCUkuKJnxghEjBPnG0qRq8XhWRJDrdevgepDCXLv0WZW0UT5FYd9zt/yZU7L7L7jOgz+wi0nE9HYQo6gmG37QHM/i5WsNLTNOWFkLYT5BXKstcDcsPMNscIBb5MR4POXk4x3/ayS/XiyR9bgBTjM01oLt484AfIIyqvu80HC+9uaO9vW0MsTI+KzvjJLDlnhq2oJ3I0ltDzUjnpTLVqQC+dBX91HPv4ZE5MXBwdMluqeOvsoY+mKpUQZ5vDAZjU+52tvDapTYciGl+Fw9Ikrx3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456v85pw_e2etest","name":"fv-az456v85pw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab8b525b-398d-4aa2-baab-59ab17e2baf5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01004","status":"Disconnected","lastStatusChange":"2019-08-01T22:15:24.9289647","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fec2e42b-d2ad-4c01-b56b-10b68a63c1e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqNPnMPmW3g2BQJns5o/DVsqRdbuYF3+D4zk5LmVUs6grOSOa3iNZujL2Z+es6pK19Zp40rYeXq73jaIHlrLsEnjfpNvqIoLMEX7QiC0BF0mIVKGBcAgDtLUyK4eI53QCRarvoEdsFOFbw2Xp2iuSfpl3Bss3deIqbl4iiYtBjCCQvBGmOKGiUsjwgB35N3qDhyx8S6+Py4ryqfVAyurj/TSKg5cONopBx0cr/OMpiuO/06/xvz3l55yubf5VXAzTqVvSpfO8cv4s8U7vBR9aYHk0SGN32Q0MRLQJDJzi1yy6gTKks2BAKjAwapQW3hge1VAJpNCiqURBp+WP3IuYgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.20004","name":"0.2.1909.20004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8dec6ef9-14ae-45d6-a1ea-daadf79cd55b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20004","status":"Disconnected","lastStatusChange":"2019-09-20T18:37:50.6256119","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cd3e36f0-3953-45d8-bcce-3774faada617","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvg6v9bif23R6NZBBNY/lIOldOncn7sCrc7mPWjkjbzzglg4LeX40MM0XY0T6TtnfYvr+i73XRf/KCK0AF+dxyP7L1YZRna0svjctTb5UxTN2m4iiihCmWtsg9VowTkhY47BcTeRhugtuITBdqD3/HNLNppxg0jeJh1TPYGSqE4Au8n2rORtpu1Xrw2z8rlG9hcooIdugsSfCu74cbCGfAiaRaVPStm1qZUa2XyVpgO1bAfSXZu3+aMoZL+CxD3fCenbe586vbn5g0q9YHHyUmPIBbeuKAx+DRO4kMoevYU1TSwuo2L9LIHNUnxvZOYRRlQCyYUoo1BQnz3b8iUjpjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458r2ae5_e2etest","name":"fv-az458r2ae5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c3db13d3-b3e5-4d65-9240-3276ca10ead3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08009","status":"Disconnected","lastStatusChange":"2019-08-08T21:31:11.7748336","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"a987a8da-dd5b-4c88-9d15-b5a1efdb0ad3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArzwajpWaozO8tzk53gIyhQ4fh43w67NYBYMGUMPLAwWscMvyWQedXT1Yod7nY6lhlRm3xbnnR+A9IipA5Vki4+jjahgUuyLs+85aAQS/Op5HVgctk2a0L9A4WYz+JKtNg8Isu+Vwg/TWFg38RgEyF9tmdQEI12aBlTnre8GAYmlKIoKibsJXjDg2tKXzngz4pYcxakUBdUMhLy3qbWjKMfRnhmgUlL0M3G5f6Jvua8M0jDaaOJmCZCrCko/9A7TLmTuDdVHeqfgvb26+UukY5yJKbOr9AZ+SGaJEd97S320JOVyV0S2zkAFpTCwwGe0Xo8wfnCXLr3tWiGuLfql4PQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458rbcte_e2etest","name":"fv-az458rbcte_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5485393b-fbe2-4667-acf7-40cefccdac6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.28002","status":"Disconnected","lastStatusChange":"2019-08-28T21:41:49.1632172","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"d0f2da35-e3cc-43de-99c7-b05176a1532f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoMme5R/DZ71YRE455AJiBqVTb72MDob5+xiMOb9Ris/VgQqrJFQEH0xEPdCyHHRYUOBdc1oUTcquR6xZYmTCPbUf7fEzzpd3ujvZG3Z7zycak0leNTAQvpF4FrFJr/HTxl9xQFfXD1BAkQqxOmnoFrZQXxwvrqau1Ws75Q/tHGSIE3yaYVfWU3cSNRvr8wJTNS+hXkk9b1X5d89NtXLzwTfXff0E04B78dvyaQ5nEIMslKmlctQyjjc1znwHvst6vnKJSrFOBRNzg9C5I9fIbwo7YGPvmHgsW6Q2eVCBYWArf3g1UcqGStCN4YVgcj8peSkD/SkdaFpNXTagJnkmewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fr_test_10_16_4","name":"fr_test_10_16_4","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"48985b72-a556-4198-b7c3-d1f186c80fd1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6594e480-2651-45b8-b6cd-cdee0a441322","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsC8pvUiBHf+PY+Icc3mhz+6scJK6GB35geq05aD7ZPEy5ZLpRJsd4/40MrzZPhVMR4EooneUUWQ1YGj3Axixwg0fQQcugFUJz8rGA542+DkCFd1qT3NoiERJPWG9fRQfTSzWoHjvT6pA8ycwQnWiBHt7sR0/saR8GaiwubqNRdGhQBarI+m7i1lmy/4Tp1quHe/e1PY5gu1r24PTTotu0shCXODzTh9CgOmFfwNLaHFTjoTHac/2/N2AOgjbNIEaTnEtcsdg3+OVr5SnzIW2YvcKwg+fmte8jYSZaAHXSJTC01eJ/xpz0CqbiH0JOsZj+ek9U6G9oMLf0RMgN0lHOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456vbajl_e2etest","name":"fv-az456vbajl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f4cf82bd-4cab-41b2-85ba-7925f08612ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17013","status":"Disconnected","lastStatusChange":"2019-10-17T21:33:22.1655606","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"979389c5-1e15-4558-b4e0-c2a0540906ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1WmJJ1ux2Ws1OWzj4ghR35ui4b8smHiflBAvz9rCAmXE/GUU9x5fdrtaWQtYTybxOZJ37V5xd6vftN/oH+el7HCvI8wC/h4K+ShUBAaxUCYMNPhq6DTTKKhTWRsruZPP5fNunmvYIPkJ2Pxyfe5tf5PalP0I8uJLjHuJCmeC1ICDxwcv2rWueYOXXC8eu+9U48IF8DNnSliwyLi1HBsK5bTjDdp7miNzRGSDx1nM1/8wB+FxaQOeR8bh7von/pBF7JAuEuoMvk+OF1G83OFP1l7imV9oya9ROAxzGJ3t75Z0kIN9aS2hpZ1y272RUEyP3YMR+AdK48GGiaXh360vewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20007","name":"0.1.1908.20007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"12149f97-b19e-49c4-b468-2308ca729760","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20007","status":"Disconnected","lastStatusChange":"2019-08-20T23:51:07.2802466","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6d032859-68fa-4cd6-aadf-1e207491a085","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv2wZ674gJfDAZE3MKO95tkLzZvBNfrim093BqHWIcKsn1bMOpTo2Fe/AoqX7wRXOM1ycyIjSb9JQmsbrcnlBZcT2Gi1PqPr8sme4G51qjQHBPgp2TMV8Kn9qe/djnj9b4KOh708mfb22xs95T1AAQnho7XAR6Qx0nO0rzumHoMOVyz+JSWhQ+2NfSczWUFOqoMufWxMEfxVUDBRnTFgX3pCacjaZTjhDGMs/u6uTOjEErS87sLesovVCEdP6MQq6LcYf/lJTn4URQyFUMlJuGtydWVD3HwWRblP491DLFgHrkMMxVW2P/nI7IK6YOlwk3Gbr6AepK865Luwl7boXSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456f76pm_e2etest","name":"fv-az456f76pm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"023dd19b-bb97-4142-a509-469eea305f24","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21001","status":"Disconnected","lastStatusChange":"2019-08-21T17:06:12.6044079","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"18980a8d-3c40-4b80-ab4b-be3d001d5a51","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxCshnKNRQgOKo7z7u5TIvj2XSUtPM3Gvtk9nMhiX1Cj527NRrEogbgmlM54laCA5RQiGf38R2vDHV8FtLMZEX0TVABKfDKbQaBd3WqwmBnbDfWOklaa0mlX52FcnuaXJEIB28AJnpX4CRWpEgnAjB5MbEYDBUkos9EDRKitoIBK2iMszC8mU1Q1fF4wSQpht5Nw97F4N/Sw1ARcS/48gCYqpDCFfSWTRWZq2DcinFDx1U/MLbh6K4hcAwtDbasC0f1q10jqBmUNCY9NAInCIhZCPnvGTVK7T5w4UJD/eCiMPd5YfjpALvE4PbI/3SlNHjluGOXao8Le+BKHr5hPJWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458rl6w4_e2etest","name":"fv-az458rl6w4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"15f4f50a-5004-4f43-a92b-d42a2c7f442f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10005","status":"Disconnected","lastStatusChange":"2019-09-10T23:22:56.6724315","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"4065c922-f955-4401-8330-53dd4996334e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6iyj8u/AS/OgIP1kEZiKArv/LFL3431pAm+EVONJEB3baHsuWuNkr6GorFOEp3dgN5j4V0/GiQSmBEIokozQaI/FqxZiwiZJSRySnNi9MpfxGwD6I0M6/hUlHr5ffQyIsVhv9/BVTEEwFkrWvqGwkg7pAKh+9Zm9ZhO4twDwcsu0WeOfgsGzd99fC02THZSO5qxrrgCKVC7W3FHYvrE3hiR34ft+hFkTIrCVroxkJ+7w3p/G8stkhVR2fZjy55lWyvt7xO5NZ7YXcz5hd8+zLMbThShjUXPN4vVxQz4hgfOm029dvX6sBc3mauB7z76zg0KG2QKEkuByuIlkqJ+dpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458rmajz_e2etest","name":"fv-az458rmajz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"138f58e9-4551-4ffd-8fb0-0693081c0ce5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22004","status":"Disconnected","lastStatusChange":"2019-10-22T03:31:28.5340666","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"7402f0a7-fc21-4168-a682-50dfba6ad885","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuOLo9AC0/D7Zv2ULB21LyKhEPvehkKn065NK+n7LYBCSoxQRdKolKQEN0L3Wgty18b6jFwq87fjZIQpjekWyv/TrsJ0/r7BxDaGd+aOgWLSfOwK2Xkg19Aadd31dkINo4Wa94f7Ed5Xz2IcwN3ILw7TEyXdEySbcgoHH2VH0BUfVDlVTRIrDMQ7pmurEr5PGtqf9ocILmslevTcCKXYOUSENT7kf/UwHDv+kRBRW/HGt06Ex761WayeqYm1VD3ZEH5lD03x/Kg58+vePcGSclAeer6RuoM0zwV7czjjh67He0nmHgqsPR52wyXFP3C0WEy7c+4Zxky+Q7NXghghYbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456vd8wj_e2etest","name":"fv-az456vd8wj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5cbc2415-c60b-4862-81bd-da2b3fd37ec5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23001","status":"Disconnected","lastStatusChange":"2019-09-23T17:13:43.1070082","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f25149f6-c71f-4b10-bbda-258bd1013735","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx3GSDecEZ0lmqKqy/KpOoko/liG6DXuxD8UfqJMThRAGGPhvJcCj8taiWasYN6gGRG9RaM/AlINAT4pLpZAipzn3/M1i43pS7BlnI1AWNl3hmbnLwOZafaS9rUz0eIaTrjOExwaj4zVliUxM/qOvpOiUqWPRADNk08tlSXdbHV+9j764+YG1peiTkZw+IC/3tt27df8EtkCYkqATqpg8TpZskCOcK9qA7VA1PG8Odk400YF8r2OEFTacKUjEbNmp/86eC9x64vv8Oio09pGG7rVdnCNLHAmEYT10wVuVrJ3Q0U6wFR/mHfTQGzhE3BKGRw4Hbowi6RpBWhV8xjaARwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458se9my_e2etest","name":"fv-az458se9my_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"095b1c5f-ef17-42d8-b2b1-2bfbd59d7ee0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25015","status":"Disconnected","lastStatusChange":"2019-07-25T21:36:34.4414679","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"ecd2d084-769d-469a-8d92-1b90eae6d102","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsKb6H3ysXVod6ekO/JjCvGMSeQ3xfbZLF8tfofNa5BoGyPZBMb5i5r6hXltXlEL5ri8ZLs9O/C9dKiBIe/iMf38B/4+npAf+K2jYqaijW2ahZ1iXGvYPWYu8bQw15pjXtxEbRNcIGdpx+ojfKwwR1wfDawLaRKjDQm96uyeccQX1XHEkay0NgcPMeUYdX+DWUGvDhC1DbTmy0i7sC/djo+tskB/lSTYhRAn020d79wVDXKbuUvHJTviFps12j88P/4EAaqbX0YpmgQk6J7o6YiPmaQSAuDEcsL6ddIULF9erSVHGZWvJNm75wMIHZM/nxpCc8nkPA2A9t7frJb2oXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21001","name":"0.1.1908.21001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"26382752-6cdc-4235-aee4-109159eedbef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21001","status":"Disconnected","lastStatusChange":"2019-08-21T17:01:12.558167","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cba994c0-4835-4d73-86e6-c9cb8b43bbf3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4nNymmU+drYQGKSvzmQEVJ8IXHYYAE9x1PJrvbS0O1kUHbT5e80HY7oFZfBz2cFd7wHiX19DNU+nvqd1y4USZN7dqg/kMNrFWRoecMGyC5xaDSnfTUPVefxU+lPrnxXzbWgiWLjSnl4/NNwc9eTokgVXI/fHHlW5BfjfT/cC5q5O0L0r4HqmSuxFJSbA5InpFlFSsTZD9lq0ZCPwbPPpTrZlHL7WluZWkShCGk5Tyhw40uPBWve2hk5H34rCKizMtcAwjwgCjCnJ+83Ox71tbifkudWANNWgioC8HO7U1o9uaZY6Zw48kzQwM5S2MldjlzEpxc8LWHZhde0gGxb3xwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456vd9x7_e2etest","name":"fv-az456vd9x7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9f98dca5-c4cf-4bad-bd69-187b97228569","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fc63c321-062d-4f17-9079-db9a3aad5f1f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu9OXc/+0r14Y461aXOlgTgFo/yHXM3NSyWRvjMLvxXteZinO33V6Y7svN4IMqnbjSa/xeZOWHS4yl0kL8PkOo2LPQ839iNqlbikP4iKE2EUp57HQXFQbJ1CuFDOMo2BoiCwVfU8lzXXem2DJazmdJ3yppMr5xqhxKnfJpLvzMdf0brm3NZJQ/IK6ovKqN8kLHGE0Fv9ErCltztzbZ+WlrDSt6m1lto7D4yhtozcGIVFvJAI2c0w2DUmovQbKfTtQPU7eecFjeEFFKuuGydE4zWuhe+j3cZZrj+M8OUw0hs1QqBj7M9ra8G3WfKGwrzNy39J90ky/EyXpXy0O5ow1vwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.20005","name":"0.2.1909.20005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"529e4d99-da01-4ea2-985b-b4c9fc18d1c4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20005","status":"Disconnected","lastStatusChange":"2019-09-20T19:07:50.9344387","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8616f087-df99-4266-8842-30f1b0630784","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApEGzIiLvWXwKpQrd7sgy84XC5plIc+ilvOsm2Nlh65FLXSHIhFs1tzw9/233bLQCKFEp7xIgd0FC5psC11KFwOntfOOiPH/iLOMbMmuuWPmXmHiys5GaJlUebK2tLXbm1c6O21kMRI/4+8U+cEGK62oYCYdCgjDsbkk5mGqavA5BgHK9A/he04UB4E03/VFaD1X+oDQUlMy468r9HNQ4e31uepiEhg2+uWtzN5C16le7kKFv4pi7cJR4cGxImPqbd369xgudmnuSnz+9rVa9erWGSSUSoM+AJ38TROAmwUkElN9VDQpI4XTYHplPJL0ICyiq92JwUNgvNg1LJjDwtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21002","name":"0.1.1908.21002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"80ee08d8-2a48-4f4d-a368-07de422fb236","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21002","status":"Disconnected","lastStatusChange":"2019-08-21T18:41:13.1549698","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"538c5573-5071-4442-a833-20be928f1c09","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuGvmNc4a927sbKNGHzYF1xlGOX0/4TaFWNZfXmSOb6RBk6kho8jj7W7zBIie/IuR4rrlS/+H3vlJ1hTsiFyFUbTkcB4TvY8eSALGoY2qE6h7dFwl8MJmZj1ju0jGMDJPIlTqpjWA+zbE/izVMrIPqhUoBzQpCz/QbgGsMbGT+T0OjvIx7SPKc07vImKQSmkxyN09azgOFcujD8fyg+v7j9gO6jX2+cm6yKZvKk08L8zHrrh/1oHmjggLckbv0Jth6WBBkGC8Jj0dJNl+mS0Ve60C/mW1IP0W5E03Zz7hz9ciaFvmuaH+I3aKnwRUT5aMt0sAJptoPnWXfQp3eqeUSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fr_test_10_16_8","name":"fr_test_10_16_8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7b097744-b603-4e09-a49a-204d2eedc271","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21004","status":"Disconnected","lastStatusChange":"2019-10-21T22:41:26.0788631","errorDetails":[],"displayName":"FR-DESKTOP","machineFqdn":"FR-DESKTOP","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"FR-DESKTOP"},"vmId":"b8e33564-48d9-40e8-9e4a-9a34081e1a86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5dtLc6s7dshPQAxemxatnr5pOkezspnOXPuZ2TKGw5x21wUKwVpA9XIGfar6rYQ9YE9x98Z+bhV8v4e91qGIcS9BbCr4zbL01QOqiOqJ16F0f6T76gBsUTKF+uTQwcRMP4OCDMMUSVbsKhn2JeDb6VCy1TQIkN3Dp016BvfhJjEGQcMf6TWeqYKimMbeSav3TxR4g6bLcg04nsxcX/8Rqha733CsIkFj9JrYP5Ip2M+dPk8TSy3I+qooeXxNfJjKWKCwsN+W9/DFtGFu1jUiHXZH4w5ZmuWljHm1AQxPmL2bMAdtqLHYPH7481dK/LDux+uDWdlGRwvXPvHOR2No3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458sf87t_e2etest","name":"fv-az458sf87t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"35c33a60-d778-4470-b0e7-94b765c0c16b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.19003","status":"Disconnected","lastStatusChange":"2019-07-19T23:33:59.0602277","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"2209225b-5493-41e8-83e4-6dd1ac056957","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqUtgxBcRN14XedgJscnVRiRYrur3VVyngHHV+sFl7jboufkjjZ6yw1R7bVafjlcTXautWbvGZ/ihx2bpMHFN5QyFwhqPPmFGhU+rZGtNF70gu98ErpzUMAAuISJpR3oy+2wchT/GyUE5icN1ZQeZ075zUnmSgOuNXYA/nkpRuRENoB0CH1CVwo1yvPh+wBdfb0+K7wFgGhKgh6y6F4DUmSxwhEovggXBbsjQj1vwLVN6c22oWIMNExe8ETlLX0imJFKdXu5QTDv1rcVXmLl4B7rOzS+EbkYREWGiDH6RzF5/SqpkGtDKqLoaytwKRNWliOtpNL+X3KYjmqZQyOkZywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456vl1t8_e2etest","name":"fv-az456vl1t8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4f705ce5-c21e-4b30-8bb9-6ed990ade0a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20005","status":"Disconnected","lastStatusChange":"2019-09-20T19:07:50.9344387","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a21daf73-7e1a-42bf-95ce-53ce9b3a3608","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwRrE/H1idzJkrOggDN5G/GOrsxYaQVeRoWeIUxwCx8Z3gQwxl4Bs5aF8cr7MOvuCRxv7WeBDVVCnpDuXUqgBDK6JZCWtvpmfd9UQN8xJCReATL/D3h6pOQ8Psz1k6lUQKEqUJr7HTXLHFUQqXMAR34maV7Ot54aUhwU8Xv7TkgkMXlYhgiBqH3JJgmcYDqPJQDB/kBTqZNfTW0nsTniaqa8Po+gYGFHBlh7is4GJFZOm2+k3go5SbbX/2wk9dmsLLqJhPcR8ROCftr0LrpIVYJQPYbDYLJl7Krex2F6GbIkEKLqumJGj31Sgt0EmSiYeynXtnxo/XIjcV/kwkh0QNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458skimy_e2etest","name":"fv-az458skimy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4e57b2d6-586d-4bbb-96cf-406c74371bc8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30006","status":"Disconnected","lastStatusChange":"2019-09-30T22:56:14.0129708","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"21002fd3-c3a5-489e-a54f-7e373513c8ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzoiphN8gRX2VV3fwunnZny1qVFN2wWC6iQc/iiD+4LwnwjnGrrG3YYNnmcvmjRTylAyL1N8pwntJS4j41/15dY4GSG7f2twaaUP+M5cEBXUXSZK/7H5wbnyS0sSBOCs7JD1k5iJF8leWMYk0eNKDN5HTge6Dj6MUdfEqQW8wjILh5+rJuS/U+pNikjAcpgGjlvrrpZSCoNam/zyQhE73pqyBrZBi6edYM0CtzTrdfxHSsNZcXVjOLx5ydSeIOO1FHJT2tiQclz4Fa++lG4eB4rkneD7lklsNiSQrSzik7MXl6hYYfB9r66zeaalhPZb1MiGL+m3Nj5MbrRgOwkqvcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az189yksr3_e2etest","name":"fv-az189yksr3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0fb8b34-811c-4d61-9f76-75f81386dbec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23005","status":"Disconnected","lastStatusChange":"2019-08-23T20:28:04.1572377","errorDetails":[],"displayName":"fv-az189","machineFqdn":"fv-az189","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az189"},"vmId":"7d9410ec-4478-494e-82b0-9a532f4e8929","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu3cuYOnZy0kR68VdRwnXT1TpYvoehv8qBs3JDpDjFPGxt7JlpN3IqbzGLdepkEDWNQt+UAKK8f7b+psKizEKuArgIKOQM8TMHBoZlrYlwy7PALNrIKThfJei8aQfnkW+WVz39kND4OyShR2N2JuyjVcvT6NE6r4KXqqPTyJFMeppnfdhciYu8FkhfXgbbU4zabXpm6KVSf8TRnpAalcTbt/kn+lClaCc+A8/FkRo+LsWcNeYLMQYRicnzqmCVyG75p58l6gDg23uqVfAmDRUTHjYjuJx2CxCJ38Ki2wTjFbTLsHgEAoYT2QqlWi7xVOedthqXZBJIHYW9mujNUzPkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21003","name":"0.1.1908.21003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4dd9d9ea-3530-4d8c-9e54-80b7c8fbe9e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21003","status":"Disconnected","lastStatusChange":"2019-08-21T18:56:13.352039","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d9d43f66-ed53-499e-978d-87a526dc2d05","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApQqM59m5mDh0YCSi3SUAcgCemLSwwXbVBChNCrBpI9Yaw5TtMB2qoELeRNWZlRr+nztOmMCNpWt0Iprr5YVzwz24hSNcNU+iPCzZjngg50NicQHw/8SFv+JhVy2026BsCQaNQszNhm1u65YUU/s0au96v7wuXHncGLPmLE9CcrCEEES5fFpFkTkZ5hpvcIwphmOwjBTyKOASLaVI/oMnFvrZiDU008lSHOfcZ4jNeXTAc83dQmpO/KOExQrmfELaS8GOyQhE3xoAG56TxB3IrQSD+dOaRwSswngPvbRF7TMPJ+igKfwlqXK3PkhRAvQUt3CgCKSXRmJs9SyCypgQ3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456w31ux_e2etest","name":"fv-az456w31ux_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5b19817b-9146-4f79-8b96-37d1ebf43a88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.18001","status":"Disconnected","lastStatusChange":"2019-07-18T16:33:37.6480341","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"00982c6e-b36b-4a96-8bd8-665d4435afbd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1jFpLywB9FMZrnI7vITpV6Da9HJaixHNPIbiNS2ttoO+EmIwyjZZRaPevPR8QzdJadxyl8xxvlie/v6FJHxoIRnIEJqHKojCn6SkcvSdwUB0AfKTZqeebxv7OP9H5vCzKT2EToqZvv3vYqTLUW/DP2TlJx4FcuPLUuqNe9+FsZKw4uOMENV4h8xpo1ujopqYpXgBCSeFYCif3efZAu9w2hwf+//AtlpoBTD1vxGw+E5aGBpq3A1jUg8EkzuoEg+gDHVqTCQ1MJULgktfh0KfX6N7VecIVaL/358V8pRn+Ozk2P6SVqQtIRSEpNvERCHV1lPipGILomZjZK5zFqFtgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461s8a06_e2etest","name":"fv-az461s8a06_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98b17de4-09bd-4d23-ad85-abb528501bef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16004","status":"Disconnected","lastStatusChange":"2019-09-16T21:25:03.4116287","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"541e2a94-7164-4804-a7b3-3b18dbf80607","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA08JSPt9w5YFKLHULWWZMWAC6rxuVS8OEO+JBScPP0Qjv05BETpZ/O63n9NNj+m4PbNlpgBQMM/qej4mjq5Di9NyzyXQ31dcEAsGpRIa7azcmajYV+NoPQtDR0hapvEdj/szCi9zVsQSEZHkaB0TuSAXXQjh8Pt55o8IaW/+pkjJmwSdopzgw7+cfB5hTLLFoQMtA60Xvu0Sbwhd/S05fXNhe8//gbEJ4fLYmxV5sXgbf4HFap2+j070FNbo6d6L1at0T6gAoWbrG5+DP1hKakc8U0cY+R1hjZOuMmcG3Cuvtminw3JB0gnmhcle70lWYp021uF+0JZKA9lFE5tbGFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az548treh9_e2etest","name":"fv-az548treh9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"13ef6b18-2228-4b33-97a9-6552beffbe91","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19001","status":"Disconnected","lastStatusChange":"2019-09-19T20:42:43.1079175","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az548"},"vmId":"b1f4edaa-a5ca-480b-b2f0-a8ead38e371b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuc5iZS21vkBNk4uemmXJg7rYEuvwKPaPjFlxnMi4LqF310pVBU42BFXHzDxJqzR7rF5fUNMPUeIc5lYo0Mj98gBAIW5Fs42GWzQG+jaOnFXmFD7GpgZasPfZAyXavNyY10sEooVqCJrVg4YGX0BPMIj+eEsdnq+8iYg8VKQ1QeHNGBwldLtUaiUIjNZwJJ4u8ro0+0ALUUPGIBZOXuNTJJKZbCDx058yzacAf0GYr0ukTuczYBXuOq11/+0MtCkGmDSZhqsHPeAt5WJA0uxB+J9z1fZryY+U4MisIieVP8kz6ScrHCiQTPIPC5I6blirONzm6Gv9FZaSj7xCp9QV9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461suawm_e2etest","name":"fv-az461suawm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b008c699-6178-439e-be96-f4ffb8a96f26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07003","status":"Disconnected","lastStatusChange":"2019-08-07T20:32:28.8348212","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"1c827e5d-8e22-4f10-aaf5-90294780ca58","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy6EC97anyqFDDJigG9XkenbJ5wq8yqnEloD75xjwy0uzWfzSHCG9ExuJf0VVhCg2fQ5mWzPOOND6jGbMPVib73ur781hiI4h+89vCBmzHyCCFO+kMw9Z9onKLhmsAEAOfzeVnVI/Ev+kII0XJAFBaYvATD9+YIwHAcNNoU+mmAXnE1obYScLMPcBzTGQba8RGyUolkgiZh/OJAGGFk+Tgs45ab0B/G9U3y8RnR4L32ni1bizvV7ThyEt7WSmV1IgUtqGS5hjOsP85D9ae41HP8hItLhg6lusa2qJyL0rr0t/NyLuRNc1ym2+al914LUkUIY3rAZlk+hW3IOrKfVpDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az219mgou1_e2etest","name":"fv-az219mgou1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"37fcbd2f-18b7-465c-ba20-3f6ccd698385","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.05001","status":"Disconnected","lastStatusChange":"2019-08-05T21:26:15.73134","errorDetails":[],"displayName":"fv-az219","machineFqdn":"fv-az219","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az219"},"vmId":"8bec8701-d2ba-4095-b7cc-efac9854bbe9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzaW13gEAP8IsTXRvDJp3sV/v9a7S43dwSdzAQOWd33GIb0En5WQ0GiRHDayRUOc2la/NpWbCrNJCms5ixW0+TIJG+r8zOmnNeIJuUJeEScfWrlaSfk2dfuK2FVmUjNjPqw3UWkjSy+nyG7sCKha2KV1JdL90IXaLRj8U+JdHVBnKFHhvoZydk6XcgDNTm+vfyh7VOCWtWqD12pJeB06hSAEgrOphW/rDaHjU/g7367hdwgbfkGSnchQ+FkwuRMqInXwqLbynRL4PPyBBUuob72dsJihIV6rxbQ26CG8GtlvXuqw1jjsft9tZFGB2PIvWT2BYOuKQm8BxrJpdpljeSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az58156g8s_e2etest","name":"fv-az58156g8s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dfeba283-11ba-4580-be5d-bdbf86887b55","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22008","status":"Disconnected","lastStatusChange":"2019-10-22T17:26:34.0512589","errorDetails":[],"displayName":"fv-az581","machineFqdn":"fv-az581","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az581"},"vmId":"8597e5b9-4281-4722-a8e7-c4c39b0c4b27","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtLfSb6AaX/jNqCFhJq8gEq9fJdhSLkppgdLC4Gx6Vb0neTzplUV5/ul4R7Ig5EVTVcj672GqNJDe1BChVhBXSWAuz4NuqRKflSak6TPCJ+Bl5dNw/BdQpqdOQaKGUSwhHbXS3nNZj5LlqObYeLirDBXH3jXtVa1HI5+RT+BzuitFYMjtqdKp1/5Z15qJlAbdP8Fw1c3OXpdnrzclVPpBibwxe6CbR3YtsjnKJfbRkdeGh9/YMft/Eiaoulggyx5Lot9fxmanIQpAceZhSmsFAtThOqFuc9ptOE9ajNQiQG4VNxAcPswK//j7syNEOtjKpBjK5L3ml/4E6bAv9FKIgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21004","name":"0.1.1908.21004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98072d17-a29f-4f22-b589-ceb709f1a733","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21004","status":"Disconnected","lastStatusChange":"2019-08-21T18:56:13.352039","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"957f8e10-6105-4fae-ab6c-1bdf6d50dd4e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzVPm+MR/eQgfF9yGhq55cDRVEnz/lTd/SzEQouYwGVzahHhth763VzbePtBrtiipjKgRoal5VwSxONEgYdhoGgkCLUfh1JYVMcju9ZY2dA97hIPhkZMR6qU30XtJAwnRcp0YiP46kKHNWZ3WDYxtt2RTqvhX2kGpfnfGnO17uBRkYinxImqu+njjy/UIR2p7+F9Qrj8Bwtr2qfENkFUGAyK0yy9jiyPE3SCtsgTtbk6Q5ym2F+JjfpC+wZfsIcaobwIKrgKr2TY8HpqPLJOVaZSfTgEA+ovVdQTGJA+qMmUU+PE+rZONTIQBFyFebACB5PGfgT5YC/dH97uMVX8wBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456f7l81_e2etest","name":"fv-az456f7l81_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"86add91e-1a4a-43e6-9606-5e19cc947b32","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.28001","status":"Disconnected","lastStatusChange":"2019-08-28T19:03:24.7624542","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"687e28c0-bba1-4e6f-8ddd-d13345c279e6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1boNoKpSq5YMHO+hDdKrZNXkaPWF2kiTtOw06wj6DvXfhxt4bS6lymb1neYCH0VyXz+LiNwIWlAy7pbF1qizvecTKrv5Y45Wak54Iby0QJzlORtWf+XnYxmjnEj5up4kXah8sNdkxXLJJnmTo0N0wmITTmr4sFPEvJicJTqZwOhevw9EyXzS9HJl4roiXURjPUEET7dFg9fhx3wdQGW5gD1Z29M2njU0ZyX6+WmISTO+qDOgBlstmxM8Nm3bauOYlXYnxtzt4SedBuspIlkfzixR3oeRhArVhRlV5CcHhDWL1UBGXgqNhR3EiTPYWxnwwzSFQjn0ZNlZ91VWMDWHLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az5819mfyc_e2etest","name":"fv-az5819mfyc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5dd0111d-9ddb-4b2e-b80b-256c90a54cd7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21012","status":"Disconnected","lastStatusChange":"2019-10-21T22:51:26.2324611","errorDetails":[],"displayName":"fv-az581","machineFqdn":"fv-az581","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az581"},"vmId":"b48d8cd7-a8fd-40ed-a031-0f16d3712340","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA20GBkGWeig97/teaZgGXpJlzuEEVZ5os6XfUWFCd9PQS1tO4jkTJJgOZsWcnx/ZEugKhM9328BrHz+lqUmtSlBFyBUQ8cnmXRjA5BfiIR6Aky0WYLWj19rm38mI+n7hNBL8OOFu8aKwPtoiSskyVPtLIye5frnBYFnutsP2MmT/1J16MF5vbtRoLqbrJPZs0cNzijbIB3vAeJ05sm7HyMx/LilB0FWw3Y1zkU2VaPULfwY5Mg2az0T5J+yxspN8igEyvfZtTG5BFzOooLS7UJrIOh5Bd6gPLnV4i4wcXL2mqB6Ea5RQMEl8sbsGdVdB3UkvWYCPvXrMZi3YVolkFxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.20001","name":"0.3.1909.20001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cefab123-1a8a-4657-8f45-b150b5173880","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T18:47:50.763962","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"949ee233-96a8-4b1b-9eaf-7fa579121c7b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArrzC7ly1QZwL7yHj+SAOEaYgCpxwE1VFsjZqdwL7OcWdL7BmRqDOYwL3fOdwnl5TTeiw7M+ocak/sYJogA79htl7Po3BtRcgJ5xpk3eczhutA4WclDYnYj/oYQJRi28CzL+SL6mv3Xg1MqxT9rLKDMu9iP57JarQR59hkDuXwXrYKZE8/oscfJwvRCo2gKFMazhJP5mNsDZiVBNh291U4rMn/7Vd2CtoJ9gPNVR5wATyROB4tU987m2igK15ii4FZbLKD8OTjrFTZQBfUboq6GZrw5WTRKm3L7PBKOjTqFEF0iC78sBhxoi0QMzY53va+mchbBpfXu+7e0qqqgWrfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az581mhi1g_e2etest","name":"fv-az581mhi1g_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f5d1d94e-f60c-49d8-8d1a-d24238064a7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21011","status":"Disconnected","lastStatusChange":"2019-10-21T22:04:24.4093744","errorDetails":[],"displayName":"fv-az581","machineFqdn":"fv-az581","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az581"},"vmId":"1eb31ce2-545f-4678-b530-3543a5cd9b51","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDGxkKJSxCntgV3pDXXGQOxt2S2WdhFyF952qKRf/SXktt0/FC0JbBLjxy46jflc9RP0R/7x82XjwLeObM6WwCXaery4sQ7BDCCSe7cPClkkdDpC7l4OmRc8J/icG2rBJ/i3aomKK313AxZabU2gtf1Ok2uAGHMU7HD3q1LdDaoe6cnpW5O+0aC/vNc4AZSSfrrtL7Si5TxwG+R0dj5JKTdf0D8/zbmwnznD1+KK8upZLdlThuz3LyNT3BpV8KAhHaeFZnA1h+gYGhMx/C88DxCOrxbbHF1qjj3F/ZHh4EJTbtCGa+SPUAbSQLN7W1GYtuQz2Hv3lFT2SEiJrFBjzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az581r5u4k_e2etest","name":"fv-az581r5u4k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0a5303d-f090-4e74-8add-650de5876c7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21007","status":"Disconnected","lastStatusChange":"2019-10-21T21:04:23.866776","errorDetails":[],"displayName":"fv-az581","machineFqdn":"fv-az581","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az581"},"vmId":"a7d4d460-699a-480a-ba27-904ff792f3ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoSr1QLUZDDLpwZjxUt+DMgZcfbyLY1Im4pfB3b3ARV/XwXIRGLK0PaE7ZljOYmtZOL67U+FIrvnS8LhF9kkWLkzauLA+oXPew+UI//fN3RVruymRxxqQscb16HohgjBj4NoVuybKHPC7yFWQeOMOhpOf2OK3hjvArX96L03BvC7JPoR9j1QH1IiRu7G/N2/lHl+1haXkw61GYUcTxLRSE0vUO349WrRPlFbiFiSRjmhNjS8gh1P+ZtGygUUnsoa1YKqWEn4PmzIrAXdJo61IHST1uzqtr3ypybd88aL/wWRulqLqnwKgbP4S0LBdO/8yhFmQbC+KtjLesliOUZ9lOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456f8ome_e2etest","name":"fv-az456f8ome_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d81095e-42db-44ba-8c7a-bed5c054fd2d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23004","status":"Disconnected","lastStatusChange":"2019-08-23T20:18:04.0214026","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1f005d20-6788-44e1-a959-4424177063d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwdbtwClih8NqmnO9Lu9IujScifCKCVR0L5bLzZFHYLJguM4v6FWGmZAbzIfCCxBjS6q9DfTtCz7gc8FGaSFqhbIbF0UO8n6SS6DZnTJeX6RDXRsUU0sboqchC4utmjIrOwskDsxMI2ppGz4RYHMe+b7sGg/X9rRiGSHaXpDZ1aVYLzL/ufLdf96pTH6Rgji/ng8L4/SbgP4YYved+/0lt+e1dkNr9rghVMjaRvYYW+vjaLCoTtLRn9OZoEMMKimnCipd5JbYkMvdzoNvC/w1pLc4KwTmkwOAB2kJ2Y2DZzRdYUMUUUQdFFLwpAi4fsUmvLQJxQE/PViqTOHJ+k3/6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456w4ign_e2etest","name":"fv-az456w4ign_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68e30ebc-d945-488f-95de-d5b9206cd85d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05003","status":"Disconnected","lastStatusChange":"2019-09-05T17:03:50.3494053","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"72ea1a62-3117-426a-9843-0c82201695c9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlMVMhnCsHQhNtIWPYw7j8cs3C09Tm2ncsUKkPVbXi4+PEhd6UMiRN7OK6afONgS7GyaJAQW68HeqdaEjqbV5WaJ/rvX3Dh2uJ4xOo2HqKbFKIFpi3DiRIVuX//o6eWUeTt+wzMqkJPrQ7JpdgNLfSOoPzfgiJ1PAx09mmsGT2tAI7a6xTbiNnfBZHBQsgBPCErZVQ8J05nEd6SYMxiXSp+CJwZFSVlGqrLo1KVWauY61zdXKkIFQjDFj0/sZn+NNw3TvVwBwqmSOZdwIRyL77VWDYDsUL6mOfkIEUaiE0vQcOzqmZYRgJZR3mMO+u3gBZIujnSEWiQB8c95AgqbGIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456fck94_e2etest","name":"fv-az456fck94_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f68c7f22-5bd3-4914-8366-3e77294f64ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17004","status":"Disconnected","lastStatusChange":"2019-09-17T18:09:33.8033566","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"61d0b284-cc5c-4367-b5dc-4c0ab1f4d358","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvg6QhshH2HBD2p+I4ZFG7vjTq5vOSOE3GV4Mgac798W7JGv6Ksi/alZLB0huh6gvCbIulEx6phJoqnZKZnWgw5rverbdzC02wNmKi4dVHKibUOhJIt2jJhLypaNslh6wPSfssnVte66Ftrca02dsAMyUem+gGXHdhMSE+2wK0IqZelcHuwaIoc5H//D71ptfFvPzG2qN5AW8zq0DjGLFgsw9NKUnGgEMOKgwWjjyLEWiMBf6Cw5ELdEOt7KVVSWRdiWJ/jQ0okk9+W+NwNTx0UqqzxUj4NssAQOn2uxCg4wRYroceNg3YBQ0CtouvaBX+s7R32NC6eQYr3E/EwcTwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456w60mv_e2etest","name":"fv-az456w60mv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c3858183-4cdf-4f4b-b923-6509edbc5d8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16001","status":"Disconnected","lastStatusChange":"2019-08-16T21:36:12.5722718","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"280447db-560f-4480-8661-02b4713d56f6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3bvjcOzpII2ZsrOjSulUwBka4i3UvAr8SQiqtwfy1ry3cnOHSk0rBZZFuppU9ugVv4Ny6UMOaE/ADqA6nnUI7lYzicXJzoLay0OVXhZcBlSKsJ5U1rClekqlpqS54AxePR2vbpN81tzhrtvTMiuzA9Y0K/dMiD8Krl8V3xYJosWUlXxlr/tQgHFhPtZXCW+FXOw/BoZyNVNrbQBmMCEVcSSkpjSfPxG+WfMmP9tDxSV9mzPQZNVmwzzpBK9g0EpLpKvlzLr/XPjZpuXUge+Fu62bZbNX4x/p947+cO2OaprUpMWC1f2OGAVqC6IihOSnYJq1SSN9t5ByrJRpJ/RfuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21005","name":"0.1.1908.21005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"02448f6d-0319-4eee-bda6-a182e6bd7831","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21005","status":"Disconnected","lastStatusChange":"2019-08-21T19:06:13.5097552","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e605375b-acb7-4bc7-9244-5568748c9413","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4HC3yvMrFJom8jn79xRTs376TvKgQp2RO/9FpkEQbANtoe/CVahmGY3m0h03UGm/AaetR5dvGRUMWich+YrlHJWo9XjKDcMRijlORYueAsrkhmJYD5RBV3ei5ZsnB+5UnYpC348LDg5OaBTQ71XxkSk6gFlQl0G0FOOrXDTFYe/1AgxTkTKv6GoJkms2bLc3kB19Uw7+R1qNMy9gW9Mc11cA3yxsBQf/Q1oJRtL1ImFm2f/L8gci2j+Inb397SuL15JoEWnmDzwcWpn9dntHAK0B9iLke0StUDhZyPKXI1iJOPgeQvg/ud/rtj2N1D5oXT9SNQFUzh3OH63/ThbCjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az581u4qmx_e2etest","name":"fv-az581u4qmx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4068646c-7a74-4ea6-9a81-81e30ebd1ade","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21014","status":"Disconnected","lastStatusChange":"2019-10-21T23:16:26.5737799","errorDetails":[],"displayName":"fv-az581","machineFqdn":"fv-az581","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az581"},"vmId":"6fff77bf-43c5-4a39-bb98-8f51018cf972","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvcxsFwNQeE9ZPPowQnsHsfILbNsdNyseBLZli33X2sMX7UaEfwmqo9t4xF8SMzO3YJoVdQYps1p/Ktm+40486tIMSU2cpP4JSuDEvpIfsBYPHxSeg8q/z+bwk9N0YumiDZoTNBcXpDO7YItkWpcjRBTxY6LQKCnZvm5u3W2iOxDYVrmi7dRaS3WVoC2k/bFEt7mcfFoLFSrF+52IMhyT0pPMQOHncFch7dfg0+yWlhFmxuW1T7EvkzJQV5qTjjCkeAlFY343Ivx+N5PmE+eZmPyZX//cAZ5jvqiSZ8aWtuDiQOdffbrIYFvXyQMRO1evT/NVjHDKDey6uZrJhLFv4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21007","name":"0.1.1908.21007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"169eced4-821c-460d-a2f1-eef0bb69e42b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21007","status":"Disconnected","lastStatusChange":"2019-08-21T19:41:13.8683375","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a1a12439-8fbb-4193-ad96-37c6a287f923","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwhjZSoBbk+MKXrs9WyW25xwYc8+toObFweVCtKlo5WYl4n8AvV1JrvvMRY8KxP86QCIk4blgX1VjGQ8UZd21IN22LkZrw4DY9wx/6X7/vZDeWi3fryRs4SLIDHtJ30E4tfO/Jrokw1k/O+DpkRFLCfbRdf3aT7FanIkAkoHntve1diYTevxl85UW/XebwXHYqpFRCzZaOHGfCHTaGTv/CazPFhJa8tq3navIhisV8Kf530ai4KzblOlYxG8Pk7n1DViP8U7tS4Hvul30ZRp2pz/Y3ugWEc6M1nTYFi1CAF6nffKNaReynG05GG6QG/m40op/04hi2I3PlIa4r2NJaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456flhe8_e2etest","name":"fv-az456flhe8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4954cd1a-5a9b-4921-b4b0-c1498b20fbbf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.28002","status":"Disconnected","lastStatusChange":"2019-08-28T21:26:48.6790284","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b1193a8a-804c-4b50-808e-55398a00f050","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0HldNC/TBxsfMMcm4j8Jxa1TFWtNKO6slOspRapFz9Lh5iCUWeU80UfVURDPJ7apbQV4eFwoEazY97Pup74WMm+C1gjtRndyITapioThmVTzptOvA7FCyeBqpISt4kvnagIu0/SoTolm5YgTGTW/2UNW7OLiOYgw4b7rz6Eey89G3HJGtHwaDaIQOvCTWPhf8f+YUQJL/WFC41jL0Avx5aLTnW1Tgt509/bTAwlCJ2Xo3FnFUg/TA5O0K85s9NF6sE63Odedvza9PjmmaLfbtGV1KHnicolbm79QeVsrTEqEOSGRyA4L4eCoQmsvy6mACEFInq5Zg8rGIwSSf0GzDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az219q2s6f_e2etest","name":"fv-az219q2s6f_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3c62053-eacd-472c-b9d6-cedae40e6567","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03007","status":"Disconnected","lastStatusChange":"2019-09-03T23:24:25.8564104","errorDetails":[],"displayName":"fv-az219","machineFqdn":"fv-az219","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az219"},"vmId":"8a1b32cb-e393-4a91-83f4-9627bcd2c0ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz4MxLrJTwz/6VxBJ191WX8PVLaO0XzPsjD/EsJFODmj4RcAh1To5ehh59rfoUV9ONLVTHHK6XXDS9VByWOT3KjtIKqxbD7vzwSnlLwvqzVKOJuwZVoEdnBlfWKvH6+iB5hlSd2F1TZcj7X4vqcuUA4PCMjg0XKN3JOz8oh7poi5Tvqh5EfBkthXY5AElcTV7fYfJht8fJcUBrGLbnWLLS3cI6v685pH0njvbXUp1dpXQl8gJrpiKt/l9QTZOeB9LTJ+rJ26Wg/OLFMkcZkGQKP8rw5nR44V8fgvFG6KfXTo/tAcDT+/bk4/PchGTDHREBXe5lj8HgDLQIjaXObbkcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458suezc_e2etest","name":"fv-az458suezc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99e9cdb5-cf24-45ff-8534-be12ddc963db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.17001","status":"Disconnected","lastStatusChange":"2019-08-17T01:31:14.2380189","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"69155786-c655-4437-b119-f2ac9ff70fe6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwtSGQnsfjUPcqPcAzde/4Yoj+ycxW+ueOMWT4u6Xp6KFO/PQjrDsiNfAron2PUoCYgEKJbnHkjLOp3AiGkAwRtsJl2AryJALS2HQ8/eaZuiu0JOlgJJWTkvGWIbMYFIqPdnb3iErXf9XFcBlPBS4iL3EXL7tBZSbk+zCxLFYBKDwgMWUQt7Sf0SRLj54rqrwRK6Q1lG9K2WvFy+u8WUo2VlZ+0hl8PcQHKnTKzuQQ3jjyjUyG6OsCiZi8d/msvXSgeBBc07gjuYEndcImEgRV8o0zyGNZkk4SMBuL6gGWGJTq7WShCoOt/PyKjy4tuC4OaHe8OdsVaeD9G8hXAbbsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456wa98o_e2etest","name":"fv-az456wa98o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"001d7152-ba29-4d36-948c-f4b37a82697f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29009","status":"Disconnected","lastStatusChange":"2019-08-29T21:10:56.8373195","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b9614f15-3c62-46ac-baa7-0d93b9af131c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4N0k+jtySWGOpvthlEoMC4PikArazwM+Ol/iFpsrnnysiiQY1/v/m0gKnFtGNBxSkqe+kxfshfQgZgoNw45IFoC8lGnqsihzJXK5qj2Yz1/gbBWUVc57wFM4vCGQFbPjomXwjRgjm5dD3oJoHVzrog553UtC83eR5y3QMUQk8CLNq06MzgA5gtmCjw1cQ8q/NPA0f/bRfrNS0U2B/Ke3CoSBUyfzDah94pPX+hzCx6kWI6Y58Mm+hyIMs+Wq0FJtHWjcHlCix/GLSrZbafZMPVNfgarIY0uGPwImcc/K8E2BAPkhsDvLxSRORlUxa91u00MyD7nf2jl+18/h/ohu9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458t0nul_e2etest","name":"fv-az458t0nul_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f6a4f95-902b-45c5-83bf-e430795e9513","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12007","status":"Disconnected","lastStatusChange":"2019-08-12T23:51:55.3350552","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8996eb69-a474-433d-8842-20324bee13e6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu+GjeXqNCCu5TUPoklTCDlCYeqmem/KKcqj5+yrOfBSY1OrI73yqKi6iRNz9/GMLoLAwqtCIWoTKZpbkoAeOFxm1slCccrIy+8LLrKtGvn+l64bL+hKqB7AC0NZTWxjazT81yxkvcqN3bSkSaLjMvyhZtUS3iOFYbNOuG4A3FuF11cdWrv6SdK7AAXSbtoj5enrtkrwMFBbIG02hsRlAeUl/q815t/HAVUGJ7j93MVyYi8cvL4mFwYqzVsgZ1TKGUjPuddGp6ypXmygSF+TMwcOqHx4a9kMfNGWytZxX88demJ68aVXhOJq5fu32anEgOtU+2tLvJ0QJGr5pZd1oSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ftu5s_e2etest","name":"fv-az456ftu5s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8f439fd9-cbd2-4f53-90a3-42cbd409c1f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20004","status":"Disconnected","lastStatusChange":"2019-08-20T23:01:06.6264717","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3879b568-93a1-43c2-88ee-be60f2628bbd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwOM4femILXu7Okg0Pfd0GCk0c3yr1NdSzmHOCxefFczQZXFvaXwMBhaD0FXL3kEc8rw0u8DOlArXdw8K0ya2u+FBTXSE5hSd2DcRKxvBEA7gz0L0jtnk8AljfSqHCoqXnj0ytC8YPBPXCIshwXxNBoHL0v3+Kh1YpsWXRZ0uFdyIYd3RDu8nCGc6fdryUKY8B00bbAe3MtkQFjQ1qZqWH8jCjiJnCinG4fAG/smqRiOhShLiSZMSqqgsPVuNQ8twb5vF4uuIFHppVEFqNvYC6zeOeE8o3eAUdwthRA0gw1CrszkwT7HxZsDmAmhpCDv16sgBwhIOrKsrXnTnehUJCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az59581h0d_e2etest","name":"fv-az59581h0d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d4d28730-c54a-4823-aa05-be972e06c8c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21002","status":"Disconnected","lastStatusChange":"2019-10-21T18:49:22.5583411","errorDetails":[],"displayName":"fv-az595","machineFqdn":"fv-az595","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az595"},"vmId":"6887d62c-5c82-4181-b14d-b31653aa28a0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5tpua1ALgclSP2t1ICS8zjw3wu/pU1StFRMKKmPIaxyvNkNHyfFwT4IL56yGZiYSS0C4mdVAMcbBSIEVzqd/n3CiMEUwFk341FOxJLjpNYRAeaJDTPuNw2P+2zK6sqaKOuMWxqqmmWJRK8DLMD6DwczSP5MItT/JU1ncLzbWrxWvDShsBx0a+SUCgbdJzELjvkfCHr1G79Zg3dXI5RAK/30BF44vCxPiqqUOczY0Shnmc/NaRnw6xVfIhIdrfDOfp8uqkcEJNeBWkxB9WzBhv6SPZ6C4UTUK1rwGiBtCx62Xf8yIQaJJkyUvf+ShXirQpEP5XWRMiBiQu5zkwTBMnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456fx39d_e2etest","name":"fv-az456fx39d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b093f8d9-bb18-40f0-be66-1a13a79cc740","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04003","status":"Disconnected","lastStatusChange":"2019-09-04T23:31:42.533593","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"af747d88-160e-4502-b2d7-ebf6b725fa3e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwOoJ8g5TyKP6UZDP8xUR07dR36AZz6T17hxLGfBxkEeawOf56J9SMEBiX/x1r1F/kFPDqeG3mP/5qjBlrVLdnXy0SAJRPFW0eFwNjsRNKOTXL/TfHMh4ORBBaFysL2QZV4SGD4mmskl6FGEpbrifkmIYNYw9J+9PcmMAmSFl10mhQaYzILifzM5WqjCDKVApcWdrjuL5SrvoU+mgAWm1l0B+7PGy0Q+6E6WEbooBRvgkA6sYreT2EGGjStGbgs2ynIBBRkGwZJXhYOjUUs0qffr/UMGWE8kj01B5EsfUiTkI33plikHPxF2oXuCwR/TahshOKggYENdpatKmLCXPsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az595n27qp_e2etest","name":"fv-az595n27qp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"19617ffa-3efc-470d-9bea-98f8730526b7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21013","status":"Disconnected","lastStatusChange":"2019-10-21T22:56:26.3178287","errorDetails":[],"displayName":"fv-az595","machineFqdn":"fv-az595","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az595"},"vmId":"2195c117-d175-4c71-b681-49a0a08b4578","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx80s2OkfMaIEKkwkOvgQ+j7IZ69gFps+9DVJ5cVUJUU6ADVkBdRUMuvilzDZWLTGN5JDVbxqgq1jYlyUMdbpLRF18xZWleodos98can39FXcue1/uWrFUJrc+IW1ZGtDtuI3AohlwGUjKynSY7LXuGpqkbrMCZDe9oWAmuxYWqCYsBEbP2MAGTjwUa9GPAhpd2nSj2aggipsxiaMKDH+K0QjW4glX1gKjjUe6VO8nV4N3FlzLjDK0ZSPLQqYJ0GsS1FwXFtr1yvkvc7xFOVV15ixrOx/ingNdh9TPivsNBgful8C2xuhNeVHDsSp5XiCkIDMyLafvtnBYsMyPT6fewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458tc8y4_e2etest","name":"fv-az458tc8y4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"769df772-e80b-49ea-a02a-629a9e48efbb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14003","status":"Disconnected","lastStatusChange":"2019-08-14T17:37:21.4464527","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"a238e592-b407-4bd3-8294-b9c8bee28344","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy05O0go9pA+3sp7Em/Voirb3bpe7oY6/L0+tJIZm2neGp46jH4FUKFf48QFmOLl6cOpzpK0O5B4lIhl7+cmTfPswpSlT5RzwQGZl9et2Pyfts1WATdkeNjNBeE0SmSK3ZpjNhsICrTlTs1WMOYgT/JZvJDudY4DPggKE+6QfGMolJbSj3bzOWGjmNVVJtPuk16SaPZKOhV7+WA46M54jW+YhVRGIcWwP8C/CmbBjEnUDfqvl33SYqNkIaMgN9bbRQYj4gqyBNJHg2Zs+xMfVRZ8QrOV7hx7DSqXcUhmN/Oo+mauVAKi4eWFT2SpQNE5KMNszYYdvrqDU635/eqXRVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.23001","name":"0.3.1909.23001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bf86003f-71f1-4a73-9ca9-9b4b9cef8c12","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23001","status":"Disconnected","lastStatusChange":"2019-09-23T17:13:43.1070082","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2364fc72-02d1-435a-80a6-bf67d783ef46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvc1prvMQkIKEeQ4Mh6o8X7gsKLcpBVWR7zoXuZn0liqRCfMicdDL5I0TnLWkZAj8x+cIXuTbFk3DbhGs5EQnLXGeBsi/tlt7Br6lI99HJjpS57HYEcpEKniq28cLEavPJZP2ro9fI7L8G5+/MUyqTPlj+4nye/UL5DU4yG3VHDP3siNJRest7vpuk2jC5wNaCSir43ygDehQ0PxcR57slD04DI9Ek5BkEBC25KTfJSjkKUvSUGg8DshvEWgbOLHcZTT0BmoXC9KDvk5tdajGDAMRmIH+MubJcK9TPZdml530nqPr71jSuVr3fl4pDxOhrdoAtRz16JyIQKaknevNOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458trymg_e2etest","name":"fv-az458trymg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a4811ceb-620e-48f4-8013-99b4cf81809f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T16:27:49.6402475","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8857fc8a-8ac6-4b02-92ef-1dcce8326618","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwSckV0MwrrC8iys8yastiyWuw6SEzG/tje4j6+ksNd+JdkllA5YCCkJ5C38smlAqEoXC/oHfll9nnLSKpz0i7vOZXF2Ukk54xIUNK9snss6/vK0RRzmdNasut/Yv2zarkIfT3XVmEVDqV+fYDrCI+WDApCLstXMm+RXw1mBxiqeND5PDJmilRx7s1Cx2pD4rNALDXRAn0ROFAQeZppIxlmcaMcex/kqtrPg4rsjq7v2Na4shdvOqbBLhyQpm+cIQLaLYeU3yUxiBYWUY3hdjPTW9f1ANNOCKNGNaDWooyIsMR9/iWFHHPPu//sgtl+zDrlAhc5NRgezwZwCZslY6wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21008","name":"0.1.1908.21008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a7c982c2-1671-4d7c-bb53-11a69fbfb6f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21008","status":"Disconnected","lastStatusChange":"2019-08-21T20:06:14.089862","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2e1fddf4-f317-49ca-a280-d8e86d86d9da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtUgykA5Ozh24sESZ54dr6f5V6s7henyWFOetItGxjElGRPyXKxjXwZU+OkOaukOMFduC2oCoVtifJmCRo2tV2SaYJP6T7HHCZWArKQWS3vbPXDubpUVtZio+osi/x3V6V5lw/9TLG6CO4pUAKTI++hAmlW5cH8zZTxjwvesOFKvkNGx2GmsRoq+yBWh4Q0TZpQa+DUqhD9Yo34nodMWQgHzeZpu1KY484eCxRL4QBQuYIWfUX/gJXcaw3rnc8nYDbYbNI+iUqhSVIIY18Kzvd6caLFomlQZlEhx6I7wxdmJqYPkLT7MZlTeM4JTSV/M2dQD+4siIbOnQFQdmZRE3tQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458utmr3_e2etest","name":"fv-az458utmr3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bf1f0e8f-0dcc-4401-a650-f1f80406e7b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23002","status":"Disconnected","lastStatusChange":"2019-08-23T19:58:03.6932667","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"c197e9c1-3482-4158-bf7c-95a7f65ff4fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2Q7HUcyFO9vikkBGa21ryW0+0eJHLpBqtXw/N6gs3GQ6A77xf5iTHyLsJWdnHlBlN3/n1yGn1c/T4+gTJcwYqiPunXTvw4tzrl58KrZ3kEufH9cE1ih8Y/D7abYPzq9cj+L1+hkAViiR+/+r6aIXABTTOoarS3cPSkOr8l2tWfzJ25vAZ+49lkH2OERrkKex5tn8B9dS2fVbuhF8jz5uGbB5oYJN8HMnHokflIXMewCbKPb4AA+1BB8YJJ3xQKKNjG+sLQxaz7uYO1oqW9nuG73RSQIzk5lVBRuX83BOb4h5XS8fdL/5nASdHrtmf0h9ksSJusU+l4tNyhnZgnDhAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az230ustyi_e2etest","name":"fv-az230ustyi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f75a7101-d328-40a8-bf57-d05ca1064c9c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12002","status":"Disconnected","lastStatusChange":"2019-08-12T20:25:28.5017692","errorDetails":[],"displayName":"fv-az230","machineFqdn":"fv-az230","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az230"},"vmId":"187c1ce3-bcfd-4e53-b03b-196ed8953ec7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqArVNaWHQWNquRrgKba4JDWDqdQ6kTjWsd7qy4EzXX4ZguuqYTJCxhSPXDYoGcpajLBSYQuu1tx0WCws8Nr+rMz1c/JvE/souReP9edpMA/EMm0o6pDXuM8KDBRySzFRXjLEw5VQJHbJeYRfbz4N1O7j08LeFS0k2ztFjXAFmFl+yys02vuGX0tAa3Ivw81QqqHu43Gq0KXhLaoRjHKSehu17sSqlrSql2VMbk1FfDQnhyw8EIdpsz3DszjLrbLnAG+tdZswc2Dg+AekZ+uSEyqwO4HSvUwlurezwIhmewo1OdNXZle7ikyGsn9+AYe53oApRje/fUY31lWjokWq0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az59923yrg_e2etest","name":"fv-az59923yrg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"676ce3ed-9723-4b27-a497-e984e62e2ea8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17012","status":"Disconnected","lastStatusChange":"2019-10-17T21:23:21.9211586","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"66b5827a-742a-4af8-80bd-e20a1f8e5a78","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7v+bKGE979Ll7ZTRnun36/a2VMswGf7MFH63tZ8ZMUzB/K/E37Adj9dA2xcY+mueMzZOVxB6GhWdiwhNIeg/xzRGgT4Uy+owRBY2C0DAeahOr0mLCzqnpJPTmLginBmrqiJk3Vixk/S9vD1UJLgO8ntnL5+OwwTfvDIX6ZaBE3a6MmbA7Huiq+IvJBEDnSgS0c/HgHEg7jl22TcPFaw3KdqH8iKXf1geK33m521n5PKpNGT9ffYQtxAxMuA7BUmv6R4wp8pdE+dfmVgcRnqoWBnumST4lqBgE5AAltkBWjT43eKxh3yb3qGIp4pRYsQsUDQzeT4TkBajMkwJ+eXFGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599735wy_e2etest","name":"fv-az599735wy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db4698ec-dacc-4460-8d9f-a975e57c0df2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17010","status":"Disconnected","lastStatusChange":"2019-10-17T20:53:21.2569399","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"770e59c4-730f-4207-9070-067f7a4136b1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3vyl9CZO7SdIgGJnLtCTeVfqE7rD8GCKk/h3TrpcqJ3MYoZIpj+t+nE5FLJRQatybHZyl8VpST+diWgLUMWZuK+3JovuIh6G8M/zYDCajUkYoN33yijR8wU3QwtqgqM8ePK78rPQ205dsvngRuz2PYgt0LLlmjCcZk7XvIMbqntWOKTxUP1KAuJkFXTPE4FGhTVxAiKb1KryXBupC/GpUnHlYOGdgnXWil9Y2DB9F879Srvdt+tVreOR3yZuq0qWJbhTBkWQ+v/9jsY1HkBmKq3gHddffvHoHdOyumFwztFANGe6zEefbfwgrGdcpQLM1JP6X5d8t4Ccm77f7PUzOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.23002","name":"0.3.1909.23002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cd28de91-be3d-4e77-ae68-220c3d70fef9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23002","status":"Disconnected","lastStatusChange":"2019-09-23T21:33:45.0414883","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"76ead105-327e-42e6-8daa-7eeb4fb50daa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzow1WOUrEa5S+KP6uPlllhT9traQsqYWh/CWSALCm5cUT1aH6vctyBrOrXj0oZPfK3NBoiTMksGnGy9B9pBVKovd3BC9sRvEzTKFiBbzbAst+6070GgbgaHvUKhZ5z4tQg4aPBPnrxcr31v50BQu58EaPPl1Yj0LTBsRPtrxKcPDlmjqWj2L3y/Bf9nQSUuMV/uGbcxkgb60ScPkU8lg/s9bO4kgnRX0fSjkuQq9PNp/BQ0XL//s9iKA+qTEM7rrvhWy1JvhZy6zs3k0K+N4TJsDFuj08c+9CKrRfcBfWDAJMZIZ8/gVkGB/BqQE3WH6rxjV6P5R50/pmjQjHw0QiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599a6crl_e2etest","name":"fv-az599a6crl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9c638e2-d854-419b-b5f7-b222f7b30c8d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17006","status":"Disconnected","lastStatusChange":"2019-10-17T18:08:19.4738433","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az599"},"vmId":"19e515d5-4d67-4247-9555-4429533df0ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwkjohxYY36FlJe8uSlI4u6njbapKhwK8aIeyXxAUHZT3gaF9gtPHmmK7SIOfY4aLvoUpenNu/NfVxy1neGKXyE0PnLUNxloDQKrIavZgTWjFKzAfwnduQQLqdi/D0V36j+I5XSLLzwhFk2g9lk7WbwrCOLAWQfZF8BV8AUZlmLSpKTjJrtEwE1m0pxCRWzS9zhXk/3Fa4yo+FkPrjh81E6oA88hHPZy+Aadszis1k1ne1oQr9nkBXCaQ2ezJjWuLC2AQSkNAJ8nrIO4wVoYS+o730QPs5GK6OhDHHLuUszeJiiZeQuAZxvNk0Vjtk9aGH98y1T7qdpifhoWyCzvt4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599aoxek_e2etest","name":"fv-az599aoxek_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"41d94e5d-ea9d-4d46-9d29-027e4a599f8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-24T22:00:51.1244851","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"80f98315-88af-4d95-bc69-bd01759a9453","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuaPGs0ZVeUEnntZZV3L08aORFi5VI4+ZVsf723KKOH+nr93plkdzRb7ugxTiwj10eBpGng6lJ7vu1KJP/xu4TztL6YfMCGbIYg44tDIlo+gl/tRDmngjr41x6IQU8pfvxwpu1WreFIkJnwLHpSjEXg3r7Hu9D5draYd4Rb5gcWxTXcGSRPTa3SCj8K3ggqXu6psVmqWqpGyr6huuRdkwMooWVj85m+kxkK6TtG648VH/UHWC7JOvB0msqmUv+++bgBpmen/nAJjByf5QRtMb4+s5VbwjwEUI9Xq06/BLvI2iwJ0WziBKErLda6GHH5tTsSBGz3v0SJF9y/Kc0A57VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461t46em_e2etest","name":"fv-az461t46em_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"556f83d6-d1ff-4c2c-80bc-5dc7bb1e1b49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21001","status":"Disconnected","lastStatusChange":"2019-08-21T17:06:12.6044079","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"1d13cda0-ef0a-49ad-97ef-f58e81aa5db3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2vIhIpR44FJ+wOCYkK9ZBe4OnZ9mI3QdsbfXBpdlHxhCl4/Ye947FklUQW1KiUJGnSmiGia0AK3dPvfdtGwpOQ1rplO2E8lYDhb8SKiZYTrat1eiJo3rxySW2kw7qQhF9c8gG16aDuH53AWlbQOqLVLN6bYjAKPxQNzN8muhhFyrb1GSDpHcvb714yC44oUZp+PcNfqvM2lKqg50Zt4rbYX51BIE8eF1LU4jsbZuvCZOke0an9AfFzPI83gAgbvKPVzMnCtootfHBysavM2PGujm+1ze4DOLhFWrTNdDGIULJtO+2DQzp2oOCOGyZTTEUv+r7MrsdfG3RoNmyu877wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456wef7k_e2etest","name":"fv-az456wef7k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bab6aa24-c9fe-4611-88f4-fdf40f42ebd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18010","status":"Disconnected","lastStatusChange":"2019-10-18T21:18:44.9216218","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"2bd2f055-699e-40dd-a39e-9665d10b6867","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7bw4ttf79dVP5CCHQQz4u9zS57zuyTv6Vofk1ICK37EcxoMUZHMfcBD2q+W4YiO2EO5o9dMkioVe30JgnaxFI5rrAX0CnVyhjoSKpzzJnkbHcRCDiTeCSrdqMQqeXXqLsXb0WfOvUdgkXQefAMlF+F04NHgNWe0TC3yYFuV5pYRIp6At6pdwzp6vGsAw7Q0Lyn5uInFPKi3uxAWH4c1Bnyd11YHQu3j8g3aclK0WIE91vXaMQiF3e11DIewPRcziEc87JzPTvU7YgRRAOMEY6r7D6WwZweQMYVMcbjSSaEPNgDXFUjdjuwk57lzPbp9/BTLmSgAuZ9S9G/JPwIq7TwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458uv0xb_e2etest","name":"fv-az458uv0xb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6bfadeb2-309f-47ef-8b1a-d747744d805a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05001","status":"Disconnected","lastStatusChange":"2019-09-05T16:33:49.9378823","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"1ff72bba-bd09-4d9b-b281-06c6a8b30da9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp1IUNiuUPO5mvxwmaWBt6DTvzo+Rlmlkg7Us76T+EGTG/+JMU7ZEhPcM8+1YglaoTpACXjFtzOVyutyFTGYke19MDehUeLrHFh/NxtFdjSmuulNk8+yDzfISWYBeJN0b+fDVnL5+2iHnHBobrGpF6K6cB5vtXg6oyz/4JKdO3SnqZdNZdeQzJ9cx9iyZqPNjkhC6QqGc2RoCfOPiDs82ULPuFhkDKb6UmWxxO4YiS88dk6UNxP2UvFLtK9I5iXKKeJAxNQfEoNKyZp1X0CVSIZ6HmWruOh7G8Z95Ynenlh84R8eWMrjhUWzxdOLGQZxFj5ej8PVBJyquE/Yi40f52wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24001","name":"0.3.1909.24001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c2757f9-0c28-412f-997d-541f7561fc70","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24001","status":"Disconnected","lastStatusChange":"2019-09-24T16:13:52.5017335","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6a7a9a00-2e15-460f-a1ad-aac75f52afc6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqcF8X6YVwbcfSEGpaORXEDV/aK9VFUvE3/AdE41lRp4isyMN03bIsSbUURnbh8t0wvYGVsPGaRUusp07+RC2EJTPsg2e3VCOn8v3UipJ7ENgnpMkDoZp8XYc8f/t8fRANWhvt2AfDAy+Q1MpKV7AB3xSSnJfngVPi4FgDJm0Xx/d0P/+0u9YLsDzprOu6MXxQvbB6FoCNS5DZJvL6vJqiMXoUPn3EIsmZjJ14QFkpsO4fVw76L4bqEt/D7+w/McssO6M1jOT2V0fj7i1dfZ8nyAqwkTJoGPYDMTOen5pqSuH6KK/rM3ldkb+B/cccAow9IPXA61nODaWCmaesue09QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458uyhdq_e2etest","name":"fv-az458uyhdq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e05f91a3-5535-4e01-989e-00015adf02e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07005","status":"Disconnected","lastStatusChange":"2019-08-07T23:07:32.4750112","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"cb7902fd-bd8e-427f-bc1d-2cdff246b877","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoOORXN+OJVPkZ/CjNoRBz+Bh2KyU+GAbg05I5nWTkfIIFEuv4oXB63PNLyRXdMsu1YbLqrR590mUrdpSy2WObJE7hzXcZbPq17R4PdMgz5MSSlhd12Ve+yujhC3P7X8k80dhjEZDDK1E/dwSl3xfx+JNcqC9WNbuu3bJ+1RA+ovkx4BXJEk+KYcJpPcUn+f63r8BvA9D9r470n4MsYr1Q0b5Q5An4wVkB+BsJ7ynKSWXLYqKl1nmmN/rYI0YNMIxElAaVS8PE6iZ8Ye3Ug6RuObYtRGzk8qgaZjgY/I644qMVgxTlinQzOmttgntb38vwDyhism//2qZ1jz3g/hnzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456wn1ch_e2etest","name":"fv-az456wn1ch_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"96a992ed-5251-437e-923d-0b3c25ffaf93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24003","status":"Disconnected","lastStatusChange":"2019-09-24T16:38:52.8227789","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c20a4412-532a-42ab-b061-dae928a91540","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnAszuzwBeDPwNifBOepZBKUuCpFmve1dvbGPrD14RUdTdvv/dDVyOTaK2bYrBkG7GxW/Vt8cMpXappnCffvz/sYo/XrNrPLhadUzhkGG33tdLst8ubDKSCa1iVV5BkDckl56LaaLZcjPDgGUJNv+yCmwn/W/ln62NZRPt1ROll/EoAGlpAh6FgVT+uU4eg4KwKnetPyoQGAS+v1I2pSuz692fXrKkkMG5iYz4GBINR8NTdNvZgDlQGXUP/QF4RUznuWnGGDn8Z15zE6xOHraWdP4tc6Tw/94VROTN0oovQ4MBCJR7IQmqiuPyPqde69Xy/WSrfl23ZerGPf5IObr/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24002","name":"0.3.1909.24002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c2568a35-0375-423a-984f-ff6ed6953570","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24002","status":"Disconnected","lastStatusChange":"2019-09-24T16:18:52.6064702","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5f4c000b-b72e-4375-9ed1-5b9d316fc5e3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwxUlVngH11rQdX5IGCAeBxhbHtGBh2VsLIisvR2h6XXqvN3K9p+uWopS0OkK7zxI1ql3jcz+uD/v56Mj7/L62qGmC9isw4hlwRdoqQ8vlOtZiEb/peDUB2C1Tj7Vv3nXyPf04xDJlC3QQxFxAO7WxvoK38uL94bJQKaLqAeB5lR1IIz3vpSrlyBQ8ow8zY7h5iFmERuisgMDP3Flnb8ePZbRV06EHSOnsiZkBmXuNTrUNkkLfuV84WqWVjJElKXSzoLqGwr98IJRavn+2sEA5e5PhfC2wyiuu0DZgj4LsxMpv89BKB1Bce3MyRiFtTcrd2+lM49+576fmmVjgvgAjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461t7zcy_e2etest","name":"fv-az461t7zcy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f24738c6-fe33-4258-93f0-b0a45c2278ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08011","status":"Disconnected","lastStatusChange":"2019-08-09T00:02:49.252157","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"df52d9d4-3aba-4a47-bc6f-2c5878fc7cec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApN4AOBynuoCJn9sexryoLc9uyKo1AFb9eNqRquWGx229bHzyPQAMGpN+B3clqIZZjpmp9ds4rpE4FhYUSdjyagLMbYsiudjGIxxahU2Nd3RP3BYG3DO6CjJkErUSlEUa1N6Ax9ieRNR08fBp31Ql4Z9B+0mj3ENb+rWVCCDG4eM7bjWjR118n4QF5Devqyl9x1tIhV2XnAui8KgjY4gmojS1V8xuyi7ZPnjlxZSPCw9RyMup+kI/rIpYG0h2Yx11fybeXJH0rU5uBnd4Mq3doSDhiJtK4f6a6tWmwBjvtI9v91fiYGXhCD+1K4Keod/cOZXHJKgWhZMh7lBvOdYOLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599d0esn_e2etest","name":"fv-az599d0esn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e327c1ed-b828-4b1d-aed2-6152556fb51e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18002","status":"Disconnected","lastStatusChange":"2019-10-18T16:58:42.5860588","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"7deaded1-2a9c-47b8-a57d-d7c40a100f77","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxv6cDD4o+VCTxVjvAN4krercVj8/yJItA9lXOpU/oMr1dAmG5ZZBdCFm9BNQ0eZ6KKb/TfGvUM2zC7vDc1np5+l+kJ0GLa2ZQ8V/m7IDETAjVdNL2hiUtP7aq47p4vbSwMovnFvJCaR1+3J+43LCsoVhd6onUU52I1z75AmM0PRR9MDtkQ/wcINF6Y/GLCzp96Qo6HCEXyEmM3Smk6o0L8Q2ZrZ0hxjzm7QxjKC+lRXEguwOPKsHlfBP0SycoqUQ82CNwqBeEw8opCQaMHzcfMVkUyQzk7Z155TAwq51V0T8OXeuk0LzoreolQThPRja+Vsxw567QWPfsu+Z2w3aPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24003","name":"0.3.1909.24003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"96bbafca-f54d-4403-ad22-b5bdfccdf4f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24003","status":"Disconnected","lastStatusChange":"2019-09-24T16:38:52.8227789","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"baef2fc8-3739-4a2d-8aac-6195757d947e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtaMfS6ByJC8o+jx/PCqKeIOpl9bcIkPPq/wRaI4G4NkLSxJEUJOqVr77RJVlPZdjRJtw4V0aDo/Eoid4fsrcmxhXNtvrkENtKdF8ep6nJX0H8WSIuVgky8QKohZw0zJqYdfvmEvXTznj0hW3efAQIwoTI6Y4LPdUlzoZQO29xVYKes9+1wwssJjNiTj1I5FJ0RvSnsmV4upyi6bqGxoKI7R6L4J4WXLdzsek6aha56NYwyGTxniwq19lwA5wq3kTP34b61v/5lSBEcbZXVXPPC5La5ZjpK29fHTulaIQWQWN6Z98QzkQM8aBUPc1V3o7SQtXJMJCXMSppHx8jJYx6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az3559pkuy_e2etest","name":"fv-az3559pkuy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e6cecbdf-316e-4795-9cf5-be8ae4481ca3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-09-20T16:47:49.9796967","errorDetails":[],"displayName":"fv-az355","machineFqdn":"fv-az355","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az355"},"vmId":"49d58db1-4f12-4f1a-9c8f-16a85b4f6fe6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx7/80NO7Kzqse/WB6yFq0u6h9UlckC/Zr59uHItPzQaivXnM6K19LDdcUgQvh8i2ql9JrvL+BoTXga9c3QUjtIgT994DHj+2kC+ogpcQ16sUnRAJ9nkml3D9YM6S18J/2nt2fVd3rkHHorQclegU/J7HdKITwAnjNnWs7XAlTTvXLoI+2MaMDsft/SLce6o2gDH5esicRM4cy9cNSF+E4l6P0pLL0aVk/FPUzCr4CqaF7kjU8dXWB/2d70UJ8bMxefcNzPYCj8RdXUIylpU1XAk2bbk9WtDpijO9NjVREfr8IoV7ZLG3DDXWJtGGzUzUGPmOSValvWWLGG5g85ruwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458vcpez_e2etest","name":"fv-az458vcpez_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cde10f67-1b87-4038-978b-b336d527eddb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30002","status":"Disconnected","lastStatusChange":"2019-08-30T21:46:05.9495073","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"24902f38-dd22-4cd4-9750-3e92de25d6f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4oNnnUuNHpOZd5m0U1BZrF2XgWSIlMPJvAfAA38l6JcAYkb245x9M0o8shaD9xtHsAuzeQ6zuBag0hf5vJ51PP0dwZzaqUN1wELwzevg0ZrUVx/sfAErPG2YLsmLF796Az+cRahrzQcn2FGwwTLaddmRjEc1PpD9JajPiu+n93OSFxNHnfWF6zfl4Mz77fg4WUzsFmIpZo02+KYt4QrLW0+qpG0C8P7WmyRnFfYym6uS+xQd94mG55Y2Z544g5LKkP9UFmnIDYeLQDA/bLkO84WzVejZ/ME0qFmHhpbjibpgiPo/40h7uXexOzzgzEGYPKEWD/HJJms7PojQXk5CoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24004","name":"0.3.1909.24004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9ae96a5-bda0-41bb-a999-90db9cf6ad7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24004","status":"Disconnected","lastStatusChange":"2019-09-24T16:43:52.934345","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az408"},"vmId":"f11d12d5-bba1-4b3a-8946-ea50cdd9d36d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0orAkXrcd5nTEGWzuTGB5BAzGXJM0hieimrVDW9zV3GudGEUrXkJpbkpBlQid0iN/MPtVsWhA1Z9/lMss7Y8GN0OYUzok9J8Wh23miEKotBCLwUEKiUXgwxVcSZMNFFySd3IMBzKcM9GNJt4Cz/8orYS21Sb8difh+9zNHcS7id6MADVEpbKWZfH4rlY0CBxVm0lAQEtvH8o1zZ0J99WTVnYroMi08uG+g0aHQoNnGuytE8z8Jx3VYIBwIPf3WLmqsPRTytPubFQ2TQpgp1ebF0pjPJQ9K0UuepunP/EqAVmJOqQemu9tXJ8upTMOSNpkmZh+J+ak90Vx1U3VgwthwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456wnts0_e2etest","name":"fv-az456wnts0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e82ce564-f10f-497a-ac9d-8d95bf4cace5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08002","status":"Disconnected","lastStatusChange":"2019-08-08T16:53:03.6153523","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7cc31c8b-c3c7-42e3-9959-9aefd9239b86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAun6oqUu29Y+pn3ci1cdM3N89brL50qcfTWuA/CipyW3sGsaELPMHXw/XpQBQ5xHUeaqhEu/S2D43UI1U0OGB37YQJWkDJgEOiasuYNznPHQZdOtfiD4QI3Ob7o88QQFGKUw9CvuJbK3nKOHCjZw8i3D78lDwdhqOpEj/ruzHGYoua/mJmGRRcbONWodx5MmeMEi5NEIpQQ0lxLViszFWlPBO65XqD2MHhkGbAeyc2q8YqwQ4lbHJTINFR5p7Y4H21w5FbZWiXClTYePfhnwMvxJAj9jcKwukV3+RqcZKSkB3LJ4M64+i/vseMEoRd/fpnsMSJqompMiIVAhmwC8GowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461t9o35_e2etest","name":"fv-az461t9o35_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"730a59fc-2c61-4dd9-8164-617374a3fdfd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26025","status":"Disconnected","lastStatusChange":"2019-07-26T20:20:52.3537396","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"e0ae6619-eded-471b-ba09-c8ee74d6923d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv/6Igk8ZmhAlPn8/dx6nEfCk0O2HQ8Kj0las+YnvMFdEfhDAjewQynkd1Ec43y4j98qXMt1dkQRS2nMPMTItqtSnadlMcPr4WLTzoQJwBPDp1H8KCW8l0MRJcwT2O3i7iycCAZw4z17s8T8kBj/wwrsqlIZdhKk+Dy5fi6auxIKwT/x81rzbAfaRbWweuYBYhS4E0noA5D95SYv64P6Lch27JPYYKUaCb7Bk2wuH5fzkfnV4Xrtuyhr9uPqV8+qV7YR2KBwG/WTNem/7zJ9882IKrElZc6OSV+IrQpmu7O5yVRne70G0klVUBOCptYx3Yul6rp1x9d/QVRT+EeLd7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456wrd8p_e2etest","name":"fv-az456wrd8p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"acf98b8d-01c3-4085-b6dc-1499ea309a9e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"08935bc7-8ac4-4902-b107-59b111b25206","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnkYrL6L+fuX9K7+m4pLVGR1sqs04kW+LSKFN6yIPPYiLTth+PCRyL1Pi7qfuen+xidvh8zJv78rwc6taEC1foKQ8iiehBKd65OmeKj89gzEOCsKy3iEbn1i1OVyYllqqQKU7NFGAEoAD07X948Mg0mcRXh0Ekg0pXJv4Ei6P0bOiSb/eKfvZ5E3RIyfAO2IrKyk/1QpDZm/zw5SOBpDQZwkK69h1BLku6bSxoek2obUAvqF9xbCizS7vQ5WDKmUXTqipqMpj2GuPFJ7oQDSuWECcCmBWr5RVCMBl1Da1XWGnBM0CFSDS96ZaNcZpnuiNo849QvY01n1eQKQAE6JABQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456fyuot_e2etest","name":"fv-az456fyuot_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"428bcc03-6627-4897-b3f5-0cbb9e88db92","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22001","status":"Disconnected","lastStatusChange":"2019-07-22T16:30:18.487134","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3c4a57ff-31e8-462d-b91e-e90dac5941b5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1VBFVIfAZgbD74dFQ4eKwrGmNLwZOJVaOo7mEApu5NujvVhLCLIjE73JwtfYa2ouJ26Wu0ShFUdFKU1SC0+GDyhbG6f3XFPYveSTs17QJjtcHV2AH4yEMZf9RdOeGDXLZWyspr7nTsnW8xmyuTIAEGRPtQV+O6XOpZr56H7zt58932bAWtraRTFs4RRqwGt4cNARtGKgpyT2CuMC0MP72oYVTVN0JUEC5G1cY8UR3Uiq04srp3XshNl1teVcx3v22z6lR+OTbYDbEVUpb1DfpCjIMqhraxrVEsDlSWbLfJBm7jiWzckoUaWU5awj+3egGXl92aFavbXgCAeHUv1l0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461tjad1_e2etest","name":"fv-az461tjad1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c55c35b5-6a29-463c-a5f7-25f44fbc9acc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16001","status":"Disconnected","lastStatusChange":"2019-08-16T21:41:12.6774943","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"7b3f76c8-4fed-4935-b0e0-819ab3d8aaca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs8Q+U4/2k6H/deZhzt3Qxs3GM+Ho8xj3TSBFMPAA2DuhMh42pknS7tc/fCTdCgHF7ZL6M+gUJ6NTQhdK3ZSrUAseuiaXH9GU3Znegt8OgObKnZ2SQ4I5nPjPpPw4DVuW4aAx9N5eIAsvDt50SvgqlrY/zXk2ryUCz8WbByQKEL4hA1uTkWKkJGuvJlTuXDtQ5DX31muglkfdmibr6d0DF9JbdjERSYnjHD74V8C/pg6rGHZwxiKl1hX1RUve64FbeSZQOm4MUk3/9zh6N56+ht3ViyWRakN+bUIRCeFhyQ9CxJfbM7lT9LrOlSdTesuX5bIQLOWcVUMJywMglsFckwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456gepcn_e2etest","name":"fv-az456gepcn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"620256dc-ed00-4126-b36f-1215c76d1631","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25001","status":"Disconnected","lastStatusChange":"2019-07-25T00:40:37.1548949","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c0a58e7c-36d2-4344-94d1-fbf8cee12619","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzLvF7M2k5UEPFt2UdqKlarbfCnRkBDCCo+VBkzT8deav7emIre5Mb0LMBVTPog6xQlyVwT0hE4TNQydGU+9O/wl9aZ+NL7MvwB3nrojGn/T7Tn9rzY5QR0IkivFfmz6CN31kZMRW9vww9nN4SCPP5kHyJ9dJgy/HXB3zzaS5oWsB3/Gc4yoU/0NLkMCYl6A1xRvcepXkU+x95nE98/jMgY5gCUPRAmLpUu2/1JBnRoZfIyn8g8sGmvQzMXFvZbA51R7/KaCfIdE+f+JlTmMnPdrEo0uZSzQyJcbnRVnkKdgcK1pXvmX80W1nGNQvcgV+2k/TdbMopEcnNIUKPczpGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xagot_e2etest","name":"fv-az456xagot_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1e01b291-d03a-4e4a-8b24-152faf9ae97e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11004","status":"Disconnected","lastStatusChange":"2019-09-11T18:05:53.404661","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ddae5e32-459a-4488-93f4-78ff74ce92a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7x0TnrcPE/pqsfJuLwd0YqLhEMNzgAIhz4HvsKV3B/vTvQ7vFVBrro+Q6YTCa5wquWZTq1XVzKFr+tfXNoq73wSK9IfRX4uC/ZQ1iu+EvRE/BV2cNpXRzg4uqCigdZuoLLWd2GEMbIXkYADbe01VvoFTRu4XGJQBKI1QBlPmzV4Kk+kBaAfdTJUfsTsK2eozfsGQhfHAKF+pm1lyo5Pgwo4Aw41Yzoh7eF/1JKEEkRa8z9sNOipnMOzlMZxIifIob2du5lfRP/XB17xR8RX3zd6mDT6OJJLLPucLCQD+8awp2ShAB6pwjIDf9x6g4oqbR07G9jFrT7bYShOu+7A9VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21009","name":"0.1.1908.21009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b39a7152-2695-4d0d-9ea9-608716799a8c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21009","status":"Disconnected","lastStatusChange":"2019-08-21T21:26:14.6681502","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8870c265-dd29-48bd-8e75-9caf15d6494d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsegxrlQBOIQBdflfsZ0pn6FVgVEil4Qo/WitRZu25r3PpsBaM6WgktUi8hPWMRgYiB074tVlVjxoVUG26n6R6cCMe9RGIfC8tRN7EePIG9fZYinp2gr9jHv0Q2H/kONN7QeeWauBDOAzcp6r7JYloYHVDXzkZK5NUZnOf/pLjbm2ETk/DTrO7Pwz3mDHNFwrgeaMw9NDoOgy7xgM7tVmQrjTThJ7o6aqxnC/bVbpb5hD22g9e+EiajDfPlmqPGCvLH24l8MnC+5u5JNTYnYcF1EG1GzImzoWBPe1Fl8iLBYmLO3YdFCdzmmFKLWabdW+y4LFTxh1C7TVcr1ozckVEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21012","name":"0.1.1908.21012","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1c480e7f-7298-4966-ba23-990e3b50cee3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21012","status":"Disconnected","lastStatusChange":"2019-08-21T22:56:15.2400824","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4168a54e-3965-4f50-9320-6e5ee4319de7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxEI0FlgL5F4vuiYfGPZfLA7YaUkKNd9Qv9QN9w0NEBLRDDbeWKQiRj4fZwoXqAQsmvDIxHbYwioZjf1GpPBY1JG9+biU1YrWhG3K5NWEywCqWlBwbRZJuNiNDe13I/jyCCBjMHcIIDo578bd3vs3zk/Yok+jDGS9A2fv2SY55qJvwnuOTgdn4yBKG/8CekInmzehnTCFms71OY9eHnjufx/OxGkJk9nmMQdQPjM0d76DMMC46wSvRfQdatL4yFs2tj+p4rFhRPG/4tsprNpoHyrkc2TbpRcmVepxKwGZ3Hczj4KkQIq8F80LF/YUvb4Mv+Emci7LIe6/oJ2BPtCf8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599puey1_e2etest","name":"fv-az599puey1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3a3cc105-e7d1-46c9-95a0-492976dfda6d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22022","status":"Disconnected","lastStatusChange":"2019-10-22T23:01:36.6168124","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"56eeecd4-7042-44c9-941a-8b48b892b503","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsAdFvGqgpHR9MZDEvBVA8TXCpzgVG+i+vEe/YO+cEIApf5ss+yX9uxdmvyhNMHKH1Nb4EnGvLo5CSwrDhAIkG9gUbb6GP+xHusay+i5BXS2OPUGuv2j6tteP0NEzO+oFdSrlXTbVc9h0OrvMUZ19iApUn3bTng+sosfSsXMyZtBGlqcEE6fNaFtrXZNBrtsZRRjStOfLpH8bpT6okS9G9/KREvoLVaej24aSunx05iK+BZ++ugkUbG/fLPUIRX5V1ioip2BhSFu1YxjMhZh8GDGMsl8cejlccFk0hnka4WDQ3btc392e6JUvUKnv43PSswEPbBP7FE28z9+UbZyoRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599rhzov_e2etest","name":"fv-az599rhzov_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dddbcd29-c467-4776-aba3-babae2c40f98","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22003","status":"Disconnected","lastStatusChange":"2019-10-22T03:36:28.6374799","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"fc6dcd78-e985-4774-83ed-17710d58b030","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzOi4Nu5FfrU4G9dpUqI+rlpeninGcYNf/V7LZyRonEz/iJiAP9NeMIxEzgrCPdZFtK+5X7UUoF5p8zMPGH0sTTW+fMZAxu9Wfi0dBWYRI0wVZXI8tZouN9J7/NmlyoMrPVz9U2jrSdMlC00g8yq2rprkBXLby9q9Rpv5lkqznkqWZPDEU1J9G+umuyXNchA1T7esAFf0jYSwpOLC7GeifXNd0JYNgR72snOScHeDi8m3xYBsVmjvKA+ZK3yod3Vh7XdmBLvTVLYhoCcJUKk4auEqGHOEqToXXa47eyao1PbAVlCz7yjAWlvxISTvAscvswfB/lakvfBPSqgOLN5ZCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461tl239_e2etest","name":"fv-az461tl239_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1f99de04-fb62-4148-9958-90b7beb49209","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24001","status":"Disconnected","lastStatusChange":"2019-10-24T21:50:50.9286553","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"b05d36e5-a24a-4d66-a342-d6f6ac34a5f9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxKAW7y3EXLe6dC21lpREdxFg+l5C/zPn0y5bQYq67YIKIEkWkwiCmD20XtphCGaeo20JtMjSX0mSVV7c3PDRQpTJi3xieIhdX5aQRd/Rjlx/ZUqYj7KEuyqE8a/nDphZcA1oYpr+WBZ9fpirfLz5JVgSOy+6ySFcTD1D5yaR1qFod9Nhq+VcA+RHsO16cDZe1WbYGHl1HHlXF9Eqg6HN9nLYuSa8eeqApyFGdhHQTeGySY1tioYYpur8KVaMMvJqy5GO5zMoemvyj0huui+L9KN9VoIwZiD3OkAunC56OaAVGs6CUDxDiVLUfQahll3nyVxpqWpZjq81JywkkNzflwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456gk02v_e2etest","name":"fv-az456gk02v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3bb72401-5be9-4550-ac6d-3e4f1ece330b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26010","status":"Disconnected","lastStatusChange":"2019-07-26T01:45:25.9380974","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"10d8d96b-72f9-413f-b49e-8a21ec1569cc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxqHS7FyCa2JWZUf1nendZAfHQCqjtMA41qiktL+PnlTvpL3N+MJboq3yj+bX6Vh0Yd9WDv6LJ+HoA53HTDdjmO6Zm6A2Iocpc7+fuPKkezS6fs5Nl3H+g5mI4dYYp5H2lxyoujof8hhBJ3bIVGUpknzKUU8J8azNvGC1bl0P1rXxozYLbofUmdwcz6C+14H57JSwmutjfe1w30eZ0/14V+BSIYJKsSLpNuMc3VUWxKIXRMWPD80imqkFj9nHUrOD56tglruzu/3AL+zx2/jn1gLK6XtFE5xhMSUD3thL2ywscEl5/ogHCRqTEY6B79fv+cguk0z0dByaGpnSzzF85wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xeq72_e2etest","name":"fv-az456xeq72_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"26926302-acb5-4f10-b76f-67c64c09dad0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20005","status":"Disconnected","lastStatusChange":"2019-08-20T23:11:06.7719795","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3d626e92-ab3c-4f4b-a671-ca89c2798c82","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz0MyDCl3EMsT7Eua55Xu+To8895+NX6TaeSnfZexqLe/0/NOizSnJpVsRGW/QcuZgY+KLs/tXvqDXIv1ebdD1kQjAtAGiGKJph3NXzoIr49PYZD93goVaX/8hYpXb0/c4gKFZs6JlfkTKiBzGtzUWZMi8YVJgkqXU9i2VcK97X1WOB4qOgzeg7NP4WoWFon3o7Xtet/1sjYd7TIPt82Co1/quT6gJ9Qk09iMcFaCRd4JkVnGGakgmx6pH7lWNgJHtHL9fQ0huBtGP4OFC216uh9QaKyOkZCUMmxWa9Yawkjm5ithrJJvy79H1c0gTO3MmS8GVMkPgqACYopgcuhwXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599xofzt_e2etest","name":"fv-az599xofzt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5bdbbdd4-151d-40dd-b64b-278aec69d46b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03002","status":"Disconnected","lastStatusChange":"2019-10-03T22:19:44.8734634","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az599"},"vmId":"2298acc6-3b56-43a8-9cc9-647117aaeb49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5UZZADSG13WwgLgkkNlDn+YRbVfa7wCOFqj5c6df1xvTiSxm80izJnWVjF7wCaQkcfCgfEOfW4aVj4290HkNQ5u502JJtVLjO4kxq3CzXbbu0ZeiUOPvzKmxBJ+RV13UtlMaXlv4w9e36KT1505hedq2dIsTZXbTPVrgFQt4getgA9GYEOwN/AGP8m1fEP0xHZusiE3RGC95C4KFYKESHnOoohuDESKYLgri8XvMnF3tB4JjoWRCD4XE8E+HNbWGDMrXBMUcOW8GbD7AAjVsuRljBixSM2cbgphdMpnjanapQvqgMkRujE7x6RDvG89yZBzSj+tVVMeUaDvF6SGg7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458w6uks_e2etest","name":"fv-az458w6uks_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"26312f7a-2cb2-40e8-9610-4d027ee04523","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20007","status":"Disconnected","lastStatusChange":"2019-08-20T23:56:07.3786148","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"46ca370e-60c2-4c05-a607-d04bcbcdcf95","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwuBZAxf+vEpFLKfKO5xhZMoLJKnOncIVpb0wXswx87yuf7a237vnx7R8b/UjSR1mYvYmSL/ozWLhmLdMQ09Mn3g6xfMr9WWknOAH0pguFjixa5JvZ2NxtVYZf4AcDcaK9KA8pO+10s4l8Fe6EpQ1MrHfucf0lAZk2jhByci8aBCQE+hANLmEvn4anvqO2isxkCy6EEWYcc/1EyomV7n7Q8FsvYjMoUoMt0oYRZDdagPGlBj8bmEiQmrAHpms2MZOBgxaSBL+qTafltc8MCfvoAET0h1ViXjeBcsgszfIC1cEk+8Yo/y0+NcVR9i+xc5VbfNgWn7KyjBOPVInLIGSUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599zha4e_e2etest","name":"fv-az599zha4e_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"babff77d-d0b5-49f2-8b63-6c03f7b91b3d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17015","status":"Disconnected","lastStatusChange":"2019-10-17T23:08:23.2333841","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"bb6cb801-164c-422c-8667-b9c105971f2c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwgrN1xbRL+YoQcCs7ZOq45z0hYr/UN2uwWKMqZEINpkPnr2pEnK1bQ9npZzjmR+lS/zyEHNn7+S7Hk1k2XA5zbBEp/2v8OLp1+e/8g4Ebix0M3lDUqHF/ESxfBbzpGwpYAPeelrVGumw0bFieTX9r1FU1Mn6IdFpMPQTlJR2lka51I4CBjLUpyoc++fmyGKGlHssZ1Td9qVoUkoDfVWqcdmL/jCVGXYst/qJ9E76d2PN2PsJkySp0W4opvX9FL0IM4TtZ9CHM+X2dxrOYG6CPeq7y4S/4i0NUGfD34u+Xb0YzpTs3TF80qZZMNDoAcxAkvOcukxnaXv1d8HO3rESGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458wic2b_e2etest","name":"fv-az458wic2b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"70e04fca-cee1-4cd1-9f05-0c434e95eb58","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19001","status":"Disconnected","lastStatusChange":"2019-09-19T19:17:42.3767166","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"39573f28-a0d5-48e8-91f7-7dc6e619c70d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw4IpQWrYvJ3hGHqu9B66JlBa+660Q0zAwltSvYrU5mn5uQOpQbYGlm/d8O6weUdldRmHdzVUtqWeUrMwat4UeLCZxQYVyy5C2n1TSGElQ8rbkmy736Kmgx+Z8PvqoVvFkBzNqn4Y+glqWHiWBBVyKO/+2vlM5CZjiW0mCOEEPJvJJ17tXqsCr1Iit3FhLklrsmRyLdy3RAu57HWa5O8JISBAW4kaBtNWLUl8vYJ7vHAKHHMLiCabWQ0e/PJ3kD62XC1iOR0XPReKPyJcmNXPDnzIE3Fee2z8h6bn+oVjrzfxwVAwm7hk1wxxA3lAEj295dvjwqvsu4B3TLfM/F0UcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6006fx72_e2etest","name":"fv-az6006fx72_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"54e0c097-881d-4c4a-af4d-ad6d0eeba0db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22005","status":"Disconnected","lastStatusChange":"2019-10-22T17:26:34.0512589","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"7a6b744c-376e-4479-8ac4-56f8f664d6ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqQIQ9pRCzc4qSN6BHkJ0bEpWQAFSE/bRIjRMmaOkJY1DsAZyEPn+gNK525b6LOo424V/QbSD5EZnx+GpTRslNr+6T3DDQqJ1vIy35BpKPhdXiGkRAIE6SsVcANuXBji8vBlsbDwusal07UPzGlR8nYT1Pldu1dFrRKLDgj2HgFaO5OC1ecfsLY4MgZpETWNtBJE7hcd/A/DAv+eiXK2NLTWHWqTB0KNph17fNohS/ZyAAu2A+rMPKspZ00kR9j26lVSbgdt6Q4Fteou3VLVKFsSxDeKJCIveR5i/19d3NaqMvzb0hxGy/8t9/4D0SY4VJDKKVrhGr3PGTx7YfZ2TqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458wtlbj_e2etest","name":"fv-az458wtlbj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fa86dc94-9a46-48a5-a8e2-7c69ab0059b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25011","status":"Disconnected","lastStatusChange":"2019-07-25T20:30:46.0622518","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"e2dde80a-87dc-4c31-a252-7ab78f5e08f3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz2veBFDj9d11crJlAgLHrw4ASCfGL01n6LjYWOuuBrDbyz5KEvlhK4ETt4TUbTiVu3uVsXr9bU/rvasR3lktbGYLxICB8/HSi46iyBuzNcSe8cZOosEOcWEwK+ZJFFi3jIQpJdu5UHFY+2NtXNHnWIhY0m+bndfvuSp1VlFBKFoiqSWMpQiTdAl2MApn8B5jvivMCafHZhsqhPdHOD+Rn4bvNFKR57hTNFrAHqYVUEfbutSDBJ/2HZADUOqv82+l9cIBqyEGiho0Ber/XduxtgY92IZePw1E5NtK78snFy+QVuMlW88EM1QEr3Q2W+Fu9LTU/bjRzqJS+ZiGGmAhKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461tl5m8_e2etest","name":"fv-az461tl5m8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5ff85d26-5893-43b0-8db2-6bda222c31b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"9ea06365-eabf-4f21-b836-7baaa90f952b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvLaLd8Fp5Aw31O2eXFbX68Ixd4oIkuAxAs2PSpfM+ZQptdcdFo1Uw1hPWeeZrLPDTEXYLUiHSEYo21GckGKDE9Om3SLd9w+5udsZffFrwsVJP06KazrmKrcbCtTQsah/LiFiiF98dJwHBf3oW1xj9xUNUt/q2OKcDeg318J1UFMqg/cCxhkc52y1OMWK2szix7xbazxy2vmA+9umQVpRXrQzD/gcI5o3Z34iEzFGM9/AZP5AudF1DV6u7HvZMCQg9Zx3auO5jXRot64MV37a9q+GsFliDN4ufpSLEPuXEdfGQ41bkErzCKjFGjdvD7/8XCOlVMj6/NKuONwtEuUJOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458xow8i_e2etest","name":"fv-az458xow8i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"94798fe7-9609-48cc-b721-567cc1e49621","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11005","status":"Disconnected","lastStatusChange":"2019-09-11T18:30:53.7764404","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"d6a144f9-48ff-4cfd-a9f8-cf14d5857ab1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApfYu7sIUAS49iOkxh9fFZ5R/XTL+NIT84ZYTNYfKLldFNFCr9MVJDIEWLbQu4CnNu0W5JX94YVLZ8RP3P8TzI0IIWbT0b3Mal/Q6gc1mB4p9anTkHGq8jUbbIXmBxMk8o4NBR2jigwIbG6p3AWL59xlNZoFWGa1WdMH93A98J45h+yqWtFfyBhDey6dvIGjU5tw3hna1SL2bw2+LODx7E2ZOcbrpakXzfbuwXz0YRJRYHRYBeEbsyXvpYvJF5+8WJuGCsJ/pN8/yooRoGFRuZ77zKmCv56oyw79T+ntQ10ofufWbTBHgqKDjIjedMtpTm0udC2OiBdoDDMtZuvx4+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xh6i4_e2etest","name":"fv-az456xh6i4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"88984458-89f7-4c1c-8e23-eda305466723","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-09-20T16:32:49.7486435","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9685841f-ade0-4098-81ed-2ca9fd3f7a2f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzNQtKx0cEt5gZrGOsIwfromCOYNg4s0JFxfbdVARFzJhpAuw/K2pPZwe3SriB0tDiz4lkedAYS2yJGJ/JgWgEkU9NomeQaI5mJeyI6nU6Bbpuah0auv+zyzeAEX8Rlk4N/CeeI6NoGxQIsKox0Nn5nGr4kRzhQqDpyNmZryejl9FoOAVb0p5s2JYEfsbZYFxW18ugtGqskXPjT1jQlYKzZJaQV/eOvsyW3XROQ4QU3ja52uHLmZrpITyJiuU20620GhPitXnBCOYnp1nTp78YSyeJaEj3R7Yq+ag0bCafZ+OcFv5s9w0i5FQluc0kKTUhnpL64qeeAuI1uJbq8XS7QIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEshAAkSqVh4u6TRtwiVE6iMhEzJiuSyQS1t1v30N6UPRCB%2fbZ2yPz4dU8Vv%2fLKqikxYfkgfxNomJl0AgLaRT3zfdQlXLtEpzXvKqn6Tv55ZPsrpUu%2fO%2by1rR9KKuOnU%2f44ZpWJlynNupYszNTLFMw1Y4OdqZlR30w15Tm7a%2biANvO%2fVFZG3d1cd%2b8vi2b8XBqcvm3HPslJ1ExbvfaSOUCzKx%2bAPRpraiWYpGlKblF8GvP390hWi2dcGrB3lGZZPKhPSDi1bWYfgTGjEX8b8b5Gt4Sfm7bv5ZOwzun6xj0pWJHm2RNJ0i2kbOCDUNHRbv0MEyOvM2iOazmT5Hzw8GEuRLJl5PV9h4mhHYURjIxMeWRfKI4HhDCJBRBsIDJ6B0zNtJgg0HmuHjiAh88545dol7QXfug35n3OP6%2fYb%2bNvJtK85hCWAA2gDgCpCAA0sDlld%2feFWMcwEwj%2b7%2b0hUsQwqszlmYM4z6TxEUPTDAweKnHdAINPA39VrQHGq8dxlqeiFlUQghC508ph6sHCiAhQxyb%2bXUW4TOMLn1fU4bAx52QINvQCV8Nr7TJSEWwI5jeTghDr0QoHA4uK8wbp%2f8QqnatMr5l3CjkqX4ruPIKVPc6Ze0Pm6OyKY7nJkrfX7%2bBw%3d%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1k0ndp_e2etest","name":"George2-Win12-1k0ndp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9af583ec-f7e3-44d6-a42b-db772729ab08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ada8e183-7a7a-45d9-9651-0ade5865e7c3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAzvG/yGFmymvNqrCOq0ginQ8y2I+77bKDfCERCLCIrJUSqmpCa/V+ZKVrfJQV30bD2S7vv0hJcRxPrFjaazlgZx5IzrEy9xqSj60o0Aiqrmn5ox41YMMmlkav4iDYE+sazV9avKEB8ruwEqNBbs4a6NqZMc91p31IR0O3ocq9EPUmjYuwGCLbgW5pLtQhuxjpXn6Wco1UBzlPD749YzDXYMgkTTAGwGI+lMx2R1l7T7zlKMpFYxtNh5zSoIUV5KNrufZ4hM5t4fLKmhhvZBKSEBJJFpRuKV1W5sJkBXr4w1k7bBOUO6Z1bn9ZAqc8D/2xbkZAO+KNcO9Msu37yynaPQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.001","name":"0.8.20140.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6299b1e2-b378-4e49-b638-94b4694b1872","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.001","status":"Expired","lastStatusChange":"2020-08-17T10:18:28.4448556","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"9e690952-3d61-466d-8275-6901d4a7de61","vmUuid":"BF68C3BF-9F20-954A-8C5F-FF9D03FA0EA6","clientPublicKey":"MIIBCgKCAQEArlMKwByYfY9yukums56AhwnRoxcDI+dJxIhx2Es6/Q5gh/vm0WocHw+TcYigvneXUKUiTEYh14/XUl1BedUvFVIHAmDJ2KkuNjnmdbuaP0d2QeLyyudhQFVTtpjhDPmRUyewp0l5rjw71u+HBQk1fskim2mT3kvR4MNgV1kRtPQoRgsK46Z3dswy2msz9QpSfqMuADgwMWQp4B+T/o6opmymWufMLcJGmh7zCUaTgq+wMIlKyX8Bv91e3H9VYA2akT2BkbXPeeW7S5NsHRzeFsSVwMPuthynji1ZJKqeVQfRhSPZkwV888UXpfl3IduGwz7DtgKcM6nb7PJDN2H9LQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.5yxfznrddh3uvbucdxho4rdzrf.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_CENTOS8","name":"0.8.20140.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"adac39f4-6566-4e32-9190-33c7efc0e6a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"513bdf83-4e26-475c-ad24-eb72c442a9c2","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA5o65YqhfYpPDR+1NxYqbI0rmYzd3tZUtnQD7wMGfcc4O76B3WmqgXg15+TQw9I9M1DJ7wWlLmv4m+w8pyHxrlf28ERDz/ctqhWCOOC/E0DwqdjbAX1SH/ZmaQyB3TZm6r3WAQWp/n14w5pqMmWwF65AuXKZDW1H9elOEWXjp/7xI2zaTGYt8FwkRe/tKBsgh/U/UN7Jrp0ine9zNYstBhs4tBwl0W+RuSoNj7W2wg5C8aMs788k3uKIPbRSmbAyGjzwySIVWTSkS3wOnQoTLbHE83xmX/OHC3Gvcquc5GGGkpuILgow9mpnG+fy5x7Q9jvFicfbuADKzUSsiXnbofQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1t32oq_e2etest","name":"George2-Cent7-1t32oq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a080dda5-dcb3-43d3-afaf-7350516cf025","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f381838b-3899-4476-9296-2874d828a561","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA4i/1Tgb6/gsm4AKk2yIe5kHa5ayMiL/DIqH7pjXiirHKin4pG+xPD/tTLc9GKUgrZyjNr+36k9GThd5urfMRdoxtOPfc9XVRM170n73rPtdVXqMNsPFTDPa3l7Fw+m3txMZ+bE/8ijGsKVlkrRJjSaPyPhSeW8bSgnF2SHvUdRTT+atJ8R1mLxdr12aJajIznaRHmOccI69KHp0EHS3SIxEEhQZIoqDpOsuiuGma6DgrgVhJAuJ4KA1d3KpZax3v0tX2EEExQF3MxCAtFPneecJ0TPvvTDa1V5AYvjGhZUB1Rz22I0dY9Fdjyca+JQyPP1tZUOkLJx0QpSlhSVjtmwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_RHEL7","name":"0.8.20140.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e5781f00-049f-4946-9488-842e7b5ec34e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"14c96ff1-93e7-48e6-8059-1120a8015056","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA6s2tsjY7qtteIryUJFnSDN+2WVCGQzCtA9Q1jl9jPmwK6W8j5wzswofBOriFAMDa6BloT3EBxg2t3HJzlAyUGELX52UUNn+fVqBhOscsAQ0erfELQjSD9ctFsCTD9WxoUncEqKqG0sOI7jtz9Sb6CTLXO/pnHWsfnGzUUCXc/IH/8t0681X0eyS+hb/LSYIw08uBjrw5cpp6m7ZcEQaiFhh+0X5D/oObhBTQM4m4dmevrrBP30OBpZORJfPss6cjdeZj1iX9pIFq0j/f5cFdSBYgKjCuMMtgb78vTV+cpdoxt9L6nYnGFik9RxXGhG//K5W1KyKM2K+xgFwHqtlnIQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_SLES15","name":"0.8.20140.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5f1a7087-0288-4181-ad2c-eaaddde4aa23","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ee3ac381-fcf9-42b3-bcca-6d12e5f2479b","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAw/7lJl3YtNNLwm10o9CzqSIqA4eSdLBnPPw9ej0oLWHrXlzcdqIFCAhHCryiaNv/rUkbRUuzSEVVeYjo9EgEo0IAk/Qx3U+tRzJg2yW4dqxgJVsFZAxpqaCkHfmEeJ0Q0KmcBBERNYDsd91KS60ozFrrhCAAnSXIQLWRwh6vhDowGc3PKW+PHvqqd1Xrl+/q85cr5UyrsjycB4XWEfUaiCvCqSqA8ut3S+uk200lYN49SUDCu2iyVQI6nZ5ZFlXEkSJxlsOTqbxB+oGNflEnZCuei9dvQmYdIPRwQo9h/5qsNAFt9SpK18nDwEkkUTod03ZhC7hTpdY6tN4q5ChONQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_AMAZON2","name":"0.8.20140.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28a5d616-75ef-4091-a29d-fd7547b225f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"ip-172-31-15-69.us-east-2.compute.internal","machineFqdn":"ip-172-31-15-69.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.173-137.229.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-15-69.us-east-2.compute.internal"},"vmId":"25dd43ba-7a2b-4083-915b-12765d3151c5","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA5P26pSA0dU48njsFoq8994dRy1+BbzTvqK49z7MAUcGT0gd8BKEIiSuNPbSH3lFgD+a/XOZ7rrllGkfxq385sDm+JT42Z5W9O9lwppHJT9BcKwW16abh/6sWjWEtKVZUTks1+M3SOVJmOkrfMldIKjrnErqiOgKB8iuBO/+c2nSshwsB64AnUaHv1Osrwzi3W/jTNdfyHMjxMPCefaouVsED07ltEuQvezyrFk9rcfDkC2j4fGcGc1LxlcHHloSJFknQ+BqmmCNAuoFkXNcqdo3kQyM2iWawvYhgxAnTr5phr/TlsZpac1ouw4n7CGhpcXjf4mf9ZF4676YPWu3k7QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-15-69.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-19ev1y_e2etest","name":"George2-RHEL7-19ev1y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c102d797-4195-4ff2-949b-b6b20ec9d4e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"de7e76c7-9890-449f-bff8-93b44f773491","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAzWE6KFlQsdvurxOTwh391b/s0as8b9OcLut0T77308e46fgj9T60ik2QEK118d744aukIqkD1SwtktLQ93iAgqftCDkd2tZu4Cmkf2HkZCL/B0947Gb7QrkkusTsdpFo27SnGoHGy7jPNiK/hYsrKTKbzMs4YvzzuwVlw0bYoXA2io8XIsIrLZ+nM0fnBYRir9bVLQoal6t9EZbO+mLTzIRHjPhq1v3d6xm2In+odPUUokygAAP3l9TP5oLQXNEEu2TmI0CHX0g/cb5l9qBBK73KMCkwM57GWwOCbVUA8MgSOBbxttq5A2xviSh7q1PfFfp6kM8iVBMOOln2v/f2SwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1uo6sa_e2etest","name":"George2-SLES15-1uo6sa_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bc0bc5ab-da3c-4e3d-bac8-00b5d72ccdaa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f9364b3d-1910-4595-a8f9-f33923825ca5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAxRoJnlxP6L5lt5NBeZSj2U14fLlUe6qo3GWpi9PMIdhSYMJxsAd6c6uvaI0eFFSCdpEq2cx9iJ55uAy+uBBXZoYXYU5Af+Cge8VXozfa0g0LdtFNepTz8Hc3eWqI7Qp/W22YhqYLyc64g8dbHkwej38w/bLrrBRKUbLD2HTsd0pGOYWSyiq5bbsqHPAw4WCNkSgLqKgURGhVGQwNn4toBBZ1spR8KC/1/E17CDjfvl5pWFiUkDioasmA/QSYO6tQM5X2/pPNoaZU0y7NtrPK8F/ynfB8OUovPB+9qPIjk7bHzjuV6L48DJ77RU7Q8b63L9NSNx5Z2SkZitaYE5xs6wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-15-69.us-east-2.compute.interna5yf91_e2etest","name":"ip-172-31-15-69.us-east-2.compute.interna5yf91_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06f6d30f-b980-413f-a230-359ce41c8343","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"ip-172-31-15-69.us-east-2.compute.internal","machineFqdn":"ip-172-31-15-69.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.173-137.229.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-15-69.us-east-2.compute.internal"},"vmId":"74ca4003-8a0e-4b86-a9dc-9dec43a1a204","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAyfk6lJ9gU0VcGLtDYaVH/VO7K1aNM51t00uqhv/2z4+0i1vqY+INIjxCk7VZGesqvbYOUGbMr/WPgkM9biFhWF0H6oIqdKr6eC3q5bDC2N9hbKLmffBAEcBsW7rxEqBPmVRkYuuTzFsn1Bz8D3bzGe9SU9+SEywhcRFMQp5SUN+5DCNP2PlXmAj4YZS23iJ5EZqJEYDz/8E7rUDQoA51ywiKAqnW3aSuBxX239kwBDaZJye+HL+/pUTAzCXZNREnzKYcUyKUiEjJsJAYrs86cnAkQHJB/QzrhUNO13hdqys+0kV8eqG/HVzO04Kzw9LDvMn72PkCYM3chpO/yRhNzwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-15-69.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002","name":"0.8.20140.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7c026309-838b-4e67-8b8f-43ecb4a67209","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a52b6628-7d4e-4d7c-aa4e-59656f99d064","vmUuid":"F8A8F6EF-DEBD-5D49-8966-80ACC10E83D6","clientPublicKey":"MIIBCgKCAQEAqclXUZ4hRa+khiXjHlzaD6clTV6UFqrKIEXiCFxvKRcb62aBJ1VBWMebHmU8UTQVU18pZxiprUC4q2/N1paDWWsBsvxnOaqJt8QizB36kbfa5B+uCNFywfeavnkkDAhGAeZekmoEr87iuT7qqVfgCKPPRly8jJ7xJcHs1abc6cafcVYma/kMzWeAhfg5Q5pjwIRTB9Atauhis3XBaBhXjKs4H4qqlELx+NqY+QNb4iPg9Kl9eNQjRC6KuTiV6YpCpmQ5VTs3edEqJLcCj9aJN+owpNVcjSpREshE6CVFMhxi5xI/oFijceHW601T53iKWoryNGtebVrB2wvsU6qwlQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.thhlmbu1ob2ebewt0i4sncldfa.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.003","name":"0.8.20140.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e352821-4ffa-4753-98f1-17e06759f546","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.003","status":"Expired","lastStatusChange":"2020-08-18T10:19:01.4422383","errorDetails":[],"displayName":"fv-az105","machineFqdn":"fv-az105","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az105"},"vmId":"b91a3b29-5fcf-4e97-8d20-dc4bc2e0bfe0","vmUuid":"9BB8A5BF-3BA5-A346-A817-DD60EB2E2578","clientPublicKey":"MIIBCgKCAQEAx1IvbwLvSIgAQMBJlGATvL4HpiSeSWVuI0818qEiblHbmf1Q3H1Nx58H46VOYpLMPQBGR6+54DIwEv705PVLqsafA/EFXBq1eTR563XP3fkmKYuPoISlP8ykLRhvqQydG6UHI6/Iq+1FJllbhsE+Cdv1itgpm/N6NItrqbyb1pmm1eRLyF7PGEgofaFc+fsmVNIbuRsUyqRwi5OgqmTFi1yBCsmL4UZZyX/HbNxFRtXXhRaoYyvSvkhE25tkE6gpX7Xm6k0Oqx+DWMxyAb3dHs2gXXUT0pU8kt8xYXv2pT9LJQ8Dvg2a4x53t34x5TI0724HJGXZZbIYxa9utn6dGwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az105.rnz4jkk22bvu3pm3k1ir0agftd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1lx8jt_e2etest","name":"George2-Win12-1lx8jt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98bc28d9-8799-4cfe-9760-e303c6881e85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"e5ef3f2f-b8c1-43ac-bfdb-13d30ce89da0","clientPublicKey":"MIIBCgKCAQEA9cVOp9Fi08H/OHwq2YTP8Ci+Gix1h63wCzhIF67RIWqfoF2dtxtMKgqj7ij4KeuPIIAgHMQvOQw28OwDCXNL1tYO4CaIZvN5exEiIXot+8wv/vYU5xSO1Ks1iKh15eItvSC2KYKfdzHJnrj5Aesrm8im4r62zgcOKKtPJacekzyLFSKkNUXXI4fb/Pl5tSi32VVgyN2KwZ2Plm+s9NfLN42ikG4FKluRvrvpx1o9lGR+cSoOTT2kv77H2EFwc3/dAFC2R7RoAr9LNJj3SE5C99BaEz8Xf99O2S59R5VYnCIQn9tqMoYpy5DOyJ8CMdPR5RM0+vXxYijYuCgWusSGHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.001","name":"0.8.20148.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ef3e997c-77de-41e4-bfc1-f334073e3bb2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"osName":"linux","osProfile":{},"vmId":"4606313c-916a-4bf4-9bd2-f8dd248d192a","clientPublicKey":"MIIBCgKCAQEAwy3qgi9ZMqwqvwuKdf24MQZnJrwCU1PC5Rf5wJf77O4SvgJVU9uRMf8o2hGVTsxfahhY9E6U+MpZ1lo+fB4nd2YUNAfaWAI+JEKnG3bHgvbR9bzk7jANulo3Kh27NituCy7yZ0QuSaMOyZ/yT6jlBgzopFXml74EzhO8tHmbczS/htCYuZDjFMfh+dn+4LS0/SVoWNPJmGAfhtZ/0Ry8Ip9RFm+2ZKKyaEajGr5BEUbY2bCRgwkNlhXoe9qWo3cQlckSqkM30/e3TQs9lO4zMSPIFgj42opmFOqdqZclfemt7NwPEa0Bv2CvHsEa9GrBpmTUkNuVuw1GKfpR3AUNMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.003","name":"0.8.20148.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bcbd5832-4375-497a-8e20-66a4b98ca69c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"osName":"linux","osProfile":{},"vmId":"c606723b-dcd9-43af-afc1-13374f053586","clientPublicKey":"MIIBCgKCAQEAt8ruwEmH+js1G9TmPNiLWgCf+llxPLhNqe2neOqr98znYR8p0HlZCDs8XHKJsLTQlDJAZN/ib8Ffxm9s7UfQLbLMmMVugbK+sr8HTY9p/8CeKn3uo5RB9Sp9yUVcnCw9kM6FqWv52WtVPeKgEff4ULpISNoJKu5aMokHdnslB6wOHVXrKk2PnRGavThwbqzNU5GSt1D45xrRgSG+xutQjC7y/i/WTHO9Bj59UfvgpGKt59ENNUQjdpfUlDb2VRPS2opDUBLYQkwt8gJZ5wJAJDxrcOdWDdkJ8zNSwhKx+GNf+brULNED3iKbHJJmsF5CtzIDzQeh5VAUNCIzFWJW+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.004","name":"0.8.20148.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2864a917-e05f-43c8-ab2b-e1625e3529d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.004","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az506"},"vmId":"c0a48d1d-d524-443b-bf17-df41bb3a7ac5","vmUuid":"19640E3B-13A0-E940-93B1-5657D539A9E7","clientPublicKey":"MIIBCgKCAQEA4b+53CyXnsAVgQKuDICShS8NjohjNSlECFgcuyVxhh47Vp3sjgWnJXyobG/VWvlVuFXZLg9ou3RWBoHM48uh8VxaGJitaRL2z0S2AWGFVLAyEuyCrgcqO8GZgyV6ayMuvayUc9W01pgO5fpT9Wj0lOXmaxxFcYtC5+PyPzeAH8mc7f3gyKEXYeeGPN1VzwA47B3A7UqIPrjMXtQhF5drRkelLpH+IT207/Vq4EFv6V2mktZp8Ke0pZ2Y4wBWl6IcSOXmFz4f5jNlPPnbe1fS5yZEWxabkt66YooDmvUf52yQPbH3kyFhOIHOZu45AxEN7BUJPqTy2ZUO/EpT9MPqgwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az506.vdlmqd52r0eupcr0gz2ffh33ue.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.005","name":"0.8.20148.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3b84e9ca-8221-40d0-90c1-d83d520dd521","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.005","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"d71bc733-5e1e-48bd-95ca-4741f927b929","vmUuid":"2C6CDDAD-CEE7-C740-A30E-A74EEB6556F9","clientPublicKey":"MIIBCgKCAQEApzFkZTE/w1+t+Mn9/kRAK65bo/FTpw1X9XiWPBc1WPNqOG0zple8LJYEUzGTa1dPt69RGr3ClWPQOI7DX9MHJWZGCyBuH+ykxVbSNp7Q0pSXPxqJdVjlSiQsBE4a88GMdFzLXEywyZbACUSliKr/24frRrPHwXwL1sz4Uvn7+J7SAHBOTijGZ5prvMkSM8qwaCJSIMe+yHTxbIUn2rePvkKwQzNQNmLIlUi58kQHBx2/45alBMfYPkeLo148R2SpvBeb//dnG6x4TcATq6zI0OqjHo/ahWHMQJFfDhskS2AZefe1RLty5fW41kMyxATiNbRv+8cIpa4JoKl9D124OwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.bsc2sesxfc1udoljni5ygnmrzd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.006","name":"0.8.20148.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca854e25-862f-43ff-afc8-d9ffc9b6ce2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.006","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az508"},"vmId":"ecf0a6ac-8186-4b59-aa63-e8dd9ad48c61","vmUuid":"4326A456-82D4-1A48-B7FD-B96AE29C93A0","clientPublicKey":"MIIBCgKCAQEArP+Z1j7BgQDG0jZmt5ZdQE60Cvmf0nKSR+exsI4VYZRZldUVjSNtXcGO/X8fWZTcf1ZMlhiPg8B9binT35o/+eyVnE0VwAEGPfHHCuKLzFbj3D9iRBMfWAEEPeZoNidqnAnP0oy1Jokw29cDmST2rW7th09N4xKfto4mt2vF3mKrhnMp5adcNM3X6b3MveWbH8uyCImw66PsHJ3KxWO1jSle+FMdx3XHJKDfox2rxtaLjYtOuUVkZnroMD37U6pDXlFc2xM+/6hYtCX3zenGLjLx8UQS611DOqbTPtPxGdsPizalnX/jVdnoEV6NWfSHHDTcGeUZSsiuDLq0cPWlkwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az508.xbcc0agzd1judjqpxfw4hfj30a.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.007","name":"0.8.20148.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9c4ec52-cab1-4b31-9466-bd62edad41e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.007","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"41fd1b24-db7d-4138-929d-0b7fc28c8e94","vmUuid":"356FB4A6-2E9D-4E46-963B-D721A0C23BD2","clientPublicKey":"MIIBCgKCAQEAz9FvOqxkiELDP2T2+UvhibuCDYoKXhb5zzAYn7gYhy40+KDAUzxjBLQ4islxhFUqvmP+S6JYsYxiBfhC3ckfGMaGJgxhbW0uH7LksUke+R0sukvGk2MYzFB/IpNfTqEyJaGdrKRAI7t0rhJOPvUmNopefUfCLVvKmpxJ0qD10QSsnLdtBMTdUPh02o9f/V9JhqJ59OMzwbLv0EyqCGraLAgfQ/c7ZVM4F3++O4Ouei30D9tDOdBiKGEFwtHr3QDTV492VosC0PY0wO5j25yT8utr8xryyibTqorXZOiA6sO1rGnFQGyInZhwePc7wuG8b1r0LsNqPHXcRZmxcUoiWwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.cum3dcti4t1u3kgngbyia53dcc.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.008","name":"0.8.20148.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2fa7db69-5205-4797-93be-2d5e15ae9bc9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.008","status":"Expired","lastStatusChange":"2020-08-26T08:33:35.3536928","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"a9384e7b-7d4c-4cd4-af88-be5af3ff1bde","vmUuid":"D4D13576-EA82-2245-8EE8-52986B136C6A","clientPublicKey":"MIIBCgKCAQEA18zyfJaYjif7tixS2agsnM/CnT6Y6yuxrnvWIvwBcETZIbCjWd4E7Hk6U4qqNhLY9rFgrKyO8fn0I9dzvkd0p6GyxJ5CE0cCGRNli4ZhzkCvq82apNufHg9Qo9lttH3z5DWzdfpsPF2eRXSgS9jdUrXIeKaQqnsjske6JNxWD31s79Pkk/kHHIs4VJL2aCoHCi1lpQw7VoBfaW82n2MiB4VbO1wcFsfY159pAnCka1g6O7Dfd0XXI2Rfdp6hndHVGMxlE8fRnKpYB57ZFnUJpxKuEBttJAd7m+BrxiVOpDRv4NrdkIP7Wm5YHiLG01l8enFZ8Mz9kujMgabU3dIi4QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.p2e3fkk4edoehny4pbfwpj3lke.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.009","name":"0.8.20148.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c7c655d1-c0a0-40da-87c9-2254b24c7673","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.009","status":"Expired","lastStatusChange":"2020-08-26T08:33:35.3536928","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"ff1a1c20-9e8c-4802-9479-4a7cb6063e60","vmUuid":"3EC110FC-328F-744C-A78D-380843F7A42E","clientPublicKey":"MIIBCgKCAQEAquEBvgmrw1o7KtdL77HIs8tOdKbCJI0d+N3BCc0rlri3Hyhk9CnH38oHcHb0Vc/VqineMF1LAyoVILU6nNTAqAcnxcA2E7MJqu8VKm+9Zo3RepowetK7eSdFruZkJd16tsO8I6qvYqnYY1rVnYvPcrkfjPDJw3iUWavO31nH1vEkPJ7fLf5iYwA7L3haWRJKY7GtQeNO3hRMM+3qIewZO4G4mciVRmjp2WGsLi22SsLpmYMKozdNOc2RqjYpITTk2xsOqrxgQI1rq3IVVW+ZMGq4YGi92CL7NgIc0oh2GikdGCnf659XCKnLERVWiNP5HTXOhumh/HSg7pE1HrLsswIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.qdwxe10fqyneldbloddyfm1u4f.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20150.002","name":"0.8.20150.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1acfcd8c-10c6-4552-b8b5-4fd023eafd2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20150.002","status":"Expired","lastStatusChange":"2020-08-28T18:28:35.6664975","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az601"},"vmId":"5f97ab40-0294-4a99-a29e-552cad866adb","vmUuid":"921C9F14-EE10-D54A-AE3D-5DEB5501237C","clientPublicKey":"MIIBCgKCAQEAsTe/0XTecL2F0lleF+vgDfRvCv2envHBvutXajvx8aMpg3KJdt9Lzdz/OBdi/1S4U0N/KNKVVi0aZ7FpFkBlCh00lrEeNuaXuGIf/4IwJhUW9SntVkOZSVV8IL8rzd4IERKyfVUOBnkwFCZSC3cETgCl8YoAwALzIWjDuBbsg3QjHkTz77ZyEsz0sp7Gcn4Y7DXZlVbb8Xa884JPykKPzpB4YILzFq5qL3xGmL+ug50U91gA1c9SBsfIYdRTaQ5ESj3WLYNfs90SRXwH0GQnbsOXWH8IL0PWyI1ajznDlq81GCy+y/lEquMFTDAJ+s/nRTuuT/vRIZXOKMzjL78WEwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.ducyatw32tcezdgw54qaeevh2h.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-T071065R1ARwb68h_e2etest","name":"WIN-T071065R1ARwb68h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1983cd93-c56a-4e75-b8cc-023ff8ca87a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.010","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"WIN-T071065R1AR","machineFqdn":"WIN-T071065R1AR","osName":"windows","osVersion":"10.0.14393.3686","osProfile":{"computerName":"WIN-T071065R1AR"},"vmId":"5c8b5d4c-2a8a-4e09-a6ff-d8ebe21f7e19","vmUuid":"99B40FA0-9426-4410-832D-9C88A85B0C13","clientPublicKey":"MIIBCgKCAQEAw/8PFKw/4Jnkdyeoyl+4C4sOyjXi8uQNnKhEyyLbKPX0j+uzjgQxw6m3lQ0KCnPcpNP0lTBTKelLF040q+T7Ki4U3GziQhjvuDy+5WLW63aQ+Pl3khXAFcp/naonyDNPGkVQ9PWknk4PgMquo4CmeRKkCP/36TU2Hk9baEQ4Y5R+3O9F5QKBW4iNARKY/QEErqdo7szHIBgcLmnqmPCyJ1GmI6+5PSJNyNn5bWhIC9yyz/73V23eEa5zxHsrHpJMjcxJRniy60qEzQySdR2YbOMcxsvXOyvfmgKkW3kwgcSU6dZ8DeqIwmmxpWXZegqZuUCML3r6DQZ4MfLWUck60wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-T071065R1AR","dnsFqdn":"WIN-T071065R1AR"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599yrca5_e2etest","name":"fv-az599yrca5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ec39e5f-17f8-4ed8-9a87-1880a065c8b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.005","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"90f1936f-2d6b-4594-b948-6a76ca1bd1bf","vmUuid":"5A4B9B10-38A5-D547-9869-9A1F979E92F1","clientPublicKey":"MIIBCgKCAQEAtmn9rSmAItreckS438R7DfeNwAeAm74GqV+qVy+zAOBiz08U8HY5g61ZPYzw61iRpKGLwruefPozWf6WZOvR+ohh2HzzxHhKbe6JlSs5slApzIFC7OPiXdx5ycDgrPakbQwh0zGrtG9TNj5SQFGTz2z6rXwOIsSZ7h5oU2gPOGfn4IBV5TEX9Ekxhg/JIk32lTez0DcEIselmATZdMtnvvTjH5x2vO8ujCJ5psN7roBX09gG6+wb6E8pB0fyitS+JhM1zh1/QMMmeFPsN372Lrbtz/uycylS1HfWygeqUBsat2XUJZ5Me25ZFRguRlU1juxfVnpR74KGsESuUZ9RFQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.b5zgbhi0iuxudlar0by5ovazsd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az623y82hw_e2etest","name":"fv-az623y82hw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"971d02a8-f33f-49f7-9e8e-c8e7eaa693b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.007","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"f8656980-cfed-4b7f-a1e5-92e0fd315115","vmUuid":"62182673-41F0-F544-8782-468AFAC14412","clientPublicKey":"MIIBCgKCAQEAxjgKREGVmgtg/JtEi+Gz2nNj9Ka9rzI4uKnJl4c2WLF/hYuyL4pul6NwZAIzZSJ3JdGqbHGBD8aibaEAlfrgtXVc3tg0cmn8fKHulaN9I0jnlCSoPwy82ua/4CkCe1AvK2L6RPcPPcvznh5PYrqaRl3x7D0u5n/AD3Emgv05qIo+L14HOqMkQSucSwy4YRTimfjVTwUi9IeZFdT9u9q5Z7vxkTtrjPE+Syad0tq7q9IFUj6gWv12s9iNORPEO1EMTjh4f96DdCBFyhFMQpwCvQFFw1vj6A+CHRnNcfqKyFvOFBt3RPj8j/7CePqeO1O/aaOUSQJCakDQ/idFESbrPQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.cg1cu1z2oi2ubdftnevakm22qa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-T071065R1ARqtj8l_e2etest","name":"WIN-T071065R1ARqtj8l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7044ef14-9fb8-4e3a-928b-0f20cb1773b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.012","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"WIN-T071065R1AR","machineFqdn":"WIN-T071065R1AR","osName":"windows","osVersion":"10.0.14393.3686","osProfile":{"computerName":"WIN-T071065R1AR"},"vmId":"c928106d-27b3-434c-9593-f1abe6035eef","vmUuid":"7FA963F3-4A82-4943-AAA2-0ABEAC933EDB","clientPublicKey":"MIIBCgKCAQEAl/e4BxZTGoO0hxbsDJD+lHY0TEuc8No2QyQeImSGtuNbxRADqMRWh7dzDf2HBlRNhuFPCP4NaaUU2nP7zNfLw2oUES5axbTREt6WDuD6Z5+wGKtUjK0pCHrDHzpoaAE32gkv3A+CZ2+09rF0SkQahHaeazomxYwKK6sFWd9GcXa1wcuJsVWrRTh2fAGk8C+wd1EW2R4JFgkrp1VkkQfvU+ZtD2BIwaw7BE7o0gjh6TyEmbza1GM47+MGHapoRRwTRSQzKqpBR823JGfq6x62N/4FT2ZKvpScFY2+MmJsfaQGtkIPuR1xUnEz6TyzlKKcSmMa6bW6rpsgg6L5vrkjGQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-T071065R1AR","dnsFqdn":"WIN-T071065R1AR"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1260c5_e2etest","name":"George2-Win12-1260c5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f1e71a42-ae68-49d6-9d1f-6c3878367de4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20154.005","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ebb1fd7b-ae18-4159-9527-6aa07a2c2652","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAmtz3sbdPTMUihUWBCB7aUq09Y4auJABxzlCEiwj9cAjq0oqqA0mEVDTUQvdmPSlOkFpoI13LxZitDO00B1pzT5Pb2mRT3nsIVLrPxYSGWEQBC/7t62XO3zOhFLBefqaW7r8Zdw9xBAMzt0ME+CiZRpRaZhIdPo9K6xerOaEn5aQbfbCQ8F0sSNGut6aIe4G+aJcgM2i70YZtDzrylWwFopC5kNr49qMYWCsUkLn+q6twnEsrOM6TBi18XwD+Y5CzP6gRV7RddOIhx86f1gYDHvavHiUvu4Z9L2DZnt9ATZKWjBjuygjBLNJTY1DRRJlYmdF/+zcQhY/qZDjotG5j0QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.007","name":"0.8.20160.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4ed42e0f-c4cf-43ea-83b4-ca85580ef1fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.007","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"bdaff870-8b3d-47a4-996e-92ad95236cbc","vmUuid":"BF0D918E-BE44-3E4E-AB8F-F436368D57BA","clientPublicKey":"MIIBCgKCAQEA0kIIiDMNrdM+7H7/JjIvzGFjz0+AnnDn7y51nquFDndyCnbUBVE0qG4H3HXqBxS5yrv3MApN5zQzurQQ4i5dkMqVnIzp4Om154JC1jZ+LlKtRqAj5K5HV3iNMPnoRmzlMHk6fZ33y3c9GoW1MVSo1baG9S5Bc9chpv8ig46Jjomo2/0PejGYOJzJmJgeY88m23Y802RsBt+Fw3z6iDfVIBa6/C2466TTcMVuaoIlryAgxpodGDJF/3BQJjNsBsR9+ZyVWhEKQtJ0H8Cfrbwpq4NVXso1xbxRkGsRjoRfU1Q53R5NgFju1bynVDUEtcIwyLP459VkyPmOLDBNktGY+wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.5ojcw3ym5ilufjsim14cbcpkab.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.008","name":"0.8.20160.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"473c358c-6187-49fe-9d0e-f1f0a6fe17ca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.008","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7d8092ac-774a-4812-862e-596f96e5d515","vmUuid":"571CB8AB-A1D6-2D4F-998A-0BD9A386F071","clientPublicKey":"MIIBCgKCAQEA0tfGyyyp7/Zu6V619vibEygImVWrDQrNLlbjcb4lbuYt9yt53DCunVq/AIYza4BB1iVquOMUILq7G6z11mqKbZbOefwKygFx7ZzGCza+3KulS33O0W0zKpmRnHNBcHr7vY2J0nIYSUVgoSzWCjP4ujcdnZlSX4YDIJUgAM5qOy9biv1/F5pPiXSYcGNHoMvbZxiPJxGrOcSsDSjgTr6wU7ZVchRWuRGA/9hjquSx+bGgU3MGkdmlxPTy1PUg3bsbFwhyVJKm7Xx/ZPQzTSzqJZAT3juKwiEoKMcg1s0ZvNDX1nCp2hPe/rY9UkA1fgAz/geJiVcYsEPUd/UVbNkkewIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.ildyvi3tvs5elcdgr3ogoyb0vh.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.009","name":"0.8.20160.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"edfd60c3-5f43-4ac6-912f-4ce0bc84c9a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.009","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"44a6938e-ba61-4aff-9b60-c08077607128","vmUuid":"14EA5401-1F57-1C46-9563-3AD238F7DFFD","clientPublicKey":"MIIBCgKCAQEA0lZP6NBRG2d99atnQ9CCrUMxF7jB5Aik7P507oOem9btFWWwV0Zd8Uq+iOZRBqfZkc/y5lMNzNCqu4SME5ODaX/EgR2KhjE5Nft21qUEZpqvpU8ts6jwRw4TbX9XxlZtWDkmRyTavMSN1u9vIVBsyFQWZaFYpxSN6kmNCb+OEiq5uG9Q4+CVbwoqcRbJiUFs8uLSbMHgA9hufkRLWpoYp0g19CpbRiRUJWvQErLBQ+HlaE3rMeOUk+ni7cClkMZgH1MGuZY4bKT/vGyuVjQ/Rc1LwgPr5e7Ufc+Q9oFbpDyYVe7E9xbMdqIDpAqICmCLf/RHI6vvlNgEeYfoJ+hOtQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.bkzmlvofaskelm2nw3yhgljy2d.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.010","name":"0.8.20160.010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5437386a-6c61-41ca-b7f8-43245dd09a19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.010","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"b1df6045-710b-4034-911c-a7628aab0d6f","vmUuid":"54E37B1E-08A6-FA4B-BF28-85C0ACFFB979","clientPublicKey":"MIIBCgKCAQEAwceyiPqH0gYbwwqFjCpSZ8grm0JI/pDF2IldxMLxb4GmCEjEPEs1214PfDeum9zTYJ22CxFWAfozYpCojNdL3eyGIYFXzCyzYBC2G3IMO/6wdUaEYBvmUfyG33eMHgo5XcMVRK7AYHOXo2rAtx7zz/o9x4eqTU/vHiG9grymJYi4JkcPQRd7JFi4NXW2WJ38ubmss8z8H0WA5O44iyfHD237p4cprJbqJuZdsiQNfs/wFKW38r1XzFxT6VxtOkSkDhwWkDBQ2JEoIi7nXMSZwlySOHoYnXl1IVyjIfZLbi/6yDErXbjzXqlglNlkXIL/9T32qglgX4Uh26eh3z3APwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.ql2clh252c3uddg0p11b53udya.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.011","name":"0.8.20160.011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab48ab2c-650d-4b18-b304-06666a62030a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.011","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"3c2942af-8a41-4245-b0b3-3f99bf271007","vmUuid":"E660175E-A21C-3849-90AE-FD2FD9171FF2","clientPublicKey":"MIIBCgKCAQEA6YYcNkDVzIxG9h27j1z76DhYsFTGvFiizZrw6WuGKKUpq6OXJOVbGOJne+vXoIiWzDjKNyvjSAP/G1O1rLapoeDvl0fKOB9CFMyaj2FNvXNmZCOVO8vgbwlmqj/x+odO+jFsQxij0XmAZYXw+D/07G5uDVBFVTERKINiaRs6BNXX2GvAm//OEZA07yn6dTR5WngHh42LAaHxbW8LBrIck85QMkJZQcCVKFAp/DnUmcVSYqcW4aAYctoOHKLpXmg2jTR7DmWzDajquzI/YKdNvd+Tjtexmly/53vf2q/BKdfluloso/pRy+oxJqVfYZFxyc0LhNLwKc+bq7gfYGlIIwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.0vbzrnv14haebbzv04bog4quxa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.013","name":"0.8.20160.013","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b577fa0-f307-4f1d-a6f6-93721e5a51c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.013","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az601"},"vmId":"3905f3ad-f25f-47c9-86f5-2495159566b9","vmUuid":"DD09BC01-2A86-7547-9E78-6585A18886DE","clientPublicKey":"MIIBCgKCAQEA3vZU14g4RyFTsNufwfRC2C1rLH+BylLQcEfqNBKLCBdoUHC6finKHRStPzW4jHZyrwGVzbrDtFgHznv6eUhdLsqUNIX6RWVilyZJli8FVIqY0LFhBEjT0H9Rro8nn+Zkv0BqQz3iin8eJKNg3jG4uWqXkGHyWU++fjLU15cEkQX4GieEdpbnZuSzekUBPuaUBRjMYa5OGCuBZnRgIytqwL79PfGtG2Upjknl7wDSI9xmA2+srZmGUag8+NSq75FQ9s8c9kM7B9GKihSfjA7wM0Qf1Ys8aDkPRHuLxAZ6wIK62NBCQCPRREuD8B9TyL4uGOQgihfEEhe0lG2paJ2XiwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.0iy24qiibn1ubo1qogexr3ojhc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.014","name":"0.8.20160.014","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"34e9da7a-f282-4409-9fb1-203505edbc2b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.014","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"0f2832a4-358a-42b9-8849-c54e80588a77","vmUuid":"F7CFC891-2292-0649-844F-87EABC1E4807","clientPublicKey":"MIIBCgKCAQEAtWEE7NkNjsIJcnraLqTrOzcQWEen2jJsdBNQV5wrKcE1TKVhBaIvpo+F3tH24pxQyJ59+MJx+SOJm9qpPmdxwGYI/U9t45A1jQ+Vs4NXdH1Cun6u2RS1PJ0tcIJgq5bQvb9e7VzF9B+OumoWPBpxOUVkk+AE17A6WzNZvN4rZNW/f67QpjO9+lpCiOJ99zBMIkvqPb1/mjumVydYyjkQkcUCuN98W92wslt6JzVLP8B9VpZNYvrAwsumVLuJTUUjP65X16vcHj9UdvnrqqL4/y0iaoL4Fn6qLP4atkYfRTGlXw9gudA7ixrax0C7ZessC9RENa69pvYiWUPstiK0QwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.ce4rv5wmiucu5d01e5rcbvhjeh.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.015","name":"0.8.20160.015","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"201d821a-f1e9-4637-8499-54c95f290174","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.015","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"ae9d3e1b-e6b1-4af1-b8c2-fd5ef417f21c","vmUuid":"97D1C61F-F056-7841-AD4E-B3F836FB793A","clientPublicKey":"MIIBCgKCAQEA2Iitx2ltkQtd/ykMY2Lh/il7PYqIbMz5y7+C48BCd+dAC25X8uk8fTwrSdeO2irbKiPNOjlXw90kyiCpthTD+SVQhutcNE2fP+29SRv/+wTY8FwShgi1Q005Ga2r4gYHJ5OX5M+UeNk2xeuIGXu0jd3HrnHGwfjYSEPYg/uN0AyRtm5DN0E+atgYPwLEoiyxP6SRoeOReSTP7pytUh0x3Jlr+9moiZ3Ry47/CZdACWMdoZG/XvkXIVCXDaOcTuHCnrA4iEVe3k8nDmIVN5HTuoxUl3pq86bGjGF+Zcw71XlA8XoitG+DEmR4/cLZ388IEv+g6fVKDRVP70J/rcdNxwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.yzqxp43x5douxd1gertvzhfebe.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20161.001","name":"0.8.20161.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0be87a15-80fd-4aff-8d58-8bf11413fb6a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20161.001","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az506"},"vmId":"a914eac6-e225-4e08-8833-47744f5057e2","vmUuid":"8C3472A4-6605-7442-8052-B18D22E12031","clientPublicKey":"MIIBCgKCAQEAy9Astsozlx+RCHueUoMx64zwARkifD/TgerjYTnPOKHO5XirATuBGrPsaDrLB48J6VcebFZGVBfCkGl88Bv0v+0+DrNysrWjXwYKpHxoROW+LNKI/R271m/3TtKM2panhY8hBsCsUQO3ih5r+Hj0q+FNbbtrya5U/S7wptdDkpszFB9PFJeiap4tydfyj/EjSL7faummNYth9vb2mi5qof192Pu655I9tPpx4HeyLoXEYDLHhzoj1NuqapIJf4b6WgMldT5k3ZUYZJRu4yzoKVNdiuJ3hnufxsIKNqTGO++RWmhUntVmheKi5GO3vCuzITdG3jLo8qnsVXYE5vkSkwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az506.k41kkzibsq5erburcnis1cdnqh.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az4642a90d_e2etest","name":"fv-az4642a90d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28d4effa-c21c-46ff-9c43-dd103a115c68","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"46123955-7a40-4324-aa3e-e68df8cc06dd","clientPublicKey":"MIIBCgKCAQEAvm/Fg748zDhHrwvL9ERky0htOPJfQXakFYsfZ2O8NoIHVXI63psav7ttYCeNkM+4HOye1LIVQ1fRCAeuadLYKTupK2pOEnq67kkG2JSHbMQ8uIlWAefF/+uDj00QAp+nIoyHFiRQmw3nk2mh+5mzKOl1IIq/NGKtkALzx+kz+KyHbuIPMrYTIUE9okbljkNXmEx00bkP9cgKpe5dbTPl34I/nNhN+YD/DO2Ie2Fo1eFlJz5qmhm4DlU4JY+H5xGYsvicZHFK2WBvD9d2XrjRtqHnkTwT6T9gLrpeaz8EjLOFQaXGLtSEwz3JYarMBUw7kyWPVA7fcaM537U+sZUHQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az464sj64k_e2etest","name":"fv-az464sj64k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b6e4e269-1471-4513-a8f5-110fa91dd578","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"5830e158-e04e-45bf-ac92-490bea8a5cd8","clientPublicKey":"MIIBCgKCAQEAt0T1TmjDYmR4WAdr4N81v+N4Jt1wsVN2GNlUd9Ry/eqwvXjHm6HQD9ia3UUbCvhlbxOHHVImYOVTO+e3H+mVhIsx4pRRcYWFTShPMczaz+caSROQXEX7hSyPY+gpEh8m0klX11taeCK5PL/O/BEheG+fHKKc5VoexXlyo1L1xEgKfJPghCRBwXVQAzTHscyHVPy0zUuI+p8cj9niNR/lZcakScW7lZy4HqZn3D2mYLNg9ZCs68PiWoiXOhJ5oDOyGQwW5paueJ+17E2SrxS2iJRdcHXtv3PWQtXRHsq1aff7pTb3kaNa+s/1D9zVd9a4FXRk32pYai9Wsr2eoY1HbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az204aph5z_e2etest","name":"fv-az204aph5z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b72cda6-6101-45e2-b6e0-a9d0bdf782b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"92277d92-bc02-4589-97ce-7cca258da09e","clientPublicKey":"MIIBCgKCAQEAvHRkN5Fbtf1yDpMmxAKvnJoD2MSi5Gty/Dm8scKPYALxIS+dFifzo6Px3AW8yFqhG01jI13h5+rnh9MdbcDv9Kt59R2Devt41MitgMSb0aLTqOC4OUIgEhGTLc4dK40ULpsi4+YDQ5e3Yp1pLEdlBJ7nxWdI58ehr4eWZ7HDOouX0aO+5mFzcKnYfap2QYmaQowP2hhzPsoPplcxcQk/MvWSv7sExJHnZotJUzJQv8RDmqvhZg83ELWbpaOKN7qdGVFXQlw3Ya1ZoVIM8SazpDF5HeL4Y8u+OQnee//fmPTGq4Q61SdxOiTbQoHzv4+Zu+mNUH6IcTm/OuW78WbLUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az204s5kh3_e2etest","name":"fv-az204s5kh3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb8b0084-fd4b-4928-8ad0-6fc3351091de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"482e22d2-456a-47a0-bcd5-ca1e0191e711","clientPublicKey":"MIIBCgKCAQEAtrJV1Our5oDQI1N9BntbdS+GITgWukFI2KEsWEPh96oGxl3I8NyyFu/jKpOKlTEBZNLCCCjQlHxWJ6ftHiDHPUilCCVAg9RTdUWffaDotIMrxZEHmr930Mv805Sk0HTwRnqCi2z8XHrT5OEZ+hfADEKQW06GIUZlntMtHIXmI35g0PDKpQzchZPTYG6UHnHf91xjho7nk80cp/5ceT62PYZvwtSuMvnyB0+zCgqkOVdDtgAlKqHgL9nkrFRLleYL/RDixE0rsv+GhKjIQVRMfPWsuX2+dSolbYfT12bj1/JXpSuRUSL/Y5Tct/5ZWq+n/9Zfjz66YM6n4hd9GU634wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-A60UO141VJV5x6yk_e2etest","name":"WIN-A60UO141VJV5x6yk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"66add2be-b8a9-4643-8eca-1d8d88e79cb3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"edecb0ee-85d0-44b6-8513-976c3d40f6d3","clientPublicKey":"MIIBCgKCAQEAtnM7xzVHX+AszMEGSPA2rvMLdDhvUEUGFMxMbD1O9M0S21rTgGyCwJWVsKyhh57ph1bi/6Zs89GGvH1qN5xZv9SJUQXiruvhkDixU7jSFsq60pOTq1J4tiAEsdub8dkbCk6CXMf4b8Wf9F7b2l+Sya8XyJ5txRAm/iHBIcjmo8QA3KlEn6mur9c2t7j0MNmJNqhKU0y/7T8B+K57nSIhlv7nemg9dXWXUQ5+Tg9BsveZ6NoQuRp3qW248ws4KPnmf6QXCTjKitQFQfGFMXPQ+WcvQh64I6M8yfaIeEsXt86oEDbmDIHcIkQvcfRBg5qN9XrvPJVGi3atU4LnP5B8OQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-A60UO141VJV8swof_e2etest","name":"WIN-A60UO141VJV8swof_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"346d5ace-5bb1-472b-b8d6-f950bf4c1445","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"36e8cb83-a86e-4767-97ac-e0958c8cf961","clientPublicKey":"MIIBCgKCAQEAzH6EIafph3E0FVGdgQZHfUMIbigW6OlvT94wk21MI29qm+sxZYHofjRHG5dIJBE8BKqGN2K1VVrDUmSDLS6cjpYxzCcWt+A/3+tJL8lQChSHMw+gepa6uyNlOxurgNMTT0K4IlY5QdPyZiQujBaGxpB2kV4gkW07jBzZ8JBQ1aIQrn1RSMwkjFm71X1A5tEhI95ISDioA6aH0AFVEiL8XC1mucnMk2ep8x3A1v9UeK0cZR6nCF93gw7NX97ygMGe+HpH0ZHZhxmHo0PGEiip6uxbrxXmIkkIavddLoX5O7A2BXOZEAWA/mDo40oCs5zLrlaawal2E2t6quuTOfvLkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20182.003","name":"0.9.20182.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddb2e716-3b8a-4440-abad-c905eadccd93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20182.003","status":"Disconnected","lastStatusChange":"2020-06-30T00:35:36.7830554","errorDetails":[],"displayName":"fv-az592","machineFqdn":"fv-az592","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az592"},"vmId":"af98958c-a06f-4f3b-b698-f77a80b07cc9","vmUuid":"B6F06A77-623F-DB43-9252-985B26316AF2","clientPublicKey":"MIIBCgKCAQEAsbT/WvqzmBp/hsQm+qVjMfAqlHV2dsHRxdJEvl/V+80WcH75maTCLWZC3i8h0FGZxJwIT7rEz6sU8wiJ1//jocWFFfW+IV3ltOiRyPzzOKpRMDCAFcSFK10EQLTM+DFhYvyZItmrsITNFwi3E7rQaMZMcm/wgouRaL1jZttUQeJMMZH9VyF//1fMbO3KAJ8pZrLTS6ODLvLSvILIgAVvmVVyPvwnLyxpiFibHDd/p2Q9fV75eBpQUKywr1SHaJ/XGCeHEaSMAEsLThG6otEh6qyP63xrIkimNVgz9kugeh7r/IpZV8oUtVi29gvB+BXz3gi/gQXA3K9oFJK0RbBUUwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az592.xmvnavnzuulepgoe4dute1qs3a.dx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1rhnw4_e2etest","name":"George2-Cent7-1rhnw4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"82a8df74-e1f9-46df-b40d-677ee7c06261","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20182.013","status":"Disconnected","lastStatusChange":"2020-07-01T00:12:40.9776619","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"58ef2c10-5f4b-47a6-92a7-e2baf502abb2","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA2rWxxgzKlzn+XrQvkJXmtfB9UINrxT37NLAxF1sqom5EY3gl9rjh5+GHo0VXDLtkeEnKs1ET3PPYNQvsfhW2LCGvKeX6cef2zI/E3V2TlvdrbzNhn2N4XNCKWd/ZsRB42017NmFhgJIqBesvPRq3uOcytUvDUpaIOV/pEW6x4GDA3w/2dce8GwJQFqYkqnIwlAxgYBtfHDngRQ7DabwaQqW7ZIeEEwcGxwwB9mDXCtAoeFrHZ1O3c5QGFpp+yfH3psVWqFrZn4nZ7Dehfa5KaFY/tmzk+GJ9/dvS4Uw7re16AcWV3ermpuONL4cp+MZHBW7aNUD6LfUiUvBIJrdaxwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599gsuwk_e2etest","name":"fv-az599gsuwk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b555529-3ffb-418e-ba9e-539b65ea3c7c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"bb80e8d0-4b71-41a2-bb40-ed965836edf6","clientPublicKey":"MIIBCgKCAQEA5iFOziDzfvFd06efIeNE+tso4iSuvB004PR4SzuaEFa0hVdunspE8hpEyo5wLE3Tl+iRkrM44hCffimLusg9obfIY4W3Cu+GFVVm2YmXI9cZXjMLCPwDER+NfV1mCo3iyeJK8fDaQCmvKjw/VR5qN4cTVF3+fzVxi38XvjalyEIrsRQqBrID/HIK6C54SdcJy5xyCAymUO7wzeUjZcxLamPSLCDiuO1BRK45Ld85LCfcAgzMEEC8jraTrs71Y8ZIOFZ6h3DFl89ANk0udVZy/7jiwB8b3FNL/s0g7dtLNbxkJi1vX9x1zy2ofY+0U8DBsx36fvgeyKhD36FeTbGNxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20182.024","name":"0.9.20182.024","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b935a21d-e146-4b1a-9a53-3744c63f48be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20182.024","status":"Disconnected","lastStatusChange":"2020-07-01T00:21:07.9839268","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az601"},"vmId":"dd3e2f91-14c5-4cdf-b031-e3db7ec5744a","vmUuid":"0115A408-6802-D24D-9404-81CD64412893","clientPublicKey":"MIIBCgKCAQEAvS0z2tE7TSZhCplSEJSIetbq9qAIesc7icwhrHYWYhkDhigQ8SfVnfT5N5vLaO2q9sjwzczbWd/3Eja6M/n/W5sFSEoPHWVY15z/s0guCNR2+UBRY3g4HymRHd5/HeTwfY/OaVh5vBeT7hKcnZD+xSqbKzUZXl9kPTg9Q6gRyAm0sW61kOpabOvYIT/bdOFgh/Iq50JmeIjOfDg9XB7MtWxO7AakyyJFvx4vW17GPuBrs91VWlFw0zOFjvi/sZM1PFy9jwE9Sr3URcrIceMia1lD5qLuZckEit+01Iw9p3JMuCwpRJjz7IjV4S7o3M8jdnBFpvY1+GWRi6KAR7T4qQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.pcpg2h1g525ejh0tv3jmoy1nxd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20183.001","name":"0.9.20183.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"93012a06-6fa0-4422-be72-a4a890725555","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20183.001","status":"Disconnected","lastStatusChange":"2020-07-01T00:40:26.0733994","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az599"},"vmId":"092d5599-c6a9-4509-b1ea-efecdd0f8da3","vmUuid":"6027C647-8853-8D4F-98EA-005757C04ABF","clientPublicKey":"MIIBCgKCAQEAuBg5KnSoP3oFnjMr/DC2uQ+wGpRNoPfaUbs8xumzwIVIW8/GGP5VHKzTf/dmZ6is8/IP8eY6INj42a1Mb1T2lWm3Cc+LOPUpp2yI43qAWHY8clltKkkL0Br/ENvWLwGGMUz8dmyQpiyLxB3W3ksNmvawriKVpOFDy1AS+/PryeCUpLhKXdYfBVCK6GKA1Ke+HcCSehY5cSXfJBadWGaFuR6mD2gliXeem9kJPqlrI3BZmP03qJY8Bqv38FklsLnB69uPayBEyFM27Y7/sUO2FJlgvok/mg06Oo9gg24oo53faaRbiKgxbSOZsMCVcjvm4uS9PXHZ2nM8PxbCYP6fhQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.caa5ld2553leva4hj0flsfn1wg.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20184.002","name":"0.9.20184.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ed6d1e2d-30cf-4380-ad0f-01f61d3f305c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20184.002","status":"Disconnected","lastStatusChange":"2020-07-02T17:36:06.0836204","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az600"},"vmId":"40ae1198-b1c8-49ad-88a7-5d61e12bafd0","vmUuid":"9BA7E64A-105D-6541-9567-8A28809A4E11","clientPublicKey":"MIIBCgKCAQEA29ozwyaMVO1axLNA8ycJbYQfDoaT9tCGpyppBgSueueo0YcGwuom0TeP7n8GC6Q28r1dKEmk4hla5UVKzj6sjkhuPtkTMKtYhId2O4Fy5G6k/w7bj/YZalnwtuVBqOWYLETefkiCcKsChJcBWMkN40/nw5SwmkCmaJz1fBmtOivOPlLc1NeNKOYDdQunwx20b1WA8UPasYD9TIL1vyitJ4l1A6mIRaiACo8NUHcjWO7ocppXqaIrlmhrYybCpRPZChbE45/KG9kJ4EzvE8YJIT/F7hTvuOVsoPZDKK43FYdKDHcinU/sL7GtrLTbGws8caSQkS5jMw9o7IUg8NeTawIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.5ojcw3ym5ilufjsim14cbcpkab.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20184.003","name":"0.9.20184.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6c3cc24-c5a8-4fd5-adc3-fcbeeb6f89b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20184.003","status":"Disconnected","lastStatusChange":"2020-07-02T17:48:16.0109701","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az599"},"vmId":"08bc6d83-ae60-4b58-ba9a-a7d8a819d0c1","vmUuid":"3EA049E6-A895-E54A-AA63-D61BD6D28CFC","clientPublicKey":"MIIBCgKCAQEArhAxbDkFOoIdvGo7dPrqYbS2vFYtI7V8DbbiZjwRk4PZWgX1JeTLRP8CrOYMR1L1DamCtHs4r/UzTWybjLe8z+MHcFQIx8/06pNUwKFCQF4ErtMHNDNLSBhaKXOwjNRdegkKW/wMpvlli7PP1CCL7B/nwkxHC5duWosnW8DJr8i/LFXS6c1eb98Sstt4YMksA944XOi0Zb9Ty+8uv9Bu2eIFRNdaXrqG/D+sP1BI7J7VK68B5NLXPS4HAYJAlHjtwDMKOcEVsv4sfyshXsqoV1PWpzQRXkH44SW6VUTZWnhtATYEr1SQyluFcwbbaHg/7NhoTDzTAz1t6+sCDNAe5wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.2ledehzeahbele1glp4kl2cd1g.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20184.004","name":"0.9.20184.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5b2c2b48-daaa-4150-9ef9-0aee11d4e8a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20184.004","status":"Disconnected","lastStatusChange":"2020-07-02T18:12:31.013066","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az506"},"vmId":"8ae6c129-65ba-4ead-8ee3-e5cfefff0eda","vmUuid":"115D2A96-17E7-384B-8A53-AC9EBFA316CB","clientPublicKey":"MIIBCgKCAQEAsxcCp+0R87zfQEdq9WfWfSNrRu8LrqGGihuhvOL87TjW4O7+kMcLE0hqHsdn5z3P2KUE+Q9Ao2Las51XtkMAjoP8nERV9dMRez+imjR0RTz80WPACAd/3rozKFFgRd91ys7NZVGf7xUvWEcW9JburUu+P8cD84QO3pbhTuhezj8wjwlmnKovy40+H06zLMv2x7oI1c0XpSOe0dqfYFLSi4DpdkKCynH75nef0WsRvJXMrdPTzTqPEjxdoEeXxeenn2p5t2hd7nGXdQ2huh6t0iObnku8e4K6Cf/Mz3LrC3nbKzi4IeJ+LSWR1fm8ap4W5nixsVxog5BxBDD0L/PLXQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az506.vqgg0dttccoutdojecgv4izhhd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.001_RHEL7","name":"0.9.20185.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0c153a4a-1017-4eb4-adab-180bc3eec61b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.001","status":"Disconnected","lastStatusChange":"2020-07-03T01:03:30.7270388","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"014468ca-a336-44df-9a29-b23b7836b7ba","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAycthAsOpoz6Hqrh4t+mDIk43EK6zGjD+pvjPqKGTM2k9YIkLRDSdhrbKtdb0XEB5OV0X61tGWA/cd7ZhGapTBSYB6Etv/TBXN+mQJL1MATUOb5kRnBdxcIJ5fJ2IB6K/voYTFVkkUlsxfPq5X24W8cVAoaMDkeYJtyGXDKuALJJbY1D/MXB00I/SRcVezd5RdcbFPIPLVnmci6dp1Z6T4j5w6g2oqVlpvY4k6ua52+qtvZpPKX5vv0DBMQZ9hshHGB5FHG3sMWtNxNRccCozKgvqbIjh85H1YrJv7LC8fBFItMFU9UThUDwhU212FBGQwmVSR6Ui7pDP1jL5J0O/1wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.001_SLES15","name":"0.9.20185.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddb08f15-672b-41d6-a6a9-22620215cba1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.001","status":"Disconnected","lastStatusChange":"2020-07-03T01:08:40.7213192","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"51508edf-a1be-4442-aa5f-d36d20c135d5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtSIs9h3sUmM4NL4r5d3zqFqQG5AUCPUqoZwcKBM8E2El7xNPU6iQ3CFlbM5CkI6Vfdrpk2J6aUeP33sWgnDghwP8XYM8I9K33L8tbNlNYM6RFTT/EZ4x6kSmfbkc9LYYZn1qfAKU3AgpiMADGg70fioUd4WumyBOMj5p1ZyTI0kA9f73sF4MdEESxUQrknyd8pb52sT7UUWQsIn5enuayH1ioF3+pRc35kNHtkWOcaVtco4d8J+dKRnGf0+OXhUjMOXg1BZHf4X8iMJjM0oodkz1DC1akLOCu/uh9+eZoSF5fbTXRevzcnSpMSiQDEOXwREAIYizgi9HvC+4F9babwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.001_AMAZON2","name":"0.9.20185.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec96f63a-f23c-4720-8684-9944560898eb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.001","status":"Disconnected","lastStatusChange":"2020-07-03T00:59:19.7388674","errorDetails":[],"displayName":"ip-172-31-15-69.us-east-2.compute.internal","machineFqdn":"ip-172-31-15-69.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.173-137.229.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-15-69.us-east-2.compute.internal"},"vmId":"cd9c8c75-e237-4687-a85b-34d96cecc41c","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxhYdGa91sE/orLAqjK072u01eJELbn+1Bi20mveWnTe53HAhSjHOKu1XT7+GJBjEfaCU/dnCbegCPNOLnBk2rd8kuq9rEVPplDlB+ixYcdSCj5R6R/z4uFG2/VQ4av/zo4u1kVPpoQasvJY7CGxXQXcJmBwxC41FWKHLTe2KJR1GE4vMQVIezbpP9Q1yoSUA6rg8ZBPWf9VwyF8zz+6mO0lXWkPFmo6TJYzJ0Rs0wIobA7zqvHeK2d6z7PNQnJ2T/2PvVy37WxN//n+s6Zh8gqq+7OYA5PM7ccOlugL48eQ3KIKC/OFItmr2omNcdQWi0+yWaHhaORS7dk2/auEq+wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-15-69.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.002_SLES15","name":"0.9.20185.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ac7d7e0-ae95-4dd4-ba59-063794ee904c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.002","status":"Disconnected","lastStatusChange":"2020-07-03T02:37:20.7333324","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d7558fb5-5f6d-4611-a205-08103b7cc2b0","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwoI9YnivUwNGpaP0BiNz951y0NuJbGtFtrGxKt5s9+kuQxvcW/xqAqchpCNaV1C8vgvM78jwksP30OVi7vEF0oIr0QtxvDEt4k+gL6skjFg74ryIDRdv5mBsgiS63G5zksSl1owu1PiqWn/Zq1DiUsc5N87HVQkKXXqT5hEV2n8XHKmaxAHSlkg0erexke+dTjGqGCNcE1QrYe7koLxLKocgHwUDOshqnoOG6/ieG3d7kOM9z5u28BBkLGyLyGcaySv2gWh7FIbuxB3+NY8xJ3r/uFcdzfm5MdQaRaXxwI6H7KPdxInGzK/ql//T6/3F4istTlUZCmtcvM/VwsxwlwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-19uk6a_e2etest","name":"George2-Win12-19uk6a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddb74130-7253-4b0a-9a69-1fda5ed90d38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"a27348fd-c761-495a-bac1-f49002b11200","clientPublicKey":"MIIBCgKCAQEAvZKUmhHJMhbGmhm/BJvSEdQirtDBq44fp9F2UghmZcnkMb0BzS5UixYCu/Z+dFJBG3z89dRffz+xgN4dZ/Pb7f95VAXryuBrx91M8A2KcP9ohv0ZzBjOVTf9zKzKehH4om0QXIwjlG5awz8RKvNHuvAQ/TlWGNWo9GmbCR1OQiMm3jXQNUnrTXy/6e/M73imq2vB8AGfjAmyhn/Vw6dv97DpO4RW+QWOuSS9Y1BCX2fdIUXr5QhSnBjS51dyvEeslywfQ7Pdm6CsreROlGeRVYBOIOSeUogE6Q5v7wMRtn/yGsYO0qXdj6t2cnr5Y9alA+N/7xhZZv3zLr1s5fIynwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/gwf2","name":"gwf2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d719b5df-a65e-4864-8e87-28243b741019","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.0.0","status":"Disconnected","lastStatusChange":"2020-07-08T22:19:09.0776908","errorDetails":[],"displayName":"george-ubuntu18","machineFqdn":"george-ubuntu18","osName":"linux","osVersion":"5.4.0-33-generic","osProfile":{"computerName":"george-ubuntu18"},"vmId":"6db3a498-7acf-4d22-93e6-5dcb8c237b2d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA8O2DIKdADDtFMz28Zy0lbApk2gmM4yNV+ZKY3yNjx/JElQnVyiIPAlQDc6vooItIpgfktSVEgck2JO5vKRHYAg0EOeZTXXptG06wlMNq4RkSANF3P/i4/oM3aAUIDPmvbQm5bIht7zKeXthKTtOaIbtNwX48JVGA2yj0Vp5QyUnQcWxayi5FfMTHkj/eVCyOrxPtR5q7XJbw9FSJ92zXSgsiTRd4GK81tAlr7ggBY7dfxmV292tzBORbu8EMCKVwfFzKNZmW0xtuGvDSXEBuO2DeSZNajRXcB/JHudpEEQxu8PZvohsS6tWPpVLMjbj17Wo7hcoHjjiI9QiK3rOCHwIDAQAB","osSku":"Ubuntu + 20.04 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"george-ubuntu18.guest.corp.microsoft.com"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20198.002_SLES15","name":"0.10.20198.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8739aa7-596f-41f5-9cf4-65f8ab55ad18","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20198.002","status":"Disconnected","lastStatusChange":"2020-07-16T18:20:59.4913227","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f679c5fc-a7d7-4e49-818c-745526519f87","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAy/R7Erdwr/V2z4OHC0VJ8xfinsxhMU/ur5bZ4dqpPbSwkSU4JEPYdG0Iu1NP3v80OT0G+I5Vu2ZfCfA03kT+wTqu/48zfcsVqEzWkdbYfVdTaTqW7gHnATHcy79R1vWZaPVxV0kU6LCHoKOFwNNwmV1SXKGFLunPHPwXIYFZkUAlx5nPb41olxaaWj5XATV5AM6DFkO/qufO0zyPhFwzn+snOEDPSQaPZw7KZB0ycSFGuSKQMYuENxlu3kR3gOn317uoOGTIyOwjC957i8MMjpg2iJPsCCrrMwGWMoPPOiHzG3TN2XVm6zk9Pokny6Q6F5kz2Wjb0qgW+Sp7YEKenwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20198.002_AMAZON2","name":"0.10.20198.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cc3a2d7a-592d-45bf-9ecc-11bb3695f784","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"63407692-a90d-4c0f-958b-fda0164da564","clientPublicKey":"MIIBCgKCAQEAvThrkmmKqcVTxPgOyd3lysyb7jmSU1rO7bmAhZbJRiT7mD/QbBwcpjOQZUwZRk7TB/NV0cwHTd+EQbXC3Z2+PDc5aeZJJvPlwAETsZJ1+hnwF4xpgFK8Ayb77Mlo6YDsXawzOl/fvYjQO+dqZmHiBaBXqYWy4o5MD1c/4tRXeCsOtQDha3ftB8ihlbgg+YDi93ZYwv2FUmIIgaqpR5gFZD59PDK3LwqCGp//WYhpTyRoK1dwhC4AoVBViqP1Ta/YYuPj3yEu6kwMKueoYyXaxo2+9p3v8l6YgM+fX8R1SE3qSSkxUVgobR9fqCHq1UgQdjCpZ9WTpGxYrCtkvi1mPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20198.002_RHEL7","name":"0.10.20198.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39ea9b96-9f6a-4b33-8128-1dcb148ba62c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"2a27dbe5-9439-4342-a9b6-cf560033aa01","clientPublicKey":"MIIBCgKCAQEA5FP7eXEuOxhovd/Lnon1GpWOpxr1kPmuZrUWbIqXaQqKs1HcOri6k2LaMV42VL9eoP0IajxWxFz0erI6ww9SK5JOJCoX3AZeVhrNujkLT9/qfaE7mfNwDCMd/gYMy21Tm6dQFs8KGagn5nykPGeyo04J2rIr1e+CZ969KjcIgfEUQQY6Dz743PLoI0dyaF2Knotv1+zpjfU35NLACBorF5mdjz3eav1BjSJh3/9rDf1lkJeUvMv0M/1S/ILVLZmUPNWA7KDtD9nm30engGch/C1myYvdLahPchYu3ruGVTTzIA4oYOA1CQK7SShpyjbkwC1x3Whr22B7d+cqzwENIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/d3f1b97f-ebc2-47ce-88cc-cde1870a460a","name":"d3f1b97f-ebc2-47ce-88cc-cde1870a460a","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b72f188a-e8ea-43d7-a87c-35bde1bfd1d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"c2186265-757c-4747-8894-b9b771738ffe","clientPublicKey":"MIIBCgKCAQEAu098ET53DynMDsoVHrtCfF4/zEIZknGpbj3s8qXDn3wd1QdH76tg1BEfHZ1ht3mxjbXidvxYqbj6XM77qT9J1G86CHqLsmP+st4RmEUhvm4KqZ6cKDB+zTqEdNUFh7cWFkzY25QSdoe1RSDwFl1KKUjPywJ8kuizZhehMnmcw6iMNPWSkvdQ8NFlECiVhWTkE1/WK4ta9g3foTV2tH7l1ay2ABd7Dr+/UdkrT/sUzzyyBVeWKkM4T6c2imijiq60mueLqg8cBWcLeua2qPFevBsgpc5Tq05zzmUyQaMzUbH+16kbxw2cJ91m3Hfy544FvSTpr5kev1aW6ZE0qlP3UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/72236bea-9bd7-4cd3-a7f3-8ecd651ec25d","name":"72236bea-9bd7-4cd3-a7f3-8ecd651ec25d","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d1f7e660-8a67-4e6b-916a-f594b1a62bd7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"e56529e1-5ab1-434d-a424-38370c08453b","clientPublicKey":"MIIBCgKCAQEAv7c1hAztN0TAfCz/daCU9nY/KiTp/bC5MTcSr2fEJtDp+XIgoY03u+FWquMqqtCdzgn4vUbPcCYJH/6mY/AAuOAVnWoAIOEqfMe2/IYaR48qmJHdQgrfFF/LAEkP9UtpgzkEHJRd9re3Zo/GFCseWZVPdZtWg4tnTXyhnDjMUNpPsdzkWBnB7GD+lyNryburPSyN6HZU8gXjYcA6aaOiSbRYHvROBmz7K+rXJNJu8XUwtzhKHyHHqO4ZpNyqYWwyCmmXWDtehbtorfiGvGEay58N4qk02s5kE2fdlGG0J/iDFkY2rSImhttuR2ktPHe327rtBUzL9V/+hu/KNh5MaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/7789dd24-9f9b-4364-b589-5806e1233f70","name":"7789dd24-9f9b-4364-b589-5806e1233f70","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"49a02d06-2414-4781-b481-69fba98749aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"d9e17ac3-52a2-47b2-b2e6-e80596624a84","clientPublicKey":"MIIBCgKCAQEA6I4cFhOkobnC3mJHZQ2iKkazKZ5vb7mWu0L8vIGNMamR4gtnW83WtubCuwaG0r0fCcjoISTMjRzJ9iqcFNnjHNhBam46gURzG7I3dm8Sk9ZUgLjwMg3y/+BGbqwa7rJ8xkxHdXMYdBQWKSJhfQmTJ8HqtkL+oPs/qEoG2V+MrdvZH0/GR3ogfrIWjFVTCsB6xjda0Rn/qe84DAg8ZEcJtFrAd4NiuxwQ2IqF260hIYzBLuPI6rgv/NIgdcmL5L8kds8tB+da0Eofuwa8nEMnnyGCAEYYkFYfZ2AXgPi9TrWVmSoIMFUtVfQZ3g0zu3mcV/ztXO/i3g3r25LzZpfT5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/151b4449-b67f-4b33-84b6-1954d9a782d9","name":"151b4449-b67f-4b33-84b6-1954d9a782d9","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c83505ce-3759-4e6d-b808-0795a2ac2bd2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"e8cf829f-a7b0-49da-90b4-27785ce75a60","clientPublicKey":"MIIBCgKCAQEAzzrzATtgq75aS1SnpcxShkE0+tRpyCXp5Am1xVADycotyKupWyLUYfWqnO3n0E5HEHtUE0PVj50TMNHaxofXjnMbdEYQLfnjyq6ft/kmzR7Raeez0nwK8t9D1gK5hnXygp9HMxV9SqF7y7QcZP8w2MZl7QeKH22chUeOiliZI7H/cQJZpvaUG5jxQBxf+wQU7jRWHlDeUaAwk7q1TC2uDK1sWIPUM/T5BnMPK2eDWarssoOE41RGDOlFX+I6FUzslNLUowyjmCX+VKRoJGmKtoJBC12DEchbBwQR473Ck8UcuuWGvfc7JWoLVJZmMl/mvm+CRDDsiX09nSo7i8W8JwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ccba2389-043e-4d8f-b353-fdce88a91783","name":"ccba2389-043e-4d8f-b353-fdce88a91783","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"71846523-02c9-4268-8e49-6447e257dd58","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"e9be826f-de66-4675-8a75-dff32e03587d","clientPublicKey":"MIIBCgKCAQEApA3GXgLg7Bw8fEXWtG2tI2g0alRBx+BvhEEC9v/8/fc7Tjpvxk7CQZNGGsGK0Egax1r1pipw5bSM9pmoQB8l8n7vkmLLUodCOIhzSJ3PQc6j+5qCLf+QdrJIv6ZzM4lFyW1CyAuSlhTs75NtJPnssVaqrho44eyGCZqBWAFTw8qwHZYTREWJuiTfKNkQH5IIyUwAMRccsim86TD00zU308cv7lrivmus+SSGIYgjohIbIeQtAsKIxSaL4XCKY/FPetVq9LelQrI/7xl1OVQ0JvqoQP6EHYRKgD429HkC/+7zv3wb2DtA0VidkU7xbYluY2Yk3fmmENP4POStZgS9pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/9aaec2f3-e1a8-4599-8bd3-67b250479c96","name":"9aaec2f3-e1a8-4599-8bd3-67b250479c96","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"848dd201-ab37-43ae-a101-8061a192de14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"f0d1776e-aab2-4c6d-b107-6518d9b3d4ba","clientPublicKey":"MIIBCgKCAQEAvcqmZ7DgqF9by/HbpJQSdB6Kti6S3LNbfp39XuAruUu7nFSM5+UsgsW31JeY3p9uHCh03rCD1ayzjYrmPfhkRxbugWo7O0PNkR3pMgG9GpOt+hWH4YVXAsE9+nN3cTYpi0mb56/8AoiJn3HgHbBF0tspX2kict00dl0jO7V3S00yntR6JSY3B94Vs+csP4CLwyo7AxoPiSUMO2k4HiTnj/cZWu37z5BJVEsdq8FHHYUweU1Z7f9rz6abI1waX5Dz5eglM9PJv7yu2Gk7OIH0oOrYE4ZIWAlMC9DhQmyN/cDWrkIbPetOSI7ODlI9MQB4zGeWU9ilztGHUIadJu9b7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/dd3ccfd1-320b-46d6-9cad-1c2015652528","name":"dd3ccfd1-320b-46d6-9cad-1c2015652528","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"065545e4-83ac-4d4f-a32f-7e345344a188","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"61ce41dc-bdd0-48d7-936e-017073f0c679","clientPublicKey":"MIIBCgKCAQEAxQdFB0O8kk/21QlrwAGUSNrQ60WCUaIasiGfkOHtSPT66mWY0ciw7riYSfU1WVqNR9YJbBZNUaoDSbXUIxlbonl7WovMX/2yFCINaeLxMurpfCpBWLEMXkby7WlbJlbZLLanMua7cyKkox2LATU8F9vcPTCX1k2P25vUThOo5/AenSjywDXr4jrDeN56JtkzAG2e1KsRfARBOVL3qkwgfEtLKQwWcNNQth/A/43mDEZGOTFfuEJs6al0pB4bL4F9orRlIF7xU8qH8CW/FVAT4MDMU/i7veKtLwWoEuHcnvf6uTKG7z49AeVW7ZyqkbsuXdy0ujLO2FzL9DrX9arJSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/da0e966c-e82e-4b35-ae16-2e32a0d161a4","name":"da0e966c-e82e-4b35-ae16-2e32a0d161a4","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63fdf2eb-712e-4fb6-9f66-e43cef5fcd70","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"ceda9340-0e80-476d-8d16-46dfe1d9624b","clientPublicKey":"MIIBCgKCAQEAvi722JDGogW5CB3NZPINjUEqIbPw1cDZrUOFSEcggv382NZfu+e91GCIlXrgUyH2m6bDBiu4g11gWBvDVGK7Zx0GQFE/Q2+4xyQ2+D2pStjtevLtN3nEHuEc1ORvx6tUxz+Wz5y40Mh0CmGDx6ZcFm/Jc47g5CKHDpBpcXC16VQOoWeihPn/s8ZuRJ5bcBLVW/gGO66rF0YsEapJoyGad2CdH9hZrzLSqPSAofpVHAa2QCI2joOGg5U1ZrpOuP50YKFbMXIbNApTTWFTSN2LWMrtPW3Lb4K2I9ldWN1d0GrNH4X/RfElTgdOONZ7gNOm8cKpERLOwNrXKf6nJpm3BwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-15-69.us-east-2.compute.internaab7yi_e2etest","name":"ip-172-31-15-69.us-east-2.compute.internaab7yi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6b7f6aa5-9808-434f-b95c-a0757ee1c920","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"7edfcbb9-0248-4eef-961c-074fe60ec297","clientPublicKey":"MIIBCgKCAQEA1Xm4vGXZ180VRljx2IRpolRXRedsW7snLMbbyFbQPYmSdQocTymd5DkW/4+Lsz0WPz2j1nLgiDSj0ijpw9oAvM9Aw507dvoL59chAoQPfWUI9GuhGj+mwhCy9/NhdE9gHqfLFYHIn+AmOsX4CyefpJTI2fmpUITmIhq2TXufiuoetqtH5QhfaMXef7ewORhWr5qcJsGMWHW1VuFdkfD/FXXj9ppSSJ0EzlIwhDQmyocWFNEc/SEetQ+GkEU6GTgwlkzDstxW03SAzKChexXPxEgm0aLcg7XAxX+o4JPRsjzhoKGImTwRCe80lvZ4OZs2r1FmGaof6wr5MCvovQtS9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ad0a279c-c4e5-4b8d-99a2-94ee6bdf1efa","name":"ad0a279c-c4e5-4b8d-99a2-94ee6bdf1efa","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4fa2a3a8-d874-4144-963e-c527468507cb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"dc4ecc0d-f67d-4dc8-b438-a6502270f2f5","clientPublicKey":"MIIBCgKCAQEAsj/ZCz7Rr/uTajV4Ix6aE+mZmSP8IJrHOGN6CEwKdXnj9momg/Av4VftrqoAKyAs0Oj1yCD+7jzUGKQLgYNAzc+UT4ASTmgt0cf/lVWgUOD7Osz3ZgcfcnoRKRSLAykihlL82eO6FSvN1rGFu0tPBnZoNOfTWHCKy3MJw+NjP/NBq3MkCeFohIu+w+1y6s2MoslhqTuKjZ26hy6KhRKF/2PLOSNi/fRPMTupVzCNmgIYG95cYdBtHG5jQcOKQIOZWEr6JecdeiV9rxr8SjaNiDY//2iTJ6/sL815nwZAbJeer7NlHwgcJrE1V2V+3dyVAVkdo4MFYLoZkzvfrwYB9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1ipzxb_e2etest","name":"George2-Cent7-1ipzxb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec91d3fa-925b-4a2e-ae7e-095cec0abbe0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20216.001","status":"Disconnected","lastStatusChange":"2020-08-03T17:23:12.4893705","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f7823708-aa1b-4f5b-a6f2-e5af8493dc55","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA3C6UEV3k9gKExCGgHc781MRnC/2se3QyGtZN26WcDUIZSVme/RO6kbzywgDeGWKb6W/k950BL7noAFb82d2nWF70y/Rx0V6taZAjrO5kG2te26ki8F/OKR5hzhtzMDlMzWdQ7W/DgV2lo30LvSqLCyRZJqoCh36lS7FD6n3WrsAGcDWkRvcSIfgtHaHkbDqURkjXQ7hGpNFSmZeDXIWM/b/MU7Z0KpYkqMrClzyiKzuueRvxtrd4HJ9rn47JdfkoaYie9DZcWF/caVtvmF7Uf3KJB7WAtM8qQLnJ4Q4o58w3Pc6XbLbF5WiZ5kvzd/n8Lt60dKwrd4aRRfl/pgXQcQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/2a90c01c-875f-4c70-9a9f-3044ff3d4fde","name":"2a90c01c-875f-4c70-9a9f-3044ff3d4fde","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d2498121-0f44-4c53-80c3-3e9abb06754b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"c975440c-90f4-4da5-8006-3e8c697c70d0","clientPublicKey":"MIIBCgKCAQEAsQM6jVmgYOe2/Jf6ezhAFS0i85UySmEwMvcw/1EC365CqawoSwUbZHW6VDhZ/hjo2DAlDkKE4K4kk1DLMznqWg1nhpipuka6R7ycZMtaT5WMCwr1aHELuSQLhreAkxGMH9dYUKKXSl+DIoCCuRwZUTi3uSO4TU3UahAPtriQuVOhKo6YPBPrjfBdTuteNGCrLCMHYrT082r7mlrq4hmRV2h2ifDN8aLCPCOEQfd3ReniRT3gSgVveLyZxs3ythoKzrjtugncT/zl2/fTxI3p3eSGR9a1C3KLeD5/Wo4O3PgOVR8X4D2s7jBL65Ba+QxNbTnLVxy1k8Y8xImDtgZOLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/34689ca3-6b8c-4c55-a967-28307b02528f","name":"34689ca3-6b8c-4c55-a967-28307b02528f","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ba93b0c3-024d-4095-9f99-0d87bc889a5c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"84b508e8-be57-43c0-a882-c84752f04c71","clientPublicKey":"MIIBCgKCAQEAlK0jmQcvuhS9NLmaY2Xm90uXbnNT+kFaO1MD5irnVQTpoP7nsc1gy+0D7K82EOJwOeAViUTNN+5XZuMLygGuHeQX+OKJ2HBnzuSGJu72RlrPlk2rtj885FC9VVNMJj6zkIYO+rQRS5nMfwbFygnUt9dE5sDxjxfjJlrXKmul9gTJGE5lcKkpxZKNSUHN0RVufbA1JQ+f9gruCf911PVnS9myl6fGy6DKmOHJiEgIHaVHtEdedqGFYfNoc3ffxFVVjubEcIrNhv8/+A2CzUz+1B8BFygfhi9wjHSYQKtmFgUKKzJQ5+B+HGL/xbTkrDrfZPWjNIq2IBR88OepA5tHRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/a86c5353-78ec-4f56-b9ca-c031ac250702","name":"a86c5353-78ec-4f56-b9ca-c031ac250702","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99688550-b755-48cf-8b63-d85fc60f3d38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"57f55a53-e9cc-4cbf-92ab-99650e537611","clientPublicKey":"MIIBCgKCAQEA07sRT62L14732APUAkRTWNqPYaTAK2aDaNxPOIr0nLHkU+eWzVOfFX6KyeG6RIrhZG7DdZaSCTZQ5EplukO+t9AtTpIfNmFfzcV7GeDL5Fp6l+7N3ogCP8SnLdExqTEs3G/1R9B4ECkRwUQGmZQN66X57uh9Jwesydc+6itCx85uH52kDsn2dz9hv3A/xEI5iKaj6vMO4LbP7cyoXQJHds4UrmF1LbxwjAbt0J5VfGukPnc//bAjzNh0FHImn7xbI5pRLkiFvI2vIPoGDw9VXcYVLbdW8k/u1nLFBPD0os2fbzKkKQEyayHdgHXfw+GMoA31KguQkMTlFa5FiG/dnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/523900e9-6faf-4fbd-bd51-300023b09fd1","name":"523900e9-6faf-4fbd-bd51-300023b09fd1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"280a5dba-5b13-4107-b370-3969ab8ed273","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"b7c93cf0-d79b-4a25-bac3-c392b722ef5d","clientPublicKey":"MIIBCgKCAQEAvOgN9b50e/2TxS3TuVqImbVSIJ83Z0YZImTPnS4DrvycFCQA5HWxt47Yht61Y+gZMtCQC4vXqxWwn08vcBXMPz9/WFZfCWK/URUsloB2ClpYHwG+Xh1GL38rNS0drBgmrqa04VjtyyCdaxVzEDHZX7rUOCxEKgfc9azE+AlIUUDfo0cNPQCxO59/pF+vmhI1KbQEqG7B2LS6DUEWOKcR4k5n8LLsS046rGxHfMbzC27UHa2FtJIWj8Kqt+9tKK5VpePYSqT96u1NfAhNwpQcDgONQvsB67BCC+1PjJ/SWS9ivqoEErwIhAXp8+k3WcsOCBwpiZ0HifYLuU61gqoDnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/bf0fa768-949a-49c3-bec9-608c968929be","name":"bf0fa768-949a-49c3-bec9-608c968929be","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"533f7336-54cf-4a4e-9120-e2e22edbb478","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"d12660d4-3923-4792-bef0-c57173fd062d","clientPublicKey":"MIIBCgKCAQEAnDF/KNpiGe4xEcs0KbS0IKR737ssA0nrnSO/WBjiwwmVU9FTqt2QDgFit5TNPIuu82ujVLMtmjCZIa19idUVrZkTtiWAT+B8c5Cw4qqBh4p9UxdmunmWTL6awySwxnfXO4D/IK5l3TZZf9D9lHUY31+g7TfzXqr8363XY5spMhDBDcoro8x/gP/GsyNLEIGtBEOcjbGc5ZYhbot4RzKI7NOXlksokc9gKtFWBg/2FIo61I3Px5H7eBTUbgRLJcrOPOZIZR6uBMxfMeSuSEYz1djaXSUm0+gcaT4VxgqLpHqRJK0HHFqj0MhYXZ7+lTeneVZNxw5mbGkQHLWRF1UV+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/cab0a77d-8515-4e4b-aa31-5de781ef1912","name":"cab0a77d-8515-4e4b-aa31-5de781ef1912","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"42dbe497-462e-48c4-a263-80db0e2a9174","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"87ad4b65-59e7-4ffd-a5ce-5cfd3c1083ed","clientPublicKey":"MIIBCgKCAQEAx758SGM6YewLN1F1TDWBnpFpCFOCoJFgUyQvqDMxKHRwa7K/VAJ5wVebV+ik6O3wU9hX9efyqtLwv9pzZldzt9A8aVKm9tst6itkowz6gOH3qnH0Ovj9H3wyIU8LRgTNrBOTFcVl9stlSlKoAKumIJDCk5CgBK7qc3LrB7cR3a4AO1pq7Y5LxKfK3psbp+iSFek4R+SVQFpOAwVCEqR8SmwIPFcrdM8Fgr+LhvZWgRdEq0cBqzUx4DUaZEcsno4TGDulphea7k2DbVj9PEjPjBQBc6g9RkAm8yep3BeqJmPwm1I020gvDNgOh04lOdEiUHCv2mOpaEPXk7qMdbqEBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fe896c3f-e32b-4b1e-ac6c-a2d5965c0237","name":"fe896c3f-e32b-4b1e-ac6c-a2d5965c0237","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bcf4d60b-fa9f-4d8c-8dba-d6b70034ae5e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"760a0511-3cfb-462b-a120-13871760f413","clientPublicKey":"MIIBCgKCAQEAvNdUD3nddcgnrwLcLEQSceh/hTjXwzcwlVg5yBDSlXLsBw3h59DK3AwOjOcTQ3AwxPpZQotxGal2fS6xIXf3ptMqgPKwptDUBLKnhKcAyAOK+XxsxdTgPaqjja4yT3+tWpG2+Fd2Zq5TDmYH/HTCZDbf+D1Ro/SYA1/5WIpgS3fMdjVYWPsMuCJORpF+cqCdIiO9P7/LgVqWDI89NhJnZfDXhf2WiscHVzxj2BpM6x2LVf9k5weRMKQF06NAnXfvXJ7cx558M6x66Az9LWyO83ZOpYfnPTkqYwCuegPhI0/bp3313F3kswBzUegDZ+ezQXtAoNU2nQXQerLTi2CFFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/cd65252d-4314-49f9-b609-cf2466d77bbd","name":"cd65252d-4314-49f9-b609-cf2466d77bbd","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b4affe86-dba8-4519-8efb-f1b7227e5113","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"dcdc7281-6a24-4014-bae7-4732772f8093","clientPublicKey":"MIIBCgKCAQEAwd/aoqQ3a3XxA4wJAYTbc5BGDpFG5DvHL6vv7ezDhf8ZSUuyFzD3k3J/AUZWkjoRX1Eg6elWRZXlr0D9HZR2UGWKjUsND66Fc3M2PzSpoXAUKPN5rPgXFfRrI2vEJldLlmplVcxkwkqASK1+mygK9CboV+j+7IWNojaY5kSly4e3MVU4Hztncxy9b1PUotLgwjL2rWAYcENXTY69K8ykDHdgyIi8QxOEhOPO6qq6V6gtXk6ef7OMsmg6i+gamE0SZbEG9LxuuQ2ykMsA15uujadZ5jS5tNldUuwsWX+jeHpqkCDyt1q0HCYiNwHU/RfcLCDvcJrigXH5Is0/yrLwHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0c632630-2a72-4a5f-b6b0-1307ad433c57","name":"0c632630-2a72-4a5f-b6b0-1307ad433c57","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fcbc985d-96b5-4708-b268-45adcea3e7c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"2c6f7147-34cc-4681-a669-3662817f8923","clientPublicKey":"MIIBCgKCAQEAoyvgEtykcJjn2yHFYPWAm+aYzO7gQCF5Oog8c61WqA/Rf9r9+1F3EoijV8/MAEcpVPR1ROfE8s3YfMxhdsa2Uoitlw5UYdittzE8fq7JxHmXPDK7lb/VIfY5KAA2tDs8qTOSEu+Ec7OknN7yl5QtKNE2EJye+eWCuKilJEKetBflzsCLTUYhZg3eFDm3R5zG8ftCgYiHCd5llARQi/OBygi9cCv/KNjBSKgXuemXWYaHcxXIT2noaL1K409CX4cKfw0eUHyDxxk1LNbjbff7/IQAVbF7oV+GI4IjMYfqzvtz6LdVNgsNsAeYk/lSfurxUhzqHxqjHxxTpnM5hUPl7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599gv3du_e2etest","name":"fv-az599gv3du_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"20015249-1b43-4ddc-bdbe-9eabbe5c8291","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20216.003","status":"Disconnected","lastStatusChange":"2020-08-03T18:24:46.5374311","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1091-azure","osProfile":{"computerName":"fv-az599"},"vmId":"cd370cef-75ae-4c14-8eb8-dcf61a930a4d","vmUuid":"6FEBCF1E-4C81-1947-979D-1B02B755312B","clientPublicKey":"MIIBCgKCAQEAyK+WSba05zetbh+8yc66MvMDW3EY10oU56dFOufjrWJMvvwQV1H3ihWdP0ZHyXtl6++Ad5xiMZyGyBkaRtc18VPkA0hOXtRLap4fxzl0pTqUpdTGQQNThO9wsCfrNPDpbpibZaM2SGQy+CM24VOlH/9CRYq/r9IyvpuS1I1DtkOMh/q7golW3E5nlbE3pTtLYxt7G9pSBC08o1nd2KfIKanuiB5Z8jDn61A0PlKX09pHtlj69Kl40T3lBP4JP6QMYpj44rQFh3gnug5Wm7aP/Yyu+uQfqn4oyCtDnFe/NCxmP5pd4ETaOHnEIa0TLJSIWKpkNO2YfIAluirDwxgkHwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.airydkjhyxte5j5rmihydofhkf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/d5737846-684c-4677-bd09-17f6bd6d43e6","name":"d5737846-684c-4677-bd09-17f6bd6d43e6","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"445ad1bc-2688-4494-bdf9-35cef552f758","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"6a4659e0-0ae3-4f03-ab72-d5288e141586","clientPublicKey":"MIIBCgKCAQEA0ke4HVo/wrRIbj4SnIwmn50E1Z0HCIgdoSk3XFLTjSg4l1twegztSoiNs0D77m3e3lbpTHTxkxgrA7PDW3zFRdgNeRJJGgfm+oNvRTjfH/HQz3jKimZHxeht6n1h1A3LPK1y+r0i5c2kwZy6hPM/KLqYtg/u5o9STztMfLco3Eak41pbxTmjmuVBM9mLu+hJ33HDLEYkDK7uBYc0+48r3PQc3VswVuLxvcs1K6LvBCwi8fDRcdPoR8D4euc7TfMX+KYD9XAyfCx44xCnIZunnrwdqw6w2tZ6D7HdpQc6yiVEXqSj9psoNUgbU1sbTYZUGsxaGDI+BrEO8/eGD1LNJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20216.005_CENTOS8","name":"0.10.20216.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c013deee-0be9-4d7a-902c-3302abd348f1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20216.005","status":"Disconnected","lastStatusChange":"2020-08-03T21:47:38.646154","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"35233802-56e7-4f80-b794-30920b9fc659","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAw0PI3TdeLn2zuMFMs8qjmWLt+U9dsLlr9rt4NfWGRTqtHgpaWlTATjQfZn1Hoecz6YVcrHG6RdM8bPjog7vKQdDMGYgu68zIgfqS+f/u7nVMTTX0XsN91lj4t2AfRl5Agm8ReXhfGy/uwtqosV19rwEufy+wWZ6GWiuHtEl2Dt8Nx02YJ6mq+rJ2M1VXmlAi7le2jqPWvnPD53v2eXsQFbgj+IM7mdmVsooIrmCRVjyyJNYJLAy+ljKtlWptjh/hBaYgMLP6loC+VouEh31cOT4a3KzAo1Ox7Qo1BdP9n7gdJTq+XEYxPS2+J12l9jK87ux5oV8LPhcDqFlfTEj2rwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/85459b06-6924-4593-ad37-268a76e64312","name":"85459b06-6924-4593-ad37-268a76e64312","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e25d8ae-54ad-4ec7-a3df-5987a9745675","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"d2ac833a-5c37-4b78-b72d-fc531a879077","clientPublicKey":"MIIBCgKCAQEAlxwtNTf0SwcBIkd36AmRV+AMuxUx0L/24Lon+BqGyfHVHKZwty/P5ItOKedXUn71qv2w/XYyvmx8JXv17IO1v3EV2uWOQeTMmu9LriV6aG1HpUckJG3j4LGu40LAqh13sFxyqUcxKAzU8nyvqgIAtu0xt+jEaSnVvhvPNGTV2Mrq0YHBo5bhd6PFLEchYTnqQuUsllQcMIhV3LylUq9L3yqf72ijMSivcwy5T+i5HV2pOVog8JL5UZfHDnS4uIRzivmgz8xo0PNCuusHJlA0m1W+a9Rmm1Qqmt8nXEWfEIpcXLjEm61DMxATrGx5Amsjkw+dSBy+ExD9lgu4ENNeUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/9674e03c-ec34-4a8f-827f-8fe51cd3b3ab","name":"9674e03c-ec34-4a8f-827f-8fe51cd3b3ab","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c09fe076-d940-42a8-a54a-313600f918bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"76646fed-9d85-4cb2-ac9b-4a417be9ce5f","clientPublicKey":"MIIBCgKCAQEAyXndYqPaHI7MPXpI2KsVBB4xwVJM64qJn7r3ssmKVjjlZwembWvFPOa1Hukc9a+lg9Dp6/5ZVefpxgS47RZI1BLjRu/zS60eYW2JOoAvJp+kZwjeIGrl5c00GL1LPDjUnTXqzidJYb84ArCsogKq8eQK7I5+Th+WWK4ZomxlB4++KYRa2zs46Grkus1ftMYFk9t4t9ZgkZ6rzToe1Y6KkfNmFRLECwy+97hhHJmF7PXR84DgG5wQY8kOUpP47TmdXccdEL8gkRVx2NoTN+wUWScIEHck3Ob1nUXXIJ7KN2AGIjqyd5LUfnNxXYp/0xTQXbaFg0PT2TB3d4fsERY2ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/bc6bc772-9a82-4abc-9c79-12f55d54c19b","name":"bc6bc772-9a82-4abc-9c79-12f55d54c19b","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"835aee7f-c24f-4e72-96ba-7ab0c090171b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"cdbbdb3a-a197-401a-b0fd-7ff2b4dae4c4","clientPublicKey":"MIIBCgKCAQEAx7hNA3/8tgBY3NTPQYk6P4PByLNpwpPcBenERG++Mz1XLxZMQdVH5bX5Pwf0DUedc+uv96mQ0DXjYjaEsjJIvfI4qVNuoXgBB0xdj7w02F4R3PqSIcriclG1Y4v6U0fLGcRY4SRRVrY5g85T7KglyV+bUQKk1x9BysveT8HMAhMVZPNT2DgX+22k9mAq06WlP5Fglyo74V+P5rwfhbg/22r5Kv7IuISG3Elx/6ncH4qx61FRzJwh5Bk3aw3f6qjjwwPNkVS/3J0pCzAcu3m566AuCUAG5FzFoyAf/KxuG24GtD5CqDl5WPG81hTX2lcENb1o6JcGfrfKGTIsXyQIcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/50ed4ba0-361e-4cf2-9c9c-c9ad7baaef4e","name":"50ed4ba0-361e-4cf2-9c9c-c9ad7baaef4e","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"33c29919-c72d-47dd-9e4b-81deff49a3a1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"e2711060-159e-40c5-80a5-e63c312592e7","clientPublicKey":"MIIBCgKCAQEA2suHylM0e4qsFQxLbCD+kyfs3tYHdCHWB2O8OtATkpDu1t+PefjSTb7B6QGPwNZwKxtI2HgTba8CphpEa9C+n74EatVeRYp4Rojn0uNPEQmMuqzoxXJ+YnhSZBiErD3m6WFogp8xfcZXu7mb0IMgxUECRiI3yYJ8yjnTf+WiTWEf3Gj2QoJAm5QRtOExRNqDpeI0WlL5VGJNai9baCgV7N2OviGZzqt94ZJ0uMF7+bmY/Z1vvMqZg2t8HyAZsOs2HDedsP4hsAKckwk52jR4LbFOuUcPFCegLtkUveFcquIFalEUQXvJ+lCLFJhqQKUyjmkNVPBLWBdB9yUiif2QvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20217.002_RHEL7","name":"0.10.20217.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"028d806c-6007-4ec1-a11e-36d8d629ea7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20217.002","status":"Disconnected","lastStatusChange":"2020-08-04T16:29:23.7357023","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"f27f628b-55b0-41d6-88e1-1fe4bcf94260","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAsqsEtYnOlFNgxKzsk37DLABoSHgKdUPQwvQcw7j/g6eHgaXIfktimhHSXnIi9D2LYykLhN9ea4MqsyalEzUzdlvBbIt1DCq+dCzJweUYjHH5omcI0XvtYMPiQrt5zDv1YV+Ha3wC/ZTNdHirvRcf0bfPBIyjom3MzT6xhRSnWHhIf5PwEnCDBLtVyhEltm/6GJw5dGFOI+jQmq6DT7hNL/ZCZSXtgyk+qrtpzHn0BsUw5VPxYtHrhpSFrHgtlk+MnWcTL4124SlPQFqHzgd5bKEkLUkE2AN0mXY5GfpCiGEjf98JzzKcl22y2gvcPg0H4TEKlWdQIsk5qARgYq5PIQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/673d8fd0-f67b-4ac7-b850-a7d513ebc50d","name":"673d8fd0-f67b-4ac7-b850-a7d513ebc50d","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2c11ce44-9124-4e7d-b658-f4686e2902dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"8cae07ab-3c67-42bf-8da8-01dbd043457c","clientPublicKey":"MIIBCgKCAQEAv68jO4kT+PRnr3HkDRnAebrcjwMEglDBClb1MpmF/LcbM6COL1h25MR+tL/k6mE8NpUP5Hb8jWRNMn/uCz0ICqfEuVQ+3eclAruA0JR7LjypJO4rzM+toeaELeh3LtN4kCrgvvchH7cFMkELp2RbOS0g3eHj+XwK7UL3D/NYmDZWQEW8M1QcgZ6D+dIJELfEbIEQVTdYQmpWpXtXNG30zPUaKMU5v2gFiqn/5eYpmffg/OoeaU7R+T1Z3ecFKZJK2udKMJTwT+X2n1kFcrKkUFMCux5yXDCvzrgn0oRCizc0eqZknBRe06y5IaRXYZIj56BmxfeeliOBmlDY9ISB4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/b9482e06-b88e-47fc-82b1-27d2d7b18de7","name":"b9482e06-b88e-47fc-82b1-27d2d7b18de7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a796bf32-d21e-4b18-9a63-82a10dae2c60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"48db57e4-b569-449f-b781-42b4ac177f30","clientPublicKey":"MIIBCgKCAQEAzWFlg020Z2DQtHpTx77ThZxH7jfxMPIb1RiCa9u98wXwYn95B8ad/u+WCbqHx72uY9UvfupgDYd6xM+AjCFzdcxQTPF74P/BxyfKgc8+lEkdu043lJuCG1Pp19lEk4A25W2U1UQo0iVxWBhez7YzJGLq82QlS65DdpHFidv/JnncjvqkbbFtj8Ws6CYauQV7DIgcdyS1jm2DQoo4uCR19xi/w7z3xc5goU4VFiuG0EIHdv3N4YP+omuxZ5dGc3bsqkZq9Jm4FVhYz97XDCjXaMIEs5DcLglS9NzcICfhoi4ckx99lRhfBQi3Xc7zgK/uDRSbVscOyLGWn8EWzEnEeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ad7f6341-24f5-4b91-acba-5c388d9ba622","name":"ad7f6341-24f5-4b91-acba-5c388d9ba622","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d382f3ab-8ad1-4a34-ad40-8b78e52683fc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"588d2e5b-d3db-479f-ad1d-c0fcbcc0f40b","clientPublicKey":"MIIBCgKCAQEAuEeJ+NRmIB3hdFyG8oK2PYSute0argcLzrrJw3b2jcnbckcW90CX879zauxYkMNA5x7LetcEl+u9SeanoH+iJHJ6DVZQcLgZq/t5qws8l5Fl/7Hlkp5AH76MQHcaKWook9t1430V7YAepuu551ZguIRixGOrbbl8l2o1QSHTmSFWAUdx+QlFUqdDeqQnu3nbASxw2pwMlpCHSbf/RtUW5QMY0ZfqmgLsdf8HRB+VSoPJ+TFdHFdn5ynfHI6Yk+ghmgHZCcpjUT4TZ6WwFqDkpH5x/9b/CP6VCzZJV9aI+8OfDpwfPM4W5ee0qjfA3iUQcQp9m8Y3g0VfxJb3ykGB4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-GFI5H3F6T01rel4y_e2etest","name":"WIN-GFI5H3F6T01rel4y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c50f953a-ac0d-47ed-88d3-149a1dbd2521","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"58ab21d8-8051-4822-8473-6f56e093a4e8","clientPublicKey":"MIIBCgKCAQEA2bGyz0BAnHfYF3O7JvdnNVLmLskhl3PnRnaZKHR8x4k2gckIsKvbZGAbtzUiherCB33WQ4CDTSxDYK2KS/64wUwBjDd9UtEDFsUYoZJ0s5aiuXNyXL3KqgmxG2rGzY6BOVpDnfaLYNoFnJfE4VgFJeEE3g2nIg7Rcikl2FBgOtpljs9/2uei99mmpBhPLrm642x8wxBumJSYMm204tUxTAOBzCv83DqTWu/FejAEe0veQYbVQbJIlZ/JFI5Pr3qZgjFpO5md2PTaOZtl9rIk/2KUGIoV4VxkgH6WQVxXP3uE1a1dozXw9bL4RmGpLDH9OF4fn5Zqp51QC/OxxLNtGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-18npal_e2etest","name":"George2-Win12-18npal_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b8e44982-7d66-4083-a36b-3b224881faf7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"ebe42cc1-aad2-4cce-877a-9c0f00dda01f","clientPublicKey":"MIIBCgKCAQEAx1Bd4GmFMoI1of/cZCzhXFyTjUDmExqj2MJL4Q8cjR6mBcQ1l0JRRVSWS6MhfijP7zmxsv2R5NOxnuj2LyMlju8N4LcGG6Px1gEpe+9Wj/xOxWOuBUjJT7a7RptB4ROImn6Zf9sWd1CzeoKao8SwNIBuaPIiKUjgOCZxFdn0fgDOyZ/o/kF1eh4McoX/Pmwft8xBqUr4TYc4QjUGsgQVrVqZKHYZAhk5BHm3/+bAweLyGXCE7bAJ74xRc0QCFmwdafaCUOtFr/HhX65u9Zld/TvFuicCdsGICyE4iodmVqtNSkgzuGmzKuR/mcy7ob7OMtMCgPQLxZC+qFZ1Pi4OwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1afboi_e2etest","name":"George2-Win12-1afboi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"060e38b0-ad5e-4ed5-968d-83514f98f365","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"abacd270-9302-4f8b-a511-52d62dd2dc3d","clientPublicKey":"MIIBCgKCAQEAtQVxdwUddF2RmOQmm6NSPMVPKbKbuqrQJyRTdTMlXDDwfMw41y6GWWv22KoF21bIqEcM0jfFUuIk9Uhvj5Ix+WJ0rs1NhEQHLv1WdDq7d1z5Gjqh5hRaXfU2pNRu5deq3F3obUGyf5iBYiwgWGhrBu1dJLggtwUqEzDTGVn5gfbAwzEmaV0uM4CWumUBV2+Zm8r6HbyMgtROmLzjV2eHDlqSNcyrRen5+Y22BA7ItJR2HqQql4Eptzv+7rg4wqFVLbBe729c9creTepRtYqqIFlTW+CL9y50xApIGMAx/uixyRsA2KbqQErPDNkrOh4hAii9ZbjEzH9BMMtvag6YnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20225.005_CENTOS8","name":"0.10.20225.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"44ef7438-7fe7-41ba-b403-142f58821506","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"14c3a491-941e-4106-8244-dd759d1a29ae","clientPublicKey":"MIIBCgKCAQEAxnjNnfBUJO930jf+JSmskwRbe3nMVoMabI47cmkdLMp9Q5XOe9cixgjm/PgOKsdtN2KJ7EV4ddPWst46JPEW5Ub/N2a2tKNENkW6NZkSodzmqu8MqScTv+m+sSKyNcX9wPSUOta+ls1Z/SB68dqD+JUMe2r1mXIcEjSyvzgzBkheKSkqXanr6DdZYQ4PPNbdzbkO+neong/f5nP44oCWQl4Cd7gbHhoAgu/UUm8IkaPgsctem+oTL/6jnfdaHvC4bypQZTvTuHi1+YZyPo7mf/rHO+c+K06DnfmIqYGeqKkokWjW5I3j4lI2yyDXazKBK2skDQdvUers1cIkl9+9TQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20225.002","name":"0.10.20225.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3821ddf5-6dcb-4b64-af3a-1607d0db856f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"7d5e6311-a5f2-4b42-87bc-27e24632fa27","clientPublicKey":"MIIBCgKCAQEAzIpWm6N7fDW/gRfv2gaMSC0sDt2vTz9dGct8L5fsZ6/I9ZPjFnJ9GKVLMBM0Lx13lEGN6cBnLsxZadpmECdTAJ90QW454VjvuRQymphdxCjN8YFSdhJuGfl7mtY4pHjgUopgOzViRRTdcfdLQoJd+1ue4vtIFB2BV33FhNvjK5d2+0tpWAqwtrJLJlk+e6Vlwe/FSTGpXGRdOLer36fqaDXaiUu9r7Nbn7zNuS8OqOSjf+0Xch0vGEwBASjovJy4N6UD+nVmI3IpORBcOg6xGAq55WD41gw5yY/qisV9nEqLC2CgSga+vrA75DUKKyWrms5H0x1TR/V9xHemiKdrYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-GFI5H3F6T01ecji4_e2etest","name":"WIN-GFI5H3F6T01ecji4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"966ea2f6-d9b7-4b94-a596-b96d8cbde89a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"7f028758-7241-47c7-996f-62465bf15339","clientPublicKey":"MIIBCgKCAQEA1dV5BaVcehhGNBtpUjGDmUlKhPoBpY++fRSWnRFxbKm5kMPL5B4zNzv6QNaOAUAbfGYhKTyWsPl6x/HcYS/pZzLoT9lIfrGJ/FUZUtXXnVpJoboySOL3Ai/ltD3A1F5Tdt8tLo4h3NMezWQyeZgl6jp9UFwZ8uhyDawVZE+Lucj4BEmmroUAB7lt94RVLmvCTs3lILcKRRtSBw1jS6fSvYilEV1PJpviD4OyGjgBzY+nU7yRWbIMuQTgfixuJCOIPbmIeHqRWdbQ/AClPtwhc5g3FueSqccCRG70y6VDBHlhC7zIO6fpFCBKEl0s0ERfz9wjvVd6JvtE4ij1DngvbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-GFI5H3F6T01o8tj5_e2etest","name":"WIN-GFI5H3F6T01o8tj5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f984392c-affe-4bb5-afb8-80cb0af26410","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"4aa7abc6-fa99-444f-b7a4-66fdc5ff1dba","clientPublicKey":"MIIBCgKCAQEAmc0Ml+u3QsqaVllaMdkbq0fMei9WZNU8S/dRGfbtbhNc2lz1x9ET3F/lpAbyJA/esJBldd/NfcIL7wuy1GPLKHH2l2AU1+vUzr1C9dNYw7bLkfDW7tujsa14w4cFTdt+ZLXf7eFdQIXEEaTEjO9+wOz9nR0I/gHxSDGuu6sgJiOpRvGsgFvzZR45ZZJzayBYqwr7JYT8VczLWtttvm+ixgu5uugQ8ocdeMrZ/XeiMunFjmYvQkBk2RBcKVTkeT7cCZ/c06EIVQA+X8UWzhtix92cN/kHAUvmhz9amu92SIS+kT40bt45xAOTuKzjZb7qHcRny91i+Hqlk1aBkoy0ZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20226.003","name":"0.11.20226.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f4b7793-5d3b-4ce4-b6b5-60835c400b27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20226.003","status":"Disconnected","lastStatusChange":"2020-08-13T17:46:04.4500181","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"85fbe82d-e2e2-4efb-81a0-cbededb32aba","vmUuid":"1A065CD9-2717-2B4A-86D9-0543A9CE7987","clientPublicKey":"MIIBCgKCAQEA99oA98OG1nexsmO1o+AuAl4nSlRbs3ZfY2dYOW0Kn1x1GquHaHEkIwjgH8qAaWV51TqChcaPAtQk77iTuaK2+nXPPbwZgk4zKpLHIFPUvxDnIeMVbkuDMwIw270DuqdhKYV3Lac9MPiFzLjquZHpOmCNtToBOPX0kFwzasx8q4XU3QUwmFy75K9uNzal2MsDL2pWJXOYtP/IL7uaRh334+Ud26uEScUsRagAQmOVMUYhPce6sdvZ9sKwHtaBogsd+ldNKWldlFOXm0GEUza4wAngTN4xkQ0b0MNMUugQ6UzhyZgok8rPZhxL9iBIKEomudP+YrVhafd0geQ0UMwEuwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.tofnpw4zf0vuvhgip1ohrha5wh.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20226.008","name":"0.11.20226.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"14331b12-418d-42a3-999f-e3224c50893f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20226.008","status":"Disconnected","lastStatusChange":"2020-08-13T19:01:57.4849254","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"207a9406-3a90-4c1f-bd21-7252898b8102","vmUuid":"15A85B52-68F4-1746-9978-E4AE37923C43","clientPublicKey":"MIIBCgKCAQEAv90lIo3vHh7Jl/soGg349klU4NIJwk40zcal2JFjCY9HAx86Le8TaQO07Z0+54tgdOpx+CLBkdkYous6wk0PqPZKLuKBdYAxvXISv1L2irwM9ovaiYY1RbJFbuoMgqITAdcV3CC5VZC20okZk2KtjnFr2hPzxGSptLYnWOTMtKXvN9Al5jrwqVU35ME3btsmqNkyzSWQxyB5TbCQQI3oAAbs+Sq3D+EAi6ho2BVpwrVgVfbKykSxNh066iZUy5jclLoqvm7i6+x4/A9rVYjKf5/Tnyg6UpYDLaOMOcoFYpUlbGfdzFyVSDzuOgTbbk+g7E6RyHiZ3NlJhfakM1kIEQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.rhlozgf2hpdudly2njct2sjlve.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20230.002","name":"0.11.20230.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61c3fed9-bf78-48cd-ad8a-795970261361","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20230.002","status":"Disconnected","lastStatusChange":"2020-08-17T17:06:43.4371884","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"52cd982c-b97d-47e6-b8c2-b64fe681c6a3","vmUuid":"93672C39-52E8-A84A-A634-B9FEE2AC9671","clientPublicKey":"MIIBCgKCAQEA4A+9+ylgUysrUTjyJenQUB2xgrIFBQuBe8R0Jjn0N5qZDH9pjuzxKUyK7brmsJ8yKwWweSlzGPI6E4NzBgR+QPnmycq7yDbgZTOv7Qsi+Idvvj+0XSpSnLdn7dKgMuByaEUZVTib0eR5DggHF8lUrKblNnZjJpaLOr4eaZSI6JiOLX0/f6D75iPECe0VOsynlQuA67uOpSVy+s+CtiXZFkK7rfoyIlJDGpZ+KDmfEgeFr5KFUAQJ8VPFPqUqmXKaBQdJj+2dZgV1uBhfsvxW13fBUOHEyp3Zpt6zmSgcuLBzJo3FLhRmgi17Exg4Jgr3j4J5CVLpOlCAro1DRASzywIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.g0i0jinzrjnehgfokct3h5wgrh.cx.internal.cloudapp.net"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7asLSEAAAAACA%3D%3D%23RT%3A4%23TRC%3A400%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiEAAAAACAAAIUAAAAAIAAAhAAAAAAgAAAsAKytMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '116485' + - '114906' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:26 GMT + - Tue, 15 Sep 2020 00:27:40 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 210b869a-2f43-44a0-8934-6eb5fb9fd7da status: code: 200 message: OK @@ -558,40 +1244,65 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEshAAkSqVh4u6TRtwiVE6iMhEzJiuSyQS1t1v30N6UPRCB%2FbZ2yPz4dU8Vv%2FLKqikxYfkgfxNomJl0AgLaRT3zfdQlXLtEpzXvKqn6Tv55ZPsrpUu%2FO%2By1rR9KKuOnU%2F44ZpWJlynNupYszNTLFMw1Y4OdqZlR30w15Tm7a%2BiANvO%2FVFZG3d1cd%2B8vi2b8XBqcvm3HPslJ1ExbvfaSOUCzKx%2BAPRpraiWYpGlKblF8GvP390hWi2dcGrB3lGZZPKhPSDi1bWYfgTGjEX8b8b5Gt4Sfm7bv5ZOwzun6xj0pWJHm2RNJ0i2kbOCDUNHRbv0MEyOvM2iOazmT5Hzw8GEuRLJl5PV9h4mhHYURjIxMeWRfKI4HhDCJBRBsIDJ6B0zNtJgg0HmuHjiAh88545dol7QXfug35n3OP6%2FYb%2BNvJtK85hCWAA2gDgCpCAA0sDlld%2FeFWMcwEwj%2B7%2B0hUsQwqszlmYM4z6TxEUPTDAweKnHdAINPA39VrQHGq8dxlqeiFlUQghC508ph6sHCiAhQxyb%2BXUW4TOMLn1fU4bAx52QINvQCV8Nr7TJSEWwI5jeTghDr0QoHA4uK8wbp%2F8QqnatMr5l3CjkqX4ruPIKVPc6Ze0Pm6OyKY7nJkrfX7%2BBw%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7asLSEAAAAACA%3D%3D%23RT%3A4%23TRC%3A400%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiEAAAAACAAAIUAAAAAIAAAhAAAAAAgAAAsAKytMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458y3p7i_e2etest","name":"fv-az458y3p7i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9efaead5-9475-49c7-b898-0ed410251213","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22004","status":"Disconnected","lastStatusChange":"2019-08-22T22:51:23.3474865","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"e8e2321c-1e5b-44f4-b628-200eb718c34f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJ3zelycHdi0pUTb+Q6hNkD6cSV0n/A6zAC5WgCBFguLfH4n/Rf7RYzNDWxpPixeg+C1SicBwvBTfLpTtBrxdtQsSSl75nRrSwacYn0Q5Y2BcASZd62EeWYk9m7StMcCOVXPJkSlnQNibxGvK6XfOLiRN5IvDzueoyhPLG1jFBJ15BNZP9dYChdGfLLeOy319r9a4/5ai5m1B3Hs07CpVicuQXfXFdWPuwOf8mO4429HVAjC/3oiZrWemou9ox8nInMAGJFr0U2HSxXJr+sz7qg7nqr4MP7SCkwrW23Tk9/EAM8Zu8kfLh1lFH4FQpoASJGQrMPNf4YnWZUC31mOcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6009fvj4_e2etest","name":"fv-az6009fvj4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"839032e3-5741-4127-b6c4-8c7d735dca20","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23004","status":"Disconnected","lastStatusChange":"2019-10-24T00:12:34.8696807","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"4fcc38af-3156-49e9-bf32-77ea93ed56f0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzvWYPr7DZiMnv6R6EI7t0V1LNVfh/dvXTdJ8ebGCZzRSJHdinbqiuCoE2hdnxBRVKL/9TxTB7mldJDWeZBZ9w+YJG7E46IhN2ZJ5r3fcVLB+BFXYGmGNtSkrpWpcFbzga3RMV+LYi20Wb8O7udq18wIQinf3kxY8ddEBLWXvgV9FfEV+Oy9RCiR4C9JHcFmdnBji+nsEygrR41d5wiiJpW5aOG6KtB53j4V4Oue7HBuYGVHteStUJa6pGWWHRirs8bIDLUbmVwz3eLiS5XNHt6B1Fr4T1fJHSyTdY/BL6oDR4imqqnu9bOIjxdV3VdPtqNWBtf+SJrmZgHTLTheH4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458y69po_e2etest","name":"fv-az458y69po_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7611ae82-63a8-476d-a1b8-83eb42d19f3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16015","status":"Disconnected","lastStatusChange":"2019-09-16T23:15:04.5127288","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"4ab95a63-8a10-49a8-8d09-d8361bc8c2a3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsZroUNTwP4CcSg80exZM+FjQeQm180HgliaZAFSgIb6qDoIGNmtguqjY1W6aO8olJsktxJBaWHb1/4X+Evz564pMPFgrMiiShNr9GWWWgjg8psLPEYTy5oaiYi+J82HbPbcAJLZnYBEd3F02Cr6WGhprxK7CyuqJBvXhdi3CDcL4tLznhGiftANKKyuQexquflISv8pbqAt5Wt29adrL0SAbwjIu4H9GZ6AVV4opXi/IBU7yi23RDTfnmSCSAvHVeIz8u6B+bqspCJcF3IMGMXOB1erQeMSHj1p8WAHkY42RiujfmmObQ/uQo9OgJ8QTEHswlFV/hHmmypR60FfmRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xlwpi_e2etest","name":"fv-az456xlwpi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca511e3d-cd27-4c53-a649-3911051447da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25006","status":"Disconnected","lastStatusChange":"2019-07-25T18:10:43.3106198","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b460b9b1-092d-4c61-b598-dca3ca31983c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAubHDz5gBdgYINZinI6ilxwOvVCTWSwR1C0n0M50KzKNZxLlw+HoKLx/c8J5ccTFPbnoP4BYIOUR3GYnL2UprtWgcsL5RqSPSjFwCCaVSxRNwnlJiEiscl5a4RUJNjjieObh0nKzJUFMH33d3h+87dTO6pvFqCt5yvKyLxsI+conXxfGXCu6rGTFHHZDgmmiFMGOo+kLOTL3JE1KXlZOdGTLxLPM9EJr+nEuQ6OQx31O18ywv99wJE0xKyUtLWNwEMedup5fYIpBIzr4fvTlKDw2xZxUtyE9vyLtky1FyNQ8WUbZI1Bi2Vl0sPndKa/yOH2DKxSGCcQdhJgbD45VHwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24005","name":"0.3.1909.24005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c2200acc-5f59-4cb8-8465-583b49806951","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24005","status":"Disconnected","lastStatusChange":"2019-09-24T17:18:53.2942169","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"45f5a068-9c50-48f8-9369-575f7288c21a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvuo7ZtU3c+J+5j36PN3f3TPSyp4ghyCPGpGD3/GPg1FXCwuoMjbIgKyBC+0KRtMcbLjc0jfcjAajOROAbl80Ldoa+f9KLdTO/KBziIyMrXeQBbY0hcobginmHSzMfifG5sAlSKkl6d7kvV1/PsXTzBLypGz4c9rVG75Rv2NCm7fMZdfIg2o2j8vYubwT8n7OGqT4iA6ENL724xeRptQb6HIYf6HfFIKocg4g8DGn96IHbaC3N93mWd+z9clWBzZdpNSaNTs2ORnlGdNWBY+jePg1Xp5ZQQq8gD0HlvWKgKsTybycLTUR8MTmdgrSUkA9Vqxt4vNm+drpZI4DdbOffwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xmo5y_e2etest","name":"fv-az456xmo5y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1797d0cb-a6c1-451a-9b9c-174e2f9b1c0c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.05002","status":"Disconnected","lastStatusChange":"2019-08-05T21:41:16.1826147","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"088dc6bc-69a1-47ff-abed-7bc1731bafc6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtz1TJT7sf3PEkTeKvuuY4GE3mwec20tnlqrOY/coqseDfACx/LdRJ9eM09GCndO8ebIQk/ryoCo3OO+Of4xqDVegerTtjgvo4rJYmvs8G6fhQOYcfknH/zJDIA6puB6dqiP2N35NCS4if9FXooRxEeYBcIoyonaNahgBO4XmElN5y1nvNnatAOgPHDdgxze8NwCdo5/L7ihr+a9tZj4ACHvHWn2BEQPU4I7t8G0jrvd2qPeb1EpggfQdubUaPCtlQ/nIwUg/FsiptHlIztR4EdP9s7zVnV1+1YwXU85IsXdWRsGEsyuciCSj4t2ZNkG4U5XDHCayiRO82+YncVKatQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24006","name":"0.3.1909.24006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"465712b9-e320-4327-9dc0-598708b81418","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24006","status":"Disconnected","lastStatusChange":"2019-09-24T17:28:53.5143364","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"993b24db-4533-42d0-bce0-1ba0a823321e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1NjlWnqBoIPSIh9NYmF5ve2hThu56QZ5h3EeMG5yOZ44QrcSg9RatfTUyNZdTZtNDl9nT/Ddn+D4T/Z/GgiasaaN9kIktbj33+UJLBEyxLxjXXILeAOoAjvGPas6HaXX5oyEIPISc996FaP6NgxZBsbY4se77F943gFoJ5EyCDr3mh+jnxV3C/vs0/j1WwYnlfu6QPwvdACD4PGjaCSoaTTESefLWlEIMSWMu+h/o2HK5RjAoJwjvmlFkQa4mG9af0v7tRmUvCEA3JFv3xDgUFdxWclMcsHTp+JizsZpOyz1L87cK28V36s5vIzQaGr0QhHAxLoDJ6OFUEAHfUe08QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600b723z_e2etest","name":"fv-az600b723z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"028ae6a5-994f-4ad1-bd3e-984f00e85115","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21007","status":"Disconnected","lastStatusChange":"2019-10-21T23:16:26.5737799","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"604b5eb3-565b-4b4e-a08e-404b7f1e1bd6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0h5oDZnarJ72OA3khZ8AxgAViWLmx5nWshNVGAp9X/J1/PSFUIAq8Tml8NBQAJckP+wpUhuFJFCq7UjZ54xsUMrd7C+h3NxrWRpTgJes7M+Rlp9jbbSydUuYJ9AGt1vwTNsnitSU9tIE9w189cMU1bVN9hZguHUXCa61xdOX4TUWaBkbeOaFX9BLBQOWVCiGFoGCgUCm7T+q4mHZm26O9S0jpCIuBQsSyw2KsBgQguYqpK5R6xIG0m+vez6Ke3Y0VuWQ/GGogHAgNBlxVFjRD2u+hwoZ/u2WkbL4lY34IpASv2jiJh7jtNeY4BEc7vNVkYabPo5eghVgwPNKoKQDDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600bvg40_e2etest","name":"fv-az600bvg40_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9bd3834-1f1a-46b2-b9f5-4457ac5dfb89","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17002","status":"Disconnected","lastStatusChange":"2019-10-17T15:58:18.0776712","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"dea4a526-24e1-48b3-8e9d-6a34ab23ac77","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzsAICGCHoU3EyYPKKYcDkBeh8MACcUbZ+OF314NFAxukmeDBwU9hl6fvEuQUQLYk9NwRLNygxBGPPW8RyEiu0hQS0Z/XGm2B12C6V3jQl96wv5ofgviCloorO0A05Tb8HhtlwAc4VQo+SHPc3hdNQaPqEv1bOvdk8xW43A6G9nUnKkaUjE+l51cM3wkpu91WNurn7xXBQ65rPikvnfUS7leWmEhGC1jbKbjjZnNmkgKubHtz+yVIC3Hzp1UA3mUZte+zGBy/DBfLDstO3ULDzkqGC8asU8rTVsoZLxcVXq9eoXeQvcBLcZZeeROYl60RUBMSvkcFTJ/uXx+jN+7WyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456gsvue_e2etest","name":"fv-az456gsvue_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"165a6b4b-e86e-42ed-8970-8bbbfb69257a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21009","status":"Disconnected","lastStatusChange":"2019-08-21T21:26:14.6681502","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bda54523-455d-4e41-a74e-7f659338c967","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA79wB6bsJUQF9cnpDeD7hQK6XEx8c8yKbBxysrvplxN0/VSiMVGEGKRL5IMMAiitPDxfTjyMLq3dBSD8E8jhiRtHzKg366rnG8Jt9f5APv5X9x6+75/27p6BOa5uT+YuOdy0vP6+0tWr1OWCzFtLn4i+hwxV3u6g26bH6Zxyqr8O/5pKx+qzFlvJWdtaTp5bdnuIiBk14A5EzLyUiL/HoPkRN43bbpJiPq65uSnhUjxXg+z+THsghqsamy/2BLllz3Z8bZPtsdO/+4G7YOdsV0xEC9v9uGYoJeJcsdnNBAsd3ktU7j/+q4wfR735BuNygsHnaWMr+36lxdUyx7nXpdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21013","name":"0.1.1908.21013","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"54ca1529-ed52-4c96-8ae1-338db1d84ec3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8c59bced-2e9f-47d5-9865-9ae519052a45","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvFdWzINIAsbS+LXQ/SquVExxgtmW6N+lycltYA/MTWxRxWKNzQIgQIwU4IBsBViZKjFT+RcyHn25Eyk2TgG28eVnvqYDgmUN9e4i7qHdnPpBu2L7EgUD9pfvcKw56TRA1Y8ZGcdDYf/H/4AC4QDH0ms1CL9S2QztloIyszUAb8swgxHPfNwvbFJQa4AcS2pL87V6BPO7VvIH2w2NOtBGZ/i0qATBYyx3bbkl0dD4k1TniuQpdcDku39Vlt1W323R/GEQTAFERMmjPyeRUK1YOCljJcvKu508nhxylWHO/CkIySylF2fmDZv/NhFv6BnRS5tnI61SwkT/zp08qJm3oQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458zg4ry_e2etest","name":"fv-az458zg4ry_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c231c25a-7d4e-4a17-8ec0-e353744f0bbb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22003","status":"Disconnected","lastStatusChange":"2019-08-22T20:31:22.6691323","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"90aad14f-4118-46d9-be4a-33fc93f94bc5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvk6wgzk8ax1aL4Ex5Vm6Fap4xcJi470BJPOn6arEuSw1fGoW0Z6N4kRzr96QFXsYl4Y0RSRDwpjFtNqtBZ9egTOxy9q4znBog3sgrmuvzqOSC869bAZlLXGMZCaCc0N4QqsUlMKmfRvTPgfFio5rCshFsvqXNnFAdu3prXQI+WC6St56uYg8ILRwAX6Qd+1fhbXCA9l86eeqqjH8vnaQj5i0uxiinO0yPeyrL++GpHcR4E79DA3xOoQ60/eFOPd8ztV/HU8RZ8BYc8XjaYTVqC63BlLOP39ARF28Xo2G1r3/TOcHvNP4fNTsLlZMoKKEMvKsmeqmRPJx0KSzJeWbsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xv6k2_e2etest","name":"fv-az456xv6k2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"89cebf25-c512-4428-8f4c-80a1d899b841","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09003","status":"Disconnected","lastStatusChange":"2019-10-09T18:25:32.1981456","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a64a193e-0fb8-44f0-9349-e03dfd65b27e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Jq0R+Jr9nWg5CLJ18o2Q+Z2xjJObSU0lwHE0DtLqmokG8h44KNOhIU/sG46kQDYvgmdiOpU9KflhU2/8DL0wXTZ43bMp021ZXdO8AgywMIFpPCk7iLeeh5dItRnq6PDX3rQlbcYoydw3dYAPizj42TOG0veZQ8B/67Ehnhv42cHY8AEGDQoqf8fIrCfrmGqwoJhyDB+ftkr4ErqPCcKWdScNjF/rZz5ZsSkdeNZFFw5SkTmD4vGHsTOGT/2JXPD5cnFA8oa0L098CPfXu5xlHXA5+I+OGWiy92tdkWIieZFH8QaPvUgwBoyaYWrcbRof7X8yhfXrSS9Q3aP0sFqPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456gy69b_e2etest","name":"fv-az456gy69b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7c071b43-7eed-488a-a87e-32e5b7839b55","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26022","status":"Disconnected","lastStatusChange":"2019-07-26T20:20:52.3537396","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"407d177e-f6a7-403c-9477-2415b5de049c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxdB41iabe+XL0Q3/wLXcQp0jIZzbJ2v9039PIr+i0L87i65603kYLX9DL/Cu58ewRKBBTABndquVF2DJHmdDxfAJAhPnRuUBl3dKK7vm21QOq8q8/t9QYI1LXywHXUm7BJVlFd79yAGf7TqVz8P9KU7nIiR3YfWFJp1XxmGtswOd2YEZDAD1C1Vskt5P/urqPpKvrAVufghrDiCSEaleBFbieF5fHNs45kYwOrbeOPIdse9JVsmtOhgp484E8V5cDym9wodls9eHnuwlf1CqVagtjxKxkusZd0UEwQNahTpMl6G9kZDXu23sO5ttCPTftVd+y8utbUFFVl0hznn7wQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24007","name":"0.3.1909.24007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f658570a-ed84-4de3-932c-ebd268f6e989","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24007","status":"Disconnected","lastStatusChange":"2019-09-24T21:08:54.893841","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d0fd9207-b335-4bd3-8f9d-13fc35ce28ae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo5Wr3m5P9M5MKSoMa557cj2HUSVewjibsbOoPA0chXBHYtcnazfp0y2xnO9XgrE1nAz3FCpm1xaWy+rIDZIThitoDrrjZp+5SbNK82m4mFezcxK0qJA4Z2VRxnyUccQF/MyQ4YEGeW+F+uDlgb/Ej0MHxkrI1W5lJMzdluYptstTATVdex/6yZ8Zhwz4eucwkWNbjaQvyqzNzHDCGFTbaTFfy4oZ9qHVeNHDEa+23N5TOTzfWotg0uvpe4EjAF1wMlckASmsqBJb6U1STZI/AMuClENZA2dd1ZSObqsCFApINv1UFQHb3q+F8T3PjYG7n8tDdwONwPw0w4WyDGz9FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600drpl0_e2etest","name":"fv-az600drpl0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9f85c387-3238-4398-831d-5486d0a8ae82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24001","status":"Disconnected","lastStatusChange":"2019-10-24T21:35:50.7142982","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"f84eeb7a-3e9c-47d1-9ac7-27058fd7ca2e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9GZqzVuDYf/N/39oKgGoyFgmjxvjy5uIVrLjcLlqLDLaqahc6f/DXFLmCSouH5wP+LIOposmEBPVYtmizPIpZKxJpppPnxwiRw4REqEXTIR+YoTersVvpnrndRCore04HAygtMe3IT7mni9PaodGeDZqBoqrT6Y5fhe27Q3G/7qYXc+zC5cUjaYRR0gVvkryt6qETVJpTQD5MUWE6afZGKgeYjPyY0XLN/HRl89ka7+/YiUP7NW6UQNLhx0B9eitR5X7uGZ8DEXwlVegtsb97wXEv4QO2ozjAz6xixc2JiA7r8wSUWgQ+OHwRQauX2eppljxkYxVH62v0kQ7Z4G2bQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456y3b86_e2etest","name":"fv-az456y3b86_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0f08be49-c27f-4f7a-ba71-4c59f3c7df49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03001","status":"Disconnected","lastStatusChange":"2019-09-03T16:59:23.4245954","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ae502504-0321-4842-99d3-2180a7e26eb8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzOe2LlmYovKeO+cCtML9ArRTeRAHcexoeK/SwaEwW09dQvi9N+abPUbOiobnYwm2ztIqgWqnJOnzVvK/r/gq4rD+PWcz/zWhAQexFBO5fCMZMqiEIN9JAvMfnPatizuyiEZ67bKj/n9iMYC9QQ1RbUv43VcJgK7quKTCLJ5kjqE6+f89qSS+yHnflhL/k/qKabgifxEaZIUcjidgeWiP8uGfyVmWj6Z5+ZCO5kFkcvkEt5DXm+iRpQlNs0GQBzgFVzjJ1ve+xgcYraPL9GTMW4x4C3BR/EiMMjtsw5jv1Bvs+n3Ivaqofo00lfbQSCObJwcMFzxkuRXAXigQ5DpFCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21014","name":"0.1.1908.21014","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8e53e2d9-2e58-407b-a47c-83f44ac63503","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21014","status":"Disconnected","lastStatusChange":"2019-08-22T00:01:15.7848588","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c00e8e4f-9a40-41dc-a577-47d8e3ea1977","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqBH7zzyurRvKhLNONBPCC3Saqu4qj8tQdOmrymsSVLZJqGRTBz68jKM4YiJcki5Yd6fed69YEktBqsFbN/sWBo2RMSoayJTe6PfC+BhefTAK1jPoBNy8pnT/BTxjylA0dMfaODV3zqjyQXJgtGQ8GpD0KsMy5m7/u19UsVE8z/s6n1SncqfMol9w3c04jiPDTJv4QHsjoOG16Z2/r7v0EEkq9tO/ODTp6XvhMoc9maYIQbOHZ5r0usm2FT7Rq9eT40GKJyoyEdUQzYlkhlgVI4rP2EiTWsR/C0nIvPknUUhrtL8l68EvpByDWxnfBYceHfIKgcWoczYSdVgwFa22rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456yfmrg_e2etest","name":"fv-az456yfmrg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3da7e4b-6b88-4da5-baa6-9665b4e6a245","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01001","status":"Disconnected","lastStatusChange":"2019-10-01T17:51:20.1567878","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4c69e1ca-bdc2-4ca3-aa6a-817d70d390ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnMdXPEP77C2NEglel7f2jNwvNuoTx7FL5rG+hRzCasAJqfMm4AX8474yL8SQE6+h1OTHjmT/yFw42PYgNVCWIWB3kiVg0QKkQRydS8eUVYKOx3eS5A4mHws5edk1JNI8HqIc1jJBVql5Qdp769z3vg+0p0kzTu3mu25qVaph0nGJ+Ew1bCNOQJNgk52fNmJUoT/22TGsbgs0/TTwt32rWAjM7u2AwEN+4jh5l+wqjoAofzuf6zChrgBrSmgfMInkskAQxfoleUt7KVgDcb6y+o98hj0TP3BlmDY7pbWHi3CU2V6mxfZXWbpAH4AJH9b2vXr4/Elt9ZFmtpTZNFBKWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600ewrns_e2etest","name":"fv-az600ewrns_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a8f92aab-9345-4973-8273-d28e3749c15c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23002","status":"Disconnected","lastStatusChange":"2019-10-23T17:06:31.2049045","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"81a4b175-a34f-45b3-b53f-15d3f2afee49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5HeH2TZiBI8lZqJOFWoVx8I3nYZV0xPE2bSA7/U3Uo0uqFVNRlaQkmedJda8St4lN4uHC4DFWNQtIezyCX2kkWMxyAPwwP4M/voGTGB85c97xooQk2srSbwU4CCMDKaAv+OIdTIV8qULNm9tX2I+8dMUbnr3AFR1PwInTV4pnbFeXX8WbzJzYllxf7U2dGN9GaBUm9AbCvOVFyhQ41dGTci3jqzcguxZJzMi1tBNjgOnImaVwscTToujpmrZjDkJhqduicoEdFo6qKIziAmfTMihCklCqIboBM1hTjH0vun3IN3oVNwiCG2FisBD4vnGwnu3PpYzyvvz74LGEGwT0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456gzm40_e2etest","name":"fv-az456gzm40_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8fe0913c-6f78-4527-930c-31482a5b2eef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09007","status":"Disconnected","lastStatusChange":"2019-09-09T23:57:48.354005","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2c4c5c75-a55c-435b-884f-61fc8fbfb8fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr7FaidXGaw6+TsbPI/rCS4oS0cvmCU5oJ5XIhgtl4/B8WyWE8+MzmCyY5nn/Gzo/wAOdlivK53AFGA6y/AgHXCV6H06QIdPmYGVtUi5RvpM1UTwHrC5Cg2ZjHNCpxUqahHZ3gbXrFlVE8LwETV1VQVfgZ60mvxjIE5oSVGQmrMshLeJzW2kP8yziwCVmXXVILiW9ovBqbpke1bJYj3K71uoFeI/HpaS6OKY1hw+hOiCb8KYv4ktS4VhXHnrWlwC7VQF5vGgayP662kz67Y1zgO9+1FBRIMtyNfkZB10rEvn2c7GN1EKIicaJMD6SDKxFg2gTUY5AJKoxB4NfdM9McQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21015","name":"0.1.1908.21015","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c7bbbc94-7658-4611-8205-5ff7dfffb82f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21015","status":"Disconnected","lastStatusChange":"2019-08-22T00:11:15.9884485","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d276104b-49fe-4c22-8a92-9be475f25ad9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoYt5PhMJreqNYLOqW/K/v8xYc3W3MdjQLb4nn0l5sqVRL/0Asklt9isD8VqZ5VoCaACwpbtzTKX+jSRWqm2yXhw3V3vGykw8PNwHf3EBJYW88KHBJ+DuCqxoGhT8cJiva0qe1fHx3W1yjYtJ0NtiwndF0C9zOgA/itlpIgB8v4h/tJK/p/SqKKvtBVWuuiu9NS5tLp4IkDIKpyTVmGrsUk4mO41M8/+bc0LAh6cx1HZu/7sBJxQjy05TsStWo4wlODuQOBNWjB8Js+AH7HF7C7awg8JNbMF9T/rUITaOhmnS73ZUkwbkArZawuZeGKZhHFc8O88i7ANuZ/6Sj8AgRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461ug80d_e2etest","name":"fv-az461ug80d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28c9c842-a361-48a9-bf3a-5582c46756c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01005","status":"Disconnected","lastStatusChange":"2019-08-01T22:55:25.9531609","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"606d2428-6b95-4558-9330-20226d7264d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv4Z8YON7fdGvaTiKlI2sFeM8xcjWOA+0IXir5EzN24If2FsQxPxcm4K00zcb3clEe6EXjG6BG1g0URVy/KFVQ8878BONILX3KrVQdUetWF13KYFgpbJu+BTj8cxBoIb+P6yDMV1F8CXm94c/sUzmSUAkt8tslyr3pg+v4RLwQTT3aneUYvQfR/6CFMk1obXlBhjmShdpsmTtDNBs6EN1i4H4PPNglB6x0t3LBKgrvqDwbTUHIIpyaDIulMmx8ASX7zucAsYMH1zxQHVa+4EL0xn8RvL6shRABQobkgaQaih3udmiq2XZ6QUCRwqZV5y3cKRMFaYeF6kIwb8SXDEJkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456h2fvl_e2etest","name":"fv-az456h2fvl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"001abfd9-acda-401d-8ae9-ac42e59b0521","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30004","status":"Disconnected","lastStatusChange":"2019-09-30T21:56:13.3019025","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fe10d32e-7df6-40ec-82a9-35c45aee9a1f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw+SRYJDlaR29EnWXvzTkxOsYHVHEBpj59V2GNKWmxlJg7F62D3x/gWyssyoiQyEFqBWlu0QQ9V9ZETrJKUoBc9HvzTAavTTZRlyB1DD7Uyc9dzvnC1E+uEYc7lSWyw3ylUFzlBbmeIk2ervoDrPzDd5mH4HFZfdALFlrGpEK6hNTAPzLuMWz00t/0VBeNoFM+cCmje/iwzatplAn59GhDJ+c0LvOtNSFm31hCqMO3oDpzxSsDPbbAT3Tnhdrv9EPz1llELvOxMnIUyUpgJsibeMr9UvnEt2Vqct4pVwDG050sYN+CxQbWQ9QY/4Zjfnw7Hw+2j4ea6M1FMDzEovhYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600f4tyb_e2etest","name":"fv-az600f4tyb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"13f13e43-45d0-4e64-80f4-73b4be44aaf5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17001","status":"Disconnected","lastStatusChange":"2019-10-17T15:48:17.9049133","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"0c0dadea-7bee-4529-9524-066a12526082","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsUDyV7Bx+d6X86t1MpODou2SvZbSrOPEqLw4H8Es29N8l7T+KkM11UVb20c362UcWzrfbDwdZBbPyklQtHITpv9Fk/B4D5mwp0YMi76f0Ci5v+yoLAcnTbtYYbWkX56YqtgGFvd3mMqrkaGu1TPubrNrTvWhqla53LUGKVvHrpkkh7mvNH9Ar+eNSDocRkchYjvm7mBxu0+M1UYdAxmP5Bob1QlNL24iTrhAM+YsgqhSxHgZM5ZViRKL+aAm2zWJSpupxWSf+oGF3r2TDFpLhAtfKotJUTwUJtANOs/FC+VrFmhU7D74Mn6SILVJE3J1gfQX60SepBu2PIQq5WT2iQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az40825fp6_e2etest","name":"fv-az40825fp6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cf6b1fec-36a7-477e-bb42-dcad00ae3dde","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01003","status":"Disconnected","lastStatusChange":"2019-10-01T18:56:20.7261168","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az408"},"vmId":"4860228d-7920-45d4-8673-0dc26e42d249","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyvigf0caEVFUfibRPU9KsVvqb/SkGpRURIaWiF0zSnxeLsNX19YTeJmF1lGEKyjvA88Jtoepf+PCHd2RyDRJSOUmB90n6JO8WyLy5vy4NhbgccQ2yp6cRtZRN2FAeZfDV3nHUVl4/OxMoyr1i7OH2iG2mbZ0ZfGFhk/0DBw4AW1v04KtRdrPRfMbsCBCt5HKpsadnqisSmKHGlld+Rzab3zxtbjCNM6Xi9kYHHkmHUi1uDct469X31ydJrqRZ5k0Kc4wHc2T27sIQkSMwa0NVMy2fG9JNNLWH//LtMD/VuPVJkF4u9Z8wc2riUdIoktEhjF9OmFWhGUcw0s047BqOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.22002","name":"0.1.1908.22002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2bf13131-2976-455e-8d7d-65facf8124cf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"23018b03-1c65-4eb5-a086-4e2c72899ef3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAudhoIJdBmG9CCLOV3NK3FCiFJw/mSVa8rMmz3Zlj/qLu2BCjR50Hb2EUxOzKgoaPEmHpP8tzePSP3F0wkAJSy/NNEVBaTk164Juq/mEYaOmYUwStj9VyLST7tFfbhnq2dRtyr+02jlRaLXQhkwRR4tlQ3K5yldKieGXP3K4Vb8gVhfeScEe6Dvtpu2JY3n0D0cDXrmurLfGAAoMseKq44582TWGd4V/S9Osi1GT4DHpWfwmaWVGUiUzxJMIpHpBxBCJIhHTPZmKzpHzc+YYhot3fLGme1ds+LM6iLK9Bd698cr9upjc/e+7+8xQcW6GScWxmN3pAfq/ro4hvhnTO+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408btacx_e2etest","name":"fv-az408btacx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"76cdb4e3-14df-4c95-a235-4e0967d4249a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23009","status":"Disconnected","lastStatusChange":"2019-07-23T23:15:28.6300137","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az408"},"vmId":"e27c6161-9cb8-4d23-a72b-cb95a4c80466","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1AG24TfSPS1ZWLSlOdApepun2ihE4uKtIbT9+iScJWHzAOygi9gF/i9vKVn1r4HRrQ3doV3RfEiHrGk/0KHy8mZC/+SZmhwtQE0f4zWF8uFu2pNH0GfIgSf1LeTSf1wx999PWQSJGsAKmpXKukZfFLAhfOc/+hvO2hPJ1aJs9w7UpIiCIRHqlSbSDNXR9Hb9zzwbOgD/h2qKMTaSU51VtwcVC5ZujO8TC9bGtzKOpBUpSuBNO5RL9FmTR56Xh3unz4zfUbpSR6ZZHiHTkwbrXGb4585ZxNmSIm02TvXzpwfywW3oCd9ebbpvac+4Le/+fbOEb4+dxl/8++ORKv92iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456yfu2l_e2etest","name":"fv-az456yfu2l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f117327b-a848-4c55-af74-81f6598a8dfa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24005","status":"Disconnected","lastStatusChange":"2019-09-24T17:23:53.37421","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d5b7cef4-4ea8-4220-a51c-c8456a19a4fa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAymjadwuF3EHrnoeqDezeLGkinTzp4XM72warPHwytLrNqKMYDMl4QlBCnXX7B6T6gqD7qJw9zuES3JO757cpWhlQkdZo8fhfTrBH6SmLq3O7TN5SZ4eSES7J/WLTCJ5lrxy/drnK8Cpf/G6vGkjPmNa98IL+bE/A+JzpdySQsMWvX1xvR7cUKWwfuevQuudsVeICHq0aK59Zdkkyd6tgKIzxEc9Niu4xT66c84OM0jT906nnAacdxQCSpd1aSwOIHCpRRmLJIYarpwZ3JDFt0cXD0RghLR65MtL7Tz9ix4pyUyAmAuUZQ/cI+wcCOqP06oGpxyAD9QjbxB86+zCgdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461v4nac_e2etest","name":"fv-az461v4nac_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c84d34c6-e699-462d-adf7-9f96bebf787a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27002","status":"Disconnected","lastStatusChange":"2019-08-27T18:18:17.1760035","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"005aa6d8-b4ae-4b19-a98f-2885747ded38","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtVheGH/wyrESQv5jRVk0X1/RcelfiNuCMAcQkcTJLgpw0JlGLj8QrvhogZy4pky22rxX0UyE5/JiaY9wNM6zYvN8rDc/2451O2DU21b0z9I6tSK/QzXUmrqEHTP1BLxTSGAZ0Efxax/f2WVPALseOegS0VexdJYVL+Q7xMpWJEejgFOVyu4AUEP2EeM6Nnzb+uxm2ZeDxP9KNqkavFxbFgvyVD6o29Qe7UDcxyLoU2mCwSepPyR4QZz/ppdWoP2IbEtKkM6278CWUExgrvADJ5afaE3FQNjeAHo8V6v1oWHRY2nx4hhhnRW8N+y+5JX9gENxyiE8+wWXDg+6P+n/NwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461v6015_e2etest","name":"fv-az461v6015_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b8293cb8-28f1-431f-9a09-7280c9ebde38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08002","status":"Disconnected","lastStatusChange":"2019-10-08T22:35:25.0322338","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"960eadf4-cd47-431b-aae7-28d4e7aa6e7d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwv0+2RvICeN2wRnCKGP8tSJW7tGL96in0UBxP3H+GpKVPI7XiHPAFcwiOP/TTUA9+CST/3t1EMDyLf6AxThvg1U0K5YAAEwDozcDsTbozvf17GIyixcZYuCRCV5GTdErhSADLT/OMtUJXrornxe39Q1KiUFXD4SpJlmSUJjTdz7+N5JPMXlqOZr09bPaZt0YUrJ0wl65R8OdLNie6DieanZE2gib0lAYt9NEiYVT3Y7aotA/E7mUs7Eft9ugdmiQ3DA2igzo/y0T+ODiFzSWTu4a2bz2gKMPOdHnxaVAk51JiHhGrCC5O76K5EvCccEWW51xx4wTdWm/48ZEWCeUiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461va0hb_e2etest","name":"fv-az461va0hb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"20566f54-7630-42f7-8010-35e40c6d379f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25002","status":"Disconnected","lastStatusChange":"2019-09-25T22:54:04.4463206","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"3b6ac4f7-1d9f-433e-ac25-2105d79e12da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyqvTddzzFDARcQljAKlQZN6gJKH1DjpejzcCc42TiAhAzimudtjhnc8HdNlCrAjSaanve5N7TO1vOWpeDcNG5JWIa5MUk7cmdWgEnG+wxncXDFgPjWGpcGzpmMLMLYwhuogX8e6ml7/f5i+Jt1+yiT5bmUZhC3+cbguiZeQZ2ZS/o2/kfA/OhRQ3lY8ZAH6ve/0J56DRv9NPS5D48sl6jzK/Rcjq/Xz25lAuQLS6xLavY6SRc1y2qMw0HI4zJVwkqE+pAfgHya2PmoYXwYkbrSDNo0BfsvIZGbfO6DGF3TxJxVNmVJMl9GmEL9j3ZzKyQp8a5KlkUGgjAXQof6HIIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461vefnm_e2etest","name":"fv-az461vefnm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e6bc4f66-54de-4743-8f89-e51222027cd1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22013","status":"Disconnected","lastStatusChange":"2019-10-22T19:31:35.1257331","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"7920e5a0-1454-4571-8633-b1543ded61c4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmlZGSqzyYITGZsTbFUEwdd/vJddDvmT9Qwb1EV0tX35QPohmeiEG3Bd9E9c7viKArXrfufrMcDTMNK7Df4f6ed99lACm2CjQwDQJll2jdJl63wbLXMIGX119aWslcrwfehWSjiCtf3Dpown2Ur16BM4vxxDgHMuYcssZ7TcvBE3Usg9HKk6UnakZkR3VGUM5ssNJT2HEbnJ9j5T7230+jjdM/w4iClZEGagLvzxv8KZQ83lUMTdfreqoiMdUm/g3P+SJq2W2B50YEcttauehq3vLp2+M7EOUc0tGuyz8ARw9QFIF/A/abm/hmVDhe8HsFYdzoCchRgSxf4NWj3WymwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.22003","name":"0.1.1908.22003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f927819a-8eba-4f54-9ef0-fb0b0895e4f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22003","status":"Disconnected","lastStatusChange":"2019-08-22T20:26:22.6036371","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"976dd7e5-2729-4635-b872-85f640ad1bf2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8lJaQeuhdbU4wbhk6dQpat5+DLhu0iE1UmGuMxylipx0ofKpELRVedrFK6PfZ7lnvSt74RjwXywmOeQo40y3BdXLwgBjNux+gvOhWsVVVTQkuXUBI5042IeS5Bh1CAQUCVclmGTflKEhNwWz8innRsD9pxG5guU5Pp33Hyd4F/i9j8RlXZFEKA3QeOpFKRwfGcg8MNmqa+wzpvaxrDvbngxMXAbV4IKRaVCo+WrRaf5WYKw/PVXAXDHauXtQS+Z6+vzJj7yQA9l9hSAMgBCuwv3zHRKvqs4Xu6unIGpAlh/kMvumNQWJSOOtLhTNmCiJLL5dLxc5s73mthKAvN2xRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600fumwk_e2etest","name":"fv-az600fumwk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c68d883-980a-4c66-9113-3202f95e3e88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17005","status":"Disconnected","lastStatusChange":"2019-10-17T16:48:18.605327","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"748cc9f5-f055-4e6e-b5a7-7d92e393f0ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAul2xfAV6zcDudRHOJ4m4YnYclpdTCkWcWF+d8HNYnBfXNGd9/eJW3bsQfe+/sbkxrOPHWIXz5KP23oG7nTWHaVlkSyj8XQhdh264e/0WD/5MqImxnbtj1Sq48DvZhrUfWEKsfeRh//pFdg1apmiPYT1eO48DXylARxc3MFiLKuO+wnzAkGhqQrHJxNx/lta9hjiO3FbyeGZpyiuuIkPrTSi0ut1JMi4Igx2/wBk8pNu/o2GMKqMseU5auxdvWNAiZ3X+JrxkHEGD1+PR8rwiXk3a2MUMADLnjl5rKm+QH9BhsdXcNg0KuH7zv/mhkO4mBAqzKnf+yxIGdYYZOno6NQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.25001","name":"0.3.1909.25001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"92ea3cfb-fe8b-4fcb-9887-93b1bc02b516","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25001","status":"Disconnected","lastStatusChange":"2019-09-25T22:14:04.0472897","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d2d68787-5180-4c22-a192-7351dca2075c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAueV8+HOCWkeBtbwfr5KVkHSecJPcNz+4mlI4MH3xTS1IaB6Ng3gLesSCuZRXLbFr5ovnYXKGO3bKy3PIgCMfTc1K8XAO/Mx8sdKfdAxw80vvET3HBdzyf0s5ZN4TKQ5VVTF1NGBoAzJDaXz7Fj0DMcW/Eq4myc8HDVywopHkRnyGFdKnNTJR6W7osrFc/oHVxzcQHNOZfsGKqdySti3ucmwWV7U1Db47rALHQwnWl68DBmPQFZZnpsRTMOd8i4llPNF1rQuqiEsgQgfC6BSpOAkt2vsR7GryLjFdzEW9sSyHSV25835DDB0WeyxyPWgoN2QX6CiVc9MXnWggFNUU1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408f4qgz_e2etest","name":"fv-az408f4qgz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"02d6eac2-0a4d-4ef5-9195-f100442baf9a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c958710d-60ae-454b-a887-fc10544c55fa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1bFnTih8ncadQVfsGXhCKpCuHoVOzamS66+IdEYHplEFjHuStdaubjg8Eks1FF2jHHUx5+K2D7hkPhqVjl8bKDVMd/OK4wjttRGsXgdbobG5HzapKrtcUusvbdaeG6vNg5MP00mgGqRSZ5zjrwcMQCn2hIs+hLmIuPEJyEK6QJvxYU+6ngkle4z7dTXVlIwcJL9n5BbEYnpvAewEQI4U6XZBTi5Zu1kprF4aUyfnVck9fYcL4Ty0uInyTyOiW25FPHloBV337OXoNQok8AtUPJCodrayu88Yjd1IGCCmGpFOyT0wuIeMzcQk93LH+NMOGo57xhk3WaQV30sjSF+eWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456hbvlo_e2etest","name":"fv-az456hbvlo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a931a8e9-64c0-47d6-ae9e-24566e29dafc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11002","status":"Disconnected","lastStatusChange":"2019-09-11T17:20:53.0178146","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2b65484c-6258-4c2a-a19e-2f720216b0a3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAunfAE3IRFisp0IvvDF4zPQmhTUs/nfvKUWU3XrKNTkqqMW9V6QwYa5weLt5cLic0uucB9ImN7/cgWEyQMGNX28OmzvnktzBukUZSgDHCFcn8L6Q2hrBcsdmCbuB0ufUKnarV7QbxYxEjAR4rhWvBr8ADPY99jbdo48V/bk6uumjAhg6jhk9Ba1Pv9mpo3L+AIDw2N2DHmitC9BVu7wHBnlee1Epl4G9ukW5blTTrHqRq8MegIvRH8baHenmxAff6p/98VAX+Ij7a3NtM8aRS+FobkP7dpeICtd5swrr9cnBnie/qL12I+CxxYog16SVKQ+MRFxBp/zBKm2t0RsbyvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461013mj_e2etest","name":"fv-az461013mj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"174b815f-500c-432a-a20e-b168072a55af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24004","status":"Disconnected","lastStatusChange":"2019-09-24T17:03:53.1665542","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"5e2dab32-7ee8-43a6-b225-b2d9beb8995a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn/tEkvEFpFWQg6mM6/l5TJTS+/dSPExijgynAlyKJJKKIH8pclVMI3YUAyTEVe786eWQfGh0WdiT+qhRnfiujqPnUR8PmGh+bgRHe/T/4wRvvh1Huk8UlCoPSeqItP9l9L1Y5Em/5uLXWqNWDa96eSiNObUBiBaJ02dEZvUrRV9Xj0Je/VxMh9EIJcMK6mRQj2Q/WEgXnWYJQYo45TL06U5m+e7PFFoULBrRXlFYOY30VthmVjXt3pbDzsgpRfpl1c+bdU5p7PcgYwMtobwVE/X3KTwrJ/G2YvsodBjyVdRaFLCnaDHKahjHfL36qQMtf1CVL15lnRO3+zNXS9Q2UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461vwacm_e2etest","name":"fv-az461vwacm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"14684cfd-21af-4a82-b074-c162e1abe2ed","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29003","status":"Disconnected","lastStatusChange":"2019-08-29T21:05:56.7410452","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"5019dc97-e6a5-4923-b96b-95bace13a392","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvQSlOFL+n3CWfg8vHKYkDuHNGyciC6lfZQTDvfZiPoyeEdfnKQewuuRoWCb8gRTgrr2JfUlCKq0IsNN8/1AljhGXWo4NNGd/PIjG9JqiIH6OLw/94NwWlJuBcXrFHGuMLBW/epQsLY3ZAfFvtLV67E5qVmdDk1Cgj22WROTfqxjp24giZ9wADkX3KnUO0FV0V+rhcsTtMgwYDuknrX1eW7rkVLLtOmgHTjPCi5qCMZ0RApoipdhpqKkllbshto1ypM9YCoQ6YKESWb4EuxgAHdqcjGWF3KgfqSqQESMQhLyKoSTx5qtUSBRpCmt4X3wOh298uJy+4BrnDZooVeyhxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456yja4l_e2etest","name":"fv-az456yja4l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a113195-51c9-4f5f-887c-2eb79a2e0d87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23006","status":"Disconnected","lastStatusChange":"2019-07-23T19:20:27.0989594","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1f698387-fc46-49fa-9120-59750edee00e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArKrOD3fio+EhyxOjOURcHo+ULnQeDJS+QLPvmu0RRRyBIYxiMJF8ryMt1VS7TRdMR+8kFVQ6V1KFwVUOPP5NLZKecXQquCOqDTaGPw8hN5Pk4xqOgfo6xt9tANbGIg5ggP1mXkIsfCIKun2dlFKzMZDy04fJuHBBJwyB0cohK0xuWouyU8C6hjIwxEywObNrImzs0yS0hM5tNs4ZLLBZL4ZiopyPNjV/Uygywujr7HEODNjeCXsZrs9so4wCbl4qWI6ohUKSs7+KSJyik29fktVutR5ZQTadbJnbHKhhNaFNhNU7ZYXwBQkfh+CyYGwwYqdabjltXVvKC5mTxcAC2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456hfve4_e2etest","name":"fv-az456hfve4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97baec79-38d5-495b-896b-3767d81a929c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23003","status":"Disconnected","lastStatusChange":"2019-08-23T20:13:03.9172134","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"475a622c-ba01-4990-bffe-e5c2e9313ba0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoxlXGsqjIT/exqqVZTQtAKk6g9a+FY+CnV6o1JXcBV/M78dnyIi4S4mG9ftgcUqjTOUwdULplBF96dbJ2b3hZY1tNSWUeUtsyQp9zMuHly/TGBfR9B7x0eUkdmELdAo4DDutbJKry1IvT6gOLf70hY2l/1Me9P8kEF8yFyo70wBA95ZWemtolgCfqLsdh7qo5HKvBBPGVAQZIBmnOfJs6Zy08F6+EQvnHeIqHzioLJNmVsPbn9ZCg1s3H3MLTI6HAWMg1zVcrmrPphqbf3c/TeZP+k3Lq5yQMV4FFoMAcIMDmmMn3tDiEXqoXUqKonKMZcXMKb+ptcpYwM/MYN6LgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461026ea_e2etest","name":"fv-az461026ea_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c692539f-e450-48be-8199-708c4bf150d1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23001","status":"Disconnected","lastStatusChange":"2019-10-23T17:01:31.1050499","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"73a7ddbd-2815-42c6-bdf6-7dd4f0d2ce0e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5pwO71ATIaB8QYba7vL+qxFkUnFsWwb0fkgTb1FKe+Csbg4atbX8U0QnHTAQ2BJoPfYr/akDmx72Q7lTZSGZ9b4PvV/AEyNskt88GUGBcry8o/wyjRZUTizN0rZ+v80DOiuH8Xqf2Kqd47z8XjySTpbKDjLBruRXQnyGBkr47c1WUNti+ixaTkmx2YX18a7fyD/jHPTcyxREoRMhaBKBsnS8Q8g5pjtXOqxvmfR2i14JwO32Uv25lnmioQ0Blg2vKaqDH19Z2j5WAha+7iKBeBsjQQNdkzAvqax9suQadO0Y5MIzMU35inv+4AnXTN02BEYLDjbTUKGvsBgozsbGlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.25002","name":"0.3.1909.25002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"90989456-5bb1-48df-9f6d-0c0176d46a1d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25002","status":"Disconnected","lastStatusChange":"2019-09-25T22:39:04.2942994","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9e7f9843-a057-418c-82be-d53d95629b0e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA24XyR41k+8EBdm1a2vPq9gHq0b0ECjujWSODy19/DwkQw0FwkQFOwZN2pejuojtMinjOG96qJeq6OB+O63FpW5AIsZYgqVz9+cxjcqfej4Meie6ql6AMQMhMll8bKuqucdpsxX7BxWAF4dAHR0aCLfvdpSAylSj21xeY+ANISeRQf4oAS5Qx8NJ/Nj37Co3S6nE38vaJ1ap/1wmssb/MvTER4HGRZAge6FxWvSWmRejQIv3NijW3K3bHlMMqT3DWa9qy8n0VoAdLV0E/Um+rziBqPBbe5fgFCH7i7BS43mDOlUMQRy6d5LFmxLJlYV9V0aEKdqMVj+IcmyhutEZUxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4610bph1_e2etest","name":"fv-az4610bph1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"688efb7b-1c2d-442c-8b6c-a45971e11483","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.06001","status":"Disconnected","lastStatusChange":"2019-09-07T00:01:02.6658475","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a713eedb-dd1a-4952-8bda-8588c64e0909","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy639J1vHkYI1LctOTlS14EcYAvi/xpibDqs1zcjFGnevHR5dngrzNPFgcmJN0gLK7ZNw5u5VPedlSzi7wTTwlACtcRtVCrr96ioRnwY9VBoHlQUe1BQp8Aw5hdfntxSkSa8BKkdYgIUIAM8s95SqEaQ1ujcvZDqRISRWq4ceUasw2A2xV1R+qIy58m62kO52hqVlyIjdWZVTGNKYbK6GerZpMm1OIhFBukjAUXamEMjV5QriwzdFudr0Y8wRseFwM75RJasgv+7VZ5/Z0vG9efNbuv0eKJe+NVdc9ZQOU0Lu+5EWhzWE54TRspyNq86Yh3TxC+242m1xag49C9+MzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456him46_e2etest","name":"fv-az456him46_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"37e385f1-9179-4e84-b883-d08a009ddb5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16011","status":"Disconnected","lastStatusChange":"2019-09-16T21:50:03.6922685","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cac7c8ca-4c85-47b7-92ff-6893073f257e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJv355Fw7qUGIklTyQncs1G8aTORfh+Mo/SQ4Y8ib3oISc0CQTW3pWo/HA/gsgevGk5Tq4R1X4BJfiPNqK6e3fMz3ObBhE87jbZXJPDW1WzW68/FOwCPZQBHDFNRoQ8t2OzMWLoPIeGzSDJNxWRISO0cFeYqvTK/yxzx4vmig9rPCyg+7xLNeh0tO7qkIeCIsGqimb39EsyEoUcPt2kb4Wzu/QZT3WR6VAZTmyJtdVteU+dvJRzOobu433kL+hfclJs19EwHlLq+c9pDZlwGl78g8pWEIHas3qBKMnlo0qJ96RihY+CskqkPGs5Mudjb/TIYiqKRWPaCHNRbCg+DwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.22004","name":"0.1.1908.22004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a8275c07-493f-4e6b-8baa-ce57aa04801d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22004","status":"Disconnected","lastStatusChange":"2019-08-22T22:51:23.3474865","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a6a18432-5575-4495-815b-f92318b25dd1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAreJpMYMuX+oK9AG3NxU+ukCfxbdFdZ0q7eifjcZ41/KawomgVi0kYsA9Wl3VtzeuEtQP7OAHP1wwbFW91YO1IWABeXF9LGBULoSuKk0FwclZCaNUILjqdGqDjKyz+XBNRjJ9RNj+vzFOg/V75v14KLnvJqUqixveh/YgNNVxXDBXBnLGrWuBfRYpDASKlfWlprz4/bObMPu8IuVXztvI/tGXUtG/H6dLzdz4fRX+3qDOj4WzED8F3LTYqbfR/Bf4plDvuPNUpkgsEBWFnT5efuPxwmM9yGuVeoufrZAXi8T+boV95AXIKWJdsUA+3NXhH0s/9fNLgHTaAas6B3JGcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.22005","name":"0.1.1908.22005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e9c93452-febb-4da4-ab3a-2076f72d14c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22005","status":"Disconnected","lastStatusChange":"2019-08-22T23:26:23.5884354","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ddff92fc-45ab-4ef6-b286-466757c8c72c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5SJ8qncpqeSnV+/kEfKWwVu47lyfHDNWi1WOYUsgb+iDCetnkvV1irGoAJBv/XDznJimgwxYQNEiSbk5MnZi4QJ3b/nOdyexxMqWok6t7mKBEwgBktkAVePRaFmz/Z7+TKoPvK6k5QtABvYpyAPPnC2SPTvKjLyE/CghSnqqomUTT/WaSdblm2DcbtbdvtRQTs311EDoIqx+UhGDuP9cHvxi0BDmkG9rh+d4XeOxxfhcQLLTpdxkK5uoejZgsNELLQJyHvzXqpSUu2W1mNKwjNXYeWaYnAMsWoC1+t7aA1Y6MUebPWpnN12ZakglLU99B0U/jsSLl5t0N3/wS//abwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408jtzbv_e2etest","name":"fv-az408jtzbv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"901a1084-c796-47d6-a3e7-68bef0c028bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22002","status":"Disconnected","lastStatusChange":"2019-07-22T18:50:19.3435746","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az408"},"vmId":"0d8c7057-df97-49a3-939d-20cd2ead546f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwtB6R5bqz86vs7z1g2+U4+AFaXRygp0+U6KD3owsYyIO/sipAgUDh+3mD7spxvK0YvVgwTalhdAwExlVTahYwwBpRypY8eZ9+TmqlBf6W1cd76eHADjvh3K3ymEcJg4d+gyVHSPnUow1HoKnaW50yB+y9IMSVQsQ6/NAl7vWs9bXulFsbbOZ31Zc5SnWcBsj8GV/3H+C6m/TpcGyvqoOD+QiaNDGjqxmOWCv5DZplIZvlpAu55JJfO4zFRgw3SPFJuqZ1z62eE5nGl02U0yF4783dMgPU3suWDbEOvl2bxDnUk1qS6fquuY+HmEifYbzQfwjoaMG7c4ACiAcOvYr/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.23003","name":"0.1.1908.23003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"02eef548-7bec-447b-8298-5a63cbc10421","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23003","status":"Disconnected","lastStatusChange":"2019-08-23T20:13:03.9172134","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1971980f-e684-4157-b3cf-973dd94e99db","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAps/W3ZmACzkoXG6IcfZUfotlHc6bbX+iQxTS7N3h5ejpDwe56qE3zZB3VzyOkJpZKLH2rL94t4MaF3GN0wYJ0vou6P2GzW5tTIFgAUqG2YTzYGOcu/vqIHERVKX+0tdFVOmpK7DWsbUcOuGD4TV8WzwyjwSGxd5WaoUz0XUvUPNsUykQy+nsxhyn3rptZRBKo/s9nZtjgeT6czbOUJYtydE+1eEuiomqVA5bm+J0E36yqshoiq19kFVNsWjUHPvze708b6qJWH/N6iEyn/hGKz7Z/tdujxQZYY6q5pSukrcI1GeQBMRX4htTMRFLnHEcEZ66LA79MrRnDbXwbdRUawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4610pbkc_e2etest","name":"fv-az4610pbkc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"249e6d28-7be4-4585-9d11-b2d4329c664e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27003","status":"Disconnected","lastStatusChange":"2019-08-27T18:23:17.2983813","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"46317da8-70ac-4539-b549-5594782acb5d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAppaZ+YcHm1WDFtJDT58xwh+M9l4UHqV8wwdSx1El3+4poMop654KpC+muUHuuS09d9gtD5pJXszCqnTExYkGRt3CGrJiBBO+fXCql0fEdRpbTQvnpETpFLhVuDAd/eFy9H8STxf7NAwp84XtZOax8fn3PHvS1aGTQZjOsurXDfpPb5jFVVV+JjBO5lCcKqwdAeBNbdj0E7LNufpgSMl+2G38g2pVzTQ7oJ+Zs83mPllX1I0cWxjDNeXT73XGqzm9EI+Ft0DmRBC9ofsGTG+OlbwTfXU61RDnVBeDzUb8J5wYtPulTMSt1fVesVWBYcwbVQeY3K134gdhLCZtqOGYWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461wgv2o_e2etest","name":"fv-az461wgv2o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e8fdd2fa-ffab-4fe3-93e5-9e5a1dc467b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21009","status":"Disconnected","lastStatusChange":"2019-08-21T21:31:14.7809514","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"2d5cfeb6-d771-4355-a2ea-2a893e3077b6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqsgXPvc6AKOM2kWIf0VUfm9Qx0NsSQxhMTvX8AxqIc/qBSUlxELeJJ+MnX/ZPm75n+jHCOuDpvP3gTxJ9bqBx/U1TR6LZwBddGmIoP3LnaJUwMbBv9x7lOM9YDQXlH7f67o85m/r7DlFHwd3iLP3sbtaZ/VqkRRaxmiBwKQ+kKUrEPcV+zYRpx3G689mcPBtRbbC+PqBdBUoAI5I+HpOPD2uPo6iofyuGLe3n6ypZJJvktQBXE8LxQuNDcAYcPL5yZpDRIytYl6r+LvqdJB+YM6cCk9BfARa+8na9APXqpbrbJl/fq4Tyw5hoBXB3TwuikCYe+7L3VBOhki+CzJ0lQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408pk89g_e2etest","name":"fv-az408pk89g_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9a3b171-3d87-4ebe-ab94-fabbb858aae9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25007","status":"Disconnected","lastStatusChange":"2019-07-25T20:30:46.0622518","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az408"},"vmId":"e56c3c38-ffd9-4739-a5dc-a3be3040ecca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAutIXNddodT/t0zw4TUO908o2eDH9+ZVSSMKTYuclLne7iyXxqPlWJRDkeeU329Z7DVHZvSbOKsTHg7piQxCB/KPARi1dr00ty+XWN0LqdtYQUnTwgt82APJk0RyzXUVr7y43Lg7OxCTUv4Dh1cMP5Dbl0J0+OGPDaz2phHl8kJ53LtJatZKQxA637b8ZksBzH3LJmTZg9VZU3mC6jJWnVetMMTAchtzP19kVkD/HJ0tZXS32jL9scBplN6fVD1BLtNnLB6Ii7T/J48fyoCJUKoy7IkQjGQuVtUJsJ3KQlfjDDZjZeE8WQl5V6+uu5jsKs0dcxBhUX9Prq/uYdbQGRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46118u97_e2etest","name":"fv-az46118u97_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6ee2a3ab-11fc-4b6b-bd42-611f3a790f2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26023","status":"Disconnected","lastStatusChange":"2019-07-26T19:15:51.0697908","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"5de09ffd-089d-4f38-9f7c-7f021390bc5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA65anvsYt07lAEX03SJ3DQEWNDrkuhmggpd5QNHgqWzK46RmkX4ZyGMq9fSh1OS69xxJob7WkXH9wxSsVmjdz0lHdPYSeOico+w+1mRIIdY/J49q4zvJazsHuYZtcOZn5kYW6JF2XtKJARv4zNtK9YknhCh/Rs1Atk+VtQLbtiKg70Qt9WRC/SsEPRzoajBHISVnmmdTshI1668wuTNAcPcSS6CH8ld+3T2bZol9KHJ3A0DBKuyj369G6VJRkkWtSTfHovZ6ZvVftIBFaXeEKDYcRoue/SGPNS7bS2gwDN3LsxouaB9EETeLFgoLYXKUYE9P+VOPJNTYCtIr9QAXdNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.30004","name":"0.3.1909.30004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"acd5cf40-50eb-4d4e-b20a-a8e613450b1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30004","status":"Disconnected","lastStatusChange":"2019-09-30T21:56:13.3019025","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"dd3c6ea5-4f83-46ab-8464-4446cbcf89ed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArqKUUpgCgXAq9LrhwY8yC2UzGNf0Jve62oAzXTJfDOSltfiFjmA2xzJCxnLgD4vSKbpzwAYGvnt9tUBUWfq/Qu4qA/QiP+PfYP93on7EZzMKoFUb3QqTdEQvEuPiUWHdnorzPv5Atc1r7exImA3R226O52cBIYBNT/YW9TZqkeTJ2y7uCor/bCRPPxxfoT5lBATLxJFM1cipU6aLhUCOhCQW6uknAAWgjJk2ZUG6XLy1kqfcoVOmMOIQ88uI61baSadah3LwO+OhKyEsYjpbjEXRk4X2hLdYF6jsqO/IUwGve6RR5IumlAAAGXOEKrOzZpYtZeLJXW3CoCUZ9yMEzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4611c58w_e2etest","name":"fv-az4611c58w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"737e04e9-6018-4188-acb4-e03394a2dc52","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21008","status":"Disconnected","lastStatusChange":"2019-08-21T20:11:14.2031349","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a30a3d14-d54d-4906-932a-1688736a1ed7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwjCqoln9YxWHiJ+1X0/vSYaHyIiQyin5z+m1yOvEETW+B33ReEAv8XrugenpNeNhaz1D/C1Xroes9TTdYhCxip8KyJK4UDLkwSGxpibcXODQ+3gn2lNfbowGBNUNqFW1hkgObObBVjXNwkvAk2VkmNCsn8/BHYMX80Ly/gaBVN98EcQ+5O0bs3UPiUOED/v/kf6cGbT8dnYMCPMn9x9f3hVL+8I+dFO2D/xvqKv1QHfEiXLpnoo4q2wsdzd+2FjrehWfBhF0LgglFx6aPu0/arqXEAH2bD9ai5xJfW4nwyrIeGHeqwAOhvsly0UNsz9MsaQLEqv7WeY4Ny6Jqe0ruQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4611va3q_e2etest","name":"fv-az4611va3q_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"30aea0b6-afc4-49bb-b931-ad8ed2bc9fb1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26026","status":"Disconnected","lastStatusChange":"2019-07-26T20:35:52.7557392","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f1943385-862d-4c77-aaea-6bed06081049","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvEtriHAncRoXIy6ZURNSajNAzmLHnU8244zs6vKsRhQr0gglIUlJXY0NTUdWwpu0FjjsVcnvlI5gxo+EyqVBf31GtgMWDx7LKnlURBXoc+eWLC9zqoD3Mj0+dQdgvRjY8CcOie/GAWusJFEB9T8JjAxuA8svhE7JrHgjSObsENlTmgb+tMQXVWKn8+bnunFb05LS+x0JisrDOsnvou/W8+VZ1yTJXt4ToAsfXSV5n9rV5VCiTYurTPcZdV0mpWsiAfVHsSla+UsE2+6bbVtC59auTxDO2z+IQ2bMT2w/dTPn/++aG6/yZvQrh7IIgGtvgpSu3u+NMgNP3jljc2fP5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.30005","name":"0.3.1909.30005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c56fbcc0-6b01-4896-aa6f-55c1c88674a1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30005","status":"Disconnected","lastStatusChange":"2019-09-30T22:21:13.5842945","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9c52bf79-ca4a-4585-8bb4-7737c87add9e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9JL3JoYtzdzyPUFuc+IpPY6mIYNCf4JXdgL4vjE1+sAJDOGNe9kgQiwyArEnaxbA69N5MWZTsGLLppVfBPoy70c5vmHZDUom8Dv9deINv6pB8WYqESGzpjDSyCgj9f/vGBzd4AK8QoXfr+2Nyh3OlBt+DiMyPiWZDvGe9G0K+g29ef5yne8T97Qwth0mrm1jP6z1Z95/y6TuBodirh+yYU/bdP39u2IO//Mhrkrq/bixrhcwtybH9IQpmHvP2fZ9Zkh1UmyDQ9B/Q4wya6k183ymCcovNLpUSq/RC80OSYQkqwh508QGmRS/QH0m5oi9l6x4jEE1rkZKdz8wl5sPKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461wrsot_e2etest","name":"fv-az461wrsot_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"464846bf-ff99-4b9f-8149-bca2c417fb6c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04001","status":"Disconnected","lastStatusChange":"2019-09-04T18:41:40.1703534","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"93342190-d73c-4d93-9c8e-63996fb46886","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2AKXVXpqvFcoTCNglPmo8aDWusRZYMF8UG81lEj46uztrOf3j0KcyxCJym3IoWIDj3drwY/FF5epqRX3WkTdPGmbEYhx43QCHlAA/MFuFcmyIhTdgnf9+pLQsbK7EVegpcAoYhZ7hKer0t9mVIbdb5NnSTYX0riLLukhCGttK5G2j6tRqGybnq4xFblYqFkSsNXBt7Gsi5QZt8V9Rott1AoZaNnIO83tMgIlKSLk+r/RFcbXACEYpM7lUx2AVDRaWIs2Qdg8MNtzFWf/JEzjglnyGv2VcXGJW4m6YHMwWn017b/axc6aLdXxtkCT7H1V44iIUIBwx2xYGJdgs4ZKNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4612jxvh_e2etest","name":"fv-az4612jxvh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ae13d6b7-dfc6-4344-9fe7-88610a0206d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12003","status":"Disconnected","lastStatusChange":"2019-08-12T21:10:28.7090586","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"261d0392-8219-4b08-b6d8-3145bda11f05","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzD6DmlwBqOSF0EzgkAyg8lVAIN4oxwefVrO+GPAo8fcbKyxBEi+E5wcCbcIl5SviSzo1y+RFJIRVaogYBUsAAyCnYxRgul/9p8avBz9jTOoLFoJVkWSogqWKrj/wXkaehCIbO3CzmzIUx7VQiocuT1IKLAm6hSUfO3t36i8eOjw4ZFPTJms8/I7ZDygyM6kBWDVfvzTDuypl+rQIWu9nerfuiczzH6+kErrd1GIrJYr8USfFJAtZZQm5+fLpAubv5TgBhog/4KmGbK76W8DPo6m5/IW1gFspIT2LL7by2RChtD5wYxqRbep/12fKNEgysCvcKOeCycC1J3XTH+KJGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456hrwm9_e2etest","name":"fv-az456hrwm9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"89da4e1d-59d0-4fb5-adc3-d8cbe8ff655e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04001","status":"Disconnected","lastStatusChange":"2019-09-04T18:26:39.945151","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cf56ebd0-cc90-4ec3-807c-c562b2cc58e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsS02O1dqYnMunFGeXNSubqBhPHxJ+zBtIrAAVAlrFivoSSvJM/Qq/7+6o7YAk+c4ZJR75h1khy9WGZAmdJUoBawkcf6cmEW9u5iimcqU8QxKTemoeWRdsgSWhoWiD6o4kkdfqD5YDhqG9kCoRixqbr6U/lI1Kw8boPLYoOhqTK0VEBFkqYNo89x04t92uhqxcjH7ox6UZqCqi1lk3J96Xf1A8B4mkbQdUeibJhjGjXu6ehNfmEC4yw444KThHL5tLHYeG2cSSBUrU1IHdlGH6CEjYxAJYnF2LJGWyJZJTtXQaCKIJsYMcWWYQA1DMfG0ASqh5gffUs3rjk2TLxw/9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456htgjl_e2etest","name":"fv-az456htgjl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"645fb2ca-ebcd-4332-8a0b-4ec478cf0136","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17005","status":"Disconnected","lastStatusChange":"2019-09-17T18:14:33.9193746","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"981408b7-2b33-465b-824e-a7eebde41e55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1YTWsqI0xYG4RuholCFQDpGdsXApTDCKbDg/Kn/CKXZoO0h+0lgLRr4R1dVoGSFRz669yZFIaRTFAN1DgUkV+O27V2LbL/ws0Fsfyf+SS6y83QI5i/0cZtF7fGLYm6u+5ZoKVPb+8XB0IUpnfITEXZw02TwOlZ2fmy2YLfzdRxm+EFzTtM48HCGdaVSH3QBgnJ3DrvhYC7kyu6lM3aajJPFEnPBggym4Ny7NOO+lo+TngIe3NKDzW7a+60qLlViZ05RBr28HzszfKoA1BlpAH/AROcoz4kLubsobeU8gLMMqHBQS6KVeHx08ZoOAtHWH1OtNVzgEGMO/cRD/BayDLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.23004","name":"0.1.1908.23004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"990b1192-fe33-49b9-8cec-a2a329681a46","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23004","status":"Disconnected","lastStatusChange":"2019-08-23T20:18:04.0214026","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9a612187-0f2f-4354-93b1-0e7ccd873fa3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArKtY8f6xTMN7aGEkZNh0S5pD/zIw72QFTU6amdcN1KVasfDsiObBTFzUALQv0CUKI9mnql4JXyDhzPAOZeWCcoyj6/cNfGuZCWPpuvz6nbuHE5l/nw7DCIXfFum0gol78DbzLxBAQy3dEidFpYkRmd5Cz3DlmkucEF1eIk2VD/GxaelCrsg0srYfhUhe+4oV0YF6IcbSiHXbPRhuMneWKRoCVrE+W4Hf0hmfyjQDWz4qBbp8lkwZRa4Wk30NkYT2uBOgf2u0h26XCXp/0JHEZsBFGmbrb9Oh48EDYy18X7mBIVhJ7QaslsbDjneNMex50oV5ofw/k3D9Zip8NDjLXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408pmfec_e2etest","name":"fv-az408pmfec_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7563da80-2ab0-4293-93a6-ea0a9dc86be7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24004","status":"Disconnected","lastStatusChange":"2019-09-24T16:48:53.0139834","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az408"},"vmId":"186c0728-2108-4d45-974e-f6e794f06707","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuTJgUmEd0NjwCZPPZKqLhpftDgQ5x8ZFInlwnSyxD2f52eXES2AZv9zeM2SOPkxGVoXPWeW5oSFMWRrwYbMdh8tNf5CvvkiGiLDKJRTFLjeLBMiz5qbHw5NZiLoF0ZJFMA9s0cLn6tfjCdxOEhzaDNxSiPeerD8N9EylIve+pUiaZC2R8ldC/4agALBqRB3onjH3dqgjdBX3+pyW+6T/RFWgeofBagzIfaojTSsO6sQxES1sIaJZRgU6ScR9AnB5hMK5/Ek1h9Yw+F0//YxBkVzU2LUSchKOU9y3J/X6HfpUT3t3aAzOyeU890kHhEWtouIx/0C1GeZYGdxjH1pLnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456hva4d_e2etest","name":"fv-az456hva4d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"11d6333a-e5a2-458b-b464-55b28ab48127","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23005","status":"Disconnected","lastStatusChange":"2019-08-23T20:38:04.2829048","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7ced05a8-0287-4664-bb97-d4d30a4ec36c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyZ0RjXcUIes2xZspcxy4+uzndxPNDICKxeZqCqRUKWMO1ja1nJwzLgzlGdRd4I640PD65dOzBwmTXBbvbiPsL+WluzAJQ8tX8UMo65Edpzyffi9Q89WiUIgO+3myXs24dumv5wtdfcrNM9RG0S3C1N4s1oBi9nmuDmVmLfJi07BZ8QUMapUoaJAzkxt97Jel7YProHTmntjG9WHsvGjJnFjZWwKNekxw3m1MVLaWYBAVwhxASbOqtd3Wga8VfCqOxgRoZEQ/x/qRr9tjzvEo3wTIqZB6krYUAmwe5VJ1eXMPpKvIGl8+p/xpgNwLwz65VhzbziYp+lw+0EeOGA4xRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408px7d2_e2etest","name":"fv-az408px7d2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0a2b7ad8-b021-42aa-af00-4fe9e277ac97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26018","status":"Disconnected","lastStatusChange":"2019-07-26T17:50:49.0109709","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az408"},"vmId":"0282e176-a4f3-49d2-a2ee-a5bbdce1c5cf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3s/0c8wbXUHvpV3mqHH44/C+bZ5MbKIr+vFT02bmKsju6eA8bRyLly8samZiTPlomA/OUkEmIlaTyGb5asq+Vsmtw/WWDFHoVACi5uelE41fOlTvPDlvtjz30j2dVajRjsA88i2CxfNSDbNATRNsbHZ9XNVplGXibBpkjdZXPW+SC2Dz3DWTedzXrH+kYph81pTniRq8H+kglrFSWY2WYBH7Ie1RvXTVk0HtwmJgVhN9C0JkJyyumv2SkFLCiLMgE5pwrXW46DB5dKdFf+u7PYvuTZiDVeasIGj4fwr+ZiBBNj3e5SwB6322C6YnD40ISQXtBcLM8PVdDS9N5jKwbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45605ytf_e2etest","name":"fv-az45605ytf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4b062fc2-e265-4fba-8983-0e01c1723d5b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18012","status":"Disconnected","lastStatusChange":"2019-10-18T21:48:45.2935538","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"ce8be95e-0151-48c6-94fa-e43b40a4671f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlye/s1A9oqs+LgCRuFobl1nehoEO/5WFNUPVZrfb4XvmZpOSuF/gi1224V7isZ+1wRPzFRJbNApzQ+YVg52lPrfs6fpnglnCwaLJJnq88q/7T93g3NNnHReqgrhX+yBO74dOEoKdyHRYVj7+pg6PjLYyFQBAV+bIEdANLSlIdVUHx0OAitBaHYJ+LdVKSHKYaqC3SAVWwqJ4dAC8ovR5z8PF3RvzObydWILBWpVefM1Pty4aQ7l3JGWDU8mNF9b1gv/3ljOgzHvCY6/j9UijqvS05TVGmLO0DXdbUu6gfGZdQuR4T8tI2djZKNzCEu5tfxhGRniUbuWIiLNV3eh1ewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.30006","name":"0.3.1909.30006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"096f58b7-6fc7-41d0-827b-707a2bbd1556","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30006","status":"Disconnected","lastStatusChange":"2019-09-30T22:36:13.7973207","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"0095b1e5-b1e2-478a-a284-6c86d04b73db","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQgV6ei8z+MuBUwD8/29Arov2xHM3oyNKP9cQhnQJrGuIrTNQVYZQ3ChOaskclX6AvgSc0GNZDIUi1ZvaVVPnr8yZ5tg2VsYqciyMK5tpTGsn4qgI656YiA7n+Y0bRGyhHHgBs2F4X/PWK104EZWm5/010rwcxv0DO5Mv4asZXkQgJ5uDYItaUVeVL43prLE+ZFAVHImsXQ0Vk28NCdQFzAjlOIUwBMayjTlX0w9l/2eScCkOjrES/NGog5ESDxmZcAHOtqJ229pZAj7j7KSo4RcQRb0PyETLryU6dAxoIt3Z56wHFNKnOYy7AprpqRTUJv35lY0CV8oQMVlOzZHCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ylxmi_e2etest","name":"fv-az456ylxmi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e16597c-17ac-404d-9cc0-e9886fe98889","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30001","status":"Disconnected","lastStatusChange":"2019-08-30T19:31:05.0733897","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"722e5b91-a599-4a5a-bc79-ee4c5c7145a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0WWF8CVlBxgfMPB7eem//vuy8OL3SRWYu0vBsGTRO2P45qGjl7uw4nBkpf3tg43ZvOg0LFYZ03aTtQ81AVb1IwcC20AYl6L91izF75dTQGKQ5Q5xKx44fMU5QVIZlD5dvITHl3GobVcnKQst82ZMkRk1Ojl4iY78TMrldZBpEcuTGUC4ChCBx567fuRaaZpw0rhCNFB0WEYNHPSBH4Bf3kFU0Z41IemilC4+avJvd8c5jCdUY76hN3Jgw38cJA68JKt2N6rsJJib9mLLUXtGwqRBG1uMljmz2ytmBAkWeITlvcDYKvYnMx8VP4cxiB1DPqJBbxGUDzPXdxOL+NTbBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.01001","name":"0.3.1910.01001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d156758-2cb0-4139-98a6-5a858dc2d5e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01001","status":"Disconnected","lastStatusChange":"2019-10-01T17:51:20.1567878","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c5a2a78e-a237-47f1-9eb1-7ad2737bb467","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr2TF/hocvq4bvxEABDNJZTuXETp016sV6x6jEaVDxq7CXeLEsALd726iy6HD/AjvhNWtfvM+pNGIOr3MtGsmShqUs2Ph/UimQc7nuseOXYAcTbNLarWG8aCYo82Qp5Jp90iOt2SeIayRP/BM39f22mVtE3wa7qPLDwqftMMRPOTcjMZG3ZSR3iqdBTVZYQksHnsWFMIYcm39lZOp1nna3SCJ32VGTBXbdlzXacvc1L44eh9gSZp3AFYHWEil9MOAv4VJVh0qGluZzxHG0xbqVEdhFmEOo2lvcTF9sZm6J0ZNmJSggzAUHbMkMYZhmSs6yHXrm3YyAdS7L5ItykETbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456z15gl_e2etest","name":"fv-az456z15gl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e6b7be1c-3fa4-4390-a4e9-2038428cf577","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24002","status":"Disconnected","lastStatusChange":"2019-09-24T16:18:52.6064702","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a9613c14-f7bd-4869-ab02-6603b0b5e478","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt93kf4JKh1LBd4TN0pjMmCQZGUuxU7TbYnXyeXyFh5s0sN8/DP+W1NwcvchRcMjVrBUdy434sevEqli2Tmw9tZe6Bj0DURtkjpQAuDUD2UOugi5XPN0x3byChokxnzMlnpszBNhQ8N4ooTbGZBqKG3EpNdhVbH4y9wgAfm/YxcFz+zfRLAMzylZ7ApxxBmiP/+xvEYI6ta1+sPuEQFpM2/jnIMU7n/rwIhJBEDbWDqgj5RcKMBUcpIgfLtySmW5x4zHl4cnFkrVAvFPc69rTlNk4YlI405PiNJmOyyGA09zEhDoZw86jOrhlrJcmhDDpHDGUHB3+SgjwC9KcWVTDiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.01002","name":"0.3.1910.01002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f92c722a-a16b-4295-8bd7-f971df135784","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01002","status":"Disconnected","lastStatusChange":"2019-10-01T18:21:20.4790587","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9b0ab4b9-23c7-4231-ba65-fcff4059bdbb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArI7Mmri57j8AAcICAhhJ44fabDlvbAaFgA2saeZ32ReriRuloLW8Z0ervDyt6oWbGfv2mx9ydz/sy+9pA8eQ52RESXLDd07ZdCUsLt11UN6Mor8iZbasV5+TDL+jYcSWiNCqxQEAjy+5R5afM2895ZtNM8pa2IkwJKvzpGp8A9Cz0ONyeTZ4fa5TOIkR869h6dYlNR4pSQ16xHhay+sEW9mI4JFDaRRseLG1onkijT4W4W/wQO6POszVZ7gRQSTjuU8STi0uw0kqCyiY+CVyliJMON6YkEaVAFeOqBRYIogneodZ8lmGTxxdlXHXDNuCtIvYcWOgwrSHo6EtHY7ajQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.23005","name":"0.1.1908.23005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b327924-6d85-4d44-9cb8-3eeff6242a2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23005","status":"Disconnected","lastStatusChange":"2019-08-23T20:38:04.2829048","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"43613b65-9ae7-48c8-bfa3-b9252125cd94","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5m3lSKzam6zbVcnnsh0P6N7B7oDHFXVuDdoerTgY9K687oNcqrrraGZfBjjU82ASRoeQ6s//h/B5AnsnLWw51x5ojGF/D/PxRYPmb0VpSVp1kHF6H1LgyzS8U+4wkM1xYxh+Jy7anZNa9S75BP2KBEnkylyKsErSGzgsiQj5ApsW4BZHQMc6A9VRGq/7paoCJbOkuL2io5NXLNPam+hXKk12qzqP3M9s3CUVogCGBpbBIT49AKlHoYJk+mFbL2hPkYp+PjKv3nx4OF3jlHAxbFfZOcnfrQyVyxDulYQzUdDWnDrTb1RbGiw9EYM9EVLdqiM7iQpJRctT3ArVm1y1wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45606duh_e2etest","name":"fv-az45606duh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9590a4c6-b035-49f4-97cb-a2dc909a6da7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21012","status":"Disconnected","lastStatusChange":"2019-08-21T22:56:15.2400824","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ca062d48-d9ce-426f-8485-1ba2c0897047","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6l/JUIzlGu5JKOJDqqhyvVzADePfMKepsxw0LIyseOkUOUiqCDHAheQMmwgWFyjzo8t2DTlNgp0TOGBe8/ajwXMrGNm1ncLRJxFrtz3kZLyBO5jC+CzI+FWyuh8/93f4lPtTVP933b2Y0LOvT4W+Ggbo0Q5D49kK79TCaVDVk6hnTXA9WPOuysx4nTbiOaGQLRiFGL8zaxF5woP/GPiM/Bb6QFISdxFD9lINRLtza3PHNFXZZjsNK+vrYzIFHNR6h/G0vCv2B2x6ARFuBvG1qmt/a2b9kXdieSAoZ9Ke/K7IrI2uk4DPPitSHlBD5gimlXqKQRblii/Gr6KDBz5mFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600lgptu_e2etest","name":"fv-az600lgptu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e89cfc8c-2345-422a-ab13-4123dccf1822","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21005","status":"Disconnected","lastStatusChange":"2019-10-21T23:06:26.4058752","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"c18b030e-6823-4165-afb5-6e2bfcc5f5b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArcAOM0IZONTSOO0/9CsGz1VArDgbU64hgAhr1g08YZr3Qa5MNtH7cSDOWvTxWnymWTi2TixeIQQAl9l/RDQolFMBaIi9rUI2ONYDxokigEWal1kA1uxd+mVlhV9so+Tn0Naaa2ZhuekhPjxgIXFiQAhWZjPJlIK7cGQP3Pu0Jz8vC+r5IuEpAQDfQvyXetiAJM1744izO1YsZQDo9kmIkBfw04N4LVIu9tYXeASk+HMLyD3h/mPB4SRYVtknDHgQWej234Zh4zIHil+k943dLDl6Ey2oB+T33hPP4PukR8jUaMJgmOlR+biX792vqTc7dg7O13votHjaADAUKCo84wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.27001","name":"0.1.1908.27001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"76e2cb36-7312-4664-81c2-7c7255eb5c26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27001","status":"Disconnected","lastStatusChange":"2019-08-27T18:13:16.8550668","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ccb06ca1-1ba7-424e-91cc-e734f680f8ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2vqemjbMguyu4ljJ9ZiCy2olAccwbUT2irNDUcjZe1NaLtoxpH+DhLsoXf/gvY4EjTrx4FrANvktvKPbTHgil22dI5Kp9B/3Foqm7ZhqrH6h/0fm7+WGrt9VUPlQRoCVv+Sc92E9gL+n+bmhtfFZ+JouzSdiaZnhLQANTl1ZPOJf0kRCrDUvCEtEZ5j/+YW1CVa/ypAwrbC9bIMAly9d/AnQPkp8gLmi6KciSS4zM6wiCAeoU4Bkf/3bVxsqpzQro95IdE7qRH7WAAz1tDAlmoedZgw74V0UDHvO/yXhtsVcokfPxgDCdCg00VbbcGbOEzffzzZIwAbrlPWv/rQszwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456zg4on_e2etest","name":"fv-az456zg4on_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"41142873-c5a9-4e7f-a387-7d8e57243091","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16002","status":"Disconnected","lastStatusChange":"2019-08-16T23:51:13.5547803","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cb5cf89f-501a-4971-bd09-12a80dccf37b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsuDF0o3SnU77JdExihy/nRFtSFt3Q2byBYQPOvjYMPhXCPG/qgvfAwe9effrfrD3uZ2csXbOLHPGBJlAXsW4u5WghPC/zA5kOg/ux3ALiX/W2PSsfKTRnnbgZaZJ33jV9bUbHvutO6mRmBvPEYK3k14AKGkPU99N78rTSJdreabU4BmOScTmP6pa5CIDa6zSuXe/kCQq4fXz7zW/NMg4JGidmQ2nHw2aXx+JOQ8BoF+DHccHztDxrLl14jMzn0w9AvPoQ6r7Q29hppL40blMzQXMggBrXZKaYZ0TOxJ8h8ILi27rZvs6IbIrvLQbsvZbDsnLBsoig/5Fwv9uTcgPowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600os0t9_e2etest","name":"fv-az600os0t9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"910cc5b3-c35f-4e2c-82fe-947d3632abd1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23001","status":"Disconnected","lastStatusChange":"2019-10-23T16:56:31.0095091","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"94e0bff2-fe8f-4846-918d-f9ba49a64f75","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAodY7RNW9aTYb8UcBqlNsvpZWWd4EHc/CThKLs640Qz4Y5x04YnvsiT6hmyozp1cYedIGHzfzkMLjrLEA4Ap+rjjEf/GDyWFcZ8BZgMlmi90+Yf4WsNXbXTzyzbGMHRaHJAINzXAB16Sms57v448ic3CyBxvTruwirZbl3aZI0QXvikRdjdRdoYFCrR7tW1rZiNzPeerMaJzcFzGklvcRI0XrwSsrauEbtNeGZBWzqk8+VMIOp/f8lnGu7mmH7vU5fU/94gPge53DarAor1H5M2xaK3miNG63is9k1PiD8TTWs9HZrSMOyYR+rzOBgBlpcXAoeKDTttO4QhIjkTsp3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.27002","name":"0.1.1908.27002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f322ef59-6d1b-4f4b-bb91-d5327ef78014","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27002","status":"Disconnected","lastStatusChange":"2019-08-27T18:18:17.1760035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9f0dd74f-b5fc-4cd1-be06-95fb5da230a4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApf+xYnlTn0JvnVJrYQN08FLH90YZYEAzIe+Vaa/vHDFm7R0bdTuPuVEI/CoQElPbvM6ycKPr/OVS+twtE8SHVXjd9HBRo6uBxad0Pz9N7GEUTTOo8BGo5xsUuOJ34YCzGsaji1BAShJZR7tBRj/EqDjvywZva3K/l7DOBVclsLL2rBsrtAquFVjiApZo5yVcFsU5J1LbsiKflibdz6jrwVPjxkUddHP4m8lta+4ztTUdHwOPg7VGWrYEvAN8pcqARHEszFmKsY+6NYLeSPz3sQ6iYnpvVcQSQPCzC8M62w/7/PGNyUhMuGZgxzWNWK7UqNNKOkJmooxfKAoSYN3NFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4612kwnl_e2etest","name":"fv-az4612kwnl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a16f2e0c-a066-40a3-bb98-f619719651dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07004","status":"Disconnected","lastStatusChange":"2019-08-07T21:02:29.5866825","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f3e061a8-6ed8-4280-b0e2-fa702e07dcff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsFIt8+0lUx6YkKE304MVhxbBpZ6+uMvq/DF2YvjVlk0F0lUGmHAt0rpDXtvfLkUU+nBHESzBplq8DB78AW62AOqDPU8BbDAZmOQDq0frGCWktnw5UpkXdiTkL0szs0wwyY60qIVFXLDHYymVANMcQBFmrAzc0mPZq31REb49lh+S62lDBfqlGT2gMijxiLtJjd24FPOkkrEzZbo7ktuuW0i3P5TIm0FNr71SlOeloVCJaIZGhaEJgujzJHU2G99MZsGsTJ8GMe0af59ROkMNIgwl5kese6H5hKMOTBYG/TGcWoipH/7BnPemvUnImnHzMMuBkA7XrXie4Hs6RSxYmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.27003","name":"0.1.1908.27003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a0d2378c-97b0-4d37-8245-37f68901fcbd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27003","status":"Disconnected","lastStatusChange":"2019-08-27T18:23:17.2983813","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e1a94693-0720-4257-8ef8-7de918293436","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtHF5kQu9fgFIAO4whIC0OTOaK0zMkbtgTABP1jt/X6qBe77cWE4AjqlsM/5m1KcsrJitiVXnX7STjjtXwrmODigq1DY4WUsvMehyczhxdOP2Ejz1VJNm+BwESria8dwI3HD6OThI3LTnGRqU18fm72p1gOLOENe4rNTPPHlJ6gfI8t2UW17uhWjX/4Ct4wZyopp5UVKrU6k0d8iFMxicdwqX7edPyxI51DPBPuvEiV79BGBZB0/nxdeOxq+VR0fi5SKCwoCTAdf2sMZCPnw7pr+1FZNmPZfgW/kpZOSlsyVbQ2n34yFxzUNTuUT3tTXzDUR4N1HXjugiz/wvmjm5vQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600tx1le_e2etest","name":"fv-az600tx1le_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f88d6bcc-8f1b-4b23-afa4-ec5c37cd135e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17008","status":"Disconnected","lastStatusChange":"2019-10-17T20:43:20.9250234","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"4b5f5ba3-5372-4259-82e9-191884dc56ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA28GIGLmo5erJuN45+S1woWlz+KoqHVZaO92C+0hT+MpV2MXeFAqqfi9pPAM+odcvhCIideSppLtUzZRw7NjZsvcjdC2i/vz2x8NWsJrIhBjp1W96xa9dlYoYOReuFc2nNyja8xbGqYUkj+uDujVDaR6mAeOAzlqS21dz5Ph2L1AsThLZm7b1I/GMrYLACftwIKMV9kljf9JWzIz9+9g2yLctML4/fovrbnLevjub/LWl2ZXKI54UXJwWjzbccclZqfolJYdymmDBS4wL4DfrC5CKq/niZlNQWxXzYQZkZmuj7MB6IkXrsYhaR2fg2koiMaXxmmuybE0BHvZi7OiJtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456i3vld_e2etest","name":"fv-az456i3vld_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f95b45d1-8a2c-4b96-9168-3cacee1850ba","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16013","status":"Disconnected","lastStatusChange":"2019-09-16T22:00:03.9367476","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"37ab8ce2-cae1-4b5d-b2ad-df52de0a0a0c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvrzlEvsZqIlXfl8yPZE26xn0TEdTfoYu6jqtuV2Z7Vvn16mVmb9JAbzumpW1rq4KowWmpdiyKu7TUkE6nWPVYfkfvacfUeIb+0FMrA+QyIlyvx8Fdw710ueiLZlbCbQOhF3ATJJzoj6eJskmuuFf9qKpvLE1A78FkP+t3EXr28wcuHkhII2yXpCae4ESLnCuBcvFtmSN2b3bkshZwSpp+HPdwyzli9g4gReFrhTEjjPOdKI3jcSmCksdA17K/0WW1aJDs+xDAoNburKjP3tR34ttXVhTYvzclkRdtdIhJiU1F4/EbqlUfj27O5T3mbfh43IlVK9ybhXaUQxE7WJCRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45606ny9_e2etest","name":"fv-az45606ny9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"45aa5b32-7290-49b9-9be6-5d8f185b0661","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25001","status":"Disconnected","lastStatusChange":"2019-09-25T22:14:04.0472897","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e1639a3d-33ba-4120-88af-8de9ad745145","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqLmDFeauBfPyZoQ8CefNgcDGgdyBr3RtOs2nBm+kW47pEUkoM/QtXkNM2cHItHA0GKtC0/Ex9tn82NSfx1HQEJOTNWAC4xpo60xLCml6OS0ahjJFLT01NO0P3+ZYowjzk9YBA/tLSsQ/ZI/IQCgjhK9dHRPvveK+TA2grXpGayRjpp+06guOBeIA3XrydP4FPp1Up+2CcH56LCeMvPUfzCe2psV1vEMRLibQa7h+8W4l7aGiz/zZfxVHX/JrIexTSixATK1ajjb7Exo+qo+eUXfV9KxuL604Uqtg3ICKcsSSs/+mOIKhS350NXbYh7XroEkmoBu4LeRjnpHsGc3fkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600vrpmk_e2etest","name":"fv-az600vrpmk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"81097a71-7042-4929-9b07-3e97aac272de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17004","status":"Disconnected","lastStatusChange":"2019-10-17T16:53:18.7655273","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"57513f6a-bce2-45e8-a28e-276168cc6c90","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr2mYFoCKcJITZ+nvbHzeyng7TOKRVbFPiYV25kqXqBjQnCOfU8l7DDI7cB774VQw9UtVhUMv/KOyOvgA2lCkE5b+Gc5m8XpWfMnmCTaoZCIMomYwFK0DOIU5hetGyRIqXkORHfjXfqfWakHrTRQKT2BlbziPxJ/u/CqPZ1XlN4uN702iez7s/dd1WxjSVxZ6DLHM1pPxW3AtxgcI8HODX68N75PIL36d/v8UtGsijk7InpL82FfOpetIK5GD+TxTh+Fskg4GWoEXexf7f/gAXqrszHPUbvKDF9EOn2nTMyl33a1gEWHdqlOjh60FG98lTY64vBRahkpRn2unYHnJdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45607uk2_e2etest","name":"fv-az45607uk2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9de9165-bff3-4208-8c66-5b37448682d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17008","status":"Disconnected","lastStatusChange":"2019-09-17T19:19:34.6307992","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5c629f0f-58f2-4604-9386-5d1ec6f63a25","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApFALDmFVZiCfC1GDyTsi2LPK39CCa+xrJEgaK4bykcySwJelLJwXeRrUbp/PoVrrmBM/oviF2S/9WLcZPmFARzgTfazo9EHQtJdI6Z6FUjw+ZTzvw1eXn/2LMacGpf+2a4FcpNT8Ap8K01E5zPUwAEF44rDdU+CxNvNqp3QFgQHm6ISY/o1kgFMSIFwddHwCZ1J7b04VDfMb7XVux3XM45s+b7CIxjCQ1phHDbiGJPhn5z0NSecLCkykk/Y+hMI5Vq3J+eYdfxOaxvUaZaBI2l8ni7NIGJm60RXLw4U099g2useiMND2Q8IOYFWHJfJwzEx1cyWCaeXg3uZ3Ok/xiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4612prsb_e2etest","name":"fv-az4612prsb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"47f311b5-39fe-402e-a304-626bb2c6c83e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21002","status":"Disconnected","lastStatusChange":"2019-08-21T18:36:13.0966468","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"da0f448a-0562-492a-8689-c832266e54df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAprcrf33zmhaapaFikSUBMKCpxv9OROZOxgSTuizRSF3g5gtTDLLxT/YpzPeyy/bWgXtN/LF98GFQQoopZu/ed4BGEOC3GTrjLMJnshL0BCvB9MnUqEAVuF8EDZ8LAdcbrUeliMXwx+MJQ3Fh8lSse0fGRTuICONIMBNfU6ou6Adtx/9FoGdDwkmYdonE7P4eCfmuAuluxqu4fiyyMXjsYDidN6qM7PwD93vFErfgWgWjw/sj2s6sMa94Sb/AmG+hlz80o0bmUs2UKIBMZK09krRzRltrTfDujmSudA/LbEW2M3EBgWQWRKkVmTXECtPQGLBTrSmU4H3DP3on0oWgwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4560keql_e2etest","name":"fv-az4560keql_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dc8b0083-00e1-4125-b91b-e5f15b2dcaec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22008","status":"Disconnected","lastStatusChange":"2019-07-23T00:10:21.4719415","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d8bb4c04-6e18-46b4-b89c-e50b8a8f6b68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2zv4UDnehKsehbRG0jX1HxlW+mNuxSxpbHLVpWgHaUyTKyWd1tNXwGqDFidx88djwX0cJETpDwAyaPFMBNF1/4Ay3EdFnKXVTuIel3gEAkGKVvTYxvmETuh2P037HbJFskDM7n58FtumocjAi1OZ0He6aWpIXWUh4MbWd5f70l2ielW0Q6qz/3Ary1b8XLJXkHa2qjuzCm0WgfJWkt4giAs+2vQAWRQR6bmHeEqyFJdkhedoZmagmrJ2AsvSqZnj1b5j2n4NSNYAZQGbUqVl2xeOLqgjH3+p4claw12U7RvkwJUw7PF18I331i35FV/DuJOjIQUO8y9jEKT4BMQaBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456i54ml_e2etest","name":"fv-az456i54ml_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"909bc677-286b-4270-9d25-c60aca282e4f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24005","status":"Disconnected","lastStatusChange":"2019-10-24T22:15:51.3478374","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"00dc16d9-933f-4a0e-8ece-2523755f0706","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvGr8qF7rqSkzX8sKVa7jV21MSNdENbJEoAB+CLCEX2QbcGUf1B6Kp3iFim/JZzouMzoBi4k3I1zsZD8czH/S6d/ePj+S7d3iBLfF5Q2s6X33fwF/ZiMJLZioDMyTEJvfjxzgEc32R3zevqGqXSuH+01w5tue4PPiLBI43kierIAh38Q56ZvR/LmdCljIeGGUaY74MH+WFOTdFvfnmI+DA9h74T/ZE2oGu6VRvbjr23UAHH0jXQEw9cST+RzrCwmVNyUSaBwzqKhFCX+0XjBzqNrtoXMNflIaFL0/G6gDv9fz6w4MP8UrZFmqzl1/HRnhUf3KQWqFfOA3UYeupsOJ3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456zhq51_e2etest","name":"fv-az456zhq51_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1a9961b8-1031-4d24-9632-112f2ebacb2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10006","status":"Disconnected","lastStatusChange":"2019-09-10T22:42:56.2232882","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fff5662d-c499-4f64-a393-e8ed2c158b7d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyr60Fha4cGv/j94rade76cLWikb/hO6/P5CWJz6ebwwe008fA9QTdPtOyTXzLDRTgVll6KDoMI/fJ2EL6Rm2IM05RIuPE8AmxBOb7003zeCA97Jm+CI2N0OkvQfPDYTo5POJaUG+e3qWlBYUAXlnzQuTE3zr3ToQp/C84J/+AqqEjaGSdjfVO7XfXLfSYltJ9KrkozTgVd0O0Sz3POg6Yn8rr/HMu5uwolcMovM0SVB52QaMo7GEK5W8b/r9y1WZKslJEH1uYcNBhkL2cq6zcgzAkruVG8c/Bj48oNjnJQ8VYjhFZiwb5fydEDn9Of8O96Cr2AWh5//fIofYF9e/JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.27004","name":"0.1.1908.27004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0d6bfec0-b0a7-4938-b14d-f74418b21fba","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27004","status":"Disconnected","lastStatusChange":"2019-08-27T18:48:17.5301339","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1b4b6ecf-a8ff-4695-b937-173c20465464","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyF0qguX/4jnMAevx2V6VFoQQZ/onbksQ3JCZ7QSd0LVmgZH72rx8SE9ZK2vhuhohcBDkBXJuamByJKh4MRTbJxVk/xrx5yktRniw1FsLVo9Eeyq237d1HRX4S8NKH2olO1zebEOBaCPHW185ZawrgXyQyOZlztnVLSqIQXHx3muJ5N+qrHQXQv9lSzOIrzr71oYXfvVHRTGQfAs9Yi8djnSBgXpEK86im/JmDyvtf+ICCps1t6A/BI84OCfJW6uhMDk1SVKrBCkYAuVDc6ePaeE0vXOyxutfxlNXu5sfE3HqgDVCMBpk56Rpjq72vdaLI3XhJfFxoCQ4WNLjAlD0QwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6015w1np_e2etest","name":"fv-az6015w1np_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e54de04f-cc90-47b7-9fe2-373a0c3a5d47","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.15001","status":"Disconnected","lastStatusChange":"2019-10-15T19:46:20.1802967","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az601"},"vmId":"6e2ff775-5f5b-418f-93eb-8095e1375bd6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArWRogrW+mf2OMpl5lP9+v70rM7Ad3KGe/8+ZwFvFljYjmykb/G1D3g5emVskFb0q8F7ZE18PqJEUEOxETSTGYsCiBS60q7doL6v0C32oe7WUEobz0BSxymiWXNR5FwA7luZEzT9gqdh357bG48UkVoOUhjxwx4MYhpjRGjHvqH2EykTlxz/uWZFkmvxJxuLdwMpvP2XgJ71PMygE/ejORt37/NMv7GBD5RGl1tfBAOcWKi3LrR2mHjnlTwwc0Ad5ROl2vOSqXi+tQ9CTlBGjCTzCgehYP/YSL9sWQr0+OgQt9ORQGu1y7ck6bc71VioWMINPrAMKs9ApX8mqjMnswQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46139dsk_e2etest","name":"fv-az46139dsk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5fdb987a-0871-4de8-ad54-891bba579311","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22009","status":"Disconnected","lastStatusChange":"2019-10-22T17:51:34.2694146","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"403998f2-a83b-4680-bdb0-838cb7e1c5fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0ghjP/Y96Sfr9lguK4mUSpvRg41zHoiu8Fk1ZxT0R5pacs/4zysYcf2RX+bthYSlpxYnet/h9ahb2iQHpqLsWnpbOXzz0vqOxEgqmanx5Jj/VpPrZRsAc9i3Of4ML5z2A92DhzaSVN+tIV/ywkhX5kUGrQkSQyxvChGRgfEqTOycboTaJP/ka0wbck0xi2n7zTnJV3YUAe3vfA2VCz4xQs11Ts+AkuofRF4LYT4HXAxrr0W8Y5quBvKe/oH2M1cjXObENtupPWfAg3c9sd7UokQQwh41gHnJiptUp9qvBQ0B5G1cDm0c6/icWLGS0T2FDqYslCdC7tiVXqf0GhkJ9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4560rwxc_e2etest","name":"fv-az4560rwxc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9dfbc7a2-309b-4b6c-a4e5-71b8fd99ce49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24009","status":"Disconnected","lastStatusChange":"2019-07-24T22:05:35.9872965","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"da4dcfe5-33be-47e1-b91f-6ee11ed807e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA76uylddVeWQWLXfFmp0ouIzCZxTnk43s/3c0bBoXdJoWROIwiTL6cd58uKZkfTxcvmprKYnqRBIRgi8YjjodN/OPUH5knFjXwMucRdvxAfB4Ya1/Lf0a8SwsokFllJh6wps9R7un7s7EaDvBCTrEcImDXwqmDJxMyNURj1/vVfixncY30oPK2PBEICAfJcAWW8ZC7lkbTfdhtHutqN+X0kKUmevuwdYfbK4gFi3K1cy8eAXaOwy1Ln3I+4zwKxZaHxz4LqXIDJiSqSf+LBPnX/h5lxdu2Tq+BduQp0KjLb3ibqwv5rMuocgcZgI1sXDydC2tNrmm1o8W5/flWAzhoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.28001","name":"0.1.1908.28001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aa2b0313-dea3-4fd8-b489-9cd409d3f341","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.28001","status":"Disconnected","lastStatusChange":"2019-08-28T18:58:24.6933046","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"03541806-875d-49bd-85e9-d88812157059","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0CfX3SfbMaJ24a26f50nHtRTBMxdaAJZUEjbmNT3SBeFu4uDk3lfiuTYN2w9EUNp2HRkWhI8U1tK270zrWCRhw4yIUpj49AahxISqGhTRuLzyrpibekFwnNI2Axjlmw4eC+210Emcc5uPdzBuhmGdqbZGsTIyZWBEY73gevK13s+mQ5Z9124zBD1UhN7BQWDOrn0X4UTQmpMd+navG6SIUQeKfer3ZPazZIDa2ZrP+CFNWGJzq1xzIwK0aASUJz+In4eqIotnzhDsGRhfx73LKE2znM1I4hJUTnAQ60Ajnpzdkyl8lCbIUAHKITbmG9lhMsnDOZGMNIqD+25sdbb7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4561ax2d_e2etest","name":"fv-az4561ax2d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e2469112-cf38-4297-a512-20d75795f5a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18011","status":"Disconnected","lastStatusChange":"2019-10-18T21:43:45.1611942","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"587f2025-568a-4b74-a353-dc287b5c3fc8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz5kDuyXiCcO4UI2rf6htzbbUWujU8bK7/aQS/g+PCkAKaBYZcVtyXMMvMvu48mb4ikp4e4YY6Ud5s1QtgM+NumpeGnQ5jzrgLh7SBfxyqpeRugpc8S5/6Fk1cBp7fP0ecNYsPcidp/LEAqIZ36YGgkjTqQyu6kgf8tg9fH1EBs+Mw5qzIleZ3H5Vi2i73NbMMEJBW7Xznvd6oZEO8fs+OeYJyhXAaSFJvrCiAzLMBLuFM18VwqQKXWifpImo56jeZzmx1F/xKxQAcADt04Jgmwmm3stwnilKTd0Lg++VqUTkaNtiptkuDiNqmS/Ir20Sts9sYjlkEsuuM3IAGRTn+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.28002","name":"0.1.1908.28002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53ece33b-bb74-474c-adbf-6caf6753269c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.28002","status":"Disconnected","lastStatusChange":"2019-08-28T21:26:48.6790284","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"41ab9f8f-7e10-43ad-b045-07015d8892bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArZYDQo59kMGvUCfbS4fPX5ye/T/5qd/7p6vwO5JNzgykl7Pwkh6ASKz8l62awu94ysu3gp3GaImq8xNBZnU1FZja2xoE8Q3NrvodZLxQBj08Ke97JHPA8z0WKpsc6IEBtawRBDyYd/c+jaJQc5phpixdoMPTfDsmw56lFdJAcLE86mL/iO8HEKA2KHFCAXYIIKvi5FXZs0BbUfJnSos1T/k21vobA58aiT8+CCKtqhex2fdhxrFmNVaPkIYrQZXVU4gKN7uFa9hI15lu8Ge0wKN3GQt7HCHg6zUthf1CyO1Zo9OFe9n3uWl5vfDwQdC/buA3n58DrgJ1pyofuPpRIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461wul9o_e2etest","name":"fv-az461wul9o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"64ed55d4-2734-40ec-98e6-39143c6cb50f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22006","status":"Disconnected","lastStatusChange":"2019-10-22T16:36:33.5344057","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"6d0325a8-980d-4ec9-9d02-9430f13299de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArWuoCmdl0T5KMLkvWzuDSV7JwR9h+69mguzSSjDnjeSkvPl3v+KMHTqkSfrYffElJaArrp16tj6psAZ1xQFW+QuhRFhwK0ZmzOtkB13yYQkowVaDiqjHkB6k+Y9TW8FXxFIc0T8XKo+v56SLhNiGjibE+VBIiYkUhMD7nrUc/QOm/fUloLU9SYWBQ8ALV6FLDqwAB8T+JROXaQ65qdU+Yknij6wzTxv5AZXK2kqU8ffuzwc66YZ2WUyJUhOHyA9R7pbLli2grvQNaFCkHO1YWdQFdHGhsNfGoO9BlzTsZkoIK/I09Oz74bOt2ktRiXg43pY+R28oc03IkvyKuTVGeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4613cv0i_e2etest","name":"fv-az4613cv0i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"03e55c75-7155-4e17-8d7a-330b94d4d6b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26027","status":"Disconnected","lastStatusChange":"2019-07-26T20:50:53.1701887","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"42ceb7f6-681c-4c80-95dd-aca4ce8371d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlmu1C916nc6z1aHqGKQL0wuvCrlTb62w3s2WPayi95E+/RQ4J4Mf41gP4eiiKzStCrNIo99r0FQ8GoA2pP1ZfdTymlMt47rsatCC27Fwg2XKywIS9dM2NdIuYoTL8/lDFRhzw6au+HRlWbdpJNdGByKrI/gigQ/FLelE83VEBdmZ0mBTntS7shiMQe/vCy8oED7HYLu5V+ok8Tn4mBwWf7rQYEEBGdigPQjjpoctTsh1QH0dOFSJN5jMRs8DM9xdOvhL9YmFeY5qDLNnjOXG03vb1nDpwJvsRB5oIt4q1r1XDc9xJff5AR+agLZBbbZy52bSe0ks/2Wh+1SNzqeMrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.01003","name":"0.3.1910.01003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7901897a-4505-401e-8749-d46bee32a3b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01003","status":"Disconnected","lastStatusChange":"2019-10-01T18:56:20.7261168","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az408"},"vmId":"3781f838-9a50-4858-829f-32a1a87d2213","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt+UpbmFmLQkfw6DHj8Dmwmu5cdX21IHMAk7I0dSdaJ8d98HUUlSbIm6+yzsQIxdO5+lrqO1ipqwcoIkNeQnA/F8I+c13Fe8I8RdQqsFG8IQwzTVIoSOjWNj8/QIYA0c/YeSKG/d314mKaCpANeUbFymcsbE9vyxRtjIFC3M+fVAEWPyCjZWmFZEqM2uAS2eVtj5cHu3rlVhPy5izxh3DR9KhCk9uiUMRKJ6m9bYBMJR8XAve10NOn5EBRAEq2MVKjSkHPBa9OPOEGOCfsR+rtgyqhFG271/VDo4G1yZEyEeArXxycSJ8yFBuqpelIdiIiphO4cg3gDv4A7+YkrJBMwIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0din0RADgUSqpsOY1kuTBhI2td8IcYyVghGQl7XqfvuOZJ2KLO7u8XMvvudtUIlz96CqfTuYvg0YrNbpirAUloPpoOi6up0Oh2VWZVKUoupustdDI25yXQ7bw6bNG1V3SlftcOMKx3P83NyNJ5npjL3c9D1nYgqym%2bR%2bvrW3G2tYN%2fqotqJph3OVN7rVu%2b7m%2fvemUVuqy%2frQCeyUF6oS7fesVuYRmVj8llijiWn5pkXMuhFHJU5fv7R7Va%2f1XlS3hhsYXmAQ0vUhWsOG%2fk%2bChIfo%2fzmDXMA8E6%2b2O1%2bsOFw%2fw8bL0CB2skbSCPn2OqEX17Iw4KufGPQwZ4%2fojV3XHmMULXsSyDuunooWGBvBkibxbmKQ6N6B4MQk5TFwn0U4RoRnlMRLNJ5MsV0PtJcbTAjO8eMV0mm4Q8%2f5yNlec3b8kmOfZwBPEMoArQ8hQIAdYCNhAyk%2bJ%2bBA0cg4%2bqWZhmdgoBQUFBSi6QujKwskggF%2fSSFiYQzpWBJ%2bB1RSoDhHXzUBVkQQQAGzgLMYNKcxBsiI9ayYo4vrJNHp86S2vwJAFNcfeX4RL%2f3lM2AqdutLA2WgA6wMNP7hwELCx9bJN5SoySop%2fgl2UbBUn%2fW7cMrs%2fF%2fSCJdHDC%2fsjxsO3t%2f%2fAg%3d%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20230.002_CENTOS8","name":"0.11.20230.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8476c2df-f693-4b82-beb9-eb2ac445a25f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20230.002","status":"Disconnected","lastStatusChange":"2020-08-17T17:57:36.4415671","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"7f450245-22d2-48c1-9340-289408a81dbb","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAw4WbMA8AgXReDKmPbgT/q8jLaIxBzr5m6kf36AJoYW9koHqRuSaWeAOuOjuAtqxX7pe6fVQGV+9scV601c3oH2f9fixNotg8Bp7RRix8Q9KisAg1sP1W9qcVqe66oyKGSQm7C4rYOaowAO4dP0Y6vebLVOk9AtXBgs7M8hiQZiHAao2IQSSPcU1RWbZbvtEfiXNRhd/sNeKCkwF9GVPgN3+jiqwZ9ZzD8j4jT0ZQKyIz/u5W2VwwdB7Pg8GcCnLe5tTmPUH+dAU015eHeYLb9eHYxyZ1TjPOcGW1mRLmtF3u6NVToEVgHVrtY5UgMyFrS50Cy93fJw0Ta/R9vk+MYwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20230.006_CENTOS8","name":"0.11.20230.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4696c3a2-f8a3-4665-bab7-25ca551e03d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20230.006","status":"Disconnected","lastStatusChange":"2020-08-17T20:59:30.4561857","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"b948906e-dd23-4bf8-b039-4f62b168395f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA4gYOuhUiGfQJjd/sAMMbpl0kYoYq7HTS4g+l5ym4XXunHIWsiHePAeCaM6L0PYSvtZY78fUdbgyB89/lugAjGPjiWjdsrScS3cIEFrpe9PIvhjydp1RmdMCooiXBUOWG/jDOETUpuxPIyKapHW73f3dC+boYy/bj0NxXZMdo6y4owuN1YAI1jNi12r/yh1NcR17a9wuNtyXh9XbMiBWDmId5cLQHdNaR+d9TYak5SMoMsaFkKlkowhedKtjoeORXar93hDV1DlpS7Q6ZdVwZZamEGiGnkelsH+UlANDwj4jtlss1225PBEgt4vomHyF9DR8rtDxd+znE/QakniQXLQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20231.004","name":"0.11.20231.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f6becc59-01ed-482f-80a8-be58f1811bdc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20231.004","status":"Disconnected","lastStatusChange":"2020-08-18T02:13:36.4544887","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"267c389e-33be-4bcc-ae54-305c47b38543","vmUuid":"B0C61338-C9A2-4648-B9E6-E9FB6A0FF880","clientPublicKey":"MIIBCgKCAQEAwZVlEjTSUe+F5cGRM83xkwVHo+HrLNOLZuRPpwq3KX+eHRnNQ5X4bqiA2TR9ecHeYt0q/GflFFsEQb7ziDCvVJraCoGHYwZSk5n9/mlFgERMJB6xMD/s/7gHRTJ6V8TKeyZKQ7PCxnY2cWq1GP6C2CMgqUb38cqTeW/4xfxkKO2bklQlI/p5I8ZutASGWAsdqCOBykX9w84M2rGGaAW3zGl95VnCeH73YWbVxYXGstbHOH3CKwsgtcUBOm/wVxT3GK1LKe+viwEQfju0m4JpTUNQdgWpf8gXZ72VWPckuhDhlbiV47wG7rcGjb2rBu8Yn1QW/eh7gm3UCR4L7ejzgwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.lkroqgmnepxudhkyn532hpsgme.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20231.002_CENTOS8","name":"0.11.20231.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b216c98-6f87-4721-bb80-705d945c8156","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20231.002","status":"Disconnected","lastStatusChange":"2020-08-18T17:24:24.4382303","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"9da81ebb-ca2d-44ae-91af-3867d2c08c54","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA1guq6On6Q8Tka27QCVhfXAO0svYEhcYUdX/XjuPR5rPgLRLeOQEKd/yWtVfB8+B8ZqA69ZacHknihQK/oTm7k/4BEGrx1wSuMU6rrFEx8s7wd2mYFC2LeI3727iqqDGrTLGo+gGH4dn99s7PU657ab9gJlVHQ4vL7Yy0AwKs6LvLP1T41Co+VnzbcVz7aQ1d1WXpYpxMfNWP9Lj83kW7zZOEPOg18EBblTx8zIyquTElnyY+Ccyk5ID9pHpt++8t2MF6U6b8mxFHUZgMrTAy6pnK1FAYrwUWEw4ToZZmEQ4krFk5ekeG3TqcDm+GPoNbyeFN8y3Hwp81t8Pzf3hrMwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20234.002_CENTOS8","name":"0.11.20234.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0fb0148-6bb0-4f4d-90ff-1d95f0ca645f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20234.002","status":"Disconnected","lastStatusChange":"2020-08-21T18:54:39.3570663","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"3ec5b290-96e0-41fd-abcb-8689f89a1222","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA3zNgzgq/nvQqohKfiYStFD6LOK4OG9LYvp+oSZKCwWTUohhC4dTlMqzkrjl1xGQcWxGbome/8nfRoLUXfhufiou26lkVTVJa0Ie5DYwFtmF6au0vtx8hifRcHbxVN0b/QovGYXvFP7mb4P1aHcWUFOuR34RkOhzbR8W6A/vX0GsvrP7YpozK7fS9KtOew4eIdwMkQtnPgF3KJ+CFbvgzJ+5xMe54i/z42CkoHQVBJOsY+6/dQVvlwSs0chTau6IFBy0Bon/GceShbZQJDtArp9RHwdGiHD2nceWzb+owEXLkv9RmkdcWsCwThKR2rpf1vVkXCMq67qJ4mMb1njrmpQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20236.001","name":"0.11.20236.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb6fcf4a-e0d5-46c7-8664-9b5657baedc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20236.001","status":"Disconnected","lastStatusChange":"2020-08-23T16:15:38.4188717","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f79e7672-fad9-424a-92ef-b762cab2dc68","vmUuid":"8A4E8484-E1F3-FC48-9E1C-7AA8068E11D7","clientPublicKey":"MIIBCgKCAQEAotkYoIZCIraWIcQH4PS4sUlqdzBqOcsgARUozAZcBRMfQ2bJiN0+/odcw0eiQplOU5QdNlft1gCV5Ont60a/pDwjEHys71S5CJZd01Obwv4rPQz3+Ek9oTtgftuM8qusZQJj+8xbYIqdrNzT60yjOqOntpzesDCYeGD3BBc63Deci7icTcwY7XUue3pRGwQxBhAeqctgF5pbdPjP5WPu/focK6hXb1rPn3ZmCrw17Iw0ZDxDWmJh1eQMd/qXYJaHdk7Ce4fTYdG1eznTGAw8ib+EUl19oBxzo/Vtxw3ZEgRFaNWqkAHJIgsHJC0uGYBX5gUfJLf6bl7cfFIS2MBYxQIDAQAB","osSku":"Ubuntu + 16.04.7 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.ildyvi3tvs5elcdgr3ogoyb0vh.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20236.001_CENTOS8","name":"0.11.20236.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d420635f-8919-4e47-a793-d616af3c693c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20236.001","status":"Disconnected","lastStatusChange":"2020-08-23T16:33:49.3631415","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"1352eee1-9a3c-487f-820d-e52896f7343e","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAviLLloHtipN6PAhmsm9N8e44YA55ps5rnQxduk35bT+sK7WNB73ioD9TYqXdQU0I/LK73yfxAeL1Q6I5yPIr6Wgy86wo5FYfruAbs5xVthlZWeP4GhVd4OIzutTLOFABihpmKOZXRrpsG2cHVeOVtnjWat3VeUyV34UUD18I9ANEeBxD7cIKpeLMFYP5UCRmxG3jKOO6aCE6cmu7/uW8oPSfr5xhJdiKOZi5riYgy3kDI/qoEZRKalrR86ix1UW8kar4edCzBqurnowiHRVF1DS+cWmWLcjR7bcD2HQFfw/jBfX3p7vmRxjIs3jSW//0i3fl6DxE8x1DAKiZvCyT5QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20237.006_CENTOS8","name":"0.11.20237.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4e0b7698-45b1-4f02-8d10-a8891e9503e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20237.006","status":"Disconnected","lastStatusChange":"2020-08-24T03:12:06.3545855","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"a92b0cdd-7d59-4b8c-adff-5539c2a99cb0","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAliOB/tPFKcwVHrOIHLdtgVSsW92lQi+icsTaM9Ks4CE5Bj7lKSjl4Mnm8wL96NqZR2oPCOxOHzTwIzn8EHhGQYAPTUI5XzOoko6SD4G3BzL6mZugocuXT0hoIibE+O22BBIN3ofh+rdfftcXlZ2c733pJOmpJR0MbpZu/bRQziLLuudmAVmCy1g+2SLFYyolfq16cQvZASwBraKjCmaAzc9KaBIB9p5Yehnp7Hc06CgpQMSBcEwmrK4UrXzGZxnJQ9VZgiP8zmbjla5w5DbbWVZX2eiHC+O62UBMurjD+Aeip8/xCnYqN5sghvUXflEvCqgrpIx/rBvdxcuMpMcwhQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az456qpz16_e2etest","name":"fv-az456qpz16_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"371b72cf-a7e9-44fa-b8a7-05035a5072b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20237.007","status":"Disconnected","lastStatusChange":"2020-08-24T03:01:59.3653855","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"07346bb3-cb53-472d-8771-bc393b4789b3","vmUuid":"79072C0E-A43B-F949-A395-87C45DE594D8","clientPublicKey":"MIIBCgKCAQEAt6gWbNbguMA8c0BI35k7ioiiZhTDuhk17fTBWjIgn86owM7tTv0VOdtKtTh9FzHpbi4e+EWCBrt5CuR5KPN/Iv//caoLnBeAJ+jRtYTgIrI/XT6nZreRp0BSkUhq+n6dvOUFtRphwxwnZzMkceQPJ2T2NIIJe3KbnXBneTOlUAITROmkLr6NbYWkc5rlVnKEV2wlgDh8GGCq10gqO/GLlVG5FFPIiodKsQ0s45pc52iLOCiipTddc9aCJUqw8ftS06xzBRIJ6YMO/FZjMdUN/7MtwC88VbDDQCxbJ2kE6mdW72rdJ+wUWwFGBCySQl/G1VXiiV5nopZrlrVmgPSCmwIDAQAB","osSku":"Ubuntu + 16.04.7 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.drjxu1y3psgujimpbu1341pifa.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20237.009_CENTOS8","name":"0.11.20237.009_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cdd27828-5866-4a8d-9a22-b1412756838c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20113.001","status":"Disconnected","lastStatusChange":"2020-08-24T03:34:37.3797761","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"0226b9bf-9847-4b65-bb43-33a17acc7af9","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxspOYrOm3kzvNPi50B9I7dX6lMboeW5Xd85M30USoeAVDom0qn3mIiDyUhkd08uPOk36oHwN/ekYfrb7m9jMsPAsSb5jcNE79GDRJZOscPykABrHKSE3rG7VVjEbTGwBPAbZzkmoLYMUiO/ye7ZgkqCkl7eReNNkkcbaanKQhHLIN4jdmzF2tYMA5SojPZw78RSVLZDEXYpp65zJ1uNvOE7YZu0hGCL1AHIjbXlbRzcgSpA0LNHDfOpG7hsqFY0IiO/MElXYRFoO0rf8rC0oBnGFu7h6N8CXAQGe2nQWWfk/8xvh36UdKaFVABuhy3cc69zbpu3N0YmFQmaRg+VHQQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20237.012_CENTOS8","name":"0.11.20237.012_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2c96277a-cb48-45bb-bfea-b3a9cc54d74d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20237.012","status":"Disconnected","lastStatusChange":"2020-08-24T22:07:58.3493332","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"128b14d4-b832-4cdc-8510-bf96301e8dfd","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzmCf+fiLfL1pC82nPHeNsIf4u0FJdoCZwoGdqFNgktsSJDGTokEjawClQM8jsqCDpYGJeBnsvD0l8Zhm+XhFUCMwd3v41bImvl3MgTd0GDXUK5IcWHT5rNuZcP1CcQDCTqORNKh9HI+VYWLXJWzE0WU8/iyBNeGN1/KUVHFoZpxrzrp92vxfHnoe/BJtiTLezf10QzHFsNJsusmHc2Q2wKTQMKIpwbxje744D5gPRgw+kDc+Bulv/M2xTKZfNIpuuHTap6n/xNIBK5Ii+wUk0UxoMDrw0zyOtaL+F2plcLEkUdVc4rDZuEck/IHAKi1W338/P+e1+5qG2Wr9DiovYwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20238.001_CENTOS8","name":"0.11.20238.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8a653ff-48fd-4229-86d9-88e0a52f4527","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20113.001","status":"Disconnected","lastStatusChange":"2020-08-25T04:43:52.3575225","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"96b56dde-8bb6-45c6-9f74-6dbbdaa0f497","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArjf5vwLqb7yh5oG9KBZ3/x1p1kblCn2R+HjgDTS7JNx4LDbJ1Fic7N3hXwK8//N8SUBaPnSK6l8p920TwFOPh/bceJd0vbHklV7J3nbMf9D+boKlWuYPNsUsJCbEsj8jPRk9fucwDSInmxoAoo5um0eGZS/4Syk12g0zHqrazauGc2n49+y1DjR04gDuZXQggozmZSxQ6dW/5CD6N6KD2SWefkHsF+Hzm5uMXRiDfOg88IOOZlKuW+pQkd4Ph2H8hRGICjRwps3bgaLIpwh4Qpo7AlnIAOXRLDqQKecC4iMdaozlaLkH3EZAYqIF3Mau8NVaHOYOy+IZixhvO4+IBwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20238.001","name":"0.11.20238.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"89d89ed4-4aa0-4cc9-bd4f-2537b204c297","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19305.023","status":"Disconnected","lastStatusChange":"2020-08-25T04:48:56.3594141","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e998a329-b64f-4b76-8de9-579d8ac60093","clientPublicKey":"MIIBCgKCAQEA0YV4iZ0DrlvLSbJDgTnShqpJTujJXyUkOBGR7xINDz2vJFjVFcDzPcuB0k/Z+QSYL6koHOUSWdEfFz5wrIq8UUVKh5VDItSaELmcD5Cw4qjG8vzH8ORy3DtF7FZbezrOPvsNlFOUEjXHmKiRQ0D5ObdqKPXPo53z1I3FktZAoKhhUqIdqVAvdf+ijBT0ceADDS8izd2RtoDoexQfAjip2VOfhHx8D1in14ZIKUxikwBp5lg+YhxzjkSDEQQRUQVfVZd14v2OKdOkdOB0rP9gA3YqCWt82Up0RkVxBxvCo7TXo7wwhgxRHdurCITZzIlfJjdQ688I/rvsaFpmE7hbaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/9b634dc2-ba30-4635-b790-cbe5042a200b","name":"9b634dc2-ba30-4635-b790-cbe5042a200b","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0728c609-52a0-4954-9fc7-292d8e71c335","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"aac6916e-1364-4a95-ac37-8880100c4110","clientPublicKey":"MIIBCgKCAQEAt1/rF+yXzNMWF+mRB3PnWVaQXCCYcRUj9sbpLQzBX1sMPzSYvmInxANxIyH3H4zL8Zb5EYZTPMufIL9Iz9H+WI5H/QhAQod66h4mI8WrNYC0PeoD8bcRCehv65nv0KH5BXVkakyO/jAKVKfSgZq4xKBOfw0B8DhrlW5ZSHeCR4QsuHjPFAN4q8q2vYQfx8LzBlixRlHoVBaYfhhs49zcubOHrbUj3ftbll+KbafNZUzBILZs49EtffF7c5dAxOesG93EcGF+Bzs+GzQK0eMfTEslqLwko5745ugtI3S7Bd8GADjV30oxi69pk/iCWHPXOqF+7IL/hRQyBVipQEFU3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20240.009_CENTOS8","name":"0.11.20240.009_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db71b535-5e78-4ee9-a0c9-47a0917202a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20240.009","status":"Disconnected","lastStatusChange":"2020-08-27T23:21:06.460295","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"a2ef56b6-c98a-400e-ab37-df5043a18253","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAogNdNGfxUCANZNbOulrSZh+B2lokXjVqtC0OpUS9VOH8JCfCOdlSYpaPe6uIND0lr46aGE7hbmq2GVqo1arYBrED6Lj7EP0Qy53ClQjvNj0CkqM99NLVGVBUcpBKOqzGRhniA6+gdhAubmdH8vaKc9nxjZhVkcb+ebbD3uuHt+Aucc8L6f/WYFiDX298f0UunpQrOxU6M6cnwHxBC8PADMonyobMp1xTrLYD+BYNhpXDJefPkgtKAf+5YS1n/FQxc7u9hNB1+si6iMUFd+IReG9wiWO/N45iYQ4LkQuAZssKgr80Pr/WRyj6zT/3mICyAWYgTGgHHsTEPDsAprjdiQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20240.011_CENTOS8","name":"0.11.20240.011_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"65922019-a8a1-41f9-9a45-7f94f720db61","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20240.011","status":"Disconnected","lastStatusChange":"2020-08-27T23:43:42.4597621","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"05a922d2-121d-44e8-b8ce-01c1ea1281bd","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA5wof/BCU20n2l4Dx4MFr8lBCZ8Tx0ALEuuz+ToC0MjUWgvO4gYbbjIGx2G05z0J6rmaP5OXiwhs6cRrXh7Uw4gQGly7gELmrkkD83NYe7lxYwquSVr/7J9F7n0letkxtkCKHiAn/b20rGUYDOT4XdK0eF45Zw9O1paGLwiClLM2XlouI9AUg1A0MjtplC3hEGAkbXBAuyPdVxPgm3Ts2CC5UbXEjNT8wypb+rETRNdYJQeFroKTnVFBb9qZE3hcmOor8dXRvJbAM0LPjD2eLSALYNumWMRNrKrJELiWKzBpYqKdjXRQW9p+4FL25N9IwAZiNBgwV/h31S/BL2oNG6wIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.001_CENTOS8","name":"0.11.20241.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dfd936a2-e19e-4f8b-8709-0a25c6fc90d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20241.001","status":"Disconnected","lastStatusChange":"2020-08-28T01:49:23.4695676","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"c6495731-ad98-4751-8ba2-a8d5528d3a18","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxJ6uv2ihSKXw/5FkB1ly/PESCuaDzgDXulC0p4ThspOrRGCoSsTTbgOXP6wh9reQraogv03n+db+FwOPME0lJ1eWcmJx1S1+ob+zjhqy3I+Psi+UbSP4IBGxkGchV5JX7j4MA228YLPaFoPugUTwjTZj6+BzYrQ/uuYhnu88p4hxh7ZQB/DnzBfGW0RglK/POcJxe02m3cJV94U3r67zAizhg67LFRt8l5soPUoHm3sYyDJ/cU8VZlGbyi/ZoJelj7jn+Xn2eOxhE7a4P7TTkEuEGmju54Vl4Nbbc13uy6bzXTRoGvcVDZENn2m4UOvRcSZvjwdfO7v4jfXYnIpEGwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.001_UBUN20","name":"0.11.20241.001_UBUN20","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb1edcf2-7926-48f7-8218-fe94dc9a1657","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"8c4af13b-1270-416a-9200-60e003086eba","clientPublicKey":"MIIBCgKCAQEAweJvXbrjBbfsk1aBoh0pYr4ZYWJU8oNKcgMvrGX1INt3ivQbxL+05gATm7xuf+WUDhnSG850vIWm2mWxxbdYQG+2sIj5Uy1twMph0liEZn11/Wwnr5w8WkuLHcZhBEJgpGjbsVfkhPtZqnp6r0YpbHkn+QdqzK0gNb7baaW7RZAI7Nh5WjKTrKspvDL2k97ofGWe8dF4cwb6jkIgqQcbd8LIzU80keSwWwhHEvDlRb2JNSWT1mk1nzpqJtW41OLsborODPEoUvF4OFlPHj2SPzmHyv7nt8A3IBf8aNd+FtJHT+0Hj21+lqam86gpkxmbd0CTlcZT4159OSjvK+3BgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.002_CENTOS8","name":"0.11.20241.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec42c732-f170-4ba6-a903-80c13784d8f7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20241.002","status":"Disconnected","lastStatusChange":"2020-08-28T02:01:41.4655342","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"82174704-0caa-4c60-9fa0-c254e28e5627","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxyAfEEVcCqgEMUs3kORxLQgFghaofHggJBEGH3XijOHQuirBD6g2gMAKeLOijEYIMDcsWJLn3GwdkQaJE13J7OwSU8Fvl0K9QOkgFESV4yN/uis4lGbYHYZUhHxGaeJDfkVMpSip1kusBGIQkYbmd8Ttc7J8ad8Ioy1Jl9I+hZs3wXfB1oZrzV2f1JeYvfjwHbkCrTvt4szbusZtrGrQJtqlCysIkXJaDnJHfGsyn1c5qXewqJWDu1JLNyZGOyWulaRWKYbSoa+sJbSLDssh+BG/51OPS8cx2Hliwjud8A6+gFZ1ayN4BnfJ/cm/RrO5PUPPzRjAxoYEHDRTIl9FswIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.004_CENTOS8","name":"0.11.20241.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"367b6ddf-f597-40d7-a788-d86b025e76b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20113.001","status":"Disconnected","lastStatusChange":"2020-08-28T02:11:02.4660539","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"132b7714-4b8d-4756-b651-c564838e7366","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzmuagX/0fZoU1/LSZeiTCOeGH0k0o2O8n8xhwR0p6J0osGU2cKOsNuvbMsyQg40HK0tnMYjrx2HT8eihWRz4HpzMXG5uxzWJw7+XNVQ2C5wzDy42EBz1Pw//9Z8tk9+8asiTmhgBhVVREPDe8rxvt4eEykU4LAwbWqOGfkczrBK15sBpDozQ8j+XH4CeQzGF+Q6i6xc07DcyyLCZGgTKJ5wFcb9VWY4gYRHqv6KpjoRahbOknIlxvU887VijU/prYlInYDGrRMN6CMOyRGxhD1OFMWgYBhWX3VDjthWWLmgWSPz8FJIWrb1ayovXzEbvZLkSO0ymUEMGQWN6lCXdWwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Ubun201fkce_e2etest","name":"George2-Ubun201fkce_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1fa738f2-4209-4348-9922-33f17db5d4b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"1e17f694-3d31-42f9-8843-f12d481c68ae","clientPublicKey":"MIIBCgKCAQEAu/q3RuVtMUEOSPxQdNwuN9kVUVD2UmVtqBESL2ppVSS0SwPaMdexNxVu+pD3eNuh5qpjZ57DpyM5Sw4rfXIClk6Jgd9W2rFPvp3MucVqLljhCRUFR3Gf2xsPizNFkeNmuIPa3cuNLaog5EFLLIr7YeSnZqLBMk7z62cFBX+P1z8OmD0R6q5rvuxpUcRIIlEvMJe+lGTYsICe+Z0W/m90nvNUjZsKkmH957FI6XnDmC7+YjOpFlNHDTXqzvDTb5EnbH/ajQC9zypm8p5dRX5JcLQqBYPMISV5q7ztpOgcAnNJI3llkU77/6Hd9TsmgftCPHaMYTL2vkrZ2k+vEUWMGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20243.001_CENTOS8","name":"0.11.20243.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0533922c-5c3b-42c5-b3b8-771d84d1b68f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20243.001","status":"Disconnected","lastStatusChange":"2020-08-30T23:20:48.9938907","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6e69dfe9-5233-48ea-b64a-30c3f01a67ba","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAyyNMC2NDb4/TPDpg/wGRmr4UkOTd04dv5M+HJ5vbdD2qqXQ94kKkUd6ZgtG1Wy6C3BT3gJa3P61fRDKziNN25Br3mjfwdtFHg/1lbbObfxhrmKh/kdBIhct0/cz1YAj+EvYoL3DA1zoDXI6ygUwuhAwkzNRNFkJR91NBYxILwVbDXLi74BwA74nw7W37GcvsuDlSumL8tuDKPfwXBXIvM7xrKYb0ghewG6giYrefJyxG5aN/kkrhECoiascqFSS26IVdF0ZyQhVhiB/XlQe0tFnjr93s+Q/AkT4x6NFbWAabH/9AH3RnRE47+AAGckP3ehTPYHjjcbU5CG/RMMU7ZwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20243.003_CENTOS8","name":"0.11.20243.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"12ba9666-b9cf-4013-842d-408fdd638118","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20243.003","status":"Disconnected","lastStatusChange":"2020-08-31T00:37:35.9640601","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"2225b674-4555-43bc-91d1-563a647d018b","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAt3oEIFvd0Ah5vZwpUKwuYRqAA5a+ANJeB2u+tIvOQapjJO1TgnDskWMfOmwgKMM5T0JR9agEboLvmUtmsH/75skkHQkkXfu1BNjnCkOJRSbCDm049OhsYo09DiH28Gdhj6zy4+Tj4DZkNhjNCUj9t7fxSL3vYDXPBgYralhS7raHog+G3bZ6Ft8KSOoYqHmjbnHUIxxe5LrZ6BdAAmk3sS35IaUgyQYwi3EV+hkLhDoq9JOUcQXDkhL1S4zlK3dH23zd/f/uwSzROiJcs2TIlw0sbobBGfWH6o1jTJKQSZa/YTcSQRTrExxtvpcm58Q6WbRhaEDFsAuru44+OnwmbwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20244.002_CENTOS8","name":"0.11.20244.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d521b33f-91f9-4fac-8467-197982691d95","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20244.002","status":"Disconnected","lastStatusChange":"2020-08-31T06:20:03.9461627","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"634f954e-3246-4afc-98a0-3e6d2fc93051","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArTxaaIFsjd60KAWC48mI7ADPj1qSnod2+s0obeh9353HS2ZM9lg9UIWwyjsqPN0wB9tuqLM0Kmslx29RWISJHsjb9Go6Twc2UKlwv9gtw1xieMh2gvhK4wFB347b0rY+h8XQBGPP6CIulD7tYgvn1A8KxrBGUZYN8AxtpU709ehbgv56b9byG5htUwlkrHNVSl2pL7xslBTX8TGfyDctK0rKza4+RnNqdelo8P22ia+Tdu9k6MTSOCKFpZ01kIyevmsXmskIhAC22CKfcRyZIhz1mjp1e7oVK5IbufV/NRB8ckUxjj9Blu9Cleq0RH/nbacWeJltKY6/d8FvTMEn+wIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az4965vdgz_e2etest","name":"fv-az4965vdgz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1bff6507-48c3-424d-a8f9-3b5f04d99999","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.12.20253.019","status":"Disconnected","lastStatusChange":"2020-09-10T00:30:02.0619137","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az496"},"vmId":"84df3f78-aabb-4d51-8512-477cc0ba286f","vmUuid":"2717036F-18F8-7945-BFED-8E947018CB8F","clientPublicKey":"MIIBCgKCAQEAxuo/WqUDB3Ua35QxRSV6GYQ83BYcLz7TK9RWoAJEdpvj6hhdMClzhbqSawtpQf14Lmf8adryMH+7fqzTI+RGIgVXi8SAjKURAAQjUo+oDFXWcc6yDPR9WgQJVc36LoPzCwr1ZTn/GAWtRLwrOK7vgq5B7Qd3RLrz7f/4gx7eOXbp5Wpvg9fnxj53YH235X/6VTwIiEVHuP1PMUvQ3ppd6GUIb2k1SJm15rgYuT85vPkpOcQJQKbupcZ95qbi/TzpWBXgV7ShjMPQvufM/jExX9iI1rjsxYDGe25PQ1tPPG+ljXIBuXuNQIh2g71fyAJ6Jx1ojBjvhgWlV/wi4BDINwIDAQAB","osSku":"Ubuntu + 16.04.7 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.xzc1nwnja0mellgqx3qglmmi0g.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1ro45a_e2etest","name":"George2-Cent7-1ro45a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"caace50e-59f8-4edd-a404-1465681b8d96","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.12.20253.020","status":"Disconnected","lastStatusChange":"2020-09-10T00:24:00.3095301","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"269b9522-7cda-4918-8a6e-78e43dda1b12","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA0pnRoBoES9/MOIcimtX313e9YKaxnzAWdW83kCkpcNWTF8K271WtP6iCqJ0Y9u4kGDindi4OdoGJDbjNAfyV+AVg9btNQzG+5OMTwVJmqYXidhHJT7cHD+IwAjp3Td8LPoHfxTxVzTY/vmJ6c9LbywHQMZEwYI3Hj/pXz5a0w6YmRMWt6lJA9Mai8AOffDSoOyUjBnCtGHWpMKbKyeHy++on79fyoODZOQq/nbton2/2G72WC5sYwMM5U4JQEPus03YAagdx4f7HghSdERe+yNJEhKk0keMK7m6znZVh6yySGlsDHBFNuU63qUijI11qcG0cLeuNRC4z5iy8sNd+AQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/gwf1","name":"gwf1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"96c313d8-68ee-4f15-8347-42a7ee76b294","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.12.20254.007","status":"Connected","lastStatusChange":"2020-09-15T00:17:14.1662018Z","errorDetails":[],"displayName":"george-ubuntu18","machineFqdn":"george-ubuntu18","osName":"linux","osVersion":"5.4.0-40-generic","osProfile":{"computerName":"george-ubuntu18"},"vmId":"a38ce6ad-266b-4456-b364-6ec21fe87e3e","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAu6M/hZvooh9AEswZWP1w534xlWuU/bhkEYKfQ2hCvm+FQcYV/1de7Rzpl+5LHyvDB4AAvmfIb16mUutZY71MSVpVkCAmvRHbv9ZyaKm3sS2nAmJkEF3LtH0TRCQ6dGTXnjREa17v6DUrU2rAiefYszfkQ/bx6JC9qF33ot95aKgNCo/g4Gb5cXLWA+6/M1nTy7Q1/YAcuoALhtlm/axl99GTL0WXeEF90R+TKCdYdeYt+EuGROacc0UQKSUqjsy7TD/1tSJzHwUy4aSt8jVpg00+qRbB0ghwyU/3L8xvyWc5H0O1gmwjuCMhE89MxNTKgGhxD/RJX2QaNYfN4q4ggQIDAQAB","osSku":"Ubuntu + 20.04.1 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"george-ubuntu18.guest.corp.microsoft.com"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/DorothysPC","name":"DorothysPC","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4444182a-314c-40e5-a2bf-0e7a3ed430c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20231.004","status":"Connected","lastStatusChange":"2020-09-15T00:06:18.1418698Z","errorDetails":[],"displayName":"DorothysPC","machineFqdn":"DorothysPC","osName":"windows","osVersion":"10.0.20211.1000","osProfile":{"computerName":"DorothysPC"},"vmId":"540805dc-cfe6-4c6d-825f-9e2950460d3b","vmUuid":"731AC6D6-85D7-11E8-9C43-BC00005A0000","clientPublicKey":"MIIBCgKCAQEAqA5huBMQMhqEIoyHC6htf4/iIcbTQJ3Hnmu5je0ZQXwhhI0hYmrA3pk49Y1BBTtOChfzGU59Zqh2eYuX9AKwXzGW4k8huhwEjX/K8LanJXT8guWrOCJjiRQ2R2BlkGSXp/vP1Jbz6w+PZrKkHiyp1TJTft/phcb46XSbN0D5guiddJtLXQU65IPbovNMHbffQh+Lgu3jpaQkISURbtwqRs4PF5CcN/ll7WvMV0tUv9BIqW2p7HvQCgLvYtP7i1bzEHQIDB38gARJmkbsCtaI8+8YmVmrmC7uhdsqcVrrN/0pAXc6sq6H3LGlV0RuuJYRbyr/rjOb2/a5OD0ltHQQ4wIDAQAB","osSku":"Windows + 10 Enterprise","domainName":"redmond.corp.microsoft.com","adFqdn":"DorothysPC.redmond.corp.microsoft.com","dnsFqdn":"redmond.corp.microsoft.com.DorothysPC"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/release-098f57e0-b279-413d-a6e7-a62b84e3f958","name":"release-098f57e0-b279-413d-a6e7-a62b84e3f958","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1c4473f8-4b92-4c21-8a1d-d9501b6fdacb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"0c4aafc2-9dd2-406b-a9c4-38bf71bbbc19","clientPublicKey":"MIIBCgKCAQEA0yza4CEcdtT06KQ/RdkVS09O1IQZgUT92s0NyCQODqO0F00AU+qaMhcx02Y43JdHGONoS/lklFRMZx9eG9f+ZJfcoIUwWGZjrKWk0mb5tBtKbzAeTAZw01il137p7/Y43mgTbzXBZcKdAArl9eW9V75oBhyYJEVp3fbGGRk60DrfpkpRmexOu6FlGP/m8U3FeHs9/hm+3qbme4cQt5dbJlgyo2Wk2gu+Dy4/lcS/5O9y5G0xY7SbqeV0Lk+LhDf3HFpNYWvKQGmmdBZVVO7bNfB5lJNZ8DtpMPNsXXFNyZ1GFfqEdRof0woTRvwYY0xp/69IidDJsBnYz1NZXW8mgwIDAQAB"}}]}' headers: cache-control: - no-cache content-length: - - '116679' + - '37321' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:27 GMT + - Tue, 15 Sep 2020 00:27:41 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 62e6ec11-213d-4cd6-87a8-713f64a856f0 status: code: 200 message: OK @@ -603,40 +1314,141 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0din0RADgUSqpsOY1kuTBhI2td8IcYyVghGQl7XqfvuOZJ2KLO7u8XMvvudtUIlz96CqfTuYvg0YrNbpirAUloPpoOi6up0Oh2VWZVKUoupustdDI25yXQ7bw6bNG1V3SlftcOMKx3P83NyNJ5npjL3c9D1nYgqym%2BR%2BvrW3G2tYN%2FqotqJph3OVN7rVu%2B7m%2FvemUVuqy%2FrQCeyUF6oS7fesVuYRmVj8llijiWn5pkXMuhFHJU5fv7R7Va%2F1XlS3hhsYXmAQ0vUhWsOG%2Fk%2BChIfo%2FzmDXMA8E6%2B2O1%2BsOFw%2Fw8bL0CB2skbSCPn2OqEX17Iw4KufGPQwZ4%2FojV3XHmMULXsSyDuunooWGBvBkibxbmKQ6N6B4MQk5TFwn0U4RoRnlMRLNJ5MsV0PtJcbTAjO8eMV0mm4Q8%2F5yNlec3b8kmOfZwBPEMoArQ8hQIAdYCNhAyk%2BJ%2BBA0cg4%2BqWZhmdgoBQUFBSi6QujKwskggF%2FSSFiYQzpWBJ%2BB1RSoDhHXzUBVkQQQAGzgLMYNKcxBsiI9ayYo4vrJNHp86S2vwJAFNcfeX4RL%2F3lM2AqdutLA2WgA6wMNP7hwELCx9bJN5SoySop%2Fgl2UbBUn%2FW7cMrs%2FF%2FSCJdHDC%2FsjxsO3t%2F%2FAg%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461xe0pt_e2etest","name":"fv-az461xe0pt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"de1b1ee4-06b1-4241-ba78-694a6b9ae9a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23012","status":"Disconnected","lastStatusChange":"2019-07-23T23:10:28.5271269","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"8d7570f5-9623-4615-a347-437ab385da52","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1omdcaP3iY9Rvfps94nJUfYWAZ0KAghefmi0FWs8eFd7HdGUdjWIKHM4yiDeYH4WJBbs7GbW2o2+Ggmzzc2JjSyndVuAhizu1sHik4zO7Y+wd/Ppd/RYl2kgBoPJt/IVAjhxdG1QhFSYqVoTu0mlkG8QM/sURKzQvSfRM+rjD8g/ERpcFmDZcpLJLOEXqbfK4HDIPsJiLLowYPd7wV+xGHBlJgwz4LeYxN8ZljTwHvYI4mbI5jpMhsCMRqW9xB206XHZR26b66TXWr/KiHQsdSdzCETaDwLY7jpSczEWramUSrbj+A7JxRp4eIL1ZBObplzR3tPqP5j1AOMbf7YnKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456zmg26_e2etest","name":"fv-az456zmg26_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"076c87f7-b3cd-4377-aed1-07a44571681d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21003","status":"Disconnected","lastStatusChange":"2019-08-21T18:56:13.352039","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f2ed7669-3b08-490f-b3e7-3477edb3883d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoKKnbBkx9FxrxNRL8p6qT507OI/eBpFopkQ7XJn0ym5dvIORlGbDpfA7o3GsNFk4mqsdj37Va7BjsbnYxdGdSS4GpAIpXYiEetNXcWoHcH5pL3z08bgHneatg/BSsAO80/tlwKmjAWdtd1YtE5GLMOmE54wkjfyEn1FkpH9FN8WB0W7ka3OjJWyVn6Gq+JPRCGGLrEXsngSONt4U6wRAipTFJYqCoJMH2S25ChQgkxaD5WAQpMHVt+O0zxijfw0p1FUFutcEZIyxmCI/ErOk7bRQ/D+4bGWGznjaq5GNnNy/sZ4Z3MXqeH5tExIzsmg1X0L+HJCY6PysC55Y4YrRIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461y3r0m_e2etest","name":"fv-az461y3r0m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"447e06a1-9e54-4c55-a97d-d48220f2735c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29001","status":"Disconnected","lastStatusChange":"2019-08-29T17:06:56.9064736","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"4d5868c9-56ff-485a-9051-67fd03ed85b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn2pYRQaEh1pPYAB3X2XRwLFlzRw6N2LjyCuA3PpmaFL+eEIWiRPTZkJesj9f6ih0bZT9odlX21ZS6H4jYP/bTuOFyJJfT1pgRzkRLW5aIeID452NC5ZVBq/X2OLsbOgH1a9WcOaWXdM09xp2goFZkLhyWLUSUfsSbtbj0MHVGzwreog4wmQ8NwBjfUy6hnjMsmwDbHQSV7AXPEQTQls2903Co9yzMNI18rj4alIxWtwyY6BdV/hcuv9E/JLpOwhIBsgwR46XDrA9C023VBJNSeEY5bCUSzLNLWy2t4SjWoMhfXpV055GU8RgC/8x9ATescRWtmpb1TkPYnzaG29qqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4561gw93_e2etest","name":"fv-az4561gw93_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4981bfcd-d67f-417d-b646-8ffde5e6fe08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23002","status":"Disconnected","lastStatusChange":"2019-07-23T16:30:25.894769","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1471a826-ac80-45b5-b8c0-1f9f52aee55b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8lYznBm5oxCl7Jn8pE0U/Oudyq3ik+wxdqVAwMFQ5kUDYfD1K0FXxej80ZV4ukY/blpTtY/1b1n97p40qyMY8KMEOymo0Ey8MlO7nm3JZMXRwvTWBpwUA+XeOdhY21acKhdWsa5HEe/q6r9UgU1/ZJk6Oi8FSlDNqGACdT07/oPaZG7aFjXKsvKdbtH3NVtMbdOaEQMSm2wCtkyypuqKbFaE0Iv4dsqoCoPMrmPBJbHkNakJp0c6UeeadWAuivxVdNMr4k5S7x1u6uPp8o/1pIgOD9PEXEglqx2eNeDmSH3WSRDdTyV2XQt1szuDfL35IBf8pwzwiSO9cSqVIp0FXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456idtzu_e2etest","name":"fv-az456idtzu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d189d34d-a285-46e4-83d4-f5d355100e78","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26023","status":"Disconnected","lastStatusChange":"2019-07-26T20:35:52.7557392","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"282bb8d8-0b0d-4e56-b39c-6f2b9d582509","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuCUkcfNH4tC8mF7VbM2tgKr+upe1IKT8OKosgSe0fNGn6rXS9MYSFdL9Gjd5fTmkiPVA14ndXFOz+IIMp0rqbgQl+hI7qk8Jk2tnD0Xe6kuOvkOJenP6Wl/4PKLTIkaoh+EHsIrfJ16h9rme7VMZV2uPv3LfpjN4DMr9oKq+pL9tXYejVZVXfWCMjOZ//kPTkl/MxubtBP0F2wsCpFgZEZviVC+DkT4OuUusnip2/LTQ6klPBgGuQWUZzeOPy05PbkjDlZFcJUVigUp0ohGNjJRFzfnFXJHgUtWqxpsZ+nCEDgOzqkG9piyN/JGiCoxM2oa+I6MM1u2np24Z+KWs5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4613g4hb_e2etest","name":"fv-az4613g4hb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"81aa51c2-3e45-4677-94fc-2f623423fdd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18010","status":"Disconnected","lastStatusChange":"2019-10-18T21:43:45.1611942","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"578badff-4305-4d99-896b-a7f6335d0e86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoWGIqDVzc+PRSTZ18rM9b4zlaKzqvOIv/CMOosia3jqaTFRXJHNWEry2/oJp98STHL4b36o6t3nBBXZl/KbcdKk53X5d2qiYLxNIcelepxCoIJCkyQ3T+s0O5sU/H3u/W6mrs2fmG3+PjYzFOTMVH7l40lx91w5r+XYWayzJi8YHxbbJLl88+CoH+jFqSoDk2LKE+PGmsECVZH5ngCxSQqQevXnZwEp4kZEpL7rU713he1efy90e8eBTF5FWDx0hfyl44cTfQqxrqVPbp9ioJDdE3Ab0HuIueQswbN9S+IuU2xF57B5v8bDp/XKMC2LbwA3lJkqBHxv+8Xhzpah4lwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6017rbfu_e2etest","name":"fv-az6017rbfu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e9d3d1c9-0107-4521-b803-1f88ecf83ea6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22023","status":"Disconnected","lastStatusChange":"2019-10-22T23:51:37.0572385","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"4c000a76-1135-4920-9a1f-5b24cb5a56d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwd41v+kMoy00TaqnONEUBiqz0p3kJ8WcQWq29pWKqe7Tu5jfiKt9Dzic8Clp/744v2sToHLXbHa0P9in86TzKSINztrm0rnUeUE1LHT6WXbDkjkIllcLmA/ltwbvvMyhWWVCem7Z27MrsX2YzTBWusrL8EXLdWa5ckD3yqvAlQU5KCJ5uI8WQ2CwxoHt663Ew2Nydtq4hewpJTgkpdJkW7g4EexAOVHhyFKZuUGX15ZQAxvxv9dYjA4CmYi7P9vPE8nDLDfdJo1Ii+Z1iZxKFt7Rgl4t05pFKv/C0ZVyhWhnw1eEa7nTNfXraAdaXEIY5zqa3OAnfkF+lUR2m75iWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29001","name":"0.1.1908.29001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7837b1a3-0f94-4473-b6e7-c28b31557c97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29001","status":"Disconnected","lastStatusChange":"2019-08-29T17:06:56.9064736","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"59c8ddcc-9db0-4eb1-ae29-2157310d588e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9rMjahplVrQoioHYVyQQYO4XOy9o8Ml7hNAGXBYzRUKxX7fNft3GOEaDgN9WGfO8PRH3i+DHDvFehAeR3mU1OmspZjB5ljjha6Np1uSCxF4/CHtzinMgDSJBR9BxYVuuCCmSrYJXRWrAjjjy8okTemCI+0wyRq3Ee6u5wbCfuIP5UIq9yplDm2kcTp0UB8wt9k8mbcIoWHHdQQbc/cp8K5cgSWwitilucxahGJav8B4ARBZ7OeYwmU/XFNkeM5vMnoOhauqDZWoAhzaEUabigDCboE6AB9N8EKRxPPgUNRqdi3WOT28rdq7DUiGVRmUZS8QbcaY6tFRGMnrwI4E/XwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6018okl3_e2etest","name":"fv-az6018okl3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39080e91-e38e-418d-9d5e-2613e3ce25c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22004","status":"Disconnected","lastStatusChange":"2019-10-22T16:46:33.6781833","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"1b18847e-cefa-4bb6-ad62-7074411f9b94","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArkMBOufyEH+AudzUBE3CCcaLNbH3L9eJHSqbhTla49MVkvexmAKJpfZY5SSsGAC+uDeL1AIRSwoilRrUER8pc4YjMfPDbdecV3La3mRFqrbXTDJrdc4agC7wlcTy1lyqxBDtpyS+fe/Ckv4SnBbKrYkpRk9kqboFqGDrdbgZgrdVgDlm1oI/m2+aQv+lPb/YI3CNXfdurHXO51DpzbjRytpSV1B8DOrj8HIoTf0UdUufUrY6eHrI5SxYvB/vRofX2jncO4yczoZFWWiZvltRYIW9SXlKXxYtexChlVEjd0xXKcaHSQzDlH0PFmk0SLtrOHN/UNhcnDIeitB4DaOgOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.02001","name":"0.3.1910.02001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7ca2df41-9b57-4ac3-936f-a108c387eb28","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.02001","status":"Disconnected","lastStatusChange":"2019-10-02T22:24:36.6405636","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"6f8d4b21-9bcf-4700-8e08-ded9fe47b68d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmrF3FPGfgbmJVguWQnGfFsO6PVT5sKNoqhApTXH3Kk3qHDplq0RBDrJU8rHyDOOpMV/mSIO6ZasxhI9mzeaHj7VKUYSU4fbF1JY18v+tX1WNgVPyoOKOe/Fq3S7DkFMyfuVuoWxBfRySwkrWRquKl5DyGk0vLFnWtDpOYlkVA7Ipm49UsEIKI5nSNwVdRwjsbaKQaWl2FvJmJRBFnAx9jSBoNr9/hyq6g48G4XUdThazPbJ7sWsjx5PJfxjTfAjdH+uIxEAOeZb59QXwC2f2aFLjCmXLQpvL/ZGlYEHs84x1VMTwlpla6s0bT4wfY92yeR1NQAg8WajPhFMirlokAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az601auk94_e2etest","name":"fv-az601auk94_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cdb464d9-1197-4fa3-96d1-2e6958f36c1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21003","status":"Disconnected","lastStatusChange":"2019-10-21T21:04:23.866776","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"30c87b5d-fbfe-40e8-85f9-3f841c5452ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuropOzwywYVOxq+LsjRXe1qOhQTbUrapOVGJkOAntjiHGEPBD+L1k2GerdWOj6Q5QBSjOu+J3PECFmEyRZBAFjscrBBnefhAFZS+SNT+A+ss/K/K7u5CjTnOHgWziiWiOTAoHBDX6sNEeL1SvywuhQIS/EhKvWGODEV60hb9d7eaVXavkfkJL5Ths6f0OrrrGeStuZOaL/y5cG8tsrcwPOkLvYUovcjEs7/wttvrMy+nSkuxspKDZ7n5yZFYEgKnL6iuVN3NXoTOh47A0DwbbxgyrZYwm/7JCRrQdnBXpMG3Mi+I+3voFrbwIA2DqeFo0AEdtQwOklSrs0a+nN7jcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4561ox92_e2etest","name":"fv-az4561ox92_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"be5403f7-6b8d-4e18-b018-a08459397941","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14001","status":"Disconnected","lastStatusChange":"2019-08-14T17:27:21.3409795","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2ba35bf1-c816-4bf4-8036-1c289a4a2423","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtkL2pywTqUR2qhVy9B08E1eiJIzw3y5EQXSx4RKQUztQHKFd1xjQq7JY5HFZtCugksxmLzqt47MA7qDDg2XvQhQJi4Lvo3FSSlS0exVB53YUR3OCDOGoE42LEImVErJqwCJ0mvXoP8azjtAN3mTgZdI4seqsn40T2pKN+aylYkDmP7+ZIJC1BtKWSPMpTOJDEH+xRUZBgLGyI7rH5jSmyx0FMlxtYSImyu9VkhgyjWACCIo5nF/XAw0srRxdEw6cFKieRFxa+Z/xOTRA7k/TYfXnqS47k8kN7qUD0VLBLrtZWvydV5dseGetBFFLLnE2bWIkkEBhuRqwQyjVFtz7jwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4613zdp5_e2etest","name":"fv-az4613zdp5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dbe5ef97-cd00-4590-815a-3e5a8bb5bdbc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23002","status":"Disconnected","lastStatusChange":"2019-09-23T21:28:44.9765688","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a3b69e76-3f4b-47b7-9811-fb8d8a9d6b7a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuPPnBS93P5+uEZaRvOp4H0jMJoSUnewS21lSvp2QwQz0bNLxig8uXSHFUpFIsSlicgfWNtOUdwDrcEZYSlGWzXbX7kOqRd9on4fRNeVOAGVM5Mw1IxVushfMF1xsdz9Lu1GiHs69E8AdcW6oRn2M/RCicSxasGp3udKdG5lHxYMldrwHAaGd6NijTQxjyVc9s0G0AScfLjBaBURrbu9FNCYrKd5Q3Gub8hli/Hjd0Bwqrz0xoQI97T8PjJ88QBboDoWtehzvxxhw634dLjdS+MFhbr+t45YgpZS4sARmF9RG4+btWJCTpLn8er4ERokg3zArIjO0iPgym7McCxro8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29002","name":"0.1.1908.29002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e823b9d-6e63-4c8d-9e88-9b0d7e240623","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29002","status":"Disconnected","lastStatusChange":"2019-08-29T17:16:57.0662992","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"61d77b49-76f8-4a62-91fc-1fdf4377e9b6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp05oBnAXiaWaC5tfHKvEWv/drqTGrD4elRzODQOtv4KtOAVkGyLQeU9HFdk6MtXWMr4Q8vZEZG9BmR37lmQunnDYwYtHI7nOaZMNCM0CFdAzz7vFpFbfRlzMmaBYy1OfHscmBckcejd6genbrUExB+JKij02aqRpv9mtqDh1XQU6cSjmuZdxT6UdaMLFFRNLYR9AOmT3WL6+kz3QLDXvGoP3Ior3L+apgbELQH44D4U9bKW+JMgsCKY/0OEdZPN1xVkJA9wtsn15c9KAx8ClGG/CScBpbj/niOSIEbwqaF0Om07R6AhqTgM3F0f2XFoci5MlSX+FyFlmujul0vjXCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29007","name":"0.1.1908.29007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6cfa0043-47c9-4ffe-97ee-fb2df2f2b718","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29007","status":"Disconnected","lastStatusChange":"2019-08-29T20:30:56.1453929","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"45a8b1da-af3f-4cee-a922-03d817f0dac0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwGTMTncXskwmUFZRnWLVf+6zi47s5Be96mEXQYUpaftPjCwApJ3EvnKCnq9Blw4vVj9A7uXo14zYH3Q4dYg4XNsZPecoHQlErpdHEWqRN7UZkLTjDhCFJgQfwK+NO8tqAmCA9hkeEPdSC0CjWgH3fBarxDgtWJgSUpAf+ZXhe0a5c6m+89FoJh4fFUcZXuAL9rlhRj85e8YS9bQiy51h0Ggw+JiifbYJyAxoyypEHgB8BON2R5JPETZdhOwyrEAFXv/RpmrDvbcCmB58FH8Vi7LEprKmol/TlZTCmCjPBms7bozcxh7O8y5iu2xnM+VU45KJ3BqHVNywDkKfXKOZtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az601kr9jt_e2etest","name":"fv-az601kr9jt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5fa8486d-7a29-4e3c-9629-378620cb4348","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21002","status":"Disconnected","lastStatusChange":"2019-10-21T20:44:23.5973385","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"d7462860-3af1-4ab3-9377-10ed92c362f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA05U43lh9r2MK2eRSjjZvYgKA8Glj+6akwemnMd0RgkHsD/sNU5LaoSwvwnGzSG1QXawfroPe/RZV7hG6SEc1UmMwjcBcJ528je6tT4ZooBHk2nN/1zY4WyH2PqMDkciOUrr5lwjckMNhMMv8KcQxtgpF+0N7vJECeQvOdNgvQDNkQhc9ruJkgoqNKUYd6LzClRcTg5/ogLZp0cC+VbEQ72359o/zuAmW20sWtYAqGbNA4gz3fCQw/WoMYNZYuu+uOdesdvLvXrSJO0C9J9GQ4qwQEcmfbDXw2T2lCdVdHImLyhB9FMwTlWZ10Y4DSIRFVXKsJJiyCLRNs7PtcHN21QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ixrma_e2etest","name":"fv-az456ixrma_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"87dc3c1d-3f57-41b0-ac64-9c0ae40d1623","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13001","status":"Disconnected","lastStatusChange":"2019-09-13T18:14:35.5276511","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ef4b8876-ffc4-4743-bf01-d5ac40fcc13c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwPMdfbGgCy51wrClQ2dLh9hnKRrD6ktcCIjANs7Vd8aoFh4JfAyHU+ILe9gRQDvhNAlXlujfMt0vdnt1EkodcvycHA9EPxtOOvMGemekA0HaiLAQtURU/fAsWyN66FcXPHKeO22qk9R7OEoR2baI8CQ6sob0/cnXC1XL4cqN28qTeVmDVrY133dTDnr0DY0zSK3HwvHo+saISX5M8wKpX872SEvShWUAPokgAVbsxiJfsAf/tq41AtQdwylaDCb+Vxzfl1z0e+KOSvkcBulELWnufs7GszwA8IvWFEpXAOtnrkNvJv87uh23IabvtkO2/OzyxiwzO6jVmZAxRnNksQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29008","name":"0.1.1908.29008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"11f15274-b279-4b99-9920-ba6c3afe06cc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29008","status":"Disconnected","lastStatusChange":"2019-08-29T20:35:56.4384805","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"12bee357-6aa7-43d5-b915-16363477cde3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA15CBGKv0cnpmBDne9rA1alUzkH16XaL0uqOCVQ1fkJuFWva3xlcRZ3g61f/5G+NybyS22gaeWq88l3hDttXQF6VaU9CdnditRbq7XXD2JaeZ/VF9P8gUTABeMMcqmvMQmPS61uUoK2jgWy53imvaeqdH++FP0Ej7EKd4wqGJ0w1bnF/pdVP2IwF4EBkDH4gClN84vWcIsTwotI0cbsX8M0oN/oDRDGxR2xE18c+xBjgdvf4nEhE3eKIcMpccxRccN+/AY06HzJnlyltsVNPqSdL+p4K2K2lnAJ1QlDJz2fznkR1qxxKW/iQD8UW3xhEr6B7x08BEDomLqdFaybXhzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464ak39p_e2etest","name":"fv-az464ak39p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61c57219-2723-48dd-bb60-747e46305581","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22017","status":"Disconnected","lastStatusChange":"2019-10-22T19:46:35.3204007","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"f6f7436f-4d23-4e48-9418-e4b9d95a0c8f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApdA6/N24lJUu8KJcZTV/xNvLhkYIasGsxrevT+ke/2WHLun2o7h4QVP1CGAjlbq1eoZRm2q6YFIMA+vxuYJzjCN3fs4oHui4QEttIDlmS1MJ/0VmK9S+4zTJ1nX6olXM8HM7Ffz9FNQRYbuMM1n2GilKbbSCztm8NIkIlLri5/wpfOQyUfjLJ9fx5RUaauaWUhR3k1VHue1qPBOaII1xhJv49egdsWaYnnciI7FIl5T/47BHrJUoEoItLwEDcZJLNh2T3D6a6vg76Ytq3X3qICu9kHx1QeJZDN58ctPwnGU0d7x8Nn/RJFzrAYYNjSx2Z5AufiNwI9pJ1VUBBVA8JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az601od5lp_e2etest","name":"fv-az601od5lp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63e798f1-6037-4574-a3d2-78f1a1c24138","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21006","status":"Disconnected","lastStatusChange":"2019-10-21T23:16:26.5737799","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"d0829a87-8752-4362-a24f-86a597452884","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwywGhmiMIx6okHUFMsOKeoHXmIqKxuB4FwxxjRkVxbUiytr715b26OcnutEGR9IUrhfs/8+pbRyoY5zdydIMamVg8s4mynwK3mwusNl+fnmxwsOxUxyrD4tWC6cs0FNliYrUJn/V5tY/o86Y/kZuQw3Xo5/PelmltfdVfH+H7006VCi3HYl3UvhGqN24HLclUzjUFD8ITsp4HN6s3WlN4HqtIHrxFwL6DObvfNzVgxo3fKUZxbF+RfgAMOl256xTuDJ0ArC8ig/T6aBAdB1iEtpjAuAxHO1tVJ9H7nP5LkLy2Ssxr+Y8lT5MdTbf8UCASicZFVWj9+ipRvmHWMrWUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464cynrw_e2etest","name":"fv-az464cynrw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c37679d0-5396-4ba9-955c-9a2ad0ef65ed","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09003","status":"Disconnected","lastStatusChange":"2019-10-09T18:30:32.2752242","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"0c2a805a-8854-4e73-8e65-cb1d0f17f5fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5mHCa1U1oL6W2/PGK8TRvxitc/TWJQ91873chZLQrJZmeh+caPdJNaUUdgv03DekEg92jyyo7tjdoTS9Zz0KwvyXa2VjmjHUS4J/EdIjjk1SWRB7G9kBSBXEWrHMtMfy2tHWSWx0THhx9vHSw+xjH9b/QvO/6BhIJw5TSbqcPFXNgrK3czWYTHLHu9jT661m7X7EiruA7y/ezab5o9l/Bnx6ZIia/MWJSFZZJ9uJACIY8Jtxj9n7a5jBDgi6oc/xWpDl+pfmyv5X4ON91VGjFsGLH1FEpLrVk6QUHqkKh6ncZF8NCI47Hvm6V+gLgO+KoxUnuf09ewBO6UeaclGa9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03001","name":"0.3.1910.03001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fe72a852-3427-4777-888e-5b6a255a0048","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03001","status":"Disconnected","lastStatusChange":"2019-10-03T21:59:44.5127428","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4eac6c36-2ab1-47b9-8069-b1c7f9108600","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoOudFOEN7/GqR3TL2B4mIQjBYO8Yy8MvnUZg1pKdF3rZxYKFtmMme3QUusmdrOE8e0ER5mTXJI/EitEHjxH0rDYOlEmDLFX015IkHMibeY7yOpVTicau4zBA44TRxkATCXfLS/BMbHvfUXDNbpcLlTC9I4tqwy9K83IpadElM42rJd9SYIjjkIM8VZiDpO/i+dhonoI5yaCbWqcJbJq6ctdDQ/KyD6cFsBRlx4uMSVXoFK/JSqghP5eGJMUgyINMhfKDEjv9p6tQab6VqeQ1tiORfF5K68BeKZpRYY3BJAwYiwJFaclVBfnFeGeyvE04AFVV3QYnbvCprGywbxPRLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456js31u_e2etest","name":"fv-az456js31u_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f448b1e4-6768-4087-8ece-0913fb2526ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02004","status":"Disconnected","lastStatusChange":"2019-08-02T22:21:06.3259007","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9552fdda-2e47-4c28-9c75-75771ae89fce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtH6rpoMiqn+mA/1Ng0mhglJgierAEO7liXlipvwVFtUEwEb+0BqjE2/L23sLq0+DZ9DlC7OTwRtLob7U1deV/yi2/5uSrk15WyK+Mt2I7+qd0OR6qBSlvU6SWSEX2uqVson0tDEFpPn7WE//BfGrTX6jqAIr3x1Wsw8cwukifhpHflHVwBaqvNN6I0LUGAzXbbrSB6MpoZvOb9g1lOLLcRS2YYFxEqUtALemzBTLEQ2g9/w0g1iY7TL/TwvM7Wc7J0f4nbeYPJKz38piZZTbEoI9i6n8yZu/06GK3eWEwb4IeNiwDzFqjzX4xzusuOdFESUGXBC2NDk5Fbg4wJGGGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03002","name":"0.3.1910.03002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31dd4fd3-bc6f-40bd-a53f-4cc062a01000","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03002","status":"Disconnected","lastStatusChange":"2019-10-03T22:19:44.8734634","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az599"},"vmId":"92bdff63-0f7d-4afc-aa7d-43f3a8c7bcfa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtZXj48vuRLvieO1bjR5GY+7Am/tvCvYLkeHfjZ/z9dlKHle+Mq3bS7nLiUsIMnU30hsF/2hCoRWiOWOu4RwLPHYTAm60FkqnvFtih1/JhMVDWJzwvKdlV+VcK4sXSnmMWHKEWEF4O9cjtgJNT07kZWP6/RQ/4Y9QEWO3VEVINqgsViJ67xFIPb8j+/qOZ9kam4Wil/42+++bznfhsIS7JvaZX19NIMRa7imI+KlzCovuvbeYnozVVlp64ZxM7wwalZl8UtFBRTKPO0w+rAqM4IlYceMCR4B/+nFEmKKFK6kwoPQnLg8Tg03l/iSvGMIYK5XWJXyAmzcSvOmEO9CcAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464f76bd_e2etest","name":"fv-az464f76bd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1b5df1a4-cbc3-4fae-9d25-c532a18b2352","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22007","status":"Disconnected","lastStatusChange":"2019-10-22T16:51:33.7710548","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"9eb9c55e-96ec-4001-abc4-877f569e5efb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxHgDpr2rrrg42nNNcS2mnqF4BO6XdLgYI+DfT84IjpyDIBS9WO12kdRKOexU/VJsCOwfpmoO8PM0KXd/R9SAPymkjJQADJewvAQy6rMbwxBqnNYU1Sp+qi5MPSiA8Y+GqOwmL1/yQDlo85QkEh0HyXtovoKDxI3kNYFb6LwszauTdlINlPXQnRwpcYPS8xjJ2ThhctygblIC/xVllFhkqeb6rgXrvQDb8UC1soDf3tfLmXihKD1r/E0TtHzQVmIZC4FEpFIFMT61KSKGdQZ4OHohxX5y7DtuQvET2cURRY9q0WIXMDXualt17jtdrTSrKm2ZgpK+KW6SEI5Us9pRHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456k2t8z_e2etest","name":"fv-az456k2t8z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"799f0af3-ce1f-4602-9b80-6aae1cd6ddc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16012","status":"Disconnected","lastStatusChange":"2019-09-16T22:00:03.9367476","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"05a1e521-12fa-4f6c-a0e8-8f18dd0c9ed7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo0e2uZ0HWqy3d9of34h7FL501CgVBAkoOPwmqn2Wu1MDiJcwJMV2BqySOTf07cag85O2w1G4+msAMFL9fOB7eqvgzBQFeYhi7JdDsk75T2f//QPX5pgAxulWRJ+ZSncnapwzeHN4IwL4xMya6u3q6GyhmmHigKyDW4uRN3psaay522U2yKS0+xzUM22cp9hC0CWnyGvQGy0/4tFMCzpP0uTHF7tnJWtrUhEMOrFkSCs5E29QZ1jpkPPRw6tK11i4wGaKbnhcPt5GVAdDpEPKvhNACgMVLJBj+YFBe5TP0TJaWGEAmOyakNjAFQ5FdQVAd9Bqbrbz9+49ZwK57h3scwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461402yb_e2etest","name":"fv-az461402yb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0238a356-e93f-4ef0-bd5c-90859944aa80","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09002","status":"Disconnected","lastStatusChange":"2019-09-09T20:46:26.9389633","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"3cd65b6f-aae8-4de0-97fe-b148da4466ae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Brzg1DSkgGIHDnWWGQSVlTdVkiqU9m8RK8Kbi0ljlasDdzQ+EJAapszRsqy2rK/Oz/eSvYSWb4IsZCUgRZ97FNcq0e0aeK3PU1J0HGvF0j7/0vhYzDf4UZvCIw5+VYhdjmqXrMWx4bhtCTHNBkW7fcZzoXTXZ16nKhTVNIh5oOAZTZ5Ac4pbRwt05kRSJAqPmr5mrXq1kbsqKWmx44jzgSO7iUVUrI/8Ye3go0pznRh5P/gqlc+wiQxNzUQZJB9KIsleFDLt6NGoG2wD/IMSZcpXPtNT8ueYiy6lANPahftwiRFeeIab0inc2O0TGNe5SBhVhnkqRiALbHUjYUDfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456k60df_e2etest","name":"fv-az456k60df_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3c0aef4d-bfd6-44e6-aeb6-d6da2b87e2bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24001","status":"Disconnected","lastStatusChange":"2019-09-24T16:13:52.5017335","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f7a3c736-5e39-4ff2-a87e-4538bdcceb3f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw5JZ1hhySrM++ChtsDPtQ7KTTwK7dkVCh5Gz4AN7K5Ut+2YmfT5LamHoWdvYBUSnGI143TGWNbkr/MKU/dvG95RcDbsdou3uqyrfy5LIl8wQzR1bBz0SL+JjdKfUQqfRAZwNtJ2BfA4A3p27WOWUiRgE/n2h3EPPW84dxfewWwyQc9beD+C76GHNlFbf2qSRSljfvxSU3DIWW9NviBj5PsmyUkgnIjTvOlVobRmSkBTZnKrDiAaVkFRNC7tnC7cNKbmr6MxAdha2eooaFHb9ZS6npXk/AkoDZU+atUm3r3Sxq362+s0oHjH1EMu5+pbRF1qR2JZLA8acd7248/fJcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03003","name":"0.3.1910.03003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"567d1366-7f8b-497d-b8e4-52a5a18c8e6d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03003","status":"Disconnected","lastStatusChange":"2019-10-03T22:29:44.9859986","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6004037f-d58e-43c5-b3b9-6723da6b1f53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxbP845aVZCZ02wsKvyWQIJVu1qPTGi58BaCEGbgXAJeB6N2qHiToqpe0Cn6+ALHOaIFIaURPElljfuE3RUYzuNNQ57WZpXJ4gHLr9ZoLuDBdAY/2+MSUT18JEPU98b5FD/B86yQGhUaFrJT4bAh49ZLJ/t3FsypYbwR/wXvFcT6I9tLqgjQB2K7H6XkSSF4LIVZym23qMS+3PFKXL/sRdpBNj6olvVzuq02ZImKBPgc7g51wdLbcDaS9eEzU30rgpW2f/sW9piDc+f3FfK3l+2959BbWVEBBnrCIRe16yx+slHP9xtdkGQsgXTqGZIpTA7msL+mNwD7JUln92J8U0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4614kh8s_e2etest","name":"fv-az4614kh8s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0bd46223-43d4-4b15-b69d-706d09de91e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23003","status":"Disconnected","lastStatusChange":"2019-08-23T20:08:03.7891865","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"58afea6d-cdaf-4ded-a9d6-5c80107bff27","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqV9O+8PlyFCQpCYgqYHGLN9sP+8PtR+r+5AKhP6aPsRoK44zhJdU3VT2LV3QwwqdEI/1lbKjnyWjKnvfkaK26J0I1SXbOf/oHI8T3S3v6ExFfuUhdR/1p5Ll11S/v4rsT623xhk8ZzoWYUnyIx9Ioz7CeMFYJp9/pmBMHUKYHxBNGgKiB3nWN3DZWAhLRxtPj/FmxZmsd2K7YCeCpcOZbqJLcuL6OVCf0B4x7MUPjd7ig/Wy5MRFY69TQVcaQks7eggIsNNYgGNa4tWxpuYNNiNp5rfFfrm79VhDZByqPLqzSB6qdxy0StTV3X/9bDO6qxiqFewkkYuEXzOMNc8+hQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4614knyr_e2etest","name":"fv-az4614knyr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"19a5b2f6-b98c-40e3-afea-93892a1d73e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13004","status":"Disconnected","lastStatusChange":"2019-09-13T23:14:38.0352666","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"76933b96-6e08-49a3-b6f3-747329116576","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0giDaWVSvjRnx+uvSVctT22HG+4ewujrdNwvNkrBzOE589f5X+xd57m03hynf558PMo0roRCAcg027U4GAXdxQUxuB/Scg8ejj2Oi+6QbOy+k9DVc79IUJDVVM5EPGhFxkZuIngqwlylxbqQJqYahzUOVxIZSDONGJ8ADtlCes36PWpGMydt13LqTRtuWUGhtzMCe5QjNK8FCdLrwgx/D+7e3ldBGCLfrMD2nlYOD+NQhwxrEvjxthLhuLs/XsyOn5GW+xkHUh8H0bdx4E/WBi2tOCXDsQ1c0nlLN0u/tKRloTRCi8HUegsD7aa6cKKPa+EA8mrArDoRqmouahNG0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29009","name":"0.1.1908.29009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ade7be49-ee1a-43be-afa6-0cfb3a99a25f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29009","status":"Disconnected","lastStatusChange":"2019-08-29T21:10:56.8373195","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"718d0f3c-682f-45fb-b60b-31a86cdae6fd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyF2Tmc45OXedobr/X/ACCZ9qbGOV5PWuMd8dFWhhe2aSYlgGWy8AtofGNJKqiOgQ3SVDB7mOhAkTUELg2HJXjZ/leNq9K32PnYeQKdXd0NLZo+TeNeEM1xJOXwnSAFaAOOXE9U2F2d+Q7SM7pnNV7Sdm1sxfKQgXHKPWeafaDOnB5YpR5mXjtoUUtlTyVXVeEyIkN1upkaZwErIRrMOMaJN1vQ6rqf990yFaLCX7CAj/hT/cu64aOlzdGRVnfo6kQtHBC5Nlb0yRt+BVTLQcGYFpbs6xW0P4gIadoBWuHwfyWSuPSAllEs8+BcXBuMH6g32zbG+Ote0ERgU1TbvHqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az601y95vf_e2etest","name":"fv-az601y95vf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"17662609-9136-41b1-bada-249237dc220e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22008","status":"Disconnected","lastStatusChange":"2019-10-22T17:56:34.4492924","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"1abebf60-15c9-480f-a108-b09514d8ce8e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuaDyw4LAMTtB115AMS3Ag8dduuBk/YMhi/D38RA43aAvEd0GmtrpQ0SGUHS0ugy9vnF50dxWzPIb7tUG8Ne+XG0yfcNKw21BmxNnZGkn0411umjugQUfacWnVjmmUJXyh/j+nkCHznW7fH6Vv2kYNwpmk9LvnsaLZG99BaZqR39nc96Gj53qN0yuv60f3QJB0IwN/WUcH9BS48lb3MSr2up4IZamnwCZk3OD0V3+4Em7i0wGhTBHdMxoLdr6nJTfqwrE5K0UaFW5MULyUnKm24osHiv+LiBtR7Snn5VfbhOVF2zY47ZOi7yPYKQyWVma21+7kGXXAFALqZjxRp8NRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4561uxfr_e2etest","name":"fv-az4561uxfr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b1e6bf5f-56bb-4f04-939a-97a4b9097783","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03007","status":"Disconnected","lastStatusChange":"2019-10-03T23:04:45.4280122","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"084f1cf6-87a0-40e2-9871-2671122b09bd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxLL+dSCVfnZowO0/loKy0QP3Gnb4a1EB60Bcmj9G1IoqrdQxWri9nqYaHiKrUbIXuHFzil/LY0JmXZRNczF6axsvenzemATyZg+rHZ5bYFDfnPKiVV2l6f1pg8613nNuWCcZQkOfhhgape2ffg3qgu1gyO6yIU7cm97uljJqj2msgiJY8mE2E+YTyMpSAc+fFTywPFhI8lkjiFCsHuVeJWOxKuD3FlhjB71yunCg1dL8OzKSupcYqk7G5Kiz5Cn9425t5cqDwLl6izPzMmFH6lempEYW1ma6W29SrXRrRp1C1+MY0kFKjGYReEuKG8RzNaBKi3CFXnus7+WyuVh9PQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456kc327_e2etest","name":"fv-az456kc327_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d7fd1c76-7984-4aea-a4aa-b9b32aae3d45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17002","status":"Disconnected","lastStatusChange":"2019-09-17T17:59:33.6456957","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"72a7130d-9f56-46a8-8954-9f6435311648","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqdGW7Lv8lCZyGPBfUr8PZRxr3l1tczq1f0c1rmnQpJhFJ65Mp8TYrIkpVkPW2a71XPWIis+kcFBCa9D2dBfjSAWYXjETcm5E/yKzI8zWlYvxyTAmZg82Rf6b/esFg6qTR9oAFNX/TO9HELtttwjCyJLmMPqTldFp3MkZEsf9YIaI5CNfwbGlteHPCBmlegWFnYXe/uXLZKvaoB337vq3WaaY+p2dJkIfeyoT7SjPU9eE3mZQc/pGBjfPeXIE+v6+3S5nq1ajcEuvrvTvS81iGZfMh4/J8SU8bRXFVDzYiyBCyiVrZkSiWcuxExPEaV7SRORLks6U93QXnpvpkv+/LwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ke8ul_e2etest","name":"fv-az456ke8ul_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aaaffe57-df55-4d04-a225-aedf17153b33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01005","status":"Disconnected","lastStatusChange":"2019-08-01T22:30:25.2899063","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3f8be945-f637-4a88-bda3-481cc49ad33d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApAFsg+sOEELAJMA+eWfYgrIwFh6kv/CaTmARFJK1KHz/XNDqGogKxQvJZthJvlf7GOttKq7NdLzJ2F8NRpe/6HZ0lwTMFjzkHh2JLFL1jwwI91RkL+HvcqNvjwFThuwzt+zv9b+hDRcpOBrIJ1TvHEpApEcry/tX2WM0nrvSLscLXWXTfvdP/1UOCejuokFBTSnDLGYsODOr6SyNqr6BLCZLUhUgy1YkQ4yfLq+owfYFCxcMGrBdLmwTbObMlnafi82R0qpek5A6makCqwcEUzdjBUfQwGzjXQ0mfjVjGygy39CP8SFZZzA5UTYY5tA+fcLjXNkU7I9288nt6auADwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29011","name":"0.1.1908.29011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3230a45-f78e-4a77-a1aa-d2fdcac2c875","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29011","status":"Disconnected","lastStatusChange":"2019-08-29T22:05:57.2823385","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az496"},"vmId":"05546842-f8b9-48c9-a222-d4bf02857abc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1uGm+oaQpPyB9CyMbhIbtBHVDFSzA7fic6nhyP0tOUkJsLdiGpgzQgtVPjuNABs9ogpZgnfHm0cnEIBhbqu9rDhc9MExhj6/6LaYWb2Uuu3GGbgYZwy3LBUGh/LfY13Sw/yEmXZdcl2hwf1JQgYjKbE1UxOvcIgYx3HRCtA16d3dboPD0QfaV+Kvlc7RZmdYqoZMSf7YnRrbJGBADVLfmx3IirFWg1Y1B+E7pSowv/WY08fpn6rtHU4zltlEDKbuLZZNyfN9UXpIARef9dP2cTRqR2JA1tBTpgu5x+RGEu5CvwhuJuDz4Y+nx5HkICfi86hWC+qpTd0P8qMP9/SCKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46151uz8_e2etest","name":"fv-az46151uz8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cbe32c8d-9b2b-4ba2-9b2b-7040c8af795e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03005","status":"Disconnected","lastStatusChange":"2019-09-03T22:29:25.2925582","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"16c3827c-6987-4cc8-8111-0532291d4385","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwAMgrIcxS8wKd2vbAUM1DAxLOXhD4B+pseSWyipUUadlJOtEkdQqGsAd2lulNuernMlebvGc8ymAmfaP9Uza9/e+tQQsVLCWPvUnkXW7zPKMhZJFF7ybzQzWC7qRDmSOD3NCyO+797S24ImGoopKV1jPEz2fm8wXnl+HdQHsDku2ETsRdoIkogJtK6QtIgMuCQ9WEq4wHxP+vJANTj8VsFKdxRp4DrKIZU9+CKxClCmJwNBshECQyejspihiW5yB6GfKEq7x91dIxEToDleJlfVpWWfT34ibSxUEjmJ9MTRg+BN+bV3vybBLbpXtEmWG3WInkfBqOzXT87H1P0M2aQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.30001","name":"0.1.1908.30001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a521b980-9fa5-4fcc-b50f-3e5f8d9409e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30001","status":"Disconnected","lastStatusChange":"2019-08-30T19:31:05.0733897","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"71995589-73a7-4c0f-b3bb-3ba7cea90a5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA66E8ffkEXLTgqNrlmIZHbh5uCWDLowBGym2toGLHMRl3BRldcACATOGfyiZzsybdqbe+AKYpUt9SRMvxZBgx2NQoEd/GKUiAshhTCHmPGMjplLF3hApJod/7T9oY/Updc5zxBEJZ3D84wAEO9OiCIKBCUKMduCBMpRKbuN9fUtPvuda+wS2e9BTZ63kRbBybPjTY6zLzPoWNsOjsd+oEKksWISvbjeGgDNe6FYwv0l+N61dosCq0ay+K9NsgQwQFqa8SLNyyoQHQ9TiHl8gQ1MvetIZHBLzlJVW42+doNwlNxbTKzgVhYnnarQtbgAHDvUMdcGmxifT8fWz0JdZ87wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456kel41_e2etest","name":"fv-az456kel41_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06014928-5eb1-4702-980f-b9acf575be19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10001","status":"Disconnected","lastStatusChange":"2019-10-10T18:25:40.413624","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fe87e767-c495-4040-aee2-dbfb753a585d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0FBQwuOBTzpDrnDWo7OE4iJgBhkWRm9v0wjG3MD38nMnPEHRAnzY9gb9odPR90bbmEIV6wSYRhbK/Ija79dzQuqrxPbvyPqPehX/79ptcUc92b3KSJFHqLS/26JbmYwBK0JJm1HJPVn9trfy805c3lLUyLhAJ8Kf43bU/PQKazZ3O+iVpunG8MLlnD1aGXzqnsWjxmFFumM0bhDEZEeTH+FB9m2zaiy3Lp4EOFVsaU243n5qrqFhNMEcSz/wCWpuuQbWgpt63Oey+J50u/Za6HAHtd1881IGSB4wlH0MScRsCbquUQLOQtCNrVVfcDZsAJlCiCpcdpA3aM2O86u3JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.30002","name":"0.1.1908.30002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4e346a13-e4a7-4e76-b729-150a32c8ee2b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30002","status":"Disconnected","lastStatusChange":"2019-08-30T21:26:05.748721","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"69c8a361-be5d-4960-a76d-ea24ce26a6a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx3RPCP79Qlv7zaVjBC4wFbSzpiRDpGX/edUitgiUSD+mOJsJoqG+pAhZeWz/pydvovZn2V/0+Qvdc6gTA7oTSp8pMvxK28IW8/NLDPPA1jFxeUar2p6RNuHwLmA99QkoTzUIK/lmMwVoWQ5x0RVY3csfifZBBT8EbfxqFtidMxbt76rhHGVzu6mgcklvTaihHdNkd2VDDeKfwk7erwmIOe2GEKPB4taeiYTadpPORwY6x+pBR5ntqeC/2j8unjigHjGS6rLxKvSWKPoxvolmuN8IXPibJgyn+OyeirBS/9lhlJPGl1tdPaEb48nNdk03g9hwzEYj72todOc1bpoNfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456kj5ca_e2etest","name":"fv-az456kj5ca_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ea4a7faf-c100-476a-aba3-14bb6b061ddb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07005","status":"Disconnected","lastStatusChange":"2019-08-07T23:07:32.4750112","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fc0ac074-8624-4aaf-a597-0f6789062218","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0ZgZ+/wcDBoDk2H8AZ56JpXkFs+D1uwbEfxte9MBQvsPjL9uib7FJpL8X4u+keFUsabaHN0X35FQ8gygsgK6kfrRPWulfnqAnP4a53tSbGxzkY6UZ0WMKzA7zNJNizmnBxZR6ZZ37c7Bx01cRQtxO9sy3M4gOJ0WlM7Skg8pa5KvVT764DLzO/5zdMYyhX0oMlwIKsEvc3XIZMupPVGnO0/1+V5KX1dG3+u+9WEf5tsksg6i+3WpNfxFQDJQHg6p8OjhnhOB4L8A/gI2eay1jkcKSbmINk+UTeMhLQB8gZbfc72tnSE0pn+gD4Nt5Diq/n8c/omYQcfAfkWpHUY8BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464jdl3h_e2etest","name":"fv-az464jdl3h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"353af4b0-046c-43c5-a636-52446671365a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22026","status":"Disconnected","lastStatusChange":"2019-10-22T23:36:36.885151","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"d38a400f-4d8f-4e8e-aa08-c5a361f64a0c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0wbqtp9Vf4Ymi5DO/Fg6p5ZuNEJZNF0I/zBexQQvK7Dhz3psRj3SSaGZD0NDtt0W+wgrpDetSRwkely5qZakA/vcXPIkKs48qZYrCbuKbZxipOBFTbzCPns1iIyOeL5fO50/ZdIODvdMn7MSNSURbSsrLI92QrPEAm1Ac5wjfN6bJicXTMUi9ELA4dhUmiqDRwgngdn1euhvWuxzqNcpxAWc2PZxm1PHwgdp7N24oZaXlnHiqle/t95Fly+gX7b2aG4SMyjMIGGHuv7VPH+O6+RhiIQ9a9BJvpmCiod7lCMfAQwhoN0p41H5qQ2vm6yF7EeKv7HxVd5StpRIKdHHPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az601zgc6e_e2etest","name":"fv-az601zgc6e_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5a684a58-538c-4201-a44e-9c92fc14a9e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17011","status":"Disconnected","lastStatusChange":"2019-10-17T21:13:21.7043179","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"8a2f1616-3843-4ed8-bd63-ec5e41b0630e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyocxaVhMb/3JjS5O0y1BzYOkYYQMLSBBvxk9m1LYR4wdpvyxxyzodg3cVHxgY+8TI/pALpuyAXK8q6BkXQUajJHvhu7I+Qunt9/X8XL6UOHdIW6W/mVn9q771Z8Rtuz6CtBmv3UFZA/imdQKhj2ZRwwJ9AZY0NUT9grIK3mvrpdyCVOMt+VM86NhFJullbE3RMxNS7buHDfnv3IVBy0hsgGiXbERhJZbh2Jpl3bRfsAsr+crblHsGBWepTMWuO1Yfar3NqFkHzGaVyFBwlifeKAkObhocT+pCg5ksXfIVHXwUd/l9dyp3kgo2y6JG5R+NrMEZoOeC9WOG0+RbWvylwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464jn0qg_e2etest","name":"fv-az464jn0qg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"605feb8c-126b-4694-8b35-e3f35068f727","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01001","status":"Disconnected","lastStatusChange":"2019-10-01T17:51:20.1567878","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"a762a1f9-ac0a-4205-b9a6-b82033d8c560","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw9sHc3p57Noqxv1rUx6RQuqkpAk+ROJZ5j/RA2JpAYBefP8X0KoBIXPRc7vtynq85QQObxplMFSeq+S9Vvpls5yAauPCfer4DjoeI3Nn6J9/TUi3rCkXrSIrmZxSvUXzHz49FJbdNtlFYRqQhz/gve5pTDI+zZgIFJlodgEuQgZpfrGwBrCbaLhzOOAr7KGpTC0ppFAjRbTFOLoRol1GJZ6CmY91vE7EqTv+ubMjeGcclyfhXTx9WtULveGEdwytIXtFgdxRMD/HAsaW9LfemFwZXA00M5DSX0X6kI+bKAeKEvsJ0a9yik1sYCneFydVVV4cq9+yjvQiwECbF2sf0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6107h943_e2etest","name":"fv-az6107h943_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6cf379f9-f4bb-402f-b4f3-921ab000b869","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22012","status":"Disconnected","lastStatusChange":"2019-10-22T17:56:34.4492924","errorDetails":[],"displayName":"fv-az610","machineFqdn":"fv-az610","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az610"},"vmId":"c4bc89c9-4d49-4166-a533-0e736f1ef1c6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs7PlCV/zAC6Tb9fZO/VxvSzguNQ4usEsDRLveKm0Lgp0FgBTlOwcMh7lx1wt16EbEFNkNQGm3hCfD9BlaKg4HkT/1R+Wp89P9VeBtpRv2I2+EI9eUqCjqhtbLNsTmdkkS1cRgpNWX3Bu63V6Nix3LNeUSzrekRMcWjYuLh574uOMKAclYged82Clap9H1aGVdvBaovZ+R89IPdGPdVevdf2T/SdA0qHvs5VRoqcUEob2mj4gbgnFDrCWnBGsbxuOOFB4DrzVMv6306+24/h672TODG44MsDXdXNgntgl2Hyd9d8FHKrUoha63QMsxGqYFH+PuZkxWPvaybdxVK/8pQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.30003","name":"0.1.1908.30003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fc574c45-6758-479a-a957-9dabb8fb11b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30003","status":"Disconnected","lastStatusChange":"2019-08-30T21:46:05.9495073","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6dee1f69-8cff-4e51-9f12-db5e49fbe4ed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAweH8pa0dXYGEh8VB6hTqV2lQZ5+004SY3WfhDn6WWQ/DsDe3166sBcLFOOKAPJ60o7d4U72KYHCY8zav8jOoMOVZ9TFuHrIYEAxYKQOWudeSQc00WMwdmPbgBUY6Xk9ag8yBhqC6dc2uhDCex7cjIttXv35BTdAlIF7W1GGGWKxePYUQTRzdrMtL75x0lfN/Vapc5WWGm0RrqGbvuzWVbVCTdhzL23aA92fWhNccyo9M8e20Kn7Gnyj638NNEycxTluDPuHc5snr+GDa9p7Ahp4b+v87yDJ6o42qJXp/CCuhfrkFBQu8/8Shd10q0i1kFgtUPm0UZZJMAbLCezg0PQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464lpg4u_e2etest","name":"fv-az464lpg4u_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"445cc867-b5ab-4653-b245-e3eadc1c9ca2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18003","status":"Disconnected","lastStatusChange":"2019-10-18T16:53:42.4800251","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"2ac9f468-0d1a-40f6-8903-e3a52359a96b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxEyV1eBKTAIz+PEEce5ut+6kIrl2magOCvy6TrbhP5RpVSMNhKMIn6lOuniMgaJTw7d6lj5oGu6HcucsGNQQJ2yOnSkmtLFzt6p5tSi/LAiwlKMzJNNN+/l54kwmaeW0GMhV/UL+pRLvgeRGebVdJkTF/vRcm2gvBiPxS7D+UtvwnI4M9bGCrFDakENHjXmorrtR5aaTh3OKRTqy3WDhOB6Cay2z47xg+YKC8dMJwpqfrzUKOfj/TKfxkgeVSrjZg1Ggnj3lNU+kjna3TFDxAdjIILLtMDrtjUye96lg8hIgZ4BR6SAgGaauIt9bgvoATr28nyBQGZG+3lAv51A1uwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az610i71b2_e2etest","name":"fv-az610i71b2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"66e78771-60bc-4bcc-9550-6b4ad1af8be0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21003","status":"Disconnected","lastStatusChange":"2019-10-21T19:04:22.717366","errorDetails":[],"displayName":"fv-az610","machineFqdn":"fv-az610","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az610"},"vmId":"24b19563-f47c-41cb-a6c7-3a8ebe8be458","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3ifihlcSztHQ4R8KvqGtTArXMcIPTwhZ+KWVxzVmxwChjqlsOWTEPs1A0aqzLbsL/9iS4lKZ14y2WRWdiZyu0z1F+wyA2E69VZXnisc/RO6ZFK35M+9TMns+aCQiFE8QUQJn9tOUvZA9/eExtvv11M72sF/zrVrxr0qCOZDTM1cYOe2xL6KRIwzRrEFSK6a4gugkN/ho4Kn8dqGtBa9u/gAyiGkBgNhqjdB+Vtl5aXBqECD0idn8vwjcxTLrVMrCisI/ydubjFVvbdnJF8n9tht9+GoTWuNeL/L+exP0ubvwJ8Rs9RC3nf4D7MTe0DvKgdrMXjIv7mn0QEhZp9iPVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456zw4iu_e2etest","name":"fv-az456zw4iu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"911e7eef-25df-49df-a6e4-dfc864444148","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11001","status":"Disconnected","lastStatusChange":"2019-09-11T16:45:52.6759191","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d7221b15-f0a9-4ee6-baf2-9a1e98a29683","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4d8je7le+IG3AS7yfJKKd6HDgKr2PwO6A0w5zeyLwo3ebcItr+hYlFthfwQTfX7zlumHQJ9a35nhcaOxxPJlQpNjXd7eccB7L0LknOQAmF0UTvvKulbsunsNcmfwgQDGAKxtHnq+cHiuIgztHieYsZi9OR7fJjf9WMvdoynlC/VOfVtSHTo58ncW1K/b9I+9yqJh5rVtOCWq6SxTjSChiJ4xx+B2jC4kt8H/vdi1xcRDq4inlsSgbJj4FN6R0FfWQU3ozxeOBvHAimHmomfvykaz/iXHkafjHaxKj2wfxq53twRAbU9wO82QQ3s7+TTO6k5xzulD0RLndpYdqly7JwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4616i8ks_e2etest","name":"fv-az4616i8ks_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fc8a853b-706b-4603-9d0c-840bca30f09d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23001","status":"Disconnected","lastStatusChange":"2019-08-23T19:48:03.5830624","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"bf3f7384-dad9-4c57-8417-fc3303f2a435","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8U46fsWL4PqxNERClfVPYLGmczbg/Q2JXUpyGKzCxvRnA3Ug5naGnjr0AqHc2UDSTMc3jwugy+82iiaXx7Ue7sWNwpmzIa7v8xtBnxY4mPavkRS0C0hJZmp1oN/5c3Bmh9k7Qy+98SUkBoGgA43oOkIF4H8Xuq2cqFseOlztSyMoGEHQMJjyFo9HNChEMJ+4QLS9wdr3iT1sCXw2H2nu8l2i4T0IMGu0Rn5Ch3WaFiP8Nesik4UtGIyxoRcwWeEApI4XW8mzprkNIkIr/z6k36Qzatalozec0+jS7EQ+7z1AuuntgMrDrSybSnbjyZ/OicfV2I54jvckHR6/yR9cuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.30004","name":"0.1.1908.30004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3b84785-3ff4-4c8b-ab3c-d88b1741e0d4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30004","status":"Disconnected","lastStatusChange":"2019-08-30T22:06:06.1981756","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2e840049-cf06-4564-b97c-0ec537809ad0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0wiHWyTLS2U23lgKvrrMk/5wGuDl+oPtgp/vhTtVkfr988RHiPBUAM3HxVJUagY89Lwo/V6IhAol4T62uo/xBJHUsjBZPRJMzmrQbvwjJIRXaQ4pYaZp6u6gt6ezDsKLqaMTpqqgYiupCHDdXRyUEWAfeH7ApMDGUEIWrE2zMgfQ+YJBdOFhMo7iwe2ji3ecdbeUhZLW/dsNLHibySHPMte3z+XuxbcxGCtDFJCIVoTPBBzc7SLLYJYZ1fss1/DCFpRDcO1zLG3bqEOJU6yhFmH143OUf5hS8OdMhJB9r0f46UdDiHVW3VGOxebLMiaSmN86VckN3XGMm+KcdvIFmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456zxh9b_e2etest","name":"fv-az456zxh9b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1129b71b-2931-4ce4-86b9-b436bce84bcd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29007","status":"Disconnected","lastStatusChange":"2019-08-29T20:30:56.1453929","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"97a8ca9a-cfba-44ce-9efa-c51a83a77bae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxeGSYRL/b9Q+GCThE6TfvSnI7KNkkiNSDIsAL1HYsXwcY+9SCD39ZSp/OxCCheR3G8AjzPAhxThrKvoGn0O3fSWyCY2rg5y/v5IHCAxPfB2+p80OY2QLmzAoLyCKGqqQStQlFUEcEwy9ZdOMDKWZYRtNdsQJHG61LrqIJhxMXsM7IoGCM8MHsVI4n2+/65z6bUDUjcOubXRaS++oN2e1lEyH8DbpFcqUMatOzIw0S+XW5/oGnB1+0Q5EzreB8b3kH5NnKuSuww6pskMKC7j9m3Yj0wujABAaazFQs26dJyfUno9a+LyhVd1/j1Zt96jp47Lr7qMBzMRR3C51MkloMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.30005","name":"0.1.1908.30005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5a4cc88b-ca75-46f0-9419-81cb2e6cb7fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30005","status":"Disconnected","lastStatusChange":"2019-08-30T22:31:06.4019615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"20af7729-452b-4414-b0f1-b1d826c47ce0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq5Sno37MqA/zIGuaHds8LSk//XdyM9/GVxduzP3hJSGAVd3bj8FYTwRxSE/7nVuhyUtTEyMor6gX5AX7GjL4AhbiepwWRiiKAgkyJsvjRLf+UeqMmh9PjoD+GbKv+dixXiWpHSEdARGjRzs2trn8iPMky/B8hJhvCp7PlJdWhNQIF8HcYbiVATZLSaVlMHFgKOPpovedofZNWuIoPw/nQYAwMi6NOfitgP5yXg+q2qy/Oah3FG5Y06REF4Z4g6r7V97kKkFEmBqyo4wRApZ3Lstn4FEqPB8obHXdjTkm1xlAiSn7H5rYmYedZ6PnG3wmkZAyUgikYsTmGtbz04+WswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az610ivf65_e2etest","name":"fv-az610ivf65_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99431e0a-d3ab-4d36-9dc2-7be64a58f731","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f93d3288-f18d-4908-9187-37622fae13bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5dfDd4M/O06Exfp2nFmD1tYT2efxw0Kz86wK+IQlGNEvmCnrUW7E3skK3SOlaWU5pGK/rOPSLURGWkqaOUmDdBWSETy2Q7LCmrEO+eSxqrbMi3lxgE/fsir2fjOjck3eLQn6XhD1jpAueR6zq63Patl6laMO0fLQY1GAERlbBp0qSRhZywWtYvKyfkk+hAtUB+UCwGIbsDYjF+Cc0rqarbHpNdUGo6uy6D0aePSxnFdgZQSaCGg10M+AJqVaX8aQxcSH7IdO0mIQ5lh7L7ZhGADp8z9YwX6xxyN3IllaBiZbqXd3D2rZ17C7+Z0SIjfxAyulMtiM+opipmbggyuf8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46176qfc_e2etest","name":"fv-az46176qfc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9a1b5ac-421c-4637-9f89-036f98127bd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08001","status":"Disconnected","lastStatusChange":"2019-08-08T16:48:03.4666129","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"9a2a749d-87ec-45ea-bcc0-ecd113d31e08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwpGdaCcx2dBXN1V/Xa1FGmObmI5xVZuwwUZ8R+csECnJQlq3acvAyaPx5iPlpiDki2Hm+N1OfcB8lNjVkILRbEN8+02Ys3IQADPCpZBr3jVIsL7MjpDPRoGqFOlY4kuxg8HGtL7wFroHCU6m9kkZft4iIooRecMDh07OnhG7Autlq2NkY3h91e+89j/INYM5SUMqClDnG7S+3KsfXOv7hG+it/dhLLKy5YUJfp1cA3ao1OBjB821enDl0kmERY/9k0mqpb2cdyils5lzK+9FaMVqEjyNX9KXtNI+j2nGIHdYPatdxUudpt6a+w/mex6JyirBAA/h9tF6StTgnMAqOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4580hdcu_e2etest","name":"fv-az4580hdcu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"17ed8ef2-cdfb-422d-b785-f383e735a106","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"44b0b673-d5ed-401e-b60d-5d74fc7e7527","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4F1ZtrED+7/P+IJj9FIs5GY6tUN6IjWNzfwVAP9uLF/keLY0fmBmy7OlD2WKyUMVCAubFQ19YjBSqFI4QCYvuSxyj7QHjKYMh+SWHKRK9Xve6EbPoqjEau0pK2Klyix3GO3pjWlhZeu6HQ4a6Q8h1tJEF0Zw5BsWe92ZeMeoky6tcKm81XS+91UhfaNv+7g3Rz3Ch78OT66lpw4ICNXf2Mx3j2S2mhpxDs76RulHvgMq276t0TlqdgAapyANy5b2LHEsNHYLbcpcMdx7sqB9RJhtMz3lNW1fSZ7IDC10H/wUtOJlOuRt/ZC6JXINp9kNsiiPnoi4MhH8rc3jYzvr4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464obqe9_e2etest","name":"fv-az464obqe9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31eb39c8-ced4-4f96-9aac-a84af6995ba0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18011","status":"Disconnected","lastStatusChange":"2019-10-18T22:03:45.4617683","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"8c58228d-9e1d-4444-8c54-8a68b44caa65","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4mKyKNOFde6fkMYAw1uDHleUWvwwwjLAM6yxxFoWlSuSs5JLvf1hVmbkDXDgnRMgAwlb4kvOmjHrcH0UM/LCgG0YhiLfn8g1NWVC7qB7d7HQBKocQRgI8JG87UaujHce+d+8rYaDzT6WlpL2W0tuD3+rp4FnLu8ia8kIhxhdLHFU83wTrE/xqkUgv6o4IsmXGXGRMMG/5NYq8VequhoFfe2nK4bXS+WQ7tvjWdf9eBk8mcP8wfnkvy+pPTEaNdVOzkMklM+7ORef2G9UQCSpDsYQFbsNgNX4k2Kr5GT+1NTGCDyVduQ009fOLIniXMp9KhRqPpquKiI/ZgW4hvjr+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az610zk1r9_e2etest","name":"fv-az610zk1r9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"884517cb-ed65-4f2c-9f43-ab306834b9d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21015","status":"Disconnected","lastStatusChange":"2019-10-21T23:21:26.7568926","errorDetails":[],"displayName":"fv-az610","machineFqdn":"fv-az610","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az610"},"vmId":"a9c165ac-1939-44e3-9904-c01b4bea0951","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsOTWW5p7lP4Xb93eSHOKReKx5S6KW64pUuSLvqyKQaS1+8PY5ePGgLUuaHp/WJVc/zEMv6A9Br5fm6BL4X+E3ADYi9UoJQnzeDjVIHyon5mAz04lMkF9IWUK2omF6+YwkT2ZZRuQ/R4qy9KsVzi/USh+eQv1X2REEcTTMr2fqTcZCBA2DgGObSLxdBb86qe6FAC2ydGZStVNXJ5qi/SxLBCrHy4N/kg3bamfRSzYgI7bD8fl2gGMUmPaG1ZwBoT8z9pG4YcGXbbdpfeNf+7a9i5qeVhcoRUckGVJ5/bO1PeYHFlgh8G+Sh8TGHDJ1c1MMJ4yuhFENCpc8uB1ddXHqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458158a6_e2etest","name":"fv-az458158a6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3b0ee20-d029-48c4-ac71-7b25aafac56b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0e594473-1b80-4d93-9a72-1bb294ac0ad5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqLgDEDM4K7WMsyH2/p6V11sGtM/F4zdZOuaxtEPvqWYuwPOx8ZWnSmg52gLf/psvtsVHQWhN924rEXgx9Q+Ue87kvQzGU3hGKkLS89+gceCcK0pHuchklxwGXcW3xcvlFJnbbIvDe/Z8PrnOoDtQi/pdRNc5kUEBfrHmP1uH8rJdAznZOekI5FbNtVg5s3vEVr61h2YRNHHkvxEq1/iC6ySiZK2u6Ls/ov9/m+7L1yG3Mw++st4NIWozkJVZrLOcR59MG2EQmtncel8IbAXYvxDxU+FquhBxBJOvUmYCcDfKy43n1jrQRt4ohzQrj7qKJtruHAgu+i50e5yF3uVh4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464q86hd_e2etest","name":"fv-az464q86hd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"528438d6-cd16-437c-912d-d011617aa285","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.14001","status":"Disconnected","lastStatusChange":"2019-10-15T00:11:14.2127389","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"7fb43f6e-6fbc-4ff4-bf6c-73ccb13158e1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv1ifwwfKMVo2tKt8xVVQyW2W800NgeA+4J/1Gf1T1f+Q8WGEvLlZKI9eJOpyynf0aTzHwwgD5ROjJWoxOjubNsuvtdrGxNhys7hp+oqzbdgWnflzjMaMUOzk4rusSTikJ/Z4N3oEslfmaHEZ/dmW/dK5TiLSBXADn6RA/75TBnH7MotSAN8rS5WhsBfigLik0itzEbc2DaXBqrDH6B2Q09Wn3T2xDC+SD9twcf9GbmpuoI8ee6Tq735BPNrZICZPsQ/EaTC+pSWfW+rRkzQAId/99snTOcH4fzEDhK+YvQ4nxPzIQVTIht3NOlUi2N5wWqAgXQpGDMHcbEnje9hqzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03001","name":"0.1.1909.03001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"067ae3fa-b2f7-4288-95b2-e75e95b79628","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03001","status":"Disconnected","lastStatusChange":"2019-09-03T16:59:23.4245954","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ff5348df-fd85-43c9-b602-755e5087c1e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApysuKM9kUJDxKwRLy4by3Byce5PdMSMAjFQ2GjsC1D0QY7RnjIfzUxkrc2EoWE64ZKm3PnNp9kf3m7IOAt+knkFECV6HWmBJuAmrvKeIkpWk1OuEIcYzjLbHB3VQSCOlxOn0JHSBiMGUW5KiDhbzQEnOiRkg9PObu1BKYZMobP+dondKcC75yA9Chc87klI7s+M269qSAUmWjPyHxUXOJKRNK25k7rVzvoaLvBOsncUMVrCVqmH7lli3iobWVuLb3HNMUiMzIncVxPjc7MBrVT7q9DK1Q9Vu7yUrBK1P8z9i7yeJ01HL2pxBIH0hidWO5iSTkfAjwrX0YQYARMc2pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456kn0ot_e2etest","name":"fv-az456kn0ot_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9d637a0d-a268-4286-8c1e-b1c35695f49e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.19002","status":"Disconnected","lastStatusChange":"2019-07-19T23:38:59.140923","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9fdfd9ca-3f2e-4b6c-a315-32a6b223f614","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvFGA6bgDFzQoiwnbR3jkxUFcENXmEotAZGBZp/AMXM7vQXTGIKpJlqGoHmF9eJ89DeZjWjy6+hlBbi7LrNoNvhZK2Ujs0j5DO23WsckL1Myd8kJvZlP+xlwePy6CK/hm7uBSEtWIz1g6lY678m2Kv7bGawHtj01aRYa0qcEN/Bxxbo6xPVUIHySU6oUmnPuDvv+MLcND1IPCocUIzTzAUD0CQP8YykrKNm9/XFVP8+zW9bVCc9VL6l0wc/wLCxQhdZliPx/P5vLb3Xz0wvUsfSbxv7HQQkutP7HiKXSdzuxEMFByfCzwXm/JszTUIPqB9oyNXeXUT0yO0l7fCtKdCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4561ysra_e2etest","name":"fv-az4561ysra_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9437ba1-f4d3-4d3a-a85b-b3f0fdf8bee0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05002","status":"Disconnected","lastStatusChange":"2019-09-05T16:43:50.0719035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b1be155a-5e99-4a4b-ae83-41a46aeee3af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwlDhlrF22HnZI/gxxIF7xCESrwKKwrzXcIHpsslyHM0HljkEd89IuEzo7cdglf8uAroaN8WSqIte534dJiSW/EI6Y7zrplOvvtQ2y9MyTQ/krJ2VAPoZo1Ksp7y+Q/FeDjpTN0lyzDTF791tM+qSNOkQaLzjHRmYTqOCe1CZuZd7eIN62GdOopE8l4B8ycQb1FQH2Dg3wQPRSxlCyc/i8czVZ2LBhdVyqxKP3HsGPD6TpjTk/6GYK+sY88OH7c7A6DuV6VYEw21dugaYXh51Dmv+aquFUtRlaeD2zspyU9InNcVsDVxhQgETPLUTDWv3gyG2AqkHacXiqilqay7ZdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4581e0jx_e2etest","name":"fv-az4581e0jx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a2c8a209-d665-448d-888b-399cba75a82a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02001","status":"Disconnected","lastStatusChange":"2019-08-02T02:15:31.102508","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"a375999c-143c-4a97-9ee7-a020104f3f97","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4F01b950UFm6IMqV1wUn0e+y9ASY0XeoODYNQIFld7Kuw/cCK2OhyKUaaIbELkQqGDshTdyyjH/ArwsZjngdUfKMvn/BY2flYLQkEfM00NmRt0VZsnEGWCUJj/QaX7sAQ7MmpA08267INDWxr65nWQhL5xYjQn6Vyv4yWQ0bMeiKDGlMWWp41D7j7s5CutZv8u3JEZEABHdOEwf83aejaUQEpuQtCMoWALgl2UH5nRzI1AY4zkVa8jwVrCRX6jYBuy3EXfpxmjw1i6mTjQV9bk/rMJvRXQGfodBzQ2qunyzKYHwhwt/wYI2MFApbc1BXPZzhXkTsngNyh5fhE2fVLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4617oure_e2etest","name":"fv-az4617oure_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fa0fb2f1-5d9a-42a1-96bf-19aeb163c7f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19002","status":"Disconnected","lastStatusChange":"2019-09-19T19:37:42.6754887","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"e6316956-c21d-4c27-a07f-d496734848d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArut0u4Gh2ZUVQ9HtIO/76yJ2EnJLnLIKQTZahnTHCRPW8/Kk3MVgCZl8z5u5P1C9YvX3PNvnFAsh9OkpWYnooQJxW0ScKjrFQ4UMrvrXKTI9msvdjSEatQxhlk7ss6NXibcMAwvRJFf8+ZpoPbY3B3eoxoIZWQSe3lFa1eTsaoPDq1SSbp7jF/6+Qau1CxFBXKADp2XHgFLaP5FvS+J8a7/mo3Ds8IFXXvIC6Rnh05jzah6rJ9RkYCyLKqw/Pu2oXfIsADnvlYrt4+QFY0eNWCaBjROQyEw4dEXxiGjDVSZgsjyEysWvG37UdgHJbgxZ7VMHQ5CE3ggTCCT3IXEu3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03002","name":"0.1.1909.03002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b384f090-87f1-4ba4-9f83-9d47af50c4d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03002","status":"Disconnected","lastStatusChange":"2019-09-03T17:34:23.8029945","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"69f5d50c-20e0-468a-9d0b-0c32c9c04d96","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqkI/FDoFtbMxrEmX9AeVRddq/R70ug9lRECWsZCMl0urtmFGEWfHMocJ73jkvlyLVaokjJvlr4ZgU/9+Bc6kelplJ1jkLc2vLPH7O8EW5Cyqgkc2osfKaoIWkut0UP2yrHWGWbC+EUfs3QIq7f1UP+BkupDE+RxViODRKZTvuHRr+YNz9o7zJTALG/UoQeCeg0yoy/QwpbpHc2OBSAb15aERtL8MMlGuCAzjl2p0NqHMWtRtAUh4TXnrmi0y1OFKSIDqUyuazbw7saYj1p/C1OOk7tjAim1ds32kyJepyO5bPIRok5qgWcxkSbG8Yt3EOWZcJRw6LJtjndxuKUL4OwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4581gbez_e2etest","name":"fv-az4581gbez_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e85fbec-4aaa-4357-b0ad-be2342a9962e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20004","status":"Connected","lastStatusChange":"2019-08-20T22:44:33.0590243Z","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"e4788140-1d96-4e8a-b2f0-11fc8c097e97","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArbct4yR6ipHWmleu1PGBd1YpnvOPnv3txOmn1tV97R+LLfJTNV7bu445+0L69lP9BXDAdlWQl5jSATPRMP+2yxQdI8iZ3Y1SnbwEYYKJvGqdIAtCjnXdSQ7uVkUzhMEvTyI+khDe4R9GSUf4+H5kyMYOalIsZdUxbuPB1Mr3yt0otNZhtVqDONoRE8I7zVQL0O/74/EstermlsL4Fh53BjJL2N+IYQmSlZbWUA4WkaJ3QPVHNZx/fx7BzwAFNeM56Euj7lRLyiY2uSmT34MYSgUreGcpmHQ7P9rspatHTLyQH0SOnR/qQ/uUUvHypkOgAhzQueFsq73heziRvYrXHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6235z0gu_e2etest","name":"fv-az6235z0gu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2364ac5e-f602-4886-8af1-2efd8f1ce167","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22002","status":"Disconnected","lastStatusChange":"2019-10-22T03:31:28.5340666","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"ab8c5f3c-d50f-43dc-ae16-75d427874c9d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtJXdDKK0orr9cwd/vdXLex2+slzG6gWc1xhDRqPz9hH3hxKss7MNU5e0w/bKSoIpofFYDRhZrrRTETlP3Z4ga/7DvSAl3SG4vPK5ZLjDoxvKq52XbCjY1cys+CvcEF7xfHsvv2anrNCKEBLhBkkvHae99kj5Qv5An8+MyQ09iz2uDGSTopOIVryslSJhtZnmCQvNuGcdVk+ORjCLjLYFcY9yt/nwYTCNV2Npiqum6m3Ym/jmEa1ciKDuHZezYUge0tGzlXG41TWagDuCEt30HhelPUrcEvkA6WUdCCvUZ9p+bLiFT2OFBG0DAQvvmfmNBoyuq/nbFLN+CIZNuvaFEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456kylx6_e2etest","name":"fv-az456kylx6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"411af5c1-b378-4f35-a296-659434af8dcf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24003","status":"Disconnected","lastStatusChange":"2019-10-24T22:00:51.1244851","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"ca5b47d4-d42c-4131-9c1d-ea9e84cfb203","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJyjb/l7sI5ISTFd0LPkIPxQ/dYLe6yWwaNh6LyxypEQliusu9Vt4LOoMtNvF+Z6MjNOs4bdVZw2Jo7fieRoCu4u6xBN18mIpZZaiN4i19It1FS4JG0E9HDcMET2p0/IO2+1lgjwOWhS0QfYXMts7Nj6V5XswrYWMl5U/2gjvmQ08R79y1dehwR4Gu3gumdm9MsPWb9LVbZRT4FvfiJD148RJ31LFRon/5iCSkD4P3wJElR7AXfgCYWWvSKNHlG28ZwyeoGN4fhA/90eBCH0GkOnoZ2Fz8+zAG26nR6AJSqYq2UHoOkZdtReNLRCbHXkfk2/LBCRUWwY9AiUdX/aywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4581jciq_e2etest","name":"fv-az4581jciq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1fcf1692-a637-4e60-92be-fefbda6f684f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21004","status":"Disconnected","lastStatusChange":"2019-08-21T19:16:13.6927026","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"d8ee94e2-1707-42ac-87de-f75f239ec0c8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvZY2uSJM2LgNKzp8th00dRS1sLTdZP9rVIkMIO5npKa8BmUSfYRGqMqOCSBbIczfHGdieO+EbBhYKxp7WNNt/yd5xQNPyouIeth97TuIpfT/eh3tTUBGpXT6a9/bWnlP4y1chWlxeqzEkNEisiItYWkLleI3yQDaOx2H5DTMWdPpiIGKsQCTVrJu14stlNSW9EDz16LDQVZqu4bK8A2VtpLiGKj7S+FHDTuiHVvHi2iGfKIv28oivNFbAT5HPm3vJAPA9S5OfTrvt8dmY8aOBWTM4Y9Q7HnELe1RfPRc3IQLE9IQLrttiHX7uEnuVSDV5+FTOBpPz7Ll/JDlIfsywwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03003","name":"0.1.1909.03003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97339553-039b-4deb-8624-7a3c9292651a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03003","status":"Disconnected","lastStatusChange":"2019-09-03T21:49:24.949923","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9dffb059-0a3d-437f-8802-3bc6350176ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Nlq6C2KQlokn5NqyMjVAwY8jFJ+3dc4zSCMdp2+/D4JVgnhNhthVEWj/XzLns0IowJkQqVaz1EB6iOwREnPd5Fd22KYXSh8EUW59dZnQxcA2Llnk1G8YjyeMfPsp+ElhSrpYNz17QX4vtsnoUrwc85wwxMYxAFWmq0vdIIbklMa1t4NBO3FpjE68kXfHylf+UsRfLKLj42MEJJ0yotD26R6NeF9V781IlF++OOvxaSbcVp95qFu86r1wRNZSfN/ZD3U9m0+j2PiWz2rXwb8kjyQj0rPj1Yxd7z1uKqCNU1ZvAroYOXK6sVYzddwAaZ0Nk4htjyvxnmRqvh8gxoMpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464vfkcw_e2etest","name":"fv-az464vfkcw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c7d8ebdb-b4a7-4325-a4a9-93851bf6f7cb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23002","status":"Disconnected","lastStatusChange":"2019-10-23T17:26:41.2063686","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"41f8294b-f16e-415a-b2b1-3b2f15f7c35e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuguUFdox0ih6JSYzl3l0kChYrXAPZoFLZiWKVgXMAuiOfAlVpTdueu/Kn59twY0/uhpMFGZs4+L14/TO/JkT0meGFGCFeosSKCrC4DWA+ujUj9t2vexmF2CARN/Yg7P0mCOYu48V1o4qJV5Q4OGVxOQz0pRD39Roe/fjLqSmDf4tzKt3UIB/jRyYG+YBfelBr68C7Ukw02ZliVI5ThakL8clEKbr8V5FySNDl7utzgVo1pBoHNrdxSWL8hx9ljZVGuaorfCMIeD1t6cF/IwgfuL3Sz33raRbS0NkoMZmelx7wTNtNJEqeqxfh7/cbOvhuBWyIvSs/x9uK7e2kaJJFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6238pvbd_e2etest","name":"fv-az6238pvbd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b4ca4059-77fa-4421-8acd-5f2d6e8edce5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22001","status":"Disconnected","lastStatusChange":"2019-10-22T01:51:27.8141881","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"c733e542-a04b-43fc-b114-991e7eaabb53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5c9We/9nG4C+meVtkObr7F7rJ/eDvipZRnF/yWanCx3+hZ4nzREOizSWuI6zT13pBpI8L8QqyKOByDjR2qH5trC4eF2Sgij1IOWy7u9Vcgf1nrZP1OL0D6u/+E4zeGalU6HslmDoKrWJ80ZNsuVZfLSWDfXD3IuLrcYwFOU8fuRoPHVDw2klkF19k3timoWZMepWP3rME6sLpjw6+CEvTYDao8+x+0y+fAdKWABi7GeFzVBcVO572l2uvI7gZUixBhbT/0LoN45JUx6S2Smn5g4VeVrPbxfa6DRcGiOF8eKhIp14oqJupsLBQD35xFi8C3MG71qpp6+YV/6n6KQiRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456208tj_e2etest","name":"fv-az456208tj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d1a3c7d0-a1b6-42a4-8a96-a30cc47bc8db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22004","status":"Disconnected","lastStatusChange":"2019-07-22T22:25:20.5709341","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3e61e9b9-fada-4463-904c-e1724656519b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz2shSppd9qzVowBCZVfP75H7+qMLeX3vOsGoZu8l2OM5kRl4zqYP6We5C6trcopZtmuhZziGb5V1/OierfYOTIi2N9RVPtBI+vP6zQi0SPDtxgBWcTKF9hRBLm56H1WWxfj7G44fFB/dIvDdxFD5e9exza3erS4fU2ushKs423/xACKcLlz1khCE2izUlpI0cVGtcIZTtIBwGk2Zp21gsltmWqoAfeo5PB0Ng6QJHbf5jAIUZGIDenu0KOy3N3DLNQQhrQM4a3rbjSk7WdorLO4gBLUWgSmYWv67ISUonKBvvQZvzfVz0JgxK1fH5o1iKV5K72Z3aYKVNueyS/MfWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456l2qt4_e2etest","name":"fv-az456l2qt4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"30e983ff-fa1e-4d1b-90e9-6487d1685e56","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02002","status":"Disconnected","lastStatusChange":"2019-08-02T21:31:05.010805","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cbe0eb1a-ba2c-44e7-a30a-5f920a79a818","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtw6FeeIrZ5ug7TCESNJdCJBNh3SbIXN47WJzDJkws9K3H4irmIgMr+EckvWBhlyR1GpjlSLKFEt0jjuvk1YiQM/7d3FNMlYZ40dsfI3OpopJ3AUTfVhgnVgMuNHBuJIFbDDKa5U4eFrpNStvgNdwB+WAchLBxI2ahN/N3Qm82/D4Oh7IY5AOVLJ/fZk95h1NCVAzwdPMhcTOI/YTa+5ozdhzulQTLe21gAEgGN/6ZEHdSTFs96zSb7dws6hgLMVayNV5oSG73YETQHhvWPV01Ljfe3cOkQ9oCfKQuBWio0qCwOTyWI61AIWZJfpyqyT8D6VgdousEDoyqinzR6bvDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464vx29g_e2etest","name":"fv-az464vx29g_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9d754ab-7895-444d-9dd8-c19140efa282","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18002","status":"Disconnected","lastStatusChange":"2019-10-18T17:03:42.6807387","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"54ee9a7b-3bc3-4ff1-9993-b15680fa6738","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8nEqpI8o6TPulY2/gjpLvI8EDuNVcnhwLxaiC/RNsMPKyq2MkVe9m330Kw8gc7tJhrH9Bxvf+AjgwoK70Rw/u52wJz/o0nR2QjuVXC/vQ1a/TpEGWrik5vCQwJspfcdsVPb3hfjtT/AMQLZUu776eOMKa6Fbicqwe2joBMySMp3AsfCqalS0rrLIASNZRVyCPh59nkYT6l5tJ0l3EMdUK4b4f0l+CfRImUsaudRuLogRBjU5r9vaVOl08k3tZIE2UrTFSPRa1hK9OI7SluNjQRTN8UHtPedg4LpbH25/Wd+v4HCH1d0gtiqB64Jre2Hfuk64XyyYrH1oZPUtgMdBOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45624hzc_e2etest","name":"fv-az45624hzc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d2bba58-7543-45cf-8682-8d33d95c47ae","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.14001","status":"Disconnected","lastStatusChange":"2019-10-15T00:06:14.1298481","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"67ffacbf-ac6f-43a2-b78f-4b39322258be","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn60581XB/evGUZm4iwlWNIbuIPxze9s/S4bFZsHxyUH8ZovAEi1f0QSSjpiVdykEdtaNnQujQj2e+R37AEQBPubp9dKOJZxAlmg9u0Gy5Q56usHHWWhCo0Q8RwMSRpdbIMqhkcXlMQJ5nYBA3WfX6tOT0oMKNZmHfiS/WO+DnhMvijg21pilw3sue8cQ70qoR2r4cQRwnCPH02oigqup3Iv5EwQ17OLEi/1qyaJm2n59nSoT+hkwQheReDTmlUgR/BW8H+n5SjUJjZgvELqXod08zWWZLbrs5Ezu+ciq0x8Oummrglyplhm4o0mloE3cyfiQvvd53a4EtnZgBVMzjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464xdyr3_e2etest","name":"fv-az464xdyr3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d398f8c-678b-4136-bcd4-f9cf553c86bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21016","status":"Disconnected","lastStatusChange":"2019-10-21T23:46:27.0456655","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"e009432c-2037-42f0-9c6f-c605f8319bef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvosVrvnSD7qwQxmR1vKpa00EWX7Ya2xM344me3H4W7M/ugkCmrXzSLJHGUwOXG5C7nqPLBAz1UjgfrWc0lWWnoTHxyAbnMvR5SxQqlRgh4EfbR3XWBC2qo6vz+x6M5QudBHVdAWWnkEbrv4r65ZoC2baGi0/33CLRA225bQ9rMNJ2uehbYH9KfCmS5oqtzPl1dBKOTjKYhOCQZ5oChIKb5FVSOqaqpo7s/z0CwESyquK4W9jUqhOuqhEccJhjX3OdNcz9SjutaOcciEUr1kZfBKV1LjWV6uoLZyejpi+uYIkEGvFjpWRoIMw+SOyR4nb8VJvG3bBuPnZAhkjeHHnwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lbznm_e2etest","name":"fv-az456lbznm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"29de1f84-577e-40d4-b9d4-3d7fefa2a76f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03002","status":"Disconnected","lastStatusChange":"2019-09-03T17:34:23.8029945","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c1ddf8e6-7536-485f-807f-c7c1b98a8e7d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7P/fbtUjC9ETZ6XObx2UFhBVQrXfUALk31DU/jmimKb+PCyaWrre/S3Z8VXBLrqVQvJJl5jncDgaHBFBWtFBCJBv3Qo10WpEVBCkWgzK4fY3oU9ND6ZIGLxHS+D7G6SfUyiFLzYtVaMbgMYvSTvsrfbyXttP9a++B0/2wTt361KAdxLC3uWk9wabPoiVU2sZPR9UPvbOWYY6AQ1bC1Rx/rouUFLLV14iJ/JZvAH/dyYjinHTdYoc5tekydc2vmzNrfMSh5mw72xrROuVpAskibJzTUNfKrUESZStjHIafnKd4CPQJpPCXIv4fHs+sR7UeL2YVp6eW9r+maR5x0V2LwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03005","name":"0.1.1909.03005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"30958e4f-ca47-4cd6-a677-477c076271e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03005","status":"Disconnected","lastStatusChange":"2019-09-03T22:39:25.3909189","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"61327746-6cd1-4cfa-8484-5e178a056121","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyJc1q7jSXqR3WlW7pK1+6Q/wWRkxbP7iWOlnoZGlePWM07ZICky1rDreg5T1wgs1z8JqpaOllhL0BRqioIYh44zQ/dA8ah9lKjmE3qVxlS0TqLZecDSh5MN+IAVpWTPe9c5rRnxxEg9OmFOj2rVS56GR8dKw8VQjuCZuNfFKOZetNAUxPNPFqff86kv9+E45A5KEGsU3aJuCWhOPyjm8vQLaS0rRJzPsdzO+RYzVUlIwm08YUzGERIemS9e9BgBwhGoo6T1JehScNXIVUbBu3iJQTV3hIw813rpn03wRzxDTB5OKg927Ex6Fqo6ti92ft6csa3Mi2zCevjT+/1/QJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4617sx3h_e2etest","name":"fv-az4617sx3h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e402e31-55d7-47f0-a7a9-8af6f6c9ffb6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22008","status":"Disconnected","lastStatusChange":"2019-07-22T22:55:20.9990808","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"0cb6c2d2-60a9-4121-b8cf-741033206ae6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx/sTWyC4jEhWrSZhyWI9KVOePh+abpVL6MxCVsZNsJo5b/q3N0ogTO63ajSt48BNc+4hxs/n4LsXWmUnz57zcWFQECn6SfwNEaddyN+6qKVjGRgL/cwjRk6NoROIOuVoUX153q4vGxAH8IBBjTkqPeqeXbbEBu5c1/J+A/nDoEQL7jCzWJnLTE0yh9Vytp/JsJh9Juh+bPG8oXRyl/Q/wrjH5vmL0fjKDayL88gdbOngMDwMUuS7rh6QXM0xBQtP6r0ddWMh6ND8vPTiMiu/plyx3OiNnxk4gQ2a1+v04Gleq7Fsy0p1fiagzCJFoqNZKEfcbd7Qw0Vd6FUrEyY4LQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03006","name":"0.1.1909.03006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"48b62d61-7e7e-40f4-8acb-4f313627837e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03006","status":"Disconnected","lastStatusChange":"2019-09-03T22:39:25.3909189","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8141daf7-451d-4ada-933c-3f3f64b414bd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqjknyeAtPRtYBfvJ/ewzbWm3GFAdyp4i7mE2ndnSFuY0wi2eiWvEi54giPR78xo16eQzC8fq25+OYO604L+8EQ5D09RUdqQo2tnT64fdCxFapWB+JzgXRT9Qicreyc8XT04QP68YZhyJcVRSK0aup78x+CK620KXDZc6zuYHiFwB1gicaMjq/+wp0c9mQ3zYRsY6UNXxtwVup9wylker264qTwqmh94rMm0Ceii+m/7j9AmT5in0SgHhI8dmjvAHNNaLkKXUjed5a0pQlZh03BH7quZXL8kUOjUBNzodJSQAcFrkeznEsQYYlPeQ2Ic8LpIPfEBXMS8S6hR28WZogQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45629n1k_e2etest","name":"fv-az45629n1k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a92addb3-8b5e-45cd-9d2c-23239979c3e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05004","status":"Disconnected","lastStatusChange":"2019-09-05T17:08:50.4581949","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fb2f9cbe-3b3e-4d95-b29b-b1c5f81d188b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2mAc3LaiwCy15Y2stHQtaymJU8YFDprp1/x7PfTHrDHzy852YXraUyBn51hLkdB0EzUCqEHgiZI6PDdaRtapa08aMs15wjLaNOcghLyxZs5mx0vlvf1as1yHZkT5HabkAmlK0wAiItLuyyF1WPdHRCXZ/EUYXythAfNFwzJtDGZBzTWVKX6hscNoV9q/7c9zl/ZFRw9Cq2CRMcDDxtS01tPXqXfWVI/b2cXnD2NwW/yWg6W81AhqgGuv05OZXG30mXpVgMPCrEWN9AqxWRU+A0Bd+XIFEWBiy9Y+i5KxUeV3dA7S4SeMr9vCxY1Uex6hTK04UK5m1ZERF0RAq0eXawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4581ljxs_e2etest","name":"fv-az4581ljxs_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1a4fc989-d7b0-41f3-9adc-aedceb1a1709","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30005","status":"Disconnected","lastStatusChange":"2019-09-30T22:26:13.6849938","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"905896f6-6f35-412b-9606-56f452e7a837","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7mBiFXhLMZE6B7PhftfLpIRzjxrGkojTBHIy11kBCDMj9VQWfTY05w3AhMawboUQUgoswVgQsV+ib5fEIcFVYAGIt1PHQw8VKPtMeGm/Mh3H60vO42yYsPOsW+q6s+K2EkH1OR+/g0syiWld+DvJZ1/MEAGGbPAjijOXY5w0hULDSIeh2z1ycMhg5UbSnFvhA1Yuny4Qlt3CNnbagUWPqprNjCNOzBcwllAeStRbjyjKMt+S+goJxhoNfwtXiM3NofEfCFP7WzK9W+oAQdofbD5cVI2lJjMX5G8ukiSBmbBgiLrni0zKqyXekwctugVutkE/jFp6amJiKY36sBXkkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az62394qxi_e2etest","name":"fv-az62394qxi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b85410fd-3b75-4e03-86da-3167d0332045","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17007","status":"Disconnected","lastStatusChange":"2019-10-17T18:18:19.9448978","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"c99998a2-25f2-44e7-947e-e5cfaab28f75","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzphUfMNPXNc7YnJcNBo3YQ7sGG/549GFuOgKZ1N7CNYa/lku+SNUawuv7GR2ruGUUpewNwdqjw8eGvD84K+x2c67S6dmWpYscm7olq7MwPsPiflU7wreyVM22zqy9GrWNQNL9M+sPr6ZBpMdkg4FXtTabz2f84zM7fulsbjEAFqYgHicryZkxxCW4OsIFGZdhDTlzYaxtTgiYKPd24D4XonkIUg924rRzDsCVef1ky8AWji82tWK0exB+9AqBh7g2O02jxHxU5sxd5oCrPCCwjOupIwpe5nbBWx7tyLAZfrtsqjITJukscPAn/rdi6PpYOMXavPJxclcPbfqQ1fVQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03004","name":"0.3.1910.03004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e2394457-0839-4b7e-847e-5ab59e79bb06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03004","status":"Disconnected","lastStatusChange":"2019-10-03T22:39:45.1132758","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"097be7d6-e835-479d-8ec2-e7d1c49f613b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0+g28hd7dGbHLDc7hHnxoUEkn+o3nQ30NHoBeYP926/pwtFY3+Z3SjMVvs/4CihqkF1HDeuNTVfimMg12BGdgApgVjc9N/uIzn9qVBIm6bNlFmJpLj1jubOja0WpVhmNfuuD/98BuHyq9EX5Bl1ipUCTckiEAyGEM+WPqZrJDiKHF7iqokoJL0MlaL1SpeS/d1xs2BXIXx5eYCzDZTWcQUpiyTAPTcmcSygqLOqY504tDTgv/PTl1YwzHjMOeSZUdy9XCWzUAIF29FT441WVjAiBE7R82zSgVde4lWN9+jSjQ3pgDBN9gwR97iEgPU0Jj01UJsmCEqVAUB3vCUOLCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46185bg0_e2etest","name":"fv-az46185bg0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0339e85-733b-4616-a1cc-ec7cdfe7dc7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16005","status":"Disconnected","lastStatusChange":"2019-09-16T21:55:03.8512197","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"9b30b017-8740-4bea-a52d-5a8ba0717f46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyi6Pr3TD3Iih/6AxC75BWquXX8uPVEcC4NXGW5TIWv6GNqbXStAqNazAt6ekMi7LhNbxKV2657rskvwJjtk4diTs2yyla6Au85unDCaP5kvxVowkMH8LT4eUHobHaLXGewy/T+LAzADWNQVUKi3pszVBZLc4Lz7pkDn4GHD+KuqBJ/cgaOpW5XnGM5nyVnfUziQOBeGdYGSPVKMPoxWmies5EEajtIjdHlMWzrEb+H704Zm2bVmMTrFYWlR5vQoobBoNIUh9NUEdhZfIna7UOaW0tlP1gzDvJkPccPEP9v3AITjIW04K1uZ63SVJfmlSJ3zJ6W5yAXsd44lFm/ZGSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4562h603_e2etest","name":"fv-az4562h603_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9cca7444-e9cc-42fa-96b1-7260b8f9ab0a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19002","status":"Disconnected","lastStatusChange":"2019-09-19T19:12:42.1236707","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2f58c474-e0a7-40f6-86e8-f32a27534a3d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvfxmkyVr/GH5cdR3VAwOAcXNuIOhmerwTHcjwHez/3UHORca02J23eyPqq7JH16zCqTq+gLMbGinYMrTWy+PDeUGWVuzo/+hp043F6aU8FzVJRa5olRULdBnMbbR2t+rwPtI6RBc9pn5EXI/5hSjkwIcbU/h1XhKLYZosg2jNOKqvGbqd+bqRSwX0XIzEU25SDdV7mHT0bMr54bA8Lb+MF1OZ2zSAdWD6FzToqxOTs2DoEcWCi/0DzsFxpgIxDk+Vcbpc4vvY/j/ibfmc/X3qwaKHhx13hdGI6HsE2E4Y2RDvvSrXWyBrwhvYufMkmP1WMk8tg2uiWdvs/4xtK3wrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4583ta9o_e2etest","name":"fv-az4583ta9o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6ce7bca0-b1d7-4902-9dab-f4a73dfacd87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21014","status":"Disconnected","lastStatusChange":"2019-08-22T00:06:15.9040417","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"67813c84-bb0d-4dbe-bddf-74843eddb826","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw6nucSSXsGj6roL++MLhlf5738G3mlav5tP3/1I8zUe8kSNzyqkMVkyT4wGdcoidhTnnLY6Mzub1kMUW5VMHSDcjRIimuRC9WL3AsM53TfuJDLoKdCjTYNWjWNrb5BqFPCDaz1pVkmx7/xdCtqXDvwshRBvrMJfC8ud6hFmSFVjPrunOVgW9NyCNd/i+gCyS/nYPLmt29mwSruF2nCByhY8v+f8FIop8GCrnuW5FqSKBxOmPBEn0wboB9sqbZ5qOI3s8fihc1oORR5LrD6Pj/NIEonXI32NrCkbXeDWo6TwwJeZgX/DCP3XHPF6CSMlQnPOdbc6t7dT3VI7bYTWkEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4562hfjr_e2etest","name":"fv-az4562hfjr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4b79919b-0b38-4b8a-8546-e5e93f0cab87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21005","status":"Disconnected","lastStatusChange":"2019-08-21T19:06:13.5097552","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ad3a6180-b605-4273-ae86-4ffc67019e7d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzMv/mZZutcvpVhEgOl/GYMgczCGxDYQ3Kr/PshKFHgy+4NsSa+IIs9wsaWw+KYTPwvJFduVM41nDUmlQgTqToiTeEP81eijKXIaYNKGixA+W8khZWAVTWTuSuXDLoh7Cx/l0CVyxy/zzyUJnE4Z7XZPOY6eJ1MIGyUVXO/sENHjF5WsLcoz30BqW2csN3OUo6B4tp8J70UO6j0Eb/VOrWjvHrqt8MzDejEIGrItfTUY3lybZg/vJ15GfZhVEIa/gdJCtJh0JonLuRRZwP27npupcwHBKfnL+nBbFxnZsdEgceVV2xymtDoBxeE5NxbtRPXSLYQUF+WNFdeaQhVLWywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623bag6j_e2etest","name":"fv-az623bag6j_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fae6eda8-f87e-412c-93aa-84e59dcf18c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21004","status":"Disconnected","lastStatusChange":"2019-10-21T22:46:26.1491738","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"e3618c77-f18c-4f36-9c2a-6717e04cfd4b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxinIq6cSpekUzaMA3Y7QKbSsX7E0crfz3IKtrxDOApaJFyBB3dr5soKGYwtE5WoYySHxS1/Y529kOVBr/0R91q+pPba8elqsJMFBR85dRtw9p1Orz4/hTMXOFimdC2TvuBIjJ3TxUD78LLydoP/LF9G/LKCV4gNjjhPepJvQiDCRs8h7igVnoshdoJGLcp0YpElOprJIkjVskzSzqlp31JhcAbdCbYIJzXa1eouBZ882aRObst3GRA61aWqjAlxgx5hVwGCP4/YNGRU126T1SawJerkHcT3hzVHVMLfFuH1uCpnmq9ujCwKOAoXVv71IPyF52NIYPUCZOjzqsaW+tQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4618kmp0_e2etest","name":"fv-az4618kmp0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d9462b40-cdd0-430c-8c82-98142f51141c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22022","status":"Disconnected","lastStatusChange":"2019-10-22T22:26:36.1294438","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"85a77de7-9452-49c5-b5ce-7c3d7597bca9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4T98kwLKgHemTw7tjT7AEIpeht4ADh8XhnSeAMW9NgFkOtxC57lq0GYZXPt0Id5dzFSpRJ3OOLZJr1BdL8pASzqFwPXw7qKCTCqsO1hwT4pRN7cbZthbHATOgR2GugMoAYD4s7SZjxuDFyKNj8AA7oJmgTFo3NOhoAB9sOVWAKztbxrnoY733OEmCH2ljktmOhMO7t7Yxq9oK4F0+uO6eTDcInk0zvBHMiWf/8S4Te+6BneyI14vo84J8DfOpwR+wjshJucpHvRAq/WlpEAjiWIsrRw70RhyIwRHgkXjVG71F2zHSmQp2tNW9qpMCcwv+ZyNsTJNl7oFalOkeOi+fwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458471im_e2etest","name":"fv-az458471im_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4e172e20-91bf-4614-9a2d-5047775e9ac1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"45c39620-59f5-4199-969a-119cf7f206ed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmTmcvKpBqhLyMW8L0g+wFBasNJ8Hab19V21jp9SVBypScWS6c7wat2yZSN96rW5HQggrJiYjOulKNfXkOuaKj4I/Zxv6hSdB3WOef7ZT7X5WmY7C19AjEk7dLvDqu5+lG6mpaypfidA/bI0JaBcLpUNeDzsmAGZBIFKlUIaMU4WLGvoUo9YQsYbvGXzt+hnHJ1pvyDPjzPTKyWiH3HpMPRi01p66uTQbZxK0uc2zlSuYPOyS0qMUi7ifM1fr2gzYaQGtN3t3gGiCrhph2VoOSmAEFwgtTko0GRFtY5uoRim+p7QpmOJ1/zKQFGsQGegx9q/5lm4AUbfLtfyN4dWhwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4562rxhu_e2etest","name":"fv-az4562rxhu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a21de15c-ed71-4ed6-a21d-5e3c44143863","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.09001","status":"Disconnected","lastStatusChange":"2019-08-09T19:32:54.1203432","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8892d37e-384d-469c-a3b1-b10e0010dd66","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmC9G6pvgUtxv5JTz0st0kgxd3/wvVubcE2vL4Mz/TSzu/nPI2rFBS+D3O8JJh/GPYvGKK2B5InxSOUbRomuM3FnMq8c7Tnlp2T2fTonHwgzYgDC1sgXz793fo7vfKfmeHz44jikQhfv/ZzTEayr/8oihV2fEtILTI08yVVP3Xb2Fusmy8kctuFXvJ2Kub9XhH8knsEKWIdC8u/m6ZwM1EW57fsk1ws05FaSFEA7tzvP+PGK4RS8wodowgyaZpp2WnUp0Urty0J9r2a4Eb4m8Rez5n7GCEvn4x2GlY8iwx8ClsGS+PT8q74xT3S8rJc64AQx15d7JDF7Gf7BWT8f1BwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4670mkho_e2etest","name":"fv-az4670mkho_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eca89280-ddc9-4ae4-8350-d9adafbf9e20","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03003","status":"Disconnected","lastStatusChange":"2019-09-03T21:49:24.949923","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"c0c5d786-051b-4d71-b12b-ab5142b2a472","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAujbeya7Bjv5OCzexhqk5UiAhASz2icBgD9MVemKKQ8JSllGBXrIr3afgOI4DmhCPlal0I0mOOmZeaf07M9dYhGiSzM++YgUNP7QOi70sp6SyQAPsvut+MTgjVQ81dRzUy8kfF4/MjzTVVNidBeq1Y73P8IljVfpyvtg8rey6bT6lojlW9W5N6f2WyQYjMAig1bfFKq0ECKRs+HRXRQMghuPd6j3PFVrukjiVigm56GBkJiZKi0GfdlHbNvTt/fJkC+wWIiDcCqMQT9HkvqwajqLLU99zG9cdyw8OhEs77H5TEYKSBdgX4I58x63L9Cn5Lksel5Acjsu0NDhHAe1zFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03007","name":"0.1.1909.03007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2c1e736f-edd9-4c35-9c60-54557d8882a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03007","status":"Disconnected","lastStatusChange":"2019-09-03T23:34:25.9738763","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c4951468-08d5-440c-a05c-67bad0e18bd4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6cNasLvJbfXII2bYGdQrltyiYoc9Y73ikduQewhQja3fJ9c1vCr994YxLEYnPonSVyTNiQPl4StxQQ7qcWxUKRit090Hy1VSARMWyGfAGvMDeEsX+9oT6MBAKdXQc6zEGq7cq4IPgnWZE7i69B7u3cjCCyAM+64bTAVob4SXL8EQ3sm9BVwOD15zQZBe60QwpucWP4lhp8kXn1cKjbKrWeBJcWqlCufXmUJCRt/8iSR1q1JpTmMXtVImVv86JTC8910h2XK0+0QAKzKgNC2kuXKNIrx+Ui7ENTxK9ffsUbsKMH63B9Ma+LbHHGhkwxK/sX5/LuuWJYPR6czWOjuJXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46730pzh_e2etest","name":"fv-az46730pzh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0812e714-9841-4b78-9ab7-1481e6a1342c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23004","status":"Disconnected","lastStatusChange":"2019-08-23T20:33:04.2048901","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"1c2eb304-3117-46d8-888c-421139589f0a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqflwNWfv+inI5OtNsUKD40Pz/bt+3yja1n+zLIf3LmBeMhdZ/iPVdBql6j2/pmi983UaJ+mCTU/LZBuk6BRQAaOBffnd8YdbF6fpyzYGLfme5QRTCP0qrVWHrf+u1WYVY6Da91wKP3JnOZG0FPgjgL08rg/vyBBAevqSLv1ZjIYV6veggvVprqbKrd7PhOy3VNq9SqyUTlwdDc9qM23aoduxPJdLqMzHLEd+49bESDsXLq270NrbcNySVEScewUx1OmQOmZSq6CeXOnWTHNh3sRHhUwXcPK83nPlSbVx12oVwn9k4TpfFY6bOnFT6mFN8UkodpCe0CRdoYmvDx5uWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4618n2el_e2etest","name":"fv-az4618n2el_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4a2b4202-71c3-46da-be37-b813f246d6f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16003","status":"Disconnected","lastStatusChange":"2019-09-16T17:45:01.3960378","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"e0d37d41-5453-4f9e-96e6-e50468b6a1e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Dd4WoLjy/2jBHsSBmBNH7ifGHK2imPWbyr5FfeJ5Mx2ZSHBJ3C+rsnqyPEGM3t9ehp1hGtTCF11u4E6lW9b6jk3//+Hnx0GlzqpX/viNDTrgw/QVv1CqCVvBsAtdCc72rRdybJlpPMM7J2BYLEnN/y/20YYJ6w+3UF7fShsFSvDHDn0km4J5aeWVD5mmdHhbJ+9zOm5dKPMSIwDTBQWHI95fsAA/7QlSuZGxiosPg8ZxsTObz6Y5xlDWQNjo/RL+aIEJh3/xSPXTpg7xu8Mgq+dXniQCyJyMF5lzrgH2IJf2UHAJui5mx8IB6wdMMliHipuxeBDkW0qGOl2N0leRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4618p2fk_e2etest","name":"fv-az4618p2fk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a469f0f0-3f1a-4ef1-915d-e728ab0d8b3e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14004","status":"Disconnected","lastStatusChange":"2019-08-14T18:02:21.6982289","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"ad89b228-f466-4814-b811-c6089eaf2645","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5dHkv5k+owX5lrOAe5Azz7NM7LWX0Q7ux73KKdxLMzspvMRpR2tBCK7+FJBicS5Dt49W6uAUItnDKkP3IUmsraB81oFUhAptmpO2UrzyV797AiUPFI03FfYcJHwgFm4RWfeV8Tl9vzt5O/Mh0QwokiT9mCX73eP1beAVdTeDr12fLaj+RBmdt3P+JVl68JubYfK3rKEqK4/AWfcUgqjunIzsKtn/Bu+hclFgDWZ3dYjVXoG+ThZWQauW25oYulIrnfvKElWb/oUy3Nps2e26X2Rkv9Q1M2GNSCvtIirjptjxrFceTmzfMpjGEJhuvotCtMoiXu7EoTk+nRO9sLzvwQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEshAuESqVh4u6TRNGiBE6iMhEzJCXArk0lbdb19D%2blA0wsf2GR%2bP%2fSlV%2fNY%2fi6ropPmn5EO8TWLiJ7CR5tKp75turqplWqU5L3nVT9KPc8snWV2q3XnfZa1oelFXnbqfccMy7Ew5mk6qGKaVKbZlOAonRyezs4N%2b2Gtq09YXceBtp65E1tZdfewnj%2b%2f7VhzcumzOPUel7CQq3v1NG6FckInFH4g2dRTNVjSiNC2%2fCH79%2fasrRLOtC149yDMqW1QmpB9ctLIOw5%2fQiHmI%2f90gX8Mq5R%2b6eV3HDO6frGPSk4kebZE01RFtI3eEmoYOi3foYBmd%2bS%2bIzNlMN9ELNgMJ8gUTr6c3eIbpKnmUSXC8oSJARhkIH9wNpeEGw06SoEiAOSPAthAE1j1z7BLvgq4ZAIoPjHtcv9%2fQ30e%2bY8c5LAAMQLsBuAIk4MLCgMU1GF4SYy8AzKe7N7qERUiB1TkLc4bR4CmCogcG2Fj8tAMagQbBS70WNIca712Gmn5IWRRCyEI3j6kPSxcKYCGD3F%2b69RahO3Ru%2f%2bzTwYCPCmjwDTj9gI3v9EiIBVBxLA8nxKEfAhQuB%2b8VxomTP7ieNq1y%2fr2scXul%2bLm7kVOmONPvdQY4ICJb3nBmnvT19R8%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-8N7AI0E7NI4fu6hw_e2etest","name":"WIN-8N7AI0E7NI4fu6hw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3258cd4-9924-4cf7-8c57-7e7df2d7ed5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.001","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-8N7AI0E7NI4","machineFqdn":"WIN-8N7AI0E7NI4","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-8N7AI0E7NI4"},"vmId":"d13cf291-719c-487e-8979-ae6574c8c46a","vmUuid":"4242A410-4B8E-498A-BE8A-9BCFAC0C9AA8","clientPublicKey":"MIIBCgKCAQEAzp+HoWUln6oLwQZImfk/HjwlG2JrFTtljLfhJJLFAwp5nwTvHjRZ2mrtNe/SFLUPloSTiJGQtoDIkDo4n0DLQJYhnYXLP1NHsY0T8U2tLsp9o4wx4dKaVxwu64nDAr2u0qD+0GrmyXBjrNB7e9x/nVtK62JwwcHz38QH5zZPTKwdrA3EXB5jIyIxalBT/rh5E+PxNSfl5KIxggarG/6JAlQ2TBatez+LetbnfTVvHeKep6ylA0Ss/BcJGKRZrpsGEHZJ0SIUDccxuq4PjCuoAkxNNLdhHYkth2mC5OJi6azVR8nh7nzQWxib6axBuJ5jFzOtGPJYyKFH8P1UN+XIEwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-8N7AI0E7NI4","dnsFqdn":"WIN-8N7AI0E7NI4"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_CENTOS8","name":"0.8.20132.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4ff8a959-fbc9-41b6-832c-67ecc16c9281","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"4380b8c5-0418-4891-9abc-08fb78585dbb","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA0JjsLHxVHoY07S8pR+ROzg2Lk665ReMIFy/0vnW8lCTvoiwaxA009WBN6RIeB+XbJDvDnOl4XbEqJ0zvmVLWtJbAg6YNxBnsNJwR+GcCfTw2knIy3HN6+8zj5o09UdJxBsFUwJiULLZa+ItrWkvHFayWEYFQTbf4yks6uefL2HQbK/IytEUuYFYM1LOTK4VTN67li0uaqYOeUJzCsKp/aj9hqi6WKSrtX9Hf5ESbqmqzAMiCbacls2k+vwF+W/b4/oHuTZGU5LqWcd/vAgGYyvzn/Hhh/mQ5uVcWXfHE8D1CC7f+nalhHChCpnA25OQlcmDQSB5Z4Frz3UQ6r7uT/QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_RHEL7","name":"0.8.20132.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"706cdb10-d78a-4a74-8497-2c5c10b31d14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"ecf4c152-1f8e-4f6f-9da7-b90fb1da45b0","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAxDpUxVplx88EAV7boHgMZR29cvmMB1KQqXcowB7saqA2ozdgaEDNfpU14V98jG+ump+UMr1tgrFu5yUxLni0LilI7cl37eyy0GRVDg9lg0Nfin5kan07aMRVTBiAdfuxgaeNarh9VD9GyrA6SrJETucaxtSG12ESSn2b7f1+qn0ipfHkb6UMyc5PI6R4KhjqkvV8b0NMt7urGBj41rXaS/ElbJEfKIpOB/3ymr5gYGeoXDYlQ7zN2FmWSASQC3GIN9EQr1cCpD8O6fw+jxaOqRzS4A/Kvr60Kn4/7xs3Qi4wGL5e8r6SD9FDDgh683kJycEpXVwzIdgcr791ChXLnwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_SLES15","name":"0.8.20132.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3b8cb84-1e18-4178-874c-b0f39db92693","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"09078b60-1b20-4ca7-9ba9-0d56bda84907","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAu0v6KHCys+WneCOmw5PVpA3bJYMka0anhsSsj1p8iqTtgbL0xca9r+kvxYQnFHWbO047Spz0nm/UNhw37pIzWGZ0SBZi2OKTejMeTddnOSgglGpn7cUq0rihOqHqSpRzhK8wnrqEu81LCOVMbtQ/OkQsn274U6x0GC5Dm0poHP8Pw5HnXzHfyEsyIFdDuCBWwrTJzmDI3kT6krENKg3MNfdujVVj2TOpt/9amsn6aq0p/4X1OrmK29bX73FMhJAXNQZ+quRww2TIaYIDV1vnLBfEg1m7U40DIuCk0EBc+kuHHfRaE+fMtYzzOQc4P7op9ykJ+58eqXQcItNTSLerQwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002_AMAZON2","name":"0.8.20132.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31c9960d-090b-44ac-9fb8-40bc41de0bc8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"48261bd6-c812-439d-9b9e-40c9c1988034","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAvMBbt7nv3PQFQs9AGy7Z+6hWnmMH7Z2ZomihWhCkNARkrBT5SdztoSrzJJP40WPpzEW/Yz+hCDBqSZXdD/Oau1PAcNXLW3Nza3U/Py/q0Ny4p9yJHCOAW8qV3foFjvyXqP3GWalF9Vyp6LbO1r7U5NxMASpmbmeKdZc+9Ab1EH91tWuqqckiyu0yz0TVJ/mJ38aGDe19/9u2RwrnB//MRxdfzwNIh0A7DL7Na8Q+IZPhOp9gdzgy/j5rx3MtaeTUwK9ywIUaly2e5+7W7zpXkSslVyJxsbQWSb842meq5QGGJR4B2phHLBfYG1WcIUPO3bsaUnDGE3i+LUNTsxWD+QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1gjrit_e2etest","name":"George2-SLES15-1gjrit_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23234002-6bbd-43cf-9f49-dd989d13ecf8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a77e541e-8355-41a0-9558-566b1637f49d","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAsP8gc6e7SpPoeFC6nkAd939iOX9fPQGIKWp+F6cWysbuKvlrYpIkguh0GWtVmdRz/yynmhr714gliDCK1j3S1iFwc7TMo9kCSAMTWGF20Ro4tMNTHCJdObLvFiBXCo/eXv9xFjT1eyhx/yytqdxkOUtXIPcvacArZ5hWp4gDB+zfntP3p7HS78HYyYpZtLvWlEeapEqzYoIYcelMakTfIGzC6WUtPcHj2VURvisn2Wan9CmU/w/lOOCeUHYBF/K7Udd2i6mUGF1eYyO3Lbky3XOPM492nF6SFbHVyVzccWEUzDw+9Z+9M89id4QdVMWcQkzlY8JYQ3Vnd9UltOPEswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internwgdcu_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internwgdcu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cb5718a6-a1a2-4148-b2e2-fbe975aaa906","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"b9f67490-193c-41d5-955f-6615a2e1dc09","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAp2HBDQscOjdsNMZy9cuMjvrGH2pyvxX8ra8tFSaYFHiacANP1lcKS2t0L6uffi8waRiBUzMds0Z3b0nSp4Jw/l/N3CoaotBxNTpyuaYobooWhtw1bpqRDuTXlTypxY6vkZp9ujCUafe90nI8VUsbpR3oF8nzDF4tA8knMDHS7klNgC9hL+GaTfQCbCD/qou1rv81lFhOc+WziM6dr78Gnz+R8q1XbTXQQBg6nLaCcGQ+woAuOVc1/zyPvg8/hVaulmzSihADHT/tGoPyrHDI9Zqm99nJe5UStVdc8dCNYBco6rEL1wQMte6o0EGfqAPQPVNt9neSIq+vjvL2gqfxxwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1dz2gl_e2etest","name":"George2-Win12-1dz2gl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"485e01c0-32aa-426f-ba31-6015dade8065","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.001","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"1a435213-4061-4ebc-bba7-60d8fc87c0f2","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA3uXX9IP+ZVxRfrDXOW8Zq5N5NVn67P+sL6bBp3qYpddbNJpQMmZaZlZDme2j4/e5oQrcVfWXO/qIKeKaEagzq5lQWFAtLJzLiYoCqhKwJIpw4ZBtLnF5UkmoZDTCQDRmQhv46zukVzu/PtAmSIKCdvyHVoRQfqGtm10tCkkaclgWV+uQnD02GkH1Tzv4qoasRS2Pfod4fxHiQVDay/4X8ttbPpLKaxEFawhrGCdX9wkwRyKgn+C7ZVi4NrIVa87UESJVjhe4+zgBJrOiOucVzJVP6hAHrO7j0ndedUipqk0jiTSZC7tpYqfuKRLS9/ojj09YyyNtO+97JxyaWsatpQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-156uva_e2etest","name":"George2-Win12-156uva_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"74844da4-1e8f-4b59-91ce-1acb578bb14a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"0bc3a514-c3c0-4b37-b00f-6bb27af87a80","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAzCxTbYgv/ABnoNapYvZD94xJpm0jd8+cciYM9B9k2dKNvLi3Ax9zDriNiZgklcmOT4agxFcxdWSIVJOWxnoQTqD+3G06TLybeDxz9eZJyEhpl/NkP95vcgBxmdQC5ntzM+vOpvEuSz3uGcVh91QoRMniztji/fRKMt8iZoka77ZVdw0aiw08lO9BSmKY4HLpByNOx+Eq0A9r8V0+Ma0e7cxiQvXGu1MykxInIdkK8pzwYPfNHJlLArXFWljTUCaEdl1FAxDu0PrXINjoMPGsRkJqNUoXJc3wx68VXixR0LH0vzCzwCksfKQqVDd9CagaNHsvbP7qqQ0drF19WOkivQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-8N7AI0E7NI4icrzv_e2etest","name":"WIN-8N7AI0E7NI4icrzv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dd93a80f-6078-442c-8509-b689b8dbc500","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-8N7AI0E7NI4","machineFqdn":"WIN-8N7AI0E7NI4","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-8N7AI0E7NI4"},"vmId":"4b5ebbd3-04d1-4570-a71c-5150d3b3502d","vmUuid":"C5859E41-223B-4589-92D0-29B6E86042A2","clientPublicKey":"MIIBCgKCAQEAu8ctDzlKqcSBM2PbiaPHgLP3B738fjYRHI4jiAuk4qkVn/gpRplfMbx/E1XtOJX+CVAiM9BBXpxEnxdtG9g5hBqJ9UP8rr8XANViWCGeFifrD7mwGLI4uveKRo0IJbvkeIRvrfxyyxXfqAcyHG7N0R/yWrg1CHw5Qg5GFMwa2ev8Jkm2WXkoMCnGEqYdN8tDGKqD/eJlJSM8aLLRCW5J7lofDQ5MjK3nvckU3gdjBeFSNDMX9URytqmY/kq458l+HyBEI7iIysHL2OkvneH+d/e1daZn/xg4wiVH1Co6rGbRfnPukF8UoY9yS7kncpTgAim/XsoHWft5Bv4mfasiWwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-8N7AI0E7NI4","dnsFqdn":"WIN-8N7AI0E7NI4"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-8N7AI0E7NI4rlpkz_e2etest","name":"WIN-8N7AI0E7NI4rlpkz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d3eb34d-1e0f-4e5a-bcb3-dd287afd5b4b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-8N7AI0E7NI4","machineFqdn":"WIN-8N7AI0E7NI4","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-8N7AI0E7NI4"},"vmId":"2db3167f-4807-4d76-a61b-0be37cef12e6","vmUuid":"C5859E41-223B-4589-92D0-29B6E86042A2","clientPublicKey":"MIIBCgKCAQEAzrXB/3JR2+xB8O1PNHH0JD3VKdqIONZYIxo5/skXiOA5Ivr1r2pgeJN9peE675AwELFj0IpXNv3JkjjrzD/9Nz8f3QUH6xOw5dr61QnFnLdOYYCuOGiU99G5t4mv4HeFur8aY3qfxwcv8tciHLXtvumIIFtyh0pPBTDmzEKZYGtTS/WJT0vjuH6zDncyM91C7vc9ekQvXCykY+IdKvldWAflG0ZiJHG8YlwEOzK3q4mrZ5074pkgQ7G2rsGFJEnP1TJoe0BV5vsmJy/JbJh6q2WzX9/onHgoZcruxEgNYJMKUPGcFc/RTDmRGDpJQB3t0jymKNk2f91BxmxylMxJLQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-8N7AI0E7NI4","dnsFqdn":"WIN-8N7AI0E7NI4"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1eaus0_e2etest","name":"George2-Win12-1eaus0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3494b4a-74c8-4454-a602-1e834e7d688b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"76d0f85c-0de9-4ead-a262-4e953dcf5d19","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0Z7faRBNbu/MFppf/4JCfA0Jspra/YayX7EJeh2ChpP0lezFB2/D3vl4xY50PJa73QZtcdo+tPC5cdoH5scev5la+pcHpV46aUNkzZ3oGkHzgzaG41tfrA3T7S5CcXCoOtc23E5Nqs2VcVNYd6Jp+u4axOiPR7UDLIsKZBEoykJTaebcD/o2Eh8d+Pl4S5dJLVM98IJ39ptBuGYdV8a5xjYjcxVAurqSLwoaEeKjB9be5NU42tdpcJ/ECWYoaxNmPNr7Cx9FT/mnmBq5SFc5VbGqqLqQrYT8xV52XZGJPqBRM6Py33jpr+0FCQO1/T4vtqX0tltH5AP/wtywAHHuYQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1uvj67_e2etest","name":"George2-Win12-1uvj67_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b5bffb8d-680a-49a8-8d9e-3836a2ede5dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"59f23e4e-67db-4eb0-a3d7-d7bdae5d320a","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0/8ottXPCpqcPBUbO4nmtFJFEQ4Off8mTCc8tD6MyVzNP4bHYDE4ZLwpZJobNnRHVMAP6GE4sOR5hsVpkZm8mgXXnCd+Qg7HF4/82tm4S2yXbUJYtSAhVrU6Z2Pq8XX7VGITRHbxm2x6p3zPOaT0/U8c2J6rPKK7p4kTkLuuNHH647NDrXIAxSvg6MCxe/cPpuk9fQx72g/47fo+RGJLk2GTeXm/LKWPv1m6gHMgNoXnoBYSyR5lr11tGZvuyc9+eqt9mueSTxE+lttC2q0FGj8/kIEC4DBjl9jYZDUGDnNEJqsLStKPiffJbeEDugwrqMQhRpP6CVGxDho8vMgo2QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_CENTOS8","name":"0.8.20132.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39e93cdf-85b2-4627-8a09-4bbb2035a2de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"d5350685-3706-4690-8462-507b3f503a0e","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAwTtBkQ08YPZe7HZwOb+W7kIFCJ+/Vzlumv1EeBqUD1D+8zwjwK3UcSR55VhJJYfZb3pnP28RLtiiX9WrB8X06At1K/5pa8SPOQKMidnmk07p0A9hbCSPAr/92P2VP9m9k3CzbCyq4ZzvqbOrJytvD0MUljLfHzGswI9tJneJzySCxqRpTLFXP5/0tuDOaN8gLoZ7ImJ8ZgirlODZ1VOuhCC6wPO1aOwq7iGgcV1VTU9X0btFqWvFfDP6eMGBoKS7BuswJ037qoXSFnGqsj5VlshWrvxs07uDW/30ZvIFmo6lTGrMiQs7yiXfblIzfT9BP62r08Fgky9lDfw4dFQViwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.002","name":"0.8.20132.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ef0734f0-9e78-453e-a866-771209740eb9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.002","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"387c6e7c-5b87-4de3-9738-8f450c31b903","vmUuid":"C2BA7E28-B235-294F-A1E4-563E14226B1E","clientPublicKey":"MIIBCgKCAQEAxzNZX5p38wtkxMC3x62tkRCcsv58jKhtuSEdJX484LV5Zxr+43dC9JH0IV+Op8aJFnRB525dOGmCmQHbVqCHasUTLJ0PsJrAoAltG67aFKthUWs/lsRhvbQwTDFIUIRX/TuzDx79FieghTtwhGCY0D4hU0kROsGYOE+OU+j6fMtW0JgXM4iejqZDorX0tWZvsWXsVcAciOKuCgHeuwOiC/FIQNDaT7Kk+IdFlM6JeUOMfrPWZhO1ufjVpbQpd8T6njxa2CXl6g+YLJM96U4OWMYD25UdOcqhMZuHGhKyA1Mn7IYJI11Vwk0BXs7AoeWOz0XspkBFXPJDrbHCkUt52wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.vacfwbfucjge3ocqqcpybczljf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003","name":"0.8.20132.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a3f6aaf8-1667-4274-8c7a-5dbb8ee66c16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"cf1e655b-f7b9-4adc-bc84-2d0f09624b56","vmUuid":"1D1CF3F3-089F-604A-B40D-04624F77E29C","clientPublicKey":"MIIBCgKCAQEAwA2/7tJtjehWDGWPUeIYStbpLGsYS0FMFzDdIvDMV6qF7N05T4dobHi8LZrDRTbAQPCoDgeJ0Q3ACNdIi+5O6Q6uwg5p4q0BILZDNdo2qY4CypLsREnIqt7GV6dxfXjNYKo05PdsIcpQNZaOLPLxtdi5Ff0/eExRzWotDUcxKqJynV6WT56OBKHTryslNRqWRGZ0/WuVwu5TC2CjnNnsnxBrJ/W9N/NDsL9PemvgtarWtAjMiNOghfyXifVNaxTZZ8jRP7iNvZ1voLtD3pdjxhYqwmoXYqgcw+c/OIOvc1Uh6F2SO6AADegd4WlbkI2aMk/n783kBf1+weUSo1XGuQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.j00ifzopav0u1gr5crzbvxqzxc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_RHEL7","name":"0.8.20132.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3f98ca0f-5857-4f17-9a50-67624e73f088","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"55647cd2-a886-4d69-8569-c3d466e7bee9","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA74Uun1dU8kkk1ijGU9p8kL0JX4RKItyTpEpKzYK3hFoWuVn6EE0/4h+pQWr9kD5zuEp9VjsoZvG8uurJ8nmlT++OG63HA6N8hal+yMY7NdLVvXGBOZJHAeDtjb5F0UGnLmJ+woyXSRO/hUJFOA0ZFySdbu9RotgL0Voj4c42NE1QS1KpdQ1EdLM27vEEt4pwens98WKzjzwJ8DnCk4uHxlOjXH7GKiSBLQ8UqEniOPok6bx7lmPjZJVejQ1+lxKjlBKnH1OvdXKlsf0irTgk5DxN33ESrBVaN1Z056gdOq2g+mCrWcLuE84LKvVU/60jOd6Y6vfazar3tBaRLbZgjQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_SLES15","name":"0.8.20132.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e05e3828-9ba4-48f6-8274-9e8d1b56356e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"45088455-9f1f-4f70-999c-5ad0d84a4b56","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwDj3rhQGSjLoGf1XUQUt0oBmZxh+uW6JrByKAJ35C223h1blXNPjXJROuggpipSPrRQedh5gGw2K9FQWM8+q1cWd32t5Bel8b8asy3QcFkBnTZxF7NYLmzmgvBj9sCZ8J24T/05IXDdYNuMb47WxPk6F+GFBWM8POZw7XOgXuVfD6UFageQ73WJPxlbECsNTrByC0rTZvo0R2wv7O1HKYr/PyFF/Qxj0p3ch22rB9GEJd/2vrR9UvhcIJjflcsrHklRavyf7a4yMCerwvSQ+BPfvy6w4y0+5tYYVV7ZH3P3dlWrq3Du3NOVAOdQ3CA6VZwsQX3A/q6jf1+zjrrMrWQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.003_AMAZON2","name":"0.8.20132.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f03de612-6b9d-4144-b1ad-da61c7df27a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"284058e6-d8d5-44d3-bf5e-f5b6ea11a069","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAvAnxx58JY+j8/77zMdiHxViElzbAIkClXPrsOMAyOMljoADLQ2GUI61uhCMFc+7WEsaDQTHPoe7kAtlPGSB/BYrk2q7AdW8WEQQFau9+UV1oe0jBCLBpwE/+6n+qjqmi738wttwtV9zhZAbTb3SvgVbzFvw78+fgGI5mQnkMeCE6OoUP/nI4Mzjhx9ABwo6+I4x6Hk1t9rjzQbtyYCwauSSvhoqokIldytPULCYsbA5W7rvT8AD/xunfXaTbRL5U80/nPcua/EnLTCCvGx7B8pYCs0ZX9e3xWpidSK0LGM8HkYhdXGzjCrF7yDPGajnJxxmOVdV8EdtzICJARGcJsQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1upv46_e2etest","name":"George2-SLES15-1upv46_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3490e9f4-978d-4ca0-afcd-d92fee5e3160","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"cf8d7415-bc09-46b5-92d2-f9bb05de32b5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAv+Rphp4eTod2kahBK+NxnEDAqA6/I35xjZpoI0S4CZvL4iDSCwtk2e+C+8JJuNAgWEsOk7DvVRFGBfjdGiTLVyhzgnMTOWcoMTBsVjVIVPiC9kJAr2eSe1rK8YrKdF8VOm5NqUrfbDWMmCDkJA0sMYA3Jb5xSZvX+CHMi/yzJrEeVmkOD8I9R9s8jnOzydqSKhiuB663mBBD1lealttO8/Huw/EbEpVWN69CmSVmW0M4Cc6RlNKEHMvqqxocCZa9Z1F5ifQaW5wlSqjbSCfaYoLCkbuqswrrNNcaOhTDDdF7e7cYVf7bIKm96dwFjk11H/ZBL2oxPWSr35BYTZ4RswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internrozna_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internrozna_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d6150de4-f622-4347-a734-0a904f3c78bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"97ceea4f-4f47-40cf-a870-e4ea7e3d7f68","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAwWK+KHnlREPwCIo8CR47d7fOM9TpT+BsT91kO8JRajvwRoAyfBcvJlkQUNvHsv4th17WfGuFKgeFspRt7dHs+ZCL0c8S7n8O7MqfzPaiZkw0aEdplC3RyD4rs/Q52FKliUpzHegQMfu/dgIkujOTym//5cAsi4XUEfmoOFNLeRmGHYIsUdrAu1VQ5ztgRgC+huBG/EN5pd78EbK7oXc7/PqnxIqlF+W7UO28OnKjP79CJzKrdjMPJIW3T95cVR8XyWeicccCTSkhuCAXURHKP+GK8T+o2JAqX5EYIxpGXzifCUcUWFuhy9ymju6e1Y0xPC22gdO+0k+B9CcWf8pS4wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8904cq_e2etest","name":"WIN-02FU1ULEJJ8904cq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5ef2caac-b85b-4ae2-b1f6-30936633ca35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"70e1bada-9984-435f-aa86-bf93c76dda03","vmUuid":"74A418EA-E422-4F3D-80F3-A27EFF134897","clientPublicKey":"MIIBCgKCAQEAoMxSCygnr1P7HcOtHKFKG8U6x7i1El4EpDBXM3lil1eMSfeYbHI/shkeONSggkrxZTASmLrLnBlb7zRpTU5ICbEKxqQnU7Ril0LPEAvBTHhUNedpkRVvBUO2tdJSgKY9oAiu9ZcSYND9QlXu5I9GfZcvEfAK0ppr0+dAkBXVHR155SLpgVgkmEsBa/3T0xZgI01dt5zBkKFqAPlW9Szzcz1bXK4CdIgEXwXDgxntb7+cNSGTMYuMx0AjksOnU16vdCamVPCZHIf3S9MAFLJQ8wgyprBoJvAjpAEY5rlev3eIel7+1GkYEe/KW+VOIaFE4gTAsSeNvQr/1PoFW1Fv6wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8z8yb1_e2etest","name":"WIN-02FU1ULEJJ8z8yb1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0e945d2-a5af-443c-9c21-12625ca3627a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"698c63ef-d0c2-4bd5-a11f-516547201e31","vmUuid":"74A418EA-E422-4F3D-80F3-A27EFF134897","clientPublicKey":"MIIBCgKCAQEApXHJ04xLKtM5Tx3JkJBkUl6bCgl4we2qmDaLXirXvGlic1tFvvk7aID6Yblj7N50s9fnAPTBySDE7Ae6On5VxejtTr8PJsXVvwM3pT+KFsF6N3B4LgfOeegl+mV5Q89j8q5xXjnNnhqkCbJlGrJhF4pUnJclaNxmFPTcJ37zMg2K3A69YvPgUsurV6maUkTVQjiDZtJQ8owT5qJ9PUmdaw2i4HuSEnSDPXbxvxOBuMQll7uOHXIPCygACuj7h4SIluKuHV2+uZUo10+oeTrRxcYZOmrNqzd3xbpqo/b4gOx/0aBUMND2vDYfEgYc66J302K9ABYCCkM981vcxU2HRQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-14fskj_e2etest","name":"George2-Win12-14fskj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c51d7a79-c450-4755-8691-f0f9af9776fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.003","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"981516a6-6cfa-4f78-b303-b744f7697db3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAqqiz1CYitN9N8rYVybynJ8czx/xO2znwtqc4mIMAI7v7aZhRMO4W4aaROPM4V3CUGyVvE7zftL/YoWlBaknjsZOJBY2tZpChbWVKy+F7zXM0E+WIhRaOMe0TN6UtYwdqAETZ8FINNEIXN4UgSYO6CD1J/oWVl7uueQEIc6jJNzVd5AKXppGrUijrp7mM28YirA6c6ZnqhSZULIbCz/ie1dD57Wwv9vlXdLyuS2lXdnMUx14UWrHNrXxw1jzJUAZi9OpsWue119acuTNmnIq4tQ6curzgXHq/Sa8AD/0FKT2YG1a4c+6LGm5EQPeAfJexvgVUwjoF/nMm90yTJMp4jQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-12lrcd_e2etest","name":"George2-Win12-12lrcd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab3f7557-56d2-40c9-b0dc-f83c616ff509","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f933867f-5131-46fe-a8df-76070e6a4dbc","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAw/S6yqipC/FvWgHL3RsIHnyS1Nc88AT4w+K+9uTvLwxSKm2GWzTweC/sZcgDOdoFTWa+pjJNDmfd0Mv00xTxW3/nk6ejuyJ4GhxhrPqfu9H6As4j89w62o4IK25+tyDZKgIGV68096gUiDbWp0YxIKz/5eVlfOvOu7K3zk4J9jruS4Rmzwkwklw7zLz7iNbXAIxmj0WwTFlCq03lu1bw9qdMJLG6yHR+GpebkM9ke1QQ1InodOl4lSxjRVcbegE77SgMPPd2xETvERmnFGNtjYLpdgUIHDV0LfTK/X24gfohu1UczV+JYExI3zIxWzGN2yak+HZOnkJlre8SbxhtvQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qouvy_e2etest","name":"George2-Win12-1qouvy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b6288677-9168-496a-9c18-72a39ed50e7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"03a29982-9edd-4474-aa2d-04ab6cbb8311","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAtN47Ld+y/l4uNorbX8o4JqA00ZAdac6EHFll8zbru+yrGw8IPMHosRkucwY3t8n2fq95lzVqTywa+Oa8j9w0pMxmgaRvj2lrOfm5aH3cDJqrqVYGpdxhAhp0LlCU+i1TvHZQIgslLvC4bAOLEOZUHd9CNZxoUHthyEm4f99ndV03CNBPJBubUCn7enLFj4HPex7fyvYcjR99xpkD3elTTGkNa1vpeK1hK4ebofzE8zIxbt9vBu5xh1JRyYQ9S+aMQl30AnQmhbyewWn4/szT7PRGXkbuognI2+Yk3Ai+Z7fmq7TBzXU6ZU9Pm0T0++GJODLYnxBb6OibvmuoiiIV3wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1v958t_e2etest","name":"George2-Win12-1v958t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"916d0211-7d99-4f43-a3a4-0d29f197b3f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"b2574619-ae24-4d59-95cf-241e06ec6b91","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA1mZjj6g2QApu1lNmYaARgEGa4JkcSJxMCNzDgd44pT7fkK+1wTfNgOizXHRhQilZYguAnG7bnXw169jjm6nLD9bAAdaLim4CrEmtIoVWK4Piw+lnjxEBz8kp6fWDhWTNU0Hyr7fkBfm7iGmVFvlr38LEJAdj+p0TitLuGpS31rHLmdEMPjZNPCe5qE5KgiQ6SCA9rE38nB3WqCJlwY/YUJ/0uA87/3+SUdV5wQ+31xPc/w19YyIad2Gs2wt+XCxc6JZGwDmnpHEZh8UTTFpjuCYZWeOrNkSehC4aF/bqXiB9tC8JxVVFDCm/D1ALjvSI1+UfyUtLL5p45m3hPF+yWwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_CENTOS8","name":"0.8.20132.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"83795b92-73a7-4842-98ab-e4fab5f48acf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"774e8a4a-712b-49c1-bafc-391f93e09631","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArjwXbPEHZs93QOfZqBWuj78EP8yWzkgSdWmXJSle+97k6wkOh5tyw2/3Zw6K2iTATtFgbxZuagL5a4D/CRHWWXazgyxce6YZRgQDtWsyNa8Goflsnb7eu/YlMWUfoRyvR3u1mpsPhfkP9DsNnTk0Dmp6fQC0BlzQVh+ym9GpyAbFjp3dWOYOyVdxFtC8Yu/98bIpTurMhxMGN8dTyYPGYOODC9DM9exU9zqg5KRn8STQig9m5xtqyoC386xjLkZSdnIaD2+fn+yDBI54NB3H1roBSr1gvPSSsnhC+Z+kXxmH2S4+o0FPXjrFQdRmi3kboGo8FD+slBO4fkU8v/mbWQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_RHEL7","name":"0.8.20132.004_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e905340c-f1a7-488d-bec9-7b2ff01e1f4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"08db830d-7672-4815-a778-b1de59c7a68b","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtI/CVJ/Kv1m+zEh8lvXU08cViWZ4q/wN+u2no/w2nrEV3RLCSV3eKo5LBS3/066t7XG3dCyqyXtB90eDVhCalI+79MqLmGZGVhtmrLqj1s0kh6ofaWA2szFh/Luues8Yl6FbSspENOKsCVIqTTueSLl+KpsOqk73WkIZh9vJmYoxkNgiAWJ3Vf1666vGFyLB9L1g1np1BnwTw3zEzaMLrfFI0rAUOKuJ/vSXYSuXJIEwNzkUJiky1yTgStkTnIGEBiZxZpmjsZbb66JEVtk2F0fL2lAEu/3YkXvPqHrVWaETH5JCuoxIBtgjcZa4g5Oua1oY3BAnfP7Nkh28we1URQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_SLES15","name":"0.8.20132.004_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61a623ea-1c59-4269-aa96-6d2983c56161","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ddff1d10-741f-4586-a6ff-2a346709aca5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAqZFtUkGbT0HkmkrwFEtPaVTNtQ6dXl8Lyrpn6M/+z5hd/QzrPn7lg2XZMGZdk/O1DC7Dpki24lUucwS4gIBvpaKIbuTmcQ+E3W1IJTr+S1pOskf6oytzvc+61BBGrXVi2+b0mcTRWyp/ku//zliDcSJ/+HVHkKqPel7N93TWTXPfqbdfcXj7Nsv51/OePu5aVif/3GQT3axeSGUqO24hWMDMKlOUQJegtiz6ms83AJdNf+O/791b3s4l4a93x2zV22sTw07v1xvobos3rvrPzsBNt6GdjBc/7KNfcm9TXtFu1od844drMzI+2CM5jp6HgEwZA4hl+XAorzMLmthZlQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004_AMAZON2","name":"0.8.20132.004_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d366390-130d-4301-a73d-932a2ffd1c30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"ac3debc8-23e6-4d01-923f-96190f4656f2","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAr7zpo/1oNXl5n2TDvroifWnXNhmTaaFc8OuHzRHRAH0rXWeI+6s5hzu21X2IXbkyIFchhPm5OQixK5tahxALl0KWmii+4p42PdQStoQpfsYt7mDfZBC3NNYct//JUCTwphFnLqbEHqEFtIzk77v3V+XbZImhTokLTXPlylMef1s+P7d7NEuEv5p4LL6LNhKTHW6IK3FKKav8vhj3JMby1NcoX7eagbgHdT9iXgBDzUQAKSjefV3d6ZKr1jb54A0h2f3BGh59jqMM9ob058es3XEI6foziemEdr9YyW09zGiXJTbuYS2wUWHTbI8aPEz9OavJ0pCU2sYy0DoUJU3/kwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1fkdc0_e2etest","name":"George2-SLES15-1fkdc0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"163fe101-33ce-4327-9fbd-5b6eac0a985c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ac8b381c-2636-4c51-8bf8-f855c4ed7588","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAr/6WCXIN/Ri+/p7O5HbEDe+kintAhclVf0W0a1FASXxe2hMgANG5EdeGZWNsYMhb2ad+ymX8/hS4/mSd4SM+YLg7v6m6Gysc2G14LxtT+8eDRAOINtZoA1C1aX0V0E1gk9fr8eiDt1RkBTWQVsgwyvHyxQYw5+oEAq95SZ51GVxhnwayWLI7KXvr+yju02RUgGkFhsewRYDlKqPcjIytU+/UrgFvXA0d4ncQ2hdSP5Pr9x1Z70h4AmfT4yZ9QMUIQsGMywub0SX6CgVeqKa5v0zTTTyVhC+M85RKZjdo/87kWkeBVnxe9Kl3rPCBSSWB26ygKTx6I8gs5aPYynF20wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern7it6n_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern7it6n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8358ac55-da1d-48f3-bb53-0e119b8c9710","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8c40d3a1-d43d-4ff1-af3d-4a53d54926e4","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA2eyu4APViRvngh94GeHgfgU78kp9GbAVHvhbgodZ0bIh9SJl5+xwd+mXk+VvRxbFQmQuXGUEXZR1Tr3Tpd2gVRmJHaavaVVN8EJ1RKuh5CUONpjRI/1YBYl4JxU1Ka+XLzGEAZNPBDm3P1NU6CPs7KRa/gTs7Epm6wpd1IqcPVPGbibzBMsPiQcFuXvD5f0aieCzdBzdUUI7wmOqXFVstMxil+9dPUVYJ1HzWuaLCA5SZ3FEVubyMEKNR0h57u22C1PkC6XVJOp50GI0hsAyNqQH8Sh0jte2kE5+PFDJqiVk5Hf82WaA8kOQnoo6oedPjuAif0CUwzqkjbfYEzO/jwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.004","name":"0.8.20132.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e108567a-1aa5-421e-b1ee-ec7fe0d6dff2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.004","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az408"},"vmId":"6a3cb0aa-e6b5-481d-ab83-8328ce1f1cc9","vmUuid":"5CEC16C9-7CBC-F249-8BDA-2883D00CA0DE","clientPublicKey":"MIIBCgKCAQEAzudBF+FJISzlU2Xya4GT9mtXRSZ0RyBJvZFNb6fg0yJhRYVsXWsKniy2srn6lsuqRPwW2b5kHiBunOcM0e2YRnX7HvroUyohOKK0T+aXl2DL1R+VcabPhFjBrXb/SMwURH2X6cflGgZ7mbxo432kaMYKZvmlnCh12kBN97QGwJLpa7G6Y/tbu41vwA584mMPSY3bJ5lDMLuqfQ18EZYxhSEEMP3D1/YjK+Y+Ekr4j1UYTcmMJbZrgdEnMyNebWpUGp8BBjecIL4hnm2+5bxQvVQjZLk7mBjVdbHlCCyFXbSWaybwlqlmPD1MX+aNqgYgQmYTXOAT/XJN43EUsT8Q/wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az408.4k0o2epyryaezbzsyjzfdcfrjb.gx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8vs0up_e2etest","name":"WIN-02FU1ULEJJ8vs0up_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6c559a0a-6ca5-4b3d-a5e3-3514bff16f22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"384a1f32-2177-4569-8c02-ade0abd16c67","vmUuid":"466F7451-2E27-4839-BBB1-3FB815D2A040","clientPublicKey":"MIIBCgKCAQEAttWCU+UckObeaGMt9TZGA2ZeX6NL09rJLPueLHhDcBmkoQEp4y2OpQm6v4doFv0GArueSCca7QZ2FBVJosCkmgIIupX+3J1FVZd0N8d0HaDg9AFC5VkLqB2FanLtRQBT6yE5BRa2lx8HJqMgy9U7f0UGi3nx0zIEAGxmiqzSacxqsdPIg7tXIyB0UccFrHhsG4u2UIxVmaMrDzTeutCXP0Mg+OqIhilO5+a+QFycsf9AOM9gi7FRzUerM45xhVvqfDJapJqzGz8hJNILwMuuX7ftHDBkBndMYACDE9hzgINBmMLLO7iSEiKxW9hWZlqkgX/L/ZHN7JlG/gMx03xthQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8gi50b_e2etest","name":"WIN-02FU1ULEJJ8gi50b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3d477249-6d94-49b9-95de-1866fbad8e85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"87f7d102-501d-4bfa-9e3b-512e996ed9fa","vmUuid":"466F7451-2E27-4839-BBB1-3FB815D2A040","clientPublicKey":"MIIBCgKCAQEArwF20VXHF8e1RvtTCvvg1sU3JpHFldWeLCZEz5tDKOHpq6GZJZexWOn4eLm2neiIvSUYoMWUvlhAXUCA2zbaxQ7cAqQgmFxMx2HAJ5QVQ8nSVt5jcy1zBagGUPMpCbfXyGJ6XxsJlmeG/DxxTzbyqDhwt7Ou6EqTh9rK01mjmFvj0lSbsbvKq3ypptkgl4eXygPDRgTlYkcfqg/1rYXM7jRAM6i6E3kjTTQ1BE9EJzqk3MYu3zcQszqbu6wrp4a81LkrtAr4y4WHSWHAo9YKyQIVILHS6D+EFHxNy2Y7PQmDhpWPAvLwHA22GEKHq92NxJBhhY9wPrvqtmwVPSx41wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_CENTOS8","name":"0.8.20132.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4f4ffa6-0066-4855-9a51-80e620805020","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"8b210f52-55e9-40f9-a5d8-71b86d45b7af","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvqgvWvd7dAw8m6hg3gLJeOxvnp1S91n4p322QpIAGpD5hrG8HpiNRukogYsza/ahRowY80U3YPd53TaBBwqnC8SF00AUEjm09nuFKxQTriJ8GuwopI3N6VgjvGRn4SKWPfSd04nn3i2Rm4evRmnLCRlWWvpNUtohyQ38SHmz7huXyIwGyr6IhLOXINh4EnkUn2Hz2pN2NwQKNlVtlpsW6490pi8qV+JtpTNIXRWuPcb+aXSHyHDSTfWiJKA4W/TPXNSCS/fj6M1gM84evS4nyJy9hIV/6vr09tbrIyakTpvEjfT/B2MVdcYFnOWbid5dktcdUSWXEGVVotBf8U3IjQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1bciu4_e2etest","name":"George2-Win12-1bciu4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"567503f2-9293-4f80-a18a-2157848c48c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"82beed98-65e2-42c0-86ba-053310fe571e","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAvIKGfHEUeXXFjrjGD/Mwf0CM39cGep4pHYFugT2A6cl1iSwhaZfSCssT6g/HxN0utPVqUl555P9f9nGOCaZACsBSuBlJ+gkYeZkn7begF564ZmytdUQN+iDW8G8kDRAMI3CLbkrtQC+sos8c5ng3Gxn1H/qOt2Xm7jbtOavghYBPFcFiS5ioFBlsnErbqHqz6I51pyFuUWXc//Eu/b5F5CShnqUmToG0gwRaxndyxu4bQpKihRtYQEvrlGezkzNrBXoylviAZv56SxVNmR+WKCHfJE1Ax+m7T6D6D6Y70TRLLIKWaINbrJbYaM2wpv/jiOlavKgj5oLc/dh+LCotjQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1c8lji_e2etest","name":"George2-Win12-1c8lji_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8ca96804-0712-4cb7-8ae1-93d879a2cbd0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"a58bc268-7341-4467-b088-0014b76f555f","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0h8oOAGqjOdnpxmDnZjh+2g6Wk9YlAH0TclS0YEFPXaP3grh5Gp0Hz0zT4TMqAcoTQz6R6IJBXoSZBg+TmdmNHPbkHUAN3OLG7eb9ivKVeaPL8ZQBuiglQHlZP97BabuTt96Nbj21BlvtuyKY8sznSAGuSRQVGqSfb1n3V8L88sU0PE5q77Kbq1/FkEnxociabdMVa7xYlrFhtKeOseHiHF74cMZ1PuxsiQGUK3rkXdSIJOu7hcrtQSBeGc4B8kcVmV2JEy3ljve8SvrSmmLJ+vvQW3wMfurCXqz7+pCM2MuA4hL3ss29qrmAIeOCEKrZpQmxLvuvh1wx5lO4+vzKQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_RHEL7","name":"0.8.20132.005_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dee3167a-7b92-466c-aaba-882aa8e658c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"559d8e1f-5240-4e2e-8eda-6507b0d355e2","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEArtiqAS4EFTkjbu/g3vzJ5HZ0xVPHUkZM2bp5Lpp9PhEzQTucawRTt+pc3q7n6p8Ck8vIbmTnsN8nyP004qFYWV+HTybK3GAbKE5KcTGF1FnMt5AYgyMv4L1vfXnyc4XtUk/Jb4TvA4dkUHeRr740qT9UlCY5FvHZ5koC6wWK1djDB//UXco9YDXisxIJsobU/PQ0o08k2TMM2eK4JXiXwIxyByNXYOw/Mwz0jEy3M65CNghO+ras0uwwZNS/2QS0zhtF9vtJMtEEC81EZXhpUGvzrFMtkA1hcGEJMbCCdCyni3YH/A8Glx99w9LGq2wvSjhasITRYny2XRHCXS9W8wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_SLES15","name":"0.8.20132.005_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f4f9b5b7-adb1-4023-be59-0b9ee35812ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"14ec7122-9949-4d04-a4a3-d674483acdc4","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAu58UqvSVbE0RhNZOheJLtO+4hFLOvYssrE8g3Di4I22EgFmq8vdbSKHpW/phrMaAB65Uus4xKaGULnUOo6c2gjWP9Gu2qpwN4CgwkOx33iiuFrAJWxBvBZASwWtxPcSk8jRUVpSMZpcmhkiHlc7P/FQfiODtgi5BOfqdj88kegxVqpl/goC5PBXKaXKgcxdEVMdk6n+hZyXgqpqbjxBSkKYwXEeKytOu9lDA7loCCCLUNd9Yc7c23i/hW9zaLpr3oiZcjYJGe6PcYnnhWUge5i6Q5yOAunLJg22NaFgwjcBKFcZMybzqARh8trjnQ6vNv9oqvUyAeo/FApGXZOYecwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005_AMAZON2","name":"0.8.20132.005_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98631d1d-3182-41a6-bd00-108e6cdf1336","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"d2f05234-9936-455c-a007-83628c75fe17","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA3urhUDdPb0knNxiY/h9+pXNzhYOedx0gf+2ROCSbCNMjEvm0VZ8d3Q8SFZMt9ry6bqopzqK5mXafz2puYq+JDvm6HqJ+9ymjLFgEkGeWIazy0UP+pd8xRLu4yO2ipt3XEFta2WtJ36V77F/8R87+qH50qwhSgtV8x5kxgs7AkWfAssp7A00XQTlkUQvoJzdkm2aLqHBaW4E3c63jSoqVY8q6X4XkDX7rHnvRA0QyLC2VT5vMapmq2nB2+P4FcRMTfwt42m8i1hJgPl/lZ9aYStD1jOY+uKvueZ27QIpiyotDgrvjI5mxYBhYUf6FXbuw1LwBzRBILNnPgVniwURlQQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internnks2w_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internnks2w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"643acab7-e743-4aa7-a66f-3f74bbee33a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"983b2492-3b4b-423d-aa2d-19b359d31ff5","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAtaHP2HDPCSCIF9cx2bCYcxIWGVS/78gPzhgrabVrstkn/CtPaN/RYWbvOXe91G1LJWvV3kRF0aHj5C30WVZ1qlyOnr+4NszbXZzLDSR1/an/3CZ9ChTEskTo1E8qJV2DED5BeuWqVaHFwFVcRD/NYL4l/GNnlfjFDoZWo92BFc2j2go5A5EncuBJDaCZPF9dEsyIjMb38jUms/yoo54CspSXmnw5qSV5d3rKJXljqvfyUTAh53Nv5uYbjy9CaQjt8W49DgG6sHeh8y1mRv/Orz3VPIdIkZkzNVQMAmqum2uaOI92gH+mblPALRX1cjnuBWnOtStLbWNkqt84Wd2eJwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-12gjoy_e2etest","name":"George2-SLES15-12gjoy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c845b6c-24ae-42b6-b04e-a396456e3ce1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"26701144-1954-4766-b9b2-146426695855","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAuFu5tqsMvNeCJEZkeRXJd+QKszFKd1NDDa7J87WjIzgCIsaiizow1Hj71jB6LXAr54fbKmmj/+4uqY7NY1wWiZTvaxCDKQ5liMlalTnB/rt0Tnmd2v1Yj4E+xz6NhEoJYRTNQzflUBVJ2vHBNeyREVPXHjduDogoxSIPNFIYC+myoUahKVSkF0+ZUVraKBt0eYoDkM9FQiSeCrbeZCAuQ2yO9BTGil9zIHrNQy0hKPG0q3by1DD16jx+UUgJoLwwjpONsiIOiQyyByI6sNxAq5HMAZ+Y2kCYKwEGvsZUvjTBNBzlQBunKyGp/G3sOmjK4/0iDMpcAl4SvmmuMktAfQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_CENTOS8","name":"0.8.20132.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"83144a79-02bc-4fce-b4f0-bf129b3c10b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"a12c4e1b-0009-4cad-9c0e-3c59d6f56540","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArZyDoBvqEJQsTX1OuoTm8+LHa+/VTqeVUZP4lX2vv5Bv6XoQ9VHA+vFxTSBPAaFvQMn+HCVTNpKzehPx//qitz1H7e/Dm0RpN1dXyfQKPhPtXoEyIxtklYKzLprXpXP0RLnGHTw4rtEubdbXckDOBbVyA4nKd/nUEyNmObBvYaNo2ssw0gh14QH7E+QN53/66Ov30yfxFHSKNWryw+oelutE2b6C+gO72LHYWF3Rp96i4aJKsi18CYnNoiv54gkLDn0WcLpt1ThpYiennQCnqDdOwK8/ja8uhLrLWZcWHSzsaNYFislSAfDk9PhRVqa5xJ9r/LCwVMcBb3RE/xol5QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.005","name":"0.8.20132.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4391b1a1-eb9b-4691-ba69-775777d9008b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.005","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7b8c41fc-e52f-44af-90d4-e6bbd7361d42","vmUuid":"F04BFC72-B075-6542-8A28-571BC8DDB5AE","clientPublicKey":"MIIBCgKCAQEA7EyFaGtT9mWqrGu2FhaTlbfrc/WcPBeAz4uqnpUSZvD3OimSRsbXc5RqAP1ag/hStIAysloYIhNYNaeXZVEku9FHFVqlNonkjeA0VbgmUM1GyQFqwzd6BZBKqFPGyf2mczKpPc0M77bqiP6qtRFtROYSS7ArDSGMAGrBs6H4IDDj1ISMoJq+Ygcgzetk7KI3T/EfdoR3xeAg6HsVlyMvMXeV1JwNSRckolLkmby7tIsZFUJbrHDiqxo7Ral4cA1RgaERqrBTUR5c9upnfLfpazaz9hcLY4NvxJhRmzUpYJFchLJadrgmyXNUSsS5FcRBP+lonwGrLnpTJ9hv12L4hwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.j13dj2sevrouljjtk1aaqegv4g.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_RHEL7","name":"0.8.20132.006_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5730798b-a5fd-46b8-bd54-dabafa785be0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"e091fa2a-f56e-4afb-9283-d8137150615e","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvQLQsNvfFv9zEq0yzA/xgaWr4ggRjIGJ9xiovZrEWNIQN6gTOC3qsl6Fm3Z/xCGsmE9TWJbHErRUDgn/gGtGSA69B/6J+j2zIwQmGx2fFClzNX62X5LvqdSM92lEXKyrNEs1pj5CJbVXKLZw4gJULr9SYNPqDDl9Mdb/yqEK0o1TlUBF0cXmBGStLpr0ZSv/3a58hwoSvcRuVSA+vZHCHeZcTfb4NHzGVjxfhQ984yYvz6J3r5mFMxDyTuvlTy11Z+d3OAvg9VtpadrLq2vE1PJvRI3ZnZnP1onj2TkXMQRHWzYCL42wnMPgLlOYvBRMpyVx9XEur3g8GmppEnmUEQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_SLES15","name":"0.8.20132.006_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e613b01-8231-4f22-8815-b14fe1d13cee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0025dd7a-94ea-42e3-99f9-2506a5803005","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvDoBF8e75LlLnDQfMQoO1bolu7efyzAaMDI7OywD6JLpxrxCgrqApqB4YI2dZa5LRciomVs44t5HDBK2fRmO0hVnElUe/kMqyLa2+Ud1YRNehPPhGE4CFfHBD5KKkcyslZgx0XqRgYAn5hP9ttxjdu4UEyEmd0aPGv4sfxfE7mvGXeQb4DvnWNatYSYMCSgJTy7e2QXLaUyyVWMHbX+p5g0wDzHYAmffsmJCZ12ZWhPAdMhpq8a7iy1/uod6GtQQ/fsEf9PA8I9mvzAkvk0LfDPoZ7AVNqHMdlPYv0iP0a8EXeNroRf//PK0AMPWx/zOSnc2YwKJYIoF9Xj6aiMzEQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006_AMAZON2","name":"0.8.20132.006_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9f23790-51d1-4d9e-b962-9fc1eedaa9a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"5b57d319-427b-4130-8c94-5c536403a03d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAnGjHjTuszQMmUXSGfFP/l6q5jLQUb52QUVMC6jyjldWtTCAVSnAgVjg88J1EitWOpsFjyJw5kjxqhGwNgj+l8r5DaFPVWT+k1T4I1e9cOChXBnSHno19rwAthcOudmxJwuo8i5NDaE6C+SYCQnkOdagcgCzxSxmQiQ0xgFOL5C/mO+u+1JWx45yvSrNvC9LVbMprwE4NyhiO6QiSHwYIk+HyhuBb19XSz86AqNisjv71KxHHsFyoKHRJOkHXEdlVt48ec4F+dHKGBmj5Mc4pMqTAmQ9/wRR6MX/M+6EW0hM4Jl4CUS0ehoeSEDB+nd5JJL7wCt6yOBfu192EyfxAuQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1xwejo_e2etest","name":"George2-RHEL7-1xwejo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"602339eb-3648-4ae2-99ce-2202476748fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c7e0eae9-6105-407d-85bb-78eebc64876a","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA1aMdd3KmEZoxhgAGj0zY9DWGSdPmk71XV1PZ35YdYTN7ub1FIMNuTeXX/g3lKztgHFHH2R8v1TvJlETTNO/jzX59+Xl6kQ4Y6hQSVKdGo4dLT5i8O1cpYZs5HFwDcANzbQBiJg9lyctToG8HCRbz7B9LkZxCqVVFaGAMMNjnBqJxfUY13zBh2SYLTP7x1cBOMuJxOE6L6Qi3HlvkeA6iwAOvjbXTuucH62798A3EmIpDqtv8NpFEIkaZ6jAx7NGTLgw0XMUw7TV2duSbgdGunuuWVPPIbj8PQBvrvPbs2rim9Bhsnr1g1xnjwb6QUgFNuZcUbDviHjxnrC6SU9xbuQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internd3imk_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internd3imk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e597d99a-29bf-43fa-b31b-3298022fd38a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"768457b9-48b4-4eb7-a3a3-36c22c276c93","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA8aPoFMrWZiAeG6WY+x/68Q6DhV/RrZwkPCC7WPUKIxqNJsbg/Ytl+39AmSAiLy8TYbU16nCsjwg+Y/nIDlWspL68uvgDBypFa7sN2c9DOFduu1UoPf76txkscieukDltgGzOpcLzWwQ9tQGlmq5tjnd8PCDtZEWmpUoVwS3pUKEQgno5aQaTDTSuV7wV9i1oaCIfy60jP0uS03wI0aL8EtrzBD5YuepHV3GmwlGt7FJIIqdLWFn+XLuTPbihEf1rk6Rcb64nKhd85UJVJhAYpYCg5E2VwfoPnfS4OWDNs7j0+17gSzK/FHZYCx1tVJFmRPYI9K9UKO4tE7I1qiLphwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1niguj_e2etest","name":"George2-SLES15-1niguj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d7292370-99fa-4e66-89ea-ce13b0ce76dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f3c6b569-8dee-4cdf-b37a-2512f0a16863","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAsNL6EUfMtWcUjtX4cy7zwVT50qT2gw1OGsBCub9LyvYjF8hKbplaSuSlgS3kPlY3otf1gcdZ4nlrkFwO1v9gtIIhlWQVlLmB5xc16FHVubAOtVNR9KFjQBZLZ9K9sumbY8xPSYCtm00mLKJ4IYP7WrfH9ET5WJK8rw5oxylc6QF5gacCFIacOvLYb7BTPdGdoMXL5YJbK8QjX6gWdDmvV83NDKWkm++FCbqJj423QC8VCvgU+ev/N0doERe03bgNqOchP1BaWIEn3craNUsQkrofg2sbcGe83thTQ4Dp0n78MqYv0Q8AZtWgd1UehUF6vUeUZ2G9oy3BE3V1q2cS9wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.006","name":"0.8.20132.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fe73114d-4aa1-43e9-977b-25bb802aaa39","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"3b591c06-5e53-4718-9e3e-00b9881bf2f4","vmUuid":"563F0D4E-E58C-A04B-ABD4-9A4818BFF51F","clientPublicKey":"MIIBCgKCAQEAsL83aMh6tLI+RgfnUTRdTwq3QfQRioK9hX8Bc9dIQNPXuwn7uSP8xvlr1VIj5YapCfrb12JGpDPxkHcj4etCTg00z5p4p/PH//RVd7pLpgIydAeBlv4mymCprWCjHN2/PdJxExgzkneVkope7b957da8f1+jeubG3np50G2F56Ty3HONbewHrvwxnjnowaIaEni7hPSibEPeiMQG/22fv3hBCFQvMSLEUjReocmoZi4mGvg0oZW9QV207zuZZOCtFr2EYB/gl0BWCAEzpkaPiFfNCZTe+101JFsfkf2KQTRO3kbYCPo/8aH8K361c3EzapDxcUmi3+dxHeD+glT5RwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.xodcrcmrbxaenejqqy1jbz5gec.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8z07ul_e2etest","name":"WIN-02FU1ULEJJ8z07ul_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d000bba6-47f9-463d-97c5-cd754ebbe7dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"3a0a7413-0b9f-4cae-921d-393dbda15eba","vmUuid":"EBA6E616-E35C-4069-BE7B-F5AC6FE85D25","clientPublicKey":"MIIBCgKCAQEAwuHvCyRiciPgOB56tVULJmwApYn+NxR64P2CGq3MS+RTF1tCPIxTVYlB7iaLEN1clR92EHvEebcvFRUAXMNC2Q+k7QU5iVQWF16OWWuw0zOSb5xjKVZC6CK9ifeYTchXEawOd7AL+HdyhMiyNPYq3qrzc3GH9t4NRs0Tw2dW5fQL/75rZ6LgVFgy8Wqwy76mq5jPI4yIl1b4ZtiE0FmxsxuK6DlrpZHMilkrZZc4WABJDznHQK23utzj7vbhN6IXtuGKfxmKfmQmFXQnsFK03vfOE2kCyZ1wY6t8dWqf34VJrOA87lkA8ltWpk+Ah11KpN14mYsjSedzqowQ6Y0QyQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_CENTOS8","name":"0.8.20132.007_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f30a0510-b22a-4a34-81b4-9f2a359ed618","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"e9c7c84d-cf7f-4ec8-a653-05d9ade3c137","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAu2rHX6uEUWndFVsw54GbFCo5QQxQIob3n3qxotjOPXz0mw2JK0Rtoroi/RjP2lSTF/GOu5b1Vrj7yWzvlyXF2UpZ2XSfKbEjf7+lG0t26GJIfnbpo/kRNdUWX1O5wLPMlyt1AlaHDmnJNX2P/cXwn3kHdYKXO1JyUBWJ18JR6rq56vpPrUf6rAXheHRZTdIIf4w2EVbJl/UkTiHCCFLwm7Hyqu27bXzjv1O26BvzYIeB6ZrYI7qafmi6NcWmZD9PWdH03fB7bOGFkjN2NhGGfcy1e/3s42onVwOwlLZagF4hoQUmYSZ/Ve4qNYjo98hXRGSZikdjV1jfVUmZVfutkwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8nhy84_e2etest","name":"WIN-02FU1ULEJJ8nhy84_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f0bca5a-5d5f-4fff-bebf-446109fcb4a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"ae0c1f59-19d2-46a5-9291-1a523271cb92","vmUuid":"EBA6E616-E35C-4069-BE7B-F5AC6FE85D25","clientPublicKey":"MIIBCgKCAQEApPelSz7apK68fKOfR8k39xdoiwE6BlKur8wI5dkJaU/W5frGKaicvSmced1UrH3QCWNwZJIHpOeaC6Uwf/QgMrIaYAKhtUzNPTjMD8Zi0XIWa+eWieAaNeW3omQRG43ULBzqqo1vDDHn8oHrqaAS8OcOQukOB5kkPYz3QodVA2cL/lOTFNGJTK3+jG4fSpZi+QbIS6LA5Q5FPtP8FysviVqWS7CSEVCi/brx98/BeIfGDaHqmjAlsS7UaJK3QM5ttnHkmvNl2MntMXcxk/OkzCa2pYImyxP/NQqe/0NneiwvXH5YOQi1RJalHlvYqsR1F5FhuOq/5Ofrtq5+3AuLwwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_RHEL7","name":"0.8.20132.007_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1d121182-4d47-470e-8f78-56c6a29d9622","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c2916255-df88-4ed3-a3b5-5184c795c728","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA24wIXzAF7ntoHCkf5XcwpxNxf2sf4SVsgphFEhtaB+M6RUEOJ0YmRWK0TVvMENf81eP1cCBjiN7beH1Tp/jNw7ws1ekwxyzBdyqOYwP+wP58Tb5pjQSaI1N4Wb5egftFbKzK2fymCVBvY7Jzd0ieQUvafdj4KVIDOsYR99UD0cbMRZ/boL0ajuas2tGeQ1dR5MyJF+VPGkZKmWzrjTnfbsXc4ptJEm5kmNGGUhIwIkkprvBgIhBq3bGgWwzlSsakQoFJPcMe+Mofoum02tBKwAiiQ6rTO4bzsKYWwKYDnovowVlVvn5uYP1sb/5gC12ydJaAfKzGMkg0dYDzth8QdwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_SLES15","name":"0.8.20132.007_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0f3ebfa8-d08c-44ee-b83f-a12998a9ba17","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"6556056a-cac0-46f7-a481-6034c16cd4d6","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA7JT4Y6IpD3bzuZD2wsyWFcUj4MTxko255PdE0j0TY3K4NZfDmK9iGbHJtCvqII7erx2EIoB6qIIRS19XAOHVuzY2EUPJYGO004E4jk6s+VQ/lb8P6qh07O/ui4ROxm4LmS0dKJ9vw7wnuuD2pJJ7eSQmIUhfO4Hjdm6fkX2N4+H4jZlj9A6V6VweCNGOeqnTCPu7i0UeEzoXKYpvrNDW/hH5Oxxv5gzRqvg+SZqM1/KrqF+yQNcKZyWAFvW/Uwcnw6oBJj5rpx7pUSZXPWfCaM/aa02B3GN8s+IjS/vELtyqyVKRBW0UjjoWc0wjYRzn9NetPQ82ls9A+2WkZC/pfQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007_AMAZON2","name":"0.8.20132.007_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb1ee9b9-b7be-45b7-92d9-315ecd7167fc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"f31aaf77-b55e-4923-8d95-fb7e272773b0","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAza/pSyErE6RYWTwloVZsfeq0Sl8/vaDDlOxdYBzP84ckLfvCkXKlGztZEaP+Y4p0IUk5NiRpXoNl2vfGTXtRF5fG0f/3IFasMM0x+A/W377qdcMxkzGRcGEtUwxFYTadKWETF0xeNAqONcijjvIkb0+dzsQpua8IWTliqDDq4qHGc2Zt2U7bZcJJMkdSSjiztvWK99GuyztD6vQexZ8cdUOyXSc58uyksF5KQi89J3Iq11DONHBuecQUhlRk85tPEPOlT2vIKfnNliFc7PhweyYho64EAtAQ5YcVZD9wK/uZ3xiSPs8JRoNgcUUf2oyCI6OLGhmMt45xK0XxYqFx1QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1hy74q_e2etest","name":"George2-SLES15-1hy74q_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7944431a-6262-428a-82b0-411c295957dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ba9a5112-78d1-4730-aebd-665fd19a07a7","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAw3IjpPgJqoweh5xF3V0D4mdUK4nvBx2qLxqSqPRbdsVlS499yXTVLvYK6FIUr5XNWt36LVTvx8j7QFLDixWrDMNWioSNCnfa0ms02Kx+usz1aSJ8+KpZ9J4j9JWDoD29ITNNnwsalNAMehnvHwIi9OwUEHsBwFvZ+Hhv/hfvmPlcOlG8Ypt5EUMZRizkc4mW3owf75XY+1FyZvHUvygqfYvoMxR6lcEuXhucBzkbKEWLKLxY7WgA2LAkOH8K7JB2QsAGmP4hkKaWjVLGA5D4deYw72YRcztEMIzBQuCRU2CPrTEDDClfdHHVB3rYlAL9J5ZhKeyLxillZ/3FweP07QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internfj0tr_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internfj0tr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"972e0eb1-fda6-44bc-91c9-5c899aea9e42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"f50671fc-2be0-4043-a0bd-a71eaa1bca85","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA2KN/VyGT7uSwsVNyGqvsKkuYvhzd5TUrJJ76D9TbC0CvBCpz8fwrrp8lEilv1XzdyzAOEvWtQmMGfoC8RR5bFwRJioB9kPJYRF8Q85Sl8RYERv0rp0wAGlnJlQSlsrEe4jWUwTxyhRst7EpU2o6rBbYsqAvYTq0OoL58WHmdfw8n+X08F0eK5+X1kpwDATeu28VkHd+cTK/3w257fRfKaZwnn8jwyagkmJdW/tku+WyR9ELLNQM7HRr309SB/wLwjk0p1dFsRIBGF2RrWfxv4M+QS0I/o8rTRnQyNQnaFgkdba3doxA0rSCoeXLOfRSx88HYkt3gMLgr5kzW+vtwcwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-12tbfw_e2etest","name":"George2-Win12-12tbfw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c811de6b-9a93-4cd9-9055-25634cc59db1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.006","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"94eb4634-d86f-4d30-9946-e0053cc02fda","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAt5ucgc5U6o3aoZ6DtMY6beiSi7d23j3k1KVyWzkKIib+JF0oPxjL3sH2c8xiIOb1XTrdJha1e7B3WrqSkpY1n9mMtK2mdRToLfZ4DPNUvsSDg5fx0e/Bt1/L0Iw8wbMhY/0bUK0e2uRqxFyvzPRKK8sGVH08XOdeFOfsHzE0ZaLrF+kfxxFIl4PsZ653jRjhhwd7Psr+xsmJGY7NV8VN6mqekU2ez6W6MUZpXX6pgjcSbu5CfH+ZUO+FmHWDOhic1gs/S7XJSIOFuw3uEy/d4BtL0S+evIbDN94/XWPvrpV82d1VMs9R9AtGQ7/3ER/ei1Qq+Z6B8nvVFMK+SaZdSwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qs7zg_e2etest","name":"George2-Win12-1qs7zg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fb66b18e-b789-41d1-b9ae-ce4b48dde886","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8d56a022-26b9-4277-9649-19ce382d5408","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEArl8G02jegg1SDplMCWsMjhhpetjgS9LnJ1woCc6QSVCN8TRNWSfA7dwD868CL9SMvhsUGibfIQ2zS2NZTw+gltCB6VoCovmBSqdLTeABh61M4yDzWmnVhtJNuCK8uJSRgcR/quhUMHNO1sVGGw/vyAdN+SUu0NZkAYxP3SyXVzjqJhgCR44tkjCC0BoDcVqRsDsMXldoNzHERTRBY851zJpWvSIxYXkB58k1a5vtpbrMy5jY1zlxyKZRvzZrwn9fmbsxkj7PTfNF3E3V7Hqlq7dCQYRBrbR0DoMg8q4WhCjiYRzx9np0yHe5nPolD5rvdaOHXsGQvmaLO/1pXXZUawIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8v2hfe_e2etest","name":"WIN-02FU1ULEJJ8v2hfe_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7acc4ec7-f165-4a9a-91c7-4da8074ae6af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"c468c4f9-6dca-464f-8c58-b67c0fcf6d10","vmUuid":"99BD7DF4-CC1D-48DC-9921-227C86F857F7","clientPublicKey":"MIIBCgKCAQEAvQNzxTofrLqrP0JS2+JhTDZPuEKeiL/SIPOL+PLPPHmZUHo36mkdCdbziF0mf5IKiBfPc1Uaryzva4L56pX9hb5Us0Rd8Qsi9xBmHAeHSbm//pOeepJePYIAnVjZZSDScfn33o0Fj9r2vgTpwmWrIzTKtrCqsy3GYsMXJmuQLmiFAG9N5Um8UlFuDDklcpDqQsT9LMx0yMLwfiET7dTB0I8/VYDzgPv052kTYQz1C516l/ie4ckUvyukif/rwNw4xDR9OZDUyhWNIH+ybV9r6FXhS2FwlqvDD8dJk0RwRYkg1yHoRZKqUVm0uzgpBjxupHJ1684KqY6S3x9a94PjBQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ88xu4n_e2etest","name":"WIN-02FU1ULEJJ88xu4n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"49f248d5-931a-4e2c-afba-78f679ea404f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"3a14a311-a928-4af4-af12-05cd81d8d99f","vmUuid":"99BD7DF4-CC1D-48DC-9921-227C86F857F7","clientPublicKey":"MIIBCgKCAQEA8Sb1HKd+cW+vRYmPu7KoOCfyspUylxxCz7QbDQXinn/Opj4kcfq/Jj+ji7rXyEhjDNKQrLbRz2fM3njt/6iJX9LR+Ez+RMQF5L8hFj0Fv1dTbGErn6Zvp+kdxXyetSErBnGaiBoOEuCsoJbzKAqKJ1WbtrAxJuka5o5f/P04IWibEceZKPxZyGgA2L4zf/3kFizuF5/4j4XZno6CHM0mt+obb9EoToUm2FrTzmrFWg0kcafVLDhGaKDaIjIRig34RnRcNdIrRYsVGTg7jaGqgufm6dT0nGOaSB+2vkHWgfg39cMjyydm0hCx6c3ZaR1oTSGoAtZV+/CbmQQYXeXAuwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.007","name":"0.8.20132.007","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-05-11000","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"9fa00d9d-6e9f-4087-8b87-00546f0cbb3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az508"},"vmId":"12acfb07-69b3-4e67-b2ec-7d6630fc86ab","vmUuid":"FAE4B41E-6CE2-1745-BED7-30ED0F949B78","clientPublicKey":"MIIBCgKCAQEAqVXNsm57semqwfFCFe7dfGLa1CpSqlXD8nQeW/uOUw/hzmY49i7dejQDto+/c2irUScbycvTEZ2+eu2kQDA4BZkov4/U74LiI75EwAcTvm0iIFL1UyGkb4sO6+7E1PhDHseAJ1CA+SCEd/5s+ehY0TmKrpk3yyCyNZEYPlpDvrnCTg+im+ngOGxIi8n4qoBMBdPvbMzeIk+8GPn/R7/Zdqa/KMKp1pkX+KnXW9kvzC56LV0amHXQrXgzKPaPaf9+EelE+HSUtk8M8lVFqOTW/9eX0w7ftwqZtdq4J8OHTYzSCAOTaQldCqJvqDEYe6+0TFfobcNhMpnS6jqyE0v9VQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az508.jctbnuovcxfe5mefpt21zlomrg.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-137us8_e2etest","name":"George2-Win12-137us8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"488c8013-6815-409b-863d-4bf68d30a700","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.007","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"bbec014a-14f5-4e13-8561-5e15f34aa806","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAwGsYHorVqMWQkDRo7b+ulV6iMWtTweix6F9v/omScnbfBXCMyLtO1Xo89TOnyDwvnsJXXFY8ZMF/eZuOLFZcFEFOUyzo/uekEc0yNYY5D80QB7wpT8SP1cdYmOqUBrW3ltbOqKCUO4r+0mDotRi2YGs4L9wzp3k872CXm7fSwz8ZhOHzH0sqUOSvXtEryrv9s9uLfouw2Wqx5NoBU7Eh91nTI15nK7cGsVZlTIqd7wdATN099EuCNwQ57KK7rarK1nYWcYYu19WcuCAukDe4VsmfglfOxYGsBEaJjgvuN+/Ge3Rxdj4h7VWacwuG7aAzXXoMPvENiKNhlnf3NPFFJwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1mc80k_e2etest","name":"George2-Win12-1mc80k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"415603c6-5cad-4504-930c-edcdf7153b12","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"82dd6f99-5b19-4c95-b143-64b2eac9d037","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAz6TmpRRJmxVX8mBy2TZwk995yjNt4eu908SpwHfwUNXiHEN8aqL62VzBD62wSsaZnrk1aVnsL89hRwM7pS9zAgRdgFH2VEyMoukFv2sC5q6Rx0+PJRyGkSg+fKFjtWT8o2m20dvH5K0IAHdce/8ieXl1nZvyoMhn9rpfKd8oTtUI0dGJui4a87mp4CAlpP0eAX9BdK7fxLEMtafhbLRdROFmDDrn/xXYi5OrgihXxieBkBqTnDPEczd1TvQcDRZ2E0DtVJOooBStAK5S5LjWcK4qmO7SvgrY8dHdj4OWsslfDidt+M7S6ib4z7b0zEJFgQWf0cNKqH6yHsXAWpW2mQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008","name":"0.8.20132.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d25cb2c-2fc7-40a7-a2ff-41cdca76420c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"35cdc80a-44e5-4fcc-ba3d-ff23cde07c9a","vmUuid":"2C63B9FB-4BE4-BA40-9C31-FF9E32488EB0","clientPublicKey":"MIIBCgKCAQEAmZ5/JD8yKrBMgrPJTiL0ezsvOAgwMCw4gj/HfSO3syILba9gpHY0GiF9Q542PhHdkuIgnX4/SyME0mSGXK5mT/HuVlcW695HEvC4yPxTGYoRcr/3F8o2KX3oU2JGM5FrSo7ndbd2UgIlvi46tp+lcw6uxJDk8P6n9zo9iskvn4AjD1/e+K0Qs3f3OwXfw9SRCcoLqB1tl9FbQj8odyoleWt8DE+GSEOxrUFZ6khTBTGW073+pCQeEKKJvX4IjkYKzRmFQljG8AOhraefUhxCtY+QdZgQvO0qtaZQRsUG337p0va9LRqtaa7Zj02V8FFa9iHfZyS8ISHgG2x2Jt4hPwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.gmn05kb3ecvupfarzahc0q5hra.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009","name":"0.8.20132.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ea3031b6-38ef-40ae-b77f-78a536ef9fc8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"820f9c13-24ee-4902-a0d9-2ac985ad00fd","vmUuid":"F72B5007-D016-AA4F-AF7A-D9D3EEFB3A97","clientPublicKey":"MIIBCgKCAQEA0hcXLOmbBD0OOhqBS7RO8eTEW5hraZuI4qCk3SiSW7isJoSeN/sLCBIvNn/imdEnnoE2WHtA7a1I7Ze+Wyp9XELBx3GStdM+ErdckYDnj7lHWNH++ZUs2+khDHIJgU6+e9vA5LQaydVF7eQuacLADnVtILWVjP89M+Yzz+6BHpxTzuqrGtLCeyPGIiZEUIIhR5fzQW6G1AzDZzEoWmu8QetPH4wB7gh2tygRGQV3VMaFtYRfq25hXj7+oMRRC47xe5b3z6rDINC5irbeVL53Px8gpEethnb8yhd9Pf0IGK9n4x/ffAuLNwsWoxJqzaVma1JQuCFDC/jEPRxl3HyfJQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.n3ngdsifwfiuxgagf4o1uwsj2a.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8rep54_e2etest","name":"WIN-02FU1ULEJJ8rep54_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e98c4df3-fa2d-448f-8807-e031db208e1e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"6ad1a115-7f45-4b8d-a548-e28fec72993a","vmUuid":"7A3A071E-0422-4C0C-8169-9F576A2820D7","clientPublicKey":"MIIBCgKCAQEAwBmIUptqsj7Cg54p9PivXBoge45RdM+7BNsJQhFeLEZtH2zf577aUiJyv/VcZFWiTF9qJfXq8dEBbWjneDAlmLX3lTiWvxkMOUftrDZXcNWhJTV/e7SlMZY7DiMU4g6+i/VTtNQB6dYheErmiqXXQpljcQOy4+TVxohGQgATkORecGuNXl62eSUa84FhO44lG2TJpQM2curDdiQcfD++b1CKZflehsHL4YVSx2ADYYz17L4kxX4VLGTZkQ2vy4UG15j1FkkhgmucJD5Sdg1yc/nXbjXAcILXe6vyzk+PCYJUX+MJwh26QO4WgdsKVFGzXYvX8ADT64nrr/r0bM/XRQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8psr6d_e2etest","name":"WIN-02FU1ULEJJ8psr6d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7d38566c-181b-4004-af02-f77b74421f1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"48f6e12e-1b18-4c71-bfbf-efd8c08f7e93","vmUuid":"8B04F426-9E16-4685-9C90-3A0C4589155B","clientPublicKey":"MIIBCgKCAQEArO2DgDc/GxceI2cWUMQmkWQx52dBYvG35wB1xhmB+vfSgz0hp6Xpu3X83HayzUD0K7HpucR9t7CBBovSkc9MIjQKzDpG1safVYMccCNs291nmpyKPDTsHw7k6KnlJZdmOEZ1xarfjk2c95YmBOfYPuWg0ds+bDg+g25WK7jzU/rjsHn0uidx6Fx3MMmbOGwHiCBmD8ZUryH7Tga0sLu9gQ2wEugkGYgNj7cpPP2jpaTQbn2pnQ0pGD/WfdFl0YBPRT+uegz1I+UYwi1eg9OQFLn6P1Z1VfyIj0+pV3o/1Y1NxCnTyb6d0w0jEtir1tzlmuGsjZsT/eX/pXRjWDUpWwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ86p401_e2etest","name":"WIN-02FU1ULEJJ86p401_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8dba50ed-ceef-4476-81e3-10540ccef95b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"0540e097-6dd7-46cc-a6b7-8785ec15b601","vmUuid":"7A3A071E-0422-4C0C-8169-9F576A2820D7","clientPublicKey":"MIIBCgKCAQEA2X6X3sXRw7hnSiteXaxziGo8JfQKk44VC4A9jNZCNNRcEtueOeXVIEgWqHWozZZa7Pj21rCQ8IJEE6n+kvv6vTnbAewKvkIdzxeqOBCftYx8lEloMCp5VBNAMl7lhv6JvU1AmAEhWP9cUacq3XqLVHTogJBV3eJ9YPRi01UoUK1lnjkwefgBr9VsN4Dmbxot+dL25aQ98wfW57GQP9D9poFgRiOMFrxRimSSsXxaSxd2yZ+nwrYRPwy55rWQgGCjAdW16mJ1mQkhiO7WmDAoKB0UF3xDXNnJLiGvm3RZsKsnOw5NgJhvtv7SW4BoVhZ5WIljHOBZQQeLwnqb2JoVrwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_CENTOS8","name":"0.8.20132.008_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b61023ea-75b9-4bf7-98f9-1aace28f6013","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"eeacd519-df57-4a75-9822-297baf0e4881","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA39Ktn+LKJ+XEg9ZhX7vwOe5dFZOsVDgKxIkyDf7kp8ofXAqVGO/Bk9lraF94MI0gdXo8KhqXx9L7EnEFQSvy0y8Msm0HW/BXRujKAk+DB5OS2Ht2ddsylM/2QnBrdqEQNR0ikdmIIJdfxrsslC4ZStLz2JB+PfBPVm7jbg1LbvjmUtlfugmAdU0nbrlLsbRsiBgwfe1/IPpuUo4QcAJeaJ5X0J6JTpUk8thJO7ZBVCSwt4seXK7SkkhXFO31DaLvs82xJ+laApC4ZshdBPtqMRDf4gwDZqEXE0vXclVn1BlhicF4OH5A1RilSrVcqbiOe3YSf/V3gtMOETO24SKuDwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-02FU1ULEJJ8rybz6_e2etest","name":"WIN-02FU1ULEJJ8rybz6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"93eea9e9-d699-4403-a893-653e74e96e90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"WIN-02FU1ULEJJ8","machineFqdn":"WIN-02FU1ULEJJ8","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-02FU1ULEJJ8"},"vmId":"e3bad5e9-8782-4bdd-adb8-036830a34ce6","vmUuid":"8B04F426-9E16-4685-9C90-3A0C4589155B","clientPublicKey":"MIIBCgKCAQEA0gGEBBlSp9xzgZFUp0GSvyfO1kpnHDIRi3V24Cu3ETcQq0beL+QFrlNvCOR03licYzQcIEzyTG+3bGqxemjKcE3C9rCf02DQh+7ANtQo/eJKukA6rUIHeqLfyMdYk2DKyFZhdRmbgbwC/BjRBIqUTapXp+lXLDwI2izdl6YTqGwCDkznjbrJJ5DCypQn17Sat3CyQVQ3qEj43wx5M4U2zrXAOC7Owju3u4TsAzSBIpEVEHtqK0ESAJU/7DpMNNMfFZPLnpofMuGlGWbv/0hMzMNGkolhCdxFraneMdJUviw1jMZeeRrevqPLs6FJ6ynHruRPaOHTI6zK49K295OnXwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-02FU1ULEJJ8","dnsFqdn":"WIN-02FU1ULEJJ8"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_RHEL7","name":"0.8.20132.008_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"01d5be29-1e43-42a5-9d6f-8b0e6dc64522","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c8511815-5bb6-4766-a4e5-1ae29b492326","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEApaSyA/B+J6dAlZw0lfqV4iQu9QGtTgmDHuBhz1iz8Rf8ft/2+2V+rOi70jCbB824vPEiTsYe2mdEXM+cly9Fet6YhpzmHByC4YVrCe2t+q1PI1NMp2XffR4zr9UYapKMZTTj83xFaJfxcAsnkFltT4Qs7788sACQkqgOxk0uyl+CuPeJtYsfowVWpsnYj6afUqn9lOhKvBVjUo3DKqAuoOD2/CtN2KNA183fe7CdWKpytb31zb/SFIcyGiVw3BjPk3U24el2KaNw/i2EJd8kIoBJtB+jglIWyQ66evlcLYYJHRF2Hxm+u8lqbny6XJM12odm7Hhq4K/bwKY57wMTFwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_SLES15","name":"0.8.20132.008_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ca6c179-7047-4428-b0ee-b86b004aae16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"c50e96f2-c77f-4992-9aa5-4f3a6c31a709","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAuM9UzTqGdesSytPBF/KpV1dRD3PmhyJ+0peDyV3aMFWtmhmw+34qLHEp5G8L85tmXMBRYJx1QIa+QYNMoIh5BKZLTa8eECWx1ZqEql5iq9e1abaYLPhkL5iIRkn/LZeqF7RLFaIVIduCaa9BdfVu1b3chwLNaWnUAdXkmR+87wqZDAu7+aBrEMXM+pPtX/FBnrBQ3himJ0Ttp2JKyESCKfFsBEPMNQT+9sq7hglfFl/Q36hjq1ZlmqJH1hzzYwyjybEeTEpua9fEBFgZt7r2Euk5s4M43erPsD6DyWIJ8vrfCHDFNRxPpGxviTIZokJ1wkH7zWhi9LoLGq9OfYn0wwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.008_AMAZON2","name":"0.8.20132.008_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ad35717b-5a2d-4d87-80a2-64931ffd10ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"171bbf46-d504-485c-823c-5de74e2466f9","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAuqSI9091h7RPtzeKvTjYZ+LcKQkFgh5xvVW5/E76v5jTkvlMnRZZi4PynRS8hqbbqYdoR53Uxxw+WLRXoAoGsBU093plY4ssUZXJ41gWEKRgwlILjX3yHKTJhgc8E5HAUf84qD/q8gspie66q4Fd5vlRFb5Tijq/jjjyu1WwZHNGBfzPgY8KztBC3Lmxw8S1FweXbcywxcjAaZzEDuupf2ET89nvo/wPV4ui8lEGogsrktvn8ddgTJdOgT/Xcco4onMHHkAjgCIOTrT/2oYcoPFQf84xxSEGaOomHj8vgxlAIIbLY/ufuQ89iIAmNs+lxr2cfdlF8LSZOoEQGmJSbwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1vpr5b_e2etest","name":"George2-SLES15-1vpr5b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d79ecb6f-d8fa-4aa6-9baa-18c1ee9bcd69","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"352d172a-bc4e-4ebc-b112-bbcab0b0ab58","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvv2St/C9GyvZMCdr4WvNK0fnJGyXLejeGxrJ3P3niKqjfNll0jySBAfqCswMyCcuu0cR2ppyatGxu0jRPtLWH5lv+3SylS8No62iXIKnUcJAhK1cI/k9PZpYs5qmp4RmWq2100EI+gdQbqiOgS4yuuaFDzy9Ndj5OLA+a0NINjern+gMmUOeJglKl4B9VMafV7KMI4yTfkFvumlaCuDLLRURSPkUEjOiWkWogjiMb9DRzogCIKb1OvKyQOu0HiQ+VjaYdZ3hkyRMyszGHTf8Nz9cXlcRpv9vZc6/Jv1/gfeT0j1VWQ0hcXQ6a9KvuvdKdGWJIN92Eiu6a40KLj7LZwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern13w0d_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern13w0d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f1d50fee-076c-430b-a816-08a1f620a1e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"26cb58b1-cb49-49e8-88b5-c32277ddc577","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxA57flDiYZmf9Oy3LQVYHa06t3clhSExLzw1omRxTIT05yH8xBBK/jnuXD0RgSoAjClY6HcciV5AgljwZ7vLs4FAZEAyPql5a+VOx7kmWEfI1vQR8nf1liQAB9j7oaxBkm6M4iy2sAGILPbm4apeSCSrLnLQWlWtIpUECOaiRqoCU9Zdtzi/R4QMaU3LwS+xwTDwQC0cRFWAqwN9VrSrhm6CnIV4wAh8WRGtA8C/qD+IpHlpbVLChAiEPlIjdn4kdQQ4f/c+dDBrs0RR5/mivs5tZZKJBYFzmXvqOs2B4fI6+BH/i3q2wFLscMDYc06DTpKMAnfhw7NkC3MJcAZlXQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.010","name":"0.8.20132.010","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-18-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"e8706757-dc8a-4e8a-b9b9-131e89fd6785","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.010","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"d55cbb03-6282-4f91-87a1-3027d42c8c13","vmUuid":"BE3D9DCD-3173-B648-A739-4EDBAFA02966","clientPublicKey":"MIIBCgKCAQEA5bxPc2U3aHUrG5Iyrow/WNQkSO0/tUUlP5mix0jzP/uuzrqolGTWOLaNIz4lkB442Bef3N68ATV7EGqBwXvAtLiRgKh6QaORVntQOcFlA1dVqJxB/h14c+6I3MW1H26uGr2ubcz3o4VwN6KeUu1WYlfWmdtKMysOgokp+EOzZyJkgdAVwopOrspruU/7ehNM1/p+aRXOzu8xZliKe94n2rBWrXTqDi+0uoWpYpQuaAeEj5XTtaJZ4vucAoRYJgA4sD8TG0yV4GT9gq86r8TR6N5R9BoZUvoLqcyqE3XBki9Sg2c2hgNwXNlYun69HDak+cUaBYs59U7pD9NyKYsbuQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.sw3udvhcmjdutktn0inz4hrtqd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1g7vro_e2etest","name":"George2-Win12-1g7vro_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dd67909b-e790-4998-bd5c-48fd2d97ca4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"9258f2e6-375a-435a-a032-7bfa11831ea1","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAzwYycOFJoKKyHRU88Nm0ZbxY3qNa2U5qwN1/CvNgvyMfFB3ocq8DJaOpyMMjG3Ah5DlkFjRbbjDGSBZpOKXnx4nYLq92iBCRGFOPHzJ07WIbAV8a2XqiLN4b9YNZLWpNhPNKb7FqtE6F5vk+l2l97JX7BprtaPRzE3PrWNcKq0VfHom1Ic6SCbLoO/xj+tjBFjRxPVcizlZcTzHHSSXd4C6V2q7exvRxeuR8U9dlezKNtTIMImsefUniF/7I5/vv+O+ZhvdM42FX/e66/ozoJctiIuxN3CzWXUVOxjAu3UXjOw1punsvfAkKtd2py7IUTKLGK6X3cTjiSb+QITQwzwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1ath04_e2etest","name":"George2-Win12-1ath04_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bdcf7d57-0a9a-45ee-89f7-d6eac95756e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8a95beff-5c82-4d87-9918-fc07aa906889","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAlvsRtbrLzFKbI3xLyrXnHM0ppgt8WJzY+isVO9onEa4j6GFgNKKfRA7EsLgNM4LUO/P2IN4yFrLoSOQHCoaI2ScsHdXIuk0M8cYFNYNlpLg6u2hD9lXAzRuK7YICUG6tOmZpvy1bFblMyFH4yjAQ/kRL1w5NsNTx5jr9IHxBumxhGGd1cjTzoA79dstoqvNHpRPp+XRVZRO1bCrrmKQtDA4BVZZW/3uKNPtRZNF+OdS+wt4MxNj4SScIFSJvroNHt3xwQBVnL1Q3fhEUm1lFpF2XlA6iJd3NzEFuuaoiSaEFclIdm/S2k0f3yk08jtasBx2hHKf1Dk+0EnCa+GWXyQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1flvi7_e2etest","name":"George2-Win12-1flvi7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fe557d91-57c0-47fe-a79d-c65e92b1093e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.008","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"957ef51d-3f0c-4247-8c69-eec6547ccc76","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxjU0W/UQESw6tzBT0UfaW6eRhs6lWhroDNDtQI63Nfhc2mF+h3SSOEDzqzLMC1+73yk/fMRkiXAYWeeXfd8VjVtzZtrOKvC8cdM4v1k8iIlt5WWlA1KjVk12uaD81tR7SlUl18d0bqGgth5a8JebjtYDpzqYanOM1ugS0icWxKdtW6eXHEFyOjzPz14IuliWObjzp+QRwUIsskmydbywHuSMWQ3tiPP4rUvXM16C9XmgZqe8KoDPqR/GbvImf/HDJoz7/3VIt1pJCtOX4FhVSZQXKyvG5HjgaXGeNQmYwoLxoQkS1oq1TEKOjOq7TB7gYTskhergkM39L1xxJwT76QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16devk_e2etest","name":"George2-Win12-16devk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"10d70f3e-a734-4eea-b239-f61928e1bb2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-09T21:56:24.65816","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"94db0b9c-3298-4203-8894-e3140e5d8c84","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA2l615y3/0jjFXlUPvitzqUMoMDPtv5I8IhORF14tSA8liFo7uOQYUG4IZqg0SEzGXQlHDBj5yeJtnZTqxCKpUdqw3n4zytR4BoAtpqBOnyFhO0IeHeqoEmC5fSbsbMCZeI9ScyMeVAYM6qvoUUa88dZH2rX4dKtiQX8/hbVBUFVsK492HF88RTLP5xGJ45DDVElZPnpMVi7UPebFAki4Q8Jxblm5uWuCwhMhSr2NK6uooweHMCHbqynHUjlnYiOPFMYVGgmFF35iudq3wrQtGHVACJJyZBPTZvYJGRymKFpBbwa7WhRL/TUvB7eBejw8hmmG3ErDsBjUF1FStdtC9QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_CENTOS8","name":"0.8.20132.009_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1afa7907-a0ca-4ab8-8de9-bc522012b2b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"25f8051f-e32c-4067-b74b-0c219d9c0b64","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAz9JwUG2oo5Jj6Zeyspk2PhnV6jZR54UGE2cr73/ykTBSSC19OjRvssW+2eRAlkBJlD43y/zAVQIhVy3vy5x11nrTVc6L8+d9ky8sDoUlyMy1//3Cody1UmL/t3buLHPwV2N6FNro7hGs0kk2boqGElYy7U+1KDw/jMX4Ou054hw+pHlR7/bogoINl/KbcXGtoYOxFa0zDvw3irTu49S9mF50dzhJAAszH1xL1xhFcdfzHStYvF04tvNxMS9e/uJhPLM6QZBumeUOAKKbpuI6B9o/b0MLqdUX923ZGpS5PYTaG7Bui63Bjujf1Juw0ridLbRhCHXAaKmPGsWlzB+N0QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_RHEL7","name":"0.8.20132.009_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"743576f0-f8c8-40a0-9595-a4b38b817548","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"6d257ecb-397e-4690-b252-deabcb88c81e","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAofw7PCMN9Wk9yLZu7PbZltwYdUd/lnViKjRoa1lUnRvxnCjvuD6zlIEkbgPsgeoVQovtaF7sRJ/owsBrTsh+TadWigYcXEUK67Lu/SpsaDnaGUsG2zcwByLlfCHKvfdqOt4ScAW8TghFWODs7FJo2uujGNa0dhiuz/YV584h5Y3dIxP0ln8R+99t4oQ51x74S08XoOGOi377f0jG6i1utoonNwdiQ4JWv8Ho8ovAyYgtylt/uRCo6pJX5lNDrxQS6uM+7lliNkWENmiXEiAGwHgTykUHBJFdROS6oJDzirhM/c4AzdXF1iBkg6ofn+SxZnuSmFEaRejkgrMtHBUSRQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_SLES15","name":"0.8.20132.009_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2511fa17-5d6e-4453-90f9-293984117c0d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"cae66e55-a58d-407e-9b3f-0afa4b85981f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAsxOyxPImMwOUUJK8FWxGyWM1A9AptEF7ysez2B2S+CO4zoYka/aVPvfXghFoxKNmOez59MooBXCnKG9PKz/PV5M6u0Rdvt2j6SBVeCYEc26j2XPkk02SW55OZYKdm8gJDsm4bPYRAycpdyynygxh0lTUHKHtAiUCKiakZY8MrBl2zLvkoGbB62gQIFNnpo/Sb/qTNjZqBKx/GAapeNk+uz/7M5Vq6d/uXzNCwJl2jwKgrYWFLKi6huonuISkxUFFvAOhMkHkwOPu59elccC2OGXL49ek5kFf4a1SigrO9qfPlnefWssaiZtePdoQBXIb/x8VfSxs9v95i0Ywk6mTjQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20132.009_AMAZON2","name":"0.8.20132.009_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9643e418-a0ad-4191-86f0-963ac4306ecf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"7a5220c8-36a2-4888-83f5-a60d796e4038","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAy8H+ZDByykIAYYHIMdfy53IMSMRCRKQcJVsM3WmAajZjvi0x6ZdNwV1ur/T7o6804YCqTbs1dANX3OQgp8HnNordc5PS5qIMXcEFig1f6VjYjJvCXNi8Ii2QuXNOCVazC1ZTSzZLAEhQvHXWFlczPpufElHzF+MQGBeseW6VNO1IBXbD9NlqmGSXH8uQikQ+tyycwV+n3zPJwHSz2swiNpHCZEsYN428E/+2ZD7/yI7i1yOVvZeuRjLTJ/VXDqay/3qgy4F55sLhV3cm3T6iFuII8nVgvas4GcqvusIWWkFRiHxPFyGQeOw+IK1ZEd8O+2yhiL1A0hrnbwSNQLHqBQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1pyhex_e2etest","name":"George2-RHEL7-1pyhex_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e856ecbf-4e25-4a2a-ba85-f0d79747e5f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"350b90b7-7aac-4c56-a000-d749324d1d46","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA0GjiUxMMRZhvCabfb5Mq9RqPJJiW4bb8az7iHaV/NYDgaNUFSKfHNs3KIWGluDIFV9f6Y6xKp10AUtwJ+JeCJPI8zyXEuLOH3nwMnvKmoVDxHtOs1CWVxRCF/AYfaDQ35zET0b8RANQ6MJFXkkwnZBRfobKc9Bc93GTrGDBVE6Mu5DaRT+9octvYk/7QZmTQweVePYChhvtIt4faexGad+Zsk6vOHmc8lJraMnlOKIySUHbc48ZPerda6iw5Yg0v190DD2FAjcAwieogcZEF88sfxtNb4aOE6H9139sPszEr/KbehdDSJPd2G9ONtCjilV1Hn1o8jDeKFyCUDudzKQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-189mqg_e2etest","name":"George2-SLES15-189mqg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a61ebe2-3f9f-4ab1-aad1-d4386ad8b0af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"8be52886-f4c7-45d2-95cd-b4c1832e8088","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwfSfai50Vsk/u2VJUtUfY8jbqrV78QgezHhdVjOzy1Qg09RvpamX4h3nG48n5gC92S3wSWtCxL2pw+RUHfTu17p5rjt1l4t9+TwHiGcqTHGSuejZu/6dE2/dzxv+g++3dsg8pWnUJ5kAnJ08bPLckaCKHibiU/UkqTlTpgVVuIv5h7B9pvASVBqJvr/OKiV+7orD7EGaLGIHaermJNjf6jdDPLwASmJO/qUAfZOEgvYKeyaxxl1aEanbcDgsgeDwTq5/grYybOTtMPd8bOiUjhnfAUSMBftjkF1BbyvhlXpV0FvL6pPLhle35dQzQzoGyrzl3b7+UR4dV6SeoyHZowIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internm4jv2_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internm4jv2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1719033e-7b2a-40a5-b20f-6709b41b6090","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20132.009","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"ddce5ba5-4149-4985-b69d-b2f00c3cbb9d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAu4L9lkkVBRtuSeuEecHmit/NaqYKayCcG1gDnzUDS7y5gneNA4UT5HoJ/CGfoAQAxMWzTyIaIC3c/2t7GJD7lY+Jj1Ld+hxRIXSakt/8QHEduBnVLleCNGxTMr7v38C3YcOnkHCMsonE/7cc+Un3Q4n1qDq5j/GPkxg5uw2blGYP56pY+I40zYG9OTir41xjVZ7xsx52P6wLUuNKDgDOK9w1fie7v4hmjjHpBxexvplhq/1YUSKvHpPMFEzTjbm6jbdb7uL4po+pZMT4S5g83I/iXLvd6mHSvBMbrmAeWGcSHB0E9+m+epKhbjkxiPnlHW1lt4VcCXk64Jsfkb3VEQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_CENTOS8","name":"0.8.20133.001_CENTOS8","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"2053370a-7541-468c-8e78-ede429f6af61","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"bc73d352-c3a8-4486-a58d-b2e974364c16","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAn6R8s6VpAZz/AYburhO4YIWJAh/Pa58Soi7dVsp6HEIDw+b0ACcANgxkFlgHPhk6BJuCecIBLdhLHbGhb1QbWjyEoZFa1fI0C9PY2Url1Ah+wSuD92xtCPK2cpif5l0j1Wt1JZjGxMH7Nf7+1A0MyJTIgGNpLsMkrorzEZKPXXHDIlv4JptqrodMJh0vxoY1jvc9s0pKEv7YGtEBD6X/AXfw8zmzztF4u3g08scjeLmwgYXifY8CXFuG7278FJsW30ST457rdTo1QrYCDMpj96TYR20JlCCzR8CtcOhrVCdkMR2seB48AOhTvdIfxw7i+zlU4oOO/P/H74Us+/Z84QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001","name":"0.8.20133.001","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"9392ddfc-a960-4043-a036-cb735d469331","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"55ace41b-9836-4bfc-b8ea-3f4836857809","vmUuid":"F112B3D4-5A81-1743-96AC-73990D52D97A","clientPublicKey":"MIIBCgKCAQEA5eSFNGjJILpdi8bt8FzTnOE0AXcOWDIDfLYQHpLY5H7C0HFELshVwGjiblmPpJRv54af8jKhfqRxl8DKI0aBBeUpzYPdNLwjk97SsrBl/luRMc0HfL9SVYbf8kY4Og0dxjIHugMRs8Tb8MHpycPQi7vd6fJYR/e9mZzORz2abrm+arpzd42HnPDJMvoR10pZksO22ofyNqfeG1eeB1OiICZIvtJorOcMxNwkDuJ4rYbzzQGMNL4NlFQjr0JlVVTRhZ794IcD6zz7IfpFNBI36A51kcL/f7oVW3BSOy2NR8Wj5288PgnC0W7VJIcT+7+BV/7/9SMI0hbanaSaw/0YdQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.ocottejnj15erixwif1dizcbje.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002","name":"0.8.20133.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31c87c05-803f-4604-9751-1c2c0eb5258f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5ac3613b-be85-4ff6-8e1a-7dd53653495b","vmUuid":"5EB839CA-D712-EE44-A255-C68C29DFDEFB","clientPublicKey":"MIIBCgKCAQEA0A17z/ica79mSL2y40iDfUgzmZ7ia8UNdxmz1rftFo+s+g16fM7YVk4giAT60EB9W3mwzeUqo77riGoI7gbzkMaaPg684wdsBv0cMEota1IlGBs6+GuT02mBladndR9qYPAUQI6Ei2QyxBtnIbyZqxmA4aumWn7xxt3WkzhtwmxlILI2EmjjYeJ93Khl9RJ5tISqh+l32Jj4FllU50hwYH8UHhECSE/Nyp8I78xjYmOvGOUEEd7gNaUVE/QNALMOIOuE+rWAvaJhZvKqbD6Bg5p/jd4f3i7T0UxjmuN5j9FNoLDY9B20ZVzJnF/45nh7g+V/JDNAlCn2n6dG06yVpQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.du5nllmmj0oebjzgijjfa2qnqc.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_RHEL7","name":"0.8.20133.001_RHEL7","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"ac11c9b1-3ad9-4fc9-890a-1055489440ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c5b1f106-94d3-43e1-a0c3-729f640f1c64","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA6ZYvy1E2a7AdWmjlbfGbvWs/vtgD5e0QbjDVDTFS3p7tlt2pV93h2eKGZMActbRV3S2PPvpmA46TlfaoHBZ2EP/MkTfM8Zv1rsfpoqtsYH6NF227WYT1JtEyLD7ZILiVhbOGkn+oFJoXei+PntLLydzl73uqRTqZH33h6MXqpEQtxl7+Ebqd696pEmL1HMc/hycC6RSlnZk3zHM9THFZvGS3p259qhfphEMgBQNAxQvmVlOJGhBNwkPRFe/Xfe2ijINMeucgdM7fkDKJUVhBUBndoMTDD8Rtm1+AG4B5N8Frbk8glsAlO1N2CaaIqmyPUgbZL91a1JdSiVjdxgn5KwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_SLES15","name":"0.8.20133.001_SLES15","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"0bcda18e-8db6-4455-bc41-f2331bc8972c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e0fc42de-fb94-4b81-900c-0c8a6be29768","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0kyegZbmaNytvkBgnziwHzwY6+OC6EPRZy+T9fFOxgAG+2CbU2c82A88WMcBE9FEfBR4BSVg1L3Lc5DINiaclxzQ7lSqeeAaq6r4z33Rvj4e4cvAzALClK4V4t7A3cTqPwm603Qd6/nRhzlG/kaafhaSWwgmfgspN5HYQHIiIq2/pBckAEacLl10PKaykUg7pq14mzZI+hCxFawSDjBZ1eqwfV++7WBeITRhUYAYiWVy8o09oDAewFdm5VETA46UpSNa/G4pR0DhQxOjaczCi6eaK5kQ1UfP8B245A79dzr3hq18dYvJT5XdItzvZTrpBwDodtQHY48RQoMFTetaWwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.001_AMAZON2","name":"0.8.20133.001_AMAZON2","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"d592c835-814c-4e6d-9467-36d47be88c83","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"094942d6-9f14-4457-9f27-7a212f6c87b9","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA2CdTIQw8sM6RMXvMG+kBjZW/QGRV22JoDSrYNKoifdVKSKlDabwxestcbJDewD3YU8BisZdQq3XgnsdJYI01LXg6PeRvF2o73ho+Zlf2OXYHkRPUa3gfvxeNvvWFoPgVxBk9/uxZgJAgNSkvcZBGJXCJAak2ezvZXVrcZd0ht9ZPltl8P9ZT0zUxdjdfFXJiKV1vdMHB6PFOI0zArHg+MIPWK26M2mrBsNewLFBQhSNeTq7RAEUrY8gsGcAU2LSzC6jdHSG1dc2b7QVEA6bIK2HA6fKk56UjcLcbOs5VekRBaIOJ2icTCoAsyqI4WQwKaHf+wGRRrfJg1MWQNCunkQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1ktiq4_e2etest","name":"George2-SLES15-1ktiq4_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"3d269f62-afd7-4781-ae8b-d05d9c36d414","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f9aa01c7-058d-4043-8290-3e266e464bc9","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA6YgznuQgPENqf/5FCbuZcouedSKQkQaGW/o3rGgTjnWCd6D4i+Pp117yvAgevvjpg5TfDen9DcpsYva5QcdCpuquXtrKkc+GiTT+fR/Oii7bHtEHDeaU8viZzHZULTWkt+vUAWtRUSc8BPdhOKkdtmr+M+E2gGAl82ZQhCffw3dxpCJ8K7K1+gbGEcVcdB9cFtuBp0Q2svSD4EBxcozJ4Eu4GU0WWbifk5sY5nV2fAQ98B9xieSUU0poza+gtYPkVBoldXSoqdVEsPTdEI9CspIN7+oIgwB080aowM8OnjQOhGn6ab6X7v3qx/UmwOdkoC0r30d6Bw54Kr+p2y30FQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.interng5nz4_e2etest","name":"ip-172-31-14-156.us-east-2.compute.interng5nz4_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"48d592f1-dc2a-421a-a363-96e8050c3f9f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"81d8d8a2-299e-454b-87ee-4349401b73dc","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAwjASU+RnGUkUCOCBKsFVeRUBIjOl5g4NkZFqB8n8QHzGUvZB5dUCl/z2rFR7NVbhjVXRBirK1OpoK3igaqzCDxRWd3Eg81EgyuI93Uubkd4/UXVc+xQNGpOCjcoRlg8yy5Jyd9TIlWnjc0n42CG67/s3bq/nWA5rRRgjKYJBTQaDUQgJU6YjYkxu7VJsoGGfRliG3x6TQP6bD7O1SzWfvY/+EFVT0hFULxhwneOhh4/e1x4hEnXYRMez+LdouVBp5WlhtxpCSvWSEuIcmnkzItGR/+ZO1Y/ovenA/0iCb2FymNcOz4zYilw6j3OH5wf1Fw1fyn5yGPlsX9VJ7PjVlQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7Z8PiAAAAAACA%3D%3D%23RT%3A1%23TRC%3A100%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiAAAAAACAAAIUAAAAAIAAAgAAAAAAgAAAKAHy%2BA8DJrgGLAgCBAAAAACAAAJ4AowIAEvhBQQHrgAuAE4AJgByAIoAJBAAkcAwoAAACAGFnEJDgDAwYAC%2BFDMACpxAAKCgCGwAUIAAAAISdAQAggjMoYAA%2BhQjAAh8AQII7AAUCAAAgcIYCAFMAIIJTQAEAMIACwKEzAgAxgALAMCT1AfIBYECBAVQJAIULAAAUGwAzBIBiA8UGWBIA6HBhAN2BwwMAUOwACAAPgbiA3I6CAAAAACAAABoAepsFgAaAG4BYgAGAKIALgNCLZZECgBEAJECDAAAAACAAADAAJQsIAoAIIAgAUAAgEgkAKAoAkQEAEmKRcQIADCiABoCpggHABAiBADQAFYC5hSmAhAAAAAAgAABoAG%2BBAcADABMJEggVQAgAP4o0AwBCBdRAAMACIgBUAAICJ4BpgA6AAcAABu%2BDoQVQAKMCADAIAIAAL4FfgDyGMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '116587' + - '137426' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:28 GMT + - Tue, 15 Sep 2020 00:27:41 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 2ccf0193-97e2-46cf-b1e2-e29c4fdb68ad status: code: 200 message: OK @@ -648,40 +1460,141 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEshAuESqVh4u6TRNGiBE6iMhEzJCXArk0lbdb19D%2BlA0wsf2GR%2BP%2FSlV%2FNY%2Fi6ropPmn5EO8TWLiJ7CR5tKp75turqplWqU5L3nVT9KPc8snWV2q3XnfZa1oelFXnbqfccMy7Ew5mk6qGKaVKbZlOAonRyezs4N%2B2Gtq09YXceBtp65E1tZdfewnj%2B%2F7VhzcumzOPUel7CQq3v1NG6FckInFH4g2dRTNVjSiNC2%2FCH79%2FasrRLOtC149yDMqW1QmpB9ctLIOw5%2FQiHmI%2F90gX8Mq5R%2B6eV3HDO6frGPSk4kebZE01RFtI3eEmoYOi3foYBmd%2BS%2BIzNlMN9ELNgMJ8gUTr6c3eIbpKnmUSXC8oSJARhkIH9wNpeEGw06SoEiAOSPAthAE1j1z7BLvgq4ZAIoPjHtcv9%2FQ30e%2BY8c5LAAMQLsBuAIk4MLCgMU1GF4SYy8AzKe7N7qERUiB1TkLc4bR4CmCogcG2Fj8tAMagQbBS70WNIca712Gmn5IWRRCyEI3j6kPSxcKYCGD3F%2B69RahO3Ru%2F%2BzTwYCPCmjwDTj9gI3v9EiIBVBxLA8nxKEfAhQuB%2B8VxomTP7ieNq1y%2Fr2scXul%2BLm7kVOmONPvdQY4ICJb3nBmnvT19R8%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7Z8PiAAAAAACA%3D%3D%23RT%3A1%23TRC%3A100%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiAAAAAACAAAIUAAAAAIAAAgAAAAAAgAAAKAHy%2BA8DJrgGLAgCBAAAAACAAAJ4AowIAEvhBQQHrgAuAE4AJgByAIoAJBAAkcAwoAAACAGFnEJDgDAwYAC%2BFDMACpxAAKCgCGwAUIAAAAISdAQAggjMoYAA%2BhQjAAh8AQII7AAUCAAAgcIYCAFMAIIJTQAEAMIACwKEzAgAxgALAMCT1AfIBYECBAVQJAIULAAAUGwAzBIBiA8UGWBIA6HBhAN2BwwMAUOwACAAPgbiA3I6CAAAAACAAABoAepsFgAaAG4BYgAGAKIALgNCLZZECgBEAJECDAAAAACAAADAAJQsIAoAIIAgAUAAgEgkAKAoAkQEAEmKRcQIADCiABoCpggHABAiBADQAFYC5hSmAhAAAAAAgAABoAG%2BBAcADABMJEggVQAgAP4o0AwBCBdRAAMACIgBUAAICJ4BpgA6AAcAABu%2BDoQVQAKMCADAIAIAAL4FfgDyGMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4562s1l6_e2etest","name":"fv-az4562s1l6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c26327be-e693-452c-908c-1fe6fe7e5080","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21015","status":"Disconnected","lastStatusChange":"2019-08-22T00:11:15.9884485","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"64b1fdcf-1184-4f8b-a923-4ed7ac71108d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnweGBDJ/akiVHtGyw0CelRLgZVten04YBhnVBueXCzcMUvPmwEOFRVsB/T7mynTaiwLTBRdhf8pWlJVReRa9mOULoGmKIphhVJIpiCRvfI6s6fEpXgxfhr1vgdINauHCuvfiv4Q++vW64m6EDrQXB4vo6+SOJ9yiq6pzrbBw71KuvBGZHiYVkB4WiMECJujobi457TpPwjXnkT7SQBRlj+95StmwBXhgVfIYvK2UktrUUbp4K2q7a4U9hQWuTrYiLJrN8NF4qdSUr8EnDTtwLHczKKvRcVLQi1asqZubz6e8hpz8AwiuGwbBgcWZUrvlVUtqt4qRRnM7iRKpTeSJzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4673bsdl_e2etest","name":"fv-az4673bsdl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d5b3619a-e2ac-47bc-893f-738b9a73ecf8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05002","status":"Disconnected","lastStatusChange":"2019-09-05T16:53:50.201348","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"f53e3180-992a-47cb-9aaa-6ae941967433","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyYAQWOZi9s7Xsl1Yw39P8H6pKVqaiYtBT6xKzThvrU0YFxHdZ8rO955O/xgcyTCO4mB9RqQj+3rr5ulWElvnvyOaHE6wvRdKkWBd2zG2cKARoYug+BeHZ6b23rwYyIl37ANanPeik9jk44L++QK7kwkjQwSG95iIkYN2CWJc+PkBQE8lB4mlEF/ghq5eDwkloof1VtNfA95CpcHlp63LYALJC0sdP9lBOZsZ+lnqYdOCKvglOneulJ7j/KGVICtuK0tUgaRiNogZsE8i2DVrBFRozv33mXiJuVh+dsbmywwloruu3OLIhWboKDRi2IsmRdhAHO3iDUiMZ3/a90paLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.04001","name":"0.1.1909.04001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b0bc8795-3716-4acc-a3ce-ecbb1fccffc5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04001","status":"Disconnected","lastStatusChange":"2019-09-04T18:26:39.945151","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"93ee58c5-6319-470a-b056-07760c30e9ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtwTUUGgI/D/IEQfsxt0+ErKxfvwnAq1o+DkSULfZHhe/oOTpnOxn5TTPJIPvIhZrzH19qeSCxBWbIWdPDnUHz8RGgr5Ydr2InbBRslIWECw4GG3j3ykFFdK+nrjCrcNxONsM34OYOqrW5Sk8+10iLUpyB+N/z3ny4A9pHGIqh2amglj3es6CTPk2hZL1/33XvR+WuuypYdrfFPIJWC6sA7rYrocxBdREgRoyFC9zWCqUbfRvwZFFknNlDHESeKGr8fC1HA/cpmywMLdn2KH98rsajfZmGY/dy6wjFPDNpxv5wTVic3iRbkeBR1NiPovXsrg9YXep7QZ2E72L2G1lOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4619ahu7_e2etest","name":"fv-az4619ahu7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2d5304f8-741b-4a63-9517-154c42c6f69e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01002","status":"Disconnected","lastStatusChange":"2019-10-01T18:21:20.4790587","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f5289f84-5885-4f3e-a6ae-badcef49fbb2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArgP/lNIcNc0RLZqgmthMetjyibFiqyB3gmMtt4AAWnJCudGw6ExzP3FkmvsxH2l8htcIGRHlKZQBda3TiXikC8i1giG20y4fvTmoUuAFIfepCC95UIDZv6LJO3CNgI/kELKDJzqA7+VpgwjLpDxoiDeHZbxJnKd4+CH5NFs8/1TdRciarjOCa72H0N6iOH0U9uc5ESuaEADYZoRQK9EHw8Vgle5QQTKYQZEd4MXRVnS9nKFRVIeDTXfQHUQyc1ygJj9J1CAOyvX/aVXe0PH+j9csJX4JRGHDRK67u/KzHog0HalHnaMEtAqXbphZIuE0TkxP999SV82kJ4AVvBRYPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46741iem_e2etest","name":"fv-az46741iem_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06e19ed7-7681-4db0-83c6-87a1064fb726","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25012","status":"Disconnected","lastStatusChange":"2019-07-25T20:40:46.4470149","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"d3a6d470-d590-45dd-9196-f342262580ca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArJiuH6Gug+3Lok8ZlTWyFGnbCqOYETsfGpCfcHH7Ms9stsNxffWqqq0nskbvFIBdrG7P8+FNlg+PNFmPOM2CDcBqmB9s1l3FyQ0BuYJO9DWJiwFM02IJLcgHiuYEXEr72dMLRyVxU+OgAqxvGOujj1ncIXolS1yFlj/xvNbIGKIusk/lpZgRTpqkI+H5dXel++Rgs9TMhpTRPBDtNg3PtCxtaXpbZ92U07RfDUJQvEY0R8DWSxgmmd0WCXQtYIpPRgXcHgdbcyttgt41Km/RmGCBA73AuEMGjjy8naslxV6DqTth1zIlpMvvTjZXs7KHFYlTdb3ku90yGjMLedHYmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.04002","name":"0.1.1909.04002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"69736d39-02da-4cfa-b4fc-3c3f2df469be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04002","status":"Disconnected","lastStatusChange":"2019-09-04T19:46:40.6750779","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"74960eb8-047a-4fb8-814f-d2a69a393bfe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp2ax8UM+GOPXA0QWY2Ql52u393+t6sO5vOdqE622q9sbQCxYUhmDLL9fqmktCxaephnu7/H5pSsOEMDr2Bx1zPmp6Lv+l6VwvmalUGc/T4Ng3zcPzIeF5X8kgltVjEFHfULyQddNEaYB1pee8JYllXSMYxZTBTaKOqPGWkveFl2yqS7QdaXy3f0JBjrs+arxMVytAr7bgLjC2oMiSU5IOOc71xuAntGVM1Frsy7oYcn2G2ySyaCuri148bbrN7ywIDf2yTENYpxbYLiC5xk3H0RZ1yJdbq7uTY6jjxCOiq+uuADjpb3L/gjz0wgwZkVwYDynHgX8jvvYfJiVIf2DPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4584jg82_e2etest","name":"fv-az4584jg82_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a5a97398-1e2e-45e6-ad7a-71144e2f7477","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17001","status":"Disconnected","lastStatusChange":"2019-09-17T17:44:33.5127313","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"d6285a01-9702-44da-ba33-77a1078e9ea5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7BmuTyn0MrNxhgufsxOVs4WltMDlVaX8/01lVDDHCYIsZoIWMS/ZPCqs36pSVVs5Jm+w/JJeVqDI1A+n3081vOo0X+AhRJ3GhAONsycTgu0k809W85FHgZ1Bf/KGzVWkYPGYHtDfAbLD+Le1UA47yt6OWs4riTfl7IIrbEv6DPv+V7eyZpC4iL9GaaaX3Y/lOdH8XVXwbz4QQpPFdwIprZ1qaJMOcDkRwhIc5/2NGeNNUrdBUgukLz8jGwdwNI4TX7rKqz39Zpjx8BG5lmYxB8PJyg825aNvJZAFwN3ADhwA0OiaGsJSFVkb4IeyTRwwpoSbGuPRJwoI4NBGul2fDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4584lsem_e2etest","name":"fv-az4584lsem_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9a8b2ffb-ca61-45ab-871b-b1162992caeb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0d6eb183-2883-45f8-bedd-37408cb4813d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz5s3dZR3hCBmKfh8bvnMymGUwx9HkN7W7Y4TPkW/2sARHO22UOV+k8SzIYgtc5Evbs2QXeA8f6ozw54NSMDLGBQG1FrYw0J/jUodGoieusJcOOpYbHOWwGHMGFIvZ8prjpx8/QdWt9xhMvtOUlYomEL0iY1FKv1MvJXEd6PjRJuLwnk7/pEqrc6Cp2ubQzdLQ1t9uHgWfSQlAFOCBcMmf/rLn+QdLnXgqc8s0w08gWi00k9Jfj/nRmK4ff/6gO6ZRAZ43oIU0ILLM9lgkydWiJHLFWzB1fipki3fK4Og7j49tAEepWvb2Zq251WfV6tG4LAZpA3aZ51w98ads3A/wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623bh5nm_e2etest","name":"fv-az623bh5nm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f55fe6ab-6f15-4270-9ab5-4c24e895b75b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21001","status":"Disconnected","lastStatusChange":"2019-10-21T20:24:23.4052388","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"e38e3b39-9e5b-436c-a250-00720aadd8d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+QJUtNkeqiUzMCXdL/Q3HHvKaEeYh8ee4589QKrAJl/hGp2jbObr1t5mRGHZ1756eWdRvpjkSfaa7blVvsI43xg2VrmhxTC4o/FiyKitpYe4/haWk+HtqnpYfn6mI1Sz5GXdrGe8joxoeowXUgKwiF1NYeFC8Y250z3Yp/LYu6DM7Od4Mjq6M7llVPRADqkCaqmR9tt9jIDhISS8uONtIxD3OJlMF6JfejW8qDdac28x23ouT7P+7OnrKButWhCuP4qIqxYYDD75M9VjiTdF3T5Pa18Ew/d8NNTEkRvH+MdbIFajbZ4qjCKlNopNO9YfQHK+/DTKpC3xXDXlhus0OwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46743x0h_e2etest","name":"fv-az46743x0h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ae8d732a-1139-4ebc-98ed-f038f8c72501","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.12001","status":"Disconnected","lastStatusChange":"2019-09-12T18:18:25.5004964","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"e6eb4ce6-339b-4102-b346-cd269798c72c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxpT+Alh+Ar7A4UeKXl6LXJe+svqlRXadtfI77migMRnJiclyOcfx524PJbJhLBhArSt7DmvrP7R9dmDTZCD5LQq4scUavHEPbc/wZwW8vKGMI7DlzvJgDpjiTeTxPZ0pPGFQoAShL75VPas2oZuo38FWxrUTDKmMLDps4FQ23RgoqjlMW7Gf94+CK7Q/fnLdXHSW0St43kh7a/ZJmsSOLq2ERTgSjERAzY39USeXb1HB29smnV8ja58ZuDnb3ivh/L2zs2mANFfbZ0zILizk9+KOocC09oMDCoLs60U+USp1D+bEOTNobt+zm47vfTGATpvQV38Cur5IUR1usC61oQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4619cy7x_e2etest","name":"fv-az4619cy7x_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"82571e8d-4978-4dd7-8fc3-4c507971bfb6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25018","status":"Disconnected","lastStatusChange":"2019-07-25T22:26:36.2617405","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c9ecc22a-40bb-419b-986d-ed4538192402","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArFNzTmPTs/YMHwYnmv/EtJtn4csb6OJmj5vNoq+20N/cOWR5FKx9YRtVp9IS597F82sWY1vyKNhTBepAOQw05uPjPDbi8pgCBiEpbU+O28OzqdP+hydJAxUEaeQyEsvk/5DLJpL+IwHGeQSuh2a4PFq4n7drehkuTsD0Jwiy4iqLbUGq2/DCUxDzqNaoSgHPpilbmKjS3IBIDZBLNUNfBYBNkCNcNKyjVLMxxOmwhpUrtba49g39w5CAEqlP4OcnNeMw6EmSjjFNHE6tZAZukdiGTgIotZslmt9dbT1kO2yaU0+X+NP6p2Qsx2lM0Ch1FU4A5/MaWSAhcC4S0fnL0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458571da_e2etest","name":"fv-az458571da_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"90cc7018-e69c-4cf7-b717-7867d5d4c871","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25008","status":"Disconnected","lastStatusChange":"2019-07-25T18:55:43.6749581","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"981345f9-81ee-46f8-81ff-9bc959118c54","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyaI/sBzIisw1RdI7mWhmzoGPY7h42TWSqfdNgBJEosS1jl3JoT9DoQLX3TTEagO2+eo1Vw/SSDD1vYnJycXbeTj6Vo4pAlpRWQZR1H4cw/zZ9vDsqHdKMHh7wk+Qj0fnbRHdzZyyjE8JI6rfgCGTssFvibvJ6dXHO+NgCTZt4mCnJIfryzrkXPvOsia9B9HphJlIdC06W41psxSymGEhZxHo5bvrNI3QEmI1h7FXoSsAr5eek11nvVkg/itudk3nHhTKhh5mQT3UYZcHTi9n6f6SbVJ4yiH26rOpG7t450lVZicEVYBKQi7ZcDA5Z54zy4u+sN/QwrVJWpcg9RPfAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.04003","name":"0.1.1909.04003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ebe6b711-e37f-4f38-b481-f650471f5a34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04003","status":"Disconnected","lastStatusChange":"2019-09-04T23:31:42.533593","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"45f36891-7f79-4bec-9798-cad9b60c8963","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAl62sqfrDZIT/LOVFoy3UNoxGhuralOg+/iqfNjLpYTjj+lKVOg2vcT1Bw3oaAzn8JO6OePWrKD4YLFHYNGN4Ge5sPupVqkrpgcJhSUdKVkbVbuPSU0ZhVijlrtEGHa0HOHpnG99oEhL9oFYOxW9+peEJBJSmQgMPn3b+qefvj5wc0Z/h+kiBeeF8tP5kMNAo9ggvRHW6cWO64oPbcwjA8EtqUiVXd67c7z0G7JBfWEbqidp5VBZtM8OI5EvC8fHhaeMB/2oPl+2v2UIKpJT5rsDMpjFCbSmCKsxh9ZN3rTcEvXi4jojQxXGqottUtERMjL7DS0npE2nHJd3E1XxyFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4619esla_e2etest","name":"fv-az4619esla_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1b805db4-9304-4a84-a165-cc2b06f8f0fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17011","status":"Disconnected","lastStatusChange":"2019-10-17T21:03:21.425852","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"db52b795-10d9-462d-b117-cb222d7d730d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt3vZWUeKuo7SXPqOn/35oEimQTx+8EO+fUuvDdwOv0J+CYAusSzSv5F6jY83c2Ips9Mg4/j+OierBd+WJrrFDZYKHLCu17z8ABsgoeQ+jDUKJ9ayGkePsTwyuBftN3ZUrUrKini/8g7H9y9Rm9vnjuI2slkyUywnumSOwR23q5BwfxzKOtFDseYmgTS/x41C5zKzif8haoMw3LHUgyWYzasjDhyVNq/ImR4OOqtDmchwbC7Mb59v+nWKfsKEOh09hYvKaeEdlb1VHii6VLm6qoq+tQdtv3mbXtV5VMNVv+ZSvTJ8u6v4yM2DaYOQb876NuaNdic9Xx2lOF6zggXZEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4585ehkd_e2etest","name":"fv-az4585ehkd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6a6e550-116f-452b-a5a1-2214e2631f30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09007","status":"Disconnected","lastStatusChange":"2019-09-09T23:57:48.354005","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"15c4bd2b-1326-4f9f-9fad-ff95619cd5b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn6VSWSTYagM1aiNPZXsGhzs5Vi6ZbaZ6ImbEoFmZKlZr6EJxd8ert6VDzRgCPRurpguziKWefaVVC89j9xbNM7GBxXyTS+j2VTAIfsY8TPiDTc5a0A3lkte6eWTLphLelgdM6DicCF2R8HhkzKeJs6Uud9M6pTL8Q/IuOvq+dZI+ijDjlexiB4QsFCMJd07HZV2R5ez++CWiUV3/Eibh6WS+7KOyilNfs09kKt8/GDtfSp8L36kVT9hZh3Opa8KGMzzrMnoAS3BvpOqj4xrKLjuF2hajN7O3sj1/87rdYBM+q0NPXfJXbYGQZXvkhKUKx9oicvf1uuxQRSKUHaQN2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4674g1nl_e2etest","name":"fv-az4674g1nl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3e06410-2e89-4c07-b1c5-9a9011a41799","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17015","status":"Disconnected","lastStatusChange":"2019-10-17T23:08:23.2333841","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"7d82955c-4b0a-4145-81f2-131495afa565","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs2qaTFHm/RXgI5l/R4tbpJe4Xg6DDN1qQy4C44HeOUfFsn3RyCef1AQrq9L3IBRRn0ZMVUE/NMipetQuV6YR9HSxqRYo/hzhtFohjOxemGvZ/nY9nTBV078aTaGC369WtE7Q/3fhfqwxQ3NZWPhhYYNxM3xZCQLlcUG09sjcKFXckoU59JcDBaQ3euZZW8mOz7l/XqjR3mjkcWMS+m9IiW6Ytn0wmvRu7kUMNZlmCPrvmmeo5YcYzOiArA7sCJR4Sb60wLczkiNoOsZE++dT8bU507keDi9wm4zzCZkOF75CRc6NpiDWL0lRxJ719RRorXyoPMCdOogitOkQaXa2+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4562ze1v_e2etest","name":"fv-az4562ze1v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0be8ce03-1c95-4dff-979c-69c4e138be2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08004","status":"Disconnected","lastStatusChange":"2019-08-08T23:37:48.9978119","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cb3a25ad-c900-4406-8bbc-ce363fba63e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4xVWYybg0OhS/CCNGkmSna3Jsxv4C1NbBqWu5Xa2UYzq/CdeF2m017y315eha8E8blrdvfCxbJJtvV1DPs/F82xZTstdS/y1LT+ID51XE8+SekD52a3/4qSXW18GEuyufatELD6Pas+IZN8IrA5bgqk6zgMrRIfcOMyz6zKUJTD4Wsa7PlGNageFUNgS3TxM1FCAA92khP2lHA43hjsYkBMJeuhY+/pIRwuYgQcMkmYLYK+/ue/Mr3JpY4xNgVM2h5oNFMlaQrfTwJLMGd9AqAbkVnfS7pRNDak0vCRTRK9u4TVhH5BmvmwSXsyOkuwPi0nGPqVTyHiNaXAIhWAMkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623bp547_e2etest","name":"fv-az623bp547_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1048fec7-aa9d-4423-849a-855a27e0dc64","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22009","status":"Disconnected","lastStatusChange":"2019-10-22T17:56:34.4492924","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"d7800f25-c123-4795-85c2-b937f7ba0a50","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwAkyLbFmY3+9R5K0mNHJwMAAMScUVbtdcM6NWNxhO68sjBvcIh3YBb1b5P7jOIjc2MDVbQ5xP9rpfy4mYEzOFQ63ukaBYt2CCFeCdvfkCb7XEKTTA0KWnG4k3dr9IftXPphBjM+TVk/klDHLIETqF72JCv/jyWF3oGAP4J70Aw27JVJNmxVkBiQTIrflIx9R9k2WaiPzUX3njspMvcPb+P9Fgh1ZZaQ573TccThl5+GOMqKhAfWh54jRrKTG5iItqvNUMVJE7Pwgw8qKDFKrfu3YScUSm4JDedM3jz0Bg3o/AcRVQ/AOLyrUslg/Ct4pzMDwjR+clwFGklq4gRGvgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.05001","name":"0.1.1909.05001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"360a3e02-e949-4d26-8f95-96a0b0feb1dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05001","status":"Disconnected","lastStatusChange":"2019-09-05T16:28:49.8262859","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bc1dc9f8-16b3-4846-b5a6-b8171fde88c4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuvP1f+XAmdsN1+2TkuKGu0ceway1c8IZul6j7U6XttlHBlzrKtbylU4g2nizvHCfWZ/0YKAoiICcWa9so2Hl4a4Z3iv3xaXN/crz2qS5RvoX5jWrWcuH9DZGM0muVe42FAULdt/YreYjk0LXugAPAR5eJ6OCVOHzpePKM6eqd6Xm1xCLeRnEnqD5I0ihtJ0lq4GW6aQ8r6udkRWJxzuaG3RHZ/rn6mkzND7rlpI5YVLVfaMKmj/4Sev9Af4YL4I45OXIF4Z/mE0toNL6wuGi39Vm2FtWyB9FhF/bVaWIigrWega6DIDLhQOp4JysswYfgaG+f3L1gENseFXhOjqLbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4675exm8_e2etest","name":"fv-az4675exm8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d7bf0a48-e2cc-454b-8029-072a18c0875f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f4b26a46-17ef-4ac2-a182-5323f36b2656","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqnXBMkndH2Or5NUpnbIhLoqQxjPT9EBNEmo2iYKwE3J1JWU6Pii0Nn+j+EUkp89VA9WRhenpIhX9anD3rKdXhWaJ+SZ0vmL19MOithhgaeMgCSIMkvn2eo+d3v4H18f1QkHOb8izu2RFUKoppyH2EK4IXUPdBmmd0SUlg1vzEeDJj98Jso3ffmx8hsYb1EFayJmAGqVVKZOySOGABgjS1zyeCaaOgn3GORH4dqtBusg4nC3CjPQlpFViSNsN+RIplHxvDK3648+023kf5EYWufCqqOVfGSkpeixzS4cJ8GN7wt1VOlUmVcVb36RgLmUgSlE8gNvfuThYtvdrmz290QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45634oel_e2etest","name":"fv-az45634oel_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"49e66214-3f96-48bf-81e4-793f32b46453","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05005","status":"Disconnected","lastStatusChange":"2019-09-05T17:13:50.5979133","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7179963c-06d2-4240-b319-4446c3fda351","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyk5Xb8Y97dLe+jXw5tz1wiQGnXtZ0ie7KFQAyTyUFQVJCyktTwKha0WSPCZDQ30UXVWC+GK3WVqzjA/b/eBhif6zgucnX/MMOiP9YGefhRxeM4o0MhUGtkzKV2SZgzIoGg7MWT9xoL9czCjBRCns94u5nIbleHixXr1V8yLpf24A6eBtGLf6Hys9OyOuW7zyYA+2c6n/hmhomqM4210tlMPIxOFWshIvFmvcEE0MOY66ciirciZQWLfeMGYSvSMVoXVk7zw0koAZEbsvduQdmveZOEv2QUNwFLbYW4VCAHQz4cU8h2ViE28EkEFgSLx0+cbYiiz6UKfYGma+7rOTqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4676onwg_e2etest","name":"fv-az4676onwg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e1376468-b5d5-4e9b-90c6-fc205883de9e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24002","status":"Disconnected","lastStatusChange":"2019-10-24T21:40:50.8529876","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"3488a29e-e1ab-4c71-85ad-3f69b4943265","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyeZa8D7yMWmIq1/x/L0b8kWcQnYvQxhcXPj+J/P5IdWvfH8KEFIoEvJv2OSHGTwgvw2VEkYV0y/7TnqnY54EULyT0QJyQjaTTuGkuxqZSdY+DS2LddnyeyaUeGtrE0FIA1fUEgWwy09TggdVtTQi/iAFzc6kzjjUyNCWRSHl1fJIMJx/c0bkpSAh1NNrWlPtPBRa1/mm3dFmwLIBMifWjyhizY8nDsV7+LA+VE5x7qgRa5auK88drV6V3QHaGVUhmy78Nli/jXr8QHgIv+Pv9Bzpko7zDga2A6o4oTJy1iB8SUb3/QyYbzcN7wzFx2D9jDE5YITfzt1PGlHA5/v4ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03005","name":"0.3.1910.03005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"acd95a56-2a2c-4540-9d99-39190bbd5003","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03005","status":"Disconnected","lastStatusChange":"2019-10-03T22:49:45.2326","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4d1c9a9b-5ba4-4965-b919-2d2b675d35d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy5s1bFRL8Dxy22wpMI/iL/uQ5QmWXY8UOretbPyrtMm/sYoH12dt/445g6ae9iM3UPRSZMtkdLR2UbAUa5ofd14nMyMTuBYQC5jGSHONqHefM/XjtZLn4w8CXnB6ABte+wcdF/SU/00lWBXSfgiTf5cBWT3/afrdGlhSeNC4NcHGjS1J9RLgG0dgQmerVvAAaxWyvLS+rDU0aWUvvdeDZFdrJ7Jr3RLFn9mX+BmV5RnwEc3Nmtn8M4m35bHePzWfPi5cP7yVBWRE/V9h+l+utZdnRIr642OOwzJWdk0B3frhf6//+vWtx6E1FEitdv0cwzyIKgHzlQL1B8Ji4YwfjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03006","name":"0.3.1910.03006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"342d1319-d92e-4b23-b619-8a9b1fcfbda8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03006","status":"Disconnected","lastStatusChange":"2019-10-03T22:54:45.3375633","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6abc3a5c-6101-4a2e-90e8-87ce1b849dca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArdiZkMKAj+gK2OsXWfJLs+GVQiJw+bEihKS0/g8aEsm69MJpPORqPd2ofoF7PdZu8NAlTIutPVVlfQXJatm2WjuaZ6sFAcrAF2VENf7sjzJlS+h+ezKhSFMZARV6NQh3/5JG8gcQ4h+glRC3SXZoi2wk4y8SM7jage3XglnUYzkwBgwHZKGwJskHJUpb63g10sz7kmzi2q1YEGbPDaV9Z2BcKVtdvLi4rJX2IfFJX7Hb8s6qi4yhLqNw68Hw5hsbb+kiKu5TrLhxGKjv8nj1KoD9mFSP3ziaoWvwFiyTL7Wqb7+f1254YEK8XLqF5RRaNOLypRiu6z+2r0k8cWVoOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623emr8p_e2etest","name":"fv-az623emr8p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"412b968c-6588-4d26-812a-827e20605d8f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17003","status":"Disconnected","lastStatusChange":"2019-10-17T16:33:18.4291452","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az623"},"vmId":"8d7ebcc0-f1ba-478d-abc2-ba721deb8b45","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr4HUKyms5eKsOQHtX8zcixKvKGhVviSLD/x8I1ZMkKXQkxSBMyxGGIwUb8w1RN9T6D3Cem6iRdIFUosQHCZIVHDjKyZTiSX3dy71YS+OIYCBbrXd5YiGGefwTNjjXK5EU81DJfSwhmhDyYMB2KdRCQKciGOgP8eip/LdgMHPefbdx8QQqb13761oaiZeZcl7yulrP/EpYEpFEYnjJ2ckZD2RCSXMcXjyFWoh7eg7aJ9kgZIrxrJ93EMUWby0KcmdUQWIqpM7QSs0F6DAANpxGk8lUGBVXR2nV3kTWz0jTmhFg0LAbh/xQ8/Og3bcw4/QUUgSH8koos1M1gqFxHmuPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4563c0kv_e2etest","name":"fv-az4563c0kv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0905a897-9b10-46a9-a159-fd1dcab91c22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24012","status":"Disconnected","lastStatusChange":"2019-07-24T23:25:36.6789477","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"571f4e98-b65d-49c1-b474-3afe0710f75a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnFOKthLBV50VasJccuLsKWCr7Tmmjp5cuzlqqCtpLmQ2yA4pRsRyie8Y73bx87VDlUyuuBL0mTxdsvhAQPnLz4GI3GzhENeIFsa8KlbO9Yfz+1G9B9tpqt5sqO/vnGBw9BiSQ2X2gThVJk4630vY+txhV6wwHVTBQgyC4OeNHeXWIGN7th786ZHFztVvaMIv/bKJgB+IgIuV9rPjw2aaxQAdFzCGpom6qn/mB98ugHLAbarawIuUFX1jIFE4xHaWib4saIoSHTtWedkoYXXGp5+aExWhTwdM3qODDONPRtxZ/MepgXkvagI2cRGpDJFQxC+/7oaCHp5eVIxvrZIVmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623p7tm5_e2etest","name":"fv-az623p7tm5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dc10297b-0225-4236-b8af-066894022793","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23003","status":"Disconnected","lastStatusChange":"2019-10-23T17:21:31.3081837","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"f7ba3264-2d83-4094-9855-a5add6b0a763","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzs9RVdiPITZYqmMYkXB08MJDHSHMncUngbKYKr3AYSltImmd48YePji8vTgkaxjkkJ0b1r75YVeGlgSTfN+1WvcMEd0Ab/CP/90PUhMn01LZ58D/b44KSxh1bwwp0dEmuBGdNnef0kPYntgT/Ve2oOrMv1RCkBcuuuMD6uzd5TyESkTHsSOyfvx4V5Azz/+6hOiQnp5Uljc29AcSFEKw4iFo7dChTBC2pxV/AN1pogt4ULI5QFLK49oCxiBnRlLY/93yUMU7nzzoIAWCOKynaXwm5/VlACYWO20bBwlrVNr4FUpiDc0MkQvTkTRSmNPgHJKfthkQL/p/EAXeEgjxKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4563hz0n_e2etest","name":"fv-az4563hz0n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2581549e-095c-4a52-940f-95e825d84c01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.17005","status":"Disconnected","lastStatusChange":"2019-07-17T23:03:32.0002184","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4ff71505-1925-4973-bc5e-b13d19ab7123","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3pFtaS4G3vrUz2QWNrq4jluavEuB0NILpDcDCE35q1TKrs6F3s/If8BzmKNnmHlRdW1l3pOcEbLPpplGSkQOHFM6loYr6G4HDAFDU63vgnZIAgysU6kChilju1Jp11Xrhu2U9HPC6PzvmTJxc4Ndws/u0dgbydOGq+mMyWfFdG4WZ1vITCjNAkzu1/J5DKG5IxqnrLuQ740bxwhm52o6TMoG1dx7T53xmQ2KYMmc5ByymjtwaPeDo0/k1a34FVolA7pMe5m8x6bZwSgj6Q7LYQGE76DI3lzBRyPEIYKkfLicaJLk48rj5V0NRCVNidGRV1kijiKGnZ4mW1g08v4c1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.05002","name":"0.1.1909.05002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"21e41b94-d23d-4eca-a4dc-75b4dd22d341","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05002","status":"Disconnected","lastStatusChange":"2019-09-05T16:43:50.0719035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b49f56f9-5d02-4d52-8a2a-e78ada39cc51","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1cQDyubdu5IaNOSig+4o8HCxFbFRxjCywQ8Urnj6hG9o/lfa+7VplBJMv05i6yPFNFo4FYsmaNmYgM5dGoVNxYxmsEtKDtTifrxVuTf/LOV7zHqz1k/U7qMOmORd72Jrvb6HP+z8vJem2c9aCbIPYjNM/1pQUcStA6SrkgxJ5xb49Py4wuQE0UaFr3zCy3ba2ith6BqVw6rifyNLSbcN1/Kkk/5iJBY/64QhibiEHWQwcebXi6zhMe7wmn7Cb16e09H/Gigj3augHq7r0L/iRku2IlWkKmP93Stm/7UkwaJOtQ9zFaZvl+uH4IDOf44ZtZgoneGG/3k9AlEuABg85QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623t5suk_e2etest","name":"fv-az623t5suk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8debb084-1785-416e-9805-d91e6dde4b49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22010","status":"Disconnected","lastStatusChange":"2019-10-22T19:16:34.9730624","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"387f10a2-0328-425b-8f24-7bd9f5332e3a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAljedvO/49chF9i04t/4iDFuraHsCgEJcA4PtOZzX7ChE93hsHQWbVHSxOuRzpssIompGdKtPmHWp0vDTEXc9wcCGAeUbb5KwURcsnE6mzqylkfPB7gLckjhWYd28nKoJNo2u0LzgvWycFSr+EU+nr1/phwDuBVYQmHSI1aRNx1yohpLHD1Pa4oZYJQ/6ezo00ZHyrkYx+FmHwjpufPlijCyXK9crNRQN7apA4PfwAQYsjOCH4l0/G7WHADcyxjuI2ywCiqZhdOBBuXNsLwFhhdn4ZpU7ykhFIKIE3nWS6fm5lCm24VT9zxhjlyIJo9XJYHMYXUMNEti+r5c4MNNQMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4585i38b_e2etest","name":"fv-az4585i38b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"87aa741b-e86b-4d20-9f91-4808c6bb51db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09002","status":"Disconnected","lastStatusChange":"2019-10-09T01:50:26.5038926","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"af1769ac-cc76-403e-a71f-492319415729","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwWmEOsX19MX4iV6XlpJK3NcXneQ5wytaOquiZ1yVm7xxq4X9aXogiTR7YTq1K2JLiLOEc6i7CjWq2daWnSykb7RKJzXkDjL+MznTh7BQ0xp1pNzCpPv6IQ96VwoULU3ON/bQk0bUuPNDMUGW92ltEL1jXCR72RJbuzBxAxunsqWQwi/IdBdagEh09rljDm2gZ3WpgdBeRl40dC/9YLWrb8HSaT/w5QvOzSu1SJReT0a2iacwkRBJCQbPMTTCZT4yzXPG5Yee5yIDhXv31Swq6vsktwQ95JBbta7LxpSJD2Jd30/g5rDs+u6KnyB/i/hT3zRUznYzRJd1XPQW2O8Q8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4563kew8_e2etest","name":"fv-az4563kew8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cc0282b9-9096-4aec-ba66-5ccb0b59a69a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23002","status":"Disconnected","lastStatusChange":"2019-09-23T21:33:45.0414883","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6ecd2ed6-da06-4953-80c2-d1539cff6cda","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAugcxCl3j+7lqrFBKGIzk4GcgA/dZtPPukOIfazNkyXrckTU3FkojSJyJRwe1EPsmI8zAAXAqXo/mGsoI8jBcjwdp52Qiugi4qSn9ve4BFa1rhCUejZhNFzHGg7ZtaYP3Xlxun0skZT/XUlnPo9yDgnTK3omGCJVSrzw37F3vU4yLjXcNbPWb7ewVR7dBIHLXJd99JsUaTY5VffKKyo2Z7TqPNHoYFyMGK5mgR8M3SlIKEAb8xYqW7pFizeumvwXg8JKvenU16BM9d7M0qJQlBNHEkZ+9GjG+4Rm54DwNnZCVyiCsOfG4YggN5CnCtRx9+5txr7dSj24lTcaBfoZ7HQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.05003","name":"0.1.1909.05003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"af83058d-09b8-44a7-aa26-37001c6b9487","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05003","status":"Disconnected","lastStatusChange":"2019-09-05T16:58:50.2860762","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5449bbfd-5ac7-485c-a0c6-baf4f006756a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz0m7tXdURKfCrR7qiB2Jjq30tBPg6JSh244YavWW9hhNxnHXmgiR7KnlMhD5ewl63FTPunrExMGXmGEGvnxviBn7PQkYPjrT0/XJtXTaAJl4WdiEd+7BX9t8RpVQPT7NFoqGp4mNSXTVIbHiTlxEED0kEvH+xcGJB/8J41/DGINxfFl+ofad7AlDW2Ssyx96wgvlRIeN4F3+RURU+/sPKe5HNHaFXpzC/ppULAArLWg7poFdWsOLKEJQKMyiC8WPkJ7PyOUA8H9/tLMvpDupjwmtDwV0kxgUSbWSMuUqhkFog2/0eVRmUz70aSjPrEpNfed3ASuJhnLIz3/9QVmp9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4563ow1p_e2etest","name":"fv-az4563ow1p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c2f7f45-6b87-4130-89e7-708cb53a4283","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08006","status":"Disconnected","lastStatusChange":"2019-08-09T00:02:49.252157","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"71fcdafa-ffcd-43ce-a329-4676bd79592b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1jzxQARdZPuu6sA+S9EwPPZGfwRjeF3moYjbWtylqNJ+eu+7Yi6KAauTikgGKMXoKSWhENdAL7rA20vcWyjpxTTsAcvbs5tvZeA7aKr1Nr10rmvTN4doLq3fGKCUvQgYfWzVrSjdLQ2t5jcAx5iS8RnzecSeByOEMyMMOpDyOz2dN7uYGk/iw6NAwz5Uv1LWyQtPOWM+aChHLrO5A2vmuoT1Gngyn2/BSfvjBm0NI9e9/jCAQQQg2Pe6WJ+S/xq6IA8DiDHu5fauXYYc7i4osLuwtGYUxwcaNEByXgtUXhxSZMdlECU/JC72qAj+Tt3yJkh+LjRXzgBZz//aOCqy4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4585qxs8_e2etest","name":"fv-az4585qxs8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b8e91191-8bc5-4e6e-b5e2-0da7a0b50490","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17004","status":"Disconnected","lastStatusChange":"2019-09-17T18:14:33.9193746","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"624f8e51-74de-4606-bacd-935d33a44334","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9GXiu9p7eBCiRsXhxtc60PVRTZih2MqpzqTK3ADZ3G1tcKeDToAFuxZd/oqVp2PvmO40/QTPE1Lr+1NhpUb0l8wgyQlJ2Du0NtnNJ/A5FErnts6vQY1vZOES/IAdLFCc2tursUHVyACus2MBJ/l13fI5KmTOOhgDQKi2EtMg82UlScMdLyq/7AX59fLpR3SxQp+Ka0XYyN6t4tUsoaJspVVyHuGOf9cg4w4zgzcaadW9fOgSB4o1b3pUjuQv5O9fgu4ewT8+J5B4Qyv9ZILJV8bkbEotHiznDbChE1PlXlYY9gvkegF1Bp/re8qoCKwAdqf4BAZ3gt0xdT4/IZa7tQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461adr2u_e2etest","name":"fv-az461adr2u_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ba97310-7f8f-46e8-aaad-9f3b26f41d0f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.02001","status":"Disconnected","lastStatusChange":"2019-10-02T22:24:36.6405636","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"478c5b57-1e4e-4e96-8156-d5e7dc3862ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Esh0gfAI1jrayxSuOx0um9HZgUr2zIbrtKsbrgw4+rRL8BjizJCj88faqIvCOqRMThHTs/IsEpcfdaGFb5JxucIP9loWL+mJckEafYYly4gxiTvDiekxL6te5auldtaetMPWqBp3BhO3XZ8rJ8bvGqitJMBJK4qXKoyM3rYv4+FsZDcE+YR/9JivpIksWrMUuMzPYvQdasJSX4qtvCszPVIVPKZDMcVvdVN+jvTcGgPtY1K0Hhkk3RbqW5SHXtzGT8LNZ3hMNfKlLwMi11th/YKR8yJ97ja65CLO8d9T3F5O9yvmHTatr0V4gigwo5dhKGmfdS4K6ez828A2L1gFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623tinqo_e2etest","name":"fv-az623tinqo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c451b9de-c137-4bcc-a6dd-770e926ed905","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21008","status":"Disconnected","lastStatusChange":"2019-10-21T23:31:26.8986901","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"067923ed-643e-4ba8-9bc3-51bbd5958488","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsz+opzyCUFOvGTqQ2ZLJXXB0M+ZwhAXgWa7QAIdQLUoxb2L+Zu48FvBKkt4kLgduv9F3BRd02utElXZIyRf7yeTx1DnX4uBRtHqpiw/j85orW3WZ3TFrGrvbYXRggZ5BZ2DPOGBxR5YSrL4nsgkCV2o/hWzWcYKfJLDMwQfo5UiP8W0VNTR/eyxuAiohvcrlNrJ8p1x10vgIrcEVgbuUHhiB5h1rX42qKSC30DKe9BuhfUDDmFOWHPukAcimhCYOo3EI3fF77kt4cXHo5ucnUVySF9U6yqoaLb7r6TDMJpfoiGVKz2Ei65nGO4bU2qW731Is+4/5T3bmgFVoxiJ9KQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46775bqs_e2etest","name":"fv-az46775bqs_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c57163cb-16ec-4c85-945c-857f070f510e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13005","status":"Disconnected","lastStatusChange":"2019-08-13T19:22:13.7476612","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"9a20efa2-ac8f-46fc-bc12-2e354c791557","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1VgxKPO8WHh+AAsvc1YyQCSOl8aytvR8jofc8/1MSCrbjvI2Y4NtLnYoxy2R9VklSGyP0S5zF/Y6sEzsrUmUs/RhuPAF+i2kOt7E7IkyLY1RJX3u92gUL9W2WcUVFiVeTXwkTP3glJU1f9mLrOcpI52OPRkoJkwlzaFz9KJG/YJBu+78psX0BQ0C+DNia2vKoWO00eSkOGG9hcXRzp7kdbjpEnYm6fe1113L50uAICXxmWCXT5V33W9rJ9IPWwR2gbE14LkVsxvwchggI4GKvINpKjmLKqgVk9fWPKLfLA4pvkeb4nOyQyAT/Qn3YmrX1Owx7omlOckuAZe9VVFu+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456li9ap_e2etest","name":"fv-az456li9ap_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"77b90a80-855f-4a41-b62f-2a8ba8f74b4d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16005","status":"Disconnected","lastStatusChange":"2019-09-16T18:20:01.828603","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"036f3f8d-5687-43e4-ae39-f5cabe0d2688","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxGQQsokpoqidh/BA8R29p3TC3UdvPFb5Q4rfaacDz/7OY/7arFmOmP3GtrJr4t4crNSkfv8kF7y6F67ck4uLvsB2Lf6tsxF3oB3VDBlVZejhQ9lyCDvcxj3reShBkZr8V23wpIuNDDBRiiwUCf5Zwqn1PLW5feqFhMEYOrg4enP4FBF0Iz0q1gdF3LXGt3YqPmf8hUnaPGOYB+D3VNA9eLaQ81jHcQMZ0X+3zE8iSl0PMIqLqH6dmyRgTmrhlTlU80Ru52BtE009Bl+6vfJZs9rWfY1meHtvdyhJxtHsaIudUUhe91UPlkqmchoNvCw+4zz7yBvIksv5h0IJco+sPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46776ghj_e2etest","name":"fv-az46776ghj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6ac7b9a7-9680-4844-89f4-913cda5e6088","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21005","status":"Disconnected","lastStatusChange":"2019-08-21T19:06:13.5097552","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"20922ab3-81d1-4243-9715-1f819487076d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq1Lx13ER4FoIW0+KXqvEeUGlzTbGt9veBDI6ozprJxQxD54t6W69fNrVWuAiycl4GbP2lQRCd+Gw9qJ7bes/Hfu/n1mtaW/iCZe2nj1LQBtW3OQVxErZgihK9jXmeq2fkOJgb+P1gZtQ432bbeM9O+zPxdE0lnJ4pUN2y5o28NRDV79LJaj9Pyt1MebC44C/ZKG+tnO3hNmQHUmPyTUvnAQwizXIIK/R7KG37J/Ne3PrzLfczWJKguuE/G/fTqXderPKCCtSDtTIue+dTzNUlzMif7jlTOT90KqDV82vbKwUG4KWu5spubprFD93pxV8vjTtUzlGI9klqY4F4j5KgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461atdxj_e2etest","name":"fv-az461atdxj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6eb57f92-dde2-4fc4-82bf-649d6c740854","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09001","status":"Disconnected","lastStatusChange":"2019-09-09T20:26:26.7691636","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"794e36e2-2140-41e9-a19b-c12557e849da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0F87yX3SgKEZRrhV47ZvjZmGFqwfQJTyfaDEuYpEoF5U6Owwn+WFdns1XypJyiqFq97LVjACtAj496D4lcg7ywphoDVpHL2bEZYMwP+pWETabL0R3fj1TWhjTwDR3hMbvSfTJLHRBCLttrZ8ENJf5u8CC81FbkCf+G6nxfJvOmjHbefgPh/sR8SsukRsOqxcRHnrHwEsS+9njg07QtqlGF1YJg/9sHlzVV4hsA6tWPgbcJ6Eq9fU4RdzZATkr+l5N4RIxqf/w4do8NIin1606cULHXCB+6JZzr9x6xRgBQ5h0Lx7GQWof5TWkXs81Km7Zb8dR5201xCzxG4KtBI43QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4563t7hr_e2etest","name":"fv-az4563t7hr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ff8398cd-3fbe-4aed-ba80-2f94397f84da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.29002","status":"Disconnected","lastStatusChange":"2019-07-29T17:37:32.8476059","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c9d163ff-e4f4-4478-85c6-8cd3d729b596","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAws180EUJP56aSGtJbRTTwxxH5lUxpRqG6noznkqc8bcyBmxZnYpqv0CNEJlmzZNfZDo02OVqDbpHS/KkOdZN5HPSW3y6SnWDhs/UTF2tnMyig8Bt/oIgr2h/qXoTzw+OaLNeaELwAOAiI8ngUxXa2z7sZ2kQle5bExTf/8ULnnDF+pXW9sRpK78VUoSc51OdTDlrBxmzFpENpOMit/N0gp3Wyt8AfNZJprdK3hszGXm0pTcoQdXl/kDSELTLRDaUy7tegxGUPGvZp4MCzyOniKUmT7u70w09Ur6/8IN1kF6FHr4lFCgawiTFNcWGPAAxVkm4CFRYJSntByS9Eu68IwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.05004","name":"0.1.1909.05004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6f339246-c62d-44bd-8d18-c7bc3190c5f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05004","status":"Disconnected","lastStatusChange":"2019-09-05T17:08:50.4581949","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"603aef8b-dcaa-488c-9ab0-8ef12b97daf5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzhd+3NmJJ0dgDYYzEch8wruTL2EXY8aufEGOd6iDlgkztVgTeTP5hyg0LsUGJkRB0eKJYEbJSWU1/DDZi5fqFyMFm/aJNWhGOBFb7iat+0OsMjEvv9JW9iojqDM8UkTeEOuyYoK2bzvm95oCit6BTXeRxiQp67SkmVl9LNPz8ZwWdlyRpf53oBdG/45nSetyv5XsEJeWBB97lUou1Q6LlzmZUTxiqAXDlu2XH/gV+CWb/XQ72unr9Sp6g6brvCcnR6W2hEr+9NYLxvfpRzt19vyDxhBt0II65eaJvhkeXZb6NG8WCBLR/jLcKjs3/6u3Kb5+cp7jIQ231W9gGJY6oQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4677is16_e2etest","name":"fv-az4677is16_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a761f281-20fc-48f6-8f24-4d3ae7c1650c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25010","status":"Disconnected","lastStatusChange":"2019-07-25T19:15:43.8831813","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"a8a94e68-1fb8-4198-8efd-97df31129567","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyiHfVp2nf/Jb7WZkYsTYohirQpPrItPZfixoqUuKlyel8qnDLLVmBIwIFylCM4Rt3cKFbgFT4p0x32fCScR42hyqLDJcvHehNnicbEgrBvENrRCrs/SOmrqUjICabMWsQJocaaOwbcjTdpL8JQHa9QLtvhDyXvAgIlqA+tKyhbFmtFDj8nCmZ/2BWmujSQtQ3UzOUJfBXwqvdqa7K02mtGapmLOVp1y3iabt+stU48m0khh/5PLDBRYZdaPp0vRo++bwqWL/jf4roNmGDhB1EomFB+JVg88nP5jlGB7pikn4Z/E4Xg7LuaWMGqtj3bLIVEqug42AslMX5CPCQpXQAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4585t8qf_e2etest","name":"fv-az4585t8qf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1f435615-1789-4099-9073-868496e4dad1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25009","status":"Disconnected","lastStatusChange":"2019-07-25T19:05:43.783055","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"5d964645-24bf-4bd7-b775-f319b995fd91","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzogAu23FuAzic8jDFYmDcaL8l+5aWfMgM14Qmu/W0bdoKQBy4/GUKeEwalm0yMn8CDN9v2IXYKrc/GQuL7OfJxvbx69d26xfD896WhC0aboziR++OQqcLczfEtESzU3EgTY2EOrC/c9CSoNf0rluI8XvIZNVwMh8z3fg9IqKZ6EjGQtFDnt9NgaJrM45WHMyPMZxZD+1LSEnPIvnoarwNlgxr2mmsroitujKJYdHqJrMJFnLECm9WKKplexiirG7m6QpZcx4UjF4ieJWI1Xdl4JeQ+qfSuYdXOED+aVhN5vDaFAuYeMO6XJ1Szpkdyzj5vaEymXUyrH5/QJkMcMxjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45864197_e2etest","name":"fv-az45864197_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3d2462b9-5a73-49f3-a243-5496a52a4a22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17014","status":"Disconnected","lastStatusChange":"2019-10-17T22:03:22.6334199","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8d875e1f-bd49-4cd6-8fdc-ff11e0f2cc6f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzJSLW6w/ClzvwSMaNn8/X/eDDYZFmZV4RfN8gEnZhF7+Fh8mS71jurOYZyXKgQcbANEuouPIazP2J61ZkPsobDN2KX0nM9orhX4lb2ufgeD97CIXPMhaOtBTgOtvu851Q4RGIpWYeaj1mEb8iL3vSsCCugArCPvuQaReAzFqhX9duAO4Cgf/MbtN+pSfzJTxE50/gEfyMU4f11x14ByVMSXMR4vikASlOlI+3RFAGs2spOBnFRTT44D2mt5rHwIzSEK00xYi8Wt7rPposaaA6xeJjQvXjHSdAaFfPDwsCyfePNUPWI0mKmOTDR6lm9KagruJYhe0dN+cw8pRGiihLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461bo3mn_e2etest","name":"fv-az461bo3mn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"febc0916-070e-46e7-b7aa-db7f7a8533d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23003","status":"Disconnected","lastStatusChange":"2019-10-24T00:17:34.951964","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"8cae8684-e127-4c9e-b404-0b0e0f1a3bd1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzxoukG2rmsuxAspu2gUtlocBKuiz5mlD0KGyhKprA84yOHcr7mWkXYCFF4AGHmuSvMNg/3P9MXA7HuCQFrMTX4WuuTatKODFbzIEoZ419K6vKFrshT2iJWaYdjhel8W/44AXAqEBl4ab7fuA1eT70DdY2dp0XTGdbTU3vjnECzRByDZEKFTzKZO+h/Lyo/UjrdXF3haHRkTHhbS7cOkvKYt0ulSK4CIIFY8ir+B50UnVtp3vJyNlUnh0O1WAQq2IjKs/wll7/uGnzANggs1JMUwoM9rWhilspg4nkGJ/W2tFYomcCZSH7BTMHbnwa2V0au9XdPdhB2yd92tnrULfDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.05005","name":"0.1.1909.05005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b1d59121-f49e-4e8f-82d4-d7e4720de196","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05005","status":"Disconnected","lastStatusChange":"2019-09-05T17:13:50.5979133","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ec4c6ee5-6632-4bb4-8845-d3221ec811f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwn6v+Fun0kkwg8dPHrfhsQoHK+Aq1ap2fO32Qx7nyQR7HdmXaNGHbvY01ygYwKIYAsl3WPhibg9kCpAEgffWmNHUaEiahk6/zNUFG6qezz0UN7WEPkg3jBywc37RVQtFmUmhPeCRveZlkKJFjkz8Gi8V7EydHVk0hUGIsgxbyBSIZcm2ZR/653w6bwBR0XvPk09nNIHvR3WJswggWsQslj4RStypHDrh3TdRIax5ybdjzcfS1MG6xP6rH81fgT6Ec7+wPxV1yKTTKNsMgYNv7evzLNrkk1UIbg5ROTUcyWwK6gxVgOpN89OVA2T9zwTJ3vSxw/nJWryHLjJ+CnVJkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4586a5v2_e2etest","name":"fv-az4586a5v2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3afaed3-92be-4b84-9686-e19c07d69ec4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05004","status":"Disconnected","lastStatusChange":"2019-09-05T17:33:50.8535424","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"9276bdba-bbe6-44a1-a44c-7d3e1aebe8a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvBu6PzvJp3PRp0hTb5mEMRuQp5LL0ICP49yxpzi5B24Zj84tGxpY6E/SuAc15kJt4Nzk8TlCR120PbzgPSaEtqWhNXUoRX4mjfwV47YQOKYFrNS8sVlESU04Rrggw/PDchNf3Nz+O/+1KRVBvXrlsu2ANMDEJpP25CrDFyzqiwdpneegTJrFnMSdrYxW6Q6vbFAJ6aomO7e+TdFJ0eVaECuRp7emh+2SPV5x+NTM6WMkzMYP0GqhQRzihJjgTkoyM79wKbwLljDgNR5qYCLLIJxSZSGIC4P2YCRbQwbm5slTJtbewG5Xu9ftKtdFBjXmL9qmEEGBwKlTl/Z1Btwc+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45641gv3_e2etest","name":"fv-az45641gv3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3b204f7-99ed-4d2d-837e-63b4d60c98c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10007","status":"Disconnected","lastStatusChange":"2019-09-10T23:17:56.6025376","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1164dea5-824f-427f-93ad-dc8ffa652fc7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxS6Pli1MUC4CIMYHFTFXI774bZYZz5yYZtwdKFxi5ce3BWpnFtIVASHH37lsbgWbjVT44aWdtAvIMUg9mSOpHu3Dp5nRkKAm4wjaid2ZrOXcJEdn1CtFNAJKz7hZrAVRleoS1evqu6opxcS9fv78nvsrW1wUCZ9CvhXjdxeeddYxL/0qVoM/peb7dZLCptDKJyTsvmCH/YNW2T8aV04pzIAmakJTE/FwdiWY1kh47/MeLp0KVmtE7vAQubMzSiC1J1xMkQ4AlJpV/pwa8Y5lg2OjFlzkoUQ8LNB5+IK+SLY4jf1n76HU0ApyOdIwua83f5AWdBK8aQvzAuvNTuMwYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4677xb4p_e2etest","name":"fv-az4677xb4p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"95e3a604-554f-44dc-98be-01fb644f2569","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.10001","status":"Disconnected","lastStatusChange":"2019-09-10T17:47:54.1720916","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"7d3d8524-cd8b-4bf5-a6bc-6ce87ed1165a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1VXV2cH1oByb6xlOxHbd3TelnCKs0NoezEncbIeGtSvMAPq5pRZtLap1kMANPxulrEJczcQxx1/dAX8VSOJVbC5tx325LhcTm835xW4yocQ+fB5L84FrjdNJmnjYuMArlvZYr1eink1xtudEoephC72hRJRTwPd1hrwJiK6cXc2eMwrPud8cVkwsQsUHQRMQQFL8gvcQkGXgV1CdOR27Tntwd+QZOp9lbNQo7Opk2aSGqVDxoRjPTq+xRtnuNrmRJzjboDG8otTFv6W8oBBEwbSqwX4YXFhlrb80bHBudj7NjrK+2sBOY/7SBova4Thor9CI4do/E+csp1ds2xHQ8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4586pyxb_e2etest","name":"fv-az4586pyxb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8ff923c0-ee31-4ee3-b798-ccc8fde66647","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17002","status":"Disconnected","lastStatusChange":"2019-10-17T16:13:18.2456001","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"1e5480eb-683d-457a-8434-0e18cd41da4f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4H58NvtLu1y7T8QETa3dmLxhhDUSoyT8uEgRBoCPA+n95eiOx11FjIaB0AabZedLQpv7EKDHRSUTiWjJVguygS8CFV2o3FE1ZX6agDSvfcZphlvGwUVo3EA+yQ7i5DIY0BgBTpmwVBOtUL7iwRqB36pJWm8EHvlCWGFU+KBNZsx/gd/6JPWRCfhqjbQGYhFetKMBv1iEdX1ZaTaA4pT5ueYgkkKdEMi+XL1thukiv4yyCAd56WB/rnDXJynmBR99gHA+1Hy3GXbOfRsH6/EuAzOtrbtND+sffQ8vNgVRsAN9ma3IJ+pbe64wERpMeCeBOnbr0BykrCCqtYN4jhQkGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461boxr9_e2etest","name":"fv-az461boxr9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a57c347d-9fc7-41c7-9e03-63b0224910d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30003","status":"Disconnected","lastStatusChange":"2019-08-30T22:01:06.1165323","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f4879cf2-4115-4d2e-975e-7e616f9e7a86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzklaRg+89DgxqxCmFA+atvDMipfAWR6fWfB13bb8OvAvzUhQHyy671qkxN6Bxmz5L3N/1b2kq0NCoWiiPFmQI84pKDCpIUFnJLNfPz6Si2Y+xxWlaZhLQqVqyUf6E+s/r5s2EfYDO/62dhtJRp8HFdBwew06BA24+gA1M2KWEj5Yr7D8lqwF2/+J9ZShZtLOtOb2yLWiFwuTFiFB7TZZwKGfvnupmhy8wpJJKqG1vplBIMDZWTIMLQEqcHSRI86Tv/tqNGccJEiFcKrseQ8ISzqGuPLNzW3xfH3o1Ya1Ab6acCUEhm69Cq6vEy2KMQ4m/BikAI6TuK310d9qpSeE+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.09002","name":"0.1.1909.09002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6bb7a5fc-9df1-4b99-8a23-0a3e889750a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09002","status":"Disconnected","lastStatusChange":"2019-09-09T20:46:26.9389633","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7e8f145c-c258-4116-9ac1-4de424a5a868","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAszJQafwW/e1KIIlPbW1kK/1H06FQTGRBnpKurXsQnylCuERfSmZ5vH6lfKpW6P3BWxM1ILDfVY2Sg3fN21dw2nGeFHpFT9qsmcq00xhzqGfTfCuCSxn/DyMeh8sPfk79v+T03e5+/NMz2RbPIcvaaG5K/3Nrm2fz+YeqY23F9zIjVTXzruXssGK1l5Cmq441GVpZAbNQUcefIhbfYFPJDG3mYlFk3u/PahqZHhq9WUfxBftFpD9BWNz4i3piJ5rtC/DIKhNQsIRAhXppqLlkbos3d6zaHv8o5xa6UwALR3A99toZVcb/YmxG5v7gdMCIf7stsrhZtWPmN4yqjWSYIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.09007","name":"0.1.1909.09007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"91cabc6d-0ea6-43fa-89db-3779ec823149","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09007","status":"Disconnected","lastStatusChange":"2019-09-09T23:57:48.354005","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"01f652d5-fd66-4715-9053-03de11d791d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1bY6uxxWSUCoXQE4Qy77c/D7utucgBM4x5xviMRVLdQV0NfeyG/S/qQMwUeu4KUQMXxwxdFdrfzVWOMXDqrHo7IG2BYdI6yG4kyH9ZCe9MfPjxFVJ0edOpQ27WTfQOpO1AnUKwZ1ps6nnMT/ZgVX2SCBm9UuCQ+TanrCgqT6xLkZ6aWOjYNTR2tC07IjpxJnKdiXo1QIY4ANRGr4K3g5IZYTgNdGnN57NF99WaiVmEahEi3tdIVibgVLt03SI37A8u+jQiY/NNffQgzms1Tk7eJNRsw0bC0KPvwchs7mUVWyie+SabyiLKdMljiOyVXa/v3jjnlBIbX62sMyY+5p0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.10001","name":"0.1.1909.10001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ed3435fe-b53b-44db-99c0-e2354a9f8286","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.10001","status":"Disconnected","lastStatusChange":"2019-09-10T17:27:53.9902037","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8dc619b7-c270-4f37-8e70-c134796a368b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3JQ76xAtivow8ddhv4kuDqsFpGa2C62e7PdT2i4bMLAVisepiN7bB/BuxtgJmjVojjwv/2G14kW3oDHp+CwtfXtxWVa/7eL7/iM7VVxBA+6SR0y211UfOOiH5AkjZ+pv3GsGDaTZRRK61/vh7ZNxrVgFykAwhh1oAq217PaDS8RWlL3SV5cxbRn47e9yQyiTPYEQNJ0ykrn0AZM/4uVS8xJ6MGzU7rN9wBb7XetvMimbt2sbKlFnsq0++hk7apbtZ/F42WB6w6MLj+RZGcHFadP2s7a+nFMvzTpryZLnGID5By0gnxuR5BiV9XyPjrX7u/7H1gvbrOLtLJI6R5u/UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03007","name":"0.3.1910.03007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d3d76c8-9299-445f-83ad-4524d16aee1f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03007","status":"Disconnected","lastStatusChange":"2019-10-03T23:04:45.4280122","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bb5f2bef-2b2b-41a5-9564-7e30500c7a48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtl4EDQj4aYm1zZGRqNFs7pJ3okYW7dsLppb7102wwLeXb4fGGtbd3g3JvEbBQ/it4do1V3yWzxFleW0tsEE5eEQF9nbxAjlj41oSz+oZGxD+iODxrb8OR4E6sEpe6MvM8GFuQz7izXc80VZcRGDFomgdXHLKkSTt9iTfz0CQ9aCs8vFZeawDtr7Kr0K72M6w1a1+JkVCQdjQkccvpPqd9gR5T5M2Fk16S5Fll+WHE+xzyO8vElyKw+Q9GLYQHWLO+8VzsCQvV3qzwiBleLfEGBI4XoO6XevUfZG0HIRx5b3iXp27TLDWde4TYtkXyPTVTQ6nQX9wJMLThTW9sNrVAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461cj47e_e2etest","name":"fv-az461cj47e_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7bfa2dc8-95ef-4c07-9fb9-188944b438d4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29002","status":"Disconnected","lastStatusChange":"2019-08-29T20:45:56.5691268","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"b5508ac9-27f9-40d1-a21c-182beb3c50c7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqb3FT7/T3Hyjen9YZ5cjHHBzseAUma9Z4koSTgVh5tddJOyvnOqtxmig5zVEboS5nnGgZeQ5tOnaju2nclmtb3GzKnVWAjSYwp/sL0xZDoVv6hHf7uD7dMJ4urR0AUCbf8HzF9esXogGLkkhAt/HQkwVIr7Abi/ZGjx/G1gJlcu3Ev61/hVMd7NyKXm4B8HTGiVxs65YurTMlL9c+n1Cdn7vBzLxco3OQJZwbkkEUaOXWzrhVY/QkIpLzLBeuNcL62QA7/TH76/gYJYvHNRn4V+IH81XXIeeroEXQt4FOL66Z+JrcPZuIKPn6dwCRxgS7V1659WT3Ng4eWiABBi1TQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456litr2_e2etest","name":"fv-az456litr2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"545bf62d-0592-403e-99d8-8906833c0f5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10005","status":"Disconnected","lastStatusChange":"2019-09-10T22:42:56.2232882","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"62a190b0-3cd1-4cc4-8037-f9eab5a1219a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAucsqXhJx0uFxuthz+1Ukhs0PgGIdQEwZ/jPl2/u1GaOhdheUZoPTcPSH/QR4gyz8gDPDbLsDNxF/GjLXG8QDCxIKu24SSXzoI6Ndsvny+ZFzPwFgJxD9wgRdz1dJb9Iv1ooCbsjsHXTXh8LTdGmzXuoItidh06yRLZrfePIYJHK8d1ZC/YW6zGkcg8zWKeT96QssP8C8PXvRpggWhFdXKPbahEzl51raV9ZWZCAib0JcgQiOYnuItvATNwfBAU34qSbUQBRIM5qsaMBqFoT43PXVhwBgpccfDdkzX+EQShJOGgpNMV+feE7P1lkWWKsg/5JSCbxnEETShk0HZOOMnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4586rnfc_e2etest","name":"fv-az4586rnfc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0402283b-b377-42da-9515-b8e97e97af2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16002","status":"Disconnected","lastStatusChange":"2019-08-17T00:06:13.7051928","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"48ddee62-d9a3-43a2-8477-83b5e76b0bee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsPyjj1Uu+PeNcfNbgj+k42VKRngFQlPf5GSx6jMNc3eHP8yeKbGhNn9DCXzteTt5Ozj8oFftWyF/3B9OJwp9zaUmVBxlLZHbuPoYbpC7gm6Uqzz6YBzkqBDdAqw65QNPz5RqnDB20uEA+2MUZTs0yToJH9NxvDEZvM7SZg5F5CYlfOk7SFuc5U/y5eWSloKcEZTGeb+mEBBd1+BiYFGbKmogjI/nry99AjOttR0YYogiUN9aEIvknSDJ/QMWWdIBIoU7rpaNNT7jczPx9AEa5u7j76NfmrPHfoHbGT9ERyWcIHwoYo9azT1DpO0kR/e1oxlT+lXollJZwaP2qCpzowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623tme4r_e2etest","name":"fv-az623tme4r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a62bc6da-941f-4236-bb25-92b571ccbc19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22014","status":"Disconnected","lastStatusChange":"2019-10-22T19:46:35.3204007","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"50516708-5684-4a50-aa98-c4af676b5a93","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqZXxHJFVWn2KMy7nWBb73251ynLoYJmmft4rfs/QixjUaXgsiMFdPmUI66bN9sA7xppgn4ejzMc8c6A/DWvt0wug6ad6U3hQ1lr3+4wBHbIm2ru7K0GCo9Hb5AuHrOZWjwc7Pww/wUP1KOMq0JO2GkMeCWmXMMW5DNvf3CmX76gJkF6k/WkvyuIGaLz8yiEwZSu23xriE0wIVdcHoaLAHQFfq2pecfnVUBr65sgRjlieWlF+INkAmm0/QFbE2opLOOCRA/OF/K0mADIeDwCV6+HlPVSaAn0bZ7vFA+0vI4+575ekJiBI/t6fytuXK9RIV37f24ouPXKTXJtBBV+6kQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lm93s_e2etest","name":"fv-az456lm93s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0d1d9605-6b8d-4ef2-ae67-0284c4949b69","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12003","status":"Disconnected","lastStatusChange":"2019-08-12T21:10:28.7090586","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"43fc84ca-ceef-442e-b97f-4e67610f1314","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6d04sRndtQjUsX9nXHQdiqr26bnE4MqBO2Je3HGt8PKbpyqnsHxbZyowbOTh0yXEecPzE1arqB1/h5gYNj23/NVuay//pLwkBtKnbqkKpAeAkY3q5mlhTHLhM49NTSti92JYlg6S2ufIAlF5B7MZldHHCOK1pAdCFp8yKD7LjLld/jed5+piJg+7HAqyYGyXsmrsWQgDuEMxonGzwDbDMmgjTBvb6Tx/McpYTbjnLh9Mgk8vD5R5Fw7uQe8lF8DqvZ1hHEm1RJ050IlWlXX8tP3PWBsmDuo/tp4BMK8r8xTJv2K5H+hHad/3T4+nehQUZiDaVBN0ob5Ks3S1Wc7uFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45870cl2_e2etest","name":"fv-az45870cl2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5e6bc674-9289-4fae-8472-38af07b4a77c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17013","status":"Disconnected","lastStatusChange":"2019-10-17T21:48:22.4050501","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8997284d-3782-455a-9093-c04a5fde8086","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5xHy36hFCa2a8IGVdl4YFqIup6KUF+ZgHWKDc/exKnlCT0coFF71ZgpCGpezFfcFNI2OyC+JZTKdqYYfARk2izUkqSXurWSrjXEKjmGTJ+NeOvgIr5Wf7X3jq+P0ARb+Z+VeNqzPvJOVHsC982ZO/+q5ikXG/PT1tfNhNNI3oTk1UgNbuNOcxU8p8bGUoUDOmiogSRbdrykTgTELmaaqKyObdclDZ7HkKx0BkL+nLcthDok31PXMSsto4tGp8n+ZOZEUNwGs8S+fLneXDsOTsm9eL4BN7BkpSpbtkredSIB1T7CPYc+B49hPI0o7Q+gTtpeXY4v1Fmm370qzDi++swIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461co5ux_e2etest","name":"fv-az461co5ux_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b899ba5-99de-4086-aa50-dfea6605c3f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.29003","status":"Disconnected","lastStatusChange":"2019-07-29T17:37:32.8476059","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"24410cbe-9542-4bb6-82e4-93ab9c1d1f00","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAul3U8CdnLU/O0KUcj4Ng6Wmu4aNQmYfhEqiDAdFIOXZw37j/x6UNaPmdiyGq0NFYZ7apj6ispvyEDBrK4vJaoCR7C1jQvzzK171iOeL+aPo6JBLKEfxcMIhK91y+rGPWSMeM0wpN58nRrtOS4HrbIE4Fezf404hTSGLKAO86PKRoTZ8VFDfhZvy5D/FUy2CFeqkeFqz9UoThNkZoQyHatM0MoH1mv8S3SZslnn98FHYptlqmxXJ4DsYtO79fabdcxgAd3A6hMgrGWwAg8C33j3WOQv0ysaWJatk0RAWY+G4sGt2ujaQvnWuusTarC4MiZllLRRNCEyZpOsfrv8HK2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lo0t2_e2etest","name":"fv-az456lo0t2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ec7be6a-9726-4f2b-b4ec-8ef0d89e0f52","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13003","status":"Disconnected","lastStatusChange":"2019-09-13T22:29:37.5028813","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e8aaa628-a433-4d5b-a19e-a0938f289769","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8fHxGhns3bAKoerO8Ju6VT/zUtnA+7hSJhzk2crUSavUHlbLEyn4f3j7N50lJCyuRahMty2rWWXfh3PeP3JZW2vgt3OPLAyzeAr5XW8/10AglGhnSV0/ueds1SuKuFPO6kxL/uwVf3PGk4d81CRiSVvc7tSRwFdwHdIPpSsjnJLMfh4PdWOiMUV+8e9xhYpRDjG0TRFle/atOU/C44TCZVKOcglWtNL6DLPj4oBvdyIr5fhUkvJbnSXjLsO+qybh5kABr9pM0qSo+iIzAnJN+tEaP0yezTfhTvmiMxtVksKNSXoWBq2o3UMRrNrKCT9NROwMRsUvhq6RQe3zm5pApQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lvbjq_e2etest","name":"fv-az456lvbjq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eae51cc5-a777-4e6a-8c0a-601440634a6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24006","status":"Disconnected","lastStatusChange":"2019-09-24T17:28:53.5143364","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3a880754-a632-4c36-92d7-34384e6bd5de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4kmD4s9zH4OqmopHMrdmX1fiGpiYieHXgigmwSLRaOPidv3waqC3812Dt21b/7Ws19RG67MttaW+tek/funwd+XEgVjyhjp7DDOWlUT4QEI4TSMShDtcw6ttkSOuTzpdxTk4hc72ZAmmJavvwqyagshq9RvvwUjJPebhuFwloi/BMWEjfHClNK3pAh4XHnDhHtZcXyU6WQf3sP9AFqhX9KMLkXkZV2DS/Psyx70qFLv8n4cYSTNJwpCHyRvi60lxUHkfrAdSLiBBMJFYWDF6fHB/ocZp/7a51eG6Jq6ZNdDZ76SjqBnjqG4BJY2L6tnR6NeQcqo6ooGK4bRQk9w8FwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4677yfz3_e2etest","name":"fv-az4677yfz3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a39dd491-7e1c-4dab-b0ba-fca20f5dabea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11004","status":"Disconnected","lastStatusChange":"2019-09-11T18:20:53.6292013","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"cd7f59bb-6425-4f63-8477-8a26016e33f5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuQTavfiIg7bmdAM+1ASUOgvjSlR5Wkn37f/yA7fNS0K8vCeBHfTw3Ea/TgHTaVpCDyizTzqENOvopjchiqwERNNtGtF4APD0K/+Bcvt+9YuyUo7P6LNnfJztYR4vAy8smrMYndJYD8zp7LR9By5U35uF9Ieu61uQ7oRrxPDUvtJ/OokQJAVuitxkwRG29NLDMWH9LGp1VRryYfjzW/xYOX2g2KDUPPHOXuWMJbY0G7wqxDXYhji7i/5v50HIGVDfNHchBn2+0MFHDm1E9P4/pEslVg8uwia6cuN4NifHKnv1XgFwpjDqZS7AREmnO74Rp6MSjmN7fRcOhHrSji8BQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.10002","name":"0.1.1909.10002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4dbeb39f-a7b6-4780-b24d-f58af35bbcf4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.10002","status":"Disconnected","lastStatusChange":"2019-09-10T18:02:54.3097016","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"496018e9-fb1f-4eda-921c-9838e7b33bfd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7EMafkxKp4XibyG/cE/QKMuDgbZTF+PIeiJB83c7eNlKIYnDjbAR+54cLUg+fQMI7udLW0AiYNZjM/2PajFGn6f97sGNQfw/Y3R5CQoyqRcH7lM971npCuAOXLnXNia2BQiIWVuNqdo3tfiKLfLvW8JZpQij2B2U6/W6CsMEHs1v2dq/knWKoQBozxWRsaOL0n7squ/zjkz6uBpbUefVqZGCz6YfrMFOJQmnRJKIWeKQlLTi/wDQgTdhMVej1HT8W3K/uuwMXCwC3VKSjT2iSpMNeG818BZNQjrNUqKoAMKl+B8VwKYd/mwteSpoGbyMpZALSdiD+1dnE0TxpBFmGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45879usy_e2etest","name":"fv-az45879usy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"00eb4b56-ed12-4620-9c4d-8eb5637610a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22024","status":"Disconnected","lastStatusChange":"2019-10-22T22:56:36.5291465","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"5bf463cb-6c97-4bae-83c4-f31dc62d0c20","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuCu0ddY+liLN7wdx6gddyjKFRIROxu9SL/bw6W9MliJb4hldYiR6UmeyNyAwCklCu3mXVCcj1Hz4+8ZoRnloMWcRdjppGAw9UedqsSvwA4iv9aDK0dGBotdO8eRCQAQ7Jt/A8r2abC9WByO7lcWI/4fA9wDI8K8nJus7kjvsnUTCThJgbhxWhDe109T/1/ztEL28OzgMmUCEH3CU62tzgvWvw5oW8t7UKHqdqXZGkaF2halvsssmGma995KFDZyWlyXbkvryp51AEsBQJkh+1KecLBpsAFshOGb/BQqJkMl5VzXQkgH03OKcyssME67zCnhR/I0IeftrXbrtM9WdUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lvq5o_e2etest","name":"fv-az456lvq5o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"637d8f85-dfc7-46a0-bae9-89d4f3538b9e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26004","status":"Disconnected","lastStatusChange":"2019-07-26T01:00:24.8144116","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"eb7062f0-7e2f-47eb-a6e0-1fe11016d5dd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAydxGU+kCqfyvj7s8GM9+1YPB8aay5JsoG0+i0OLJtE/7nu14LSJBoYHy6rYO1VzwjcEt6CyXr/1kvEpobo7jurMshjqh/F7IrgEEctbWTiwSZrRyxNZZOXerffi/gb2yUZU6/6GMgLw2udeW7acCS+LwhbMF5zn4c8mSyqS9SCHj/si2jjVBzZ80bC9aIWCIK3sCMWGiEbOYnpdjEWGYr3ZVJMJrh2VkHGO06jxhCXOKDMXy1jp7Er9S1RNCRPwD3/9SffK3FzfgmLAnylw+K2DTBiwY4ENmZLcoCkpyknn/9DvNoNP7wzR/LtiaxaQdAJLbROq9MeFEF4QP5sQ2qwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623yxl79_e2etest","name":"fv-az623yxl79_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddf40b56-77d7-44b1-be45-90b5c5faead8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17014","status":"Disconnected","lastStatusChange":"2019-10-17T22:03:22.6334199","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"a7e1981a-2161-4dce-a01d-57d514b93317","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvk8a2ePTaZAULI5YafgiMJKTjvE4L1AUOTucWGxQif3rK1SIXlTPPst+uI7BcD26syBacBqZvPE6pfxkPvrPoY3QLEszz6oacUGlwtEhL8IQuxTT7Dji6uAKe6UUuKlPkt5T7C4SR38zqQMq7x3KymRxCkBWzEKsTfFxVYGB0Kv9D2tXgTnirs7x8iq6Ad3qY+mcMdPxez9RoekYPUsaJiEWasWmS216pRc7yNjywLardgaBLvCPAf+tkCNM00tPyuGkQAndyOO/pOqHKWbfzLNYc7OqHhxeVOELYg0bGLVsWdFQaoe+nfnTyPg5qp1umNs1c+0eHQB1Oz3kdGG9UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46794hn2_e2etest","name":"fv-az46794hn2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"29a19c84-efcb-44cd-8e47-d0225de88395","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19001","status":"Disconnected","lastStatusChange":"2019-08-19T19:21:36.803995","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"b17c5180-ca85-42f4-a0bf-dd518b95dcac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnLxrH8Ix7yt5FlTi/WeiX2GMdcYKB97vvfMb+trj6KzZ0lkJ614k43cYJbBtUTT6eyP7JmhH/yYZOGWCm+k0icdWfuV96bHXx8DoLABcyiNKrdW+gol6WOPmLK05xVBPbNJ51U1HOMVotu5M+MTt8hrSiz7USgORTCEjGpTmlPOQXJ6SXG31BFBCA7VK4MPT6RgltNyTNlrpPrSXigwE4nIg60Rj49n9Z3ylUUlI42t6cm3o3vsR3fxeWgi0JNjhkt27n2JwEqzFvf3lQ7UWt+5UfVjM2wiRJKuDAlkd6erQJpoVvKPu3ayL6rG1bijdz/muDIxAYyteSkvagpDPGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10001","name":"0.2.1909.10001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f8097707-98cc-420c-b134-db5c27dc919c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10001","status":"Disconnected","lastStatusChange":"2019-09-10T18:22:54.4763747","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cfa219b0-600f-4c61-abb0-2d8d3a27a30a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApnehH2q3S1l+kGV/fg+ykdcx1aW8OqsLQsp5SbMh4pTf9wc2ZLp+UfSCEgCVUtjwLLTCQXUm6C2y6JvERjag14Qa5XUtbLWzhs+NEOYmhdqJ7kYGbBwgdSQJJYinRurbQ5sddHoCC6xChedtmP/yb8Rnata5tCYhnqhNT/rFn4iNgh+T70Xy5UlEzkIFDLRKRkjl9TCcf3kadIitpbiemGgCHH2366orpuJQgjLh06wBuOCxAPLRbhMkxo6zESWKbNmJvTHmlILVG01OGYeOatGrSjEjJ15rK9GU7EQGJw6OhMPJ8/HRPJBQIPA/OfKB0E2VL1c4Q2P7yONwxpulFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4679ymin_e2etest","name":"fv-az4679ymin_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bc829238-99ea-4ee4-89e2-95dbdfc17523","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17003","status":"Disconnected","lastStatusChange":"2019-09-17T18:19:34.0238281","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"49d28e78-3bc1-4153-945e-856d1ea6ec52","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0XzZHZqSSKk4BofCIcbJMOys98mMqnkkWzc7qJnacJT5KP4zmN+MTL6EN3H2ndctC5Uw0ufQ5X+5S1Fo8Q0JUBgh7mGoF9e2AL355aX//cItwguBmZTR5R7457q7zM1LUtxADX0VQ4HIH8FlDVUqAgkQUnM3nF2GpxYOUYN5pnl8NGPmj2KVNQhmuPB+ABqwvaFV5ou9SjrsAK6khTXjMF5AKHiiLXq8qnnht9pEC5G7hYI1oIqlmVPS0IMcpl440WFBmHkJaDm0fHY8dI0vyF7yDVjx6gmMLZ1HS/szTETf6+L+YaOzFIT7YmT0KUHv4QLKKH6YeHcsFVrkJ7+11QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623z8gj0_e2etest","name":"fv-az623z8gj0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4162a60c-7a03-42ba-a827-90ae80a4114a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22006","status":"Disconnected","lastStatusChange":"2019-10-22T17:51:34.2694146","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"c066699c-04dc-43f3-835e-70d5310767d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzpViHMMORwkeDDxv8p4gJN/luB1l+mRF4VAT1VnNKn4y6hRs2v5oHkqc6r7u1JZZv1xyiqBBIqyf7+G2tQYnlPKeZ9Kw8pfxO3hrel9VvNhZdYujJkUakKFPbkRAODNRAggLi9MK1di5O3PoEypnYW0qk+0ikGBNntG97vECzPKTRr2RBzKGFvuGT71ZAhyqljfRiV44NXT02SvV5H/5bs5HjtXFmPpb6GKRGLoe3Jrjv8UiK5gMtz2Xev4rYQlVZ8iHMWLr2/eiMhagX+wVuKU/0BCTUxgJEPdtVd4HmWFhZKU77Rg79rumLL1+wFvUwQDkLUvlQkhVWsanC0KdaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.04001","name":"0.3.1910.04001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d28d9a3b-3781-4102-b187-4adaf1111e99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.04001","status":"Disconnected","lastStatusChange":"2019-10-04T21:24:52.4186289","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ac5e32b9-22aa-434a-b978-95a7dabe85fd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvaMaqCSCLX3BK+D5+LY/nSlSbw+c1oXkK26xCTG+8s8PyIUCmiwC+fxTOM9X2+85B2lS4+ZlnPF6uvwdVROH/MpR1gHqU/EELHSDcPiZZ9xIHGXyk5CQdSp60aFRUXDVNAzoc+L1gi1zcfYtBzR50KQ5OSkgXtCGLMw2y55/k71gWvrT1PBtdsRtRV5EhRB5Rmu6pF5KNOx7BBP8I+/MjLkMjSxsGKRt2wjFWF3xpdH+k2Fae9tUB5FEUM4pE/OrglatFfjd7eP1kzx85jY/jDB9NBVqJ9lC6FmW0lB0atnZgLgHTu3FKnsHD1KxfZiIaqdEBcHMBlY6T5xSfQRt6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461cp4d0_e2etest","name":"fv-az461cp4d0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e5b49bc-62b6-4791-84d2-413e38cb4fff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03001","status":"Disconnected","lastStatusChange":"2019-10-03T22:04:44.6171914","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"dd317b01-5eda-4ec8-90fd-1de6132067d9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArhBXnzPNopX9oyuEkCd9hcZXNiJGGDgMKmTAsJCd2eXu82ZQfrVY817zeIL1JBp+9aPGBNncmpszIkWrkUgWQagS5TddJRP/CqGnizyiBhsD4lhVcozchNjOw0s5uhqkCUQBVBGcCbpfTaVcu0q48bQD1a14/EV9zVUydKacqI+ZuwFQQwAxVa4saqbTxnvVSDbLC31kqns+j4JyVSOHL9cxxT0lDuBDYVOsIrbFOn4Iz6wJIAZXpsCGjfc/xG4NTwGdNWx+szh/IULAUp0lWShD0GPhSDWV5d5rZuOvisQJzqFdKEvMUz3Lqsr11ShfxrU+1474O/4ZYlflyCy2dwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461d2by4_e2etest","name":"fv-az461d2by4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61bc9d3f-4a23-4d04-8391-036ede723c1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24002","status":"Disconnected","lastStatusChange":"2019-09-24T16:28:52.7219713","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c19d1c21-9d57-494c-a610-7e5cfe871d20","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyUb0QQ5tgP2BruooWi4NMQZ1N8PC9qdgvsV5GaU/5cBZ8pBqmZjCam605mccs69/Nwr8exs7kfAQmlUyA0QNLHB65K+fKh2LIW9hZg0fr9uc0lp2W5ESuJuUDGQoEjcb3mS8EumHGhFUJci4A4gEb8Xt4ZNvG+SAPe3uL+7Xfqqi3In2oqduixM77ZvFqdMR79oQfmJJZtv33Xck2fjImi9qtexD+osE0paZ+cG3AGBLhhXLtqUjCqFMwGs3jnYotn1Bi63UXBwRGKO4rocwcBH3xaDe9+lq8hE6cXJB1gnnZiTusZtUfuQ5ed7PM3ViH4o/Hgpjy7uMIC5q1UYL5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.08001","name":"0.3.1910.08001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53d3b80a-d12b-4dab-a4f3-e8b9312b6cc0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08001","status":"Disconnected","lastStatusChange":"2019-10-08T20:55:24.400528","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ad34b97d-6052-42f3-80c8-3f0843070c3f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr+D2KL5BwI7ZptdBl7nsEXRO/U4nwSMzvtwTCUebL93DPJHca4hx7Gu5Cc3UPCWT+YLYYfAiOLggU7h0aDKAkQiYrck1OWw8h6kkDHvaMRPCY7s+EDTOvzb2tCSwfzn9gUlcRRJXMsTEXu6dShY626gfDIHYscmrdefG2CEKsgV4FkR6T+31rRZZRrDJEj24hnYdMCuRtsphuL3BMqvAtl+wqBdTbt22JDWOQCcnBjHVRpMxAgeDntok7eINL9KvX0qhrtmhman1hMeeAN1CnpcjF7VyiNoQq63zneCheZcSHz99QPHxMa7RYNDZdxi+wPlOScnphmQNiyPNJQkOOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467a2w8f_e2etest","name":"fv-az467a2w8f_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"30f4e14b-48a9-43de-a591-4233c21f2546","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02002","status":"Disconnected","lastStatusChange":"2019-08-02T21:31:05.010805","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"d25a1378-3e40-4188-a14c-2178a01aed6d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1LEi0uazu7hii8VNonF3ADVpF/XaSslwGgbyFp2Ox1GNu3nbWsznF+RKP/ZDSRrydPF6kw/pPsv1r9afx2/6UYOfpR+xx0xdloL3qSqFtOv4mFl38s6EIteKccQ1kXzCS41y6JBu2S5X/Aa6Kih8I5g5Rrel+5JNrSKN2GvE5rObix4ydFVtTG7gHZTUy0/SFCxtcddjl8V1LvwEmGNwiBzhTZIQO12fv5aisEAfhKUYEGnoJhFDEyP7eZNHvJKR3vNmeeoBAENOgn5gFNZlTaEEEG7SkYgR8kL8uCeKm1yGDJMPUff6bm9FYDYMLkLvc5GBG0nCW3qFPxU0268AZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.08002","name":"0.3.1910.08002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5045165c-ea8d-4107-8fb2-e68d33df3393","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08002","status":"Disconnected","lastStatusChange":"2019-10-08T22:30:24.9248881","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"09db802e-2b87-46b0-91ae-a48a5ecb0337","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3ta0Kx9y2tKb8AOici+xM1opWhmOPzUBqMui9pXXuc15va2UNUEuW33hYB2JzWJTYW71Y2/Wabb3OHn5Xzg9OBjAQ4GnexTSKkSOSx+kHieuOlZcAN9tWAXZSfKOCMlYbi8G0HkHRE2+TkqFm40BBxL5TII8IGj0ExOtS3n6kTYwzSdLEShP8C7nXU9ruoFeYI5/Kl9h4P+2VXsjOB6SsJKPkiR3v9sWZ7vICHxVIXjMcn7oOBuLkApY4vx18KSW/cnX7IUOoowMBiGGwpbG6injZ597XP+BRQuTwcLvSenLko7l4YAKdGoqAwVUniiTLBlhaWmH06MfqcDhbTkEGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467aj28h_e2etest","name":"fv-az467aj28h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4995b865-28ee-42fb-9370-8fc6b63dde34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16006","status":"Disconnected","lastStatusChange":"2019-09-16T21:50:03.6922685","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"7d33b907-f407-47cf-bd8e-c35c109afb68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7pkYlmQVUYZltnwPB54NL10GyoPQmcmRskASSa+uVamGtvvvak9pFQIo7EoLm032ZSs7Mvj35hfMfNzc65ChOW+sVz8hk42ouoQQBK6yOgSgz4INA7L8AL6XE2Yivx/zQrk7K6Ot6sPcx4mOELbahVNV9dhygrNAF5h48QZJ9ODIiY/lzSFM11a2svfBM4YrPbTWVMpM95owDiaWNZ+6GCgZGT+mqPBTCujLxngm5l/+2gvr+34oUZrbaYSatNtzHwPsjD/wsNApvtdzjGWIOnBizrxquEeM2uECPQZJseeYlpk/vHHIae/XzLXDhYlgISbGpBvRfn5Lp/UX1sn/rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lvx2z_e2etest","name":"fv-az456lvx2z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23449e66-666d-437d-bffe-c48877c507de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24002","status":"Disconnected","lastStatusChange":"2019-07-24T16:35:33.8091016","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c64b7ced-93bc-465a-a6fe-9ae75e0225d4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6DqRZ2LiIBuaYKEVou7VDLpidkYkOBlOHAVFPiAK1PMaE/yXKDJLuFwc8vSzzGonQL87BK85NdzbIEWZ9ToJC8hY0Z8fN9UYasOQelOLEKqwJS5MLdEGcWQechahW8+zru1tpjm1clNfqifKW0gGR7NZifc+Q0AmkU9ZOoZaBGPDtrtBs3/Wxw+X8PJvB2dwBwBnIfT4RTwkmo7koqb1QtEOuk6n7eq9uD4l6EOAvT0eKy7+1PlSPD3gGRFUIgEj3mUrbU04/ibiVjQH5sXZoKhrtlLNvFSgAVogKMqthYY6f4MqO84VHxa8sIYWA3DlxNgr9CWjhHbE06t1zvIViwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461djmqg_e2etest","name":"fv-az461djmqg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99adfa9c-590f-4555-bfb6-cc5ceddc35b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4611fb64-8a05-4fa6-bf33-49805daff6b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvm2Lf+3xElki61egk4LDO5u7e1avW4wXpvOTP0EhIpHzKMx1uv247+InpujcEFGnpGxlcH7Gg6cvZvFJnQAT1h1TnY84nx8C0mzQTZGlwKQLm7cdNiDJ6oNYsRc7/D+PGAMDTsImmNtVHttBnIKcJ4/TC2VVBW56YoyBwjqiIx94FRbCgHI/5IXI6IyEO8/SU07iwvDADBBT9WQAP7KD8mDWcO68S+SjETgGqj37+WgBUxShgzB2rqxbQ9gJ9OoQuseErZzJkJaZv9RyTVeQ5f+mr7x8pNLocuDmJCKo6GkbC+jWg1SauBzaCOgqKeNnv4hKmaEixOoN14O/rIExVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/testm27","name":"testm27","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e13be7e1-84a3-4959-b222-074a4f4dfd21","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8888888","physicalLocation":"newLocation","clientPublicKey":"7777777"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456478m6_e2etest","name":"fv-az456478m6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"faec4582-a678-4b59-b998-02ec26bf5054","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10004","status":"Disconnected","lastStatusChange":"2019-09-10T22:32:56.0931269","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5aa44fe6-8b87-4e39-96a4-23630cc1857f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxw+xBaWJ0Q50tHdLQ0UKf44YCbD3CYSrezURj3+lgyGGdJ8vwBPymIxBNcCYK+3O80xJPNWtXQt4EKI2UKSOTLV0HbuAMgIm3Ht1Wazn3ad7AZ/2o7lgBgod+KQVbo59XmfjtY5kpdjql0G6UpIdHObakVng4YX/S11VnMxAVl67RJsAtqWkrT/pt2UgXCU8kQlRV5VMRncNFFNrtoVPxf+wE87Kypv0Qy4zmBpbOGEj/ULhyjdlwfLuH08yYjkHMgoYcJ3ynmqAG0jQYAbRovXnW2TJ/Tmj8AyKLQF1SaCFgHeeHVP5Bn+86StWO+l35oX6XBLkZa73cep7OhJzgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461e5t83_e2etest","name":"fv-az461e5t83_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3e55e3b-64ee-41ae-8a66-52beced0e76e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13002","status":"Disconnected","lastStatusChange":"2019-08-13T17:52:07.0145513","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"96be8525-c72f-4ab1-85c2-d4a465c978b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArY+PZdDWEJvUsaLzkXg2lFgI7JdHMXqCEkPsXF2jFxkpfovz2BXPNh7bV4ZpbEtCfNcOC3+zLrsru6PpYrL8r5Mv7VWrxGDjlXr/tpKuBXXk45O3OHVxGmtJO3j/TYgl1Cd5WDac4fN3+sv7mMObQcR/aQ6upcDfg3I4G89l5ouN7Hm6wh+4utXYBnZM9c2yvoZj9gZgsPazzsfh3lATO5lNGuPTBSW66FMbioEg/IJlLy9VEIvGg7RCzjTXNX3sfhX8w2TEF/qQqG7nH37dHm+h/e0s1ongmfTbh/4nrr2N4HeJjE3gUo7iKAGjvOMu8pXIM5aK49tqX3l7bVUVoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.09001","name":"0.3.1910.09001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"42f6cb31-4da7-4b80-ae42-b7c3d4be80e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09001","status":"Disconnected","lastStatusChange":"2019-10-09T01:15:26.2361944","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6aa98e21-b1fa-4cf6-a97a-60f45cdbb80c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt79xlp9dcbFHkNWCTFaEwayR9Ld0fvu8fw7SAT4AQcRn/6YOYWo/H7FnOVgjo98AcvolaZilCbxWs4Xx3Sm36nlfBOuxP2O4RlTdkqbfMJBrJ2JX+5oaTp4YGJKl4a8a8GNv36m6YnIrdwBTqdgTD1jHh0KqOKgNkrnkgnTCV58IM0duEdmxTmboCuJOug7JMZd5Tkz4JYIC2+vwK+ZTdcXmI1TlYbppXJivvi4aPCwvgRPE69wyOlnTO/gU7XX5GjkG5Qxg7Y47x+tdcPR9bt3Uq175U6ThIqIOfRL3xWkTs6qFrf9GXJMzCbHQfROOD9VrOqcw/WAnQ2ATSTBD6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461ew90t_e2etest","name":"fv-az461ew90t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1807b037-500d-4a6a-bb77-20059ff823e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03002","status":"Disconnected","lastStatusChange":"2019-09-03T17:34:23.8029945","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"da2dbbb4-c9ab-494d-8355-f6840edf09d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3HQrY3+WSzU2wctCV4zhSZxWlEEtHENyIqIKf+L92xx5mafDGewEkxqpvmLj7TPalD5uj+3QkxJ5RbSAF8Zv7q0U7TUqx9XM2lqgGq6Biw80TOjwG+tmjLsC/8b7krOKvuyDzo8aVT8Hua2PGYD5O/6kO0uIWK7MKix/hL6JcHclFjyh9HqpfkVvewpiVvjhViot0l1/XpuQQXwPMlnCFpLrAzXpaga3+cy0KLw+4W0npJpTht1h6c0wp4IddCMr8SU2OmQkHcF2iKYcgBKibcf0AWePPiUAUVB2fdNfJt6xe6GTQFY3USWLWyUOVH6n+tlxael4Oa1uuECMJ3MYowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4564pc78_e2etest","name":"fv-az4564pc78_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e17b203b-5a40-44a3-a7dd-64d7dc8d0954","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02003","status":"Disconnected","lastStatusChange":"2019-08-02T21:41:05.3136389","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"60d3dd51-77fe-4e72-b13a-2b001a3a54f9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzO/1fVGMRywl9yeonW/bfGZWgCb6yFXom78UlzutZyE+F1A1HGNzqRVIR9PGpNTtAnJ37Vd+r+LdmMNI+B6+rrE+jKOY07DqH0tU/MaWfDQMK+Aq9VFjuMijc06Ney7JUZ/n6bAgFrJgHT+q4wV3kWgj+bTmG5MmzrSZWZj8nLfDbRqiNcQLaM4HPg5tvey9FsX8LRfte4IstTb37HoMFcPuCLNjfcYt9DfQhJ/8y88gpuc4LO2K8ENzcHDIfDyrZgsii/qEr1XB1GnNq8v7bihqpTuJsafwlWH3eJtSbYoIvwxJ/Nv4dHmsN+kYaNZJFFShNrCzc2GoDAJl1744OQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461g7l6x_e2etest","name":"fv-az461g7l6x_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f28e4ded-736a-44a3-8f4d-a5ec9d870064","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17007","status":"Disconnected","lastStatusChange":"2019-09-17T19:34:34.8119423","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c53965a8-79c1-453c-85f0-013e12bd0b0b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqBYJZPPV9SCeG6NxvEGA9+XZjgR8TJ+uZI3eIqsY8bsmGIxZtSOICNE8bdIH/bx6veXHBgq6fuBjAYs3e27VSIGBGiJfjsPPnLv2r/m+1FUFF7OQtg/y/1HtQdHtG+lMdG7/gh0r181qdXgaZ1s6zVR1kntZz2YXk7k8Hrxydab79yjQeMdCFsOZ/XPq3bwmNOfLWaHh4HHipcCmV4IIzI6/b/tG0/YyPD2glfgRm02LTWt4iYLON97geut0EcAPR1XNZlPzKyMhMGGCOVTHoclu+pl8y33I62NHDEbJ1d5KFwHDEi2zR+ANmjAzvYj8hsCOiECKCRs2c43DTO0f+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461g7mhj_e2etest","name":"fv-az461g7mhj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b3e8b6b0-2cbd-45a6-9225-a9e922e9d878","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01006","status":"Disconnected","lastStatusChange":"2019-08-01T22:30:25.2899063","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"0293414c-25ac-449b-9395-fe9ed369b709","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwnwRjU+9I2yBjOIUPku43Ra6u98j4fX9aDkPgKXzHwezS0Hn6H/sQEmGczXw8Es6IR02pmIH5BMkG+WevFIaqq9vDJgRGIYcAo7Qqz2YQxPjFdSio0jcO/AaSREiZLPr8lANT8UwTrZEKR2Vi/tzf0EUO7ugnyCSDOUVwG3cukNrMQ8ySjoQ3JIQpyJIUEBMU2Br7Ns+ZUUUKrQ1Qia78l7KSrYrucxtMPm5QIr8qm4fYZDvccOl8My/J4c4Cx7QOGj5b+DuEsz3oqFKmDKfJKZk/7M69aj/MSzLpQPREFL5BWGnsdhCzwrkfYyraejyVtDJyoDfYRCQHxcKFtidxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4564ta09_e2etest","name":"fv-az4564ta09_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a63ffdcf-380b-4c2e-8628-69adc7fe950d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21002","status":"Disconnected","lastStatusChange":"2019-08-21T18:41:13.1549698","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"156d769c-ae38-4d5b-9e1d-c98b44449c7b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuu1DPXzahdMBKo1TP7TdRJrw2uXtw5z7ZSxkiKgtT7S4rmMpTqxgzRt/mvN0zG0A+jHeeUVvTRC+3vRzR40YdEwJtynS1Yg9/hkWCDn/B1NY9cC1/syr+R1u4ua3lwRBm1U4WnfMFdcJEMEYy2kY1YaaKXtNvVyxWnw3MTKJyszd8HKxNCU4++J+9issnOL8Ctt/ezL0JKaIeOQ44XH06/YbjIdegHQWP9PgY2A1sdW4b+qXkZQR+wmoZaHstBHUxGr0funjCoQKh4bd42kw7rgo0E2wcTngM2FONxUAYwtIlWS1kb8y5srZvdngc8ZCxkyitwTnhIoLGfUselMwSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10003","name":"0.2.1909.10003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b661f5fe-de76-4ba5-a4fb-bd94a637b32d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10003","status":"Disconnected","lastStatusChange":"2019-09-10T22:27:55.9615849","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f6b0692f-cf07-4a1c-a5ea-c9247aed84a1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA27u8MjtIfxjt7GDrTyZ0Ew4FXpWGNFfq0JJXlmpvuWgw6XRv+NoB60pZTJVENcXnCri15IxkGrGvu0B+S0KbU7aMxbLisQSUvxhWFno6I3DRsq75dpyIMuq+w/NlgkyeoLrA+1JkUSsv1XxD7VUPe+31YQQ0q+6+CcNTNMWOEhduyjfzd7YXSbxKFn/Yr7D5uNwgIqfX+2IRu8MMhNYGpnqP75X0NDG6aGS2QB1LCX+B3ULibFB5YSEwOeY8A2oJx6HCcSIYLg+6GJFrf9kozKmcAprm7fz993RTsC0J7ibWWqCUAsIeJvONt7P2/l0e7nIbGiMgDOfV8BssO0Mx4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.09002","name":"0.3.1910.09002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e1b195a1-952c-4b57-b9bf-b74cc9131179","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09002","status":"Disconnected","lastStatusChange":"2019-10-09T01:50:26.5038926","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"22e6eec4-1989-4e2d-bfa8-daa3ed241c68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtbeDUqN2tAiqlE8THC2lG++FMh9aEtnKuJ0qsPXiIKHxT4UpDIFeVrsXgonEbHD/zESwmyGBNYJneTDsB+nOeTyqL3rkp7KJ0hrFyL0tulMJA4n3vtsgVdqkIArNRSfeTZYgdkEugTfGp9LGII7tL9O0d1ZtUyfpgdjNMKcl2bFXhelQcy2OWSDJlMSVZMuaeCtDMYzOTMSo3/KudKTbTb8GjxG9MZx7Bn4P43HaCzmAhR4K/h2fwubt+yARZJ0uWTj0kVDMESb6Dfjma1TFwT7zKPklN9Sl6QEeEarEP+xRL3teXGUy8xhw5uLcU+4RvUrzroRhg+V7Qv+oBMTqxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461gavmd_e2etest","name":"fv-az461gavmd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b32a4b2-fb8a-4442-bace-27c95231649d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10004","status":"Disconnected","lastStatusChange":"2019-09-10T23:12:56.4875597","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"48a559f5-8408-47a7-a793-0078ae066dc0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2Cp6JHLd67fx/5Ld0msDcT20D8nI+gOqcAb+FudOCcULeIXUaXOFkhqW2FQvq/eUjXvej/d/PY426bOlAEsV6/zL47bJEHPMR7g9jX1xuj+srCasvaavc+9/tx9rsgJrFUMfECMkUuIGlW0+CeViomLv3mGzfxgYrql9Qnn4aWg8C2UzZlPcWh0oPiReOtpBOqvDV2zDOY3KUNrvBLtOZDoEulEY95RlILo+ki+IR6r9PD0p9fkwcEcOMc7iM/fEdn3RwuyBpeILy7vc1A4RG1E73NTLKRoF2YTMskCKIOkUG+ec93MA/nSR4Ci2vh2NovQ0qpVcIa9cMOioafni7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45650lxf_e2etest","name":"fv-az45650lxf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"678081d4-b245-4df8-b665-db68cc7896a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.10001","status":"Disconnected","lastStatusChange":"2019-09-10T17:27:53.9902037","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7568a38c-7a3c-492e-bcf1-5aad1c1f2ea0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy4rUeh9IFfbPOUPp4letdm+e4/oF++PKDtWo4wUcJTcQcHAj9wKF23cDnNv8ILzKDLrcotyj+OVXJDoSYgXEUeFCK618s3v5tqAb3BXiCie6fHQ0QJdAs+AftbSn7z2ktHZxocA1BrgrnTbF2Zahk6NHGeo4YQKkwvZwXTleuaEOYGecJXH/E406BlVshTgwc1fV2NF1/oZbWZ+J2WPExiJWqrmmK8D9iG3uu0R+/xqRf+lQ+I9yT/2oOhwK+GTDNSNBayJDCo7ShUUsJW66aoERWAK/nf1z0rvI6uj+02dnaWOQ7DT9qpFAzNQIOaPZlJB2LTHYfy2DfOOsjZp7fQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.09003","name":"0.3.1910.09003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3f78e912-fd1c-4e6e-9350-50da66f63f99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09003","status":"Disconnected","lastStatusChange":"2019-10-09T18:25:32.1981456","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"80a4b380-6c14-4517-95d6-6379809ae506","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp20rK9i24OTcWUATKJUN014DeSf6ortlzOhxAU6b4GWNnfoXJGnAUz1MfGyuN18snguuB30HIaJ57j50z/LRT46brcSOIl2VnJ+0fEgYvVhdSWTN9cWOIHq+J55uc3GAvaMGAmYf7OzSrcoLH/kUVUP9yXpTpd3/WYPnekGn+6yIW0fB7N6Oz78MhrBVN+5Hq+LKRAXLUHI+cwf52EECMC24aSrgv6esSSJZGmeoW+RPQqijoD5ZBVGG+MIR6cGS2HMMn4KDlLUgWX+puacvO7m9f0Idsv+k5yj4KEQGub6gSE+aGRIP3Duxm2f1asjMfO/vtKsrFqf8B7KhbZtu2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10004","name":"0.2.1909.10004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8c4e74bb-4c45-4c1a-8458-a92dafe42faf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10004","status":"Disconnected","lastStatusChange":"2019-09-10T22:32:56.0931269","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ecf1db9a-2e95-428d-8954-69ee1a86da5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtrtCaby50RIM45+JilYvtBddeeseh/VYVQl0XK66QMWcNRHrQj9jPy2l5Cf8MBAM0aFv3kXIGbOVlmbLfi5t84sKfYOXSRRWbiuBBHEtKW5nqqIqRz6hp4d7J6qFi8E6VAhspG1k604UccpZJ6Jb+X4OyoHl5B+0DVWh8GUl9sbtpfaQX2RqO19qmK7g9LPoU7vZBV/RMuqfyMJzc1OLwZYuiFc6uAyiOXX0c5X0N+VYerVHpx06mV30wWl+pcyIH8xG3Oip8kUm2qR4qixQjh572TRzsSYs5QgeyuiE1oSMRONzkwSbPM8GZOB5jSHlDRaY3xlEsxd3hGEpzQmWmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4565ekz3_e2etest","name":"fv-az4565ekz3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f0c77903-b6e1-4d53-8f1a-b794ae633f0b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30004","status":"Disconnected","lastStatusChange":"2019-08-30T22:06:06.1981756","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2a2ec17f-26a6-495d-9052-5cd735c5b039","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAucbY2WcQuwUnqhKAB/fIkW4d3hNiGQ954VQioJZ/ZcH5HYGZxlIXuDABw43DV2DonK2DRFDUHVh3g6uraJcLfD6jNpSNgtPX+czf+0V0jIwDanWHezY6haQd2iIYvJj8I/WO2Bu8VGxNG7PoPpVUcZ5Tbx2hN++7uyY1mi0ZfC5RsmL8tucRt2lDyOzqewyAB3mg+tQRYYpQE94cCHm9iftKaXCjLf2fyPiSej/kGGD7AdOJuFB59HL2+trcla0bBTLbfG5o3KZYz8oxTViahr8K5lfiOCtj/QDO3J1tfujRvnEamsSgwLZeRu0zDjKIiNxFLyWrhpn3xi73ifbPaQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0dinUYghgUSqpjOY1kuTQhI2td%2bAOMZKgxGQl7XqfvuOZJ2KLO6583MvvudtUIlz96CqXTuYvg0YrNbpirAU4sF0UHZd3U4ta59VmRR7UXU32euhETeF3lvtIW%2bLRtWd0lVr5SPheq5fmNvxJDPdsVeYvudOTEG2k8IvNs4mt6260Ue1EU1rzVXR6FZvu5v733mjNoHe14dOYKeiVJVov2e1Mo%2fIxOK3xB5OTNs3bWLWjTgqcfr6pd2peq13oro1RtTwqEFI17toDQf6P6FLHiL%2bcwa5gHkmXh03XSgO189w8DI0iLNcI2noIlovgwu0bXT46ic6WMbh7BHReDRyxuhFcU8CecfVU9kCZcSPDRLRJJ6guXeBnpgMeALcZxEOEuEZLpOe48kUG%2faB9nKDCfScPF5DOg23iNyPnM01Z8svOc55BvAEoaRofQgBKHaAXEIOKT6IcgjQyCT6pZmGZ2CgFJQBKIymLyxY2SAxSPlLChELE0jHkvA7CGQAAc7RV10CKyOgUMKMcpaA5kGCDjISPSvnCHGhJDp9ntTxVwAYRQEizy%2bT2I%2bfAVOxW18aAgaaYmUIkh8uLCR87J18Q5GarJLin2QXDffqs4IXzj47%2fxc1wuURwwv7MwoH7%2b9%2fAQ%3d%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_CENTOS8","name":"0.8.20133.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b39b173-1f9c-47e8-a07e-68d6dba692ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"88ff7074-6b0d-4702-925b-73a476476876","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAuKJK7xRM1aZ0XAIjX7N/OsToTVENo5imPML5JABOoMT85q6lrIRWcKvdBzyu897KLBW8fS9e1rfhv6qf50wu0weSwE4RDlWJFvwUFMiUz18kv7+nYRcGiSfl72kjzCaX7xuvgu3kzE/rErhjZizsypiKRTRHAUiaZBI9aSVmQ0bnF18OyXvAWbpNH+XIriYnYMC2qKQrAoqZ7zHQI0dh50Oqw0JIKG+px8ZROkTGAVL1VMNJIjv2ubltU3diTfBfD54wpUA3ygTpPp3Dcz/8FLsKDPC5JMRkgmMkCAFw2UcR1tEDYhpL+GhAL5mQFhKNdMqjuWPtBJ2RqO6y1VzrZQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSF3gtar_e2etest","name":"WIN-LREKSV3QGSF3gtar_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"65078a77-2b6c-4a66-a0ab-96022f123586","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"b39efb18-f70e-4e04-83e2-dc27ea5cdc0a","vmUuid":"3DBF8104-DF41-4F7B-B581-68E911184417","clientPublicKey":"MIIBCgKCAQEAv/HQ97egXZ33VFKA0KLJjEw2dNlBhma915SsjLuooF7SUHGhmz7dlDUwQqskqETeaUH4TUty4xIEsPldZ/SFO92zRJ5bVH9jp+TJ87hQKujXWpTJOfed6KIlUIbhDqifLUAjr9OFro0Ha7S+Buiznx8lWLR4Q+MgrVMP3QBaY/5aGHnZsFRzOAQ/0JSo8BsYsdIGQpDg4bLR3w5V1Za99x/nBaBxngl4qanB7QahIqQyfIWVQbBkBIxLDATNvFoAgrB2o8SavIssawFYf1fYSQZDGBtUnw+3rjyOreGRU0cShLiwOVilMeA9OxAib9XEbXiDDh1mP4uGr2cqfFtN9wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFk0h1m_e2etest","name":"WIN-LREKSV3QGSFk0h1m_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"e8ab179f-bf81-4120-b4ba-9faef59e1034","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"9262b0fa-5cb6-419c-9734-a5931321e443","vmUuid":"3DBF8104-DF41-4F7B-B581-68E911184417","clientPublicKey":"MIIBCgKCAQEAr+yeeD45SUhEFMF90vNy8f/Y21JiYA+rsH3X+V9RQOuSUk4nN9I5VS4yyiS/ZMzN9X2BWC0rdBx6lFW6M3Cz2aHKtJvzKfitcAgm1MhiCejxf5bknKBUZgxu37Pls4715kAFhdhkghNB2LhsDcu1CP2de34LgLx7P5xQMkEyBpatyLgcyKXdMzKN1QJaab15DKFc0cjn3s2R+DHmQoyEgxFDbpn8PnhU/UZJG30kfrMnMHyaWJHRJeJ4+LJGGki4batwdn9ZL5oZk6+hUEcW/EvZ2j8Nmju8HLhEEL5AGC3/lpx6XcpRzulsVW1S29oFO2MY1SxWF4r8acylKrV7eQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFqgrwx_e2etest","name":"WIN-LREKSV3QGSFqgrwx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c03d4548-d962-421e-a518-24bc78c17691","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"69f85757-5e12-4c3a-80fd-642b54bfd296","vmUuid":"83D5E96B-FE12-4876-8E23-4A154A67EABB","clientPublicKey":"MIIBCgKCAQEAyfVRl5tcCs1W0yADsRU7ErShIybH17yte4U8UAau+TEl4qz2st9+5i3wljP8VV4LOgnt00/Q68IRkaiBALIjIVGt6hHNptl3JtTaBaVcQaVM9eh0TNbJGhNxdROYugQ5TJyNTtgXLoBZoGWK1GMDvymT4FoNA8woWPxXCHxOaRBgnjGgEJArf9+WMDIRUabkhj+p9u1D52OQOZrp7AWdMVH0GKPm5jjjQMEohqILyOzZ9EDOyuetr0eLvh/kKfp4OPtpRW4LlsJbk8vNsYfF06hSQA4WH8f28Qy0VVcgX5tZYbYXwy8s7qTFsJZNQH7dv9tp9vUheCiKblDtdbDgsQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFks0wz_e2etest","name":"WIN-LREKSV3QGSFks0wz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"56f0e5d9-365d-4445-87f3-aab1f1481c4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"8fa861fa-881e-4b65-8f66-af9b0d28dd00","vmUuid":"83D5E96B-FE12-4876-8E23-4A154A67EABB","clientPublicKey":"MIIBCgKCAQEA0zY2+YMh4WClDhLBqZTLOUZb/cM6wtIZpvkAcpjxYWz2yVrWimBWszDDVxzJ2B5SYOl55swwAs2k8jG37/iXv8xW941HZZCP4TUMUmkOoPE51FPA7R6bNONmlEz65Vvvq3ymVI3/UPcAZhxVEFbTr67jfy9JqWxaH6Cn90JmzJsqv4PLDFRpIW2nzeHNVLYWySz55koW6xS750eLwA1ExmVBQ2TgvSJcVQkPKlYvxQA+3Gmr13nH4g5hIkz9Hzgahgl1/B0gtN+Q84BxEJQ8fN+V5i64li8aoKTGuY9Hrr0J6NGT7n7iJmxKtVcMv2ReqUvC/d7cLknp8n8y84QfDQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_RHEL7","name":"0.8.20133.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4349bce2-16f8-4841-888e-c135608ea1bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"6adb3c07-0bfd-4cac-b92d-cee71fa91ffe","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAq9hfyzrDOQEIKo4/avrXo0aGjj1vARLpZTOnltW+AfYfAW4LXcJE2qjpEk9As6cF3W3n2zTYZ5OWyzsVq2n78DbikibmP0y6M8eK3gyoYio18w6bGGTDHV1sqOZikOMzk3gjmrqMcCmk17sB1k9c2ki0inDFyrSg+Dag3S8ZQQGwNPU/yXgwyXUsa1ucHgwCy4bUj636maPqGQ6RD28dXQdsBaSaHJChILBgAwhteRLf1hyMAbijg7K7CSzbQjAgzUxNXFiqnuDFXdOuttsyapmI9ELpRh9VS9RnSHQvN/4EraaAdp2wUjozcT5J9KhNQcbQi7bIPKT6yDYAsCQH0QIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_SLES15","name":"0.8.20133.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4ed4782-71a4-47b3-ae39-42d445c9fa86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"b6fdd393-38ff-4e2f-89d3-534be132bab3","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEArC7gude1TxxxN6wykFnHjzJc5L2HlA0GZ5m+1DgLUN8hQfdkvr6DcsLZn+5FwlLBqMz+XycUSTidne95PI6NfQSiSWH5zDcui+1KOsEX4Om/vQSCaQgCC6xTCCwm+bB/j4D/snWSYsP/pTWVUtWQiU41W4KRSyA2JpfBI2y40qtpwIx4fA2Jxt8FgF7aCxYFFDKZfsRgZc5ZCTVJkEEI/GppqVKeKABzxy9ps0Hq6E5FfYy9YoZtAycebQjImnRSDCFRxTd7QxGxDdwfJ4jF2Jxt5Dw3tACkX/+RG72g4z3KvKL2NaiEjotSoenzVgc3FdjUrue7T8WnpQpoQlwN0QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.002_AMAZON2","name":"0.8.20133.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1c7f1c37-1326-4557-82df-b72135610b86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"4b8eb832-0b22-44bc-9041-22ebc0619ff1","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAyV7fPlye5n349gYqpzH8xur+7uDQj4GR5WH3Bs9zO2+3TszvT9OAlksnnpr/NnDl9+zXL9SU+ww6lTtLYvw5Kg8gLm9S/KfbvU9YEShPJjGS5OeR37kw+E1j/6RIECJ4fcfVCLjx46rOKhC2ML4dh0DvhOeLniFTBsCKFSyoKElu3y4sMQGnvcFN+TAzzy1aiF4Rj/frIZiiV3mdS4DKTYpxBgTe2WTzhUKNBN7pJ7Yvq4LzYPnSZPYtohlEf+7PlXXM6ygVJuTQyNb0mdupDvyOFBQPPHIejO1P3YuMFx3EwvVSGiq+FVszCH4L9tN+IIqtVuzS+SoNyMHM827gbQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-19yko4_e2etest","name":"George2-SLES15-19yko4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"18dac130-8f26-48a9-a2b6-bf11c85ba842","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f0fb692b-6e5b-4e38-a3b0-107cabb166ce","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0dmVlPu+WlCf7e72txVlyZI+aY845TOcmwzYlT8zD1ZGhkyIe19emcwRKiiG7eWF02+yPUWO57/tCEEqr1gh5pBooPzQugycUaVwPdo1uzB/yw8yUDHr08H137XcH97/VWT6b97D2p6EnsFMK6aPTf+UykeJmrzTeI8/v9ZEHHOe2Ra4/XnGmiXcxMewep/qj+FblTyex6LTjQVXx1cOKL3tJu1yFnCDIfcGFzhW0yIIbnibjRtEXLBk+qGU8AXBVB/oNFG5gBBT7IVqIlxInh2aetrlnWGIInJmeiR6wjTjR4W5hzJT73xt4hDm4JmtCMYXF5cCkzDOdZuTCH5v3wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internyp5tz_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internyp5tz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"627bb7df-14b2-43ad-83c6-3a50b782bc09","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"e5dc081c-3959-4468-bd5a-b05de29895a1","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA5xqVoCtSa9rWQpV+YkRnTxkIsiglEe1YvtX13Xzph0h/NVATzW8X0YCy1LPf3DKxyDmNva1H+Bv7KMBcej05ANWGS7FaEGrxOxcVlZ+Syzol8wkkzf9uj8YayM7kv6Fz5FchUWeoZmQnpzSeinMfoDJmEKJXCLQjc707TuHMgLLkHxNv6LUjH4408JLuG25zo+F0QUCLqw45yFHKk4koDOkNRckeJz0IKN5IHE/ExVHrMtss91eJMtEo8hcegKDd2U+cGfrr5yLYzqgm+3AYTS/qiYMxx8hLA4La4esB89eYCwEwmWVI2nbzhebG2yjSTiXafdzJStMpDpt5RrHYjwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1y68fl_e2etest","name":"George2-Win12-1y68fl_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"5b3c33bc-3320-4793-974e-d77333d316b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.001","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f3b28418-da06-4df2-80f3-6c79ef22cc91","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsSEKGkqXaUavfbV1XN6OVp98Pfj2MdWlmel6LA70n0uQuf+k0lJ6FIQCg8A1VxqER+fGS01qor11NkbRYypO6vxoZ4KMAzOtjdCMaBD6mrwl6VPM3Q1n0R3BM4igizRMJWLzS7yv1MCe+GiUV5rvz8/gcNCdFaU1JER1gkjVBjJRdQsboX0i0i0n/rpOg5jbodo9IAETEPhoJ890kU5FJj7SBdM0j/ZCzvnsaCsQuUWfHndG8DvGSIRu094zQm0/8KFDq+yngIoycrTzf9HDhkQKikbfw08g4k/lZ1VXXqEp/FtYb7hYMHANpcuh9lH3w6JfbyLHFzrEIGDPrBNfTwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-15mt3y_e2etest","name":"George2-Win12-15mt3y_e2etest","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"5eec18c4-d630-48b6-a94c-82edfd6b502f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8ae50ad2-0c71-4ffd-9cf9-6a56f61981a8","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA+dnYlvXoGHz/DO5VTA5K7CTDEKxqoHV75B0HS3h0G/HTPjt5jmSJEpxLBLABHZ78yYcwumv9x4T9SLT68MM2lj/RkJq4KlA5voN2ROIbY0ksB7cfxSq7v+EEw+u6m6C+usWVq+4NIA5+PAMt2DP6KTuWFZpMiIAvHTn6B6FT2xwG7+8aQoJ0QBPTgZ1X2bMUrpVcDFBI7QC/Fh6flbsrZcr65ByQN1xQyPJ6gxP88zFh3eQ4X7f4Rxz0yAZQpCOp5h8NxVv/NfRuqE6l+EZROCcMYwPxC/ftkeaUDzcZyl6yVdvx79TLGH2rtv0QfSx+hpmLnbNOW020RYDweZLPTQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003","name":"0.8.20133.003","location":"eastus2euap","tags":{"AzcmExpiresOn":"05-17-2020","AzcmType":"AzcmResource"},"identity":{"type":"SystemAssigned","principalId":"c631e812-bea5-45a3-bdd4-0d346d57ac69","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"80bada80-601f-4349-8470-3368e4ecfbff","vmUuid":"5103242F-F1A2-E240-93D9-EBC6063CFC65","clientPublicKey":"MIIBCgKCAQEAu2nxL/NUCPCgfhIuQnSQQgmQWbhvbC3LYw4h48Jb8x25+4X4nfT0KP3+0MkzGN/1SqwovUdqC8BzDFNpiEqUZTKfIetSXVv7a/GkUxWl4OG9aJhQi750saIv0Ubk/fx5pb60vPjPW0DA5vRIA6jsP+o1WYI5zvKLc7Quh+rYvNWYksWake2HI+dqKOOZsEB1d0QPZQafzHRZ1MN0hGe6gC1dGZJ9v9hM/EN4TfrPZK92EsqRFf0JeqCnpmka1+UZwbB69v6js5mWlyrpRfVFCwaq8ToFHF6+xPp/cbBsdSaGRrvvKW17LIP6hyY4taWDcuC/yK/9QlrJRBEu5SF5SwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.tneh5hs32a2ubie2nppnwrrtfh.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1ilh9a_e2etest","name":"George2-Win12-1ilh9a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e492660f-ee10-48dd-8f2e-ab2896e83ed2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.002","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"01123a85-996f-4d36-927c-52ce8f6fcce2","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAyHCuT34QmfDAcTeYD1lLiH92MBkAdIVHVd1Y1qNwjphPiYqZCzH/Q8xW1Cn47DooX4gfxc9sMbg9DXY5HDMr59s/zVBGr37JWPxIRFsC91nd87kPhCRteNLXO5XleiE0IdzoFtvHGA35rntBuh046sObOBqTq2UI0pm+ISmQf2VGBgyobJZa948z66rKj4Go41DFtqCJvHASmDMulwPDhKOfeoYYz8PJbIRvthITSVsho5PLEkNdNDgsFhA4br9SKD+TSXajXnj/UlvDbqhCAurdrAvB3PNQWFP+5sFsXcjPt93/SXjp78h1yR0sGs8Dh4VxuyUt7E9bWi0AFiP5AwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-14vdrz_e2etest","name":"George2-Win12-14vdrz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"794c806f-35ed-4720-ba22-a9a0a70074bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T10:02:55.3149466","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"dbd39965-9412-4fe5-a2a4-048caae4f641","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA6fgry/2AGAfcW2WSruTqY96TG1Hgy3Es0MHXuMqq3rJ6A6ebIqzGNFu01+Mha8OdH/48tD31w9zqrqGqw9FpK5sjcixmOn5/P4EpF97rc06ZP8Xk3MBVh0Ib0iukG2kXi5wQYMCt2VZhxEoqfxwEncNzS4AJ4VozhZ+QeBoL/5Qfin5rx5jF3bnHAZtn8ju8Sbj4rTDXJlYmTX+xriVDJCCefkSrF95RwmNzJBOtq8qoOWG0wKqbA8dlLB0dG8svHFJYg59a1inhQdiENJk8tNLt+uqPCkTOOsw2elXS/66O6QUWo6vPQ2sGdOg/JjFU1kU5DHZch4SEl3epqKQKcQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.004","name":"0.8.20133.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"efc8acd6-5ace-4ad6-959c-90d0af119da1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.004","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"fcbe8edb-494b-466f-8a4b-24514fd8e625","vmUuid":"A67FA963-15BA-7447-947F-D5C493323538","clientPublicKey":"MIIBCgKCAQEAs91EuO3RDJJUPEpsfQjqYoCwA5AFBPUNWmxttb2JoYnazGz0nQ/yqBOuMygjWfazlyYpCaru3+z0efGY6T0/LdzZJVrCvOd04SHRcsGArWVkW8FMfB0w1CeSsbi4aUsMg1+ERK5WmgzfIZQ4gAC2z2pGggZZP7kQg8It/y6A+72nTmk4uXwNmFk6eVQ1IPxy0bbB6h4X5ZNecGsUibGYEXkxIp8/TMeawgcY1UkOb1dbqJQLyOok9755sdEBB1UkU0LSuS6gLvCK6yHrtZosLCcTnZtQjlnVSvTa/mXSoJzfE1W+HsYDWpp4sPCMfQIHoSWlTBJr7huTpa8BDWJVawIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.ef5nk0um5skuvmwa1mcx1kwj1g.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_CENTOS8","name":"0.8.20133.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d6746a79-5eeb-4d75-8a05-ac28fb03f59c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"1af0a676-2755-4a8c-a61e-f8b9c6026c2f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEApiUBb+EPFebgIGuXTuYAmmZUiiKF96IKAkmBCrvCe7sbEq+gPGWOPOqkkaGt+RbUwFam67b5nzk15B30ozsPFy69mDTgGWJ1jk4JCZnl0Pp43nUGoPiQTK+dTC0QIyTZmH1anqrpTGrtetxN8vzz1LCOHgVdiMT8DV4u2WWIK3z0HbzkDts4tvtbhcDb4kRMMLFJ7GmOrhm8PaHV7K5pdadOMyv7myisW5nTGHezKsYSx63l9f+tnWw/JlxsMHD9vzXyoBLP97ctKx1nIkYNUfW4sEcAwD7R3dZxOHRgALEmfvcBTzikY9C4y1HLRGh0cVJzr+6bEy2sgL/niSkOewIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_SLES15","name":"0.8.20133.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f9a745ec-4ae1-4757-a05d-a84a321ebe11","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"c1521aec-7c12-47b7-a78a-9b72c98f547c","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAqFUILhONAxWNecJ+OAPUx1z2/w9BqcMzzCDSrMmubYBJTqjRSrrrhWIZM70fPwvXTXWQNLAzxsgknBXQ8DonEPH3jt3PJf8BazV4ge72eybpqAfZ1nMhW2LQXmFchWyYn3RIsr2aSHHguxOjrLRZQi7gb8p2av7Dr++hytbpnpvdA5VTckOY2VwvhC7bVHIRa/dBPZY4mGTRrRwil3PdD3LxOxHVxix0WCWniWf1mdNeNjz+7oH8vNHPczyz/nTybeNyKLblSLf1hKupS/3w6ywBVXHT3XYtjHuZTqncuFCptpAvJWHmTxOW6xugw7Fzjk+Z+cl8VYxKKRY9lDwMswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_RHEL7","name":"0.8.20133.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"949995dc-7997-4b84-a10c-88596d42a37e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"59ce5fa6-932b-4b58-9b45-2913ca7f91ad","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvXLBP8ebVGP0SgQcw5pzxhxS3lif2mmJIv4pUzmcSvpITJwLu0OhHPviWwlPwgDtnWDzAUYxtg2O9ynVUwTcVnU8HSmj7p+YzLZhWXjzvWh92N/dhyWPU64f7BH5MJw2JIPwFNxCPcbv0ixy3Xn3HuH2Yb2GUSOpeYdfHdBpE7sqvULjPyyZgzRGnb6VhAeza56rtMCKgNe1RgGPEG+YdgjYCQMUXyT7FwBun71A6XVRtR27Z5aO0ZSawEKc8IpEL+I3ixcAr7zCQmlO+UjL2DKcs4UDiy0HtUBJiXrhtt4uForEEtHH9FtrvnExnviI6uRuxF0qrUn6NNY+ItQMWwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.003_AMAZON2","name":"0.8.20133.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c59738c-4fc1-43de-a35c-a9f5dfd7fecb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"bff91c1f-5cb9-4abe-a186-de5e335449c3","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA3Gc6HZMdXUMljfgVEhs6sdYjXOPo7+Zv+p0zvfsjzQUQ3s9QaQ13vZG6ZghhLVNdaadMxlh7NVuOMrmpWxvdzLLK6JV+R/88OrVqfqf9kMPjd5OPy3D10u/urXfgUU0QDc8Fys8GweLI6gcJhl5KbBp8OiXC3A85CKzqTOjmZ7PAqDDsRgMQTB7cNyqYstJRWxDYlUqIQlM7VUiWRnhcqeBiKWX6Ak1q2dYo6wjHQaPvHEcF+Wj57x8zEdRcBG+i66I094cLu7a8cdmpPvoTzgy5mY7lbGricUawGjjAIi8zXihiX2fyINR45mMfGH9I/eKsRzxVCYxVFLWEVUhpXQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1zghnf_e2etest","name":"George2-RHEL7-1zghnf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"34321c5b-e9de-4b0e-ab80-251df9913dee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"4eb887b3-2c73-4a9f-a9db-049568ace2ca","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAyv3BnU75xmmEln0bHltS3XwCh3O26cezAiOCw7b/SBfRzz9bgFIX39IRk41L2LLLXTES9fIYqkiQjqq3hHwMiayQ2NHamNqXRkg85DcJMBMHRwVdT88BS3l+rmpS+o64l1pCdL+RU/IzGKP0LRv3B9VLSDOkDsAbLWoPXIlX862ADfJbOFFcaBICm+C5EqHfeehPacVlcy+66xJrVstbncT1uRryTfa1Qi5n5gAnh0QosOyo+PhdF8+nG5Rs4uMcN97JMd1J6V8l+CO3wmr33JtvXVqC68P5m93JzkT3+xCG9UKb4YRnKcGgmsSLyEfT/0rAH31MsZ9oRNQITspNMwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1v5sna_e2etest","name":"George2-SLES15-1v5sna_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ead9b979-2a4b-4811-8aa2-bfbae02311e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0e62f9c1-091f-42a8-93a6-7b489cc10ee8","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAy4t+o6t5AJakLfztnvB+eO6yMb7lL/WE+lyJZFCzd5poRqrW+3+t6ADxVQunKscm4HZBoyoebRjmH+mKeszuI41aiCVlUOthUYLrMuW6VrbhxIj++liLtHb+hgOK1v+AOgA4AxnayKTu/Jqwcbfmi1wfT+D/ZJzLvM1AP+RB9XVK8v+d4F6qoN8xK8g/hA+GvL9PMRRvawmV0k1WmcX//by+6XXtbZGraeHpsa1E88nTPe8E8VIf2mJW59h/Nm4MxeE72nXN+Nxn5z2gqvWfS1hbXQl/N07AmadFWhq7V8tbLueJEbSXxYVAAP41FoYMHmL+KrtbMGsZYP4jW5mwWQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern684jx_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern684jx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5e8c509c-224b-4a49-8cb5-6f2c80fbeb72","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"f636cd46-6045-4256-9789-ff0dcae18525","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA4dQHmceZllDhLMvAVfefnVs5HdTVm6fn1SfE8g9/oTDAEKCNGMuSuWFupV5veTI9GVFYmnUdInUntuG115McakRkQoOcFTwgAyf449jgs6XtHWCkQ3a4gTVXnUICt7R6dROjB6K5X3eov1iIUWWfmrx3wVsc6EizP0sFHT335R5RB3ihA7OYuRYu7zeqoBw7VNMvKgT+/u/Oz+AiK+BFXTPVAe+RUuZFajFWhoF8BVCGPxLBU+bhXQTYadgj3MoAauUWhWwMXVReiAfEk0nhxSfbzhsgIWGZC2drKMJLPxkxbAPGpH4ZKP9lC8hdZ2u2+SxEjYJrDrjioNkKu37ajQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSF6yuco_e2etest","name":"WIN-LREKSV3QGSF6yuco_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ae6f7ac-0ade-4cf2-a51f-3b44c493815e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"150dcd27-5188-4285-8709-5042e89c1861","vmUuid":"6FB2147D-39B4-4A2B-BC36-3F794CB11608","clientPublicKey":"MIIBCgKCAQEAskVAB9GgH3vN5PHaQaIV7wY718jdc6p0f0RcOXCBiUsSvOy52qYN9uLUbAWHFhxzEaw77SEGq8wCju0knOEqK5TzIAhUrzQlEG9jGdHdhu0jnc/sjpjNkCvZtznPBJhjXOyCnNBCLe3IiNblIA6mHB7XBjDt4XM/xzphidi5MHnds0UUaaE0SUWuneZ4fYlt1wzzp7Kd0wpGgGsSZPwXvxC8o+lQ8CE1K5VqueJiWzQZhQQlwqDgULlIgR544U0ctHW4D1JDbE91zJF1hfRwJwnPq+kWEUYpHlCIQMcnwo52p72xZHUeUmfLf/eqv2m4OL9zNbvhedBwHL2Fay8mIwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFk2ajt_e2etest","name":"WIN-LREKSV3QGSFk2ajt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9451c274-e423-4ca8-9b8f-cc38ece6d449","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"1ebb0081-ce09-4a17-954b-3c488af1d2de","vmUuid":"6FB2147D-39B4-4A2B-BC36-3F794CB11608","clientPublicKey":"MIIBCgKCAQEAwRQq40xps7ILHtD3Xn+s2zPiBfF/RZkbdsT6yURTwAIUPPJVwzBzvAVLLOFqXE1MEfCqeeS+4DTK5v4F1fKfIonyQNMzj300d6lZmLP1UB0kjo8orgb+hNNGxFfWXq0C7kh70p/YmMnkkZ+6qZxLTowP5ld4EzzUq0bvUD4TmtTdQ8p4lWY/P7Lx6fByvo74yX21lbAUOfinYljZUFV1Ia6vuSmp+HLvpgKCcTgGQZlaqf16/93Zz/Ox+E3rCl3/7woH0Y8KUNMcVXUbUgTn+7+OJvR+1fTIyfvhycag/aIpTnVH328IOvMPgoPR4FsEIo5ZQHw5+yHYTJvJ585XHwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16hijk_e2etest","name":"George2-Win12-16hijk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"022bb990-9906-4e8a-8c8f-2d70cd17e2aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.003","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"6417585e-c214-47b2-9748-9096ac12f6b2","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA4SpIqWijDaSqVe4X3DU9JVmDv2R6YaRgeIQTNdL256uE6i9tyqWZXZ7csYpeXm1i/LyNQ3nl+N3KMJGgIfkB5JNGEt31n48kQxuYTOd/3Q+s9ohjnp6zt/kgW94MOBHFEZYqlNMJ5vXhjNJicInjEwF37dChdhC9ks2fjwpOVUxtV9UexOU5vR6P4KTbsIiGD6xIoxgabP4ePe8FAS49FszOYiEinv4OTytzq+9DKH2s12jufE4TZ9z+Wjz3LvgQeSmok8QGmnyGQMPh0qePx+2cw5RRGDrogZimVJY1DSDDoDN8YE5rp6apUTTuhN32JwUuCcmpszNBHIcsgf2pgwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1pbg0d_e2etest","name":"George2-Win12-1pbg0d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb13c956-7b10-4a79-95f5-bc210c7dcbb7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"601b3bfd-5cbf-427d-90a9-613f40c1e2f1","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA0CGpMZyQZa+49M3e9NmVWP10xZHXZpYG5dQlvlZmlmZcslMdJOI1taoqxIYLKQ12/6XVtsmDK/MU/uthZ0bLYAIXcLIM9iQpiY5QeY7RTae9l4YeewLOled0hA9DVHTWI3AZrL3h7HC4TUWCm+ykeILpUSLFVnpV3AIvKdEgio8bKwW7K2I+Eo/saagsatswa+03fTxs8zMVcM+gO32T9qFI4GdavAhCT7BnM415Bt1QZD82+RuF4T00VkSFKCtaw4/CDul3zwk70bCl/y9fuARtxmBQV95knmXEg4torZAN7cIWPibIbBZDHIIkLjmB2u6CY7C72mzsb7N64DznfwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.005","name":"0.8.20133.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"10f19df1-6168-4ad5-a1ce-d6c2b943deec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.005","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"a473be34-c53c-4136-a331-7eacb504b37d","vmUuid":"4E8E89E1-9201-9E4C-B76E-57FFA2B62A29","clientPublicKey":"MIIBCgKCAQEAtR1vkUhPF6gvA/R7kMFm3aIcQ/bNTHDGJxmTRb7GgV5v8R4V3gqs4v5vzeVlmbh+g06kWCR7wYNuZHNa60wsid0NSEi8oExyY+5Hd6dbGUsRov+YnZ8rAMVWLOJCajTv2g41V8jPklK0sUAjtKm7vA81UugSb8fy+iFFhezH29pLP7JP5HBaVNe4MHkCTLary2J9sO+jT74Pmxe9+N/vGbwY0p3WRHaEi4Cxu2YecSEkrgHqR33AuYgQw13/es8gfk1NgtY3nfhC1Lg8BtviZx7C3E7FQQzLiUs4enuHxbvCc/HBLKTPwapo6cR/XbnZ7FGITeX3Se6KiYZtO6ITaQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.qdwxe10fqyneldbloddyfm1u4f.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.006","name":"0.8.20133.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f43d2110-d96f-49cf-b6f2-258095e4c117","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.006","status":"Expired","lastStatusChange":"2020-08-10T22:05:07.3192782","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"5863ad0e-4f13-4668-8115-08b692d6f22c","vmUuid":"975290E1-CAA9-9140-8A4F-22A669D7F3A7","clientPublicKey":"MIIBCgKCAQEApKqa6moksSeVoKZiI/2JiTYBdvcR2+BX7DiNnK/xQroN6sA6kkQtZpSmiRX2cbpe/PhS8z+lvAdlxUNUWO41JHDtt8Ey+NLX8Z5uX33fU2Njcl9yQN7ecO0Jf6+NPtN7YxnWpZIv5W+WydLC38BAS3O/ZGRD351YXVXPzZpn7f05stDDm9JkPMVWuJQ6N/hXvrlXyTi0MG0Z8jQtMPchHBpJj+I3mUnwpWFOzot4ZtWVkUvfP+X6rR4OYzXVDSu/JLSuTWaKb/QdFscYr3M0hWCppcqCDkaFMqwDH6/DvrZzQ9BEZhqpv6Tx1IFAZn2SF7fSCTqKofCm3R+P84b+vQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.bpruthhbxwtudmlczy3lqysqub.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.007","name":"0.8.20133.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e8758e4-6337-4eb4-a3e5-d64cd6e0a9bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.007","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"fd6e4c2b-2ed8-4f7e-960c-c6860f1bdde5","vmUuid":"1F9B0601-6E63-8C4D-8CD4-F515850C20B0","clientPublicKey":"MIIBCgKCAQEAxHc2W6CkWMNbG6Z6di3ejoN+4JtRM4l33tFjbMOQf2c1/M50iKgYm815y1U8AsAC8JmYalXFC7UaZh1/bhyERvBzjEBTJCowhZhcxyhqneZipGBvfSaAwzEf6K2oOYcW+RGp3RC+J52ZnQkUzFa1hw91/mWxp4vyMn7Tm1ZUoxSz0+gdsnrcqKaMyLDfiPNZNZzfVEpJhn2E0o4GbZOq0pCjwCzBV3bnvW6fBRkthu0uBOiwjnHgG38oe59rLxENTnjnLmCEkBqGODwxT5ILP+82cJSS/F7t5pfO22gfRyfWS1Ytz63btfemxzlZhdEZT9gQUv6fF8FH70xrPDi4/QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.zbskxvda1ckuxde1evqbg2ljkh.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.008","name":"0.8.20133.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e6d08a6-ce44-4915-ba22-e1f99306b90d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.008","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"cd5e3ebb-fe0c-4422-898d-52283d3560bb","vmUuid":"C42530CC-7FDB-484A-8AD9-FFB2A9DB841A","clientPublicKey":"MIIBCgKCAQEAuPesKfLk7QkvSBer2jsO0sqTUBkdNHBmy16mKZudq+RwxuJSPpBRNPJqo9N5PngHgalCktZJJ/ScMyi5GcJGhAmnqf0125ZjG26ChJDqsZsUii+pzHrJiIUCZmxUSmNOGSFU3dqYHBQ0cVwz8UYScsOg5iHAnfrJuGExEi2mXyeH7vYKy2KGkzfXmJy3FzI3YahBh0Zz7mRY5FPg9IazPyUF+qi1orHJStyJmoCInVxsqU5t4Ph+gPjmQD2RQXOaEtnrW9Pw+UguNj9CYcaX7CVg9Mrc+n1O1dOaYBmd33BTnFG7nymM0b1X52F8DQxpZ0V+h54dUPBhShzlkLGyAwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.ffgswbdmdm4e5dbi2bjcytqdqd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.010","name":"0.8.20133.010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"12062175-65f1-4c38-84d9-b4f657bcdc03","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.010","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az408"},"vmId":"96cbfcd9-b779-4cdc-8b8f-052aca01faf3","vmUuid":"0220900F-14B6-034F-A722-AA3DFED94423","clientPublicKey":"MIIBCgKCAQEA58AxxrrH3BQ9OjZnaVBKaA2Qqrv5NTQATR69vtXx476aCWKigfNLi6xTxcQFzI5ygH5aSbQ/+rVL76M22y3BYG7GK+d4rgWeuZJuUrm4rZVWs7jXweff1vzhLdxCNB1nEH+rROj4tv3vAK+ZajY8iL17JRg2eaJDXybsefWiFWwS6wAwQ1BhSXwvaoDK9bTWWFyW2myCVNrnbsW8RDftr5UXovuh5fLCFn8aRRbXsPYNZXJh86uFJbHYqimdO7ewd8uIp/hUqmVt7ddULFHLWkW4DD2ZqS00qKvUKt9xZ2d3EroyUFIqfD6VG0h+F8SDYWUzAZwk279GuJKsBcdR0wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az408.z33hul41uagexmierj4pakqxgf.gx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20133.011","name":"0.8.20133.011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"283dd25a-75b0-4bd9-8868-ae30bd4e3e80","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20133.011","status":"Expired","lastStatusChange":"2020-08-11T10:06:09.4448447","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"91c869b4-f149-4325-a072-cb839b3b6989","vmUuid":"4E8E89E1-9201-9E4C-B76E-57FFA2B62A29","clientPublicKey":"MIIBCgKCAQEA2AsCI61gbk/HQr56T/Sg29wa/Mk+OrdzJUjeulm8NHf7gQtOitE9VdxUJkOU0Uk73LHXSDp90I4zpDdgFm5tuomxtc/d1C+qn86OJv4/+YNFX0NDDUsB6bt+Ar9aoeJid5pr7vlCNhnHMtu4H0b29A2I48rmTDKrdTdwhPDItAGDtu+Td7qP26QRImyJNOUPqNjnN7Waml53CMkh4ZSvtRgqUvI48rx5MWD/vYNTzcHaUEubMnFGb+iwLXQIFt6gNzPRLrQLyaew0Wjp4mFQgrotv+h5bNVpNsQgIp0zGU3HP21ywikWZR0lDfmd+h9T8OfcIgogAyDqijZRY8POswIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.qdwxe10fqyneldbloddyfm1u4f.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_CENTOS8","name":"0.8.20134.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06435f92-a6fe-498a-ab81-ecef1a22571f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6aa96471-041c-4fb1-a164-255491ab5c2f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA8MKPiJjwRCFVgS2l64rjnzKZ6GqMYqcpsE/ZdIuy3H8LwE3COjHGiOLyjYiC62PPWwXKGPpfZY4Bc9ZY7o9/B/zhM+SCtg3NeFoPJ2YyI2/DXSsIVffiGU5VDtSIUPWUCJ5ZmqI60Vl5ZslKFk6Q35CvSmB927AXbrI6N1pHk05egQZexks3NJ7CaZS0yFevggSb6+DvUgXaws1Ifm75TE/ni9FQbF/KcVobSMmR6r2d+E6KQzmXc2PHlZ3YBpAWbrPmpjoOSFzaVAmdFeq9bZpFzzzOEAmqtgVv/BWU0Ae74nc6xupvabV2LnfLEToEFIvNGSSFGts8ab80CUPDiwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001","name":"0.8.20134.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"509a2542-3d04-4919-87e2-afa671c6a67e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"12a05564-c2b2-4d60-b1e6-93a4a8711f50","vmUuid":"6223B258-5AE9-C54C-B3A2-E2A3E6F49A68","clientPublicKey":"MIIBCgKCAQEAvh5ljGmC4/uqW44/+YWOXJRnqPuqvVCfKd5Yn+DOYAAuBrs40he395wWalV7/nRm9D5mRrc+L69IKM+MEzOXSzbQyfaDkoITkIui50WZxRNAyhKO9FwtMThQ9AhTmDUP6MDp3hsMba07TSa5lQBb/UZY1QpjKHHU9yzB8vLMFmUs/pCyiZg3jU4Sp+GeiCO9AalODDItoxe8rqBwlA7XkSYv+hUG8OXfoMNukWO5VSNexX8hGX5Da7AsVtpo6NmZMCvzw8z+hM2YAVGaJn01AxKaJ1LS1oiNSGLBm8xzYHLFeatXWnxyr/ohUKSXX4ev6f4SjtKSfvjXXovuUHLt3wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.zafbbzi51fnevfezdfpz3d5yaa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_RHEL7","name":"0.8.20134.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e63c5fe-c83a-4992-92f9-3ab73f123c6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"0c32c90e-1709-41a5-84f5-5a9305cfa472","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAnyeb0z2k/s9av4IPhHBPue/Gj9+bMc710QdiNTfZQKrpwjUxwn+1deUQZUM8En12jG06zWE8fQQjYcYc21hnb/6yhBMDKM1cfhDH58TXSAy3AtkTHRn7/jUMdbNjK6KdwQDooxxsdjlIdcQvarUBxK1RYN7HtE5aJZdxg4e9iaVcuu9uOFvvvgYnXuxShijPMt/6Jyrh890f2dLLNEd9RN1c++Y0g343bM8BHAKEA7Xulj4/8cP7P8Xef70GoVUex/5Ix8FZkwX7YTmhgcHjgMg7xraTs3P3kFuHhF+4rljy68+xVgYfB+KTTtmE1BOgTG72Iltf1EcnwtBZDMEzywIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_SLES15","name":"0.8.20134.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3b663d3a-15a7-42b8-9307-0bdd6b6cfe94","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0233290f-b4bf-47de-8452-685987775d89","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAv4bCCqsDmK8kwBrkPt7pOQIxX4PwkvnFJDXBvo1/Fg+6FVJVwJiiyJG0PlVbaJIsvFYwH/t8fNYPf/Y6h0AbD8pzTfZcCfLI4rziRTVi99x8oFUA6NUzNiehyk6vBPguTt6pg2hyM1bA93CLCGrC8Ov/IVa0vZsFk6sZX5Kbh4pkqNYu1OUTNU/JijLqc2W7Uv2OriRe2rXoKbix4MibvKnuW5BqsECCpkD0xuq9T22CDTc5PsHYcVeoNkNZZ5HTWDHPreKddlGA5gzrosvfETxuecrXr5idVlLCzmv6EIpc9Eft/umRb5MIYxNutXxvqjlAQYuS4jgpQmRnARUTrQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.001_AMAZON2","name":"0.8.20134.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3e3d604-da80-46b7-b7a3-e0be08c285f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"654f8dc3-f1a0-4847-a631-061ba0c46ccd","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA6YKw5rtzpACDn7RiBBU0Axd/QTR8maRxlU/yUUzQKCdpFQ6JBCal58wSfzs9KD9Hf3TF0emOF6OSufCkFJrBasATC1Xs+XjfgPTt2ub4adbzirS606/7t4uZ74lI1bksteZzARf/yJxMZZ4ZQ+oGXroLxjxdNPiolae00Zk/Aujh9R/Cfb6rhdDH5eWDjaS5YqQB8Az5MCB4HNIbHQ5mRw0xODaKHlVmaZSCTbKY+OSgqaDJhoeVKPw3lObUGX3uQkenKygDOa3KkhROOanG1rW4V9AfA593fE2Y+IEHajvf4xg9Jy9PY6f4qU5hqofQ1/5jFKD01wDmAZLuKbH85wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1mnjye_e2etest","name":"George2-SLES15-1mnjye_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"658d3026-6871-46d1-a9e2-656903c37bc6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"9ecdbe3e-6e43-4ada-a2d9-093fae7f29bc","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA5uDJrAdvxalNbGd4+2hdAu0IXGds75nHuVKUll0gbYgALO1KO9uqIqtiBhkaIYjOrsBO6D7C77+9WEXxikUOqu3lD3y52mi2BMjJAvxj1sLuwBwS41E2GXCXclQa53gFT6hLu/J+41e1jIffTCVMpIEsc5GC6yjbXVdRIANrNx4Hq+gNI5/izpDSiCb10Nf8Mkotx/954/F4nSP7X+n1rCACZT01EW65CQDnwZ+SUag7l+w0pIZhDPY/+c/iH1znxt6vAZ7Py8vtKJVqdY92ErVtCZCLsslhWuk+aKO7pUlMWYOzL5+K4azH9eFBNpTxGY+Emyd/Ky45lyLV3ctQKQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internhrp18_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internhrp18_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9143bbc6-8c37-43ff-ad53-746ce6b18d37","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"b45a82e1-1c41-4738-bb9e-b6adbdda0c88","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAtX0Qns8LrSf2e8ztw9v6tIK5nHz49Z9jxvgeVWOtMsyasrYklUai9iwkoiTyW2u1rms1wZuhsiZpE2ODnEltp73+03/N1OWzzPA4xamxdu2DhND7HkezrEOv0JK1bBegKwpETTtM7uJL87o8jvt9SUqQgq2RRUYZG4Tp8hkmta/ncZKKgkJsUCMNdt//rtvMiRotDkH375SVASWR9UMf+lAvkAtn/216dEj+mbqDWeqBMy5RuHU3Ump7semcaJInwxOx6OK9DumL3biO+7+ZxHvnl53FTrB3ryYvch7LsTlp/zsQAExIjjGIjcVY+8t1+SI1kkjaAq8uaXMS0UVpzQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1k48xc_e2etest","name":"George2-Win12-1k48xc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca3c53ce-a7ab-406f-bb86-1f6ab7bb2e16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.001","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"eab1132a-76be-481b-9539-2171706b4e85","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAt1XWmTBir5f7lDQujemRw+eNsGiU7pAkYcgIY+OyJYZ1W5oBnhA4I0hEbmR4aP/rfHpbJIYgj0sX1TgbCcFgSdePHEhtfNaVtlARjbsediNW1YwhWvoCn9xrHnp+xD4kZ8jWFzmcOurjZVGWl8gIGQT7yAV8aNUj3oxGdKewRFaC8J28B2CwRIPnJAnYqqFEKByqLTKxtrL6sIHcpX/pkEBz+VBAfDmlapVzop+kjvLaTSqxwfbRfsxxqzaQfYpI7hzyjC42drTf3sji/ef+DaXeDfUNbeMI1jXNNqQfK0BnHLW8ZJk2C1sWR9O/mxUvZmZDoJ0G3IqKdJVTmWQTrQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1nl35h_e2etest","name":"George2-Win12-1nl35h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"18fc7133-6af7-4ec4-9fd6-8b2619ac211a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"7d87e464-9233-4241-96a5-5d2bf29d4b5c","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAueGgyp1wWVm2OlUzl0oz7vOnBjOU358LwlUCZLxulsW9PADKmJ0aQt6Ke9GYYhaADCl1m8yi1kVfRpXHmx8Rt5H2q8taWqcXb9LSczPvuDZ4hT6qJTfqMFctxs10R9GPzkixx9x5/8RQPEeg9jTbcw/pDG4mUbG0uTX1MUOAxX2uTNq/Tzw72c5q8riAzyPHxnZSbbGVe5LtudYS7EHflEVB9jtfea0oh6InkM46Nxjqsj/9ca3X+Zp4pxQUCgxXCPnSDAED1H30h7qOVEKMP2OQFrysjp077GhXBHtPFG/TdkXJC1dLqb7vMNlTRhVoZvr5nzlvVXwSr5RNJhUrzwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002","name":"0.8.20134.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"60ba5837-9676-4ddf-85ea-ff57caef4a6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"d478fe3d-fbaf-42c2-a013-f98436019cee","vmUuid":"5563E810-A620-404B-9477-1DBDE0475286","clientPublicKey":"MIIBCgKCAQEAyLfV2ieF2KBsw89E2QhIKEm6TJoLUxM6ueYzcGKbuiPCQrL6zwUJtavdXy09DV/qf/KWTAu6P4WZHnL80xQxxYREH79tf777MrZD8gn+zCELSCSZU+Oly2w9GojenQI5LOfk3AlESUWIqcneD+1VFZIHLPj6F7i1Ma4n4nolHqYC/9vY/c9sSEYbSwQ+Q3Rmv67CGjBwV8IzhbSJ7GtCLETQWkQAtMuUQW4VSeRH/J1xk0bYUDLuqJKgm3YqD26036SLFNjJTQfRHe6Z+Vm9uAilXkujkiFFOvQjvxSg8VtRpDT6eOTPI9K2vEdvyZk9Sm3RlVYLWJuN5Gld4gSAWwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.2xic1wte34aerappddupiv1lse.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_CENTOS8","name":"0.8.20134.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"43d06006-6e75-4592-bce9-f2c93d2582d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"d3386331-c084-46ce-9ca0-a8dc62596d67","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA6BLGzbF0mY/DRjg4MPCFkqLlYHktLFdr8XpNYGX4U8ulm+R6Gd+ng+5px7CSXz2jTdxLl7o07BDZaLgB+QihGxkL7h9arvEDEIAwD0tJGpZcNex8By1n1b1Hg0t8l06BF/Euh8I1UmPiRjzd+GEoDhjcYG6kRnqi3VPBhnHnjc5bKqWTSBNHrNpEYignkqTLDI8464BuRU9VZa9fkdwMY5Bqg1Rurlknwzqabf9jshC5jcxk6kK6oqdr3o2I0/s8u7AjyBVnBlyWAoP3RGMV79jl/N9ugN/h1NHikpybCC6kSGfWjUb5SLIJJMOnqU9SuALmyljq7MMuhTzKGZ+v2wIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1ewln6_e2etest","name":"George2-Win12-1ewln6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a1dc7d54-14a7-4691-8358-902408ef04e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"932c0dc8-d6f9-4072-af61-5e0f3f62ab1b","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxB+LHaRpdoeIWo762IsJmFHF2ieHV+MpGKFYCt+HhJUKlp9y2a5h+Gk5USq+Wny5b9XteW8BOGfkuoAWc01/MjFo6hGIjnKUFa+QLGRxQrEU42pmkOuyXyRPS3d7PhlTL3fcdmDoA527iHFybAOtNvKPpscBwomVOShUMoDHMvM/FQs31Q4GwGDcd/rRtusB837zM/KzwMZc04xLgPHbX6kTOlPSdvhvqrJG0jkcCE5TpvevheBk+0UYUWh9vyiHI/3eWrh8hvjTjjloHnPC4fzBKrq0p3pyNPCpakey7VdY2AOfU7Iy6/SU/a7xFCM1u6U9J9dhkWE/zAKuDT/8mwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qbs9h_e2etest","name":"George2-Win12-1qbs9h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f273bf4d-4c49-4dfe-92ef-4dd998cde4f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"add20709-3fbe-4850-ada6-b07829bd876b","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAs0dz7OIQCctqblh64Ga6i+q8N5ivif+jPuJtSKNSZ65U/hvr7lJULy79vMAaPi48TnV0KUwVgYdix/JeGp+sWmB4ocOQjN/fQ+pZ7RJnSWIr5w3ZW8FGABWr6Wi7ivLamQFnfaW9lxW4zRd/VF9szLMXCH8Zi6coNItlZDL4gVxvjhoFFGtixoK191Y+7Rxdxnd0OPThjtLRdND415dlymLUaWXcza6D/QrFhjbes/tOLdY/OGUYHeyM3HGszX60YjH8/Bdg6ZrTNN7j5uPSU4k7DYf/JX6qbgme+j1xg60jn4z0qKS3gk+82hVDyle5sLXDUAMeYIo2U/3gACg/nwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_RHEL7","name":"0.8.20134.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"51c3701e-e289-4e56-90de-6fae81bee19d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"eefc92da-b3c5-4db2-b28e-058b772caf43","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA3i+O/iLZQIM/qn0uHnghBP3Ex1qxVJOoMKyc4/0dva6GdLD19+07gzaPsKKm51eR/P4G8BvdeO7vY6WgqTDrheAWNsVbeMSw36UsPjASL6fhw4yCUfOXKOl8th0F2tu0NbEBIeTQq0hCZmN99uedJDInpXXJACK8XELOzyb6LeW0L8Bl54Rewck5lR2mg9ZQRlf1e1z2g75UMU81+iIXkjCRUurFmVVqVnKfZ21kBMAELcKzfm5ENOMtW7UbMhqb6yONF4UZuuG3dsjHP28F9TV6El4bJ393zAtGS1ltX/Zo4GHs4vBCIBYJi8K8cWvfpiNfbsV15AS7+POCI+fvgwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_SLES15","name":"0.8.20134.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fa77bfa0-02d6-4822-9a60-27337e27eac0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e5476ba5-d000-4b9b-9ced-d97314413b0a","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA5Lj1oQDqt2lc4kfwsdpYo7yIZNoEw4TDvMyo52RiV9pImS0cDjGrsB+qoDz14/Chw2aljj19ONgMw4+0X+8h4RHN1fnay8r7pmrjO5JjNR5QPvLHYIRbsmOqkCV2UShgwC/8Z9IaewD3oKPnN187eSXGghsD42QqknhMMw96DqNgfuCIsAMkT2wnEmfDw5V7x9YIhyGu/Wuyv42PU96HYACcEGiTjRvBvLn962fMv4PpHZ8f0O2mhNaSBaOFdkS0wnvMhr0dZzXlf9GvtUWsmqR827MUSwexPPEFjJVWkfeFs3yZEG91XA2T3wmOIuArx908LjvKmacl27YGd49piwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.002_AMAZON2","name":"0.8.20134.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"01bf81ef-0716-4a24-be7a-5d7c04c4e328","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"2d0b56cb-95a6-47df-8541-46ef5845359b","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAuSnwBwX4MCw3P8AkSbcYMunaHxZxrxahht2991i0JcyhDNE4jtYXcvfnlGS8HD3hHhtEBjnAEchytbyu8tkmdXZOU9sylHZz3Dvhh/b6b88W5GofZgGfwJn2vVXgJuzkouuNXrOxKnt/wkbj44Z866+DYUahbR45yY5oPlPTyzTxe/pvX5nqO1ZmLB4dDhxPgc0gR1Si0re8/crq2dETRFCTUpOtIyUVqUVgUDwVoPyZylNPOlNFb9U2pEFaQ8K5QMpmZzhoIJjqITqWpbH04dNv1ZSCtqVEpoFwtt690KHyRF1rn3CP+DZHhCfM9ILW+PIDIkUHGLT1371az86oswIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1wolf7_e2etest","name":"George2-SLES15-1wolf7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5aa79d3e-d2fb-4be8-a315-81b0a006b79b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ebb696b1-d88d-4b40-85d8-0f8056af2111","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvGN6+BMlEzxReJGjOAzjvH5JIF4nkhnIyjXY3BHBNRg0v7loY/eg58toddy3OH++6G8bDdz32uRr7+hbjr1NiBNkIaDhhuYKTu3d8sviQJngQPJehTibkNQ/XxsTrz7/4bNNb+UOM7f5JM4Dw7Bd7EsvGwn7dNMWsvXzOGi5Fzp616V66fownRsCc3M22zyYnJHJm+4cEWXMLIJMN3easY2FVqFjQEFkuvMMbxhekjExXQAPdFQbEGCcNUrUh85gnrnAag7st5NOhGWSghzt8yc7skGe0gg20eHbkeTvyTZQ07K1cmVqSTnek8Zk1prP7ktpdTfqQZ6DFyFu/E/OLwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern8n1rj_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern8n1rj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5dd74980-6a99-4151-b150-eabe68fe1355","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"b8a2320d-71fb-4e7e-ba73-511fe5ed47df","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAwKvhQQEGJRtTQdIjMyRucr0MnYUBYoNCHmyzRK5sMtWZTZ3wODihGKjDpozkaJnDBANXwB0Eli4mQihd9g4vHEtTMibUebO0rcCtNSpA2YBKMonW3fyj3uQXzgRNpRxP/apIMk5RVX1L7GPNxlyblKEHxRRkuo0hg0QXX1b6HqQR0B1D6oAMfS6wzmnOOLZ8cpYLQhXyqnOC3yDvdviAqqpnT512J46teGPYx02pGSOLwGE2HoKgKVby4ZaOp3TL3pFK6u3kC9LJURZBEaDqJkMcELtQGIbTZNtbU+JR1xyVuVrqeW4Fhnc0mheXepNfX7dIpCwsGVFSLl4RZxWZGwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003","name":"0.8.20134.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"840a6e47-b733-4bae-9501-11e0fcc8035f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"e6f1f1c7-280a-4574-ac73-32cb665defa6","vmUuid":"C42530CC-7FDB-484A-8AD9-FFB2A9DB841A","clientPublicKey":"MIIBCgKCAQEA18x1Ljl6N/OCPNm9GI5cS88oH2k3FXIOCMZ87aCyEI/cbgSJ7limrgujUtgcjh4WZpNuLOowybAg1CBYpWaoAQjPrZjGp2AN9xMMl049sI5glQutvqarY7lftCGQEiaWFXg6jKVw33QwbpoMlSsi6YZkDbDy4FaLmtxJmjhHbdH8ezdmgpBBJCQNHTYKry4zbLJpiZfpM8jD8KnQXLqF6WPls2zNulBddhUKBz+52RSPnGUlJ72t6oKY/EySY+eFGzJZJJsok7MUp/pKZMHFtns1cgbK3fP5MdE1YsUn04LGwvbaeKXJVrnwK+VXCzFCSlW9LV6lLCBB9A74iirydQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.ffgswbdmdm4e5dbi2bjcytqdqd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_CENTOS8","name":"0.8.20134.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31abe465-21af-4bf0-8c71-ec8e3286285c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5bff04d5-6bcf-46da-8db9-c586149623da","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAty/ir0SSB4PTNqPy1b3zjufoTrOxWhOUUGkEI32rrKTRLuEG4my4r2w9IsgMBowUoEgYpkTCnlvlWLr2lmRHzpXf+rhbV8YlZ0CkTEW2KRxFvSGGg45A2fw9hsCDS/R2kGbHqSFrypn+jpixegP8jImfMkUwOIsOTeZdk1J5YFT77R5jt1f9RKVzd1OL34J7jZWzhbxRBRU0ivy292AcDTsWI2VepS/j3cc3J5NR7Nw81o3zjIFToR8s/gox3izp79g3grOMLyhyYIFT0VPevDXySE95N8c7Ku6X2MF2A8H+THFdNV0/VuAXENQWYWFLb7huuwsf+w9g3tPbQDN6rQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.004","name":"0.8.20134.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"024602af-65d4-484f-873d-dea034a68876","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.004","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"cd566759-e873-4019-ba6d-bf3acfe86743","vmUuid":"4478E0CC-60BD-0E4B-B704-585910019FE1","clientPublicKey":"MIIBCgKCAQEAyhti2vUSFeEXmU5JyM6BPDm0KkUsupAXU6er6Co6nMVPXH3fk4ArsTzBwfwh91a2TR/icTe8qbk2LNe8wZOpocv3iAyV6Z0O777ObPo1AyiWgT/xAKxme6gGnqTl/oZ5Vk7RIOm9GmopdnxjFMm5zskgeL3G908ezOzVwEvxBOlBWl9Lmtbzc00V506Y87/EkcLExWfza0jYpYeRQBoqWe80JOfxusgauj3Tjuov56FbVFYWIj0CaUxgK9e+KV0ra05G6AFxY3Yfhdt4pg0ecx7gH9p4ewY5P+goPkyxF1wAjiIYN4nT1fNVtB2nYryiqQ7OaFx9Byh34kDRO/+F7QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.gtdrheriyrqujagviru4wh35ne.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_SLES15","name":"0.8.20134.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"70276647-739b-4c63-8388-32aaab93767e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a113f884-1bc2-4ff5-9256-46029ad3bdae","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAr+Uir9Xhcxbwl+yeMr7CPj4wgi/HVng2LaECNT7iqJW4KFrFmQP0B8s9BMy2ADViHQ+Lv/MGHuZ9HOSdPj/CDWrbob/DWmJ5BDCj6yXYK47DrTYIjEXs9juwFu3ySKUcVlz117ZmyxeQbwo2yyvFRh7bYziK32wPwAcpWgIQD+8ntl6+AINYQ7xNS00hMOQ7cEpJ9lHX2bUm2uFqu34r77FI4pCciyLvmsSsOJXrD8/rZiscWcZb3Hy76pstVUz/JplUXN0w7xyulnny/02GcKp5mdjcoVfw5qDDxECOItAsVPRApwvy+EG9+hTLVn68kHhN1IXCMgugdxVEnG+nbwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_RHEL7","name":"0.8.20134.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a45e6f9a-30c4-4ab0-907d-a8c82ed7bbf2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"3dc68035-9217-40ad-b6be-70a78da08737","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtCLYNzQyhyM2rSdYm7faHeCKV3YimtU1HazeJVEk3MGHyrXnpvTf6GlGFw5d2tAagIimc8ZKr4tTUUg+KZJQjz3yFvqFu+63SxBrzDdFMOc1sm4Sa2xl740VPCZ/D4uw1BjJRo1InYHxCKpIZCVJ6QzP/ug3eXIp2uZq3HuA/k3TEXSsedkqkNUKuudDbYH50YNj2Eec5TbxxXbtvAvP+g7E6s4VT5AusRWgUNWOv1u1DEXrMjz6/OEytvW9MBFzYalIhbLAXpdlTviBksjpf9kJTkSO8WR4QCfNzrBFqyECUkaa+xkhS4KARmXigBT24pPQnrPwe/MGqL/HOeYi9wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20134.003_AMAZON2","name":"0.8.20134.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"33ecfdb6-19d9-4ef9-8701-17ff4a360fe1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"35adbadc-6ebe-4294-b84a-e657ecee6078","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA188zeX3gxVNtXPpyUToZPigOs9Cv37eZp2i8l3MCr+H/lgbYptXp0q+F5z53AiPxU/s0GXYPp5Vsk0C1OtxJ4ToS6WVPrBTCsh7cpFwwTcOHb8rjXBgjI2FMGvN+4vWn9tlizpGkHDL4wL+nyezBT7+bKCqayLJGaNTDJ+62nsAD0kAmcp7XLYdRzkjXgDyK8Igxlazec8Vg95H0ZA8fxYK1nJViE+lJ5wN/KkdRun5nICGyb1L9OArHy9F76F4qSGIwPJi8QY+7/KLWfB35yjFyxjV6TuZ+QKhq9B+b1RXhI7UWSgpMmeNtszi4Qd3bYzQkBU3XTfNe/4gbjRl49QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-15sqyb_e2etest","name":"George2-SLES15-15sqyb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4cce640b-15c3-4475-b540-43e24c57798a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d6fee947-aca8-41de-9ad1-ebcb97f9f689","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwctxklv8ujsCR3I+M2REg/M+arAriWa6FH8/LAQGrekP3wwG8+Coxqbq7iuEYA7PLPG9ZSXl1bzJ3No15dOyIyACvSEFJE4XIhmzDi4nUX0ikJ/7G231n0rmKu2I3tkzM5Mj8yQOSvrbj2yx87AD6/40VVMbDGW+R3dJ+frNwjCN4+guVgPqrktxERWLIdIymll3PbyeNWhnfln9GVYaeIyt0bIM8Goi5NDH0F+hLG2vN642oh3Z9Ue7GtI81wRzSwRYC4DqElyEv12Ope6i3MITLRxDDjsKnnIsSeKYa5KoY2arJzrmREO1deO4odDf8MAya56lfbUTDhag5NVZUwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internjmgpi_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internjmgpi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ffd4a2e6-2a1e-4639-bcab-c96bd2448386","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"c63e3ca7-1341-4861-9740-4e90c245f26b","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA4/WwX2EuCbrpwRT3mDpIpGINjfVQTjq+foIyf2xEUoZyGV/VNATT0KhZcxU7uCGWJQ/kcZd5eHdgIC/j5WmDrLXyUobhAf43t5RWP6eucA3ItQs9Pb0Uo96WFLIuDSvBvhn9HwGOslRrf6oOd3yVMb9anG3f14PAuk0Ol3x56zet6xluj/OFiLDxG4tUsJh/hg1Sr4ouHMf5cxmNQUVUt0K7yZnQIgJRGNF/9jYh4wBwZJzwBp3MQXjjAgnwQZNtpiql4VE2I31QDBxnENuO9b9C6SDTlziZpZVzEcG9AVhxjGqfg4WXIPL+CU2N6giNewy9I5M8c+WUSlcf5JoEhwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFqgj9k_e2etest","name":"WIN-LREKSV3QGSFqgj9k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"08fc1af9-2be7-45e7-9d5b-d69439e1ced6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"ac3ddb89-4e70-4908-b93a-c81f5c535b9e","vmUuid":"9474015E-8FE6-48B6-8A10-8FEAA72C4175","clientPublicKey":"MIIBCgKCAQEA362dT333p3n85cjqqU32V8jhB2B1NoHRo1wzUjXtbfS0CT1V0y5Qu3QbTB8KdBkJ4RefimUd3ggexJEmR7lMPzeob/6+lvav95YkprT5+N02NKPmslGVPKQzIl3+NNZKd/f1zMD6QI9sUdCZFou/geqN+1H7ciXbUObjMQBeoP9oBmy6SoG2wJg+l+LBTtVbG/EBb0/VIxWRLeaeL/qUkyn4sJu2Nx9/jOEQwVX2gkOgVIeitvHs7+Ql5QQD/niMO5k4PvbA9cFQiSjQm9c+UvFrDEs7CBzqJdRPRDuBrI4ospRnm7WSiJcblKtJ70bRvIjquhZDzLRDCeQgjsPZlQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-LREKSV3QGSFz1kc3_e2etest","name":"WIN-LREKSV3QGSFz1kc3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63087317-2e56-48b2-9e4a-59d4dadb545f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"WIN-LREKSV3QGSF","machineFqdn":"WIN-LREKSV3QGSF","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-LREKSV3QGSF"},"vmId":"0e876c2c-c465-4d7e-baa3-adf1b8c3f0b5","vmUuid":"9474015E-8FE6-48B6-8A10-8FEAA72C4175","clientPublicKey":"MIIBCgKCAQEAv6lsI8g4v3AT6l8Pn4kPACbH6gVdll1j7J2254IAWAdewQaa0xUeBj0drG/X80aP5lvS0xGLnVT2zkSy4xNqB0dL1kaqG7KL4yUL54OV4xMunHYC6fOe3/BUtJEzVGB3/MAtnIAgOvdCctGSjzQwraXDXlAeHDhae3gGE+iEZ/rqBtTfU7fiC2AfsiokGpCl+2EMEo4h35OfJNpYk6DqAZv92dMwECfIAL8XVYyOQptTZtBEFh4JWw7UsVVXz+/RN0XVk+grqNFhhsT/vnBPXjLr02YDvUXVcxAdFGDEB3+51KtVCREAt1L86Efg4Pwr+PxpRNysbhkcCuH8OCD/8QIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-LREKSV3QGSF","dnsFqdn":"WIN-LREKSV3QGSF"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16ycqe_e2etest","name":"George2-Win12-16ycqe_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5d68088c-0d58-4acb-8f2c-ef329d1b1d82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20134.003","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"b430ee34-84f6-4461-bc21-132c0f6bf374","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAlzP/TOrxFQ6XcSFGq0gTLuWF6aFRhEkhuJS62LuXUyDtjSWQGf65mWCGdUgXv1IVeGQ1Nc+jZZBXgjXjwTDJr3WatxAdsVE0Gfol9G5voZlAT14hsiIECtpxfj8r97RHFsd9DZjv+mr7b/MBoBzGSsr5MuCaFAb3pezOgAaeXHT1j8L9iQkePvMx3GImZKvdDZNzhm4YIeDh3EzC9btcoJ9BXW9PL9vueQkTOZufHoe6GQDk9w+bAuaTxlI7z4tYrN7FrWTyZZlD/LTFLcZy07ex6xseoSoCH0gQW3Kh69rvNQ3jmda1mBPveyigI/oFE9jLXeHihM9sXjnJDeXNIQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1xe3k4_e2etest","name":"George2-Win12-1xe3k4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d267e45c-c330-467d-925b-ec098120155c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-11T22:06:34.4417174","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"1981d4ef-5473-487c-bc0e-4f03a66f2ed7","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAoREbTcYlp3paThNpNibZriq3AaDoB8S8mniAowErgPrxKpjdlnpP8GC3Dimn3xYvIbgZ2oFNOFHcdZrE02PVuDivlMGx50NwI+4A3XSUMVJY/Oyqmte6JC1JXKMac78lGpeRe2Q5Msk3ad8AShP5QW3spKNnuxquMTCnm807wl6xddXuVx7qBn4HOW6OuCp7B9XtcskspAH/YRSI7dYfIl3uvzmu/ABniDUaL9PO+73qJR278V/NmubfV/8spVPSHcgpUWnLJtOsEyvQlx0bKOCZ55JLYg98DfkV/VDE2i0hqeSXRTowVHbSspxzThl4xh9ssuqmO0PY9SzpgBItrQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_CENTOS8","name":"0.8.20135.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c4286ffa-2a58-4413-9b6c-d94ef492f89f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"ee0f5f5d-bdb3-409f-a62a-042e1abae453","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEApl/2bO/mkFj0ikFWNsdR2Da1suikLiAYilrZF317YOUf2HkGvJfZ/UV6NsVfWEkQPu17Z5XI5BZNQ3xRk6T/Olsc/hUjscpc/UAlSSQzvqdOWTK9LKuHWtJXHc6ZwekRVPdvRIBw7diyGXpHaWaSeHCikZln7H/VDZeMMcKN3IXFOFV7VFhrojHBKhb8rL/++N/GaHj5or1Iqjpik6L88x7ozd9/arAHk+d5EbFjEl+yBQ+jJVjeGlOBuCYvvqaf4sFFaHffHx795LswyFdHy/WTbSMI2gj1LIfhnPfVFZJpPVg4DKKcWXM+TcNnlSSmT0pIyHBuo/GMxYQoGQ8UqwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001","name":"0.8.20135.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb9f8c49-580a-4afe-b3ef-14fd32ec9cdf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"9c632e23-a35a-492e-8936-209938f5a0c8","vmUuid":"4C7DDF12-6924-3047-9163-E89203AF301B","clientPublicKey":"MIIBCgKCAQEAwaOfyGDwQvf9qGtymi+NhGK4TYOXJaryb2z3ROBXgMWrKdK+5Exyq1kk3SvVBJvuVy1lJYmIB7urs+FAn79wlRFKsBdOFcq1olS3ohBdEl23hKXOS3xnCCA+HiOnHwkVN7umKn1NMLQJdnksbHpc0uwDwXQQiRtO6RPXQTMnh2ZSUcRQzgZNdPgaKgYGq26Ym2Z+ECZyI2nNPkA6/QLLJ85my8qbp2U+I0cmIvag8kQ1JkKpQwoaqHAeiWRxBcHA8DCWHzhfdLP2v5HuXpsYWhiYmyzqKMdqNvkVxE+zxWbunXeqTXw0las/Sv/CBCLVft6oOSuvBaczaIhvrVGTwQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.ocsent1bh4fetb53cn10hqkszf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_RHEL7","name":"0.8.20135.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d283fd52-93a0-42ce-89ae-88647b4f7524","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"f89433ed-da35-476c-bf5b-535ee56bcdc7","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA9UjLmTf+wVtmsmAMo9HudgSsiebr3TaFzc+staa1CqAVHtBtp+dU88gISDQmAcWrj6jvCOtFmuR74AguFPlQ5xVIsUUjUUSgKLYhe7vggv+nwnFhBd/ANZwHmKednx9c9JH+p/fP1ihxQWVykCXykamc+9bPze4qlD/dL08q5NDx00gcMxyjCHo9uo0x1UDwUZO8+Fbo+1fzBEfjeSiB8eTsGn7IB/dFPvR6nD40HKI1ZnJE24olMb/kFc1NQNZJMPBgX8uPbkcbbgu0ur2S5nl93/U3M6vxv5Y42IubZbB6euI/W1f5gZ/+kiXhBAAj/x+usVZbQn2JE5SifDkyxwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_AMAZON2","name":"0.8.20135.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"235858f6-87c4-4f8d-9119-8130ad20e79b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"eafd3c14-ddde-4df0-b458-974e768636a6","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAp2BkU+0tu/Ft4T50VIigYXvLCyEE0O+1wQzSZc6A6+FnnXdNwHQhiSLyu2NDVoCEk6Wy2j2sjUJjFRtg3JiazrOItY6/gasDDxhfXUDm/DQx5LdvL8URQxJGxkFdw3jKIsNulJAAKAY9rvTLTlkgLic9hbnlIBGnxUXChZRStLXST1ZgkDgF4xPxzwNfZlmJjyUZWXP3/D4aUuVpMFr4rOG6i4/5/gEqcSYhmzCVtlmMTt3AsmLynnmyS7I6Zzjkp5JiDawDwaZ0jQtdJSQBe5PV8tWfNCK4iP0VKbJDfJzq169gHc0Z6E3Haoa5tqbxpEdcTjogRWopjO1Ir3pN4wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002","name":"0.8.20135.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fb53672f-3209-46af-991e-732f51876b82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az548"},"vmId":"d01c0b25-cca8-400d-9421-aa828a80f258","vmUuid":"A7FACF79-9F04-CA4F-9E0B-64FF59BDDF8A","clientPublicKey":"MIIBCgKCAQEArvCS9rwhvbZqGwvpWDNtMhxgVtapmie8z/0I94eIRkWoHAvKTKrV9ugCm9IuB9uNGIFCR836F5Q47ez4EkflGWXbMc/cDzUe6Doqrpd9LjEHwFFLoLIx6GXfcoU47U72H9lEDOE+29YkPgc6bYlWt7bvnfRvAWfUlAwDKkXulZc04BUkiiJMDTFUxtP1OrUas3swCpIUgpaRUlJ/qzs4/3RPloKY+QSJ/MGCvjYMSbnEBCzIk7C8UoccBKRh0bS6FNaaW4umG2L8BnFYEjwBWFgtKtkAUj+tZKZ6yNOseLdO8FPb4GsWTfso4UWiGp4LamcnENovXkRK8f5NvSsRYQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az548.q1k22ag32yfubbsjt2ngzymi1f.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern5jab0_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern5jab0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9624d05-5198-4e37-aade-1e288f86942c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"66cf6c06-4508-4f0d-99df-afae72c67a8d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEArgelrz5l2ZD+yQDEWaUwgOTk98hPOpOsaS1b2smWySRjcab0Ob/RVuAO4BwETjYPMk+2X2D7o8NohYrxDkufLc10z/VrWSFjz48cZuRs8T35bjnXUvZktj+UlFaz8GscjRqZftb/moJFDOwZCZAT367BS0K/g61qrwrtAlL9EgKUbJPowjaJrcBci/LbIWXrqrqBampoVxBUHuQ63xpIUf5TQ7ZSM8YzL0B5vCoT9QU/eHz3aDH8pi0aqliOG9ZbXKHuckpPgvVYGJe7U/6spqy79HoGjoF78gSfvos3IdooAw1WfCaDh412yEI0hvl5mXETpccsACN4y5WjXBxnjQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.001_SLES15","name":"0.8.20135.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"653550c3-2adf-45b1-a1d7-de1314bb4a0b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"207e71bd-e385-4eed-869a-b56d2d6b3623","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAoLW/l0b6ozIIny6PY6e8TQ+IiZc8dwJgavCwlBuKqzU/CWOIWi3MC8K63FA6UI5XVvxgt8Z7eMWhmSL3kGfFt3rd5dS4Z+fLWFFNpF1axYQ5TEXVF2vKdV0JD1DhixKdsyxGJ0/UAI9D9St1vJb3BSKU7OxYrMx/tIHWxjFIcP4TsuVnySJF5Br1OWh4x4+5CIpBI3you0fBLw0cJIpdhztE3b+fXXaTE8EJspbdzzTG0tKo0gzksnWUwY0mnVPhT2reh/7pptjZmHBUxHHenFBJIBqffiUvLIoBJS47cuNA9ST/B9+80k6IxTiLZi6i0JwSORZSz7nAcYtWdNGA2wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-16oqzi_e2etest","name":"George2-SLES15-16oqzi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6ca7650-4ba3-41f5-bef5-8ebd62592324","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.001","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a4871b0f-c07d-4e08-84d0-0b69507c2671","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAvVRmrdPRMv7FAlXv8N6/UkDubYNs+GBVFPjQq5lKUlmj4eKGUdE/iaj8VFRV4CtHlOqS+OCx3K6461nLqWhIrJ4+mYGGTMALExsuFV4K9zt2OhoSucNGbtv9CCr1UuoSfH9tEXgbZIYesJgL8CYh2+j6mqwFGN03md75iL887OYOwCMzT1doyq8P3cq/imDcqSMtDooOQtG76OEFgtVHtEQzxFRJ9G5Uf8i7qxkc4yNe0MMbLvrqyMi5kRk4HXNOzC9XaPlRhcNTbmO5mbdGv169jpFprbeKe5TcYmC0yZ8LVGgAXDlA5Oxn4733r9J8wiAwLqFcNNJYyPeUp52CKQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUyinmr_e2etest","name":"WIN-PRKTP3PG6DUyinmr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5b6e2028-0e82-4af6-8cef-64889674a93b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"6a7c265e-3f65-4f29-9ae1-cabafe841beb","vmUuid":"9E6924DB-A763-4923-948A-2428BDF56583","clientPublicKey":"MIIBCgKCAQEAo8xDl6bbVNSasuySaQOrkSTDOHtbzUWV+5Z95lpISWv7vM5qm0YrMN9BhdpWsK602tk5fIOxfaRIFzOV2CBXrdACiEYpUw2Sl/Y7yBPLdWYoSw/rszd5jCTmtEe7fT++c6MJyEqce5C0JcWHFe0bRDbC7VgA4v4GrCSkt9K/6SqtNhu3OPrm2bv/30pqQej++RdrIIivgeqBSe5dXIVKO820UfJYI2XtimoKLPBEot7zujs//WKetNJaBXk/mqsLdGTMbHNnZOxNZY8PFSXTjrln9QS5CGr0002MA33ehDs5sMboryVZIud2qWS3V6u8KSYPxBrpPwZwLxRaKJSdYwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUr3pef_e2etest","name":"WIN-PRKTP3PG6DUr3pef_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"03b5eb6d-55fd-4b33-bee6-99d9f3d9e4f8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"5d4e87af-957e-4fc6-816f-92917b94fc50","vmUuid":"9E6924DB-A763-4923-948A-2428BDF56583","clientPublicKey":"MIIBCgKCAQEAxHdlK1wk9xecNKTyOF6qCJIk1n4A+6zrRZDTP46Gt64U3vOICTHdTTHgR9ZvLAAbUQDzF2TEUBCbXzs7Ay8YaoBwg1LRBN2GInII56c3+yLL+9D+H/wvRquqUlhUaLCrF0mEiHKvpseXB0+3y3Ilg7XJ5go8o20xf4ydf2I919VK8FzQsOXtyNcqNZ4SPAq7/44a7Rj++pcbCDht2hpBngV/Hl9SDr+jLf14vaRSv5Es+YABC2Hjbn4WbkCPnMvR+Tu5z3nDZ54LePUnYKEua52HJvpOqmhYlUsqkCcFsEJHOYRyAayjqLyXMrqoAczBZkeN0cmFyIdvuFYRbcYFsQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1i9tgk_e2etest","name":"George2-Win12-1i9tgk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb3dfc78-cbe6-4438-b30a-391bb8e04e50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4a4ad4e6-34ce-461d-bfba-1152889ce2a6","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAt0Rx0zruzbbbCBHOi1gwDmjWAunUZYwfcafB1fspo+j1FULzerhZ+e9W1u0evghGCRmQaUIRim3fWBTOJB1WA9K7DkPtPbdATMRWsNlm8BGjABzFZxdvJKug/leRL3YqrD/40FUfrzDBcQY3vYKS2pCIFr24SZ8vpNayHQqA9qpWist8ZAFCCBT7wMxjpqb1P96LJeYezPXPTBgRfINOqclBdB4PIIkxYhOLOELckjU0RbFlhlfJZTdNO4C0sSrLTl/nLg1CMwXObNIsFbJPhwPVlmpL+19shkuki0dodw2LF4mSEfacJ+RArmS+/wHGpwks6iNqp/ickCnCbwuuUQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-18dyxk_e2etest","name":"George2-Win12-18dyxk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7123acc3-99a3-4331-93ef-489b4cf15c50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f8df0465-7976-49e1-8afb-85fa86ec427a","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsw4SDzvoHszMYEm4Ksjybw/3yDfPfiS7crUh/IwP6JqRwC1GEXOB8wWWIcTVfhAv8SmdCycmgmKDJ+PPT0IICo4dfIDtzs1Xd9nRabSMK6hNxlk5l1j5z3U1JF/J8U4R/iaBa1P9tX0kUfxztul5t3UtzRHArQ0IGMgGK3Vr2wj+O52Cd4RzuWIlGu2M9enndkFigk7rQ5+o+a20Q9cO5fgSG1gdNN8CTY2k7XKl6G17pRbI42uMg8d2QRiTuQzQVL9qq0sH93PkrYHgD92AFS45WJZ8v1tsCmwIKXLzdWtaZCDi2k0YQV7RwTDW9hTmukCb1n9zX0kiXHSspUHZFQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002_CENTOS8","name":"0.8.20135.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"88cfd692-5b4c-428a-af5d-be92fcd60dea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"7a56a465-912d-4451-a892-8b966d26a093","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzuqtahE2UwCXz/u+9tTbVpTt4wLSeOZmj9YFS2m98BdSxXSzVdkVj699BF8fyAjL3+ITwAffH7wm0A/fiZB4cOvT32e1LZu39ifOR7ldaD+zR31yQNhbKr8pWF+lSmFXmwL6fWnR/us8iqvzLGyAad/q3qS/VdbsEESbyybnP7VeHbTxNp92glQCzCeVBvDKhgTFCr0lfR716q+XWynZsmGTlrbDeOTS4wAQUuUBmtgsqN/Tf1OH4P5Z1RESzUpWYWWe0i4Bv1SZM49jVnYQX6uWgVlRXnZIPeEKfuT2nhgcMINvy+jS1KInaTVBi2Hq681BV1XeiwYK0twcYMzbvwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002_SLES15","name":"0.8.20135.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3a31d885-07a4-43f2-a54f-960fc3bfd8de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a879835c-e413-423b-b0cf-3a7d1af2bb60","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA6pBiiiBdaCNgwr6wI31uBuV62WxByZvPaT3kM6cAL4uPRNzd+bj4Tdtlja0bFL23Mo2dnQPpEib+I+OJRWMgbx4WC7B0sD4lH6gJZy8wyYjP7BhzXbPJVfPJG/upWDhb8cnOZpdd3j7aq1cndMYhqEmMKHcJgmj2qlJoWWUppDwa7P5wyCUuZAk3FDmEStUiolCZGlVT67ptToIjoAaPKeFnjiKhrI6k5QQO/wwjAf3gCWGIRtpW918b3XO7OrbUtU/oXH2yLvtHt1cOufnENjjv/WReEH1aRUSuV4yS8OcmkNZZG36yWhlNA+AXbAnD3NJ6GvjA+iaeCInv/677eQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.002_AMAZON2","name":"0.8.20135.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5dab97e2-8b25-463f-a659-0f1b1e2aa317","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"9727d8ff-39ae-4530-a495-70d17afee20a","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAziOrDx67FuwZCMP1fJohot9EIcD3c4cEtRtGGvt9SsfNMrwltO8puEfZWZSOy9QNdYRWoEayJ2+7QVCYUKuEAQbMhlFU6j2vu+DOkXxkP8+XaBo65Okk4zwjJbtt8HfXR63V9EMmrNDZMT2T6zS9JbkELZMn72TFzIDMgozd7273riB1kf4fxiUXlVf+mry2Gj2vDPFiiafbNrolQh+pWy3qZB7+1Z6CSHUOcq/wle1Stn53r38NwJiezYoZfcG0aIbPVMsDC4d3HHRCcS1yX3IMSgG/Q/pUYhdOoxZBsUCegS0bV1ZFyA2KI8op4mfpLMndX1zGM2i5C9f+em9TFwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1t9dxk_e2etest","name":"George2-SLES15-1t9dxk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ed4cc0b4-42d0-40a5-9978-140b3137d7b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"41fe9b85-8148-4769-8671-2e765a44639b","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtLO5V/me88X2BtPifAYVn5Qoo+cXU/skLpFrGMHe8vuiBZUsJuHc4js77Zpjx5MpUPM3Zh8E+8nmcxfehDNBaJSW1a8oJ4g4pdx0AtCtnlGQ14gbHy5Yv74d7Bt7xvqGIp2cVWx20dAFKNA7Q3oyZUhVTog3LeX3x1fTcQz3kmcNjVEqc4VwFWApJK+CLf6he4sBDcYINhnlT77Xe2JYXa7RPy/4POJUezVCscenLYy72Ch0GrgJdmdRzj+jEVA37KLfDIgN7JQiI+YSXOBD+5xNQruBVTpbY5n2nsiEAn7clL5C3lrtZ2ztJh/r6L8pjKeH14wbFUV5WwU6uGCcZwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internv4wm8_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internv4wm8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ee747042-2f68-408b-83aa-534a8a44302f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.002","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"2cb61b3f-591e-472c-b58f-71b6e0d6afee","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAzKIItQE6zxxHX1Gx6AqGenhxBY0+mEu8kCOXH+EtfgPMiB4+cCSMbd0nryAzT8Uq5vevhy5tlpjevpyxZzhcZZdUjSIK5mgDS3dC9WBXNFUYEtVrMSvvws44oQpSOiDFWNbMt5UaBD+Hv4XkkqBxBedTlOl8LwdunLxgEToEiFnSKfSYZRHUYBUimlTpkFIbnx2AoiDO7YC+NCjorjTQiv/Hd80B5CoYAuHUJyM7YU7YEaxAdkMsrmBvtu6GivhMsRgRneViW7Rybu2jKb+clP/plehMdyWZKsEBE4F3WfRJZmDfPPtH/Lika9RFOSrC9chzFNpjRscAfYl8diskQwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1lmdap_e2etest","name":"George2-Win12-1lmdap_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8c31bb61-359c-4e19-bc84-39d6c4934ac5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4ad584bc-0da7-4f19-8b43-97d9f4defc90","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA7UwJ2jfA9Cm9RWW3yveP/R/avfWTzpIGOtXGBHTJHn2tjUuqwOOAy6YtSHc4P31zfjTbeRLFKXkdHtjnpAo16L58tfP4UllKGuSizNgqdz1NppJh6tTR6C5ktYtn/rxTasBbnJKphLduGRcG7ZgFLhgaAodyLKSC1g2V/3z9RU6AIR+SxMIPbiziaYyj/yQCzUnQ7x67IQ5g4M8Ofu7VREM4BYNIaMuSpGQSiYv/WbwxTRkzkTzFsHa7eszCiSfRcMXLx08gpNLyeJ5LnSP5KMZ8DDc4ybCDL7qOUDeKpmVPhjE2yCTbLpapt6xkA17wVrYFAW6U5smrw93N8s1uhwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1syrt7_e2etest","name":"George2-Win12-1syrt7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1d9a0b0c-17b3-457d-975f-f672ef8d1eab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"69687331-ae22-4aa4-aa9f-d44ca5a28eff","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsw1gZL/jKVeakisDB6gzvAZEW+Syek5M2Tv/29aLIiIEKoRX/LUAy8WM1Dd72KcU8k7AuYGsZhWHmOxr0lY4YduTa73D3nwhewl7ntGUhlUbgeoqThIa+7ahIcDgU1XXznM3hH+dYZUyk5EoBCN0eYGmzetCDktslBJbqzWqjFKE7MsmE+DCFb4oHvUP4NCGC0m8MVfg9wF5ZUHQal1l9K58tsw6SGoeuimYnC47zkKSSTJx+Bn5ZEhbd3t4VqikfePfKnfB5YxfmKcFmSg4MIOQUON88PyhlNYglgVT9vGjyabWdHaJRVKqwkpw2LjcZUXGBAxdm6fMf6/+0BpOiwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003","name":"0.8.20135.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"51afa8cf-37fe-40b9-9eb8-be4d445cef45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"1d472fc7-3a6a-4565-aeec-11a6ab84d643","vmUuid":"5F5B2A67-A1C3-704A-85DF-7D078D2492D4","clientPublicKey":"MIIBCgKCAQEAsxGn76k6zjWRUaiZGKMZTVst2fKY4bGxPMghCCOYqQTYVuaIGvieqn3HfkMYNHpl6Pbw35uXrYk2LNvkujOfXn0HlYexDOZ76i9wgxYIxI/RcvGJ1nUijLiU6hBQhk6t3nLEna3VjoiPmcgZpEt/YlpArqjfZhBYOPOOsZXLcXg/JPz4Bal+QS7FPELBe3Ofq0Da/v+qYdBgdpLY7HisBy5I6UtDgPSevaS5L+AC6WTqq6iqICLLNgsj02L/RaJQYvtNyw/A1ar0Jgyq0kCXfHcMddHc5lm2GdlCFqaZNt2mwPZhDIAs4FjaSap2lhT9dvuf5jicGIEUK4yrUM+mMQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.5oo3hiinadeulb5espkiox0tzb.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_CENTOS8","name":"0.8.20135.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b0930f6e-bf0c-490e-b6e5-9c72c05e5fd9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5f8db445-c11d-45d1-ac85-b3b7e06a0dad","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArXX+6MReScs2jV5ysJXXQ/szmqj3/vHgkEidecq0RLccx66UGD+tTXPUkO34ue2pTK7NCb5cbItz8b1/cJL0F5G0dmtkRO6LD1mzdh9fw3X1LkcchDzZcJQKMwGFJMvYhT/heN6q70jGCkYjIO4ubwzgmXFFytuWw4am3T2fbINv+hR13KRZZiOILFrFzvfeKLZOIDQECtbH3ZlBPDBFkrFMkGHUlBPwI0k653XEz45G61KXvxUrx7MhlVlmijQLnq1Us1h1vwKGFfRs1jbUApr0ve3/K7CJvepYEVQw/q+3O3Auh8o0LZUj8GrHxU/2qEdBSxAcCOsM9OS3ctULGwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1leayn_e2etest","name":"George2-Win12-1leayn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5958c6c3-86ba-4a4f-9ecc-730791a2644b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"e522ac99-b5f9-4fc3-961a-fd459f2405ae","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAkfIPv/jQ4RZkxnUqxFHQjK0w6JdcCygwMM3RwDJhLlUiiIFUudYnh+NdeWvdS8TKcDapeJeV1svS3TlNLA50NTGbWEb3AF4V/DIt4rwe9LNVk/29Mg57BCbIB5lSwaTFeki4TNyVPfG0WlOWkscLThqZUlak2Z7Wfz1NMxhuEgAKZAf2Zvcndi6LlqKMxJKCGQT1qBHgKGwgIRBSRM0SKINstg1a2PhrRPOmThs6m6wWJ+2k4hTheq8qf0ROu7YGEChWtzz90aBsfP1xJFmYouzK2IrEiF360x6NyQfDptWQCtO0dJED6n7YJPWtPB+d9XrYKcJjywwJap0vD3ue4QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1xwf4s_e2etest","name":"George2-Win12-1xwf4s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99b62b6c-92ff-4c3f-b66f-389e31df2aaf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"10a8fac5-de40-405b-a4ea-ed1862db7ba4","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAue/Ad0wVoilEkzEORfzQhHQBgRpmN3Mu8HKyAFODW4AaBONSdtqrrRWTQ20M2HIJLNIgtfgl+EXXIaLyEFs+CJaK1Ic/9PJSqt60eeaE+lbzMbhWn3qqjNAtrS9T+jEPr4ZDv8HVc8188vE5NgUJD5v2bIYqWd/Fw9iU6XQ8oBqspWKNBw+iVukkgcqeJ9oNCYZ0rfPYdJoP2qt2D1Msjrj+nuFe61rM4HTnobitMW4gL9nD0A5+nDRDwXH1zENluEhpqib3jojMXx/AQ27ElcFQkqHRkZsP59KGsxz+RnQfEcIW2qq4JxC8hscqdXolAUc0Y+2OqEwSJsmSyjVdTQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_RHEL7","name":"0.8.20135.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"572ee89d-014d-4563-86af-209e987c3d04","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"891d9688-4fc2-44dc-aaef-6bb8895ae707","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAxs4PB+d81dJyKH+JFzPmBuOOh+W6ZGpJ8nNDlppPMhGctFcw1lZ4lqEt8eMgWG0+WHy1NUM/uM/qS20jT90RDddkYWGwrYwWm6BIjKV43aTb9gH/JjRyOxlt1OpwemjhJwxKCpYcGpwvawBR2bVO0cDFOQiIZHi+e7nwm8+qh0wq9OZp1BjcT+5mfPIgcMyx76avMCgg4KmPGHDTv3zYSXaAKtPg4jvnF24ir5chwEPBcpc5s06OofCutFVo01gP9dnhcb9wP9jzkhJqU/6+jBjbFPv7KeqrbVV+wTj4OGFU55jmrmL6bLI6jQ6ja6Fziqw4Qij0XR4cIyrPE+h53QIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_SLES15","name":"0.8.20135.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e4e060b-da14-4561-801f-de4986970b7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"66a3c5ea-bf9d-4427-a938-b717c7f8b4aa","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtLks7wvMEi9R96t4trGZMZlebjdyyUVwzPutxmWjjJdBFZ7XiBEXqTHIjkXcOtEZuKoZzuiv0BpRwlwmfR7XOhtlstZeMK4GvSXbDsmaa/5NR9scMd11SyBW2Ou0rv+HLhtjAAG2DwO+wSPM6ib02BsYAl5Rmmq+5h3Eu2rRUKsD5hpX0M6rIVGMfmmkIy5ZS4aNb63Vi1kH97Xf/ZrsOw/uLgTNIxwmAxvC93LmZcEOwKM8vtfjbyxydUJFIE5Un6ctHLiHYUMeGyEECwECe5fBmtHi96uk13PIwVzfZyjPIe75UsTzBKEk8OWj1gzb+ng/8UYqWk8k0BWvXvLzQwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.003_AMAZON2","name":"0.8.20135.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e211a72-0ca2-4a36-a718-cf1a1d92331e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"d2a0d5cd-274e-4573-8df6-9c5542ee3023","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxu7Aq6dDLdamEwIuL/it8elO/a0K1poklCX5bL7nT5FEm1ZNeB3JrwQnswYwt8yk4bkrFT8HlBwkU3U2ulDdrHTB9g1fPdOmGl5gU8A6vGagMOtWI8nAbaDf1zb8lrP2CCK/kNXej07km+gGCwFiwNkzGsjc7knhgO0K/l2F19ryJxG2ViulaTqz+pnfmULkU8x2yv0Jbz3QbOYeXz/oLjCe3+tSEibqMb2PxU5Shf+jZV4QfqLp6MoO0uP9POSiBIe49S2GKJMnANFzrgDTF8PiztC8kswsLoIPyAN4g6r3kUq2pnmroDF94iDPVw7/QOXwcI9ijQJd81fRGGyiRQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1z1nqd_e2etest","name":"George2-SLES15-1z1nqd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c8cff46e-6fae-46f5-875b-2201013f7672","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"69245923-9534-4860-9b71-6dc4bf2178dc","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA+gq5rYddV514tRvyDl9deKymjGWtKh45tQg93x96Kx9Id/DzjBF0cqRShEQPGeibdl3m1uSIuw7jyz5uuL84iRIG84sD/TD0mv7SSSkYtyFD1FSHaDJTyOiaq63SkoSTXyUHxi1nArWYkywAi8FpxbJAb+g8wx1eeHBCWBlBugSlTaOJ0upEB2cMuWatbWADFjuUqnkdRgnapPFWN8SKRRUUFZ4tnP2h1x9LFHQKxnbVYRCOJAoW0NNtf53g8Kt4DxxxydTr2yewxs6YXhAPx2BL9c+ck9iW8aEq9ip5DCgZKDKOoLdi1fubwO0vEwNg2fjgm9prz7Wh29eDwVKO1QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internze9ay_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internze9ay_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68f9116a-2781-4849-bf12-05aeefa0599c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"c6282763-9480-446e-8d56-3e83cd569fff","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA5sqrhJAOTYda3Jx6aGu/k4xaVAwnSHtOXRCe1WlM0jcbA1RXd47i5PzEYV/lp/YdKiafSO6A9fOcmSnQGyqIvEc0iL6Fg4q2nbQnMBrrqQvgVqZKMWAoqoSDoqqUcX3HBGp+Pmhm2CUiv8jcvGKoka5t9sYYGVjnupAQsAh43rENT0J/ossdc3QGk6mO91cDQn3U5DyYku+Qkj7C2aO032ZKQxXA9F09z554yKHAUWIoF69vi15+y+cGCGB73IL7CeoHtdvGxVeCzImjumi431+eIIecgMeeeyNcSGx+Mq4CkZNFisdm1uLJgMxqWjekBT2bL/9KgNfRmQJRTNA3yQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_CENTOS8","name":"0.8.20135.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"35c856a9-53ff-4ff4-9192-e0fb8e7a45dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5234cf54-95ab-4de9-8a30-0f59253ff225","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzN8NG172Mu0zrX+GyjditkK1AGUCuzdq+Ps6XYcPkCGYzglTaXRDJ9SC4AZBSd7QXCCKovxWVsGDo2qP1LWCzlLESpKbWPZJihlXfZxb283+P9IvoNECTpTHfY9JPLrgeqrBd+tD663ZdnQMw7qJWQhBY4sUdJKYo7oWL/6DoIoHxg6bl9o/FqSrT5H1+4xd7fMOaxkvpvS7sxGHynClPYUpheqqP5KBPxYkjSuhe0122kcBPCatt4+orngHHwg869UDpXeXH3A7RSNN7YIR+l/BghXOH7mAF1nonlhu3xqJh1W41EaiYwnBPYwPfPEQMgyCD0ynOwugyPdA7gcxSwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004","name":"0.8.20135.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6e842d7f-93ec-4796-8661-aa725b835eb6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az508"},"vmId":"4291e7ca-46df-4742-bf9b-0545298372e5","vmUuid":"46362F28-1C8A-8A4E-B7A0-C2C1BB9717E4","clientPublicKey":"MIIBCgKCAQEAut/7+MpCMp9C5J0SjzIb+2wcP3vQ68uFx2aJfRZ+fnczxELblV0D4UMwxKIn9bLK5vllN+nRfwaupngnXSN0rEwtTsUdPOOtJSQqn6/cne6rAiWE9RVys0wJ2aqMYBbz8A/fuudAibMXqsoEmJ8kceRWFCiMpVY7wM+RDdLMf+2XxFSkEpVW4HZcXaYVRx5OnwOj0jemlb5IamfEQvOEHi/IoxZxtvVXzmp/Y0jeCDVOC34djBCaMLSXH9sRltm1u/kUsWKel5Vz5Tt/mwxR1YDT7qD3wmIXgRrBnPCa/PeBXVc6bt7Fs8nJO6kderB6IXiLfubtRN7HwsGxuLd+pwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az508.prdvehd45o2enfxezc4bub3qph.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_RHEL7","name":"0.8.20135.004_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"24b8f894-e6e2-4b44-b33a-e592a0563d91","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"695dc9e3-6977-4a49-a903-368f1830b1a5","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEArjyfp93P0B9LOP2xrdxoDww8a6Ic/1+XNcwiG78ivB1l+QSJhSMatugl8BSXvrhs5T7PPgZwLfqyyrd1uc/chPN9SZe6PST/ef7EeWnpQHHov6FlP5UvVJZGT8bJWLtiKPlowX/hFwPtgr0AbypMjHS9NrAvCNbdv4FgIC2XW0uTZ7b/TX+X8Tt/+E+pDpEXMs8TdwNrus3lkLEwCwXl9WvdNH6/Afg/2lwH4ALrfZ8HaWMt2TIgyOeAj/tBT5ro4zXmneTPbpxvVlb5VcbpFyP230yREVj7LM5Sivm6zQdoLrOIWUN522zQtjkPjdL1yXoS8t/zqt7jQqUxBeKICQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_AMAZON2","name":"0.8.20135.004_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"79a7584e-aa36-4124-8ed0-cd54f2b66e53","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"0fc0a0be-10ad-4cb8-90ef-1ccaafedb32f","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAt8ZHWS2bkkvy4Vp2zg9cMLlh1pgU0jQSeBOX+6iNcFmCFEy2MQU0IPFEIwLIkTwxu/dxk1hMEq7Trrh590Hj8lcGoZMbN3bQ3oZpqlqeS1kTEx5lxnRgVdlCmzE6PBDnR4U4Ue5sEWaSzGUoAgSk3RMF1qvFiyqaKsin9i5TVDBQIE4wbIbtAcyEe3h8M5LwvmNeU7AMoI+ng9aZL/PeTyHN4kswBCIugrAjubVzT9jvtYPO5ccpQUj8tuMenWPgfoZrmbVrKBH8qt2MnJ3IPH+LfOP1eXZb+LNON0zyuKR9laHRJej4p0+5E1w5byWf9pXmCAFD7XQ28pDtE7Pq8wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20135.004_SLES15","name":"0.8.20135.004_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cc907a1c-4f9b-4cce-92fa-6122d1cd3a02","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d3ac13d7-aaad-4424-8f2d-e32b4ff65098","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwUndd47HVFvQk1qjekH42Cuo9ppoI9HMWJuqeAjpB2jwk1qMNpEUHcpAsICTS/09HED1L++Oq9nyAZNbjYLVzz3+lqiaWb/UyU+3pCFGrwrK08EhaKETmaVPfkGFmvdA+5Mp5LoLYt+5l1VKYoKLXNccfukuLqn7fjvLs3NW8rxrcQr8gN6whr/UsJ+YTlxjktJtusSV9FilIu1/5bku+jwBeYFtoFjieIE1JkUpvxDr5+tjxhZrc/k+5JxBURAiefkx44ffyYMF+pLbmRA2JDeppOUXKFNHqpEcQZD6J3Xw6AcuOj5EIlKJ79La23QNEwEUVvJYWMMDzAitj/RJqwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern0fwhm_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern0fwhm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a81b1c36-f25d-4599-8c44-b1dc0fb2d31d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"bfdc1869-85ca-4ff8-a3e7-1ec36ed1fbea","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAtI/+/MVNnHSddiDkhNunM71eUiYTLuPtR2+BvQwU45s88/3VrzbpRD6T5p8CdtraCjtbZWloIZ62zavSLlkjvNAP/otmtBomgFA9JLoBIjJlYKEn8uF/edIQGjhX+aC0lFUTgNRunPADwryzma6R7oV4FKHw1/P/2yzvRs3phAt7yaf+jnI+Zkms6vUzXsq4wf/j/x6Ijh8+R2N3go/0C0YWumfWKtUMOai2GVRUTVF9WT9gu9HFYvux25HK2QkzNQgWzz6YpPIMLo6fDB5ID7WKa0mbW/zovyc4+pmzCW5KR1H5FACL7mW84xxX2lj7s8BB0tWDjmGTgTddgQGEEwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1859tr_e2etest","name":"George2-SLES15-1859tr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8604665d-d826-4cc5-b1b7-e067349514b0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.004","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"7b839e30-818a-4019-8930-353a2921e729","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtGcvlsZ7OQHOodaIJw97Cj7A59dZZifrGoJZ1FWuSxIvyJjzNt7zKY+YHhomZuvCNgSKkhcTYQmlCc4ZuxlOAIw6rBlOUAm9Zhe0YUHwiR6L6sue6FKUxDGPrjPn30Tm/VqCGc7MMCoqTVUC0Uz7pW0Jt+CkMHGG9dRRCyejkD0JDwXVio/IITzob3aH5kcjG3BqvAM4ShsWg114bEPXcmGEnwH6xum66/IZcw2IcKVaHa10Ae2J64TqTT8bFmz4ejgzHMvMSXuonWOanDgV/hJnfllYn4MezpF7QmvB4VJirUJm8xPvqnBOX8FBCnPccng8t+BmX18oquhZL60FmwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUdwnf3_e2etest","name":"WIN-PRKTP3PG6DUdwnf3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5bfa6ea3-98b2-4491-9566-dd637a626951","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"15763459-c6db-44ee-9916-5ceac828db9b","vmUuid":"D788AC1E-9680-4D8B-A723-721E1C444447","clientPublicKey":"MIIBCgKCAQEAvabV0sYy0/b51OZDNkwZpPjy2xI8+fTBL+U51WBl43jfnTlSI/eW11Tsbha6XjGaVgywAkjCSfTvFY9nRYYIDFKg2ELLEhTVEYt7TS2iNLvhuVh/NHgNJ7fUMEsRV8LugFQkFTkxQ0HZv5Cg5t5ja/gZNzZ2CxY8eFIoVVtDB9DvqXt9ah41g8RPKBgodYyfEssOgRc+Mjza73GAk1avvJQKCpBXiBse0igv0A4e9UyAIcTt5O78tUkfBhA5mN5Rp4hfOXGdlo3OnYH7Kyl9Jkb2lTp/uOSKzDZqSWgirCGn8umtjaoNj2ln5JMtYTy4WTSsca+ENUoMnmpl46+bbwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-PRKTP3PG6DUtfpaw_e2etest","name":"WIN-PRKTP3PG6DUtfpaw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"838f9c75-3be9-4666-a62e-7e6015ad0ad3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"WIN-PRKTP3PG6DU","machineFqdn":"WIN-PRKTP3PG6DU","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-PRKTP3PG6DU"},"vmId":"a9367fdc-110f-4352-b279-c7db293e354d","vmUuid":"D788AC1E-9680-4D8B-A723-721E1C444447","clientPublicKey":"MIIBCgKCAQEAne13UAzNZaeWKSQqgZCAT75LDKNaYAxgDUg/Q33ii8X7LMMMeVbFTtPYB3EN7nBixPWpRvD13W9qVV1ylJjUuO99lGcCMI+/IpX3UwvXYzVohz7Ay6H8FKlpYGAq1jbOstapQYqLMmxGuiGHsN12NEbE1QpXzbbyxksKwDaL44Rn6kE9dE1jw/CLMNgL7YDYz2vdcig6bU3RcN+dj9XVXJnXL9ua6i3wcZZ1NaymyVnghp6Wr1ZuPS9EjKKlOsiHu3OIuOtcJA22ykiK1+ePRbgaHWwmmZ3O5LpV9230eslJ5/78Z3XnDJEVahhjePzNVRqNd8NCwtoGsHNUzGK9ewIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-PRKTP3PG6DU","dnsFqdn":"WIN-PRKTP3PG6DU"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7a9TiAAAAAACA%3D%3D%23RT%3A2%23TRC%3A200%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAABgAL2OAcBgAD6FCMACHwBAgjsABQIAACBwhgIAUwAgglNAAQAwgALAoTMCADGAAsAwJPUB8gFgQIEBVAkAhQsAABQbADMEgGIDxQZYEgDocGEA3YHDAwBQ7AAIAA%2BBuIDcjoIAAAAAIAAAGgB6mwWABoAbgFiAAYAogAuA0ItlkQKAEQAkQIMAAAAAIAAAMAAlCwgCgAggCABQACASCQAoCgCRAQASYpFxAgAMKIAGgKmCAcAECIEANAAVgLmFKYCEAAAAACAAAGgAb4EBwAMAEwkSCBVACAA%2FijQDAEIF1EAAwAIiAFQAAgIngGmADoABwAAG74OhBVAAowIAMAgAgAAvgV%2BAPIYygDWAeYDRgGqEIQIYAK%2BAC4AZgBiBoQASAIaCUYIIgFIAhAAQAByAI4GFAAAAACAAABAAToMqgF6AYRWAATSCLoOVhg%3D%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '116105' + - '136995' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:29 GMT + - Tue, 15 Sep 2020 00:27:42 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 499e28e9-e8f7-4e05-b588-1e11c1b69190 status: code: 200 message: OK @@ -693,40 +1606,141 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0dinUYghgUSqpjOY1kuTQhI2td%2BAOMZKgxGQl7XqfvuOZJ2KLO6583MvvudtUIlz96CqXTuYvg0YrNbpirAU4sF0UHZd3U4ta59VmRR7UXU32euhETeF3lvtIW%2BLRtWd0lVr5SPheq5fmNvxJDPdsVeYvudOTEG2k8IvNs4mt6260Ue1EU1rzVXR6FZvu5v733mjNoHe14dOYKeiVJVov2e1Mo%2FIxOK3xB5OTNs3bWLWjTgqcfr6pd2peq13oro1RtTwqEFI17toDQf6P6FLHiL%2Bcwa5gHkmXh03XSgO189w8DI0iLNcI2noIlovgwu0bXT46ic6WMbh7BHReDRyxuhFcU8CecfVU9kCZcSPDRLRJJ6guXeBnpgMeALcZxEOEuEZLpOe48kUG%2FaB9nKDCfScPF5DOg23iNyPnM01Z8svOc55BvAEoaRofQgBKHaAXEIOKT6IcgjQyCT6pZmGZ2CgFJQBKIymLyxY2SAxSPlLChELE0jHkvA7CGQAAc7RV10CKyOgUMKMcpaA5kGCDjISPSvnCHGhJDp9ntTxVwAYRQEizy%2BT2I%2BfAVOxW18aAgaaYmUIkh8uLCR87J18Q5GarJLin2QXDffqs4IXzj47%2Fxc1wuURwwv7MwoH7%2B9%2FAQ%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7a9TiAAAAAACA%3D%3D%23RT%3A2%23TRC%3A200%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAABgAL2OAcBgAD6FCMACHwBAgjsABQIAACBwhgIAUwAgglNAAQAwgALAoTMCADGAAsAwJPUB8gFgQIEBVAkAhQsAABQbADMEgGIDxQZYEgDocGEA3YHDAwBQ7AAIAA%2BBuIDcjoIAAAAAIAAAGgB6mwWABoAbgFiAAYAogAuA0ItlkQKAEQAkQIMAAAAAIAAAMAAlCwgCgAggCABQACASCQAoCgCRAQASYpFxAgAMKIAGgKmCAcAECIEANAAVgLmFKYCEAAAAACAAAGgAb4EBwAMAEwkSCBVACAA%2FijQDAEIF1EAAwAIiAFQAAgIngGmADoABwAAG74OhBVAAowIAMAgAgAAvgV%2BAPIYygDWAeYDRgGqEIQIYAK%2BAC4AZgBiBoQASAIaCUYIIgFIAhAAQAByAI4GFAAAAACAAABAAToMqgF6AYRWAATSCLoOVhg%3D%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456m7qgh_e2etest","name":"fv-az456m7qgh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"597816c2-248a-45fc-96cd-4cbea0379dee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22004","status":"Disconnected","lastStatusChange":"2019-08-22T22:51:23.3474865","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"67932112-e35f-4d4c-84ce-279160a592a1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6N7UIhpd3HfI0wvTxKCl0TNRoeUyiqGUFHG0Jx24wE8193yywAZGjS840TGkjydbeiqrBEVtmN2j+cpriRfC7oeR2bwJeRZQWQbddmjXzXDrvk2478e7NkF/nDBbA+15bzLbRFqQsKjLacrqC/5WVYVpSMGiP+bpdBC/tscP7tJp229Fe6Q29fKvjMLJGjZv9NU6DpEiFXBRp5R6TddFtlLiCZPDSXmpkQbbBwwnZh+iecg8xPycVkuxNO6brjYzlmTVU0UN/h7Vzl4v2SKzuBCUz54b+ncQ9LJXfn0i6+kwYXPtBFmJrB+1EoojgJQJa9HK93CAIw3RXxnTDXU1rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10005","name":"0.2.1909.10005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6f22a53b-ada4-4cfa-807a-f79c14b98b32","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10005","status":"Disconnected","lastStatusChange":"2019-09-10T22:42:56.2232882","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3b0f8de7-a4b5-41ba-a731-e4b6a4ad3a61","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwMrJfEMjsxF1jyk8Lih1+EULQYkBRLrbD4NZdNfTR8buqZez0m7G7erB4fnPUnk7B+YYOdLa0A+olTr+K3i0RhOKwKMLtj58MVvMiXumBiz/2dW9ppEkpKZEpp4/GVzZN3fMdJVzqRDWZoGakJbwsT8+NP4shlVacrtVKx9668NV7Ush2DrI5OsKCAdXlib/USsaOiQXcT0Lp5Yc9KTbmJAT4IioQsRz85KyLojSCXaGfPdfVjnNrrpu/e7fu7OXuquMJ4RRAp1fe/pmfO01MM90JQhchZN1KCS5S4Wunl4AiiS9S1DSe8slr49DagFzEzaLrBx4KdRIc2iVwqhefQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4565mp3f_e2etest","name":"fv-az4565mp3f_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec5bffa7-f35d-4d94-9570-d2148f576475","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24006","status":"Disconnected","lastStatusChange":"2019-10-24T22:30:51.5298094","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"bdfaf471-2f2e-418b-af24-ba055e98af9d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2a5kd6H/nj0kGmtaHhRVOB/rX9Q5dvot0nS9kWCv18sgxyaetMWWuh0MEcFcz0tWrsCnX5974aTS9OF1WGNMSkjl2w7lZFn2LX63EjLnHVLFpVyr62ljHwGdWD616hJJ3Qt+GE5rm+9dLAFt04XijecbBx5cXLz6f4iC50/1AkBAIYD5UevyFemPq6L5y2uCaV/KRgP85NMouLp5RZEtULBe3riStEdjMpbozI4RZiWCCfuxqBWHn2QQQ6bh1YWt5tC9L4G3TuaElmQqxuwn4iDprI426Gsc2IEoupa09q7HK9yJkNMM6bg0aTSMxCAB8Y2aTfHjwF2BhwyWwQNJiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4587l5nx_e2etest","name":"fv-az4587l5nx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d90c9ddb-f94b-425e-ac17-7b4072c48a76","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.09001","status":"Disconnected","lastStatusChange":"2019-08-09T19:37:54.2442022","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"7ea79dbd-28d3-418d-b924-85ea0893ff87","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtvfq/fiRTUmqjDbOy16xEmK5kf1ZsFMe2u8/Vu1wCjxpqK+xPSu804b1iZ5mwyWcC5J4V63rjkVbuE6NouNL6aY+IkM1jVbkX/v61EFuo2iKLXI3j09AY+sQZSvUvJHB7sNdZQjIJFX+eDmiMWRkc72VJUyUo0V9ZeLqm9Mk0qdktCU1BVOjAEx9HzyMSDOX5P4dRvr3QG10UIERaeaT6YgQ0/ybVQDwMvCw7eOY5WS9hnY9kKh4sb7A5oRI7L/DU6j5UVyO+IJcQovwJD1NZYP0QmdGiwyTsNpIqSknTekm6xJalLvyDf6W8BJ4h17wVfF/asY3vkxam4VdcoFd3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467b5tal_e2etest","name":"fv-az467b5tal_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a52f20db-c5a0-40b8-b327-57c15804b1e3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19001","status":"Disconnected","lastStatusChange":"2019-09-19T20:47:43.2086272","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"8a2b6df3-a916-4dfa-b86b-0c9db57c0e60","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApRfT0g7t65KApA4fi/aM0a2UOwLV7ryQiAja9NRkVEJWkO35ztXUnjDtfsFMbFutQlRYj2IlOyBO43UAIrOvpTBCllMGO1b1geMwib2+qPydQW6P0ap5v4/u2TewYnOLg5RDC/L2da1gEUE/fTeMfC3DC5Hw3lU9A10WKsRU9BFA74ovsR5fMR/rHUEczWrtaV+P3glUIEddVornt+LU6nADzOEbQRtAZxJq0xb2C1FGLb8PjL5UkMftMjUeGc8/pOtPkZxecOBUZDYvcCe6bG177+VeI2DK78+kYfHfD59JOHYh7YhWXawvJ5kRa/iU+6ftRjmU52hyxzY6xzSQdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.10001","name":"0.3.1910.10001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b08e1390-7f5b-4c03-a594-f069ef669100","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10001","status":"Disconnected","lastStatusChange":"2019-10-10T18:25:40.413624","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e6ed7cd0-104b-4876-9e44-d79d695cec3b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqna5zVe2zOEC7E+1Q9hUAFxW6pfrLCSRKwcRb9mKdrT0N3D+x++RlayXJBhBUovMHXp3frPt2EXIPkUk/rqfMoQb2t8zSWCf2vrqNmwEctXdVVdEM9kIOOMsWZjxpWgA/57EAu5IJVv2E9z7akAlDYJuQjRxfgVIJ3FpCU2DcTtV57CyUIUgKBNYq9Ghol7oXFUXrgWmEhUUxyeGJ9nPgj3/kSLJl6Y7zQULLzAyTlsi0eTxHRISlnKwHq5Lbb9o1gSB54YuXdu+kAIhVLTY+mDwFHnJRVdQGzhpX6+DI0ME7HrBncZMiY0H/FZ0b0abmD7JZ0yJIT1fjcSU4+gGaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467bhji3_e2etest","name":"fv-az467bhji3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ffdf852-1de2-436b-b150-41b6afdca8d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17012","status":"Disconnected","lastStatusChange":"2019-10-17T21:23:21.9211586","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"574d4ed1-a4dc-433a-ad6b-c4f78a269abc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs65mHKBNWxNheOny3YfBUKiTqqyvBaeSssvAZ490tl/8C6Tv6VvoHuP3wQkjFW8m40cn8Sf2x6btqgWTnMVRIy3/1hrFT4ng9rji3u/ovEFgDKr9MMN1Ee727BY3RwnlyqiI+dRlrBzH7CbqHCrCy98AULV/KKmIzICvCvZxYHyhTjnARBu6BI1p5l+cXmGCzVXpaSuH/Oi6hpdD90TWwbql+DupYVTVmt/s+5BiJFAeB3P2arQJgWSAaEB10cYjir7vkruwgq6ZQKwYqQqiz+xhvGio3evjn5cblDcgoHN7wc84+/5J7FZ2Sc4RcfkgB9qtLyHF9T7Klp1jQPoYtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456mon0v_e2etest","name":"fv-az456mon0v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5370e73a-6b4f-40cf-811a-10f81832c853","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13005","status":"Disconnected","lastStatusChange":"2019-08-13T19:22:13.7476612","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9c47c633-b1d8-4bf6-ac33-864889b81617","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1hMkQipWQrrR9lh7J0ndKKHMVC00eW2tXmTTBuYwHyAgcdVNHTUIqBHMBy2lch/nKcv926I0c2suviMDLxc/rRXJ0ynMFl3pbOXFenASiA2tGOEk3kwjgW/cYYIKh6S5lNbHdQAqjsUhHtI4wqI9swx43gcSKso+1iAbk8LN+5rdWCz+Atk2cfyZLQGqKfMMGdSV6FJmJswqmjm/t8+n6W51ccbNlFY4RULlf9CLESf7Y3RMF4XfdhG9EYykRd2JumH+rNB9hutB8Olo6mLJBzFi3f+WQhhFNaU0JEAi2Qi2dbT9K+uPItCuWlkZlW9kY44xEC4sMwGypoiSKr/yUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.10002","name":"0.3.1910.10002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"22f0e663-5f2f-43e9-8055-c30a42fb1cef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10002","status":"Disconnected","lastStatusChange":"2019-10-10T18:35:40.5690125","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c4b7888c-6372-4649-a95c-4f283a64cade","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4xxg1R/ABO/5u6jgXm2aLs2pZibVIw6oiUtGd5DEo0QkmqAy39xi+R/XZ+anfGw0mqdKkHeCvJPzMdEPJ2lkmn7FiZ9EGhu1wEp8ARiqdDJkG1zHmZzUX0fsc5lHDNAyd5wmMULaOzRBKmLA6jrHeHR0RHC7sc02QihiymmuoE46e3+pTDgM8eMiOYe9pJ9o+awcAGxwRvbvFrr4qBxNMn/q06C7HUSkwore1R21pRtoKwiilQs9x2HptAknFEaiUvAGCXTsqaF2H94tDSsV+od4pJLzO9z5w2BfpV0jvuhdRS0B+n5NGfeaZG7yBzEdUH2Uvp5vtruTnWMKLybcvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4565mqse_e2etest","name":"fv-az4565mqse_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6dde0f67-f29c-4c4a-aea0-3beb63c5ec63","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26002","status":"Disconnected","lastStatusChange":"2019-07-26T00:35:24.1543531","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cfb23291-81f0-494f-a493-ff986a7bf974","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt9wwpKEEbUoULhDcbachtA7A13rHITvo40NVtAXd71NQ/3eg/0gMzhYScMuGDeIfT/RkJEf3GtBa/IHSOvKlhKr6ESUkLrocbpf7bWXw+SSIB7/eIoTE10mwkQRN6x7EJGDGymQ26FRsoGAn3KHc6ckyhyoVsfE0T0ytYVHVd7Ya9ZhvywHF9lxjhY0dmk763ljU5LKH4IPKyOButcWD0EWcGm8S93q7riWxHY3QLo394hrvjm6bcR9paaDPy1weNnPe9g9LpWfW22NttxP1giSnDPFV/9yrzekjom5N/u39blsBYZMIN/lFsAB9OYLZm9fRzV8yF1lO8b+qfwsYmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.14001","name":"0.3.1910.14001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"85eb9307-f55b-497d-90ae-0e51defccbb6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.14001","status":"Disconnected","lastStatusChange":"2019-10-15T00:06:14.1298481","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"441ef958-44eb-400d-bd3a-9d0a3643d28d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2oRWw0w+/tOZx6QjFwWC1pxajAkHOsI0h9NEJEuBEljBgGYWHl3KcH+j2+1TPFisVZmMfcIRYJJI0xDpfOQFy8AzaTygwxXQ4F1miQOP6tLXrW3LtCmuQtclQ31RnKy/fhhT92njFQK5Ph+241HY/XtTvD/d2liTcbj+Qgp4nPi0qWJA+iXL9ttoOCEnIrO5GyOxzy41MI5gxorLuQ8fUWszs4Yng7qgKwS0eLaEOJntYLfwPok8Z5I8f/8si9SMphm0v/0ZzqMclVc8s9/jgOQW96nP2IDpAxAyeyqHqC0uxo2M6DU+py6oqrvD1ZGIOSQG33PnmjJnQMYo4VN4cwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467bhq3t_e2etest","name":"fv-az467bhq3t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8673ba67-eb9c-4fb6-9c5b-363cef339442","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17003","status":"Disconnected","lastStatusChange":"2019-10-17T16:38:18.5168412","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"785fae8e-73b7-40af-b8f2-d39340ece896","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqkFxbJqR2iRKq3IPEp5+dIYCZNVRzwZsIm1Q5gvuht75k4DvRIXoyyrdxB4jWYtnhzQ5yrqCGi1zGKODASTWNbJB1N3T6FAHYgTcTFOwI3eHBF/RTxkKru6UR4Ex70SJT9iQ1fz+Zlo01zymqiAHCAEwXU88h56vFsirWl6GZO2wgLv9NVWcrb+FErH7ugA+9wkRMZ9clGS4iTY4hEdpd1/Ggk+My3wm5RYB5Q1+/x5xUJBBw3d2V0h4FbG0OZT9gec+VjqDWXSCRGx9bGMmbTmF6ntbVQsXadF+4GPONdaS7uE7uXZ5z58J3GQkhNHNCet1yAP2ZjwnSS3Bjc/8AwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4565pfmb_e2etest","name":"fv-az4565pfmb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a037c391-4ed2-47f4-9a83-5e5debfa1c82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20007","status":"Disconnected","lastStatusChange":"2019-08-20T23:51:07.2802466","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c7902f5e-2781-4d35-920b-9c15a11f3c3e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3/rkPOT341rIWxu8/VC8YFKZhfP02VBsR78yHbjRcMCdRUal7RUQxGEn65Die53Wi3SsWs7WEMFNF8mcj+cFOI2hG+u82/znn72pKlRMCoE5GKd/7Oz+mT/r0DNcRjElac/HWawWxwvQjiid63NgRlVEFvl/35x03Hsy/M+J2FJrsUUMPoeYFTS+boi5OuP5AbyiuRhW6vtqs/U4bhms4+1X4dHDpU91TI0Nom+az7lRV2GIFeOafq8AJ1LpyMkgpNwFpkIQytOXzAfJ4LGAyeo1eBn9UuBJ8L7OT5gqiH530zoJfVmAYkIcLSvPMeBjb8UYvRVtxORifgUno/WflwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461gk7hv_e2etest","name":"fv-az461gk7hv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0171f4b-ce83-4001-a04f-0a1a9f9b347d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04002","status":"Disconnected","lastStatusChange":"2019-09-04T23:21:42.3820449","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"6e2f3ca1-5190-4fea-88c1-dd97ef3dd071","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx5e2mUgk/okheg7IRT+hcQbAxsBW6ZjFvHbucEd7+T/oVpsmlOWdYiNFfL4wSSSvGLWMkCP9H/AgKEJjPm2NxUdxmH9CO+hyi7K+YQYiDCGi2nlj4tLOya4k/H0j1yR48ke9GQTf2NM3yNzcDOXix+uXGjECVF+tboZ057bPVBGMMlRQMmvtjVAPe7Y8sUHzqBtWWpPyqlYhtHUZwjnzzgvdcsESzzrTDZ7fTDl9KM6MFqyuN7OIHP+IHwog7fJHaogGEWzDsbw2AxpAg0Eir/YiX7nDZgy/BH2+0cftK5DXlVk044utlJWjZ+eaPyAVoEtWGUIqNJ/2DtJW6Lq6NQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10006","name":"0.2.1909.10006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1a58eeeb-e4ee-40b1-8526-5165c9d6abdd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10006","status":"Disconnected","lastStatusChange":"2019-09-10T22:42:56.2232882","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2ca16600-20de-41ab-830e-acda3a701862","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQJnGwsROv6GUrrUxe6AkmbltG5I5lM5FtdJ9j24PgbS2pUEwaORtFJKMkRBwy2WQbNMX3a/mTOpVMG2GPCGc8nIvYFre47xJBG2IowU0gJ4mwuDsj7ogOzgXg4lG/Dm3d+3G1hklB7b4GxeAuS92+QtzPgMrU2yecTY1UQ4Jf3gEob68Ko286+15RtGNPwo7QNRkCg7PItuPeg9G/X/Dd7kQljtv0ENM58NgHyJ0upnK6tQK2s1edTaqVLHfeG42g1dF9E4uGmQ9z4VruLUzhlkU8GjVTubqaMBcUCirHUm00lAqoP82wEMK7jQZj/FNDK3GKCAVzAYMfsWS2m3KQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461gvyuj_e2etest","name":"fv-az461gvyuj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ef7cb39-edee-410b-bf86-65627b92fdbc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08001","status":"Disconnected","lastStatusChange":"2019-10-08T20:45:24.3086714","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"0114e487-16a2-4584-8535-ae600e5cb6ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxmnQbeZW1pGSOCdkn6jY7O2rF3So4FqAdkxSh8e+CSipnZ4sATvPxuHCsYncr20PZsr6TUNTKRNIkepfZwyBcq5guf4aaKLytRkJNP66v//0a/hf3HUnHYgVDCJ00OULN9cIhApXSgw2TeBHnQ1broNWiAEZemgiOOtiRBczHlOWgZp9PSduU3tnbpmRGtKDQv62ZrmNZA34wyMGjygXdoLM7Z/tPzSoxar9oaZeHgYdxzm5nA6RlfvlPhZG//9TH/ns+H+InIKwDhUZ1f0KBd69oWnNQpzHdktUYZeN+dBR7UJaX+MNE+H5irfLtfEnF870Vi/2o41sQcSdRDxyqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ms2re_e2etest","name":"fv-az456ms2re_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b08a17b5-02cc-4e22-bc72-e0c216bcd46b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18007","status":"Disconnected","lastStatusChange":"2019-10-18T18:53:43.5370511","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"43121b77-2c36-4a3f-bdf1-feb6665eb067","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxk84OaXiNq2zqkmCAwJYgQ+BQR9AhkXn4ZkL0hHEhkTViirk5iTRLMoeJVID5/hms29mCuIZ9jUsckGeoypkAIzXRjyjAuTWKaXH/YN9eh26bqlAYkR+A14sEtoC+YX30OIUw1DGwMmDWaF5aQRuI3VaZZuQZM7HPrdznTVFO7ygUr5+KYhy9NdujtDYScsrjrRW/JGQatRQ0Nefktv4Y/RDbSRrMtQR8oZAodU/8TY37sn0OTmPAKAotAwNHtrbChEmV/gOkNIDfgLZLG9b3EIv0gv9UD0jgiFzKLZUNd6bFXZ0ecPkBrZIrBgaambgKajlcUf4XAgphi/PI9YWhQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.15001","name":"0.3.1910.15001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63425417-40fd-4599-9a86-ccb1c466837e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.15001","status":"Disconnected","lastStatusChange":"2019-10-15T19:46:20.1802967","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az601"},"vmId":"c65cd9ce-7280-4bfb-85ba-9510105430d8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo2weEzjL9oFOUkpgKQKySOl92ik1pD0s3ACjKo15KsLLc7ZqwWPnCu0Fsv3Hyj3SM2caQGwetTUmTy4BNTcv5RHo8G+jeAQtVM/qt0GKGzW5OPpv/MWSY88gBZEk1a9VoTXXwbg/fI1xKnKyiJOYGooZUs6+aWURlENPc46KBIkv5fsyR7e7ZVJKYXE/shqUftQDLp2SihWdU/HZBcL01ogAUv/rhdt1o6OO+QllfJ6EUXwS7yB7nXm7knZWNEUPtjCo4Si9mIDmCJDnrFzrsMBqw5gJoq0Hm/J128dZ5rb68q8GL7KBY6J3K7IXTvwR9G0KvAMM1fbyEWzRe8EHGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.16001","name":"0.3.1910.16001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d55ad16-3200-4e22-b529-b92f1e9c881f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b1fa3fea-5a60-4945-8f0e-9b7d152ac015","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1pWwMGcUKdYlMJ48SZYIdFJLpKJk4oaAav5r4/GFYvOt+6k6ipL+jmtHFL89NraJZdP9uPkMEhMHlMSVEfKgZwEATlQ532P/O9oLo0XGi6biPF2hOisYUTnrUSZ/6Q0Rk78p5Dhtap5JzwRgrzd9hvgP1VHX7jQYU0lJ9ibuOvK4YaIJZy7JdGYTcsK4NzUh/jYrK/xmFwmjIU4y1TpzpJ6HF6eM0xMMdfuab0pf9yEaMqSEJAs2rMSbPJugcd0+AgbXtGwKmMgICstPwndnA4ZrdfDzFFxkpN7hmSum2g6kgUwnjMZQruL68drOGqGHQDl6ZyTLY1Wng+/pg5SlZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461gxskt_e2etest","name":"fv-az461gxskt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6e023375-a7e8-4779-9835-686087007270","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13001","status":"Disconnected","lastStatusChange":"2019-09-13T22:29:37.5028813","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"02eceb31-a99f-478b-8ba0-bc5117ebe53b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuzXMVswWG8i5yaxmEZNaFBsNKwpIMgnNXUuzCnCCpc+VBpIKbuhwzBHPgQEhB9b4BZhxCUxjHSQokvDZb6Wg9ps5ZbXfQP5R++VirSKc77z+xsQruTJG2ranW17AW+atKIKeCY31q4P819wDcu/2vkDWw1BBxMLDl4XRIDGpjkGU2wVp9j9CFkfhRVMEXtxIUZXJcvOEEF3h9nDeU2IeHdCHtWaCNxAtklqZ5OeeosU8m5AqP1Iayi1kJmoKY2e1mwXwM3+qv9IBJfidzkjuEMUoW5UcqUTDgVZ53NygXpT7UDL/oZyOkiMcrKpJ/uHUwC/amF7qGeHjiXN+v4QRrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4565ucmp_e2etest","name":"fv-az4565ucmp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"abe5c8d5-5ce5-48f0-8e9d-4483a2c21f97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-09-20T16:37:49.8481733","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"09b3c3f6-408a-449b-944e-2a89f0acdb1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA40s9HF4x3sxDQ1GJ9LpimD7e9h0pmvDGqxrdAQ4AfnEiRoTsqDqROtiodvmPRGeAo0EnHcr913MbyUYVs5gPw8AfxTJwfkBJKhxfmdAQoFqfQPiajE9iTjKPmK65u1FkCISxYPjA9VyZqWu43exk5D1bbGnfRjDFcH+uLS/201vcPx3HhqB090yR/6+/tG3UMrIuTPOgpN9ATdaNPBnEWJj+vXfUAYqaf9tqwM7sYAZWBmjHMRAtSFVzfWgVLvkjq24KLxg4PvCv2Xos+CJbG/+FZ5Z5ZExpNVSzakn9nGXEHNIQU8bAxwsNEz3zil8qJS2zmzUULD36Fzi/5RuNowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467c0ya6_e2etest","name":"fv-az467c0ya6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eeea2f76-99b0-40f3-82d2-1d78e5309b50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21012","status":"Disconnected","lastStatusChange":"2019-08-21T22:56:15.2400824","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"31f69410-193b-423d-95d1-6107bfcd1ce9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1a4JkGOmlFUQWLq5Kkxiz9qr1nsCFyDgptQdEcmOSykmj02j25WBlns8DWrh974AwsOaBizHMUyMTY/3401tsgrwcj56/OZT/cLblKyFonK3TkQcCKRVYLMdGEvjosPyn3QzXAiVZKJPGJL6uuw9emU304E2dA3e66DfkzUv3DSXR38nDSXWpwzJCVsRx8PTzTidQtWfrmCUj/aRwaUbqkipTxOgnzdzHvtJ4UROYnZnZJqqsE5hTk24dQotJHPfGhoahlddHPUS7zrtSh/kFKZq6i+m1punqFPHD+oJOxeR31ukUZQIa6xCdpaRTBERevra8XbGw99hGljoxQF+TwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456mxj8a_e2etest","name":"fv-az456mxj8a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f0f687b2-5812-4063-8634-8cd999c0f31f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05001","status":"Disconnected","lastStatusChange":"2019-09-05T16:28:49.8262859","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d89db7bf-f992-4d6a-a968-4cbc68aed236","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2y2eiJcVsmmS8ViQQKi23M5lGYzTrG8lpru3Kli37wJQhmyBdv2b7j24HjMMwt8VPJJVzPypD5su4aoTQtsTNCp1wXV8739LeSrOk0uCV8T2KPqfge66rCdWCBYlMDe6xvQADIzuVEt1ziW5VSefDWN8V4AZkPEi+IuYR4mltNe+qNgl2uIQ0xXTlOLRI3pmCTVxS59/UfGlXZ6w1bjScEsn7Twwq1SZW/WYogtbMG+kLz02x5bFGbizFUfsbqjz0zFuoYUl2MfKORG6U03dekqw1u+KpLkuYUkGT8v5CQqrJ3f9cQtxXFRNrc8NEf+8iRTOJJ86V+v+sbF0Jquu7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461h08i1_e2etest","name":"fv-az461h08i1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9a41696-de5a-4730-8caa-154695ac152d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25013","status":"Disconnected","lastStatusChange":"2019-07-25T20:51:33.2389455","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"bb6a9b36-3509-4e85-9fed-6e526ac70406","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3O3h6cYBKUgnLIKzptBgyEK5cyyKYluj0i1U61gesgBOPEGk8ftcGIwG3islDIOLNOSenxswIskxdXsJeDm4yKmB79D3LuKKaLdvzCLPjLHQoiHCDzOehnlAmVhafVwalLurNNTY6Na/c7MKAK0sVNjZndidIhLFsGhfs6JyxJTxbpAxDbQoBlw9FivPcwPgqAPo1kTTZoMSfhCHYjtXL6v6wgAP6YNDb5kEmvlqfIaUW7H4xh5JoA5+o/I9gUlaHZb8ptqSULe72heQrUtLJSpT08ax37UC09IVqlkRVS+xDBuhhkRtbTy5I2zCLYMxfSV0mQYCDdANViVXslPnNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10007","name":"0.2.1909.10007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4c195ea5-f3e4-4adb-9dcd-6002e054b9bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10007","status":"Disconnected","lastStatusChange":"2019-09-10T23:17:56.6025376","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6e1e6238-03c0-4627-b3b1-5211e334a105","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0FX0yDolRJgb8fbVN72A2XuWrsmRz+vDkdt1FUvaeCb97TXFHspMogJR7y17VasNHoTPzDu1szB8yD1U5NvbQ/TVld+Wzv9Tf0kam+qcCTOozkh8KKqFYKoZ1cZyQM/sSJoguiTe1q7uUO6jkXYBIcfWyhXB1gMG4/D0ruNIY+DL/knutyHVCtTzCqUH1han9VUZNdPzCeLYLFyZgy23JLHbQOMsVFMakLqTDZ8qS3TuziGVJyZUE6psavyYCXEJ2JVrWE9tg3Ywsy/FI/w06hQrzT8A9p8ocrJ6nOylvsZBCGMEvc1USWDstoCiOnG24yngJoG7SXCYCOVw6+S3/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.11001","name":"0.2.1909.11001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f5f15b30-7227-4027-8284-c84f88ed9af4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11001","status":"Disconnected","lastStatusChange":"2019-09-11T16:45:52.6759191","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"75fc2036-f0b2-440e-82be-84000c0c348a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv+i6qRuLbQO3wsTOkNT5Q5nPuOqO7fVUiMgw/2om2u9WCPrYaz0ZD+0VpX86DOI2V/KQPdgtAONDpaJfL7SKN5/YJpqDWEGh7TtAoQizQ7BhCu9RIWYYRtLcpLRD6lNnJXweAOuZiMU94JT7yzFYq6AidaqpFPyNXEtpO61fngMBH88D0OzWYXvi0RjnPnqNWPfEda8vvmmd+4t8CNvsG//KO6iTpDjrFt4O9eMRoKdwbOjpok0ir4IONy4rfsV7wv/yM4oH7QhXlYoIrHkTRLDqg6RB8b328afJw0SL6UIUsZm0/yTYnxSnR2AvVaGCHEfEvPIWnrtg/vugv1YO3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45663twr_e2etest","name":"fv-az45663twr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53df1743-cca6-4ee5-936d-3aa33fd2360c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16003","status":"Disconnected","lastStatusChange":"2019-09-16T17:45:01.3960378","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b0e49fb5-a24f-4fd1-a4ef-62504b8dbdf5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3dynsOsAlIvE7VxY/ltW+VqS0i30u88TF3RjSgKSf9xuO9QnhHiORSJW8iiy7PYy4pEaS2vhxh3Kx4d4FW+W90uO3+01PV36bNqa2BGPTwiCGWAAZz6pg7aJlbqgdph9lvFXGEC1jTgDA48XmaPrA46Wr/IUtwT6ujMCI9yBtB3HMVwrV+eLQgjf1SrvvbPQeUYu7204Fm3i+QBDF0e3oNcJpDI41xEQ+VFt7f1PDHpZxxb08jcnp4zRhXrMTPy/BYlradKjuE3zHZHZGFaZ1zWv82alGkWWtBUk1NphRl3CltwbnOSE+TlZN+6srGb2xII7Pem0ZnPAcOaglAewYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461hn0ub_e2etest","name":"fv-az461hn0ub_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"62ff0df0-bfaa-41c0-b152-d42476a93d10","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"9657b92e-06b3-4c49-b453-474896391e92","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5n9mxB8AIWPyFbp2tnnvh9S7mup+5xl+3igW48CBfUL/khIKuGVfnHpVQFOsS5UgrdKb7ZYVLz8HaUsnERCsGYQC5ExEZkvXghewTTZATd9vO6eOBdnM9YIRSzFg20tOQDJCrgtydoAGO5jEnbHMJqabqXr7Xr/ZEdUFOVLlOX0fVkzKoISUMMw+E0ZaiNdTJ0B2mi1MT9QRmi2NI/PvCrv7QA4ErdN6Ruudd+f3Tqg0gbQWj4Qov7xmTfhmSbWK4rlq/gTcDXCUTqglxmSWW4QI2Djl3Odch+Am6OuZB0/kIw5o2rHQ037oYrNeiUTDtz3uTHhYHuLhSVMHUDaA+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.11002","name":"0.2.1909.11002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4ef04f9-d38a-4591-8a1b-e6066b3187ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11002","status":"Disconnected","lastStatusChange":"2019-09-11T17:20:53.0178146","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5d4926f1-c83c-48af-bb65-2f9e3999a6ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzTkL2dUJR/mypfnSJYwi7qklMro4rAB95oLJ6A22m1FJhomjmoxIaKF2/gJtSehuK+dndmA3HLZJ3XOYih13/6L8fQcs93YXyXloM9jCn3XobxIRe48R7QzTq2ngDz/Nz1kC4W4Xy/fWbxQw7jZ6Eoo4kaGIkaHTZvuWwv3NzoNmCQwPCWLbQWkLo/Z+HALq6HkcJ17TBiiyG4fcKQnErdzbI95qAFwyYCwivMUKwWA7n0L4BmgrmP71BA/dLNxwU5OzJQeaI948mxzrw+rr59EZnskfk24ZTPFQ1wN2ULkMIJlkAWurjf2O4pgaUi4F6sMK0f0OGzPFBuSxwxl72QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467dnti7_e2etest","name":"fv-az467dnti7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1ca5387c-3dda-4eaa-9698-225a83e4b4c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17005","status":"Disconnected","lastStatusChange":"2019-10-17T17:03:18.8889868","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"6a104215-0d0f-4d59-8ae6-a658f00c0923","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2PABreBxKVGPQt4iRze/Es71CRkb8m+mCkgqr/yHHbAzhq4HgxPD5u2zihpcbVOx+24IKtTb3bHdTeiViUvOGgL33t8CFTXeNrjAtqH6rVLbX6nbaqo6DLK65nwUY9VuQ8gTDEjl21Gf6mwe/MxncfySwgEmsDv7HbYNHO4RnJAHLCCmP6PtahLKzqYQqVYm9Oh9dkHctpqKu5YBsZPxoRwycevr/cxICxcAp9qgq6jd9corRG6EKJt+g8L1n8TiwaPWTzYjLsBB285ts4111wu1QCM0DurF/4EsEdFisSDnSiSIm17ARcDE6IK7BJoUoEdKJ26hEYjxd6OOxEtGTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456n2x6h_e2etest","name":"fv-az456n2x6h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3b54423-fe66-4f18-9db0-c519853c72b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08002","status":"Disconnected","lastStatusChange":"2019-10-08T22:30:24.9248881","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5eaf8f53-0a52-4964-9888-944d88a38b68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwWvyZPMt9ae56Er7v1/ldeYOUZeccKy9TkztAO8bl5HcaEiTIEDqqjXT38vUpYwAqvyuEa6dfgCeceErAr8y5TwTcQt2t1McXmB+q5RQujcbex26t1VK4gbZmvxOipSDJaefzcC1RoI+s/q637T36b59jgGpbKLVKIlc4PQVaHf2VN5Sla3Wq81eGSgEONQpooNvYO/NCuhD962VF8pQ90CfduNwTQ7mZFchZNrH38POSlttQ5avqceG8Ce9AkMN+hdl2g+9KHI+ZIqnFNTzCn+Rgrx44GTY+xEYOiGUOz3PmRr1Bn16ThoBty1Bs++XX/V+tA5YOqfuyuYXMrUNcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17001","name":"0.3.1910.17001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f7c29512-7ed8-4dc5-bba3-8c2f16b45e71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17001","status":"Disconnected","lastStatusChange":"2019-10-17T15:48:17.9049133","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"990a760a-dd08-4b25-8ffe-7246b0d81448","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxIuYd1efFhXNrcZWSNc+PNTStk83FwsGEHTc7ZLP1Ti3Gv+Uk3luqjyBvJ9P2Z34XUj9xWj9pow+KROTE14umUPk7Z6kK5cII7gcd1O4BDBhhxpDIkZjjBZzGtaV+SSztuOZUXEOOk4MM3mKxYQm8r9sc/WFzjivjV0umZzYpeWkwP/dovH+F5880rTu6hippD/b8M7by2EpyT3PALvs6YnAk4iKBf5lmac8rCteadIgvSIT9pDJN6HTRZpWLLZtPb4TKPyMi3BUjPZAjy+4VUyGplgJJC9mMxRcQjXbv9XjswNlPqPQ9NvUS517zSESlzs6PIbUdxNM87piSjVbrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456n3516_e2etest","name":"fv-az456n3516_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"afbaec5a-b9f8-4301-82bb-5c9b21f3756c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18008","status":"Disconnected","lastStatusChange":"2019-10-18T20:08:44.0941667","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"8f8ba6f4-3f57-4f23-9717-bd03c22cde03","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1RMOGmbPWGL6Ytfg0hVW0BzG+F9wXQtPkYaVSV8Bhz+Rh33/CKPJeDmb2mAqmu4rupKNhcPs60APMPLhVhKEiesIl10a2fllCg3tmiRRXo+WScIv2BZFOYTIZNVzQ75rFvMbaDwMntQJZlODP5iauMaLyh6jVRmm16OFxXNKJHiPU2Nj9Qm2dieXtiK9e0/CL/8jviGpoUQV7kKdcdkmTrspds2a+S0XTgwBNkPTF3cwX/Y6I88iJ3ffpMWjWwPF4jbV7f5OTjDMIZUTuni07cfydlbATqxAMK+vMhe683x9mVmquHf3zD5H85dYVBcg8L0RFgmHsbRstzjBE2padQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.11003","name":"0.2.1909.11003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4b73b9ae-611a-468a-b87e-38977327d498","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11003","status":"Disconnected","lastStatusChange":"2019-09-11T18:10:53.5015175","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cdc621c0-7cb0-4c1c-9f6d-817f9f4b1bff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsTsrsLAKmYEllPGQYMdy7MjgXiyayHCaF/vOeAm3BY5s484vR50nCXHLOXk9Lp4Ji7eR4TUb2WEushXORhM5DhJlsuXG69B6WUBDHXilxiLFhkOsLCj4gQoXvn4L2b6mXED3c1+9PfvTVDMSR9SUNUtGyidoNf3MsQgNUxHuCN20xYqwu507JdW/am83VUdUJ40RFdihqX+o3x6Xdc2qKfvoCqVMGTXDhJIec4OmIYvOlyt8QF6kX78pATW7a+7is2tApPKEw7BuIpMu3YJ1dV3staxP+XjJHTGvR1IITanZY+Mp/Km9VfTVH1lsDtJYfMwWZLKK5Wdl5a9aN0O7qwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17002","name":"0.3.1910.17002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"96b5bff7-de3b-40c7-87ca-d631157cc475","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17002","status":"Disconnected","lastStatusChange":"2019-10-17T15:58:18.0776712","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"c5552026-c8f3-4ad3-a3e9-0480a09ce611","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuzqVGiPDRFmyS80d0iAIc0VjmIaiFxedBHr8o6g8JG3U34MIce+va2rsFm9HnuPCJ/wo7Hcn1ShNztHZisZ4Vgi488xHyb1Mk4hNfuWaNhzk2QDxvtrMg37zkmZ/5Qb/+Hn2wK4iH9leLDz6hf/zFf2+8loXAmW6CQddF4QJPbudsp71z0YThrCJUnPaN9cWbsT0je/lH2GdGNq9ZFe6j9KSARcI4gwCXQDPc12WR+/JztQWQHIupwaUePT/+vSjOhpYTPjK9tsuEfajj1jL6zdCRuM3CoHAIWuRxe+U6CFYOFgpy8U7UtmoAl0V0Svuvce5jZZptelZDajvPVlnzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45669lpn_e2etest","name":"fv-az45669lpn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53e3fc55-5a41-443d-816f-148fe710e01c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30002","status":"Disconnected","lastStatusChange":"2019-08-30T21:26:05.748721","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e3981e8a-d527-45f9-b8a7-201922a56286","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3ykLuz/UKMsWWC82adpfgA4PMLSz4BIACHGgDMulRaBEZSkzHJEzgJy0mcmpem4KU69iy9qYIWeLTQ0C1gOX9cWcJBwfAMJlwtSaFnh6vIfEYvswp764Jo7lrAiJKANbzDWUgGsb21Lh2RvOEg2Hx7VDi+xD8qU80JCPyRsYPZn59eDKEWEHpW1lVQiNPlsvkXjwXnu+AukHCrJNxE3LM3d7YqlNck5CaP8AaHPOGf2UF9TaqVIzLTxXk0kuUnT66XXRBwSeKSU7559va9LNTA4jNUPnrHB9T0uEeTqx4gAaOkLN+MqMC37iE/611q9S+E7sPWRVnM/x9w3nA1BUGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17003","name":"0.3.1910.17003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b97cf8c5-81d0-4d41-af3b-224b6768df54","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17003","status":"Disconnected","lastStatusChange":"2019-10-17T16:33:18.4291452","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az623"},"vmId":"e612ce3d-bf0a-4686-9eab-3b345447aa8c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxsR/Vg3uKqyKnWVtPew0j5tZ9Qr6Ab+mv8wOZSyR64l/gvI/hLOAHu09Wouvcmso6l/Nb7OUaO4kIvIXcfEaWeFMX8WIvxGdB4lkDNeJU9ubBIdIY+gyp1cmQRfC/bFvmN1iFsgq4blD1jG8SoSsoP8rRNMW8CSWY4WDmFokSD8wGq6dCeN/4Vvm9AjlceJo3YbSWLX/spib+O5M5hg+W/p84vVNXaM5N/MygD6jxy2bj0EgKcDI3h/mp33S6IoqrjJSMzRRrEY/QdJwQ4y7TPIw8RFpuk+DOm0X4iq0tYT+LlrbJkqL5Ouaq9yAl80rHoYVvKU9LHg++c3d2w8agQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456n3a72_e2etest","name":"fv-az456n3a72_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a52d1c2b-9ea5-47c8-a1aa-ffb0a89ecc67","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08001","status":"Disconnected","lastStatusChange":"2019-10-08T20:55:24.400528","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"42e71885-7301-421a-b7d8-e1f61a925e77","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5icwuodZVvnLRQqdmCtVQXoei6Qzq7zRtPIBkG8YqDojGnbT40AYGvwfmrv28slYFdREGkrLWCNIluKE9geyaDjuZVdDvAf4SSE223Gdkl0QJ4FF/sAEtl1QxUpC5PHHzyVPq4yWw48Y6LRX/uQ17wH7nCe9VGJ4NfvNIEg242McfQUt/eB2g0FFMsSTi8/Co+0HW1a3UbF8/sJuKybyJGm/3Mtx6Qf7NYknXLeS1SsFCvAofMZk0JbN26HgK/SXpawVeK1ka1jDp8YbI+h08N9urUJ8pI+SDSguIgyAaMcb9LMyvcYJMbpRwZzR5jZcHe3g+g18dltmYUz9UVGpZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17004","name":"0.3.1910.17004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bc87acd1-2bfa-4d32-9dfc-9117621e45be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17004","status":"Disconnected","lastStatusChange":"2019-10-17T16:53:18.7655273","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"42316ed3-70dd-4728-a822-dad7395aadc8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+luMYUxuZByfT+SBv3YxZH57lX6yIzcBsg2NsPaBjudkY1zyQRL8WFThmVykntqHLwYquK9bk8Z/HELgkVQgdYBQ7X09fz31D1Hy4lVF0oU8n1Nl/jE/TcfvQ52OT/q/12BqQUfJU2/Xf8PFL1HPfFoG58cY/cJOH8L5hSgH6JzCzSW+XVFUBHoeC5D+qS5la8Dj1OyUuvpuJ3yYjtD6tp0RoC53Ap6lvA4rZliNnSY7f7qyg1kwM1xcX/6dvFnvDGslrISzbmAug6bpu7Zuqq8OUCWn07cIDMfllNwo3FsbDzVQ+janTB8zGX69Snz0iY4lOhFGhXro/Wbok/CmbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456n6c2w_e2etest","name":"fv-az456n6c2w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"08afa87a-de58-4232-b28f-f386477d47b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13004","status":"Disconnected","lastStatusChange":"2019-08-13T18:22:07.3062765","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"0679a097-7b2c-41cc-8633-f4e59f7b9d93","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApjJOfeUrsP4nq367swcbRd5HwPO8PI4ImMifmQEdCbt4VKsYscMdAtlffgIYxAHa8e7+rbegaIortxvEkwUA0WobwKMfzxJNzLTBbN4jTTN1Fpx//AZc42RVez+zFJVIoYhVjOFPq7EdJDNFnKsDzshpVIVwugl4gjTVxlShLZUv9R++LwAtDDDxpk0IcS6dM7WyVgct+FLwZpIuAhTHgLY/skpF+0AW2YWBMcD7fmdUI6bJFIRupqv1JSRqszP3elwfnpOX+5xfJjlgPAVGNqRAcCt+cBu+7Nd8bbLKT3n8ooMDXacwqIJ7YGeLyGn64KTfElmoY0wmrccqP7mwoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4566etum_e2etest","name":"fv-az4566etum_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d6525d1b-1dfb-49cc-ab24-4160b94d5dc5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.04001","status":"Disconnected","lastStatusChange":"2019-10-04T21:24:52.4186289","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"43505fd0-92ef-4d32-bc9b-92a44e486a72","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxrX/n9f4SCwdV6N6mpNpo5XWeNR8GEJ1/kUpZ18/utQEyt3TIlCqo/qjkvBL5Tu56ucZTKhXsA/qHJMnxxovwAvL5Pp70jQ7AeWdqA7AjcO9muCQkT7eC0M12LkEjGbkwhY5+vI2a5eElcIC21xv6K/0611wpvIutNlirm+zLHpac/T0nis6rf+OyQd0xYRE3s7AYVVNPPBorqxDE/LqadeXVHFxmwEctC5vrQtJnkupFgZah1I9PjepFWMgEOmT6Lpbsyt3+YXALnxwBy8aj8wD4hk7D0TqrsZa6dSW7QHFEaZprONzGll4bY/jSLUGbaQlRv0ozT3J8yEnNXnh1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456nshbo_e2etest","name":"fv-az456nshbo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b920c2e1-8582-4169-8fe3-071d3f09af75","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24011","status":"Disconnected","lastStatusChange":"2019-07-24T22:30:36.3029789","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d8a659c4-f826-4b1e-9f05-455698a90ae2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxh93Pw1C08IOFp32IzLAy7r/r/nqGtlgIzTmyD6bSHbf/zTxQWsZ2X+7c9kUaXRlUcPxFd7lp3Ac2Ra1vD5V+dDR26l8Xh2rn4go7br+U7YyskG9klobPRY34od5EZUmdPUOITuRneGe4ncR3OxtJ+038zxM1g3g6yjsZYWDSIjSOBxCsxVH/y7KrnI2dZdKCx0FcfFgwP/2Vir460yJJX56MzOS34UQkzQs7jbZeqSoHNzalfUlsoBct6kuq2jRQqEw1SfZBntYK3Ml/fthoXPKbpcFbQmtCORVm3U9kOQgDmViKVCLIi9lJP67eIUIp4wIFaxp4fQ1rFLtDOv6SQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4566klqh_e2etest","name":"fv-az4566klqh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"44cb20b1-bd40-4d24-991d-54459cd56160","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08001","status":"Disconnected","lastStatusChange":"2019-08-08T16:43:03.3105932","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6f960856-128d-4b49-8c6e-c0d456f1d11d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2OXvGtNBVEAtg14+VQAEMr6M5F+tmZPoDn0BArcZJexmYS4yI3N1iF3IvxFee+kIcwEffugqBNa4f79zBceZQFbw3CBvs+5JScJPzEaCXJCMp28qqYLylqUQod7s47uD/Csr9VN1FyFcvaJCLmwWbuXLXaiYIQyJcdDABUcCGvKc+wpMRs69rAHDHouY7t1mn2xpxD28Bv0IfcJ0sEwJkfpTxxuzoo8Vi4xrmfcJA9v7hyIJyOYHZgyRyk0lK+Sk/iDJlKuDQQUoPS7HJlE72B3kBiJ1GifGsTMjazkm1CY4LMJqWnjwuoOs4Vgq1dEGPwuKjVq+GmuIx+ERjxXC5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.11004","name":"0.2.1909.11004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99054f48-a950-43e8-884f-a1c21d3e79e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11004","status":"Disconnected","lastStatusChange":"2019-09-11T18:00:53.31943","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"17c6090c-ec63-4cb1-8511-d97818af8e6b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnIWoE07v77EQ3rwlD+BKNhwOVYdgviFTPMbZvKo8zXVewpxS3XUQq7VXnILE1CaM5994YXZIZWHAMI/9PJck4l84CrhAWtTxXvWtEq3IC5winlcfJ+Rv+dEJrCMwSu5NcrBlowonzbu5eAy4eIGkxi/cZDWPFFALPvUMRcytE7Zx9Ln0Oqv7av3Yfgtec1+tVKBr/qMQTndg9GNo5cEE+H3UazBjcW9UMWHXaWzuP58Gmwcv3RrQPGng4Zxi6XBQ/6ljyyGS/2w5aWAgO34CjmChCOlfxULWuqWEKB8B+beQ86VYGk7ekrUixJg8yHJK1RAai2poadAcEHGg/UYFaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467dntkj_e2etest","name":"fv-az467dntkj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"58155ab7-51f8-4a24-a004-0fe14c94458f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20004","status":"Disconnected","lastStatusChange":"2019-09-20T19:12:51.301266","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"a8541991-42d7-47cb-911a-64aa78914458","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzxydNwYDGBGUpVp29yAiOAxfbuNs0SRHur2GgPDotmvfY2a8As28xkgK4bxmxq0m6939SkNK1URfBDE7R8CrQBI9KJ1VBGXBSSJjgLlA8jCRK5dc6LTQhPxamKPuAtUmyGxuI3v7NesBXbfkQtWe/7RJmTMaZk2ciy9dIAq4DjGPfSAXYP70kahbcJGuhUx6r0usW2hqdHHkTGhAOYpr8vZMypGd+FS9ETy5kQCd7ODzm+6cqfIpTmOm7BMwbAeYXK6JoQ873CxJXm/2GsaOW0cDTvi5Yy0kLO1VhG/B/D0SEznkLa0K97nLguURgP8dvYZKgSzxguIbcXGIwV+SEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ntrvc_e2etest","name":"fv-az456ntrvc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"72ad2b84-91f7-4cce-8924-c50ec84f704b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18003","status":"Disconnected","lastStatusChange":"2019-10-18T16:53:42.4800251","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"39482603-4278-440f-85c8-01192433835e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu1ZlX/14sqM2MvKQI53GWHHwqFh3klEB9ckVQ4Aga7qbjYn+I7hZwSZUW1o/gwxh52s6srylGrL35pplilQpkNX5ovg6OpD8V+x6Vu3l9v6BN9NqyNzaNYrFNWVL4yfLQPz656nImJryDvGAI5IybPDP/ft/P9dCsdt5XgV9ptOr5mS3shGhJ4uZOk4OCXcLZ8dD4gUe4sOlKWfFj4Xal2YqUgEHf+2VVS9ebIRTF9dxZI+0TyOnYpqkf/bn4+fQN3jQXEQkw0mK8NxyscZIySSJE0ya+8IWyao12VGH5wI28vF7Zs/W1sjDUlvw6sXgIXvyLm3eCEnTAjP3jxgOPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4566x49r_e2etest","name":"fv-az4566x49r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f68efc24-2a05-4ea3-8dba-6c332e878932","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.10002","status":"Disconnected","lastStatusChange":"2019-09-10T18:02:54.3097016","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a94a1196-8b63-43fd-9e58-e5070d26ab0b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5U4flnzYgh3TUwNAJuaI57bsDaFN5akpjntvk4JihrK+Gx0fCV6rvRzSjhEUQkxXQTC8KJIwBrvCwyV8TiMErrZ+p8q+IBg2gZnv0jz5AUmarqrviereoRklC87IxzZvZfQESLB2kb7MAS2sen6qYWbLgf9pBN1CVnrd5S4F33x8wsuK+r7ZjLtxvFxl49zSMt/8VzrHwo1nD/DpPdzsBUbw7uArLGR0m7eAIr/Kt+DXDMOPgg5QwlLKG5AKZ9k8XizBoTMwG0qhYFcEuMi/iH6FdCBWpmiKaVJFzdgXJVeD679U5FEh5NqtkUSdZxlXjpPhJG6vaTrC+DJ0igIBLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467ewd6s_e2etest","name":"fv-az467ewd6s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4627cba5-04f0-45f4-9720-1aa3e11218ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"da507e50-680a-4793-95c4-7c3504b34edf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7pmOkmLFuUxg0ezawtrdtFqYI6ZvdSW5kOyavemU+hDvLClS5I+U8djEqX883gFjHM2agaCJBmJOkOjjMns3gjxI3gnqqyEhikG0GR8OaXA/PH1A287jJg78Wi1U30imD0M/yf+Dd5YB77PohhXhP9kAkINAxhVOJFBl+ZhNCAn+TfYFQWUTP8twoweXdBmCKljU1V0S7pN+QmAVxvpe15BCWBSgVo4m/n8qJw6A+oyzDJ5ewEVu3G5Jww2VtBrcrAJrhg2TIGW6k1iVHpNDNB/a3J5T9vf/HTirHY0UHTb1AAwPEknDGCAOsBbnwdWEdDdrbKKqzuqPhBjyTNJRIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.11005","name":"0.2.1909.11005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a7f3de5f-2160-4bc6-9dd5-4bb850c5a364","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11005","status":"Disconnected","lastStatusChange":"2019-09-11T18:25:53.6922869","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"0e2bdbf6-d120-4eee-8c7d-c94100c5c972","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3wo9EojJQoHUvEp92kh+nf6gvN007ZBp0gUTyhGUJ8+0pLk1mRR88vb+EMrWiXLwOD+AY6VhF0tXJ/Wx+7EmN7eTkKt8NHFZEEtlYh8MxkmY6hfVT5H0P3LWoCjj3zEi65fjBZxRf+c6fhUxFLw9xip8YK0dxyGE6+SYn2C6AQx1/+ZqWTJrcjGFsZfZcKvJGaXR9idWHwhMuxOSvZHDPNCMiVUVK/IDUB0pJMIAwFsNYBf2ryHAv6uGGx7w/U+vhkY4QjcPVTYcXqL0pN8Dj7d6S/mVFZ2E9Ee4/V7Iy7Ec/kdLXV5PAKlHsRo+eoNPb1zJaU7jJE73QUKslOd/twIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.12001","name":"0.2.1909.12001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7b848ce1-fca0-4eb1-8892-823dba4586a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.12001","status":"Disconnected","lastStatusChange":"2019-09-12T18:13:25.3748062","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b8429a2e-ac26-4c8e-92e7-36910e496626","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1EmxTUZOJZLTBO71ODvrbgfLpeDNmwZxzSCSP8K2tJ1/NuUaIBSUVqlEWKKGwQ0IobmutDAuRQW7DXXGbhChSpMlVVGeZYpNGNuRWtgR/n1z/Ho3jSs9w2yoBiCbluunKTG3Et6Z1vPGmNIe/JO7r5Wq6w0GniqNZzMMbZkNj791CA9RSvHMPnxkeAO1jBu5uOZ27l05bgFXbDty/5LyJB+1tD00cSVkk6souScplhvV1RyUFfqRi575Kq/Qtqy0p/lWo5cjwrXE2qvDobsFjlVfeB8Hgw37kjdNTBglBVNVBWlPtG20SfsKOAAvmRBZrZ+y1ytCorgMo3N32MsJ0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467fledz_e2etest","name":"fv-az467fledz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"652064c9-24d7-4db8-9942-910156f03082","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-09-20T17:02:50.1245538","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"75b9a0b1-5fe6-44c2-adee-3e28b5c81fa9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxGcOrXkU+RbiENPxnYBnsQ4ZDF7rrlKBD9S9Mvbq8V41fB9kf27OUMU7GnOXTwKIhSyTwKKmh1JUXwsdy0EPobbWIwftWsfbXLEADxELOjLxi82sevVSmLXvpdl02UeCgYwrT+ItTw8IcBCxy1U3rCF8T835/9JIrCsiatKNC+CBbGZ7Zh2O/rINmPLzOz/yGwm31DlkgoMCWYKec6jYsWrPEnmx63bLymWS9bhMA2kzRkZMVxm8o7FBTm+uSAVxMbde/xn2yT5JqbpTXv2eD7D1RbWZTfEWW3mxKD8s+3cq2z3PL96LLkUrJ6cUsfCtjnry0sLrmgtkBcHODDdejQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13001","name":"0.2.1909.13001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d2a5f8d2-0f49-46c3-b07a-59b901fd456d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13001","status":"Disconnected","lastStatusChange":"2019-09-13T18:14:35.5276511","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"95c5629d-4217-450c-90ff-ee2b10d7f084","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuLZHNCTXZONV1lsf4esspBVOLZT64RDYGahq12Xi6LVI6P4xDWzQxSZnvq3MLKtVN1CC0BJdTVh1Zep4j48EGJ+H1UnqxsrQZETupZxIo6JvygUxaiSo6LF7cmjIZa5DC1noWNwSchNCFlWSupHfQqtZu5gFeCf+9tlbmKGNZ0nIZeGYaiYFNN85AvI0ZrWXRxbAIJ6hnl/w+0YePEN4O+25Jnc9xmBBOfuwl73xsJzZJ2DaAUHLKEFEyr5RcgwJoXj3wEdLYYyoypKhVy8RPPQ08alwFJyYrnCOs+5E0j1ySwhol6qz7C6xOqd7Oi85JLrHvmFyKiBY63Gu5O2XYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467fxdiv_e2etest","name":"fv-az467fxdiv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e75e95fb-7b80-42c7-a690-75b9db3074cc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24003","status":"Disconnected","lastStatusChange":"2019-10-24T21:55:51.0279103","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"061efec2-9f59-4451-8b43-6c9a6a163565","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0jtQ8OBmMGzswZ56fy4CKW+EeQxlWtozuv261lg+cRpOZtHA0Ps5Jp4GDtlCgDX3YSWzYjIE6bDIgIPd77UnBLi64NhDIXg8YcQ6dCWE6s5xX7aBR6WyYoUXfUZRvuzVCp3SGMp4AsgBBtEw153tdUHcYUQvMJzc4EOn0MEtQNTqOBFdXXbiS5iRuVkQzGb2IjLs4ZgJUxoc0CdLXgIKv59e4XSk0Xb+MYxsdCweJrRYNO3i8uNQYaK5pl7k8oWfJu3kGxohnCg4myBgHBkXthHgyrlMB8PLIa7bfznjTe0PNJtztm4wMVn842VLakF/eO3nEBHEjeWvAzBrdElxiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13002","name":"0.2.1909.13002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"307687d3-3943-4877-94c9-d4e6f13c67ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13002","status":"Disconnected","lastStatusChange":"2019-09-13T22:19:37.2612615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c7f09973-bc36-4bc3-b038-d69d4ecfe122","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqJcN/SE/yamKNh/tku5ScqL8L1HXb2Evc2Ohe8rB8iz0gR431w+rVB+GSglcaix30bzPYG1HF4KGro/aflJ2frPgHru3Bg6VuEV8wzfPDQEt31izyTO5OebD6m8W8P2mN2Fwfw/e9ybGTjpU4wt2TEKzyhHHWDhOJ5daAkuF675AUMATkkz7LYFKtuWL20JbIoSU6gTFXgen6gEuu3keWotCXGwvSg30lJQlAY19VPTxmpV+gYW3FWFg/nM7ozqfx1e1x83yjy3+f/NW/q1TtOYDtN2oGvCTvgkp86B+auGSbWOLnHPLDNgdb42dfer1L+xJpyUYFFkjmoqTaD9cZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456nyo6c_e2etest","name":"fv-az456nyo6c_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c5c447a8-209f-43e8-9227-2e1e6e861cb8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09001","status":"Disconnected","lastStatusChange":"2019-10-09T01:15:26.2361944","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ae55722a-18cc-4cd8-8007-301e15ec4ec9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA77ZtLTctVFpv/z5JjQLHkGRsVtWR9q2pBj58MYlL+cEgWGAf3oKN3WoMBu+kIaDS1NJO5tHHwOl2Dw4UQbfBw3RE9GfHrhtU5P8Q/f3zYcjXJ+y+2ypPB96uYljEUjBaQujnRupUl0UUiVCQAvZGvI2QFxCJtZ/tNjo2aVKz6K2YVz66aDIhoccicJu0rnjnw4m0dnUOkfoDUvvgoav3HKyQ1A9XGKGTf3ck+yr2IH8YfD4G/vzvcrbPO8Du44wo3rHKZaa0ipF/KTZW0byqj81/AJCkcysIkW2BzrD62BVQ0XCup10d21shcchrVqDYoIY5URLhDI5VKCIpbrQjxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13003","name":"0.2.1909.13003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d63375db-46ab-41f4-bf53-84e13aac10d4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13003","status":"Disconnected","lastStatusChange":"2019-09-13T22:29:37.5028813","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cc63b0e6-bcec-46e0-ab9e-2ce763f13a09","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Jx/rnB8R+UfDrsar4HpPwfhUWoOCmmhkK3cCx2j/ypUX2vrR45gQMKUFyApgiO0mYKDeZENkYFDQj5+c6t6z6isKOvjBGYIjvz0A8DIKkz55BANsI84Ecrs4nUy/TnMLVGmbmrlB/wfZ+Nn37PVbo7ql+CfzC31t2OaNEHB5j8iT3x5HR4mpJ/mR124H+vnMKPj2AESmIRHa/jjt8v36LtgFMN05iy2Xr6dWakIjAPQM4XKUbqdc4ozHF53UcNppjT7jPnHU+2AMX9ndKZl+qrY5SHWDYveslMdBCLQoKP5FYYSdLsSqQTh97giiCpkVg1ayPvr+stBe31KoE4AwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461htgi7_e2etest","name":"fv-az461htgi7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ccbd1f43-8f20-411b-89db-7c4b0417d07d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24005","status":"Disconnected","lastStatusChange":"2019-10-24T22:15:51.3478374","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c01808e5-11eb-4736-acb2-0924ff4b7c9b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5J7oVYExt6mR7Z40da4VQ9sMCpb3v+FlM+0HfzXUjn4MXs34fQCUOQxX16E4W7ycLDJ//f9bU/jJtxL/NCTYAFlwpa36uWLOPwdkz9qd941HxLtBW2t5gjjr1IA/00dXsnqj1o81zt8K919Rq32Aw39ibmrjuUnHwxX8XWZyllZwxE4VGFGwO10m+QWy3PYwQx76140YhAtE6/1eYHz91RMdmPZ5xyL7Kaxbafzo0/s4D8tisRGyUEFUufVZU33ZbNn/LKfQSvoQu8et6ByUgVxkXXXegj5drty3UB0sbodMHuaHI2BCWQ1AfPPjoq9BB2AAGOlpZOkL5WUa4PkWQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13004","name":"0.2.1909.13004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"65ccd30a-e6aa-4377-9141-079eea6dcd7d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13004","status":"Disconnected","lastStatusChange":"2019-09-13T23:04:37.8189421","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"91781dfb-3b24-45e3-9a7d-c36fa1ae2831","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyYIfFVZ4IqQmtNlwboNkyMLyzo4UDDCY/9nExT8n40LwTkOQCbJ0ZETU0mU4mbhi15xBuOSmm1RRWx1VAKa/w2JSCgBWIC4LAQIJ21D0ytDbkIUj2RFkGCSohPNlwirp4ntWtHQfNvKFxi54TgPTxJMDkxAUUMWVFeIgnT587fhpPUOazrDcp/0WMLsIBXtk7f3vYlePQW++SvwrDGArSewpd3i2QgrufvSZcrxWwjnaj8mzm07nErZxGBjP/HbFT5SIgfth9ew9HIL3qui9xHF+dobQkf42qwadePMIXBTcN9/W+5DDrKcdPXy03d7rrs7eU3w/cY/hjmn4r6/IowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461hwbv1_e2etest","name":"fv-az461hwbv1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53a0d30e-1dec-40ad-9983-c9b1c14355f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18009","status":"Disconnected","lastStatusChange":"2019-10-18T21:18:44.9216218","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"307f88d8-2fc8-45b1-ac9b-2fc4fd4aa116","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwH0gWHBF4DmBdBR/zlkWivYSRnQiYwEEjRvhO5c5P0aa+BzWtD3RZkuvqS/aPIw10bDfC+koUDIwq6hDRvtqw25M081Rg2xbrqhLmjyGhIgE/ze+h5kQYaO5dywh342rRetKoBRo9ttq6dSoFdvh48iVT9FBsgXhyynQ0p2QS2bj/mxJfZa4zALMjZFTtgjYCAjRB+gKqG6fTrXkZ+kDTqCcbW5Mg1VRE6FiAtlKr1JLzaCbE+DxiaKCMiPNjTDrpCdLET+9x9B4olbwvn6CrYPqJPea6VMznCDpGeJ26H7836F8DbjP16Jb0tSsUes1DmBN1K/32ZIINX+NXSdeKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456nyz90_e2etest","name":"fv-az456nyz90_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a5f0e81f-df7b-4700-ac62-00b44b036c77","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.12001","status":"Disconnected","lastStatusChange":"2019-09-12T18:13:25.3748062","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2ee33fba-1bd4-4ed6-9b89-4b9a77e4c382","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs3bDx5We5ifu7K+NcFZHWXX+G5E5cMl/eg34KnQ/n+pB9GcFFLjrd2dS13Ih76kBL6lRRA4l17IGDmJ7OPThz65qoWEQebamBL7/CHU3rJIhFxTVrCY7ZqJnpS+RyKJMFFE3q/AwdOtiNY6zNoUhxTeZvSE06ZQ3CRDNaL+dNLoHAse15cWOvxnUa9yRGvzh90SP+NMjSyUvFIFSqK0/gyaN8fNddQBNoFZuBljU4ZUsChLYIO862+CCBNu7ijABJKt8unCzhtvG4k40EHUfRAW6INtMUmEIPSFwO2MjR+sueoD7JN44l1lcOjPBus3czFuRb1FvOUi9Rg0GWY4C0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456o87pi_e2etest","name":"fv-az456o87pi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b21c322b-2644-47fa-9098-3d2eede3ab25","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T16:22:49.5482724","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8c830843-3d87-45c3-9c35-4ef4a136e2ab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvUvyTzvnv86LA8MWFe/bU5Igm0WnUmx2bodvuwsTLUailr2MZZ8rsxfR2ATL/A4xibL1PyUrt2rfeRBTdAcVjnjl9h1I/Ql5N1VNuJNykj5hZC/faGM7JMoSK4uiFYq3R5O7H3gurhOzv4Oquz4C8Rpl/SXq/WMjnHL+Qn28MmC8evIf2JjIFYlGjxoVPMjQFzsordve06C3bhntz90uzf/FI+hN7aIkP2vO2wCxOQ3WC1W6NXozzRu8gwWL65oAQXXbMsajLcOCWONT6YtLa3R6HHKmuGpwvmNveQ7XmIVR5Q6CboR/uUryo3sLZmmE65kmIu35oOoB5+UZoG3gSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467ghirn_e2etest","name":"fv-az467ghirn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8c2c45e-2b9b-43e4-a42e-d06a527b6504","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18001","status":"Disconnected","lastStatusChange":"2019-10-18T16:43:42.2692093","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"22aaa775-c36a-404c-bbb7-9bf523ca6dc9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtRDenG1WDM7LCYB78QegBb5jotZB7D4kr2jNq3Zd1e2V6B4HuWtRThm8aN9u641VycJudRHI1DtE0eAOV2O26AYaXu/dYDfvQUdcBYUrfuYxBpHZX1NT5deRSVHMifu+zPLnNc9d+NKgCDHuUdA0gsVCDduzHyMD5043Sd1/FtUs5DPpdcKsTPK0yVN6WLBE1GNbAMdfEIlU+3KbBJq1K1ah8C5oTmXiJS/70z0+64GWX156PfDt1I3ZtSqOYTbDZMmZUSkscE30qj5nS9pP9rz4kOneT9g93NuPr8PU1WEFrBw5WG2cedlqqMR+JTWEgZTH1AhMVvS2QgxP7fufAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45671hkm_e2etest","name":"fv-az45671hkm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fcea4a57-89b5-4cfc-aac4-a2c36fb018e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01002","status":"Disconnected","lastStatusChange":"2019-10-01T18:21:20.4790587","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"63e29c82-ed49-445b-87d3-d238c0127554","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzu2bEXKR2qNYacqW6AAtPP5XSWjakobe/J/Bo4TzF5s+GAQulE+tibxlTSBciwtvwykvwmSYe/ZhQBy3qdQDhSbCMmQ7b3bRKUK3FSQLpS8W2E+kQxEYdJ6cru/PBRsGawY1YLxVObUG5C7DNjmdKX5xj95tSFMvzSfVHh3nG2sWCTQN63G9lJu8GiB4/78PRHG6sY2yOuYMk1wU5Kmlt4JV/p5a9rm6haZCKBaaOj0AaFSJM//zQsKNFYlnmnrpzHnE24a3mRps8WFr5Hse5bGExClZUR3VgWvaP9QbZX6EbwunfNUF6VSxgMuzjSpcKy5aSq6FKIpE4forksQ5FwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461i1zwg_e2etest","name":"fv-az461i1zwg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"490b9b40-2e3e-453b-9a8a-3ec511a8459a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20006","status":"Disconnected","lastStatusChange":"2019-08-20T23:21:07.0408891","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"438eb625-64f7-4c80-817b-d39112a5e822","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2Xhbu+CndSqmHUpzqjAA7/o1BaOt3KbiQkRHAagQH3pHQ09AnEhtgWNPgqYbbhVDPpIk+32ghEdSdB956FnUu8wqPGrMVChwwvaFrzldgZdlqGkCaWg9YihktumQAG/bt/llk/hG9hLfiVopb0RDnDxeRd4URyk8jNQSulpDej7mlQHLA4Iaj30xGlHGshcB0Xl4J/LaIX1Ov0ElKSWDM9ruQ8XfJkOV3xzDqmvk4DtSO2BudCK8AJ/1ISdPkCS1rYYIq4G75S5JtssTDgZVVPopFR1WIsd/c3WLWuJmrkA7Chev6W08hA1L00GlV0agNOlfbOhNHJ6EqZoRhsXq4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13011","name":"0.2.1909.13011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2b104369-9433-4bb1-b0f5-65dc3de1b4c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13011","status":"Disconnected","lastStatusChange":"2019-09-13T21:59:36.9337665","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c3c039d3-cdf8-4a17-a5bd-2295c70755b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3FEMQYgJgIfXGvzL5Pph6z6SadiS9o+t2icX6AYx4v3NDGwLOFVcNgpPJ9SdgSySaOVw+pJ47yheZS4r2BUMnOfk0AfbcGitVssckTmaOt52fv4nixEVVR8O7hXFgp7Bm2xt4P5fAdFTGICJ4SW/y+xrHQXFr+OhftajU70qAP1UkNoMOu8UhL2h7KL/byotf8HuJxcBGdy0JOtrvgUZd2CSSSMGlEDhWq0MjKR8iTmSBt/dq3NnJ9t68YiWZeZopq/qKHxY0h8QlF3TCUeEyap51vdpJAfSAIpAt7HSTsQX5RkE7cZkbLmF+Hoxu65WgkuBSGlIoazkeCd0y7z/8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461ir6n3_e2etest","name":"fv-az461ir6n3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e5d60ef-b523-43fb-811c-bcee5ecaea8c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22025","status":"Disconnected","lastStatusChange":"2019-10-22T23:21:36.7654237","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"2f74ad3a-c051-46db-a900-19ac22a42fda","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzoCEdYjKeyGpFxcNBENcg7R93z54QwYIigcw2fsTFD4b6A+nL3f7+jFbrGW61ohA2LeErMQBN8HLe+PXc8EvQ4i1pABwcpSbludKtjpehsBtLyS2JT/ut+ZAnwJFLAnmfSzVvmshuYYzoMJt0VtM23yRy7mO7dGq6BG/xW7FQ2ICpCywmAnHbP4bJNpRaLyoyp8MgoRyW2RaZvoOupHcGjZ2qWLGpBTikJ0CL2v5uNl4xV1ow9apdMh/tLOjKg2KJIghxKiyOVSThNbIcFJj/OBdoELjR138rnvLE6nFxrhjbmKL633je0T/wl5Rs+gSxPSU8wR3f65QzeZYacNo9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ob90c_e2etest","name":"fv-az456ob90c_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a826f705-2aa4-4dd0-ad49-e023881b321a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27001","status":"Disconnected","lastStatusChange":"2019-08-27T18:13:16.8550668","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"dccc1552-1615-444c-b06a-71868a94a4de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy9Hf8eeKp+G6uuRwrL3P5V1YYWZKMniGVSjIZa272SSBi19lzo26TC1FupJZm7QzU7aUWFYUd1t6BMVC0EJEtK26oBlH/NE7HgkEZ0Ty6XLp2HvzNoYTDhaCidreSLu2Ok/xOJBcrk8xMXGXf+/lon+INqlG/7FzX1Mcrp/+UMCEgMPEp/UvCEDoealnD0QrCm+mDCHu4t9cTLx+81txbH5890B18I95MmYOfWX7/4M+izijMd+RsEr/bCOHlDUWYBVfRbGlBUZidLT/xeRxVpb14IUVK2XGKizD47IuaY+VUL0wozwpA/q3k+9ZWbWLO0gaX3iWV/iMRt4LqPR8RQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45672nwa_e2etest","name":"fv-az45672nwa_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bcc0a01e-5ff8-41a1-b233-f0b8b1693c0b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03007","status":"Disconnected","lastStatusChange":"2019-09-03T23:34:25.9738763","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"915ff696-4baf-40c4-97f8-46024bb14855","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzZBLvl0nMs8C25YfLlgSyk1MIGDaBmxsVvAyMCHpdrcjiLwbIsxkOSBvUGk0J3iY71WL6wUhkZNzOCHDeC+dK3RGQDHSGPIT7AGobg6Axkq0C401z8+lSk6mT3EX+pnfz5lo8G8KSrVsy6iZGZi1GL8rIUEEmp+nC+3kher38b4VztGJeeqLRg/2m5h3gFZ7NbXS/OfqzYf1n2x5y8FKUTjZxcwkF0RLC9YFN5fy3dwAR1DA8F3Vk/NPWox2STb1nSUrZZk7LtgvtIfCBhDoTJ6LulqBNchWAPX3PHeQNfU/QB9slpPABhELbillua/cjdGWFNZmNuySFY+ia88C7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456og937_e2etest","name":"fv-az456og937_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"03cdebcc-ac55-4ccd-9007-88f7bd425099","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07008","status":"Disconnected","lastStatusChange":"2019-08-08T00:32:34.6145802","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3134dcd8-f70b-4032-9d8b-596f3ae870ed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvs3p7eW9rCjuIoWa7aLXYA1Q5YGgzNi0jsvJy4vmm22bSTnPRMWfb4d/hsg+ER/HwCkBBUcL4gCJ6ZNRpJzX36HgQAV3GUBGvyg6Rwm1uFZbwXhkACFO5San+uYspG86eEkKz8bLWPdCvTovqZ0RA8RsfLPGrV5KQJgmy7averr55FyIZpEURbILWDMdNB7yb9AV8SFE31ky7qaBtJhEfMq3sXQY68IEAgtZ0f2SBy7hhV7GcLyjjA0DpBApFhpc73Y+Xz39f4LQKZu1RITIHhTz6PvJy8SRTtGOE7FshpiGsTEqLTrDWcEkjO8O5dH6oy0lmYujZbSBK0+GEKi68wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4567qtup_e2etest","name":"fv-az4567qtup_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f7805d3f-ab48-44a5-8466-bf9f75a6ae4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29008","status":"Disconnected","lastStatusChange":"2019-08-29T20:35:56.4384805","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2eb94914-4d66-47dd-8a48-fd538c4181d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuhU6grIasoK1mAlFmsRfBnsje2TBrakuSd1DXSN5ch5T9IrBgiH+j79fLOj0q1wO+9aZYzkfdLx35vbvWwv1gIl4hFLnDAWmh2Z5m44W+lIdwHtMQamtgg6rQW1Oe6ryGEYS4i5L2aFYP7JnC37BWp0UgPG0E94KhhFExhuB+JZVbTxXECelCT5iBz9Rhbek5Oga0D5rfxyoNNtiYtoWXMEjn95aI+AypOKq2QlL768z0wggQ55lymhAQWXLr/4bro+JSw1DiiHHKEmCBAzDEahbIvNwHCoIRm2qOc/uZDo4CBA+sqvvzMdKostcZG76HR0PkZWALhYgfQ9ShRN3FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4587u4m6_e2etest","name":"fv-az4587u4m6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a0b0e555-0483-4253-872d-2229d387684d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01004","status":"Disconnected","lastStatusChange":"2019-08-01T22:20:25.0427245","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"506e6d31-dafd-4907-9851-2483a3fc4192","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAomp2Hs4NqeBeS9fyddBRrElsyN5yGyy6EWpfKIfo/TTXb3fpYnExPogGaQGcuSckMHvrdxPAIkDKSZvMn7JH67+jxlqSWdy/rMLeZrN2MQMBvHtDZelzWSyz4zm5wAqn9lBpafC85YdHv7xMHJ+1mEN2U91XG8QvJ8kVRu7QyJZUdVXrh6vx8p32etgZlch8rkFeIcKzzm7k40A1nlAynGpGUsvTCmjV7BnDFuWQseSiuWE/AavTw3sfNAFU5gGdh92tCm1xu8OXEjbHdK5rXgZz0FMTZAwpcpxEVkGxLEzz/qd8mkKs/TMLoH4kRONsUJzeDIbSvpb3zqco3Pf+SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461j4zs2_e2etest","name":"fv-az461j4zs2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ca68f6e-4dae-4137-93be-82594a935261","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24005","status":"Disconnected","lastStatusChange":"2019-09-24T17:23:53.37421","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a9521b10-5105-4019-984a-9b10f31a5e34","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlwkQ2x2cPdzcSaQwx7wUqZjT5Xfq1MC45SEnZkx3XvNAfYENVm6/y+k3KW8Y58Wj0gRfLXkvbzuPPSBorlya91EdoxhO++4rx4GXtIiYHqJoEz/r4ue0o3fZ7sIQ8CvvzvSfaZ573IA76ho6IQyS2xP+CsCUcP6p536TsPoaeC9RFfc5iWTRVa2aIC4SWe4FhGfcP4kvfmNPsAwFo+l+zyxvtqBfIetTL5uwbkoNdyHkGva7DTJjDBVvIH8qKsr/yoXaK6xnpSaJpbt3OQluJrwmoEa9/r3YOW9KvYfa3elJngiZ0ldltYaBlzlePb73VABZCixLJOCkLkwWxgHxvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456olt50_e2etest","name":"fv-az456olt50_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a0f14d5-f919-4d01-9e95-d98823f57291","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11005","status":"Disconnected","lastStatusChange":"2019-09-11T18:25:53.6922869","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"63cdc4fb-cdf4-4d8e-a047-7cf9c59f35a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxTB7vLQQauKvDZD1xHFGKfJYIs17fkIcqDMMbp3OqE21WX9DWg8EqOH2pnWBfmqar5fycIacNueTHwN8pret+Bv9bcTUL1x0HMauLtUIBjTiYzywG9Pb5pNmFRWYQn3BoRPQPvcGqruKaRhNtC9+sAa0qr4F34kzGcubaUo+GmrbI5RwWYZLz9StzXu1QAw2BW1HyXm3hQRcCJBc8pIs/vrwwljktFeXEjjqQ0KYdb19zlZQHO1jj+jScaSgEXJoDQNPP5T33r4tFBq7/82YXXgTgWMKleZzqfbK2tPOjpBmn/4e9I6ynq+S9vx4VBGcF0q+DYXGJGzAK9CWa0UjNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467h2b5y_e2etest","name":"fv-az467h2b5y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7dda158d-f478-4007-8123-7a686c15d16f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27001","status":"Disconnected","lastStatusChange":"2019-08-27T18:13:16.8550668","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"0266a952-6995-47c9-850a-28118d37adf3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2mKL4GeDycciZclbOx075EFuONVAfo8/eXv8BFkGNpriI8G1qGXk5h9CUYx3FD6XI0F7q3A9HUChlVQ6iv6J+KQcf1a/gAd+fLkjby37TCDK3xPgqvo7e4kylSVSjcTfmfQFb9xj6iROPKFQOdPGjAPZu0pySkioMG7l5xc4XE9a4kCsI6DfWXM5LZSQBhLDpfFrcoehKTTehfbObOCgUSz8KOS6vc/j6YSxMDybs24Lc4E/YYaZ/ezawbL75ncbPw6eol3zVHpDGAW4+HivBfG7Z+OYI7SDQUQOFWD3rCh8uGB6xDnXJt5R6/SC9SLq1InW+4iUDZ8O5ufblTdmawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13012","name":"0.2.1909.13012","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5bf3a0d4-cceb-4992-972c-356c53f0aa4f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13012","status":"Disconnected","lastStatusChange":"2019-09-13T22:19:37.2612615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"00724622-85fd-4d9b-82f0-8d0cbc381418","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0mMjgKKU8lVjuAWpCkhlVuMpK5y3l5xkZREfA4tIEoAW/vflOdtrDYpCTQ54hKO2nc5wZav5TT83ZLAW6B8PpSHvT1ysm3MCf4elah5HI0BZtdw4GEcMOKXoLQaCQS3NZDJp1in5bO2Fuv+roCsodsPwNGWAefK0sU4CXlzr0jUY0yoB2mIx9gSLoL/ViiuR4I5B25iT7JjtHl2raLVbJ0khHbtzpHZSWqmde5u7EGWO91aZJEwUj+pEWyd61Cw6Z3rwGpGxTLqxaGgAjsm7+MVi3xsiPz/gu8T+XDAyLBXA/ZrgxMOlSEpXPAe/e9KVuXi1kpiege5afclvvq0siwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16003","name":"0.2.1909.16003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8283aba0-cf85-4a92-8d7a-4db4706e8cdd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16003","status":"Disconnected","lastStatusChange":"2019-09-16T17:45:01.3960378","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"37b64c5b-df09-4c33-bbce-81ec70734b81","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtkT5s21lKv1pEzFYi0JiYg/Ua8R99U8INkuhnVjC9ipjvvHbJ+sYqcXd9S+uIYiDE2tLSBPudQkQd0szYQKB7vpJOw9/7f6U+tpr/RMdHPCRcEcQbA8jachXonI8wxvFPOYn3z8X+QbsnKcy4yqY7W3FT9DgUp2TxG3TYSJBWgbW6vwcKA3eyPBngQ4tRC2uYF2l0vhCsvZR4LapU4iD+Wqn8Ih+OvwIzSX0fXGLHHsAih3lioS4nmVwjBUXPQY/B0rTksC+bDL18dfq7UIIqxa5/rWOgjIW4Gf2V3XMFOeXW/RySxgZ38C+xZHJvmaYn0ux/vgN9mmISHanbagMpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16005","name":"0.2.1909.16005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1da73485-9bf3-4c80-8be8-025f3ecf1b1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16005","status":"Disconnected","lastStatusChange":"2019-09-16T18:20:01.828603","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4438b4ee-b5f2-4e23-943d-ee8c61e11f70","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAryg8oYx5n4ZWAP6CnDGH+EFVFSvWpMb3qpoc6DOdhvYz4UGBN6LCU3ocYWXdauqvlInVsgaUfqHATfCgVjtsGas4RzFX2CM7QuSm5c2ADB6NHCky2zehiphew5z6+5Fq0NohDTge8wmCeZSNYnaXJ0xxTF9G0W87MswVJMucCluj1rxzG9nxIEHb+AzsXXeth2kMnWxDR5e/JmncLEY5s8+NzWuqENvMkBhsKopk895gHKIGteRAtEBwY2VW34QwyCD4x/NB+lCKdOf+6Hd2+HVkojhTfOTsInTPkOOZVWvUwj3JWlD6UcMXw6CbWwv5PwNnoyekP6hjSjREduWjNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458852r9_e2etest","name":"fv-az458852r9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6236f020-0cea-4c07-b5ea-40174bd9d817","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30001","status":"Disconnected","lastStatusChange":"2019-08-30T21:26:05.748721","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"5fccc1ea-b797-4af4-bde7-89b1e06249ae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArw4A0N4NTK9YtcMnbfm4uc+KsFrwh3MSII1pih3LUaNSDklzROqhDtHqU0dJxCSbApbo7dleh11mAvFYZcpeeK2CqZJ+rwougBKMLnOhjiNV4U/FHpW0m35qtSmkkRl9QcyfH4T1tOxOou8IUiXoZgqgzeLPtEriZwgxjme0X3hncZXWrq+Vp8SmBjOC8rOUFiPK4X00J7jgyS7aCjQF66x2u4wsq4luXLq9m7uBHFzCo+DM94EOt1MuNh55d+K3llwReiQeEUnTBe1LxTSrzA73tZuRRGEzkxXxxwk7fwGvUJr03I2xVxq9ohLLDG+7Z9COr+kYdGrHxJrnflN8eQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456p0hjo_e2etest","name":"fv-az456p0hjo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bf27e01b-4396-4ebf-a607-58358aaf88d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20003","status":"Disconnected","lastStatusChange":"2019-08-20T22:06:46.5470254","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"340e5cd5-5b88-4944-acb1-3355a982cc3c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAssIqg5TnD+cx9wrqOFmcjZ6oz+Tnsk3NXXSQeA/Lk1LDaOVFGCMTXKboZ2tfeDjHJPHZcf9JrtmR9JQhsEWuLrWLm8ChbBA2MlCpiBIhWBEHov9oUQ5RtQVDc3Mh22aGbXj2I0IYY366lnYYfkp+r5CDvbHbGimv7jKHYzRSXy7ncmGZUozuy+Ht1L0kStkw6Z1ysp73p/xFKgJirVXiOfD95FFAKIpavke7elB+Hij9+jnG0syOQaf2zR/POg7g7SIMlclX3Tgdc+Um4Tyzr5Y72TqMTM8b/rZ9YiGMDaR0E7dvlqbVeoO3PfhoTgYLL+AhJl+XVmKgjwn6CjK/KQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461jcwr6_e2etest","name":"fv-az461jcwr6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a5e6734f-3bd0-4d27-b1bc-063d50adfd98","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20005","status":"Disconnected","lastStatusChange":"2019-08-20T23:16:06.855779","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"8ad38b14-35ff-485a-8cfd-df800dbe0e94","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw+0gpZT6a9zNbE/p/uUyFWM0zyjFFOo4HqPJ3GBXRk4hUb2ACiaiAe5lnpZAdAvCMqsRGFoPNIQxmXtM/oQqnVINnmB5LPKLyskIPsW5BC+JOdTvwb6lOpeI9zb8BWy3GJ98cs5C7QNq9tOVCgdgj0jlw0xdSTEH6iQg6ZgPxvUB5bSgOxI47mPao2+aPi7fFG//VpUsIHtjDoaQr/+6Ii+Pf/Bfm7H8QG6moUUTlK90/Hw1zZuAbSyRwlF1YCs2+UgwP1Y23Yl2uU7hiz7GK5hmMl6lWKSBB6gj1vOe5SwbyHf59rk5xAhnpsEW0m/W7B6IrledWTxbGejcZDCqjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16006","name":"0.2.1909.16006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"293bf72b-a72d-41c7-af18-bf6310ea306d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16006","status":"Disconnected","lastStatusChange":"2019-09-16T18:00:01.5519372","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e359bf62-735b-411e-a3a4-4163f9049c50","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxF0lwuO6glcgRiyPpNWTHmv9aNczLt2rfVsFn9zbzanJGydADIQ8LOiBDiVytmnhmZrCbKc+xFAshr/cCNQ5ZNq/57e8p5l3Jh1Gc6SyjUI4w2sXo8TJkv7y+z86LMhXAVbZTslfXA6zqQpSjA9zc+gvve/3UeHMFhpBXE24SlVKCtRgtWj0ks4vUARFwz8na6VDJSxB2Ck/N6dmi1k0cyupn3FblrPu1hPno+TEp4fx1sjrkhcp/YqXntFqGuIiZNQcWbG6oIE6uGX5HVrRIvKgVlPCNQ2eG/FSKaGK6ZWhM5kt5FYfUmswjvWfogvSBLkztGpQ877cJbtwPAZ5zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461ji3vo_e2etest","name":"fv-az461ji3vo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7ded6f92-5bbf-47ba-8cfb-c6925efd4c5c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03001","status":"Disconnected","lastStatusChange":"2019-09-03T16:59:23.4245954","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"7e701246-0111-40a3-98fa-4f6907460faa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2pNz9WU3TyKM9go2MElf3cvrPSGAwzGT9RpoyMOMuImnUUTuACVtHccvu8vJ6/e8+cBU+U/lKfpRB2JbGj0v5Ri8i29NFcz2BNDT7KTvXZHRHUc9FIirCqre0OqiMnzF0ooYxA6ZbNil36hySRumIho6gEAjwwQ8IAMQAVXi+69Zpj0jmSBCj07VwTvpPoE2WRz7ErSqigzJukXVqpCjz9OITdjpMxnw3SXwT1MKZ/YjUvJSiItB3q/6BY8ojYOZ5XwzymFg52BaXP+lQ03Ny6dmWE86vVNRuF+QCwwd4gF+t29fcqCNYgSdFjIRQkoq+1BlViq9vudjBW4mckz5eQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456p5a98_e2etest","name":"fv-az456p5a98_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b048c4cc-04a1-4852-bf1d-a1b8ab1a3ca4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03006","status":"Disconnected","lastStatusChange":"2019-09-03T22:44:25.509453","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"68be02e1-c4f6-4060-9200-0928aa002bc3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8x3U8uPtgorAIZuFLvdnpdxBCnxdxRltA/ScT3LirSZzi2POX3yPDLnY6APypIN+muXvXkL+zGyHCUxIkFGwP5Kc9wg2FzUIvJ3jLYzy0gD8eVybA64ddHSETs3f0N9hR2ZhZTpEMliFZzsBSrDZLcPanjLb2NmAItwU+QxZuNDR1Y0OZik4hfKcQbrWhuaiJmHCCNvgS6ulDuLDz7/sCqD4rATei1LT2Arl7tfAtTErQo3+RVSuxsyDyehcEwB+muimq5yNyAbUyq0FBFK1M3BEOYX449ZoOGAL3eQYDNMEn5mnX0zGDf6qlwThavl7LvkWdogfZ6CtVW8Hw+IxjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4567y2zk_e2etest","name":"fv-az4567y2zk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6eb16263-6e7e-48e8-b098-1f03ab65a16b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27002","status":"Disconnected","lastStatusChange":"2019-08-27T18:18:17.1760035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"69310d9d-08ae-4b33-a152-a7987a4774a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmFQWteTIJfGXxZVEVFka0t+XJjfD455H9W3hPWQQyAstPaDJ9stwa6C7Z/kj6Ib9qTQJ2rBLj1qiuEvKgFxdpdUYgB7/wmxZGQ6bw+uDf7USW8ZrnhoOXnK6g/G1sWXNeZvh+NFRk0QXME0qkvaz6KA4YBE/H1pXbamb2AKZEslHA5kslQIV/3JvpYiW4YvfAaUwX51ZE1UYgUuKGqlgPQit+hssaWVr3bNP5Ps1Hkb/YpKoEUW6+g/3tnpsvFvc+npLS9U866F9wWQM4N2p/F26w0eEATROyXCv1ca0CeifEYze2zis8TVl0DQc1Pw9D0y9rlchJ3Q1hX7lFugDYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461k0lzc_e2etest","name":"fv-az461k0lzc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"808e7888-eaee-4f60-85a1-93e0cbf558bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T18:47:50.763962","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"647b0778-5848-42ab-b64c-405543877607","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0nbP8v4Y53WqvfPdmwr6YP3Bg6e02caEkpfTY2fssZkADU4Kc0qXMsr6GGgoY9sV5lpSHdubClPo5YYW7WUE+qCuqBENIOSR63Vpda0Sv8z0BXeSCw6EI+ViZvrTv5qWtJkA88UBx04zkUGnjGf5Fd9P4pVrl6fKZSD3zC9/DKkATlIXZdCHQOi9u+Un9LwJm94A7iewGwxDsdolWebXRKuKG4AxTBMlAOLlXO3cXjMmmmKlapA25KhFy04+2bbJTjDwShY2mmm47y1AgLI3WB4q0MmnT9lTPmDHyX5L1WPz4BOyUiD9hI2Ef/LCrmeRZ/Koeb2DR0heUbUfvOBIGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456p5uvw_e2etest","name":"fv-az456p5uvw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c009771e-9c3f-458f-9329-da404ddadba6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"58327655-7c2d-4b1f-abe4-eff5f0320e72","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA62X9Mx/u1l/MqyhqLcPR0j7fSbeIMU4acTC7Lbqq2kAgbGG4QcQRds1OCMqM/4NeqFWi0ziPOjFUFDxmQyQyJwwTUSog7M9whF0rA2eXmKon/jxlUIbHOUpNc7rbwXbihCsPr3zU26rgR3/LdoEfw8CaPdBh1FpRxF/A4xwEfqsWplPxy7fOZ/Z0wE2I561aGaq67hGeogkA4juxrIjUm0Rk07oxefOMkYTN6hfE8TXMLe5nes5O1TnsbjtGHYvavsHMAzL5szgHASzitolrFM2H5dhc5mMynz/bQvcFDUH+1Ta4Zj+8NLTFj6m54hB5j3zbn1sqTdcvPHb5uAo9bwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16007","name":"0.2.1909.16007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cbff9baf-691a-48ec-9fec-05754a43da39","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16007","status":"Disconnected","lastStatusChange":"2019-09-16T21:15:03.1708253","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a727a85c-e7d9-499f-ae97-6810edad31f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtkcnRC6wETuYtMn7WjfKfwYKeMaVgXiCGnImmfLdlL6kYQkVdp07Pt7jeP3DbNzC1noPtaKy97V4jG+en+DP9ulLELtnDgGpij3S4pSTt+lIqb+1dD/H/Z5KK9piTcBK6BG1D4lhbLDinnSgfXufK3Zt+y8ScBPv7pS1Oo48GMNbuBrfvSDd1AcxzkSxIg6MLL996nWbTJ5T0+iC4dlqTvrOeWCE1OA9MOK2oRPMb7+5/h2DAeaQXz2rUAopj1aHLpXx4+Lcg5iQ1j4KAybpGPDivje1b5Bqc97gvbDTqpwCzHO81cIlcLxLgY09sTzbv8Y5rntkLJDe8XOboMmAUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456pb64h_e2etest","name":"fv-az456pb64h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b02b1b6d-a0b7-46b3-97ee-41d4e5318dc0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23001","status":"Disconnected","lastStatusChange":"2019-07-23T16:25:25.7991356","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"54902efd-ea7e-4c51-9f58-1686e47dbd8c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzUSyCJK37WFopCfU2GM0U5+Fb5nGmukixoe/yLi8jD69zdQt7qozEmvN0ovuRo19+OKYCRFGhZ0jglW+3t6bhrFcuf3uhq0876M4r2TFJ4EFdmQyuTjDMLpxHtW9+gFgGolUnmiVXLRGk3t47eNoBe2q0hxCR9dkDO6u/rEP6fT+kV23czEkQtkAUQ7hmG50jrBHLi191LFo+v6axUwM9iF6wncdAFvCRsZMgWbFd1PkvCu39mWiF1hMqfO/Dbfj2FfpLdBdiasIv2/cFKDR17jJIm7czX6m0PPVMG5M0dhXidCdQPWgB95lxxjoV59cCuTaTf4j5MmspwU1e5BK0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17005","name":"0.3.1910.17005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9a4bac2f-75c6-4fe9-b8c1-ccea1c2b1068","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17005","status":"Disconnected","lastStatusChange":"2019-10-17T16:48:18.605327","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"1227ddbc-e36d-4ba0-a446-85c4b27b22e2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwwkvp6zlmlIwseBXNUkgbA5m3kgykHYk2T2sWe0APu4f4ImgvgfJMLsCYEMS61gBL+aLsFvXusAzJdB8kaJzU2lZ+o8aLZQ0SHmAab4j/Zh4qmck7SGVtBzH4guuomvJez/N1BACJdoQRHVqINTysui2t8rjsLhA+d9e08fejYTuzeKZtmGqDIXErq78rZ9xW6fjqsjz1/d7kD/FUkjZhXFIdic4q+PguJyKDaZr/99MwGvwXcyUN1jTOOV+dFyuiRUHSmM06CXOEKqE3fjYTH/uvL2ifAIxRWNazpJXi9KOIhNgI9J2QquWCBLzPE8z6YUiekAVEcO5g6/9rRa57QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461lsy7f_e2etest","name":"fv-az461lsy7f_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a19cadba-d29c-423f-9108-b14ed7b6fbf5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30004","status":"Disconnected","lastStatusChange":"2019-09-30T22:16:13.4886467","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"93c87a2e-ea56-4468-8fdf-9a53a6be3a1d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6wncHdpSih3resYCiCp69sP+fOuwQy4y7rsEQMMvTZSAhmLNVY+V79CVzfrC1m3yzkASeLXpnQUKd197laM76PeicHEmzJdko7sPkBdcerLgy9nTyyJ57Z+HQ3+bWwptIrK7vXaSX56uWAivxkOdZ2TELXwyRemGjRCBzbBNwFe9l8xAXH2r8cOSYEhi/8GOI1Wd6hvPdOKERwlf0mabhoGhJwZUBUkBOEsREklo87lLN0hDYRXBzXnwDZ3Q6YY54Z5Y3sZqCLOXX8z/xhT1jTk5tHsb4jBhuapWl4RS/tpnhI5yUlx4ktQ7P3vWqOFFH/nB7dZZYlpgBsbP8oyx7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456pq7vt_e2etest","name":"fv-az456pq7vt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fc1828a6-5269-4237-94b7-206319560daf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T18:47:50.763962","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cf333bd4-1892-4ee2-b533-b59049a924e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7Brl/UGb8cds8dlvrMcrCweYmA+YeDQd4w6w1ON4yRrnldQ6ZEcPj6XzdIYVTYIzkGl9KiOk2XI9kUxDcn97Ulo3BUGgCehGKWb4t9lRrVny1v2hKAtK72L0MRztXC65mX3x9Q5tONoxEm7E2AGtp/CflIhQhptNCzBX6Zf1ibKj3xFSDFHmoGCzZN/Za8f0bbm9/RyDKSEVF1gp/P+ul7rDs8597uphGIAhjbdt7PndWBWBOog616LAwHt62+0zQvlMdfvKiNkUHA7+X/dRrYZk+fAFgeTZ4v3omFk7hdG4Me0skWr24LF08/XLkm1VncH95I3KRKY/F2gC14rQnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461mgaj8_e2etest","name":"fv-az461mgaj8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b097f62-92a7-49d9-ab1d-bc5b07b75dfa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21007","status":"Disconnected","lastStatusChange":"2019-08-21T19:46:13.9519546","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"0f6b6b3c-9f69-47dd-8174-2beec9e9f018","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAssiDnRyxErvwl3B9+WUdFf0SzqD7I9nth+VUtKTie5BKPZ8J5o+8Q2WtFs4iKOj4DTQ/dBT61xOAI9ULEVuxyQZCFtGDSm7ANT7pi5Hs3DRIzrPgTmncJOYkO1ebtW6ssCk1QrL9P3Qj0wHjY5O+KrQ/+y+q20PSFbzOYGRN3WdpweLTR4EVzEH1fgFuFuOYIgjp/dxToa3ii6/5jraSRHv0xssT+xT3AKFrH3C8tkc00iDbK21DZamSCq+0sTHQPishnMKN0QYFGpuJB+fZNXNbGwYzn+2lfa9q5AJzE6a1jT1DZfnH/J+EmBSTZbDuDw0+GQkHJ+BnUcG8u3f5yQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17006","name":"0.3.1910.17006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3c3394a0-bcfc-47d1-8b3f-2648cfdc1ccc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17006","status":"Disconnected","lastStatusChange":"2019-10-17T18:08:19.4738433","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az599"},"vmId":"a632a77d-4105-43e9-9ab1-032e7bf8931d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm0iXYSKedfrtR46mjRMDwElrQpw6HvEB/FIojLwYPpsPCbMCRINPnFsEaHFN620WS3zY4CkcFnpyGD2xgm3gb9olWY2pqewtF5Bqwm9N3ZcUmDCLRrN5+crJhK8Yq3LVazveqOiom1xVd4rP3oFJDOohaeb7a5ayWHHXrh4xw/OpdUVhZmABYclIWMITIOn6MXXrTvm6xOaulzCJcM6iuk5opgdT60qWS9ykDhjJFx+mIlc8Q1/W8pAVl2aPrEIKE/VBv4qlxwTW5Zo+oo3L23HqIO/olXgugc6kAbtrY0bT8QTgSS195SfW8aeuHiZfLWfS/7Y5CmcE/r3bfe8wGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461mk2lh_e2etest","name":"fv-az461mk2lh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3b034f39-03d8-44ad-9c4d-3ae20c02d897","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20002","status":"Disconnected","lastStatusChange":"2019-08-20T16:31:44.3502298","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"311671f1-fcbf-42fc-beaa-a2b2c38cbfb6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnOyM3K8M576GL/bR4L/wbpHsfOMz0Qtd427IMtDve1PlYEI5P8KsHBvB8vPH5b9M6d3PcG4Olld3EDqMheSiElwfQ+mGHHatC7FdEChtvKxh0YutHQq+rGe89iiGJmy6tlHxjyA51jpImS+1MwyqFp9cmeKQ0j8OIsBroVDX/S/p4cSP03FDItdWXdJ1TTQvV9nIjE8aX6cZl+3QHaoBEHabPZUqsObiEiFaUX2Wz64xOvy2SsixlIbAiyf4VQUP4UvcHi7STAkGuqPf8f+EK4iDTPKF/cXAxzBJlxKU7CYnTItwmf6hJ+h/UmCIpU1/w0XkCNBHjwlsL9Jh/uuUgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456q32dt_e2etest","name":"fv-az456q32dt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5162cb34-a1fd-450a-bdbe-032088e33cd5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03001","status":"Disconnected","lastStatusChange":"2019-10-03T22:04:44.6171914","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"0d733b7b-5519-4eda-b7f5-2ffe07da089d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4cEuBc9H7lgynHONyhPI56lhUP2BPf6bmbD4l5SkDPlnsQXe78cvM/hioYXhTrAXBPRwIOwUeaqLBq0zQYmxpLj7Jb7Qp7SCkiU6h+nSA4ui42ctjGXHgLW+kA0JBdG7ODVGvnV15YVFLPjtE8KMuGwqK+PN8bJHSvPuNLQnoqDjxhVM5lt2HyBvzxxtXG6ijC+VdVUQKSXmsXyGMpC6vIAn+StbnRlIVPEUcM3VhKYfw4fNQbhJupEwU2Nu2qNk7nR4MzqQpuIjY1TD3f3HStYzLNUAcPVibQBglXUQSP3M03ggoGUMzXq2Vxe6aIP0vVGFVpamV+9O8+TLu+FXZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456q36hv_e2etest","name":"fv-az456q36hv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6601c4d2-8c2e-4737-aa5d-68b17d2bc44c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.30001","status":"Disconnected","lastStatusChange":"2019-07-30T17:53:08.4423403","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"806738c8-f2d2-4f1f-8bfe-cdaea80fc707","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6vcuV2tCmnJkUb1ETYGboNF0+EUophohOmDRJhvVb0nN/UCSR0P8RAQeS2CtAvaS4VRIgOm9cDAWKTWdWSyRbGpPVlLKy9peb44uUEunmTFNoF1aJRR+MFcdDa1cslfP2C7qhInT5xV/A8A4BV+HB3/2Y7OG0G+BVLMmA2ihpeALax4pF45Sigp/M21mArhAHGjaFDDA+BPzhR9EpDnY44iK4zQA+fIny35ZSNc6YyhDbKJo6c4Jlrh3M7JrO500Hm/J9lTd8ACMMSeEfvzn6Ye3431PszuSsBuPeKmS/WZuNv5stFBSkMvngjy8vokAjqJ0S5wL5XztqYPsKjtsZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17007","name":"0.3.1910.17007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fae3fb59-e481-460d-b627-7211018f0e33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17007","status":"Disconnected","lastStatusChange":"2019-10-17T18:13:19.7460831","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"c704e515-9d39-4f5d-bd4d-a442036bbca1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxkth9vH6bktW3vpJ9olue58yz6TFmWhVGeZNY4IwaaUQBWP9ses1W81AlyDvGeejAOhVZxVCZG2B33FeHIb1klBlpclVjgVDqIgEd8ykDQOSJqrH4S/ivwEFGb9HqaP1VMY2B6+O1ImTfO172jPqXqDMxzQ2XfkLqgIdo5M5PubO5upmi9/2uGWuiU0cRXDGvDzlJhMItXxEhGJLm55Mhe40DH+aPnoQVOzTNDvtYQNdhYkDeuHr49szZx2xqlznpR/TT/KU5WmCtqATlWrfbNQw744y6VZPjOBHeFS7OVOBJt0x0pul52lbpqyyWftgQEf5iWKOmX6ZmN5MFGaw1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456q5a60_e2etest","name":"fv-az456q5a60_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"20b355be-4ce1-4711-9577-794231c838ff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07004","status":"Disconnected","lastStatusChange":"2019-08-07T21:02:29.5866825","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fc9faa34-7eb9-4b1f-9c23-ef86c0c03b42","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtz5p5rUOzVJujM0TAXr4dpYNneJXCr7UiIu7yZ09IeiYHC+OVSXM5J/vl7rytzSI4lTgUG9Vwv81Hx0ndglL5lBcjymrDjBO9o/VS1/6VTiN2UthVF1OUVwsQ5LvZQGTMsFtimVPUulRSXw2VEeDcBc2oDer+CpCKGgbHnTZzkZeQhLKSy/0lXafl1GMJGlDTBkrIcVsQ72BKY4Nujb36SpBh+FnOsFhiO9OBRSQiOOtP/tdmNOUnYKOrouEP1Z/o8B27o/j7RVpPsagkqnNHO34MSyjO1RkXAVzF1QckEWAb5huHzARajW8o+QT4n6HKI9Q1aT3m+jJXf3EVoX8GQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4588pmac_e2etest","name":"fv-az4588pmac_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"735cab3b-4e35-4535-ab03-cf006688f7a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.04001","status":"Disconnected","lastStatusChange":"2019-10-04T22:49:52.9573846","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"f82bb9c8-b090-4132-b6b7-cb3bb0606884","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6VcXS3Gv27nAz9RSIpR/s2xDH+xS+9RwPWdlR8Rd3Xpn43soSs3kxOicsXp2nODeMHYkDVypNoLbtrytAM9YNULNST/11+znwtwXI1xiHz/8TgUAHz4QXI48DL1zVlccdwstCltnXtHUuOtbEY3ZhpzzCclv3nwWxXhkZMnNprWMjvLkDTnTsNOQGE1pxV9vg49Hi4T4mT1/b9HFbJCVUeG8c46q/ExIWq0ScFWa6MFFk8Phy7yjqe8oqAmFUmUdWNyoPlJ5u3CPzmNQf8gG6US/Kx2ih0RRW0xZo9IVHzWsqzxCqknteCVM/YmxoSjM7biM6badaxpV3UlDrM2M0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17008","name":"0.3.1910.17008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3f2adb6a-42a3-4d9b-945f-766653a83194","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17008","status":"Disconnected","lastStatusChange":"2019-10-17T20:43:20.9250234","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"9c396576-018c-434c-b24b-0dc53501ba89","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqPs5EK9+PG+gXYISX9eIlLOxCyLc4MMmkpAA0ouY+CAkdT9FRkRc8zQDPgVkOYfuR/W9D+jAifPeDm288zvoEaTkoqFzUTUz2R8ylBQGtljN6P6uKaM+6Tg/nbcYoERT0tHkLwYVfjCQZWAhneCLQY1jstii1qwXuckGnHXJFK6dPT9C9e5y2jTfEY8s4DeDQAIvQrValoacWv7tiKJ3IQx0bPdaIlIp9lNpn1nWk5XoiljQt++ZffD0nL4uUYcEwDEOs6QmzRRLZFPGNd4FQhEicUk+LbWD9A3ALkuMaZ4sGGTtbbJtNhyGvBp4VqGiqIsyQWEM6NAQc0U45xCvAQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0dinEYiBAJGq6QDTeGlSSMKm9hshjrHSYATkZa26374jWacii3ue8z1357u3QcUv3YOs9u1g8jagsFpnK0IzSAaTQdl1dTsxjENe5YIfeNUN89djw4eFOhjtcdMWjaw7qarW2Djcdm2v0HdjP9ftsVvonmv7Oic7v%2fCKrbXdmEbdqJPc8qY15rJoVKt23XD6e9PIbagO9bHjWKkoZcXb73kt9RNGYvI7Yo583fR0k%2bh1w0%2bSn79%2bafeyXqs9r%2b40J9DcQCOk6ylazYL%2bT4IlixD%2fuYBYwDznr5ZjLySD26dZeBlpxFquMWjkIFovwys0TSRs9RMJprEYfUQ0dhxrjCxO%2biAQ90w%2blS1MKYHEL9PE10g8tSE4UxGyFJhHY2wjxjNapgkaV2RYrne01xsUBJf08eZSWbRDZH9otjfNjl011mUG8ASRCNB6EAEEWAE2AjaQ4XMCBiEakca%2fFFXwDBSkhDIEid7shYYrEwQ6A%2faSQUyjFLKxIOweQhFCiH30WZdAyxgCKGEWMJqCYmGKBCNSNSvnCHGcJD5%2f7tTyVgDoxfHHrodT8JJnQClW61NDSEEFmBnC9IcNCwEfUyffcEVNXgn%2bb2HXDR7k5%2f1dYw755f9KYxwe0dyoP040eH%2f%2fCw%3d%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1h1vjx_e2etest","name":"George2-Win12-1h1vjx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aed0080f-4ab1-4b2d-aecb-f67944ccb4f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20135.005","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"addd1a2e-a5c8-4bad-a44e-22765fbe4f06","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAymTxR0j3XbJR8kd9EbVU3QEt3Bc/Q1MmwLZbn7r1mLxil8LSUHR0N5KPVm3KmFokFa8VhDw5+ORyfu1XuD0AiY6hwrcW3LLMsKZkMkRwPYZapaeTKhX0ytFCtTl+NuAvCGJw45XxMLb6SetskVr8gAGZH5WJ+zBtXK7sCCtsOKSidozKcRFiRVUXMeQiVUHOvorEDqB1nu1p9ewGXt2OtZZSIwNVp52BykIdqDoOfberMsVtBX7/c1VkXscjqxdPl+7O9nuDQZ2M56b6Z0irVcOkj9waKfaD6pLo+LLULadm/4p8n74w8xQf6xGHg9PcKC4kEznLRhR8bCOPXR3H1wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1khp5b_e2etest","name":"George2-Win12-1khp5b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ea761bb-f064-4802-8438-cee6b6f80843","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-12T22:09:05.4411136","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4ff3dc86-ea0b-4dde-9d43-29239c49def6","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAuX8T1cpS8EOz3HwjaLOhABDEADQE7Tf+iWo1uw/eMMupYcEDzc8n07o68RKFsEDGDFfDMFme8NGez/tISKKAWUpiMvo2UWGhXUVMj6z9A2BdDvQjBP7uTlA0lnfZINNfKtjAWKCrmMgq3Aeb/uuchjo0CjlhIvpVifIqdMrO4S9VtE4hl5MhWOyMLRtGtiDIaeodIWwzpd7zRRrhcClSOWawGx4dQ63X99Yy6TTcd7MdglBkDLbdpwU+YTCiDOmm0cR9jwXhB9K6ZGpOMgfnSPeXeJ7he6DkmmfDgS/NiiNDK6OlNryzubPwjlydpMqP592oU72YoNMFAJnvcJiCtQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_CENTOS8","name":"0.8.20136.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8ed71f41-0829-432b-beff-cb332faa8fce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"e40958cc-222a-4504-8446-fcccf65050f8","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAwG6bRzu1HFRpZLKDDHwkZKo0iz9vFZDAQWS8ZcxjkVROoNdij18SzgYKG/I/PEGgIMGqOWjpwWVmB/wue7RWoJaw2uyr0ikfrCtEskawIdny+pcGKUddyVzHuOs5QBEUH5OMjCk13YViyw8r41894bUw4ptVMYHcx/js40/6Pb3wGCJK5NFdXo8ykQP5V3bzh7a5wEyijeZs4caJnjwiXfga0xBzn+gFceLRAjFBY7BsWPhzBshQouidFfvDLA7xt6q84xZLtV5O71ku/GQUtUCrsIuk+b26P7sUUbMtJ3ja98M36N8XdA3lkKA0EdOU7a/x7kYW1rTFklikTAiUawIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001","name":"0.8.20136.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"54911ab4-88a6-4b82-b0a8-9a602e310461","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az548"},"vmId":"40e6fbd8-26ae-40d5-95da-0b733d8a6d6e","vmUuid":"E76DDB17-07B5-2D47-A138-62CB361A95A2","clientPublicKey":"MIIBCgKCAQEAqn0KmWNXr7GbCJGrfGUB9pRiGQDtNNAKUdy4GsMhAtMO4cw/0wwx2Glv/Z4k/WjJ3c4Inu/VZlJPpkAwQAgK6c+vw4sj6kZ05CY7QseSXlsXd0Quxs2BM0qZ1rAPIKIKvhV5r8GnyrjrxujH6VppAmKoSOLwYtUM16rcvh0xjysjhlnuRQak71pM3femDErJ215gQoRXhZ9vAgpRzDGDAxiHChJnA0I1aPHs5YQzof902c18tyU6H26QEZiyAEKcXv/9Rn/gNgRm35CCKrEkSCuBPxjrK4YLTl1HiP9k6k2Zj1iEFbApGRsZRaGH4t6ozc55D+eksnpS8OrNEmkJvwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az548.zsjyr1i2ym4ezfv5jcqjrta0me.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_SLES15","name":"0.8.20136.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e08a86fb-45b7-4424-99be-e5e5c7850c4d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"94b1e4a9-70f6-4672-b6a2-69194aba5a28","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtAYds3gNiSD3R/zF61pwt5NgohNw0X7ABRcbDA1gPMB2wtiJ/Y2hwMOfyIOZCq7WJXSUAT9C8xCQG08Za5ms2JekA9jhxeYHUxrgZtkczvDYrqM16QpMr6+VlplKYkJFNksX3bV0C9KR5mWT+vH/byFYMpBwMsQoHJ2mRxEifjw6fiEAiRgsWueMuXlhNV9a9K1I4bsUtVmUgHMStRlhkFp+jsoVyW3+KkigG7bBJPl0WRBdfcBv8WEvXJV+Ik++Se5xeW72oO3ecR/wz+ycM+C746EXEFpGYz3A17CBobcs27m8mVKWlmajI3Xltysb6XYReE+hJ3GKFrG39y02hQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_AMAZON2","name":"0.8.20136.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53e4f738-7bf3-41f9-a29f-80ad0eebafa2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"1367e536-f4cf-44a7-a2ec-93ad4eceda73","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAsnC5v1UIMhuz7QOKc1gh/6Brp14QznSxVzfcYfg/2e/7g2Z4c59k60pgk1HDVplFFys80RKl1v3s2A0wRZWDirLiMUf3uAiWh2SNqPeXADjOuiXiSoqScHokNGFJFjQ5XTlQHDzW+fQQZfQlAgoevOLlDrJiD7GxxbLzDhCtmsxO3qU5pyE35A/BmStlS2hCO3+fZslETwlnUt1/bfW3HZ5qrSzRfRoocneBZrYHcXp5aS0uJltmDVM7WWSshPwCxxYGxIC/MQllGAykzrCiuGnjdpY4PJYN5TYi2NvVfYKiNsyAP9MBJUfrV51L+exA1FWpTS1U8e5yHzwgQQ+TjwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.001_RHEL7","name":"0.8.20136.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"457ae1ca-7911-4ab1-8d59-3ff35145e882","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c38722db-fa0a-41bc-ada5-e646e1722a93","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAuVTqYK04LGXY1fjj7ADBpDsyUmAvx93/SD9l97TciY24n1Y2JN007GoyvnGldKDXsPEvU2+V0mCaFaFezVV6132olOldSq/J0p6DW6BeRbtMqbiHHSe8fJuc1sOKH5Tj8QD4Kh3hPHo0wgh3h+DP5dSt2cdkmMOsBCA2h8yOFBnxntFQp+K+Kw5ta5DJeZZmAM2vVRxkjBbERRIe+O4Cus14TpZ1XDQDnvacKmZyqcJcApoi1s4CcHCA23k5ghO+yO2MT0JLFPZ764PeK0NgMFBzH4W0l9cxkYyhTuswjgMyXDGQx5vSWSR0Mc/e3KQn61iNuY9qXT7XF0GvNjRXrwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-19r8wk_e2etest","name":"George2-SLES15-19r8wk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c261c137-c169-46cb-904c-5e73609d1f81","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e8d4f88a-1918-4bbd-a512-1b195629ba5f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAxMfiv5ewZQsryHoS+HIrgc0my3yqGYfICgJQbDN5lWL+OpwFI0X9BJDbKQyhXMO/kuo1xU5+HobQb8KiBoYoaTyauWZajdy7MXGe9Fyo/X8Eb1uwoRIi/x70Tyqj8SQQdXRezvVoMausG8scgI26iacLGO+RJt8t3V2lqdd10GraqZFiI4dzmIBwcwzL3C3WWEPUf72vP0du3Wrp1so8TzrCfiShXWeOiOILzIOp6QJn3DKu4jbPv7gG4qvs903mGQ/PxLu/o4zcakJjnw8f2rgov+dRxMBCyYBMX2NrMG/KtZc86CE+hFNni8I3OTh2cGHGCBA2IhHC7x5IHll/AQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internfvtna_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internfvtna_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d5fc6b51-96f6-4377-9416-350d05e8e851","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"24ac3393-a37d-4eae-b4e3-b62a52352b9c","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA3qDg5wX/DbJFgw6I4VWYWB87iKREcBnTTGeSm37yVOP/GPKfKIqeRBJKsRawoiqHZ7jDQ87C0Hm8qe16NUiSdiNjq6TDNWjjj3xjJn2eOBu8MRmGqgYvoJzbUeqAlPxJV9jgGXhUZNRKvrOS9JjZ9BwdhrIiSPsCs8cUo4zYldC5oGwXoKiH0GxtCBeDVAzHgk0XKbw1z722/IoHG94l+lTmwAMZJCUC/aBY9ReoUKocTRA3Re/4o+M1K+yZuCrNwpVB6/PRxFg66fZKxZP1gPp0VuCByM5/sx8CQCXsj/+8kN2aljGxYqi2DeAvdnXidEcBsL76y41T6wLq7GSDYQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_CENTOS8","name":"0.8.20136.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97d36dc5-cdc8-4d5b-8a7c-e35c40752608","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"019484c1-494e-4993-871c-03619dea1f9d","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAo8ZS0QEtOLYAgkWSxQOgLJH/yqJlL+usRvFCuWghEi1sEBBb9gBkkQGE5Tq//sGfoUjvy+zxhOQBlGwMjFqX9JfY6EU0VzFbi5IL3+QT3uLWBS6C3fz1Ki4v8v4fPvRM/rmqm5YZYFM2WlUuW9M4+c5U7+xuQW67/CuujA70BlmqBiXl9usBoadAWi1I+yQ4ClJhXqqD++bvvOktliAxZXaosWyoXaHgFhj7pcMjAx6xNjX34asxdnNWdzhTbiL+Y9ASj8xNAveWuK/AYGQ5aFZjs0U21z2NCFIPFDBEt5p1GzvWcoXvitiL+C7bULHDBwGEG6HxZ8rN5AfUABlixQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003","name":"0.8.20136.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"abd1d548-b9f5-4ce0-a9ed-c2e09c510c66","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az548"},"vmId":"8db24f37-4d54-4acf-8b89-f96281b854a7","vmUuid":"FC224E98-E214-5D4B-A858-1E64FB792090","clientPublicKey":"MIIBCgKCAQEAyr4w7MSpNg0oQjhGSnpvRLz/fL8DN1oGVkmCwBmdPwrzhTFiih/g0a1orrJfHJ6OzoI+LZFyrMGjJaHt4YPmaEDwLTPoDkIYmoOingbeC7+9+IZb9Btp2lw3yL1gZqhBcJYGoqT2mLwBtDUOozaYjKnVL03zbvJNA6xnHuo8yrobOE+oomEJuCGSnuOSG3dnZnyjVudQukgMuFygdoj8rB/JYgFVSU2mxRHZj/o4S341GC24+cQ5tLBUuW4pCCB1uReHVO+Gd4d9ac5dedipCXAQ0RB31WZPjTh3cxfoHTF5kGtiiFlG1YDJCGfF4suluTRa53bR1IDPgpXXb8X+owIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az548.fg15jhqepohupeyanmzswwgoze.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_SLES15","name":"0.8.20136.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eecd24f0-0a89-478f-b782-631aa7579806","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"66e3c8f6-2721-4f7e-93ef-a53ae6c377ac","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAw7mBmYb+cAYjqJwmpG6wo0kwkyiDK5eDXkI/JMY24WrT56aKqhm7cRZ3/VgjuQFAe8PzGIXzAS8d/gwDOfA59b+Pn5qQSA88Ais750M1UWyIYIJmjulmMxdX/p7uUJdwsvwa5rfvhAhU0TesmXSF5LcjxYHzXY06fzTwS38pb7/odgbdGp75MN3mV3AW73BgdA2K3UtH4iuZg2BNPbEHrMKL8qr6HufNmq74X8wNtiYvIj38afor14eSIz3+nzKAVAmUPflIydG9Kt1AElsZbKoHnIPTW689VRfvIMqzv2BhcSjrC4lLNKQz5WG+PkhB234DtEuOkMMGrQeaJC+kSQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_AMAZON2","name":"0.8.20136.003_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a250ad0-009e-4c38-8c60-47d72d6905c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8f749e0e-0b3f-498f-a0e3-ccfc45fa2f21","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAuU9fK0LeLh+hF94FpwNbZG8yBi3pUBmo6iTMv6Z+vDWF8NOQaIinDyXl5IoYcl58q1LkqyH5r6xwbnmVoCXm0275n3HwqjhK6qmIBhHgyfW1XJfsIeoh5fzbWdd1JxDUXmfSlZrBtKZEeen561wU0nQOyz+LxmNiHNL+HwYpaZH0GLdx/42PWa2sVU1S8EpHWSwA5kHyCnq8/OvEi4nKpGz8zb44ZLggdGexy8KQ6MO0xvZxnwzkWi7ZwCf1+WVCDwb57oDxOyYjHBrFQblF4uEzXQZGTVtqeSPqod8XequLfLuZzdc1CRH4iTfMBws3Qj+CMDp6FXiMOp+L4FjsUwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.003_RHEL7","name":"0.8.20136.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d4146d38-efa4-47dd-8b1d-afc235c5fabb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"eeab2c81-b3ae-40ae-bbbb-6f9eb072d854","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvWC2Y9mS+BHERYKCpAiXhdMpVyem4aTwwEc607H+cz1E/EX1hMlMrvDh8nl5lti2MyIsAjpzEeP2wyBI15oi8jWeVVy00eSAMZFyY8yJMaXl/Skk/nJSoXzNk59xW+hTpIvCDdcgaz13ilNFG4o8HKcW5zBOlTo9eZjK8IhyjWWJr+D1+g9plivjgbT6/zGdyqMR4Ab5d8i1/PjqDy8gIw9UUFvRX0nsudwNI4E25EVJSKMi0CNnuW2JVBMHPhFrPA7vTDbZTgI6EzEEuHrMQ6GexVpZNaDR9ygT+mVOU565RnMapCT9zdfFoN96AIOGFn15z42hxOlBAlMbG3ykZQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-19cz62_e2etest","name":"George2-SLES15-19cz62_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98c3d359-beed-4953-b071-e3ebef8cfa84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"45665547-1dc0-4cff-bfa0-c3adfd8408e7","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAzPmetQVqm1DrpMpco0mD+VCh+47dSTSI87+fTEcC9Uvlie/disDHqXqRo7k5gEF4L5AebFO1xPB23hObSF+9K+ykmuG117SWebxKe9+aeoh+hBpE/NsWA4QtHOm/MhZOPzKigZTkLl2zstVieCMCHMArroSwOmHJKiqxMOFWyhSqa0QkTr3CZnloULgMXp9gIHp4f2w7nwC4tt6UkwT33BVuQIpNhNov8AZDyb4USi87alvgHF5wpbKkqd+XdjinXAYL29+Dk4HdV9Ek+D2wIsrtYcdnx1CNuwHIflXo6TwN8ZKUI0Oy+i49/RBz+854qFhQqJus75pbECDdNRZnFwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1pcthf_e2etest","name":"George2-RHEL7-1pcthf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a59d480-e7d1-4550-bad0-70a8fcee07ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"ca6bf979-44f5-4448-a09b-909861c20154","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtop8BcBqZjgMkCz73Iv74ZG0KTq3Opef4mIhIRqxR5NZI+C/x6Au3FZ6uH56wd+DgeNERbY+bQ+QQ2iBaRpHuISUhTosbDGKiUDepdZY+Fwr55zg9CMe49x9OVUPUCKv1KNvBg4FjzVbJhnrWOBF9tFYJddQt05RojzD3wDT0mRkouq4t5g9occ82RUH6a8zELN1gBKOCW/nGPZGOKsstgaiSLImjZnCO6fIl1VTDIZaSWb7qol0RC8nSxxHh3uJHo8tM8JOtptbP7zSvl9eQ/+Bz6aUi6YMIFSDbJ3YuZ2/i6Ew3woSoiXKFbNl8cQZIK9oXb0rEJsN+dfTFqvdawIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internxjp3r_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internxjp3r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"719f8c2e-784d-49b1-b4c1-47fc9056cdef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8014efc3-c830-473b-9ba3-aada79342bee","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAs0SwOfk7NkwA4IVA7/Vi2geDsLhG9hIYfJHOEDjzehxflH9JiTJKFHlasWVJet9VPfTol0rexqtBJJvA0m4ik6+YT2gAbFXCI99iDPxDuFW5D6yYSrcu63iMU5bzRRKJRJqhLOn2RuSiROJ6zS0sgMysDJF5AgaLlo54HE4uAUa3DpT+k915G1sotR6lt/5i8RNGpWi+z7SUufCk5sADMZZW6dkI3ElMh8wbYjKLBaL7lvi7J0/hMJTGrEqQmbbFkSa41neK90T+ron9TBbj2IzIRs2Lqbj58MCXSc8GnpFme4wv6lWrGOK41/VR/DMzSTkCnRnHfDUq2F1f2PVw5QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-16hdpo_e2etest","name":"George2-Win12-16hdpo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5bdbb17d-0127-4b77-9992-9aab30a5dbe0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.003","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"4fb53aae-e647-4b46-9261-c58488c83d40","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxsGj6vfk3XzD5cDQHBQ4UCMxohXxI4iUgpGfolBdZ8dBtOMWAW/ZGxAzyFvfGYhWJ1Fa0d+FhSijxih4ILQP4ze+Y1htBK5Fmpj3r2NoK93R2dpfjN7EEQgyBni/R3JEB5srP6cOH28rBvO0dxRIHclxNEfyfErHZHW5EOr4in0oBHBFQQoQRTT2oZB2UqxPeJ9RbkPDp5sweeKVVX8WUaXS4gIGwHlGMM4u+kCEopCoOEfnoAu+e6zCTWkbKfA8DwNDBBKjbABU7wxYBkcFxTIr9A4y9f90SjTpRZN6OQn7kJw+KIy8epBq2mCqgTZqY0RiDvJ1rSampRTEl95OCQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1h32bg_e2etest","name":"George2-Win12-1h32bg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1a02215d-7999-4df9-9875-5012a56ea170","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"544e900c-dac6-4fc4-b2eb-38c2228f09e3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA423hOSna5lvetTzdV5b8dUOGAUCRBfliMGmpciE7imxynNj/pUMjBCR6iSvfZfHWGzag2SViIDD3TEfTX++UeC7LEpy6YS1h6ZnmMCtAAPE0rz1TI987bESSgZTUvWEy4tXAcsQOeM15ilbq6unsBKJi35J1DskXKtYBEDz3khEWAk5M0DIybb6P7Y0u46e7QGwzno3iC26ntUcrTbyzQJrRd+Ivf+Vpm8m1iW9O4CwQ1Ps1QnVvkSE36RCIMJlEDlntmm7gal13tAqgJ9tVjWdalHVciOlxQa2TUhZBk75GAPDDU5Mskm2hJSCCb0ZPC6Ho/eIlYfogsL53w6YhhwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004","name":"0.8.20136.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e64ba1ea-cd9d-49c5-a256-552e36dea64b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"7ce91cd4-2000-4c80-b955-1625ebe6792c","vmUuid":"72133E5A-9249-0843-BD44-4404E9B3B80A","clientPublicKey":"MIIBCgKCAQEAx9wKDTbyQAP5uP596VvCEOAqT0phok+91l+jauVK78gQlmc/iXwhRW/3rCCkDkcILZ5Y3r7HRgOArainxXv5xYI4wuDDYFnvPfMNc7U3rOa2VE4QHJtRn6Ces7bgGG2hET62TJIJubNVgUXRXUj3uWquBEgfTkpNCtlHuRSaX3GxyCypIUtBJg0jZvMoGv3vdn26HtmhZ7wtvsVbs3efxZ8IvoIOKzCoX/u4pLJ8A3zg8MNAneAde4Sf/kcmrOh5aT/R6p1kCtTCe/BaJHYb35M7bbXNF/ihMbZZzIvU1/J2eT8E1i82nJxK5Y79nq4pzx51PegguCdOKTTlvlEQLQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.zpcne4xntavulcipgeiqvzfuxb.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_CENTOS8","name":"0.8.20136.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"363e8e65-f0bb-4e9e-b816-ea7189e73912","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"49d10c59-f995-460e-9e21-0e8fab19c5c6","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAtkahKnPfea9yft+0MDdflDdBfYWeThtu6P/J0QTs0jJqr/mJd0Gbe+j8g98ZDzatTJ9lXdqYs+68jF8V2u8KllPc5vYIvo2TTSGtLOzFKB62VJGcF2ysmpqkHrnnHWd/Dj8pDn78acwe5dG++7UogswdWztsLxDSAYm8PpGDKbXZBH6e19QD+Fa5TLE/szD2X3+jJObVc6bP0NsmGxiP5nUQHLcy7B27oCIBlLVUkZyCpjabf4siPGT0fqUjvuKqxftUxSf+dyv0rrRpEDrVouGOXX1rflssI1a9Zj9fR5NQru8fSh5SSszSk9i1ZA/oppbQkG4OMFctyqcX/jcyCQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_SLES15","name":"0.8.20136.004_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3eb80ed-b330-4e6f-825e-22f72318bf97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e05108bf-147f-43e0-a67a-d1e619acac0f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwflQG7z3mg7aeXHF8nmAaoDUOXozGpwptEw1Q3OYzVDrnB8kBVopecpupJS0ZbreYousD1UTJMYv4DCf28Tu+JCLCVEUV6O9T+eYudAhFpWCNj/9TM+qvOtgAH/oilgEvx2TKrkzV6WBwTs275oi4/xU66bfA+3zPCXJVxhNkizi8N+uIop+gOTBvzCctTsCdRYLfU4T6kDIuTG7pF4S0UKczfQrDnrcgekb4lYFJRb4ySU20Pefbbj4pHBj2BdF4UzZfBtUMGacZhWWc/re0h0GLQIERARr+Fe7fEStBYUtQlsbCh8rLB7eLxI36jObNe3zlTzKALRxBX72Sm0emQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_AMAZON2","name":"0.8.20136.004_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"14860c5a-3c53-4bab-bc5c-023d7a2b3145","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"860856e2-cfe5-4103-a033-4ed8a5eac018","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEApPfdU9KqAmiMgsmLPtlvFpTzyS7CPonNKZHPzt6YtDKxSwYCqbPUxQPUNjB+DLt1d3E57azou3bo2BV2hZdqabaVQjrC/0pXxJMo7pT70y2gZBJh1pC+HEF07c0Rld5g/mnW5mkfgdEWqH8DRbl+IbmjUzisOTZ+qmn4wzB8HRh6/gLz/aHO0wWpAlro8IqvJ5x0jfm31pwKF580jNXCBznAiImJsf9CigTNjVj/WsWCRguM7LxLAPhq5O5i+nE2S3nuqBcIbFOgkqtgUgftqOubQSfyMUwSlw2QQpP5kX5PvG6YWhsqtdfT45vjXrh5xhCLJHWJaX10Te22pUcrAwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.004_RHEL7","name":"0.8.20136.004_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2fdf0c08-01ab-4910-a7dd-a1db014ce8f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"24737347-b5ca-4ff6-9b18-bfa7969b153d","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAw3wZ+hCNJd8QxWHuPYDPd+iILnrkwALy/4oeE+3B7hT6d/lQAA6317KS90ZkvmPCf6DveUW02dAux/xWo8hRbxQD+4t/oqn+sobTwDr0zEsAjGqbBL42f4lSbDHdXtp6ZflzAZ2d7wzncijPLxc6Wxw8ENs/2CMhLFk5rjWXf7HS44XP6mtQzpxdXhkc/w9gYWIFL3gDnaSXeEfmmW33rsDIhUQGQo2Qu0X0gY+k2xX5Q/8NJXju+aG73ZXXpmDQrrY0d5OzSA2liu2Tll4FUPR+fuShUsQF5B7JE++z4Fnk4F6XaVEvT336cl3ejo4yR8E0lkEDEizRtrkpKxoikQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1otpmx_e2etest","name":"George2-SLES15-1otpmx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bedb2f6e-2c22-4c80-8fa4-0d9df0b71311","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"fed02961-8104-49e6-9652-7264271bdf29","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0A+8KooV5cW2ZjQxuipyQOEzOqYaVoePMcyT/VhfrjXs7VptLY+XYujcriN3zcbrvtP0C2qhZEliB5LX9Rr6o826U5r7DzFbPCDP99BgL4aa1VNbYOuoCHq/DZkrQLPOpOenzGHbdf7E+toYbTT9AwtfJyfvzkX6w0qLmC/A9kFrx9dgvvnSJ1KAZ/3tUOZspELbLDcI7W0rvTsJgnlkNnA8KJHl8QlzTbTozQLYwJ2RyHZnYrOm/zfkABNI1g0Jdax/DCXPUsjPZkC91DFgvF8aUTu2nidUwYjoWbTZ7efwB6aCdjIihm8MaxbrdJ9ILzRwx1LMjyyxsFALZ93I+QIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern65zuy_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern65zuy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a66286ae-3282-44f3-bf41-8513dd886880","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"57ce28eb-d800-44b6-a15f-516da0d7ee50","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA18whmzTNbNIe/nfwYhf+WQSwn8LFVHEGEOFLIJwPImJphvaHKHoVs5fYGcL4U8wq4RXx8WMUa588lU/yl8crxIoBNpuaWwZ+KO1Pj6c59TI15fPb30NChCUOt+neIPdgQKQrRWDhdGlTk9sk2+BdQwbOgjDfCB6QkOVDjFOqRFOFE05KhEqAHgaAKq+Brs9igvCvUtMLbGlhHdTqNx3sqFEROND8bd8HRUTS2e5hu4Zr8DxzmEHwrKE12C4aNjZswgNco+0RJbq4vovg7/MKk0GmafK5ZECYicMwFfs51ZSLTuO41QmmuC1VUexYsHg8K95ewnLvXsF4D+xdU+v5WQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1bh237_e2etest","name":"George2-Win12-1bh237_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8051019-f38d-40a7-9d03-2596ca2df9b7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.004","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ceb4e4c1-7a5e-4cac-b6d6-089fe5266790","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAsq9q+RC/6V4WiDB1BeQ2PcgwOXvJR/rREXXvcwBQl7ALBFjkk6YVilkSoVKVGBE3A9DonDSQrZyOrXybUBtdEftjG4BVEgKHPTHeMDTCjWlmueZtIx01sXPCm06yxEkEUl7RUB7RgbFCZxGsaTsOUfTrEEgVjlCk4rteqstgNrVCYUf84HzzEaS9ObiPIgCWeOaJzf7kL3ZZicvO7p/SqtS633TRKolZwTYdii86V9VpGglTDuh2V40F8vIBXfM0qRnSvXMq6aaZKsreo+zGNvGqtX3i43Ul+0+qPeBH3SarXUjxd//QReO7HDEAsPv7VBQBL567sE1w6n/WZ1hegwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1q4dz2_e2etest","name":"George2-Win12-1q4dz2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e62eb495-a997-4278-b407-1ee93d77f2d1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"b053cbb0-3e1c-4788-8119-af5fa93e8265","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxwlhJauFf3LkxJBUP8Lk/rNgpGuMfpjgRJp3Us+VqlPPwlwkXz2XzOp3fqZPoodcXPKRBRXzZInhgxdX4grFqmbF20E34y6TH0BoCHaY8XsDYRCLkRMs0aAJuEZkEi4MjTthiQIwBk8yFyW8wSWTmXm81yRFISy+Jv9OrjQwbZ7Do3ZE4FFgX84jE3y6FIb1uF6OGJA3/MmLKXg+4DLuJnJK8zj1mL39oomhjTeMQ/BPRpneheQhJr/7xdH3/3eyUHLzPwqRpyXqzkN08kWg0HdrTFK0pJ34uhdmz6pge1uyuo+CyL7Ub0ZqIrshqZ33U/6N3W4tXYklQfL433f2RQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_CENTOS8","name":"0.8.20136.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6bcc6472-9884-4c77-984a-d769a64b5fc6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6e3f035d-b25d-4cf0-a8e5-467b795be284","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAu5xSFjW2m/UQ4yV03bgChS61BMm88JGRX2xHk2waTANsfjvp9/ZPnOrMTinj6PWp4G0rqLOGFjKCTxU7DeUgtjl5nDjR5PEQ5ykn1fklZs0PxqfcJkbgmNBw1CZzXHKgBvEsNyiK9kJ9NnEdGjjJDlhtyF21zR2LI5wrB4c2XNL0Ka9SwyWBrB+FL7m8x4rBK3CU+e/WtPZ2gVQCtZwL8HPFaXU23rrkGRToEGCku52OsaDiGQl8eggDFG+TWpFnmiIG8KzOXg4pN25Jg1iTH3DyTgnCPVDGlmBESjej8XTlG4YvxwrBXrfiIvEdsF49XGB81dFbuMujhz5CIwnHIwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005","name":"0.8.20136.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7d48ae29-3715-4df6-b83f-b5af96662c26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"39769dc5-52b3-4a04-9dce-40bad0c09476","vmUuid":"3B70B7B6-AAC6-4B48-9BC7-BF709594B6C8","clientPublicKey":"MIIBCgKCAQEAxzdBYlZuVzTdOOONIuJiJIL/UtsTILioJXyO2I7j31NRepFE+5O00e3Ndqjvmjn1YVRkw/MY5N4ZyxL4tWe+XYZAuC4l6FzcJHupbaWhxE816hbzln+JlgA4+lokU0h3GnCRXJ25viJAOMyKSxL/2/09ZgiS7dlZG5+jNnpsZRWGBxQqHrpEIVStiCCdaCeCK708UPwj4rp5NthjggNRtE4zpVbLGugdnyPtg5Z9GK0IGzFCdk02OaNQjbkMI9N1xSnwSf84izEVliNUFoT9778qLm0tes+NfrqpgSEes1d7dZ+Fq40e7guwBkzJ+k5PTsc0fo9QrMmq5l3hxaOVPQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.airydkjhyxte5j5rmihydofhkf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_AMAZON2","name":"0.8.20136.005_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"82683f40-a6bc-4e45-bd74-7bb8ed5ea5f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"8d33fcc2-c7e9-4015-8227-924cb7190a15","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAu+G24lOoMgZcfg/t0sg1mF7nS6ix99gH3d01eypUcHKvakgmLA5QWCKvckWNPaU/TH7wbJrvUrhIiQy7jsbD8+VTKUu+OpUKIkwmZEuzpDdXLo0uqTOKIHEpsZGNZ4qkzYyX7nzISJWLjgVevB50/osKSQgsnbDIpeWUma7InaKN8DPuJw30uiziLN8Z8yANZ1yKP2SfeIkvkKzOqitXE0XPOa3RKiObrTp+WlsqZzvFL2UyPA/83Qn4b/tq3dmJQHcoznsZKqp1kHF5V94R8PI5v35C5XaV6ynp7BK5jbig+09UkAg1cRc76a1M7vQSUXKYe5L5+/obhRXGIkDoVwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_SLES15","name":"0.8.20136.005_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c8b90309-5d74-452a-a5c4-6a9ff67416d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"a1293bda-e86c-4cd2-a7f3-175da1f2c452","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAngPkup9L51Pf8Ub1mRLccSRmRO9UpzeCWFFT4n2sbdQlO7NKlbtNVH+EgUv/EmmN1I3oFJu35ejVJz4kcXk9MmkK8Ig5d/5gpj9myG8UfNQHPG03SYwqwskFsI2uYSyHYK8m/nKFm7v47IhIXqsT9tUaDMg4IUbAodtq2Iizzl78NgD1u0s8xujWlLXINQpGwH8YL8CKl5bEdhirhSQ8FhREIe1ZDkDCfd5Ec34T18ikzg+E6cxBazcAheDSCzdahooGaANrZkQLMJCt2U8iIdH5u6Ykvyp2pTMDN3ib4794Fug31X1Xyi8LyCov/auyq+Kx9HSBGQSqyWE3giW9oQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.005_RHEL7","name":"0.8.20136.005_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e13ec12e-abb0-42c5-9ff3-d81ab22ec8a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"3dbffc8d-be38-484c-83cd-15bc4c3265d7","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAtXJiGFh/VtaOXnGVwFfq5M05/gk4N8qk5VOUaywNZqS+uZMSe5V0c81Uuh8dm+qYIIuyzVlvmjOQIlx1ulc5vOkGhcdrPFRXtChbNPpXNhSxo19oPRPtwDsNBjzZtxQusvOjTcWHlIhlgv3Ax/V3tOmnxXT57v/mk3kGdP7FzQcOcCeht1MYzumX9BeJIaXcv/HbQgPC/vuUXh68M7JoweSsxPFt1FDc1WWIbe3u6Z1zxgt/6Iwpvap3LUOEviGA3Ku2JlVnntDUbflLCmVbqurtC6q/nOeQo4cTkH0qZbde4nST8RcC3NyC3m7BE3dBDprYChLnZUmGJHlzZE46owIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1uskty_e2etest","name":"George2-SLES15-1uskty_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"755385b8-848d-4083-ab99-2fdf2ffb40bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"0fa02e8c-0a96-4ae9-a6a5-2e98895d9c32","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwYG3cSlt/9S5Ad2C47OlZBmqbtdE7bAxer93LX5xN9d27VfWqyFqDqP9/SW34QYEXBlQdAKWm1KFk3eutHA8Ez0ZUVisrmrVK9qXx4JdURueIFuzEVJLG11UlpnMMyd0EnPssJsZ+VYS4dRxz+Ify/wmexISG8bW4F0udJK41OEJ3dcFQQsQbsZ7dqoqsUIz4sArDwCGhV8kZIG5IHlR9IGuTx28TAyEmGXb9kJw1CV0JJ2zog4qMFHvcN71y1ghKxh6VKS/NJ93wGL+vo8hMBWi/+SgSXjRZPRCAAvqoxXob34NWESPfmEstqeN6JXv6pzGMG7iXbErz8BPM+GZowIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern1qv5p_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern1qv5p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9f669b2-2019-4ac8-b050-e098846a2cc2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"65a5c03d-f13c-40d4-ac0e-46615637bd08","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAlkPZJhxJA/V32s8GaA1y69Ea2nkvnG8jW1ABf9lNdvoqaZ1IVWB24L5zp554shCWJMTc0zskTvpu1BzK9VXL6TE8SWgvJH/11ja5TnqHcgk/Xew+YNZbJHp2jfdJzKZ03DWuRgsC8lQj37yb1OzabcKVf4tSK6aW029SQ1eCrK0Affjm+Egj3B1TglIX8YhyDLneKFOJix5ShC3RSFND3cKKvSTmc/jDayA+P5dbSBwfbT8bhPFpdmFbJTOQKLBskLvgdopYzKbAH2rfJ50ONRh33gDLlU2H0vqqygBQgR/m1wGzaWr8FubxZm5VjBnwSccw6Ze+JXn0yi554vbq8wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1uevhs_e2etest","name":"George2-Win12-1uevhs_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"65a9bd1e-2a0d-4239-bcc2-487cc374d177","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.005","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"be0a6554-ecea-4f8a-9b59-ece410b2ff91","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAz80kRVFuhHi2wc53InRHSiB9ss7HSV049CtOg0vZLwfAcEisNF3gK7i+0la/zUvP+jZqylZqL97g2xtE3hwCxuTd00MCiwES+4tpxxuajd1Kzke14JCu67HCDums+9UgxiMo48/x1fK9ZRPL0wTBx92VLkAumvsHFOgG4oATZTEwsCDLuVF98y9QcEnGFvWedDNUiWK90fk8CoFcu9q4HPJfdaVoEE9f5jWyqxzMXR28/xCg6TA/63dDnfyePXm0+TBybXKIQ9ecRE6ui0ki6ZZeTIrxJsva1ZwHL0+pai1R+/d+MqTQEW7dEMjZxaNP+zAYVpGS27kfBp+erN2P2wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1rc2ql_e2etest","name":"George2-Win12-1rc2ql_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b8878e41-7be5-4680-824f-d02009f1020a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ad32d535-e9e9-46be-92ca-ca63180b73d6","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAvr5TVmW9tCFzRikOSbxbjoVI+1Gx9kuBNfDupteoAzJxuRM/jQTl1sJlnlMV3gY/HINObsrLCb7qSI5rVfvKVBgIurVD/XSYCVpjb3hMLW/FhCQ+XyMBGjISFewqM+mC5E9wPtfXW5S2uhB/joMzKZic+BvUjiToJIgGY1Mb3guz8cFTKXhswLHoETQuYxNDOVlJdSpcboWRNu5Yo7Ivcro6gHwwheqn2dlSG2gg2C8iBK2swhO5GbL7vuUk+2P8+p1xQ3nATaGEdUEyYl1hhC/38/ZXPyF6WS2YdkeDCwIfHt4wr2NhZKNkJHVjwx/tv612A8Dc7XX02wAj39x8hQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006","name":"0.8.20136.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68aaf9c7-6764-4492-a3c7-02b1c17dcee6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"3778ae6d-2642-44be-bdf8-4002f65643e5","vmUuid":"09A9D872-01BA-0741-8C2F-88515D2A465F","clientPublicKey":"MIIBCgKCAQEAoy3bNuyvkCKlcWkLxaLxLqK6OTcyRhb/kAtC8C5Z1lDoayvIJCXUlzVVARzj35F9kGlr/1PfPUv4YSPzdaZ2d8E/wjt1Iq+TO6w1CSR0J0QWljtOlJjOh9jgKjB2BAt0TgCQ7MOk1qGzCBMRKzRpywsie5xkFOEjABBTj+pG6veh+5F7fvTbiEkNkRHAQ78cZEtpBc27gGh6IgewtjVGqS+CKKIgqTGFgLpisddw+mqjgRgnYE5dFJE9e0uIyOkAm5Xm0q+ovyRMjTILFcY9yESEJEhNm4CyxLpQvwTgsm92APgZgBy/AbWcAeKiTQtJZMyU3GcLpjJ2IJCcPOhY5QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.2j3e2trhfdxunnr1oqskkq0moa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_CENTOS8","name":"0.8.20136.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f16e675f-3aac-4abb-8a1c-c45bc8387ca9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"11751fc8-8c7f-4810-adbf-04011073f976","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAy1da9Pmq4vpDmvfII0ssPlSBbqkxHJAanaVsVLHF4fqK8o0zqntzEeFHCa/QjPBtsSWdOYrasFsEuLb3+WPvmyfC++0GTSxhH39YwnP1G17xmF7B4+YzvYaiPFLefWCUj5KQNhD6uL2lzIZkJxpKjAUbTYA37UNEIaN+7wH8SNEC2GUuGyywJCd4DmX1WyvrZK7gYEUMJ3QUrtemabfBUpx5MrQ8+JzSai8BjtunyrqzIkR+wiLQ3zXrVRmlMJhcvM9jOVY5YZjmtA8ZJukTW+tdhuR1TizFuHiDXceXmuvgX3e5hBpG26KfvLs5LlTVhC2g9u8IRUx4W4O9FEeNEwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-105agj_e2etest","name":"George2-Win12-105agj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"917b5bb4-262f-490c-adda-55b02ca0452a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"33892697-949f-4cd7-941d-a4c2adb8320e","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAppa/LGb+aM6jp7ZKvHxcuHcpg6U9e/8ZeTKGLqwfTUU+Nb2U1WaxkEbVf2J3re+YWIrHiWWCzRvbNQmEYFIAExga8UMdWJsnep9Vp3/ByZHm3LZttP0Dfpc0i+thjOJC9X/A9o4I9mPQ91njAoP+D86/Jwjzi6jI1C0iZ2Y8yXvpfm5LA0i0Te5bhCVJ7XlIaiN9Yvf9OFMAy1xBmB6HSYHvE3JUyZz04wwvFFOHXr8XtGIto3aGaTTMOaomqHkfF56IE2X4WtfWhFJ7xhnsmlTaMsOmI0xFIfCSpO+AYT0RB1mgcpUtKos33B3OWnuXj+TkGGszXxhhmKgHgqj9swIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1dfujq_e2etest","name":"George2-Win12-1dfujq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fa693e65-b697-44bf-9d32-aa4152061046","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"50e3f160-9c4f-4189-9e41-ef2ecfeac2a1","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAw0pVL7FST8v2QG94WuYrdbPkT9U9NS+oQx4WWkPyFWiFz53WbtKGixZM2qMe4NOMpPge5WkICpmXyHAkcwYfe8EJ3gKZ8p724hDinyiEfTmECd5+nZNQkuz+gt06ow1zCUidXnzAQa+ZTH/grOVerOhRQ+yypz8EATMuLlAmljeyInpFk+va4N5HOEwjN0QKEpHPoGOQ9aBg5a23nAtjhW6rUZl3PCpN4uQuqxqi9oL6jxRsHxzSGJ6qPRrgrhW51lp+UThBlEp8Y3/XJT5l3GVpywnvsGaOzR4s6bRl0+RL1JD/TOS7JOIDKZfUQRlOFZCJxQu08rCerPx9hjL6eQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_AMAZON2","name":"0.8.20136.006_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"988cc1a7-2b18-40f5-9b0b-db2ee3f1fd1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"e3d97fce-ff09-4de6-832b-dafc77f82812","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxbIYvYqJJ9MZJzrP4Y+ssvn7awPtYYcW7ECiM1lJa57duRbbVvX/eD4oLXCVyAchgG8Eistqu+C8xjfbKmsKZnusYUhVVweUubpx52aK+lKh2G+gdN2nXTFkKXDzCo3uPLHIBwfST6MC34QHvHeJQOa0Pex8oX8dNOdwK4XHwp/4yPjj3uttc4B8qEsRKamQudtY8pFt10JPljI7+Ccmti7Ju15KID2TsWsW4/YgJNBXIwD/Lasn9KazRycIdcNishnA6J3FWahyrzg/t+l0j2gt8hhmLI1tD+wZYIyW53l+ewdbSMONQgb24adze6VHCthpvrUlV5OBf5ISAlge/QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_RHEL7","name":"0.8.20136.006_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1133a5e3-f4d0-4edf-b527-c17023b8851f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"2a272d4e-4fc9-47a7-b265-fcf8de26c712","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAreG2tk9pmQc8mLxB8mDIVpqlgNPOYnh6/L5JEyOxwVL90LJd2e77MTvWh3PMY92GYqGEK5G+LnFn7EkzauZYdGiKQTgrKLy4o1KBQkjwqXyOiZwzwl4TTQ5GJjJC4nOgzDClrxcB8K2QbJz6tK4l6FZnT2SO7WFbfx14ey9bP1zdRNQvwjbuAGzo9J3kZujaIA7U65AeRy8/7Wq0rLIiZhUmGt+fLHw9oHHQm5pR/2ki+fcIJp18mtyn91u1WF7Ko1lD2qIOFPTmT7eelCesviu4q3WSMzPmuhMfTXFh+PClJVJBuGm6O+nWxPegVxNx6a7Q4KbAICov4WeuK0KTwwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.internf6dx9_e2etest","name":"ip-172-31-14-156.us-east-2.compute.internf6dx9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6a8a854f-7eb2-4f3c-8e99-e10c2cef952b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"36a2ae8c-94c9-4bfd-93e2-7a08d076cfe1","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAoo2ywdYYxfrc9TewcJMOYEExkXLSA9Y2fhJox/DKxsxtIuqx8nFtTpFcaZUxlwFpRdFY1GtPmWZ+96Nm9qwwW3Y67tsvT52YaHDR7q+mPPpCFd/dzdEwAzNeW6CDk2p8DTDtf5tdBwAiCPH6jY6gqmY0RXkTN8XRoopNquJIMP0xkmXSEiH5UrU8JxqdfXBGjkuiodpmMuzg6E5OHcH90KHFPi/E7di72fh6KBNIYHW3m4BPm1tW7Od/pG62oGvwP4NGecz+UEq5kdEQghIBZGpemutpTFfo7pNGykDCfpLMP9C2WMhB7esiEvmrGSd1z6eHhfz4Ng3Gm1P6Emx81QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.006_SLES15","name":"0.8.20136.006_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9abffc68-1c69-4972-af61-159942bad288","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"677c1b5c-d9f0-4266-be64-4ddb26b02fe5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA1kmmxev70sq6voY0sDq1JSchAd3ZJK46dt5PnA5k+syAx3+1v13J6k4DA+VJrIXumy/nc1cxwAfGpVhdlHnPEqe/FmbpRQT6l/FjMBHRAlY5ZNqM7jwZReyuklp8tLS1oUc5FL9QqGkypMIsAYGNf8bKwVstzibDQSJcHtOry3DGGWpGXSrN75WKF8/Z9RTfvIqRu0dcsGXQvGhOql/erMWDmhaWcIPRowx2ARMUt5fpgt51f6JmAG3U1hZU0p3xYDdSNhj1M1qd0waKvV6oTZyGtRpX3loTE+UyqNlY60OB1H2H+TPV7u8sIExhwu0wNGVTrMjpkWmbVxgvc74N+wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-13ts8g_e2etest","name":"George2-SLES15-13ts8g_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"412ac9ad-6c0d-4b1a-935f-18a5d46e4ac2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.006","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d811fb30-f1fa-4fc1-add6-4d29c9d90eea","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAuOtSEfkb6Efu6bu/qJBPFfAY8Q1h2SkWKi0dM3aFLr0MppJg99DdB2ieft0UzJdbSbRmjkeEvxg13TZxUWEg/+yq5XprUtgwhWVLMk2IZBcEdLWhhw/oYUFJNmQpYW7pKdBJHDHMIMnJ787GTTlfX74byMNPny4LRyQSpchpi0FCwHNrK172JgAztmQgi9Cy6X4/6AfK97Gaig4OmURq9gT/zSa+KGmUJxJaPra7CeATofDOxhbYRyROEyoDCHxeSK2bwdNhIKiwYgoVIDs0lywAmyxE2yr4GtQlACCA4AFVGL+Yf/iRO2s5ZdTHK/1tCSfMVDh78Q1NuN6DZaIYXQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007","name":"0.8.20136.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68ccf031-ca8c-4af5-9806-3bc284c4ec84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"97219d06-8e1b-4b74-8d67-2e04b5ab5c07","vmUuid":"5B3AD4EB-2CD5-4549-B5F7-DB36D792B178","clientPublicKey":"MIIBCgKCAQEAsWOX/M8xNaqTePRja6yyt8wYczgl5YFVr53EbnsLLqeCTEkJxJRHqeTSdRdczamzhvnM0Pmdck3Vaz76cs5rJ2u8tRY4aYF45iYp+bCEowBTA/XjOCPOteve8IisslPpd92XwBhgJrWiihZx+KHHpM7AQdBHzggx88yd7pp0+8pGYU8nTBAWX1sgVTlZBJTwXXSc/Y0P+dibsXjJeKdyEcJseeDOYStuRlb5prdcWNTZ60s0ciSEfHvCEigdYWm6ZRx4FMZsXK7l1SBIF2dRFE1ha2wA9swjeIzSvJJF5i+4maBErkZZKUDcaE+rvjmzB58m+5w/DwGkKOIwmMJp9QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.tneh5hs32a2ubie2nppnwrrtfh.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDT3i52j_e2etest","name":"WIN-KLKL5O3QFDT3i52j_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7381e400-51fb-4bba-a5e6-f6bebb3eac7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"0a63ba34-65f4-4ad4-8a5a-3e7b6bd85f6c","vmUuid":"59AEA5DF-D3D9-46DB-92C4-932981898C96","clientPublicKey":"MIIBCgKCAQEAsmRKipUxKJB8ZkDaKxGytAPJbhfm5xsfIhkRdU4f1vb2Y4J16cIZpsF35m367F/Pu9hp7gna4w0kW6hWWPrzGEgI2e0d6jw3lNdST0YBYo5kUlGkPSSr/r6xEPNevN+IZiJ3S7dn73YWax7Nzlb0pGtOX5zkhC1pICSon4sxkO2dnL9qFpTwABfvpxz+sJjLRVHyQbM8mMG2BwOlH85KJv3glru50unMhZ2VHNspdSCjNJ3l6qWEezRYn9BNoMk5Q3w6xlSO62pfquruMPQnK7XiKO+LZXfa7iaZDaazZwGKpJMmhniF9fhehvSKuXctUFDbOoQTRXhT8A15wl6W9QIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTu4l5z_e2etest","name":"WIN-KLKL5O3QFDTu4l5z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a5f2d205-925d-4701-aeff-3f102012b01a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"50473b4f-752c-4466-8efd-d07f7229d843","vmUuid":"59AEA5DF-D3D9-46DB-92C4-932981898C96","clientPublicKey":"MIIBCgKCAQEAwSHA/DyIwxyEz8thM38ZBb4BQtg3K7Kc5WZbqlu3vqWFyKd2y/ls73adIDVsorKyZAaGun2bkqz6CYNmsV0JpAClCA3OfL7MYBFYydgLko3ALxiL70YUlDmUwEh2lKxFOlRqBe/rw9ZjRY0Ybg4CORFtQ3UjM14vaK5XckP/MQS3xIhFPh2oqXu9Ms4GLZuL8Q4xcSpSPywGuFxhXEGvkRi9zbwW16cATW7TnZMbiWOR/T5TXeQKwIoS+7EAEyJAd0H504CVpf0mXftuskX6eHkhvJ8TXEqoFqh7KxfDKFilWJg9WALh4umJOEz4+wXggm4QdhPGmiYzu512MYaqaQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_CENTOS8","name":"0.8.20136.007_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06a49a9c-cb25-438e-90eb-8d520bb89ad0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"c9f0009f-7588-4e0e-8f40-4b7a19b6d3e5","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzP8IB8W9LRSsnU97Eti40+lk0d+OJe7su/ik49no9JLLinXQ1huy6uWarvnEtTTQuPoNxF8OmwS4gHXDx0zbmUz1RBeJO48WK9Qes+ihfNug338+PzNxWYbMUX1HHfwnqipxyI6zMiyBSAMVWm1NXxXfmPKPUdViHpAIRqYOD56lJexdYt2HWTbUua1+vFeMNWZuJfOzXkjRFM/r+MG5OMfw2IIGGs+I9vDOkIkUD0Gg6RqdMw73HSLKH4tvAdV7/yOyN549DqTtK6TvruVXs8wzHwWZbixPPZhv2CGqW4ykTU/e8kimxh7hTNuxKiQpLJO0wsjyE+HZl4U8x85TWwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1x6qjc_e2etest","name":"George2-Win12-1x6qjc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99f5e12e-839e-46fc-a1fa-961abcc148a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"7dedc1d2-35d8-4a6c-9c74-040fd0ea0ece","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAyNWRFBUK7rahdKphuRku6DlkguhydsY4N93e6E1MSMhtBbhZCJs8JfjCsP04C1M9qVIXjAQls95FD9f2NaRv5B3ihHJJ2dLlS2CJ81OxYWruoX556fmKKy2Z7FDYdhfCwQoo16FVQWXNheU2QBcSxPPuudZdabhV2WSUv8YCFn5mEHML3bLOjmKWoHu6yDTIo2Sa7wlPlDs9JJW/Oc868ilAL3VBf38FEToFfsTdMPcu1b8MAystK9MdqPHdpOFz1l+9NpAfOgB6RbsTULBj6SY+Bk3UaSZYI3OrG0cg4tzZ5eI6HSivXsaYiXNoFsoyeObl7+MjAjhmq9l6L5bDcwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1n6ptc_e2etest","name":"George2-Win12-1n6ptc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6287e31a-bed7-44b9-b7ff-58e031e3faf1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"1f17f6fb-7113-4488-8670-51dd093f1fb3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEA41N+Dl5qT402iV93dRMA/SofZj/vsEcY7PKT79UZQdqBMkPLqIuOGk8B6h2ZuOTYJ2i/aJ7w7AxTq9pOzGzbqpfczvh5iN2z1YnRMlXYbktsSxFQZ1H/T9zL8ZyHoIY2bx1boeOPZLQB1d+o+5NUAptqRcVeZhHhlwyrVWeASKFG0EdQLGtdxOAT6tW1K2hfRx+FbZupdCQJGan+Dxv8o6oxWrR6B954+Xw0CQbPGx+r0pgYvDonroQeBnL8CKFNjU8a0xdZ8IeclR9eadrfL3WtB6NT2QXoS9dltzXH5jSbcTrFjdyUgY76GnIxTYAhcdK8jPmLWPYqkrHGMsmt4wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_SLES15","name":"0.8.20136.007_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d2d0ce0b-f721-42a3-8122-6193ee7e288d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ea98ae63-4c30-4f3f-b5a0-03d07b5a76af","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAnzU+UH0X4xA7OHcenJegFBV4ck25p34AY1UXxDcCEQbMBccmryxNkKp7cD+uRjG2E+VlnGjhPr2EIGFifmdUCMtZFOMD1tDkbxb0rYVumwDnw94/dPyDbotv53woDolCMUzJeGdPLWOuUZSqzXZOI9ggOJ6kmtFReavwf1qNuGo5DluaLoETyMx0vdFwMwWvT+2RP1xu15gdqFmTDe2gMo1ab8NwMa32Zs5XfcQYHrA5QT8Yh1Jk1pIpho2N9jnsnMLOgMlR552iNbuWqWDXnm+cy15AL6lGnTwr4n9UqOcdHL+H+2zEPcS7Rxj6NbxasOcpwnkpjYX4r//u/a1LMQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_AMAZON2","name":"0.8.20136.007_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fb474612-7236-4c94-b9cc-0059189e3cd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"23b09333-77b8-4e86-a8fc-05c4791b4ddd","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAvyFddUKCKbH3+AKp/kUhLw/D/Em0PSqg+YhQTRpzFIwkGJCPndSUOgHebdOLqulyTPjNT4zK6xLABaG21KGGLkyiyObmgEpM+1La2PJoq6AgSswpHkOgbD26HPJJOHOXQUtHf/mLYHj0VELjZN3NQnXG8pHenoAdz9FpEwMVErm2yNV9UGeRRHOJMjPB/YpeNzNIgmtLsDdGEL9+Z3j7gH6PncWQI7LHrEvAIF6Z7hniFUkqzLGgJcg8vZPW+xzE8yPc2BwNU6KKFzpjkmcbZk8arzEK9lq0wfksPrYSVKcVm2AM07gu0sIE75xtxXyGraJNE4XDUDmiJBeBLRVoawIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20136.007_RHEL7","name":"0.8.20136.007_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9e48b5a3-758a-4c88-8e6a-5d1d2066c007","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"3a3fc060-2354-4f79-8e96-74c617959934","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAvphSPWQC6UFCqsDOcfHME3NbNKKr7hYh30Dnx/wGwoNN77Im0Vy3T3UBJjENkQ7gvVr75XR4eM+ljziZBd3/NQOh1qBSvrjhw/68++4C8QdC2ZXAQFTt0HdcWibMFMejqhE/rkiVeDE5BkCNG9MtZsYR9DjDoOZZA6nABocuLzwP0HLYl/LwF88KJ1pPFBu5aqINB/V7suD3epMLfoZwC9dnZ00vFJTU7H4AefmTX9KV+x1JTnMyRgsGq2CWDEfXw2SPSICFRZ48TyhgYNw33qe/dzFvHPOheUwfnfQs9uQcsL8j2JyqaAXpFBaJGOImgznHCK+JG4dDdKiIKjWUZQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1o2wui_e2etest","name":"George2-RHEL7-1o2wui_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23ec8618-ce4b-4991-b81a-ce8c8e8e06f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"b74f0334-dc24-4e1c-a10e-3ca5ba022563","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAsGxy3ScgKXzZCZUoNLbQ5vo38pYL1wLHXICfBfczBk2ZpssIfdFL6NbKnqT6TPxbyOEaWhXTcteeMV7QP+QXshYeTj68+9aiHES1PKZZGu9B3VQbmv1/dNikI/iJr7t40VuyqYxcHvFZTm/nBZo3kr5AnTlQW96wV9UyIEmalHmxe+wTq2Am2D4u4o0oD3KVFBboUq0ZQALyFqhUwnWF+onSdONYW5GapAZXXltyNkoAVIJLXEpltuoGdKwYSCNNSPA6sCAAN5FKuudCjhqzrJBkUUWXYoMItvZK+i0C2uIRJioHqBC1NlSJ8UxFGhKqgc2MEF/XbwseLHm3i0M1/wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1pb8jq_e2etest","name":"George2-SLES15-1pb8jq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"09403fae-fbd5-4351-9e3f-fa31a375a91b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"e64049dd-d695-4f5f-b7f6-8278bf10a827","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA107MZJOOOwS6F3zJsE9fewxD8H01bQ+W/eN7fRSsYVRUpscFkwUljfzhO7poNjEEvbGI1SaGKfPk3c31ZVHu7JXpEIKyHj2ZzhWRJ5E3N0v0d6kOtH+VZiJ9qS7DgeHaIeJJsSTvRmbIQXctKSgr4Q9W6dNYMa4eE/FR04hKc3BDUdRb5YgkTPkfTz3CU7MhvQYnuH5K27YetG5VX8C4GYm6oj2vmBRVBHqp7GUZ5ZkCLWTmbjAvTzVzYGInRqHwIbWarq+Aimr/1XHnK4SFB/re9TAhNRMsS7Vj/zfG8RJEnUrRNJ2quLuhjKGyCJQ42PkUlXkmuQiRSCzG8NyWtwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-14-156.us-east-2.compute.intern4pylw_e2etest","name":"ip-172-31-14-156.us-east-2.compute.intern4pylw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"067c0eee-c24d-4a05-88fe-25c25a240eaf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20136.007","status":"Expired","lastStatusChange":"2020-08-13T22:12:00.4415171","errorDetails":[],"displayName":"ip-172-31-14-156.us-east-2.compute.internal","machineFqdn":"ip-172-31-14-156.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.158-129.185.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-14-156.us-east-2.compute.internal"},"vmId":"33313957-874d-4a84-b7e0-0b4274f75e3e","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAy7JRvuW/AReDnRRVsxQS+LTqEip7hF9hfvr03esdCDm2fX/DQwly4XsvYS0k2J+bI8zOjGhvdBsCdC0k6zWZDazSRX3kluYUo18RDa6Em0Ki9OZooRg6ZEqzAC/wH+xC1474+YSugZoVIQU5iKjromYK4S3uPnisJV3Ng/f+hfQQsJ+NyZ65WDTfxc64Gu0eA4v56AQNqlIArhz5YT/qm7khzWiG8WP6S7ezJoI0GgZDLZgP04vQejDGEziqIro2IH+kpColHGC4L2kRfoWLWroECe2uaTLOZXchc/OjqsPQa6P3fcNP2c80d9NUz8l4TQIgCarMLwd8sLFqBcQrYQIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-14-156.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20137.001","name":"0.8.20137.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2fbcf248-d834-4216-a4d2-d03033c16eb1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"1996752e-f7c4-414a-915a-ae54696a3934","vmUuid":"5AED6459-95F1-9849-9AF2-0BDD5E94ADCB","clientPublicKey":"MIIBCgKCAQEArZd3aFRfldDE2/51Y5I+qtQ9drcv7iwSrNm9hB/pC+nThZ2DhLJUAUuIpC6U3ymzUxWZT30JiOtfMiwF+4Dk0McrqnCtsDEN7id2DSnZOA1DC4trUzvV2W/Wjo8tt66t06oF8VoiCzw7g0vvBTAN4xqdQz87g2O8lG26cZAg87TUfxaqMrP0OEMN6Yo0U2bik+nyUEVp6Mt7a73oHADPpAp5mU2pd+17mU1TkQRWkdgK8bvKjnZLcVrCYhEBg7R/gBjCpJxA44fymXKeXpBXio81WzzEPK7pPRKx47fSdyhn+byGFVhx1SgfIpIy4NgwPhGWLtmD5pxpVzoFCWeOrQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.p2e3fkk4edoehny4pbfwpj3lke.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az6237glbu_e2etest","name":"fv-az6237glbu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9c89e50-510c-445e-b31f-409dcc7c2deb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"e13b962c-b457-4257-9329-b0c16614c357","vmUuid":"5AED6459-95F1-9849-9AF2-0BDD5E94ADCB","clientPublicKey":"MIIBCgKCAQEAxvBVAFspV6AL/z+W6FXBZcVl3Imw504jtWxfyQWBzJ2jOoqyiUgGtSOPp/cg3r2y6+7/xRYsaEEPknHyV1UONTmJ9o+wbH0K7fWDxodYvN3jJkvkuqo3ArmUtYLFxJI45Feo4D6S9IlhmuQDBXyuf+BHLxRX104ag09/a7MOTQYvnezmVe/d7a8mITSCUU5Pp5d561FyL5zkSzYFXHs9xYTMH7gOTVnHfRW0Y4sRVi1LNHNKUd9oBnj+BEFlM7MDqpdREVRCSlWmeRAh4TZl/SR9vdAvcaLXaYepGAY2cyLDx5yQvFaqVUM4PF4qCuQaTP3Y95iDhS26oVCc9lKVhQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.p2e3fkk4edoehny4pbfwpj3lke.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTw3n2m_e2etest","name":"WIN-KLKL5O3QFDTw3n2m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6352c176-ad2e-4fb7-afc4-82a5ec1bb50c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"200b5ef5-e48e-4f06-8a01-8cdf78cfc20f","vmUuid":"65DDD9B2-A755-4BB0-824E-A44C9FC4A3D7","clientPublicKey":"MIIBCgKCAQEA6PFamMo5INdtC+gpq/Z51hUM4SldhGmh1OGLnp7fP+qTLcEnJYuw73yW47W9AfMfT2CXZoiXDtdIVrQwFWJ45AYx4sQm5N20s/B/cqCDTwkW4fwu0e7n+FHSbhbjlTGJIJ2UCMZBbupXHzXJUQ4PDxtgPSdZzryA3scuUP9hUSlpFnBBvmiK6pcQl/XxXCMkaxgBd2fxJhMiwbhHTsITvrbXrnLsJyJEHRk12TYgIehwuXiluUB7sisywLghQN4Tu2SMGPV34eDj4lRfed2jBN9gx7/o3ZvZuqZLkIrpjlpm468iNAZVoIZXfrXJpl5KPjN2X9aglMltgcsivIqKzwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTr4hwo_e2etest","name":"WIN-KLKL5O3QFDTr4hwo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d078c926-3ba2-4db7-94b7-35d422e42332","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"7bd1bca1-be45-4670-bc7c-7ef390aaf4b4","vmUuid":"65DDD9B2-A755-4BB0-824E-A44C9FC4A3D7","clientPublicKey":"MIIBCgKCAQEA5I11CgxWESWbws7q9JMTCFuoGXVjpsPJqDlU8yDbhefTL2ykBd6qzYnIYtZs9q+nQZjpp1PDg7CLSmx/ttLUxJ4JJnOLf/EoM8sM0zuW3r5W9vqo1GxsbnNZnYC0vs6nR5ki8hRy7OVE8oGXMHStb7VEHMoEf4irXaQ2sGYRiRdq4cnclBTzVKyB0BDIexZ2wvZzjjiKQk4n0UiqA2+qHBZ6vyrEfjANaYl90BWRuquuqpVn0MI/5GXSewVgWhNUNpOtTCpjloCryCsNLvWgI7EidB7kPzTNhlmPjdiodlY2i1oxZlA5esaRteue9rt8GVpON0mGcIgNuKOEFP5j8wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1qj5ri_e2etest","name":"George2-Win12-1qj5ri_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97c5f45e-cf3b-4454-9e46-6ad1218d2a73","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20137.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"f1feb648-e680-464f-be0c-428b6e4195d4","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAxse+hdhi5+TioCTky6TmNpzOpwLihcy6gMzP02j+Syk/l3Bh5ohlLEv6CbwyD0DWqLuETO5lv8AG+7biAMZ3OgPidUKcKwQvQdGM3Pd9OFXbTS7IXXdyQO50VtSRJAA7ToJ6jwcBfQHBp5/baPm5MEttAbFHaRIphth12HdVrwKBBR+lyCYqVqWAJsPwQJovBe+t/o+tHu0ShaIuGKnI9YgDsi6HjwomOtQ+iS76Q1/2iproPWJ2qhKsds3XOAfS48YlnEEkobRmgKM45O9v6MoR8y8TesnfE5NJtiLOOCle/1WrR4BtGNznwLsTrwo4jrZqRbC2NMaMIP0kajYcIQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-19oy7r_e2etest","name":"George2-Win12-19oy7r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"adbb4f43-5ea0-4dc8-95c9-c8f636c84b9a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-14T10:15:56.4399657","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"99f59448-27c3-48ea-9d95-f3e9d7f980c8","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEArexpmowa7sT4dONxAIYv6uI1PqkZ080tCRyNumKw3uIrLmCQ0Svky26ZaYzhA5k7N+QxL89ig/kVpW0N49XqRM3DPRtutN4N1MBT+AonVeuSEvzyUM4/nxINiXXw7J4gSZxSFhOzpY284VKv9pPCRKuZrkg+0TpnIkyvY/5PQdZbl6dzVu+FjLyA9q2sQgkiaCslPmRIyjmUkssXggXgWy5b/lvhtI0+JLGGVxRld4BaHZF+z/XzTo3hdEqBf5uPW9z9gyPp3TSBwohBqZSL+TuYCL6KIR7Urrh9ylCALc7vejPyjO9Ximi+Wq1yx1Z0qpFbJ6NKNEn0K4mkkpzC1wIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.006_CENTOS8","name":"0.8.20138.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"edc8494d-4255-4ef4-a8f2-3a941e3b5475","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f6f1bd19-9683-47a2-82ab-80bd727ec5bf","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxs6WeW5cWuTr/qUSo/1/ZSgvina1vXja3/7flMcb96btZHnFUG9ww7a32pqU+qoD/CK2PANcfCeOKm0XPNGcweVdyxtRvQgt1HJ+Oq7tBej3xFwypTIWQigfi14qHV9EVPB/K0kB4wV87heSDz0KH/EFj4kzgWpCaVBbR2L794W9SDKWH52FKM9Z6gT1YL1xFIme3mrsiCrH/j8PpOh9fZ+oKnIOosDJhuaZEgW7X198KEtQFdFL44Pf3chENI8dqM6jJtf55L39JZnae/IGYrnN4pD7E0PKMOpUQfc+bJLIfSFfI4KLNVArFY/R4txkWR56EDfG8xMah+966/e4QwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1uk9lj_e2etest","name":"George2-Cent7-1uk9lj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2b59c19f-eecf-4fd7-9151-fec2faa7bbe8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"77e375cc-7f0d-42cf-88df-fa3d3b397400","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvk743KcvaySIWIYBa4Ec9V6enfgvh4+TCaQkA9AJyE8CQ93XUNwdZofzfxB7CcaBCqS8ICPcqgHT6hoD/NWi/7PkO2uhdG0ALzUi4pfJ9Rb3mC9CF++/QNgcYUYBB5s4syM0MPpN3UfQjQKmHvT8hju3Dmn94TUqiEfDDWYKAyzob8QXsboOp/at4mgS1EOUlHSne/FjQwewRf0ORMHHnS82I9m07kUxVuIIbK32md0tQEQtDiaUGl9wUkndpIe3EWaz5sqnmLroqImTD3lkfZpg5PF1MQ8TDqss8E610GPrIlcGVG0ds3vg2mSRMyFQV2GHClZsHooyD5ESOrDXFwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.006_RHEL7","name":"0.8.20138.006_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9450aede-c8cf-4d57-9a0d-c782dbc44b0a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"e8d0554a-faae-4b8e-8cae-c8862da42d96","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAwi0XYeShIcWIsGy510GtIWqlfGgmRCmP91KDcKzk3k+FBmLpNTGA/jSJr9wwZrKSZ2RdN+Eqb7VxCKCmxWdP8HbfIQCNOl1yu1DFQzg0R2LmjlQnvLWRgyRKATqDV7tGjAFbDZbdxvOZvQ8aRAMMHKbqZqqWa2vL+uDrKAgd4v8jQadHBjH6ObItTuUxHOD21kD3v2h4eO6cbzEsDt2HDBfXlHg38UCbD4OsSS9QrVTI9JAVbHGboTSAXUR9+K+GS6cqHWl1t/mHwEfMO2UIJVlTLNYCeZYvAkTLyIbKfSzFMNieNQCQ7P/RD6orfBfL3NZzzTmRM9DmOubKzYsn8wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.006_SLES15","name":"0.8.20138.006_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b55d661d-e4de-4514-970c-9eae972ddca4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"b0059006-fccb-407d-b310-2d972e071517","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA2u/PjlMEi1qXtXULx1MfGsGwxrB1NqzGIunRzsznqgTsHGBxXcYb99G9JDzQW8sg4APrmUrRs3BwqsLaHCg4Gzi45VKYEhah5gMUhFWbCaOuPOB5OFAshOaiJgahDAjSIUYvaYoPGpPmAY4/qIlc5j4jx1jhRYZGmQ1wVK4oTnvtTAS5mFCZGuv0cVxcjFuysa7JmB2WJc1elHuV1mJF5C2fm8r3aPcvgKcygJmuVlBJR/xYqUUrFQ0aiKQZ5qDlsEeres/ytn17ISG71haAiXhHRwZpwYpf2ifh93/m928d2JoB5OEKzQQxlY9HBDhQ2MVvLaP2gi/yJtZ/LEZDxwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1rx8d5_e2etest","name":"George2-RHEL7-1rx8d5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"57e2e441-cd3b-413c-a1c1-ac6ac0782da1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"52b8f5c9-339b-461d-b84f-59655c584a7f","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAqpYNxgN0xuKDAn/JQm/kBTkADByEHoD6wD/65VnwzyD8iq6e7Z4pyFj6FR1ox3TY1p/hBX7wq2u8mFAz4sS4QGpvYXCk2UD0PmIiIBiiEHTk1IXlA3il8njJhTeqC5h1bxFa/VxCvZR+9t5s7Rr4vaaykHkJqGSIlU5qBXKofRvHHxJXAE6OmRcryxl4UGDiDzq6lWBeHip9iJW9dBk849NqtQx7SF6zpLEbwhWbZBAsMU4wjE4SLT7QfHDUE2QLAeqly62A0ZaE8QEHi/n7WRwO6r6glVlCGr+F+2CQdD9CNtHqMVmjaklcOZgcAVlPDwOtka+/IKCu4043+UuhkQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1soj5n_e2etest","name":"George2-SLES15-1soj5n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"129bbf81-ec64-4155-85b1-7018c79dd768","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.006","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"b8e64145-791a-4765-9456-82880308f3a8","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEArCq1exB+gTKLnYOYpROM0uS+7Y4VROqFqDNLzRD+ewZNYmy3WYuJLIcusryYeFhujJQbaZcon669pn9BnvVmwArw0QaI367fQ6kmScduRkzj1QfA+5Tc1TqdX1cA13pEhcShCbyCAMW02UPRkP7NA1l8ZwIHfzDv3o6YbRmk7jEjx/PLWPCwO/shcigTgo4ovI2yjStGxJ3Mp0RQ3zSa42Y2mvCBrGazvILrFa9qj+jvhyeCKaUxuXBiJaB2bzxjH/D9Ox8ArUErJeOu9h6V6S9+pdgT4zK3WB1PSEZBR+JywLjQ3TJi1BGtF2iTnjLsW7IV9Y3yQaDZRYgwZQf6EwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.007_CENTOS8","name":"0.8.20138.007_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"79008029-d323-4c91-ba9e-e2766f02f878","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"781b350d-6bff-4541-958c-5a845f39ced3","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAyaorLmyfcxJ8lfd4RnKdKJs4FjtbsiCmfxUZDhAxPwnR0bdGrn2Fq1SCSkwd7eeqxwLEBN40whmOSR9EIgtx3o1SQ272N8/boMLrixghEcpYm+9lAX9oqDYsnMNrCGost/lA9AMlAs5MQDTZ6fhxLV0ZhBHgSa/bvM3BXLy8aNrAPizTmOm7BZ3r8sQ47X0pV4bC74nbXBCJVanqT5xu6EpaPLI1FY6wG/h8KRaHfGwLXWBK0PhypDp512/neFBQejXy35Php8GkUU610nUK8xFp7aYU4vfDFmGra0DBZbhxtXFo/jEc3TCBLJjILtxzYULLbjTbaoDdfPuScUsKIQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1m87uj_e2etest","name":"George2-Cent7-1m87uj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f7c5f79-fbc0-4f28-b956-310848b298b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"45f28e4c-01e2-4f4c-af31-af347a94b16c","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAqukxRxPIAR62GclpHICkHPYWphMfrqxPG0PCWC2IqsYT0tKuV4mc529DDtHr1KnYjPWrWx+dxJwhxl/PjNCaBY8gZerrklaPYtJOXfhbJkztHhT9a7z+X0NK5oxGoVoBuLOorNSavc8elxc2ifySpAeZgY0d8sQKF0jy2yr6LUOVJKf68Vp/4YDDSxuBRSuX/O+t2ytunJeKmN6SaquBeuVjnLt1CoNH9w8PSxdCMRxgjmeFFAOKEEmTqd90xMxUPuB3YOFLPzDMex9T/xXMAPBwzx6kCtSyPnsMuDgyBQi9XWxzp+bu0gBJttFOaB8PCxNAVQMbSgHGaU5wqJxLLQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.007_RHEL7","name":"0.8.20138.007_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7de66e01-6b8c-4d79-a426-7a51eb511e01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"b0287728-8f16-4f77-b3dc-9b510cacda7d","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAxTq02G6YGS8NYBkXq95xiEFH+QvLHcBXWcWJxdLBhFrHa/c9+NldgKvY9LLfVMydysUHUyJZ1J1TKaq3ZXEIT001adA/JmfTTEhOpAz65nnH5RSqb5MYzrTjC00t2hTyR90QuOUG/JV/DE+fj/xVxSYeUBWbMGsdeUA9B2t23DAmkjvxapLbOLBDGDOldrQTRlEsGk9zOR9O3pXCnyt45VXnPsaQwaA+Zjm5g1JTy8bMBqXT0OWlsOC0+hp/SzDKb3+ZTZe7/ta0gXDz5pO8XCYm5sfOHfWp18h5paVugDuqFRcby1UQ6+0235lUaaAEwuv4d21zNMVpfYLKzcDSZwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20138.007_SLES15","name":"0.8.20138.007_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b469d105-82b7-4c56-8cd0-65ac184be250","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"3f57da5c-be13-42b8-abbb-db72157d8404","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAyXHN4Tv7Co0jXbLhGOSHAciu81Z5Rz8Se1O2rXjI4mucGvxAta/UwyKII7E1o+xGh4WCAR9NjymMtLhruTomLLMWk9mm3+IbLvSWV/PXq5GFZSCTE1HuBblznCVrMH9jiDa++o/+WV/ukM5hBpzLhAVeGY2VHypSjoLDVxXOady7g3estZy2DXgOXyMfvxs6P7lj0m6vOy1U1EFlkctOUGHByqdZ6YsD5M7zQE1un15mSjAJnY+R3Y7htNyyIlErotLoGFJhaK8qIsh3r695abNEOsHTuvnzoS0mnEWmUzphY0g06nCu6ecDfMNJe37guAbrklEa2pHrfqMmFCScHwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-14w9ra_e2etest","name":"George2-RHEL7-14w9ra_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"29279d46-02e2-4311-84ce-6e362e5a1d28","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"c49e5c1a-c725-4e5d-b219-945155532531","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAyMkL7aKwNJm82w+zFw11NHjwMuSY7/iv2gVsUtpTM5xYDJ8+D/lihQ4H4ql1Q/Cz/rq49Y6ax0kbAVZa1bhdl2Iz2PBMmY0mmWF4q2YnSCOp58F0nt55YKj6HYWDT889Unl06kwRLN0y7sWoAPyVDqedDvIcFXur0WFUyZZ9fi7kNGaJn5y6KEJ3th7HbTbsGsHSsCVQ3JieZG7/pL68cU5zsAOLn6JLHHP92kLvbh6DWGPOmlaiOomwSafQtEgTktR5zGazSQyAkdPnWwc8bNC/NToHJNO5iSEVdbYSWS1WvLCeiqgua0nIZUvU7sMas4rGikXRc/ynaxsi3YjXwQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1yl0wo_e2etest","name":"George2-SLES15-1yl0wo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5ba07ed0-858c-407c-827f-d61609f8c66c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20138.007","status":"Expired","lastStatusChange":"2020-08-16T10:16:17.6688616","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ac4cba84-43a0-45df-82f6-be32f8518f9f","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA8vtsdvRvUacKsQtEOOzL18AdBZUNXuCrPFKNVA//gisi3AgXSMSXvvnRzp0nS7uYfN4KiSKQ1Pkyc6jc+6havqlqCKh9eJwfh5Tc9tNLOU34qkVeIjLMAGb6vjY5BQmK9g7J1vYa4x6LezOmoHjc0id9Gl+7mFHCkV4vue+/d2leNlQdKfdIZcEFdFkhkPY9f6CJ2GTfIai7ziZRLI4+VFTRr4DQRNX8vGQxNgP41GhO3yDcHCQPQH/IO2Bj0Vtgj607ozdQVZZXEkz02K81dpQqv/t9WzgvIEBhzmXY1rKIAk985c97L+c5K9VQRHJj2V8dF9Z7aeWDuZe8A+fLswIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_CENTOS8","name":"0.8.20139.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"421645f6-f9e1-4b5f-981b-05476261e84b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f83d411d-dc11-4bec-91ff-4e5b432dd387","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxvS4xkvRhGt58qEgWXdM9R3nLTDM+36byynyKAX37UVtwQ84Nq5GJ/ZftIDAXfjvbcWUqhHrtCp/TfaQQswOB9bmMc9poOStX7UuoNLvBlbI3nOlP6kA7tySdjgUO7mhlPUzMIIH4+f8upQNUbP2Y4OCIHFwr6vVAzd3S/EbHLp9AKH2AfNb571iBIq6AvEbItEy4/Rnvc973/CPIKFG4TDAmfptLybG/7m+TKcPoUWvRLLxtCN0zjybEkveT/W76ezhsdiAb83HjFfOAsImJeUYim5pgm0gcRLDDs889faA49OCWysQTP12nNSy1igifVWiR//vUrjc1DI2zdDEMwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1e4qyx_e2etest","name":"George2-Cent7-1e4qyx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f97dd8fd-75cc-4a74-abc6-8aee94c4a5a6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6aff4af4-fc0f-4e84-8b1c-f0a01dee8962","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvhsFCsyoOHerL2iZc8ioT+7giAFFeCycVNtEeZYL8ntLt2n/TDuKJIu+E4/u72Ck1eVnXdJAwt6BCxpBl7ZuzS3Omu7NsEIKWSjobL5eQIsJF9RgkjtS21u/6OkHckutyQ98gKW1liExmlco9FOEb4OP8P+WlGXAR0lDJRHP1YBwGt2o6dQ2nI+kglpTYbfYjDvqvgjSsdaLwVWLo2zYRxXOHGz/v1AbhvlpL2zQanLtEgi8yVAcg5eFx1JrHM3NtFjvcckiR82F5gfW2CbFY3S40dVIVL2CoWleyY719RXqHWchURGViS96y5b0HQVYuskQ4+9JSR1dhqGW3n9x5QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_RHEL7","name":"0.8.20139.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a2971c1-a1ee-42e1-a0f9-c8a1b229a828","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"777e4910-a4cb-426c-a841-b4969d397cd2","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA4YiytD2/bUitj3d1ijDIw+zJ6ZbDaN8brp8svLE0OvJUy8CeQQi9ZuL6kc/f5+ykroSKvGd1UkQZOVA5qyDm6KS+DSxtRj3HOGN0TnZWpt1/QC+wn/yPmo3qLKybFY7IxORfAb6/nBN8V34nR6V1fkQGtQSbbfkWZ39rb8rbpAR7nEKV5YUwvVK1WlL38dmitfk8/38rQxcs/X9l8MxZ2Jg8SLkUAG6lStwD3nt85boyx4UklUr+4OqHEfkCADo/gY0aj12bv0srNGBzwtcuvQwc6AgnB02AEIUMBr+1a5xXt6vjsteaD5WhKmNkfE5MSufP6OZSX6u6fBIOkPHtLwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_SLES15","name":"0.8.20139.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ac9355fa-4f68-4f19-ad46-34dc6c972779","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"1db0cc5b-e3b9-4811-8d15-d3f05c3778c9","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAzEQZAhrveWmMnPSbhjXrHNoNBlxL+3eT0rmDAlJmy5M2YvI9zLwA0oYsBkPgVgfaeWeaEniovrRbY5y5bF4pWwu1fKPff98ZugL43r1nOVXIf7w5En0HDixePWjkuA+XP1/9E4Li8rj6FptGQDp7ZCADxdWqz2GKMSQJCAfURofGNsSRiwYsrbct4GhA/oH0wXa8tdw4yAvt6o6sOgaJzHimcBUuKl4WC66xaAGJ49ZrwDT7aaXcJ9o1Ol5KjQlPyk20zxZO0Hm9D/SBrQnETHhNTz7MrZh+B5+GDQxhRElKSzjDsOITcbCUHcq0QQTbaSwJB3kKNYDdJ5PDlT8qBwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1hx5pl_e2etest","name":"George2-RHEL7-1hx5pl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d4ef390-38b6-4812-9098-7ceebfc67c62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"15a8ffd9-45e9-4d54-af30-3273176934ae","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA6JnmESrzfWzxGCIrf/BEUwoCsmLsTA0wuO+EuVV9f+4v1DGM7cYR2q9BVHbfA+foanttrYivE2jldj/NP2qpZ5qSEQVwX16zQo8i306LqBufbEyBwNHCW38osY7/+DbFzJ4i4CMrOfULWsg/eIPjztklwwcr6bY05Kn0DbO7gPBXoDp+2VTI8y/kG9qCFXf/+yPER78jnxVdSPILv3PfmmHuLjtpYc9Fs4WoHMa5TvNRJYgO5w0M+VtdmEPJwaR5026jjyjJCb6RiBh9G24Hib4XctCoF/zgH5jV2kin9BGC4az8zYck+CVRUK639d3kEP+/c3vmt8+xBDB+y/x/awIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1xrpwk_e2etest","name":"George2-SLES15-1xrpwk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"59a6a4ed-7983-4408-9111-51977b7224b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f86f18a0-20c8-4db9-b2d6-ba8310e10e02","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAv0cUmBvPA8TEOVPZE2Euv9n01pkRzQgt6Z7DZZtrq4mpU/f1dRgCG+/y1FiM8+suZzUI9SQNXgFMYc8B7OtqpenRWXkzx1kOt7eWBwbNwT49LvkgXO/MadvuFy6yLYf73TwyDC+8AFO492QfC/kZgBCC7YMRIb8K/it395OEFjLvlydYCKbUUMfbIkwVi+azrRa0Eeenx4ap8K7XmIjRKg05vw6syksgyBqQ0q+fiTxy4PFZXIK4QHeUcgKraP7w73aXNOmqfM9qh7hH1ArWLcw1unQS1rnN+QTx5svWfetD9nOdvOOFU7FhKXq+Xa35V6mLvaUP5DYhAbmYk6DwJwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.002_CENTOS8","name":"0.8.20139.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"69bc80c8-a0d7-4f30-8087-6d2a8e0c02c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6efefbb5-b9bd-4537-9373-062ae4042d74","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAvBIE9G4yTc8zYg1k+cxZteLL8PcaEDXn8wfSiodkR1rIjLvdhmNNFya2P8xFBCzKVDwBypxS4ouL/WpwNxLGJHGePRJ1ARXTiIPP8PSpzKeXUiQucNdemeMotjA0mdylhkhOe32cOCD2WqUmaRvswIUaqsFYHzAHaoZsB4FlGbragdC48Ys23y/vqwmwHoZE4dsPq3oQ5SN+ksdRj77OA53zKP8tUcUEhk5gB1daNOu1qOxZjvtxHTJAqQBLUiOUvIny/GoOhssNCQ46gozl7Ft8TmdTrPyWyvVsCfxCEewGlcWX+T6dTo9dm6kvRJyyNeBEoELaO3HZgREksIEO8QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1zda05_e2etest","name":"George2-Cent7-1zda05_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"760fcb2d-9f7a-4cb4-b7a4-bdee5c6b1249","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"5e08dbf6-0866-4814-b9ce-fd7c0ab9751f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAwBj2KA4m7GUHAm3HxcMCM4haHv3hZ1OYVvR5Bb68HPpx2qGsjDK3Frl2WOChR1wx6YsmPNOxu3Et+whmKvtN14dCvbKABT/xrGEr2Uifh8MD36xiKCD5Eb1zLgtIjbEJk69u1Hzsfb0SfWii1sAqyS/YyLfyGyIfkAXPVtW/Zy2949V2p0W5a9j/krA1jLDucyYYaMYLAVuiIdpug0mY7v/dJIxJwjSU8n2DcehgHqhuWmneVkBCZDnNWEeS9YIdS9d99qyLKN91f/BmMnbmZ1d5udFQC3v23S8DBkaFxWyD3n2FQJyzlB8oiBWNFpprczXE0Q0IAPRS29wr87hNDwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.002_RHEL7","name":"0.8.20139.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e82db330-3aaf-4bc6-9316-ad8bcbbb583c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"50eafa26-8bba-4824-9936-d936c165f80e","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA668brU8vdPpy26DdHCSKEng1E6aqBUIKDdYJFSxYuqZFV3igVi3EKiecRBfdutR6At0jM+BIY1sdShXiu1zpnmxYFqnLdTwFD1ZIeO1kd7kgeisLqz+x0Vk1xH36J5n5hBpYrH0ezDh7UkKifeqqFuy0CKSekSKPr9fPOS0QzEQ+QFyq9aUXBkCfZZkaNayeoBVKesj3iNV3zWxwcEY0KGK3zr1q7NbQ1MyuB7CKVOluhXBrpmXsE5qiW7wG3ybqVnyVGt6fRrZH8LztfA9Js/I74Fc0/hfgV5gfClq5cw+LbQYd+zsYB/o8NragDOyb5M+45fwHx0TsSQVEJQpNAwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.002_SLES15","name":"0.8.20139.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"41344176-d5cc-4316-93d8-ef48eaeddaac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"5f3ef7a2-7e8b-42c1-a07f-b8bbb9614110","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAx8JCzfrZrBSf0riC154TeMCHz1KE01GzXhmrPHfkyE89VRBvDJX2mI8AuOCCqXg3R/Y7zUPpaW8hnNwMcxq4yZp4PJANdh4ECcJFV/1KJwiQUJpqpP1Jo4vGih83FSWMqMSlIwXPi0yjI4JaNqdh7rGwcVEyX100Oy4TUU+PNYrCHtS0TyNNKocT8X+Rs7ChbQkD/BbxY3luiPX5PNlQvkcC/g2qalt7cadveymUd8R/yZp7E3GEVdaqzjTdOLc+ToDpc44xE/T8it2lOt3pqdGwlZ+3ZNQ4Qm7wI7YzYbSlYRlYybHgTcBCfIZCM2P4KT8fc/8COjK/rWmjo4M7EQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-18e1yx_e2etest","name":"George2-RHEL7-18e1yx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a94dd9f6-acb5-428d-a52a-b522d7075472","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"681cb118-94b8-41a7-9a65-c2f1eb63be62","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAnX5pYA1+GF0ekD+iQQeTA0YIi30MZhx9A/V55EXF0Ywi7bvlaZEf8JrJlvjpfpG3Uu5DYNpPLE/Bq1rOKJNFlCz4OedvXk0Itsx0VvF0y6NM3uoT9twBTOnaOqwcprJqCAlWUqMLdI8IBNVUhQNcM3WKMsRU9MiouvGFRzo1zDBbl5IqTZ6XkXLqIXFdv/bTIRazAFSx+TqodHPkKQ4+7QP/4G6cM8lpzvpQsYP0wC01kPI3KuS28XQ53wpdJ4BDGUce5eOdD8sz/JwNqvpRFJ752SZGXYhu+0gla49xY/YbQHHXtFmwtdk9y8E9BrhtOrQF98HixqURklv6I6Yc6QIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1tsr29_e2etest","name":"George2-SLES15-1tsr29_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aed4b41c-b9ca-4856-b575-494917520638","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.002","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"26b9ee1c-4f8c-4cc2-a2da-31ad3e500c6a","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAyqif3Yz6cuQ4HUUkEWQEwaJramsaIxj3/MM6kK3WjfSGHiCxFuPPDsZfVrITWZufgQOWfUccGRO9WJ6gkr9C1+A7UGzixY5VuFWMIcmlBon8W+jDNOlY5EBYfHaU2qlpv9E1fCnJjJvCbB2Jv9ur8zxlmPFZtqMcoDW0B5Q2Zw/2KsF71jXwYw1F/m7himob5wC+u5b4itmoko+mopou9TXtukfbkqI5Y/mEt/+KIk12jP0/3WPfCEQsnCn4lPHa/Mqi+gUXYQcUrJL1U3dajC/2HlbtwW21HnyXDRrpr3TgTlJSj0xDv6ef+7cZtvLpkrhpz0S/l3XZ+OcD6KYPFwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001","name":"0.8.20139.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3ccb7d1-05a2-4b56-8d55-30fbee676d6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"141a97e6-244e-4378-9444-14a8531c1095","vmUuid":"F266B359-2A39-0A4B-AA81-C08FEA6AC91F","clientPublicKey":"MIIBCgKCAQEA2vNseWTiHefm2ilDqzhSUAAakgl4+XtVbqZqeG9mSlOCCjq9WHMtO0wnlViNRqmfCKR27xBCI3uUw4qatnFdC1FVWYL8Bo/AHIzb/cdjA/D998aq9Lupm5DIW3vKaemYHJ6x506XX25kLUlFfZOe8jwSDZWGov/g4bLBfMNZT8+NGhL0w7cShHJmDHrS5w6BjGUICpiLOcGtZPMnhsgKcQSPjM1CQf6SFKyK5dfVf2Qe7wHOGbPpB/13XiKhQKblHFny4MRtgt/0a5tiiFul6QBJKm/cJJgIc7ALUVeD/uhHjiDGA6f463ltparxATlRGwnA+WSA2RBBdkNlZJlgAQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.0vbzrnv14haebbzv04bog4quxa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.001_CLONE","name":"0.8.20139.001_CLONE","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e909b5ff-520a-4f0b-8d50-bf0b9c00f897","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az601"},"vmId":"5f13ddfe-6aaf-4d89-b1ff-3c7359b41be7","vmUuid":"B94043B0-A07C-9646-B532-ED8CEEBBFDA8","clientPublicKey":"MIIBCgKCAQEA3GITLjeP7z+gegH8DFuCiKV9OcPazoxFSc9+Qy2hA4xxvbk3GveR8fN30utp0Yj5vH1mOg24ez6cId2yY3pgD7xgu1dleJKH2kU0bJHmaAplldFxYBpbPcNq5Z6trU+XgwZVUzxS57hpI7epkf3Uo5C3Nmv2EAOZaXk8FzWm0i6RJd60eRk6lnc+9bogV8eH58nqDPzq3VZcV9AXmsXj9qW5LgWG8y8RcD6I64b413/vw4JKUQ/eqztcjJd8crHSP7sC49nSUskhsWurH4vSxzyVqBWS4TeNKv5zcuHB9c3EE8PoWfGPzHycODA3Zznk+Dm5q3Ja7+lmKviNxd4p4wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.owvxebsflx3ubfsd4erqvjetvc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599kh2to_e2etest","name":"fv-az599kh2to_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"545f9ee5-c8a5-46be-87c4-7a53d36d1f8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"7be59420-2b80-47ef-aedf-db160b1ecc04","vmUuid":"F266B359-2A39-0A4B-AA81-C08FEA6AC91F","clientPublicKey":"MIIBCgKCAQEAt3zTBkfLJnStPCKlb/is/O9valp3jWK4J1nSPRRd+tGMNf3ntB3TfPYYVGTie8hZ2xSPO2Aur1lOp+IQ6Eh8I5QLFdYWP58EwWSVJwxXNkGb76kBZRbi+cQuwctT8hkck1czjcw/NXm3Zs9KZ1WnP2S+i6PrN+OByHXm9vyoRetrsjzrj20guDvJJw/Tl8mbeWARQj4cp5IELsY1RaM/Ya6TUWSGme3chGNzGmfIB5e1WhnDQA1tlVEOWAmm9UGvxObY3c+BGbZTXodGv+zvzNu+qMIZy22bsiRevThEq66rZbE0SVDUhS//1DVrF8+wKUQcMKH7LpcVJmXqBTsBtwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.0vbzrnv14haebbzv04bog4quxa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDT4qokp_e2etest","name":"WIN-KLKL5O3QFDT4qokp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"584b96c5-8e88-4cd4-81ed-bb9cc5785097","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"4eb5b08e-381b-45b9-bdd0-555785f48bff","vmUuid":"D9498EA4-A0B6-4B59-B135-CCEE8813351B","clientPublicKey":"MIIBCgKCAQEAnlhRm+FkSlSl+TCQ9Ddp7lptjzdIMwlIB/jbIZRBs3y2dM0gJ832PolhdceVPhqlE+NilzG2YdQxGywAiIB4CWsZUjf+cFe2bj+mTnxkZt0pxOn+0qhdfYExglC8jeP0ZrHlL112YZIzPWXvYPDabW4OgLXieEuYQib44Ubecd5qg3T4Bs44g81q/IY6a1KxLlHJ9CH2+qJn1kFGFkqWj8m0S3jBaNN8Ok2AKTfpcsiCxXAlyCMdDhDGQo1N2F26mLB/Zjjb1vxGJpHnF9CiZN12mSaxv9iVzax6CsD1fltleN9/XbWoU7Gbh+XCjnaUHM+xFgvWz5JAMELBpZvPbQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.003_CENTOS8","name":"0.8.20139.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca2d7704-ea7b-4b24-904b-ff6be06fa8f1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"2b3210f6-9808-4fa6-963a-3450ba5afd9f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAmVMqkx+voBHTsxNt7tpIQ9UUn/Bi3XO/Q1J/gvc8CxzvU7MLhjhvXOYdfIorIvX4Dk2aH/eGy6z3Xio6qiyUd/N6dTUjNqXb3CqYvlZZOZBsyGH5TkGuPKyuMz6vnXY1J/HhSAK9MTgPNbrjIXUy6HVgh9ug4iO4aDF9+/KLzfybxj16EtfgC4/qTclc64vqXHHuC2W6OB/otyAEsqHElokCWOJigeQyLp1oFrx6mSPYZD9QDLW57a19fVjiOkexOC2a7OHqJV0dLToO/D2BwyoD/pKUdx+YJcyf5Lrar6DMHz6Hk8XVnEBFPoWrMModxNc5BjYTclh1uQlNn5ETOwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-KLKL5O3QFDTs17lx_e2etest","name":"WIN-KLKL5O3QFDTs17lx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eaa67b41-4b58-497f-9cd1-f35d52a571a6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"WIN-KLKL5O3QFDT","machineFqdn":"WIN-KLKL5O3QFDT","osName":"windows","osVersion":"10.0.14393.3630","osProfile":{"computerName":"WIN-KLKL5O3QFDT"},"vmId":"f544859c-b541-42c4-b892-e55665d0930d","vmUuid":"D9498EA4-A0B6-4B59-B135-CCEE8813351B","clientPublicKey":"MIIBCgKCAQEA+DHQufO3uKexUk0a6omjjpyPtPr3CcUHE8pMPfPJi9W5Z5mz7TKtuKNjlYzl9gFTMSEzIk4frQ/P5BggMP0FJzA4NNUbNKBunEl7t5ZUoSCixT4NA54MYGKc8eUHlG7meLc1E/vipvc5wSq1Wr8v8YV15xTKjjI/e1gYOJ9eTRbZ9pMw+8DqF6w9LN7Z1Zf0PcNDjy17hlPGXfL+cnUe+9TBxvi8uom/Aktpa5Urcihnq4jyhODDKTBewENhl6x6N8rJvVA49GShGHHbFFsYtR+I0kFJq4CHXhWImMe5T0e1UGbZnpXQNKIXCx+fNXHUFoalExT0Mu1g6Tf//7ayLwIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-KLKL5O3QFDT","dnsFqdn":"WIN-KLKL5O3QFDT"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1e154d_e2etest","name":"George2-Cent7-1e154d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"926caf1b-18e5-41d9-a37c-40c62ba56daf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6eadad72-2a7c-41b1-84b4-ff6d4c6638ec","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArHjECX/4Tj6yT8SDouQcKT9yoQBFAYMlnyxdmS1sVIbqphoQquuO2bG1Y5fSBTBMXmycr1WqWASMY+30N1K9rGlDTErHxjZsV/jC0o3BpRz8hQqgXo3Yoj6FT/KAAZ72lf6kHZr8wFTDnjhbqUCaSGLGP2J7skXxxY+xNi+6Q6ViYlkd2BDOWCdy8+g4kzzuI8rvtA5SuLRT5jRZwieS6S3PwGoCmLFyIkrxzVmhpJ7L8zVH826G/itlscBEEH1NwK71biaFVSqwxmoLGZFl9EwiT3UaZInbQH8XgO+aHhsMaFXA0FEjDeumeLKgCeFz/k+CvWDiswsdu6zgfAdWHwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.003_RHEL7","name":"0.8.20139.003_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ee2cd06c-f08c-41ec-a412-90b967f26dbf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"393c8455-f018-4d47-8d4e-57cc28f82014","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA19brviZnceE2yHX+rti1CA9uvizhPjTOrmXotpgKq1VoKngkZS/d7c4zm4i+SWlJhWRqjZ106CwQlxUh6ApYvhC8UF0w6PHrT4whq4z75zhqqcug1xddiKKJtgyI0YS7zaJ2jUF/ZZ6ujK04vsEz6oRgGrcBC9Ny3ZJHFEGzHbYDpPpdUSh/Z0b1mQlcGFtJwqe+ss92xkoaA+mcW39Y/gfIBjpOGjTHx43PCI7kc8qB3uwJ+i+hkHTEaN0VWjcoEc1JeTxq82cE39+8KZBsH9wZhfah4EZjzjdoN/Xy/DOlzTy2KfanGeg6VBtGcFLevROdsRlBKrifle1U8uz6ywIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20139.003_SLES15","name":"0.8.20139.003_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e86d5243-d5b9-4be1-b4f7-59913b8672aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"122f9b2f-f1d6-4345-b52a-69c599a7a73c","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEA0rfDju+b58Ditbg0iw+CWXIXtwNX3r2ZX8wZ8sf7uyaaQ/6Bk2qu3drYYn3EKazPGTvnkWxAqRSd0gisa6ElFrPTzMXXBkwOdeKErbt36ZgQlEltrA7KsZBgFIznMAy7NQ4vODhqP3BlfkFxwSu/FgTdD43gRzdobWCgAygfvPLcQHBPzxlAqyH4V3GgPyRZgGri5RLF/C2b2BPa9aQm2NVDQspgr9XLX7jTFKICVMH4Vi4Rm+js2OWlClD8hFKgFPRc85AhERJXoUhrJ8n935YmZ99HcPTDkNaJcEI67junwVhEmQG0XCzwL1rpMijiDEdbrqLlCjWeZuMyIuF/fQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-1tjcqf_e2etest","name":"George2-RHEL7-1tjcqf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"50ae053a-6595-4dcd-b108-72ba6c0e95d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"b5c1c54d-62b2-4846-9397-5994a825e0d3","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA1TDxdao31r9IVlYg5NNKX79dgElHWE1P4fh2Z5dL/xFn+lhG6pXmgygAX/S1+nNTPq8QdKZhfbvZdNiADYR9c/78R0Eq5zoF9sGR6iJgE7OkVaEAYe3fZcP6MJF3Sy5dA4T4SzRdxJr1jqPKt3MITc3mBgzX5lSGgkUTrqa+nrbIaiypZol+khWwKpR48YEvBJ6WuohjnaRXNezSJ/Y/3BrWTfDThjddmv3RFZkM0jh7wrTXsCULrQeW0z719wnThrhfidcA8VS38An2f/v3Y1dR6CGGIv3Ph4gP3Va5N3Li+MGaw/Gq7nQYqPbWxwQXSLhacfZVCE6PdBZSobbgHwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1iu52z_e2etest","name":"George2-SLES15-1iu52z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c2ac4bd3-3166-47a7-bd9e-c6a066cabbe4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.003","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ddfa18fa-7a60-4eab-a43f-1d81cd3782ca","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAl3y5Fa8wl0UxEDrllNpz9naozVRTMI0u3qePgRd9tIVglbnCRqAZMV4P9OM97yMNuLAvpBBH7BJS4YbsIluILjHG2rnXNJTjGewZ8CQV0j1NkI9cSsubAUyKGTKkwS4sac4jrrRwOu+7XMwP2Q+pbkuLKerqiMud8AXrNgdeAyB0MXRYC0egdt3TEAYmoQbWqIFdKobgakw9M1502urclmsbNT6nSQSHVGTXpmfGMiG0E0L5a79XNErC8tjecX34mReNP6AuQWA3X8K4oWQRSWUBW2qzvkTYPg/hbpcLMBVLb0mDB+w6UAPfGEwmdWhebfUWfiJ4tIKeP+qJodjR3wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-19gf47_e2etest","name":"George2-Win12-19gf47_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9e7c8a7c-ebad-4931-854a-8b06566a2d41","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20139.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"8f82aaa7-63e5-4b77-886e-c1691662100d","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAumecaJ8uH+W9Y44azSdMuS5xsS2go9UOOXpD7wyw6+SMR3hRMZOiQI36mx2TfYLxaXg1rXAii4r/VEK6tECqYdo1uwjx5+vlGGAL2LtXSp2IueZd6+WR8W1OFOZBySKsJRWfo7LhOJJxt/4W/DNym6phGcR1q9KtEy7tUh9Hz79VKWWKqR3phTHCeR09C20WhQtyjBYUFugsl2SKeeaZWeEfE1PbzCYMUzH6SMujEMjPXHogapn+W1n9H4m5SlZQmaf6Rn/a/AO6uEWk6RG9j3cWvkSsd29jlcqiT+MElsbXIcd7BBDDWCA/lMggIOG5Y4SxmoJYDutxTkDQ4zq1TwIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7b1ZSAAAAAACA%3D%3D%23RT%3A3%23TRC%3A300%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAAAUAPElYADdgcMDAFDsAAgAD4G4gNyOggAAAAAgAAAaAHqbBYAGgBuAWIABgCiAC4DQi2WRAoARACRAgwAAAAAgAAAwACULCAKACCAIAFAAIBIJACgKAJEBABJikXECAAwogAaAqYIBwAQIgQA0ABWAuYUpgIQAAAAAIAAAaABvgQHAAwATCRIIFUAIAD%2BKNAMAQgXUQADAAiIAVAACAieAaYAOgAHAAAbvg6EFUACjAgAwCACAAC%2BBX4A8hjKANYB5gNGAaoQhAhgAr4ALgBmAGIGhABIAhoJRggiAUgCEABAAHIAjgYUAAAAAIAAAEABOgyqAXoBhFYABNIIug5WG%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '116462' + - '137175' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:30 GMT + - Tue, 15 Sep 2020 00:27:42 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 4d45edaf-2cd5-4a3a-bd3d-21d08af86eb6 status: code: 200 message: OK @@ -738,40 +1752,94 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0dinEYiBAJGq6QDTeGlSSMKm9hshjrHSYATkZa26374jWacii3ue8z1357u3QcUv3YOs9u1g8jagsFpnK0IzSAaTQdl1dTsxjENe5YIfeNUN89djw4eFOhjtcdMWjaw7qarW2Djcdm2v0HdjP9ftsVvonmv7Oic7v%2FCKrbXdmEbdqJPc8qY15rJoVKt23XD6e9PIbagO9bHjWKkoZcXb73kt9RNGYvI7Yo583fR0k%2Bh1w0%2BSn79%2BafeyXqs9r%2B40J9DcQCOk6ylazYL%2BT4IlixD%2FuYBYwDznr5ZjLySD26dZeBlpxFquMWjkIFovwys0TSRs9RMJprEYfUQ0dhxrjCxO%2BiAQ90w%2BlS1MKYHEL9PE10g8tSE4UxGyFJhHY2wjxjNapgkaV2RYrne01xsUBJf08eZSWbRDZH9otjfNjl011mUG8ASRCNB6EAEEWAE2AjaQ4XMCBiEakca%2FFFXwDBSkhDIEid7shYYrEwQ6A%2FaSQUyjFLKxIOweQhFCiH30WZdAyxgCKGEWMJqCYmGKBCNSNSvnCHGcJD5%2F7tTyVgDoxfHHrodT8JJnQClW61NDSEEFmBnC9IcNCwEfUyffcEVNXgn%2Bb2HXDR7k5%2F1dYw755f9KYxwe0dyoP040eH%2F%2FCw%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7b1ZSAAAAAACA%3D%3D%23RT%3A3%23TRC%3A300%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiBAAAAACAAAIUAAAAAIAAAgQAAAAAgAAAUAPElYADdgcMDAFDsAAgAD4G4gNyOggAAAAAgAAAaAHqbBYAGgBuAWIABgCiAC4DQi2WRAoARACRAgwAAAAAgAAAwACULCAKACCAIAFAAIBIJACgKAJEBABJikXECAAwogAaAqYIBwAQIgQA0ABWAuYUpgIQAAAAAIAAAaABvgQHAAwATCRIIFUAIAD%2BKNAMAQgXUQADAAiIAVAACAieAaYAOgAHAAAbvg6EFUACjAgAwCACAAC%2BBX4A8hjKANYB5gNGAaoQhAhgAr4ALgBmAGIGhABIAhoJRggiAUgCEABAAHIAjgYUAAAAAIAAAEABOgyqAXoBhFYABNIIug5WG%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456q6d3i_e2etest","name":"fv-az456q6d3i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"820113b9-13e7-44ed-9b4f-d837007e2b49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18009","status":"Disconnected","lastStatusChange":"2019-10-18T21:08:44.7136154","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"61cbbe80-d36c-46be-b378-3a8d1bc0c241","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyRAyjDZfCWd0VJlHAcEmUflh+WkC9dkM0OS++zyn3mIWYBR55FLKHC2q8dhsefyh4cIdDzwvq7RoHIKO3lacB7Gb6Q+f1qMl1upEI9QTFqABwEsejUFTVv+53+5S0dd5zbMEef0+8d7jddJ9n0U9ADLGPclqzfXnuWp8DRlb+YzKVOSdOw5cZQIj5GMm1ywWVVCuuVeF341Ty5ekX4iOPxATO6Wap8FjgkMpus29XYulRP5+TeVNAK5Ox30AwRm4V8Y2OdRPgbcR8jlL3NDHRYd6bGCNTJitoIN8iwORtQCST1/25mytBSVDzhQ8PLOTtQPZYMDbExWzULnf4/SBNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456q765w_e2etest","name":"fv-az456q765w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"905f737a-381b-4f47-88fb-bfeadf10fc31","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11003","status":"Disconnected","lastStatusChange":"2019-09-11T18:10:53.5015175","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"82b95aa5-a04c-4189-bc03-698798946aca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvPQTuIz5jat3bAb49LcaKxid0isO0VoJ66QsY6VfIRQQSCXcSBde6W9SbqgulFzC5kSRmYlijhkAhA7PbyECZCC8Ifjucefs1ywcwEiBI1vuR3SgzGaPldK3t43SAKpuWkW+vjOESGCQ0aIOhvJiCbBOgY7VLqwvNYwNxXgfFImTyKN15GlpbU0kivVrrXcBrXlo3PdjEJb+z/CRGTQpeKdCgziaukOw8Qrn/Kh5drrQ/N3o4kAL3I8RBi5giHPKXgX370f38Gc0eiUWUc+ynJ3dw0s6rOP/66rfV0sc0ULiwHaWfOwQFcJqJn2qNBjKZhPwgm0jj/xs0Vc5RpyAzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456qc2ap_e2etest","name":"fv-az456qc2ap_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7294e69a-5b16-455d-b54f-9279d20bf802","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21014","status":"Disconnected","lastStatusChange":"2019-08-22T00:01:15.7848588","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"41781108-02e2-4d9c-a3eb-6a40db3a0367","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0FiVUZmgv+jkGWHn8xHdkcMbLoVHBb/qBy/nKwShOJU2KtMNAEyN6vzvPrm8sFOxVol+SBETyRo4LAkNAUkpxo5liWhG6Jwbz2XyLUaI5xNsQooVHTVzv03YhTw6apbY8tEdB4B7s6Ij4RsibRFGdma9Z6buSdrZjf4ZLzlOicBEujKRJq+kb0Cp/sLt67yQNW5MYESJIirC6UkM53b6g/nMRHBWn0F1zwNUbmB1NPuqnsHaazgMZw83IWmiYYfJIn08ehECRtJxMtP0Rnk9h+Gsu7oUTusi49h5szbQxf9oygSzapTKugoQO95uu1DholeAEB/3MXo4AAw40GJ7rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461n9sag_e2etest","name":"fv-az461n9sag_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a255c2c8-ae3f-4ef1-8830-cd4881e2bf47","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17008","status":"Disconnected","lastStatusChange":"2019-10-17T20:48:21.113508","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"ba4086f4-7c0f-4ab2-adad-21a7b4fa88ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0ywQCZ75m7BoBzgi+gYUTgIQgGZaYUDDwbDgnsa8dPHIYbuiwilyd22zlk/4KL6DwFjOesA3X/0/2LEtkMaF9KAIPSWWvkoTUV+/6VdLfQxii+/O6Eh0kLFD+F2WikX2mQUcqRu0/GAgpdGA3AJ7DWOfom/U69pbht1bP+dWZDdBt7y37uX+44UcY9QN6Xkr6YPs67YlIE1xuLGAZ8aw+seqSnT1qjpMxdrjJpa01OV2diJ1iVuQGLqM4ZzWeu7w98DJ855Gi/IY7dMP1Qigpi5U0ghn7KLw4jMKCW9lv4pXSDGJ12AaRYEQb7qzDsocEQL/ilXOrVMHQ1G5ZjjypwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456qrd5n_e2etest","name":"fv-az456qrd5n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e75d6989-611e-4ed2-933e-de97d3957aa0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30005","status":"Disconnected","lastStatusChange":"2019-08-30T22:31:06.4019615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"46fb5c90-519c-4d15-91e6-7e6bb9bd6112","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwgiOZxcBySkIEcb/AT6fpxKG+TzZuTJrqEeLCdFmVsj1gZJDeoMiWRP2Nri/FMD1KiNU4ECf2XvwxiijnBqXRMItdvgNKzfh/uKUSLQmeeyAF74osF0QbTBAUVjKLpnoKN04hQ8gtvBd+i6+Wbj+3FwdSTRbcIRy6S5BfJooN8B0ilL72+De9CkHR2+goLPEVzjirr3o6lPmG9xiIAUtWaHVIeZMDqDk09omV2PENHhLNxO7dUav5NhVS2XsVXbJfjDXXQUvdbrfU5JTn3Qiho8WszDb4kjISY7+zT+SRIJKeEmpOlScPt6FOfPvuyTOyjAmHK8gmJdVIMTGc/UKfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456r02b3_e2etest","name":"fv-az456r02b3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"60d3ba9d-11ab-4ae3-85ca-036480aecc92","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16006","status":"Disconnected","lastStatusChange":"2019-09-16T18:00:01.5519372","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bc291d16-5e5a-492f-8f0a-b706a510129e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6KLthdaui15v9hrp64Uw5DpDywjx4JBLRhaXuNA/gba1VQJ7GuS+OoanDFfDSEpZS7jLS2T1/RwQce3YJaBYNAvJEHISHqk/TbXw/ylWY0/cd71d56y6FJTlcd8uyD6DfG/10qLG9AxdCHW3z1SmAoLALs9I7jG4gmZbvmKYWILLTNK6nRo+R6WgoNs2WMr3xS0pMy8dRMYvXVNQH0G9FAet0mWQcTEMrS/TDJscRbFVE1ONw1mx74/4CwVkg/XpaR9m/kREOCVgwfA1vLxEDd9wsxey0IfE2r05fNDm7Ap+0SlirhVVZeUa/+d3rom5ychO7mVkMyvj1d5IEAK6FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461npwyc_e2etest","name":"fv-az461npwyc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"875857f0-9160-48b1-bc5a-f2314777889b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08008","status":"Disconnected","lastStatusChange":"2019-08-08T21:21:11.6591333","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"4d4c94b0-ea9e-43eb-9347-8673ccab1a4b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8R4pLNSbz58IoGcU9SBr12FPypFgqpTewSWqAONzUGMms62vg5XbQyeT8zy9MyaniGYUn9B5Ybfsy6B4TKcCwXnGmuKNouvwC0Sb83am6+Y6zSdUCJytPrllC/OVGWqO3vRetSwHc7Rd+WRpcZ43tXYBahG0SFl6whUR5YA4w03/7CJyeNdbyIwJe/1QIpnk5FQSCo022+666rWqYsXmoMUTKoOMZVsrAlwmA51holjdk4RRuXIjAEcUpx8+6Kn6meVZmScqsDxo5a5zVS8G0fubOJs3IReHSckaCg0esw3e27vw8rxsHZIrbj6VdPg9273IjQZOzv0xGOVBwdNhIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467jk3ql_e2etest","name":"fv-az467jk3ql_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3236df1d-ee44-47f8-a6e0-6c56c2b614d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16003","status":"Disconnected","lastStatusChange":"2019-09-16T18:00:01.5519372","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"d2351f92-3e94-452a-82f5-cdfad861a2a1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxR6iy6ciYxb0M1c1BotmY1E8azlRZ7fkQRTI936Zr3LKPdBQOMGTefgL6F4t/8XsKe0zD8+sD1O71w+49QAV0awNFX8NE+0oDUuSj8vyztDYC52gTrhMC99pMHAiwIDGOjzW+YIsyolUnbkvWueOm1tp7bmx6NWsakEZvw0pfDbcfkljUj1TrLxuaB7jGie0n/ikNM9v7I8379QBjVGv3aEIsH/zfmzBk5ysGBD/+939GYcOlgX4XVzS3pbW6/Lm9xSXeLd94/Wk7VbHfmX4hK7CbFAquGW97L8oDpwCuY/Td39i4D5D6bXJWLShPHJ/+ueawFB2C55mlQJZeAyAYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467jzvy4_e2etest","name":"fv-az467jzvy4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb6868ce-0d12-4096-af24-c5a9c775c755","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11003","status":"Disconnected","lastStatusChange":"2019-09-11T18:05:53.404661","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"092d913e-1fdd-47a9-9045-cfa1fb50080b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApHgkw4dzg+rLSM7Q6J1HoJsRlyabv8u9jkK8fUaRqheJv5gUhVjhdjvzTLr7XcS2L6smYo2KTDCzWqfceL+pq9xs/4x8iwx8xu1/oJCUNgjZVKka2yuVi1AXMwTFNCLexLpjGR23d30idvokTqkA6Gn3Sp1Y6O1m33ddkh0dOoecZX8cmWxlYyDYhjJms+umv08WQQQYJ4PBiw3nSfdyORnBOkH+9BWsecmDX2DhsZbNkTUC5Sj+2C1XInJA4RGB2vc6Ux7XBhJ+tnBMvenGMWrNcAS9TXf8cYP0HNs6JtEGAJMAPNIqXhk/bMU4C3DnIDxJ4g90oaUAGDY0DzH6nwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17009","name":"0.3.1910.17009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"58e33436-85a9-48cd-b8ea-028afe4e34a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17009","status":"Disconnected","lastStatusChange":"2019-10-17T20:53:21.2569399","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"088a1f2c-cd77-40d2-86d9-b2c73a697663","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxx+bAn8yyqbBA8eaLtacNbMKteQsNGvlLuoueYw17d6g4cMmdD1PQStpzlhtOSewp2wNhMPBYEiGwJMOcBndx9P4a5tQ3MRE6YMWlLjwo3bT9hbTRYFQtJGVnULtlqJl4Qe6j6Wp5gFjTuJadUgWkY5cRx61juY/CveB6pNayd1NH4BDXVOhICudhL3dUZCYknUyAMxZp3vayrBcN4RGlq5x9fRdJA4PS3B716CbP58JdXVeYP2i9cJzdIAFLpDF6fWmXprlkmTh1IHJEh4m6Z752dkNcKvzTxx6QI4EsghCz0+TFUyK/kNLnMWZIM38JowEYvgOUZrKb3abxtcC+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456rif16_e2etest","name":"fv-az456rif16_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ebd5624e-c571-4ca6-997a-edab0e884d70","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22003","status":"Disconnected","lastStatusChange":"2019-08-22T20:31:22.6691323","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4a79bc77-13dc-4220-a303-343831ce5116","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9BD+7LXjB5AOe2gTTGO3sJ7lNlT+mdVCmz1WWjIpnZlsxfovFgxSEvtfOdi4zbFkhhzBOAQVCAfnnoyB7x5hMZSHGKMEuQCpU70N8iTGtCqLk1GEz5b3uhAWAV6Y3Ju5PO2NMHFYycO6kD/Bwf9t5N9OVzvcY3cPeinf8xsp+/Az8D0kDICrY9bCdiUufBpjxJetL0XgfuPunH3dTsuUrAEp3IvgpOTQF4KOjtt0w5T/ijGe7Ttn+YRE4gJVgn3LMnMDXL4lmGN9uy1hUI1UOAwv3TOITbPzHWS1LcbLpggMyjr4d3X5qUkRUVnqtPVLjKWlpuzNzPvIwPUUGaLLRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456rpzfs_e2etest","name":"fv-az456rpzfs_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"21ebd4bf-3fe0-4473-8556-5b67d945de91","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23004","status":"Disconnected","lastStatusChange":"2019-07-23T18:50:26.8323619","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8684082c-6c54-4693-9399-6cef09c2bda6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzgw2l+4VzxbX8219BC6G8Dhl+Rvwrt7riHdVZiFYbw3JIJHpymAOWA+MBxwLIBrffwds++DC7wXKYa4NYcVp5ing/Dl+xQhy4mHsaXAnjd/g5b8e1xTcskNZ4Z7C4v7RJNmlhkBvogl1687+KBpD1I7q52a1bPR90l9mQDTq/sRnHJ7IJxaTs1I1NxdxhPg7H9OaZLfwODNQxZevFwRoHncuV4qOrZOOCNKUStE0yG9iwWH9ygjt4KNuyIbMnMkWAH/4oJGv6w3Sm8zM8Q9Xj86DYah+wJr2tJ/T78HbJX1qO0Umb2K3n3GloWTTwnBDjhiYWs61uDJNJ/yO6wuBjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45687z3i_e2etest","name":"fv-az45687z3i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"adf58c25-0b4d-4132-b1f0-180473ccd751","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25005","status":"Disconnected","lastStatusChange":"2019-07-25T17:45:43.0233167","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"13b19293-1c98-41dd-aa0d-a41224dffb1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsx+C2/s0A2ZpNJPn/bKIgzvd/vDxHAceXBQ8pIU0pzEJ3GnU9AU0Ptd/2rVhJLjD5F4Rz/VhQEF5UrLyNCRPKeP6d3IvUFXsrBMtcFKWpBn9HOkiqMRiQG8kcWX8PPl4C45DSnLdVcCmkEd105VGA828rM6564g2md1ImFaHYHvpo4FmrfHfZE2dQjyX/1s1gRxxRG+zcs/UmDubopsFCGbNpWkuO6XVNQEM7HeR3zrFV8v0PR+QBfU3vHoFmbxzWLWGRocmbZgynCRgbbZJ5fhDp181lQpeEmGeNJOsgx1/bTmitYnOjhArHyILQLVg1+u4CIdbmUcNYdVUMo+elQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467k9d8y_e2etest","name":"fv-az467k9d8y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"50eb808a-f526-437a-8bbc-9f5d233e3c16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23001","status":"Disconnected","lastStatusChange":"2019-09-23T17:28:43.277985","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"7ba137a1-9e08-466d-9c53-86a1c6ae0a25","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4/H25gYpKhwdWG3tSPQXaLc7/sCGAGo2gePkWFh5xeVzCMW7yZEt5+0ic7VDrO2FuwkDmQiB/uXjKtMODuitaFkts+mJ5cSI7nBnAmuRs3JK7SFiReWgJRNqssQhHhk70q6xNd/CMt71zxft8qRNhiqlfYn8ULFZ506ipYxa6ifzxH413BwZHQQJl6PKU8m+DpO2SUt+H2bMPqX3ofZlbV3Xpr2hTQVY5o2jypFTbHOlHK85j/t25pscFtOyGsEoj+PGmNoSr68UzhkvwCbXSxaXEiOL2M3NCKPUHNLtKd0QNm+RQA4X3dCsYJ4D/Wq+JW2Uf1VVh0fv7sAm6O8TLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17010","name":"0.3.1910.17010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"82cc3f60-c2bd-48f5-97b3-83b718544b46","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17010","status":"Disconnected","lastStatusChange":"2019-10-17T20:53:21.2569399","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"16efb43a-c684-4011-90fb-0ebebd586048","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv32f+DoZf36dqHcvLlyhf4HvuEYh5GtD8w/evUoZ3S/SKRKZ7rZBNjWr7v+3PZP/JserL6fu3EB6nUebR/bDClJgG8ymDUForcKZWdhCdELNnnGcLkdBAzkJezGTGdFcP9fZs0WSAxdx0S3V0VStI39ycg5gZkBZ4P2Dww8NpYDonf03fMmW9BHTUn1OUQ6l1nXiPXbUfl86qgulJ1nFYiZvYT6z/+KXHwCzwNCK4Qu1yYjmVQMHCu17evDf40n08sp7URptSeDfbUXcnOTEMiOfN726TtTQb0aZzRS9E1fCbSSQUxfOC9diu4h61Mw1HhTXUvWz+gDDYNO1KHJNQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467kbn4l_e2etest","name":"fv-az467kbn4l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ab927cd-c8df-43a9-91c7-2792cf080eb5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17005","status":"Disconnected","lastStatusChange":"2019-09-17T18:34:34.3555682","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"350590b1-385c-4e9a-9370-f14de0bcf145","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzEq5AlMKuJ5kmDqGjI0BzrCm7Hd0PFaP9E6Gt4+UiiPSEkOUGnc8uXtnGyj81ZIjFv3eLikmd9OUMlLgOSP3Udj2yexRQNG4ExU2X/t45f3z6B0+rAWasjVpc81S8Lnmb4pNmo02JVvqfcTXrjcdJhJUFkWr7+JbjqDTsFh3I0sSx5BCzxHQs2/xzQE5A4rEMCQL7x1Hbsej5c6VkqDW2RTBrbDCUGxB8WG2xnOtunqFWm2ZTjfFQOCAwCOY6fKDb78MuGBgnz0HPtuzE91orbCLzhK0/oRGeYzS94oKUevDTVuqZZqJ5cL9dTsLo22xrODyXQqFOK378qGNwSvr9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456rw5at_e2etest","name":"fv-az456rw5at_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"230763d6-c156-4bc4-87ab-bdab5c64c0f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25004","status":"Disconnected","lastStatusChange":"2019-07-25T17:15:42.498581","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8e76bb33-f0fc-4fa5-a27d-5719354fbcdf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxwK/z5YTnursH7runOXRKlh4zI/wFdliUUQUpBjFWq6M9hT9wiD7RgAr9ij10U3J8IC849uFDKfT4wZwDLe5rU5eghOgTM2Etcp9kLyxcWuQSAxcCbhdxPc2a1fAG+Ufc0IicTKztO1YeArUh7tnjE7NBpd031+guw4hgNxFt27PEZ60bgWZGoM94OPQDjfIc5x3KlQdK0bMIcckF/EWzVANttaXrkXV4VTqoo7BDx5OJ3EGPS6hTmNvVPHUaabmER/VfuFV6taWyIXFfDzCpept1kLq/oLCMCHdO/QT6pOrIqnB6dTxYJo1RCIRMBCZLtrrEdG5NjOw6kNmTYgj5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467l589y_e2etest","name":"fv-az467l589y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"18dc3095-5432-447a-b95f-8bb39c9d53e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17007","status":"Disconnected","lastStatusChange":"2019-10-17T18:18:19.9448978","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"636e7b8d-4736-49fd-a3d4-f1b27627c08e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlpgfMvfsmWVHmXq9N/trTo8PGy+56tj8uHo2BB1iafucCLHVhYCqrhd6LPAlXLp1pFQYZjaYs/HBdjmZDl0Gan+gFaJZXo90eEULZinXRoyRma45Pqj+aK8U3laxZhHJWoEgADKwtCRK2c+auc1VSK2LtaiXmALk8X44ZMARdG0XsT04lmc5FlnXmaUbNQhFeSj6njUftsx54x4Becrzk3jBCMqAAs5rbocAG+O1JCjBu0MSydkpxnJP3YlwTQ+TBgWRxtB+w2CvJKOEtWXD9iCRYTaOOggSAGkga87l+LCFvuVGU1m1CthP0CdY320VBjVPY+wbhZs7DBdVqFpujQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4588x5gb_e2etest","name":"fv-az4588x5gb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"92b8f53c-7871-4506-a36e-5bf22259a597","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"cf5ffe1f-9023-4784-9d15-4e844c8490ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuqftsDS9MJAczlaB9FZ8VEDcnAOvF+RdKA1MLqUXsO7JOtWBbjj9hy5POFxcpmg9VAM67/iIQu4JehKji4gqhFfsAn+JtN5zoYwqjvQuQWnR9LcpaaS+OCBWp1RorV38P3N+txFlv8Pt9hH10YJzvwYIDqXdqQzi82s8O6PdNrMBy82R8SvAhJZ25lnFJQX6LAQqnfQSc3+P/U1/CUnuQTSqo+9QqaEb/eBwcUJs4PzrtufhLV4h8XUl0e7tSP66utXorHDbwYJ+Awq6yiW+16uFQuI1o6ZiFbwjt/ihXSBg7oMpqp2pMBlMQN6mNrOFS7xlLhePGgbp1i1XSwJgowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456rwmxl_e2etest","name":"fv-az456rwmxl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e51ed65c-5b4e-4e0a-9384-82654f4ddcdb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13012","status":"Disconnected","lastStatusChange":"2019-09-13T22:19:37.2612615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8de83e8b-099b-44e6-8426-3b24d33ae6c9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3dWCUBEu9t1XVSkPBnDdHXLql6wcShFd826y2PXGlXvKKeZMhY/QyKYyN3kGMu7eQFAlVip671kZyFzihWYwoo2eTwBB1wxfAVvEvTpPRcvMtZwlq93R4G9a4N9UcbPxic4FyOSAq9BzpV9onkdkrkxhwGtCFTwR3yym/85bXYtF1MHqABIseE1mM7BXYv553UHFF7Ys6vyQ+E2Fr2aXDj8XoFyR+i4gZIujN15dtLphFws4Vjq4lVj8MDbxRFsc3RAsaBrXZWknvFsuwONRJltJek7OLefIVPJXZYErlwkrWRFyeBzQtgr9HhLCvLORptuf4ZGoMRn3qCIrD5A07QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467nj578_e2etest","name":"fv-az467nj578_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"484b4550-3f72-4441-87d2-e88fd81576f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01003","status":"Disconnected","lastStatusChange":"2019-10-01T19:36:21.0205088","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"071d0be1-9509-4ddd-9ffb-bc2363193163","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAralks4LF7E8Q5/bXPrA0IbK/fFBI2QB2VFR67oLeZ47yXNFfaZQpAdfiNoQjK5RUhawvrqw1zDKI7Uy5eOpcnbe3n0Hz9Yipm3ihHAgAezgwFbiE7ynvum0xrjwSc+aX8lc4f16Pe4d3kWmqI9rTPWIjP4wf8V6cRC9OOsJJZd8zKzjeFXDJVWWc1xF059W7I2E9uX8eVgXnrxcMxFJHcO8HC9mOcDJXJcXqLRiOEuCqovbXl/O3cmEBgJn693CsRMgoPsOFLlOJT7xu0LytGLqehVKyMEaKngm2ElkSN0V4gjo7XUq+E7Tt3LiG5PLEzI9D9Fp5/q0dZIP/xz+bQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456s2wvt_e2etest","name":"fv-az456s2wvt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"116b7305-722e-43ab-af1d-a7ebe8750f39","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30005","status":"Disconnected","lastStatusChange":"2019-09-30T22:21:13.5842945","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2900703c-7948-4fdb-b854-2e7665520c86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwF+cthQDnjdiFObGelitcmmMXnn/O1QM49qSnD+D57zz6lCPbqGwpWWNaBNoINlzjdWhHZuoID3YmySEoqmgPQtOYX6ijsScP62jZX4yC0Fj+HoaEJcMqCA66vmtdmR0m42DO/IBClVggzKwHwjpM4ECga5rYltesW09LXCvGiF6JaDEQrJFXPPJy3LrREe6GX6umfKkoIDnH0soxEPsZo9mDjXyR4mDRO0dJmzMc/Jmhj9dYFHKfPWw8k9sLCi2MQEP39iXma8iMTJUBFLIdEQrV0dg/FQzYP79SWSZovZIlPw0/a3y0FPreDMle/lbgl9pyIaKHSNLXCk6K4JVbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17011","name":"0.3.1910.17011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"565f0da8-c16d-43c4-9f75-da70192e71c8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17011","status":"Disconnected","lastStatusChange":"2019-10-17T21:13:21.7043179","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"47bf6a56-bf85-453c-90be-3517e843d584","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzl+rFPe2JH+o5Hf1Xd7olFpycqt9iuaq/jSOdAgHhq7GO8ZnEd2q/gA2qaIl+hMucVMpvbmMAY1ZEeE8+WRYyOQVW1QTP/gVSGb+xDnJJDzfxXbQ685dQlZGo28yQribdpRX4NQqoA7AN3tcw+6rqiznaXIv/RRmKNKm850E1yjgAHc3zvBpYRDp6zyv4og6vdoPUUguKmombzrNhrhH3poTI8alZBy99ByrI/pbgZfRYWwHJjOc1gHC4TUGfxnME04mXLaC5yuKVZDWpMRQSzWhS2YnJS1fmt4NCG5eYfiwVrMpk9sF+Mjjnvf+E/MYivbX+hby0z/SQo6DY59SRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17012","name":"0.3.1910.17012","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6fb69dab-2019-4de9-abd3-aff89ebd7572","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17012","status":"Disconnected","lastStatusChange":"2019-10-17T21:23:21.9211586","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"6a91e809-cab6-4a82-ae90-1f01002a674e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9XjWox8sNVUchEGV/eKydXRAJjyo4dTgDBTBwfpJsehV/J9vSNJSOHxDqQ7/hHBxyeMpXYGT+WIRSUYHi6dvNW+m/AYvSNcX0QszSlQxfVF1f/KloXt8Qtt5GYUnjbs8+szsLGK7qO8gLloSo47yFzJL0Soj9+wongikWNvjvYpVgq6FR7J5sfCRIsryteE4xNvL7KyQGCrOamJ57l1y3spUXypfjj9qAMCT6oo21H9zombuwHEev2jXrAPnHt/ReAN7Rrx/O2yGpTl44lbMdVF8Wfj0rlsWG22xLw50jtEpoXpibH89pTjb5gWk4nvmDVBoR4Lq1FdEvtPv3NuXjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467nuher_e2etest","name":"fv-az467nuher_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"04dcbfc2-0227-4a33-af41-dc95464b49ab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T16:27:49.6402475","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"481f4154-8e0d-4e2c-a61c-18859ffad15f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1rv98WYi+/PXBgxan6r8jsgDxoQZNmHETylfah24sBLEBqgQAua6gNbaTnqFnhobKMgv12OEEg2vMZ8Ci7mfB73xVnFF7+S9mGjHnuBBncotJWvg+fKfI9+odYRJoLfwoM8zrLXjnEZpD1F09KvoiwYXrJc2rK4vPMGOPxTiUbbYmlGQSUSVtJBjgtuxlcou5ismDBMUMhJ+m3emalmE1joEmPX3vPLfhPmGpCliSvbtNb8wVg/jnxJAOLJyxx/VD+79PPj81roqrRBocgrr3V0CcpUfD/VHuWuW030a4U7VkwWLYMgRdKROGkf4tpkZZzOd/75Bhp3CiZwIBxGcpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45894083_e2etest","name":"fv-az45894083_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"964e67df-1546-4678-bac7-eaec557b3b60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02005","status":"Disconnected","lastStatusChange":"2019-08-02T22:46:06.9817806","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"748af7fd-cf16-4d46-aa8f-2f41995985ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwSDYLx1yrpFH8Tg21ztjcZjWhdwHWaYI5Vs7w17e1rFGURseG/FRRCyPH9ATYYpIok8xJc2MuUKXIyr8n0mzm3M4m+47euHjb9JUAp5znEKVANOpAA2wQIYxvNJMUA9UCmYcWH+WEhR6A0KZT78cqpkKVnEEDNSqGJ/mCDbMqZqafmx8/F+CzGB0vvGvAY//fcFfji90BvBc5TQJDn6bb9YNo/lxVOa6WBVk3u7gxu2CLVxjegLiFCSlGYmF1qUWMPaWV19XeOaImYeLTPKCkbeCl0b9esR3DN5nj9u6aJE3S5rba5+tEgwICQzNKPjEJWqzy+HJpAtfUaicoz3PLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17013","name":"0.3.1910.17013","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5115513d-a5c7-4815-8ebb-5060916b1e7c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17013","status":"Disconnected","lastStatusChange":"2019-10-17T21:33:22.1655606","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e93877dd-06b1-474b-9560-b5f6b532cb30","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuHX2i61ZL4UsY7FPDlhzB6bNRT6k5BrQHSxp0DfyAyINhaYxogk/oTQixvhA5NTv3taedjBBI3h0ncqmwDi5LAfVGIxqfofVxWxNhxpuHJGqFeXjQfczBaIW70n+J0/5S9TrYz5ReL5bJJTITQJVs31/hm7AwvUz3vY+IcSaEzCHZRSucG64p0EdiBuaOjNoQlHHdBPBp52CcKVd9PtiUb4Gtn8h/HQkobGs6syhxqEsq+QsiQ/1THg5Zj/0YxZqaMhf1gC7Sht7ovkfzt38wfB4TBANaVTW+jNg5wmau19r0ILQ/VyXZiKJ8L8WneEyIwQ6JeQkjcnnQULloncxnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467qc9s1_e2etest","name":"fv-az467qc9s1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"60dfdd76-32a5-4369-a9cf-871ee8ff25f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17009","status":"Disconnected","lastStatusChange":"2019-10-17T21:08:21.5576995","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"fb0de7bb-92ab-4e00-92ea-68f850b3ab82","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAupGXkUjfvUnO6iEQSV7QuJyBilYALYDLzz6uxzbILLd0h6+1bOE6Cb9SeQFF5vlCg5VS8R2cxskN2MbFZqBDllSkchzFXQVSNfIiDiStQgPUgkkexZiTnOyJLmjJuaJ4XeWT/qDJRGl1qGUVgyRomfqZCvM4dv7fcpQSZMYklgUaj1OFoppS8dbwIvYLp4C0bSQpKhNVsnqUsAqmzRC3hdYQVJsPfIoeibPkHlTg0km6E5RlMagvUZ66EqNk2HzVfKqn/Q++fm1o1giXYVc9oaCT5SeNh50tz2Y3zDUbDCqo979omReC1asVLBJYEnqE/UzKIhFCb2REL5T3nE8lgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4589pvyk_e2etest","name":"fv-az4589pvyk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"575d39a1-e356-47c5-85c7-c17fd8bc2fd6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17008","status":"Disconnected","lastStatusChange":"2019-09-17T23:34:36.3348574","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"04030605-a5af-447c-a1a0-43a1fcf0bac9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzjPd82oVkecwswFsGShgnOhjt+ao2VMJY7GffGw1tlql9IDzQOo4SzOiPyG9geC1sEa0IHKtLlOpXqCEt2RhKJf0F14UaHgxGuSJbkmWwHNCCykyJYT/YNPLTT+2IAkIjK1YIGpgYK1/Rl/fq+hFMYfsk1cYZiFg6fi18RJN6qRHQ/oEcQI/1a3jTsL6U7f26y1IfkWtGm+mhzF1eOZhfIjj716ciH3QQ6VCWeCUmXywI3fdBLA/4pNGLyMFBG/RJOEekd0b7XaxhS1+Xt1j/e6F1XdEMq0D4iD7XkO+WA+/I5MOnIXO5pZkbAil79Fk772ILAxZywvS0FuXakqHtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4589rlp3_e2etest","name":"fv-az4589rlp3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b0b8d86c-fc9e-4fd2-a5b2-afb1190d2832","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31002","status":"Disconnected","lastStatusChange":"2019-07-31T23:14:51.6374582","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"1c4b56da-69b6-4940-8937-a6ea716a19f5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtAKzgLEcKj8EBDpifGFXxsRdrf649pxEzcHnfnP4xdXoxexTtDnjgtJwZzHn90CgzAzOaUWmHXbWFCdpO82cR8SY8x6QsUSoM5ySX6fFoN/OFoglLdOMjnXXByCGnAPdtQQVtJxiD6p28Wa7mnRAvnqrUZZjp5g8PgAr4gW4giuReGz+irt1HiHkMj48f1rJK9IXYkmyk2nOpN5gMqS+x4rVi6J4bi2jKFe7FQz2qwkWVEqttxGtK2sG/IyARVlHoIL+0OiXlYIWA0LaxbhzI1vrpqOHU5VFEKN77SpBkrMyfzpI2WYBj4gbq3JSgpluILd8xNBZkEJbt4XZw2bS6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456s4wqd_e2etest","name":"fv-az456s4wqd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e5e279b5-f52d-48ac-9c7c-e8cb7a8ba6da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25020","status":"Disconnected","lastStatusChange":"2019-07-26T00:20:23.7538887","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e1ce7a65-cba5-4e82-ac8c-516dde54977c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0dejKm2NMwkSYAXIjchivbAU2njQKlcqCAR0USxrcVuGvYm2d5l2gPu03o3CYYL64HEdh3kNVbmxkyakcQaJtJmIWl0LRcnn6lkboDGFU92JKoRm7XGmsdsA7f8lkH3KPzRifZCKqBHq9GdOSBtBFyFlPvv3HzyCkoTb4yNV/RepEkPe/mjlACLLeuhd5djsFT6jduXy27koeqe3kGbWcqSPdFudFrVUwfwl5dCRKpVW5beLPXaUDVQGNmRbymkP9rvQgTtaDjDw9qI3tvjLafTZVxZgIF83OO+Xo60qU/pK2p7as+uvFEHk78l44/98w+h9y0cl0U02p4PVuTMKwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17014","name":"0.3.1910.17014","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7b4fddc8-ab18-4373-894f-1fdc265e6fdc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17014","status":"Disconnected","lastStatusChange":"2019-10-17T22:03:22.6334199","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"7fe64de5-6b49-48ab-9bcd-363a67393880","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzGtK/cX2qGNRDFjY/LovHfjHB4KbjYChzmZM0j9f3Snv3xHQ/ARmvWr67QDJaU/M8jKNe/57lMtfJZC5iPiwlhUb0ep1knBQrrx2cBqvpKA04BzjLIB313uzLNRdk0TG44LzvUY8r6oUj/n5muWw7E2SQxi8UhQKdaHF5izwipx3MvhXDbwBAU90NGdVgb9X08x/Boxr2GNrkRxUK4z57TdekFf4UhoKMaWKraw+M0GlXEqat96bPB1bmVv3xHFb+YZLFIM60dt0W8Mdhopi8VNXz0KPKKP0+NOqgxQ6vVF4jtR9xhy/3Z9gAVedaBjmloGVC90bKfc7FtliApFCbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467r9vm6_e2etest","name":"fv-az467r9vm6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"70a601f6-2135-4fac-a8b6-0557cecb7e47","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18008","status":"Disconnected","lastStatusChange":"2019-10-18T21:08:44.7136154","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"8241a857-0f5b-4852-8e02-226e5a0b1d9f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsvDpoAgRqNSw6HE62bQb3cO6QXqoQDG9MbU4echMOh8VN04HwPwwMNYsrseIKHyWBpmAMZ2SLvXmX/CoZE8VWP7PUQeLNxwYD0Iv734JjagMgdcNAURpISik4TW3eadFPvgVgR00V8pGFsERikTC6gDGtYoc0mJ5qbihTfZdJzgkwCtpFFLUuN6nhUqCcLmQxrh4muEAAF4mGOVFrBMcUBssk8i8jpJMUzgOow5BoKhFR1zAejpgI0ZGmiIZ7/BexUcFpLUGpbyfF7lvmJfVj0d9TjTGUwrRj6ZcMNJ9/jwyHLfZHUml04toyd4S38ioHSkPXbPyPqQPrLZoAgYXLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467reidp_e2etest","name":"fv-az467reidp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4c582a3-494e-4d3f-84fb-1d460f6bfb75","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26028","status":"Disconnected","lastStatusChange":"2019-07-26T21:50:54.6112599","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"791efe43-55e9-4eac-8e1b-8036aadf6eb8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz0rRmZz32driHTAXn9BDpYL7q84/xn0m1U/SXyc2vJdSXd24z7W+GFdmqh6U9zRogYJv5NJ171VUAEskWYuuW55bDipXc9eIx4yRbJAC7IUZZmZDSZV/qUMfgkN9LXP93INoDwsR959fyWw/1bmqzvab+++OZWCyQM2TjMe/tQp7I5MkP4+WpJAaDvQGx53BMXXB1zVFFn8snykyaUxM6tDcMnJdCv0LebsLT6IscFhPGWJ3J20mrrRssjY65YQHaJ9cZ+9D2QsFdv5JQTRnpiSA78hYEJpGgdC7f1QmG374yb5OPwEorEMun4Vll3ZiazCC7r9hT+TKQXCxjb5diQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456sd4hx_e2etest","name":"fv-az456sd4hx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"11e0efc1-90f2-4890-95d9-09811728ad65","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22005","status":"Disconnected","lastStatusChange":"2019-08-22T23:26:23.5884354","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9c937a7b-8364-4966-887a-8cf31b8c8179","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvFbQLowEd53Q3baECPGMRYPRYbrIosOCM7Cnhb7uT+lGAtiXZeYRl16mhtuhfvSpGJZIOkwDoTkLd54h9PVoY1GDu6g4JIibuVg/n7XdyeBuzixKyRJ66f0/w/cfyQNxRcNW8LLEc49YfInltAb9D23YwsPZf89FYolD1px1EwBcr5sBLUCSx9Vihav3Um6VVOnaHZ4HQ7/b1gkShdRdxN0KX0gIXoUjfAn7EGQnTLyLYU9DAWkqck49v7/PdaGI4ZU+ffrJpiYoantp9l9yRdtDfn3B9pR53MHiNJGvOKq/Gat4zK0wjkvVtYHV35gEwTB2nELKnhstrZLV3lLajQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467uj8hm_e2etest","name":"fv-az467uj8hm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3a92be97-1838-41c2-8a70-5f3d234e4e77","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24006","status":"Disconnected","lastStatusChange":"2019-09-24T21:23:55.0426788","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"921692c5-d41a-4780-9ef8-7486a863375d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Lrxded2WcL94W4cF6dPUgDOGFRUg+u3MkH13V9dqkUW8mssgPmaLVHcG8QvUSNt6HGj+QnINTTy4qhP6SVcyyslSFYwy2BU+pWfiVBg2rtjsTvbmjmA2V5wr4C8EaPUywtemFxBCuYHs/5QK/UTC7OHnA/j7tL7i9IdljKglk7f0x2ipR1b+orzf/73PGBCEljtuLXumgxokLCH5slr0PCFFeZMig36CRnbAq0/FvdZXOhLxpiD9oLuYGDD/NtnuYb227n2HEsyyV6MzYNl9aUoW/45ZIAazdj0zmVV/XhfAkzks7bd7tFPhoZH4NGjYQ3L7lMgmkkX+2idboiMZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467uvhl1_e2etest","name":"fv-az467uvhl1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"badb7cbd-7b32-46e1-a621-3bd261f73a2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25016","status":"Disconnected","lastStatusChange":"2019-07-25T21:51:35.5320666","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"f75066ba-603e-45f2-821d-6eff1d4562d6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3+LjCTzuQa/HDjz1nv8Qlxf7lJLwAsgiJvjaFs4xa8zz9qzICQxfrWRLpGNFUh0dBGdiSKdjWboUFpq1ElFOZQSlROg7AWNuGwM8eDKTTod4yFyIHMuaQ8JgmDHpnTTmoO3L2XzK14uTfI8yTxMqdqRZX0v2JIQZm7H0FjJ7ecftXueozFBsK0xAAJYlyugqpbSuqbNh88RkBmrEVlcPH9VgRiZTqJGy4PNXiEscIDDxjiUhTGHrgQep4ZAJqQ0tN9AUIy/Jjf4qd9SG0nX3ERU1z1g9E7IOhQIMUvweQMoP6SkkUfjz+GWDNA0ecOHbAIriuWF0bWn5a3msaerngwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456slfne_e2etest","name":"fv-az456slfne_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3f901a7-d43d-4ef4-8996-ce45b226f11f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09002","status":"Disconnected","lastStatusChange":"2019-10-09T01:50:26.5038926","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ae9a5123-a99a-4d7a-bc16-e32a66e1b2a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz/TAmGiDjkTi+3kL5Fqa38uATJn6VUawD2/7DiOztOibTB4zp2Ad+10X4tgWJqBU2cJSh3p68OpYfbGGA9OPOyzMt7+otiEFMA/g4N6ugT3EPGujIEtIeMXwX/MtRjrwdahSZZtSwM007/zfhuUQdRLGSavkYbk9220HAGXu+q4FV3hy50F7Ji+nT+dGvRguy/ejKLTvw6evpeUYFsnPUVX8nBtJeOtZSBjq1x8wNNRqwVGo2dfnwgHt1l+p4MEcmSWuPyntVx5YXfqoyDjCAkRrBrv0Q9T0HRYAiC0lN5q99JB/mP/7WYLInfugF9i2N1yoF/kWnf3JMIgMSA35EQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17015","name":"0.3.1910.17015","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8b36abdb-eb72-4a08-bf64-d34bab050b26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17015","status":"Disconnected","lastStatusChange":"2019-10-17T23:03:23.1174752","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"fcec7c76-19b4-4bc7-bd4a-fac245f32970","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqm9KHZRhthIMeU+x2zY3gggUftynQlDmAXXUtd/lpHlUilt2Lrs/tzvNJAOmuzJfbmSZR3TsfN5L4vCc1wkMb9RK1SMTNV+u4dwi/KfE2wtXGiS+7gunl2hwvPM6E+BYW+xNdqGlK6HA/SQkPe42xaGsYZ2JubFZJnLRRprm1JCofbkzUBT1I5X2KEcTsK5JvzclckIR/YHKl7qDRbaFK+nNumMz5SBBqeJCzZhwbqglRO1jUBTMyA7QNEXLvk4ybTM7Jw/PkE9k9hCG5L7h9dFHsQah5GXL5tQ1MUWCf2HCu6CumomM80nBbixADHrrQYC75ufQGGuOZ9MBNMzyiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467vdro5_e2etest","name":"fv-az467vdro5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d8330f0-15a0-4571-841b-b7f8285dacda","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18007","status":"Disconnected","lastStatusChange":"2019-10-18T20:13:44.2368488","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"114b49e7-2eba-4a31-a9e7-9d8dd0e77771","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxHdXyJJhZ9/MaoXOgkDY6/dbVaQCyDEgDUg3uDdavrQyLwqSqEdkO7s/s4eeZBFs5FsACEoMCa6JHh5+wxaEinqPXJn7Efkyz5aSfdjRKqCslQNjtga2NzUUbfR8Le8ySyWOOvQ+HdyOSIi65iFbKE/n8+ywWz+SmMacRli3ol9ABEIg5ts+2z8EZ9YTmP4C2FUyiTByZDinuH/k9v+0xZ1KIRXG8Z1qJ7uaFP9shfZ8NSTglAzCWO2qGxksEHQ2vntxnHPR37pt2YAmHSf7Fg+uVCX7FqZd71P4Lny/myU9NBOaD/ReGcN1jyQwrXP2PKh9AHrIp07wjT6IOVmpawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467viagf_e2etest","name":"fv-az467viagf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"815d54e2-0b77-4a13-a1da-9dd13132024b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-09-20T18:37:50.6256119","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"1577b241-721c-4ffb-9217-eb3a7934d6e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2/ERM1gDEiy4JDcf6F1SvyOJ8QDd4ERMdrKXe41IdjGNORwowHddlj1E5kjZYKxOqnSYtUpXHSWhoJmuwWQ5+WrPP0Ighaoyf1tzaOU6QwZbmf7dKplSAZkZ36iT8Pk4HZ2A1UB1dLQZ3ixjDc4peHs/PcaAryBAHp/bwf1LzCKrfRZZ5g2hJdwBmAf5R+58QybS7jH3mgehrz1DzxQEwdObxfKmPZ7gCCUSuWE3uf+PE5Z9tjEvBVzxazHQTVagR7vpvwVGT8xJ0N0P/fhXdPKoMOPynwGkhOmfGQvIZJ2Y01c1dsf28RFxJ2l3Q08kLleOZNgvHcvDCIZWyRPNrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18001","name":"0.3.1910.18001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0d04bc43-dad5-41b8-b4a1-45fbcdacb3e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18001","status":"Disconnected","lastStatusChange":"2019-10-18T16:43:42.2692093","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"8d05429b-6567-4d46-a13f-687a19b84889","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv5Pz38Ab/veWx+mhS7jEhnyVSDS1Dc+UWXwpiJX8ou1VC/4QZct5uXYPZFd58+MsC11V687NKRXpV/NlLSPFz73c5ekZBm26KQURmfWefiRpCQVCynE2N1D9A8onQwHXWiX+3VKY8w1LYgTb8FxFq5/+V336Y9jGlpfPvDg6hDmUcbaIj0Lt6m3WU7bWURZDI2mhlvbQuSvln3iK+IniM8d11HNwv3T6edW/zxdW/Mg4zHTYA6bG7ztAY2sA0dmI7cesSreOVsQbOfLFuIv/sM/O+WY3jrb7JBKaRfxD8KUr4M/6CTwiafG/GMr7Ax9tsd8Iw3lzth6eiJXR+vkEQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458acxvn_e2etest","name":"fv-az458acxvn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c7a643ac-22ad-4747-892f-73bcdc201a5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24011","status":"Disconnected","lastStatusChange":"2019-07-24T22:25:36.2145845","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"47b1b2dc-49ec-4d64-9219-c31941fa02b5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsPavievMw/IkvW74FQIF4MhiXclzYVBshNmIsdL70djpDDrpjSmweOmqRfan6E57qTqt6Qli4I8dli04kHgQHyVP6JYOcdSmU1W8ilSu//X9CaAtzYiw6stgPAXgjQwaNnzkSAToKmi7LyFIVK/C76sYzaT/51u7MPgHLjVbwZxxNU+sb927sVCD+2L6R662fSGKICLVEcFixmqXnMgzRekzaGsWq5maHO4+fkQ0+a3YRRNpJMRRF9NnDrIuhtL9yxB2+P03eVKgiR+f0e6bW+psAJnz4oaXC8i1Ty4GLXBup+6KmQjFD78YyZVT0FA5t4jGsrH0n3PRFFIFY9iyCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467vyl43_e2etest","name":"fv-az467vyl43_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bf9d6800-a4a2-4570-b39b-26a772c20037","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17004","status":"Disconnected","lastStatusChange":"2019-10-17T16:48:18.605327","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"003a6a83-1177-4707-b3a6-e4d82248a865","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAssIg9DmJaxBU4xvgcuQQC23naYsLeiH8QOiPEKQWnbEN47tJeAwb1mY+5UZNDlf4RCytoMDeUDftPtsM9VVu3lw9ZCsljLryXQhGwwocOLep9p7/ObIY0/raEPyO8Zc2U8JCyqAwVvm2nQhlgQlSc1Yv0TSQESxYjrvJ+6va0yc/QaI9Ys1sTpJqoJzAKcF2j5TU7dijl2SdN4NXiWCFqNi11agsZa/R27XXGkXsTIJSUWaD/DT33wdJxxc6TSSIeov21E+Z0SqMlFLeyj42AxGqcS5yLxs+BRsF+GFQ33NMGCyZ68CxawS7Te1/MiVyTR9e/FaZpqqV1++TpVIXZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467x18z4_e2etest","name":"fv-az467x18z4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"88baefc9-5dd0-472a-a66f-3d65544ad41b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13003","status":"Disconnected","lastStatusChange":"2019-08-13T18:02:07.1552677","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"49ec36f5-db99-45ae-ae53-0f797718e398","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4vndD5op0nBQTP/bhvtKkBNmrxMsVJnrsWGr6DU7FpfpI0h/jqkCV1JgGelUj5Crv3T+90ctmjOcie0rspWBtQ3gDsyO23Yp4awgusOttVSdfcTwiXQgUqFGCSbZhRU6r9jpza59GDKoDCnTL+dB2NoUfB8/SOAOeeT7wHw58tTCAFEk2i4acj6b8QUFYVmuBg/Fy3atZOisplPseHLE/Nenwep1qjAmjsFch4NKRrucQ7MfOI+kxr6AQNHdZzf92Orc5PjEMglCjlCcdPNzq1qNh0P2lU03ONU7JLMRA5hjoCxkIILEqSoPzp1oItss6z2FPhmZmafYgsrV4mb+FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18002","name":"0.3.1910.18002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b8ed44f-bf8b-463a-99ee-64009c8ea0db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18002","status":"Disconnected","lastStatusChange":"2019-10-18T16:58:42.5860588","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"ea49163a-1b82-4d8e-9814-0b409bf56484","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoJckfHWyJx/uFwzwAI3s6OdH5iELcZEhio7eATwFqQBqfdJvxB95jY3kzGF9h34gpXspa9VYNPQsMqNQNSqqbg1wY88rXp9tnGPPdXtPg+2WGEIfKUzygf48Ifp+KF3B9KFmlM07nH7YZO5kEepWqXgFgHnkXlmiPucKn0xKJv4yq/Jn54Bru/VZSSKMO4phuY6moZ84QYeatKPnClJkjl+NHQu1ug01r0lpz5zuWNsNTASIx3tHkilh089hz1EWAVuk+DKKXP8GxJeV8IToBmJjm1lg8RPRiQmwATYGkdUA3JJEOl7Fr1bf5HTOeO2m3Zc+n8I+dHUDN7Z0OoynjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568cmus_e2etest","name":"fv-az4568cmus_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5e290fe4-b133-4468-9662-acb69fce28af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20004","status":"Disconnected","lastStatusChange":"2019-09-20T18:37:50.6256119","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"359cc45d-a755-4d84-8e68-0cf4f3bdf138","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA46s3TUscop+XAykveClqHLHjW6Prd+uw1k4B/tyxxZDZqxhIm7J6QGsoeH16x/tfNWP1UbLqrz80s2Z+TV7g4COAaj54RjbwnR46nH/v0ClWWQ58hAmgitdwkSaz+BBIPh6Lco2xwvCMPQ/k7vG6eJR/rpD8WtXK82GmCP59WzUQGj2ehX8z5pSv7lO4PFkyJZkXJJa8CVBdo5bXSQR3N9WqBYI6/mCEUX4+nhSj8g0z5gCfF6TC2WdVkAzlOObJM+bP1gans83pxQzJLX1pNG69B5m1G0k8mdiHuiaP9gBoelfO/EmUQU7DzOcXZ1qj4zyIGHLENnpcbERfZLIh/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467y051c_e2etest","name":"fv-az467y051c_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"508b5c3b-79b7-4004-a712-c8a43d8528b8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11002","status":"Disconnected","lastStatusChange":"2019-09-11T17:20:53.0178146","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"121f2ae8-b2c5-47a2-a2b9-f4bd0b3dc3ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXzh/LkvAVEnRL+Wlaopu/yhbaz/aStvzZhzkwuIqH4eZnd6jQ3agifPEqWpFwgOe7jgM6dwjFHedbdXVDtxh3OCpWgN7yh34s/LiuSzqFSPMo8vCQbVKF29p6tkq+1WauKQt0SPvnL2NsLE/CWRmvXnJknFpe6XqU8gGBbUwhvxxIbza/tWWQkz8MSLlMuJDoUmVPYJHHP50jwdLgNwg0hwLp7LhVZR57K/f0J3tw70aMI8y7QKIowMwqEwLfOGSaVdRMyxVmVMoVTABf3nay4ajHPD2e099FnJ1svEnq6x5+RBA0DeEJzv0+ce8AFTaAs68Id5bPWRmXJ/gczbzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568f75j_e2etest","name":"fv-az4568f75j_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e261e464-75c2-4e00-83d2-421bacc69e7d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.17001","status":"Disconnected","lastStatusChange":"2019-08-17T01:31:14.2380189","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8847b2bf-9ee8-4373-9bcb-5834a028db91","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtgTwDC6q3m3diFAXI9T3aR2N1rQ/D7uctq7GV5Tbin7diIFdfiEH9E7ZH95dfovobcyK5YvOiNx8Ts8CfLEAURTjCbZS6gQQum+FSbMSJR4O+ZzOsq05+2B6Z2dqceC8u1KF5O0a+xxKOLbLoHjYa84JxLmUt0BRUMGcuQckoFtpbogeBsmPnosY5aHHBe9ThNCzNI0/v2SF6LJWgkcz1eyvuHLMihzGGEU9blOS0gR+yyfmnjciVg5g9c4TNpp62LIGn1+drvXIfXkQ90ubyr2DZwiarj76ei8Aj5IuPNwweVzIhxK01wnWD1NrEjMWlSFGLmdmKTYCkxFSkTFkqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467y4pqv_e2etest","name":"fv-az467y4pqv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c220483c-9ba8-45c0-b6c3-39504982ad71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.30001","status":"Disconnected","lastStatusChange":"2019-07-30T17:53:08.4423403","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"8753da1a-d6f9-44b4-95ab-ac2b7e70b047","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwpWeic1U9jiChyMeWduY7IGkGe66jyWKnHcVJQgEStWPRRcLK2M71S5Q8T5OwEbogIqVQWRQkQMyS2B1BsGmpLGTWmetowmz9RneKF+kWrA34Uu8FFVc4ryrBBxYdunkKu+GohLAaXe7Lu35Dx4YYeWvSziHmXUEcj/IJ+7o9kttisb8MUNcn6vxkybRTFRsuJtuVfKIkbL4cCUQ/R4OEsUlXxEOW5ySnLaMEdOiBhJUSSb9xW/mcF69XPuGSsMhvX51wRhMk9OMOaPrzLPdQgyOBt/wbNgrLDvbFSW76n7+xJRjG3Cp2qDPL49IsFykqb3jxGX8RM+Bz+aKrK/uzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568ipta_e2etest","name":"fv-az4568ipta_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"78402fe3-ca6b-452e-8334-b0f724be1970","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31001","status":"Disconnected","lastStatusChange":"2019-07-31T23:04:51.3936979","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d21a45e6-398e-4b29-b56a-2fe80aed61d8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5uRKZD26qqipPnIuFF+HSAn3j3YHbdlkTYMFqidZd1MUsORMvDPNeNEgeqUZWr0RZtyD7MZevhwJlpNryPIjCE03qqAeqafUz1OJ2i1A9THE+zR592+unNiL5kRYI5J/7jAohfjzpbumO95ix0MZuIVKoysbBVtMTM4XdMY9Qvfedii1EmeyCt1WFWnNVUWh41feTlw9hFHYMJHy796ttkdmL6FllK4ffabxBCOFQjWNjGK8MAXDZPv3uExFHF9Yj8igqEuBsz05LdtMwtB4Lkf63yMiBF0YSgXdZL3xlaMpfoa9/7RDEPf/x7gnJhSzJ08byG9ZTiXjcWwzSS4fFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458aehk2_e2etest","name":"fv-az458aehk2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ea08a735-276e-4243-a62a-1b883cd0610b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10002","status":"Disconnected","lastStatusChange":"2019-10-10T18:55:40.7650266","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"aa763409-38d0-43d0-97bb-7249c3e0d73d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyUxHSW17jcjnJuZ1/hvo7GawUOP99smP1JfIfpNq5JG6hpsah80BOApQgkuUPwxqnPjWJUVEStDSIjQKx6GAFd7pF+WcIL800WSZ908/Qrv+PMz/enNvIJGN5VizcWfiI+Gni6jDWogwTWx/ha+LnpiGXDdvTfwIPXsWt1eFXWqVuBbV5a0X8fmGl8Rz7AYL+JOfOwrYbvJ09ykjJ6cpGgAtxEkr4LdImYOmJtE5VUeUs9uLs1czcM8ex9j9rTA/pmjSbtdld2RiRhEq3PG7jXA8N0fR4tW3bsN733p8a0cqeCM4haR6fqNbkiS8U6yUVFapDgFoKBcrTx2wcHWYLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18003","name":"0.3.1910.18003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"be22935b-1329-4be0-9e79-4818df382fbc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18003","status":"Disconnected","lastStatusChange":"2019-10-18T16:48:42.3892479","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"1da6427a-8ffb-4cbc-8b3f-909b98b5c658","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArP1S6Wu4thL+pGvfPYPRQ/pc3sYk9faxcsU7oCkd5nvaoCTcpg3Xpy6frHDd8oZnLRI7121jmCG3OW6S5+8FTYG+Arz8a0/Nmyb1482xq3skKDl/5APqL/hlKq72rsJhDHru7D6oD6H1nKYjyz9LWkH00jvLsc/nxz0BZj7xDjEos32Is4X9VFk6ZxKOkKnAFIfpxoztKQwFBNahw5Cmj+C53C8m9IXkw3+WYE+Ik8MkMD9e0cEoR7/Sq6Nba04vqoHI+gDyx8p48z+SNrxIg7waZJGzqFRG2bUg51CIiI75NqHGCVNyhNkIZfZz/535Jq417oJOKLxrEj1TWbGZ6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568urme_e2etest","name":"fv-az4568urme_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"159c70eb-05f9-47bc-8439-a38c4252a5a1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13002","status":"Disconnected","lastStatusChange":"2019-09-13T22:19:37.2612615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"34d98963-278e-4562-a790-5c4bae2a75bc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyV2/f4RM0iLhM2AhQOLUgyupAuClLXfY/U9jzTEDq8ZvjNAKAbXnxwk4dEfEYtHEH2n4YG7KrlFewe1oT25JJ2QwdUOoinfj7GD32JaRike7dN+gOlNLd8kPpA5TeRgxakZEqg5qBE4hss3wt65T5zV9U/l4qKki/BjlMe1KmrR1HTq1Fkd46Zd/o1OiUPaAj75sRvejriLuSq5d3W8o3Cum0k2s+9zioQL6k+Cle0z3EWfvGS3yDJ15KDu8JaVrCnxME09X+i9EMvZ8XgiPIfP/AMX4101R3JAR4XMfW1Ej3rLCVw/q9V7gTmPGAPPORW+esupZVmk5QRk2I5nmkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467z9udm_e2etest","name":"fv-az467z9udm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"af834227-7c8e-4592-8d33-f76cc3315ac8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20003","status":"Disconnected","lastStatusChange":"2019-08-20T22:11:46.6522646","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"7ae026be-39c3-49c0-9044-8410877d4e3a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvZZfQWHrt4BmczgghUt7wJ7Z1oV8/wGljwCzuul0hPVab7Y4TDCV7kUu5UepIWWgW2HGKi+X9xoKPx0jTiSn6fRfXtpR7fiQYLVojMvyzysvjk1bMSUoQMgXQILSmqrHsFej+073tfLFbQNLk8eor8wFF/vYCCp5H0TfJWsT0Kg2TC0KKqVEf9Z6k7wGQAmg0EXJg+OWSEEUhGgO/J2wb5DLxsIFL1MnaVTu3Q2dZYXGpKvHLIDs45QJIShd9dEIEXnGysX0HM+Q0pBozaL/DHuYdFc3y8HdPN3oRNq69I0YfV4u4FGumcp2LDBYedI8lbDXGuFJ2D/iaIQQmeaJpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18004","name":"0.3.1910.18004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a51f0789-3f1d-4ad3-90b4-3b4c2d8eb7f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18004","status":"Disconnected","lastStatusChange":"2019-10-18T17:08:42.7692846","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"5c41e0ac-b659-4d13-99ae-9f964c2768a6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Q4O7RDgjk0cZvQmACpg0+psJ6GQfmEChG/Ws+DmE5CvYJULW23ZPRaeFyOmlHE40YusOPsTpLA4bHzOJ9KT7IOVGKiZGa7wJ02zJb0ZLVhzpVBwOM8HLLP48IsaEtsIEAghj0SDhSsIzn5IzhytIBoFBIs5TdAz4sY9SZO/lko6jGaTW/7yvtHsGOTIZ1YEnEZR/YJI/lT8rXDjb3flpgTKX5V2Xabh1KbTtmfJvLnCrcPYPY3LJmPidDPZOuOkq1ZJMR3+F+iLwqXZs1AsVEBO/Yt8yjit33n4Qi1YX0uhElSnqYe4qvL0MgVL0O5Kg8SC2MOFmfrV4mPc3w8IiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467zejld_e2etest","name":"fv-az467zejld_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9a5474eb-ffe7-47fe-9646-e3ebf8623cfc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-24T22:10:51.2650559","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"73f2d5ad-5f5f-48d1-a3c7-25f4931b9585","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwbI9S4TA2FRqL6poRZB7C8N/APqzSUuvnWHZ7BfEE0QYzxsqkoG6WUmCdV5+TmnPfDFzoDrloAgq5WLi9ZUSQhsSi4/gXcABD5dHFrpytQyec8XqeKJ32JIJYqwhZYwMnVp891s0QY4htANKY1tHAzfHocF9YEDFfPaPtggrOLur7UGE8sY2fM0cF80z68xUtdHvifX8vQT/jmklZEfq1p1sYDfN9m5TloBzxMZ1Nm1vcMZeGvw1oR9Hiy31F4aYr6MW0WHt59ulg0U4IQPNP4PkJtxlUJc1+x3FEs5nV62xjlbOIJVy8rVMsVPL9NLRSLnBsWIkv2exZkoKPxiFJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467zvdwh_e2etest","name":"fv-az467zvdwh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c4311811-ba4d-4f5e-b99a-b2db561ecf90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16006","status":"Disconnected","lastStatusChange":"2019-09-16T18:05:01.6755118","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"87e9bf81-2a31-4cd2-949c-937a63d0de3c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvpF+ryWuCPcBku/2LIS9BMiJKZ7VYcE52TcTs1hkxWalR4LbUEXY3iBaLFhKjDP1NhNBS0Q1GSuEMP+JArHVQwPDWS4nr+rQeu3WWYtCb6yX9luc043jiGq292q1fKxlKknAfx4LRgP3/Sf81sq4xUeTXpTHdP1JfEss7iyfSonZJhk5NQr1lheHoV+hrVcjylZupnbNf3EzOnQfnWiuRo99ozwBQNtjBG9URIDjMW9vr4ETxQN4hnFDQg4yJviTso0eosL7eF1ZBNvv2SMhF8iVGpm6DLfEfLj+mdBickFpLF8RZN5aeDCowjuBgI/HQmRZj//2WNn3DLRmpwajNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18007","name":"0.3.1910.18007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"56b59ce0-897a-49e2-a08b-1ac8c4b94377","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18007","status":"Disconnected","lastStatusChange":"2019-10-18T18:53:43.5370511","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"8995cb71-f354-43e1-b56c-547d1ed1e98e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5x3od/qlDnsV5qOBkb5zyBQqKhy+/KilvR7ziV3tBJYxKyxk9OZF/2ziW3YN4dpStpvNOZlCanftXaT9olMdQiyGp6iCs5ZulZyZOIt4J+9k2h+CPgeSTBy7AOVL1NSJ0BkuhWO/YS1EtYogPCPc5vX688muySVEloOSWsJt5CoIVmE1BcRoycz3pkDKnQakwD6drvZB3Oj3njqRZXIyLhGYqCkKX7SiBuUcCz3+FiQJmuaiIKJKuy8YTtLjFlNIzVxMOSUP3ned9kTvEWxLwN7v3rjvAVRLj4zpgynzNTMwUwh5Kht0y/oPIqjrpe9CcsRSYdS9XLl5w4q8XJ0+WQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458aqkv6_e2etest","name":"fv-az458aqkv6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4052f6e0-6ef7-410c-8a12-c23cf1ec333f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12001","status":"Disconnected","lastStatusChange":"2019-08-12T18:26:53.6065721","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"f6dc264c-c900-4aee-a244-747b3b23e64a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq3xvNXZrJfEsdh3chKZYWVBFhaTTO1yAKFlsQ2hVzkaxOtlcO2RVii6LF6NE2Gn6OtAZSEhIQEwgSXONA5eI7fDX4Tc0o3+BAd88bITFLPdSd62E/nccBCK3qR2w9MRLIbM6Rk/ZLl78+jRvJDUrt0p0v97++82NVN254TI/rLOO/orNuWW+9/jc5bG6ACAJWCav7kSNo9mEtW54bNd7bJ3HP5hHsNmuxRgmjO7jLrtOrj/NWj7IMH+kDdgBZughMaHm3r8trTkGEwKhwtlESer3TwCjD7TAY9r/gu1MNrBsfvQESSH+1kZmTiK9tZJGKav4R49W8TNgUiWum6rgZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az470c7lgv_e2etest","name":"fv-az470c7lgv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e8391622-5139-4972-85bf-8f947038b7b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25014","status":"Disconnected","lastStatusChange":"2019-07-25T21:01:33.557164","errorDetails":[],"displayName":"fv-az470","machineFqdn":"fv-az470","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az470"},"vmId":"cff81044-bfc4-42e4-823e-4c6f04c371ab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuzszztfrrTvQmy/ufzSX2fO4DKxTNqqRcbHWkijvxCWUPdYfNXnxgL2Ixiym1BSTIOcAgeXaLBi0a7laDCIj9WFBjk8NOB2xEeaPtLfrjSfED+qD9yBc4Zmv1dPda739gQJA+7D0cOUGkmcPjdmBH3N58JWLzPTUzwrcDBdj/hHGA6NEiNFdUeORrljGal7pGuofKLBHvviIsFiR/bdki/gC0DkflD9BYQpH0BMrcKqZanM4ikLSwZvBf9aKwMmavPEgESHY/8229eP2jlea4iWsAhV+0ED1yeZpmhenTKwXJMnVMja99biFvW7Ttu0BPsAfAmQPjfa61hu7Gx8E7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458bi9xr_e2etest","name":"fv-az458bi9xr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"485de08b-747c-48f5-b7d9-826125c73b40","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02004","status":"Disconnected","lastStatusChange":"2019-08-02T21:56:05.661609","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"c71dbaa0-b50c-47df-af3f-99c1035563be","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwXmMklghLgsJPeG1aYnRSvyH01kiIyTs9hUfN0/MHwvMpS15bROmFCE1l80jN7NB6VwpY6aqeU9/7e5TB2NyKzIYvEQeL7N9/ikPCuc5fg19y5tweT/UXWntkl+xpAf76moCDsn3loMEKk0cEhUEsyR+H7mfOdrqEICbEN3Rei8zh5afDa8qFRuLBD75u/M4cSgPZOi84w2+MtCUlOqRwyK92HaEo+nch3jsTUTR9NATeNUOKcWtOy5gItZok/kX1+2AOvWTA9ZDo37+g7axG/t2yGE+aoG3UMWqqbIFCyJPjoJ8yLiB152xeXI1QhXH5zrqMffSW2KzB1V4nf1GfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458c9056_e2etest","name":"fv-az458c9056_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ddd9399-437f-4f67-9ca1-8d2421145b19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09001","status":"Disconnected","lastStatusChange":"2019-10-09T01:15:26.2361944","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"da950de0-0b0e-4af4-bcb4-b781b3401f4d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7T4AOLUiEu6nSKmm6OtInzMfMYOwc4BuXPxI2BPEb+4wTovRyvLxP8+xL+C33hYRHmyvxSmiqqLjcoLXfYvKWN4FNtL9qOcP4m/yeonFMgsh9AwZFgd7/tDRSjJYjJCNDKlAk/Rh+orTTyFZSfqWdcwnvVYBaZXSPinJuH6f8YY0VqsXPChdtnJuXvwc5FnlqJPRIf1vi/YdvNnx07POkFsYQoAaucCY5r5ND/J0pXS1ciLf+BhuY8fct1HQ98BnOOE+RtcbC5mawlhHZ4nLlDjGqFbPpYLUhYN5Rqui19cUs3Td7SieVkmzcaM5O7DO7ibvjRxwNvdbaNX5/SR3uQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18008","name":"0.3.1910.18008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"83aa0558-d4f5-4eb7-98a0-a2df40d226a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18008","status":"Disconnected","lastStatusChange":"2019-10-18T20:08:44.0941667","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"a93ea107-f0f4-4ee1-b592-5244825608ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmNDS9UvFjEfDZICNgEOKLpmooZHVmEL5nYzdixVPaaqDxTushyfnfE/AprPmZ1Ct1D6DKUnOnqXNC/tvC/KiuicLw6cPm/CV+fBQzuvHlGDrHVFkfdZ4er3RnFz1k/9AREOJ2wX6QxZAoBxWjLN9H18pm+qO/w8nyxTxBrfwApZmhzjBVdepSIzR4IJQffB5apZkobXfLdqR0S+i6RyOfqLvXQa3mXMmlcYh9PWTnVN9/3zZsThhw89CjUdvia9UyqGTAcJ6AzQyrgsviqQrGcXWozKkWIrtd82KgoEQvwWos4eofhdRzFIAOsqZ+vvPUF+E/5GeVzOoMpEUtFXAawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az473mqa19_e2etest","name":"fv-az473mqa19_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9b8d10f-d424-4fe7-a37c-567dc8bc5388","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21008","status":"Disconnected","lastStatusChange":"2019-10-21T21:29:24.1157146","errorDetails":[],"displayName":"fv-az473","machineFqdn":"fv-az473","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az473"},"vmId":"78db5fb6-7a1d-46ae-bbb1-efcb6b644d33","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAue1Na6DxjrRs0dmtiKPA1EeUbaYO0bYsK1FcOMUBig7kL9innFeXcf4xqd4fFzU+3Rhq0trceLrmnYlRSqW4cWwpNuElKj8YL67GJ8hG0d/D3akfpnuNo8Sdy/H/RvWttQhLKb2Z1DI1MaIiXRSe0L1FMXKi0WPKncWPmIlNV6i+5q6M5EDpvC49prHAaJq32hDt58Wm8hlucexg6HpzHEbGLAGatdzT0yhGu/XFr7Z+N0FClvRGr9aFI5PqwPswQEYewDUipIZlYY5eUQ9u6m1T/2Ai1yFRoEO8qIMsEfYfzJj6Jlumt80XOAzpeoOKiyJIrI5frdz3NDQzH6DI7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az49629ztb_e2etest","name":"fv-az49629ztb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"702fc318-b579-4bad-9252-86a143194d89","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24006","status":"Disconnected","lastStatusChange":"2019-07-24T19:50:35.1357724","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"2c72dbcd-5e1c-4f9e-949c-7879a4f3d91a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv5QEF1jRaxxdQdN1kvVquxPGloF9FkQBN7M85SZIgpF6zTJQVXtiXEAmpQyeuCvuHuedLdPukbfATAVQIfUf6EulQcCt24NeHzjnmk/v+7Ctit1iJ20WRYrHuuaSjWGbeY53fZcNI0OrMCXfzivAbZgI1//m/N/1raLYxnFi4au3vsWMHfFAOQy4Hf3so6YQkDBmAFcz7bCZtfXHgJKu8IZFGnZffaT4wf1UDMLgrF6ogVaDQrwC5sVMPKBkLovoz6vJc+Ts/egyCeGPt1VvIWNN5zcZxeYJuHCfxNnxFaYxxLhg81bPbA08BxZc78u+q2/JISihmdMa91hpHbi51QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458crzmq_e2etest","name":"fv-az458crzmq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ac8841f-6195-442c-81bb-a3b12ac1191f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"adf19b2c-53ca-4dc1-a5b3-0b400208dc2b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxkF2vBychjHkXb8zrdC7L4EOYhz2sNXy1Mh86PEzViiKPaHTIoZKZXyUf9OhbGPKkzFRgQhEmec2r1eLaApkarNBs4cce+M0uhyr0z6fmhEFpJ9xc9l7KX2C+Q0z/XIviFhDC/ggLC3sZNF+eTQfB1U10S7gPiaVBA+DjW6oU7gozrQ8qieR55+eWfWdcTuJ4xcobIdxz2A/eCnMLowBtnfVAtmO5NKZLnP2WDm2OwHdmElgpQKfMPLIStzsujyJpZJ5bLd2Ot79vXgUUstrXJlLAMl0dMwFfaeUWNxGgxlo08/UT9zT/N2wDgi0ah3YCl3Ma0BGMkftXs/8iyKakwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568w2bl_e2etest","name":"fv-az4568w2bl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d13e51e3-f8d4-46d7-9c82-fb6462489e06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10003","status":"Disconnected","lastStatusChange":"2019-09-10T22:27:55.9615849","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"918f6c7f-5289-4438-88c4-cc9204809950","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAui57X/3r/TXBH7KFrMWLcafjq+S0G2C2zTzRDrV8+fR+to2mD0tJ9e5W1eeXHIgUJ4j3crco/9zFs7ce+MnyBybFD8DqUihk2Hk/uGcLaa9AWdMFStbd7NFx7Jy/pXywXtJn2a2TWf9HNABwn7ffptADxmQ3F4DEHsBdPFO4GiOAQ+U1W4r2X/tkUkDG9/AFSS794V6nLVi6l8xNnzg2eOCzemASGMdY2Sie7XOyj4DI1XYGF6zruPbnVwanSmhaebNWdCV6TRTkFmd/w57iPBwZbcJGIXd9PToe0/VkgUdf+anCZdQoumuBoiGq0xX0WZ981Hz+E0ElZd735OUh9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18009","name":"0.3.1910.18009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a8dbcb14-e6ce-4b59-948d-117682d061ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18009","status":"Disconnected","lastStatusChange":"2019-10-18T21:08:44.7136154","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"7efc1eb0-cf44-44ec-b8aa-a10267c069f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA43YPgQ9AeBvd+Vpah6Grc2JJuGcQ8RI1txOkVqHa2nz5s5WLeoacBQzblqNC31OBRLJ97IBEwVs8it3WTYyg0NMx25N3H42GEpk5QjGq8yAKpyTu0xm/yVndYNDvrfbBL2K29O0veErvduzQn1h0UNhw6HjxA7mRlDPG3+W/ETujB5fIRj7NuCb2UB0cSH2yn61aNvwoH6OmtxMgk2X1+IlYVgUJoH5sDs681ywaqXfn3k8x8V4j/EGTDxDlVmYvLgkKKy6b1KTZVp/V5LpfUP0tZm4Y3cbQSfCXc+4LspvYWT65d6XikCSWftYO+8IpgC1OZA9Eit41HAT/OgMLFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568yo4w_e2etest","name":"fv-az4568yo4w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cdaa704a-5948-4ba9-b7f1-440b8ce0ec09","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12001","status":"Disconnected","lastStatusChange":"2019-08-12T18:35:27.8893752","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d3ed2114-9ff8-4642-8a86-144bc038ab56","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2csmMADqgfDtDi5SbZn83Adgr0f0AdDfhs1uDYJzrN5cZNGZsdiJk4j/wMKS2MMY1ZPSb/hz878YXPZFWhKBojB1xQz2nYh8xAJ291SbyFFyuwa1Ws6k4zPeuxbC7JcTwVaLeZtVMJ8kRPGCePGgg0QElRSRDx3YzKA4N+9LDpM/bDiAOkWaI1EUQmvPMhOkTaUDnmJcBRQe9ixgwrwa1ESYCzradG2fee+xWZPd0n7hwO3iGCkKrF7tG1ybHg1gthidCtyahAobWbXuk7Lj7W8t4mMLFRZeC9AcZMKoWf0MV50hjbDiDWtQWrECE9TaGoYirZ2F22iONLTBgg4VTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458cyi47_e2etest","name":"fv-az458cyi47_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cae6fdb3-6b50-4761-8c18-eb4d62ea146b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21015","status":"Disconnected","lastStatusChange":"2019-08-22T00:21:16.0859123","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8f15ce73-ba02-4670-9b1b-f4acdd6c9104","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs/BJ97tw6soRKdyK+F6NGvQZuR+sy4SorvopApk82lRDkI9+uL1MjUUISXNrPgnDjScf1COqmL5dL2IlH5VJWrTz8vPJmClO1Q5xsZT+ErzQ4jIR2n4Y1kN54b/7S5vVXX0F+Q3NKUjB+PQ5lw71bSGvWs/iaHEHg4YP5pxP198y4MW1a6gKx53DXeIShkwwwdWpf9zGaRCwgRKvHSEFYqJ+pqRhjfBgeoKDJBxBTd/DLCPDSUq+uwDOt4HsQ0H/hyx67GwQosSsKQMfgUrwZihjorLkR44Tg0DeeB5OOyB1JdrAIPWKzJYU5fMpQf3SuXnowmhU1J3LiOU7SApGCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18010","name":"0.3.1910.18010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c8beac11-d445-41e4-9fee-3e369a285f95","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18010","status":"Disconnected","lastStatusChange":"2019-10-18T21:18:44.9216218","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"15123167-2568-4e0d-8ca6-cbeaf48ef177","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxbCDcrmaBMOjn40Rpk9JBicn0y46EVHPnepijho/TKTGrCOsglthMSwZR4dwxFRILEOwmmZ3TEdPzKEMh48FIxWzJmtsaAhmAH9c2X35f/IdkRFDDzFdLYVdIb8k6y97WDkHBmcxdDZ9ZLeS7XjuSOgTDUR0cPLq9xyZeXMNzKCL+Uz+ytMCbkAmNBKJcH9vSTUcfmioCSPGgzdNoET3SYXEQA4E59I/r69pIWV6eu3uhhlvVY3M3ZHzYxBEVoerAz6+YVv9iOY69TD4QVtsB9MzSWxRFUo/lUAn9xgbgDyYPB+iQNXtKzYu2NcKN1iJKlrI8rsdueObD3RoH8C3HwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4962uvcj_e2etest","name":"fv-az4962uvcj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ef5d1742-343f-4221-8a61-2d9857344a02","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24008","status":"Disconnected","lastStatusChange":"2019-07-24T20:55:35.5915399","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"5ba43978-d412-41b5-835c-f0944a904ef4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtNyWfVPgcfPI8w/S2HHtH8DIDWLOMESm54hsNjWi980eZs0yDLZf3j6ngnbZXVXfEJlLv2g7CbYTmZMOi0SDmAVRYyOe9cQkmz9U+FuNrr7JNZN4iK6XaHdqM5SY1X7TCtx4u9tvdE5P/EowYhsxXNu8/nKOUkOoahsrJSV4gQ/rRlNBiOJdHihDMiNPiTRxUo2JVo90S9fFWrd/yPL5eQo+QMP+qFmzOsu5WeduALZO6msPMCrdHHeQ5JAW9wINaAAZa8+3DKbbX5I6Mcy7S6kZTbh/fX0HBbdZkKENuSVz/ViGRDGEdqBNLhAOlw8ciEfeYyZJ0gvpRpRiEoE5GwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4963qkgi_e2etest","name":"fv-az4963qkgi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39b8dd4f-eae2-403b-8db6-bef21069d7a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25008","status":"Disconnected","lastStatusChange":"2019-07-25T20:40:46.4470149","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"8f0270e0-8744-4ad3-9f0a-2169a29bc218","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6cEx8BVIzTXE7ZTHPlslNl46KGyObRfg6fNmDqeU1zp/R+331d5B8ANDz0CukWEnEDB5ngwrWIp6xSV2yiURiBwceVkGFuuMTxMxPmK2Rt4ujPYigT4EtubczxTHk5L/z28smDqzTZh8Pl1I4lQX/VDMwpbxryM3eA4nuBPlLbMkBEU4r3TArjCdrDir+1JA8hzNuPH5HIJAgwxrraMwkHLOWjPFzbSZSwbUegXi3NzSA2J9txQTgtANtrUkcwmtotu1on0m0iJFYWRMuD0axxRmMweISp4s1ZS1EwNOtmG6hoedUyMs2tvqPChXKiZxpHQYyOqgGHfXjVwRJdQ2aQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4963wjkt_e2etest","name":"fv-az4963wjkt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3bcbaa29-0584-448b-ae01-fcbe5a2141c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22007","status":"Disconnected","lastStatusChange":"2019-07-22T22:55:20.9990808","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az496"},"vmId":"23a18e04-64f2-460b-ba71-77b68072ab43","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvIw1mfsfCuHSEOsKforXPR3EPwUyNoVn6WyDEixhFVU+1dyHQ/rtzsf3qc0k3vb1NqYF5sQ60a6Vt0jn4ZmS41YDtETiulxPZfgSc9ScL/E2qPkzeTi3zFa7tLxzLQadzQavs2/Uv5ZAI47UNvMw7MWnVZ9rDtMmw4Hm+RRq7spWU2k5wLAZHBmBlnE6+lu2BniUcAgg8zVma4eVjZKgbVAZsdw6F519kX09rDVqBjEcBajn3SuDOlefJEGFA263bXEfBsYh5NNZDmstjVOJXHNZJiyT7+sF+IyHT3h+DKP+K0xXcWqlsLAy2jFHh70Vwj+SgCvlCDQH17NRdfOgJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18011","name":"0.3.1910.18011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"122467a6-27d7-4082-b4af-9148c588b51f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18011","status":"Disconnected","lastStatusChange":"2019-10-18T21:43:45.1611942","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"75fe74e0-7503-4e5d-8e9c-1673137c1dad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9Pdy1U14y3SOrRESVgpFyaOl13w2vlkxiUyRtioEKhrefpW+qMNObvD/W1UcgFoyzj14L8c+knE7jDCKbN7NV+2lx/iS8IE0yUdpYpE1bi6OoFVft54q1XxFGmfOj88Hpg1s1blHpEA2x+23YM4AAXcgL9x1E5BMZrCxPZBh5A+qHOiYCj48HsOlBQpy1EIsOUioKRjV2Mue1yf1pDU//2x2i+Q4aDiTATxWwSW1yByOn6bbwX2VeQoqpAdWhfy9NGzjcsdd7pujxnoklnRvVRrsPZA7NpUO5akTW6EkMJDJA6SPkAtoi7/HevWtSvsD5xhPoh4EbiWL4gzikFuTnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18012","name":"0.3.1910.18012","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b29d3b21-48a3-4ea0-a469-683c8718ccd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18012","status":"Disconnected","lastStatusChange":"2019-10-18T21:48:45.2935538","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"ae467d3e-0cd2-4a1e-8a39-0bc12d837c5b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwdSyllTkLhJkoXy15Sk4mHz9e1gfJD4tymONy0ZuRLRW45xJcJ8DqFZNFoxi1dvgT9vbwmH+66UhuivYzm/MoTIVg4cat6Bpi8rO5mgP7oFoLIHbcYO41tZvPnAe2kVcYLuWAUjqKWQmPbCpZOp6+4wQSlX5rkeQXnZ9+lE+odYkptYNlOEFfLkNPagF6vLXa4zINNfRQhEaGRwANbGhLiuAwoEU71XO7AfPzVHxl5M9CE8OlL81BUYLeKbv45vN6YJa56Xvx/YsLG9VQDftkCAOyhqwdWjaqrMSwIjHB8uGpwNcJhyRzUdOnXqlxZLtWjwuX6Ufem/tCfE5h9vDowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21001","name":"0.3.1910.21001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b4517fed-5787-4d34-8f6a-19c4d855dba4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21001","status":"Disconnected","lastStatusChange":"2019-10-21T20:24:23.4052388","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"5c74e555-5429-41ca-9ee8-1e0f836c5c7b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAywzZ/ZAJpg6bab3cqJv7huLUdsdbfIsMAsAPeCEA855bblgMzwhlw03PuzjFJUZBNsK1b/a0415HJNhAk4wXdtnXIHDBu8pMTBrjQuB2bPy7Xe3tbYNetpdP3a+f6y100gKDJ471eHZIOjqxjZzbKJ/Z7mEP0iLD+ARXq4hZ8sjtLajtmgrff1/bo72E5URRippbo8ehiN37C8O7B1U/7JdXozQ4GfDwUlca3tLbL166UzKTpeYbjVCL8hzlWVVvmotBXvIT2LUVOIbcCU2v1offLKCwsWavtsu9wv8in3q9NxBdw/3VJGd2rHsRw8FZCryGOSkKzfmS53Y+ftvoeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21002","name":"0.3.1910.21002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a703b529-b703-4190-ba86-cfcd0de81de7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21002","status":"Disconnected","lastStatusChange":"2019-10-21T20:44:23.5973385","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"4106f6db-e62b-43cd-8916-3f6955bc154c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA65iQWyXS6pM9+lFhOX82Up0ikBz8Kbdne+p/1W2GExD8bkHhOCzWrujk8Ndmj9ZWV324EmzPqRmNSwG8YYbLl5/ap1mEa7qQczzqGcu1LZa4q32jXkeJy4VBqZ0sXQv0JzVpM5O4rPaVTTth8u65KmiPKTF0INrV2VeAz6hKxBA87NcSR+o/hbPSFQ28NnHcEelbszjPOBSb6uU9WVBrnPVRY5TPwh76g724bf5f90wCoRJDKoMpMcK7LhMsXOwwUb2xjV8vz3DA16Ict/yk3jqpgm+sCjhmHY2wrRuXwWmNF1XMPd+IN3KhhJka9KM/BbhAUOptaO9nG4d12GWF5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21003","name":"0.3.1910.21003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b4a4bb1-c83e-4d7f-be0c-9126f4e35416","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21003","status":"Disconnected","lastStatusChange":"2019-10-21T21:04:23.866776","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"957a95c9-9cb5-44a2-92b2-5a8f3b13f9af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsV7Kx7RRV3GwothWvZcXQKpYUZaAp42D8KdUNqWluslgLo1VBUpF7CPaCOSCRXx59ftbL1zUuVNTiRcPPwelLyb/fhxvj1tIt8EyuhMv/rStJbHLfkueu2Xr1lr/KCuTvvYLemOgca9xvlA2bsduy+o+kL3gP8QwgL9GU0klUDkx7VvwcXZJcP2FYWekx6tme+Km47O8kULZNSn+Mj69G3SpPYqpeVGDkLVk+XS4aL0hNu5UnkQUuPdHpL9rPIumPeNO288zXCMj5HN98fClB65WMIoyRECda/OsKIe7/Qk9J8cW20Jdl3f13zI4kfCt92+1wRKowJObUBTSP2zCnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458d1lyr_e2etest","name":"fv-az458d1lyr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7bfe31b9-ba9c-4ce2-8f2f-761366b8494c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17006","status":"Disconnected","lastStatusChange":"2019-10-17T18:08:19.4738433","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"62695b8f-cf2d-47b2-81cd-0db5322e63b5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv9QzuOP2si1hhkgSxbrYhGhi63JRl9BSAUG3vdlfKL+R/a0DJhaN6nI6rpXk/ANAmR5duAHTdoDmV3BFmroNH3JA0PlKdkUQj2oqiJYS/lnpdPfXAS7xXJSYK8XIDcJdO5F6mJsoWb+Xh5wHp2z5K0iIV+ssn6AOa4+LrHOAg6RYQHGOYrYDWDLlMI/9ABht++YoBldUlWXrx/1aPkMDwIbkVNcH2FfQ+9xzTZf1pVPdLzbmQ472/XqpZPbkLXAgA6N907+WvngPr946tbVQBpubs3Sb1FG3oTZhrOhFOmJ804y5ktRuO7h5nVwQjCbj90ZEPMmKky8BaYIvyq6OvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21004","name":"0.3.1910.21004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a30c1bb-c465-43c4-b9a2-10d44880067b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21004","status":"Disconnected","lastStatusChange":"2019-10-21T22:46:26.1491738","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"6c561fcc-31a0-429a-a04b-d7b045de7bb9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqD9oVWoY7Xb6Jhre06sRpl2UrOsBgxgjcu8MA3GGL0bs3k8f2I3i0SF9ZPS+30DCbWw6OkAyTnFFCGccU2y4/9R19MYQ9HPFQnlB/W/FsuQl59Zvtip8MtZyaeuOugpjegcdKzjAB6TMr9p4tXzMyLk/xKvuex86wm/NtQxcjVNHRyMD+9aXF9XOJlVk7MN7BAUjHdltBrAG99nxAh1AjX0Z7WvTtlSyHCOacefCfkUuJMnwyeRUlCOLkXf1pi7NFj7f3IONSbZNOpF+NwTwlwq2gj0Rxj4oduwib/L/WHtjHVsrjii2FEOSdfNjD35Zd33yP2JGSItCrSjDKudr5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458d26mo_e2etest","name":"fv-az458d26mo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"35f8bf1e-4efc-48ca-b116-88fb96499025","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07007","status":"Disconnected","lastStatusChange":"2019-08-08T00:17:34.2347971","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"239650b5-4f74-4584-90ad-36714b7dc678","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs8o3cvLy2K4GIXHdvRc1P5vOq64dQEFqR65CZHsLrAHrdeDdlvnNynEBePSCoqvHwXUJTot+5fQjU6SR3giW6zicVHVaQsAZviMMWByR/CpvKjvWA1LKtOf7MPlQl2qCv8YPnSRqZH5T0kb9iES9omqR5P7zeKh0Sp1QuAAop3+KTchFbSpHPLWqQ6wQN/RmoLGnPf/xlFHx+NuhwZfzHKIWXn4XbAn6DPf2YfQmM9ZvwCM9YZbOT+o1KjzBHqoCnPZB0utWX24YqZl139zCYM1qArjUBFLURsJAsRqVk4FIHl3XtAl2KV9jjyo1hlJcGny7m8bqXzOzJ478h0vCOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458d8zht_e2etest","name":"fv-az458d8zht_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"92739081-101b-401e-9149-6f85a587f82c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24006","status":"Disconnected","lastStatusChange":"2019-10-24T22:30:51.5298094","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"9b1fee17-c2dc-4ba8-b17f-ef24011fd12d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsASMoAkyuGFYoA+VGwGuZ0OuMSlOZfxwAkJVKkPaPVXObggVpbJwJTGzAMCqtk7BWAg/K3cGyUvoE1u3bz2SqPGOwRY0DB48VGW4eZuo1FNyIXqdnfyD49RoAqIfRFPd6z75RbnYMGV72EYZr7t2P0AWsbId/uaMLGxJKNvKlC4GL4KxL3sNFnCOkNQ1h35vOZOqXWxWsygLblkio1X20Ijhlx4T5Z4WTtKjN7+mq4SnVyof92U/iAfoDX/QYV9ju6b8rJvQ/uXDQGlb3dJ0rGoU7lvAxATvaKo3hDxBE9nAK///XZiObb6zfY+b2NDb9Ek2Tl17EvQEhXBVhd5TgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21005","name":"0.3.1910.21005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c02906bb-4dbd-41c4-a80c-1c2a2857e8ff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21005","status":"Disconnected","lastStatusChange":"2019-10-21T23:06:26.4058752","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"6add4973-4127-4fdc-aaf0-b3799c57f17a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr4tg6UIL3isfPiczYbVnDRgK0y9QpSiQWdYcqZ89k91DvauTu5mA0azXQqYyPKVfrbO3c/ii1OMpPcGkS45S14XEPXjiKpHpvldAPdg5OIA9lAeyIvyDYOKxrvIVAG7dytMtOK+6yoWeSNXzpV/i3SpepjB+X0FdNyA9214+Yl+XhKuPsxUi9Iht4GT8S9Yat8oVvgbvk6oWbnLPjLHn/dsv1qaKeLOmpa8WQDuyiNmeVwSJzHv4BBjgcsCAYsNRddygL261xx+DyBkeHrh+ETJh7Q20EQpUZWoCNxPth9We+2l9ak4BZgWPqNPYR2mNKzt7nFe+CZItjy5GjQ4TfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458dyu3i_e2etest","name":"fv-az458dyu3i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fcb4884f-02ea-45b9-8127-9e02b094cb4a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22005","status":"Disconnected","lastStatusChange":"2019-08-22T23:26:23.5884354","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"32a72490-837b-484c-806d-f6c3817eb32a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv+MdHXgdd0YDcNraodRar1vLZuW2LelrmMXzQLZxLo5+Zm2hKrGyy+RAZDXgUU0Q28IeATImpSMbd7r+sLQH/gLFc0aJzTmLBVNJmXCl4Q11XT/LUXUyWhKmkZPCTV44sicKuFxFA724ngftiHq8xxNLSjQl4jEuC8TnNJM3Db4tynCpU0Ki5rOAnYQCTzl4E9Ts8i3UrgW12nzykq3WnedQlzTtzrR+HdLjp/6EWsBK2jTlCFqiIXa/TqYVcO8VEbTqdubupk935Ph5Oy56W0s4tyIfROLtSzw4gjnRooRPTlL2kiaNkORg1Vacq7nAj9w/utps9X8v7YjXNy/vYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21006","name":"0.3.1910.21006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5f589c35-6b7c-4d0b-9e38-d0d18ac53c2d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21006","status":"Disconnected","lastStatusChange":"2019-10-21T23:11:26.4971687","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"b1103680-6771-42b3-9d5a-0853fccbb4b2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzSBowtlGyOFbdeCK9/iYdxXRuyOvTOoiyOjuSt/uBGHESubkaJYglO+92y16HVgYjlTgbtA5NqhF1mU1lMcJwdW9gtFV07BU7T8wCl93xwd/LLJ/Jt7mRxY0nAmo9c2PEiKaiAKf2S2sa3GwRvqikO4LfPw3Ikre500blkuqStQAdJdmEjTYl9mlcuf6i9gAUkGDzvNbHzLc+9IGEcdxLjUpppIlQROiSfWUyc0Qz8UYwy0gg5ZA4brP+DnJaD1RwKY0c0nbOaVx1BXtoWpDEHV3/dq4LnELNtF/IRCiVLeEl8vScsjjGM60itWoK+3ieaEvsfPmW7aeNVRadk5ejwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458ftdhm_e2etest","name":"fv-az458ftdhm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a0a5763b-458c-400a-a954-1149783c8ee1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26024","status":"Disconnected","lastStatusChange":"2019-07-26T19:20:51.1908922","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"4c129a28-3c74-4da8-afb8-1a66270657cf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7eGhsg2Val3ADhosIhx9DrzfDRHFFlDPFVVT/nvdW9TdZBrVTlUr5NmE9dyx7rpLC3S2TALer/zhEgxEnaO0Fide+WM99QdVVWxcohW6U5SyF8dXShTsHvqAGiwX+2Xm+hEmBr9ElcBv7jBQBk6Vmy6e1RvT6KM0kkk61kuIZxI94kSyfBl+XAGRrw3Y4l+gd8oQ5yYXLfoBKtRHhvNEq2OUw3DLxJicAIEYN7qdCdTgm9jPJIevzF2mQp/86UIyAPBAKRkLICTbMmeJapZJalng6NWcPwMYENkzqBk7jD3eTa4YMUEHmYcEovn2xoVfQvmJ4BTfCI81lRQ91OPuHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21007","name":"0.3.1910.21007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6f06d4a-74cb-4f48-9993-067ceb5c0653","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21007","status":"Disconnected","lastStatusChange":"2019-10-21T23:16:26.5737799","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"acdbe4ae-5268-4801-8855-def9f37db132","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvsGYgLKwa0c8wZl7PjuDeLN/B2To9thDSRD817LTj1A4FqAB291qWTEa5n2L6rh/nhWE0VT5O0GkFAvzOoZcdrIU6R/bf1IXn5P3X1wFQoAXwkIa9zqTtIVcUlx6Qbycqk91AgNbj7fRFuAgfnXcOm8Kg1gQloeCaQqqrd9kOs5AesbzE1vkZ1opY+wlQN237hnaeKR6+hwODj2PQMJHrnOvcf5cp6KyboTNqRw6WVtd72O7hjy8pbZgQCN36azzy658MoZkxR5dRCKmenhfFCdUsG71Um8mddWByjglXnDiG9RC/oAzHE7gNsdO69uVGLfZb+oO/JpYh8b/msfwqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458hbc74_e2etest","name":"fv-az458hbc74_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"24e160f6-d025-4e76-9322-494623d92aa3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1f3ee259-0288-4ac8-8552-e89e6bd1b00b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq/Bg4gvR91X9Y1Oxf5iYJlhe6y9eCZZJJCNNf720ruwAcWN3CiWuO+MQizX9t4UUiaOqY/tiV8xZo2sBnd+MZ0DlJfc06tAOTdUE8XAuOFOTFy6+8qswGqYAYH179yR9nZP7EYXdxqK+xFlvupl8BBo4SfXvxxevS6eT8mJZaWoH7Yoox09clU1mkBo0fI2jgj35VALcbc4m3b15uR+O+1V+rWm1YdTMNSZCvNqwz5IZ38L4EJ02sV81MkkysAEd8HkFD3X8uALi9TmJqImcLDEsYuCfF79JiBw1ASwQzKYAHuVpyBZg43gwkiJ5A9J4oUohpEZbjcQcYKz2+k0sKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458hf6yj_e2etest","name":"fv-az458hf6yj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a3fde7b1-a6c7-430e-9592-a0c3d271c655","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17001","status":"Disconnected","lastStatusChange":"2019-10-17T15:48:17.9049133","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"553f2094-f9af-4f6e-b850-5ba810508ead","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzjf/HalTMVuEMDcThuazD1mqvjjBp8c9Ef3D4bKQKYroKjcOQc6TwnycRjyklagR2ydUuRub5Cp+sSq8r+ekEba0MH0H1U463H7p6Bx0MLiGDAuXM6sbBIcaCx6O7gcH8c8mi2xGAgA3hgzWfxA88X6xrGo2jkgML7SYbqiGFVNtvd1oTvL6bwm4zliTYj5PYB9JMfIrokDZQsYbnMA1w8wHiK9omsMnUOG0SGTFTNwTprPWXFEmC6ju5IUZUEiBRg1JPQvSjhAJnmCJpC+fm6Zz2VSk9Y09J6NcJoIVXQwg+hxOvDVgSCtg5UFETzPCKucRYXh/tg6WM5iMHi6b8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45693ac4_e2etest","name":"fv-az45693ac4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f8dba0a7-e776-496c-8766-ae0cf761c60c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19002","status":"Disconnected","lastStatusChange":"2019-08-19T19:16:36.688436","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"498eb4f6-931f-4fee-8884-4ae565c5510f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuUBEX9qXGXB8QI+vkQeY+M9E44BqeKJ/VQ7L/1lNMx+Beu3VMXtank7jKRXnvvda4Xkfr8h/rGYHBu7zm24GQw2PpHiwdi1AKKsXlphTXSNuiVbUZDm+QUIuGkmihes4ky71sOVRyCepHxNZTMoxLLvKv2XRJEp/uF+qQl48Dqv8q+UJFzUVAlceeQtE5oggVMUXgOjTB+M5qOcoTYJFfaRcxNUv7kREsK5CY6uKfBeLg9sgEXr2+hWGEqXe6NO5u5uGQmP+jyzMnRn+8gyvQA2RhXrVmXbxolFpGGmU5ajfdcYxFaO1Ib0JdGRlnXeX80gQ2hZCbI+QcxxntmlklQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458iruz4_e2etest","name":"fv-az458iruz4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0dfab48a-1bde-4916-8abd-8adda6098a35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22003","status":"Disconnected","lastStatusChange":"2019-10-22T02:06:27.9678791","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"bf360e31-6005-403f-8e4f-5cfc6ae66604","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1K6sJSgGgYwQSz88brWCmk/im3xyr7+JqCkXC3Qs1m7BshOf1kNuG8RtlGz4PGwIyeqdhaWByulLs6yBklxXWIMgcpAUaj9Du3HoqbU+nzUf00kfSa4kHGFL7IUODkJeX0lRIq3hthKmZNpQs/ld1O/HwWxSmytGTsQcwTTxtq/f/f8S7WdPrB2AjpVpbyegtfFrMld+6BUwbMMdp1I7ZIiMMPCA+CatLweyiXjWdLiGfCw++8z8hxXgpZar9g02iI/huhEujz2GO0tQ9/BivDYAOlXxrtBW0+HJVllUVqQfXt+YYqP1Q+RMFDfW5nfTr/sYaAFqp6Zskjvz8JzGYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21008","name":"0.3.1910.21008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d15bb9d7-aa41-4c3e-9c0a-541b50dfb7ee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21008","status":"Disconnected","lastStatusChange":"2019-10-21T23:31:26.8986901","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"7a96f1b3-a6e5-4b2b-93e3-84cf96f7d532","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyLjDiKtiTLcPRGu2qvKJgidls6r9d2XJly3vEKjYwfAiZNYdUwxBppteH8henscF4jCvYbOWmElAz59wp4pWZGU/QMbmgZXKUnZp+G3Peon8kL7D1p+6c6wMdMdRYLIqtXyNtypobFz34yyDJvZdjiW5msl+EsKJ/3JR5cVm0ZmJgZQEv1swNV4socJpf85zlyCaV4gYk/4XTp5Wpd4Kf0WMrdIBJPplJPFjDv5ltLhRQr7Qhj5irItozHRziqcDVynGooPnZe89zvAiN2wZniF4ZGJZ6A+rxvNVjAX4bnOlEc96rZHcI+f9gKHRLWGL/tREUP1ZeIZhYyNV6sOhXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456943jk_e2etest","name":"fv-az456943jk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f81f23aa-1dcc-4e78-9f16-dbf7e43d311e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30006","status":"Disconnected","lastStatusChange":"2019-09-30T22:41:13.8888292","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"38980374-354c-4975-9d6d-d994dc4d308c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArlPQULBzxzTUghVlda3l//PhkGY5Ruf1WAJoTT2AttsgiHdt2G/9eNUM2KJQ792D66O65xiQfzWqkuDDeNyehr5bUz/Yo3yj7PDYJPhvWxSkGTeHoCPbL2UyeGNKE1cZhIshntFUIK95rNv4qpo+mCCwBSl80VM9El8cOfvIBByEz+nGRSixCjTmWxhtt3MS0Ya0BuapN5Q9D2Dt0r3DttIUM7ElwF7myGhtcs2QL8TM1ZbQETylI1Tv4jPMRqi2SX3phC2H5Y1fxXT7bxRfspIeJ3VWWeLCKo2/f10C3UDgUsU8k43bdtXxcbDcWMHE1vEx+PLomqHJf6PYLhlT3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458iv14t_e2etest","name":"fv-az458iv14t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a27dec14-9e70-4238-b858-364c8d228a93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"98f8d531-cfbb-4d14-8ddd-55f6ccacf6d9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3TLTN3MR6PLCVuotAbIo2AObrsNa+MZzR2qf78Y2xBRKKL1lzsE6hBKHSq4QimjDlMo1uJE5FGmbR4GMlWeFWElQnCFsZOy3iz8g9E64nT0+i+2btWCSXZfCr8+0zlY8UUMvbiotH/X6u24p5xad91k8CfL9vFSHZXmbQfiq46xyvT4Zk2aD8w9EymJe4VGUP7gOlZ20NnzmIWSn735MBmhhxgohMX6y5vuqb0+mwUDVF+sz+ygR+3CItzSZjiEGZSiXursHugNUXcMP+pEdy+hPKzSjIlNcDAgiEqBqe03GcMpnZ/RQYncJSaXA2di83goUBxtzUhqH1Wmq2HAKaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21009","name":"0.3.1910.21009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a86ecace-d176-44cc-b54c-866c2012811b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21009","status":"Disconnected","lastStatusChange":"2019-10-21T23:56:27.1296364","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"86c46a1d-e397-4c01-8c78-007a048c62c3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3e6NOqZ5aASrT/fkWXORO0s+np9ejZ5GwRe6nYDBMfrL3P2KEwHEoYi/exqsUeL1SiTMt7HxdQpdANJpKLTg/yZt2o2MEMmJ8JwSoZO7b5e5lxJ4dWBP6NaEyuvE4kLECl2mYEWm3mvyn2CzVPvAWyvqy7YBLIAC17c/ygn10V9bvYBXJ6FG+v9xVl7fETAoSwCuBPCaHQc87WrcY/Z8NZ+7Da/g1NGfMZu4TtqEvkoGu4Q90Hzsj5ahPienlG3EKEqCUVRSZd0uj3VZ8qbGWPSdUWE1dgvHromiXIzcfLyr1lksKzQhu5fpDY0d2gS0SUIHF1TwQ1XCQanAh4Fv0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45694we5_e2etest","name":"fv-az45694we5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ad160d1-a115-47ce-b0b9-d983e00e086d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24007","status":"Disconnected","lastStatusChange":"2019-07-24T20:35:35.386752","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"78220ba5-f921-47f8-ac7a-427e32e31668","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0/oFzlnMDN6cDyzpGGenhyIH9vtO9hdx2ZOpOj4JWXWRxlNogD/E3qedXak13SBjqarsTlu/9QWXMAXT6paWHnzxLA1o1U8madzoZgp+gc8Or9RhlH4PODVfm7gu7upRw4znGneRJMZHgE6qRrO3Ttg6WHj3Q9UUu5lw3vFiYhBw6Fa/5Um2x9mEj3/OgqhXQdxCJMXGHqdcZ2zXLL2RNdQBxDjEh+hgDvpy4TW4sA6OCYXOCSQqS3qBW1/MtXXxkHLleTUbENmlrcWt8GMowXROq+JkHmziW6CDvCDLdsp0APOuk03Yqyw3YD80awfDdZvo5y1xkqXeC+MlOBP+UQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22001","name":"0.3.1910.22001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2d2426ed-bc5a-4b78-8173-cf4dfee93e30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22001","status":"Disconnected","lastStatusChange":"2019-10-22T01:51:27.8141881","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"4dc9cd53-0525-4964-9983-d0ceb7bd583a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxhRF0lj+r2nSA+P1mWCOMAPA4Z+LZEmWg/T4EdG2XL6XGgt4Uo/0H6EhUIZ899+kdNng9Op9Xp0+VB63FlPQNooo1t0n8czpVfwC7VkJmbfQvBT/TlE0uD1ySfp809qGp/PbpxiMMGBN04rlKUtt2cc72cOGUud0IJSpcdvRMBjCbBuVSyVG1bB3Ph60XAQjh67EGSiZ31myUYCaqxfV2CnwxVBZq/9R2ilrqHjz1DGydzSF9q8lo5bXYFdDH8CmSZpJWA4UzijQ9dnsoWei03f5bBqwvG3W/Nv+nCDZuK9HW6ea2sPiqWCazPI2L+VjV5g/V5V7WgYNPM/Nqa0ihwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569cuqz_e2etest","name":"fv-az4569cuqz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"73efb726-3dd3-4b0f-900a-f427014ca9c3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17009","status":"Disconnected","lastStatusChange":"2019-09-17T23:34:36.3348574","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"0ed20624-3069-4651-ba71-e1b99eff777d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxC8W/nKoewTFxMs0r0oqXBP7/BaPSe3zA5vphBTFLj/U31hHJahuybp5Wy1haG4i/Kca5yZIi12jER698ptVMJcBkMS+YF699DD7ZbsMkbAEJ15VUTexZXcBSEHtbvM0TojDJrpXJ8SyXV8hyts39MCQS67cKllrSR2DuLVNUPu1qVDoJ4uPVQHFTnZkd6rZQltVaZPahb+ZJ6Yf1s6U9Dt6RqeQEDJRAjDuc+RZTyGsCjUzxxgIo5dqVdFR75s5Qr57s1FG3k/+ZTMu+5X2rrG1lLpc4PLhQ4CZqWuKA4l13mGuVF3Atxl7B3EIq5gIcmQcPHZb+SIRr3Xk+gvA2wIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEuhAAkSqVh4u2Wm2KQMhUh8JmZAR4lKgSdqq%2b%2b1rSB%2bKRvjYPnPssT%2bUWlyHv7Iue2X5oQSQbNOEBClEylI5DUPbL3W9yuqsEJWoh1n2%2ftqJWd5Uev%2b67%2fNOtoNs6l7fz4VlW06uHRduplkLO9cc23I1QY5u7uQH87A39LZrzvIgul5%2flHnX9M1xmP1523fy4DVV%2bzoIrJSfZC3631krtTMyUfyeGHeuZjiaQbS2E2cpLj9%2f9KVst00p6nt1TlWbqoQMo4tWNWH8ExozH%2fG%2fKxQbeMzEu2nnG8ng9qkmJn2VmPEWSXcLRNvYm6BhoMOSHTooY7LgCdFiPjdHUhiNJChWTD6fXmDDCEQoEx6vWBEgpwxkAF5EKY8w7KbpmMWcFWJbCEL7ljn2qX9GdxGCeWPc4ubthvk28V0nKWAFYAHaCOACkIIHKwtWl3B8SYK9ALCA7l7oGlacAmsKxguG0fAhhnIABthY8rADGoMB4VOzkbSABu%2bdR82AUxZz4Ix7RUIDWHtQAuMMimDtNVuE3ti5871PFwMBVkCDb8Dph2x6p084CmDFSR5OiHnAAUpPgP8M08TJL1xPl9WF%2bFrWtL1Kft%2fdxKkynOnXOkOcHFFtfzxzX%2fn8%2fA8%3d"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1k0ndp_e2etest","name":"George2-Win12-1k0ndp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9af583ec-f7e3-44d6-a42b-db772729ab08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.001","status":"Expired","lastStatusChange":"2020-08-16T22:17:00.4329057","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ada8e183-7a7a-45d9-9651-0ade5865e7c3","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAzvG/yGFmymvNqrCOq0ginQ8y2I+77bKDfCERCLCIrJUSqmpCa/V+ZKVrfJQV30bD2S7vv0hJcRxPrFjaazlgZx5IzrEy9xqSj60o0Aiqrmn5ox41YMMmlkav4iDYE+sazV9avKEB8ruwEqNBbs4a6NqZMc91p31IR0O3ocq9EPUmjYuwGCLbgW5pLtQhuxjpXn6Wco1UBzlPD749YzDXYMgkTTAGwGI+lMx2R1l7T7zlKMpFYxtNh5zSoIUV5KNrufZ4hM5t4fLKmhhvZBKSEBJJFpRuKV1W5sJkBXr4w1k7bBOUO6Z1bn9ZAqc8D/2xbkZAO+KNcO9Msu37yynaPQIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.001","name":"0.8.20140.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6299b1e2-b378-4e49-b638-94b4694b1872","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.001","status":"Expired","lastStatusChange":"2020-08-17T10:18:28.4448556","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"9e690952-3d61-466d-8275-6901d4a7de61","vmUuid":"BF68C3BF-9F20-954A-8C5F-FF9D03FA0EA6","clientPublicKey":"MIIBCgKCAQEArlMKwByYfY9yukums56AhwnRoxcDI+dJxIhx2Es6/Q5gh/vm0WocHw+TcYigvneXUKUiTEYh14/XUl1BedUvFVIHAmDJ2KkuNjnmdbuaP0d2QeLyyudhQFVTtpjhDPmRUyewp0l5rjw71u+HBQk1fskim2mT3kvR4MNgV1kRtPQoRgsK46Z3dswy2msz9QpSfqMuADgwMWQp4B+T/o6opmymWufMLcJGmh7zCUaTgq+wMIlKyX8Bv91e3H9VYA2akT2BkbXPeeW7S5NsHRzeFsSVwMPuthynji1ZJKqeVQfRhSPZkwV888UXpfl3IduGwz7DtgKcM6nb7PJDN2H9LQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.5yxfznrddh3uvbucdxho4rdzrf.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_CENTOS8","name":"0.8.20140.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"adac39f4-6566-4e32-9190-33c7efc0e6a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"513bdf83-4e26-475c-ad24-eb72c442a9c2","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA5o65YqhfYpPDR+1NxYqbI0rmYzd3tZUtnQD7wMGfcc4O76B3WmqgXg15+TQw9I9M1DJ7wWlLmv4m+w8pyHxrlf28ERDz/ctqhWCOOC/E0DwqdjbAX1SH/ZmaQyB3TZm6r3WAQWp/n14w5pqMmWwF65AuXKZDW1H9elOEWXjp/7xI2zaTGYt8FwkRe/tKBsgh/U/UN7Jrp0ine9zNYstBhs4tBwl0W+RuSoNj7W2wg5C8aMs788k3uKIPbRSmbAyGjzwySIVWTSkS3wOnQoTLbHE83xmX/OHC3Gvcquc5GGGkpuILgow9mpnG+fy5x7Q9jvFicfbuADKzUSsiXnbofQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1t32oq_e2etest","name":"George2-Cent7-1t32oq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a080dda5-dcb3-43d3-afaf-7350516cf025","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f381838b-3899-4476-9296-2874d828a561","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA4i/1Tgb6/gsm4AKk2yIe5kHa5ayMiL/DIqH7pjXiirHKin4pG+xPD/tTLc9GKUgrZyjNr+36k9GThd5urfMRdoxtOPfc9XVRM170n73rPtdVXqMNsPFTDPa3l7Fw+m3txMZ+bE/8ijGsKVlkrRJjSaPyPhSeW8bSgnF2SHvUdRTT+atJ8R1mLxdr12aJajIznaRHmOccI69KHp0EHS3SIxEEhQZIoqDpOsuiuGma6DgrgVhJAuJ4KA1d3KpZax3v0tX2EEExQF3MxCAtFPneecJ0TPvvTDa1V5AYvjGhZUB1Rz22I0dY9Fdjyca+JQyPP1tZUOkLJx0QpSlhSVjtmwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_RHEL7","name":"0.8.20140.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e5781f00-049f-4946-9488-842e7b5ec34e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"14c96ff1-93e7-48e6-8059-1120a8015056","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEA6s2tsjY7qtteIryUJFnSDN+2WVCGQzCtA9Q1jl9jPmwK6W8j5wzswofBOriFAMDa6BloT3EBxg2t3HJzlAyUGELX52UUNn+fVqBhOscsAQ0erfELQjSD9ctFsCTD9WxoUncEqKqG0sOI7jtz9Sb6CTLXO/pnHWsfnGzUUCXc/IH/8t0681X0eyS+hb/LSYIw08uBjrw5cpp6m7ZcEQaiFhh+0X5D/oObhBTQM4m4dmevrrBP30OBpZORJfPss6cjdeZj1iX9pIFq0j/f5cFdSBYgKjCuMMtgb78vTV+cpdoxt9L6nYnGFik9RxXGhG//K5W1KyKM2K+xgFwHqtlnIQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_SLES15","name":"0.8.20140.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5f1a7087-0288-4181-ad2c-eaaddde4aa23","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"ee3ac381-fcf9-42b3-bcca-6d12e5f2479b","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAw/7lJl3YtNNLwm10o9CzqSIqA4eSdLBnPPw9ej0oLWHrXlzcdqIFCAhHCryiaNv/rUkbRUuzSEVVeYjo9EgEo0IAk/Qx3U+tRzJg2yW4dqxgJVsFZAxpqaCkHfmEeJ0Q0KmcBBERNYDsd91KS60ozFrrhCAAnSXIQLWRwh6vhDowGc3PKW+PHvqqd1Xrl+/q85cr5UyrsjycB4XWEfUaiCvCqSqA8ut3S+uk200lYN49SUDCu2iyVQI6nZ5ZFlXEkSJxlsOTqbxB+oGNflEnZCuei9dvQmYdIPRwQo9h/5qsNAFt9SpK18nDwEkkUTod03ZhC7hTpdY6tN4q5ChONQIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002_AMAZON2","name":"0.8.20140.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28a5d616-75ef-4091-a29d-fd7547b225f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"ip-172-31-15-69.us-east-2.compute.internal","machineFqdn":"ip-172-31-15-69.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.173-137.229.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-15-69.us-east-2.compute.internal"},"vmId":"25dd43ba-7a2b-4083-915b-12765d3151c5","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA5P26pSA0dU48njsFoq8994dRy1+BbzTvqK49z7MAUcGT0gd8BKEIiSuNPbSH3lFgD+a/XOZ7rrllGkfxq385sDm+JT42Z5W9O9lwppHJT9BcKwW16abh/6sWjWEtKVZUTks1+M3SOVJmOkrfMldIKjrnErqiOgKB8iuBO/+c2nSshwsB64AnUaHv1Osrwzi3W/jTNdfyHMjxMPCefaouVsED07ltEuQvezyrFk9rcfDkC2j4fGcGc1LxlcHHloSJFknQ+BqmmCNAuoFkXNcqdo3kQyM2iWawvYhgxAnTr5phr/TlsZpac1ouw4n7CGhpcXjf4mf9ZF4676YPWu3k7QIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-15-69.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-RHEL7-19ev1y_e2etest","name":"George2-RHEL7-19ev1y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c102d797-4195-4ff2-949b-b6b20ec9d4e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"de7e76c7-9890-449f-bff8-93b44f773491","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAzWE6KFlQsdvurxOTwh391b/s0as8b9OcLut0T77308e46fgj9T60ik2QEK118d744aukIqkD1SwtktLQ93iAgqftCDkd2tZu4Cmkf2HkZCL/B0947Gb7QrkkusTsdpFo27SnGoHGy7jPNiK/hYsrKTKbzMs4YvzzuwVlw0bYoXA2io8XIsIrLZ+nM0fnBYRir9bVLQoal6t9EZbO+mLTzIRHjPhq1v3d6xm2In+odPUUokygAAP3l9TP5oLQXNEEu2TmI0CHX0g/cb5l9qBBK73KMCkwM57GWwOCbVUA8MgSOBbxttq5A2xviSh7q1PfFfp6kM8iVBMOOln2v/f2SwIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-SLES15-1uo6sa_e2etest","name":"George2-SLES15-1uo6sa_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bc0bc5ab-da3c-4e3d-bac8-00b5d72ccdaa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f9364b3d-1910-4595-a8f9-f33923825ca5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAxRoJnlxP6L5lt5NBeZSj2U14fLlUe6qo3GWpi9PMIdhSYMJxsAd6c6uvaI0eFFSCdpEq2cx9iJ55uAy+uBBXZoYXYU5Af+Cge8VXozfa0g0LdtFNepTz8Hc3eWqI7Qp/W22YhqYLyc64g8dbHkwej38w/bLrrBRKUbLD2HTsd0pGOYWSyiq5bbsqHPAw4WCNkSgLqKgURGhVGQwNn4toBBZ1spR8KC/1/E17CDjfvl5pWFiUkDioasmA/QSYO6tQM5X2/pPNoaZU0y7NtrPK8F/ynfB8OUovPB+9qPIjk7bHzjuV6L48DJ77RU7Q8b63L9NSNx5Z2SkZitaYE5xs6wIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-15-69.us-east-2.compute.interna5yf91_e2etest","name":"ip-172-31-15-69.us-east-2.compute.interna5yf91_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06f6d30f-b980-413f-a230-359ce41c8343","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"ip-172-31-15-69.us-east-2.compute.internal","machineFqdn":"ip-172-31-15-69.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.173-137.229.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-15-69.us-east-2.compute.internal"},"vmId":"74ca4003-8a0e-4b86-a9dc-9dec43a1a204","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAyfk6lJ9gU0VcGLtDYaVH/VO7K1aNM51t00uqhv/2z4+0i1vqY+INIjxCk7VZGesqvbYOUGbMr/WPgkM9biFhWF0H6oIqdKr6eC3q5bDC2N9hbKLmffBAEcBsW7rxEqBPmVRkYuuTzFsn1Bz8D3bzGe9SU9+SEywhcRFMQp5SUN+5DCNP2PlXmAj4YZS23iJ5EZqJEYDz/8E7rUDQoA51ywiKAqnW3aSuBxX239kwBDaZJye+HL+/pUTAzCXZNREnzKYcUyKUiEjJsJAYrs86cnAkQHJB/QzrhUNO13hdqys+0kV8eqG/HVzO04Kzw9LDvMn72PkCYM3chpO/yRhNzwIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-15-69.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.002","name":"0.8.20140.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7c026309-838b-4e67-8b8f-43ecb4a67209","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.002","status":"Expired","lastStatusChange":"2020-08-17T22:18:31.4780154","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a52b6628-7d4e-4d7c-aa4e-59656f99d064","vmUuid":"F8A8F6EF-DEBD-5D49-8966-80ACC10E83D6","clientPublicKey":"MIIBCgKCAQEAqclXUZ4hRa+khiXjHlzaD6clTV6UFqrKIEXiCFxvKRcb62aBJ1VBWMebHmU8UTQVU18pZxiprUC4q2/N1paDWWsBsvxnOaqJt8QizB36kbfa5B+uCNFywfeavnkkDAhGAeZekmoEr87iuT7qqVfgCKPPRly8jJ7xJcHs1abc6cafcVYma/kMzWeAhfg5Q5pjwIRTB9Atauhis3XBaBhXjKs4H4qqlELx+NqY+QNb4iPg9Kl9eNQjRC6KuTiV6YpCpmQ5VTs3edEqJLcCj9aJN+owpNVcjSpREshE6CVFMhxi5xI/oFijceHW601T53iKWoryNGtebVrB2wvsU6qwlQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.thhlmbu1ob2ebewt0i4sncldfa.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20140.003","name":"0.8.20140.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e352821-4ffa-4753-98f1-17e06759f546","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20140.003","status":"Expired","lastStatusChange":"2020-08-18T10:19:01.4422383","errorDetails":[],"displayName":"fv-az105","machineFqdn":"fv-az105","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az105"},"vmId":"b91a3b29-5fcf-4e97-8d20-dc4bc2e0bfe0","vmUuid":"9BB8A5BF-3BA5-A346-A817-DD60EB2E2578","clientPublicKey":"MIIBCgKCAQEAx1IvbwLvSIgAQMBJlGATvL4HpiSeSWVuI0818qEiblHbmf1Q3H1Nx58H46VOYpLMPQBGR6+54DIwEv705PVLqsafA/EFXBq1eTR563XP3fkmKYuPoISlP8ykLRhvqQydG6UHI6/Iq+1FJllbhsE+Cdv1itgpm/N6NItrqbyb1pmm1eRLyF7PGEgofaFc+fsmVNIbuRsUyqRwi5OgqmTFi1yBCsmL4UZZyX/HbNxFRtXXhRaoYyvSvkhE25tkE6gpX7Xm6k0Oqx+DWMxyAb3dHs2gXXUT0pU8kt8xYXv2pT9LJQ8Dvg2a4x53t34x5TI0724HJGXZZbIYxa9utn6dGwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az105.rnz4jkk22bvu3pm3k1ir0agftd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1lx8jt_e2etest","name":"George2-Win12-1lx8jt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98bc28d9-8799-4cfe-9760-e303c6881e85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"e5ef3f2f-b8c1-43ac-bfdb-13d30ce89da0","clientPublicKey":"MIIBCgKCAQEA9cVOp9Fi08H/OHwq2YTP8Ci+Gix1h63wCzhIF67RIWqfoF2dtxtMKgqj7ij4KeuPIIAgHMQvOQw28OwDCXNL1tYO4CaIZvN5exEiIXot+8wv/vYU5xSO1Ks1iKh15eItvSC2KYKfdzHJnrj5Aesrm8im4r62zgcOKKtPJacekzyLFSKkNUXXI4fb/Pl5tSi32VVgyN2KwZ2Plm+s9NfLN42ikG4FKluRvrvpx1o9lGR+cSoOTT2kv77H2EFwc3/dAFC2R7RoAr9LNJj3SE5C99BaEz8Xf99O2S59R5VYnCIQn9tqMoYpy5DOyJ8CMdPR5RM0+vXxYijYuCgWusSGHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.001","name":"0.8.20148.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ef3e997c-77de-41e4-bfc1-f334073e3bb2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"osName":"linux","osProfile":{},"vmId":"4606313c-916a-4bf4-9bd2-f8dd248d192a","clientPublicKey":"MIIBCgKCAQEAwy3qgi9ZMqwqvwuKdf24MQZnJrwCU1PC5Rf5wJf77O4SvgJVU9uRMf8o2hGVTsxfahhY9E6U+MpZ1lo+fB4nd2YUNAfaWAI+JEKnG3bHgvbR9bzk7jANulo3Kh27NituCy7yZ0QuSaMOyZ/yT6jlBgzopFXml74EzhO8tHmbczS/htCYuZDjFMfh+dn+4LS0/SVoWNPJmGAfhtZ/0Ry8Ip9RFm+2ZKKyaEajGr5BEUbY2bCRgwkNlhXoe9qWo3cQlckSqkM30/e3TQs9lO4zMSPIFgj42opmFOqdqZclfemt7NwPEa0Bv2CvHsEa9GrBpmTUkNuVuw1GKfpR3AUNMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.003","name":"0.8.20148.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bcbd5832-4375-497a-8e20-66a4b98ca69c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"osName":"linux","osProfile":{},"vmId":"c606723b-dcd9-43af-afc1-13374f053586","clientPublicKey":"MIIBCgKCAQEAt8ruwEmH+js1G9TmPNiLWgCf+llxPLhNqe2neOqr98znYR8p0HlZCDs8XHKJsLTQlDJAZN/ib8Ffxm9s7UfQLbLMmMVugbK+sr8HTY9p/8CeKn3uo5RB9Sp9yUVcnCw9kM6FqWv52WtVPeKgEff4ULpISNoJKu5aMokHdnslB6wOHVXrKk2PnRGavThwbqzNU5GSt1D45xrRgSG+xutQjC7y/i/WTHO9Bj59UfvgpGKt59ENNUQjdpfUlDb2VRPS2opDUBLYQkwt8gJZ5wJAJDxrcOdWDdkJ8zNSwhKx+GNf+brULNED3iKbHJJmsF5CtzIDzQeh5VAUNCIzFWJW+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.004","name":"0.8.20148.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2864a917-e05f-43c8-ab2b-e1625e3529d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.004","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az506"},"vmId":"c0a48d1d-d524-443b-bf17-df41bb3a7ac5","vmUuid":"19640E3B-13A0-E940-93B1-5657D539A9E7","clientPublicKey":"MIIBCgKCAQEA4b+53CyXnsAVgQKuDICShS8NjohjNSlECFgcuyVxhh47Vp3sjgWnJXyobG/VWvlVuFXZLg9ou3RWBoHM48uh8VxaGJitaRL2z0S2AWGFVLAyEuyCrgcqO8GZgyV6ayMuvayUc9W01pgO5fpT9Wj0lOXmaxxFcYtC5+PyPzeAH8mc7f3gyKEXYeeGPN1VzwA47B3A7UqIPrjMXtQhF5drRkelLpH+IT207/Vq4EFv6V2mktZp8Ke0pZ2Y4wBWl6IcSOXmFz4f5jNlPPnbe1fS5yZEWxabkt66YooDmvUf52yQPbH3kyFhOIHOZu45AxEN7BUJPqTy2ZUO/EpT9MPqgwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az506.vdlmqd52r0eupcr0gz2ffh33ue.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.005","name":"0.8.20148.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3b84e9ca-8221-40d0-90c1-d83d520dd521","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.005","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"d71bc733-5e1e-48bd-95ca-4741f927b929","vmUuid":"2C6CDDAD-CEE7-C740-A30E-A74EEB6556F9","clientPublicKey":"MIIBCgKCAQEApzFkZTE/w1+t+Mn9/kRAK65bo/FTpw1X9XiWPBc1WPNqOG0zple8LJYEUzGTa1dPt69RGr3ClWPQOI7DX9MHJWZGCyBuH+ykxVbSNp7Q0pSXPxqJdVjlSiQsBE4a88GMdFzLXEywyZbACUSliKr/24frRrPHwXwL1sz4Uvn7+J7SAHBOTijGZ5prvMkSM8qwaCJSIMe+yHTxbIUn2rePvkKwQzNQNmLIlUi58kQHBx2/45alBMfYPkeLo148R2SpvBeb//dnG6x4TcATq6zI0OqjHo/ahWHMQJFfDhskS2AZefe1RLty5fW41kMyxATiNbRv+8cIpa4JoKl9D124OwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.bsc2sesxfc1udoljni5ygnmrzd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.006","name":"0.8.20148.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca854e25-862f-43ff-afc8-d9ffc9b6ce2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.006","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az508"},"vmId":"ecf0a6ac-8186-4b59-aa63-e8dd9ad48c61","vmUuid":"4326A456-82D4-1A48-B7FD-B96AE29C93A0","clientPublicKey":"MIIBCgKCAQEArP+Z1j7BgQDG0jZmt5ZdQE60Cvmf0nKSR+exsI4VYZRZldUVjSNtXcGO/X8fWZTcf1ZMlhiPg8B9binT35o/+eyVnE0VwAEGPfHHCuKLzFbj3D9iRBMfWAEEPeZoNidqnAnP0oy1Jokw29cDmST2rW7th09N4xKfto4mt2vF3mKrhnMp5adcNM3X6b3MveWbH8uyCImw66PsHJ3KxWO1jSle+FMdx3XHJKDfox2rxtaLjYtOuUVkZnroMD37U6pDXlFc2xM+/6hYtCX3zenGLjLx8UQS611DOqbTPtPxGdsPizalnX/jVdnoEV6NWfSHHDTcGeUZSsiuDLq0cPWlkwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az508.xbcc0agzd1judjqpxfw4hfj30a.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.007","name":"0.8.20148.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9c4ec52-cab1-4b31-9466-bd62edad41e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.007","status":"Expired","lastStatusChange":"2020-08-25T20:33:12.5345097","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"41fd1b24-db7d-4138-929d-0b7fc28c8e94","vmUuid":"356FB4A6-2E9D-4E46-963B-D721A0C23BD2","clientPublicKey":"MIIBCgKCAQEAz9FvOqxkiELDP2T2+UvhibuCDYoKXhb5zzAYn7gYhy40+KDAUzxjBLQ4islxhFUqvmP+S6JYsYxiBfhC3ckfGMaGJgxhbW0uH7LksUke+R0sukvGk2MYzFB/IpNfTqEyJaGdrKRAI7t0rhJOPvUmNopefUfCLVvKmpxJ0qD10QSsnLdtBMTdUPh02o9f/V9JhqJ59OMzwbLv0EyqCGraLAgfQ/c7ZVM4F3++O4Ouei30D9tDOdBiKGEFwtHr3QDTV492VosC0PY0wO5j25yT8utr8xryyibTqorXZOiA6sO1rGnFQGyInZhwePc7wuG8b1r0LsNqPHXcRZmxcUoiWwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.cum3dcti4t1u3kgngbyia53dcc.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.008","name":"0.8.20148.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2fa7db69-5205-4797-93be-2d5e15ae9bc9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.008","status":"Expired","lastStatusChange":"2020-08-26T08:33:35.3536928","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"a9384e7b-7d4c-4cd4-af88-be5af3ff1bde","vmUuid":"D4D13576-EA82-2245-8EE8-52986B136C6A","clientPublicKey":"MIIBCgKCAQEA18zyfJaYjif7tixS2agsnM/CnT6Y6yuxrnvWIvwBcETZIbCjWd4E7Hk6U4qqNhLY9rFgrKyO8fn0I9dzvkd0p6GyxJ5CE0cCGRNli4ZhzkCvq82apNufHg9Qo9lttH3z5DWzdfpsPF2eRXSgS9jdUrXIeKaQqnsjske6JNxWD31s79Pkk/kHHIs4VJL2aCoHCi1lpQw7VoBfaW82n2MiB4VbO1wcFsfY159pAnCka1g6O7Dfd0XXI2Rfdp6hndHVGMxlE8fRnKpYB57ZFnUJpxKuEBttJAd7m+BrxiVOpDRv4NrdkIP7Wm5YHiLG01l8enFZ8Mz9kujMgabU3dIi4QIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.p2e3fkk4edoehny4pbfwpj3lke.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20148.009","name":"0.8.20148.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c7c655d1-c0a0-40da-87c9-2254b24c7673","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20148.009","status":"Expired","lastStatusChange":"2020-08-26T08:33:35.3536928","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"ff1a1c20-9e8c-4802-9479-4a7cb6063e60","vmUuid":"3EC110FC-328F-744C-A78D-380843F7A42E","clientPublicKey":"MIIBCgKCAQEAquEBvgmrw1o7KtdL77HIs8tOdKbCJI0d+N3BCc0rlri3Hyhk9CnH38oHcHb0Vc/VqineMF1LAyoVILU6nNTAqAcnxcA2E7MJqu8VKm+9Zo3RepowetK7eSdFruZkJd16tsO8I6qvYqnYY1rVnYvPcrkfjPDJw3iUWavO31nH1vEkPJ7fLf5iYwA7L3haWRJKY7GtQeNO3hRMM+3qIewZO4G4mciVRmjp2WGsLi22SsLpmYMKozdNOc2RqjYpITTk2xsOqrxgQI1rq3IVVW+ZMGq4YGi92CL7NgIc0oh2GikdGCnf659XCKnLERVWiNP5HTXOhumh/HSg7pE1HrLsswIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.qdwxe10fqyneldbloddyfm1u4f.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20150.002","name":"0.8.20150.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1acfcd8c-10c6-4552-b8b5-4fd023eafd2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20150.002","status":"Expired","lastStatusChange":"2020-08-28T18:28:35.6664975","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az601"},"vmId":"5f97ab40-0294-4a99-a29e-552cad866adb","vmUuid":"921C9F14-EE10-D54A-AE3D-5DEB5501237C","clientPublicKey":"MIIBCgKCAQEAsTe/0XTecL2F0lleF+vgDfRvCv2envHBvutXajvx8aMpg3KJdt9Lzdz/OBdi/1S4U0N/KNKVVi0aZ7FpFkBlCh00lrEeNuaXuGIf/4IwJhUW9SntVkOZSVV8IL8rzd4IERKyfVUOBnkwFCZSC3cETgCl8YoAwALzIWjDuBbsg3QjHkTz77ZyEsz0sp7Gcn4Y7DXZlVbb8Xa884JPykKPzpB4YILzFq5qL3xGmL+ug50U91gA1c9SBsfIYdRTaQ5ESj3WLYNfs90SRXwH0GQnbsOXWH8IL0PWyI1ajznDlq81GCy+y/lEquMFTDAJ+s/nRTuuT/vRIZXOKMzjL78WEwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.ducyatw32tcezdgw54qaeevh2h.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-T071065R1ARwb68h_e2etest","name":"WIN-T071065R1ARwb68h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1983cd93-c56a-4e75-b8cc-023ff8ca87a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.010","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"WIN-T071065R1AR","machineFqdn":"WIN-T071065R1AR","osName":"windows","osVersion":"10.0.14393.3686","osProfile":{"computerName":"WIN-T071065R1AR"},"vmId":"5c8b5d4c-2a8a-4e09-a6ff-d8ebe21f7e19","vmUuid":"99B40FA0-9426-4410-832D-9C88A85B0C13","clientPublicKey":"MIIBCgKCAQEAw/8PFKw/4Jnkdyeoyl+4C4sOyjXi8uQNnKhEyyLbKPX0j+uzjgQxw6m3lQ0KCnPcpNP0lTBTKelLF040q+T7Ki4U3GziQhjvuDy+5WLW63aQ+Pl3khXAFcp/naonyDNPGkVQ9PWknk4PgMquo4CmeRKkCP/36TU2Hk9baEQ4Y5R+3O9F5QKBW4iNARKY/QEErqdo7szHIBgcLmnqmPCyJ1GmI6+5PSJNyNn5bWhIC9yyz/73V23eEa5zxHsrHpJMjcxJRniy60qEzQySdR2YbOMcxsvXOyvfmgKkW3kwgcSU6dZ8DeqIwmmxpWXZegqZuUCML3r6DQZ4MfLWUck60wIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-T071065R1AR","dnsFqdn":"WIN-T071065R1AR"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599yrca5_e2etest","name":"fv-az599yrca5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ec39e5f-17f8-4ed8-9a87-1880a065c8b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.005","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"90f1936f-2d6b-4594-b948-6a76ca1bd1bf","vmUuid":"5A4B9B10-38A5-D547-9869-9A1F979E92F1","clientPublicKey":"MIIBCgKCAQEAtmn9rSmAItreckS438R7DfeNwAeAm74GqV+qVy+zAOBiz08U8HY5g61ZPYzw61iRpKGLwruefPozWf6WZOvR+ohh2HzzxHhKbe6JlSs5slApzIFC7OPiXdx5ycDgrPakbQwh0zGrtG9TNj5SQFGTz2z6rXwOIsSZ7h5oU2gPOGfn4IBV5TEX9Ekxhg/JIk32lTez0DcEIselmATZdMtnvvTjH5x2vO8ujCJ5psN7roBX09gG6+wb6E8pB0fyitS+JhM1zh1/QMMmeFPsN372Lrbtz/uycylS1HfWygeqUBsat2XUJZ5Me25ZFRguRlU1juxfVnpR74KGsESuUZ9RFQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.b5zgbhi0iuxudlar0by5ovazsd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az623y82hw_e2etest","name":"fv-az623y82hw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"971d02a8-f33f-49f7-9e8e-c8e7eaa693b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.007","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"f8656980-cfed-4b7f-a1e5-92e0fd315115","vmUuid":"62182673-41F0-F544-8782-468AFAC14412","clientPublicKey":"MIIBCgKCAQEAxjgKREGVmgtg/JtEi+Gz2nNj9Ka9rzI4uKnJl4c2WLF/hYuyL4pul6NwZAIzZSJ3JdGqbHGBD8aibaEAlfrgtXVc3tg0cmn8fKHulaN9I0jnlCSoPwy82ua/4CkCe1AvK2L6RPcPPcvznh5PYrqaRl3x7D0u5n/AD3Emgv05qIo+L14HOqMkQSucSwy4YRTimfjVTwUi9IeZFdT9u9q5Z7vxkTtrjPE+Syad0tq7q9IFUj6gWv12s9iNORPEO1EMTjh4f96DdCBFyhFMQpwCvQFFw1vj6A+CHRnNcfqKyFvOFBt3RPj8j/7CePqeO1O/aaOUSQJCakDQ/idFESbrPQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.cg1cu1z2oi2ubdftnevakm22qa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-T071065R1ARqtj8l_e2etest","name":"WIN-T071065R1ARqtj8l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7044ef14-9fb8-4e3a-928b-0f20cb1773b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20153.012","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"WIN-T071065R1AR","machineFqdn":"WIN-T071065R1AR","osName":"windows","osVersion":"10.0.14393.3686","osProfile":{"computerName":"WIN-T071065R1AR"},"vmId":"c928106d-27b3-434c-9593-f1abe6035eef","vmUuid":"7FA963F3-4A82-4943-AAA2-0ABEAC933EDB","clientPublicKey":"MIIBCgKCAQEAl/e4BxZTGoO0hxbsDJD+lHY0TEuc8No2QyQeImSGtuNbxRADqMRWh7dzDf2HBlRNhuFPCP4NaaUU2nP7zNfLw2oUES5axbTREt6WDuD6Z5+wGKtUjK0pCHrDHzpoaAE32gkv3A+CZ2+09rF0SkQahHaeazomxYwKK6sFWd9GcXa1wcuJsVWrRTh2fAGk8C+wd1EW2R4JFgkrp1VkkQfvU+ZtD2BIwaw7BE7o0gjh6TyEmbza1GM47+MGHapoRRwTRSQzKqpBR823JGfq6x62N/4FT2ZKvpScFY2+MmJsfaQGtkIPuR1xUnEz6TyzlKKcSmMa6bW6rpsgg6L5vrkjGQIDAQAB","osSku":"Windows + Server 2016 Datacenter","domainName":"WORKGROUP","adFqdn":"WIN-T071065R1AR","dnsFqdn":"WIN-T071065R1AR"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1260c5_e2etest","name":"George2-Win12-1260c5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f1e71a42-ae68-49d6-9d1f-6c3878367de4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20154.005","status":"Expired","lastStatusChange":"2020-08-31T06:35:58.2756763","errorDetails":[],"displayName":"George2-Win12-1","machineFqdn":"George2-Win12-1","osName":"windows","osVersion":"6.3.9600.19652","osProfile":{"computerName":"George2-Win12-1"},"vmId":"ebb1fd7b-ae18-4159-9527-6aa07a2c2652","vmUuid":"A63D70B3-C29E-45A6-8456-2C48EE588F8A","clientPublicKey":"MIIBCgKCAQEAmtz3sbdPTMUihUWBCB7aUq09Y4auJABxzlCEiwj9cAjq0oqqA0mEVDTUQvdmPSlOkFpoI13LxZitDO00B1pzT5Pb2mRT3nsIVLrPxYSGWEQBC/7t62XO3zOhFLBefqaW7r8Zdw9xBAMzt0ME+CiZRpRaZhIdPo9K6xerOaEn5aQbfbCQ8F0sSNGut6aIe4G+aJcgM2i70YZtDzrylWwFopC5kNr49qMYWCsUkLn+q6twnEsrOM6TBi18XwD+Y5CzP6gRV7RddOIhx86f1gYDHvavHiUvu4Z9L2DZnt9ATZKWjBjuygjBLNJTY1DRRJlYmdF/+zcQhY/qZDjotG5j0QIDAQAB","osSku":"Windows + Server 2012 R2 Datacenter","domainName":"WORKGROUP","adFqdn":"George2-Win12-1","dnsFqdn":"George2-Win12-1"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.007","name":"0.8.20160.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4ed42e0f-c4cf-43ea-83b4-ca85580ef1fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.007","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az600"},"vmId":"bdaff870-8b3d-47a4-996e-92ad95236cbc","vmUuid":"BF0D918E-BE44-3E4E-AB8F-F436368D57BA","clientPublicKey":"MIIBCgKCAQEA0kIIiDMNrdM+7H7/JjIvzGFjz0+AnnDn7y51nquFDndyCnbUBVE0qG4H3HXqBxS5yrv3MApN5zQzurQQ4i5dkMqVnIzp4Om154JC1jZ+LlKtRqAj5K5HV3iNMPnoRmzlMHk6fZ33y3c9GoW1MVSo1baG9S5Bc9chpv8ig46Jjomo2/0PejGYOJzJmJgeY88m23Y802RsBt+Fw3z6iDfVIBa6/C2466TTcMVuaoIlryAgxpodGDJF/3BQJjNsBsR9+ZyVWhEKQtJ0H8Cfrbwpq4NVXso1xbxRkGsRjoRfU1Q53R5NgFju1bynVDUEtcIwyLP459VkyPmOLDBNktGY+wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.5ojcw3ym5ilufjsim14cbcpkab.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.008","name":"0.8.20160.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"473c358c-6187-49fe-9d0e-f1f0a6fe17ca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.008","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7d8092ac-774a-4812-862e-596f96e5d515","vmUuid":"571CB8AB-A1D6-2D4F-998A-0BD9A386F071","clientPublicKey":"MIIBCgKCAQEA0tfGyyyp7/Zu6V619vibEygImVWrDQrNLlbjcb4lbuYt9yt53DCunVq/AIYza4BB1iVquOMUILq7G6z11mqKbZbOefwKygFx7ZzGCza+3KulS33O0W0zKpmRnHNBcHr7vY2J0nIYSUVgoSzWCjP4ujcdnZlSX4YDIJUgAM5qOy9biv1/F5pPiXSYcGNHoMvbZxiPJxGrOcSsDSjgTr6wU7ZVchRWuRGA/9hjquSx+bGgU3MGkdmlxPTy1PUg3bsbFwhyVJKm7Xx/ZPQzTSzqJZAT3juKwiEoKMcg1s0ZvNDX1nCp2hPe/rY9UkA1fgAz/geJiVcYsEPUd/UVbNkkewIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.ildyvi3tvs5elcdgr3ogoyb0vh.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.009","name":"0.8.20160.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"edfd60c3-5f43-4ac6-912f-4ce0bc84c9a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.009","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"44a6938e-ba61-4aff-9b60-c08077607128","vmUuid":"14EA5401-1F57-1C46-9563-3AD238F7DFFD","clientPublicKey":"MIIBCgKCAQEA0lZP6NBRG2d99atnQ9CCrUMxF7jB5Aik7P507oOem9btFWWwV0Zd8Uq+iOZRBqfZkc/y5lMNzNCqu4SME5ODaX/EgR2KhjE5Nft21qUEZpqvpU8ts6jwRw4TbX9XxlZtWDkmRyTavMSN1u9vIVBsyFQWZaFYpxSN6kmNCb+OEiq5uG9Q4+CVbwoqcRbJiUFs8uLSbMHgA9hufkRLWpoYp0g19CpbRiRUJWvQErLBQ+HlaE3rMeOUk+ni7cClkMZgH1MGuZY4bKT/vGyuVjQ/Rc1LwgPr5e7Ufc+Q9oFbpDyYVe7E9xbMdqIDpAqICmCLf/RHI6vvlNgEeYfoJ+hOtQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.bkzmlvofaskelm2nw3yhgljy2d.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.010","name":"0.8.20160.010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5437386a-6c61-41ca-b7f8-43245dd09a19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.010","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"b1df6045-710b-4034-911c-a7628aab0d6f","vmUuid":"54E37B1E-08A6-FA4B-BF28-85C0ACFFB979","clientPublicKey":"MIIBCgKCAQEAwceyiPqH0gYbwwqFjCpSZ8grm0JI/pDF2IldxMLxb4GmCEjEPEs1214PfDeum9zTYJ22CxFWAfozYpCojNdL3eyGIYFXzCyzYBC2G3IMO/6wdUaEYBvmUfyG33eMHgo5XcMVRK7AYHOXo2rAtx7zz/o9x4eqTU/vHiG9grymJYi4JkcPQRd7JFi4NXW2WJ38ubmss8z8H0WA5O44iyfHD237p4cprJbqJuZdsiQNfs/wFKW38r1XzFxT6VxtOkSkDhwWkDBQ2JEoIi7nXMSZwlySOHoYnXl1IVyjIfZLbi/6yDErXbjzXqlglNlkXIL/9T32qglgX4Uh26eh3z3APwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.ql2clh252c3uddg0p11b53udya.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.011","name":"0.8.20160.011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab48ab2c-650d-4b18-b304-06666a62030a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.011","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az599"},"vmId":"3c2942af-8a41-4245-b0b3-3f99bf271007","vmUuid":"E660175E-A21C-3849-90AE-FD2FD9171FF2","clientPublicKey":"MIIBCgKCAQEA6YYcNkDVzIxG9h27j1z76DhYsFTGvFiizZrw6WuGKKUpq6OXJOVbGOJne+vXoIiWzDjKNyvjSAP/G1O1rLapoeDvl0fKOB9CFMyaj2FNvXNmZCOVO8vgbwlmqj/x+odO+jFsQxij0XmAZYXw+D/07G5uDVBFVTERKINiaRs6BNXX2GvAm//OEZA07yn6dTR5WngHh42LAaHxbW8LBrIck85QMkJZQcCVKFAp/DnUmcVSYqcW4aAYctoOHKLpXmg2jTR7DmWzDajquzI/YKdNvd+Tjtexmly/53vf2q/BKdfluloso/pRy+oxJqVfYZFxyc0LhNLwKc+bq7gfYGlIIwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.0vbzrnv14haebbzv04bog4quxa.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.013","name":"0.8.20160.013","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b577fa0-f307-4f1d-a6f6-93721e5a51c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.013","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az601"},"vmId":"3905f3ad-f25f-47c9-86f5-2495159566b9","vmUuid":"DD09BC01-2A86-7547-9E78-6585A18886DE","clientPublicKey":"MIIBCgKCAQEA3vZU14g4RyFTsNufwfRC2C1rLH+BylLQcEfqNBKLCBdoUHC6finKHRStPzW4jHZyrwGVzbrDtFgHznv6eUhdLsqUNIX6RWVilyZJli8FVIqY0LFhBEjT0H9Rro8nn+Zkv0BqQz3iin8eJKNg3jG4uWqXkGHyWU++fjLU15cEkQX4GieEdpbnZuSzekUBPuaUBRjMYa5OGCuBZnRgIytqwL79PfGtG2Upjknl7wDSI9xmA2+srZmGUag8+NSq75FQ9s8c9kM7B9GKihSfjA7wM0Qf1Ys8aDkPRHuLxAZ6wIK62NBCQCPRREuD8B9TyL4uGOQgihfEEhe0lG2paJ2XiwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.0iy24qiibn1ubo1qogexr3ojhc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.014","name":"0.8.20160.014","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"34e9da7a-f282-4409-9fb1-203505edbc2b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.014","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az623"},"vmId":"0f2832a4-358a-42b9-8849-c54e80588a77","vmUuid":"F7CFC891-2292-0649-844F-87EABC1E4807","clientPublicKey":"MIIBCgKCAQEAtWEE7NkNjsIJcnraLqTrOzcQWEen2jJsdBNQV5wrKcE1TKVhBaIvpo+F3tH24pxQyJ59+MJx+SOJm9qpPmdxwGYI/U9t45A1jQ+Vs4NXdH1Cun6u2RS1PJ0tcIJgq5bQvb9e7VzF9B+OumoWPBpxOUVkk+AE17A6WzNZvN4rZNW/f67QpjO9+lpCiOJ99zBMIkvqPb1/mjumVydYyjkQkcUCuN98W92wslt6JzVLP8B9VpZNYvrAwsumVLuJTUUjP65X16vcHj9UdvnrqqL4/y0iaoL4Fn6qLP4atkYfRTGlXw9gudA7ixrax0C7ZessC9RENa69pvYiWUPstiK0QwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az623.ce4rv5wmiucu5d01e5rcbvhjeh.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20160.015","name":"0.8.20160.015","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"201d821a-f1e9-4637-8499-54c95f290174","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20160.015","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az496"},"vmId":"ae9d3e1b-e6b1-4af1-b8c2-fd5ef417f21c","vmUuid":"97D1C61F-F056-7841-AD4E-B3F836FB793A","clientPublicKey":"MIIBCgKCAQEA2Iitx2ltkQtd/ykMY2Lh/il7PYqIbMz5y7+C48BCd+dAC25X8uk8fTwrSdeO2irbKiPNOjlXw90kyiCpthTD+SVQhutcNE2fP+29SRv/+wTY8FwShgi1Q005Ga2r4gYHJ5OX5M+UeNk2xeuIGXu0jd3HrnHGwfjYSEPYg/uN0AyRtm5DN0E+atgYPwLEoiyxP6SRoeOReSTP7pytUh0x3Jlr+9moiZ3Ry47/CZdACWMdoZG/XvkXIVCXDaOcTuHCnrA4iEVe3k8nDmIVN5HTuoxUl3pq86bGjGF+Zcw71XlA8XoitG+DEmR4/cLZ388IEv+g6fVKDRVP70J/rcdNxwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.yzqxp43x5douxd1gertvzhfebe.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.8.20161.001","name":"0.8.20161.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0be87a15-80fd-4aff-8d58-8bf11413fb6a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20161.001","status":"Expired","lastStatusChange":"2020-09-07T07:47:00.6610103","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1082-azure","osProfile":{"computerName":"fv-az506"},"vmId":"a914eac6-e225-4e08-8833-47744f5057e2","vmUuid":"8C3472A4-6605-7442-8052-B18D22E12031","clientPublicKey":"MIIBCgKCAQEAy9Astsozlx+RCHueUoMx64zwARkifD/TgerjYTnPOKHO5XirATuBGrPsaDrLB48J6VcebFZGVBfCkGl88Bv0v+0+DrNysrWjXwYKpHxoROW+LNKI/R271m/3TtKM2panhY8hBsCsUQO3ih5r+Hj0q+FNbbtrya5U/S7wptdDkpszFB9PFJeiap4tydfyj/EjSL7faummNYth9vb2mi5qof192Pu655I9tPpx4HeyLoXEYDLHhzoj1NuqapIJf4b6WgMldT5k3ZUYZJRu4yzoKVNdiuJ3hnufxsIKNqTGO++RWmhUntVmheKi5GO3vCuzITdG3jLo8qnsVXYE5vkSkwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az506.k41kkzibsq5erburcnis1cdnqh.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az4642a90d_e2etest","name":"fv-az4642a90d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28d4effa-c21c-46ff-9c43-dd103a115c68","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"46123955-7a40-4324-aa3e-e68df8cc06dd","clientPublicKey":"MIIBCgKCAQEAvm/Fg748zDhHrwvL9ERky0htOPJfQXakFYsfZ2O8NoIHVXI63psav7ttYCeNkM+4HOye1LIVQ1fRCAeuadLYKTupK2pOEnq67kkG2JSHbMQ8uIlWAefF/+uDj00QAp+nIoyHFiRQmw3nk2mh+5mzKOl1IIq/NGKtkALzx+kz+KyHbuIPMrYTIUE9okbljkNXmEx00bkP9cgKpe5dbTPl34I/nNhN+YD/DO2Ie2Fo1eFlJz5qmhm4DlU4JY+H5xGYsvicZHFK2WBvD9d2XrjRtqHnkTwT6T9gLrpeaz8EjLOFQaXGLtSEwz3JYarMBUw7kyWPVA7fcaM537U+sZUHQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az464sj64k_e2etest","name":"fv-az464sj64k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b6e4e269-1471-4513-a8f5-110fa91dd578","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"5830e158-e04e-45bf-ac92-490bea8a5cd8","clientPublicKey":"MIIBCgKCAQEAt0T1TmjDYmR4WAdr4N81v+N4Jt1wsVN2GNlUd9Ry/eqwvXjHm6HQD9ia3UUbCvhlbxOHHVImYOVTO+e3H+mVhIsx4pRRcYWFTShPMczaz+caSROQXEX7hSyPY+gpEh8m0klX11taeCK5PL/O/BEheG+fHKKc5VoexXlyo1L1xEgKfJPghCRBwXVQAzTHscyHVPy0zUuI+p8cj9niNR/lZcakScW7lZy4HqZn3D2mYLNg9ZCs68PiWoiXOhJ5oDOyGQwW5paueJ+17E2SrxS2iJRdcHXtv3PWQtXRHsq1aff7pTb3kaNa+s/1D9zVd9a4FXRk32pYai9Wsr2eoY1HbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az204aph5z_e2etest","name":"fv-az204aph5z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b72cda6-6101-45e2-b6e0-a9d0bdf782b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"92277d92-bc02-4589-97ce-7cca258da09e","clientPublicKey":"MIIBCgKCAQEAvHRkN5Fbtf1yDpMmxAKvnJoD2MSi5Gty/Dm8scKPYALxIS+dFifzo6Px3AW8yFqhG01jI13h5+rnh9MdbcDv9Kt59R2Devt41MitgMSb0aLTqOC4OUIgEhGTLc4dK40ULpsi4+YDQ5e3Yp1pLEdlBJ7nxWdI58ehr4eWZ7HDOouX0aO+5mFzcKnYfap2QYmaQowP2hhzPsoPplcxcQk/MvWSv7sExJHnZotJUzJQv8RDmqvhZg83ELWbpaOKN7qdGVFXQlw3Ya1ZoVIM8SazpDF5HeL4Y8u+OQnee//fmPTGq4Q61SdxOiTbQoHzv4+Zu+mNUH6IcTm/OuW78WbLUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az204s5kh3_e2etest","name":"fv-az204s5kh3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb8b0084-fd4b-4928-8ad0-6fc3351091de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"482e22d2-456a-47a0-bcd5-ca1e0191e711","clientPublicKey":"MIIBCgKCAQEAtrJV1Our5oDQI1N9BntbdS+GITgWukFI2KEsWEPh96oGxl3I8NyyFu/jKpOKlTEBZNLCCCjQlHxWJ6ftHiDHPUilCCVAg9RTdUWffaDotIMrxZEHmr930Mv805Sk0HTwRnqCi2z8XHrT5OEZ+hfADEKQW06GIUZlntMtHIXmI35g0PDKpQzchZPTYG6UHnHf91xjho7nk80cp/5ceT62PYZvwtSuMvnyB0+zCgqkOVdDtgAlKqHgL9nkrFRLleYL/RDixE0rsv+GhKjIQVRMfPWsuX2+dSolbYfT12bj1/JXpSuRUSL/Y5Tct/5ZWq+n/9Zfjz66YM6n4hd9GU634wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-A60UO141VJV5x6yk_e2etest","name":"WIN-A60UO141VJV5x6yk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"66add2be-b8a9-4643-8eca-1d8d88e79cb3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"edecb0ee-85d0-44b6-8513-976c3d40f6d3","clientPublicKey":"MIIBCgKCAQEAtnM7xzVHX+AszMEGSPA2rvMLdDhvUEUGFMxMbD1O9M0S21rTgGyCwJWVsKyhh57ph1bi/6Zs89GGvH1qN5xZv9SJUQXiruvhkDixU7jSFsq60pOTq1J4tiAEsdub8dkbCk6CXMf4b8Wf9F7b2l+Sya8XyJ5txRAm/iHBIcjmo8QA3KlEn6mur9c2t7j0MNmJNqhKU0y/7T8B+K57nSIhlv7nemg9dXWXUQ5+Tg9BsveZ6NoQuRp3qW248ws4KPnmf6QXCTjKitQFQfGFMXPQ+WcvQh64I6M8yfaIeEsXt86oEDbmDIHcIkQvcfRBg5qN9XrvPJVGi3atU4LnP5B8OQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-A60UO141VJV8swof_e2etest","name":"WIN-A60UO141VJV8swof_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"346d5ace-5bb1-472b-b8d6-f950bf4c1445","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"36e8cb83-a86e-4767-97ac-e0958c8cf961","clientPublicKey":"MIIBCgKCAQEAzH6EIafph3E0FVGdgQZHfUMIbigW6OlvT94wk21MI29qm+sxZYHofjRHG5dIJBE8BKqGN2K1VVrDUmSDLS6cjpYxzCcWt+A/3+tJL8lQChSHMw+gepa6uyNlOxurgNMTT0K4IlY5QdPyZiQujBaGxpB2kV4gkW07jBzZ8JBQ1aIQrn1RSMwkjFm71X1A5tEhI95ISDioA6aH0AFVEiL8XC1mucnMk2ep8x3A1v9UeK0cZR6nCF93gw7NX97ygMGe+HpH0ZHZhxmHo0PGEiip6uxbrxXmIkkIavddLoX5O7A2BXOZEAWA/mDo40oCs5zLrlaawal2E2t6quuTOfvLkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20182.003","name":"0.9.20182.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddb2e716-3b8a-4440-abad-c905eadccd93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20182.003","status":"Disconnected","lastStatusChange":"2020-06-30T00:35:36.7830554","errorDetails":[],"displayName":"fv-az592","machineFqdn":"fv-az592","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az592"},"vmId":"af98958c-a06f-4f3b-b698-f77a80b07cc9","vmUuid":"B6F06A77-623F-DB43-9252-985B26316AF2","clientPublicKey":"MIIBCgKCAQEAsbT/WvqzmBp/hsQm+qVjMfAqlHV2dsHRxdJEvl/V+80WcH75maTCLWZC3i8h0FGZxJwIT7rEz6sU8wiJ1//jocWFFfW+IV3ltOiRyPzzOKpRMDCAFcSFK10EQLTM+DFhYvyZItmrsITNFwi3E7rQaMZMcm/wgouRaL1jZttUQeJMMZH9VyF//1fMbO3KAJ8pZrLTS6ODLvLSvILIgAVvmVVyPvwnLyxpiFibHDd/p2Q9fV75eBpQUKywr1SHaJ/XGCeHEaSMAEsLThG6otEh6qyP63xrIkimNVgz9kugeh7r/IpZV8oUtVi29gvB+BXz3gi/gQXA3K9oFJK0RbBUUwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az592.xmvnavnzuulepgoe4dute1qs3a.dx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1rhnw4_e2etest","name":"George2-Cent7-1rhnw4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"82a8df74-e1f9-46df-b40d-677ee7c06261","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20182.013","status":"Disconnected","lastStatusChange":"2020-07-01T00:12:40.9776619","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"58ef2c10-5f4b-47a6-92a7-e2baf502abb2","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA2rWxxgzKlzn+XrQvkJXmtfB9UINrxT37NLAxF1sqom5EY3gl9rjh5+GHo0VXDLtkeEnKs1ET3PPYNQvsfhW2LCGvKeX6cef2zI/E3V2TlvdrbzNhn2N4XNCKWd/ZsRB42017NmFhgJIqBesvPRq3uOcytUvDUpaIOV/pEW6x4GDA3w/2dce8GwJQFqYkqnIwlAxgYBtfHDngRQ7DabwaQqW7ZIeEEwcGxwwB9mDXCtAoeFrHZ1O3c5QGFpp+yfH3psVWqFrZn4nZ7Dehfa5KaFY/tmzk+GJ9/dvS4Uw7re16AcWV3ermpuONL4cp+MZHBW7aNUD6LfUiUvBIJrdaxwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599gsuwk_e2etest","name":"fv-az599gsuwk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b555529-3ffb-418e-ba9e-539b65ea3c7c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"bb80e8d0-4b71-41a2-bb40-ed965836edf6","clientPublicKey":"MIIBCgKCAQEA5iFOziDzfvFd06efIeNE+tso4iSuvB004PR4SzuaEFa0hVdunspE8hpEyo5wLE3Tl+iRkrM44hCffimLusg9obfIY4W3Cu+GFVVm2YmXI9cZXjMLCPwDER+NfV1mCo3iyeJK8fDaQCmvKjw/VR5qN4cTVF3+fzVxi38XvjalyEIrsRQqBrID/HIK6C54SdcJy5xyCAymUO7wzeUjZcxLamPSLCDiuO1BRK45Ld85LCfcAgzMEEC8jraTrs71Y8ZIOFZ6h3DFl89ANk0udVZy/7jiwB8b3FNL/s0g7dtLNbxkJi1vX9x1zy2ofY+0U8DBsx36fvgeyKhD36FeTbGNxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20182.024","name":"0.9.20182.024","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b935a21d-e146-4b1a-9a53-3744c63f48be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20182.024","status":"Disconnected","lastStatusChange":"2020-07-01T00:21:07.9839268","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az601"},"vmId":"dd3e2f91-14c5-4cdf-b031-e3db7ec5744a","vmUuid":"0115A408-6802-D24D-9404-81CD64412893","clientPublicKey":"MIIBCgKCAQEAvS0z2tE7TSZhCplSEJSIetbq9qAIesc7icwhrHYWYhkDhigQ8SfVnfT5N5vLaO2q9sjwzczbWd/3Eja6M/n/W5sFSEoPHWVY15z/s0guCNR2+UBRY3g4HymRHd5/HeTwfY/OaVh5vBeT7hKcnZD+xSqbKzUZXl9kPTg9Q6gRyAm0sW61kOpabOvYIT/bdOFgh/Iq50JmeIjOfDg9XB7MtWxO7AakyyJFvx4vW17GPuBrs91VWlFw0zOFjvi/sZM1PFy9jwE9Sr3URcrIceMia1lD5qLuZckEit+01Iw9p3JMuCwpRJjz7IjV4S7o3M8jdnBFpvY1+GWRi6KAR7T4qQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az601.pcpg2h1g525ejh0tv3jmoy1nxd.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20183.001","name":"0.9.20183.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"93012a06-6fa0-4422-be72-a4a890725555","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20183.001","status":"Disconnected","lastStatusChange":"2020-07-01T00:40:26.0733994","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az599"},"vmId":"092d5599-c6a9-4509-b1ea-efecdd0f8da3","vmUuid":"6027C647-8853-8D4F-98EA-005757C04ABF","clientPublicKey":"MIIBCgKCAQEAuBg5KnSoP3oFnjMr/DC2uQ+wGpRNoPfaUbs8xumzwIVIW8/GGP5VHKzTf/dmZ6is8/IP8eY6INj42a1Mb1T2lWm3Cc+LOPUpp2yI43qAWHY8clltKkkL0Br/ENvWLwGGMUz8dmyQpiyLxB3W3ksNmvawriKVpOFDy1AS+/PryeCUpLhKXdYfBVCK6GKA1Ke+HcCSehY5cSXfJBadWGaFuR6mD2gliXeem9kJPqlrI3BZmP03qJY8Bqv38FklsLnB69uPayBEyFM27Y7/sUO2FJlgvok/mg06Oo9gg24oo53faaRbiKgxbSOZsMCVcjvm4uS9PXHZ2nM8PxbCYP6fhQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.caa5ld2553leva4hj0flsfn1wg.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20184.002","name":"0.9.20184.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ed6d1e2d-30cf-4380-ad0f-01f61d3f305c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20184.002","status":"Disconnected","lastStatusChange":"2020-07-02T17:36:06.0836204","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az600"},"vmId":"40ae1198-b1c8-49ad-88a7-5d61e12bafd0","vmUuid":"9BA7E64A-105D-6541-9567-8A28809A4E11","clientPublicKey":"MIIBCgKCAQEA29ozwyaMVO1axLNA8ycJbYQfDoaT9tCGpyppBgSueueo0YcGwuom0TeP7n8GC6Q28r1dKEmk4hla5UVKzj6sjkhuPtkTMKtYhId2O4Fy5G6k/w7bj/YZalnwtuVBqOWYLETefkiCcKsChJcBWMkN40/nw5SwmkCmaJz1fBmtOivOPlLc1NeNKOYDdQunwx20b1WA8UPasYD9TIL1vyitJ4l1A6mIRaiACo8NUHcjWO7ocppXqaIrlmhrYybCpRPZChbE45/KG9kJ4EzvE8YJIT/F7hTvuOVsoPZDKK43FYdKDHcinU/sL7GtrLTbGws8caSQkS5jMw9o7IUg8NeTawIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az600.5ojcw3ym5ilufjsim14cbcpkab.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20184.003","name":"0.9.20184.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6c3cc24-c5a8-4fd5-adc3-fcbeeb6f89b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20184.003","status":"Disconnected","lastStatusChange":"2020-07-02T17:48:16.0109701","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az599"},"vmId":"08bc6d83-ae60-4b58-ba9a-a7d8a819d0c1","vmUuid":"3EA049E6-A895-E54A-AA63-D61BD6D28CFC","clientPublicKey":"MIIBCgKCAQEArhAxbDkFOoIdvGo7dPrqYbS2vFYtI7V8DbbiZjwRk4PZWgX1JeTLRP8CrOYMR1L1DamCtHs4r/UzTWybjLe8z+MHcFQIx8/06pNUwKFCQF4ErtMHNDNLSBhaKXOwjNRdegkKW/wMpvlli7PP1CCL7B/nwkxHC5duWosnW8DJr8i/LFXS6c1eb98Sstt4YMksA944XOi0Zb9Ty+8uv9Bu2eIFRNdaXrqG/D+sP1BI7J7VK68B5NLXPS4HAYJAlHjtwDMKOcEVsv4sfyshXsqoV1PWpzQRXkH44SW6VUTZWnhtATYEr1SQyluFcwbbaHg/7NhoTDzTAz1t6+sCDNAe5wIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.2ledehzeahbele1glp4kl2cd1g.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20184.004","name":"0.9.20184.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5b2c2b48-daaa-4150-9ef9-0aee11d4e8a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20184.004","status":"Disconnected","lastStatusChange":"2020-07-02T18:12:31.013066","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1089-azure","osProfile":{"computerName":"fv-az506"},"vmId":"8ae6c129-65ba-4ead-8ee3-e5cfefff0eda","vmUuid":"115D2A96-17E7-384B-8A53-AC9EBFA316CB","clientPublicKey":"MIIBCgKCAQEAsxcCp+0R87zfQEdq9WfWfSNrRu8LrqGGihuhvOL87TjW4O7+kMcLE0hqHsdn5z3P2KUE+Q9Ao2Las51XtkMAjoP8nERV9dMRez+imjR0RTz80WPACAd/3rozKFFgRd91ys7NZVGf7xUvWEcW9JburUu+P8cD84QO3pbhTuhezj8wjwlmnKovy40+H06zLMv2x7oI1c0XpSOe0dqfYFLSi4DpdkKCynH75nef0WsRvJXMrdPTzTqPEjxdoEeXxeenn2p5t2hd7nGXdQ2huh6t0iObnku8e4K6Cf/Mz3LrC3nbKzi4IeJ+LSWR1fm8ap4W5nixsVxog5BxBDD0L/PLXQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az506.vqgg0dttccoutdojecgv4izhhd.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.001_RHEL7","name":"0.9.20185.001_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0c153a4a-1017-4eb4-adab-180bc3eec61b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.001","status":"Disconnected","lastStatusChange":"2020-07-03T01:03:30.7270388","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"014468ca-a336-44df-9a29-b23b7836b7ba","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAycthAsOpoz6Hqrh4t+mDIk43EK6zGjD+pvjPqKGTM2k9YIkLRDSdhrbKtdb0XEB5OV0X61tGWA/cd7ZhGapTBSYB6Etv/TBXN+mQJL1MATUOb5kRnBdxcIJ5fJ2IB6K/voYTFVkkUlsxfPq5X24W8cVAoaMDkeYJtyGXDKuALJJbY1D/MXB00I/SRcVezd5RdcbFPIPLVnmci6dp1Z6T4j5w6g2oqVlpvY4k6ua52+qtvZpPKX5vv0DBMQZ9hshHGB5FHG3sMWtNxNRccCozKgvqbIjh85H1YrJv7LC8fBFItMFU9UThUDwhU212FBGQwmVSR6Ui7pDP1jL5J0O/1wIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.001_SLES15","name":"0.9.20185.001_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddb08f15-672b-41d6-a6a9-22620215cba1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.001","status":"Disconnected","lastStatusChange":"2020-07-03T01:08:40.7213192","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"51508edf-a1be-4442-aa5f-d36d20c135d5","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAtSIs9h3sUmM4NL4r5d3zqFqQG5AUCPUqoZwcKBM8E2El7xNPU6iQ3CFlbM5CkI6Vfdrpk2J6aUeP33sWgnDghwP8XYM8I9K33L8tbNlNYM6RFTT/EZ4x6kSmfbkc9LYYZn1qfAKU3AgpiMADGg70fioUd4WumyBOMj5p1ZyTI0kA9f73sF4MdEESxUQrknyd8pb52sT7UUWQsIn5enuayH1ioF3+pRc35kNHtkWOcaVtco4d8J+dKRnGf0+OXhUjMOXg1BZHf4X8iMJjM0oodkz1DC1akLOCu/uh9+eZoSF5fbTXRevzcnSpMSiQDEOXwREAIYizgi9HvC+4F9babwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.001_AMAZON2","name":"0.9.20185.001_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec96f63a-f23c-4720-8684-9944560898eb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.001","status":"Disconnected","lastStatusChange":"2020-07-03T00:59:19.7388674","errorDetails":[],"displayName":"ip-172-31-15-69.us-east-2.compute.internal","machineFqdn":"ip-172-31-15-69.us-east-2.compute.internal","osName":"linux","osVersion":"4.14.173-137.229.amzn2.x86_64","osProfile":{"computerName":"ip-172-31-15-69.us-east-2.compute.internal"},"vmId":"cd9c8c75-e237-4687-a85b-34d96cecc41c","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAxhYdGa91sE/orLAqjK072u01eJELbn+1Bi20mveWnTe53HAhSjHOKu1XT7+GJBjEfaCU/dnCbegCPNOLnBk2rd8kuq9rEVPplDlB+ixYcdSCj5R6R/z4uFG2/VQ4av/zo4u1kVPpoQasvJY7CGxXQXcJmBwxC41FWKHLTe2KJR1GE4vMQVIezbpP9Q1yoSUA6rg8ZBPWf9VwyF8zz+6mO0lXWkPFmo6TJYzJ0Rs0wIobA7zqvHeK2d6z7PNQnJ2T/2PvVy37WxN//n+s6Zh8gqq+7OYA5PM7ccOlugL48eQ3KIKC/OFItmr2omNcdQWi0+yWaHhaORS7dk2/auEq+wIDAQAB","osSku":"Amazon + Linux 2","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"ip-172-31-15-69.us-east-2.compute.internal"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.9.20185.002_SLES15","name":"0.9.20185.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ac7d7e0-ae95-4dd4-ba59-063794ee904c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.20185.002","status":"Disconnected","lastStatusChange":"2020-07-03T02:37:20.7333324","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"d7558fb5-5f6d-4611-a205-08103b7cc2b0","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAwoI9YnivUwNGpaP0BiNz951y0NuJbGtFtrGxKt5s9+kuQxvcW/xqAqchpCNaV1C8vgvM78jwksP30OVi7vEF0oIr0QtxvDEt4k+gL6skjFg74ryIDRdv5mBsgiS63G5zksSl1owu1PiqWn/Zq1DiUsc5N87HVQkKXXqT5hEV2n8XHKmaxAHSlkg0erexke+dTjGqGCNcE1QrYe7koLxLKocgHwUDOshqnoOG6/ieG3d7kOM9z5u28BBkLGyLyGcaySv2gWh7FIbuxB3+NY8xJ3r/uFcdzfm5MdQaRaXxwI6H7KPdxInGzK/ql//T6/3F4istTlUZCmtcvM/VwsxwlwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-19uk6a_e2etest","name":"George2-Win12-19uk6a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddb74130-7253-4b0a-9a69-1fda5ed90d38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"a27348fd-c761-495a-bac1-f49002b11200","clientPublicKey":"MIIBCgKCAQEAvZKUmhHJMhbGmhm/BJvSEdQirtDBq44fp9F2UghmZcnkMb0BzS5UixYCu/Z+dFJBG3z89dRffz+xgN4dZ/Pb7f95VAXryuBrx91M8A2KcP9ohv0ZzBjOVTf9zKzKehH4om0QXIwjlG5awz8RKvNHuvAQ/TlWGNWo9GmbCR1OQiMm3jXQNUnrTXy/6e/M73imq2vB8AGfjAmyhn/Vw6dv97DpO4RW+QWOuSS9Y1BCX2fdIUXr5QhSnBjS51dyvEeslywfQ7Pdm6CsreROlGeRVYBOIOSeUogE6Q5v7wMRtn/yGsYO0qXdj6t2cnr5Y9alA+N/7xhZZv3zLr1s5fIynwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/gwf2","name":"gwf2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d719b5df-a65e-4864-8e87-28243b741019","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.9.0.0","status":"Disconnected","lastStatusChange":"2020-07-08T22:19:09.0776908","errorDetails":[],"displayName":"george-ubuntu18","machineFqdn":"george-ubuntu18","osName":"linux","osVersion":"5.4.0-33-generic","osProfile":{"computerName":"george-ubuntu18"},"vmId":"6db3a498-7acf-4d22-93e6-5dcb8c237b2d","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEA8O2DIKdADDtFMz28Zy0lbApk2gmM4yNV+ZKY3yNjx/JElQnVyiIPAlQDc6vooItIpgfktSVEgck2JO5vKRHYAg0EOeZTXXptG06wlMNq4RkSANF3P/i4/oM3aAUIDPmvbQm5bIht7zKeXthKTtOaIbtNwX48JVGA2yj0Vp5QyUnQcWxayi5FfMTHkj/eVCyOrxPtR5q7XJbw9FSJ92zXSgsiTRd4GK81tAlr7ggBY7dfxmV292tzBORbu8EMCKVwfFzKNZmW0xtuGvDSXEBuO2DeSZNajRXcB/JHudpEEQxu8PZvohsS6tWPpVLMjbj17Wo7hcoHjjiI9QiK3rOCHwIDAQAB","osSku":"Ubuntu + 20.04 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"george-ubuntu18.guest.corp.microsoft.com"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20198.002_SLES15","name":"0.10.20198.002_SLES15","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8739aa7-596f-41f5-9cf4-65f8ab55ad18","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20198.002","status":"Disconnected","lastStatusChange":"2020-07-16T18:20:59.4913227","errorDetails":[],"displayName":"George2-SLES15-1","machineFqdn":"George2-SLES15-1","osName":"linux","osVersion":"4.12.14-8.22-azure","osProfile":{"computerName":"George2-SLES15-1"},"vmId":"f679c5fc-a7d7-4e49-818c-745526519f87","vmUuid":"a9652641-4d07-0042-900e-8b21aad8e6d0","clientPublicKey":"MIIBCgKCAQEAy/R7Erdwr/V2z4OHC0VJ8xfinsxhMU/ur5bZ4dqpPbSwkSU4JEPYdG0Iu1NP3v80OT0G+I5Vu2ZfCfA03kT+wTqu/48zfcsVqEzWkdbYfVdTaTqW7gHnATHcy79R1vWZaPVxV0kU6LCHoKOFwNNwmV1SXKGFLunPHPwXIYFZkUAlx5nPb41olxaaWj5XATV5AM6DFkO/qufO0zyPhFwzn+snOEDPSQaPZw7KZB0ycSFGuSKQMYuENxlu3kR3gOn317uoOGTIyOwjC957i8MMjpg2iJPsCCrrMwGWMoPPOiHzG3TN2XVm6zk9Pokny6Q6F5kz2Wjb0qgW+Sp7YEKenwIDAQAB","osSku":"SUSE + Linux Enterprise Server 15 SP1","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-SLES15-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20198.002_AMAZON2","name":"0.10.20198.002_AMAZON2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cc3a2d7a-592d-45bf-9ecc-11bb3695f784","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"63407692-a90d-4c0f-958b-fda0164da564","clientPublicKey":"MIIBCgKCAQEAvThrkmmKqcVTxPgOyd3lysyb7jmSU1rO7bmAhZbJRiT7mD/QbBwcpjOQZUwZRk7TB/NV0cwHTd+EQbXC3Z2+PDc5aeZJJvPlwAETsZJ1+hnwF4xpgFK8Ayb77Mlo6YDsXawzOl/fvYjQO+dqZmHiBaBXqYWy4o5MD1c/4tRXeCsOtQDha3ftB8ihlbgg+YDi93ZYwv2FUmIIgaqpR5gFZD59PDK3LwqCGp//WYhpTyRoK1dwhC4AoVBViqP1Ta/YYuPj3yEu6kwMKueoYyXaxo2+9p3v8l6YgM+fX8R1SE3qSSkxUVgobR9fqCHq1UgQdjCpZ9WTpGxYrCtkvi1mPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20198.002_RHEL7","name":"0.10.20198.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39ea9b96-9f6a-4b33-8128-1dcb148ba62c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"2a27dbe5-9439-4342-a9b6-cf560033aa01","clientPublicKey":"MIIBCgKCAQEA5FP7eXEuOxhovd/Lnon1GpWOpxr1kPmuZrUWbIqXaQqKs1HcOri6k2LaMV42VL9eoP0IajxWxFz0erI6ww9SK5JOJCoX3AZeVhrNujkLT9/qfaE7mfNwDCMd/gYMy21Tm6dQFs8KGagn5nykPGeyo04J2rIr1e+CZ969KjcIgfEUQQY6Dz743PLoI0dyaF2Knotv1+zpjfU35NLACBorF5mdjz3eav1BjSJh3/9rDf1lkJeUvMv0M/1S/ILVLZmUPNWA7KDtD9nm30engGch/C1myYvdLahPchYu3ruGVTTzIA4oYOA1CQK7SShpyjbkwC1x3Whr22B7d+cqzwENIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/d3f1b97f-ebc2-47ce-88cc-cde1870a460a","name":"d3f1b97f-ebc2-47ce-88cc-cde1870a460a","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b72f188a-e8ea-43d7-a87c-35bde1bfd1d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"c2186265-757c-4747-8894-b9b771738ffe","clientPublicKey":"MIIBCgKCAQEAu098ET53DynMDsoVHrtCfF4/zEIZknGpbj3s8qXDn3wd1QdH76tg1BEfHZ1ht3mxjbXidvxYqbj6XM77qT9J1G86CHqLsmP+st4RmEUhvm4KqZ6cKDB+zTqEdNUFh7cWFkzY25QSdoe1RSDwFl1KKUjPywJ8kuizZhehMnmcw6iMNPWSkvdQ8NFlECiVhWTkE1/WK4ta9g3foTV2tH7l1ay2ABd7Dr+/UdkrT/sUzzyyBVeWKkM4T6c2imijiq60mueLqg8cBWcLeua2qPFevBsgpc5Tq05zzmUyQaMzUbH+16kbxw2cJ91m3Hfy544FvSTpr5kev1aW6ZE0qlP3UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/72236bea-9bd7-4cd3-a7f3-8ecd651ec25d","name":"72236bea-9bd7-4cd3-a7f3-8ecd651ec25d","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d1f7e660-8a67-4e6b-916a-f594b1a62bd7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"e56529e1-5ab1-434d-a424-38370c08453b","clientPublicKey":"MIIBCgKCAQEAv7c1hAztN0TAfCz/daCU9nY/KiTp/bC5MTcSr2fEJtDp+XIgoY03u+FWquMqqtCdzgn4vUbPcCYJH/6mY/AAuOAVnWoAIOEqfMe2/IYaR48qmJHdQgrfFF/LAEkP9UtpgzkEHJRd9re3Zo/GFCseWZVPdZtWg4tnTXyhnDjMUNpPsdzkWBnB7GD+lyNryburPSyN6HZU8gXjYcA6aaOiSbRYHvROBmz7K+rXJNJu8XUwtzhKHyHHqO4ZpNyqYWwyCmmXWDtehbtorfiGvGEay58N4qk02s5kE2fdlGG0J/iDFkY2rSImhttuR2ktPHe327rtBUzL9V/+hu/KNh5MaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/7789dd24-9f9b-4364-b589-5806e1233f70","name":"7789dd24-9f9b-4364-b589-5806e1233f70","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"49a02d06-2414-4781-b481-69fba98749aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"d9e17ac3-52a2-47b2-b2e6-e80596624a84","clientPublicKey":"MIIBCgKCAQEA6I4cFhOkobnC3mJHZQ2iKkazKZ5vb7mWu0L8vIGNMamR4gtnW83WtubCuwaG0r0fCcjoISTMjRzJ9iqcFNnjHNhBam46gURzG7I3dm8Sk9ZUgLjwMg3y/+BGbqwa7rJ8xkxHdXMYdBQWKSJhfQmTJ8HqtkL+oPs/qEoG2V+MrdvZH0/GR3ogfrIWjFVTCsB6xjda0Rn/qe84DAg8ZEcJtFrAd4NiuxwQ2IqF260hIYzBLuPI6rgv/NIgdcmL5L8kds8tB+da0Eofuwa8nEMnnyGCAEYYkFYfZ2AXgPi9TrWVmSoIMFUtVfQZ3g0zu3mcV/ztXO/i3g3r25LzZpfT5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/151b4449-b67f-4b33-84b6-1954d9a782d9","name":"151b4449-b67f-4b33-84b6-1954d9a782d9","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c83505ce-3759-4e6d-b808-0795a2ac2bd2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"e8cf829f-a7b0-49da-90b4-27785ce75a60","clientPublicKey":"MIIBCgKCAQEAzzrzATtgq75aS1SnpcxShkE0+tRpyCXp5Am1xVADycotyKupWyLUYfWqnO3n0E5HEHtUE0PVj50TMNHaxofXjnMbdEYQLfnjyq6ft/kmzR7Raeez0nwK8t9D1gK5hnXygp9HMxV9SqF7y7QcZP8w2MZl7QeKH22chUeOiliZI7H/cQJZpvaUG5jxQBxf+wQU7jRWHlDeUaAwk7q1TC2uDK1sWIPUM/T5BnMPK2eDWarssoOE41RGDOlFX+I6FUzslNLUowyjmCX+VKRoJGmKtoJBC12DEchbBwQR473Ck8UcuuWGvfc7JWoLVJZmMl/mvm+CRDDsiX09nSo7i8W8JwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ccba2389-043e-4d8f-b353-fdce88a91783","name":"ccba2389-043e-4d8f-b353-fdce88a91783","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"71846523-02c9-4268-8e49-6447e257dd58","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"e9be826f-de66-4675-8a75-dff32e03587d","clientPublicKey":"MIIBCgKCAQEApA3GXgLg7Bw8fEXWtG2tI2g0alRBx+BvhEEC9v/8/fc7Tjpvxk7CQZNGGsGK0Egax1r1pipw5bSM9pmoQB8l8n7vkmLLUodCOIhzSJ3PQc6j+5qCLf+QdrJIv6ZzM4lFyW1CyAuSlhTs75NtJPnssVaqrho44eyGCZqBWAFTw8qwHZYTREWJuiTfKNkQH5IIyUwAMRccsim86TD00zU308cv7lrivmus+SSGIYgjohIbIeQtAsKIxSaL4XCKY/FPetVq9LelQrI/7xl1OVQ0JvqoQP6EHYRKgD429HkC/+7zv3wb2DtA0VidkU7xbYluY2Yk3fmmENP4POStZgS9pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/9aaec2f3-e1a8-4599-8bd3-67b250479c96","name":"9aaec2f3-e1a8-4599-8bd3-67b250479c96","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"848dd201-ab37-43ae-a101-8061a192de14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"f0d1776e-aab2-4c6d-b107-6518d9b3d4ba","clientPublicKey":"MIIBCgKCAQEAvcqmZ7DgqF9by/HbpJQSdB6Kti6S3LNbfp39XuAruUu7nFSM5+UsgsW31JeY3p9uHCh03rCD1ayzjYrmPfhkRxbugWo7O0PNkR3pMgG9GpOt+hWH4YVXAsE9+nN3cTYpi0mb56/8AoiJn3HgHbBF0tspX2kict00dl0jO7V3S00yntR6JSY3B94Vs+csP4CLwyo7AxoPiSUMO2k4HiTnj/cZWu37z5BJVEsdq8FHHYUweU1Z7f9rz6abI1waX5Dz5eglM9PJv7yu2Gk7OIH0oOrYE4ZIWAlMC9DhQmyN/cDWrkIbPetOSI7ODlI9MQB4zGeWU9ilztGHUIadJu9b7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/dd3ccfd1-320b-46d6-9cad-1c2015652528","name":"dd3ccfd1-320b-46d6-9cad-1c2015652528","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"065545e4-83ac-4d4f-a32f-7e345344a188","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"61ce41dc-bdd0-48d7-936e-017073f0c679","clientPublicKey":"MIIBCgKCAQEAxQdFB0O8kk/21QlrwAGUSNrQ60WCUaIasiGfkOHtSPT66mWY0ciw7riYSfU1WVqNR9YJbBZNUaoDSbXUIxlbonl7WovMX/2yFCINaeLxMurpfCpBWLEMXkby7WlbJlbZLLanMua7cyKkox2LATU8F9vcPTCX1k2P25vUThOo5/AenSjywDXr4jrDeN56JtkzAG2e1KsRfARBOVL3qkwgfEtLKQwWcNNQth/A/43mDEZGOTFfuEJs6al0pB4bL4F9orRlIF7xU8qH8CW/FVAT4MDMU/i7veKtLwWoEuHcnvf6uTKG7z49AeVW7ZyqkbsuXdy0ujLO2FzL9DrX9arJSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/da0e966c-e82e-4b35-ae16-2e32a0d161a4","name":"da0e966c-e82e-4b35-ae16-2e32a0d161a4","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63fdf2eb-712e-4fb6-9f66-e43cef5fcd70","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"ceda9340-0e80-476d-8d16-46dfe1d9624b","clientPublicKey":"MIIBCgKCAQEAvi722JDGogW5CB3NZPINjUEqIbPw1cDZrUOFSEcggv382NZfu+e91GCIlXrgUyH2m6bDBiu4g11gWBvDVGK7Zx0GQFE/Q2+4xyQ2+D2pStjtevLtN3nEHuEc1ORvx6tUxz+Wz5y40Mh0CmGDx6ZcFm/Jc47g5CKHDpBpcXC16VQOoWeihPn/s8ZuRJ5bcBLVW/gGO66rF0YsEapJoyGad2CdH9hZrzLSqPSAofpVHAa2QCI2joOGg5U1ZrpOuP50YKFbMXIbNApTTWFTSN2LWMrtPW3Lb4K2I9ldWN1d0GrNH4X/RfElTgdOONZ7gNOm8cKpERLOwNrXKf6nJpm3BwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ip-172-31-15-69.us-east-2.compute.internaab7yi_e2etest","name":"ip-172-31-15-69.us-east-2.compute.internaab7yi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6b7f6aa5-9808-434f-b95c-a0757ee1c920","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"7edfcbb9-0248-4eef-961c-074fe60ec297","clientPublicKey":"MIIBCgKCAQEA1Xm4vGXZ180VRljx2IRpolRXRedsW7snLMbbyFbQPYmSdQocTymd5DkW/4+Lsz0WPz2j1nLgiDSj0ijpw9oAvM9Aw507dvoL59chAoQPfWUI9GuhGj+mwhCy9/NhdE9gHqfLFYHIn+AmOsX4CyefpJTI2fmpUITmIhq2TXufiuoetqtH5QhfaMXef7ewORhWr5qcJsGMWHW1VuFdkfD/FXXj9ppSSJ0EzlIwhDQmyocWFNEc/SEetQ+GkEU6GTgwlkzDstxW03SAzKChexXPxEgm0aLcg7XAxX+o4JPRsjzhoKGImTwRCe80lvZ4OZs2r1FmGaof6wr5MCvovQtS9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ad0a279c-c4e5-4b8d-99a2-94ee6bdf1efa","name":"ad0a279c-c4e5-4b8d-99a2-94ee6bdf1efa","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4fa2a3a8-d874-4144-963e-c527468507cb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"dc4ecc0d-f67d-4dc8-b438-a6502270f2f5","clientPublicKey":"MIIBCgKCAQEAsj/ZCz7Rr/uTajV4Ix6aE+mZmSP8IJrHOGN6CEwKdXnj9momg/Av4VftrqoAKyAs0Oj1yCD+7jzUGKQLgYNAzc+UT4ASTmgt0cf/lVWgUOD7Osz3ZgcfcnoRKRSLAykihlL82eO6FSvN1rGFu0tPBnZoNOfTWHCKy3MJw+NjP/NBq3MkCeFohIu+w+1y6s2MoslhqTuKjZ26hy6KhRKF/2PLOSNi/fRPMTupVzCNmgIYG95cYdBtHG5jQcOKQIOZWEr6JecdeiV9rxr8SjaNiDY//2iTJ6/sL815nwZAbJeer7NlHwgcJrE1V2V+3dyVAVkdo4MFYLoZkzvfrwYB9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1ipzxb_e2etest","name":"George2-Cent7-1ipzxb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec91d3fa-925b-4a2e-ae7e-095cec0abbe0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20216.001","status":"Disconnected","lastStatusChange":"2020-08-03T17:23:12.4893705","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"f7823708-aa1b-4f5b-a6f2-e5af8493dc55","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA3C6UEV3k9gKExCGgHc781MRnC/2se3QyGtZN26WcDUIZSVme/RO6kbzywgDeGWKb6W/k950BL7noAFb82d2nWF70y/Rx0V6taZAjrO5kG2te26ki8F/OKR5hzhtzMDlMzWdQ7W/DgV2lo30LvSqLCyRZJqoCh36lS7FD6n3WrsAGcDWkRvcSIfgtHaHkbDqURkjXQ7hGpNFSmZeDXIWM/b/MU7Z0KpYkqMrClzyiKzuueRvxtrd4HJ9rn47JdfkoaYie9DZcWF/caVtvmF7Uf3KJB7WAtM8qQLnJ4Q4o58w3Pc6XbLbF5WiZ5kvzd/n8Lt60dKwrd4aRRfl/pgXQcQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/2a90c01c-875f-4c70-9a9f-3044ff3d4fde","name":"2a90c01c-875f-4c70-9a9f-3044ff3d4fde","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d2498121-0f44-4c53-80c3-3e9abb06754b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"c975440c-90f4-4da5-8006-3e8c697c70d0","clientPublicKey":"MIIBCgKCAQEAsQM6jVmgYOe2/Jf6ezhAFS0i85UySmEwMvcw/1EC365CqawoSwUbZHW6VDhZ/hjo2DAlDkKE4K4kk1DLMznqWg1nhpipuka6R7ycZMtaT5WMCwr1aHELuSQLhreAkxGMH9dYUKKXSl+DIoCCuRwZUTi3uSO4TU3UahAPtriQuVOhKo6YPBPrjfBdTuteNGCrLCMHYrT082r7mlrq4hmRV2h2ifDN8aLCPCOEQfd3ReniRT3gSgVveLyZxs3ythoKzrjtugncT/zl2/fTxI3p3eSGR9a1C3KLeD5/Wo4O3PgOVR8X4D2s7jBL65Ba+QxNbTnLVxy1k8Y8xImDtgZOLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/34689ca3-6b8c-4c55-a967-28307b02528f","name":"34689ca3-6b8c-4c55-a967-28307b02528f","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ba93b0c3-024d-4095-9f99-0d87bc889a5c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"84b508e8-be57-43c0-a882-c84752f04c71","clientPublicKey":"MIIBCgKCAQEAlK0jmQcvuhS9NLmaY2Xm90uXbnNT+kFaO1MD5irnVQTpoP7nsc1gy+0D7K82EOJwOeAViUTNN+5XZuMLygGuHeQX+OKJ2HBnzuSGJu72RlrPlk2rtj885FC9VVNMJj6zkIYO+rQRS5nMfwbFygnUt9dE5sDxjxfjJlrXKmul9gTJGE5lcKkpxZKNSUHN0RVufbA1JQ+f9gruCf911PVnS9myl6fGy6DKmOHJiEgIHaVHtEdedqGFYfNoc3ffxFVVjubEcIrNhv8/+A2CzUz+1B8BFygfhi9wjHSYQKtmFgUKKzJQ5+B+HGL/xbTkrDrfZPWjNIq2IBR88OepA5tHRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/a86c5353-78ec-4f56-b9ca-c031ac250702","name":"a86c5353-78ec-4f56-b9ca-c031ac250702","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99688550-b755-48cf-8b63-d85fc60f3d38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"57f55a53-e9cc-4cbf-92ab-99650e537611","clientPublicKey":"MIIBCgKCAQEA07sRT62L14732APUAkRTWNqPYaTAK2aDaNxPOIr0nLHkU+eWzVOfFX6KyeG6RIrhZG7DdZaSCTZQ5EplukO+t9AtTpIfNmFfzcV7GeDL5Fp6l+7N3ogCP8SnLdExqTEs3G/1R9B4ECkRwUQGmZQN66X57uh9Jwesydc+6itCx85uH52kDsn2dz9hv3A/xEI5iKaj6vMO4LbP7cyoXQJHds4UrmF1LbxwjAbt0J5VfGukPnc//bAjzNh0FHImn7xbI5pRLkiFvI2vIPoGDw9VXcYVLbdW8k/u1nLFBPD0os2fbzKkKQEyayHdgHXfw+GMoA31KguQkMTlFa5FiG/dnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/523900e9-6faf-4fbd-bd51-300023b09fd1","name":"523900e9-6faf-4fbd-bd51-300023b09fd1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"280a5dba-5b13-4107-b370-3969ab8ed273","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"b7c93cf0-d79b-4a25-bac3-c392b722ef5d","clientPublicKey":"MIIBCgKCAQEAvOgN9b50e/2TxS3TuVqImbVSIJ83Z0YZImTPnS4DrvycFCQA5HWxt47Yht61Y+gZMtCQC4vXqxWwn08vcBXMPz9/WFZfCWK/URUsloB2ClpYHwG+Xh1GL38rNS0drBgmrqa04VjtyyCdaxVzEDHZX7rUOCxEKgfc9azE+AlIUUDfo0cNPQCxO59/pF+vmhI1KbQEqG7B2LS6DUEWOKcR4k5n8LLsS046rGxHfMbzC27UHa2FtJIWj8Kqt+9tKK5VpePYSqT96u1NfAhNwpQcDgONQvsB67BCC+1PjJ/SWS9ivqoEErwIhAXp8+k3WcsOCBwpiZ0HifYLuU61gqoDnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/bf0fa768-949a-49c3-bec9-608c968929be","name":"bf0fa768-949a-49c3-bec9-608c968929be","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"533f7336-54cf-4a4e-9120-e2e22edbb478","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"d12660d4-3923-4792-bef0-c57173fd062d","clientPublicKey":"MIIBCgKCAQEAnDF/KNpiGe4xEcs0KbS0IKR737ssA0nrnSO/WBjiwwmVU9FTqt2QDgFit5TNPIuu82ujVLMtmjCZIa19idUVrZkTtiWAT+B8c5Cw4qqBh4p9UxdmunmWTL6awySwxnfXO4D/IK5l3TZZf9D9lHUY31+g7TfzXqr8363XY5spMhDBDcoro8x/gP/GsyNLEIGtBEOcjbGc5ZYhbot4RzKI7NOXlksokc9gKtFWBg/2FIo61I3Px5H7eBTUbgRLJcrOPOZIZR6uBMxfMeSuSEYz1djaXSUm0+gcaT4VxgqLpHqRJK0HHFqj0MhYXZ7+lTeneVZNxw5mbGkQHLWRF1UV+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/cab0a77d-8515-4e4b-aa31-5de781ef1912","name":"cab0a77d-8515-4e4b-aa31-5de781ef1912","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"42dbe497-462e-48c4-a263-80db0e2a9174","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"87ad4b65-59e7-4ffd-a5ce-5cfd3c1083ed","clientPublicKey":"MIIBCgKCAQEAx758SGM6YewLN1F1TDWBnpFpCFOCoJFgUyQvqDMxKHRwa7K/VAJ5wVebV+ik6O3wU9hX9efyqtLwv9pzZldzt9A8aVKm9tst6itkowz6gOH3qnH0Ovj9H3wyIU8LRgTNrBOTFcVl9stlSlKoAKumIJDCk5CgBK7qc3LrB7cR3a4AO1pq7Y5LxKfK3psbp+iSFek4R+SVQFpOAwVCEqR8SmwIPFcrdM8Fgr+LhvZWgRdEq0cBqzUx4DUaZEcsno4TGDulphea7k2DbVj9PEjPjBQBc6g9RkAm8yep3BeqJmPwm1I020gvDNgOh04lOdEiUHCv2mOpaEPXk7qMdbqEBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fe896c3f-e32b-4b1e-ac6c-a2d5965c0237","name":"fe896c3f-e32b-4b1e-ac6c-a2d5965c0237","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bcf4d60b-fa9f-4d8c-8dba-d6b70034ae5e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"760a0511-3cfb-462b-a120-13871760f413","clientPublicKey":"MIIBCgKCAQEAvNdUD3nddcgnrwLcLEQSceh/hTjXwzcwlVg5yBDSlXLsBw3h59DK3AwOjOcTQ3AwxPpZQotxGal2fS6xIXf3ptMqgPKwptDUBLKnhKcAyAOK+XxsxdTgPaqjja4yT3+tWpG2+Fd2Zq5TDmYH/HTCZDbf+D1Ro/SYA1/5WIpgS3fMdjVYWPsMuCJORpF+cqCdIiO9P7/LgVqWDI89NhJnZfDXhf2WiscHVzxj2BpM6x2LVf9k5weRMKQF06NAnXfvXJ7cx558M6x66Az9LWyO83ZOpYfnPTkqYwCuegPhI0/bp3313F3kswBzUegDZ+ezQXtAoNU2nQXQerLTi2CFFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/cd65252d-4314-49f9-b609-cf2466d77bbd","name":"cd65252d-4314-49f9-b609-cf2466d77bbd","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b4affe86-dba8-4519-8efb-f1b7227e5113","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"dcdc7281-6a24-4014-bae7-4732772f8093","clientPublicKey":"MIIBCgKCAQEAwd/aoqQ3a3XxA4wJAYTbc5BGDpFG5DvHL6vv7ezDhf8ZSUuyFzD3k3J/AUZWkjoRX1Eg6elWRZXlr0D9HZR2UGWKjUsND66Fc3M2PzSpoXAUKPN5rPgXFfRrI2vEJldLlmplVcxkwkqASK1+mygK9CboV+j+7IWNojaY5kSly4e3MVU4Hztncxy9b1PUotLgwjL2rWAYcENXTY69K8ykDHdgyIi8QxOEhOPO6qq6V6gtXk6ef7OMsmg6i+gamE0SZbEG9LxuuQ2ykMsA15uujadZ5jS5tNldUuwsWX+jeHpqkCDyt1q0HCYiNwHU/RfcLCDvcJrigXH5Is0/yrLwHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0c632630-2a72-4a5f-b6b0-1307ad433c57","name":"0c632630-2a72-4a5f-b6b0-1307ad433c57","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fcbc985d-96b5-4708-b268-45adcea3e7c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"2c6f7147-34cc-4681-a669-3662817f8923","clientPublicKey":"MIIBCgKCAQEAoyvgEtykcJjn2yHFYPWAm+aYzO7gQCF5Oog8c61WqA/Rf9r9+1F3EoijV8/MAEcpVPR1ROfE8s3YfMxhdsa2Uoitlw5UYdittzE8fq7JxHmXPDK7lb/VIfY5KAA2tDs8qTOSEu+Ec7OknN7yl5QtKNE2EJye+eWCuKilJEKetBflzsCLTUYhZg3eFDm3R5zG8ftCgYiHCd5llARQi/OBygi9cCv/KNjBSKgXuemXWYaHcxXIT2noaL1K409CX4cKfw0eUHyDxxk1LNbjbff7/IQAVbF7oV+GI4IjMYfqzvtz6LdVNgsNsAeYk/lSfurxUhzqHxqjHxxTpnM5hUPl7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az599gv3du_e2etest","name":"fv-az599gv3du_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"20015249-1b43-4ddc-bdbe-9eabbe5c8291","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20216.003","status":"Disconnected","lastStatusChange":"2020-08-03T18:24:46.5374311","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1091-azure","osProfile":{"computerName":"fv-az599"},"vmId":"cd370cef-75ae-4c14-8eb8-dcf61a930a4d","vmUuid":"6FEBCF1E-4C81-1947-979D-1B02B755312B","clientPublicKey":"MIIBCgKCAQEAyK+WSba05zetbh+8yc66MvMDW3EY10oU56dFOufjrWJMvvwQV1H3ihWdP0ZHyXtl6++Ad5xiMZyGyBkaRtc18VPkA0hOXtRLap4fxzl0pTqUpdTGQQNThO9wsCfrNPDpbpibZaM2SGQy+CM24VOlH/9CRYq/r9IyvpuS1I1DtkOMh/q7golW3E5nlbE3pTtLYxt7G9pSBC08o1nd2KfIKanuiB5Z8jDn61A0PlKX09pHtlj69Kl40T3lBP4JP6QMYpj44rQFh3gnug5Wm7aP/Yyu+uQfqn4oyCtDnFe/NCxmP5pd4ETaOHnEIa0TLJSIWKpkNO2YfIAluirDwxgkHwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az599.airydkjhyxte5j5rmihydofhkf.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/d5737846-684c-4677-bd09-17f6bd6d43e6","name":"d5737846-684c-4677-bd09-17f6bd6d43e6","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"445ad1bc-2688-4494-bdf9-35cef552f758","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"6a4659e0-0ae3-4f03-ab72-d5288e141586","clientPublicKey":"MIIBCgKCAQEA0ke4HVo/wrRIbj4SnIwmn50E1Z0HCIgdoSk3XFLTjSg4l1twegztSoiNs0D77m3e3lbpTHTxkxgrA7PDW3zFRdgNeRJJGgfm+oNvRTjfH/HQz3jKimZHxeht6n1h1A3LPK1y+r0i5c2kwZy6hPM/KLqYtg/u5o9STztMfLco3Eak41pbxTmjmuVBM9mLu+hJ33HDLEYkDK7uBYc0+48r3PQc3VswVuLxvcs1K6LvBCwi8fDRcdPoR8D4euc7TfMX+KYD9XAyfCx44xCnIZunnrwdqw6w2tZ6D7HdpQc6yiVEXqSj9psoNUgbU1sbTYZUGsxaGDI+BrEO8/eGD1LNJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20216.005_CENTOS8","name":"0.10.20216.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c013deee-0be9-4d7a-902c-3302abd348f1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20216.005","status":"Disconnected","lastStatusChange":"2020-08-03T21:47:38.646154","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"35233802-56e7-4f80-b794-30920b9fc659","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAw0PI3TdeLn2zuMFMs8qjmWLt+U9dsLlr9rt4NfWGRTqtHgpaWlTATjQfZn1Hoecz6YVcrHG6RdM8bPjog7vKQdDMGYgu68zIgfqS+f/u7nVMTTX0XsN91lj4t2AfRl5Agm8ReXhfGy/uwtqosV19rwEufy+wWZ6GWiuHtEl2Dt8Nx02YJ6mq+rJ2M1VXmlAi7le2jqPWvnPD53v2eXsQFbgj+IM7mdmVsooIrmCRVjyyJNYJLAy+ljKtlWptjh/hBaYgMLP6loC+VouEh31cOT4a3KzAo1Ox7Qo1BdP9n7gdJTq+XEYxPS2+J12l9jK87ux5oV8LPhcDqFlfTEj2rwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/85459b06-6924-4593-ad37-268a76e64312","name":"85459b06-6924-4593-ad37-268a76e64312","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e25d8ae-54ad-4ec7-a3df-5987a9745675","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"d2ac833a-5c37-4b78-b72d-fc531a879077","clientPublicKey":"MIIBCgKCAQEAlxwtNTf0SwcBIkd36AmRV+AMuxUx0L/24Lon+BqGyfHVHKZwty/P5ItOKedXUn71qv2w/XYyvmx8JXv17IO1v3EV2uWOQeTMmu9LriV6aG1HpUckJG3j4LGu40LAqh13sFxyqUcxKAzU8nyvqgIAtu0xt+jEaSnVvhvPNGTV2Mrq0YHBo5bhd6PFLEchYTnqQuUsllQcMIhV3LylUq9L3yqf72ijMSivcwy5T+i5HV2pOVog8JL5UZfHDnS4uIRzivmgz8xo0PNCuusHJlA0m1W+a9Rmm1Qqmt8nXEWfEIpcXLjEm61DMxATrGx5Amsjkw+dSBy+ExD9lgu4ENNeUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/9674e03c-ec34-4a8f-827f-8fe51cd3b3ab","name":"9674e03c-ec34-4a8f-827f-8fe51cd3b3ab","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c09fe076-d940-42a8-a54a-313600f918bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"76646fed-9d85-4cb2-ac9b-4a417be9ce5f","clientPublicKey":"MIIBCgKCAQEAyXndYqPaHI7MPXpI2KsVBB4xwVJM64qJn7r3ssmKVjjlZwembWvFPOa1Hukc9a+lg9Dp6/5ZVefpxgS47RZI1BLjRu/zS60eYW2JOoAvJp+kZwjeIGrl5c00GL1LPDjUnTXqzidJYb84ArCsogKq8eQK7I5+Th+WWK4ZomxlB4++KYRa2zs46Grkus1ftMYFk9t4t9ZgkZ6rzToe1Y6KkfNmFRLECwy+97hhHJmF7PXR84DgG5wQY8kOUpP47TmdXccdEL8gkRVx2NoTN+wUWScIEHck3Ob1nUXXIJ7KN2AGIjqyd5LUfnNxXYp/0xTQXbaFg0PT2TB3d4fsERY2ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/bc6bc772-9a82-4abc-9c79-12f55d54c19b","name":"bc6bc772-9a82-4abc-9c79-12f55d54c19b","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"835aee7f-c24f-4e72-96ba-7ab0c090171b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"cdbbdb3a-a197-401a-b0fd-7ff2b4dae4c4","clientPublicKey":"MIIBCgKCAQEAx7hNA3/8tgBY3NTPQYk6P4PByLNpwpPcBenERG++Mz1XLxZMQdVH5bX5Pwf0DUedc+uv96mQ0DXjYjaEsjJIvfI4qVNuoXgBB0xdj7w02F4R3PqSIcriclG1Y4v6U0fLGcRY4SRRVrY5g85T7KglyV+bUQKk1x9BysveT8HMAhMVZPNT2DgX+22k9mAq06WlP5Fglyo74V+P5rwfhbg/22r5Kv7IuISG3Elx/6ncH4qx61FRzJwh5Bk3aw3f6qjjwwPNkVS/3J0pCzAcu3m566AuCUAG5FzFoyAf/KxuG24GtD5CqDl5WPG81hTX2lcENb1o6JcGfrfKGTIsXyQIcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/50ed4ba0-361e-4cf2-9c9c-c9ad7baaef4e","name":"50ed4ba0-361e-4cf2-9c9c-c9ad7baaef4e","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"33c29919-c72d-47dd-9e4b-81deff49a3a1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"e2711060-159e-40c5-80a5-e63c312592e7","clientPublicKey":"MIIBCgKCAQEA2suHylM0e4qsFQxLbCD+kyfs3tYHdCHWB2O8OtATkpDu1t+PefjSTb7B6QGPwNZwKxtI2HgTba8CphpEa9C+n74EatVeRYp4Rojn0uNPEQmMuqzoxXJ+YnhSZBiErD3m6WFogp8xfcZXu7mb0IMgxUECRiI3yYJ8yjnTf+WiTWEf3Gj2QoJAm5QRtOExRNqDpeI0WlL5VGJNai9baCgV7N2OviGZzqt94ZJ0uMF7+bmY/Z1vvMqZg2t8HyAZsOs2HDedsP4hsAKckwk52jR4LbFOuUcPFCegLtkUveFcquIFalEUQXvJ+lCLFJhqQKUyjmkNVPBLWBdB9yUiif2QvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20217.002_RHEL7","name":"0.10.20217.002_RHEL7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"028d806c-6007-4ec1-a11e-36d8d629ea7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.10.20217.002","status":"Disconnected","lastStatusChange":"2020-08-04T16:29:23.7357023","errorDetails":[],"displayName":"George2-RHEL7-1","machineFqdn":"George2-RHEL7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-RHEL7-1"},"vmId":"f27f628b-55b0-41d6-88e1-1fe4bcf94260","vmUuid":"83033F24-1F29-7349-B353-C4693FE5C147","clientPublicKey":"MIIBCgKCAQEAsqsEtYnOlFNgxKzsk37DLABoSHgKdUPQwvQcw7j/g6eHgaXIfktimhHSXnIi9D2LYykLhN9ea4MqsyalEzUzdlvBbIt1DCq+dCzJweUYjHH5omcI0XvtYMPiQrt5zDv1YV+Ha3wC/ZTNdHirvRcf0bfPBIyjom3MzT6xhRSnWHhIf5PwEnCDBLtVyhEltm/6GJw5dGFOI+jQmq6DT7hNL/ZCZSXtgyk+qrtpzHn0BsUw5VPxYtHrhpSFrHgtlk+MnWcTL4124SlPQFqHzgd5bKEkLUkE2AN0mXY5GfpCiGEjf98JzzKcl22y2gvcPg0H4TEKlWdQIsk5qARgYq5PIQIDAQAB","osSku":"Red + Hat Enterprise Linux Server 7.7 (Maipo)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-RHEL7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/673d8fd0-f67b-4ac7-b850-a7d513ebc50d","name":"673d8fd0-f67b-4ac7-b850-a7d513ebc50d","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2c11ce44-9124-4e7d-b658-f4686e2902dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"8cae07ab-3c67-42bf-8da8-01dbd043457c","clientPublicKey":"MIIBCgKCAQEAv68jO4kT+PRnr3HkDRnAebrcjwMEglDBClb1MpmF/LcbM6COL1h25MR+tL/k6mE8NpUP5Hb8jWRNMn/uCz0ICqfEuVQ+3eclAruA0JR7LjypJO4rzM+toeaELeh3LtN4kCrgvvchH7cFMkELp2RbOS0g3eHj+XwK7UL3D/NYmDZWQEW8M1QcgZ6D+dIJELfEbIEQVTdYQmpWpXtXNG30zPUaKMU5v2gFiqn/5eYpmffg/OoeaU7R+T1Z3ecFKZJK2udKMJTwT+X2n1kFcrKkUFMCux5yXDCvzrgn0oRCizc0eqZknBRe06y5IaRXYZIj56BmxfeeliOBmlDY9ISB4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/b9482e06-b88e-47fc-82b1-27d2d7b18de7","name":"b9482e06-b88e-47fc-82b1-27d2d7b18de7","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a796bf32-d21e-4b18-9a63-82a10dae2c60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"48db57e4-b569-449f-b781-42b4ac177f30","clientPublicKey":"MIIBCgKCAQEAzWFlg020Z2DQtHpTx77ThZxH7jfxMPIb1RiCa9u98wXwYn95B8ad/u+WCbqHx72uY9UvfupgDYd6xM+AjCFzdcxQTPF74P/BxyfKgc8+lEkdu043lJuCG1Pp19lEk4A25W2U1UQo0iVxWBhez7YzJGLq82QlS65DdpHFidv/JnncjvqkbbFtj8Ws6CYauQV7DIgcdyS1jm2DQoo4uCR19xi/w7z3xc5goU4VFiuG0EIHdv3N4YP+omuxZ5dGc3bsqkZq9Jm4FVhYz97XDCjXaMIEs5DcLglS9NzcICfhoi4ckx99lRhfBQi3Xc7zgK/uDRSbVscOyLGWn8EWzEnEeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/ad7f6341-24f5-4b91-acba-5c388d9ba622","name":"ad7f6341-24f5-4b91-acba-5c388d9ba622","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d382f3ab-8ad1-4a34-ad40-8b78e52683fc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"588d2e5b-d3db-479f-ad1d-c0fcbcc0f40b","clientPublicKey":"MIIBCgKCAQEAuEeJ+NRmIB3hdFyG8oK2PYSute0argcLzrrJw3b2jcnbckcW90CX879zauxYkMNA5x7LetcEl+u9SeanoH+iJHJ6DVZQcLgZq/t5qws8l5Fl/7Hlkp5AH76MQHcaKWook9t1430V7YAepuu551ZguIRixGOrbbl8l2o1QSHTmSFWAUdx+QlFUqdDeqQnu3nbASxw2pwMlpCHSbf/RtUW5QMY0ZfqmgLsdf8HRB+VSoPJ+TFdHFdn5ynfHI6Yk+ghmgHZCcpjUT4TZ6WwFqDkpH5x/9b/CP6VCzZJV9aI+8OfDpwfPM4W5ee0qjfA3iUQcQp9m8Y3g0VfxJb3ykGB4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-GFI5H3F6T01rel4y_e2etest","name":"WIN-GFI5H3F6T01rel4y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c50f953a-ac0d-47ed-88d3-149a1dbd2521","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"58ab21d8-8051-4822-8473-6f56e093a4e8","clientPublicKey":"MIIBCgKCAQEA2bGyz0BAnHfYF3O7JvdnNVLmLskhl3PnRnaZKHR8x4k2gckIsKvbZGAbtzUiherCB33WQ4CDTSxDYK2KS/64wUwBjDd9UtEDFsUYoZJ0s5aiuXNyXL3KqgmxG2rGzY6BOVpDnfaLYNoFnJfE4VgFJeEE3g2nIg7Rcikl2FBgOtpljs9/2uei99mmpBhPLrm642x8wxBumJSYMm204tUxTAOBzCv83DqTWu/FejAEe0veQYbVQbJIlZ/JFI5Pr3qZgjFpO5md2PTaOZtl9rIk/2KUGIoV4VxkgH6WQVxXP3uE1a1dozXw9bL4RmGpLDH9OF4fn5Zqp51QC/OxxLNtGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-18npal_e2etest","name":"George2-Win12-18npal_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b8e44982-7d66-4083-a36b-3b224881faf7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"ebe42cc1-aad2-4cce-877a-9c0f00dda01f","clientPublicKey":"MIIBCgKCAQEAx1Bd4GmFMoI1of/cZCzhXFyTjUDmExqj2MJL4Q8cjR6mBcQ1l0JRRVSWS6MhfijP7zmxsv2R5NOxnuj2LyMlju8N4LcGG6Px1gEpe+9Wj/xOxWOuBUjJT7a7RptB4ROImn6Zf9sWd1CzeoKao8SwNIBuaPIiKUjgOCZxFdn0fgDOyZ/o/kF1eh4McoX/Pmwft8xBqUr4TYc4QjUGsgQVrVqZKHYZAhk5BHm3/+bAweLyGXCE7bAJ74xRc0QCFmwdafaCUOtFr/HhX65u9Zld/TvFuicCdsGICyE4iodmVqtNSkgzuGmzKuR/mcy7ob7OMtMCgPQLxZC+qFZ1Pi4OwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Win12-1afboi_e2etest","name":"George2-Win12-1afboi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"060e38b0-ad5e-4ed5-968d-83514f98f365","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"abacd270-9302-4f8b-a511-52d62dd2dc3d","clientPublicKey":"MIIBCgKCAQEAtQVxdwUddF2RmOQmm6NSPMVPKbKbuqrQJyRTdTMlXDDwfMw41y6GWWv22KoF21bIqEcM0jfFUuIk9Uhvj5Ix+WJ0rs1NhEQHLv1WdDq7d1z5Gjqh5hRaXfU2pNRu5deq3F3obUGyf5iBYiwgWGhrBu1dJLggtwUqEzDTGVn5gfbAwzEmaV0uM4CWumUBV2+Zm8r6HbyMgtROmLzjV2eHDlqSNcyrRen5+Y22BA7ItJR2HqQql4Eptzv+7rg4wqFVLbBe729c9creTepRtYqqIFlTW+CL9y50xApIGMAx/uixyRsA2KbqQErPDNkrOh4hAii9ZbjEzH9BMMtvag6YnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20225.005_CENTOS8","name":"0.10.20225.005_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"44ef7438-7fe7-41ba-b403-142f58821506","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"14c3a491-941e-4106-8244-dd759d1a29ae","clientPublicKey":"MIIBCgKCAQEAxnjNnfBUJO930jf+JSmskwRbe3nMVoMabI47cmkdLMp9Q5XOe9cixgjm/PgOKsdtN2KJ7EV4ddPWst46JPEW5Ub/N2a2tKNENkW6NZkSodzmqu8MqScTv+m+sSKyNcX9wPSUOta+ls1Z/SB68dqD+JUMe2r1mXIcEjSyvzgzBkheKSkqXanr6DdZYQ4PPNbdzbkO+neong/f5nP44oCWQl4Cd7gbHhoAgu/UUm8IkaPgsctem+oTL/6jnfdaHvC4bypQZTvTuHi1+YZyPo7mf/rHO+c+K06DnfmIqYGeqKkokWjW5I3j4lI2yyDXazKBK2skDQdvUers1cIkl9+9TQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.10.20225.002","name":"0.10.20225.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3821ddf5-6dcb-4b64-af3a-1607d0db856f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"7d5e6311-a5f2-4b42-87bc-27e24632fa27","clientPublicKey":"MIIBCgKCAQEAzIpWm6N7fDW/gRfv2gaMSC0sDt2vTz9dGct8L5fsZ6/I9ZPjFnJ9GKVLMBM0Lx13lEGN6cBnLsxZadpmECdTAJ90QW454VjvuRQymphdxCjN8YFSdhJuGfl7mtY4pHjgUopgOzViRRTdcfdLQoJd+1ue4vtIFB2BV33FhNvjK5d2+0tpWAqwtrJLJlk+e6Vlwe/FSTGpXGRdOLer36fqaDXaiUu9r7Nbn7zNuS8OqOSjf+0Xch0vGEwBASjovJy4N6UD+nVmI3IpORBcOg6xGAq55WD41gw5yY/qisV9nEqLC2CgSga+vrA75DUKKyWrms5H0x1TR/V9xHemiKdrYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-GFI5H3F6T01ecji4_e2etest","name":"WIN-GFI5H3F6T01ecji4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"966ea2f6-d9b7-4b94-a596-b96d8cbde89a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"7f028758-7241-47c7-996f-62465bf15339","clientPublicKey":"MIIBCgKCAQEA1dV5BaVcehhGNBtpUjGDmUlKhPoBpY++fRSWnRFxbKm5kMPL5B4zNzv6QNaOAUAbfGYhKTyWsPl6x/HcYS/pZzLoT9lIfrGJ/FUZUtXXnVpJoboySOL3Ai/ltD3A1F5Tdt8tLo4h3NMezWQyeZgl6jp9UFwZ8uhyDawVZE+Lucj4BEmmroUAB7lt94RVLmvCTs3lILcKRRtSBw1jS6fSvYilEV1PJpviD4OyGjgBzY+nU7yRWbIMuQTgfixuJCOIPbmIeHqRWdbQ/AClPtwhc5g3FueSqccCRG70y6VDBHlhC7zIO6fpFCBKEl0s0ERfz9wjvVd6JvtE4ij1DngvbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-GFI5H3F6T01o8tj5_e2etest","name":"WIN-GFI5H3F6T01o8tj5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f984392c-affe-4bb5-afb8-80cb0af26410","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"windows","osProfile":{},"vmId":"4aa7abc6-fa99-444f-b7a4-66fdc5ff1dba","clientPublicKey":"MIIBCgKCAQEAmc0Ml+u3QsqaVllaMdkbq0fMei9WZNU8S/dRGfbtbhNc2lz1x9ET3F/lpAbyJA/esJBldd/NfcIL7wuy1GPLKHH2l2AU1+vUzr1C9dNYw7bLkfDW7tujsa14w4cFTdt+ZLXf7eFdQIXEEaTEjO9+wOz9nR0I/gHxSDGuu6sgJiOpRvGsgFvzZR45ZZJzayBYqwr7JYT8VczLWtttvm+ixgu5uugQ8ocdeMrZ/XeiMunFjmYvQkBk2RBcKVTkeT7cCZ/c06EIVQA+X8UWzhtix92cN/kHAUvmhz9amu92SIS+kT40bt45xAOTuKzjZb7qHcRny91i+Hqlk1aBkoy0ZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20226.003","name":"0.11.20226.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f4b7793-5d3b-4ce4-b6b5-60835c400b27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20226.003","status":"Disconnected","lastStatusChange":"2020-08-13T17:46:04.4500181","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"85fbe82d-e2e2-4efb-81a0-cbededb32aba","vmUuid":"1A065CD9-2717-2B4A-86D9-0543A9CE7987","clientPublicKey":"MIIBCgKCAQEA99oA98OG1nexsmO1o+AuAl4nSlRbs3ZfY2dYOW0Kn1x1GquHaHEkIwjgH8qAaWV51TqChcaPAtQk77iTuaK2+nXPPbwZgk4zKpLHIFPUvxDnIeMVbkuDMwIw270DuqdhKYV3Lac9MPiFzLjquZHpOmCNtToBOPX0kFwzasx8q4XU3QUwmFy75K9uNzal2MsDL2pWJXOYtP/IL7uaRh334+Ud26uEScUsRagAQmOVMUYhPce6sdvZ9sKwHtaBogsd+ldNKWldlFOXm0GEUza4wAngTN4xkQ0b0MNMUugQ6UzhyZgok8rPZhxL9iBIKEomudP+YrVhafd0geQ0UMwEuwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.tofnpw4zf0vuvhgip1ohrha5wh.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20226.008","name":"0.11.20226.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"14331b12-418d-42a3-999f-e3224c50893f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20226.008","status":"Disconnected","lastStatusChange":"2020-08-13T19:01:57.4849254","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"207a9406-3a90-4c1f-bd21-7252898b8102","vmUuid":"15A85B52-68F4-1746-9978-E4AE37923C43","clientPublicKey":"MIIBCgKCAQEAv90lIo3vHh7Jl/soGg349klU4NIJwk40zcal2JFjCY9HAx86Le8TaQO07Z0+54tgdOpx+CLBkdkYous6wk0PqPZKLuKBdYAxvXISv1L2irwM9ovaiYY1RbJFbuoMgqITAdcV3CC5VZC20okZk2KtjnFr2hPzxGSptLYnWOTMtKXvN9Al5jrwqVU35ME3btsmqNkyzSWQxyB5TbCQQI3oAAbs+Sq3D+EAi6ho2BVpwrVgVfbKykSxNh066iZUy5jclLoqvm7i6+x4/A9rVYjKf5/Tnyg6UpYDLaOMOcoFYpUlbGfdzFyVSDzuOgTbbk+g7E6RyHiZ3NlJhfakM1kIEQIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.rhlozgf2hpdudly2njct2sjlve.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20230.002","name":"0.11.20230.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61c3fed9-bf78-48cd-ad8a-795970261361","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20230.002","status":"Disconnected","lastStatusChange":"2020-08-17T17:06:43.4371884","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"52cd982c-b97d-47e6-b8c2-b64fe681c6a3","vmUuid":"93672C39-52E8-A84A-A634-B9FEE2AC9671","clientPublicKey":"MIIBCgKCAQEA4A+9+ylgUysrUTjyJenQUB2xgrIFBQuBe8R0Jjn0N5qZDH9pjuzxKUyK7brmsJ8yKwWweSlzGPI6E4NzBgR+QPnmycq7yDbgZTOv7Qsi+Idvvj+0XSpSnLdn7dKgMuByaEUZVTib0eR5DggHF8lUrKblNnZjJpaLOr4eaZSI6JiOLX0/f6D75iPECe0VOsynlQuA67uOpSVy+s+CtiXZFkK7rfoyIlJDGpZ+KDmfEgeFr5KFUAQJ8VPFPqUqmXKaBQdJj+2dZgV1uBhfsvxW13fBUOHEyp3Zpt6zmSgcuLBzJo3FLhRmgi17Exg4Jgr3j4J5CVLpOlCAro1DRASzywIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.g0i0jinzrjnehgfokct3h5wgrh.cx.internal.cloudapp.net"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7asLSEAAAAACA%3D%3D%23RT%3A4%23TRC%3A400%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiEAAAAACAAAIUAAAAAIAAAhAAAAAAgAAAsAKytMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D"}' headers: cache-control: - no-cache content-length: - - '116515' + - '114906' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:31 GMT + - Tue, 15 Sep 2020 00:27:42 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 190cc5ba-2250-4e2e-92ec-18e67ee65e39 status: code: 200 message: OK @@ -783,40 +1851,65 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine list Connection: - keep-alive + ParameterSetName: + - --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEuhAAkSqVh4u2Wm2KQMhUh8JmZAR4lKgSdqq%2B%2B1rSB%2BKRvjYPnPssT%2BUWlyHv7Iue2X5oQSQbNOEBClEylI5DUPbL3W9yuqsEJWoh1n2%2FtqJWd5Uev%2B67%2FNOtoNs6l7fz4VlW06uHRduplkLO9cc23I1QY5u7uQH87A39LZrzvIgul5%2FlHnX9M1xmP1523fy4DVV%2BzoIrJSfZC3631krtTMyUfyeGHeuZjiaQbS2E2cpLj9%2F9KVst00p6nt1TlWbqoQMo4tWNWH8ExozH%2FG%2FKxQbeMzEu2nnG8ng9qkmJn2VmPEWSXcLRNvYm6BhoMOSHTooY7LgCdFiPjdHUhiNJChWTD6fXmDDCEQoEx6vWBEgpwxkAF5EKY8w7KbpmMWcFWJbCEL7ljn2qX9GdxGCeWPc4ubthvk28V0nKWAFYAHaCOACkIIHKwtWl3B8SYK9ALCA7l7oGlacAmsKxguG0fAhhnIABthY8rADGoMB4VOzkbSABu%2BdR82AUxZz4Ix7RUIDWHtQAuMMimDtNVuE3ti5871PFwMBVkCDb8Dph2x6p084CmDFSR5OiHnAAUpPgP8M08TJL1xPl9WF%2BFrWtL1Kft%2FdxKkynOnXOkOcHFFtfzxzX%2Fn8%2FA8%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines?api-version=2020-08-02&$skipToken=%5B%7B%22token%22%3A%22%2BRID%3A~J4geAO65T7asLSEAAAAACA%3D%3D%23RT%3A4%23TRC%3A400%23ISV%3A2%23IEO%3A65551%23FPC%3AAgiEAAAAACAAAIUAAAAAIAAAhAAAAAAgAAAsAKytMoA1gHmA0YBqhCECGACvgAuAGYAYgaEAEgCGglGCCIBSAIQAEAAcgCOBhQAAAAAgAAAQAE6DKoBegGEVgAE0gi6DlYY%3D%22,%22range%22%3A%7B%22min%22%3A%2205C1DFFFFFFFFC%22,%22max%22%3A%22FF%22%7D%7D%5D response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458j2q8r_e2etest","name":"fv-az458j2q8r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b5b67a49-d96a-4c71-bfb4-402dbc65a3f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.29004","status":"Disconnected","lastStatusChange":"2019-07-29T22:47:40.4056457","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"eec220c6-d97c-460a-8e73-330e8f50ec20","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2YM82+M6uaoBxKNGOpra8VE9ZiScq9blNdXVzb9Ke881md3/3mL2yg5ZlGLicm6i9KxN0y2RCyynUxE8VNA+EWk+ucp0ecwpw4dpezQkynet2HsQlZZ7SOvtjQEJidZTeT3vio2Z/AT83+1SVuQL/9UAUL9C9oDk1Qw104ElFHh53uAUSNxNbA62HZyf28d6/hrc+N/YNOseAHpZ2Sdjht74oO8vIKYdyrfnA3fBJcWCTTHU5uxEXiiLdJEdv1ry3g8EHMxGAnvD/MaSOTHVZl0BwWH8oy4nAzPY8+yjf/5orwWJHSuTG9Ci/qcUxPozfIXI+TIgbNZDJZ49I1QXywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22002","name":"0.3.1910.22002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6b8bef2-bb6c-44ad-8668-54f01b93ac60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22002","status":"Disconnected","lastStatusChange":"2019-10-22T03:31:28.5340666","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"b7f2a60a-c366-427c-aad0-4bd0ecfac56f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4PnDURBxDW5Av1rRHNpxBpQw4bAIx2HgB859jgfqJSIg2UImBxW3LQnYxoiCuJEI0weQQEnYkYxERF66k8sp9YIEq8eymBB0B92TPmpcLdSPNYnaysUDG3q0jYCgiwJRCPKBMBO0jWotHGreLt+zEC0NfWJJ0hbEKYoluTB+11CgD6SI6Llbk1Oh9zJvCb9fRIvPpGh2poDm9EdfvPy3IYxNY+8gtGUUpHlJLh4x6HstJ4ojG1AIxjYV57/pmEy1dp7zCWVXlcE0bVc38Mg51McZd1CHvMF745ghSXl1kIK42n+r3eSlMU8MFrn+vfQ6H1UYOv2YWyG13liXyV9URwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458kpzj6_e2etest","name":"fv-az458kpzj6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28347fea-77f3-4cd2-8a06-84614a84f1e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21003","status":"Disconnected","lastStatusChange":"2019-08-21T18:51:13.2968888","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"7f5f939e-3391-4b37-8202-d0af0b34fd1a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+xobAhdsRHWuvuS1K1mbjadPugtY5kfBbHi/QJTAOvjtBf4Ho/eQUNfer4Z0IWs6fM8o6/+QISVEEAvpAfiUEEL2NES+WJwXjEaUtLm5fzWthHmHbDabw5FFceAPaJfs07S3coUnYLnRUS+lCfhObx4Wom7b9fsJ6e49GwBB3ZOJdD+kXwCJFKlGgsL3BVg4H+k23bN35XejfyX11cDyCBBkcuE5rrKAbZrGIyds7pK04eJpvwdy0BNeq+U4MrK3NfYl55I2d/lSuo+c5bxxenDx3ZZe+evoA3cFHBseqve/7mzhcJhBnMvuRCjqK3+hXdQiHTt3LKtAis5hlCSFuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22003","name":"0.3.1910.22003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4cfc0465-3616-4273-ad72-d2e45f3220c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22003","status":"Disconnected","lastStatusChange":"2019-10-22T03:36:28.6374799","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"752adf9c-ba28-4065-bb35-5d3f9867082e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1RRKebgj3YgB6kcGA/O/Kb1223ELx1a0FNbWdcW1JxOzIEvEFaIJo/V0Dj2fXy6C3+jUv7SRN7dRhVUUVSNbGpoixnpmFsZT+iQFIpQeu25mGk0KF4scjvaPRPmuNSlbIsjYP9iM5wpxfWCaZ51Y57cY/wDRPWiYbraaNOP6rrWqsrT4uLjr14e9KNxuZeeLs1cP7cUbjhYg1yxrGl9jmYqT/5seMIgOLTXBisPygkdsfSlgvM3koqbRZ3zSjX1QVvQnwwHSTNSw6wbEy9Q0pxnGbAUK3APPytiTczN5WC00wawglyFfZb6oKznJdVQKmrjrSez/Ms10smHgMhj7zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458l5hnx_e2etest","name":"fv-az458l5hnx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c0acc50f-7346-4ddf-b8c7-015e26649ea4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08003","status":"Disconnected","lastStatusChange":"2019-08-08T18:28:05.9227854","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"392a0cc9-d25e-48ac-bad5-210666329368","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsH1Qh8rCub+xQ1+yvXsglGJ4s4tZnjSe1rGa+U+Xhz7DI5mPJuz4p4N2h31nkghaT9VTZuWFVZ1Kq8jgd/PGOPwBrJCqicQvcvniEiQr8fNAd+w+nZdi9Gjp+nvVYpadxaXgrDAUvKCXJXJvRQT1zKXmqn1Yynef8zWBOcStSr9X0tf3z+KUiAn14GjMFmwyocAVk9Iu5eRfQNE2WkcLzuY4WKz68w86StBN/FqJMzS9nfGS56thyt+9XtScqkBWL2MQbwUFvzb8PL4OPCN/bmSL5M+Jt9BJeXhD4UEEcrrIFCKKNuY/KwymCJ2teyQ/9IBgy2gKjjTZiQLz1PqL4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569dlav_e2etest","name":"fv-az4569dlav_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"671f1c7e-ccd8-4da1-9dca-6cb246bcb040","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25002","status":"Disconnected","lastStatusChange":"2019-09-25T22:39:04.2942994","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2f31c38a-3a7e-4a25-ba0e-98eea353ea95","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoqMHiLIfXA+WPwHULIz7dawcuFe6Tri8+rLC6up7uJQBPIG1FUQ4xuXHGn2qKt6+F0MHD5qhmpxk4jOILLpxlpkCryTS4xNthDsAEJgY99LmUPTCcZJpsRDktl13gsfQJWb7UkNfNW3xdfQkjjmnsjjYaFk3XNHwLqn9TSPhLeBmSPHBMDH25Mo6fqPp1pDJMDwJZHISuUaSdXvBm6dtpu9BJ3JV3Vl9x8jAFWPp7LhmdXAa1E5j5Ivf5wD8nKuV6TMvPOSdUGhHR3pqezBd5mF07UJaDRpFJyAXViK8ircWiwoxpkpSaGj0aT5P8AB4rvy8o8WzRD89j5ODqkOJRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22004","name":"0.3.1910.22004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"91e81c46-fdc9-42df-8228-aae08cb20e1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22004","status":"Disconnected","lastStatusChange":"2019-10-22T16:46:33.6781833","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"e960d3dc-16bc-43c6-8b78-008345fada82","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2VWBTbUqyXCg62Zi+yxM+kyYVbBodcAq0QEmrVpjJUsdZ2wpg+Jwf6ArguCC3u4cu9H+b72er3A1fQNJqYLA2KLYSuViVrOtoHrthVdAoz4o11GK9dupi3c4dNrIVS/i/hVFRyzxjdrbotL9F6ERXIc8Yx2TAqgXmkU+YBdHuLYW5Jhx0DywD+cEti1d68AaAlEDZzBlnIQz1GFtOacMQ6gknU4KZ0xtQT8/ZbjIvYUg+BUEJc2y1PnwoRDvqYbUStJofssVoTrEXbJlpyoKfJcAaXLOmUXYapySnhA0Pa1aZEiHJyl0xXMhSK2lwvo5n+ZZAj9+Wqq8a3rd2fZ/PwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569is1b_e2etest","name":"fv-az4569is1b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28088228-38ca-411b-a52d-d8156efc519d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16007","status":"Disconnected","lastStatusChange":"2019-09-16T21:15:03.1708253","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"13262f4c-5a56-414c-8089-3bbd7462c382","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsq2M4JvkuqOlVr0ZY/hhq04J5E7MDTKaoiXghbIqFDoyholpIUDlp4LRbNBlG2bYm6FAAb2pduqTbLJZpPFLCkT9nTx18BnMHzmmQ30HJRCTiRBeV3CawQ0nlowlXvPSwOXgUYJibBP0ao8JB7oF9HyxQHBWUyOH/ixgHck33zrvmzinL0jSR65KV1P8pgF7927qTIVcZqRqtHi0P0ODw0AzCzgQmYyoq8XFrzBVT4BpqiZ4PaeTMcSJ5j2JNvljq1v9tRW7IbpONsSwjpmb80nKj15eQczxPgrKKT0C2DCaeRfqxnNn3KjmVVYDobib8GWkfNW8gkizgIOnefUbJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458lhv0k_e2etest","name":"fv-az458lhv0k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"674002b1-3d01-4117-9b40-bc649eeda2e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07008","status":"Disconnected","lastStatusChange":"2019-08-08T00:47:34.995209","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"cbf3a585-97f8-47b7-94be-b25ed063fe9c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA60mpvvbkt5nNHDRTA4yb9WVzQ/uMXpbtC0I+Izfq8ayOazym+GZCqFzzE01SzbPpXtInAyS7p/nM6/l31nsRY5Utfc+MRIuOsNCDreCdaTDvJspaYBDLoWGOj/HBWlxYRIBXBI+tgYxpUW1c5eIAMiKyKDOX2HoM89vfNDvvFlG8hYaXNhqIZkYaPEdAokYM0kloHL/VKj1LpymWzfGHRxfYHpXyQcYPc3+RNqvRMFgo2gmd/qCBHLh4ob8mFtSB79zHqohtt+esYIf67FQbRZnNa1uhZmkKMpw/jX68qREGXwX9g+JNIKhPdSR2eFrf8jW5jC2IvQTsRGjTGu8BEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22005","name":"0.3.1910.22005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"43caa558-a146-4cfc-93c9-e449df19cf24","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22005","status":"Disconnected","lastStatusChange":"2019-10-22T17:26:34.0512589","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"3e7a7b0a-23b8-4015-8719-33026d428dc7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxp//qX6AnRNTSYIOAVDzn6sek0o+ZUZRF+gsoxIKsJyzfkea3jQpOOc6zzFTuiqgR+D0/osfTmOM/jTlrH4qGvrSeGqpBszaA7gDDqeskfHNAz1XVug5mqtcDasRyKwAahXYjMqR7bZNbqnukM9azAm9AMILuoiVd7OMrCJyk9qIkmXhUpvlRdzbvdc6DJwboM7YWf/dlRCTqIbRgukC+hNaK6RKYnpAkOpLPMdR1R1dF5x5LGrKsxNGm4q22o/Yal8GQG3VMlPAOX09tpE7iQezS1mtcVjombmi/0Td/53VvkInNLl26lzqqNedZScFVaXgGfX9vsOW8heBZyyKNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569m3e4_e2etest","name":"fv-az4569m3e4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"df8c9a41-4ab0-429d-a3ce-274434cd248b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.05001","status":"Disconnected","lastStatusChange":"2019-08-05T21:26:15.73134","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5eae0ec6-b193-4f6c-9843-1207ee4af981","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnEm4EVC0t/rYeWN7KtcPbudMPjlzaLzkAOkIDmTuWprav940ms7iU8Lp01fZ4Q9Dbl55z0ixat13fnKaKYvqx63IklaLrKBxRrDHDLnMWdIeUeDTMmsHxnpHLrb4m52glMC9XCAYVEYwoid5GdTIzucrBekhhpndrA3KHlLHcjWIu8GvRgjyBfCKAuQvPtw76VqjL9ky+CPagMKDN+DDK46u6Pb5qEmLOxKYxZbcDf61wvJaOwzcg6Ti/0+fwyrJCyWg5No89o4S0vsrAcmE6G3i8W0VtBxIdpx+Bk/8T1esuNH4K4/9F2O2aRSNrYkAegR5/kQyT2aHuE6RaqCVGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22006","name":"0.3.1910.22006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"92df0b78-8e63-419c-b09e-efcb77af3b15","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22006","status":"Disconnected","lastStatusChange":"2019-10-22T17:51:34.2694146","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"3e3e270f-57ff-4a1e-9763-43ae14d59f5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApqYHhBLJe1U7zVhSgrlJlkTIXfKyBVIDrYMk12Re2xqGm7eugxFSb3LvdhyJ0UNWQTAx5JxmP3L93VD2MeKRVw1K2t6h6ExUZwZk6DvJ+/VXU8OIW1aoYzMFpFm8YMSwdhF+bIjH6m6lzQ3jkjcMYtahgBNaZGlVBLMjqea83cjUM+IN30ByQWfAPCinm2APS/hjVEZrVQxJYdtiDwnYuSUrDeWDAUpaSthqjG7OthgwtmK2DXXpUO+gh+fqaPIlXzuKcnanzRfVZzx9kbia04fKCmApNXB0Ts5cxL808gkKDbZY/rZq91Zlyz4N8oYeX7fI343WM6ecVNfzjhskhQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569nivu_e2etest","name":"fv-az4569nivu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"59f0c797-91cf-4eb5-8d50-ffbea1827610","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17001","status":"Disconnected","lastStatusChange":"2019-09-17T17:04:33.0989802","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5908b171-e468-45d8-b9dc-6c654b5e8812","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQTnbTTLqrg+veEye0OlHOHogycSAryu99sWNpbfGduS7fmqgZo5wKBcsUoEyOcFh1wbNsG75rmG3BsKsUha6bQLZS0yr/Tl5FU5IqwOGnBKu9pebdr186A1e3y6vWGl+Mf/amoKDPFOtRgjBlbc7PthIf/gDtByvGnVrB+/opunuVecW3yaDCBv1hEvkKwcV6YZ7x4dYh+hOWhvzfYMT1xi0/Am4HhPRq2CTc5Rew/gDpx/fyLSEadsqZS5UGHAH+cJfe3gIx5wrumH3ncIF7cCJ4HkOnq4CYJkY90zfjuLfh+0cfIHrpTsHmMAfO7vH/NtyIfIznwOiXhox+NW5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569nvwf_e2etest","name":"fv-az4569nvwf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"482325c3-4c37-42dc-a3a5-4ed0571f431c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02001","status":"Disconnected","lastStatusChange":"2019-08-02T02:15:31.102508","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e2ebf253-7d4a-461d-ab9c-1810e1d40bc7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxPS0zv2NmraItwg+3CQVWEOYaX5ERltQflbGmIhPro7W1omKmZiGWe0RhdFoAfIMU8TZnlcY10+ZVss3rbCR8q9amHXyVjnVqCt57P4l4CmO6woROIk1YfLFO9i+NcFZAGFDB5JadwJbGPAC+JqAjyoHPWdaJslEh3qAH2sQHdu6yh2BZv4/+xRPZwF2FX4H3Qc37fQuBLZmBJtGhb3gF5rS1WPDUuWj96V3LIIevPF7Oh2zAYopy7x7xaHFn0W8/rXlOnZFxh5cZYgQqMs2bb6aUi+hr9LLUtOnQNvuGDNaA+65EkAr4veuJi1jfv74tyJf0poVfSRBW/4rpOo9GQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569ogbl_e2etest","name":"fv-az4569ogbl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b74db10a-a48d-4b2f-96b1-bca2d6996ba9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29001","status":"Disconnected","lastStatusChange":"2019-08-29T17:06:56.9064736","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"13f4026c-4efc-4eb0-b4cd-f02a2b841afc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo1CKT96uAzieqV6uVjvTyHOMh1h3/o9vMKa57xQH5wKh+1t35GEIDg55vUZjktvxenBdV2Q9Q5jTd+GTOCnJ1vGcgDFNnWkyz2on9o9rgk8Q75p70LNVghHmj19MY+bENl/vUI/5ehiaZI5ZPA2jNWWRqw6uRaAlJFl8Dj3P3g13tMwCRATtcz6ym2x/3j4kZaCuqoD65uLIL0kx8LTkbS5aErhLLYW+p3fX4pTWHvPLiuoeb/eB03XgNGfWaUN23SGKWc1YKBzjzBYmBw5Znxq2GDU4gnsyoM7jO8CEHZ7EHFtVx3iXxXYVodvIn3AA6HLYmeHhC0tskjUo/OGrgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569vzol_e2etest","name":"fv-az4569vzol_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f94cb47b-0e70-473b-b105-41084a19cb61","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31002","status":"Disconnected","lastStatusChange":"2019-07-31T23:14:51.6374582","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4d4c8179-fa62-403c-b60d-318d37e2dc6b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4vKEdpwrdFo56DZGougkpMr0oRynUXSXTo7/skoYRkNzKMBuntizr1LkgEoHfY+Yx0w6+jnGh24FPu/6qkdr9x+hiPIz+nCjnD9q3skNg5edqyT8cdk7EU+tf+IbXGBOeKL+qpf5xpPwiRyNzwlOqfT91HoqpgmUCK0TmXtE+/DXYPx+0CgU7GUtrRHWl14plEhfmvkjByJq+8qfsmtpk3TKcZ3MVLTu38PNGwEhoUXSUI4i885AbG2AlBUa0uFZc97zRlDXoyTIfDzVRpQjWf2Hbrs/H4KcgIH+Hia5gFDbs3S2FQbfW/T7yoUYoKgG4YyaJASEHL9eYeM8U/GV/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569zlw1_e2etest","name":"fv-az4569zlw1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d4958e9e-6cc2-4f7f-af5d-97935ed61cf7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18001","status":"Disconnected","lastStatusChange":"2019-10-18T16:43:42.2692093","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"49528cbb-25c1-493a-a7a8-41f1a1f8ccb4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuJ4oQE7owZSfBaar3jxMDBueh/Z+v3ZYLt6wnBS3aJUqzk2sTvvxhvM67To0gX4Xd7mArdYX5xZw+RfjCeHAB4Q4kzhbGEEhg4ndshU67l2vYk7aJcRP/NcRi4LJTS3q9/Fxw4ukknFYvVXxJulHfuh4Ou2tOEYE/RVMPUZtuzay7BbfcqS1rT1TwcOb5PlECrdk9DICRdF8d8Y7ZvBzvTn30wyooWLxKYOtzclVCrq8LMQTKPl8QHnD+i2gEScUpUYvxhXdbcmdImRPLXSKrI0w6PMlM6FbUZvGW1+5Mm/dFn/xjDKOuC8dPnwJnhNZ2gdU46rjcJAdnu9NhuTEHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456aivdu_e2etest","name":"fv-az456aivdu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8ffb76c6-a741-40d6-bc41-b67c744707cc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13011","status":"Disconnected","lastStatusChange":"2019-09-13T21:59:36.9337665","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"16080b01-a65f-4461-91a7-2a5238358b61","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwZOM4ATlw/g9ssweNG88i6/1oWa8xTeaecWTcG1j86ZAB5rZduTd4ITOMQ+spyy4Ky6Lkt/M6x4epAE5Y30f6Nra9fkh7XO9Esgj41eCYFs12zekBIzFKFqrHTTVGcb2xUjveVSnyFLKOh85fY37UP4bfOUwf5Aw9lyxbPP30xlYEZZwa0fPV250n0Bm1d3EdOBiH40DjA55m6MUM/vvQ/zf6ihptq3BJF3BovkAECwvk8ZzbJ7Qiaulu/xNO5FehpZ1BHN2kYB/KWKMrM+P+YlhpCEnuLw0QlpEWUh/Jza2Ridj5fwD8LJwp3Zk5PFd87YoA7bhKYQAKa918h3aMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishHPolicyEAPIgnite/providers/Microsoft.HybridCompute/machines/aashishHybridEAPIgnite1","name":"aashishHybridEAPIgnite1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3125545b-197a-4d52-becc-4a229f107251","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T23:05:37.7326773Z","errorDetails":[],"displayName":"aashish-desktop","machineFqdn":"aashish-desktop","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashish-desktop"},"vmId":"1a2d1628-986e-4f82-95bc-cb1fd67f0683","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyDDZVm2uhA0Q3K0cEK7FYLbIXuwQAC6MF4/x+FsqaZcYGoXNm5jwC/Szsxae+Y5mOyaBDA5ULE2Ue4JOqSZRiVvghbZKpr55vwwr/jpl9M2YfejsQ6hhKKIwhZAXeke8koHdzTWGIa7oCOV1GCYXIi74PQplwcKtkRL20Rq4FuDVCMvcQcIa30DiXCdToHt2QKOJcBOtRdIJIMwVMQNSw2RDHafO7VYvy+juTg5H2Zec5UYLFZV/yTrVHwaJtL50RRNtMb4NFaxefMyYSXGkhm28P7/8KKcWiHNT3jz+PUDvzMm/exJdbbVJOgQn2kZSSxl0lAcUXKY1/2gwPXew3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.001","name":"0.4.19298.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3730867d-b931-49c5-a8af-1e614b37d81b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.001","status":"Disconnected","lastStatusChange":"2019-10-25T20:26:44.928919","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"e46a4c89-382c-4f47-ae96-7b90bea684a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApKsuNRhwdVkYHn+IQWhu0nr4TmhORU0Tq6P1rTTSnGAAALGB3m5ARxZ0VzdfWtw3Gsr6mmBTsrbKeiBw3vUmHZH/DPHyixLTiQXEdKX1G28pUfwSaHn2roPEhfQGpZmcxNW1Y3utZYHedXTEgUuYXyjeIM1Ec2WRsu4cyNxKYHGosdN2Vnm5cWcp4Qq3twkpsn9zL3pjuIL1K6mETPTiJQOs2YYD9XSmE/nja1uVOAlJ53p0JPENowNNTKSIrXaitem1jnrhxCisnl6qFcIpccyYRuQ0sRbBnu85FVXSNTcISh/vgbDgqclr3I6f57J3JgG1jNtPlvap+LSMap4MNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az467usklm_e2etest","name":"fv-az467usklm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5ad0dfd2-b2aa-46a5-9681-efc843981b05","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.001","status":"Disconnected","lastStatusChange":"2019-10-25T20:41:45.1487113","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"6cc0283c-7ec4-4a70-a75e-132d6ac62f5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArfWguZZUyfCEUVaPWSa6M/xc+rZbrzMDr3cmCxl1/aE1fVWv5KBGMa3T4Wuyko+iNMSsCJyabczyRJePIuNIhLSDj64nJFNupX69dYdjb5JFQkSInHteRLX+Iylz63t5BcIqLkG0iz4HpLeYdoolubN4af79SAdt44G0aESu40PMimvlHxOyybYa86WSObY2boorCMC8MPTxJUo1CqvIN9WlCThIO4Dcyt2XfLYwUQx2KVpZQbSMQMOu334DsFMuHwRo6q2btdomRbJMs2lX8H28Heuy1Rzq/lj6s3U/hG9Q0nOvoQp7cHO9Nv3SrXsRDV/cfO47zeAJvl313UrVZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.002","name":"0.4.19298.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5de934de-e63b-4eac-a0ff-f6e9a73d42b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.002","status":"Disconnected","lastStatusChange":"2019-10-25T21:11:45.4253152","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"b038c42a-74fa-4a53-aa5f-18c14a9103e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2OijsnBzODPnt98e1K3GH38hyoLuEJdWaPOVoPyRMflxbZPlRENrvwnCG3wLK5etxMiY7czA9zSwZ7Ri6ZKUyMyzpm5DA0JI6L8344wWq7uGs7WZ2gUcVIgMC3hD4Ly9cswdbj7O9ipuKONLNDE/if0US7SHbOeXYVuaeSRgDP5tKUqvjRLZT9ZyMDzgIAzwhdm+t77VhYmQV1cJMaQXEoxsDWZNZ6k2/Hc5/CMnCt9OSjMLtwkyfaF4G5FWV+j071N+ZSakMX8P43lk8dvd3xCm18+aUuRapP4+MZi/SWQz4lIsYqGUYGfO611gFMcKosvnexzgUd41L1gSx0fZrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.003","name":"0.4.19298.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2f3a1723-cde6-4f90-86f8-88d44756e3fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.003","status":"Disconnected","lastStatusChange":"2019-10-25T21:26:58.4957502","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"81fa2726-524b-4a6e-a0f1-28b0ae743a62","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2h9Ri+gYPaI1Fqwoh3hXCp4CZ8q401N67iMN2YFmeWazeqZ17Rey8CugAp0vFxGl+kXIff3loFa9oJPxelGWxI+ZJmcbZAvik0UrD0pbovzBjXR+hkeS5i+IE5pORmXxp+ali2lZ6s1qgv8GTA9l/elOixLX2r2Bx2AOGWpWypDhaN129tJ0JcOvaB2xc0ohRqKbx4Ohl8+mAvysDmGVFq1IjbZv7NTH/YnVj1++kERHuC8M3GxDrSye76JBBmdfygKI0qHmWYDD252kO5TjmZxrct+IhM6bFryik3pHsFeBhEWTOkpdA22K0eNvMt3Nc2fSB6rqYpnwzajCeDpFEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az5995mrq7_e2etest","name":"fv-az5995mrq7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d41ae06a-6dd7-4ed3-9526-d6c0f5a008f8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.003","status":"Disconnected","lastStatusChange":"2019-10-25T21:26:58.4957502","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"7992e248-09a1-418f-ad70-35ec88f6659b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuU4530bRxKwqf1/iRUTcUOWTqUkUiAx9mnCiSLc3O6Ds2mBvZrghZGgjoOBxvbkZBUVHwlt1lqzd3f4jiWh9RoLZccRS1m7Aja+CBbmxxE8d+UiSncMv5FH4/J7N8hwNfXXDXlWK4DqifXErQkGQo5nUBxbIi1+RnHwSJv40e0NDxjabKLNe3DO/Mku2ACUprbauM5ni7GpGu+wiwTg2bltZCm9+RP84VVP8mQlPKkrx6gINoEFoajYsFQlhBWd4Xu+DL1asKGBlvFB/uUg9Ud5Jzo+pVP9Z49JBRsgNaN0MNzjEoIG28N7e5sCARej+lHblDPp+Y7KNHG6GRkOktwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.004","name":"0.4.19298.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f6185e86-422c-45e4-ab83-f513f3b2e242","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.004","status":"Disconnected","lastStatusChange":"2019-10-25T21:51:58.7887717","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"9d7b280d-92a7-4e2c-a14a-10a7dd02a0c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwRazIyP45x9UKRZ+nGDj4Q1+qV/P7gM22/0yTcja/8fhALBkr52dTQxTSBPR1MwNIESPljM/wP1oqiA9lzVt/7p2t1qr1q+MIBgtH6xY0nLmiLTSLXVd4jsjZLHLEfBodcsVp2ci0pntKJw4HVAtzEycn6tp69TY2wo49VoUl4amHACCAebqJm6kXwPncc+6KO1CxBx9zUSK67yUrKQI1rppa8i62SUl/smlnsv/mokd7JGEdbku6sWiqvsRoaqjQAOBaYgsjVo95kosFHjQ5nvL9lqS4KAMj9Jv+65iq7App86bCIcNOvP6e1RsHY/BAU4zRSNBNv8enAbo8NYjLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az600wkm6a_e2etest","name":"fv-az600wkm6a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6078e011-67ff-48c5-a52c-9cfe5fcfc428","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.004","status":"Disconnected","lastStatusChange":"2019-10-25T21:51:58.7887717","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"8b34a758-63f5-40ca-afc4-5c69b76efc76","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8kTLY5RSqTrwtRBAuzNCeb1qkF3hmE/H9KtnGr4AcVd5EdKlkH7h8no0/IGmM8MgdTaarBcRWsRT25UrDM5CA+Hq4rslxeRovXPaFYV8yUkkarbVyHLg+EcKJoxeB6b18l8Zdu6sgaeONLzrk3PxxyHnacf5di+HxU4b/xflhOeTbC7SxS9Bxf4I4k26RM08BQmTO5Go2017z5loLf2Vaij8AceWgjuEoJKz3qhZCB2AjNu/QnKh4RL0ALj/15pvOQouJNKp/6ZgPqb90nVfKWL3j0U22tTVMyiL96H7Mhx4Kf1/5SQjr2ObY+5J7lVx/js3iHmooxgCzTM7Vpml0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az4611s2gt_e2etest","name":"fv-az4611s2gt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1299c4aa-89f6-4f1d-948f-ae6d6740b10f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.002","status":"Disconnected","lastStatusChange":"2019-10-25T22:11:59.0007547","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"cee53e1d-f56f-4845-9f03-3f209b43d7e3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8Glt3YJibiOW0c0yfHRbKQL+/DAcsoWWFVHlyQklr4JJOA3HvmQIc0X0WBthxySdr+YwurP9mPVBYT3QWWyXzjIxjn8o99lmkNIqE5PGZHw/pAdLhMYMVlgz9Q/A4rj9yeEWaca/GV794INuQroc36EhVrabuzSHGdCKQ6GXbdS2AT3/EkllmUA21RHVvgwy82FS3WnPXmiPikCzjik2G9i6HKdnG94PywEvEUTqllClBKxNP/URyz8I8MN44ASrzk9UTVgA5nVHdGULaHShr/JnW8gPRkNllSsmit8pqdhZoZel3ijlSSfZpYBHUVxUpzEob7tEJUwxcOW0Z3gQ5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az4583ezxy_e2etest","name":"fv-az4583ezxy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4648832b-14d6-413b-8e6d-9c693357bd46","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.005","status":"Disconnected","lastStatusChange":"2019-10-25T22:36:59.1770161","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"62612e79-2271-4486-bdc2-d2aca683cdb6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoPEMUP1VqPU0yNg5olfZla9CH12g/Sl/K86fzr2Yl8jJwQ9lHa2tTgS/Pys2ajF7ClkQlegHSo2sxQZFd4zylsyv9xe6Ms+r5obuVOhVFnNiJd1n1x6FFJwrnbtKnmwykDxo73v+ImokvYTgWihXlvi//OT62UkisN3HFqgP1oQmXD+hRzmyJe1MuQMFy+Thv/69ZjN/HBQxfFiS3cCDRrNCd7xXm6yVHbIdz3ePlE77g/3bJbDlL+efvSUxuLUGtJSraQMA6JRajM3RPJBqaJDhyjC9xKaf7nO7MmUCPXHKqZqg5shoDKzeUh9vnuC6XHmwUCedoMh/XYlcjMYMxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.007","name":"0.4.19298.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a4359047-dfba-4af2-97c7-ace28940de9c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.007","status":"Disconnected","lastStatusChange":"2019-10-25T22:46:59.324253","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"5b92065f-3544-4823-be96-99340035eec9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAveebdvUCCSHBRCTIVIygq/Up8mzr1F0y+5U+uwhueoYh1kGILnhkfqnd9iGcCtx0ZzmhEJ+c1jvS28qvizr9TMoU7eHEB1R3gbvKF8zTWxVa/+o1LnjcNxlAx1HxP9lsuMcrfJdSNyv0MeDvkC90FZHVN06LGDn9WtyK3z/5XQYxJb1VpFCg77QTMv07XFCHjwlxBocXb3uT3uSJy1KnWDdG3iSZkPezcc3weMnis2iwimoVpe29d9I/HqEe6s0A8NMtAu+yW03u96sJ3L++IO/d67DkJ0IRbRHi5rPpabHuZapNA9+JxIYt6sw/LaqpKqf9Dkga7yev4NoX29qd9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az599em6y3_e2etest","name":"fv-az599em6y3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"29aa6885-f02a-42a0-8e3b-f6a775a660c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.007","status":"Disconnected","lastStatusChange":"2019-10-25T22:46:59.324253","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"bb7fd096-09f5-4b59-846b-c7923e331865","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Zy2AtY+0fTwhDqEyf+6NdQf6jwvL63vFHgnAfyrmIRSWctOUNrb4Dz+2Hc0LywMNuay3TFPsc5NEOoE0qqSwwu9KXssIkQBWykNK/36IfFMMUzb2P2UGj+xwYLDY8k9N9nPVbAgFRXUdRt6fqtdH+HjsS9YDaUfSuuxYFmgAYvmZT3VgPbrHb561YJoTXo2ZZdwdxbhecpHuUf0igrwOc/t5Gsim/vIQqnskyiBoZj2MmK7mlRckUGOqH3yRv92pkhT9BN3pdgR55zOJgNgIBtqNp6PK2WOSPvCENeLBhrcRw2Ijd6unVDI8xJzbitJjyhjywhLXNPG0n1kLL1giwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mariah/providers/Microsoft.HybridCompute/machines/mariahvm3","name":"mariahvm3","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9910e4ac-3789-4e98-8819-9891cb9266dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25001","status":"Connected","lastStatusChange":"2019-10-29T22:42:31.891501Z","errorDetails":[],"displayName":"MININT-BVC3J1U","machineFqdn":"MININT-BVC3J1U","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"MININT-BVC3J1U"},"vmId":"dc76caa1-9dbf-46e9-933f-a7c9339cca49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwnMJagBFOLyAGgKjmXuYkuX3NQzaSH9o00FfhXstfEHpOSGNn6PAPnU764eiZU4voFRrtvvsTiYEHqElme55pcLlv7jEhVvhtRUY8cgpDz/s/UIQ7S01kA55n5jOthNKPdUgkAg2qXYqBOshzhWC/VkiORTS9ixWWexm1Pr/YUcsPHq/GpG3FgRdROW9bK5gBjIzKnQ88w3hKNKxAOAm+r7lI880FJAAzZfPRsHOwaaB5e2nFp8ojr+lmdSYBOH2X2ZV+2pxbc8XlUOyAfX2bgC6mIzu6IKdj26JxYoV6mg65t8NI/zllXoq9PI25vet0VSd7yxLKZN4elPyFZCATwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.008","name":"0.4.19298.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3f94e3b-234d-4ceb-aa62-b49dabb0a5da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.008","status":"Disconnected","lastStatusChange":"2019-10-25T23:16:59.6320698","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"02e99d8a-d836-4423-9848-ee8bc498258a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA42La5rK8EFFS/jI2OYF/TXhDi2/JhQ8zAqu0Hz0D+AY0ycebNgLWSI8rB6dKn3zGfmg94jmAEIARTQA6xC3PHn2GASHl2MdAU90rsRasFDX5PkrDCR4MBaB9hoSgORV04s1DDGoVUOZ6BScIDc8wj7pBmqSmoiejb0wWEvbjpnk7ku7OJyDfCLuqPQ99N7E5D0EA8nUf0CiY7ZGwV3TIjplJTYr3j4PieDvfSDWi9HNifJzcChCmyoxPiaw2BNe/LBHmsflb39H5bHyXp2q0q8T35tBLBKKHZJoyJpND+YH4pB3SNkqsa3xpD8O7j1PHHuUJ4szGsY30ZEtVTw4WoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az623i21qn_e2etest","name":"fv-az623i21qn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8afb64e3-c7e1-404d-8969-82492ae20874","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.008","status":"Disconnected","lastStatusChange":"2019-10-25T23:16:59.6320698","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"4b34db7d-8410-476c-9d98-3dfa9516de53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtFseYxLXFySF+M/BSdju+miX/9+b1ux5DGGoAO77MvF0qKz/Qfd/+6HYAjG7kAWa94W1Z6zk+CKSnX3k8w3BkUmjXXqFxrOUmTv/zgP1gBmPCThWzpSS1p7ean9jk4NTbUOKuzx5M2W/EH1JEeemR/Gn7vw34Ns53nMHTySRJWp4OkL+WevcS3LZltOFia7Ez40YM+cm/WM8pZpGTSwwId+mHd75AM6cTlpGZxNf4ZvhTvXafHVVJNzmgeeo3Qo2jQMXgCWm5YzLXJy+KHny7P1a7rHay5TEUUR6QQxvlOzuKtZ5VjLbQ5bVJNrka0l33nRtWsuGkWZXNgZRMbKnHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458sle97_e2etest","name":"fv-az458sle97_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb010d30-150a-4461-aed4-302e0cd2f4df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.006","status":"Disconnected","lastStatusChange":"2019-10-25T23:51:59.9312367","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"f10fcd84-8136-4dd6-a42d-9878ef93c89e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4Y7ODbB2vOJM63zYZmlb1RbDvA5fmIGjWU6Tltqa1xeKiH3ADT1O93V54qaF6J0KP3S+xAHkG+I+/Bk8Kl3B0TjbrvJE7seE6M1Ox8CWG5R/u5Lb4JZa/jkvBeX8hHRyjFvnXrSIbjn8rRTbsG9F5bNhs89rVJowwox7vImn/V2bysI7AGXtP0KcZskrt3TG/Zdf/tmKITbzpeYOW3L0Jl5jXbs6r/w08arwhD89P1dJFRnuDfTe2vbhxocsDoIOOsA4Si+a47mACLVSYNS+AGl9XyWRpYSu/SFmZu1ibKOrNlhe2uvZyMCT64Sr/Oj+Vytjxx60hQw6q8SQPBdKzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.009","name":"0.4.19298.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b1e5a583-1b3c-414b-973b-df939db8fb5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.009","status":"Disconnected","lastStatusChange":"2019-10-25T23:51:59.9312367","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"94214acc-3522-4fa1-a889-0694bb721e32","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3SdcCjud93Ti0VejJl4WTjMWzLC0zZ0y0AfHlgruqMkIWoKCMPv1Q0eeW3OGZUUIJUV19JOSGXmZNui1tyhBfrA4eSKtXzVETVJFvxyhxukR8GkirGR5J9Y9jFMPH4PdkZgvhOUtqPWr8yzesyU4n+Rod7ln82kZh1Bd0tn1jccSrHtf/q8s9WdIp91BEJzY6+i0HA+beT//NYJm7kRGewFvrpCHJy7spQj6AG87H+CBBLivHPvIqyQy+iXUJ4AiJMQqNAUreLghSQZywDsdxX1/6iT5o3Xr8JVBNSd/n8ej5foWBAfsw1g2rImI8YHb8+hyhRFj4tITjgj5VLXxPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az599e5i64_e2etest","name":"fv-az599e5i64_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f8d666da-86a5-4e96-a56d-6444b5d2e6cf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.009","status":"Disconnected","lastStatusChange":"2019-10-25T23:57:00.0207011","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"1c77253d-cbf1-4a30-85e1-b5f725b43ccc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuZvjTYQKKMT6oKRcppLpasOfnTIt7+OaGizgMb/R5cusZair52MR+c1KKAHCGb5RAb8WFi7D9hz5UaPiBvw5T5VsJDM4Uf+WiJTGSNBjY/i9D5Vd81hXOfGa0BUvPH3US32KjcTBsXRQTpNZ03pKCYcXvEyXwTWA7V3gAkwSk6ge2BoARAjvgZinVLdhhzUThP9tY4TnNO2xDNVVPfuCEe2cvCBWipCWJMeKxLHeL5gVHDrN11Wyt42ZS0OqjzZBuR/rRk1Bo5oMN6hyg3vUjZfHFT8aOrjLiSbcpNP2VIrZykgKS/EXxjxaUkMLJlkbV10KAQNs/rKyPAxsIcC+7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.010","name":"0.4.19298.010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"244e7a8a-78f0-4957-88d7-eb16311358e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.010","status":"Disconnected","lastStatusChange":"2019-10-25T23:57:00.0207011","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"1fba52d8-3132-469d-8968-4e936243a278","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvS5d6OFNPA0NxzHs7v9aONkVbFp49Vb9mvfA7ghSK+2fMr2O47Pna+GkJUScxJph+cJtbvA9ZakZ1Ng94V8xFRqTbF0ZjNpI7jpueUG2UKeoB8WX8tbP4S4cBIJ1loje5bnsFuukrdr7gqhjjHDlDTWP7TBeO0pwWmY+jbeggkjYnnUdllHsuaFpTKAqrdrBLJLAThH+xlkvICKgVJyy0RO1OhTI0mkyLyNTDE5RC5l24tsRZ7/7bZwQoI6mlJiWuI5mL4xWPU3H/1ZSQIt4IPNFlUzZFxKCZZlp36PBsWNl9eGpOvCj4EigYQmJw6twcEJkM+e+E0TrkimCBMr1IQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456lnku9_e2etest","name":"fv-az456lnku9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e72a37c5-c46f-4406-9d36-e2f0342e4a75","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.010","status":"Disconnected","lastStatusChange":"2019-10-25T23:57:00.0207011","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"24b40264-29b2-4e14-8032-573963d25d1e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr+++142Ejskw+KhjLKZq/ixOT92bcfRbQQKQcZ7qKuKmXOfAKkpOCmJi5AWON87q6wgLvDg+YDBX63vtpUHk7VjS8M32oo3ebKjB7otPqrlhe7c19W9wHi8Q/1RnJKxQNnQLnrnHi52hVZw/23vh/T8AUy6ga7OQdlNqj+K2G+j472JivOc1Jzq/C/dsMUUkjqfOnY2S1Y4fKNhP3QGKSo2WRCuy1Zck481FxGYYujCk4qdY3ErLAkwWz4rkJMQVC53+HIqbiXHFG/XtaRtlEujvUcjFSVXOD1Jpr5N1q9Ch7Tu0NBHmop6TkVHtgt3+j3aE5E0zWtL6sZck3uPj/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az461xt7h4_e2etest","name":"fv-az461xt7h4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cd416d91-20d6-40f6-95ad-320ac024404e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.007","status":"Disconnected","lastStatusChange":"2019-10-25T23:57:00.0207011","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"3c7e380a-9ed9-4320-b9cf-ca4f2b5b14c4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwrM3VP0rbibr1Ww2VrNxapQFeXN34zcwOrsOiy48MAe/B+TXBgEdLSr5CalAD6TFBQo4ADhjFSvc/3IVXbe1OUJk4Ounx3OJOwz5bPm+u2s1lfXq/Qu1qdg3Gl97m1vWrSNtwqaOP69rntgzoD5888+ms0pc4Dtwmrh2tBpbNP0bLd4AVsD0r8FjdgVVU1Y27rNmWfLHMxOeUgMNELPxgaCj/3AkJJqFlHS4+LEbVmibx6GwLuyQfgYSu8ClvY7UKyQoHeq253zmgjGEMyZHSOv8KcfjgV/8m2Cv87n4OQMa43Gntxao0zXK/cs7PbQ0sUavniVRoTquFDnkbe+MlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.011","name":"0.4.19298.011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"799cb8f9-b75f-4b48-926d-a00f1e2b68e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.011","status":"Disconnected","lastStatusChange":"2019-10-26T00:02:00.2681833","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"b944820b-afb1-4a78-b945-ea3157942c3d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzI7kJzgZqbrvZ7qNizVDv70ZOUILnCDQykOLYs6f4yWBg85cc7c3B3/6AzFbGCvmxari6ZYazh7twdUkUHEpsx94So1oN0StKPon3myvclX4VHM4I8OaYjXFtz3pX6e0/3QvvHWCEUT+aoxVK/+Re1sQbjrctBPZIpcI2C1Bs7buYWYDFzFT46eQOajEZcDK+z+pmtMPjLqymDHh8kiqHGojj3POQXSQP1t+qDuSdvsD5jyPKAGpROhwZqHkFobTJGSBJc1MMRh4pLFOdZ6/MZnfyZMpPPLktFaXDxRf1niD1Roe0QzigVmSHuMUAm8EJp9bUtpDDyWJK+o6JpTexQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az5994bqs8_e2etest","name":"fv-az5994bqs8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9d6d84ff-30b0-4a6e-a501-73099395c12c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.011","status":"Disconnected","lastStatusChange":"2019-10-26T00:02:00.2681833","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"292b0162-fc31-4372-947e-49438740f76f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwMZCAvhInmOc7HgsRzJQvJ+WPk3AdF7swrMkvwZoflENLI/GFdBG6loAT/3qiMoSR55VOw0AzRoCa7ddXDqunOUMJCxVnfo9liubJ4GMfnWRWNix9juLpxtswhsgCy10QL549ESBV3Q7253tl1tQOfi1AS16rO/0m3jfpdTP2bUwJMxNx34XofU2IbXI1CNNswiE8rrhH60pu+CSnKEukqedEy8stlBIyI3LsjAZGXuQd+wh5JpDTTDvME6I9YcgDSk63eXg/uxEQSj5845iwUIXOWCLcy1k5Skqr7vPXiEbqtGBHmLXwhTSMdevMwNpkK9SYEDU79HBe9my6YprrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az461cd3tx_e2etest","name":"fv-az461cd3tx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d4e4b08c-6c2a-4997-8ba8-3556212de84b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.008","status":"Disconnected","lastStatusChange":"2019-10-26T00:02:00.2681833","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c71682a4-43bd-4bbd-9223-d33a85e6b394","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlIKuVV1WXwhk91cs2ehutBiYGwfV+TeRdVzq+zJrZUMujLA/fZ/HpuInBrSktpz0t8DYhCUKvPyZ1KQTYz7E0WJCcOW4b4eAZKT17Qm5mYGOzcdVGAK5VXF0DTLBJ1SY7W4WZXnIrhH4YFquyw3ZjeL7+xSabSWRJwxlt2Tgi0xpNN6L7eGnc/w6eV9ozoBbYgRHftKU0myy5VkoQZ0vs6jEWuWkUnIwYJsnRLKsgoub1W8hTUPirg+tPiJyKTrmgq4u6Lc55Ve6K+B1r/Rl2rWeDIX0EeTVJrr6Mj9GhZcfHI/MHDDljgQ2Rntp3D54RnZqixJcLj/9cIeWys8FVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458w0ozx_e2etest","name":"fv-az458w0ozx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"62db7632-16e7-4425-b95d-3d70ca863e31","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.007","status":"Disconnected","lastStatusChange":"2019-10-26T00:22:00.4836673","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"d70d5aec-3d6e-491e-a2e9-74ddc41f7aa5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn9zTCxGml8m1W8JxXGHJscKkIcSzdbPTQLpDx/9whIDbEG/TdsUeKjMFmsgdeKD74n0nmNd2pHJvOodJU+xHCAInthBKs2NvZyObG9+sFrCwO6IGvpYmKF6g/BeRu3DVw4fbs9J+kgiG05CkT2nQS0vfdvdbQfWP+rL6uoEGFAmPK4xL84i+eUqxNS7eSz1GXOHP4jPRPjB3g2OODB2H17j3lNNk3B0UemE9jg1mFUXrJTEZzYlihIj8CfF8a+CElJCqLJMTueqcRuZAXh7OqMhyl7cDSqy2mHaoH2Q5LzkKGxpUc+NM+or/OzVG6YHn7Ji5M397vK/7ZQSrzOOmSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19299.001","name":"0.4.19299.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f2e086e5-0cef-4f5c-92ce-b562f27b0870","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.001","status":"Disconnected","lastStatusChange":"2019-10-26T02:07:09.8002198","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"d7192d4e-9506-456b-89c9-459a02fcb2df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzsK4Y+PK4/I3kYSjW4pmjMvQ8AoXHHwHBHaVb7GIZYFqIB33kIPmWVBoZhReruEKldpwI+LCC0yCOM23YvMC6PEu8GYD6pcRiSE9bZUgTpkGl+9GO/V5v6MCxccIMjB8Nb3U1ln18KjSLeibi5eIAtfn0g4Ml7YhvKQ0QVEYwdrPMCnlkKwMNxdVqTLOa7I1U6NPeh95g9f4gS8tvmCKw0lzjXpL4hfQ+2OhmkOicHSCh1pS3n7GqFEuplE1gKqxGAOVeuXd1x42jYrodNWLJ5P14b/cKitXbJgCY+tF/NFsqWT9FYKU57jgu3XE/pvaDa+12Nd97tz4tLsDtFfSuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456fk4h3_e2etest","name":"fv-az456fk4h3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5b8171e9-9318-4647-b4e9-d6693b92234e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.001","status":"Disconnected","lastStatusChange":"2019-10-26T02:12:09.880616","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"c43b3798-d387-4bf8-917c-b7da1e6519a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAua+cX2sLcJFoX1OrC1x4vzClXThtAYC5WP93j5XCGCp0lc8tSx/0eCkIzMQ1dnSnQYLskJvagiB3LBctnT5KQdcL1Pz7Qlr6nupoM7WvNigqqHZxEaW0gQq5zhQ1UzH8Iq+4cLlXgPhpb6baj0x0asC6PgQc+B1z7tPiuR2wRa0524VTQEZ9M9kRCfAYqu+xsFWUc0xdIupweYTKjra6TjyRyysxoUM7ctZVAy8+jjxBY9A6j2B7B8rs+anMktAoyiKpIdQ1O+WrLus89ErfyfaZOCIuUz6jWlGlJlYI1FRiXAUtNUAA81IBXSyeOIVArZ3+1KxkU92gzMqkzQA6AQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458v8lhe_e2etest","name":"fv-az458v8lhe_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"09f12dd7-1355-4ed3-86cf-052c5e3d81cd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.001","status":"Disconnected","lastStatusChange":"2019-10-26T02:12:09.880616","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"f81c7948-13cc-445a-97b0-22be23ed98e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4IoKy7bwEBsdcNX2Q5J5TAZzzdLfR8DrAsgTQBjw2XtuiM/7XKnWaqgLsORtEG3D842TVXx2HiCcSTKmt3rJeLnRHJQTwU1ilq0AaPp6z6jwxHx9nla53b+fuhDLRWVgLulsvUYinq6wKXcu3qvK+ItIgewTX62A+PZWoQmcUpMpwEVliGNTOzAmMzABwR29a6QwOrtptaVfCB9cIClSJOKo2/kQTgQ2LOiAoAqztqIKFBWTUmlaijpQ6HJjdqCjI/ttFMKJDacIiMLMdqw2ix8loLOp9pa43fFbZ2HGQdhI/z9wKTiyPCAHcaE4U6iOSIT0zcterit8X0e1a5deVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19299.002","name":"0.4.19299.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a0f5877c-48ee-4e9c-ac49-6f7c2dbba821","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.002","status":"Disconnected","lastStatusChange":"2019-10-26T02:27:10.0331629","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"5dacc1ca-17bb-4db7-9470-c90a4d336fec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx/aEF3lpDW0wagmAkmxCft52CrigVVwkQyeNLVQCWGuIiiD6BMczQT3JQwxN+THENddPulouI1NGiBDZv1A6phtKpN8lvF9dnQhd0/Yrf0c8+tGWUd5rjdINI5K//7+7ZhhnvCTECrnvwaTStg2ZmdnPtIJGCCspuO2nFXZ3o0UU9qaRrQvR0PiJvqUf9wYbcEhU5h0+yKVP7sTZ36nvmSun0uIHlmOPTYnv7407sT3OH7Ssj/Rfvdc0gRdCeDGjWgpjVlv4W8dvkxHXygRtg3v8WSUvEWT/Ob62JckTATgz2HcRW68xYdtLlfh5JMq2jT5KWeC0897w2xjahaWjFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456tquc8_e2etest","name":"fv-az456tquc8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"45edbbab-d92a-4f42-a939-d59fb3cd3759","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.002","status":"Disconnected","lastStatusChange":"2019-10-26T02:27:10.0331629","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"f2024591-ea7e-413d-9999-1a4e67b62863","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0H5E4FIaAVI/Pvxwret7K/71/HgHJDBBJIsWqFV/PnM8SfvxTxnEZlNdKj3mf0m5Bn5E7Ug6cO5NzxPdTr6Sed07ILqPa3DU1VS65qOOP9YeYEANInES89WaepaYeQNgo5vD15tPpTpQys8XrdhZgAbK6V99lme4RsfD4FHYC2I8CS2sENW6pWRoZZFzl1JeLZUNge+xJye8CMKJrDbyh9OmzUZ/KriWbbkqnQki6BWb0rFKMDiSE/9AULhcUUukxT7eg/FN10MrlPWXQlKbdBfYZFCKvpZF+LFPQMzuJVxZgBrvIUtJ1D5BNoQvfCFFTKdIEfiomvhVB+oLQ3ss9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az461o9iab_e2etest","name":"fv-az461o9iab_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aac76996-f6ad-4eb9-a357-a68e930f1343","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.002","status":"Disconnected","lastStatusChange":"2019-10-26T02:42:10.1701326","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"7935ffa5-075a-4a1e-a1da-c4d3a5f96139","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx7cQjGkP/qd5FY6F0swlBeyOGUSJEyAx5Kd8cF00+6u/dSQb1PoYp5jRQ+Srao9y+gkmaN68cAydiHbBTDv/w2ULV1ZXshKd8n5BvwnSyD9Q7kU3z9XpZxLqF4i7sZK3DEWyCO+Mj0odnlKQ6rSGwFwCo8UspG3zidWMqgiqhWeUvnGpVTio6tWFbGyKdLbOJWE6J4O53BFCpydhQMhHwyTHQjVZ+odZ/Z4OpNCVkz85saFu9FhDS6cI4PpaA2yDtyvPb+DRxe/25rxm2aOtAzMInzgiB7g7BtNbZaTt3tP6HUBSE63UF+s9tj/DkvtGcfbpsm7xzp+R+rx+p1mhIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19300.001","name":"0.4.19300.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4a08e1c1-1a79-4664-a2e3-828ce3ff0630","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.001","status":"Disconnected","lastStatusChange":"2019-10-27T02:37:17.1481652","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"66773207-e91c-43b8-adb0-d03b8e117075","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAziIGH/naB2oS5SGQpdrtpNDwMs/OB26vIDskBDHpStWnPt13P/CFn5WEOSW43KsxvYTC2EMSKK4SlGzostIb/T/57yPFx50DppEHOeEBNPQr/3eFBJTbq5gttbisaVKS0rv/6l4JUUk3skmUjIAF7sgZiOQDT1+HUB900datZmwlTPddzbC3mzdumF/iDmG2miPTyvFZRFVxhbOYdzHQyABbF4e4cZxjiEU7PzlFOCzzu016AkgS/ci2Sl1wOHYZIQKRG/6hvIkYi0ajzpv1NDNbrBls2MGJ2dbuzBDRkOtmT293Pl5WOKhHf8JwJwDwiyPCQQ4Xcw5jPIcNRl3VUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az601fdwsg_e2etest","name":"fv-az601fdwsg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"670a50f2-3e95-4361-9d07-a9f867f36e19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.001","status":"Disconnected","lastStatusChange":"2019-10-27T02:42:17.2317161","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"00aebb6c-d204-4c2b-8524-ab785cd40d11","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAszAkTy1ADiLzhguePlp8gUOXPEHT1CFsgjWTPzNHInglIP/FP5vyewmlynJ+OCss1Uan9FgYVNQHYNnzJkppyFrq+KW4QCq4EzxeTq4HZQoTxNPJjGa4BKrX6ngDAmZu7EOyGLLydmLGD6r96zkioi7WicMV5Z5FaPPzvQeqS9j0jJaCM9Jpw3DFFN4vWoIafJZ1UH9DMpLRWud66Mlwyw/LdiEZChrhsZ98pVv++sCugH+NqdL8uozmmf+cZ6GO9NBZCid2Ro2ulSPKSmnquCfjscDl9D+XaHKEUb9Zq3QWGkPBAhkilT9+v00g7mzpcVvVmxtie50B9dRyhXokDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458z9puc_e2etest","name":"fv-az458z9puc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"49d367f0-ecd1-47ea-9036-7460838b713d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.001","status":"Disconnected","lastStatusChange":"2019-10-27T02:42:17.2317161","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"7e1cae00-df2a-482e-82ac-b7476fa80732","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8T9sTlS6KFaaO9aP8EWu0uOUEJm3HGqWdOcIpyhtAYefJ9VzvJgj6JQhvXj9+uL1Tyg7BNXSQaPpBSia61bwlhB+JVO+Uc3vbTiek291DVpffLc8lnkhref3GRCVFVOIa79JDWD0Mztr8RXbGX+zCzQkJeCuol0q+yaxNZ5UImJpvL1P4LLpy2ewT7rnxmnX+DD+0caNcttUaxBSdlXLCgYDtR4+MgU8eOR7b5lXrE4mx4gq2PeKlOKiTqt07fPT68fAiZPwZ29SX6/THs217InCan3cPJvnxbWtSfiev9Ug3Hsm97Gx7fXDt6WKeoxGsv+CkyVxW+3q/tjvvYJ0rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az4589m7yj_e2etest","name":"fv-az4589m7yj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0a12a144-03c3-4d68-b0c3-59c9e6d22a38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.002","status":"Disconnected","lastStatusChange":"2019-10-27T16:32:21.6637122","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"0e487888-3a36-4853-9e29-885f9999a010","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuJ4tedm1BRoyQSiWtgi7fCerewOdVoaU7c7JMey/M2UHGe8/lypBibQlGhgQlsyTRvyIf4E2QgKsAo093oDzUYfoENhTm0ivBgxlXBpVfTiuZ3MD8XRKwYhx/3roE3CRwTDywJr6ntV+i1ciSqZBga/lLvYAg4GZaz9cmz47+GdH37pZXuAmHG8+An9so+5xksv2sjHUs5kBM+4EybcHmWes/2IxC0H77wMmhDCRjKBoCF/lmyapGFtd8eUGqB0v/PDjtI4DQD/7u2GSjI1SPBQGiWxpEcU1SbgRmggsOcqR7xOWo/vPUXP1S5MjVVv9RMCEOss6Sn34F9kx5OB0tQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.001","name":"0.4.19301.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"81ca395c-f842-4850-8038-73a341e568f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.001","status":"Disconnected","lastStatusChange":"2019-10-28T19:57:30.8964037","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"c217112b-54a3-4e8b-94e9-b113671cf276","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAkr3yh9SXr0VqecbDoROil8RUEMaLIUeIFmFuD3Tq7lWj5ze4lHFucAZ9UFXonZaBPnI20n/I5WyBlPHsK/2xufhtoi27nQDj1fZLuhDfqNexJ/32wNNiYO3aiAAI16eNUtOsVgXgUzs8z0t3Q8uHtExE1NS8KQA2/9r59lHjKDQCMjz9QiaNOPO5fcvkPrSGAs+xAM4gxu7OhT9d1LMRyTZCtMlUUBulrT7IzD7XvaFRvgEpbeaoUBaJq2fIlgNx6JvuNoFidukIFqS6FTAk1efWpYKESM4CpzN2ogyx14pTxXgNvgm1if4NW3vrcQUyLqB/H0FIIjXwb5Ygf8OrlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456wgkzj_e2etest","name":"fv-az456wgkzj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5f589cc7-5f7b-4ce5-8c88-6e690c60da1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.001","status":"Disconnected","lastStatusChange":"2019-10-28T19:57:30.8964037","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"822ee380-94f9-4aaa-bf3d-8612a55f1a8a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzCoz5emsLz7tKrbYSouOIzMMolcJNnyIi+Kb7kItnjhWi38Vg69rqhnJh/cU6+UnbXlyfvVbsJ4B2YOK5BqeLMsLud0zEohLKL64Fz7B1/Zf52eq/FfNmJ0t9xaUyfK5+SxXE3LBywaHGi2FnXRmhHSZEtHwNR2Hk9qq0cpXgrGFym9DUG47/guFeqYoeyqU6WOzbHS2/myDjAwkp0N8Owj5YBtjFtYmhCRKcROe5XfmY7d1zd7q0VtjiH8myW40rkGRs78LHW3W2a69CsnEUEXMs3OZKcYPENRqwDlCGCQRz9RGvq3N6YMJ39or4HqN1HdOYefVzTZjsx2mDvrIoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az464wln7e_e2etest","name":"fv-az464wln7e_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0168baa-b238-4388-8e4b-ef58c12bd3f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.001","status":"Disconnected","lastStatusChange":"2019-10-28T20:02:30.9840804","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"0e8153ab-580e-4356-9668-8f1d31a10fe2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2svtDkijidPCEo7IAcsd+Opq5M+H2i8mEb3rnZj7lhahB/0Q/eS0MqhtUUrclqtH905brb0g1cnSY9D6m77vGA7SdV2tmGZO+rZ6QqDMw1STadUAjNwP4ZkMVnWEv4pUON7bBKD96GQ9rGcz8vgzzAkPeTo5WrBUemsBt6uNBNmDJH8WYs8/Go3kNJC+do5qNiEKYn20GWWrSixF1Mys39XbH1kD0wtrMbgjzGOJnfgKg2HEjSZgAGAf0lhV5kvdy8fkaQ8YGnBW+5gx6s66dykEgZbNvrHnSmEK2Tx4tPx8KmGsE+GRVy/HocZmvyqN65g/XBSLEBQ+LqFl+d17ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.002","name":"0.4.19301.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"14bb19ae-a059-4bcb-841e-82ae127ec1ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.002","status":"Disconnected","lastStatusChange":"2019-10-28T20:57:31.3897772","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"c7fc9608-3491-478a-9d25-fea2a36c833a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx1hbkMr7MSLNrrM8TxYu8evg8BBKWc2be527M+FmUmEu1e+M5xbYVLOysBRopxY3PDEwRd4Zeb2zRLhDjARtnColIBIGK4L+X4AJ/PtopEp1Wa+OWr+HwtcrM1bbioIGFQnTPAYJC318sDH4BF8BRzXHnNf8118H49DYqMAD2PGVS2SBPEGbhrZAWTYFHqeVIBpxmRoa320Dr0W6GjbQdf6NUp3qTmSLVnY3gR1vFqmy120nFHuL8g9HqaG90ypczIkF+nBVPMFvuJjUgMYPuWJtnFaAYShNPSZ2HSzp2nYVHZIDiw0bk1rKFETnORT7wZlTUUYBFF+cT68xm2admwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456je4rz_e2etest","name":"fv-az456je4rz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b582133d-3fb4-4528-8941-e22397690e8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.002","status":"Disconnected","lastStatusChange":"2019-10-28T20:57:31.3897772","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"2c877a8e-fe9e-44e6-a5a9-3505b0a883d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA05h3Xa+PgGBcSsiXo/JQNJUpVsmXwvJxXFJMdjK55/8BY1J96eGE6Z8tsuPZnuXH9pUSUOtTQsrlEGVs54MTc3nZLJYrHhdY0gtm+iEKPOmovg6iP5HCw/Q4GE3CsZJh/H/UXgRwAcPKNwgTEHLoM4zo2S3pLntXP/vZY7php8W4oOfZr075HUT0zNG/o1ROWkFrX8UwjzFOZhCu0FidXKyOjFTinWL8mRDdk/G6AdgXGUh7cQ9xFqYwrsen/MfkQVW2ptuI9W0klpVnG1BwYU/O6OZ6zzOSc/0rGwyMQf/MUqGAgSjoUuk+frRs8iDwcrJYKj8hLaElhNrKNF8jbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458xyh6t_e2etest","name":"fv-az458xyh6t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b514ed1b-2a70-46da-a1a8-4eb11c3b69a8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.002","status":"Disconnected","lastStatusChange":"2019-10-28T21:02:31.4888004","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"019cb7b4-f4ad-4d76-aa3f-49a481acd58b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8GLe2LoZiMSNo/nNp0nBActcIvRniyFGkNKHq+RN1oQMHS9gU+LbOmZioT1Ccsj+oZO+KUriH9DwHL42nT9L0RrYjo/ECuGbMQgbX1fvOoyOSUR8xX/L0dFVlzWvhCYk9BtPcmItnw1dXKiriV39UfUYRlFRRKLAGWYC0vI+pVNdYKrAKMaXm53FOauUkl4tAHCGRwP5FsDojblBGmUddU6TIgtw/BDQNA9L66eoRZ+2tU9GTbdPzI7eSeuakPAT0S7JQhQrQy31aVFqqZNxTTSR7MsgnvDPpkprx+Dq0K/eiblJruZAZ6pkl3GdG+ftXh6znWKXesluj6rl0JsPuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.003","name":"0.4.19301.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1bacc665-846b-41af-b1bc-c757a88f5af7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.003","status":"Disconnected","lastStatusChange":"2019-10-28T21:17:31.6127035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e119ddeb-d5eb-458e-b472-dac7398416e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqXpMxFPqxU7QzreJwA85g/xdJLiGB5rDULoTJL7/Onr8O+jo2e4D664XeVZy7GsDpxsLLxtcFHJ34XOIGJ1pbM5UMxIIMbYXgnzkpzXedldNVXt7AwMpOCtwvOIQmWj1bVQ3x+o0PLFbswd7sXJR/ARgVGsf8w2KLOcn1kcMcXBfHvM0y07MgY1Z98ig7TMGclyLrVXz5i9hlfWDpgLlSHaxNK856FA9cJK8lgNhSaU0XcOhAiwo/0opmXmEy6PUrzY5yXTQm1YlIQodtv3dWbHElY/xSvxSotSh3uyPuI7fMje2oDQp/FRp+Udw3LUGlVowa1uOptqTN1wSVa4y+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456nwyfp_e2etest","name":"fv-az456nwyfp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6a078eda-1e1c-4d09-b7f7-b8ff42b6cf24","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.003","status":"Disconnected","lastStatusChange":"2019-10-28T21:17:31.6127035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"7bd304b1-d3a3-474d-90ff-7604ce6d4b93","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8VP8OPfeLE8Lk6XhPtIGB9d54uyITYUBDVvh/eF33IjKY1+NlCL5HWWS7a55QqiFEk+V2hmtsFcnWCpsS+kFoyEJgcUV9QVQqQx1l8tho2JjSxs+NYpSkEM+M7BkYyctKTPQ4ThhYH87qoFqJOD1IG0NinZK3D9EtyAMuNx6vRx9GCnAk2QqUNcWBt9TbiOP33OHpii+YPBwjdN5LPbPz3kcAF6l/051RVBFGcpXoF4WcHVLkAISSy9C9OFbV1qSKURfSPIuO3w6jeA/PUstW45+J24jYm/msVj5WWaqW/zhxwWG9DJU57FILptPTuqB79VP0mgwzFHQpntepU9JLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.004","name":"0.4.19301.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aeb5daaa-b802-49e2-affc-a205017314d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.004","status":"Disconnected","lastStatusChange":"2019-10-28T21:17:31.6127035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"45c538e9-e3dc-4bbf-adfa-b053ce4bee8b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsr+XVFSWXG+BPwjF5mpPsRrKg21+xHLU5QI/zop6Yf+eKqy4qCrrf4y1UBkT6AZ+mcT+BNhCSKtAhK5KJZXQ2I93LjYBQEz95C/k/my7S1hTp5X7PNFpCSJWKuG2gwcVFw/bPIxd2JMAGhltmJl5jJ2/UThHFbA86XD1TtJX5hgfnc7LinFA+3Y5EuA6QC054TRAxwesCwvS5nTwy1r1INm89RB10wTOwgUsl9oZpondofwmI+7HvJMLcdEuCprinmlrwGn0Rt6x43hENCxaEQMx0LQ0VBVHpoID7ACvLT0huZS8mpD2OTk25fFstQIhN6qwhp5OiaX4UTGrGAvCEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456ibqha_e2etest","name":"fv-az456ibqha_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c057e3b9-b584-4787-9c41-b7f4132ac666","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.004","status":"Disconnected","lastStatusChange":"2019-10-28T21:17:31.6127035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"979e4ee2-3f28-4ab7-95ed-6323745b4f00","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAulOJ0sT119WFSk/wC3AH8pE+zim8vVn89jaJ/lsHrzfh7e4GBd+ij8m26WoOju1Xfw0bKtt4NTKGT11H/nTMVKNJEj+8GFUglyzaYwBWC2zO9JMWKSO+ngUTRFRb35GfgpsfAjzoMhNKsowWfAvruBkMpclq6riRqfI9cU1NxO4FJumMqy5N6EDAweShciM8ExC+dFD6FGfgFGcWl0Ylxt9Tq1KLdatIID9apgFQ+qwbpHwRYWcu6EO9vfPZkPB6M5rSre+c9r4VYO3FwDvyR3MwEtWiu67aa/BjrKOemzw2wKhJkcRyj1WWrZDWaUcObks5LbCmeYjfsHCRxNKswwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az464q4syh_e2etest","name":"fv-az464q4syh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"000ac974-da0d-45ff-bfbc-799326b3a941","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.004","status":"Disconnected","lastStatusChange":"2019-10-28T21:22:31.7477909","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"b292800e-35a9-4f1b-ba7a-cc744e110e53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvtc+myXARkabqK06KUoXY5PtgYb6QfV7ng0+vy4twiP5edmzpiqNt5kL/8/rsHK6sEFXMEzGqe17ZKz13Zm36v/wcCDbmjD3zyL5J2Eouo2xKacXifLG+KZeFrs+D+zbrV2HYSi8tlFb9jCTd4CGQxkbIQz+kAykDgJWwa35MVcnauEmAhiEkzJkRda6I0e5qyYp1+VcntE7bAj7BdKrp+DqzKTPhKAYcGTC65Zu6C5SNlbDUKRF7ZFah+ql4JuySsVgFC++uYRMELRmqibGS5yYmRNV06gm4norbnv2SPcS2y29vqbKoPrUCF5230uN8gAtihoZjnGVumV2x9+NWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az464sikxj_e2etest","name":"fv-az464sikxj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab45d214-45fc-44fd-b5ce-7e38e521806f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.003","status":"Disconnected","lastStatusChange":"2019-10-28T21:32:31.8485251","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"c956bdf2-25e1-4db8-a08f-f0872decf7f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvcwYQVP9QotCVlckXJABo2QEZWoZyJhMd9ZNErYnTHrAEF2OskokYc/GqlkL751iy/tXIhKAWuNLV4BpSEdCZM++U12G8nIMJLcLpaqb0hxOYvchX4Gw0ZqYJuvyHghId/hYz8Qv55nDRdtH8WQ6mxDlNGqgVxZZ6fUGA9QEnELXRbHNGyjXoNYoGt35wdFB5wcAOWp5At/0vg92a2DShLvK2SKqKvKd2tuRz0LqK2dmYPHZGMGxM4eFTBUBxDvLahaFauGlghR9DnvnqlG/YUf16cZ3WxB0xjfZkAUnO1UVVlNsYpAiovGo9j1U8yl2UymuUvqw66YWstPp/5tqCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.005","name":"0.4.19301.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"73c452a2-4b1f-40c4-aaed-b78b9591df42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.005","status":"Disconnected","lastStatusChange":"2019-10-28T22:12:32.1568652","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"97c4f7e0-a3dc-476d-867f-87908a1df5a2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu+z7gZWYUtUcjwEZ2szuvvZY+KKXOgb+GEMMTHMgRLVLlLWL1/yEcWE+hv9zmVRZ1q6EI0vuA3nG7sVbGvHW5tgQXwdkAEDMqqiZVMdmdPJcjiHePxsBjl9cE6TH0jOgUclY/gJK0JxPMiNbHhejLWCcVL2+dUvzHV4aRz6cU6VbDC4EgVq60iGx7utA98mpUh1mRd/wQvAaD9MXbOzJHATyLIYoV95/HiLjv3P+jjau8THMHUnvHHNcQL4Dv4hshUE+alVQxt+Pq77elvQoO6pUNtglud2z1x2uShZU1HMvGNQRxBWVAYQDMh1rZnxz7vgkTph8lEsREvHn4MWjlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456zy69h_e2etest","name":"fv-az456zy69h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b6bd3aaf-4739-47b7-a60c-f2e38772a2f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.005","status":"Disconnected","lastStatusChange":"2019-10-28T22:12:32.1568652","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e9de2cae-ee59-4265-8165-225f5efc4cfc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA29EHtQnilTlFUUAx0EDC9ylfK5/nBFd8lb5YoRGB9KeVSG/69lYfnV1Fmn99OJuTLZFCHVVSyYam6h4HxoZuR3zuEHaMPIdt56+pnzY6xKXlQ0gam4NevM7wsaJeqDLcqz6xiQgxQvO5BadAAchKzvCDdHhE8uVB5eeLyT+Kwm/10GxXPs3/KSvNuzPhyV5T/yRwiY9MxVE6KQB49Avjaa/Jc/1rDkrFQ+HxYTUT3F/ZSrLjkU+k/e9Lvp84m6aYfceHIRNlZyikvIWG49ikaD+uKth9i1EHR4t76ZJeQ+L5sctQJq0Uk/BQpG9+TXh4aezv8c6jkIMj8ScuSO+oZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458xvm5n_e2etest","name":"fv-az458xvm5n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb9444d0-d09a-4f13-923a-42a26a4d8b5e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.005","status":"Disconnected","lastStatusChange":"2019-10-28T22:17:32.2636772","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"e4aa1c46-24af-48b3-9d97-7d645694af42","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlFqbkqHMYb7RLDswT+XvrvtVi+vg793bGg2pMN279Vdx5TY0YqnzEY8rR4YOYaUkKqAZTtTn7EZ9f9ECrf3Yt4RkPWBjyVScgC/xEAT8V0ujUiIX6XYNvGjsVFdD+NakiYvjeiq82bWZ9mexUAnrpavqIZkNVY4kxTZ3wbht+ZU2Mn11HjfVjaEN/lsxpWcrSNAYmvqYZM7gtH6TLdoWG5GwPkpQKASq5dNAz/1Wx0y8V7nPfuZCzdZGkLz5QTJskZGqu5Na/SBO4ZbmZNdS2mRdxy2o/Wp/KQQ+g5+6vzWa2tUlR3SPJG6n/kHg727wjW2tNnf67lDtzlMB9oG+kwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.006","name":"0.4.19301.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cb8ff3d1-10c5-45d2-8479-f223862e0821","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.006","status":"Disconnected","lastStatusChange":"2019-10-28T22:37:32.4238116","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"d046de3f-8671-404d-91fc-1e20e8b240ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA51ETEsHubXAS9AMrBJkFBrVPv5TlhAfTvTWosblrxXXcB1UHIBXW0oWAFLvnQHjMSXLJmKVjwOQB2QhrE5wXyBNpa02wkPRlaeR9OmwrStKJ2iKcxlOh1ulBZo+jVcfHZqrWF3jN9MLe+R5hI1yX437gYVcKKg5zJsFhI8u/qgABlcXUNswpg6dyknBtY6QEbfPobkOTCUJotQ3MdOUXp1Ykv79oKEQbqNjdcl0FONBZizLPd60R0XdpX9mw7qVJGPbWN8HnNCu+bMDmPcx94PEZd1sx9jRypl0cFn4vJcvbmZTYyNUsq8vHCPKVOixsn+unMnUlMKI9wG2e+pp3ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456wkqdr_e2etest","name":"fv-az456wkqdr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c10ce187-bada-4985-99ec-ea694ad8a8dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.006","status":"Disconnected","lastStatusChange":"2019-10-28T22:42:32.4967552","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e2ea0c21-a21f-4b17-b9a2-5b75869a08ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2oPPHckajBxVrXj4URVElUjP5vzpbf++PhLWQF98PEVaZWHfIi7U9ULUdYWL5Q0URhidkrLoR9Ywp1f3qpnph5pIwbK4tDftIEOhi/NhtVOzXO/3S4dTdH0UrdjIJHKgTj/zXCXpDqENU5IP0tgqdNJ6kbfmaoQwaXMoJG2jXagTmE1lrKUF6ryJHkAeZJdKo8anxovfR0L3Ki7JMNrhWERneUyZpkRXuycH0u/Pze0bzG9gHLKK+JSpkIeAbRQoZt2v4wgpkZ5lqD0yUGga+UdOv3commY+gwqB0iC/wKvMNasmD1qb55F8sxx6HfnAEVytg39S0AGKqUEjkFq9IQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458wfa3h_e2etest","name":"fv-az458wfa3h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"85de1908-fe6b-4566-92b5-390eebf54295","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.006","status":"Disconnected","lastStatusChange":"2019-10-28T22:47:32.5886523","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"3d62c3df-d4d5-4265-9c6a-43b9e0f2f9c0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsaHbY3lIct0SyXFKb2t/levlLk9GRE4nlr/zVccg/e/5abmSWutertMTkeJBESYmUFtSnNoX6xtqfpXEFBHZJa506OMF4xOhb7zutGT3OCmrYqTy95+q//4Vn4Z+HWrH+QF6IRzLyx7ElZP7dnSkQYJ+34mpJ+Lzi7t1YNj4+Xbq6yyeUeQKd2u4u0tXGBuhMALJk3Ih4e69zj6uxrKGxwm1THVXLw5w1o4KbfpiVoPqnpP5NSy60KTUdWi+D7oqbpcXFRb3jdtdFovaPkKwP2n0JJnmZFNKTqMgxgAXD4rA73TUTzNZtViYh0du8zLr4TEAIIdsPbJZ8WLPzUNuSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aaa/providers/Microsoft.HybridCompute/machines/abhinav-z240","name":"abhinav-z240","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0c20fc83-a863-4090-935d-6df90d714981","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.002","status":"Connected","lastStatusChange":"2019-10-29T22:58:57.1040683Z","errorDetails":[],"displayName":"abhinav-z240","machineFqdn":"abhinav-z240","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"abhinav-z240"},"vmId":"658397b8-6f76-4186-ae12-5af55f7e3564","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtzAkERKrV/XyjZimCc4sJxJgZzndOiiU2hDMrUyKn8OlQkcDgTXvFCsT6OqiIdYF1KbQcB1JMB5GJys6Wvhs/Wl0CpsFxzgpEQuFNfEb2ga5SZlqtyb46GnoVRd/IhYN1EuuFdKSJHMXznkZYOFPtEAkTuLWKgPADJ85td2fqrZLYj2VcLpbUMY9DW4Wf+EubskCo14fHp2y3eZoZxG5OWdmZHjo4YRp+veoX3wA+rWP4ee2LATMb5Cul9gXKFi+HQ+bPuYsuuJUGnfYSa6n5IueB357ax2/wqmf05XEnIrAukxl+Zkg5vtv2kpxjNoo707+8DXu7FE7B/e5vSaQOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-dc83654a-6706-45d3-971c-98a6c49ad78b","name":"release-dc83654a-6706-45d3-971c-98a6c49ad78b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"23e68daa-fad9-4f5f-9bcb-d8afaf6e3140","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8059775","osProfile":{"computerName":"jianyunws1"},"vmId":"c7fee5ee-c1d1-491d-b548-5efaafb365a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxhW/HVxPaF9oBo9cjAGhAwH5vL6EAIl478r6y8h3WlCSnATsiVpPQBMLB9aWwjq3LnsrjRl7VNw7+2TAFRENZFTF+O2ZsAoynOCWAp6FrhnedCPz9LeKp8iorqBBXBY4gQ1+MjNPX4mKhvllre4ByHU6A3dToxbBbVi61WFVJ1B1D7YDpLIo1DDqCDTHmT2l978rCTNVrgcSPbU0YPumqCFbLPJdKnnBWZzoSMQVywTaEBw6mdoXlknCmrDT9fYjRwgPWilYTUee4Zp3dE+84aklhzIc+9ovoolcnWecWpaovE2lKx8F3XRXNMgMy8TfZw+1HRpkQPkoBJwNVInwOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-2cfedf4c-d4f0-41c4-adf2-b9bab0670b1c","name":"release-2cfedf4c-d4f0-41c4-adf2-b9bab0670b1c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5ff73998-5dd5-48f2-9475-685176b81a82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8057938","osProfile":{"computerName":"jianyunws1"},"vmId":"c939e895-247b-4501-8a9f-074650fad8f3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw0yOn35elnV2Pa+Hd7SmJnIWNzZkz64J0Ycuj4WRAUObZFBvgxPqUSck2CfZmpcSit2sIHR0UHEfm5Czfy7+6/dZYXxP99T7pVJiAj5MloYTgHmAxgADhHhQBUw/spV8yxJ4YceH4V6yD4hgv/9Ub174p6uzqbByAmwUlE6FbdOTdQIPEFrIAZ9ynFS8JHmy6PVL+n8gCchyjdkROBnbq08AvSeY03ScFcWQN2PigRaXNfM8HmJTPnymLtLdtW7c8Kv/sj1xlSogzcdQ5p/tx9DUim0zN5kvP9mHpMqGzr6cDrE5xEcXQt+vEaT6fjHHaiCLMdYAp7A1GZA59guwRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-da790353-4172-43cb-af95-f1d78d844422","name":"release-da790353-4172-43cb-af95-f1d78d844422","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2e516c9f-643e-4214-9eb8-98626b7be5b7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8057198","osProfile":{"computerName":"jianyunws1"},"vmId":"e4c35c0e-a813-4b62-8afb-7b9a299c0412","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsH+UqHIYvbnWSLYhn9Sn/iENu0AY0HM6DjOUrp0Io3AauPh3/vW1mDkwiyw9E05RXTP0Xo0pqiKF9G2vxPt1KN/ZX1xEz63qiWRTwpIbxeRKVjw1W6insevcEs/js8D/cPsVRvXGrsonA2vEczleGwAuRXBNPIRxhmFBVDEA6VyPfyRrp/YPgzTFB3QIPpnqyoi19ABAuMDUwXtQuD3mtjOLYPB1YC3Ydej3fThrVNkqwW+6sce+ED/yJXOTAlNj5cB1WO5i2r2YOLBJavWDf6hH+ehcj7gYxXEgqBrMjpmkUAgV514biaPbdI+VncgUjfs8oN961csOf4WJ+JniGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-a04a412e-de00-49f8-9e80-fd3d68340ec1","name":"release-a04a412e-de00-49f8-9e80-fd3d68340ec1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8a4cf09d-3cab-453b-a7a4-c4085220f60b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8059847","osProfile":{"computerName":"jianyunws1"},"vmId":"8b390273-0c60-4614-8032-c052555c0839","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1GhQZvPKujCxyV0DU37FdcvrmCg4grM7glFLU3mRbfVTZV9VugoYqH39fwdKy8w/OuLOihEPzVCszzuWWayP/YeRM/e5CNWrQme1mwIXSFefRofXluWtWbZeenOCKNTlGq53wXwmkN6dWLhA7sTbfocrKxph4kksRUZMQpPiOjUpTT+eb2cP5E5ijxdfshCYne1i9NR1tosht3l1g2dCxjeQyt0Z8O17HlO0jpHdZNWLyNBTxoVGWn2CZ4RhnpegwJqR2WHjjABuXd0S0+CQEPhE9F1JDI+SL8Wn3LhGdzngXrV7ZYnPHcwqTUa4ISGfxdE24ZAhYjPNjKAXVDjXXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-ec2aa3ea-d1c9-44e1-a4da-0f3db7f22d4f","name":"release-ec2aa3ea-d1c9-44e1-a4da-0f3db7f22d4f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a0b362d6-e9e6-4eae-89b0-2eb65dc4dcae","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8054494","osProfile":{"computerName":"jianyunws1"},"vmId":"08a1d2b9-ab01-460d-a3cf-f411e90294cd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr0pXjYRav6Ic24xQkWgNsQoRBg1eSS6RTjd3pCoE0SWbU30ouEru9S+f4UPjEFvLBl0ZoJDCq2P9I3Q4lW5A7Uo/9QCRjV8d44o4anb3GyizLGlNBk7juQUIxAJdIBd1FtuMz/FxKLwDtDAho2X9NBlP83PclDu9N1JO/tAYr8ZIosS1/z8Few8RPQzqd5Ja2LQlRAAZ0UN1DSewxv/WRpK1DLxDx1WTvsVcNEjlK0r1gfKHPSZcLOO+FgI24kmHutH+ykz6PigazteMWSJ9fesepQ6ol6nqqC8srpUuSjmpyguBW33ID3jSmlzIzXKykWWqXAIjOooLBX2VywBprwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-5b3cd97b-f69a-4f46-803b-4f859fe90827","name":"release-5b3cd97b-f69a-4f46-803b-4f859fe90827","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f7fef657-2680-455c-a9b4-e243d029a89a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8057766502","osProfile":{"computerName":"jianyunws1"},"vmId":"abac61f7-2898-4872-a1c2-e091ea386b64","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApuUfNKVMxTTGIyrIrS+1O5/rUXDL6voVfwX/CWTZVeK8ssVOG+k2ih/lrdYS7KdOFIVX57+VJrWUjcsprAAxohBMFXwAtQEdRDtCDBlQNdDkFiifV8MwjL/Hu4C8Xc34JkUOa6EgKXdOz4co+jJbhKMzWyHCWqi1+q7PiNJiN9v6vEAuvPUOO8t0lBErU89UJ612Y7uQ8FcbjMwdphUOnJfeNFivv1dngv1RBnBGSpfC0KCW9u9oOCuhJEHyQqw2RjOhjTVkGJJ7n5yv0U9iJZpQv5vNu2+dDhk1FIXp6rnpPRiqK4VYBYu8wzkruIdAugnha+k5xdD7RqU9nmvw1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-d92b105c-8f71-40d1-8064-422e321eeca9","name":"release-d92b105c-8f71-40d1-8064-422e321eeca9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5283c951-1b47-4d52-8157-25c864f0fa2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8057190","osProfile":{"computerName":"jianyunws1"},"vmId":"3c253d9c-06c7-436f-9935-006d39057efa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnMc35uHa53rziJPIso4LmiT46Eg/MWtjJb3wG9TvbrfpErX9DMgqCvQ0CAsbypuNO8pC61kuhhsghcjKZ1QIPrYOybY5W2iQaMHxMq42K4X4I/08Ayshfjm2mKn5OCFy8AibF9YPrAcH0H662vRuZi8x4ZWVOa/sDdJ/dP3sQbbUz3CuUI7RDrJwOp1eteATRKcM1/2YtnNZrbGKZD/6tg+Ys1BWBTnyarVY9qYPdArteat8Mz6+nszrUvwoQvybJ8kYu2rgoA4zPnM0SuxR2UztRn461m2xBIdK5GZ/TMcndHbPRSyco4bvol5hce+6ID1dIpLNv079omnFxEk/SQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-83d8d8b9-6895-45a1-aed5-8e58b9a6c215","name":"release-83d8d8b9-6895-45a1-aed5-8e58b9a6c215","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ba694f61-1d88-44e5-b453-b464b6420ee5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"0f6751dd-8a6b-402c-b888-3e3526f4f49c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyvEMhIcfexb9729DxGcElIlkSh2OPVMbWGiOvjwjJBdaPjicQP48T56+DorzJM1m5R/KY96Bzx0dRhtbywz7Fp777rl5sIZQg2hcBFRAklcyk1SHUwHGKl6iykzEKK5fHaVutfMmdsFABi9DaNOV73aUqzUaJ1lZYC49xg8tOgXwOy9BOZ90Ebw/oP60Xp365Oo/GPeJ6nxFp5il3mLTp7GeizdWIb2Ep7yA1I57HYH0W1dRi7zDmrDsLYulyTDUckEXX7bZYt3BF0nsyKKLmd1MjjDZVsjg2Xp/y0dagRKYj2TGrecbxYkVTFqzKoDtN22X7RUoNEw5XGDMMzicQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-ef553779-06f7-4d9a-9974-af8c887769f4","name":"release-ef553779-06f7-4d9a-9974-af8c887769f4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"025cdc58-545a-404e-8716-06d61906f7c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80518221106","osProfile":{"computerName":"jianyunws1"},"vmId":"2e4c6b95-70d9-4693-9734-052d0b25a72d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6CL+jbvVoSbGPEq4hwV/HHgOCQhm8ugpF3xjiXNHYcNIaRO5y3LdPXeucPvfhL7R1DrkMuTh1A4iWp4ZJlM7Dr+mEHYbZtpD+XxtTMgurjmuhXAz9Pipe8xUEQN1PS26oMTekfG3692hCA4qK7aS/Qw70w05Qg4RRip6KT+eyOWo8ADXQL3TftTcI/qUZz+WFrZIN+irjRWGDof+LGjz0GlaLlLXFEpIJpBiOUKnWks1Q2Dwmbpf264vTwYkmEVpv1jpWcqTZqDKJpUAld9VXT/mYW7mYt7V7KCJ0ceyvPvzaa11fhob4UJA1p5vTrs2HqrWkDrQTNUdOAhqHdEfTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-8fbc170c-5067-4865-8b6d-8c7faa158322","name":"release-8fbc170c-5067-4865-8b6d-8c7faa158322","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7ced0482-b13d-442c-9c5a-1fb08da4dca9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8054854422448719278","osProfile":{"computerName":"jianyunws1"},"vmId":"74a37f71-0d1a-4652-818f-7a599100acfb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1u1tSx8RiUxxTA4289/Q1ANEvVqs4jsRgqlB0WQ+gaN6HhyLH070RKmSf4mP2q09PNhVcsnFHH5x1tvRRhDqd6esTrFrgT/GIgp4AYIfUAuMxOTwOV5HEgT/H+HkJrr4ssnU+8morvd+Aq3MM9LZzfkIMgVGtHTMvKkNovrRoLSTBaHMtF3RTbpartS1vCO/rCRtqYq2Wo72vNqXShMatV/E9IaVAMKVdRgzhakleQ1lZKe7cH4lFUd+znKzWH+QZg42EUxO1ffMYaqsI1Ba7OrEsSsbzD6ehb7LQ0y/1cMGQO2rTa2idKSM3Pr1vdYfZiIKJaLzfrSWZTNk+d+HiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-650ac85d-5fc0-4477-b428-ba3fa3c56236","name":"release-650ac85d-5fc0-4477-b428-ba3fa3c56236","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bfa36f5d-2a67-42b5-b3cf-96e465d5b6b7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80589203078355573","osProfile":{"computerName":"jianyunws1"},"vmId":"80591b84-5dae-4c06-8c6a-715fbd7a751a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3WfMGS8xW6M0GKHKD2rvFbX1WyEup+3TXaWkSpKx283bSLWtxkqwOYEdVoPNkuSCc6JllL0oPHlr3+NmqcafDpVjp7usekrA8vUb5f7pY6vr9UuTSEVEQqFIqXJPQc2d6d/8aCq+HSC0wnXjNPQk1nFuTjV+cKvTeyPwTfWqM1ReB1/69aQ3tHWWxZIt5obptV3mU/nh4i/I3/iHgRpUE0gzsl8QsywU5ZTD4LBnqoeRVc2uPIsplia1KhBKw9KcXJyaQKA7sfnUuCemdawYyESs35h2X/gdZA1rwMCN4/wq4U/J2Ctmgx9AXhjlxjScYWfrTo65oAnI+LuepznQ/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-ea32377b-4bce-4037-bd13-f002514f1e1b","name":"release-ea32377b-4bce-4037-bd13-f002514f1e1b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"464e6cb4-0531-4933-adde-d103ec35783c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80535348514","osProfile":{"computerName":"jianyunws1"},"vmId":"b9c1d673-110e-49db-9b50-da2a39bcdc8b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAopde0Y/tFrjz6t9j8SDfbtDes+ZeYLAA6znAIEkiusDoizlJwEne7AEfQCgXr0zDtk3lyxgPk3rPuE6z0Kmowo9T/qT0TsJnfogLJLsK+uSEegKDdjfnuCcau7uRXOW+YQOD9whNPFe/3OsfALfvXF7AI3RZVqZ2A7iJnFE7uf09D/ztINd0mFqJ7CgnT0YEBfC7eRhAYQXxqT0uZDXZQ0MZr5xhYDXu6gBN5PM4hlKtf9GBMVuJSTt5Oqj7rqRONF16knuLZtQPZ0LE+uzGLyeIYm6WUXqJSTIQHzglA9iLpmu3C7jKQs04P3Ng4YGp4qCMsx/pIfBCP2QxeBuuxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-90189067-10cb-4f0b-98d4-d80f881eadd3","name":"release-90189067-10cb-4f0b-98d4-d80f881eadd3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3b5d04c0-dd40-4522-b8c2-80e802fb3bc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805236712","osProfile":{"computerName":"jianyunws1"},"vmId":"bb3faf37-253e-4aeb-86d7-cca5aea77745","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3IsFOQeYKoelbcAoMC+WrU5g7yYW9GrpoXASv3HWeQP/v0yzUncRbOia+ib/Qp0QNfA2I1xplRL7IJ94q22fXZ21mbO7KMv0LMCd1xevijmTrJ3lWCdGHJOInhNMBnlFs8BCOCuGlWCov2WtsuHsNl47hKun7+XQus6aizzqkitS1JlO/NrLNhgg9mv+u6ST/riws4bV/GDjgugCGHs4QtzYmtpQi1Y6anNCVUyQRvgB77rBJot1VzSp4KNuXa7yHm//j7IteGZCvHjReTtJrCNWXAnV9KoJcHbiOkUQdYSm/1iO5tLcg3sgnAuJMkxY9U4jwF84nNIttPocGP+7bwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-2d4a7cd1-c713-4915-8e21-3b39440fabb1","name":"release-2d4a7cd1-c713-4915-8e21-3b39440fabb1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ba521c9f-07d1-439b-95a2-d1aa60b9152d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8056885473350230","osProfile":{"computerName":"jianyunws1"},"vmId":"7a568956-64b5-4c18-aebe-0acd70ffb77e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy++zMQLquWipjDyDprXYDryP3O2e+Rqw2XtUKVm0o4N0wjGLgA4eEyINNbsf6/oH0ECAIcJ1He5eaBaggV3R4f3PY5rsDKhGTbYur2OSFqrEN+f8O1uQUx2HW/tHQxoMAUJjCzPXVpjw5GcQVsqPO97jBjObLEPlTZx233S8HKqQamCckVhiS7r5nkWVja/gD0M07Y3ELlZH0G+IPgZo4HfmY11TU4mHKH1U3uY+4d/ML/Tg8DfLZTJfOoUuy4F5fWnmNJfbwxhJ4v7wmWxTPw1/f8kTQwDijz+QgWYXUG7EschL8KBFUiW6+508G3pXkhUbheKBD6rqlkoDazinDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-a0658581-7c89-4925-abd1-c202ee8ba7d1","name":"release-a0658581-7c89-4925-abd1-c202ee8ba7d1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bf2b0562-2ed0-48fe-878e-4b9db38c7da9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805907951156893","osProfile":{"computerName":"jianyunws1"},"vmId":"c5d84ec1-690f-4fad-bf8b-17c0016a12d9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtgd8KOpIqubdnrKy9mtKfsIvGkImV/U9ARNi8qOO6sOp7b52AbBMZHMp6vM5LLCsgTpkjfBhv61RAmojXc7soMfutIkToQ/7y56Fc4dmynwHZrRiM8Hm9s/+BP94pNbSLUEbGXLN/gOWYNhilLt7pZlhJd3oFXz8JE5/9hT5EYwyX6sGZO+pg4vncJo1byVaCVwosvD+mii/UPHu20CP+qHLbNBf/FtvdVTDS8LodJA/wvtV8Ap+zZSQf0Sn8AJtnpwpQF4QvEP/05P4NQ7SXta2ZipKjcUinaDLh+LIKr1GefLsljf2YaDr1uh5pfhWtEeUjnDSAhKvGz++MqXRHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-44424f96-e696-4d7f-ae1d-6fa49157aad4","name":"release-44424f96-e696-4d7f-ae1d-6fa49157aad4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4740facc-8245-4154-8b81-2694e2a26526","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8051809774655018781","osProfile":{"computerName":"jianyunws1"},"vmId":"346a900b-0409-462f-929d-b9afecd5f3b5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv6j01KNkYfyellQm2v/BoJzhOhDgJz+efDVx/iiwQ71/0z5GOCUR4Jtsbv58K+80yB9K8tMONnTj8dMUUyIUHteU08kESlbqL7jCqLOe/Oymg6BP+K7b8f2SPKtWl7YVylSsvjnPVcYuCrouZIBKspL9dsdKZcN7Ssn2c+jlHna5UKnhAV5Z7a+x8LQ7XLRe+JIDsaERxGzDrkbb1fIEjkCzW9yW0HCz7cDq+gbJtLsyBWRtdp8o4i3Yibn9iS1LIwwol7nNqZDgpdQUtcig9PYS6DdGv4ZZMY3R8h/XAWGljrLB1fIhqFzHOiwv7iYkQ3RZlFHzHHieNYCDyFNH2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-d1278086-2253-475a-a164-5bc92dc4868a","name":"release-d1278086-2253-475a-a164-5bc92dc4868a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4c14163a-08cd-42ef-a027-097824d5b661","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8052000","osProfile":{"computerName":"jianyunws1"},"vmId":"8b4885b4-b9ff-41f3-b24c-939783be3d32","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwzbOSwNJWCZ0D0EUrqEftFI+p2eWc8iFqjb9QMBgL3YNq4xM96SY2kbzAhk1kbgYff/rF83fXpkVDSR57GFiJueAJXG+jHzeTXcxn46FtrsGhm97V+vTqqAG2/h/7GXx8GCsm0LDZBWt7x+6aOE8MYUWNgi1RYWLiJvAESiZhJCIOSeA9VUVWr1tdYhm7lLZkRR7/CMY+F/mDMbw8VJ/2oguErChafU588z+vQoIBa4T4+fXtN1GcZwAwukqTYVCasJ7SrqYadq20lgaFLdK/yJa6OWEed0a7aeuRKfSS4OZQlTHOiKaqDFWykWxhdQJslRsX3A5+XvkJOq5Gc1TRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-191e6175-6bff-4f89-adeb-5b89ccc7176a","name":"release-191e6175-6bff-4f89-adeb-5b89ccc7176a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f2e96019-5bdb-4d50-ac3f-39d9bbc492a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80558985122","osProfile":{"computerName":"jianyunws1"},"vmId":"5f28bb78-a617-471c-8d6a-e83fcd139089","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtVGdEkLU64dQ+WHTYSlpdGrIcPUdlv5rbb/UiK6EncFitDMyNWW+y5jG++E22k2sLfFqlEMOTzXfh7dVBPNplN2N2gkw3oa4wp/dgzkzNWyK8+upVC/A4ITaFE6k7ycaGvN+zpcrRazbkZy8LFPzjTAan9uMAZLuC10N9e4O8b2xmwAlBUp+TqhC8VJa72qtpPcTUzevml5fYoDaaWNyAiHUes0J/zaRAk4p4eFLhCzdpmctNrhCVpIZmTRIHjHtHDSLjXIMF0AsVFusTQWv48VFecY52/xV3GDmqN23NAJ10HJbTPaXZDKROwXJbl04TqmkRNAS071hU2Pn5UP0JwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-42169e7f-1bd4-4eec-b14d-e5b591ac1efb","name":"release-42169e7f-1bd4-4eec-b14d-e5b591ac1efb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04f256a1-b134-4d75-848e-705e3872b788","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80561139536","osProfile":{"computerName":"jianyunws1"},"vmId":"21f997b7-471a-45dd-94bc-57a50bc91ef5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuSm4EgL5zW6IyS3bSVpdlMR5SUZeUOg4WQABEpMzyeKXko9qqE+fv9eLtXS3lp/x25Bs0o527DAdGlVHIfsmbgj9U3MQn/sscNW4RL3qzhm7/ApVH2TwH+fds08W+/yvpQl6cb7QKgvwn42OX7U6G8Z5YbVL7CNhfp3XULQY/lOy1s7Su+yRyWpPDUAghZ4y/xw1H2eMtwg+LDatsaun2/wTJf7dWpqeFmiRpnV+ch8uYWx3GoMWDPcUpRSuSxHimfWeho84LKgPkebKFBlF+LtAWMOvpVmzxJXqaZGg6P6wyScyZUNTgnEcEFf+DmQnqtGls8YdGZ1hvmCSlYRAEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-4ed54971-de35-49f8-9305-e71e01ab7243","name":"release-4ed54971-de35-49f8-9305-e71e01ab7243","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d9d177a9-eb36-469d-80b8-eb9c0c496e8b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80536768499","osProfile":{"computerName":"jianyunws1"},"vmId":"2b85700e-b3ca-49cb-a7b9-51f3ae4366f8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtRJhtExKCtT60lX6fCkgIHpRRD2Xwz3T9Q0sXjZtDOJrH4wTL+zjutcc7vrd9OVlsN3qFjF0CFnNwxjnNpr338HBWeix5OKDZoKYTtLyn3M8O8nmkePnhOHIGC3TEf59uWG51R7ii4sFf229P5Q2S5N2zn/eByPcWQIna5fZFpUbgK3jG1GHfQrbv5bPh5qiIT5vxrYBfv3teZzkCflta+WqTkuT2MKnn6VxAhf6ZIbkldSX4VuM0XFBq6qr2N8xuJ4uNdG+pnWJK5AcwxDyP0/+fD2Gklhq7DbbqF4t2II/1Vbj/YGYwYvidU0wHA+mrbzo3FrfE6qQDBJjS1VaHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-4/providers/Microsoft.HybridCompute/machines/release-c3d667ce-b2c6-40f7-8920-16bc9a0edc67","name":"release-c3d667ce-b2c6-40f7-8920-16bc9a0edc67","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"83530f38-4e32-4305-b488-e456b6618346","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws4","machineFqdn":"jianyunws4","osName":"windows","osVersion":"10.0.17763.80543996055","osProfile":{"computerName":"jianyunws4"},"vmId":"aeca0df9-42a8-4c7f-a535-2b216950a557","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA80jPhUg1OVrUMEjPF13YL0tSR9WdTnBX/DmvqhqnFcQLniZLKrZtxbVe7GpwvL0wpNgbHKbEMmuJ2yOnjI3oPPVqtoyOd7UgpO3esMU7ObAD70XCThnVYJL9Xw+epDsIBxJu7OKXnYYzTCXUNnst7Ljf/SAi+J4OMYeMfVqKO8s7Vs5bm0F6Mv0Wmxuz2dXQFNfmwvj/zTB9JD/ZKqrbE+E9k62zUmsKBHylJmNsz4YtP1v4ylxClK/qxO5u7GXEJgH2daqDSWijsGxrTJgxWQykseMT++JFH0GRtTtysA4jxZsrnrQXVqMNhhxAZoI1YdTXdE4qdDRMdse2mZO9kQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-932bd050-198d-4051-8b91-fd339f988cc6","name":"release-932bd050-198d-4051-8b91-fd339f988cc6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ca290946-9004-401a-8102-e29704f78e7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805359788964695","osProfile":{"computerName":"jianyunws1"},"vmId":"9bb1e2b8-6bb7-47c8-8d6a-a1f2149a0d79","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuHmBFoGCN0u/kjGjHDEMply/MJshjjdMQNWn3jTIfPWa7/tIYC//GyRzfSoc229GFD1z97hzNtKUj2wPy4NByPH+JpSZdRfOU/gSGgiwRrbCVWq5vWzYdRsHp+A1tvJGKnndnaUF7MM3LghldKdmdnnCqC/jRx7kbDezSspvj2RXpVWdW8/LM8/gLAiIa6SrgdhbPM9VkCgMVYfJyHhTwRBNyZF8bfyOpUBg38nMVaZ4X9glrHu2CEmhWulI5EWLInbt4CHiCIKWQIeHNtFl082lQGRmDUzWsSLgJyb0+sxRmf/4OHp5rug4e7f7ThqniQyBB/7DDTcrzgn7T498rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-5da97a6f-2c80-4850-b854-a9c10dbe5fed","name":"release-5da97a6f-2c80-4850-b854-a9c10dbe5fed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"050ed883-5605-401e-a571-0ebae19e558d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8054186","osProfile":{"computerName":"jianyunws1"},"vmId":"9e1a1bd3-ae72-402f-8ff8-9ecd3e98f124","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqJQh2q9erYo3j3QnxvxqoOvpGk4vcVbq9pfrCeVe8+3p18zYQld3fjfSWH0vepEd3TQuas/pcoKaaqeFMV6GCULsBHAWgsmcgw9MlYEPdCaCYv9dk7thzFElVffNxh/oIaa3UBkPWWQJD4O6L+1108JdxewW+ox0wlS2KWm3PhuiLr8hTrMOD7TcBrwrhoYlVqpdIgBJna9IGYlxodN8s7WhPFp9VcWuWAguTIUIHcOITl1DZezTBsug60vS8hdn25+BDFlumbcdsYzowj8OH7h7BDDbal0DfzRnckRL1DvPlYUzCoZRs3i1Pprqvan5+EUXRvNsfGvFBwpYPBwAgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-0b93dace-f31f-41fe-84d6-704d074c0748","name":"release-0b93dace-f31f-41fe-84d6-704d074c0748","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4d3e8756-d529-436a-b89a-032b06d228d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"77244e68-b1d1-48ae-a601-532b129be818","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4bbWwh/eKz+ktEOdRJGyHYFG3WacZN8IrlkPyHB4c3ukkKd5jnORKyuY08uEEmUXsclQXQsguzebmm5U0KuBGZAPxuI71i9ifoO+cy36ukhYVObDH17ayhFR+POTom9VDniKEI7B5KQotgjudh/190ELhfqAzjSOKTSKMZS3dq9B881MpZ3e9tg/G5Gh9UO24X2cirzuzvO45QbOGcTGvKQdByMAfysDyBanpjMDy1/GQUmKDBTgizi5aYW4YyFmdQd1oFRAZv7dHo9DT7HcfgQ3U6y1reD4Aw11HCDi9pTfrbmjwDpc5uxlM/FK/yQqtG5e5UHWC52kVbYuXbr+nwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-3b2ca546-32ed-4962-bd25-1b42ab7ae8ba","name":"release-3b2ca546-32ed-4962-bd25-1b42ab7ae8ba","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b14705c6-dd16-421d-b4d4-193b63beb82f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8058095","osProfile":{"computerName":"jianyunws1"},"vmId":"5569b2f3-80f0-405f-8f44-2df6835c1a1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxGhqWlHMpbWm7VDu/1IOXes/iAlWDOf5cw0TKss1pZQ2L9wF4z/V3Ddlw6a9jcjS6s96tZpUjCx54mc8sCtffxZ3xWPtFd9AbD14oC9t7dGOlrmeRrw+tA2CMT2KfoJZCksaLqcemdo7jOwX/HsT07PbetYhz5KPEf/uWggx+XpcrUPEMkHjpHV+Z0Xq5SGVX9dDQKf/SxpjxQAjekgssgExOTqtQD7lXKJy37YoqHTepHuTKFxKs/dQSK+HL4GeeT/EKtOs7FsrGYzakv6bj6mHnfciq5ZhHGforohLIWVYfArwZiWMi9/Ym39yBSPsxvSfmioU3MsauoMTJJkwgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-5f93696a-77d5-4a00-bb77-2c13baca9387","name":"release-5f93696a-77d5-4a00-bb77-2c13baca9387","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4ced5f52-fc96-4640-932e-2c2c30f917eb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"28bcf79b-73ad-4f4a-a389-75c0a5c1bc58","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsG+qEZc9AsYx/FurOKtUZxCMlQuszrZ7KV+ltKfW6/iWawTaRzZLKqhvdR+RTMP/Ao5+0yhMvYsSMh5blmxQlQ0ZyoAoh/Bnpj0ECUgp9QyErDZ0j7Mo6BVw56DtlUsXFLs2fs2S+Kkmd8sffOaraTvwZZKzBH5SO4xiqYN+SMOiKDzaEJj6LvdiO+79gkPTJH2BzqNP08t15bLSzu19+nq6ASb+AUqCti9Pzhro3pmXCzT5YdVCsIEojzKOqx/IwlJhgXCHVq3RwBnFWmzW3tXyL6OqOs/yqphk22GLxzU4c1kCyo0Gka/B1gvxA7L9kpPQ2jHuNOVKeKZZwmthiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-fe3fb761-8273-495f-8f0f-a22d0cc53a6d","name":"release-fe3fb761-8273-495f-8f0f-a22d0cc53a6d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f3ae8c23-3874-4c2a-9c5b-91186f0cee7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80511864159605962353000","osProfile":{"computerName":"jianyunws1"},"vmId":"7e0aa779-4b01-4c78-a0db-5da1f3b5e228","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJ7BTF37BpXtk2GvA3ZUnDcb4I1xt8ROnqQcXomfpvfCq0egOL4vqmvt5PPSr3k1fuzNzGeREZcKexaBPbYCTH/rR+rT5VrZ1MxvZE5CjJkw0wHZGqwoNHuCymYI0uZCmRZl5ZEsZLbG1z7XBKZVOh8+sGFkNuUtYSSXpyRq6rLdUwGSNLTjPkvnyUlBAxaJgaM7MHrY6VdhSoqvASbmUGeiAh2kqTwtJjNI6bykoeH0hnK50TwsPyE1AoDvHWwZUgJLnqYFaQ+weCoHbb6PrDW1J4jN6Swsin430/pAQ7PmYSt80C1G1kDXmtKTRvGE7jye2JaJM6iBT83RJYPlMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-ccee2334-ccbc-4584-a9e7-0928e5f155be","name":"release-ccee2334-ccbc-4584-a9e7-0928e5f155be","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b0800970-5fb6-4620-b7e0-7455f906b456","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8053635","osProfile":{"computerName":"jianyunws1"},"vmId":"65d42566-df0f-4bea-b78f-74db43b6741a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxeT7f9KrnVsiO4vSZj9F/V+t0rUS8od8vsPzJr4+FWyoCCAql0EJhn5YL/LmJnylVFLcLkRcqIaEgfWn5GlECdO0u/5CBlnKvo3vtUUwYPwmMS1rIwXXp5vXg3TnRC38Z+wa/o2gxy9Elv4qb5QMGzWyaco+ogQLLJafXj/EKDHtdAKjVDV9mpGvOzFqBcEZs4jMLlJ/MgQTiizM8obXi35fBPSfH3GVBEPscEaxMAP2zPhL+oV3kSSMhOpbShxI0A760yAt2TQ1KBAByTKhtogVbkagEradLfXoV5G7kr5r2SsSgcM7XhGjVoQDPCHp8ajoM3Qg0G6yP4AUrpINaQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TY%2fZboMwEEX%2fBZU%2blUDMHimqhiUtVZMSQiq1b2AcYiEwwiTNovTba9JFtUaec%2bWrmeuz1JBD%2f0ybikuTsxTCKl2vULiGWJpI275v%2bURV66zJSlKTph9lp11HRpjVKt%2flHHe07SlruJqbxLANBysby80Uw7Kx4tiGqxC0cbGDC73INbXt2J4WpOPqnOKOcbbpR4%2fHvKOFz%2bp21xOxCW9pQ%2fh91lJlL5xi%2bBRpY1fRHEVDStuRPSUftze8om3KKtJMZdOTbU9GqB%2bk6LIOw428JAoEfx6gXMA8IyfdHqfHCL6PrIvHQEZ6kgrT2BaUJv4VNU2IaPUqhBijR%2bGLIMs0dUuoWTyYoHx4om8VgTiMjdhJlrETv8MSGJTglz6AHwLzIBGwfDJgUcLvPnQnwnVZU5KfqNfsNf2f%2fOqps8PfZ2azAe1gKDOQLpcv"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20230.002_CENTOS8","name":"0.11.20230.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8476c2df-f693-4b82-beb9-eb2ac445a25f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20230.002","status":"Disconnected","lastStatusChange":"2020-08-17T17:57:36.4415671","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"7f450245-22d2-48c1-9340-289408a81dbb","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAw4WbMA8AgXReDKmPbgT/q8jLaIxBzr5m6kf36AJoYW9koHqRuSaWeAOuOjuAtqxX7pe6fVQGV+9scV601c3oH2f9fixNotg8Bp7RRix8Q9KisAg1sP1W9qcVqe66oyKGSQm7C4rYOaowAO4dP0Y6vebLVOk9AtXBgs7M8hiQZiHAao2IQSSPcU1RWbZbvtEfiXNRhd/sNeKCkwF9GVPgN3+jiqwZ9ZzD8j4jT0ZQKyIz/u5W2VwwdB7Pg8GcCnLe5tTmPUH+dAU015eHeYLb9eHYxyZ1TjPOcGW1mRLmtF3u6NVToEVgHVrtY5UgMyFrS50Cy93fJw0Ta/R9vk+MYwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20230.006_CENTOS8","name":"0.11.20230.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4696c3a2-f8a3-4665-bab7-25ca551e03d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20230.006","status":"Disconnected","lastStatusChange":"2020-08-17T20:59:30.4561857","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"b948906e-dd23-4bf8-b039-4f62b168395f","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA4gYOuhUiGfQJjd/sAMMbpl0kYoYq7HTS4g+l5ym4XXunHIWsiHePAeCaM6L0PYSvtZY78fUdbgyB89/lugAjGPjiWjdsrScS3cIEFrpe9PIvhjydp1RmdMCooiXBUOWG/jDOETUpuxPIyKapHW73f3dC+boYy/bj0NxXZMdo6y4owuN1YAI1jNi12r/yh1NcR17a9wuNtyXh9XbMiBWDmId5cLQHdNaR+d9TYak5SMoMsaFkKlkowhedKtjoeORXar93hDV1DlpS7Q6ZdVwZZamEGiGnkelsH+UlANDwj4jtlss1225PBEgt4vomHyF9DR8rtDxd+znE/QakniQXLQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20231.004","name":"0.11.20231.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f6becc59-01ed-482f-80a8-be58f1811bdc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20231.004","status":"Disconnected","lastStatusChange":"2020-08-18T02:13:36.4544887","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"267c389e-33be-4bcc-ae54-305c47b38543","vmUuid":"B0C61338-C9A2-4648-B9E6-E9FB6A0FF880","clientPublicKey":"MIIBCgKCAQEAwZVlEjTSUe+F5cGRM83xkwVHo+HrLNOLZuRPpwq3KX+eHRnNQ5X4bqiA2TR9ecHeYt0q/GflFFsEQb7ziDCvVJraCoGHYwZSk5n9/mlFgERMJB6xMD/s/7gHRTJ6V8TKeyZKQ7PCxnY2cWq1GP6C2CMgqUb38cqTeW/4xfxkKO2bklQlI/p5I8ZutASGWAsdqCOBykX9w84M2rGGaAW3zGl95VnCeH73YWbVxYXGstbHOH3CKwsgtcUBOm/wVxT3GK1LKe+viwEQfju0m4JpTUNQdgWpf8gXZ72VWPckuhDhlbiV47wG7rcGjb2rBu8Yn1QW/eh7gm3UCR4L7ejzgwIDAQAB","osSku":"Ubuntu + 16.04.6 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.lkroqgmnepxudhkyn532hpsgme.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20231.002_CENTOS8","name":"0.11.20231.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b216c98-6f87-4721-bb80-705d945c8156","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20231.002","status":"Disconnected","lastStatusChange":"2020-08-18T17:24:24.4382303","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"9da81ebb-ca2d-44ae-91af-3867d2c08c54","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA1guq6On6Q8Tka27QCVhfXAO0svYEhcYUdX/XjuPR5rPgLRLeOQEKd/yWtVfB8+B8ZqA69ZacHknihQK/oTm7k/4BEGrx1wSuMU6rrFEx8s7wd2mYFC2LeI3727iqqDGrTLGo+gGH4dn99s7PU657ab9gJlVHQ4vL7Yy0AwKs6LvLP1T41Co+VnzbcVz7aQ1d1WXpYpxMfNWP9Lj83kW7zZOEPOg18EBblTx8zIyquTElnyY+Ccyk5ID9pHpt++8t2MF6U6b8mxFHUZgMrTAy6pnK1FAYrwUWEw4ToZZmEQ4krFk5ekeG3TqcDm+GPoNbyeFN8y3Hwp81t8Pzf3hrMwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20234.002_CENTOS8","name":"0.11.20234.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0fb0148-6bb0-4f4d-90ff-1d95f0ca645f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20234.002","status":"Disconnected","lastStatusChange":"2020-08-21T18:54:39.3570663","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"3ec5b290-96e0-41fd-abcb-8689f89a1222","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA3zNgzgq/nvQqohKfiYStFD6LOK4OG9LYvp+oSZKCwWTUohhC4dTlMqzkrjl1xGQcWxGbome/8nfRoLUXfhufiou26lkVTVJa0Ie5DYwFtmF6au0vtx8hifRcHbxVN0b/QovGYXvFP7mb4P1aHcWUFOuR34RkOhzbR8W6A/vX0GsvrP7YpozK7fS9KtOew4eIdwMkQtnPgF3KJ+CFbvgzJ+5xMe54i/z42CkoHQVBJOsY+6/dQVvlwSs0chTau6IFBy0Bon/GceShbZQJDtArp9RHwdGiHD2nceWzb+owEXLkv9RmkdcWsCwThKR2rpf1vVkXCMq67qJ4mMb1njrmpQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20236.001","name":"0.11.20236.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb6fcf4a-e0d5-46c7-8664-9b5657baedc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20236.001","status":"Disconnected","lastStatusChange":"2020-08-23T16:15:38.4188717","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f79e7672-fad9-424a-92ef-b762cab2dc68","vmUuid":"8A4E8484-E1F3-FC48-9E1C-7AA8068E11D7","clientPublicKey":"MIIBCgKCAQEAotkYoIZCIraWIcQH4PS4sUlqdzBqOcsgARUozAZcBRMfQ2bJiN0+/odcw0eiQplOU5QdNlft1gCV5Ont60a/pDwjEHys71S5CJZd01Obwv4rPQz3+Ek9oTtgftuM8qusZQJj+8xbYIqdrNzT60yjOqOntpzesDCYeGD3BBc63Deci7icTcwY7XUue3pRGwQxBhAeqctgF5pbdPjP5WPu/focK6hXb1rPn3ZmCrw17Iw0ZDxDWmJh1eQMd/qXYJaHdk7Ce4fTYdG1eznTGAw8ib+EUl19oBxzo/Vtxw3ZEgRFaNWqkAHJIgsHJC0uGYBX5gUfJLf6bl7cfFIS2MBYxQIDAQAB","osSku":"Ubuntu + 16.04.7 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.ildyvi3tvs5elcdgr3ogoyb0vh.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20236.001_CENTOS8","name":"0.11.20236.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d420635f-8919-4e47-a793-d616af3c693c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20236.001","status":"Disconnected","lastStatusChange":"2020-08-23T16:33:49.3631415","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"1352eee1-9a3c-487f-820d-e52896f7343e","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAviLLloHtipN6PAhmsm9N8e44YA55ps5rnQxduk35bT+sK7WNB73ioD9TYqXdQU0I/LK73yfxAeL1Q6I5yPIr6Wgy86wo5FYfruAbs5xVthlZWeP4GhVd4OIzutTLOFABihpmKOZXRrpsG2cHVeOVtnjWat3VeUyV34UUD18I9ANEeBxD7cIKpeLMFYP5UCRmxG3jKOO6aCE6cmu7/uW8oPSfr5xhJdiKOZi5riYgy3kDI/qoEZRKalrR86ix1UW8kar4edCzBqurnowiHRVF1DS+cWmWLcjR7bcD2HQFfw/jBfX3p7vmRxjIs3jSW//0i3fl6DxE8x1DAKiZvCyT5QIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20237.006_CENTOS8","name":"0.11.20237.006_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4e0b7698-45b1-4f02-8d10-a8891e9503e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20237.006","status":"Disconnected","lastStatusChange":"2020-08-24T03:12:06.3545855","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"a92b0cdd-7d59-4b8c-adff-5539c2a99cb0","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAliOB/tPFKcwVHrOIHLdtgVSsW92lQi+icsTaM9Ks4CE5Bj7lKSjl4Mnm8wL96NqZR2oPCOxOHzTwIzn8EHhGQYAPTUI5XzOoko6SD4G3BzL6mZugocuXT0hoIibE+O22BBIN3ofh+rdfftcXlZ2c733pJOmpJR0MbpZu/bRQziLLuudmAVmCy1g+2SLFYyolfq16cQvZASwBraKjCmaAzc9KaBIB9p5Yehnp7Hc06CgpQMSBcEwmrK4UrXzGZxnJQ9VZgiP8zmbjla5w5DbbWVZX2eiHC+O62UBMurjD+Aeip8/xCnYqN5sghvUXflEvCqgrpIx/rBvdxcuMpMcwhQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az456qpz16_e2etest","name":"fv-az456qpz16_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"371b72cf-a7e9-44fa-b8a7-05035a5072b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20237.007","status":"Disconnected","lastStatusChange":"2020-08-24T03:01:59.3653855","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az456"},"vmId":"07346bb3-cb53-472d-8771-bc393b4789b3","vmUuid":"79072C0E-A43B-F949-A395-87C45DE594D8","clientPublicKey":"MIIBCgKCAQEAt6gWbNbguMA8c0BI35k7ioiiZhTDuhk17fTBWjIgn86owM7tTv0VOdtKtTh9FzHpbi4e+EWCBrt5CuR5KPN/Iv//caoLnBeAJ+jRtYTgIrI/XT6nZreRp0BSkUhq+n6dvOUFtRphwxwnZzMkceQPJ2T2NIIJe3KbnXBneTOlUAITROmkLr6NbYWkc5rlVnKEV2wlgDh8GGCq10gqO/GLlVG5FFPIiodKsQ0s45pc52iLOCiipTddc9aCJUqw8ftS06xzBRIJ6YMO/FZjMdUN/7MtwC88VbDDQCxbJ2kE6mdW72rdJ+wUWwFGBCySQl/G1VXiiV5nopZrlrVmgPSCmwIDAQAB","osSku":"Ubuntu + 16.04.7 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az456.drjxu1y3psgujimpbu1341pifa.cx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20237.009_CENTOS8","name":"0.11.20237.009_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cdd27828-5866-4a8d-9a22-b1412756838c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20113.001","status":"Disconnected","lastStatusChange":"2020-08-24T03:34:37.3797761","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"0226b9bf-9847-4b65-bb43-33a17acc7af9","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxspOYrOm3kzvNPi50B9I7dX6lMboeW5Xd85M30USoeAVDom0qn3mIiDyUhkd08uPOk36oHwN/ekYfrb7m9jMsPAsSb5jcNE79GDRJZOscPykABrHKSE3rG7VVjEbTGwBPAbZzkmoLYMUiO/ye7ZgkqCkl7eReNNkkcbaanKQhHLIN4jdmzF2tYMA5SojPZw78RSVLZDEXYpp65zJ1uNvOE7YZu0hGCL1AHIjbXlbRzcgSpA0LNHDfOpG7hsqFY0IiO/MElXYRFoO0rf8rC0oBnGFu7h6N8CXAQGe2nQWWfk/8xvh36UdKaFVABuhy3cc69zbpu3N0YmFQmaRg+VHQQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20237.012_CENTOS8","name":"0.11.20237.012_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2c96277a-cb48-45bb-bfea-b3a9cc54d74d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20237.012","status":"Disconnected","lastStatusChange":"2020-08-24T22:07:58.3493332","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"128b14d4-b832-4cdc-8510-bf96301e8dfd","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzmCf+fiLfL1pC82nPHeNsIf4u0FJdoCZwoGdqFNgktsSJDGTokEjawClQM8jsqCDpYGJeBnsvD0l8Zhm+XhFUCMwd3v41bImvl3MgTd0GDXUK5IcWHT5rNuZcP1CcQDCTqORNKh9HI+VYWLXJWzE0WU8/iyBNeGN1/KUVHFoZpxrzrp92vxfHnoe/BJtiTLezf10QzHFsNJsusmHc2Q2wKTQMKIpwbxje744D5gPRgw+kDc+Bulv/M2xTKZfNIpuuHTap6n/xNIBK5Ii+wUk0UxoMDrw0zyOtaL+F2plcLEkUdVc4rDZuEck/IHAKi1W338/P+e1+5qG2Wr9DiovYwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20238.001_CENTOS8","name":"0.11.20238.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8a653ff-48fd-4229-86d9-88e0a52f4527","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20113.001","status":"Disconnected","lastStatusChange":"2020-08-25T04:43:52.3575225","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"96b56dde-8bb6-45c6-9f74-6dbbdaa0f497","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArjf5vwLqb7yh5oG9KBZ3/x1p1kblCn2R+HjgDTS7JNx4LDbJ1Fic7N3hXwK8//N8SUBaPnSK6l8p920TwFOPh/bceJd0vbHklV7J3nbMf9D+boKlWuYPNsUsJCbEsj8jPRk9fucwDSInmxoAoo5um0eGZS/4Syk12g0zHqrazauGc2n49+y1DjR04gDuZXQggozmZSxQ6dW/5CD6N6KD2SWefkHsF+Hzm5uMXRiDfOg88IOOZlKuW+pQkd4Ph2H8hRGICjRwps3bgaLIpwh4Qpo7AlnIAOXRLDqQKecC4iMdaozlaLkH3EZAYqIF3Mau8NVaHOYOy+IZixhvO4+IBwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20238.001","name":"0.11.20238.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"89d89ed4-4aa0-4cc9-bd4f-2537b204c297","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19305.023","status":"Disconnected","lastStatusChange":"2020-08-25T04:48:56.3594141","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1092-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e998a329-b64f-4b76-8de9-579d8ac60093","clientPublicKey":"MIIBCgKCAQEA0YV4iZ0DrlvLSbJDgTnShqpJTujJXyUkOBGR7xINDz2vJFjVFcDzPcuB0k/Z+QSYL6koHOUSWdEfFz5wrIq8UUVKh5VDItSaELmcD5Cw4qjG8vzH8ORy3DtF7FZbezrOPvsNlFOUEjXHmKiRQ0D5ObdqKPXPo53z1I3FktZAoKhhUqIdqVAvdf+ijBT0ceADDS8izd2RtoDoexQfAjip2VOfhHx8D1in14ZIKUxikwBp5lg+YhxzjkSDEQQRUQVfVZd14v2OKdOkdOB0rP9gA3YqCWt82Up0RkVxBxvCo7TXo7wwhgxRHdurCITZzIlfJjdQ688I/rvsaFpmE7hbaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/9b634dc2-ba30-4635-b790-cbe5042a200b","name":"9b634dc2-ba30-4635-b790-cbe5042a200b","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0728c609-52a0-4954-9fc7-292d8e71c335","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"aac6916e-1364-4a95-ac37-8880100c4110","clientPublicKey":"MIIBCgKCAQEAt1/rF+yXzNMWF+mRB3PnWVaQXCCYcRUj9sbpLQzBX1sMPzSYvmInxANxIyH3H4zL8Zb5EYZTPMufIL9Iz9H+WI5H/QhAQod66h4mI8WrNYC0PeoD8bcRCehv65nv0KH5BXVkakyO/jAKVKfSgZq4xKBOfw0B8DhrlW5ZSHeCR4QsuHjPFAN4q8q2vYQfx8LzBlixRlHoVBaYfhhs49zcubOHrbUj3ftbll+KbafNZUzBILZs49EtffF7c5dAxOesG93EcGF+Bzs+GzQK0eMfTEslqLwko5745ugtI3S7Bd8GADjV30oxi69pk/iCWHPXOqF+7IL/hRQyBVipQEFU3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20240.009_CENTOS8","name":"0.11.20240.009_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db71b535-5e78-4ee9-a0c9-47a0917202a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20240.009","status":"Disconnected","lastStatusChange":"2020-08-27T23:21:06.460295","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"a2ef56b6-c98a-400e-ab37-df5043a18253","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAogNdNGfxUCANZNbOulrSZh+B2lokXjVqtC0OpUS9VOH8JCfCOdlSYpaPe6uIND0lr46aGE7hbmq2GVqo1arYBrED6Lj7EP0Qy53ClQjvNj0CkqM99NLVGVBUcpBKOqzGRhniA6+gdhAubmdH8vaKc9nxjZhVkcb+ebbD3uuHt+Aucc8L6f/WYFiDX298f0UunpQrOxU6M6cnwHxBC8PADMonyobMp1xTrLYD+BYNhpXDJefPkgtKAf+5YS1n/FQxc7u9hNB1+si6iMUFd+IReG9wiWO/N45iYQ4LkQuAZssKgr80Pr/WRyj6zT/3mICyAWYgTGgHHsTEPDsAprjdiQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20240.011_CENTOS8","name":"0.11.20240.011_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"65922019-a8a1-41f9-9a45-7f94f720db61","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20240.011","status":"Disconnected","lastStatusChange":"2020-08-27T23:43:42.4597621","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"05a922d2-121d-44e8-b8ce-01c1ea1281bd","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA5wof/BCU20n2l4Dx4MFr8lBCZ8Tx0ALEuuz+ToC0MjUWgvO4gYbbjIGx2G05z0J6rmaP5OXiwhs6cRrXh7Uw4gQGly7gELmrkkD83NYe7lxYwquSVr/7J9F7n0letkxtkCKHiAn/b20rGUYDOT4XdK0eF45Zw9O1paGLwiClLM2XlouI9AUg1A0MjtplC3hEGAkbXBAuyPdVxPgm3Ts2CC5UbXEjNT8wypb+rETRNdYJQeFroKTnVFBb9qZE3hcmOor8dXRvJbAM0LPjD2eLSALYNumWMRNrKrJELiWKzBpYqKdjXRQW9p+4FL25N9IwAZiNBgwV/h31S/BL2oNG6wIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.001_CENTOS8","name":"0.11.20241.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dfd936a2-e19e-4f8b-8709-0a25c6fc90d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20241.001","status":"Disconnected","lastStatusChange":"2020-08-28T01:49:23.4695676","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"c6495731-ad98-4751-8ba2-a8d5528d3a18","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxJ6uv2ihSKXw/5FkB1ly/PESCuaDzgDXulC0p4ThspOrRGCoSsTTbgOXP6wh9reQraogv03n+db+FwOPME0lJ1eWcmJx1S1+ob+zjhqy3I+Psi+UbSP4IBGxkGchV5JX7j4MA228YLPaFoPugUTwjTZj6+BzYrQ/uuYhnu88p4hxh7ZQB/DnzBfGW0RglK/POcJxe02m3cJV94U3r67zAizhg67LFRt8l5soPUoHm3sYyDJ/cU8VZlGbyi/ZoJelj7jn+Xn2eOxhE7a4P7TTkEuEGmju54Vl4Nbbc13uy6bzXTRoGvcVDZENn2m4UOvRcSZvjwdfO7v4jfXYnIpEGwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.001_UBUN20","name":"0.11.20241.001_UBUN20","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb1edcf2-7926-48f7-8218-fe94dc9a1657","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"8c4af13b-1270-416a-9200-60e003086eba","clientPublicKey":"MIIBCgKCAQEAweJvXbrjBbfsk1aBoh0pYr4ZYWJU8oNKcgMvrGX1INt3ivQbxL+05gATm7xuf+WUDhnSG850vIWm2mWxxbdYQG+2sIj5Uy1twMph0liEZn11/Wwnr5w8WkuLHcZhBEJgpGjbsVfkhPtZqnp6r0YpbHkn+QdqzK0gNb7baaW7RZAI7Nh5WjKTrKspvDL2k97ofGWe8dF4cwb6jkIgqQcbd8LIzU80keSwWwhHEvDlRb2JNSWT1mk1nzpqJtW41OLsborODPEoUvF4OFlPHj2SPzmHyv7nt8A3IBf8aNd+FtJHT+0Hj21+lqam86gpkxmbd0CTlcZT4159OSjvK+3BgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.002_CENTOS8","name":"0.11.20241.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec42c732-f170-4ba6-a903-80c13784d8f7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20241.002","status":"Disconnected","lastStatusChange":"2020-08-28T02:01:41.4655342","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"82174704-0caa-4c60-9fa0-c254e28e5627","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAxyAfEEVcCqgEMUs3kORxLQgFghaofHggJBEGH3XijOHQuirBD6g2gMAKeLOijEYIMDcsWJLn3GwdkQaJE13J7OwSU8Fvl0K9QOkgFESV4yN/uis4lGbYHYZUhHxGaeJDfkVMpSip1kusBGIQkYbmd8Ttc7J8ad8Ioy1Jl9I+hZs3wXfB1oZrzV2f1JeYvfjwHbkCrTvt4szbusZtrGrQJtqlCysIkXJaDnJHfGsyn1c5qXewqJWDu1JLNyZGOyWulaRWKYbSoa+sJbSLDssh+BG/51OPS8cx2Hliwjud8A6+gFZ1ayN4BnfJ/cm/RrO5PUPPzRjAxoYEHDRTIl9FswIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20241.004_CENTOS8","name":"0.11.20241.004_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"367b6ddf-f597-40d7-a788-d86b025e76b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.8.20113.001","status":"Disconnected","lastStatusChange":"2020-08-28T02:11:02.4660539","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"132b7714-4b8d-4756-b651-c564838e7366","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAzmuagX/0fZoU1/LSZeiTCOeGH0k0o2O8n8xhwR0p6J0osGU2cKOsNuvbMsyQg40HK0tnMYjrx2HT8eihWRz4HpzMXG5uxzWJw7+XNVQ2C5wzDy42EBz1Pw//9Z8tk9+8asiTmhgBhVVREPDe8rxvt4eEykU4LAwbWqOGfkczrBK15sBpDozQ8j+XH4CeQzGF+Q6i6xc07DcyyLCZGgTKJ5wFcb9VWY4gYRHqv6KpjoRahbOknIlxvU887VijU/prYlInYDGrRMN6CMOyRGxhD1OFMWgYBhWX3VDjthWWLmgWSPz8FJIWrb1ayovXzEbvZLkSO0ymUEMGQWN6lCXdWwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Ubun201fkce_e2etest","name":"George2-Ubun201fkce_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1fa738f2-4209-4348-9922-33f17db5d4b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"1e17f694-3d31-42f9-8843-f12d481c68ae","clientPublicKey":"MIIBCgKCAQEAu/q3RuVtMUEOSPxQdNwuN9kVUVD2UmVtqBESL2ppVSS0SwPaMdexNxVu+pD3eNuh5qpjZ57DpyM5Sw4rfXIClk6Jgd9W2rFPvp3MucVqLljhCRUFR3Gf2xsPizNFkeNmuIPa3cuNLaog5EFLLIr7YeSnZqLBMk7z62cFBX+P1z8OmD0R6q5rvuxpUcRIIlEvMJe+lGTYsICe+Z0W/m90nvNUjZsKkmH957FI6XnDmC7+YjOpFlNHDTXqzvDTb5EnbH/ajQC9zypm8p5dRX5JcLQqBYPMISV5q7ztpOgcAnNJI3llkU77/6Hd9TsmgftCPHaMYTL2vkrZ2k+vEUWMGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20243.001_CENTOS8","name":"0.11.20243.001_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0533922c-5c3b-42c5-b3b8-771d84d1b68f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20243.001","status":"Disconnected","lastStatusChange":"2020-08-30T23:20:48.9938907","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"6e69dfe9-5233-48ea-b64a-30c3f01a67ba","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAyyNMC2NDb4/TPDpg/wGRmr4UkOTd04dv5M+HJ5vbdD2qqXQ94kKkUd6ZgtG1Wy6C3BT3gJa3P61fRDKziNN25Br3mjfwdtFHg/1lbbObfxhrmKh/kdBIhct0/cz1YAj+EvYoL3DA1zoDXI6ygUwuhAwkzNRNFkJR91NBYxILwVbDXLi74BwA74nw7W37GcvsuDlSumL8tuDKPfwXBXIvM7xrKYb0ghewG6giYrefJyxG5aN/kkrhECoiascqFSS26IVdF0ZyQhVhiB/XlQe0tFnjr93s+Q/AkT4x6NFbWAabH/9AH3RnRE47+AAGckP3ehTPYHjjcbU5CG/RMMU7ZwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20243.003_CENTOS8","name":"0.11.20243.003_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"12ba9666-b9cf-4013-842d-408fdd638118","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20243.003","status":"Disconnected","lastStatusChange":"2020-08-31T00:37:35.9640601","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"2225b674-4555-43bc-91d1-563a647d018b","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEAt3oEIFvd0Ah5vZwpUKwuYRqAA5a+ANJeB2u+tIvOQapjJO1TgnDskWMfOmwgKMM5T0JR9agEboLvmUtmsH/75skkHQkkXfu1BNjnCkOJRSbCDm049OhsYo09DiH28Gdhj6zy4+Tj4DZkNhjNCUj9t7fxSL3vYDXPBgYralhS7raHog+G3bZ6Ft8KSOoYqHmjbnHUIxxe5LrZ6BdAAmk3sS35IaUgyQYwi3EV+hkLhDoq9JOUcQXDkhL1S4zlK3dH23zd/f/uwSzROiJcs2TIlw0sbobBGfWH6o1jTJKQSZa/YTcSQRTrExxtvpcm58Q6WbRhaEDFsAuru44+OnwmbwIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/0.11.20244.002_CENTOS8","name":"0.11.20244.002_CENTOS8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d521b33f-91f9-4fac-8467-197982691d95","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20244.002","status":"Disconnected","lastStatusChange":"2020-08-31T06:20:03.9461627","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"634f954e-3246-4afc-98a0-3e6d2fc93051","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEArTxaaIFsjd60KAWC48mI7ADPj1qSnod2+s0obeh9353HS2ZM9lg9UIWwyjsqPN0wB9tuqLM0Kmslx29RWISJHsjb9Go6Twc2UKlwv9gtw1xieMh2gvhK4wFB347b0rY+h8XQBGPP6CIulD7tYgvn1A8KxrBGUZYN8AxtpU709ehbgv56b9byG5htUwlkrHNVSl2pL7xslBTX8TGfyDctK0rKza4+RnNqdelo8P22ia+Tdu9k6MTSOCKFpZ01kIyevmsXmskIhAC22CKfcRyZIhz1mjp1e7oVK5IbufV/NRB8ckUxjj9Blu9Cleq0RH/nbacWeJltKY6/d8FvTMEn+wIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/fv-az4965vdgz_e2etest","name":"fv-az4965vdgz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1bff6507-48c3-424d-a8f9-3b5f04d99999","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.12.20253.019","status":"Disconnected","lastStatusChange":"2020-09-10T00:30:02.0619137","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1092-azure","osProfile":{"computerName":"fv-az496"},"vmId":"84df3f78-aabb-4d51-8512-477cc0ba286f","vmUuid":"2717036F-18F8-7945-BFED-8E947018CB8F","clientPublicKey":"MIIBCgKCAQEAxuo/WqUDB3Ua35QxRSV6GYQ83BYcLz7TK9RWoAJEdpvj6hhdMClzhbqSawtpQf14Lmf8adryMH+7fqzTI+RGIgVXi8SAjKURAAQjUo+oDFXWcc6yDPR9WgQJVc36LoPzCwr1ZTn/GAWtRLwrOK7vgq5B7Qd3RLrz7f/4gx7eOXbp5Wpvg9fnxj53YH235X/6VTwIiEVHuP1PMUvQ3ppd6GUIb2k1SJm15rgYuT85vPkpOcQJQKbupcZ95qbi/TzpWBXgV7ShjMPQvufM/jExX9iI1rjsxYDGe25PQ1tPPG+ljXIBuXuNQIh2g71fyAJ6Jx1ojBjvhgWlV/wi4BDINwIDAQAB","osSku":"Ubuntu + 16.04.7 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"fv-az496.xzc1nwnja0mellgqx3qglmmi0g.jx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/George2-Cent7-1ro45a_e2etest","name":"George2-Cent7-1ro45a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"caace50e-59f8-4edd-a404-1465681b8d96","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.12.20253.020","status":"Disconnected","lastStatusChange":"2020-09-10T00:24:00.3095301","errorDetails":[],"displayName":"George2-Cent7-1","machineFqdn":"George2-Cent7-1","osName":"linux","osVersion":"3.10.0-1062.12.1.el7.x86_64","osProfile":{"computerName":"George2-Cent7-1"},"vmId":"269b9522-7cda-4918-8a6e-78e43dda1b12","vmUuid":"5E074942-0F2A-DE46-9EC1-4ABB1A361D3E","clientPublicKey":"MIIBCgKCAQEA0pnRoBoES9/MOIcimtX313e9YKaxnzAWdW83kCkpcNWTF8K271WtP6iCqJ0Y9u4kGDindi4OdoGJDbjNAfyV+AVg9btNQzG+5OMTwVJmqYXidhHJT7cHD+IwAjp3Td8LPoHfxTxVzTY/vmJ6c9LbywHQMZEwYI3Hj/pXz5a0w6YmRMWt6lJA9Mai8AOffDSoOyUjBnCtGHWpMKbKyeHy++on79fyoODZOQq/nbton2/2G72WC5sYwMM5U4JQEPus03YAagdx4f7HghSdERe+yNJEhKk0keMK7m6znZVh6yySGlsDHBFNuU63qUijI11qcG0cLeuNRC4z5iy8sNd+AQIDAQAB","osSku":"CentOS + Linux 7 (Core)","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"George2-Cent7-1.a0xo0wp2sktuxca0kk2f2k0akc.bx.internal.cloudapp.net"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/gwf1","name":"gwf1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"96c313d8-68ee-4f15-8347-42a7ee76b294","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.12.20254.007","status":"Connected","lastStatusChange":"2020-09-15T00:17:14.1662018Z","errorDetails":[],"displayName":"george-ubuntu18","machineFqdn":"george-ubuntu18","osName":"linux","osVersion":"5.4.0-40-generic","osProfile":{"computerName":"george-ubuntu18"},"vmId":"a38ce6ad-266b-4456-b364-6ec21fe87e3e","vmUuid":"unknown","clientPublicKey":"MIIBCgKCAQEAu6M/hZvooh9AEswZWP1w534xlWuU/bhkEYKfQ2hCvm+FQcYV/1de7Rzpl+5LHyvDB4AAvmfIb16mUutZY71MSVpVkCAmvRHbv9ZyaKm3sS2nAmJkEF3LtH0TRCQ6dGTXnjREa17v6DUrU2rAiefYszfkQ/bx6JC9qF33ot95aKgNCo/g4Gb5cXLWA+6/M1nTy7Q1/YAcuoALhtlm/axl99GTL0WXeEF90R+TKCdYdeYt+EuGROacc0UQKSUqjsy7TD/1tSJzHwUy4aSt8jVpg00+qRbB0ghwyU/3L8xvyWc5H0O1gmwjuCMhE89MxNTKgGhxD/RJX2QaNYfN4q4ggQIDAQAB","osSku":"Ubuntu + 20.04.1 LTS","domainName":"n/a","adFqdn":"n/a","dnsFqdn":"george-ubuntu18.guest.corp.microsoft.com"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/DorothysPC","name":"DorothysPC","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4444182a-314c-40e5-a2bf-0e7a3ed430c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.11.20231.004","status":"Connected","lastStatusChange":"2020-09-15T00:06:18.1418698Z","errorDetails":[],"displayName":"DorothysPC","machineFqdn":"DorothysPC","osName":"windows","osVersion":"10.0.20211.1000","osProfile":{"computerName":"DorothysPC"},"vmId":"540805dc-cfe6-4c6d-825f-9e2950460d3b","vmUuid":"731AC6D6-85D7-11E8-9C43-BC00005A0000","clientPublicKey":"MIIBCgKCAQEAqA5huBMQMhqEIoyHC6htf4/iIcbTQJ3Hnmu5je0ZQXwhhI0hYmrA3pk49Y1BBTtOChfzGU59Zqh2eYuX9AKwXzGW4k8huhwEjX/K8LanJXT8guWrOCJjiRQ2R2BlkGSXp/vP1Jbz6w+PZrKkHiyp1TJTft/phcb46XSbN0D5guiddJtLXQU65IPbovNMHbffQh+Lgu3jpaQkISURbtwqRs4PF5CcN/ll7WvMV0tUv9BIqW2p7HvQCgLvYtP7i1bzEHQIDB38gARJmkbsCtaI8+8YmVmrmC7uhdsqcVrrN/0pAXc6sq6H3LGlV0RuuJYRbyr/rjOb2/a5OD0ltHQQ4wIDAQAB","osSku":"Windows + 10 Enterprise","domainName":"redmond.corp.microsoft.com","adFqdn":"DorothysPC.redmond.corp.microsoft.com","dnsFqdn":"redmond.corp.microsoft.com.DorothysPC"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/release-098f57e0-b279-413d-a6e7-a62b84e3f958","name":"release-098f57e0-b279-413d-a6e7-a62b84e3f958","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1c4473f8-4b92-4c21-8a1d-d9501b6fdacb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","osName":"linux","osProfile":{},"vmId":"0c4aafc2-9dd2-406b-a9c4-38bf71bbbc19","clientPublicKey":"MIIBCgKCAQEA0yza4CEcdtT06KQ/RdkVS09O1IQZgUT92s0NyCQODqO0F00AU+qaMhcx02Y43JdHGONoS/lklFRMZx9eG9f+ZJfcoIUwWGZjrKWk0mb5tBtKbzAeTAZw01il137p7/Y43mgTbzXBZcKdAArl9eW9V75oBhyYJEVp3fbGGRk60DrfpkpRmexOu6FlGP/m8U3FeHs9/hm+3qbme4cQt5dbJlgyo2Wk2gu+Dy4/lcS/5O9y5G0xY7SbqeV0Lk+LhDf3HFpNYWvKQGmmdBZVVO7bNfB5lJNZ8DtpMPNsXXFNyZ1GFfqEdRof0woTRvwYY0xp/69IidDJsBnYz1NZXW8mgwIDAQAB"}}]}' headers: cache-control: - no-cache content-length: - - '117738' + - '37321' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:31 GMT + - Tue, 15 Sep 2020 00:27:42 GMT expires: - '-1' pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 40bf9a43-b328-4985-a382-d73b590148d6 status: code: 200 message: OK @@ -824,44 +1917,148 @@ interactions: body: null headers: Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - connectedmachine machine delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -y --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzcmagentTest/providers/Microsoft.HybridCompute/machines/WIN-8N7AI0E7NI4fu6hw_e2etest?api-version=2020-08-02 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 00:27:44 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: '{"location": "eastus", "properties": {"publisher": "Microsoft.Azure.Monitoring.DependencyAgent", + "type": "DependencyAgentLinux"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - connectedmachine machine-extension create + Connection: + - keep-alive + Content-Length: + - '129' + Content-Type: + - application/json + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/dependencyAgent?api-version=2020-08-02 + response: + body: + string: '' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '0' + content-type: - application/json + date: + - Tue, 15 Sep 2020 00:27:46 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-resource-requests: + - '319' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TY%2FZboMwEEX%2FBZU%2BlUDMHimqhiUtVZMSQiq1b2AcYiEwwiTNovTba9JFtUaec%2BWrmeuz1JBD%2F0ybikuTsxTCKl2vULiGWJpI275v%2BURV66zJSlKTph9lp11HRpjVKt%2FlHHe07SlruJqbxLANBysby80Uw7Kx4tiGqxC0cbGDC73INbXt2J4WpOPqnOKOcbbpR4%2FHvKOFz%2Bp21xOxCW9pQ%2Fh91lJlL5xi%2BBRpY1fRHEVDStuRPSUftze8om3KKtJMZdOTbU9GqB%2Bk6LIOw428JAoEfx6gXMA8IyfdHqfHCL6PrIvHQEZ6kgrT2BaUJv4VNU2IaPUqhBijR%2BGLIMs0dUuoWTyYoHx4om8VgTiMjdhJlrETv8MSGJTglz6AHwLzIBGwfDJgUcLvPnQnwnVZU5KfqNfsNf2f%2FOqps8PfZ2azAe1gKDOQLpcv + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-cba4ecaf-c143-49ac-8797-faf53920061b","name":"release-cba4ecaf-c143-49ac-8797-faf53920061b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1bb50a76-aa07-42f9-97c3-7f82c7e60e8a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8be90ea4-2b60-4a23-8f73-ce08eaf34e1c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu1DNg75TLP2FJO8BgJc+F16OZPH2LzqOUYu5w4N5snleO8AlMLAKEhgyzReFhovOhHmxE3RAALJnsZ0BG3cj1RibxjPxDRyoKI+l8+/R/yph6Dqj3SCV8hko00jMqJlvUXBTvOqLs74FF3AINUkSyx/zivOgyRlFhbfeBwEWfVtGr7G1iqQjbKDG0Qz9XX+P98fLvRsIR9zFLxYfx1S0MTj5B9oxf0HH81fIr2aCiRC74KyYpuT5c19Xr/uFqwj2OEfUxq2cqb7tqKkXbkLAF94BD49EKXqTgntv397S2wIVlKD4+hlFdsKtAiwZN2K/MGOZp5/1yMWtJMYEFZSMvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-6984d3aa-d017-435b-91c0-a8c86beee35b","name":"release-6984d3aa-d017-435b-91c0-a8c86beee35b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6cbddc8f-1e77-49bb-8d8b-c1768db46ced","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"cbff3287-6f4d-4824-a02f-7a68a014df55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtK3QsWxnky0Pn15VfvoXQcy7VSlUfedEX81gGOGmgOl83dt81kX3zsFfMBiwk9LrQ8Wp8vceL+kx0FpZpIHtHfPrnRd1xjkze1RwU90cp6ZGlzNsaI5nPHNC10YA50LzcKGKmxotU2AWDT8oehMR0lG7ny6K+6RvW1l83OiX4T41eCXXfKDDtz85OOdoVq6G+2oIX5pRut0AH3H0rSGPvjlAeF2JZv6q6v5vO0Dmdw8LsVWhI0/SQ3ruyNi3SOidTgPKx5qaS1x5ueKYtAANb4BB+9ypTEHjxDLJfVGL6EZ47cFLF4+Xy8yfoVbcUKAJUWGgzB18REkOFLBMmuGbQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-17b44589-60c8-4ed0-9a31-38d9dc578eed","name":"release-17b44589-60c8-4ed0-9a31-38d9dc578eed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"baf6a480-ec08-4071-a2a4-03e260f30292","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"20d7517d-862d-49cd-b5d1-eca95e87a974","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx8WXPlK0QS3AWnF6DYbE+ts9jWxMMaKS4OeTtZBfpdDo60lkqbAjWIVvQL4W/N+48aixcZhS5v9nOkKh5cE8LRE4umaTigaZDsj066wn/DVc/zqyZ33nUzYazrlCauN8jlPFL3XfecVpVc30aIPoinmI+VmJltK9eSZZrVMcUO5+SC4fAQTOrdy/OGLY/eqyPhmEid4gG5Rj8QHO6Iy+HcK+F0ULv4QAiAHx6a8M5R6126aE90wxzM7AvPVr4C85pzwX9H+6Ce35xh3UsnM/98DX45MeDBahLyfjNwH8lxiYpfJxWFTtqZksCrxefaGDnW6S99DSAGzjEafZG5JkxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-b4013f9b-0ea6-4c42-b221-cf35281576b0","name":"release-b4013f9b-0ea6-4c42-b221-cf35281576b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c4769ba5-c2f9-4581-87f8-9925669b6e10","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b7b590c4-774a-4c44-a9ab-78408413f6e5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwqC1nGzLHQbyOz4xa2XZw2VDMv6LSCrEG7pbzjNIhBMLbsPbzRjlVYTadgaAWPcAo1j3YQ5NLMZe/WI77e4ZzMhfeAKpJyuX3VE1x1Oup4natB/cpnhqR+9DdA3NQbxeO8+IRyoXSwoFA9XNPXHvKDQYyRtvUyw+O5d++eVxfxVqpF6Vna9zn4RYWYpEaE4DtKGS7+yoN122D7mIZNZ28PT8e50G1dxZ3GBJaiMPAFhfaneo7T/2yXneUvhhEyC/9un40xwzU0PoPRNydAtxic00tR0i7Ec3XHjmY+UFsVtfWG9HK1GPmaWzaUld1hONF4med566dyqjRViF6wJW0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-bf533b85-3ef9-48ff-9e19-2f6ad12850ba","name":"release-bf533b85-3ef9-48ff-9e19-2f6ad12850ba","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e3157809-3be4-426c-9311-83c79f1cf3b8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"18961924-4bde-4617-b720-6c83fe6dd17c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyi/4P2lAoMrLO74ddnm1TmMODzEGLE9i0EwJ/MLd4Mj3Av8TRU0wL5gMQEjwY1LnlxjpWUsFVa/QvObFUPuqafMEX3N1HO8js+g0nUWEggFa9EIhg9yciATvY17EzXdHH5jd8UFrWa1B0vZQp1kM1QnilecZANcHgkYd4GAe9v7BnoMZlILY5a2t6ifxE+FbmsSOLimr2alqtg1/kKPBsuL8CLzQV3AjKBaKlFAGyX2g3aNdxe7nMDAqhmXtj5gBTo5bnwlLJPPYU2pAobDX6xz8y4O/NmPUEnYTPelM6IuNVO3KyQPu9R24Z+pXBwlVmSj26VuaiSu4EfiGKlZZpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-4b55970f-f5a6-440d-8d3d-bca7ec242cf9","name":"release-4b55970f-f5a6-440d-8d3d-bca7ec242cf9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"78216975-d181-49c9-ba89-be5ec13ecf2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8058834","osProfile":{"computerName":"jianyunws1"},"vmId":"0632c2fb-127c-42ff-92ea-b41bba75c597","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9GCy5UxrlCsrQjby6uBcwKNINAU7Z74kc6nTY0Y4sCCl4wOC93Wgg23YxzlHcYv/0liaQPZDq5h26kqF+mozO3st21BsxaauCCIW7MdDszWvS6WPa+ebjqhxVG0/a0Q3yMVhuqWqEWzJCzU725/25Hu1FpMPgfCtgSoms+mPeK8bb3bytL/sbA5tNYqhin9et33a4kEaNtV4aq8hzn16qvyilRT9hU4jlCD7ty4etjcIAtjmvxxJx4gpfHDDPRij+RwEOBmGUC8wK4LskW53X9X76Q5cu1TWE4ZSBuEs6K/KqATtNT4sfJH7GyNLIhqi1nVzwcOOFFVoIOSFSfL8WwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-c4114569-0ea2-4d27-8ef2-37d0b661ecbd","name":"release-c4114569-0ea2-4d27-8ef2-37d0b661ecbd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7487f392-8a94-4c7c-b218-3066c92207f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80580528552","osProfile":{"computerName":"jianyunws1"},"vmId":"1a863d1a-cce7-486d-b274-b5339bee2444","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3vaGlIZpAFy5lfT8owDw7Y2SKcErfS+CO7X/2OmEHUi3E9ujDDo/o1EMYTgNkQIw9hBHDQCi7ruey07MrtcR/nmcXCRO7CDs58jKgfwoSSHumj4j2oWWX4UOi52Uqm9zv6ousl2H8ttFu2ejsgfAbul2oLVJyRJP8X0Bsb7rFRiEZeXqvCbe/Mgt3+/M+ivwcEAfz1pjHHcub6T2JDu2E+UEDCNeJH54kVxNdajvRBnE4sdCia4b8LBX0CQsPSZ1/u9T5RZM2B/myZ0XQUkN2PaO83aMIEhsxVluesVme27WYEbEGcgncKjjkwOjwVOojI2yLal8M4NjhLc2FhzOeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-0d187f4a-aa7a-4ff6-81f3-f03d0622943d","name":"release-0d187f4a-aa7a-4ff6-81f3-f03d0622943d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8d73bc70-1357-4fff-938b-82d2109acac0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8052217","osProfile":{"computerName":"jianyunws1"},"vmId":"15c39099-a562-4118-8efb-a5cf48fdeb3e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvLh8b3iZvRv8pSoKo2Ya4jSebJcTw03rOKXJYA/HHhFZRUmBC8P5ZtwyoLv887S9MVyhfrcFM324Ngg7yepSjfZ4dwq3cHBkA4G0CzEQC4HD0CV2mK43fwf2veENfkLJ3T/wL/8ecFBNowEuvbhBnYgLaAAsJpE+kNzJeG8/672A3RrC/lA0H+85dsdPXzLXbJyL0G5/7l9eIs8/UlvKj0P3NIXlMrs+qwsb6bzyxtP9oWnrGeVZaIv6WvxKvh4sbXv5tUanW2CKZuQbpvCww+i69MQblt1BxBuGL/rlMysbsghdADxqrsqiXwAbpZHsfnPhyoko9j8SvL+wPON9LQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-11c36041-481a-42f6-9b6e-b9f09baf10bd","name":"release-11c36041-481a-42f6-9b6e-b9f09baf10bd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"013c852a-d5c9-4d92-ad1f-80e62f894c60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80547383363670","osProfile":{"computerName":"jianyunws1"},"vmId":"02ef0e26-4b32-49b4-b071-a588f4950b41","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwPe4jPCgcwYqvKobRLFkkuIRlCPnMwMoSIlhZ1J470eAomHUaXpaiFyT+amnrqkBYteYxopbmkILSRKOt2skn4UME7L8kci/uvHAiszHCkkaO1OEwIdk4nvYomVI3LMmH5kSGin5nYaKSYiXp8JW7ZWN4MzECvdlOfuwYgo1/ICjlEmFCrAX/w33Gj8Uc1TzuUaSmRc2xArNNrd7HxAw84PzrSVFMRnNZX1Ev5clTRWOWVor2zPLZ0L5qvKHUrzHURnsdmcGDjKoxT3zN+T+KurdFXzOtAPESsCiF2CiL6wzG1QDyVVtY/kNRsavEL0eitM9NTl1FaAxifEkn76rAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-187cbb05-f371-4cde-bbdf-f8a7194cc3f5","name":"release-187cbb05-f371-4cde-bbdf-f8a7194cc3f5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b65504fa-4ccb-4173-97de-7c14aaf40a44","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80590543264","osProfile":{"computerName":"jianyunws1"},"vmId":"29e382b2-e609-4dcb-b7f4-554ed1588718","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzDpDbgyP/0UD5aad/HlwLAxjrn6v3W2ojgnaiyvStECGLWFm0k2R0Hn7NJrkVFgx6tJ+n/kdRPVBLEWk6eAQaIEM8/QjGYWH2GA3PIpjCm5gnvUhD21cdbIZKwPUKSnYxeViHF8HcWDO9EyMro8lYDR6NG4akVhHqq5SSUC7Uymne9hdqOhLW+eEUeJXkpOenI1HSDJv7XZ+X8ejZRJt9yYfwHQ7qV9UgT4IcVnL2qQvK0mR5XgRofTO/SW8MkrS5up3vUUD3urDxHCotUqE4gWZrGAEYi4l80pcBAWMO/OY6j5bTs7zFlRh3HE+er5Z36pNgpwuYjLkhywVyko8IwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-2338cfd8-eba7-469a-83c2-2361c7e7c243","name":"release-2338cfd8-eba7-469a-83c2-2361c7e7c243","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"acddefcf-1847-4bfa-abec-18a4a9c65654","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8052182","osProfile":{"computerName":"jianyunws1"},"vmId":"150815b4-a43a-460d-8cb6-da8ce7a5eee9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwH69j0IgZna4LSBolxvOpQbREAvzB+uOotbOPjWweHrIYA3dLoByntlS4xjkj8SUN6JT+bdlU8M3L0DKlwzavOi80WRtocoNRG9WO3hGCyCTgOmCtc+Sfdbu02WtbjmmocahW/GpQL0qv45JhhtlReG2olxttyVpAPCs/kO3Gld+wxdjGmCuXat04BR+e7dEUn9eWTV/4ySIpnP817ynKEU+OkpTYtEFeasp8JUoATPn4a1L5QrHiHd1syASMSfSQvaSH4E9MSeVl/B/iukHgPMVPuuF/zsGWlSmJCshZh7590V6yHM6M+hjOEwC1OMLlqH1QQpJLlLX0VcztW2v9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-3474328d-da08-468e-9255-96ee440f85a2","name":"release-3474328d-da08-468e-9255-96ee440f85a2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26586270-8be9-4787-9be7-046001359190","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8054198","osProfile":{"computerName":"jianyunws1"},"vmId":"e34cf3d6-56c8-4702-b2df-3da6bd03710b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsNnDCFz9sMaAvhAoSAQTnfIGsvE8if7wKVjJJx+9ErL1tznGYv9sPgSBvJlI4iXckjDT7SjLA/gj2QQuQ/a3dv8c8XJtmwdxcY+PcCO3R/hTHpyn94SSYj6sarhlvWso1MUH3yg2HVODCqGBp4iXVBZdpE7yQxujmE/BeWjxRJ6c7P90+hKShvKDarnvHm6WWytIo9Yk40IKRn9IODzEQIgLamiyvj+34TUMZahba7vCxOaqFMFUF4Houy5mquuXtJ1EllYbhne/8b2FyIs7feDuWCoRoZ2TUZEqD/Ldwlthr0lPdo1qGuELzveEkgUB2+cYntvwvd8JEpE+SLhcMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-1cc4a859-a8bc-40e4-b316-f2cce7c6b692","name":"release-1cc4a859-a8bc-40e4-b316-f2cce7c6b692","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c8fef550-8e1f-4e65-b4f9-129ddb06c575","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80523881893","osProfile":{"computerName":"jianyunws1"},"vmId":"bde559bc-c234-480b-a592-603584e28e93","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA17UPU5k/v2AFMDeaYAtoqd+OvI18kJzwoyLFaMLIwfOpEczCveBoSqClrfOzxv9XfQuo3eeJYh2BjvqHFl2hEdoUNuzRvvKane9TJ6dhjG84qP3sB3HBG+sAJmWwPwlxGzZFjxEbLTe5YWJk5fH9q+4WQiMUIZvbE9v5QJA7txUIwK2J5VZrhjAVDSB3nb8JpkNZ6H+obIGSoNRXH8RUdY+pps5gkWScE+OVyGpLdg3RpLS+Le+PFoTYW95MOLtX2jpeVvqz3IRnWjSDzbSQcD8xGq/kDfzyQM2n9yyAHjmU6ypHMJW9hMoxt2vslS0eOOtJg6gxkuyhdu/cJ1NqyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-d99b5b52-021d-45ac-a936-47308bda64cd","name":"release-d99b5b52-021d-45ac-a936-47308bda64cd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d6662258-0f1f-4402-99af-ef153adf3aa8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"d7d62ece-cc98-4a27-b591-fc2616e8dacd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnRHp1k3OnDu7NTCMRccjZj/evc5+ZL0CYFOJRxCpPOgNXJj6U5cGs09LhSNs6DIeQQE7ZKmoywd1aFrjJix+9sfl8bQMRtBMST8v8ZBPb51mCCb+VKZW+K+VXb3WkhLou64neBKYgMeXkCHGTxpkyLnhZrGvN4TiACtNJcrxztTQ38oyMApg6QXcoQzQ9SyHyCrK9v+jUBXvPf5YnFobBlJFT2+ACIDdTvvxOiIgzZhMwL9q2BuKUT1D2Y1AEsBxoYvt270ispg0jGQ9uKn0AV19m9HPeFi8bPy33zrDKsLyH8CFl2WLTVyGvwjBkiS40s80A76DWraKJ8K/HXZWEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-589038c4-5d65-49c9-8e47-7f8a7112789f","name":"release-589038c4-5d65-49c9-8e47-7f8a7112789f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d4db2cb6-65e5-461d-af32-c1d27c04dbfd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8059083","osProfile":{"computerName":"jianyunws1"},"vmId":"3615b4c3-1f4b-4535-b0e7-04e6c32953f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAziNca+nGYci58fy4HHiTZEa4zRfMZR0jEk87UIlXI4YAE3K06Tbn20oA2PlNt0xFG7KZ9JnnUgIT+8jEd93BbbNjP8SECVPGlyca8lgHyiMrIyHoYt+AiRzjadsEqEMcBxC+u9eZIYnTspGh/tb9eTOjHzEnKDu/TbfKO2bM3K3Gh6Or7p1hUnZ23nrtTFGq8TGJxpokpWzXGS/U8QsV9jFXrIiJmuqV9OpCds3R6CiIfYD5h2EWvBiL5aBm0/6MZwXNwF56sy8BW0Z1dC4jk5cHYX73HQX08mo5gdBknzYW9+lkiTYcTaJebUzB4huOzDba7IZdEQBT4124ZrOZ3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-3c1f572f-9db1-4909-b833-8e1bd1696450","name":"release-3c1f572f-9db1-4909-b833-8e1bd1696450","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a7b11f75-0293-4145-a7a8-f74dc2d33146","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"f7edc81f-7169-4e4d-bf0a-dd0d8dadd769","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzSLRoBGZ4Ni9q2ON7NhBVQ8+zJt+NM3rlOtgYAkXw7lY92vwzWOVtHu7Nenbd5oB1eELmo5zXTsrPfv+p0jmmEDOIDALP8BknhtGrxxnftpjjX0O+laPmp3eiakr9l4r6yYnIL/5ymygg6pNQ/nEmjyVg2qjMyPPkFrMV+7pbvo8arAc2N7lNuNbOaBqDD9WU+vhgGVx0wGaG/KxZoM6hYOqUwK1aQQDVXxqka+r4N+I+Yj75u1I0n8GZanCUoxwLyiigm3XpS0IdIpKcV6qndM6mCirECQj4N3hhFzPrLG6ymAfvXdhM4kiWwv2vbQbPlsQQRjexhC60I6r4w3jIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-659252ac-67a8-4e60-82f0-9435b9f2501d","name":"release-659252ac-67a8-4e60-82f0-9435b9f2501d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5b56c8b2-5e78-4b2a-a9e2-621aef384927","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805584444477628","osProfile":{"computerName":"jianyunws1"},"vmId":"8a05175d-1396-4817-9886-33987687f886","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxpGo5YiW5Vy6FzhTdivrEzcDvefIO9NJr40aB+QVJmuqCsI8VX9WaLtrhgqlYLQAOT5WYWcFYC+H3tSocHo9ElMV74yR2G8NZq55bKoGr5pdpXrugS2savhUMSkLVIxpBtLYoJGnrJRuIzzrUwvRXK1f0/RpviJKp9ciXB4w6NP+mq9Pt5U00S7nyTSOwo+PN8DheumVK5qFNKTc2Q3GBlgcEh6uyTaVX4CdxIP4FwzgTsnzm+PPrWfxOElHurQ437yvQq/13rC7jgKueXnsdHbnYGUFaK38GypgdlG/bWIlUiuHZnJjfZVQrHmDcyJooTD3jo2HFEWAl3TRa7sxVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-2/providers/Microsoft.HybridCompute/machines/release-3387227f-a4a1-4205-a3ed-9b34f9e15353","name":"release-3387227f-a4a1-4205-a3ed-9b34f9e15353","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"31fce8a9-a103-4939-8349-541c142d5724","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws2","machineFqdn":"jianyunws2","osName":"windows","osVersion":"10.0.17763.8059613","osProfile":{"computerName":"jianyunws2"},"vmId":"a9215185-d690-4c95-a778-41b3ef2030d5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxV5jewklBNwh1C7WKDqiFD6xNHgmx51n7S+kWZHAP48n51YSffXv5WzPXbtclClu66MPIiikFRthhEQbTR8sii0W+UxoMHUEaEDBM6QmYwhS7d7CExhKR0tKrw07mCc1N1icwWytM3WI/a0Qqt0rpkAjyL49eMHHxTmqkfrwidHVW/mjjWrkr77OyZCRf/V4/QJwIOQfgwmn3BNzDwFIjZjcYcXKfDFN86f7EC6GOJD/uR6VPI2cuZNC3XUsbw6BXd4ZiqvvVfq0ghG/jO21kS9HI5sx1Utt/3w+MrkKJuKeJIwVAZzhcnZrEmNq28P5Xeus7GvfBD3sbyPxXPjPXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-4/providers/Microsoft.HybridCompute/machines/release-d6b35889-09ee-4659-ba68-86b7f12239e4","name":"release-d6b35889-09ee-4659-ba68-86b7f12239e4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"52b12187-03d1-4359-bc8b-78da16e2b319","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws4","machineFqdn":"jianyunws4","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws4"},"vmId":"e1fb22ac-9b2e-4492-94a4-ba57b2b87b3c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0pw1qLgbOmHXNK5K88RVd7DfUPb7OT9y5gSWUH58nCCoAU65sOOoCl1kMYFWoJ7U5hiZfD1QwvTpBZcTLy58LUuXglx3Up2jy7GlGmDiFcw6J/uRcFwfSIY5INfPgw1bwOawcwp9TEhoqAWBdX+iIOH5tWYzeOOHAsvMQM91nI+6hm3ZvrCG3L5ADEFpGf786brtXYStYmpTq116RU5AkHppH6uxc7oJTz7I1CjAZIXMymW/nFZkRb+kEdd/+1Y6805SqlqqPsGMB5U7sqZZRWjLQL9cceJsBcnWHTlvAuwnU+lsPUlgjdKOI7RYzvZYQrlpVuEzwstgBacivuKy7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-3/providers/Microsoft.HybridCompute/machines/release-c4985230-d08c-46e2-b7eb-ede63e93dec7","name":"release-c4985230-d08c-46e2-b7eb-ede63e93dec7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"931be52b-3ac6-4c9b-a3cc-7f6fa505a311","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"bfb4f4d0-fa2f-46de-bbeb-14a83c98e08e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtNhb/28cplKR15xNtNGnpo4ja2pVZ3b37PGDH260X8Q8yMbtnIutY0WEWspGRY62FSHCYb4kg3OmHgN+3X5pXwLOh3dO6WjFSPu4/wIJifZ5nSQRnsk1x0GgVNVLucM8lLXAyL0aBvlvuci3R+XzSjr+UdktWZah9D+hkByEivN88aq4yTsfzvNPE38tmy4afWAoJLX1jFAddTOQP3bSuW3WLqZcCtRd4NdGKE01izNBUB9D1FmVAKT1J/kg5Vn8dh07zEhjtGjTq8VbGMgpwuasaVRv/0kOu09HigOPMzSoYGX1dXaP0rQNezzwriJpds34OLOj1yS6fzPnkwLZ4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-11/providers/Microsoft.HybridCompute/machines/release-242f3c64-c938-49d5-87ef-fa1e6344bbba","name":"release-242f3c64-c938-49d5-87ef-fa1e6344bbba","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e0d17eaa-4a27-4579-8cdc-9d73c730e50a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"62fbf174-cdfb-482d-9fdc-a8f18281bfca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsfnISxEic3fb6iHm/+zHKgbNHtreIMDtzq0RcAjTPzOGCcrMYqJz2Rv3DJSRki+4cBuUEwOlFygVA6PeqepkRcPOJt73hCXX1Urrr9oTmQNnoSuyX+ot89PoqM1tgF27CckNWeGrH+By0+Ej2qUmQjVOMVjtbd0ScFH8C64wKW2TynfZl5TcjESG/g7DstwLxpUyVV4Ewl3jbpWQgrEq3+BEO5hI2IsQwiECjdltCKtZ18zdqMAcO5o4trHSnjOFeSIVT2mKDnc8MSaCNZxtKQ0tfFO+hOWpBRTWUCZyXkehUWEZK12HxlqqnadajwdmPOik8Eq/D1dDLSiucN6+qwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-2/providers/Microsoft.HybridCompute/machines/release-6d1e8e2f-ea84-4475-8245-1a4dd2879e18","name":"release-6d1e8e2f-ea84-4475-8245-1a4dd2879e18","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6a57cc9f-3737-483a-aeb8-67a2fd2cbff5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"084873cb-ceb8-4227-97db-4736fe7d44d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+BgSzQqA0eCR7Rqf8jDf7xmc4y6NoMUTAqPhXTtbkYy824Lfi3V7tgRAom0Y9oXlfYzVjlJJlgubfYNP8e+Z9fF43pgDLAMxoF12+ld6HBuTqMX89iCYVsuJyQL7DbBTW4L3jILVuPTfbQbCEqQptPvUEkO3rfanuCCLqg7cMFr0AiNK+MdrBuyQbBkf2cS0r8bC50BV3dC2Vd3Qm9mDUP9FKLQc1UUGV7FVdLdVq6Dgn1QglL1HPuZzfBEaOXiyCLmnEJ0BCD/o3qNt8AESgU14nj7I/ZwpFxBuAgL9Aue8U2Lw070epAAgnPEVTmbNJUWwYSG2+4mMwv/ZESRDQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-a517e527-8e2e-4d86-8891-0b3b7f5e4b73","name":"release-a517e527-8e2e-4d86-8891-0b3b7f5e4b73","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1f8fdfe1-66df-4dc9-b9e1-e5c80a4050d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0b52ca91-548e-49b3-9024-59b7aba04824","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtZ8luWsfatveY6Hi/iqlEf3sHZMiqTeQXs0La/vVpIAcvAwhNugbWqBivz9MhVRojUZBGkq65u3vo5m37WWG2sJah2Qen94gZVseFd68Uy4V9pg+8vWHqpSNl9lpMBkZHywOVDYUkvKzv2v26KGrprh7qQbl9iwFd3V3z5XIXAIB4uiuVj/odUOSI5jGlpDNNeUwcVOPcYVfhRLhqxWeQoU5QDM7wyGs2OlFjSxXWq0M9/HY8XjYYqtVT7oCGis5Kb2H5v/FYjyH65YeEVMZbsw78Yx50WMFAy/ViERdGLalFQdFE3MZCr2LPTPAlpMA+uOoVnnNYph2PFnMJcg3jwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-11/providers/Microsoft.HybridCompute/machines/release-02449f8c-7419-47d9-868b-06d9f53f0170","name":"release-02449f8c-7419-47d9-868b-06d9f53f0170","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"94fdf915-bc2c-4289-a330-41c0bd24edb5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"910b1124-eae3-4dd4-8b9c-9f39cb751a37","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq1RnoLeJW2v+1E64kqslmiBEoKAclCjW8b3oUUMG7zXyQ1+c/i9VYdamXzrOkoLlzKFPtFdTNbDgjuuydYoVDp7DoVFvZ6EW4DWyH75DXR25Vjp06B+g//P/JIdHCrVJFlq0fN+jsocYe1g6XhbB7+cmWetultBTa3HN41fgSgHkr9AGE5u6wwTnnnI6hLv1ulOm3yvmmxLqFg+Q9JicfbpIUTW4mgFqToliWjOqWuXRum1z0ZPtszwFju6dbMXNBTQq5REDfHhdUuwZ+uJmEJ5M1e1Bgya0RD/u8/kHVZ1CGFwb9LzwIACZQCrDt5fpXVDNxQmU5v9KLh3Ba+LtIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-2/providers/Microsoft.HybridCompute/machines/release-6a7dc965-7ea2-4c9a-88ae-6c1fee989374","name":"release-6a7dc965-7ea2-4c9a-88ae-6c1fee989374","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2a6dd1c4-c456-4251-b8ae-1667f9d4ad81","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4bf58823-e7b2-4cf8-8177-46da8850026d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA61U+yvjNCHOZq89rSl8k3bTZNlv+iz5+536l8BB2D9WVN/tec5mRt2tu8jRk3zgP+7qesgaQZ1gE84GSbNDZC6GoFYZHXUqXrHlHrVZh2OHC4E7qSO8pdH6upuZYx9KjmvNnbWUVToxp5IQKhj4e32TcSkHYaUPJ6crF/cVEqXI+oxUqokedceuuDMXU2zTnXsPTj0Qp+HA/SP4uxMWYA0BnNLe8WT6MTdya9PnCGetfpsWRECjn3ghgEC26H+30REkx3c93GEFhx2TWXtev6zFB1BVSIE2GeEU7VJQhcLxS2Y6uOcvGt1x3nQH1ozFmEsTNx3PJLNd7cf6Phji0DQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-8/providers/Microsoft.HybridCompute/machines/release-6dfa3974-d02a-4df8-bcc0-8ed6eafd4790","name":"release-6dfa3974-d02a-4df8-bcc0-8ed6eafd4790","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"860b1b5b-f6ed-442c-8d02-cafd2f097f91","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"cf9e75fb-87c6-49bc-b47d-e74a6bdeabde","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAugZyo8QSsZq/f8aYTQ03871I0F1rA4lAkmMkAIRdPfvggr0RYg2CoS4UC6DI9LNv828yCtpBSJMoJGO7cdnIxKwHhlIxgXcG/xjD3BQmm51b87L7Fdyt61gtLDJinsHtVdQx+/WWz3o22dcBNcs0+Y1zzuCIbvqoHaXEwVAXGTu263AFJ6vMh93wvKacpT9Wx3v6gjjUJmaCerO3ZfHr6tOUqkk42qMTqbA65nAZXCrLr9TGQLB2VHFj0au53glnryCGguhl5Gu1zwcuSIkpdte0blrrgA5xqGaTYZsnI5WShIxtpmfkPqIccaqF1ja7wudK/mj3B1ZRv60EYpmlJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-7/providers/Microsoft.HybridCompute/machines/release-d7a96916-015c-4293-94f2-f3748293a919","name":"release-d7a96916-015c-4293-94f2-f3748293a919","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"52d09130-eb90-4e87-82cb-00c6d526c129","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"e6140439-701b-4c74-b4dd-5377321d02ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3FCgcr9nouGE6SLFaOwZmpoLDdEzI14vqlyUTaK+TUoKcENBcJ534dWe/FapVMYKUJahF1CVHwYVUFOEPUmzSoj3VGl03Rakmp613bT6CYkQnaSfJf+JWKvjRVytBAaJ2IeyVbBc6wUq0kSKaU+KxP9pFk+SCIRYHxhQ2tk7+fW+oMuUXJWyDIfKNnSc9K1bqxy0oyhNrdUElEehWXunSGC13OspwRFJLjye0yn5o6IPHBF9zWcMZOHcXy3UmLaXmcAcLtFRBv7cCU4rH9xjgoy2VleiWuPwK7BfTVyBm8hOY7qslJ3rUwnudCVxqs/RQWiBCfUaMBshXPM9lgx8+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-7/providers/Microsoft.HybridCompute/machines/release-1a0394d8-f822-4339-9c02-3b80b6af17b4","name":"release-1a0394d8-f822-4339-9c02-3b80b6af17b4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cd0d7c5c-ffa5-45d9-8c6b-7c4220cd96d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0e9f0eb2-779c-4ca0-ad7d-8f888aa238eb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0bOM8EkacUuVkhj2+9UKfY3erP5ZkVizLst0yf4WSjbE0I3DCq41NZ7ZDp/mgpuYhaXVZHbIEYc5N3Gd89gzMBsewOEOMKZKe82PwoabPoX80gQV1XelJIPW8qoC+yXaTv8jnYL2c+bmE532LJ6RIPdFVvg1Jww2jy7soZaPTCleYAROCeM4FXsmTshJ2p2AcEtspW1t+ltNbzyW18+RrjTk8p7o6OiU4SJOwWcHnk20JW7pkuJFclh0loPB0XdSkwLpfKDenHVSuXKlAzGcLFcQA1joEk6SSfw0F6UVhDVAZ9r7s94cghUyUGL7SFCE4m388bJdXqNkhXc4CWia4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-9/providers/Microsoft.HybridCompute/machines/release-d0287ceb-d88a-4075-a322-5926fa7c4227","name":"release-d0287ceb-d88a-4075-a322-5926fa7c4227","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"074c7d66-b452-43c6-97b8-6dff48b4765e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8d4c631f-fb53-41e4-8ee2-5613ed4d5be4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArPy2CL3fL7Ip9C1xEdp0Q2x4zrCe8rpGMkORK+h6eOq20EsbgrH7aYFaT23N66MS+83RokQKyM+B39MbVGfXkfkJOaI0GZH5s/qFLRMT1uAmGUzh4lgWW9fm5DdrEWiP+NtLv2wv+pz1tc3Fx71xxgZSupySSOKqThTF1wqKsmkwxucNxK3eL72NXFXoIfS6Xrd5lsfnq2e+OhpEPoSQxg71zUFvqP92JhmWB2NInbRF0mKWi4kb1NKOuIwp+2Rf0pTpp3XzU1+Uj85CDHjh+wFdsGQtZmxoj3SyI820NxplV+gGgdK0wwD3tQnOiRI7Jasi0Bai0qLd7qAbxEyPbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-10/providers/Microsoft.HybridCompute/machines/release-1903f7bc-c829-4121-a59e-dd9394619718","name":"release-1903f7bc-c829-4121-a59e-dd9394619718","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8bb9493b-a15d-4a2d-be21-36089fbb0f52","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c56251ee-14a0-48f0-8d8c-b573b1e4ac7b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtPpVD/FjGVIFP1Wy8VZMXgOwyEbwXEyRG8euCEqJx7O00r+yLcgFr4cIH3apo98so6xCqeQege9m9L7yVl/vHF84yAXOMtm70tkx6XBtUv+A/8/LqG6enX3haDvGOzbXimDdhK1ph/1jjq1whPK4BSFGfub5Cz8Y6sHySw1tatCsgzoHvydB6vr1aqy/ZtrD2l9qexMqTG9CuoHqTujbAQ9sgjp1CYL69yujvM1doq4hTUlb8acVZmwMAEuBp1O3GCHB1lrOJuAa4MzVkb7i6ufhFizTn4ctLqkldYlb5+TwovhunT7vWIEs6vNbnldHyl5eWaI3SarC0s/RP+jepQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-13/providers/Microsoft.HybridCompute/machines/release-923b32cd-c2e7-4ad8-8132-df22af5e202c","name":"release-923b32cd-c2e7-4ad8-8132-df22af5e202c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"739803f0-142c-4468-983a-1d6a1bf644c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"52dc7a91-5e9c-4350-8a14-b0405f72e0bd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ulbXMJrwNwO7EEr7ILpSzq7v06FFT3RGe/1QynShgMTD1f4q/eIuk6XkIiiJ5XX98L5fPYYwwH57dJnP5LM23UOICtYTo1QsUmed8XY6x3FmRpAwVTbredtaqbdxAwWfeWjX/tnleXwvGfXz9mG/qFwwhdbCtQFzuyu5TOR1EASBNR6iKVSl+833+67QEov5izxYIrtSR7R0yps8ZoT5sZ6sM4+r3Nh2RVXBJfj5pOvKvCKFet/yuptwAFZx9t+nf4RLOOGHSq/JcMCDqvLA/sgntnrJi6QiUgy1XUDqm7EiYpp1Q7dCkvyaBhlsct8ZFHIE5dbvmxouFV/bApK7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-9/providers/Microsoft.HybridCompute/machines/release-4dec5edc-d55a-4244-889f-6001a654c2fe","name":"release-4dec5edc-d55a-4244-889f-6001a654c2fe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a9c50d1f-9d60-446a-953c-b41e815b03e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1f794459-162a-4688-8314-aab4554375d5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwOHpBdZZZoZXsJojFAC6nz3RPukcy1YbL4yv1aw6Awwgmi9JM3/koOh/cIG9KFwXjVPzrI2vLLeyDjhl6JwUk4OXqjO+n1q24jWrBieDqY3DHiakDlAayZchGVmLlA2WVpgeBqAGnZ1lEIjIwrTxNmz5ik7r7SFTdscRbLvOOhhcVr8x4bYKwKQv793cr7FNhoNsSkj3P8R6R6VbdDcIP+IT45JwIN/rUWI9kVKROcMiJEZhUEpuev5S0XIv+AAnVTYPu7xaj3btkpRG3RN9jsqQKZ7sYBzsiZAJlPiWvlC2DICiEnrrvFhNjUagP8+Z9YJAPthiHfGwshBL3mxP3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-10/providers/Microsoft.HybridCompute/machines/release-840eb83f-f8f0-47a8-8316-3c4805105dcc","name":"release-840eb83f-f8f0-47a8-8316-3c4805105dcc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a3e8d1f5-f9ae-49c3-9cb3-717314f74e44","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a298abea-598a-47cb-8e69-74e0b1181635","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxM76PhUd9jW6okVuq/l+vC53BNqmhZoHnkzrdTXwirvakp1mh4gRE/jm+5zlUb7c35LquzrMJtAWbfMXHEuP6PbUkzlfdUSrVmG4sijPRqYDKIp8txEFqhpiovY9j+ixe711Y6EztpQoKgIWeUODMUYeLrY7L79Ve/Loep7zke8KjIeWcTv9VpSO9/fgctnncs5fQJKbqkXDSjseB6apq7WAuv5PekloxM/fokK/nevKjNsu5AVzVC/hAI2ZlZXmNnfbJZQt6YHw6wLpbk6TCf8W8e1xQekDWE2zsKLzYfrSRiAcjlUUbpDkxWs4kjWe1SoePPjHkixxHhc1PJ856wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-13/providers/Microsoft.HybridCompute/machines/release-8dd76a1d-74eb-46ac-99cf-79fb8c9fc950","name":"release-8dd76a1d-74eb-46ac-99cf-79fb8c9fc950","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dc68e962-3f7e-4812-a728-6b832acd943b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"51cde991-ecc1-4cf5-b834-a1aa08c0fc53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3shRPXij+mE4fbn8I70lmzfxqu81st+frStma6pJnd+L1UephfVac3xf+iT06owJY9aPU0zZJnHZNz3pfTsjxK1N/PAdvkfVxroB5g/fA/VB0KV6hBcxy22mmmOZicxvuYMeKOqvw0eEyW+67xiE5V75ym3rV7N+2Zgy+90wkvlR+PuljJgOvr/NqJmKxx0NYRHK6K1p/j4EOtCZ/goaD6LEP2/NSclqvfnmy65V/jylAuS6lwz2Q0lMy/gkwfNvcjwa5U0H1wLZ9RAc2JbzdSyBMMPBfkz26CV7dOm6tPTfOM51d1bD6ybDJeLnYWZLtPwfIljKF59Hm9eLxEKoAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-13/providers/Microsoft.HybridCompute/machines/release-d5f5c193-9ddc-4a6d-aa19-dd71d6182d9b","name":"release-d5f5c193-9ddc-4a6d-aa19-dd71d6182d9b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bbaf2ceb-183b-4511-a059-b74981f9d0aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"336e2b50-bf0f-4b1d-b566-bdf001995223","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAujTcKkzsrLARUybyYM8L9xj3yhpdajqYenjJBsXK3GawO49FLcQBkwjXXGvgYWu2fjoO1VSIt5jrgFuqnztSDrw/Xa3N7FEqLfG1JExeiXKNpFntncHaYE4Ba2OJHkp8anMcKkmt0//k3dUEtAjbqY5PMffgphp7i5tKXOrq93n3vk0/vwq4bA2TNIBgHHRwewTIYSHfC9fC9XK+I55AV8GMqa18YvMPuFrHbPvgyiltdtFn+PLZLolLhebcar/z6Q56q/HdF9Wgyh4ywhTWPwoaFGORA1SZR6OcG807G/v5UYBEiBwQ9YTQfEIK/fb0y0rPOs3yzk2AnAjbQTp/SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-13/providers/Microsoft.HybridCompute/machines/release-58232718-f240-4d61-9a41-47e33a556362","name":"release-58232718-f240-4d61-9a41-47e33a556362","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"40a86e67-cad1-47ce-9e40-7a4da0a316df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"818d2fd3-2c5e-4a4f-9777-91cea0273f3b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqroRlAfL4uPLy07OnBb7CxIr1JSWn+PKm88xXPFlVDqW328S/vc7Jk8/apE68KYf4sC/Ymo1x3waSlDh61wSXCYk4KC8q5V63sAfTpK23SfiekCycyAT2t+fT2VXsY0X1oYBD7ydd5rJLUo0vez01krO/p0fnqP0gx+ESdBKA8JZ4sK4is7k7kZxS03gJGISOMluEe/HWDfFIJlSAmJscs/AC7HioBbW+p+pkj3uRf4IBv2VrHrUMCLfzYSySF97kye7Rwxh6hlMqzIuZ6QaX+/et12HMq2tL89uS9y6lkUYB9a14n358eiEZcRVH0JKf7fNZnsGLLlzJJx2FVHSRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-12/providers/Microsoft.HybridCompute/machines/release-97292c8d-9469-4715-a740-128612911cae","name":"release-97292c8d-9469-4715-a740-128612911cae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c4217279-0467-4e59-827b-4e5604b45a2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"77d9e57e-6eb4-42c9-946a-2675eec2c8ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqRdtcCfj2SeyZyWvfoV2OXEyW5/YpSzWpmdVe4tLoIJFP86fYgDoa0nJQCCdvC4HCIvI2wmuFdqgfp6HM8F1dUfgY/QlG6WgYvgr4u0MyBWAtbPBADKoRuH9hfKpdc3PFnyVlcsjJzxzz2DJMBR7BgdrnPR0ix03D0f6uPKngIrHY7LuDS7K3x5Wszjts1HV3vWAwbo8fqVt3DrU4x8vVvsI9Y0q1hVms39dwjpsiHQgxZw2VRe4r8XX+IKK3YsqNu0cxJXjCEejhHg+gt4vG/t1rrxZOdTNLsrcz3W2ln0QBBDEa74QrF1sHOX8QBn86SEKVgWKppRrBUM4vxKw/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-12/providers/Microsoft.HybridCompute/machines/release-446414e3-b905-419e-83d7-394ccd15f83e","name":"release-446414e3-b905-419e-83d7-394ccd15f83e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b6b583da-224d-4783-9ed7-62f1fd705a3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"61227610-e187-44f8-b45f-e94d08a3b3a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyXdntCrbw/Utbsg3yFtp6gbgAmv/et48HxFxUgCLxHnoeo1yAiGupZnvRZ7EMXJFqBgrUZTJttZf/tSn21n3JjVzBQIi2xt5UctPsVmHTagxNAB6B5bM5E8lOc3FHXkvpDoi/Rmepc1OnQL4mjqRq0EvXl5su9Y/PpiLIxHZlOInlrQnHNLM1RMch8wOxhp6Fw4tQJlf6TwUAjJltoRFc2A2Vy/pIs22c1niPESlvlTduWjf6DPrsGM/b/qeIZqtCYB+Zfh0OiMGgTTGeL4gTWLaZOGIPO9k9F52k4EHMGM6RqoFoCVXX4AeB6Py56UBaG9/7FqmTeoYp0grza7w3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19302.001","name":"0.4.19302.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"86c4a873-fefa-492c-8d04-dc05f47e8f52","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.001","status":"Disconnected","lastStatusChange":"2019-10-29T20:28:31.3261788","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"9edbde08-27b2-4e9e-9df8-80ec947c1ed4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwlANGaY7etn3Oa76DrJK5aiJzpn9PVzVA93Q02434VX6hk6EkyxmRlxsroB2zWxMalC38/tRi+3bFDjqZvYlL2Mj7/hF2oEDmG/UV6myx2N2ayd/CnjaPdsGjfQMZqOIUE5pc4bZiEuezhy17Zadln6YOMDupSHdwdZvWeEw88DEnwX9unFDtuyZjVh/cvW+gKuye8YVjgjviucV95jDMus7R7yQvZCMdylwE0Z1X6/WvZnnl+cFDkyiEVBXke6NRokJf1c+oxE0hkVsZ3JZoG7UXyDPEJoJXvVqRVeEXTlPBvYDEvI8sZHjADkWfbD8tyc1gBCu3MtI1fFuTtqvqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az6006zvns_e2etest","name":"fv-az6006zvns_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2399924e-0fe6-429f-944e-b6d26e5a7571","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.001","status":"Disconnected","lastStatusChange":"2019-10-29T20:33:31.4272604","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"845e6aae-e795-47ee-ba3a-0b17aaa5be12","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq7a2pPCSWZXTHJRFXUG4UD3jA7GAnoOLSHBNQW55leqGq16z67iQoUjn2L07thQKMGGm62SjalRbkAnNnEHfv0Atvsi3L8MExIaWZPNAHwFXfAYvXLSqpdddC5r6JBtFkYsLyV3y//Y7Vwoxx12ojy7/MBGjAZxjgOVd/eGp6Gs64bIgVX3/oOLHxVW0H8A3YE1MA/BLWrH4liWpI0ydRNbuYaYdU/md40ovlGPfyG8e5ixKJLk/dsX7il7zpdSIUccaBf2N9eH2UUTbpiKzFfVXhFps8xVh8YlVlJDC2WN7i+vtyBKKO1w98aS+YqZsGW6/hsqiirTeMu6S/2hTxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az611cam13_e2etest","name":"fv-az611cam13_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2b74a96d-99e5-4348-ad20-28942ba1cb6d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.001","status":"Disconnected","lastStatusChange":"2019-10-29T20:33:31.4272604","errorDetails":[],"displayName":"fv-az611","machineFqdn":"fv-az611","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az611"},"vmId":"ef4d8e17-4dbb-42d9-a21e-f7759fde9155","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArrdOmD5VqUR/BZ6IXPRgBONmB+NnFvjr1IsakdXbPXqZSy92L0lZYLRNu5CTth2d3O+bKSsD/nd9RUkrm2B/jFtSE616m5bH2yKbdMg+4bmtRDNMEULLoxA0VDvv0FgdQMVBEljKawucST/teWK64MjlMG9tEGxr70MqmOosImm/m96Fg52cb1YdIKjycfLNrj+zow+Ve5qacSRGHrDBBgMFi49zf85/LAITF40L+R3f2v6KZZnGzQXtT+O561zu2iJ3I3JlIYay9b0RbR+facFp7ZyFbeJ227UjxTCi2dDlmd5E3vHxqwccjSpzI/aK5+lF5BD3RQBdTJgoijOISQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19302.002","name":"0.4.19302.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7ec4a518-a8fd-4818-86e2-9399ca80f682","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.002","status":"Disconnected","lastStatusChange":"2019-10-29T20:48:31.591239","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"ebd6fdb0-d970-47b1-ad67-a6abe59cd6e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoORWqamgbAqfSfvb/YETReJQa4qURqf2Go8pnuDvr0QsdSeJM5P5MxVRLtIrUxbb/irIYeTuGxNq4PsaSTF1RguCyQwgRbTTUolIQ5j2fgyV/MbiSFcS4Ab10gkvVHEaaVXh7b0lWz3LVIj6woDbmtcZaTHyzpRqMtLMSspbFTojY6YNqO9pZWe7pcfKzJVoqlyx1zTFhkHbsDp67HO2b7RrHcEZtTqL3AJd6uEFNYHda5XTWfVv6VTPZVjh82SjClNPnDwf4RMIn357dFOxMVtvDVycvhnFHrUg7cRx2TchDdVfJLkWdZTQ6pGvLZNqfdmdN/WjcByFNMdRofwERwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az623l8usv_e2etest","name":"fv-az623l8usv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b63bb8f0-8e8c-452c-8628-343f537d871e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.002","status":"Disconnected","lastStatusChange":"2019-10-29T20:48:31.591239","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"6bf6051e-c3da-4d20-ad09-5df55c8b9206","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtNMRp0pCStn6B7Kgb+G3vcHuXiOE2imhcA1TrUMw1pDv3PTqBnVnMNoG8OtVjQvJyDBYmG5Ng2gEuC2yQPQf2IFtDhdKNmhKLEgKUMsO9Wj8dFSQUEvh2EXEWUmfTZc7h+oCexZDpx3UBumvom5/Sg5P9n6NSxeOykV2BAxRyy8np3erVlqZTEXGvRZnROGb62QKp4D0QfDrd599Ed870qkBmhoORERC/sB2DSmKXtpBHUNtcreWoDxavoEWvL/hdfML7/YG5frY2gPI/p9H6DCbZj8NX7CkS6dy1Sr8cNmG4obd3kU4hJCbK5ugP0z6/LFPNTg5LKhTozO+F04RZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az59795phk_e2etest","name":"fv-az59795phk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c8daf50e-5083-4fb6-875c-1ca814ff8ee4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.002","status":"Disconnected","lastStatusChange":"2019-10-29T21:08:31.7319833","errorDetails":[],"displayName":"fv-az597","machineFqdn":"fv-az597","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az597"},"vmId":"b5478a6b-766e-4163-98aa-8f6ccc50f9e2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwbZ85kWRO9BqJA299hTrSaBlPJF8bx3lG4dZKTdolMhmY2Nlx4wwqCuMkVB6lTY1RSxVbZvupyswp5BSOSK5WLol1TMBaFYrqIxASZ+4kPjOCHz7oqSnPpwgskYWFWpw/ytD1i7J/GUypaTdH4KVUiVj4eamiSdqMO+OP552UU0n9c1Q3swD63y3Yci7tSpMn1wHDNjg8cSmYwXCXwmPN6OeLofllJ7b1KDWcZIXxaZd4A7gXKM6oKKRJnt3bOb+Ru3/NRF6kDPHDp/zUoXWYw/rZCaOEU0ohg9vSjOnP6iubEbFf0c8lZe4nsIoAv733Fx5vVUkodiUvhgqZbEqSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19302.003","name":"0.4.19302.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6ea91492-9036-46eb-a446-008b3aae0454","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.003","status":"Disconnected","lastStatusChange":"2019-10-29T21:53:32.1434445","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az506"},"vmId":"48ed7b24-c761-428b-9a9e-ba4818a1e714","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5IXgekrirYG/Og3hJpUOcTh/gM/sjJxgesbV4bzGp1KMPEFZicERz2XKORIpwX+2+hwAJXKdQpfp+9gShhLeUv0+yGD9tIAy/dB29J5OyLieyEz8tyy5Nh9TK3uzsfbxcLUvnlho3y8ErNoeBQZ1Hce0T5brcnkkfk+Zht8Nv1gO5h2OQ7gSZBUtA2WX/nUe/LBAo2/lBU8Q9+hgOYACDFzMqGwJ3egBSSeFPQZBgxXmfGfzjtf6I30P2LVA3OBrheq4e5G1y+7ky6eD14tGZ7g9az6ko6pTcNv4J9+qWPem0Ik4dtDPPJ6rRocjMjHg7+A//uT/P2GPzwzTewIXFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az506ej05v_e2etest","name":"fv-az506ej05v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"47e9c4eb-b1e8-4534-b1a6-4887f3cd89b2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.003","status":"Disconnected","lastStatusChange":"2019-10-29T21:53:32.1434445","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az506"},"vmId":"6ecebbba-c6f3-4a31-a63f-dfa589b81e4a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAunMklALZNeZS32yfueXt+9nXUSshwHEXjNzUWW+a8wfe9D+6+2Ee95mKZokvpRMsT34AkZjcVk6CilrZlzNqAcd0PnPPpfXYuIR8MHN+RusmyjEoX7p87GPR3ADjnzrx/XLakLSC9E9izWWKJthIhy1l4zNqMR+NonOCEPxWDXCxeW5TWK65TiBvFWDf5eyFGqOpNRuHcFO++fprruosxv4PzyfrXrHxkfD5CEm5BihEZTA1oloERDhwbCWgAhp0HPQ1qUzzjjHuf9EVi+su2NeLYcgOXMw59n05U8Byb1wPjgYInsIXEhADhK9KbvJCoijz1FO70rujw0dzEE5RoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/George1/providers/Microsoft.HybridCompute/machines/gwf1","name":"gwf1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9e7db19d-f7bc-4631-a9e8-67f84d951647","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Connected","lastStatusChange":"2019-10-29T23:11:18.780297Z","errorDetails":[],"displayName":"george-ubuntu18","machineFqdn":"george-ubuntu18","osName":"linux","osVersion":"4.15.0-65-generic\n","osProfile":{"computerName":"george-ubuntu18"},"vmId":"88dde220-f988-418d-8c04-16b697c0ac70","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzlPkLCK1/IU9kG1m6fsST58KAYaz0RxAW/ggK9Gh1dkBBkWSRw5UXf9RmJUEciXhy62legRguPL7bSxgP0YZEXXK8v3f4uIs9L5ESEo9PGR8hPVqT4Ww3c3zuxpBQ9Yt0vX3au9CeCxWplbOVBeBASrpdWuj+z9BC29dEKRytIA5nDcUI4epryNeBrX4eZBQDed+sSeh/77ZO7Q2zEZG0tuyfrGxfbL+m/Q5XvlBSaZdI+02AzzNLrCkOyRkzNaD7xumHhfwMazTysL/raQYAEmKtwGotkiPlaKvW7Ipm0bp257pTyaPd1+y6D+bdEG8YsqQzz4gvWK50KB3HEBvywIDAQAB"}}]}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '54578' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:32 GMT + - Tue, 15 Sep 2020 00:28:16 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - f56e53d0-abbd-42c8-a1fd-168ae0245480 status: code: 200 message: OK @@ -869,38 +2066,37 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine show + - connectedmachine machine-extension create Connection: - keep-alive ParameterSetName: - - --resource-group --name + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.002?api-version=2019-08-02-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.002","name":"0.4.19298.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5de934de-e63b-4eac-a0ff-f6e9a73d42b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.002","status":"Disconnected","lastStatusChange":"2019-10-25T21:11:45.4253152","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"b038c42a-74fa-4a53-aa5f-18c14a9103e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2OijsnBzODPnt98e1K3GH38hyoLuEJdWaPOVoPyRMflxbZPlRENrvwnCG3wLK5etxMiY7czA9zSwZ7Ri6ZKUyMyzpm5DA0JI6L8344wWq7uGs7WZ2gUcVIgMC3hD4Ly9cswdbj7O9ipuKONLNDE/if0US7SHbOeXYVuaeSRgDP5tKUqvjRLZT9ZyMDzgIAzwhdm+t77VhYmQV1cJMaQXEoxsDWZNZ6k2/Hc5/CMnCt9OSjMLtwkyfaF4G5FWV+j071N+ZSakMX8P43lk8dvd3xCm18+aUuRapP4+MZi/SWQz4lIsYqGUYGfO611gFMcKosvnexzgUd41L1gSx0fZrQIDAQAB"}}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: - api-supported-versions: - - 1.0-preview, 1.1-preview, 2019-03-18-preview, 2019-08-02-preview + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '1144' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:33 GMT + - Tue, 15 Sep 2020 00:28:46 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache server: @@ -920,50 +2116,49 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine delete + - connectedmachine machine-extension create Connection: - keep-alive - Content-Length: - - '0' ParameterSetName: - - -g -n + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US - method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.002?api-version=2019-08-02-preview + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: - api-supported-versions: - - 1.0-preview, 1.1-preview, 2019-03-18-preview, 2019-08-02-preview + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '0' + - '112' content-type: - - application/json + - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:35 GMT + - Tue, 15 Sep 2020 00:29:17 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache server: - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding x-content-type-options: - nosniff - x-ms-ratelimit-remaining-subscription-deletes: - - '14999' status: code: 200 message: OK @@ -971,70 +2166,41 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.HybridCompute/machines/DESKTOP-N1DNFRL","name":"DESKTOP-N1DNFRL","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"290f543f-718b-49af-bae2-3d3f03a52287","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.17001","status":"Disconnected","lastStatusChange":"2019-07-10T21:43:17.7295785","errorDetails":[],"displayName":"DESKTOP-N1DNFRL","machineFqdn":"DESKTOP-N1DNFRL","osName":"windows","osVersion":"10.0.17763.134","osProfile":{"computerName":"DESKTOP-N1DNFRL"},"vmId":"eabb9647-127a-4d3c-ba49-95402096944a","physicalLocation":"West - US","clientPublicKey":"MIIBCgKCAQEA26tKetvghi3yu8QlkEG4176Pr+oq2DDDO6dWSkkJdFGhLCpVjg84XF2RwnhGTQsoMAl64JHRqW7/cmzA9hXJFE7+0YLIme5syKdacJQI70+WXnWGHJfDzIGOuAR515VI67MRUj8cJr9jKbMQl6gVmd/HcBYF8eAlYnDpuD/SIxiP+UG0UXF483pD0jF2Gwx1xEkUW5KPb9OJ4N4oxBc+WUjQl8rGqUxS4G4NBNAPpEXcuxIUVVlkfqzmo4BAD7XZW8U4LPc2wSv0GbJ4omNbaKuITGTeoczw9/HDq7oeqnW3HNGqXR9yEhcODweXQwOzq4BtAKjiGxLC2T9DbMWsJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.HybridCompute/machines/dakirby-linuxvm","name":"dakirby-linuxvm","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ade8534-f068-4777-af92-5a99c0774c5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a66e3ce9-bfd9-44e3-bc4c-41bbfb3db666","physicalLocation":"West - US","clientPublicKey":"MIIBCgKCAQEA50N02I2REU5ULQJJidZxQ7e8IL4LhCPHf1d1cSouraPk0DSDZasix3mzgMkjuDQXDzVg7khyUILLRcF83p596WT5wWLPBqy9pkMsiA0kTuoGx6bNHaroDYWel+9nNZYD+CkNOFJTmuOeSMSXVpabPakbfsSJfO4sOmmzRaoOKUwNQU+uXKNakOdj7IAdFj6DpJNb+J5KJvwlaHLY9aAUnxjxLPAGV6PwB+Z/ImwgpSq8JI/cE3mUXB++pc+8FMG7CgQZIw/Db3Cd3fvRaXPPFQB6ZsMaZk6CQf3HdkP455wjPavm6L3eubAyDZscwEwAOiXuz/9UhdbarJvmxBsnyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_12","name":"winwestus2_12","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ca59131-1250-4127-99b4-0e52d32a7556","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26003","status":"Disconnected","lastStatusChange":"2019-07-10T21:43:17.7295785","errorDetails":[],"displayName":"RaghuS-Desktop","machineFqdn":"RaghuS-Desktop","osName":"windows","osVersion":"10.0.17763.557","osProfile":{"computerName":"RaghuS-Desktop"},"vmId":"f7fa858e-fdfb-44e5-a30d-476aa94110a6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm5TIVxL5HiZIXmXs8QhWuiuuyakB4jM0meua/BcccnW4/2eDnRIQApzTELgwo5+L9Yox9saeG45bbAT8ByYEleA5whzECYvtfLekE2a/W0PiGlQPY//iRuEf15R9Tdg+TL5oTLJ4BlI2WbN+0IPWm2j4mGznVLMbCApNLBZ4VdEuHuZHBeaIMpRaHxgVuFmVk+1RgayZ86OaZnyQMWH5MM20Bq0wd2GrMdC8YOntTv8T/1sFh8sra1kuHuSTzfax3tXmYnEizRB8/k4q55MSXxUhvHO42bcCwLKJafogJcRoEJzJ7XdEi3QynOB2IuXh/UkY2LsaYUqVvYjKxWVGoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/linwestus2_12","name":"linwestus2_12","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"5244318b-5900-4710-ac87-f74bc796f719","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26002","status":"Connected","lastStatusChange":"2019-10-08T16:07:12.7169453Z","errorDetails":[],"displayName":"ubuntuvm","machineFqdn":"ubuntuvm","osName":"linux","osVersion":"5.0.0-1022-azure","osProfile":{"computerName":"ubuntuvm"},"vmId":"59791735-81b5-4696-a44a-ae848c39cf0c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8zubmKGKEHBGUEAyiKRRFHb9wA7kVrIr8VinAWpxe9FIivV56kdfs73qgBSiheWTz9pr1mibc9xHvdhAEH8ZY5B4tmUV2ywDJEFJ1s/C5o5BV++IffUUYZ/qrRtHHATlpm1lBikwL7pA+SWVpI3QBe2JLs3HlNrIM/3K+grQrNx/bM2MU5J0e6A39aygQ8hslsTLfXufEsVZQa4AGhvogjJVAwxNlBx6SZFTGSneQJj9PwmPD9rea/rfIWbrAX1cjGzHlrVKVZ3FVeYA9RFoQfa8nbf81dlWlW50AAeviRmY7785SqDhHvnwslf8fpV7Rm1V2eI8pb4mk+zKrRjtJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_17","name":"winwestus2_17","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"977f44b8-0a24-4489-ad33-18b43fec97d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.27003","status":"Connected","lastStatusChange":"2019-10-29T04:22:15.0882961Z","errorDetails":[],"displayName":"2012r2","machineFqdn":"2012r2","osName":"windows","osVersion":"6.3.9600","osProfile":{"computerName":"2012r2"},"vmId":"111c42cf-03b5-40f1-8e52-19646ebdb0a1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs1wNgivYee/hbPPN4ut/Ua4wovlh7yePISBSE8bp+SqM5OIfrLdlPDNTFv1E49Noh3BiH0wuIwMxZkNcqXcmLVtf6dldpYp5EJ222KCo4n5Enpvo+FLhwwgVO0sBsoEEbekshqpNhVdRozyaD7DIHCVUvjhYF/xW5Om3v1ij4dF3roIfEQ3BG8USZZE/+OIc05ExQhXL10gLYLKO9MzRHrToITO18I3KueV63kSSZEXz9/WAe961iW4bLCSvyD1Nb4zKK81ncv9KQf9hOZ8d/o6jtlVvovWSS4fcWVn5298uqu4BbIh+SODU8/d1CAP0QCzn7SJLOaFnEL92kYbXHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_19","name":"winwestus2_19","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"dbb73adc-00d2-4ca5-8062-d4785243dfc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26003","status":"Disconnected","lastStatusChange":"2019-08-02T00:23:08.4594238","errorDetails":[],"displayName":"RaghuS-Desktop","machineFqdn":"RaghuS-Desktop","osName":"windows","osVersion":"10.0.17763.615","osProfile":{"computerName":"RaghuS-Desktop"},"vmId":"26e3be5c-81b0-489f-bcd1-8900eed8f067","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2FC/iz3AAyl549swwsmKoUdpq3/J/LdNUKUy2rj8s8umpxuEO40IX7B/u2VW4AlsX+H1JWFQBqXUwkAFurfK+ac9pGEvalG6eAOI8q3l8bG51jtKkwRfOSMO2DsSbjiXsLIzz0Io/Bjs/0QgzTbmvNA/Rxp2KbfjuQ69mWphdjL5V89Av2uUX6xxLbomIHJt+6utVFMV4M3krTtrPawxp2lo3AqEFEBNByG7yG9MWnZvKjgsRWT8rc8R9btnyCRfchD02xiIv+TxPdSRcK/bNB3Nw1VHupadp1ge7780ZYRTi/lu+xVwQE5054UwFizf0zFSDY3NyUxL7dcHiggRvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_21","name":"winwestus2_21","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"7dba683b-b0d2-4c76-9e70-75d3402d1373","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"929c7ec4-2c49-43c8-a802-f0a57c2cf1a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo+nbtslqnit0PurR6Cgp2BSzaCAA59gqBfFgXotvrJp/sgtBNPfxyo9YzSbbBJ4DTEL3I7kXU1a7lxaJ+VSLfLI0U7ZZnbwkkFX04Y4aZYsqQRr8CoRNWud9LkLrQMvR20JMqMW7I7ex7TajCnF+qz7brrveQLEvLIJxxnzUwuSpuwVP1zoBGvhmcDr/7uuYfULYTIQ8WbhdAakkKxqupkhoznFfwiyIISViXBEk37jMcXjhWoEtBSfEyi9eriHMVJO9LTcfopAnHvxULC3NMWvxXqJMv9a3DjC3GwgadkySWtz1OdWxqnOMIii8lUUGO6opIp08N6vXwcgVn8OIiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_29","name":"winwestus2_29","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"8a3143d4-f4da-4fde-8c7d-596a93352922","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5f1b3ae2-668f-4c5e-ba1e-eb88bc6f62b1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsMANMrVwhqzc/9QvQf1zYQPUw0uG/6Zf0NmIhBAMamVbsD1ZqMVjFaxyYa9rUc1T5PbKamtnbVDgWwlM5OLZYBZjHorv4vhET1unuHBBd0qd8+MPO+ar8cZI0BSstu2kUrHQEgxgjlEIvIT5JKAp4Wpi5PninecjY0ODpc4Z+OFZe4zGvIkJBloRitJb/nPKPK54Cli854wJdX9YQisO5w5X98X8dJSbai1WYsttkiAQaovd3t3JqRaNxGdqxMENFkldU9g/JkRRnGaBs/i8oCun2UrZTRFCNKbPueRWCL//lm//10pjS3nYmWJM+7rJVfT1gO8RXFRI4LuGfnsL2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwestus2new/providers/Microsoft.HybridCompute/machines/winwestus2_30","name":"winwestus2_30","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c49731d-6cbe-4fdc-994e-22e3d898452c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"55b3c9fa-cc6a-484c-8311-52b43b0a81ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqUALf7Ar91Jmv9MNya4KLrcDdKFXWVIF0rOyceXeyW6wGqaQT1Fu7d11s3tpaoqrYYBavDl64voS8WSESAhmuEscpyvhqJQEeloBBCyV0XWYP5Q6pCtYLksulAXSo2UuVoRgp9gb+Pnj9Qd9hruaKaPizv4fvrRdVJSqQdWy9V9LakTxl21O2uMoLY6dvN1Uy9ZiJ/mBc/LHA0A4rRRvVjzeFghimpO+V5xzMlJnaMh65QQzo3cgPo6nNRpiXDl25erWwVmkN9qq9ruGePtl2f84ls/CZOBngCyJaaPQ4UVT/8hhsKpITnhl43c9i36p5tvYyrzd4Wrww/FlASt+/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azure-sdk-test/providers/Microsoft.HybridCompute/machines/TestMachine2","name":"TestMachine2","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"7dbad483-4919-4856-8f19-5e10f2504860","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"27db2631-3b59-4a69-8b76-f96f2b9d79b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy1wFJ8ITwDEy18C/DpzgT7URZSEButh0qYXk7DyrfqkNve0+ERsUxFcXq5IbNyz+ZnEQAZQPhmDWzeUXF85yEWbB5KwXrs/nv2P3qsp1X3b86XnrUsrs6/rH6VEcHv9VAhLA1jyprzcbWZeT5vLDcifOrv4mcTSMDRxDAiQWFwZ7Rv4AkCZu4dZ43LORuGdgTGshTVAy/IlFOyCzBbH99qCQCbxjVFLXSEnP0ACCQeLNGxlHJ6lM6K5uS6fIM8dH+AdITKkpVrWfoumfQ9x+xQar7jqfH/rds/lEBO5MDUYbdk/ynOaCJ8G9DR2AjNmy7MsqEaVgHFo1DCxPeu3TDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrppolicytest/providers/Microsoft.HybridCompute/machines/winvmpolicy_1","name":"winvmpolicy_1","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"834d15f1-4ef3-4c50-b963-b009da044b21","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10001","status":"Connected","lastStatusChange":"2019-10-29T22:41:46.882458Z","errorDetails":[],"displayName":"winvmpolicy","machineFqdn":"winvmpolicy","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"winvmpolicy"},"vmId":"57c44599-9997-4cd4-b314-a236d34f3f5d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArK5nGwYSep4p5Irr4u2N3kF/9veiNjbwdP2vGAZTTNwbn/3ys0QEKGgt9xb5ZPXWhUGlf6B2xt/HCpgvvKvhz5ywW7DiadrAwv3FWWVaN/bogPSvU2rYJsnWSG98I7WxMrp6tuZCw+gs3GM5lGiHZtj0Yma9P30xhBzPtjHoWVJ8KX7ZFnruRnkvZAmXmREQrSQAU+mHHHEvzg81ikJOb1BkqiYC5L1kWyPaDeej98nCgT7jpw8xPceL8o/SrcVHMW4h6BITIkoRi0EUvlTMGFSai42mfu32fx4WQSjtkg88cPDIRju8jgkPjXEUdIsRc/kKWhbL6U98hutjnkbSqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrppolicytest/providers/Microsoft.HybridCompute/machines/linuxvmpolicy_1","name":"linuxvmpolicy_1","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"2931d35b-3bd8-41f3-9b65-f2c5d94f5e3b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10001","status":"Connected","lastStatusChange":"2019-10-29T23:15:36.7443803Z","errorDetails":[],"displayName":"linuxvmpolicy","machineFqdn":"linuxvmpolicy","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"linuxvmpolicy"},"vmId":"6f5f3a29-5e72-46e6-8584-df4634ed3aec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx/vtn3bidKlNbZvkLBg2hIkpKmM+W2mhcKCVjPapt2FqPEcRkPf9CZ1imSuRBDfE3MVFkvQUDFoPAg81dpn2nK8tU5WNX2hC6bDqz6UPfaSJF8Asc8GL9WL44Nbv3ExHgpDOIA1HkJcyHzEii2LI8u/qu/GJiaJuUiEkGtAwm6MjPjcGBivNlMLrwXqjgNNEejZbCRlvUwaOnCPJr3WK6fMDYtUWBQ76kpA4Vowp8WT6paO9FWITXpuuu+FXyF99Eci2THSk/EWonpB4lW56281SQnpRzjBW78ENBD3Y/pr/QGMQcP7HAqoR+fsMJCuReq+piQnQQMa8LvZkdur4cwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/PumnamhrpVM004","name":"PumnamhrpVM004","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"dade6b66-2657-49ef-a098-66f28777e370","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"72657696-be8f-4fbc-b0fa-71357467409c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1m4sqJFa8OOIyR3OsKjtmbp6NG8PD2MBsM2TN/52edC5JLnvubriAI6gu7nPfozl6S2VmMIWdm5B5TbbGONZth+JrzUfc+raHjv11x3TOtJ/bsBWvs8tSx0AoJ2S1JYdEmiqYTQxXUaUEr5TZO1dLSBezlRVv7eSl7PRTXKzISigdowqxcaIxWJG4L3FNfNFM028XXAyOVEXCRKGtMj9eDkXnQzp6+g7QAmp+GpTSTLnVtmb/1wx29NxPDT80tvEsE6EhFdM51AFE9GmniwqNejcaX1KfvQVD6V5pVOs1e/87ry2pK/YVBTlVg1E/7X2ZlQv4FzfaCKNgAwR3XEG+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/PumnamhrpVM002","name":"PumnamhrpVM002","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"f2afa603-784f-42b7-b2e5-5f6692ca7f71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T22:24:25.5722303Z","errorDetails":[],"displayName":"PumnamhrpVM002","machineFqdn":"PumnamhrpVM002","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"PumnamhrpVM002"},"vmId":"5661df85-83e5-433f-985f-f5a8baed2fc0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqna5fESsAduKHmvIoo/+mnj4xy/7NiFWOwYg+yaQMuHde5XYkz9GrGDf4z6bGIcBWi7OnH0GPNQRTt9IMZP1qJSwcWH1K+DSSNd5r7GvadrYH66AmZVIkcA+hA29QGxhZNFAwzl5bdDNdZ1E+gW/u2+B5zf8JsmImKSk/tKDqKaiZR+R1pCeqW/FJLNqkCabL70hvqmq7REHCTUl+xfpaySX+Xc65B/+gkIMtBgA5gTlQck9TX1QFTYe+6Mb1cFiaurMx6XjClmUB93UHfR1d9ymoYiKAmIrhJmsagfPbKqa6f9CbvmGqiNB7LRqvpO+Jr2lBM50uaZP7uV+TlzgFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/PumnamhrpVM003","name":"PumnamhrpVM003","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"8739ad28-db61-4444-b3f4-c6c9e1592390","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T22:24:58.4659711Z","errorDetails":[],"displayName":"PumnamhrpVM003","machineFqdn":"PumnamhrpVM003","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"PumnamhrpVM003"},"vmId":"a101ede4-ca40-4776-b4da-e0e2a615754f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAztD6IHq3hTf2iPpOd503KQksUehKVW7XZWLAkqAmN2fVSWYFC9AIHk0YTxVz1Y4hDTmZKcV1KIELK4HU4ngOFEpjRiqJAGorsWUfIPf/TYlxSs3tfvI8V3sHSA20abLyl/00WzgmtHyhfzkcplXcX1JVShfJ1bNS5ZDPMNsvWuG2fvM9t+A2RjPwtP1NtbwgGPAsUzUmUoUe6YQoa+0CBU7ra8mLGCnJ8S7FDOfmXG6AsbjNGQAfUISZCKjW/J8K6pQSnvdiE6Ubb0nHjgNW5joTU5Bj4l7pZPBH3SXVUemlHTu+8h0B8Es0VuS5xtz76X5aYfFMY6c13BBQiZoWzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamhrp-az-1","name":"pumnamhrp-az-1","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe test"},"identity":{"type":"SystemAssigned","principalId":"e8410cac-8b33-4948-bab8-4ecc2e257f90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-06T22:26:59.7776662","errorDetails":[],"displayName":"pumnamhrp-az-1","machineFqdn":"pumnamhrp-az-1","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamhrp-az-1"},"vmId":"bf3ca134-8959-472f-b7de-09ae13498f7c","physicalLocation":"building - 41 :))))","clientPublicKey":"MIIBCgKCAQEAy60t/eUEdPjgb6xtsh+IEhJeFV2NsjW8URvhMZYoMEUncyKWe7kVLnXuiHwrKbeIqMlZKZE07AYOCIhBuR/1r8ECEuj+1QqwajezFbdFIBotc+jmuJKTi4/vPYZVvfT1QTJYIO5Fz04DR/v2VUE+7YVRcQEU0w7k6o2aJteF90ZJKMpK3hUmmt6NXYbzwGhI3P6UQXLThFnc74XT6/n6isVIwezBJ/NO1iokOl13PUKKNf81tYT3JQu5XT7ASparazTo7Mq0H4D/ZZB9WVaB6hkR3ms4zCo12eYA0lreuMSPsXoCiTOdOLRXmDjdyv9t1x0EbAVu1rAplvpxIBnxzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamhrp-az-2","name":"pumnamhrp-az-2","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe test"},"identity":{"type":"SystemAssigned","principalId":"0b39623a-9298-494f-9a67-34df9b79c012","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-06T22:31:59.9084664","errorDetails":[],"displayName":"pumnamhrp-az-2","machineFqdn":"pumnamhrp-az-2","osName":"windows","osVersion":"10.0.17763.737","osProfile":{"computerName":"pumnamhrp-az-2"},"vmId":"bf340ad2-70b8-4870-bb16-de94c4acc6d9","physicalLocation":"building - 41 :))))","clientPublicKey":"MIIBCgKCAQEAs+Q4D+Ocx/5I8lmkw3RXXgWLEVDawgSfC6ZYc8hv0cjqSu25uV/FZpq5jCwMDh+XNltg+sPDK4YVPs3QZZgYPP79+7wjXyOwMKRVcH4ugRNF0neBNZ+p66UnIVEswb8B2Y05+wRyB+CeeAkhkA0Se5vdzDbZLURLhukjN4mAYe9+uwevUws3iABkbJ+ffknxeajU9lh7XdeepNI1kqw0eB5u4DdGfaxNt1jiTL9sICrfrtCAWG041c4uAt6Hxb6xYZzDE8DY9NJVyE+6KqqQww8XSK+Z3hg+IQhQ7v33NQUBrMfXER2ba+qvA1g4JsgPoMgxgVd4u0FYQF2sMybBSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamhrp-az-4","name":"pumnamhrp-az-4","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe test"},"identity":{"type":"SystemAssigned","principalId":"5c781fa6-fd3a-4f72-b059-3b5ea58eb97a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-06T22:26:59.7776662","errorDetails":[],"displayName":"pumnamhrp-az-4","machineFqdn":"pumnamhrp-az-4","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamhrp-az-4"},"vmId":"192891b8-0760-43d7-93dd-ea061452bd5f","physicalLocation":"building - 41 :))))","clientPublicKey":"MIIBCgKCAQEAm29gjxGlgMmQYs9eltZTTHRZvtdb2o0OFjimlBQnqicwkTfn3La8AHcThpSp6mAyo4vQYFl42VKDhCkNULHUo/NljZonvokR1CzR5tLXxFluxJsAj4sZpfYciDbqoYv0haEy+82Eaco0bnv3L2YeExBEGDyl8+mRYf3Gp/jQnsnHlQkBEspgN+6If+C2zbY4Ab0NSWEw4DbHu2r/YvPeu+g93Kyhj+bn++mePf6EBqqe4+yIM2AubRtfbGQGKtioTsm6tqOzbq/GCKRc2QqGQLegHtwVMz6XAJJFn9yWxFTssfqrZkeiOejVAHwXtauNC7KtW6KKLLN4lgAIqgH4oQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamhrp-az-3","name":"pumnamhrp-az-3","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe test"},"identity":{"type":"SystemAssigned","principalId":"458c854f-8f49-4502-9252-bdf19cdaa0ec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-06T22:26:59.7776662","errorDetails":[],"displayName":"pumnamhrp-az-3","machineFqdn":"pumnamhrp-az-3","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamhrp-az-3"},"vmId":"07292d9d-370c-42e7-855e-a031c3e8d9d1","physicalLocation":"building - 41 :))))","clientPublicKey":"MIIBCgKCAQEAtiIlfAT/VWyFA9AmnY0PPYP0gTaI//w6sEMCw/ndmYi4qBrknwtDF2SsCivhECLEne5gp8d/4j7cVsn7gmFfbplrLDuXxWsf+whoQEjdnZN0JchHqERQKehwDCmRjrNUdfLF56+KLvwYEGTNEf0+MFJN8TsjP27OsjkUJzUCsV8Q0wjoGuipxnY1XM+uAmOwD5W8d0k7RzWAHWXAIwiv0X6zTXoeGaoe+3ewO4zeLuVPjBoGuZ4DTsmyyizStgjmq89z9lSM5ktxR7ZgvLP3+QxjoLSvf3GKiQ0uT4Ws90NfpXYrGBbiBM6pCRHN3JjgYr2cl29ihhW5+/pzxEji0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamhrp-az-0","name":"pumnamhrp-az-0","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe test"},"identity":{"type":"SystemAssigned","principalId":"fa0ef415-dae9-47a8-a3fd-fd5625031ecb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-06T22:31:59.9084664","errorDetails":[],"displayName":"pumnamhrp-az-0","machineFqdn":"pumnamhrp-az-0","osName":"windows","osVersion":"6.3.9600","osProfile":{"computerName":"pumnamhrp-az-0"},"vmId":"22532305-0cd5-4c6f-a6e6-c2981e3c2be9","physicalLocation":"building - 41 :))))","clientPublicKey":"MIIBCgKCAQEAtTau8RmjUT5N4viBKyTr6EsVlpHuuGoPnNNP3b+AfpM9QEHeSC48hW0zYL3oN9DBltYJ4zWsQT++JF6E6W+Ujtd4TZNzGk6IwKOHEEImob4pb53GJHgyZNK0unCr9MMnneonkXYWfuZDugQMRdlshxgL1CtzTdpZG7QB6d1Yz8akYXregP7QuQzGZI+m5aB7FHaHFCnjtwTNkw/LqUFBqT9rA67gUxE226hTlWfUsc8Ql6ty52Nl2CBtTrixx+vffCZ9wVctdOSI+W3RAy8qmKI0DYfbpgMd2W0X8rC3Musf+07Y/YLEhXnFQRisYuHGUT2l+gopMfdZKBoPZhx1gwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/PumnamhrpVM001","name":"PumnamhrpVM001","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"036e2680-1ee4-4689-a97c-6cda9cfb0008","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"87a92aa4-6cbb-4a95-80e7-41b0397f144e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAucLebjDU0Ff9LcIpqQRf48oom5MiorIQWzBN+eG+8xbV0AxhWdodhQMrQDiIOm5W8BPP56JMVOMum4vbKAXqvj9zzAM5ZxdANVO+xXx04mOynft9vvVFzvRVQYQgtkPIO7uWlyxsyOXfnzNboS/ii4RnYd1wFUIJQZLt5JRhzdfgDny9gtPYtfUaHlTC+vCbEjMS27sayFBH1CvaBmf68Jps3/gzX/3HsaMIQ7gWwbmwqzwX9+Sxq14eXjGuZke2M3A6NXX7v2yDv27mWeouYIisw5tAz6/ztj7JIZcPXQ73lAd4MpkU+XufNmIAmSXPVCzcsoBCKOo1a7tArPIGoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-8","name":"pumnamrhp-dk-8","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"11141419-62ba-4584-b499-42232d569ee3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:32:28.8106343","errorDetails":[],"displayName":"pumnamrhp-dk-8","machineFqdn":"pumnamrhp-dk-8","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-8"},"vmId":"7f08e467-ae41-4e78-8727-3140e8f32900","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzy5qwZ5yg0xbzP3oO4HohgTwr4bz7mTVFSzg48r9iVwD08B6TA/v8ANHcuEIXwcoqjq5V2bP0DHHlEqhCv4DK/K9wdKLCQhWr2I0xjpnLsZ0dB/H87hr9WMA8gI8E6PsUSjNA+aQokNpyavr0NoDo3vxFCtuVJzuuvf3V6/+FFO2UqQm2syGi7rkcZ8Bl88tfcrW7AJ/lTr/ipya9ivOYB/jgbj7FvkhzD3HE5CT0GOI/av6JSBJXUcMEfOWcH8Hx7XR8deWXu2iyP2wPuhVA8q7j2cOfYWcNnsHb3wc0p/XLX+k9K/rXWvIuk0k7UF49prcL+jKk//hUPP9gY8fiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-7","name":"pumnamrhp-dk-7","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"b31037a5-c19b-4a65-97c0-2eb7c5118d7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:32:28.8106343","errorDetails":[],"displayName":"pumnamrhp-dk-7","machineFqdn":"pumnamrhp-dk-7","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-7"},"vmId":"ba5929c6-f8c1-4a04-9b32-30a68866f93e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA13SNj0xmb9xqptebWZEN5az7gXDKSGgvIoGAWCf7jnyCRvZsLIZFrNkxmk8fTDYDdjDXxzkG6zOgnrtbbbOOjjjlb3UHv3eozDO5sJ8t8h1UeZWiqa/osdDnMj+/t4AYzcVhAds9qUE3QPKciLNxxaTCN+evOLLLSaOaAsoid10ALWmk+EnBW4ALM/2P6yD3WMIcRH1GZAn5YeiWgFHMRwJKZ2biFT+aMcJIK8LpGbawx+gqDrTNXlU5dVG9GSCb5mHTNgsWZAVIHP8sQKiEnFBswG1dMO6/df6+vaY9brWHPtz5LfLTUf2Jmga25BWn+vHX/97xTZQeejbvCYDJvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-6","name":"pumnamrhp-dk-6","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"a145aa61-4abf-45b1-aa31-a8299ce0a0a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:32:28.8106343","errorDetails":[],"displayName":"pumnamrhp-dk-6","machineFqdn":"pumnamrhp-dk-6","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-6"},"vmId":"edf28f29-f29f-4283-975b-41e8ad495f08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsf111d26RHql7ETfjvuqk0NbMRtY+uBJQuQ/B7uLWvYL39zz3achFmdN+Io5DzcJRHP3FaoPC1Y/7o5Hn8D6XYoB7ZLyo0HxdnlotSRezY4LppzIAz9dBLZU+UnrwjUOgIc8UBJ1Mx4/Fdg6jo40+A62by+TyB+zXEeYOA++Bijfo4OsQaKMiz1ck+pXKk/9XwWYc/UjsksjvscZ45b1TOHhsQraMPP56acSypeedEu42DbXD6/WRwXXpu4iOHCbBDIZliUDvO0IJN10oCA2DnVkVT4QktmpAycxFv6V3iLNuvtpEIzZdz6DZpRahOD5AT6JwNakphpnqK1h00aTiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-5","name":"pumnamrhp-dk-5","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"e1ffbab8-4f5a-493b-ac10-3d5eb13bec48","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:27:28.6580122","errorDetails":[],"displayName":"pumnamrhp-dk-5","machineFqdn":"pumnamrhp-dk-5","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-5"},"vmId":"d3a1ed93-ba27-4787-bfc8-5913fd84702c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA14Aak4G8lmrKUkbyE+85w+4Cw+MtELLq23W2Og2mFMoxurnftFBg41hUUXvwui/hBhHKSLEWSZXXHgCQFL4oJbg5ilQncszGWBHR8JYG2bDqWryHmytCm/mNM/UXl1D2epgxWkl/D+1h2fmXLJZn+GRN5nWqf8DSYpZ7YhbPyG1+6xz8S1kW1EJLeD+H82J/yYG42Vxfql1o8Gef2dB3HJNN6qVwpO6eT5oLcxMc7KxrbUnPGOs/QEHCCQS57rR/pzEoLJgbz0jvWTKa+e0XNLwhVgBFiTQOTCixL1CWweuC8rAugRAWJQoNpVe94VXUxePPe9Y2hL54JFWh5XQXhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-3","name":"pumnamrhp-dk-3","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"88df6269-21b9-444d-9b6a-d9cafb299f7e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:27:28.6580122","errorDetails":[],"displayName":"pumnamrhp-dk-3","machineFqdn":"pumnamrhp-dk-3","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-3"},"vmId":"1773a627-ae5b-488d-ac03-452bdc2d9c42","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAytWVfFJgU6nDG6bUklAVPr7Gx5dX8lhYeJST+X2gpzbDRstXBylgvvEMDCLbetMPdckoB7QdBSeIIN24dfcFDgf4RMYhwqtV0Y4OCZKUgJrf8pvOu73bbGqR7PtBmNlv7LIuyRmKVE2f09wwt/+/n/qnNTirs8bpaEJ/grqT1RW8cZFYHYsF+YFANdgGkwuRxJmxGAX6u+FTOj1is7mp2BnPI9k9JTmRPWSJasOxSyabXSHIF7TQlPmdde8ZRKQlbuIpJ8tpsPo0BeyAoFzp3wo5f8NflqHU5uw56WTcoBBt9WQDM1athvMiTh9LVO+jyLnAgraDjSmb//D0dGK0iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-2","name":"pumnamrhp-dk-2","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"7f75ad40-a3be-4204-9d9c-a2a69a34b66e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:27:28.6580122","errorDetails":[],"displayName":"pumnamrhp-dk-2","machineFqdn":"pumnamrhp-dk-2","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-2"},"vmId":"ef5df962-119c-45b4-beb6-65811dad74f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1dg2xd8VCOkSmsyl+S+aMx9M0iBJl7aa9V3tDjxcLawS2FV6geBEpWDIQOEziToYQ+XX+vYh7lxqUvYxBmxIvZLfJMR0EqIiDIKtN7sP9obzbjqkwm6bqZnVJpKcZpX7MhumgiKPWtWzoyKrRXFG3zXYjPP/8c7/YWw1seLO268YRL3BybIye5gDE6azkxXiRA3z+v8760GZWNyX7spge8Siettqbk2j14V0OgIZqzGguWXGu9VBxsBT4RqTvRx54agh7Bs6Q7E5WNt9VaN9dTRP8kOdVCEkscMKRJPe8siclx7tDHMZEP0U3WENZaSML0p5PvatDdwJ30CavJr+WQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-1","name":"pumnamrhp-dk-1","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"fa3ee688-76e8-47bb-83f3-575ff7d9d987","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:27:28.6580122","errorDetails":[],"displayName":"pumnamrhp-dk-1","machineFqdn":"pumnamrhp-dk-1","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-1"},"vmId":"8cab4029-f4b6-4b8e-b1d3-648001a1ae0e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAprTmkkRQUiKjtaXZwlUhkqojgRHImkcUxAa9U6n7PDbcYLgOVrVBlyBFba+o6Ue2wwTH4lvt4tPTfBtesgQrEsiubOlupZE0aBuYGaZZ9F4hjbqfHovDjsCsUXaq+QAUPQbaKUZJbCP2ZIKTz6xeTJGuhWRabhbp88RX1jTKT/8Jriwq3mz8CI6Ndy5YvZVaT+OCtnrKbKXjQ5X+IcyWm7pxFUc0RgCwojxif1KwDBWYBAAe10SxeJqWSEUOOuqAWG2DIRfY7ozM9+eCrHxJvS6x7DZKebAIqkCyi90tAjTOzITka7rcmUVtxYTiVD4ZiEggT3XYRbwIX00UypD1zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamrhp-dk-4","name":"pumnamrhp-dk-4","location":"westus2","tags":{" - suso":"test run","pumnamhrp":"jpe","runbook version ":" 1.0.0.2"},"identity":{"type":"SystemAssigned","principalId":"f6a8f909-b7fc-41cb-b51c-91c33b5399e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-10-10T08:27:28.6580122","errorDetails":[],"displayName":"pumnamrhp-dk-4","machineFqdn":"pumnamrhp-dk-4","osName":"linux","osVersion":"5.0.0-1018-azure","osProfile":{"computerName":"pumnamrhp-dk-4"},"vmId":"64be14c1-8e19-4c26-9543-2c33d445f917","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnUVnhSp+YwDY25cl2czDvLH4wNRNohBbeFr8MqPguv17bvbfmr3Lr+h5UMgPVoPXQ3qeef7AYz/4aOzw3CiVctzYA9OD3QychTk+q82XE2Xch9YvSUGMGb5P65+eB5kwL7CFo9gb4bqNOLD29kcGS433fDj7A+vnQo2aUaaSFifkXITdEXoTRoHg1WivYRR5ZmOgOBhWrThXbi93SjlNG7DinlJdrkFp1vJZXjamFwOikVITsWtPm4Gz0ziJKwLahes8XmeOuEEGjSvCahDDH2i827LsFTs/45XsDkih1CZTXmAJ497K3nB3izrXl9/3IA9aIFCrbgUr9rh2AnpNCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00000Y","name":"pumnunsig00000Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7c7d5ebb-746e-4e95-a497-75882a9ddcba","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"01e3b399-4f7a-48f9-a196-d9e28c98fa5e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvMxr7qL4OBp/0pDch2TtIUDf8ilfeotRBF8wH3zKMDrZkJLoKL7/YQeXHSv3v9Y/iEg34/bFS3wUQRvx6boBQNMfJyj7znHotNAHY/GsEA9AuUw7WV06uLmB/20PfX48pkEuVghmaYyvVfT+OaS/Voi+537gOHZ3tJOPr5x5anzvynTw9Xc8DRA7nOsO3IGzDLw2AfQdl0HiFiLIcJ5dqNnhwRqpEOLuEgXeF/X0fxGEH6NgUdI+ckQ5Eq0H3WowUdH5DFMtmF1mVUAzosBD56FifmdJ9+suDB9euYPvY0c4m80mJrKnKv85NAtdv7iVTwidE/pSJaV8cPNZh+Yx8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002B","name":"pumnunsig00002B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ef9285e2-1722-4861-a05b-497537625193","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"03bbae67-208e-4cb5-812a-4ee3f55f5297","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0aZMhrDPVd6WZF3CtrUy63r8vN4DAQ/8tgVe+ASfMvPJXeiQAiEDfHPtSMAsIKvcnOH4//UlyZE8YhgZvGFH2Ryia8F81q01q/+I2zZ3Bkzpyopjh7YaTYCRHvMH6WHzLhGMqokJ0Fsr31rlxBbAiVNKesk9of9JMCZsxrpLxc0FeygACKXZ5mqVPf71Ud+dqrH/J/X38vQqji01kluEEtqaC0N5SGwTt7coBasWCWkWlhzYZ0tW81s9MNW1iQYxDw695eAqbNbA1jRJ8U9TS0Q6KBO21yGl4RepcyntPCx3UGtM0bsJPvXmKM61F12og+nTQnUoVj9KP+EF8uMlKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002K","name":"pumnamuns00002K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7587fd95-cb3c-40e7-94c2-342e2bc6ce4d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002K","machineFqdn":"pumnamuns00002K","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002K"},"vmId":"76f3d643-9200-4b59-8626-f97588308780","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5IrdcjrWnpAZPp/hUPVrD//vdQ2AmypOOw5fCrygSRtPjW5/GeKaVL1Om8kWfX050K1q9MOvnv8kDHj+CXBAIw52BYzjBVNmbwcmLnkeW2rR+J3dnL+NriH4ytk9+FsDVWZtV5QxjbSVhGDn39ziVYrx7EG06X1CNnJmx33t/dDUf76Q9aqzOgCUeyAxIQAYa/jXHVC++GrPF5GWi+L7OEXHmqFdniMImKqCxaaWgbcOhUYa/lK4OoyltOYWrtM3en9/ylC2yEjLd3LHuRrW2k3Z5sA4T7wpU1M7j59dunv64JGhs+IOxJjYduDgMpR2nQiqNWsNbGM0K5pUb3zcUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001L","name":"pumnamuns00001L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2b2c770b-61c5-4c04-b200-547a54c186e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001L","machineFqdn":"pumnamuns00001L","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001L"},"vmId":"62618401-8fee-4329-b4cb-03b461f68b2c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv5z+EWAUKadESqhxN9CxRgZxiQxnOo5luC1xb2YUiCwJ5YiAisDdb99HoqQi8NoRH6QwYAOGYj7jEqRNVpK4FHTbGcHFNL6JjPWkH5Qdsferdhir3/iGMCXlBx4JL/3MDJ9/bMRKVdnOckM77V1sJhGs/V2rEz0s3ZO86r+aIPAr3si9fyNpvR7DQiVqq1/pSt8zNyMNOj3PeTpK2fK8FPkScVV5UlrdlgOa5L+FlE72fxFQiqRKpumZnaHqSIMP2Z/lk7khiK74Laf6mptFqiwLfsCyVTyEYdIev4jsNclHUyYeBgKxjFhfBpmYozUjvVfkfsxVKMPGKP9TzIMyBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig000016","name":"pumnunsig000016","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9fb53797-e222-48d2-b433-7ac8c7a119f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c5811569-dc55-49ea-a55e-692367ca7233","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyAEvn5tcNxSce/NbXYSkim1psnczbzTLfQP9ARIkqTxgRmOyP96YRq18rI2B3xiWjoKt2Hvc3eibCaUHfyJYpE/hTgC0FytiDhLAmcwOzLhMtVG3L4bKjVbTh1W4E+ZYTXu99VVmSULJtKgi4wPrtdS8AeL3UuDGRXwkZulUSKCAaOZTsxsjj5OZpxf2XWTEplqPVxAsnzY+T3QmGmPL3A4JTjujoZV5wgUahRpYsWgHNgLp4ryFSxd1AaDGlf2Og4TqOSWEA+0nRb1HYpA8dFAAivoHrGjrQAs4kfDqoBNLm4yUlBtAGrzblIgY3/CWNltHZnDcnP5zsqK7j495PwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002N","name":"pumnunsig00002N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"53692763-94e7-4014-aa4f-a09eddc5ede2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"71ec0cb9-8abb-414d-80b3-489b4b76d046","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzv5SkP22ybxmTpcO0mjnFya38MN6on1uyCQTkGUM0ysGkitKjsq4ABd+Q7S8kxFtocXUTWHZ6r0BLWmzS4JYENgPzBpeenLz4OEVuRoWxIjrnknlD5CE2238SDnYBHp5X51sIZz8YJhrbeko6HM0cCdkSK/c7FBHp43758hR3AZs16icMxV4QnzvgqI9JNila8aw/T7CwqxI9l84rcHWrPk8ShCkcxL+w3Gaz73+REZMcaVca3sb1pYOv4sbLG05TANkLdmo+mV4BhI+RFY1tlGZKUh6CfSYD49Nt3E9eVxDR4ynODBRFTfIYmnPrw0kRYs15yg8krocZ7B5wAqyaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002U","name":"pumnamuns00002U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1af6cd9f-5aaa-4931-8e48-43a7b994640d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002U","machineFqdn":"pumnamuns00002U","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002U"},"vmId":"207def81-da62-42db-b5f6-19423a301372","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7zfKg/wD5E2cW68rCbHIjIdyUO42tlOvaluXnVZFSfsbifRd3KDAEFpmKZHihHqMP/WocNl/fdUqTafJqzl/ZpN2d5x6+RzBQXGu++Gb6o0MTf1ma9z8lxZefS7l9DqWl+p1CcMxAcraIr6QCSjAhpz4T69Q/X4x5m8BFV44gU2XQCcvJ7kiaW7hvz5OBzWWhn0lqkVuh90ghMaZQ4YaGgkOAjppBjsDxO+S4aMV3uvAn1hDCisq50a35YWbJhO0tDOdDRb/McKx3AvApUOiq9GCankgHXZNp2vSsmmyRJMNwwWv4/oDgo4Vnb7bsuENolhWHsXUvoLSzs+hlKJXtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000D","name":"pumnamuns00000D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"82945939-5d2d-4cf4-a68c-65287767ec98","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000D","machineFqdn":"pumnamuns00000D","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000D"},"vmId":"271355d6-cb2c-4d5a-b5c6-cf781e7b936c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2931WwWuCughyc4Q86g+IT8ctT/cwOXw0+S/pfC4BywztVXcdBCgdR1Q/sU0D6pKg2NW6hIrPMbRRQHEp1mOy/UlU7snQsutQJn7MCp+/+GH4iCdnM9LG9dxOr/8VpDQGyB+hNtKghzF1H0fxLwqgEI2WMFsC+KRt3YBev70gNiYCSQ6eXFTzl+AKd//Uxcrcopz3Dv7LMEhYodAIE9T6q/u434AzRMi8mxlfoCsBJu1TqSYVRwnW2FsK6e4jJQCf05G8vraZ0z3TiVyfx3L2FpOb5aHHQTSIYtKEhuirkiC1sLTXjlrBcb5KM0G8/fDgTw/aLwecH7/jEuF95aZFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003A","name":"pumnamuns00003A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"11d6f069-6b21-43d9-8c88-cd59539c83e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d48bf163-5fba-48ac-976a-53057331a374","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2Wgd+2nSWTXvn7x4cCPJaKzMHqPkbl0rOs56ZPJ+fOvrg5oDg+hMQAOW9UCxMQcWWJECcL5Px5rTJ49mS2yW18r5FdnedjsPV6aw56Jttfz2yZTnfiweBX88s+QG9GTePm+XyNzuTJgb11luUeCI2O1Npm9kYWR8eDRF3+eyFS3SMUUMLugb/UjwQMbFHK+RcjjbK08At4n/0Fu6GFl4PmKsvrxwlVUqDELoiCiFZFB5bwgHZf5ipkcS4rT5fjEk9HbRIz3tPKSkK7QLA1KRlu54aNLE+2KB4rK8i++G0lSwBlYAzK1tAO/Tbdb0aoaLCmsG3hklbTA5wpSCW6U/4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00001L","name":"pumnunsig00001L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"907c51b5-6d92-432c-9e6e-7aa1ba842702","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1cd05fdf-a614-4f88-9567-a185a318bcf5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2zgxtyW2mzPoAmu4oPNjs0di9Q2v7SfCmiog7o1OtbjQiRyxXG+0Ge8sWdO7TZ1j0wUrIycwHwXaVlaVi1/8w+YWcW0LFZhMV59ubpJOakwSDzk901SSlj4sufbY1IDmbxz/SD5E+X9st9GLovhFbsjp2V31do1LNSN5YxkeOzW9vlYw9J7cVUVZl2Gh9X+ue+QE/LUKPbt2cybXGNg9dHBHF+0VDoo9meMek8nj02dwKNkgKWHM3cId7aIlQLkYhndiJeVo1/2LvfO3b5LQkrg/8L2ZWHhgo8rpGyz5tLkp5oRRTFUuhPBRU9rL+bMt8e6K9Dx+/kUqYDBVzgyJswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000015","name":"pumnamuns000015","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e6c33a9c-d502-499b-a276-55c66dd7ea7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000015","machineFqdn":"pumnamuns000015","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000015"},"vmId":"f6bd274e-232a-4395-adcd-07b31b86843a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtoBNDhAgf1nk1nRzOKCqbQgcTvVjL3Gls9XaQacUzEN6VZ23/mnSUKWYEqLF8CH837Aj8KVqtEdIKkncTolFZftM7pbJYWxKiVLhrK87a125e+U7PPo1MIYE23Bhwno8+i7DNo5GpTdOkemD6FK4amkmfn2n+A9Pq1skcrGSCZAUSQFcfUdkybwspiKgNHjeKao0v3+F86DgaQuZn23rbbX3O8uW/OBA8Bq9cX0TBOmRynM4qAlW6oxJzpLuDGSpnEgPrhiZDrp9JWgD0lg00df5N/ogJV+En+Wz9+rgoyHsNq++W1R5yzoUgro3KECBCexIiCZyr1FEFhuRWlkR9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001V","name":"pumnamuns00001V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c825e09a-5dc5-46d6-804b-76ee2ce21539","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001V","machineFqdn":"pumnamuns00001V","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001V"},"vmId":"5500351f-adb8-44aa-b1c6-91a5e970bd17","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA44Qd2JFFmVnIPAJ3INAys+V7Ls3nkicMCU+10x7qkMvQiLVsmjnEGk81VoozI1bYkNRG9DNj5gwFCK21Zq7fBLls2rFLm/MAu7er4hgP/PtIHyuwdYlzPlUAyec4oKqMrTzGofzuyJRrTnFJQvMD5NXxZiix/vu3iRDV50Syos2MQXNRoH4K1RGJDnmQqn8HwN3LXJO5ogUSHjOBp/BSes0hXhFOA5147v6JAmdWdx0cb6ed5d9/ZNp/UNe3ZP8HxXr+2b1K8dvPKkMAOFzHrYCigMSqP+4OPc+uTdSMrr74Z6oGv6FD9qlQeZKLnfLDw7bKDhq9q4U4Cu8tiCOb9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig000021","name":"pumnunsig000021","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b883d5f5-90c0-493f-af53-28a8d7de017b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"9554d6d0-7990-4d61-a54f-3c589162c177","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwFkCP6C7JHYBv3Jnf4mUuY5uosTZCr8pKBkqmO2t9caRDKNNWUGRG3eJbm7Vdf18zYE4eMXk+eqRaCR2Hz5GJVNFrtB4LDw593rhxyJPUVyEsgfRnFzZWR7sOgUSJ55Ctm/r9/QrSXsjpCoNyTvhnHna7HSl+SzjlHFkAT6mfkPkb8cBahejJHMMi2M/TYS/9PGcPvp6AfsaiCbFawW6NZqheoHhH7YH9wr2LXK+OtEmby9SMFbj1YD1MpdADVBuYjKt/e4x8KDpoujutWtqIsW1kJF5gjkUr9cC3Zff2HuneF9UZX7M9AdzHQsAmD2OhMQdvFZufk9VGuS7L/X8wQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000018","name":"ukspumuks000018","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"914a3d3c-bfce-4e3e-8fe1-1d745f09364e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5dbf4686-c5d5-4ebe-a4cf-1b10f0608088","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy5F8GrmDhyg/7fxeHWt2muul8kHVjZHdkB/ed3xYIldaOtNr3RlUjGTEje+/hsQZS2EV+gWE1ZFIPnWvDPgeX+8ziBvSp7JENUivcwjlikxPRK9+OfhZMgiR74K434C9iTVLvJGfqpKb0EhthKIUHLp8Mi2Ji5l12BMyz1Gje+wAAch+Xwf6Gp6cs0A65urT3bxSNO4r7d/r1B7fIeNjTRuxahx4h5Jab8u7MW9Hj9N8gU0iEhXRd3EnUQBgz2/uaOkPF3apL3F3ggjiN8vwaaAxktslS4p9roWPv6ZgJCJPT35hUTWa1yZPcxSlR/iqVpYQC0pC8GOMSI5Xa63tGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002D","name":"ukspumuks00002D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f1088dd2-e316-46be-a00c-56599ffc4c90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5504bcc9-2a88-449c-9231-bcbdbcb224ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtwwNJqLwjNrCzEgXmAFqwxXsU1cz3wGMcYtXZb0+1OapnSu0bKYiu7sje74+QRpPVQ2ul3QyP2jzr0cC3zWrNVXZvVmlTL4SDM5u2779Lsil8LTz8PLxcxzm3ajkvaU2hGNn87Z628y2CDzORxzowBNys20K8Du5HWvln7FPcCGrXk6lsJ/u0rQvRSI0aWyEV2N0/xG7FyV9XyaSCTomBoytzngfXHhIU2jIfOR+9pk1qTHzTP/EN+iuwDxEy6n6MHyN3Q7icJSG2Xkjxm5bBuHEvwe0dteay8BlPpE9ovpcHDaEb93q4fBKAGqJYyLiuYdXo0Nqt2MrF5zdGA4pgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000000","name":"wepumwe2r000000","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e92338ce-0fff-4b2f-a6cd-04c5a6da778d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"7e5fa016-052b-4bce-9882-20c0aace745e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9A160cJ/ufnZKWYYnnuVs0KzhZLI/JwBCq3Bcju5UJzwLXlH6//GUD7mO5QotDQyK+9fvkl6Qys6Q6F5cMq0l56g9YHMgg5/CBSZDPNViPcNv1JePd9DBWaPCO4wW89oprxSgXvoMW0JGz4EMqMzsWLMldNks76vfEaOUFozZqOV+wSdSi1bD2FNV3CsfV1CLeF112vo1JsqTfmaq06vpD+IqsFziN3/lzDticD9EQLz+GSsEtWtz6qkYKCS1qOypmaz0uloMHpUg5UVHSWT37h6q3Hzpi/z/0Wvy4lEthWwTcyJHB/i8KP/BxeOiDcEzfmak6XpfqMItrZHfixLmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002E","name":"pumnamuns00002E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"bda05194-d67d-4045-b265-c2fd482ea48a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002E","machineFqdn":"pumnamuns00002E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002E"},"vmId":"166fe35f-8959-484b-ad73-973066f25595","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4cgp06aOj+NKbeNK1/y9pMDZV/kO7FsSGGGoKYpJe8c0TANtYy5Q1Np5j99GOaYR86CyivBDounrnu2uRVCOJ4G8aqFsMsVA4m+vUBvfGAg+RmReX48r1IKj9e40Te+ROtyIRDq6ApGsTZhLfqLw7mofMjOytX9gkj6SfXbMW+xwgNvxh8z+d9lozWxJp+vriTK40hZjyiCxssCZ4UsXJ1khcGOiYI0QXZlpj+1JcYTbgRICJrodSnhm45XB1yUDbC1kTKMivNOCpxlg75cotxUwXU1TWBsr6tkaGBvoKrWqdl0hYcmyYrVJto+6URSjH2f3wE4s01q0UMW5RxEONwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002I","name":"wepumwe2r00002I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"83f0d33a-8c51-4491-95ce-9dced04a628c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5298b273-7172-44fb-a485-9ca467b5d0ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5itpM8Q1PT5ov1Vp5K76LEoueeLhtZGff3jY5glOyFLxjhkPcvFqTendGvJWUr+MVbdVohELvy3DSSyj5vse1mOPKyq8dje9xynlrRP8Hk8zx/qJipoRk5ppUX4Nd+/7X/BZ1y5L8SNt+rCSNx5hnbkTUulJ2eqTVEdfa7r5V8ipjl7BSZX4YfdJBgtw4W3/Q5NdmV2DqzSn56tS3sAYgYn6ndv1AsyGwaHYmJQySTgu9ddqPSSk4mTBqF7gKdoBuMrRX7jK9AV8iEXfLCApv7nxSIuudCp39bSjv4PyUljbAlbrto4PaBnKUX7XdA024tZwqbBrk/CNP2RxJRuOrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000Y","name":"pumnamuns00000Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d3302301-9618-4918-8f5f-99eace1763d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000Y","machineFqdn":"pumnamuns00000Y","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000Y"},"vmId":"fd39b13b-eb46-4a05-8b5f-1bc082fe8133","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyPvFCBCh6N5QULX1mHzrQC2bPzVAvyKD32aJSVRPNfO0lGVI0a8BCjeqzxZalSEXty/bQOFgmenFaxMGIvj3YPuhOkFRboNmm6FuHSayUkrj2i0xEPp4b3OOFz3/AKp0oTnd57S4vkIYaTpRE69SHGBF/kog0A3YUhf9BHvTRnmJY0y1ft6OPa9sbbWagpMNg7r8m43jyxUaPc5Sz4bz7lpibitOCbrirIK8wDSfMH+vZIzDhRi70kgmOKHAfT/krafTa1f+n4CTW7qf+A8qmJqGJT7yaoH3I9NRNsJICA+WP0KMMiJnqDxm+yLcDHeJXXx+2O51TqhLzJ+u6vrYOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000X","name":"pumnamuns00000X","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0571d499-0753-4a61-ba64-ae214688d41b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000X","machineFqdn":"pumnamuns00000X","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000X"},"vmId":"b3781bd0-ffd5-46c5-8d8f-937e94a1eeba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0s6pdoToypMOwHV9xrsd2C3lziym8Vm/wF4TsQA50pYpw/v3WTYOSwhWAdMgLFlgPGQ255zv1tVQ0VWdR5DTs/s+8QA+CR7LM1c16s9fU4m+/GJW6V+0ScUSnUgeTVmSbOFOgbTGi/ENzJkf80yUQwVaQp1ZXBdGu2SZOejzOXH69TDBW0LZVAETjkGp1FJGoicO+V9Wb2HnkhesUCgaX0oUC8dQCsNDrikmNpHGhCCxt/imEBeGQPvQrDIbY0LHU0xVVn1n/8axgVLh04jBrdusFX2N91cdeNdOYyuxJhikCw8pndFBLDGLVu7nMnyOuQ0zW9poqDS5EYooNHDU+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000039","name":"pumnamuns000039","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"cb7ee615-a891-4059-b93e-6ab584d67d8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000039","machineFqdn":"pumnamuns000039","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000039"},"vmId":"dc43977d-cd1a-4f60-9bba-390f9efadecd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlvC3SWYcA2phjETFlhi8Trozcf+EuibJ6EKsc+Kup/QUO8kjgFCd9uWi2Vu3BCMWIG97Lzwrer2DDlMD3ivdKsK8QFE/wJXq223rdZLXg4gZIKFGaHM9jZmOcDod/u8nX/Fg9aVhDwqj0lqAnUPmNqr55QmXhynd2uWLSFmmPFBm1J1JcTOJZ96NsPNjr0xYSsk3zt1+FGc96qy1az1qvppRkv0Per3yfViajZe4oyV2NHG239NHtVsB+R5gYYeIvSxqC9U+l64Bc8Nb3lUjSlr1zP5CM/xzITRkKKNNpDnuGujPo2zsrdA306X1NwNuQikoy9HaNWqy9EfwasvHxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000036","name":"pumnamuns000036","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"99c21b67-cb0b-4030-8af9-d8fd4a8b56c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000036","machineFqdn":"pumnamuns000036","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000036"},"vmId":"888825a9-4f8f-428f-aab1-cac112e02c55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuvG3dXq4sE3izg7FAtdN8oeV6tK+CBOH6XQuKnOEzBgrYfPxflmwZSMaN1ECP1YgPgHGDSjbz5c9VoMveSNMZ6GM5YG7kBsYwWs44FMJ9LGddQoY6bTwEMfKkHluaX/sng6IO0974F62wFZ92kT15q8yIel+6KKQsK4ecWa/bcW9MpbBkUy/Tpz6cwWbc1zXfkxJN4wpn+mWUzNEavUq9cUIvx/YhmynMfZ78jDrJCN6HzDiqwSSshbeOi9k8TSFw4INAW9ALenWBPLjbQP4Cwungasv0IA1uXkK28btT02D7a9b2UC8M2+u2RuZwbUp6g8I+VyioLU4et5VxrIwFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000N","name":"ukspumuks00000N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4f6adb7b-3361-4940-a7c2-31cc87d6e534","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"db22bd74-7023-4bfe-a59b-3ee0322fac02","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9X2w5mqeeci+GctybULAIDtTTY5kPA9zxE9CSBaSBmXPJ6pmCsh/86RCsJkanmmxtUpmKLZ2BCj3Mvf7E7mSuqvn9Q7bxG6Wx1V9bVIr+B9E4/wyO1ZBl7nga793iDFITsJXnCLa8zDguIAnY1JxRAXbqBEOT6+PYOHvrLqGS7xkODHK88OwRu/17nnFigJyWD+JUJDKs0x0RY/dq85LOapTWeMGckhvLiVx+jobD6eh+zsDkfF0BFr0QlbnEIXZ943p4WZr425gE5FIQFJplVk0lltPWzD8RNNN0RRBd/PAHihr7SoiY66CYwtthJdm/U9l9IUgmt1vG/e6t3ahiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003K","name":"pumnamuns00003K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b37bbf74-19fc-4a35-a8fe-3445ce022698","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00003K","machineFqdn":"pumnamuns00003K","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003K"},"vmId":"e4d2452f-4118-413e-9479-9dc08075578c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Zpe4rTo7jKbr8sQ2OT2fKYO3TcOd5jVHZ94q9O0wmX3PkinZRKtETLyJQWNRZO0i39+oCAFVFE6oBXRIdy2d1iKF2MlkTTEZ1Sn2SALPo+iqOSHRDtYUsYTRcRIk7yM64z4N1BUGO5pRVptehMmYTv7lgAjDR0vqnnRVvz+DCLXE7T/xCDEhgUazi+o18EioZNNLEYw+pCvRxVG9cY3fS2LNmZ2UjweKeAztR8C+96EHq9Hx7g8kht3A3hBb77qBQnq1lH2wQCqgN57CM9YYiNVxtG0sAHuixngZkgYUJ4dw1+qi/M5K7ScwTkKeFkkavDtCKuRJxhlf/FNT0IN6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000012","name":"ukspumuks000012","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"16053790-4e3c-4cf9-9a4f-9f0a7fbf8abb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"671ce4b3-c591-4ef6-b839-4e88113b0bce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDgPwkUb13m0PdcljK6tWCuIY17gyBPkyCBuE+bqikVey6nH3U9cb5LMs0i9Bz45B32ocr+CqoQvgp4pKEw1cdofb3cybvKbdgusd/00afrDFsTPVzBEVetSSSqI4mNu0XYWkwD7+qsA++yFLHC5jUxGQXcz7+3eLdOV6boKuFNZJDqdFpxVnJdTu67NEK4ayxW37qS6hHaJpXWwm2jaxN5roRu3BIVPNmFkudwQIdPRZhcVV8w/Ip64sIMPfi6aLzRLi5SCjBitvgKH1aYdaVJsfiqMnljAbQ751+Y7ev0eAtTKGiT1Ks2bXrugzX8YJDLOx1C6tumELuARjoQd/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001W","name":"nepumne2r00001W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0c1a540e-bffe-4eee-a713-38e71abe4d2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"68d1478c-bb23-42cb-9ff4-7d4ede69218f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAziQincZ82YadOdQTVUx/Nke7QkWtJfxyw7Oq+gmqeOvBIkaNrVSfT93KezYXmLIeNOhRrNTg9zkvImcMEzXO7NCUhDTiqF7GRd5qDb+mAisy/vTdOmb10Nv1PV2USLNRS0tDbVK/GNjeOjqb2nwuyxtK//y4h2gEe3soVmwdMtxC/OCPAp4s26u4RQlQECAhTKzccveDe7nTRriS4VrZqZsRzip32D0V2o3hlJlHDRMRSfyEaAWJ/LXzJ1hycaIaRsKqBTc2kOI6ththsHilsW5OZ2QWKUnp/IhJcaugEigBzZcSnqDaLnMffgDBoT7MWitQbiyqZEBMHJfXMxqG/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000G","name":"pumnamuns00000G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2029515d-13a0-4d02-8528-c7d7c979289b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00000G","machineFqdn":"pumnamuns00000G","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000G"},"vmId":"32989712-029b-4eb4-a753-d2e14a437845","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1zXaS3octL76VrrtzpV/oX3VL7ap/fZWxDQ08F3rIGxdroc/f8f4UjnaoHWErRAKNljwKZskKokEx2HPV/FjmmLYO4UUSq24rAI20jZ+e76MqQKpBvGeKwgIR7yZFn+tPaUz/MNf7J8BJXw/7sFt9v+f8oBwbvAwV9qMWjjCDihpB8iy5Mgd4U7VZg72sSvvTR0ju6bn+EtlhfzWkOHOlU7JCi1uQwLTbLCRD8XLWNDeF3RQEdARm1teKAMiZKH4hcteuEgOiXm8oKxLMBtY3xEjaeXxl7bP4gKA7RVHcpzVmZNm6QWISFyCyf44fxIavLknasL4gqebulPJKzIuMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000028","name":"wepumwe2r000028","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dd10524e-dd25-4040-a696-a4ddbcb54dd4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"91f397c4-ebf7-4a17-a91c-d5d053f52147","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAty8pCqTF9AEogItBRbLeWPGadXbFxS05AwevxSPGNZEnsV4t77wRKzHJWQsmzguJkchs8P7I1xhhdqICrj43rLiutTVZEkmI+bx+T5OMTAXFEixei0/a8AkBo+XCotMYHyl9MzIzk7WUdSouUzhqIJupgEJOzjJdD24adAmJP0Te1tpsHfmK25PFE+BttU+IvSj60apGw6deTUQ3tEY1fGxPu1nbGNFSYs57164bJzOv7sGxXF6OnLBPZoli2yzcK87XWDIzvxKo4+D6fKZjTU3ARPJePR0hK9dgO3izAdEfuvvLuckx+NkNnRQgm6fLCHDoi86S/U3mVRFGTrqf8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001B","name":"ukspumuks00001B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4a325fd0-d2e8-4603-8773-b1b4927980b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4d48e6d8-cf59-44ce-a65b-eb811586e66c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo8bzViSE5OQyMRO4wevfWs1wNSplDF+7TS2XuAtcpQxOhn0POH5JDXlysBPV9yD2iOfDF39cDqg1DdV4bY7aUi2e7Xw/2iR1svjQcedqmK30Ge5e/7srDDUyz+l0Sq8ujsjSYIsUM+7YSGl26XXcw1sGAmHM7ERC8juwqk9qD6qjDU0d5+1KyJHMFP8bLdXUw45tJMpFIvrmCDBotulrd6LGqlSQ0Wd3+vKrypVb70T4zxoImF9opOWyLW5OxILqsuEjrsOWakwp4iytBIhQAs9JXNzasm4VqvQ+DwMS27YCKfFJIjXdld/EAZ/KALJxjUPOtcJBsP02vIvkOxOn1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002E","name":"wepumwe2r00002E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"802b2b2f-2007-48c4-ba21-c6f6ecae3763","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fb97eb64-5d3f-4839-80c9-afe3800d447b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr0XezIx0W4dLi1+D+GEOrJ8CcSceGxPiuKysschFe8tTobtKE4GG03Y/qsGo2HBzkfaBgixNj5ORFPNfuEU9V8s9GEShQJVTUxUmYpWW9ESSkuuFVUs92o7mdcNl0qjsU14OBiHSEjgtDH3Y5PnFw7PdKWbfk/Jbv0qEH4s6L2vi8JKTWDQ8lSmXgy81JNgeXyrS0kAfitzbDi7TDAO2CSr6PK9PwHjLxCB2iqoJPQQz4GRirsrUCHMJ+8RoxkD31+BkenV6rDXpg46tkzGi738J1CeILVG6UCs3JFSEGGjSwziT1Zkxj4EZrc90g9tQGtLtDFQ6Kj892erEoDA8KQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000032","name":"nepumne2r000032","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9fa097fa-86bc-4796-8670-ad49fd04d1d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5cdfc432-3eee-4ea0-8c55-502cd1e3e37b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA29iuRChK+Ap9U9uCXdis5MnWIZNa9kfCMFcdW9FPjiw6Ten/QnZ7cfbh+rGtq4GI/7wnNNThtxSPbcYKFjWsEyqJgP74lSvUQOZoyxlxcV3BSu4SaEjwKim1fFrRNXWC9mSvRJmWMM7cO8J6gxcNBNvb0Zu4FkSWXlx8O1QkaPm9dL7V8SlWlsr/J0/3OkBWPj11QDURkzMKF49To+yHtxJEHBNrLAV79KYn7qTVk5/k4s0KbC/6Eb999ZsAk26xQHL/i/sPDQnakjyvqnEzL2fbH6/2vjlVO5PDUi2pkTmwzAbG7NO5b7kbP60qYSf4uF0MqDrcc52FwxAKp0jdvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000K","name":"ukspumuks00000K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6f51ad86-aed6-490a-a762-b43e8df69e85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6c11d7cf-730a-42a9-8f78-d0ff8c396cb3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzXPoNsrK26Db0cz5c5MTtBcD3hZFAnhES5fywRkjKqXYfXEtFyGJBn3xr2ke4OvbgunAFjXXCrKrYEFYs+u5ESwoX1hv5Z1xN5zysfoD6CuTrwA63ZrB1jL0wyO1INgrF/gXaATIEy9AKUO0lbNIMuJeo5rRyASoJPPmN80ORdxkBCD3hlO/JtY1wKh89LwxJmKU/0XMR+p5PmB8yNBO2CF5/b96nI1G9l7Fn9Z6QjGuMrquRhesdlr9fNjK5s6e23++elVQhLIuuYnOJM3v7N0gDCazH0pAqhP4u1PWrHqXjAFwxmNNUO5mn7Xa4kL1bRwcszUV+WvV2qEZrzv5NQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002U","name":"wepumwe2r00002U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"41984060-4abf-4c44-94b6-ca7c17ae2a10","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"faa1b5d0-b232-49f7-a076-9330f210d81e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy8FCcWrdwt/aJtj+T0w/QqILs9+iicjnNxd/qlQgXBleyhgH80/zLlE08IZyK8Yi/QfguQSNdqEFtAMQRWRz0D+9GL5MFYS8i/LKNrXkS2FBKIBYkkQPmKnz81p1Ae1WhylDYaIH8/Ws7SgGX0FX3YH3a3WjVaun0CgKzuEsmdwyrqgOioEWZPoL0i4MWfCm25REyH4Mk8nwIc2GFFABbrNQGCPWTPTyhcIw3tlAD6LCRPU6NA89mdpfAk8JMsaJUErgIXkMfVRyfuCzbN4vIOPjTnVjW0VAsrXn9OCohpiuT8/1YvfGH2DilibxMxREYMi1i6vAQugKh3ZvIKFekQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000010","name":"wepumwe2r000010","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"eb4a3b0c-9a6d-403e-8c80-be69374ab330","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"2c0993e8-6c58-4108-89bc-89cf5af4bcec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr+Uxbg2aWrcrxC25jQL2lvz1NKdHO4aUuODtYZPV7Ye2vHetOq/kDWA21wjEYji39ctbYD8QchggMquo/Ik7SpmqpSJ9eblBZZ1XUzcNWdV15AKsHAf3ajxU0G9lfPxwHDoeImfsI82NuZXMhFinOVjrsJQ+/CeoNouCjeCcOr6GLvNIJvEq9sHtIl+w21epa1WoUDNgGio2OPg59eXjW9/GM5D0T+7XYYVKxx8UeoS8HDcx++WsumgDOsGQm9NPbBrYEZn3feDyVFwxEFjSRSgBqRfkSKGNKVZx1NVrsLPszOO3IypzlQa9OkisSLnkdOrPF0Ri77P/3nUFQlQnBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002T","name":"nepumne2r00002T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4d7a73d7-dba7-4d86-98fe-88cce8bd2427","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5f30e2b5-fcd4-4d56-ab2b-5961bcf584a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv+nsNv/qUVysvvAdalF3YeyauhaWbrORvMfCoszUHskOaVZXcScVvMl1e1xzw6dr6RUc1YZACPilNRJmPo5Eda9BUHIGQI0Ipt6cjPL+/TrA9x9ij7A5Fb89JeU2kADHJNSYszhe9mCOILYep3sj0SANodY1iGgusf0jIH2SgW8ZSvY+ucdUaw4pUKOyyQnSYzPmO6Ox/FtqEEUMHifaFcuKys5j8BSwsRaGLNuNv3qXyVTEibdmnuwtnRZR4qtCkreYryv8KbDos1ZsGF6vdAGwem/Qy/7on9IGkcU+CdCg2jiRNxro5B7pPRgvlgNJ5NJtoFWOI0hMgtmf9Ect8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001C","name":"ukspumuks00001C","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fd23b70f-23a4-41df-b27f-da58542504eb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c8e3cb09-8bb6-4782-ba77-7082e657b775","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAycwYqhGLthu8YGtquZ4zFFCXmpj4eF5Jn2OCrv0fmaoLrf6defs2kOcvaGdKPKBdITyJM3jzgYHB/X284zlnzbqsRIR8irU6atAcCAu8eYcNkdapt0gVkSWkh3dPsztsrIZZdtsLByiGo01V5UY2qky1Vb6s7NwFbacvfX9Xy961kzE7ymNYuY9BMQJBGzzePqGPZGV7i10LcYVdRzOXm7KjNldH+AUNKRQqCkCnEeFrij2WqjKZrqMHYoOOqPPT8IYHlxFP6ZMkCusNP+y0R7WxAfki4wr3BbXzNmJCoe0/adqJLOYgMdo7XoZwl1HJ6k+hVQf/JbiQ/tVCM6SUjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002M","name":"nepumne2r00002M","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"baf1fa2b-a7ec-4cf8-9e86-839f9798f639","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c30381fc-cbff-482f-8a4b-15ecd85e3f1c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9w77wa/OiTo7E3Jp5QkZTypPFaQL2vXT+PD2Ap25gqgNhEXZrw6W7CpMovqJwh10N14Fy9E74iV6TxjjUTRSdkCKjzqhX9ZfV2aew/aIoZ/uy7sLLJrS4tC2hVU6gLVboE3CJbn5OZ0KOa+3SyjgB3yKw8Zg20SAJgp/y/2QZ1Us1e+ksFz7QwzYNIKXSjJcDY0xJq82WmIFKwFtIW60BCx+ogH7NsjJ786TNqrytxOtWABAIkdU2LkCCOlWdJ6qJTEgEStmtGcFOr7pkeaf3qkrzDa8hpcFKBqzrn8D6NVRse9c0xjHVFpWmhONcEL5dLeSRBngw2ZG8f4kaGMRIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000029","name":"ukspumuks000029","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e7e1f52d-1be1-4c3f-8d2c-9a6c4597f8fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"06ec0c9f-f3bf-4b82-ba9e-bc8ce3b34cf7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzXiPORJB5qI4wJ7jeIAfphUwCiY71AxEU9ff1dk0geiwg8ira4NQlg8dVQLAOpaeuM4cLlY2nTYj72dppYwOsBpmTNLcOxZGhh+lrpN94qFLQj7ntEml/VJ6Uc8t57g5K1Jt6PGvzu4iMrF36Y4dNogdfaDQUdDbyveVMfavczKV2OQ0QWSdrneA3aB6iR0sXt8Vhlqk05KLWexfZs3JQ8/mLJPPX0s6TynDSMrDXZvyL54DzIAGOMDdVAJA+PFPdr/PdINzs+gtG70rdso6AIIGNblKDi/6iSg1OCQMyj/uWFjxGelq/m9Z8NsH+Z8Cns5U7TeLZPyJQ6fr5wv6EwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002L","name":"nepumne2r00002L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9da63a2f-65db-40be-8183-53bee7d82d9c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"9915298d-ed81-44f6-8588-8ee70d52c983","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtvUaCQ9FHHJztBhBoXQabA5U9Ww8HhxrWLHYJDDy/K5rLZ9ZE67eRIt3OsITTKuYSNuvuJjMJysfE2f6U1EpsF7x4RVdgZFoMuEOngzGsJb8YthBM/byxHesoqaOg3OM14Mk51MA9IcTQWjpvwLqwXwm3TEZehrDAks/2Xm1xH4jMN4fdrhTW6QziRS/dJuuWZKfep5tsKoL4V0zB0xsbU3NU6zDcGeWZRqMoXQW/aJYyWLP1uwulGve3P3P8GxUp/LXQ+rESo6BTjItznXNDZplnxNKVHSnWIMhaj+vUKYKOxMTolCcYHxD9oC4EUW2ELXMgkwStCjE3a5bPull1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001J","name":"nepumne2r00001J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3829ce93-0895-4970-bfd7-55ede4052d38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"38637e29-02ad-4ab9-8a3c-23f0a1b3ba14","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAurZHdD8lGhnefmsARs3JD04B3YXSYHS/HVUDRHJzITk8SH7eom2ZuNVSrV525q6VIDCG6cxVnXFYSHRYm3KrleSfUNLmSagjs6W4HUO29P74CuTE511B8p6nTJDwSbdFuQ3HlHh6RiMNSG5tX6erUZ64THvc4D5vTnIcfToy5G6Trj9JqQkc3OaXBA8I/7Ss71pLeYPWBS+CHZdmUWL1BGrlxNOEyrN71JZmlR5FdkWjQiKPQN9fDaHi/jkOyxjZiJ0xbGAAcRqSjp41XGgR8xZCu9x9lV7HXhFv+eS+QbBrnW39ZEzFwMQZj47I0zUIy3bvt6J+hAkf58sQ+KCEmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000008","name":"wepumwe2r000008","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ce46bf08-ece6-45c6-bcfb-05cd1116b9e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"779baeca-c240-4b88-9481-ceae20864a8f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmZGujIPJdnPQw0d72ibDpe2CvV1T04lP44HXKE5EVWjgqwspRYzoPIiX5qx/QO2hJaw57vphUjEAyEnkU9L3A1xwQRN8Uan9r8qrHaoz7/QgANOycghXU4lMQRHimge/nZj8Cy9Y2neRX8Qb7hr3fKk7iL73nYlhc0sbPpPQt7TtxxFIWR+FkjNu/IojWMk50dvyKE95+dUx0FmQh3g1myemShANXDcDpgWu0a1sNfWVGvK5re3dm8wUXj2SInrIZ4KMk1l3fd4ply/BoFDFGJ7OXXFw1PMtA1BosN0A1n1V1CqVZg6yEDNJ3oaeSCfXRMkgiXBtCJQd1zXVJVm4FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001V","name":"ukspumuks00001V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"94928af6-7d88-4e37-9544-a8464156d22f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"137ca9fc-0dfc-4ba7-810c-b56ea34c7174","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuZjCLYrwdYMDz4LL72XLxyJxLqRvBha7MmDPOWM+qwMMWniZGwu9O+bIdNqtSVzU1/cbaRREg6u+nbsHHQsql2+tBM3VhQLsRC9OgOYWOWjjkLsEocRnpbIFv4YEl1kbyJlMwRb3l+zSdz0o+a2r/tUXsYfsCMUWI1M5qtct+9EHOyXJCWbOrQ5ABLVfINiqGhQ7Cm8xZDnpw588c0+uOEmdXbkLdTboWhf7LnTx3U25nAp1msClsy+aRbNpq3wR3Yxt574JARePqg4CigXFEok7TnwLFpiKB14SDVchbbJ0uCMXOor7nmEPgfu6dDwKpTXQpITIbfz3WT2gUR+10wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000002","name":"ukspumuks000002","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d758e547-de22-44e5-b3da-4a68a9233f01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3bef0a80-e574-4bca-ba8f-c63de479db0d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA103UvDgVtTUOZCDwqGi36uST8T810di1BCGLY7u+jeAK7t9qeV2U1bDTywg/PtClgsQOgTTUFR4puo2vCu0XTddsvDW2Pt0NNwp45YSwGyDVV98V7zggkpmjdPSstK6Y6LCZ5aWvHBlRI84jDejKSLgjmVwDIZ5KqUImE2Ngg3zliUsZbAUylYLnP+/UfwrDHe/xN/yY6tpew5HwbLQ/QP/f13zxDUYU2m4V6LQHh7mmFLZU1x1ZUSTquenYOI5k9Rde2iuiIU95CUVqA0r6ihNmsbvPFZpzx0jcAquDm49Lyr2Ymuv498fF7zIR+ZawFnjhX/NXMyjJ2Iq4q5k0VQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00003B","name":"nepumne2r00003B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"098d084f-a700-40eb-b74c-20a9c762b6c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"629bff89-d90d-48db-8a5f-23272e0cfc93","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9DA998S6jnnytPh24t0sm79JNlZHDTb3bsjLBw3W/wx3LVO8w4cr83smNmB4wjrd+KpFFMJoVl9sb5yc4CR3ZkJ2w4chR9WVPdU0I/1E4Hl1RPMzS581+SKP1vNKCT9+fGfGcqq7BRB0OViWAg8x4Wj7bp8cNUTfkClo27OY4CoZis+Muw+qUrLw2T3MOv8dSRmsI6wtu+upedsXDLdxzsGb6LvXJk8cG0BVEU9z4hMqsXhXpakXiP6dmza36EHrPcx8gZ2MbXYvVHMkw3YiDRpmKfGyey8S6DSvCHKeXcmU9b/UbFNlnmWV6gYg5ywquUFdx8nNf5yVL6bwGl6CRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001I","name":"ukspumuks00001I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f4b3d191-6fce-4b69-9354-4ed3501737f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"7106b46e-b277-40af-94a0-0229983073da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsB8HMcm/6Jhjtsx89aqqdoM4pfzlLJL6uBZ3rk/31RaRYmGHKbAVlys0vkOSwpmM1pX25Aej5ZTeyBQzo9mZ3y3H1w2aZJoX80ufH4cRiYvVHXxRCMeo2SqGhnJuYyVamO0oY/JMCPkb4nEUEcGzk9lPRTjmBmeOZDNFLF4dzJh35zTFXJtG324VTEVi1pf3X6rG4+KNf+E7Ev2VT1xNGrwS05TWzFP7JtOYUmRgnjTksDRc1typ2dIkUXSoI7NaLWmPRtoDTZHQfhyRv3uVT3GATfOglON4EWKlcrEKOnMZy9Zh1a0Ja+2hTr5xabEUCAf3k8ntQekMsjofTknu2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00003A","name":"nepumne2r00003A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8f0ab7bb-f7a1-47dd-a195-13bcfee13b8f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"afbc2666-cec9-4411-abc0-9203cc42f5d2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt2gm001ODw0+5wAUwxpvE+XLggehOQ7Ugd3o+cS0+MlZ+yuTLoZpGQgZz4gYAdhZChWAoD+bFI2WH7aPhaOEYJtBzv590VV/epi385ubZ6HbyPO3mhvZe948mPcHXK1RQHk6LP2pmEW2d9Ofz8ESHRB4lqJkmojM8HspuD9fxlid7Z34IHEvujVrkElQRO0XyOSXtc10gD4X8oOWDT6JoMrHmvUl/rtM6POS4g0k/T2w+tZBQc/ZJfyi0nyt5b2+yoJE0DZPuttRSMgWfsMYh5znrI/1vZ4fxACbxsXwTpFkbQkVcT/sxtYlFwhvbaV9wfYB8iDHeLnNFO3OZ0if/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000026","name":"wepumwe2r000026","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8ee266ee-941b-4c03-9e37-c3e17b05160c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a2b266d2-2886-454f-9cba-c92df82de42a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvovvYjacX1lFhtOkhTj7oUYjlhWSdhlf12ad52GGwvyJiA7XkZ2GPJsf61D+SnjQYwGVGj4OQyQ0e/5xMYBu/u7yJ998utRkt8sNKWj12W2k/PozP1lMWXYdX5OYFxT7gOmUijNUk1XjwXE6eOZgs+yrmYDDxLXy3/wEX37n9KWX4Ty5LilPOYdi1NF+FqGX5McUr4rIu2iMgw4+EbK4anjqiwo3xfmpX+NBizxfAfCKny0djTEAhqFk22S7cPoMwFuRliEavuWl8dlIF8IUTxETa7EmFF3GPQ3Xl2aXGw3zczhjzdAv8KRkMiKKpoxdW1FN7BIwzqBEAB0guuCupwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002G","name":"ukspumuks00002G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2219b28a-f9e3-44f1-ad0b-193274c411ff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f01a09a3-d4f0-4f9a-90ab-a140cede0cc9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxE08wCUoA+kdVveaqmhnoBA6SCglpTifkbgp8+5upimbx0tHp7x+maQ6TzQeheP50ds2BtpCX41gsuExq794ZU1cyXgcaCaDUfRkmDTpqrR1wI4KA5e5ikKhrvdgCE0mNqnlsksegbjBkiDoAYtgtrOXHZyWK7GW6tXXzTWcvkglnJT2c2HL2qhGAXUd/mmCy9u0zKgslUZzmewxTZPpsIzJH8o39T/Dt74OMFmW6qrMzsOaCo1oazsX/po9cKr48m/OSQiSXONxnuWyU+t5/leoVSzFq6kp78MNHYNzvXwAB/wsGKAbtRLwHS2qXZ8w+3ViXCBDcXmNTLFrdvbAiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000020","name":"nepumne2r000020","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"63eaa2b6-58a3-41eb-b606-4b6abea0a118","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0ec9fa97-0d8c-4f9b-a34f-53a8574f95b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuIY5rS7mxoEQnQnPWCrC+QcxWDipmP1Bhe1ypJq3Z1nLed09f9C+SCO6AFyVTBijLze/jKthwvdsGOqs3wqiiHJMh3pw2oh0IDXf7t5wOsk0S0uxFZj1MUS+In7YOS9EW5kqFOKtzkgYLQjSDapKzaO/BLEtzOh8xedFV8JyXn/p0ic9sW16ZfYk1yKUAqzIFMa/WXafr5f5ixGrJ1wLwXjlTyLNxsc2zn6tJa65jSniL+Nmpxm7PAAh0uUl+TWi2ElKpCUDJObirbMg8g7G/AjSBqVyK1W8rpLjXftXIY4ebf9HaZkPM/qLz2g+IuVVbEiGtzvARr5BCmpaQtb6YwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000005","name":"wepumwe2r000005","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"51ff20bb-e99d-466c-9032-bf043bce8d31","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0bc73e3a-fbef-4805-9373-da676e1130e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzfc++/Q2oO9BIMjjtXbLOYAugfkO5zzGvfDvrzfweZjOaYKinkFeZ0xHGTYKzYUNg7lTXvBBcp10fB155cl0Vmb2GAdW+bHKEqukuAy4YUzTq66nHX2N8C3Jft1dgY5pfBSYEfk4YXOZM5o9Y2W79USj+0jTKIGETjlD029kLhyNxKBd3f/+xhE+vQ9pSU3a70e9O8MPcBw4RhcO1NDyxTKWzDzbjxc27NtBBuZKtXQe1/J6bVI+J05z4JBkmz7omWlVZHu/FzXHZLQH79lIZ2wrCM9spvSnZ8FfzE/MhzqiIkV+6WEcitawLLmdE7Wr62J+wJh68wnRxMVEnp6ggQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000019","name":"ukspumuks000019","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6fcedb9b-ea1f-4b13-86dc-0cd66f6a8638","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b1553815-41b1-4f1e-9c0f-6ff797253f5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxQqYJBCl1csZ/2h1RbgwnhSzeVe1S4NBtxWNK4RFH6nf+SfaXSUgR5kFuk/HiqbS1WeBnu1nMSAJE513gVIN467oOc2eSCcsJMDt/6qHDW7z8FxjA60/VD2SmmB5drAOMxk1Ha2KQvcREgAZFMYoUcVY/k3/o/KlbHIE64aayhgTnZFeuHc1FDlGJOwglXSgMMGRx44XOFRRd2r01Jojw4BqrHI9YahtbMYyEpoK6IfqJ+1mu/U3PLcUkW7C8qNFoz0WUHuKyMOwibXAIzz1S9AOjH0pUduDzcrGGRaFNBBJv7PWOvnJOI9oYnRYOmLg/Few+neqLVMfHvNAEM+FwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00003B","name":"wepumwe2r00003B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1631872e-05de-4965-879e-663c54b26a48","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c14a0ed9-1ec8-4472-8c24-663073084cde","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyWyaACrD9teocDhzcdAk/n2fhT+rburVsxELaUOGN+E56m+N0slYHpt3DBtZ0u0p8akutfS46qmHgA1jbmp6joR5PhGKk5ZJv96FicfP9FXCv51/UkyskhnD1/vos1oCXnseDc0ub1+ueu0tonymQ60jRHNMYKTnADvt37oWuwdsVgO4hSdc8WLwTrtDpsb5TJUTJWL3rR9l8d3JJ+AHKPss+VLt1/YCJh81GIiurTHmpMv2OEQQkFlvz0B1vHDHUtkrAYTmTWc8rAB+meuO8Pmv1Ou37ft7juVPVOBneb8KXCUUJPFR/RGsdp6gyYMAFIpLFaZ4Bd6oDhMq9nLNDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000C","name":"ukspumuks00000C","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f730556e-252f-44fc-b535-791248fb3487","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a2a21340-e66a-47d0-801e-751287655865","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAspoN9Jsd07MasuRVTlTbP+bWrtfc96UaDgBqJGMddF1NDT85om/s9b7aT6fQXfIxTL/E+EUpbnF8PjKSjexvgorGZrphM579IAdYNGuPHbnqVM8hOxUI+SYd6HWrhTIuEI07zST7dX+b882QScfpgL317vwChm4u3EUBbyrt1DnW/BjzCPnvuRUvCDEoD7lubRFbeS2vmY3ERO5WYs3siJRU8t0yShnikmXFOaOMhMTUsjwwu3ptJ8QLLCUJCeOVKqDI99IcFS5pTT4JfkTJcJRdVxlZLneQVQJs+0OEeiwKNACQV2VwTBKMLFOIdO0k2DuuBRwHNyj5ekrbRc4DSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000030","name":"ukspumuks000030","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"055aafc0-5bc5-493c-b6b8-6d4eadbdec7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"686a8e43-9538-4690-9791-282ba3961267","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwMyAaBFO5DBM4EbHtczJ/RWyW9Xhi3Z+0O7FT0UEGERUutD1VikQd86kPpS/HHYY9TPFCxPUALm3j4zTaTF6Yl7mYbAFiNERQP5Z03xq9vXTj6rhcEUQ/jAvU8FpsRVt4eM92iGkmo0iMYfLpR/ZVOxPqxYB0AGnKpLmR6MzPSzIEcoUqK4AzTQFWWyZdKJlCIZ6EjRNG97vCfA99Iw5SizP1+bD8JPOpO7DDzl3pPWKDdwYiFajQb0NLyiBLUZLEgeSvs3cJWXYFwQIcE7g5Tn3Q9elQcOkpGMtdqmBsj7yHOcwOukyC5U6pKDsXyuF7hO3T1vEpzmF09kX7NKdkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001J","name":"wepumwe2r00001J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b5c711fe-f42f-4a30-842a-ad12477ba8c3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"df171918-8ec8-4db4-8791-1a84244ba9cc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtT+YP8+Yo22OMD5DqbstrdKzhpA4zBgVlB6KcZ8hFp7G5Gr3dikLShOZOp7x70AOY7pG6c3d86Mqz5BuHD4N9nlMBoz3IMqB6tuvbGkzN1b89762wZvS3JTKJrww33oYXJl4VB7GSGwdzYLYd7F42Pm8bKgV75KAkYqgsAB6d9tjz+opgSYooZSuFUY+sEEPhS51jnR+QOj09PyzjQpMUsdTNyvrY/ose1RcF/IBiUlsB5xbpPzq7aL/b0psSgi60W2Z964Ad4keti1bZ9/RgWvsVRSzAOX2nFHMRk/wfdCJWZhwlIUoZcFOohSJSCV2YuHdTHKXf+Twm5vgoM/AFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001F","name":"nepumne2r00001F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"831010c1-c896-463d-be23-8cd81d550735","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c1bd6055-d358-4715-891a-f5426ae8d9d2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuqA5gUKZvnx4vSV/0M5LShXFk2cCTQw7+KdspBQUcHRqxhT0QRWP6npD+ON6Agq0/ALw7poWuGffBpj9cSfefdrkyyDt193q3g9lgL36XKp0mxSLHA3493BKWuVhV2lfPvsL3ghYdFcLAKd32rguFLwy7FE0LzHeAt21aR3pkGuTJOxxtDiqW0cjT/aG9rGp5PlbjPHLmNCtCM6qYxc6RZcm5AUCt1QejuQCJgU6yhrwPw6WHOfmaEFTKmkvUhkAwBS9PGuepsjCJG+Hz66OUmDWvPzqMh4KcTtdVRNzNWKzSA9Alh8wqV5tWbIiG6SD4fW5KUyz679dH4AcftQzNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002L","name":"ukspumuks00002L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"56b110c1-add7-443e-b86c-2d91a235ccaa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"19771f46-2dca-42c0-8ad2-7c217d7a6832","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8ddJ4R/uAb+61l5O+eqheyz14/LTjF2DxovU5YXcEzNlQfgiuB3S5LTi9J/Y3VRvBRojDvA4pyg59G0oFr03lA6g6qYCEXn5jXjc4h9nQb+toc5JZWzH80uytmVGaKXuQHZIRbsbkQ9e+f/qfLLpgySmcv55nDDd3mC07KR7YaAnjXoTUF+jHHC7DrthyXex8HuSZnbE3ZFaRgpwij7QIoY/ANZw6xGi5N33WKSq7qM0V4gGAbi8fQ669aKQFmIGLQyljw6bIwfvmifK8bWoAso39AIx3M5i5eqVYodqLwV4MX2lIcTllgTfrZinHLzNYUcd/RQszsxYiHTiin1yYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig000034","name":"pumnunsig000034","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"12c9d773-e3da-471d-b468-60be7e1b7493","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"63f8a742-9867-4715-8360-4883dc2a75f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzm31Dqmm8a5+VpAr0b0ay9JlZJzoCBmf2cFMVmXnhxm6tK2/ODrkhcUQsL2kpbuw7UGRg0MlhrHB+tQEPOY7HCAsOWntwV+ehMcsod5S+N9BFgZlOedOpfBchXG/Ir2Fek7W53mdhHRnGxbw+H3HJdXKOVLmfXRzgE5EjzBT+liyegehSleCafoMc7BajAfSOD6jL4CyZ3p/c0bCP69GEjbEghW6AR1qFC2vQjHqIygkum4VSTuux0PL3RLwrmZm/fcH+bAgvfr6frwRS+yYgZUPemq5Ab5MHQEQSoMsFJgCXg6myOo8qRMObdXFwFpodlrPJAOD1hpa9VsXrbLXMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001J","name":"pumnamuns00001J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b6da6da3-74b5-442f-a9d8-283ad2eaa6dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001J","machineFqdn":"pumnamuns00001J","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001J"},"vmId":"acad2636-4160-4b9a-b282-c2781ad4374d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1pbci73p4520EXdxi1G5+KFr5rJo1QqKZpW+6r+B5JTbv5zBIbuatI2zBZ0CxiM+3hxDDIvnrW+1ELhAEbkY7hR2wA9vCqnwn2kFJOiFX+wRzw+HkPJ2TF+Lo9KggvA1Xahkr/gjLIAZtX9npa47m0jTB3PwiA9FGEyUKdWeuIwY51I+wxyiwEfQVpaAz3dXTxdt1ffK4y7N0/x8pOzCEg0H9vwsUCPkFhgCgBaqfHe50hNMT+zmYSnnw1A093eY48EPwG7IGvRmoKwxFCVCb2aVbHuVljMHvsdusIU3+CVVI4vXybPL1xTtV4j03SisBbkYllOyqDrWeixE0qZTCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003E","name":"pumnamuns00003E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"68ee37ea-1829-4c9c-9be1-6613ca19116a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003E","machineFqdn":"pumnamuns00003E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003E"},"vmId":"512b2c37-cba4-4993-a77a-290560efccb6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsv1IuN8hByx2YrifACNozj5yEWRZSs0zrpADUobwD2BjbhlQZ7F16iXbyyn0YEJtjEFe/U2r9elaCSKgOWxfOcKqNDA/bxo8jYHW9tsth6U+bJzVtwDvR6ySlbsfLMSPUK0pCOIfwDE8BiNKI9QystmzPTVBNCS8bAuoPlhe9Vo8DxJhkRt3YMJEc8NSEyRKxsSzjqWILYCHv4WTaiw9cV9DhpXAmr6T2j/kxEboqmCtflnp/3sf3s+8hLHZrbb5nNWhbvodPrYP0EXx+M8oaPI3yQ3y+P11dusbXFrCmS1qYbXRyRZ3FSVguUBba5riPdY3FXFWRSJODqmuEcej6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002V","name":"pumnamuns00002V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2388b05e-48e1-4218-973b-2e7625af7dc6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002V","machineFqdn":"pumnamuns00002V","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002V"},"vmId":"50fa1dad-0a5b-4391-830a-8bafe4e51c3f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ztsPelxssBD+aV9zm6ie9ITlprzSB33mZSZQ540OCLvMEaCKERDK11ul8jGQzMMbFqX4xFEL7wFt4/hFUOFTpnjMRxBEVayrUmAc2nHtcQRxeW24+x9YhGLGFry12hY85+ogWvW/GTEjgzyFPxk2Ch6MXI64Qlfxwi8OATHNjOFHWLkxqsDAz21VJN4+SyB6ze6bgGUzJwx34hm4/oTB6qt2EmYYK4FX3df077WBV8lSsnhUv+C/vRdnLsqGfRII+XMoBZ58qtL43XU1oHl2WEp++197k6vEfwQrjMLPPfsoZzTun6SkjBVQQ8ZIIAl1qqI6qVGdiUy0pLGSjud+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003M","name":"pumnamuns00003M","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a99fa507-5f05-48ea-bb60-5c7bf0009102","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003M","machineFqdn":"pumnamuns00003M","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003M"},"vmId":"2ad67f25-1f05-4b2b-9dd8-0bf0c9c32245","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwko9BKikQ8wymiqtgTJsIvohjnZbwIdYHNCh8GQN+M/ecRHehxTyYc95isgzch7tsNpV/E27POOZRHqGI8hFQPhP4qeiezcASfWabrB4cJsQGGFXm+UTAtaY5NQRLczIQ8heNPYYiF/UIindbqX57YNu1MpeSi2mxEas4kC6h8yESCoSLqgG/7sko+OqP/27+vHMPsYU7eCRQxxJT8TuGbrY/VHUvQDIilNUma8doaBIfkRh04I3RzkhLJpNMcmjNoZUkTP/myxLM0iJtW7FKZu5piR11RoK8dgTg6VsErQEnGd9QkN/33IGknPYXZfETZ2qzgXqrPYV/ABVW70WZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000011","name":"pumnamuns000011","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"62997037-6d85-4bf3-a628-8d8fafe4f50d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000011","machineFqdn":"pumnamuns000011","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000011"},"vmId":"f6acd49a-1a50-4ab6-954b-144790834c49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqDDxUViaWfmT2uf/1/RmDDqbivQByD/ApuX7YTnxn3HsiVcjyskBkpq5wyhlwtwaskE55sFuQW4erQwAnx3URhAkJVfnSNYC3Tuu4VIUhT/VC6lzdbNoI1CJyPj4C2KqaXdcZirSv0L6fx8KxmaiqexCqQkLlt9gKbxcm/Ru5AzF6zZWx4U6slSjH+qLZQObXi0FgxnC/Z6t58Ju5LBVFx3Vj/Gz6xY1WkoyDZVSaBvjWVOvvoIw/MW2FuXyE5ivbsfCUiNUe0RpvhWIiRbFC9GehVVWvgVORjrzl2L0bsSJdlInhnuotl0vNTvHrOjcaCjwVU4cv4AXbwRmQrMS9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002H","name":"pumnamuns00002H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ed78f85d-5adb-41c2-8c05-732bcedf14e3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002H","machineFqdn":"pumnamuns00002H","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002H"},"vmId":"0a411825-76ea-4ee2-bf55-f007405673ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2knmR5mMfpMnNS4iSjGv2S6nmRar4vULXfz899Q88WdGe8dtan1i3VQBmOL1jvYYcusYLKq1yHmJ5sJ2NA6vxAmq4rw11a9wNPRkD5Su0A1uqi5g0OKCShqEecRoCLtVabgQ57NRFeeWYfo9egYQ1PqPxNbXEHYrurOn5wPJRSCjOGidD3plratf1vqLwfCja0B8vvnZJEfnXp+8zWYIeQ9o0icv1VchT+N45cEIEieEhHIogNhNDI85UJcvEmz60BVISIlLnNyP11mKS9FPsL2KIlIplz2a3Ju4OeIRC04Yeoe/gSq4RUy49174gHEXZYHF19AvQsYhfITuKzeRnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000019","name":"pumnamuns000019","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"06278809-ae8d-4870-b800-9596accd746e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000019","machineFqdn":"pumnamuns000019","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000019"},"vmId":"e4634669-3e67-4175-ad70-972d4c925147","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Lw0EGlZSIqi7j5in/FQBBy5e5anisXaiwweePvXg8Aq3zRjOoTy3EvBv2QhO6i2fQAXW/XrKjU/ZqOSiqUFGMgxP2pyxCoIVj+mHVc66PJlbnB77XVUHEZka+WJ27tL/p/S2tEseKRY9KVHgJRBV65e31EmByZNXyOgJK+5ezj61fqgFqPpD1sYzZ/7qTZk5Bgvxki6L/tl1DgM5nlGaas7VSM+tSgWOrtCOQb7yf9/MItYxlKYZ5F09i9Rmx+ZF5IIyS5T++eJYoHJ9KFoFM0Jc52niAHwqJDB2F7sE/lIo3d6/hi1swXOEu90I5I8Fgrj/6jYz5Tj7tlmtvqYyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000033","name":"pumnamuns000033","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9246a27a-5994-4682-bb3b-6cefb383723f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000033","machineFqdn":"pumnamuns000033","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000033"},"vmId":"6e613f30-7122-4185-a487-eb122d8933d8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwlXCumkX3YsOo0G9a7nDwgZiTQ/lqqDEEwZvX2jKAEN67feIABEL6SB0xI5ycF5RAmrAN/2nZY0HPrh3khgNmm4FCZcjsz81G6vGUfZr4vRQrpvpS1UpHeN2M945WsO346I7g4QpH97Q+CZmATQ1NJ5bZ1Khp4ugA9r4Zu290k/kjbQa9XfyPVGFvglr9Z4KaXjixbXx8afrgnfSMWLtGAtyqhDpUPjsDR6eyvCsGLzmQ8QRic3iTr/nNjbLv3mWYE/7jSMV/5GwUVhpPv4JDhJJU/By3iALWHI8FH62VLoaQu124Eu+x/tsGZgQF9RGinTGDWylB3oT5BDJK7vHUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001Z","name":"pumnamuns00001Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dfbe8b06-fc0c-4777-838b-70b944ad3fbb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001Z","machineFqdn":"pumnamuns00001Z","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001Z"},"vmId":"0f3ecfdb-6d01-4480-9e4f-cbe8d9066f5e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp+nL4KWQih9h1gkYl8nqYUUOctOs/R68QvEN7S0gBXRwArzNoEQLCyGxqboyKq/PmxIPtjcO28cJuUymtBS2QwHhx9IoOS1Hl3TaWvyJlz5798PVKedMyrrzVug758zBO87uOJYMMGZGuC5cHNOVqhENwfkve//ImqfL9Ied4PUa7c+iMf0nRfeEP+xLDln1dvyDz0YKhz1dIVRVsJKclUaoh7mjDUmP73tzNjoDlPg9fyg/s80svAMXe9rrjnsmfCptCvlXjIsO6NPEleWBxUEcn8CxXb/DcwdMPdN1RiLSEbkgBknmeQCEEsCKbPpwCoLp5HL8xxek5wmp0E7W8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000024","name":"pumnamuns000024","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7499a523-706a-4b08-9676-3a86d0595a44","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000024","machineFqdn":"pumnamuns000024","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000024"},"vmId":"0c9a1618-1d0a-4eea-9a85-bb862ebd971f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0goPETmlehOHdIQcsaUvwaw8qe49UHfEChxA+weDhlBC9sxUudDwvblKJoQ789frDnZ943FX+DrrCAZsOKyME+IQz3Es2FISXpIx4WI2CEfw9q0xYOXsMCVPHV6lVX5vH4uybKczumQjjiS/gvXmpjU/yBKAkrzIBc8+diW+3gCgZ0HGkhfx1wQAl87/BTnYtduJeOMI2nPN9oDl9cET6G0+XvfuSQU+Wgtc5VzM1zYAHXU1o38V+xbw0SsP0VOMwXG1Un327q1w1TTg0kngINwIpcvjI28O1V3SlI0amkmiNjblUT+cJv6yiYxBfJRbgd0z9QTsOpw0JDt1KNvQ/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002M","name":"pumnamuns00002M","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"16ccffec-69f0-45b1-aa73-7544af719d27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002M","machineFqdn":"pumnamuns00002M","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002M"},"vmId":"fece161b-b092-440a-91c7-6b8952864dd7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt5YZpTaT4rCPCgANmP3T3ggL0S1E+FSTaiTzm6CJE07LOjcuI/r+jPDDE2q6q+yqT3L9vCNRIUZPi4GP/wVkgOlc6K7RuapGZCGHewI5FYyZZBXc+HgTCpcCcvaUdkHa9ezIIxuouosuWrHmGsdLKDhn3q9z4UlszaMrmCelRAp2z64Tha1+g8UnxiTaCNNtcRoGcOLaLtlY0EYHzVBS3zndK0jONCQwMj5I++TiNCHXBPf9vQIN5AUGekoqz0iY1G7vfvOBuU0A/B+eVBcPWnsFwkjQUdLAWNp+uMfSM0TCXBrkgHXsAdtsGtC79G2dU8XqjfuoBDl+CCsWIXDsawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003B","name":"pumnamuns00003B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a7db3c48-a47e-4ced-b756-6c97f026f805","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003B","machineFqdn":"pumnamuns00003B","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003B"},"vmId":"7727c89b-5746-4f57-9138-28afa0385dcb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5/O+iAdgxRWG48KtOLPbp3Q59Sb8NNFZxLMwuioKkTo+yHdstbhpHQMrainw8J2uNDP53jjuQt9T7CcsmEJTeeHOumq6N8uSdIFXBTHB1F5UqSfLC2own8EGTL6UTjwtXPwV8oQ939iMk88GPrc0mzEb0jt1H0++wJA71YZ8xqFFpGAfgj7ANQTQQosPdqsNDkopBJvcAF/fD6qMnNpEm9gqE0/eR8CDioWDGTRnqPo43LzU0Pfn6Z0f/Fj9FP9a0cc0GBoG/TrlrDt2IDQk4/hf/GGF8vLWnEfjqwcol9jB+IIEpdKu0Q+L89afwBIJtjUmQdJqDizZXh1D3YsRGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00001K","name":"pumnunsig00001K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8506fa1e-62e6-4ea8-9506-dd155b12f148","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"291566c7-5f57-4970-b07f-0f0000d800d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtUUwkhqI2ML8v0XgSlTcab3gU6FT/ELlJ+sxJ88cjz3Wo6/RcdB9hGrRM8Ubqx1o2c9bfhdJyOxP66o1F74Zg/nAZ3UrOIXTaIGPH0stvOFLdXQc+5Qb7KxbmChHgq3gGVmvRHsKcoEe1ep1IAUksJl68v4e1Vm/yD4oR2tDnvBzdxgytBpXz3rjX1HCGsj/yyAAm0NKHys6LJPmhM6OLmb8IDsHiK7fnpYVfjF54n2+zJPzRbzWSbARzpI81z1eS89Ow0WvYo/FxkBMs3b9uyuGLJIa9kgmD3fH7M4drMYV1zPsTeFuz/clHjYz6Cee2xiXr9/C4eFL5efvOpREkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpwesteuropenew/providers/Microsoft.HybridCompute/machines/winwesteurope_13","name":"winwesteurope_13","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3d4a481-ee71-4f82-b98c-7eeaf4ca8bd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26003","status":"Disconnected","lastStatusChange":"2019-09-25T20:07:43.9384623","errorDetails":[],"displayName":"DESKTOP-SEB7UE0","machineFqdn":"DESKTOP-SEB7UE0","osName":"windows","osVersion":"10.0.17763.737","osProfile":{"computerName":"DESKTOP-SEB7UE0"},"vmId":"56207ece-83cb-41ac-b26d-2a31e802e86c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1l778BpNNmiBc3/8ZZrx6tBSeEvw/4YVmon/gu1HuOg6EHwwRX8Kks53L2anBzGqbJkfmrWjeViCSs3wpRBrRl+3GulH9l3b7EOCWGQRY8WEoUbGLmPjSzTtuiVpWNtv6FFkfY/lW+RtlSoEhTgL2YXkZpjpBSjP9cJIAiMXuUEZQFW4ddhUGR/m4ZpMsaE+ZoyJ1M+bDr6uA0fK9+Rbd51cXPNNcBgPApmzlCgtttg4yRhLygyp9EIO6CbdCRp2tVQD5bVnV3cztPrLvN2C7LIsmz5S6cuzyNpWLRKo6gFVYVh4+fRTSEnOFa9nygn2xn5i1ftFBc9LlQpm5v4liQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/katie-hybrid2/providers/Microsoft.HybridCompute/machines/katie-hyb2","name":"katie-hyb2","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"7e2a212c-6870-46e8-a481-23712442108c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Connected","lastStatusChange":"2019-08-30T20:19:10.6151031Z","errorDetails":[],"displayName":"WIN-1ICTUBOJ5AD","machineFqdn":"WIN-1ICTUBOJ5AD","osName":"windows","osVersion":"10.0.17763.107","osProfile":{"computerName":"WIN-1ICTUBOJ5AD"},"vmId":"b87eb75d-4432-4c24-aa29-88826e90c44b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArkCpJE/uiN0ThxsakL7rwkA0kli0lm2T0RaclKg/vVerV49WstzhcPXexoUjgK8QCfY0CU1s88ckeX0fD/DUDobu7ePNOueqz5T/adgIJq6hqgGZYbWSu69811AXfqQKhABXCiY2e63LoPqy06fxbk0DCKNU36AqSgguntStKN6EzVas/wqvXv1oJpc4/zZMD/X+jFbC06LO5cjMZDGGL/X6fIFNzdPJxnHFS8dMTQHWMnJp+5ePzsVxBtaDvHaLtmdLLaylMHYtUr+HYMtwW8ISo3+ThdFSDlrz4wr3FqKg/YTkUHNLxbCQNSurD30ohxdMt3KXqWkgdiC4mtVIhQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/aashishDeleteHybridVM","name":"aashishDeleteHybridVM","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"6ebe098c-7ec8-40e0-969e-e4bd8f1fc2ed","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d78abda9-d38c-489a-b631-9a6e532c9c35","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv4tJAcFzzTeKzLPD+UDO0Dq+JS0o2F9zijq/dXWaK8BLBf6ReVaQXB+wyJetn0UZ2thzg+C1IdequuhYu8Cur7QgCDMBdwUaFStGLUn3ZFKM2AyyO6KAjaM8m04OCrBJcBxaJS2jUgI7LwJxuZiMroxNn955B8pdkl/DBDwOmPJOT98GPJlw9uLwQCvYWvTYyOnsOIcOoLsgZsY0Ma0Sf15X8JAjNQ64Gwr+9OkFxJ4+9COOTuFvZQMcXk3YNqMoM1Hi7EbMzwQXwdUcZn8KkACBDm5rUWBTuA/TXgOx86ekxpt1BOsIfqKxWBVeoDeDTz43azu0Fwmx/eKQ791w8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/aashishDeleteHybridVM2","name":"aashishDeleteHybridVM2","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"e5fa8296-8fb0-4469-95ef-1bf22971a8cd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"57de55bc-f1f1-47dc-b585-f966eb477e20","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwohyHvymqTIbVO1uJDIM0dNob6rvrlt37AIY2JmUX6HUHpuDvC5VqJFdiDTkxH5UFU7NJFM8MV3fOlgdS/JycBsMnK9P3fsQylw1tdZdkMRyOrguVK9y4yt3fVeGMJS5FSjThE3ZK/dWIQBpq4T6DVWrTeuV97LK9y1ieAtXXx1qHJ3s026xH6AGUGrl9XWQoE8Kg+RT2YDd44sBOUwxbdgg7egn4imINLX11UZ+kGXG114DZ9KQLVKtVxsBDOu7RySV727CS8JkMMUeZgufEnPiVxgxRfesKAY59zI7jl+fW599QwySjH5Sn4SkfeQOrAP2dWr+fAXvYvPpiCZIxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/katie-hybrid2/providers/Microsoft.HybridCompute/machines/katie-hyb3","name":"katie-hyb3","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"8b626ac1-fd82-476c-ac09-74324db3e020","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.27003","status":"Connected","lastStatusChange":"2019-10-29T19:51:43.5573388Z","errorDetails":[],"displayName":"katie-hybrid3","machineFqdn":"katie-hybrid3","osName":"linux","osVersion":"4.8.0-36-generic","osProfile":{"computerName":"katie-hybrid3"},"vmId":"d7c406c8-78eb-46e6-8d15-920d69bb53c0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu8VVr2o7Yli/9NCRBtdg8Jv8K+YqL9tGEhaxgWMpag9zF75CvJSvS40xriH/FQ7IL0O269waDbMimuT82K1WFjUjDOFBRD7DUlF9zuLk5QSviZ6IWFE1VYA3Rxt6qHf0qymBvnSEU53P+kKeFPASGwAgeg5GH83xVgqTA1GHuLiVPTsL2d8bjynN8AXhwBCho+FjlqeRw9EddFx0DBoXgZ3qa0aNBTeUYofM4labcJ501qv3xAjeYVAns91YQ3dTUbwHwBM5yIlMXCqpN9vmy+Z4GrbeVbhVW+72UEcEjWJUYfa4bYQdJEpp6MsTZfgmnnuiahBezS7QSJcxhXbNmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest12","name":"jianyuntttest12","location":"westeurope","tags":{"george":"sdd"},"identity":{"type":"SystemAssigned","principalId":"e573b27c-71d3-4fa1-82a5-1b2a90b129aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T19:24:25.7102658","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"2696b68f-5324-4ec6-8240-83641ac9bb2d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8uCICRplri6siEjQ0XtR8yADAiEhUrgVUD2Isze0t0yxn59hgWFTuuC8VfW3xcwoUyKKyAFQUuaYZYq9DIBFCeRIi91NANmS0bNqSW4jfm9g0cW1r+yTPIwYgopBxh6cfBQpKKNsZTHrlAKQ3dh0oVb6NWYk4TwSs1i0VA2PbusvZFu8h75ObrQzgWI670UJCYpgUmdEuAJcIC9DX6OSs6aWs14ddsHJYDQ4yQBYVmdQCqBs80nDV7UIPxnRPK3Hqw4yQ8cRsU3P6KDligmczpIjmzTwz4sr0sVWn2LBg/+VS8f3WEt3daayiCAtEFZ0ACXtgnZ4WfIvEk1bkfovLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest13","name":"jianyuntttest13","location":"westeurope","tags":{"foo":"bar"},"identity":{"type":"SystemAssigned","principalId":"03950538-4851-4406-a969-fd4cd161ce49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T18:54:25.2736772","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"bb7d9d6e-810f-4d69-b619-5aa67c90e5e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7hKg64LFXUXgjsgcSmXy17I2hLsHTOoRc/1oZpqOk0QMNedx7tWA52OizDWIAWO0I73DG9Yb43UQYl1YttKl6J9ZudgL7vwR1+ZwYAR5VaQySk7oSpSMplDS9y9FF4JEL7OZBoFO3TfoJZ+hYUp04Ya6VogAe18mA59EEdpxJc6AhO2kPYvaV3nZdUXTdGUxgYE7pqitO3+OZzC/y03jQSa+pUHySIzMXGFSjpJXDmXDnrPwX2S6XetuG1gcBveV3asPFNuAPV6KVjK5B8fUR2VmK/S5tcXWF4K1Len7ovoKa6bzqBJSNnAW5K9WpkllT6OLvwTjYwHLA0JD/vwUoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishCustomRole3/providers/Microsoft.HybridCompute/machines/aashishnew5","name":"aashishnew5","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"82af5cce-35f5-4a59-98e8-1a24648316e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19001","status":"Disconnected","lastStatusChange":"2019-10-25T19:23:54.046252","errorDetails":[],"displayName":"aashish-desktop","machineFqdn":"aashish-desktop","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashish-desktop"},"vmId":"40a81226-f53f-480b-86f8-5c97bc467c41","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6dQOX/kOWnjqQHBzidLlDiB8diwRIN2378nKNzW5eEoE4TDMs7B1ePFaUVOpl+vW1VOPsAFedE8bAiFNtTpng5BRGewHJEFiZ19oRE5s37YHVmDbrhAYAf+05YUy3MnY21JzCw7WdqC7XavLwh42FJievlKrHnpoh8E2pQj47enEVHSPk/w7mjOYG1T08921qaw6vKmAn2lj5d8BmKaDGJDY+SQ9CW6nTt/8XIcA2nP3JVdcv5lZtrNfOSBPClpTFWDHLeFgfgCLcSlwJQBO+q5xLcKBHzGUQ8Ws4CsfBnLxAfOYdhLlEhIgui+THBWfhTfpRPHyTIfngPqBzQ4XJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/EDYOUNGZ420","name":"EDYOUNGZ420","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"d5c2c9a0-d511-4f77-9e22-5318ae0add27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.0","status":"Disconnected","lastStatusChange":"2019-08-27T20:18:44.9052222","errorDetails":[],"displayName":"EDYOUNGZ420","machineFqdn":"EDYOUNGZ420","osName":"windows","osVersion":"10.0.18362.239","osProfile":{"computerName":"EDYOUNGZ420"},"vmId":"9d5af5e4-1bc7-4a98-8be2-cfd411e393ce","physicalLocation":"redmond","clientPublicKey":"MIIBCgKCAQEA1e1rFTewLWjwkDdZzwYMJOSriYu7lNvqM2SC5FGyY8kOUqW6ygK/MoQCUe9bEeaBorNpLzlMjExPYEYlhrEF2gFCyanbC5gA58Tp/gVDcbsGz+LWZNrD+IpYqU2GbWYaVdMY9SkWbjl20X1vO5/wKlrNv30Yggl6dGOL/NRl0LrLc7wRFUPki+5SANXaNetUkp9+oCbgFISy6GjIqJYGcmzuRZbfRzjgi1bsgPmb1immg7x9+CJQOyeucXaaOZEmfTiqeh9n4cTAjhCSEvrtzdPqsSnl+lUQe4gccJMnMslJ8OJoHGE69pZmL9i5clQo1q3Udzh9Jbr/RY+IrY5/zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest14","name":"jianyuntttest14","location":"westeurope","tags":{"f2":"b2","f3":"bbbbbbbbbbbbb","foo":"bar"},"identity":{"type":"SystemAssigned","principalId":"603a526f-16a1-4bab-9147-7670f6c6a907","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T21:09:26.7899081","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"3397357e-5870-4a4a-9061-4435b2c29b44","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxmLKT4Z9A7BbToQglVIGScIbYKMOkFQ3jV8GAZi1TYJWxyJjqrJnr/Z47+PRFI1jDpbvVL/mPG3RjVe3jr29DkEIW8vBSLchU9CZGSqFsEveCWZHoRNjRhpenVqsfdTYFH2CiqAikxHdSzDLc3nkYlTZoilQBUTBLiIvUCE5pdrqcjfzWmS2r9o0dpLytpxsHfWNaZa3VCuT0/8hzVJv9wGsXjGlRKWAyJRc2AYKXLnUfUDfdWP0eHOC2fYSVJSyzPJMk84PkGN6khWCNNEn+GfdkKSotqdoatfQwOkUXoTQfRZ6oqSXe+OmJ6+aS6xQrE2EI46dDVzajYNCWOnnywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest15","name":"jianyuntttest15","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"3f2b79a1-ed32-45b6-b9ab-5907e22ab6f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T19:49:26.1219261","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"2d5b7cfb-6915-48c4-af15-69b059cebec5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvXLOnD9hx0+QdQ+1f+8p8CBNnN0lteFhfDnsRLRANVYMmDKtETp/yyxCSPz0PSzQO3dX9KDQqzmttJzPixz5Q+P4dWTVpoA4h+zs64NZyp6L0jQq0uN2BrMKHK+bNxuouq4fIRrsnO6s7nWslR2i87tCG3HnjBt/l5PCJJxxXFN8Pwg+VFayovcK76cq9O4qGclnPyu3COVGNqvHR9+6jCskSLHG/usJRiw/gLq9WbqjG5czR6nCpAWqIVQ3gktehsUDq1u20RYsT8dbyV0e7DjGEWpnVsBSpOjJFA/QNUTJ+ZIJddVsRzIp4XNTHnB+wUvUEcy1WkFJM4RCSA/onwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/amitsara-pc11-1","name":"amitsara-pc11-1","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"8dd776ef-81b6-4743-a67a-e5e70511da77","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19002","status":"Disconnected","lastStatusChange":"2019-09-19T20:36:47.8032409","errorDetails":[],"displayName":"AMITSARA-PC11","machineFqdn":"AMITSARA-PC11","osName":"windows","osVersion":"10.0.18362.356","osProfile":{"computerName":"AMITSARA-PC11"},"vmId":"b2013086-2488-41d9-bd61-0ff0f0845666","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4V5AusoLSKDmfP3xSV0JAhhaxXXyojS5qKVcYTbc3FkpC0QJ8bQ5ExQZ0Id46BZxrqr7W3maIBig//KH2zwhSdfHoVfGtmsG4ImslV1tqrVeTIGyqlH8w42eIybN/E9P0gPyjS1wG6sFmsea1CmkQ7rgm7wtj4e2SpEc9BtEe4StWbyDWWmtDB9h8o4/hCFpfoWGCv+7BDkjyvosajGoBnRO9TpjFWpbeirgKgZ5fnjjgjI4sQd6x8oUqJsZ086upXrJRcbT00hRUxDBUf8jQGW2Fm+LTTwBJnrmXAeq4Smg9Ftrh/qU7PREHq2GuTtrskGwHAjUyK+oDQarpjU2TQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/amitsara-laptop","name":"amitsara-laptop","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"d9fa7101-4efe-414d-8e4b-bf3656e83caa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10001","status":"Disconnected","lastStatusChange":"2019-10-29T18:24:34.6299206","errorDetails":[],"displayName":"amitsara-office","machineFqdn":"amitsara-office","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"amitsara-office"},"vmId":"4b750460-b536-48d3-8611-75ef72f93b9d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtZqdEHcVZwt5wjoW+jNQiUQkuPsL0uSYkQF5pIHN+Npq8yLOKvfmzdKvZPf6hWquJ1hgcfxf0Y0aLfq49D7DUvuaqD2hNaElFYFobbUdBKnovFR3Tqwoj8fI4tdSrzZBuWoY+ffLVu9qED0uuB11DT26/UkNuIv1lX7Dk8SADtT5x+W2mZ5/UqrZZFZb4wJ29wXKZQ6nBUv2F3Pv3qeH4W++y7YawzYgkxijMbB9hu3Abxbq9NmpGzpWxlbTKfXAIciaDxu0aC5xxmJ33KViDWBS3lddTWXOFaWeke7HGjQ6KVORgB8xgFP9oatVnXs4Lm34UHkc5uAaZlAKNRKC1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/amitsara-pc11-3","name":"amitsara-pc11-3","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"50e6d224-cb12-4e32-a332-db72f24ab29f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T22:42:53.0862503Z","errorDetails":[],"displayName":"AMITSARA-PC11","machineFqdn":"AMITSARA-PC11","osName":"windows","osVersion":"10.0.18362.388","osProfile":{"computerName":"AMITSARA-PC11"},"vmId":"be5ba8af-0e17-43f2-bb45-a41178cdeabe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAssB9XDhmx1bqIrgWBs3l+lrOgVeUavNCJ4jjc07gorLtJ8gtUTX+Cr6nttU7oC9DbR4JQjI6cK8LvApIdSx9UyENnGNO7MkkW69r+XfNP2CY9veAsyuIytiJBFTkOEcJa12oCc+N3NHzrz+/szNLO9IhCP6YPw78PMR0fo8gZP4gDl+9hdEYC+4ZBzGfgFFR2uwAp+vL3TtQP8oJdEJAZbO1mrmH1pt0zpaw9idmEqTgfvpN5XzUFI1pjESBJSR+d6I/s7NLFT1McmjhjEwJ+SwpqY0fdxMkA2PPtNVGcUPWekMxc/5R7jrIyqeWZ+K1+iFmP7hr8r1KX1Wj7syPtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest19","name":"jianyuntttest19","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"4aa1090e-5eb0-4288-a65b-2fb245ef8ca0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T17:44:24.3994324","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"e38343fe-5e85-4087-9781-488a6bfee044","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1/c9IeWjeNDj0KcUzFgGICk17WJB+Weqkfz9PgoMD5kMJuWGZ9BxHCR5QZIHYFKWBKtttJxHqS72oLcwyj7kfaraUUXIOtO1LWlIixJljiSezFBE8TnsEkvCPqoAsNMy05KrqAsyvuFUVJRcPFPhrYaNWZjA9/5jSb7H6aks9aM0cqaM7D7xC7OMIdb9M66L/yI4cA6z/2LmtZEehfKepDgkLr1VTti40esFCPAgfPXiGdJxgOrxggXR8lV0xshOpxK12dk3gGm4N2W/9ShO8ggZTJ+Gc9/PCJdF/7h2+ml19udiTnGYtqovSzPtLNKkqCpIC7LLLOgGI6xtWWINcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishgoodpolicy/providers/Microsoft.HybridCompute/machines/aashishazureHVM","name":"aashishazureHVM","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"edc44460-e235-4767-afa2-b826067f452c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Connected","lastStatusChange":"2019-10-29T22:46:27.5946874Z","errorDetails":[],"displayName":"aashishvm1","machineFqdn":"aashishvm1","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashishvm1"},"vmId":"7918e6fd-a67b-48ad-b73a-92d96fb7b50d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnBJTERiM/f+KhYPQMd2OlMmjNsIUEM2WMB8D8zu0IzjBG8kyMEMkulzQcWiz6tSLg41xVCgwAWHOgD27uP2lUOYKgUrNMN5A2ZLjp9zBFTF6psoky5VN7SMmgOOArIsv8qRqvyIQePVvby7kEhNF7LfMb4TJhr5stnsjQfhlbRczBHxYSCwGbzp3dfCDtWJBMTK7oJJlgrMD7IS3kGE0qbrlEpYJ0vUJoFlF3HB1J4+T/j2bphkVcHh+rND8kKUqBj45eWjHPtG2i65EkKB793p8vwwY+G/9hASCwfMu3a+j9QfkdB5uHT2nJ3wAMvfqxnMQUSpFWX2DPHg+83SQ/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishDeleteHybrid/providers/Microsoft.HybridCompute/machines/aashishDeleteHybridVM1","name":"aashishDeleteHybridVM1","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"bd5d8d99-c5ce-47f0-975b-58f0af5cfe93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25001","status":"Disconnected","lastStatusChange":"2019-10-25T19:58:54.3694201","errorDetails":[],"displayName":"aashish-desktop","machineFqdn":"aashish-desktop","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashish-desktop"},"vmId":"e99d8fd3-adc2-47ea-b54f-bbe7e3fa2ac0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXK1lzLMmP9mTyh0c5tRDc90lMonNshKSnWxFwkcjStKbhGJiiBsphF9CuPaec3taMaLB1ahFGnIsqcyO+vEKs9LRS0ZzMTC07vCtFN8o+kXH0P4FaXXYve2yzn8b5GsTMmVfBG2TFL4ex4JCio1+S3d3bp9ZQx4vyVRte2zgIYkRtKck2+lXBaRGwMsYXHgtNSmMqp26Se962aM3hwe+wEaYb2IQrKS5CVv1GXhd1X1p7WUAgrRPtjyO11EFBVaYwbCCxY/vNLC7WlUSbwv90YBzf7Sr070vbEwScIBqrUtoA20YhjU/rDrIO6w9Hh1NMkJQlUPJ2/15TurMNqwpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntttest11","name":"jianyuntttest11","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"762ebff8-1e0f-41fc-8218-2fc8f1011ac8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-28T17:49:24.6347891","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"jianyunt2"},"vmId":"ab0d5943-8686-4975-82a0-bae2f70f2653","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt9BX6CmnYw6yFKayPeAy7Pnq1/pqIwnCKlCYD/JdNoYGUtFx0Wq5teP5+k8RSLTT5+Z87CDrB7uCLTtLf2qrg/gk7kB9FYRRyCzy53DNfdnNdWCYykLRK2KcreswOVH3Gka6Bt2kcJKWoVgE83RNepV9ISmosBFl0Va+QluTQLsFfw9SK0GlNedFdfUd6KUi22rnxD5d7CqmTSaj/Cjvs4WsAOWBKeFqjbf6z9sDtFfN+u+F87azA+HC3MW1xqMjiXbbVstKZQM6oca8a7LYY6xsbrZIzkpioc175817gHQ1yjfX6m0Z1RAUR3P7WpCe33yN29SRP/hR8/eyw4JsawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishHPolicyIgnite/providers/Microsoft.HybridCompute/machines/aashishHybridIgniteWE1","name":"aashishHybridIgniteWE1","location":"westeurope","tags":{},"identity":{"type":"SystemAssigned","principalId":"83cea340-e0dd-4c73-bf41-5961c87cf3e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T22:32:40.3452588Z","errorDetails":[],"displayName":"aashish-surface","machineFqdn":"aashish-surface","osName":"windows","osVersion":"10.0.18363.418","osProfile":{"computerName":"aashish-surface"},"vmId":"06797531-d406-4a0e-ad14-d889b7a8f005","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Uh2KNxAmf+aSqO5qcAoLFvoaOyNsArlF5xyHj6Xy2p2HzdhyB//brL4CUAT2BZfGjCZCZ5PJ3zbBC8ixWjllHFNxCVhYa4ogLVCloVtTQCXCz/wPRr0/wpbO9OCmqq2SxsMT05UWhWMyp9TIGv6G6sCLgC05GrapssogqEPYbJlx2J533ybe0zVf14X7hOB2ZozBJNYxggvvZMfE1gTHfhvIBGlR/vwLnG7e5arYV5ELZSddflgjds8JnhxQlaIhVv4sbM3RXECJv1tNJeXzlCC2ST7Slp61Gb4hpgEkib3Qoc/t72guhp5CDMnZjn4sVPr3Jj9TY0Uz4OKz6hA0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/FR-DESKTOP","name":"FR-DESKTOP","location":"southeastasia","tags":{"bugbash":"2019","fareha":""},"identity":{"type":"SystemAssigned","principalId":"a04c76ed-9583-49f0-b14e-9811da04fcf5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.002","status":"Connected","lastStatusChange":"2019-10-29T22:22:58.0157889Z","errorDetails":[],"displayName":"FR-DESKTOP","machineFqdn":"FR-DESKTOP","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"FR-DESKTOP"},"vmId":"d134fa1f-8fa4-49d5-807f-cc204778551c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1gj3mvWXb+7bI9qI6KJcztF8wOTE1azlaRnAsMntyN7bZhRpgX81Te1GG5Y0sAeyA1VmaTDhby2HgdwzHkFuRz6QmZKaT4ILQ65jaTMFMw1DCbjdys9WVZZ8juFeuCDnk5hAtPWwnp+Ljw66TVwcLw58kutofqKEoMrR8Vk1jksQE4poD7EJZaXqxwi4wPJaDAu7Xn6R/Q3JyNMgM4Jf3MTTXA1DcJeWD6mfIN9XmMxU0b2GpzQoDiwzmHF9AeEAiyCYBkzaO1JRzudbyv5On7ugCDFSv5t/D4lqNPKYm7d3Wt6vWxauC7YdIuL03XY9EqKlAsdTl5NgJjyk3+6jjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/aashish_hm","name":"aashish_hm","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"818feb67-d022-4bc6-a529-14987bb9abc1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-07-10T20:18:57.2214435","errorDetails":[],"displayName":"aashish-desktop","machineFqdn":"aashish-desktop","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashish-desktop"},"vmId":"a7e750b0-aa5d-4fc7-8d29-46ece49fb442","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsUNxBcCrS9XZwSwBytMoDvtks/jBDyu8jAIaTchreHIE3Tu2zHmd8kczL/Mobm8czlvRpZRD8TGptblnQI/Pivud2ZL5Wen0eLjq2ff+OFpy9Azvmd6jFz3+z7bvpdMzW4MuZRdedA1dIx0v0/qwSgdpXsTb3VUBKKATE4006KvKQWyn6n924aGgQECITfKGvXgk8cYP5SDlM2Ni8Fn8RJlHprHSffy12znyoP4LMupET2eh393Q3FkrCchh/w7EUVfvZMzHbs5atWaeUqE9vmU0LKVRrGEuQ3PWtxrbe2HLKJuWkjonkULYl/DcfWDqNOJnm/bbLicb2w0bMg10UQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/duyt/providers/Microsoft.HybridCompute/machines/duytproxy1","name":"duytproxy1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"26f27625-03f5-4153-bb93-0e4c11ef344b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-07-10T20:18:57.2214435","errorDetails":[],"displayName":"Client","machineFqdn":"Client","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"Client"},"vmId":"ba51fa26-8302-41c3-bb03-ec85433ad857","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAskE9VBgjTGGMzaCy1TZuzZ/i7hcgeBHB3/WLyXtuGLDDM+NvS4Cn8w4Wikj462DZOfLUajfaJZXRoONrGpFoz/fig8DRtAUlpdPrj+Zc3Gechjp9AjyZpUoljJAJ50UJOg0Zeak35jk/2fZe3FlXxYuDRVrHO6FC6MQMD5UqIUNBBXKVlAUg3DPxnMBxohgxNyEDzUoe0bl9F04cSuG06y2He95Nc0dcGtZ5IDW2ArC8DRMyJ/9VinKfJ4YGqnIbNUkGn3nif8xF2UyVqEY1PZOwD7ZYB5ky/fVPJy8HE2meXo+Oc9UI8xOl5Qd/fQ8qiaFNovCbl2LpH/Pp8zZoxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/edyoungtest/providers/Microsoft.HybridCompute/machines/edyoungtestvm","name":"edyoungtestvm","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6d935b63-85a3-4ec1-905a-b8115cd01b19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":"Connected","lastStatusChange":"2019-10-25T19:02:07.1123512Z","errorDetails":[],"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0f832be4-6fe2-47f4-aa8a-af0696d07f69","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxjF+UzItcm4gQjQVXfwJQjUzRDK1/drH+t1XPBxxzWibxb7VdMYgZXRN0lefM1aQvrD+sehweeHCmNY00puwlMwQlE/TCZcdcT/aqtgdVa6j5cLvsmO05s3A7RmmlCd4tYD2dD1gMo9wQohQK6rPNviVeb747XIh42Fzb7TQsBrR5WaZsYi5PZm86k2AvawRcnY9KJ658kMF4kGHbgkUhNQuuIbYtcHr9i0qQKq8C3xbnuS3FiaXEsSLDP+S6DdN+LUHGxc6hALHA/2SUVbvUb4UC+WCtiWXE2iYtOcBTqAXtHj9k0ZDNQ/4csXbDGPO4XDoalB8r6q2AhVTm5WO1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishHybridTest/providers/Microsoft.HybridCompute/machines/aashish_hpv","name":"aashish_hpv","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1ee3e128-1797-448d-9acd-eb95cb0c091d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-07-27T20:41:27.489995","errorDetails":[],"displayName":"DESKTOP-NUHLJRV","machineFqdn":"DESKTOP-NUHLJRV","osName":"windows","osVersion":"10.0.17763.557","osProfile":{"computerName":"DESKTOP-NUHLJRV"},"vmId":"8704de4a-79dd-47e7-80c2-6c4e0986a49b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx/qWAXyMnXFCi0+znEgcCtH3VBpGEqkKM/5uH41K7FuBs+FUfR1q/v2BJFzQkqB4UNhUff1o6sBWZ9eNXUofdQRIXUOxQ6x/y7IonHdfY+I/gtyNpDl97/aOiyLt4EvkjveKgPKXTdXnMLbgHWlUFhgmQirw9oDodAUl8JYzdBfJiSsnXhboNc/PVfGOnPSLI9P6w2Y9cs1ztnbym1KLw+zH3bFLmAcTkpk4ssxr84uszzSfbPsVA3iLnFG6ubYTKqz+Q0IDsSd/IQK5xTjT6wpoMVZk1FVOlhEdsQtuk4SsJZGMu1vXPNeEEW80gaTdBF3KEN2YgrbJr/HhRAd2SQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HCRPSynthetics_USWest2/providers/Microsoft.HybridCompute/machines/HCRP-e348b74a-95f6-4f0c-9cab-b356854188cc","name":"HCRP-e348b74a-95f6-4f0c-9cab-b356854188cc","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"076148a2-f008-48d8-9a0e-7f64619ac1c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6807eb3c-1c6b-491b-9414-24fe6a0c821a","physicalLocation":"Redmond","clientPublicKey":"MIIBCgKCAQEAikLZJbsO2+El3aWZCWYqlEYk7LqN8vmgbe2XfFOxEui1YY2BJKIHP2aYHuLtE8keUs9LrEpgTjGnvBHrRyE9zwyeOkc5FxRXs1zTnbOa3eWZxzmiM7zuR41RYdrlZhKfOt33biUsdO/fSHy8Kzi/X3iUD/WJXYeIZamor2kDLEHmY5FK/CvaRrb7mEJKlqIEUyHA97zue0Patem6troGXuPR4qSvKGB3+/GGZT56u69mFzO7RoM3tQ5RwXpxM7pxfc2msl3C9snePu/Q73acocsRqHgjhCdcKtYr9uqGKyk1DpL93OpUhyai8JUP4vW0nQ6ccvsdTcaAn1h1Tp7btwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HCRPSynthetics_EuropeWest/providers/Microsoft.HybridCompute/machines/HCRP-b36cb938-de33-4d85-bf66-f9de339a3af6","name":"HCRP-b36cb938-de33-4d85-bf66-f9de339a3af6","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f58593c3-3dd0-4523-a8f7-58b057410577","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"7d8c52eb-4c6d-4aed-9e6b-c12dc7392da9","physicalLocation":"Redmond","clientPublicKey":"MIIBCgKCAQEAm1Z26Ivqog6kY+49bKuB5n5Qiy4n+ZuWOWeOwDFDMtzZSGG5tnPgAh0Y9wtghpMjhPRps7BIy7lVq6uwf+vXYqSGs9qht0yqDUBT3LprakZ0waDdu6e5DW4me5a63b3HW2GS/EDowkd/lpMVTbfzRxt8Q0QtfUCYKPYw9jFoWXUwhcjrrCDdv+qn/IOl1jMo2TJBcSSyT/nFePQQ9kIOTHskQAqvxJyzU4dXHurPTdW/o6QF7uXbgsBvvlv/ooqH+lD4jMxAjf1Uu4yvpnre4IBXdEfPUhe7V6K2JWqzTfX4kosmOEoAs4rF8VSM9kEDsBheF1Mo0e8HhMbzXiUQmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/laharirg/providers/Microsoft.HybridCompute/machines/slpdevbox1","name":"slpdevbox1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99b3f96f-67a7-4d83-afed-28be1f26d720","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-24T18:52:52.3481268Z","errorDetails":[],"displayName":"slpdevbox1","machineFqdn":"slpdevbox1","osName":"windows","osVersion":"10.0.18363.418","osProfile":{"computerName":"slpdevbox1"},"vmId":"ce900c87-e38d-4c01-8735-fc3b9af4a866","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyw61rpCzIAl1KdIJBLLWFtVQ58ugfCssIZslCN74Z13OiH0kTL0MoWhDas8M1AIQgiUqrOeC45034JE0bTvDSJ2bXSnsc8J2sc2gC7IrCCH3vOWCMrqG4ChYHWeXaoebppwo/bNEpPC6Bwl8ihlYFnvAv4fx4VqYDAKTdMDSNg5QPXApx/yqPldo/qZD/s/4ag+Eqh6HGP7cO/LbYNRz3TKHfobhaggxJO6M8R4zUFEWY+8BagCN+xF3rNd9X43oEP7VaOetE9gea7L/74LOAe5Pv4z1LGrsNqMZ4DNyzk94rd7DVfxcVNIxqqbaWPw4KWgxq04UrEVSzKZrMpflbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aaa/providers/Microsoft.HybridCompute/machines/laharilinux","name":"laharilinux","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e0777d49-63fa-49cb-9582-dfe7f0eb513e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-07-23T17:50:26.4571057","errorDetails":[],"displayName":"slpdevboxlvm1","machineFqdn":"slpdevboxlvm1","osName":"linux","osVersion":"4.15.0-47-generic","osProfile":{"computerName":"slpdevboxlvm1"},"vmId":"68c970e7-bccb-45d8-93b4-0f45046f2843","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA54K8Y82740qPOYfa33Fuuj+Lt87dZJiEKMF4sBFrfUU35LjWc63tSjwEnJVofAzQXcHb9bR+etdhjMQ28RcvGXmvVnqOch0kyezBS8H2bEuHvsVDhaKi47yLjuzyrOgK8g9DuPubY2EWmMR2gZtewFSfu+B2MIUEl2XFBHrEpmMYK+Jef6NEgBb0IEIu9eW1dDIph8xYgIBslxKslvf7MFmh2BSDmiKJjv44+yjbqRQYuCA+ix8I2vBgTWf6GXHh4feyLGzXtWkk4Q0aOR7S3mbEaeq67lgayKKfjr286boHPY35EiNikaDhFXwv4twN5gUbTfHORxDUChfdNYOSkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aaa/providers/Microsoft.HybridCompute/machines/slpdevboxwin2","name":"slpdevboxwin2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ee34be08-2848-4203-8ba5-039c1ad2f916","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-10-10T22:15:41.8328344","errorDetails":[],"displayName":"slpdevboxvm1","machineFqdn":"slpdevboxvm1","osName":"windows","osVersion":"10.0.10586","osProfile":{"computerName":"slpdevboxvm1"},"vmId":"cfc2fff2-1d67-421e-aae4-b4d083277e12","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0SrcI4c5VK0VanAln2Sj/rUfftXJGBY+D1iBWeb+H6N7J5b18fmK6Q1yxTF46qlVFbP1J2KAQDaXkzyZ+KExFF+d/mTJJrjqeai08H0UjUASOiDgtJV1HV2i4FB416CFcpFsuDHZ+VIAOEPIx0JPhCD3sAy+zXvODgID9cBAuZVzoLasuOUchFMXdmU1MX8V8EvM38/hqTExbOq6KZkCoFG7Q8Wa+k+Im7U0FNlvBNSgVh4XB9zWH8Mxi46c55ANXJhjjHnWIPfgQr4TljV/Gijkre4mViJHb/eG0Lsn2QDA+kEOaGXmyarPpXwguLrCu8kmCNXr2Muvv9v62iBm6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/dfsdf","name":"dfsdf","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"383f3d37-35fd-448e-9b1e-197548301300","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-09-04T21:51:41.7692665","errorDetails":[],"displayName":"DESKTOP-N1DNFRL","machineFqdn":"DESKTOP-N1DNFRL","osName":"windows","osVersion":"10.0.17763.134","osProfile":{"computerName":"DESKTOP-N1DNFRL"},"vmId":"73ce9706-5938-4b71-9fe9-4a1f5a26fc49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2+jHohqk5PKmy9ok+WFO7Y/mlB7wO6UrUQ+80850KsJ7vxMXgZdH+mK4HFLlD6wSLmKekI7z2td6/fg3t1BdL9au/lZO/xy1dkLAcsbSUUFUrzbUlTdTnc7WsUeXUPe4aaGzioKnlAa3cHr7WYJ8300MhemValvrK2uO89MmO+mNSe0aXjI+7Pn1c9FYf+/AVJ2YmFAvMgCU+GFTwI4aAoy2LHI9jvwpwawY3Uy7p2+L/CoEss+3R8gLR5g6rZ5CdtbPDjCQJ+H7EFJ7XeR/uPKFvAWJ+S6qZr8+oBvA4zkSnnGxIJQ60ixZJWGvuLS5jao+F+VsnTImO0quhwLxLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishBugFix/providers/Microsoft.HybridCompute/machines/aashishHybridDvtRes","name":"aashishHybridDvtRes","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aae33f7a-b573-4505-8dae-6e404ebc518b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.20017","status":"Disconnected","lastStatusChange":"2019-07-10T20:18:57.2214435","errorDetails":[],"displayName":"aashish-desktop","machineFqdn":"aashish-desktop","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashish-desktop"},"vmId":"c11a99fd-1985-4ccc-bec5-dfda6dd86387","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4crXSwZbVgKA4LZ7dc5XyXRbJ80FTNexm8GOWO+krkI83e6XXe2Zh+26RHp0q2zH6rdHkvtNVuDr/SEioC3RNoYXBPT1pTHPy89w2L4Syj46tPVjuXWCW3fPWCIEvjDD4vuiFH9SHtm0gbqZiL7Nx16s5+rGn2Vuul0JJmmoip1FWTB5DqxMGJibZPGnNw6+2oS5wZZA/wFoxEsn7FENkF+UMLsN/vuVGQ6hqJgPd/gu0gWKwi40iSilhVn5GXtrZriKCnJFBnDln2LXYEAIsq6SQZne7+l7DwRLAESJOoEagqkhG4JeiInS4GIlqZVYXlQzbaDAHiU5r485PEseZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/suso-eus2-vm2","name":"suso-eus2-vm2","location":"eastus2euap","tags":{"suso":""},"identity":{"type":"SystemAssigned","principalId":"587dd0f3-fc10-4bf7-b18a-cd748f667021","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26003","status":"Connected","lastStatusChange":"2019-10-24T17:47:53.7803294Z","errorDetails":[],"displayName":"suso-eus2-vm2","machineFqdn":"suso-eus2-vm2","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"suso-eus2-vm2"},"vmId":"7ff04d84-1d31-475d-a22e-ca546e30aad2","physicalLocation":"building - 41","clientPublicKey":"MIIBCgKCAQEAqsFHvvVwzTAx0C6bJD5FcLcs96MdywVXW4TZv676vY+Sl9UcS+mbKXQ/1BWAAqq3tc11H65dSbwRS4mBmeym+EYNnmeCl5Xvc6rDgCBLSDxUziZNH/S1u3bmsm787CwJ29fg2WFAeMM6G/lvfYaSJfpwQI/cMY0TL23/POjQZuYN/OzkOQDcWIUp7G3GU4fSw7O8DWewwbCksewArRAl3xxyIIsYjgnLSjhq1GzWdre1OchM8dJMMeLNBOrdNGTg/QcWNrTUCSjd7TjHXQBnQIifcVqRhuh77Y+1ruqBMAVVQsTe7D1dInnPpAqDfSBYA+LXbhFts35jB0DToEAtgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpcentraluseuap/providers/Microsoft.HybridCompute/machines/wineastus2euap_11","name":"wineastus2euap_11","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cca3ff82-2648-44e1-8248-5bb525622e5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26003","status":"Disconnected","lastStatusChange":"2019-08-08T20:11:10.9466588","errorDetails":[],"displayName":"DESKTOP-MJVSSPF","machineFqdn":"DESKTOP-MJVSSPF","osName":"windows","osVersion":"10.0.17763.615","osProfile":{"computerName":"DESKTOP-MJVSSPF"},"vmId":"63149ec8-94b4-4b56-ad37-8b6c94341dd3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1QbDSTdo94xRTM8BGQoJGuKHzx52/xRs0bMFuQ+s4QXVkmPbXLm68KeX6i46GGQEFcznC077kO3gqFmZDVZx2OegJ+54c19Kab/zhUC6MEqNxpRK6A5JOvqN6rKLuX6NWmOCUM3TLKQNwI/YAh0waihWLHEJR8ryvZouk2E4mo6kaP8tlKwzyXBBYIYJ4+/rNI/fx0LM+DfjFIUzUf2pRJBxGGLEQflZIcaehDAmxbNuI5aPIX7fc+SPV88Og3zZ7JfERivc7YXNmJ+EB9EAf0/HRhtpCzuLV+AG8opO9EVQwIj2DF7CTeZtw1VBSCSqDXAn9nv/8CrnxxfDrhmwrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hrpcentraluseuap/providers/Microsoft.HybridCompute/machines/lineastus2euap_11","name":"lineastus2euap_11","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fcb7da14-ac82-4bbd-8a5e-36398799122a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.26002","status":"Disconnected","lastStatusChange":"2019-07-10T20:18:57.2214435","errorDetails":[],"displayName":"ubuntuvm","machineFqdn":"ubuntuvm","osName":"linux","osVersion":"4.18.0-1020-azure","osProfile":{"computerName":"ubuntuvm"},"vmId":"2e8a2d76-d2fe-4d10-b319-027e7addd920","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA07+QIR37wH9tTNtM6KJNqnkSfXP02IkiQSLI9QJdOfsrdANwlhBjlmv5K+w0hiLA9okTw7O44p4r1zHDYNytupO8PqzFWqcGS0eZIfCHTnH3f4fXBDIddCaeo6nsKpichOaJeP/Ad5hjIt6bJEO1JQzsyIqhd1Wgn7jMQQ0Oy2/a8PHlJC5MPJGs+/PXruYuORsFzl2eSUVNuYyX4RZYevonP7IH3XU4Nm2YVrLyJFD8xowG8x66DXlvrmZreIiBF30th2QMI/7ZePvRcnGrjzRNPZ2bBHNQKZEywapUrLTGb50QbyLXzkE2oMhdn2DD5+2rp8JX61wDEO+4lDwdVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/laharivm2","name":"laharivm2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5c2b7851-6640-4b31-a194-d18e219b8dc0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":"Disconnected","lastStatusChange":"2019-07-30T18:43:09.768826","errorDetails":[],"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"065fc90d-374c-4f25-a9ad-3ee456534016","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt925A4nXe0HzcDjt1pn/m0AyQjM11tsYljGH/Sd4CGabh86UA5FIGDDiDWrXEitqIawhIc6oOLMQWHUYi0MGnuJFf0isqDMQYXfYJgwVH+wGCJggnM2iXeBNI8W6UfxUI7qD68DebVWvTz7lAMVRxU+1KCdfWn/CkG8svbB2szealhGbVLcdetHYldeD6kEusbyPDU7K1aSDbbqZ97MWBHGakhHZ1zKfCJRZ5U5Hl+4hlTb3GQWZHvAqDqqaS2noLw8CDFZhOTNayb8c+EGq9CGmijPd6GVVMtTd+LDU34l6OTfCGRurswxVb+vELMselJs9MTr22pTICWXunvLLfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishManifestScus/providers/Microsoft.HybridCompute/machines/aashishHybridDvtRes99","name":"aashishHybridDvtRes99","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4a069f0a-f4b1-44dc-9840-56917fb368a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1906.27003","status":"Connected","lastStatusChange":"2019-10-24T17:47:24.2478527Z","errorDetails":[],"displayName":"aashishwus2vm","machineFqdn":"aashishwus2vm","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashishwus2vm"},"vmId":"82bf0b69-8833-4971-bcb2-0ffb93638dba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoEMPz2uXl2A3DgfdfR74u+PJNvTL3A7DHGqB4+JiredO3k7KjDaShlpNF3Mi9vb6FR0+i1/CdGxfxBGM2rnMrKTYJQbm9sDjS4pQl6GRbhx8T+a4jztvL89hm+ylvqxyTWBpqOaj9+IrWSTFbL2C+QGX9CxFL98MDOVTiUsZXE5D/dIHathkOdTmBvnFlBeOWo3aYFBOiZOvmdUTErJhmgANaHGxsqhpmiLBmSQ341nVtc3RwhjiSiL1k1HTFr+lv6JdIMujb2jpN+naVQiebyJpZtrJU3vUpX++dO5Juy1o3+bUpFPBnzxbATs/pGMqBzkPlrW/i8qhhA9Y4vujxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-trial/providers/Microsoft.HybridCompute/machines/joinni-trial1","name":"joinni-trial1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"109df763-0ef9-4650-b148-c4494d28cf50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Disconnected","lastStatusChange":"2019-07-25T10:05:39.8628233","errorDetails":[],"displayName":"joinni-trial1","machineFqdn":"joinni-trial1","osName":"windows","osVersion":"10.0.17763.615","osProfile":{"computerName":"joinni-trial1"},"vmId":"c55bbffd-16d1-4838-8481-efb1f25f9220","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2H6hsxWFqWKED1AZLgszduuLK6zd5kDS5eNzMpkEKzCQ4vH2oYOKv05dR2tCu+GCV1/8IJHOBoxyHoI8X5GJ1iwPv2w/1nEfR7pxfKRCstSXP2LTPFlJ9BLMGo/mtMldyRNoQFWiQ8qvfEwzlX7Bl2sOjkjTA72xCR+WUjD0sDujpjFKSGVJMxIMnTWZ8YwoFKRHaMVDNNq0CLdhfekzPxSZf9rNb/se6WuGfMOp6jKWa/gkeG7ur2MuwpIWhxoQezF3WlFxcSMzAFkbd2zrLOP1sm1so3ECDmIgs9a/mJIL/5BcTW2qevaYaYMx9ZLrQI1Y0rGARZV7h0CucNoJPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-comp/providers/Microsoft.HybridCompute/machines/joinni-comp1","name":"joinni-comp1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"47c7f47f-92fa-402c-a589-70928df71bc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-24T17:45:56.9926436Z","errorDetails":[],"displayName":"joinni-comp1","machineFqdn":"joinni-comp1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"joinni-comp1"},"vmId":"35a2e9b0-6d2a-47a6-8f1a-4fd89b3a802f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8QIOrBBu4hyhJbXLSxfUPKUlxTwDPcUBbBJCz3bEFCU8ag6bTjv7N4bKe87Nv8vzY96wReCWq+hI3n8JL8MbImrdKIHMuDVaYRGzYvMp2PnEWfICMa003xtjRynmDhmhH9z08Qn6ocRuaH/8xa/3ISTiZ00KtYvIwZZGbv8IRudKYb35TOy/aT6ouIci2QR64QsRTeO2/Cr3zUN7QLyYDB9130FGEI/e1trgmaMb3E7wEBUwkAEiJEK2IzsI8afF615FKq331+C5kv1yKlnsHwq+lDJI05gtIvCPMpEVsO+Ez8nfDzBN3g37ht+Oys8sGBa0KBsKL5zPTlRDrDbgxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HybridComputeUXTest/providers/Microsoft.HybridCompute/machines/Test-HybridCompute-Connected","name":"Test-HybridCompute-Connected","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b4164639-6234-45f4-aff8-35cb54a873f9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Connected","lastStatusChange":"2019-08-09T21:30:14.1056664","errorDetails":[],"displayName":"connectedMachine","machineFqdn":"connectedMachine","osName":"windows","osVersion":"10.0.18362.239","osProfile":{"computerName":"connectedMachine"},"vmId":"acc5614c-60dc-4c48-bdf7-27ba2efd6b5d","physicalLocation":"something","clientPublicKey":"MIIBCgKCAQEAzQE3h3oZCHeXcdNYuSzM08Bf13Wcg4WeqRdAHej+Hu1tX7H8uaJwv5uXpjT+G+5+wz4hOR/IhAX28FgE4HPq+3tHVD3KJaPJSfGIZ9i2WsfLs5PIM9EKBqtK+Wcap6q9tk5+uVSBldKTgk79Hy9Dy1niN3BJMShAVGi1rE0k2QdXVUnytiv4GoFcA0Gwt7sLnYhfqg/05gAjjT8AE+SyRt6x76lggDOWpwtGO+7GsfQPvkGpsC7et+j6In6USq+2ioCK/iV5Cg/Cts7N5RH2/RDlHXbKacqk/80mo5s5lnFI+nSCGTYeoYB4WKEhmhesxbX55XVe1ZkdXit2Db3OkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HybridComputeUXTest/providers/Microsoft.HybridCompute/machines/Test-HybridCompute-Disconnected","name":"Test-HybridCompute-Disconnected","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2c113d95-17a9-4df3-ad59-51c31ff2ac1f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-08-09T21:35:14.4059936","errorDetails":[],"displayName":"disconnectedMachine","machineFqdn":"disconnectedMachine","osName":"windows","osVersion":"10.0.18362.267","osProfile":{"computerName":"disconnectedMachine"},"vmId":"60d9edab-9732-4753-bd65-7d7a745a78bc","physicalLocation":"That - place over there","clientPublicKey":"MIIBCgKCAQEA5NBvehiw0RgrIzy+4o7CIBEK0xNq8eLxpC2d1Lq5bhh28Stf3ZDfo18WwGJiJrkgiztfs1DNKpZii/OptVwpOpg/t+SDabBd4n2qNP2rKurxmBcKYpmhgWvVvGAE1ByfKRkAloJDaSUKGU0I3HbnpmsuYCioWostbyjPZOTqQGvCAwhU8fCaegAkIcr8LfpMnflrlmCroFigjCPGvlHNukMYl12uk1yfF6lVx4CLmYR1gxol87YWIZQ4rRELUyZLcgh27T/XT5ASx41PeTZ6ofYaJXFoyXFOPVuFiWrBkS8hypLEhujOXWTn2KGhylhkIQoLOJNvWYh0XhoW3yYpSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HybridComputeUXTest/providers/Microsoft.HybridCompute/machines/Test-HybridCompute-Error","name":"Test-HybridCompute-Error","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9629399a-4f3f-4aee-a633-cd687452ea3c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.01002","status":"Error","lastStatusChange":"2019-07-01T23:15:50.662108","errorDetails":[{"code":"503","message":"Internal - server error. Unable to make pancakes."}],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7bb744c5-9aaf-4005-9f82-44be5717da69","physicalLocation":"Hyrule","clientPublicKey":"MIIBCgKCAQEAxrQseKUW31uIknx9/q4W4zgGY5ozADIz9rGj6vACWn6sUQ6YDjteeY/U5qW21C5FQTmElFE4lQ4EYbqkm6J3KdQwMPsmLOU/A0x3YHfqXRdULrkwmzUBxReDpxy98NUDseEa9BpTo2fZCj1v20VmybdcLIx3cdf6ckjWKcnG40aXYdSl1oBCaDs2TsOjxFhKQHighdygOAGEVsXZgnlSaeRuPfvgzveLWcJCphSVa085Qr5PkK7u41MOk6C75D4ybXaUVqMduvMsZTql7FgIA8rn+XAH5RxwzjCNrzkSacNPuhLX65bEEtY2QU+PmcxlJjryHU/y5PVjF95AiWW+ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/jianyuntt_linux6","name":"jianyuntt_linux6","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4847b251-d48b-4517-be9b-a6e26fc06a3e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"10e154f1-a455-4943-bbdf-401d348388f7","physicalLocation":"redmond","clientPublicKey":"MIIBCgKCAQEAlim3Z2r8aR9gk14l6FgjY9g0lT0dkzeJdaVCxDAn0jKZdsCA/iCSrv+8zCuqJLfVZQu0zYqhwC3lSd4bUHLODYtyDkjI6PRCPhcyYv0NnkQjUEi5iWqh3MzyHOt7VAZJtmvpOlaADJojIig9gd5ap0TSxJj5QpLpa/kmz230bv1xc/3skqxK+lrrgYN2Ln7O33FU/7mskmIwbLmWDXoqs9++ugBogaZSwPiLoUt7lIUDknoQi/ssOByqLhIj4Rs2VtpKzSI/qz2JLA/2cRra+H2PzNGlW8GdYZlYRV9EnOSi3Ff/yCsObOwk3OeDVYYS/9rYxOX47rYJ6ECSX0MvowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-test/providers/Microsoft.HybridCompute/machines/joinni-test1","name":"joinni-test1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"449f329e-f628-44e6-ae21-5c1802120316","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-24T17:46:18.8648403Z","errorDetails":[],"displayName":"joinni-test1","machineFqdn":"joinni-test1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"joinni-test1"},"vmId":"c341db9c-431d-409a-99fb-783487dda936","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx8JOBfSewAxe5rP3XECu66N/QMOCbPKlX6HwVDnx6MXMPDLVSlOA+uhDBnnaAv+YHy9rLKcpE4SaSmPGuolMMAT1WuzFCEdPnKPLSRE1hEdSs8G41+9WHvpE3pjxZ/67alrfWr4QX4oIn3izoPlGM7MuMrq+HNTP8SB+eTadMfRshTo4ltQzWa1EW8TarepvGB68jyHT2nb2EWLTSV8vRlybBJjVlOz1y/8G5vftIuEyg4AR1qOwuauV59Xsp9gGZ8ws6wVWvJz8c20WHJyst38z1y7K7h9awoGsZRN88PT9YE80HZf5MC42UMWd8ngmJglnc+b/x0r/no2Kp6vO6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-hybrid/providers/Microsoft.HybridCompute/machines/joinni-linux6","name":"joinni-linux6","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"340540da-e100-4951-91f5-1c595f748266","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-27T18:13:04.3528202Z","errorDetails":[],"displayName":"joinni-linux6","machineFqdn":"joinni-linux6","osName":"linux","osVersion":"5.0.0-1022-azure","osProfile":{"computerName":"joinni-linux6"},"vmId":"e086a4b6-abb3-4603-b617-22249698924f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAstrr1J34uoxVMwwqMfU1V1Kw0oXAxFmkuK/6qNlR+y1cZVJSokD1aJ9yDdzo47NWtmHSLd0c3xYiuszNAR4zL/MuigG8/u4TNVWe/D0ZYu1qe/6itCw5fDhcWKD35kSTSWfIfSn/KongYAWGYsJtB4S75PI4NTTRDa0AnIQtuW/fpyARqfLLD83ehXuIYvlDa3mnKAjOkjuB8DJHuQaCZfMNz57YLCUat72gG8sxUg8UCOpnbCD8zH38AS3FFFWl+iyF1bGu/kpXEphMP9OQ4P2Db/B84gy1o4pyt2nUKn8ZWfuGCPZbTFxPPxdsh+aw77sEzRIMq6QvmZmL0a7KXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-hybrid/providers/Microsoft.HybridCompute/machines/joinni-linux10","name":"joinni-linux10","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"df03744d-dc28-4843-9184-fda4291d4ff1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-26T21:59:57.6589401Z","errorDetails":[],"displayName":"joinni-linux10","machineFqdn":"joinni-linux10","osName":"linux","osVersion":"5.0.0-1023-azure","osProfile":{"computerName":"joinni-linux10"},"vmId":"1e0c0731-61e3-4f6e-979c-6277288680a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwAsJg3xh9jarbyYv3xPq61sjX08vU8OYbQyo4d81z3AJ7pA8/RUA8WV352NXkYB5GQsw82uWOifPYfdbJXXpnxROOaeUw99OP18mhcBWEv2d+xQbCIdg2D4p26ArrKEhH/ubPLbbSPT5ekidedcsMuiKZoeJ5I/pUWwYfAYQcO3iQG9iMwcniQBpGg3tCyiZTQ/vK+g8KqIXPDDh5pNfN+4RmeYqF3m3CPIGt3ulC7vm6zrCqTpst9p2CqdKkqsvxmWTl0/lOiqBHsdwthvwdj4KeHwCTHt9rvVHxXHYoOwunSoCY/adSld/z4XMCWogjQsVAHNjSiah1VN/PmrmZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-hybrid/providers/Microsoft.HybridCompute/machines/linux-demo1","name":"linux-demo1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e2c9166-c601-4025-9b23-0c35a2c34667","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-29T19:39:29.8521048Z","errorDetails":[],"displayName":"linux-demo1","machineFqdn":"linux-demo1","osName":"linux","osVersion":"5.0.0-1022-azure","osProfile":{"computerName":"linux-demo1"},"vmId":"345b1fd4-c067-4452-a6dd-2b8ac630297f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1rUMCcLY30x3A9o+bLuiLL6he4xWHGdGCVgRKGusrh4abn12u/DQp84v1m5M7mWzQXY4TMzl1lMYdwDx8fL8W4lFFAPMx1ocfw19a87RLPBnnApoHhRcdB6AAC12AQtdsv8SI5FDe71Twp6KIRCKVjuT4tIA/oaPtrWE8yHu5pcGmVmTPod0SPM6K8TO0sPq/8WQ9h5kO/d0n57gfdKnvgClI37h/bjc11H7+3cIUaiWr2M5D6vnOfbfoct4sRSWwgZuo+3Q1a/KksYaKiYEG2WKB70T47HhQnS6eJ26eEw/HeI5YN7DIiOtVBS+VfNpHXNmRD1gOUIir+n4BlcdXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-hybrid/providers/Microsoft.HybridCompute/machines/win-demo1","name":"win-demo1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6c9541ed-4ced-42fd-bd24-70fd89468a2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-28T10:55:37.8337352Z","errorDetails":[],"displayName":"win-demo1","machineFqdn":"win-demo1","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"win-demo1"},"vmId":"55a2ac6e-1863-4082-86e4-71078a51f93d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAup0vxcDUgGy4n6lAqOmSoB4mt1SJ6OXzGfZrqXDCfrqPCQSfN+xcQbkerWh3MgBNJwcWy2czBBjKroIJePIgsbbBshZcP/26kFv+PHMmL/G30t7TuZ3fIeKYEX5m5e+Cecqb4SYAEV0nTZVHhIIH77xwtk6C2dIaPm8aBJcLmeuXRR+3i3JflnxDA45cTR6g9UJfMdeWYkqdnqRZvk7S/84NMcY5/N7vawAAsKaouN3aKNqV+awYBtOsd6cLGGBqx0xYddNtSvBNnxeSEU/HXx0al6KGoNvNsrKKym0hTGIrmLTdCn8km38QCwFOJLWBrlGzZuPDSdF3fr1LDE16pQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/joinni-hybrid/providers/Microsoft.HybridCompute/machines/demo-linux","name":"demo-linux","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"02746dee-0b16-47d0-a247-156b824ac395","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"1.0","status":"Connected","lastStatusChange":"2019-10-29T19:40:10.784522Z","errorDetails":[],"displayName":"demo-linux","machineFqdn":"demo-linux","osName":"linux","osVersion":"5.0.0-1022-azure","osProfile":{"computerName":"demo-linux"},"vmId":"ca82ba53-e1bc-49be-ab93-5a7ba445abf9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz9gNBZv9s8kYxfudl3dnKNU6v/1xu+OM/LwMPCATrfdP0rwX3IND4yrYD0uJPlPW9+phAsR87NWy32SzP78ojPnHtkxRgqe0KfozBqfQ2CU+chzSaUDGUEo3b7JQHy5PNqyVfXzu6FFc9lhx7ZEO/Gq/TJbWOQIdPpYCZHNwCzmSoQjCUce2iOKF1oyYCjxC9WE6To//sZ0rGURM6Z533z9ZvvLhxeuv0uJhtrIC245IzK3PG0sGfjJXoBYP8DjfFc7Agx3tRHshNxoGQXnfhEB6zQCxOTxWWE2q+eUnYWMeeyA2Y6eOCjdtxtqB0GAG6q95JHGwzn/85UHNoh9RjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/HybridComputeUXTest/providers/Microsoft.HybridCompute/machines/Test-HybridCompute-NoHeartbeat","name":"Test-HybridCompute-NoHeartbeat","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63d05895-f9a3-4fbc-87f4-bb6e8f4bc540","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-08-09T22:39:46.6678869","errorDetails":[],"displayName":"MIWEE-PD2","machineFqdn":"MIWEE-PD2","osName":"windows","osVersion":"10.0.17763.437","osProfile":{"computerName":"MIWEE-PD2"},"vmId":"b260f04a-2490-48b0-8bf5-c221de3665e1","physicalLocation":"the - moon","clientPublicKey":"MIIBCgKCAQEAqPMzts2JxuJwPWNOYo8RegZ3KC1vKv+lD3xP5OSRKOASMbEpCSQuERl7ztcALXSpcwo4kLhvH6vMflOqxwGuCtTsl0poUrLrMLY6EVNcznr4b8TvLZewQ6s8BDokXNygvQmGiH4oYb3nm4z/ykSJgD4IySnNLNwWrXScskMyZ0rsUC/cTIM+SQtyPOvVHEF5y+9ZOFjlMPlXbgp5CRaGrjg0wwWkM0YZIm88MDMv4f1dbRssiIXuFYTcYPuBumzr0foWB9D4jM5po5zp32X1sdl2H0oQOMbL/CvCvc2oMnk3CWhTe5SKNKD6zpC+rjuDpWcPNds39EbQWorgxtAKwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/suso-ubuntu18","name":"suso-ubuntu18","location":"eastus2euap","tags":{"suso - key":"susoval","susokey2":"susoval2"},"identity":{"type":"SystemAssigned","principalId":"6230a8d8-1c73-4e37-8352-e2f03ef0c46a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":"Connected","lastStatusChange":"2019-10-24T17:47:18.534017Z","errorDetails":[],"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"e6287d82-799a-4a3c-9b74-499c30c845f2","physicalLocation":"1demo - room","clientPublicKey":"MIIBCgKCAQEAoOr38ATYYr/nbsXD1FA7xPD813bn9HXhh/0fXrzf9QD5M/KWqsLU+RLgeZJqdfSD3PpaUxb0iwloQppG+lkPJxpsqz2vl2n4lj7br3IY9DGev7W8095SDa5idyvVKh+Yv7njs0yn9Ay6z2ZzSn6MHMbbCNp3Z37EESAEaQBGOtEArp1TKHibclXD9PocYAdMTWq05Z/eknx/ZoNC2MBY23U08UEDx/hJYNLc4fn4cdc9/T/wfKhX/Z0R4ulaftugB0ktZ6ovBcZmZ3tZ+KfQ+BZQoeVr0+mvDWvmgBFcv0wwTi0ONCDpgMbjx+ge9fE/4ov9P+mkQUBeI0eWZ0yc4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susorg3/providers/Microsoft.HybridCompute/machines/suso-hrp-vm3","name":"suso-hrp-vm3","location":"eastus2euap","tags":{"susokey":"susoval","susokey2":"susoval2"},"identity":{"type":"SystemAssigned","principalId":"18349194-cf76-40d9-b64a-c0196c171be1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-09-05T09:36:46.0576249","errorDetails":[],"displayName":"suso-hrp-vm3","machineFqdn":"suso-hrp-vm3","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"suso-hrp-vm3"},"vmId":"36523e75-6959-42ec-989d-99b60d3a2db6","physicalLocation":"dance - floor","clientPublicKey":"MIIBCgKCAQEA62BCthvFuY+2UZ/FFw3i3fMlgpQ6+qmqOfX/M0z0z3epT7B65ZLdZiVUBmR6jUT8iCUwEeqNBL9rEWBMsGbc5fDAYi1Vtzqi/bGw53uPNfJsvGAx8WxzgUHZGH0Oz7AJTETqU2hZNpV9g9l5vJILQRb0O1MDJ6fGLcODEWFTg3XkWy14tMj/Uos4UJp9QZ/WQCUpieg2qenrTJunnAdzR3kpkUEW8chmDLwOpYoRF6H0WwM9gLXo3ExJGAy8FWls80g1205pK8SJO2jcyhLz30+a5h7PZhCVTVw/+a2oPb1iXezuRUh3hfPUSgIPyMp2bldlydDeBKV6sWovj0jVsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susorg3/providers/Microsoft.HybridCompute/machines/suso-wus2","name":"suso-wus2","location":"eastus2euap","tags":{"susokey":"susoval","susokey2":"susoval2"},"identity":{"type":"SystemAssigned","principalId":"5a4eece0-60d1-4e1a-9f12-54db4f802ab0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Connected","lastStatusChange":"2019-10-10T05:20:55.5175087Z","errorDetails":[],"displayName":"suso-wus2","machineFqdn":"suso-wus2","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"suso-wus2"},"vmId":"66908ec9-5b81-4769-8466-9f705b2908f8","physicalLocation":"midnight - moon","clientPublicKey":"MIIBCgKCAQEAuFxeBt4Lw13AuAw7JBdqHHSek9MDA+/jCw9MVY52uolhzywC6VSDo6hkjdpaZETGb5UahXd5Bj+4lJmAsrK6ZWqJwYM2CRiQQfW38m7h8I/nkt4CiWiiqUjIiiR5qFABhtpIaQPtf3f1GlCmi0e8HASP6PK2yXox50RaTmg6xE3zsFjfRlUUYcvqLmD2ltem6YSf7XFK2jFPJxvqpoBG7xXuSuY1cCzT+De/87COlqk5m191F8DBZAd8ZIvD1nIJNVLbmJmj3Zur0W2LVIwsS6qvHRkrSQpfY0yfWzbmud1+sdHx+TjiQid7Kksu8gChYU+0SOodlt8WNAFaNNZuqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FR-TEST/providers/Microsoft.HybridCompute/machines/FR-DESKTOP","name":"FR-DESKTOP","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bbad0922-3ac2-4394-bdc9-8fa4a4e8883e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":"Disconnected","lastStatusChange":"2019-08-20T20:41:46.0330062","errorDetails":[],"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5ca230c3-074b-463f-97f1-69cac5c35f00","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxrXqxPV5zxWv7DsJEL/cvbhCFtFd6rMTN9Rw2Gc9+FYMCyU9x94fuFf/6/Ha/6Da9W8boEaGpkJEqh62sOASDZw39X9Y5uA0ZUDGg0M4CBI3o6GF5zTnaZ5xxgWWBGhDWTF/uNdmoU1d8qthUFA/Md0QW1d1eBEdTADxGe2kXkCWe7Cif/twCy5z5ybV3vFwDbA2OtOuQgvFKk5Go9fssHnWvyvpHljcB/6NsPKTb2WVhAimglA4xFj+JWJ+zMHx9f3WmcdHKqngo7HCy2Wq44EM5LITWBO6MjXBiOoFs7PY76rLwKn1jHQ0ZOzrqnOuZst+cELJFtvpblUFcnI9lwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/duyt/providers/Microsoft.HybridCompute/machines/duyttest","name":"duyttest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"07fa084b-c8c9-4c69-b3c4-2ef46c1f0940","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19001","status":"Disconnected","lastStatusChange":"2019-09-10T21:12:55.5215734","errorDetails":[],"displayName":"Client","machineFqdn":"Client","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"Client"},"vmId":"0dd741cb-bd52-47c5-9f2c-64a07c60ceea","physicalLocation":"hyperv","clientPublicKey":"MIIBCgKCAQEAqktOh9c+xZZP/iWZbgBDkUZQqY4PXJIv5ckC+2duXu6P9t6aEi9yFFZCP6rdxtFdo70ZKF6pVONpnoZCehFevUeLKtVcosXny5k04K0YKh2PqbBJ0UFzUa9lYVUnRYCZ8u1MZnQg+JZTwmWkKpyDRtWZHl5umlqPtrzh5CG8hsgFGopifPs7wcU/ax018U5L8kwwCygx/uBtaauPzKyoe/RgfGcb+vJaj4WBSxRyJ2cserb2mPv2xzxcsj9DRUI9Lux0+Y88/MQmx3RGEmy4Y0m2XFDRYqIH00n1RhEUmLynhEEQ1Xr9p5FJ+w4e/snmAgDXzfRG+76TxjLqbY53OQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/haikuconfigdemo/providers/Microsoft.HybridCompute/machines/ggopalk8s","name":"ggopalk8s","location":"eastus2euap","tags":{"ResourceType":"HaikuResource"},"identity":{"type":"SystemAssigned","principalId":"0fba2da8-7ffc-479f-a43c-3d72ca96df42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d76fa49b-1391-465a-b70b-1fd97c89d343","physicalLocation":"ssh-rsa - AAAAB3NzaC1yc2EAAAADAQABAAACAQCoVCdJKRjQizDkqJwKP9d0mZ+VwYakz4u3gXv5UHZmq/fSYfl4AWU9WBNIsMz4L2NlQXWnXyTKgFGMFx8NNQ+kHBf8eCExIiyAnluPRfIebGiyN4YNCmrHVJ0nslXadSIInQxxjZ5vJm8Vwkxivwbk2ijyRW1pAfGw1vOKHAgHyVNe6xQGIOskeVLggRG9+8Nb2sm2HspyYeP/ekIGJ9o5XuwuHJa5dod5Z2E2Z7K7fCkbsHc9cDFA40J11V4cVKVNLKzhIlNN7Z9nnK0Pi8mYkX+CHZF5XuUPNsZ1XtH75Jd0llSJSCN/ChdEsHCwLDb8wNKdBW0h1pxeXNoAX/l9CB9DIxmY8Q+42Cd9fun70wpTl/xW2/U3GppWdLP7tJkpIzUlD/5HaY6yrHy5gy+leGftaTWM1/k2TJRVr1GuYrVC7sBe025wm2Z7tkxyFCDowcI8JRqlSWGs2wK3Cm2I5quJFd/kgmExMhGUuo24esh2KT6aU/4gYhsT+GhTlw8jusxJ7bkzhNn7wVlouOzFLNHEEfl4oJnOk7o1CISNjXugLyvWnsKrpcQ4dQvWiJvrvj7IZuSg5q7wnpHiVgfpgJstrk4VfBBeb2e+FKe7O0YmisTzc9XXthTzJ/QDjeMbUfmc+DnMkNeSfY1IoT++AkKvBYafada6Qi0L9UOguw==\n","clientPublicKey":"MIIBCgKCAQEAoTF8jJPTz1b5LtbBYTxUSd6sfELXyV1fpgosq3jIYv306iZ+EpLVtrjNnFtFyyVe1DpTbO+HbldAgUTcdw+7AOHrf8RGqcBTWA/woGYiM6dPZKq26eMLA/2XLJuuidgwODvuKS1TKPzdz79O6QGbh9Y6tWr9emVE/xuN+GYlKfZZYn2mc0VETywoJkvSBFH6YeADaTIrzbwyP5uTWwOLy9rCPE8j262LnvCO9/gmV+EJHStHym57V++i/glrXw9A9mD2f/SrfWALqE9pdWbRE2XPxLif5N8cqR35zwddqjJY2+KwbkEBk2LyfX6rVtO7yg05NvgH8cCQTjiAtidjJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG2/providers/Microsoft.HybridCompute/machines/suso-hrp-vm2","name":"suso-hrp-vm2","location":"eastus2euap","tags":{"susokey":"susoval","susokey2":"susoval2","sunnie''s":""},"identity":{"type":"SystemAssigned","principalId":"bd8d474d-7c6e-4237-aca3-b1396bf7b58a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-10-24T22:20:51.4496528","errorDetails":[],"displayName":"suso-hrp-vm2","machineFqdn":"suso-hrp-vm2","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"suso-hrp-vm2"},"vmId":"76ececa9-a877-45b3-8801-25ca0695346f","physicalLocation":"dance - floor","clientPublicKey":"MIIBCgKCAQEAsfm4sNNFM8ghhzEUzHgBmlLEKGkRewopweGTNLPMY4hImV31EX28D9l1V9GG7k42SeMMqZ2Ol2ILPsqvaM+ePIwmFR6QkpQmRL4F0qdmwGQz9/otCiPJnt+0Lso94JtYWSgzuDCAgoIQtjdwQCzzVhb+4Mve9wHqBP5lSfeUq05nmi97X6koPH+7HZpXzzfpVo0bteFmC8DAh4Sj1YZSNg5ZmQO4L71eklLv+tif1duRHCODFB1ubunotMgKpWvkdUPpZTCZuz44zzPOmxu5NzUIZzECWwqy/os0njp0ClGpj5lhNSebF6zeD5BvDST/givr30M/ifGR3Exc3/qaKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishCustomRole3/providers/Microsoft.HybridCompute/machines/aashishLaptopHVM","name":"aashishLaptopHVM","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5404878b-6625-405b-adbc-4d00e638512d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19001","status":"Disconnected","lastStatusChange":"2019-10-25T00:01:26.5885975","errorDetails":[],"displayName":"aashish-surface","machineFqdn":"aashish-surface","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"aashish-surface"},"vmId":"d1e32941-e516-4801-96b5-35f23a012ad2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9T5j5LjQnh42GF55ptBA3S0AA5Rb3L70Y/I5Fgmh1K9tOsyhODdiyWS2Ndp/G1lYlFiiyN5bYl51pmsvC+6Rv519JCjZTQbeLP+eRBp+aMGcF7f01wyV3uR2YKLNG8Nw7NSJTw+NHq8JR6sZW5d+7RelmJSh4bJEk8QPfe+obgIA+jlEzjAK5K8ABGMJceYswdI0uxd8QKh+xpDULGo+uJLMF9u/W20c4ZyHrBDrxx0IwyJ54KyilIUD+PKy8uWoUepjq4fhBvGiRaKwP1Ux8MH5F3fJUFFduQ3YRUVom3vJRAWa0Z7r1iqzkOLmD5wc9PdoeFuZjJ6+x5I9+2CyiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/exttest01","name":"exttest01","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"643994d4-3873-469a-bc2b-2b0d5d22e758","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.09011","status":"Disconnected","lastStatusChange":"2019-10-17T17:48:19.2306555","errorDetails":[],"displayName":"RaghuS-Desktop","machineFqdn":"RaghuS-Desktop","osName":"windows","osVersion":"10.0.17763.678","osProfile":{"computerName":"RaghuS-Desktop"},"vmId":"1f4ef32f-7d17-4e5c-bb39-6fef3bf774c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy17qdDTwfTkaWZzlyUchjNtWOi6A4PJ1bf5GRTeWJkBO4PHv66Yq2HkjM4KmIdJuszehEVBMoR1FDs4ko+2PJR4ycS8QtPq2Oj0gafoUm9XsGErmXUfwhaCQEnDtr4Ey+RVVeEXpOJb6AWQqJLp3pqp14cjUSZFg+Qiiyrs/u1oJT2cOG9WghbwunGGmFYRHOYBkn8dVccuQlcODKaexkeMNIXuErUfzy0oa0jMmw1tA6S4H8KcnX3quxCI1lf5SV6/MVyW4k6v2karSWZjJxkYz6BDZXk4nfXjpalFG2TVpUbxi+Ie7SGkCgwKTOVCQ4Vu1yVeHCX3ACIXCuDwQ8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/amits-test/providers/Microsoft.HybridCompute/machines/amitsara-pc16","name":"amitsara-pc16","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"52b2c9af-95df-4c87-8985-a265898b980b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T23:07:36.1732857Z","errorDetails":[],"displayName":"amitsara-pc12","machineFqdn":"amitsara-pc12","osName":"windows","osVersion":"10.0.17763.737","osProfile":{"computerName":"amitsara-pc12"},"vmId":"5633c7ed-b209-4edb-87c4-1591a6711b32","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA230okfE3ypE2cGKOaeShQoAFaVXd2cqdxvNF0z0aJbE+3/Q0l21DbqLUaq5DTg6hSBZNMQRlZeI4tEyrYaoqZEwE0S488enp7iNobLapXOhKJh51HZTr5OYisM33PpV0T3oueFDntI89S2WeadyiDMAZnC21LhlNBLymI3SKDHOfP3irO3i56vdVefiwZcu2feTnkndEoVNKH2RFkzuuIl3VHzydhoA67R46wMkvrFDR/pbHUtu16px87w6NHb7OrG1z31hygTCHLnj9lyRrggOD71983WCgR9ClnqfXPnH8abs5bTVFZbQOa9LJNYgKbIHl6XSyBuJS0jsq9opB0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/raghu/providers/Microsoft.HybridCompute/machines/exttest02","name":"exttest02","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0a1d0915-74d1-401d-b9de-8da031c92b95","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.002","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"raghus-desktop","machineFqdn":"raghus-desktop","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"raghus-desktop"},"vmId":"9bbe41c1-74b3-425d-85e9-f96eea614562","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3k23bN0aSREq/XAlv0Ny1nYCZkRIBUiARiTh5lnfCGgIPYLrrlPZyFJoShs64YuSjRwpWM2WeK1CRzEgi/FnIFqottM1upiUvGEWEv3ANeGiM+tJK20+vUaMP9bUdInwH5ERETbPw5+QJmzZhfs997MGI3prkJ4CJLapCLFsp81zBpjOIzky104S3i+FHIgnipMVOYKabGI2JAF5Q7IqglcMfxbHOdKCu16SjnLsk4Z+L4Qy1WkmaNp/LIf98giSfh8Z/tKoNSTerdGp/IcPiAhSZ5xzdTko2EM22f/NTx1DZKUNgLm+VDDYOvq4K97Uqz45MGeC1K1KpkNZ1MrE0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/duyt/providers/Microsoft.HybridCompute/machines/duytproxy2","name":"duytproxy2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5c902191-d869-449c-96f9-ff355ebd43d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23002","status":"Disconnected","lastStatusChange":"2019-10-28T20:17:31.1150005","errorDetails":[],"displayName":"Client","machineFqdn":"Client","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"Client"},"vmId":"071e65ad-7244-4b2e-b97b-443e997b29ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnHOeSmaGqmqqevsu+RIzIN1fQ/cU8hmjhgrUBNKYteUaHvcGN1+B13YtI6hJ2OvUoMWFpL5K3A2pAz4483j0HjM2qJfrnjr/W2kBBHhqc3kCSLZ6ZgH/Hx+t6WOfaVisq6Acmsfg+qXh98gK3fJ/bvaHTLFVZSHLop48srp4c4CL/4IBlZ9qEQRuyRPAURR8TfKoApsJZB08lPHbpaWGnRxpFs7jouDLaHF1rCiNKWtFQsfuGvJSIxk+it7kcH7nfZMe4F4Bbj4Kt+VSR+7XMmECp1pNQLmqpLDp4jimZZelMWXvC41RwjWLwEJ/Xv9UED32uUm+8iCJ0U8wbLBrcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/fr-t/providers/Microsoft.HybridCompute/machines/fr_t1","name":"fr_t1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"46407311-4a42-4916-9373-e17a6d39c1ee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.002","status":"Disconnected","lastStatusChange":"2019-10-28T21:42:31.9273539","errorDetails":[],"displayName":"FR-DESKTOP","machineFqdn":"FR-DESKTOP","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"FR-DESKTOP"},"vmId":"093923bd-267e-48e7-ab75-4127b905888e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy9jQRPlP65J1xWUuBpVJZ3wuaeT8Wt9RWJ6U+/BpzuUXBuAtQ9CuqCwJFPlcC3RpC1HowQtujmUk6tjokN9SiSwyOOTRffa40cZczUIcnDWHXAMi3VD1zuQogtrp0jLs5YTDPTrDzldZ8MrmGSvWzYmKxjcke3dQM5peyjyRxuPX7cZXUtMW46aQI9dPiN9yUyX/pNOsSjwb1tJ/vDh1CLipQCgSDjUSnWu4EQzMb6eOhFdMi2pquHCC7jDRr2QQ45YBHnRWUbYP/3AZ6ciDhgbZSrk2WPfBQWUFNm/HGM+79X++DG0hbMjoYuiXNDEzHGTRsxOhWws8DWaYxRiJkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1553ea3d-875b-4647-86ee-bb37b37beb53","name":"release-1553ea3d-875b-4647-86ee-bb37b37beb53","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1d7c6025-0f58-4375-a849-9e127a741b2d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418916079277352206400515461442446888437202628162646529254357239058294128098475848483124597863531342202537572197571098955716813987608842586042843880627480668647862405391255238624856422986864161643427933073963222636374014577411292846698967662251843898960271263684592808263172376792069349030899390281224677448508360639301405474403617318572343822764735940177192228664189004223419511927198684037013146","osProfile":{"computerName":"jianyunt2"},"vmId":"d7e223ce-7e23-44d3-8e99-79711fb40ceb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyqk/mtz2pbi79KbuNgzHeuAWZ4GveVbUy9uBXkiypcr+10qXQLNNpGiQwzahpqlLMZcU1rRhAb2nrRvUVIwO+4DbwGFNLiqBgNVj0R3qDG8KJBlMf0cEMWrusFXdDJmKkb29ebmRjhFRvYEtfs+LVzh2M0FnRJp/4AbVWfov3NsFnvkKu44m/NcDxNJMzJrxjA47nIwgHh/Z/TldNviMpioikODDyp3fTCTKy8IJw/vPhESFvKlJ6sDzZ2CIMK1/bhLaLl/2eol2t3bTSpTZPkImts+6FTz+r15OO7UoYDIv9hvBegJfRsslqCf/b2lZx1qz4PR/IpPIyvUx+UtpzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-aeaef18b-fad3-483b-b9e6-1da674bb12f0","name":"release-aeaef18b-fad3-483b-b9e6-1da674bb12f0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5bf4762d-a76b-4a0d-8b3a-cee71c10c4b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418286113841480829939058366931583760586618779446132047486636709125352638989486528734274979179790837354707652496396345145757055377614458429773820262419999622796238129529832061506971669713305164146555770232894497769052584828710713669286133887018512985925641456977460026441028371526053739791627911381795814987139231178913975078265598519879529869794891457446175423279767288004471769166729787824605921212188401444109291062089","osProfile":{"computerName":"jianyunt2"},"vmId":"08e2481d-47a3-462b-9b00-afea171cdabe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsNu+zSGIpXvw/kiS5KdFBgDpoAkCnj6DKzSWCr804e2LCcwIyHcCBDxeITQDhDJBB9GZVl6cOf4w6JKzl4d/+S3psX3eRPCuKS8jiUP93WL6b3p4U1ClOQxWaITOaIyugOJY3vXF5A2iYbGLh4yAtfTdDewud1H/Q7pdU30Jck0yVHstlv/1bof9l97lvtp/SrL3EGQV6DgLCGl7dMeeHRuTYGfNwmGZI+S7YH3M7tep3o3peWuXxUqCZW8+WWmHkk/bz2AltnS7WE+2omZRxvvJ29jWNpihEI6kiwaIWwwHsoj9AFQtYJz3VsUaPE1xvyqt6XDCoaOW71wDSxr3TwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9fcaf8a5-8db7-4808-bfa8-09d9a2dc2c60","name":"release-9fcaf8a5-8db7-4808-bfa8-09d9a2dc2c60","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f738569f-1f3d-41fe-b785-4fe10e772826","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184778441606990876950497617628238313963901197911506126729666976500449672973971785019881120248382216515038286532028684256685737073669436929261334103736949659922973908941390817977850956722249510754407241112768925816114335178489521682172056150640094683032781387246122590868276065898787658667281969411535928574448150128888625366392457432154165436390846134485155071543","osProfile":{"computerName":"jianyunt2"},"vmId":"93f1fc27-7c17-4400-a2a6-a69c6d769cba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvAUAsAGDF2c4BBg2pS7X4uY/X2SNx4yxOILUmaLZ0gNl0yYBnPSAubqUTeHM9fdTxuRTTBeThxTec2Q2oV5Y1dYUQWQ29pZwRbQ37Ob82P0Lue6YA0IPl67g9zxiFIV5L5rzsr0YjPH8zu242damPAYsfEs+sf2fnNNfJAUR1RrfZilTBfuk6bLvUJ07/dUl1PB3K84huW/za6FgqwwI5dNuRy5cUD91X4RHbgzmvlvCCNk/vuhlFavQhF31myLG1KNNkFm+5wDL9MFaNx9ohpF35MQLCBXdppEqJeMBjFHxV3ueTTDJ3hjTwwBrWxqTPkCBFTxxS5RRbI6VHFmUmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-52120dd0-f419-46d6-844f-995513015e02","name":"release-52120dd0-f419-46d6-844f-995513015e02","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ef025dba-a4b6-4b52-8ff4-01036e5d58db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188981689465938468747101359019564426925266564547986108065820959861944485304565159989227694236713831420988186228767736487954849960642687265179957061331517857381156116781029734548699411494612666162912527439406887663128268923628017355514169421122398216625670247327504539286695773800348737242708761477937114439168735337921125781591904383047609793888350776150132968825947251696320729107221085018408326840018411403279757120727587666144188756193874962174522649635323964379","osProfile":{"computerName":"jianyunt2"},"vmId":"ca5d4dd8-2495-4323-8e9d-0d36275cf6d2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8IRTDFn3pzdgnZOKPkzMb7GJUhkooKkBhATR7L8kuK1V7b+gcLTStfgSh70xYvv3Eq8zrzAsJR8nn0GUgb7CiyYkbNhGJW6fM4Hh12PpsW86S1nt6P0BiZ5+9VQCvcWy3XYOz8hXhY45uLJPo4kuu3zAOeKobDi+PnDmcixgN9Bf2rckgAxk4pWsc6shJJdawCoxZ6OjYMOCulzJI8EP1WJ66I0ZVjGpWMoum/FmCZ/ne4B4bEZQ8x6QmH3WubyP12FX2G3aVLL0aYeP8PxAmg/ydUmV16U1p17Qp9N+XbfUES5v1K3IuX+dnK5UbK/ujF33UUfU1KboRARgUX3jmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1aaf4a81-9d44-44e8-aa30-68ddb3f3ee82","name":"release-1aaf4a81-9d44-44e8-aa30-68ddb3f3ee82","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6971772b-840a-42de-b4f7-f05eabe93e0e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186923378362147881741798537688206964377625327610716887182929174647021144733903640812176394391275125591574481852904363198540672244704644335355846673495442592287931511216513629678998701105426941169957884861305685858284845397756497829652076211621703425600913119567475730741602295746264699397347794492540350348885278792971598028523981922171506064806694639292482986514124581869217797338233176838017334599121575256","osProfile":{"computerName":"jianyunt2"},"vmId":"e596eb8f-cda5-4821-8bea-2960688677cd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwfEvdjLLYQ/weO/ZxIR4wd2nbKtL4c8ySj8B8//URRlzK+ZXJmi3PgNLsukGWttAFocK+FRfZBa7gKsF9oFLLs6w/kK1mFXODtPmtt950MzgUgcyOlOzmhubXxi50zrXHSB9k0MWUP/UFuyzkbXfIMvL6NtGkUlAATaybvfL3UlJEJxFeya2s6+0yX7+WoHUmfti5UX5NioCmDJxk0jVRSQDp9QoucXwZgEnOpEEzoBp65fSY+4NWvVs15/5r6yy4amCbltvAFwL9SIXc3D/cjA+6oRNBFK5LPNwNl6TVJM3L3FU+XIY6GI4MSLve99OKqmqzlSgjegbGlE+lA7TJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3bd632d3-7b8a-43bc-9ba1-dd67f99bfcbe","name":"release-3bd632d3-7b8a-43bc-9ba1-dd67f99bfcbe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d5c6026b-a7c6-4e9b-9fdd-63800a8748ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418489753781949311725667130044556662217557271537865284590299855176210613958849545665058751233527783223738232287193234171587370939116523715225890231058951843547775933845963522111047632530511458652258437949990547921255099525585031222594777514003450599567401841607799936436853945230227237888191429848681570619701224856221419272151836142912019753987998750058978","osProfile":{"computerName":"jianyunt2"},"vmId":"5e6f2fbc-a5ce-41d6-8685-244fe92655fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAriOKNbOzYh6ShFPVGzquYhJl1qsPPgXysasQBW3vAjtX1RdMYaivMiOD3MKKjnuIA7XA04CocYNsvd7Py9wVCRCTGiPBQKNwooSNf2RATGSCTzJ/GFSJubxfVjY7cbb2IGJt/GTrk8I2FAa/0P8YHjd8XC+xekC36Zq7RkXNBvHEODgkl4ZVi3Sw0md6aTMh7Ekgvnnxjwd5AsAq7ocvFBTAHZ+VIRWqY6K5Es9dOdjXr/rSR9qICSSfowi+XL9Y+oQqtc4gT33hPbVlkeRCT0Jm1Tgp/WSFy5d3FKmh/uOZMY2+2NmPj6X5BkE/f7Al6bnQFATXeoB8kJkwEcJXewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-291883bd-67ad-4130-b6db-8c3689baed13","name":"release-291883bd-67ad-4130-b6db-8c3689baed13","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d4903dd5-7ffc-4ce8-862c-224f14f7aee2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418763552961988810098955572366699053288099456657918683232413415464598692725894307915379861112189036654632996878344039410273134317242215958148172682801432438449286877583072699662479959193636699369804223902559733681609727781117535419180970852751922361472741792988064891552797864981953867660599276447849624701294528963949785684958013821113905142183796707776400235598125358945929495135188052","osProfile":{"computerName":"jianyunt2"},"vmId":"82aad7b3-16b4-46de-8f4f-42c47b1aaea7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAykLf6WSd5QNhTN6WHnjKhxgj8AmQKPsWj2asiwT4Di4UBPI8GfldtU9/Z9zSSXdb/tXDjsTB1YGTnh94c0NoVBacQelLjoyhyFS6AI01UvxV+p0CoVYG8CbI7DpFJ/4yvHXcIqEp34xunwr24A5+58yiMcorCR0L6WfFD8BciDsJLPyWGbSCNUQbZlic7e7nqWVaVj1q07c2Q5yYj67Nb8lAS9O5lQ9Zem7+QVvZsvFi8DAGGf17okQ14BMl2D/5CtRAqwmoXcbgCuUYewV+uHVkUlFqfeAnpCe/gdMPxx+/n/aY5UpGlYAWKgFGUepnvlEOuvDuAr6N4g4TPWqXDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-799f0f03-d050-4f7f-93ce-578e704bcfb0","name":"release-799f0f03-d050-4f7f-93ce-578e704bcfb0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c8209c45-7af5-4e26-aea6-c5d85d2ca805","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189668387237466223210088155151613185189143257775846448998519266899793631378488156235717319064912788560019129403606885172777619404785401816248829908082225266400610071449316665615644145716636482707765847329415604176790957857748047925301533060995244077492166672964274383034951898631767798287443861463046767048745175489214543411557100579084527369461346149780657637160785438305985","osProfile":{"computerName":"jianyunt2"},"vmId":"4deecf7c-de6f-4141-b783-d9c74579efc5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzKhW3xVrU88zdyvA179iwUDSvUXbfw6t7NB4EtOji84SjwA8rqcCJ6UwYVgb9zUst2kZugOTEo/Dafi3uIsjZUmaXMBnHNEQ+c7J/6050QjmtbLzI6md7q8EQjA6xvLwtm5nFl4T7uTOLo3lazymHhful1ma/Bds8I9EdcZYWOuldZlN1IB2Hc6JYtwFZymO6MzqGUmWbaAkp2i5Ypzz6k3wgVUUO34QEH+s/O8kR2d3sw4WfJVxmW9gbvz3F4fEz0r9l3S0UYqZxmLioPnBrsHXgAVd2MCaCNo5MRGAUrdMVRSd9sOScypcqmQPU2Bx7qXmenV2xrz8CVmpIJdwewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e813f192-0500-4b72-9f92-feeb3539b205","name":"release-e813f192-0500-4b72-9f92-feeb3539b205","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a941d428-da8e-4c04-911a-f6ed1216205c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181893950424844314952830016334192837879565106564264335263990419189683247595736258504600688723406361853439531320896544138706692863565256759483196315310710531331365552279445997420163663174339515199663348706060617350939303850161973573260127135523754244214438716364983561579194202059681017626060491143885541186619389542641160794387546555846391656135516015384452847239377874645126311","osProfile":{"computerName":"jianyunt2"},"vmId":"0adb73c5-2481-400a-91c6-e7dfff8d8b5a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxYHwU4QWLRiM+3Qz7azA/3J2PmtRAq1PDFPME6GS4eQ3hir2r8exnb0bayaj7oOhZxh4H3TfxiCi6vrtNFB9CPR0JgH3VQS+LrqwXO8Cky+eJEo+CUA8sVT1VnRP6SmSvPdwFHBHlJAFJ3sPu6EO9+y49WwNvfeuPas7vGVBpBhm1gg+/ut4xgDdqV1GZZ0Guxi23cgQwWcRaoVdqR9Pnni6KO83Qtu8RiFjuyOtH68Jh83G0CFUCgF6LUJ47QaZEDkJ7CalK5jp4bT+2satBQyKI9CM5nQG4+mv8H5taUUHhxMzBHudD7xiOVmz7XVKxUvGF4P8jKMtGbyHInHg9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3351b651-1215-4b60-9d4e-576169e2e91a","name":"release-3351b651-1215-4b60-9d4e-576169e2e91a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8ad35135-96a7-4a1e-b9e7-f7dfbd054162","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185613897384601338414585602984171118634031828160356634924590617785381649634889663703752913246488710383745197702285991395137936710276691166779321434271287736744686314422278442491340157723456651958113085743431749160152380591478888225161623019123948195938776135217543537149913685142231869431567854359868614781442263215403821862218340752129958729291392174889517777344141394313818662371085330239423681742588432051528","osProfile":{"computerName":"jianyunt2"},"vmId":"8c95470b-b4a7-4b30-a0a5-97991e005569","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAplI/MEcwKAE4QsI/PVpeMD4sdQDBICavJTsSVu4NyEVwFW/X0sO8GJlKhP+WH1dKLGcL80wj98KV0ZLuIyrpY1PuwwbBbabiws4XniA4uDrImOGbhh14AgZA9exDm46KXgZrOBEOzvQTbfhOkSX4fSAIZ3pJhZYAQt6DVyY4UcAbXd0GT6pDGp5aUOEj9XMAIf/JxAJ7iDLVTRIShqjbAHIaxQ5PUL1uzllc8SWc9Nfr+22oK++TKBqznRZGDvo9MaCvrUa6XP1StLDl94SG8K5eIO6o9KrW8WCv6jDb0XrW7NuvGpUARLPqwiVEriXsbEZw+CPfKYxOJovYl+eZpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5dd67d3a-18c0-431b-891a-f192253e5391","name":"release-5dd67d3a-18c0-431b-891a-f192253e5391","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f738f111-6018-4f4d-8317-1660eeb618f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418665723081627145530917362393815860812645254522109763172945634351466092956945174880222040125052682091455031592548883056746270811724119906199986013037338534113436476389659212013160768839445968268413771179624129494622526271276969410812366096677812532737428373563548835015926113677245458542772085407789742640039042615127611314790464364588661379788833279866264303486789742541231870068269506166422833554565828612363412530809277614372131439","osProfile":{"computerName":"jianyunt2"},"vmId":"c896cc76-5c8d-44cc-a7e4-1f28f3e991fc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1LzCrkB4IkDIZLCrARlYLkmnGGlvPl4U01X0O/B2JlJ1/KnER+zJRn+Jpv3ftbC0tAu3fVcMPYjYNEkvvD23w+b673mZOaVFiS4yAoTZjzCnRiY49vmEsfygxVfzR2NZtwFT2LolkIpsSRny5xdmYz/mzOldbMKFtWgjP0XA0gR0ZXk7cR2KNFCpD0yPj8WJ8L8yBERtZ+PN/WKQL+DGOIRhgnPtRU25kNici6wQU+VMrTe+y+/zgmAoDi6rwSbycVdGx1WhJyomlZjpBy7aGOSU1u43vJsgRlG+mQV/G0hI2pnsWtgndGrjveUSqNaX+FtrBwmtA2CRJNRu3zWClQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4c3b3214-c32e-427a-b966-24ad25d13746","name":"release-4c3b3214-c32e-427a-b966-24ad25d13746","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2dfbc3f1-681e-45c8-a2f7-34d08f41b036","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41832763433788134356549588014699711947622698129790510625986380895756161991878483869661662764813345433941653026083885173013769086437934627797775842433052783069594531392633246073845716983133685036537448053705338820470649551405368838251093870878786442812195034922189527463740295754652460507677550785903405438759951833108190224008690514043521315583945394873377068311043680125486231730479419027628789821525740171485580","osProfile":{"computerName":"jianyunt2"},"vmId":"2d8f3bad-07e7-4fd6-9963-1bed221df69b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Aj5Ci1804BBseOyoITWIiBACVxTmzF16fAhOF4pECnnQbdSR6T3T4IiABEU/VMNnVl++/dUSna8ViJKLc+pBIoT7HWRahDwrRiOYTQwFXMA+S9bnxdcmiUkQKdIpJIoKV66XimPOE1/4HMfbzvuyUv0AWfWMwLcoWBF0yACOQAbXaDIULzb+7xW2rs7EKSUWj2YO8pZM8iCXR2MdOGUzZ8d2+APl+trw8Ghd7SecJf8jdtS8csdvlGiW9a2nIHV75whBRW8/FAdLPu94jM5Wv5eoG9KsDE3eLczSNwg4LqQXNO+YwXEEIPXJAbLQETP02I6qqoWhdjjKAO6uh9IpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a4264bc6-5538-4631-be4e-54d002fd7628","name":"release-a4264bc6-5538-4631-be4e-54d002fd7628","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f19732bf-c845-4459-b1fe-bf6de0ce54d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418627382980218563346970812526618815525412336921731858693853777127107069054383800649275385146050115753992707599421853346243649759651827923014633322727953379423231532662797152499013799961959504620795637336328205164075277780089353026310042338797157172731090530291931921618834056655917153371826502166842169464335783969992233569884852803897653739888701962117519853770326342880766389814128251618247931","osProfile":{"computerName":"jianyunt2"},"vmId":"4005a65a-6864-4d81-a0de-54036953d7e3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtsQNye/VmKRRUuUZNKuNs/r5tqs2OK37XKD2PZp50zEVfDSA5zmQFWJsL9dTmKVUMg4BybpfSgLD9pPqrFm9OiUxMDwzb1QsHrtnHKwU3fNwb111tgt6Mk8OREIuJLXjMnyg/fGjTY6qEbL+GQSDL6cwbJQf3NtnGvCL/nxvBV8l+hcm2FNszn6SHIhwCSZyvMqnpJ6RAlZQ4dLnBf4LA0zGqsYSJsEvd2FoXNMjMUIGGUgEgDi0cT1YzMHBnTYt4oEphZECC9NVANFDVXDSLkRexJdXbIjc9z+LXvj5BLGAWmhZuGbBB9wItCXPZWTFYLyDW0bdphtGEW3g6ibgEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0200af70-5b23-4ec0-8ae3-f0d973798375","name":"release-0200af70-5b23-4ec0-8ae3-f0d973798375","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a0e0222f-dec2-47a1-b2cd-3cae10ef77e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418337824768367646432721063142189041901179135389128366632344121332326462558861542912341364695591837848256907388719542536279366035076719357244637394760471171442636277350942025977392286595038607251992064391817692646407534415264437037992811394822613396107430687246413279714437683765219147893493383070570392958079445751725488977086524856015049362474714735697489989030761366773514806217343129469721893641323739639627506817589721018704301394727282538975575715792382719368416503599499293","osProfile":{"computerName":"jianyunt2"},"vmId":"abea818d-ff10-4f25-8a2a-7583b796093c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Z6WcrabZQxPATVU7/SdLqTkyeXrmouHNE+fW47OJQ3z3uwNqXoibbNqsdlri3DRx/uY1pNaajbbHiaFIF+GZaGcGSe5SgSSrjv6kYl2fvlMO2u3pN3fzjdf21D5qDvzLOHkNpL+wsgCvmtH4PlR2WKmC9NnSO+70KiwT9mYGZBDlGsURtcYiEjdtc9RwdgUO0VsUG2Nb1EfxubOn6lHwFHmC70jen4Ggkqw1H8hYVtZEf1IDIRfjf6aTbyD2oqwhxTErbJql6ZC1pB8lml1c17XjCynsyekC8Pq7KAsZzlS9N7uUNQH3jA8oQTgqKtLn5O7GehkSBgxjbAK9DZ1VQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a1ffd172-0684-4c3a-9c73-83b3560f391f","name":"release-a1ffd172-0684-4c3a-9c73-83b3560f391f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c83cd589-194d-4b02-b0c6-f08b5b4b5d2d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41899683756932376806311464440391612827193631290727960132316985052916351712025893673857986613989272459225363064536612669195487764913841574213124412259818263364998057117128744346850313560429772940978906891207553548424051165193818565982310544084165335314931351665612790509380134590682884720174747937198385994634416274473238989961521730396864545220543639768099767413685002961330632308246346553840905997084","osProfile":{"computerName":"jianyunt2"},"vmId":"97dedede-2057-4502-8bc6-77af8046fe8d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA38dZKfjw3WpOtXOB/FWkoPkYJWyasScRYdu7iOPtsqo0gtli9qp8dmUhboAVetm4SRQmK+ThVOqaE9yY8Ou/jd5i13HrOkCbriW/rWjByx6ICzJIyOANcJOhK9tbzlN9kAwanznjlUDAuMNrNU0ylTI4gTx7q/ubqr8PEX1tOEJ56J1K3C4UaozOCTcrt4vBhEey5PdhNAzWUk/ocI2Ol2af/3pvIHoLAWumUd1lcAlpI335VOfngZ53iQZUNg2TxJjfQvJWISNi+k29ptCmdIHG9CeFyQrZqB5gFRVMU20WGjSCe3K8xCGj2UfyM5o+Rd3UNCfl1Zhnq1z7Nj+IJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fe4f62ae-f9ae-4acc-b3e6-782f5428f700","name":"release-fe4f62ae-f9ae-4acc-b3e6-782f5428f700","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e5515cb5-6fba-4e35-a460-2f44351093a8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418336481416848043512997582864551196221783939032175971344971406823834568048195098178224834924485522485574913606072299304402137647807716177338243326621141076814382963397378375869567764979746581202129767272588143997779507363474105073326119454434102098559622707570562881391778784435811498114951197379726492134239242577930697835243666351745878396375321574601484621333269766950013752746631849909515578820372064177172235647956978713686287514126032700726187269","osProfile":{"computerName":"jianyunt2"},"vmId":"8c19d6ee-e3b4-4fdf-bac9-ca84d933c40c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx1h8cUfUORWZ7Q3SOqT/9Md+tBl7uJt3yBsegnzJp/4Xy76ttAtlzsXTecIK8RJjt6NhdMLX6nQLvro0YjCZrZqYLBaED44VAlETxOaA0AElC6hhctAtOMsqqEBC1VebpdpuXyJWb36KwswY+26BHzrkcxZndsTr+5rEUu5wpOUMjq6GnXi6vmO5+w5M62oM/Z5f9JD3zvmeXE8iTHRs0PXzWP6C6gudeygRXK85puj/u/kloIDc93ERUabArDQLhY+haJNXK7e1m7ZWPmZoH8lTljhxfn2Jpx0uT8f6ldnFoHmo5hnJf/VMZ+oMcCcLlmGiHnp7Zqb3Et0oqAKVHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2983dac0-5871-4cac-b7e2-62855dd4f38a","name":"release-2983dac0-5871-4cac-b7e2-62855dd4f38a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"869cc572-490a-448d-bd04-0763c5a78163","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41831707655155146139573153933116704308341214452931606866901607350254653775444189236313167431247146054498435452432154538277740149109817478532471162785790859243900996733588350540648594951198691724255087252217770463194041996614202002449917563182361322665453936281911822823675774110709212491248784896292962404464200183375232254641474118188736870017603195671762839","osProfile":{"computerName":"jianyunt2"},"vmId":"04c83412-e632-4d08-8db7-fc9e0a438b6f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyYFUs6mGUq3IwCS6bFT9EeGSap2/QTq6vd768ykbIyOTIAiwOFLIx7/dQ8nc8k+u5lECfmw+C7nv16bJxZnHbKFuPX5EX3dGvN0TnVIgC5nZ2Q94uX2sCiNz3K8rmpdeLzbznq7nNyE6aI8pSIlLzenMqzBqLwtpRZcd3UPdlPdmZ+GyiQoM+KfmlHxDXukO28nvKyhigeBUPBXwqOef5orKRCbQcHl9wL9VczXcsOOuyfxiQQinRCM2vmPNwonYbp9TjSoiBl8tQNG9X2nmVdTAem7T9j7Ka1Eqf/jfydCnyCTQqQEoBdoDBlkeB0dOX3Lf4RkqMq133SjLbGn18wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-651e8790-5e75-40ea-8d6a-c01640b1ef1e","name":"release-651e8790-5e75-40ea-8d6a-c01640b1ef1e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bb8b59dc-6e5c-4a64-b806-d786a88ae44e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189282286925774307240511966578566841837681103762284469001968770723249843136376677388727724275769096766611994734392017256760770552506133293362070429112545201677628856415460672679733152994631698233355869695429766969586251297452869094290474131243884891715000592078139699306763276990587562317435249345229449157378518853766490160641627302","osProfile":{"computerName":"jianyunt2"},"vmId":"1371d28f-60a9-46fa-934d-f5eb3d94b42c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyH35BtQot9wvY/cJTGd/ic66HPGTwlec3wmQ84N1gTbRKCclkNvACx05aAcPom39hjOnXM2x45heDMyk3VG3qeFM18sXu04j3mZMRTjnN0ItrPe0cAl/izliEAc4sZQISOvL73Pt+v2NaHq0DXyJ7ffK3vLlODqA75Na5F4OfqDF9yj4r6AW7y6M7L9IG37J/D1XbsOW/DXG2TmODUsyBk+UEveHVMLF/FLUeDrsPLo3KiU5S8b1FOIe2QAjPm7e/NF0BIUZF7XEz5G75GihAOxQ2CjVa7bRiUgKyD8DAVUok9zkap1CIa391h6ZzebFPu04oIANPxVhKtZ9PS4HhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-012507a8-29dd-433a-a54e-a1817b926fde","name":"release-012507a8-29dd-433a-a54e-a1817b926fde","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"aac2f17d-2ad5-41ec-967c-c9d8eb975b36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418347492255086806114284177756883453016951480879083029242635842256300367957657886777967954476786957661908152468849091840461744234749103757235937589931539606172625704371372530651485934877126812299338108295659533810603380561616396210162801071375274096649990484098785494383261096559851753676303200965103333700948002045234222325015217396753304116545971095687166048217775438123714366533659457295297633054639623","osProfile":{"computerName":"jianyunt2"},"vmId":"acb730af-9bba-41f8-be8d-8111461c0c48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmpNV/a91D7YqdKP07TmDUOYXzV/IN4g2CKNAjxAguSziclwLV0GCAkFE6ICoxw6G4X5tYsazJRaqI8ebDYNY67X9dRCIA3PcaPImamyiLNYTQT2aId4+Eee5OekcWsxgoQ29z10nDWMM5GO+P5+hzh3cwPEv+6byEPQzfjG8NlJ6MUiOKjY/x8LMng8g/+TJkXCtq1ZCMPMCAT1NCebLRK1VpgKY2N5n9sKumEd2vEKSps2dlsb4ePnFpKpwuwKMfl2MV5vHZODHznubEbiyPlHm8g2668JFzt+a+OT7w1ijDIvwcToc8gcHsgM5pseP0NxZjpRgqArDq/bPKc4N0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-78db9359-05b8-4e7f-a3e1-314a75a0b21d","name":"release-78db9359-05b8-4e7f-a3e1-314a75a0b21d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"13ae5d2d-3054-4c93-aee5-35729b03bad4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825838504327823131207612513129943956164237028048828634863627902598963285063986388238966811435551526964871130321289749514865421652991461093715378310116229558681794595821250766790973882646530729110602580984147621622601089203885920387792073658735344158430736987627371567396749240493145484916236697512230713369059107535013477597948674684786784648498469725076899323938207886888623725111148365220125377483902581560204649429201690216196","osProfile":{"computerName":"jianyunt2"},"vmId":"cf5eb1b9-ce19-4d3c-867a-ece1c489e20c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzSrdl6fMnp1J9iotSKB7yqDFG6jedqCfWfs5ssE3/Ut00nsZV8aT64HFV60Up1fvPg0UnObRFsAmfRpxex6W04G5qpGK07dkR1WK1XxKh4dXiamHRMGBtZGF32IFgW4zjQpHL2oLfyTSHTvn218CGRnqrbb6AW1HX71+owg26jMiA4CT+/9nzGByT8oFYkh38ESBrMbuG15qYMm4r3aK2SJ+dmPYfMVjv3FuM5YUJlWRwrK2idujrOHk6M4QjGI0Bb3ikLs7hz9UZ8mhFR4pbaTUNNI+xRsy0pDsjF7joDGRjupDIDZ7nWrKu7CTomaX59XyluMk/cYBZD2s8y6MewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0df73a1e-bf09-4b48-92f4-60d4dd3fa6cf","name":"release-0df73a1e-bf09-4b48-92f4-60d4dd3fa6cf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04ade15d-7385-4500-8189-7d3749630b32","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418732121839732240096764959541571224228554341742071120998548184155552365116687287273038327892073358769541382782228621649054075238247431296136537876698029630997885923781592623885936907094736808576615548509294585269238878254845036806963703030653267244043740734634906208925931403988431566805375170109491162639983393820819790199342543774825926565261998543752325819192231458","osProfile":{"computerName":"jianyunt2"},"vmId":"d21e6417-acc9-4882-a230-eea3076f9e92","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxlnK3kqxW7JWphInks0JIdy4AS5irIw5JHbOXl0I6gb7/dkSqp2JRAyVO6ACI3cT50uc4LTdN0WK9Xn7/q5cqd3PEfowStsCWXe0X8LLa8teB1WwfOPB3LWj5DBhU4UVImhXfoIuACj1aSKeshinHHcRFwIu6KY5fBSD+UnTvXn308wpdAzhkzNPNuDnPtTINnl3gdHw20VS5Za40skINgSChCxMbtxL1TC4Wmxh3tsmGsqPivhUOKONgASguzmh3RJRmvGOR9iyQmXcdIW875DOcNleuazJWACGdaFc9RkpXjfbaoXXKhH0hPNGQNbLB1KA9iveozD7uQzVM5SqHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6450b7f0-bcf7-4b9e-a618-fd9b7cd0938b","name":"release-6450b7f0-bcf7-4b9e-a618-fd9b7cd0938b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3bf5d79d-7e39-43b4-a4d3-787a2e978ffe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41878269155302176516769202704522667523511466343435682479959383389319499981977944970758445910114446382654398465058099840775411816578067086783849618181955211435947289513281047807559373769629744508861776686281684765103255909044742561322434192589939939765666359021051172373841667996208370747638361550222682175037542659983476414372065513376461945806323975573206931786536887128106409706423285455505226635719837066476853","osProfile":{"computerName":"jianyunt2"},"vmId":"313d53b3-38ed-4383-93a0-aeca4c32984d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsLS+icg8N91kkZPl2t2hwlJQ+U6UK8u+jTXJrJWBXbsSf5sxWla1TmrUy6T+9zWVqhSSWl3CSvlfP32UA+XVuXZwvIMRp9wqBcKITREOHsQrbTOoO0/e6fgm7+4E3LfOgHnpdgSbPz8OlkMlw2PaxS8vyKVyWdhK9d3HJuoAzMULwJCZXIXwlnu7DKpe9nL18Bf37z754CVRRihPjMjfoYh0xHRezKwTUxwRvJqQ57WZ0c1Deux6GANmK9eLe6NRFw0kW2mwg33eLqMPkvli2ZJf1x1d5XSFAdUjhCmx8am6qACbN+HEnE7UMWllp+1pTE69l1yoevRV5csfu/PO2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-30da944f-d3fd-4ad4-ba16-a360af332d3e","name":"release-30da944f-d3fd-4ad4-ba16-a360af332d3e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"022b3619-c915-4c52-9023-3a6f2fac36d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418818285321848878064829161747968063930270775878254542074052162502046429604316022537051826446115375131700331041509960651840123899139576245534736843795346354773685793566222794408371222288659309101795387334848831787079516572982556381686529758690816036312187152224237017898414274046616126657540202843675670688690217789350430092211123093515394498013642594486212565148543645945345511181622469602990134614076","osProfile":{"computerName":"jianyunt2"},"vmId":"9c817a4f-3c42-4c18-8c7e-0fe4f0b3776d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzKeTXysXVoa2JQVGve7jNIjSl8tBHAlh4MiPMvqbkuP5xd6U4fKDkTk3PsWWBfzzeiVh1+R/HISsrRmKDOvnAVdv17tO4z9sJwTjQSF2H14G/zZiWLh9cqj3RDoxRX2pq77rCdbi2mlvGqm/Yqv78Ksf7dTZZurKBRh30w3H8a99jNDCLcJDu+4WxlX/JcP82VKdNJg6CBAVxHVNJ7LQqhcuK9CIKCFxRzvp2V81/OfWQoqUh0IwTfOyjw1UVF/eDFllVhYihbYFxkUfdt36NciLybIKvGdfwt8fD8pTSIhyuOJpXrT+fyuc/9ePJOsxWKDsTN8+ehDID+VSG0xUGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-266973e9-ade6-4e54-b781-aa9998048314","name":"release-266973e9-ade6-4e54-b781-aa9998048314","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"19d441ee-ffd5-4198-af9c-3d07e9e62028","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418181568912761216153914043981796011594543488251991690542403026454943934972931658576111994486243330809584936362799913157337408951608197941745525085751985824223662281738844098752411786419261662874586384392873701162915312139279755748444139580431167082253986715464843219922761375230176163334272893853651149799515077352658432368703815328389251319391003144","osProfile":{"computerName":"jianyunt2"},"vmId":"5af37106-7f89-4b72-b88a-d584662f23af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5LTp8ZqdFaEbKJfxfvagqTwhB7oTT2lKNBmQVJbiV2dKIoJryeQh2QUHjvXl9KXJDdp2G5pytiSZZJLfpTPQstbr5ZQBMQu3ioEXQpOyIuMRgnNTW/JHMggLi1xIYg/YIScT+rG9VsjsPaFUuLt8W7NtFjsrf1ahr7FY5sW404z7lEnwbptLSzlRr3J20zO8bKhof9FVOUus8jof+vfoQQ4A4f6GgEAfk0ojzSwOPPKBIoVF32q9dh2zRaVnoEjjzKxfziUZMk/0yI5NBXa+wqKD+ERan4jEkijBIXBHV1d+9lL64L7rTmXTxP6kf+qWqnmQ5FO6kD5rNPS3PcpStwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-184602d2-9490-439a-8642-b18186c80dd6","name":"release-184602d2-9490-439a-8642-b18186c80dd6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8ed4aba6-c200-420d-a19b-1078a7b80aa4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41839891582503479173097486748799906266595199894626565932170394550951807636709941909650499728020892546211232272393203214426912160157844271532352492753477532317240783710458331219542131925135901237010488301722039661875786914844937571107831391508444490724739649002140220024491258625152272939379635284817640961653390132111755193890432599216952636313021941165576510878966559452469643246414552091930577104610795597192340192724935414374545313272321562698374027631783775219578","osProfile":{"computerName":"jianyunt2"},"vmId":"9b77dac9-0ee5-4dda-be05-5404d398f02f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXF2ikrcYOOVGPkvffSQAj4d7XbIWezmzOKC7IMo8aQ2f7r83F3Z1KzqcklpAtOko1cOMLDQ5WpO7Pv7FZzsVYJizNcIE2pIrzuLIicNT0Ch0oMk1b+iDsVj6T8vVFOsCEV58xCeTFnSVy4VYvGhgV4B58VGc03VhUPpSexaZlOsf4A3ba/8aEVSbzzDu4IMc9TEM8QOX/Lqb9W7i0B1ty/gB9pF2h5QjEREw0eGs/Pe3Ar/tX5y5MXWzsCLXHGLexsyi0Quo6l68nsY+EohqQHUK+ByEPCd58reyuvhdNHV6j/uBs5TjNQ3++82LlQB6sLrfXXneZ645yl5m3wphwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6b6d7ed2-bd84-4a13-a74d-bf10c64c55b5","name":"release-6b6d7ed2-bd84-4a13-a74d-bf10c64c55b5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6b38be27-02a2-4858-a5c2-dc358db7ead3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41856878892649652731544389564847650029379963762145779685437496475316315095109300182762384302433762553366699413864395207546877373745453654336640214475017728104426915854115210947029639824260975385854259023944275042128279893938555782140883568106613478805616347468109131388772051185845684225271161884268923470615056618175286652736742556582237335893921679764460237612620117520526061201626110397937988841847735917322","osProfile":{"computerName":"jianyunt2"},"vmId":"5bcbfd09-c516-4037-a790-fda2ead68988","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn9Gdp4TN3SdeFfy5qSq5ahcngotmMzyZ7aJRP/uho1kyS5S5A2LLQy9MtaSoM4RuyO2vUvF44td3bAoqgIIq+u9d1aDKBu1LVY0NcnfzDMAOaE4Q3YDOayu803Q19PKSBuqUaXx22Fv+L4EWmwmPCuFzs+7F3sbZ9hKwT0hlKMsQ4CM0PAcyE8S57yFNA2XHSTyVu8XxRUroyQOozKbkTAbC3PZzt9hYz30eLbhsL8D11gtMpwLRSATwboF+uyt2Fu4uxuSoiZ+Ob+Q9Ka6qwiVHtdbVerR/RwtiLe3gwvJrT006I5zsbJincptL7D1hBjvDWU1niFGOqwyfGWiZmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9dc93d3f-7e7c-4afe-9d20-f9e16e644242","name":"release-9dc93d3f-7e7c-4afe-9d20-f9e16e644242","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"43a09f8c-c620-45a2-9eb6-9a66afb825fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418798399381124520990222700680585366132595110395469949393845520740732975388829613535492559160920185244021922226276821544487748836793624277804691124256298228772615763735061808232349232176284596734632234875699345001546870927591024770670678062484882343232905389510590739749310805095720919927236824940756517379981669930123144696745441441647555481149042887401303943","osProfile":{"computerName":"jianyunt2"},"vmId":"bb35f44d-df63-4fd2-8209-c7e75a7d9060","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw97yAdPPJiTyoBDrXsNKME9r8uzmG2dBCcN58tIBxtbyRpYw74KjKCvbEdmtxsSTiTWEN/nuUWkr8u9FWQqPK7ngE3LPB5brTA68Whp3uIkT3jPB9CQvcn8Z05/1Z2t9Q+J1Wd2fi647yjulIyXuzRP3aM2698wi1BpGQpia0LYK6seLKHKu3OrqaV+dBRBcdbTmAq0TlzFLRJx3Atbb3DIOslx1Wy9GT1ftiDfe6hU1XVLD/emo/ssZ3ecD6lih7VyJ/u9J9Jzc7VJCemg8r4j/oUhWGxJeeLoMIlkHnMwK33eh1jn/PrNgBRV2V65MtgiA1N9DzoU1W4pG4K/Z2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-56b47313-68ee-4344-a94d-86366808f2a8","name":"release-56b47313-68ee-4344-a94d-86366808f2a8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04bc79e7-54f0-4c50-a2b0-28df4f0ab8a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418695092812125027110702818038940300062212301259777266335516726905647679134532749351812235215356930387357941941547235226374848657350492286739909917572751002667214498380601241539777825393198112963031407301626459105194372480641907737240321751851075404188535489842348542820918596113245248796052603932654509452932742870354015527337452356944386789844788963265168364159031329156392886466122551667","osProfile":{"computerName":"jianyunt2"},"vmId":"83b7c13a-2313-45d4-9470-f681fdf93006","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3civf/gS0RlKNh/8q361niQLSmBCIIaAdxX9wc0lf7zNx64rBqHrHb3rCrLjr262V0g9Ws69z4UiYZ2IwELsfk7X7pL70NScpms/dz71XVmNb4Xfqwma6LuaA5/CQZ+CniKw3doUJRkEjA4O+RNXfcq82GZhG3CASp7FHSAlUSM1qcL/41nZ0WcgnWdxjMkwnlA2mUOVPHyLtro23bQUeAsc/u4kf2dO55rItaRko0e3K8IrI3eGo53BC/auUXf5xzjxh0pAtYyKI2x9GuFU6hhwz+yZ0W39BtshGIDGINbfnvbFGER2vJudBOp/1bKlPHzacx7PVURJ3/s/wMsoFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f90d6901-8615-4029-8115-a9d11b7556a4","name":"release-f90d6901-8615-4029-8115-a9d11b7556a4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e61cac5b-4e36-4a5c-9a45-6475a761804c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418985651592661261980138631294225484537690548668475221069209026513773446832593742843324434494557685412431095888703672473015431247264762755058734100687171493414725932836435062259290377586196847589451166770713496570240170788073382683627363538514604747617753944469035959521301820541060252890783064761803411581969825991749546071917172186379426754889869474808522356572777573616","osProfile":{"computerName":"jianyunt2"},"vmId":"67a37e46-4522-4196-bb27-6d05ff98e6ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv0C2a+sVKqIHA4VL1jXdU9NSuZI+b/Xiw0le5OZuwgo7thnBoQVkF0mzh5j+1JSdkHaX0DqkeIjC6Nva+aOxyavqCKvOlTNlIjEVexkEuuFxBSdhFsdN04PlIY3w6wEhmQhXGpOWsthGjdlaQwv79IR/tc5oFDeGjda8OBDU41uwuMec9AMubQmNe1t7oZ8VdtRi21lidgY8hT5u0BXmKNhEGldigD9oH2vDA+Rbp9Bo+S8WvNQ9nyA4tZ8Ezh7wZ/Nv7exviqsPFPdGJT7EGpjXxv8vhI05QrzwbNcI6cTYnzqajbEQaZFmjE8Ll1J/IAz7EJECVydN2XB7L59W3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e7c9aff5-2c3e-4455-a780-dc7b1b04f590","name":"release-e7c9aff5-2c3e-4455-a780-dc7b1b04f590","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"88863692-3a1d-47dd-b740-1ce79791c94a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418521146973852682122688394856675430824614639482427389109941435912633584428122944118348610486682464980194319709405647253412616603636814038940790959038377864756268642684167926949038048746975334025201144088782288454234324847448506396448349832785050083824567670499614797689893528795224476864647607649456811416913445782167354307278665719801865954852234","osProfile":{"computerName":"jianyunt2"},"vmId":"e12d0141-379f-46bf-833a-29347ef9f264","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0HK4IMIM+tXy5M9tprhvV9OqL63MSOYtoZtD5XuKuidah+Wrq0KTdX7Wp6R9QzwxVMS2vDZ3xqzaqg9z6T++6U4NfS7xmwcQWgtHQiJpNZXKnICgdXmH1RGd39vkR6Z7THXSxCyIw3GGmCBg8ibYeb5KTWk8dxRNfMg2FdBHZVFN8KP1t9cpoEFVbg1VHKchsCWzNqdWop9LG5QLNKQmGtWKnMkhpH2O9ehs7jAdrlQzRqV5peZ9zpvp4LY3d8ppsN/A7l7lbfWwNbdZp407W3hHYKvwNjrV07Q0hIdDPEG9nPITNV4fOzxYXVaT82j+5cBqdJC2fxbNUWbUGzyhHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-53953f93-01bd-4d3b-ac56-f46896566673","name":"release-53953f93-01bd-4d3b-ac56-f46896566673","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"823a2514-72bb-44ba-806d-31bf4d25423a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825043516802634214683915665272027064546480011286305853402863351865185087927918434104979383444719419535652593696099634204539568113074220521215784307445178160987147523170398462768908627648548462813019656496145005103173224942156448341353257765251182727375927837361020766116701757278379369842466243199840301783785339975160224077602230454893254731898340316016329937375901663134546945070941840741186676480865066","osProfile":{"computerName":"jianyunt2"},"vmId":"1cf4a0d8-6ba6-4ffc-9b88-5a5c1bcadbc0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2m8avHT/pDcs6NSuGm6Z32k34LF4yxq8DcES2c+wHSaWIf9ZS6nrV2mUTQEFgan6yUAq7TgRtXKB4j/ke+TMrHfKm4giD1xWXQ4qNo4pHMU54Z5b9cTWKfnOApGnzlBUTuTCEdcBE81qQJQqbAfEo/fKUAd7kukPZNDGlXxvTxkjQGtpefOlhNQlZUCkSckel8b/edJBS1Ufu5mBpfL3TQIu2gzcL946A2NweBbkaL5ZvzLwUYb+YHEsHbpVyyLTi+L302lcaazAi01ocvmDkTXkRar6dK/hktEenvru1D7OGZuKGFrSJC1vEjpuBS+Jey/yiSksfqIer4X4X+hijQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-53c0d811-89e0-4999-8208-05e30f27ee69","name":"release-53c0d811-89e0-4999-8208-05e30f27ee69","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"70fac3f1-dd42-4705-8aa7-203c0ecda9e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418321076844897257819352084676964196207139138460408899514755349390138020724692996926783101868234410499850635049473937788296814039004558637792643897667214569387393981062244695195522369183617611323737462561471661578276283263959650041055091781537556740509534005695840092618657558313151122132252278887564020687375584607701795822899515755084821005172356402227573999487722388668286088531813380","osProfile":{"computerName":"jianyunt2"},"vmId":"b568cda2-c242-437d-92bb-28a3b282e4d4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt2g64hH/KaIvlbh4GZIj6FN4SFMzzbAjuvUiDt8YDGF8f8uZt/Nsq9H8QzLMAwIkujwh7sY4bPgOLSjT04E6kP2Dw4eg8+fqxIHKNGc30/0kx9YjW0mnsZwlAiIsICEgjqbm7mbYEXzEhnmkLfCYl8xAfdBzCZfubJ+OUotlALqR94Pwfncenmf+4Yal+levYfpHRubPjRI5a74yzfDxEJLCLdPdjK5shFclnWrmVbg0p7ss6rbchxvCUCpK5DlVwdxNN3lua9X/QMoNeuZssL6ZsJ44pNGEFITLHff9JgsWAmgAErZ/b+Hz8D4l2euKS3DxZqNo2CKOgdTMOhZjDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8dc73d24-004b-42a2-9d10-f0b421214cb8","name":"release-8dc73d24-004b-42a2-9d10-f0b421214cb8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cdc11812-a427-44ce-a05e-5b4c4e653f07","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819521227831796424832328283702678350846059256955648606943382471164732990251621243933947209831179858587266969191027189338441273193626724522972842136657127304593428117174704230092525490773221573237866981047605278215357491921824882872339338835564586088816881715229101416413696741743241939032126799364453859957216835448578117222739656145283780610938923926265268945172392265325427778917338199","osProfile":{"computerName":"jianyunt2"},"vmId":"9f57405c-bff2-4a81-a205-a7f2d5a2de4a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxsQf1FJyGdCdzHc9gixNZh+uH+rwLMO0R9q+RTDGjUALFIbnYjT1AOB6jpsQJX35Gkg1gnwoL4oGDjlyoIi7G6bubp8/o1n5y1LIihNEKivA39cbJzWpgHPbAwbb4VwHujPti++oTHiJ7MXuz4OCHFJApdfH7qgN0SmoM820J8PVX9h1Q/rApLwTik28PsjNnW6lawwvTptHCH043Lq/X6L7K9tNPzDpf75nQmwHxijR6MPgdnUNnXTISWvgbgSbFeozvU6v2CISGMJ/Lpewk+5ekg+jMp8feI5ViZ+AgImFyGrZvKuDXYNjhdhU5etP8hO/NHlBO103f39Z76EPCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4cd694c4-75b0-4c71-a17e-9fa6a745dbcb","name":"release-4cd694c4-75b0-4c71-a17e-9fa6a745dbcb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"92731f84-990a-42b1-bf5a-280d68c2dd2c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184382639574586890940115403755737034607199178474194249611133048481533357146304823547691042100457156793554579498342819143358315037029988439095257260995841268396804981523563478641623402500938095921591316347655916190152626725906533924118144865880635149990917793734598119645015222120270272025417589680107855500536064904679550154705138284788893591226091222475617062831319592241978","osProfile":{"computerName":"jianyunt2"},"vmId":"edf7fc18-dc2b-4c52-96f9-a378a63f5592","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq+F+gny8HYvO/ZQp5CIqF9BB5OcX1KBWX9bRIUIXx9mQypRQdRghyqI4mpcDiIXSuh3YzA3KisDTtQsM9ruIQ1IYYJALsxOnl95lSzIB9WIlOa/AfqS3qzyjBiCNFLRx+UfPtmBZXszBNbVQx//+lvAaLBxA4J4ZXC0laI6j5V6rC+ohp5UMCmD2W7IXMAPlgzsIEjKinxz5zRAmNW5nweMPKiQErSO00OX95MkIg6l+oPnRjzCLeqc8RmjuYNxqccj76sD8SOZAbW0CidpoiYLJC1MuEJukBKX/C8hOOJny/Nj0fCDXU0n+DLtX+1R+bmi+k5u/QYSgI0+ayNEizwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4936e8eb-7d56-4e28-9b9a-352aad2a8fb3","name":"release-4936e8eb-7d56-4e28-9b9a-352aad2a8fb3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d0fc5c6e-589e-4757-a3f1-022d79b88a63","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418321139714188240975922210838557655229161002624114546742258910865661209754698770367856696034599538242897930142108149677387029728978213009436973652953627776021304189115198277766643298838471774366533692488882733033939684989718872508624298653034482451107063037692551947059738291655012386945403356207716215455883350416614674089360534477678278973709435706161846950950183932605979832567520216988236015","osProfile":{"computerName":"jianyunt2"},"vmId":"730563c7-69c5-404e-a831-57e79475cf3f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3RdX7LE0oxVKiDyM8BhWwnGEXTU1b2ExCSty2vCPl4LLglW0NciBTWvL4//dwvoEDqVWQuyIOy6ivft/iGUl7KvQxQiY72r5cTlLBtq6Thw9NMMaHFAmNeyskccmW84Ll21joiEDT3os0nONUvNiWCaQBJ5RqCTQ4h8X5lHTg5tmTgdAX1H56F1lCGOtOENCMadO087ObYp40QSP98/uNLlG6Nz54t+WY0eaXRp5xEopsvVm65mTRP1+tj2NcaF2fItNIWW+MriDDCl+Kys3m7/CpCWFXLophqmZvwJe0E0Txd83w4YxBw2B8vl8ir85nruw6KKZOQO6gcJNOj104QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0419cb68-e19f-4e8b-a881-c8df0e10a555","name":"release-0419cb68-e19f-4e8b-a881-c8df0e10a555","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"85c3cdaa-c611-4262-8441-0138a6702d1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418449545011712141627244105194122683282787233897042972399192896754299230719660339369306126566169387213094104567668325520829737315022215744002898565260931813516542551468342576051047410843025229476327618506517722431311464627571165844830328906839352175585441986499180635553561223312994089699796576733704596839899844501168768945418535606107229431248401608940154875531191869893806096144593952381181161737562","osProfile":{"computerName":"jianyunt2"},"vmId":"115356cd-7b06-4c18-ab94-2cf2a6f133c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArqwrY+X0i7DfLi1nm7z7G/KZ2Zj4rM7G3GczfgWRV7x0gs17yVHD58FJozkIjngzIj0Q/5F0g7H9jE6tnqb02mD+NScBPsvtVN8cijI88+LglNqD/oHH9WQ94N+uJ7un7kx8BL4+MAAqNToUdKEsmvydt2fMGuUcmGnxCWbEN9azuFYCL2kbtTLvXhWSEcXfimwu/nMszOsZnaA1tKL919VTPKnmwmiiz1+q96tn4ywO/Hk7kexmRrOG6DGMrnY/e+LnV6NtV2Yr39L0xEXzmpvTHJ1K3p7nIDQGKj+ob+DwFotlCpud78w3cgu1AXj1wIDn4zH+z9shMoe/fR/TQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac574bbf-cd0b-4cb3-a798-f39ab9c0769b","name":"release-ac574bbf-cd0b-4cb3-a798-f39ab9c0769b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b1bfcf65-7ce1-469c-be5c-0df395bad6e1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188015447635805551851166676267826295878528792764437005223824466352570721319444328371360315173925099759966986337435087639073817730136371762649839611907637339698929634689464279537663235181161142253673211799507918303640353165748867726455707174272683963024427523307206969321801405586352856568722233225964834987545020666932297643284720438506993844193209684311810385679360511716948108813244602973646967443581541510520667063","osProfile":{"computerName":"jianyunt2"},"vmId":"f5fe604c-516e-405f-99c9-60a8ebda25dd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvwHxqauzbiVxEeC2omv4+x6KdCtH76RQEq6NCAYaOZBuKzZwdahbprsmSgs5f8fnyaAp+DEE6o7V6lyi/J8fe+835w13TzxHVImbUQ/yLZM0JkamT0jumn9KLvVrrzcw8LvhruA/6DJYKirT2sfwxHskDdm+5ieOLuTC6FKHYq/GnQYSLfCJzLl358O/ay9T1KR5HqvYz08Aip5+n2n8TjWYrP8KMHmCg/gBLa0EoxcO3yChc82+evldHSgVjW1JN8ntT5sKOnE1yUncIzg5dVtT24Lqf3P/14WMXKxmPzEBPEl5gW+m9M8QpgZxjRlxLZOenS5iKbz4Aa4fl+8pcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-db06850d-c3c7-4e28-89a0-c64a2d0bb22a","name":"release-db06850d-c3c7-4e28-89a0-c64a2d0bb22a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ef7d27a7-659e-4280-923d-3b8153d049b2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41821804714191827787265923317321026500786598718242443609696570335726348621973184026930886387578533259912484649721565449226047966779877939704470316171769428779147719871370410985019466357727138402089434886748041961036274362485140531874604821021226551950493245688629951144652957910646695764942401901310117152535860312346473117341659989565773798488125765923728072619782074692185278577822310961831607019","osProfile":{"computerName":"jianyunt2"},"vmId":"d1da2941-d46a-4dc4-a641-17b879ddf232","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAshXoA5MR3CtRRXZekETAmynAHTCiNoe+iwb33veCHjgiZXktWj7Y0sfhrOWXXLnEAo5b+ew4EsQ42g4bOIbfYHLD07bojb2wx4PAlmAKFwlMRo9EV+Cry1H33msmRLalHqvuOpuGY+k6/XgvCh7mvk6uDYtmeWGkVBMceSZwrlzQHt6lJgBGLMYRfPn2a/EpLBk0GAdnrAqROl+zW9yCxCPAsisGaJW+Xqfb/IHDna9SJ0BMeU2t+cB8A/agX/22CZuTZ6qe81gDtdWoCEElISRCqB9CfD9bQTgUhffNqIluH+6fpQdHSyuZ2bUtTsv7Znrhl9JhwTbQO5zSnOfX3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4ed912a3-bcef-4eaf-926c-bf1e9b4937f8","name":"release-4ed912a3-bcef-4eaf-926c-bf1e9b4937f8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8945f009-9cc1-4487-a950-8a759fa8d065","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418983150818419470615155201552885584016618421771808500885979790701113611748724579452483706314483532358325960041096511460365983144881312111475548811348077995292424284631613011674069939776874329561159866245297864528973827677821080722467565754500618837583913807983938699998965670215900454940117073268763539473492996935819227509948593530381981682978203553833259779173993426843648391875","osProfile":{"computerName":"jianyunt2"},"vmId":"d8545197-ded6-4e93-8895-ef99795e5262","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyi0pbkPmnTQLdWcwJARkKJBOvroWvDr+lWWcXeI7SIodtt+c/mtHaSTL9Z3Rx8aGGfFTzUu8ld5Z82GMA6SxnDiAoTGgSGgyjGJeLkiDsPUiheydQ5y/R9EHz7s89Ce3s9MJgE6z60/VQ4adE5IqFgvPx351ZNmPGVXcu5ajo1erqzglzD1UaXOlXhT+KpuQr01FMSp5+D+ie8Sivogi09RcfntWPrQe0O5hCp7APx2HE3T9hVill/c/DuIKnZThlmVCctZ0tKBohQRlXBPN6jGM2fyBDsPywQ9iTdNfDB6BSZ2v3M1EoVXHzX6ELGtgaQin7BRy8eT2tEjcPUakZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-77b2a539-da4f-48f6-8589-e514b29497dd","name":"release-77b2a539-da4f-48f6-8589-e514b29497dd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"049c27c3-2aed-4cba-aeaf-d93b376538b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41897088101269149342720718337426005082238594484269396581567301139893432571774586357649793875874094804457381785387887659050823624997405273652533258624212235728310677977658678817174614464403678819098605888099733985550846927279423664876223944747076889983548682316703520993052955261324928155863547199588181765204045898657862861669515135282342378648155748781580949133689713091195464423019","osProfile":{"computerName":"jianyunt2"},"vmId":"47826092-3b31-449b-a405-0d963509bb9d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy+ydpvZRHPnPRTGGtRZQ5Xb4bpqr9wtP63y7y7FUY3a/QJlc/9YuxVd9kNCG3k7GJeObjG3AP0mqAxbtuaorjAIKB3rvBtSxnwaTxdamKFIuxF1yrbT9ECrXonzzS+U4/3BTrk2WGjEtvoxfAZo2SqrN0goelXPyLpPO/ZNiBmXM+X83tYzAWHQVE5yXiR5K8neU0HvW4OCDUZ6ad+I4UXWzLT2bZP5XIpD2iiCNJAwpXDSCnMI+RYq7QPfI84pdneUo3K/4WMwVgYfGO5e/qOtpAXgRQecriDAfaAZQskd/Vxv6xJRSlA2U9/wQBSVmW4CMHkEHoFFneI9wsQIRjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-62a359b9-673f-4c98-b256-87ee9589299f","name":"release-62a359b9-673f-4c98-b256-87ee9589299f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e839ad6d-ef53-4354-859e-8ec3db1a019a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41843083033376711531641286669745856843675617151545287685723956182319439451795562781035689280563595094770320065498253886925699103170754442005470250883934826543163694527529964677289561881462691443643886338379945307423993966594865793138822254445491747240812394567549459622643408286426897482254892349991102980093601927357649416843363689215637693857552876073851","osProfile":{"computerName":"jianyunt2"},"vmId":"a905d4f1-c16a-4d9e-bfd7-9e019319a2b7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9wGhkZgOr5h2tnexqU9VJclcS7RmMIaruj7hbqmdylsPa7PUDLnOQx2iQzJ3nsZ9cUoRr5NshTYrdm9bCq3G3eRyWNuAp80o+wBQdjDnC3rgB5tbuS5q8O6/q47KzxDnkhlQ5OQZFSf+7HLtx3ldhl9TLK6mZc454VfzULTVbxnQnklI3KpaOPyfxG5E2lMBjosL2+tRAS+PImVmhJw9rVJYCTok5Nh7NTWmQIqGmT1dtA8EmsSGxEt1WEGGjUXopMrDRD2sBEmF1SqXWYk1ebteoX0ckrUOeVnSaK1oL5pb4dqEZWWmCQxN8/fmTijyGMJ/q/rXNabY3Q/TCZn4rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9e80d547-15cc-4bfb-9aa0-953a5334f46c","name":"release-9e80d547-15cc-4bfb-9aa0-953a5334f46c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e40704d9-c839-40f0-8073-2348ff7966ee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418345522396514128798497641866847975299230520578453307322932828135184546153217445187476532523225780863863356675127552616677543389956674634768498247580734038863165584891104822473384603540866537606789138036072393182336267879547647510318426630712207975238191118878401229930863581668080814676884729299860789986602061930799933602401114166108","osProfile":{"computerName":"jianyunt2"},"vmId":"b074e6ff-f531-4804-a191-9cee271301a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu6qAp4nc3oc3q/0Kiz3Gis6EV6QVCFiuFcJ5CR1g7khqDvJwV5eF1+7zsFgJeMsJ/EZbqPJW/FMSyhSO6E1sqiQCQzjnl+MbBF0j/AwMF3HNWf5OJ6iodg65YbzDVRxMNbPC1II13GVYdkh0+hDzK9eSQblYJo6vQvvM9wtoR7fFLnZDgHqTb4H8qC2+yUi4VbGhKht6+0baYfORjqAPuocoHRmTbO+PRJi9sydLoMX/dQ3va+chgNn/00sTZ6X8aQDXwJze6CgwlWYTh+O8FyOgWkXBOZeAFe3s09dclTgc0GV5MTaV83lHE5K4UIm20o62N4TY8aebl7OJumMT5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f2147b95-c378-4942-830f-d108b64376bf","name":"release-f2147b95-c378-4942-830f-d108b64376bf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"11b0d783-3a28-4345-ad3e-dcd9dde24a31","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41812152108327346076003479918952093149877267236420261463178721048485452704778656712422356295158871923277020049647496982969935876324369506117423715261453103174516899949212950713499323959437589959677913788498523184112918453325991600339816267544038222788443701379701384888194626963058509228679921958219943619218000144531808875209488503092159929672410","osProfile":{"computerName":"jianyunt2"},"vmId":"e50e6fc5-ca01-456c-a8bd-46c3c28579d6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyi6lr3xa08wP8pWRz/iMWGLyPhA3NGtZd8AuG0JYmUbAGU/PtocWhAu4w4FylVB/r4FC82ZwIqRzcabc0+3YiRw96T9XTPKyUQ6DGnrL3g2blOKd/S1xtPubWpx/BiGMxhyk5iJ/N0jFAx0z8rxXdImsBo0N94MbwD9iGIF/bZmKoB6ELjAMXE/ybtY03sCaivJues/zt708M4x2ejflzF1d/axovv9/OzqTxdMLS6OcAtEdljdMFhCt4uhG0R69I3Plz0s9R3zDR16AyIU4BNbVg2VFdndfvLO60e8jCVJkXq2tnYr8eAeQrITBQku0Cmll6Y8HrYYdFTZjIruXYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7da191d0-8973-4088-ac9f-d0792e62ab3a","name":"release-7da191d0-8973-4088-ac9f-d0792e62ab3a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0b62fc28-c74a-4998-a042-ec98ce95816d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182061299205499447587275678996733803248663337701497676862963188526377266526493120537391336674549893652131426146236997521197587760176441285634864553162425954127986571201633234791857017305739805655654837349730672856378041915466376538161303874033435105053191713359957443965687006154050523496899348645541276934154787676923271299345360705036504582809082948271435584359446920562205","osProfile":{"computerName":"jianyunt2"},"vmId":"df8c18ff-0ddf-4035-891a-832a040473f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu7td9+oQdsNjzX2Av6lrFRdyvpY3X3XT9Xx60H2HktYpF+rFH54IVRd4uc7rpociS2f5B5BKH23KdGlG0BOBPYvTAIaXxbGhocm3jpTk7mbYsDypV1nOljvThAmjyOyBA4myLAZsYUOY5uXhAxMy49QEpLEokR+9y2a5YaDxH80gZb4UCnudl6YmJmixfoZqk7Zl3jgs0xCvXsnsSLnQ6MUFS4HnTu7tB1Qte5NUdnTkjLYnnMCzo3afw2o9+ZErP/QqbvOWvo0dGU3jHbFFkSxOz683L8eJIDHMHT57mOz6LK+83T0QhRpAGlvll/aXKXxGPFVGF6hRUmkcXQAohwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f3882e62-f35c-4764-93c5-790d3382889e","name":"release-f3882e62-f35c-4764-93c5-790d3382889e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3f5ead01-d10a-46d5-9af8-f29576db3005","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188049124259225106151758983321267739922013896899004877267292164771497094242528514749936112588478662131629323380326904321290109310833918769873656110200777923473951180705558836930079967651354978763946423739517838388335858938190745097318705225561855135834330354906504548474128370445324469968908185314491159361995723444504117302654182992273969713817857338790164019885412475471462390967197768812891220081490903511395814","osProfile":{"computerName":"jianyunt2"},"vmId":"0b18df63-a196-4700-8aed-14d7f2210521","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArxoqaq1LP8g1eZVBO/RrWLu1jw4sz6ks9t8AOSo3vS4gdfQtdb4ITTn7Wfrj4tRClqe6R20VuLVKV8pvxSYg5ahvqrq+xpGAGR67IyXxZD/9xsurcmONg1+BuGnSG1ZaplH30kfUhRY+jLTAICxtkXolI/1ToL6phVpQrT4Rs2kkogZgN5fAdlwrg7Wtw3JOacatMr8V0/eRh4LPHWG/S+zV3ECm+wGWZxiqo8S90sPylLNtqL+JnbXgGxxmkpMhu17qBhR5WIrgHGxjdFOr4V0eFcoT5+zIwSMKN0/a6ULuEjMEWgFlh99FKlHEgIieRK4BF2Qdig5hCZcc4ZJ/wQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4d0b7a42-d8e4-46f3-bc17-4939b7adc2a9","name":"release-4d0b7a42-d8e4-46f3-bc17-4939b7adc2a9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c5e42171-fd02-47a5-8c21-39b71a90ebd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41813796027717060051702959583986943997354731324133744923922476359257862473547149795105891724119067148211039038818354431944968308433345536863856938297533615024920428097875786074108062039568937445963720526235143043117537304992428673691820404342227681354845502703993586044786215348344826104355753063896258099505008962639407885671417863804611764743428284153081811790282184787","osProfile":{"computerName":"jianyunt2"},"vmId":"1e9a67c1-2755-45f4-b9c2-4edb340ca3f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0mTstB85hWWQBpWi+wgtJZ89VGd4PXzWAR4jIwfRrxun7YHj+zL5Jkb93eMhpCiEKyRqKpwv8ejEEHkIRyjClTKwGKkIZrw5DpDhgtxWT2qzxoBzIbtaB+2PR0Ax5D810b29euSCRdJDIYJlYhrlP2im0PgnxWBYqyY1xi8OP52QfkslzpiT9KjOowNR1dIk+j9gmOk6OcEy2+wrKliw1NBDM0XlnFbrVV0QTc7PvGV27/cRI8dsR/UaZnZwaUS88dbkv2keodpyECWZqcUAoWeXvhmB0FlRtGhMoN3iPGx6FrEJgAHoA9cxvltJ2wvtL4h96LyjebYFXIquNYPXtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-01ee0bd1-0081-4ef5-8836-52df45273555","name":"release-01ee0bd1-0081-4ef5-8836-52df45273555","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"95a23f6f-5e55-4e54-b54f-9a95741e7f62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41896166763197993389708440181552149101791415889240527795272865939045282634536580025847892223323241239985634547224664872415419253021370310989698730739584539259222074615957307553914862431902020805744629323514180479477567160510113245669552598129889625655099761230860457610868789056038561768128827134972717284617474835630651671640725783249569700191127899477560876470810481038640615314071513936776760993693","osProfile":{"computerName":"jianyunt2"},"vmId":"16158c93-205f-45f7-b285-ced4ef8db7e5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtY9C4bbH18zRneSPetjGe01921BfN9UIEgCWwHmq/Epn3XaidoGh0WLzJBvD0fn4TwX4ou3v349Cl7PW+T8zTpA4dGMW9F7yz3HB1VfqFr59byY95rK6s3+E+1JIIVUfvv3sM4kBW88H4j25yktMN6LAVBsMSHNV7vF1mkQMZBUkF+txvvr93f84r2x6UiBnB/0jw+T8dyLr4onmHg6TanrJqs6hywzSdcmFX7DneSFj2AGaLJ8rBU+VjsXGjInY98MDiShr7DaAbU0V9WNrfyFUI3rRC/aIxsrUkebIVHrAqamZtFYeNvZAQun7jUL5MqQcmNayKO7lOVydQbHEcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-49fe9072-cc41-4a34-aad6-56e68aade62f","name":"release-49fe9072-cc41-4a34-aad6-56e68aade62f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"53396c88-eb57-4b01-b5a2-d5aa82f269de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418771172418129967484878637325070992913398084133046313339748291770337191869136566184929138738819929801188874873831475523658875795892857019533513891774608959757902177587678914268053349136938959330081214816964151134897670653034697947565406613126312465217083674503969116187446157734254678523570655385032647176224478852348697142113386158193365687322138084904591913178","osProfile":{"computerName":"jianyunt2"},"vmId":"97074bbc-7c9b-4aca-ad4c-05f5dc956d11","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoKaEfPHzikBZuaQdNO2QEwlXrk3rj98d44e0y81kJU5Ldq2/WyeHEi75DLC71/VLxBhLURJDAeEWIt/VFYyWff8nbBt2odUJaRcbVWNoL00ALXe2i2NWY9EzpMJX/rM3nzHVvIG2FUmB4yyScWyC/nawoTAIwZofr3SHu4qHhS51ABeU7BfEfGlVQA0lwEj+9VB5r6TCkuxublIr3R5wQTA7yh2ccOXM4kCdtI/u/NRkUM/0ewtrpNhkK0IpxpgQeitNQBwY5vW8x543RsTt+25Wk828Agv4DAyygGJ0S7z7kCsVZ9Kt2g3fhFQq6NFdAhaGbTsEJz77zJrLG9enqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-615f74bf-066a-4e1f-8b21-2f4eaf25149b","name":"release-615f74bf-066a-4e1f-8b21-2f4eaf25149b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"67737950-cb95-4498-a1df-d070e91dd2b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41815517640226783595078779968651353838924072799228156104808291924495114757125170466947406335569620277936357772413528016482991036266041543677202839752633749123606179627532848775469215764173976897532877134153236997428563660474018547101495291017513841789697766208482849261146322387548653193509188536054359962063917819507936145871691133991984551222449232347965166270647296925266044615720918332901608380681202774828418548771147042658066869867486170216513","osProfile":{"computerName":"jianyunt2"},"vmId":"971f94d1-32e5-493c-ab1e-feed388b00d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz9+hF2GEfyTiK+kD9SiyjZAN9OsGl8RtIbCWwgmANMFGAaK9hOjR7uFqypZ4GgPn+nYbBoXp0joSlSy9UsnP3K4P4c74YJPjeoquoxyfqJvfUNnyem1QPTf5TpCF1HPFLWzZk4B22Xxz5QbrFLW8yylvHfKQLeTD+gurdvaTM/k1+jJCamZqdwHGH6Gesc2TGv5/iH8Z5Fytc9KRVckV6yuQ5Ks4TF6L3LTbITVEr7vJYxZXptuAwn6Bj2ACy4VxKLzOQ/c8q85ity/COgGf1jpINCFdRDv+Pdp+q7olrX3bDOk3d28H+LB6L02RqdiIisjA5wbJfYt0SRgqS/Lw0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1746aefd-6292-4448-ae01-96b64d46498f","name":"release-1746aefd-6292-4448-ae01-96b64d46498f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"29201099-5057-4620-b74a-286203943b02","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418278582352324509681545135216804941443197303426680972604347480490644451513333573797329197441688643551851704854552109679661859928101818237863672672808445925096375698312620986212252034942799454662152540860054853493915904647483382314871790440161923596372248029136506218947511263891165595342661761168413597087027849906827548954406328612219669391058881586848948617287122649986657778","osProfile":{"computerName":"jianyunt2"},"vmId":"aa5ee553-9d1a-4ca7-ae66-32e001cb96bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4bkIe1Jp0Af4bDn2Ga3RCSSJ8nhFPKEkZIfpKUT6RHX/SBHgwZTgTuAxmECVXhqqVYwktBfDPKQIKX8XMCjE3YaCJllxedjkc42aHvujNzDVuk2el25vSjf/bFnmLEjtz37BrFITwP3jCe5R59WnbDkPlVWjJ9u4i5WTRXfWRDrO5KP1M3nqoOx1YnAMfD+WSkaFgdZoXBqOQ1UrnZNXWM2Gtaer6dARn3QAzHSU9KraF2o/tqi7m1nn64rzDN1wIXqHdPsQ8mthTN+ytUl8nb7T74Fw4JCOcMoz2e/OB9+FZbJycqzJCZQhguyrRfmnYQ8LmHoZQhhjEJZXhSulwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2b373086-e5b7-4c11-bcc0-559afb9a0270","name":"release-2b373086-e5b7-4c11-bcc0-559afb9a0270","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"27f02255-77bd-4060-bc4a-ca14b278dc37","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185226214717006519723362712567599681420244922817991993459997916512542878303663752998754485424904537693546067473121372913532718388904545306315154044242562711607067018821201363842444982375659350298764858417429586694968616518232068833575336664312084174876157139661561419853934943083025276497629568819656423469232978066824986149737325845288985315939031612833123044593195045115998399034","osProfile":{"computerName":"jianyunt2"},"vmId":"3a8dbc6d-5ab1-4923-a165-2d701104ee75","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuqdO9ehSEL6MXROKRmVAKVL7Zb6dPMMFFDUikd7Y+43HZuiuwHmd/PQtdI9R4W1HDKQovmN322VWUadRs/Q+FkQETPwhe60IwNPD4zz0gAols3pyWKHGE5Y1lnArQFPezXMc+nhgrfEn0OzgEvX8oSRohrBbgktjzR4LIqUg+S/RrSEWwk9EysN0TfBwfTQiDQVeg/Lt9A2YhX+ngzlbcbDmUEY3h+cSnIhiyQc+M11p+u1A84oKsN2eETQZTlDVH2JBdwvaQW3R+csh8kC4MbL/sag40qmlF4R/3jUB8YyI2Q1BfYO9hDI73eP6Y/Ut2OTOEp17szA8MYPCBHSetwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5735562d-8eab-476b-afb1-6ec33ccaee25","name":"release-5735562d-8eab-476b-afb1-6ec33ccaee25","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c2c0a3b1-1da6-4664-b2d1-a46d748971bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188815992253501603281312354007165379630566799454441909677669449023730928541568172639792794911693431338833261270141095659869854460734633149160786371198497692628774421117802895436489487034532840965214648646951864787151040661481161671448544774139193998974535590410362968359386420504633336037873753802494206172605951211259284329135274511577569097430788711638538974123484171530458364302059","osProfile":{"computerName":"jianyunt2"},"vmId":"05cedd67-0f58-42f0-a978-298d46775b38","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs91tPpIXQHmoioorZ8rnbSHm0TJWkOV6mjFBx2eFqf5FW1CXpHkV6bcQnXbPMXAOjFaNPHeZX8D/1oUCv8M464YzCL8B+vpBoDaDvc70Nb4rHk/nZQ0CYaq5VfqP0vyWNuJBp6LdOfZ1SN81Phbs+LyReJPy344/9/TGWOQoeMRd6MMev6QCtKaeIGlSarQk3UsV/ydqGbnbcR14v3pU7jjmoMV+Uq+ecY1gx7NMEH7cZZvc57BK19LXpZz6yrZKB05EdpwWwAIvhxEtmK/FwVp1MI5kHrSpR1cfCYM1y0sIh76giLvvuxZCwv40f91CuoBQltUwDdhGhfx2YiaLgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f5e7b409-8f13-4430-af2f-b9dfb151b055","name":"release-f5e7b409-8f13-4430-af2f-b9dfb151b055","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"72de1546-efed-426c-a9e8-e0d858254c3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41821064820799288583323193545798653519845637239758174233795385690123650337259752826773871506668631235352588066947338544792069131794819397142838731127432181023922575477629901444863225892937981705510686383996201784918845315127911414638526233661835656725653843577034139985231351672716295699762872661978993447567131685434151757333407944667340926122516562185416198365758419882741578710116624187217","osProfile":{"computerName":"jianyunt2"},"vmId":"80f56d62-6682-40bf-9609-61462a8e5e36","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtFZHhoQqIgxjbpz0kpK4q0CedCIPFbzIEfF/pN2dRjt24v1O9vl/UE7QzLrlQ2p75DVN6JK7EVff+7+uXvqiR6Na+hD+nsd0BA6sQZte8Ho4lZPq0xNw9OvMCqEM1nNOSBoA3hwCoHji2GEWOoX0h4n365685NFwcDi7JpWc0ENtlYklYMCqpvaDI4PpbkZ2AI/8EU83GjsLYKUrxAMKzcijVSTqh87d2kD75JGyFzpnWkmSYEnsY5V7hl0JMmDo1K7f7rjgAn+NDYrcIolYytVTOoRSLwBv5CYC5ZaqLrcbHBiPMPz5TWYBpxqG0S+TVfaHIOotJ4sL0JJ6NMM/iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8b077594-a713-4959-b362-e3c22acf14b0","name":"release-8b077594-a713-4959-b362-e3c22acf14b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f89f8837-507b-4f79-9bca-908cb9b12795","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181359225467427217681038054303519840002362118418111463926136842857596648569046746620489165403564165116442563441819681092293125750343321362032086841012395553812408124934815693771261390079533669955486484305550298747678690265716108537756968201040995674249892958322105599728186830389821693227140172051112954387683187637324782418826840224441325158514277063179091519700512393845151331605757611629712327638979912995354376559158879976768211631677723899828555887267875725942051831","osProfile":{"computerName":"jianyunt2"},"vmId":"c35ba130-58df-4a81-a7fa-a41546b0b833","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5JAMVNv+lIEaCAXX/lTdh4p90pnZqVDxavakkAKKuzBN2drsb1neMnetdFeY8Q0Aj8BvLDiosfUAZ6voLzfJqoWqL+7bXwuA6iOr3XfqwCqJrZDfz6iDTcFBGieRGpj9zlzm87MZEN9VCJgVr1aQQ8kGCcKldGZm+WgSsTe9r2OgrfOHl1JL2uaTLro51G8NuKUCkV6d/djVowuF1ROMnnuRFPmOVyL59rG0WMr86Xcz6pV7qE51haq6NgMuetQjSyv2QZqIa+a/qL3sNAizvJ4S09qrKCYakl3jmmoXlZm1nAT/3tnIIpBmYdE14NdJS7OKsNlykAMCgqum9DF8SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a02933ac-219a-4ad2-bc9a-5d6074fb059c","name":"release-a02933ac-219a-4ad2-bc9a-5d6074fb059c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8f5ff258-e16b-42af-9ba5-93be4da7fc5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189076800117422314788353328078649453343675804104150497796809819183541276743214031126931485491234665169669930316381074395188079576080933854490865032848860761862913185893144556284853321272892257271710071414187312846389665803741312412146798871694953696631375526381793139909497581734865095336398366453896648570557285284318360591197739869234235252450576402274464092648336128548511493358925531693374007053474847375063161562997081684","osProfile":{"computerName":"jianyunt2"},"vmId":"3738890f-5fe1-4cd6-81d3-c4c5859defd9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuusWdIwzIuoe3I1eAZv79DW86Izsn1H+f0EGwD2CoCivZWkZRgd12uaV+aZwZuqIzGYTdfK/jF4Bd62lCRPKk76scihq9tJskASyR7X0nnj+7SJ6mt9fmcDpRuxfn1IwuyEi6go8janur/cvSNxL+J7XnVuJujyW0mxceav5iVm8pqCvwYkiudhPw+tny/5HV2wxSGgPJDsZLUIE/x7qGBnOkbvthO8TcrBiIc+7NP+m3RSKR8FWuXB7MPj2BSjTPR+iUoUTvYRoFlmtgE20dHL2w2otK+9kaKLslBXCqp5cmSoaVEFnEr7y1gK44d7OYTsPm1tZOSl/N/RyITqzHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-24b4a5b5-955e-4cd7-9634-0993f4e4844b","name":"release-24b4a5b5-955e-4cd7-9634-0993f4e4844b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dffdb4a6-6f5c-419a-ba4f-bd63c35769a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810241964432644256324732386355775422252718779138637219923227956268496377524236272353818529035667565045375878943206769628532454376315511149801260419148603867514244284841343203174282282616405762769091440045073388202639999441771636998919732253934944963944204607453124889063217847782575715396906197436779026122877649124773363727508210131315796397571949481271972962141679817786513687","osProfile":{"computerName":"jianyunt2"},"vmId":"a441299b-c620-49a0-893d-5e4fd7710374","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6ZeqwsLnTa822tfirLw682RnavMEOo7DOfPyyour5dWMoXYPfEkT949uFjZi/oFElniA1T7XgHWriFTI1zEK9UMRI4d7OHJA+MEArRSekY44y/YvT4Iao8r916yYIR8UM46E6nWb7G3wMFssXejQj+WZDUuFhZw5D96znJvA+qQudV0bOqAvfUuPbhIg9LkhH0WFB1P37b1zWL41B0e7YUDWApgF5Xjyz3gvSC6Bkut0bjAyRW7nDnz3laI50xpCnItLdGOziWvmBgBsjrX4AxJYiFCqID0oXnRS8V0EzQ/Z7CiAsRW2sdiyTfdobZMUDq2A2OvlUY8Nh24R6aLVxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9ad7f40e-e7cc-4205-bffb-8a25f1954156","name":"release-9ad7f40e-e7cc-4205-bffb-8a25f1954156","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1a7d6407-2d59-4f33-a178-c7ff0a0a179e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418938735988465274488125253268437970212768289860732757919742016822289666765881274604772619259642958221892626866175571367876596839338278564764635339459817318423354475954417471968793429887229178479148930292061749277297603873831206178864232752896755523314489188140816946764382607695463634514596908231707437285936202175355438842228857267726486952764933295301692951443164237629943077862208460729413729","osProfile":{"computerName":"jianyunt2"},"vmId":"144db572-1fde-4efb-afd8-b28bf6851801","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzo8Wz/vI9J6MstZHdhB7F/Tvr/fJuI2thcJZuL82GLK+zTa325bWKUlDx5G6U+IxsFeP+Qmq9daFITJm2lIycTTrLZUnMtL0HfZUWFGnWh8AY1JnCk7OcGZ9sQotBSt5Q/zAUodXho3Cot2MUymwdDkGN4iEzNweI4Pr6lJ+n918bWCyK9AWYi5/xXwgvKjlUgL1ClFcECnkRQnJh/GcarDB9iI0/8766OGAa68INv3Kr0e3QcdRN93LnmBLOWqQIzaY4Oy/H2FoG7VuXwBoEdNN4a5tXmymgOf43tWdIqF3iWRaN5vUuoeFHI/daxDBD8mixOeTtN8IzfwGEsPKfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6f1f2f46-8136-412a-b37b-fab7274cf6e5","name":"release-6f1f2f46-8136-412a-b37b-fab7274cf6e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b7a0c61e-c993-4037-9428-86e18a789e01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418547171064956297946537455856415747468204306030226291705082992153458689172036121646773862206292551133208804046648523575952792724830326634634700546013629728825373905536670570991151483675192562357991166973888891537637989046347876693042178441190123356448524803512155969695285070379202684750826097102817865766943472755033041631168796275544446183362448033728064573080544691038646967886741723744578046656","osProfile":{"computerName":"jianyunt2"},"vmId":"990d9123-8412-4522-8afc-3b1b4856b573","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAplO+6MWSaK+uUiC/AE8h2A0hun+76RRDAhousop4CpLeAK69SNRxN+JgpNprxLkzwG4/yDzYFsAXtCxf2SCsVu+Wr54DjBfFbqQMymYHfCK4RKoCMxBhdlnsUu6gViuntzmMFhIpLLsNyF9+YaSW+QSoiWq0du7n0dCqYxoenXG4BrkyAxDP4sMwUPSq08qZDGYm2WxA0T36Rs4J1U9dRGZIe2hQsxl//15RmRy3g6pdSSqiWQquUZ0p7xKuzjgwaOlnpKaiCouLlxtmMbGsDkVQP3Uu7Fhjyou8iGirf2t5ZOn0n/+pP2ZRztX78KdoVk0JBTl4xPacVDtOD/V8FQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNRU6MwEP4vnes9iaVAgTrj3GwgaNRqQ4te%2b0ZpgFwt6QBtUcf77begnfEH%2bHTMkv2yu9l82U3eeoVo6jtZbKrexVvvic7m0czoXfTyut5VF4PBNi7iTGxFUZ%2fHr%2ftSnCdqO6j2qyop5a6WqqgGq5GwHMtNtNQex5plO4nmOtZYE0Y6Ttxkba5X%2bmBXqoNci7IaTGRSqkql9fn1y6qUa09td%2fta4E5JLgtR%2fYp3UjtgJCa%2fNPThWNNdTTe0XSkOUhx%2f%2fqg2cjdXG1Fc9kek75C%2bYdTtFHXfhHY0SMh8xH8DsfwDd8N9UcbhRFL4%2bPomOv2%2bYYZzDBoimIdei3QdMZs9IsYkJqMPiOzRyLRxFkzbGMiuaL7gC7ihL30jOLg5n5oIJhEmDNJhgASQUeA2fOpeIVBQZCxiQPfh0XoYbZAmaUme4V%2fGRSY%2baXfn2Mqvp%2bhitnHzGWEYQdBCx29l5PfOehS6ftEIpv9NzxrI7mESi1dz9Hgj2ff0jMmFtCGgW2vqEp62HYsiD0eUl6BtGIqFvUTlUAoNTB2EWdfVsdl2NUADCfk1IpRF53GMznMYh7yLZxv4DcCBKsgBryDeg%2bgOR2JTXweYAwNCYRmhKTjtaoc8HaPh2gJypJnHODCXdnnROsTMqJwPJoiqzoMLSMMfcI6iIj9FZZ3WrD%2fWpKzjaDa3AAvwM4LaBR%2bA4A6wymAFEVaXMPBQZTx4Ush7CRSkhNwDidbomXozHTI0EvYcYQV9DpGdGewKvMwDLCFps4ZA8wAInvqWMMpBMY%2fjBCO4us0np2ocvzI13RkA1qitvtO%2bI3e6xNop3K1NDR4FRTAzePzGgvsMTu%2f2O97O%2b%2fs%2f"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '282705' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:37 GMT + - Tue, 15 Sep 2020 00:29:47 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1043,11 +2209,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 696dc0c0-a5b7-4c58-91dc-2a5e11f4f1e3 - - 8006ef16-498e-4a59-b8fe-93e2e2df9614 - - 31d7c1cf-ea48-4653-8d47-32ac19651b9f - - c338b05a-8a92-4d1f-978d-e9afcc2d5ab9 status: code: 200 message: OK @@ -1055,36 +2216,41 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNRU6MwEP4vnes9iaVAgTrj3GwgaNRqQ4te%2B0ZpgFwt6QBtUcf77begnfEH%2BHTMkv2yu9l82U3eeoVo6jtZbKrexVvvic7m0czoXfTyut5VF4PBNi7iTGxFUZ%2FHr%2FtSnCdqO6j2qyop5a6WqqgGq5GwHMtNtNQex5plO4nmOtZYE0Y6Ttxkba5X%2BmBXqoNci7IaTGRSqkql9fn1y6qUa09td%2Fta4E5JLgtR%2FYp3UjtgJCa%2FNPThWNNdTTe0XSkOUhx%2F%2Fqg2cjdXG1Fc9kek75C%2BYdTtFHXfhHY0SMh8xH8DsfwDd8N9UcbhRFL4%2BPomOv2%2BYYZzDBoimIdei3QdMZs9IsYkJqMPiOzRyLRxFkzbGMiuaL7gC7ihL30jOLg5n5oIJhEmDNJhgASQUeA2fOpeIVBQZCxiQPfh0XoYbZAmaUme4V%2FGRSY%2BaXfn2Mqvp%2BhitnHzGWEYQdBCx29l5PfOehS6ftEIpv9NzxrI7mESi1dz9Hgj2ff0jMmFtCGgW2vqEp62HYsiD0eUl6BtGIqFvUTlUAoNTB2EWdfVsdl2NUADCfk1IpRF53GMznMYh7yLZxv4DcCBKsgBryDeg%2BgOR2JTXweYAwNCYRmhKTjtaoc8HaPh2gJypJnHODCXdnnROsTMqJwPJoiqzoMLSMMfcI6iIj9FZZ3WrD%2FWpKzjaDa3AAvwM4LaBR%2BA4A6wymAFEVaXMPBQZTx4Ush7CRSkhNwDidbomXozHTI0EvYcYQV9DpGdGewKvMwDLCFps4ZA8wAInvqWMMpBMY%2FjBCO4us0np2ocvzI13RkA1qitvtO%2BI3e6xNop3K1NDR4FRTAzePzGgvsMTu%2F2O97O%2B%2Fs%2F + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000R","name":"ukspumuks00000R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7dbdca9f-05e6-4384-9b9e-0094404b9507","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"98c09f69-07de-4c98-8786-68927f1f3dbc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2hFkgTruOS2su/LBjnUUI7xubwVC2TSJOQLR6h8ZCEamZYy5roqErLbcW2xlLxExSMzCg3xshB2ozKFBrKJwdAAs6ovEr64G/mRo2QbBuSo2oKCQV0H7K1XpAkCQE76OW2Ud4C1+MnxOE6gRC0XvndAPp6yOonCT/zvkAC+JqOpck2J54x20qtdgXC7iib2AsI7Iru42U6+OaCUsttltALLKEwYQ3XIamZe0Zz5QSC2K09YX1l6dRTgyLqTTa2zkVKDisddWauSuD3wwxK5bcU7RXenwuOvX534kI7QCmCoXHCEcbu5g7mCGXmJE3DNxd+3X4Mz5pRHh/XekDL/7nQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002I","name":"pumnamuns00002I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dc34e144-7865-4f52-9b1b-2efb14c48403","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002I","machineFqdn":"pumnamuns00002I","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002I"},"vmId":"6c9393cd-748a-4bc3-8bfb-be12cba3ec3e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsHGNeTDqoHfqfqWo7uiFEiwGBvVYdblc3Wf9YvwzT8OyzBTpV0cps6RlGwuuxAg4xAspVQlGiCoLZlVc/JrwnTq1tHsTmzjr90muLo3SCkI3sqXRqcR8Rk7i9+4d7sJo5PAyy5dc6we8ANk3h5EEycW6ZgdvItB5F0Cj1ow2T0aCFaUQTixCptRMwmQUUrFe+/ZympcBev+U4MjOJn7SG0nuccWu30PPr/Zd70R7pXre6/ojITPy9QutpgwraDfjdgOfPD4wIxXcV6Wnq1chMqTOYeVGfFNoatAwltU+Tho3ys65MMVznWPfdhpKRH0YZshDPzj753lnAVUJ9tjm/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001H","name":"pumnamuns00001H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ad034995-738f-4715-8fac-002babec2ed7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001H","machineFqdn":"pumnamuns00001H","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001H"},"vmId":"7b157cab-da74-46b2-b69d-2cc4104a5492","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2FMHQH4zAvh0hKnpCgLiMBNxgFq/O3PL/BS9xd6qDIoABkO/Xipr65WvJE7YOsPT1AtOHqGVCFCOLdZBgGEIJvONrPnktJPrwnhtBh+80PWx8JSsJ9tZhTlF5J6v9h19Vx75gdxz++ycv+Hsdeo5B0ro8KiJGkbQX+1lzaNweVvdfynygVzXA3Yg9EFTAidb9VOTRKwHZQBRVYIpPkOYqV65aycCsguVyMU0xXCluqQZ1u0l56ddqrBmL1zIZB2dmvIOk5ALt6AaQdfVXtinMOzdFvymXvnB8zQmTHSfqh5sIfMiXT78AW4OclXevSwdD7fjG28/0Dm7hoPE+EJEJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000033","name":"ukspumuks000033","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b6741574-e4ba-471e-8c16-2bd70ef3571a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"69b7daf0-1fa5-4ff9-bfcc-3c3cbd6b18e1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwkyvXyZ3KyKwHeWSQ/MmXc/6Sd1XBqII71mniA3PUzOR6EEgsHHTCCazwTTnY9g8HJbjo+nsZ9v9/kfROMzdzjOokqVH+PpBOAt3qNiV8dV3YFFzn46xh2048pdnVsaj9UOhg9vJz7U0zDdQQErGHBPL7RLPK2mwRNeFGIpQvR3t+9Wxwy9zZiNhPCc3d/S4fswgdC02xm0VtIrQI4CXEvR/4wNaowNLNGxSIj4QYK7ts/6T843aQFPCB/TiyLKGJbuVxZdmpj3MfIrgDLToljFsVUuxSqjMG45MaW1krtkWyX1uMvotoagslmZTaFOnFuCx9MBjGPGvTpiJ2NRomwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001Z","name":"wepumwe2r00001Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a6ef4270-498c-486f-8315-408e256b7fe1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"97d2e58c-1c64-42e7-8a49-5078b16554a2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzxD5TBaoyodMpMrR8OIulmOocJ2X0IPpo9WBizSIimoU2eLP9ISsFTHB3PVmGNlsffDe5SPARPma3faQLlYRBvPt3dZDbrlvvNv6gWGN+AhPEsA6iGxu9ZTMybRqzcUlCHrY431sQf72nDldEmHsEoo/xItFyRBZkKI3LLDEoQxFumdjw60Vp5EAduWrzM5rZ/7VyWLTcCpy3uAvY2dD+Fz0gXQ6X3uFFS4lODzjcJrF+cymismuCAnisjkDpCcp6rmpUvAjh3ODdsrzLh9GB2qAgUGOnYks4pFQWRnaSYlNqp8GGEGu6vh2+BRNtWwwRNaFXg3aaHOiho8ZpYK4qwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001Z","name":"ukspumuks00001Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"592e1161-f626-47d9-a9c0-d6454679d619","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a3efa200-1275-4637-ac81-15bd961f9e3c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArDjpZF0RxyVu/y9TfIr+Y0WI6sfudQZMXkNZRbDLOylv0TTnfLzkX9m1zg1xOclNxWDvsqLUlro5XHX2RlPsQO0F0EJ8S8fwvFySdjmhrQONjyfUUFtOpZNiIXdLYEuhOUfx8aY6Ts0hMIQXNWBRy3WBWsg1u47yUtmHfpTxQ7taTm8Bug3LP6VvibJO1uHFJN9P9KCRzh38c/MyafrELa5Yqex5gsHW/v+OqlNg/xapf7Rd3l5/kmaALn22j0I0YM41dbbA60xZHAtk0lXwfX0c/M0NUGYIWZoXcgLKwOwxkDkqkJAgr8HK8DF7iUJ8qO5T2BV0yCYU8O8BmDJEyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001R","name":"nepumne2r00001R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"446b4d46-c1e5-404a-a82a-3967a61e819d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b6a28e21-dbbc-4228-b88f-d4a0fa3e87b7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxORshmLX0BN3h/XxomzCzJSbw6OXfjplIA8FajCaI3WCc1iccNtHcbJ7tRuyqofNMQm9FBHBfJgTFVG5n2KOjZI8zikYp59IaDjZtu9BupBjq3n9D7/beBH6zpFDzv13o9zxX6+nmx6A5O57zMCOR+EQVwFt2b9dGEkmR9DUZmwwNMFn1vcM44Nno29ailKNangIPU4hIy5VPPOsafy1J78Hl5nupcB8q2T+CF8e7LCD+ZxaaUibUj8LPzLjChCosyX1y1I2oG+ZfCfIMh+07fdrrUJ3S8iC8xtaW/An5VEsSeb3PqbAU+ld3vudnlWHHKBFcKvKfCd/jT1NZ1UoUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001B","name":"wepumwe2r00001B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ff2b9224-610f-4673-b202-c90545b30da3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3744d96a-6ab7-4cfc-a426-a99e4951c760","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtP7ZTEqqR3Ie5bNgzZ/wGdHogFPp+DhqCbFEzpxHcZpYjtDKbfTrAeNZWWascK+moL1rqEXr0VcTIW6PgcSL7VJWOPS6jD3pIXgWdWVDRjqaxEsVRAcYtJLuQdU0KDIELdWhzk1IMCmor9j1rUhCCwJ0a0+7R8vcqRMmkRMklmg+D9ZzGbc97ssB6Qo9InrsM/2piZA0PSyjR66IdsP5LFBGUXh7yvKrd5BdCl5n+Ac66yqiN7kgBQ/0v/ZZTI3fmf5KI8Rw6m2dLXUIZSwc+q8fjgqU423XL7j/11IJobGoFIS4NOkeqOFuMoEmBww3hM0HAszHKR1PHXW6DeePCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001O","name":"wepumwe2r00001O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ddf134a6-5db8-4ab5-a5ae-0635a9c8cf11","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"470ec58d-9c1a-4c92-884e-c108891f6907","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqoLP1bB7QFKaoG288vRYh2tXe/WzGMnHIH8+ukVwq02SCfNrnYy6sUferjVlz9T+w6paQBHws3Diaf9ALiFho0EOgPcvu2SFVryT+8deUzhD7F2n5Jf4NgLO+kdqmnaOnmgkigPpKGaQAED6mbiozxoJ7MQ1nvTLWddKh4jVWQWPpF+r/oqeemdqvNdr0/93ETJR3JfY54biuz/QWnVeXnWQaFZ4dPezSqQ8x2w3i3MfjxY3Egfubd3ZKokxopIvpgnbo2V8x2vHA15RFHmA4e+2nqxDDPiaJY4/l6/mBEXqmkxAu1DIyN3RdLAtklx6D+9BQEP30jAzOcMEdl6UHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002D","name":"pumnamuns00002D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9ec1d445-5c29-4ece-92ad-fc77631c51bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002D","machineFqdn":"pumnamuns00002D","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002D"},"vmId":"ed1f8787-85d9-4bc6-8377-a8d5e46da899","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2XyFj0gT0+z1qGWQaTWENlNDLvM2dRrfKLZRBrObf7EPAsqYuT7BNQU7cu+2MyBmAegI6uJhem62gRF+TgJs6V7yfbyuxTzoj7ubGEOmepj0exp4w473poZO0dk8V8GPRrK0KEDHDI7j+Zzffwg3yWdTIrDEAJFzL7VQx81PRH1S/EycHfRCD/8rYHp4AGzWU/Pxq7iqf9+SKXvo7QO0DUw4RRDzhULWOWGurIYQ3YCtwv6NI4kxt86L4pzQ8Lg1NiiP1u1aE3FD7id41v93zyd4vSt1+2vI6JjMzxqURWDL4mslK6vB6tlbSsMisSGTsc5PALFvIzkZQ6gtRIfcMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000W","name":"pumnamuns00000W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c55a2fb8-a3d7-4c5c-b67a-e0cef6b6a772","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000W","machineFqdn":"pumnamuns00000W","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000W"},"vmId":"3d03f2a2-ba0b-4447-af03-b01a6443574d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4/kwkQbnUJLAHCpYqyh6L2ik734jgyAtHz0Ey1WIADgLkcvuY3E8T0VID/VPQiyYlegtNOSdCDySZaRZzbKxrnG+lymKpUn/QiOpAoEKxYBSanWSYSg/cMQcbRGCLUoy+f6FqucyiqmB8ZWqzdgeCn9vTRSkbcjuK7CvkHxuYNdJ2SaqJjfUlxUkftXMRj5sg2CrFjAQf4lokuOTLYcimSzmiDendilWisYnxXmH4jGOHIQJT7IgdN+ivyp35PLCdHKAnrxHI3Tx2qnUR9TAFg20EZpmFj+bjYUPwxlwK0YhlmqOH5h2htu1XdFbGI0mKxcG1u4xqYUmWQinBhLiWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000016","name":"wepumwe2r000016","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7cd5b48e-9203-457c-be9f-2b83e1340b51","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"54943150-1fbe-4a8f-94da-0c5510c7c548","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApm9tZmGg3oDXsodvgwyAzpGQBWnfPZJFNPmdVzURloZcT/OF379nL/THfcXBaWvt4JNBBSfaAvhGRledUGyB9lDRpwiJNDvlLU3hkyEPPtetENQfvuTB5c3iAUOsj1rPR2KTzHS77T45T0Ays7xN554wzq2WYmbOHqE+oJ5IeT301M+Q4TuxIqMDL97Xtu2Ds7Ej2Nha1tHfcBfKROIIRwhItHiF6eZmJ/tqp4rB//zyNPD/2O568lHDwPVtT6OozZrkBBFllebCmJ9soXyNPQj1PrTxoQTVlKFoNSoVcSfhoSj1GihX3m3/qT5Cf3UziTrO7KuC7pqVPe3x7EI8xQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000C","name":"wepumwe2r00000C","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f6b4f78a-1ee8-4b84-8ea7-f4860ea2985b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5cd9b6c1-02dc-4ba0-a0d0-f10ff0ac1870","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApFiAEID4JqQ+nkspN4KA+9DEJ5nWty3wyftob2bBROvCt7Y+7NSJryelfVEZxynPcxtkf91SOlxS9kr8z/ySYcMqSrZItK/hTQNtcbGGsbvIM+bvcZqFr+RFtq/d8TVL/BmOzVULLycTsbR06e5MmhOyLm9oLojVoYQhLNrZqFCWzY/gQQ2vtIizxFsEhFYmC70snpHmhJCABDCl3T8fWy48DoTxYePpg23/4qUiJT2nLCCkyUHgIg9PZrARzHyKJnjzlTyN/7U1QAs0ExJdWqhXbO7xVSk1sIdoBqGMrfhI5cFvW0jURgXT7zHNw4sTqXa2Av0gG6P1CV9Ts7ArAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000N","name":"wepumwe2r00000N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"613c02aa-6b18-4bad-b83f-b63170c632c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5d22c905-c7a0-44df-867d-81699931047f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2caRTg+W7qyybTIOtheEKnzCVDMUyTmV4ZQnDECmnOo0xbrbG/PQ/ziEnKQMr2WV3V5LHAbVj8+EUZO3VRYPgyTJyjIx/hQSgI4TaO9QtSVL6L8f+3j2TYZI4yLgiwiD64KvCJof81QK4Z4hMwfxtDZ4CqvbQwmf8F59Daq6yHD1ncc6K8pTQZ0qZ5izGjrTc0tBg3LpWeZJ3nS6y4+4FK8fLBFaAsfzPl4ycQs01KVYaahcqVNZruKlHmZiXab7M90g1t3tRoUaHTLN10RMivlmfenhiSiFGiIYkIUgCbmA0+LpEMG9hrwR/2aM0qEU8zP1eDFV2hA9vcP2xt9v7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000E","name":"ukspumuks00000E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c49d4f01-5cc5-4b2a-a244-c3211d206f79","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f37521cb-e98d-48ef-b0da-a4b012b622fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9zVaD3PmkOe6QMtaynUf2lC0rovpGYA6ZdW6i34LBAKyaHidzvfvlxyVjlwEzP+Q1enzg0hs+7Xp1jjeI27GPoXzhwaaVaQjmAZlGQQWAL+WNaSmF9eK8DWwXW/4/g+zoMTlYrkI6QXFrFE2NodmdqaxPx8tucfcL0REYKcKiopYb5jV6DY22hzMlVn/MvJjveZ7E/j5j5c8sP00Ovg8reuPIZ6SgcoSTamA+/z9jwXasoer4EmZIKx5s9zLm2EoDipzIL3tQjBJ98xPEByvkjSR36KALECRj8yPC86V6A0THUTTHx96cS8hIKwrEh+hg2yYCP+zjQK9GB4SRno2SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001P","name":"wepumwe2r00001P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"03c46674-bd63-45e8-b102-7b847b506c84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b1baeff0-6cf6-41ad-9f2e-d0563e79fcd0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwcaada756HG8VuP6/xHS+Y9MJMiRycrsoYemAPSXmzThDCJYbGy0I6Svsl2lXynVN0f50HJfuJyqbZjTpvdRf4kCaBYHXEQ1mV+4jxCRcoGGofConREhxIJ8YMxnvJ4qcgavoi18l7dvTSCCf2onh3fMc56s6jenmM6ukXlUmQfs1cFZvce7xaNWu0sFHUuGBKa4hpuei1W3737heVkiGVOwFFyIJjEtbju9KtKvrFWP15DYtFObATvYB8jhXjdFY395ndfggOhuaZ4bwEo/RQ9Jxckw35kB8FgFLjGiUDAF1tpTkh00UAQZ2Dq2VvfwWjSZEYGgND3lEVlpvWWrpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001S","name":"ukspumuks00001S","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"adfe0b01-8ef5-4e3c-af97-6b45f8f19682","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"82225b39-5c41-4561-aecc-6f5cb21834c9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1inuQv80+xircFOEufKYoFK4Ty63T2PoYeZJIi2NRQgUImA/biYxblPfRhm3QrEUMOqTEA5LtQXhyPAcxu5shL7/E/+J9EUtFdmb1sKPv6jGrrMuWDtDmG0bWNPjcDrCESKbZN+rMq0HDT407rLS72qMmrTOG0x+ZytGVPOWUoYQqLYUQUr/0sxo7l2Y90stc5UsWrFjtbjeY2Y0PHbpMCo+8SdEOOhFoh7aZUDUUfDdPiiHBYZG2yW+tIfSFba6hX7cj3bTBnVtxPP5CoBnnEkHfFcJ3Oq1x3BtyVXKuZEOoz+Ydmrg7CTY60it2UZ4ilVYcUs28Pidk8naRk6YzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000033","name":"nepumne2r000033","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"20cab72b-239a-4a21-93a3-a3f797af599b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"23f0e715-52a1-4a31-8e0b-13ec3ba45e5f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuzpKScCXm98ewirkWFSl++SEpKbmY8eTgzjMmQjD0/G81ZWYypuITJGy0uW5h5QqNSXfBQZkAt+vwVwRgnpJbOODUOvTKUP4QAnny1E1ZG0xp869xM8WYkiebQa60UHl3dNOp2gEgLpMus4RfkC9FL0uIkYUtO9G1cKcNQa4NjGwSX1WSarWakGamPem1QX3xA14YRQeucUKx5tjcRR33TBXiMjxfBNNr2840U+DecVvP+ghogp9vEraOX/+JYUe0xEZNQzy2I5P0a6dTSaEJJHs1gYb0bFy4zTLRi0rlinyV/DDUXPPkAF2BMSNkvFEfzHCtVTucwY3LqOeuhIwcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001S","name":"pumnamuns00001S","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"bd71bb82-08d4-4acc-8aba-384f6962eb62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001S","machineFqdn":"pumnamuns00001S","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001S"},"vmId":"def46fee-3272-4fc7-9ae9-b8a279b3685d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0oUcVplj93HXFZuAe+PzCelzocFJlA2MdRIWd5xnVclxsIZlDfe9P+8jcgAYYssn8SoAnRQmaJIx4aoPJ+UrskZPP5Vhp69VuZGSfKHYlQ5Qs/EwPbtcd0tk1rGINXJSXXNfgtnMCnDmtHNM77oIVx6cfYzIl6ljgD7S8uz2Ymfy9Pnx1KCljskW/OoK8eQ2/TYmrK+8M2LoWRuXo93iVDLNzfljuxs63/cqJYkmjynIXvEZNFr7hBzVXbnWHb+HagG33rlg2q5dsJ4eiW/GG4GMVvR3rppdnYhUv7W9zBjUthrkujtXUwpdpaj3Pbe2hzcvscJUUGXPnDw/zv6IvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002Q","name":"wepumwe2r00002Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"59a5604f-cd40-4dda-b6d0-2d0d3d5ece2c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a3a714f1-d727-4f11-8fc3-af3102bcef96","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3EwIQhu11mgjuIORwjT7+0wkC8iGc0IXFzIKdrjqDkp2DPNO1A3HlCu6Sdb6kywD4K8UmewZBrhP9mWn4HRaf6HvwrCdbjSUjSRGA44JNRdKiy59KavioiHcrc655U6xsZJG7F7xm6Kja33tDPFVDI+Flo4o2VtwlU2GOcFek9EyEO7EFOtO2tEyPLZgmBm6gzf0cxtVq4OOqNY5zsvA5/4rVej8uqoD0J+2QslU8btYPC1Rmg+W7gHvwJbwtiG2zCugZIbatGdhTYLXfm9EUUJ51rqmuYEjmkmoiFXtdIKeKJkMmOFLYLORS/nvJw5fOWQdSaURjfDjMbvANtnB8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000R","name":"wepumwe2r00000R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e6ab1daf-d007-470e-be33-4d4e0c3a98be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"458f6ca2-0d45-41f9-a83f-6a530ebbdb42","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+3mbmqagDLng14iL1qVd7hItk6LK6MVsBm9a/oqFidEKWQQWkIAtWaBU+XGOEldL4J9y+Aqg0zJUB9SfSutjDEgYrACAC02pEU3Dpgwn4aCQt7eDX2sL8fxMXBhlskfgy210gnKRV/Mb4pW7jtjAJ+g+/qZO88E+kA98omQzhVPMDUrXsTJGimX/kxskyJtnGizSdQiidOpDhq4Pbu5eELuMRNVXcdM+IYr/zpd9r8T3xwTcRkyCDnFjxwz8TIewPc31AVXuzkgo0mleHxveJOpn+XGNUeWoX47rkSN8r3DyrK+NuQ+r0bHTXdILsqhUgrv3AxE+S8foDKgwfPlhoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000030","name":"wepumwe2r000030","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f7e089e9-f2a4-4304-be0e-0c39df349dcf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"dd6bffed-59ea-4fb9-9218-5a2f61ad78c5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA68OA+PwmysjaG/SXZRo96yh+p/62bX/bWes0yVbJ0CtrQZ5H3bcACNrWjM5dU6gGVMjoBymIr8OtSYTqAsLZOwwTkh5u1LXR/pc48nFgd6z0BvF46i0JEE1PDSnqFsV4fxT0Qf50y60kuO7bfBvQBUXUEbE5RSGwnkgpD+4UC6aGylyXLvxt0ZffFHcFuEZVBDnOYQ+R5d0hpqYjz+u+Mjtk+zyttjsJHRHAirT68QJtX6OR8XoyCePQUPVhOdsYmOmATmyZfa0uMRkhvvQX3IO/cmwRyl1Zx9K5DUDtFhUcRN40hdfPAhwlEk6k3aS1oot0cYsRNeh8krOJIJoovQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002W","name":"nepumne2r00002W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d543241f-e108-47e6-84ea-90a1b562e6d7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1625aee4-03fe-42d3-af8e-13e58352bca8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoZj9OYli9fE2G5zefmWS7sURJW9JloIYYS4Z2QsAoiYX/3a+WU+LQGES1My3pBRAef1FAVkgB23nP1d3nVGWqIEZ9nMYkK3BPprL2Qu9G/zQ7DI4P3wsn4ePFmij9dl33b/aPsDVmasclAAZ4IO7gPn6rcDbBBJPLdvtlMc8jFlZT0Lp9yAi8/nWXlbvFWXB2EA4U/OdWleo6E9QZ4itHWSQrXZGmo+YJuK55WBllxfRiBL9Bkgw3LuGk+FjhygEhHcXIOWGzr8IMXPx0lZh1q8XksPWlwR+KIABgFVIKHjCTjFjjWRwwFTcSVIMDFx9YYTA8Y9+N9RKSqQd4QuL8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003G","name":"pumnamuns00003G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3ae16224-0061-42ee-bc31-0752d577e796","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003G","machineFqdn":"pumnamuns00003G","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003G"},"vmId":"055ad238-5286-493c-ae22-c82ffd31bbbf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+VmAaITpHpeuklySyiBN6VxNIrxJODLAfK7xxafbup41XoHzHkchhWEd6zaGMcJ3EaCC1uuXXkZBZ2R31XttLlZfuFUbSIZB/l5Td4ciGZw/VjeZk5j4dWXnVFbCK7I1WmMmFkl5LJrfDqXczesTVv2QY7gPgQu1KNo3zAGiORZfTgs4QRFZfP3HpuDIweZrcvXdC/nyA+kKokqlm52Tgd0ABP17pXD1PAlRXu+s2laojU32oXtSNlH91PzhXE2W7qhYA4R/NUb9D55eqG/eCtLY6VmISsJczUsksbyq/chvjXNnNhDPwMzpyOvEEQF8mV7mFSO/Y7oTgTPv5225hQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001A","name":"wepumwe2r00001A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"67a7fdf0-ef5e-4d6d-9397-c648a038959e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"7e834542-dde2-4b9e-9fda-b2dee6e2d2b6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2mIZRYG1BavViyr1qg4UvE+8gdlHkIfYeLBBwUAVqWw9EP6v3y8YheTVYuc8h7pZZ2tMqp2EXzm5Wgk5FjdkvO3Eliifx+iBR7O44NU0RSDEzYZNA1aJdP1iri4tXHTW6yx0H71dx2TIU3ngnMQtPzqmoiejYFN3DZYvZhhCn9PjRsXEabSLQTMP9qj8N38oXdciY8zliuCB83pr1GlZ/zxxFnU9tsbf1Gd0P8gjsNfWjAd9MsN7XDRKQcwdWdZfxdR0WfAkZwGVZ3cLxAIf45kpsCUZsMOtbFmK0J18JPnF27w2ly2cbuNG07e+l4w3HU9ey1EQUTdaVRDzY0tYEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000Z","name":"ukspumuks00000Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8fd96a4a-0c8e-4ed1-b3cc-0dc443948d27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c9f53633-daaf-4902-a09d-5bdf9757ad59","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8Rr0c5wrBM+UPR8H9Zta92/Po0/UuSWIfVF/A41vudLA7HYWJAMQQDv3NNn4nrr6bWIsHgy7Mqx78pVYKPqfk7jB5f1PTxs657D/y9lf6jOa46/9pxI9jwc+M0gj7H7z7o3JoWnNlTE0/0duBSmbo+9D2juLwc5umhZ7GLjWSUvIdyj6u/mDMF4HAaUNmJ5JsXjy+4htrbDAltTcUXRHJ+hTO4w7j79qdlP5r14m4Xm9JWwQTYww2kAUMGCX+OHhftHWB04ah1FFQROWmsIpfKPF5LYBLPbAhqkmIm97FDhD+TiFAVBfICHLIs+dJYMd4HnJgNzOlMzxCrXWUejMIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000034","name":"nepumne2r000034","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fd52098a-b106-4273-aa6f-8928750ed024","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"be6ac0a6-d099-4eca-9945-41945036c9ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAurkxT1Ix+alFrxcFx/D9bm8iwjj6dDLBvveI/Rz1D5QeJ25YcxIaUsE0LWVXc7/TCQYDHX28Valr+D6SYjM+U9IomJyOQjSz9a3UgKDqakmhm/+AL6xMphvLyTs1qOsUdg3YaHUargk5eE/DJpg18o5g9M/9Z4uhOq2q224t2IBs47sqoOdVCnFmNdMOQs9cfzAqRj2y369GtOpkUtaDdAL1/WYJ4xpO83fRzrK6RcAKZwgS6Yf0eGJOJsHhMS156PAqit19X13L0EMwdPsmZoEiJ1NQvJ/uchW20tDDAIzSu+mb7dPE7iCdW6fBMv0RS9m3y1eu+zmdSh6zJ5+DWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000G","name":"wepumwe2r00000G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9a05a588-eae4-4032-9049-20e08f91d720","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"785a3bd4-04a2-4236-9cbb-4e820638790b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtnZLTCSamzpz3gdsD23g2g0oZT4Hv5Dgi0JyvAbRAFH5o7o0mY6WfP1nLGwOECtan9Iyn0BfAbuocHo4IaFr3yEUHhpeFYDG2UdZquSMnME9UOBKXW/Z1CzTtz8/KxuYE1vRRzYoInJpl9KfOC95iWJFz1Cpebva+G1KKsrLcEwwLsR3QNzqyNeKkre6tJ3DOXnq3IJzbNc91M1LbqLyHCjqs+JSERcGlcVA/p3lSpLL9kipIyl1G7jkqH62b2VnrjrcrzTg6djNUqOqAMV08dH7getygmM2zxR2jc32QV42owVcG4xwL1p3nrebYh+lNFO6K4IuKogD1pprdw1ZdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002K","name":"wepumwe2r00002K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c060efed-147c-46b7-bb7b-63155c479404","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b5293831-9240-46f9-b80d-a81439cd0b84","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyH/cg2WLqoF+h0GkbQ09oQqoBIKo6XXVIspCvVmIcoDCmImqPFZPFTIqNsWl9Wcjzu6aK0O5k0VT/InCmUebKyrIYgx1UF6ZOEjnN1L4WEa2g8bKXbdWxYXvReh4LEwLjrIYRLY71hryEdyCOUEveCmpXj6qxisasGySXAfktSiSxVaC3I+82M4imRoo/0qsnCw9dUlKG1ueyxMTI40PqzGLr0kuib2QceGIdRq1s7g3ufP89JjHoTvXyjHLptRnF8hW8PfyfpXkZ8gXZKNcNI1OOWsByAsTslVGaevkg1riLfOvsxBZ1i47+R/9OVs8auMgho6TBDur8SvkIjaynQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000009","name":"wepumwe2r000009","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"289d327f-b9fd-4d20-8e72-d0611fe1e2c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"eade38ca-6106-4344-bccf-d4048ffd96b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6L+X8wFgMQ/ZwBS4Fye68hidAjn5Xgwv8J5iPjuc08ePy7Qdd3pvfKqZpD4h+0ztGlV2bWevEHZxTCA/fMGugr1veCU2iFtvuhkz/qc4o+45ojvVFswxt8InZtyM8yyR0IXc0lZI5+FQNN7KaKCyadUNX8nreUq3fS9481LSdkcNMKMS59qw1gr8kFDlxjTjRWRXZXhQLyvWJ9ZfCvUr2hLsknBYEQrd6zY376nCLwIBZSSNj3ouRl6fWGvq8CTqfRfUswuxXUcAWR1JL5jOvm2FrlLeWI9j8SbbIzSpZc89c3A/TtEsmLwLADHNJpdIg52CTtyTHRdrgDZGofxvewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001E","name":"wepumwe2r00001E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0f5f93e7-50c3-41ef-82c4-1c465da55551","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"wepumwe2r00001E","machineFqdn":"wepumwe2r00001E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"wepumwe2r00001E"},"vmId":"956d19a0-4247-48f6-b60f-615941029122","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwDjxELiVkS/itOY3Fgy8UoXHCFSUHzIwhwWUS+mRBz/4Wtqzn+h0ZUmzTIQyc90bPykrp+lbwQc6dYxSD0fnGSBKEQY9Il4D4/fgvJ9X3xNDHZuFnrYth6EWevmu1u1XIE0NCL+K+X31m50z92gJZfwJld5GK/yPonUpLm7ibpykDMjPeZZDwVYarBGnQRbXHwNdCRueeX5pNXlaYj1r1Rteafy9wj3rn+anBSBtvfcSubDGzAxCiIfVRiPQoBr2bwHR8wLEkQFUibIWpRfJIkKFc7D0KJR9IGbqMIcugQaeAY1lJnKb+M+vqZhRBYiypLj0uAi5Bxx68ybzgXh/owIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000020","name":"wepumwe2r000020","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9505886e-f802-41a8-af43-c25ff4d2751b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"369a560e-f83c-4e8e-adfd-f7dcac34329d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArWgwUULSOV3/MncjKCl30Br43lngE1NSp63bzgAX/yc4lh+OWHyDdapIdnzTIPoNAHu3BkMHdN/QaWJ9SjoHruiMidICK0ufye3laA4dlIl9UIoNlHz0Oo70dvSbN4kdPxaFYbsO8PTSST6/K9raAwjVihHStpxDw4hAnq0JfKnJUmrZvy7ekVS3JGR8qt8C+SdUfXCjmsS6WW4nMkYTJvpfhja557r/7Ittlw6TgkGuxnyfe2rgapsnUM3g4BCW3T+5WRHuuTg5hs4EkVeB6UlpA7MC6B7hDwz133GCl56hWPm8vhceY4URC9BsBErOPaChGmTHdQfySDXiXrewAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001K","name":"nepumne2r00001K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"426f25f6-06d2-4095-8935-3277e85d865d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3b03b373-c173-490e-b6a6-950abd0f61e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq3RvuA0LgylQELeDfBGoPvnYf2X52NTayZDjOESh8LByU+f6n/iwRbpUv2XwThro/mYpkzdaB1ToRVZvSCL9SzkGpk3tgMbsZisFDFfWkzD6rx/gu9up+IBnpwm3bImpuk3wUJJtV85ePk7B8/UQ8nOlemvcYhuJG+WkOB88qsrNwJbvtz/QPkovY8V0b1ac0cwOKooxG+IfT8roJmoaaAVIMcgdgJrLePLaj60MPRDP0jBxXWmPTUDO/qw6AJHSx9Nc9fq38mil8vGyS3dKDZYXuEOESCDcylZazomOaQ0vG0KumsMQraoI2LNsPU4UdInTIuXcs9reX3Ba4fFACwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000026","name":"nepumne2r000026","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"af736307-ad97-47f1-9599-30f9379f1e08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3dd39692-5aa0-47a5-bb32-cdf66cf1649a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1iz5NfIX1Z+30I61bjMRyiC1SGG2CmiMhAN+Oj/WSYU+AIxQX6h5NPnpXrhuGg6qQsr9RqTU/YVfekKof2/f2uTVO59o/vBc5Ske/f2WheXqQ8JbIYidgS9k4io3I4gw06wjC+11D7ZA5WhxdWkMFWJTwVP6bmKC76BupQyb2FnM/ALAFOEf7lM4LUsA6tZDJHLaAG4IKmWLBKv1wpknuhB2IZ/6IWOz27KTBlJWL/yv1IqbxCbsJTzONXp7ha3XF3Yul23U6erRvBBMtQDeBlxsDZBi8Be21v52xk46uUMVN+iq00vODn01ZNIwbDA1jQHwanqRvpkfiQwA03mmyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000031","name":"ukspumuks000031","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d6bf90f1-ab1e-402e-aa65-1386d9310f93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b66fc12f-82b9-4552-a091-fbee1e63f168","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm+YfdP/ZVe7jQ0qyqjYVo66B3zm+mtEDCquy9SnWQkdlskPwDFKdfSZh3wJR3+BpI6VjUywniJXu/C0UeFMMOVOgZRly1YaI4K/juOgUi0oXhCZxjz7Tw57UeiHBUiU3UJPhn/8YASgaeL6iRCUx4JA3NrfDe8um4fMrUpA44ujz6t0X+xya3hNeMe0Xe8lB5rVNxrsJmLDpM59CjaPlC1ncrAFYVJLbC1WW/20OfvIeYgL2t/1denm3uvyQiioWKtPM8KZqExZDNyPM/9l5tM+AHtfuIY3vkPiIrZifHL+OSfQO0Tiy/0fzHAnJDgY6L4APCLUuuozKwjsS80N3KwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000028","name":"nepumne2r000028","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c3de83df-cb19-432d-91db-abed14fa0a1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"25a0d9ea-7a7e-4565-ad5f-bf368d988943","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAni/kpvZA6ctu+19yMrjdLCwUKJ/WF/PJG5JH9teog23Ui+DkVmwMiJ5y/gvXD/w/kJnDIgNGhakpzXX/0UrShLH9bYXbk1ZIL6ECKmbxjg+YDz9Z9ySzqz21KP3OIid3t2aSBoNtxwbDvq0m3tB3eykM5epz4mLdTh+tk33hwtpqQSUzGZDd8CsJs1YPf2aMMV9KlJeGFodEH/wgY9Ox02sgL6kx6nbSV+opIfaBopa8yl6MEIqz1cT8EBgCtxEsZ+gX7m2zlGQpVRpugVrSkNO8qroKylGNzPgsMk+DjYBrg34yVXqmDdAcbduYvDWq0lLwPzJHy6SWzS2wrIzu3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000027","name":"ukspumuks000027","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"98801242-c608-49ef-85e9-aff4fdb11c45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5f95fa95-e364-4c91-8ce1-aa272e1edf05","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmaSBWqeYxvip3q50LdcOYGrRVIIZh2KkvfruhY19Yn7VQ2VNOSHwqW8qyCDwK0ZHGbOmpa9gvaS912P0ho5l4ZpNJiGaLlnb7SJDCYCDt6ZpQpvYhi1NdcLdzQXJ7THXKJjiDte13D6oWtbfxZkLtKdc3Clg1Hm7v6o6guJMeVnOOSHv3lzW+4JMOlXqztZScMQNbbc/0rLgzi/yBkPLIcEiEMXfAe4/OjcIm29gMcOaK0vRfUviUOZ04u/5SAqQfqzmWTR+07eURZ1L9bozs8iy41vk0XEKuHCZG5xNe82vhe11RQKhMTj6buFn8TzvrxH/sYuSStE82KrShRG9ewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000014","name":"wepumwe2r000014","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1091db28-8fad-4ad3-a5cc-73cb571cc1f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0ed71d1f-9839-4c7b-8098-782e063c74cb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq3vXa0x/lQu50gLF6KqYxGjI7Kw7d8FruQFrmu+GHssSrFP+ui0I/yaUdaXhcjypuVAM+cTKB6XkikKStLiod4bExj0A/Vor+sG5Av+QZ0cSwracjROmEpLb8mKbK5FINwbTI6bvn7xB2MTdR46OUYBL0L5mBEtsKpIeA8q4CCxr49ZQj1V+oLGAz//cLQndmQyz/AyyewClu3I7zAwvx2jIbtegvlWs1HCgtvXg9EZXGaTnyS46d5bbZaGOJvcP1a+UCVpVtV4k4BldH0G4g4WXLOgyHLEg+dEQIsfHUj3HB0R/QZ4DVb5dVbiQ7h0wQ7pk5Cb2sDs2a06iCoFNZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001I","name":"nepumne2r00001I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a8bd2817-425c-49c4-925b-ba7e6e7db61f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5830abd5-3d52-490b-812d-b7b7ee7769c9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5PzrydhINFzWyZTGnUznIaxArN6WpkMzgRMq1FAy8YwpPmMpY/6juIXtTOidNIMn7ufpjQaMiEppuiOFVLC+hxCusUgsfEbqXUiKVwB252IJKsdJ9ET4TjjOo3ysQ4AEsvzO6rCJUnmSvuF1wJVC/4YT1jVIgoNE22FgsF3AI4bxe6CYjHlj71aPbQmbnx14bXOh38S9GAo/V0SJLxkaUe0Hb2JhusasbhgpDOV23UljWb9dX1v2LOLMXy312oSoZ3JQZO54tZrC5b6UAkYNcQ4eRUHcEa/lvV4/D7FlYiH8+9KaFemXKWT9JAXlO1MWSuVtbZRN1Ts5oKrRzhMX8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002Y","name":"wepumwe2r00002Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f4fb43a7-61a2-472c-972a-025d90f47c5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"bddd9a18-4488-40e7-8bfd-a3cea78d62e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwmqbVIDydhsqvRb4HBrHGIzXz70S8lCo/39B0aAY26qIQkifShhC9ahXWfqv1QBqKg4aYzdbhNXnTIHWdhVBX/XRJojv3EZOE9lKaM1IcA4J0eJudwnJXKszHT9ZizR2rbNTtWshahgLneYioI27VQ3i1LE6nmnLp3BTt1eMPA11uQryc9KBlr2Nf57TcPTfo6REhxh+iLGNLEi2R3Sfx6sx6Zb+xiiHnXTXzE8wCJX0YpmDn01ZUx6f1afKg+dGymV0lda4PX2mrC9XY1pgv/MQnb0hhXkCIzEwxKnJTZ87U3FkkoegbgachKxh+yghIn9ZSwRTW5piD9EA2aouiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001Q","name":"nepumne2r00001Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a451d9c1-3ca3-4c76-a009-481254fc18dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5c0f3afe-69a7-425e-a9f1-de8b811c5848","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz7QgRW2NIg6fL6wQBE+kOq09laJsyq3Isu9J/8TWpN6gmb594SRNFlGzfjC51OkYiyI/soMEs9PCiFzFvlIldtDrYescHxgwFj7s+wNXEXOOo1t157CgssKGhcy8YamFj1MKgTA4oukSQTLPA9HLh1gaqQAwab1u/CptpQidjv/Dcobvyq622N8qOcqNHZGAO47kfXVxwOKQzXbYB++bI5LxlOjjCdkyWI82k8hPpZ36eR/MUQ+i6XkxaHS71L2IpxFhie29SuNLifFvh8CxqtVG8SKVwbKiGgZXqqzh+u00o59k5e9P9I3TNH11gCX5WwSdicLndf4XjGbTcAzSdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001S","name":"nepumne2r00001S","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"26834ea5-5130-4c43-9e7b-97246c1cbb7e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"58b5f65c-c419-4961-b4f1-934fc807226d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAl9bafUrPugzk9geMfUUxyKcsn5NP+3RS9OxI16aO6gyCsV+qRyPKSqyz5oSknfd7tOYOSTuz+nO3punHVhy96I6DcDKorNIUXp7EEwutlNluoJdLXI9UUwJ9rs59sUNemz+JjaZvw+wEQHr6zQ/tB0HnyhdSq4dzk5ip3lVA3CJ6QltK9X9CddhMvaXlqdL4W5qe+so5q4JLfAod9Uv+A6ZlayFMK3BbU1cgzd1NWaRIC83a8DbV4cc//hOucr71EWQpOslYkhOI9LH3H1xupLqKN+xCXuxx1QCTzpiruVhgCkaTZKi3zjO+heLc8CFoHHT/cxEO2FmM8zs5XpXlNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000Q","name":"wepumwe2r00000Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"94dbf210-fe91-4f7a-9bdf-a25a31287111","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"55ca6841-9081-4137-8c14-ecf108b754ca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAswPVReixmWktiK2lxeAmw+gy84o2mOF3BIrFc09UcI9DggHxY2VHTFDp/KzxF9GXw3vaRGaM8FfJ9RaUyfm49De235euREtNJva0D7/0T4znQLt1HL/5R19jm9FsjJaE5eDa6snC6rf9s1exRqG44tNm2m25ce1neI2nbZhf/vCD+g4/aMHBgqpLNwRmQpnUBjjeTaB5E4fhbr6N0OJAxnkbVlCJZMQi0y9BkMqRg9NkMSGtBzC5EhtpWyA2+0Ov7J7lZBMxRR9mWX40nWTZ9YD8vlLp4mi8dqIEplWp97d7ytlHj07TlKLSx0eEDc0wzPLJcVZ43fVDvTdzFXUp9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002S","name":"ukspumuks00002S","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dbef9e77-a29e-4361-a6d7-491ae1c6bd9e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"469ad3a0-f49b-4e29-868a-f23acb4ddb90","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuq5P0BAr5dR+m7GQw0ewytFI066U+9p7/wl4hyLYQFWU0YI2lwwigvz9qP3crx4oDQm9k/3NNIFOIqmc1skfgOSXpCRgl73vIk71YfUlUPI43mjGxSIT8HSyZsgedDvomHpa4r78LqZXFXhdQNmF1mSeDh8ToiGaxsmBLoZFyd8naZ5RF01ZMTJEAioSWMNm0gadGnhpYRJnndrebA8c2cf3XYPmb2swUPsqpjnFAvLwuF/dnrJ0ARurUsIz26SNZYiG8/xbQmHszHqWB7Xg5scW/qW4K7QUmFgvuv4m4hNMNbMLrOHcpT3BqeAgPQ/ii79vGavAhDXiVIoqTSmW7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000V","name":"wepumwe2r00000V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"48b029d7-1706-42f3-b253-8251b5ffa4e3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"411d0f18-17b5-4d32-82dd-b4749d969a46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqfzcLn3Orb6v7zoflEos8iQzWP+2rpqRU+VXsOpa+mfjfcwtJ11LpULfImXKgXtMPimG3AV6wlivYaQXB84q3VUiIH4xPeSUfDUMC8/q7WQDIzf9+hPCh06dZ3/Fpw3fKPilI6pPL8ILeT4ChPzER6AF1lQmB0DcK2C1mx+bF0cre77xldhUH9L8gghZ8VtMUDxbZlM5BHkfO8MTVuHAYLWrrFkLOEVBNO8gyG6zZPsgi+NmZUYRvooDIcOESPWR0amgsIwLm/jf8uhJkpBv1VV7H1qyXEN0YCrgF+wgRJjTT75K8SjxqVbMpXblvqdmoweJxrzRpFAIyqQ9qnddSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00003B","name":"ukspumuks00003B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"98be64e3-fc18-4fb1-8cff-5538455d1772","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"225baecb-f67c-4e50-ae7f-13bda04f4d55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6bJQYKqivvZV45IeLeRANcNLXKFXwIF+Hpd0EjWlWKBugpyYggzv9+jG6po8yVavTB2zjR/TobzEKy3OxOPi3rbEoRfOsfBl6o8e/qorHM2bcFziMPo9vrsUsPqo8IMRaATcMCb9jqAI3Jk3o7VqtI6bLboIPIRVNu9KWhpH/tWi5rZwl/uVAUE96HlNgiFAv17nS8BG5qyX6/LQl0rgM2B5PY8jPf3+41LgGJQsX8xYzJNeVoYyJZK6VB2xjEMrNHdd8/Yd+uC93+ZXfv1GQ8bAC972dU5w7wX9zUFIXjia85uWTAR7saJDecilQmx0Vd4f6GrQ3F5WtSAk+lx+wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001E","name":"ukspumuks00001E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5d2fe592-15da-4ee2-b7d6-d83685ed4b86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"357d4f1c-f68a-4a6f-8534-d23207ddb7d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvgrVhZTkR98TMvfT1ihWK8bZhB60gEbm+x2YKN8rOdW3zTItRQ/YGKsgVFwlE5Ax57N/WaHoDVWHuqiCJKF4w6tHHTE12od1DkGL8RmSMq8o1f7GXCBZvXDKZqIbsC+hIJ7zitQnftFemEuno6VsTKIdLVOyvgW01DFfkcQmQ+WqSNMlqcu5sYRSnmPSIYCeyuHNAIaQgGvOXsDK/cA2OB+klIm4QjnG+1krjAb+hFpSZLpfcjF0psJq8qrWqKzUrzDi1L+D3H6kCqy3NzMZ6yw2sTFWFqo2m6qm6MQ7ekDY9Bc1AhvE1Mmmju8MpjzuZQrwenVFIpIQNmISZEDKLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000022","name":"wepumwe2r000022","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"12c75ac6-71f5-45ec-bdaa-b3b30f8cd8f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"eea56074-97d5-4e50-b946-845a53d74a8e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6M0u4/IQOdFbCoOY4NgHlAE+6umUcLqmZ0zrCA0DVrWIcugCeCX2LNT5H/PugMmHS1DK001A9+qtBGTV5ZFUTQ21s5ODOoEDVqY8tGoDGWuvddiVoCfWsUTLS0GCKjEsob+J9dMnLJQBwWfGjodyPa+X2OLSRaPLEp4lLgIY2kZKJopjGmdQC3QEEFwO3zYYA+Pm8W8PcAu3ccgZued0bkE0NpAlS7NUKPGxU+JLuYKYYkzUrVYkecZKAleHB6yCon+H267M1qNXKGu5ql8IyJJaAVI9TpssKGv5YhfIVV68DsP542RYEZrermGkTw3Ih4pLSMKt00cnYP3EMNFcUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000037","name":"pumnamuns000037","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e46e863c-b954-43f9-a036-2b4d1e5f35b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000037","machineFqdn":"pumnamuns000037","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000037"},"vmId":"a29c79ce-f9a3-4c94-9e09-e9d3cf54fb56","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv/pTOPz7qAydEkxK9DUMyMGTNzOzE3v1XYnrzGfo/rIrxb+6eoJd6HEn8ITXgVFkcdXHi0mt5lVwZV9K3N0cAB2aSY4QKUMebOx7SgYMD1JMvP/aNahAAM7PXvHnyGQuv5eQftlqaY+lPkNp+oYgrVVPqIJfMCmr2E8h88JQp2lwTy8LtQIgmm3y8itqsTjy9LTyoDvx5UKJATbn9dYvaDQ6Hb6BzmKlLdCBhRdVJ9+7dTBGVDx4LaHxZx4OeqktPdITOiCmC9I3FhuSmMxlLd5qM0I2Zk77Apqv4rjt+cMItUpvl6SYrX8re6ye71nMaw8nDy0JZuxad0oTel9OXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002F","name":"pumnamuns00002F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7118a7da-9702-4938-af7c-d47d0c245d74","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002F","machineFqdn":"pumnamuns00002F","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002F"},"vmId":"30db2f5e-2edb-49ec-9f22-8ca79520df08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzWWLg0sAgj1ewxSB35CjmLd5H0ZP0U0J0Fncqk3akF+D+0+coqQ8NhNXXC1WVljTsGUxw35cMNPrxiDP9E45UPBoqWtrOhZ0j9YRkzwdvhQmIP2b09SHb5L0Sn79v8SnYCGBpW1bdbQ5B2piBzXesnOLya+/XW77a/o+8PXc+dDu5/c5/688txjCWm0PiQnZsfgvuOh8e5nOYAz9Os8LnAQ1S47bKbnl79Ana1qYikW/+REwiU8rBgvUozCuPulvM1uogS6q2nDxyaEY+cuZDKKyEWzxSW+s9oAvFeS+iJjZa7YSx+TOJ0oQkys05iEbcsorXctF9ckvF5PlQmiOtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003I","name":"pumnamuns00003I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"aac7a0d6-b420-40c5-b244-53a7ab06948c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003I","machineFqdn":"pumnamuns00003I","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003I"},"vmId":"f1c44e32-3f1d-4f4a-a835-1828fa0d17ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzJzNv7YBsetEpZTsxuysoO8hMzaq/K9tuS8rpFH3JcCVSzFyhTBpb9slSYLU7DD2pZAbb362AT7Or1zX6z0LrB1Oydw84qr0JDrYC3ihL9svggwwcDmjWBw7EzlNxGA0qwDxQp/5ie7bJB5Q+gQDKuBhNZARj75lHU36LZzoxzu7QED1QBj1VClxnzjbZmSh/sBROJThY+XqX1lbRmClvKy2v5UeTyex1LhBI5uruv1J3BNhMKDlOpp71U+Kzh/mp/s9jPEZjy2AsOb7US0xSmwBZmOvdSsHD6O7Nqw0s+WJjEobpIytgHEKcnM4cI3Oe+sA0iSdxaQ+7tNkK+EXrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002Y","name":"pumnamuns00002Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1f19d3a1-a01d-42e1-b0e5-c8b30040bb35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002Y","machineFqdn":"pumnamuns00002Y","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002Y"},"vmId":"d5bc453e-f87d-4075-a7b4-4bc7f1141535","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv92CxZ8KZ66V8sMRRPt7ZdZ0PfDrRguqpe2a5cbbqoYXMfDDveTScLqQ3N3I+vZP+1UKf3tI5U+x6QWH+tMBGLTSqnhcJTQAux/qNYjuXxReif9xfqJzYU3KNLmOXU36agnj17u3luzKIb+Fnu3vmXyAvl4toqRgO0BzGwuYAHUmsmTbhsUWObb9cZadPFdwyYqjdBUlcZ9sbBhho6RSuvvnDvAOFHi9VFt4y2sEl3CHsIxbx/MdsrxQALIEeKC3gCNXnL4AkeAsstbMB8zQhME5KAWC1mCmo0Oc4LRLt472a5Sy8IkK357LLSEHOjciEUucof2Qe3gPKjnB4nUeowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003C","name":"pumnamuns00003C","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9822d39b-f6c1-48d3-91da-a0a735009e2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00003C","machineFqdn":"pumnamuns00003C","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003C"},"vmId":"20af2939-ebd6-4c6d-bde5-514c722b4b71","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvpcPgScNrkQPvbXWQIAapSfxCMBIdvy90uLaLW8lv0/lTNIiCXAy3iob1myKmuO9+3eRLHbWsprRyC1TuBtJNMF1DvJkapYuRE2y4Bvg5psM/n9JvSuK4TbENUZQNF6CuJds/Uvg5yDoqPqmvYsgs3k1TgTGhXVOPQipIBAQzT5iqL28hOXf6kOitksqgfvr6S/TIw5E01m/8XpDMy6uYz923nHn7oJe6PhwqnpK67/h3wrfmYsGbX7vFXYQ1HDWa1/g44uRyAkYyV/n7G1NV9wN9QZTVYUBJnt/Bl/ZtHEsisNo0HVoyb9cOcXjkksm6VUk8kuYXBhT+PZB5y3zvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000028","name":"pumnamuns000028","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ab57489a-c248-4d7e-8eca-35f4a07df264","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000028","machineFqdn":"pumnamuns000028","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000028"},"vmId":"ec493ef2-9299-42bd-87dc-44b27a4cf480","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvsprzPpUZYwGBolIetqiR5Xzczd/QxScOZdDAk7Fw4UrufOhxQOXx61nvdO0UVhTvscXfszpInXeDXNbb5JJ6DhQtIhl/y2byFHyQGJO2gkFnsuJ/xXQOQAB1/zwijomWEDl4/E/VIJrdd1wl+y6O0AGn9M5JM37SzQ2iDyS9Ab6JtnXOYHAP56Y+8I4WZKcnYQ2USH1dcY3bFpXKviA8UKOqAnQ4v09pNd7ej7G2+RjJJrooHszOLUoNGNWYGx6MPDkk3sCg/YadFoy6joPYxRRax53wfYCBVyc+J/r/boAwQx3RQhQkEpi1g+BZuIzDpELX2Bs8hOpmOkfhOwWIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000I","name":"pumnamuns00000I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7c786807-8211-4390-8f92-6a7f04fac1bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00000I","machineFqdn":"pumnamuns00000I","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000I"},"vmId":"1a0e56dc-e555-4cb1-8bbf-2eb87871a512","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwdQ+V95u4biVxY6kwvL4+bPREPLglfnlc0aooqMkdIMDLNem2nG8LVc+GzJG4MmM1R0Wl8yQ8pqdtZYbLBwa/XNee//MRcucWuuxUV2O0GgcSnZ4aBtRA+U0wCyORYnAUwxSubcr1yekj+flfiAj/MbKzjNdJ8fQJPcQzuV8BHxJm2z4307Lmn7c4aLIEJUYoAx9w7uib/PMN/vo1YggNPzAXLVxZqr5eNRjWstdvPE2uFpaGmKqaa9r8uFOlx5yNVKHe8+HHcjHy8iZTfAlmqwOM03E/ckjnDl5zYBbZiUKjcbg5UWikzjbnicfG8iN7LcwyGTLtmIPPm1Sg0i3YQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000031","name":"pumnamuns000031","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b2273ed2-b437-4653-be18-4d2d126a94b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000031","machineFqdn":"pumnamuns000031","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000031"},"vmId":"751cc535-ea1f-4187-b170-4423a2e43c16","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2feyhWRu37Z4MKmRxVjFmUuXrPUtgAKbfnpHssIHSTwrwdHXdqfxV6Fy2NXykn7XvwaLLIU+fuqWOreKr/mCw/bCfuyutV3ZwO1/C3OqsQgFtLRzdC+oG258KGF44FEofPxYZVvd9SvJWaPRxU7DsSiabCOIT+lwYM4aDCeBXJT+6zxQZEla79cqAfDXncVJsTqrOo6ML1iS//kSKxBiAxa3RjsWYP1I5+wiW3PELG44tEd71oR2BSL5sFC2qgFZY34qrPxY6c2M7gD520OhJdUc7xFRCOo6sn/li3Z6eWWNksqKJ5/+9gVy615hvofjZt/u0Uiawj3lRazBLB5TGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000030","name":"pumnamuns000030","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0896f059-124a-41dd-bf46-f7d4c5b0a6b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns000030","machineFqdn":"pumnamuns000030","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000030"},"vmId":"c63c23e0-c06e-4a9c-98c3-bc1ba5287839","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9JxQucS02pEGmiT7iUpxHGSvASkNoUAZBU4XsqDoYDMOqGZa4kALIrABSH1LH0ipaSt+4yRZzLZ36Iw+ZE3f7AY8ravhzwlAkT/b16gtGADztgaJS4Clfw4UrppWZsZuMXJAGMoZhLEjLWCQSAuhnqTgrKzV/SiH3d2jXo9EiSgm/LOpS3ZbDlBGBLQnZ78exqloWSyn8u5kpez53HjtEcaPKzN2MCNvWlV4RJJDuL+EFR7LPtkVGpg4eeaUl9iv8zU8P4Y/n8nJDuCQRb+EpO65fk+Fru1HPSR4ay1LKkFxt660Ca6vk3vI+pcOOzv0MAxDKyqaM2YP5j6GXuAkAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000012","name":"pumnamuns000012","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3028269f-342b-458e-bc6b-067e892498ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000012","machineFqdn":"pumnamuns000012","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000012"},"vmId":"86f33667-0815-45c1-9d46-f50437776834","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp7GhJ6sx7hmFmK8nxhQCKZ/kfWENJQgksI5iJFI4spCiR4BtuaUSAF0TAeE7G+g0x9X6pzUMC+3OBvPHpGmurWknPfvqVgtF+1yIJ28OWfNiojC6mp0CHIsGcA+diaQH1xqaDGA30eQAO/iNuq2sP24fJzzuVrYr1TlZRQar0WAJSmRt5oUZrRi6qXuHrJPZn5W9TIKk3LF6xKzfk3jk6pO4wEoKcLE5+KK0AA99OdjUXcL0P/Jg9RW3xGD8Vl/HE8HoKRO2VV2gPIhsHy8LLPRO+EEzwxFf16VgHQzsiqqGUJ/WwZBeKNGe+Cdect9UJU+h8lIlAGE5IftQ4xr1dQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000Z","name":"pumnamuns00000Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"eb8f43f7-907a-4674-897a-af6f5051fd24","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000Z","machineFqdn":"pumnamuns00000Z","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000Z"},"vmId":"ad162e33-9385-47fa-ad72-2ed22098766a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA89QrWUH/Ur9ZzjcGDZbams5aqgvqkizP3d2TUeT3qplG7len/E/qHJ/LsgwLHzFpa18d+q+HqQB4RSjO+QEqPAsCVSqWluEI0ddtlyEimGq6RrcUQipbAXxWA4Co537sfDJAE6Y7Moh8rb+Fff4HU6FdUHUDyXbpKOMmAreDNevd4mu2H/ZTS1UZiaatGC6DODRPR6Df3zjlGwWeFsDAm8kbZWX4cHUgmKSr2j7IP/3bK03aoKO7ZoDtcA1kxRsz7cP4M8zrRkLyzIiY2DnNOgDUwmXJZ52AVrw5UeIrLcOFQ5G/74K+OtROZehi5KtkFoU5CJIdtXVcuIX6RwZapQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002H","name":"pumnunsig00002H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"47444925-c0eb-4728-9c0a-0486def3cd86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fdc3fbdb-e3b5-4379-b360-3083de625ff0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsvRHInehuTEUF0HZ+wtiWrVZOwzUOaM+w6vqxOGsQoniaJuP6DrcvWMbrP4jy1Xov9owh5AgnyBfsRTzZAr9QVpz8FS6JixwXcVYUCDon4ecK1VT8tUzMOq2eu5ei9PeU21lXyExfUugCLcRQOH1ZXXMDUT5xtWXC4cBuzhJbG03qUGWg62ehFoDTaMWDezXB+pfOauCUwTcdIUYUV5q9mHFPkqzJygJtosuWdH3YEr0w0BdZlTiATTG6ACotM3O7TeIBxAfHwu60PkrIuNeD6lkEfLw8+DFGuR1fWIeYMQGdz4LEuNc1e9ru0aMgrvT+tN+am9ScUiQDtqr6XjQJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000N","name":"pumnamuns00000N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"af8449d3-5a94-4824-b4e4-696fa61f7e19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000N","machineFqdn":"pumnamuns00000N","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000N"},"vmId":"8a6c8e92-80c9-43f9-aa05-5447eaa18b0c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr/Wye1ISiWRcrMZrQN64s54KIdIZKZNx5lO2Em8hCX+NPKmCsTORDSljdB5M/gog3b6XNrVjzFxIFiDXBeXyrpG2/drYzuUn2BEwFfautOMVe/ONuY0oDY6UV6uNuL5w0f0mNze7+dO34s8aVM48/oe+9nfom+YbYc/mL8PjfAUXvH+o6xDDRhfjeOuDbMSO1fPQD2V6aWzpJFyC5wKaWB1ee8Kym3Xc/tXDIk5DnfqxHkgASW8r6BJRzKQ22M3ttC5pvVDWMyzAaBHcISGnNpRUbgTLB4Y8SyHadt+HQP5DDDRBeVGa/KG2T9AqKcwLLwCbWIBQUeFXxvtpgESXaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00001U","name":"pumnunsig00001U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a6fffa24-eace-44c5-ab44-4ed902a3e6e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8472e72c-2278-4819-b47a-49798a1234d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2eZdcUzmrL4yqdiRDe4P8EEXzZV/RuA9kWM/bCDWGZ00B9ivAAUB0D34nFswmNeNDb9g80Qepjo71MoqmjfnwQGY0lxX7upSuZ6Q/LnEeXhqVBxfIfELK/YS6AxaLv62rNZjx/4i488G4laj0qlavUsv8Mp9fUCu9epdKxcAayq7gJbhYv5Bz9sh8eLsrcE1t3NYeu+zDJRknINXHILmNAmU+HnwlPl6YvL+TX39qJ1wgMmG9bZF8PrqaoXiC3LRW4X5UIV0jbXQfBmDvHe1FCpKhmzgPnCWvXf80qHrKFeX0kOGb43cxdG1NgJnN1zk90FV8deloRBL0xBLkIyM/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002J","name":"pumnamuns00002J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6f2a95ff-d0ae-4578-a5d4-fb6bf74d3c7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002J","machineFqdn":"pumnamuns00002J","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002J"},"vmId":"7495ac85-289b-44e8-bc64-447ead66ed38","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0+Twhm1ib7qvgcmmnNvfZ6nLBS+HI92i7uVTEWUE4kcGBmD8w1b12KjoQamY+2G/ABRejIO6N3jvzierHdjHiwREKW6aPMM7uIwYA1fmBC4McWW0BcUhpGSyum/SfixAV3a5F6mN6OJ1ZsKXmwuMD7FWNzii0zE0ZtemU6uWCMc/PCVVw0p7uN6v7oa045e3Lw/zQnGTId7Y4a9uHMJiElUc3+vjv1IWNWmS4xdxsPcHfGG1LaIKbq5WDehbv6FzOM3Z3QhAK7T0FoyHKHIlXe7nX3FnQsG4ZWzLvPgzPcjQW5miLM7vBIASpZJTg+Awwui24OWS9XPQROHqFpJGQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001X","name":"nepumne2r00001X","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fd0e72cf-14a7-4739-b1c9-20f915c05bb2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6c2f3c27-e0f7-426b-b395-7675966da5b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs7FGvBgmM7BwzSb2QLi8TrtPEIcE1r04ynVbaB1/aX/BFj2j+mW1wCzWJWa63m9Di9k/IExJ4SZBaQIadqX6Hw8KEk2Xle0Mk1u7lEjKshQGTQ77e5DzQ28ZCoUrCrs8a+cQFgJiipi0FvkwbvCEC+ybD0oe+IESs8ybZ4ofNpliwgskZ7saAv/cP5ANnB+UqVItTaIaMY4Mb0+Ml/BlQFqnjzAKzwY2JmAulyfvxtBZNZbJkpHBDvfH7WjLEnQiPkGlQ3Rgn8oQQl/7QxOTH9XK1YHK1AW/wz949P6eSdB8gfJjoObGz1wL4k3Qj/MnVsuRTNyFcR9C/l9IwveE9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000K","name":"pumnamuns00000K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9fb38eb2-a167-4d40-993e-85ab68c20f7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000K","machineFqdn":"pumnamuns00000K","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000K"},"vmId":"54878cfa-4e64-4356-a3e1-c60adbd9d658","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1dMJHxUb76ZhQkgetkzbLWTJySokRzsZyF16mhe5afvVuB0mLGp5tbvJRnLaIwFclxiIpfK406et/4Ol4oIKhrg/lYO/4YkP48V2SNEG9fQOy2M4fwLvvThRoKVlVxjghYcBLK4/IIvTIe99kSVkKzTzUdQ01Wf5pTD+3Bn3c43XEHDtcuPQQVv2Mt9s4772vA/WTAwCAYchfSh62c9wL3mpRT8y/aaD+ZpVY2r0QhsLVCDQc5oONlEOHUtlppWAgAgc1PmDD5gCgxklDx4tj72jHGn+Glr4gQZ98d9VrMqkHGHpf3HEmjdUJhfmttTSlrSUCWD0mxpbp2jfWFXeWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002H","name":"nepumne2r00002H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6bfa1863-3c26-4672-bca0-f6dfec7c28b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"66aadf05-733b-4afa-a9ec-cbe9db37c402","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv8TFeTY0yTT5Ce0IiCgkr0bsY5WdJvPVdcd3oqQSQghSX2/sK93jEUyKI/bbXRMFxyKXSsa8IRH6zpSyaE+7g+kfM06OPTl/IE/qnyN2WwLqhpLoKnQhzycQbNDGuCCb5M/+iwZAofSkx41m8dCa2g/UedwJSkELCT2FkWlKbDhQxvz+7UrJ3sQTo9Ft/yi65knagUTetNVB3i8Z40W6vDJUBS78iK0VjsRz3KSvdMtLntwo+BFOvAiDc1hqT66XnN8vVtFqUXBdgHad8BKDExV1CnjK92w0G2qVh7KKlCGL/PHFdl8jErJBCnSZMICsdPuMoNHPJANwx7RSXhApdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002O","name":"wepumwe2r00002O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5494076d-5b77-4f5d-94df-8433732482c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"76e79e5c-9008-4af5-85a1-c2c0baa26928","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvBmyt5sS5s9goZHmb7aiZxyuIK5xhhjjLJc1U8xxaKOFsbz1uUSLZ6LfteLazcMFK3lozAjPn93BMbau+mqffRCLFNVcbvBsdgIhq9W3FEQQAgjWYgIhbz/QQOofabI069tPLKm1WFNIKcZGKz/cHXQSaGLOkHtSHNy3MbaPBGd0szaNMS0R4aqxZzfPcvY4OKo2m4HU8zZfKlOwsUyTCExeEiOnt4oUFiAuT+abg+xbBJdcOQpKt56k3Pwb6lO/GG47Ub1GtLjyvBJuw0TLKX1iLIqvA7keiwef2rleEWAVE2VsMFuCUH/dupIngqqYIaqGg2NXzJC9JpYl0qlPlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00000Q","name":"pumnunsig00000Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3beaffa0-1585-44b0-b7d7-7c92e54e6245","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"50a01845-769d-4c7e-bef9-f370c86f38dd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3p01PyhXbl6gR6OnIOtDvJrvO6sKSMGSfZBiJl1PXvSf3hS13HLJ+n89/ON74pntRMfQLqgDNLJxm/ZLXLpY5F9cRWCJzJ6nKCN7/h2X/vfn6IOdlmOtdU8T99tmt+2okJ0jCEuFfNIs3H+KFZJlZiIPPrE915EORts6P7dzsWnCcBb3gelfi2vhnoXtj1ErtjgRP725DY6Z3tTg+5W6HHtqnJXfYPjyO2rcLUflZnrQcxrLTJx5xY8DZyjGqjQelxGIwJYAP664Rymz0Afe2JqZ6dza3rYqXiX+9f0nxrOQdMrVbjycOa9gUQEAipOjSZGZsbcR0UoKI2uCzxThlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001E","name":"pumnamuns00001E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"26c4a6a0-d350-4e76-918a-3f5c3ecb74a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001E","machineFqdn":"pumnamuns00001E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001E"},"vmId":"f1142ba4-f68f-492e-b0e8-0f67da8070d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxHvvXQGwvm4EHNOojstf4bail4C51FeDbX0zfNM6WMd24IYmnplI51uF6rP6cPCDsWUR9ovxucZvpLygzYDeCBWLEj5d5CWOCGmYHF5sYZM7wvrsILUr2W3ebBY53DVbQdYeNvn8Kqa+ANSwI8ydfp4IFRRiL0socLz7EmkNQmOnkvfg8ma9OTcOFM9NBZ3aghVBiDQEI1Y3jLH4a3QKyd3KHHNp0CMk0MhLazZzVGFG8ez1O8IWowBixPVapRa3zK1C4eIoJ/Xzi4+xyqO6SXCpCuzjKT3EzqtdglCNoj5kTId1aCgKPYE1i2SszMtqFlKUlQIzJI7OCUNuwGGFNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000F","name":"wepumwe2r00000F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"35cf9f82-3ade-42fe-a936-a5aa6059202e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c4812de5-b681-4faa-a1e4-b25ad7b8a8e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2q1O0k1DbaCei8UjVdcyJxOBJbRZYX6aXi4PUfi7oS+S532y7sW6h4kvV61mTupLx80t4TuBBBkfcQ5rbyNobQCinMXeX7xfvaXybOxAO1S7xvRtOwTzKSGiLle4XyOf8Az2BAvn51eL/KxBazaF9UCjGNggXWQgAfEDMLp6rX2TP1Q/Spdad7RbT1Aw6lui/tsDcl9H4/shR7ZeQACvscFo2Xt+nr9zYTPlF595RnZpRSIiPg3SwwPl8FvOeQJczTNYqMUrdJn88vaVC3Nrgv1YCk+VoAWWn/XWX6v/Ye+pYneOmjb+7nuLZmi+2266gzbwZPaMLc5MFr0TPbrIiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002I","name":"ukspumuks00002I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2fc12cd4-036c-4109-9083-f79a401567a6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3ee147d0-6871-4de0-9e49-4026e9cb419e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy1xt5SBGkTuJPhTU1FLcouYx/ElgPXr+EUc+Z/0td9luo+GudTBop5cTz5iRRrhajYopvnvuAX4brkHxP0IXou44wLuNmLmX3fVR33RrIcua51XsOM9uILt215Dw5bybqu4UcBz5y/BSUrbK9AVbgQDD8bLL2zRu8VMjwDyRN5/r0TrtZNRTU9FsbRJUi4zvjhLi+XaUunzq+wH4FyZhB6k+MNeJoPtVk/zzAmlsMJtGXxMp9NcyEkNsV7v1u/FqVror6qWGgZp0yqV7NFuHfEHyw25aKpiZ/WP+zASvYtlnnQHzTEyJgFEvtIsSA4PrZvjzcOhER3xdFg7bDGRImwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002D","name":"wepumwe2r00002D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6a291634-e7cf-4f31-8e04-49dd24cbb336","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4b5bb25f-364f-428e-b5ef-1bc73b488f78","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAscqooS2iYguQssUPDs8+h40L7/z8L72Ll4MILVBm85itQsU6WaM+/X/3++tFxiAZ0RMPcew5BNQAhiK5BvqTEX5gsdtHTbyCku2EtXrG955q0Y83Sy1yO+90b2+tZj9aswOHlQaNd9MSHw4MhkeiJjTZfELD2AsaRZBIJcVwdjwoI9QmA6NCJp0jchRYF0y55rJFok/u+8wShxyI43ciMEbCWVbN3io26SD3RJyTUU0e33ZoXnrl/K1qCwneel+2Cgq37QFZPpbfDIT0rJUNuMVpl5cQDtOzKW8WIv56q85HvMtRMxlrk/sGCj0+pcw2YoK6RoxCid8O98/nhYQBkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001Z","name":"nepumne2r00001Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"78d7b208-2661-4fe7-93c5-df29808e9027","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"dd7c6b33-2bf5-4a34-a608-e101b88b8517","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsKeMdsa7lTADhIrR/IiqFsy2UnyaMiFoM6I4A0+qvqm9U5xs22vHr/SkecgPr+7bdzf+Fpb41PcBCGC20Sf1pf8cBRguqifdQaqSPhAEh4ndZhC8cJ+XwlNFdM7X9tinmW+aXusDTneqxf1ewd6D6w7lMoSoEu0X/dPBEOzAUyXl/CLuDl7P+EyMVccdOdO/VI6FTAxbseG0YLt8d8krF8oQBneJuhAt1tmBkvQq0g4Yg3i20ulpRt4akPea0cP54FQ04LEsUqqwFkEIkxrVweWcbLQ2qeU0IFMrm7G+muQStuz9D0Os6ntGf2PaLWT1y9isefOGRFZkuN8cg0Yo3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002J","name":"ukspumuks00002J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1515b76a-728f-4a0b-89c7-2308a17a1391","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0f2c89e9-4a2f-4d21-86fc-26fe29a839bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3lFDdFaw//rsA++GK+NjsfIkWUKSEi/6LGxUsGemvUfYjO/Fk0tadh4TBDOCKQdXjgUG/3Vmm8vq5k+v4jCHvq40ZrXfjtDvZ2sCGV1wtGUe+0ARfhUvKF8s3rs2TlqWyvvve1KvWVBgmUJHtC9IF2m60OTvpxkuGltu2tK4jRrUnWuEaEbbVkmle2xPUKlHTcAwXkTZgypKEGJXP1pfKkX/7+uvzLfnXHCUY3TnR/lvcXqvmROc46YBjDgqIlnlIdrW/gE22PkZM+B8bjZxmp8D81L35JRt5P3nav+VOdHkvpr79VmPAOuzNMjxpmVeLwt91y0K5GM/yBTqjdh1MQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002V","name":"ukspumuks00002V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4299bc97-21de-4dc2-b425-42d791f2017c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"75e40a91-8a41-4148-91bd-0d019e42a809","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxSUfdtiCroOiLbJ05MYGFEWkxz2VwwgjWvVc2Dd3Pcai0n7I8Ml1Vf0Z4ZnBxKQE8pKRNSTxlNp2t0aldQ2I0GDEQhly//micZyuiSbmzGtnpY/a0Z4XQ2xoiVjOVirGayXENgPJA8N+nnNS1bZBZt45Gs+olMyAW4YWzSqTDu1lD6dn+E8QwkCVZCuNdG0rWCm2du/9OEsbLQgQUqtIbEUrFqn/gSJZtM2Z+fo/M7S45fHcNxKqbnm1S6CfxqEyUMWS5vVPbjy1FDkkyxxEyjppKCvhmiIEli8KplLA9W9c24BMqDpSYMjz3rjkFBAQOxgIMmRDyYnrildNTvhuOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002A","name":"wepumwe2r00002A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a2db988d-9b37-457b-8fc7-17a777ca59ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"506f661e-b5c9-4af6-9056-e31995da09c8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv4x1SiF5g3D+M7a9pNmpAGxJhFVJr9rwivX5bmsfi2DzcFHNLxdKbKFHPE17e3p+ox/BS/OlePVJotI/qMFZA2fyd1TK4Tg4avObVlvkGnmb1ncH+80cxTbPfrg4zD44HfPBG3HeT18w4Cizx+MgLixPBAD1m1Jom+N3VYTvGLUo5ppYYr87bIZicHM5f+sf+Xt7btMre+Pav8bYp92kOKZCoMmzyibnxLRAZttcqA4U0ICUl6rzed3rC5YIJz7+6D6TgA4Yemz6+lkFYKuMEXTaS1urJudzKajKIB6GYnBhDAGUoMr+23xLqCYro3i9eLXW4jP1hYKykfQiunvvyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000032","name":"pumnamuns000032","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ac01d5a2-c354-4d07-a20e-f0c6e11a75f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000032","machineFqdn":"pumnamuns000032","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000032"},"vmId":"f83534b3-c20d-47fc-90de-ee8887e5079a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA99Rz7LsrWI71N3bRLap1QEjaC0jZsmmx3rX6a67sIlEhGXnQBuoaePmV5GH/NEqqykrx9DXW3rmvE0bx4OD1LuxGUsQuHSnh4Jeh/UfmMrjtJAEUNnCVCjVzWla0YTUb3qnjIje55t7adyTd5v8Ifw/aAEFAvlf7CnY0O0jp3qJ4bCsjpfwBixxU2Ubn/d5jqzSfRKH2A9dQIPWugLN+mOA/mCGD5onu7p2BBrNHTnaR81Da2w7p1mVNx8J/wGLdfmJ3z2zePP6/jD15GxiX4s8Mu19MWxGlCZCRS0hyRlumO7VDQrTLNiY4HhP1rlo8JBWrD3ivITcBwlPnEhzpzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig000026","name":"pumnunsig000026","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f2f35273-f676-49ba-b4dd-82712253eb45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"2b8959e6-1faa-4986-9af7-92ad0bf1d45c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp2HP4QuExk+5e0mXueLW3li5aI0+MAuq4B5e2kVpEciYxpk/5jUZ5P7oABo4jUmgAaIG62TRP4YhImKleR/f71jI+/+oGr+2dlBE2xcNpTZuNvkb5UeXM0XyGAUS8zWALAidbfryr3t/UWt76rqB62zEY+t7N99TNAeRmUYkDaG27lmIhP7Bw/JH0r/M4Bh8exOIaDprxLDazJdYL5Iiz9Yslm7PI6FLC7hB3ngJsCiepnQD3Jk6RXH5yFJvA6FoLc7PJtNE84q4PPRqQyQHHmRSCeddCSvxSfUOd5rOcDSUSMbVEzfNfBwfUSGmpU2VuzihB6IoTsNF7WlL4mz4DwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002R","name":"nepumne2r00002R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5cc7c2db-9a08-4f27-829b-6a6876a0b5c3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5bdbc383-74ef-472e-bb28-6ed419483915","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtX+rVoXRUyWoNLRsrQW0DiLeo3WeOxg5mhMqyl/Cbu0FyjSjHj7GlUC1C43ouYI0zgufdMFUJHtbubwfVPhycoa93iARYi1yDe/+vouhn/5lNjchjLLVnP/ej/75p2oYB09mPhguY+KwFhM5cP8jE3VYwKASj2j2GmkMjGpc6VJxDCQWKIdp1jHKgRuIko9taHdcH9/AobRA2o1aCW8o6J63MMt3BHBe29C2JBsssGotnqxkzMj3hC0etVDQtL1WEB4iFp3lp77gAXSdk9Xotso1dBXX+m6Fv9cnSllQM6t7kPWWGlBlUv/z8V76rSbj0jg/p7AhX6/VLjZc8mw70QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000G","name":"ukspumuks00000G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"214cf4fd-bbc9-45f4-b975-b38d9599b138","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"ukspumuks00000G","machineFqdn":"ukspumuks00000G","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"ukspumuks00000G"},"vmId":"9d7da3ae-1801-4d33-b372-4f629646c8b2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4uutgBemjtUHafUFW3dBLEnVA8S1y4QoZBzrnZnWUilM23/6JjyqUqQbXEffg7EmMFAcnppvsM2kAq42tjm13bYi0tCjcvMiZwjAz65eqw+zQSiT1ZlECHWCB6o3Srf8QsdEuh07sNqsc+IClUhu9n9hvVwAapsQ7FycTeP9H//THamAbmv0n4G+ylWEW5x4ga65DE2v0SNl8mCark1/kyGcndv8p2Tv2LYiU7I8TqSkR6H925AOnpDYDSpt/PEzrON286Zjcef7/mBjIbkNPD9/0y0yMZfWcmOQjNrQCvZxRaOIIxTB05YumCjvClyka0efyH3l42+OJBCuMxt+vwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000T","name":"wepumwe2r00000T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b70e637f-d73f-4c04-b3e0-636b4b365b34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"42741a99-0657-49bb-b4ee-82dbc0363803","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvjSwUjpXJ8FW8rmREBlv+ZvRG6fpGvmd5dvydqCioW7+6p/8iMFjSUbC3Jm+xIQdASNOB/dNz4tOGU1YgfNGIKpQiTlK3FM5RZm/51l1DBQsqaSiofz0wPCpDYTDHMUOPfxUVSfyFVrnIo7omyhHlkULsZMy77wLW+o08tDrlki4nGvsYt5q9VRVEaDyoH4bju8/VzAXPjpOodydiVrTvdgmd+seQVA8eE4ZhqL7N//+zAqi//NQZesFVgrY2fhT8423BA3kB0oq0EdlzW9jjPliN3V/lsFnoQVWBus388mozf54bwVD/EvdUnaw1nX93yyS6SRAqo/gxcEwq76HswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002P","name":"ukspumuks00002P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0ecc4ebd-c522-4393-9c3d-a4af773dc331","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"ukspumuks00002P","machineFqdn":"ukspumuks00002P","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"ukspumuks00002P"},"vmId":"7f25c202-b9b7-4020-876f-700377f64385","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqPkMqUaKPm/Y8LbAAo1dxVCbEjMFBQIv9dVwD0oJk0pWQQOmdXQFtIIs38nBrMK+Nd3EgtYf26p8mquGLiZNxe6bWKVMU5XXnmvlytLtW52hI3sqpb2O+x29wbnrzvpv0sqEaqQ7WzTMtqJ77Ovy0tsgWFulLdyONE719SufZbxhioL/FAR0E+e3cBbIHsy2EiC6gA44Zgw9Utz6zCV9pk9QqKIKZkLOH+EHJjID8Oi5B/xTHj/+1ToE6iF5V9hs2yCy+8+feskXmcLfOa+cLqIY5hsrA3dn/p3WIfmjZrNaGz+BDL+YHcdTzsx5RNj+gBYxG/obpkrkvTgjfJCwDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000007","name":"wepumwe2r000007","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fc4f85cd-a9dc-45bf-af0a-c59cbc66fc0f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b32a6243-c0f3-45e6-957a-5f1d7e8a233f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvQEvMn22axoc1N6xOvE3M7/Up36YQtSTEbbriL5GSuQKuE6LEGJ8NzFuNApR9dn5bjnr3oUDI+niRjuRhsDc6BToxbZh/fgbZVWGPGMt+eGEutTNFl0YL9amasgllnnxSbHZ8Moe8Krt6Cvgzmsa0qFlF/P46okGiTbOFYXzPiknJTdaB2AQdxWCeaitMHosvItqkTTy2HPc9HU4+5Gyk+djCxIkxydhfERq0P3WAy5W3ipBZyhF99swnVobDO/O64zy03cFGomXAG+TzTImWBPPlyjZhv5Jrm8yFTouVvfRRnmRX8c5uRglyTH8nk5OIhfkLqLjQ6sYQ+ujUcy08QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002R","name":"ukspumuks00002R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4fcc0853-5aaa-484f-8f34-15c9dd08c8cf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8dd85ad0-428e-42bb-8131-03d31941e366","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwm0/s2zCMqcWFyuZMc+5PqjU3mPWAOtWLzZ70Yvcz65NxpEl8ZQZk/TXirF+mhsnxwQCOn7wFjJWSYVmlQVL6VhKi1pAUiUZdBw4UO+7VJQXhsFFpLwP3A/gYrir3wBulEVVxeVQyceYCT2mTpVdj/9I6IHp7OKFrdfKktDYIotNfPJ9Ox6WxsJyLJe1RnFvNhFSMfLYFaeCw8OIXDM0DA2AW8WCBlJNi2p07U8XJIWBnSM39I9/IEHZEWMzzogBkPoYKWrI2PF6vzw7MuzfGpDwgHlsSwzlbksds+N7A7EZuADIsNMy9J1CWw4KCCyuoYfTjO2YKvDGbb1vNNn7SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000001","name":"wepumwe2r000001","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"67b7cce4-8e8b-4e2f-84cf-551799b31417","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d0c54fcc-c67d-4f30-a009-8bcc90ecd427","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyIj0qOVEPX0GoPy+vzTO3hXDdlPlYWMnIt3b+b+j/F/Xgwoq2zEx7/rYHs5DPYnLE28yGRvkHraqZ0tQeyUE0d8V2+E1QCrTWVClMYwmxzDUQNJoJG1mBhq+dlo8eLxQ+zo0z5vuh9v9K70caord2o0ZB1gHDinn6F9xfaikcMDsAODGdOCr6tVPJE2m0Qclht8bejMnXv3hM/Dseat6UT4U0y+QMQA9K4GKY4BO5xMf1eaB4Gee45sLSl5kL1bS4InMK3NTZgb+Rk0OiNppO/U775iLQ/YjUoAtEIy3ppdM90MVztx14VYjl90XAmNjDuAZFJPL2gdS0XoLwM3opQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000E","name":"wepumwe2r00000E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1dbc3e16-754f-4d0d-88a0-4e1a71c134ff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"27ec954a-993e-491b-941a-06521b106d80","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJn/NN+Ii3gfH5WMVFXd6rDbwpzz8zR3pJratvz0M6Lf1ImOuGV/XQ5OUhUuRDKD5NZE06CM2wHx6RoA9sFVSo9ZU85v5y+bYQDnyHtc0FViVrI/3eaw6geB1P3leQ42myWXF4LFjIFV0R/1jJL1zgNkhfZTd20IRSdjHcatfqFeIX+eAr7jtlp6JEPqHJjqhAuA4nm1g4WIQCiL4gLMXIbWlSC4umSGwoOmamvupzzGyr4dwy5B5HJBg5KSBHB1e9UnA4xdIqjMykDe7yw4uzAD4WqBE3hu5oUG2zuwhA46JDDZHRyLDqh4M+JMIzqA0LlhuEiWvQ5Txcc2bAsNFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002J","name":"nepumne2r00002J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ae1e7999-81da-4881-a09e-08c80753163d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1b42c9b1-7046-4b35-8b0f-2f11448306b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxF3Dne5vxG1HYeG5+xv0bnKvupRaOKALC70vn3bywV8t15qXG0VkzhEIrNcgYS0m/JEp55co38xmhhbuSSD79PZPGdc0V/+PDKa18IvGAhvpdVm2BFPeNhGnpPwzoh/SBS62+FaTpgLARBQfI+MDUdYtsVKjrQQLSlvIzAtHBAYeRYQprovIxqaiP2ZN7aPoWVT4BklAzlBCQBqR10yCXcTKCc5Y1ywUxTS27VROv7UsMKG01thjjAOoJgcmIawAIr6vWH5FA66eJFwhgdRoLagZVRJN3wxvyKNi5sfF9hZwiuqh2vdDbXOU6KwVfhpMxgyxQJSpVjdEAzZb9+LtlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000P","name":"ukspumuks00000P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"12f31d01-47bb-42d3-88ff-9045c38df6df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"16af5c46-eff7-46a9-9f6f-1aaaf97c5440","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAl6hR5OWtqlLgyPG22BXaTMn2EO44eHCy/nkt81e9/ovptRgYEUrTw7mwDrtqIXjt+gk/WotAQWh0mxfFF1n7SvOMX1mAD2W6tBRo4qo1OWKFc3eKyjjyxb37sCgFtqehE023yMHfD+u+PWrIr/CIUAPyXGrJJLMoYxxMe4S2+DpGyBeYrSq6TkOb9L1ya2xwmeeRtXtKvGJr8212nErjW14jDEgGvCnWGvg4Fq3dZaWj7NKUHomBDTki6u5dY7CUZTjgex9rVWzRIe/U9/3XujvjqPRXJ4Ee568C2sSv61yVSX8PxIyA+fhCMEqOowAKmGOxi4ilZBf9cW/GuZhFuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000023","name":"nepumne2r000023","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"abccf45f-30d2-4f43-8438-59640203bfc5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b5de27a7-b541-4a65-ae2c-2e03bdcba3c3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxnvFXTMi8Khva9k+xX5VBfLLOrv5a19qiig4A5cNZzeyIuXUUyvvMBGXAXbuhNbYiGneQIvOsDpz7bui3bkwUgZpmAHfavjcH8+YEtH6R03/cknqcE3UExMeaiobfo/A3u+lofvtl5VuJZus3pp0g+oN1DOJ7F2Y4txJAAtPGJSg1opkd6o7sIMVzlWe6FXr0uZClq+mFQPHNCfauSVHJQ5X9wHkRKrjpWk3egqWQt9XUS0d4z4J2iN9mmDKsE1O3iCkhdaRZRzRe5MXUjTRxtu51VQBCyzzsivN6KzWlWhJW8q8XWaSXI3aX+jIUPe1+UPXqGBZMHfK0UxWgtPc1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000000","name":"ukspumuks000000","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f6337ae1-e2b6-440d-9d7c-07e270600042","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"e60601c1-20db-40e7-a488-41dad31d37ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxmLmo0Go9+6wyw89+i4A39VOKwC7BXZ6vfWySnDTyEi7ISd7BAuaaeEvQnQeKhTIsRxie3/OVwIc/bY1R1s7PwlYTX+gQgLRfBWZUswDTinFM+bbSb6U7/42wbe80VoI7HfU8bRojqn16mUy6ViahCkfc8VSGDeIZJfl4utGFg1hYLMKP7kuzHLZonR7fWJI07VcDo80pHaM2GxvAkE2zKXJqul0yr6SxTBCS9azP8SmBQikCPWhH6YrQJksqQG95as8YXAlNTXi/l+hOvksQoKArIGLiO2eaG87uerHve1kLJVRCTCVZZfy0oWfZT5g/7ldt084J0Z0U3lqb9vcOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000O","name":"wepumwe2r00000O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"34a8427d-e989-440e-b059-71c572a91e41","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fd491498-a7fa-4212-b52b-c00dd8f01539","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlMnGN0fTjoR/sdYF16SpuYshKf7KPdhpCoNa50DJRFgWGPHCqQF2ylxXkxHci/SdrELCAkRrdG++xEPi5gSQxu0NlG84XZuiQ0W2BwhqDptnznIHK1dTlf4tW0QdEQiQB7W0JyN0UN/YpYzyrmTTN6hRy/xhaht6QMzbJPAoekGNytKciTS/2WJKmLeDdyvcX9dLoPZ5RIjaMEnDe6qXZj2KzYV2aYvDZW9ZyvWjfAT9AiNMewrAFvFg9QkRdep8+Fz6Eyn5J8AvDUeXCzbErEKJKGi6zQPr+Oxl5BfWLEwmRN67IAgw7/fFDMUti7D/8xxRDyLOatByzIeHYb178wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002K","name":"ukspumuks00002K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3bddccdf-edd9-49cd-8183-0ff869a1b1d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"e0a50061-7622-4dcf-bedf-1e86deebc5a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApN4Pb0yc5SehXqca/wrO/kCjHJWThcd1rZEwWbDwH/Cxk91ahfGyFOQsJzbY7Tg5MpK8zLHw4nnI+NtyRPdnWer/xqMlyznnwa3xpMbkdoho8pc57IMiINMGsIuP+YtfP9VvXsFGzjpcMEY3EbI+gS2iTEUkCGN2KrWOZ/sddKBcUVWx6xCGOeBqGxMe1zv5jo5Vc3/9dDNFuWsM0vCuiAS8jlxu0r6z+93r7DLLERYboDfKUJ1KFsxyQBcrB+XgHUOYdVgfVBb7SQmJiRNT/kdUydSIBfS+jDCKn3XmR1r0tli0lA7M7++SJXztQyD0sFB7XJAe8nUK5AaXPmsN3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000S","name":"wepumwe2r00000S","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d3d4697e-5f37-40e5-8327-008f0633c10a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"54e0e434-9a74-4015-ae66-36b61f1e8dfc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApMGDZHI87qxk/UgDvdm7JnuU8KUD9o9HVcmHw98htJ8JcfmYBVaTtGRM3n91tZaTDTWOiDDrhI1NbhwB3eGRJAun0Mh/fNxOIGNaKYQ+kTNr0SCR6oPQIb0QpaL8DUAggBofq3PlcsjlUQbb48okzIBz6sj6io8y4OXisY3zGkfZSw1hmMtxSIgQdjke/UJt+VlZw7Rv7Pw7MEPvo7Dw+JtBG3BQmFIZ8XDnoHMeQ4usdNRL9Ai3W9rpRtSDmyiA0N/HuApropwqFuDsXaWzkWjfsma5t+TCDL1QdebjFxIEJti14jmx+YzNDQ9ObhgQLA7P6Dab8gf5065TGG259QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001H","name":"ukspumuks00001H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fcca24c9-ce69-4f67-a2e2-6f954164f9a6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"66537796-3f23-4d9b-97da-ec38530456ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqlSPn8RgrBQ38qaP+W78yocsng78Bjtecr5miU9M5kjNfBI9vBkvNLSxaWV6BmKEL39ByEzSigIfYh+7EwlF6tsgxl4Yb3c/DiF7sj4D1xRvSWx1nmojSwxmekM2AtoyNx+eo5c0Y874dLYT7LcXbwdXq372UAQAGFwaSUMdVszXHHjClsjcgRXIwucXS9JuYr8BspRYNgkwD28GmRF3gUSqpVbBal2/O6H62NFFwRLsX+FqEGyvBlntmEFRfh8cdFTlXXcYHGlWCd+P5MFSqc8oQ5m00ISONwg00vQgNy+GwRKYGp9phZG6vmdGuHQL1j7NQ6yVzYpiNUalCAbzcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000L","name":"wepumwe2r00000L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"17b4f505-1e8d-4c0a-a2bf-b15b8f9851fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"335e5711-74b1-465e-86c1-366ac5a6fcd4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2tSPSc8WrGpdr3NR+0XEX8ueuUUW7+rqvNwmxWQrWgUWuzzZceVqAHXr2X/rnxzIMBFxD4mEWU7xv/pgn7+pu6Bv99xSVIENTMr0ZRuA6gBZBs0Zz/Hv96KEOMTYtf8Fr+DGWq3IgqeWJOQwp34NxYHPpQrRXecbJmg6NyWC3Ajt7LrvrxXKNeYcvLA/Xf9ALDJ1/Ese8Kd7wC0aEWbu5mp4l6uiaTHCAxAzF1TVGCS4CHdvv3enwjYesmvnDCYQLJue/MIgi9A1FmG6ksO6ONKbYr/8H8uLGSq694KVBl36Hq9AokuYOjJ0QU8p0PgcvOz3twYh0ovDgMkwm44mdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002Z","name":"nepumne2r00002Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"afee6f17-acfb-49d3-8a1f-f25fa898cc4a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"nepumne2r00002Z","machineFqdn":"nepumne2r00002Z","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"nepumne2r00002Z"},"vmId":"0a6ef287-cd40-4410-972c-1e75eb0240d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2KDqQwfgCGHnHfXSO7fsVqqDRM1U+QhLPiuC9TEIbONdVPQgg2Oa6E8wnWdEleWLRlT9HWK3q1DrBnjWBfmzql6qxaR3YpM+2tVlc2/e/KDsF5PUs9R00xNEDgl8PIFHBTIeHu88vGGlOrkdlE1PbkYeoKP4NpdZcTURO1xA6Q7dfVukWKThPXr1FuoA7VLmJR7eKPVmxLp5jhph7gYEtL9OLt+ntEPWhpOR8VsPqLjrUAwbArkNN+8xiSAPXzdNpWBHEJ3nTWPegOR48rq+fBpyQ5F+gB4cL5GprTYQ14EG9CRr0MrPNZA/4b0deuiu37cmhRfQajYQP4wqm+lAMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002E","name":"nepumne2r00002E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ec138ec7-58ed-4224-8e0f-79bea6d0efa0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"68e04686-8e0e-40e2-9f48-6362ff27faa6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlw0B+2mk6gJ/PK6QH407ghomSTR1slkIuPUbaKp60e84CGeOf3mLBYyXbxnwvHFCe8I+2qhI+x9dYcSgDovRUNvBZNus9rv6RNUlXfj3OWGdzMjVreRqmXnqiaT6WYoMyGCyIT930uclN2q8MDBG33FlxDD/Y8hwKfHD9dKf4mehteU2Y3IgIdD+rn0Qhk/85e/xwTPYGsOf7jg44cDvl9eUGKqewWXYrDk8pBdHx0dzQkbqu4aqybLtZEdTeCjo2Tlf/8InaQvPLsvTHUiAJ9PA/mNmfjN0iGYxR4U+e+39qcPC10m6Gnozq3g5FTD1EpjkJMSzbsl4DGvA34rt6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000035","name":"wepumwe2r000035","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9dd33872-1eec-4054-a2de-29b0d43e6156","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1180db91-7399-4f73-9a8b-2353ba6c1ed9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn6KHZJPizkzp4/Ql+9xCT12/qZ50fWmArFqsWCWavi8pFRY0nVclYrbBbYo21KvFIJz+VIsgn4/sbizGMOGs5StNjVXypxlXYoLL+ghtxyXE18QSN0lmn2aUYoYS3fkpRx3jIK8h5V6GPytPpuYNtVgIwJYXNRbpSjaFxZpQfN72KUA9Trya9sAIws2pnSVdHAJoiF2O40fX9xaoVGkTcofFhMQtIcHZmx8kSJxW3HAqbgekBENoS7jFXTATrAlP0qCxM3aYOISE+GCRNcT+mWma0zFGs3U5FDRXDLwZogtOp5qu+I+87hPhYEp4+8dG4VDqUMKs9xO3Nm6QKys1ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002E","name":"ukspumuks00002E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"fc0d35ca-741f-4436-ab76-fca94e9f08c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"ukspumuks00002E","machineFqdn":"ukspumuks00002E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"ukspumuks00002E"},"vmId":"7eb06237-2d79-4deb-91fd-cb26ae0e7e9f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyMTqOQALeH7tTjFL/u1sRrNhRNLGKuBNKZzP7VT9SeVi9oDBMfmefFX5A+dCwyxUKY2Ck9SfZhx6S5oKfLXbKsIsvlzP0/ZHaljOwzaewr8/MIWdfQfsFsk36B6fvNtzuDwgwKkda8SuUq5/LuWaoHGXM1cKihYuzJCLdxEKU1XPkT3lrdOSzAugOG9bzLoZ8q2E6qMl28yMoXAbVtriQk0lPQ6J5SgESZfQ5hJ+AUzoGPz6kalVCYSnUeTb8DwmdKRGViTV6EyWddNy4PAqM0/D25ClnRXnyM08+dhQkOavHkb0dZ5bHDdfLwwHm8OxyaN8+MlTcrY0fi+j8/xL7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002B","name":"nepumne2r00002B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d6a504a0-1d85-4e47-8a06-eb1a0caa3d60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a78726a2-4e24-4636-90aa-a5eb21a54cc9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtz9aR6TzRHJOe6YUtFCWqcwYl7PJiT6KERyV8y/75jFPu4YmkF4Nc7VxRJeza6fwvdTN6fKy/EjUs7Jls5rDP3MoB8yCR3D9pVmeooECrknxHOMqHVYAYnBWCChSJn8PsOakB5PFfWSE/YW9hZsxVxBHJ0kRYpgiX4c9g1oGUsNh+KxpkF20RuEQngk++TmKHCUJDY75jC3Ld1l4mtdt1NVRX4U1DnIAdlDL48GfNM9uJmMm8X6Y82wnlQ9t8JEFGLnwqmUraRnlHr3aVnPQ+A7g7MQAXCXKXnXnBqTVqRs+Ghpt7zFQULzyq8WCvyInkzuvldt3ReSndZfJ7NqD2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a3f0205b-ccfd-4f38-8d33-994f4ceba895","name":"release-a3f0205b-ccfd-4f38-8d33-994f4ceba895","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0fb8579c-f4d7-42aa-b097-732027b1a5ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895715512432273615934658855391851052513931885731196442336121006030498830324376271591376911500573794427409152852675989994838075969055293977640633221795981687193901582215520010688250463276943359240721788257750246178497453208080427765307554237883266126022360686012556430884061524407795389383279265446512115587120512535261536643164178969613801638420591761224610753133998828213444693533044945181906053338146976343305837","osProfile":{"computerName":"jianyunt2"},"vmId":"2a54c6da-29b2-4020-9b2b-db006be7a8c2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA68B+VkvqUz6CP8zAb50QsKyTvXTwe5wJvShd4tFFuMsVMt2JrHrlxAU5GIfe9HVQ5SZLeIArkNWJMGrNf6FhkVPF++GWN3j1mtnxnAYOBUl0p4ZzMtg1VTr67IR58BpVEf6B1svLJtmLzgW0ohkzsX1mOh1E8dtvozq8QjODgwTi3LWLlgyrrOePVKsz6kL40/Qu+iDoq+1sL3w8q0lSDWGDMfMpviFqPEu2HDBpkLvh+nln2hOSuBUVzbX6erx9mXtxCaG5yGtRajRdnzP/ByTKa4tdN8aVLJPPosn2M23augIJyemoXP6UCECoPebQiNiaAgRi0V8yzlVSmgR/MQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-42d16125-45d7-41f0-84ca-c8898b0d1c10","name":"release-42d16125-45d7-41f0-84ca-c8898b0d1c10","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"10d43e2c-8adc-4529-a815-e5814647fae6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185894391035456349333397942699875919377835592441183043696635036085878214633679391896165377075301843392033836843645488981494286531219194559898641423209193293994476853154619498171940573805225776635447337691428339274489458538476431918633743840639130326315535522299551218398426925468259143102273528178127284093466349512722749224197655398030476954137396477056154151824246711583564139728429549138354821355176342379075880258055434573","osProfile":{"computerName":"jianyunt2"},"vmId":"05434944-fd4c-461b-a7dc-ed3dc060dca5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0bl5j8InrDQ5XZl/CV0Hr7tuW9A4Ck51b0V2K0U8e4cDwVCY9ARVGU9U4dVlnM9R171linYJuOj25+hYt2FA2HNnIBGwRhM5v7Hd66M0BQVm7D9HrrAxaNm/+ftUZpaE6Qu04B4/pTauQkDgriQJsSBCMRpgz1PPg/29owbTLQ+Vql7KHKKNFA9ghh1dKSu9jJVsqfdgfeqJe1n2xd1/moLT2gK7XkO//iLcs5hMLwCDXjQlbDOlvwuwoi96Knq0kPp4DEBWpsJve8udzU2tuZwOt6OMCBAIXQoEEHXXuhc5oemK8nHKF5tH6p70G1Hah6mRK1rxvaw3sTXNV2fRrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3dc0714d-5e73-4f47-9a2b-afd8bda79746","name":"release-3dc0714d-5e73-4f47-9a2b-afd8bda79746","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d15a4129-b1ad-475e-b479-cf46975b1bd0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418364668972207808417371243884690091445831697260619751124131463063437234404968764158232566478047828835604360798137074437670625828884519158959029365533526278016301788933915171045398894719840235838391796857851173183051645180121858043916849812387019116685059877508957083477612782261424199229789737326149267573754711558625951832053543285945028619479526837981208494996261883","osProfile":{"computerName":"jianyunt2"},"vmId":"7da36696-d38a-4704-a7f5-a946eceeda57","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzuv7HIzVx2dNgPissTyYtLZfqMhdFgzbTYFTKoTbYw9THon4jNJC+lxumaLYXcwrYCuR2VzZXAuFqOORkeZPpPBoUZx2vxz6afOs92yfU0ICc2kHvbUu7UG32+6N1DpwqUQrWRYYuLvQzzWswOkJX7iI+xcDxh2Bnns1OZv58L0WemELdYyqHgGrdXK3Ny85o4fIesGr29GN2/ghlZdbubTOHr0eX28TDonDDKjf+r8Qf2kg5is1Nmh1ejP/xsLjVpTCODgPdVbXyLdv3h6G3VzrkDCOYsduaQd040AqUXA6IGMVNAJ/00TwbTFqwW8/MW1twCzWu8SuJAntXQDS5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f31a3f58-64d9-40b8-9547-366a3356bbe4","name":"release-f31a3f58-64d9-40b8-9547-366a3356bbe4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3e672a8d-dcbe-41d7-95e5-395ea2002859","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810033164328289588889649714789999092226335256379434729634546004583083779387880477828979557595896647747261074594163911540426111750871860783153069352348659161006570434344509743092328477246753909568409735052436377951373266731332621829135169239145835826757445833188361289524660810351264862876220084128923894671621654443619172541196883371532544896700","osProfile":{"computerName":"jianyunt2"},"vmId":"0f1cabfb-3b6e-4f18-ac37-82a1e131b118","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw86WusRJCAtVbWMv99M0ngLliQF68TS8f22vriA3fY6xUW4zVgjp/E4DO4HRx50WYTbSY5NEDISQoU8E90PUBWFm8l1gj2bUruQ2hIcbBQm/+7VBWdxlFXtTH1yRPbOerT50+jQh/EUP7STr2vnEAKh+nNCI7vcSSI+Jkmn3Wlbbat2aqpbmwSbQo8s+as8PBAQYyrQPcRTKHKEnvMYIJ7kQ726kn9hN9j6Gc3jzrlGkIAMOeqc/pR21jMm545ZoALpzU9ilLN4/JmAV1Numn6XaQDR9wTLhVQUXgKQPfBISr73YH3919eAFY4U/5r2Aq1On71gBBsxAPVM0lmGIwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-974663f8-d651-4cfc-a6e1-7a923ed6f46b","name":"release-974663f8-d651-4cfc-a6e1-7a923ed6f46b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6c28deb5-403e-481c-a0a3-2a622ae2ee9b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41863389492436038757071638162719181522446905115145073882884896131143337841216842648811901562636067265295304274302518411316796149155976364168767335760826528006445438701107879534631232527353202116260599047728621376423306276055710881569221945515329984725814867564315367666639474935869730386643645774707913389226784783639343204324309512077343571257324816410742116996","osProfile":{"computerName":"jianyunt2"},"vmId":"b8263916-5f36-4775-9da7-eff844c8ce49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8pM/mUy66PBpJKPugEQCZUjcNRjo+7ipAGr6W5snbSgDJe2IlEkLv7M8KvFFmt3DOnZ7q5dqRGzAHaG5vjyV2ceycxyJCrhwZU4wXL9b+8rgkwoxI2iR2TaLkjS95p8GJ39klwhHKrJapBUkbeE7ddXvMMvL6G5KKEav/7lDAICHeGgclLUB0bzy1+87kUGt8pulYoRjfROMy7xEE4VPkeM2Nza+xrKGgF+FSw0nOZSJl81fM8S+Rbagcl1ZbVVjl5DbAHAfkSmIInI22DrevIaPdy4fB9LzYT/ZwAerAJZeue/GZbaJ73I41ANSoEdSIdekxfL198FsmEOobMVeAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-273e5826-43ef-4bb5-ace0-ff07f89e1a1f","name":"release-273e5826-43ef-4bb5-ace0-ff07f89e1a1f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a2ddfab3-9134-472c-8c86-2fbf17fdeb2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41888494381947633134157348093088287887836112271108212834372301074105342504201709338761769783427128493942242214063737331324551076306787532021125601660860262173767450959603773556011166522355571739282840179953850470021378889970338845157633374894329488937543903320508395998723121597604885683558599524395941586912027789562386829309283254683525041472638226144604900796599860814342093863995898478729259830126357588177283286498664","osProfile":{"computerName":"jianyunt2"},"vmId":"cce678e0-938c-46de-854f-bcd5562de0a0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw2r22XiBYQejsaL2Yd73FNTTl65bveViTkSA6miCcTZ1VF4/goZsv0WDKMD603mkLi4gyAHtmEGPL+Jo7u+CRXvdxn0lP3QfwkgJOL281HyFZFW8bNKhrr7EN61iqIGiMgxNz4t429DmfTKUNOjsbkdoCeIx3cOFs0j7Cx1m6T5x381JQhMn8Sn3KUGh6RSLE80VYaWKdrOJZzi3O+BawKHBQuuaEYo5OumR5gluvTvqzHhKCdU6aoUO1Zim8toc+A5NCROhyNq8s4WRywkXgmirLh3yvWIffBTd4NMUz4LxkMRy2OMS2K8J03DbPa8p0Y4aNgpfHJax852/+W/QzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5f842203-00ce-47cc-9989-81ee66279b8e","name":"release-5f842203-00ce-47cc-9989-81ee66279b8e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3e310fa3-ea9f-4858-a82b-7527bfe678bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183810310188439051911449103595714254513987269529193318374456219271857261666471887841658650015411330400082841997439927639949086363068346587962211201864772828576247317258117075386219135980782905237111683793757594532353387056739095397095916920812382647442156099135743237963014149422401648275546523468418837007262776139615056637746362164736552071703560","osProfile":{"computerName":"jianyunt2"},"vmId":"5ddf5f09-7af4-42bd-a26a-97b372755ffe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn+/A575BnNhGfKeXHEjshD13VBxPEZmJP4xY4v8BGOvT7HnRwE8FxO8d2DzgxjZW4pFD8i0ruW5VZgbrX7SCWukT5zf7Fl36NhGG7msG31sEV2NdqMmlm1B7g2mbUWHvAMSu+7K8BQZ7v9+QxHQxN7DfhyZkc2+qulbMidl4AdHeM80wTQmxHPT3f7vBqtc82n0c6cFb8p6XRW4kxVyWrpDViZriwZRmmq0ZX5W8od7w/zwhPJA9g4WyN+O1ELX29SPekcInRljIYvvaCzHsksqPV7oyw1DViNkCdvXP9Dy8hNrM/zFhK5hzh7nvJ9nzgWHs0KWCRW4Sw5zmvHw3BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-87879715-d79e-4c26-91d6-ab0d5c06627e","name":"release-87879715-d79e-4c26-91d6-ab0d5c06627e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9cf9546c-21d9-47ff-9001-bf503da6bb50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418880791053420454128099755437085107163899132468799667414529842961868194549497295228184807280834446788484281238978744154642262812705812361148352631625236601824910890275961982135535082685325553332727163593796205991852509179764122241126220311214172426691823605015556994946449101179226915023132429540937751318723401179602574887442408084471356468525245222858531125074347107593893051226597684426715771266672699800304483972537394943202387281653883229997341537611126","osProfile":{"computerName":"jianyunt2"},"vmId":"228e600b-f7f7-4b63-afb0-86add8188886","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5hZU3CA6MLjlUszx8fg0qHW31OighX9NMU2UwD2wKXNxLYq1y5mi1IUA5Gt+afs1WwAA22OG7AyBoV0KKIce2rq37YzWn9TSXjSgQFfO+IjCkBcU/xl/JnM7IJR/lQjK4ArwscoNw7NlJYb/kn5ksZjEwHtYKd7pAPy978MUcJPJwEJAEjh5/sXAx3/KplqeAZDx4O7sXMgja/kYEUv+Ha1+a3ZTaIksX1perJaKodjnHsQ/WwUWBNUa/DgJyawuXSiD5TbFjjWBMt0BayF52CkCu3sFO+L/o5gVGcv9CQaZCUk7W6ObO1y9OWBfQyj5aaXyJn6s4XsF00zP8zPZQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a59de816-bbfe-41c0-8d46-45aa46df9eb3","name":"release-a59de816-bbfe-41c0-8d46-45aa46df9eb3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2e753078-3f9b-434b-8816-32859b8128a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418678884611476576813713393359284763916120242389588297431402621956534212892279737597347895467366378364102356157999581836211383788853252665211026337804088389610255633428365952552849315948028328632878961392951859549383036733455585747196263882835986126110943960181990054035746770435014138562491416992796010313331420970736671432910236139266351474699793840476526817939623485534899564367076934470","osProfile":{"computerName":"jianyunt2"},"vmId":"17eeaa22-6f08-481c-b6ce-7acd87e7b304","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu+5MwyKrRBPDXpQhWCxGvbyPokRBtMqGBkSJ7Osoe+ILQwqLzJh/2OusUbP48uNas3QyxYR9WUuOWFuPgAcy/5YYSx6wNsdqBJUOCxT/oeaJz4kXRgEBA0nBdekmsltbpex3thrJF3MHUln5mpGPSmYqNYPnHYyjjf0HnUztXUu9nZ18TqxTlgcU3XqrWlzKTEDyBNxfJ0jo8i6IaMA9vBq2IYBYR5tATZU5swrFq/vkE4hBlx3uAVP2yxD7TqScWzGJ3OCrQlTZ0/SFARhAg8nocUhAJhqyJ3HbmdgWtWSBSmpxrIKfKI8hKIrp6XbmDX+QrPQwvwLNdykvZEayfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-80f0c182-8a67-4276-a821-6a28d82e3f38","name":"release-80f0c182-8a67-4276-a821-6a28d82e3f38","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"743d98ab-60aa-48f5-864d-774392aca0a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188172454761018955648649843665282422154870164730893123330801976274052039377215267928984548372618745007474267578333602660557811819461735679059910768671987123984647186721705833233072542441418801606338347801852342643429871466589933701554894834921744647403259319437672332739244196331700910634481097276313796969212651246016857536418578454631985704969492718951307917221760","osProfile":{"computerName":"jianyunt2"},"vmId":"229635b3-5e59-4492-801e-4b449d9cab6f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr4qv+c8qDJ1UIFIbd5EW0tfuySDi5+Smupqe1T/46I6K1X8tcnqMMr9s65oAWiIVBiZpj/T1Fkph57j7tHqI2sIV1BhTdHSVzRcx99a7inGxHS9qJILkEM0aE87h9CYnhi0uundyIyf/AYe10y7gD4bzJbe1mDBMjNkzG09emgjJxsrx5538ZqRfFa05aJ23DQWAinXdNl6TqoIAU9H4a0lbM0wacNGRfOxglNsitr71aV37HKOjqFQhNmmTLWFzZ1YeSRs0c11c1sbwCuNhqVJMoc29CS5jvaOd2UA2yCYZDe0nFSKGaEI8sVkN9/Up/2sNulLh+acCSY2/Q3WNowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d7ef4b6b-ba5a-4fe4-8bce-1665b767127f","name":"release-d7ef4b6b-ba5a-4fe4-8bce-1665b767127f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b7fbbf18-85db-4b8d-acce-2a6907435f18","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418388918253364406940188466837385362886310056214027926260745223993322497507903576189933781393358988002742660864437625207194544166848169528669141621336805266581186006879172440391385786914375623898679456349110739819289009709548377975435344644371093504177068292418969813296199841216726790237116405678987111108128332198623333650411433166396615736366431560263526054829","osProfile":{"computerName":"jianyunt2"},"vmId":"85f1d345-a04b-4b27-b8b5-238de91f83b8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsbT94aSW5asUxecyZCSD2Bs4nDQwFh2aBqjF+sWQQANXs+FCORV76ajLpVeVkS0X5k2K/R27y7tcHKv2i4EUsa/1m9tcxRwFZVg081RI9HyFmAsJpHSc5narzdkSRdVSHchrwVfjBzYQRmZIZhHGolRqVU50d/xJE3AC1lqKFyODRS96r7wJ/ymjkGWTPyiNULRMf5t125dEtJzgx0W6bEPrXN8ubFsVS1Dl2BLr11bhCJmhUm617Of0mviDFn1nvVB2A7iRi2J2LTIGj2zPn5Br+hfswpTG7tnQYZ21h1Ae99au865N0QASFOz9AVVaJewrnP7w/r1ZotOaav3tPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c73a52b9-6f0e-407e-8787-ff06ac0f9d9a","name":"release-c73a52b9-6f0e-407e-8787-ff06ac0f9d9a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a3a10e41-7360-45d6-b677-a9ec3fbeab33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181806159653594489269638136566341626737436827831747063916820662341772665622062822413700224786190574827288339184298141894698742978223210739945985351166492380922244558666929040198351178342450184575724370837842947664296452171804450415225993567635255315352497219683360492156156927815032178457519174309717756433825502826883128715488974535305529452940856561195955868982","osProfile":{"computerName":"jianyunt2"},"vmId":"f15c4aff-dc2f-40aa-a248-c55897032e34","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3jSXVSa4GEREGrVP5BMrua48DCq+B+NHsHku5iaIg9a6nSQLu9sqryZUS70pTe0b9uMmkMZEh3gEtNgKabzbp5EeE6jUCXr216noSs7hETm7706iZRpwBvdcmTZWny3NE8PXwXox8axYgWcWBe6VZCb/PUP6VgJ1HoWUdVxjYwRZzI4CDTqpJC180lE3RU+MQpZqD7w8JSTK7kKcYPRm4kMY8a/x65JDWk9senf27kIgSA2ImouNCKcOAJCjyXam+IITxUAu6pdsHXg0892YvNi7KuGyWNGDM8YkD+FFGa6w/tcrC0apRnvKuz9xVCMV45Sbn2vu4a6jAvgC1qRHiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4e7d110d-2f3f-46c2-bc8b-015332330606","name":"release-4e7d110d-2f3f-46c2-bc8b-015332330606","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"506c20a7-6988-4499-8139-0adc5c7d783b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418586899294951246432411061833820261511314798187434850354613986401934427541067697332222046719311533262467628308334536084880811443063611116983778668090591828579106945676309988699537898174266708097057818600678949792254269682691907678163981440272769834714890080828704428166756351613884447931708916847354451523846246910107729509026176278687285552360893742075630","osProfile":{"computerName":"jianyunt2"},"vmId":"beb38891-5f34-43f0-b7e0-d22ba61384bc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwK8bbagecUoQ5i2YWbfsVAQoGvct3ps8/EVbEleLKpKhSLNMVJBKEocNvTYgMVJ/zwzb9zkagsYz+fVWHaklkVtzLuqoSMRBU+gFoTuOZF8ZTu3xiPmOPeC1KqQaK/Ti7a8nrEtAizAmHbjaKOf5X3GwIJjZVoEHsQ39prJO6phWDioX7uzQSgYOyyspnhett3BjBSClIeBVg5F++2XcuxACqwvY/Hj04pufUC/fZfF0fcrZmYvj1Q3ed2PHTJ4VqpO8H6zFy+n/EnHo1r8ms86xBzscnSY86cIXLlv29bhINyQ3ppH+d3M9Ug+xjblN59ELCHms2xhnUW8VUpBpnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-787cca14-15a5-4e69-b05c-4ba53f376baf","name":"release-787cca14-15a5-4e69-b05c-4ba53f376baf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e47d9620-03d1-40c1-9a8e-8188e8b03335","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185131607332986273935779593697655017221684277933868392781299634661296541327497684473229296623530892773566031386195372669271399386199832425189568226504782565372959065091163818839159237852583358208853294736734915968589850591621505619107349433221946216975417603519592964817922249351685855175123235011583645927208442653821557877868619482524532942380119678320398462537542243553177627823279","osProfile":{"computerName":"jianyunt2"},"vmId":"0245c2e7-73dc-400e-af28-366375a5d7ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqoxs5Ijt025tUzK9LKGYP4oEQTflOi3xI3L3rgpGqHJ4mkeibFP+Cp1Spi7PQaP8qeGHgGkv9PXs/t7zn8OxQqxDLjjGQVAG7gKkVHMWVt073u3FrYOvkHIZkKTsgWch8ry2EgBU8dqmGzKQbXjNpKAgAMDlC9rVkFFMLZeJB2Q7Tw4Yx+rbC0Cb0r6TW2Najr3v/1xwRmOOGNbje52wBrpCpIyV8vNy0k+0exrQ013cKCuvUCqM93RRWP+P4uu+0ca3zZQgR0gEMLcRxuvbzMfNufUNemSUsvlMF0Md+DOsNKwhO8711CwEysckDi21PR6Y7eO1G18ngRQPhdcmowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d4bf55de-f129-4a1f-8576-2b76020a0b70","name":"release-d4bf55de-f129-4a1f-8576-2b76020a0b70","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c6806914-cf73-4636-8046-2ddda7685caa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41820021535513351631395933206920788971308612015479264341457399090193722426974261368952180658969279386957034905251114949973558948589887386234714440950430303186289587898994933252917123323520529027620191779462410383412034052169597813953529532334768872526311068277906648215635628507623679309762733483827706131590470314452440538405821166376636156647356982318306126011583020693550271354694068217382837712341478457772727851123823943423806","osProfile":{"computerName":"jianyunt2"},"vmId":"a711d066-0797-42bd-8d03-3280c6da7807","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA30ylg9WRTLZsw1wOfzJT9prob6Hl64HUfN4UqUDrr5l48dUliu355KyCOGFkv0MLKUukW3SdZaL5+NmK5/hb2qKUfzz/Fo+rQ6vW4FCCv2GYlXIatd2nCA1mVX9OWntzXYuKFCPvqtsghu7SVbS6pj8FmULuEDG3aHXEo4K8LnyjUgTciB1WFCfZ4c45ZGUgsydR/+6ezh3OIDYg0xI/nBd0OmoTbVOi9yBqA72A2O3mspY56fPU1dErcNnTtozuaIegc/K7dCzEIq8A9yAoQIVpHdnG7KODtTmZ7febHUXw5809+JKGnWWdEb+JOzsHi6o9F2bp72cn4KvMpVx/xQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-994704a0-1d8d-4b56-8b01-1cbdb2049083","name":"release-994704a0-1d8d-4b56-8b01-1cbdb2049083","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"020ec656-5b6d-4abe-bf9f-05842e6e15a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418339915759576113435869406265015595886594293372853309445955143169911017415997612496751481254976391301313809189563586554030112198438648558220043754458551002125519680902960883890877366860871983392928300224119496239612238622525401146038878985732043949024935778038424123414808213744780857758823347194742693897394622857890615125914215428873117407561288979897744288973534598367201793999569150165194","osProfile":{"computerName":"jianyunt2"},"vmId":"3a571572-69d6-4f43-8a62-190dc2bf64b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwWkluku+/XNESRyKyFEt8n4cS+akbRVrq5/OWvgmDokPQwU94g8AQiDC9LReUgEmuSGhhcCFCxF5NAUVQ5LwRSwEOslkug6RdvTPxPTM1ZWD54OIIoe/c1fjzDtGBsObONAgaFabjxXLqKP5LmcbQx7jsnZAvpl6dn2Pv4kAhkKqWvfckSIn/PpVvFe19eDNueTfrnMkDiTBMXKiTbw1mwaoye4jWDsrEEQydcEre/8Jo/oOj02SGairzXi79SiRIljiwxRcRJvuJL3YM46EsfRuGx5AF/pvmzUHHDPda/t74PcQagM0BAjgMr3d2DQJMxkWMhah+clOiIeDaTOd5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c5416f9e-fa3d-4ceb-a24e-cf2e437ad01a","name":"release-c5416f9e-fa3d-4ceb-a24e-cf2e437ad01a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0ab4c5ed-4864-44dc-8290-613fff7c71dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41889353369207648438820533080206173326340265819500731661454046667625313059960764720921782343243716876880690478401517332475965418779346682201539233920605135789861342324102496535063131629514621997808750382597158930052962784225615374486506472143843729991738327112354144734831636724911144555225859922815456011751982368636091512390738962530425101747511767187846742246624464669310753060128657367196749715","osProfile":{"computerName":"jianyunt2"},"vmId":"8b009157-2b36-408e-a87b-d5ed4c2e1dda","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy894b9kHj13C8plTKpUsqkThipFntO9dSBku/3imc1Vw8qVuA5XAWkOOEgSM77wc0JQ5LrgFZEdPySEoJ0/dNyHLqe1JTSbzICyE+PamxDe4B+Ndx2Mb6ypTw9+N4f01P2Q+LSKEcR/aREr2RGJatUosW0ku5FSr/f6oFnkDT/ovfhC4gQX8mAa2l4Hs+5uPI2s5g/Aa5DN95L/4KvjlwBPKpQ9I215MCyE7PSoAS7Ux6M+J+6GS5VlOYTWGpFl0JE8Iv0WAV2tHet1W04qOU4PoiLGainQzIu36hmnfALttp8w+jlNHBctKRA6BjEVAbvV4LJiZHmYLTUVYeSFnswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0e362d09-30c8-45d9-ab7f-323fbfa832cd","name":"release-0e362d09-30c8-45d9-ab7f-323fbfa832cd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1b27ae0b-46b5-4b51-a727-a0efbe5e89e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41832897486771813490103423800576966527189495640312634762752144536548530584309225524764631111296005832630817554623631369528723260026556038672606161525097267878282322488361364057737648514815077237611530223212474823167275396251830282299982178344134192756915296989521386201144402218022793914726150839377542027648585789401925948473194492384329863624996893387528891114566378396034864191534548540911376756707564511765559227326626935574649121954945","osProfile":{"computerName":"jianyunt2"},"vmId":"39b5e912-be17-47fc-8ac3-ee7bd137ae48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1d44n648onBJwGXkceh0zgXbZh/usy4gNmGfQFf4nxg/ZvNRarqsdMNll+L+Tnte9cHhBjHkXNSLVNMmO8gnx/q0F/OXIoxEI0NZf/Dett8sRpSuia8uYN1rg+tJBdlBAcxLvaDGfWb3FrKFVkB5CpfFH6Soby0p2y7RXGPvuT1LlpfjdBtbuBHUJ880U/emF2U6RCSOMu2sEmX0CxSnwsdvAbrd4xy7rR60V6SPAn1YpRAeFFbFfQO2/oxIj8L88HyBI8DWGkjhhbcOYCsp5cYrvEigKvXsI0Qsh1NLPhpLl+npOoU5tfNFtScyS/aHB0q2C9Ho9XKyG7X0boMi5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-216b0963-488b-4633-9f40-18ca23a74161","name":"release-216b0963-488b-4633-9f40-18ca23a74161","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1780b1c4-07fa-4120-9644-6076fdb68864","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41840668210842831338677394384153378304160118057968410642258041086707187724861413860138027886885863379276993952424968011029577567957853727222731234621527165228006076219065321073198050861388204837798969624223024104733101094171240841978717283447374435630686986254199220466688498282112704689062414838564318457840325552221366564965307200444462549083151948023613896588305143332723102683136762972248918855852614232353919379684958923177156663301148073617343454966223722645122286270554651","osProfile":{"computerName":"jianyunt2"},"vmId":"47f5ce85-4725-42b3-856c-a0a1f0dac13f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArjUnWZr06ogH1SRtyEeI93tnklSuLZSG9snZMfTDJu+ELowe/1fxaCR9hqhwn0eog9ykzY/Pbf1l8aIFdtZMAuksBGH7lr3j5ZuwP71o26/i4p5SZCbNKEu9mAkNOXGXmO+0wTWqnIfaogXTZ4f2AIv/jv0PpErfoMpzdhaApsLKgvHrHg+sukYgIzv78x0cmUGu/zJJQXHICg0qsfg3wnVaQorAks/qRVqItOOS6hcHRrnAv4YL/NvvaoGb9k38dfFcADRezlYtAoSLtku1LQYSbVCZcqWy5ZcVm80IZpty7fU9IhP4amp97kAWbG8g4ze1JJRgLvc/LE9fD0oGwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-408e6dfa-9e9d-4345-9bec-aca1a0269679","name":"release-408e6dfa-9e9d-4345-9bec-aca1a0269679","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d7a42e0c-8ae1-48fa-bf7f-6d3acb0b2130","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187811367517094461533490033171978597248536373794851046215807787766912148330652586735029987378266017098592124603361845892917263156627055518449312011481539962606714457714256736935030963482387521307152144469631038083963748399125145383426121348320843637417045781837163123301222153452908227777950231661961728567769756076534519702966769923679443971718360058562905694822668578901756879580567342976279300929933827977781220068733890806152581917","osProfile":{"computerName":"jianyunt2"},"vmId":"9dcd8eaf-14ee-49ef-937a-7e12cae6110d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzCYSylV1j01PAzceUhDFXB4hbLKT31QdA071CMBmo4AYEN1ab6/kKEKDHPkciTl3M49FeCfoGalO2/U/wa/EVQuonGT8S47h8IezcZTy1lNgTrGj8BaTPlnk1XnasrISOxPsrPfveyPP+Vm7B6Syeb61G8cihwJOu43f26NsdOrhxVD6BJyxuM5uCZVxS6adSRKWuFZbexj2aP1/t20v5fkYPpgTdMEURpwT5n33ZTeJpDGwJpF0+3fT+VTwvU983E8N5F+u97gknvKR/Hc9Fr5tSHgzi1uJhNUpzzoeou7acYAM2u8MCfGC/CMuMkCZtqb8OXhQ0NnQ/2qgSAhSjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8d597e9e-cc75-4948-89df-27dcf50c852b","name":"release-8d597e9e-cc75-4948-89df-27dcf50c852b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"be0a6bb9-bfbd-4a4a-83c4-fa56a4fb8f5b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418969348198808830470729208062330119987436219333547223459512145157246774722353788261341235977327653781484339857772343109591303945434366810565640312241564852473254147667849861654844370918581541576459821972855832008685643329386718569845676534176307142607738693664857833799071511257964515595743971613933140261515852896251943328634791752688830497164794575775984934779388691991100532779046862374633180631068227466646302720399728091102440493284748875377486840772599007827786761847645","osProfile":{"computerName":"jianyunt2"},"vmId":"4536a451-d492-4b74-a245-2432b7869536","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA00E3HV/gxiiYdGGYVO4edeCk5UjWdxP1DL5+KMQg0aDCeqnGLU17YzwglPUTbJW4zlZjWCoc5yfxsEUdJHOZ+q3P5TvaK2zFbU9ieGuurEQbCLv4Aj0ryqw5lOHF4PcSTZAH3BNa4NOgQzHCEbYfTnwqArZR997uLF9793h0Y23nBSzwZuXvjhhJGITCkB39Lo1teVYTZp33WnZR3fGn5ZlO38yCx9vRJAnJgOwCXBl8+eH0G+QQPpDz2L3J9I45bznj/Ihig2ZNCyukDeecvL9Tk5qCt7BAZWA57ftXMyVEWteh+5wOZjhjDYLoEh9GRlg94Wt4ai6l41PKg7C/rQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5ec6e189-2e22-4141-b2ef-af163b4a2d01","name":"release-5ec6e189-2e22-4141-b2ef-af163b4a2d01","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"759cefcb-6b79-4e8f-87b6-d5b93186f536","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41875315387793913790241553461219361139544417288207970266548893584684458688902264850377215133282194380429861933156998393315232182107012575426428440475085675775874681431870969622459501880428069586914987337355776053741365485984933217283322947055661808013205482374813234567943181299842747040067419864169573015135906740514579259175691095752711457971846672821971824728946832912","osProfile":{"computerName":"jianyunt2"},"vmId":"ccf15ce4-f310-4f15-b9ed-6693dd9c681e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnPlE6oe9pbuDYtyQGNSDAzSjQ6hS/iPbpRAqtCjUOQJj65t8g3ogS55OLq2yV/N6nf0lPIpNGQIsDU9cBRN+JebarqK5qXt5MRWIjk00y3afqBRaLeq7tjGCIo4cbtt5EjveYSRBj3LrffM7KJByYAtTt4nX5zEcuT5LuIG8Ku4zXVaVdRbQoK0t6dRoMcolLmnRFQtsfF/YufVHV9KA2n3hDcdtRoqmQM2Lu3kwkYaYRqlJwyWLBN0GRKWuf75W2sYpeyTQ01pPkTNs/AZBKdEtB01mVLug6/ikioGSuZBnrmI5hMB1GX1w9QebRWjMp3geXX4MGH/xh8L6SyOYiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5950990c-0e0d-4cec-a6b1-3b0f3b6ab795","name":"release-5950990c-0e0d-4cec-a6b1-3b0f3b6ab795","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3bc5d503-0112-48f0-8dc0-21d7b9d727ca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186757403338425524842708782687262343230367250156229171934127082629761319120650901899852983914506712149322932756357487617952287673661079085869593480615943904073996835638362262565761452954478909225491130131646758767569209170115492728110841152108218045512409320496918261747553797087192781935260980781702895722173289765981121752851272853569715518277426878198635452262465594825335529576111928816459","osProfile":{"computerName":"jianyunt2"},"vmId":"d123b138-2926-4bd1-9151-b84b379f230b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt7dveAqKOtBqD+QThf3unELMJ4vbNkbgqTHM0/JLZta8f1suMHL/TJF51AU0oqXLaollCstUK8dn84N/8W/JTB7rDlcNeXHbLNSfzQZCnio/Oa+dYF2AY3qoLJt1IeeKzCImXJoqSgE3SjCpWz6nsNllS2yrkX/VtOPxeJbnFgZIcvrgLkdR4hSaGsLpib6rIN8njWx+0Uvus8NvCvTgPMcXgOrFjXzBjlG7BzCesq19UdAtLscODpaePwEPoQvIknFW8FvQZCahwV11vC+k/6v96xiT6gj6jFRI3MWnabAjcONyUxRaj1s5Dd8vq62+pSaektoaWMYTJUZHMBbocQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-38a914d4-93ea-4a73-9573-849e7fe3ad4b","name":"release-38a914d4-93ea-4a73-9573-849e7fe3ad4b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"546d7255-d1fe-4b54-8117-c177a5abefda","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182608642221928390337572931298953457874789758590131294844322141206922321729171676562238713414206897494743439976164611572918978472670139855950268247396173120333971609320646702381977575999459348963544855745634461698743277254773944402052101568364251727976459655195876340783556436436933790081989909940814649663831533437374533771387939235164526535451349528142","osProfile":{"computerName":"jianyunt2"},"vmId":"e6c98821-4ca3-4184-9bf9-3639546fd660","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7sxA4ZQNeByHevLC6AXJN64goI0byCBs5uWKT8yzyg5uOL3nuCDF/Iq4LhtBl+RT+isiJt96LpkBtKr0KckFK8KOe5oxOPm/ln5x/m9hFUw+34k5ejpIjlZAioN7DJA0xiva1wSsKQ1hz8ru0SYj0wbDr7qrArHzBrecBdxhk/vAPlPexo6Mh35ylDufX+rxmQ/wsYkBYREViPhtx9QJeE28ny+2ASt6ZcZBw2oAGHcywJMPIH7Zr5nLU6mftyTMWAX3lVWScGfUx4HulE2kQ5GxOSBHGt3pMRLWhFUDWjO5/E+Bgru3rzUQySguYS0r8Oe7hm7mQYRSJGUWcUGh2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5cef3120-f62a-44dd-81d2-19692394f0b6","name":"release-5cef3120-f62a-44dd-81d2-19692394f0b6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d35a66ba-ffbf-40ec-8e7e-48e6a388472b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189916766639505359269244510255650285189746231531813895200853236508256310121871505314918822503980333732180271773656014815310653819418616264767967652834581971592397989645146914756062005654448229621149094872925833377133048535879350212735932761231612047161418178634391513560165852264429824138835709029333948319516976507516295515074709622875082787468731992971532202999631884949322","osProfile":{"computerName":"jianyunt2"},"vmId":"e8f4baf7-a673-4655-aed9-97233b283853","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvjL1m0BrMOXmuDPAVb+XiUWTZhSWJMKCLjTq/UE1TkaMEx+zXsJxMJWIjyLFA8HvGGAn7Nv2H9G78JnFsMpbqh+E6WaC8sJLdX0F1vjob7NrB0igip9PMPgR/0vakHwAPLSBaUruZVdoBSRNBBU/myF7V59IvRfJtdub+ca2FWD4N6SfOD5fiQOywL18JJdCZwqFBUE+7IbVqzwX2tGDZtGBw4kGpcvNhz59PL7pbRrR9iisT8mjDErBxEOXzpTadn3CwfBwIXCIBxXg5+NVODBe2nZnhT/rVDf1SghWOdnMtMJRNOZowCNGD8DoSLaDfqbHlJ0Ba5qs/UEmqsXjQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9a75ac22-53e6-4f86-8809-4b809661e2ac","name":"release-9a75ac22-53e6-4f86-8809-4b809661e2ac","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7f6633fc-e148-4ace-8e76-4a1895a5434e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187736958410595400362338344833252672042046950345870145912964892076823929188537826522535026041514498976931513669832885699128724805347124751634144261337950420717020666894380687153794916622405408487007591348199923274157355220654390648630635435661551560242370609018518887014647385212782373617854100170063093812828792477974893249274953388815288913464281145","osProfile":{"computerName":"jianyunt2"},"vmId":"943f1a8d-ca09-4fe4-942a-f933ae883fb0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz/xSDiR+2CKLyO2nq1Z+SGeSuBaxtQVplHEKEvdr3KC/ASQlTxXyC/ARHo3+M3YFh0ysWDSfpxCQAqJJUydcyLVLyci7BRsaj3u/+bjI815KpflogiPgJef2gMkJP4/2+YuaK1MOK1iS0+HFAJjl13ke+8S0v7G46P5pD3J21Q52X/c4OkUe/oFP0vBKUgZiIadaTy8hP9w99dpXLplanSdZ1zu9USvFom2Zo3sc5cZ05kqPD5fh/1cMoRp+i7jEhzhPExD+S5EiPMTgR0rpXMofddi6Llao1Yb7AKSKCJU9BSbMF8zEWSnnMDdAk2ts/1q8G/1FdLPo8UWBWB2vcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-974b513c-7f9f-421e-8d0c-5f382c3a5300","name":"release-974b513c-7f9f-421e-8d0c-5f382c3a5300","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"17ad5b4a-96df-4707-9dfa-128e65d700d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418434717336624594817759681729940649021110827407795282454682223239729847223438941296627185063552068450913915369252246581663053661296402260316382567133495967925008541786018545584586980359963506987182564456569846278315668126315663812630748168987241226326407686346778072493786427317450788001000998753331397330969053257","osProfile":{"computerName":"jianyunt2"},"vmId":"17dc11d8-0e85-4939-a734-04909b106734","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4ZQF/ADm9bS6FgdarfEsyvd3th2q0/6bHXUKTtqbk/ArjfoZukVFUwO3YgzF5qQ3cPMK7DhrMGpaGlX+6l6zrk6UEzUTrXziW2aj6NPZ2CV8bCoZaJZZCbAIYjt1NcBKvnZR/QdIoBsQo5I4IGq9joK073vi8o8cIzq0xAl1cgWzBSgKdSEZwX2fM1lGx9eEggI+OYJm1InXqbtob8oZdCSVhMmMejPtoYB4x2rJ6X4MC9sAAvULfW9onQzs87AbP9V6NxeC1kYVZ97Hr9FSXMmQZ8M8rj0UTF7CBOHaZpXapvl6UDJnhept5xh+15qvSWpdW+FkDSvdg6uuvQPnTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bd13b17a-87b6-4c9b-9d91-49640b1450c1","name":"release-bd13b17a-87b6-4c9b-9d91-49640b1450c1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8d2ab68d-6d48-403c-8c58-138aa209b1bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182292657262886591958113655146766304658238818775486065784949590529589884520215481247276417819905734565519676304778853010117996996913820080396226180676137262359662475029655405595233913987533538247586741970901855437396137566655495577910027902316349995978425067894851843166498626913781823037714165780393596539500330970742644827776303908358212747","osProfile":{"computerName":"jianyunt2"},"vmId":"07029740-dc3f-4f0a-8517-df3e51708cb1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr7ejKTXeeA3I6tWdHy+e+gmrDeuFeZfh3S27u0SlkolNJcUsaT9lr/j6zlYPJ+FfGxy6qpOXQrQXj9wc2fE1juawZFftk2zJwYH+d6ZEoiC1aW6DoaqtehVa1pavbDKHcCtcDHs1wWf16UnJJZRsX2DGXBqcshwBSPhaUbv5KXJhqlJwknJSTDznr6YwDy9nfXCQK4woj2akgWi8QB4mpE4kHFF1BmVhKMcJTsjgVN5cE4VXq0cT5m542vaHusurpquT7y4NBy12LyPCpTKDdMHy5tcOgBSSvSvuDTeWZBIAj/77UWZifNhKy9/Do3fXzVLkoGv77rMn6rscj5fmWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-04aa6fec-7b7c-4678-abab-dcfca4bee2e6","name":"release-04aa6fec-7b7c-4678-abab-dcfca4bee2e6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1e6eb34d-e5ed-4fef-b424-85ab1bb04897","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189781242268614452216175312525733679196584361818851819845570223447486422599261937756175040525993811179364995171393125114505516978494696172933062087949069702497722432718508296255239699182976614151014548451216195165830907640154712880378842640845696633027731555940368693982184640679018572303133037817921189170672778657163742275740745581153807987106079","osProfile":{"computerName":"jianyunt2"},"vmId":"b02dfaba-74ad-4874-b627-2bea7d6056cb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz1fKNI1oQnDQv486pDdh27cIJ0FSuhcKyxKXCf8ax7WI6xNm9EpGc2b6I6qJ2jjvhpuECvRv9OKPkxYF0aWpOkTcZaXMeTnWkStXr2hIuQEbBzFvy62G7VmutMndqT0lyK7TOTOPm1ECzIOAHoKPBl+nxeaL3JCDd3gpoTOkFRwrzNJcOHOPpCWNV9CoWmEetlzcWfs+QPa6LKvsiO77n4hCuqYkoUew8w2r8FMP9I4uqZtoZ6SjOjCnyeiZcE44GzYLmJ2z/9U86EsLquJe4dTwEzj1Nvw6Kv6SpuDNTdyGN9f4l/riT0bZOijfsJ/B0HrKe/Mpd4VixHx1R1HgcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0ce8600a-40fa-4f68-a070-1267fbba31ae","name":"release-0ce8600a-40fa-4f68-a070-1267fbba31ae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3d1e2df8-e6d8-42d7-aae1-8327affd7e1e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418146486396560945941633223814746462547186498180941828122771509042788056491929153097146982554513016249812462827857234833099206691987447340793382099108646350059672512061400919335790163250512037725505715956218981233750846444103293849798740872523758026331688756908242771366176292568393523791499481749739383823814746362926972231172330383976362141496587172237525537820748313728","osProfile":{"computerName":"jianyunt2"},"vmId":"2b0369af-4b37-4f96-8959-996f13037044","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt7hYNKl6IJ34l3MwkKj+nxYufI/FAKSCSj+CuxmmfqvjwqYzWFGqQI/eEkFhHBvybTNgCBLiFdiByaocS8wgDNH644ZduU6eGgpooq5vh+COr347Tpi/n6RhbFvG/9HV2DRNFDHdO0mG2voJ35X98Px6xsYLykur0/K+XDBAN86L+jkrXr3pYL1WWUDw9RhOYmnXP6ubFyMY3nu+5INtnET4Egn6csNz26m2X4C589OWx6AaB4feLC5A8LZJ856vyh13IVXtDMVLxM73zi9XpCpFBebRqGV1Ge9hrrha/o7SqzR3mGR1F5WPb0eLBkiF2nD6E4DyBl4xmuOdx8bylwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-153ad363-82b2-45e8-8b4c-716385e86fc5","name":"release-153ad363-82b2-45e8-8b4c-716385e86fc5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c1d77a7b-61dc-49d3-8905-d2703dabcb6f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418329763397571354167717501354412706264683568011976630193519444951197434662457496645982338446245576788143393795549967699717715573790123955133089703289225739162738749582859755896717990744529418505422879113309341287627522365535225333390259687785844391904264168880830668112309360961568763098455751345855094563866564761839957742016747693455207786063198366255673389652839430441789664546367777341030752513804556","osProfile":{"computerName":"jianyunt2"},"vmId":"6dbf6339-eeed-4909-bdd2-a37a52b86654","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtxtgekZtfnNzDE6chS4jMs76Eepm8PoqcsmgioPu+IZoE1/w+cIjiFP3Dr48MlCkgDzCJrZ1isptJ7MUTDeySUMwMWfVf375l5/EESDvQSR6qtZ+hz/Dt1UNhehKN71DzgNOx8H3HXHF9NK/3Ndo9BDw9c2OV1qmBwU9eZFFFFITFtE3Fsk8YFVWLmU/vLHl03lmeAQB4ydWN6nsv737MpfT9xhWBWjDFAyx3ATtG8EX9yLSrWrge2n9c8ldPDqCzBFOqAjfQgsmTZhSUr83hxhloPvrDEMLCG5wGuTSj7L32oh3vf//tiXLHyrY0eryuwNHBxQZpGCOj3c9vv0YKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d64c9a06-8637-4672-a27f-ee265d01c179","name":"release-d64c9a06-8637-4672-a27f-ee265d01c179","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"563b682e-30a9-4784-89df-60fd42fbb533","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41878157901061919230089264113067227865923167939793997798391664868448713577521938678792217885119364857195093396483630692919537908421939421712670233623805382366432901155670496021554588988315593611562298178071156336906227276624526158124434872076487880755893289573676672467982422627918996365782231320964747724927423298511237329832931065581197749013456360595364789558809124638450215441018818384753294569546777493664181051471798","osProfile":{"computerName":"jianyunt2"},"vmId":"4b602ef9-162b-4651-853f-2327b3830546","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtEwy0kHFda7rsTHsOTr8knEgE4Vb9w6KKzg7u63Q6BF1My5xrEe3zct4P9oBumEOitlEQjh6R2vUqknuCbZER1/MXcnAWPAhu7uMBE3viX8aFkBqqw1YndoGtuv38Lytr9jhKHOuUrCivflihhCs+ls6TNV7FaXGBUJuSvRlh7+auPwuMsLzuGH2ZuO18T/5e5Bkw0KpUgRVimh7g/7S/Wh/poOEI04TBddXeIdqnKgbuvAZEsA9ofG20QKJVUdMb7iwJtCYKJAxheTvBcerPaoogzOeQDwh5lmceEfsf7qSKLPZT4TyfKZuTYZBxmZwLA6iXaJTh/pY0yBHrwkL0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-070363fe-e8c3-4d16-b3b3-b71f1eb0e410","name":"release-070363fe-e8c3-4d16-b3b3-b71f1eb0e410","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"81b4c68d-5a6b-43f9-973e-45c55010f424","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828146981102998016369354258968286793685951200155831695539792563550813552329174859286233752034962189164222750589014454627921628969319699293187569248637179298497857667701345665429557404316208140727348743599244284431810475169939585261396993229895131338231922772977680924587688875373332556342873117698236552621427854144272835613963492623935483302426143973186711523210656711252545114591164452467439023083829575528615703125606112960611683196","osProfile":{"computerName":"jianyunt2"},"vmId":"35865810-8e95-400a-9b77-7fc73282a8c2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA057hpF8uuqUX8PArtPfM8P4HeI+Wi7p/qIzhcl3UVE9D2VsvsOoZ9buKnS8/+D7KFicD0xAdN1yFT9AkFgiIJVbJYMrjLVeFa2K4Ebr86FDFpBeHOdIhyMvDLZKWBHmk1q9F7bPZEFo5dnOZ4bz3YfeOK681lBTAYArjq6T832hQ994H70SinxtziopZZr3KZLCTm9xV2TNliMXCs7ZQdAzGej79F2IQwmbqwVYV5xwleKgQe1ZA1tpnyU0LyHL4YTb2Z01/WEE/+NSM070YOgIaTYS25qvzsft7pknyG4Y5rULBIDdCFmKXGvb+ibgpTTVrnmBtVN01TQid6MWWuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0a5beda0-0667-4ac5-934e-17166abb209b","name":"release-0a5beda0-0667-4ac5-934e-17166abb209b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9976409a-66dd-42fe-bdf9-bd22ea46b082","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418704130225462286627723119806567978134205042338575510428942819669634096101520314142273357789399243053532263706329529534403280775667544795629770579726986492535750610841020189467409750275010051436795644838936630665662644846310269892945541633818336399665951725966760725960216832279592587349011887714246189409526953248679965844415531742198928485712402796119571996244891694927140899532414421982268189752879587797937160594238225900181123561535917029533","osProfile":{"computerName":"jianyunt2"},"vmId":"7299c86b-2735-43f8-b473-a856e358a5c9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv8kuUbLM6NSDjDngMh+XmLUQNRo1yHE7JL1dLQGU+Pcg1p6pSXwJ2nMO3rLFTLwtqA/ZbNN/1PBy4w7cNlo4SZ93Wrnwdl2fmi0lYDz+CWKJ1QF31AWVczi977UBoVW0IVXvw+mB20mg3hrRVft2hmzG+9ajN+uQFTLwvz9aTbgxflkuhE0YfS5uGCtOTBLDTT/gSSmBY4UcAPC970O/aUyPrH5lSdYKCx6pvg3VIVeFhkRAXf2kGsL1LgcOCu0Srjk9IsmvTqxLS0e7lNR54SSaQbGHrABE+8NFfIY2Ju8cifrxNbytkxQWYjaNJ1UWfZt+BNtoLyvOifeR9Km/VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-181f2630-32e7-4aab-b7c1-630e332ca1a6","name":"release-181f2630-32e7-4aab-b7c1-630e332ca1a6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"464a8869-084a-4d23-9651-26c3b473f238","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418635355572604339832725227773197250983032319018964214997808334691373579625197961283221694095750966263434650424744425211387445166860061715455955581478564860717863320788333034291496512464425648403766632599231888375402999975763379879884659514308511971275861500015634347363858081784231973275563825550582188777128967892173380939529027188640962777417943674445869496971387976441409776","osProfile":{"computerName":"jianyunt2"},"vmId":"129e5eeb-0870-4bc8-ba7e-e2d7857566fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6x5MuqpS66rH8e6DaAvYpccexu/vSsoYDh755iYoTKhvxxHxBCWZv+/NxmzAppzfJ3a0FRKbyk1ed+xM8XPE2y+2ZeBTbKvTeo/G1DwF/fGZNxO3adtk8w6thJuf03K0CN+m1SFDM/BR8QyR4ep1kWqi1ofJPQYDlbNv/41ha3EjZ33goQhL47VbC6iWL5oS48NQTpxq3No8m1iRZmPWOZS3I+tE/eF+rx/0TGWfynraQ6rLCpud93x666QaUMCm5V2Wd1UaVzaRMFkeLDagfgPaXcWl4d55GajuHcj8efDMQYkQNkaOXdd0zhQUt6G8jYDsZhzbdKSh+f32roftSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d0da14e3-7ece-4d32-ae0a-fd441c88a8a5","name":"release-d0da14e3-7ece-4d32-ae0a-fd441c88a8a5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"900fc5f2-bde2-4cb0-bdca-951d979b00d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41834823798698379250865450502001754088593982459497325818385341788652120498394833898757990428094624734967163992669829479379724766567723671295887982403487519462754324769315217038522825422683599127257658344985414282639101356511329417492993988466964969842649464974910756444451376651236391116881556018828559250321773983636641642552535325757490167142595700610684175694172803100199295881642187081965099820736186889293554201379959881568052663758134157117851059107253236890095017","osProfile":{"computerName":"jianyunt2"},"vmId":"4d43696b-06f8-4bb5-891e-b94ba4f49250","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvL6CNJBSnEQEJ9MzV9W+YTqL3S+UgQEEVzwgPuAatuUqm8g+S//xpxbl1cF1Qok/OS0pgRcCVsvW1vQCR5wSH5CA0VKth6dCRnov9LPA3JKf1TL+LPql3+NJe5/1fTJvJN2DncQ9Tir9LMFH7x4UHZGNcMqXGTH4DMHCUzs+L8M//uX031JNeoYro0Wm0FFRP+qOsanrkPdKrQ52cQ2UAkT66DXgp952DLtz53k+zRz0qdmQyNyecfVj2rfdQ5YhbjEwhUr0ayAF4T0dsojIKb1lyiRDPpwCQ8T1/o9808bRgDThhwgoI856rRJunud2WDYkn3LYoUBtPqMzyDo4XwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-528713bf-7dd7-4c25-86d2-91dbcb459bd5","name":"release-528713bf-7dd7-4c25-86d2-91dbcb459bd5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"29474a88-fe4b-4417-aa14-e14ea1617c6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810308568118447253854603976378882271777538108298584633379231160865585916638322412593197027196325988421842974097315782303887133234892698973254636349047879391341445516203519313851765955661718392585784426438743094887257181961079842634566366157379263630174121811821544170261641195522425929811309540518364285942291511125683042937534939558643843673347035789438430884133249113936295188686353060574029254517422878797561738186242","osProfile":{"computerName":"jianyunt2"},"vmId":"659563c5-2b42-4882-a3f9-00256064495a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvxdecJkmOrw5ji6aBVfHrU6HCa6x5rtaDnGCzF8j36jRM9DSbXWaAasyHkrCOtseLIofKwuJwezp2C1hgnQUTAU8tbgSo2C/nBauPdojnnkrwhojkO01Y+C8VhGwPZPynk38NqmQVKWmL1apVkR2/9wADtePFG0E8Nd6aMIrE7/Zmu/FH49BgbWm16P/jswubdqJC8DpmecxdAnI12TuEjUGKZ60uJMbtjjq/XfrvKjysLCFbV6PPs0GCNZu9hNk6MWcriDtm5kDYiHRc6c/z4lcq+UUjQI/WqIaOdzf/CXR9TasrHOHzO9Hq/YqOxo4SSbumC5E41GQLb663biJDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1b7a321a-46db-489b-9115-ebe5692390f9","name":"release-1b7a321a-46db-489b-9115-ebe5692390f9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"926aefa8-c10b-4d59-9991-35c91ce840a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41826749210582577892126137221896124165837564435170624617883607596481591091497610298873377260183424219450874474313703954360018754273168785208312240361601272178287145151243375585398263184908315384701541475304671701607435821639143255827623786541463872372933847710156903986644980967097174349877878978263738894882430559665881964160047851546699206516791822389308694861912745664761555323427","osProfile":{"computerName":"jianyunt2"},"vmId":"628eada0-9268-48cd-b221-d2783a07d2e2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA63eQNbVSDbSlvtzVRfqnXQD1yhhjIlSgKTB+wmmxKHrmX9pdYmwuP2WHqXC+iR/P5R5zDSoBgUf7jkmAuAP1zG7kdoumRlj0LTrsz6mqgwD9WWImoOL/kv1yNOJK8tqiIigyd9ejbi37csFa5SOQ29IzAE77NprdCsTa3otuiiviprwTRa83WT5a8Z0mIeTm5Ap/GuiyOoSMoOFPN4HIOucXgDNjI4zlkrlcHs6hUsMyOF+XrV5RK+LY07lBSINi7GStFbNB+52yY1HjVaReR14ZYVdE08PXeaDn4ZbEpZBSX2vUGKvceMv8D4CVn7nspaoUSF3KlyzRVPYydy/wYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-155ac4ad-f160-460f-9fb2-03c43a5973a2","name":"release-155ac4ad-f160-460f-9fb2-03c43a5973a2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"973a728a-913e-45e2-ab28-60d321e9cf71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418196248642383861681817568200355229548903960889159872956152445143436401282841161482907878962129668748564216696844093105845185444956225552432980562391339813838792963638762298691737567977299863126605226866198340271556257923128219428900424646839265877685327649960351096343745332245011608183945096985267838562798145153075266905940796616698822584001953373713891357277159423023778266634213790048159259715869731506","osProfile":{"computerName":"jianyunt2"},"vmId":"dcfcf7da-e76e-407a-83bd-7f3156761d48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqnT0TnysVhKY+tjwh8u3vectlpA+eBgBZWvXg2F410fJwGYwHTshIoIooefkrne7gCqkybT2zvpOK1x/cdlMCO/tmwqMt9TaQpW5LMtDctTxVh4FtDsqfoBv7vntes7PDlq7xgUiMFY7870EWzyzEN9nzKAVa5ErtEAfeLE+h3sypldV54kZI7cFRr2tP5Hdh5QCjkrD4+UUyt4/EbaxJSuGyvvtb9/y7u+QmNUtUuxL2Ieditp9ejbxvdEqTC4F/eXEprNAZ28sCZ6rlNXFzMc+v66KpkJ7Rs2siQSvCPEhqnC2F53bHP1mScd5xdJU4s04ovUDKunEetqL0zTh9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-131f1fb1-a73f-4b11-ae65-d9ebe2eeb889","name":"release-131f1fb1-a73f-4b11-ae65-d9ebe2eeb889","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"61077239-0356-4cc2-bf39-865ff9819155","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418443957914597718414798089790463163784081287595062333158846332262708698351709400349723352875279182772695451395477242217508212180058624088505280029166884119056680497551941956572022311750599488265389845466277685956915878586794334181269420475119669919367647028224574947848064354498916303271160361446083905128421652884623557779568862052713116566002110763364146649767382095638683927930972854252077726239252","osProfile":{"computerName":"jianyunt2"},"vmId":"92c05f26-9d66-4322-b079-4cdf5231b9ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuFiPigpCOtr5RwUr2i4iiw8HqigY3kNyYz8zzQrx1ZVIf/lGZNIoTFawmXR4JO4KHupyTAVVIlY/JAdyD1d6Pu62br0hHMslR93uf8eyL0qDlYlTfeEge1UDiHcAteHYdT/VAwh6ZnK48p5BtCO1u+6p0MPUj023DdA4Pgl+yHuodyxCRT0ihvfK9yqaSL78AmxABLuMELx6yNK9tYnXTybMNxRlhdFt9jkt+rh5K7JjkSIy1vyhFbv0WhLvW2yQkZXWMVjkhB/i03boUUV5TEqFdTslW3fWJ9qeraKxCwEDcFM3SV8ae8boUWSj0b+kq4CgALSteBZJ1bul8qTfsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7a6c8518-559c-444c-a4b8-91706d1a6e52","name":"release-7a6c8518-559c-444c-a4b8-91706d1a6e52","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c3af4bc4-f083-4f2c-97bf-2051113c6ff3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184789575567926033442218246202336546957231814888694232339340691459201703359021323437839781706201704189975201364976347696164511215087606344427053999517079531481743677699590785319274082853377471360170633385594536837542697856661143695443127963685670281383403633689948332357962514098594035953120782357321985286906935459044957095818259588301700623887302818923919326","osProfile":{"computerName":"jianyunt2"},"vmId":"541d21db-c5f3-47bc-bf79-a3292615e678","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmwmw2EqxBRGXtQ/NlKmkhfEld36af5t9PqXg+8RKoJfkIAij38DHI+3uSeKuFWTRi3GPF+vEgYYR1J6+tSHL0AqOhK20KRjfYjwijGaVoH96IY0UvPtFjsd3IrIFQxd4RG2O53Vcg2DzoBN3HUftWNdjPdsUnUujDW4YQeARiblq4mcLQ1xNUONOJslZkM6c8vEsUzHkKgfOBd7dfoklvfESc5HprFEbqUegNvBsQ3kC0YwuBuQczhjDeX5hf6OnECe5iKonbbi8ShLMq+S5PuMD7F1HS4PmscZinVCdNaNhlwNBqd/5EdEoyhegSqqqpaDYhyLQ0gJ8/PeKIK0cpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1f869445-8762-4ed3-a729-7c6e3550e80a","name":"release-1f869445-8762-4ed3-a729-7c6e3550e80a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3aaa7f49-a15d-48fa-b58e-d0cb9e903ad2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828996178772063288660845325728421775222605848771070991580941658726761352459301993522512669874168603966050425595253619613179541344245963275365472861257508703882037239556468565374795950299422950159495509393725329264657204711111654831769628259204280186398228674718994513980753277670826947367788150753678967554115105299734622844500430379681439734089335114241998568167976611685317925726634553767777879719042882806811612572","osProfile":{"computerName":"jianyunt2"},"vmId":"5a4b8ddb-9fb9-4cde-867e-abd76f4ba156","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr9aSnSRGy95sCWD589+uEjW5xZBWLL1YSO04ty3zgz/gfkgevX8adjh6s1M+YTyQRoFakDo8M0cV+B3fo7YfD178TGcdAHLm8JV5CkXRYFTyRrGnZAc8JmpH0B7N3SjVDQbMkoB8IcthIkO7dhUxy//AszQ84qAj5OvTXiiiiI0C6szgc6XdYgZvQcYvMp1MXUiojfhBwxiDPkq54Vnd7n6FBIM9o4jhCTsccLp3NmLd2qhqqfxqK+eFqOs9s8hAffAHBvsha74DCYbGLccOv9E5DUqfZYWtPjNi+bhlF4n87/TiyWiyh8h1oFS+u34xH6vCzMhNfykSaIF/K948awIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-918f09c4-be74-4453-8096-6670e44a12d1","name":"release-918f09c4-be74-4453-8096-6670e44a12d1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2d847593-2497-40e5-9454-5bc5ee4c78e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186607267166682166392308663915815505505025479272164238352584945875529374791211218699370719247153894395754480398250801706334185585272405189335779997665775593651887182012986058995760051774857171102410877286706222194595114852329036815416739574866725746229925838628448996259946874492701630352432484781119599215487788738949500534507388357264806568210801115195384597558867804042109638857332873543837907979046009147","osProfile":{"computerName":"jianyunt2"},"vmId":"9d604b0b-256e-4b9d-b3fb-b7cd11746531","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtrYCUJFd4AWvs9m8xA+brBQAa77Md5mx+lg8XStwYQr952g7A4xwy+iODkRqBAVKr7FRg1wsmZqJVa2plPzFNremyKnNxL1H1UcYptDw443fZl+qhuyDoEMXse15BRbqEKt9IdyPeDwUpF28FV5na2tkI1J/W1Keqgw5VwEbKR0QsJm1jFYewcP0C4jfZlwXn6uIS25ck9Phm1u00WruhVyCOKPJSHXBFdotMeOc3hgx2wmtfojOEi8RV5SYNNvhe9DWkrvs5DKSl/xirMc8k6YHOxJ8U6Qm74+XyBlJZqfecJNO6mrVco2265tH0eLoY58+3PTrr9+h1KJA7f/cjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-53d79358-5882-4fb6-a178-89d630543b3f","name":"release-53d79358-5882-4fb6-a178-89d630543b3f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a7bfa404-cb6e-4743-9d93-37dbf0df79d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845952441199937596869867635250337767165586612716849441104553221839183991379090529567445749977884793653149882131709576402880184811729481929500798699030269210697636901856659477702299611756883598845009889718924661726961030541372923868411082837723001519305635321917776913599291777482815138139105854653848820642968884456229575175454891789591162564524160596336496426086753635359392426139","osProfile":{"computerName":"jianyunt2"},"vmId":"cdd10b63-3d05-4585-b3a0-689e89a1e51f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvgmtxipnM6Ly1IZKEq8aeSETaz6qa55kbte9qdx2dezboZLMbTPFHrl0ElJJSatpgATMVi8k8Nd1QZxg6ZgE6Rb5bZJc8LGafa8nFP3WZxtor2YLtsG1Lhc5AEE+dGaYL6tColQGB84x1AtyensAZcPyhZZxPn/gZgX75QcUkk6RxDld8aWKNLX1kI62Q0uOLFFcw5/bG+WSUigCHNID8n9C5idzmlzgK9ZNxqfVHVpZY5oZqSPe6f3qUwIOgkM+evo2/Wo4QOvAQEhugNMhI3jMjf+eN3RMWTzviemwTsqcS4vq8qwcWQznzeJb9eSj96n+mDybAAK0XHk0VJ+tSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a95e9099-fba1-44fe-88d5-c0545d71e36d","name":"release-a95e9099-fba1-44fe-88d5-c0545d71e36d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"42678970-5aec-4a92-aa38-abefae802841","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187417312246090673947981496587623336961174710798738083130487560024009324783142775121217405789736601819244606901131988091226220493720063344881986844246852344276270327154912562706582472258564334611192468849873768340640052191379699787388614831782854059388159241859158118816979382129318379660012084136249924439889541840976676401876648633667866613966495433065963113373135894828293784134683","osProfile":{"computerName":"jianyunt2"},"vmId":"ce5e0fd3-5109-4883-bb53-c104c6a6ed40","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxUpmw1AsMTqnu3+NbzunchTcNyv9zgMqWMDN0fD9JPkbL4j5d0UfVxgr+d8UlkvJ3RBEnMJRjKVj7HmYpglGE3H7gN+AMivCL0jPdeN18lc6hDrIw/thNo70KfCgnKWe5P46xHwgqqwKO2lKb/EgYC3+sogkhLe25GyLPQbjGR6gQpq7T6OJC2w0poUTYP1B71+t3cRQYrOK5vZfSo3p8y4LCgRxnjvh9rrJxqULkMg4JkXJvrxTNdZAXrnPyH5jiFWVEQYtECrEVAc0RowsX9T2y6LcCBbi3WxO6uSHfxq5KtqrKYFu0BWnfGaRLTIr9wjG8ChMkFWwCPnTEpnHlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4eeedb14-c4cc-4732-86a1-71c90502b055","name":"release-4eeedb14-c4cc-4732-86a1-71c90502b055","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ffce052a-859a-469e-ab12-2475045252db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188382790129547506624589609326670746498262265794689713036185345014607461530344586298253281534092465789002841267957241446688534295970435963182022055852741347042763959657793175399368956541358795077051331469960766984834798474856853817037186571696790427507737898182560671424935422698625531173782848195005595612790783352173366015511917313126855797014182960","osProfile":{"computerName":"jianyunt2"},"vmId":"22cea0e0-01f4-4bf4-abb6-db32d0713b07","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsYkJM1ZzhRui/1sv0TCnP7cdmjzC59/sy5pgmG0PiY3zgVbbq7sW0CGGc2TGiiFcmOGSzDQsdEBrDo8DOXxj+v196dkOaMr4ABLMUOFguFjPs9p/+hfgiLVUB1qybaDz4XqK2X45bWQuuexs5tqm7cyOypRpg1d0m+bz5Zi9jZMy8W+F6qrvFGbVCJY1WZwlw5g63CPvWox+fRWulIH9cIRq1RUG7iLcGmRRAJnM8CEiYwwab4Lb72SF8VhyNi9grdBk3HVQLy/qhMwM7RwxzzWJEWb+ytGX2lk972mzIFBv539mpdscLtNnrmvo8h9TRyERyOY4t2gdXzjaGqWF1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ead58c41-e76b-48d6-bcfa-74659aa9a0f8","name":"release-ead58c41-e76b-48d6-bcfa-74659aa9a0f8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f61dbc54-fc35-4d9c-98e0-9dc891c0185b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418578648493064348042474477019844922835303932992233274229978738845391515346906015237219184117618432882162094161753762740235941225021073058854253411304300250139467570298163898138657179574758130348407167299063866044512669844637532278353994168170718478546260612301786599336741016921830525225226694768289169130161545136635641901663131597909363229876114452480849769692142018734874217308896958522971918225580899422200597327978271181446452869","osProfile":{"computerName":"jianyunt2"},"vmId":"fdba3e45-d803-48e0-8295-d88e0a2124a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnX31Zor6Z0U6lcCJRElcbUaRsxz9mrkjLySftQMZjFHybfp3DyE7vo8ZipUZwxuwlkBrnGAtcAOcdPfGLtpvSyQ657GmOMG+ZEu69ynKQkYrVVrxCfWouJKFfoyop+aNaQVjm9tkbDVDAXBPVNIO2iFnTdUTwjIgk1eXJ/U0xx6Xf6MDlXLJtkh8Z+BQA3yRfnl2CZPl1oYuWz7/7RU9yVLdmLYjckuVA7ahzjSgLve09hr8O+y89xqbCT9JuKMKs4z8m5dYHZ92xPIj1y5KuuAMFTvgjE/5WqE4ThY6G2VvuIdvLEFBks1hzwBR2Hi5f18SCLSQaQEfRhJgUUXTfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e8ceb163-220a-4f9c-88c9-889c0aac51b2","name":"release-e8ceb163-220a-4f9c-88c9-889c0aac51b2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4ba979aa-05cf-4135-a9a7-bc514e5ce8ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418755217834906407171484369133314528224504620611594703735798606666450949996263610689883383925428988348439004273313432282833662628155061309499541699370249963115025298236764457271131254443678758654814212354884013304924963612726919192736862771652537873708149479030767580675871901423359645386782292035104972475941026131812893828473555373845748029075009766756488339452571686359743596266108803111965025777930667373903383554767904879098419386697","osProfile":{"computerName":"jianyunt2"},"vmId":"af82ac20-bcdf-46fa-afe7-f7287b10f69b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtGr3OIYjLBUkKDaKy6FU0fbuVuwZ6nFE/CIavMjR4neF8JzNJkxZhjlVekbAsqDVyiUhp9Ei0OQsy5QhLExeUIipfmlpwZBcnPEoW3oflAnYj9tjvBA5dqMYDNg0yIDa2PA7K/yU1zd5RD6v2X4kfBB09RUw0IPfIYPEfYLBnkpeixMyBSkfx8RT4unYhrxiNjBrfD4w6ojsG6/WBDQ0MZ22xZnJ4EFIg+7pVx9BapUfZjfJwVz87+ngiz3xazk98DCy/vmpm1ojkuu6UDFXdBcKnxHQjrKAxxnhSolYJTpCEQjkuEnPEzmqayJ3YIxYpcHvyimxGd+bw8jfj7p16QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2de4e5e8-bfd4-47fc-8e70-ef8e37c6ac5f","name":"release-2de4e5e8-bfd4-47fc-8e70-ef8e37c6ac5f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4fe3d457-b9cb-44a8-95a8-5a241a100add","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188449383733624018440842229557257145659396489663227402638820023797461512312134148261676924464417136326001843986326529446654638926828564455107461967783659888624378976538299530528641279664749961824528241014878952404372979677351305286404419435454929155562451894840082681258893583887287878170569959506862970153552926621496946545701261576353088025416172701478239019991989","osProfile":{"computerName":"jianyunt2"},"vmId":"f84a8f40-7f36-4e90-a90b-1b59d9a72a91","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4bvpaM9gOrq+gA1CkeVtrP7XPP+7XU/ImEeemydLquK4E9AbGiOwnMYJZNcy59ONfKmjIIERyhHIBNXQ0CoaPUDvH2kQekcejPqrgihQWfWkxs48v7Q5B8bjsfu3EP5m+01PXUQwvlzbAQTNcLW7BBoSsoh7eT/qq/h1fYdRTV64eJzgHi1dzdiRnMqYTrMbgT+/J26B3o2tV2y9f1ROUsaobEox2AzFuviFCRmiwNj9fwnb9wgkeJ1ytTHRr5uPWY1jaVvLDYP/pzqxoDK01AkXgVTaSxxSdOdN/CZ+cOwsqHuaE2MxK2DMngWyzvVpDCnamLPyZrPy0PPooUP7NwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bb399749-6a2f-4aa7-8339-c7f64a794e50","name":"release-bb399749-6a2f-4aa7-8339-c7f64a794e50","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dd96a89d-9a90-4ef6-898c-8669ec981e8c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418870588528247229537619816851307916522231706991447341947758640283865984131793192369852837657690975581526256416717789869212975296549313855623347815810153489861922782510643473905310306233602838422234944451461717382161912991888213192517261231543868600526112646868595789244613493756833893134549087917678457037441117497818616720577878293620234255619514009746203517216701869811172192184110429280132715531667389643612457160743563930","osProfile":{"computerName":"jianyunt2"},"vmId":"c2dd4ac7-f5c3-4b80-b46f-d0a1eec22ee0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArs8lvO6y0sRn/1+ODLWN4RkFXr+ZdXRecl862j3lGXfPhVkYlOsG85oo1MkXljUnZxT9wJ11T1X8i6KgHvpc04xtD6V8qKylWPHXxMG1PsJO+7QbWPa3flvmMV0DqX70Fz0GPMbW3QhJaSy7ZoO8VxlwsBGAQMplUTdwiO+6V8vN4tIesORMJE18sgpfozejw13zKD1IRGU4hiifA7NF1GuGNI30UbdE7R/fHfHbNoH0E9iffaOtBk3qDPU139RWwzLVFxvTQS+oXdOzNsZ4QVqfMgQGdVOvrTYaO9N2Z6Bk1bpQJyIEkAcgsgVnHoMgV7z5jZdK++6fUj1HH9XjrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a71027b1-9f62-48c7-9a54-06f4903bf003","name":"release-a71027b1-9f62-48c7-9a54-06f4903bf003","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"684c38fc-9ad3-41a6-ba0c-7ab7157ce1d7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186167388561467517997210082441548437865545245548741773892062303622550688977512619192622149562517808814242226526252301229997028284981418633125407025652754300235277125959893231559129359095573550960183233612532544661741476483356661697639033147247959552582516755369722309127077330989921089206388416990770246459894864443053105550346753482445526068476924888429232074965772112688767228292","osProfile":{"computerName":"jianyunt2"},"vmId":"94f9eac3-3c9b-46b5-96c9-c9dce0a1f6bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6qUKEH/rDTF2OhYH9mPI9KVZGbcKbHKNLWbwkhAbd+pUIxJj04p7BZq4Bla676lpRu/IDP64l9PE7kjezwiaiK4zhqeXs1ZOTNv/WD6euEvHFN3cmQm6AulyoDEWpM6lO4IFAVJQLWeg67xf/m8PcZlhsEWWgKKUOPf6nAWZdYoW8rYclCnMYnO2MbrTBfG0Oa0sU3lNaXThRqa4MqpVI6DDkHDdHMpf4jFUFdLOIl1NRybyEvPcXln86iarjRCSz7NudJBETkbo6jUHV6Lzpg7lx1gRLZr+GImj0L1C9zOTm4RlE3Ll+11ajXxa8TpiHosKYzOoXLk25A6UhAGkjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-106bbe00-b4b6-49b3-a6fc-cc332e962ced","name":"release-106bbe00-b4b6-49b3-a6fc-cc332e962ced","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c00f0e01-ae83-4c34-a29d-613a8f06622c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186855528341159418794190194639771522124616776356066272293743757015843594226437873773148469593606420256093619725033029886735467522762772027696325566766354998558266563403293811276336750647929573761622800949339475788744898246940571114806297221842210996250932457184892188566256522747153692186287965575444077636122664962128600951881850692197437739876847809031896","osProfile":{"computerName":"jianyunt2"},"vmId":"9dcdc72c-64a3-40ca-9c6a-d08e82b4e2f5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsSjzX9OwRkA+GKTtg3O4zcdd5jWte6vVBNXCPEzrmSmUivrMz6TjPTr5qUiAizBa8H9uSaU2ZDXLrQ4E0YDSmIrWLa/orTX2yXFfLwuhp8+xhzP6wwlADTUWBqizjl/J5haOqIwW+uo9sr/FW1ZIjAyEfbo2fDGCR/vNjDQmn9KWVE75W78PG+ZhnGTIPMDOVgV3PjmQM8/OK3h4aEKvcxZrJt1QATFphCLF2zJ/35qunz8gaD9uomTcmx1B7TPp6r9x9/CI67eCZbrBRpQvswQsdzOGtt6hUUeK3d4qsrh8oesaddQ4MBgF7cxwUo9R4DJNBtk30tHUL1E9LP6TpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6b8dd5c2-89fc-4208-89c2-872ea79cc517","name":"release-6b8dd5c2-89fc-4208-89c2-872ea79cc517","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7dfe0831-223d-4fe3-9d2d-909c6281ef34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418776560657262869733978723646971536380679265187156468641022837148287424651162737584726199155947314022883155822116383950744929746566055918933552127236087229067399340523888597347669389944077475300540137094712724033113835464718009425874379074786424511198790195257647498207678514140807465829612753943702856105389942824547948403809523499353398543325737099910104050881564264461887104445276466786558938388210772964234454","osProfile":{"computerName":"jianyunt2"},"vmId":"eda84fac-fc5e-4f71-8500-ba948a7b5876","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsPul/pLmY/YxSAYKEN8rincatntGa2B3ybUSLUrRy8fWxnDo+K4p4eQRRaerCHVkDGLHpjC8WWOIsLxU3y++XygXyp6enHGz9z2Y3Fd5d7D30ctEV7xeQTLEVQCzLzejkL6VaR6TFExHW5rE/3CvR0oDLogX2jQgEwcR5Fjk8rtJT5HMsyNDOKbIKwigEiBEdkDx4CimgAUDy4Px3eTJAYpDTdu4MTgKwCQn1LtvJTCoR1pZEyQiMMJPQPXFwE8D7RPI/iho5l9IE50F8YVz1Nd5ibSSyfOHo98SPWk7cQ5FnN0jyEVXy3mnmikSmmAP4ndImA666OciKk22gl5beQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-506c1612-783d-4367-b336-3475ee3f26a0","name":"release-506c1612-783d-4367-b336-3475ee3f26a0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a7e13509-9a63-4ad1-b5a1-cd1289b077fd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186823492252565205904521791155315445845878323816327630251059608152262955409134572188408041322477203252216253023822621650763905345232622376438602544975964901338873327868199118283100232079494681992343452069821730123377663245847434611833891108308510587296890344821652665760606741669763548508565311475055562698869842501453237211970632643259533400437094949527098113703967416077016146534469012","osProfile":{"computerName":"jianyunt2"},"vmId":"cb904f84-d483-4454-bfe2-7a9de39ccf68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAurKUfcg+vrUp6dYezjyZZJ0znlx609sv4l3Ci7UE3g2P4JW07ro6hK+frzqHTidbPrr3hV/nP17OWGj3vZoo0+/uHdkqj6g8v6m0oA5pKpXHJTBNd47yaJk4yzMn9K2VlKQ41gePlYD3vXlsltqubQCMl+6GwR+Dn+Qrf+a8GmXgqegSv1Vhk7E4I7gYUD14XeNxglm7yqBU/67lJvUt2HYccQg0w+x5rMSXQh6yCb6/PRKS/vGceN6JVmnoPSet+MSsMAQPelY94gq6luejPZUFYkwdyXKK4rfVseNkmBopv2ulwteWrdUxsuIduIHisJ6jz0MVDgUvTBYTfTtqswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b029b6c3-3fa7-4cdc-bf62-9bc4f6e20e49","name":"release-b029b6c3-3fa7-4cdc-bf62-9bc4f6e20e49","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9d4dfd82-d155-4749-879b-f430cef22f79","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185445539272546463273879426160955292804159389072947872250327355456333879436602505236637120968826325765746159540846555518095579357139080603648306040182079709318383753805981432662438291430432797540977178642502394275345737191250244971179562031842889331595796786376902425284916208043445597725940257646544961766233206949383179886402852432346857170358197712733379126349493376236115807224442018514891767965289754271608436973366982215729397823344351","osProfile":{"computerName":"jianyunt2"},"vmId":"024846bc-53f8-4451-9b17-92bb522c2ae6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvClwlp0Ca9UXknqWYMUBLuvqs3iHuO5I2RlL6Tp/c7K4f5JR7TQEJbbhaeV5AN4u3u1nJqQivaAwz2HoDe0LKETioGISZi5FfFtuLoE8nVexdi2P0lvaqE/bGj3U+2Fa9GwQKqwneDTwy2Yrbo+WaplGqRWkzs0FoyQc/8kQX2KPyjE2Bu5Yibbe8klqOVGsIwOaOq2DfnxGbkNLFgqZmB0y853DL8SSZxkemLRlNCdJRCLBJ8lbKPcYlAUbvrl+XuMw/epIKS1HD2yKVR4XY4RiX6fC/xeWCCnnJXY5XOf3QBT/4+/9ObvCM7x38yQCvfZoQ62mGevB5khPwOY1BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-41e1256d-5fe5-4316-9e62-d35ee1479ab8","name":"release-41e1256d-5fe5-4316-9e62-d35ee1479ab8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bd3dc2a7-2f4d-4f2d-b1e1-597ff48f122c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189856252190341236730576840503046644898571584394893268168394826354851466598664998951311310124686972212985995885410377936294005259618713068789518604474409261951742173406465922485169224368888053405536351794155598104087658556867064356459246555953804582546897316064204380457459451443099324586622077223520391475500910381881320280744933575870126446583366614038971369467680117823270556804605376638790084181343523179594147734418630470233619109","osProfile":{"computerName":"jianyunt2"},"vmId":"a66c2ec3-36b3-4a12-a160-3211291f265c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwwgtZZVle7P+lFqejy9PXS1vixJDgeY/vGPBWwrX/MZbn0rpEWTGlvDKiMKwZB1sAiDDaMakU/r9mPjaQR3JRy8nzUCc+xn0GrNV4qPXNyP9Jk7F6AFZTgkjGkkzYlWNXcXhyKXWR3lAVdVe5DCO1JB+ALlGBI4Vdv7gJRTQPuswHxAzlndyORX5H5/fMKlVQlzyT66hmickWGFthJiHWMUFvF3wMIYkSOABJPVwyrByFaj0mPuhiatCOdc5c3frrQyrZimHUzA7H0KQaJbTUHH7ljuq7APinCYmW5ig3CBmCKPM61QNN07U7BE5bNbVelI2vY0PbPHBeML9FByonwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-88784899-fcef-431a-afe9-98227194a7f9","name":"release-88784899-fcef-431a-afe9-98227194a7f9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04ad6e6e-679d-4994-ad42-0cf59e48cdca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188643209153485971879047879221412723955566848333578256535361395516280125769329131741259508098401651879949124537248340698233532885451709855139122353504341351309808459998173189510372345379365745116255566477646393324338466544315756637464640889316378380925275226689094937939680913132519180574360379268675692332526852850334696313727602135428866267510211823458586991127701437544698348946971730167633377529599540456531914639199823513170","osProfile":{"computerName":"jianyunt2"},"vmId":"86cd8ae1-a99b-43df-9f11-6cf508b79bcd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvT9OoDqw0jW3vWGHgL1WNOGlXkDf5rgfEzgHdusG8oOFsLZox+v0n9xRYcw2fqT5/m61u4GkZLBvvQDI9FjWBmXhcw1oOjnjo5gPzsS5TB/N7LTXzqfK+PsrcSinnHYQq3f/XtK8blHnfdW651uVNsnPeCDy35HWAnF8By9IhJuQNsubDTQtY2JCsBbTDNnqUB6mekkiIkoH2IWdjaQ5knyZui9ZqXBP5SQZjCy3xBJuty/hoPCfW0ttkDas+M4H4u6Q2GcVqZVdRKeDMmJhyOxifAjFye8ZJ/n5bJx19X+IiFLn9V3dzxEUTIWgq2H4SjZh5eunOtTQGv/Ld9A8CQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ccd694f3-a586-45f3-bd45-3fbd476dea55","name":"release-ccd694f3-a586-45f3-bd45-3fbd476dea55","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dd259d81-cde4-4011-807b-46e15b919ab6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418833757695438808047426796816117651458144578198158183403255389411149172277908841113409881383568412024228350743693035623925546783270319895950377455532727336462771513344356535306331791822382419125700785348972648590826461867965993626721451353937562049400848490447656465666811489375471829511352356357782717844926650426081486786649561332613784795836","osProfile":{"computerName":"jianyunt2"},"vmId":"7f47b663-bac4-4ae1-817f-549f09ad7390","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4VKJSsMmTNdO6qXNS41auZi1EczgS3xCL0RWv58xl7pTWc1OYQ6RdKA+N8TGImmGpySEcRE4UNVVwItYfG3uVpzA+WPZ3n4vAOjYYvveRP8jI0brzBKzSmnerFwWQBQokgpyTphWJ1AXlyA+YFhxSQQCz0iSzu6xGwu3q/UXh7fZ3ppsloQ60SkHXC30Ayd/k1h/wIwznnp09WM8p/CSXJN/d265+RAvjCG3iAAsm+5MZZ16210uQDwO8Tcn/q9ZA/ZWvqtFjU9f9nF2lNGee9QmG8XKcU06+KXaD5P8NMjkTYLCDoYHJMTRyFYLGc0kft25TaNZd269yDuQwLlL/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-433cd41d-05a0-463c-b374-be2a22b1aab4","name":"release-433cd41d-05a0-463c-b374-be2a22b1aab4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cded71d8-a96c-4816-9110-95e01ccf356a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189481694545552627287991941658659760534438344771964122126397429678336798389753140074940341314142252386264655541377501613079248966763445154890559280106125903230714075787492689667212933437628803976081914897613860074429775536725957737242581268534413828963356159517782674242317228360420801367961128652232753899887274564144682717951690170185869726093852682444045650578351205299748486804565734764091447341360432779360410488034","osProfile":{"computerName":"jianyunt2"},"vmId":"340d8ea6-384d-4ce5-929e-30a3fbc4472d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA03bzBrCBexQlL+K3QeUDulKPlBM/7qei9CF9DbaKM3g5PKmBxbCXsxLFzzdt+J66VCPqYFpPTj+M+ZVIx1P1eNG4zN2XnNcpIsw2cfhdYcws3EjgE/h9KTp0YdiLhCg+i1v3pQbEOJ4Xi2WZZgOLDJMksdrpzeui/KDDBqVepUO5+zKkFODewW4jGgSp+sCSxS2Zk9BqFbjnhWMblRxHkGTIXXsvBwG8eo455inNzOTYHZZEh4BhEDymejOmi01GLoPDV4+G6IOn1YsVZyI6h0jt99om6nhtLVa5wP2FinUpb5v6msWlLfAHTInQ5sWkaqSwJWMU+/1D9aMee2k6NQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-10fb9ebb-fde8-4165-bf2b-51d5299de681","name":"release-10fb9ebb-fde8-4165-bf2b-51d5299de681","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"92420a7d-3dc9-4fb5-be58-e58b65572e48","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418333675894068303443249869315475494261570854532210964326694688797633638066911375306713459863552677273018565308197185755134473938373630471751203687115353873033236531679045599852597467934212346300462159298462285287478341747210315453263485226204457933467945032710130925489047787426471342516845957917386867241196689102331371253862559614255156242074489418864453822310665541331062122916657338660815066208","osProfile":{"computerName":"jianyunt2"},"vmId":"b02ceade-9cee-475c-87fe-502f6cefe417","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2BY1PnCXyDGR6aXrT+bnmKtTY/FLwuoRB6ByDPUtBG3GtAevvKZDcsFChccAXcOrEZpPwpZ0egyRJMig5Zs0K2HyHr2aDwPHDM0O0l9zJIvD0Zaytc0URrlR8/3tu0RjBxxm6xli98D0qAk4BeUS8+N8pYBFw8QxuiTwZAf2MtA1DEB/vlQughoAJyow2xB6DP8zJTkzWALMxdUNgqNhIC3AqeaG47cTgXaE53+EvLnnrKFsrtV1gy88I8gPdqTnqAD48LBv69XBYoSJAbbDYBG8YV+pbi17ssG31noiYloM2OtgmdSKoDm5yLKMPVUts0bbjYpChg3R7aFvRdy1+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-05853b63-fd10-4bda-9726-afc5b27796f3","name":"release-05853b63-fd10-4bda-9726-afc5b27796f3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"45833424-b75d-4fb4-9852-0e4ab6f6da20","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418177673294858342764592826327355200528461290439238969632892044899556299584511144924243380491947019764599246473405769150565476677657199246367293655407012907665117250536095940227909944493293398046627844610284316191152453470557082690775424795371656051124132820426913682388590446337545541175472179917633187218945390756038811759134297714660944224731741879669155045905729635795975028289678377449435792831094289011737262188785448974975420","osProfile":{"computerName":"jianyunt2"},"vmId":"b78ece69-7d79-428b-9a7f-ab2bee40e649","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApDCI5uwtb+8pPQfgrhEmmJMGl3udCXegPLgvjHfPZJCKhkwnSvCu2K+LkjxyAtSY0+A494SVti3jU7GBPeQt2dFyh31FcKqSasaa/7S6d+/+lfDOzL2FWK9f3ZwzJRnk0e7CHPnj7vv7ndrHRUoaMy3VJgq5+INuSUusI1cqRKX4nGl2iG2WwiTCDvJZVJqFbjQcE/u5SEzOK9Kq3yEYT3Mis1D9VCvTZJMGPjxjbuSiZf2R2iu83zZj7UTYJKEu/56gifufJgJykEz5NNZgs8f4RJkelwfEFduA6Ty82gPc8dVDeQg2BtgdK4Q8lrAkl6E2rc5f8w43+HhM0+ZS+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6efe84a1-510b-4a59-9b7e-c22c82108eae","name":"release-6efe84a1-510b-4a59-9b7e-c22c82108eae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0b56bcfb-6f16-44df-8b79-faa38440ec22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825598383539943233123956774897603911897419722319621859917919171365315637934642624936759081160563506261730811932927459456959591405288442072953685724278202635017726946973430483702643979867953818835565287599981243578386863546509327349512096941429684454819343556889821366787276638193054793622925497191469373267172948642175257235688474733627816778849357665665594777091947687935826155681811644423152996949162527706","osProfile":{"computerName":"jianyunt2"},"vmId":"48d5fc65-b6f4-4c88-8d55-adce02a621a0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAquHJF1mZevu3/CN744JgVfjPJ8Nxw0nM7IKRxF47kE2S1VB1wEliVl+2nkvtlgPqZLMSfRKhz69+thzx8dosyWOyakjNpbh0MPoq+vQxCqa3A1hGB6foG+vVHonWRomwWXRCm9QDLAqS55Mzbn05pZtQ9nA6EmBTNQh5v9BR6BYdVqgX/eXDUu88imdDE9dQMsAtRXP8XvbCV0TejgR0+ueaXX0rKiNnZjCIKg+A4T/C904+S7/naDPYYDNE945RikGGDIxZ2D7NNmal9qj86cCZ046YgVJX0JuinH29PN0ZCUWSVYnts/JYLFuHi328a1rNwCJcNWBh4IO4/2Wn/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7eedd4a6-8004-414f-8527-fd5fa4144cec","name":"release-7eedd4a6-8004-414f-8527-fd5fa4144cec","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b78bca0f-e628-4584-b806-98ff48a581b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41874649594134136649307571118256716473676646785331160247625885318629042274121841835361165613242775321836624456132601738364214607607673961059715201165651297118396667085757162488852208895627622424889640085848242696549761431896206170510638073592723745446423651743377239880097711328875229739894539638238887969706950122373982827679352380324250252146028408884575924554473644089166800309444132738431728691920","osProfile":{"computerName":"jianyunt2"},"vmId":"89480d4b-0c00-4c9f-8978-9a073fc4a0d2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxDWA2K4r8BoK/PU447fogVp5UocfSZGiRU7FzQN3XJCXOk7HByxqcoFQEsrgyHiPFJHOVAcs4MDle+a2eUT8fnULA1yvLPnbVLKEGvFQQLjdr0jb8QWFa0Trgr9mh5o6tiFBQSyiJp7xYtPExvRmbOoHKkanAi82zEF1Mgq3QnQnwENqtSS2h+oeJLGkWr/oPTE8xHJ8bATYUYanCR6IiL8y7XmsP9WIvDkM/thzqmc6JmaUot+cMBN0gWlbQ/GQvyzc8KdZU9GBO1i2GhulizLNk4GZFNaxaUVw18/y8JYhDuFhMwG4LsEbhAZswx5vkz0gkH2vYOufthqZPE5dpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-223b002e-a202-4582-8ad6-2ecf42d32830","name":"release-223b002e-a202-4582-8ad6-2ecf42d32830","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ef868438-c966-4c86-ab52-309411a97de5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41887416319377270553485577814296863566652193535825238070327750373696624728027621240569819747333332533394754268966483715504864963767182721143904341183125862067522270865340836113464328461515254409362638335579856630267196999610812482026216460943436803864577530278927296418860685316140644157368979256373877125895901366648921243147761340541601789088762840972192946798558230208239322339576196915234546788322692027143276464179","osProfile":{"computerName":"jianyunt2"},"vmId":"865e2155-5026-4332-b8fe-35e6e5b47672","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzfqKI9cGYca6gLSjzBSLyXc/3wSgVJpETe5M2zKWf51uhJewr1Lf1DqMu4Mh5aiAixmQvXRRzNPVr+x9l5rmvl2xQ3dLzv1fZwkY4naHSucNgGlmb55nFd/0HXHM0a+ps0to2TH/NhexFQZhLz1RJXXrRNGOMvnWvrVriXgGSWa6VWxYq8OMt/oM/HwwtRLejd8juIILfFHxpaL/tbTnDZfWnzaIt9D2IvKNGQ91Dzd4D5MDsZQ2mUyolwnNE0N2rR0Dt/oPuixXzgO+J4XB8s42y7XNiajTzXuyB5pjqQbLapqkPKb1GwU5g4A3Qrprwsc3Cqut2ZByJmph8xIMawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b04be34d-9865-4e59-bf7d-b65b0bb39dfb","name":"release-b04be34d-9865-4e59-bf7d-b65b0bb39dfb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c1a4993b-13c1-485f-a92b-054b89db5474","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418236781040061602962462067516642118657896443474903124140236513427379039811280706561435762817772208895001165915452424838689611233670573843208970917494186455580125032617187859328135439017335428706826955705144439084866186093638836261089784751382162404520594357960775280708755393242248234003237062123528446637152692955932057761224775937191270846777029764979654212635391942338886295822912567981476331702224177917399290333","osProfile":{"computerName":"jianyunt2"},"vmId":"be28c1b5-d57e-473a-a3f3-6ffeead45d2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAte8GvUmpsTUg+cOIFleOFrDeDv25pTW9dhGdaWGxHYYTSAzcpMfl39uNgib9yADVDginpPkNk+kWa0xqGHSCqEQEnyRns6r8c5UvhpvOdVyuvTsPX4LkPWZ1sF+d89Gr1M4BPB9wmeoNQ+Dv0gbCm17DEYPGOa0e67+ip7KuiXfUs1135IDkLqkxghWK5NRY1MUB5Nl+UmcULCi5gdoKa8b3z9E7+aCStVJRsTJ8paI6k/qMYfrfLIgu3eP4xQI09Il5T52LeiCtwdAavf5I+GFnSuo0qysbjXCrUJ2SuyU2RvY8ZnkvpvaET5has/TnQUZq5bkQVyPTrVOk6WL+IwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-786ca226-2b90-4d7e-89a4-7fdabd540896","name":"release-786ca226-2b90-4d7e-89a4-7fdabd540896","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1297b44d-c7b8-4336-a488-d9e70aad3c34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418582047222602148342734060450629347040710338594371723968028916918075653774065590339925998292963334079212698289339332659829252548752334581623349084374318146955225731166485765169585208303921626976863884110703857734779671921135678312930356237579175381565014546223335731310467838281421120986379551563440528806298722829009877126981706447194385190913734848411853141402727430633176752447098268099340740815296962883136415859626876456805187125944459248986471","osProfile":{"computerName":"jianyunt2"},"vmId":"d0907cea-ed25-40d0-9033-284229045a0d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDbbIqh/GmmpKbWl/FvfcLKwSYz/a7YaeMrx7CSVBMit/9K/4S1umrmSru1SIIKRgx8WrsaJIcq+Os9PqpZu7tYvAvkB4r/Lz2edSHXtfjvBZHXd+YB0M1sDGEhdRvZPXgX7UkYlH1XHILA08dPA5Jq8SFclxDp7t1DinnveGCWBxBsMhJS+D/Awg9Tc1/nGrxIKIAxhg1WuoQ9xLVJjfxLoJ5QDI4Qyg1GyZY1k/l/n0UyLEINzM6W1EeNsxNMzFJmdkrQquzENfO6hk3x3Bpll4LZASn3VsdfquRjm2vBR2UBxbPSf5h0/bwdyroqrE5jrV6HMeGRsxnfPJni4iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-089977a3-13f5-49c9-940a-eeb37cc8bf46","name":"release-089977a3-13f5-49c9-940a-eeb37cc8bf46","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"830d5f1f-1cc6-437c-918c-1b60b78d0c97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418404394860384516527741411864639545961009375959864715689417688132372667111655317702139329479892198203361651467699256892494862770901939502079236629246381979093378830100890053322745576469124335156913557942178557652716335105200363554120386268766661508931208079825823743340222623098059086373591428973471668636228962616868572581889933364667548148513578092597339576371760167346788695327844042755553793927296102420653946052427999662351364","osProfile":{"computerName":"jianyunt2"},"vmId":"bfdb3c61-8a22-4757-8cf5-9149c6763280","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAteADpp2+zgrH0GAiSsqVRQKd+ZkiazPhJQ2ZuWMA7XSOwHFFmHa7FEUsnihAHt8qAF88xfjenXr6D0bD+YiHtaTsl1ifbidodisFqMi9G9Am6kzvc9lBT1idwYVacneE0qJPKwgLkiW1yOzTX7tEKuvW/fSmrqdtu456FY3BaVy5c2/UqR72bDB3YRdm/4KmvYIBvBYdFr4DAbSDPL/1AUeOmkR6iDrrjIPinxkUCLVsZSH94RZtQ3wu6Qpla5UcyWN6/ZNl034nXXfPPktLaI5mgv8MQm88ov9D6Fw+x6RjqPVx4kLWCmJJVlV0Up2a8wiOvP0DF4AhNUJJxJfkuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2a9e9efe-58e6-435b-82b6-115d6c0ae83e","name":"release-2a9e9efe-58e6-435b-82b6-115d6c0ae83e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1afd41b3-2e80-4598-8835-4a0a1f6f3f62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183655700816971474102615835922375489198608917065972563120198071503709399395234904921813551445515735182086334611728507097818111208456791197298655562987441192949084998637467157132261953779431930453938043747736732985489860933243634351808923419842118998902395994087724522395330658343675392274317782144542234343333776227535712140996980679848271728356728331558322165489504749404959631414331206885360043991339","osProfile":{"computerName":"jianyunt2"},"vmId":"640b9682-b2c7-4e9c-816d-96696c5f088f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvBIbMMsy8KcFQa4xbSu/Fkr0F7sopytgoBGHl/hGiKzHeusiRHnZpAlja07dbhhb3GVRLQjqEl/xKlDjhGzNSVWULHbYnr4JxabqipF7Uwdl4KsENq1G0A39NY89vDedDIdtXYLK04EBmATO1YIZkwcte5c0LhZd8UOMpoTVeWhlr4t2g/XtOfClDVIPm4cQEFvB5RjT+MLRd63EdQnoJfLaRNZWXqFAm+7NvmCC+scGwcSzc144gYNkCd379oukAfC1F0jqCGDLZQ606T8TkoIHHhE398uyOkmCDfhSqvsUCF6HPpOdnfA1QGh7Vii/ZW+qFcfs8ThMtjmFtOZfXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e35978a2-a798-47cc-8b79-957089ae00b4","name":"release-e35978a2-a798-47cc-8b79-957089ae00b4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9e83170a-d9a1-49ae-8f03-97a67cd3a95e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418570371282501316551855705439815221847460443016723320181292441246773201118434636166788216841766863742920964333699775841149376273360151422446351332279257229941329009347119162348544307830632753895604616038303581594671105151146874158158952554825307626579644033800871261960624511724925875778389402497912824184153553238722712172575257719761464843609788069928538619291005905986198855343851659744843","osProfile":{"computerName":"jianyunt2"},"vmId":"69f78b25-a312-4bda-9d8f-2caab01c0d04","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7PR5kZ0VBWeX40BZ+DZT2f1XKdSMvhsXnCXugGXGUlvJPbE5Cx3u6B+dfnX9+xH/UzsNsVDPm2wtjUITb9tCUNEyA907pL+BUvyqCiXUXV2ncZSjrD66uVEInhhR8mZgCnYI/6VVaBrNIjbRHDp/jWhmDvJPiJhaqKb7zt/smQFlLGGWjOYYzHYP5K+qL61edklpruiJcEAYi1HfzBS3UqZc4t+szYSX/FoZfSxZUaBQUWtjMi7p9hTVRtgnIPy193FLal8Mi91p9nST5861nE0WRTs0I52MMW7syJKG44KIafoDuEsHAJFO9GlL3ECR05VB/39aBmRpUe9Pi0W3mwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-848d31a6-86b4-4c30-b192-1b48b10ec766","name":"release-848d31a6-86b4-4c30-b192-1b48b10ec766","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"540619d8-1d56-405c-8efa-20b40b47976d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418611170634731929866414045758677386360862248298939362138049121768904392567805652322398037397997656752034444268481058118359849199981568693361951244663224459641751331594378332726676143999951237535140192630379610903815162236970935483684378865074192612358555504782334490374304576096999211223845132371996234214524897795373328907950683782700478568728640224467206588798133898024868140101528456991560527619947802747991679237156","osProfile":{"computerName":"jianyunt2"},"vmId":"2f2f0372-1cad-498d-a122-5d53cb3c8a24","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuyK/GLMyFiTJzPbON3yMBUHt5z5Rz619zFyN44rb/d/7vOKk0zO5yqtLoynJ5pWA/CaXAjGcEARbAHP5jYn3vl2iaCt5tn7HiPM2sL1vf6rLL+WLlKPSFo+ENkSm1UMLUeDo9682XdRVu8RxeHzG9TIWPh1vnvvKrt5xiwGY0lptSlwAyXhyRGd0zY3eSZvOlzWqt+6GaKpT7MAdYAAxpfVQH28q8LGgOMpeG5vI/bqLzuMwxTwJAGpeXfwqby32Ahhgl4B3Xj944a6K+0dDDVUoRilzrZ1OEwws4hBVVjlGZ6vhjAzuSdiD6qx1EnPvV/9T+MaG0LRGPniyNYSnzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d182989d-b076-4c73-aabf-ed1e2e1d6726","name":"release-d182989d-b076-4c73-aabf-ed1e2e1d6726","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"943b1fa2-868d-451a-ad3b-c5a7a9f4a5bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418975578152499239573928383342820022224629469686802481823877493487337959669584711848609598018794090142243857844636324353375047429040955416773463225993271915620196404406131904051665151712306416432123559720445535224867659943592940379537218565191925570936005661311991128795466178169421973204876642849993541738210281805687629845156664308587102417275733377802151832328522387","osProfile":{"computerName":"jianyunt2"},"vmId":"d7520201-a443-4fea-83b3-cb5061355c1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtEyFqReqjUCHqFBrnX00YlH3oOfZnMNgax8G5+EMvEwA+5lCRKW5aZ0duL9bmz5aE7AEb0LmXOeNrcKn8VlIq/pB8mB3iK9EP+nTZIW/EkCwFeQ7QVBfkJwVbjz61WSPzuEwmNMlE1ryZ4eEP8lK0KF9KTIyEOk+C+ZnjjWXrpGDNkkiaGLqVNvq+yeqv6255auE18ABx34DWaEkyOMAd2WzITYD6uGDypNPR+Hsw/get5I1PJZrx8WBABpEhlsY90RE1s7nZeS9UjPSe4nfdTOIjfDeBWKVFBghcGDDJsLOwbMYTTjBIRf3eLtbsqeOZqIyPTW2KxkCIbTVC8K6lwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-eb2ecd5a-95e2-4082-ba0c-8c6458336c3a","name":"release-eb2ecd5a-95e2-4082-ba0c-8c6458336c3a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5e31ccf9-fafa-47ce-a733-b99e647f4bf9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819489683729228252307360426403052159578555905148075167844987057141581615770164587942715628365431578079107983247780002997317879281013126152470609106133371225734497276650439578523913577797307390955282348781804432886529693416618823824912416616944824687328898456338248952660759637191407386184437136497620511391493065310691820781652366544592544643307122686690204464","osProfile":{"computerName":"jianyunt2"},"vmId":"f5be8191-ebdd-40aa-96db-7310dd8c894a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3OVt4XJkTEPiwCK2spDUec7mzT1snKQswaHxMCEPbiEOyadc/IRqX1yWcoej66DYmVWKcFzgHdAYHO2UEIdaaA1/EDYteerz2NaNXGBJrT/eJhTvukQ5c2A0wMp1w4dxncNbwceM3wB1N5wG2CPjCOxFn7II4JD7s62RabUftUw8xSs0Ep6o+oIciH5gxF72RpecmfVjkg6MnSuCIQ7gl4iBRpvxggOrZsUznenHJ0mJy4TWxkl+oWNGeVbDL4LK9wQyEsv2NWcvRn7P3oAHKJEh3frYLdxcGMOB60vUh9v2SPfdL3g9jMm2c75cKnmCYC/J6FtjHJjiseV5SH4tiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1811874f-1b20-424b-a5a3-d514b38bf3a5","name":"release-1811874f-1b20-424b-a5a3-d514b38bf3a5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6d27e4e7-1c97-45b7-8a8a-9b24d4339712","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184437780120026112838230297653201892750973163591732614873985069125349976086721448613327533194963399786706636539555291422474636556196805491941933230359234681438101491445588719955619354111264791792062494199940067835270855896321930976461940492716967353303038283628210768521307544945094852235054185759142734888054851822058292445833469917816919220584693160641835082552","osProfile":{"computerName":"jianyunt2"},"vmId":"7a59341c-32b7-44ae-85a2-aa01bed9c896","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3pTxdH0JUPpQTlGWIOAPn3k1VK1ZitvlqAOS12+nGOFQLxBO8QpdAupgRwqzODdgJaG3sNsqWqraFxaBpGQN/tojY4ql46wP+wnxW5g9wYbfOcNCMhH1o8vmZ++uTYJMa2wwEri3S1H7DnQQW0aT0UPot8zcBBztSlhALNCR1fMS8jSb8UHNLAOe1Hkmw4WrdEgWXgIwZzrAtQHtq4NfmwkuwIjUR0bift8PI9lYd6uGbnyZO8EP20R4JhTlEHUToPFipAC0dYEDh5jcZvEVAFAa+J6oUBAad4RD/zMQ+5zcoCbdMIZGYHpbmCDFHhhJ23JxDKnkxdusmFBMkGpzKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5d76db29-fec5-4175-8c02-1dfabcb52b48","name":"release-5d76db29-fec5-4175-8c02-1dfabcb52b48","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9ba12779-4283-4f34-9464-b12359227294","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418889991821728485539544548398838638576652984451654914500219436644479220782391586946830842382461376238473361921751128320939364317627617514944336542667852984739052052759019721304403496111759867347611719878764773509789766573896281437481926469342291291252450165642956822144478234728832435560292124803171356489422331681234738493938111906803091493149326529578887329332202220691710309460911633187221680757905305457393184147798966629213128195","osProfile":{"computerName":"jianyunt2"},"vmId":"4eeadcee-3c41-493f-925a-31eec4b08656","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ZPuL2fMGQ08DqdXdD/Oi83tFE20BLJd7Sm/fkQaIpGN6m2LcYbeY+lP1I+6eKaV5RyWWmKeijhEmwEZWqYJinzelkFFWA4v47JxGbUyMKkYlf7y8Rs833bjzxbPgpzkKls14OE6aYNQbGy2vFaKJr26RpYtxXz6FaaeXKUwRQZBYisLdn5/WdvyiU3lnJr1+QOx4CJJszaAxJM52u5UlLhpQwsITH3pkLsbH8kwncbzNJjnGAamY9sh0Mb1NDAuSgaaAkkvx0y5Ymy3hd8/VtttKZkriRFEe4hvbGOUpYrCFoXQ6AuplGxzTYOCtYCdEu3wyvajErDqX9wZ3pc1IQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-04ac0933-2eda-410b-a0d6-83e48ddcaa58","name":"release-04ac0933-2eda-410b-a0d6-83e48ddcaa58","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b5ac8cd8-120c-450a-8f35-fdbe0c81f3c8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873078959498474695038368658201262408100819071301022755054655638927472063330775012790687459178753749054419671146892452382642157581730338997565174118848512976409624851078537123378976051582356636688516814976735672833231015851609252749286227329627067759024935789025461553948987963446082189497627771168840988784851384381508369491175054656270759233320952762904810667189037329","osProfile":{"computerName":"jianyunt2"},"vmId":"ac74c63f-c585-42e1-bfaf-56c887e3aa46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtJIDl3uJtk2MOXLWauQ+rPW//0/xhfAQYwBBJsN1oPBKe3F++Xj/g8tY2tobCNeKekU7E/PT7Ssq3Ua+KI5W9VQ7R6QO5Qx/j7Su5MiBH9/kE1h0DM4Czrr6Uz/gVraxq4eE4b98PrfvhozVWkWgZejX+xbl70S+sBG9UlimEDcdhZvgslXUjYoTkw/p7jdyyEEfXbBLyFOdWgzFW5I3A0710ByB8EdXrEDCvhaxyBSdnD4zsDTVb0o5NBKOU5nMw4PRRB4JkKpQenagPL8nyZp6yf/vw+UHM9wzoxNkJfx44r71LIToIIHZu7VzzPFwlgfYQk70krALgUcQ3n+XtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ca106e31-54e2-40af-840b-1d4ec6288926","name":"release-ca106e31-54e2-40af-840b-1d4ec6288926","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"550ea5cb-b3b4-4b70-ac34-c7d92b84d7b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418861690027458446998891235744915783946739202026263643369575123501966660607397801244314312404370339029160050846086251170563675911954742037967589162110561017824253075340690178774933733095177691892239164808108712136242326988063628496766743805132667357995957561581736220446888071777722872832302069878833906436741600253172528471901837417883823026656004739769409395338939126032685570194399150264292670409777005916604798362324546572997831","osProfile":{"computerName":"jianyunt2"},"vmId":"49c7177c-cf8e-418b-9c36-d8450f7b83f6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5t06DxC8ThQ+7cGKsev+wEbFNO5fDwOb4Uaf+OwvmvqI3JD4DHGxqHPilEaSx14YCbgfD4SqMUxeSo6SnU3DQiW2M4iTwDGwqsrwYc1YdjZWBy1GqSg/dKsRPLSvHBZhIBdEwxEJFyfED+TuIw+gEMO5buM/rqu3aa/nsXbr/4yaya8K64dd0t2Gxw4RPvzwMuaS7MJf83IBJqzpDfF/wqdlOpv9UWMbMxhrh9a7COJ28QNPfCaAyG6u5RwLBaMmn6HQFXoyLdEoVaAyMP0xOk6MgyjoYN2ZjxqHzVMnQ4PaRvAt7wA7XuK5XqMrv5PpLqEjS0rkcVbCb3lgxYZKKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e6debb6a-b7c1-4b68-a42d-ee13b9feef7b","name":"release-e6debb6a-b7c1-4b68-a42d-ee13b9feef7b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"97ccfa7e-234f-436d-8629-507cfccd1638","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183459410448759569220577724157476640739515306422745524184579040784936318621578694598155518657153237218518903759086624014457095318809777258618777197612868713273389615985852401869428803691411532807951152571966174068971051826938188476941675244572725634909977326828973041699766935085155847505283763801438642612048815798389669994890725027774587673938437955228501679134785904404","osProfile":{"computerName":"jianyunt2"},"vmId":"4d87d496-2a2f-49e9-bdd3-6ac3661aebb2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzXiyzZduplKOSDPqV7fWuh8S1KLuee8xzygM6dLm4VXXfDmobU/NcNRGleXho/4gsof9Hs5UHi2ECIbSuf5Ybkw3SlVWPROOXIOjrgd0P8b+WN6DJEsvZfb/viksa+OWfkU9YqIqoohlbG/WllBYNHpEabVRmQ0gv02EaJSgC9LT/8WE5GxevksZL/6YcU2XJRuvL2gyRBD8NKDMLjkyImomRasnsrAe2R23++qFsnmaNIsgl4pfg2/r+7Klf3lW90up1HShdThIa5ZDOILUPp/21ia62Lr2asaz+IjgjAdEBH6UTL2bAH+KMqiFUdCDqsxosHmioC7rCNTQR/lIbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ba18c39e-8582-47a7-8c58-824d631dd0f9","name":"release-ba18c39e-8582-47a7-8c58-824d631dd0f9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cd112215-b2ef-4c8f-95e9-4ebab7572edc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187787402654543516300256872742412729316260664529639707605107827581519903688975133661792354492794418474335928300881849754691964963426385878523785947143296589440156637595401879112539363463661955068951075645475444890316139049327942769895833594762223313545277439885658079922785144384056513240550066602260202037994706514889876482478119421056870619994163957547972445549738851343563239989816329136789698475328379673963768165637821428356049424647771529837276667353","osProfile":{"computerName":"jianyunt2"},"vmId":"184e8ae4-d0dc-4881-aad3-bce37851b53e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuC7CBlfe+TB1RrGYdnDenZ662fA/mExuIbH+P95yu64IPsm1OV51FwAB3Tn/kypKzhOGF9m2Q/8U0CeiEb4OG7QtqnDZqwSwJq3KbdioO6CG/rieVuy8ihcKbqbt46VOwX64bYX8kX6XC/60n5ydDpwKbAygzcRGMg3TZXNxBp22WODw6dZ+x0eWZJjunHAYnfuMGcRLgYK0p6/jqjL3sSQsITMbW81uaOniPWv/7kGMmDt60M/yhxWrF6q8wGCimlxRCOySDbwNJT+ve5Z0kR5chPEAQL+XVB3GUZ+RmB0CmzvkObJ2KYWeK2Lwjk+SNUFaiDRse6Ep0D9AUor3hQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0978e052-5284-4212-ba84-7c15a74c8ce1","name":"release-0978e052-5284-4212-ba84-7c15a74c8ce1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"87022052-9d45-4f40-abee-225000058d6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418530581947898778949819014929372780360890669148178125283413222961049811786080049641462113946646136206601788433216786927471167613581718179034976332116439073638599532833783736419667790271752690117776277907974206588131253235974768881825977273407748328453999314566751120987453465952635616035424206848986775762511705953584452363445545271689459198688266948809602786788215784717482755412374697052483466659470735353311844703","osProfile":{"computerName":"jianyunt2"},"vmId":"e3dfd9ea-eba8-4adc-a0fc-7ba1ac7f3c52","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAk5oIK4iz5KhoPAxephadqQ8cD1iHg/u4aqbNAU94SYHIlvGUacdMebScl/x9UMixPVLkoHuFZS7fd9IyOnnu3RkPdS8W5fu+sLVpQpCYTCxyy8DuAVE67ZyLrR6on1GDP0TXzl2+Cdd3ZYQXSLNKMUFAyqconf/Gx9VeHG43jy9fxgfsq5lUNNujZ8kLOtRFUkEPn67nhm6KfXTbktPK701+E0qxI4OG59aaCoIwarlFuy6Tp9XRbFNjtp2GeM+jrFmwT8BZ+yV0VxgMAGqwF/L8DuujqndNs8gLU3zTYsc3Kg37vg7eFjqPoed7eITNhVpspX1gqmMjHpTEf7dUgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1f9535e7-1cda-45b4-9248-560ae89b99cd","name":"release-1f9535e7-1cda-45b4-9248-560ae89b99cd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5d322d68-9197-4095-8064-43cbeca213d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41858503970313020161786427649437846480821988121613356298979140758999363249661211529765728483422007761541858301552138949645495755478316347538940943880981279277314256870154391126394799185581258305430197205180184547011967492232058492160577932886806095403098235524436861483610533616980549981635290985634435205977396979515566827188079478654766473533321760023509368116119811860685558627531453294786899985741894516370389690673975779483742722254676278892173624693821294341938148","osProfile":{"computerName":"jianyunt2"},"vmId":"0e197782-72bd-422e-ac36-4ac20072ae2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnhsgM7ZRRtGsozZV/sWSjr7TEtiIUfrGPtDsHNb07+loBak47o4m11HfU/goTEEbM6JCmLR+XXeEL68QWkUSMoS7S7S25viA1B3vmhhHwZfyL19GsfonDtZKRPj4szL7RsyvtscwU84+iFu+kJTVfGMz8A+/k9sGfw6WYO1Slv1vw+fP+l2R1bmU72aJxTMWzPYta38i77GjLGbwa3SFoAqDRMHbhsQyRH1QkJc53E1SgV0BtALNxKUrAFRUHwaHW0HUjXuy3Yc3b5Jz8BOckxIBwlNKiRwNUVtjbrWtmPgyHkhxSjzoDZViILPj8sMykbwX1vKnqgWlQSDUEleCkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c211866c-1966-411f-a538-e44a809f3477","name":"release-c211866c-1966-411f-a538-e44a809f3477","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3ed5fa03-83f5-46c4-8235-6ae5891e5d3e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189949964587657021627664878394459412774261512120090044627282552545244138260553277264051644159416851882133227724941764202294305140064481963863074334532574649382735086526813616047426362448615283758405994920131082936679177404148978449607227654430422615635094821063549294482763161781362438165450684426304737328652177082946979912697892303175891209233613696238104682174625738603562212355","osProfile":{"computerName":"jianyunt2"},"vmId":"08583a01-31c7-433b-be1e-a18f53acdc55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu9WCFLlaq5XoJoI9apGQIceuKugG1cCzpVfObgLrguMCpOUNkJcyNMo6OXeN2GrB2saFPrnHmAPFQ6d2U/9xNpB6rA07UV5dQybA5+AaZ3eRByZsp9xgpOeYetJDLrfiB7x2g/XFm9Nqz9yqDOI3gqBG7BYtL+8IKD+h3ST/RbviidiZIQGT1Et2K22F+aokGPyYbemfDl7XTppTYsAVMeZb83Y4AkgeIETEwtjau7ow8JM3DgSoc9D0zBYBWVm/j+u2iPxWolvUp+UHnbNLyRTuzfJG5Jaw+6clIwCPrxCu3d1vBtAzTEeisy8ZOrZx8HdlWI/DKXmQsuptAAe6sQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4baf5cbe-d2c2-4236-9ae1-91d4d96b28cb","name":"release-4baf5cbe-d2c2-4236-9ae1-91d4d96b28cb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"88a99a1f-8829-414b-958b-311f6b3575e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810192892541830937895679292049186428259998985975556042551807116392557376231704245254166837685017712208744822383766506191469391947764298377326328217552439801775158549503659957295716226745096171372035593459724011889318816194434535582730693097168920965334735835573954987425219571074428297865429486231544919826411190470221499024025397651681926229293652189567412512550321696524473692689449108321","osProfile":{"computerName":"jianyunt2"},"vmId":"c58a8ede-4bc6-49ce-b811-2305d65ad495","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxVIVi/tqGIdPtPCIFBiKDSofWv1QubHIsIIrlzrb1pW62LkNpeg+FxenUTRPTsNjvwna1Db5qPrdkCqjhuIPNuP6kaN93QYTlcbj2eyqG83pzhQeFDiuIU9IcrCqxsF2M4MyfVcwBXTooYuebRUsXyhxxmfme5B7QkpnR0/2cVgP+8y7ezjubLHs368XZDlyipxa6eLqznwVti5qB6LK/WwwltG0mVXUKDYm0GXI4od5v5Sgu0whqWErXUClvua6snEFs4o60KJseyJgiCAJ0ja6SdLmNDgsf/K260p4ma7nPJhYNXO4aP8JXI8+Hh3MWj9wSj2hiaHwfuxnhnYriQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1c6b574a-2246-4065-9a37-63d8ca07fe86","name":"release-1c6b574a-2246-4065-9a37-63d8ca07fe86","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a627e1bc-92e6-4b4c-8dec-0f9c2aefc19d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418434871337741591835136879166912610646098829718480912127057468570043676895176724126696197247583938564087951508117553004365798814063133209722891638188866338873265410327891152237464438155696319559802649353099875613238866253281878543394670471126739635880516853102516014583637923344862844973623171750480096063594875764432374493152468445833706089021431891255024114449315832540426980104408317644343922593324054006603446067619206","osProfile":{"computerName":"jianyunt2"},"vmId":"a7694466-d350-4a0f-9cd8-868ce6a5f0fa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvkdijP59kgE64RCzkTRIwduut2RPckRGUdO+3GkHfeFchakNyeDaJYmRhEl0/STGBz8ky8J/lGyQevRwUKKNmG8VhbuX/ki2drNxGd84UwgFSJhyHmazoGQ8M7+C/FhUAV7DMMvg5+83xpZUNDBvjfibWlKiKqAc/8E4gTCytOA1k2i+MI/XXvWgXya6QOWBIXnK65pq/fvNp0PkGQggryhmrsRNi2Yn8P9MyEoVzVZyNUI9+Z2OphIGEjGqpgvie96iPQ+QNydHHK/LjhW3vvVaN+N1OYcgDojWRBhcViTs8fcNRvU2xgFSTqI0/hoYkqNqczkIWG92Mj6B8HkAqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-da3515fc-ba34-423e-b1e8-8e06e942c7de","name":"release-da3515fc-ba34-423e-b1e8-8e06e942c7de","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d411fabd-306c-43d3-9531-504c2f88c34e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418790040233170691615083017896650135787366711479017327612558644173634353664472649623595086285318849243420451741772486150098422115406651899699136261915129766129298553465291355451713016928113641317745953403552591331772754519236931445289148699437037771355919118296634648332557197780059994433827123570642434627387734119748526064760924244508985696292134105382967256146754442022134881914604250644227941197912487941318","osProfile":{"computerName":"jianyunt2"},"vmId":"c7a99282-31fa-4768-9145-d4a8076126e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8ZPutnnBpkZRhoKqG8azG10n8qjrMUAMfi+KrEaLyloIthzWJuAGgBal93uvnBSZgU4xdopj22pVXRJF9jCm/LcCn5TsFeVe9XOfqUanJwof55EdMtAxz4iot2wKD0vxPrqzspOdSXsxA6zUKxwct97oTo74ak0iXJPWK/nfTXr2X4IGizZTBJJLu10nbdpCMlxSDqOlet8+56Qd4rI8CQzvIimsGfgMEmQRl+7oxuvVXzfwJfIPmqZEHE5CISqOi3q9jFAHQRWtKG1XXPOEEw1embnvyw7pk7rKuiTru8SFT6rypgNDQLeu1uGv+3zjWQg0qG16ThCRXlE6pCjqMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-82b864c7-a35c-425b-8b5e-57ec1fdb4016","name":"release-82b864c7-a35c-425b-8b5e-57ec1fdb4016","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"91cc0f38-bc1e-4ad7-961e-cb234662fe71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418295655145205560534238290871214434903061919120583899179598094044858213399766540503668889602125454656298474970979445937667211083694548025157717789524194935286670418172258265310469365931728303163136679746692974730554124982784899837606002488326301959586587115618932845312624519970423315614758095215318687582585082507536503016408198653258901272941852891866946075725014817087463326333736026394055501897812631929131402483","osProfile":{"computerName":"jianyunt2"},"vmId":"614fcbe4-947f-49b5-b3e2-49e64cfd2ab1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4qvtpA9oFfUezmG+gyzVfW024rMdU+HAJe0WatOgbZYCixCf0qDI1zluXHqlLOAKm4HsGBAmpeHe2R5cnnSwC6cknEI0NmbEPGXTXRJv3+Z73AVWNkPpFVqdC2Q5OFaZ+b+rlA7zmnKP73iGJFc70FboCl3byUbmQrswb9WQsBdmxoghtvseVaTcKhXIRle10TsJ6N3ySwBvK0QPAPwaPp9Z9rsG3+hZSqxA7WZNeZPmuam7we9S0ttr3bV+rpSHuF+qCR1QKoQG60A90+H36hl3ggbzwMYr2V1AJz6mxio9SVSk9V8NDjTeAYTcRHRX6AAWaDmwkQsX+6C0HZLyHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7fe41663-ff18-4503-8c6e-548642806d44","name":"release-7fe41663-ff18-4503-8c6e-548642806d44","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"db2dabe4-ecda-4047-8289-1da7fa3bfe83","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189289588365181385213488627420328399365688113351148466685392627249838649519325316619680038985650759866536019467277838554452329511419420650693582569230715077286730122198154132315031180818857429845904709678845158343716334594598358698698793695625427173042618843196947778223882435558401400084446894265653373673624140725342570736367262296564052694062441198177361714942793528471343526029569591316023578277019683581598435813712674004222118292535","osProfile":{"computerName":"jianyunt2"},"vmId":"b83f93e8-ccdd-474c-a39c-aaa5ddbf9f56","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1D+17ciMj/Dah6ds6C24nXPu81AwurfsbrspG9CUJBqa7A+XVs5m8T1lJx/77aM+V2+48SBHf/KQOI6vD+zUGuxk/xzHxGpgY19wog1IaukRlIj7n68vgjfe7DrYjXeUDKFS5j+GvuLWY0zdDdqvAckjYj0oZ2Izsk180oqYZjd88Wf/+HDUysPK8sE0rw18oBCOJYuAfu2Nw8lYa3JQ2FmiPNgq7nRvYYrriiNzMxC2jRLuf39XWzHhmMd9A1snrbmNnEj9+iBNFp2bmB5aMu0rivBag9B9vfIPR4nVP2k+SMLVPconsyH221fd4ZQFZzFPBgC9iOZkZAwd/WUSjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f4cca2a4-64f0-4204-8593-1d39467703f2","name":"release-f4cca2a4-64f0-4204-8593-1d39467703f2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"74b37b64-21b1-401b-80e7-cf88e70474b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186680410437641698961178825640157264361446271668918261671972171104689306244578147681724512866463841201671596772625597961457331247537066437510465794566139763198033814661432969382880176193121618794828159871189617997480708548132360419261792873673115529952719988352556577472041977427802468158026115552989134112574964415927028801927884543729000105188784837578661136011762642539439417808061707170","osProfile":{"computerName":"jianyunt2"},"vmId":"b0023e93-866f-4393-bc4b-4f736c1978a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6UXafbNAS5Xj6R1YkNggkv1bmsMJphNQdIxZSdCBlLJSOHAFuhS0MGRzwuhb0V9b4bdwMuWZXylDlbDhpkpFXMYq3LqheSXJIG7sunDRooDzrytVME5zWEgQSEF7JS8Q3tfVoGnSkEDC+OfVdSdGLmlwCLUshbIvvl00DT7pyF11DeJL81eevU/V+s6qUh7OIhJHe3wYT4xGkjjkLSA/cwxyHev8+mpTdT0le1CaO+mJArWFgHZOZ6wrk+dsoDrMRCn+FwLkeWUS1qRUOi9B/dl0oF7Dfpj9CaOCiSKgOyi1/Xv4ADTKMykkB3OxP6XBdtMPLvMfbQdoJiCHuqbKxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ecc25df4-e974-43cf-b347-adba7e4ea288","name":"release-ecc25df4-e974-43cf-b347-adba7e4ea288","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a7ff33f3-e0d7-4081-8785-8b887199c496","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418190074334447581258225387427483257825320755790176079165688283661988532484281959746993591887286691529708626853516789183279689789486899557791155452737334789728777513937023083933464259789472941182811317348544922967616480784245462934223196607913235750736806498064183764332116727618202714560896526043366156567864607106181909358589085541779364970070203201713157347832423232028003970795501276741626410387696768286337180","osProfile":{"computerName":"jianyunt2"},"vmId":"ae651623-a95c-457e-a263-52510b7be51a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8Ze3eAKu7o3YTMS6ckGODbdyVVjWqi8RJYs26+ya0Doe5VTpPI+hzQIOoiKDmsDw55hONNNDpKd5fAYEYd7GmFlRJuHYUM9SorquXdeWsAlmGfe3zXUngFBv3Vabyb9cB73siFIf0eru0zZsoH2MdDdDZAYQGlZYGptFTmtGQdDfd+Ln1NygiO2sa8zSPxl8iIc1oYLJ3kKFkWCSZ1kfPZZLqfv0R7j0KbGVUtK8iOH+6rY+CpYDw76A/q9eSxLj5SL3l9XS+ovisX9ZxB5ojE5rIdBkUs7I0Nr138Qh9mxs9epqQHM/CkcLlpbNMqQdVFLKcLzSGCeMF4vaoPo/6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-92e892ed-9b53-4c1c-a86c-5a2c30c890b3","name":"release-92e892ed-9b53-4c1c-a86c-5a2c30c890b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9babcb89-a226-454b-b212-541727eb8b7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183509904920288314178377812435765974015579794230956400278221433303905945227152755881577799750466892987502957809124155737897018458531636716759646810168875224634355784526373446676763244012628957371628752568918377686789216922647012857097037605768311930953427630909061802604120509365365786695101570476887122126027825531129913476084293819621487753451167743210661949298057431452517695540588974192429817561453464370168036066051326946747035413196741091508858","osProfile":{"computerName":"jianyunt2"},"vmId":"5a3d1e17-a281-48f7-a879-4fb8de8c3ffa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp75L1pYoUFIv+EXExRr8ZovoHv3lLVasF9HEBbV65NjaRVahu6DV+fHxpCCNBgCYmbhoHdHwZ6I1SXYBd19JMBVxVy9wdUncTiNpfSoHo1shoSBGbIdWYqfw2g+ANT54hmm6HPEzDY94jGgjYo5+KNJ1PpYohx0+HTJ8icNeYYwMh2fmmxez4P/JprlvbFjitgsQOqKTtgZCnCRbXHwJy5f9TNoOmld2g4KdhgiGqkDDjLBF4Dnr2OdmkOWxngq3Xh1jTwXV6TqsgJv6YXZyQu59QenmYHUJhMjrKNDXA6tQ9LzdgKggkUq69nRh1pn2mg+WwGkqBLwc4c8lx1z6uQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cea97c9f-20c9-44b0-bc94-c894a756f8b3","name":"release-cea97c9f-20c9-44b0-bc94-c894a756f8b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"705a5439-f18f-41f1-8d97-f79c2eda66aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181861784830218262946561646169428932506057895129635302114212148200618447716982465347151484746965128490977516444004853285758569628692077314617247294140635186580796644967373794745718171510197591722718557676179126856820876400265495209299126376951522370498125541516244331836472411446517565173671653857449414493072550920068963281368077069198896580244836851961703101550293254337219204972193758244251066515","osProfile":{"computerName":"jianyunt2"},"vmId":"2fd39206-ede5-4cd7-b4c0-1366ea85022f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtOhywOWZtw9hmu7x9Di6/L88fXEnidFyu9pNDYSPtsiEd+fOp5WbnuOc/trVNjv/MBrnPZw4uu0Mdae+4GhbumkuJlSZDjS/m+n2ZEWT2r/aOK01CJviaeYl4b11ulgbbmvf2YTT33gw74uro3aeeXJ5ixWIcXPNihR08qrkauztQlHsWRZJ/SFgyucyadBjcWHvk6e8J88MEzy84vwLet8gx38WfUaAmXI5wYZG3gzUX1WP85DI+VLEripJDdz3oY0EB3WKGyf4toi0liFwiN0ABt8z7euMNQmPES1QeiMoihA0G8p9ZtZqEobmUKslnHwEnGWr4NsK0HMjddpGNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-209582bd-7d9f-4edf-8899-bfca0cc7ece8","name":"release-209582bd-7d9f-4edf-8899-bfca0cc7ece8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e3d7b39b-1442-4436-9484-549a4ea1269c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41891102844614074467258863555913496891833188073365505919885449746733063294581674246503693676967586935207123195570825013365744964348837856366954887834568366680995654311269755746528471280632484879898661979934577267933426985848148384325523039795662473857221856939076910742348695727496632114094212552541521572725538765003935025602068408733038969172551574446083163719034271626666210687185031225267999615400088086217","osProfile":{"computerName":"jianyunt2"},"vmId":"e625aae6-0438-4519-a8a0-9420160fe39a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuFGFd7N/2noHwz8kCmz7M2rofWGi6XvIREZChWWUfHaobaSnGm++YCRzJ6fvJVBi1vDjRTnIdXQ83l6I1/aihxiwAj+/78gBSeJB3/oyejx/fgQX9YchEbJi3/l0oGeAPKk3Ixfe1z1d7IMFp9Md8o2KbAn42ug/0hB6Pth9GE47J07hbSxonu0DjIYCjirO0SWl+RzGi6lE/xfRNyZSauPAsqfoc+L8Eo0Lk6dUMkgyCvVXhW7ty904gPysVlliaRmpEaDPjXcWHEyoGe53u1lhSfPe7xhAt8o6c6Fqqv1zAKUyjMOhuTl4Y3Uwi7baZdKBfZf+AzS2fQq8Vn0xtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4d2dd47e-2718-496e-95e2-383deac0be7b","name":"release-4d2dd47e-2718-496e-95e2-383deac0be7b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"36932798-9756-44ce-b086-9e91e2222a02","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188944433345763263663640421528132897105702382515865457288759725560121762407553983092364511774924039814504156782128616843146837634030267455557460765885176304263175457673873085349417138455632818858268961728367619164531592049360673135354525716855046686770172950478542966440965956307177351904499560256103144718851294307290284976884759616486343699719817071930","osProfile":{"computerName":"jianyunt2"},"vmId":"1e71b3fd-c63e-47e6-a72f-0b2342159903","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1JVr/ZIR4FbWH/ldMv/g5u40Mz6y3Xd1so7AwBDx88KT0fBcYyfV4iJmJS1YN6IOC0z5z+BFxj8UE2S1iHAT4dpeagQlqTdC3v1XtSQnvv0JWgQQmnGLubicyRQfIe+zWaANIt7m0McU9X2ByPKQAMK7nhkZPdCuK8tHtHi9TikFqIQdCh9go7X9yW2KlyzTx6GS4sVNzjzQgKAcKEgPZgPXCEr90HPRHG44dhfjmbPLeprHa0+Qmth8BRlmVG80tCcJZ8zeFrfq6ssnmMxJzTVtSO4D3YcNrQnUhrIldL+IC4cwF4i/h9c5Hp2E6BLHiwsb71PdId9Q8i9QmaVyPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e550b741-e59c-4665-95cd-8f6bec5b471a","name":"release-e550b741-e59c-4665-95cd-8f6bec5b471a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"708cbcc0-b968-4a6d-ac8b-e99501cd31c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418559129871567662886477308190219836754136440692357559734671144438007408055286706997917968286909648530897260938273943974804379761054520451753403613447828932783432681469686225277888056955096984740335987609910807910730071996004995296535114867673868745327546584299268987237932720894087874979640813344472378347102840928496906175965586936489194231067416388650212196750482749898733584335737471","osProfile":{"computerName":"jianyunt2"},"vmId":"b6b3d173-2d18-46bf-8b06-498a5932a2cb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsrifNbgQ0NUS0mhE0zUhsDSNwxkTTD1Nqwml5nIHolH3GVxFXJAP3zIij7MIKQKZk2mLUUybk52vI8D1e1JgRDyQPGoljwsIk5EIk7qon/23D8bpjW8TUG5q8/daXBUo/Gk0eOFswgUFFrb4fCs+fLxwneRDWTdjPSIY+/Iez1Udio+fbtRXWQlXpuZrlqEy+MZG8+weXdkDTA8egvtH2SZAjHlToAOCiBsym2njTRKzUOJFrBQBakmEX0+oGN2hwDwJybVl8J4IgQC54KhBoTxDNXw8HO0Lw8qEVWDb5ek6ynsEeBHuen3RG/Dt2ykzQcPCqj6pKLWWczaMyfaizwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7eae6320-cbc4-40a1-aa57-0ea2477af677","name":"release-7eae6320-cbc4-40a1-aa57-0ea2477af677","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"62829173-9c68-44b2-88b4-3e6175154143","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184805676390236798816312016929724310554167938850188344645248584373774573017847905959766265075989970824283342527236704395211258895424897635032462948428333933304629652424633741187425543995931776306467012527959934183741924357997603827410116612190447953599039605540579910571941297738193758635102304583112994223552517045834569722549900376025058436698151022122781961496179612681059087169968299357196070401989929238573492602311","osProfile":{"computerName":"jianyunt2"},"vmId":"5862edfb-1f08-4b2a-8621-3e49d5b3b4aa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA07gGAbvKjsrkb3Rm/307yONjhFE204n90ycZdJ29CjT7DdeQtSo+hyNwH8zM3mzasMZKQLiaIfo9xYWsMn4TpjNRzGeJx+Yu6jakKKym3hsilJCnRZw3naI59ZTAg36Uq/x4o63tF4unH25qd5fOXUM+0C9JPcq6jFQz11PIljI97li9cwcRVdMgdVBJ7QupHtX02tXnQLB39ucltQP8SO8Pdl7L1ut7QbNzh+cRQYi95Z1MLROmvpc75DBBACZ6fn8f5lCHd/qf+WIdpyRUxa0dwmwISy3CwwqpUTVlUpG8WEbg3xY4x9oZj1TjZhxp65zan4sTax6p8Y4fgXzd/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-180fb2c8-8b42-4856-b78b-e91d26eeab27","name":"release-180fb2c8-8b42-4856-b78b-e91d26eeab27","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3f73e74b-d8e8-49aa-bab0-4d4406bb5802","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183249726531141319695480999892249574256535055301865874388260782651165009127342226247696538101169339194161528395820285759762615566832746412032631257784511543802216713620496910787613963724165805237866148666605014662489794466079379736799672603965675778618995453803213641489845954875475822119844318580851827322875587116206676761125047988767506576752792682269643431285384239383747801959165524564901577042905511737650494488803134491738035","osProfile":{"computerName":"jianyunt2"},"vmId":"7a6089eb-5b7b-4bc7-9c4a-9ac6646a4a17","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2RmWMRoShdCydRNWN79KX9ZU7idVvrAwnpMKBaGjnBRNRa6ssaGDwrLmtoRcom2lCKeVzRXDF8Va0Adxlcg54RYrbYTxlogUvPlxjQRC+ZXlvpUXITGmKoN4HxDQUmisxRshlnAtMNHuHjMs6jGAGYtDE61g1uN/J60Hvyv+dfg7ukEY/izNsw5P+qPduDXYHq0GRWdc0XCec8QyeFPeV50zxppGtNyDXfK+Z3yTaefcrL+k8nnquXe5SzMRAMGj6YYOvSLdOV3wWmaNHyU8MID+7RWOkE21AguYX+GNWkj2LFdIrXDD4sL2pHmNmlKxg0ls/ZT9c9OL13NKdQcj0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c3e9151b-bd75-4987-867f-52f5dd4aa96c","name":"release-c3e9151b-bd75-4987-867f-52f5dd4aa96c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e517d182-d941-41eb-a35b-6f9e76bf1710","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418788412274564183112101610625813018189950004366262060988041441836199472220244583675334017415713153210427881599965739114160795838901335584994162928163509211522133980427181482568852162516857849442265092220826078043951224494220831289623646069966965095538348170148273327853844198598778348376444854104359425527324154243946133346929256351538310341316681968729494778763367502573403723514549732490149030923607545533564859392688002","osProfile":{"computerName":"jianyunt2"},"vmId":"811ab8b8-f040-4512-9440-fd6781fd300c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyZde1+g43GYONh9ZX2Ooa+sbnBRS7+I1gigQevoQiyDv0EnAesJ6a7TTqD3+rkeSBwyzPTrzjWtNxjejZ/aSofRIzvPDpKxue+iVHc5OZRXq1eRbZvhT1cEBkR32S4lnuLB9Sm88CSfAvA3MdJ9R9h8ZAMYy2re4/Jq9XTqaaVtYOe+IV1Ju4XtPHOgERnafBnSKyc788LlanahtfBLrvapVWIL5jo0X6MHH4XTqZDbO9aDQ0bOb42P8JPyXS25AhMB8A4K75+ofCHreKTZVHdc7THxutCVudXyVSwGsRZhN+yL+5x2VT6NYDf1H6j0k8jOnFQDFnqo7kfS/EfZrHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e5c65257-18ac-45b6-ba6c-6fc20eabb528","name":"release-e5c65257-18ac-45b6-ba6c-6fc20eabb528","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2eaaf615-c544-4399-8d68-0ecdd4c7b635","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41844048858261314446973456475829287613575921539851830937025362924478779190967164812719404522493642658340622271992071184595154710138563223676254298349331817948226418768659571837923821220980690797042029220541730284266452883609536721997125420623957023814743997261549082313141985159943296241272092212654581866834828683614339712821760936284079076554962866821387073753657384576788619","osProfile":{"computerName":"jianyunt2"},"vmId":"23aec21c-27b9-4019-971a-3fc6c38645f1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvuO1pOQHy3IWQ6yYYV2fLCClbh6s+jCQWdjb1tA6fEdIPcFPKbHAvp6iFNaYfEig1UCEeaEtKRFpzmZS6mbk/V2DI0JnW5lAQWh/MW9o7yxPbVAsxM/ANc0nYsLAsseqkQ01lfXbGK7IyNsGRV22lq3vQO4qKpFIbIeiDVvwe7eou2vD87RRR5t016x/ofSRYv+0tgg12b2nLv3hw4f1z6pDlJdoZHQ1nQ5rRGNyPP+N+Tkk3b7kbxYHZZlb2gH0KCeoU1PfHhRbzkW0tlvZdNNRVtbkpDrso4lZA9qPi+KOPG3IsW9Lh6Yz2ZXB17+htgiAkJeVuZIcevo5CmGOWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9c6a5b8e-c00d-45ba-beac-674a48b43598","name":"release-9c6a5b8e-c00d-45ba-beac-674a48b43598","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ed280280-ccbe-4c90-ab32-8ff3cd6c3d66","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41860606896852441857336592826744503373063782797899796536912304092095936616129644295652437887689322934858582530766596476989114095695510946293293423801465198853123154496976343213938505926629784454674129393647382561921502577327892547811395260256580734007162692107899712474888020123286984832330639670706845161052336428874355668289092299783667783008282650381933958595388751363690025403741","osProfile":{"computerName":"jianyunt2"},"vmId":"9cd0a090-eed0-474d-b01f-3ab09e6af474","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwGH3Uur74RQi77nwjMd/T24P45S9xDgpz8n97ksgaMir+xdjbbblmH27l0LJJ0tT0xcJBW7LrJQFEvnX6uy5WdUjyLwXFgnc9PhDi5w0Sud+NP7UYqJYNckTlK/uqzbwNjtwuuX1eoIL5ldXUPwTpPWC9MazQbhjB3Qj8fSu4SYEYPHEqVc7Jxe1EFZW3SXmZjM+L0FUyxW8BpgwDlXvUwf1juzkLw55PhpErnAO1vCuxBz89DgXsE4+iaKteDI03/e5IoV9x3hKfbHOq0o4jbWelCchx3S5qRV8mi5VSSA+lrfjUyNKzReNVWdoWfwp9rQQDwptiapO6pFZ5gZLsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-84585a77-07a0-49b0-a44f-f6c3097e8c55","name":"release-84585a77-07a0-49b0-a44f-f6c3097e8c55","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e890fac-a6d4-4e07-b58b-b56becbc6bab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182399939871074290856939424753757297894476813491941708810389203643725068609666968551567218417550486549988553986469088270135471186771649021206705235999990279091306479892870131408944653469695731111799516509432857462872131082427251788110176743092119290079559653621681310959828422179548210964377301470988760882293679813219300585758456758448973084261495094865820","osProfile":{"computerName":"jianyunt2"},"vmId":"45a7587a-90e0-42bf-8679-bc747e757461","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6ttv9MTR9zK5kx4thK658vkIxCiFfe9YkUpx9L7IAJVlLC4c2J+GbqSqD2IDxn9FocfB48w9uCp+oRvBgslH2sg9eein49Bwwwdk3pyj1BDooSdu9hz9knndfkr/UE35aUsRNOAMhTpbv9U3yooabrbqR1vcTtEYX7or0XaquBW0OrNgQ+dCmRy/H2enb2drodoFiAYntjDts/5ny92hT3xXhXmAH8Yb9+2LHM/kr60AbYD0THZxyfmelGayN5txrZPFFUUFdpw7BSjNP5o22ladUF/2p20SCW2pJIBXV9v+GmkocbsLN/V9pBZht8zuCPiLNKSEoxkucKC72piKMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4f6f4bf9-b8f0-4581-90e6-4e4e0dc83725","name":"release-4f6f4bf9-b8f0-4581-90e6-4e4e0dc83725","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"44c7130d-9c5e-47ef-9b0f-8eabd6238370","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189838226628036157718951695684576167206405929365841882424246361536596142942205247507457878476882071375004754939801790796665685353593332213803884851867620650363933046805286846219417916946034832042414998208297947642134498407902366175499114052571915549152259071461143795131636443102063804306624156162725218282127904428378098399731319274897775902712182407267505350532224612437267272464149875379918406171535574125694266383694838111254","osProfile":{"computerName":"jianyunt2"},"vmId":"61edab82-6638-4e37-8b53-9f31b8a4bf64","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtvD9t3ub6uSFkuctsFSfZ0dp6CEpmiC9WUD1fN0sjRZLdY4aaCpUvVMCrwC/OYDEXsRef4V1v/Y0iDXQAO62GqC1U85vvjC2USW3BniU/gwwJrrCIOYSOCa/2t/FLldZi1fHJcoRaF2xW96krKo9LqFG8GZWf0LICoYEXEJHNTFONb50QjHbUGMUu1msvJZBoSi1h7bKnu9CeH0M+ozbMv/SvYleFTR1CyJcrxlNJQbGnO7jd8MPX4d+W8E1ahJw5PjS50vWKzNyK3rreGagFZPmY18HKHvRF2XLt6jNl/W00gAiPagX+ZQA0tsRWCbFG6nA/Eju2JzHC7urGX4JSQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNtc5swDP4vuWWfSkOB8NK73k4Gu3WatJiEdck3Qhzw0kAOSJq21%2f32Cdrs%2bgP6aZzPevxIlmRJvPYKeWzGqtjUvcvX3gOdzuKp0bvs5U2zqy8Hg21SJJncyqI5T172lTxPy%2b2g3i%2frtFK7RpVFPVgOpeVYbqqtbS%2fRLNtJNdexPE0aay9105W5WuqDXVUe1EpW9WCi0qqsy3VzfvO8rNTKL7e7fSMxUpqrQtY%2fkp3SDmiJzq8M%2fcLTdFfTDW1XyYOST9%2b%2f1Ru1m5UbWVz1h6TvkL5hNO0RZd%2bEdjdIxAPEf5hc%2fIbxxb6o5vHkmcL71zdRGfQNM5qhEZqbs8hvka4j5tOfHyyn94js4dC0kWdhawPZNc3nQgChL27oEREe%2bgabxOiOkYMNI8tnPpDxJr0P9osRshmc4hlnmFyVFJn8SLXLfas%2bZ97ZbJPjv8cw1kInaNcw6J31KHQ9ojGE%2f02fjpDdwSSRL6Y9HCn%2bNX3iaq5sGNMthHYuQhN7Ecc%2b7rieGY5NCyzUoHAohSOEDsKs66VnMhwlhgSJxA0iXPNO4xid5uBForPnG%2fgFIICWkAOOncHceIw7sWmgA8yA46zAIkaKnaLakVh7SNxYQJ5o5nMB3KWdX2Qv0DMK5z0TRHWnwQvkKO7xjKuMgzUK63Rn9X5nzbsczeMtwByCjKB0IQAgGAGWGSwhxuoSDj6KTLCHEvNeAAWlIPdBIRs%2fUn%2bqQ4Yk4Y8xMBoIiO3M4NfgZz5gCUnrNQKaMyD46lvCqYCS%2bwIPaCHK23xyqsbT50xNdwqANWqr77hYezdcYO1KjNa6Bp9CSdAz%2bGJkwd3X%2fjtvb38B"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '277841' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:39 GMT + - Tue, 15 Sep 2020 00:30:17 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1093,9 +2259,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 3673232a-dee5-4fde-ada8-abd2e83cf2e7 - - b8d905a2-6cdd-4fb8-aa15-7ae5afe97d61 status: code: 200 message: OK @@ -1103,36 +2266,41 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNtc5swDP4vuWWfSkOB8NK73k4Gu3WatJiEdck3Qhzw0kAOSJq21%2F32Cdrs%2BgP6aZzPevxIlmRJvPYKeWzGqtjUvcvX3gOdzuKp0bvs5U2zqy8Hg21SJJncyqI5T172lTxPy%2B2g3i%2FrtFK7RpVFPVgOpeVYbqqtbS%2FRLNtJNdexPE0aay9105W5WuqDXVUe1EpW9WCi0qqsy3VzfvO8rNTKL7e7fSMxUpqrQtY%2Fkp3SDmiJzq8M%2FcLTdFfTDW1XyYOST9%2B%2F1Ru1m5UbWVz1h6TvkL5hNO0RZd%2BEdjdIxAPEf5hc%2FIbxxb6o5vHkmcL71zdRGfQNM5qhEZqbs8hvka4j5tOfHyyn94js4dC0kWdhawPZNc3nQgChL27oEREe%2BgabxOiOkYMNI8tnPpDxJr0P9osRshmc4hlnmFyVFJn8SLXLfas%2BZ97ZbJPjv8cw1kInaNcw6J31KHQ9ojGE%2F02fjpDdwSSRL6Y9HCn%2BNX3iaq5sGNMthHYuQhN7Ecc%2B7rieGY5NCyzUoHAohSOEDsKs66VnMhwlhgSJxA0iXPNO4xid5uBForPnG%2FgFIICWkAOOncHceIw7sWmgA8yA46zAIkaKnaLakVh7SNxYQJ5o5nMB3KWdX2Qv0DMK5z0TRHWnwQvkKO7xjKuMgzUK63Rn9X5nzbsczeMtwByCjKB0IQAgGAGWGSwhxuoSDj6KTLCHEvNeAAWlIPdBIRs%2FUn%2BqQ4Yk4Y8xMBoIiO3M4NfgZz5gCUnrNQKaMyD46lvCqYCS%2BwIPaCHK23xyqsbT50xNdwqANWqr77hYezdcYO1KjNa6Bp9CSdAz%2BGJkwd3X%2Fjtvb38B + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000038","name":"ukspumuks000038","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"22222113-bc1f-4278-af53-b5b22a1db14f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"827d8f73-3133-4670-8ba0-b678d7a190da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy23RYKTHtBIiWJd35qlYg6gw/Dl1sAYNpK98ut51KoRlvDyuOJ8eJU6MGAp2+q/UAH2vdfBzxMgD2Ax5ySxRr1s9TFdMuELoyQd5GqasKFfu+mVOj9Awaqk+Bb4jrpHTpSmzJFwfJdPxvGcT6O/dqIhpGJC/5jJuT/TH882A1Fb8XWXFFjl02Fn3nFphm7ozteT49HuI3fCsEUJIp0JpKD/ElNEc3I8SnodZk9lbYWrcUks8E/p/wQntXCJnpmVf9wfndGLlgOonluJX/B0yvQ+/0tH+l2ff3gTMUoV7d30wewDOzzJcmG01dCDVY3oQhymS+EsVLKzCCjGXkigctQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002O","name":"nepumne2r00002O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9a1772ec-0e18-4a74-a49b-b9e9540de221","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"faa7083e-d234-43f2-98c6-b49f320390ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuqbS+LugBfct6RghnS02E5py1g8VqBMTquD+ctHbuhv5z1Lp9zNPVOqU68miMPaZwIrVH8h2Ea3hOYQzWEAlTyykaPsoEO8sUD4+vAVRl7ReRgVMi5WdTwxYONTF+sHM4CNwEOUPMiN9wqyPPRIiE6BzIXNdV1Lx9Dh6ygnF8IKMRDmpCoDb8LM+lKt+LLSgFq0VdFfHSC5+cVYB+/iuiHmLEOjn9yI9RaO5ui/rV+d9kJh4A+8naCPdjM7ifBBcoNuiUklJOoom9nJHJUXBxqPAH9FcpBkrViQCHX7FnMj+8KGDZHQOSKXUDQ02/3gpTplrcQHvq1c4jsOivQvdKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002V","name":"nepumne2r00002V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dbb552da-365f-455a-ba81-9bac7bf38175","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0417a1f7-2dbd-4043-83da-320f4342e1df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzV3/L/CeC3MboRK9ftK6SMgOokngQQsZdu8YUpVHp6vbJHwtVv8hfo78LQC6kUPfRD5K0lMFwptyPGThga9eGui2yZ0EhH+s7pMrfV73lOsV6Q1JkPiXPhV2zLQ+ebuAr79xoO+tg4EOtWy7dWvATg0q9bivBvMeZiCFFA2gz+7vU4q5+xoRCB4XHbF9fVagJknwXBDKdSaR8oOTARJqT9akTy8QyI67qSYhSQ5nDaIhXZjGy/BMdTQ0VJdob5gPGEWN3Aw9WxwXtCxHljZTVDcsNe+VehaHkpWmdw/5RMrtM6KZzRfTs/A+2M//LgmO7fux1z+yqke0h04B07OxTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000L","name":"ukspumuks00000L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e045b3b4-3355-4f36-8825-499937e53797","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fae7bb5a-99b0-4422-80c3-30993f8a2fab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwh2df7rqhB8yBfF4r18UyUntmiXpvB5nzMu06PCyzmrbK5Cq0KObwzaSte5rMTwfxWUMKq807+YG0MSsOW30bcjEgqxwPzF3jIxWAsWDPMnZupRULAS+bZjl0smnQFsaL7LbhMTZmkMiovGqRIVjK4OdpGjVLSb1V1kU+9saRur/VA8Ft7EmkIE2JqlQ46C3WA/4l+4IISBvqv1U2c30I+sITJ9Raj4g+c6vwHwlwIr46vuufEzB7NqxVpdLHBXx5Rq6ojaKm6hZgfro/qfeIoe34JqXdg6BKsTOMI5iEf7XwQvFgccAp+nypS4uNTzTy641OKIhT09wy4rkteWaCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001M","name":"ukspumuks00001M","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7880bdd5-bf54-4ee0-8387-b20e05b6bb36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1015ab14-2b67-44f6-baca-4883861c5063","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr5Lj0y49Vu5iD6uGo0JOFerQy2oLFKSTr3rfWU4+Js0PruDAivZ12yN40eK2PFjVBDL0YMcr2S54iSP+wtvdt9nm70BcZOcFrRaeGeXqsrxuQAoviGBbY4pizZV4svFh+bNNNSDrsPNVb982uuTXrlQtB4t2l/vf1s1VhVvTrbzNX/hoWuTD5PYMvYZcIGmY3TPmT9vs02q2NvV1Rl9RvrIVMPiqb5YuVtod/vFe5n4qA435D4nA778cOww7tX9COOMaZl3x4TefyOCulFH4UOu5wnOfhINYyk0HiKh0KzDkUJX2jNI4wPl2+kc9PkVANuk9Q9/Jz+mSEiUJb+fG4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000W","name":"ukspumuks00000W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"332e65b8-bb89-4bb2-8d31-0ea9a665f0b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8fa78a27-6ec8-47bb-8289-8c2f07bd1e89","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw88nHCtV5y9R4KzQO6upqQTQUc2rDH1luvfNvVFPbxzTUlVVOlyzpfRArhY7O9UtgzfA6hLrK94mIMAarjugapSuoQMEzMKR54f13GESwRO8ELPAu7tYJMwD9XW+AHhrCIh7B5KrpA2AXI7+9Cs2ZaudUd4YnT2Qvb6GyyCJU/XZUwsFJk1dWgp2VkTc0vsXYVSTOXSceBKgcL+eb5FGBTsTnRrPv4zkcu3OAZTAfJr2hNPWt8xHoiz+8aACQQiBTjQJxbiNyNBFRJObObpmcziJn7/K9+OmQau7IQnk15tr0DAn+bdEBaUX5LagkaqUPR0kRcBgXf4na/phgEDm3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000T","name":"pumnamuns00000T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6c43c209-c557-4644-bb9d-a72fa8c75e9a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00000T","machineFqdn":"pumnamuns00000T","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000T"},"vmId":"f540733e-989c-4b69-b73e-4423f0fb829a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuY4iCIK4ZPThKgKiyBJ3WZ8z67gG0B0EkctsdUCe4yhjh+xezoEUwj8SpIHs9qlHhM3jC+ozZ97KqnobGAay3yBr91eplg9VCuTDF8lxgMaqNQJWH4+yZjSYUxkBYiIpbkRAYkNvvqZEGj3BUwgTCfAaBjzgjYl3p25d8ETOCKPd3ZbPFkogsEw8xsPWsAJ3F3qk7kG+WeG+MIJYqn5QV2cnxbnanXqlWTi1OPdgmBbH0jB1pLug8ot7yJcTFVPabLNvp7TEbFQFTBZd4z6LmTBf5PqL4nJ8SsXCNfgBI1oMND3Yzm2pAmoyEMyXGjXn61cZMZvD0CGhSc3jJlQo3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002W","name":"pumnamuns00002W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b50d17c7-5861-4e23-943d-ab061854147e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00002W","machineFqdn":"pumnamuns00002W","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002W"},"vmId":"758cdb0e-36b4-4bc2-83e1-b7b52b14d97d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtouigufN0bQWGmqnm6hOdEPTXo6qdxWwEXHpghBZp+WSlJFBrGaFqschLFZyTZS5R1N1H0n0uZE6pAqJCz+RTacaHPrX2zD0148Em/w/Iskgr/i0Zwdg7oy7d8Cs5pwH0mkVBgALRdd3v7ZxpIsR2fU4Cb5N714DTgFzLw10C6MJ1U9/t8GNMXPAX7mk8/fjSRM1up/j6YYxaotFn/EKY8pvndr5JDtQuuarWG2a9U7b4e/uJWrQ/kYQ1NzLzi1VVO6/1GxovKXd8tA8OCNs0X4mra5ZMUPVM/qT7BqViSd2a/LjpBY/9xxivvWSFXMHutiEjTBhK5RbWffrWtfkLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002D","name":"pumnunsig00002D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"192fbdb2-cd24-4e53-8bc9-bbbdf42b70fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"ff480906-63a6-4021-a6b7-ed134dc1ad13","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3G0IME8CYvOsQaM3gaQIl7ZoeBHOwNY2CSjJ2T2zrFH3fKAfZArRfJv04F+Po/2LTIjValL1PZ0LtXf5w22QBJ5B2IV8mdjJ21NA5sDu4h8gaDwxhxkW5WkiqBSn0xJDCGN4fJV2iPxDHcIQBiOm6DHRH+SEwJVC5QWaZ2ZD8bb9PWg95sg9cGGQdQbRZQ3BUBM+eIZQT59s4Z8DCVbP9MROywUxsI+VcIuJwHPffm3ORUDhesHe16JUUzmuMfVGdgqwBOVSAHt/kHv2PSSoRy2N5Ncz9cxNEvIHQAUtuWhvOINw9cCGEKKYeiD2FA5TaJH4QT6S+OSaUK3DBOHYywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001Y","name":"pumnamuns00001Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0e555614-f0d3-433e-b936-523535b70684","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001Y","machineFqdn":"pumnamuns00001Y","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001Y"},"vmId":"8f248389-2e66-49cd-b521-8e21a8111164","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA548Lg11ocbsfmS8ryEbCji27BRjbUZYSHQgQiPTa5RLIAy2kS158D6it28dHwTIhuweksC9bRjpcJOwBGssu93kJ+vFidbtivK2cJT2f0k26SX9O8iB7VL92XR6z9u0O/xLM6o69048C/e1gDykFnBSFuK5kAPOtbeit+sPOCrAwzGUeTY65z1yz4sPOjj8SDs6x2ulXJ1PCV9I7RDqW4UGBCiGv97SfL26dnFEBe+okQi58Vc6O72FDmYSX+RpRE38ZDE1xLX1H8dZ69vRj6T17TSFrzCuwFMvUsSNvlctAJwYCIGYUa1dXkIEu+XNIvA6akGjHhlEMH+yEqxpHiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000016","name":"pumnamuns000016","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"28439d47-602a-4a8f-bb19-14f9b09db3d7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000016","machineFqdn":"pumnamuns000016","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000016"},"vmId":"d62aae91-5665-4af6-a31e-ea63b36d1596","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAulo1PJanJGeH7E2jL4gRmEOg5QbDgWTsVGO+AxJM4+VNeZhJYPnorWzmeEJKRHP0ZY4iBMxf6EQo2KHzsA4MD/0+caMvW1BAoqWQvsq1AsKbQ9tBPhrDa6q+3gQuk/2e1kF7hqaCGXEkqeKmiMJUAIEOH/zE8/aBwZfj0ehJR7uTNgHcqnJ8Tjrk/bbUxCsM6rIZ3Ge15x9vxRgizMR6K6pUtPrw/M75LVxcBvST8Fz80D9AFqVoT6RVMVuHdHPwioF4IMOWENrOqYD4nUzNbfi0ivl9MzFkBt0FvP4LP7smN9l4ZVweaZzN7mUWFMBBAqeTeGSBpo++Kw16X74feQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003O","name":"pumnamuns00003O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e23ec845-db56-4d30-b86a-63e6eb23eeef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00003O","machineFqdn":"pumnamuns00003O","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003O"},"vmId":"203239cf-284b-47d8-808a-70e83c0e6173","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApIv50qQBx5C5mHJxsMghW/qg6kXWPzXWW1OGyXA4sbPlJiCm0cOyC2S0tcATw3gU9z4ILAltmMAFTTplwHe84/I9YdwO395TnlVQAlz8H6P5Q5IYgudXAFhjzuONDgMXehDv4HUccFvUszjWtR8n5i+acu4ComcaDluwTweEzI7np2PP51zYu7llWM+40HtMSH90fK7Qo7MCEcDXMaSKAtmJL9T/HzCGZbNU5huDlBvS5j0HuavuC3OFaaaFM5aW9ek+PX6SZQ6gi7ySbm2h0qnmHUSy0tfkIl5E8yji4gg1Yg3CuSRKNqebNr79kMuNQibj38afE4kTddK0WHVEHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000U","name":"pumnamuns00000U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ab93d771-e4df-4af5-b2b0-25b288bbae88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00000U","machineFqdn":"pumnamuns00000U","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000U"},"vmId":"e97e34c1-c0aa-4c8c-940a-9a6bee461186","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvIb2T3Ig3OVQsUdCZzkg/+2W82VHD4YF2Bf8hAQ2/OR8v3F/Oxnmc4j/8Kv2DNHvMSp4xn0jqH+sbTCnh+84320mii0sGdQHAD0iHPBs4Mcc/+YSMeP1X8yu6oNms/AI1s6fXs3sdlo7f9ccYsKniJjAQbvSyJcBbdyQYkhAZiND61sIAXf8S4NZDhQ94BHc6J6xUSPtrUJOxy25KSV1b8th2honO7bve7ccylzfs091S2PBpRjyVbzv3uXae8pMiZcoUHBsvKNeGtf55ZUiVHN9ze0aV/EK9PdHLtxScJgAjVnj31uftpUWnwybRHrEpLt26o3DEvOkXxv0OE6BlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001P","name":"pumnamuns00001P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c31ae9f0-88aa-458e-b2e4-219eb062bb89","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00001P","machineFqdn":"pumnamuns00001P","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001P"},"vmId":"e3af880e-50a2-47f4-acf6-c0e473587a6b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtmZIt3gCPy7utIfjot1RulSU3RbJaDDtW2TkSBpj18evpItJpLTKb4oBeGnP5JzoIBMRiQtoaWcpKPmlA8xH3rh3GZ4Lc31twoiZXqDzzM+X3QPkwvh0qsFSwLwaTguU7/yPQ/tylra3hgqijr+vURgumMv09rZY8ZbDgekjudeOK8IJjhV5KuaWPoQ2/7EOhGlSOABPPaxF3LlZbnNPehjVRd1T3lSgch655CHxSbwVkLX6VaUoJNY8EvbGRm3PogE0BMKAEoliU+QcNrjc6dKV6cGZcuVA2dyczX3Sj+2ldguCZ8Uoxrhg7QC9vu4LklvKDTti6VyJ8YgAfPjOmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001F","name":"pumnamuns00001F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"90899f61-c9a9-4b5e-8b05-23e136c1c69c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001F","machineFqdn":"pumnamuns00001F","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001F"},"vmId":"6fc7d6c6-f0bc-494c-a932-13a1d1608174","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1SSTHFX5M19n6wlVvivob2LIoR6QkS4BwFIVeIaAxSTaEuAVdUyDRB7DrxSk+TeZtrhBBwwHj0fk5NpgKNVwudq6qj3CINkJuiVP9TwKDvPybLSNyX8ejJ60arewUET3tKH8Erg6eDZqWTUXDeiFQxf1J4ADYSCXI74JuU9Rpkxp2sGsx352DHE47Mok9i9QOw7Rkol+++t3a//BwsJYP1DLLXDyvnx9qAOj0AVcdmvLWD7ytIRXRA3QFyaqcKX3iKcWdH6LwdlLnogLfWqz2DkQxrqF3Y4UKe+gtfXjZ9ErfPjd2Ib068o3maTBtjmyEQqIDN9rz+WNWGkmsL9VnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002G","name":"pumnamuns00002G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7a28d83d-faee-4340-bafe-a0dfe40eb8d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002G","machineFqdn":"pumnamuns00002G","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002G"},"vmId":"7a3ed7f1-be84-4963-962c-46480fa49fb0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsKnJ5LPCMW3CMvBzGgXt1Lj1wlozqAcHc8KccFVi+IXgXbV8HY1se1cGJkusrrQ0RGZCnJcO2VnV3d+8Lr6dZB3FR090g23BVSpltAo55udHh5qNnbUF/7iJ7EpGtC0+tggafpUgpRUhahF2qXZjenYqR6AGro4FLh3lE9j9O9JVDQV4N7gtCCFQZ/Os5/tozs0hf+iH/P82hqcI7WdBPEIDRJsOL1tKzTNO/SgcSskQ9pFqpXq8rKWQpuoQn+FhEJzB18vusE3GTqkNSJYMTiXOjSlGxppYy7jP/7Elt/W7QbQd80Rfyn8q2k51Ezqm4E0/OktKrGcqrRZn5Hl3QwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000E","name":"pumnamuns00000E","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"366b60ed-0018-4e84-a4ae-6f7b1624480c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000E","machineFqdn":"pumnamuns00000E","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000E"},"vmId":"d32f352e-de94-4f15-9995-3349d09e6794","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2GyxhH8Y/nE1IB1QweD9dVm/Bed30yjp6qI2P+BxSTarqSv19UTps0DMFc6WCYWYGNssanBR7ArqkVJ9RtqHNtf5dlHq1kSJGdLY+ZArmL00U+JiVtxzmMiGao6mV3eKF2WZ75FRrct3ca+ZPxeJMx+4Rwk6zK06rPi5pe9hwH5GqwYtu5j4UK7ZH8opD0VW6vaENCRAdqZiiT8f6lIwGLcGdTVdwT7YBapXVilDq/V68fWorCQdQrZwMVmxnUkzioCProvZTPj9mjyZclz8wY47qYQvLOL0qPFkTZMLde9eVvUIDOk59+g/5E07FwlHBMf2WNwF/0HgygxnYvOipwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002B","name":"ukspumuks00002B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a3f29bc5-79e6-4fa9-8c7e-e433f381ae58","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"ce253d24-f6e3-440c-84f5-06a506834a5a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwsimyff6ZbVD5kxSrH5tbppSRjzlQaSZdKQHyMqQb8crLOBXBjX5H/iQutjsXLXdyKWW/WjLDNNUY8EvSpeGTVTKhD6itD2ne0BpXdrbCLc5bZ2n68chxIIrm+ABgcz1oDUtnIADt06Ve4G82mptpnWoDG4CMiUWFC/uEGo1S366clBxiY6a5BbOeIuIpU5ukCXSDxjzA7oj06LZsQgBlVTjCz2k3fQKnjtQFOndAWjQRBIj+eps0E1R2rUjUsffkXuYIW0oDuPeSUUT6cVgvotOIBnYthgtxsPL9VRmcxx6ffQLsgc3VRAiP43JPoWmLdABec2fWp/TljHG9vLCswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000P","name":"pumnamuns00000P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f45eba4c-ea88-474b-8684-9cae8b4d8fbc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000P","machineFqdn":"pumnamuns00000P","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000P"},"vmId":"03a7b9c7-5acc-48eb-afab-8799effd8980","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAucwt04cZKpV2yJcoLH+OskjT+B45sH8KRAQxHOS9ErunoYxJuLjVE30m8V4AR2K0je8C+246bEAV8e7mPaoQRsmJxiXjQ856HVNWIUQkTlFCZldNJlnQVhCcAxvR5V9xzZkR3R6GfusWUzyZTgqVGK/DyZ33uo3sxWE3qYxUDALmTZEbXE3S+HCVaop8aiddbbXwdO8pRN7NV1vBmO4/NnlNVuoyrFq2umi9ipZ70GgSpnAgwR8fKr1GJmUQQKexYKB3agxVzaTUlOmeiuzs6xiCbB2HYHLc0MiTofQTBFYXtN3X1LyRro5HqIcDuclbhxVrYtD9y3ecS8L7WP2VLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002U","name":"pumnunsig00002U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"11f851d0-a5ce-4a3e-b7c7-127d4c949bac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8f3656de-43e2-44cb-a56c-b9b0f9d3d991","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+VtAxcFq0GBuSfrhgxgj4twYH3Z8opNgWcJ8p7pqo40iivjMGhVdWnN93zOd3Dj6AsXFwyrPw+SXNrTN+hrPCVXMIwqlv589UNnwo+SSAa9M5qS2XTZzwEhSySjWf58VGeYOPKpQs2vSTWXu1HxRtJg21XK/6yq1XW9gktEU5r9S6ysUK/l2XA6FkejKtzTh14YwM9fxEUpUwy1qK1iy/uWX9+eRQmVGGUPNrkjnfrqOBc4I2KJXeEU/gN+nzr96e2E62VC9Ni8qTqT0OFlt92rzmlLMNN+kmsK74qRlWvhQzAEIDxczH9QM+F1m4ibM+fgX82C3upjQAJt5pOOdOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000038","name":"pumnamuns000038","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"015e54c1-ed6a-42df-b709-dba328e84179","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000038","machineFqdn":"pumnamuns000038","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000038"},"vmId":"26358df0-3b31-472a-99c9-461885d962ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3LZfuXBUputAnAcwsxdonL17JEr4qIvPdS97vDHx6xV5gbNyNtCBzkkVl47M7uDFEvHKfLCgvMAEtp3h81UvjTm2LQ6bL+ODsXAfzeMPIhDjEgs9j5Lc8ECNtfhZ8aMtTy/UsG9qSz4wBKlRMhXFX9eoh+KSiwKl3xO/v0Sgmn/HGMBWGF8dhow34Y4vcLRMn1MCbMtb7KA4TUHxGxREIHEI5lqYihvVMXumynPFWQz2s5+sSjDHKc2ksBwtSk01eJzftpyi7H5zNNXLWOZd4IQH2o32LNp5wHHhRSoVw3Tq6EwFXqTnujiYa6XdiH2Ytmg8LJfLwwICay2gtXj/lQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001V","name":"nepumne2r00001V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ba5cabc0-7b34-4141-b5a5-782ed61928d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"928645db-2503-444e-98e9-108c1e4749bc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArtc2qSBab9jYVqhQqpU+sZYAC7hAWlnOhXm7g+Hf+dV5xOnZd/YOE7HR4QdEinbAtStKPhFyQC/dOOJvQuNB979s6E8JPL7yVhpa6p+eUuBQW3V+4guTmyi+2VHN5YuMy1SqMz7b5XO4HMAN1m4l8ReBpUmE8ERktwNgEZMBBmuBPXeifqa6cASyhxzAVvIsiHWL6kwA1GBoXpc/4UJvyrAyckk2xVPPpKsTeDGBwkUybVYTMvXFmffFIjrHJSEnYKm5aD/HOp4tFvGQofkaPJgb0+uvjMLmxupZOhlvILbzjjKVx6KnZPaLO0HBeqBNaF57GJ3oaC5unlocX3WJWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001H","name":"nepumne2r00001H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"975495df-cea4-48dc-9555-1d6baeb2cdbd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"89937142-ab57-4cb0-8ddc-de9cc010e6df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt4PjbSHL4Z1TBWBoShycG5m3KpEBxl42lWGgB/619S3QPtbG4pzBBmObnroP+PpeDrckvpdp6Ke+lPCGfcjtb3kgpQ/UzsxaOBdGLubmqLya/rzGJvmJn1vLoVaoLyfKdHLJiksNiWqQ/y/GJ5t+YehyiPSrieWIEi95r+RGyPke7l/tUOqmBiNRVtqTB6JbbXfRXAda0ZDZ7hst7qwyhWIuLELfEc6kJTU0eTMowU7/ONhtYuZoGUdoUj5gsFtPoiiC3ceCTV2qMauyVNjeLfKaTgGyH8xQimmWDAwNf+5cfwfFyoFM6tw+VoYdwoHGLHETZz4XMHDgk5bUgKhz/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000D","name":"ukspumuks00000D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1aaa5477-b329-4dad-b220-17963704c6c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"01311c6a-e5e8-4b5d-b7eb-4d9f35af0305","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxrgm2ekDZTS/d3QU94I29JGeGwfF2wO/na5W+zM96u2Rp5D/lps3XJrb0SXOmV4LBgCDCi/6JvoT2FXGgzh1zomBIfNEv2pqvxqu3A9sdt6/8asPxq0Hao/PgLg7KlOTKhaFOxLPQci+cRXj+OL8Z9VdZSfX1Ia5vA//jQr36mfvQonss30gn2fKn+tOYI2M3ah9VXIo0+6a5RR5VUzC0Nfjw25dkzYY0DsED4bpoJ2TE/kkdeGZTIz00d7MJS1xF7GbChLJVwo5mICxDXk/z3oESh5T/fMlCz1DHVJKF7+Uu+01BY+rUTiOBUBwV8ancctc9AR/TQ6F/XM5b/wQSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000026","name":"ukspumuks000026","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3c53ada8-3dfe-44bb-b8ed-a1d49bbddda2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"9d4fec70-b6b3-4f57-9457-bcc6726c9ac3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2OwT04T3v+cDGCTw14XWFCHWIMm0SAT4S08u9/gxKtCj2ofvcSLK8o58/lWhc9Ctd19CuBuW/t9Drr2eJm4nTDmQwN/9H8/u0jTTLTTti1oNlQjKq6sqeeURLsvaz0tG9h51hCPd7viuhIA33pK8wDj+sEbF/5rum/RtdY9ShkCQanXwe2TaVROfPeJWIWHdunuIbPJc5ohdAbs90o2jVyoLF589y5w7h9iUxEOe3oQAie2+D8Eh9C62PxIjO/CpU8EyoiX2Qsu2m6Dd5a7iyyubHUo5JEE6tedXFLBtMWBEguP4vzWmcELoaaSpJGjY8NG9REfp8FGKMcpTl4zfOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002T","name":"ukspumuks00002T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9231d129-7bfc-4d5c-84f7-653ae5683821","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b9f85045-9ed2-4438-a35b-89eb615109e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoQjUkUoEjsZVenoW7TCMXJS5jXz8XYWi4ts3ZpEFY0AbzptC1rHaVYTuL+Wl0KSH7ufxP7l26S8VeS+MwGXrfl1UltnneR5UCQpCKDwTvb+1U/GVfvIRAh7JO0CH2RpLrihaZWxFutzo6owNS9P5WHTkB/gItvrrBZJD+/5Ms1pM2GyO+lkOdxknWWNGABC+plv7EhEF753hDP7QNEN2kcR8v+uM8sAyRRCJoJyPi9ZiKDa+WSRx6Lu5sg5Qone+hR/PZHdHL80bYRcBicoODgtvKKwWaWRa3tYiwWnkz86/DF3rqcSYQQqGDNoH+MkSVuPiwWIffKjwCpfi/mrQ7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000O","name":"ukspumuks00000O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0fe5bee8-73c0-4a75-9bac-1c80e9fe525b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"792cea30-29f5-4314-9ff7-afab88f1892b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqVQOwq0QzvfZT43KCYSAY8lGoVtNzWpZkiXAa/f40q472bh4Fzcs369RcBjHFEFWDXmUKmPHfkGTjOHfLpgFqZQ5Id5FBcy8GsennR6UFo4KdJ6HlKNoEr9MgZ0RrPsm7oxSUgKyxvbULwOqqLAAU5hcHWrlKWsdIXJ/339rlcMIKz+PkYO0PWk8ZLoci+hauPecpAs2cUJxnNcB4sKyg4vbtlFtjeVjzN26nKz9KW3qvhzOYQI1OHBQM24fNXtl53wNCcxvnlcbo36wrxsuMTsdLWuiFkFqV4ID5Xaqs+mvOKoO4dhkY7q9lfAk7ueSoMqRYTWsMeJgHN5ZAIrHEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000022","name":"nepumne2r000022","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"e24655d5-ae0a-4150-bac2-a4a44f4f8caf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1908d6ba-3db7-4b0a-9300-9b3dfff11919","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu+dsIYxo5dBEFflERkKGA5D4ieA2oLwzM5uKR0mAz1ZRfkEWrJ67hn8W1AR2nQINVRKIsTwDlfolOxaUpoYCjdpmhQdHrhdBkr0g7tDR2ZEX9ij2sws0Qu5X//bMFHQi/CRIAUAz7gGdqegUIAlGySyfDLd/2Vpjb01otzO0VH1SuGXfOp2nvYO4VZN3zpBXviIpvxvPZSrHpYlTwHfLeplIgTQ2nhUDsz3P/gF60kWQA1m0K68rNcVFS1yYydzJmGBKy4ym/F6LojQ4qexn9z+3WSBVMflTROxpHou3VC2E6Fq6fwnjEmnnI9jXhlwMvOjHB2msE3k53MYqlVFiOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001X","name":"pumnamuns00001X","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8c64c3f1-d2a6-41b7-95b0-1967be41ce28","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001X","machineFqdn":"pumnamuns00001X","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001X"},"vmId":"b1d36c46-9292-44eb-9315-5eae22972fd0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0+mxs1VmTvOmrgi0yGQmXjhANM1QRy6MUsXItM3hJkEluPcXa0LxugsZJ3jilYJp8549XlQ/IUbrdAoGNIEbYpzgsOwuZJ2H9fQGJ4Pc7UoKGYrmh7Vx1wDRrOCOE7bzaPfeeIaiqwmfLaOv7yMZqUSP/Z+y97oSJwl2EosbSMyTOUvJM5ye2fROQT5tg6azCHZ3bhO8RcQuxHr4/qu6yRik+VNirYB0jDiTzbloKHxcuh204XvD5BIpSW7gw2FiG+Jv7iA5oJLTLUeU3ui4pCqk/VhBsJAkuJ36VJK8pGgMiscGqzgd+WueYbIPtGmKrgJqLmW6fDG7QLhcwRf50QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003P","name":"pumnamuns00003P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d50abe0f-7178-4e90-b9b0-f78e868be7b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00003P","machineFqdn":"pumnamuns00003P","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003P"},"vmId":"d91ee27e-161e-4231-9ed8-9e35d824c73d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQxKNnIIrydAej5IegNlSNiBdrAyu0hVkySN3QTsmutpN6gcXn2iL91eu1tuDggWj8xf0cduG8YaxXsvGUocaCZIBLsk83CHQNdNV5223JMnx4oG2DMPCS2KoNZHY+Ee4ibhM3eqzv5JFTfReuYbZgTl1kGBF5CKsNj/bKCcL5/QSiWJmR7SdP8ZcfVVW+dbVPmm8lc6oKyTEnVjF7/hT4Qb/ncOhtFos/Nl/FBFTpXdzceC2VqeR42CuJiPdzvptjMw2+wxnje+L0Eu37nirA45S41r5LVcZIpIV9AytzaGTZJrAGSU9mwJLym/Os2UqesKlf9uXqBsQqF01mCkxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002V","name":"wepumwe2r00002V","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"504db780-5b9b-4058-910e-c4e30dc4d966","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"ef61b122-b26a-4dac-a862-842c711c2d85","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnx0tIlcytnPPvnltUTy9KlS3/u64pd/8kTRPJn2zKmfDdrUfxJYatUuUp0l89vy7re0rVZ11E8lb3EE5xVrBRegDaWKZnVNL57+HAG4aXkhVDbsIqMlBCoG1TTEDy5jnd+VnxGB3uuPmTXWvB3rszY5TDjcECjr+uBNTwX6omcUf/I94E3thp29AFHkepTbDH14srtKf9nSzYI+mDUd1Djq1RrK/KXtURpZfRjH8eNwaQN80eSg9NqAWQ9jDjDq+Z2wSY+Zs9TmAZLJ1P8mxIy+eSt65BTAHwsxROLgmitPVxeYsBs3vrn4v2n0S/oToySL4QDGP1nO25QUsFZft4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00003F","name":"pumnamuns00003F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4087fff1-ef95-4712-9946-7e91d9a2d69b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00003F","machineFqdn":"pumnamuns00003F","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00003F"},"vmId":"fdb47497-7b99-407d-90ff-93a63fc67edc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtqnCKBb0dqwQuVobPwWXJZFOkpC62NISx49PRDBfquh9kJEslllNT85x5PEfMn5PoFND9IVP1OhitGKs6vQUKNh1AsQ4+ozCIKBjpMbt3g5nBWklsSy1wP+CIw4sSB30aliLxuufke1D+xprl9nunpjQLZ60Lte1T749buBBkwIzRJPRHQAN2KwFeP0D+KbziLtqfgnoUBkZoVdAdRn5QIugcQAyNs2mMn41Xc5DnvE7j/rYQSl6YqCv2jeZ0qFC8WFZ/csIluFyG143yDqHUQSsf/iCY0vP1zdBouUoXz+k+c8iiUeQf0SerLm23BQRewgJ37nzhUFC/RkSc15ciQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000013","name":"wepumwe2r000013","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ac732b44-014b-4268-8f5f-08582ee7a0bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f83dad70-4068-4731-9986-5e63890fea7c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwVW3gqSGdWsREiMcJnKzJHpqVPhW+i8z/1ajt+Upi7lEXK597B+TyprCYKF1z5+zzyaLoShHl01SyA0UB64n/RECSLvHN9JYM+I0oAZsxMX6D0FBX+Ix5oRy8h5+49koh8PQO4UJwuBXid+1Tl229Ad78g5+sulVQAWjeUCVb7ET8bRSGR7JWbg4rKry1YwC0OKVyjy70e5EtIjFDEICrM0aq3xglRkrvyV8tWSxAjcylWhrrYIr2PFhtuLL9zcoIGBaAEQbWHPUh8QasOafhtb0QV7870VuSAzvL1UNpK2TSAqzc7rVA0To4S/9yLngzab9Q9nypm5f4nH3+5QJgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000I","name":"wepumwe2r00000I","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ead4d390-13e6-47fb-a031-3e8d83648dfb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"e0120e0f-2cd1-4b4c-aa18-242ae188a6fd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuTojqpZp5AxaEkgv+w4WdiZeZk1QJrgQO2zOEAWk7mqvE/BK6NzeHXiTqG5sZI9cAZIpE5HkRR2Js8OkarNNPXF5dOPc7HllcNnmX0G0RdBoC0/+UNJ6atZbnQSW9IbB4dWfHJTlxBSJhihwrI/6jfxhb3CYQQDYJrCEqVyqgzn6yhIU8IWMkvVvTVdLQs4ZQXZk+OiLi9Rcpwl1dH3Cv7b+Jai08QWLF3H9L4ByfsMMsfeR27OVSUUokg9v2JgJNASbyLCQnicLN/WeSopYTISLTA39IYPSimN4LL3sTDlgs01F4unkR/KlqjrM8TZl5pMrHqsrQSdw9+8quJYczwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002B","name":"wepumwe2r00002B","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"38eac6f1-f4fb-48a9-976c-5bad5e976309","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"656191d0-3f7e-4f84-9066-c066870b02dc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDCB/xRkVgB1IxPWGoIc/VM2C8cgqiYk20qxtrz1QWcehICTfBvYckoXa2pM4pSkmEWbHAAuP0nyByDrTW+q6i8t85uPZmb25BFB9h3LO1/M1MfJ91JFUSoYvvRtrIwvu19T9HFczIVP2zcejk6fUqo0UUd4RHvGFEXGG6Mm9Hdwf+0HmtOxOf2YDY6fpl9on0xFwzYv4jxU3YJT1crrz9smexzm1PhAR2OU21ACFy2uwiAbVjGF1fdjvQnD1hVCoCcflmmzRXStucYTsygbYeswSJ7bb1otPvYhjB0wmLO6EfKrBal2ystiVPBHBHE0EvIZuDOlarZzupq2o9HZ/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001J","name":"ukspumuks00001J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ecfadf35-98a7-4cf2-957a-c2690fea1b6d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4db1dc0e-e0bf-42dd-9695-ad658322e042","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Wo1IydN6j8Vh+Rov2OCdjqJ2JHHBXvr+Dljr/Ak2TxUGnTLIMvvAmgwKzxmSjERXvj1JQVAP+kwPrDBymenLEt4OhME2uO7yOtosnseBcb1SNTywmpNfcd0m6mYHkAHPXoZpYmq5s4JeEfyfSyr97ApxMHkzfIgeJeH9j15FWVHMjICygMlczW9NDN73r4hsTmOIuQRFJyfNhZi8DPiohvx/gG1C7L4kEJjj3AfJ+Dsq3YvGEHWhY3WR1E0funiEoiis3odJODGjlb4/rPwJ1fqJhKb2gSqX9HrxBr3GkC+Vv+AIhJ4JWqNQVnu8Vi2bg8BU62x4vzp832BOyxBVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002G","name":"nepumne2r00002G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a1045337-7f20-4692-aad5-8dee3a1ab34e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"984920e0-5995-4cd8-8d3a-cb141557bf68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArctOXKmEoi7wquGORro5GizD4NKBa1zc11HR7hM211+Csksf+GWlsA05tpg9ia411lernP04EBW0lyBB7d4LhxGyGDkY7yQeokSVbQZ6wAkK/RyEKXNFrc7n8K65FYxUM7ZW3O7ZJFIF9WgG3O16+caQpGz7kKDDifzUJBwpjrd4AxJ7EL/PdrJEE/YgWo2G2/teQfvWD5SMGc/2E+LcXrz8zAv2OEK8lSw19nVFnmWOQk2cwNitH5qh8P+gKRtTJ46IfqVx6R9b19RJA1/2ZvcIn3rhnuz6CRQds3Uekh7fLkmfvV/nRxiDZwR1KNAuIOMJuLE0rrNNjLeyriV+wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002N","name":"wepumwe2r00002N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5655da29-26b1-4099-bdeb-a105a00bc109","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"37291adc-8487-4a28-b8a7-823e33610133","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA19nholdotwaQYbAArn5Yb5wUQj7WfGAMdUUAurPh85OWqZmxd0H+Xm6NJMfjwYafSp2IvXoSdKtqnmQgePouhI0Qc3XBbiiADbNi+dWdBhauIJCF8sgoCUw+scxJ+N/cbTKpyAnf7JNKZRQWlZAFsG0NqtvVUeQF57vGMBeS3DV1l1sP0we4rNxEmMKLEDhiV27gnz1J2aUXJkrQwI5Wr0jqY4Rp7BskHYuAQZ9OG3nj8MGy3IxQ2SlP+Hy/qfFFv+B/SMWX99YZw4uTZ4PkNF0JwtgXBeLg8OxG+lr17cE+2lozoxhGsrvleEX63or2lR4oJ86T+0NLIQsBPWTpWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001H","name":"wepumwe2r00001H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b6c6e100-c6b8-49b1-b7c9-1a7692022ed6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"067c22e8-24f5-4a9b-81c3-f6d3e49e0466","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3zqe5EwzQ5qK60fjGauk+SHdrrmxjsM97efJkjV0h326dBmXUm2BJkN3CT41umqZAXB3KoPw5zBtyPO5XRJ6XyzfGRIEmTI0WsQD8VfHftQkGxivRPlYAxmPY/GzPugwJXeGifGEc/U8OiDZ1hG2N3dMi7/Rbd3HePIj3lgYOw0DGEqNEj8obusDE44u4iujHsWe4n+izFEGwLekXTKEn97S5wkTSQHge4ujTiTaIW9MVy7DCkmLKnoB0dsVHFasbJtdjef1RQYYlifP4M4yfca+RGuHki0E2zPLlIx+IZhW5SkjAuy7yml/pzhqSgfCvpFwVs0NSejeNamQZTlddwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000M","name":"wepumwe2r00000M","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ca6f7f02-9339-4510-b15c-cc43e94fbf65","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"wepumwe2r00000M","machineFqdn":"wepumwe2r00000M","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"wepumwe2r00000M"},"vmId":"75365ebc-7a90-4f24-beda-5072b558a2e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2g8mGXgrUGLFjtExmI6uhb6o0lDJ5+NghzRTNZkgM9NxaPiRQY9jQvtI/896vaJcKn6tZl/icf5NghpYd78xa4SKmgTV6af2YqscWZuOwUUgQwD4SyB1Ksnzo7Ogdjfk871rS8dxz2AcUALBTo2Vnhjg9xUPATKn75CuwyRCGXXmE3He5ev5/mjFP0wXAROvaUg8MlKPWRYjz2z8SAj/E20I5Fpk2vxduthMKQLxlfeE7+d4i5aP+2A4+SKiaRYECBiFfqboUIBLa02fwy4WpwHL/M4tRuCXu4NqU2CVYeWzIZk5PtAEg8/7lOmlFCJrbGlyffb1uCC0YGhZsjnvdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000036","name":"nepumne2r000036","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b0d62174-3913-48fd-910f-f9445504b37a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"491da173-f2ee-47f0-ab1f-1286ac9c4b50","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtjuDodTNMzQaSTMcUnkwnp3PFv0/b4Qw/MW6Hup+TP4B8rb2ZqFrbdimhCMqNtXT122W038VqBY7TiMoAhQj6SpSD/JYVJFVYWQRJdkDg7cC5FCeAVMaI/3/2oSmz6XLQcCBEld7LoQMOyrsdNCA7WfHA7YqAfPAc/8aXdQgyryPIe8Z65BrOegKo9+H6RX7QknnRJgKgKw4DkW11LlBCc5Ogt467gh4JMovu7FGiYH/zH62zQ8dKtnjHrpbNeUsqT8oA1DXRi2kJwNJIk+Pz5QH+xRq63rfIwp6HERZB2RjIaO/KxaywuVNAKdsvuwkDxt3gxXU+gYaeMh2tDauhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000027","name":"nepumne2r000027","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"889fa6d4-4df0-4e5f-9642-1ce3d6936f27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"3fedbcb0-99bb-4015-9f5b-b6763f3facd4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2JaQU7zblLvmXhgEnL8gufzWTjIVZFLjG4UJGRtw0A7SXuWlHfMoo93+dkI3IahfZ0oRB0QXLWh3TBTigd9Xx/6zwZzeC+wR8yz1QbHY7uL8K5PKnvp5AR5r/UF5MXquS+2uP7WK20DewR1TupFrzGBCsGRNCcGWrcb6xH9zkFIBQHBWkIuEix9ZibQyjC6teZZZ0h0CTU2lMPAc7PE+e3yaSRU8Ceyd7fVs4Kx5hSUlII0qARZZJgXBJ5W97pOFIIsuEk0NolV+qJ5DR401Y7pz1cpIAtrbiXUeobxH/JT8R2PmQPQbuRyhFAkgNGm6BX1WmdBRguIQ5cpHsHmbbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001U","name":"ukspumuks00001U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9b9063df-163a-4829-8aa8-4844b1fb5218","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"62ebe388-3f90-4ea8-80b7-1d292b26e15b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn2oJOW8fbzomU9vKiWZVND4/7x7xll8Pemh5PMRd7kEA0NbwUbpn1522LDPzGH0F7ZWQS7Bo47nV4CjaSR2r181LRlFM3MKnaLrSPHgtxSMJ9NaVWVbAntES/iNSFFNmllhgweihcRr7xWB/QijOGyjWI6I/ybBj8Z+iIvMv47m6lIRhvxkXr2iF7cqN5eFnooIbdhy79zkQQ7an+MUtWHYXk6NQHHJH1y5LjKbRYGESKZr35NLaVNWLKN4xMNfXi/w+jwHlDKp/i5s6JMEuyyu4bkz4VqLA4xCEboj5379KpTxU0ESEsY2O9XibMM1p9JeQlBOR8iF6MHtk8ISpqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002F","name":"ukspumuks00002F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4076e0eb-5558-4b40-a6fd-7eec96ca1773","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1f37bfc2-a629-4df5-9318-094ac4bed3f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1JZvQnLZvqj8jaWhiQdpWX18ZS2FODhXBfWCu/0z0nv8r7ISLwRfbXskKhXDzA6K3/YV7ljEvapMRv/GtOz4d7/0B12uPTyyrsDrCKKt6qq7bZppiZtfEHjw6AiPcbByQDq7MGvIYIwVTjC5fH8LzERwNyqFaCYvrhJwQ2Ar1ltbYgCNQ+FQRBaxgfXmQs2tJd7YvQKI09XuKpmzHCpVvF7e5zy30TTNQOIK7t+pnEO9uBhWywPzW9r5Bxvn++NBys0+bwH7Y9sqDfh5DxVHWQTzZdioLYH680/8iT4lcOvsC8kvkA5b4JAwSCor6pS+KtdXMyICJ1NHVwhXWr8TDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002N","name":"ukspumuks00002N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c7970ace-6891-4764-8950-5bf2ec0255f7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b178d74c-934b-4dd0-a340-b513a7958cc6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA35kNwGar425zu+5qILL1h2r73t4cNsjeAPJv4xG1AMagY6Er4P5xhNgG9FzavAuk9Ji1J918N41Pwe0rGL+JVRZr+Jwx1Tyrb2fG/SzdZAfCF1bEEpHe13AjqYbvy5CGXyvU+OnAbdsJdy76dN4u2bX35R4ZJS9hmG4pn5bbArvtZJhjZypIl+JNRwo/zUQgGnPm8KDAi576/x8NyLgnBTXcujLWst/Dy9pADNLLXoMKIvDF3B4jC7HnqQAb7ojYS9VUXrTomZrnIufT4dX1V3cVfiy4rg/EetGBd58v1zGMUh0qckc6KZwH5KXvD4w9iSR23dZo0iT62xH/hNvjtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001L","name":"ukspumuks00001L","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ec23ab3b-1546-4632-b434-cae28e626478","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6233b099-2cbe-426a-855c-caa002812904","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu2G8hwh8zJ1eseafmkFNIKFcWcL9AE/Vs+20LrPRRuBYMmYq0InNenYUA6W7Q9K0ti6OZ9/ICKhEuuEx83kLjxyhFoQbxrCiKILWwBg8kpy7NT9SvXpizP3aJqZEjwKI876KIbqkNEVSfHAHLasv6zB8/YAXvBN3/XLfpV9pf0dlOWid27PAt/x4sR+TaOR4p/q/38kbKL+3+Lww6Rrf+ikPxzR0EYMURj4UOi5w4BG0HIRE0H33/sId/IAlcPA6tiv2rTsLbhTYnTVYHTUBVGLjkiItarjcSY+Z3DWsoyMZS91HveJPo41BWK6xcv1kPk74QwCZsp0pvSChQSga2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000003","name":"ukspumuks000003","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"f8988fec-4c22-49ce-b500-63fe73928f55","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d7776710-6af5-4753-beae-69573af3d012","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvq1bCNxwumVlO4CzmPfsvRe4kW7VBK/PTCVlaPO/VhHMILRWjwASHDn+q4Yu1VNRZL7/ldkllc2xzEm57b46alflibPIADaAj7CDBtXO17nA9URqKuZCLjrH6B2WbphcdZx6M/eD/RbRSgAuDWoZGv1SdNwZ525fdHrLzytOo1xEH0OJcHO4XglSRGqAeDKptvWT9MwTSM2jWofIP7Br6/7i/cPOlGv6Vf4yehaT/HMtZ4wj357N8t1LDyVK8tzeMfv7TtGYZSlB5evjsx6HrjDGvpBBt4fMZqfH4rLstAlcGDQ1X7Qbr1VlaUtEHGnFCXUF5074Dc9XmYeXUtZWqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000X","name":"wepumwe2r00000X","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9e30caa4-9f68-47d6-a1cb-0b3ee06a93af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8bef7c38-3062-4d09-887a-722bd66b59ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsDwZ6rmt2nOygv1HO9XVmr6phGiW0DGjcT7OU9VoZ5/BmsFYIpJTdOmgqS3ae2OgV9cSlSGsi7d+AMay3deBee2YKrN0sUqz4RSaygLe3yjGSrogPETZoVcHdm8sujjfGR89K6TsFaSVTwBxrfvlzgcF63Ov++Fu7RT+T7Cd8LBKQr0aNEG8ykYhfyYzg91tC4E6pDY2EuwcUs0EE+fUdp1iY1B1sjToQXU8H1JZ/9bGhLjIoiCV4LHNtYwydUhmIDEsRYZifdIkTnrylcpS/ufUA02WOoMt4ausVu2h0cPm5n7ysRVC7P6pTXxVmKD1RaY1nqOYGSVYHRuV+EFOtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00002F","name":"nepumne2r00002F","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"253174e5-a02f-4a00-b061-c774b67e0ab5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6e969e8f-81e1-40b6-b032-feba62c0df80","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsssnjirbDXiOp7IeU+OJYepFJM+RBH/qA3mADotbnK5m+KtLDTP8EjEmKAyGArc0lLG4yfGg7dbbbzx9jh/vIs3PbyZv0KcTrPU88rrTqqTX4pCzuKUxpgLwy9jh8T9F8J9dHufmpgs3om0oj/0o8V6WqOKWX61NNaHD/jm9KLHlvuHgnRTCFST9xNiL6ncCz70SDxt2YyWPGCnCHzqPoT7wJ6I4VFsIraJfBnJp+TxX35ipLlfMRQvIKahU7LpNQslh4ksZLglSXNhW47YJM0KT2pmg3X82udP6DckgR1OBFWsRms1MV0pF9mrkbuqO1Vgw8TCTuCVwBbfx9SmlcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000K","name":"wepumwe2r00000K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c06eb984-4ed0-45d1-b900-c629d2e6a90b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b712b07a-0a49-45b1-b024-9a13b07e3e08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsrcqH/2vNO7Q5ig8WIm1POfoDscinsrWtMMwV5va8RHdmJfQIRjyojhSxYf/PoCShTZ7Yvum7ghWZ9mRS0wFjW6+5HQCv/627bENct4R4GLqQEjUx9GD6kAYx0hPkF2ZKPui5k00nyJfQSofD//+3yCuvhxep+1P4ljt0AdcNJHl+Y+GPVxUwW3WCFM17wZ6Iz6b1vYO9FgSupuQMHwYHNmzFcW7kaKDj4X5UWNYjYF9hOIuAyB64RJX0txnq2lRE6fdX59W83plJj99tua1QLomEE298C6AW9CmBHAzmoWUD5o6i9gKWuxob1HQynQqZyjC/3dlqDZ96JpoCzs4nwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000015","name":"wepumwe2r000015","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"3066a123-60ba-4c8c-be1a-b68d3dfb2743","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"2763a5d9-1575-49f0-a4b1-4c8f58187bd1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzw9Yy1gPCwpx8jqBXD79kAc3AnECYYtBjzTHN1MHhzQKTLiEVA1GdB56w4o2v62fh/GYxLjDL2ZIwWlB3Zozq/v0pgEVjwUKNmWk84MBg5fSGUHE149c5APSvT4RU2feuLyECc84iiqJst4shCMqckF0dBl1PQFm7E7yhvmO6CqhSQ4orgK9el6Y/O2h7g2mO41Uh9lgz+yB/VWKN7IMJRtOV19qsb+lYdLbq5jL1WFLTiRssAhsNV4m4BAb8ger6I9i+CHItBmSB3YyFi5h5YCOVWxCIAzKFxEZYWTso3qaLELi6GOu2FJAw+WhE7Qhe1KDeyEaoezFUzgfwAsmCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000008","name":"ukspumuks000008","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"bb67d99e-0acc-48b7-8d75-aeafc25f40ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6443fb2c-f2c6-41b7-ad15-ff1d1d16764c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtYRFvrXALGfIiO+kh5tY/Fy1TIVmRegrq0H5088DMX2IdwbIF3ZwwFqAgKdem9NhNB9gt92KTi3pXowWLx/RVViEstOfrceN3UHnqxT0PUCpMb2w1RN66CwogLO9h540yLtiWyrzZTeL5z44hhmuOJdpnb8Bs5bkclVsACLl+i/ODinxgNArHtGz0lcZbuAJ0hcgBmqY8GmH8YiMhhWgc9Uld3ENQckw0TBli9DOVKm7HGJxPESVEX/M8WOYIRsvqM7FrEYIExTjawPIUUxkrCOxP2bnzsl3koR5DlHG+/Zfm9iUCkxAt5qkeYzKr0y/RLdYEjg6x0uusxHtAjbsvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000032","name":"wepumwe2r000032","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c23848af-e91e-43c3-9c27-1c53db4a1702","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5d8ea528-296a-4dfa-8f02-5820465f7ad9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7m6NvX3LX94HusyHu8hW8eLj6kb5inDBgf35Cgjbwn7ZZmHnAOicmMoyEu3E6a+t2uMPRVxzk7rtgRPRMvcopFrLXC9EzhrsRhSna0ae0734HHiInVd+2P0kDZL3wNcp0JX1rVN8dE2lxcKcOUzBL0VVeSOxknS/vewa6kVuExle1q6v/bgffJcU9yM1QqcrI2PxcNR+/Tvmk7qc56GSaKXf61m/A5ljNYvt8ngQeEQ7TcVdGw8qoaC7bu+xQaYY2SmPo3E8Z2qkmCTfi5YGk+6Grx9OtEtyqVZlg7TbcLpOIqSU0AWcJtTHuiFf+YzNHwCd16B50FaUEqWMrOY5FwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000025","name":"nepumne2r000025","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"b46dcad4-70c4-4120-8a4b-a798f69b1fc8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5695e8fe-9998-435b-86c3-e215699af715","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAttHD33+CbWR2QO1SRz2uOv0iG/1UH5yKi3w2nyHMM1XinIPyblIWOAcqiDJxU0eTtruJSA9Ghnz8jReisQ6xyM2R8eDVaRLg7YJW0laRNDMb3WzXowkmgKleQLRYk1YIX5+WgL5/gD9t6M8dP+BqLArSEitLdieXrW6CeiFXNTgr1YWKPujDA8ZHttv7WNAa+OWUbnOleRtphbta0hNlV7903Gx7M6Dn5c4TRGZb2wMaWlj8AUbvnoNJNjILqGDq2Wn5dKSx6D/yIyNGjLUfS8IlptZ23G8razQSimYpOLrEe3DjnYYAiu0tnLjxyx/dD0pI0uZoujbu9HCFlHi+ywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001R","name":"pumnamuns00001R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"35671bbf-c88d-4fc4-a65a-5250251823e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001R","machineFqdn":"pumnamuns00001R","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001R"},"vmId":"00938234-e4e5-42bb-9cf5-fb062e0f36b8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw4EtR1dIxIoNCjTKEwznL0ihnmW5bqnEaDeZyPcrvlGC7zFDcrQh2efy4uYsDBfl9g5JD4LUsJAP0HNcVcxFqxmbvxpLZxridqybtu2mrwQIjx2AB25ZjXod0vQ+pqZ+InvozY+kFxsiuOyX1uVcVhPe4NSe7Yw9qa16dX5C/lyJtoSTeDjc8OuoTo6Hsu/wswXb5Pm1EflWYaU2y+ytBs1FuQPiuw3kzcDPu6RQ+e68/wX0SgKdPRdqe/XJbR2qmN3egbOO6WlToi4iqYNPVEwRlVnTLE2FmEk3GSQp6C1Jj8nnRqZvY09oWP8FuqArD3Yd3PWRLLOOYXR/pZnsOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00000D","name":"pumnunsig00000D","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8d61e586-5d14-4104-b952-977bdfb02583","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b43618a6-615f-45ec-bf93-9f14ee90a053","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqIwQ8tdCjimIurQ3TF8kLVe8sTPtO3wQOTILI3fZi7CxZovmw2RFF+ekzxjKcQsOSNxzuUvj0GPProf8iG9QYl9tFlnlH1NRonpQvHFmuu1xpvNfOZ6R3evKbHZkPOR2NLnKQ4OYJon2U5vY2I8UBl0N7VoPZUS/dRs4uHNZrtSVpv2nVhzp0dh62kpyLeva4a/jAC2t3SsIn8v8SCBD6QuHIwW9fF0I+cDU4euQauP8ZSlQxmkDgrCNqaVEHsB7O0iM/xwiXaowAiE7FXt67KfznKgCqO/K8l+A+3ZlePSehSy1d62qw+vSvrW/BxG0CEKrpmgAYRaJ3j74YAVnAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00001W","name":"pumnunsig00001W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5cffd6b1-9cb4-4157-a6ce-13f250788af7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8f9aac9a-2c17-4036-9618-365372424a1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Lu1och0XhzVOyV6Q5lp0yt+Ea6y7SJzbKg01kPUv2rXAjjcsDBoLh3wbv4nfjsiPuY+RZgzzM7dvT7biqQVuXEjoRvkMzIh6sy9IY89DB8gpGXNJfnvKhdwJ5XhwGWk0bKWUCcvqiKTNhOsWRwFOlcsi19Hul6Ed4BxFAqiIcLic7+JdnWs/5LUbbm+yS5KemsmRuebZJfa3rHcI5ykvSEp6mCXX+Ch76iOkTouJ8KUBaomjuOSLejSXyY7kPaCODugsc0kJT0grUCb023IUT3uM/bFKEOtLpvNeiX4dDKttShd//RlGdvGe7+k25KHNonYDlTPaY9iVyN+kwnEwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000011","name":"wepumwe2r000011","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"807842df-c2aa-4293-9831-918654002f3c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b5c329ff-7dba-49b8-814d-acc680355790","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwGS5/h4iDbKBqFKc+R2Pl7dw2II6n1g65xB49qffbYEHpWQ2VatS+mu4ND/7EtMqGPIIpvwkzcRyGM8yp05937yYsfBsplllcO4XKkkt/uewEihQcu9YqEe05anHYVCFU7JoirUOQf6L2hYoM4DUaew4ijTHyTrkNIeJoJgrRv45r2BAO3wAS6FgR+fTlIH5DNz29q0Y6v42P888RZAjQidv6ou/53RPFc3U2uov1EfJMODgf7OiRJxJukAgAPUlv4Tl9fKjhcMnJ5QAJpLT0ro5BSttO0YpjuowcTE/qE9RWWwuSyzTzCKqUW8ps8ZtVr5/4UigtZhb+3ecmeTfwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00002T","name":"pumnamuns00002T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"c2480e31-6cf4-40c1-9206-215b010e89c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00002T","machineFqdn":"pumnamuns00002T","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00002T"},"vmId":"c6bb01f9-cf35-48b2-bed4-e3e7cebbf170","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtrjZSHA4IVom4d36kefnSv39hjWe3gB4l++A77WosTcWymWvMMmf0vZk3Wbp313xhiNsW8DuRjF2OWj5d0e5o0dk3TUVFB81zyPWeMCbQkJOpbGvS6Z5Ch2Y/7VlWzYPbuBWJ1WVn0ro69PA86mY3intwCKWrZ/Cj8lZCB1jKzuuhda/pUaD4WIGPGALCznbtJeah2rGEJtWmSrJlm1p58TLM1dJQd4AQhaGbKtPkDJSrlhKxh68nXrne/FpJj9latVJxJbVEo4HUe84/pfms7PTNaNlxfmlVRCwXIUJxxdl3e4Mi07jpddgPM5qBRqq9D7ndzSLs+wq+F40GCekWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000026","name":"pumnamuns000026","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a3449011-643f-4ecf-ba14-cbc4f7938a01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000026","machineFqdn":"pumnamuns000026","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000026"},"vmId":"158d4224-a1f6-438a-ad53-794011e3caff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArEXEZweynbi5WLgz1mlfGAtgDaiOq44Oc67qN2xhy+SD7sfUsA65vD1u4SRKC4ia+hThXhyr+Qlb5m/gD3EGI+5S8/BdWYg/ztLAaxZ0miD0S+EdotVlZAxMPPYIyq5WDq/jnzK7a/L2y8ddaFijBHSCdYhMZRXdHvn0wP2tS1lfScsKxdF6H/aiCiV+SW3JXQS3g0V+Iqy5Sqz86QkWe221R1nXKVAQEH9cnPGJkN1wxpP9NGEMiEPlhNNhnZ7FXXueCou1QyMbUQ/CLb09Peau5vTZaYSl7XdY2fryJu8Py02P2OIW59vVI8DZ0r/C+d+rct/bMQBZ8UVn0i39LwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00001O","name":"pumnamuns00001O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"cbd6bf78-52ae-4e04-bedd-350c49b7b2ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00001O","machineFqdn":"pumnamuns00001O","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00001O"},"vmId":"0052611d-8be1-4e5e-997e-8e171b505098","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJbosNVD1rF+sw9gU4BOHLAudes9Bc25E7woZ6rT7MjYanD69E+u/EIGqjhif+dwVKe66nOB4bODAbotSGdUigTE9D6J3JN1XL0hf438r076avEPNWZY5wQYpINzoqZB2T6e61QqlHei6/LEqbwdCGeKiLo1Rpov7ONNHkMBZFK0nCv6S7o1yOv+jzBgzmtPqOJEjAAJqda3Vn+FGG9F5pXzcKw99fOLMZFWmkvery8Qpw2QRXXJllO1YBR9OIChfMfzbj+h8aPbpdztjGYYuZCX4xjp26zd0jAeO32i1e+SdLGgjgYlcGXPxxgAm/G3NUPQM+znUO9/7uDfCQ5/awIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnunsig00002Y","name":"pumnunsig00002Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"93377629-40dc-4a7e-8356-4cf85e1629af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"60fea3b8-0b33-4749-becd-3f1858939fe3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8dLiWOyc1iOs9XpMjldgBG572Oq+WpePsCOi7DpNh8HTuJndlRZfwPuMMKpwxlGwIA5Jd5IG1ZdS9KIrVKbrmiXW9o+M96eXdFBJdHHQEL9zuGCOjfxUs7txoiqzkPxuBueob015cuhqQrlkO2GymmoFYtIpn1Q7RRKkBD54gBNFSBmm8fVzTjQQe1EoBrHi0rXBpF1ceG9/kvWnfmAChWXjvSzDNZXLuidorTQEJHSlHuVNdg/XXskxxOYy7Z6/04kC35KuEubD+94oUnmNAnIdhS0FScECP5Zofv7sUdEN69hW38X4vQF8RWxi3ATswCXqYbf1MXe90nTZbCxPxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000010","name":"ukspumuks000010","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7a04d531-5789-4d69-a28a-a4073e5424d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"14a0c948-0a5c-450a-9b32-95a6c525ba6c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoKW02kSsoZha26Yay8VfIeIWrLgNoMcv6BYTf5Ubke7XopSbe2YDG3uBIz+WbVv1IDlupLE/CBHd1/vf9Um4gX48GYusa7cYraA5dzGq7K/LqwBRgcl5WQ+jS07G+SbDQ+BT5MwgFOEy+tyr8mlc1v/JXEMj9KVVS5ME9tlhl5ybpg0Ou4FXWzjhAifcMqhT7QtHarJCL4R1K0NFVKI3vf4zDJ44tP0f+PMAys4ilq2ow5FiObg5ReropsNshDpf2IVKmtmZzhZoHkbgzoistXb7/MjT9ToEUcnhCxLjpi78AHzhk7OVa6tPoz46owR3TXhXrDdz8tfVGv1GyCWR/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002G","name":"wepumwe2r00002G","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"88f0cd47-546e-4f23-978e-f48cc399774d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"wepumwe2r00002G","machineFqdn":"wepumwe2r00002G","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"wepumwe2r00002G"},"vmId":"dfa431ff-2d03-42c8-9602-c09d351bda05","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoKEAMV/ZwixDrKxhxmFrTWTRCGZ3OBVbnXl7iD6T7Pk5e1Fj72Xxvtt2yO7GlySRh5hUoses/NEbiXzkr310xnVWZG7Cy/IagQ+IUAR1hyTIDFhvGPkoA82CPF5431ZXaCmhGgD/Fq8jFNe6NB+B3ET6Pmt61/SA8vaooT7lGDe2dcSnaYctDPnRdD5QEkU5pvyfXoEoehh8CzWsLB14fIvHoszBRQkjIqwru+qbv7ahTBDQZ1KS8oKLUSeth2TfaeqgEIPXImOqbK0YngcranaRRT9wafv0BQMo1heHGsZkCnBxFYDNNlZbyYVuaWEZT/tga5/agFOFtuO5ycsXfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000P","name":"wepumwe2r00000P","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9a27ee1c-abc0-4288-8e24-0504a76994ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4416a0c0-71f9-46b0-be25-872dbeb783d8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0TAqyicrWtKFZuiDUXR5EDel93eGYGmVpwzZRQt95SywqVjshDpsUlMXt6hbq4/9RqpCaoJYcqBd7WEy9K1fdejvH7eauTTuhRQbH5A9KmWOEBBA6dGUGFIQRKGIzvlWuNbDejs7CrtAvNXJ7NiPHfmx103NHAmRLGYWIn08/jXCOqnUikTAswzu20Vox1/iSUkra/rDu9vpB2xgXASJgld7M1efOua59Nqmdup5atK8FAgeDNMtWt4ozTBvJSqUW5oiJljo47+f6agrruMMX8Rw7cHpwh+Wzpft6lUTKNCBQmS+98vKLo0qkTXY7RgWsU3jtzb3XvB2mkm/kbWtOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns000010","name":"pumnamuns000010","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"559f9344-a0bf-40b8-a0e4-0c348f44ed14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns000010","machineFqdn":"pumnamuns000010","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns000010"},"vmId":"4ddbc635-1c27-47a0-aade-a9510bf028ad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnm6o1Ujci8+OvseG7nmBAiR+eeTgNTo3M4F5+BYRCPvR9hPB4WwNde9pkCdUH1pkhCRRwuxsUsKA8bEnudPPQ5JDV7UonnP7A94rl/G8lFxJ0KXr8p6aAzcxNDRIC3HHBdreevZTzNUDaRDNFH/Ag1g5YByxAFgxdpdMa5CwwhLI5UhxLK546wIsUlVztcpyQuWB9SmBKZL+aHymQ+SG+Lv/Gg5Y6rWWjhjhOhBBo+HKYVUnBA1NjwxhtFSMb7UIB3NJB/Mkjqsk2s2YOQqS2pLZggo9GXv2eN9UtB40vlhZSSDTqUaAb97TpEvWowL7EbCQaimcE3HppJb+lKOrcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000R","name":"pumnamuns00000R","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6d986379-be27-47dc-b2da-175864e5a4ab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:08:23.0981661","errorDetails":[],"displayName":"pumnamuns00000R","machineFqdn":"pumnamuns00000R","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000R"},"vmId":"5358312f-767f-4286-a8c8-9ce0059776e3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqXF5L1m9L0BuLPR0LAfg54NHl+x2QzKUfzCDRmKjG4eM1kndF0ngQAsehPfw/SeyIuWnypuR6pkHV6DTrpId9F2VW4UI2uOWZGo3HGTOBXdXqIUljXfPmg/dAaADx/4ukE91LCjuOWD1xKQMr2FvO87xNOVpHZemVAT2SKh4DqHWg7aJQdqJdP/Rca9MrPsh/BfaFhZ/G9TK0aThP7UTaXLQgjQ4d0D2NY27A7MvOIQkxz2cXYpfgACrIPgrvdoRJsyRvDMJXfyUwAUUXhMPlx/Z8tEUUepSWG5q9BoXwRwqahrnoiqOywd+kIcDGW/L0oJyle7UOq+yN0oDhJISXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001O","name":"nepumne2r00001O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6187df1b-776a-4e23-ba11-5c76b9732e68","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"nepumne2r00001O","machineFqdn":"nepumne2r00001O","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"nepumne2r00001O"},"vmId":"962d1564-fcaf-4677-a5c5-b9193a4ff896","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxiGNRdv7xPtB7sZaYJtZSiEksRWRWkGfQWG6GiDrCkPD9sJaaVpkapVy6DyvdLGsqZMU0tyjbwKM/Jmt1oopsC43EaICnyuMFUYkRtdJtOrvx9s4970xXpCUqhrSgg9IL4eW8BE/scN9NYFVGlviqnmjPSlyvgDxuf+JhGD8//lBjByyat48UD7oAt0HHhdnruVuGXxHObJoAdk+Stwt/qSq1YFi28TDtrHEmqL3bVt8E5RDtzyOaakhV9atBaBoxs0159Xz5vqEAyDyFhS94s6/1W5Tt8Ozu14P1B5cMCoHgeVrxG7+3voBuVc5AZgEX7FYD0FGLxPegU5+cKnTUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001K","name":"ukspumuks00001K","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4bb802e3-89c0-42f0-994c-f3a3f257c74f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a973e3d5-6c90-4453-800d-07930f23b96e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnwNXoMlOju102CmvyPiYXKqtvP6Ub0f3pyP8Q+hgyr++hgs1BjPff0sXPk5T7E0n0zPgh53OpMZidKIgfdIn2KfxCoDJXhM85cs7CTxKS6UBdAoPkIEHAnUPrXbi6FazZi/Mr9UDN1MiJYILR16u83x8yMyWULKZyPNLM4+h/l/j39vn7WnfnqniS1r1iq3wGxDx2Xs8YsFyROlMwfBpCXfa8j4uC7POn/fC7oFGwTYnrtfYZ2vGq6QDwOlpwkEqzaF1yynZxTIGRcuuI+emOtCf1J5JjfrRpoFo0sA0/jVbAnXuw/OxGngmIy9gmRMdo2wBK1aJyH4YaPzoc2pPmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000029","name":"nepumne2r000029","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d815c900-406e-4243-a864-757aa198dfcb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"df2fa5c8-73e0-4294-8d68-86ec73fcfbb8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqnKfbV6WquVOtvyTNna3ncy+CkhcCB6tNozv94WmFR+he0HW3X+weJ5q9QVn4jAotBUcvSm4mYO5NC2OHL0V7ueoyNB5LIODNDsZCGJVrpBA5c/vhHM78JqG0lpOn3p/o2bFVzbE1ACbCkqOaB8tAbjyLEhDpEM7ymaaogCL3HgElRRITa7NK/tUXVVN0j8CsMF1NUVzxm43sRiVSHet95axWIiDJFBPp6iR8oXkDt2Y8HDBYVpevLOBP3qPxMqMGe3q+kvIjxCPBkNf19K5aMn0/89+CIXF530Klzdk1jegqFjHcB8HGgjsU3fX6EOh5mNs4QuHqywQN/UqdCUHaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/pumnamuns00000H","name":"pumnamuns00000H","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5d555dfc-eb9e-4f34-925f-3086856d0ea8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T21:13:23.8800134","errorDetails":[],"displayName":"pumnamuns00000H","machineFqdn":"pumnamuns00000H","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"pumnamuns00000H"},"vmId":"9c3819b1-6c9a-4747-ad99-d52f196f579a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1OOKcMn2o/fhzjGDwoIfgCUtzVU+l631eoezud7EOr5Fe9fKjpRfdwPmpN2cacIoVhyDePiQqBpKbKZ3S2INzg+n34wAvOOainjHXX8qIdecvU00jJeWJWRZTcG2vDMjLhPXrFQndUm1SxC5xAOkwbyY2mEdQro9eNJ32UBSRVs+5iDBIllukGPqVKMKWtYGw8X15GrZTbr3edEDI5D3G/ATYW280xyXkGgZefsMRvkMmUdK0UKSRaolWuhJUzskm6NJdcT02YAEBvzMXqtBUsk40nuiuS2RKD5r7BiWXI0TFLr7dTCSt0w4n+NS13Du+4d4pUlqLeLQQbntJF/x+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001N","name":"nepumne2r00001N","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6146174b-98cf-48cd-83ee-4f1c4cc3f3d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b018369a-30a8-4bcf-9d08-00108ec6ef74","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAomk4zsNOJU7OJ2dG8fgzgc4vRyyORicffdyEhySKArtNrQeAIy0UMPtveGYXGN/89zVVymq4cM9POJoZBwge61gfhi/qeBAY4MXJR20whu7wR5sUbN49Rv0N/p+oozTECSUhxEqQtc/9XCSt22gpj/+347k0UvqfSvWpLd+F9zCr5KX7+JBKgkysQZIt9M8Cg2gf3OkTXgzTNvN7kMi5ikYyfClJ6fBoTvgbMFvgBA5ZBQEQFJrYKZUiD46aJWtfq46g/Lg8IOLz2husvNjZARedGDixRwXCMGbgv2QEYKAK/XEqUSIIQr7X/Tk8KhoZsiZF4AxsJTJgQWY8+RvidwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000037","name":"ukspumuks000037","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"83ca6014-ccb8-4fd1-8efb-e449ee1cf1af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"80a3a9d5-e41a-4e2e-a1a0-151e7942491e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnEwV6fy6LbqX+QFJZ0YBcuaC6ydnhzPdTf/cOVDTkthDegLhNs/7JZTABCT4r/fjr1n5rAf836lTIHdjRlLKLnsckLEijaYH5/hGnYvJwIYs56ZCdNec32/ajNnbHgiXA6AU5dWOhMaI2k+j2U9854UDYcS8hcke+p1kMbapf5m/lNWMnJK7d6GfTRW1+0zbl5vX6FzrJdb5381d0rwSW5ccQ9Nv1iUEAq8VwqbfknmbWedevw4wUCqSBPm7swWMA40ikFzUM0x9epVvDm5nR1q3Mzt5i+OP+EcIzsFlz0C5xpkgUoSS4pPQxQ+IyYb68+ycZsWSdtZkJNS1BdOH4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000021","name":"ukspumuks000021","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6ac721f3-55f3-47ca-bc49-5f7db5ecfb84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f2998f33-7aba-476c-a24d-3dc3e3faeb25","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzHrJjud5864eY9f7n6r5gx2Kv9JZtMFwGpmYR6lGmr+pXj+pzArt2i7O6oey/4qlO3HTY5ZnF6GpWawdCKj8eKcXUiXqoQqMqrCRAZSaJR1jhqlAkpCmY9S2d4wgFQOixc9t542Ua/33t2D3tkelrXrSuNd1wmgd510ICsNmTM2z33+C5nzaHL2f6TyCx/1PEmMcsMHxx4ng5rmbcwEsaYZ6OpxJtkji4kaA5pW2cnDtbhA+qAa27HIpgPfqOl0MVA7eHaAAGxEuE1HvSFzI8AdzQYQClndvS3t5zFiVORzcCEEydEPJpjAN3svkhmR2UBdySYiWXUWM3hOgx+wcbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000014","name":"ukspumuks000014","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"1f2758b1-39b3-4c5c-bc37-129e3bcc3093","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c335db19-7a85-4a17-a2e8-7706aab9dd7c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqc0hwhG0YlUuoQNtbi6igNnJtSOT0IU0XMFHIwfJxShhDJm2kWjU+k9ByGBqS/ZvFsL8+mcDNVCsxD+5GEamNJmZfO2MPw19JN35f+y2jg/q7psNBPF4T4c0oteDM1ybC4LONljxKVQVN6GNHi1Wg9YB3SdyIba7SMKNuvVIKmmfRLKEWRcoHzFEvicqOM8Tq+32qRig0HHDKEieBA8K7iVqO9YWD31hQ53yVJgFMKLjaPm10mbXkymEKz+MsrGCCG9AIzEyKA6YP9qaxXNautnr577qS/Nl8TdrFW7HRfsA/28fNEUxUZrgESYWU255fRMt+Mcs9rjyZQs5vuNsVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002W","name":"ukspumuks00002W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a6601999-1802-4a69-a577-ba707856bbb7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"57c69d8e-4d1b-4677-a9f3-331169bc6c97","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtIUAGdkjobKXVqBsycmtEZ6iif8CFLe/YGLihbZGQo8pCIP89ltgO62pJSud5wD/qgM69ponliSUzwxDRsjAzOKxQDoy4Mdw51VQ12Bsveo0qj3srzN/AFAHV3QbP8O6Ud8Yq8XijWHAn65FLStBVuvIR9nSz9JWnKJsqOfDvhwEV1zJ4rYxIVj9jtO/8HlZpHruH2R0i3eBOeSOiL65nfSngIBLnAO5qMqKaIoS8p4mkgfodzfLd3H+pSgVRUGbJ6WH8hOy3gkMmUA86om6/iVKbQR1hjkuNgZvIzYDCOvjq+p9DmbYWERbpyTM4ebOLmzZfgUmGxB6zIoitaybmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00001Q","name":"ukspumuks00001Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2db19236-d7ee-43e0-8ae0-759c87324156","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"abb7207f-dfb3-416d-91b7-982057b8f331","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA48jh2ASVP82y2jp0wJ4IDPZlxOGpQ/vRIbQcLVAlRK33OfKwjVdHIU6flGCLgEuT4tMd3d+7xXwN8NvVYYgGrPIal4f/FEmCjuL3fCRTZx01xgtd3hDP2nBQY9b47risTmvUpksSex8KkuZfpD1Amazb+EC4Odq4D7saacba5GHuCupaXVhBXhP3j45ISfM/O/HzhhxuY4vuZDSyFHJB5LPIGrjDADuIVyjs67oFzjrba1wz9+n5Kc3B8gpMtlmCPEBRL659ZFh1lxX+Wa1EVfvjwiyPZt/QilXrQLc+6LAzEQ0TDZ1XIr8FX/KvGdALbZoUdN40IzAesPEEdiiPCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000021","name":"wepumwe2r000021","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7b80faa9-ae0a-4fa2-a0d0-019e0d62d418","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fb151c10-b284-4bac-916a-f47df5c252b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyxfLUFVAUut97lRE9gfkznD4DLncI7zAvQRyc8zWXBkp4DxHSg/20jFuugqpyXt5YtYJHUVsFbAOiqBMfwLE0cLYvSP1T7eH5CVw0pg96TtpfNe7SXuYZxVZoa7CnCfA2H+/0uPIKmtHGAQEJkhUusU/Gpvd+ODPl8DtgCKZOQP6Bd5qYTHGglIhuZIVrMOnZLxqg3ZqgGwtvn4DZ6o06zV4A1MeHHZyAXNTk29kqmZwpZo9d3kUoGxhXaRB3v6NYgXLXrjqH659FCCODPQK/dCW24vMOGSENzeMu7pwzsklIIarKdeKELUu9Sl+4TQP9sLAihJQaKhTx1l9fuyQrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00001T","name":"wepumwe2r00001T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"7222786e-7da7-42c6-9022-a489675ba6b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"75c687a7-a167-4b2a-83aa-3a54a8cf4d01","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuWIUyhLC33dzEFp8nRdhahkfq3psjUL/iqO1UWHrIs3uXCuoo51iTFguUbv7hZFAGiL9aiA1lUeXwZtqhFUz6LPl0iMnAuwTL6nnk0HCtsTRyzBgmoAE2PjiHDvyKFIeJYG5Pqn5sHPBEI9seNgpfHXZWi6+B8KoOW5HgzNok1rEIUFjKtkzJNCFwQu8hWB5xcamWLoiXT+p3wvs4/gnyS52l87O8IdYRkO5ePme6G/1pbySIXLOQm5VvEgjYHkfURloihGk4yEJ6RX6ty4lcGgEATsbITJ+Y2wtGufAHN2I7XfJduG/ljk5hurNd9P0jOLZZP7XvK6mRsJfHngbdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002W","name":"wepumwe2r00002W","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"d44a3188-95be-4037-b435-ae0ff8c7de06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"07af714f-9ce7-460a-b601-dd63be590da6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyU4AOaVEFN3a9i1XKbvZJI71vekfHL6pIebhyr5qZ7swNjWGzOEH6J5/gOVfwI7nCCgAob5mmMNc+n8aVjf/+LL0Jhl+FnEdw8OTu/kXPpuYO/fA046LIsr0/NQiyJygxETwXnuMGDwrDGt4WkQqkwhPlxMzghQ6fdPNJP+wEiaBw4YnSAgjZelFV7wgLRXAOYeNeH74iz4dtzlEmDaYNIzxq/72TyAqTUnFPrpqTaWaMmWmFRNYlHKxB6J5q/fyqSEk7IC4JL54p8CIbDAs08bUfTL3ef1A8f/jR8KhvfXSvXLWaMbDphZrRHihxOQeMsMQ81GZhZfSVQ28dMEJIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000001","name":"ukspumuks000001","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"bd7d2c31-80cc-450d-bb85-89b181852215","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"94fcb9df-ef4c-4248-bfa1-5cbc14642131","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr1rxMWQUGWPczktLPjHbDG9EfiUN2m7/wBLaUf7mjuj071vJrT1CsF26/R4V5mFufBdynx6LrQlN4nR6I5sfpu7crJcTOaKirEy1j+sVENGwbn48z9kaYfZMmat+PfIie0/Xep8/erXAu3RvWKG8nLGWeupxTKtH6SB4O9G+ySP7x7GAHO2pl6TXFOo8GHrEyFg+3GYB9IGKg+CzFsIqxOl1aIpQHfCY21DR+ybtq/0fpGhvHV4BZnRemVDuFhXrWsu7nzeeNc2lf7viwYSFbeFobsaRcOSg8LJ8nF4hfhScEoyLlI5TmKGYEZQF7DDqDq6gPFVzjM0buFIOZ8l2hwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002A","name":"ukspumuks00002A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2d351f02-c426-4d36-83c3-e9bc418c1bc7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"bfaba6d2-993d-4567-80bc-d4e90fabc783","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwKoy50Vspnk1hYfjG20twf57sUqSWTddqHWfD49vwQIwh6oQ38I7SCdYdppDPFP04UrTFxUNEycbarLbdUk/ajeIG0MJ4me6G4GjuIeDeC3FmCWCu9kgSo9WxIVOOX1J7rJZk8JUksbKIYgUl/pQWM95rDzgtjfXzQUSbdHvpH8QbZTSK5uVPFVT91U8hSFj1wxIfqV0A2p3xL1t/yRs7kUBPJJeCq+w0HwOr4zjB8b4XVqIDHYWOBJFbq6zO3vecVivZtQzH+Zwt50R5kfyqZgh0iYqyzsa/pHzgzqIxNO2ZeOGKllxifHyBveobUcq8ac5l8+TDFPewGoHf9rXjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000U","name":"wepumwe2r00000U","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"bb44ac73-ae4c-418f-99d3-dc1dca609741","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"wepumwe2r00000U","machineFqdn":"wepumwe2r00000U","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"wepumwe2r00000U"},"vmId":"69d85b5b-569b-43a9-af6b-0ea4c4ea6101","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5no8Ih4a3s8eHjU7CydwneMblrzSjWso2IxESK1QA4MnBymHPFzRxGbtC2soBfN4g9GiZuyvpkVqUYtXIIgYujQoxtZoSkyvCpl5bi52TjwjV3mTNF2a0masSLRu1ZbVik7CynutbdLF3DYBvhS/sKPPfgTqRuZZCiS6zi16y7Tp2dqYy5frUm0di0GKQ+xjuyummvlwl9WPSDkw8fmIU+G8ulw5Gb/TJTOCmz1CjR6pCbtpZZUkzk0wQtd7wk6hsch5yFfI2p0UI+v83gJqZ56svvX1jGIR6Up/5s2/eKgtmIcQHkPzpoQ1qfPqO76cs9sheNYwG+HMd3/a2/H6CwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000Q","name":"ukspumuks00000Q","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"375dcb88-8780-4f7e-a9e1-b5a09884174a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"02067ebe-34c9-471c-9c16-7b27a5f743b0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuk+xU+eXPHNegUqmHtel4s2nabw6y5Rb9Oskn2vnOtrpoB3vdGvGNoUVNrlCh3NqbrdyiRz8cmVnMsqITWpv9RBk4P/NFKg5C0UcUP5NTQ0TlW+N0VDAuUToGejhRvOopCaow8DSqZeDGMK8cbrwIp4kgiUalCZBelYw9hovs50NvortUGylRLaeC3qfKqeQjRC4U3qwwjYi30EyyCyrLdrNY5IJ+IG3i4a9rKdfNnnI+XI89WriZgNco0tMqM6LmKs9SNxCEsH1kedxeWKYEy6kc92KY0nNVZfsyN7/dBlGCBwy6kRC0YN0LVTv8MnMINUf/REaqm6Vx/TS4biTnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002O","name":"ukspumuks00002O","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"4d8cf829-18ce-4eb0-a66f-728b26015590","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"421d7397-11f2-4125-832b-0540a4b078fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApH4KuCvNCxEc0+EhZMn5Dx1j8kzOxpeep+Q1rLpZ3vB7Xqsqb2MrKs5rEHHKiojw9xuGJttUxIUoW1VyvHJDG6EHfAFX3AY+VBfNcS6D6K8qNCVsiYJdFV4/jTrFsYNTTB22Vvw+YvP61jTVEKP8JjHbe4phEEA4M6RibKn5f0tJqXV5KWFFTYVnTMloAyAy62HmYdrr3uSdKATsIcDNjGQw1mxKgLMKJSbJ+/1K2c/wMiddMhNcr6lLtKo0Pr79EXlYzCKCnLv3HDdTaA9AYMbVr7bBWJNurTS3wHlmqtr1J2VaIz8EUjCW+vLuza5W52KKhTjUnlhNI93zAD3agwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00000Y","name":"wepumwe2r00000Y","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"9473f00a-bfc0-40b2-9dc4-be0ca8914605","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"349c297e-de78-4eb7-80ce-25e530b82694","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq44WARiJdQZR+pfwuteAfacHloEvwN+Zj4+AxiQtrj2iMLd3/CX2rvUu21U7lJKa+mE2e0kVwWobfp0oMzf7m0bO/vbjk8/ON4bZxQkKXABLz44CaQp1IM/Gp+p15VPtsdiqkeJDf2lBq3Do74hX0BJPqf6FLUhyrLW9FFQTXkeOdY5fK2X+EQonC9ZARVRV8ntai/9AKzKga72+GVUi3gG5RpwKQyDqceYfNjeBPaPDY5bwyFnLrL0K1lWURzOW0g7PPZppc3Hnie7Bs2V4vODL9N6nkYIcQHRwkAAcMqQJ6FMplBt+khkzDqrjiWcwsKuakVWIhurNEv2Xfou8bwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000030","name":"nepumne2r000030","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"05d8ae41-ce64-4514-addc-1d5f434c7240","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"baece42a-4918-4602-b68e-7d1e08452060","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAugagpEtdqEtzKMTLhGf2XW0nE3eu+hzL0FmULRJip2pe2zMCrwXZjyClf6vrQV1e9ZzOSHasdna5ueIBDiw/5zkF0frvY2GQSgGTrnKY2/6hCEyVEihiatUDiCB0nkb/4A9ov+WaMchDZE+MAMpbbBucW7k5IPrnFL72fvQ+IngWFASgndDU8J/imWQiZ33aoxqC/faqAt75LY2kfe+kwtB5XH7GCfEjHJDO1by/Iew8j9fC8EY/V2hFg6QxPmlh1Q8BkACdb+JNuy1SabQXx1xtg8gx9iBxtsz/AQNBL7TpEDXsAf8tbgZMylb31hRFLPkQMmxXkHKbTozhvcR0/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000012","name":"wepumwe2r000012","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"a74d1581-0cfe-4760-8b87-14bb40023f12","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f80c6540-0216-454f-a9b0-854195ef0ae4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlwho+BfsE4ZEv8Ji3Rf0wco51BEHPQKXSt/nXA7jf2BKU6BrJ40Mz6vVjXdtrPjyR9+vZz5hsUxoCxQ9Sr7f1pNDWpsR6TSIyvQmcju8Omb1X1G1YlCgahINAuILww0MQkdH5C7H+D5jXrO5v8ZGoTVMrcb5klDfDHey1UUtSsf5YrjLqrCvM2E8tFLisGEyVf3DDdbTYSXoqM4VZ9H/+PA6tb3dL65giRhy5j9hz+q8IQFdosSaZfPwok4ltUaykrDwcdWcc3a8OopGJt+3qkIMM95bvPL3muI1Cf8+ccYyXhYBNT9W1QevLfPWl90Pc0h+ELFckFvzkxfGoNoH5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002Z","name":"ukspumuks00002Z","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"0117bab7-dd70-4b8e-8a65-ea122145f921","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5ad1e8e3-0132-4c28-a1bc-95b484e1ecae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA90LoTdDUAwEWcFyZIt4u4SActzHrm/eVjwK6Ob7gPnFYAQbw7yVYVSzYKZjWrAF5S1YPbPxqSqV6oGSfH7ogmzP5axEFao79/qOolM8k9/RpD3mAS9AHQp7RGEgShRlrUsxs91MvQ6r5kz2pB/db1ZD5VxGxXrA+c+mpzuhaCq8+ufQz9V+/OvO1/A+yCOafEXWMiQvJF+/JRU1SN7k8ggxeglgjC9dp7MlXMp9eZ7c1NDIEY/zcWNqM0JZ8enmbXUbUYCVebjqjnbN/MqRdOQ1htDnVc8zgge1AYE+ozvrhicN6rKBFNqZwEwzzJ/uQpQBhj7W/7LWvhr5wT7tjNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r00002J","name":"wepumwe2r00002J","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"8462d447-b420-4253-9097-4a6f9522b4e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"59d8af60-0a4b-4d46-b088-26e8ad2fde92","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArQiXa8iEMWp/CgIAdknnXnQEOATO9mkvXSOQhAFaFqSo+P8zITNNPiwgyEtpjU37WKT+rlU9Bnd90lvdH7UWhdiVqURqcej2UIFHv31EVRlrQgflp4N59wfvch7/tiIwk/q77dzixA9FLsI+CTz4n22VWheD4pfzJa10Eunt4HOE3neUoCXtNzQQ8HHFouoME0x+z7Gxs38HI0onDuhtFAv/Rm3fP15GI7j0rg2IMM0tryNENZssl8z1mBvMKjneeQpw/RyGLrmaBlxVxHSLff1HEM8vb04+heXANzxfW7R7gF9XlEzdyu8999nhrj+/cOWyM5hg9ZZNdcJHsa/mhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000036","name":"ukspumuks000036","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"94ef1b45-5d62-46be-b10e-ec1975ded591","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a0bdc0f7-8b9a-4b3c-a230-316aaab8215f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy6kuXBGV9+Vf+fXnXiG6tAoTcwot2Zrc+DEdVsCKliZC2X335eZV3wN2h1s7iCFq0vdHZ9d4FK4cliqvU+Ynuxf7eJmc8fKkuBkZSSEvOTTi6fT+zfGXnREbfeNVlTxY8Jzr9OpPpGLamTI+x1HLsscIM7HatVqhXW5AqNoq9SOvo9+okAaiWsiVNEOoJHJo76t+82/YiGTv8QI99/RAJeSSttdvZHuuVFOTduKdkbX5JSMP/PntlXaNogYPdZL/qY+u/q/F46y+Wr8rkrUbJVgh1c1Iox2m6vSf5LXdum3MOGuJN6fNIz9uLt+QVwJodoED9WVm0vHRvLGCQWSdVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00003A","name":"ukspumuks00003A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"2f6e4858-77d4-4086-9b6f-458ff1a1a9de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6ada4581-d257-49da-895e-5d8bcb3d82a6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyJn+ELkGyVueh9WRBESV1TmnHzrm7OsxIHa7mvIQPpArVlJV40/NxHKKg+IUPfL0PXrV4Bpnpu5LRfr3HMlROx/9hWn3dOT54I1MB+Ootnd9WAuCTirlSsoeYwVhS31/9ALyhEpT3W1wR8lFrU0QbfHqLYI3kGyvp4zNudJbD9qM1ILQmCXJA3HWSRdAKmaDO83j7SJGpkrYYUYGQwh+GZNDTar/HhgTh/MjPgXtcu475m3y2xsEUhBF0gdsKADs4KsLxpyQbG8dXdD7SwzH8+nkKUqs0pHbpeUmBSMNjjHUFpeO2beu9t0Q3dQVqLq8dFpJ5Qfv9lBOsr5ARY9OJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000T","name":"ukspumuks00000T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"6217134c-170a-419a-8b30-760990dd625f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4d456c13-5488-45a3-a0e9-dce2aaeeb3ad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1AibWGCTU8H5VFuh4rQDTDxQaJCsiRa6yhXhJkTqnIRw3AmkK7bUPgzU99v89oeiaojM4PsQk+xficG99lAg1g9aDJdGuSlVY91wf03o0Z6EYjUYnXF5e53Y+hEIZ9ItmUENI4LKxc7J4R0Aq70X8ha+6NgeXDF1Ild+rvAIjQXUrkzvOyOOhUsGBW/izylXp+3IpC16U8st9LGO89RngtFJMn88x18ID3t6MtijQg+gWC4DzsQCypqvze7Os4UBLY8/iJvFwzIJAOvDAwVMGTgFVWTI5rXLNOQE49jWRo1I1heQb5LHJ5pXW8oL3PeFPpuKVu5Qk373Cd/0y+FPAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00001T","name":"nepumne2r00001T","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"5ac39543-53a3-4b2f-aa7c-1f0ac0dcaca4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"44ed521b-c242-4f92-bdfa-bab661b79917","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1ilcWUt2zCKg+LcoZAQGIHTpWrsQSu3lfKblRDVfTVfU+LSpkvSRX/zeE8+LU8sO7zmfVCI8qyX7UgGgYzeNWqgt8p2rDMFwOoPF5KuzrVQlAiXc7YOH+8Tj67XF75qaUZ8asw1gmjjE80xLUmNXpzssGA/UTzrXfsJtjX6rGFIXsVwpGq57Ua885OPNK8LVwfg3h/0gSHrzW0uZ2CTFhkYXkJwRxOlshRjeoNkHcIN1LVs9BtCeBI4AyrMI8QTeVFoU5V7qxKxnvm/ZRfuAFFk7+qoezWMjghGF7QoA0BA0kSOUoTxuv8V0sJ/upc3H4kYto5LO2aBgn48NU8lu5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000006","name":"ukspumuks000006","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"dfe29794-472d-471c-aa8c-4d81b82cd22c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"5e348c17-0111-42c1-99dc-0f6ff440991a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwLuc0BxvD+Ou+SDx4JVz0KOL6ifn/1z9yn0+CN32c9gcaKGkzENVNO0UtYVELsx+/9AEdoUPqAcfKOffA1IMgQdBiDPJbhywaRQB2BHFVIWUv8uZd/QNH6An5tPWZMIRK9zKY35ntb+5cVY2vi9bSni5FCGeR483jx4RMYcRSJYGP18EJksBms3Jm7Ebg2xJFPxyJsFEDZiLcSEGV96z5MaUAfrnMQPlZVHmgFP1eLV+WOM07rXhHzoIZjUbd+soMMD2fKKKLOZR3eOgDWBvQQJ+8JtBrF0iGJ5IWs+/+vRXw43psCd+V/30ptft6zpjVWOP0pSg72xjWI5gRLIMvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00002C","name":"ukspumuks00002C","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"aa34587d-1f2c-42d3-9f13-3d6b478edecc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b7b36df3-2d14-4689-a5e2-0e96bae64209","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo0jU9wS6W/RT8OeV2wTEz1m13KwKKzZNPk8uFtA4PkJ14PkqrNQnlKDiKPyii0k9JKqDUfGZ9maiy2NlOY4NcMzjmiZMECxXEvuin+z2iRLq8F/v9oz1uU5+QCy3aQSgO0Bn3piJMUqSJ37H+IVxn6bElkXBd/Ro1dOHEIglxxrlU49UWOh6sb8U0Oq3R/KEMWGLoCQdo/RIdJ2aTLtSDnA+tbXWNpi1hCplGC8c3o6JsxMORqtoygHm8lr4tcpBG6ep+MuazJPsoW4MjaRUWYnHfFvyX6DrHnJtGjuIMLuPvVo0gDO8gvArQpKK0x92Zdx+UNSxrjY0skvxQV3d/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000028","name":"ukspumuks000028","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ae8c48dc-d558-4684-aeb8-a6b8c458cf73","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"69b0b243-a0d8-445d-bed0-c32dd99f5b58","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApgxTK8/PLd+rwMb6I1klZ1QTACqmGScOWLzuJYoh5edQ3q4URZUdjGBp485Di+1Q9D6XZn3xQvmQdmRGvXRHKp7OFXjbq4ufhFq99KjCVuzrLaSFxlO1Fydvix8iHZB4G/bD9l4Eh8z3OMGZG7bH//Z5l7VAxyrTrT+HOh+RUQz7Y3i0veFncHwhOYNFvDPkC9jeCQRDBMhMLTsl9kRKSEHh9/rLzI9iap1jf2HWIJCxe+1v5nfT4hhnAiICxOSrfG8BZvqA1xX8RxmtHqVDthxAHizaXqiW60QsJ1OA3cLvaO8ISF6AsvpU00Mm/o5XFmvEGgLGG6b4L/rZHnp53wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks000024","name":"ukspumuks000024","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"708e9cc7-2434-460a-946d-bd1b1897ea6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"bb99a90e-fd99-437c-8ee3-b9c546385e9e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApzRHWa5J8d7LUCwoMIbinjK1BGIKlRzcHNZYJnjP2zJE0IAIwK9q6ZANeM8Ga82xfKWSHJDjKtf84lHu81RghLooylAfDmVx+s0rcWBXe+Dg1nWV50qlhfLC/b7BBca6EnvQeB28ZryrvwCeb70UjJuMB+WYnZGSxGAhNvyomaq/kK6Kai3kxwO7y4A7TSCnYDerzOIRHHkcMG1RhB6ADxqYCSLsmaHGq1kBD3NEn/wfxZPWIkMXFX8MzOPg2MoJA2N7FSgpkLgn3YfjOAmkIOnvU2kcQWfMtvfvyHHxTp+1dNeTsu9l3IgHEX96klwyOD6kHW/Uy6WtxBPunRUkjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/ukspumuks00000A","name":"ukspumuks00000A","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"faa78105-1ec1-4f7a-b91f-f83c48e3aa2c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"92528824-0ee4-477f-a310-0cbe048046c0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtbKnyJXB8YxIS01LxbRXCLKL9ESCo3BIxytOSrGl01euUXz42/KRWjRqLaEGInbore8unAxZWDX8bNaRsLzfo/CHR4rasmSsmPHLUkyy23HJ4dpBERYMesL8chijpXckhYRyaZQVYg/96Q7o1NnvGaW8dnYaXvY7qVBTBcoojXCAg7T209vcRGWH5HjyzqVpCLlxGrjlsXbtM79z+z3C3wZgxzj/aidlsBoB6FTbISNsYno+IfXeL1yeZDtVxrj62N+qKKjQpkzBA6g5ugJUZFmy46SXCwzw5pZ+gJUETy70RYD/x3YqEcedQz/1WHU5oZlr2JvxBny3LdN4zLjV0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r000038","name":"nepumne2r000038","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"ff4108bd-2fd7-40ee-92e2-6697d31eb79e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fa56c9f6-4025-4efd-b496-adb6b0a31a41","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6jYZ/nxQLfROjOaIRyxXAB7Sdv05Olr7oZO36L33jJfcbbkYZVFGAjyCnQft7QbXXO/zYt5nRzMl4gKClWYPkO6CRiQ0BfF55Ut/RoBg7FiHjiD++l3THcpVgWLoThsbtu3j0l+ruee39QJhzF5Y1ikpsBPTSGYwoU2rMRQkoWt8X4VQqO3Dy0dZs7Nb1rb8kPopy8I6Aao2bqqYzdKolEbx4+DLiVzDrvP21lwuygcieUGrdGyd2p6IjretOBtoI74DaKpWRyj/5QCSr1eZ07I24wG7FxLluuSpO5wX82mqhou7dXTCNxwbFM6PRvMYLAyCELXNOG3ZfVefAeW5XwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e69b5019-3d41-4b0f-8459-3861f690418e","name":"release-e69b5019-3d41-4b0f-8459-3861f690418e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"58563796-c294-408e-9b8c-8c8a182b72ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418126800990011832183671198107751121405667099507574611338141586567181783916395155506342796859361798545191659086256488972747058375131147532199898987067944259517035503288937946181799436367625231371678416360617633354996332676357765501840584921826502796066774888482143447684729512781243101868159761719499528701434921475454823714056959845503978378162328294430427451798883438141655764495950631446031695360296511","osProfile":{"computerName":"jianyunt2"},"vmId":"d67b8a64-20e1-482d-b339-0b0d9b6cdfec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAkO9TgcSwAWtUc/C2Ql8MNyMzWu+Do9VnpAMxy4Y7IZxWs+XelJ5+p9DAo1CLBu/+Kxbm1iZ2hmfpimETQRwyrW/Sp1vTC0mPiaYk4zZaQMI3CAPeKpT3dvWzpYj1VBJtqaoLEwORPSh5Vb50TqFBhXd/ecC1q5Qd0vTiItlBVSdEYu4Z/XZUEVjppQJS+IvPCVFSW3wAQYd29cDPJsorwG5vyeO4gYKw+23iu4Jxz9zGlxX9FiEyS7K/cPMzeOXqr1xj7bVnaIkkAtaYMS40+cXdI79K5WNmPY2i8OZTXw/6Vo5PVWQjqnk2mGRBe9sQ273mBMqfdCgI0Z6M7F+vEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-12c48a44-6dcf-45eb-b0d8-beedc8c2d7ae","name":"release-12c48a44-6dcf-45eb-b0d8-beedc8c2d7ae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5106d371-96af-4fdf-8e01-7c4905b986f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183935274258956328917884196719366824382603637455323339363235483078240880288818850493877976242854402102315773368638694950406827690883656622356522196407419930643446053999362675791653223513920263123162597549724470059298082475758078343844672225788358719940659753058474367616681355194511985276729267596074785648549002620342860301599286134329559745843035931986110381520083976","osProfile":{"computerName":"jianyunt2"},"vmId":"aa431d3c-ac27-4903-a2d8-01539c251832","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwb6f5HUCcVjy2WH2a2V1QBNClcXGGOpMpqKJk/d7KGInDvgwgX+/diJn/k28Vyj/A3rx7UJjaRjalV8HhU4N90YXWRmcfX9nLCH7TQIn/fGoVMHz40CM5Q0w+8w5Y2V+QXpSF15VU+LYBYeKGmAMDQWpXg/Q1dM4Bot6/6CY5rdIb1/weIvjdViPPgN/czYDHxkQbmOjaCHp/ZmRv1TkvMQmU/MxM/bwASpGw3NUNuUdhOeG1dbrlX4+DlOwnmwZqYuDtECOC0jh9dQbTiJH86ngjXp+H3zbJHQC17AO5pVKiyqG/fwpSjX+zaeoWKuaCxkJ3hAfOMWKDE+oqcUofwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-30daa45c-06dd-4d51-b594-042f669e7042","name":"release-30daa45c-06dd-4d51-b594-042f669e7042","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3f4a983e-4417-44cd-a116-0edf540269fc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184853221266345742115473989541436582397952725681399587212378068888897652959273731771788574277051002632537985951800296958103253512244855558699615142546088843686165991981673936124247635742198598423923789135259493281509701247938548886216333032477990993483861285125921727665821015519251291654686655096109729177850592584976667837806667244453233835972551478249955029532966913956303401175411496159393912911153","osProfile":{"computerName":"jianyunt2"},"vmId":"4cfbe279-7ebb-4614-81ce-15dc11195bb5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxO4H+9+N4XFTORs+WFcFM13JhFCTNBUBqo+RlUufSnlNlWU2ZC6o4bFm+frqmjWBQS+TknLcWOt/TvTuL3EPfhgwcBux9b4iZB05xM73ijWcpU7CclLQt2zBmM/UFE5uMN+fQDaHVmg6Pu4ho8wZ9Z2AlOxPGSsV/0TDhDrx6u49gmYkUqvuVE1tj1EIvgLieIYPW87hn3nSr6rI92BefeiVB0hSorHZRkBMD2WFyv6QsYiaRfQ7x4nkTdLptDzchysSE3RWsL6AzQ3o9Ayk+2raIZB2Q7e5FpxAewHkY7t0gtePRIqXWureAoYfsHAvIl/V+/dxwBV2Sq3Kz8PCdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7b2993fd-7edd-4909-98fb-901b7eb4cb59","name":"release-7b2993fd-7edd-4909-98fb-901b7eb4cb59","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"088b90a2-a9ae-4490-874e-56619bb43c30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188480765011942792913248109773464235463806192934141603806817057890604372197321784466921012322455978769539083892456494760735491295071080473462459347823861140085172363584941292309388356318922416144855676467787007349217941314306686532698271917917242238517304933319991149931701336563724941623119164519782437852815298740074631847106326520433293619376107933106541453763","osProfile":{"computerName":"jianyunt2"},"vmId":"7216ecf9-509c-4d65-8973-c3920fc23c07","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwLJBIQPAUn0/EZQSkWuKA8ZuECjvIvUvAEmdU8XhCMzhPOrZEJNJgajbQry0/Ldj7TqrbIwvO+XD63Jqtssq1fyamOHXuqRexLhvJrgPyKjECuwd/nZKaVG82xpBwR8y9A3FsQgHBzV8RCb0CQYAmPByESc1Ef73j19NLsPFg05N870PlrFL7To+T82IBEGLLYNeDCwHMD7ngqbP7hsA/ntuVsuU4/hoLIuhd3n9IvGB4zjEVo40GjiE6dJJX5i4E9xBc8b6TSv5Nf0A68bfv3BnzHyUao3+NLaPYwjtv7HLzJsaJ90EWltXILyQo5dlkX+9HxTTOT2ACzb1SfEm6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c96d628e-ee9f-4921-ad9e-4ce416e44122","name":"release-c96d628e-ee9f-4921-ad9e-4ce416e44122","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ac8a7a3f-bedf-46bc-acbb-2676e5a3fd78","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181656182972591487870078182697529979316947384658892600778849813198516288884350154763682301933847736817331175574616443851704806470228814552850262449249861333842475288121301334288312588853857660721201861447343653662488596072842221196474952198950374249087920962692779891984334829014101967412569495169873944377466870376378359056624364344174444301466329185970096162854884487446978683919","osProfile":{"computerName":"jianyunt2"},"vmId":"095e95a5-b111-41c4-a012-b61f673536db","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw9iiF/s+w2iDXGUbk9/fiCpG0E965wS7TQFM8nNOGL4LNUKOcVRpIFJGcXBfCOo1BRNs6cJlhgZMQRoMjxVrDiO3UW89H1bDG5EHMJAXElgllULpQGvHeFUysUD0vA7zzjC4D5ypwA5dJuMHFy2LktqO1v8ym3IzTQvmdeV3dIAaNAcGwOdiGlUW0vQGtPZEuxauzqy7JYisNA79rVdmGe3oADc1vALyvIl770XFIwKOM7Jn3lJJQ+aGxlEkBdlHyFoOr8XXdXSAGvSYMCHZV02VxR6qZ5SuXGgQlJFIiN2779h4sSCxbMRETOJa4iqy1xsbOyBX8vvxvL19eaLy7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b5001365-28ba-41c6-b3e3-3e3866966fff","name":"release-b5001365-28ba-41c6-b3e3-3e3866966fff","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"df07c1ef-cde0-4c91-b0de-2735cbe313ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41850816572760268658536365349418696517668536218736248553324325620689576393376233681932638185355431544636477040843361626028382558297587629199838062603818904142709337409244706651578431954022184597949920269213976495610628533317549020979236805525647394635341360992925237139570478983573887704056458855998176269062260725160523326793024417507489394958238727649","osProfile":{"computerName":"jianyunt2"},"vmId":"8f6462d3-b29b-416b-a4a0-5f9b52821815","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq+YiIfB2wnGtGRfgDLk9BQ+DsWAK0lfm9kllU2fml5wFk7kJ0yECXLtCLRkDKcsEKluEDotP7noHhj1HjcIcKELVWCacAMN8xUo4ongmtTQMGzIsXT4H3CDzvledaoZ1KBZ39DwDiciDEPhOT2o5zkub2sqdoWt7CjTDdrY5Hw2tM/KCCsGttw/B4LStkTVfpRWXML44s2yIYo+oG1oZvgh4gp6WLjzHXss1D84ywrwkzu5JkDE7ZitL/lcZRJQMZLpykoT4MxduzRKBWnObCulhvUqkIBUROX8i3OEKdDGNXZMDUA49CHUK8pVL5hw86XQmMwdLCHveCd/1ItIxKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-68065816-63d6-4704-b1a6-4ec104d0020a","name":"release-68065816-63d6-4704-b1a6-4ec104d0020a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d7e72802-45ea-4b9e-a72c-54855f1f6420","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418567838380437467195314563272242814437861216502780375172520778641027924875087265024699411466361485166925585705282777862142653516337198135674220634703232765259937738578172472204177090176007766481584813676261301381817100674959573232341306211424125068980527834625344398934448485834990079825760416177187370889451731512508837488088748498258559555673137104573","osProfile":{"computerName":"jianyunt2"},"vmId":"b0798434-0be3-4973-b22b-8a67584ff627","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwKtca4vG3dNxwr27nPMk4ENxYD6g7+NEeGXVgbOZq9no8g5xIZwRz6T1byq/8BQZW8rzGAufWmsaKhQ1hpgd+eTHiD+RVZO4WWu4lz5fK4vL+NvvjPNrgjWlaRjiT49hB0cbIgnMO0c64d/lPFFBF22aMv9+IblRdjeNkou0WNo8MRMHMTAFjgI/Wy7uQasiozzPGVUbqYT7+5DQkDL5g5BDE4U4ZPXwy/m0rMzeFVzyUOsDC+2ldFDJnSnnJe/JOisZRJzdnG1VOvrlNNtyzxcAF7YVQ0XDU9KWx5NaagFNUw1jqeO0lzXI1uscQSPbBbDtDCQVAipkelMav5JJVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-896022e0-c261-44b4-9aab-db4bddb1df86","name":"release-896022e0-c261-44b4-9aab-db4bddb1df86","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c19e5641-d970-4680-bdc0-8388d95a254f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189974157542993266535155045929929891142473391530596546462358651156983607784352141628326145414396645580338267031385624393972932988268932533178434151965741530527822494193732723456207624259247996141256597607672362644918718120591011984661423733208688306271095608583993123787984561332944611780181184771372527523576079016086786425857924580610419223281716927538111527636949343492539208670868076723175004609503","osProfile":{"computerName":"jianyunt2"},"vmId":"7c3af18a-6dd7-400a-ab36-e180e23d539b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0NSuZQjfwV5F4IBCWOJe/UA6Gf52EBhrP/Smg03ZsbfgZHIyF4o2WA/XgFxzaUt9gpJ4+jJ0RWoxIZQ5cb+e3kVTAjQd4F3NP2p+SVRGSMTFyRPJpsfFXSDmiO2ng+azfRyrrhqRaTrmlozwU9Rg4NVbeJU1dweBwy8sBZRGbdCAvVcqmob/W+Lg3k2BE8FpYvae9k+T1Q5DIWTlJAnE9Iks5f9KfCZBDSQEYlEJMHfGbG+alaBC2jPjIcbllgkAohDRTJd4DR1ctt+Pus/j7u/rqBEcYCEg7VvsuvVG3qnmTjIOb0stUxph/BJZVAn5e8h45CZD3f8XsR4HzFj1OwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-96df5a96-62b8-414e-801f-04294045d85a","name":"release-96df5a96-62b8-414e-801f-04294045d85a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"96275511-b9ab-4f1f-a986-5804a5dfe7fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418573453857009914577425053233917637183313580416810217112822561629489523328783288313755382944915019698681327897944176993715055242365764299826974349289180624160223253713879184712817800092152492133396381752132327628209622367658621453222292348639073682574353366583483297490458420251174518316402390587310500603224853690880364412007827464708129955384766604715053428968255","osProfile":{"computerName":"jianyunt2"},"vmId":"d68dac84-d746-4622-ba90-c4f6794382bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAptJte3rj+c4Xr/dwianxmz8S6RVvum59QVB8A9JRvJku+JaFtfugS2ITUeOBgfs1uF0xW7jTYdJISYJ/rfHGRzeChOhMPq1PDVLObgtpLeDWNSrahCGnrxrCqfqtbfIyyk0Ht7QfPPsaEnLqnl/MPLmoLSqfskcTj6EQlvsenXuEpJYtagApC9J1az0AetSJ+8o1jcNz7aWxPYP7kHFH4INEi13Y2uYOlCKOygbeo6YhZHHkI/zJWFRZen47o3PHzJGzycmwO5QB4THdWNP7WC1ANsZVT9HjkbIoDoJFG3Sdq/6XQqFIBbYLDd5RYRqvFobHZy1l31aQmiuEwHLDMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1209b232-c5ab-4480-bc57-65f3e4ce74a4","name":"release-1209b232-c5ab-4480-bc57-65f3e4ce74a4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"88a561ad-1cad-425c-90cb-bd2357fc7a76","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41815777339621158379639710522624553187708876556585581688497590348928531783139267246325584299215725656852675437347546956892042625177706851710759095601687641665749678925596697596797974927175782251182637550044712868183529987019272908815782289364322715634053734708674571893430766623534169943443864410517891702987447014631057697820195681029762320143697148654368623147657039361837235693705630","osProfile":{"computerName":"jianyunt2"},"vmId":"a661c1b8-7857-4d36-8797-c4f7a6952788","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArdLsJ5/7R8U6WKwlUwjEJSiAuaNsIlyEhTN89NGoi3Qhr3A4DjJCY6BHROyJiUvgoVQvFpODUGEk+SsjCkKxQHUfMi1Ncs6X3F+Wc2Q2DpvzTeIW7X+evTMDROgBw46y5rRghH+Ed9Vv1Chp+XDIX2RfD3ra3XaMJCrQwT1ZIdFTozJgCtZ0YsyZCvBV/AmV74zfijiLnq7iclVhozW+kccjEqbuoM+WfVf5uKgmQ50Ul+SjHJkReFNK4hGQ8JO0vJIqy7ZA7yiBWysP7tRydFTlVDPiZivjljfWBpSSVaCVDJwXyTNkfmYNtiyYA2r8n+SmX4+wI7EKbSWllOSdEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6ba3a6b1-c6ec-49be-9867-7931697d508d","name":"release-6ba3a6b1-c6ec-49be-9867-7931697d508d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b1c0d295-e371-4b6b-a2a1-248b2b12da03","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418322977739301893479334793449521322181971369976103563844769599530520326265121630025338846653363204271493675514511820860113051907462131674338227882376740168652358744408228716551579876469822260221084098361388876795148587485495281386795088368741093572932110133279101089213767193868224868850655064265110351394603974770079437605764794445858293369782858884854666517764","osProfile":{"computerName":"jianyunt2"},"vmId":"b42609ca-e9bd-4a93-9f8c-0cc155a0a69c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1uucVzS3yN4dR4NyUmfTTl5+rxDDl3bHtTXP0PEXur+bQNC390nravQPSZIV1uHIExUPvPmUMDLxQudxIo58bzj+3v9WXDTa4n4ShjsQQ9dlKEaFIRvFbDugdN8BblzEWmGYhVxiOpsA2kaPOYYOxPmO2o4+sKSs1OkLFxNzk2AcORBLKwhwb10P30MwptO5EXP2gsKymxzH0W5UJfvg4X06SLRfVWi+KpjhtIOJ+dV7JKRP6WBvFy5jycIRCgZtbEFzO+OuGMDUg/9zKs0EdLTaI3yd0tB5KbM3zI/NR7D0XIvtsi8yrcLy/eyROVubWl6fUJUzMfuDt+PKAnPSdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c99d4767-27f6-4e79-9ee6-88a8cbf91c02","name":"release-c99d4767-27f6-4e79-9ee6-88a8cbf91c02","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c07192b7-6dfb-4fdd-ab83-91787b435276","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185442368564771767810610356346467971116451667384879215971690877645267444279107120948150128800287914877888444714255441598678465141392549426838985196582549218322836097863793410223501384037398236780316068127683745236693318982222240829787326209293613918462801877509394413725872722912130437755684231169695547874303286673492153268925461707262483160007029645878252414764127012207669631667788838890272238877424795038625763","osProfile":{"computerName":"jianyunt2"},"vmId":"7dbbf583-e8d9-4f25-b177-add07abd83af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqYKXPHnIo2NVt1Yek5b1G08hitxAJAuo45sTdoJx9ytvN55sNbv2VfiNfOr3bX27vNB9Z/huStZKacaqQBFofJxsNU6NAZeCoMjdnrn6I2Y0QsSir7QjpfPi/Z6eCRu3TVdwHSvKs88/7BInNXbrxwspa/naidzs1aO0HLAGAUW3Y/OBwQn71T0eb82s6GNhkoZ3zdGAtKmJOtBwzBIxfIDA5UHvLBRox5xP5ZcUG0UdNHiwR0OfshXEb3sxFTXyhZbOJqyGUcpGOyvEH8hTbOUDwHLkewjohVUrF1FO/tBph7UvqXPrCBq1SLTz44wErXLtFdMfoGtN1mjCEtrdewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-efead273-c89c-4dd7-8c9f-f8ae9d79514a","name":"release-efead273-c89c-4dd7-8c9f-f8ae9d79514a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0d80b34b-f877-4386-8f99-98c75026ba1d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41843465739685843873928825751095877228592416456384933463000813460477572418306394895780825570945637632765670638692831978964605147252189976716126828970392248457202333875038515898850379873926244616733427352464876858149732057873418225349170614467832462254416650908330510097752717475812784186863736313478570859385","osProfile":{"computerName":"jianyunt2"},"vmId":"bc151d7f-4b3a-4788-b469-28fbcea4d8df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvqoU/z0KpmR6Rrl6ObHmgNec76HuMO2jab/h99Kv8apVW5VBHtFr94rK2g3YUGA5/m2mem7z0fVi0l398nwn5QSdzF7xU1sBXkUicWxO+O/aML3E9P6oc9B5b7sb4fEPvPrVPYl9lJJneSMZFXXELx85ul7lDd2o3Tto+Ph7UUmJuxxpuHy5cLxFP4sQj07YdMByvOeb24ZmgIg00UsaKgGWTLJa7L+OghqHe4tyE8TBy6OHeSKmG3fqnIt2E9w0it2bwTxbUK6U+GEii0J1L2MRHEjuVyvMh/oL7N71WrvDbfH64evjyll7F1+ZzB0Q+drOxwGvO0zkR89Sz/o8IwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b150d419-143e-4bc2-a692-8d63668bc978","name":"release-b150d419-143e-4bc2-a692-8d63668bc978","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7bda45c8-46b3-4e7c-8c17-98ac0c076d53","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41832639461951123175126314134273321594861367485441858849628392546873620782168092407674793398274850487479400186840770193031368440309584209681855115334633381085296749796192589393713686163652895777451924923865423268485184938179349755763676844518052194041271564522759294743801758373436684514293438691847395384606704269238869747813994051112","osProfile":{"computerName":"jianyunt2"},"vmId":"a11b8e6e-1549-4615-a21d-d81e123013f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAruNVTGEOCpUOd95us02ZN79RT5gY2vZessQgCxa6qkmcU7kf1jtWo9ZmBT70YlP/RMeXE4bMkriFFP+jBtvRBISoexhluypZDFM+QyzVGktoDjA2co1f1z6aMRS43dLAUI+sjgtCsR+85QNAq/fsQBvlHmvg5hEOYHSR+h6sfY0LFHurabmALsVO2AODaA3UCFa1rRCW9vnI116/XhbmXK7loqfEocR5REEitFi+GWGM8re9d4qd+OBeP6gHVVf7m/yLQexQV6ohhWQEAeUo8LfH6F3YYuTbbDUJNXvcFYur4jr74w6jzcydge9P40SQQhM+0IwdshcclkGqg6kZDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d407f8d7-f213-45fa-8cd2-7b151ec4ade4","name":"release-d407f8d7-f213-45fa-8cd2-7b151ec4ade4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"041eaab0-9607-4571-8bd8-fc492f5a4ace","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418885189011290885756770349445943863367547170585432156479782414044379792193011423797174357521239412326412748077974773080798840745010004904891777312894620899704667396832313337760549451286443148711576448263874727447109096693638654760015456881183876043268387464333367233687835443040447719357101773185153199","osProfile":{"computerName":"jianyunt2"},"vmId":"cfa7277d-6ff1-449c-ba4c-fff6d80415e6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxCy5btTYuE1L+umWUV4aqpfLfH3LHMF5YfQXLMOwtUdIqYFBs8s6yYloDCiUVW+fkMPQSXeSns9Antt2TAbr/hpPw8sMJXX4MW0QkYP7gM4YYwk2/Z3ILScLYurQunioILvfViFNi6GigJXZTMr8Edjq2cH9i4ou/f/6VmAvGZqtgat21pX4nZ9pN/bwZSdGayapdl3BG7WDWlJyNi3m0aRhiB+AiXiQSsbvy2SjlzRYkcDX5EnQK96z7MSVVZ5DZbfMsVEJmgIs1IjkwWZWeoK+8bI43J6LZqXG770LdnnYNtOKT/8PVLXuEeSkgVqj6NK11yND8YK7RmjreGphVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7ccb4a1a-3906-4861-ab7e-1b2340be3347","name":"release-7ccb4a1a-3906-4861-ab7e-1b2340be3347","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4a69f6f2-2179-4f11-87ac-6ba2818590e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418432350928149953943662594003534266712383175158098956417178132144176166039468665878491361691694935881712056395445441044158264468518299493115043389990877286291146535820613184718060832540265414279928349218278524792301244288983420790722884707719379904225794218531961772469164938002970445459206128412163015964351214734048336110959894958194009545474818488697463509774490244128642209963647271","osProfile":{"computerName":"jianyunt2"},"vmId":"d611dac2-0074-48be-b6bc-c37d62902376","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvSlYht55Lj5K8kjcfhC0p6p2jjPoilBxGH445dH7o4cFrD9aCIB/xFHPI1qqOeaHfnfPRdDUgcrqWCaEQ/bjE3fixeWFygR0ru1vx3el+Er6CuAwDLd72T5JcGeV9fp6SyYIGkgwOHnBBvdScSpTxdZZZKsmGQ4BQqg06kOo9NYkZCZexNYiWrvZ2eYNNPMHLd3SOCQ0vehbiOjLPgqJcmavdna3oldcJ6NTng+BLsAjJD7ye+uVgDbDvmoaW3jZAkisx7djJkbpsn5/07MAdFt8mfvYMLBpETx3rBuyu6pyfhJPTZhg6kN23tzZoM3/TDfl5gfmXNhxaRMnlovk/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-81148ba5-0f2e-42d3-a4dd-852662abf4fa","name":"release-81148ba5-0f2e-42d3-a4dd-852662abf4fa","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"88e26454-5955-4d2d-90f5-01ae89b4f918","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418695313084882459143988595532134566334331430376739039362367137806366792518969502032910210928236598935321794956368378374871990913685787912898340947962272640435145558929467912266860417780163936123574644519184322454913902292197312850665785201542248255125827432834084997584791171260892094959678878208785496684688710206696245102717631976474630902392947278472733374078902966701337283054966789","osProfile":{"computerName":"jianyunt2"},"vmId":"52fc5a0b-dcd1-48ca-ad1a-c0f09e71a0de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXiEy1N3cXYlbeUYHix9Udq36RqTwjD6DDT0mbg0eIpecDSUSzRh0lgvSTeyx41712OD4hSW9dDZaeZgbzbhrosdUIUKkiurGVPYaosK92yw/JUk2tKr8TulOQKUa28li3wUA7UvZ3r4Q6JJpGgdLcloEw8Th8Zg49A/XJkutzhS2LiRVDraXJb/k/7GGMp91UqDrlxR0LzqDEt47efvsN62oqi0oQ9pe6Gh4+C5UHc9LI1Vs2utQeFE404j3qQEraKDM4ck8zrkLl1hPgDKakg7bAIwheMxPqgL7EJmRqQwex2oNEu17jPKVzYYjtX9c2WXMRdaiet8Hbc0nX3C5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ab7bf7ef-ac82-4c55-a35f-db700bfad437","name":"release-ab7bf7ef-ac82-4c55-a35f-db700bfad437","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"728d1c78-0b58-46bc-98e8-b854b98f86d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418927668487837531744957414644160429980690020701754581033075321142163011447285313875020746025314369120143434865638286483465407656369224183202357170038718313889378172235132311826656078198915971628495904286881306175949971157365875920645892866133973253951189881699159986008051766770808956862295961866343158","osProfile":{"computerName":"jianyunt2"},"vmId":"3e586866-56dc-4987-8d85-82d3c67dde10","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu8qzvvs0I42Ul5djd5bZUWIBPdUlsPLBoV4Xae/Mi4FXrtWwN2wuA8k+tMeQUUQWFM5y7y9tUscWh6SeChsvkq0PoGnFjr85DZWcciPAOqxe0BDaEznZpYqz/4MjNCtk+2xeAAlNOq5IuwiYrBU/wRpED6JI4tl99C2CAhwpwL98+sJ58+Nn51SyGZ6s9WNxGY28UTgesLSkma3UH2AcsqfOnXPAuUXWbyPHAFwil23vtBtADG6cN+gVPBSLeL/A+FQjOq5NXU4Sq74+hlhFhg1eRtsbjXL+w4+hrByxPjcS0K8b/Hf3v6eqOWCXBK1btxEzqcXY87dJqLKhpla10QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0bc1a348-8345-46e6-8fc6-a2c588756d7a","name":"release-0bc1a348-8345-46e6-8fc6-a2c588756d7a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a41bb0db-7d72-4f9d-8156-7d4b7054e438","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188581797266002372859438090442474476256450626556852400846558805342052828709252854793667525387874263618446430245238361094445293908477118581684940243468825735473913060678614319040995514225784775879380187119133295363562714826876771694742423464940963973981508626344625811140648063887642695796598773091332724373197851874027114656762269824151463909951498488579368927810142061451200","osProfile":{"computerName":"jianyunt2"},"vmId":"c3356e9a-c5c6-4fde-9cb5-5e1fb829cec1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0eX6sN4AfaaPEqxg3z9QQxB3Y4agzkdJHz2vojD0ewx6FjN2snaT92x4SazfyMe05YKGLGuDLpExJeyCM9MOnDZbRFEZZpaTfVJV36p0TNTDXF2wrz8S6/C+SWt/aEJiNJozxCqsfYLtdVpEZlQ+3o+L+OVro4fYWqvDn6FvOXADU4eY4x/W1bCN33zybaoLmKCURXOaEzr1hR62chKRme7TpXFOp00WuGkIq8Ai08u79Xk7K3pVnB6M7wJv8++IYvL8png23nmo19A5scC111yvDoICcihsgm4LGk12HvSSZ1dP/mKyR8Pe8JIvGALYYf4IDnDZ7xUHaPDLnpMNhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e50e8c52-8f45-4b60-b237-c705d867fa7a","name":"release-e50e8c52-8f45-4b60-b237-c705d867fa7a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1b523aea-a054-4745-9dc3-ec442f4f44cb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186211473076163364223538935184133691906105635446440049105666866792253870509370050422167637089758718479866578553337598829447856960460162756441150032004875290265724168216205004704691166044829423448964295139826041951020323172240610246440842513097292192274959703130081607056743114949489083211796896212811948561670987518926712700542447389015266588361294172555376405330536255627829667398133542688890862623286","osProfile":{"computerName":"jianyunt2"},"vmId":"20ea5688-747b-41f3-b329-ea21a0da2bb9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArlAUz2RcKxGGTTxF0BOzpF74UvS3v71ubAtDAqvDzs52mYKATFzn81Pl8A0qNfXVy3hXd1dhCtS7OQfG43ZmsFCBtjqjH4yvFMeC3vDCKVezNOtnvjknppzbyv0/7TRjL4BApF1ZI4RHN0M7YzIag7+kVolJw385w37S50rcANL7vxgoHDNSjwKnQ2pnx3025z3GTQ1pxZVb7oW1nnYnhFTkMp5d8OQy44ntI1hj0iO+JPrktKd0ViQD2VzSuEZnb26J6MkVMNUbhrra5rSjhPUeM9ln5oHAcMNDlSjIbTdiYUaeD6OM4+AhrmFyrYCdVctiumKimQxPkJrXy1yvpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2dc877f9-4e8b-46e1-9241-a446b8b01600","name":"release-2dc877f9-4e8b-46e1-9241-a446b8b01600","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"94de9c03-9e22-4170-9577-ad212383eda4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418498111091087198073481415954926319947564597565240280261485107209123988775859618176295292640719444980166087502357471294951813636551562121380293740912650803498573116823019808257634894780012374263440131494216585072718547643957929086779500591287762600558559445494219141339013146572751162454487365972936332184826219409710761442156309246829116824524895787156744392094218331225898496624713985458319559497118433154155485701","osProfile":{"computerName":"jianyunt2"},"vmId":"ae720eaa-9b13-4736-8216-32c1a1c7d402","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqnc70XWxtYl8beuRqCF3kdMF56n7fxPKAznnt5ZP+NmvFbGGJkBJMOQxZGoZiGHqnnVeu/1EZUvs1TSXVerftS4+LuHRFZzV0lfn+FWtUlggYFusdOQnFS96z2SLn+apnhAX/AfUQtz4NSGItK3EZS4+0DYUWpnALWL8WbV/opBiuf03LIWrygG7mtbFfSAfP5otl5FMX989GFQaZA3CmUtzfq0k3XD0+9SgYEqi4imzB2RgPVSW4ovTWBm2WhZjENHCjyvHF+P/DLwOFh/xFVNhOB20kIp113rEe3NjNLz7vUcfyaCpcrAAXDRhKoU2AWSpz15i6/uaa0y/fBPNlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-62ae10bf-6ff1-44ef-8bd9-201aa9583c1c","name":"release-62ae10bf-6ff1-44ef-8bd9-201aa9583c1c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d89a83d0-cf62-4ba4-b047-bdf6db0c3b3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418945511102454606921073207650624339252944505521567455888127103721217151177276698698882700927857331939147859784419499693567217569408692834357099271461117583529388881857525371098279355274658961594121548217939646256403963229876545274008901624910233826931417740937135831315995984536765627622262488002325424445021375620439586377418566093790453711530530252274557675221843500541","osProfile":{"computerName":"jianyunt2"},"vmId":"33f68cbf-1678-409d-9bdc-da67164c07b7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8AOuvARTq5lwPTZSN5Jajn5/c1nLT7X0BXlM+BgQ0sKl9nxOyryg9Te14CNOlVVJAA4Dr5+13jAyXClcxtwX846xLbcY2Nxb8s48CEI2/IGq6pNgeZk155VrRDyajAUCEZdOeFO3jyw+oLveIQaUBZhgwM+qi/JYxU6kIyq71lgn5i0M7rZ97aOe+hLI1rXtsLEkPqU8Qwu3vp2ksTAE9pcNHx3GLniP3rPPVT2AGAEXTMecrlWYzuXmiHF9KbTv4Nr1Vps0wL8YiPyFcAacXeURtRQWkfFGceOTti2sbV0pSb+smc4MoM1V2vCBIST+4stW6P2wws6wvw9DgLge8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b5f6f2a2-64a1-4077-90d7-e64fd94f3a5e","name":"release-b5f6f2a2-64a1-4077-90d7-e64fd94f3a5e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8087ca05-4a9d-4c90-872f-5c25c04dfa51","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41830747781113873574856378884558159674138342605281027926728511168812747750150734900123352099632465727065771910297673746599741502859581393395476561261363542829357125594535815546166194464223451719982526352607697870287664380136951935910775936768247460426227897957518363682475832868985628591855095702771693684891472059417341999985265975842826149426433521083008765073473482766880707224050328235","osProfile":{"computerName":"jianyunt2"},"vmId":"26bbae00-6d58-4cd3-9a40-a2de6c35d714","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv/5qzeOhaXS6EAu5DjFNlwiWp+a3TglBjALnp1/TZ4dZpUvymTSTTGB0XG+rTpRzZ5Cis+Mw4gYKsIhfNm+pytKEfc1P0M0WgBEQRdZiSSeEf6TuntZXLtWxDhQPLpD8a8HRLJa1J6IK/sry+2aX5GCT1+X6VsfovHfV/7R3GsJamwFFfqxDB2HETUGZqHLXrIDeSKMbFIsZyhq9Q2WN3JkmICcz1syvpasPei24sK7e0lKfIw4LVJOlIgDpfDuBTd8UE2ohDbXe2yK6OLxlnxiIiysU458SKVz+KSXmy+xlUoaxQav6Me5QnJ7v/F3QI0Ht0t5klu+b34XOToiCswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ec43bd7d-eb03-43b2-9e65-434481e0896d","name":"release-ec43bd7d-eb03-43b2-9e65-434481e0896d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c18658cb-b52c-4d7e-8859-d57b64bb4eb0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183668135060132232891129854459537630574649688191898907483388267783403909036452632228646936141929395617282608728049809367259219258187086835302550288661065959977336907692707491233703508118106456620984957964130393637805478353624242152389976613750464335133675791193471800287865027775372646176443546242412381752639568505776406590856595545558213005201216211619547969230002518803378683267","osProfile":{"computerName":"jianyunt2"},"vmId":"9b77a5db-c85e-4bfd-8e70-e08ed4d994bd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7T7TanHfK/5l8SC469mutK55fauukd2jf5ZIkKSEmddFZZQs6YKY2CDr/R6pPKIsoCdiYLu+vrCKKJIYQK0iN9Oq1x7vQU2CNO/1ZjoSjM1mdDkDA2SgnKNTlwQTdky95c5pdNv8zENVOeDmvEm85pTr1e5sBjBtq0TxgFMfQpO0ZZMOaOJQ+4M+kNwf5Xw7whWBIbCDFsQ6wTWKvw/+GM+oLz6aPtfhA7ZcC1Yh7MZyvNF4lh1CflS5AJIbLNThvV9sH/g7sbIc8xtZ5URf3TXRDVWCIvzxO0Kfbx0Lb6Jg+T+L/IWY+F26uNQtOfETh4MWiG4V+z9AQfvuin8E3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8c110826-70b5-487d-801f-07e3f947e941","name":"release-8c110826-70b5-487d-801f-07e3f947e941","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d607e719-5f25-4bc2-87ab-fa69b56ee77f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418276914339814863980771087143023275917556465523018359239983282459361112768955661091409190076899849111987197544723694512193767349034312405870749175504977034316896837734918675466499394386472546778618254895496364410134485344115702546773690761510906563348182573438763304606813941091458916619226815250410717256687759327267554885389854863051918217760731577983596877749808231908006","osProfile":{"computerName":"jianyunt2"},"vmId":"720a3016-026c-485c-bc23-82b0a4acce01","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9G3S15ulOJ135Ck3sGdnPy8PhiWOFOognDGzXupvinGMnR0cF2YmxZTTR3xe6evelmKdfxBg/alDbfI8jA76u/7SnsBbcMacVx64tBWsE20UvrEpN6bwfdLop82H8ICDZnku4tnIsPShgCsgabtV5hOIRT/6JYwY1lGMnq5BYu2dfjuKLCiYH49SUXVaDpQRFO7HHHczlgzPvOGs/4SC81n5pyCwIprzjIvuKzyHX/iNX5XmNDSOB+v6W4MNRBsd2WtsFTGUFrgcyQ/K45b3VhK3ljoOnxD7jPPdtn4G7xBJmpFiTtwoBQdft0gCB10QWfeoYvQrxx5jaWSEH4WrZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d7f9a50b-88cb-4dc2-af79-1f0c797e53b1","name":"release-d7f9a50b-88cb-4dc2-af79-1f0c797e53b1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"00de8ee3-b0cd-4a4c-ba10-c372c96cba16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418688446219065335667841143986748740584382615273571868166010192926763294883680357456965097073271887618164233643163692575472122076857900440277785254303171801584827310322634292141652412615861978873394292068098077114727542069542498732059337382031159379464475990830148316196654625141845658066129255795784093893291119295528998921020365561927716901315816582684584724398683555469","osProfile":{"computerName":"jianyunt2"},"vmId":"cca53933-14e5-4586-bd38-09b74eefd96b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA65dpVw2TSmH97qnA18UjOWukB05auK1WdpVc2fDE80V0L4LnelkFmA892GY9PHh96gwxOhg72a0NgCfTleui1wI/2EuFE3zoSNguRZDZGEr04ARgCiqvC1SUAvsTXWyFBPqNEBL9knGXRtQrlQZfzRjKOHhJQ+8nFHpnvytdiE7DHdOWOaau45bOvRiui7xpp9TFeIvAH/1cUt6jQDvpr+BixuoabJrgmOsCZSHbafyqFGY7c67ltNYmbrdK15Jxq8ZsXkBdgAWoRYY626iYZkea7cP65az67Ih5pHart4ANug0sIG9kQdGSNXq07L6ZFPO4XsFgFnEBuOd8o82ITQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0a173cab-b3e5-45cc-af1e-04c85821e73e","name":"release-0a173cab-b3e5-45cc-af1e-04c85821e73e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8b7615ad-a831-42ff-860b-008afc36d623","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41867012219449673297055408697239078347966897956966266365763950609519729887778404444052932400838931339767909325222135898038784893650673311439960725393593803558286045472184533874861381485712823720496193563162252850746138516625229726262697987742098024066482888246065702556380181231864686990097045516519555272236482676416265247298444886136764759003460633828530482627625748638645","osProfile":{"computerName":"jianyunt2"},"vmId":"6c201bba-05b3-4b32-92b4-c7d15c57fbd1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7K7Jdo6ru7BbkQK3bDVppXp7fQV/8+WOugQiZ+/I9zjC1B0aTIpQeibd9maex/iWoUNquDBnv+91OgPPHaQF4t4ZZUF+YfkWRGxC+N6sfN7CNNG4ihnPOOpknmY0llP2YDs1tIBp0ww3F+TT6MEjhkBQcJCEQ7MVCI2hxeIMnHtZyL7nZO74CHtgQt1Yki6Bu5J4nqlfEecoMFR4IXZfbOLH1sfUwxEBVRC4/Xhv3jBC+7MPxSSkybW/IRALTYj4k0q1JkLeGQtWDsuTUQDwB+tLhk0JBzHuvynpeDcSajIr6hsums8rrdezP0DOdvnH695Z8XIf6JsG6BZRMcn6/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3307ff5d-6268-44f8-9bcf-4f2fe04ddaeb","name":"release-3307ff5d-6268-44f8-9bcf-4f2fe04ddaeb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"525cff3d-ef19-40ea-bbca-3bc3bef0eac1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418280268656475897397708084122060543236897820172172332877098982458692371391256856517510872729068415344041671291226087801425635322891873109881684531299969279899452136995146203398414527003787768227621401387974799839666548694250288913631435672510565319620863245294068128202884638312681912421533936636894272388418092311956186865807043996753454508329913791333483197737021112439616991644182955488728866486","osProfile":{"computerName":"jianyunt2"},"vmId":"0bd4a55d-9e9e-430c-9d15-5c9324f311fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1kVrTL3UT2nU9ryeQGYl+mGu8qC/F1XDTZti32u3v5iO+MpqYtC7hr2rpF+mUgw1t0+8aetug6hFLDJLmmx9AmhICsYGG3RPuSjKN9X7yfPcgsOX3ym4j+plP9kriuSijIyNblCJC/fD9nTsXqKpAd6lNLnm7YRshY722oiwLgdkfvYS8UPNQ3lsdhCPWK4NwgMtHd5zBEadaQxbKo0ORWq3APGl0qSXT2nCwUPcWYEs/y9wEgRwj40Rk30vJHb6o2FsLFo3lzmFFW0TZBD864vlmJiwDwPAkR5LxRcKDZtr4mLj7Hx+pmxj+UMVM4Bar1vg6oDmX/iQnAx14lcGdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b1436a2a-44cf-443d-a358-ccf5b14b63d6","name":"release-b1436a2a-44cf-443d-a358-ccf5b14b63d6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"140b1c27-7395-4eea-a6dd-3ddcd6b03017","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41859866525107349269385995234068358892299855145752851629623898185978088804939929480173881167818394928383886374881515668859321550343691688573689343097088440302598405377121393274129382647378973475763288920107644001683363345747623036632136086569500764333109747972572922440536065763808448492328348613961087239112959053842220992512549935476105274553934570719831492738","osProfile":{"computerName":"jianyunt2"},"vmId":"e75c0d21-5e08-45f5-bbc5-fc80f2129b14","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1spRjkklwlMrv3YEpZ0D8YOXX/mXdaHEX2qtQIfKGtpG2SpO4Z6A+v1u4/y9L5E4a4h6C7irpSsazvqQ8LKkwDNVtoo1unzCmPDktOZ32sgsTwXeyJMX4JG7X/tLzT+U5r1GnzmZjb1g9EpAb3nHoBczFBCt2tPeP1iWAXCjLf9WeNTdjd2NgIMAgkRejkk4eWsyJ8lgfGHzW1osyiPxZj4V0IynOlugZCCVe4QE4YFHrNMHAFnOohtAERQvyWNPTG9GvpXuUvw2mImQ2T6oZ9ejln+yJTigwXeIpqKU7GCqlkWcGgNKIxhOde8gBTpx4cFH8WwMYidFp3BuC/6GWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5acf8bd6-f134-41bf-bc1f-1b176fe7f7ba","name":"release-5acf8bd6-f134-41bf-bc1f-1b176fe7f7ba","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"75283705-7f91-4e6d-846c-b7a04241a267","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184861157028045533103681558332051945767468960425793615821599334299178860068451018713520193243020163992946227840070886816543385842093641886357706818918196994281433986384769567469235283519083408585195665734646142026383806885091368054141815107865370194881028702207697965834801159811825496556205236562892845458331256630042881800323924922801673332264588453091603244253596435915925113293359341222010885311662747366560","osProfile":{"computerName":"jianyunt2"},"vmId":"8da9d935-33bd-45b6-8a0a-80814bef2d90","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA41yQiWZVwOm1emn7KSbNVMlm7SIHfgcA9pObPejXKtijDrZ1OCQh4c7vTQXJDzR/YunGzNEE10NGZ5EED5YDP22R6NTIw4BF/PD8rffiPGTtOaoQWGhrjrk4oML1oEGpyMn7N6SsmxOTYRu0MaOYV2wwh7PZD3mZ+EnPMZtiG4IzVxObhveyDWq5Q9EZr0b4SDSLHmlOPCjIlvLKCW9CT3HXrDNKFFafqo4+M8cUAQI6G3t0Y0d4e31bmXRgaLkRxiRMbG+5o8D0NLiSGvVIWtziSmW7bMkRp+OI1Tr1iKDZVHgwN08X/pMLEmetCy1mwDUyiYOajKreZ/sAoKvVDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3e8ccd2e-70be-4345-a123-0121b3f7100b","name":"release-3e8ccd2e-70be-4345-a123-0121b3f7100b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"88ab2014-77a8-41a7-a7ca-599ad272177a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418232738626801368297716627095445170382412351271852232368802080275021185955899137518265711441778743248590809477123815264211134067217212774891480902148527731319220786279845272275373736882130966203800281816697751477994391758472851463806181531041163573532406280694246839542553388896365397323970709544484168938516922198552452152198597583400026831448987647286908292147188155528960846003207999402253874745107534658368542177165137813274729728631725731","osProfile":{"computerName":"jianyunt2"},"vmId":"93cf2f37-21dd-485d-a8bf-5206fa02080d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ZzRs1AuMP2Ybyx8RWKTLoJ0exa4NCEOFI8XKDJJjlt/sHHAKYfFk+Rn35XXb+PXw7I67BT6R/51RwyaanTn9OrwmOpf+ihPIaq1aKRE6nCj6GAqXjgHZI9P1yQrHDflhtzEY2pM1nBwb/PabeNNLqubRQdHiN0buPvAxCx8rK084iKppAIDOL8sNI1vFPJPg2d8Ty+ky3F6IaNPdlT6Wv5hPsXv47Uc6SwXMYjOBQakLCwc51TpZpIMzMyaNPayqFm5nCkDfLNPMdMr01GmZ8mz+l5uo5S9nEdt3ZY+StxyKby75jjipmaqQ5IhOSRkW6wysvyzUaVybEB+Wfgo7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e9606e9e-8ff4-4957-beb7-d43b93b58e2e","name":"release-e9606e9e-8ff4-4957-beb7-d43b93b58e2e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6b46306e-ae58-4d9c-a296-a4ea901a4530","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819220856854159981624449582132474078829476637995902800319504961616459965801121841845166860408775789399337248813510609763716837206011537762632461837014045634332052076160288220633538697711818330055537520277463739685637129256324352665983941199161614655441134940693338244395823367856745271092177939763471759029242646158703915360650317371474195649172","osProfile":{"computerName":"jianyunt2"},"vmId":"38520e51-e2cd-4ef3-a0bd-4b179fca4274","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyHOvfjJ4q5+zwy94X/BhSzFxD8gcVaj3a7nCqwtBS5IQUpboE0C2I/OsZLJgwwJ2TlydfFAJtngPgw1DxP1xhgLhjC8BPpE/LzrjqJprO8BqoMw8tJgTrUfpsEfVamjKfedh+7mb8EnDnYkUQmLY36/MKGpvkBs2c2UoHP2pfl81Gw25AxNPuWE5j1YybeiWlWrl3pvQWoZ2dAKFPjL6mxfyEuiZprEIPC1hpEo8fnC7suEHqeqktajTd3RlNt1EtNV2xBDm3uXFEeQj4tpoEvBvCZqb4ohkLUyrE+oNSygHZ6HZGg+E7xno7OAw7QtppJmShd5lRvrPoS9wsvBD0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-de217465-3ad4-4844-88ea-38e353383a46","name":"release-de217465-3ad4-4844-88ea-38e353383a46","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"64ca986f-b121-4771-9fa9-72c926e5696c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41833062269173135375776321223382562217632036719721959392469944850629932277600752811007797544632708303640592446509379654056094810163074212313346482028675298287976913712432400541843239875104339648633847461604490479179585054276219575691202517558491087642122711336302882851007177021744069307827371992151292831758639571845426413091182520488566260176216423448034513876222946203407237080258446","osProfile":{"computerName":"jianyunt2"},"vmId":"8cee46db-1605-4da4-b97f-5cd0cfcbd970","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvsT1dQTCXWHVxvmI2gfNhamiCQxHeuhc/BtcQfOE6aLzc3Bx0uNDVInVvAbORmRNeBCy9FSKmMDhr4IMbZuj61cy0ttnenznaV4VyuA05sT5hoYiz0ZhlTMfDh6SvTbBq+cxhp51kwprGBjs59Tw2bUeFTagCRowhq4q//jn02O+N0sWuhjlgGJGldzbF+rK4IgLAn4+LuhVHyzE3urXOnLnflGjn2y+OArCpWMxIszsLawXIdX4YNubxx/+371RtrgLcP40qx7IpLVxdRWKUFliB4LOL5g9+qeYvdg8Ego7c95NWBDcceVy1BLE0mdFynvX10Ctz6/i3l2H0wZFBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bd280ef2-259c-4f82-81b4-a27ca5129827","name":"release-bd280ef2-259c-4f82-81b4-a27ca5129827","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8cbc1f3e-705e-4e74-8997-83134709cac7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41874054347559447489203186544639366198319601175898279321756749411363484706628635341171230695748537494010842391701579165203219818801482355482120295665334687979981383687838950169014646174781467663661927798913164303329424539803667921059982139497049194256156134672886213189239924487685132721431626211671286837661723709482383423422242120","osProfile":{"computerName":"jianyunt2"},"vmId":"a7be5b16-1661-4dfb-b90b-54f9b8f5766c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAywTpx3OgeQN/s3SQ9fBX60lWDhL+HFiGnCCTu3JMOb9CfyOJjAdPzWvuJmGdrYXTVpjsELlQUtk3kYpH1SyLC8uHwR09Bz9OV/NGi8Xv/nYHYA1kzis83oFlKb4iJy76JUpJqNHXW2nEizssGUUQTzXcgRKvSiV120R/8GZA5GZbrB3At4YV/41zq6DhcgYZe9yclMLHUSDVk+BVLZQTGW4xGwMQrbYKK3DQ1stXw9n2lBr6ApPvbvezTkuo+1dhmHK47VfhnY+x/P/i4Zkv3a+uE+sNGxp4XuvMPZ/Bbr6wXYcJugpswIEftoBoD6gpwTHr7N7dsmzTV1yCYKrdRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-263598fb-3bd7-497e-85c2-84338b6491f8","name":"release-263598fb-3bd7-497e-85c2-84338b6491f8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8ab80d34-5988-4def-93cd-8f987604cb70","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418650278434510875858237034231140909728255886864582716683423681865833876311568870578058573096861366910972270765734939395432355893090602120758586897560883188541923705803838579785181755406655113034887621906860187101393183032362562979691123255695088573346540135295097681806228944301057106917425089737404823071588114163910868782532777831472946510038550480129094299100850282850940228282965","osProfile":{"computerName":"jianyunt2"},"vmId":"a2838d36-4685-4a16-b525-e1cf46b78d29","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz+h5thmi/Hw2xPk+GBpqd6gpx/tlI6YXgDhL5ziV13rCtTxKlG1Lz1grv6tNjDmiu9aJTddpKfFfRk+lYQDC2zQb9cmdKz7S3jWL+iVgphWH/7Sz4dWiJGh4JZ2HzJi+Xov57KkXyyTRdlsI1qCJNVgdsOxZ/3/UNCBX1KxUpRjuOy83dvcVkCG69t3eESjzc4CLFnCa08/TKYkU/qUa8FirE+vYTxalyfcqV4hIGSgLsSFG8bxCtxi1i9RHHl9UKCHuiTx9TsdrHA5SoNlYCh+IBzkJz5x3qmlHr3OT1+3hozQeJ8qLat8XeNXbi0mNN+NS2i8llIGcdXTFKDk2/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1fb30c3d-2939-4352-8577-322b99c6d29a","name":"release-1fb30c3d-2939-4352-8577-322b99c6d29a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d7171b03-e024-4b72-9229-63e986943148","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418891514999306486015298383744668948640314223293654185576372137377263935967471811560315728404232239027548108559359170689042249041373927121992132838306412482351295246741963012851918995939292971148713174533689881119288381252945453999603997562288823362155360104333608869998117907788788075148300194435151075595780906716118249199754234314495062739830077296254430145186708885","osProfile":{"computerName":"jianyunt2"},"vmId":"cfecd471-b7e0-4f79-afd2-3620c1ce88b0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnswM+jWr76EK20fvQbfDWUKe2RfiTiE30txCyb+NKAx/9Q6pbm0rLPa8y5JtEa+ymWzZQ3w1ZXN+w9FpbneLHoUfBiGD19FYCHa8p589wTZCh9G1RP2MPV27qRIMDn8rDBJzDNz4jA2vdtvn1z1+dA/VJdlU2n+l/g1SiTx9QZSel/jFb0LTO21BIyexZT89g/zPafXvbQaFbFMrOenhqr2cjXSHhfSWsvu6YxsvrxmF43OIrEWbEL3cH/U6EgDyMlF6XP3GKguYJM6YeH0sob1LhlEJss4uoAQwu6QZm5ne3zCyPMNxoBNR3fBbFbX9Ee4aOAszg33eMCNd2d/bAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fdde4b2c-83b1-45de-a64b-06c2405dec30","name":"release-fdde4b2c-83b1-45de-a64b-06c2405dec30","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8308180a-de39-4688-bdf4-bf941e835e2b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41820311599570891779379156207620907416302612745486217150035931322053692367028239655515529476869968910049491552887415239629448836198233695731225439037079440462613428384433913155506415532830682023407564857970843391655649294720392482736581622490961963195593089847121273322566924179808089394038064791219355791615976361153236042034339502649941088236180035841312573114341","osProfile":{"computerName":"jianyunt2"},"vmId":"815237ad-3f55-4bfa-8fd0-fe9af13935e5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvEBMenwBXt3Ac/NLkjcHDTxrOJtOEZVY4pzLenbqafyOS6vWR/HNnI+GI1NViED/DF628v6tBlcdGdOol4H0A1W5pnebA25J58ukQORaj6DyzAAoaRXOToeTFyxFKunROZknbFhwA/UweCWltKXy30MtjF+61+uVMC0/TNwhGjq0ekgq9buRp/bKYXvLR6cHZYcteUFfKAbxD/+OQqV9H17+gx4bmCeiNWt3vtvKn1nJCT+LjkZO8D8+DJwT/9vHUmE/kdvvPIjIW0oPoI5fOdCRQOOqXicIoxgL9ahDnSTtYCzT0yTWBmpjNCm4FSB3N904YKpz9mj5DKQZGrzv9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7c330df9-266d-4e2c-9678-9090bc39104c","name":"release-7c330df9-266d-4e2c-9678-9090bc39104c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f4e2b671-fc8c-40be-bc81-867709f030d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418111059381783576945456606256734153114443215796663827013313013027671068591343819759117661895842799529265617291735713188142714406530591444501242531173916664852823497858174162141145345922615468642111941938925644359969407538340386229966363748924369850479456102531152163003394113538481071257588454431009932575569683311759275906301900576308884681670022781587946965440632661912831447445049742529","osProfile":{"computerName":"jianyunt2"},"vmId":"af9cac86-06a7-4bab-945d-340066ead04e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAubDrfR4yK/GK1Khbp3RU/xFlprmxo8HAT6S5T879nlRCjIqL0YAa4cYGLMKIXs4Mf0236NxupZ9ud/pta54mvfAWDrouhg/xotJccOF95imkWPpF+QhLogKDJudjoLvVatwRAxIksTHs0kHtgj4qQE2V1k+nWQV2QTvqDSkh6nmoH83lbH1YSaZWTNx6QJwLYNYryzqrMlWgfHnXK9ZhtCjMqcdUPrAbwPxqL4uckrdsOCRX93NCxyH2hVcM9+Wnld5y4hSpveOaiCuYbjHonyfYiIL2ZCB3UXd+2Y4VE1e//T5erLh5RuwEmwU5hP2yfKumszn6AIMF0t2Rkdo59QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f247071a-e292-41c0-b906-72e8ec49e093","name":"release-f247071a-e292-41c0-b906-72e8ec49e093","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f9dfe89a-efbe-4efb-99d5-2dc8e2805814","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181030293246043324165973867370377997636889763828312116551528097461873111992565056657023186631606267925807909248524296916477867296276720081420469819109778848132396476720329531174768535118804149709244131623706357683771462728429900723390043889872137066086921361788185601366253451653984347299150973731961281476543963489462995211839745827929636639955625276290384112345455344661","osProfile":{"computerName":"jianyunt2"},"vmId":"5234179a-0998-4ef2-8280-7e18cbeaa7d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4V0DqyKmcoaDq+PnSbqNNyyOOijSkWpt8pzYVPVDmf/7cqVn5i++DBhhWQSKV0km+dsafBjiV7eAX+oRDBNeJ2F65Xpe83CW2Wld89v1FLJVMYaBATU6LPqk6y0GWbtlRjGSRl41BI31rBWH9+5n/oiLI0iRcovDcxyuRMqmD8xcdP38ppwq+7EnR1LyIbQryAAB6vm3/s985RWAMEeZdWrgjLDP7p8vl3aO8YE694XnYjue/VUyC3RUpRPQZuwtlWLg8LtGKpXTTTCDxOmbdTnCwa5KznTXNZKJGRkzA/wjwYx5ynpE4bR1DEEn/eOUmUtF7btwiff+mDmK5ncJwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9b2e2e67-5ddf-48f5-8dad-cbf4c465305f","name":"release-9b2e2e67-5ddf-48f5-8dad-cbf4c465305f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26cb66cb-ed6c-429e-90f1-e17eebc05e55","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41871063402198363209028601122044779691234822530917998637400193986997598632869835957396018672798187096418391458960035425907739248462373285378462822949040522827574660994349434114538896696399824557544104442857635475817255724512691625885897862349781239430433969904419014656175312813985306176320783024782333964367541055123331971206319622765202812935428224345383","osProfile":{"computerName":"jianyunt2"},"vmId":"8a1e02d2-d359-4c34-b48b-3370fc238178","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8bNPK64CWdFBk8dv3X0C61r7osJrEbJ1vQ2F3R+ufyg4h/4W3qcP7xjVZBySW6Y66u0m5WZXq7c/OnPE1wgumouzbyngB35EzxDiGS/+JJGuNPEXyOq8dPScrn+JcpZIGTQ3DW0tHbR/BRE13StjAtpY6kQ+jrEB0vFLxY/vbfTcI8r7+derlQE5cErCQZ5ZcTnLa8YHe9OL4FH1jbkaJzeDtdGzTu6Dkq/rQZRDmbAV4x2dDSUlhqwoHtBx1h5I8BesyTtPZzjQUDY4UfpRs2rVVkEqsjkDfjX7GsbwgGOlXtmkaK/nkN61mL5/HFh0WXe/3GHWQ4oe5RYWj0/klQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cdb17884-26b3-4101-a77e-4543ddc14d8f","name":"release-cdb17884-26b3-4101-a77e-4543ddc14d8f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a3cfe98c-afd3-445e-adc0-ee524e2d8336","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184580852680110744661494032907873101276717814956159580285852175243108710810841370954918665454419484326239450949196046978639685741658437334637153810556273434382143255819959720372541456181972157537540275843238267299064457064556021557882902343618589263602347869716927671914557745267031274108678735891619765540291731884644692212402293174752345254485594145395819382489408483722525343183530867557688298297890592908469766841","osProfile":{"computerName":"jianyunt2"},"vmId":"66f5bd30-e237-471c-ba92-e2e796095243","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtLfwuFRg9sI5HDw9bWHngUruVWyxhimjN92+3iePcRpeMXW2vY076pubKMpB98qcIdO9AKrhwLhZTl+v2fXrhan2QNQtX25biapLW62aiJ6Zm22WWudrUuMWciI+3xeFMiABUFQD+MnR1UDU0G35+kHMNQ7AAf9INTmJVObZgjKevTXaFaIs5K1qkOlyRP0s41Ngt5JACsIrrKTb8fhC2v+XT+tz/tntYzCSepcOeI5Xh/filDBGs3ll1ZRJ0iQa6HT9gJ7BrQSIZoaeNZ5Z+S40WAICmH+19POaWVpcYbjt23xyPBsH7a3HUSf5V7nPaD4szQ0NBO917+DHZMv7gQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-380ccee3-2b70-4416-a159-6f9b44674232","name":"release-380ccee3-2b70-4416-a159-6f9b44674232","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c3249f3c-ac1d-461f-b182-89a02e59599e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183607514694388537367179020648989760444999777590110122089333415757047767971377651957066254584316906878536575679615485903366137362395790947093565451087175202054812804102464915744780418690668206459214941462719684647852043753417272706435161398258235726099392289151201186077615391712425282796950148243189245617065728127399751820968391178693241792897371257208129877554","osProfile":{"computerName":"jianyunt2"},"vmId":"e6be4e92-4d5b-434f-9820-12fc9f39499f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyZZydUA9TgF9h3HP6KPoVplMlEtvFwwmyU2eqXMQalnxkx6JTdLOvLPUVfjX0s+jUHyAbEgwCLQWf62U7MDsS5BLqADXWQHYnru3ZgzyQsvsc6eheJ+To+64bGCE25AXHfCWBmt1BtnoHOOpuptxCrWSdtIC28UVJ7sfCh3CcXIWRiwyXEVcYVpx1YO7cePiUMWOq9857FDLK0ugmxcQDVzXErX97Jq30zlt1SdrniO06x6SLR3P7yeYOyqeTfAs9/E9wWO0JQF5nLPSUA3kkSwHFufSetAcx3sNHkF7HEUyF0mUSrwWM9WfEVOYKYd6plCd7j6UIido5wxqD/4X6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0bb03da9-afd8-40b6-9a9d-17fac5e041e5","name":"release-0bb03da9-afd8-40b6-9a9d-17fac5e041e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fa7b0d70-010c-4a4c-86ef-09cb45b93e62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418693080986566006130310456346107576392528372337264504786117533738816181176236661300056193656010154169988249017716347144140125615308542516951163129496265393170017923884959637137828746766159807714578847372912540990491754864686777868162726375136787431317651982299728115788457260871116105174544767290307263163181163741428167159309921314756295326064686740293141792209856947346215853756425558","osProfile":{"computerName":"jianyunt2"},"vmId":"2e2da1ae-1b85-4d7b-baf6-919b4760cb33","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr9o5CFa202XeWr6uWb4a1V1NufI1hIqiV9Tv5Fs82uABU5ySjVNGHdZKN2+1wJu5P/xT2inKLzGvodvHw+iU3ErpdVyCoGkStLzLyMwuZLOjoR5GMzIKylgfDi0Ks8UjJnOCo65OeOAASVEZTI4nXOOHFCNOxpDrWiTa9D5VvKu/fkYSK+QaNrzbdKzsPc2uqhqhXEvwPBbdBu9jh46l3lqs4lDT8wfEKhaqzwyOAzh18PbGSw3EpKoXb/aCGWoGuKXE5rCgDIvXxncEduhe4mGiDir61k0CL72I9nPr80BHw/eMlDxrIkZYMNq1Mc3wNlTHKPhANde+3+/2HQ6aRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c33db35d-93ab-46d0-823b-131fd0bc39a3","name":"release-c33db35d-93ab-46d0-823b-131fd0bc39a3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dee4f776-44bc-454d-a818-733969d713c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41885077758907545328870329059153249430843438817523642988072299506879169441899748720926591720959773241377422223963252665114255597098338396115342579007400144685664535918282221197478330928154961423870962713866946983826571362032096380889687541480145979140490686158811784005033298977327256326183903582569918159269739714264439825911228308974166230576788633238","osProfile":{"computerName":"jianyunt2"},"vmId":"438b90e5-5c21-481e-af33-88119ee67567","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm3LPT9E1rmstmGUQU6cQuOMyM/4Bo0h3bqEZlZGXZ7+LBPWuDdZDu95370kkjmXx2o/4+MOoP+sjIA7zgwAnpSFHP5ysGRT9CKXW7dI44UFGkuzeF0DRS27lj9Wr0I8savQ8fSNGGZu7QNYPSyuX1FffzwMQlgmkP/zi2NS045+yFX8b4SwEicQxqpW3s5GhLB1wmV8jEQgI/gA8xWUtB/JMc30nP2U2MG4e7Pxcnxz0FicuKf/Em4uL+veyeRA1sLE7Jzkf1YwDbx40HuD+mqND5Yylf4WnAXQCr4odrcb1vi+teifVx8FJhv0iV8IwqIVzrfbHVtiKGzE600qP+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac95462e-6ab4-491e-9f54-f88a48db00dc","name":"release-ac95462e-6ab4-491e-9f54-f88a48db00dc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1b58d582-c154-4d21-bff2-0f5c250fcb27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418123495829577305886731036845458653984687913625339707538935602726145096362554180686273107549823400408230532135750539559323378224843318734018675466529768906657786162132448940508013463413673139174995768560063629545199296705196655156590503932747990547196343477385458526618019857075142986032835843514756619191924363851544030506296936034174115972115738737492394199774534496894826380855573648945829878469991141464","osProfile":{"computerName":"jianyunt2"},"vmId":"f73ca534-7a23-4995-b755-38bfe37c62ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwwr9JlD9AZkm+X4WlOWJVYihBc4tx3iUCflHXxSbsm6YBSFildZtwlI5HtWhSXOPtZI0tWv8GVWEERDqhYFQ3BFLiBhHhIn9RvvX4owi3YulMZe34zrNAcyaWt3oYmizpmmZrv7R+nvCNH79JcoLh/iQV8H5CMTybU+/aN1BdI8McKoCHzZEt/bHOjoF2pnhJndLY9geWaK4ee9Xr44pP1SAxOyi8YZCT/9In6eNHiLIh/9ExUDOFxNBhd74Q4JNroJIzM6eh81ilrW8y1FhGFno0FiztK3nAr+vzrnlBcqWWPN8jnyi9iqHAy0RkHdFwxk7i9CQXNDbgIW3SceStQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3ab8ef1f-e209-4914-b9f2-c3522af00fcb","name":"release-3ab8ef1f-e209-4914-b9f2-c3522af00fcb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"86a478c5-2c62-4e95-9f36-fd4ec072046f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41890977557995520775738690873416487713193862543799366110981860761980895038924530008682345794034750329019060879011583712097399105495667992206402515021684256636735834345776166714279908668418916890416969049121617013724759751163989850259542697232215962299117599242136370863954412873779579804854676586332697506524293427702302729699976917457898624947931916963284459959935719129","osProfile":{"computerName":"jianyunt2"},"vmId":"e8d0978d-0f5f-477f-95b4-6f0b1e0b6463","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAujgpVC4yNLU3min+IM5XKu17SeSFEjd8V5jeG593UcJd6FE3By3c7e7nO2VlxkYep52ZwZ5qNmRW9Vli97pskco3uFx7zsA0yYviq7AbtnpiBvbRnxpn+GhC29KqKrjwk0WWnZfFNN5QdjFmwkcfRdKbhEL1Ma2WmMjynlHSOv5oZm5LMHzfWIRrx2wAVR87en2n7HoXekbbfP+TNaB8Rleb9HO8JxIF5KOa6cf0s5G/xWOwqlBlWTpBB2PndwjjRE/c0z7CB3tGjTCYRqRqyJ1+3xPu2OOH3U6TWUzJIlk/YkPF+lrTYelVP3e2ZmHuZTp41H2axxYwlgKmlQ3R9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-34d39076-9143-4626-a932-d8ab0641cf34","name":"release-34d39076-9143-4626-a932-d8ab0641cf34","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5cb8b7b7-37e5-4238-a272-c9ee485c8895","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187161008850464415896772685014435722736796809576528595394280240622089291329548494766254495634933924243477229791001474129801013593155502282830864742922067248536699051212139380639754689710345829135633698264194548318928137075773879548900757559791167873369507485299276855611785150291747190151598587749495879944535708096442454487209161391888899001895937244390536695476415757447399176347274730774091420086578228","osProfile":{"computerName":"jianyunt2"},"vmId":"13b40337-c4e3-4f3e-9a1c-2b0f7c0a23f3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoExEfX9PhvshXMyUOJoegcHLE4PqMBFNvozJmlduK2nXgQ2tUkCb7J/4QpSzx1Xw2sM7IhxP0CSXKRfFA7DHykK8eS7wcLqzJf55lh4UhKWBJ23rXiZyexvw6IXGVaCXtbJrcljL66h6QVkoNaAO0pzgxQf6hgyu1Hj4ckbsBgOdPGSB243o9CWgQFEJQ3m8YhZjayIp56Rg6fCPOVUSpseblrKzyLX1dGHdBlh1o6o/25z7v56uSYsTvmynorwtg15Y9Yp7/Mp1BfrYdeChqvx6l3OinbYq/1BKwRNbfeaEU8/M3spnfcCYQrW+fHErjMUnUf1nMST5eY5cjA44VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e50d8a8b-078d-42b1-8b36-0b1c76ec2142","name":"release-e50d8a8b-078d-42b1-8b36-0b1c76ec2142","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"be11ca97-9d5d-4a0e-bfde-0253109db988","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188734790427766003379493170546171426392532388712119613468650556645120545342249782816567559841492597306056224630886375627352318411228150231654596842678200283333848259577460716563515065004023759672844781044190276261209685956279454765349388056223216490049168871924432625261740119116996289644954829062573212839423299625192434928189895419483121112435784849180498351980","osProfile":{"computerName":"jianyunt2"},"vmId":"eb53b642-a522-4c60-a20e-33e68d9f64d9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuitjGjlgZV2x3k8iEDaLqVOfSn+IAaqo3uN4XpQX82wW2Tbe17jC1Mw+viCiVQ9RF+7GuemwkouBstc4F039M8HsxEIMZnWlzT1Uh7rpRBIIwk/SDvCamVWCBTXgkfVRFUqkKpfwUiytrwKKpWkwdjHJLrCRZkByyGmXIsMtp8hgp1j4KNwUa/gNvLe+Moo+s/ESuW8vgr1xmb7eEydXAinrQvFnom43RM/m1rqkwZbsYlcQUXktLXvnCiGxNFBX9cXnKgZJ0sEwHTAugRkaP8VykdLL+ZbMbePpEncAH7M1dfils7T2OT7A7YMIDi0uNb5cYCNMUU+OrczOqpq4EQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-566ba8ac-a1c6-4e73-b8c9-4e270eed63ad","name":"release-566ba8ac-a1c6-4e73-b8c9-4e270eed63ad","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f6d33d11-8726-414b-85ac-38310eeabf44","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41839716248565770220438491213390929095614885637934451765977283928829752925031412713820123276921615867391923099287373274527483649586979918366832549146159924443826829053441782970264346318336326898964862577015428325572072382236257661261980717267449788651473762996884443572319290621652440820773571905215876323009118932977467295698946438457822258129620372764203068558530853357","osProfile":{"computerName":"jianyunt2"},"vmId":"7f33c66d-b971-474d-b0c3-093c3466cd8e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyo7J3KYrVAo3SiGwthTfSZZFl0XOE2SgVyJuh7JwQa5TOh+mtif50mohAqVXefFSu+LKawREqQIx6NFTm1tHSDRVT8jpyW+RfvAoVBC6einy/DbYdNC9vHAD7sB5kG/+MaYLVUedRwj1OD7IzlYCJM4lmk75KK2/8q39F470XmBZRXCxQ4yQggQwbr6F2iZ55pbTy2hY1+ky/Ybl4OyltkcB+VUbI7LJ/Ms+d4C5NYjOnwVSlBgf/uzZibu2k2JK9UDOgh9yX5Awd6eJKxx1XJ9EzZR5Byd+2vGlw8Kv7OLPDx+t1VvdcST1WROrlRCA6x+nk3fu1QD2CfOYZ6GiTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1ff7744b-1359-4b9d-a543-25c51ef9b99d","name":"release-1ff7744b-1359-4b9d-a543-25c51ef9b99d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b972d0d8-6a3d-4efd-9d5d-b6a8704596ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186612381393182276542512178465874596482009936428418403337504511813999504874235927036114828913810820044659594359692196116823278650760708526872880472063466751023633478711411529709605712926595957363942898514275544124231623082597684466594121825219499420277092261489044144805419128188887266880039519849411938753975367935711496515275792814185462724256443702528790716774912976","osProfile":{"computerName":"jianyunt2"},"vmId":"dbbb6ac4-b0c8-452a-a217-7efb98474a67","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr8MA/d/N4WPl5vbPiJ5EmXuxXRCYJzwoE2IGOiaBNCe9/vkj8/CXZdcnWehoJ3lqqmzUg5gKRsRba8Om3M9JW8jLL2wqF4vceAsadyTY90azEN6gnhHpTTognM0TBHXDzjJKoM6CLOdcAdIQ+UfX2SIx5gYCCYoGWua50gg4n9Vx3QrIjqXoAzt/hQ83hrJTZUsObV8uVDIn4ATFgtViLfx1uIfT5CC3ReboS7M6lMsztMxaMDcJdUFuzcTkjmHiZgj/n9/g1aLeA+wgWLv5CbE5m2ztVc3GtKsuTS0Z94aZZGAbMHzYXS2/WOe7p8CO1p5Y6suxWPZzxXQr5Pv6/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0b8df84e-37b0-4818-97b9-852d4f5a901e","name":"release-0b8df84e-37b0-4818-97b9-852d4f5a901e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3916e4c2-f476-43e8-9c93-7ba6c4e39279","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418250565738286226325588608841517143381290625679552840629566897610968657449448330439686717784599176979482624495659849901532278579040270325397681746264348619945145978214181196461733272747489188067312540824140446700916493234404739076289931749331782258843526507553983544303137606924141389157700115564589208772651732546362684033749316819125059890132756088976773292970046678183021031211697627392809060547079603971283993673573922697672048802080099273408457291896","osProfile":{"computerName":"jianyunt2"},"vmId":"a83e27d4-90f3-4af2-a93d-95b2c0479347","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqdKWtF7VR8Mnt20X/jRO0Ts0HJy0ARa8p+fGAfYYrqJoSUA2qCV0AQepJ2FuOFddXwmQRncWif0jgh+jqbcH+4PSdRHdWLFm6Z9sYIA31Eok/oSMGLqDkEpF6rPIJbEz2FzqQwUzRBeaPU+gp3JsTeH70941Lb7nnK1KynUvN7EoGkoWE6uCo5AGRpv6Hoio779X/zbf/FKBk1z+/YMKZCYhB9S27FWMrkCTIepka8NGr6+XEjl7nFa75+nYAkFy+mcoUSvTqXXdZ99vyH36+rfNNXM5aRxiig1kSOK4rZHcM15Stz9wuf6l7BK2kEdV/+VF+kHywhEK/S0LPlO+NwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8fd19be9-eb28-4113-b7e3-f0962e296cda","name":"release-8fd19be9-eb28-4113-b7e3-f0962e296cda","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b3ff5d0d-312c-4a39-80dd-f33d95acd7ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418797798748913686917075853190626766401173432752377297688134047107526823535770351572286557304565091965377283070134997293552468713721240693948831165452526333871516208676088615159989482401185018763843972272245804747417226206569363871010539139173369719265906564601520542933158140545052001136365687302192565116638420585094253061143438361039775997671113980418284682818865551637780968601485108985183782383769019988507","osProfile":{"computerName":"jianyunt2"},"vmId":"5a52711d-616b-48bd-a41f-82327ccc9b2d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0goXeftacBmKQTSshl96AkuhcBpd0cj6eYVlt6oi2JtX0S4Aw+iHuDeaqhvU1lAqmV8rfHV356vbXM+1QsHjEQ0LTz85oa+UK2Ey5uCiEhm0A5gVoavNgdrZXDA5AdSdHEuiE0xpu9cj8AErG9OUF/J9CNELU4aZj4darim9PDjL3dT8rPYvf7gEGEskmqmLNAQOkWb9anvoCnaGa5m5UUBMP6VNRKgT8tMnu6HM5F4N8eQBl6J6/C6g+rX+bbXT17OmvgLWRKOsT++4kCQBlqSBPnf3x4VdTUobZDOfMxxxc+W/54DrDUoR6iMQiAunwzRSSGxdjzBfLPsINx30gQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5512cc01-5347-445b-bbf7-cfdd77bd18d8","name":"release-5512cc01-5347-445b-bbf7-cfdd77bd18d8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6edff86d-7844-4a94-9bdc-e29ae1a62a4c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182443473786486753247380515616387537631977635129025763033180188829103774581815079856763769083876125775350807916508257331304533959432888379392427157842719582845156104215456414034641888342288417286638506869647018370922848385573426379795643932018690515768435651262367896630806778162483452972574080658091164695927946014577680388740534131520894714699840834457527166508092801213779561309952982281207571","osProfile":{"computerName":"jianyunt2"},"vmId":"f3a6bdff-de35-48e8-9f75-c36a8d59b942","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu4/afLH2Gj8LJGF7De9TTurT/xf+tTrHNG2xJDImPnNg0LicHWFZkXDVVbkM3+BvhEfvNzTigRtQjJ2XkuQbZwMl/gJR/9ff+VCuGpVoBrUln4iAcPC+YGzsjTapHwZCLcQPWx3ovlKrHzzW9Zzq9hHaK6d2njzwNIV+w4Q6cG3hp1eSSSdyfVQ5jR30LfYH/FKYDAMrz659gDNBJQqiYyzr/hqA7qgQcWT0KyPEtbjXd+6gcrs1Qu9XgUlBiKpQbWVc51xloz35sMRqGhBTAff6PkPnS4R2b41roJE6OlY59CrMS2gkIeronnB9/YvAlWrNCqdn+bddt2FebcClVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-224e64f1-cbe8-4240-8a74-a562788fcddc","name":"release-224e64f1-cbe8-4240-8a74-a562788fcddc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fc9b17df-b8dd-4e6a-a6b6-c16f8f73407e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418925491474470535752397759954992617063684817801372283693742154688158418174841555119179016782266947578375726604103967206237320582930528124734569446687999553972303123516875547517030843766057801662245392032959143686336481449141526657154836639994187455480612318828564236916649437894302797710908129162504522533697943545271899176018982537487273182535889395366135216474277464390637178355913","osProfile":{"computerName":"jianyunt2"},"vmId":"dbe3fcc0-40a6-4a86-a0bf-9ef398b9b505","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvwsxX3xUfVO8WiosexWky1CBHVYT//Y+kQiRd3jE5izQy36zR6DUOfqC3mcQu+XwcfuxyyILo8Xax4LgyY8byYAKEa/IryBDvILB8gmIGZ/jCnhHqyrbo7qAwa6tBH7bbYGim9uSlpYVDsOmO+cFPWQd937S3z+RCLIod7kI0k7XWTu2SLZaYV/vv9bSrYB+j+5a+PlQ7/1Gr3jdwOXXeYAknq4HJYdFYZqgINaZ6TbamQWwLis+L6uOoJvjCNB/ehEw9v/DtOTebQ3QxVn6T5uqsNxTb2SGWoxtWrzZZnI50xVHZdqW6ne/ccmLcxouT+nbtANPXLpW8FpLt7AyYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-35d20fbb-086b-4d43-8fb6-98ab10b8b138","name":"release-35d20fbb-086b-4d43-8fb6-98ab10b8b138","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4fa6926c-c970-4ea6-9d9c-463961328810","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41856876943523016863208698366878011792545792351317487703215633796285547917211622065775633181129766495992067835829373813613542519736563367479495719348891717295557618132368454991990713434226596255554086966619481699871928918949382152287159933624994602805413674804143413943825997460803261519203750292542227853428496526174809607771256081627610597967291342","osProfile":{"computerName":"jianyunt2"},"vmId":"f8515522-844b-4b7e-8a0e-f424029f9a23","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2MdaI2ND4qEznioPTWcODzGjP1oiGswMPSOzQv9W1iqe3rSTRtCzCpCwSyJng7jwvfwjYWW0AvAvY/A9D9syEq+ORa7XWANP+4QaEb80kUVlmqb20Bsa7qN4yYiwOtNReEosZGaSPWYYvm8R9SXvP5MzISMj6zjKA3t4UvAb3AGOcoarD55HyiwUrWC6Xj4i25Wn4RhS05odJ3i/BdxU4pPpZJOVguK0NKl18yFuaCZJx1LT40darNbPrO6L40P+ZhbZVJi2gQZdZFGj0RyTNH7R5OVr9sN5erNu56S7O2PzFJNPWP6RSavdGpXMRbQiSRGAp6LZiT6ioFHzSKoHXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-38ba63ca-766b-4185-86c4-331583dc74a8","name":"release-38ba63ca-766b-4185-86c4-331583dc74a8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f216bb21-a67f-4c26-a03e-f8172bf5c5da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41877389353258259569432462226829956720394369487275283268551940395855366764093478303961527333736998897286931345849083552534249679185963898854787403958259236118918429754749985156848076985177946603185015806853936459784125437971594004692162839155739792443017472565714887405024772314737683966485452199701141464419143077349708320437096280279141489117146754489476501165231576051246099455549520251662600","osProfile":{"computerName":"jianyunt2"},"vmId":"4b177e62-9f70-4be0-acd1-e70669469fc4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuBDkOZTc7lTUurjfSx8rO7X3VTAvmCWub4ySXD7FlWnIavdCUMYf/xuaicNTrRNvxiSwtzvcQzhcc+kKRgZmLeFz1IFkuIz5vjQQE1Cu0RqQ/80AqGQZAoOBqCSYrtc8YqvLkaGQYtS3O3U9eNt9jpjr0FpYTxULcVTJ1EFOOxglrsLEi7LbycfkBslF+Ypwh1D9WNpixlOktQQKYhWAb5CKAKPlbBpv+Mkf2Fo6cZGxcPhvD9Qo8nG3L/0bbF99PE3M0a8M1JVk92d8+nJ+6Z4vWNbG+4OQr0//isDD6qOwAabnxPh0tlvy8lgevGkofwiLZYXgxaR7IGpxuWVtHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-60fd4fdd-1252-4e99-becd-86b234df5c33","name":"release-60fd4fdd-1252-4e99-becd-86b234df5c33","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c34d16cb-4b57-45e4-b3b5-c1ca541b3a56","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41839966087263479139570724639709183681571476617131083927438472894661643866316924794360744438776627212919260111886826431559486488394361047472828595136533625572906229093770587485158555689223991547625780580311482309549041835310987674538764651745625550590210462120210999777259550027809891298091909527727075375742600059641454748245938254847670166231579851983127587144654394260270909277","osProfile":{"computerName":"jianyunt2"},"vmId":"3a071d86-6cc1-45bc-a10d-ae577f8a6a30","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvvJGrYysgoOHnQg6bnJjKYHxyCFNvOlfklma667VQYkRDD7710bhYm4tKpFp/ubZDU+tACSZx0UfvSdBN8AS6c7ETiRxMz9r9ClfR8lkfNlpepXDFG72OjNXI4e6i/dGonSgtiBdcUGNDS7D7Wz0ghEjggCNGI/atAOENg9wucz2bcqI6ki3x9FWMWTH+fHYUtArUKlVvLsKJrkjHn/KMl2gY7fnb7h4nRNrFRp4or7RCyE/Od+eQgfeHWJN9I3XI3Gp44MAr0HoZj3NAS+IHuAuaFi7InnEr1kKQQDnqoH/xrZlKMMjqXUdC5r4yInvHZmBhy4kF5L6RVSJDw0pEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-35d0d009-15dd-498e-b1a3-24e8007901dc","name":"release-35d0d009-15dd-498e-b1a3-24e8007901dc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"df26e4e6-c533-4a4e-b3d8-c7cf939eeec7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41831512632122450026478532691723488366882291119575582828732014923837432809467353801590777264638842838101745081672737367781552817889118811057752135249905910880653497953766753913354851140088704860079432142627614161182784123067176629781939063574919131061044251653666863691478211568214276817278391776280078907294855126642936345588401597430233972082507034353241879237235314842","osProfile":{"computerName":"jianyunt2"},"vmId":"498b3ca5-064b-4a1d-b827-0ade2d95a6ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0KSvruiTi6XZ/osTjgWaiz50EQL5cbomnNVpycD8jtwhiUdB/FN8S/jvvyTxvyPCMdCSkjt2Z8rUrsvn2wy2aLfDZXPTjyAIccPsB0pdxV3SRMVxqub3Z2dEV7o/9QHBlkk12OtJuv25IxwPO5uLAbUFv7Bkx/S+uGyEbMPrSBs6319WvSP+NKMXEta0zvLRL9RfSAH05Iq0DV7qOo938iQiTFdCuTAsvmDcGSvdJ6ikdi2EHlVPdgG9HDoctayCs0fqbuj6+asGEq000eJMpUE1DG6M4s4+nLu4rmhCT4eFTTXpiDxXLmW7Aeq/7/cT4/k9jTwidbDJ6ycIKey4iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c140c595-6884-4d71-b6bd-17f0dcc47528","name":"release-c140c595-6884-4d71-b6bd-17f0dcc47528","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"52e66261-72fe-4f8c-86ff-c8946b41e26d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186649241849894536577392287975191296412068499308691653034588985661088307368786909579067497650770922495171594006996911586681399291888246685739423749555770886293475163232111338567647443259835028352598787676795947609605681596544436877260263252881658887909597166444789092545816476589456987990020268936780726435809470826459381725123936474167457794670426048579577207315254944546791891","osProfile":{"computerName":"jianyunt2"},"vmId":"994ca5cf-792c-435d-b1dd-f22bfa5d1447","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwavekBla+sHIXm6AP1KnD7198stTa6N8Bi9pp1br/BmnsASPgcWGHKVkKKXRkc9PBexCt79FKzgVcPtyW9AIXoVOVs1w7/rwz93my25T4oJAwK3Tat3TgTGc7a5TiAA3kgk6mkNjIpnwWmGgJL7lHvvIjr4/O+pLSPxrjR6gUKrSacKZXFLuLY2ODrLKREFvGjIN2VD6WN/Vy71mtTl1SmVg1cExGvDBKoucnwRHcHHUzHuPaBZf1OB6FrmE9Z/J6XPO8o1d/7nKPM0/kGK2sfumQrvQK5BERdq8lYlaGl+66IiEAd1/vqicnnFvU3pLrTLuBoR3oyxJpuTAOARcPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dde614de-75b8-461a-9cd0-4f174d753161","name":"release-dde614de-75b8-461a-9cd0-4f174d753161","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e161c3ae-23af-408b-8df1-110e714d7b7e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181975508690981276148633433158652428814701126856324597622361446715891342869642723656878785601971116282119397425246796137105198376538475791143653038757612062700604562144719092105742949789438963194078544481954745186939138784886850037303647381157179309330149921250432072746961568632413363395990431232420232889275629559138983809669171761465618243642202","osProfile":{"computerName":"jianyunt2"},"vmId":"34dfb26f-5cd2-4d85-be55-70c7b1712a14","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Hw/oYUdAxkHcBmEeDmU4rOdlluyhQwna9RbxFf4MgliQyRYw1qQuS6jNGNSMw3pND1rPQNMnnMv2mOet09QFCHad0rDVqwxIF3mdISbFEdOM2Wgg42VoI2DanIvJwxIpeHWpr+RlEF/8WfI7YZc/NDl3HatO576RMJfqQQLAe7nWTXjWMxgEEKi7I3Wtw9Z97YD8ngKwdh54kCYB0fpI/Q4fTTCH4wW574GUa6qr/ml1wSM6mxz74pmVCunx1GmS+YQxq1hiJBNYy3gSN8lamYMmer3T0NC4C3wYym+zQRMKmIrEqv4pXbjJYz99MQl/5DpDO9iv+F4Tedz0DkbqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d6edce4f-cbb2-456c-990b-c8d7e866661c","name":"release-d6edce4f-cbb2-456c-990b-c8d7e866661c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2aa58e85-80c0-4de1-97a2-b369c4738772","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418995862375604534372423003508919722128360579507339755933649682653388235021938751602424312907453673659122905979957140371476861889215443293231806192327478991542759101293126343816837150933677411173327787115910313674777505683048659975731325291731726695450671765125481437982678444726120448716612433476053552193238745562121","osProfile":{"computerName":"jianyunt2"},"vmId":"05189d8f-6deb-4809-a4d1-3e17329438e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4XIdLGy4qOuOyv5Kr7YkfDJXQSZtjxASrFzP68P/VZ65k+Rjjp+h4/TZRvxW77POkoZ+riQmZSsb527Z2UdTLyzWkJ1TtZmAYeEy2t2oZW+XNcjyiG2S57VUOvb+PS8xMQsKiqNpzuRq34rR4BOde2gxlReRaHBcjv+h/Qk8+LLcGYEtXflQZO5QqBofnfPnQWOhJiIHuajta+jvKO9N6P1wkW8xvmEAsoQAfSqHyYGJ9t+I4pYoCgziiKZZfQMMX90IS0F8fy4jnokuTZ4XCtu08wJFtY+jwRVrqJ6htEnBRS6dvERiOFSHYMUvAx8tauphG90DOcSuYUvVdd6dsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6aa62639-9d0a-44b1-8db5-092de253f9e9","name":"release-6aa62639-9d0a-44b1-8db5-092de253f9e9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"71328e2d-a6c4-4ac8-9f8d-bec3b29fa9ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188028422986993816681454186195273831293891481512129519300234364074922391072481863159017679851054331867364992329047705120504792624815825816055142677521861599896253621853310387980866071759444261714696335450921957900980582539227568292858881340785689798792967042774144206039419929609038275978724333483604546833928957165525434900861854886342878667597218047988718438453089688749888416096905986402249233930656199475635046024047627090172915863717332729993633779064220","osProfile":{"computerName":"jianyunt2"},"vmId":"5f459251-9f48-4213-92c2-f55a77caa39b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyE/O//Hq3r7Z5EqsPnUoY7UaN+HW3npqwdjquhBX1gB66gO3pFwsqoxZWDb8BS9/gKMfekKLufu1nS44smBlagO4NQqkzKnOAQg0GGkOIZFV6tz7KdUsTEg3MjrZbswxy0xAMo431fEpOFHX0hBJWI9luTo6wsfKB/UmDDmmx9cF5YVzjcFEJo7mTUrxqOqQbJXcBHYtHfk40UYU0b3k7GQDAXZZAKM404Z45ESoV+g/XHgSkbPyNqnjJ8M5wTvxkAKNb307tQi06pnZM9lDhfwX6M28edpKjjiW0LntglTvn3o503H2GFKLV0GhNui2VN5WP4GyI1K0Nvu1p5KzMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-47c39a01-c40f-4ec8-85ef-501910861882","name":"release-47c39a01-c40f-4ec8-85ef-501910861882","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"22823a02-6f8a-408b-b4ca-a4c4c787f844","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819912749847076263162881047484948478946554999531551523337848138907522493595540870831623586786251561734550824150591476990051122784681427442314786069482063677304973518578259041454174970672233335788024165908570336557367153926122486826241372791154631719504366167246233909648562881368369360575281246239582281016466106461648531865329792672352698822503217823345168472893484989255772876894632788878388933245768465231833034061112288","osProfile":{"computerName":"jianyunt2"},"vmId":"15361ed6-b1e3-43cd-9bb6-2e8a6f983b31","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsTCQZAWOi4U8tFBHRAXwn1cnIe4ysYj015DUySp+aKWAbYK0DEIUt8PK95mGc80PLb4EPiVfwLHTc+lNV5cA/FR1mdCaLu6OQSycnQUXZ98xcM4iWHgSd1cGGFhuttydPU0pvwyazx8HhjbAZiTj4JMv8+uPnbvt8VyqcfvIVkrxQGFPLbAQMnVkYZGu9IbM87C/HQ8qkXlKNP0aSCX1R2YjOK2y7E1vW71BbQyaf/SfLzL3Gu22X48Ne2Tw3Cif1Fg63Q+bbIYJiPT3IvQ9TwYsYjnOEcnMR7co/0sDWsdlstBLC7az69Ci+wJA7fIkM59q1/LAjn+QUMOSQ0pgmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-944cce49-ceb4-4c86-8dfc-057a794fe290","name":"release-944cce49-ceb4-4c86-8dfc-057a794fe290","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"397f62c0-ae1f-4bf9-a09d-62d01575b6a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41833333599984137202003940514206378650421044380658391294354657439023828511868424444741884449577283317385018427353144592189531992521689710537809598365782777887583611717896613974149599439880347307912514035835948610927164434164201363218916147816946136475331317615044701113083051363735443530583459900174977122530088893657198338991272781748543027111203738773606618198161091202168764699234389833996445311322576201","osProfile":{"computerName":"jianyunt2"},"vmId":"a8a14467-57a8-499f-8bbc-af63b5e88edb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArt6Rq31zFpUXOP0SYsor9aT3BvsLOQc3qi16gnlFdR6mvBaYhvMqkroF9tNBlNybdtGn2AfV7R/xmj+Yhdhh7KIUucxN+gvu1OFuwP30tGVAMw8M+6r2tYcIpHdj+fl85W4IniMOx76bPaHbAnH9aHysIhBNEqnSeQqL68bwxBEAFjOXkjppU1U5XU7BzPRroFrDaChmKdwH6yomaIEgSibS4ytbGgSl7gKDHsQkRed+YbERkGgXh98h9YebNFD2Ru0tV5M4IwrcawscO5k/Dz12n+djKzOTHIQK1+d4jxr+8FiIA7hf6uWOELINu6140gDxXz8jnNVQ3UmZ3EiYHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e0f57c8f-564b-4888-9905-27d4c242a407","name":"release-e0f57c8f-564b-4888-9905-27d4c242a407","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b960e50e-d9cc-462a-98f9-8798c66c2f18","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41822616464736956345848430995295197937954327405903226483770708322960285979814176310299842988485712802853428194723541715781799893996933409948532804694563077889231403284689007367465452561488120802196387573322668873031493225383980101677710848815517624654262878345047766727330960455445998186436873407418211930356142274590273346953935837924358200496242409652325","osProfile":{"computerName":"jianyunt2"},"vmId":"173c2976-35a1-4292-b257-3b2722bcbe8d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwQNyuIuW64IXTHmIQCIy+/AX3t5s8TSaRMEJTzJ5VyIXjiarTdoURDr5uaByyDzLeli4OSUXEIu1XSgFbS7O7p8AwqTAak1S3mOKfvlembMkjhCFp7dMjHiOFEczBCUftU7Wd7z6PP9mCgqQqNabRkavswDyYnawIjefYGQUOkAcD6Vebd1cFW+sxFBrZ0+HxmmlvISc9baAWqLsfoVZS8VVKa9ZMbQ52HiXZ7xmMn4JB7TzM3P3hpyL+Sag4w6N7MuxlmXGBcSSz0VJ66Css97Aa1mmc0rwYtQKaOOQHUmNEtzuscd4E+O4DlrzT0KW5FXz5M8D9zbSoKYjXq813QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7714efe3-cdf8-42ca-956e-86c7880cc8fb","name":"release-7714efe3-cdf8-42ca-956e-86c7880cc8fb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7f6108a5-3b50-4453-80fe-0e1251c81cd9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418130252865512460873422762520259007579670813688342165697569745365945456170548899690072233217479591596031684717033784792533547118198243075119920714723766645459071589122199350635838660937250748279307223532358711983743121633316394656903783145422323142706909135480622787130831997757296749797471518397919688932189025381517934347554426846239318346915831421538441690774887522452896660212274911376374","osProfile":{"computerName":"jianyunt2"},"vmId":"8c27a975-ed51-4a63-b9e3-612e44db1ed7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp72hxhtD2xm/zG5eD5X6uZt4nDX7J2AfPAUDWDOJNOCXCXsDKqR10p/UB+Ku5rv/n42cW5Ysj/sulEVNiYinj6hJ84K4n+JeR3ZrpzBWCJmZtUGa2klZqwQBT7yxdrSfriUCfL4FLLMK9dufi2TwQieXGmfKQq5rpY6c851UkWVrCcb1LGHRq/OkhyVzY/nGdnJgCdLWMIha1h3lw+hx4giw+Ar2vmsjTX8mlxpTS85nwTc94SJgIB93L5a0HSfKOO6BvHrpZtBl3WmEMbolm1lZMAv7OzDAaQTik22ymEMefT9I0Nhaq6LJyeLx2qL/1efNp6WKLrXQC+uwmstMGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e95b798b-d524-45d1-8a33-6105448c4afe","name":"release-e95b798b-d524-45d1-8a33-6105448c4afe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"684a4a38-83d7-4b9f-a135-9026b71fe4b0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41854649013309883223304397482293569122916898553253405461464318610199679656094195504529947396903620865236272546963375967273741722635677338697117087713591143076557130194872433598571796815354444330769056973825253868717912797879577977040785726193930949989334176813404041202515889409848762237180816670877031538448326234972932418261641394327933756994269768423157402772514513935257894677078408696803917","osProfile":{"computerName":"jianyunt2"},"vmId":"dd6108c9-b81a-4ef1-a03b-6d26d0c7cd17","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsBJWNPrgj0X/MBeOjsCkMUMDiv3U+2orvMpmCjnN/ReDK8uixlG8c/ae/DEQeB9yn+NicevnUfEqIgCGAPIIbpsJGDq642t/qdKFYqtIZhx//tEDcdX6QlAA64F58SWqS5sKvypu82n6FtUnqZ068wjK0/1j90WrpJCK7d52SNBCV1+cwESfqcX1BOxiJ2nVtqKl8uUrFhRdSiD6oYCc3r0dmMgyR7lmEcbCtloi8fUIgACCcJET4eOGzlpOQOElBDOTiZ0ebLhdRVjLoKP5seuD4t/gH0rbZUE5uxWq1Hlajky8PJe1ULtx9YOUAGNycUADG8QBpFleEhbQAiNMnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bfebc8df-1b1d-4235-ba40-d53a09994ccd","name":"release-bfebc8df-1b1d-4235-ba40-d53a09994ccd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1ef8c253-fb2a-4753-86ab-95a145e084c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41830026880817248296749754159487495705656658927354125553081429666310606705746129206355447222482647611814509212831163671249810237693039364795865431881798369459463796589324343200099271248380644461601765911417289406127763352215939520812393419491786299335928928443557699211975704936881030995846546333583570467450067483610933090293666938079762150953055860762193015860184148944214914463457969227738002781151434223871","osProfile":{"computerName":"jianyunt2"},"vmId":"3821378f-9ffb-4502-bc38-07f26e3c2b53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvmHCj4RWvEHc1X2xO55YEp0nfP4fkzcyFlerNiYgYhOqDAaTAS9D/jaRdAjYlCKXiVRv2HFf886eUng3kqodK+zXEKnaXbi/KaSCtuWYsYfOmJpBYZ7ncwg00/hKW5qkOqTYSFixWLLABThNqquSZ5DHCH8490gQqHYrx6e8DfJyWxpnx3tENs7qo31Al++GIuRZCxSZIEfEYGRry5bY+PDVGZd5/sWbfY5iw7YC9IsN24qTQC6bRbDtYKBDaaQSMv6cf+8+34FoLuDljrlAGyYm07kKi0rsi2XgFFe8Gylzv4SIVMcZPpRE+rU2Zg3bFNIZ3loiuLhJymFs7rSfaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dd7f41d2-fd92-4df9-b473-e54f9b7b74f8","name":"release-dd7f41d2-fd92-4df9-b473-e54f9b7b74f8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0a619205-86f8-413a-8413-cd5233314069","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189160424183159754125660151079742149247509440576759512990321598617761496086891547847888296793283168667187261770133320141681548146766057187569791587245368594618719991279863267720017903916736373737114269838207154449728507784316568226912285926845260752423409368444482879255389167285807560445723133737442744233785333338424213416446237463881123372365276832521717862790002434950037438082355659183267567834421847","osProfile":{"computerName":"jianyunt2"},"vmId":"ee50e80e-4adb-4657-80de-7ce8e2f9188b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu9rw2+aQhbMBSNEfWJz4AZJhoZSLWGNbUy2o9uPqWJgCco+KWtPOpkw8WSi9rtcnTC6tL6PMyQKN9MSfQ4qgPxlca1unsihRda3cvSrTQCMIy7iWPpWUGNuMvmTC+0lY1dZhUsM/N7GgDjug44X5kxf3dHe5ypwXc2rH0zAR1cAr+OGIn1b/VS13sMe2XxBl3yqlxvpw16jjdwXN3DluaxWAr3FRkLuxZtsrwls8wMeAJClOkedBiUo086JR65eIDhef8idjW2Qdk3wrUv5HnMbA7EzGObWeFHReiSpKCX+Sllk0uLjqxi4kILzFAbJoBbGmsuwo9UH+f/YUm4c6FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-39329ab7-f03e-40a3-97c6-d2d95606390d","name":"release-39329ab7-f03e-40a3-97c6-d2d95606390d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cab645ea-44fc-4e6f-84bc-1d9ee9ed3bd1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418244964089727221847256686721322571145636936429533907913049205529340484625303317717290788848367555336667527513611226559409235874137615302136112562938141479573616260617211849995173813872616499154250323555607902628017594881758911442961379483519432379488427843911646382087725431231817910225908791551696001959517594118371854212961396202291419207548047974855718850740634021622","osProfile":{"computerName":"jianyunt2"},"vmId":"0de78ce4-bc3b-4042-92d9-44a472bbd198","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoRaaiwDpwJhwBdxVzUACd4zO94EiPGb4exCmvLqj4ChCt3rdY5NMjbrFp/xUp2UXvRIIJdIOc9hyTfOQIpG1RDPu0NiFRDJtlbDcjS/zkha2A2TDXoY41C1bEWq6VTfSmkJwpU+27r8fQv2AY4taVLTu3M4yS0RuWKn1S7BUvNmpRXpZ6LoCpTJadxktJqFjK8Z2Zz70anD3y9KsJcHTEuNg8Uq/Wnkv5ldsXtocs+xlxyq5t1MvrYkZT0Z6Q2elDOIudzp19BqLXj/o39KI8iqXWTwjfT1LgfAOjc6xhg4xZ3BNr54URMLyHK8iJTds04oZ+XRS3TcP8abf1ppdrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-269326bd-6eac-43f1-bed2-130d46fc5aaf","name":"release-269326bd-6eac-43f1-bed2-130d46fc5aaf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7cf1a4a2-7592-4809-b5d6-84d64acfdd97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183265433392239625552068343796983692986480488027423969758104165579064310843350843209646275652898073905282879047306515440522903665197855118330593472035245610445120703594014978575652739768777489468368128147845216339955527597413615074026858288222569871797782372429587617931116916756202702143992531730662430131006292866025674492446456578299","osProfile":{"computerName":"jianyunt2"},"vmId":"11bc0784-a827-4adb-ad51-8f397567d2a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1hOwSGUG1FvEH5RHQhPxwIexiLxntGCFnDAkRWEwwl4OVcxuA6Yov/pbaXpHWzg8Z9aCv7xKA1cNxs/zE4HjF1OiMlpGWvApHun6FTpGaJ34QZQqgzRPW34Frg4KdtxZxlBdQvPr/LoVmXQuh3DBAIV2MZfj+knS5RG0LXgTLiZXkYNA5MOQ0fOoMQWDHDXZdRraU36PH3X0J00jMF498Kli5k8LhR/CQfLYzm+0XQ3nfXvJTD6/jUnVScYCQvcIcqP3uS61j9k8kT80cnukhNj3qzK+kivWYc/B5kQvK099+tYh9olQ5+Q74K2G9bJPGW/goYw9782J3RUPQC2+owIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-37175de1-8ec0-4836-8ea3-1bdc9cae106d","name":"release-37175de1-8ec0-4836-8ea3-1bdc9cae106d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bb7e3713-8e07-4949-8b5f-b27d6cd5f2b0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41877533744153173825880990369002943462339269534126647690362502130286890404354839497943557470114412200662542339153609111364316293246641919486950169740177719264961654325654379859580194760025993440553814212373350721316930468251151882399372914214128313526576385368108752276220194028988934131511281272450556991788834149678585025501065803414542739927","osProfile":{"computerName":"jianyunt2"},"vmId":"872e062f-9433-41e8-a0f5-79787cda9f28","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoldC1FH/mRgH22ykffIls+ZEJ4gqbP9R+PIeo5cNwF1YHHjegJnnXUicxgMmKTwu9X/iyqxTpuCEyXLDCG8QFjoh4AkRnih69rB/z7gowb82sDQNE3WtB/EPRYvUqYRY50qQCVV4n7U0wavnRULnNHfm1yysHGeOQKJdkRUpwZ1UwNKi0vgsU7yS6hiTfFyPyG1QqqZvk5tL6+fLbeJqWvhUow534+6DoxxJe590hrYtvm3IPEtn/5QpAJkRouy9CdLut/sHGfPoshUf/kmq34OwlvJzf5kzHH+912Exrj1kUpZ3fuQ6ESWquR7biQ7DDjkBCGPSjqP3e++x2q1p6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-56105573-0bc0-4312-b9b1-1900b70e19f9","name":"release-56105573-0bc0-4312-b9b1-1900b70e19f9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2d514b1c-bffc-4c14-ab59-92daa5b0834d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418710536003261391588106663917716253870568596993233348352931265905933679024373202586553968099816708465651919612685111963909754628088842093665316251787572399566786599625629479266361949853191988669195330541261290445515063682958655476175554194110844803846552966886467128190737482127591543429211092608719368392272852944589163746927118278677098501594452458733824447336977659270015827593331390882464262283129569591884","osProfile":{"computerName":"jianyunt2"},"vmId":"fe4d35b0-4158-45a0-ae95-206b36c702b2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzi51IIYjOjBoBTGk9Q8n2YaaMWT02ezuaHGZe2vD8e98QPZrMC8S+bBdnxoJnhFt3cS1amrV0wkYi0AukWMv3lGYKR67jrU+OAab16PUPog1Z6E40VtFqRY50DfC86vWNNiaN+RIgstB3EO3Ecgiaw3tJWA0Kiue+hyGRF3QsRyFcDksE6AGbgVGednTCIGsnVbWcKmOKOwk/2MZ6WSWMclRH/RC2wI+nI/uhNK1OZKg2yM1ySs9uDIYZQ2UYiDElOSlSigcDqMvJ1h6yDpVow8ZI0FNyvxY0MKQO1F9ZIjNjv/DA5P1b1+O+9qfEBEB1vQeXrqIiLtNyfODaFDbnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-43ef8846-3d5c-4ba7-b670-5801c6ef7be4","name":"release-43ef8846-3d5c-4ba7-b670-5801c6ef7be4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"79b05e25-e534-4485-bc06-26a903f65cc5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183469223757963010348571882737654472219504585513137762995133670759862757990763553715332538348696399232787994582147961936912189688442139900724649555533604391475904744397488840747521479470585101371400966377994448114526254316319867046654314019294526701997783953766682830187","osProfile":{"computerName":"jianyunt2"},"vmId":"0a708d89-d905-48ea-8ac5-1a73d88148ca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvyLOUitj23oTcQVr9OnGX+EVh5uKLQPhs5bIjmo6EetZ+V20Lnr9AJmArlfO+sMuP0C5OQbiOx+e+aim2cL2gnkz5DucxyGT/liEhfZBU7I/vbwnPCLUZUdRDTKqzwT9pg+FzFfbRtlNJEXzDvz+ea6/Bqz0tSo2dhzY+ASxaAySZgopHSLtYGueJ5Ut7ZxGVX02UewcVZTAmgOy5DCUiwF5n6Y5OUIXh4uT8O/WXV6fTLfuxGRq96AR1bGXw1+oRGT5GjuSjNZBN7X4psUrx/dtlVAZOASZYY6sSIsu30wJTTw2kHxNLRXeD2oOzTAZV4vGroOKI1uk7HInnGvpswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d34f4421-c53e-4d8f-b3f5-dda5974e5016","name":"release-d34f4421-c53e-4d8f-b3f5-dda5974e5016","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"662f4b4d-10f3-4a42-b759-24b47c195077","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41848657731314811424486320512832630717412670166003871515323784866808076483226815652106593699370880066722458809880178084995850614607911302089509550980048452614595946850664658619676877927516321692189527108324344652899735512291909439539304238096891193711619333405257338898926923152451104498601321532761815772163953038374065104514653022132308","osProfile":{"computerName":"jianyunt2"},"vmId":"9fbfb99e-d608-4d78-9dee-76b4feedb66c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyys5gHFg0UkgtCuj3kENgdx3mVZEU/kwlgVuPWpz+4p+sbpZz2S9FRcIK6KTZasL07PBNv9i9zLEtBNmZwFQn8sFoQyenfbNT2P7p24/QJlamXw/RE9jQl9dg1cjTZNu/VaDewshWthcZBwjz54ZGIjP0F0F9HH/QLDO3R2X9vy2mUOz0t/f2co31aWhpxQW/q3dbnm4MxB+J+sxGhjGlqiU9Qa9yEMZylRKUlrsNkVde/qCIqcvTPjL5J1y8rNKrbOLgw7Lsi7cIO2n1IAaOHdJWz1cpefOqricGdNkEgZumInDRiZ4tpVvIZYlsZgNpzIeYFPPYkNoMZpgI1Dl8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-af430394-1fb4-4e35-8cec-3cfb58bccbcc","name":"release-af430394-1fb4-4e35-8cec-3cfb58bccbcc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"636b7fca-5dab-4ec7-bc58-fb7d7db3ff1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41837309704111120643347827875337128495946354434865497585713215426224762885367806886122844145511423017597688971823242422458561798538353141457566116318897628235411659427713375623527922333376194341483662326375612194422943887068901973362353079854862081493526953027969624379801190724030956413349398608608338157191338406748798879003396862916267109084865041301967","osProfile":{"computerName":"jianyunt2"},"vmId":"da0e9641-3b2e-4c64-89bd-42686ca01a75","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzX+QDCKq/USi89HnQe130ueXqbHibYSe56NZwfdSfnuLQnGAby/d8QUethcC2fhJC8I1Cq1tZGl+Ll27lKvMlKB5DhYXmii5CUYCqyLlF9xYjoA92BEfTpGRAnk+JKiWklPPjX/ozQgzcbKVzGBJPzRbu3BVaz0rvwEieY/wcsSKsIG4VS4o9EBU5xpVasyVJBxJI9YUkwmtWjAVfS+igxfVoB9pcVtbmZt4bfwbK65+bqkH7RJGHUE4jd/8J32KRP9vYTwFqc2DRfPeqQi5ciM25+xBc2qUilriM3rbVqrIuU33Hm/q6d2BBFbd3SxtAfrDTE3XjUhGd+W2m4kHnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-769910a0-acab-4a18-b662-e8aefc3de723","name":"release-769910a0-acab-4a18-b662-e8aefc3de723","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"afdc0d3e-5e78-4565-a5e2-f3b1b20fbe44","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418754704369782309904633763280604267129131180810140322773173409586238728546778357209954429740878071883838262958658903769923916530477354229842439957698069565690309308410792586275905750668345156826478685286060917713703189830421387534258619418505755403926713235596347825674769646412532802159339409567559886537906556195106658327507745560275376577961367434499780","osProfile":{"computerName":"jianyunt2"},"vmId":"d5cbbe7b-880f-469a-975d-4b26ba1ae38f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA02AX2FLpf1zJ3UhFNI/4lKAUx+iS/31YbO2iO9FDM/zeOV7NkMQIY4LEPqdJcWUV68qaqsbSWlVk0NP52W166vVqvnCZAloy16givD7GY/n2kZEHZ4hn8nUOpDl/Hd+Pk8e4LSV/epnoXMPo5Fh7gHj+ULlPawmgKfn4T4LPglL4QQbFYUH2OgC5pcu7qglcKFSjm3Pd0cHlMwb67Uj4kYcvMZ8ue/9pUTpHCxeEd5xnq1OJ6G66XiUcvIpyktz+1dXlhyYJ6Ryf4pp9g7DMYBsa/HUU2bgS/wIGbSSRBJgTMCou0W6mJs8IIx/LrxzcHVdWPt1wl5VfdKl+o+/9TwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e07106d9-196c-48dd-9c45-8fa8b93bf187","name":"release-e07106d9-196c-48dd-9c45-8fa8b93bf187","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"48fe95d5-24d1-4f0d-a74e-e3bf24d9e5ae","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41844612239672396389925319337579236542709630012729326156214735831652120317262985424227558945454993910973879054864458565216353877674873069391951358342332667542155749718414854605366921079842513769116145484244166391697227691255681683626184682770624647499255512273340326035728487354334598985739661481727150856266560699359855279301355915063934428997482746297776185939143","osProfile":{"computerName":"jianyunt2"},"vmId":"0ee5a517-5110-4248-bf3a-a6e251eaa9bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArzukrsWBqpNr8YFRtrrzMpoFljN67D91lo3N6KcNldy+wL7fn+8ICRv0nuNoGKA/aNBh191wuLWk0u+211U84/wb1KEzw8+Z5FwBj9+OF8sQV8adnSTNkORNuhnGhZHETa4pXOUmYxt5/6lLU38eDF4HBsGshDnfsnRUjod42ZYy5RJGUsMh9WiRYMRDaAZrXl8UY1R6+25Vl1CeAP8YlT8WlyTVipHWkTRlZxSdyojb7MFHKJDhz1Ckz62rQwGJd9q+fE9zofildpI7qpQYm63me5c1gRiEvVZAI0kWLe023C+/R43sNmI3ErJOmz9aocr2X5hQHW71a+mHWMaFewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c94f5dfa-c7dd-46d9-b875-4cf832c7d159","name":"release-c94f5dfa-c7dd-46d9-b875-4cf832c7d159","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a55f8a12-8f22-4eca-823a-24fc4bdb5703","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418579481494796899733475336334190018665758231932525880973683862564562655273755410277029941320287657975719044249663689626585433149114036851660649015988966398210732936643250349031465855144555522279512801393575228366527635269725392251280626878179439689853804831353276022419632969162475303541063384289832626755147585256781110318949372516195181005775","osProfile":{"computerName":"jianyunt2"},"vmId":"b6b9acd9-9c1e-49df-b44a-4ac4f0e76881","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnua4ibsj+qme0UExh+blf3Su1Uz7KD80/8vUvaPfi4ErtaHRp1H4RgdAD1gdEagdw5d7RROb33LiAcnQ+mC7PW5HksmbD5DgqEUaTYXbVcEaqU7UO213OXMF0t++KtQO5qdqdWY5HKXlJPAH2om/sdyQMdf1KTj6Baqt2KwL3fXyXzw4MQBY3x3Fq0SOCMolW48m6QQNm2nyYxZWEAg1ApV09cEPK3RJL1DVpOGlvdCuAL3IjqJ5CQt5hfKEnM1CcAfo4p8VOa2rA07HEcro1CvKHTDX0HLQ6QTptll+wIgiKzO3ny16gsqs9ekyY+dopWZDnyWPyFGh+4MnwXLJoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0336d345-3d9f-4cfa-9e80-c6fc5288c20f","name":"release-0336d345-3d9f-4cfa-9e80-c6fc5288c20f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"963a1985-b1ad-4b7d-97e1-ffb17853f031","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41874916396300631811511838520763936548060827710886549555111236736578296895487429698782617107393482831742001423468122021692430420477249513524922431457971172318854610170064447762021274500456137354961452196066483561770824909941102610975146866262896888859490858913883403389261233996146021406303534460157690153941619691008441677627845020449207687099876903420171135161578485921852792886325123642812974774850247001340811585525638254","osProfile":{"computerName":"jianyunt2"},"vmId":"8c50c3d6-fdf6-4b9c-9d1d-5b6e0e4f86ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA42iHwT72Klk3QN98D3Z++1fagtbuSlCTBctngjpeVC35jneOYnQ9nHAoQKRLCPI1Vq2Tnq0CAlDMlMbla9Y2HUrMNWdaB2am+qS3E9tp/ZA2Go6nRFhISgrV0/Uk++BlntGcsrFOMfAjoc4NeVDE+C3cckq9AnEdTzelLp5lXR3Dn0f6kdeZq0iErwdJ/k/Iv5wH37+KqgReJUvV3mIv8kSD6bhhKtK/dRUIgss+VuIng8UgQPhFT6kT7O6L20qCEGA2QYdUMOWJXxa7YOCdsZSl04yGB8QQxYE29fCsd4PqKB26hRB8hYGT1XJWLJaqAMLGJOVE4WDabdsLwZnEQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2f9d1237-fec1-4027-9e02-b1e84a0dc1d7","name":"release-2f9d1237-fec1-4027-9e02-b1e84a0dc1d7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9c5b6f8a-61a4-4023-89a6-4413405f6fa8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41823276869504090831753801119894297336418757753207402864278441713449499034521712578873323024549953493517489275066253911577203875847392441681247192092896512867168711693575393706181195679865182161059984349689329689487983950767625403577509048889023406984548181909552723260614173807114373068539729754115103092958476616975263014357020876025534242391539880881228876704667639702248182293814","osProfile":{"computerName":"jianyunt2"},"vmId":"7809c28e-94e6-49ad-8f9f-5e08930ce711","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoqlARi9fiPHoH4Bph46IZefsq5RJv79f2NncRUygigIQ2MVDieV7J5BF/BqxmilvkYlCtSVzob7eN6A89rWUkwpwLq0bn8HyyNUsnJZhm48Q4+cc+jkn3FgtXDSLmRHcpllb5uVHs9B/YDCN7NgZwyxru1s89gkIQYoJN9yA6pAP3QndJrSf0c56eRXbykQVB2tF3QBvyNF9H6i1yso/mHF9wJE4yfLeFYmDfyqLKQBLBE8C4V8+kFVx2OVfi7MLbYwWuVsenDSMw5M+TthMX9m1lTxWI3/H0KJrYRInmY9Y04G0JH/ncukSPbxAsxuJW0Y5q39uW1ICz2DMcWJlaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4692089b-155c-46e4-9f93-5d42844598e9","name":"release-4692089b-155c-46e4-9f93-5d42844598e9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a3918aa2-7ab5-4fc3-891b-50bf6b6c9b69","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873957052208455263117451593823820337449769704849941789078963594633317311172493865607894276102827497058295243800687459902692316841689484863213408532297247476762695211689922957058216331561157004561498217787997711014436510837828962744879568496837327995866812142334443118132546463445904307665898870549676273819304712984095970","osProfile":{"computerName":"jianyunt2"},"vmId":"c856a07f-c743-4825-8550-9f0ff7028fcf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArEUiAoNi5DGmGPUxXR2lfC0l/YRP5nNEh2DhfkWvqoBshI5IwZDo47OCJBDcySdqHGuRM+KLWXjhdUVRUjQ4rghALc4Xc2PEQWipPAnv6SPVzjUHTTJnjBsWUxuQONWgeaWrS1ib8S474Sj9z4CnXYXNIUhZR6YKRbA/7f7M54oVT28y9WEOwzzhfPl1kSEYv4IVoWh9jr0FduI9a1AcN7VTcS8yM1BKM+4TDf8AAohuBk7bWsSOP+SjQ1ULcuIkMFamL/QKaOsSnrAhfCE47Jl7gPuIcFNf2BzFmj7/GTeOVQEpQybtGyhNRz7cp8/NWuXw7CHg9W2WpXgD11dKIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7881be78-1ca4-4425-8d17-e3160d107146","name":"release-7881be78-1ca4-4425-8d17-e3160d107146","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7dc7a8ad-e843-498e-b020-db89a61b6c19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418686427290555208424373543777687811941293742443482592585179019904955643869802597733118323605711607655935934687469848019665388915796649916372477186278803908877753837822227014855268942049875401711329281631432015161308951649766591505313910342592869828844286842537862058799689886283490999170013323211210737429300725521342306206722919268486442475565400625615896314183625042971409590151569580439863499945378442","osProfile":{"computerName":"jianyunt2"},"vmId":"867e4165-6673-416b-b0be-259f8ffbbcb7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA24gmTA0suPNiUQmbw5jBELKAGIFoG3BKc8vH9v3+lvt4tJ34zg5ezYJT972cfoTMshICSbBGYOzA7tE1gNAsFzJQT+SHIekiTczFQUSF7GuVYR2Gq5T4dsUT3Bj6fv9VZOPaDF/j0MCgLbNqKIMcIAf3ykftsbZEi88W3h/hZR/nNQQDfjmCX7rMFIeKfQ8UDlFmvEN66aXnwxHRTIyU8CK1BEm8uCJp5ZH3nQzEyJ3xaPbYtLa6Gtrr5dDk67+sS18dVi6oIN4oOZbB1EOlAkCWGpCp4eYvep3tu3G3mqqmuiUDrQMQhkvi7ANQ5cABNP80rx026haeJCIT0G5neQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ea3e9b19-3061-49f8-b0d3-6e51128f57d7","name":"release-ea3e9b19-3061-49f8-b0d3-6e51128f57d7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d0621767-7904-4bed-a687-ac1ef590a4b2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828687653315538299263146230812089032350231637454287064247722185048216312657389440847866216613686543146591328327929366949149033335525995328982356322256293424484974828753598550964242999876231140575345700210603929746792902862596617137111615294563141854107977465871107769714210991364428098296564346263595456831182673668865671943692153018948197378983886659","osProfile":{"computerName":"jianyunt2"},"vmId":"abc10d83-1a1a-4190-b151-b1e781f25326","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1zPEi0tzM+cgg3ZNz9tL5tr/B7z8aKSZLyJVuGlPiSaHb+/ECS5d3ucYG8WPc7jBkywZ2IMDO64Loc/QKDVlNev+nH8VKMWEw3E+DvMMfnAOZUu6IjqY6xODa+C0VCw+iJVru5U9sxD7FhDU7k7GopPga2MQlmeV2BiLMc7Vy+vnETimuWTT6nvzLCBQbuwuV7uOlwHPwli2MV5mPD7n/L//Pc0A07/8HW57lGUTV2pE4Ba4zig6RPTbd9ibqR4EF5PkgItkPFS1AJUf9rN31Fi7kdnFXg8hM50qw3PxeWvErYE7aMAUVIUv9f3d7XWLp4MDPIVgHnvoHM15GGg2vQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-12aed2ce-25a9-4000-9253-3ac0185772dd","name":"release-12aed2ce-25a9-4000-9253-3ac0185772dd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"48f43d7c-007d-40a8-beb9-b39a2bad3d6f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418732876242235402460181860896396575371512605513829587023048572414102895878469719258783819186268888573569336485781120944296670757413842706181968673304514830441009197883918705902623822231960748165418583903450431999336567229468019205418546479906481478571512277414543098691597538051990177095848414155229124355824657028862538289992470334159147058526327745432550586791726902901082754665101407","osProfile":{"computerName":"jianyunt2"},"vmId":"8fde6b24-2f4e-47f4-a78b-ae3bda45b93f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs90F0xDaN1r74KRWbEwcbFx5FY+DFIDucKsQR4SKpevEvVdlJNDZyxGqmDw+3H5yM8weK69FpJMCA5BQsg9at6tFeKHBcdf5mqV2km/UAw7cdyvzQ53u2MbYoWpJVpzlV/5leMsdkgcmGUYM6xXgB8M4KpaYlOO6BQOsE8dzOodHmPkEbS4bZHi/SRbytivScLhUQbGsQhQEEHAlHS2ZYDa85XO5a9lt9I5vxhdn+0lzamyYsfLS4KE9W1zzk0Q0z6i1xNvJTP6zMbNcQ38xM7p86m1Hx5Jdj5TBOYdIE42GoTGuwXimQyukyHsBJiOBJvcMsI7GGXa5RHxTqNh8ywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d8c43877-7d0a-408d-aa20-fa6ecd09b6b7","name":"release-d8c43877-7d0a-408d-aa20-fa6ecd09b6b7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b7a31a2c-28e0-48fe-98be-fda6beba0801","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188266938838367877028307312633195245927923472311638169985959984457126334668115342871620737078348623818595904317912433474587725765757176479139285339171196804397156460557304010533258495621743593053216632693530883148320531346652345010227345997157785320546411189683491497317331363916238812938219036179341946689041318749515058319234165361827104193273365004404454679452502246397869789790794444868774243802580603218291748542880926181084998","osProfile":{"computerName":"jianyunt2"},"vmId":"18c33905-00ec-4a42-8c14-f92fc23fa6f0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuqoRjowGfLK73nGzIjOKJrnFfX3xKOw4Ya5bNvT07Sq4FxBqeLJRan4kiSDm0IEvstj12CjOnGPfZtkmbgO3tHlfM3GfVm/wY/Fy4ggAMoXbC7rR7jK6blI4eOQwQjHca4OSceJ9++B+UZEJ4SmWPhdsO80LFH9mwMFfL7Bu2JE6ZlYRFP2RhQs2kNYt+SKKjivP3rK1r27gBTB28FwpYU0aRtKBD/nioRHbRm+IxdrDjXiReKk8S6c1EavDYAXCyX4jmvMecvTfN+xghB2qHEeHagW/n+ay8un4scOHqTWn48WoTIvoJ0ttFFIzo9VBOza6E0SsLRqtB0gWiZa8SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6200006a-8c62-47dc-ab05-88a78fdd6c0e","name":"release-6200006a-8c62-47dc-ab05-88a78fdd6c0e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1115cb94-0c65-402f-9f9b-ad146daeafd4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41847774996187819799266186473836501488376229347624747023259362168637741007576615097148080147147937380271296547502467732375176724638499729344821189835556662132426108643691138560515740152426807021186013322990914159185119526709236447260613101913758533644155713944492127762301781883091660862282364017214736972551573411396979888338855618961654268809796922072008","osProfile":{"computerName":"jianyunt2"},"vmId":"e5e3b12f-0c6c-4671-a98f-abc7b16886b0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx9GwYtqftKrL1G1pgxO7FPor8lJUzYdMVFuFIkT5GVqYE17g4FoMzFxTRwsNYOqNZx823MeTxzWlK/v+hxmDzEu+GFlWWTbJZdkcVTc6NUjX5wYfPhHBbnp+dYmerMpKBDmNgGCHKGy17dmOelW/fWB6IJwzCVr0Uj8GdQ0huD9eR7cRIy/RtBZ8oxy3TgbulWNhmJiiNuVlU52uoHGXApdPAyY0by6H5rr0FYhSgQ6rJ14NtAxD70m+Oyd1kow1fC2YaMpxs8cvtDEcYeFVIzspqQSSb7Wd+0ehkblzXejeWsTICFNiG6IfyXUEsTNGDzIJiHaVy8YODvFXorri4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1d9dfc64-cf40-4977-bc68-4c88d305528b","name":"release-1d9dfc64-cf40-4977-bc68-4c88d305528b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"33903ed2-ff5e-4de3-b2ce-3f4279ee7b27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181719244621495264840877433620449680692612989711722024181434159275345466626419343547324719827388506978732776985798269974791752342264383387607623769478420792587818897702278918338541779473582427991553740282098659249626455524270656222082946266110781548286783045319091896634331422886709141641379215367216262672684294847237371491061801851230849851855794449717706527273328107650","osProfile":{"computerName":"jianyunt2"},"vmId":"65d19d5b-05dc-458d-83e3-138b614f9a0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzKbI3fRO5QugaphzygXHObf4ZyBNBUGknCNxyWiFAz7fro1awdsGouAjbcyzR5w/AISy6g5HANIgQ0nTyjU4OcTj0OXuHyIgpfLBtBDel3Y5ItQ+l3NTPaUyRRSCUusjeT6YXeqSDIvrIkEfRyNutS1FGJUfQLemGA1pmTmz+JiXUrlSpvbM0JqcdAUO279du5UUKtB2RFBmqEHCUo1vX/sMk+tWT0hcRqO6tBq4t16RGrw5fmsNN7ggxqdBM0n/XtYXsErEVcYqU5gWdLNiANsyyfEjhmFHPHSwzWDr/j2i3fajUD1J1pIsF0VKQJ77foZjEakGx3byatDb6L/XvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-712da2ff-a6b9-4e3a-a3c9-49577c7204e1","name":"release-712da2ff-a6b9-4e3a-a3c9-49577c7204e1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d460e2a3-33ba-48c5-9732-fac041df1754","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188925121824118345544818379016451667839736064383851054891929969096609579392786767335515487651157099441753175988078328456683451562107938942697895363974681476708953156277697355620381202538565796461286126960571017922662018417186360438043280219837867263425522788060843434049488752143693313399396489128046378919798219222603329369817323662366517281387842898306198757619017242","osProfile":{"computerName":"jianyunt2"},"vmId":"23c47346-d514-4698-8ded-de405770399b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA40yPaDPq+Hwcs8uXnH5ShUt4uGE/aCtUcicPALmLvTIAph7QbMhaRhJJBKEZ22chYKrAAYQBbuPS1GaOEw20tPugdw6Zicdgy4/Z/mFG05h/Da/nd5Kz/ZsMD3mdBwTYAXAZU6M+MQvkrYVn1w+Q8G1KOMZu1P/XFZhXTWsb4decbLVXF3TWFHwcuztfi+GaVuaYC2k1m+PBzQC2bU11PuBKM5is9taDCZAQt2F87uBkuuyVvfyOQaMJC6iUsFik4TfRpt7JsEdZNi+YmpvJQ0WLqp4/NACUpEs24GuYPRPE4hWjjqxjC93ctDKPPnB/bezYhmuay5YrxIHM4OZznwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-527513df-3d91-4c95-873d-de20b27c9f0a","name":"release-527513df-3d91-4c95-873d-de20b27c9f0a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b2d5de87-7f9e-4482-b411-242104d551fd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418623161738214127814348849213443146663304293753126934932593179772712924820695039458535070253123554942999010746663642682876483251646159801516916606789715011263735189374820840578475206737483558063363887051551634115744644356465774321537188174766623573234401945815555006509262381536196060916737508236527945211901920944856780252870805013497554347963468282419441675471546270842824468125448861","osProfile":{"computerName":"jianyunt2"},"vmId":"08fdb786-5d0f-4c47-a312-cf3b191b7264","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwnVSzZiquPr6wq7Axl6Au5307/OVcOaBPH8Z79JynT52Y40CwUmqWkz0FaztzRUur64wgvx76vE76VzdaXPjIehqMuV8FBxRFjxZGRmybnR3W+QtlM0E19DMgBeYH6AcsI+6wMl0x5YRBAf5C6To6XJMRUmqp/3XI0LkQCWw4vpGIpJqFeMd/wKKVOObX9L0mM2MV+lrTfmzx5zBLJwz0p0VsvIsF+ht9+znCQYMLAwTt7641C77AXNwrcyBFrc6ZdLM+XtcSM008iPkKNXsQIfaJQJcAoJJOV/m2d2F7w2g/s9DI+VaBXMLgrIu7cOAyoMXIWyPk0zFTgB9wWVaSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f51b42ec-bfdc-48e1-9cd7-e79f8f46da33","name":"release-f51b42ec-bfdc-48e1-9cd7-e79f8f46da33","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"da3be48c-8b9e-4c4c-8b81-4f92b9a15d1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418665959343645524692574673551692130718120867987628323916265695469250556903787376448547236160151846019474565335957284461653509314546416863565971482566123922520702785118627711412988531446264767579137938803662628671485970435436389537423125938916241395765733187396079480803385182417491138462134751049377886969569639769320112872128671024564326189889478327786111178444432389926693905709","osProfile":{"computerName":"jianyunt2"},"vmId":"56de96d4-1f7a-4389-b152-6420f8d060a4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA27nTBMr0NsleeEz1yPFv+j+Qvlevof/4O22aLq+gYPLlu85nl5UbXgneumf3jTc7WHooQjvrTrCYfEUmFgACvPusXeTZgC110RR5TZI32vAGW/FSKVUrWdoGuDTXRpkjumKFBG9WfvyfDSZV9NkpXW2GARaX9FNSblV5Lj+OPLUB4JMPXP1tybyC/BHasxhhFqLGqJ4z3e7FNFOiauWb807jJcICuj46VXxU0gpFDNWm0HdJTy2yG3JtfxEjkKKRc3lXl6GkD/PzeTNnJDLZEB/zBxOqW5tIGmRlCekOEQas+N2ueUmsH08ASRSCHUYTb5fZtYEry+cUCOIeYZjUXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-65a1d127-97bc-4d78-81ce-cc3baf0d9884","name":"release-65a1d127-97bc-4d78-81ce-cc3baf0d9884","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c0fd766a-91a6-434a-b108-30b87150407c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41835468731492919448223683562452014546716062392648404232996819467301544481831594172777893873676794870594750813968266379980774552920333796251254164627547458171508050671172627861559145521851349037690117029102033728219123232733056016210584327192758102057357546364075585148957655434454417622928567938255368232506517437088732682125337214772254734338715027974410356124830022961186194068839213562384","osProfile":{"computerName":"jianyunt2"},"vmId":"b4939def-825d-4bfe-8e33-14fad41debad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx9Dflns1c1YpZuEZ6Kk8U19H92VC+1qMRVuorRqBVN+C7wYYFSjNKkzPdB9tPV308T7dvws8EN+8l8a9537SkP/FQ9XVLlbWNxFRIbizhdv6aHiPCA0BKRNpzKJHyFpHOvm/1KKWhDz5VKuVM8DfwyA6RYj4ee3XgogmOfiQBA6bQm3on4doUjsHZ5T6vlsXOJCx8YHv05Y7Z9KDIVFy85itaKznh/l2dwx2Zu2ueWIRu8yLfbrGJmnXgSLCZ7wf9Eudx+5RMw4Q/D9/CH+Idbh+hj6NqJkn3c6rjtZbiHTJQ7PKO+3kvUh5eO57s5AAKNxdtkKfwpF6vL+sQIHaZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac0f4bf8-9c76-42bd-9ca3-5d3b36bf9f47","name":"release-ac0f4bf8-9c76-42bd-9ca3-5d3b36bf9f47","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a4d4c54a-9b9c-4743-b72a-9eef33496a04","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41811498390217296190595004891624167270584860108434133040146551747657092552917652591486416841264839761960657665998712630349917326146332033773285407087709736277359037418624650232417821021204925882256444817397264144181822982227516902407728321616222679773174788476544231260442563460860814834274511316781600484123269791984440407881248696506760494794148308218353962437214132788839998719183208721741827668","osProfile":{"computerName":"jianyunt2"},"vmId":"146b3402-9e4c-41ec-978b-e3ba626f2972","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwrxl+eppqv7zle/tmoJfgOV/SUIoRn58La9KONyl1suEPL0DlmMVTFPUhru0dW0iYyGLPrsaDYb2UWi6ufecNxSIEYAosIVlZ9Q15vb5JZgLWUEXI5MIU79csOaW9INyh9Y7Z5OQczt6cpZlLcXUDg9ZC/vKCVD0pNy5QE9brpdByhs92mPlNTa+yAQQBrGIvEmesyv0hQvq8Q/CaFBtZT++IkCyGZsjn1XbYd7xJ+Xb1Sb6LCDsnW9dJqi5obsqb8amnR8qzyNWNtWcjNTAdLGQ7XBOIrtAwlRAFBjSTte5mC7XMkcWaqdjho91p08fStTyTIdIkn+6xMb1eLMfiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d69a6b0f-ffdd-4eda-9da3-d7f73298defd","name":"release-d69a6b0f-ffdd-4eda-9da3-d7f73298defd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bd7605d4-e74c-4aee-909a-5ec306a63901","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418607535288041728314862576669532654345472747389522606393576384871021899390723154021567457237635514128069354813522154199599600724910809504996631599679931119874727387287294252925871969639653400944691004499298118614369642160432349343928611343053699364033875463912729084011678762469847165513552611863489668187192846947404844681820614009353051174435","osProfile":{"computerName":"jianyunt2"},"vmId":"63fd000a-a78c-4244-aac2-cae9af408752","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApNtZouzGKioeeVS/3FkHJaM0b+1YD0NNlH8OZqhrF+jshuGJFCivXc/0O4ZCRJ2i2hxbgO2suPo2ETdSTeVc3WC80LqetVbDM+cobUz/3stehcrnda7t04xATzMlP/Sy/UENFM7aTlb/4LlbaU3rGohtRhciAsK/NMS79ET/akQN7328of4giaFWjxKkBV7KHwvL/ORUnOdrgR180Ae9l/1Ac9b7WnMmT+ixwlHKbjeYtYpNZJyhwaqctqdrEwhva82umJCj+H7mAO3cJK1wYUB6ByWcdT5RPOtkyPGmaS5A9u7iyTEJ89va4l0bC6dkyE7CaqzyPPTWf5iRaNrX1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ddccbbe9-c13f-4f78-aaf1-57cad5bebc1f","name":"release-ddccbbe9-c13f-4f78-aaf1-57cad5bebc1f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d9cdd299-ee00-4eb5-80d4-ef9438803773","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41818291754571456672816575813040579807495841374046240861014176814677537167983539263795569656187070453469248691641545678895293165433255185561159030342872703330600076067661303138494278555319130898339531077872396554332958045139512567980146796932416094199599078021818113833281909070117766503326608944124757596707287285356500","osProfile":{"computerName":"jianyunt2"},"vmId":"7e07f229-3490-4472-9487-8bf953aa2d28","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2pjyFA9Z93E1FAYPydlrOWZ1zf0E4Y+L/1LB2rusioofxPHqrk9B8N5cCaN6d0+cJqbLW3iI4eH39llufeJ16mtlPaCDn3tmU1QlX9HbMurrkiFrZtVvmZ/Vr21T39Li2DUm58V/umndp4jlHHrcuv5dkTlDdsew5to0xL3ZE6ILwTeh3XnOxxfbEOJfJ8QKxNGBdPyFEDr9kXaI/MmaQ2LF5IdmGBMQIXrzn7dGGRtU7HZa3OL0kvEOpv8BFEQMTUeI5lpuu6kUgrIyY2u5F/9NvHttarODhW92cxo6tLIRfOrbbQlPOXzh2MLs9/fo/GRfaLyYQvCB57yHOTFECQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a0bb5760-4892-4020-b515-dbd4d1e9a73b","name":"release-a0bb5760-4892-4020-b515-dbd4d1e9a73b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3bf4585c-e739-4837-bedb-b31a417a3793","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418743726638207750188865881140481833125060603884632295135796991067861667533749860392599063395303770458464988617363074734629275702322459415249757853408871226297024640773566187385203830989531224279367168586675493933134564771475425777357894726049524216334664041607891216308986074021953975524292613706391808611913363","osProfile":{"computerName":"jianyunt2"},"vmId":"b672b465-6f09-4e91-8278-3e0409fc82b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAycfOS1J6Czta4TjkuMihr/zMxf9moDrnlLfVAGo+0b0WiKYDXLaBbrRLX/y6L0K4WIPoQHHiJMe7VoqD9ezsNOTjOpSRBGiK2yTT+y7u6/5JCRs7utvosXBWTZUJH93dKIT25gZMfr2PcY5nO4btnE7jMt5VNyf6If97kJFKIFt606NcDYF8HWkcuVEbc2LkKoIaqQgeOfOaZAFhCim1niH9ml0dS76vHSlBerkq2fsDVmvPHaWs92eLFzbLT5jiHWwip/Mo8gCMF1Qc83rhyLJk2jcI7HR2SZ2wTvRMKrmxtzWNXROTDmXVjkjzUiwhS36Xv8b9xF2dntA5xihwOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ee5392a7-1d91-4938-a920-2f63dd4a1a8e","name":"release-ee5392a7-1d91-4938-a920-2f63dd4a1a8e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"48c6681d-2684-445e-b8d7-9c29fa16bd00","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41851997434214021146515363519674491127187583523274828037638916662511852566617272395662255918712254186767357199292119175041926731203996252572581726550686256705373601687939627892375014072808564570028026992539774863648728574773663342687946666517017769150032210313016384026674624351059988474996027785637552621943398523039971949516831815882222437386865325112396483783077059631785817218794345165653895306","osProfile":{"computerName":"jianyunt2"},"vmId":"42fed95c-524e-414c-a364-239d16601a03","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt3Ve9qTaPvTqGoRUN9GVzgs8bJfSVanEaWKU81wxJiQpVFKRiXjdNq75Z0NrPbvS5RhMXMbv6IvNYzg8K2b5EDCKlmlz4+QFL3bUYW6UzjC3VsKGpXMzP/7aWtzWnX8dfL9awiAEQ5rs0jsTy+BaQodtpErMkxhVQXgIfUQ30guhpSEzf72IRaqL3hzPim2KNMitN4TnoJlmjuGwU4E9kGEV+70HPc2OP6qtOJRXIjOrvEVN94ZlFkG8Kwq+2uWv3t//FemDNC+PCpyzXJGodS+4txIqWZxXH6B6JCN72DS/nI1h6gbN4aPAMIrh+MBeZY0ykWq4CiKN9mrQYPc4bwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-609220cf-1e46-4619-bbb4-36236f77c353","name":"release-609220cf-1e46-4619-bbb4-36236f77c353","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"77249638-eb0f-439d-8c90-8066545269e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182363208679676544527161569473345350946288889042912330751223423546107217291494900929044209769148199073759483926508642834569821555938388631859231021214123588535246766607033097687378047849391732456654197433294527486724495815272616161091875073647258365961526833476730883309460735725836447931527139048129166929646920874168496796523011323962560389194568853110536085546258412576352825129168707","osProfile":{"computerName":"jianyunt2"},"vmId":"3475b272-476b-4941-8e28-8cc9182bf34c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnykjQVsK0Ri0g3bF885ga/DYIqlEXVDWYlwr9ohrm15A56E1XFK14asZ0LN6/OYrc1Z1dXd+yQ/is2I9uQJaSxX9IZprIBqZbkbgsgf5u2hWU5XJsTldT+CpLJgIjHnkfHoTL7jbTn5PQ17o2g67p55Zg+Y/SoRGydHSrThOJfqqc+DMD0w1mzeMGvuPxuy1zMS8zuwI9MMKayJ81g2p9W/KI38MajWHGGbPGNB55xp05p75JAJ37rlxMNawu/wPNgMHg2gGGYcsCDhBeKX+fiqqde8dTNInvgjO2TYQKVGn7qQS2Lnqt/fRF2l/iBWKDw8500oU/il7+z4y1E6bQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d71f039a-0a32-448c-9913-af0d9e6a1715","name":"release-d71f039a-0a32-448c-9913-af0d9e6a1715","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a18e6e6c-f815-47e2-99ee-3d9f0a27041a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186387327783086532219013454278639635193203315121999461903923545853188793285442719711370604415186317396594465950254684821862773700158512258637467539879974839222267817724104514116063581303915265593858613787038338537455365667196885344618758955632845231139363254608786332880686322224439358289721407087019414907856235567378175210959198755614075387422056426579093352657","osProfile":{"computerName":"jianyunt2"},"vmId":"93a2dd9e-9a74-40e0-9358-3bb32a6530ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp+EpVI8gpYWLSmgwSupcEgRtEphM/3m1uQwSIQHqfDmxVPos8EOU9gb/TbXsyXwewnz0hNuP0FXsas5NI4wmUFE3rB/pEd23h4MXPr/rLVZcRXGPqf0ok8q2t8F6qawl5zNAfHEVIfQTONUYWCvKUNcp1vwnFSWOsUONu+GcJWQJu7SXzQ69ES0uXc5jXmnvjp5Auc09BXIWVsh/ZGaPNYgHjLRTbL9KPzsyDPBJWkmXeb1Z7YOBS9xekZnojwxVZpdu3PQ4hLhjlJRuPSC4P0WLPhxZ3obPlJyIfhiznv6cZyvaaJtOkqEj8xxNN1fyQWJrgzRhFLO6sd/pplZTJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1f5eaf46-a6f3-4f77-b8bd-75df3c8c7c62","name":"release-1f5eaf46-a6f3-4f77-b8bd-75df3c8c7c62","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3a367208-0ede-4a7d-a714-e8dee1e4bffd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418776921843519441896364948599492908176586507113744284235555629787691596139361553116233819346794007138966059231845152547886853031596010665087759929819347212918969430992822726653924460295971090393845547910887769308770389211784411691206648754720986972538885923556425597867541194915008370810511234248810693089220688143923674720966561461042340817002259461967323277444042348893","osProfile":{"computerName":"jianyunt2"},"vmId":"1789af84-8c6b-4271-a72f-b5b0c2a972cf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXGOH9zo4vecWqletK0tVKag35r1DxJItDGDki2iDjNYXQSc3rwqpe/MEfI+OxMIgMPAmeyTymsz48caMKdv6rpCXf3QSoNnJO0UaS9XqYfz2+K9TLKdh/F9joF3mXZhE6xfUTubDlTlralmCpUdOhjTTTL4uFtcn+hl2AjoXUd08Bib+SIgbre6Voocw6APxR1EwB68wSmRAwK4XHh9WyLt1np3BXMSY8ea/zt5Rcns4ZIG9znkhjrJIUcwui+lZng59iWrqgDUHuq7AKST0od9p+FzrBm4Ocg1vJYiqscs6f3WeFDbZPMk+5hYojhl5XtxdZKq0peTG5oGPCqTowIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNRc5swDP4v3LKn0lAgQHrX28lgGjdNG4ewLnkjxDFeGuCApEl77W%2bfoOuuP6BP43zWJ1mWPiT5RcvFsblV%2bbbWLl%2b0BxrN48jULrWsacr6st%2ffJXkixU7kzXnyvK%2fEeVrs%2bvV%2bVaeVKhtV5HV%2fNRC2a3upvnGGiW47bqp7rj3UhbkZpl66ttYro19WxUGtRVX3JyqtirrYNOej06pSa7%2fYlftGYKY0U7mofySl0g%2foicGvTONiqBuebph6WYmDEk%2ffv9VbVc6LrcivegPSc0nPNJtWRdmzoN1NMmMB4rdQLH%2fD7cU%2br5JycqLw%2fvUsPAx6pjWbo5OFYD7zW2QYiFn0EzEGsRi9R%2bQMBpaDWjhtfUBe02zBGYzpM8AKU0lfQMYlRINRIN1dtLGhi26eIZUqyaX4S6xjulOfeXY%2bu%2bT4j3oYttAN2jUItDONQtcRGsP0v%2bnKEeQdTBLxbNnrmxP7mq4wtVAOEJrDPSF8il0N49jHHdcpxCFpgZ3xKQqXUjjC1EUoYxyEcGiFODghGsiMjxDhWnQnrtmdHIYz3vmzLfwC4EALyACHzAy9%2bBZ34tDAAJgDQw6wjNEUfmR1ZnwzRMPIBvJEpc84MI92cdF6gZFRuO9MENXdCV4gR36POq4iDjYo7I876%2fc7G9ZxtI5jgAUEkqD0IAAgmAFWElYQY3UJAx%2bF5OFDgbyXQEEpyHxQaI0fqR8ZINFI2GMMIQ04xI402TX40gcsIWmjzoBmIRD86zFhlEPBfI4KevBinE0%2bqvH0manlRQBYo7b6roe196ZLrF2B2drQ4FMoCEYGn9%2fYcCe7h9O%2bzK94O6%2bvfwA%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '275183' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:40 GMT + - Tue, 15 Sep 2020 00:30:48 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1141,9 +2309,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - edc14bf6-b31d-48e1-a975-fb1cee63ddb5 - - 6dce0940-c797-4460-b516-9f4010989d97 status: code: 200 message: OK @@ -1151,36 +2316,41 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=3VNRc5swDP4v3LKn0lAgQHrX28lgGjdNG4ewLnkjxDFeGuCApEl77W%2BfoOuuP6BP43zWJ1mWPiT5RcvFsblV%2BbbWLl%2B0BxrN48jULrWsacr6st%2FfJXkixU7kzXnyvK%2FEeVrs%2BvV%2BVaeVKhtV5HV%2FNRC2a3upvnGGiW47bqp7rj3UhbkZpl66ttYro19WxUGtRVX3JyqtirrYNOej06pSa7%2FYlftGYKY0U7mofySl0g%2FoicGvTONiqBuebph6WYmDEk%2Ffv9VbVc6LrcivegPSc0nPNJtWRdmzoN1NMmMB4rdQLH%2FD7cU%2Br5JycqLw%2FvUsPAx6pjWbo5OFYD7zW2QYiFn0EzEGsRi9R%2BQMBpaDWjhtfUBe02zBGYzpM8AKU0lfQMYlRINRIN1dtLGhi26eIZUqyaX4S6xjulOfeXY%2Bu%2BT4j3oYttAN2jUItDONQtcRGsP0v%2BnKEeQdTBLxbNnrmxP7mq4wtVAOEJrDPSF8il0N49jHHdcpxCFpgZ3xKQqXUjjC1EUoYxyEcGiFODghGsiMjxDhWnQnrtmdHIYz3vmzLfwC4EALyACHzAy9%2BBZ34tDAAJgDQw6wjNEUfmR1ZnwzRMPIBvJEpc84MI92cdF6gZFRuO9MENXdCV4gR36POq4iDjYo7I876%2Fc7G9ZxtI5jgAUEkqD0IAAgmAFWElYQY3UJAx%2BF5OFDgbyXQEEpyHxQaI0fqR8ZINFI2GMMIQ04xI402TX40gcsIWmjzoBmIRD86zFhlEPBfI4KevBinE0%2BqvH0manlRQBYo7b6roe196ZLrF2B2drQ4FMoCEYGn9%2FYcCe7h9O%2BzK94O6%2BvfwA%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/wepumwe2r000034","name":"wepumwe2r000034","location":"westus2","tags":{"aa":"miwee-aa-jpe","aaRegion":"JPE","batchCount":"703","pumnamrhp":"realRunbooks"},"identity":{"type":"SystemAssigned","principalId":"91c8f6a1-3ca4-4c4b-b1c7-fbd29804f3a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"304e08d2-3fd0-44b0-b325-70a15bb5336a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtJ9t1vGAOc/MFWN+bfc+4/JlEtRUzbtfqbCHDQ1ox/JEDrrG2cRMzHQ3nkRPmrLlC5bp9OjysxsfrWxb3rMUn5idIcny7tfvLtRcSMEeUC+1PFzTUDDNPdxeiMUxeVS/YQsEKUuVIG+NR9LahGMaHniF5Groxs/LQeuGlQnngPfPtDY8n4wSEVelhLjGjn2O5mn8URpDxWiKOWv/HtNNh1sXy+9cSzUJCATu9NzwN999tyopE5VeECPXJe2CK5TPf8VYhqHVnSb6wgpZAax7FB168K2kHNa1PjDjO6YCnxTRAi0zAUYbSHWIsE0KR1QLMduwGP0Xwv84XLh1ybKzOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/aevm3","name":"aevm3","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"089085b7-df73-468f-8e66-ac30d57120c3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T23:08:26.4761186Z","errorDetails":[],"displayName":"aevm3","machineFqdn":"aevm3","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aevm3"},"vmId":"bb5c2b6c-3d6c-48ee-b689-708d3aa9a165","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxtJhUP0r82OU/vpPjxcSjTsMQRVlpY/U+O3BGOE5h3r6rdEvbkCTZMPIoYrKEQRN7X5XdI6kEBAC4y8KE0pO3KVkBDnh/U5Az5zdS/gLhLHPTBJ+q1aejcfiigBwda8gT+9HtSEdDMzcCU7BI4ifaIseeHJjHKkqT+F//yF1iRDcaKnh/RNWi8IwSBQL4LWFow928Ej7/d1+l4jUVH6y9t6w0dFPkq0RhgbKLgof8WUXRv/PWlzDUkpYnGg8Wm9J0BxvsDd6lu7+dn1b6tOFbGWX55mq4N035ilzOX/sGZJgyRNQVpQUwOhXn3vqhoJtTl9Egtkv8jPVYwgFL4x1lQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00003L","name":"nepumne2r00003L","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"60e9cefb-7497-47b3-9fb9-c5a44426c331","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6d4d27d8-8541-4048-9f8f-6d4d237103bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3UuyizvCndQVtkx0Qjl+/KGixGTwg9yLpUK0MqevgV8M6PF2UiN7PiW+0lpaVPXDg8nYEXyCkjv6PDFGvMMCBnPpVBzxNKf1iPLARbiqT6mVzhM2AdaPWSflBtURn7veh1z7OuYqnxSU9O0unBtpcd2x4+zQRu5QKx50/fNl0AWjdIw7cTvuJNUPFsOoidv/Sy3ASoh6q6Bo8nOUJGs/HSHinAtBewnB5B8XcuPPLTJM1NxJ2d6zBS+0EwP23s7ALh9C1/d52QSymgODGiqk+FJ7lR8AY6FfzEAEgmfU1CjT5X3CsHmO9SAngPwwKtbn9KTc/RRCduzSp03GW63SwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/susoRG/providers/Microsoft.HybridCompute/machines/nepumne2r00003Q","name":"nepumne2r00003Q","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"7c6765f7-0bb4-4c4d-9ae2-8414bb9630d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22005","status":"Disconnected","lastStatusChange":"2019-10-24T20:48:22.5967619","errorDetails":[],"displayName":"nepumne2r00003Q","machineFqdn":"nepumne2r00003Q","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"nepumne2r00003Q"},"vmId":"d1890170-484a-446c-ba5f-b3a7ceeea3f5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqdSgcLoYgp+c0B/z3Pb8ShTXawxDkrmIY8AzmpJTrg4uVlmJ+Sky4OjGS/93lAi8JTKabqfdVqWbrgwd7pApfsaGGuHovM+bccWCCPp9GZmnBt43hY94AOsMiH02cwbEehVS/aRSVWpANBp8wgyjg43Ac1Lq6fvxtrJo53t1F8SZu2tFurlHnmk3RnrG8aUS7jYw+KHgCyjzsNBIn+NoQdhMraTvaP2gDprKc7eym8yHm4QhPHyj1bWxam27wC46zORA9IAaayCuhGT5ULSVoIyddUdCxE9fab2bOU/dE64/ZAcAn4qBqEBD/6PSn9vmjR7+rSYFXkDPisBRiLXrWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mariah/providers/Microsoft.HybridCompute/machines/MININT-BVC3J1U","name":"MININT-BVC3J1U","location":"westus2","tags":{},"identity":{"type":"SystemAssigned","principalId":"a31132f1-e037-49fa-b11f-6bcdcd5c6cab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-10-25T22:38:33.1540468","errorDetails":[],"displayName":"MININT-BVC3J1U","machineFqdn":"MININT-BVC3J1U","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"MININT-BVC3J1U"},"vmId":"1ff25a2e-371d-4a33-807c-69522cb09ee0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu1GGtSseDa25c8X9I6Z77fc5Rfbnbahu7SsyaQVV3NiVhFvU/U9l9MyRtYTxy7OTGVIWOENSFnTQ00VG+xgJAsCoh6CAZTlI4K1SpFyv9DKd0+Q9qttPtWlmwggNiX7WhF8Z3+L/SJ5hBf3bszYE08KezyP1yZjRCCvo5DLqt/dmVzw+OOQCxLWiZd1vBnlVVGQBcG1QmSIhhN6Ice22+Q6W/UTwC9Nlrnekoqlnu2raT1lmvhic1B7CImfo++vcX+9HIDFtx87Cd2ewGlkEvvxY54zRMdrb7x+PqdAs6dyNMcH7u86918z/20GiAoPaENdxxoT8+emORZRuxGKW2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6334cef8-17dd-48ab-b146-9c40d190f529","name":"release-6334cef8-17dd-48ab-b146-9c40d190f529","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3141fdf4-5e2f-4882-97e8-d78d5e0a7471","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188255400261689073759034698119188234947146113074261011968310528061670737583254925448429423374347757147758603801560016256852977781188941041721283114421750912715568372723052738618012566091706171347213382235356986156875427259967976622708567942459803213518312619780604682905876569876838543022875894969179555264429328455127185146622863410718853520369933113398","osProfile":{"computerName":"jianyunt2"},"vmId":"85e15d6b-b804-4b0d-833d-b90c2a2cdcb0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApNlpXXt3oBsTh0x5k+ysv8GVE059bgntJcka0BnyWEinyqU0sIJTHdnWC5LXwaUkJWv8ZjfTNwxcG0tVVVTee2U+I97+4lJP7uM9nqfg1EhjG3uExYnTos7LLMJGAeauw2EzP0t+fwWoV20Oyoa9lXPyb4HWf9rbRx4kr8E0S8RI0T5E2bxOVwKl7EyZWBetd259jrUF8WRDRaqSSjZpMvLyOczss0wlnTa0z2BlT3AAc/wbfJRfBqaZfVOcRzR47mSTApoj44WRlf+k+FoUj46/nWG6uq3HAcLBJFQPDfKyO8KAJLy8vMnRwlz/3bk6mCBtqz9ckaRI8rt5/1JyDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-741d754a-299a-4f15-ac2a-cbce86982c3f","name":"release-741d754a-299a-4f15-ac2a-cbce86982c3f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5c880db5-c16f-4eb6-89d0-0934d86a2ad2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418720312422033792175446607866247738245007639873342417478359283484283836347054251947652691512168667299161173224644481549325093654800285629488879138686067932818471341734653379835681698218498879227688014016226795549845472466746015594509986852613854740063259075815861859911295947506668594590563928922740957511130850745932299811385889832551366641018617668479180","osProfile":{"computerName":"jianyunt2"},"vmId":"08cf80e2-a009-4e7f-9fcd-6736113b0cda","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5WSUrva0xw4kuRkoicYjO8DE4CWx+dSganWOZ8OJZj3tlrx8UtBgM3SDLf5r5DtoFF5bELToDtOVf/L9W2Orbk0UhWKPhzJiqhFEDQUakbsgVUq95/1x6JCM90bmBhtmp5bjEqL40wx+2PrNwBjckaRNxs8K7SHPbR4/XuPxbnbZi5uqNJgZnidsgSgC/KEKrf61QUcgprGdCrkUvo2v09cKb/VruBOX+j0sHHNr+rGXs8iK/1tT6Rh71mHID1VaD4Tw83M2v9XgKfhIu6+NbRufIVBV1rcCb9VgbPwE4ADj+keF5pPrkCv6RArs8td6Qj4qet8qrnW+NHmWqUtvqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b9cc8d1d-3120-4704-9b34-df3f49985932","name":"release-b9cc8d1d-3120-4704-9b34-df3f49985932","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0385b79c-03df-4112-8fac-0aee747c494e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188317028195198626165576226088737243979881489358864752219329582140875426718959863691739480410974672819156060055196255224269247637810067684185041813758883279321958221985140073185370990522223103911199182500829263749619221801915704568641429061704503673405628445361655097887403084141950876918340192035983609928802837322246006718416977371641890369822992747169305423194895177817","osProfile":{"computerName":"jianyunt2"},"vmId":"915a6f38-8d9c-496a-9f5b-115fa058ca70","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuK2YSVtYfM0FVCYix+VAPRYCgjx4FtDMuVm0ZKUZy2p4XNNDHrQu6whJh0dPe0VexM8rZnr3kNIJkQIb4M57CJ12uKe9xv1bLzcozLVz5NsonAPVtMrgu5ISXNRM0/7y6y3i3bTx1EKpSyvQb0m98sidIocyGBvbiQSaxXzD6wlNlDE6hAEIEtHjIME0zOzUARkviXWghgcK3rp3tMKJWM0Qd8NiNnQPnj9Oimsd/cLXRfH5KbItYv81BmgXXUpVKnc+1REvzNYuZPbRm1uooRiC1lrSr6dIGkK0x/za5pCYoqoWPC457VeCdpzgCBvZmDo8280Rn3oAlg3aXwTlIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-46e2b669-644f-4c74-9faa-9eedf20eab4f","name":"release-46e2b669-644f-4c74-9faa-9eedf20eab4f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"14def914-068a-4cd2-84ef-1a262c5f2d8d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181032590737694575486676525172415685739881959667382334093441225231588463041987194879143312634240866861169457788222222687661526468128349297895015636031955637143914548728535764125270733094776786707851972311279848514959401167664589678937899367689203118532834961841513149563836463608672555883777864953713993696217591545772124335474119613598530740932187024819522121092738","osProfile":{"computerName":"jianyunt2"},"vmId":"33bece3d-f3ca-4039-b8d0-15da8867d3ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApVWVjiU+VQTBdcy8TZgSyokfeMH0yjJUjhqoPoPN+9RwVMXbcWx/8ay0VSUUxQ38cOKeSkcSU4WuG+PvP8WDNb/yo5ZeS0ZUFil/4PTDexpcxaGfkfX9fFSn37u/NoTKxceRP3dqQNK07cc7VCjvO18TRmrtwtLiWr2F/zYQGDljPiBTUSM1Y+IONJjKC7l1L67Sry+/jfE5aBCRIyZZFJgnMhkXFGT0xWGLoeVQzFrVF+9/bvJqmNZ8tR6CQm0nyDuGFrnsFc37kxmWcXyr/ahk+z5XlKUWHKbv0NkbNUxtADvyERkP19QVFO4k0vP5WVhjW8vL+rpvk31ehR6hWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3d53761f-a5dc-4e02-bfe9-af840aeb070d","name":"release-3d53761f-a5dc-4e02-bfe9-af840aeb070d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7218ec37-a565-4496-bc3c-e92f0555d881","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183962768390781473356106511040187679422635646107330289527011167814665663899171358517082246234393291824536184680672648192840648320608638452594674317175718145064438077494157405210255731817454518230084497849116686387216841117243805604638549251730340550714168367021867121885929012776447698939642696966338478872639193424747603059995199616332193032309222813602614994949238361531688638937436263","osProfile":{"computerName":"jianyunt2"},"vmId":"55aac7ae-819e-4805-a1a2-e97c5fd1fec2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8cEC/HSHNOP3XBfPcNRTLD2mFn8Tqv7VucYhob89llCxDdzqEWYxZZ9mRHX8SKCDvL2Vjp2/ntlvN/6JF7/kdI8gjqpcXkT1Z/GY6VZSVAD5wSDGYgC419ZBGYZvPxf9AnEio9LPJoccJVuw9VsaAdzhMIF4chDaU8iIq0+Xk+UA/illHDW3jczbZd15T1voGcL3dqW7ycfrVG7WLIkGMe25KMz7Wa3e4a1/1VpCE87UdU2QMDRuNsiLy9dKg0u8yPKSRU44msllCg3OXHNwKCeGDEZb9SgEf0XrOLZwriEFzBn+3swf2a18lsXdg8lpC1PrKQGC6LQOvkoS5bKgmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a342c6da-73de-45e3-b0a0-4b6fde5f338b","name":"release-a342c6da-73de-45e3-b0a0-4b6fde5f338b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"eefe74e8-5784-4db2-8c89-95bc20af0ba1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418567247276143635175030487479687740336252955838851703146612075818163396887125495936319348113430557782603246821140139933053774104141135940209352602550190926284514796139314444286781989732029505693022349534507155554475836465927312752059285240928752362474861376646226061183610328710385692244475609096538636526110035913063140887288592558411311293062428368108315739215117954903323199772152145333595626020446541","osProfile":{"computerName":"jianyunt2"},"vmId":"4362fdad-0f6f-4889-922b-b9bd91be15e2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoatIIK88Yac0U6IfV9Tx56DzVsN9nPJEFKbloWWjDn6yMXB6nbnTyhUjOd5LAxL++aq8fwsqYF4mEN3fd3Us2T5vnpym2V2wojkDiBMurclr/zKSi6ogvwAbsEwfa7tzg1V+5AXQaG3Xzg08uNq3+GpNFOUpCsw/Mzuk8UzyqH7K8AeJNekX4JNM7Ywh4Li4u9YThMMiKfcSMXkaD0VuNQtgPd5H8IoHYLNr1j7JxnxIs5HZNy0MpkTYZaBDbhCeVcsu3kwg+Ttt5LuagTpmFasKEZNZXh8xTgLQDWKqrStbKMq9ZnEBwFNY+kjxlRYic2crIndwjZdQp9rNVgw3XQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a64ba354-7310-4df6-8abb-3a76c9d5246d","name":"release-a64ba354-7310-4df6-8abb-3a76c9d5246d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e687814f-3533-46b8-b665-eae2ab9d721d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187885206082993425651870928316433487500747994607445371507092802522444683780437367529426677481941565232356354250456739644149273599671907235138384894976507170363355229546349538333699312427912590608746740979392118056339293179619310081428872854036578595671961496451396681481999184297790298682208757515493013","osProfile":{"computerName":"jianyunt2"},"vmId":"5038d3fb-a69a-40f9-b0cf-073047b7f1f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0OgA66QqICde9ug6+E6JHtj1qyuK6KpXnR9/ktX0SLzA3AdjsGzpdyBMug0WmBJ5VGh4uDyjFOSZUiFHEQDu50ieDk/ReqiD9zLBlM2EsC4Td321gYpn1C5AsgHRHlkio77o+XsMxGhNNf/7VbnAPbfBMdDFH0r9Zzi6TMQMBYhyoV69elxwnPlw2y9cZZsQRNmfCvbR8wXDHid1bUlnlLfKElYa1CWwC0QHQn2FJ3eWJniePe1zg3ezC6AvM7UQ1cAECTGum/hCrXRTjUHjYgp1Y7a3YoOsi2Al7jzfry2VKUHIfKFzvZJ2vxiLaT2r4KXzIkWilbwZS6/648ffLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ed03b581-87ed-48cb-bc0a-23cb02c32574","name":"release-ed03b581-87ed-48cb-bc0a-23cb02c32574","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f6d83493-4ad4-425a-9161-013a25511893","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181091783632119050150819498549231072503744825761572427304230695048536351507578858456717038706183263025990450404942572296243483653854856288549073166738651055489799235959252193835619970552309821221799399738290229272109203124013476743755911587600911203542277867733811936430128431174459056749473975783946619875310987544404475768508236337480234456738457273688936843","osProfile":{"computerName":"jianyunt2"},"vmId":"8ebaf756-d1e2-4928-932a-c541a89b8fde","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw/AD46A8o53MKDoXsziL9j2Y3iXNQdAS1GuSvxI/3LUgBCd24Nfb1MlUWCVbi7oJc3rQtzlN2tHBe//kbScc8nZPTGcIeZjzVSu7IZ+JCSsFWZL8hMnigjdswbuxf29lUJpXS+j2nMMbWnFOY0kYXBklVdavzesQ7J7BAwEGaTC3bH4CKgvbvcJHcvRdfn6wo9PuCc9Ty4ZSrqEZpBeoC1oSmTQS99kE+6u0SE7MLTH1Nr60I7Qb7NV97rfra7Oe3Qrf0Vs9ueh1vRU/sBDjDIEVVV1U+4yeBQ85pVb2wG60HE0RaiYN+smGw5sAnCv+sCPXE8iE6qyWtHczCAsJ2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-38004c36-2222-4d0a-b926-5aebe6c78725","name":"release-38004c36-2222-4d0a-b926-5aebe6c78725","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c02c65fc-3be3-4260-9873-c9d0522b682f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189954241233665189263343112473493889561401960847771461256905874282719706389259437201106555814066292937506958146019855501933066424493636562901639046682822856715509767327288249106578822696390531258715427860600569086596161157239432347496084128172578153716679107635419823200969167328462969259646369574687715314844496170597399194697281579545796746217933823292511715125982277522794","osProfile":{"computerName":"jianyunt2"},"vmId":"b69d3f90-d369-4b58-b964-2c39a0aa134e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt5CcGbrpsiDKy788DGqEq0bpve3H6+xxQu1uQi56r0zz6mLvLBZl4BCvQj7xgpzU2ZiMTfatdXV+k6Wlsmk4+pVKzZyv20Q6R41kGvrQKEGLxKEYLN5QAchlNrh/nojnSewpd9E+eDKOvEFNl6Qtz0uXaEs6G1S4UNNTvJgm9DQhO4fKmcSsIvLuqEmHA/7KIpH7wITPWhu75PwgbMn+AE/1Y7Q7Xvpqz2tjm2lRqkagmK+CsJiVt+sVlEO+VLHptHT32vfy+SAFHKk0Yyn8tHF4T1xhoAe8H1xwB/B5UdZO/UI2RNX+j7Xvwp0hLb5YyoM1CM10uoBqKEc+2JkA2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ed1aab73-4b8d-4208-9f21-ae8036e56481","name":"release-ed1aab73-4b8d-4208-9f21-ae8036e56481","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ce54b51a-d532-41ef-9ddb-a0064887e62e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825172559064278478521447329825499753853180465253293538723896615682235015651181441752910125126086174360354152471282210228045483472397324897961201916619316613682685824741711394149750552084007302428593614911560046822369094171956517583798530230310802280919048186444656353909839722720812972043279843650522323598765168540317886390883068218418427800366817379125514694079517832680552796181550111493415697572219454164276511407098910946843089","osProfile":{"computerName":"jianyunt2"},"vmId":"87b83732-ec62-4bb2-b144-6b55d01d1a7a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsquJoGslupu/kNoHZh7QQzzMebCzJX18+mYzqG8XsvfweSOzzlU6n0CgrjLYYAdTlJ7BPxN0py5adDc1DydW2bNfPlZ+A/dhE7kqEDE17oxaz6iWIziWpydYC5VuDgvRqN7E4NwawkQtEukUDFZoy95CG/MDX6BcLNTpDLXaJ/9HzzhOYnM1k/4MO0+r9KuqaHWrb1gCAIvUayMm11ejoop8QS4EeGabjV0a7/fbFemeosnEdv7MQfpxlh1u0cQeGqty/LemNTmSX61UMBzNza3mnXKRkkyNyC/5Xf1n7/1o7PZSBxiNQBmSWIRpOkiFV7Gg1V5zotcH56RKLRKHBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d6f4f90d-da5f-4c61-86bd-5938099a7b5d","name":"release-d6f4f90d-da5f-4c61-86bd-5938099a7b5d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f8c2026a-243c-4022-a3b5-7ee5f8f70423","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187236753370381936185945895926717407121897826120668115591417956496253164367140084041285283711088296225559312681616273727076264759856934544491783316686101471885977474104622601143967133871898883683820595721174945538156189464356138482578304248419795971958421628953912633753777680861496468772887230623016017042670937204922734898851756590245486023481694219144882740036638172191302680835646346","osProfile":{"computerName":"jianyunt2"},"vmId":"2c399b8e-2219-42e6-8b07-813796441b09","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuS6XBqNTjosqvaVXGdDURrEQmIZglBQtFw+CksOo9IdRXxqBodM6M7YysiVU+aE0ETzIj5d2JOFGM1W72MayS6E6WSGL+PFRV5m8WSRP6vZ226XllRNTSjTVLSg5zZXt8jpAFRe+3e38eajp0jTFIXs6SylPAHiAAD1lAIP16D3/q3lycbCa/+6lXVl/g/4ey1G2TEHZLAXBhC2azuvFN5EXbMrkv8cyRwvq7wpP3bjK9LWKRioShvlpjKW3wqL/Im9G6trWq7KASMDCqyb2dDvUkkpcPb04hv6kEekYMdqubbs6Xr0179zn5ZPFJl23tl43moLGdOyPQvn2Wh5fHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7ff40336-5575-492b-8eab-ad305b1fabf6","name":"release-7ff40336-5575-492b-8eab-ad305b1fabf6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f9f4cfb1-a86f-4620-a3ab-4059776a4ea6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41887817766459524996911993436909983339966655129771768889671196789693783133853197358008162184383315625948271171797470919105606737365701241131908888867361316554112989632145408328374174920959884341840261525745671884292616989892988052773380859517843474175279845222797642181984609150340370699914976320138574106350048396357994322481859584891094887461467335376055235725967487549727929693950265793910780083138477","osProfile":{"computerName":"jianyunt2"},"vmId":"8f420f6b-e30e-4bc2-b341-8280b67c9eb4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA31jTAtRerFtIavoCjoKjxyoqPVrjk2dzZGdhZgU5dizZHsNR2d0lJ6NYioqDbUx+ObJ2llgQm8AAWaimOO+wtilEQnapplJ8OtviBRiiqzjbzS7HZabiGNRhVk3Qy5AZMQ08738HsBcp2A+d2ezJLuF5fWETL2hLxWxjrA9cPSTCbB4ILyUTUKf9H/4grLRHCzGt2vgRzMEnj46X2omtDn+SCYV8+oRGJ06+Nvy/l/+MoUNAzy9sHiooO9pkZXQFT7+q3EmV2Nb6ekNAzykFFIurzaZ1iYpY1CHxSqRwhquy0NNzJpVo2WiM4F25N9GVJ/fhWqye0CatcOyGBuIEwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3e1d1c44-b3e0-46fc-818c-e8f23b6a54c6","name":"release-3e1d1c44-b3e0-46fc-818c-e8f23b6a54c6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"27fbca92-072a-4069-b63e-bfa2ebc03d46","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41866132569161285999955682085357174724211299827435847029537375720438641131387673295589537693045559536750674089722745702264829544386135971371831103546033856499396162233758541760389473557557054590967848199244430751232270691345025609447954703963119984121971479157909353465601185513850238952698426976098539280442276631863315871","osProfile":{"computerName":"jianyunt2"},"vmId":"2c661c7a-603b-482c-a10f-e1728d34ec9f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwXYz3/6SeDyO+y1YiPdIhlUz+t2xL0y3vTQnlGWvVUEpZqgwtO74mzrKdDD40Sty0VUJaE0DTZNhezIrS1SN2GyLTqaKudgfb+uLyvkp8KDg7HpFTnTTSyDTYoI+B1ENBSTwoG+QaxRAxh2mBvQObDyrlQvNIja4jQEwsa4WZBNp+nR90uIbCy/G1YAIQ6APIfEcis0xqFyqZKFqn+v2tEaDLg3bdvVyKb40usUhJVy8zF1n5mKGOknKuUoHVHD80vx9PfrNDUpACXDIq0Z2/zuvKQ13X0wDcmntUIsn1V8K3Y9CzjJurjRmKYJj8sPQ7VEDhs+4U6sA1q0acIlzAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bb8069ed-51f6-4225-9c56-c2d2bff89d94","name":"release-bb8069ed-51f6-4225-9c56-c2d2bff89d94","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0ba9b2b8-e0e4-48bb-862a-887d5f890149","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182085472665478378931259945763539424043589398217399189918160774787343324728151257678662270827884610165632306216566957989455926053079273757934443300588963359877519642911015263834777564478495762056184583417798807420285481116397352920817016052717242432541674619044466638185457152722719079471576574573917226372658654284702727289431511139474285737","osProfile":{"computerName":"jianyunt2"},"vmId":"14d730ba-4927-475b-8a4a-874f5d740544","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyFKSEWM+FN19ttzZxAZP1Se1z0QQtDjeZI/UTJ1+5QP+edpXQ5i3kPoZwRyfVrg2XPAORMDs8oWqPDcG1hhe22GI+8ItrToyWeadZ9VaNnnnwLeyV3b8t2Ds4rdkwhga0Unwt1ahb+f5URO+nrkN7AxuaaxBuYJYw+yr6/NB62FBh0J8l0KroM/9HdiryvCQsrIZk/PZHOlqjN36NXMUgcv+FXzgfYoiP91RXWf9SnowvEbZkmdgFrBt+bk5vO18j3LFhM1sMs8XfTBDdpzPC4ctJXqnaKER5+9K00rqzm+dKphn+OswKy4Ix7sP6NZojndJEiwFytIIkmhrcGST1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4ed9249c-e2ef-4a86-9eae-759f64026f92","name":"release-4ed9249c-e2ef-4a86-9eae-759f64026f92","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ae40ae43-7525-4c55-9d4c-a2a5a9659954","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41833758832192751819859827321294866263813643582004224546960328703101969551733452967278084470378292567110961739291972436773004330819272312126442411152609658845615353234160354898879360723963785799232107274312247064925871953248955471625779865325281208501146821698794263371955137943081220662459403812324359893619806419715781783971063419025541577514468076114918727149079827688471746265948726517413","osProfile":{"computerName":"jianyunt2"},"vmId":"fb0ac09b-6b83-4bc1-8891-3c198c585d74","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxK3yB4yBpiTvQ4PgBzFFgEx1nkEml6X7ZtN/EYXBMJW0rbrA9BK7c/Ldg+2mF/biskHcSPU+7xJdGlvAfMqYRC5DU473woAldm7y2iQYdq8j0YPKeIyYbtliTvSDyEH5IvZmoP7jseKcUJMsIRyeRMobzGslSldRjKApN8h4SoN3odfwA6dOYuAf5Wh8ZdTJO78NWmeqTCtEyG/8kee2cXJQjgFyJQSfL9SobERROUIb8HJuAtdyKKxaL+305d5acMyvGuAFlsJP7GwAr/Xkxx8od4rXPlVP10/sJ0LUwXPLH+2SrG4tXEh7K7aXpjEQCCINpfjeP9GxeZhTftu+JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0d16754d-5735-44a3-8ba5-6f6873c4a354","name":"release-0d16754d-5735-44a3-8ba5-6f6873c4a354","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"840c0a7c-20d4-4394-9aa4-b850917315d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895364528947271616946559844713852671638063265877510717790204520138961426146063953831857815835616028812723114311821927903498371472123651114663336468315776439345959559601082624009957662184915913275652994089216212884330251963111661159933543125679913595840734625343699917362614327518056876200986667912708768102949494364822540242374884697544785248836874","osProfile":{"computerName":"jianyunt2"},"vmId":"8e037064-fa30-478d-9500-780bba2cac4a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzvKXAxqFUtJGO0Ke79IbUvIFEpn4x0NyvLm9y+8r/svHv+cz0Rw9CAP+seS1KOaL+o0HWnpKkHVLILU+5kpMgEYWyiWQtSsU22Np58Ij320NAfv/UmHW+RgzAermqO5wKPQ1GtFnGa6hSbFySfBpc2w2e+RraPRXDJeN1ipTBvPnxsit/fjSWD46VZkOHjDLhDMwhoxUqkEVs2MgS1sQICyGFCAUy/wdb879Jdy5CLqJVkHGOe5xV6F8qHMcCH/9iILccQnQ7gXrbuTK3Ymg1iJtHiJG4w00r1vPJCayd5k7qjO/a3ep+tFvqCFiTsJsnIME7EoJk2MPL66Y2KUsmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1278f294-d020-4695-91e2-bd78cb364df8","name":"release-1278f294-d020-4695-91e2-bd78cb364df8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8beef183-efaa-430b-9611-e2c75d6b4c36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41849624367299116062075424488875881679559579609224641056813560821987929071796177756051284803037021371462451867195376565367404995162862828343747512836743425882031903627739621264738736301914189198957947150177612880114927683691595788161934508303277635970742572254358971643761725268726748211967586530801547417030673438952769137695712136515862939152206189579631267519252882170662303055833349283155407","osProfile":{"computerName":"jianyunt2"},"vmId":"d4960fb2-3ee8-49bf-b2a6-9ecb4714ead4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxm3ZL6eXpA5ddQ5D4UCDvp/Wp/DJSasQpBvoCNqcjEeDMRGecxA5eMBiy9SQ+eTaCgWTq57Qoq4ygUl8rrfZhODJjYwCoRsUlLg9tlcJA+/3LJCAihc5DS1v+AamwJVcg1WUxogPP/8GupLI8KY3EB28ZwSvILwL2GVFWRgSlyO+GTtDq21s2PINp6flCGDRJNPY4RlELMy2deHdkEk86fOsu5FaF4xthpjWPxyorwdVWJO9sxrxUUhALjMs3pJADzHpcZ9ju9jTGne3MubS+AzdNfH1PaFakanTqoyUDg1keCVM2hufo53YDgYOb+8hii+vCrbBdLms6T5acHbpfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-923ebb61-e96f-4daf-80cd-c1bf564e59f3","name":"release-923ebb61-e96f-4daf-80cd-c1bf564e59f3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04604f02-0da1-4f77-be8a-6df098eaaa9d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183058261563300774441542984747991335887291534639941463136118608797279128117145887777210796605460790279822204297165257278922636547845598220408486689368446423646856936729651549571564126278804013895289822796517869177717412395309722061041789508711670850734439604849934165732213365320651114378475782737714626540066185509480148965887718889357648174979046967481224955725646368833289248420657279828761476752","osProfile":{"computerName":"jianyunt2"},"vmId":"18b00364-f621-4e24-9fd9-9592779f738f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArwzfBHhFzmkApjo2h1wO/+g14Ss/aD/YrV0KnNM5HSaDG3g3/gBH2O3/pRYR9ZsKCsYeH48ZW+nT7O8NrbPvmAMa3vgETO3p9QIG+Q1GfAfZsldJNH4Z/Dmjol9QRjVpcT0a9tfH3h0DMYA9n4h3wj7IxEnmJhpzHHixm3emibKtjxy8FwDodPDfY++07AzSxNxSci90oXD8EHzWDuazJa3j67ZOrbG7CKba2tKjOvfPolRURsspPVRMgjmSbztL94jrwjv8m4yIQaOzK1IPbeU6bCKasGzRAOh10qgPrOSDi8QtBFodPJOW3fpopNLin1OLKlo5zTSIOOMy2ttDLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2a7bd26a-1307-419d-a9a2-0c8add49137b","name":"release-2a7bd26a-1307-419d-a9a2-0c8add49137b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"edb8289f-5e87-4498-8266-c90f144f80d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185671443703951344111151495336018329932459315821368594601281323691927119542479886522531648454584202844128210940396359825123735435245432361470711386631697059871676111904852692426474540385970801737634477677149049641137417438471242942713761684179247517852800289217506802440645403785243296211982771961324904541817793119485897471434417530705299373378157550372716","osProfile":{"computerName":"jianyunt2"},"vmId":"c4e9eefa-2eb4-4b74-a885-049c0e4f7f33","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwxEyXCCsHXywmzd4Ve2DE98KCRCFHgFh4Dzf1ByrzFE3YX3JVEboE7QkSy9DGUgKHVke1ax8GmgaUCe3P9jDchwbApR3oJo+sGv9eEKBe6Prjoz4CNG89VGsEN/8klmrUU5kES8bTo5XDYOPh9xfgLxhb3NsHABV3Lr0d+euzL47DXOCvtiqe78+/yDpeDX3UxOum6VAwYXjlUE6cb9FrYGkLTyc12AGDcA6VV/XusBhUXH5J8kwg3DUbJXcHaDS7IrPppvSrBbhEV73hvWWViWc286AWq59OJUWl72u870CblHR3mUOcALnXDttU1KFP1AUM3b/9E4fa7dDvwJCiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-52dc87cb-a63b-4134-8618-63725f87e35e","name":"release-52dc87cb-a63b-4134-8618-63725f87e35e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"28271313-a646-45dc-b6ad-aeca63e717a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41812829730422652793485306650478155908824666332965363895530847393226662288963265758127716167281597809229637944808610928071123987009149851264321183535991681776854477722971862588323653193869410678606031805711658051600866749382867863844166152887264229651938361182443095104389675692570947486985958519329712760247716044269410192852597377388853784826940873266115747867083379742681251283593324117617","osProfile":{"computerName":"jianyunt2"},"vmId":"ff032ee8-c246-4256-a2de-7468e0923a87","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7K5DVoOBbMkKLnD9i5JMGFcA6Mh8z+lPHzp50R5ynRYFQIHyjKzYAJJfI5Y/L1LGjcZzMnGojoACyoRrECZJj3MogTHm0qB0SMGF66OFkwINlxOFf5oFk18kzlOkCiIz8HIUdy3OnVStW2BVeNWZo7UCdtn52iUKxdEFJu0bJXh6fqRrh0IF2HBbQdHWv8OI2lujnDqYJ84hh1snv5SA0HWRQQEXnhj27ZSZXvonVQpBcbRDIe62S6yfbcuFDPcF2ImXslaYPq99KN4NI1EhaiLzJMvvYsjst94BNr5cR8KrYqXZOHrIJ700mCeZBLjdzUP2Nr4hQ507RbCyZ4SPswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-53433916-fd3f-4b24-9d22-a8c12162de7d","name":"release-53433916-fd3f-4b24-9d22-a8c12162de7d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e2d00b61-84ac-4cd6-b136-143d5df778f9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418792083764081762739085104776126386161163472259788481610149731634775212186386311757442836581235797710911804585147397958487108298083870385297677322167636443108422928646288212224872176105263587332608970078539164860670481688659726020857236406369536864765970195043888734831887697019435637496882995349324359381488382651632285791754033363870307061","osProfile":{"computerName":"jianyunt2"},"vmId":"01173e86-a0f4-4599-9666-179964684411","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtqDg5D6H9eIFxilpB27vvV8BpzqorFVkVzxQwBpr5mY+P1krFrHwt6LPa+HGGEaqtkT6pq93St8ULkvhwFph6T9aYk7VpociZoViEk8A2Wy0RRNWq5tf4mZXAtooQrH9TMiCpxe/WsUKdRiCJsqKpYvoXQ+rkgpaRNwbCF1v+nYrkTf6vfVBRob9cduwptycnZAju4bGJsZ4lHBxSv5BlYUv/S5Vv0bK4vBpWyBX2ugACKANGvL//620K9KA3Si9z5yCwSrPyKLhCZfND7+UNps6K7xMrKZqtubJ9amf3D6YsA6yfHiJKcwglIT1esuYTKsIybpmlXJvidy02/Rl0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-01c89e34-aaaa-4295-9194-1e8a13991cd8","name":"release-01c89e34-aaaa-4295-9194-1e8a13991cd8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6da635d4-9ae3-451a-ad77-57d4742ce0b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825677268463479910426444322752547084934278422369282609537777657258998639814794536895213494000131686485911536577325557310464648562227422675848955470717566475293920856738670673880084060158113756913767435483526745356710151711749254673017818802933664274607976262422457199712410030743671579756932931026738611316805449919344066566716621719813361463857","osProfile":{"computerName":"jianyunt2"},"vmId":"b50a92e6-4df9-4d8c-8043-23da2c9c1e0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqeZRH+hmpWa9iWZ4EXKzjYo++hnm9ELgfSnd6RIZyobMBYmQibPNTbxbBOK/FtRXhhgdQOHX1zRDg9DCQ0BTBaSwAO5xdufNZAXlO7sYJdKr5MszAtpJizBPjsohOH6OWhluiQzkB7sassK1U4szIPhqkaSl8io2N9WyMvJpE5ltMl8OuoFkuBE8x7rZx+yjADPVlTSlZychMh3TBEw8J7BLdriUSeTJVosVJcomy8LmifPFxSGZ4G558DsTv9WwwWURW67zCKN/DgmE7DGpzClWHzsJmrJ16ezbDvundAWe5Lik581cDs41FwhJSxfcBXh4FTmtbLmQ9P8kL7NZxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-25c8dd6d-09d2-4db5-8df9-56b107692550","name":"release-25c8dd6d-09d2-4db5-8df9-56b107692550","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26e5dd6c-bfad-443e-ada2-c840df8445dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183376748912676082453435445786440311375206123437982029395216116135752438763622695967895105182692637489407905446917818204180883940336818143792132467998260318646888409619285302320733280514875576043146870354548419812603492593277243050357986882530563795815709509963885457529079060649186837333908286194799069836733444401697238466884399456991476354318578647802539798369370961926167501","osProfile":{"computerName":"jianyunt2"},"vmId":"39d22b13-c97c-44b0-a983-3f7c58a61209","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzN5WQaKJUrLdcZJPEeOeUtbcPknuHJgiQRPWBKFZm5xof/3bXl0Q9awljbzwC/A4SOJuOk9x+tZOXzys9avYwyidYom2cKKS3X0QnL52qKtG2oOqO1hd24AICSDBlJd+C/v23kkU9qzyG7uPdfPK6eEFe6ooMLXcK+HfWc+EGHnqdhfZ+qxsoT5GRjEk4TVPpnBEqBAvnJPt0+VMMoCmdiD+2r22nXeB1UfGhn9MV230/h65F726338sIyUdaMQfusHr4r6yVM+2xXZA5zOYAWCZoPYF1/EQ/W4FpkaId54lby7LK8sheZcgO1ZPYmB64BvZodkthuqad3y+NV2IpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1c743996-7e1e-4a54-bccd-bc58ca68fdfb","name":"release-1c743996-7e1e-4a54-bccd-bc58ca68fdfb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7f01cde6-d8bf-49ff-a94a-1b8051538b55","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183780146647464635789614361626992445526854500742677835079442091075096807414644259135375932655232735469792220249494687435726751487554309463751429589112433970991090855750488738356995282387461111130071090531945214931796449086913344475135325942644205381109996305056103298226366123688809144668157556115405318151811738152677643612027432355384077377766136736465788749425236880547893183376920659079435","osProfile":{"computerName":"jianyunt2"},"vmId":"861719fe-70ba-4295-b7f6-f9f82343d39e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp0D5Sy0Mknph6gU1JTnq0hBZ/bfOMCSgjBpRc0nPSby+fW696Rpw69s9FYtvkitbO/NNHs/H1S3YmfsQI45B6DPHzyogTQcmUfklhHMAy9myVD0tJ1sLabYcBWFnJQ2dMSjdQpfpb6pSHqvupN7gNt2CKK1NASpCngyCwY2NpHOH4itSDmFH/wVO1NGPlWSTNyPeAUm7tpa+uIKIFUpF7/jfL6mvej9H6Y9oHs7X6rVdTsrO8uIk6I01NpjSfw6MlpypPP/2bptpREEh42s8VLK7AqTkkNA9PRM/x8JXe35Ufu+nGExinacq5pGsj8f0zqt6DalmhjuumAoG7ZiR6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4d67fc07-9b04-4535-8a30-688684e985bd","name":"release-4d67fc07-9b04-4535-8a30-688684e985bd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"397b6005-f619-4b66-b50b-e24a9570bb90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418544424402216306780566959722126157297825774448225495178531304702777437638618268398492676683822159549584868039086765814803691576121662531733671950328233889054621638665771664541988788316464223679929131377519928607231620257108683285053771776676237145195629913438905078362373908184912773740845667182040363855652615908639166270812674762396318661805254054285020845367478506527124135915954382346337087461","osProfile":{"computerName":"jianyunt2"},"vmId":"87c301e6-dfe5-4923-87ee-701ae9a2eb6f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzwLpB1X7LBgHWmnNNCK3RaA0ln5nNeULqOdxgQeG5WK+0BlQAkJQ1czqLZEgAQtqLPYFVP5T8u4sokvsBoBlui0d42cjDXGDCIUCpvf1+qsVyKPS0bzrYWt9cgNmltuN7BzJEpbBeNTXYTERMcFCP+Td64ZK9sZzP8nOmSiZkL1mmwu8i0VkQUK1aD/FG7eNfWGI/pfAtR8esOXDVfUWDafvZwj/1xX53+YsNSNAZ/55dhPpzFdgimanlLVKS6UZLTgAPQSuOb0gMouDGMSHQCIsnlbzPgq2FQtgr0ibnpXTvFWh2qMuUYXdhivyIdT2vDpNHgEgHfB9cR98HSUPxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b734b7bf-606c-48d5-8d68-b399098e8428","name":"release-b734b7bf-606c-48d5-8d68-b399098e8428","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cc2c0e0d-8089-43c2-ad17-203847e34128","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182665631626389334730827683436308723326528762360671135257997587074374576548664914452824829435683404300552956796194969970454749619468923569664093984445343969462178719026444383019422096308316468371739651083775688737295222057837790648546473096362834885299865745552584828527026816338719754607884308328752194865865912222895244362836805069806382605725975783976794879496052243846717281204132894746","osProfile":{"computerName":"jianyunt2"},"vmId":"10432666-3fd9-4c9e-a56e-53d6afe76933","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzh2NxyQU3KMbxmCOgXgngFoOo+7ceIMEDXqh08X/JNiJkVQK82gMUSYAtux4Iwz55mmFSdj9T8IIfM8+m2dyTWOWaNxxjACPOhniWwt33Rl9pRhUynSiEEEwsa1iK9o5Pkv2t3tySL1PZ00uYpe41bRmlZP7Gg1EEnei5zWgyp9Q6T1QPe0rc8UIPlPpXr07o4bfIDWwgGEyFSN/AwgMLiyQm+HjhZz0VQraKbCNWS7/XCiMuD41nZ05PV0bmTv9SiyVLHeILdCP8vTo7dipH3SfZA3bDurrPnOLsygQwisdPSiu9EkKtNVZ9MLUloBOa6cqwLQ/QQ9tEaxgTAvO8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-188fbe1d-b125-4d04-b7a5-c180386f8702","name":"release-188fbe1d-b125-4d04-b7a5-c180386f8702","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3d5a4881-7b53-4af2-8b45-046b7908309e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41858629338716304683581594336598478931285317054166591481170183636312742778383974193027674550577490728708989913951787525316787567665615148466897841372619649021059505471311648936065308297824875654861267792725283621567474576599565333781675532667672803937411166066734467216527034818280252662442383898510249374349602861182639038946484727535352451134652326998747537207629068506158791507635","osProfile":{"computerName":"jianyunt2"},"vmId":"41d2304e-9da3-4645-9879-83f1e3ecf478","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3XabSJTuieEI7O4bHJwq3vfEQuq76S3hLGA8iP4qGBHAz17/X4FAi2Ef/YkcafcDkzHYKahVnF394dfX0yxIt9Oq3f6ZG0BGA1OH2Bm8mx9wU9O/1RvrpBoSWRd1gakBs+vTHH5L2AejqnEJSBfhs9UTG55VVhbYxsg0yo+gqcAHN7s+ekluivULFd0OVRc1mXBVOFxTZWgugiplSfoJfwCDSxo6oX2utAtKqaNe8d2aUuVt0Md9ztkZFmtTO87pKqJhWAUY2gYr7653jvYcFhl1qHkQbEneKY2v4Nnkrbkg6n5F3jJrRDd5/nuK4qtDIIXJjKoPdGqQuQH8EC9OvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-65d9fc55-aed4-4454-bb89-6a6f4da5c040","name":"release-65d9fc55-aed4-4454-bb89-6a6f4da5c040","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ec816bae-a04b-40ed-aceb-07748c64882e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418863094114564404656375782314127268215654179655335877684600032813815310923553138468457965265476902143265531552655300239952859455457386128505379862682365994461824764986440518746904879369383372147886623780734894971403440226693252056634892695836665005155935774149180145090724005244221257661012517416832986814868180415283552935689064932510055985698111739939","osProfile":{"computerName":"jianyunt2"},"vmId":"044f955c-ac48-4768-88eb-948bd889ee0b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAncOww7n6Q3pxrwKT42FSB93HCPoAewK9G/baTvj53PfCuxagKTih33DRvrIChxmqmygPzZ2JEE2PL9cSO7mZKNjvWQQGAzTzoK/kd5vb5oNmIppxEg00161udl1OCrDdpm8lgpqRO8V/lui0Yf7Cudo0XDPr0o7ZIi7/+Hh+VJa0EHv/os2EXpsrR4SXBwYUh0ujuKNdiSqEB6Gs4m6wfbWK+pklQuMjVXdBumklww6wKUOcKzTXFBRgmn3ZBvXxHLHS6Ml6b5v+o8TESgAUOQ6U6Eq09mxXvLtSU/yn1thkf2A2z4UYVrIgfDTtpf4dF3EQJNvggKOQIwYciQHqgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4cd3ae69-00e9-4087-be55-13f26d3ab86d","name":"release-4cd3ae69-00e9-4087-be55-13f26d3ab86d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2bb4560c-0c97-4ed1-a547-b5a958dfb91e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186371161932166061337036185721806133462303989338035653592055797949144450916693737764814329554968362958691052474708934436564511455456072157123255287513215669195351168972649864394923805321182482113371532219801297135760663920340463082175375754894775863119744049175434815012451580657963840703780075319236968471163497649608680427982496148741402857919842081602294293748452734927375108201168718185525","osProfile":{"computerName":"jianyunt2"},"vmId":"e6b82eb2-52db-4925-bd08-26d114c946e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvLzR+Lkzdx09LsEXSs3/JARUpVHnWR3SzMfo7fFlKFRPkj1q3XPBiiljGVfxEcvt7uKMaVQ91xoV1IOenkeWyfwbzpCbnxSMe135BPWy3ayr/R76No8PSX8fDq1P8LQSNrc0nPun6GjLAXGfSmXqm8sjjG1/JqHIFwh9mbaMQdZkDAcTvNXwmaXjcR4EegKpuCEHqB/o9i21QBOHZC4+RAM7LqR5TQruPcVJGI4n9jx+QuDGvBEXRyMSYwyP8e8KciRmY6B7vsCH723nPs4DmSFKRliLtnVjikJfkzrVjrPmGbZAbH6jn/87Bq95OVxC0OfOFDaBWEIn7Sab9vu8JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f2ee0c58-0982-4046-b73f-39ec614b02c5","name":"release-f2ee0c58-0982-4046-b73f-39ec614b02c5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"676e85bb-c644-4015-828f-a4ba5f3058e3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418449263382944334214064584184520996232948385051128383516185680362237289134569960879662961736169714866778694283076872362994948441613676425785067914726989528678591434359128568501544282001108435495451520348573064363114697683722536561961868696646159585096523788803110922446215381118368802641367632198231003353978685735478260996831955238226939254263648194597056631477274379586306252112713284536184650903157","osProfile":{"computerName":"jianyunt2"},"vmId":"c175719d-c34d-494d-90aa-3d881c079c29","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxkeV2/qEeNLmL3rsCOjfX2Czt8bdKVPEP6mJafRJPCiUeakifTLiGRj2OAkVJ/3ny2ICcAve05ywVtFCRbkUXiZnF7zEo09+NcK2+2X2BYOtWrAkrrARQtDWd6M5Pge87mgPnY77EZ2VlLL5vql3M5ReW+k348jMC96IrnxoOjk75pvLYXuhn9jz9M1Y6550j8RVre4SY6RJR6Wlq+ck283eg8jDxM/uhj1WG0y1Doc9uxcgh4P8jqzuNk24UMGRV5POIUY8nLxfJwjMaGpxpCtsROrL6HwKVnE/LNq2I9f2Ky4S7DOZ//g3FGymh4qmIiZPewupP97G9hZDYRDQ+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f7f32dd3-a290-4ffa-a3c5-354698b8fabf","name":"release-f7f32dd3-a290-4ffa-a3c5-354698b8fabf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"542f02f7-dcf1-4cd0-a730-dbc21dc7f0a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418560119669029718135157250298139489167344089105885600788388022366075956674967918900930617885123159819618449568166014151069339600461673144911692559209871426879741291973972134569880291529649736221359912651382703589635746678162387354664213447395053379194991679762948754642495623257873329274043645927335694300567083519840567431850821860937602828486539156896679953365436564381160650404713","osProfile":{"computerName":"jianyunt2"},"vmId":"b761459f-a859-4fe1-8fcf-d9fd8ba4195e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs/AHlLXMbWDE64ty7m5KaKyR6IDhzQROJ5R4uz/THKYhsq5ohaL3aTn8v+dXdOosG/7BrBoANPrjyAZ5nRPWNJMbDtAIu30Zpcgk163Olw3eZrt2pZZNGwe2W1S7fS7NiyaaauiDBYW9XOyaxAVxWjB58miBfG/PIYFPYwXtp6zjCehkSYhKFSL/ub4i6kRynbk8NIG5TGNrnUC89jxIPNvgYIC3hMGYOQVJOYP+JW+v3EoE5JMaXbGy41dkvKGCy85xEyo9OnjU4U8p52i4ZzTLlS0YHEYgqqZ8ma55e2MvT08CnjjAcqSIg8KlKcHfpEOxlDrCnPEtaE0UlHV7HQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-26cc3d00-fe66-4788-89d7-6a29eeb7528c","name":"release-26cc3d00-fe66-4788-89d7-6a29eeb7528c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d8dfed95-e7c1-4bd2-aa2b-cfe4b229af33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418930746029769782948767056124557853920309254130512815117171333970888665154784735563826335131160034949950500487548934669853464965316235153775712554123465566903380260952501514448765673562271369954085704547718665148941155325280148889212302418964100388893283015997866871573714954658395918118727509363779536615578047333639221015655006448","osProfile":{"computerName":"jianyunt2"},"vmId":"421cb251-fae8-4f36-8661-23f8a73bb0ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAySm3bnupYFOmm8D/I9HGd/4v4PmDJHbj9VvbrW8x3UZgNwi4Bzj9fmT2Ju44buxdI5egFMvJF7VvxMo2/DnOXJpsBn3TTA50WONZIZ5Qg3lB7Mcvmd51NHGZ4N7vXg6GsFus4R2dGcfMhUCKRlxcbTZs66ommtWceA35GcXwBVOcBTjn4VAVlQkidYDNcEoLyD6S+lvE67UcNwe9Q9Kb5fJltPLwQGRqr0H5zijIEN+Ex5KuziNB4R1rRQFfQKy2Xg7KDUq/x0OivzA4Mv7Y504Z6ZbbwPVD/GwLizD2c3rbsoEnQYm/YwSZgB9BjlnbJUq3c17Mgwuc/WyH/SUqlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-75b6e844-4228-4d08-9884-151b98b39d4a","name":"release-75b6e844-4228-4d08-9884-151b98b39d4a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"64922763-13a7-4d9b-967f-ab44e94615e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819536076040802114223327349466256584757391658237829434372285087605226946737716869611783596061800488754769161568236202012420049821888419311775067576485812767200499433451374749515858443862639576331923973528856223371118420853249238280333885923668661851164912443317512352963011652208231761556715305685736020743122534424403715719079266160157229798502687533643532684020947356059","osProfile":{"computerName":"jianyunt2"},"vmId":"93902f28-37d8-491e-b442-efca1e8a7bbb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAymWLaEQY9a/aTGW0G9y59iXbaWcYVLe8NrMtuYG8dX4FcR4drIwMwlokWnfNHhrW4mmGU7+3316FG1F3FKCnsslnSNm18IY7RW/M1UzKrPXGvLsdurzF949GlXvTsIYMznf9tZnHxVEMFftl+Lhwtd1YVEtetMP4EUo01NcxI+IfZ2WQ6Jmm39uVz0MajjVhJFLLaYygimus22zu1SiMMqeaSLcz0uQuysdXDolMv5ev2tGqYgCaFJb4GvfOXBxOKaHJHgMaoefS1ZIornojAHYpc+T6oiBvCcw0tbBz4c5uaCNa57leDD8eVny8nzcSsDM4TgvkSaouYo2H5iwglwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-54f81e48-024b-49cc-8beb-f89f23bd0037","name":"release-54f81e48-024b-49cc-8beb-f89f23bd0037","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"106a1d60-a385-4f71-9ee3-efe6233ab186","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418637789942390228178375408248810315001452576378843571137026609561375983749335627239309612103647384715325064105498558058149388187577115338995892629382010957707692196417233320190905491400832637411851844283408287995866542848421093166516307972651379722718074993254563525569353839627556659770892814220930513367175395202502996634534789747669127617052","osProfile":{"computerName":"jianyunt2"},"vmId":"c189fc8d-9f0f-4501-aa11-1a14df5300af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvSi0tJ8Nl0fn/3/efW7BfpKNhhJPkFbx18ZAYTFCPGQhDZ7k0EswDI/CxRSGQf222URE2/2g6T63hGrT+XLioMuXjtinDFE4nzD0+JQrjEYhYA+mXXEhVuU5MbhiJ55a7M0uopCufTkgBmgQqJER+c5erSkTHO2GWE+/8U/5tuUDmi4L9TokRLJLgCM9z/xrEvFV3AcAqMGcrilAaBgvB7RqLEBGh0AnyH/BWdI3HEP/llklqC5udjkyT4UQS6IhqVLr6eRh73/JxJubZhP2wMz1zNic+dYcfiZIyz7dLImRokC8CEdlWpJw8UlrWr1Hs29v1lYBFlnr3plvAFbUmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-30e8cd13-f696-4240-a9a9-b84f787eda02","name":"release-30e8cd13-f696-4240-a9a9-b84f787eda02","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1acac7c5-71a9-4b5b-97da-1adb0836d314","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418864018368046159584083839516538808006202998005860841257808032477245998881738848260426282443596022342508766898537153220629307981464148452282198102985659592636817196425732117207108173209043305826648547586279280125731346017138968783979374359518431878548422279796136063566529072906847363574376512344897565942257795253969340432437432822099847011976985049804982316682302772","osProfile":{"computerName":"jianyunt2"},"vmId":"b68a9737-ce23-4661-be90-6679eaf27aa5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6rKdydjiecby3I4f5KZWeyUrN9hp6HFgVZ/bfk1Grzvc1noU2mxG/bl0FuTHEnVMNnXAMy0smGX0mmDLaU0VCuf2Sd8Hhx8Ud0ikdzDgmdEDUG+nj7lZNpxO/TBo6s1mWC1VxGBrSjnrK0sH5/oCVddJkbJMXfizOE+lmjMd4yS3Zpup8pCAIiaSAxmV5gti57qi+Ml9yNHmzT9liW0CqpojeCP0RQAIBfQkfwjKgroQOud8BbX7SIneqqa0Vnf3PO9X4V4zmh31wYdsOyk8VXSZhpeYn98mql9C/9bMMDPuZGAli/l4Dt91NlQPkYacZpGQJg81EONkoEScqtriSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e1885b52-7e49-42ce-8baf-f71b74aae2ee","name":"release-e1885b52-7e49-42ce-8baf-f71b74aae2ee","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f891108f-ba04-44cc-9887-dd39ed5edca9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418956185232797249464901296902709551406721635054358800192726942723854587151502256045205295542721139328811845049564452847918495960986718134981192048675570207967115562810519887427103123586031505623433158629266330176436319552870562541966128783188381145607956348724538940776588632881812333150670956448505526037682134535849489806790671073811443746292342","osProfile":{"computerName":"jianyunt2"},"vmId":"28c82c12-a050-48fd-bca5-570b4ae8a0d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtjSiDZYpZCG4RTe+Vwqs99sWzcoxo9ba5SSEIrwJ01WA3J5Y2iGZjySQLMeP2a7eLo1O6NDv+2i8Bf58HH8s3MaL9cQ+d5nKjubl3lYdSXwp97bmkQyscHKnhru/RjbtBoMn6MG2pM3fP/iagAXSTrgKi/I+PGpfodssfq4znT/6E6NGZzaveAW7hgZcSoTpSaRQN4DKrnTO83zwKuIGocx2rFwB95TXtmisl6ya1cYMmmXxN72OaHZneWYqL6BTyrdvFfmNnapQywBwFCp/+LPtAtsn93391yYslyT1MuPuG5kOl/o8cmRZ3heAFFt2rwpoB3KOIwqgrP49CGKdWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-97fe035e-db3e-4d1e-988a-6f3d65409e4d","name":"release-97fe035e-db3e-4d1e-988a-6f3d65409e4d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dd8f5359-5e34-4286-939d-9a9509acc32e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418344568501466380837047315552274273366969128908467785113129516360780947761835137057720140818556258277436668506306025747122901981418424357646376082261950716787781985165191142780980876627184411428852847321357273652496557968287823553285314047694321125312256774280343005594958411155393055465499188046457415874982931439916026085359645553714940780637888223416889233311692249155272139779","osProfile":{"computerName":"jianyunt2"},"vmId":"5d0188b9-d05f-4f9b-9e40-e2349fc23fc9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxdtQ2PCcBzbKBM6/3iY8DhpWqP0MyV89iKPsncg/tUL0HR85m6K7pQRTzgWvEYF9V2JcDF9NzH8z0+YgrBmJXOBi5h/kV/8t4TmLLVjxEX7NB/8QWSCnN6XoB1TPJ70H2zMSf//ep8KxbD1RV5kX0r2V26Y73i+XWZmGnY0sLxoc9f29kUH4JVhRfhHRf72BJuyFmj3R9StftrMcDmyFGx4HtTBXnu4vocItyFArSq37CNkhmD91qcxDfFMCl8vFN/+hp9HvpYGBXh3K+FE28q6P3XoY96nvP2hp/cQnG7sYqTYUMD1DmqH254HCaB0IqRkahgLLtM/SZhBGV02zCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-57118a5f-76dc-4284-82c7-448c6abf75e3","name":"release-57118a5f-76dc-4284-82c7-448c6abf75e3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b56164a7-a97a-46eb-bfad-145f7a53f348","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41890573231896533589388117219601227308890331071928964340178728709943496325135666236571689781572078728846456747575137124783081368183723565641065708088961161176541687738125317794367462339471359934802097208978976052743563643403729685792487332853208475640035437892716939077165090893789772737404836541909864391679383567908580570929140372719702660949036603267","osProfile":{"computerName":"jianyunt2"},"vmId":"a965777c-3998-4dd9-9e35-7eba913d61df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo3tNYZz3qWrhcYpbG+FpTqg9cOB/VE0wAS8kRknxe6DUnJEMrTe2mqd5ppec91BOOiDv1j/NyZX4jEMwXetScyvxjUU9uQiO4UTORNnXP1UyHyDNw4a1M7XBypEZJdvNt2NtH9Lq5TEwDx/oc64Mu43slXXWwMp0UWrAIBLWXpNx8Aj1Al/rmqKl61orio1Ku0+W+lfkaU72gSmOc/h5S90Ls1dJps3Zs78Zd3iK4l7VDBeeZ1uu8D3TC7rCMbuWFsx2p/29Kn9pnoskZ6tEvL2/+jSsg7BPMBU1lrNOYtXEG2tFgfpjAygq9h5uWnu3ylWOhzWAIS2EsaAhceyP3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-daf6de36-218d-48bb-8250-ff77485fee53","name":"release-daf6de36-218d-48bb-8250-ff77485fee53","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bf25d646-f5c1-4ad0-b6c0-bb7b1212f4ba","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418654684295400804746328619369994664685630875898735304935269217704221693701258721426619133643216019965289854388826806382637378610102803911229336437997994676558931562319249077351965926810865602756677697308581179118886413261497277400103643365524170758266979391295111252695395071525234382624724158984672027355128994421304300108175691176256627538863660824555264633486540012789852453786022397625705038","osProfile":{"computerName":"jianyunt2"},"vmId":"2c0de37e-c253-45ab-8ecc-300cfc46ccd9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwMapWn11uXzkjlYiOlvvT2VP8qeOdK5YftJn92HPAXcjFR2yLAVlVe4Z2dJtHf11Zp6lu3HuLUHx3NGZdLixxqZ/X4JpnDwzQAamRgCSm92HWN7W3prQcqTONWiYWeQqupy9w05tKlsNQTkyHoIoy3KVsCSPIiS0utVwWK/lfX6cJZLck+IbIbGMPdH4xdFtsZIN4d7J1QqELg+OL4sIuzrcJrAQso7iLIiN6V24nJahBi61GqxqjBCgaarUlbHCC4ByH6jOwWN54G/hFj7Fj5u0+57e620X/EgZn7YpxPbhczbMy6BnU78sQMs6HCpsscJUfUhsRDuqczhZIFUEqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7615599b-ad1d-4f81-9366-8ca66b5f55a8","name":"release-7615599b-ad1d-4f81-9366-8ca66b5f55a8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"aea0b0f4-e1df-494f-a1d5-56272f83a868","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186240650991487461698849528837298628182852735795319949404060341252711373319574930216407601658529383208849299668684125866772603280459072108524457118153162681096222280394547945322773637993057705322513330586848653676601596836416961086005834622976753316536558897562365717024256294796220722701987236592026809612371580317655892528578632984822659543249432212849111870696718127483","osProfile":{"computerName":"jianyunt2"},"vmId":"83895c62-7618-41b1-ab5f-64e264b0f5bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt98CNlb2k13xGZuhArnu9JfJ4km93E9NvWnBfwfmNamEJMRZsPnWGG0dQGX02iaRtqEaGGyx7yandAzk2QxW7wAW+RhZLp84I3U5hHu3/5j0LuuuUUMhhmgOexVUnvBnplHnT91BvYo2ALJcMQ88+7qXKOcYFYHP+/YnEShMXRLd/e9pD3BjD/qgs1BQVFG0ecTE2IgUIaSm75UDpJ8aa0kesINF75c57eNGWpBeb3vBwpbMfhQTH3cHz2l51mDj4sA4EuO37ueZRY6HcdfBLxUAMS5vWfUoASJBdl0lOXY4iFq8iRUW9tqm4B+yqzU5ebn2K/jcroVkcdDWxsx25wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b18a9f5e-785b-4012-99b0-db88ed6a48cd","name":"release-b18a9f5e-785b-4012-99b0-db88ed6a48cd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a899ce28-381e-47c6-a6e5-f7a07c27f916","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418761586026958908749019381596644436483913577920663548645215476800794920587391644149795037353232936326188041226411959605853708153833846511393722174155892837860179789309394157958806068625933705742717868808965672531736816941887076632565378321781145830244031862560098743550026955186367783805832768359437278470557576885752788719691048780174534252298512381338811869863462171847606422932290565481","osProfile":{"computerName":"jianyunt2"},"vmId":"191cc607-b418-41ed-96a7-224a93f95fb7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz/8BYndTOmj81Jsi9aXFBjx20WKVrdnK8nzDMfkZUorrzVV008l3CC+3G++FgnsmVgm5GnWdZcTXQBrdGNK6iVW7SGTbQjod8gskoeasolQHwqoNEFAmem8ni0FkhJWy5cblEGuWn3A0k3itB5SyowIls/jxOcpgAx100QU0Ug1Wrg4fTw2cD0DmCPLyIpQbC41jOpNmDoQxgDhwU4c3UvHQaPJKkq7PXv9EZUU1hPQ2wGux5m28DBI0uwDQeq6dCRQ5t0LnGeSLHa9p8EWa8ikUjIfdllDbx/PBUXwiOJYtLUwVLFMelvw8uHJH2533Ig+sOozcYfCcM+TaLlCYSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-00b42ad3-bcd8-46cd-8419-3516d86da694","name":"release-00b42ad3-bcd8-46cd-8419-3516d86da694","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"528f7b87-a2fd-4bbd-983d-3cf693537ed7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41864459816470868020853054519661297699046584452555119434906263144977959214819078348562909800882328849974783261797046240418692382628010811836145930040503038347141915748841384495388946934205297574072386226627785172533653536668092403332521734547547326809857188756026293660423095783028637373372978939390638314855195948935276310996202022124667151845813657366026991551863129206831","osProfile":{"computerName":"jianyunt2"},"vmId":"180004b6-72a1-4e36-b8f1-3ff976b00f4a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzGsve+d8EOpUkKxSg6By3niYp4cdjPJWxNk2Kp8W/fEh+FcREmxD1M+H/csbWz77TBaAw7/4yjVLfUa914i13ItNElmvkIRilMo3x+c3eNPVd5Zagqw1wvfysAKvhRm/z3RIWXAug+jNOkO2mGJ1WlRnrmx8rW9J/U6gVj8MqoT0eRS3loRUJipSn5eI/P8FeT3LdhIg82ZhZjTOCL5LfRx0VQTdW0MKqKk0VpLOGotEzFq8WDMDc9lgVBPM0p+nziusRgCPf460Tx3oiYj0l9UNClzebHEEPFanlHuFBFjNQPrzBgwk4SmPHeWD1H9fEmVcSqzoamXYZ701TF04pQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e1205a35-7aa6-4059-9dd3-c93ad48eefff","name":"release-e1205a35-7aa6-4059-9dd3-c93ad48eefff","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0398a59e-16ff-4d6f-ab52-c34b6b2154c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183275694423407509304643651555651315547920509182155094960516049606155811159964788480955953256919918113819215162977104417555510730295830367289131525370416988229686984201753532272766130814589180086741219565320075777679250028122131756994662172772207251264623073747247748088393352749876355410715969575864024284786875511347484838543829093603702886719151832566129357332993","osProfile":{"computerName":"jianyunt2"},"vmId":"fe926598-af9f-4556-a7c1-cbbaae222af8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwrNFTOLc3LtUKJseT7gdR7HvuAk9uOpWCdCQoW88FpQXu3ap6kPzspgn1NQu4ImDfvPATGgLlIMLUr6Hl4/FVqc4QxCoOnOIUX1j2Bp4YMsYhLl7CXCIcHJkn7NYsmFLbzm962D3YbWLElxL1Ca7r8PJNIlD4kB/e+QzAnlcvIwxD5zxOZSDabaZT3ykaBbJES9DWGVYxkzw7bHBC2Z83BBsfiiD1MuGSPuN2/Lh7RuMP26yQopPZ3JY/Mnf8uHWjdtA7xAemuVuMz23L36GLWAft7hVB+0op20KAfgZ9h4tVHA0oMKLq3greAR2sMnBfxzAFBNom6kr9Db3rk8KIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-07b67241-fd73-4ee7-a6b6-2980ed61ed46","name":"release-07b67241-fd73-4ee7-a6b6-2980ed61ed46","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"28b777dc-4a86-471c-ab10-54476ed4e017","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895398184861438542010144469469514488717777592740660027931398056125073101111550477053674961305533361904640334674515451170469535171878698873992867510195315150699967989438947679668426530980711468445136365698022897412932071413599474164132679754388755585343390598071054347411687613015603138013365130356616688855435350574167002482050816905251860111645","osProfile":{"computerName":"jianyunt2"},"vmId":"2bd8214a-9096-4ecc-b2df-37d9646cf6bf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv9YxYTmzzIOQW8Pc93dd6dZTonYDYdH9xvd5Qs+CWCnLukgAcpus2qSWaPt+d+aE8cGLdrcfCWD+wHWreCViLp6cciqPtHO07NyzjnD9MCKazmcqp6oin3tnoezPF053LjUj6LK2OEJOWVG+Ut7VzkxWHeT2mbrX0KpTUC6sqfAze4wYE5DCP9nWGblV3S4m8iAJETAA2UdS6ddBd2V4Brat/uWRxOsIVHQitjyJ7JySrZ97eoyM8r+2MeG9EQh2ToYDmqPn0JzvJopwv87Go6NLmzCkxxYCoZbGT5kuIVWFr2t9MZUFirekw8B3vAt/KsUuY/Vf9SNLyer/c8hKDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-46fca25c-8e00-4ae6-93dc-f74664382990","name":"release-46fca25c-8e00-4ae6-93dc-f74664382990","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"37dd4152-a9f4-4f04-ae1e-d158ecf41dfb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187120745092964717491230319478249648697942447986216466127269848721346365792807827961373554323973485062094440159532723845419351496490862042641243330414578568656959288463716723791128450738991186678768555256113016714791092931765468334783767638628256076756374108837551159931171701375945997750134597941304548053491281137855513485483652656","osProfile":{"computerName":"jianyunt2"},"vmId":"a2091986-7e85-454d-a934-7b5055cf54ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6VgD/82M4rE1Zx1abSTgTcGfWGoZOO+H8F79cKOtAxkbyI/9QgUTbCSFRNABDvrOSOkROSPGrVHDsZndYMKxCOP94tNw44lcyA45Vz+jXx0ogiYk621yRiP+1FvFKerVgwcSJu9VVi3NfzRBNmtzpsSpLhwzmGKQqzLyycSNXYDEYgCdOO1MsUw9cSH4HuQuP+r3Qnvayf1KQ5uubPk1EQJKgDEWYZvesCkvMCxFMfjeJMmvRaLKkX6SDeBA9KpWDREI8VOEYbIe5d0UofQzzLAxVDcU90A7kAuOEPYmczHEXd5T5lNtkmggiOtcAp05P+l8QMSHLHYMn4KVuEk/awIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-08f04979-2dcb-4453-85a6-91e49bcf46be","name":"release-08f04979-2dcb-4453-85a6-91e49bcf46be","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e413f43e-0c80-4abe-8b9e-13f1bbcd3655","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418286112288722331593476288396718318599151631688828851522354812378869319354851949519185494844985269287183674221149967609297317665068344436548376355592120943146619163145461865284208449525873718265286973365649917434295427840341786840727299363596758455132123530114084679333173828187809527262605661654797052284452597009474441980299384645847527795607805243157208736","osProfile":{"computerName":"jianyunt2"},"vmId":"3768bc11-e4fd-48b6-b6a9-edf0d87f3db7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzOGAhYrmgOinfkvXxX3H/vH3V1hzqbzZmomcb6+3uoqh3tOSaMK2EpVlsHofgACkCjQF7kBMT637nQm2GX2V9LlCSr/yKf7refchlGSfG5Knez/px9CVd4benXrqwaXzNkbPofdp7mdb7/gKLZxAVByMOCQX9ut223ux1KJqoarsbszD7mOh45GBGDI1rCRB/cg4iRwJHjfc9tYuaddm+kVjTUcjtfDPNYVhA4HhzDpJ+kdZ5LSEmswJm0rdHyjsIC6HUxBgQnTnD6ORSwBd8/nlmKS9PN6FVLJImTzWyi9Pc1tqjQ38Pyci1+U4Z7Zx4xwA4r1NvzPLlkLqe/BcDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-26324daf-1555-49d5-a036-d79de548b952","name":"release-26324daf-1555-49d5-a036-d79de548b952","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"69c0b67a-adb4-439d-aedc-f0ad43bcf548","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418436564677430600029423162666694333778343383659175278732153207787972769057318445362655858872089151535523084546570268326152580183648644851945074005740327126699096486843052093331841534407397147238809902642879375237122104485720606727472104107040601177507173716028253821289627742333383148283720797402352850385756829778365682158682243482787989058722653357277309019601275619313605160068252965183952904","osProfile":{"computerName":"jianyunt2"},"vmId":"3e809b01-94ce-4317-92c7-26ff93e851f9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAl2V7BW/osfoKGt53QrJmjsBhdVu1gFvn+89nQzd7IWRXPc5EpOzJJMDnrACCdF/gyMWUBTjd3NN4e40qeZw4Abkq2ioOkZN4yITgj4kUs8sjMOVvWo8A+ZybXtXTkjenQMz6eF7CuNqIZH3WpgyUkzrefRCoLKr68xIa0+ohnCLeyMiAna4F5h+o9qeI5z3It3wlu0WMigrWOBEBSOm1KsRprUS37H9Jf1hxa5jO7zvrcVSoQzC1UTR1F5x/A8EBoN/daododif6vkz6ItxtTEPw8sSNxJHBsu4GA0iaIUIu9dcW8QBvtxMJyeAiS6MgfQwjfZ699ybV11Bh3uFRRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3e201ab9-7958-45eb-b1ec-7953ad717592","name":"release-3e201ab9-7958-45eb-b1ec-7953ad717592","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"63a92e33-64b2-4652-ae84-c4a24504c8fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184431437065751269695560335060999602186382726826388261619036384917144416085643119730181252238382306133701247649609380115435788939303072956373407696705790293860316307583848937694748569941559478418108148737037331813962351488763337281844872477713257495777208526419633851746434528588864241682854324163809699813990488281827395191674696455001544581986618","osProfile":{"computerName":"jianyunt2"},"vmId":"528ae95b-5474-4981-8873-1f770198734b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwvlNm6crZnADRz58Vsn0pnUAqer56zIjl+90Vc4in+6pUK08w7KULPIACqk4veFZchpvEwwQLgAUZpgYdjobmKh2cgjaWoZeTIF+jmD35ZuskANSQ4tPDH/JdpSyyAz811ZQkWFY62A7zBVvnHkebnaQwBxX2ndVrDpBqqXjTWzq7EmkyxzrWWgCQv8pyMsMnr7U/NwBJ9kZMiDYB7UWSC9bPBrIGwY3vDSGHlwFAqMCGFDiJwYPHOxzGxPLISXo7N3l/EUY/V3bGm568v+uZjWk3/3BfWX/Wzhw0OUmOWSSqcUAKDysjzZSZAEEtkRuhVv0K82OGn6ZJhfbihC0VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-87f84645-2939-48c9-80bb-42bceed8679b","name":"release-87f84645-2939-48c9-80bb-42bceed8679b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2ab8b294-dcfa-476c-93b3-f13785edd2f7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41874903277599777534056280745273699529258458493904327829738131836477937242284948576477908951514283127966556142571397380984933015532560353353926812865497240588831174828790482348490810964234373425513075857499278844888421942586348839264986118939523930755828393128845394041803669225151719545735638337709681656465783641262352581789","osProfile":{"computerName":"jianyunt2"},"vmId":"cd98bd68-8ac7-434b-8e16-0ee3241feedb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7CDUljL+CFzcDI9UNJvV6bheKEKhkdeh0estaVdo7uQ4pr8EeYPIOmnY4OMXBGwjiwU/mr39AQd1POyWDF8L7z1UEahw0zVz4CGTdMiiyTDD+SEoQMFNvawPuBFJQNtfEhQTUAkA5ApI2Fp8zUPdKUrkXF7qrmRc9WqGQZAgTqaxbkjt0WM6ahyeijaMIDvbl1jmFj4pw78gbpIzg21QvjJijU/c0yRmKMmMNy5W5XdyH79JCdrqe4UW8WdUGsagjSolv9k8wy34b6V+amdt3bgjxx7VbyCxqfF6Drx8O9yqAlP2RLCHRE6d39UIb3DqyxLeIIVefeRG+cTJ3hcHeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-287eb5e0-6894-4929-90f9-9da49bbad6c0","name":"release-287eb5e0-6894-4929-90f9-9da49bbad6c0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6415c5ce-59d5-44b3-aa78-2299da572e63","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418861703813398598027633931055987951978726592616729799860988570874291892087679736143025917175045236797567198842988676197841858862095834342986602348336723807565350780561944205182836485785784511536788071803822255350497380745776922818323335613555815290882366167087731451412591164717878477175907706869939057744930301803276214796503184383134913118746209717919318678995669166","osProfile":{"computerName":"jianyunt2"},"vmId":"ce8c4568-7ba5-4554-9089-286a67345e81","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAygVT4PxCKPqpkYLCXW6px9PNfBY1tsc69YfRnSYHdiAQD26WCyORLzUr55kl9DT7EOeU5neLMgLwjO9RARD8GIbccAOF88/O47aP4u7gCbBLRkppmf3JSv4FjKIz2sydrPizTXnILSkYAyOeHhy9krxcDZriEAJGn6kBCZQZ1ivvKj//KwQps2SOqhC3yPXKVk8yRxsJ34jGnJJsNzXtfTSQFQYq50jgbWhXmHUFtt5BfY6XOb2Z5kqX1jJFLN0ulnzHgdYEqHsonQJ7jupBZQO34zK1kSySunidK+jyR7jF9mX/35Ur6r1QunoyKu0Vgc302U6CwAJ6f34QQmifSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5f11ca05-0b90-4dfc-9cbe-3c64de92ab6e","name":"release-5f11ca05-0b90-4dfc-9cbe-3c64de92ab6e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"08d122fc-f75f-4e1e-b8ca-1ddddaa52594","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41892775982208248121136843420109418864772646670324682281976686949612893378853808744999460411330876843848582828626576225928106982193723654302677737755145670026633262712956337186242865252622203134605778882400684516350204281059394689859298321799832755638583827930999231742728312455383279768977732714253819707","osProfile":{"computerName":"jianyunt2"},"vmId":"c4e97273-fca6-4737-bcb9-9f8e86abd08e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzzqdH4Q+A021uPsmj6yHFFhH92xbuJ/VdyM4kkMyMbud70ImjWdBf2ZTWMntCT/WBP6IfYtSzhSSqLl67OuJBo0Q7+Z4CrFPHWoHhWtHdj3kk/FjKAjb9RSVgZlmx76Jscox7Cw1qlsLlOMsYeHVYCo5A+NK8CHUb31149FcoY3ENlMTDMizRMaCtyB186vdThc3+B8+2QGyHEmbAArWTHDdXN/ml7aXIovY+6rgAsyDNgj9vhoyv8XgLi3nk9hCT7h6sVVAO9xbbRvkkmFlA/azhncr+ruhiKtMD6cuaghSC2iONxMidwk5BLuWXnaoh4I+8o/ZVbwv4h4kPV2+nwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-32b3250e-b91c-4622-a1f8-8607b1ea929b","name":"release-32b3250e-b91c-4622-a1f8-8607b1ea929b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e0fbccf6-da57-4210-849d-6d94f81b50e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188312441977854422217293522844646238554876192124513971490897643600451556301446109145078211269999868451138354920522652102689019252876961129728441153323099946207917289775696926414817219126616887219346044305364283737477764015584738731411952431331559781857724467223626880046017106333579845892460079468743852382333356970877236345897101569547228968921326624587887463026072194","osProfile":{"computerName":"jianyunt2"},"vmId":"63c08b92-f04d-45e2-922a-7ee40e4a204b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0L/cT0mNLkjuV5pRmtCyyzRIKoWf3DVnxFjLn/riZRA/ZvpUKr1i40hFcqLdk8l1iY2AirBIb0Qr+LqA9Bn9YHUO8Kd9661dAa6M0g2eK1X7aubKbQxE1smSyHh5CFTmLhZtOMuYdQEC5U+gvPcQYFQJrF3zo1hf0y4VxupMUeYLuhjM0jfm4Vi1zr0w/ZBlzWj4Sd8LiSzauvnBN/Hx2s0dokilOh5sOWX/p5KU1MdeZkMao/qz4DPXRindl3MEznr6ucfanZ3es8Y44pZ8iElQtK5eowEd1MZ9OdctL4SU9EDwdhmZENiQpTFj2AZ1vo0ru/HFsZPv8Y4wiqbSswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-463dfb6c-373e-4d50-9274-e5e4200d2914","name":"release-463dfb6c-373e-4d50-9274-e5e4200d2914","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6c638c61-7234-4b93-a7bf-4e10c0d44de5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418316132316689632935967678256821086565065098877877957458883555417594100794892606827202047224988684895771180573534076712797345295175458559906978270087587727060882383827700484758628963091927054007646337783678270999537336942170858253166825408958796382091839366352711815681243167307769059015523508073145752559443892002343195220807413552968385632376513769374","osProfile":{"computerName":"jianyunt2"},"vmId":"d26d95d2-6a8b-4815-8f67-e2fba13c52a1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9HcHCVwqaF+VNAQ1MRQoKfJFGHLwGe9w151YaE22Fx3sFRExxLREmhgIxf9FtNCM5/mdPPxFvjW/VCp1VldOSTS9/xRSv1P6ZVitsUhdZwscg8xGrJhHU9Yp5A1QHwG/S61flcJJCIi0qHPEiWRqn3ZvnuaAaocc4jiKN7iI4zZfs5E/4qf5w5KeUjX50VZx9S3G8N/PXefwuIcwj2c5HRLmWB9pJrAj8KY3E57+h0h33imdUgPBMQo8VGxh8fnUBsNQyc79lWoGd+4MhYQlWEbutJ3BkeE8SwQqvcwWRrRJavrH26UBD8esjcJAPZXXLgd+xzuVU79V4yd7p6uahwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0c902d20-acf7-4b8a-9178-eb99358c8582","name":"release-0c902d20-acf7-4b8a-9178-eb99358c8582","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cf0c2eb8-2a6c-4e96-b475-e3f3a3d358a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418345218958896469944143937068335710935196339821532709565469461875485289716107199499481241411535457262672370312336435442306948270181105490036772134946763692375782174408273106729944264669039423069944139666065387518749254671289713784578559767537927669996361902194150066383675696090379253168191006712608856676217600539473258571105927957698417421018894235769650898551632038724429627907706","osProfile":{"computerName":"jianyunt2"},"vmId":"42228153-29ae-40d8-a90b-14854a44ea0a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3A3qiMoXTZHGTHUjn+/5fgohutKn3ogKohKR8xyLK061TxbtRH60ge9QA5IZnmgEgKDeSDNWfwwFle+hO5PpEpVtmoq7TKAWS2uWn3PfU8ogRWHT1fg1VdCXuhJXvH28hHJuSNI+8Tm13UlCwBZzBqTQV2TBJ0ZK/gERaFg9KSdtIAv75gBCnEZUWNZq9Gr1payMvl+It8R7VHO8oRb0i/W3u4CsW8TKlvLh9czYKGqmp+9D15qEhq8gC5FCqMJSbpU4FSCQ7UXv4O6Z3d0LSVIuDhDYDBPbqGOXdrlgl0emIsexUVH2A2/Lb8Vdk4dHY9yPVFumxsS5QQgAv2WhOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0da0e161-bfae-4091-81da-db08260da484","name":"release-0da0e161-bfae-4091-81da-db08260da484","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"64d74948-068e-40c6-be51-83047491a4c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186511742076996241931673816212360425098754135127460738631069247956292415019029718638216491621142921174079256054458568393861192245178558921128766315138167766440682182183765380941038852755386037759566949755971879238085389103559477146247660423922734743517491168338165597474111750649126199697287317439161951656909981272434480762295994459237893101058615091530","osProfile":{"computerName":"jianyunt2"},"vmId":"0173241f-87f3-493b-808e-9dcf37c8951c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4V14yE7ODC5qIg4sw2kCDAeQyuhvzYc8GuXCf4tCK2GA+BdbMf6sYoL8gNjvSBbrCkb7S4nvY6BCwgHR/bPrnAMpVO1VVxew70L4Kcyw12S2I7u5enkn7C3O7B+kUDr7b7gyqIB0pJxuuKva02T7rHArbC2iJ7P2cJE6+kQTRvvSVh03rLJCnygSClYxF9fnWrzhwWebYFIkWQEFDrGWRDNpawcQuVNhJxTBaQHSVyO1YaQqhxCbi9whmQeaTnNX6q8rMsCRz7jLY9LrbjIqPrLqPNPHwoYgJ5rCnd2xqegSHrLMOIK+lApc22jrmRkLIZcXo5eq1TrCbFjV6S+BQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9e6f4486-bc02-46bf-ba4c-fde7973b4bdd","name":"release-9e6f4486-bc02-46bf-ba4c-fde7973b4bdd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ab1d6cc6-69d7-470e-9e62-3526d85fd308","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418675515199020685999589797307247210392584642413422100228924552280780342716826227859266768083844447074206162229681968663381134206707223783208474020557533253916777455689565260490646120603496999175458208891945222956323730925992570929879386863631869673329435497114866177224135953522255747384844388557322670268441313817919394971842840979976979705550691319369287109682898349436016251","osProfile":{"computerName":"jianyunt2"},"vmId":"5e957a79-4dcf-48e0-b8d9-3a4ef7c62edc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8NDsIK58KF/PfVCpCbRlh2htan00jBpkkVLB9yfB5wRkcFrYQ30RE5oBCJhFm78EYSP7bNell+mG2Ie0o1fJtNySYn4xbT8EBxR9nPknNbe8bOs8YLL2IrRXyffww5rR6jwh4qG4C913m1O1vbXN/b56pAIlby8KaZkDs1KfI9POcAyODNZaalJmTNgfket/9wINdplTxWjIGk7VyEW2PJ9TmRYPkun3eupE00K6ku4F0QFqYfvIGfQGMqus4I10gcDq0+Q6Otp+MCWcTfYAG9wdOwF7R9kOul1diOxsu61oIM0/TOVJTFJHRnWj+uQCMJQnUof5hL16UZemg+bSAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-959fc43b-a202-47a5-993b-c95a38a83c84","name":"release-959fc43b-a202-47a5-993b-c95a38a83c84","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b07e9b87-65f6-48c6-a615-e4f780a1c892","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188755509711839722244214035764478953157577734737939766380985916179858586085422697914044012677156235073919290043359953280740453028777533186122471050184945720567691183824696046816330271583625288591179020603032949988937053947257588597869477236430356264642777770117418848095192596277248651679479366193048352178121002107388","osProfile":{"computerName":"jianyunt2"},"vmId":"12b65466-8859-438d-bd9c-0f986d241a21","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw6XFds9KJA1fnua9WjsHAFp9JpGN6tHxWRX4ACg9kgrL4OB79CJm/rTXMQ9dhrfG9fx+T5F7pD6hcLbfS9ppreAQGROYyPHjFM4qNv1wLlQQAjCmyDUphmhryl8mgHIRa8LJeWF7RBMWETgzuNSWRVDkrRPzujnqLZMjSJKJjJK4XuPTqvnVfFCbWAFgVGySR1zAd1GyORWdcJoFE/AhVcxzal1qaKBm3e6XJszseC1RXAENVTldOedeCKzm6MLGaTvdcJIjM09VY7ZXYBYWAMKiUfejgyFt8VhxwocZP6rvZfyWZNhVzI5KI8vviE0lKd0TX4rIyhRqj/fv/acSEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-180aa102-f48d-40aa-97af-321beaba32c0","name":"release-180aa102-f48d-40aa-97af-321beaba32c0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5ea20956-2a37-4081-8ccb-d641701a540d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41869344517218704551780496708102537338438229868865974518197234817364717733232199877491199454132523344744541255392528111502895082178371352454909817760349733002271867379831326787521547784339771472331824227066216490193993684162371296503456549382876898257938840279105470871873358088917395214589251857307190613432847810743819192087","osProfile":{"computerName":"jianyunt2"},"vmId":"0d4ac49d-3810-4245-a1c9-b840faedcf0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmXceg4K5Z/ylp0QQnHx120Vz2k/WDKMVwqp/5NAQbaUzLOzyzXd9ucaj4oOkqB7x8UjO66/az56ZzudnmtVV1XdDgu3AxSi7SjzGv0RS1Ry+rygnJKD3YZ9OriFcZnYNEpCz0SArkF7ibnM6ZIAXE8nmELeDAqivNqKLVjZa53J3+KoUlt0CNV8GeQgIBUsT9hb3sBwEwAWRmg88tWeemjqavHEZ1tcx5zbX9kYkucAFRvjtRt2SRUevC4WH129yG5C1dykG73NRXtvCKe8FROcA0uTUWllu7BaMxXmhy9gJ3BAXvGPwNlJr0JO3sV3Rj3Go3k/l3ZjtcYzyklgWdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-60c930e5-2d8f-46d7-b52b-6757d5aaff97","name":"release-60c930e5-2d8f-46d7-b52b-6757d5aaff97","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"913d212c-85f0-428d-bd5e-7650d1417a65","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187576232682713488925525133661947507325658342995390793456735926474765593517428013732223276228509353486225959312797815524459528548359793556247745515488614954485229411344977580797512225772841749875659858803957159183289173439463703148099583762779259122296106992381137315907330169829869714432339166465035","osProfile":{"computerName":"jianyunt2"},"vmId":"9d41ed5b-4ebd-4728-bad5-c5eac27dd2e6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvI8ja4/OOF6OIlmoCuOOaon4FVF1/e7KYTd0MrW8zdm+ehKkcmmlR57ozDp3F2V8Zkr2F7KX08Id4y4cBeJLhR0yfX730BcY0/yIOg/GZlFB+Sj0pzT6MdLNsqls5tIPRGgZd1nMWxNB97wJs/ymQ1bNw3RjaROsV+uGealZvawf7S3EbV3DNgF8xht4KKE+RSehlFG8GBBbtxERBem4J+SbHuDPj1qX0s1+3SIRD9xSnsXDsBH6DzBgGUXkOzNDYC0yAnBaPeuYP/SJgPJoKlq6mYbwQBP9vtqD4OyzuHAXQeet25PbyNGZYOHt8kCNEfFe2XZGt4uRYClOu5dVzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-26f58be2-0b70-45cb-9f1d-17ab9f413d84","name":"release-26f58be2-0b70-45cb-9f1d-17ab9f413d84","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e2684bf4-4d5d-4c3e-88ed-cc4020e85e82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186369576756695390373854444392988047702093132759491705793402892997042372411468714775904589098333863158344844319853357853188370961049787498302831182064336545584035111578234132713419859105981485538409143244556150954406332906337723106663243516592863988156148989513065183614721714864749678197094341476268771261145813257049123137116693827052389370477401722558612492","osProfile":{"computerName":"jianyunt2"},"vmId":"b39ec0f9-44de-49f6-8743-3e031db8dbe8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA45B0nwVTRCy/i/JU5Be3/mrJg2//7tNtlw1AU4D5KTlOiH5gQJmEek7yCbYrkbzhsyH6QMLeHFVGH78Q6mjaNxge9REjuHLUCuEtGB/gwmzkJShHzWbVC+aSqEVzrEqqjZby6sSa7xmDUb/XgjnqjdkZ75jH5Yf58eMr2jAmLuHWmsW4bZ6pt1TbpzJxzWNH0QEGMmsxgghv7qplAtF4xDTY5MbxusHGvXTd9LYRseMecFIU2sGl/LrDtfWph93QwtXTgg2k1NVzpJKI+iRwgkyqI/Cy2x1qfMRN0YtxVa8lGSd883L0YZmE5fTyC9jBExwkaT4oawLgMp4gmfIAsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cab12ea2-c006-4ab6-bb0c-f27ba77f59ed","name":"release-cab12ea2-c006-4ab6-bb0c-f27ba77f59ed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f5735f32-cb77-451d-80c8-5adb3f8a6a67","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184612368277558358384513898513934706791563118189434943032268938485018529643239729372124028634269739371436084391851413366668975757110795160575654374021237481381353267331406473803969446263031817840358201845549860777545583491348641561914448591051007291285007833117084495123868824626268558180729162555519361864426191853151812153914130029616","osProfile":{"computerName":"jianyunt2"},"vmId":"2474715a-6140-473b-8fb4-eb517fbce55c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1ds5b+To57xDVhPQZwc7Rd1bu2DzZRwROHAv3QsC8FdR4vNJcuRrL1fpMioy6un5KLEZnaup4BGt/iIdvs0P+cztcy62BqKJcglPYEq3gKqQZ1BKtO2OrRDiRgsY5hl4SI+8W6QguLgK/zKDxwwsAQRsgCm/6uMxPr4IPKbLCSHvXhqc8Nk5zhDvMLlbl/yJkSLhm7M5Inp4ePIzSM9wPHzBSwpVQCriv/AhHibdm/6EbMXbdTwvnhkDyGvYb42QVIl7W12qlr62zUOqr0wG+/57rYILG+G7ARUgAn7DkdbX8t06dWlq8qp9W9l3tJD9mZft2BTgXk0GoAA/cnzw+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3d5a8bca-9ee7-4cae-a592-da8ac432c97c","name":"release-3d5a8bca-9ee7-4cae-a592-da8ac432c97c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7c4db47c-9950-4faf-ace6-51a338f9a62b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41851241149873697939268135499238037332864397168863773920188511079195947950085529157256449949666293916564113154272076574231819399513364418542674824851496545639378562955357672282318981881476049937524922509674818603650264140976364411983761568623762762918879813743932183215788279252499622722045484915004028656031334104773313605838383750798051800606976525490498692459122275714","osProfile":{"computerName":"jianyunt2"},"vmId":"36976f52-3d39-4af4-aae4-2af9280ee108","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxci711falfjz0UPVGz0FTC33yz3Qr+Oj0dDiArp/l2PunbUccNtyKJxMfEpCeN3eqrUgOFUCRDdE4KCl2GIyXzaSABu5xXbX8PptZJlqyrwjXFjVU3gWx39sCgkh4CVM6/wdZBUpEZ6zw1Cokppk9ZLkrUhDf2hc6zctUXPVR3tCHAmbE6nuVdT6F7Akii0h3mUGTPVu6PTNa3Rg6NhdI+Y5iknKOhfsBoMy6xNQ1uFFdPg12jJrk0xMoSkULHlRHfcCLRZXePizx1jM3ANf3xd7DRpNVz7Yxr5dS19/+fpqllfavTCtn7b8Eug3XS0dLu4zQeDkKp8a3bylzprMIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7115ba1b-6980-4acd-b751-61d483b1ba35","name":"release-7115ba1b-6980-4acd-b751-61d483b1ba35","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5eba37dd-1c10-45a5-8fc3-02b49537a628","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41816657237529561205037829346018331131811843911130514766690893660009793318724459085925581392785302519125164583283946190957784872979966442730205480645118006684156032284878783780038837139139200183962067351422043947931499304106473482514002294396992092566019197430943942349377494374511262536692733741008567491307880531378615255702011544256219155116609","osProfile":{"computerName":"jianyunt2"},"vmId":"1ff75119-33ed-4a2c-b0ee-93044f11d1e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvh0sn1yx5cqoaBZIfUyGdkLe2omUtEx/aj7lMRlLI7gH9V/0i0ryz678qLb912zJSbHycnV8eRb+nLJYrTLJC91ZeGmahiBVW9IibPnCr1X00pYL9RI8kT8O4rQcCK1or1dEJIvfE3p4riOEnIWk+dJjDbY1NZirerhiMwP30JD0J7sofwfezTZ3EyWn84vrQNVyMeuDlg/O3VbnfBVPU4EODbPCoHsm8H9rww1UxfgYU97+KLJexa66FvAS7Abuv1sHS8L6bljmiOfxcrDvXytltvSnKTvTMJG/qiI6qbFu/8Uzoz8PMKPpQdna92ZaZEpaeVfhDt8PWniNdcJIhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8ff1a123-a47f-4887-ae84-b45da3579153","name":"release-8ff1a123-a47f-4887-ae84-b45da3579153","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"367726f4-6e4b-4641-9db0-85f5c425d896","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185890878053538552221646263513546192633540895228422666702488848269826088652894951225870897498165691738827288284629807907945152480892227664728805457088889450134068014645948993971989492040403806358747342075599330778584905423953309586725484123021356963172301765174073615437910219681807069631840301966353802194014804293","osProfile":{"computerName":"jianyunt2"},"vmId":"e2bac3f6-5e53-4eb1-8e91-fc12391d269a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9bcQmuY1PQr+OsiRpBDBSPrNCWYjvMLQr2poc5thJG+182+vC+U4wJ8EZYwzSh5CTNaNEEHywTAa+tkBDGKUNigVb4G4t1+it3LI93wyQqYlypf6sveGlnQXniPH85wkXaJhgI9pACfv2IwuKcOYH9zf9rqg3Y0auxVyQ/rxM565AO8xgz1HX/XXE1P3DzqTyIOV4xT0Cj269XLrduNgCbA1ue7hs8Ni/cXFCDwA/EzxX+kzkrbhwbN3yJzGuvsCoz6EQd6dXQKnea8q1910SidujFoCc8J4kAG9H4Dyi4BatucTulZHhn5h+iOcliPehL/iT+uKmksJXPSpP/qLgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9412ab6c-f1d1-43a0-9911-87496d0fe86a","name":"release-9412ab6c-f1d1-43a0-9911-87496d0fe86a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e8ae25b9-890a-4773-8ae2-4c76dd77bb1e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41815279503547736391299789371588638980315193653933609489569891257561433036382252354884422847478424751488617548795559754992186665657502424915843457751482803129640451434520596817836489580418612300535296676840521063851777384176579629489351223313952001476598602906821482773429595168008424588524417109536807084089480984498856280774611833675275411397712132741583605","osProfile":{"computerName":"jianyunt2"},"vmId":"8223db0a-72bc-43f5-8286-23d9a4be1fb1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3cUCNLM/BZVZIdBG6RQrhFdnO/kqwxKluqI6Gtd3nw9MKO0iDcdTjLV13pYv8WHje/axyADFvQeZ000GpdNqEgSywDyJa4P4ZVcoBsMw/VLChNMEJymlYrYqPMY5TjjV55RyHP+0ai9N2QfwlSVq/Toq5tb4J3bX8joDgTTSKBiIFxEU2oNXQZxlCYof1VY1LkXrAcJFREl38BhIhPB6MUGP8hexmZJcZKIsoMDW5tLWKK4g+a6ymTPl/XwXUbPz4eixsCW+J1oSfmcVCQNJapi6civj96rFYdQqFwHfM+YBQDY7v8bK9qP1jKChc9/EI9+IunKLYdGrBfOR0agt8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c390119f-9202-406a-93ed-98794dc207ab","name":"release-c390119f-9202-406a-93ed-98794dc207ab","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a81188ce-ebcb-434d-a2ab-c50dbc9f96e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418994976507608580123041735925710239212649968806937941424980693734675492055151866601492986178196740017145865511186831572918628242492554366148989067856113961625285283825474675713933381767149683121510852463714572332123999151421973092411711381958303689925796179582502968057400408762056403826208973479320145199872732168240987720735926352760792021412147622383151288635103718551702605062744248","osProfile":{"computerName":"jianyunt2"},"vmId":"24b6a283-f432-4cfe-8ae2-6dbde7203027","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzdPGseKZZGsiAI50mh6opBI1CyuApMHy5M3IRv1JmFI88H6AIN2PDY37jAtP7Jkufw+eVls4vmARL2l+Ad3o+yHqE25b//awuLRyk6azL6ROOPp/bh5NAEdJtsmoZjFuc6ieU2k71HRkLNTxBVGExYJxhK3UIz8tiHdhtSQ3ttsMA4fQsifd/VEF8G8M4CQRzspE9CcyT5KrTyRfJTX80OueyVyYqrt+KzD4csrt0JSACadlFgm5djzDWLRtvx3u3JFHZ0uAdAoi6U7OM3PUsnp3RWFob9eGwP69Xeo8lkHvSdg8l9CRklAFLkxemV9pLmZ7TN/T3BP/f4BE4HUB8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6300b9fa-449f-4588-b38e-ff859927353c","name":"release-6300b9fa-449f-4588-b38e-ff859927353c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f0809a4a-5262-486e-a0e4-6262ea24eeb3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183312667278284962971163505772806648940933723359561625661514175766374329864243682964520375718927968052036095770764944602861909655336897457881163618305970957783949225117563047101195284588878285405237284447285831100778865451902007344272292192664783401466917891784053232263029197456727277208866632253414528782482575256630352776891289543653841620008343716965926680404245955157842","osProfile":{"computerName":"jianyunt2"},"vmId":"388361ce-4dc3-4f25-9be9-c02f5468b15f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6PCjsVlKjfPahC2U96L+q0ygurTW9PVwyApnnCs5RGS3jk1RSaN7YYLRAPJ//KZWGCFBQz+rMb6xw0J7JXQZ65lf87zFu/mnlK6YeI1GvIEKSxl4eHbL98F9haS5B1iL7ppFR324UwMio/mz2EuF3DTzUJxo86ZBJYnGT1V1Zd3ORyZfYJEt1x29cYbYRXOzBiRf+TeM2dphlP8soMo5c6VfFygblKDv6AriZGFOSZrWLYPAJcQI1SzE2ys8MpY3CYZ46Flmswwk4PLfot8jQC/Ddby0PJ4/EhmtBLoafBoalKjQFYlFKWfNs2pXMCbx2mGBygpg3RDMKiYePxFnDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7b56b5bf-58a9-4baf-97ef-70b80112c7fc","name":"release-7b56b5bf-58a9-4baf-97ef-70b80112c7fc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"944e0f01-cb37-4b69-9865-0c02ac44b0e3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41861983343389569593679048366824421658795662153864445659452288713306598362794093979467722177822383256357872235096130810117937053562413993074362346869948525559669073378192846808582844767276580739875670514349995487790318700807522537915582699752557099309049517384433804867976558494728209664753351265335355514322555644057914817561916042225","osProfile":{"computerName":"jianyunt2"},"vmId":"14cfd204-6848-47d9-82d5-5cc99be94af4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyF718bNakMN/vFQISOH0RWWUrH1jeD4B2UhC71i4t8Mj+fkM8zI8sGECMFMLLNvn1/VRc0B7zAy7UmNrWDQg7x0CtC0nxTxNzyh2OSgfQYF7XyevjcePARAUU+G6BKa2gvvIqZDss3v0rYmjp1b4v35aL1DkiA2VZ6pY6QjuVyygOf4QeeRDBWlQfVu9o7D3v0oLyEgB9ZeK/SloFSaOK9ar8wbNrwu90EFviJind3v4oEqvMlkjWsDVMPj9WUjPg2/mNXpMi2t7HPA7Xri7IRyUVfQrgn2xaS+nTmvxIlhpzqOYzDHnGyKd0JLnoSYd5p8Bktb4RpmSWDC3HHHqcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4060e4e8-5363-4af9-96f5-2cbf5adae30b","name":"release-4060e4e8-5363-4af9-96f5-2cbf5adae30b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26d1e981-d5f4-4a54-b417-44c93ebf233e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186290322583457368926346416143387972505131582526988255694143318591788575885152471485109060405628469808258367004599666287348234195864478532742044291531162271713604770418033872571379488261352550762389663508899869939162112391097000765955105165705316924634833663550199067872346766515563","osProfile":{"computerName":"jianyunt2"},"vmId":"0b91c500-7746-4811-82ca-fa696d4f64a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqY0QZTKVWkyJEVRllbLRgJ64ZQj3PsQsyMVIu/05DLt21IPM6TK7E8zISmmHxJzTYLZCLgL3dU+4F7bniIYOZTQpPVQ1YgycCeWOykyrXW+O63CzO3jINFG7WxYZQopG/ew/1BChm+J9q7iS7gpy2QTotLU60NXLdwbL2shlMCgSOxyv855TMzRPcklyth40sRE/y3e381c9+KaET4po7e4Uf2Uy14sF8pz889wNrCB/n6ZsNPgZK5AtbtsKIQXhplZwMEwL91IrIKMmd9N3dkknpxpqzcw6PUUpUFfKQxdl8syl42qb/PMsrb/xV9C3iyO5tMv5FMjEo/OJM2UXpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9804e622-3b78-4c1c-9743-f167c9ff0c98","name":"release-9804e622-3b78-4c1c-9743-f167c9ff0c98","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"eb58664d-4a4f-4bfb-9102-8aabf6331151","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41836292409533936447275608881308155675653374376332835571524668727926870884395833020144863457195897436674171351242067434597440099422644112030018519172465052245847722359743595276495035734464183947099161933456930106722372258278111529883110919238776665062446131621946048437009286663075815932688416356395686404783843110","osProfile":{"computerName":"jianyunt2"},"vmId":"ee0c0385-d536-4e49-919d-36fd97337d53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxXqjKWBDDJiQQCzyxA9hhJiYNjPGnGnElu1Qzfxlo5h0oj6O5eagrt9qUWjSbmyjRiOuRqp9DeST5nZASOt0qfJaYgjpVzMmOA7dr8KT+QqpPQdPmTwQW4H+aQTT/dsH3Z8JmCIKL20GDFxWzurxIHNVhS6syCHDaXLXwEUZ+TA4IGh3iW2fRxjl1XNk6Z3EhW5UCXhraSsWW5W+zFd0tVPopZP88TcHfZJBlGGPweahRpobM9rALelDtGqul/isEYvPOZIpegBt+j7z70dyaS2ZKbIfjbsNLDyILKsxl1ACA6qb7XBZy1YUQk+SF7N81dFWONAe20wXra5HylEfrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0bf5b6a4-80b1-41ef-a2bc-1ec0c0444ab7","name":"release-0bf5b6a4-80b1-41ef-a2bc-1ec0c0444ab7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c921516b-6683-43b8-8e74-3180bcbcd85b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41844504625935196881109700930287901797293339252344171958468046514232761899441113591315829639713375026047436337218882232545643977487524465959673504526516566176765560368098362980658624129716798317861992464627137661835669553523789124693233729989020154746155952282380384323527543429884239045265445389674949405185947176186535028115664840560676156013094497188244273178819387679596443399664292611719704","osProfile":{"computerName":"jianyunt2"},"vmId":"6f16b143-9fbd-4474-b29a-7f5281884bba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAutuE69Xt81Do7i3iMjAezSWPypzn4qRHy77MenaayRf0qkmrCa2NkZvxvbCiJtr/ubenn9Rp4brI6ew8/DqiAUJz/7Kn3dUvVz6o/L/i9HA2PMIgnXH+n1kInpJbYUtK+QNQ93gDcxegKqlgUQKIzJRBRoldhtwYevGiCtJvbVR0c/O2L8JcGdAYlHjBaEVHV1MFTnumdbojJnktF9MbfIXh8Fe6NEHZRIQkbvu1tkvPfCTHGZ7n7mp9urXDDhjjAVhLZQyWlLp9mR8KlXx5cytJGN/5LkFT1FGD2QPA1tDzgOR/Y7cY/xcOiTRNIgD+CEZ9LNhyNwO7dsZ10wIGjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1c293826-85ee-4a09-aa43-4e26729e65e5","name":"release-1c293826-85ee-4a09-aa43-4e26729e65e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8d52c773-75b4-4b39-8789-95379ecf34c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186138536375863344766456833156563193024500312559751224771211942062475510722244839553411329139439757664714219282771931788770149529902988749522588340352743443456861384655515471018162090776341474231475999169935624403261884676318990124042324118274390711743832942313975511334919909799834347182197436481085683666622592550450675972423985749364757532","osProfile":{"computerName":"jianyunt2"},"vmId":"4df8275c-b4a0-416f-960a-4f4bf28af4ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvOzcC8r1oFhUTkYIaUvsHo6VH2Sj4ROGKLpQJc37ErmcsSwK+5U7rguPsz69wF3EzSq3Y6gWyJdxldi6wQbU18loVYlZP7Tp5o2QYivI0mXOG7GDsAWyXVixl8ihq7Urgz7QgijRY9nmoiLTdE2t64gVvP7IpMveL/VIv/J5Nh/tbEdYiS5dyXDhkbTY+0cdUR9CsKUuGdLemTf8R0TFL7zqkhQml1zBgS5eJS1yJKqBUZkNAPunBUj0C52W6n9rc6V8yW/axwCgMJZJSHN9H2SIIF6Nr6nrj7N1DbqKUVklEMEUstqCgrccl89i4n6+NgalWg/F+vYSKnnRGlYasQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bcfc1032-91c2-4275-86f6-8750afc5b7f7","name":"release-bcfc1032-91c2-4275-86f6-8750afc5b7f7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"78fcb85e-197c-469b-acab-a5c5160ecb99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41830789248793816935981385243529216521671283618540865570031197143551349358072404350249651688724273623909430859792707022104516934229378761398891263577894800368851668660812122899571345949756367882344952883073624521825870941244845598514482867920919173359844514740156461285701470957743336680294686720375554287315399611962968488926564534755784240426555461175817279","osProfile":{"computerName":"jianyunt2"},"vmId":"249160f7-ee2e-4deb-9322-c9cfa5ffb048","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtKUE2NoRDK54+WFSxd9rQixy6DZYG0mtEGVuTbuV4Af/xVprlC0md++5KVv+EawnZ1FDsPtRiyykeUATjgup/SykH/bM92Cufozx6YaHs+tpAGdiooGzq2n3E5MMmWvyV3gTtsg6K0Os0f1Ug6uk3cL2l8oJ0jxw89T1tJCAgsOExmhuFr9LdnX6++HLw8NhXs6m7J9boz7i3pyn+M4yUbuD/EZb7ULLq8j5vW1CY54aY/bdGYYBPe3msqTCsGl98W6a+FDYltr2dS5nD8fF0Xr/F7+ncTBD7d4JsVfn6t4sNCkPo8796TdVV22hz8Y+S+3lAloi/KPiUBBhpicxHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6767d2c3-6d09-4478-b9c4-71b0346e19c4","name":"release-6767d2c3-6d09-4478-b9c4-71b0346e19c4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"29e5e0aa-dc9e-47f3-9050-89d63185ab90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418270365381093769833273924991546684421479359101133469350265546165398183457613165290488198162739926615996930085982554124462833688938997334226297789248580283213405624577317069089598600644762306085588345217586645526935817600877222331795632890079605471201254135457963546187409389239995252376","osProfile":{"computerName":"jianyunt2"},"vmId":"d406be77-288a-43bb-b39b-99ac88047373","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAooCy7FVs4u+hD53TPFuQX3kCHZ2roBWaXUaHVNtKg+JcPNLBDEB4ltRQFePU+pUXuQ5YUBURDmGIrTwzeGuMWOZTxGPPRYtH27cCAccpU/T3Md9V+YaGfBtnGC2nppPT5iQ9vATaat+r/wZId3pds1tYyUcu9vpV4eK+hjXO7M8L1BRZjksW2eD6+PA0vX7BjQDkUlyNyV2viCmURpyr4b+7JbelDHicaBfubaM4igJ/vd5tdSRnAgGyfVu/2Jga3iE/Zt6aMStXXoUFfI6BXT4iqfX9i156avskbGM5gI6nDkmqjYKHoiJi4L1aNkB9XeIjBHfv3nmCjEsCKvRccQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8482fbbb-9aeb-489b-b2cc-b5c2a73581cd","name":"release-8482fbbb-9aeb-489b-b2cc-b5c2a73581cd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b050a161-2fcd-423c-9d2d-728480253caa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184544637052843891372292344112916015252618562675541782768845517138184753742423738618113687865235016693608971278202570990212145901831532957582652127344449383148961269496238592288786509535186056992522419449422532004579634499869600112809575382154819509300617152400746977024484763969053550612328995482452713510755509127343162685620571080343283854694564867806579712984486342621544484","osProfile":{"computerName":"jianyunt2"},"vmId":"18c1f9ff-885f-499b-849d-ba90de19ccf5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvBvcIRMYah2bTkXh8Z2L9oyRdCg3JgEBIuFDWw7iwrqRIRm28l1Wi0nlmXeNIcqngk4IzUup6+mU3Gdb5t6PFXz1J2hgxXWJGClV1igu1Vcm792DaialI9CZHgskQRKYiVgDeMpPd6f5/umk+qZ/15ANWeTFjfgWqeTUytNCFqZzhJje/Vt3GW5EF54Jqk2GtHRVWAwsaybUv1RySia9PSA1BhHyXvlKkxyoHStYaOZWRhf7ERxCDcarb1WIYLqRwidAUw0aLGbNwM2rHzhknGaLX8woBIJc3wKur+y1eUEGeB5GTcAhEoBTmzpnhu+eIxSWE9M9viSP3wFRTr2vyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6a3e5574-ca70-4693-ac0c-8fe6d4d49aa0","name":"release-6a3e5574-ca70-4693-ac0c-8fe6d4d49aa0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8aad5115-aac9-4ed1-a378-f2bd05c3e537","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41886874118862618644002124765357235157515926362816408958783716461045841392908992242746281039433095130136114270718892464549330457407885701568924442225782965043671917351316191076379877458146540432211515327499038812915123688885539658029023813443128274828269177822197718768932731998988702664533324329971169991058014357423010363192455257851583998938354790242618617495778529447914886171428945178071136843157093089","osProfile":{"computerName":"jianyunt2"},"vmId":"ff678675-0101-447f-94d6-185b7bc339ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAugQECBfiGyD/u5yb06m9uUimdCnxri/piM4C/WDP+bBfCmXBkR9/bFjjs50F/RkgTwHUPhbnaY06ehVHBAnhJWcZoYSHrDqeMkQnIeDhnHApQyFzmz203+s4f8R5o2BZZ0rvNjVm8lCQAT4fgKznIvfMTJ+J6o6bnYLgjAMDFMxe08R4gdThFU+1rbXowrjlZi01di/nhF4yT87pUiJ2oOFKV1EKI/ceO9K7ti5WHwK2XVoP6XL06e5JsG4cuvrdKW2FsXIUrTo3pEwp/YL7Ssjpj6ZEjUwwRxoxRcX65tKLh+zHldpTXERrE/A14UVOX7S0O6Li9kdmB0wv8q1xHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-05a70add-6e90-4f63-ac2c-0f27a0be17fe","name":"release-05a70add-6e90-4f63-ac2c-0f27a0be17fe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8e430b54-0e1a-4927-aad8-8926d81c5fd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418791748451314110912721986701064208778727497807771278095443158213823016585269821413973304573644761637989029486263216249332054541578896704683476914544049413795236938571835114863053744287299137845538242228078470569792573630446649006826170899131976229223172085353518311742725879782193265511687157349450802293564582774189881870882298157693102195489672233760","osProfile":{"computerName":"jianyunt2"},"vmId":"2a4ba187-edf3-4a4f-ac31-a112650cc8ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvUVlDxFZyD70P2NC+ZFr6vyzYfpFXa5E/ztFzGYHaagJgxCldjHbEJIRHbJmCXY3qRpQz6AmDvd9Mr/zKV4f/BgvFEOaFIWIdNHYUzR9mJQGsWsIcTJ7gmH3pWFsukoOpz/PIqc/NFwa1bh9QbqCEB/vZ6ih1ZNUSWCMCkkLWt2rU8m1M6GzxDsmGY87zTHEn7zz7rhN6thdgQV5/X8OxolsJopH/htOnDGEZLV4MY8e2vjQF7oh1wWhbyhBskyxrk7SOOeKH/bATtsnW1Tr3llhxCz3O0bIWRIzuceqv5PKeAW7Sbe3bZNmtBi9laJ1Is8MrUYyn/UnWj+Uwqj2BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fb2329cb-f025-4731-80f2-f82d81de79dd","name":"release-fb2329cb-f025-4731-80f2-f82d81de79dd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bfa63923-ba0e-43a2-8657-7168b0aacd4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418867307698204199301497437594120261485517343881161345646807178938217241779544998565261255180894423160428040321782445767229696452774729572963661217013585578834026738241751073525667373536767018625496244556159416254217464949241464174013443576642873539672916952691693636735469365577664471185418144109627519258042220660861362882616249677508761028311802268248459887774236947235","osProfile":{"computerName":"jianyunt2"},"vmId":"befb29eb-299f-4d6f-a303-eb9dbed24e98","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyVSdl6mwfS76dWNpDrGZumHXyaweFIweCR9yoMb072dhU3TmeFPWiryIM+WC19LpRKxOQRm2MYvle1pk8xK3Fr/WGwpPHs3WcpF91PwFEDUgFOhxBIaFR6fQfNybBebhFTBV9z5k+Yu4wpZgi+u60YgEeGK+mrliu1Zz6na9n2fLrmUSMwO4LxQDwgEwU/9vDsE8j0GS2DT/eq7wRRbgA3LAASDubYrd3zv5WJd3c5IBRaV3/UK435GtjbPXIMUsB/8rkW8HOKzodJl+aZDOd8WH0AkyFd8W9UPeyFGQMqOVkik9KPkgRpbL+Kqg6cl95qDAQcN1kYCaMyk5WrvOGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4ef093e4-7b4e-41d6-87f7-bf3b02d17be0","name":"release-4ef093e4-7b4e-41d6-87f7-bf3b02d17be0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d434a3b9-0488-4e7b-85df-dbf45a4a1d42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41831857859403990439853469578738803123450868994732190784227690862528391849589109929933124775158140192771919262301036884484112585170389543595346743736652984553969355527155385837218516478007438359317033961486853195214824319580302337477297779654194034905211318767413505276363683091927889495755688886851867139737261854214167","osProfile":{"computerName":"jianyunt2"},"vmId":"ce75cdcd-a751-444a-b2ec-232369db049f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwdVrAzro1GN7k7/ftdQGdU8QAkRAK9kZnA8puRNo7SuuGMLWpxjXfsUXGfaMkBgTp5DBwi3ExFAez66UiefbwYFVMobhqIbjijt+JPUOGZmZyaX8D67UE1PxDFohsBe9alKi5Si/zE0OmBuE1aQh6DlUnPrwiNHQ8dhxEukwuJAi/yD9zT8RMW45YZGRLjuhnHd75bzq4EGdm0JvHwC2zXV5s7speizOqJ+r2dyBc6Z1YhcGeudWcTDLHEp7eLxe/tG26Nof/i/8yHRQa8yjgh8UBDPEWjr/fGlMxKjUAfbKSQIbzd0lWp9R9AN2kCOZMqdW94mPKR0ZPEQ+cUTamQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0eae774b-6afd-4797-a168-d2a3ff940589","name":"release-0eae774b-6afd-4797-a168-d2a3ff940589","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1058e169-642c-46d8-858b-f80eb494e93d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184844383913759705402480499178349103247509417896873314929661941915378150481394704159546862854883083255536811189072777071196880752217986759882238786288903428800779933031498541641999041793686271556228099836339872322421304131993198783139494932295239752549253254125466291483610522626229810593330358680883740489543534178439008155522194358401737796755231259410355747379339454247164794","osProfile":{"computerName":"jianyunt2"},"vmId":"4294cf0a-5681-4d59-a516-ea471c4c7ce1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs46mjBm4BxHzb71zLsHHwFhJW9tm+HCbEYjRpr6M8v2Uivv4oFHaBVMjvu4gWGbHqOBHOfu+kJF0RyZ/CZ9LOtd5Wa5pRNloVAryOdyY0UB62Xcd6mHd3is71hH8eVx2wJ4HWWo8Ei8+ZnHhHABqr0Tbu+RLHSKHebxRGAfoZ+Go212z+dZCJ0JxdbJEBSdBtIxRudbUQlraQ3Z0ySYmutTxpRjr7rMPVudhQbKYQm6W9fNlEcA/WjTiCk4wqgoO7Jfz3gSBgDvRrubjPv9QR+xOluSOcb9iX2NsdW0H9qwtSlqyPI9hWQUuliOhkNHzN/y/mwpAkbx05LAWQ9G2+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-edeeec88-7517-43c7-88e2-efea9f8df69c","name":"release-edeeec88-7517-43c7-88e2-efea9f8df69c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f0fc4336-5718-4a21-841e-3f594659b7e1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183423611134167456775923549428101863992014438564942074822281964682344074108646997244615690776294768029383584116821904512373624097046365640950544401745314357075648626843693819044107473578747666421469926384780086689723399420138348685564393142199612079098143038256888465283241511600279175271903","osProfile":{"computerName":"jianyunt2"},"vmId":"fb9e6c9c-1b3b-4757-9252-832d9391fea2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmIquFbfUdiJz0gvNCVzORaF6hIL71Fai6Oxjgbn1pYDpwVZ7m4ewKYO7fd6YfJ6vVPOdT1XahEK4Lo64ig0N0/u+WyjXg6UP0dvcWwV1EQUm7iEUwPfRLE1ujEoQpLOhKRF+B8bDS3zC7CH1oIXDt0RQ1F5dIO1L+5oUjLabErTcXuEgA7RK//oSA+P9BT3TsACtFy8phvqxkQuaeI2cM38kI27ReaTsOgjXvbS1Gg7xgQWSSvLunLJ0j8ttA1jiJc83hNkOFs9/3tCRUsBXiVctGRRzNuFtGsUXYlNUn6yh6fxHRwzTmgC7bO3CGmfqnPV4AVpXvgJXN8zwd0uv+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-33d5d1fe-2652-4c3a-be23-f29214625165","name":"release-33d5d1fe-2652-4c3a-be23-f29214625165","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5cd41b47-e8e6-4e2b-80a9-f00eb8a6b7a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189358636917695335301427073224907289038687121460878009399339898888584706129613961563388194946311814634918338528156028386358037108801520192436623336459394383819744702507162582458691022954844699658647880786792091927333752013743846738175421615537856408061574896987526457276214526144530234097741914695087424280904182216934712626194080123282","osProfile":{"computerName":"jianyunt2"},"vmId":"51de0a31-e8b7-48cc-9233-dd2f384f16a2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqfPl5L4N41TVPlFCH/Rzqf5ums+PYBFqG2cUtKiA2Z67lLR/D02rHKSY5ClCMk9d+5a4Bzd9DULoxFnJu0HbuecnngaL6K5iIEdUZNyJjR+9YVYUJpXnjKa0S0sSC6NHSe158TvpT1bxzl7NpwAt1/Py5/3IN/ZUrBmK1dynF4Nv2aX4nAC7V3KHJPkpGJ613mJEd5Z99VcHBRTJowgpwv679e/87XH243XCUFy+y4dpDXWpPJJv4X1o6FABR0+F3yNIU0k76sABGr8NgfZa/WtBWz0Stqmv1Blpbahg/1Pf6Fx3Nqp1AdlKZQ6skU9DvmQB69wyzImmrCIQhzyGmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-118c955d-edeb-4332-a61a-c12aca1829c4","name":"release-118c955d-edeb-4332-a61a-c12aca1829c4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6c3392d4-22ea-441d-afa6-7b76eeec1fc1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418861754873900281850332172201190483485258810451178402809753012959799485056399360410687240645223196624950587365823350959738091276335634084296158360996742583931843191141473156784683358651666446200337022361344892805862757117776062889982363072377042767359529524948938776067351595884336815140106303501137011597085860","osProfile":{"computerName":"jianyunt2"},"vmId":"7463ec20-fda3-4a64-8432-92ff202a030b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0jD5UZjsZhmoRNIDS962594mOPe3Q/PQUNe/BYbWgAc2i9M6WoyvYW/yBTSfvd5ApMS74B9b8Y1IxBhok5x6g45B8fySdjl3ibC6ZGoK/aBnOOAqNr5EiVmixVTErvMWNi4amJyXnuVriwW/hTLx8w6Pp8ARKBzOJc+vBJSBe3dYzduEF/SeyvATbPm8/Ij+WVHDUuVQQMOZ8AB6j1hY05fpzzM/6QlKfC5NRdysUVzRVuSj7HsUEA143hWy6OjaPDLAoaZGRaZu95peMgfNTuUsU9GBkEzBJoRggzSb3y04rTixljqGtyO7mOKRZZQaIkAU6663up5dzOF9CZ9SbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8a7a88cc-a293-4097-877e-1104af5ffc31","name":"release-8a7a88cc-a293-4097-877e-1104af5ffc31","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7bc2e702-846a-4c97-a78a-16876f5c9a27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418390684323569813864955219162850764994904734545708776687813624422392289969733642286813349448363625902479336090043862985663479542798677676042723290387330213496501751013240488671184909454909953651053845534783964941899901494794315347878721988484646387629557913629158130730702510169368062131764","osProfile":{"computerName":"jianyunt2"},"vmId":"6aaa0695-ea56-4f61-b339-3c05c51b7661","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+eW70RvOoos6tqFv66glsNMZv0G0TRExTPUrZFBZLX1uQCiAUAZ10/ZOdt1viPejnSFz9X9Xr8iLSdi6vuSYBnA15gaNUL20/LiHbBdg7H5iRpHE+iZirW+fCKmHGr77WZ7idbbKlcVNS3HpVThb9Wsjo18pRR06jwZ72Vb0oz1PZW8tBPAq+vH6Xe7hFfnGW5DbTCKi9GqvcyZmAPIa4CrSYmxWZorCwMDiGVG0GN2j1cccyYnZwHoiAaxMaIp85QSBFRlCpsZWEQCnMLN8AjfhO0uUSo4xQHP8F4cTuaZwPrOHByBDGCS4cSW37mqEUOfanZ38uQ3uy3BuwEXOowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-91728eba-6c73-4c8a-902b-8a341ab73967","name":"release-91728eba-6c73-4c8a-902b-8a341ab73967","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8eb8e7ac-7ef6-4df6-b035-9b52811f5ba6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41859481711303360499008654146926028901414317979689153665524555375934438543196136558978816401127180878586831597482593261406643560254286449266586394894767662561735858685311186120557106572941885906783864539827453889452341336623938173580260548558599219131649166714894799468451256903096988778758581905240588445880449083197519973542848634512098650134663511462470586698302248171957626483632750301655609","osProfile":{"computerName":"jianyunt2"},"vmId":"44a85b16-6a87-479f-b9ac-c59665e320a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9J+xvv2FkQMGiIf4Y2y8+rDsZs6JhL05CAQ3ulTsg93c3pSEjwRYmou6RHO1kDGOBUd3z8l40EOOe8nXopFWz8oWIh7JxU0KNNRLbk0cjkZWJJ16aUh+5QLhDiY0vJKnESM/KxkbqCHI6q7YE1Mok3Xf49e6N473DAjdSpdyA26hBsQFruy2eCXKsqkZDM4qMcpESTNyKHaJqvxDAOj3ziYJj6GeOuktxcuIbAXGrPde8pEoXv4kPbej5Sal5yJDn1xQ0vxE2SBR14t0cK8RDXJa0na6wYh3EcJsis5KutO+6qqmHpIIG50/l05hPIW+LA9ThG/JZGEeUVZSrI7NvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-572af4af-4cc0-4019-a9a4-53a2cc94449a","name":"release-572af4af-4cc0-4019-a9a4-53a2cc94449a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4a9c4bdb-4087-41f2-befa-39d2c115b224","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41886422816258576868425170396513377190330902517651266825482639408343511707573819664132874195689415763326298302925311533187162796166643520416648369395442750344952552567121893957250724830531610250942408139899483938477456226815996764472696128687764413945512633443348690236069732056476058509436503176625152144966729525923240466164519515147270412796307331276695004239898223861714741347259355630623179774234","osProfile":{"computerName":"jianyunt2"},"vmId":"55b7e3ab-5f18-4f61-bd6f-07e030668df4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApuMY83+600yhAXYmBynwpyVDXKsSoiQoebrVPQmKS5WkYK63Z1dOTbBmLI0Bxf13fjVdXv2x4GRhL+nIHjQtiEoe8HG4OwOdTg/dr42JYtyAtGDREqzI0FjOcGX9AX1uoTipYgvOChDTcG4Ynkl+y3U1oW4kZf3+lazNTNIkf08ZSFZmDF2knGtgq7L14cCypBWo5zIqeBZdEuOJ9zvcOQivFaAgDsd6FV1Uqk7Lbrtf9JzAfhT5OCzh1Ipfl+lsLWd2Xcr3aMlTyrYC9TBavVivwpZFCgjoYCFKhvmjNzhtAueaG1ALUy/ihY1cuaoj0NFk130J9H1jjKftOOqTdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e8a70395-bf78-47db-ab83-8543faf82760","name":"release-e8a70395-bf78-47db-ab83-8543faf82760","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"13dd6a72-3c56-47e9-b031-90dcaff03ba7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184487209445768712953717578676428846054277451424364861998997853805326530785763156826994567871515180493449345102868895660916029991215518675269992962129842032734138833876479997287456028259440217238145840075463734594241624281936036657198624291064860277896234788748334598390725653647862315932144776688794535115491586429893060407122125440630908558","osProfile":{"computerName":"jianyunt2"},"vmId":"7fcd5839-b8d6-4b9f-8ae2-e377920a5112","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzjRyMu2sQnyLRc5BhxVoVVqLrXWjD6GVwFwrgPaTTMc9kKZj5abspkbmqfYPR7DaM4uyGHYwln/q9wWJA/spFqk6iaLmRuPiID7numST4/C+a6brUHTcTimeGaXkMBnirtRYlDGggGLbhF1NKyHIA8QQV7gTra4f8EulQQAHnsWzeuqoiOObxmpzTSkTATrwOPnoNp1EcFmwfbXH9IllgNI1TV6iDLVK/5qQWQK6JgppWOlTM3do/TLEw+imDF8ZZkKR9V2WvAQpfkI9M06wtZODwo77jKIbwcE+77I4KRHbqy6pYNzinWXelc3H5b/WVhuYHwr3Aahpgp37FVcLTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c73df27a-682f-4495-8a6a-c863b2e05c7a","name":"release-c73df27a-682f-4495-8a6a-c863b2e05c7a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d5c8f1cd-4f44-4074-bd44-5fba1cb4a82d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418878738216932210230754822535676566389661569087264328114425837948558549455683856497763451289249575612196910134517895195356676844340907998786835176926941275349577374170588669679795821945841637645062315238034455259282261323933460858290468082939164674994152741841318714195668141339855942699857694551988472195975409619682812672484480827482728971365164642208278866144","osProfile":{"computerName":"jianyunt2"},"vmId":"7e4cf4f5-bd02-482b-931f-4b3f4a8345a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmDH9r1Io0TE22u13sFok+SOEr95y1Ua5UkwJwjTs95z9AK0ZGZjIKwKmIseozbgPwcQcKyZKk84JLoe+OGnBqzoAiPwbmHvDo0KAiLjCXi8m/4jjW2Zfj+UXBvOhnk0rZ1AAkM+2egQLcZBVFIPIf+udnKfmM89+4jDTxAYL/XS8YozZu+KbTWAFqCycR+c264teS3i6NnymtIpyHLQGPXCxa4RqOL/NVteggQwOK0PNMe25fknIqbeXzht6nmGL9Eztpordge+i/DfyKKa8ujlLrFR1GXfLM/VYIDWealKzrmk25LW5qUf5R5YjNF3gnCMOYSt9APayeK3xu7zs5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cde05f8d-e716-4670-8803-f12f8bef6775","name":"release-cde05f8d-e716-4670-8803-f12f8bef6775","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6b812fad-64e9-43f5-85a9-423ff3f5c3a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41894708554582668479440660996852417320287529591073777966988415927966261476947553490162153577489779333992347411870448844684076831457007436957678213913232514937264832207567652843003594385064108296664022309411871976387529324197295111253475865990276286303470590409701460498484774763285004350374070346872106124495967852934517221797449472219435807274213236594","osProfile":{"computerName":"jianyunt2"},"vmId":"63d4597f-9556-401e-8950-48aab115d8ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXzRDIHNOwY70gLwXph6+L1PQXApAFaKo8GANSJbdso2GbbaVJBgURzK+FYpRNbxU5CtbZpRKVbjrg4ZFvoBFBOfQZaEW0xH/fSBSmL/uYkmDv9jC/TWOf1vTq67vnM0brlah1E8AlKSg+BIC9pfTjoEZeuB24zJhEnezQu3A8xLrWqJBd1k6nhevrcM/2nmS2hdt3zWNWmtVjnhManbz/evPCpjIItwfEv2Z30HI681gYD/rvvwHh8Ju5tgCwfrU78Z5IDSF8QQ6WoWjgQOgM8f+BlhhLz1l1u+BS5R1UhmjoiUuUjHIBwhSGo/pY1GLckT4zB2uu3oqIrfvw88kwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ad504c85-8864-4d76-a305-b7f0d6d73e22","name":"release-ad504c85-8864-4d76-a305-b7f0d6d73e22","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ed301d78-01aa-4adf-bafd-eedd33c36b6c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418247632656599203426966936586977965323156888206881604749274263955946146952498866954913111104599267464830806176478019851395559699672394116864211150922311116616458009227560885527379055602738723901972492148722571973246485484983647727618395937968965283950835711825253710332439744398156690190961934658584494111689200538422794901554289836089085473","osProfile":{"computerName":"jianyunt2"},"vmId":"7403a6ba-5edb-427b-94ed-31e9e38c3808","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw15e2yOaLf6HUcY6+V5DZDdlNz2ZCVIdy5XRghDBe90NXP1WjjpZDrADFZvoaVwnPluCtavA5MgFesUwJFHlQfvwcatqeDfT6/oIUWzF06VUk2uje/cJX93CM6XyHMZALtH4KTMmL7tzpA8SSnkOtn3CrN8fXfZT5/GDdX93SDzFanbECH0m/ZJFxhOr/hbUpXJEWqiNvKzRJTw7B/38Mi2hpjG/B9BP2368+gCMOeIAmcCZ+TeApk6555PYGyLIq8taf9+qHlx2WZSSzdUVi5k+NN/CYUz3ctTvab5eqPDOVhK4eaLHePupVRQq0JqZBlCkTIDEq2YVvsFY3lJ6gQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6294013d-672b-44db-95bf-5a3f12367610","name":"release-6294013d-672b-44db-95bf-5a3f12367610","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"526a135b-2646-45f8-81c1-9175324a65a8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41836605048961052355399965784471834301862850328774558275491786239772276070244264515452246998138964496294332370069942883438465965760815674073344302429333483673056269950179197641975085844451691211603340117128783458114667915552692632785182986156738130266611321735290558322271477448215778122349094521364915423455495515169957765488359996428175545760135497173345421921812034156585792356457584279452666337","osProfile":{"computerName":"jianyunt2"},"vmId":"f29af437-8bce-4e14-9728-61ec3ee35bce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvITdTEstBIKEN8pNqnVXpkIAbMSnzjSiYXW58M5w20V2KKvken+E6C8+C+FBVHz2g0gBSW0kNfPH5T+zs4pt6MAfkMY290DrGEYx/Gui+jhMmLQHQMN8DmerLZj3Eitzf0xjybYzXjEAi8RkKDGgSTGeCILgtmHEyjIRpDLJwydsskWuMeEB2Ph3RZdcNWyf9saMOc3P2YMgqKw/6HAV9TSkYHf1QEAKP0DvOKhqy/CTi0zVUi0qN2ZA86nrJWm2LDr30wHymLuVBwEkoc/ORY4CVIm5BQst08SA5bojHiQsaldZW1Liimw5x/zUBTzLww2u1Fin8SBjTbTlQ0/yPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1ab92b26-9019-442f-a98e-e677e4d9ed00","name":"release-1ab92b26-9019-442f-a98e-e677e4d9ed00","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ef7ecfe6-cfdf-4696-8d31-94f8b43ae31f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418284359241799994384243563667486333219257365433769132381904014117393731177345668795372874184699501172764047823907316799965866099630248631849544369869449182135811355450304722732193847737182701276039732924297052490467714968251426270729911109653284625678417533059133820448453577488719105715534461851134228938276443313976542753425780064253775687786114819659198429032080827335807274942189475662290","osProfile":{"computerName":"jianyunt2"},"vmId":"169a012d-2336-455e-8e9a-cb2d5eb039c6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyXOH6z2ejdsBUjxesmgbBGX080D/P6DKGLv0Az8439n+oXIwPF7v40vaBUtK91QPEcAcECjQ+FQ1a7R4nB+qcQBTKqRAvrKN2YGBjAj+qPcFfsAv5btZzh8JoMbu6Rf/xWUcYW1BvIJuX64JGx8abnp4TIId6DNiz7ikMZkDv/y8NUXx2kRXccq5SsXjOJZOa0nfEB3/7UoI0C9UTu9LtfCEtwHTuSKoqxxlGrDBtJmjqqGosCqldcYFXL2rwUuswO6cDocO4GNvuuYam7G6QTGes700ovPHtbaYrl425j6ooIdiXe2kHaqy71AAox/53VBB7SR9VWSCDtluD2ys+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-16fb60cd-7685-4beb-b468-fd6d7aab32ad","name":"release-16fb60cd-7685-4beb-b468-fd6d7aab32ad","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"323b04b3-c6b0-4ca6-856b-c573cd961c30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418471370220455943984636155148910154437218106692781124434477211633306544527424729990925127060465170853411888134488767491373171630934868634187830593764788363794977821967566381032250467570239241233119716853266470268765016916411224646886497530777862718225878961231336118099983330537746118832213683566924022221188430349256097618232067996075462","osProfile":{"computerName":"jianyunt2"},"vmId":"5e1936f8-71c1-41a4-8481-e702396dce69","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0gu0CwSIsjWzyQTvDhy5fwlIjTXP8buGbnl8vdxg1ig3FlbjOhwIEgXUjaM13P6DNeDjlBdtYUTlVoZNZNtw5x5hFfXpM6HX5qlyaTt+94GeXoAihbkeIQtbszsTrQ2Fcr/7IVkSheKw6fL3HD0PvMDggALyGESHWhou9f7AV2NI24zxz2SIO3MLVRHP/sEvkJx6xHqt9Ow4YsTkx7kfO9wSquU/snLhp8cpx8OJd+gUBLknVy+apurQirBf998E9AN414Ut3LpMNYpx0bSFxFvprqAZfUd2jdjVH4Q2M6RGc7pGrTccv5u4u5zw79W5/i8J/yqrLylY4NdhLTM+pQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bcc8357a-4fcd-450d-afb1-802696f90e5f","name":"release-bcc8357a-4fcd-450d-afb1-802696f90e5f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bff13c4f-2156-4be2-80b6-beb3df5c0a16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418606243612389394729161654289040394014145939025367998753521147660885965243497226857042210327425342870649422424239991889558504177803222618602310191434839609350933583818724307673100963276988606450882870484975606114685629053485854851287502604632862443262178190426265178687630057636805309327062872584182537778482812295844626084939726732314","osProfile":{"computerName":"jianyunt2"},"vmId":"b2653e21-ce23-474a-a47c-93be9d73a207","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvYT9ak4Y6hJ/t9x7zqM2zMNjTuvQ+ha0XMBuTwHPfbX5XTP8q74xc5JCa6aLLUxF70sKULBCG8h6qR+mtTT+Kpn+CfpFOi0Ny8KlUr8bR0fBizOEkSTxe/hz3ULhAgFpUK+GVrOh8rYIi7lGgfvG59K6wMxs9NCDkzc6fBevAA2K6/YOy6xxc/dMGUUy2Gx5ys8QRJAw2y6x00vsIK4Y/hKXBmh4SGj8MiVOBHbIsAyH4Ra3iVTHYzGkFK52WsYILSFHwBVqeOUN4vzXLJVWBgtJIi0UroY/QJrcjFzThomi9AGYDQXVU5FNAckWmsBfemjhQWg9kd83D7CIoDDZ/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-287d26e5-3d0d-4dd2-b4c3-6c18a8faf998","name":"release-287d26e5-3d0d-4dd2-b4c3-6c18a8faf998","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b2c937dd-2bfc-4598-b34d-a3078c2dc910","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188974503138219994246556242101451045565612981534491062241978193026573799875829517185882986112950557369392081446094669739230487737573977060946289339390712857988204450395617825931648297282587502092779840584331554766513824947722536262877696820128950468247455639650597285466118076059322610902017233526","osProfile":{"computerName":"jianyunt2"},"vmId":"94a83099-b231-48ea-9b48-51e731c17975","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5H6kaokeHj1S4oDgHurzTLwYbtZfMCfe80S04hZnGUYv0cBB6FA3dKqxCq4ugnIkDtT058gjd0KqibSzo85qLazW1yx1wnFghmH69Zf7A3gtgtE6m/u1UyFSPSX77fuu3kkrKMh0sTaDzrEru4x2OXwrJVgomzLFRz9IF+oGNDAvtCAyTdC07ZbymZkM9sr63k1tqDhjiAAle7wmUKixIoigQUWSfG614OAn8TliHdJgWULl1ztNCZtAB3H8Lj/n2GsKgMGZNv0ILYaWjbuc0IWaVHyx+A5Js/JkRSZlBVRPOgIXQGhUmTm17V+IGinGuNpDet0nVa1606qdgZJQPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-eb7c0a37-dacd-4b31-8819-15188758f506","name":"release-eb7c0a37-dacd-4b31-8819-15188758f506","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"07fb342e-ae12-4312-b65f-8c0589a28a81","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189108122150914893437440165420437140566361396513899140974765928986948063966112554974629827365749058240050962582195842711690629811640599040372497205416102425383289232412018135515723775460419332053214634171470643719676099106838163428884400341976836164170938611304568884563813272306704077231703652265939695756736293686578130397534769158587821444109","osProfile":{"computerName":"jianyunt2"},"vmId":"9c9e0b63-b70c-4806-ba0a-52c7cd19cd83","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7vTHBZjXl7z8nwO13FpGVrK1IuF6qt8ZmyjJghGtvKTrM8fuMKB2Lj9z0vUDNtWvPFA0LTFotcFNGSVaeUCZGXMNcJvky4XLTtZ3yFRojl/4AO8kRFIKUFJxHi3JRm85RQHP3r8CwvRXsWbhOPzTnA9YCVXECnvD4zI6EWtuzeNrTRZUg3LRf7ouAKQ33m4WLsLVC4TulP+eTfuoqqUbIMe1kzDFkmYdrx5MGSmKnm1TYTiQtyLUMn/5aWcLidIpfMuRXzT2gWiy1Bto7moMTnV0XYzfcaS/N7NozEMOObdfsoplwXt90noKdT894OnXFFkDQPaAA0Q22Zq4oBj57wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b2d7bea1-848a-4ec7-8589-8a41ef4dec67","name":"release-b2d7bea1-848a-4ec7-8589-8a41ef4dec67","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f9edac7c-6581-41b6-b4db-f4ce08516a53","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41860969779584921435662218992983738626328128095898333177881083465099151793542975177773595209843654501230559857281923534624919832548090114116810535947775209804796247817440455569544612578553896514035345354715349951890169706769759567222403435766540741708466292091783229336649358152758652656663077877963486841457112410227863591645661812882","osProfile":{"computerName":"jianyunt2"},"vmId":"9ba963b7-fe23-42d7-8b04-8914746e6347","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApy1Kb+gHOV62F70+to03u9bNkXkQGSRxaCuFcfpX3sCaThtzoCfvReDCkO8BlntoXjCuy8pxanjdQwDZZ1UekKlDyANstrptwAzIVH+xmy7GflnGkzFFHnTuZ35U4SAkRWRThSejLBkPfCy6LiwIhje+/zqqY1fcJsD+ygJDOkOWl4xb3Yeq6llQXzLjNtutKjPNO1w2qDoE25VPhj3vEnn1GDujHti9CfVH+xHLbTYVSDGvxYJ+hGEoyAnMTqawX8HVsYjMApfaHq1TNYzL3DK0JsO3cKwlb6mdCdXErwAP2DV0crZujo/hdh6BuJiYwa3kv+j15BW663FHf4jWkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cab41e18-5945-4aee-8721-21f3700bd808","name":"release-cab41e18-5945-4aee-8721-21f3700bd808","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"32ec8663-dca0-4d04-b9a3-e5d66cdc5181","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41870682483332013359614327331219772116524075217345124670179836767900915361803166352251790174995907676747897732399386191759521864838492038204321539513523224771814832766839881765695594176642788429969173916979532098247924717929836128514520286890645754073447447154406786386571706996309560647232121095166968491869115672857353138153959355463119","osProfile":{"computerName":"jianyunt2"},"vmId":"d01a1c71-5d61-456d-afda-2fbe29da3645","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzYK+1H/3xb5ARPivA+SqmKzXe7BOzbgGTpzF3kxXljOb0zAsoG49npin73DEa+qMtUAFqwi66jos597/uHTLZ590OlsNN7ff04YdCQUkkDfUDm4jJu/ACm3QftwvlLEPQUPvZkuUkajnZ0dtyVLVdHCyfJVYSVn6yUZC35xCwVi+n3O0O45Nv6t8MIUgc4+3uQG0KTq/OzfxDdQPiFqWyHetPnpKGMkEI6BaN172kSzsdoD0VXnj9muFjAQN4+xwhuFM7+qMGMpOH/WMlsCMwSQ6+5Ey/woYs1HdP08nGerhjnT00wD5wnsKmo0fRYWnBI/S3Bw8ArRAMKuIOgGnBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac8b513c-146a-4d75-ba4f-dd5453a529d4","name":"release-ac8b513c-146a-4d75-ba4f-dd5453a529d4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e48a692-aa11-48e6-be5a-7d7f34d24cdb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41871329312151699900780635964957865195764892245224786535931896740353842994344188474139559271158451442687927451978697426174613507263936341693382570178565478471685715928752817945884751937278761357241851686014892263887751497180647262215091355550996827378662339626265280873814826831760010992454325290969395041503795414988714826632187617680269082112235803235529467733227691918455947961993056256045358593248961731649795","osProfile":{"computerName":"jianyunt2"},"vmId":"9bbcf3bb-7026-4e00-9008-447409c8201f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuxaba1iiTspUSgE+UUydyUQJKwko/vhJZLQ3HFU3rDUghI26YXEQbWJASdIRbj5Ks0FmTvHKWAhmdFshojbezUoDeg/0ismWSf9Thk6Hs+yqr6tSBeuwfZsozacb1OtQGjWv52oX2lWIQd1OinuT7o7IdjzVlRfhb57rC61fXwPYO4blL2egBzhsVfBcMUa+tLT0HsyxvcsIGxWeG/YSQDBYugigiGE5L8uT4a6TH9GeQ8BvaUSXmX6+lL8jz+uQIcejuOnqTSUruY47xqwtBMtu7svlvxdyt2cfozk9LxyHDeOTh9ykC3+r4MqL20bF/Bx4grVPkMSQoyvzQmiD4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-491b9b70-2e18-47fe-b126-a8586403edec","name":"release-491b9b70-2e18-47fe-b126-a8586403edec","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bb766a64-b2ae-4a84-a87e-32ee6f6a7338","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189448271690183599633927637775105836192343240833184816689479176874795378312112278614637190002506329054320031038895916163299089469564790046425770162780762703731097127938602974256263314384474682393551199359378177413195517581343249494361469118847195417290898957211310321391651142285168292688728284817353399459684071230444553899802427969009760234764575564605796639432347401330470603081719553531273879","osProfile":{"computerName":"jianyunt2"},"vmId":"b5d5150c-4cb4-4357-a739-751890c4625d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAspTBcqzWsSfCeHh/IA7vaCoU+PlNztbpsVL4bD2sROCW+aUYY68rkrDzxptaKcK6xwsrtfGpmxMRM3+bMFmZrR9val+N3G8XJ9VseV6IKTm55FFlRTA2aWfFz6Zh6Q2RKDtDvw7ByKCRChtXSzK4TR4ulzEFibQrgQhEvWyvXEHlWvh1zxmG+ylQ9nHbBUyAgNbxycMnDzqg1nMHmXjBdneI7/axXtIZkjfaKQOpUhwj3UOKx55bgXtqNnMIKxDw7PqsxjofByHecdeFD79vD4YWk0jaKLJNdBiScf43w8xVtebB2vv8Afw7qAwGqGfUs7y9qBPFGhP6D2RIFZYbFwIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=VVJhb6JAEP0v5rhPR7WgAk2ay%2byynFhtXRETPyIu654nUEC0bdrffrPYJndkYR6zM%2fPeTOatl4tLM1P5oe7dvfUYRKs4slgMi95db980ZX3X7x%2bTPJHiKPLmJnk9VeImLY79%2brSt00qVjSryur8diaEzdFMzG3uJORw7qek6Q88UVualbrqzd9tBv6yKVu1EVffnKq2Kusiam8nLtlI7WhzLUyOQKd2rXNQ%2fk1KZLUZi8XtrcOuZA9ccWGZZiVaJ8%2fdv9UGVq%2bIg8ntjRAyHGJbV6F%2b0hg36a5Fl6CP%2buIB8hHkiXu0xnb6EcH0MGy99w7KXKwwaIlgtqUaDAeIwWiPGInbInhCNRyN7jH%2fBQseA%2fBWqjbIgZEgYLNwLn6HFE8aTK1ABitCemnOfadyiIsIXiOw0RuKgHQWQofX2nbfdaC82Etx2ua2rOEmBAESSMpA688Jbd1LwBQcyBwmMkz8rN%2f7iLAOdbbuZhAlEEO4Bfp95x4X%2b9Zei01UFcp27O9sJwMEAdOz5YwcC2d14VyWee1WYsQKIhCdA659hDhDgKMgJSE04TpVJwOlSAutERpIcgNOHkLKQopdEMZ%2fOOAXgwNSaQ8wfgaye%2fY3cwAPmzYZYk%2bD%2b4e4x7LdgcglUyilQRiEkVD6z89ccyP86swsyLHQP7UvX5dk7EExGNl0aQk4lw9owhVyCpdfjB75VkkvxuTDdBh3Vv%2fvTxRyTy2eEZQU4IstwfH1Gfu%2f9%2fS8%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '162701' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:41 GMT + - Tue, 15 Sep 2020 00:31:18 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1189,9 +2359,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - d8ca6765-b550-475d-891c-77dd4e3533f9 - - 546345a9-18a3-4517-beb9-f7ad4f019ae7 status: code: 200 message: OK @@ -1199,36 +2366,41 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=VVJhb6JAEP0v5rhPR7WgAk2ay%2ByynFhtXRETPyIu654nUEC0bdrffrPYJndkYR6zM%2FPeTOatl4tLM1P5oe7dvfUYRKs4slgMi95db980ZX3X7x%2BTPJHiKPLmJnk9VeImLY79%2BrSt00qVjSryur8diaEzdFMzG3uJORw7qek6Q88UVualbrqzd9tBv6yKVu1EVffnKq2Kusiam8nLtlI7WhzLUyOQKd2rXNQ%2Fk1KZLUZi8XtrcOuZA9ccWGZZiVaJ8%2Fdv9UGVq%2BIg8ntjRAyHGJbV6F%2B0hg36a5Fl6CP%2BuIB8hHkiXu0xnb6EcH0MGy99w7KXKwwaIlgtqUaDAeIwWiPGInbInhCNRyN7jH%2FBQseA%2FBWqjbIgZEgYLNwLn6HFE8aTK1ABitCemnOfadyiIsIXiOw0RuKgHQWQofX2nbfdaC82Etx2ua2rOEmBAESSMpA688Jbd1LwBQcyBwmMkz8rN%2F7iLAOdbbuZhAlEEO4Bfp95x4X%2B9Zei01UFcp27O9sJwMEAdOz5YwcC2d14VyWee1WYsQKIhCdA659hDhDgKMgJSE04TpVJwOlSAutERpIcgNOHkLKQopdEMZ%2FOOAXgwNSaQ8wfgaye%2FY3cwAPmzYZYk%2BD%2B4e4x7LdgcglUyilQRiEkVD6z89ccyP86swsyLHQP7UvX5dk7EExGNl0aQk4lw9owhVyCpdfjB75VkkvxuTDdBh3Vv%2FvTxRyTy2eEZQU4IstwfH1Gfu%2F9%2FS8%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-63cb9e88-0e02-4738-bb7a-945417aaf076","name":"release-63cb9e88-0e02-4738-bb7a-945417aaf076","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"87de0d3a-d1e5-46cf-9317-482b12c29e14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418945372469294431838344981569555534318799334128765844965549708266162849269849662926025487878978189660182895745198177687393998554964299883225276192586536559757571440657726738929678259764068266121364213409646557054751281576577958440609975881631562837722919179049418089613452127001311517132896672387334207014198275753395639","osProfile":{"computerName":"jianyunt2"},"vmId":"9ed80160-1521-4ef1-bdb0-6a2aed0fab0d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwsssEUry8VjydIVfRX5g10PkBFbik4Qa9CNHfzXygJn/pB/tX9zK78QWWeD3akyRG6JTEkHVP0C1c1uMxVVZzsKozcL6P3h2Hw6vNNizTu+puu423y+zrSkSKjhPNMFJ+LBi+DDnWyMFk80j/JQOi60eKtGt2InKWjxC1rdjDigdxU8jqMYb+pf9eAR/kMKvjk0LPUafzdEDArAAbrZmp3eE51vR+yAk0+hHnzCHOGdG2bLhzDIPxGEA4et9YQ9A5c5ojOJevoIDD4xugsDYdrjTssX3ZqPjCUPaV3QpbhSmA5sZ3kvYqcgTEOD94H1cn0Vm+F2jsXDAiUjawFoWMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-60ab8b56-4851-4985-afbe-76fd69be570f","name":"release-60ab8b56-4851-4985-afbe-76fd69be570f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"658e731a-3765-4377-b3a2-19f2fb381648","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41868693557251254775017735577467678779637150332946134348439484472376152624822229788697578089371940669023887937837623493723033432401691165760482524123583541334680664234260822952164475621288528004662951274603500957127240648833568703731420142794849159318890449345177573991697441343096141992422606407990815196666568054418372317834405894519518316580693373133964534862316560558151057044055522269389294157634261491422688","osProfile":{"computerName":"jianyunt2"},"vmId":"313f099a-d221-4fd5-af44-149f89113f0d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvy2TtRzYWKR6U2U/6IbhEC4dnynIJBg4AJ6cDGEmWgVs4+nsLGE8fqNpC9KMk8sJ2t49Bh2zVvZ2dqf8IbvwrDy0yA5uupzOuDjjTGUV/nQSNshZhG4zhd9+2AICz7kiNAd1bPsuIh1q64m9vJUCePP80E6hBIvxEjpvDFkrIEc82k+0GVomZHtgZcURXyhI433NWvNMQ08RaSMY8cSaatUqrePOo4dl47CFaR3ZnRmsaOkuJmZkyTZkXbeaOp4wYgAC6pr6a+HtPVcjzYb+H/ZljL4uaeVj1dwHGGkB72ymKd/HK5GvaweCB8Q0SABpqyOd7Qfmn553CjpPHwqu9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a24caa5c-c4fb-47ac-bddb-876eb7cc9a50","name":"release-a24caa5c-c4fb-47ac-bddb-876eb7cc9a50","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"930d9eea-bf61-4a85-b959-51593fd91b0f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418594083272283918926783128254364401139535540822290128432380952161878083757609695378521374163570331722511940588248121403185455789450354125649224991374049585030626206778953706643914882561454235265831272132083116149134207354894744201975497578731788427734582916580351889251904590366114261869899463803031007220133527451316698427491765855218668628751691266915819758","osProfile":{"computerName":"jianyunt2"},"vmId":"205d1743-574f-480f-843a-b4acca7482ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyOQZ3jajQyt6/CNtREt9Pj9qOujkPBS0EOQDsfukprq64aVIA0UhT+0wrJKui69jF4wZ3xFWVY/SZ4g8xNManGoOyNH4qaeiIZkzmqTb/NXOXiRtyABaDmNP7g8Ek/WeTXqSgMTp4vboihA0kqeYxktzTFpCMKBlOhJGpOBXOqOhusHa+VSmDkOIWdHVSS9b+iS4Q1PpEuXOI1XbdVEJR8qLgXDfnw706tYRxqPpCDPNGbQf2lQ/jsS4LkuTSUTlYy60aVhYmHMXC6kZQOCiUpn4/ct0awhSH6YPwZRU2JUb+US8D7VVelEcjPqUMF/Wm70BAfxlvERvhFUrCIGzNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e84c81fd-20ac-46b5-975d-eee61c86e464","name":"release-e84c81fd-20ac-46b5-975d-eee61c86e464","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7966e7f7-a99a-496f-bd11-fc199c5fa4c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187785890851782305741755586386909155416775184310241093890870173552798553705141681997073666396726261695343736505180120739181188625384918480496558757199425923904158921279927779860286094251657363548195561663938196625020384155823318811541213829779177278154285518139564808419752308477123758478442910927428668873512735456310961821141562421056811209387984874177971583029191554126867","osProfile":{"computerName":"jianyunt2"},"vmId":"06a1cce6-4e94-439e-8e34-bfa70ac342dc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsY+h3ewy1AwH5fXnr/UA9/NcjALoZFJ2a+IU5BRiVLaiA5vlDm7S32XBa2OGYpu40BQ+q9SdUI9H5lBAlhsEZO6O6rCEFfctKquBxMh1ZIwpUXK2a5AlXiz6AKABC01WSru+UcVVU+6MRvQG5LjoC1cVHc2w1A9zXUViS2Ep5v/PP7S0x0FBa4sxlNM9T+xbfqK9bK+o730bpt5mSDODPbXHbUzMW0JLyt5CGIkQydkMfFuuFjlL8ThmERhK/zkPpYc2psNLekuJGYHPDkEre5Tt1VeG3KAIieSD8Zmr8k3CJ4/6QYBwE5Swc+k9eezib/Q8nmbcdXz+u7eoE5lpTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1ae76e2b-e03e-4a2b-b4bb-68ce3babb2e7","name":"release-1ae76e2b-e03e-4a2b-b4bb-68ce3babb2e7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8316ce3e-2b6e-40ba-85d7-078313459854","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41888587847586524991030338282884987328389235580115280356892275218758619973475801620618045986317950691088262531860431054602245015306826971823792694541089838182772652094475078322032968135604176218414133568356669090724691016852179187684662296093883120963696822483275557363983124647104628871025142334530086751732266816196788758975871453097064024935592569497571","osProfile":{"computerName":"jianyunt2"},"vmId":"7b35c5a9-16ad-44ae-93ed-7ffddc7f0135","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1rsROV+P2/EpDmLsmdbwf8TvmZG9NvqV/BnUFMd10qa7fC2YBeqlVM7tJNTxZ2Jb+cIxPKmYwd+JRW0urbJzLjM7WAVSkHZJkaxdN2t8tF/FwXvcSpb5gNdkb7MqWOftp2MxTtx5dWoeuZxi4mvC5k6NGg8fVu9/vuqum9/HxBztetLfsy9UdwT4lFFFy6uQgd9iBwz+tcbQt+uxB1+z4Auclu9kt4A7J3+NH+v646CIx+G+4DJHLWC9qA0Gn2n/o76bzm7P0EucT0eYRwF7DPXzeV3LCj9yiE03XOX2nDt/uopk23pTLogw5iiPOxm99YZjwD7hSLSoQopmrCPZBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-032fc5fe-6cb3-46a9-b0ce-1bb98b48351b","name":"release-032fc5fe-6cb3-46a9-b0ce-1bb98b48351b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dab741d4-7995-4b0c-b1bf-91605542b07c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182507187246462663812083839238706889102893863355346394259238996527440958556235280071897976923772243147737586261766502867870545520284923155794368154319276955336205835893404960212723819807910571991935179855076269749300573065879291022538342869332315276215298606960914016383112338013196778825167194457838105208171645144596228996326490","osProfile":{"computerName":"jianyunt2"},"vmId":"426fc5bf-8699-4eb0-bb1c-a986440804b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2NpfDhDuK0W0ECjhQbpcem9ePqnEQa7Dkjalm+S0USRIQfEzxdtwjMFKa5LVGscXo4v3OSiM2AzldrFY1h13WTUyQPiwjkrw3UCRGcXsNmvyu7dXjNbkYdEsxbIFSj1fldEVvdPWCBQcka9jdcOlwXZUdtUpfRMD3+2w52TxUihPUTc/G4PS9W3TBN4wBZXeLpzAHulDN9qqfAgad6q61u22atuSv1hfBSk4SIXTShM+pOXtpLfVj67i39zGlgi+oU86mSmmKvshYa1h6Ixfosiwi695CfrPO6jkhi7m5QOfuhzm/shx2umA+TQDtUBUY+CYk5ktJbUotLKouOKuZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d718d8e5-bfac-4c7b-9b49-787f1f041ebd","name":"release-d718d8e5-bfac-4c7b-9b49-787f1f041ebd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"98ddec13-9d1c-4fd0-91e7-c91df8d67e09","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187235918023867583398266269935325502825529932368241135832863777411621367999348501255621829725348883504352021392613443956321259692475221507793125545511107028618648807339852986802669577403616635976283903762033276845906117855541926926477518765667463540551305505886292458764480971197701690852061355483867413926037317717816005722051625362305987198076942523234874176316527242603962939869450","osProfile":{"computerName":"jianyunt2"},"vmId":"fcc96820-1dfc-4702-a69d-b248bd794333","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDHN9bIQdKbexshfolKh79DM9w6DEtKcpXtd0YbjW+8GJAz+CfSYj6bMBIwsnW8aXlNWCSVmDjXEXB8vOWhBRMFLlKrK2AYutsO2Fz9k1HM1mFJR9+cXB8HbeX/M1/N9/mrpbNUWA9F09smsuhIyyWeREN0HByjTP8QhIjeBXC6QeuS2B1SlI00U2bqDcV+LxaBOUWGyzVNoCJwuH3yeaU/KR6oZDAts/+gWR+uuQn/mkbKlLf+EVGAZ/pYeULqN79Fe7Xk4u8PrxeWvP3veUlcYhdHOaV2aX8xorD2b1T0MfUJtiaATvOvkCTvS6y5IEzSUubHA64yQnD029R4jqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac2fac99-1983-45ae-8d73-ee4df4fe0b6c","name":"release-ac2fac99-1983-45ae-8d73-ee4df4fe0b6c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7c579618-6a19-4173-9de7-e2d879894ca9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185503377454538923461978049198150846605501147849183987093964169636352440537051422211574172978619477882706814036517588751680293693215356316684655103034736745268197606903488777582304934235359751803144641459991148728744778442881356684964912775186818201510614714756397518218916613553184578544002919367797386734169296654370998458099351956781355862657254347187","osProfile":{"computerName":"jianyunt2"},"vmId":"3a482b08-a10d-420e-bf66-671479250ce9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxyFWdUDNfz6IZL/NKg8mPzVSWiuGimkAZg+dE+FUykqJUPyKKwTwEXSWv5E+112R5wKd7/bSIc2KlbnnhG0d81pNDfrRg0aOeIhjxzEJEMfReblDZo7hrKWmnUnNTBFRrBVW+dtIUy+vJNM2VzidHSE5UDU73n+Yr0gyu61gAzaIsqnOXhIEq7t7fDahLXmkwt1/y06Qs49v/LXhDwG23uW9TUbe3A1el8MLobz/M3THBUwHrUwifaf5KF/t2H1eMMFgWfBy5E8zeuJ99ZcTrj+TfUbI2ioU739dwMPBPBqFd9UIUmUXGrNV/GK3KaMD2i3qt0ErEK1geOTdUhOdSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-163e98b9-cee3-4f36-ad77-451fdf9c506c","name":"release-163e98b9-cee3-4f36-ad77-451fdf9c506c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b7f512f6-7c66-4fde-a198-db5644ec1d75","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41899129434894875165687218637788393532630764219157819462568209945877715429820723229204323773158451409673196276148651591526087780261405332953269842378885420041562114488039610645778301395655672650822617475958911152354447556287641801330713897714541763622337354462353991186447339351189722017537537047949871172355931046556294671531657814850248971928768083799700595967449922633780053318608","osProfile":{"computerName":"jianyunt2"},"vmId":"03d59ad3-525b-47bd-b74b-b2dd352cb328","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyXXzvohCjdLQU++AUbNRse600SDGWfOFB7EGwHB0XTdQe+zH01tkOVpENm18MPOBnVxD3L347fLpDVH4hhgPS+zhcI1lpqvySi00mxpMPnEKhKjdN/7Zo7iX728QitsfTIc60zoqF6WpKNyXjrwSVyvUuu4sBO9/4F0G+YNcIyprJ1d2GTVcEmbw9Nc+Zrofwfr8RjMCQ9oBcxP0Q6QXMMy6QFjHd5GJK5i6hk3GWZgATBHjV2CCMrdVIfaSvh/1943ggJqDvrQnx7Glp641vCjGwtX7QCxYlVH5RPKOLyY1xj6tq6EfduraH/fRbCCrKBpDrgW94S16lBqzmQIeTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7b8aecb0-5dc9-4286-9337-17e920d05bb4","name":"release-7b8aecb0-5dc9-4286-9337-17e920d05bb4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6a85c10a-613f-4ec6-a3b4-95664f0bde5c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418630499786878820635624781214959784552867188336094608116423775335988350939911547801244067048312317141397954044955396411520649560766842448406752238561162597896210469530937882752684533449606994225853126598569378412594309554741428548717897445463536182063487137112413546779074618235795417465322385056015517381296204238681823983356108047735582817559724621","osProfile":{"computerName":"jianyunt2"},"vmId":"43e6c719-de25-4fb6-a6bb-415e7fd393e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqiEYNtz4QwfpC9XkdQ+0A2v3jq5RxpS3fYXJE5c71J5BawvfXG7VwiFKH6pt1I0wxXI3Rqldm8mnmDBpcmbCvjufvKBpumK+grV5J3yMMaK3t1WqAEgoubzBMz0E6GfYgLSRF8yxGyDdn5AInNCFAHhKxbl8nxDRdGtVtfwnhv8MY4hs4uomqP1Obe4IpiwS53VwWrGfdkl7b2I+hR0eyebIhlyJW+WRA3+tQG+RrOVF/Q8fY/EyOvamHWfU2U+0SaYSknNrK+kiC9EsKigHFA1qNuVuZyfG4VpzktB42jAZb93zt1FUdn2wAcRR+LXByKMTygERIFY8CbYD78AOWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-55f73771-3224-434d-8a94-dbb0f7e8cd07","name":"release-55f73771-3224-434d-8a94-dbb0f7e8cd07","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"72ca4c62-be97-4cc4-9850-1a17a3a59799","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41857759066164584144769246611758922364259396666449056801700490299702403629984327605612857117325911757082142665046479102204359653604644965639155663656421029914758604141130078915501070772933561233092166475953610765538328317471530181121447167958025294219229674322491999103866837011126733369875352374806447544587687739984326795668894676935966048832734495212244119201844925","osProfile":{"computerName":"jianyunt2"},"vmId":"c4e4b116-00e1-44b5-aae1-6261c40d7ff9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5nTn5upie2swIQDgPJSIf0ZhkfssG6E3/UhHpGx1egNxJN6BuhBFaFpAqCpByeYhNYiPaKt49vvu0PoN7cOBzKX/BPfVCFzlVz074CQFNv+Fjx+thWEKtZtOb1s4fG6fwrx/VPe8KBFKB1aBdzo2HhKZ61u/9qbbF5542fBA1Nm8QVmp6e9U4f95Ww8ezK0efTYC1cMlmqgZl9N14jPiltb1+k10/ON9HKz2pdiBCVDvJOQ82Tg+icEDNL8Gd7kxPIaECoxxKw0PhWii0P2PfV3sWUvRA7XaG/epa++tiiLdbfXltFwf3SjF47wZg6OfUuVlD/Psk6vhtZKMiq0RmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-50acd335-896f-4dd2-9c92-3fc47efe3645","name":"release-50acd335-896f-4dd2-9c92-3fc47efe3645","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c157e0d2-c7c1-447d-bf77-ac27dbe9286f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184097727368183051241969319642718317935323285971719054361553324047577736688176322859889666261567340963010637393116466683382137484633083179139677346999464869237252474960960048885983936564993698174568627545597224983214142843743302116505248302971101754492748231998370","osProfile":{"computerName":"jianyunt2"},"vmId":"0024b970-336c-47dc-95af-f2d964ea09d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0KwvvnJiJesHU+v/q6RZzrcy0yxw8TqwyzSwmq7WWtVJoET3DPjE2SlRHY7r8HN5ZqMt7UokxJljDnsFY9FkfBXKAx4NB3ZwS2L4j13PEwVQnVsqetpzqlP7/TdOIDwAqY2I/jwoauhEwJwT4T+185POdQIlzgMAbEuTxmXwBpgnX9MjhAonrSWegtmqYFRxYB5MkaSFVRy35QwSugavWo4pC2c6p12KqAZX6Zjr/ucQzbpMSUbRx4YCHEG68mGLRjVkxXT5WIPeLe5fbk2xR3AeZhUFM+OeFmV3zSVs6dCAOrHjAQVYYFLs8ZLpee902KYE0mnlEQCQzFWVYSTvGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a91171a5-0dc5-47cd-ac00-64dee8f46e95","name":"release-a91171a5-0dc5-47cd-ac00-64dee8f46e95","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fe2f7819-57c2-40f5-a9bd-ba32be082a16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41864928745618194144373546307606328752686686440787104561660444599650892141276854162429049465267239903782630737536782188333491955888760748224692973134526288501530489805416992253536448833844192164181713294472127598253845853163881427623302758296493476211554475638043253355759224144556","osProfile":{"computerName":"jianyunt2"},"vmId":"4370df58-4ad0-4a99-bdff-365c36f15244","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0fBR79fA17x7l7sNdZ6mtEGx2HhuB8lD6WWIzezian2SP2EDm5yp9AcnXuvHXvLBOxnBlchgvxCBh/5HW8z9C56eSVmwXuwajEOO0mn4Qu8hFTkM0bNP22mWW5lQUFDulvUqaX0cy6h5seBC881DpjOomAeULrJNP6SmiWsxWgaL2LVa6s5lqwOLWKjkLGHljQmnL97BEfE12GuXUdzHVAtc3yZAZtnXHdKGdC1UR1gqdZfx8a83PAZDvj2nnvX/ycR0CbP58hcOANTs2jGj/jyLjBszzvPx6vT52vVioiQGljucUUzmIEdliKc/SCOyxkekZrTWT23NUX198JUSnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8b4528ac-0c71-4a91-9013-eab8a809601e","name":"release-8b4528ac-0c71-4a91-9013-eab8a809601e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"af7427a5-de1b-46ea-8bab-d58bff1d6d7c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186922203174336026296391107291710677848073365149575556756310098623602052446641404147036595169669401710731472189236303996273634562049625136770663949549655770246008373186365748287344281369726588685792015346620666026788178216285525575041299921695713028962674544056081207947677171643914875358136189573280244248902434712558424393158948166348664907611624249693150552215357","osProfile":{"computerName":"jianyunt2"},"vmId":"f2583547-416a-4e8d-83c3-cdfb4edc6e6d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvpSgHGWigsGLWDVWA6ia6VMI4BERiPGq3UmCIzjk2dkwvFxSp/nd+j0QkHgYapDl9h3GgRIxmiYVdz0pOZfRVXBNgDNy3094k77KLVQFktin+QNya/lKiXbQL9Q7agu80gzn7n/2bhH7RuO0mboIo3XNo5DHcyw0PT2Zi/45Kczg0Zv+t74/jnPWJ1oP+kf+IpQmJxlmID/kwM+s3Lo2LSJ2tWAfDfKldIX5ZWrrt07MJxIxtRwtZTGZw4C7XYl4jq8DL/pSAYvgQ3EXjuL7Mt7xiAXmm0F/9vxAunFW1cH0sstv6e2RdjK7Zq2a2BnNRIFhB7w4RWKltM8po1HxhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b2e191e8-291b-4dd1-a5ce-5e173f3c0b74","name":"release-b2e191e8-291b-4dd1-a5ce-5e173f3c0b74","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1f35b198-95df-434d-b2f2-005fa76ee93d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184966252126264709782398498635379875466140125229415458212771815607500234888544370234363891216109851260391606796149869783595435481769329154855561059839027733357645156201711819661774594107008688120734467329025883426347768364782880342007056707333765788800755887956046822428455134771687857478","osProfile":{"computerName":"jianyunt2"},"vmId":"5d981ec5-c8de-4ecd-9b37-273d0ab07593","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8XU8LXgLzBlW6/Rd02ufr/b80jWMlNezwuEcy4vhaculAfKn9BiW21vUcxIQhDkrH9dByKs40pTNGGpyj5eFh82YypHo5a6VOTt8rUDl9xGUyJWV0U+TEZG0/M+JTDPvIEwpSeYuph6vQki9KpKMwm5LDjBvvsOogENPX9Yg4NZOcpfbrDda0PBjo66dfI1+WgEFmahuYkmSYp3z6/1yy/Gh6gdtW0+zt6v96WAgI4fH8owSFaNDCaqz21oRp90aUNo9MClaLs5zPIJDTrG+6zNtfgMZA0UgAI5n78u24Y4/qgHFVj6a/yzmyk2qoeI5jrtg7GIBGXyo9GpHp3oPRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-06e966f0-1bc1-46b2-8561-466e8a826ffd","name":"release-06e966f0-1bc1-46b2-8561-466e8a826ffd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a7c62eaa-61ef-4592-b23a-8c48f8a7d8c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181145869270145635487648048751220924929159093194553583308484960789279774758644848428950869469447999894993422569858114318376794023559327169703940109196694116652834732823643023439279557877857443622417126122696622313634332260675471813804217796895474912688606927737076124886488141183351464942433226578250","osProfile":{"computerName":"jianyunt2"},"vmId":"e68a9611-08bf-45bb-a4b0-3b09b3d2e434","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu/DQvVlNrF9Jba15GyRSWOiHKzU1aQNsliqT3csthwEW+8KpRCwAQXAVaiYCnDbdIGosmOGyhtMVvbpSCQs3IlL93kIh/EiLewenPqw3Al5AjW0AxmWDj5R3gwKNPffe2YUqj277vjTBo0jPx2m5IPMbV5hhBk5PkysnZHQvbIBL01BPWM31eySFVEdBA5ABEmqODWQjw3lug9jyNfE7+UI+MHTp3iDOs3Ee/t3cfxDribSGI7JZ+3yjcSw9v90Qo9v3UCJGXQd0Cf6xFvZps3VVavflYsE9rZxkFPMB7+0gI8SI6hswYJ8MMI3JSrZUArh4R/mEqqSsEh8fOn79GQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-52e0e85e-e4cf-4744-bc42-be4fed8b5930","name":"release-52e0e85e-e4cf-4744-bc42-be4fed8b5930","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c538879c-e384-49c1-bbbd-7eda90fc79c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418455194834070575079836090804694453794396559332801732228767959996846779235086822012807023472593254081439557556025252636417602192854324402156115188916934461248882720434199587528251330851733219716678778461928136835653677423730786574758161413645189261451410206884698450757778122211064362952613432754000747126332835578981946917","osProfile":{"computerName":"jianyunt2"},"vmId":"5debe63b-4a4a-49bb-ac7c-1a5091ba63c7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxLqIEfmR4nA46bgV2J0P21Q1+aYNQsrSHPhi2tmUdCMKEjZsaDivbDBWz7yPrhilV6o1Pn3HoGrS4TYAdECX73SjJSmk10lWDx1jFRup1ZfMsej0S1c/bbfYlkXLpiqbNpQyEA0BQjgz7k0SgmVKQv6VHF2O1JmATY9KKGl1gW0hHlWMPdp93tm+GiFqeDju8tMa6dfYjE3KritJmgwoxkeYYX21G1+ZKIL/Yz1XmPgcxs0rlTubPmteN2u6MS8DXQfFQxq7alYM+72QuEoDagp4cDaqt/TBXFGDetKaKHSc6lGbF8xoe+kMnWOBl+3ZXUhDE/SIgOEQosOEEkHGIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5a30ff87-0273-4019-8dd7-56c4b6d476c2","name":"release-5a30ff87-0273-4019-8dd7-56c4b6d476c2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d853fcf5-3e43-40f5-af55-5f8756c24fff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418549041318984314564212658744151232354430598590904600872645879136469646284586897649087777401053121871192013834371526654645241291266013801343671805967532493413142876325792397168112430511044852358948246845524645010473231462275143991930573199211378318416587439215192085267","osProfile":{"computerName":"jianyunt2"},"vmId":"55dcc9da-8c16-412f-85fe-b60682d872d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuCF7s2vl6nxzvlNvQflM6fSP4zm7KF+ypvjXnYdgxwwm0WXT/aSOVMKexB32klEYh/Z2t8KHQ3gNBFi1304DOKY/nskWucghbYhXmW2bBUdz7R35oL9QOU1CiEcKDh2nEO/UVN5l3oHrHQoMNruNrTzOhHVGEVJg4OsEbP0VU5UpLeInCe+fYKmUHnzBeaq/gNn6OZqZIvl++tS04wNisbncuIwXMGBBOuwsLlJitsqrykUQRWpg/FcRYba9eJ3akcQ5yq9lFOnJCzalgYJ7zAM9en+DkgAz99uD3UULUG4kRT8Jk28LIZ8JoYSuOu5V9c9kkV4jGDXNdQwjNHUmmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fc4d9b1c-894d-4e5a-ae07-ce25d3c56f12","name":"release-fc4d9b1c-894d-4e5a-ae07-ce25d3c56f12","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6dd1469b-bdbd-4619-808f-f8d78ba84a25","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41829715494897793103589899172989913970983069104350135260383856259152879404009506082534491178259677643933274495089419367724296663115548744854365758803193893796501007685416813589129140328884856926110834989354725133470438081419554863312518991159055024834791091951177442725284370014044157761548746376184252994879520105722799688535941417080257425277409863812057348958581474","osProfile":{"computerName":"jianyunt2"},"vmId":"8be49a46-5e4b-4562-b39b-3cbe043dbd08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqesxRAPVzTW1QyYDXy5hMB1nqV4TAfdsHO4k8VenaTs3Dz0TiKjUs5p4qcjb/DkUqxSGXuV0R7Ju7BSzz5gYKotufQJMTPAy4006xpD2xNBKjJl7zLQJhO8/jn1W62orItLPXs22WgsnlAaRNV4CY+bWWkbti/9XBoPwgqz8bDtNZzUGReKlwxFsNB5HsIEBm3e+YS23YlYOmSH3NMWtCHyiixBToyq/95foi51J9H4RiBIq5Z7aDMkm/D4vnu+PRYD3tqZaFejkk6m1zdjlLBlgPWUUlKcdZlDICX1n4xlPy7z9KDgkQYIxPGTUd0M0ivVvtNdr1nke6zEzAhS/nQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ef30f313-2f21-4470-aecd-3dab0a8fc962","name":"release-ef30f313-2f21-4470-aecd-3dab0a8fc962","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fe360853-cfd9-490b-86f9-6c0ccf0871d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181542587158221589534416303659407859372561756391931000973120963165497544808833293318971945538131919507683794356461933199475588631990577009103914042629877332576885325460986787406985981356552212668893818262243728246500554567746462659556585255114198459168773789422296944320617562857321644365182390643734947466010641735253721351643","osProfile":{"computerName":"jianyunt2"},"vmId":"75ff3330-849e-4810-8c5c-1a94097d5676","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtmFr10bRMO8i9OSxwHKDcryk1RVS7ArxNbLj90no/E1RU8P5ofMJSPoSi3A/ysbT/M5GuobXWXvS3cBba52PvNOyqTV7R/tSFxOXXTE0qyb3GOpxXyvZllUYBmyp8LmzWiHEJwcCaRRFG8JvYm84Os6eqGTPtkOltvNd5QBCcPa3KEz7MqR6oTvgA2UivIjPSvRls/HJaCRivbH63LXdCPG1PstXZ4xLGfNIGy4gD9vv5ySvDXdO9+fERfLIJbJPinrh7+lIF0xrzupQDgwn6aOj9Hx1ySX49HkMYJXhmwbFWBExKMfDntPJZx0ZhFYpWhCj0fsY+YgUPOAsgAwmQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e86be006-5cae-4dd3-bffb-834c4deec731","name":"release-e86be006-5cae-4dd3-bffb-834c4deec731","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26d6e528-26f3-4f3d-967c-67e811bdf376","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41835507409628298146077550068019771794015271597533815229496747428411187959298617111651857721271339346546203099891355783892672252090906273939233263037710563411304298852227788569038405945266722212824673784625978789589321084918268269990682730199155237036765062713901632394841730427274421755673359384657313234388799496486932302","osProfile":{"computerName":"jianyunt2"},"vmId":"114266ca-2fbf-47b0-be35-edf571a437ca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuFqr30GHD2qj6gpgUnPlNv/Qi4bwhpS2cdjozqy4qCFcQ2s2wWREKG5U5N7gy69dbisZhy9tLxKgH2ELCUcBcZ5ZIwEhfl1aUmeRDBfxbOZ7YNOTSGMsKVWmMyE5AeLWY459PA39OENJRgXn4UF8z3VIz3Dhf0nui/BOIps0sl+X65d47o9yUsoW65AgV+0VU3AMMYfRWvru1dM+E2l3wyp9hmyXtdh4L+6/oS9+9gPBjuP/S7VODAdu8xaFaaVNtxffREpTXyhoq9VkyU14bpVwrXjVkaoiUhJFmseXpq0AuH7IZjLHZilq6ke54K2Z33VCVl/zYv7BBsAON1V6iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-444bca50-e507-49d6-95fc-91e360ab39db","name":"release-444bca50-e507-49d6-95fc-91e360ab39db","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6de5f931-4667-49ac-bd09-03b5091d8eb7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845223353251961718455717492633645562457592926552669149960409426384572333563784200152879554097601652622491849924404982125416674595297025227458403663225624706048745287341351747321082373467589990411008476662344538410676994379160384017658728397095306891853207760566665528198292372463203868667636575314343425928732127212419237116483572377750120476433","osProfile":{"computerName":"jianyunt2"},"vmId":"aff1d9a7-9354-434f-9e8e-9f1fc77397d4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAysqhJHPO+8T2S7PYKgZN7+FKgnDnkoROf6Jy0gtaAciiSaNudYRcgD0IhRjncnoQMo3aElzWzfj1VIs+9YvVmGj7ujpwXNtKxSwPABq43JNXHb8RDf9U+NDlPZDf/0CdCGBYhNDTfTteI1Q5mmP/oJjeLW9/QcgUJ95wyIUyoWfRap8NAz3+0Vn4JZmN/zGo/0fIi3XqxbUF5CYZBfXGMbLhNwFQdP6zAEWInr0vBRc5FnFiFoFPb5bKBrr76ag9diuV//0I0KyL8e7nctP3TQL0xb6HhXd/7pijbZFzCWxM/4dD/DFnYBJOStdHwy1Lt6edxX4HhRMPhyogxJmqqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f7407dbf-9025-41eb-a5c9-0129bc79dfd9","name":"release-f7407dbf-9025-41eb-a5c9-0129bc79dfd9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c80a0c2b-f8e3-4cd9-b17b-3a86a194412e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182916604617642955438072492807711554155503545429901609504980036001406691214624257088948939997439261299859017695490373613368370264325709488691283673606672768454511705831965851795193936436365922121896078034613384097123951991207870170945043276658540821857225578911883034767292942042155914238961531532889974789397","osProfile":{"computerName":"jianyunt2"},"vmId":"01c838d0-77a0-43df-bdc3-88c378a6e81d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4DIxXaTDRmHN1w/4E5ljtxO2+PSjYp8jK9ErrbN7JlJyAQVljZXeLz/W5PfIz4bSPlL0bRQpJxMkhX9KtHl3V7TydzqoLp0bRcR9KJZkXZBN7UItr4/Luvssnhwtk4LtVxcYzEdmZeBZtyZmrioUMSYX3YZGrj9n87xV2GWCxVdQotw4UZ0CY93UlH8izAaQrhl2mPdt0VKdypNKgfSMMQntFD2o4kuSmxi+kVDObMyw++Z4v8LlwJkWb1PSQyBrCv+pD7asN0CDz9z2wgsPlG6KgcwrjLD/Ybm/V6ugHuetyJPo830SUJIE6zjgSdvD73BEwLlP4Li2K912q6JtfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6fdd5cea-d06a-4cf6-8978-8e06333053d5","name":"release-6fdd5cea-d06a-4cf6-8978-8e06333053d5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"055f3bea-1720-4d82-98ab-3c094084a21c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418845035537820722245733077369686703559347634522767981539481148571478081821052148840997813647220966442442548352740710061684658778382695605474048862015571095227969872677751248042093772165451837778409748787686241866528400547736084690811614549274641593774791706871586931592993818590104488047177534487551558408442249278313876669279130930710449287369026","osProfile":{"computerName":"jianyunt2"},"vmId":"c28b4948-f52e-4053-b5c8-6a294c509fbc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtr21z0sFXv427b0rPIM4Ed1Ars+F9DN2xEST48Ye1HPTnfapMuss7TQ0lWhvCFmFmhVPAQ8bwa+AN8IHRzMClPBwAkzooFlT/LV70ZvL4RQLyoPfbo0z2oWSHsc2wHoO748bcKrJ+1YjHK+qIvg3iZcE0nwTsfmb/Q3yez/0Y9TSOT+0SBgl+2ItAufQEGbm7xdOTelwbIJgDw9fEkkcsTfdNMxxVZH4G1vh/KvIlPO/wqbkaKkSz/LbySKvYDOBdtmSm3C7yBt7KjT02R/4Q2qYg5CXRJdurhV8FN2FaFQtvLxIqq4N8CLuLgykHKIT0ZiUU6+JuGhdt8q305EiXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-df3c8201-b62c-461d-bc35-a565b2744a7b","name":"release-df3c8201-b62c-461d-bc35-a565b2744a7b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"71260a4d-e3e4-42a1-8f74-999cff8cdfa5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181066880402391408262419080507628461686846343986860646393583977666867219852757627557543859363546843041926355273211270700565134171818457941586679970064759480999595766761578237035401352496543790643099567387708918122068294334770185745700969750399588696503382802462917545531895662291563172824986366384576089387475503270427686602884433901","osProfile":{"computerName":"jianyunt2"},"vmId":"92d1fdb0-5fb1-4097-8ed0-49c0fd56c13b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw3m4TlaZXIHqHMe5YvwcFwVS0naLx+nJhlxrnh16yrJK4Wa4ghIrRdZpp/KKgmP9oV7X63Dr4MkJ1ucm4PMe0sL5QQwTCsP4VhdkD84dNflypvhB/AhXkeQUkW2baLrkW2PN+K3ryldnw2c6OB+Ej0u/m4BNK8xlgysFLXRoeZkQ5pFHROZxF96IgeOHcsNdcCTBWwqXvl4Qdf1/fhuMl2KfHVRhxiyktmPy2bNrcmg4W1B2hNrB5mF/D4/YIrtYzhKsAb6Kh/32hi98Hu1nAjM4UleVUqCMV4dy55uCgLIuS3wPK10nSiPLYqjYKDJ3ym6/7CbqCOUD63dwcI7niwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9240dd39-a3eb-4911-a0e3-f5640635bfa4","name":"release-9240dd39-a3eb-4911-a0e3-f5640635bfa4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2437d865-505d-456d-85b5-07082c293db2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418754707272582270335415977709818750856997859790387356286662986807132714613332686106354814068178936767963920398452914172278671122652598989910956373255521666771559211926921702111818826618737076434551535583278181228954213358671290295359605985415081626045838874102734991068762374195357","osProfile":{"computerName":"jianyunt2"},"vmId":"82ba8a4e-c74e-4e41-bf26-1a6e3c58484f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqrGYUcYNsq+X1/cLwZD+JYFj4BaC1qQmKm2cvGAV9tO9STjRTTwhu6ZMFTV0hgCVuyNufa6CnvZ1kcsN4RRB96YwjqKSmR8jS1jqsiWNHLlnC/64TFVjl7xsBEGKvb5pWRkJynVeUuNLxlazLAH1zx2L1aEwyjdXCioQ/6U0qPapeK1jEHTiNuO5zu9gXip1irGu2HtzOw/KCvBCPAYE2qe87qb3pcwSV1gP3r1hZUZY3khfpaAqMjXNo+pWm5VukcHTdddLTlfepOAxL1e3lq1Ozb4dH0B5xhIf7f4T+h28xEk40Y2xZTHsgorRb1xYPHp0FMjI7+UXk4QzvqSaQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5d38deec-1329-41e2-bc33-1ffe7dadf93b","name":"release-5d38deec-1329-41e2-bc33-1ffe7dadf93b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e9677fa-1e49-46b0-982c-6ff588fcd2c4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895665215826018498125274389865241948350258527311549318685680768095182376661584297200400444943005655480371671648266269091539778195611816971186628581508144409211994751647587424198378042597989161922298371744894218128811235533822151130252771025413590189088036838866243845435154255609114652091456242340706228694785287279883374036","osProfile":{"computerName":"jianyunt2"},"vmId":"8ed597df-516d-4506-9bff-b5f0b5680f6e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApWrxZr3SVv0nGxwLtwEBITvAHtlkVi6K7Wq+rLYx8s5iLeDzyd5gM0od2Ow1Q29IhEhyN890SC8r7BtgMsFTqKNmgRDqKZ4W1fuAcYSF36YIOJRWL8fWwZDFHiUDWqlXUgbqZtyMjWR3QKaDAQLKIESCgxG71mQTaxgJLoecPiDzxiZx4vaNvIXhYMBudAQyIxgFfh9gTkWUUEhrW+76rPggDZ/zm7SerBvJ6WyU8A8YscPA0Ee4rNh6j4cnbgzznX7fnW98hpQDC8DMpxs65WtjeHBm+v0qihdc5W2zEE4UKYLhwoNJz7vUuXUScL48R9+U8N2cSBzV9D+nuuNGPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-50dc06fb-5909-4e9d-a88b-88fbe7b4a6b0","name":"release-50dc06fb-5909-4e9d-a88b-88fbe7b4a6b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"077eb6ac-44c7-4aa7-b877-4089494bd034","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41899795827905272455831622702122467936463326234758563215491649787479464202560418782750126638446871780180039885101672476497679212564939674874009170203539152043631752608607069274249156682233214892344925225187712072424172170581798849050429803112438708888569030562136262933681726994196467988209345237646848901893105522207114358125496020291479402749119227","osProfile":{"computerName":"jianyunt2"},"vmId":"643d7c95-7ede-4c9d-9871-ec29a636bab8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4B5HfL3AARqZUoqokJ8qKzJyVbLtuTo07sRw69DneGGJQ4rLRTCmohblpQrqbUwxO6MQI2J+y3631mFc7P8Jsqak+wvtPJFcTm2Rkz0pEOZ1hS+81UWLoGkha52Z5+l9KvOvxnXztW0LiTR1grOTZyCtfvekJlfg8F6rcNtpH5xpZvkzL9EHlg0Qhj8/ZsLUv6i/TsUaJmeI0SEqxiKS/snEUWV+YYTwft/T1RiAZih0+8vTvZtHeYiFV2rzAFNfATB+wSiCA/506OLRSnnxjP+KjuXvcHq8W3GsB/lssLr9E0n1dCQrqv2ZJNoq//WmulKOp6rsnhUUYpX63B4o4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b4e88040-64d9-4fa1-98bc-596dc58ff51c","name":"release-b4e88040-64d9-4fa1-98bc-596dc58ff51c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"97dcd48b-0266-4150-b34d-6231c5e6f2d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184805122938737221911828948307498280818831833563669485270503937322995185616742450264638455583551045177178248979732934233932961967967964285871439008141182563488639907189159995712101778860899525788192193269482685745220395360594510231360117538881618191633226341314085661235631875181526192190745520657516672905270648932746150511957573903","osProfile":{"computerName":"jianyunt2"},"vmId":"534bd696-128a-4839-8d86-9b56887c56f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs+/M4U3luuBrfHXQ/ujwlII/hmo/k2dl4m/NuKFUUd6GUC/2hQZCJP+Itj4TcALkiY/KglXiOWxNJLHk9eWPZQW3OJYU2Xilh5pmFi41IyEsOwoM0buhNA/uyx1khL1H595e3BNRgxel/8AbxkTqMK9k7YXQPLL92IWyZsmIq+QdBaQ1jbvIeNl6t7qcUuFpg82q0YVdpTI+84VdvE1jEpcWeOlGpPm/Vb1m/1DHwA+sVsGXMtpyd21rK3nlHVNxJLEKv5laqG5J/EYCjZ/nvxZsxXXDLsSpx8MEk8O4ybtBU9eTqDuWkQJeuZrL+JzqRlJHJ5UzKV5tLKGnRrN6MwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-831b328a-4528-4f61-addf-5d7a5144ba5c","name":"release-831b328a-4528-4f61-addf-5d7a5144ba5c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0291c93c-8e6f-46e8-827e-9c94811aab9c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41899802406367730397147048578678266954218859801611244513899835328695620542876872339832969252672876542443207863463834365378463497656598384475720996638132710977756129828347679217548563434744277405757780825772880720254195025137320866506988477889986171658669758889882849956418822413792887130113","osProfile":{"computerName":"jianyunt2"},"vmId":"5a1541bc-89a3-42aa-b7d3-e574d1f8efb4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwjmVsJ8GWWirI5JOVBLczEogbHMbyYjjXQ9j0HA1qPu8jiakhbtDIjA4PGhakjqUbIRReFn6ph0IC59zqpsViDSgVfAWnAX3LXHnnYccKSTpTbnkyMQ6hce6ZxEvHSDv2xqxnoqXLX3YLNfc6n64ZQZge2FBVzH+RIF10b74SjtzbS0Oc+ipJvtxS1nHXi1WvKr5AV6L6XCSV4TfSx9AEvq8CvC7v9uPd67aKUxC1VEfMTq2ZI9jAXy9UqvU6yx5IT+hUBOxtWzYlb4o3atlQPenDuKcsjMIBsSw2uE9FEYBbA2XLeW1w1ZtA6KTY2gvBqyH4gQQSFtfc7YLyUTtKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4a1b127d-1c68-42d4-b94f-65ed8ab58ed4","name":"release-4a1b127d-1c68-42d4-b94f-65ed8ab58ed4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c1370dd2-b765-42a5-ad6f-b5116b519e87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183445867486413191674388082649306115308276711219351639094685361568810188618672741301972483340276324681072233432847648840678388076694327935768847014208946843934958131694088340517651722548016643699578810419674592024867235239192418391096450885597772698145882755283131998448407573861375463225727450878751804083078707892845489839149767778442559819205382984310852212822","osProfile":{"computerName":"jianyunt2"},"vmId":"a3630ce3-16bc-4cf8-b00b-f20bc8d657f9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtfZoIGwKicX5sNDSsmJeko6jwvG5l0xtJdS+mD+2glwV260BsuGBkdRxGWTD7C8EW7zjmLyj7FPq+z8DshwP1irc6MsF6Hpa3d0rT15j7ZG8KhLFQzcXsm0Eb7/bcLAUW9UiUok4PG9LEWMFnPQ5GwuSPnMENxOGgjeOMInJO/Gx1DJCthH9+RgGKlPNJmHNpLKUtELYyA14YXfX+frjIaTas+CRc8Ix7hHpmnvUWAkcsf3mFLh/g4osAsMPgOaVUVzXe27ndFJDbCWVhjrPhL1Y1joIpSQqkzM4U+V7c1zdl6Zysfr5T4YmEdaGU1yGYsA6+zNU5aj5yuJNzKzLvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2d4bd85b-08f1-42b8-a33a-cbcab9089ddb","name":"release-2d4bd85b-08f1-42b8-a33a-cbcab9089ddb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3206c815-29a2-4231-8b15-21b85d995a76","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41882231550544415593959198279744511338742728037819674494363779112676198740893041808281365503234329185861210862109490484545680657037709780534212697967105181414651383066484651682273677644582044246809837746691097981297473186955383779844267881640468514763061686716417820380133840647738580293354471936644669429109731544683525261","osProfile":{"computerName":"jianyunt2"},"vmId":"51caf780-7c31-497d-8068-95edd05bb02c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsT7UwO080w13+YHbea/4awHttPNBAwA8cpsih7Hf5yPGp8omo6PH3jUxl/zTVn6Rpj/+F6asZQEqN6QX+UigYrWY7ABYsYHFLeEVwwsninSXWZBuKZfH81/4wgTqiBIN0KK1DLnUTBxry0QLE0JbkiIvtxNg+wdO6rxv9deUzoMDE+7f+jGx9wo6rKAQWWKoq6YChV8XMRem1lQmaKAD8OonDQof2kJwryakaWY7DgP8iPCXfQ538gbVjN/R3BKyT+FJTHT/ZlR18DdRhZkgjXCJgGplxsJ46sKIfzivUF4o5j5escmkycwJCcF8n+DNloZ6UcaYH53jjPZ/SeimrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-472d391c-e5b4-4c96-9b60-d45f0c08bf62","name":"release-472d391c-e5b4-4c96-9b60-d45f0c08bf62","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d5932fc9-f8dc-440e-ad96-111d49ba2e53","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41862147165661824066744623846904051814139746745412623346763296939940452315145183145201079771479799221027133378997174329967930384492882464462773768257895106661461469232727079618394360932845189754830824069315850041431366327832385782746699558284594531878682885012366074468211174084125237691340513582","osProfile":{"computerName":"jianyunt2"},"vmId":"074ea394-3739-4071-b77b-ec8dcfc536ae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApS08wZyGuyRNjWP8I1wWGDK5EDngCTVWK91/1RjS+zJ23MoOwXdz/yjtWe8cYUrIliLgbeLaGMAjxWImnZH3Lw45sXnQMgMoXDaPv6BfK4VQcreocyC7GTrrUd9iSVmRgSuvYOVbHPlWPXpS+X+lO40zSEOD4SP3bLNFSCf4TzPcLuyL+Ud1Ius7Z3IcAhRibyE+iozHCJ1lEWOtd78plxk0/But9eUMPnhcB2u7Ok78BkhpviMyxJvP/yagY3oIVIeUN0OZt1h7B2cZrpPmX1jPM9rF1eVmM+MREObPBgPxG1oDA1jPmFbJ/MLnXH7b1g9LfRnERbk/xiFKY+mp+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1019af7c-79a5-41af-802b-4bbee95585d6","name":"release-1019af7c-79a5-41af-802b-4bbee95585d6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b1a9d4e1-7b3f-4f11-afa8-5f4fcaf17d10","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41829277320265631247055745535786472062351307349426626860461051014241960666294263742026946124185077392423967211668129155301301329117283992109967624462878371607804877522237768575455137131787439179735055474219148632966425638187333883330929098063992935483750857750148451137122702639632918456179132944183402956607555184761866629467616957567936378306984838536613340492505370860110376474","osProfile":{"computerName":"jianyunt2"},"vmId":"7902b32a-0cc0-48cb-b716-972c5d26ae46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvqj6I+WuWEkiBItIk/gAQqf5YK6BXKkf7qGpy7q6WyGWmikhXTsvPxSYKpF5F+UUz4I7+B/9pT/y7mj+TklRLlWjYd3W++1LQP/kclfqOL9Tn+tibI+vNm5/f/Y+eCeXKbtJgufYb9mlusdenDm4ek13XMc85XTNLUB+CY/GbUmCLpIucDf8jXXZ6kL27gfKU4YIOWPktjcWcxbKV+aNpUK63FcVVrVZ61vLuQusffuhCjXuTKhy7fTPaKvR4AdnY0LB6khBQM8l9/4/vQA3DiUx4bweWu0UP9ytLJktuy4INuJAOAXNdpFkfkO9lj12DpPFVwvwAhORIHq3A3fmQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-640f6347-18c7-4686-9c10-7532455b456c","name":"release-640f6347-18c7-4686-9c10-7532455b456c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1e62fe3c-41d1-4be7-8507-fe096dfcf9b2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184687182686086478724210759184528788422300293350448965220614023136639753970129103653989138879119623604436516640654847479364936416266848700137442472813211938593578875835360468987408232629111151424888643309222939764350928949344082664119576493470185605385981247348904439552563879381442005575237577091857689602862376058","osProfile":{"computerName":"jianyunt2"},"vmId":"8c5d933a-cf34-4262-9243-ed52efabfea3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArg3/z+W3ZLDBEn4Lu1q9PAnIABj9jeHKskUtXsN4uPiDmRYBLabbc8om79DXJRzDP6dSgWO/U5srP3/qjxepGpVti2r370WnbqQ8foofz2Zjfu+CrKjBWY9VvbAqL89GWnNbrhl6fIx3Ndof044TH9vUuLdSiLMYt3FjwxSt+18tUau99e4rw6sdvjIRSPS2cO12vTHEjkENMgaexZCJi3yNN3Os29URoTdzfJJiUoFo87M3zsrHbRAzVXfcS3NolTbnjc9U+PU3c0run393wymqx0W0nmP2JaqstTAqr8oduq78ricj4eOYOAhw2DOxHeyhi79Q42jrH57OQeYVqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-07715f48-df5d-4f73-8342-1dab928f0f1b","name":"release-07715f48-df5d-4f73-8342-1dab928f0f1b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0cec42be-416a-4f71-bf88-6fe385fa0bdb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182221692983798162304643577172271334714375879042364738571784436174163068600286025878684776215047140744729149498724454666850580334882993761982437619724454678618271439227666947262938452778498577972389076780730625527837288433077198925313738270895570419308795056114001","osProfile":{"computerName":"jianyunt2"},"vmId":"cac49328-0ca3-4a1a-b2c9-830be1fa348b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApz/aO2tVeip/G4dTuvwnNhRjy2czhAYToNyVvKt7JQ1IxsFZOWfikHIm9a51NGaBJHtK0LU5qLMYg3PBF6k5BFVTeCF1D6H+QBo6+/0N+vLdFPLmvgLDoAx0keP04vwl+ClTezItTj0RGW7E5ny38AfRMP71635ge9iUMyp38cSeGy8rf3qDOw+4Mw4pbiJNQ9YMSAv80Db7Xmgfk0IL6+dSm+vHUk2aNSyUG4kuIv4XoPTRI8b2EAp/OVWCxaGVGbloqBxyuhRnW0K71df1jdDPlMP0a55TEUK2cqsiOo9gPidwfvAQCARQukwpweHc6/xpAkOWR2A0mUlxL4Q8XQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9d84a407-53f8-407f-9f5e-9a956ec23351","name":"release-9d84a407-53f8-407f-9f5e-9a956ec23351","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"168af023-3775-4a8d-a61b-45446d599da1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41818039817834413917564080971025093553052186684314690651579156249083563972928998465244184673452504306296899121700542364677625916653709944141864173551159854036473025730435691733446557689224418344183596109927991025399156591723824939531823938316563826097144469142286384966096735976567972437399764139305345560866769760368052310","osProfile":{"computerName":"jianyunt2"},"vmId":"60aa63c8-9b36-4112-95b1-4095ca2db1f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwktJB6fRBn66/Ls9T4dZqjgl1B3PDzVyrzVvULpdcnJBy67gIE6UG+2IHg+7uCkEWNScODRh1enWF8CU06rS0byI3HSH2Jo1LkhBugiPk9R/9AMtrnOe5DFuAs8OVIA7kU+7rIFkEwodmsCP3g5v6FlKA5/TWRgIc8MFoFQ3iksIVZYrB6mZB/xCP+EDBYMHpSPAorVvanHEB4SbK6tYvHokC19I76y+4t1IE8AbzG/plKia41fMnSL89O//7M9Wkb3ovVyc3sbM37XIzpzKIXnTJegVrfmVNr4kd1WmkysGfj+36UcVWYwGGrtiTgILzMr9VgzQJzKNzNcSKnefiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f3d1cad7-7525-444e-af6f-8018356346c4","name":"release-f3d1cad7-7525-444e-af6f-8018356346c4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"27c1aca1-fff9-4489-b3f6-b39247ffcaa2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41812037083713553767209228285452070738936934886724415781758748508417512455675336763212603257851307464737492857983232472141879489182872711485233541490308742101349370125652917727530199091506837338624203850666663650960322298909276785961970482547984944346791974963047933544591348034536514382816646599","osProfile":{"computerName":"jianyunt2"},"vmId":"e2d03d4b-4f1a-4636-bc39-13fb8e0e16a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxVPvj9jNbVQ/wCkldvQ1ab6yRQzIm7kolJbrpGEEsqplR115j/zXB9KlVdxxj3qnbFFx/jJbMddiAQIpEsdaNZVn+AYhr1f0l7eJ/JvDjVQEz08aUZfJuZ8ernJ12MP8bVUorSUjxuKJHV5KN5QSpDP34VyjFsUdavdxy6T5UB16eC/d9cUKVcyO5+8BIyyXRNZVkRiRU6Q4Gfx24LOhxySDqj7oUhk7SUfzHBdd/cpEBqvS82Q7OYK+2h80+oYpO30BxPesH51L/ktozYFok6uTmL0VqjCvxt0WinBWSlnOo/xF9DB8/4MOH5Pr8F2IC79c52RWaUMsCzxaC/zEGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5394e14b-e1e8-4e26-a83e-e5b6d32a83a7","name":"release-5394e14b-e1e8-4e26-a83e-e5b6d32a83a7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5a580e20-9305-4afe-8677-3c3ff166ed06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418901374043449594447134334181228328447868778649273497422455733131185671147615407228883587276553111949923020219504262569623608879736718929808544624484134780496294746335383244852784198270126553946642549625111747046713372615237288544057550094786058993667672175153413989950146829978448569453","osProfile":{"computerName":"jianyunt2"},"vmId":"7a470efe-6968-4fb2-a0b8-3cd6ad9ad167","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvixU7bk4GS4W3aHihdbJCWZcER9VcahFWm4s79pcWB67oGSNPdsNiPbcYxYI6xN6u5mQx0ck5s3+cluGL9M09JPXkCoWvfVSl1U0f5hrkT8cT/tq6U9KO5lFP3ss1vwZBPy5+QLnzOWfU9ZFlgjeWWI4AFOUqbC+SAVnxKfkt27GCpb5Viuz3MzxJnXtgpshpTv0plZEk6X1+uxx4Zxt014TIG61Q4KrfkkjhzGoZw9vIvV9UpoFBCYuXYkuUjtLOj6IP/iYze5uv5UDEpSdZphbAlfVNFyt6QuvLnv0+W7v+6i0l+/gDaRhQTtpW7WgEXvb5tazz8e1mG1dbpN3zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0ebdbab0-08f5-4d18-91bf-8a08084af776","name":"release-0ebdbab0-08f5-4d18-91bf-8a08084af776","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1493b0b5-5b7e-42ee-b954-ff54dd5bc5b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418506822586004958320877739110538866734583111894987323892794688345529201365894232425913991749197991916115871219204249713878607639635277182358282395387653383716242167959041225425434297238571623900113841566657745720787582615407828038577271216660501736728291509411403149469895017794483853406350","osProfile":{"computerName":"jianyunt2"},"vmId":"154ec2db-4517-4e1f-8582-6da9c6983752","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAry23VDdQIIbyYlaeeHZ9flj8VmTV7+2KBOMHJMb1+UbX2tXYtAE64sfr+/fc2T/rVf1Fd/7lQO6x5oV3JszvFc+6EjMCyDURNrrFn+j6wbZTO3KhcsDFpxPlPjHKXVecOkCNE/orlgrKLDDAFKuoLJu1O+AUr2JdoUOdAW+5SXDQ5vv+v2LzvDXZ+vjPR1UgNKLpe+tWZ+v71IyDygY1JiVCEPwmKHbVKAxjaAth52hf1Qc0MnWo5zGOWefMMzTUv+4MxJRraP/Rb/Q3UPmAVHRpDkZ/U3sAkwUsSR9SJaW+Wj9S2hw14XkYIjjinsNIeZSGXO53cMiwdyu/eE+WCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-44a324b4-adb0-4a35-8f24-41c084d4a547","name":"release-44a324b4-adb0-4a35-8f24-41c084d4a547","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"01af2580-bffd-4e61-bfc0-6563cfff61f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418143413489642116328928236601733919501689843887817280860127504667299750014574610801477029206649494183298500965468165914575319567811425576329894427462455352897203352673748991842706959066443760860509197400397374079890171369515943916195914012388498933085525551020354993253988195941320696678935281987379585814950087959353523232129862606","osProfile":{"computerName":"jianyunt2"},"vmId":"22f8b507-29f2-4556-b27f-9d6d3f17c59b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1f5Ihairgdk7D5+8WskeIWbgYWoz7bvbNiJdT6lMrjO9JaGuQC+wCNH7gQkm/33+QQMxUhL5ztyiOlBVx1RbLw8Q3scTNC8FQTjx1E8MRTQj693tr6sXfJa+NnKMu7e3REVtuCrUTgXfmo0zW+NhCFabKt0QDvonsTVP/Ug+Nsukfsu5VDwEgsPtcyKssxgn9lvvBngBLCGCrhw15OrHOn6do2E4KPduD4FUBh1LcpUOqJ9ZbOQF2am3ZdL1x+5lTDiNkPqU3d2MUFejVGh0fi2tKO+FM2SRdYojcsqZtb3dzO8SrqlOFVcIN8vJIpBc2bptSs38SDqOjXNlHN16owIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0377f9f2-a0a8-45db-bd9e-c9a65e9f6dd3","name":"release-0377f9f2-a0a8-45db-bd9e-c9a65e9f6dd3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6f6407c9-09b2-463c-a1cf-d3f5f273bd4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188859258137026992498014403238152999484912863222144499320561269556444025569684782330671950143811329288232114226379357725136867450854065118412177082099155110893647340562211087585878193679172221780324842607277516190886990791419648249627444047556122487189713506882107971326958867633159282323278104944766322485193586998","osProfile":{"computerName":"jianyunt2"},"vmId":"0b316dcb-825d-4d53-8f17-58fb451aae98","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6rDB+dgIHlV+GyyMOKwXXAydXkb4w7/egxh3FhqqMp0uAqSjklIgXlL7kdMBTfMVuCWHT7ic1e8k0cGQYSVk2EtWrHxDoedBSG4Cw40lrwgpsxJWUWInZKKZUj72hAFXxEC4YLMy42aCo1WdAFjViz//xKevKTavJ7Ag/s1tX4O1b6C8/ZunvwOGXqlwt9z6VmGfkreJ07fjK0+CNryJLClQFXq8G1ZUiB+8bLiSBQqprTfvaktO8C6VraaAN+hztxeAWadEigK7Ma/MbvQ9B7rSvdj8n4RLhsJ3Vfl5vz6kDv7HR7kZknLB3ZPAyRgNSMC2yj6OzIp/+UY7ylJaRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3768956e-8706-4279-ac56-61b6d64711fd","name":"release-3768956e-8706-4279-ac56-61b6d64711fd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"838f577c-79c9-4167-9c46-bd0b9c983075","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418640727957952914446734172175482622728619846671115905565349065769605612881380254549435476467974545992097721393991501541870994147971402054756441709842655410271220867926602269716468570371359876866589485636395488867756139137560445196952740502805923278352983994814251457659395620084185665528933754826753204733885161675927464972958970246246846262321708346265511519746712184563693812624014235141","osProfile":{"computerName":"jianyunt2"},"vmId":"828d3548-3945-41fb-ad23-c84d7c099cc0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt0/vwrebH2PSb33TEM8p4hGjJ6dTLeloxvBzb7CLVutZjX2oFOZkG136OZwWsx/RceRrWyEqpkObANV0VzrCnS2v1xNhx3ekvgN/w+EDrGNM9GnNpXx649khvzgFyb1Qulwe9iZix77hsk4kv0bpchvMnpaVR8BBuEKdL0gltLQz2D9WIDLaP9fkVv9ltj0kfHmt2gkue32ImJtj3flhfFuWcIGYC5rwvO+I46CGvXyrNZde+xUV5PAoQ33zW/JEpfXzAAMc4lILxM0u+DrLWN+AiK404J5to4+Nb7ReLnevARq3jn0v9Zz/qNKyqM7xW6ZsRQRbZJFmnsl/4omtaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-70e46781-2dc2-457c-9406-81b08f427b62","name":"release-70e46781-2dc2-457c-9406-81b08f427b62","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f86416f8-c514-4403-a151-19fbc7e44af1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41868691988641296664688725325142768355530274990852568222921419685075353434183581817318847435147946578558999209686684274388306520832105970897339089226670183313761793916634655057276473965370383628494984768467112457853013504159244321649194043270430694938438160285435135410949227825664873245897534","osProfile":{"computerName":"jianyunt2"},"vmId":"e2d9ec84-0726-4dcf-9a15-c024b5051b5b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq6IylSPsMfABIYFDwtqzBc064MFXn+0G1WjHlcjpRYg83naKw3U4zEcHAGIcWc/Aqc1CcMa7p9wCZpRt+HZqRE1lE7yugrAV/pjuhybpaYipnC4XtSZ2T2abH/qrMDsVhyt1JZSyvSF4MpGRhUCOLvozdn2g/TAGpGaJ3hSXvZ+Syi1eGiaCF03R/NrbwQeEgp/xG/E2Z6mLTJQAezyFNpAtBIVthu406DRM851kmL8pSobnhCxh+rZrZ9II88Nx3RJBfov2y0uwpyL9+fu3uedE16PzgnX7hhWQzEivZISR2BFUi43WgB1dy4SPXMuZcpdiITDPvMRbEDE843xE7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-544ba117-21f8-4b16-a4ce-625fdca0f443","name":"release-544ba117-21f8-4b16-a4ce-625fdca0f443","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5142b1f8-0e6d-4392-bf2b-d873fc9880c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41846951142386073138206717189417877163486637830031092702124143864739264359683793793794913431666293944544830215088361796019896278898878303362718366094010926129042067196116491650758271139778570168317484812025421735413786476348246082382980857522983602802355401393844839437250167714745209816619785868762926651995283326868873056470884283358458616162638025551552755487797753943456","osProfile":{"computerName":"jianyunt2"},"vmId":"6a32b148-c498-41d4-a684-abc7f03a6a8d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4oTLgY9Oj+S3FH30kixUJTyzU83TDEZC58ubLKtzF8r381H91mZShwlj94bh/tDDhHqdnSz1ZiMWyyDoqLAmbRz5dp9xJjvqXfgmT/2/X+jGddCAvIy7h2mB9j89Fnf6d6RnbrEMn0LQ9qOPbQiykoDgnDJyd8n9k4tHvOfFxZF2MY2kx7y41C/Lb/8D2UzJBSxbYcU4I2iW2WiEa2d1ukrrgTIJ1oBX0gfj3Dc3AYI3mDqXBSRNH4nQH/e+XyfXu5y7F7oc7LLWzX21XQiedUr+5DHl3fd/naMHhS+BqkewqAsAPfR82qtd4O+096CevTDmn1dmZaIKu4m9vUUPmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b3c271ca-824c-4af7-b69b-87f0d1fb6981","name":"release-b3c271ca-824c-4af7-b69b-87f0d1fb6981","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ba057103-809b-428f-841d-365e4734657a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41864365958405759249189329832085173249268360376935502717523341111579085424290448319538495689234884969871135142041550593464791970921885374893977697029649698246551372285602476748553453251581605260284739953637078322862579472608177981459536658836838519523577344418059676876656948999265286892767704889894831863286024477127199885025966022096884200998397820417520194676860706738222843962192227785","osProfile":{"computerName":"jianyunt2"},"vmId":"3311e304-bef6-4d4c-aaf7-10f87511aaea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu9nI21HzgU9i2krnRoQYWGuu5Oltmj4b/sJahJH688/2uzu2y7SGYuFjUpDAm5NN8ZtntWBZYHs8wFB1qskY/M5TAftUfW817hI38auAGlNKTOYHV+L/6ujfnjj4Dgevi5ktAh+S8eoJJbhD7qPTuqUnE1k2kC5F/aa0VKJRnRV/LOCEQbp4xZryfKVEFJGB64IzagM5zh9VmAKAj+0Wf8rSzLoTOPZvKt2RSqfry0wHZTO9CXb0iY1ikHLty3jITn2K3ZvgSBwrV7yq+wXWawdRXzTrLw2n5wBXLlMW+Y3D6dm8eOtKqm7wBte6Eu3u4d/2z2eh/GuXm/o0OHvMLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-21e62d20-be7d-4cd8-9902-58ee2d51695a","name":"release-21e62d20-be7d-4cd8-9902-58ee2d51695a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3cb5fac2-bf61-4bbf-a10b-c0f61432a76f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41874897370762457634873330776983838586461209963275719589957731974774059346824369843915804122617302364268649295720126716639075631947769327898814195464461633510631923692126165923707077016007991062891845896776226205503347531231460148865739902933216226783115612167009650904314358577251285922284528933302361357589207385126593894259","osProfile":{"computerName":"jianyunt2"},"vmId":"f59a7ea7-d46a-4ae8-8c44-da83611e7b45","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyWneR+cS3kpZN5QA1Yn/R0rruPIzDF3VUc+sgLkSMRA+rKvTdCG8gfe1MUYTjRbvExeK9gFWpKV1t7IzJHZfiAF9gCCukKmq00gedDtU3f1Uq6UUlh31PYPT1U5y0km4Ym/3CfT+xp0yqs2Nqv+zzbQjmqU99PD8jhrRuJhLnQX1FBeDvXwYnurKr6AU76a79cpHK896c7G4D1O0cZSQjSgZ+6gdv7giSnh7AsV+mQi9brf0WNFyztsXxQXhsD7iPtPm/+A5PPJyawgyTv36qtvu7t5iGn2uI8eNJeoIhLWSKkqIZTURzCPq+5+HeWj37K33T9jE8twCkHFYNvBEqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a36a9cef-c8da-4079-ae3c-a19590adc195","name":"release-a36a9cef-c8da-4079-ae3c-a19590adc195","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2c4ca922-98e6-4e44-90ea-404f99b0728e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418418013337310829570446508523206880348285145783109082729919670323782197631875128020873225796711419193996182895713839798543698984964445605761202539560759996075883854748051158581029636640785331512141912535503810245694502351196008333522284610453188904963037961170334324614357145274507175656161827652038016814010118567684628799544","osProfile":{"computerName":"jianyunt2"},"vmId":"aa4f0593-625c-45c9-b572-c0342a12e88f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnsOqw44sflV7GgSgdg6sFupSPeO3oDAru74RwHQxDvmhVnZ/MOoX460DLbVuS0TP03QrDTFZEDhYauwwZz7SwqhEPxXzD6dG/7x2adXtko/Gqy9uBSBZ6lb8sfX1A5DqhllFFEPl7XGmnYOdaCm+4WTiFE5kCOi7VqTloeq650P7zpHHIFTxCFeQkSykX1X0d7ZXS7Bhm1ydSXNjqWzUQ8F6T/JuKYtoREB9GAB2f6cryapQk/9E/4KutqVikRQXNR0eElmx3F9psvDt6L3QsXGP5BdPrjnfthqjcGjWCJeTqKq3sumvuufiGsqvTBUUhIzjS0Uuhwov3xMrzrEHxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2d4e8b71-5b18-40c5-a923-de1a5562109c","name":"release-2d4e8b71-5b18-40c5-a923-de1a5562109c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7cdfb4ae-964a-448c-9a76-ba3e36ca4f4b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41842132607191751543700918183721844124387166317857934321709352234496957147667172498181299935466421233657103754489233026479947403691720433705565433919328465583836247502765290327303598147815859543819281379476340854403591924364745241808367834043434057433323149272946249872562523206855487479513539572078974147889645511635537327","osProfile":{"computerName":"jianyunt2"},"vmId":"fe1d8724-d45d-42a7-83d3-0c8b144ce3be","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2qu6SnLfQMrTZCcYUlgQU0MHlZwXSBXyKOBFavSWtimOOLD4g+xTsvAsdI7c3laAWI3GpQS/URWYe6T06c+cS94JU90cJF86R3ZRpYJEiWTs83w0qW9NaOqNrwoveA+2IaLDcv82dxLcVEyrDFw7gyV9xEMIlf6XIS46tXxsyeMkrjEW20E6m06uK2f1hsrc0Au6+S4Do1lYSsSv+yge2t1qlxjLH5LaeZfYEafJ40dKCbhGCsu7dNtrQ9lAPXTaVVntdwEx8Ku4xVXYxVmXm5s/qvJsep6iymW52/25OOa+BjKMhahL+aM51/2tqkadhD7IIhreT4vga35WYuLPBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c302091f-6d5a-40d7-be41-aa5d6a665d29","name":"release-c302091f-6d5a-40d7-be41-aa5d6a665d29","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"791d352b-27ee-460b-989d-9f85d059fdc1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845597741313293921523941814437007305927787339211301670099554673997192860545681706966458673272795630285199929642324592062213504555122699488219605586125095416279913027307746933662928373528906641797594148385608822139026832188785717321433827952806377886266242908618138264438469834952097824473985206467073042683987443679310591375936459767421839832842455961124","osProfile":{"computerName":"jianyunt2"},"vmId":"b0d7694a-dd0c-4c73-bb66-d053eda2bd47","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx+TaVj6RuaQNZtUmG7r8Qx4duV7rlj4E7T89RpIX/LN/Gj9n3bdd4vbThfzLbowN88oPvAtxG/V6ZYj+NMBlZmGkxmh+K67BzCoHaRM2NxPyE0o/gncmiI6vDB41TOU6e63lSMVgSdClPniZbwMJ6C7lmBVpOJV2aUlq3CSjG5vcIBxqv/q90Mf+Xkkv3rhG2hTfdT8jC8MAt4M+pGGHdJlfP/BE/Az/4RecKoW9TW1PgijPSCuDDzlK80jsun2rPLEUnoJ5J8dGeSXcIALFpqfSuPP5umvPyZrDuJNyWe2/x+yo6HDR4R79y4Chw0FpdL/YFKcoNvHwJJ1AoYUv7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-23d2940b-8bac-459a-8299-06a2f6cad0b8","name":"release-23d2940b-8bac-459a-8299-06a2f6cad0b8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fca7d1d7-7dc4-4089-9f21-2b0fff8a7940","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418737137039152278421013034911458516226152993259448616796413725437779384813123018009703971783493839858622311105849489402253712630162953514736594484506045744023161945196552913546125523959781982527356890746537431428842832063846395572026058631811559962410904827917404768576288155299548335436458485734876813822929014999243243704289600143571632739872287","osProfile":{"computerName":"jianyunt2"},"vmId":"4496d54f-7712-4831-98c8-a76a58e5479e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr3Nkw0Y38TmtkCx5cZ2ARc4QFKcYOXsatsX7dftqAZBS5GnK5DGT4FgL6O5QxNBZeDNZ2tG7z7P+UkBkxSfm6pnUN6nsZdeLHZDnSCs+AvK14uvguuU7v9unulYjCwX04jsnoxSUSff+0YJIZpszZH9nL4nFuGeVDe+Pi46Invy1vmlI+MqPqe+RL0LKFTpDBWQsRFSuXUOlfjuzUlLKFJ36B4BCduI6TMjQGkZws2gkfnqCVfYcgNeercOXuoUrxpO6Zmu4C9kp2zNMvHCtSB+6ORDuO2Dw8JvIjPTjsBQT1dRx3sLJFrQMfVd30mVqUeS9OrPVISR8TZN5S0Jt5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-36a8e1cb-b70e-4798-9480-9a92247cc1be","name":"release-36a8e1cb-b70e-4798-9480-9a92247cc1be","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"42b4b898-7489-45ad-8eb9-688f5ff31ddc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41894017993293262629826406591940889805994194149355959634459874527413221401953121372362933523678206111927793860654566465571047176101738136933210140033406664790204887997335886164384557862367379333225502838633957088890872542219633395388262742115742852076314697145499764531432204012882751147819298253820083923981698682696777656467146891834723060728215915104","osProfile":{"computerName":"jianyunt2"},"vmId":"541a4e4b-82d0-41a0-bcfd-a94663595fb8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAys0+sHys9f78arQnPummXFU/QDzlznVQGPr9oqVFGSaLehygMFEKwv92somhNYyM+Vq1qbH2aclPoGLAABs1FDlof4KJUNc1soHvbTjU753TY1Je3Slnr/baM7Q3Lte07sNvBcUShSB8FxyOMf06SSwlVXVn50oV7lusG5ZOX4kxDk8oYRJ3ZAFaqph4PAl5lMraelNWdOMnYFbaI0BB39BXHDalYaxFUZd48KEHjaHPuJ0AU39b6MaFLKnjy//m+sUNy0FrWHZKQGQKLWJmz8GLvhcTt/jJQv3oOCxWIFyC4vXyN7XGWaJG/lMp/ZckiykXNRiZJZhHE4G7+5NXJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-076c852a-ac4c-4270-ba85-b5ad73658619","name":"release-076c852a-ac4c-4270-ba85-b5ad73658619","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"44d7f429-092b-4b56-a41b-1f449171ad9f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828073514477563118010178859856889019629409023904938770529906683983259969220240936109783557510903581531483826051790916811997737576397685299628046301841753829939664883650375631494700689546382160395765746908303245677769264569921167639372326612901222972300154187275444216463931423385904577053688533148223800459844411216522420988827314760016415227444431757","osProfile":{"computerName":"jianyunt2"},"vmId":"ffea1de5-9144-4b62-b14c-2d3d1372cfab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA13OjcPGwNMSaAWzpSo9LfXeFcHZqv72hORDPGWy5MUyI5EEpIv8rK5wgZKYvODAZEdBOzGidVqrOKdmiL8AwhzWnvdca8DBLHKf7mCABctDgJc0R8N24z1jOFNH4Zw4J3WOxh5u3xB68t5JZTmnClrIOA5ffMk6toF//iQkFGzeminfzpVLswIvTevS8cs2zEEIWR+JKG0HMcK/S8Z7C/EwbXpw9gOQxda2kT9I++QmF0YnE3tlJqHEU7ZJC30AD6njWJIImtShXoXPtuDmbE9sBRl7XqmNZB+KGn0ya9JJjNt1CorYIsvjlnc2gu18n2ptTZYIk+2BCLsV1DpT1UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bdbd19fc-5026-4b00-8033-c9893530d923","name":"release-bdbd19fc-5026-4b00-8033-c9893530d923","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d88f87c3-3d13-4b4e-b214-7c27dd5b2eb5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41840921016454143085107940021704940394444029568958454586576142457196564654060603943446393763118991356170359941418313622840394979682739967633861728384676893947443807636656127383836750376047535236981558565701035976548712192556478107940528266477154395788192012624146313884886915557554208430363348569786998321362618","osProfile":{"computerName":"jianyunt2"},"vmId":"1df2a01a-94aa-4a3f-a797-8c593a7c53b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuDGh7anVxrvztB4GQHyQIRCzTWWeUzJNIYjmuWMjvdrve1Ec5sXVO75DZ5N8Fdmv13ty9vkult9smkCS1mkg32AbxK6C1KbKwkPFos2cCodrFA8cTtlTcMxdRoBd+gUR056RbX1ZW1yGa387gTHo9Jt3wQK1Xk5YzNozHhdyYu3vJ658qKjlP4Ef4oUmhsPiFBYFqwPbZuSKUaF+11+8tM0DlACfV+lIFqrDgoJChFykLYTGSuxhYFLvMiCH8j8oOEFyWDr1QWFLXk9gL6rihPBvBxyTZuA7eQH49vjMeSbmJK72hkklDnPsiFJwICGguGx5552UNdwYDYats5t7rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a09cf376-e999-4f39-87a2-8640c1af07dd","name":"release-a09cf376-e999-4f39-87a2-8640c1af07dd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"54b6a4bd-1944-4af5-9582-e76dd7d43dda","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189081717488755640563375756922265259316891692906349468714454091002603256112221110130173354803877549686725758177956494738255919842457917706680144044963678879716118800837410079499140314502942935028865298618562088004470049498602575018831121414460702454677206745224808272838809721644572515650188776267576343689863092133996811372265","osProfile":{"computerName":"jianyunt2"},"vmId":"6a15743e-92c8-4265-8feb-0dc3fa0563ab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqP/FgXQ3m7GiyNfZ0C8jqDeUjjeds/EHhC8Wf9gilRJK7+3bCHQIi433Vi/RBEmlLH3ERuGBe4e4Ug05deqpA303KeYJ65rYxcsu501qOITULrRNUSLELNnnWef58lgsxtAI80mA3o/1HPHElBwxihI8DG+UnDqwhg9C6Hu/BRT1FjOxAM/9DNlhzXxab9rIsJ+JMLDxxGGi7p7libGXdVbgTaEk+eNYWkX4+q9JfdNLMIfnIFmP2ebinqvPLCb1WOgGn8vUEWDJYVewJRwFGRhVnRIMfrUi+Kd/pogn78rI+AQehHUyFlOTxIOkEjRDz/am9+w7CawnBlxb2ClSuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8f8cdd42-9073-4e16-a6e8-6d8020aeea20","name":"release-8f8cdd42-9073-4e16-a6e8-6d8020aeea20","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"def3ec2e-0719-497a-98da-ae54addb94ab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181366308578407196512527289084371550254058333093033720294783428191765296449298621320610503587802455894726521411384650334783591089941636915980744014786092960653656903175863256752361987104263403041133965315054032462808601398432664378441358830438641621920401878886400565213315343","osProfile":{"computerName":"jianyunt2"},"vmId":"6aa0abcb-6aa2-40b8-a550-54537700520c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn/AirauZEjSFlU/N6x9/7qGoNaEjnNFdSVGYPVoj9JjTu53WAH5Eyh9Um/XPuU0zbjFa1N15zi6axE16109M6OmnD8JmKSJnOF9CwihBDRCP4QVro3PLRad2Al2HiH1exYya6pVP3Vkzg1spSL6j8OHsD0cMeeqXN5j79vQtmC8u8ZUKnIHZ4D5jZjmFdX5EB74RxyCB4HKvDBx6jMFtMc967/7bELTJKI3rBsTQOfAM1r2cF545SVCTYJxtCKnqMselnRSJacaSFTsXATnHZPMTtSvoIG7jP1DnOZbsBQy+PP+v81krmGtLtOFA8FggIxzUJ9JTZHmJOPfKMlTvAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2c1fe1b2-9f8b-4c50-9623-e5afc6e9cc75","name":"release-2c1fe1b2-9f8b-4c50-9623-e5afc6e9cc75","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6498ce1e-676a-4430-83dd-e6620250a47c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184207451986107279902633056405341408316583217409997338517429717460211912563750408996964831217979428587106793169046535032925448332326591612160144266642862660248645176777606756682277791796061121762225199772575168670344048174893767387714844159274657773408346614592659155147604826667626223","osProfile":{"computerName":"jianyunt2"},"vmId":"dfefaf84-73e1-4f3e-997b-a3b583cb2418","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxsLgnOJdstR2Knsfi681AiPcFf0C5+fUIn7hvW7cPo2qjiVXyB0Uk3GR4A/xmvahZu5cVIInK+IUbTiQ9DlGh0LA7OREyGhlpPpJa5cWvJh8oOkYslFiwOFl3fC9yd4Re6dOXN92fE8vGsPqoP0TcHEvMKNa3wr1u2FtC5hWh5cCet4pqqAefyLhPBl053Lg+XxqiYhvnT8khWpKVp3gq/FjZUiYzrlIKPLJhKUrLtusSkbmufrgmBZafHT18jmlrzev4L8Lsgx2cHMYM0To/C2Lst2ZmlRjayOHudcheWxPUjrF6hRwD8JhrN91oLA6I1H7jQZ8CEdnwLIp5Jk4zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fcbee0ff-df8c-4075-b6fc-1b9479df6893","name":"release-fcbee0ff-df8c-4075-b6fc-1b9479df6893","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d05d6d3c-fe3f-45a7-868d-c6d18487047a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41818543567680735826633753901679237104896545098073120251090148063224141113800117942522744810858593983675917293226325447279885583527993575673374349628871091413245647560579660248265586474263497061778425767733093647708878980849353706225328101008182421638504045866939173340311985745909670730819998519767975110641399575409","osProfile":{"computerName":"jianyunt2"},"vmId":"d1ce1ec3-56e9-4890-9096-82fe71f24db9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsQMEoCzWXevzLTxX+ax1nn20DgBKQ71DAwZevVdJ0It/8jLhyY05PxiC4Xt2xdVjhVh8gkcqH/v++MpfRNyaGG1TbHAb39JJ3aWSBZyV3BEijI+KAa72Wis3fewCWRWc/fetdgNLZFlac1mg6VuVpQq0LT0i2ActrP0usjSVHoYCn/wKAfId4VfczmY5L7eUUSFJU9zCMa2ayZ2bUIbI6iQhmGoO6DOnRHqx0+1Wg50TcS9a9XUI1Tg9yyhjUswwPgqp4ayTmv04Jk+l204rytETz0Qs/jdoW9cz+YUTkjsKamoNvHgyk2WPVmjhlTKWsvIv89nJpBHn7vsIQ6SGvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e9ee9776-b07d-4fdd-8d63-70dca192d60b","name":"release-e9ee9776-b07d-4fdd-8d63-70dca192d60b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5b67ceff-1612-424d-9e5d-81f497514cab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188259140035674228217111191519298829966771452222185688766250139455127981510058837683371708863299627424936122874096986031179114469406337168379936587579880732331453992714196722834157435344126701396835343145645146104338565636670662944267761248170590496895562231414790","osProfile":{"computerName":"jianyunt2"},"vmId":"bb769b13-71a3-4b1b-83b7-6cf451295ad2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvuBoinMhAq/x6D97G2imqxMgM0GBzNAN9ybns9X7BoB7ywosRBv8zjwgWSpRmOC3S6UHqtYzccZkOY1lAphpJUm+V99WPOJAHZPYmw0rEGiAWoiONo4FgNPI0JG2Q8Y7aXsS6J9VSUkQXcBdKO7ssHE17NdkqpyNWR8CQjNSglvYei4+pNdrYqBDZwCadVqkynef3eWytdu7JJgGZAwpQ57YVeFUBiqPjNGRZMReoHP9zhMjHA+Ck62tUsHrv298VjkUVFPM9OhLMu05XukdHDIw5UIVftzmZXE5i3G4iHCnqBw/12M58jRhnYXBVgIrtb2S+J/Tp0h+vWPq05FgAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-010a2d27-a37f-438d-936f-5442b80040ea","name":"release-010a2d27-a37f-438d-936f-5442b80040ea","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d2762956-e4ee-49a4-bddb-47eda7d0e0f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418863827953464477598419128935445848644297551621248652769889567718080876095762555696526163296510623871229418543881448450308983676648767610418305304525135758962033470829147388322353377346811728552555217029746704256947322081700366250836526472437636035290115531985981873319163137063951461258999983154","osProfile":{"computerName":"jianyunt2"},"vmId":"fbf98171-a8c4-44c1-b4f8-281a63ddff8b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwCj4wqP6yIyS5bTyoaCPSJxciv6uTCWxMP+JCTIEPIDRFuG4TovTdt+WpW+jDy4l3hYHwSsLo7RaAGAuw+6I6yXbr9W6PLhOFDlwI+PlXfuQuVX5cU9eyWSYuLomic40yHHnXMD0H2pdbW2jhDxwS6kGGkNs7hq5XtMaBeem/xl3r+RnPDHwYQyggxbYWVzFWlqmyAcNHg6SW4S9PFdNneWE567AA5DVmyLElWF35m+DevOumhc/YE0oeEq8R4Eytp/Q+wlfqyfZe3bkJ46SiG2Z1V4gAFi2A/4YX3Q5bTP08LkadQNu65C0IUqpGqcUoA1DdLmHQrXZ/iiKKsLLVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-04df20d0-b26e-48aa-bb10-bfa122c72923","name":"release-04df20d0-b26e-48aa-bb10-bfa122c72923","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0452eeec-8056-4587-88c0-728cc82d0d9f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418436716633571104449094898588266423692991579928116128138535707523037848231356024274232329298141589298182496019038707493087637355433860327117275427248204406687221454300060121277936931935078850027805293611430259851160890849598334961253807199983624349842328142188816015353928411825050605840612264302580133431631165123","osProfile":{"computerName":"jianyunt2"},"vmId":"3b56a4dc-4411-4546-baa8-4a7cc6eafddb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0S9+/c6s/bBpd8nLBDdHPJdO+teYIKQ/Mr5zvl6Um1FJgXKYeChIoGC2OK6Staqu6e8pp4BC/uVv7c9J1tn49l7hxSvvMVg2+ySRkgZUFtszpXK26xLDRbNlvrQ7ImK/C2syZ5obrCjjJ5I4tahSFoWoXhoTpCLCuPFPVPk5q/DdBLG1LA/a0ivjZ2Mb2rjzXUgVvJbAvMGqSGWnV70geplNkT97jA/NPlbRXkSEWy+4tt2625voIXy9lD4O+4Q79+Liy64dnarWfw8wWiXmKm4TvIHwq6Uxl/IDs4yijfUJ3CAOvo9Rhrajns7Pn523gTE8IbDNDisJfqdwf+jP4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a3978813-af26-492f-a1a8-4daf8b755f07","name":"release-a3978813-af26-492f-a1a8-4daf8b755f07","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"59a646b7-d2b7-4a99-9323-89696f904070","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418828870106982358463320365078419696628097784302497751796797894186082102953452704495765845701655450499381651640967122562828344122724190712047032202949911630821840726930433592586832587149949753852678270987051241540112218085112956915207365361112606883693193614663778656978916067147901025755077426902","osProfile":{"computerName":"jianyunt2"},"vmId":"0d18fbad-1728-4ba4-8e1a-fcf7ed19aa55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtM2SXkt4r5FKIvMftZ7P8IJgDhzw7Za/SNXuGzzUswcOdA9O0vfBfMTNW1PQ57QHO9Nq8kCzOEyNyZpS/oLB/8ciJul/KnMW9VOrFa8YXCfVZ9ykl6RlSM0y4kqUElFjxXM2b2qoHcL6eL+upn2/Sy+LExcOE7+TpJCz6qp1XiK4JI+uUrq1bsZgXcvSrpYo4y0dDyB3jDnBlfndh8XXo9wV8gBYIGoczwm2120aN9nb7ouIQ5hsmIov+D5Ee/i9asCtuxLAgcooY9cuBetoMn3LvFOeRwe2uzurZrp2dnn4H1VCQZ2U6jwNqWPIk9KWFHr9BRA9Qgg4y+9cgGlrlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-94247084-0398-4988-b053-fa6006e68395","name":"release-94247084-0398-4988-b053-fa6006e68395","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ec3481da-eca4-410c-a5f8-cfd798d4a90b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895313539246592376834829712387485627713220194918513115985476896147605244883505165374742171578077406390124971858525371658206785595050498236126516629604721364896184489416841980388448910312807692377988483163146383536439731118054535886443296202851356354587511","osProfile":{"computerName":"jianyunt2"},"vmId":"ef3660df-6a40-4a5e-89a1-020d0d150763","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAof/ppJlsomWF3MyCw3JZaMgOY9/VvlOaO9qIvxtB4o2JlZQ3DArMn5HlDOFqhoYex8lhePNh3VEQ9yBr3n6MR0Ggx7n8IfTkdfY4ala3mh5jIR5jJV8FXFVMUGkKFlm1SeEhshpeOi6k7xJydqdK5UFML44ZPCMfPUUTfA0NDE+sZLWWa9VWNkcF/dBNWqhuBh3hwekaXtRTldcHjD5f2PWSO3MUyt6s5KP/X6bZfwiEcTnQGechyqyDWdfzZ/fqZnsSGuyY/Zuv5tlBMsT2Gu18xqQVegc2MOBYniGR+xNoDGhXdk1+SU0xsWoyX4j7FZ0AGMc8Y+3W0NY7rKyKQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-401bcbca-2e29-4c84-bd8f-856151ec6c59","name":"release-401bcbca-2e29-4c84-bd8f-856151ec6c59","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7ce4aa7e-7c0d-433b-bdae-a547591ea7ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418344749974702569167661769273414164119752720697172200518074563543430768657980350249363324562220163334133913956416820392681663378163993851939641463679604638345897450153510431302286576254989568999025581481261757914487311027782672511219170213766635161494101218778550","osProfile":{"computerName":"jianyunt2"},"vmId":"ba7fd23e-0d17-41ad-b204-9fd2b5a1bef5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtXbI0G5MHjv4rS8ffmvgsSkzffm79KjW8hqkokMkNsAq4bjcMhAyePtTrZb9vi2ADsCy/0tkxq0JezCOSCKw2hV1KbWdDCM6kDO2scFXKXGeX6ZLkBdRatZifvRHo4BYVVj5PIuIsZmL7izOxIEyEyqdwGH74czk1yzN5fruQEyLPYRGw37CamdQMe0M9/tJcfS7MhSrKiAWZl6WV0Zy81CuFKNMJrD01shq/gqnV78kyXvWBH+feO+eCF63Y5bPJ2L53Y/KkAq1taHFU6Oa9ehNzvFcUiuLweYIGNaeFqYYEYdqsHqvhKr79ZuKOh2c866/RcLlhToQnADxhdhMmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d4ec4a07-aad4-4376-9942-46a95b059b7e","name":"release-d4ec4a07-aad4-4376-9942-46a95b059b7e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e396b1d0-64dd-47d8-9a43-ff40769f5910","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418812597827454917505146037019361746354883854573878091669847480063556691583818693731980517127408662818349723873237065653704244835327984749975057112708649611130721440922543839762843418147478851035323856717515835422847714381877454868794743463982727569665983057133834549608286652447820484363811318915776137068835223166135970675477907573114546664490908385241276764526348932","osProfile":{"computerName":"jianyunt2"},"vmId":"ec7b55b9-5793-4a0c-905f-a121fe1a2a58","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuq+qtBTMoFIFs4eF+3N6K8J1o/hDS0NY7EgEtaok/HY4Gmug9kxHGWKmQjtcYS6GF2EbacFDbcy8kWGlfcqFm07IL7snlh8l2JcJbdzg9NT+zqPJpA+6wzsFbnz1Y4Z9u440gt4qfDTK+HHu/VosYW4k8dfTP4noH1dIztisuMyM9nRmyodhYE3DPslNeKkoyxaOpcVjDdwiQuBA2Xg7NVlQjwCXSwkpfbS2W+nBXs7Lt03gzbfznHkHZZsWQgrqZWM8MkWNFKeLugF4gPx/5GGzHCyrtevqc42YBp/QLj26ilz50nBpIybjzfd3LGzzAmix/eiY7rJzLSqbYV+YewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-84a40a12-68ba-4ecb-a10b-e468ed53d149","name":"release-84a40a12-68ba-4ecb-a10b-e468ed53d149","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5faab1d7-d3bb-4b9a-ba2f-33c6b4140fa5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183722290563983702010559863907189505087109311118110519614085584670112426426330443323063342867582064275880880914802242382478894422726696274180417242713714746643040114748931148192859479105103693259721486159239645216115243254366986835457833417942786878064293676763336249070882577485063718728869076596112","osProfile":{"computerName":"jianyunt2"},"vmId":"18c29db2-6aac-40a0-a4cd-005315e515e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2LnKNR3gFez4GfYlBJLBeAyc1cGXl4O4NTrtJe+d2CiJMrpiaPowIW+9QdSE5/Oon2l58kkjfljEW5qwRDrrFoZRLuA4WpHB4ZW5H+DPaYQfAdnUMZ5lKku1geT7ueTJeASeKIXhjZNTZKpeNSUQ89+i/zOCu+kEk3+ClUALWeQh0h+86qbpzWx+0L8Oh9cd9K3ikHbca+iE53ae12NdnCXIPrVq7iYgB6Ng+bC07r76ARgl41heNsKPNmdyBYVVTLuwV6zAfstQoU/F5RK4efi77drJ6bDvDyrcJQrP1tcu/w9cdv0TKmkAPgOzwo5eTHIf2oYJWBtHOxL7N5RpcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-25e17db3-e3a3-4d87-9b2d-38de3105bda3","name":"release-25e17db3-e3a3-4d87-9b2d-38de3105bda3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04933309-c44d-4335-a23c-608b14ca4e84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41827772457242093935433138454579059056713852644512918671967920533554250853879438820756613821467180022159936861545188234096347187210448817919036585556279402026732117111851073737438869772432662580824674735837322079862252688339895900799127618946176992643532348784817567836319882714325647586231123234","osProfile":{"computerName":"jianyunt2"},"vmId":"71959e8c-b4d2-4ed3-99ca-cbb994b90cbb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv1fj5l0HzAkccKL5yUgCqGsL3u2jmG2b+mT3EmsXrlsQzsrZPPti0hz6J7nBOdZtrE2HjeVauA1sT/9enL7Y+VL3SmKawHvWsTNQRqoXK1YaBu7R7yPHvvmzSvscQyG97q/WS7qlhDzybr3179n6nq0e/EGxS2zj0r3tnwE/xMFWOen5gS7vSY+R+QD2CQ63Y+gQnsxE9ZWLTKyHIXDDQetGOgGNobgm1nJmu4n/aUUewP2IZc8im36U76mox9Wr0jWwsbBTRfrEeSd+vAE5rLTnWif7hRKUGxiXNoSqhXK4/E6MlYCupLl5cR5UPtyOu88Wxlw5qLRy6edA4WgJawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4fe6afcf-c817-4b8f-a447-c4cd97d00ad8","name":"release-4fe6afcf-c817-4b8f-a447-c4cd97d00ad8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0ecba3e0-b483-403c-99a7-64905fadf557","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41858720897213796220754606959949504265388793875158936612352086166165665155411682905543458732998888578376342218743969051542421356845845975677800678514892167871985368243390175928603113417647344204588595907465407405193585574703962643847822988494382088751553738090993752","osProfile":{"computerName":"jianyunt2"},"vmId":"9289bb42-395d-49f7-b9f1-eb90dbf2e550","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx0E3qDABagvJj94bxlCe7dMFYpkB/CUxUD1oAmetS3pxyeEdiwjP9oTZ9P8ffSgdL5y3Z3QXbgrn/rXTAp3cF9HDQNcS/Ovs7wUxX21rQ1/5EicYQclwl2TEVdQ96snF1LF4fIrNG28x7eFXAogjKnpS8bA2gTLy/I7eW1yfAbGMHf4wnFlDwFDlFI7vceaBDG6w+sL8xTk9ibq31Iq5NBwY7HuuGTYTJzeGAXT55LLcv2urZp1zlHAoGk8X/ytJSCfaiky5XJ5ahAkT36hb/VHf5etj6zPHpCb3lHUw2N9I0z4C0xRuSveYwq8MIzrpMmAdmbDC0gI4CUnkQENo5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1ade9e91-c73f-4326-8827-07bdc59df655","name":"release-1ade9e91-c73f-4326-8827-07bdc59df655","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"22b8ea3e-d735-42ac-b822-fee9cc47d733","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185536719383565405973926212517222437582604390368918666247269846324084556815374800540310588201348169175675738133926144837569824840272159297322454899505820968705576289287664411369558183797754166668205288795369219588225961913422763915796876955255773578736794214461432066347984059222871698321109973750166616808494880059853493875692694167752567683495","osProfile":{"computerName":"jianyunt2"},"vmId":"26ffcdb9-1677-4a67-8bb0-6fe952760d88","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzingbiZLBPva0oQdC6Y9u23/dTvC+YxjJaMtJpkIQuWL9M3zSlX0AryHuSoqA6clvRwJzQdt+KGXrm7Pggp3wgAqonUWMDuEgMB7UefofPyIOwm+8HQcQ/U3re3GtmTvq/S+Q5KjwIAp7G08zf9jchLr967pNw9XU/nvBFjW9aGXqxd/y+B/yPqNTkqSLaR8KUeQ04z6t1gF5dyeeASzAor9xYJCKnRosxzYXSB9b/otzxYJvq4hQjJm83Is+rI6Ude1VERgJtAxh7JovWsrdNFMNhtmLwAT0jSOLZdOINOZbVvxGw2gEnfqEr+zz9/x+T77WKPOEEJ82Xr3FDhYWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-98785d0a-da49-4733-9d88-d4280adbd6d0","name":"release-98785d0a-da49-4733-9d88-d4280adbd6d0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e91cfa67-2ff7-44f2-b276-9f699907ffe6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418232640467625163241982603592377818946009246277876486438136781466534698672467900964761494021172774959879032523835832139726617708853018793463500589033047156594917608453967781306204297283253204299559973321845991749330431199624484858723817510134834897404057571940536325623161846835369639869138980891704918","osProfile":{"computerName":"jianyunt2"},"vmId":"497c1324-f67c-4469-bc5e-9bb5aacec2ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA561nVM1fGpC6ssv6ha93v1SgOhnsU1ig09fXRQ5kX+6byatrbmbf28F0R0KVbCbQJL+DuvnHwPEECbuzgjt7XqSAY2eIt7AQlmtjEycN49VekI8EdWLpgV8ZTCFIuh9fqQ9YRh0QW+ID5x20nZVHMyi4y6ZpKkXfmCbN8wZ6mRQ2rpIs4m2B01he4re5cBeiaHJcb9oifbPwA1WsWTIIVkzihm/AYVD9UJj4IJdEOtf6ttOjnTrpCWWmEGNkARB5PdWYCxGeVFg0q8GMk45dWKfWbhEVPUq4cAOLYyPTOmYixWT7cxM8mQhAZqg656vptdmeZJcfRIySVb1s0QWQzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-62fb8b13-99ef-4da6-a520-107ab592ddbf","name":"release-62fb8b13-99ef-4da6-a520-107ab592ddbf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d6a58efa-be32-4d93-88cf-f9c54c9268fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418943299733397497369278641514405829615457917623132853785938901857377956686793525122688415915658994892348835782213676021245737502897056496395524583938124630076617633966207161521645141268304881103570986146333098113674679745207751018766112305375138390839421564753798271518261786843195754974013479","osProfile":{"computerName":"jianyunt2"},"vmId":"1deda684-cba7-4bc1-829e-6342f520b9ad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx8YMe2R6Gteip2cf53ShGvPBaPJUQ6i4K2QKSJShaW7un8ItFMw7hV4SP0jzbxqe1WrqsfiDGcl0QRSYiirdFmigeJFSVLqMHnwWAkG2Lhabo8b9Ncl2w+RmccAmU1U8xb/pnd3/Y/YgbIujgHrnQKEPwgKFUhAqdmZX1g/8evgojIt3B/dMNGdDveArkL5Pdxey5jVAG9mBvt0MLLRMlrcnHNQNdl2/U7Le4BV1bJLZbNIhAEHeWHp41LHSUgiotl5/c/F+i6jL+Toz5tXvuxUVa+kHhpFghpfp5ThYF1Go5z+ZBB9HWmRmVUColts9snuxd96tNhf42mcpPIjp1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3618e02d-4d9f-4fc1-b90c-001e50c1cf1b","name":"release-3618e02d-4d9f-4fc1-b90c-001e50c1cf1b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cea1855d-19b1-4926-8aaa-86d4caba0566","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418463679791740154536394050408728668802956991493692310826819108932125473871810948368325580668297144731544198887275508690074221359446985475427959957356518441155198226967768566062543734393050622639819268723118877087164031310636051173510065411295729922170672447097288972346020385352114218664132454374431638348703","osProfile":{"computerName":"jianyunt2"},"vmId":"3159f7ec-09a7-4b2e-9b0f-54395900a23b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArZLAXNnlFapvzC7DN9ppI8hHsZFd2nd+vjA5lb7fOO/3sQW++5k/O20Iy+RcYDZDP5G7rglipzLWhxvFNyPyAC2k70/xKsOn+M8iax16qYJ/5/B7qnm+ehIu5kAcM5azhsVgHPQp3ywKQL2QE37LiexTEa4U8RPi8zXgKkfVHx4vxeW2ePKUhPxhXSehgIGtlvh3h0s6MBxAMHgWEdmEWLTIJYnxrRipfkolGA4eAOdtaeLVz3CWCEhtcRxiBu64O7yw7hkDyDH94IoL3zyrBnq38Lnyh7MQBdoQyEmUIvhpR4cjVDhevmzfhTSi+vVAYQOC/zSrEPYaC1tWnT1+cQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7c975d1e-c5b1-4afa-ba0d-d5a4b3cde94f","name":"release-7c975d1e-c5b1-4afa-ba0d-d5a4b3cde94f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a24f1214-d29e-4202-a537-ab1cfcbfd68f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181473110351569905632153173613596119696089551117957314161532783647489249495416866011832729252723722957525230159295832773109851399583756590970767310440145212603853885102841132844483705825036182865788277795083633933073519201438983223406967395385276111712496923424335245995693049913066613813359046562","osProfile":{"computerName":"jianyunt2"},"vmId":"42bba3b6-e8bb-4db1-ac2b-939b14387d5d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1r9bSCt7f9EoInQWuyEVf9k7JD5YGV1RHCNLel3gsAd0RGl0jqDPPgBdwD4n7qqqkB0Y34r8KzqUKIXM5yW6fyuiFc1QzmVt43f2K9jVp6kGHwq9QV+ZA8bPz2MQrMGMJJn/GbhMSKMjywG0FT2ncvRvgoiXon4rbMhdpXiP0Y7W+2uwY76fXLDWq5QrcYCp6X69M1pyOsks1v1TER7PYDLHtUe+cDn0n9GsuxvQw9kMngEHRQoho8VNY/E1Rd6b88+Y05G+j2Pnh9ufQ6cUL1JcqigqiAVA4W/oM0qgrL2F18/00ZpnefKnoxWJarxh9EE4aYYSqaVKFVQYnZdonQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e6cc821e-ece3-4b14-9f38-263b2844da66","name":"release-e6cc821e-ece3-4b14-9f38-263b2844da66","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ff8a958e-b2fe-4e1c-9b52-6f47e1439d17","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41850974800983777652015321747285048468377095834321282816144951630008224339721549128282156817340451855503401604356265338624160421933556323362868040696785751337901666809401565883518376925757906281685992818078203073564684202742563771361064778412669211773715649343903038131999491876391253641008925569169097287757988293407475312970388691192427268244","osProfile":{"computerName":"jianyunt2"},"vmId":"5db96ea8-0b13-45fe-b0c4-869f1ac2d98b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwIxC6GRCiCgPbXsmX1GqU29+XrF2YHyE9F+a+4rLhok7ge9XAznbvy3jYucOffvwz4E6/uleLlOR1TvtmQGct4Jhhj9a3waFgIbddVAafpHBt/zX0DxAEwNpp9R0H6JS+sDCbOgVl8UMJQRLo50vYyMgkxDWncpmEoQtHQQan82OBFAfO22SttVX5dlYwm0UJLvTPcOJlMh/tqk3IKCphmrNS8c7T7mdeOnDeTUZC3QkW/xTQWZD8w19vDvt1IRew5q3fs/MWacMzYsKttgCx/CsqdCAjDWfOUCmp/Fu8iTrflt4KFJYMnYEkS+IzV7dQQFFmxX8TXINcnXWr8lBwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0b3ff923-7549-4755-82c3-03e174bd453f","name":"release-0b3ff923-7549-4755-82c3-03e174bd453f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1d083ae2-60f1-4357-b9e8-eb178dbc87a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418760237679397832780389991217621329170285410701579694572362074165372953556107333811732651249603224861847708385910636928561168139597339642811826625774635093901541214066688179233852212988806171444988164371817968671193232145335892335577387129132742646238031015448801958624576436273067196285188218887259","osProfile":{"computerName":"jianyunt2"},"vmId":"6e1058bf-2e35-4266-8c76-61ec16fe3c4f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxdEX/uJLX90Qs6Apm6cEFKHm+62Hzn9sAsOHUIrMl4i88AR6o3PKatsdIC4bLV1h1p/fpH3uyL5qV9tPAEKwEkIKcceqNYw239kzCOHddBit+1GSks+e0WocrWptmaJaC5ueHxr6+Fv8+OUIVzFt9iY9UHaNiKr3AHLiVGg/V8JIGdsLNvVHO1xWZduTjjiDnAiCoUdKmcL6W0y0AeokUvGbGNeMDsAPTGhWlK7mTXc2yuEcLtGlKVM7lZwtfnqGZ6bL13Usq16WaQQ/2oeWkxqCVcE/ALrzM3yTPUyAnNqiPPTAEoVTa7uMnf4FcOHB/3OkCWNrjJ7Im6hNzry3kQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d460cee2-b2b6-411b-8389-34cf52d608d9","name":"release-d460cee2-b2b6-411b-8389-34cf52d608d9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8343147f-ca6c-4dcd-be57-23579cd16c75","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418799655117101553922198197576314562351242802740515460589552813169562294388915052689705234462422399749681201662632824991274260583641167533398221841720350089532965375563107268179362054347817068483891995867968034754614349701671712663144942216023209317122817739388787401997881915924427639139089841360725241506170722440474043563953","osProfile":{"computerName":"jianyunt2"},"vmId":"eaddfa15-0320-4030-a0d6-f411b4cf7f13","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQjiak5sIJVP6bD8pZ7Cv6IadLCerCOWjPWufItXRGWTYV0GHKZ9pOY9/nGwVXESsJpufdDPE+deUl7nEQ0AEfETzwcw6/G1loEGDBlsR4uqbp6ICIiC8v85pmV97Xw/udDRXXDgpEmfhWHilo+2ukRlYOO2bCc83HXJcjb9Kzlch+6fI/d5sEK6PXC+Z3HLEC7ePUQGHKhRxJmXTNrFfhAJG3rzylIFVKf9xHVmpGHUtsHqKz4scpiDjBED9zhVxvQrlo9OiTzbbBXgVaKc/G02ScNDIXstCyuX1/xMn3OD9IDUC2eNr/2jY3g6Y0Z3CJipapgsUeiHhku379wFZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-98316f70-de51-41e3-8722-cc3e97545fc7","name":"release-98316f70-de51-41e3-8722-cc3e97545fc7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d788f4b6-09d0-42f0-baa2-f4a9a33b9b00","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188525389493074102512221506526604469829248173832999362798068462171699783264955377509148518604160716415749726883323723033616991798358102731045866177878743224315414391318283962557083924525279943985626859033826538869628150215538769775973210324342987220509515199994493641680425244167593852285614583441278382338129456595938641476290490724849968417581867590","osProfile":{"computerName":"jianyunt2"},"vmId":"170f355e-3963-4a0a-a794-26e46afff1c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs9BqwuAwYu53GSpa1GCssvbL7HGSwZYp+Y9yBiE3qJkO6MlUnfNbhq1oyvuCledDzqYUs9gQZA2IQZ+3p0qCTdih98T0+4Cqf2eSK8ety3qoO9nLNbtkGu+N6qT0vrb69ozW6tItZz1RWYSla/ssMqrxcn6QQ5NO2ajU6iu3Lno7HqBFUIRhf4EkUyc4UXoCjAkLNfuKP7NXJtDFYxsHfmZ87WtCq6LB+HgqVKTo/7r9vskwKNbhAURYrXp89gRF8EJV07Hb9QUu4dHKMDq9C9tqucug5tQTtsVLs1IzQAAeupGMTfFZMHasfg62uNkeSrbST4h02sqxYgD5gPT8BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f0aa8247-ad28-4e2a-a4d7-6c4a8649dc5c","name":"release-f0aa8247-ad28-4e2a-a4d7-6c4a8649dc5c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ca1ef5af-c167-4ab5-b0d6-ceef3b3c8e00","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418180442775306688189299499611622856108386753681143305373350037661712363994884701639998318251856137703768748726112248342356412191193834940375192893003650049022596744511954367472206898471497361265277546940393046746548150624453500362463340502026891627463634599392866180339001404509978974028354316292718850442884289787267584077123296853154013","osProfile":{"computerName":"jianyunt2"},"vmId":"dc95f268-e467-4f5e-af03-bbe10018aeac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqBsLYgDiA2KX6EtXaSFfRXdR851nFPJYmlNPoSBjSRJ9YeQS5uk3KwBf2PXffxOl93iG4LqjsSgGJX1ZPotImRxrP7tx4KvMexfn/Muj9tT401gC0XawAX27q5mWHLj+WYpfbgZLXVsYDtx15sIu85VRL1IzU/8SDS04yxXFBMXrAVW8DplD7hc7fvidqU8WP8v7cwDI2XO3sKBHHPs4UddmwhH0YV5Dm/t8CWNNu5NZvAr2t91UIpnzyaC58B4rDQruybHsaEROYE/hUT5T/My7jMvqmm5AMzyH8JEFmVjbaFDeMel2oHuD3f5dHRauFEHIl2ljYavHAw22zB+14QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-737569d9-bbe5-4be0-aab4-1ea37a82a390","name":"release-737569d9-bbe5-4be0-aab4-1ea37a82a390","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"06e992da-8d37-45a8-8ffd-f8b14c4187e6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185539695665410142038180268537461036906936998405907288323982214947551274311251651900917318308641641792033605490587666083233755729712475383406049478301144247480896105523578944879758304697679165949548933714686993825261532840498290309995311172046633296510710934463947722504972552850009317603266","osProfile":{"computerName":"jianyunt2"},"vmId":"6ca30773-234e-47c3-a57c-7feea8094770","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyHb+KfddP1KBR28xvHLb2Hu5RNfqJB4hWVksrmzOJvKY8Q6E190IFdJ/WF/vi+wkprZiCo7nMIJ8QffGdYvX4fIwIHT5u7F0VtofbIbjWepFSNIZk95xZgpqwroiv/mtKm+KWu0Hd5NOlVH+Vn0xWnRmKRJZRPj2PCpbVQYP9/H05/tVvG/HRIAXL/3XlT+S4c7q931QhPydXZAljqEBzsVJFczk3Td+og6XaNZat62o0lOR+Z8c2qSYv/y+sd2VWKjYNVvi9M0GxnkaZixbj7F71moksUFn9luFvOk8k1Yauuz9uZl/GRqJQvHn4OPmFK0Zt9VWVlniyp3OVgIi8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-17f443be-1ee7-44ae-9d81-1427c65d7ded","name":"release-17f443be-1ee7-44ae-9d81-1427c65d7ded","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a2182837-988a-4266-9dec-e29527a8530f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41836903150499682847063162436715321530868859320988756551065520851714814898791949721324689549834172770578300532478616684976190817382743057711561821444524381418550141530778667699648961187428188452985896119942461869467258316555144792063458891057575945397719541904222725021950793664621558","osProfile":{"computerName":"jianyunt2"},"vmId":"60bc109b-7b19-4573-8f93-e80ff2f5bd1a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvSoUU5uQXYWlHUVlfy2j3Jo3ZCTIf193Jx6lNjDHihVk7QlSrk9uLD3ewe7ApKqp4cJC8Cj8ETYJsfAVmQlx01HNln6DFWSswlOFYJdY2V/RifOnBIskjRyMP99B7p9MxcEINCnRGvRLexJCSPWPSuAOmpPUdJkxf/0RKgzsXx1/B3o34A1wfC5lKF8B3/g7fh7Q/tBPZ0RSJUJQIHd66YijZdFYbqxLrklUjXoSEn4zDXzT1VXCRluZw6FWAeP6COc8V5CozFHC7TxU80O4AVvUNS+bZ9OAFdZ4t85NyemR2S8NAiBAs2GiYfbfo9IXNSe5uW1g+8ENibsOAyB7pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ecde35a6-d5e9-406f-be19-11526954b85d","name":"release-ecde35a6-d5e9-406f-be19-11526954b85d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e049369b-dec4-4227-9e8e-970d638e006a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41856244637607114307921715835102349370587142672682524136632598674545665573830739765797479776815392782766475799056332434290820879828403417261938147730829339657856629460832396247390946865823566202660175725461224704517698573651858775578775470834543191901499059704691687848031707","osProfile":{"computerName":"jianyunt2"},"vmId":"a9a14577-d2ef-42e3-b187-3b9e7f53b469","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvwcGi2NCtAzObk0UiJQUWOLASZ2hRNKoNOk1QGMkj/JrXOoV4xutqmgdlK42/HPGYugzkFQAvZjeC5P0OAZ0ySIOGbWLFOSDvng7Tru+T26K0PbacrH0fVYCIKpLlcOKRLt6rD3VXnOAAM+don+j5quXvo8FZ+dZ64cHR31bnd6yytTg8ZpsQKW6f6Aw5AFH1J1QsWurUQS7oYg9zKKKQb5/BMe+EEqPxVC5AN/jYvGxPq85FZVZ3kOifBO8aa7QVGiRBPIFDNI42HdqMLxOonCaA5NS3quUrSJzaHRInal6qnyw5tIrxbiHV19/6twN5lx41EuPVBxKxDo5k9jVzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5c2795d9-4b11-4237-8ed3-e37532d37d73","name":"release-5c2795d9-4b11-4237-8ed3-e37532d37d73","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"edc0b3bd-9cca-4c00-b64e-aea144e80740","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418696684519937942154186810738562323712822887346721979317846599076909571989349377104682561382951522487065341316527958424202717074681735762324134920659084386506543327071321440996296063853185088469266561729668265300211766653216849356838080515952879947299261079946834656536504","osProfile":{"computerName":"jianyunt2"},"vmId":"a57fd8b6-e812-4fbb-a79f-1ed91c315116","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmU4Apekk+t2pVD9pUP08KOAn/QIuUc5lbWejN6UQmPb1mFIl6EGora8yx0LroX1s6+Sk2Hr4RbVcrhnFUltQOyvn3xEYSyPZrNjr3apAuhHJ7PNbyCPBS2cyoUxgKUPNQnK/hwOH5cjjw0G1vMBkKkDlrAwfsZy5IANUCLwAKlS2Yzq9Kv1UGA+zdW2W8PbG3HPRwnkSGV5nZiJ0tYkVdgPOJo/ROHQClthgkDzdQWgIj+uNQoEw9XT91cv40WbywUZAdc/laMI7wJQWBbAsefI3KFvIQbPnem4AJ1mWTfVD0JfIFmkRPToC86myHKDc2T7CWpvBDQC9l+ZJm+rnGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5991cd5b-303a-4355-9395-5b74bf29ab7b","name":"release-5991cd5b-303a-4355-9395-5b74bf29ab7b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c108465b-f1b6-434d-a97e-d65d44020f35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418126089938302767896638858737699025635455394009460700185691362447480679064096856310289878600443975305419326224208579239370758548113252669551385758307693737475165022157560162184116372314332419977983517026350826933321916273460687026786475562966654128354666768639849076704729168291618735973081626300555194609","osProfile":{"computerName":"jianyunt2"},"vmId":"12819c53-2b25-48d8-af60-1fdf8304b036","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs7cHPgD4DVpgbfKainmELiWUbpHFXWrUj0VQfV2tjB+/Ug8jzHKRjlRmbO0W2gUNTmYAve4qwD6yNlc0d7QK2iqEwVK3fc9dubY6XnNr5hzDN8O8YsCdJVrBsyYhJ9ERYdBMiOyMgLMYwzEcsyd6F4JNKglRA/bSd5UfqdAtYImcUOnFGM9Frh+Lmqlvkyl82UpbduEf5SNLBnEu+iQx8q5aJiQmwDTdAblIkuZ3yCf/iRVJW52HcvZCuH7IXkvUC8aWGwI1khYEB1figKbTBSkH4UEzMGsiM2AwGBm44ymNPfzGt2pJ9F4yZEupue2PCT37vYGbTE4MXrCc25ejPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bc434670-c5de-4c57-8fd3-ea9a38a0b06a","name":"release-bc434670-c5de-4c57-8fd3-ea9a38a0b06a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"84129de5-fc2f-4ccd-a1f6-440b11109fef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182117971791980362674221267057703738219234266167605789433007183696748821097209433853323921238756587118086871493989069131127545320735251209355186798437837059689934505682498585364551444884561058583352293772411428962536286431846356727181663228792504222847172294970945498654731407857243514853136956243876314911931645227","osProfile":{"computerName":"jianyunt2"},"vmId":"36b731b5-23cc-40bc-af5f-6a94a4573518","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6dSQwDXNnFOrag1RyL997R3pHei2hi8jsnsM+FfuUJ2MWFgcgra2yPotsOFxcwIu9rMot1C4USwqrSDFHhz0I2IrItpUZ2WgxSHDUAyShowLIsGUMm/i7geu3uH5GJu5I+qClC/JT2DqoGFd7daqkfRhskqpN19RK+GV21Zbm2z5H/RgLHhWdrWLhyfnbyTgNni2DCxA2z5tVWKhz68nzB4lwAvJ9bAX1AslCtp1Vn7cjS2EzVVKrzA9WCZAfHRd5YmjUkwAsiSwAHbm5mRRI3fbKOlhD/PmW+GzVSNw5AgX7q5MYNFyRJuTqniBFSRV9w2+45CYqWnNttxZjz3SmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-67888148-cd64-4de6-9b13-aec08de415ef","name":"release-67888148-cd64-4de6-9b13-aec08de415ef","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"67419eef-402d-4efe-98ee-18cf0ff4babc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187537638653597052446608317632352926844628394538767383977065879854949025375639337353810430059114751299888831666790813392461658742291310716083382924552812489236619161851320819469118281902144426905467298025142751944091818503517452853528295780331618508343865525438996413882356965342833355012","osProfile":{"computerName":"jianyunt2"},"vmId":"7cd1367a-63b0-486c-9b21-750f79ce19a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuQ9xWwWmAkOAUpt6uBiNIBjE3MsInXj7oo6eFXvv22YJT5i7FWuJPyixGapjcZcJXUlE7SLNgil+vKl68OUKb8krl6PcJc8V+CgDh8ryCPpwtFGYgSHbXfJk+YkCfOScv41K4J1QMN4VWgFX842vf1H3Uau4rHz0Y6JJMTu0WTciAHGWJOGKHzrsBbKWnl0dhB2IV6/bghVR+dhrLRycrbmfNeZeQYHGKWT3QqZr/fokBEWLIiUbbMusO6V1BExdubcrsRspiPl6lrx540U5KzbkPsNjKfK8bTUGm4do8ofIDZFMhe6hHODb9ntGyYJo4Sn/oXAKDIheY7GFXqYnlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dfeba4d8-f0c5-4a2c-80d7-fae8c6dfc882","name":"release-dfeba4d8-f0c5-4a2c-80d7-fae8c6dfc882","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b823a5c6-e676-402c-a3fc-abdf068990ae","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41896747342875431859255623549549333353120249793935157515921919663695284321152268095235764092718303258476748891123633922587745173117221722326444940623180714882437735863088574586621141576003757840769659601026301826424403765165496321331658683894288732076354651491076577462042222226654498627736778357111711360373458809215385222135","osProfile":{"computerName":"jianyunt2"},"vmId":"62a17b01-c9dd-4c12-a886-5b0c3d2d0944","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2HzjdM3BIizZo8u+45JOh7d8gtb0axuPzd+5CPheAzr5U1XZqtLrsXztOUyYcPXYWM+HRzrj5z+VE01aaXax7qYaoskg0YO240Dk9tnnJhYZBtMm4B7BC/i0c+OLQHnS5dh7HeXdPdHyQtjF7M8rgBwB7HTYfMyqQ3XKYhrEvqdFGETTWL5fjWg9xAVk3qQNX2xGooPQftRviRJYDY3qur1pFdfRWldaQKC3Hg3IXAW33+H2gkT9+8Jdmkt2kUJM8b35GSfvQ/1D0zbnjwffLuSqm8X9K5Si6ETiX9riQdrSpuaUYe1ksakPsnGnZKk0DzbTgzvjL/HU568lG5g+2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-51ba8e26-3f4d-4e42-b5ef-d9f46f047e23","name":"release-51ba8e26-3f4d-4e42-b5ef-d9f46f047e23","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1482a39b-be63-4d41-af8a-5da892993728","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418282856696165956371585572747913318915833851551829758933698032767998555281219596880834162158680639886584333914494377742517466682656983682175298972881855100815934162973105836471972200798416828237895104979622769073516109712305485967315583813016027494572122395381313097417876820605900504115506177414156878732689","osProfile":{"computerName":"jianyunt2"},"vmId":"dbf07e4c-43d1-4b4b-9eb1-5baea0619859","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv9ZK2JGce+bWzqDh5h9VOGFWzjYlS8Q4P3uCmU7dEIKhqIG37kDzrlAyHfD7KSiiJ4feLYQ1U+vPv348KyV5WKjyvctB1+ON41r5c3nwjeDY738KpI2Ex7CYHflHtc44irceXbL96TXi+mbIlfcc7eEZYabEWLdmve1Md5+bnFeMjQOHJ80tJLKHhiSuwjsGRBZ2DKJhtFq/y2HlOGvY60E9ezkAYm2Zt6GRsB63JUZAxPZ7frGmFfuovOJpb+29+H8AFMULRv4VBhM3YIJyybuqsbN4bEZ7YQqyTBU3CKyQQRitVlEHspdP1CGdWK1nsTHCpmT123/nGkXO0T4SgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-912d1a28-7294-49c2-8e97-01753862d5ed","name":"release-912d1a28-7294-49c2-8e97-01753862d5ed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f8aac49a-a772-4d4d-80ff-bce4bffd7c54","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187990156434523523841665023870850768098619977925889707524098862188799826021941651548329630558074496003598944686543609172541506967777565859575623154523939475678191505803633930311756745121241937464246365222822694899143589995745025029087346373426236973026259240195579592198681987732771952145948426209360622228031343887088386535","osProfile":{"computerName":"jianyunt2"},"vmId":"a497d2fb-ffb4-45fb-9859-05fd4bd82422","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvHZJSx11SXSmzXAUEkoNcOM3QfCASHJqsSwazfxydj6Npv1ffKujf+dcH5doO8/AYZHQgY0beiE9s1Alm4cDK50ujbIFHU2vXSgs3r01v14iUGKIxG0kTYjvaPV7+Ephbbd6ihZKslb4WEXtgxfWUfeZ5OgUasYs6rtLMso3IHl0O0O5AUVsMyCFbuYMqIAqDPsEYGiDjHgilmykt5fnNd/HCoF9v8MnVrfAlvMC8egk3wZcr72bAMwYi4UypORonuIxricuQqL3gw5gB0+Eym9YHNfbm5Erq134ZSjAS/hHZoeaY3PS2DvNWzg9senrAgoPm9N2aHWX7ImpSJMBZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8b26be6f-1330-4d8a-b34c-03c8134d954c","name":"release-8b26be6f-1330-4d8a-b34c-03c8134d954c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"295f05b8-a494-4b75-82c1-9f6612e2e3fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418845255804347109725602149398820374012325776304182379381257132253340379040325533058660417951133797294914893745108176768598490657463995337848288216149882754180626628155613898877170888844049634127072396802637407083175072503018997337254561719419641796060549485548819528693338734932285","osProfile":{"computerName":"jianyunt2"},"vmId":"bf959748-0dc0-4cdf-8574-4b16898cc7f0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvlkpFO9lDJFTVobfAqoFclrtJiG57Zrg4tmyhT++pnPmXiXHoQlEYPOWtv0c1uZzoC+ln9qOkAY3vUE9jGm5tDNb2QtjPPUSwh7U1wfE+6pe4hAUK05u4Gbp57PCfdJbwaAFzWlrjyG/q253p+hEy/OJlnYTyBZqAmSKXwhCSALJD2xmYm1oMtvu+3ciKdfrF8ClhplGC1jNaI1beDInrvpZddpE84F5GwBBYQt36GUUmLWmFURz2r6uUJNL0Xk3Fpt8rX7FdiWK0f5Y0Yd8ab/I+zw5iHz/NI+TFy4X9HgHOsvogs2XrOfVubLSM7WSn5nDMVfWUefxs491BGErEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-676942f8-313c-4cb6-8f35-fefee609ba20","name":"release-676942f8-313c-4cb6-8f35-fefee609ba20","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e4ec167e-fa5e-49f0-bd28-631c970230c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41857276181865926821713647051077055757253676363052778547135339345890836111983481719567119709132787454586777029577720163587521715740474152306347466793163508522441901477451099672224517742091673441227154283792571269497614454344614415885978076371065965673215721598598150644313308277514683824148049126748434069827214731777445777775643024643985916543508","osProfile":{"computerName":"jianyunt2"},"vmId":"df5720ff-4744-4abd-98a8-1c7b0e72fa0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAubRvJ18XQ3y5nL1oKeircUMk57WnzwOGGPVKjAsqOqCswcoX9kfdjKN8bnabjWUzI5GvU8Q0IIXru1rIguuIjSy1bpFe6+t4//x99EzVroPjk0SzDrmJ/qHOu6rmUMbHONhyXCttxymyfjRi3v7Xqpxg2S175KTs3jo5eIBJ+o+i4epscM2k0enKSrwrr2PGe7jbBUYB1+J1tHnbNFDoofivemltWJF/yrk8WQaubHTCUkFOPJxvhfDvm/3T3sUHcqDcfpF2fUH6QQeaTQ6rKBRrCad7DOjz0xmQazk3v9CRGW3+ZMmRhmenDzuHUPYsSBktzftgEnvSJpOswK7JSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b618a489-91d8-4330-8efb-69d1b0dff19d","name":"release-b618a489-91d8-4330-8efb-69d1b0dff19d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"58599cd5-a4dc-4b36-8bf9-65fb1d673411","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418933545833825996423237027480333231641140866795266283418501598213014447495831238442814277639726860870776128316628153459511717739816356653548536820064483221021672111950317868175131639351147174569524157473161812316773158572444781336866782635522165803820936736363122051115179491319264969424391610764098861345471304773","osProfile":{"computerName":"jianyunt2"},"vmId":"4edbf62a-0d65-45fb-b2d1-2e9cd6fc0f9e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt5R30IfCLatzVGlqaRW00Jj+FVB7XWzZThoYNqJdw29uhiBJmgA7WZ0pvaBunPDQqQHA6NJJN2ooTZZjDIeIYrd4hodCM9vMoZlqhm/6NgZLui1FRV19tdJdkE5FMxraGl7u07C2mcnFrLYZboPaG2vd8+fIG5AF2pLJmjYeu43ievtAuTuje57qtDLgU9CjLd1PI2RS9jnZcsnT2ONr+5psoWF8Oxah2CAiRY3+SbsZ3Ov8WZBusZ6YvQVw3AmL64Q+OZJ3krboUtY6XPTGiEogJ78hh0aRXkr2iH+vA+oKXr4gsK7s+UmAxINylL2dZo7kbzTti0V23S3R77PYjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8d3e9796-b0c5-4f89-ba56-3df2db40866a","name":"release-8d3e9796-b0c5-4f89-ba56-3df2db40866a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3b37317f-9ba7-4c73-abdb-91a4ea1b09ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418900377695974727603502142567728228110975887913311306047856872139222225901304331199141115913558139456449525846737242771063298227722128175323427473757884667112425221583838692016117121110761924867952949683969420725040619745804462604155786769246998245549513366239769496579579173373391452102613757945480913720241180","osProfile":{"computerName":"jianyunt2"},"vmId":"0f15e678-139d-45e0-99b7-02d890994250","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8+4RgEc+07w1kwDEtzisp9J+Uc3z0Mps9rDN7IZfU64Cfc5VZIHKd6T2zi4fVK/VWfqaYX29DT3Rqykg2JG2VKxVIpwcsEut7F6qIp2xfoYGk9d146TL9Isnv6KSQAZg3cIrq0yPDtnZQMJ3RpJwqTaeZcjAyKUOWyU/Nt17CYxGTAp2yNvx3V0nmf0JQTXY/IrxtfAgvO0ZJqI5UNpAOnYFpCHJgxL//Cm1X0RWAsjPXkbpIKjX7tBDKsyzVE6RFbJnutWnXY6ZI0mfaIJtFyipAhK+F9inayecGyX1s4M3+U5wHYHQA34scxkG0oA8wsWNMFyphoTlfLiizoVL6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fbc3cb90-03ae-405f-af4d-5355fec27a53","name":"release-fbc3cb90-03ae-405f-af4d-5355fec27a53","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2cf9f939-24b8-4486-b767-aac6f107409d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182928487463294936409673645384291301115498739720384031815664130165449393142720561191752530148965554232908175092686347370092050111960488591139151541974236843528892143961073576997260895891892563396557516553955737273153037874276168408920330308302515115866090","osProfile":{"computerName":"jianyunt2"},"vmId":"9b144d0c-cb27-42bb-a7d2-c402ffba3f7f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn0oSqjE87pfYj/O/aqvojep2aAMScbJVo0IrkYX962+jk9zhhxZJ68aBh3h/8X4ubkftxRxGXHSDcSqBLHSIKxwWwcOXFh3PuGb4mmEQFWN/8pYQwmz60OhGdWLLUeqsGQIq1Vs8sXUHwjif7fAkucsJYnHs/H1kFUc8KLpVFQVQAExHdfC1rFdHI8tMCuO9+20s0TBK6UPK0WIkl8CwcxJcakE5WlaejHB6dORAw0cncGRg1KCV7LI94b6n6YHMy2hjYp8KBRH4g4eziiJcZ4I7qeXfd0PPrV0lHmFT4rlEkkQ2wMyVwXjFXhSSu5luWzKNp9z5PAP6wIbA43T3QQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-54f587f6-1deb-43e9-a4ea-d8a414104366","name":"release-54f587f6-1deb-43e9-a4ea-d8a414104366","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6944662a-cf1d-46d5-a326-9ec8bc8284e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184685107375692239512214128663113588363269367750895286717539862761085392625325328369925252205124101570794623641951317701323679347114827485133522783696065084187247811232501983798301101649027143549365538114152742678428667667571825721977688360810282127218902397054177490984534156253665717805415543285219460949483746688114010532691","osProfile":{"computerName":"jianyunt2"},"vmId":"ded9bb96-3c7e-4806-b3d3-3f42175deed5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA88Sft33FEL1qcWEOODm5V8ZzxSdfPSo1MgQweV3PJOXc7xuSu6YU2nh9F9DbReIpJCG1LNBWHIOku2EZWPg7y8tNREz9BndE8VdJu33ziXDP4nPy2owz63K/L/Uvrotbpg+aAsEdCAihka4g4dWS1z+gjhGISDtPpM4sYteJhSJ5He1JuceyOfB8vnL2v81GK8WVkrTvpxHGQE0JI2Si07UHq8b38EPlh20OJJ9zjEwgcM6ltrPfwGkJNCTebrB7wCagUMz6lB7+Rz5HB4iy0niLpjPUDbUIcsrNgp+wLHXGCEH7x9uDr/rvXUP8bD39IRZIMPLfPZmm6QYJZKHNEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1e18ce3c-121a-4393-838c-ce582adb750e","name":"release-1e18ce3c-121a-4393-838c-ce582adb750e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1ce2c57c-e9c8-4eee-9a92-36ee0d4e1f36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41850051206608667246894342629909123356987409670401362829966691148652268089310347844099261535661695469456225467457183936124938671395621463401910161284737774575390826106479467007384712322791569354885821894734366047232808232725329166617942580432945467826454355691184148263566075117865223484923912972579799199820279777422944796698033","osProfile":{"computerName":"jianyunt2"},"vmId":"3424e874-43c0-409e-af65-0878fbc2e37d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxlDruMqu2hZf2Ya69s4AsBNDdlg00e2Jy/IeIOV8M3iCefxipS2gpK+qGQ+S/K+CSWkHVfLq2OCsS7NzylRI/jxqbMhUjj3/3rvO/V65y7Mg0Tb3pOIYdq67oGuHASnjsC2ASBO6j+m0RGgELE7Z/GD/aJtGnPjbz2otx+FI37jd3etDM7XjEC4hb0loxDmkhUJyNVJISCIzpiFrpuDeMzNQMC4cAqfq3TnQLjWBisgmTtGb10cT+qXZnoJ7I0pWSOJEz4SDZpLT53jTSk2URAbQH7lvjMytwf/2ev6PcNNgqSmCrGgHLQX2UQnnqyGhls369Ay91BinrztHBkD4lQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ae787cfb-cda4-4742-9a9e-17b856b1d41b","name":"release-ae787cfb-cda4-4742-9a9e-17b856b1d41b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2bfe0328-49be-4c4a-b56d-06facd8db180","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418797257089763863624854429225176771864457872042309438941939115250266636773511553652909312255965838347726779531693306993118957805965329626127400797097207852414718657594699079848100675038010876394752615062182654620779456613881983652566297955246433713885372935388595739419746793950364537158923670479322421809275502062965659575222396967969970","osProfile":{"computerName":"jianyunt2"},"vmId":"9988ae97-9cea-41ac-a2bf-1e75f275b5b8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0yDtAZlFG3j32dEic0mN4ZVhsU0vn5zoRtrLoyXU7Cixyo+szYYW92D4xvUeecm9bz84p+8SrHEzQQ11QRyM0yDLEbBIbUk9amcx5F8Lcec+4dN1KJga+T5+S2objLK6A8u0+7R9ZjOEtrH3BIjmBd35FSJt7P/lYJ7NWOUTzLAkma941zwHmxX5pGGWngfFx/XdZNu5+sMBFrV09XZ2N4gz3tSz25Zskt1fspNxegjdhKBxeq2su9C1bre6WnBP92AHqH1DAbLbF27k+Wk2Md3CktIsGpmt5KjuTQ91L5Ju89STd/7QMkKllVGX1fObu3S67R9TIfMdHMXAnO65xwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-68e1649b-9a72-424a-bd3c-b29024cd21d9","name":"release-68e1649b-9a72-424a-bd3c-b29024cd21d9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3b698b22-e359-4cfe-bb7e-86d7d1867643","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418590475671710456959908069530131284698229219517094437350373014995291299889249082124061135886123065889989837097954508773781391736526945185498078297251176235769955411854544536281344786173734177209446422272386664842915896020111640740125354387","osProfile":{"computerName":"jianyunt2"},"vmId":"3d7a3757-d21c-4397-bfa5-dabe8df1a2c8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1lszzCdFMcbZtJbTdC7L6dOBJ+IIfWGje0Yge2TC1ootm3DFxELxfkXaMFOP0YyT8buQbDWwpbZwo7qvZ0Zs368bykkjFW5BeAXepc0n063tOK/JVpoxtsxJJWqIrRxL/iIY480eKDeuBPf1V88xD2xB3AfIQNNFqdrCILNVfmXBfU4cJeMTbfJTSpl/uio+B/qbqCVvv8BBihLrUiXF5pxgtfc4g9M6oClY2PUqo5YvrtEBDu3MaH8O5sBA2qhM3pJj4X/SNxDxPzoGDXQLbSJ2BcpVd0IdxLHGurKgD6u6cQUCnIjtvqwAOWOaiIp8eM5TGaGDb6mQfdm3AiWVUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4fab8a43-0cec-4a34-9a8b-ce2ccbfd4979","name":"release-4fab8a43-0cec-4a34-9a8b-ce2ccbfd4979","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"22867bbe-456e-4996-aaf4-a6e1b8520856","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41822102259340788237843101480889687622758719841305861979182724258138293944996661531536286323014508771486101183434372955756321619088318573942232793392072283744329467682362681424794625669191181016468934655734694402421752561694623135209552535056106722885166373439163205608524344509963272712799506649512772638","osProfile":{"computerName":"jianyunt2"},"vmId":"6f7ea411-b908-4152-8095-5ed7a5f82c6c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlGYWygQ7GXzQikqSFuLaP4JcztzJoWinr7mCYFSKRhmv7g/zHwlnMX0+eez41RHj+GhA+Te0NsR4WpOhqXcNdCIw3jPiQ7fBb/YLCO/5rjRFs9COO/4FdD2nPTJr3RBYBdpREVbB1mRUhngduZitauTXQpv5O4BjqbmBVGku7Sqb9CZ2en64/PC/3wiOGVAQ0lAoXn5CwWvzZaFP2ZRwPEXPelqGd40jf4xATI6MuYGPLCKDAOKSAK4uJgBFrkaj4FK4HKPz19d8STUSCX0fZ6jmCdvd2RWbsyzbtMZN+s/FdYrKGHQPD9nLoNNA2Cxp5Prx2KH9Xvar6B9X/2mJGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cb7f79bb-8975-46fc-b695-f3dace4eaafb","name":"release-cb7f79bb-8975-46fc-b695-f3dace4eaafb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7a180cf3-90f9-4511-8992-92bfdce05279","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185888120891405900306519348984722424545302506160085301216644774526094297046096035923631104116198768723293323313871964797956788858263873108925219681528813317968581662605842876184362607774094003965780994675335903848675164529481669491525491371934321237007957331453428185063136744301282464399260","osProfile":{"computerName":"jianyunt2"},"vmId":"d7469ca0-edc0-41d9-ac3f-f626562a18b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA00RxiYm1VlkLQUqhkWNS+gbE0Fc49ahuEx5bO2SfKJepGCr86zOVyP8kz/M+WajAEzGaX9C3s1wBIyhjNQ2Q/1KQO2xat+6gOBsLcKLI27dYYVVClK8Ykeqnz74PWxsIMAbHJ0z1QPy+wRI8Wc5ukjt3zSyUyU0eiaDr8UfTEiYMnkey5hFl+H0bn83AoQ4AOdTufCbIhi0lmNAnzYCAk6xtXzThMW4cYl8CeHtYBuYUC2V6tcYvuLzNsVq3doF+DQWCLN9RtdDilxnrBYY6KijD75CD8EqC/hgXRYEIbaEYQF6RtkPvi+7Xoiosc9c/pJnh3cjEUDaoA3rPEaqGowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ea2934e3-e4d4-4789-85cd-41d40adbd8b5","name":"release-ea2934e3-e4d4-4789-85cd-41d40adbd8b5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cccf3c80-266a-448c-b677-5c58101cccd1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184199682659958720958212947857747554857934352967527272557458893291277168335448845166483641124752779810268512347842347893456832452867582876792961941575205545262318037879256696838061947935010131648433873662395959010789502312972483583858167033475363355949427466834856800338770969506969369072226167279916056596197075573187","osProfile":{"computerName":"jianyunt2"},"vmId":"66172410-b65e-4ed9-bf3e-f4b133129a1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzu7MJafDAy3DbpP8kiX8uY9s3nIE9IWFA3a/D3x4I3EJPX8x6H/QcjfvO5Ln9IbNYwJFkXeDziclHQIpe3S8CBh77oaBk2ToUoJh7D4TJYX+buJWAl1LNCew9/9GXT5FuH1avVVgzY+RBuP44w4A749JrGlKSu59DXDtn65GWpE+HX8NCSvxCHkKfhj3R5/1od9niIz4T1i/NiSoxRpU3jhAA/mdEghBtURYTOMaQrAB6V4+37/QQthViyV9kqGuTpAUyk6TJJFjXpDSb3Jle7Vd/WDT5LVhWPCjPm92kWjbqby5ZIeH8/ldtP0E6OXx2lyEXFXrKuF12T8S6nyrmwIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVLbbptAEP0Xq%2fSpxBSwgUhRdZaLs06TcDGW8ojxGq%2bQgQLxJVH67R1spwpaMWdnZs%2bcnZ33USWO%2fW9Zld3o9n3kI1mkie6nCEe3o23fN93teLzLqqwQO1H1N9nbaytu8no37l5XXd7Kppd11Y1XE2Fapp2rm6mTqebUylXbMh1V6Bsnt%2fO1sV5p46at93It2m78KPO27upNf3N%2fWrVy7da75rUXVCnfykp0v7JGqnvKJPI7XfvpqJqtarratGIvxeH7t66UzaIuRXWnTJhiMUXX%2b2FLVjEw%2fHUWc4%2fw3yOKJzxm4s2wqvmJ4%2fIpBgU9RTfiBSVNCCxid0CaRpgnS8JEYnD%2fmdB0MjGmtAvCIQfFjMsXecKzXxWhzaKNogdUkKdEOIAjw2NEmGQFZkByyBmsj1F4cZXpEKClX2PM2UahRY50YBiCpzmCA3ywB%2fDIvTIELkUOYgsH8A8uEGO2DI%2fxZ%2f0yvaeEzZEogJxxSB9uyNhQN3DO3IO6%2f4qsS2TTpd6eMqYBDDKUcfEblxPG6azSsZMCM8AE2RA4AClczEzMDsHQ04T6AnCfLf%2bQ6lnEwOuCRwUnbzCPUfbgIGHJfAkWQ0PwXD9JVqCmc%2fuB048YjyNEdOMiYT4eXJR0fY7Cf3DrxWcn7K86HVLsUwUydIehdZdX8PSICKjimR5bwpEfAaUr4L3g%2fPb6DxqUNqsKcR2b8xzt5NcpOufsMurpdbACapCuWN6wJt7o4%2bMf"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '153050' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:42 GMT + - Tue, 15 Sep 2020 00:31:48 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1237,8 +2409,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - d9c18db0-ecfd-4bf3-befe-80958e2d5d14 status: code: 200 message: OK @@ -1246,36 +2416,41 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVLbbptAEP0Xq%2FSpxBSwgUhRdZaLs06TcDGW8ojxGq%2BQgQLxJVH67R1spwpaMWdnZs%2BcnZ33USWO%2FW9Zld3o9n3kI1mkie6nCEe3o23fN93teLzLqqwQO1H1N9nbaytu8no37l5XXd7Kppd11Y1XE2Fapp2rm6mTqebUylXbMh1V6Bsnt%2FO1sV5p46at93It2m78KPO27upNf3N%2FWrVy7da75rUXVCnfykp0v7JGqnvKJPI7XfvpqJqtarratGIvxeH7t66UzaIuRXWnTJhiMUXX%2B2FLVjEw%2FHUWc4%2Fw3yOKJzxm4s2wqvmJ4%2FIpBgU9RTfiBSVNCCxid0CaRpgnS8JEYnD%2FmdB0MjGmtAvCIQfFjMsXecKzXxWhzaKNogdUkKdEOIAjw2NEmGQFZkByyBmsj1F4cZXpEKClX2PM2UahRY50YBiCpzmCA3ywB%2FDIvTIELkUOYgsH8A8uEGO2DI%2FxZ%2F0yvaeEzZEogJxxSB9uyNhQN3DO3IO6%2F4qsS2TTpd6eMqYBDDKUcfEblxPG6azSsZMCM8AE2RA4AClczEzMDsHQ04T6AnCfLf%2BQ6lnEwOuCRwUnbzCPUfbgIGHJfAkWQ0PwXD9JVqCmc%2FuB048YjyNEdOMiYT4eXJR0fY7Cf3DrxWcn7K86HVLsUwUydIehdZdX8PSICKjimR5bwpEfAaUr4L3g%2FPb6DxqUNqsKcR2b8xzt5NcpOufsMurpdbACapCuWN6wJt7o4%2BMf + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-38c6132a-7a79-4c72-b098-4aa2d2ef9b50","name":"release-38c6132a-7a79-4c72-b098-4aa2d2ef9b50","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1a3d53fe-c562-494e-b7d4-6956f2d4be5d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41878343306521256543109928266316923238516911395374331158617544284171512984758162690617422399532202083549591993175381124781175530837237800850483875987913540079162895689231319061596931630682822546552679002859802782477593787598921539507491924533130534807579345903850519152866300322329776127","osProfile":{"computerName":"jianyunt2"},"vmId":"e8572250-4a17-40be-88c6-fc49c74b9177","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm/fVE4AfpWqnuaqvPpC+aFcKv15ivORV5/m989Zecv4NkSrRbr1gmnd9t037Ld/uM7u6Sop03c1OnQdgGtZ+b2RiUNdoBLEEvYGa1FgWbqPrzr4Pxck4aly9Fsd6s3r6nj4GAPmY6jI/Kxm5Q8oldBbrYGZADVL22ksMu586hRdEJhZ8nAHG88ks7hfaKBF9l2nNShhRwrspnLMAum0gT6GQZ7Rh0HVZHzBZIBNdp6g1syzQMldOhhWgg82gMsEOlfn6y3odBm1I5+svFEwLPVc9lG112kpcw+C8++7fH2t+VXZLvra9ApOyDy2J/UwaUdu6FGSyscdLKsguDoOErQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8f32fbf2-f6d7-403d-8a4a-97dc0bb3f604","name":"release-8f32fbf2-f6d7-403d-8a4a-97dc0bb3f604","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ea046c2b-47f6-4f10-a369-b80fe3292d06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41865708006706128714779520729459405887540769363858128912839421877108700440904941869457333722992632827792646598846637023253014354367411641703180882298395535361982903103684519038903854832652458649737959496262464465474280813145574025197845438078567422858095765972047397910334882668908394740841651","osProfile":{"computerName":"jianyunt2"},"vmId":"154fd616-cd1b-4bba-a580-7fcc2161fa2c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxbsH/7z6QbUKsPvnRhR8SYTrodogsKiP86lFY3Ss0eXA0K8yZ6JaqZ6Z31TNRrbrvpCqbITnScSdSrEyHhuXmI9yD/Z8nrUBrwmx6qsR1OVrrgH5dGbsxauh7XNh7+DkROmFHBbUAJfzG3BXHRPSD7XOJSzDJ28I85A1EYCz10u6vuH5n3XdNefW76XBquBvdIbFzMGIiBUJsePCKCFLH42Amg0oQn2eToonBAiPw+ecMB4CZFhZZEZM2eaxtgpLZrAU6hW8xqz/fz2sUsPUP5i8hfp2JDY3Suet+odBoGm1NoF/kbsLpOHriMd3l8wcpkwBJ8Lio+Ve9vl+WMSOcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f3a97afa-1947-402d-a7bc-1e2163323b6e","name":"release-f3a97afa-1947-402d-a7bc-1e2163323b6e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3d18c159-3496-4e76-8927-82b80e4b969c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418813924574546732464436226784160096885458322550611276827784924384603641914145008544617611663985749725987594386247637689744815913918352639279154492825560589674289894852307962875115969500188769803215404021065378358110882995907335846449660381398814641557779729184415622688816798092568529294221244","osProfile":{"computerName":"jianyunt2"},"vmId":"c6916f77-df0e-4ed9-a890-b63e7867a1ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5a/Zkl7HQrI8WS1xsMsu4f11tSrwxtAC8geRRhQ9bpZOMBxHVt0HFN9LYJFT+Ti5U/uoP97LzUw00aNfCngQyS1w9kaomm51fwsTRDwYrTij0UsTSd5C13J+V2BkqQtBWl7QYzGgm+g5p8ENYuZnGfWrtnE4fLlpXd1VFrjd1TuxHn4GETam5LeIZ9JvMBiSRsSq3amn6uIXdUv1Gd9HCYVhWkW2eaNVzmp9IFLEuHybXaOcHcL2k/AAGxARAfkBPPh84UVZKhHZt44ksIqk3Eb+j3jYARsmqSXG2jKJcYphKkZX8McIrQWWrhcSYPiQFzPKxjGC/t2yKtcNQ4VePwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-83162bb7-d48d-41ea-a6e8-0d37868d24aa","name":"release-83162bb7-d48d-41ea-a6e8-0d37868d24aa","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"64753110-a3fb-4cda-afc8-89727b3ff152","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187002617075501755553160753451070217377349463248239201901619979476796263566335678214035874741402611804515416121555943857292566336570706870147548164632637259907636431676857319092819555329392153269756448579743465538071734059158281835674197122055943072698696239755445305227213712611611056574599924122241044495377742148424073164445","osProfile":{"computerName":"jianyunt2"},"vmId":"f1974ff4-3cd2-4311-b9a1-3e447229a1ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxWM6jBHDEddK40kUh723A6FC8RU7IAIHxkeoRX5cTZrxC6NwmLoioab25uALBmHBJAKyWpAS1l3frkTBc+KThGIQemOanHx18/OoRtB5jy5mNppjVy6g3Jf21jhB0PVFemaebwun+55wg1QbvicYYd3x/696esvBCN3eoO5DgtmI7xCnsqr9uv/ZwEhS89QubTST9fOiozyon8m1esaJM73+mx5AjV81eD104HjB17EP8Ri5WjqSJPQxv5gETXeS4KCkUF2BflmiBCeSqU5JN99UjlJyPIFfjT/Nr2P6Xcs/zmWRc9T82J7TD7YEpCBZ4jTnEhsbM7/JuFHJotJgAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-60197d24-d21b-413b-b253-0eb18697e10b","name":"release-60197d24-d21b-413b-b253-0eb18697e10b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ec2689a9-335d-4dc9-8268-15296a392f7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181192571888956829995078086628972781878176440652847678049211617915034384865548211566093635248553542826667803481870428826447378982546207931732949324649056328549448074968737818213774261216891348410291983462161393946443480272228790277415307424438464280255977862736","osProfile":{"computerName":"jianyunt2"},"vmId":"4f87c606-c97d-45a5-bf7e-6960bb7674b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAphnVMk0ydr4bJSYoqOrBOuUGaqxdV+OG4IcTTBbIS0u8QTewWTYDiPyM36/8z9fVlh+AxpTAoVbA76rg3E5wLyOrgRpmlu6CY9M5jEtD5g3RGjpj1rvY4WodzgmFXenKcYJeMOCHMyA4MlUwrlmc1hlyRTkc6MgotghZvB+FHjh7hhbyoRA+ZbEuXzvl/WNUGUTPttCfkjHCHAy98Cta6ZYhupPnDOKFSl++WL2s2ltCwvc2iNQYdON4IvxojKmucJ+7J1ynKPCMSNQcDen6kYlDQxPlwDY/ZRrwHSZl6wzCiMoxmncqxNx9xoAJ2qKoFdOMIWV2Ve8e9lpTZMRvOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f53dae2f-013c-4a73-914d-d77d8e81efa1","name":"release-f53dae2f-013c-4a73-914d-d77d8e81efa1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"09beee3c-dca8-4b2f-a53f-c915a6699d8a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188886761662192926370760596042333785659935717768848562373648319668123939839069171697552322513147596585419545611399264928598511909227825612039078637774855066611833593414281294710795539789430958119676420275912554301615740323735878420685989517104129763637975293942738045508849692919917058359550666601157","osProfile":{"computerName":"jianyunt2"},"vmId":"dbf141fc-16e2-436b-97f2-87bc040f9d51","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp5I4GksqS0dwfthF5i6TgQkCX6aq/aaselOOrdG034zUaSbteFUq95wnv2L694M7I5Z4aDVmw3ww6zmmtwS+qlnodnKgIlTUa8B2Sj58EtgSgTqEryf4S7qtKM5pmaAoxOwEUg6bu/9jcX8gtO5OJh3INobFXgfmf7mUUTZDXnFUExyVedl4i3YSbLirjxAdefkD3Tzvu+ZKH5HMpn+JNK8I0P3njq7xcteJK2m+x0oJwGV7xfuViveqFC89JxgvWishWfA/brn+aAVOSw+K4iibcadTXcBdcFqdnPaS+xre9UdpIO5LdMlucO0I6F+ASF9pVqii5d/kL/eF8PxSwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d989309a-edfd-43fd-9046-8af70f838698","name":"release-d989309a-edfd-43fd-9046-8af70f838698","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2134ede2-eb2e-4bbc-8193-8ac0e7338d5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189879841243543099803741766054842417550927559582744635712286581025452390494755473854219969883492003323197317195571141821178687426102073063916504064472238120616795394320486748711619841569372823385499862914151016994198010195227177289432029612623011628372959575687948025942321498057321326953594288623920322295332920548468697301719254878423883459814","osProfile":{"computerName":"jianyunt2"},"vmId":"7699c0ed-35b6-4aa3-b3ce-b3c92846d321","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAswB2UqWdC+PZMfIw1NE3E7Ygyr98g6UkGYSiqzjgROivlZJi9UcunIiYAzTxqjzwEVyUc8nVqrzeTuoy0L90uLcWHx+emYEObiNfq1xacMeXgW9gwscvDjHLc6+Chz3JWbqYVVxi1d6OrQqt0ODZyz05TqikQhx/l9nPRfTPZQ8TAGBdGDjVI/KHqzh32/PWC+s618TlF7W8hyk7IJ4tejoI/uJrqDlc/bZAp1DYlYpAa7IrpSTq6ixJ/ujdcmyqQ5bwa5FVjlAXLIlC2Csw8EWHnUiULuH7GGpnHaq8Nj6cxoxKbzAcVDr3UfqKOAck87Knr6FtdTIxUqLMAVo1dQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6354934b-fb0e-43a9-8a3d-8a60165454d9","name":"release-6354934b-fb0e-43a9-8a3d-8a60165454d9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2fcfbd0f-9313-4738-831b-5971408c265f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183807195240692968635892867543236760235702172625090031974143169343338976235625749694530818773179116929428191151275174719517185613521716644907941376199497530769887891634834159393197779842901158056905688148947011134335968739275949849807228378419754974931456272828664","osProfile":{"computerName":"jianyunt2"},"vmId":"1f7a622c-1d04-449e-a86b-881d6506bade","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtUi+6KoWfzqy9kE2FdZDEag7h4UAs9YJ8Ig84MQx9WcuS0+2CCoWdFWS4DsWvsc7+sY/1VP58LnnKMKkgvMR8VQbQfaBeurXayW1NjcSfIQxnOvVrQmRMSRaqDNXPSUvRm4YXTVMoCf/gsqRqP+BkazBucgOXK6tijJ3xweyJhHLsN1Qa4jZPcTdWwbrXR0rRIdLTAsV5AXoWSkh10XNg++OZkrsZllAMF3DDENWI6VDIT1Ze90NzfPpoC0F/XtVMelIgGm1MUkajk1+eMn7r7Gub5JWqeTPT9PCZX/BI/YBUgCuHF3klYvKBI1MY8ndNq5oh7iPvi1Vo9itMbdtawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-92574f88-7ab9-41aa-a524-459e3137248a","name":"release-92574f88-7ab9-41aa-a524-459e3137248a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cc70fd13-4def-49a4-b3e0-36da0d1b10cb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183322198899841025952926927571176958893031611518852559692729286929944341340281668208560386031785644152845202134644438969826202711563032376589635672416474802624494168197137238064788961471789894435858504880820453121344594823196211237546506539328146615398734251234530561685273017669553098690473513262334606510418601578489482615","osProfile":{"computerName":"jianyunt2"},"vmId":"f2208198-604c-43fd-bf19-4ede0400ea2e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn8x1Si+vI9ri7D9MMy9EXEb2dkEZhcLoQUqxZPBtnrwoKdOpdG0jy+//1i+jnXkdTZzJSRZO1x6xmB5jEsBzasG0O6+ll/twgoG/B/WRK4+XK3HQUgQu4lW3yj3E5Rbep+QEgzFXX0MhaKarZ789GMakT/Q193ZwfteRjVcL0L5BnFxKhfRTU36ojFFS6vEyQscWJwjP+hpBRz6o3oEgh/hqmAQm4y8/sfLVEp8AZMAq9HIG0mbo0HKpX+UUpY24OPH4BCq5zB78nLPtoyH5yLcMm0ObaK5MNrGkh2yRJOB6z9DebL4yBZnW9mwTcwBXlRPD8t1FFfwnI9Eu18c4SQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-eebeb1d3-a2ce-4eaf-869d-d4f23bf35b84","name":"release-eebeb1d3-a2ce-4eaf-869d-d4f23bf35b84","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"91d4e083-f1dc-49a3-b6ed-b1e96bdf4490","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41826584850809278257805995577901185136217413260910129521495746374406257141798153017795627566504660101330393284264612613574778977228193834470025126224432385532154448881931926573570179101817645318593761104766473683388826197750694610621760393722606825182771712808988977045340","osProfile":{"computerName":"jianyunt2"},"vmId":"050e1e2c-451d-4075-a639-1ccdf8fa9156","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1NX2bXC2LshOMa1Aetyk9BGoBKlnxxU6zZ0EG8RCGRXz4QWGrR+yiL0hJJukd+qlZud8iyrrlI44K9tUJRuE3uRygL9hVloOZ3ZzujGDTx28ONHAHCHwQC6EztulDaRFC1WEzn54lUVUId0o100BbcZpe2J09NsjMtCt7JS54Ak0G7DaGrxnuATgwEEoXREElL9DGW8Vy3gaVIaojUULZki3ZzTCDXF4S/W8VB8ViXhxBLQ7zW55/rTLTCOShwUDnyuhhKfaHFRM67+D8PKdDTSBFXZ3sw+ZjcGwm2pLwUqwL2FUbMmc6Z+o8sBQFFBfN3TWlL1d7Q2WYpou83drJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c8846c41-c129-4c3c-a487-b76f09814ef0","name":"release-c8846c41-c129-4c3c-a487-b76f09814ef0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fe483f6f-6258-4a7a-aca2-84bd66e2c882","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184700269935088402557067694201793860811596157220747789004921580718376615791293737383539527849128985763089635868914049524860979476348397230541890626898503619114971501375982793384211345292844119147576798701600543833943643197144483266691699928749555835536894695455533997832360636085621410473225842296498306642919239571179861","osProfile":{"computerName":"jianyunt2"},"vmId":"e9d6172a-edbf-46cc-b001-4ccf6876ca14","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs/xHR8hmba/iumG0vpgYzhfy/fmJIMmLRIwI5dqbGFS6MJw0YzLzKejeUrSmDP9+IgAoGnN2pxsjjGe9ylL60Nsny7LrjD8/nj/QNDHECrBj1WdvO1w2XOGqEG/P+s0BZG+m/haydZayJWrbzxee87Wj1sZWVl7kVvSpJWz9DuG8N5a++H4VS9Um/WP2H2jXX5HE7Oem8xyThBwsiCF5Z40oH7xS22j1d29NW+CKGqSD1SFqjqmgwCXTK+kpqkPyZZiQSPcr1cjCjv3OSamPOJLJFickKve3cxASdCf/7pIuzWARYWSWqOXZNmho08ZFywuHD4irvfEax9xORRmxzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b859134c-ce82-4984-a3b9-7e825ddb58b3","name":"release-b859134c-ce82-4984-a3b9-7e825ddb58b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7c04a393-a099-4391-983b-8773fb7fdd57","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418126041204217482617222985451061778227577738023142054785596153933799442356017296145314482846596237082526663669131023488871061628690164391399180455794006271797738851170362448508685454958813681261991333559872007525966440285951882640191927587723963355775784265295103414976322943995653266676203028543127848644597818795426973","osProfile":{"computerName":"jianyunt2"},"vmId":"28b038f3-4d53-4f37-80fc-650ca4cd3e85","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyXlH2vk0obvN59c7p2E7rrXY0iPQRAfp41AQo2rAaKBcEuHse2Ojz66uBeKRP7yUrBSmChSgEwQXgaBC84mIt+NgjLG6jdnieTumBFeZm/RZT7rAsrmYop3eMAhl6EnAHNxEgWNfNuu9/+xbLhm2RtI5YacQgxNAGLqfVz/gtPyX7TNnM6P5Tc6N0oQ+c/YwCZXN1nukFNzDk5CjbtAkun096Jp0UJXQyS5oNb3VYg0i30mckds9X0hl0kdoyIpKuCI99ee6IgyoWx0ecKY+Biu3BT5mwTX8kAw77SygRNkb++MLwgWCSPwV2OC5wawsTZjDPNukRlDpFFwBshiA2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e789141f-e572-48e0-aef7-6fe224dc1d83","name":"release-e789141f-e572-48e0-aef7-6fe224dc1d83","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"abf0e576-d658-4e5e-8b77-125a523b7534","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189002612622249586166478746145268612585666880924208134974398908479725773466923044237365573647941662672197183843759537041943119547940983660695555310754696810361254437656916873186198582669885131455520148511986471953156803508302953134072653373326141166474014186289584661932814111761814113624127134423551779378642069588713","osProfile":{"computerName":"jianyunt2"},"vmId":"75cf3a2a-15bc-4377-8fc6-f17cff22ddcf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA26tS4InJ8I1qsok24Hq87Bt18ZbJGzTXWIjeQfNrbAJ2BNzwjp7NW8goBKp1sVCafr8lUWQQZQKcmzDNZx92TUCeuKrG/gbFr/ZFqNP+7yIzkNHFi5Tw6vAky3DhaKM9lExXJsGs7gei/OaLFnOsRKsO/7+1fL9ag6/l+MqUQvget0nl3Pu8xkNRkYYJZm3ggxft2Z3h+Qainz8IypDqL8jZFQOon/wqMjBvr1o3Y1WTEte29MXl9gqSEZtbeP2/MfPoQfKkcZ83VC7ihaZLNaU7KalCg7YlhAKLG7D03vrybciZzxHlYSkgQqPJzCV2BlD1wFzK8u8IfIob2gLu+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f47eea28-a494-444d-9e8d-3f60f1a62b7a","name":"release-f47eea28-a494-444d-9e8d-3f60f1a62b7a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"45e2b037-329f-4b47-9225-1b390764a096","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187966674723044791790183526847778642635157284431701886674677206715888969218684355328060583106934723331854848363193359956568958280675080859024571164978468483519525537230601523027316488234121421132735377600670340178343166935007637597418176916568287918555540233837295528029679527969635298034322971699618076507548407266193968001485353170354556573935718616631","osProfile":{"computerName":"jianyunt2"},"vmId":"11a02ffa-ced4-4c6b-a358-97670e9b47af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA73PyZWfA2dCU5y9WkqG8Jsh/7D+qf3yWsN1mslIwgM9dN1DgHK4AKu+PCaFLmDN8DB5DyuZV5lCEqiLXAETRiQsWCoQtMzpe9h5Fo4siWEuof1TE+/rk3WMac+pnxLBPaigq7Nx5wKKCi/isYjZkHxUSd3o3brGBNdDtnoJQQpT9xjC4PYD2/g3eCYecWTZ5Qyz2lWQsOkvblNAlhkcrwMjHQrvNyUwVcc+ud0d/izJ7B/B6ne1DEDi2YrSKuWnYWe6WqBITOv8hJfR6CF3ZgCe7DJzSR4ylq8TpzLKTPu9ZeEpEfHgzknNOIhC8DCOiFIVaZ+WK1xNQS2+naUtVyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ac949da9-e659-4c06-b30f-8feacbf9ea6f","name":"release-ac949da9-e659-4c06-b30f-8feacbf9ea6f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4f8f35fe-21a1-4a42-a85f-70278ae534c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41880042017565749566458273727533225429360792786978372768029225743361565582444157640363623906454488495860156075603211992241273344177802362112120822155210247464546361017716997731244159508690524845366718890481047751784938939611933714526959174276121792799766281431286542873051213926628116","osProfile":{"computerName":"jianyunt2"},"vmId":"d2518a89-5926-4d2d-8590-d1768cfe8296","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyo8eA9KwLDEk/tcC/Y3SKv6sZ6HmMFmiuDg7uSkdoKWj3zOaYoRG9DKGSBWYvDJ8m8YA1affxs1kjVCDGwI6FLqCU3LDlRoFBk2po8jCz1ifiDvUQS+YuFz9Uw9sJnRFzMAHstRdQbmxFZ2KxXv8a8QLho29tD5kutZ+3QdJUjsfBkgp3SUQH1Ha0aevE9iJHJpEodbA7QxAL08U6dWsJRVBZ6CneYsMtuC8iKrPyiZzTA82gnTzSDYf1/SqV9COrMBeBoDjQSLj6ISjjhiAIjXlldlBe4gX7cBqdjCrvOCx0f9NAPSu80buGshEmh/NU6uDBW2opQbuMyCTOxpJOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-02b1cecb-d728-4cb4-9a62-28a2150e2499","name":"release-02b1cecb-d728-4cb4-9a62-28a2150e2499","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"52a363d8-6a14-410c-a784-f00f2f0b8dc1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41883703304989691237432628434925962923761194819511777640435242579517625291259473107609716196697946763560198903451274221584747351033259986191911294546220115463536704515215502972222809424741680747647218319761963102175995479711927154796507310771047216780332089778589215595225943182911748375740153387548062","osProfile":{"computerName":"jianyunt2"},"vmId":"7b319b17-f78d-46df-9ff2-f27a266f1f6a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApFlwaMvP+NNosvkIyO3z+zKCaRyCb2rpl/8AEWtMv0tqko6fRkVhAKviMKP3YYXMwMiTO2B48DcXIYaaDfxK7LcxhIxsEQJ1EiIHiYGx+5iX9MNvuqsnxbzg9wOP8I1SRXLFKc5w6jgbk0m0tqZdAbEkIbZNn89PqQMoSyyIH6scK01ipwi41YcNv77Yrr0TxqubTv+/JJdB3wyayD6XOTolm3bZUa+TfwGi6qcDnNesY7fZ+B3QhNS7oXHSV0IQ3BSnmHvVbXDf5g2Q7XvSibe2xYKmN0pturlzHTRbFyRNU1uyrmCWb88Mx18BcIBjylHeOSRhX9ZFmjY3zrnTowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-30b81c80-9b90-45a7-bbbd-161cd1bf36e5","name":"release-30b81c80-9b90-45a7-bbbd-161cd1bf36e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a904f66d-c39d-47e0-a31a-8e75d6c5bae8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418682984652609215663081812778121535961671122453341978697163609610445321145851381671272782665249716916624789681471190289153131917431909437839372217254842321636525685871203093947191635033957478544457439366832809662324101036354002112494053002552326315316167418633808153163381867008","osProfile":{"computerName":"jianyunt2"},"vmId":"0da0f0aa-05c0-4766-9720-7b7b37033a73","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu3EjEhcLvyf+ACQ4vDBkQlGnnL+4lxVgE9mtaoLzYsCDVDyrprDHigHXmYSKpz8XqZ4DT0EZe1oP4fs/lGcXzfZ+Nrp1yd2TWwEoRfJ5aOXE4XgIMW/b4ED5i4NGA2YqoQiwqLP/ss/OwUxmz184Jz29M4s10b+itCY4GdrIYS7gucCXCsRSf00QMhxmotj+i+7bPAJP9c3QLkuCr4RG9Ai9dSX+6TLamBeQBFSZmXvohjs+H/Pmzkr21H92a3aQEugH3BjHncxEvL/DTaFnX5vgbOd0jr+Q3yoSfcQkKc0L8a5vUnxd3x7gFuILUrNLt2DXDvxDMnFhkzukcAbw7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-155ec4a4-ce09-4855-a694-75e92e574824","name":"release-155ec4a4-ce09-4855-a694-75e92e574824","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1a3cd672-24ce-4303-abda-b62ffb9d423b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418642890623087507537205231207666662463433831324142056586328759835549934739304572167985741748065927935732925134901508969542047131815984861515971263000980739914603704941843453309351296871725467526008293810861425122198056645767289785357286329006195851288627586114406786619918478496758706792","osProfile":{"computerName":"jianyunt2"},"vmId":"37cfe988-ff1a-4810-b772-3263719c1d8c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtGg16E7eFuVaj+GNDrVgH2uKpha7obebbGTWBlw9nj2NVU8/qcRVoEXT7Wk5q1zKRToX8/rnShaaydLY7fRprnwNtiTz4BjBtOPI61lzfPVIKwnXyR19yuXnQPoj5pj4jPZ/E3KVKhK94tQ240eNmf5H2aGb/6ZPB5DybhOO8i7+PAjOP2xHRIAlNJYf9ba+7soHjRyI8lu1xK5uuZoHFaGH4VxeQTlgr4wIkuEUCUsSbTyh0qsf6B6T7YClsf9MQ+X6sqSEK6xymY/GixXkyTMR6xBvO435PV+mN7JsA8HVFpo5BMx70pUSRKPHZ26O688ZkcKyv24jBAcsdw5egQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7caf3f79-8e0a-4e65-a0c0-6e83658c69b0","name":"release-7caf3f79-8e0a-4e65-a0c0-6e83658c69b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bf1e8daa-ab90-4f82-80cc-93560e3196ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810247268751295664516734365078176450809457517974624737756170965321769825930374956081690214495922423377342962822934140881447400892380449416301919545014593068033616597510493820028207596415474309643592883631998649104114305435124783143712159732810529252489952084842845322896343283045967850134946","osProfile":{"computerName":"jianyunt2"},"vmId":"d8744a6c-c541-4ca8-9468-4bed784a1461","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArlFNf5AW+FDrPtNOSES0L4B1Z9h8uyOCgqn3rwN+vBYHeLQsW6TCaeZ+6wjEqfmDeKI7CwIIlu2x7sjpna/KVQytWzwdA+dtZhdNfHiiaQEVteZlHl2K1ml7YRywHikH59Tbbbvndgm6yC/I+uxp+pQKWhbae/ejq3gUy/1oCjYt+8bhWsLId3x5hXhMXdaWo7qTFrgbi0H0I9HVUrGnsUe63h0V9WluvLogW3+ZArwWYWrlw1cEUVrR3PPB66JQXrfM6Ev/ZftFwOjwYjfjX1ZDdGPIB2L9iPk7jyXFo34ckNZPi6qF8A/9k/f1Qi+zMteNjKUwqxwTUY+9xRooIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2d3c9508-3189-4b7a-ae73-fe2ec01e89f3","name":"release-2d3c9508-3189-4b7a-ae73-fe2ec01e89f3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"35640881-ab24-49ff-8977-166aab819364","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41851706591658662894575118775755649151693034086794553722699861325438623252536591759468514934308920445176343851827161137752943644914277318864231453188144866882780671549761723989467473654516499016438637210901167858772237383883950532915780795688666818779289628965535764618899295429456379391896447659116413288518","osProfile":{"computerName":"jianyunt2"},"vmId":"f83fb206-1c42-49c8-973e-91c1550ac04e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxLnqvNnkpwYsq81X52qWlVx5GEpLuGZFSBLP3Xl/qmZRmm3A3m9kbqxvZAZy1VKn9T6aYIQBZYekXLrpS17++tkSlqdaDwMEAvpqNgbABmkStYnceFUztJA/w89fkqKjTteMsjoRFjQI0JY7WxiL6+WCmZ43rqUwaZ8Lwi3/iUpb/geO4X3+MqA6ye8CRKbvuGc1h/PGuPLZuJIqhTLBwOBM4nXL6R59BGKgOBoLPHqHQXUnOZSwNm1ZaIXmeJmbMSzzerG6sJviYXmOeZvIn9elYXEZQT1XiGTCEuKoxUjq7noF6PmJiks2z/UhbhaclOmjlNufPRQ8lZ3qU79wZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c616db01-5435-426b-83e3-daab66c75253","name":"release-c616db01-5435-426b-83e3-daab66c75253","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1177a50e-010b-4d43-b3a6-06d6fc9e994b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418718825807422587525518785710474859367147476338421234687630274023799396532333673684270314173985999754787499549340711664527786520483919981141142265149623185558608512311311911514833278694293486422968191113903596228649744288575328827679965424368667514339013214947497363655433672662725866310279866316202","osProfile":{"computerName":"jianyunt2"},"vmId":"712016cd-9905-436a-b73c-432de1f20e31","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3RVuHKe5isE3ow0dfYT+C8Ta4LARsTSkQncNANOWBNBVAdMqNt6hLZ1X9tEjlkuwZ/PTghaYyPDqwgY5SFIuCmGJ0zy19t8BaXlQRv2KTIqbJEuDAooGMK/AS7Bgn+v/XHui7fEr+r4sgo2cdBVkfKy2pRzNr+RfdXIB+3HDl6OdG5nSAjqJCy9YZH+2Mdd/53Fs10tFQgHg7+33XqL6Nh22uahpAL0M1DmkMZ0YnblaR9Db5VxoPfq+bw8mp2xX9p+UmcTUNkL00kUdirewsJsPf7Tu3tstIFzuDPVnpzOdVwi6LbaTptbNyTZa47KooYHdXvXZ1uydCDddYxgmBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-55e75049-af07-4541-a07b-6b42d2c71c0c","name":"release-55e75049-af07-4541-a07b-6b42d2c71c0c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f579e658-1cbc-4bab-bffb-0de21de80b80","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418162879145858546339029848528783059767827208012892688010983973705936887827806260634009899190532191713167352111477382868351942275878468475336463947759382267524439523598826798167496352860327247858575791554674966692326655982908913811563498581432544190518478670953122292594363332201616524491207413368389221450424421685414559832555037417110492661689555004444","osProfile":{"computerName":"jianyunt2"},"vmId":"7d98be08-d295-4b6f-8895-0882272cb206","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx3Nd1ZqVQFHsTyWriY44LqfnMV4UxMIuB23Dkm563lBuTVI7J7F50ntIsMNgVt5+JHps3hntORPeTh2Dxd4VMmczE8vw6XNOFPYKMXVPratloZkdQbdZNGwNdeVB7i0/gxyR3tupBuW0gh4OOSIF47HzBe0+HOP7nsLwVinRxayhmhVUzsyaZ6k7GUohvEiDcFE6e5+YQlWkjJg0MxGZemSMKureFQMa20N+laHBc0dlLKl8EHeFr/NsmUB7SQtBE4DZrLW/zvJiAETi2vzNsim/JTKROBFLSvOpgl696n82MnfLT3x2WGceW3erPqjzOwwZmrDAioBHacvhUjGuzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d9e9edf9-a14f-4d16-98b1-80a5c5a57535","name":"release-d9e9edf9-a14f-4d16-98b1-80a5c5a57535","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"737f10ba-e3a6-449e-a218-f73e6eacf9c8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41816221758389984628286434391777924697482056329950120829028275135123569281331444488572466363564283894844086537871144978282348262990217586433846156981594906353978687849865738886906114219730846753162495461704242733869392371661935708613959717605415188040619567593959655268744113716400420391845","osProfile":{"computerName":"jianyunt2"},"vmId":"24c6e0e2-5d9f-496f-b995-d456fb3ffa68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5mBTUbhE/MXct7tInYSqwXPUzZ332WHu4RmFC8cAT2I8ayHDtoSoD1rrInN239cw3Wo6ZFxwHLFGHE5GEjxoe/Ds3uuMzUTBBz2kSAzo3Ir+IJvvmoPQzAq9RydGClaujzyb1lopSvuaQtApI12u6Nhyc2uOmdYAoCQlCTUhBOu9O1a0+lcERAIwsCxSzFMsK2N4wpO8HJNsp9N8gP5TKvcIdP5XFK8W9uaGmYAq6troEfedmy6XbR005mr7KiOUVvsmWc8h0de4Fn12vKxzwf/KrZJTBnbfPPOKsBWI3cTQm/lNds2+kPz4UJ0KacLztJ9BWWEOERjTewB7AQkEqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b16c599c-e005-42c9-9be7-a1c69e0cd13a","name":"release-b16c599c-e005-42c9-9be7-a1c69e0cd13a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d59f4de8-926d-4794-9de5-1e9a046c2530","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183637889977282553169149697976721276729347909135531866749134121823180160139201163988398162030911334941291336198976615739026814693533700139106007165667096618492483827595107738893632260328473871262062578869429971915758556243357531615043752269621485639714427400427489478346083004070474092012156380482415081325650772426842205683603334","osProfile":{"computerName":"jianyunt2"},"vmId":"e019fbe3-1b6d-4ed2-b227-fd98c4e9fad7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6G6p+rR18vYpoZUXJ76Q7iWtH+26TmRQ+9tUfH8C0Ck6HxBtQlwWA9H8w3lc/lZMezNm2uPT2g9UReNRHl+pK8mVslzxIft/vQdyIpKPewVAz+z66Rfic2fFXtEQmaRNWQeiTwl+wQwvk9WeTXvhcTt9RCtfA8uS7h4fvXF6DeSruEGkfT3O6YM7sSkzvz21jbX9HqHGmwgG7iswsvUxxB7UCPPPViyZT8PCLy4RrJghvTE0mNwwvzF5kpKsWVW3f08XCGdaLehIzTFxtsjcsZLk9/uJP/jRlWsY58MbOd5gx4sjkAKbnyizxj9bSXSF/+wqE5bEhX9n7WwdR/fTSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2bd6bdae-af74-46c3-bf77-bae0db5c8613","name":"release-2bd6bdae-af74-46c3-bf77-bae0db5c8613","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e02ef4e-e76c-4692-9729-1f150fe68d36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184635265491696420432541183421853233624517103450202643330829413782211178092396918721048177949822364935782494923570278208160089576067634147689256562296049031123432462475429192611214089724239899547840854784428412012713868503117688130759925823747535004577249315128048705240361884712885768347791035169563536624111659162440217151601452892684274611216049537846506536","osProfile":{"computerName":"jianyunt2"},"vmId":"3301a57b-73fd-4296-98c8-c497db75763c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsouBYHxKeuAtsC9EgBwE90EQL8bAT8BL+Rty7NaHKXdNCKsslkiEVHUgr+oyVrYCLcgJj69in3z2ntAWblaLUfmkOdnK46a47y1LdXZZz30zh8+iSl+32b3b11nkuGaBvPEaOHE7SXSWad6sszm9J/XTQm9kqpeY1yU37oXD8RiYOxBDqjj1yCgH5q33/sPxDi+Zs4JtQbk4G/IOUvG6S4O8qEPlung2HUpGFAHDe/FgGyn+Y+mGiCo3jCxH72KFvbi+EkXf0+y52S3YTlQiAWfk6VAdSzyzhLxdfGGqugmcuZALSQ0zs0GdT/NKw2ykjw4T4jxR1tD7ZRIIuEFJuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c6d0e8a8-9ee8-4d68-8842-b140ca0f970c","name":"release-c6d0e8a8-9ee8-4d68-8842-b140ca0f970c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"585b0a06-1b26-4f35-958b-ed0741fd478a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185792235142228512114729278261435660612526654583611055286389573808473584542103777781184998992575118737160667362166626407051486535104189549408522292426391074705469255052901908798864945955121687756566341778745834853899458417525116692867882515193984951447871433868183215669855857522789231653101634772871121709188033875610","osProfile":{"computerName":"jianyunt2"},"vmId":"e6d32578-9b9b-4ccb-b406-448343462b48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvfwGov4P1LfF9Q/xr8FGs5oENNA7S2KpmK2oGqoWqCN2an2PbJ1ZaJB9mf7mYTpgTi9l9Ptq+R9EKZWQlOZ5jXbbSLuUHdEzZVOLeuaUJP7/2xJQww0gkUbBbeAMUT0mY+5PR6aykMr6iuN5xPMIGvHmLZCMsTWQfnaISfKhJ8Ej/449k/VzBy52lKUXrWQAdmtBk/x5sL8/Z+KPBQcaF5KUeRnPs6XaETMUU8W8xY7JAWvX903xiEfA1iTZmK7k56t/qhqtAZPKXnK/47k0jmXcXCDT7ueiAiIwbyJ0oWqtgtviIJ5Li6mW63Qy9qbQhUR5ZJKDSXL9P3DzvB2BvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e5d842a0-8ebf-4e4a-a68b-0cdf618ef483","name":"release-e5d842a0-8ebf-4e4a-a68b-0cdf618ef483","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6d799f5c-3ef2-4523-8c8d-1805b3ea4348","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418179652809257267999718351723196860513427715823387521783455554488661870770997691896989035352367393477599126843167120261107167549363177571984232116702301668396830367641327863858198514636242356521154762672149890288835279983072554422528340278207894822896636760631966662009756299262169537713526617702761575733364","osProfile":{"computerName":"jianyunt2"},"vmId":"912c62f1-ebd0-4728-b33c-0bc71f3bb2ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwbPe2QyBlNNN1vr6wA8UKB0Vx6WfeIIjNqzI//sdaOIm//bja0OwvMejPHODnHn4Y7Il4kv0ujdgGg6BD1ZeL2LILYDp3i4urdPSNPJdN6tyu0SqGgurAm51lszp7+IAcb/rPkn+EmclbJIGCFBVyZ0N7SV0tpi2Y+KYVg7u+6VHRzMgGiNi5Vku492YSYUN+bb895h6zp3NKMV4jK6Img0SdMyX/Wja8UpxtL9oe82JXWO5YBT21ISum0ZFiAIGwy8tzRekdQukL++JlkPGqd8ZdgQSppozXeS7xpyzgkgeo23L+J9oMA60CZs1tg7zERQhk+aQfX9/UJeAoyHtbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c8e1ad52-8096-4842-b6f4-a55736fbff9d","name":"release-c8e1ad52-8096-4842-b6f4-a55736fbff9d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c02053ce-595b-473b-bdec-3e2a08343403","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873853872103940848193665967428119524591697467681437134451043489865464763205067231216147124588360616208537593402152928431413027524573635670124085143705543522678535416816370343543960877360228703970916288749317542598331126923465722200414960544068847078886492942861004349161656521375048869103128644903419327","osProfile":{"computerName":"jianyunt2"},"vmId":"368f170e-bef5-41c4-b0ab-1144666ba0fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyVhv3zvy/V1DAn20MMJK3yqzNbormVJwtl+AdKGGZKWi0mm0BOfnH2ZOBWiEbPpkiY0vPoaV2v4mMz09faRIZoRH0cV/vQDCdmt6Ke7pv5MY8GjDphf63PTG8n9XEFPNKBfrjjLf7vhZ8R6Yyrp7/B+dfzZ6OA+mSgi33y/g0gs0x1t0SN/JqsYIFmxtsVZXealFVsGObc4uOZU2l6IBToyi4AbDtIVnvnXA7oWSoPAx18Y/nNUqO9rf8VZQbkR2D55wUhDBAn9T45b0yh75cp5Gw4/sS2py3BK8KFVrsYt13Mh+Z3sIDo++eNfXhoT+R33y+Gp3+5JXELC1owx2VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-de5e1800-33c8-4b5d-a583-2e62490bf4f4","name":"release-de5e1800-33c8-4b5d-a583-2e62490bf4f4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"68e1c0bd-2089-45c3-a817-8ec581b5e9b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41870422579817350379422712539557882447421176519379542426984459027997569212175999867160631739804754485731248883878107165918846152700988206133582784369898512564452531270514770573111977682422746108456451261359669556897721085981496208272683770","osProfile":{"computerName":"jianyunt2"},"vmId":"4e5a4970-2c90-4421-9df0-77498f24e882","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApxCMNAOE2Qrk2FJK/F0sUBAb9CVNIpcu0OdRyiLbkaHnL1CC/sKc4AMA0DBt8V35ZfSt7seyXq8/4kgO8x+jO6qJiPY0T3Hlkw2dYv/NoylWXGzfvlqaVEeCrG9/qz06lGpGj0UHlXbYk7Lis4r/lpZEDKu1IHUTiQEJC+rF4bPFtlQIO9/WVUV8UtwxesomfcM8FxOS78fW1AK25E2l/hzTL2TTdkzLvBbLXQq6j1Kua/bprxdsmL45XNzSpDUPoAEjAFg2ZJjua3wZy+QBmo2XAfrY+n6lz18sYg2KFbcM9CMapO4tvh6gzHWdIRLewTNej+Z8vDC7DQIdT3EO+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dc1e350d-2140-4739-9d97-b92a94fcebdf","name":"release-dc1e350d-2140-4739-9d97-b92a94fcebdf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d205d459-5f78-4c78-89d9-6e68a883f1a1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418247343998221878800251022740636063968587491144564426463098177827075464223150756364202823844750284802370824922695151986024257272563626077588924237932522770712743849683953344977720191190276456132654072483540935422585853772937650468580952485449085155482428161014601659631235479826675721466308930965604","osProfile":{"computerName":"jianyunt2"},"vmId":"6ce38fed-1771-4631-a7ff-e7b3b750bcb4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoLc6wsFeqS1LNr5VRi1CS1JiubIh9hGbB9ph0nDICxKzbyebxEz/rFN5VTctlZ/6u/kHpw3qausq3D+eQZxPtIKNmcUs1eny+psUaVCy5hNO4yD4VAgBazpqOUpK+Kw1q0u1U4O/rguBFhJux+ixRu0yakd3al7SFl5p1V8FESH9rm4OlRuajEHFpd9wMtCJWDnANWZxbL4/lgY5PFOvq5pCIZ8SzumTDEJ2xjdrlhiMJdf85i1qkiQolxBINmQUoJBAT+rYzipmsp+MmY5FoxofN+nOLnLPMSLE/0bUP6E7fuxZxSJHSs0EOeGoQU+21TamK9Gnl+hILGpbOh8WZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-72e19a00-6525-4feb-ae62-ecbf9d276469","name":"release-72e19a00-6525-4feb-ae62-ecbf9d276469","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f3754833-50e8-4290-a92d-c41c1bc98d25","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188338501879078360493395818449873633723831402973617499067243251605541336031919478127725643257575964733977516910499424590035114177539961837326289794654159741045615808673374008624620355977907889667326901642169876165101871814757010902456640517689895883336784","osProfile":{"computerName":"jianyunt2"},"vmId":"89550b74-87fa-492a-bcd2-10a877d1f5c4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8i40wl2fbGvYrvvnqM57ChdM1j6V1d8PN6z6VN7NQRl5u3sA2ogVPSdPk8UXw1F+XpRBe6xk1G+pSpX/ZNry5L6bx1ndmdN0caUlEwErCotw8VqaakMGAXmluggsHJQwAdNE825NMdiaMLuGjlWsd/5WH4SvBkYbr1V/S92XVW9OYVknKWgTJlkKL9MyLg8QuWCJa/AVbWKZiuuXhbh4YyzdzPSOIAThE367jGkNvm2ixqWyWqBIdvynN96QicTZasmgqyTdxuOs9bJWzIJmP8ua0tsK+mqLmg4h3IuB85DGkGpg8qlQHL487DYUUS6My3QGQ3gZMnO1Mrs7y+vPOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-84631fad-fc40-4699-ac08-6c3afb42769a","name":"release-84631fad-fc40-4699-ac08-6c3afb42769a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e612c05-1356-4f2a-b004-e9a585b7ce1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184967078374263786712852793907418816339183666685634560264243139075379541218677937149976147584736782367776225521542295473849695269783470721656663287813080317457591613526926952266436321217489915468869541019204896995614696983145788306546429554585816192346541708591018887665903","osProfile":{"computerName":"jianyunt2"},"vmId":"7e9f38eb-5c4f-40e4-8228-221cf87f5159","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2CHIr1yQeStJbUC9KDxJbi1uAfq0uBEurEUBpeyLVBdHIrXB1i9WvK056lneW9Tk/eXlNtYqnBYApAtVdU/aqEY4VYYGwchpiIS1tYoRxGKsSiaudAjSpB3X/1cs6a2JhKUr6eho9wrOrskBJ227AZAOXyBx8X3HYz3jXZHxdVyq3f6+e3TRwybUendcWh9oZAcgrTJgQo05uZUbnmG46n3SwKfQGJlRs/julO12dYaHqADGYXD8K2mCjrYVI0gm357rLPVj7N23T1MG2J1kEU/QGEJQjS9zx8v3gs3mlel8nnt1RR9CaH+Lsr5nDZSXajqZME1H8q35TpDlJQq/7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-73b2ba02-840b-41ea-9605-649b08315ed5","name":"release-73b2ba02-840b-41ea-9605-649b08315ed5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"039c3409-9f6c-4d4b-8b7d-407be26ec376","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41872397368301861567529546836961671444896551038764689695359805386635759859076122709724272591233453939167291467636357427983380911438707301767210291918709913936896595524352585152554442890468378389163472761553894571871492357038374245021135938297464738693454289198695345068610011179244707862327623271428578661503","osProfile":{"computerName":"jianyunt2"},"vmId":"97a01f0f-0dee-4aa8-b19e-2134c0d4913d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3rfbZMTwLyydg9c8wlJeLwZKMNaeWRaL0yYwIkdXnBAu56yqaX0sNzNvFd5P0lZ7RBvuDn74cEE4cyNxXMnxbUc4v8uSVRYiA+1nXt38XoC2cWSjqGgDRGRsr+dM/yBReZxlilRN4czVJrfcHr4dp3ROdbUTV85LFs4RM+f5D7Zj1o5w+r9QQ3AD5+EsnnQn1+QRcDEXY8NFrMMVMMifckcs0aysi5I5TBgOdkIgFfyN85J8wQY6ohLF0H9tada6fRXrkhldKL7BWPQmjidIg12GM/csdwdH0ptk+z7XoHQRyzrtxnGDqvglm/rRdHHflgan2HK3phN7+1GlO42rSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1b1df994-3c21-4f24-a491-d1dd2668fa2e","name":"release-1b1df994-3c21-4f24-a491-d1dd2668fa2e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"28f0f600-489f-459e-b7ec-23199e9dd165","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188182487158392808227446052002510966321482768728766945649119777567198518166729312610606359354807606590142981566151629552494381659094760566968868750754258187613743365564749718304912416076510785485941318777304484555211758819142740113945424950996531537347327716448840147729971297889004993105353331069199","osProfile":{"computerName":"jianyunt2"},"vmId":"755e28ef-a147-4486-bf4e-2b7208a49d90","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzpkWS1kAjFnvvkb68PfBgC40E9lArmoYSXaIHXirOMKLOD4hQvDQOPa+zitKd9DeiuPe2jr30eDp2W1A0MHxy9/N44BmZqs2ex4gy283Jcs4yiJ9jwTF8UKLI+O7pan0Td6zQnV/naDEuBtI34Api5h+g3IcbF+LE952ZpLnM+yOdOfALlc3UQ7Pu7zxw+DeceGpgryKuPzU86UyXyxvadyx4AXm3jyvpDm8eVfWQ/7TD8YbzdsPJ0p843f0CUaPuS7ym/4J+v5GZYBWWBAtQWRGYRtHEW7Vht+gzJZun84yKgMW2J+rlufsqLwVdT0lv7OCdS3VkWKVieAGP7wCgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-118b4f00-3379-4431-ae7b-4a35c0f0add7","name":"release-118b4f00-3379-4431-ae7b-4a35c0f0add7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0cbba624-989b-4c0f-83c3-e3d8c7902b3d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418510576126025641499208954847331317870834549401191819630591315535732392349749409161245962962614889394040126323663659317165664948706084356059926626074683640560784747873631126085750961589066252546126436004485431578977137515540831604472314624608562279111305984158469558139642232129633246372515283367639787986372027252549122321898066214250593630217712653844445583745747","osProfile":{"computerName":"jianyunt2"},"vmId":"e546b55f-800e-4ee2-b1b5-17155db4ab58","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqWQ8Q0oD9b7yHyiVVQtvdBOcRS4EVbelj5+QEgq2nYBjCqdx9rZroSWPulGvgp+DKJFNYeN1ANJ2HE+089hDl54Go+6qshL7UiPwzYYg3wQ7G/Bc6EkylJHeY6Mz0wq6aV5dO6B9uowboSgaJfRKI3Xl6YghazsPwDnMbMmh+4vUXkdPa9dHSF//3eJQSJqRmL6gtqkHwwSljOUtld8A1SWoPIA5rYYERoJqQF9ed1tT93KZH8RIBt3f23HhswniX6fb9FKuCBzW0BYuvEM0FIk7keDbowGnjHnUXqAC/ktAZ31NXWwSC7lx3rmuKIFEC7LU/zB1SU7aTDyhGV+XCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7caa1070-49b5-4582-96c3-2a249a094e40","name":"release-7caa1070-49b5-4582-96c3-2a249a094e40","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2f4039f1-370e-432b-9348-060520063fd6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189854275124806038658537033963382989541339506730714787993339423415857184290351869540038751774188677447637699186222839960577331028204914883304878688835773406499237691217291808476393775854213154449426742773117181648356264572555346438928386390807899229626867572699865685176977865656051","osProfile":{"computerName":"jianyunt2"},"vmId":"65d935a0-1e76-4417-a104-0cdec6c968f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxhLhrfByFNDutzshVPpcDiWprPx6FJAg+HIqsVPXqUmh7+/FuQeUv+EjKKD0h83U1QgzbznNKjvWumAOZgnI/8PObLxs2xigyqkhj6ol9vh6LmBNAdCsGkNhL6/L/FxDRdupHYWdjftQYUYw6R0IqrMpUf2gtrs7HOD0qjCpKsn1qk4pk8BM4umImjb/HH+Jdk6Lpz09v7SRYJbE2baFQREpNqZNMgrONj0ILg4U4cQ7OeBk8j7a4WVnQRXSbvRDCRuRl7o0y8zBf5P5VsihRckLmyP1MlQdZeY0/Ox59Xv1bvnaHlaiaCkZ8jp4K475XGX6C8BQP5adKiKWKUW3ZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ad2f6804-f3ee-430b-959c-39deb0183795","name":"release-ad2f6804-f3ee-430b-959c-39deb0183795","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"68610647-5f4d-418e-bea5-07fa3b027b08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418235656649655434932585752224581541696567769044994969211391664438680911957744954912738504204582140166845727816168288495984838498025184355652897101492088544760112415749351231889327615893952129751523859594238808573364520899985853101487241996287928228313258284135238385315783092298666983585853771667197698","osProfile":{"computerName":"jianyunt2"},"vmId":"e771f7e7-1c5a-4f4b-91ee-5fb4013ea34e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnk+1E8Ckt9fnY5v8UGveQfWd0ohMai4cIG800F7OWv/Ct3a7llYTDvMWFDFy4c1LjUWReBiYcvBDlbj5RoNZUDpWhX4wC2M27/QkwcFhkU2P0WJj3UJ695C0d5ZvAOrqqDIM9gJ2A6Wwjb1wNIDARhXw7BNjMAE3eOtDa8IEEHG3CG/8Xixa6xW+rc/UoDz8oEafAqWH3PAg/xuULt14EeLd3/HeT5kuwLA1RlNgJTXB7jv+3FN3Vs0OsNzQYz/lc/5tti1E2I54Qor+w/a3QYYkisXSiTFt2GA5ukVUuMERTKY6KADu44vFjVtGXSxEkiMApPXflKVZKOZZIibAcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d121c7b1-8f0d-41a3-9d94-b337875f6cd0","name":"release-d121c7b1-8f0d-41a3-9d94-b337875f6cd0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4c7ad5d8-3bf3-41d1-b83f-b69b0134ca05","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41841020733002968869704841264119803848824024200748917038576755217054487474089344740727978398433873747704135940178636570312493353738332066724663735662768226941544171597960649308655995197490185839009026771769285007656324615062947161491986147030795255573653063757511663707099508259233951782457765833397770593383464","osProfile":{"computerName":"jianyunt2"},"vmId":"6132148e-c5a0-43c1-ae52-88ec5202908c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7gXX8UVp3d8TRvxQA/q82Go5sbMAY5JAZnPk76FgZydXVQFM+SzqJASIigjd2IcMBw1gKdgrmZaeMQTphqFVWbrYYJFPttgg4XAbluAVXiIWcIvCAwlaak1Eth7J3MZbO5ZAjQX4XB+P9IUeZMRvYMOB52EKw/nzhVEBfjcm4wKpwDQqe5Ch4TUqbhkN8nPKTJaXQmsfuYLUTte862Rt6dN5QQWXwTabpkx1dMcYG5UPuy8ZaqPhsO342XPRc3vkUJDUhAInZehvFaSzwt6mrYA1JfEiTWLpjTfc2wE2Rbmz6YF827qrXH5SnfalesQWYhwE1EoHCx4/OZ6+1KvDXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-803dd905-fccb-4995-8dd5-3f62956ec4ca","name":"release-803dd905-fccb-4995-8dd5-3f62956ec4ca","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"22bcaf2d-9413-45f3-ad3d-92870befe188","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185103600382837718235337211206743747687246616465168657153328761540267119430971848207659930534612134516158026320795491894908860573540779101267871502218835017823812365590375510600992779815897050410124043300912575985086888063668078357656083073347661439960354014198665830920798090","osProfile":{"computerName":"jianyunt2"},"vmId":"8ee0aab4-8fa9-455a-9547-b542a651d1d4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9bnF5ItR0qSG2YyNMdn+STDYlBw3Hc1MUAfVrO9uVHBSGuKoCPNZ6qanLT1wF9vIz8q0qU0z/JmnBtysXIowc70dkgsi3uIMrdssRi6PLW+13ohhwRs41x5LcmsPLisiGXYwPyOyaG4SM8/rBKmuUE21PzJKM9FogdpknLl2qhuQzZx3qJrFYB3fiNaE800lw1f/4rKxPhvNxiBbyBwzKIZze2xjab3RZICR8AE6grsyuqce7KpZVQddEcNsb0+pkKUW67lW81eyj5Qy5sER+NJTnGrPBksGJN6WqOm5sQl7lO6NZm+1HZs+BdoAY+9Ci2zug/25C89JGnwCiwZ8MQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1c6d24fb-1ee8-475a-aa7c-24a99435db5b","name":"release-1c6d24fb-1ee8-475a-aa7c-24a99435db5b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9a9a8975-7d80-499f-a880-5e299c6a2243","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186061851158980547568652348986837301668579672563454290945069865067213555617267826767535686212791805871038475075374762684787831813465778637913246854825105463860292989139544783093373217956932127571674177825773556166818299742627847118445193244371783119416663759697958192307161491786416","osProfile":{"computerName":"jianyunt2"},"vmId":"24acd3a5-6c38-4523-8a8e-396ad1a1f092","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz7dEkJQUOpgU1++GK3ejOl8Ux7yWk0RTIF1oJ8IwVd/dtnkd22CuR0IcCOORzZbcNM7PFYxTnSsGV8TGmKqQ/dTa987nG3RQGYevjpiNygyCrqh5lK/2pjXTNksAJ8p2QuaMdhHIlt68QydVT7/9nn/To4n1jGZoiw6gX/zo1PQaPeWYAMERDo09uOzheBPg77ADZa8JMmTzbbJIefNW2/nGNTKgQxdyT99EnpjLBO9B21EoDUGZL/gfAZ5CMeLb1dySS/FSWBrrOM+ROhVDYppf5za0XFv5Yt72O2EUi6TMWALWURBkuWzIcYdxkYhnR2KR5sR+44QxbKSHg4wJvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f0e77de1-b3e5-4a3a-82cf-b07beb3e821a","name":"release-f0e77de1-b3e5-4a3a-82cf-b07beb3e821a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4d07862e-45ad-4dd4-a93b-36d16fa832a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41877364432629587876931577844335352880351485416137117491280335489632288344581961588981338762502545616977434428872060399108383226397153157334616691457862781594831934618815353987073952064329590092480776049162175824691299468980472437114497846927075274086995020667993759246387068549806973775104756432057348391277952114309746447115922164279","osProfile":{"computerName":"jianyunt2"},"vmId":"a33387f9-8ecf-4478-b611-05dfb546e323","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1rlo3qpp6Rg6m39M62Tbq82yZ/6ta6UmQMqO7wIIzbEgsGbYq8UruUzax2y96MXYlxmJ+H4bTL6lUQAkOHsytsLijVfhK+s1zBiHIqcLid+gdC1l44zC0CDqwACjrTKA5ywu2NTTKSxxrs4MYUzZ9SuE+cnV62tJEJABN2tVriAq4vj96Jo3HYuLTnylJJ+kZkQsv7FLKk0hJ8FtHXJAESBCvXEuZrsNTFNAidRQf8KmNZU+3mt5vp9YgH3QKyfzCoOSDCofcmjixmOefQdnhvPeCK/fKi/Cr+zuxihzFZ+9fPVK5nKP1Y5kjuk18TfHTh2rNXptqdNB6wrZ54zO/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e2e622b4-2d04-48f1-b6e9-7c3e291cff53","name":"release-e2e622b4-2d04-48f1-b6e9-7c3e291cff53","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c36c71dd-fd76-4418-b14a-11a2a94a584e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41839374361809319483625369175693216320894943566639850027241347516651737562563464755486406031894307955234282373834132664890082720667469312805198545130547892182784399945540052102253493758727001211947117493409633788919472502088866782228897464980319992552011135562804619266300430686948704759629213492995424626432053086568231","osProfile":{"computerName":"jianyunt2"},"vmId":"c999b8c6-44f1-416d-b71c-f1faaf261fac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5OUX6XKKxA1u9b/WaoKqdZ3vcFkV/0NOLXH/szy74Nl9uyHmHTHL/wWQ+cCoFOflwhau8HyQMy2TB1Obpg+gi0broB3x6yHGpqQ6kuKQOcsqYlKduyXp4PXJUGM4Msyox8VCzJHzuUgDX9KPrt4sj8BxuQJCAd6cPjn/x12AAvnGda2uHJoV8Z4X4ySJtzXh804XnNeHJ1atiUIN2uj7nw6hsVkPf7qBOCaqC2WOszZ1XX4/GhyXWBgyf6F7/VfONidS34bnO+9Z5kg4ZtQWSxaGjPceEpJR7TUoVb5eC4o2NqGQVupQKtsRMHsqO5e0+WDyxnArhMN6yn9JXlMbKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dc95427c-e1e6-40cb-8f26-5337a19b36e3","name":"release-dc95427c-e1e6-40cb-8f26-5337a19b36e3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"91340268-f8be-46a0-87f3-5df3fc8f95b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41891326704940860552258923572630230222353146071414974485674528331731070749042753049956619842825285754454536306116327465587735760716835027870361161113678490522899226687679236689379731498830522998756504852602461992061627614413893278273168426765586727462826170867749781982468944766150","osProfile":{"computerName":"jianyunt2"},"vmId":"ec0820b0-8db1-4e55-9a2e-10f5c29fe7b2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA99W9whbBBfXWlZQnvYfPc107EA3aXHGqa+FyamucirFQU8LyEgEPwGN3gghwSE+/+XyAjKgiPBTMVVdOrPMruOOEmE+v01jKgFIhuC5shP6PdSCncbkSwYIXS9hrd12bR8ru0WXh/Fk4nZUdMIOHvJHPM0dDTrmYdfXGChBORQMXbzd3K0Vev+3LH60bnRsMF6zUWjnKbCCl0y1vZFOVBP4trPblzuU5hm+rdOyjB02msVnKPs6XpPHYxZijsYHBAl1eQGY/F2b5oZXxQhiDFXmtF2kKf+lHZrlU0GaXc3jKRjvjfxrCHoUkkKGWYtAxNmjc+5fC1UM4W6k0Snr5vQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b16269c7-0ae7-4cec-b4b4-e0f5564358e5","name":"release-b16269c7-0ae7-4cec-b4b4-e0f5564358e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8b6d6659-e12e-4365-85fd-a4a5214d9f82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418186353567177693174105578371703015067276409559311944859250932795515503848961350870978234286967250844974423397162376400371664514242705431880405341569388151376419451886844977519288348432335947217508173237600598688468071526579037956275432051883238998259077624647286987317673392194757465911133535501346","osProfile":{"computerName":"jianyunt2"},"vmId":"40a0c31f-2ee5-40a1-9d49-c8e59103200b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqUBJpoDL+VBANMKUc2pTtJhRSuQ9ZuChcdd/8H6OGj6E0gz+M1z8jRtrSdERyumARUx0QGnWyF4XzDMJ5j4tFUeFHZaDw8E594Wc+fRJgFRuGPag6Zd5I9EjpV67PR5grxZxEky4e8qKXB/nN1NBjtgzI3BZ/WK3vDXo0R6qmUbBuZAy8Lul8B1khrNRS/g0DZ1snMQr1eBt8+e0X5fYckWY5tNAtnzZNMvx8lYO31I9zWdQgyfeetXewli65Duqo19ZG36A0fU3NsrXswbwhT7zBoRb5ii9FDMHdTnV/5yvMIb3Sd1dHSk6abRIuiVkmutbH1hewCmhg0UGOZQbtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-64a8636f-7582-4d45-93c3-3cbdf1836b98","name":"release-64a8636f-7582-4d45-93c3-3cbdf1836b98","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d793b27c-81ff-46f0-b23b-4147d2040455","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41840492012788192190679811920202567733202549543395907833274125878113175253386757447142178022499370586019346788995898364582460699552832059239607940211325934696248593213677552350895487997279646631971702517185240396758167913597736525745863451797853308636516061150491275104693815863662968816407064611636","osProfile":{"computerName":"jianyunt2"},"vmId":"6e1920dc-92e4-497e-9041-4af2e5bc2611","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuQ2uoP2nPdGopXhEvMJ/17ovkUWNRLcTBHachH3inwWFbQ2ECun8dv0A1UycsPsc8hLXnW7dhgXf+M8nd+PURgo31KQiQIqw0j+HyJ4+gUJT5k9hx/8eJDfsxPCTzWDUPxXniMzVx8DGrUsCDsvNKos4LkIbhzL0Bq9z53hdZXY4gJeBPRIOplwFhVBp93mCb2a+B922pTST+CYiswXRniby1YGD5xj6qWOirJf7AvMruwi3Vt/056DueQz1nGomsfbozG8zOwKaDRahQbyCmaQwXlXTh+AJqSQtJubWcuEUqR9QTjeSwXhGnMSZ4qnMq/hGfiEoqNThUXAtb4WFtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-886d606b-3be2-488a-bd99-9d6fb12c72b0","name":"release-886d606b-3be2-488a-bd99-9d6fb12c72b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f9d8d74d-c42a-4e5e-b19c-62b4c55d1635","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418851538924320652114893376724747011419860586307211968072521851704626815347313842407562724797643723852192696892429828329841099533219100916448561463531289251431138471579248760690937427263187354545994052311781141879190701045893732239301606199337440145242419411475015101506369276249170847257263671","osProfile":{"computerName":"jianyunt2"},"vmId":"31244702-5bb1-4a1c-9f1d-4c941e6c16df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0YHMBJtghrkfIjWo9tGPSi9IYhj9fRvVETR95AyOP8WSscjsUO5Coojs39/eXLoQkx+AUbEj9pVeILMHGPQ2UKvGnjiIn6D1//6VQIKnMIpNFxNHJFCT3TCYEiARcU4rTqMy8P6OjC5GPh45zPYVN1rrNDNdIFFNl3RP86K4irp+8cnXuy9qX31dTY19WMzsQ8D/63YOrzT7IH+IiyMz9sp8m4g1x5kZ/oBofh2Vgx6/aBdou1zg2WyTT6bVZCZ+Xk4rGbeZTvZx3SmXx6YSwxosMwqW9WvlIOVHRqQhWSIh/hyih+UprKWi8ZgtZcnhdGz00Tl4TfmtPRvrUeVw0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ea2c6fbd-fd13-4967-bed8-97d99d2fe0cf","name":"release-ea2c6fbd-fd13-4967-bed8-97d99d2fe0cf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e37adaec-d68a-415d-960c-ccf665bd92fa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418533838475950149247754699797919677950267286138157714042414457841028831384424289338098182092046420371195834948608180003315682633794583198518885824326222748138779615834184384618595286337058482752298061506836280464334616534249359262656560175731432995936477567524372699084641378399464075336199187502","osProfile":{"computerName":"jianyunt2"},"vmId":"5411f8cb-1120-4402-9517-cca156986394","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1SDmqN3FqC7KWmaSzKUgDVvlrqdjpM8uoleis+cW16nOa58zTpImRZja1XwBWAIERNjmO6siji0FEXJxFDxVED5RyS+aoV4F2UN3F7huf7xPCUL0m2h00uzEZhW5m7vDzbM5VYJ+Dr062whyyFuPHJeA4Nq11VPwWM3n8InIB40BrrdQ1mthSkro7l81olX96ns53ZMR8ywejNAOP69gLt288cScyQlQc2ZLF2Z7TJcqoDnsiLXnbOBxS1tOtAk76QM6lQcoumitMvGjeu8ZWUUUJh0l4XfOwOdX8awhP1QRqXVq/A3rn1r+6Pf8dbnc2TFqG2UE6wryPN4MZA1zNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-67198214-8474-410c-9251-0a5a7783ea65","name":"release-67198214-8474-410c-9251-0a5a7783ea65","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4acf90f9-ce49-4ede-a701-222834345e73","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41850991473851462698896633582379959816774786748519413842558946383385373619488318408937562796566155769023716620345633586894241612587171974065436834489116366084386640330853797367470717220194501606145893597646469690021955839946633694954815952670440630047990540428427349549437565637983","osProfile":{"computerName":"jianyunt2"},"vmId":"24e01f49-0834-415b-857c-e883bd89668c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxAVATCsOy/Jee6dtcxWywWXOJy8H6e/reX38e8MG8JT3faqFsuwBzCgWxYsRIvv4eTPlvILPf0EXabvYZdX+jYBF9hDWZQKZNXtYqcvZ4adi7O+k6CznfSEzUFVdK+0/yrItknMcD7DTJqItSBXx8oooc8fimj5T9OSVg3qY1V5/akfPq2R4We72IeFk7F+Ku9K/GUXDWYpsQ3uvip0BZ58nTl1ZZMBWbTB6PpZ08QafuO4KzhGHOyVx/9Si8z5S5H5veHMtQj5nd/f04IBKAHCu3wNPJ3wyZj9qjkc0ywqHKqw1+mQLZZbFbLHKsHfVuqsjpzHAkM66ycz+J6zN2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b1231ea0-7c1f-4c1c-a34b-8ca92f536978","name":"release-b1231ea0-7c1f-4c1c-a34b-8ca92f536978","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"72649eea-6f35-4af5-bbb5-25fb9e94ca99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185233206262471199357374677621352077592670848179818243459523747996941421536409532586972581677467818762413348336593650283491682806255513592679299342209948498059102352924800383566287498764095010431996588235623834906103962265946078814642096835360306253199476737921804868","osProfile":{"computerName":"jianyunt2"},"vmId":"378b843b-9f4a-48ec-8858-fbba641e69d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzYe03HTAyU3R3GKvzW74+3wpWq0dagQOEujoEPblDpsXu9/FKiekYqmKXeOB6l79j17jFdqLmyh0jMDthMlLjLQRNW/U8n/ncH3KzlEz/168gQdbYTztfwvDDwTo8Pf+nKBscv5GItP9fyZYsEwQd2Ez9Df6TjQMg/lylB2z+wgdeXnOpNVBWLMSNRXPRjeoSpGWRuF1saGGfw9goRLYol6qUEvRa2BGN8U3Wo+gJqBjZ1vYaWgmdDCeWjpSTPpKVDV252mCSpl2so9o9T/XE/bAknes+YV0BNRfwWO65MwE5HB1RN4Ec9z7LoJe3ZI7jDDfBvnAShKsDodG+oAgAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-95bbfaf3-b603-47ee-9d16-097bd86d25ab","name":"release-95bbfaf3-b603-47ee-9d16-097bd86d25ab","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cb35e40b-2c84-47b6-bbe0-b383260adc07","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41814146355999112908018945764519886637942486249844300237311241555866268897955528984594543232315769662473664871670648722001542161018286956932315271604224145072252096166750473252617375470639849857298344736806195256496341375372936301883965664214374843021132144221626146863928202345557163878649403386579125","osProfile":{"computerName":"jianyunt2"},"vmId":"d606a2fd-a005-49c5-bd59-29bfc2876eff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6c2bDaeLG7NNS/0ky7EXStOK+Jk3iCWBddwZ7hFff/93D/r//4lYKX7jJS/5ynvFInybhnXvyUcPqtFR4TltCFv+1zggsZkZygc2RcVB7Eg/Anqd+XD5rYsV1J+MnQTMdfs+Ebgjg1EmNq23bfjCRkKnB+2Z/e52lVP+xWUuzqPV8UK3hsgTT+aRVk/i7g5WpPQs9O2e4H8re1ptBsbwxvlFMuHvj/r0UaWgIvfkslDTwANM3FF2BrpPO1Jq8kq/TBANNaxkbn1FntwsabqGVRul/5Es8b4i889oTcsag9hkSWD4l8nVDjaD4h2lRQRYPoJvPSrgOE8sRfQLLFLLjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-06a4a790-0342-429a-a418-92377c003d0a","name":"release-06a4a790-0342-429a-a418-92377c003d0a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e7cd3a55-d130-4b45-af71-01d3df219632","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41881841915611480932918412112571462225642462724525428641480767836208739114096659737398492118360691026487556488829238104526579194400085061050781673402266188725186658366323347931612680688407983403999551551889111046125392258380768985141544774553097490836662898799125376990356237292502770789158892735456492823767392195609768732081804989752043062832848","osProfile":{"computerName":"jianyunt2"},"vmId":"645a87cc-4cc4-4a43-8bd2-c12d29282b6b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwhCqbIMeYBppO0V1hAYEYXP5r+t81H/9BO3AtHd4J1uN6KQ+IrKsKB4LfXMNSQiJ9yZtAUGel+DufrHATsFJfA3B9DdrEWPuT9cG8eb4o0bensvBUG6rTsB2haas3tFEL6Yinya+NdpdQXKftKmqFcLvH2uXdo6FGUZC7yD2BS/yafskg7AIqNlvTejp3JNT11wFP1UxUB/HvgddhJL3BBW6cGfgIk3EguJJoTp43ghtzVdupatSx40LYbCiXIL0zeUFVt5HedlY03PHdQrwHBpbo9NCKyJ/mNcmBotc2D5VugEmkgIInz1QTht/EYYpTagtCzgNDtrdmkpfrReyGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c7e6ee98-8292-4089-bcfb-5652979550e5","name":"release-c7e6ee98-8292-4089-bcfb-5652979550e5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"65146713-0fff-4431-a89f-19030c67fe00","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41869948808709542718002247930747767408467159824371424964654551917662937487516631868871185764291309793974475827725722304237051020407552649311633543806655886089046054875390761605676582939975508917657328256945759363804698952488444157387240117982219946510512633231551562809923673842617428438396799284197069765457762101613","osProfile":{"computerName":"jianyunt2"},"vmId":"0ff98dc9-b021-4026-833b-6b90fcb21dbb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1KGAbuI1JiMYj/sINu41eqdS3KPw1pWeiylf2o5lriax49q95FXoefhWW4CKzooh+qQy5lTUH4NY58RsjjSWVY28qSf0TIu4I2oNYiMsPCWJO7UFiuQtTQsZ2qG2N1eJwHU5r8I7Wb14+a2D+pjo/90uMwLfuUXGhUCtRdWqcpzdfZcEFzjZo9YQX9wptbrWIgxTc0Nzd/Qqf8HjNJBI9lUq0CVj3JaD6A2pmIq/4+8zAkFOaDqldMI7XJu4von6dK3fhdroCizUm5EsEFi9lQNyKTISXzjAEr09EMAPUUFqA5zEQAY3pE8fzQIOJy3SBl/yPWBAwZshXqFN7GQD1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9af25dda-05a0-41ba-a989-933ef2aa429e","name":"release-9af25dda-05a0-41ba-a989-933ef2aa429e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4c228ce5-6948-4f0c-9549-c3712abe9f5d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189006181631151295268634578376734788581977637861982052058128649883018955847371911443990648348546876440738954195547193395326227839580857137561613034479225954974616399953649715115309717766037222544382269792757451011971480754262849118098461834330879562589590068034277087756201254947694496573","osProfile":{"computerName":"jianyunt2"},"vmId":"afd5284f-d928-474e-951d-c69fe59ed87e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuZRJVC2p4JqW4GPsI9bNhCQe4f2NF9tFsGVKYtI3XaxBr2LCXwxxMncNB6waRb1k1uYTBZW9kDK0cPsLTXpfi2ahhzWXOejUyb0qxmE+SBR0TU82GMDSkP5tP8ehLM7Sa/+MEFUMucGUn55/CjwRSKygd5sTtID9ugU7CB/LfGGQMeWKL/6HR+43P2RdIRsZ9OC2IVOCXfMqPEXFfg1iG+nsaMXEbDNP4nSxAucOAGtgsuM7BApZ6g32oeo9trWFdaKoeuDRIYR1TXc0cYmVcztbmz03t+jCrHMTPDuvq5Cc8+ZLp5FwAITA2SKwPD6kWVD0/ttf88k9yejiOGLuhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7ad77f97-0bd9-4316-a1af-85df0c3d09d1","name":"release-7ad77f97-0bd9-4316-a1af-85df0c3d09d1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"707a37e9-58a0-4393-83ea-c63b3609e8c8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418693977743350699675271718696863975422327137849709406558407687359210142237966165661675972652376346595344031411380981845464083148030195897771643897664918011122974866651524969844077381676709830487312956905417197175996109450179219781189893822815615544838718930814735171541473283732725225015617964435336851211067606337336701","osProfile":{"computerName":"jianyunt2"},"vmId":"97bacf0c-4a26-4e6f-9cc9-404a4f6007b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2QDiv6tkaNHtcXe13QiclaC3gVlYvaOMYiw6Ijna6scUyKkxfW4yJhO5YqwlgK6taQpjXMZXo1s/SCOsaLjtQap/AhEkkCNpKMAndMNLxubO0T6xW5TZGKYY3DX0SIqo5KPSHYFkYdtuiOBXRk32aS/QCUw/lpmVPMFqtg/g6sUxvPzxl1sBz9pqpXQdCI+RL2FwdKSvoHGXrQDJ4KTOkjx0R0ddMdX0b7oL6xq2jjq1Omd5rqhz0DSFzbtM7wrwf463/Izn91U5EflBuNCNnF55m9enlS83wq47YIUM6+O5Q2Ioxw3/0OT0FsiLRZe5hT4XdeJ4fGRMsuosvM6scQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-75c6b640-d3b8-4971-b6f7-c36c44ce7c75","name":"release-75c6b640-d3b8-4971-b6f7-c36c44ce7c75","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5e29813d-a1db-4c41-9d20-96a1cf250db4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418818460979823245036342855452841376690834466161181341515155920710757681403377005494861008289931117743524429789594957649541003238416169836046658144541376808190017475719886949566754433269552684486159368534425731591206432757375530608144211773323665937883499105866256936192903392411742365582575405984219675479","osProfile":{"computerName":"jianyunt2"},"vmId":"8c9af7d0-dcd6-4e99-9e9c-d4c34847c7ae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4D4NGiVcrC3Gs5Rofa/n2AgE3Nxg3DP5LZ9566TkrLrT/QYXDCzSZwZaaI7DoH1pvcDpHVGuVfQ3sQUnocrjyzeh48L/xghUfW1LH1+eNPbO8PuzDme7onQsnyjNtOF3Zm5s2NGGs66j58XEcaQqqWyzwq+BpOLZZQcrFYLb9okxYLVy2TtR/GpPPlAm9vd4F2j+KMJ08hNISbkP+Z2S2PwcM3LM43InX6Z3r/FbzMJQ7A7MMujDbdcJijgPIKBqiBM8BuRS0z/4KtF57EE5z1CBc9kPMhtVpLlrSHsZFRD4txeN1xUYksCylSKuq6mvzc9WKWoSyhznWf7qJ5WF/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bacd60e1-a42d-4673-bc12-b31b7820e883","name":"release-bacd60e1-a42d-4673-bc12-b31b7820e883","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"03659d88-e096-48a6-b739-a47974447b0b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41821331057758712838643057080331382267494632738037645947684147935777295965027803210653257803373028744633140605030940285124220828531992472505127252015471822590368134790918156909549641475595487423435749229227882990913538294413416851270595211286482360022734289211063564117501856633575675","osProfile":{"computerName":"jianyunt2"},"vmId":"6ac8a2ea-6cc0-48c4-a502-3ef133e77a9a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApTMcmr7pG0+bFnnq6OId6kmpKbGs2i0ZXuZOkte7KavVTgYxok861CfxMMbg0jnsGIanLlDGUq46H6Uuq2h47XDhHLKRDMoqrkXW/6WCpZOEJGCDM/wq8mIB0TF3xWsu5te2/zUQ8SPex/qzVsZTupe44gVG/iZgBYTyubhFRxVvnw7QOoIG/3FiaFZhmCpiU2HmVzgHmqK+538CBEuztjPL7wIS9RpJFcOUSsdYaCs7jpIAxzFEJhaoAOx68BdHe307plNg6frB+I0pJSX5+bJnxp/3copYmXs9V2MWpn8D/vttpHNhPVoS0TdgNT4ow3qcFGahlyrj4LUUKLXf2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c0a16149-5a41-4de0-b6f9-f53ef087b777","name":"release-c0a16149-5a41-4de0-b6f9-f53ef087b777","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0c664307-ae1f-4dbb-b620-6fc00f26e1bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188697277118859072743915791485843912978686833183998752161176378050945788451348702065624650598244291382730954645134442296442960356127422832661354039547861960759438008130022061679805543956531252610226904512989711302118452147012932993732074204923018513101640045761215201743937846408282020123537381386485073888339085395805345456030","osProfile":{"computerName":"jianyunt2"},"vmId":"364ccb8e-982d-44e3-92e9-c6ad4987e520","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJyXR44HnaElpipAEKbvKgZupx6zOpQpV3FELM2F6rf6JubKEm7QzpcLH121iLfwavicCAoRvJBFtpD792MdUyY5xA4vDzQunneNdqAq0BNwm0irKBfFqFN6A5eaIjMsXayAZtw4j1KzZDTs9hYv2y4HRoUW2hhWtgV88pj+moHSwIDMuXleJZKNrfbfnjQlM7g222Demnl/52BvFRK0++0hS4HWdX8Keg9GQsZ2ePeRAkfzus7xgRXgd5uqgbND4QbuxCqeolwspyVjgV16pWEFFjCIg+I4rhn1TLQYyoAnp1ICAdWvEeqHK6s+NXIFX2FooJbNot8KWllnwjB+DwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d2ba82c1-d2dc-4687-8d51-398e820f680e","name":"release-d2ba82c1-d2dc-4687-8d51-398e820f680e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b4982007-f09f-4429-b522-cc6c94110cab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41810237220216060935545344975472338924016734449352375105742596420292474359970265351763226444784321428314088769048916618517918458424126224452219537598858164261633143152015944153422542588758894371136787837471462999454695042464370556534785947444977976508711063219848235463985505489797017771117464445961753772979942027106769593526755795616704742474039561","osProfile":{"computerName":"jianyunt2"},"vmId":"f7ed913e-aa75-4710-a7c6-9a6ac98654cd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAujVpzl5/T52I0fLuQF1gRZNCxZyG0RSv14MsBIaae5bGVb1vACsRFLyp+RGnfgbkNxZPaBTVe/pBZ/7+Rp1OMQPXVlIXEXk4Gb6ZiRt2mdLltB9BxYATrMWyCkfYBKpIcWW83XIQYc4NZxTMpX6qkNyMxil+oYigvtfuAOjnUn2lm5GjazIxrOPfj5GlDqxVkO3leg15Mk8Trxa5a6zdkXQc0MrmzWv/myWDGLZVxyz7OxwEM9lghRg9Xd7ROITMcqrcf24nCXb94nGQ0SkyxynbIlfeD5N5mQ82VS0Dh5Vom8hTeYx5G6UzIVVM1UIROEbjmlUa/aEo4ViQRVoDGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a7aad890-d82c-44b1-ae36-8c51681468bc","name":"release-a7aad890-d82c-44b1-ae36-8c51681468bc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f6cf54f8-245f-4ca4-8bbf-1f0582eb0031","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185033512257436882638681552970415725185054012120227106398835724036853163447042294278743694568275252830443675067727349094820116958148191293084819460512045858765860593014065744468242318587699767964286590116648371818085505590470089872441745186772246237099555116234052442969134077512312","osProfile":{"computerName":"jianyunt2"},"vmId":"64fba4c2-ba50-43d7-86d6-3b07bdb7ef4e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApZQtbM4GsdWR4w2CS265rTzwrctfV6SseG02Qs4sYYiMRo8KpEaVgujiiuAnfhI6hANfTLy1Odg5JWPOtrZxWauHBWEHJTM3tKNmgRqXzpfbzVgSXOLXYQQd1z6eYqhuohoeJUnIYd1SgPODGj9iU9lSLJhH1BzbK6ad/KFDfAgln6KoDfv4ZmbL1Fp+8Z1FZ1bMpW7ts1/DHsn8SZrAC2fq757lLekOLAVLP1XImbvgF1UWVyLJ96p7gdmhT953WsletKOUsezQm59SsJl59/yPdPAAOmHgB3TlWuj7xGYZSEbqDh5RDfiI7p1I3fg76BxqAJvMKg5dYBIZwPqxMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-faae82dd-329d-4242-9b8a-7f3560f2d410","name":"release-faae82dd-329d-4242-9b8a-7f3560f2d410","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7664a895-b8e6-49c8-9fad-420db8c02574","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181877274153128451975953851815373704272161123622408174799878726516336043485388126950942076283180972312758790365414241448416281173952705727897432770405205940726784804965331748488409677285891425929685415771469487387367401931142652971199921583694375687021761608865396626317689822172112568437444533561191825289385910063762419","osProfile":{"computerName":"jianyunt2"},"vmId":"de7675a5-86f1-4d1c-9e57-3cb8e0564949","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxM0SsWcb2C7Fpo5wNCZIapzIC9sTD+IRmbMz/P0JgDiZtgOJ+7sQuyVjiYaTdAXaf1wB5nl5ky+VIPJUCqdMBxzjEORNtvnmD9ZMGZiH8TC//D0Vt4mVthvga2KfBRAlkRCaVlV9Yatc8GWNyC6SIlGcEXAeHG6mMNlLH7t7JdZNgAbblZvwkiSbH+G5DzY4Gr9kp9HWd0zSB01ZzVPWhiX0rYCvbh+7bvT2incGprBBfDVzRdr5w29TW4tDt9i4KPrCB7kpjZnwaeFxww6TWp1Omn8+6SkIBV2hV2WQOsWl+USVhExdJncvTKxZ4PR/NOG19+gWBP+4ANPwb3Se4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0d98e45b-a85b-4bd7-a99a-a97eb71f2202","name":"release-0d98e45b-a85b-4bd7-a99a-a97eb71f2202","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d10f0132-bc95-4be0-8bff-2586718031e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41817051962655248094643948477862956252238895443695343943113504207137078853190549328812664529932248733288599823387886685584753458059843254781004018271239583951390239402490129547335399464975534396771173452712511815407694524058961535361413504145487197386284882364984881286533009346195540468106485971542951939660","osProfile":{"computerName":"jianyunt2"},"vmId":"11b0698c-be4c-4751-95d1-7ed2144add3c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAl54//9edPEdq5L5NapDs2WbL+5HOxtQF8sGjcPg8rOGlkno8lao4+xXO9sbyNyWz/iW7XKNEJgC0jNWpBA1GsD5jpN+UUWmwz4OyHzhMRZHefp2orhK6x3ssvY0fli96EgHidXBkDbiKJfKGOL4n784rhDru7A0j0etNHeu8s9QYiTU2GPNB5s8065303hYQF5ktjZ5bebs7u96n5yhTpSe7P4Ts5NP6jK2RfDC7WmJVzmwYp2uFgS1REYFjZdlTjPfAshrTVFom99yEFbFAriOnZyjL6pcI0CY4VbKh45wrTMEUogT5Wqo0LpZBKohBpwlS+wByEMzABRuwJSptTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-666837e4-a5ef-444d-8574-19fa02d3c327","name":"release-666837e4-a5ef-444d-8574-19fa02d3c327","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"634743d2-d226-45e7-afe5-39abd21cc146","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418759911914240316725924319837990199271292798488657341293164893195838472678056856603677773442928379685889331469698228505655476984177264808897860253967045828859183584681265847023361238436388373622764168577670255244258187833863983293678821628290329193415226236015102130477495067291424982966417134890468694282423947273887711703820391324","osProfile":{"computerName":"jianyunt2"},"vmId":"650e25a5-5b95-4c24-953e-5e0fa4da98fa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2m06qO2RwYEDAmZA4RmjfUstbOyqgb6KfmJqzXjQr446Hd6xKugeCEMokntd8zLj41GwWvgXwEmgSz9mSrzzTvdUqyU4TXGIj4MAYqSzkVb9hcn5WHtQR76Y11cXwAAbUwZsW5CWFy8KAnM7XprPx+NLfLifvo9O/wDQaRHPVfhjkL4mOKf9T2ZsYv2HFYOCgCbIz4LeDjANTL6+jBALxpM+BhNvq2ZevzJ9f6NWKZcDoGDKVVnavn9EVEnd9JLEk9ohw/jgTk9KgS1GJEg/PcCatWMErDA3Kkc9r5QdIxf4dC6O3zdHnhoY1n/mmhsURfi9rdfVtVEukza9bwy5RQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-866b767f-be16-4adb-b16d-7604c2165b6d","name":"release-866b767f-be16-4adb-b16d-7604c2165b6d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"60019875-8b4d-430e-9929-137d353eafd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418711428825015596800258919478633666213585636754579098825395157038008379839911195457539164759751842336027981540506721973927046202657451424597529649029795838006417926324457958911874869785485067966036978872967588450517029849528449238641864659838089172510373145972646291111696307010459343784373734445","osProfile":{"computerName":"jianyunt2"},"vmId":"9f362cff-681c-4bce-b28a-3d5a5e8fe168","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvITPGwm1bjW+NB2QAcScN89mBCI8ixZ9pdHnVqRnmBklNhY4yB+PV7a3GLZ5Iv+pahmaBWf/lSfvII49fIJRaUvCbiRj01bXm+EUcjMmKCVMbQ5Yfs6V/SEvMUt4C19/O/xhKrk0HgnvQQ7J7uPPopFEIV3iW9XGKr6F12uu4Iir/Ci52/iwgp7kp/Hjt0rp9gx7eHLE7z5o6AXdgVXpyOYMiaVsH4p2vWhMVWdmzJ/qxcxvkFob5bAuE8x2ouYKZsXLL8uYscuPuOrubN+rN+E7QGMdJ3Z+mOSo0RkvVwY5Ja/dYitJKeIjBUcOyFO6nDQmLvgcpbqoCUnWRgkPgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-def5bde6-5f5e-4666-8604-43ddce961978","name":"release-def5bde6-5f5e-4666-8604-43ddce961978","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6833a28b-237f-4343-be42-b0f84b8aff4a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418318416024698807272112853644858692391394119132873189252720213725818558132733724668381708409984022962170833588133016914261387158387120066275411696683128913279201961699063951621843292561339779870639342392425776897461962749889604744278298234379967658189","osProfile":{"computerName":"jianyunt2"},"vmId":"2595e0ed-8fb5-4956-903f-476181fc934b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw6DMe8GdTRJFbMc3MxFrWAd8J94w2rwv7fn2k3UYFKc0qXP1lWw8Vke4HIahXbosrGVU0icTTVpmEY1a1cF8yevY9Uc4LBiQpPWRrF/P2RdQltIlc2FPZNUZkGtG8UjgffiRXmE3fx2Lfr/mf06yVnA0Z66NK53RRb+EGThGD1146cL0BZBuif6tqIDHpbxe9rfl33uoCkJfQ7O+oHd6uRwi1+iT5Oii8tmzPAK3qKmxatQAIP+xbK83gZsdwzsdfFXZcEaPmKUXUpqDYSCSUO8JUqCAl0K83YwRzvim2QwgXXUpnJNRYGZBZuygv8qaaA9UXIx2Ay4v0KS8e5p+OwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-719a2887-b8b4-40d1-a3e4-ce94a1e76777","name":"release-719a2887-b8b4-40d1-a3e4-ce94a1e76777","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6fcaf3ec-d452-4248-8efe-266ebc504789","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181554565924655229323722595053940361998349426015582427924876336115773688080596510188378067622124172578491844044997214859877212865240621356191126712302075880311322177896724748025946695450263377101875712548566110089326739947973904980493004455340116333172564560426837425176","osProfile":{"computerName":"jianyunt2"},"vmId":"a19b808c-adb9-4578-9b36-d9e8e7c84b0b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyeYwi5NUZDX9XBgmUWg+Vy2ujCvhWUQtmYJRgenjGjSCFH9rSmsYFuvUm8idVCohWqbakDNYZa0aI//ud6YLP51t8bj+pw6gdbq2GETvpuX9VNqgEeu+UDcCNowquNKPm4jIQzXsDAwAue5bb+DwWRar8qBE2z7Y1TKg35s6IBHKTs2F75EXd6hUJq8meJhh2KGw3kFtW4CsP46tOKBql193oxz0zBghl1z0EIQGypVHpPwk+QSVKh5iOb7cAib/lO44O+3uDVpUk8wmBQKsZ+tCRyb3rHkq7uyhXLdT+4lrTDIqIFCyTfBV4r3ZJCU7Soh8fBH1n/dtYLfGxFUMiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6c982841-0ab0-4bff-bf0b-21451a5150f6","name":"release-6c982841-0ab0-4bff-bf0b-21451a5150f6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ba182b85-b165-4b46-b386-db0daccb60ee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182032585139088562917953134624817877420088433830288712195342166677339589280342388953666549473411955836875382484352398505246628729023311029105794386782391273958849123287133688672322909803896948522614419950439989803941525568238379946435053869196239577786575669167399388779373829510264129383642637649262830076601624482168144652852","osProfile":{"computerName":"jianyunt2"},"vmId":"e7adcd4c-6928-4ad6-97db-a4f6b8be2655","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQImPiFVfANSqUxYEuBms9epZWrcbgc96FWRMSFgNfb+bEJVyBhKUInzwK84WjEpB2aSC+Vsm1D9U8hdoIMyCxbuf43jiQmg3LFiaDbloLaj35oJBDAM4Izo3NoUzUMz3xOyv4R++OL6AHrRfzrWpPYAVVNvlfRSsAgEspmPnoR8eYXfm2B2u38EC9RbYhZTP/2orMrqaLfOR3tapv2x4vx+zUaKFN1T5b2eV4YuqlHuB6Hfn9a400sZkoZ+8OcKgoge+LU26a/2yGWmbpuCCHWDOLRk9TjtXNQ1GyxNFZPG+XR5y+j+ABEB0sE3mswj8V9BGCg34esDauK0s0A9hQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b900f5ce-9544-4cb8-bd74-291dab2e1bab","name":"release-b900f5ce-9544-4cb8-bd74-291dab2e1bab","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"688ecb15-a88f-487f-ad11-788e115d9490","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41822751696005256963173756611127312259895616962929679965908934773821183618344229862491688627842314515693405792946574912389624015960846752795448593474405944087419034392164825483809312190905152244120933945214135014789349226512647992907447707353763181527664718397844491266162040639655782","osProfile":{"computerName":"jianyunt2"},"vmId":"8a1a80a0-3344-4bd8-a5d2-235864c07140","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmy+wCafjJG4Ztl9hnA7gwyA0kQK29xtrI1T/hPc9hGFmCrL4HVtISpn56UVm35UT7UfuRazqgAS6zkRqcHyvvD4kBUlMGs5DstSzE1z4Xng5rfKWYjkBSLhn+CoCsiOadW+PIn1kcGILx6MMwlN5R4yk4zX2uCacGFJSQEtAgUF0Nz/QKuU7E8HVGkD/6c7DVDtpXaXAPnA3bSdheMT9XJi2hzj01d9EDztKdW05qm5qrOrdaMhz+0EOAVvA9SZhDGzL/RLcvjmoIFbrUcP8UZ12BuCwbUWSzM4FOrkfq+iBJF1IGYq79900AriHwQGsSQVv5V5bSUQwkIdaT2h/HwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6196afef-e556-4f15-9d72-a31071739dda","name":"release-6196afef-e556-4f15-9d72-a31071739dda","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c851f0ca-c42d-4bbf-8a8a-792da2775ec2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41890594282488254864201841946971897420966775337265627050576213957624175353051273556279639572858473078429810931644123908790386817498653940306686406556786637606129678592775395435044345939023941483753344759337296458641720730131819188025744929233763127213282721273","osProfile":{"computerName":"jianyunt2"},"vmId":"f163899f-cb3c-4d6c-ba5e-273e8db92c2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5mYR1ennt68UpEPYj9oq+94VuWs1ydgSeAei3uc1N99XFouuooDbKJE/rWNBcRhJByOvnYN+apjzNpkHOdTQnTepqXfJlZTudhDi5wtHxl97qIYKGYVweJm74qXQqpklcQCW1YavhlzdhlzRtw5kPTLgb4EUWWS74AY8NkqaL4olP9o8e33lvNyErXau+YyK/bkGkpCE4IRrjfGZNi3TTV7dlFT4sM/j+RKlwv9YZi9S99NwyHF1yOs3Kactfvi7wmh0dtDQd8Y+d0UsH2c0nKLE/KUZDfVE0LUGVz6HKNkjfYpcWk9Dpn/YM9Owm0IotNzf0uVKWRsbvGZQVyQ2YQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c0d6fb0e-8e61-4749-9754-a0210074bbc0","name":"release-c0d6fb0e-8e61-4749-9754-a0210074bbc0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0436a275-26d1-4bd1-acab-d9c4efe6c03c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41842571352494634106860602919368838949345304760130979185568392198996053127598030099748626399729113225569748224225820512223787542222716714466146216150344323977223262994475366056036328691695544281226747522573011425347968255121314893191402083721335847782759172495917727369343016774173106475967058981423","osProfile":{"computerName":"jianyunt2"},"vmId":"b4e1ac94-5d08-4f94-ab04-2552ea20f87a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxZ+IladlRDj8L2UmZ9dMEjsi1+2RSPPmU18b6LBmvV33dzCmg/ROmtNC/J3/Moh89k6ul9rDXJzZt82LMMOIZ131oYoHAFKbY9csrcjZ5zlg7c/p7/c7U6U4H8nyTlJj6fk4x0BzBB3UOFDGQqpoXNVoH2blCSmQd0qCJbgR9M5wVyDCf3iRLRCZpRAbw+/kB6X56j29rJOUtXQ2H6ygx30UGEetaJ7keAH/oEvDsEQHz9bPdQlCT50HlHkyZemJcHn2RuFfQzOQX/3cJ/S1eGYbs78yn3V6QUdpcMVwoLVGxyH9wfSLKKcyjOMpswAiAeTKxzd0A7XPDrYj1PBFdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c8902273-1ae6-46a4-87d2-8877f9ddc670","name":"release-c8902273-1ae6-46a4-87d2-8877f9ddc670","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6f98baac-e9ba-4486-b1a5-53984be14b0d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41880534862263516415239571276920296299097983233839925974115229346419830638594815467179364013146763937335016320377292253830966954503215114629453415240255685953780743284104404956192449064989355193957573395545587920473242719568926186577773800160954929287580857516233367532088426967120954870","osProfile":{"computerName":"jianyunt2"},"vmId":"7bb430bd-5a2d-4277-85b6-1f9f9184a879","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxy7I4ws7/hvISneWj5r2hKWikiyKU3M25BQ1a2DNxbcf7w3PlsUKzUIgoXAJtUlvETv/iBKEJi6rAKPQi2Je+6QZCj5lf82LzEu1AQ80iok1mLjCmvl4MrPji35qos0h7EFXdwYuItv62PxGK9NWOzDP143qzvdbV+DoTNoSbCHVQV8b0gRIGyk/pafTRYKKzGW5SM2L4Nk8mvY1RV/Il3fBW2JqTnCpqL+Yq6WBRVGLkbgLnKaJAHZMHVV4X9LUd7CCoBoG/UowjF783W9cUXilixaK/jp4Pr1yYhj39f61YC+yDEGBCEJXNjgQmG143uiT56wb7Qc1V2miDJtbMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-67885951-a28b-4ccb-beff-dc6ab3f5b949","name":"release-67885951-a28b-4ccb-beff-dc6ab3f5b949","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1f20273e-16c4-4aa7-aebe-600e06a56dfe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41814035790400467727521183821128174909693685293554990060058608794488584911609035360033358182644799672066397397205758382821788733396433636090799581610380084058847708982651426598864183139213919014437906990724105856806787842690333250855432393996381993248717788531264344573506612","osProfile":{"computerName":"jianyunt2"},"vmId":"4a866097-7d34-4373-b32c-6da7e2756ea7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzbhP/T0U3jar+m67d4b+E/sjG6sQSvKK1TPIXSoT8JYIhs9LBBHdsxcXuUhwITs5NPi6YoSGjoA+sI6c1BuZ6OChB3N2rl8A3CCFfjMxKHYEzztaPdHsJUMU7XiMg4lj2l0/8pJlGcGZD6G0dqkOzyqZPS5Q3aq6ujndBpuKxhjorgo+TlBL7k2dXqpRaQRR9pHrPK8FyfqdFouCL8WXcxQXze631oN4MQKcwcNQEI0CMBB8/dFSfBoV+L9o3/xfYXnLYqz08IeLRL5w65WwrO3aT0oDlTxmNGIlHyc3SX2VsIhtDigEOI70D9Mcl+rkylLZgZ5BS6TQvkZb43aGCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bd7ba083-2474-41c3-b358-406020dac07b","name":"release-bd7ba083-2474-41c3-b358-406020dac07b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"73ed51c3-6607-4065-b0d9-df72f95b7b83","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418212172941710743117096547241789813073269634408164977782606142945983854520238929794823739212768745752592482073502107545942615494195334394601294982631646998064121383888541512310155051083943639728794597225585254498141528380141993564279511654634996808234684336499296386079509373428513764175233270806","osProfile":{"computerName":"jianyunt2"},"vmId":"9380fa8b-f463-4933-bfa0-ed88271aa75c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1nMciSusKTxx7T19qgVa+E3GOP/ZdG7ZnkaF59Pwnj55dKwlforNHXG4kFQKx6Pl1tvvHjRe1hJDby27yNdRAnWBXKjCHqvxK3Vv3LG/EotWxBbtA2EUUOAhABK5m+4VfVZ7p6eUSZqiNuvGaJrYerYzUFfnWuas0u2uL9MEiqu3WTYlwjVL4slZSjf4+oOVwT6BoJQr1ZQaBXGSojIuGLmTG1SPcRykYS7qVFS+Kvoyvd9gsJhrJV2coplKHDNqOgG2oOxvNiDpISqPpBSSxJOlMiZ8/GaKYVtC8RZIT9wWFao9Awp8mxUZ6Kqa8jpNySbrnwL/BXltuUelpluXHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-09eaa0f1-9ae1-4340-b0cf-396a35276f53","name":"release-09eaa0f1-9ae1-4340-b0cf-396a35276f53","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1f120cec-e10b-45f8-b5ae-8a0461b9bb06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418791892946650503752531244545547908705494487052768876459179649683656328416763368901228139627282755941892446423914535964369877925367921012172673891762236294646154287132032450441913504524949117821559857914593895638574963848344264538075159076367335775474618714484955671571727309727926117543415398","osProfile":{"computerName":"jianyunt2"},"vmId":"f952806c-42a5-43cb-983c-cd09ce3ce14f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq60JX7pV+X3pfDkZczAqIkuV3oFfvuunZxXY2Adpcp0TYNk0vALBbN83H7B/BD8Fhbb10ffnFO+xWpP17PksTUYerIMLMVHtOh6XJJ37UwaL2y4NhhScto0aAhWfWkMDGeROx2JJTRUERxesgv6vOPGe7Kheurk95vri8Fbkb69PIvOrvDr18cIaVQ8QlfD+ASFaFCaJiHqj6b4SL+TocMemxfVTsYI0CGPm9Yqx7R9mBS24bf9k937uYpGEEiK1CCHNAtAYtOQq1AAZP/MIL+4aMb4IO8D+fAeRhv5jeL5zQ3wq7JnxU11M4KPSR259K7MTk10FAeg7FrXQNwRNvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c4354608-92bf-41c2-97d7-7a6887fd58df","name":"release-c4354608-92bf-41c2-97d7-7a6887fd58df","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"50f9568d-2adf-4cb3-b9cf-e80042d428e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418927614414805311985567726921245616050412287402837109650278863414116991766389508633058093364046704291892041183439329832342140472976675991353783841851065713445354812704639504685731670251314110533456799645952645799644935333645231","osProfile":{"computerName":"jianyunt2"},"vmId":"b7b7631b-76b1-4d83-9527-1ddeded6f615","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzz1VEAjZqKUbLWxjPQEoeCtx8yCsBg1FjqjrnrrkaKSHl0Z8D2u/iIavSlGmetJysTJoDOw8q0+WWfWHdTLzsV0qnCdCEVXuRGbrSZ3m1yK/8Nf4nteMWJzobWI4EkRrRMPOFymVjd2gP9P4J+UcvAJzdyhpWz5yrsqyIUimyyX4cJM6jOygcOztcKN2hnK7Mg6zaUwM5QU0Bs4kwYBhTRGKAB2YaKbSUYmgSZhw+YcZW6sh3Hl9zSyKFz27sP/ZGi5g+cTYzNsxHZC7cB6YHYZLiNLSDYlOZHq1nv/9rh+oibVMoywkuzGVgaVRaY2Xr7n7RQUVlCyWhNxr441PxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-63411168-0f35-4fe2-b10b-6c68c37ef347","name":"release-63411168-0f35-4fe2-b10b-6c68c37ef347","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b9c95386-183d-4472-bd21-8a5ebdb5f31c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418205890651579266648841432072134984125498254613896416562623662038934944197174797830643259536626380798062866740248045266698216038316519763398777616192752136721830548562441613306059492436883212210961938111984379482264900335991530370895573303763423534239591701522524535679998034651611317084488693965265894622711207469773837954030403672494957972154","osProfile":{"computerName":"jianyunt2"},"vmId":"cebae0b0-5620-4e85-ad2f-689695b6b56a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoypWg+hEbv2qj137EH0UalxMV+vk9tbrAQPjCwWWx5me2pel2sfqB1QyKR5ZU7YF27kjlXlRIIgUlU1plxHlqNZtfuzgzsal+sypLjQAKWD3XafSZWYZSukdLaFw/J9atKa5iO/4NFJ435nsapCmZ15AVFfoIBj9jjs04oOX9mYoKee35qDtoQL9vqVFsa2ipNvEdSgh6kBWCTgLbiypJ6zkxhKcZsaqLz6bUiyCIKg1qZFETSGSCDvbmda9bQ2Y/dNAiwYtOy7blAt15uSkRygQ5P4a6AvKtEqp27EEv43/l6kg0KPPdw+0MtqCgAoXps8RAv+Vp/v/Df79EkP0xwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5a01c6b2-6fd7-410a-84cc-1a374b911f27","name":"release-5a01c6b2-6fd7-410a-84cc-1a374b911f27","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3c7dac5f-15c9-428a-8f86-8127ec54b2d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41893944555255791088516380935862430880369123482960398021635142629291863293854441607232473075159941747425750567424026554454811604928206194702259439842871609749364884346945873344717356505509360597878128960232341305461337076532765625442285232321205772847053178952791764079112628058902599275037830196218542863005145936649875365","osProfile":{"computerName":"jianyunt2"},"vmId":"cc536627-b982-4abc-845a-aa866f2fb9ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA50OU3gIOES4eqTrK1Jp0l3/APagSQRvvnNKoSEBRklzaiQLSviIawlT9d+zJ/GBpNccXgWd0EvQz08b7+Z5WrHSfPyqoX7mV72ykYmg2crTKxFnP5tEUogo+/LcyWmWvD35MB1CHrsnvN7tySSus4klaDpI730gVhiOBLe8LIREnJeNNzAfzhOS/0qnzSjgL5DDPJZKkil/yqm5ssJwXXEAoKVdkj2QH/d0bOOMCDoA0hKI2TyQ/3Uf+lDAcsWVgG8Lsw7L+Do57xiVA3BSAzeaOREwRyKi6Fc4ZjYvs+bWWw9QfdPrH5olnldSNALcuUMgUdUsRoMgi2uZIXD5j6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-eb2205d9-93eb-44f4-9d90-3a36e00c1dac","name":"release-eb2205d9-93eb-44f4-9d90-3a36e00c1dac","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"05966dcd-5ece-4e1f-bd03-6ec7ab15be9b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41855877954677681627764889544166788230043740538716362657745528996655306853126664547878769228127665463008708179114699275833760461068747990386421157518539003784240725759277722847598475992193942929659608289952273233841309792024970534670004363939439034069738628204537242809995817415855298","osProfile":{"computerName":"jianyunt2"},"vmId":"82ec30e9-eba2-48f6-b00d-80840cdec4a3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvc15IM0Gcjm9nYunFdjyh5OQ7vm20/DkfqrsYcndHrzbpNjJ4xHlgJvUmRqaW2qsRvLzzmDFJaHz04BPXp3BQoEozv07j0lm4BQfrMuA1PdEBW4ooa/tjxe8GbQxzhrt7vQN7Omt5aFathM/gEMU9nD5RiwAFC9tH/leDtguzPJg41z+QjAZH/3QKTYB8/eoA5XyrMM9kXDrrh43AIvJds1No2JtGV58nem1Vqhe3SKxK2nKhAYDarynuoMBPOJGolkzV60koycSL3+nLmVDiMCZN0qBIuYMRfxp5cn3HmS6V39BUQHf8C5rl1CIRvsjQxJKrKLdd4aW4GDI9NKq2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dd5ad897-4e1f-4dd2-b363-f802f36a25f5","name":"release-dd5ad897-4e1f-4dd2-b363-f802f36a25f5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"38eb3963-468e-4e19-b1d4-61a0b468a3da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189868505397129304646459915804311897794056022992322250082547122683864563968187275835917708937343286420928723043303244970542616957742892375911156152271154324428482789998648533185738771280283280279880714812944273176593793128037177718565583337485130599338767317166075824816799193166666529316531999199740410364954097536471989484","osProfile":{"computerName":"jianyunt2"},"vmId":"43c3845b-a9c8-4926-b30a-c80dbf4bdfa3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwv8p3uByiT8Izpt4oen+2IaXDrjz0xt+ipwQw7MqWJfolXyF/GY/a93lyt1Bo0HGyBphvnexu49obYOw5NNk1I8W02BewWvttyEIqZemw14KoPSyn8tPwQAXYKv9zht4kQ4awAq7+7+OuW2PXj5twmZuTh1Remr/7IXsRaAFJ2xpD6jvT1BJ9WPuIwyCkG7BiUC6fGmL89/rlQQ7DJCaDy4A5tGc6Sbh4aYaQARnCLId82l2D/zTUD7RnrTsS3tQTERD4PxLk/YAEjK0MlQMf6mlubyhaw1XwrixZRuZe17VS0KGktXOXe9c/vnhhu4BtmPk4eQ6ToQh4uQ9fXHWtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f99c77fe-12dd-4570-995b-802fd62d2b33","name":"release-f99c77fe-12dd-4570-995b-802fd62d2b33","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ff112d26-58ad-407d-adf6-6dda1d82c34e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418119512252605885791613848745249999487321683334561265625345035363789122840273718352216996597685880637994793713449594291932257556611727921527111326186175323523398567882567988941129208293478877430400874820971451891175625402782653752840979273787184302213823201868558","osProfile":{"computerName":"jianyunt2"},"vmId":"6eab87ab-ce4a-4687-acd2-5fb594d7d1dc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqSDhYgUqGhS4GEMv4k4yrYM9o5ThIRjyRFeU+ZQHIxR7p6pWLR5SqgknwYpgzvvd5u31WCm3VGnjDBcPMiWNCViwCgfpUrK6nAWQi+yRQBZqSuSxGELawkKg9sL0dzW5Drc6Qiko9rkhQ5XeE33hAFLSJtz8UGiS+pGcpsgtXvV7DBpQ5SGe6VPVLh6dampzcjNouRf7R3ykSbvJ6fpaEUz0drieALzm5pih/rh2X8OFtJ8oYKofWpKbJzfYuGYbk9QLWD2A2K3uLNFVaxG8IvGIzuTMv6iiA+uofeTx0AnMd4dQtlVU2/AEAfbsqPQrH51B9t+Z2ch0IBh0tczUtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-be8e97a3-9441-4a6b-bbb5-896938d2be23","name":"release-be8e97a3-9441-4a6b-bbb5-896938d2be23","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"97e6faa7-1b0c-45b3-861a-4c25a9483329","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418708235477531283076892149305050527886884453716460522396929327399732204573771634064945124731215894935957312157545924937745991816611749078976439199074134470827839376193053225142888012931055828065781789085783794673899284431729082833470043617220794475938123276386854817","osProfile":{"computerName":"jianyunt2"},"vmId":"e50d6cc8-2529-4602-a717-75dacb52b70a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsWDU0S42D6nHjTEqPxUstsUZwG1LCteJm+WP6rzzNOERe9UGNdoQVGRTH60+gHMwdJxqzo7R5b4WWYT98p+XY3UBQsbvksWGjHG5dJ6qr7x4mOOGwN075mtDTJ0iyet5sepe5P2MpcL1RQtIJlZVrbrh9tJJ2F/Kv1irqFa163smmh4muuioAA41m1epTBlPzt9yA1I6sIqHpx8d4xtwbwCr45WLUvlpV8qa/0XDgBrqfprA2EKQkz3Ney/bJUoV3rY8Zy28hq6S0tsUXaVYek691va3l33kDOltMndMgZY7DpZBkxcd05pG0PJm4iKf3Wdx23jniQ9mpMtzE5ASdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a673186b-5c2c-461f-b145-39f5bfd3cb68","name":"release-a673186b-5c2c-461f-b145-39f5bfd3cb68","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cf4342b5-3659-46ef-8752-3b965eeb8d85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418572745418835877479881279795168578275526337398529199898589020773773947417206099988186669180422065666472214318885030209064497053244288192245682165536327427947448681586873481852123414009909484562928596327434435606558236933905352212350540147966608245115639113173794265321456511269399244266536516","osProfile":{"computerName":"jianyunt2"},"vmId":"821f3d38-d87c-4be0-b083-045b2338afd1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwoGxnYDiAOuaHscd5hEimyyeFhROol42D3QeUEcwxTmLXhNvXs0Z2qg5QQwyIvH/bn9japlzb9h4k+g0+NNAcGVkLinHcIP03Nbqh2Yi4KemouU+lWywE5ZXHRMUrH5LXa7+hrBN6zDynyOJJNpXBMf4CodN5sskiLSkr/6zttT/KIGW1Jd5ThlsBxsNymSvn6xSG8ZBzPu168BCSEyYQBDwujscYBxrtdVUpaDcEXwrzQlO0HqpW9xn818qqGJR4FKMZx5vnOplNe1yrIJEJUzVKzdGKxvU25E3XMstASyXwYabfkDI/MbWl1a4PgWu68trPPptc0CrAtWo7qzGqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5969d603-1bd9-4719-a9a0-f2c3ba807c5e","name":"release-5969d603-1bd9-4719-a9a0-f2c3ba807c5e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"022dbdf3-1881-405d-8ddf-5f27e52f3165","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187637391914499655710235328971699967071688602671550357083013382391661535811884360244163642853172460332550199235542651216057222780931843052637451602869779617208562193680291259143699097219595168427932742771167542706487176179994277958181341980337346895612948843117318553581141918192402176","osProfile":{"computerName":"jianyunt2"},"vmId":"66cc9dc4-d245-4cf5-84e3-f7acdd611fc5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAte405LDFH0ehiGewUKS8kGB6c6CW2Ex/Dev8ErawmKNw8Q6prQZvlOam6VhQc766l3+rSGv3grAPECO7mtjI2WokK1kVUCTiLeyAOmNF/HF0DUFCZQMLTwMtswJZnsDW48BjL93bBgmzb1v4WIpT62hVhGoyVjvs/juT1DeRCMHrxv2k9wag90AEDmxjZ3M7EocfKyFLh3gELsxRO5kDwzrhZyvRNbo2lcBxpDxbheGbc3qgdg+f2b4x1UAzjR6Rlg8UfKJWdVH88lI1VpUj+Pw4ul0GYk8Rl4aaho8FpX7sfznmQkfPAJfVzpCTmYMaUMZhdH+xz90uFFjPWJg7OQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5d32218d-e49e-4530-9b94-072b2ef363fd","name":"release-5d32218d-e49e-4530-9b94-072b2ef363fd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ed6fa0f9-a915-4d96-bf44-c99c854a85b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418817949158054226240412588672447108897458467197707935057209456549561909526550892075010724631345240785194434694338542696339841690831880594174319624993181559385526315503897322291209496979548845472190569981421876264834763053036685656635778926814965182404409375417805358696826046296348386135379971636848488981921524322773011","osProfile":{"computerName":"jianyunt2"},"vmId":"073f5ad0-904c-4a7a-81d4-1d60f8fafd44","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoe0ih1eyP3CFOCQ53J1RBZsf1mYZ8LZIqDr1CLh0w5I3gTyncYiYhr5pHGOvVrniqXkCE/tvYSSxvNlV+LDRaFe1k1PIdDzkXuMH2Slh/cmPfVMivOinUPPcgZh4G1VoLiHvKmJwcqAzs4ZC1IJ+iI9sBo1JOq0pxOYQXoVx69p5eyqLuSdkrNY7XhhtbFIYGYYCx38M84sCC4V5U1ovFhhsT5ob2BbAuYaad7TH8GciKhYpr7dux16g7VWcnJ92zhxc7BTbSioSeMePpOyPJ+h4najOqP2qpTOC9ADr7F2h1lXaRLdl2E/HQNJmYeSDStWc7nRD+69JUwGB7dg92wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1d55ae9c-3072-4987-b4a4-a32bb32f9b94","name":"release-1d55ae9c-3072-4987-b4a4-a32bb32f9b94","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6a770e03-1b0a-411c-ba87-b2c3062c787c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418190443572747269699193247797104343509768479820152657147250481020479942047819541627207892359496397919410831503594503516387358225516099462263436835927849367148077395399029051383426854355485058740476391781395147515796721716322461014306381585182925442273536689633449043808044277347819071110523378140739964036161996178588214","osProfile":{"computerName":"jianyunt2"},"vmId":"36463812-83fd-43bb-a3ec-1bba6aaba335","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxzyNJVUKXY2o4dfsiCIQ+AkEbnRZygWRAkcCQsYS9NeAnWCmvC5swOjjnqCYU8OefwJdKAoFcuyEETD2w5OgmqHS2XZwWx9/MD2yq+l7JHDGCygWPi3e8jXilAtKEGWSy0AQmFNDWSBn4qLCCcgZtHuynWwGdeCr28QXkndEj3LTbkmCYfNiXGIXTm5UzbjlnKC6Us66SJXnS388dw7/Cg+mO9R55BY7+W6+tomFD/eJUY0cCuo16yGg337KerFlnXFUnzmOGyNMnoOWbf3tJJ5bdrM8voUCW7/rgd8oGyDOlvk3GJ7GrwD7bbpyL1eqpyRLV8R+ZpHX3Cws6nzpuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-54710253-2424-44e8-b353-3e5a2cfd7924","name":"release-54710253-2424-44e8-b353-3e5a2cfd7924","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"014bcbc7-2540-40c8-bdfc-6b4fd4812b2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41876482462399194137435597957259392809924152144701957422365193137359683252643207631074089001237247793128498049481754688870698763625768592683786873035138506545979139465827413939584818902801141318772876269898617003216848952912253692214730713940168527537020437526187859873709281749827","osProfile":{"computerName":"jianyunt2"},"vmId":"e57ec78d-e1a5-4880-8ef4-c66f75ecc056","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2oMvpm2RaijrA5FClsCrKh4o18COei8FUfyFEqlbDYcM3ppYCQJ7juqxPAOwstxHstOerRwtrH/BpZGj/P8GeXKNVq4NuSPKImuRwvunIJzutwLdlK3XAYLqK8iQXn9/eWe3Vf3zrenKELp6ptR8Xa8JFEEJ2HkD3y/+DyYXUz60dMaw0S1Ik3KABcC+jNLz35t1UY0ImYii4kdWRZQi+DEhLoQ/lKoflbCulmpkkF6auBNFtrJKVinwdjcWr3ZCWngZIk+nHkke6B0CsOdnPQAzrEqnmbkrOU3UZB4nTiLj8iiW9mT3a7xnt77CYifDet63GsFjHft0yhtaZc2cBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-efb730d2-ee50-403a-9bb2-22eacb6ffa25","name":"release-efb730d2-ee50-403a-9bb2-22eacb6ffa25","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dedb945a-8ce3-4d73-8c4c-7a516e1ae919","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182556595856372932608186028852554390524166945844171699919210296041137870404061546230104090084083301918494204905210151624826435278661870376235674864309466618243220528821534758312285692131231762026896177747688632697940755722558915552264","osProfile":{"computerName":"jianyunt2"},"vmId":"f28ec42e-79f9-4225-8d3d-1e5d94c42524","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0xC/ynIB4HpHYwlLu9stoxdwVI82AX/3Z91nNGJwlWPbAOD7g9rIW3ImN+1PddiWZxMoXwdBHvcnxunUreG5iiJONtafk1OG3E349obesGGNAJ/AYNBOLcGlagYI8/U5jhvDDkqRdUUe+dfp04JL9teLiQ5FH6YGyd0cPMgZNpTQzFJnjwqL2EZq5vgOtOGmR9twriO8BrUnq7bx0euY+QDN1jAvW9BAx8xa+xY0wg9jpULZmyhLKxO5dQCgiIatHl105YNxyppo82Zl7WY4vE0fOlYJTZWDqaQ0p1iMHvs/Krvbp0+VW71yjlhqywGMEhIWgoZXeOB97uEoMLDKawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4d9454f2-b4d6-49a3-b7a7-5b4570e0e3b6","name":"release-4d9454f2-b4d6-49a3-b7a7-5b4570e0e3b6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4a74522d-c2ba-4f4d-8c8a-c099fa306807","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189304701763557438950127243512348461336010593088503650485239587437943363452498228637663512320182585704717016192260484434805841793536469958930664125118032389659755353744658592333300268121109157632227626558171963138129319299142151506686599222062331809674099153393296371285389827237961968440513168181","osProfile":{"computerName":"jianyunt2"},"vmId":"9648e428-dbb9-4c57-9167-92be96b5dad4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuWCr8WDLTGsCauIgY3eo/myxYbF0Sdaeg+dOl2DZDxzQQdPT6lIHjTmH6c+tiwQdUr+xsQPgAPEEe3XwF8pE56B/Ta7Fkhd3I7pSKstW2fsaLg5ykT9395QfZKxIjvcxm52/eg6w+/5Pb7viDXiIkZ+2AoZFNWExP5yqUUQN/tiQPGODdwWv94/qUO6u6GzxLlsCCY0OcbcXfArl6Z/4sDcrRozomYZ3tjmVrgR0Pa4F7zU6Lr51uMe9rG7sjxz+VyJFg9amcBmJ15s9RcnYe/wqN3+ZKXCWPQX+AotVn5rQ4wgV5bRiZdcl6fsW9iB1CboinuEGenv6n7g5Bi0igwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cf7bd538-752f-4394-b9ba-12d844933052","name":"release-cf7bd538-752f-4394-b9ba-12d844933052","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e1b04a27-5e29-477c-94e7-d23cb37a5a68","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418200549077005689063825753234528233166889041986088697570213900405390222578726612621444698833635677981039051357243098420511656294396985536668091607932086115583243777768307916201408492137824116927770230669370856779249214484725952209963398339641331151584796713033406849927962584","osProfile":{"computerName":"jianyunt2"},"vmId":"a4c3dab4-7934-45c7-a4d3-6a0843426350","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvxkHJ9FMF3njyCDMHA50gUsMtYsXY7H02Duq1/QlU5wMEBC1VHiuzOOprvA4LgY59LzBhI/PHWfeHpATZK9VIdX+wypqEfuTs/6h1XmKXTZqPh1rKiooIUsznNiiUOVWkLtKthFgMGDGI+ZsQGOjlU2SAELsAs1f+fZvP+OLf/XTI3HayqU4d1c/TOBi2VOWdxI/Q4gRDOtic2j1d40CdgYerqmvNoL3amJTM5PuEAzyKrOEY4OugJAdnV+bFr7PqLwhgd2Qo53N9D0XV93JKQMTOOQ+F96Os4CJp7dSSyDsNNJWvSbiNy6xn4+qkMRZ083X4+Rsg8DkHjXeCT1pCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f26a869a-4459-406d-8af8-c1c6607f32c4","name":"release-f26a869a-4459-406d-8af8-c1c6607f32c4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8caa9c76-3dc6-48ed-92f9-b3c2dc94929e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845098955292698153978134415154293451635031567838821082740761863955780606410571200311255975270985518779378383187920377244587532932906783019456374591294466236185511107122418394145541788620346394715608803483058043766600530082523156813911475348776901422139438177716482071811140350398149698796946166212","osProfile":{"computerName":"jianyunt2"},"vmId":"9264076f-25af-477a-8e3e-3c14e6693055","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2APCXryE0qyj/mihPr1TgbtWvF7ATe7uAVMYCw40oqlGS9lj2ahzeRUwjk3ETsy3invFAJWS9Lsj4dSxTw51kr76GsaCSepjEan1pjoRvJGtBljtzSHffzKoAaczEemAa278ubcA7Io7kkkzcwGF+O6kb7Z/WRi1JOiAoABlLeTPWSywh1RkFHos/mJvvO0/L+5EyjNOplokleWBcGxqDuwTBKcUirHELHDCGEpZSMBIWCO+eiUSmz9HI/hudw0v/DTpEbTU5Uc9ZQ+wgO2mUqClncyuLgfzkZTHAoiUHuK+/NRaqxeiNf+N3RMmnyYsmcbvuIuzYGBzO6s/exdylQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cfa29813-7b4d-458b-b2ee-5119ebfa3cc6","name":"release-cfa29813-7b4d-458b-b2ee-5119ebfa3cc6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"60a972a7-1680-4f60-8be8-b98bfd06f6ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418296664347610159876618253793279958750215387229441989498339143727180926249372853550965549746928265765332919881893434361683103290658117930757677920819961417166313422495396446558605465875754108545178628351762196291589227783819383624041663558583831455582073","osProfile":{"computerName":"jianyunt2"},"vmId":"3bc1d287-e5e5-4a37-b0bd-9a859e5b3ed1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn+6qq/1CEZ+C3FJRqXxlTSuXfPUPI1bn32oRlg4e9If0YRGOyDOEEdht9sRX1opW7dIcdlVlI7Mr/fYrUhEPtCxhYdNuFaFiNr/aZCxn8cj2U6f07xP7gaUGA/5FFpMBA8PeICLO4eN50lN3H7n9M1KlefbzIR4dlZT9uEbAi7GNCsUOykw/OVG4LEufSPm0KqVsrKThWBC8ZBJxm6ohe3LNHqG1nlYi7orollUuhEguhMf8jxE50l/NmhgbLIoicpaqm3a972hhg7uj2HWY2r31KwJRit2LX5wKtHw8+Gf0xCvuimGaiRo/KEcnRpQex3NsNkuuNMJGolcqY2lb9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b6b6d2c9-2321-4611-89e4-acd971d412ff","name":"release-b6b6d2c9-2321-4611-89e4-acd971d412ff","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"66e9ac7f-ba19-4161-a95a-08fb44504dbe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183896179335559593876697844539933770851067707673482395095065797226553968452316444581265684036364958481915988435988169261932561966931736153454292198885080750220962131530093826066489343596458678603940387974270918438621912664880168719909429884096496964102267236685184873032230082571356863550537518967133","osProfile":{"computerName":"jianyunt2"},"vmId":"8568003c-3529-4e9b-bb0f-0497faf3ea70","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzWCUThX7AfKCB339bSfKxEEpMOzeL4gLcK4BGBelkgbjbLwdHHvEgW27vsMe+IvR40nt3IiJbaEqMWJNIdey9zaC/2WWYEbmnIZ3qWr4kq/eye0QoIGVadcoIgkdVjx0E9NOWl/YJ014ADQoiNn+E81P/cO2VFG+ojgAP1XNzPI4MHEcCBrXgzfrEEaVW0ptZzV6Aq9aAiQJXHBtSZ6q5ZlVWT9MjvrNleGNnFasXpXcbGhwBcdqvdR8Qlhzk19zN3/yxz4+pQg6HjtJarg2WE216Zb91ThLPLqPwwgeEryZIH9AE6/tFZbj1QnZLkYARpZE+UMVpo5NZxsMySDIfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-28e92e21-ea2c-4892-97ee-f8b0e1f338bd","name":"release-28e92e21-ea2c-4892-97ee-f8b0e1f338bd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"700f4105-75fb-4619-94fa-8a0411b60dda","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185693836438332533118740502303627512544893219963423131639599915237247090755997919234714640262875886906396477347670799408291758766629548645761964925703453346043492733576121283196777880491917653640660547099246530385214807290760151855840076608031553228544683177814736294619764636344276854322143703","osProfile":{"computerName":"jianyunt2"},"vmId":"5ed57efa-9168-48b6-85c9-f87021a6cd3d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy8nXJxCGIS6STQy9gpKZid1oSW2VN7pgC7YapaJVn4IlkmOYXzfcKlceRGxBYIygF6vXqUyhDi5i4buNYJ4aR7ZNybrLJzU6+ApmLie3MCo0O2huJztNnNfeG1SXA/x2BYhBNscK/hpI7VeSivHomyptpGdd1EpPs/le3K+qVxa2bFL+788m8jcdmUjYt2RfLpmxKCd84emDY6YRFXxO0tAspenpLgPVXE3cms3gCafpHvWLd+Wzr7+ns2kCy6v0/7vmsFWxK0408w31Xn9lF+vyrOquj5HHZWgrYbgCl6DP6W7JMIIfI+N2zePZAov2YkYW7lLUrziQI0VXND4j4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ed6af5e0-0852-4578-a791-bfad0582e245","name":"release-ed6af5e0-0852-4578-a791-bfad0582e245","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d4794a8d-eeaf-4b31-9429-dc0be9197008","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183508434785344534842686826578526333820420384478540386875886803921254714200455123024155556553117281284571292640685241599736893764732585858097833441658424832259501260539669665184347032245228617423639407296098492701535057372661656012482301215341796276025457221621354945484811989548989352810","osProfile":{"computerName":"jianyunt2"},"vmId":"212e0f4b-b4b5-4aa4-b4c3-7f83c078d785","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxDHDquIGQpkDaOg6KJCjndId2X/Tgt0eO2xUg7fqCxgN2jT4M6PtOjHnCZfIpDzGtGoFiQlXO5sorjwocA0+mn1PaLURTZYmCltFtNrW8erOOD41UDSmiDAaAYPPkFXFFmpMznbiaawfsbL3cuzHR4mT0mvuIVIUBTq6QUB2tjmq5hPCJmILCplxmx78te47zeHq9E935nK/fWGQR5KT3oO0lIf0Kk/dYJabxcC0v2OMclFerfCUSUCrn3TuDLb66IKVtkegt3Kyj6HeWkUau0ttK/nVcUQ1tyh9DfMLzbqpJAqayNyk++/n/s7yCEXLms7atwUAfB8PQn2I+bWnjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-034a8d0d-b4fe-481a-9eb5-d51944ff48fb","name":"release-034a8d0d-b4fe-481a-9eb5-d51944ff48fb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a43e2c10-8b4a-4790-aeb8-612bf89f770b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41848626478461713722364818998575411202489126997944459773811108391052222895913647884193771998477530718647822778842941314864765438467439497455097932410864121216194699654242424032801448869226682145871709121356217793407632738559856919361735597531649467160","osProfile":{"computerName":"jianyunt2"},"vmId":"545fc191-4de7-444e-ab0f-cab78e506417","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzn7fY4wbcaTIDJZRk1Jq/Bbe49bQO1zTBQ0HhVjCdbUXj04EVXoIpm7VORdI2gX3rkOQggcayLYe++0S3l7YxhvV/jF4M8sbBhWJimXoxLR7by0NBLuECUA2/HlKcIBf2LtwtTpC+E96CGTheF7PrtE08x8v1nDAVaqxFRgVKkJiP/7xMmpsF92VEd3Q7zW7Ngmh0YBnoPwxVeEL/i7wKt/cxGpfhqZBZ3nTprz4cjH0wTjQlPmY/OCWi4OsBxdEOyYtpIW1FyVYq+cKzSGjX0BIfvT4M+TVCndC72IaA1P0X/XqxXHToNZ6Pitv0pVeMsvtA1Dl0RcJteyRgQMOrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0e9a1649-a885-4733-82a9-46aebafe9790","name":"release-0e9a1649-a885-4733-82a9-46aebafe9790","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"148f6310-f9b9-4ca9-b29d-782359e72474","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418782981642849955973319959324576204399362927088227843594959828482345462593696112127960631570899855282523252540337801561758871415759915211596389828273270569298352780834387628384369102572601782666903351534977514171363653898324487615193551637913485892871052155330433293424256167877591819073130267401522310682678863996434","osProfile":{"computerName":"jianyunt2"},"vmId":"6fd080cb-2efe-49ce-8e34-70e37c291de3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8lYWXd9t9rQqNC7zKeiDLEBiKwz6h7YY7cHcpf1l3M5OAjIT5VbuB5tJrIEbEckEobfZ3us1bUZ41mYYj46F4+pQ3pzxSUC1mghQG5FTuJMMuWZHyppc6gQs3tKN91ccU2Bi6nJfI5H/UzvVIowW3tFhtSc3SCo9tgwWgNB0GbAihSm2c9gGTd2ehLftVbiMh9GzEUg/yA8gLyovcsA+MYu5KZ82bmoj3assEXGk4GFJv7VGH33SJYielvEIB+7N/ncBMDEi75chozY/zfqVq3mafC7A+vK6cJrR9x/3L2sMi2oz0sySWlYHZ7LdWhWGJZd0a8pFmhrOdqH1oPKlfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a0eb7d10-2984-4e83-b367-06c39ec10b68","name":"release-a0eb7d10-2984-4e83-b367-06c39ec10b68","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"814b3dc2-c628-4c7c-9490-b307e720a03e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188265143751618965586257954697718973618019794754811733994771663207844269857195914588345564957376453924845468726152760143229112665578346124753766181893594877473160127938187789954987233197090717765469298588275161479736944764990353381749612589364120557379337528040681778420818108423","osProfile":{"computerName":"jianyunt2"},"vmId":"e7d535e4-dd74-4d31-a393-d171eddd7808","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyPqWEa7xF8Q4ca1fzLLKwiQmOerF/sjCQWebf9jagzPiM5D+ZEBmdgX0PK3C6M3bK1gIsHN2tRUx+XsO32lyJSseTWMz4BC/OCqiLOLtquORVTjuRzTKCUdKMMNQz0H8ZPMQ69sYbfUWjbwrVz/wu54dswkF4X1fVKr28VC2uJ916gokzKo+yQy9lU+8l4RlWMGvVB5iuLL9xNJD+Z4svhTHQwVydoH8ZiKTjrN87YjRk+Kpj1a7/bAQ/pb1/YBg6gCCe3iIlVntY/aQn5AfogJOqF83IPc62l5UyeF186i0kvAJfa0bKk0PJn3jXzHOP6Qpq3ukoS4umkF/L7+HEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a1c4dbca-6e90-4d86-a06b-f226c32d41f3","name":"release-a1c4dbca-6e90-4d86-a06b-f226c32d41f3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7f447bf0-a38f-4581-ab4d-3c4b9b2de438","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418507058555921372949289688806384788132252585451806450181547727613725213786840625102231841138914197896183594564381126829486304696400979412409728649467317572248988578288103657657449534236236895691183593984860287186742455268257679227948113943385990760144296971386273978","osProfile":{"computerName":"jianyunt2"},"vmId":"3579cd71-cc95-4f3e-9b60-a216810ba929","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6sPKlQ6VX+YkrWXiTYrzXRDOpYeq8nNPi9nvvnYNrLNTlHGu0s44tQAlxR3fAaG12/t3TwDCz5srZMQ/cjm+TzcEuKNvO9XE6waQCA31/Y1RQubRa0/qM9/H5B7j2wpIyh9EvKUTzqGtB8S+LEbTvGLAcSQTIqkOJpdZfQ48lmogJReATzC/GRqfS3YhKG4F50+iISpauF9DeGfNBjv6O0UBDKOezy2PsGR16dADXzzxFU+I1kExKvcyWqRwnTlLJUSK8ETKGwJO1WWsjQsTyRIfm9Tm/fTmZ2Dnr47aRE4U7sAa8izlFkN2vqioDEd/kPo7kktkrMb6BdAV3vo03wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3792e6fd-826d-4c54-bbee-7d6a934bb6f5","name":"release-3792e6fd-826d-4c54-bbee-7d6a934bb6f5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ed9e60c7-dfcf-4431-9040-5a2b69adb4db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183318508930968910192627009110844273832060701260992812179048069353707862760989818885692615804434539409657182852440361532208091342581872394279073743748350974604840140958188383651366274878273222405277622629379742680493317805240893880971370290813467184038828","osProfile":{"computerName":"jianyunt2"},"vmId":"bc9802cc-bf0d-4961-acc0-cfc42335eb15","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsOZeHEEGJ6+NNOilzboRTE1JcyQPd44U9EDcAuerch1tRQVApflNsIfqzu6wt/f32gE8BChdosxuqds6xz9hRfIMwNDU0bnpf8HK3rmtiJ9Cl7PZxkEqJyMKREg0LvgkSQDvVhtkOj0bdR0Bad9znyrdMxbYeEJVC3/BX/FGo4rsspZnzGc5wDw+zV1WwWdZwtr5VqiyqEL5IJysTA1cuIyAbn93SVLiVoT/sGClXktpwaY2LMGyBc0vixtt5JkRTT4F2xxO5+AjkOGT2WgqwGSKIjYRxEkrf/Y1lAaGLtvjks1o0u6ZZx+W9nYpUuBbzgaDARMTcOJlMvM2LlnovwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-11ca8598-6895-4c9b-85e9-18452e602e7e","name":"release-11ca8598-6895-4c9b-85e9-18452e602e7e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4fadc55b-95c2-4d53-ada9-b3fb83471332","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184469744429744323452288834841086896530827721213454031592340336381364346378928378814161781926302156682561760603461749846518294446067465720729244029145354906463283301999258137229819540273485749726081694401866162788919299117841995769746069430768551184756875","osProfile":{"computerName":"jianyunt2"},"vmId":"f816fadc-55c1-4a1c-a68d-6480cb83e61a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoJI1fsC5yErsDvqo7YMJJtFV/Wo5W+Raym2S/uYVpST9ntPAuVzDJGCs7jbvHVr6HtQ72BO89kGhnfH63HfW1srbD2s6tSwA5L8H+NWzyFetJh7NWIJk/oRnUKYsTETY8ajnkehoC670ULLbIyRw+8eRnyCgdIbgvRCc1ZlXna3wm2HnWFL8TqlrlmrwB/k7e9Htae9sz8y6Mx4viV3C6l2NJh8sliYTihiOmXCnyUsWfrY1eFA9pD/H2LZobINlZSj+f+K3Ku3Ioy3UeNciXPSaPjetbjkLtzT21/PzPYHMMKnT6RSIr5eXPPbWZFhQzH8OTfOnRTb5LTHeFdlZRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f4b07980-12a3-4386-961b-d92555f09b37","name":"release-f4b07980-12a3-4386-961b-d92555f09b37","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3731a6fd-153d-482c-93e6-8415e0a5a6de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185463650931052512316550472114443039605861677012756391771430786189886469813298168064478209744632059027397423698309936651816458148765046877725631832561658453217636795372403993692610470165874139930461398541528487186557349315972799893066166210367181336652383593813646610347426343757324422739424457","osProfile":{"computerName":"jianyunt2"},"vmId":"a58e5f8e-08ee-4210-853b-f77df74b5e41","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy5ZiZlgTMmkgXNiOQS1A63NkB0TaTTRlElLT1KzE9H8cShRorRrpP9rQvcHWIquvedaomq/m2fLwzlM1WAdyKNjmZ3eniulaD3fJFxu422Insl37T1QSFkU+rm4MATMUHkGWKI2ScGQwrOCPuO6lL/BUSsy4PeLkZfyPLgAdEFqWUO49rO6pALPD6j+NilHEfGmHRa8Hreof8Jbtndc1g6thLWEckiq7CrxaHVcpvTQ6T7FFFQuUBn7fhU0O8GinuyQxtSXcBycmmPJ61rworHYSQWojeQbvgKs8J2myXNVs7yyDNEDA40ZKP5hayo8fBkY519d2DYMSTpUfbYWU5wIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVJrb5swFP0v0din0WRAQqhUTcc8Ujd9BAiR%2bpEQh1gowIDm0ar77bsm2VRk2Yf7OPf4%2bn4MSnHqHmVZtIPbj4GPeJnEhp9gMbgd7Lqubm%2bHw31aprnYi7K7Sd%2ffGnGTVfth%2b7Zus0bWnazKdrgeC8u2ppm%2bnTipbk3sTJ%2falqMLY%2btk02xjbtajYd1UB7kRTTt8kllTtdW2u7k%2frxu5cat9%2fdYJqpTtZCnaX2kt9QNFEvmdMfrp6KOpPjL0uhEHKY7fv7WFrJdVIco7bcw0m2mG0alfOjUTajdYxD3Cf07In%2fGUindz%2fDh3OS6fZpLT0wwzWlLQhMAychUajQjzeEWYSEzuvyjreGyqmGChYpDPuHyVZ%2fh%2bhYXchQvNCKggT4hQgRPDU0iYZAVWQHLIGGxOKk6ZikTttIyrjznEYZMhUQzKeX5AcIQPNgcP3StD4JLnKHZwAP%2foAhFmq8UpCrdkp7wiuSewPREEMsYhfbgLxnp9Ts%2btwv4rsi%2bebZt4B0qcBDAvRBe7eckwz71KZxrnmAEW6FwARyCBi5mF2TFQPY2pLwD32eo3qZ6FDLzKeZhzsgYPEYoOHCQsfliBRRgheKmeJctRUd5Bcfoh41GIkG6cx8zH3EVB1%2bfI%2fblbLf91YvpVp0OKfapAB91Bte7yCp4REgFV7OmxIxz6IVC4At4r%2brc3ftCgNGmZi%2bvY9HO0l1%2bnqI%2fZp9TT62AF1EJDsz21xt7g8%2fMv"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '150813' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:43 GMT + - Tue, 15 Sep 2020 00:32:18 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1284,8 +2459,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - edfa8709-a736-46d7-aef7-2c9dd13332af status: code: 200 message: OK @@ -1293,36 +2466,41 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVJrb5swFP0v0din0WRAQqhUTcc8Ujd9BAiR%2BpEQh1gowIDm0ar77bsm2VRk2Yf7OPf4%2Bn4MSnHqHmVZtIPbj4GPeJnEhp9gMbgd7Lqubm%2BHw31aprnYi7K7Sd%2FfGnGTVfth%2B7Zus0bWnazKdrgeC8u2ppm%2BnTipbk3sTJ%2FalqMLY%2Btk02xjbtajYd1UB7kRTTt8kllTtdW2u7k%2Frxu5cat9%2FdYJqpTtZCnaX2kt9QNFEvmdMfrp6KOpPjL0uhEHKY7fv7WFrJdVIco7bcw0m2mG0alfOjUTajdYxD3Cf07In%2FGUindz%2FDh3OS6fZpLT0wwzWlLQhMAychUajQjzeEWYSEzuvyjreGyqmGChYpDPuHyVZ%2Fh%2BhYXchQvNCKggT4hQgRPDU0iYZAVWQHLIGGxOKk6ZikTttIyrjznEYZMhUQzKeX5AcIQPNgcP3StD4JLnKHZwAP%2FoAhFmq8UpCrdkp7wiuSewPREEMsYhfbgLxnp9Ts%2Btwv4rsi%2BebZt4B0qcBDAvRBe7eckwz71KZxrnmAEW6FwARyCBi5mF2TFQPY2pLwD32eo3qZ6FDLzKeZhzsgYPEYoOHCQsfliBRRgheKmeJctRUd5Bcfoh41GIkG6cx8zH3EVB1%2BfI%2FblbLf91YvpVp0OKfapAB91Bte7yCp4REgFV7OmxIxz6IVC4At4r%2Brc3ftCgNGmZi%2BvY9HO0l1%2BnqI%2FZp9TT62AF1EJDsz21xt7g8%2FMv + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c9a33b58-b8e1-4286-8fbd-e3dac6576722","name":"release-c9a33b58-b8e1-4286-8fbd-e3dac6576722","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ff85fc61-1fbb-4094-9b57-c1aa1dd42bc9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41835585494027876658334277908299382611109698368923297309695161857375563226348318867116786077780884784043909728928931362175402474754612512913979049099492153410161045776606546390712187274356372050163853074275767606575614507403564178825229923343788003303467914819893595764105140","osProfile":{"computerName":"jianyunt2"},"vmId":"2a2e539b-a4c6-4a8c-bdc9-897957982bea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzuLJQTpf2G3j3P0oh2kx2HGBG0UKg963aDbJdqsKNtmXf+Im8sv1w3Np5U3Q3UGlrLnhJzAP/PPppueUx/S8bzNlIjs5/pPYqS97WKJSULjS8IUunmkrAWjQ5JYLwkfhRq8165kw3X2qFhKEOKu7BvLA/T/Y3YzIuOChd5Rwoe3O6ZmiJOY9J5MwCfLiiJt6LFrtrJ6bc81vmvXs+iCFRT04OdgWCl3QFODVclHFspex6FEZyZ595HcATzSlMd4sp/qg0AEz/PIEOdIyQ854EKy+bfwY8gwHrVj7VSlEh08/Okez+16ZzgW4pZCfA43XH9C/dMu4QN8Rvt53Yn15GQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9640ee6c-bbd5-47b8-8f84-007ddf5b8cfd","name":"release-9640ee6c-bbd5-47b8-8f84-007ddf5b8cfd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dd38523c-fd42-4c46-934d-361317da77fc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418568703645372453144164158054823473580721496325767312891078453650953985761677896209152164126559416944817497822317949331227868849194561699936746028027470686850401109294986124533107016966086186926862016442912560621686645829946159145831038252301859654936531482431251388","osProfile":{"computerName":"jianyunt2"},"vmId":"64faf73f-251a-45d7-a45b-086b18c610ed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo4p3myHubwWGrLYwag7Vk6cn/sSM8r11USeVk2mTdLHyKk3e8hHUNpGDrp+ZHpSDWMn+AkLXWYe3erlbopXk+h3fXN5aM0cPZAVnsZTJjSTc5T+E4rawAAZhSit0iMepi4suS4RIL+0wygqAq5JLJ+hZJiKNHN6BJh2YZNq9mxtVp96HpnJlTDN2COVV6GPObkO5C63K+2awNHQRnrDp3fp+gt5QPMBeSuJXzw9FMGHZDKEiaKvZkQUVRvHo0bDyA65ZV/QgtGiFPlgWNS8YFxKNizM+2MnIRrKj/VFtx4zFk+gLAi5LEzIsTaAqckAbfOD6IsRVFtaemrScu5A3CQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-229cd8e6-85fc-496b-9f4e-efa4d5f130a4","name":"release-229cd8e6-85fc-496b-9f4e-efa4d5f130a4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"80bba935-aa85-419a-b29f-72b629d5e374","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418979100695684824487469623817774749482819927753244099762335322199905771373868683274289071235820872261713477385220872848244763361323453213162846080752651602826396636483147421923766686174340784817203300681255664609574483580650455799180285411896554261492446400","osProfile":{"computerName":"jianyunt2"},"vmId":"320de8d4-f341-4bf0-af29-be5580c8bc38","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7qfHdHsiO5rTlWB+sVZoOluYSFDvPfvWfUVBeb1s/wxFC+TXagYQy5GE9FZVKIqclL7Y3tcY4TAP0dIE50wcMj8JCBNcTuT3h5yD5Bl8hhSUtYYtvOTqYtLBu2affYuNIGV2ovNovgTUT+fxWr7gRSAtW97Vm058yBqcxmqUIIUBug+Txf81GIV38/zuM1+vrDTDqyY+eA9zQOZtlLyEr1vw1tN5nh+F1oV8JtS6YvWagWcQ/yYOaeltisy78Z7TCbL3+qLhVujScfsrce/68cftTYkl54uQr61c8bE1iTJ1yiklKWcUQ132Eim093la9f6j8IIBVejyM2uE/LY1dwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-933f66d5-0121-4ad5-b562-6f66c265e005","name":"release-933f66d5-0121-4ad5-b562-6f66c265e005","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cffad0fe-75b5-49ca-bd52-7f3982fd2aec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182197352671926003508469897180726741532974954650149651735381527967430867824064413665029272881643572457895111366402433686531102578800656183494135824942050566184183247198240572750278325856165244488964775411613038778914922572430523131761982434148273033714514618585966359418041505","osProfile":{"computerName":"jianyunt2"},"vmId":"65f6a501-6966-464e-8b0b-6633296c49e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnCraj4NkCWHsaK/HRMPUEFZQRt55jR4NW2bqCL1/qVYKOn1jK/CHGhlpgd3Ny3ZEWIgDbs58j7Rh4hTEUdLmAPwwaZ/cMuMIjhTkJPCC83NNSmDUIkYnAzyDyz079S5Wlc9kg7BIyzZIEEB8n/C5apPdaHMZ3QYC5SprNiolRax7ImpU80FVls2v0J6jWpIjxlBPaHvE589XCYmAorMoaO/eT32HAJsCRA8BZQ0KdINTusiN/VCTlFGMRTr9737IISWEcq9BskeWAs3UmaPtJ7pkA9jgUUfh3XziqI9C2Vk4fyo7NtcglQwlaC0bw3khqpySetMcpRM/BwPCKMnYVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-55e6e68a-e593-4a8b-a287-5956a8818596","name":"release-55e6e68a-e593-4a8b-a287-5956a8818596","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ada4e852-2b80-4e8a-a19d-c4475eca2757","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185457350185626735226741514574850110828560195658462322311574527016514517791171639928185159743632795634102219417219612272867635566564256056252489982694645718076019995404511595155403414663394587728872452709639786878798586480927718222","osProfile":{"computerName":"jianyunt2"},"vmId":"e3836c13-27a9-4a07-b0ea-cd2c32786f7a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvB1J64cXWIIB0GoQcDuEI1Mu47zF0Zvrp3qspY8hVhkoIy5uywkfXV6TFWbmgp+6Zz5U/Rdf0iXe7YmxaXwyj9KzcBhLr4Wz9uCB7mRjC2tFJRdMJYLY+HpDA06zsAjJgDs4z1S2HH2apC231PWM8A/QKZ4qsB9JFdKdF4d+p+dRqVu48/ieYxk5F49y/X6tTgEo823ZfdzzHv7EPMwl5GyAQJAI3/iWB3UZ9bQr1xQDQTkGioIPFuiUsKJ9co++GoeHUjvrkIR7iEQDSawabp8iGlR9LnV+11L44TyGiDm9R1DMzXggVSE3Z+RBkZ8G0ctmWz03aNJAZ9Qc4oyWFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9d6ce9ee-1819-4adc-85b7-c375886a87f6","name":"release-9d6ce9ee-1819-4adc-85b7-c375886a87f6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0be6ac23-2465-4e16-b8bd-adee97e79fff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41898365665639335661577747121430388073689513969744502732065187376557744451448886547515087674674499856623836457344836814415579271144425555959954162697264505495651504128519984614333155214153523905920136298821273237897960637443133445745129576217902231141703","osProfile":{"computerName":"jianyunt2"},"vmId":"4ba46bb5-7459-47a5-a1c2-7e2fa65781a2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwgQ9ClDxU/BAI/rboJr9NZYUAtQwkak7/fqLVbafT//eCwjDmTdzC2GQdgd9GRmxFttuJeTSMpuCrURAs4/DbfBZDhBG/6phqhgrnp2BlOjrYeKHDGjt7UCcWPVtTjgAqW+u61GGc9nY8AaBkIeZAGpb5LzOqVEgjvcJwjGeob2UFFRkHfXe0YpqyoY5KlZBDYgsfD6jRigb0mg2aIA4B31fyWI/07zd0WnABzIl03LestqO4jFjrrf9/g3cfnwbnt7PosU1pCesdhhI33cUy/KRu9cId1QCI8o4//Gl/l5cdiUStM6HDM1xse5FoUPGSyJKCw2UzqxW4DHnJe5PDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fbf91133-8aa5-4d6c-bdaf-14b892ebea71","name":"release-fbf91133-8aa5-4d6c-bdaf-14b892ebea71","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"909096f6-0d3c-47e9-afc6-a8178626824d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41886012026268714753174772302159504975639384692274222495831616181736738430676490520115425276139894745121992588305247595828725750839322045364160344269611069356896169025475646821292077445993011759201749121436361437706583390369661076767659498423917895488911141","osProfile":{"computerName":"jianyunt2"},"vmId":"4662110a-5bb9-4d0a-962d-046f5ca83047","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxgBgaK7Y8SB6eZAdWtHOTC4lovpoLxlq34m3l4RFbqZzVetw1bm1RmfkM8bUOXYlBeN95PSyvD7mbdulF4frrWXaYBcOvZRhKl2CBKEPwdndEVziMXhscyNdf5ZggUNrTjMKw2FHFKC1pDBJdqYR3OZMSMNp4RUJRk0eYB1Ppu/miD4NdoMmWMOdQQI/DzINPoi2F0ierwRRNuykMZnR9C0iWl5wsO5R+0sP4+hf/QeV/OFl9rxg4gRkwMbiIVBfpgEdtdgLiuq7hOhvup4hDugYEYGUDPF0O06V9TVpkg4iLdugP/D0dU8M1k57WZwefbe9IN6Z/3oXBXdLq/WpjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f49c2561-47ac-4c48-abe3-ec8c5cc0574b","name":"release-f49c2561-47ac-4c48-abe3-ec8c5cc0574b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6fca6840-33e9-44a9-8fe9-24b7fcceffdd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189753097461582244246545973163820259046703781453137160082877910487719862734106814924405002712675452507677431848186601976032588538862049309040792937861994927591725278251915663217790919876966294289719596616836768235758532092722365246097955994438953571363872132993941648539775931474375713","osProfile":{"computerName":"jianyunt2"},"vmId":"bd0154bb-c2b6-4a52-a164-c0a147f1a9d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+eczjzTdIKeTGHFZH0wMfAS+kuSPcDSB5JOmZJq0Lyc+inVlHT6PDsaZRYjnA0fjED6jkOwZVimo2hogdsha2TjyHHIxAMMYw/XEufbE9ADo5quhGcAvqo+JR+ghlQKwLTwCC0jSXx2+d4AGRJuYx2OfS4QDFY/ht0PeAWZLnajwL4ghZjp1SZnUD3hQ9w9/uIBmchfcEMjF9qdvsRNKK+HPcSxqQpujArbQo2nPmcVDThNc1YS39xxZxNwOrrEj3KbVMowd8n+H2bLRKF1apHyPYLsxqWwHFVSWetDTe5zyipWPLYHjjXNEHGV4MSsNfg9MJ1IkUieXIId4zTJ3AQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e32bd837-c473-4150-8d68-fb0b7d06f884","name":"release-e32bd837-c473-4150-8d68-fb0b7d06f884","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"78659130-1430-4a66-91d6-ca75c0ce5822","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41821901016815397293240586719807973453612216438838596120013588992998858795465940072097863389407243853458247672315857114317449168282914989923149138742393779541377209867872059285392895372233504038536490939789961943272354464695247725869307377776161897629049836288557188","osProfile":{"computerName":"jianyunt2"},"vmId":"0945eb7a-6747-42ce-9262-83289994bb20","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt5GY7PfJ0oohXm792Zpa7jSzvdLbw5J9HoIIJ0sDrMQjwlxOMo2B4KocmXiwU2R2UkTWJLS4q8p7godD0D4gYhL4DjHZo9DCi1md2ZhngCNW3Hiex20JG2i5490Q29xe16wC4f+qxqK38IjgnMUPr2XpBTB9u2A8JR1tkOg/JG16e1xCasu5zrDTUPryweHsxUDCugY/xXW7dfpUn2bIURxFrUCITb7P6kVPCsjsVfrd9n/wi1R0cH3gQ1Syj1V9IG4txn0WGK+Mvra24c/B/3R48sVnBy/laEQ3kpTJBeIzx2MCE/P0AWfWtuE+NFrVn2FNaCnsqve8874uean/yQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-47a5b1fd-364c-43d0-a448-3df9751e2469","name":"release-47a5b1fd-364c-43d0-a448-3df9751e2469","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f1b51819-ab0a-426b-b8ff-e93f46183986","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183948530142212043262264456629299845894502015311287985518134549226983525604839020494024268997545643106177721296409771489847213964692780144349752755077529378910960271525536513887961381928960334854778587488641118818432678093959464345121282735975585585096445255775915896316277933810131394473383390121582526994376439","osProfile":{"computerName":"jianyunt2"},"vmId":"c802be87-545a-4d0c-937c-5422ad5a485a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy0IPBkPzEnXQuEpNI7WLQtYo3kOgK996R6/zQX+57t7GCqrfZhPEKYg5hKX0CjfT6/IGtAcHZQDYGOxaPwYjRVY/YTOi+EYJAjR+Jr4/6QAtFm9DMrDahKHoiFy29kSJwbzZhoOGyQYPh7JETPrQo9bOm2dpi9NsQxhVs4BtZDxk+4MSYSW0Vzi/Hui0iJRFzP6nhhPc9xXiclzhN1aMudbZMl82Zi83DTni1w+c6VpFEYnRpxeV5AnhIHzEBE2+O/rE7uJxRSZJWmhEBXjY4gCU/dbZBHmXM43S/cdJ7TPG4N468OTKXxjmd2zkMtCibsQ35gD0p0356uJhV1AqJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e7c7fe3d-aff4-43d5-b0fc-ce7ae24450fe","name":"release-e7c7fe3d-aff4-43d5-b0fc-ce7ae24450fe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4c724f20-3e02-481e-9960-1fa878197a98","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418683358344065272997126095779742787567138596049379393607560402903590491632073343140912524749909872729339868992295874318545150722989957452232187097346981142186434774720265504552184961285018607559504351885861472474724954807629260387753019163563166450449513855030866722105379276246824725604278555252418592104977427802398","osProfile":{"computerName":"jianyunt2"},"vmId":"0329b37c-0cec-4668-ac98-5df4add08894","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqe243G4CeivXsNthJGNJGP7Xph9Nj5FMe3x2cCc9depeZ+bAMDg5JVhCysXXvx21yOlr0whEUQgC96dV1pNohC93ZKRU9jAbLzNge2lZDXMLSZKg9bJKGK4dtzqGsbyUoVnmKSMxqHbnTSegoU3Zm9s1m1fDRYu4p7+uz/xEr4q1zc3oLbFmnl9OsPD0qqy0Ak3x9stQV90TTvNMNlIo/fWkqAjnLbRRCe6aez8dqG04Y1E5VuHbWmfKDcHHGQkxDMDob24p3LFrIex8EKq2xuEnf9AzLNu91sz56Dx82ldamPcQhuNisuM2/t41sGmr7rxzQYHdzkPUx9DPxbgInQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c3ad6e28-03d8-4710-b5f5-0dc9ddda8322","name":"release-c3ad6e28-03d8-4710-b5f5-0dc9ddda8322","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"679bdf14-6ca2-4303-824b-d5abaa0829cc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418991216707718813695104563779154803271126353904686858077121671246319115732354957010606791584818405439824470847416129475559915302789128636965369757751361830373217515984792575988726791825765789880134206685339368559459538574145042016658418155109770756392011758223629857883788005146137329009431936081923510","osProfile":{"computerName":"jianyunt2"},"vmId":"16bc24cd-95f2-4a48-a270-2c4c46527611","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqfSp9k5OAu+DoSmYIlzc9M6Te6WhHUojZfTOOt5cyUOYrpugeoMaJ8ABa6UZatyxUmjU35RlW9wBNzGZlMghJKAdHomWVB/8tlqBs56SVMzEoggKpss7rDwCz5VUGSUWL0ALD/3305QKZlkl7GjWYD1V4lkg0ySADiGVKzBy69DoKMAbsNqedqBJruhfEqw1Mq/iubr1Pc3a5xGnUAzRmUzc4DG9uXbn5B4rj6L2FaHgPXIT1TU+xnJdVadfOACrMsKmxIFZk7/MqQ9ESz/o0cgRHCYCKuY9bsq0u/YxMgTxQ2r5gbVstnAsNXPGIwLOIb65CqfZkWQBCn1/iPrQCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-11fcecae-bca3-481b-83cb-fc4d24172dc2","name":"release-11fcecae-bca3-481b-83cb-fc4d24172dc2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b6c31385-22b8-4696-8c9a-9637cf426c38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41891129330789321689589833539835501661156630989794587506039004508492069466296303488693754724314452583275731250890523753885845585736197307573325409184159912678201535996742727447748166935372105021794635347951582368799571733726402993658815206763638752658168348641400","osProfile":{"computerName":"jianyunt2"},"vmId":"8a0d3f9b-ebac-4272-acbc-7c6f2e975930","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtUcVhR0QDMG9dwFyiXf0qpBTaggKwc5rN6FiSN5FMS0+pdlxmp2smG9GVur7BMNgnN+0wRx6kLYFehM7U0XSJBKBaJaRYybShdXbVYmBMe3np4AHmU0nyFKVR9oLutlnKilQPBlQEQIz68jSbyiTzXC49suKKsa0QiBiIahxkRoGelnu6asUaOME0d1zwQOGXNdZJlhxFSQ6fY58ZbmByaqhS0x4b6GIWbGgib5VCK9hi2/PWXSXjKqfYMnDYZhnj3E71lberJ+EjMpkd8mRYLm2gXvXUoL4/uucJhAUhl30F/2D0L6ZT2ik6V2Lb6svIqfvnAvd8LY1gdbtL8kbOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-383d8839-5d66-4795-9840-0173d04b776f","name":"release-383d8839-5d66-4795-9840-0173d04b776f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6815d489-4d5b-4e2b-9ff3-7ddfe14e61ab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41827737745626882311097346427586862577217294059465492959946538241404878197315352107294564837076253173961905584817919445356714420287014858462791117591963150799839558684454130735005572936075223487722733118607020183433761725843730177005014123748153115668483723047204892178892767242396131179352053165225462529655349226954116700629137183759192879942476944998","osProfile":{"computerName":"jianyunt2"},"vmId":"2659ace5-1967-41c6-bb26-322aab80aeb2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0T/06aK+UazT94FbEGOnQ8kj1OynYlvhMrfWDe2BnVERRv4KbCYJ6WqWA0bzNADZf+CDbgHNmJSbzwJubHjYQg3dF4ZQeeEUhUq4SkZXUZyf4/hmp0RIdZpw6ZswZ7PAZhwMJQ+nC0KEqIARrhz4B/z7NlAtUC+tAm7AizC7XRLrE0GDoMxn0lrgipjb/1G8sIhWk1d1eFw525JkkiqnR91ey4j98PT5C/VoW+yffFkKDyJykwVO8iwvebFOj1S0HfG/UxQv7FxJQimvNUw5mBMLnOztrTPg2bIuhENb0h4G3d5mRFodM5VjGKHzRc/aIqpYyGk+8oEbL0bWkhMiHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-07558901-065a-4f9f-8e48-f92197274442","name":"release-07558901-065a-4f9f-8e48-f92197274442","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cdccfbab-8e0d-435e-bade-a1b269b56d85","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41875213835699429820162471449199527361623374803649146052244517006639929756285126269472899331983959877356920145538499992892340635629981092082391982685779704428095413222305572149517169989038376739090026441179362009420541483162656104323657327168392996748100917264268864554675347385","osProfile":{"computerName":"jianyunt2"},"vmId":"a89b33ac-5587-41f9-a14c-91c8973665b7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv4e8DieO48WHALIQtVX5kJ8uTEQDqrFvHhv+w29D8hcxq2F6Uh5EUTrcx/mYqAyiw1n0Wirtr9mFGDQ2RR8wu7Lu5irkkXx3rFmroEQGybx6UpAzr8NzXWJTqoBHKFU0TGJyfAcx0fXg2oS/skJqfT9RMRu+IV+stUI7/wLcKZJoLl8+bwnHY+c0yyYS2A2jdYf9RJZy8KVHR85vXv6T+CZuBNfyka0w9gar3BYx/OsxCQV+BXiUiPMdSI8lhSMgxFZOA/hEfEymg7qh4+ynv/UJOoSQLPAh5XSFWYTa4N4SjHpjs7j49WzmdA6q7liA2a9nYPJIYE1PCKniU5xtlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ed28e45a-826c-4593-881d-3eeb2050c99e","name":"release-ed28e45a-826c-4593-881d-3eeb2050c99e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d557deed-e5be-435d-a5c3-c041cbce5603","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185606879643701613490369682194505788809335947062099489109534745030628954683630202695473288131474519631284920668873566796436924456299739408087948841028285130156494561398911711296283214311254185186018277260978714722913585900555985232938","osProfile":{"computerName":"jianyunt2"},"vmId":"b44a9ba0-7e7f-4d0e-855d-94aa34e334cc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu3/tP+dByOD5wN5jNQGaWhCh8yVwvbCJ5hPcWmjI7Gk/0AeIBLkfMcqP19EEKotiqpdLBSqRlsiWkEtlzp36GIY4nKBTfa+JMNGSYziDO3cHK6G08pgQ1zIOmlEZ+JmRAginWDEN+rsp5F0jmeLpD19bYF+yTwTXf01aZLK3dd0QuKO27rYt4GCKlKXX+hGyv9xfLp38TN72kGLobmjGFDro/uNoWqklmYqbEietiVnCrRL28QzpNPaBtBrKMg6PlctR7l2Dxnca4JqtlVDJ0n1lwOsP5uYs16cCeLgCUeSVJIxeufYs/YVsWRGwObc2aBFOkORFsYFarbI6KEGFywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6a7e8d0e-29b1-4914-b183-3379cf6d4e26","name":"release-6a7e8d0e-29b1-4914-b183-3379cf6d4e26","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0353bfb1-9e6e-46d0-8e93-09554d840fd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41869076786306240941486510438495370159665093705730236029508762207676484977696359696876353528744609876212240653045716122283483877622988521351660889993525060909867464506374747472834832903128112066143972054597522870851067568172318251978325419206660455192785249756310397862441994945719514420551486","osProfile":{"computerName":"jianyunt2"},"vmId":"b19564fa-420f-4e73-9434-01922b21acba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAttiMDVT6fF/093bKWnueJM4zVjgsMMzJolhvq5DfJchtBwP0DUP583sjtEwz8NK44LgZi/+bciaQZC9d7nCfHiGGOnYCM5uJmScLlMxhKDkREzwv6es1xSQw/eGUpdLg5YHrRKu6Mwid52FYdZfJP3pgvLXKn98iemfkatYDmQWAUYW7na3eZ1wRJ+2zpJLpnn292z69/Yer/MYIUtJaXHs7FCrfzmnYNEQt2o5jSv2BZQJZbTG5cFNEoPaHYszKNa+x5EHmZ4JJ0ztTiPcq4lpeelQIRRP4PMWK0zH4n/RafSnpbbcVSlkr5llbBhR8YOz15F7veXa/O3FCL6P+WwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-895ed0aa-a1ee-4f9a-9439-cd30fdbca95a","name":"release-895ed0aa-a1ee-4f9a-9439-cd30fdbca95a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"09b5edcc-e1ae-401a-ac74-b46379236719","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182189609820205780221936748238891515308469645555322487294498234746025599695094681513486994697933982894601992928284291667884487825744806385580573744841177133683512212804806739576612237897886903273837235674234336779767568929897387829807904695719794782470352443205370549036240350348406548991463636","osProfile":{"computerName":"jianyunt2"},"vmId":"5fa14529-8d91-4268-89d1-4be9d8072e2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5aTC+yWQJhRhSRv1FpoXgJxAnrzhID1bIzj9VMZvqEfdiMgp/cDSEFZ6dM1/L7SFPNB9VNoFaiCZcl3y7L5dx53dxlu/kn6wWNKNYIFsdKeJjI8oQ9oYSVy8WOMcA1Ckyv3uMgICOwC9yDssvH9Pc1S/I8tnJ5b7Os7ieu1/AB+yuGn5KIG+YADIvBHbl5nfpkDzXM3jOarG0fgJRaCJMgGaHKAWjalFnRZBdw8BKGdldqRZp70Rts/hQlUV2NGA8UdJ95mMou1oemecPVsKGUUYLNxmC9YQ8yxGsJe8l04F0N/ZLCEKP/+UbyIhEnU4F2E/cO4M0uHfKpLVEyfxwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a5748a34-8df8-4438-a5ff-4bdec935af29","name":"release-a5748a34-8df8-4438-a5ff-4bdec935af29","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"785bdad6-2dde-4394-a4fb-a8b4226aba07","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41859926323724010518294629743117362102523561344990799915708214511055277732297834023155322488523198374464640239326484949743939614984823234868330852376848083729802017807477613222979363498616648537063650045951194338633177359454878891441930911972028253014931232","osProfile":{"computerName":"jianyunt2"},"vmId":"1780c26d-1d9e-4231-b529-dd1243827a53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArS2i3ecaLOCjfzTtwF3loTfyP9eNF9tedtskxU4KpsZn1qT8Ka/cXIk14pFqPn04ems46M6QCe3ln/EOxy1BtTz8YEaaqEcMR3Zo7sLSZi7g2tjUnNGgG5C1Fc1eU+YxS8gvTHONCdLk3S0ZXNPXs9UyuAwekC302IFMu+5kp3/d+F+ebpofi9XKDw8bS/J7wHMPkJ98uZT0UKp9aFsU9sl68zsR5NoANZCxCRqey03zJbh8uLZRFSn2RqrlKjhDcjjlF3exiy1zm8HDkBU9W9f+a7jQBrTxFCJjVKR4A3SalMUIq/5zXpjWU8CMEGN/WNrh9qCSTNMCBcDwnYrM2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5c651c8d-89c9-4e86-bc0d-9af08cfcdb42","name":"release-5c651c8d-89c9-4e86-bc0d-9af08cfcdb42","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"25bce33f-47ad-468a-a7c3-ead70eeaee4c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418569497019357904597754492838705089315751454576686566585262209794482189853325333157280839689355813785397104318985692623380555792711908962334641741486189087532845021151829427128156911282769957082430970010078263066258727982866308991985287673678745621046935360398444188950450995671027813763524573947","osProfile":{"computerName":"jianyunt2"},"vmId":"ae7edadf-8413-4c8c-a2ce-ec051a9399a0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt+ypyNX6qXNBFW7/UEFHGSBZ3hrRPz9VXwYeBMVOxyVmfvZ5jBREPdsbHJuXqhZ7HccrWsDh3Go0eEAa5oGyeTbfwo2eFZCL04iGwb45sUOEZRyDvuEUjtqDjm8sqCVkBtwtVZmHWn+G4y+8iWK49DYLdxDxJa6E1M7H4k0dQjFM8c71odpoSZJhsbMXMbBuOoYP3WVZDMFYWZqbs7gxe5gk+FuQGa3fGxV6dXlRaImViQZ+dwuUUiVWkokRpPT1cvBd0Dng4YPNNCwSs2aR2Raaxd3pZJ8f3EaUDnH6Fgz6azxxFSLUJIcK23KXq2drvN/uiUFLP5qyOm36aWFYhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-56bd3442-4aff-40d0-85c3-1fe5a42a4774","name":"release-56bd3442-4aff-40d0-85c3-1fe5a42a4774","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"449f3840-a037-4f0e-a6b7-861c17c0992e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41868199265557326186830112771309764982186264855834180070441474425149319431440893517731599381661100742271882538681666885767921422153494218700571977199067634577704369820563845848673654295851515744764482094203310318086009367769730507952336942354002794202346163621382309116376532119925177716913126332549568","osProfile":{"computerName":"jianyunt2"},"vmId":"8a095ad7-ab10-4519-8601-a0bf29244b85","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzN6C6KwhkfF7zov2uu9/K0S7U/cFI8f2FiXEl4/3zuk0APmhXGpDp2tk0AsypEN4mY1UKnTsQe+4bAwJ6bQRIjz/0H6GGh1thbjyGF461Eno+NE03KKkZhI+d0qAju388k2VhFBhXZmB5DtnshkJlflfi2HX+APUXuS7rilXGDlteqIhZL9swK3Hx97m0hGf8y/QYJ/pD3S78ninpGY3SOJ2aDfFWld7V+1fBbAfdM+xSIoEq0AzbxxYiGdRqydn1PnirOsZZSNkF7y/f1c6GJPlqQYqOv4mEDPHG4JznbIQVaQloj8O9mMa6Adm7jAyhYzepmJPn7fOEbAW7QJp3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5a8ff119-04d9-472d-a2f7-5d0b3e6048a0","name":"release-5a8ff119-04d9-472d-a2f7-5d0b3e6048a0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"681d9dc7-e572-4503-a082-89cf94848abb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189461057688763018821256497545128706814633163126468770699880562234052170212450540737265985784447353858530828114882336562968418920153487622223511372426227253198563266561164659270922576202316443471894068306215274721835620630787864","osProfile":{"computerName":"jianyunt2"},"vmId":"be488a90-7747-496a-a015-7b38878af7ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsq0tlN6uNabTpL0YrdZ8paCGvhQfhnwfqdWACP1iXgxsFYExaWFDtUgG//E3CKhq70G+y8JCJ3mGnwCg4pCKsLq3yD6T+fiCdZgFRXGL2sHIoKwQe2xr8QwFx7Tuo5sirh56Kl89a8F9PXP+OnnSWYB/XN1yNKBjx/4yrU6g5XQv1QUSZVDqvJdw08HORkB8kOrHmwu9jKQPNkhdZ8yIz6FCP8XsleN287XV7hsCZeUbOERNBq9KBVD2R8PJfGtbBT1YfDAszXqUrxj/7BBWToNLaEdbBIe/zeHwXplf2Ur+cm8Nu4WQEMj2lzIpeOrCkthga0BxwOcMczF3I9bhWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6b469693-f66e-4ae1-9c45-a612071177dd","name":"release-6b469693-f66e-4ae1-9c45-a612071177dd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"192282f0-eac0-44ab-a3bc-2ba67d51eeb1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186735391330419563054593429274809254025578248146671908329432537823189987065835511092978284819622302413075866660109748703897288186060723531904693386868241110557464431707649378582946555757180432336451825461551216237777311936114116656671237583358751287268985766202394011549424","osProfile":{"computerName":"jianyunt2"},"vmId":"b1658325-d2d6-4945-b93d-2e5d120e8df6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApVs0qtiVfCvwUA7gh6jqBrKX13cUPGmPPt6WqUUn3JdgODY3jB6Um0GunzsmuZEctkKUQ/NykU91D7ttprG3sNEpcznHptv7l3lojj6uwfWLO1Rt8pA6XL72OTSe4KuEHPyxOS0Veu7W6DbyoYR1kriKaoNKCP7HL5z8cOcGQBhf+Zaf1LMkJulRWHKwSxqXEJH9Amx6ZhOF3hto8Bh2x0h+0kjpjhVUAv8HvJfbjvBZQNaX7HoYaroY/B0Akf6SCptNhSiWQExKSqjEpJgL5orcHy5IfYpW8wo4QqFXMy9MMN573RYgWCFbz+9g+v3/kouuw7U8bGdtEz+Q1GqyZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-94b70dcf-396a-48a0-9c97-b3a8b5854e94","name":"release-94b70dcf-396a-48a0-9c97-b3a8b5854e94","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a485ec16-9d56-42fc-b549-346053632fe3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183976755552386401413277936643281289451088931878145050527836203815171482809786329293620678867255456077333512350744686218572951724420983679037662503951063035821081614519404233466942511257177799618586511947872236548923406396964070166356671127193298741899","osProfile":{"computerName":"jianyunt2"},"vmId":"117ebf77-8b6b-4ffd-8595-348d12a9675f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwu4d6rezdOCERnfwp/MthFSY1mKHQ0rvUoRb4jl69BkSVePeUmInLYnNkLLY5lpWm2cb++W64EZgo0hs4L4Ok0Gfwkt4DpVYQ9L/swcj2dHQQKLRC44Z/yDjBfOrF7QCVY++OeUjUedbns6dWbzQYl3m91Rd7Sm721rkwy72CyZiCtxtOITzTKzfdKPsJLGXMAq4L27I3PxmDSAi2wFA4E7oTDNvdsZj4dzrFcsdsDnYnrKq/dp04wntYX6OB98AfpwCNnhSlpsoD+H8fNhAoLpFhTtn2L6t7FNf+t9IECcWwCBo2nUVZ003T7ZQMsSooWIGDd7Zsm55cAaoOlb3vwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ed2bd2e4-c8af-48ab-8aa6-32c7ddd35ba7","name":"release-ed2bd2e4-c8af-48ab-8aa6-32c7ddd35ba7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f4d7e02d-ba3e-4a93-9347-0177d6b1ba5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418125232636643476358903434661861219139502947498948894680919856203100688418888463879909866185570953092985580302901511383232721764170248216634729425725224602796264036847245622333042138820801505252283547324077451900335478673530818022745953931375832468562083188024492061408350457194895457377002","osProfile":{"computerName":"jianyunt2"},"vmId":"42e805fc-ec0e-4bb4-b2ff-3a5c9fbb7165","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7RDPn71RvmxzAH2TxThSJwkpBUcv0/FRuUWDQXF956h9yO/FbCYRUyhkrIGcPKeVXXOBcbXqr1/7N33xa5jfl0fvfNhLeH67in/7jcTov7nR4TEbfgiAzeLkGkRVVJcUyT6UCZY3zPVxekFNEsDxhiugQT20Ucaq39ItH+tB3pTnzUIA416LLc35a0369VpHE+a0Gvf4YUN+F7QWu66RJ1+MJS4H7bhOaaZerm0ZKdqyAEeIvvhelbYB/YEVCtOPJSH32P6K1QkwTRc9Mk+88gtdtHkFW36FHhwqB9DliyRMBAkA3AsiE1coUPKBDCKsmgd6dg9dG+qFM5GzLCjBtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8600642f-df4c-41c1-8e30-a7b6ce8f2db5","name":"release-8600642f-df4c-41c1-8e30-a7b6ce8f2db5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5b5f421d-ce95-4f3a-9ff5-31f9bf2cc377","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189763561376553126062322852472364552750772029314199320313879514696024270863980668344816153304162778189508535956818213401123793571713840596493475118414184173427734431466413709712047125559250902794391469942012944200814142624426140866414225772914828819143861701738195483782732306843085811","osProfile":{"computerName":"jianyunt2"},"vmId":"0b176e1b-6764-41c5-a3c5-e5943aef5ec2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx7x03a9JBCHUDhZDYb2GQlB8g/+9CnBfX1Ih9sf4kWvf+2arfqy5EgsTwf4kaR+v3L+gPEp8NaGUHd2Peeq6O192OqhZkNLFp4Ohz+oABePWtLpln/Na+q53EfCENMXOaVtoFPvOxmfvP0aLlsa9WDezWgDEVAyM4f+kLWVW8U1SRt4OpoALcKNED8V3WoxVlehJHX1roZ4M0fbmc6BFSbmg3LOYhYrM5j8shbR+JUlhTAtrXZZ5SAAeHMfvAGhkmzlcwc6oBMyGCt2fG5/bBDqxaqDeLvu6YfXEQ04e6VJvzmxUETeEOsslohIhxJPVs7f3kxgvyQS4BoPSKKeRQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-efebbe74-a253-4e2c-8289-88b1b9a3b3c1","name":"release-efebbe74-a253-4e2c-8289-88b1b9a3b3c1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c18e42d2-bf39-45d6-a9ec-5f01d4483309","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41836186156981277798199728262078524105498494475690862213407664523516652122284681547921666739114857389897054809271512905115426797362342338323909433734717102364690715196398526626469673772589035300164051627881414025551807109479122753465639754661715660445626384192463471534635142158769027","osProfile":{"computerName":"jianyunt2"},"vmId":"ad87f260-8a66-4931-930f-3fd9242955e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7SksBp0HOtpunhLYHEX58kp1N69eJoUml/uu5ugYlRB8u/2wePGdUo6Z346jcNHGwqfO/EScMg1sw9idQxtxFcXUGdbmkI5Fd2LyxIyYZrNMi+6uKnDGkbnKfAB3iutdvLzvcAwFUoSkwEes96ph1T71vtqCcvvWxuJ5b+rJS/7Ad1lJ+melupEYF3zMKTPPnZPtWuH3mpHwXN73GG+HvzV3i6GUGB8pjUoWVL1J0yFqsmnBAG7oQfAKqPlsHWYPaNvVrBA2u2QtBS/XCKpjGcpSYh0TY4/9GVon4gYuBvNOPS/x1TbFEIDkflBH7JBJhI3bthpluq9jK9LEBsyCmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ffcab33f-6adb-4294-aab1-17e2290df998","name":"release-ffcab33f-6adb-4294-aab1-17e2290df998","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"03976d99-5559-4082-8891-8293c7babbe5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41816350001181727319912824213294783193783040548033753296721181496552157519852915244980874839086007867480685951180661191007936846866159303495369069814022509454611333807270183283685610456683769209031570113808041536835798232221664965620812512425436","osProfile":{"computerName":"jianyunt2"},"vmId":"713b7ae5-341c-449b-a025-71929dd8f7bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzw1xFU8xEy5ox/lw8hpgzUvYtJxK09ngzxXfPpNihUKb4U+fE1f/0mA2/mOpYEdSDuF72XiBJPlDssaed/VJD6pjxvXpblhFpGuFMZapxltuzZ06A9baN7GUVwXMaqRwNFkCJutY3hPYL7bJLOF4PislIZVkbYtLk+Zn5LpMKzaoJ8wfjJIijFD3qG96joP7sBTSySFpjUqVgY3g3GX8LpTQTg9CZxpCvkEpgjZuDRqywV75g47rKYRnT3WZYjQN0Gp+9UxMbdW+zQSsWS3PGTXZW+Dlv7nKknulrCbjMzfEn1nPQ/6jfHwk7XtGPOPm2AQGY+YKr7kvjcHTwhfSuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0dd58fd7-4aea-44d3-bd48-86c19a33d259","name":"release-0dd58fd7-4aea-44d3-bd48-86c19a33d259","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5527e0ad-440f-4685-9f04-2e80147344e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182531417072465024799065031921103447981821553311615463313713497843762275063915451755104601771389430445345501477330731851990629378747691503628941955407688940874358849943335665377856426455609131164857599920491365100663729028566349511635461796020105405644171566686711","osProfile":{"computerName":"jianyunt2"},"vmId":"c23bf0f8-c976-4594-a0da-35e6e11d0bf4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs0FbJY/45YVDnQfK+WMRJ/ahwR0m0Vx1S3ZYrhZB14jy0+Xn700KudP2/0niCPuWszLPF74ASsIUxncRhkksF/dpwb7jTeiJo/02ilJqvuZBAAh8E0bpnEvSvChXA7AhKJNpZXSdoam+oOwsEEpBm0goJcwSg3F9dy4E0c8NvOVfv4Mq3TjDnhenX16WpfetPU/hA3rxQSzOkZGgd4AHKhj3lHObUTmkBZue3FCqepAJTawUy6ZN3IQckNQfan70YpROjJc7q93vB4X12pd/M5hpj4mgrtDNF5HReBA4K8PTu7OGcj2iArwOsemzPWUJOzfMmH4+u4jLvemF62oNEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-24175ae9-f574-4ed4-857d-cc9339a6cd11","name":"release-24175ae9-f574-4ed4-857d-cc9339a6cd11","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e2ffddf3-dec4-44a7-9814-8484d6839dd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187685988785825034697459031176139925399972433499666332266482488791377934114497011786586379432656934422950518915756792864047697125849276772125161048645480681847623936486347122816230188099917313239656313935352829729748645479807506184381669950218897501030620819716364156655885223","osProfile":{"computerName":"jianyunt2"},"vmId":"1342b6f4-a6ab-463f-a82c-2922a5bd3734","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsQyNFUqKo33+RxtWIQrdNAg77KQjOU9XFZMfuSNZNEVMCKRaP2UwJp18jaxT4iVX4z+DwSBKwXPyH8X3IvzW5T4z/vWJ1VLqlRVPv0MEzA9QG+mi7zs0eb/D++5OiEoJNUSAwCsJc5OQxgUt0cs1o4NbSupYvGePEvdh8VXe/dsjfSF1P1egR9M7U/tdb1fGwGMdAbAQdKuvZkmGTS+Yd1+XrZsRcGerqX3Iv7T1IBNudvsiM4azPcr9IxlnFykdssrcF8tj9G9IHtWzzgzAEgWCS57h4Kyjz7rhWOqCo5+dks42OfFo2QWphYNYlxL/QdMRcdoi0EC6GmWppH9KGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1e929214-5238-4896-8751-6bb6c4fac171","name":"release-1e929214-5238-4896-8751-6bb6c4fac171","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f97a4ccc-52ce-47f5-aa72-46021f092dcc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187144638020004558347950615677626270192098577631491307399836897133752848053275890028579699869355724597122935883218561176418636798374419054185923765740929178031181936296018904181159717864995699009604823041089900688173148637898372007806971406023579652502705880616618539556","osProfile":{"computerName":"jianyunt2"},"vmId":"0f0846e9-3221-4567-9bc5-848fc7b72502","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA79F5dZch+UiG4U1RZSXEZD8L6CY6vZlBNm6LNZ9uRP0JtsufgFuMwt4IhGgXwvuStSlCNL00288xF6LZvtWNW0OyxElaSDheTsj2hIjaggsnLsGBHkdA6/wkPyxoSrndhtuRvxycusdl4UpTAlr9UD05tkzMGgp9S/bH9XiZZiMsC1saUSfPVSjFlvfsg4o6QllIZxMcBYTmWEJXbC2NntVyr8BdVN1oKNZvmNyZx8ubuDzPzQgZgDBHkTrmjkW7hsshFdddgux0cuMI+B76yurmQzs9hJO4sWERK8yjR34IVRrdurBeohe+GVxy8NmczCmV9MMJ+nAZgqwbkO8dfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e2e46025-2528-4172-af5e-70fd678456c7","name":"release-e2e46025-2528-4172-af5e-70fd678456c7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"518b1ca9-fdde-4a57-b5d9-4b1c9cc2b8d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845530669887428247521716151115378014036862614629276818111812221817893808209114566944481969026526934940208340487728939278569165018571856569043396318663633237688597285522568436054908762773649501893534757352562750452194934687373063481429421595582517748124732086681549","osProfile":{"computerName":"jianyunt2"},"vmId":"50b0d03f-8059-4851-85f0-dae81c8512b7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuO763C1KWFr5Sk8k9N5T7WBMQ7URsmHlf+sHDCUC0sFudrhuf1Y6iRxLnkq2Au5HCmDFQEQ99JuwmMoThxckNS0X/ud0Ph3OeLZTglYeBM6uuBUta6MxvY1bi0Et6dSnlqz8ntBXB30Ffval3HYzIxKQ+l8ySP84X5SS//ZU0EDCDW72hUlopnG4AvrxGJuohcLzn224vvproExU6CFQtoGRhKykfKDK806653OnhZtzZgSzF1Omfgrd6YdEJ8NBsE9mE2tWiNikKHWSemj04n0LHuX7ZQBzP44TTma+zlquskO3eHqFfULOQ0b8Rc41ZtxkxDgImsyGBf8Hy6E6awIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3c7aeaf7-4163-4b87-999d-97bc950349c2","name":"release-3c7aeaf7-4163-4b87-999d-97bc950349c2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d9dd3159-15f4-4e93-bdb3-eaa343865f65","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189247821662422627776697195755697967542062225107400693847121781231321970144887199444468812806287934893978883885155426265859258320619640962314487327965226326629403874559273479119623704402178129453652562547785222271165233225950985263926769207435393660225263573934650780241951722","osProfile":{"computerName":"jianyunt2"},"vmId":"9249ea76-3e82-4931-bb31-b966bf56b5fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyjV1LOm0U9XNjSF358tqyjmWMSWZcWdAUqVklAzdr2V34nLhj/dA1oHfXzj8wyUpSq6+psQQlsBMCP/QtuV1sCZqyZazwfvV3H3YTB0bpIw7SDv+DaiHehQ/w7c5xxYosK39KMX+OWP0jN7gTzQYgS81Kzmku+04x4mfMJkvQeNBgetszynV0FaFbHoZ8aBMEtBJVRY45pwwTW55EYgB18nOHq0crpPGizneII21pw8BhKZ8nUYpVlL3UNXPDjf6P0a3H3xq8rtYJ9V1jJWdMEAYyvoYkXjaU8NVrXpMp9LWKh8NgIoD48i8RsZAZ9KlXb9vSJkiOmmOPFCKTkxCZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7ddf8ce6-ce48-4aec-af30-7d8ba793423e","name":"release-7ddf8ce6-ce48-4aec-af30-7d8ba793423e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"db7d07e5-b223-483e-9d03-473d927a0980","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41848138860618542647263405593328642713976699088811197245465616266853215486811462336476126256261222295661113122487964343604358813674765156655283958209526072167203815736123519598017313464223116185755605259185718003618064725753","osProfile":{"computerName":"jianyunt2"},"vmId":"1b3b6de1-47c3-469e-8783-759069d3b8dd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuGdy6tZwqsdl4wKWT9jVXnTV32Qc17PtswfTEu0dTD9Z+oFP0ic+bw352iLnDWsQNHSls8DcIrBtOi663Jy+y7EGSuoZggTScKc5suYdd13P8O9Yr8LKZFSPd77494EFVwnFCe77EwaAR78acf8KuBwmibyRGvDmSz/UDoxDhIJWhg4SaSoYqFqhuZsQ/Tehk3Osbv8RhOWVX71nIv+TBb3PoBKKe6VzuofM6rg6kXojakkpFJqvpjzmZz7RDUqPWLlnpOZUETI8TXRMgf0M9KEUrMm0inQfOX20WQ7JIYGjq26eNNTSAeejDqiVhMWbzME4AJslH9QLpQwI5NXovQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-100cda2d-7cad-4608-b987-3b13635a2113","name":"release-100cda2d-7cad-4608-b987-3b13635a2113","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7437c96d-7ad7-4ffe-8695-b0fb143b4e49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189405348748134020126785166405912666891611561820429345943731984428773046805643489925505998298075563840180377058626361318242544384274918850776971983355553636212658406105000928914377453513485976520249873721725128372503640343035207724891847159283609426510289108584","osProfile":{"computerName":"jianyunt2"},"vmId":"f9a4cd7e-70df-4ac6-bcb7-94106c50600b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv1rFv9JTp52uC0ucbkVR8x1J2CUGeCyC6UAMpLFtDPuwMjgqxcJ4dOCmtev5js7xkZcZbgmZrxkn+MP82yVja/i8u3QpfSteuRph5LJXeYFH13u2t8DIBQo+4ffTXCTTbYygnHj6Yz1do3rvIeQ/fL9AvtwHxyZNjmvCiN4s6U1+43GYC49wKZGNcpTEzL5I68nivewa+IUQw2i/vEAzFv0/yCVQzvJW/T9oyv0AUGy1k3M/0JM1vymFa+3z9Y3ukJjkRfVjqUaefZRDQ27dckS+8+XiWoLQYtcBUqToEfzTEZe1+IZ6oV4naw4cPeCcs7a2q/76/epMcl57EB5MMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-56d20555-f460-4dfb-aa0c-a3077ea71b07","name":"release-56d20555-f460-4dfb-aa0c-a3077ea71b07","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0ce26fc0-afb5-4751-be5e-db28449403c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41853238318528670402930305762604983975631704838107139028761878939885476793135874422960771682253409173522624591647361345145856744165344481861841691188328158529453205606369901051341411196026293685049296715737365641150431987268592032295273822287674729751764727515995","osProfile":{"computerName":"jianyunt2"},"vmId":"f2c8972c-4614-4dc4-afdd-cf65e70cac13","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0ca/odpdh1raRC4kALXGA2tmQfMkq4VqZmknHOfs6LJzXB2S37gmKIHcQqV8f5tKb8kl/mS5cVPJnNicGiegAo56PNMsCkapUH4MUmejwlm2EuhOr4mN/q2DGiiJ6DIjK+mixkqIf2Hn1NgfGp/2SQkvXDCFY4jJdK+cCPUr/gc18/sAw2F2cuYNGauIXehSTMJ4J5GF1OmXYzOGPcDLKd2eXsXCn/doi3osRKJZe+UvBE5mFy5nabxuyCLKI9X+k30G5TnRblTqz21xq1xs/G6Q/KyrmTGvQ+3Aa5DhLNxO07t1VrlfztKvv4UC5J1eag729B/d7ThyG9jUy/p15QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6c43ef86-90ff-4699-b2da-b25f2b2d0777","name":"release-6c43ef86-90ff-4699-b2da-b25f2b2d0777","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bdfad530-42c8-4b9e-941f-8d01a5f3af0e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418135716808955380121113934809297417820261975962798163378692590375218838438145729540932962806440548238889897762967104525223594782236699031315562809358977627584110582889600381387742539536581293781665717791294033186931605965759140979487623406358420297891505062616785194017581453163573178477702476045282101339529738","osProfile":{"computerName":"jianyunt2"},"vmId":"52d4dbdd-376d-484e-9741-bc9377f1b045","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyw1pV8aJyN1OU928cuXIAz7gJ4oYTNL3b72ay53fZ1081IRz51GWU90LnI+MVr7JXk7nIBWcwOBV8DDseuzoNkv46XhIaa8YPRxbDGwFn+ySnKqGbghCkRddC87Q4AqUOzq0Xq4fqGOpGdtak/+pOrtgUfQEKfSb7KDGbZfq+BrAg3s1idN29TifKAZLHMLKRv8iCFigEmJ7ZXg4OMarT/jqP1Ab2ITQ9t9FrZVcFY0mo0ZLAqNez1xv1DyDDcBXf6veE90JssNmZSBcXhzMh2X/1c+ak75BOdHRyvmuHaDxnjkgWsvfdW5mRNAh0LnDFzuOrhqxOaTRNpZcxAnDGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-08940d4e-777c-43d3-a8f0-cdcf1624d36f","name":"release-08940d4e-777c-43d3-a8f0-cdcf1624d36f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"61b52eeb-02a7-48b4-b32f-8ffa5aa85b84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189646137073824143113773309193730028949359995104242569806353106687584980747937169872267995449136492195597598293322447965137817751796734419994001488960698399397778432898132983743655341632342223334404348027182890251344477266723373699775885874846519997376662015205527475410932937793095687780346","osProfile":{"computerName":"jianyunt2"},"vmId":"b8a25a83-aacc-460c-976c-d899e46c81bd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2odfr/zuYn0kavjcUVsIU9a6mouvVx1s5WqMXLTgo+a5p9airD930JJT+WCXdF38FuVTvvOzQ0rqxxVmwLOAhk11LPKMPD1m2h1kNM/LFa8Y7GAQyosOt0MZ7nr1Nbpx+4wuzY3viZp7W7E3kMMQLJu2gcYcsdlYFTDkbmD1d9G/lTMTgaLkalND5V6hioHA+BhuamqAB3YH4wGQAVKiFLtgM8SHhX7uOGfGCPEuZ7hovEmp+aIHIfcDY76EvoG8Pr2qCj9m5+vSDT4ivcj3g39cmsfXVGOBQaLS2Msns5YCrCMq5cAuzSgkCOpTShLGkIg4lLZohMFEFh0NO7LPNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3e8f11eb-e866-4782-ab96-0c007f46c32f","name":"release-3e8f11eb-e866-4782-ab96-0c007f46c32f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"77362c98-a52e-4322-902c-7ee340cf1ce4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418461460778139398788286631690836079206768030328601293587332450938882292787106716982104249161675465583722472219914140632545838560069739027683519684748140336548233286649721412535166108394647098283263291213165337791993452321646862747765258045711898792972237506700490881532761873811243439526364294881","osProfile":{"computerName":"jianyunt2"},"vmId":"10739940-0a65-4ec4-a72a-f372ba72b413","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Klo0K19aLIP2UkHgSYDZkv4dnaGEGUZUbsOpRbVLxrMrm78rOBNRSWdpQ3wh9ZLDImW+NxefUj7B7Y2QM0wthQkQv9cl4G5CMmTATF+LmDhZCasUCDBwVfBLRq1pWZz5gSvNTsNaqPtVV6r0DlMz6TBlPzDn/A7PY89wRBjk6+H7LMhNDjmKujgRLX30kD3xRVovHiSM82rbtJz9n+UQbUTmB+Bckz9mlpv8vbypVieM8b6XcEaTMEVHspQT2KiN+gM6Qa48eq9LdcZ9ely2WykAikDfHhft3Tbag1bc3wY9KIFuond3QgigzqouVgH5tjfiF/7GYuNI+zxCo1iZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a53fd7a0-a0f9-4ef5-8de8-79bd2c208af4","name":"release-a53fd7a0-a0f9-4ef5-8de8-79bd2c208af4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"07b7a218-4b6e-4515-a97d-d6c62ea1153d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418341614304873670521017858127721582785807691289607691239792155497430044976074539836318301313516174171637455502096221417898644171850116584518112798095442059458344876130524017356969132194088171649902874017274210144462752810819834804225661867700765450860402212213043227462231956023036448894978306","osProfile":{"computerName":"jianyunt2"},"vmId":"e69f805f-c6a5-406c-b869-9ecc881dc13c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvt3KN4uckHwiUsHop5oAa/RvwdxPKHgYgvS71HZt7fdcKk5S6yrHVTLgps9txR9NYx7yttJkSvw1XTC2uQG1xoovgFmKRtZizPR2a1NB73Y+3zKwF811tNh9sfIL4W3JrVx9Te0wUG+p1u1dOgiazGN88tTQ5rTNxexmLt/PpOR9iZawgtwSa9YEB0GIxm2y6k3KN5PmxqNuEzKK2IpkZsFuFg0wg3ExrF6vCO6rFajk5nGpPW01H/wXOKgVs+9H33ZQuireHSVuSX8B0hXzsI75Qz8X/86P/crTxOmfwyTPRru2GXC2hQoS1e3paBIgbB5SESlWp20ISQwfjSFQ8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-11f63e78-8b0f-4548-8d41-2ff013078894","name":"release-11f63e78-8b0f-4548-8d41-2ff013078894","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"53ba8420-2339-444c-9f02-ed6fb56b9111","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418753095921013482498533522876756196355232560037213776937687596423242835519203223305200319384493634125173599543662193345608130745074100786160912746665831659635784995922432759255317566061500319171371529445315824837011125881995542758636431325049899240017254483567869584479264036037378","osProfile":{"computerName":"jianyunt2"},"vmId":"7cfb27fb-b023-4d97-88ad-0997ed554114","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3413GgOdcE3TmOCd+Go+BWsmPNze2XWmhd4fBUFtvvvo0z580zfUSiBntF5AqdiTOdpCHCYrpW6XkbE8MfXKGM4S4umKuWhcNEPI3wHpi7NvMRAIFOW/PzUs6+ksFmdkwSRpR77rwN2hpESlsVa57iN/WKQklM+0bObA9ZNu0H5NfHQjTZuyYY6vsMyAKb9GfykZ7l/VMRAG2vU0RhSw+dP3X2yCRdzHTfCUuHdR0jgNWg+Dej+oUF3VPkiQz6BYpEwMaqfkhByVOFhxZbtaucK1o8m8SdI7irbVUX1ui9WiNUpib3WC8jWBur6eL0/OOjgTsoqgRuMrY+60m+fBdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dd2705c2-29ee-4061-a9f9-82b6daaa525b","name":"release-dd2705c2-29ee-4061-a9f9-82b6daaa525b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f96837e8-1230-45fb-b73b-d880d1cc0efb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182971314320683777923287885971578776138994859268902878586608233536816473196297860632235098259791117314338086266070191142284369944870355602517059889499811203584304953373636297716715408163857662921328298473337372452490513051342434542116370669027558930398467149957981365543511866639544227479285","osProfile":{"computerName":"jianyunt2"},"vmId":"bed3f612-5795-40af-9fa1-837fcf82f0ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0FnV7uF193+3iNkw5aaHfoYtf4agLpHFSbKEGBoIFrk7LTjMsLfBMmmYVvJrgzOHW8kYmcOfrjaa6cUxXEAP6To6Nbe0yhQuD4fbvMnPNxOZk23GtFjFdOeg2jq1b2ZMJtHCRlTfzGB6/N7UTtc00u94KT3zSXVrQdjjcvnx8Xh+YO/Up+LcAwcXk6E9415zPzurYhgSQSofjQeCjpc5IcXBrfjRxUg5g6bYCgkS9iLpQJ8rc/kNTJ9nrI+PktNy5RTWiw4SXtw9kdlZjToPc+KugFjAuclHdfjepfmHAS8Zq0yUheJ0ppMLs71eZXXhsjlBSvGPIeviAACH5LM9QQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-127c5c5c-698f-4709-9479-4579ecdd0e80","name":"release-127c5c5c-698f-4709-9479-4579ecdd0e80","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"55c85109-b823-419d-b96b-f353c1578343","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183434942567046914655112989902808187894796951048262233164556150561792110158899835899930994831448370279464769149152753399843937289292110859799429137374359522124330841315825751447383415848373139838947414263669312532888831618269951858198780857134026717127851112865117502310991231777911095919","osProfile":{"computerName":"jianyunt2"},"vmId":"b060e762-876f-4b1a-93c0-2c1778118e96","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtuQbqLwRMWF20gcda1bIgWFj+5Nd3cmOnrV1d2OYpvt4IIKSOUlCAdjXQKhFWpEF/rtu+psR3MOHRGO6tpU46BdkCABxDmpivL1RtKnTYZhFfaeMDsF3CR81G7LU5TZdM79spY2+CZSwTPxITY2nwO8uPb8MTBfYbidlNA9p7FGycpOdWlr35t0gdGXd3ktmsac5QxFBs4sSoBSoBtiZoNXgh8+fUPm3p8EYl5EvJ6VFE29lieBU4n4V3AYlUZsENLPYG0D65ujl0829ESH4sESJ9VWwQDf4PSBEBM3CUJ+tF/uZKj0WFyiaBUyy3RwmcU+c72RRQmZCWrNH7m4cRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4584ffcf-d0cb-43da-b39c-1f6cc267d714","name":"release-4584ffcf-d0cb-43da-b39c-1f6cc267d714","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"15c740d0-a406-4223-b25b-057a9bea5152","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873919418241717806573829769847969698372541451971126199197550655839316452875336681825996724360233456323747568017614359968807926029642958942343198914748531696305556749375176221838770952309127387675567597264039337309835522555846925856841295783484279663754716392080419961940072859077119593317706932169659302600971346195612","osProfile":{"computerName":"jianyunt2"},"vmId":"04620092-d5b9-46d8-82a8-3fba81b7b60c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1D4rCrx/70ZkWdF2u75OnHcdzMlrjlHVxmIHysjOuV71PmWn7yCjcHju3cwpR7z53p2d2Xjfi28lr3kKV7pAwSV5mYIFKEhsmjJbNi75igHAEA/HIgesGTR5o15rAfSW2aDo3RkDx7K4SSzuwugeQuj6662wCKygBRMMDWkuhj4LgHGIkfOajpnQxlLLx3SjfVpQtsUmo+SoRhrlTh/ovnC4+jur/v99CYo9pdDC14faQ1ipbjD6824tdLgCV896ZwZbMc9EG/uY5mUjTNPeSlXN38Lb+tSVLwLJZ7gJlQlh1fGpCaogQeulhb/EKftpW6sF4OwbZc1H4hPXgnHuaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3a13b7f1-fb0b-43c3-8c91-5aba7103313f","name":"release-3a13b7f1-fb0b-43c3-8c91-5aba7103313f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"69661b23-4ddd-4a19-8b39-6191feb42ea8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418926693497354414135029145803174128593154141698484431191867058627866355205157438188483201850283634015428734842982523183142741836621935284733938607129292735927538519016081117685375293837436945741957776741683132295925146553969945015032948195587254658875124425140720761893227028725931249611783924975443435","osProfile":{"computerName":"jianyunt2"},"vmId":"d107e412-6714-47fd-9c88-5c35755a4904","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzdM30gnpJe8AeRUCU5oG4tOBAHL0CNjWSqDjsz50nfqwnhbNyojtgixy9JcbY6mjGbZjAbuTAt2RkmejuNqUiEEReXx5fcPkU7bXCi0XWaarZXYgOaouuOKrFCyGaUFMe/p2SUm0IUHAOOMkDqpPq+lui5u71O7/QJFPjvUR3DH4b2Vy8yIfYgwd6XgFjgHMuP680uhsjGitzMd06HfC+sJW4ToI+kOozHnKZrCgI608ws2dMTmv7rwjp6yrLuOejk9tUZi8RPkvgpzmmhvgwdwcb234x8lwkILuv3EPSfVyUC+T5cwOLnssTbnb/6BjuGTQANJLBwgRyOpAA0ByIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6c050ea7-d864-4e83-8e42-3c7fb3723630","name":"release-6c050ea7-d864-4e83-8e42-3c7fb3723630","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2ce41d30-382c-4daf-baf8-dab524e0c6aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418941148498913621687206274916980823588445519542554492296486134780749341993668521387062345132073145850383730868331702796338761268729437975571314351609618785721828280704310559962605582792906712689091685034495178462823614578558047630311325229965784488171641149039627856898498856996384648961241631","osProfile":{"computerName":"jianyunt2"},"vmId":"c1180509-f04b-4304-b28d-57f11f96e957","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0uy61joPAf+iovHMljz38zMg6nLgDDb5F3R1gUeirafym3C3JWsOOH4h/G58g/FVIpbi8rJUQbyZvRLrj3vSVpiBgr7QK1AUuKMP7HhqzhAw8NKT22vXm93249SiMvYhsPKXr9GJgFVSjy+ozjPMJg3Sy5qsbqm8rzqEfTsrBKa8vBbZacjGzY676dVPt+A0eNXd+vW1pEBd9+spzDJbR7mhoJDhvRc5Op/h191rl3texdNPVfzI5gs4Su1kuwquKAqpK1Mlk1tjb5TCiJL5v0SaV/13QAMY501mn6brBWEZL80+vuDQshaVIc82+BrXnfgFkHhJCcUjAnv45MCdGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9e510121-f43f-446e-80c3-413ea49f5f15","name":"release-9e510121-f43f-446e-80c3-413ea49f5f15","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"193ad009-7428-498d-b568-60c5600704d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41823072446425622539834231840932224832219838948340481444680387194563117899747032769463750033973469076841570419332182150231172886642294392668814983760390461848592341232599617045475671684121195505786978658090250047488015330906152118169449322499848782455355843959079334433504707968515284368223022314330398976340","osProfile":{"computerName":"jianyunt2"},"vmId":"a04d0070-f7d1-43f6-bfe9-21a4f2c5c029","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqhwEEErQqqR/WkLEyfj7vX4QexYVoAd7mzXS15sj30CXtrnQW493juh0r/Si3eCIuyNN0EH/0aE8B/hJW8sM2xFO7DkMwuKIFee0SUvJ/JOL3CPN4zAZqMiK+n8kZMEdHmw9vkgvPHWIlB1jSYLqyOvNqadGyHnc68PC8ChYhq41lMymYAvWCaAdj09sFDYlOxJEDI15TQE3QfPV+Xwlfi576cx7+H+RiaAb3VuzXTyjmVt4S5j1ur3Dn4l1NQVFXBeZC6++PHUcluPe1zFKIm1Dndp35f8TvEWkgxpH0h08ugX97rlMtCEfqx52I1MMkv0jplVtoKhBxucp9rerwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cbc167f3-e977-4223-9314-509c8a91c214","name":"release-cbc167f3-e977-4223-9314-509c8a91c214","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a94f4e40-52ba-4ff2-b337-a6b4c0f4efa0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186137473492198340964301862444921814633978175071453144603145372463175600294249415647663124225538347564270031319237126512589404604778023134457495595399682656384417378112758202316316085644323394273610980532712455568501129266149494748409149979119488970","osProfile":{"computerName":"jianyunt2"},"vmId":"21021b5f-3b1d-4ca1-b185-90b6660cf2f0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwOWW1Nm6MUoF5ApFA6h/82HZUNxsORqmCRoS14/GrEOOcFBpz2GsG2DBF1V3Fy8XDPNO7UQs8i9RMXebMhqTG4h9ZPvDZ5/6Cy/4YSDAY9yKZFSdcYDEAhKg5+GucN8wyrjiB6m1VfX8lKRPyalvZMSE/rh+LxROX6i5VAmN9Z1LAvD0xkMnjgYG+K1KEZ5ugoiA+tnmrpCWcE50gywQH5TbcBi39++KdY31szI7CttygtQsXeqBsK6CrgW677osWA3RSa9lwy1AHGilmv7EG31yDWk4PuUcryCjRX/7/dabzq5fyIWYH3RMv+mGkIwnCU+nJkCmaU9XCjz5UZboQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-36c2c267-a44e-4c6a-96ad-f31fafd0f01c","name":"release-36c2c267-a44e-4c6a-96ad-f31fafd0f01c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1c622017-f2a5-4872-b07a-9d0eb4fe3773","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41849026569766136765732609974578515214383522966940854347027142840608730404941524830272615824276953099967731827411291115313942429745325078086988593746286833841475783073403037707934519117155852147654493511908722163259504409430662556147","osProfile":{"computerName":"jianyunt2"},"vmId":"cbc64e33-b070-4620-9599-989ebc6492b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzn0PhXQXwdkMlNjYSCWj7EBFHmlW3XkMUVpqbe5/44Ew2l+wLZLwNqzja20P3peKfWbQZi6ZvE+6WjpBFQ6plW1L5wjPAsktGEFRqKZdIILhoILXHuhL3GH3Yv0OtE2rr1KSaFsb8GmnZUNk181htz3tBmyTkvo7JRVeok/+wtdGDNPVS7VViUbXus97621iNHP3u9nfmUfK+qTVpRYNNIXwwb25lQGZc7dxYIQL/j1m3c7i+h7F+CmvFuzB7fRVh04QdhiFc9e68CQW9YkmCXGB69WYa+C9JWlA1c6drhBhQdNVi05qg9hbQ0RVVkl0f4F+Hfk0i/Czy5ADkkJWZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f7b34bb9-212d-4f1d-9e0c-68eadccd69e2","name":"release-f7b34bb9-212d-4f1d-9e0c-68eadccd69e2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e1e508b7-ec33-410c-8dd1-db9877d42b26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418701737253954935952930448465713873948915993887641880887826365419205069804748641753823163992160110936011454429238558267430203619676506985751285931383518595108099421496712750834828962671524856274457492589721737737983339892159804545548686176124838271249939413172130745425006","osProfile":{"computerName":"jianyunt2"},"vmId":"b5a87ee5-3419-4e92-a93a-5abaeef9924e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuKKg2aT4vorodWr7ErjqPW3WTO3m7Ow+CTBAvbOK3Qc4I5AmfpEYRnfF0R9XdIj1B6PblYFzyC57p6i0ytFayssTgoOt6UOz0Y7fTjlZgBydzPK6rff9vuyeEhoB4Ze0mdshKmn4Ykw5TrA2Zac6Za53ZOst2GWLuhUZjNLOO0KRrdNoMkkUtkFVEroBj79z1FJeeioZ1x65QoI8gILJ3teXUxaCwlHA65pqQkmOyIDx2F16//dB42sO8l7diC3bXGh3BV4Ppv4HA8tqlIxuMdD3LaYjtms/JqXFqxmCqLiY5vnQxV85nQzDWVYo5h6kS1PCnV0eG7cZpq6WwI/IaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a064fa9d-20fd-4238-8a63-a964584cc108","name":"release-a064fa9d-20fd-4238-8a63-a964584cc108","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"70530020-e51a-4d2d-b4cf-4e2e9b847eaf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187255840318249331950126052104144498630851462580099144584897280256739199421896638890947675807458739517971333438091532393994613742116821943005833260613696170688526883297354292234794917585808056835761709960122899861729037145183332657791598221553","osProfile":{"computerName":"jianyunt2"},"vmId":"4fcf4f4b-8f6a-469a-9ac8-aa5e53c87757","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt9iw/jMaFiM5Xivm3dhBzbMyTrZnQbdNv1CIHl/xSitlaVY6sLOdoqsQuEPX2xt3ZIP/ZLwd9zISIBKNfz5UfrGnDojuCsT0ACfjVbXVz3MwmR76dPnqcJC+1aZl14RzI/EjDsqSpUantgnYfPceLmN/4LcAnq3JlpyR1tq2PFk7hVw8fpUNfBcf8yhXDA3slPeLj2+KxFWnbG1Hxofe57jUHFtEZjNLh2kqS0EXoM3Xwz8PSznsuMJ4VEfIoKc4euClDxt9WQZrQ9lJHcuO98Av0H6vhz28onvFO/G9uwDuPdz+1UPiD+SCFDf4r3WYt1Vpv+epLDu6r7d8MxqjTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-93d403a0-def8-4472-91a9-d5579312c6de","name":"release-93d403a0-def8-4472-91a9-d5579312c6de","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4a981519-e0d2-43db-85cc-793acb5d63cc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188835326587476155243672047339302430764909819491218948751144165158637725396736002751804626923759888096878791222938052185648348512645241541220343616625087091953732179145606358434488980237435873574288536198784562805608915427856965189486124472615051252376993870004266757789351148683463477982520414975497","osProfile":{"computerName":"jianyunt2"},"vmId":"39f19acc-de36-43f8-8cd4-9db3853e3615","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsBbS9tnOUeLESK/YQRl0UuaopwvkR82ikRNVeWOR+wsfJpdAGSETAG7jZDj/W+PADSXKusrulFiHX8uxCHuYJ85EjiGzOD4xLofYf5Hsmj/bpwm93iDX3kTzoc2s6PurcDEYq/iyrvHIwWOf+Yn6cU1NfrSerWjxAdP+OaSBW7rOP7a6CHFneMsDCGD4N7vOt9y5HIfZwwppr1vJloc0ZTXLobxu/W4dKBBFuWuv69AWeHwjCWIi1+NAZcNBs49gQxO8oZgCXm3x6bjbUQXRGu0szP0LiAheM5Zithj06QM+7yBL+EE3VPxMmpyHRXLD90tZFIu/YjoX6vhOkmTnSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-64717c2f-3ac5-4725-9ff7-18cbefc42fa5","name":"release-64717c2f-3ac5-4725-9ff7-18cbefc42fa5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3ad05e4f-7e8b-4ff0-ba1b-a99d2e143e71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41891922935277344969944527986446379102637746345517278109136193620376464478302276683012257655332356817977846797979822610773616245282958819473513884572309246514392118340142623662297786983843161839673545629623662943482195756101959370684876745197348788843","osProfile":{"computerName":"jianyunt2"},"vmId":"6dfb713f-5b19-4351-b340-c78e86a0905e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxPDAUyZk7/uNPw5HCfrojNKsSDdXvCHg28K9bDFivkBUD5EYELlU4BEd8vj8f/NMUFdJiIJU/KIeUtlpMV1HmUll4QWrMRngDvuGa6ficGORh/R5k2jxHpmYl8bqhE3FZkUcCEq9yidZtRHNTcIrXiGwqZjHJ8QaJxyIvotuv8U1JcMxa6wcW/FF4OgWHGvEv3kcRhMrekGWm26N2w07GZWzhQfLuGKwwWeHqIvfz9AdCntT7f+1i7TaGhepBizX4OrHP1BraJVoB9yGxPXrFz+C9+QQjHfxxBahekLi8RD120KxK+2X8xMi1tMf+E4FLvqynHQ1Ag8jS2wcIj1xEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cc9bb52a-8784-426e-a401-999a1acec5e3","name":"release-cc9bb52a-8784-426e-a401-999a1acec5e3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"68da6a8b-dc00-4b2d-b465-509679cfa45c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418853831346240555389197409667878128134545808489911323542076275732795337099803235867829534743148795789960088560862891658779983371723669538435150350756527107023472226906601455562851106529298519707367695578141769929267778818831524769131412819926419535578","osProfile":{"computerName":"jianyunt2"},"vmId":"68114bd3-0685-4f00-b182-70efa0eb5b1a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnbGlrR3yPeZ5TNSKPxkPDswtVov/TSF1uiGYB9sbADVggLLjunaPxPLjAH+pDCYV7j4yiw6CI/VkwFCOoT+5b04jfLmuHMnwii1aNN02xlE8Ek9eAmQkmB5wO5HUIm1kggvs5hhkPpIiMksKH49Vz/LmKcljkhWO2kOb7gtTg15hmS27U7xOhsEDzPEepUoZ85WtKzi+0AKwvyJcFA9zJ0MFiUB0D2ovtDxh//5Os9S8yvZU+e7uTUiBq2RJetaD6rN0e7bZNTBbrovF/faczDwuqwNgD1Pv2F7aFyfbp5SiNGw8iS0LJxshliJ3tvqfb+4DKoe780jM6tffGmP2EQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-12038ed3-e8c2-4cb2-9dfc-fbf93174917b","name":"release-12038ed3-e8c2-4cb2-9dfc-fbf93174917b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f78631b9-0f7e-4068-8c95-37f965aa97b0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189201104732523203815429141069902143074552158487015916400127508658299269682321132210049792652077074117917734647810094157586837627682148719408474941549188562219961878922441376538179043149406190342683118843240712791895408590724137124877517622277439244323","osProfile":{"computerName":"jianyunt2"},"vmId":"c6dc268e-31f8-46cf-9cbc-7f7e650a8ad0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8TlKNBBiaiqEHUZrMILJqipnfxJZ8WVVt68lHJRMoFABgaaxTMTTGB+vmBLsBxFNPEYZJKB+4e1akRtbUUI6oVPJi5i436KC2uw8D6amqmR9AUCwiZWdl1V7V3VbHlGfkmoVazzHbW7qdHHSpgjFnM5YvKc0tf4KuAY1651UdaZB832guIVyNqYPABmr6nQQN7BcRcnhpk5H9biG9p62ghFiJnewUxjPL82b6anzmDhnPQCHOoC810C64L4/VU4oe3YgiiXVnhHQCoTfTFErdVWxqEtQJd655AuDDnmtaANytOsdqUNgdz4tbr4erCq8jS027+Wee8/FEvo+5awpCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cce0c2db-0a59-4779-af70-999c935058eb","name":"release-cce0c2db-0a59-4779-af70-999c935058eb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e29050df-210d-479f-bb0a-7c13e8fa05ae","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418152099944890589153484095256457526278859055436711266943426758687879167861225264839592503815916484231186482080275192497137706349353111275728678214797858252858651998874199598752501354108269886812631982093701875527617057416480881974637675890118407615762139484018673611414257808502455575906415","osProfile":{"computerName":"jianyunt2"},"vmId":"264a3f13-4884-4940-8d62-4c3f642b92c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtxXshH4/xb2XJtmWs6EyMje13npVFW4T/8sc1k8TmB/ac2xzhSKwZ2ehp5CglxiCLu+K12UcLhzeTuQvbVtvrIqMEwGxeXSzWXQSKQ2JX3z6nF5ibLRC1Ouu+71EGI5rgB2nJ5Ui9IMw6EXxcRFGJ2iQb1FqgQVYlwvXHsqMyw7C3tpHEp0WfZxqRwrUCxYkcUof5vHZWZ9oSwtigAjJVLEv4s2H97S/U2UK3Lnu1hWPsTK92ai6j1wNUdECKfXXE+6b1TpzWAknqF09/8KSK09iQzVKYn3QxDmWP0OiHMp5gXNwgjsb5p7fID2uyLiogjytR9ueUWWU7kfxCarMqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cc7b5302-28bd-4696-8ff1-af811c335ef2","name":"release-cc7b5302-28bd-4696-8ff1-af811c335ef2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e4c42a8b-302e-4961-a0dd-e0b75b138a64","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418599253981306681565218923357161599141538981486466272864925980279577994922213868463052911854585571246165604920867825016651122289778996195657863848210175096250158128190068363539146185773178907513856729152728957002596952607151879171651541310811014888843720509725884562629484605591127561256195399906029436631289737","osProfile":{"computerName":"jianyunt2"},"vmId":"8606aa50-58c9-4e8b-b8be-b096adacfb5b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqZavrw+EHYUsDMk7mAAwXIB+64RHybp9GhgWKSJon2yzG1OQ4pVXMvdqZK2Y6XdOjX4LQ4QB5Zr/SfTafLquNMcMR5lwm0OJuZT7a4fDX7yJU8FcA6ij+f5rDyQM8cjEPT9LHkClQdmf8wV0P0VVABx2Rz/+HvIUpofmF6Ps55/jv+SAslN5PLl+RXi9G1wQ1f5bXsu+eym8FmM/D3+mJMa2fDNrtdRxDf5tRNXSVCnc/EdXet1RcxX42JOivQqq23y+Ews4HkhM1tl3fzB/iw8rUC79LYYxk8rQ7zxPbToOLLYD3U7DhYQv9HaBt6A3FXgmCyDqBsGR3no4JLqbVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9a9e5322-a33e-466b-b2f4-35554a104bb0","name":"release-9a9e5322-a33e-466b-b2f4-35554a104bb0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3bcfcd0f-5318-4a70-a264-ba27dea847dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41840049454600431248922509478149107779189565918087389177743917547428431353516978364113950677749384854271839427484574325435826525697679678369783562114602299936799271216370217398869763670852759258975374948489853438031525359861149654223915438865","osProfile":{"computerName":"jianyunt2"},"vmId":"aeb20804-feeb-45b2-8f23-218b72216386","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvgVUNus7fKZAE6uJ071lc5+RVrM93hHXOgXRuYqdCjxEa2otUungPr30trDOFREviHVUSy0pTCpUjx2JWjDgzXynHI+F2QYEE37hOhHO0J7IPA8MU6tL4FtEaDw+sw98DYtAm/zFEejveaQGfpNsiOTzqLrPHsOLinZKba/H4iWLG7YuzmC53L1qckHXgOygJwRz+3da4dYJEGcWCwYg+ml6R821Wm4Cm/A4bMk5d+3nqK0dNM0UiK0POu2UREN+RSUG+gxpaBCSdS467cpO25e4Mm3WZhtaEiMoPUlC8z75/Ue/YjwJ9gT4tY0Ec3HinuogLdCl2Lsjb3qVlM/HWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2e9b6612-9dff-4da5-ba22-7e4f714163d6","name":"release-2e9b6612-9dff-4da5-ba22-7e4f714163d6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4378063d-313f-4c7e-bbd9-c16c5011f0ec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41848104236212295792839708943767935557725375981824971032763174303261889732138726448802126494361264994705261930075416095190788563678817935697234159262598985901818535647505188730214609443677467076752489739226130547320261903109575316456791131667638771457","osProfile":{"computerName":"jianyunt2"},"vmId":"45d93f1e-fc4a-490c-9265-cfc080d9d1e3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq2MeoWi6pPFPul7Kc599cQLnJoVDnrGQGAmaxYrvBmmWl8Y6qkpPK6jPjzma+1QPIQvT9qD0irk1sXD+aDuyFd02rFVdV8lHgVOY15gem0SAG0OJo1kqKuDAS0jhERtKc//o6jCkxH1Gb31fCi71ealh7a3JsA/hqQH9iz4artAXfDviWN6OgeqYIfi88lW2jqfsDNJiJHAK+4acFeOyUrfezEDDYjVM462BQf/fqIgkhu4uzNOSXWNXSW9Am20jhcY5vhpRMQO+/rotvjlgpoHUq554+eJJAZsw6qmITI7Oaoxrmnv67TXxipUa3hLU+C5g2VuoqbYGKHn6QRs31QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bbec7ca5-71a0-4ad0-9bfd-874a1e75866b","name":"release-bbec7ca5-71a0-4ad0-9bfd-874a1e75866b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cde6d10c-bdfe-4194-a9db-ae29b948f9bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41853929720781318045272905627659771188341226181658453164331963097969172286822689605885341824184424298203426867621573207601820245632249190248147327411278003810933477548667862032425384955968079006876292175738681367199116530372026178912916176247112889670948423812672331619914450997755594","osProfile":{"computerName":"jianyunt2"},"vmId":"b05faaaa-9ad0-457b-abea-231277888930","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuhrX4I6O9KNKz9+bE907NfwZX11eU0faSk3WQpB9RnTz4rqJE9JLNlB1UEIl+WwLFkn6TwTqKsgAGTBKW3mO3gPgCDfm12IeT9ZAkYmSmGLVj2xRexk+tDCgxU5zTJWtz6vzRn+x+7T9p9nfskjaqu2t+C3K3OC6Hs7ktsxIXZRCiXhMQzoaS5tnFJxn9xRp+X0o4HIScTCxxXGXepeHvUzgKoYZN8Y19AbzEucSSBR2pXYizJC+iqHAR4fJSIxi5ylemWG8xWZl3EzKOgV/pSiGc8zkd9swyvRFYofzQOOBoc7OO+dCx4tai9qb8FFEQ4Wk1dnBMT0zr2CnZjq80QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3c019e1d-41d1-43f8-83e1-437efddcfbcf","name":"release-3c019e1d-41d1-43f8-83e1-437efddcfbcf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4285af51-fb31-4a31-84a6-18334dd05940","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41840285723353862788997415955701157153951731884253978441356183889118906355864317091678245317026401713354122304476570989616016293495286761066630664388707756017695888870449993625703847719973916481880959849949225162285093355935688123409399245491467750917328841487216034033905069728739777392885549942136532931274057","osProfile":{"computerName":"jianyunt2"},"vmId":"12d07cff-e315-4f9c-97bb-f45fee8d4bf9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1I4rIDjZQhVJbGEnIYnCCouwEFow2NVhU7jXCSauVJ46JCLFaP0fUWf8O+Uc3S7WcLW1bq/2gN+pXdMGSJ7U8kRFPVmTyI5pBSBg/KvWKDm2bl4IQkhVl60oDT/GuAJJBqVL08vDDsTeFPXDTaM9M44e3wyfnqHaBBzyeSGH2zrRH2D9/ddTSBzDaLKKsxYEAu7sosDkWfaxZexx7pOP+aPoRrBvOuLK+syUzYbvxFO4Ys3jaj6IdjwXdRngWZCfqunrBLuE5QMKD5KxClx/rHhB6/1sbJltxDtwW4ga3y2Ae37R8wS/PF8+TJdA3cMEmx+W6ztWN++MV9no3k+30wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-99d6d812-27aa-467c-8700-7946904648ff","name":"release-99d6d812-27aa-467c-8700-7946904648ff","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"253d0ce8-bc34-462e-a9e0-e8bb7a3458f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418395653791102562082639489100688106099277965294136550835423705835883715291284741875516187762196096049671186446944890951202788911494673238543203741346506497742976185209043078656657283837497877155013710803067118652217458628852719395847258330629578901076","osProfile":{"computerName":"jianyunt2"},"vmId":"5a0e9ad7-bf42-4246-89ed-60889fc50ae7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxqOc00bwSC14EYyHhTC+lYfn4swQmKl3zCYvAOkWP1/J02KMpV7TLsqTOE2kyxGAxQWI8Tzlj43gSjyeU1O9Yl59Psc9kbpglApQnZUFFWL07V/KaS7IicygLpyN48ye/vOQUyqu4Sj+Wetd7P3ms0ssYL1Cp3XqbbjMec9f6fvgsi6aAgdZWq6ck1d51/u7KOVYcUEvfWV1UJi/XJAQ58AAErL8KWcN/2dFifjsb4Jbuh0qJOCzVLI/YGscKPY+dNv8nbjO8lqcbxaznzHWxnbR9EmsQYJOnUSu47Wj00Ffqq8zDahqAVh/GJOHckEnEyZsVudCL6OMcKiyzg8YtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2be909f4-563c-4a9d-861b-05be7d246732","name":"release-2be909f4-563c-4a9d-861b-05be7d246732","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d8d4a3a7-f406-470e-8251-8f03cbe5d272","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41846705793426265727870810912646439528517575996882207296755673307194104515972026993842483042071408677938284323983066465655153753001392241072941316707567796384640557833939784998269262930282612104120318303342336750563354454545154950986981541531532722388464826","osProfile":{"computerName":"jianyunt2"},"vmId":"63399a7e-2ebd-4dd2-b367-9e71b4d751c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5IzatTmrBCuiJIWjJ8YavcTflEp2sfHTS8SYaia7tyruzxqBgajYbo/0I6ddbAKN1YWM0tRS7uRiFEC4Zwtw33S1f/vDyshmqujQtjg2Ra8u4ainCnYZPyCivkb+ZEabSND34Tdy3xaMc1FEDHZFYHwf70j5voJTAfuh+pAACDsIwyVlwcIGrxtQWzMvKl8X3iSMwp40s3PPqGSO3So+W6mdUiV78SNjbedNBkXD4WbvuBBkK0xSpxiyqqDJLdWtcG/mKID2qxwlIUfZDLSeqrSeJwRslkIm1aJx8nYV3k6Uxn7EXeJQjoKufr+wJcWjB4a5CJUcQgP1j4LNYgH7swIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0cc08d36-ba6c-48e1-b9fd-8a7bcb4f3cb5","name":"release-0cc08d36-ba6c-48e1-b9fd-8a7bcb4f3cb5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"56ecbc9c-8325-4bd4-b6c3-47f270075caf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187072555460545679555535607839671579912191595123530454384138516197251568112980384801987898387246368629094073104985355481854874693790068544327386985328900671809514178293623466759919741761234712679907822183637871160826916263994607181868257812466828390","osProfile":{"computerName":"jianyunt2"},"vmId":"3826a2da-95d9-45d4-a1fe-a6dea5410594","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2+IxSYS5vAvskUSmrHMCBUv1iVdZeclr7hilOEcjaf6JjUoXb0uSzVxRXMRe0htkquZMObNT7SYaz/mFRBc234BUGGUJhf2AgasQI4qPLDZUdXKeChtZOEKpTGkRVYLNG4VrdlRiPAjDTDxahGmbP/exYbd38R69fIdDBn9CAaSTFB8fh4nGBbbLvsGssyraKa/09XuFq70vMIn7PUEryXp152IHZoqug9azzRs0wSZJXyMsDsp2cHhfE8t6NT9FSkuXc38dpVbgjIkmBvSo9lrI5R2mpvbCaom4F1kPKqFh/S6JxsF9B/f789XltjnW8GTxIfo88Zxqo2BzXWMjowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2672a70e-c54f-4b9f-9737-f0aae9d07d39","name":"release-2672a70e-c54f-4b9f-9737-f0aae9d07d39","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9589aa8b-725f-467a-894d-321dbf22f606","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184195849012517644421788198644614198348699257173174668171862557967836640253844213899628603378575520248218160158446687981849371849446585941864809989409480444615934076163697065742310957458346462204519086977593794861186816122957960688683182063632265937868890182817999032617178298018870027124196","osProfile":{"computerName":"jianyunt2"},"vmId":"c35eeaed-049a-4010-b774-791757b1a368","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqYqbn2bShGY1N2fEGPXfPwsloSjtr75NZDLThQAH/yW91O4MbRiOqJWNW8uZH2m3lAalT8+2GruEgY9sQYHZhSmJ9l5gsNhK8CHOMIEPzYOZF4IUtT/bX217moVLQ0c9I5TESv5GKs6ug45qW705K2RTBa58Eemx+/6+C89ykfFKvgbNjiaGhgn3okuIns9Kbm12B2mafVpcgV7Xyzs9o76AEcOIw+di9xn/Pxf/gydkuR3NsQSD6fA/sM8kR+8ceb/WaMjAfAfvANHQB9cZV/QYvfagtuExpVz9ruOsL5z/v45I1u2K7+45H8jw0dHd1xZz/0EXbgd2CAqWKav8XQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ba2cebf7-950c-4255-bf19-a0f5d34f200b","name":"release-ba2cebf7-950c-4255-bf19-a0f5d34f200b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"beffaabc-e38f-4215-99ea-5223c5134e52","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418885507280167721108397273651846605575117854476753056643341674860254329484583184708408612326493833329797679537995656085483639936325184139784061881228095668911214242227093365591916383508252357777837344481182901125829673039287525422781213495917848616118","osProfile":{"computerName":"jianyunt2"},"vmId":"9a26522f-c791-4b69-86f7-461bd91ad0e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoxcuntICu+HfKqvFZvqnZpdJrY3jrreiFkwiGUMvUfwdRYUFhbDEg9GYPpk753RAIDVHHBY8KNJeycBI5zoBFWsBbBHuvrKR7UuxJeenXsiy6jDpC7ZNOkybDcc5Pluo3MCg3om6y5AkeYU1rn/S0S0c1hSpgB4kFTW7MnRyMxPc6joGmdDR3ceUz1bTCD3Br7UQvnfeBpG0o7I/ejSCuvjqyWyW4sEkVyQJ48ohghIaDbsxAZFKm8ZU63PiwUHwRdLuwuabvRIWQnmOQ2lpRBERonbNQu9eewypUImQo3w5zI09tD6g75AHWPkcGq/9c+ISTWQOF4YpkKP5mqD2zQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d5141830-0d12-49c6-9170-615a70481978","name":"release-d5141830-0d12-49c6-9170-615a70481978","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4a7fcbee-a53d-425f-97dc-e7541756d599","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41878517121102973885770603797598414840162681341550944125935123994299422376714553230729751816618685194547949211991682654911364649749258757040898384296538444691935759956678311031296169760758729596491583872492933897184513799857535392457193388979140644976111350925416603095925422475617636873325406933923985233","osProfile":{"computerName":"jianyunt2"},"vmId":"ed7d879a-29f5-492a-a127-95461761dba5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmTSnZ7SYYVnng2dD/lNt/8/J05vfaZIoOlQyIs0Ug9GRfyUCd3SDavVcpxGx2LMsXfJNZG8YcccIWvQg21HeJvLJMzBNBzHx5fKsIwNJ+S6IMF+2x9Ac6GjqZEDHgXYxU1ej210h3roT/tgTiMhwa/X1hIej08/xhKghlj1ZJFKVoNb8Mn7d/QYopViFj0IZVN8w9xjRlPL7JS6zEHhNYAV+lKrWQ7Ohy7yBqqVVA7jgMAP9hoKc+nXu+ikfw/bP5QZQkGyo89XpJK67AHYpM8ZxSkHc5x5HyAPjpdz7SX8U7mNajbdE8H9uvPX0N9hF7QlHI77XzwtQqmKX7hyFjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d1e61c0d-5c49-4858-9cc0-8d02b0643b29","name":"release-d1e61c0d-5c49-4858-9cc0-8d02b0643b29","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3f5e6df3-264c-43d4-af70-004ac1161909","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185494164819163077825246983757993675732302738783734189017929363493346615412132551174774122337301219412790609153375689465950983162016357189463389214903157025501479868177804602361119128783281166944799597640892675962366921126569823629156907258822192854948","osProfile":{"computerName":"jianyunt2"},"vmId":"c4e6b97c-ff67-471f-b249-9647b1ded19c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwMg+dMtaeGXMR4eCV2S6x4bh9JDphbA+r3ElmWAkyCNDi0Yoy45ry+/gqf/6U2E1WUxBcomIUjJ8F4h+ZXwo8nDUWT3gRcvJ7YOWDMqyzRxNHa6wl+Ezu0XNWluKu6tbptofvMw3TIMkE9P/ZxQXho9vQnuj4XEd/PN4pr02Vp3A9nLpIgqZUHB+2khqe9LaON3zvrIt8KecmQNk4HMIKhIwtVkRnMTzTSQVxrOunw/hYiKQECcm/hl7esVONNm2ac0yneZIRMagYvG+9961+D6AnmlHwnTKICynmEncB3E7LQBROWX2AK+gJ5i4wjUKdLgPMu5/0U/fAqicmrAlGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-414fc3b3-9497-49c5-a353-a1cadd0cf339","name":"release-414fc3b3-9497-49c5-a353-a1cadd0cf339","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6d3b31f5-f7b7-472a-b046-200b5287b02f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418964115671692785225094632252807554563933603885202190390620714495432324168788164988352972813914591132402241616397256939009159221359454469819225517194521868130402790521281587688897580186738267869817866435193575410566460562636842893824635022348515093281671760656145749669368751686853379","osProfile":{"computerName":"jianyunt2"},"vmId":"6f181ad1-185d-4aa1-b1a6-b08400a01168","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwTZ6FGnQCzimXtnuxMgcxUYKk7bJLYNalxoiJv7Y9TwhH6AuFQv4xloMN1F3tdxRMy2rtFAn8qMg5j4Xm/JUgmtg5bktlPm0U/bXJrDwolZH07BMrOpQx/x6Uo9JqHAPDMkSNxMc0K4inRUskb5P0Dh/8P4xX+zOn04Ij53qIz1Efp34orwcq3PchhkXwpRpAOmL2cVUoVak1ogfMJ4mq6FKfHTUfWrsmvCqpIeCJNIBbsJQ7V08eG2vURYrb/8zcrNmYmk7jqpQRHYYCDciIG2fJboy1xK/4tHKLAo936iQL2Xe3DvBldVuJpgpnDr77uBTsc1BcE1RIOwRgLL1jwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f2114d8e-2a9b-46eb-9c9f-3eec88011a35","name":"release-f2114d8e-2a9b-46eb-9c9f-3eec88011a35","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a0b3f54c-a943-4b6e-8af6-dfdc8c8f5499","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418175548079099925657738679226814264272413072588473719520301879311209493139734196957591859206153935925454765320917167473703297129474196754887443441619706331960831475094418888791107386626687746505232585388415071196238087804920627455361577927677174","osProfile":{"computerName":"jianyunt2"},"vmId":"8a604145-7e3d-4369-92d5-c165402159d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1G9uPmCRs49izwo3SDBoEX8w6809f6Qks+GsgvQOLnthA+R+ek1E2IHTBEMTvnwAmUNb8SLwGecLJwVwjD5wQxq+wP3kG4NI9hqRmlv4nx1oyTSJHPjUVCJWaegAAXTdeUE+7UPc8e6BXCCTjDk15xKPv6M9EFMYT1Q84jEgAfkMqZvgohpnu1BBMrQDSuwlqCidUhY7UBtZpqQxk3F30CL5MOEEDUJfbgyzmojW7/by4qc+lCiVdOHd741zA5+W5EZ6zhRdyE87dz2MsiR77eu/Sc6K46ws1DPeJ884mVLwuTEYP/aT2Z8NGqblX0+XcjY5BL/ASgIryUjgPDCu6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-40faa741-b602-4e04-97e8-1e30a6ed14c4","name":"release-40faa741-b602-4e04-97e8-1e30a6ed14c4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"243ef05a-c328-49e8-941b-3c08f81322bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186154866476367469474615504594111729423526572877467294929037083393371976005152775749390941522034562425289952634597548066139648821836661356264610125847161359895375355394763674267281144862456998187085283822339086710108453441016415336826798166347285","osProfile":{"computerName":"jianyunt2"},"vmId":"1433debc-c532-4082-b89e-f27e489cd264","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsNc18M99v830waE+8xrDO/GCZJygb822+Vu0jxXF4nVZoIZwzyL068UVqy5oii7O5cLK9w2JtOdEIfdxk4XIh0WzUBR1wNEsUqyL8lR3Pzcy9ysKWeDktQ7jNV49g9ZRdsGzHZzBYWAahxjxEBqkoWRA4JrTAUOTAbbCHqQzJci4ZuOvAbr+/YSza9v2MXEu9wJ0wbSQ3wGrXZrRZJeKEsyvWfMEZoqbKJAiYnYWfunCgeI4EgTf80PewB4y612UiYRsSFcGQ0D88lvC91JM0uw7/e2uIq50hkYB3trKjruQb439wQXVch+O1t4xwtAYQ4uNQ/QfFD4GZ127KL0VNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-48c87a84-694f-4f60-ba5b-f36f93600da4","name":"release-48c87a84-694f-4f60-ba5b-f36f93600da4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"13a29671-61c6-428e-ad24-cb95e24742ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41877898980776762147371381689306862303994842825657654526842462956088007018765913142050188876975783125556563323918485656008285559429838156618737081218510516032143464417091935654491896622121120768171582854474183886165663623269967996168296192461921079601116562418480063056829199402483","osProfile":{"computerName":"jianyunt2"},"vmId":"6914f948-41b6-4187-a96f-4653f55b7499","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAurziqPbFMZUkB7FgNPec/kn6evx1leLEtJqFiH9ZiV0sS3XhOps4qOImB3FakcrH8x4uctF88C9iU6ns2g8j7X+wWKV7V8IVrwZVT5wj+4mv7yl2TrpIBNATRXNusi982NpQ5q3Mvehs0vxG0o7nor39PnZMxu8mMpzWiH8XjNU4VjsL49gstQwTp8NloBPCcbZOjn/8z0upL1SfJM5xBlXzCFleBJEO4Jjrwpq0t3yULUESGB8twnvLN7klF+eWRo4xUnjxVRxH0w0vH7eVq9HUXVM2zyk4WobDdTcoHyUB8eVa6U71p7d3Z5lea+lL3PBt3OTxDWGNK/L/WMwimQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-621f6f0d-7668-4849-9d63-e9a76eb03ef8","name":"release-621f6f0d-7668-4849-9d63-e9a76eb03ef8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"77fcebe7-3044-4df3-92c3-930ad9fad809","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41848009762362688694118489470939726352928453399184263709063889749874089738714822392862483558405208523270521393775210138767758264863582784057578443917230319366900790013650143049856148132396318399901272656878804553253626666796","osProfile":{"computerName":"jianyunt2"},"vmId":"1ec2533b-ab3b-4de6-b753-a19bf978bf22","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv5IkpYACdzhurUOTEvLBA2Mr1wkxbs6WuAoqx3pfDCmlA4Zdnp8DEiABVXu6yA1DxVBix4tfu5+DPvO+mV4OWRMcVteg3f8qw6HsPu4DVzhmFPe+etKrOSm5fUSShVDX/0ELY2Se1NRRR3ULL0dIbnqIXsVqSdcZj0pRp50Oz9ssrLj/eogmxblW6yhX4/ytE5SUhC5EaiMzzti+zDrm+Fak5lC/8DVrN4qp/EvIvXQyF5pDKdBcx/MD79h2OxY47j+fBGEApQBw4p7UD5tArs4mVIgrVuLLM7w8zSsbOsTp9PPVUrt0UKGIOkydWd1uOLV9qy5egSmAQ+F29yaBoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-aaf368d7-24f9-4917-8656-273207c12d59","name":"release-aaf368d7-24f9-4917-8656-273207c12d59","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ac16542e-8c9d-4278-b6f8-ad7af9585749","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189207564715317607090889844089706341844887252872512157102926045315670564052985158440907769688323595610899792606116703628312915526343088806130522755364720481805188413214772309768653141324355839903860437941374483059846809","osProfile":{"computerName":"jianyunt2"},"vmId":"843cff70-ce5a-4a3d-89de-142916d7eff9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuMJUuyZdueLDN24mO1A/XOkUDve1ahYRgP8IXoyK9/JiKBQjOaGL45zM2XbOBeG69XMfJxK9oQa2C+DGExlfm3pOYSjV3culX34JR3IG73Yam8fNNlQY1VVAmrM+JE9PVEHkLGcKf8EhNGnQzmDlNX64ixcfuSB1EK7wT4vWAWfBNowwqc6JYjnIR1VWvEkTePMFjcRXlzs+5sqg/7vSSzG+VnQWybjPEfH+h2J8KtoV1a4XqmndSENhTSVqSHwHa4Mobv85hHgnn5ssPTOb041a3RFogMan1FsDIRiyvCSM9IvLfWma6TU61S1S5lRq5w/+vZUrQeyO1gL+uO9mowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4f076fa5-78a8-43f0-87a0-2ff4834dd4be","name":"release-4f076fa5-78a8-43f0-87a0-2ff4834dd4be","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5a563bc0-f7ed-49a9-bfeb-8a6a1d4bccb9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183230740790449068048430038379132258571987296109859956142348542218176697765053286057352463723172359952216930139548827538983158349821674214904146037089433752226243064340075977963017541594119046170524462456192435794989406259440023432731287127403273632168803","osProfile":{"computerName":"jianyunt2"},"vmId":"445b3f01-ed78-47da-aab9-4744f8191557","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0pNX+0aI52yXkgFwAjS7TvvomQ5272iRtK91dYXK+kJ1LQF+dVpsHtJME8b6/OLs7q6BJlrbaAxaI5LIn2jpDFuUHdjq2JkCbKmwRF03OOuigf/Bpn1KFfLOpeby6Qx6rYNgVQevZQGiUmxgqzbi5KGjiTo/sfP9vEW0nt4vruINhNXPBf7haPYSIIkJJaPjZwQn/7HvQ2tMLfX/VqZ11/vVraIIEcHHJBfJV11+3KfhgyO2MMCsVjFFfclCDlqC5BVxV+sWZkAOWG+x6UXz/jJlDCEpW30R1004jwFicvDqMjEsPA8IJX3hX2pVkzDGs4YzOFDLKhaB+lUKO9FzOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e7cb442b-95a6-431c-a2f8-aaf0cc902b0d","name":"release-e7cb442b-95a6-431c-a2f8-aaf0cc902b0d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26ce79d4-f548-46c4-a4ce-8621017d70e1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418923408978798423436642616683609731316391351883337582294095828191725365157395830808149178887876162984698999309408059206064078509083457884682121981976436637646084451387452299962552689400400229869170984389808274398902916815689409404982162815686953120138116631","osProfile":{"computerName":"jianyunt2"},"vmId":"a5ebf9dc-19c2-459a-ab36-55b29222cec6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxDfDuKJ3KunRVHoZrcBbNp+y5/ZEonUdTgaz5wdAbJM24Bml2Y99EJNDP+ICSjGwxSoyeWRIddQsXeFP+GAegE06i/ACo0kqUEh/kzeRPiWeVJeVz0RNf4cAp8rWMiLPkygmrMmMXBETD9Fw1JAokbFOf1Xt6xaIlAdacTHtvQdh03Hjv2VH8ncTkkh4GxZQeQDG+jyJYBK95nvjKHdOGb+UDxxNeu97oWGtxIYexUuQ3GcvLBVWs23dMwNfCyeklhNiA+vR69IgEBswxHfD0LzHuqntHR3U4JVxqq9CZxxQMsBQAXDvI3yUCCPews4vJMBOxH6u7J1Ssx3r8xdecwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ae883499-8ee3-490f-b9f2-4e2b4b14e924","name":"release-ae883499-8ee3-490f-b9f2-4e2b4b14e924","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cad78959-01d6-46cc-8673-100574e1b756","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41865433521966911637472276451965301403986857798898504150193978461142847380646347145715723851839017941715937868047527897665137984977884143509306266392444309771799407151292159843096111662956083396957835609926613885513269258731929804451010484126386483542016203450484631671801137283514","osProfile":{"computerName":"jianyunt2"},"vmId":"c766ee11-cbe3-4fdc-a73e-1313b856338f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA25har1m06OkwMDNP3A3v/A9wsJTpHj4fyn1YVdgKIZygJcu0ctRc5FLjyEnKLxS0w8HYO/3dlq3M2dF9q4i+5NmSEucj8yhWh1V816eQBZg7iVo59u9gbxKdGUKMsWZR9FT/Ae6qqpE/XmUKzqEEnJa1gjm1E3jVz4bQMLkQ7gD9gcUB6PYIJF+YiNE6xtle5xGcZ2UqHTBdd+cCrzZcfUudOeR/clX5yXUiz9LgdJ6j3lz1LmGrO0jiw//hYsYXfAX/noC9uooW795VLxic5/nv9MWfg2Y5xUCU649bth7fhM3SCUF8xENG+3Lfrko4otXuNBLpC/6tzt1wyokruQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5a75c5ba-c119-4697-b335-0bb44cd326ed","name":"release-5a75c5ba-c119-4697-b335-0bb44cd326ed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4152c381-a8df-44c6-95ae-a99b7659ce86","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418307293122152804067479034094037326163574264825178677474652435826655143918398263789132255961843896708354934237805123709244132284168706600799749332454055222989644566374425445828813638560339658657190123943155136964448873324888313743895816056745764382338486062260626777369393275367251926439450745127","osProfile":{"computerName":"jianyunt2"},"vmId":"5cee3abc-d6d5-4532-8d9c-e6be21ba2d33","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqyn7BMHavMFLwdO4CbN+2UE4a7CehqlX8JRA2SpmMxoJf11+l4YYIGRSdJxxr0OgKZo3MWPvfbK4egEgs8vr1SeIcAd8P84jXpc+Rp+B1uYKMp30hXx5PoGX48qtttIXuEd0kfSJZxOdGz2xYQFa6MaiJkEZyZcWceX0APYcSemx/rURhKFGblHMI/XqUypKGkeNtO+X5V6lOcuFJx3YXGQke7uEurLr/VknTJzj+XZ01+xbzNgfcLBjKV8cKI+iimwvCbKFdF+WsvfkZ+roVywEPD02dkGmY1KhSImeJo1PYKtOIQSESbhRrHxoeMC0kBDcs6tCS95OHIuymDoqUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7dd2f2a2-2e97-425a-9330-c0208ea6fb1e","name":"release-7dd2f2a2-2e97-425a-9330-c0208ea6fb1e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"550e572c-f62b-464a-bfdb-ec90a054cf88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418156329940634943986649477287931057653726876968360299416819388782252179391566523370145570992637672876918160660913423909559436685191487349994571206839839925644314629884889695486826440523667360669276699648109968194462291498905771093655608577788435776766832834661","osProfile":{"computerName":"jianyunt2"},"vmId":"390c3f86-cae8-466f-956e-e4127f37ec6e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4QYllvAEntM4SfEx5o3b4MUL+cGNYs2HiQ//Rzzz+OTAbWamv1IByRTFmCMfY3gSoeUzkEO8s1++CPYN7vutT1iSL8LAG4MAUFO310Jg8e4NrpUJszDEz1GwA5D1U9HuJHKwQ4k9AT41gJ/ptUDE/6lcWl8xW+ByxCW33BFQQRuL71crAmGXGMjQrzJB67VJOKsRng145nv9T3kC2FJ5bO8eb53OiBpjev6Dm1vGV0OYKTs1cHwshk3W2nSkhiKVLy/tmrAbfPJlWI2sCvqeGPtSv424mWhF1Y2kzNoI9YKEb83G6zFxfD9gq0VmUTXutGQ735JNPleL7ZJTLiPsuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e82809e2-aa88-4a8d-851f-437e118d3bec","name":"release-e82809e2-aa88-4a8d-851f-437e118d3bec","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4783b75b-4930-43fc-a5a9-81d8e64aa61b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41866522016713432408831105360322003778211117980448247954803122084712684989155136079967587099330304964156766518560214448806179126973743652992659513681895483395117378989538961071314409447354068320355513472108938312392813111837726834181704095825938354404237497464482612274716688179621243166472811056816537844572488748651973731750777682676","osProfile":{"computerName":"jianyunt2"},"vmId":"b8a1c87c-529e-49f7-85ff-72bcef308e76","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwA1ikYHX4CNhFVxh2AmL3Bw3mgbNcdRw2JnCN9ZrA8ZAUT+n/2t7lGqBhXxajod+yaSxdcQtdJuC20WQw7SCOcR+1ZBT1/dRbT1xaR6i+IUsc474vcWX/xGtuV/grTRoiMYnigpijx4xGtWJ/Pnot2RFHskbNBFyk0MYKceefJV+LDcWw4fVtwCTp1R+JAAA4kJX+YuCX7QWBqvOGqMoUKvKAiNEMoo3lfzQGKacUb1YYBhteQrGxVA+pENFnYxzSCqRl16S0pujwawi1U00zpLywwUSbc+n2anZIPWrQYQnLQFtm9WL9wi7N+feIXhr1Pgexm1P3QXfCHJwai7wVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e04f3638-0861-45c2-b2df-033cabaafa0f","name":"release-e04f3638-0861-45c2-b2df-033cabaafa0f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ad134f91-9ffd-4fa9-b98e-cb2e9999923e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418387573343046876503633066474946598071313525168704720922370383113539702130805914536187491433777425299132225477180991130261971757851807468599893211477969992354187921198527288863716265849131257644418620992315932240721459423550376937266249643069253217162432247590668683161737093707","osProfile":{"computerName":"jianyunt2"},"vmId":"09f58632-1202-41c3-ba94-f50aa22aacb3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvrKFlnh71SJQ1iP9utlzF5B/AYefxEMEPEL3KSa5rGfWgDV32uxkVdlTIcSmKaEzGLH07mjbj11Fp+5Vcjfj05rF5BvEwsb6/ZERsY93I+XLznZhIbkHdoy/bA3RDFAKlpDQMMsl02ugD6VYm9b2PDm4Scdujxtr13nOIl5KuhelRAgjbjVNc2VeLtOxMUrBdMsyjA5HbiknFWhhBHDU80tteFkIJbacUg9oI8CvgwbTQ30Q79IueExZs22k22YQUCM+HHxJ15N0hbEs0NHaqcjDI8DpHbEuErsBrfBBLicH53CikqdncVcEbSvikJ+GSW/vYl0lLo9gdKObq7AZVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e6ce3a61-b38d-4abb-b699-c93e8484ba15","name":"release-e6ce3a61-b38d-4abb-b699-c93e8484ba15","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"396e6803-2542-468b-8231-292c5eb18a88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184144454740004980742752987376957366743041631132374104406597671777714734751768149082271364143250463043684414429880959913925455204550955327561180330625993651036665582798099969837765855704448546167185350142765213472220275489565573767994299838080860448016187283275272136957718704235211016","osProfile":{"computerName":"jianyunt2"},"vmId":"d6862f60-bbbe-4e9b-bfa9-7739a61b1d96","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2DhibirqyTPpxMPiX0wo14g6O3IHT0zRDVAGSZqFM/c2+u4IAzWZ5rGBw/FTT7assytTgogAT4+lbTJMia9sKLSUYBY6pbAvDA4jmpbJifLygaQK2eAZa1gmzMkgSGCzboApsgxmxBPJiGMrLScaYkBq8Loup5zPeKX3P/SBo4MBozckzlaJwfHogfeIIPV077wb/g87nqecJJO2Rt7r4gTh3uItVDgR61aQ3MOligngwmsheGBuGW2h2rGuaST3owivxo+O4XQKNahZO/hevHGeoUA0/m29WWx6d04NCyxipnePG0egJYtKlezYMvnq7sRR7T6yQKinpzAstUCPtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-68b54fbd-fb56-4f24-b275-bfa4c89f9d92","name":"release-68b54fbd-fb56-4f24-b275-bfa4c89f9d92","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0b43c721-792f-47b6-a943-e3924b30afbe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41837051453718126176574223729348795922193985832479363457394684844935514936945558488904318729585787192580136252143769353633253234671195703306856106065480312667841641224175163089492776169097823134475364712140294211688688199642668185268962145135146547279471973028857419280330086344238055109467","osProfile":{"computerName":"jianyunt2"},"vmId":"f66a3ecf-c835-4167-b531-a17cdf661100","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA43KZNnEO1sSpe31cs0VtteUDYxToI2xp57/3461TF9vCCJwUNiMt0Y3BGz4UWigw6hSOxHsA9Y7Dc8Q1NHFfEmVFaSo8aRokIr5eHpGBb2Qm9xR+LxY3MB9DcpJEHdL2Qg767167CdAWFNGgzqtHNY+M3UMVISji6I8cyzigMyGtSgYjyZytUuvitIsTP2pDfiWWmdrB1/4+v1Im29DHCRulNaf6z5hUGPTBUAEUdnenG1tF9MBn3TUP83IGyhSrSZ7Fb+o9grSNJFISMPILWaEzg3tB68nAIpSOLxW/RYGEFKGdF0VB88G0P/bwAVWtv/iFkeaJ8SVmtupV4hEQcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ad1c6874-62da-4820-8e99-5e040eed0ff8","name":"release-ad1c6874-62da-4820-8e99-5e040eed0ff8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9cf3d875-bfc3-434f-9861-e3157d2d7b2d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181394945247367292100221050306073959773804012662027033747857957325734884372676696240166918988588480356093520229649556979888466043654661233477296416851215502782575946809730734588827548540926648764058564165533258952511998033041391887343769664131057839905912006406221","osProfile":{"computerName":"jianyunt2"},"vmId":"72a786f2-6936-4664-8e0b-ec88a7720167","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxUr7uF/1HDeFN/naB3mRCw3DC6PxRwwsnERE/MLNXK3Vob68/OYAS7iVzIIgriaBU8wMs5mLjPkErvC1Gdkcpu4/ONrFxU2U28n6e5oKgt9e4Iry9HkEzJ0wwqqLrLRGPKMP4w3jAtV9rwkypBZfagI719frrGlQZflHi2xdiadC5QIwcc/5nsyWjupISOKJG6A7zrhEPksS/zdG0hRzL13hETXNC4e7UqscY99OLmvWtyUuymXoGTj2h/ue5NS+2oY4o3o/IFxw0MggQvSsF2i8FPF/TBdiyi3arLnoGUiYlHX967kARFXwH+BwC1tbyzd1DvUSGt5YrEJMMOMYgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-84d7a1cc-d0bd-4326-b63a-fc6957d87895","name":"release-84d7a1cc-d0bd-4326-b63a-fc6957d87895","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fb602117-453f-44be-893d-4eb772e007e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41815741903682184915024700897604323447315041629192294736488621492134087997202283585582178637168405055351642365215522415439582856421144438588770386828261765471147202365140857665441732118427152487162812971296645475807690311789169779912017124699774180457011347","osProfile":{"computerName":"jianyunt2"},"vmId":"08685a2e-f0d4-4a2e-85ae-f3d2015624ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzW1SR23ri4r/oySoW7jF+O3c9qX8lRA2M6q8S9uShSj/0fCMfmIwj6XfgWECev2ZpvxnuPOiDabEuh/lNu3zrxHoHrgJKUB8Yl+uY+9LPOu+DMYF5i8tEQ2DEIeIvbhjk1kCfznaJH8yR+O4oKSDEoH9gYkvxiMTs7jRV6BKvJoormmVBNeLDuB4VSTG0YSITZ2v+CkbV+K9qFxnDvncYWqDEhsfgmbrkVbTzUmMiQg4tZaiWxsRDa3eEGvBEVt4HhSAn187dTDYgaR9Ek1jHO5+TfNyf0rX6z/m8nibfVV9T/3g7g4ZpCfP4ccEIFsNLzM8IDMCc0Yjw/sWFclA4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dfee1674-9b3b-4925-b40b-e78aec1d11d2","name":"release-dfee1674-9b3b-4925-b40b-e78aec1d11d2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bf1d886f-abc1-41ea-8c70-fbc7e491d923","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418318238755144710235387161586495946241104337135998934234768398058134695166711684584044507514613897910528779539470552184208906281222330345207299230429323329220364669213138579023741653642154550771882973715390623351841163552771086250544966999659696","osProfile":{"computerName":"jianyunt2"},"vmId":"a2534993-774f-4d99-8fa0-73972f121cd2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Tudj/iJqN0cbpiPEpSSNBnKIffC0uRKOgrf1EQ2MrL0InsbDSN8hZuo1+j2/qegkA9Re+NjYWDyNfYd3N523YObddEnRQKc81q1Ca+pL5/P9juOMcU8z93FOJXpSeEDAV0chciUweb4v/PVX+t+wGBFpwNs3N93F8axaYfQ0blQ28e22D8jHViKCnKnkFx+lTZXmUYr27dr2DMmghBERsaEZjUWjzmKzVkohJkr6yPHcSzoXdB0knxlR+kSskvMMtze6/GeOXPuVedOVcEdiDqew58o7nKr7ZSHh1FDhYX2VYriR47+8Ybzu88xdKxDiTu5aQKzbW31jPuBQdCmxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7c5d0150-5c54-4cda-8e33-f976fd138718","name":"release-7c5d0150-5c54-4cda-8e33-f976fd138718","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5e750168-f70a-484a-98ab-d05474fad314","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184777705428079762455458434185820292376463348253894338543541108445519226514718679148447923241572721851014868218134763187726967234077375084339740261748971608810749356897940338731099228779032198995255930722337365597133281338588283412021825271806939607863386026","osProfile":{"computerName":"jianyunt2"},"vmId":"ca6d1163-7eeb-4ac1-aac1-3797bcf2a89c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDcxo2Zr8d09ESmZtiP4KtO8CpTxugZiWyq2u4pt5mJ7EPWvrWBi4+0AkyQjimfbm/A+GtZVnDrH/099ioeR7ExDYlCy7oy+WYexbfKmsjkkJVU3E3gO/MbDcoUrAmovlR2se5+hhjyKRjCZue9nTxdW1s6k+GBwdgWFnXnDD7zcpgiCAXD+Pc6t8ygbMA2uda88dlUAVPxqeayufVq1UE/+OgTn1dW2MX/FTSBra2/aC8iSGgHZfQtnW2nvgB191Mf67l2EtpQyEzNb6OHFgGtUX2cKV1yGiq5gwAtm8CulsVz06gOgqXdTAJo4+dBoqZsWqfvBUsxXYmDkxN6GDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4eedbf9c-c263-4bfc-b781-e0b7e4312626","name":"release-4eedbf9c-c263-4bfc-b781-e0b7e4312626","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"350c5e33-21a4-4963-b5fd-a757f3e16901","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418545451985199617045047002524542396806119331471526915838416730857889388570419865484751231836710159676712923279298707494900296907754263627670684884408517476662893995020901437356366118725532473288081460911172696916760836805157988388223520892675865773593734247629591852031923359691081419914727819814896526","osProfile":{"computerName":"jianyunt2"},"vmId":"7287f2a9-60b6-41b2-ac60-c1bd60e68d22","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuSrrM8hJ8EiyL09QyTHzFV+4FffkU9CwEcTdaFf9Q1dKTr9WSH2ySOXAA5RGGCMsmN8/TUppEdHcir4jzZ0CAP0PAQwTl6EhtVhFbc/v6SlOrZcpml3ahkIHiNwUD6Sq9SJ6GoVIz6SD3MfUmUszhLP/IyzNGCoyxiFHxzUMzT0oyZp8DInvUdCj9u7HuGPJrN9S2gbqf8aliW3ffDjrE4GY1Zfrd4eWO/vQwakKfo/ClIuySZPUnjLzBhY/WyGHCVSwVsIC0sqpZeV3ZUQoTnCKzjfayldymQX1Hff5WEFoKxq3+og3VZJtjUhUK+6EG4d4L1aBPI9JqQP6+pxQVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5ece07fa-5d3c-4e2a-a1d0-e3195553c144","name":"release-5ece07fa-5d3c-4e2a-a1d0-e3195553c144","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9c6a376b-c9bf-439b-82cc-682dc63a245c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828855192423373214370344358298600424141159535899633443874473233496433195273012079883236459757859433761993194870165991912553186715423613397671844665133022150864459915789566167393560461776265936100173595834667715985412303515050548233864365759676472123381477397471336811921581115170620870339889950220635988","osProfile":{"computerName":"jianyunt2"},"vmId":"58896077-218e-47e1-a3b8-b68a26abf30f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxg4W8lhlnM8mnCP0C7n4KPKJpV2iLmzHvoedID6KvhwXG1UQ0/EXNLxGfN7YdnSocgv88b7ra7CNCjCLImeHJTvHvJKVf6+HUOLjXoY8Pq0pX+zpwgHs0Qh3BMguSePorNKIcuwRhxTk2b6aW+03hhsZK9jSZ6VbvxbYcpzF8UPnocFNjOUWVdaF6z40dTMnIaasACE3yyZtPGsXoceO0UUOS0afdsWYQ7ltGYmUeOWcSDWGLhuchE5ioNs3mG6wxwsCXFSszJ4j62h4cJDCQyR7q9BW7qZRF6BHiY+Jdq656F7fIZVVHv52lgT8GDIckA4Fov8M6LwlLt3P2ldPDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-970e4e80-8bf6-4b20-b4d5-795ea85a7dd1","name":"release-970e4e80-8bf6-4b20-b4d5-795ea85a7dd1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6f99aa48-38be-45e6-8c3e-d871f2b31e35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41824618223755411648787315871645363537797406799534392064639309587879893904612775669551531827514229310529176297660964764524308849054044031168965436027771802319973065885381659214641482201585561235276679343309151327853600530768216136643418734576494572671847595849801438612597644390062234917","osProfile":{"computerName":"jianyunt2"},"vmId":"b34ac7e2-c69d-4831-a1ef-3451336c08f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtRkboa5hbp4wnsXdb71D1za+Gkis9fF/C+1YomuIHD8Ai0yQJGJv06ueXZAKWkxGWqE/OQccydW2D2WW2ebM/0ZF6AMwj4vYOsf2NdosTHI7z6ncStAr7/3eyYrAdlAZJq7HanlRY2AQL4AlQw6/wxMGTUNZDOx3Tsc9szYZYfZrhIPBz3u8xK2m9jkXG5GBcwXmvJFVSwfq6j+z2wNoEeYykZ+i5ow0RtvCQHnMsmX3Cqjb3MQuvwNuzhR+OSZFMIy+n4JoCTahNxNYGMdNO/nOVhZSisIlyGrYXaE5yj8IGb6KNsXMK6ZdmQI9PnscvyMfs7qq+Ni8/dfjbW4URwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-24809e4a-a4db-4639-970c-e8d772a86dde","name":"release-24809e4a-a4db-4639-970c-e8d772a86dde","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4205190f-32aa-4f72-a439-d4be27719406","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186711442647730062225882882185880561349296916432694043761128644552417286695375529351062567847382178807182086883505849477063766333194702250320537358538238105325458825505311464564862252662967629071630971176103767044393354787457722578466502","osProfile":{"computerName":"jianyunt2"},"vmId":"c4f221f9-e851-408b-93dc-2f1b24d4e546","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Up/lTe27DmoW4S5rvwQYB0MwVfWb/NMkoreEh5DrNVOu6TDz354AWepaOF2rgFIxBn3naUxIouYca05FhO+PdMBkqzli8HpoFWOMsf/d6z52QtPjzQyRSd6vlxQNTQR8PaS5hX0bZuy1gi0NU6b7z/KGxIV/uuL3ut6IsKOHE12WxuXf3J+qVkro0iiH1xmcW8DZPOmVwyVaXScVsjp8fiLAfwBa3DT42KVoyaWGb0PBvzRg7e0ofuVxUWVUhCXZ69pRM/5OfvBWDDQItKTCGvZDG3vRMAaQ3cdazRM0bCnc7xVF3XSQhv4FQINo2Z1RTkCHH2mAE8Ik6s49RKuJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ea3e205a-5cd5-48c7-8a27-02c5c17939b3","name":"release-ea3e205a-5cd5-48c7-8a27-02c5c17939b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d1e1339b-0bce-4cb2-ad0c-62a2dc483f1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418700042362365162923779044918289841147886589458677392974031393899623551549523713441618181476353226191362442325979688139400495146600498294932594867694412854924883886691349374110884311351474186032017163270801622565312455602952760169801227973940955353955521163649025526793498062534662809782206087701911163","osProfile":{"computerName":"jianyunt2"},"vmId":"5583d202-66d8-47cb-8554-9fd885846938","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9onXch9IxmkgqsK30X9evsgw8VW1vbysfziFFSY3UzYMPhveJL2VnXNJ2jKQrs4/OGMLuGeLiHDqJiuanP3RfT9M7b6bheuRSIluy6cQ/iuBmwiogN5zL6NVTJJTiC6+FizUjKaJMMUteeZbPHNTFzRVPIjDVC3g3MfzYU2y1NAosV9CqsXBJ6uicnpKdpYaAjfFaEVEy7IaXpqpCn+vQ4UkLAnbKF1m8ijrCzaAL/xAd1s4C7SW0ZmYPsvNbmRmGxaKgXvNnDHWxnjS83uh1Ppo2EzbmrowbcXHctl8+49eFdJ0TQ5MZL915uAdhQ0Rd79zaAk9cAFmFm/I2WdZ3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f0143e66-6894-4b41-9867-029d19a4bc0c","name":"release-f0143e66-6894-4b41-9867-029d19a4bc0c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"36efcb95-6ea8-466b-826e-3e7637145e6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418711169891363951854484645279453233764768855456081506575722301198314527401680466899894981419334219429574604811469297175346563296358366414060052442535247879187166728907481925671455557681270761622918846801457349518722408535877413873123519958196219855614832077604710134","osProfile":{"computerName":"jianyunt2"},"vmId":"988a883f-31d8-4d8c-b13d-455ccadaf3ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1KZic3OSluexcDkTcbC/DTBEyPA5edlGuI9aOeThVDuJ8iDFt3zr65FpyX+dn03k9n54pU1rlXbPySjU1trx91eyzXWfKdb7h6s8/nurznFg6SNvM4d8KOuo0bYWumDfdIQcamf7Shp4liIe309ylcaRryHWqaOtviE2b6BoM446ustgtDAqS42EDU6EYjxbv8jOMJbAr+fBV1U6s/AlvLeyLYIHIcwZJ5BR6cspDY3Cdh+XdgG65nZMDc8AXgLqjED513yAvVRliVa6ZbxA/6VZC/pGYtQQtRjhbqJMPmqgPcFnsNnIkWxTqhNzs7Nvw+RKEAwKIV/WBYTMXy4RlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f8cda6a9-113f-4cdf-bae4-3b790064571d","name":"release-f8cda6a9-113f-4cdf-bae4-3b790064571d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4ee99d94-8b9a-48ab-9daf-5c571eb248bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828714702343499058858948154449158028776609885041889410336092870272119572613579936173356919746995424735188189689324557548847942012626567381658927652626623527134373259764669801533330263408473323837403636644068186202924567764684554710546079784716136083274371926805632034944874832519962296595241718973416618837814308617","osProfile":{"computerName":"jianyunt2"},"vmId":"157e18bd-2c1f-4e45-8a4e-91b72b33cb62","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnC4rCKx+0PYlDYZ+voW7QkX3jl/2lRR1RxFKeyJYIms15oxDZTZ3rRBiylzS1aq0k9DDU3CKSaNBnNuQXgI9dxORnHLDSSS+QFxOOC9nPi+M6gv0HOEP7h1k8HVqM1t+DI+jfI9B2Wb4nzbDJtjEYRpaFj55ared0n4jpUBxyV8gHP3vPKXNR5VpW/kST0KPNh0OEvJkosOB8N/vvN8K245lxvnCYYabZbh2Rempouy2Q09gagCUbkLoN7gPgEOUBqh0SdcSruikv0oZmt4HNUt5zk515++UEvpM0QoginFyZQvQ/77/x3YdZ5X3GcuHmTTYKYIPa+uisuF1FHQDDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-89028cb5-1177-4221-a2b9-4eaac1829ad6","name":"release-89028cb5-1177-4221-a2b9-4eaac1829ad6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"79335d83-d1ee-4526-9781-c476ff2a5e29","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41828463903830615273947083704671392045574584473246092157532591997777225513277218042302271452619684662720497261360673031008555200695451785227267674849195511694301787212826088236672933197471955099678705221253589805517349172880196596706321394404052514967838641713632432355586041452261","osProfile":{"computerName":"jianyunt2"},"vmId":"f225bb7f-bf46-45b5-a586-9f52ffc2fbaf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvYkdHUnzRTITuAyYcKlIQse6l7Y5BP7+O7Sx88euy7MApD9b00Ib2T/8Z06SjmqmhsNeApLs3OOG3YPQg6LvSbCbGNQYVNYE9Zxqh3gmywog/J9pMUAOtXENqkqAw7eWc9jT1wmlSuCOZZMzcuiSpJ49bgNBvbeGl5wFnEun1MXcAow2r/dS4RSt10jgNsArh6ESa/6KtVY7fB+oG6SEXSFMTJVJ5hBNdbyPnWTGm4Jr7D6+4NUbCrnKHkg9o98Q7kY2SbsZGdZxx6byiklaOZgT+UspHLfsWgNmYVERVoMzBaJ0IvXnFwI03avgzWllIRQN1UELn/2ENNv7gV7/3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dc388f1b-a5fc-460e-80b5-43b7b4fe8823","name":"release-dc388f1b-a5fc-460e-80b5-43b7b4fe8823","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bd82fe10-673d-4dd7-a620-c19ff0401565","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41859554081711976031118463761479686870489439476927589976808985873579202339497472595846881577322234435473154056637777216836868288171983344682993172813347745743829752379633521069951393763412418431518040138342528828887885623677880453234594888","osProfile":{"computerName":"jianyunt2"},"vmId":"160c75c7-1f0c-49c4-a0c2-6b919d59e4b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtnx2/gBenPK6GDQR8Awz8cgrsQ1fYgPJsNDzbLKwKIsQ04EaaCgc+T9/CcrPdd/JhYbB1b+mmRkEgUolXp/goZYnZJheiSYHYB31LUTeYo+kLxUFipivO5TP7aSFydFZkR0zh7CjLpYrDRVcTZskWKgTq9pgeJLUq+b5occIfDBogO718nE9bY4rm9/RU5LxZLmtNwF+0Cl8uPOjB79YsqpuxFTrzV0o9qsE4EAunOoqAjFWFYf1YDNIohEa6Xf0xt+G7c8jUCmtU7cxvPyzI7QZXjxL2jG7efRAih+/SGIu8Ua0EB5isWPdIEg4NmL9EYh5rxYpcpPU8U9O/UQuHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3a557209-0f80-4cc5-9447-be89f0d7e266","name":"release-3a557209-0f80-4cc5-9447-be89f0d7e266","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"57b3a227-9874-4da8-a964-80cf82025e7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418527685254397435872655365876715476419847270217558861840434612716853614841958495927156782354278252211683962446967243869951717579118464213952597521079527318385320932258341028285618973041874414056263714204645913431951734145889537509483745552458481929819839935313836136009134937460797","osProfile":{"computerName":"jianyunt2"},"vmId":"90ca5bc8-6c18-4aa1-8219-bb0d30d1e3be","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxT2MIhPXjgOc5FI3dNNoMmdNot+yOjnCNkS4NxHJz5JqX44SEizUMXtsz+cDyQTXhQA/RfvCPXBIH5bjqMFtzoFcNexR8I38jcHBt1bSZcDe+v+OhcX8FSyhLpPl8iRC2vYecGg3ZEXE/mXAXFnR/OtTm9nD9IN25UxWaZajqQ06AkInGifB90rqjfeB/tJl37CLagO5/IsgIfWzSL7+yqNnT/F0i8+gnii+ZSaBGwpxXjkIopSdKlUxLMtNBGZC/1OYncVnxnLHSH5XuM3moGOWFAZSB9X3FOuv23DSonvxGI9ycre0Gjczd1fKtp27epl4i0OH5KoA2P4+zT0E/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f7d2de8c-0f81-47d1-b60f-5c056164c642","name":"release-f7d2de8c-0f81-47d1-b60f-5c056164c642","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dde9a1cb-8b83-4ed8-b80f-46418851ec84","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41816463274789797581158895092057510947717635224348737483544435320738289220099589672430639917584962919454699327248126908083545372349784488396498757234473879262887783266094722734828717332603550388566927441271409898616308805354463150268586430275206674758191274955223831191781697731659833873152712289906994","osProfile":{"computerName":"jianyunt2"},"vmId":"975d40bd-019f-49fd-a6bf-cbb732964e79","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7x5d9Hx8Ek0+272I4vtKtqAni//x0hWbOCAn+3HLkH4uRgEo/D2b49EQQk/8w/vbvLCK7toKsp872WdR+l/Jyb7iP8oJU9qrTgpKe9pqZOY7/0UWviIdw84QgU66bMQLV/muUZ0p1AC9u0VWwr2CF3f/F36ZWT0in2yxBOCUvIWjOzyTxedmcNb6Eh49kHR3ufyeWBRxoplMmlezKyXjsK+eOiZpryBtPIE5YACyhODSN9CnKk5Fqi2+SCVHGfuXUvI+08j9TxnK+EVbfDzx5RWqpqGwds/VosArlMtmvXl7bpYgRi3A6A+kQZGNBXxbvzHag1kR/0uwrQi8fdX2LwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b8092797-1cab-4286-9a28-88dd5d02b5f8","name":"release-b8092797-1cab-4286-9a28-88dd5d02b5f8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"41027258-7c39-490e-935e-1c578fc757d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418708640003862188145373911104864563299367623742778172522661348138083664992283330556170603920305674271111802058115672509951338472596162085104233433580348545645535202671192310558075352424864156650559575815317192517936383784719699495810561165945915311381731684721493164","osProfile":{"computerName":"jianyunt2"},"vmId":"27455658-71f7-4c66-9ecd-734ddb98dc77","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu3PemOmnbfrt7nmYe5D4ucOV9F7E4Gl0liWUE7aWZy6gVRKaqSDJSOQT9RJ2gWrD0L594wO+LhHz/hmOzA105j6t+8fyZA4RDPfhsOYgnVUuaZlHpvt4dHFbYXsYbiQnU6MoyjkgLEm9ihS/2za8XfNmZb6hmLqCw8ua1YjQwxpe/TRfQUnyKKy3Rhv+NqWyauRgy2kzdahaaJ4I99+8Y83glKRmznrnm3ef5UwU4treJ/eSkQ3uzFWsJ1MyDjlVOJVSyPtjLGJSMrzRYzObjq6dTwTyGDJwY7fJ9jju8d/qnodTncBGVn7oZ6KDKK0GBaFIm61dzS0wanuvcDCvtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-43689c78-0a67-4554-9d89-8d8d9d6b8742","name":"release-43689c78-0a67-4554-9d89-8d8d9d6b8742","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8572e7ff-4d28-4b00-afee-acd2d3611d56","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187669300383879394411172104410024481706715135764628971141582210449320643879474918499069724624792053464310414409786775516018773844711295119647428295475838543451308327376062795733929743798760436227091678134560733847939279136333044461376428903592667151247885375593464764916588754673062220480499443731812947011","osProfile":{"computerName":"jianyunt2"},"vmId":"eaa651c7-f4f6-479b-9900-68c999746dd0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvJGJ7UmhtVAfsWI5YHSBzPhE8tXYoq23OEavpDY8wG8x/aR2xYdEQ8EecEawP7awHH4luhe4IX4LYWwGgYHD/aFEU+gGlnHVTnCMQT3Bv6SfSvHcN6vYxzKKAKOgWdyr38h7B0IoM6F7M924cAIlxP+H9iFqOXW6k7aJq7v67MdqpYsQp9YxaNLJJ3+E2w9fWvDe6gFBdh5eyZ55REJ8pYqvZzB4vIKE5Ms63GMfeTIAi5y1shcfXe3WSVwDgYYa0+4d5MHLWX+z+SvBmYEYv4pwTr1C2xUGDwiX2N+PF7H7bsyjwceQQUX4fE9Fz0RCIXuEzEe8nWkrAXswNI6FswIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=VVJtb5swEP4v0dinkaSQBKhUTWcwC3lp4xAi5SMhxvGyAAUCaavut%2b9M2mlDxn7su3vuudO99TJ%2brRcyO1W9%2b7cehXAThQaNYNW77x3ruqjuB4NznMWCn3lW9%2bPXS8n7SX4eVJd9lZSyqGWeVYP9mI%2bskZ3o6cSJ9dHESnTbGjk6N1InsZODedgPB0WZN%2fLAy2qwlEmZV3la96cv%2b1Ie3PxcXGqOmZKjzHj1PS6k3qAnkj8YwztHH9r60NCLkjeSt1%2b%2fVCdZbPITzx60MdEsohlGra54aiao3SDrwEP8%2bwriEZYxfzUnzdwN4PZpJho9zTDXG3SyEGzWrkLDIeIg3CJGEjOgT4gm47E5wZu%2fUj4gfgRyJ1uYY5acRUjj45I%2bJlagYsyjCjdoJ2yFyEw6r2bsQ4pX59i9Njv1iuL9uy62sSUjCRCAULgUhIq8ssae5mzFgCxBAGXk18aOoimacBW%2bijbtVMAUQgiOAD%2fbv4q2n4ouNxWYq%2b10mJavakYGcmSPNyrRWZybEse%2bKUxpDkTAE%2bDptbAE8LF8cgFSEYadpAKwoy6BbSxCQU7A3Hng0kD1mYQRmy2YC8CAyi2DiD0C2Tx7O7GDOcYtRshJcOZw3ijWm1OxBleIGbjUhYC44pm2n30g%2f%2btMr5hhpWpoXroqW%2bdEMBizKWoImCsocsMMMgGGGolv%2bJdxJvjHkHRTc5b%2fzkznc46vHx6G4WOLDM3y1Bp7vff3Pw%3d%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '148589' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:44 GMT + - Tue, 15 Sep 2020 00:32:48 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1331,8 +2509,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 3e08f496-38c5-45d6-9416-8bed5174c537 status: code: 200 message: OK @@ -1340,36 +2516,41 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=VVJtb5swEP4v0dinkaSQBKhUTWcwC3lp4xAi5SMhxvGyAAUCaavut%2B9M2mlDxn7su3vuudO99TJ%2BrRcyO1W9%2B7cehXAThQaNYNW77x3ruqjuB4NznMWCn3lW9%2BPXS8n7SX4eVJd9lZSyqGWeVYP9mI%2BskZ3o6cSJ9dHESnTbGjk6N1InsZODedgPB0WZN%2FLAy2qwlEmZV3la96cv%2B1Ie3PxcXGqOmZKjzHj1PS6k3qAnkj8YwztHH9r60NCLkjeSt1%2B%2FVCdZbPITzx60MdEsohlGra54aiao3SDrwEP8%2BwriEZYxfzUnzdwN4PZpJho9zTDXG3SyEGzWrkLDIeIg3CJGEjOgT4gm47E5wZu%2FUj4gfgRyJ1uYY5acRUjj45I%2BJlagYsyjCjdoJ2yFyEw6r2bsQ4pX59i9Njv1iuL9uy62sSUjCRCAULgUhIq8ssae5mzFgCxBAGXk18aOoimacBW%2BijbtVMAUQgiOAD%2Fbv4q2n4ouNxWYq%2B10mJavakYGcmSPNyrRWZybEse%2BKUxpDkTAE%2BDptbAE8LF8cgFSEYadpAKwoy6BbSxCQU7A3Hng0kD1mYQRmy2YC8CAyi2DiD0C2Tx7O7GDOcYtRshJcOZw3ijWm1OxBleIGbjUhYC44pm2n30g%2F%2BtMr5hhpWpoXroqW%2BdEMBizKWoImCsocsMMMgGGGolv%2BJdxJvjHkHRTc5b%2Fzkznc46vHx6G4WOLDM3y1Bp7vff3Pw%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a6f608f3-3ec1-456a-9932-7c7e7297126e","name":"release-a6f608f3-3ec1-456a-9932-7c7e7297126e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2cdd7c97-be38-4fe7-b89d-e0c64c3aea76","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184349352714226747321973232558236349713258346756574074669195754414144263252966123120365238214350146857301848625640397051135881757124296356872689483664114083501522987555006822736119968424459575822229268985297276125628419397965790952927718061788","osProfile":{"computerName":"jianyunt2"},"vmId":"9e318173-d8a4-49dc-87fa-52e247501447","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8NvqW6yGq6EeiiBdQB4iPHanMACKAWfk4XPJI/CcH736UtOPQd8mMDChpFB5xpPDtgngzB2/5fG62GCuOO+i/QjdYpJSp2WLRSOb6bRYCa8qPHFgZEJ/H0cMuIyfjc/xCDs/o1xk+RV13ecq9EP7aoeiUDvsbjYgdb/wIeFyaeAUuj1qg4/F2Hl06StUo2/HQAX8GFKSR6WvlNlktACbrmsXpRAJQSaiYrbqB3vwNYHCI7sW4T+sryVX8/901n7gaDo+EiIVFAJJXlRw55/vWP1fslko/eF7gjHoBYmNFMAW7BS8MJEhYUcbxYofzY1lKSxg47MSQlSTnC3FNr8wlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-72bd4a4b-7ced-4b8a-a96b-f9e6474378e7","name":"release-72bd4a4b-7ced-4b8a-a96b-f9e6474378e7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5d5d2ff7-e76c-4aca-ba52-7f3226056f20","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188220584941642145444742781725149507152468444971672696462810230068159605722337406587142445398908128636246589979068084544533164398154572467710734830451744315286489103224655918569993387209717822900768612087842394798867616324404603177755533964523117365179339985861515564243344708813030903492824526149343","osProfile":{"computerName":"jianyunt2"},"vmId":"419f7db7-f410-4cd1-b9a6-8a1058673574","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw6043YZUmfivfxw4Jj0XvY+Q6PINKkDZRqY8aKl9bVZOf1pHqVUSjuw2UDX7quo24b6lqkd6U5R2TOgEAmRriYOGIPwtdwj+1bFxKFdohPiM/UTigRAB26p2iPs2FYETa6cT9jrQji1YwXpS0GQkpelY+3+XIOXltjnmv5dTlOoWskc8LhOLhS1pNCCG+QvOyMkdlGXNUAxqXoIN8darYYXezHRtvVBUjW8XwLjR56SkaE21EK07FgQisbxeBdBs7hG/lyQ1uzE1GyVXZAJ18MTnPrF9e22rHzByJ4E/7RCRvHAVZl3elDxXbpQpIpPE5oVtszEC0UItUglO9XC9BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7ea717f0-48b7-4133-b6be-ce39b439e7f9","name":"release-7ea717f0-48b7-4133-b6be-ce39b439e7f9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f920a5a1-e081-45a5-8a4a-ba10a06f8942","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418418932819911536694532204444462699957469774006966551165903780542621992890216137807272616560666624945412453828917659459711120686742327344949287066468697114525641917085769535656616363342878944531059776141239636330809136934620273153629235542712426423674296486158245208454676538281891362503524356091661322404491393492","osProfile":{"computerName":"jianyunt2"},"vmId":"331bffcb-a902-4c55-80ec-c11dbfc89301","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7aPTJsx8nXySyNQ4iNlA2xj4gNcx8b6/ihuRpNhz8X3eZl7CWTrH3nunOjwv0v0xYvLllv0S18hqBW1maRgKAEjN8T6KjRmM+Yo/KaiYrEtnUUZvenQ+wOE0yUN86qqqJ1dDHtvoVNkbRxqOYmZrVRCPWYQ9sjGj6JkhEfr+ULP5r8cm8Kwhzur14QixFUbIXZ3JVw+B+fdZWHvSLZC3daoFjuijRmGUOeS6Rt2e+QjPkPP79M8mC19EhznWiJdFEf0yTAeNSxxDGadJRavdVzb6TsEs2gl7Vc2RylRDx4K9SnRreTMxvg04eefHSPQpthDbM6G/GujwoIByc8TGvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-96f3e452-3d27-43d1-a427-32312192a476","name":"release-96f3e452-3d27-43d1-a427-32312192a476","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c2f2ac7c-fc5f-4602-9e2e-584cf72bfc14","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418630123073573828167713152683842922327865578990143248802118992059132116988667887758768700159133869549462740153902635146444575157199585361720330447752314524734867451780358525461456614720385263476462971264739827401111223419759952952654424157842755734174117305761924924282952641005936290","osProfile":{"computerName":"jianyunt2"},"vmId":"a0eccad6-df84-44b4-9ae1-445596921e07","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApKJELp0cnbrkAbq037D//WXDIqJ4pfgR2v5HbzyFfto2YwUWeFYawrIHZf96cmE9sF0VxchgEj3QPpk81R7oOmy9aE4Onx/hisydPyVPkm4brbH20LnbwgyXzHd0zIWeYTlDCS51bIILY0yeYrrDXlBn7FNWSvDe5eaW3ZZ6WjxWpyCdW76SyB38yCTj4b11p0yfIwNsXHo9VPg7P2od80WsAhO5lLfW7+kO7DTaj071oTvGTHv+0ja7EuLyRUPeJtA/IJIZ+84DVAss6vIV/3NSgXTFl/MqoFf0OQyLYbgrE3lTdF+nHougNvlXbyf3+0fQ49rMzCloScAyQ5i4ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-096632fc-80a8-44ae-b968-670506080eec","name":"release-096632fc-80a8-44ae-b968-670506080eec","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c42177da-cfad-4340-9df9-fdb9906a429f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41842077294369552321548941415382134812501668971450109997588424430956756198578344444869423284573569722682817622477333855912245278628562294986925876294219033643534914066748072399033429757486042970111023928015533123763","osProfile":{"computerName":"jianyunt2"},"vmId":"9fb84bda-7bf6-491c-9d29-0f86da12c22d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA26ToihkzdInQ7XUzXPcxWErZpbMWtQ8RlGgVBlsrXLY5TkXK8UjqhrxW9MQ/MLg6g2wmh/KVNpwy/0r4dGSKufBxN+ifbSkl97O0PiRQy/0ZG1wtVImXSFi+dl9ZJyrEpGjt994MMhf1J9vWHt0h/62RYzUensypdMQQSNftLD7cNwEnEkHq6tk4surWjsSNJ0qx1QkO0ItMYa/sQv+b8rTRdltWUyYJrysoVqLgl2J9r39B6oTMtA45FzO9o9pm/ugEolH+4MV5K6P2BEiXYX2kw0tmVHiCOjC8XnHhVVh38TsZ4ILMLnK27aEsttJh0rSvlVKNlSIXMP1sw100DQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b3647d26-91a3-4e41-a7d5-e280400ee1a7","name":"release-b3647d26-91a3-4e41-a7d5-e280400ee1a7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"146aac67-2619-4da8-bb6b-98b926f7b431","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418282776513183236570627652464717731107757765585172987362824355841794695130418500340450552952996743043286895812453482289529246952193989947836622125119685122172511218228498189576337923561541865250156175844845446135064744154274432961337057841","osProfile":{"computerName":"jianyunt2"},"vmId":"63d68489-6595-4d4d-ba3d-a88bf93b192f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApPJHYIgMae/0ZBedEQ4kqrPc8yEcWsTXTLyktWBKfz/jjIRSCzrnqZs6FFqbREwtFccIgvTRETbCgsenGxczuRfrswalK6rmCB6lfAJ0DFrg4YWCZixrTeHCRnE+A9dT+0XkG5LRCmY3UgnBLNCDfvfwHhRAoFejEz29Nht/dyOUkjnUMtrnRdjvgJe/nKnvMCISSoxmAFBBViW1vccpxCPE6Iqob4f+XeSy4kWxEAXAwerhb1YW92Mbjgd3Zh9L1s6Qoazv4bxJRc5aUSYunZvFJpE0+oJiQ4CkyzUlK739/z6Zwm8O7ZHG0x94eN2vbvxirUJYkvFCQQThi2TtYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-96e58f67-2571-46f3-adb8-bc0f7a402d9f","name":"release-96e58f67-2571-46f3-adb8-bc0f7a402d9f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"21131ccc-7235-4401-9245-80242617cc07","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418869314564117743452331498282716494160995284463527755313393366249577375649482965293796247290317136836247376889772229858583964363839602714332581213884179091443261839269218834521816518216187465122335211106710393763404225569713730996876075022398158757266","osProfile":{"computerName":"jianyunt2"},"vmId":"46688f3a-798d-42f8-9ea2-0b4bd03418b8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtrE76Q6dEESUD8os5WVIgWLpiYXoP3qPYr7wlY0fYGvilmHfF7DmCtdPOiJ5L9ll18Gk5fD2mNNHfyb/ALUHtMaYRvdHPENGLSfH7zqPlwKYZWQEILmUHXL9q9tJXjcupXZm7ekeYFIC1FxmEhPCqa9+504VD2v83FZhLmCbNqDGIJrwYyhRQcT5wPYdlYg/KQJpDet4pUWF68zEt7dlGsbydOgOCOKf2kvoEBXUzIxuvSASaEi5xKigEEg0WzoypfQaWLivFRhPYofr09ZF/E8RSAoP1nSRjN9urch6IEqHkInctf68pPC7FtiIB6gy3tGPW5rfUij1ZlTbvtMLgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-228a9a18-e898-4c93-893b-fa85ff64dabd","name":"release-228a9a18-e898-4c93-893b-fa85ff64dabd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3981e529-3fa0-4b13-b724-ffff7b5af8e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181963169891863475118716553304384017795457762290775203250959022863351609171939814986205804481668902917490659853556572695987490825017891240786929953549939174279133526348423182914421964691492933418224014393399753848419259176229290039208426","osProfile":{"computerName":"jianyunt2"},"vmId":"243de9f1-3cc5-4490-82b7-ef9d2cb99323","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxEjVNNfrSZkjCLJDj7UVAkYoZm0EsoUZq/WhH7+hLw3vhQ+X9xpO1rWp4CmiqbT1I6+1NBwYCeflgHXkNqGpdIkfi72GfdKKeW0ITDUC6lxJ7330QVBBUSupiT79d+1wEhYtvcyZpr/l9jRS9Dop/ygyTSCeEqhEdcq6FkCrboEV8zbZmBxy/9yacAMPuRs8DkFhk6Q9jepk7ZGnywr7CeDI2vPi6CkLvl0xfYoqQT2j7tQY+gA85pwuBUzrnvjJdsu0tB1rRCK+KUmqEc7vQ7u9Ar/huwMe87iK1sTXkEJCBYxSgd4GQbcX1AWu2Ov4VkrZa2IYXyV6BjsR5JT5JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4646dffc-ed33-4619-916d-4d10792aad95","name":"release-4646dffc-ed33-4619-916d-4d10792aad95","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7be08429-f5ef-4942-a600-960e6d5630a8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185184394155885469624847184393526892298071532267101353552866606085447271787886152483696367831499675910789428061205782622614027679797236045147478687123754693821146863815884617882919054719356944684237981391229544306650069884163719610422272034100209697414332016962986271775","osProfile":{"computerName":"jianyunt2"},"vmId":"27af107f-999d-4655-977f-59885f8f0ae6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApya0g6vv1jQwMWASQHbQ/4QolOZCgoCzH+SynWy+VHxx4j7HXrxxdg/CD08JZGfgwpZaevLdPuEyO3+t7U8Bfi/m1MVidq5ps3VSzlq9jEQGkELQMw99gfLEscEiKf+LMjXVLEzwiyVPrkXXQ53htIxlhUfYNeH8jqBw4J8c3cmVeh98grifjjVW/Jk6wsXMJApkpRGfWeakQX36QGxcOWhiNgxjAoja6mCgx3a/by83kvhS0qCQ3ulbJ4nlyG21FvHECv5xUu4c//h5cRbcUUnYaWK9bNu0e066hVwyGEpiras1L+HOF96xrJ3FsDH7wlRu2iJxW0mMBTrAHdBlywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dbf6136d-ba40-4048-a0ee-fa959e6eee52","name":"release-dbf6136d-ba40-4048-a0ee-fa959e6eee52","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e0c1699f-b550-4be9-af28-81ca355dcf31","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189041555874425965903613937079417275732295604564630594235339170824831566783362286950055552450356113856246484054379319424873447015731611739952900816925861558769833865169665364291532517651046826797376922090943076739235435908541157627071379528112499443","osProfile":{"computerName":"jianyunt2"},"vmId":"7e368ef5-0e14-4d91-b75a-a2a7f80f2454","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyht4aEr1MTi6aZFwHcDWG0hfqQKh4ADk36s2gXaMmnnzPpOwMDrgLeBcqyagHEVTENSzE7m9Dm5az21P5oF926iS6HDm+6BjD64/DKnF/hlBlqn2J+CwhzRMjQeIAqrzD8CxyzM9EBBWuLvuGj/AHvlVqTOkcb4gWevt4vvHJaze+x4PhjcjeuHmgDwE6wP93yl1NU5xh0CavQDaSR2k8uWDvx+n127HXLhb0Oe7uHBd+FdpmDqxF5GtUJJun3GFV9i04EdZvxnbnoX/ZlOzDPFw6OO0JBsiialv+mBiQQbJJYHvKzwbm/W19c59quUoKQBuB5mSfDVYQddB64yj1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0a987415-e43b-4d83-8d94-00498f6bf763","name":"release-0a987415-e43b-4d83-8d94-00498f6bf763","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e4d2d5c0-a649-42ea-a3d9-3118b9761737","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188467661818099322809428575071947559314551657342511167936528610227255743419722444342360772333237366059924546980910720989978695422815784941734608644656892806095334868851646243121923187644388467556405343120363792465380466364405662026092877134046985932053910440564872","osProfile":{"computerName":"jianyunt2"},"vmId":"47b5d5d6-a122-40e5-8c5a-e544b3b4da47","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7WHM6/cPr9Rp+Ky6s3NT9B0QTvZxDvzmPR73/oboJJAOX5tn3gt3ryxdr6+i7MxMChkydXW4thnk3YBaNI/rJQii5w/Ei4/1a4CxegoEY97UuZqaCSa4UwwckhRWco2cpDHhZbFUwBFIDYSV2DqETyKkflA/egUCudJqqSVL/6KBozf8f1DZTZoymK0n8JCehIlFsXWpwvUZcVh7Srqg+l9BRPeF+XcfdiEYA6QlyRR8n64fkxZ4wl4HvI5ZStEkXDEuBqFfb02In8+NhzUCqNnjPLSg0Ugt+mNlPpSsDayA8yh5VgvUrrOzDVq8VwEgNDwjDvdC5irCdTW1/vjyZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-42297585-b712-4b53-9294-f04626d802a3","name":"release-42297585-b712-4b53-9294-f04626d802a3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c95931a9-07bb-4925-8551-b938f1d9c0d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418971311704385953003637333842615410143987104270563786140465844455435547336888696345446046234338301750972675786625344330876567746510499458684504664546511262568135948730101491416458565888806394850556817998220510143783452145247193580401589406314261349293751409507","osProfile":{"computerName":"jianyunt2"},"vmId":"97aa28c7-8665-423c-83ad-808a69e08099","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxe6fSf5hqHGTmcBhhk2RDyFLJGB82tXBIjpNZZPraIETQwZ8en57TXGuoeXftns4rMtY+MoD5y9pS1WT78SXp8fwmB+H2OTprnHohMLENiK9DGEVTdERK+3G+LTM++R9L+9tDRX8zOM6LgqBZOBDOZANXpjFZUmoUgHOTdvU43KxbPAsVHvsD/wOLV/Opa4LZ45AX7MgIxR3Stoxco/mpOYDQlMAGmlFBxIK8SiI9YpQ8J22bRXIWM87lnTAid5JREqrR8HDKE1m2fMMB2xtcVxe+djjZDlQV5kYN/+xiJWSe2JjbnnedJ3ICVM2DckcNoZ2gC1iEZpME+vw/FYBpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-95e6682b-b7fa-4719-baee-36c8054e80c0","name":"release-95e6682b-b7fa-4719-baee-36c8054e80c0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"57c23618-d254-4f47-9055-b4533bf48531","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189132967335951927364162569476137262139721686365915621218120998275999583963314855343202623233870515599819226625057796091883169493682622602736570132825299257838736509739514021383176095613559528211212271837282047779246148454518455699519644036913859408390459167869859736266885301495416655218980739389930438176831550139","osProfile":{"computerName":"jianyunt2"},"vmId":"bcce43d8-b9de-4e99-b340-7913649e09da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzswWWwTHfaigvhK0E0UN6DTF8OzH5UV2kYvyE2rjIfl05cegP7NtsLQGNsR2IzltsXR/bIoS7Kz9dfrUYKO9U3bEvdXbLjNaVpN4hcNxAbtSbUiXRbDai4POYI+X2FBUvvyPuCdUxiwZJTG4Htinh9E5iLLiPZsEUnZTs8qqXBrLBMqtsXeHeK09w56CNGAPnbTQT5HXP91EnrFWGU5KhMbEvPce0fr/sOfj80TxJ4uJiwiRWGv60SdsvFK+03OHtfyMwCOpe7m6hI2VRCs8cw7nDvbhoURfacyGhFtSIT8eN7+iuUf3EqYtEUdC2AvvV9DHXhDw2BBhmXlxW7xSqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-91505eca-4ae1-486f-bf08-67ab4c39ecdc","name":"release-91505eca-4ae1-486f-bf08-67ab4c39ecdc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1152d2d9-f738-46aa-997c-fc333a6199a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182646254851831368488422369991341853204163682640403986866538572151157791997847383676438144988636976874766333825646444291355417417567320887794892273938892324601763558119275615830221222677495665227994367485628336785716866816199996838395995700214233480677611906774997113312920","osProfile":{"computerName":"jianyunt2"},"vmId":"74276afe-63e1-4f2d-a8eb-f443e4afed2f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxoYESXVDMyKJj9jrtCjZt74SzeAYtSavzrE8xanfW6EAwBaL54RqryOnY3LeYN5EPjr7w0V9spOvQ3RBPztAefei8GvkhCznjlxWcC4QpaB2Su5dUNZ2y69xt7v2x1tZcAr3WJtD+yHHi4p3h08h3J2C207x3o2wGU5q8MbRb9b+h1hhCdj7kzNJTVpCPl77auSRRJLuj6BxlUO+9sxVgNwgiamQJFMEESPCPKoEB8YkHuS8QKxbzxBL0RnFSla/vhl2ui3OAUcMJzRz9MWDfCuRNvW+ISvvq/7t+nxu+rcBYs8hCZvyh0R5kg72pQGb/K4M3y9CeboGwLljk9PbCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2e4c478d-d936-41ed-be79-303f1387893b","name":"release-2e4c478d-d936-41ed-be79-303f1387893b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7dab9085-4f39-4217-8f9e-15f53a50ba5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418591313353516020124170313034044437455130199709434270543394333193774437528587814964310130983274409386875586192964039024483168414033204911231815953259444581279559825453583932798736136875876869021466014195559989123902263729133505052427941282789593494502651126915454877485625386235136667334999","osProfile":{"computerName":"jianyunt2"},"vmId":"1621b150-de12-4f85-9e4c-a70e4b48a17f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA67bU7vtE5l/h+QP64jGh5UFnGbU/bhZr/V6sMPHgxPtciwIuAs/IAvQvz7MjuAxA1nbFaEux1CW1/RCk+CUUXoIcfdjm0S0iAIH5pVx6+iX1azXfk51lSFyPiJAE6XoaQXyzZP76pxTe6+Ld1G/pWbT8I9Jk9wHO0+X2ClufudAkvQYjt1y+EIz2Y4slXsX4kD7qWWe17HEJDuC6jHdwHUiW5lVQgOvy3qa+zBPf/s1m+yFkNUXtKeDOACN6wLUyHL3kpgL+BW+7EeMpUrH2pKZ8YTTIQ4Sjjoj0IPtgQO2A04vr7nFC07uhY142Kauub09h2/Do9Jazd8vDF2jUHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9c5f4e55-c544-40be-a685-e4ebd85612a8","name":"release-9c5f4e55-c544-40be-a685-e4ebd85612a8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bfb2da17-f7d4-47d6-86f4-6abbb05d81a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41846314608575231287493719152280821369237213057649755333061877530837252778618857761997568598809942558370916067958300347125691087751230828412534635018154468104058344425580161813982980655372846762871190554443829424910486728414846379266204125521992632017725261844649","osProfile":{"computerName":"jianyunt2"},"vmId":"fc9272e3-4496-4de9-9a44-394c4b1287a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoF4TZdl1Zn6fU03vSGh6fgH3iOJBL2l3fGUbi/1ebQltU/3g4kEEColyS5h3BrueHtXML/89fcetl7j2T3MY2q/nutrglrd2dUR8yB8Pd/0p7u+cQ02FZmozA7IsKoXXzCrUZGfAcqhsA5xMGrmvO+Y+VTVT93OM238QrJeJe9CDH7lL2VPkBNYe/bPEbpcWJxpiQgIg18NNwY9wzyPSWucLZw9pD2LEi1e+dGSKn4cKCh/LFshJ5z97kVXTJBPOm8kZsJBMLi+tWW50aIioAdP0OIH1ihvaSzfzqtK2beIdIE4yKUhO4EDNpYLs0xC4GCUZQkrCHF+/i05Yame4nQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e5d82d11-5781-4015-8695-d50c0490e6cb","name":"release-e5d82d11-5781-4015-8695-d50c0490e6cb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7522f011-25b5-4cd4-af23-4c3529833973","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418276333092592627526147726516882854339507154064429259728777073695726690146961722678844193377608334916026162540096558974335310999455589347875824743385314819462069826877464459833737430373415354842112112153884528612105248842915641088737258609112866883679628133604","osProfile":{"computerName":"jianyunt2"},"vmId":"c05be930-4a24-4a62-9a20-e35d6e7bb60a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8c7ZMGvOBdrGP34BcCKiqTiGyhwyhgKqcOaFZdNrdmDTQm4a20Sg95bJc93XH0KIKdQR0v1FmX11jimePm7EGNf2j+iLPpgUTfWGkqt9Sv12Z1JamRdfmRM9MHZy9dAhlety2eZF4/nUpWboL7+1Ij4P8KKs7onGPf6AChDqn58tXV+w98mIQkdBBkxdl2KSH2GHSH29f5WVrlQ7iG4yxVdz7ur9sF1hIXxUfSRfYkayh1btUxIsNhJY7//FDGdX3BscRon0To9xLxXofh8LBfbRDn+HTFkfAJ4QeRTdGKLSktOA8Dx9URDMIQXU5pVk3P/ag06L1q9GtHo6YZVOLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-49feaf5e-6afc-4cff-a589-dd81616b58f4","name":"release-49feaf5e-6afc-4cff-a589-dd81616b58f4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9e659248-56be-44cc-9227-44bbbc30c74a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189246131921435932703220464654552074398596152413868784443549146929491978036979608372354556322909887532134710188909772560198504770249531856463654922925123058552836197803318222346102353593831925635898346912918868737234161955867529764727735244213618","osProfile":{"computerName":"jianyunt2"},"vmId":"b6834042-eb22-437a-9bb0-44ae68f82cfc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ieTC8asgFeeN/ZXXaOakwaqxw8NOaUgNNKTAoPzckfLOVT8M62IsIkUYlh2NVrFruSo7lZOddtqhM8DfyJ9CbIeXVjDtRgo+jVRN8DlOsA3Vm2nELWMi9+bzHGY5CkprrRYXziyJmDPC4DX8Shwmzkn2Gxl7o4DWF8jM7OMECfQwPKDdccA4MZIT+mQu8a4l0eE0bx8Ypk+EYDH/jMseB0sAF7URryXU/EddLOH0ojc6jMOARBegydfP5UnlwzNpaa+2m5RG/Qnqv8pGG++i5rl3sG27jOXdIi9LRh0VyBy71epdcERAVyWsnQU3O6TzrH9AuJMiDnDS/Rfn4a2hwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-86fb9521-93d2-4eed-9fef-ed498f531c52","name":"release-86fb9521-93d2-4eed-9fef-ed498f531c52","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bb92417a-8d87-47de-83bc-b390b14169f9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41891043327992378162167211070508518503751506286545619326104582901533614541531219642294607783123527194967499538497067871387768432199619561178298909232540137575293504227448588910839767140104676808129469910222712469195882917690777844137668187631788205920859892203107983694495541340615292519625612855024461165937556726","osProfile":{"computerName":"jianyunt2"},"vmId":"a46f5c0b-3f3c-42ae-aaf4-04bc2731bf86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAslxxiDwTfOep6+5uLD2bKr4zGIwm4MXc1gyPO1TG2fzhIARNhyvjuzKpeqBOncXHvigR5gX0xvyG+oBM8aGHdddSBedcb+blTBHaqqTx2DS1nZw/gvnq4qxa7gWaoY5BEUlP6mjeZqklUL4teFPuwXBKPB4tWnjrSRvOQ+UuWin467TA4WYim24xSU8JG9nLoZzHMc9W3X6jZzGGVMSDyO9TpLpsoZASgZsvI2pNtHzh6hUK+D+BlK2/8HTYUmkWtIIpxyZ9K9tKQlk/QVyrLLWYghd70KQEcAHkF6tDPyMnOLXunByBL2koPBpIiyf08yrof4HUjmsDG6o/zzJnWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-eb998722-e625-4c8b-9d06-079de0cb9e10","name":"release-eb998722-e625-4c8b-9d06-079de0cb9e10","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9baafaf4-7a1a-4b83-894b-ccfb6aab754b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188781106053762155936275004616573953414300695840175207281744372379382839370955994612950219776774526572606386311329143716112893107236543797409209041659185233253653254727499899253858965741884416483280548819952780391321862274113276612671386197853879766123081381545826056817","osProfile":{"computerName":"jianyunt2"},"vmId":"52c7cb4a-0395-478f-8bbe-e9ab791c3380","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0kdTzTK7MklXx8AZl1j97C18DkaR8JgL+e6hjYKStqEJHKNqo5fimi45dDYbomuS2ZjnX0LH0h1J2Su1Aw/v9vrfgt8vdXpicuuaBE59kwBQGDQcso6ztrenR9IVFs4F0eWyZID2OkO/8djSe16hXVDGZXEhXci6mgDt/nNtycko1NJ7SDiau+pP1x47O/0Mohn4NVxg3OYWMbs1XExxBmQMU7D2Bo3Z7qbxmYfyBfRAzeZ3a5C2zU+JcrAnCxS33Ub5npp4Ad3Ulf8N2LZXFmbBGAf4bMUliFNGjLfJuWkHy/OSMEDiieP+S0yl59U44mB+ok3AMkmQzpNRwbkMBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dec603c5-4c3e-4f35-9b15-1e316a75d59a","name":"release-dec603c5-4c3e-4f35-9b15-1e316a75d59a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"318f128d-7bcb-4429-a685-6f74b750c384","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181372603318451332979542006562363357008913950080837751449312696444795341834627960152737546241116333156112397246472715994553572691514832265847909035662956718084838115666016417123251182369647668392142076531568037322020681861519086623703767055455474398705","osProfile":{"computerName":"jianyunt2"},"vmId":"57be0585-af96-4839-b309-e8c7694300c7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwTnZAUviFSzqnScxmg76pMQrz3DXScTfHN41ggt9DHGdjyW5Rn9Chg3BIBeUmShgwnYpCOGY/+xa92YMPM+89vqbQ+CkxTii9OC8CEOPTGPcGuRevrjwb1Ukv/jEi4i3cU1rBiAoI6FTibuGe46h15MegUED6Ur1pDVmG6aO1oyz+RHLtQsEmENdUv8QtO9UPUNekg7b76pXcVOiAD6AEdZTEo6D68593Ji4a/w7s7H8aoz5g+72jygI6/nWb8BPG9kElvlCh39rR5fIvyhhjMxhZw3jzTO3w5jAbcepPZpuMZa2k/XjzgmIc+Vp3EE88Q0ELz7yhwxjStcjJDE8pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-43787be7-0a4f-42f1-a471-283c8a02c418","name":"release-43787be7-0a4f-42f1-a471-283c8a02c418","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a86c6d9a-d518-44d7-8a4e-6c013e30dbfc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418752931131702413845115732742450031889141070555117460277951323397874659375219314453084208506067974269361549755130903769657873001924981062631985558197711039195477712571607567235782731432192894051413815340367425103168332773495360722017257","osProfile":{"computerName":"jianyunt2"},"vmId":"5af63fc9-9ddc-4656-9dae-ed001bca16b1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6wVWx+wCWTmzSVnFPu0/AG1rOOr5nYRq/QZ5MKX0gP7qJmK3btWxRcA5guoOlfWUxAg/zNKEfjRH5J2JD9V33bdZiTUqyg+99/J2MaGzHbnG5OBR3i5c3yYapawZJRf8OuLQAZyD8vNAtQSIwP8Rh3LY85jp9opQgN+CY5+9utrSmWBhUkSEOvevabo9qqW6AbntMv9NEknYHL54w9WtZiXmfUgh55sqRyY5PFIdMo9vH6fq7OZ2aZgGlcL0EBRnUKYGncCVzGXNZBOEGhR2ffFEws6Malau7SagnwFCqw9cXHhnFt5jbPFM06bC/K7FOTcY5qUzJmeTE+G8wa/RPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b5784e5c-fde4-43b8-ac19-c3d4359ca4f4","name":"release-b5784e5c-fde4-43b8-ac19-c3d4359ca4f4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"27672d18-1479-45ce-b2e6-7b61604a922e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418583242345349846361017003904135539649515914520115464583712791404620827332669845817618713371381531402789365153434141688453155441194582936233014195721648609313188535955991718532306795680799181166830602196472314443723832797623658888783894112039663974980853847696914117836238484609143624427560422672286147","osProfile":{"computerName":"jianyunt2"},"vmId":"4261468b-168f-431c-8218-e5addb008b26","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3UbiiAjtfZOzfBkVhjXhU6xAsOFvi5+/al5lMCyh2VVagSY5RpThCId8S5rkd5s/dhgr8pYXt07EUcZWAgKlV2ZOFaanLzHVfpKDkQcsBZ+DvZNv67+gXXj+J3Wfep9MRQVI5YYGVRl7ALCGwCbiLktY9YvB/c1xBepDOLvVMF18dv3DNeG2ly1S/iYXIdnPI2DrHPuG0wLXiyELrLmdx/PN6rNvBjnUAxAkas/asn3jG5PPaT7eEoAmKDOy6akoLxZAMbdxeaRatQ5ruL/NY+prdbwazVga8zGh7TRu+tOS9IcpEZ8ENWl4UDGhNYMv115Ijfwzthbsw85PkvIs9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-02220c20-ed23-43f6-adf3-cad25352b855","name":"release-02220c20-ed23-43f6-adf3-cad25352b855","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"225c41b2-c94e-4623-bdce-96ad2dc5bcd5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825093132511661024850815524901477477820706544419237541591146509158285373532784544413192718683959304927872306545299311139936274152179963674381651234015764351365633111735975096734939844385094429867441895875365663742592897651167884093908198411961940459332351890496345420755468744630362450616968899820741213393","osProfile":{"computerName":"jianyunt2"},"vmId":"68ce4dda-9098-4561-bbad-28b20837bb24","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArwwHt0PPWJtefg2FeND9u0/ztMO/u9EO1AAqCoVrq/Q2QlcIVV/5peCIvAW7kfcKYznVXpMNRfD+kM9C0wcUL1CLEsTNyMxzppFYfsE2bR9TNHP9UwIyg8zeMtRd4sKIY1jcABJaORAB4gKt9PZTQFJzqzW1VkheoKCMtG4pR4IO02gZphkYxO4eCSzz3fIevY4F8+MsthEB5qOLF48LwR75sTYNt6hfY67NG5FLF0joRk7+edM4HCCLgd7kJTXe/WMG+Bw1n3954uUpuqEZD/Nm6y1tHeZTzi3MKylutfqZ/ztS9sFep44oOUXnSrA7TB++0HDgucKUfkluGrY9FwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bd9032e6-87ee-4a8b-a2d3-a27483aece62","name":"release-bd9032e6-87ee-4a8b-a2d3-a27483aece62","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1990a421-142d-4b49-96af-9de7af204697","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41825934028129370759942605983385996614816781572982169441244464011277555743944028651656813443637364386830562344476387360148006144498451968063620696031108743720010755015747081631684449548151068668059308022528165791000282278135858677460979932177413464661653860993807512197832008685904611354752653878735597616649","osProfile":{"computerName":"jianyunt2"},"vmId":"94959821-908b-42e9-8cef-8839afe6d497","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsUrX7W9Wxmyqz61FqpApHEf0AdY7A9Fy9gzo48YGrdngAdjTJnOevzz6jQb66L4jFdFAP5DU8RXAZXrzVmMBxkc01cvgAvRzUtn/elqkBnMvVPfvvBlA6w1NS1nIggkFcnOPO9qIgWUZih6kyw1CsPxeYJbFSMBHZHjF9VTv9gAXcwPnhh4SbWGGc3UQnAGq0F2KCcmCiDJOj/Q8vRy4DdlLzovZR5jNnWwe+q35bp9+PIZ+GnW1IIl/ifFc0RaTfE/K0nzNXmbuGusVGr3JTR98hBIQJvoF/8HDtbpcTE1tCDpIcmu32bV69UaPYCtmSqQiXDCmXJjoqHCxDsezcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1dba409e-ba96-496e-bc69-e8e89ca9f547","name":"release-1dba409e-ba96-496e-bc69-e8e89ca9f547","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3b6674ad-f9de-4363-af7b-9a281f022659","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189240794147506686687841167781431346861830752214904615752513727349260990075293911315953333356535779043533450692291375470450636809997928247114579953779551658993561939198374187328280447716503520724288314294630775963452598615256497965926941424329498562463390676377673457863884564275941564923299","osProfile":{"computerName":"jianyunt2"},"vmId":"1d9d43c5-9dc0-4d19-941d-92ffc42abc03","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz7SOZHrOw6TgHuZLavqrqwUDry4rHSzEkCgBIi29uWPP9Tgr0+7ZbqwyvB+Lxc94Z6ZEKPaHESOssWxggPKGJSKcm4/z7ailSDqKsR326NmoMJhqkHguONLrALcXN74ysVKzCdNFsC+xuBWNRRvSjhZA4HLw14dLkBUbsj8zYpndDok6rpwuQrtUj8MbyGLoZe3GRHaWgEXLdqjNv2me9SlOeoUxGWDDSvL3tuhr8QgAuKxiQLdfrvt/yuGVnKbs/uCMvHi1BDIsxdLTg7bzdNzaYONBjZzFt+Z7EmOLQbpy6ryD6AJjqeHd5jI285aDwXYaunQ+DuNDnFgTuQjV7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c8d10c62-e4c0-45c5-bd88-c727cb5c4d01","name":"release-c8d10c62-e4c0-45c5-bd88-c727cb5c4d01","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e6006bf9-96e1-4e73-a963-067a9c94e8df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182571300737641340394365219308336960789063732331385679813727019049643237455877531942025721028237978916555682257841512720728858769055575498874998917641333656110366178695809222091291513167693915573912647696160102086867360332969612119633267025791688387273338953199204586836786882973615855147929612192423693353233558","osProfile":{"computerName":"jianyunt2"},"vmId":"fe2a7369-7765-4a11-95b2-88ed5cd1c63a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1FHcWVoRDadOpQqh2E47j4+GYWMnNpLMzrWQY/+QAfuxRPIwOfOIyULK/imU+0XYnxdYrKn+/BTWQljziJZXz1us5UkGZqs23y7hR/y9RYe2idX4BMP4itbt5o1BaV5GyeC3AQICZEz8BLrReeaIzwkuiyYz5HLDnDQZBUwwMcvDUzZFiJjwYwU6zUbKTWy8IEhYEgITqjyquMiFgCDLKtuQ9w0KfcemvFH3tOTYidXiwJNkBjpQr/S0eazD3OGXtfxV+NJ6R4cLsq3ja/dQdcadDQgYeluZuWLmavTMUnoE3zqjcAXtHJ3ZsbHhqNSRHV3A/Ly5el1zVOOjsW3icQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-15353ba8-cbd2-41be-9857-a47a31887adf","name":"release-15353ba8-cbd2-41be-9857-a47a31887adf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"da92c29b-3577-4060-af2e-59a1bd0c39c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188120756125228096582192097378038651598137814458836004076562311678364294893266958927738558621037213163344732490170923280693266084611315882703044319671741523108399922784336918017923073166215530842847578309826424007610923590944286828713118485925598473565","osProfile":{"computerName":"jianyunt2"},"vmId":"3fcf633c-4bec-4822-ad2f-acb045b15a2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2SFGP3Zpkz9uujal6P2gA1eGVAwDlqGa2bLXt8LWIqnkr7HCbclszkoemaFwn58nvDyyCbGKnPJVRRWzl9ZIM53My3bkTmCHL/xlgFUSbG5GRFICRSz7V4RZXuR9bzRLXQr1fur3GUmAiW8Uy8cTNz6QDsi09RdubxIIKu4w04LUwCQ2jzP0gSjC7oDEVz5FYCaOg8XhykySzZ5YB4jKIJ3TjT9qLYic1ksjjQ4vj8sdzrAF27XZeQYgZa6W0ldksHZbxyJO/0gCv5WkO28WXXOdtbU4eNOw4xk6bogAzDYm2EoR7fKluoKQAahfag5t4WoxoDuLlAffBGlZex0pcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-45bb2aab-4214-4788-ab6e-e336a9e10675","name":"release-45bb2aab-4214-4788-ab6e-e336a9e10675","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dc98534b-61a0-4922-aea3-3dfe294edb26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181146296234319471546832419366181366599569692871272474698865851296400577107234176724572359220075269119213464854531568330906265124084624519752578415478832860537589745835298374876573238903722471855115944490444837499807323233721954461360642159500564071567279314699749017233171568516157065709467021767124733527454780246882681446","osProfile":{"computerName":"jianyunt2"},"vmId":"5d6eba01-6331-4227-980f-74b74747ca0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyr7QaN/AATW+BP0fJoIwBkERb0WF7d6ajPRl+R6J5pPHfgWMYZOdvVj7jaYz9UoxdKfx6MfcXURrmCsm8rFfaXH6wEBcejs4TFbV8ebG0m8a3mdM8eWTztCHxe2Uj/ljb83UNg5IwU2NCxa3BqZ8Gquq6DPwWO54QF8xFv62/EXR9hOoOr6To4DRkLIr8NlXZTrw7qfZRElOCKT+1BLGZm3GFatFfUpgfO5X/mhyMuRB7PuPbyRyzwX15oea3byZfQIKHw2pxkHS6/PLWh0UH4axfSVE7P3IQSuICGCxEI69x3Kq47dPV0n0iEkCxZrNzF4kZkzh1NLK0OYY7GIcwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2e224b93-3242-4082-8e63-ec5143d3a0aa","name":"release-2e224b93-3242-4082-8e63-ec5143d3a0aa","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"786f0630-7dc0-4e93-8cda-8f010a2b0cd4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187431568568281488492186052703018932176074687396962267698673287015642249769621480599444133466449359041876945557250894637677294659816008474541287458941183680127377982831240581942972046875607289487303854393666794316537463597493637","osProfile":{"computerName":"jianyunt2"},"vmId":"d6a61356-5aa4-4f85-ba15-2c88b2a647c0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwrdA5hh4wzDRKPVKKHHUTGTTh3kt/P6FprOaNIcqRZHdr1Fu7Dq3qc0Y4Id+cLgqFEKZQUUJE6mmlCyjfLxUuv0WSavOuL6VzP5FMrKNLlsMMEZ1M7CIa4kf7QYWj0ynoMDWLmJx60b843d+LoyzH5RXXKO+xaG3KSQi0ohvUWvlFW3UOmRnYMgO3qjAsMuu2CHcZmYD4F+Ug1k3jLFf3SeTZ2T6kxGtyU8Dw9I+d9wx70TApYDndIxfumy6GC8XmMwFTLh3CdvW8XNTwscsFajGmvQi02lIy8+zZ5PoFd2x+stEVyr8SvGMzt8AAiXjwvEOqEQLm3pGHYv0JHYJHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d39175cb-7986-4749-bd43-1110a07eb4a7","name":"release-d39175cb-7986-4749-bd43-1110a07eb4a7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"efafa5a0-312c-47e6-81fc-e91216b4b419","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418151189291059336360608058417161546926545880033913722211561656186972117969559412045803743851834543755258789809427612364961734474789445845432524458361047354327293005758056126885597570292594747517491377439837307913176543512573563180926174285841041531774513033102471457223775988393238","osProfile":{"computerName":"jianyunt2"},"vmId":"c27fcdce-1556-4ca5-9125-26c46282b9fd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwNJI6sqqj2a+ydvGDHGdnCiXT/F6JGqiwM2YYtE1EhVcfMa1OYrRqbN6WyAYjYSdS0vl71KFBfLnP7am062GKu75Y8C/uh1K3EzVahFjsPAHl1KyVIx5i13h/Mc3q5RA0C/kkhDrfBArA7APGb8kk1UzlItrKLGflOyP0NsQswlaXzemuadMbl6m3o4zlST7E7cKmdrFlYx6WIjfBP8hqfU4WOc4wpJ11pZ/wuKAUeOAlNfKVdnvy2LnWDkqDGKII8xXGfpbkNvfeApF0woJqRIW/Pyl4MO2OR2GwF4S9ODwKN7fil6StcQQhoSKt+ZVosKASGT15M1d3ysF6CVnBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7a647458-031f-4460-accf-829f405dded5","name":"release-7a647458-031f-4460-accf-829f405dded5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ca6dea61-771f-48d0-ade3-15f8a71527c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41819799659779664648550891015299550260623089797941152488926855691778827876607636120375996498624597596621446735878034405760935026360315978912391319923561118296922277016736468518044914686930394169395487242026318994352688750257977546230486623941812","osProfile":{"computerName":"jianyunt2"},"vmId":"318214d4-8869-4fb8-a497-b9c1c09c3949","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7ike2uYu26ScuxbaSvMtVths4gc8QduEyWnJXCb1PIEiNlCLtPv3/HnY17SVFu8TmF0DrICr8HIikdrHsMhx1hdiTTwubp46sPpdlut3Ib7Vyic2JOCU5hoDjBtLL2qYYsOowR9t1yWdDSGLqTRlKfVHIqCpBqxXi56/a70cy8DUhpMxIR7E2KonMBElR8BGyQOn9ghSRi+YgEHOIoopYcbuyWTtJs8X+htu/qb6Pl6yOrctYGLdLRr8PQpRy6DZT91ybAdEPcDN2gcnWtwqOzcQYdsJgwJ0/Mc/uXT6KSQ3qB0BzlUtE3N62FgfnA4ehY47ff+tYg0MnrnyPfwOWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-caec43a1-978d-4635-af48-0764d142ead9","name":"release-caec43a1-978d-4635-af48-0764d142ead9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5d91ea33-e6c7-45e7-8890-6d95c9b92828","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182858223813361104770082068308107055238651340068863614449823411925903379964423318723295489468792944199345328497897289126373224670149075968224495621662631719167612935086432492607674111266103768951445885290531716401479566239314619094355930877668992433651575624579873418","osProfile":{"computerName":"jianyunt2"},"vmId":"e0825311-306a-406a-bb63-24f1581dd6f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsIUo8lE/lNzHVU7Wtw1tZPzMU5pnF83ITWlTltl9eOP9/zoqZ9rqfsdDjHBJMh72ESWwb2Mm7rq0iJ6P5DwSf/7Q+Sc23FG64V/QVuOqFzBOVl9Hroc2hcGY3XFbTBojSuEw+Obu1o+yEpHmLGAbcqlz20NqTWkrHW7s+4HpK/FWQFB+3Pq4lkO0xSkkU/q1CdGFALnKP9Wgv1Q/i17qc4dCBSgXzdQBMy1mz6vtmNCwQAHSRL5jWkkc9F01AWwmcYZu0mqwoZ0z1ublIkGQB8Kup81dOrfLe1qYHghltYfkl5ZWnjc9EELfY4+gJPPdyQiPchwX98Y0/XllR4yBRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4291364a-9acc-419e-91d6-cd6d5bf1ad91","name":"release-4291364a-9acc-419e-91d6-cd6d5bf1ad91","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5d428b0f-df2e-4912-b3ae-169aa3fc76bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41866769014713782171675986876073215710443645999430056785744563759864375609332735250465337791634503835011042795513732031163328673972754706255303877774034987114431445191352167300668353019801216802236114423937541973433366548018333609538497395862796141425579083311641457307056","osProfile":{"computerName":"jianyunt2"},"vmId":"c9c44f14-fa24-4170-ba8a-1fcd58713b39","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnxT4ExiBMcIPx6zDEAuBEUpnCl8EbbWcZWn9gBcx94A+CL1KE2h3jzZRyVkFWJQnuSPs9hTyNQJ0PsT9+CUWvLB18wqi6LRZkD5ikHbhPLkBBYFtHaeKxg5p1xfirNxtd+sX+uNRkHlw+NA10Eq+jIGxEE/g97jj7bnItx9ZgeMfSYBvf98p7FJldW2xex5fDcIIgu0UjgpTj5YC2UEjgmnvnGS4rrX7hvHuUBmwLhvVA9uGcoOLwuDhY/lp2thBgaWqyHniEM9EPZNLXLOIqhr2iCwis9D9LuqjYq/OYdgJSB+MHgYdtFMu2GXlc9nsh88CuVWGkrUfHM8k8ZkK3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9d0a1bac-b33e-45d1-b15a-e2fc0530e4d1","name":"release-9d0a1bac-b33e-45d1-b15a-e2fc0530e4d1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ed9b6418-8591-4b36-b55f-196691ee9b7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418334316069829617213685005862787734073049950331892763482997286146355186788557867081018611315824828141416663481699498122368540293597197773695021773891070774046574724068550541465358608406887480856029426356302607929771378945752377014","osProfile":{"computerName":"jianyunt2"},"vmId":"8238cf38-c61c-41b4-90fd-35353650e63d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvN+r8z1Wt2AfpaffTpe8158yikkfLNVADz/tkyR/3JaTaBb/gGUCv3UyU1mFY/GxQNIUdZC4qWXA0rJLr7FZDsphH87eWU9skcwVlIBQiNv1y0ahROCSVM6iIamUxMORwblhiW5rj859P6nVkaNDOlc2/n3NjpR8AHoUb8XU7yEtsnp3qWgB3sICOZBRlFPNx33W6kgjJ7zVZoGR5tY9dAL8VK+JDk7GiKGJ4c4jrHLc+Y9izXRkNF9qLRXXQ6VnplDu8+ceYwN5P9IwU0Ledskds2YcNvwQ8I3MsD4iiXqumEqRptlSgnKKVdWSntLZI9nSxCB/cQJr+TXURDOMOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1b8d8edf-d43d-49b4-a48a-bd475c4cb7ae","name":"release-1b8d8edf-d43d-49b4-a48a-bd475c4cb7ae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"25f949e1-86f3-4a35-86b2-2d7713530284","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188436684560921206428829351268395248987256398450594998152020805890971818239372403369606923318802544146376898700728363616851613662507017453442025442428329721234100817690948126103647029460285064539535316154062051527530666905920631879387286","osProfile":{"computerName":"jianyunt2"},"vmId":"b70b7374-d7ac-4be0-af8a-c9d2fd6833f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvs8rkt/gDvB20VukzbkgNF92XarCStjgFlguq5gmO+wIoCUPaTRFSPqbZImbBrGDsp76+rHOQ0YoQdqppjFAo3AvORBJyqC/AdMWH+v8n0UoJ47iTWDP/KftB9pAnxwJuJlMlh3YxXHH94pgDajqHRkEqIv/MEL9lEQFi58MbDrRd+V2Co/8nGaTKEEvsT0g/eAC/rFySXlgwoPy77CRI1C27epZo2PTS+0BB6ZhCU4L7kA0qXPEfVAp8QYjJ3zzRhUcxf1I01YLfD87t17wHnlCkNPB4IP/t4tQu9MlM+GO7qbtKcX2f++ktPkJr+Z6zZX2v/D9BaUfHcj31y12pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6fa929ae-bbfc-4b63-b822-cf8a0a7fc1b7","name":"release-6fa929ae-bbfc-4b63-b822-cf8a0a7fc1b7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"313fffeb-824f-46d2-9969-e13a221a1008","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873562798645292082578591834839329453023445567852759066348695683284206648427756398591228483325419939247247485424851209523487333221081335130746162971487167150596717921202167163866239887821516893609516156011765640594448619218734045108177","osProfile":{"computerName":"jianyunt2"},"vmId":"9724fca9-41ba-4790-95fa-9680a6dbf9a2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuSmFphlibvq54g1CwAqkjec1KSXVUc4nUIpy3OisU6F2fTl1V06qXqo9rQYhZTiIdS/hB5fRAXBuGHn6hyHm+E1VF2jXuw5+js2RFn5eKYjgU9TXo1Jo3DRA1yYAY5YvaqaJZe2g478GNW1IgNQ9AkEo6XnPecBzpT8GOeOJQBRWkhgiR0JPTbgsqjQCPelesIZQGdzxDRESdUnV+B0d89CWzXqgOB8IitUOWpEAyzAFAPc1VP02e9Ra4Nl5DMJvzHf+MeeYlDC4Bsks4ELLpiC8BvXkEvL8J1wGlwtM9xxpc04x4BSQaiAQBBvJsVkRnkCuHhzADChbU/Z6dWY/RQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-27008fee-7d04-41eb-8355-66a7867ed8fa","name":"release-27008fee-7d04-41eb-8355-66a7867ed8fa","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b8d52fce-7a11-4ee7-89f9-e23eb6eedf26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41832648686182666247922457696320129698435956657152779999339362908778656276551432331316055926218497838321877922854212708531329214187765640991185455896981007352221665552834214704421349841549724946268404993124492374903575178649923369409452729429710346115601300475694924","osProfile":{"computerName":"jianyunt2"},"vmId":"cdc12305-eff7-46ff-8f1e-5038b764a19e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+C+fi8Q5A0i1kXxbpB8PJm3fWULeS8bJl8xDNZKwmdWsBhBifm9fvYxYaYacUplegmfyrFl866s4tfsPxaCGQmAjiHk3pQkcyJT6Yh72JadszXqOM7MkMEY6/HzhFfGFpI9UDShRKiMJ8dguVLs0Rc7VsJBCpsAboEbFqDmFp8nl7CNrd4+78ENMqOKZl3t2ixHA2YcVMjqmXkMIcFUguatOK6lRo3/QkX0UBHpZsNmSHbbXoIOW4VUbcznpOncQj7f4nLbfeoiC3y1uy4NTx37CDcB4mVToBvpYgEVUrXiAVogaE91n56eFfhfpZkZEOLoAHyI9jHihuYNhxJBnTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-86260fa3-a424-40f1-9b11-20a7b316a76b","name":"release-86260fa3-a424-40f1-9b11-20a7b316a76b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7f8fc202-2047-4761-be52-76825591dc39","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41861448652895234678298148760121551982474756361714488743484730325296184581392793887387916148130925258613164595454785246954027840495999115282654767298768662388521192324861366382653551172029257796903507988570344502920557471577690568489583181944724497595932154579613258425127","osProfile":{"computerName":"jianyunt2"},"vmId":"508e2a8d-c59b-4025-846b-a003dafe6c9f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzNkWBNkVD67qdY0MKggEKjLkeDRFgZriAhRRbPNeZLG0Bi1V5YlrkJ9LXr4pwc+ljwBiES/4H8iqQlUrjCvhOuMvYAp4MAftNiC4BUfbTmXFkdJi3cLlZnIZXDsVvkoRpUel/clqZsZzKsUy0+VMJmHZJJX5DMbJRRbZYD66AxhZj6jUVwymM6ey8eiCQMfl8/b4QZUKRiPPfoEU+cACZWOFVV8Xn5sBEkauxZcX/STVVgE46jopPmIUGXJjU5w76Es1rSO5GBfTo69EfOlCYZNIO4WnyXXZ/8qsU2zmoudHu3uSOXJSGcSpamZwt9YlhxIXI7eS2oLJCaW/SZ/pRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-323d2e12-fe6d-499d-b99b-e47db54da460","name":"release-323d2e12-fe6d-499d-b99b-e47db54da460","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c0f3f09a-11fe-4da4-bf47-842d480fd41f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418643070812978807897946904824362437204078546590212403578036832529992038795005717922324747608094639298843090644881230194441903350645181217451192128421165277326309953797621446060289482129257950832685500345992202608536711401663759694784833083186124936062900895184973646","osProfile":{"computerName":"jianyunt2"},"vmId":"e3fd81d9-e555-4ebe-846d-81daf8d5ad7d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu3/uKi8OFIlpXu2BOWq5Pzkg4inuNJd3RohFhSsH6b8e8rdnSYKf9z7LmLvAvS2+/6lHenJr4JfqhAN28Uly8dEvgMEhjSReV27koCK/7C7Yz+7hSK37dnXi85lQLV8Umxoa+lDSR+YDj6wEtGgAspSoHgAo8HaeJ8MThi/GtSMel8nDH76oYoeIqXf2r/9842br94n2BmXPuViEGZmH9doOQ1Vh/sQVV0lNCxgGBjGdLmqw/YDaZnk3Z0eGyj5hj8xZSHlZwziyxFFxjBWwtiUyvkNzvY1uRRpQMIANPfye3RJY3lwSdlsT77N3YZXMPwZiWcEchB1RKU4K4qBjlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9fa2ec97-4eb3-43dc-9ec2-b89b1773a0b6","name":"release-9fa2ec97-4eb3-43dc-9ec2-b89b1773a0b6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"771a5096-5fe1-4589-b091-03e604bc29e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41836632051662557373422772585022135250170997465313269595066480495338444235442190675478537251210862151849373747739982189133915813474499872281338165632335948462252797552343862156867662019563823685551713242455191306251818191543088359878466685182194163108221260424621906140986558622523298737537755","osProfile":{"computerName":"jianyunt2"},"vmId":"7251222c-74fc-416f-bd0c-dbfb8cb861e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA29qT1SjeXq/CPj0zyF+uEjNuzM8xJaTPFU5AXUbKmVM25EvWgE7JSf11V89qi2h+npSOaNH6J9TB1OAwVqXY2i5s5akDjiSYYtIK5wILc+uX8O5RbX3rKYid2PmwNMH2pQkvFw+j/lw7iGfF6GkacIQrwhOINbI2Xdwa0d+6OIqAZG9ZQiqOEhF4uD9XNLLxulfC3/WLMraMO2Bm+y5kzWBKs2RsJ5zE/K9Rc8IMsvppt1QVz5F0XVf2y+oMEJ1R7XxXRrf7MtXHv9exeDqRBgqW/DEeLn8KzIPyn7FNCWgnlWpRER/csu8De/tWTuV/LNg2QWITXjX6MRnoZLi7hwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-858d065d-f70a-4ff4-a1e0-ee45191af3e2","name":"release-858d065d-f70a-4ff4-a1e0-ee45191af3e2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2ffba0e2-f2cc-45eb-816e-6345e73968fd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41822965932956761619831228693324455625565948867923874395858530636683585229481967183669346512886505151349156798485243012735523429732120643933648537412819822562758527288342207781510870176780966475719155692684125394871697415740593886984178434534525629","osProfile":{"computerName":"jianyunt2"},"vmId":"883065b3-5898-4e75-b5bc-44d14e49c08b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ZQWCPP2umnaI450Hn2WFCZpKFqr+YayOC4Wg20N5gFMBIoySEwUc6jVEs1ggUZtN1RqFlfVD0XLBsBnszcxXsd3xMt8HrEmLd1MC3ZJHQeA9h5c1ASgNmwN4ODp4VynOcgXyAl/kEuggs2KhfMEj9aakY027aOfW65ajP8CPJ/DMojtGv3c+QtczRb0wNIJEB5nb47UFcfffGyx6hmWiKRA8uQ/19xdI+hNYiB46eEIACYxJqayzEpBxauFcTh5bRc6c/Ku9G8ghqTV6x3qW1meHfDMuX+IdGWHVvjckjTRM1oIEBQQHsjIV47TpL5Rjr/SXZu520xWXw5QtbtZvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-385d47b8-d54e-410e-b1e1-c6cd5c712787","name":"release-385d47b8-d54e-410e-b1e1-c6cd5c712787","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0b5fad46-510d-4023-86b8-3c583bf75ed8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418744752276373140432035270874856230953476856886944140459970808359366218988900402064436040763410766926528168607218780494108114597032244360531790467506426755262773584250090268809621327442669363498856603338598673648366609150126831071232496253699786951611743212476475398836447455671896","osProfile":{"computerName":"jianyunt2"},"vmId":"32bdd373-e0a7-47e0-bf7d-b11ee3fe129b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqSaJfvNdKgW6XgpyeOQRlz543FLZ4sh1oaD0Qc9dKxazCOVo6Ly/W0oLH7BkliHLTzJHQRhPPVZQJOPtkvUaIFPTfk7xQbHyJAA/W6cxN3gagsWYgl6mC2LJdekxtF/EU1SVvB8f2mIsHvTnAHFgZ19cSo5wCpv8tlbT41NtZy47V7g3y39R/Eg9O6tMLElWHVi99BS01xEPUxyJF0+/g/sACqpLUer/an84omZSl+nVST9uC9Taoybw2ySvW8r6WBgAUO3v4krB/5m9zJy1xL6t2obefedbux/xMB0DcSKOdHF8g0Z/aBhnjfBcVfYEwXK3xQ9xUBJotbjNVODApQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-472c1533-94b0-40ee-ae48-da6a2c24dc90","name":"release-472c1533-94b0-40ee-ae48-da6a2c24dc90","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e8f828d0-7e45-43bb-b006-88c85e78f218","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418643723073041985585168852579340266671730780923514234428369580444744945020768327845031563550419521350511266729079221415665803383949760925806214514138739292364288840307145267944579339954646464632186757439574199171789106544769266357942997657690268684828432966727221942","osProfile":{"computerName":"jianyunt2"},"vmId":"4795e261-93c5-4660-8cbe-57c58c8ef930","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4aMhDAAkZH0tBc5n6+q7EQDvqYYFf4u7LGG1ibKvKyQJVgL6wFlUaTw+qIE9f6PptBILYZkR6ePLcFUKZYdLXcQWMZUKmpJUhkt/uO4+mpmx2EteLS/kSd7LAlgiNtoZZ0MThFyjHmy8DNNDftMuRNyJpFEwQQimU6PC7y/fcYd7AuB4kmUlPTIPy5yXDhmLFjAl0F3/L1Sds46LKvIWE6CD0nrociZ7yY7TAzrfMSLrkv/8NksU0O5RvhUEqad7Klvw4Ra0G2jIyFQrDRV6H972A8caTEgko7i2JOhE6ugLnysYb8TDE+OYdJBOE85hLtHeZoWgV+vITkXnbuJ0swIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7103ea06-23ab-4027-a57c-d22efdb074bf","name":"release-7103ea06-23ab-4027-a57c-d22efdb074bf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"68684066-256e-4762-8ab6-924b4f9c8a23","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418774225822083313445287976764514255582540890612581936251159198595545614356497534247205105242055266259570138055249780724758211584228517946315013208890752054186947415824368463392959896606556192051129445594268159379158604843310429376266979403467578712470690028711","osProfile":{"computerName":"jianyunt2"},"vmId":"c790fef1-37ab-4576-af44-082d92d157e5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyBLEv++UWvLlM+ph4/TsPFrib2vovdfLTipG7caHS81lmmRPnNR2nkxi1sPaRFhD0el4H2UwPnsGnolI/Vblp4W9oplVHTUREOm1pfiYek4AgDFVurKcmr8SjAZFJdxWhRjvF8tMnH+QTF1FvELyD4AzTR4iNaqH/bGK/wYL+k3OL4Dhn0UGhTBA8ADiQ3L2HNaI87JIpSnwTzPpRN1xC3VDkAXElhIZ5ZUB4T3MiEh/+8y4zQ1aVZ4LMcRudHzbuJvW5ZEwFPB6VRJA15Hgw6oVi37VI7YGPBO1peFWzamQkcPIVOO2bxPk6CxpazMyAOR5aGBNilK714eSVwfUvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f62f975d-e699-4781-ba00-b4f2d366984e","name":"release-f62f975d-e699-4781-ba00-b4f2d366984e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a4ad2ba2-8ccd-4584-be37-972ed70527b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41896430831852283713218472518613768479640996137679331842073828031299331104571626518737996342424281225796792179151074294879676193893845481437423916982776822415227421670663067836474364041476582344429907375404700906789565000854285036092595327107356","osProfile":{"computerName":"jianyunt2"},"vmId":"41e4924d-436c-400f-b43a-cfc364a4ab7e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxQOiW0OENdhFq1RiA8cZ76M1v8na0AJxDbReUvezrmO7cI4gJgUvIQMhwBCAAEO2wt3LwUIJlUjGcw9p5V+lPZofb+b1PK8uXv0iZT1JmImx5/clmadIuValtomwHqg5CIBDLSRDn+vey/TvINit1TT6E+OObPTkU8wwbO4TiKRn4c/Cn/2XJ4g/WkO/fHYAElILIQg9okYYNOBRpi2MPHJ8CApHIl3MP26i08RBVZhnlWe/r7tvT6c7YlCU+zRumzL3C0fMa75zK0I6ROe562dm/sRtUc/L0Cps0nP8j9XoiuHrShIi/Do2XbfBh0JB2Z+NlDrwMYFFY7inBzRXsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-108f2210-cfaa-4aba-b874-e91c27b17d7a","name":"release-108f2210-cfaa-4aba-b874-e91c27b17d7a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4c938439-8ce0-4bf1-8d99-e97e05cea52e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181752119352469839861766087875792957463361028485348559788876913125844233837347114601246392859831776707997287457381544632127359311171984824117265755889256093510206652904238337033153855733666904505790422002507176555485448364551271278748997740598769354613637473487087973923525096853189927482","osProfile":{"computerName":"jianyunt2"},"vmId":"2b65b5ee-d39d-416e-87c4-d6173da3d55b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxXbhUoRptJx3SqKQqrNg5lJwUi8iRPoZQjy3lWE/PEETNK2He1tHJyCTUQrEwiwFMgEbV73Xw2iMYcESzR8/bH7MIGB6HBm2hzpgRbkzI7dhokr+1A4C1H2OwadDAMeTdaLpZXQOypeOl8xCILMqYGh+goF8BLmgKMT0E5hWldqKvm0tl1oSHToReBHLZ0oYVUPHlcxY19io96O2odYi1Ja1vPKszj5b/iFjbhACs4VM3xIaAyRYN3NNiAZgUPpc2J3ESC+qPcAt+xPdh87jdRKybDL0pGhEgRVkvjBiR157XCNqdJjXNIEZojALF7Mi6qsiaZ3dnAIVRs8TslL8ZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-264ed335-a7c1-42a7-9218-7d96f97f040a","name":"release-264ed335-a7c1-42a7-9218-7d96f97f040a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"928f9af8-298b-47c6-913f-a92abf39a89c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184439593480103652528469088838917631484397950832439458834775992542961502686925594106095838027458157277447685496161019151854949041274840870884730731251349864287161531917072104789190231334174279518169471703587134558689593716293895280817976965438326754538910654226298869968278783224303386628523182423","osProfile":{"computerName":"jianyunt2"},"vmId":"06ae40d9-1bf3-4036-9903-5e07bf4aa2d2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9OqyoFUcVXF/CVDgcofBoyZsWUp59xJamNAaNsAVW6CvN4Tqaz0qiULNb6vxMK4RDV0/NgoJfz3chyd4fQuFzfplsIM30nzzRqMUR5vwMQgMJ6D6dFVsqQ5dgQv9ppGDe4MXH7zxjf0HGH0OSHqY12PtpDXTlH4Aoab2qu6dQfKhxdMrlOAdACJEyFpijRXk0cXPxSJPhMioqGJlL4D0ASo9jq4G9Oy+gvfdQMOXtBATALIkmAqjKIyIn6UFRX9E1Sxv/D3QFI+NLUKYQ/IpfBo3fLRGnarz0A4dq9TQLSkF+WGhnE7TxOm/BbWpBuq7t+uzP7tHRBpxEATpU6iroQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a973d0a8-c00e-4253-b4de-23b301d14aaf","name":"release-a973d0a8-c00e-4253-b4de-23b301d14aaf","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a90ec991-f2d6-4524-bd91-a088deeb2096","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41877433152177857374989949650477538516003155143635219371599883915056452047242161548938169266785504361486146106016935746859307568848672369331802396617754762955087497172208977997825541067641286495882058241617882484799298925850421349926707","osProfile":{"computerName":"jianyunt2"},"vmId":"54f9f242-140e-4683-9ce5-5ce80d1c4911","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoAACGil7Qy885XYB9du87E07gPiHMoLdT22nHG74qUfAnm3Ii83WK9WzWj3BkvFhqluDxxDnkiUr8r2TR8myFaYETXm/Mw2UJkI1DvbFay1Hhfia7F2rKbMSjJaiDkmeJGSV3aN6qmB7Dn1BT9FuD4T4sB3+4YV0iwSskHSpF7ntTqUhoftvp0Jg8L7Y3JidG2K3DCvZXOSGg6FxZ0CWLacS7p6viPBdCfrLXSuAygGLWh+z+M3PSF0pnONljb7IJn9rDItvtQWmbw82vYc3seTWJtcqv32ngl4AK9CObTFfidZbNda0/V0M5Oe/d2j7Syu7eyuTCEZeBwZvbsJg4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5c1e58bb-ab9b-4427-9fe0-c06dc889dedc","name":"release-5c1e58bb-ab9b-4427-9fe0-c06dc889dedc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8ce6a1ea-76f4-4ca5-a0ae-1172422d236a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41834249348799650335184017850581213411218725975033893365199746186746725414342245593904769801692683331326431217433957886603438353576897186281252460854815991581297269017505111687892479105279128508617486439277615171719246415282511693402118732767637490372013035336477562771","osProfile":{"computerName":"jianyunt2"},"vmId":"87ad7c20-02e9-4cb3-b182-55bd99d0f6eb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7gseVw5UdiLRzThV/EduVgovST2JMMRUvG1yfZTIB9mzC/yR4ahlaywuupYM6a3KCUg3VrMMn/jPzZ/5A6A+Os1NJA7630zOjXXnAyLoJRVAwpxx2pS8uU9q0NabBpwKBmj+94ui3Rjj5jLeToqjP4Og0B5Rhj8WZ6lefYzGq4/ZaTM3l1RA6YzmsMHH89luNr7+RrwrBCcjQV0yLTODPwyXGDb6or582y5a9M33hiISQ8iIBy6c1A05BW8JUUYjIktR8T9oJBDgcXd4zm/KlA6ubX38EAVCClovrU7DSQyTH4Iwls59RK2zPrfEmUS8/adND9Hgem2if4wt9/wwgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-33daafcd-e9be-4ba0-a71f-998b6d62feaa","name":"release-33daafcd-e9be-4ba0-a71f-998b6d62feaa","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"edb2a4f9-19c7-4e18-8574-cb25380fa05d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418507251494866790757665295331389364346592246491713366518533626467631879989866406630937147641525713969824499454213927124957289931430199768145130775091037158257532053337175463483988124803932686260188073759114370291544071633712322003601772947667","osProfile":{"computerName":"jianyunt2"},"vmId":"458eecbc-3291-4663-a3a6-ec8ee2b6a3af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxjpOSvn0kMTJXZZC/tF9dWPMkt5q9GFaDBCJmQo9BHuZWq21cY5I3jb00CmPPVXdYYHfTSeDRl7qfb6moN5N9wOIA7gYR4E6oE9LXLRrd5Ku+qQRJuGUGCPduxCP4tnUXoxAksW8zXG0euc9AtMBWPsemxVD7vKpusCdeY3WIUFl5ZxfFPMhLPM94HdImeyZKLhE+m3AiCBslasK185UGz/OwDqSta+630dbnaVwzsqP1peRiFmFoxftahvQIivmfJsea4IWG+IqJy4mVwvXeEUEZq0VMhMBF6HgiftJhyUOadSeo03oAKlC+4zyafGzx0PANy9Osa2AyHKEVmLnQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2a21354d-d469-4a37-82e9-21736b39c238","name":"release-2a21354d-d469-4a37-82e9-21736b39c238","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"782283ea-f86e-492c-9dba-ad892735e261","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41859109616755585418537382699167917474291986779173511639163684287371490679326535130746944179331816259615796535111629786186465529696145498535979693267780136219454112384272329827657738743033869174354319046115574772317602043891924152238486665737834962592474361079","osProfile":{"computerName":"jianyunt2"},"vmId":"abe1a32e-0208-4f42-a5ee-ca76f3516aca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoZEk6biPMkT6Eb50fl2dwX9rvYRgZN1kxpqWh+f/aYyt/DQeiNc/2LhOipzdriCeDiIvomMI3UFhSn04nrU7K6Zep5uabKSJHiL8HwZwcXMyuYC20xezfzQUFaNpUFYYfcpVuUWcEio4QBQgAdpuUfDZrJ+agbPRP6ro9NcH9VvDqVHYjkCjUShW1Yigk28/tPDKSLRBhY+yeq8StjW2OO0mNqM+QbmkOJqtvasRLLQlMBVL1qqNsTzLJfGhgrkFodCl8EpB8ZdDsvy06UxDdpXxa4+cIQs2Dm5e49IwntMV7KUcx8VczhHN5X5xymhUmuJvH5l/iDBI5vqCuZA0wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-40a764e5-8eeb-438d-9081-6d71567c7fae","name":"release-40a764e5-8eeb-438d-9081-6d71567c7fae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2ab480ad-02d1-498f-afa4-77c8f3097e22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41869775332026483663209244477267673371489426926185025899111372764878206341647723667950218750671584645320183616967246432345204043846753012741801868293816640817768531675726893507308405379936870275542393558739480768022409676242900105734801226255764257948543553882298219293","osProfile":{"computerName":"jianyunt2"},"vmId":"e6de1129-066f-417b-9a7b-72217e2309ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2iNAYfY6peN8aLknFP5tyQrJ1gnngCzBXbn+sN7onRRIA5B7yrr6BVYWhbAppvC22d4K2YH7G5wAJxeuRIAIuoOmHzQ+SjL//VMO5UuN0GWV3kOk79UAc5t7PAK5Tr6TZV59Zm7RGzZuCLtxHBdV4smlMzLamciWl4Yx8egVGINkCb0LLkiSuAp+3FHVc9PihGZdl3ZpxRMTQwF/NWyvF85bYfslXule+EmJWEbohsIt6amI3/Bfx8i+idmgaYqXN84vKamlOM/Kf8dHBR/yoPnPlEqMkeCf0cWPszxMdi3QXc5qXGYXhp7XtlVfKFhZIK8p4TxgafsmRg9WP8xLQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bcd6e8f7-51f4-42ed-b10f-fdb061d5c80c","name":"release-bcd6e8f7-51f4-42ed-b10f-fdb061d5c80c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a48631f7-d75a-4b15-9d92-f2a784125cbc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41871919245717132135918021808153754453514997980379713315750466932826250187908808514457073453490484055372851666075691541450854421984469258625636721926514199213603215198402941894341656021133216795928436115561193253310837798717083699113422112058212667755721289151739100879831791767206237233868327103036895865777156946543","osProfile":{"computerName":"jianyunt2"},"vmId":"9884e8b2-08f9-4627-a68f-9f7ed7f3f9c6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7xxMXE6IR4scAffs/7y4ZbIZScYhqOH9kMy2zttIdzSND2ULk+HwLI3Kou8vRJacy9Kj8JIpljYdPBqIT1L0dsYvfD/afAvmQ6IPTu27Nnhv/giK8EapyVzqC+ilAndXUHHPXk6TKqMAhSuNgfRcgATRYi9onqhF894UGlhL7dMi7KrO9Ot6wZ5djYEcykRWqick82BcoL6NZtYoKZ9dxtbksEE3BtlFPIYoo0q5eNYfjELlluDQFLenISc+fRPOwqKjrqbzlXcThMMq7ySY18gdCL3DAGn1dk2l/IaJjiujc38H4gBiej/yaneDZ/dPfuTGk2jaw7RJeTCkcdi1owIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-63d452a7-36af-424b-a2de-bb4bddd9b19e","name":"release-63d452a7-36af-424b-a2de-bb4bddd9b19e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"80636f65-b4e5-428c-9f73-baa268df4ebb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418761246822372821430618909287466536376419824711386223659572376914640476236904194329620920827848682787731794368848667171663283164664928446373175277549771738267961501416739446084298174975241530464438877518991479076832593811163501406122497019203212473774057958","osProfile":{"computerName":"jianyunt2"},"vmId":"26dc65ef-bc64-406c-8f59-4b163d071934","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzp6QbH7GAzGJ6fDt6j/pWmUZUwWpEet/1L/plcJwa7GfKVAhtEp98rgr3XdU95w8pSISKZoe1S7PXnELPDiGLAeJ+1m/9lDzJw4dKQV8gxbF05hfFvhQNW4DdWtCDM9FJgZ6ui4q2llOzfIja+mm9sgmhm1w1kmpiZP6/0K0k6o5izUN1MW6feQBxMckPW/gdKIN5OsxHoXOWM5X/nSZ0Ba2IeOiOiIj3JxnUtI/wkWJkUdoLI7jJQ0jQURN3borb4wckkVZ/ELvctA6bx7OLdf84fizB+qzk/LdK+r/uZ2ALnOY+UDidfFWicvsUiL5i57bwyxOe+WHPaaJ7TMCbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-205c0de7-1f85-48cf-9a73-df18f677b6f4","name":"release-205c0de7-1f85-48cf-9a73-df18f677b6f4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"aae1ca97-4997-4f1e-99fe-6b8bf1247166","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183035429915724250891390113040675990473677820112328565489331892142934930960972906654512415065891378140679869562718937611412215901178153462991363916432372974298271072821849114024518594179916945560741771422733311982351853758114086767826099669582","osProfile":{"computerName":"jianyunt2"},"vmId":"f714e887-5b13-4629-882e-e8e792e32fe3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5B4qqBuWwhXqpG5BP8/hJM10M690Q2kSwugaRh1jBnKfiiCpqfYtI8OISKupsSXGSm8bfogt09gPvUqXpO8Spv4i6poRSOE6n5YS0e91LkfJdjPP8ABOz6fG3Ql4woQLFrLsvR4S5bSP8k9lIf93Qb7FV7rEICKDYs3i27QN0YBqnfSKPsOoWpVxi2nLKGiNLdrPjZ3h0a8skQX4k+GyJgl5o0uEIHja7Epi+i8KQl9WLqtTljx0n8Gxg6FoVsrSfnzpgnguL0NHweDiYKHbTfyITvFcZSLP4pogV0TDdgn2HU1vOSxepmaOvO7k1QdZT+hv3aSWjXQsyEySKtYBwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-710c2484-9493-4f4e-9b61-215d93802842","name":"release-710c2484-9493-4f4e-9b61-215d93802842","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0fac8306-d7b6-450f-bb29-53685cbff5a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41826022326434975083438693444239184242628213674413813225828465079203954808297755805939669857787113582213753463787957311612823456296906795534161613070869143799496061141542264477848333342681692734157559641881459148350721972282560851720337267159038321802828985802492","osProfile":{"computerName":"jianyunt2"},"vmId":"f4d00758-80fb-4583-8bfb-f450765caa48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt0S+1Q+RhCfDuT4YGI7lmCvCmOwEKevIbnss8+S3EVAhHnHrM/okQ7TpTjAmqt5E5gAMMqkIPQyE3+EPo12ZA0pp/UcA7tvkt01Tx/I3D+HhKzsmjKGL0BMJUP46DtrV5NBRYw1+S9F8M5HTnM8SdhvWnZkAZMvXvKbxEy7udjSOLK31Zul5UM1RWMPx+uB+evcarg4Q15ZdTiUJjzJ5c5igVxqpWYT2qHpuFzXCd5xhaAZskpjwMtRaguTvHceimTmv8QBsmc1WwPKyGklYX+/nbvu4PYxJInos3kDfkjiz0vMJ89JN9Oxj7MNYNmZFVwst10iD3PTbRGDVPYcB8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1a3b57e2-7e10-4afe-9dcc-d7ddf3737bed","name":"release-1a3b57e2-7e10-4afe-9dcc-d7ddf3737bed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2fb7ac77-9142-4cc0-aa20-85d60a4bf677","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189073261540314329301733419064535158417291882854825576725036808334528602395253765622837977906562623816258562293699271388599735265589344792406994715878644055195102187734224866722789791954849180967336137747834366229888463918491854536876999750817321861806778996696463543936836504318159393515356455347953461797471856","osProfile":{"computerName":"jianyunt2"},"vmId":"d74c68c5-e88e-444e-b6bc-0334612ce176","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvqQ2pdNX5U4g0LoF9Y3cbwWxakFrsySFE3esAdapjoV5iRVJy59H3Ie+FPanidXYt5QeEKQp90Jm1IkGOJeb1EGcW5p+NKULDzutxZNqgta0h+EfqNuqfPsVSMnWVUcDsnkPB5blCfPEg5Za1fatr59OsN7TmzAo9WqqA0nUiLchQNosQMtwbgfCyh9Zo1wx4C0dg2t80Y0g0pEPOrmkyxC3EYbdlvGASOBCgL7lHomaNshdxF7chDhaJLUNm6LjdlMXyLTFXYoGbwp1D542kFHRgDXlDfZlieirX/Sp8hcgqJeVmHWqah7lKWl0VytMZtSEZQh3YvrtaCxs0P8gIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f1fba520-3069-485e-96ff-c67dbb0efaa6","name":"release-f1fba520-3069-485e-96ff-c67dbb0efaa6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8c9cfbda-4d4f-470a-a01b-0e644065e6c4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418404175733912143053567861762926126949646088477625886732373541529214117845832332359657400948928779345675118189136369683627143887616742438372757984279065691278395863091314952966432090906581851992422273266846656610575614205862598485832216431589519050585734696880374615775590792393440671108538","osProfile":{"computerName":"jianyunt2"},"vmId":"e109b009-164b-4fff-8d52-b0f680f35bea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArEyqSjHJFn70J+tqCiv3UYrIwb6vXgfdbD0574fvDsd7pTnX8ElUjUXpvQRdPde9Tk/4kp+gD2pvZtCLhzG+TI+hocAKBfZb7FXap4Q0lggpt92KCCR+cpLTcmsE8Ioct/bFfCqAMpAzCbRXGT1WXdcSB4hga5+Zxemxry/mUGIGjD9RdvH1sZUF/yXrgqRbLvhfHmHGHPlhQylibXGNRHlM/k39fKHAh0m5rM+m6aTOA+BQlv80iixN4FPS4m6FIU7tuI2/8jhuok2T8Y7FMgsc+rDfeEN7XPL5rsTSIeSJ1hwIhCl18MIx/IFHKpg1fW5zza6dv4YkoHZ7xLXSiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-739dba6e-253d-4971-9331-4408a385f218","name":"release-739dba6e-253d-4971-9331-4408a385f218","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b292bd24-31b8-4c97-aeb6-e1ebeabfb303","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418608143424810808173129781595134212537518971493228582691107064483667897365663573175667856381176937915517447287569379878316686146950434226253734253065664760287238998136218535761779106555904231790376156183325571238635662594167705917","osProfile":{"computerName":"jianyunt2"},"vmId":"f72c57f8-9ac0-48bb-b7e9-3d9b17003864","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp9br93qkpBoNpRmWIyqC7eLGbKkvToZ4Xp4Lvc2JytGmjKESnPgzDk5Y81PootsOwFjL7d6b/N0gNh8LBaQGA7EqhCzWr9vDNmIAYH/lV79kOZp+3IEVhril7HsQy3YJ0QcGBnPozgCmAYUIeah6J8zRfIz9e5bBBoxnWmel31s7WS0qPfhv2qDb8X+FtFnHF4ALIp9EqRIgmhMMT9bci0rjiJvY2cgAzB5o82lV26crKcrj5qLKd6u+3XeW6lZGnwYT4HhYTIyYF4VwF2XZXBj3DBjk5/tFg5GbcXEpWNYCUDZKdSqGkqEOqH1XTrP1tQNZUY5A/xD/hQRXiwZ4BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b2a1011c-a266-4948-8282-ce2cb94028f5","name":"release-b2a1011c-a266-4948-8282-ce2cb94028f5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3a1f36c8-fa53-4953-87ea-13ef1c21a71c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41833958792092736680799859848471194340539856655257838974932261022426053322994735276958392921046274586461440264949331951679938410706915488257387942276687540370958254694573057143445324188427584490134252438911794055472261506837343792599133172353045584760079332393468533941301356776731696798466120317981534849024","osProfile":{"computerName":"jianyunt2"},"vmId":"ccef0d73-ef25-46a9-b7ed-8668b89318fa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApVkLEYGeNfpEXwbW04z2nl7Mk+THv9NQlHH0Uxa9y5nMjXWO4WncrWsCi6WwrE7Ye/IzsgLoREi9lX/kOP43r/Fc3ZXJu94pMfhUkiw2OlW/zJFE93e5upzX+V87iutmS1u9nGnfNzkvUG2AQwBETaqCzk+wyiiWKrDRa4WQm/hXsSD+Ns8bMvl8yFP+rcP59FBK3EEzOBEUCeyYj3khSn0ePngSt8QY+Y4WZfLWSsa6zlkNiQ9/HCjp11xX0qGeLXp+AX9uW1t5CiHKlLp/cXBF+9vpEije/AWJxJsZRvFKH9ZQnyusT4rT7nf3XLpQPravv5f09ocHVRLDB6Bl9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0a663d4d-8ba4-417c-99c7-956f6c7878fe","name":"release-0a663d4d-8ba4-417c-99c7-956f6c7878fe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b7c7e35f-40c3-4e15-abdc-4df0189d7748","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41887682813295939259712399261220545032235963856797477068596997349880348818406455423690959796495177567862826992017593599884398584522585242830637523586235419743764913521751228199867741460624791921744957569408130865664228283632583183014466458369592147196378","osProfile":{"computerName":"jianyunt2"},"vmId":"d6718a3a-60fb-452e-9605-bc74e1dbf1f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxGXPp2PP63B03x+klioum0iTGqYJDuf27skiMnhkgNKR7MKyzriFIdegCkzfHMhF+a93zn4yK9VDuPuhImAPREVsOi69rDlV38Ru2VpICcvxi5q/gb6DZqYU2REChaL6AlGutwOYu8HPr0w+oT08GNpavA5ZKt21SD7EGVrmZw+ERSOZpvSyfMRcBkLl3twGZXwIuQuhnkQ9mvABSyNnbEOB/5Eh1tDVfuwlMIXv9APkj5HOQoylf9mxApM4nqS3ZVIlpLnJJlW5eSDv36cmDTSL5u9FInBESs82RZfp3uh4IjFpKru7Cczj2WQ2skDXUbMyxub/rv1IAEu+CEI6zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-01543420-f5e9-4a93-a88f-9cd5b80fd34b","name":"release-01543420-f5e9-4a93-a88f-9cd5b80fd34b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9e9072a7-1f60-4202-889a-6a6a26f55bad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418101059262057932978744835312047481561727423639287544738659831138079269774485141431657938137236487941616817896940645689869405108045192796474964925551450523292287506045073127641072222154702533898788865094601795635386543357857645175038310348438683249269850989963419519132353714451965504656930158338165172798621472156395207832","osProfile":{"computerName":"jianyunt2"},"vmId":"5a2e8d13-cabe-4a96-a07e-ef1a3b15377d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtG1yrkzTE2PXZR5W/Mg9ynC7A3wck77DaUBzXC+KX3/odgDSWR0oatrLXaOLOnB0cghD1cbtByafCi3N/pe+dZu6nuiQxEjVQLsiF/fupx8lxPOISM7/0fWIsYfZw3R2ks3O2OhNPJVqyT/m5NH3IqeZf0ZuKPG52wMh5yYFSygiTeNYItgf0JKfWkfXhnuk73vAhiscUzUz1AxwC31oSmFXXoHw5hmpssjEvvgX7DJPacy0SU/DScJD2FKKv0Ur0eiF58uh8wxFo00xJlMmVOhcenFjriLpik8tUtoqumqOEt+ARidkMOo6BcTe94jZhLysLIXfn64O0t/3+k+rNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-7332ab90-f50d-4726-b49f-d3b40b952724","name":"release-7332ab90-f50d-4726-b49f-d3b40b952724","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"15c3ec39-18f9-433a-8a45-903cec6487b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41826388129897024588318993607664859638696660505179399543799458379100734174185454690441493810690241437861708116765358382751673694848651962808622586340378061415787199304684349596671581040149860336154920629254840475922868008046197156303836","osProfile":{"computerName":"jianyunt2"},"vmId":"582fb1bf-179a-4ac8-8233-ba2f37010b85","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnrfE6RQAR5MfLFh+DxpB9/K2kwdJwUOyp7X7Vv/Y1pyBy60Ie2BSwveeZEQfb0DKIGn8GAw8Wd/aCQFAYvhq+hRCRCr6lT98cYAVHbm86gWv2OiZfQ6MSbVJ/QvzJeJxiPSIErJUrEcll6M8ywkt9BuyT1k3B2SHgIa8xdHa/MIYP9pHvZD+oqGdigJd7KO23EdvwkRxIPHzNuzulFj/4abAn1a4/ynI7T4GoxfC984HNo+fOnQQKVuLDoEb5fUbYsgbgSa4HjqJC7h6GaSAEbswBX2ZghroMa+wHu16Vyufq094ipgSBQdTeJ23V6SZhe+DC5E8M+Q4X4Jjni8nKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-04e0f1ab-2fb1-43c6-9e38-eac08cbcbf52","name":"release-04e0f1ab-2fb1-43c6-9e38-eac08cbcbf52","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4e5ec9b0-0f05-44a4-8c37-f364f0a49812","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418845315561811155321658831610571302287536657826375171464026361458399325805898240004600203593879128223456643846376590593538666355300602343451470366600473525574904535772564261926347337865833148874313442139461094586195993372545588733409557027915294805065953273875672793348312258057034","osProfile":{"computerName":"jianyunt2"},"vmId":"b1bb6bef-f621-474c-ba77-61b063687398","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp8HJAdVnScBPt1zyMPlD2oEleEm4/nJogiMx8TmabK2QqGY/iQNNtE1X9y6QL0ZVsrzHYwQW1lGIau4PgyXHLgJYQ8h2HQx0rjynAKovU0SzJvxS0J6R6Kjc7yWXJd2anEdUTAWisRbJwC+SvtXmy4vtvyDHTRHfaQZHLBc/pBHAe8c9Mgl4Qh9lpwF+SByJRLQTnTBKQm3wATTirIqS8ScwDCnJIM39c6fFmH7XcKwqo4WSoRGweJKWO4j518657UsvTSUasQTL3Iwj83WT2BhFTkZTZkLMbIW2P4bH/te4Inz8eqrl4ino2GqQrmdhiYH7Jki1I64HAs9awqYGTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ea664f15-e370-458e-89f5-d65ff81bbb66","name":"release-ea664f15-e370-458e-89f5-d65ff81bbb66","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4bc1108c-d106-4f54-af93-3128ab440b32","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41897512674416839275575628454530035757730969895728914750351233835299473806122791165386026168804158804234237464388930333584875760952863776387820472539057040563625142862141412679723433505243855059128857109043177781221007936940746195244331042157388231772521165005939167752229839429575533552525","osProfile":{"computerName":"jianyunt2"},"vmId":"e50b873f-d5cb-43de-95f7-5ff8eb4b7c6f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoh4zUCE25oMN/JH/cPZsfgtvRJKZ4IrkuzXcBnV+2ntW52DfudjxdA9xY8HEH6GfhSvaswpQB6BY678s4nZQKPtoaR2dqqELICWVdkb7S2rfe0xJeNh6GwSHHzR1lgbXxch3jDZivIC1MbXKojvTA7x852h/ZFz3TZ8xpN1keMK71HxajEMHZBSYt4D1I7sUdbJO0+mA5tmCI2FiZjkQXE+0cDI1yU5XtrTBGEW7pNygFmcOKePb1q9nFSJfxFUqkmFxkWMQw3l56nru53hToK3ckekTeGMsbP1Isod4f97ivSVC7CRWlSF1wvT+rWKrjUYl2kOuq9TAxfM1LREdywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b7c50ad7-209e-42d9-9819-b73d9cfd1d9a","name":"release-b7c50ad7-209e-42d9-9819-b73d9cfd1d9a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b4642e4e-0c9f-4d29-bf67-5ae2f776dd00","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418291547259023776975872279555119457647863587570965827437155661505949280362273718754314851898778377069104038893444650574532651173743248697982470721039613854268154818164597780761151353896676848965748444893581814264145824464948780682604291830856055244396079093597572227138150351863392930","osProfile":{"computerName":"jianyunt2"},"vmId":"6e07b497-8239-4901-a439-1c427adc4269","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxVhxIiH7vzO8+Nh9enoiS4RCEzdzCPxE88bjdS/4Gbq96OYI02lUSAVfYHW3M7/C0F+Ejia0boTEAOtacB4HVLp0g95Y+Q5luuDe9EdX6pRtFjg9hvnwBXJ2EClEg+TmLhSZ9uIC+1Y1zW0PE8BAlFF+X8HuyccQytFYWRvZOYjzyZE1W3dSADoSjOuxugqPYhBAU4CKSee2P5sJgvWbV/qNmuSqkX1q3ucHg5BBInmJf9EXHlvlg3qwXZS1DGgdixQJsg+bauIZ2JM0Z8+Ba5fdvOTtIw1r7cAGuoAtBw1QtYudmrGOcl9Z1Gvt/Cy0NlNzV/duJ4lklRwYyVCH0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-09179643-66d2-4051-95cf-65a3ce28b5b0","name":"release-09179643-66d2-4051-95cf-65a3ce28b5b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3855b789-92e4-4727-9f80-c2fbdad6516d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181831716855048294253520270352076959907913769405535529410483193270740476246144510747177906420758118661258471529819149074189194169857172022581717551711370258198950433493362296082282745090925003215765188437196039583143274963885424544673530025634824289791008571581131572085474975126415286","osProfile":{"computerName":"jianyunt2"},"vmId":"4b41db6d-1e20-4095-85b7-b569779fd6ab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvXu0qOaPfjW9pjjUqZg1MVQLwdxC/7KZXrgPQIHkUockER6c38SChkh+eneSbfoccimwrLI4UkoqTvfpfrWc0VOuNQiw3RNuOvfiGuFbdXtfEVpstFUV7lm9CoFb0mizxvjYvaFrRrHfuSBsRvM/hBXPz7SyDnuvf1CtFr1564K55hg/ZZeAOUFSTZITW7MtnrSq2dqNWGBeHJ5Bdq2irpW9FAqRYRPZrPRTRQveJPHL5gvcmzjzsTu+YdQIelhqdIBBWJENWBGBE3PUDpUbT/N6mckwzUHwb7kTXa9UeuJG3aCa57IKH9YgEHmljBq/MmUx08N6ljiDliMAyPA+uQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f4b3ff44-8947-4486-aad4-4beb0fe28d16","name":"release-f4b3ff44-8947-4486-aad4-4beb0fe28d16","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"961b4917-0d9f-4e70-a41b-ddef6ec28d48","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418671545051589860132217279518653447598644019414985441768664734560342221154651712860045602822396807163625843231611908241269704505229564389150052797953621251884133875342319526500893029684932762965176008160307823129541608835872130","osProfile":{"computerName":"jianyunt2"},"vmId":"d115e31d-48e1-4a06-a947-bcedae3f1d1f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu+q3iuWnFsj+ZDyn++YHUlSVwlTzxAeUA8GXtt5NCTS2PFL4Nrxs9uVgN28IdhO0VU+u2/8A7vbgH/gOAnHJCZaV/PvZNGaEnl4FXEcU0HY7DYHoOwftFXNumvpCsQLo4DvTYdXdy45qYl0cSxaAmXagW7ZcIavDjgZaL48inC0grd98HXw9zdJcbKBSz7wnmHQ8IvqdUL9z2OCKbV8mO2V9mBBMiTDGn626usz+S+uFc1nAfLLMlAg5fyq3QrbMg7aqzRbZb9Ke0cmRO7isVcMrxiwqGV0+imkXQCETrFUKhufAph7OtUQ8vodxsC2cnHGnHaNp+d2uG3D1Lxl08wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b4580e70-3e9c-4ab9-9b79-0dd996dc4415","name":"release-b4580e70-3e9c-4ab9-9b79-0dd996dc4415","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3b2b7a3d-ab81-44f2-b30c-8a802121738d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186247418863137717178430295786809421807264942119526451883699511404016646386998324968862317202354961604365366350419382349833921369300607023711307801977294775842152212708387838955171997275986855134192329125939323830626925437788428870229337919370994223824100274619649686115158342305815037221958180233366410987096255033144139937479","osProfile":{"computerName":"jianyunt2"},"vmId":"8dd7f069-276a-4fb5-a75d-4160263a6864","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtmHqQYpIxVm5PxKKM8rnAbbyx4RQ6sezVIRJ/RDXKzeGb4+00LBl4RW7zQP5jA1RXNLwijBx5/LyQzhvIcjcGbWQfPi1ZATvEp1ODfbvQAaOkS+0KkajN/jUCEBUfNLjvQATL057PGosD6oxHD4zldGZR7CMUvMkcsPsJqWE533rZrHxsSh4+W+3zwyFj0X7J3cNRnKppckJ1CtBDu5sRMBzk3AdDIwQNu/IRKntbjEkqOPU+tpGmxVJqjAgYvuocNEYzRpnFDHZP+6EtxRisGIzHcXoHWduEN+3qpUkULpeBrUiVEwHEj/w3wM4z4P2gnbZD7Q/d9qPtaK3Xyi1rQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-3f3ff396-aee0-48a7-a435-178e49b0934d","name":"release-3f3ff396-aee0-48a7-a435-178e49b0934d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"34a9384a-4b7f-4df4-8814-20c44899742b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418569821312736188669495323147157415697714223218150670708362638112130322894320414962505781900489838471886372649109594422150250415345356344526335157286775627929428383383268818465644695094449882265443917771769455557326573997505635879821872545970613033138485218374251858","osProfile":{"computerName":"jianyunt2"},"vmId":"ab7a1046-bb5c-4853-9246-66c80cfc605b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0NMOuBerLMMLftBhvrXwUJcudiJPHOmpy7bNhWDF6xloepK7quZ+V9TJjte/A6TYeBAMJ94oyaAMvj1GsqpQWao6KZZBOyjX33U3swHobPs59j5OWsyhQxy/mx36uwmKeXI2+Dqenb4puIs6s/zKjeGBRczzROyx1ad21MzFnoAtldIG6KTzVMFIp/2O5fqA5Errx7gDD4gTHu+LsbKbb2LNXt05gELwATszgfQvdmzI/7pbKMKvI1lckczRJhaWnqZ5e0bDXYfifK8PX7SQ0lIh+S9WtQ5b1gr/+0ga4SrZ/Xy+lYglRnAszgzqC8o5ga7WwKHnqTInhwk+abkmPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-973cc01d-1730-4f3d-abcb-81fb44bc7fd1","name":"release-973cc01d-1730-4f3d-abcb-81fb44bc7fd1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"025e4fe5-58e2-481f-9299-856364666608","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187043126826911247121210235261830622127214612602611866197147084212859237757669943171774831325182634296814347522412554855531345551664434570653621753438395330600132724943706911382120790944152299836473892981515191850664683969093503366297374511674153530568772496402827409908660614459838434168","osProfile":{"computerName":"jianyunt2"},"vmId":"40f94154-3fa7-49aa-a114-5ced68dd2475","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwkyI2AAuXPPTu5o86I2TuyXQ9nQLV53S4Y5swH8MKK1DhtLs6BO+NDsk4VQ8gF1ZHw/3WQGWenWWBmhlEtJStOMyOVmZOjsuwUfH1nkMNfIug3QQthhkiBGZA0cyRqy3v4McCLd/OxPrzIlFlJI8kBGdVfDuHqDlz72PmFf87KfyvH0n6Z6lxDrzXXHG7UH5EXRJ7i25ONlUGGtI27cMaxR8TZod6ypEUykLjMfXQhiBOzkKgLZcHroRDzsbSeaEpn85R4wSvWhqzC07EW5SzH4k8VgMC8w2G2+LvETojGryGfCzh1Rz3mYWXtaYnP7DJuyIvZwM8EILoiId1WLVhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8b7a9d85-5c4f-469f-82c4-1d3ed30cd3b9","name":"release-8b7a9d85-5c4f-469f-82c4-1d3ed30cd3b9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"76d345f0-1400-44a2-8828-97d461b7d158","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41841173045113195442394703882398278416977102828111287613506432469180556119391063545287823391347752644333584302504016572297460259666237764641844931237549755519846601898622074832525394629695325528270922611502965142148508048288473","osProfile":{"computerName":"jianyunt2"},"vmId":"d8999d4b-d442-48bc-9bb2-089e4086e62f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0AvrILa0beWRyOu7AO9EZt8yPPR5Z8uFbIn95zJZCaKw7EZL2X2tXQ9ThmqSeWkh/LG/7X8KjNz6J9/+3ru/3zNgc6Ynj5HA6m056CUz/hfRXCVvlh5AmVxaPhiZU5B6HxdAwGPgvqCR6jKhX75YTsVnF4DZB3OQwQwDOEfYxkQQEUPleA2R901IrRRXHlyD9Et1KJfkS+CiCQt+pxB28D2YJS2zHpyQx18J4u74tUXYckmRerNnRrzJhW06J6G9t6CJubMhEq45CcGvANV8ir7mISyNyIm0AU9Is8D7nT2FK/N9MFFfNUSheSpfeJEr9+DAGXpfqOM/s2tjQ/fQDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-f1d6dc60-ce59-4f91-98b4-f6cd272c6fd0","name":"release-f1d6dc60-ce59-4f91-98b4-f6cd272c6fd0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b1b0a013-c163-4b92-a1bb-5b4445fde262","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185266807069407411119518617309245945404596461211028698736612374328387675409279668841240146973938981814397672011655769365540224533349471659639594336231474448690011744150390045816573573182588268516242999604745017795193130887098685972477602384710543342","osProfile":{"computerName":"jianyunt2"},"vmId":"438ffde2-e07b-40df-b723-15bdead65217","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApnmtr8SfvpVNvtsEDItJHzmOgf9QvqN0p1h6FutwaPTa6r9wkswIX5c178h0yoKy+zmygzTAH0EdSbQFnnOsIVo9/GH5WiRt/VatcflpQp4zQMyvd++iSC/8rKorrJbv0VAbtf1xiODvzeLo9aaarhvx9pRmC1+3vRm538lItTP+9TL7g0+L9AO+jUdj7HpVawI8sIJ8ZqvXG++gQ8VbzMx5rbQcrdMVzssHhsR+ny2KvckWM2pmvG2TbM6mqVSxuWnz7qInkHsPmGopuNFza2E1Wn7Cv3F+F59+1KdEmU6M5rySEnt4hvtxXq4jG8KKTCDSrOBK/icIVfsLhqLDqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-300f4fb2-9b94-46ec-a1f9-3b73a25fde6e","name":"release-300f4fb2-9b94-46ec-a1f9-3b73a25fde6e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9b0e6e47-f32b-4d4a-aed1-6836094d8d47","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187121820947592442928137481651143377634602627692739321446375315771642463654766567903310097332173924146438638151715614384469284522829907012247366142163931083734559183795412218688118938673347059395896860036757524774641364601073852642762921637343905001266087687934277615175093319435043844161218034544491311","osProfile":{"computerName":"jianyunt2"},"vmId":"0033572d-8306-41f9-b33c-7d6ce5c49ca7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5bv4gDtO5yxu8WlcF+SSyBT0JNY88WyYu2WsMvX5kj18873G0KDAmSfybZ/hJekyE0UilRWTJjax1tAW/lD0xNZcsWz+SXAEVD7T76TXCCMJ3cGNaNM4W4Jsri/vbLDp8dvN+F9zcGrKoGXoyR+CKDbozNgJRlNk5CapkQbHj9PY5EbnUnSy9mpaV/wqMkyAvXHAnwbTApJ0chxEDCF7vxG5ZcCci6sYXUBJAhM63QDX6+UTrtDrRDgEWpcVXZmHjgAOA4+zH4kdm/O/6VbVL1sVaycDk/oyHZcAKgR+6hNeId41NBBT0yaq269tJWF9sIWAxjnRFbsD9znFYbmlhQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dd56f6b1-e61e-427d-8d23-01c56e23c1d0","name":"release-dd56f6b1-e61e-427d-8d23-01c56e23c1d0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3a9cdf48-5717-458a-ab68-8db2b2a5b683","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41845389834984052487451384368415708435442173777207353319487119674671506598256461405203867331826330337607032719434826055437433612654721731011356080954680424495192706477762553933729789211769774867397157426447885622719873478642497277669123656610105800506830428647","osProfile":{"computerName":"jianyunt2"},"vmId":"7146ff0a-49bf-42ab-9460-21711b1f6cd4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApkn0+HX3nBmxcAER9Oqs/DIs9FAIFRVxSzDaP8b14jrdVyRzTDmv/1cryUUtyLjjVIFamP4FjhPtHCapLdlUxO+dxWyIZDOsB1uK/b4xTNHO0g0QARUYm1YfZRvjSgrbe9YDcZ2sijxmCZXSefUOrJWhsLnPHTGCT02LH17vvWuwVo9fsbz7P3BukrdLoSsXqYW+bAP3iHtxF2OyB2o8Srun2yLWcKnZlO5fYcsv/cZ6cfSDBlINd11jZ36SUu2U14Ef8oCieQQZ0FVBt2JpXmlHfJz3OKCKzNkREVZKTFSA6Jo4iqdTenkDf8+DWvcPp4z+GhVv/YGDVy7b2h0pMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4c619f85-212e-4581-b188-dc022ac4fe10","name":"release-4c619f85-212e-4581-b188-dc022ac4fe10","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a1402e1a-89de-4177-85cd-e03c46ecc56c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4183615916263755874187399620970541333658914781078208981563398873739778679765238228451828061729209482727789087768426271763799239936447879233087620518925624811951741493562630527219259993447094216075904961073454289199921954946905658619258255540335752302502","osProfile":{"computerName":"jianyunt2"},"vmId":"54248c40-60a2-4b58-a9e2-dda13d781a0d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1S35qCRl9s74czV3x64252nm785OL/B18YjxbZwkvZ+6tEJYtx0G+R+Uwc/xABRUD1IZEfUgHHoabRPyT39sY6ThPyWaTOG3zabcto9YpKCSwM0lp/WA4KBJaEOn8zR3DtPqfqnSsjodHmCnnV4M9INJq3HjhiJVJHajXYC3ubpSbWJgzYtHFBy25A8+dKbWU+osKg1BQPL8rvg+xsu/VDuDfR3r9EPksEOc9RNecLF7WkFXSHWW4CahtHG+I2ecfC+c0nG8wmCXoumFGtyxj3+GB3JMfzSI547ZPJjdgBUkcuh6WCAVM9jrcQzadvRzz9pKv3n2xc1qqwF14Uk5DwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-e50ac54f-afb7-4283-8ca8-bef57e863d63","name":"release-e50ac54f-afb7-4283-8ca8-bef57e863d63","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7c759072-bb74-4f27-b820-524bdec26274","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418439724412886716539633554285470572955842185724287156331836683992430142455928606066814623605937978213624379136068672425844824309992145889193167687034934820257184792987293944680259804221235226556282136695393055314477552795459788077528747749568821236692391906681558500892631438","osProfile":{"computerName":"jianyunt2"},"vmId":"d9c33530-43db-4f3a-84c8-a8964d703979","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsiHMLmkP3Piy2OWFkUhGbWTO3UuhsufrK824SW7dOksgshSYYA4HuppaUlzLIBb5C/l4GCQX4Wan76YGLZ4mLJPcqJJbnevpSNFmoUF3CtmrvFm2wYqMrd8AKBp+VBOoJLOWS+7w2ntKWmo0S5CAw1Iw7c25RRRGLMwVRNm4vRzJ/Fqc6DvAIJQkjnGpgGgJkMcllCrKARtJZMVUwiH+U3KPWd2xI2rOFwN8TrlU/SbIuP3qE1smDTTIvNvB3WBWDXo7Peu4TMqfnZTkHmVKYp4bxmf7lTRUIpjtiwCdMajKaIC/4+vr9PBSFgYgMXGN36DDRN6BT7oLxMBAblyW8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-54f2d53b-9f4a-41e9-97d2-e9db140630e8","name":"release-54f2d53b-9f4a-41e9-97d2-e9db140630e8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"281a49aa-7029-43fd-9e75-b9c0778b1384","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418167651743777917938996567946766428391211160952683766885954467359584264122865675648027702682371173933802459982680885521888040625206103120539734525284182894995215628550966998619170578516605971803583963969186710493585428948187190799213940135167897835357531807959416715193","osProfile":{"computerName":"jianyunt2"},"vmId":"817c1e33-2313-4a9d-9e9e-ef2aa3b8fd6d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApjTbHzf0qSV1PcW+zpNHbOF3NF1VvRW7Y/IWSiiInyBvZBgmUupZtemMRH5rViIQ6vrosylEZMXSzPnKZy4kq1OQsKbVOnEKFR5llqvd3BbHlkIo9/eovIBT8ZFgeVE1mvU//Zn8zSNXMYFkh+trBJXKw7847YyqseRXjopNVH/9xGATHPplyvL9DJv5qzI2wmdIzslhDalfzJrVK/tIQMqrFdqOxD1i2ByCNoEXb2aClIrKBOa+74qNEkbxeTgDANTcOA+ip6pHahDZ51kijoj1j4ntdyfMQcxiewS6lsR+D+RU8btFDIVngSBnof+PY/SxNsbnLN2kIucMuR9hsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ee36eb0e-5078-4ec0-bb87-e1411524ad2a","name":"release-ee36eb0e-5078-4ec0-bb87-e1411524ad2a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c5f9dff0-256a-43f9-b6f8-eacf6618702e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41882005812151017235740192929740448630509245467929629973485959443786986807956511873150898091211897437231976792790930194754910532578552471385544308063930053869478316395741228378961587096986894369649464332499899275313940689372483981910218256674737114531934306069764025269824006615852172459309","osProfile":{"computerName":"jianyunt2"},"vmId":"c3197fff-8487-443a-91f7-4b3c5e1dd6fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA22829Ga1LSJd0hYAZCVqLzgM0KRkX4DPDHhq6Yn8e7dv0F4Ty6gRq5QixqVw27C5cvvLeeLB4jQXcD8LvS8dnsta3lw+fFRc2HSBSxzZdUfA8PYmZ/VNL1ag7gU+SbtqVVy86Rpk3bcJneJF0iDNLwhhFbwkSM2rYf6+lIs5rAHQd88oYbPRIFuOb9AgaVp+kqBivMwxAXuK1TWRolFqtCnK8Kx3Z3QZvJfsFkhnwmsJZyBrUvcVvhlhgeXuy+Syu7kh4B7Cv2GiBR/E8MOWzwa3DdRpUWD0ux6BlbhMmVZSWlt8tUuTtu/ZExKXrN+Rpc1VF5J7v1MdWRexH1VbzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-191eb36b-6d9a-406d-93dc-edf9a33a5ad1","name":"release-191eb36b-6d9a-406d-93dc-edf9a33a5ad1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d1858515-6539-4ce6-978e-52474af2e630","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4186688457061604689248646006020752677704270280342338694422633278153747620097525302365224359096255937228481217895547687961356477099952447742532785976718558818555185964863636619059778227013343235601022245078281681592592206532222450329918508731932958245534388989656662964939335339131142681492571","osProfile":{"computerName":"jianyunt2"},"vmId":"b9eee255-83b6-46da-9666-3ff26c46c35c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6sMHs7N4L6cowtmLN6BdNqhoKbtbkg3iW30DzVstF1FvtWCqsRhSGt8B8obczJFJQdxw4hd2N2u4BSE1CTsD+hr8SPYL98qyeipg+tm38pzQx3IoGa5gPXj/gQNHhhMzLS22Vjkmj7kT5atApOePZG+uq2lJhJBcN6DRIJ/jznGJ3wjsvWrUuTSQi2vdYtN2JWp19wGuOjLMsHHjYFpq39s5eiUD++bLkG70mgMdTb6+GYTytI9aZLM4VGhsOWaucU9qRnrd0Jsdwmfda0hAvDf+YzQK+ISnYKu/PK5iLu9rQK4vAJEDSiblJKOTO/1fzH+Lluq1MmuFS06D4ZcY1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-c8b5fbae-5e43-4963-a1ce-2d1fb4c28835","name":"release-c8b5fbae-5e43-4963-a1ce-2d1fb4c28835","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e89f0d68-ba20-40ad-8521-db94272a424e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418111657093884720458652345826247548839598413372456010722362517346975755766941908206117802862780576398862324206452387167818071651863823559740560967579755148622289771826145744893867852943708714187498545761567001141063948505634836018717802783563194537124118046131231132","osProfile":{"computerName":"jianyunt2"},"vmId":"60048a2a-5c7f-4865-a469-a1779a73b462","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwb6IUW7jk7o3G7Mpx6ChQHCyNjVF7Pdq/rNDlR7wq9WiW9iCExhH65mlX7+gL5iMhPAAmufj5Ccg2R7djN19eBWNesv0NCoHBY9+UTa3x3DYZjTuzrgsKksLGuuWeb1dhXGYkSkDUatjzmE+QC2sdoukqfEnqjuScVwfrNO9dTbU/aSsn6HRAZOxuVX5+fjQaqGmUgo5zSaF07HhD/bgvhWs123e9ofWbhL21dGWVhB3RENmpRoTy9BAb+J0eAbNKyyQ8QuYLbvKs01MWUVefz8b6nKtgSWKcn19XXGoy+uMfdtj8Vrvr775csnPdHUyw77mEWfzX/zILNA2IQo22QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0b4a502c-123c-46fe-9fe7-9e28df7aa5d4","name":"release-0b4a502c-123c-46fe-9fe7-9e28df7aa5d4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c12aa3ec-37db-4088-8a78-b7ec1111527a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188423468392310288297827214442171163250079618284110159391503466043196490823530082071217659990746441804443801026252499013712636596566721450459208817705969163309992826438810462964897353624149457126534181124914600704177678473801074381184482757711940","osProfile":{"computerName":"jianyunt2"},"vmId":"936031b5-0370-4330-9f3c-08e280870076","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAovKKWOGWLYIjm+4X2S8Efllv9UklhI7EB1IICxaQJbug0vxOoqHTH9cFnGglIaQz5cHXywzyzDkzo63KTrT8Y0aKEH9yo2KRCy1cuMcWWyWNoAhxJ/MPS0Xo1FcawG8R+s8Zk0ARDI/sZO0nNirpOzJIzxWLpPWEsVv0p/OHdC3IV9Sm7Ka3rKn/Wx2i+W7yUbpw64mdEZYMEUbasKFuT0/MCmJeCAUjMTdle51hpjM/vyVHCw9HAloz4crkztAzTY+9wBIJW/Wu//yvy61k2ExNGU9IUjzBhb4CQMrsxmfQUm4F96Y/q9uVF64GFCZJqM5TFYpS7BolM3DTuFLu3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-cdc4eaff-629e-4658-8ddf-8e8f5a157549","name":"release-cdc4eaff-629e-4658-8ddf-8e8f5a157549","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7e02345b-6e4f-4957-b076-cfe6df3e395f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187180102534677459787739514549382222837905966133797811852211691172883249683512414203249704772313205341306765139624739994322558517615326962984520488498284165464308447571465681735874494445549343045554597968372861565203121397855237104182574178833473617113861343","osProfile":{"computerName":"jianyunt2"},"vmId":"84d5cb1b-0714-4f85-a0e5-cdb575f9b420","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvvTygpf+B/YL1texoPO6P2cmQgt8ml3Kg/VLkhHYFZ+moIsVrZ/WGcoXucI3l0+fLXMgIfBDQHRc6UPH/HdaeDkwo8F2qrZLmx20/T9Un/SvAzb/kiblXroPoJqkWFhxeGub6/Z1vVeWshTNSjXyaJTY3t39p3xqcAIkuE1GfTS3wmJDE+PJSbpECzvawdMlsIi4xE7Wv4n9HxBQM8H0XHnJZ2XngeRAMmMtvh1m858yn4hmv8nWOGW9wto5dy1WPgb40lEawQ7s4AlIUcpw+e2biR6Th4VEKKenMIUFC9hs+6+1uaEpHpiqot4084XB7AVogZaOroktpJohKo5EbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-93bb1b32-45e7-4e44-a7b5-e2cb03d3d1c6","name":"release-93bb1b32-45e7-4e44-a7b5-e2cb03d3d1c6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dd704804-4fd0-4c29-bf0d-ce85b3239fe3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185582547364912364953498854499697439720372678542785256261348352954827397052557330712411272834846299874882827336011729879322932535170568516996604267876920582216803775012292397784108506459546001633126671547238409878997824","osProfile":{"computerName":"jianyunt2"},"vmId":"9d16b1a7-69fc-4e72-b345-e619de37ad9e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyAWxp4gNeiv8IPCEs5Ka5NVGLkF0SoxQDz5h4KQ6+OlitWddgkdZZUGj6lFNS+AMvROMNTUcWQTH5ZE6Ev4/PGLmeyseO2BlSKvYsMe6roWf/TrSU9aKFKt2lmEU5qSlsPhdgSJEKCr2bFkRbRhY/kVtbBgu62tXpgbRnLjcXSeYu0DxQIza8pg7LSnSklHQgySJbtTGL6d0CEnwtIVfPj4Q1N57aw0KqkKyAOchmVHVDteJETtQ/7JqHAAx60ZHQQNQSMyo3XDgbJxfyfn4KXZJtvaPvnJIft+O6YfShfl5e4QWuifV/TBOhSJLlWsqIBfJ3/Pfxbymed9FnZpzZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9bc77c33-1a9b-4af4-bd01-9549cba1aa20","name":"release-9bc77c33-1a9b-4af4-bd01-9549cba1aa20","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"13f39468-8710-4fb2-a5a0-2905054bc9f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41814247380788289742280714506139225754922546461613003272344234603480605256264606799949279765655275625936984953422673123444982914018245344510294302998115387225843484140590849871906041844678824429611454985857491571687507484451134513640431670916478475808316770459790799186","osProfile":{"computerName":"jianyunt2"},"vmId":"0026ff34-f572-43f0-aa9d-ffbf2f37d13f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArCa8uF8J139kEDrikFnQM4rKhXnmvsRRlXhTMdcBFHyVeDYHiZ/b+FkVhksy0zDOaq3PFd627a9pAKj+QmWYWRkNVnlSVpHK6b5Vt2GffI8QG9J98wz2/NoY6Zg+IQc8viW5gPUel6g5xDOkm8Xgwevs5wh+HLGCn1WrF0+EHbrtmUkx7FXwmQhstbT/UqoYpb/hZ/FtfpmjBn9ihXEXQrhwBPGjQ20U6VWccrmhTKHX0XEu3dtNDdmAVp2SSm93Ag0lVAZdKb/8QbLfQ6FXzH/65QP2Pmnt6wI5zGnSqwLSDLEOiQUPiHVAgNCLwRTTvYFvl10nPh267qTeIhLmEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9ff8c1d4-9e31-41d0-8629-1f2a013f7d98","name":"release-9ff8c1d4-9e31-41d0-8629-1f2a013f7d98","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ec521504-c154-4a43-b77e-272a668961e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187707357593481051873310261398956820295509327461764707115545988081576130629572216652641895817865832663286940150953284865407990054825041126931951558873103059987194592720846918762784401743147326367960336463931407935396688791332588665743052773599311638902114650047068","osProfile":{"computerName":"jianyunt2"},"vmId":"68c8a047-22d8-4872-8933-6788e527726d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtHppkNNEGcHrNXGHh0Se1zCIJfa05ddQAHtBEUPgTFNyGT/O9qR/jA2E7xwk+F8FJ4Df64ItIEvx2wBiQQ9DxQzSmZKi7nDa6e+aaesiTE2OEdaJyTk6pqvc+IW6y8UJ756Zi7t8+Q/V++A4wS7cOEm9ww86ynoxyh4IN7bMIBz9PDh9KiNairQLHRCb33qqRSe6D8wgsRvl5Wl3VCz2hW1X/HAqF0OEIX6OgKzodBejErN8l/4IBgJQUOuPobD5fQ/ESmGXlbbeiLm47IG6mHp0lem1E7MnOvgllC7IekoSrIK4o0nftRN+qVnVDEiAFEZJpuAvq2PeUxEMn5++dwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5507daaa-27c2-447d-a0a0-94db0d14b42c","name":"release-5507daaa-27c2-447d-a0a0-94db0d14b42c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9043f99f-8eca-4aa5-8659-fb3cd52f3121","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418352580996582263923815074320947515739249916417381759952243679612341962804793897785447742112446612736376199779054007403693658634994562530244732704047952079318089867837720365708062300091811686672914866217678565065889230233545884","osProfile":{"computerName":"jianyunt2"},"vmId":"d0dbc48f-45c0-4117-bac2-604bc399904a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Ry/TtmXHZms6/33p5VE8/7xY9uRQ0hdLWab8u7zbCsImj8s57sNYAg0mgyJMtmcGJ+HakwXJqNOpH6HFkERUkIwzZLbO3rYxI4BO1A4fcBW6aiWp+Af9oYcThGNJK12E43bxp19acouCNoTSrjaS8S/MR92SWXgOhoZtM9FF0HkuCaoaxNWJa3Nmf8dEM4v6lwFvaHDYp5bI7xrN1Svp+v5cdib2Jlyitq/WSmQd9emt8sWq7lsXhoj5w0HF2ah4sFABqLWgMyS6B4p/jSDC7gVx+pheC77VowbH/YVNyamRHONTYEPDdrw33lWYcrx4/+6kJVjUCtO+ocHD0kWYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-20fc2392-00af-4b65-9649-63ae63fb26b3","name":"release-20fc2392-00af-4b65-9649-63ae63fb26b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3a76e1b0-8aee-4612-9ec0-eccbd99c91c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418793574845448724555659308217028048109367781884582755625183742229157159873938655223033948184660082817597815316253081647443815542471938087121984231594156609829355848648654638895518396269886392967738857111165342851283774797778493695427698865232144565246466380630843727","osProfile":{"computerName":"jianyunt2"},"vmId":"e8e60ad3-9c3a-4ec7-a51f-15727292e6ad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsc3hRodVWIfrPFBjnHglDaZQ47akOhCNwTshl7nGRhUlIxolRijlk9FuOoBbzGwYq9Haq/DJ9GorB/r/Jvk4Kt8oXPsrp0h3vxMOHv0RBhYNOosXjBD4prTAqbwxUrn/RN/01IALKzwzydsA9bKZw6VPETWfZ+TRQiYalX9vk/hZTEoBFfH6HnPsh1Pi1H9pUuHldYuGwfagm52s8VQLVbqeSkdVVF3+MvJPwkxvxIlc9oYAs4MDgvWcx3eLZcmG4EOc/x8o9NzwPghMyxO07+Dg0hJNwR8LTqr7AQ4ZbjE5iJzUjl/QaUdZG0NWiL2xoeFVIBbYHkBrQ3N+ye7vHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-061fe1d8-d533-4c5f-8e4f-e0d3eeec18b9","name":"release-061fe1d8-d533-4c5f-8e4f-e0d3eeec18b9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"90cb9391-39f4-4241-940f-ef50cf6ab764","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187639339067107753880747448594784573277918293326494153983988495328902021651153793414697601438687666118541642943552335147104189244591042564217876698717009288177857082896343040753756276420375189303702580632308311437275212672506451282296605227175869385396723623750758377531","osProfile":{"computerName":"jianyunt2"},"vmId":"6b41eeb7-6f55-47d4-8831-48e6b91d62bf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA01Exrb2tViCxghBqf+I8jN/418lnpXhzUp3gEwQ8TPmd7dNzUFu62bQRDuXVCBBxxWrRANc30cYZMnA4lyhlz4EuAtBh0dYyA0hHhOEyfuL5UvHXaHrAT8VDEneg1FAC+xZkkaOHbgO/Z0cFvzKzH8qh5/atOjsgr7Y/9ELAkZjz8eQEzdItcO8+3QcD5qBLaFPeFw93bddRyUuds2LF9LmFNa+atZUayrqTQQ7OMXZxgZnCnsgjKFmMhn5NRwO7PnB3nY4z5tS2N0rrvyWUpQRqAUcSEeZ2nUOOJZghF4T6eAwr9JUGwQdazZxGQSiP+uJk7NuF4Eol/eV57UZPpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-ce0a3406-0f5c-4496-af55-073e9159479d","name":"release-ce0a3406-0f5c-4496-af55-073e9159479d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0753a438-62d5-4d70-b6ea-aa981e676114","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418137590617883925589788519527621156749796265708882404585755044261420343217662827649604580680581044899761987076640143146495604771980321395021790557906805261930012625937049008130918145416751621991930775425869611987647397740","osProfile":{"computerName":"jianyunt2"},"vmId":"370fdbcf-6e3f-4e86-8711-40c934211d68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+1W8+9LLMSpSJtwZHeT7muDQua/zQCfrsfJoIwZJavsVClZ95QW4DbTWVmHJ1ulq+vxESQ7aRvnEmc8lcYjSlKk1pM0GAyDSU9hcmyDKifnGL6jbrmf1FRA1K2PY2lts2TzSFH8UXliALyQlvFlVgdo0z1KaVMWtOgqANlQy8NMELEe+D1Nc21xrU9qlzw0af5b+mt1dAd4Etpis5wySU1lWHr8DxYpoimRAi13ozisZKmBfEAC0NX2swnSOLF35bntPSZO7PEIWfLDE9AYgG6OoCqVKVtVcjwu2089LlXqYc9L4p5KzGXmQNZWKqLxcoQAteHNceWjc/Udv876FAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b85467e7-7b34-4645-810c-944f1bc254d7","name":"release-b85467e7-7b34-4645-810c-944f1bc254d7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dc30225b-a275-48a4-a551-1cc6d40d435c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41827386970575386014791974997631444642903841385213100080849639602475896263706629036761808586795682534832161610963145262475126485174209326062181976553657688813757167894247451278004568639443819925333795324077620349470626259456932224100374936502468632352645724","osProfile":{"computerName":"jianyunt2"},"vmId":"dd817d16-f179-4bdc-9129-d728d5dff0de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw1OaGagUr7IRG+k7jSSOKDCFH5dnwT4k7kiHzLKHZuzgedP+BcQTna47VxL+n4u5g/FI8f5lnITAhdN8uwULH89e8ezQblPn+tHGFihsFGpSfS+FMqxO8C+vhN6chhKshSjUjb62jR8+TcqfC+VMDYzPUqgHgIkyPxYK7SPrCgFWvMAfgJfFyWKICmbzElrH9PexBiCVHHT6hGTfFEdCj9Crs6wDEISuZVHbv56lzbAScg5gYUrgI1Cn5K0eIkvYmBu4V7VVvMUFkI7nCx7N5C3+qIawYtn13UUfxDECYr3S+qbjJvo3EZ4uNvJwwTKMqNyFJZcWrN4yPU0uHxtcTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b175bb3f-a391-42e6-9532-a52068a57d4e","name":"release-b175bb3f-a391-42e6-9532-a52068a57d4e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3daf1510-b73b-4b30-9e8f-38c0bb3308b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41876362634331024694275916825552584462648568335329441234115168747497485461565186665824532041245446482922274311186374559765813547941965705657641946193550023392385220942759709538189042016010711966004138523014756415794010426437193578489945965429991748586224951265565427164701451686886106637179529680422083527468","osProfile":{"computerName":"jianyunt2"},"vmId":"97693210-6f77-4e3c-86e4-d253be55092e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7ubWSQmuBD6W3RZ0zWpTMv8uju8MU+dvtCmA/SlCvMhgIrDDB/C0nOJQDKA1DdZd6pLH+CpDnMuBC7bB5dwxBIpuNxNaKnl4Ns0pOya/9bmFxHAaftidenMjk79EnCc3z3rbExnVCmUDX5vZZvvqRP2soNzXvREyTmWvwgPid8UNpOkfzI+BmPyFMcXkxCHN14T7sJKGPthgD9lFwT3vhGUNzc7LgFoDVkFjJEY41DiWugKORC7jA0ov/NkhiiB/yw3bKlPtifNPvaoLHX8QSiywhkdyGaRTGQIFJl8qbqHsX8NnORb78sJ2X87rbtFekBSIIZHp85ucNjULs38HuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-be0bac4c-2c09-43c2-8f2c-628462cb3b34","name":"release-be0bac4c-2c09-43c2-8f2c-628462cb3b34","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4d826d3b-0b1e-4705-9a00-759eb1ba0041","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418453285167107416930593441277885647554085372334638285430679997895697845903382288854406893438324503789142756678284212489566551842220344696352688629850296164823483155014146192984082060849821103133199645404748322460407172509223764541860405633920162618416911188573","osProfile":{"computerName":"jianyunt2"},"vmId":"03baeeab-eada-4a18-87e0-1ac0d4fbf600","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqY2Fe3M3WEvrmJfmiFJdb+faPRddlgpmZwrq0qh3bEKWY7SGU2F4/ox/tn5A5SR3Jkb9OmpdxrIP5JX6ozfwFFty0Ht0mIWpHG1UwyrRWr6r9E+E9TsBlwcxxAEBFLg8OSImeLR/rDryM8z/J7ev0pOPWVZX4HjWkP98uRD9zXKKT3/eAwvCTimEmV5k5NC+2aGzRseitaPAVq0IzDWw1ENlzq/iHvDuY0vPj545txvOAfpeQo6hFwzuD4yqJDIChmBEgVxSgRBITN2NO9XHqH86/4HRp7ldQMJqCpi434rthhICFIVb5mhle2sDkMH9f1ugD3Fygmag/Kg4GDy5JwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b3b23e77-8f53-41f2-9f51-b6b2a62dc0fc","name":"release-b3b23e77-8f53-41f2-9f51-b6b2a62dc0fc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e2d5d1f7-3105-448d-b130-f4d7b442e897","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187373722242402794233650928851715303239897857896266513644501307330387352964976769689334213663835635899855442604313973979942562376758179977838823546937766559155364063517132762144274586362198232044709768673160841169474922648976333993602495733404920","osProfile":{"computerName":"jianyunt2"},"vmId":"e2e43db9-908d-40b2-bfa5-9a65764dfb4f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyWGtcDmhnwn81LHDFOgj7pknyFsg9WODzRId7K4FFKGST5z90oqeOLtDFiWwGBUrxldE8FVEQqMBf0BDVdRtVNtF+cKURMFfrCxlT051dnUSWk+QH/bOrXLnCrnZoKr2u3OjEfK0nEVjUBjg/FiAeO+iUzI86KH0fiH84O4cpN8xm9v8mu7PdPnXf+lRiRCRYoAXaeVI2WozX1R7TgAgoFMzlpRYophgd9Dj+xWx6KN+1DZIRXj2gIJjQevQIWQTshCBAtRk+7y3fJyYvmUrY0+haGW7Ai/z5/mcmMmyvFoquBwcEOTAL/6EzrwzVLK1zixy2j9OFTwU+zMkIwrjPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-253a0081-0dea-4af5-992b-18e747e2f7a7","name":"release-253a0081-0dea-4af5-992b-18e747e2f7a7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6a7e5967-8981-4fec-a62b-36b02279cb48","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418611250257654145040808887363352369289862766011461871618942288949363612731304737105581076747388725395252250284099282171744559619654730616340534013262539617385462632997395777362229975188648228688554930","osProfile":{"computerName":"jianyunt2"},"vmId":"5c1610c1-4121-41b5-bfba-a5e190bb29c2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqjPOIaZC4APLJZtGKGLM2WNlAC4gRjKe2PYJgLIIKKDEORQvKdc1gjiUxE7OldFJiSNDceghpiIM3gxwUlQaoZwvMb46pAECXBC6KPC63l/bc+NjMlc74ejChLIeZtser98sBaQN//tS5GXXmA1e9XCC2K0wHvJfd7pxMn39NGOKP83jw3oNR6dnZZvv+di8COStT61tx6ami7bm0nT4lc31CrhYD8Po53mJgdvMjmizKEafJGZcviQNLCk/llxcDgORB6yAEbnk7nBqeX3XVoYzgk/Ma0sFmdNB0GHAhIzBYkAUnkpE54SpFJNzzb/S1pcg39P7tR6tAM7CVnD3uQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a44802bd-a164-4cd1-bf05-0e83f0f2a1b3","name":"release-a44802bd-a164-4cd1-bf05-0e83f0f2a1b3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a071c567-4e60-4581-bc8a-3da5c89757e1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418717785996194606014192657496733631471522242291533643466974295332443201958130114718999153674678825544059492758504953998428868708607181222995054777331785457566740883373148650886229077322403597219058204781322604771559732497026304552439478213644611790593148","osProfile":{"computerName":"jianyunt2"},"vmId":"562778f8-b8f1-47b0-995d-eb8bc0020406","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvB5HveGNqEiaTdZ3Uja4a5vLNGMyThLXFIeTG6BIThxlH+CSP4moxHJQkmOM1nexeeWnGauh1ko8i2DkhcBCOE/C8dAW/q39lwa2x6i0deQvUpk005YFAJGqu99peg/Yuq2UmwfqaIvb9q3ltt9+MRwPAKE6wztZpEDO6jVlw/5dtAhKyprYZ9XJ10o4A8ME9pSECCgtezHKSQsJhOsQfkNfRQp1of4QNTKkpLkdI0cSZJQfYgzJCpiAC7VpHmPU9nTBbq2qc4WwwS/pxo68DeFQ55z+qOBHBTHbdX2R8V1ZtZqsFSF5ipaM7iDR6ZTPVFeMA+WrG+9PhWnXsY6HuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4a9f6fdf-092a-4b19-afb6-6fa2a21d9f29","name":"release-4a9f6fdf-092a-4b19-afb6-6fa2a21d9f29","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f6500f47-752b-44cf-9dd9-d87f6315e94f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41832263424450253261362921178774986368211797227645407927179541534763986456339494141381423785785745964395871153941329798684724282537372805649924686978852921217836602622944839841262010192290924229067192798089374398335618362663","osProfile":{"computerName":"jianyunt2"},"vmId":"7a850c6a-a8b7-464c-a676-f6b94f47e381","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAud53DMoeHY7Zi6uhtnCD/XTanF3ikmtuSxfgJbtCS2NuGeklMDzDHkseD5ko5mV1qfA1t3XNujcaCpQb9gMB0coV3VjBQjwjZpkbulrmazW9VMRZNFMTYQA+Mx7mK7/S7JfTQbGdQNBWZ3bzYR7er22itFdQtJlu9QC4f3Qtqr9mAJ5Do8qGJULWXEQFUgyffXJOFWYkw6+tqbWDgK0ntmxu6KGcdv8U7DqucPjCnE1x+mnTPTtKj1gLaHpl81tYtPJusJK1qUKQ8Dy1iLOQmc6W1d8izNcuhoUFzaq/eO0TvX86FdDfwK7yNYi+nS/eBqeJ2uQpGROl7CVGaKIgmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-bda7568b-11f3-4de4-9b90-9915935d0c0e","name":"release-bda7568b-11f3-4de4-9b90-9915935d0c0e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f86a6fad-2a43-4484-9769-9ba4edc9578e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41818977600557041909794312886777415644561695781736469076911771240935901697715354518268499335877295981905426451544219980759027796714183211483827190948446542574111571573743545498664349911105674","osProfile":{"computerName":"jianyunt2"},"vmId":"e30b30b6-3c8b-401c-9f39-5fa3a1a7e30f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnr3yfEZsJEXFcBd7B66mvqyegUmDvxVYrT4Hght6l1EIt8clOVWXlDFcdfZTFM/Y4xW95PgEFHHN06ZpOb1il/zENOnPK2CW4ceikKsGZZnFRVmJKl9AiA5hwEaVg/B2oOJCp6Vou/hw/4Ox5KzPghTQjN4+MnSMbg8FynpWole8oQVEeyn7x51qIctOrl/SoY7pwHBMsWToxn/q60vpYC10ZMDcLVd+0X/0x4KWhyVzxCepOVxDyBZFErCiDKA5qmR18CjHK6+DSdHoh4tL+iEeE7k8OuyUiD5eBxtRfogbtoARF2m4SbHBxMQGKMGSlReg9io7aRd0R5RbUus4PQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-34701e58-567c-42a8-a48d-5d479e4a1d5b","name":"release-34701e58-567c-42a8-a48d-5d479e4a1d5b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"647bc69c-c64d-4e76-a335-c2851af3e6b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418558026246492218079961983720491246686000547357678226957917990666013324196423302843243757912651977796817719985156257497134689907629042725237876645594138761351573567373197228298149934972298499122248819944750922269675037771273526423141466850675244843642","osProfile":{"computerName":"jianyunt2"},"vmId":"a726be20-aead-4733-a91c-cc841ac1c86a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuV5kmvK5ziEys0repMsxnFS+xK3oyp+Ptn1CkG3hsolJyxl+6D+xpclmicLeyweLzRDx9Q4HmboVr/LDadzg5ekEQHKhLHSA3ztsz4XGsGHLADvUUATy+nT5i8wNqZkT9SHHdHnltMjs1VMtFIKGvF2GigM6EF6Z1DejF9vSLUTgAsH7LRHijhYhHv2m+qh7wHQwaNlTBfGZxSjPt3tUpavOrJ48judH796VSzSKTGXvTi+EfraVl1Ji7au0p3AWj75yjIZ5DbZqeOqxPB+WMRqd/2/aETY/BvVamC0Gjz15pdTZfxuKnLOOi+KxEG2/cvSd3VsM0Ra+Ihx2jYMwEQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVJrb5swFP0v0din0TAgASpV0zGPzM3a8giR%2bpEQh1gowIAmaavut%2b9CsqnIso%2bvj889vtz3SSXO%2fS9Zld3k9n3iI1mlie6nCCe3k33fN93tdHrIqqwQB1H1N9nbSytu8vow7V42Xd7Kppd11U03M2Fapp2ru7mTqebcylXbMh1V6Dsnt%2fOtsd1o06atj3Ir2m76IPO27updf%2fPzddPKrVsfmpdeUKZ8LyvR%2fcgaqR6JSeJ3uvbdUTVb1XS1acVRitPXL10pm1VdiupOmTHFYoqu98OWVsXAMOss5h7hP2cUj3jIxJthpsuE4%2fIpBh16im7EKyLZBFaxOyBNI8yTNWESMbj%2fRGg%2bmxlz2gXhwEGx4PJZdmC8sUNFD8bBzgwPEUmSmcAMyMQQ354jYgyhMh1mGvr1jDn7KLQokKbXW6%2f3CE7wwZbgkXtVCFyinMQeDuCfXCDGYh2e42g3yrEy%2fUlgd6YsQM44pA83ZGzIGzijNmVl%2fx1Zl5Ndl3pHYswDGBehS9y43DBeR5eOnRRYACZoDYETkMLFwsTiFAyVTKgaAPfZ%2bje5XkQMvC54VHCKBvcxyh4cZCy5X4PF0BA81Y%2bSFajp3nHQ9CPG4wgRvbhImI%2bli5Kez1H4S7de%2fauE%2fdmnQ459ykALvWGoKx9qGHh6RAKUcZTHnnDkR0DpCnjPGP%2b4%2fo3ao82qQlybZeyeg%2fzcOyPnkFFNr%2b0UUAl1xfKGMfMmHx9%2fAQ%3d%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '147741' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:45 GMT + - Tue, 15 Sep 2020 00:33:18 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -1378,8 +2559,6 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 303c0927-6aef-4422-9719-8d6f7e13f4f4 status: code: 200 message: OK @@ -1387,44 +2566,49 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVJrb5swFP0v0din0TAgASpV0zGPzM3a8giR%2BpEQh1gowIAmaavut%2B9CsqnIso%2Bvj889vtz3SSXO%2FS9Zld3k9n3iI1mlie6nCCe3k33fN93tdHrIqqwQB1H1N9nbSytu8vow7V42Xd7Kppd11U03M2Fapp2ru7mTqebcylXbMh1V6Dsnt%2FOtsd1o06atj3Ir2m76IPO27updf%2FPzddPKrVsfmpdeUKZ8LyvR%2FcgaqR6JSeJ3uvbdUTVb1XS1acVRitPXL10pm1VdiupOmTHFYoqu98OWVsXAMOss5h7hP2cUj3jIxJthpsuE4%2FIpBh16im7EKyLZBFaxOyBNI8yTNWESMbj%2FRGg%2Bmxlz2gXhwEGx4PJZdmC8sUNFD8bBzgwPEUmSmcAMyMQQ354jYgyhMh1mGvr1jDn7KLQokKbXW6%2F3CE7wwZbgkXtVCFyinMQeDuCfXCDGYh2e42g3yrEy%2FUlgd6YsQM44pA83ZGzIGzijNmVl%2Fx1Zl5Ndl3pHYswDGBehS9y43DBeR5eOnRRYACZoDYETkMLFwsTiFAyVTKgaAPfZ%2Bje5XkQMvC54VHCKBvcxyh4cZCy5X4PF0BA81Y%2BSFajp3nHQ9CPG4wgRvbhImI%2Bli5Kez1H4S7de%2FauE%2FdmnQ459ykALvWGoKx9qGHh6RAKUcZTHnnDkR0DpCnjPGP%2B4%2Fo3ao82qQlybZeyeg%2FzcOyPnkFFNr%2B0UUAl1xfKGMfMmHx9%2FAQ%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b05abeb1-be14-47aa-a52b-3a7e48f21fbe","name":"release-b05abeb1-be14-47aa-a52b-3a7e48f21fbe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"865ce4c2-b8c1-491e-93f6-eeba8bcf0827","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181153188132125421064233665791647965848938676520421921103129530047960861101654479628586296873688749178576139391483809241552712353999818462736538523293635161466851176841271532724592383756947272333290856436355857384853533169875135992295412684768602","osProfile":{"computerName":"jianyunt2"},"vmId":"78320235-5cb0-4fa9-a559-5e53d866747a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAow/+om1YS1gaoKcpJ0LxWI9Hlf34QydSjhS83Km0wSBif/zsRx/6i81MhAw1/Glm84sBYbMmqh+LxYO759ifCAs2Wc/PT0VKaVZ5rwzKiC8+64DzrsMPq+4q1pyKSTD9HC3G8TEFm2dqPnmZyp3HiEWCh8aED7PkXD7+zO0JPWU9zP8F0Qdjp+9Qg6whqoXsKOap7fjYjiV5vet3vWgIsNGlvgCpjs88p0XR6CtKmE69XG1BEwV12LmqtvWhW47ljRlotNf5Onai/j36wpWVyws46mJMuFWaQgCzEFyeTn94EnD07o1OZn37ILwcKlVHkNs82FXqK1cY4BYmgEcgNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0806ea99-bb26-48db-8426-0a750514348e","name":"release-0806ea99-bb26-48db-8426-0a750514348e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"aed47d1e-161a-44a5-8be0-612e9fa21fa7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41899311343109754995008874120459408445899379834085155459832982718796212341448576324914305477048306243470609349445846443142899120298538493556029837217179517161672963539252056649814781661455838646701323987038874880448527769160","osProfile":{"computerName":"jianyunt2"},"vmId":"91273aba-7192-4d5e-b71c-04003b18aafa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwAch5hwZoO5eOxLzfQA9h8C3/xu472gHlv4Ep8e/3bLpcWY6yH9EswtDCps7Td2Qmw+QxgQYB7XS2mUD89oPezREMJbvI/6S4VRvwPWL5rN7wLQAac1l0O1s7ZUXc/CgkzoQj1CWfj2Aw3V0v9Ayt9XzRjuZ8l2qeChuMMU3tWp6AULgAWHji25V/P3BdACo83VbUpIwiV7KL8lEb4hXG5pNaBZi1SLXDTKfWbFpMxoLzT1ysPgAH6gCRwCqm6zJn9Luxg5tLo8VNOqE9NvuRL5s9FL30c8PDY5Nknq0c20bt2Iqxe6BYtGYna1zG0DnD9M/IVgZfBrmiy5SC2mNEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-0f4c5e4c-96ba-45e7-a28f-956ea774ae0e","name":"release-0f4c5e4c-96ba-45e7-a28f-956ea774ae0e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3d8bb620-a0dc-4c43-a716-3cf9a577ae9f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182683685363386671349537025567595411554976967575939189896688576422629363648811540828684643524464311490976135889534853298867851712527902717773555962793972488742341646366499411282","osProfile":{"computerName":"jianyunt2"},"vmId":"5f5cac16-46df-414a-be97-88bf34cb4bf4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuvBJ7ytZc5deADE4pPmFZHilr6z404U4gGTnPAAm6bECusPOcua0xPyIA/rftrRe+XzntnJ87HF1F1S1plIhr+RuFOT8hGqb1HZxIHmRfAKXmjeCdzUG1e7ynuAsBtZlS143yqwzx3ErllM3523FYdvR7PkzXavp/pHRu1V3vCAksmekM1aarlyyhohCSanUVyLKFgmq9K/KLZ2eog5hwwJKg5rokJ7WqfqyWX2SOzHB8ok2K+L7xV4q5drYnPRU8aET24Bf7a08YllGBPld91u4reA4w69eIXDXyIxYGVITwJ/YB4HeE8L0tNlcO0up1g1zSsWLS3IRRrR26xVEHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b443977f-3b0b-466b-b0ad-2db010822c2c","name":"release-b443977f-3b0b-466b-b0ad-2db010822c2c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0b2ad637-01fe-49d2-a42f-4383af95340c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41855899179665862836119106774923123378744387484445255911595554316230481338159671518649992463625326560138148805367278678282260550083174681053787227327327864472900441317697975748767219605367510355447980","osProfile":{"computerName":"jianyunt2"},"vmId":"9480bba9-7fa3-4b70-94da-fe201b42c405","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3ZfhywB7k10ILLpTczC3Le4HJiV51jbWGjVmJz6WkgZbEGdqyrc+Lq4D1Jy5On7T7iEdYIjwGMTJRQDh28Numa5tD4cGjnu7u/xZ26cJYyiKHxsHDDKgOMf5fs8eK4I7W7bZ0pEzIlmxhWBambRxeVlr6ao9iKRHa+YBmLQvDZUglEKxzIx3VnUEraoL0x4akuVcIGk/PkAMLrpW3eALW2N+HZk806TraxbdcN6YRsEMfgEL6zf4mnS2RqYFx+TCdmYupEJv74Elm9UBD2aYARSX2Zvgyi1Teg7fbidhLF6g/ikTWaNLNVdtit9G3cY3GxkI4MkEY3XWS7KzSLjemwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-69844284-0b29-4cb2-aae3-d6c39d2691f6","name":"release-69844284-0b29-4cb2-aae3-d6c39d2691f6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ff90db10-60e3-4ab1-81fb-1cb2e620bf5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188890896895904238690540022889706513756382925578794422206056659896146528456367244306659442441357767388622880254426578414299214882294306793383476293631543737867196861397266149103525875713443272572732290705559287032569118462217166868334074741291615144791017","osProfile":{"computerName":"jianyunt2"},"vmId":"edab67d4-29c2-4c91-8b8e-7b01c45dcfba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzZtQuX8KUKki1Svt/qlD1u0diJX2YJcaql3BAcUftOSaw3E0oNotQJWZRxAwv7rImXAVh8DQBupRqrXWjohN+pd+2khxNsO44jyPc9HTULcr/nB0v7BZocRev54/Xp3iu2zsB9HCLiX+SCIR6V5NXeGs6zSTFMJ37tZhBfNi6KPzlaKSHEFRrDMoUiyTB9jAoWRRMI0Kel53dSlq3RYts6tyCRZTYmOZW0Xw1/XNHPjchz1++7JQDt5fGnidfGeycgCF1uTGFtUIGhmUIUrdz4LA+llugahXj7Bd/QWicnKjg0M6c0zx53za06HmN13W7pTOji/mdp9U1dvsDX9LpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-15478faa-d263-490e-becb-ce4b8714efb8","name":"release-15478faa-d263-490e-becb-ce4b8714efb8","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0d082c5c-976b-4204-bd01-765ab0bf2346","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41872291683467365232864112651340409965241970968217923415683806157867796154157686989191966088973610975278826229778040816623967533418435266987326908752134530624265862295412986515537637943469746271717896872068042958435587664053567","osProfile":{"computerName":"jianyunt2"},"vmId":"971cec10-9932-4934-89f8-29ed2a58abc7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA11ni1hsSR0C9TXlcSejMvtdwTEdeJsAw/USK14hoph8Kofd7ytUoLcrKbd0VrkRSTa8eSD5b8aJt7RQ3LxmS+dFmXTSwgZp+PNA0d6d9FxOMHk/J2hIfKsjtE43b/TeCrPM9Wb3i4163bMARObVWMfQmes9Egr0oTRHEQxyGu5NCoUhKY7O5bkPKJ50PBfPYOELCNVrhL4spteOuW073y63WrumJ1fX5a32LEhf+hcUmJi3CtySSyit7ZxJqnLluA7lGd/8rNVoD+OX+/m643y5NGp4uL88L34kevYvqSMpY54hP4Qj4z1O23vyt8XzRhYcvcEOfbawV7/oGKEHjJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-64d83520-b845-4495-981e-f2b9df62c632","name":"release-64d83520-b845-4495-981e-f2b9df62c632","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"304e153b-d359-41f1-bdb1-2dbfc354467f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4181402328836207575861545751294652170456727898836203695464112715108710983261646468928687761219439428159901961513007034246146406488475245079704792371027085350044924093400626645822690679198542590159096051411","osProfile":{"computerName":"jianyunt2"},"vmId":"a9891937-26a2-4b6b-a755-d20603ba64b1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4H1lLkXPH3IqqkXq56DmU4+nWkafga0Ailq/gem+KBC/qPBcwwtHKOwo9P3O+r7DuT8Uegute3EQYM8Ji9PPvTV7EI8VTkaCJ/tPb9RAN5zWtkUBMgFktek3l/vKyj0bNg0n6C/jb4XGNgrajBmprIheuqQLugLpAwAsrRiC6kyb+U3SDREwjRO4uDUJmMgYeBI5QBZYliBoZriQy7M/ZP1AscROGNmd8GnNJC/oa7LdZgHk/XoviXvQFi8ZOczw4rltCSSUXdPj7k9HgQSa/baCKTkjfYfZi4CyS4XLHWIqoo2kr2+MBLWNHNN79czAK1iCyTW6RcHhHFJFS0hodQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fdcf86c3-e470-4e3d-bfab-f3219d49fc93","name":"release-fdcf86c3-e470-4e3d-bfab-f3219d49fc93","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"362d4580-90c5-40d4-959c-b26e653970ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873565852964368455832762568455741688138515395372435060369316853752264893578733935806971181644181874733023722244294374691481863457986487814849028199847465404325085894841123467537952188","osProfile":{"computerName":"jianyunt2"},"vmId":"bcfbd747-a0f1-413b-9f48-bf94ae1fc877","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApRIOLzmYm6ITFzIh+zMPh/gh4URAFddmxgu8qedxg2+7gDGmOv8z6sm/cbZFUwuGpbhv/cHgEhNp+6bbhIwT8KH3AqjDhc37khhIepBvkRbrUxn+ZjAWoJfcw7eyU6WY4CYdTKJAf0Esigv1nYl2OQMvN8SL8/hE3vr+pqaGujrp/+TJ6+2sK+KM5FG+I1h5tLdIOhB4ibkI1RoQ28jSjRSjYEvGSli0pmBn43ufiMr1CLahgYjmUarYt98hmmSdAKJk+6PVBSid2tVjldQrBzRz4cgjJCvMG7PRlIXMr9nmfxUlWPY2erMBeI1eg2APP44lRF/R1FiXYXSKpVb5sQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-922ffc9c-d5df-4178-872b-6b3eb04586fc","name":"release-922ffc9c-d5df-4178-872b-6b3eb04586fc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f7aba754-185b-4643-bdff-ca5c2cdd7e4a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418206322286896539953681843609619926592405742283911353239061709081930117166329858969655782493934074029593863476419669585606511154730138507889886948047474811949846536832727043927744795302048310915617699029710973080304126200843502091817287093898","osProfile":{"computerName":"jianyunt2"},"vmId":"7e42e803-5e25-41bd-a03c-15bab7a1db90","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1R45GVRpfQWH1wfXpoW5AoPbLxZ/V+XoJAPiy2XmAIImiqO7rQMuSl5RWVBlePgspOyrM2zU71+sOEAXdlUMS1vxw4jaUnJ76+yJ3qYesdZb+u4VqMDFT7/KpWkF6tFDwMblsdw9ivK7vnjjHEvKyQrQpqfO9UThZNmSQR2D35hIpeyLKgypg1dQaqXcAlX2qp/95qPTtJj05OyFN1GSEqNBwUwVdQs7CV5rfdGO6KHNx+u1XNBen1HjLhoBV0hgtIlW/JIUlRL3lo+E8v24SWvnFqZD807ogdx7MrOg9mkM0QeFWkDJP+k2/3Z++daGgX7Ejfmj7jS0/VtUxOlSvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-975d42c6-c324-4596-8169-7a3d4cef49fc","name":"release-975d42c6-c324-4596-8169-7a3d4cef49fc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"721d7183-096d-4564-8822-0d1274ae57b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4185187154513522752466940831701688978597827524901947302136101415154644710901790605055515989112194230456197411370648664684999445503438785285986024795173387377867917725732406907231873039759975745566262626226892648037561775303394723406425941257968","osProfile":{"computerName":"jianyunt2"},"vmId":"6e6f7f5b-e562-45b4-bc9d-c5ca70ce9c89","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsoWz5SvLH1EfToMLBWZ7Qushq7r0nK1OmBnOCW/WiIHpZVTSYrFV1wL+SxV+jD+6bpTEJ3O1GDZLOLWbPAMxJ2+1eWaYetvLVJR/PPCXiyWah8LyU4iTRlAB8NBF8pmB1Mb2WlGfg0X+EQefdX4qyF+DL2oPOEmlHk/d+2yFRUKQ1vvW1t7FYehzK0J7AtgouPpLNyHkmfV8t/BWJW2iQclnjbqTcVCC2FGKGKGp9IHk/zQXKJKZTBXhvTmWRvlHAMQLDQl5TrH2ucD96CU74LS+P2ue2ypZD4RqU1XmICXjGPZ1QzVmo+SCvzR0o2zmWfp6rQmQSeDgAQtECvL/hQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-dddd6885-8370-4d16-bf6b-8d3d899d7ab7","name":"release-dddd6885-8370-4d16-bf6b-8d3d899d7ab7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9be58758-f779-472e-8a45-47a678d43a2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41881085782565821058755254531479851325234751893272605052377012763226747283337096158128378737098586320590482936825434940033035696439024127597862772200467186541838130536433969358025833041460594763724867258785279405686608770307016380746945496978954","osProfile":{"computerName":"jianyunt2"},"vmId":"e226fbe7-43ad-42cf-a0ed-46f84b25d3ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4QGQwt2RHO41BofW+v48oHzbqHQWuy+XTTs5bmrUbiu9V5OW5C37O1knq3WB2bykV8OKe3YRNYJCq26+YL/BmnsrupTEyIuO4CjI0EnNnWUcn3TifYN1DI+EKVBKdCTusYrodHMLYqKxAim8ec3ojqVZn3EH/lN6EIg/E3SQF6YIJ6ZzJ+E95ELRwUNzeqwqf+WQ/1TOvD7bEDTSxVRBlXt39BX2jiFJQ2LIZ1oYG7O/7dGBaFiyyF16aopRo8CsXFWF1VaGrf0bAFTWpelaKyAvlThTl0KX+QrUgL/e5oa6aOFKRdm5NSfl3toVgTryXZ7oiE2EAW4SAEqM4eGmSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-023d3590-1de8-4a1c-8d59-21ef0307c006","name":"release-023d3590-1de8-4a1c-8d59-21ef0307c006","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0e0ec22d-cd5e-4dac-a505-f663bfe6e90f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41895085894287215096506847044550863166995831499560894099810197132809772738716255420821748851363138210357536892489863014230224802142494090885467877466256512333599916879700474519956948794929924962181044465679972736684792","osProfile":{"computerName":"jianyunt2"},"vmId":"d2514130-42d2-4066-827d-d0c75c8f2df3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqJUuUK8cL0kmzZ8FwDSQzS5EOTkljhwpq+98dBiOR7l6G1qnTJeOrtV0HHJKM0XetEke6OAkeK4aJkFYLAiPbyGvWiPJ2wnYkx7JdTI6/7Zjx/Ds6kVtMwJzl7Gs7ipsyUL7W9TB8vTXpnu4QYIj/67PsOco1JIRcAunsCYMqAZ9u7hbisPveY6if6gwExLzM4itLpmWbyW/iGGIdKPWGKssLj3FllJJt5XH9/71i9vnDLIQsfDrnu/DUT9upLTSjXkkSorEulz28XccgXzhaG4+ura+5stsSQ0bK5splg2QYLiy7T/pLz5fwPmnOgZ5Gi+TUqquXEZqTpRX9X0ahwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-482a6da3-6459-4594-ba1b-4f60c423bd0c","name":"release-482a6da3-6459-4594-ba1b-4f60c423bd0c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8c93b2fd-5c71-4164-99b4-f06c06a8e3ca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418506626722354571795407848382791714725477452614457219852464436510495775173220348821982709743145665107673014423392757564395835345830781220419752708438164268424976966501995373292868478964774702866849979078794558621123814425726871721116440062862262","osProfile":{"computerName":"jianyunt2"},"vmId":"e0743ed3-fb35-417b-8749-ae670706d032","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqp4IaDncndUXxC35VhuxpbaQo5iTUTH1U/XPmS+u/dQH36A9Xt49l/rLVw4OuH+oaEIglWI2WmY15lPDSLA87Bgp5Ztbjt/LBm1Jml8P+D6HYHP5D5XpMpb0VX1RBbpL6OpUj5cpJt4GS1Z36NRsiAnRjVDZ8rxU6SqNLOJTsOnZXFJx+LcQDMovDzOpT6bv5o40W8y21PYY1P8TO7w/3tAqAHrE/CWGmR8SNt6LKjdf35fWUFxT8P9qMvjOsP7ZxSVd993Eocxhgk+18tJtBcaVyewu8kBsu1yPsPHZwOSSnQLaT6Mhfdhrfjv7ZRUJbhrK6c5ZycwB/7IN2nRNkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-fd7b699b-c9c5-41a3-bdca-0828f72c902f","name":"release-fd7b699b-c9c5-41a3-bdca-0828f72c902f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2e378180-ca21-4201-b167-18a098ff0863","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418447988501942827555192821209450584172846593491887254348407990835859682721225072654125579593402010104297148696445525639594191277413533549432901208474875196071297884774028274380325187833182048831284931553697437891358369337594135881449452153688315138102116093940","osProfile":{"computerName":"jianyunt2"},"vmId":"7c06974a-afbd-46eb-b879-b43cef5e2935","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzgpE02TSJImNpLVNXTyO9eU8YahPWWsl898fSQ7+eCue8imVycbOa23/HLyFg0uVoWiPPbGFIVFEvNR8u9iuW+ZO5/x9793R1Bu2zsA53NYl5Bf3G2xSd82FqoA6eyjy1w4fQLtc+Gh5cPIcgL8+SIsfo68zIY/Q2fmsTnOsy0tWJEs0EScHNhQo/jfPvt/ZoKYPrQMA7EXz17rUUd0d7n44ZmqEgh9kcbYqdkllFbHsw+EsqK1cAwuLxsEBuJU+EiRiePxJDSciuNKbCe1AJqGWMz05FhRIwDLwaQct0YZPW2IDl25Qu4tDlb6tUgOz2JBcoxgMSzJH6/XdcCHXoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2d0877ec-1023-4761-a5d6-9cca2465a699","name":"release-2d0877ec-1023-4761-a5d6-9cca2465a699","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9d5361ff-7e32-4483-8984-328cae1a6aff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418761750314326962148873566976669659789469646167235667162020259407614793137095266494579562461973165934542265324519796990412063394335186992170934718554884122949479126747940376114177730616118532802335881263819418412985417840440608523316981854932376","osProfile":{"computerName":"jianyunt2"},"vmId":"d82db42a-c7b9-4935-9b31-238382dd7de9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyKJvKFcRvM5/H0OxmPnNkO/Pg0pwMTgzw/T+wLgYUaQCSlEf+ppuG++2dB/gwNgNyUqwP1Aqo9udWldvDCqAsXhriWlVKrQMvxr7miyNVL1XCCBDWFJyWbXhnKIQNFmokDJ298UBqLRTd13+glEvSjaioZx1FGLpzDEu1JLyZL3jHCCcMkpURDNdTwEeT1caPkt+Zqq5T7e/SkpvPJfGulLaQ9d8hzWKa6NWYdEUCPcvjXjSPkfZLIDZmUfx1n9P9XcngA7wVoJ1c73BgdHXJeWHUnoyTxEvZzrAUqjAcuYQSlxrI9LM/X8ipN+RCq/JtjcdoQ1oD3arApqlneqcRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8013ad59-9d43-4321-beee-604d74fca527","name":"release-8013ad59-9d43-4321-beee-604d74fca527","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e017c0c6-7d38-4d4d-b7b3-31386870ddcc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187059685555423640685015924242233196161867869521151806247310018072278261375043812917740452977330950847141901362396075563811793423900210454366043704850716571458875852655357293577816960020714782556479995875106256891821290903","osProfile":{"computerName":"jianyunt2"},"vmId":"8c69d3b2-6e15-4b1d-9798-8cd2d26d9eb7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu0IKtJ7DqTPmi0qWQcoMYjQVIsDyIEn5s5u13NlUeGayxxjJwF/diI+Ca8ih4foYIe/qOn0mOMxVoHCViJ7sqZm+TsRedZPAw40hZ5o1oxXX99g9l/XiLUZcUcUDKZdB2y/YA9FzGLMEHfYU37psKnPCx7t4LzX3iY06Gp0XUzsyai0sgy9rB85hDcEm6RLUvWxJouqSl03heXH2z/tGw4AfBnLWTQH59ckF5mT64/+rykwVrtKa6dGl4VS7TzjvwLSKU8AnontAlVm8KrUsC7p8vXot7v40jnpX/s8Q77nrzIjUUphvwZaimCYuHTTRrhKafWdrp+IB1jd4Y++O4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-1149cb18-24d7-405b-96a8-06d040903b11","name":"release-1149cb18-24d7-405b-96a8-06d040903b11","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b479be81-f645-4a27-8d3b-f61b5f5a29a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4189003871052038202481456405840103518679038151579424615035417450653713986265428883684135837809942498268018119404278459375880342325166449346844722258745637497287822697186550320840282716827027686173289193586892052","osProfile":{"computerName":"jianyunt2"},"vmId":"d6a0b927-a4ce-4924-8d6b-83648c3a98b6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzCQJYj38BTgqEIxKdc7+U/viHlQeXdeHpMFMDtzDNLPNKGaBcc74qhdhrotx2IPs5p673f5i7/8msJSqTlIHysmzDlLcdHa9LhczKDci9AjJegPFg6GxO2wLeUrPQXprADvamInRO8XsDzra8wx7XX5U/B5O81wvF/FHBhPQUauEdGiEb8wY6khSKS+fqaBdsfkO5bgm0jDCuodyqao+LO2hXNpKsQ+n8vl2ovjRFYQEOSL6HlkYD7KI/9SetrUc8D2jVEnWyAV8yV1wmJ2NE5+e+IKkdLYKhm9ZOloeZtSiGoZ7wXg/0MMgtNqMokbL9o0rzeTI5Rj8JmkWu4Y7NQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-60c332fc-b620-4dc2-b554-d647d47bf140","name":"release-60c332fc-b620-4dc2-b554-d647d47bf140","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b2bf9339-2dcf-4d81-9d0e-3c68b855f492","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41852818074276836416535986559088805922439877838617747657611945721404571826397050287919901469067098891510858186421124366215510376199139805948915762984332612094271475281565314847075463861565989152291970282628694883880087731860515215196835241276990","osProfile":{"computerName":"jianyunt2"},"vmId":"a4419452-6d02-4617-bb55-9137fda6886c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzhSIvr9ErjKHsExSZu8LecsDNNkuzy2zJsWik4GLfwA6jYJP4nQMEuTwe0NTIFKZz8MRVGItD3bD6Y5oEJt4ikcs9VbV2HxG/kkTqwxQPj85egAQX/FhDMPckDfbt7FYsmr3lQ8QQL8NUKcvFVohjYa/82eD3l+puKXt4KW/5Oq1xngcd5vCL7OtIKTqgUWDz7gh15BpQ2a0hbfh5qlTWxer1tOkkP3A5/pF/AxMPVIkFLZ6LQPyvO8QpS3qHcThL+2qxNvH1o2BBeEpVysTP2cIAaiYxu7nsH5idTDPCwL6fPp5n2Es/VCNxqko6AbgEHxEsMbpC3U+kf+eAjQnawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9db50e5a-f0d4-4c8e-b9f5-66151c8adff7","name":"release-9db50e5a-f0d4-4c8e-b9f5-66151c8adff7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e27408ee-c2f5-446f-8dd9-13ccef00d2af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418176878286276651036238716972592953244257336899849665994438137110542934751732747293824406041776561586772030468086991233199695018292420876321104447270355099161346638003610317322695560853591826708354547246140284165051459","osProfile":{"computerName":"jianyunt2"},"vmId":"94cce8a1-1bc4-4475-a233-f2800d54457b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuoxOIJYCrj3AnUemRuOK5X4REnfNvlMuo4SkSqDXe7XLVgaXiq5scs+FskSSVbQ9ck2eizt1Oc1FzdShiGQSeSpE5ph4eL5DxLNtFBtY2qhGVTuiXzy8J2pev9mSKQ++rjC2JDTDNK9upjqYUK9XnfvckH1GUE8er2vLBifR99vQtZUr/SJTYdO58/pv+JQPSJ/m/5AQYVmzmwKi6g+azf4xZP6LjL8vohmji0XT9E5hvLpfCjeeSQe9eXbYcywO9e6Z73zrkVCxR4BC0YAnQLkwRpQ4m2gPpDmHw99jhTXVkpKgLffqrOyKUPsHgMrByGSUZnx2ZVyVKbUlZFaFXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-50356e5c-3b6a-4bba-a851-aa3b14ca9c13","name":"release-50356e5c-3b6a-4bba-a851-aa3b14ca9c13","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"20ff06fc-89be-4ce8-acf5-f373d16660c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41893112582821863771797896362495821151999581507427240881585504665933321632595467142046981142741695519673148293996410908019433418815288719142496403063953759732101020944696635657438214047341723444311968560096351726964523835828729","osProfile":{"computerName":"jianyunt2"},"vmId":"b6990cb1-f49a-41ea-9fd6-0e495c0fbba5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu7PyIDCxXRttYEJ+FXljv8uDwsQs+PhAmr4yd5UlkqmHN1SzGhLQrSjjgY0/ug/Vg0q+rY2qufYhO5S/qQUcy2PE5WK0rsnnOjzExDSUpNly4ssWBD3bgJLVX07a8NJgmvpyW0JF3Z0Js1KXEsgEInwKQUHHzJ1Jig5/w4c5N2ypepfgR4cpUZXUQzL0SKVLCUmrOgBVSv1Z0Lq4LXxkBXbU61zFKFLKNp9Cgp3c2gUhHudnx2t5mk01YtNnTcgxb+FgIm5uIlYpIakRBWBl9Zo3V+BctApLy7tGtJ2Z4W/RslEvRLkTRECDOvxS4TvwEqlPQIS9PrNAcymxjk5nZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-20613099-4447-40cf-85d6-e963425648a1","name":"release-20613099-4447-40cf-85d6-e963425648a1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"9355b4d5-8309-4ff8-9057-964564ac0970","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418697628713724329792337459609459444547197852240751026644509309712404122416961943070963455319497459815173256490985425145827676328374545721142129582565713121137808733547083347244715888212407198950473751456361956582","osProfile":{"computerName":"jianyunt2"},"vmId":"8c405909-8e4d-4d37-a16b-a8e00387eab0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzbPRxzKqK+MSrtGuM/Sp0z65aRkfu6YS4L/1Euoa11C90Mj6RLh6QCpMYUaaqNiST1BRR67Oqb5JSpoVmrczjbPnoIwaDsvTcgc7soH0L26yWmEKG1eTnd9w+6/MSTdRbnLJSUa/j7guwtCIgzuMZR6+zvN4Mz+xbxm8bTlCIttM959O8+fnoECWTv8O1zwIGBW2kRGHrBelyFzE+jakEMwBT+Nat5RlxMOZi6FdVwtSC/BwtJ48PLqNSTBdNSuRp/p7wShTtNHWGokDLfdLOXwuqumePKYKunYKFF2fxPOxS+MouOfXvt95UuG7lXQi9HKVYQxTNkQD/0YtNEUhDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8fff389a-910f-40c4-b00f-9813ba2008c7","name":"release-8fff389a-910f-40c4-b00f-9813ba2008c7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"82671360-7e21-4230-8fac-525bcceb257b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4187176254765565658806102085763912804658573348488849802644418271614896484221405683504670150047045641380024763393917665797957546225574873120893951911287938118694149926494667263730419337779935184558479","osProfile":{"computerName":"jianyunt2"},"vmId":"d2c01013-73e1-4677-a9e3-486d7cc77c2d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzDs4DcR14SpUDig1J6nTOQ02nmZrp4TF08NC0sPWx7dd4tdyh6YAg/U7GYHG523VYcivX8f7bTHXHsKvQ0FRMMvBiuWS3bRgh9rrnXKxd1AO2bmK+sstj53+o/6I77zIVZdXlm+taLrzdhKdfy6y+ahpDHik2IAVzpOnAillsTMbRbGwjCn7WsaH4S2dDaa5x8Dzv33f5t3WF8j4lDNntbn2skv2AZMU1mRSRFiVGg7C3h5g3AXjxd3KhIFs1fCZARm0vlywGbR6MJ85Q+Nft75LgK4/c5EgDryj0F7BhfrtxA8Gj+ocuklWDOfA6ALiMSgEtqTVJXfFUiWiS4DDqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a9aff278-f4e5-4b4e-b6a7-805634cc54e0","name":"release-a9aff278-f4e5-4b4e-b6a7-805634cc54e0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2247ac8c-b35e-43f8-949a-8c8bc33e4b21","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41831735483976844298601766597515008770649088622576248973891205033563429064745971542808148734499128303624362977530553217960215726557083119482938927168037555794856389482237123243982489605675649662404269398138936769785161525746484","osProfile":{"computerName":"jianyunt2"},"vmId":"e1fb244c-86d6-4663-8271-96106e0c5291","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu4ei4mL0mF+/hxKUtzirQ3Wh3Zik/X0kJPAcrJ5oKZ2SWtgiY4VXzMeAJ6TRR2KeL4Gm8cZ9ccNXoNyw8/+fR+Z3oqDbcjOHBuGQFRzLYKUQDmuRGCJO0b9dsPNjuJhbuSZ8pQSOFZrEbj4BTXzQWVNZVoFICWGsf1yzJi+AT2+gXA+K+cJD3csUAuOGgdkuuCNh+xlp5+tzFoaMUQS7Fel+oQbBr0jT0EnZVGyhbndYac0wF4uSfZd/te+K/CEeFU4xJTXMR0+z1vGqPNZLcYmBHqNrop76rf8q1/F/mH/ZmgNrguAwHc7V0tgA1hCrg3ls9hzRQ5jC0xcgDuqTiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-5f92ffbd-feb3-49ff-8c91-d4aa0617802e","name":"release-5f92ffbd-feb3-49ff-8c91-d4aa0617802e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"175b9485-e387-46d4-a703-954967ec71c8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182905686789406853940734923875850742068606802329238528782835747213804097903775224517067127462048717342674397643087399689351192776650637343915470808227800094399067714264721059292261130353427391773318616726626293946632819604308722345388201802450737238486","osProfile":{"computerName":"jianyunt2"},"vmId":"e28decf0-d408-45f7-8b29-3c8783d097fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAkdTgANteO37m0yHwTXNTdXrpXBLdJ194iazxAk5Ty0vF0bO5ejVH31uwJcrubGSO6QcTh1bHHh4zq9qwCgPSHhqNuRcFbPT+9Cuucl1TSiRd2kEYgJZdFMCn0LOyVYNjlE7Bnj2h5g+gnI++ILhyYonvcyauM03usYJM5dTPr7BzOsQWSdkws38MX9YBYpeA/4k2Knlh4BG/HyXkuNPY+9OKzlkSZ4rgjXA1qqdfkQPM49vnlGl1RgbEEFwnjhBhlvh3iweVDRps75l/tQXLRJOKN22vaBo2Q21pMPG82g6TIZr9aT3iDN5pE8PSPEOm4Tkoh1IahbHnMhTJBXCNbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d2b0d8f4-7d0f-463c-9431-72b789fe2838","name":"release-d2b0d8f4-7d0f-463c-9431-72b789fe2838","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"37c42d35-0aab-4020-a7a1-c3fb5f0f8d33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418741724472328815413152748421548393523912597320120082679675787274695425182538136042066754560760663440404688357682213295336985974447628386751785439928050973465838488566549937437805298649164721081479200597945028429525238704","osProfile":{"computerName":"jianyunt2"},"vmId":"cf0b2ee9-cc86-4bd1-b29f-13b05c4db630","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwu13AIQxgCxQ6t9NyHnt0ynyNE/PMzXFOVrdvtUFYS1/IUeMD7H1NkRjmo/5AwsiKOVo+yaw2MrbfhYgHWIV59rA6BQesqj8tBT2Nt4jguSbCB9Zonjn95eqbzFsaznwIK+/WiRoFalKpU3p6HUMqTNeVjp5p/BD+rZn8t+QBMEv3QakhplKiTwnrFDrulCbuLryUes8Equ6jj27ScsDbHeBTob0szVjN2f9A7xQmnJ99f2/5xFfhRqfipzeHkTW3OvxOiAgSk8fIHEkZ3Zpk5q9GDt7gpVE0ijEmB89zHSu15BcvYoiGeOiwfNAFZhsSGrTgr/mwNHNjQIlTMTBzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b93a0353-ac84-4a45-9bac-1f71ff5257eb","name":"release-b93a0353-ac84-4a45-9bac-1f71ff5257eb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"475e5ef4-cbab-48b4-a626-c247eb9454ac","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418395785465833374622465063223333653070355403423512076389129883234579332572333876187442212191675612380341737213353650797358686152426349324885710085248582767648107114394549212289","osProfile":{"computerName":"jianyunt2"},"vmId":"e6628e4b-49de-4ffe-a438-b800d301d05f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu5IAWxqNjpsn+Uk+V9Fcy+y5lt0RJx8unQs4RioSq+cogK7h0gfVFpNNzLOXDwU/ueQRkR59vExgiAkJOa5FdHrj4JPq4WpZlOHC6lbqrxmU9PZdXmx7aqHM+SDw0dGTGq+MeihmTsV7LA/aNy6XxAejn54NDEZH36/AOQN5eX81vUlpFoNv8phmsBVWP0pRtfXPFRlJhhk3mQ9EgGQop0dMJn+U2MBVSHZSkh4WGt2+TmVsJTKGLc4jv36MDXnCQrlhuFUGSZORI8EtG8/aTJ1VT9HsvRrLAgutbsPnkWO+VUlPFBuPx+MPirnexVRHcx/R7dIEqlFjbQAFiQYVwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d0a5ebe5-80f5-4eec-8804-64a0d8253d9b","name":"release-d0a5ebe5-80f5-4eec-8804-64a0d8253d9b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"fdafe6f8-4544-479c-882d-e3c883ca7433","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4188936933394875519590960389069754953058416299419264094875368947441185240370406508561285678410394267435755334743322528947035463754939239661131599153771253596481450821274965600727734642942453489816194992165188101285862145494191871379115889335980","osProfile":{"computerName":"jianyunt2"},"vmId":"51390830-38a9-4191-be31-ab33e0ef7c88","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArNNa4CUrBc2cdV0PdALkWEU1OTeGzw/DdT8f1fI28DH8DKdtNDSSvLEVrWL+La7482lcRtWeteHXQbXPrmvq2l1RFic6gEXOhxv7284c2gSlNUutnNuLYSIA9zlDvac9PXp0ibrMDMGvB7n7mX6qTCR3dxZ+DeKy24Y6Le7E0xoPkazTQDacNVT4krPlZ4Vf1cDNqSE9zIUTkEeUXHY4jXlAksrySMYynv3ObjJaQISPogTNaUlZylRkZPHWeS8cCqnGYIrJmLSoLvX1Ns6xjT8llB3UbV2LCBvvDusv3jL9osufAO13Tcf5+dAB+ed8eFuq/xmKzXmQ6K1+xt6ZUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4d518867-2fa6-4969-ad21-0cadcd4d1df3","name":"release-4d518867-2fa6-4969-ad21-0cadcd4d1df3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"eaa66dd9-85ef-49f1-ba0a-e930473de4db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41844962438156411253721784549539056164657773341988020477249378651501128197144232815660636415619155258222629031291552091163240218502634600849221591401756995668844636099399674257183801765264361258799653394293552150236443835596640283722993709440174762692","osProfile":{"computerName":"jianyunt2"},"vmId":"ef632336-2ab7-4415-8192-754ca4593aa7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArXFF4+B7hBtGX30+aj868HhUjHQlzg2n8vy7NzCk688ibvn3UopX+Y7Irb4OsWp70e1Eh05QGybAdHKwLcSSfO/yGegAirPYS2tmz3w2/f4RN50XOPd17SBtCN3PInq8uIjutV4yaxyR5Bn1dyTpOtFCNyFboHq3v8BoWBrgoSmpSZXmpI7xTgY2l9hWBNNU9C6U/eHqbwefgONhjhDB0ggtlZR68wEwadx/6OfFzucZ8Ys6rTms8GBHv5m8cPrYVJVREAmpINiDT/9naUTEPlgRDlOo/dadHXxSodmwTQ3yDryeHAka8Np3lPrHLT4634nRi34ehaRd5WjvFtsxDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-b60d1a8d-107b-4825-8891-08ab341ec5ba","name":"release-b60d1a8d-107b-4825-8891-08ab341ec5ba","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4944519c-27cf-41cf-aac2-10b4ec22a83f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418819169251223314081152016720206550777532444076637065677523574837155655936094311987532598999068409469112966536817334626856306695808608983134737659923604945521263345546245611500131198821187120835995639684597150313549","osProfile":{"computerName":"jianyunt2"},"vmId":"756b0785-8dae-4840-a4a5-12cae979d938","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7worY9OsBbrlizKTGJOy0KeaLWWbQJm4HKaVyCXX25m1Mp3Lm3koZ87Sa0Tcy4vs8ElpyGqAObNA1qSvFyUkFTV8F0f1k5XRpMErpw3I54i0/5t+SjTYBvDO5hK5l5AjyWyl34TOcoSvgjSbgFzCX3g2ELOtzd004sQ4DN4pWjxLsneUECaEf/ZfDYcNZVHfOx+ZoPEy53OP/LI4FIbnzanIeCZkRtWSc0cPyUQFkgoRTQMkRqd9jFUrTHdT3RwfnqD6G8GPbWyWVcpJYWJIk4HcJudzwKvMK2gmdRzjF/sK6S6zf1AnnJ8VSxpl7GcnhS0V0YDFQw+ZIlxr9vhZXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-a40155c3-a7b3-4eb7-8db1-d5eb67b711a6","name":"release-a40155c3-a7b3-4eb7-8db1-d5eb67b711a6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"979137f5-bc27-41c6-9233-173f3aeeba81","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418861075229300233975352543878851313146573727617917045892915172970121622252848061724648440526442687779987054939599879409610760515183100572739202646318735043783551433118528363757120134322361993301301743368365618432263413484201784202359424660217928272","osProfile":{"computerName":"jianyunt2"},"vmId":"022fcf16-6ea2-42b6-bbe5-d661de8b25f6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx2Nn1yeSQf7ZFa7jHmn2L3U4FAot1XxVI0JVQbtvLq8TgK3KEA+QDShGvEBXlpzi27+9qI5mHG4FgcCYH72mTq2cX43kgflBLpTZmKTET2JTMzcg2df0YwsMIAHwRLP6lBKg8fq9T6+/XNNHLggcV3hAG1EDP4ezuginkxqP1RRPh/Og1hyuXQrD/kj25NMetYZnHqXwdLXhJ8h42nKSf95Wzydju77QIETUZxUOkpeHbnH1aFInXYLw09mpfZCeHnbU2yQFdoHlJZvhyPpzQZuCJf9y7m0uu6BokTTzdv2v56mMWuLsySLdNBD4vyQrrCC31Ry3fLA0LvGogRIzywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8b0cce0b-aa8c-4839-9303-d1b83c20426a","name":"release-8b0cce0b-aa8c-4839-9303-d1b83c20426a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"0d936325-f0b7-4ee9-a04f-2f472b21d1a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41850464227983899616979658314326636663822646375436250057927492470433616436139710014619597959066715254891258641751321815701310357138617726381538548559950654343434678952996333614518008045347852","osProfile":{"computerName":"jianyunt2"},"vmId":"1eb58cc9-f293-4594-a353-167976c80dab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5B1J3uBXwoeZxdo4w2ccD47H/p6QUPjRVzeBx+XhKVWyyg4Fbwg4wWSnZBox8CYlvVpo+scV55MZ2/9gexNEUT+Hvl56hloAFNlKk9K8Iag5s1t3I68wcBSi8YJDU3eg6Zs9l78eV9mNA4qm0sLIPeZlA4Fb1z/8+rmnFvTpNETmovEiYNeGAzVs9mUcTkRDvBtLduXIL2ytc/0RD+JvRqmU+8jQqfdvt9h/Qb13KHNDnYtpJ0QowA3h4hTsmLqiRNACP+70YQqnqvW0b4L+sWMW3OobMmLE0ZkS0xexIRfhIxBrlChZ7aqpSjgF2wTNFn6urrH7XZXOrnNJSMieCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-6d261b79-300a-4b0c-97a7-90a9c14cc147","name":"release-6d261b79-300a-4b0c-97a7-90a9c14cc147","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"46f4c3a8-bb32-4e31-9b50-5ed9af7a4f87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418555228377677456861628966432175221749389782351521296952495591527440935603874862432624582658322584066535148569240570067885146143354560789133574064283712995157786664","osProfile":{"computerName":"jianyunt2"},"vmId":"6c323bfc-dfcb-4b65-9da8-49c618d05207","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8xI8MqD1xHL16W5iUVnMJViNEZUgTdYgF7wkoEH9Op4HokW98DWesMqidtFneaMWTToRervoQvJx9fFL721kN14OxShNwc1reXjStlWI8hARiwi4n9tkKMMVAPgDl9ra/lUnRw+WHSBPhJ7v4OKJ4qxMfWddER7ZDxyEIhzf5IWZiyQSZn6La4T4DRSgIbhRfDCrUMLitJy8K1O8oq7u6NelgSlFnxSsGmGD6WwrTCV1yv3OXl0KKR7hJPpNPLk5HbBHraT7PwEI+GOXdjUFT4PkW80ozzH87tTd9VpCJE7PX7tmDrdOhvsWhM655CBaW6ld0QogBPqtj9rdi5l0iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-aaed75d2-b9da-4d64-a980-6affebf5df14","name":"release-aaed75d2-b9da-4d64-a980-6affebf5df14","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"be3d4469-f0c1-4b78-9490-70a63123dceb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418339262235770548960397765828436216339217745972235174194577041802948159823465964526436342783383179400542215683853482165699044860082385825840355651051932795274529636129386397448231218","osProfile":{"computerName":"jianyunt2"},"vmId":"9ddee766-cb00-4581-b990-01bf364a05fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1sPVkR4bzqgo1h4c7dLFpUs/gwvzrj29raEWn7vytcfTKIgrUjhzMEkm+qOWHJwiqGZiP4mo756nwQiocssmP+zdOobhkGnC/BsNk1pvmdeDZ/ERtpfXiWwB5gh6LVNmVBVe+Emlx4jKjffXfKz0MiRLxGxx1UrKHbrbwOIiolepBU6nED5R3HAjpulsP6RgBHoLtWstjdIfViEHmo1DfpkYU4DsPYOzzBXSMrlsZ+1t3LkKY3IuiFO8FDv5wQreeP0HRQtKjHXAL0LergVJSXcj7iCmx3qSdw7hrysP6O2cKlj1CTdwexotUePnGmLTUMxXt3ftmNDI35JJxQoMKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2958ce3e-e4aa-4261-a045-2b1160dc99ae","name":"release-2958ce3e-e4aa-4261-a045-2b1160dc99ae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"37a79e44-6c49-46b6-8061-786fbce2d26c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4182457419893104864699284657231952775564451865465826467180687869927461362692833867745862052452931264289237962387203840103835098953073185390838402363129603682513339984705809102934852295198344405073","osProfile":{"computerName":"jianyunt2"},"vmId":"ee20dc8a-dd2f-433a-b530-7049886d07e5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm0qZHizQTrz/zpL2ucWl3oPll176pjTx+lnWS68fJby7H2i8NJmXDhchv0EKJaBK+WIHcm4jUrPPlQPTfeEi+XVRBfP8jKBfI6NT1g0GvCz1P9PtdtYdDMNdtWwFLq7aFxp+sTIexJ+XBGNMcnQ4sX7LQmNKJO8eIDXwyXQg6wxpdjsFXOdncxvmKtN7vhixDzaO/lsjD/eHM7UxwbCCJkVcpPcS9eYeQgB406dw9ekX5IUAsn9Lkes2OyI40sr5al8IE8fO0doMweIbIfGX3NhqWrk9ebxJ0EpR7GHbDuEL7yE9i/y4exCaNrMYnBCVeLDu5Ag9D3KYfGAprnjvZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-145fe537-748a-4a3b-b3b2-1c5f29a8196b","name":"release-145fe537-748a-4a3b-b3b2-1c5f29a8196b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"56c61401-88d0-4866-a3c0-35cc893a133e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41818588562046711075259201905335293034882509499094335778623136399660640149527421354959993240332680862322174092153856196622797628854335302411385022014345780798304149151765237432255947236233826945528193","osProfile":{"computerName":"jianyunt2"},"vmId":"09a62d93-7a5a-49b7-83b1-a46b256068d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoMNzjcufYoiq/seSfDjrq8krI4FkpaLwRkMZrhbfmgVs56WHj8DHsqYnvyDRiWxFv6KP2cJfBnwjRaEqTNrvYUkU7INXlZESHs8D1qZBJbTliklleZ99SyR5FIZkS9tixPQI+5d0htzSrwVEQcrYLODk9OJtRvdMo770lrwxLqKFiRBn5Xn+MQLP3auG0Nrj2DvFd5YOqISHPg+bt7UzlsJ4r6t7MT1rUIaWXiMVGMa5KOYNy0LWLNsHsfjCi5upXIE8Ury/FIs0jG2nIam2Ktshj+Rr9mOifOL+7cE8rXbIA9FCetUgNGzPxu1he6dKXPkAcWwyBB5XV1731iPFRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-9f774305-76e3-4976-95c1-c28c4b35508a","name":"release-9f774305-76e3-4976-95c1-c28c4b35508a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4bc28a14-f448-45c8-96bd-88b43e426dab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41884304476415055942386622082218146205865781485338060985419359501428956008531729917124187065966873891613136115573385160680468242440193863877301140075431484630639734255044296466042385345921078789621213317948339905245545687048379856832873623314","osProfile":{"computerName":"jianyunt2"},"vmId":"7fb4c3a8-7a00-4203-a505-a5d1746af745","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzWMJrE4Zc0oAiPGy/W5y64qKBlkoor/tGKaEwWJzzsbMP5y8VVCwGJYYtPMEZJKtBv2PtyCHFVPfIrCz1751ZcF5aDrVnFG0PEUauvjnxnw/mYjlkRVeL9GmKCEfD5g7XGB2H3T+r4GwI4rzj4cDT78WUT1tYPB3qt4QoRA15y1AWy8SaDkZF3oXPl2LCV0NxyrhXU1rmyT4H9k1b5WSxQK2okq1xSG9Z3teCgwjORURf6Q8A4k+2lIBoXKWFZoof/sOcmQpy1zWkM/4L/BklHO09VuaXwFUDkPu7+alm8QSJwr0u2jGSFACezWO620x8T3H1RicBpewA19MZ7SCVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-07ec0202-babf-41d9-a639-8d95ce805c0f","name":"release-07ec0202-babf-41d9-a639-8d95ce805c0f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d36f03f7-a616-48d0-a00d-f7314f803227","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41873471495371498625340518395174245180128878916315563698704635288483034156971988592589861948679554678138198589877128428442969268069273766553956682935292589900114127107175988545625879519997069696281412501126177961249","osProfile":{"computerName":"jianyunt2"},"vmId":"96b2664d-f8d7-47bb-b172-9df58db8a919","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwD0oUz5SBI2yrYScGO+gWuJsm4I+d9uqqD0CFOVxJXZ+XStWmcxgG3W0313cAVrz0OORSliVWTV/U89e0uKEuVdtQNxDJzl4CWc6pcaGzAMrLqepqSi+fi2a+vOF7ZE3nWHaHq9gccpylve5BTvDoJPJjqyMzNzFJ89/QyGmFe10bNO6z4CLG3TB3M7udCuKn8CTobXVZVA8ixIeb9KJRZEYJGfq41RKHUNZSPyfmyAHE3SKypOUamGyyN7nfdYglIJBz0S3C9SmyiZuAIkx2svjEpSEb+L0jqHSuvIQyWvVdmBpm5tV30IWZ57Cjf+UdjzjR8U7iSQE0j9S/wT9MQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-8a8f28a3-ad1d-4e5d-a61d-6474bbf529f6","name":"release-8a8f28a3-ad1d-4e5d-a61d-6474bbf529f6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"add80881-04ad-447e-9721-95d64ff9323e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.41878784260986275779425698151314090666728304360793339853946797374935708207719273523153805495456063253561361285476167442049285851188626071643593137535043569856162849853238631643136938744962200","osProfile":{"computerName":"jianyunt2"},"vmId":"1929e72c-6f37-486c-a88c-87270b6f1a5e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9yjG1egT1W3+v/Hd6NmxupcTSHptvMvT+OS37BAOOfVHuzJPjNMXaCKXQU4rv2zBtH4rmBoLn1r3brA+NE6iBJBUmS5MPYwQ2a2NPwhZliNwrfxjKTwxafzfK52Zldb+n7LEcJNGNqrXD+z6/AhX++zgi2+J39zIntRABrNKoqcI6iTRqeHcLBYyjI9qFT/sgRXHqixfwiNyPzGa+IikONuPOGKMDU3HcZmNHWBRnwhsP1f3DoUeT73szw2GJmRZAsoi7AHwYHgtV7kcHg7CyIbsjTdQFRc7dToBxK+pyw51Ct8es2MlukE2glQ050/WD4q0nCLXh+baw9XcsXR52wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2af835ad-e841-4c84-b918-faf7671c3e07","name":"release-2af835ad-e841-4c84-b918-faf7671c3e07","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"89e0cf2e-f487-4ea1-9373-5cdeb101ea1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418384126925842442146628912861168998318212139917850358079955584764243312547964077854354344016925586211189164382017451829492878461417305254027238795539501463819385952952051244","osProfile":{"computerName":"jianyunt2"},"vmId":"90548698-6bb8-4b02-b9d2-e5b320f1ae36","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuQpQMWpS++Ip/Ld+bocEILDPS7Nu5BK4/2jn7Mtr4WBqJXjv8NmA2pRTJdc6p8FlUdG+ce11v18+OdIYqQH0N9IIZZ0OK2iq/7l357bcLsraW3jWojxJ7t2qsbKZBRjeSZlnc52NmnSYsl8kDgsgwzK+ocdfBBvCjhzZCCyc8Q2asF7umUDHfgAUNbXYYR3m+0neAQEsJPaDMVBcF35r9ZeA+FB/DONMUrtgbz2TuNvb+6EwSlvnHjXd2HOn5X7bw7z2b+5nbVwByq7xfqPCiyNPRixxuVY6M9CRqKlOkdvoTcUpxW94y5q3+vcRL5UJXNsZGeCeVmptekuh2HxjYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-d357aa35-3427-4584-8025-c9839b65828a","name":"release-d357aa35-3427-4584-8025-c9839b65828a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8799f7c4-1f30-4a94-92db-be930d125de9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.4184956710738703135502786933885521121166163792673505609769224696167588976512974405023297247335588994650206448670982415586853153277411411166129763221552668781051269501426885789574818231126792867633369121114782456511","osProfile":{"computerName":"jianyunt2"},"vmId":"3512258b-6c2d-4bd6-a2e6-38fd0d5aa4e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsMG2V8Npya3Ob1iVZRIIsasncJhJav61kiqSfhArsSiz+FGYHfYgYp5qHz0WxB4pSW19l0UKZY6lo2zdX4gHwlwXHvxf+XguLScThT6uA2XpKNi5UwEtxSFPmqRrF6Suo3MT+ImqADaIV/JlnzuOO4tmVOhzod6OyS0OoKwWiQak3UF8GEbmx2OcPMxh5ZFz/anPCkuhePRwk3F9DCStwDyqNhQApal/h+MtTB4I9YReqsBw25T3F9HfmmKq63tzmI/yvhCoh/HLXKGlauwV9XEOzJeNOCxhHqi7AniwKD1v+EHAXUggaibKyNTQymtvS+iWpgYsiiNjuDGupf1wZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-2e3ea733-7961-47ed-8be0-a86ce073c4ce","name":"release-2e3ea733-7961-47ed-8be0-a86ce073c4ce","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5d136748-6823-4879-a9fd-8bf2d6668f6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418972685927279991922227749746193568386413567589017594223286064217542145143332263078507861420158127518981134684902220814236619916137394574807657230821335407043102964829387889793074262831635024847182","osProfile":{"computerName":"jianyunt2"},"vmId":"2156a3eb-476f-4cdb-a9d3-3eb53ff76aa1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7PqmWXtL1YGDjXVHVCwMQX/prJ8d76OkuALTji6PaveqLuvNm3GMR2Dk9iwR8F8PrkCCVFocOYs4W1e4JlcnqxwsWXs6xZkcOcRY81OJ3o9dO4xVCE8sFUZu+l/Z2BgYNGSfAF6lPrpIU25Ha1a05Kjry51F3P8kehU8K1AVaMtEGMBkaCDQ748YBorb5eZQ0Mg1nVAHv6ZRPTW5aDYzugKqvYH8xJJLgPBw8fOuCpUz4CKUKjCHVNfBCtKLasm2/m1k3MQbQeCydRFqgJCXijsDoF18IpMJQqZSSuFDXeoRpKszy0BcyHw0LvuC1HkvdpxTVScSsutaWQcygAV7/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest3/providers/Microsoft.HybridCompute/machines/release-4301f1e5-a720-43a5-839e-587c6736f5ee","name":"release-4301f1e5-a720-43a5-839e-587c6736f5ee","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"127641e4-fe0a-4e00-968a-64ce3f1f8c9a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-24T23:16:14.1576578","errorDetails":[],"displayName":"jianyunt2","machineFqdn":"jianyunt2","osName":"windows","osVersion":"10.0.18362.418451634383268647779206044733319323369909875552554683463012855724336441460938095265782888154599695556495402436841286853817980318779533713983749788470189069489167027036971202282289559383043843038612373534367371","osProfile":{"computerName":"jianyunt2"},"vmId":"64f5ed87-71f6-4d76-a1ff-b2401a815170","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuvzzZaVrfmBf36Nv0sMpyqA0AFCw9IH6zRrpqgHR1fN3qEESBjVocVjggCRT7MIYAcZAMMTnM7AgfF48uPQacERkbNog6RX5NS3FsoGN9iA97u9/1azeBEr4y5AZtp/PZoqplNUPciC0bCgLtyXYF7fMsYZm7bSNsF9ik4Uo2IYhph9dyHGkbEZ3ywBMgdaoLC1X5ryoX5mP7kGhQZw3zSFSyJRIhaJF7nxgYEo7I4BaXMofnQ1Tplmy8JexwD6eHXt89yQLEvZ1T3E+CFKtMzYBCYSnwM0X1EG1NU7fBr58hNqUcUN+Dj/m6Q6YLqzHU4EOjX1qBFZmBsbksAZiBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishCustomRole3/providers/Microsoft.HybridCompute/machines/aashishLaptopHVM1","name":"aashishLaptopHVM1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0878cd78-916e-4b40-867d-033154ffcb6a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-25T00:16:26.7237933","errorDetails":[],"displayName":"aashish-surface","machineFqdn":"aashish-surface","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"aashish-surface"},"vmId":"0e1473c2-8b71-4b70-9d9d-f5a22eac8195","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5oGHXLItqFRWPOv+eX8yzYJ7bkEg6i4qwPdEWxeHOBtfJ2BK5ibXCD3qVbcrYDOkWh+a7QYjMDVmXHmRORIGj2QaGz7jixiVLJtrUpQ5ag1iNxwsFCPo6f0SZdstn43cAdCSYu9u+3gIeCoW9H+DyTxjXeDp/hAwJkV8e5V+DTavYkWrZmjvFT3bScSVbA6OfGfTCqxrO9TnKEiSTdolB2CQvdEAf5PEsvxZJamq1iiM+Z6keOiojt0pkg0nvrjPorbs8X4poAJ12SLtQJ+4QQ+zmTJNhz3pCLUcZK92VWSelmw+R4MgT1YPjvxo8P8pVSES5IBF9CusS4RBkz306wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishCustomRole3/providers/Microsoft.HybridCompute/machines/aashishLaptopHVM2","name":"aashishLaptopHVM2","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"71dcca3d-52f3-4a1c-b965-1829a4b898e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-25T00:41:38.4966633","errorDetails":[],"displayName":"aashish-surface","machineFqdn":"aashish-surface","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"aashish-surface"},"vmId":"4011aa56-d868-4f0c-ae6c-e85545720398","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0FMYjDueZHUzwiZ6WmV1OKfcX2qTFkHMBO6VSaFkswdzElqCqTcacNHOVH6BZm0lD9ve6rnGKYw9sbTXmNXiv0jAt49BOTpMbFLaEV333E0zCLQaVKHLp5OS435ljSI5P1sBdSxc9dWwH7Bjn5SyKfrraR1SrnrcS1RLZcs8D7wQ6ABE+v1vVp5A6XcWXpsesifiMiBdfoNtexC/apMNOJ7+Ye+VReb72QIzGAe+c7vbGnSoCu0zBMjJjmD3xNO/Vt4OUOTImjp2QRfd7twjzw93TIKFikVSZHY8ZWBb3Rqa+XG+LbHF4P91366PtmWFpMQMCtIjESdygwARfQhr8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishCustomRole3/providers/Microsoft.HybridCompute/machines/aashishLaptopHVM4","name":"aashishLaptopHVM4","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7ae6f8c0-cc2b-44d4-b142-7a26936f1d43","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-25T20:21:44.8363459","errorDetails":[],"displayName":"aashish-surface","machineFqdn":"aashish-surface","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"aashish-surface"},"vmId":"ae174cd3-6cec-4442-a1ee-a53a55f72b63","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6vhTZyyMIZOR/3N9WQzyT6cn1m6ZAmg+jZhoF8dJ2GnWXZmumz3LSeGS14hxdc+mOtYD34hswCfE3CC57cqSesynxdLnYxg9oz7l8IU9mHygGX9hP4qbcs2PYQRgTVjKljIST7A+nRMyKHkQvBV7x/CE4lGpxhhOIOVQIszAW46fbQ4BB6X/No9GkEnLPGxn8LDOqqtZ6QxgFJQyYcjIcbrjbG1z7uMd5V25zBIn0TydWIBrMh21hefsbAYGVICg6WxI0uO1O9P5+NpXkb5rf1Bv9I5k0RIyva4cSVs/vG7SQHnpNuWbXydw9C2I6SlkNzOEZk2jq2PMywsx7QNNEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.3.1910.25001","name":"0.3.1910.25001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7d632ba5-74fc-4e7f-a353-6a9ec550bd78","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25001","status":"Disconnected","lastStatusChange":"2019-10-25T17:16:43.1638792","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"793022c0-91f1-4963-b580-98b0026752d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx6NHTHRiiy8M09z7rv6DmY+vNwrDwgSyCwc/36QhbYB/TGz5SE0/y604g+Rza5qCi70Q3e7V6WMgs0Fik+88u2XB7ZHF6MZtBTNDiYrd3yPVsSFJv/2MIJaJ0hh/fDRcA+JpG36X7G/IMNMOGnmvzC/QIPw3H2LVsnXkg7wA34MTahyHP7WSfvsz0J6vVp9dEZVkP361YrtZh/fdI5yG1s2fAIvU+0t058A4KyrSHY2mfgUJ3G/xat4hYJjoZERZlr9BZLjiZQ0OL+BYNPTMZjWinzHWzkgW5dZJxyA+/9S+Wa9ZkXPVU+Pr3uEFCAK7iIhnxiEsDxOZacMFafGifQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az599hzxb4_e2etest","name":"fv-az599hzxb4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d6ab7042-463a-4191-97b0-05392a16c693","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25001","status":"Disconnected","lastStatusChange":"2019-10-25T17:21:43.2485616","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"e5b67b60-35bd-4972-9103-6e5081b19766","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvjqg0SJQb0MZ5eulPo/WxIMzVk0yYFptZq9P79oPSaU1kwKwQFr05vAKjlc9q8DZ2ovS7nWRyOrGQhOP7OMjmawOk2IrfTzx255VKaSTOmhy9XufTBmYWmHnZEbYEzhV7aq+KkUFGA147UjLwyS3F2arbkmgf/AxixIv0wrlIxulzxSJ6cCfle1KfFbm0+Q+hoPCsMYQZXaS8L27C+DIOV3mFvOBvUjOK8Mog+OHg+ihyWHH9j/+HspJKy//PwNDLmO2UT+YamoYJK09DQgzgR3k6I7eEosgbYMfcfZzytmMzpQiZnTJTbiAnhWf0wSgf7Cw4m0vERiksXQyS0DTUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az464pdlwb_e2etest","name":"fv-az464pdlwb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2a95dcaf-9128-4a88-90ca-387b01bfee23","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25001","status":"Disconnected","lastStatusChange":"2019-10-25T17:21:43.2485616","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"b64a2bad-48aa-49c1-a621-eb4756b4cb63","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwoZauk7CB88M/bHtr6XQXI/9O/QjBN533FSJPejYjUPgrrCxzR3Aru0cpEYijxg/cdK/0nfyRaDAl57GkI5f+wzSIiTRIuQ5BXnUQrnv+W/O8ykOpCh/DQkuWQOwUCkxmV8TVndVybHUmhvY+QwiFmSps8tZJuK77LCqySn4seO369WRdSJCROKTXLs8Rzgo55voMlr3Z3qL8NEvPAhd3vC5LYIhu0umo5pbeEFZDq6wtQ1pVe3N70D3RqpxUe9Ex4KN4upmmxk5Aqjbf0g6Sx8/CK0Q2b3DPKa0gRzv+RYMvYwzNjjjn2wEUJUusAJ+TvpwbINrmP6jSAW3xBZyEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.3.1910.25002","name":"0.3.1910.25002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"00ba446f-fa11-4002-ad12-464dcfbc40f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25002","status":"Disconnected","lastStatusChange":"2019-10-25T17:51:43.4452887","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"9d7c6623-be86-4f70-bd81-bea9716bcf42","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6yaLIo1w5PysgHfIj5zW396+ytSKovM6ceZH/XT9GFSu4DM4WNBpUKzutsGz/ovoO+KNsPHykBiiclHxS9J2JcTUc2n9OvgzEcxVr4L7LX8EliGBJT9jRu+eb9JEYPuPIC7XJ4R4jG2JpNx0UQX4O0AW2CegczTBP90lypDvTen6bOuEMedzoR49W55BUjp63+M3A3J9BqRcgkEE7OUAhMK5s0vaL0qe0kP6Pft4312ItVdIqY0noawhaOTissr0/4/TaNZCunVqRBAnxZS5qKMfHVZTY2l1OPE0t1wC0CplgTw8qYDb0fy/ZmxVA4t+KzDzlMmVDNvqz5ImFxImcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az4562c84m_e2etest","name":"fv-az4562c84m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2aba76de-c41e-4ee4-9c2a-30f14e733e1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25002","status":"Disconnected","lastStatusChange":"2019-10-25T17:51:43.4452887","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"cf4d1d18-f043-4dec-a93c-25d8d1dfc83a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApwwJmqL+GsBV+5NbITHI2rFjm5ZgB8JYW4Ala4SfngbtwGDBhLiGhGeJZpuI1bilhLrVbQukpJO3ns8hNPoZ4MP4R6AHUm0ZofQPQR0cFy1xJMu3Rc3u1gSlz8V8wid0vVrctvjKICzQaGH5c802Kbvv+mYbI6kYuQ0SNMrHc8CExXe0b7CsGHTkG85qNMSfqXSad5nseoP2ZuNHBvuKB61R46d4J4gISrVPArw6hfmtnHD2qcOteCYPSmBUfAW47k0S7boiL0iarBdSkH1Rxo5o20npzibDOfLsrt6TEM8aTRZH8Vr56vshMCgrL9GMqVkOt+K1S4Gaut+177LqawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az45878evp_e2etest","name":"fv-az45878evp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ba80130-878a-4144-8ab3-3c7917866931","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25002","status":"Disconnected","lastStatusChange":"2019-10-25T18:06:43.6366014","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"fb1785ea-0067-483d-b393-3c1dd326a5d9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnT3f1Qq6hyBAPWXq+jnEBm0hS7W/GLU0MgoNMbkl7o3Bhrf4l6QO2JLsYbaT5dzkhkmLZuBtCSOhEFCEV5ZU4/EXrrkAbQFUfHAqXiKJ59+bwzyL11q7j6WBy+r1Toi7/PuYIIdtkkSQW8jgb68/9P56P8SZIo0S1vfc3d4cUWtfeuymOXnVCDjuZ0Zx6aWlbMhms2ef+6cfiqUZylaOzh/gCyGoV31c9TM6H2zDXXqm1O9VLIm8Rg48xbpnQid2AZZRzwIzuHoMXN8rC8r2QAO8GrRNbO0Sv3lvhSLGeiUbm/qct0S37TYtczni+DKAZCw/d9hUM7zpqaZnc/RXMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16009","name":"0.2.1909.16009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4166f23-b0d8-4496-bfb9-c27057d65589","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16009","status":"Disconnected","lastStatusChange":"2019-09-16T21:20:03.3033825","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c41351e5-bcd3-4a4e-9975-aa09c974415c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsR8kGbkgiS3T7N4BMhF3SPQLSM+E6Sjx1cLnKMXCZtTdCIFHLFWUuG55awAVHr3nzo9GIYrF02vBP9LZljgf79wwyWqOGtlnA86LkyeptUkRbzYrhbvbxqpD0cPa3EdS6fhxMPpE3KtUJBNbigCqZrga/8Diz24wCY4k/GI4Lm7XB+BKQ271ctoWJ1znSMuTGKMHje8goPiohTB+Q80F3bV3to4SoBmkcNfWqVz/zj9e7tByv7GS/C2psxdblbwXzBV6QVKxck1IatyiewMmM3ZEzPLwFWw/LNciOf4BxMDDORve3e/by1J5/pFhP/jC117qMoo9fItzMp7qJa6gVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.12003","name":"0.1.1908.12003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"364ff512-26aa-4e6a-af84-15c1d6ee15c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12003","status":"Disconnected","lastStatusChange":"2019-08-12T21:10:28.7090586","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c4118f12-b5d5-405a-843a-a6928cf07367","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvsFaHzigS5K6svF7yRUH4dM9fDuhiySap1/1xgK1i1/uymqi2Irv1EYaoLunJPx8RtbgHdM1/JOA8/tyH98xr+yiAwLrOAgzcv6ANoMciwp5DDdYTPvrN+KJxIVNJ/uUwWk6q+DstUZjBsD5840lXn6I+oelCR9eadrgKZAxXn+BgVquZ9sMTVQ392trzPm5Z9WQpOH1KgyWa4FbSYQEJPrMgcFaOuDfIs2L7/pcsV1VTT6MqqbXNVfazSiBzZ7CKTx4OhPy5je8NVZz0Mcu6vvnI06017edl5Yh/JcWiQGS+akdtaJAtvNr+mAi9LgI0baPIk0jGjPcg+Hmzgc/cQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456arz8b_e2etest","name":"fv-az456arz8b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9f1a1a1-0b07-4d5b-956e-82fc6b69c6e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24001","status":"Disconnected","lastStatusChange":"2019-07-24T00:30:29.0874157","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"87f34148-f9d4-4f1c-97b8-9ca9e963d4f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvZCstnoq3kzlheyp6p/TNt0kIEBDTRDSuQ3uwKw8T1EbGp9QPpoOsffY4dEwsF40tuzS71CNgi5xfdT7LyPsiD9C6r3Lc1fQevg5tK3zsxyTwOl2lkxLiaQe4xTvpx4MQDyyoWUx13zsiS83CHTUUyatfzekL83Ii3dPeRgjpNOxDh3uANnjUJDCekXPTcezmTt0AibY5drtfiuYX2+Zih4ONdote8zkQILvR1qK3MdtzDQlo++wlyMvV0bDOJVkF9n863VUfTAOO4dzaRmg7sJ5NjuUIPsipZf2nXy9DzEFL8ZxXC0jiCa7RchjAUPLv8tquDEMQ5cUSpte0wwH8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22007","name":"0.3.1910.22007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c219a03f-1da0-4838-8af6-896d6f8d5db1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22007","status":"Disconnected","lastStatusChange":"2019-10-22T17:51:34.2694146","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"0981691b-7c56-4455-a7c8-fcf763b51629","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAymQNXIR6b2sSQgGwoZWxaw7NLTMOdYZV7caZtXFPLAp1qVDVoSuZvZx6LAOSJdvksgEvm6dvHiIQnChyOhm2IJNdND7jzaghaTfp7wHqZrObYYbBQlt8H3Q9G+zqoCakjwRaknx9wHpt0wtwbozCFbWwjW7vo9kw6lgD6U6FV9DrMDtaeBaJ1N7I/QQFCD0UEIBoZ8SMsPzSfKwKCDncnw+cYCtn/YWYVM+LK6EGs3L0EmS2u8BIUXdzatUzr1wmtJ94V7XCKtelVKBBJ+A19CDip+1bgEob9xt7EyDoxGIdOUGewyiFY83h5LgNcATG/6fKnKaSlk+VHpbiGFrl4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456smi57_e2etest","name":"fv-az456smi57_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1c40c637-df3c-4a2f-bdcf-9aece5d6445d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10001","status":"Disconnected","lastStatusChange":"2019-09-10T18:27:54.552794","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"34b60086-dd08-4eba-a254-b6f29e3e3b46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv0g/dLxU0uu/t/ay1V0UCDsuWN8bwwsrPGTXMlvp38OdnzE5eF93nJuoJAYqx1RV4lxND0JTyt/7LIbYX3I0QXtKclb+f5LQgVogZN7vSnArj7vynMk3Ll4rI224w9FOLj6NxM9m9yCqGvpsqiLBbOi1JfrxRVFMxH7oUuQxN1iTPKhOoWGyQP6pqRQUKd56LG+LKaDN6h6LoR7aKL20AatF/zQQBboYoL098QLKD/agny0vyLeeqBt++3ubFxb5UB88kGjYo4bZlrMsNKFjLOkzyXO1H2LqSQ5Qew89qXaWNbnCKNlCMro94V158vt/WIRi9E/SCFe1dDd/wFRumQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.12004","name":"0.1.1908.12004","location":"eastus2euap","tags":{"ws":"ff"},"identity":{"type":"SystemAssigned","principalId":"4750abae-7fca-43a1-8431-0db5dd703e61","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12004","status":"Disconnected","lastStatusChange":"2019-08-12T22:16:54.3220842","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az408"},"vmId":"67432742-3539-4da1-a74c-b78a43930756","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5E3eSrmHfr29zNgjPv5C7bWp5TjBQYPPSL17damqx5fJuOgfvt+BmMxd7tpLAaxNMY7XRBQtIsW7fmqdZPw5kDcITbNTuwEhggyoLBn48PQuugFOLpnuTp4FPci+InKP3Dj/USERnqPZAKJuWs1KVOjQ7IhiHARQp4+t2YjPMovG6swDy5890lea9R6WHKsWXrfPJJlO8spwUBh4PRIhnOSPkKJP5zUWVHhSl+e7mgHks8PJHgX/jq7ujG7U+6rvC8XInS0TgBeQbVrQeL7sl9DRBi9haQjI+aMhldd7d/S6p1FVetX8+km/ccrWJRQ8CsTX7vDd/rendHqXmknFLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16010","name":"0.2.1909.16010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bfd5348b-ca07-457a-8de0-8182ab5645df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16010","status":"Disconnected","lastStatusChange":"2019-09-16T21:50:03.6922685","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bc5c7b50-c239-437f-9c4e-7532d0c25d25","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtH8TyYyqjKBSufEKgNB7KGgU1ooNifTbkMYTOKD9zoy9e9ZPYwgezpA7KuW6adohzsx61IIVm66MI14z1Nt3VdbgcVdgvnYcsSyQIWq4spsXAdxc8vFXwUfB4QfyJnNL3gtyElwYdNPZdyBWHywdvJb6rA21PLhGcg9V+mZ4PT79mQsRpZmJD2QmUuBYF7vhK9qBpuCdf7QAXo0gw4OLlPdypOlDaTRw4HslgHCShNz+rkCChIT/cdXzhq2mYWIHUYMb4tQDLbItVqYanMkrKhmoplGWnOKgdDtVWc8jVzkPgpWy2TL0g/nK73JbdIdON4QuNkAcNGcL0OEO1JeAqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22008","name":"0.3.1910.22008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c59f1322-5f9e-4709-9bb5-ee1621c1f670","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22008","status":"Disconnected","lastStatusChange":"2019-10-22T17:51:34.2694146","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"c78a0e67-a3d8-4386-9a48-32c85dc99046","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0cR1LSOprIfiGwE/W9bP4jsM7ZaHCNSrmjStQJ9vq5HcW2IbcPr1nVRwrEstIT06zK6Hx9wWLfL1UltoO7i+5vFOABHn0glqK3RABieOv1Qchrdjb8AqT9Eu34kJrNe5xcrnWEdGiU8OkXfxdFiFJ855YBEzBJrBMlgCfVO9VOeh+AwiVnc7Wr46YLSui0RBQPFLvRHD/N+fTcSEGmrzHkOBN6LtotCjM2c/Fxw8/vzo3YnTLLO6OrS6X45DK7PsnftnnOTtbAWe114A1NfsF98Hj2i0gogDOcho9LAI5YLjkHvTKCu0IWrMQ6C3NQxWZ1hA0sI9IvQiV9nYkdHHywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456auqk3_e2etest","name":"fv-az456auqk3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ad73caf-0bbc-4d89-b774-8412c3d7986f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21007","status":"Disconnected","lastStatusChange":"2019-08-21T19:41:13.8683375","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"736e7c30-0496-45a9-bbb9-a6154fb4e1e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6fp9PebYTC1pshKEgW7pZNfGILdoCBNNz3ynd5t0kMBVyrTAajaLj7p1ehvkOCuslSPzdNd3bwBceYY54FCWKE3iabVEHmnhZxqTg0Q3MxHeIe0O4b+WS8xiQUgvLMQ0G/bmtZJkSdTi9qWIUIgLBwNA24ZYJJ/cD4mT6kXzz5EV05lpp8Kwx/5VJwlRzQi2gsak6+8KLzSQrHi6hkqnymNV9+GPxS7z4wZmoEnDrt0pLiLwe9qj+aakaC5mS66FOO7xPpZzV6DuavByE1FWprfdBDCCSDtjrORsExyCMQPmdzv8vYAKeDhwxLPD6ruFhBK9wgHasWuPQRdJtrh61QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456sofx9_e2etest","name":"fv-az456sofx9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"04d12928-eccb-41d3-b534-300980c53a08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"ec6d726f-7a9a-4137-9582-0740a9ccc54a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4mXI0hXHuJdMSXfUJCQSSnIxI1wmB0BVxX/hmVXXwiIavp1gs3vFFxf5oaC7olDSXPE5IwM8JXft5u4ZxxspeW5yBlZTc7NNncM7eGpmJ6T+aWAxTNKOvTCMVzKZiY8dFOWjylPAaF32nNMAbTiXiiFAxzRYrgW4Qq6xYz6qJZWkTCdZFSdVedVv44RQjdmjxEFz0kDiCee7tIk83ISfwueiLvS7KJCi6YXJ1OT1W8tpUNzNkcrw7/vNXk2VPg3sOVYvVCeMm5//3i5nLZBiwKKP8TFMBiHjHEAd/Gk4y/wZSEbuP/R76tbGz6McAw8a5DgMhcwQYnrJwXXaS4SkdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16011","name":"0.2.1909.16011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"45bdb058-79ce-4801-a497-c9b081f4fc5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16011","status":"Disconnected","lastStatusChange":"2019-09-16T21:50:03.6922685","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"38d32695-9350-4dfe-a72d-664c07995bd3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoMqcluxroEofyAKud1xDbvPEFA7COpaQkiIDWFbI58Itomj2LiVDBuRjNfqkwSs+HfpzrPRuWLdDYV1MDqMoOZJGCxzCSxy+FwsAoqhRf9X1tZ+QcIlZ4nlsyC7dEnrcyvWGV0IbogBHZcH7Rr/KQ6DNwA/09rjCSbb+r28QmO0Y2SZjK3tNOc7B9OCdXRfpS99hSZTwT2rgq77mxEz6QIIDDybhSbzo9RPhMJpybb/XS+w7CMa8Vf8g6oxSBetfBcm8NRMWMk8s8a0765a2v6Vx2SC07XYjhN3cj6ns0TpoJzxT2p4dSNoq0MoErX69wSJlrDb4Zz9M0hZxWbWDUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.12005","name":"0.1.1908.12005","location":"eastus2euap","tags":{"ws":"ff","test":""},"identity":{"type":"SystemAssigned","principalId":"1cefe4d0-c84e-4d1b-a3e1-0eaf1cfb6f33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12005","status":"Disconnected","lastStatusChange":"2019-08-12T22:31:54.6380557","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8f0f5a3a-3af2-420b-812e-7103af7a0f1e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwx4xrglPcDkxDCwOgS/BSJgptrpGZ/NWkgo6IZSfPI4Nl8p+nK7/Yj0+j/ecQGgEi1pZki+kWKZZSljZqWt8mtMFzDuo7jEuT3SqkCnvPqR7TwY3Qnk4064I6sjCutKaqe/dqIN7XY9WNR4thEFsGW4ow44zfLXQJqxfHhYRjrTJwswbTQkzuTcMP0ZMXPBNlwSd2GFSQ8m0URT7Pz88FLp1Hl9iD3tb3u6Hb/Q+YkRVFtsES7NlrNEbYTBZyh5kkJioudnvZehEDWjp8/RAF60IAoKUukRavgd/5EKUs9+5CTQr2Q/Qk6qUKW6yRqTq1a7p8OwPB+rPyCTNtvZKTwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ayi9q_e2etest","name":"fv-az456ayi9q_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db9c2b52-0a36-4865-ac3b-a976e628c13f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10002","status":"Disconnected","lastStatusChange":"2019-10-10T18:35:40.5690125","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7e860955-d120-4e9c-b5de-96659c8c3c56","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq5AU/sSxRoDCMJgxfFBCQXaUbz3IG1NUrfkd9XI5rSwPZcIMu1nFvjHSE9EUE2kEk1tpF/78zg8+vNDl+YTCEjtPLEtvL9WB+Qej4qWOlrSZLCS5AsB6R8grnY4Prr6sNXzrppWbURUqSYnkLWaLjPOY5j92jSdu1jwV8baDoxPeDwc7EEgEP9L+2TNTbZfKITfsSaKPlSRAkHN+0dKXbAlD+hS6Nstx//waPZ78S3xOIQEJIAOVgP4Z8nGqgju1rA8T5k8PxGW2NxUh5OIGXJ272T4oAai7pOpmUgMXFMnjymB0Oag6aGmIAdJU0XADrGY/ZUP21XvuBnWGVu3+pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22009","name":"0.3.1910.22009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b9ad2c3-4955-4ab1-844a-0355aa32815c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22009","status":"Disconnected","lastStatusChange":"2019-10-22T17:56:34.4492924","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"2ca3bb0d-73d1-4f35-b74c-f203fd090705","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnyfp5+Br/zRnzIiyYkacnuEO1VaZrFZbOR5vgpKTOmKq5Vwn1M7CwVKHCRM1CHYHZdk3MIC2gIlHu8hk2pDxFARU5RQkvKlLIereKXmMLpBzk0q1EQuoJooTj+GZJN9B45th9brSJ8zJXqapXE+rbmqFl+xbLyaDlTJHvDKU97+tTrUrXOFSkee8P3zp73A1/2KCCx4UL2O8HNGjmobNcRWil0ry1xGpjTWIsJvlUVwu8u/zyARLmdiZIP+YmMSfhFZIGRbVo7NV8tLr4LYiSSSa6uHUQiTd1LiXrCT5svDr3vO+6tBKzwcq2e5oAfi/OE0qILTl/ZpO/8b6MhJorwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t0jxk_e2etest","name":"fv-az456t0jxk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"76c9b5f0-054e-439b-ab3f-570f7e61ef45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24007","status":"Disconnected","lastStatusChange":"2019-09-24T21:08:54.893841","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fa69802b-6db4-4883-b97c-d67471f6550a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArgaey4KlvbX8/9R/ud/WQbPqbyDuW7T8h57q4120dgacUGZc0dsnfCgP4cfkva4eB7JfkpGiCojrIsoGTdb8cRFPNP2ZuWAzvimId5cr8KSISPZgc5BACHli2Q+eU0nLYn2l5IHsTZxrY6Fqvqt/mK41urJz8ckPRAmQ7oNuV80medFqmTHOXTSprndebvlHlaevvstmEAU0wNaVZFXz3pxH/3ncuBnCCCvByrGTVkn1iBOKTEXj9KKPguKvjMCH1mH5w4Pd0sk7dP7b90fD6rm95Av73yFCP7ownYONPK5MUjBd9zGNbSmZBdpg3DWjSxCz6PbLGVTO+fty9wymXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16012","name":"0.2.1909.16012","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dfb72785-d064-4dd0-9870-4879134da98e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16012","status":"Disconnected","lastStatusChange":"2019-09-16T22:00:03.9367476","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e6087fd5-3419-49a1-8848-84e884d74ecc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy+P8hRnmhmYPkSnRQcRhdKkeMuHVmNl/SNGgREtLDrLFm2RZr1lv7RDwin0OIYDZulot0cJyCAX5QphVRfErEOgVq38nzFeGUIEJy7YBn8wqU/cDxjxyINUYkGfFjvutfwrhGkuRUoezMvP+Tr6MYvvHn6ItAg2qDQAwX6SquoNPPLWpqys6jl177+7u8yr6nWFsUFImnfOTbAoMiYUxjInR8f8g7mcn+FSlHQWUYcXpVO+wLeeyM3WkuiRq8V5up7Rq2sj5+aBr1O692S82rahHZEFyuAkUZgGuLzQWHvOvGVQs72TWkk+K11J/qjsUreALV5Vx2A4EemaEwM3/2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456azq7m_e2etest","name":"fv-az456azq7m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6c566869-0175-4ea8-b20b-12bc8f447d27","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16016","status":"Disconnected","lastStatusChange":"2019-09-16T23:45:04.8243053","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"af12ddca-47ac-48ba-b8d7-abd6a1ae2683","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArDTjX2dVWBnaoPotKZ2BtGZljli0EhBZJlISCLd2B43+rh/PlvDSQwXuD8lF7X85Q8upA9Vx4+HLTrG/jxAp7Ht0iAdBFhdWaDEu5HSmBVnT1qbGZCSvUCVGCGcQYHubdZ4aamTxHPbxmzhGy7DKiHCAsNdRIKTJb0ZhFo1S7zg6SVwM63eZ8NAWnIrbHc+2LgpAAizWjuK9d5ILUvDK1FiM0VMzMXq9qQ97EBHZo/kaF+VKk2TSThfIj3qkU183VFGGmSkBB9QUcTXSZQiCNMjXZ7GuNCwgoV5ZqJnJPC48IXPrW9uP3S3LQQu22DPOfTC+nmgBbmC2JzKs+3VQCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t0zkd_e2etest","name":"fv-az456t0zkd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b1b0ae33-0fd8-4117-b3b4-a925f620398f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09002","status":"Disconnected","lastStatusChange":"2019-09-09T20:46:26.9389633","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7a3294da-a281-4819-899c-9011242a5ed2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArK+gjoyL8cdTslsnrZ80KE1BNqLo4t9B9TzaLuxpPaDQfsrvIQ1c/jm0dLDojxNrGxTLwcwI1NkbM1ehQv6z6BxHZ3a4WteiEqbkcdMYuGPpV6DjFc9j+WLYqyLeUvmxZpF0vyfS8HaQSkCHRiEJQCRILPKDR0QFLW7Is41s+hxarztnfTvSlU9hmUAuceS8WwF+iHFNQ9Q+NgM1JJK5VFcC3DyG9x/+RzS0iIyJDHLqEhyP5+YGYuZLkdN437C/coVhBluxnhXHyBIKlp9WOi/009aS4rSBeKCFKTGoPDKumgCyMCbKR9LBLNeRgYSnIeIGtClLpLP5LJnm5GmyMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22010","name":"0.3.1910.22010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8c6b7166-4610-417c-b9e0-afe608632cd2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22010","status":"Disconnected","lastStatusChange":"2019-10-22T19:11:34.9008655","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"0505adf1-1c45-4583-a180-d671827eff97","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlxSeSAPJnBaqoRm28dL4ab7AqcbeCEz4GesBe5X9OfNy3t/lIFOOY6q4bUKmsAqq8knOjCPor2jLU5P7ddy1OLCnmmtoE4U5wxLWv2g5MXCntj5A3ITwEpp6CaLvWNnJRgn3vwJB34Db8jMkQyXHtEOZhaoRijot70EFRRO3Kkkqhn9vN9PQq5A4WsJQ21hKFkwcoQMQdzvUoEfuDzH7vdSl+dYPPAsBGm4W/XuASiSCP40v0OaVee2bRH9Kha4FUwyuZ5HVP4X5Vs++UtQMR23nUw7NeSWJs33W6hniPfuCWobhfe31ABmaRyUFAZmd5NP7ctFfAQo053sExnlTSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456b6syz_e2etest","name":"fv-az456b6syz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cdd43f66-d46d-400f-87c9-7b52001a05b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24013","status":"Disconnected","lastStatusChange":"2019-07-24T23:35:36.7551607","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"950d2dd1-d250-47f9-a857-d0d98e3c6b5b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApWfqX6lHEWyWUG21Xk1FtVJLn6uwTmmp6yS4cQ2HTgoBM/+POvcqLJBBhEVs5d7ScTWPsoJL7BPZ5Uffs0HA3KGJylGD5vtCfojCgDSZTv0p1nHU458g5SU7o3S3bLYuYecR5NzGUKHgmhg8P2y6M/byNcSEn2FIdDitjyAPBEc3DcmSoAUbnd7rClq3Y3WtZ7B63nTULML3irZmNZV2W4LtHaG/1Zvebdvsx2NHUKQEUGXKWHhRSq/CW1gyJvoKTHpXV2FPOzF/y6zu3HBQCQKASs3576GbMbF6dbhGIBddWriS3U6zYGZy2BuZSjzH0+0U1bwz1/xXNfuJ3dsN9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16013","name":"0.2.1909.16013","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"936491d8-ed27-42a2-a109-526c01ae22c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16013","status":"Disconnected","lastStatusChange":"2019-09-16T22:00:03.9367476","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"63d8d4e3-dbb2-4a56-b0f8-c4d0a18bcda1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsCxLkj5jB1qh/AWYGsrx1i2I7Eg2CCFwt9Wto37hqWGZIexHCcgoqXJwO+giuCAUHCEMvfnymeAF7E3PoIoV0wzG6uV3WZOmIweGgM0Kv2ThJiV1jFeXkz/bCUUseXesHhLxC6FZuF+WTf1ybTtG3w2Xdui6ZkE1f2veCiMyCGJ7ePyiHR7OHD+8X5VTL4kkNwiLz0BtNdtbmX1P/zaVzl6DE1q2vw5Bs9B5botBrlkjAPzmq7eZLDzNOoWjffxEqxMxxdITsBqVdA1PTfVOZgKj9febZ6ihM4ptm6JcsbuL9D69BtsuRXGhdg8TZSBpPFSRgFW+Wl6JziK1rYO8bwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t1j2v_e2etest","name":"fv-az456t1j2v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ddde9e5-a0e1-4c6b-803e-bb2935f90001","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.29001","status":"Disconnected","lastStatusChange":"2019-07-29T17:17:32.3262248","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"66fbde2b-7ac7-4688-ba65-963a76ed6010","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvKfBP5/XpEE2lDkAneDYcayOAYQYC6gTbWWeMh3cJI/45dfVTfuprOB0trislK4vLecYgrBFMlJ6fFS4uhllvSSWnDeJ11fWs7khU+3jkbK4GAMPI2+p16ZWpcqj5rk2KtdYwIpJ4Yv74gXANoxKo/ZnynnybtO3sJEG3cQlJIhXNxvpXvTnJLbMm5g4pJmDkI3cJpOGcEI1iyyxAJCMoZu4O2LOukrp9f895++mHFu677URd6VPg941b6lqesX0sXByuvl4+VmQdl9yDwdYVmEFJxGZ+BL2WytJ0vIDt5jG6BsQV0d1XQuVYJ5IzI14AVpGtzdIIlDFtBHz/unBAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22014","name":"0.3.1910.22014","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2af34572-ed40-4766-a9a5-4850eee2769f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22014","status":"Disconnected","lastStatusChange":"2019-10-22T19:41:35.2454228","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"12a2fd3b-2c78-4810-8060-a4ebb04befaf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsBdWQd4DZgSk3NDwMvDcmhq8Kty5Ey7dDD+QFUZe09gc+RF5hGxLfBK8q19+/Od9ov89oFe9PcWHMI+xXEWkQtb/YE6Riu+2H8f990P/1l8UbmbH4BJ+74zqWnC6DGu7TIJH0bLP+rSftwiaLI/+OOZ8i+JdEjNDXtViCmEIQ4f/Rmun9CIRh7KJCKOb0IKJ5PKVXWpdXlDA7B1V3q1c2XhAf1FxTaCE4TK+bmbOUXtorcrTzx6V18oNGCXnbxntkWT+z/YSBz0h+oVUsyjLdi6l2is0UZzRAvFVHyH1+OhQUCY84vd4ePWbTrpENAHgYncpWjfRLfQ36bstcYvqLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16015","name":"0.2.1909.16015","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"565e7ac3-96f3-44c9-ab4e-036b1406595b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16015","status":"Disconnected","lastStatusChange":"2019-09-16T23:15:04.5127288","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d8c76da5-e736-48da-b0b2-d199f237521f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3MMrlZqv2LN/5ttp1h0V72gwnvGEhvND0D9sff8gN32XjkcDql1yTawYmQb6ScGA3oO6IjgMzBAXoardp7ol17+RJOvAXBsybmL+nQJ62qoYTh3Q5ld5ZyLdueN9LKTOnlRQxGj6uQ9lmIfiF9P3QPqnuaMAnmuLMff11Vg8H1sHe6scVOHrgcZDlhGiAPUn1bRahKE4EeGarlsPE2izcz5N9sPIWOO4qnPpu3m1sGva72SngtHUBI5hbj8z/F1BWVpgG1ESd/ChF0Uwy2JEBKcc78wzFj3AGklbNF1esktteQgBkzTYgz1IUX3mHNmvUdrRkryhWwt7rXuitK/a4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t2zny_e2etest","name":"fv-az456t2zny_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9191f0b1-60c4-408d-998e-c44102ab49fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16009","status":"Disconnected","lastStatusChange":"2019-09-16T21:20:03.3033825","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"691b2cef-77a0-4d0d-8a6c-ece3a6865640","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvYOHBfY56jSsl4nYq/9oGgqB8/yuNjExSPkPBGjZtbTTbI0GIYRkXyqQCvjwuwjbm8C6BnYhYLzTyiQWZjNYjeDc7mZC5tbYvaDEi6JKH+5USLBSD0T+/I95LOvR0gASHRxinOdG+w1WzU+jPnqR0e6WkzDQGP/zLZf6k2Ocyj+t5om+UgODUWgwllF6SULAbsCzPe+ltkn6+2eeHq/EAT2N7JR+6HEEw4oJTX7XiBZ4A3wpE9FIMMLCZkVmtBowBlnUU5pvINH3GRfJWBL2+3YTphfqtLnapFK5mU1AJaEVONj+r9iZcz7tohw9M4ronfKFpcCA/dDofnNa0IMYJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456bgcnw_e2etest","name":"fv-az456bgcnw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6dc68768-e9c6-4810-8636-2e91f44c9a4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25003","status":"Disconnected","lastStatusChange":"2019-07-25T16:50:41.8903767","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7dba2be4-2e2f-4f4e-b9b7-a1cae0999d65","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2p/uxc4uY+JPQZ0h2juSET5f7MwEGDBCYBGr+rujf3+jDRjBF6gUOtjoF2u4s1l7Fa8y//y5M/M3iYExTEhGTkI0Yz/DIHUqCRqV52RHU1g1VQdFNIQSPBI0P6q/r4eCzQeGyHxjYa+yAAc6uOCyvql0LCa+DjwqGQFtrjJAHY6hF+RmwXztzGNWEwLegsINIjNeBfPmFoLusYn7//FnH88Aog1AwF8MFj/LODulcwWYHrOlxiVH0oaMfD409qPVkxlwHKEFzST4G0bmUZeDeUDOx+b2Ajr7JabhX7yy/MCN6yihD6qo/lGknBWd7wltJkAVUeST2SFGLCdXlDa2XwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22021","name":"0.3.1910.22021","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8eaacb23-40e2-4c81-80b8-a3248832bdb9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22021","status":"Disconnected","lastStatusChange":"2019-10-22T22:51:36.3574589","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"1ecfea45-9cf0-4298-afc6-cd1341f2d4be","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzJhr28EOZ1yB7DP2svFk77x8rHG1LqzMFTeHejpBn7xAOA7qY0qh2Y5YFdDN6/uItH5+zln+52A1KSgI+IWqGzOQzrbLfZk8r5HE/XlLhwXhjB/fRcdsE7cosE2QzVR9wHOfmWEgsPtChD/29eeuTyPL3W4NLS4vc3IKdqiy3TKZlDk1Y+EAyLwW32n6f5F/PKA1UJnrlqE7rkwC5ipZX2fqdp4JZHozJEwKZUXFW1jMYDfdvSsAlFDFMjDIBi072/Wdn8Ntso6f3V5KjfBMJMEXUVCYyZAFZKeH4xcyVrP4FYtPv1SJzTVSA5NC3+EclyvZINhtwXnEOkcjRXJlnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16016","name":"0.2.1909.16016","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23a97781-a3f5-48a5-8a8a-0814fab85022","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16016","status":"Disconnected","lastStatusChange":"2019-09-16T23:45:04.8243053","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1ebfc283-8c60-47c6-8689-7478faf5fce1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp/UGvwWMiiBtsJgmjZbaMbHyKRfphLwGrRAPZBpmW1Kz5oTunKEF/Pe5MS6l4u1tve/wQgEZCsDPR95nXsaES/oqvIALMWNaDX31gmgwmNmsN3Izf13tc7pNvOktIbEPhKyYz97SvineWgCC6o6PUDkEZ3WrGqlCrsqPhyfCFD/hM82lYhfP7yG+6pQGZK+mDkTYb4GyZ34DYEjs+3s8OnaLeR0i69k+Vx0RfbUHfQJ/6mtmc1NZAvRbL/ZoYy2Neatf3GQERXHC7ptssUTQpm8NxogDj7vZGkfQA2npflFqShqcm/ZhgxVbP42QJTL409pKRGGF7BSrnJBpncNp1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.12009","name":"0.1.1908.12009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ade3f05c-25ea-461b-80dc-85c552f6d56d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12009","status":"Disconnected","lastStatusChange":"2019-08-12T23:56:55.4269371","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5fb8c0de-95d5-4b00-9d68-fa6d01261220","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyMezuudGoipO4+Y9wjJIQlwL5I3HeWTR1Z2Lv2l6oDtrkBQXyNMjw6I0WEQUAQuKMoy/+ZV6EHJSVHKpjtlQyf31GtRIu4BC/OviUgSmq6AfrQ8ZmiYigwKKLnvHeDYUtpvHkcIpkE9JA93bNR7SIsPg8w9ebVwPMmlMaUZ158v70+NeLXPQ3b2z0lzs+CGh1UXYenlWlr54qAjR1VCfmRXeyNli3yRNRG6yhNm5aeAzPVHen0FXdJjkCh3ovULCJcvp526SdKjsvt63EDFPbi1fD/rE20d1RSxxREkZLqLqynnpySE+k3/I+lhFebOyQjqJz9xEYk/8m3FOM3hlpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t49rl_e2etest","name":"fv-az456t49rl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"33b30fe3-44fd-4c25-8580-ab596d782f42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12002","status":"Disconnected","lastStatusChange":"2019-08-12T19:55:28.3138941","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6ef348b4-cee4-492c-95d8-9ae86a96ec0f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmwFyNLcVS8YUTdvXQNA9p1T7ZLCOQV2bq1X6u66ppTAaokvrlLKwjbwMYItLauYyLFjNH3sEpp/WireojALJfZBZomBDK6fyqQPAcKlRUwhwgitP3Selj5cdIaBwHZxevcrCH2Ky1BZV/4Yd6NGhLJjakvaCTq6LC/klUvB0Wd17fro9HYEY1auLG8vdJ8nsn/B+UfhWzIjb80hkBi30WiIbJwBsnYW7LyATqrsdSEcjQhu9cU8D+ZnKl9tsPcLAZZZEZJ+YZCMwJf/MJ36cKJIzYR4qTyEt9YqkrzE9rlHut/vjXbHtcja0Zf0k68M+MulED/VxxK0Pr3Cr4EoxIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456bqkc3_e2etest","name":"fv-az456bqkc3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0a739131-3cf7-49d2-bf7e-ee55563c3d16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27004","status":"Disconnected","lastStatusChange":"2019-08-27T18:48:17.5301339","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2e3cb80a-7f9d-400a-91ae-648c8a3eef1c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Nlo0Ih42t+znHUmm1ME+ZV0BhxXUn6kTzCBDm8rPgOBSAuSiIj0ImXJbLDbdNT42KEBfWZ3D/FNBRXQIR4x7cjLyVJ/Lxq8s30pou/DoXk4W2kcIvjOqjpgYwsMBO1QfNDIJQRPpRZODwn6WM2Tf9h6xEN/VTKxnyoH+UuLjidltl28MyvwoPKHPDKlWRJM/Q+hVifuMCWAEi28mAwtfS16DW1/Pm7WxQeVAN/gtkFVBX5vofFJQBdlcQD+X0kGrqXW6kTDYaLpXfkA0bx5912r2taaX/xFwUIs3N+21rwLxVfDUAIf4G3pZLBxCXqcurHyuw3pAyadYYbJm870qQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22022","name":"0.3.1910.22022","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"235cc85c-296b-4fc2-87b8-177edcbad9b8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22022","status":"Disconnected","lastStatusChange":"2019-10-22T23:01:36.6168124","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"9327922f-cccf-46f0-8d6b-bbb365ed5a96","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxEbdOmEYPr8csbL5jfyn49hVERuiDarPoq2hIuPm4z9oTehhNw+wTvwBr+pf+a6YwbnZyfOXYPbdVAzi70FBwAPD86fHy7HABuw6oxHko8ipMSshd0LWFwQZ2O7/WMnww8rpGDnnb8dYqxxwW++OfNnw7nEX1/lF3MDYRi1168zWGGeKvEmfzY3VAN9SJFLQkoKMTH+4hW5Zfl0UshRCoKlZtUwlid8IzpjDPzKX1LnUWBmccvMK6CIaeVBaOmR+cfvUtpDIF4OG+XfrO2jfj9qbmJrgGOqXMbeeVK3pMCiu0QXpX5rC1iCzz3pvgt3aG0fa5IoZk+uZXVeVzHAXgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17001","name":"0.2.1909.17001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1651624e-3029-458a-a47d-8d8871fb35e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17001","status":"Disconnected","lastStatusChange":"2019-09-17T17:04:33.0989802","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"760b1205-7553-4914-9782-55f45c87ad8d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuZjvBXzpyR30f7n+uSNMIM1/1254bdbftGq3hKuo5ZyCEstIwGyHd24Nqn/IqL0hnieARURUmdFJJaI7ld77joALoTPL1CPe8zrBAh1HDiIL5obPBExBwKpk6PDiQtigcDRXpe5Ms+9qL8Oab9IPoBpR66QPdifkUNCBn8dX6OqvVwxJ4EPDPdpb2CQvXT+GyRCCkBx4xuJ2puG5Mp8stEv4W5QvWETx9HXTDHprCw08ttP44NeDy09am3NglJEjnuCYn41OKAt71FuyPFZpStcO7RfbB/gQ/X4BWfu+1Fjpmb3Re/yX7utR7shhDzOSpIlt+u/sgY+mDGnK8FM6UQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.12010","name":"0.1.1908.12010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"382e2a24-06eb-44b7-9d10-e5408d945a96","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12010","status":"Disconnected","lastStatusChange":"2019-08-13T00:21:55.6485116","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8f875dff-bf98-43fb-8f1d-3fbb0378c592","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxQQuTAzbsYFQcBYigliHbLtkp5gIObSmMAY3GRXooicsJjr5tfDUuoFuIuBbdUCzvUN7PvPHE03XjfOFWc0KBDM83cckX7tHt9isCpx3tIRj5ACQBoclQWFB6NJvn2JrXJ3xNVAfWQgo+pJ5xktwvIfEQwzq09ClutH8swB0XwDkZ47YSePhvY0zAFs+/raaG1F8WDlXa+QnR35NzPquWU4Cz1omo2q0KCC7Pb4ZimiBXUAz7d18Aes3KK3ajVxJdMIaE6z9nAsnw6TOdSyW7Wx0DOYGNBdNxmyc4xrTWmYb0OPN95NToT0lrddhE/xT6B9WgWVwu9ulDbjBgLzQ5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456bw0ur_e2etest","name":"fv-az456bw0ur_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3b53a8d3-9ed6-4198-8e19-65210521518c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20006","status":"Disconnected","lastStatusChange":"2019-08-20T23:16:06.855779","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6bd3fc12-3533-4ccd-8cb1-198429a3dfa1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Q93Sib2w4K+fJSUAX+KZzT2npiNcTBrFlz4XVmzvdRxqLf+buoc2RDQiwwIpXOahysHsK3ywAVPhS5zUeg5weJ9sNGSRvQFSc6uCNnXjQnzdanQCxW2eYfh6/5qKhYXovzuFeRHSUuVAav/+7YaFUd3tTJeSxV/SV5dGxzrKbXFTgOo8Kj4U9hy0In2EDeNVlM25o99VdpOXBsYYzdHmacJCXse3VW9+ZT0+X6dlHhVz2eQSd6cQd3vnVHpIpF+dBv/4vDf089YuoQ8f+027mfTdHkruaf2PTWkX1GbM9q5rz+38DTm69yjGycRhMYHDjtX2/Bv2H+CaO6Xz7XQXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22023","name":"0.3.1910.22023","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"972c3dd6-5e15-4c23-bf44-d3c216a88b3b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22023","status":"Disconnected","lastStatusChange":"2019-10-22T23:46:36.9856987","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"d18f8e08-1f6a-4ee7-ab88-6a27bd498a8f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnqkkOG2yGdDn02tTC+nDP5Hc+zbgNlwS16NxlVQ/5jhGOuocTR1oIYJtd6S9xdZQT0t9gu1lG0XdGuq0lZsOy5PyFDSz17V0RnP+piB+9Eq+mqMxFQkf+Te3AL6fobhYX2ngsiYSfD4qfHpjr8lOP1TZYUAt0L4YRj7uwSgpp0vClM5+zsuYiQgcQ2HQRK3GHvOCf9z9I/2Jlymb4NoQTdrdT4sK+qhOyHOk7/R2VY/7F+o4PgGvhluUvFHbWECbPzG5Zg0c/oLR08mMYuGYIYuTdoswsm+rnitTOiAgGzZOTXCRnkqZplclWGN4KUej7VmXnlYAAKsx4qVDIEwb7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17002","name":"0.2.1909.17002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c206d75d-bbeb-4949-843a-596b9a2aa2a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17002","status":"Disconnected","lastStatusChange":"2019-09-17T17:59:33.6456957","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"59ad3e88-c851-4b09-9cdd-1bf4a63ee3e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6tOQm/HGp321BE1kqiIuOYmC5JdiO4mAc4/+Bwjh9QXTeitPm+NqcEJo4fIFQXtZcmmlEsgJj/+hBjeqAaYGU0NmsJ8xTgI67QT4MmCoqfOkAGdNJT4KmMLRfQN2S4nimMdaoDrxCVI1qfM6r/Xpwl4db94//AOkzWUeHWIPdkxffDjGwD2t0iouqeQ2nmHfqWliNCUXOskv0dqfZfdTY4l/P58gAHP9nXDlWomQ+1vuows0aHZWASTGIY7wL8SF+uz05tU4tZl/Yc/Wa4XGrL9guEDj92o+jU7I39R1ue82gQVL5V+b0/xakbZkW2Xvs0cs6SxhF3O+MIwNJQshIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456t4iz0_e2etest","name":"fv-az456t4iz0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"41a7a3dd-5152-42e0-8b09-32ac20e8dbdb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17007","status":"Disconnected","lastStatusChange":"2019-09-17T18:29:34.2435343","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4a254acf-b597-4b37-9c8d-11cc2a146520","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx1FUcU7+iefZo22IZNti1Ydn/jfLipfLG6lKDtjoOTTMvbwy43FUWW8QtQK/jTWgiEN3I1oV+M27+UUNONxI4iCa0ARsgIxHzNYdbwiZzi3ZuUaq3c8qs+/Egs0eNdAOgivlp16DpfcfIA/jKDqWHG4zDnw88Pyw/B+qEPOobFC+OQCO4m7O/rFH4wrsLn9p2VY50ZILgDK3tfP21i3l0TCqW2kNnZ0HfraTv4AyVGV+dG9GXd4hdmtT/0N+vVVEC8/WE2UiOA9G09isXGLMp1mOW3h1rF4tUbcgxHPE1sTQa7AsVraDYtFP5qtl29F78HGuEJawk/8BeZAC2YnTZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.13003","name":"0.1.1908.13003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"33eab11f-c77b-4620-a276-b2057499760b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13003","status":"Disconnected","lastStatusChange":"2019-08-13T17:57:07.1031343","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"64c0a54c-ee82-40d4-a6b7-4cf9ad4b2d14","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnN9I2omtsVTzqfBBaLex3klNdagzyGNHUit48G2we9TNM3CoQ1Mx+WeVcAwKDyPrEohk8UE8I/7+cnM6cC0V5zqvSePpmCGMhA6Egm02uH4/KmOPn8FZDfmp/261wnwDnNV2INma3d7XaD2saLSihUTwduofxiuAqisjy18io0YY8KCjdBOXDGK7FYsOXb69QDIK1w1xgn0gebiINM80ONw8eSSQ5TfA/m1SRsWa86Las36YgFDAh44GnYXrLDe3oZfzCpqiACBnnZmMk+GF1kcYhjGMcnE8xOmLoi/7ySchl1I+L4D1VpO1IBb0zWvGf7svyb0dARB+4qcPYOevKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456c4ixe_e2etest","name":"fv-az456c4ixe_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9948aaa2-a849-4495-911e-270a67444e34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16010","status":"Disconnected","lastStatusChange":"2019-09-16T21:50:03.6922685","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6e89c7a9-b8ca-4a02-9ca5-a01192f6eef4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAprVPT4cXQe29HrjOS0YPqOt2apAKD/+dtN2N+HJeZd4pH2TJ7Y2gY0X8BUgyoxGcm1/1zOHcRAHSk82TvIMr9KPq9tbN2g2XH1u+UronDsARxtcA/ulQBF06Ziouuj61n7prKF3rXfFR6usBj9Eh9Ql8Ygf+mnGh4uCQUts09eY6OD/Z+RErB3FMjNqjMWHoShv1aQilKPy6bKgdyLIQG81rEQbTazovUbsKCYv5m3IHu6E8o2o1xoSQZ/LKeMFkOF0CidwfHXejIMrajRCtufMZkSD9ykd5s7BbCqZhZgEHMZJA1s2HQPZ6Fk/vENjs3Ad8KOvMzR+UX2YeZDarkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.23001","name":"0.3.1910.23001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fc8e8701-2f69-4117-ae07-2c39deaa345c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23001","status":"Disconnected","lastStatusChange":"2019-10-23T16:56:31.0095091","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"abfd94eb-9261-4cd2-92e8-ba7e6a8adec7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1gxYfcAQ2RvE+45Oodod3hKYJuecGwAvNPHhUWLhZ9Gq5HMzHNbxcv3oLlOKTanFBkeQKRoyzrbL4rFt/3tz3Zkpati8il4gcXH793UtV1/ApVWK/7EeDILUo+1y3xeW1W1ClVHNt73V1f+ZF4dUEKr9K6qtuXPRopPSjK2jQw01launMZmJdYBifl0k1CkESsFP/WjsRdBMyYaW+hySYEpmPvQNweZSVuBHOAP/JaWWlyTkBLwLb1tVEuUoucV2tGRKeGNk0f66rGgss2tK7zXSb49b4vvkH3vR6dbcQsm6NzN4vvaZYZnXhe7TOrLLOQjrQBgzzNb0dku36AYw+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456tkl5u_e2etest","name":"fv-az456tkl5u_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b46e9ab0-0b5f-4fc2-a980-b3fb9eb1bf87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03003","status":"Disconnected","lastStatusChange":"2019-09-03T21:49:24.949923","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f3b32dde-ea4d-4b84-b959-5313e235242f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs6aSxoJjOTMvCKyt/xbbBdTgWVpBF5FBymHEvpruKFKcF6cwh3cJp2cF0jyaSj2PbczCLLc92Spnug1thn91qUNYOBDP9REXp5dNEkD9xuArLNFzEufYX6Dp335casnFSOpjnnWnYZtwBsm4bBHroeCkQ2drqzhFiLoO6uBW3r4Eig+176tTviCkfpSG6oQAsrqkLm9Oe8Eg/7O+nGrVRKB2KGU+8234YFC107cL0Cy+hyJwqkm1pNh9Hv0wVVn4e2UaVShnXOmJOPb5j0NBAyOAkkWlfTtF1+PzlIollSaF3zcZjU78pDpzCmodu6VYdXqRRoQRrDHJkhCh8uB10wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17004","name":"0.2.1909.17004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"296ef777-4cbe-4624-a45f-4cf51fb9bfa7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17004","status":"Disconnected","lastStatusChange":"2019-09-17T18:04:33.7190304","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ccf8f6cd-1095-4c53-be4f-774565abe7a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0UIkDD/aT0k/6pQbUjnenqogcs8DuSG5acVkwWnmI5q2r/obSGC4VFNwawWZWgsbn9+QAQyWC6iDG3vkJZ0xdzNBcUqYFbfKoimBMiF/GQg+YNDdDCDXoXMyZ8xd/xx/vr73teLvlAVs7OAxOWE52WsPYxUB3QhpT5O1GVAAhp3pse+xdtdx+PpjOd97lqjr2duyPi5c7g9bWi57n/gmmDOpfvNEuyUM+cK0Mr8QgNsINMTpTgkgVKlrLHoh2kx3VEQLvquGUj/fPHuOj+ksL7+mvXiRSjc1Yg/EffbGFslPLYXDEvCkSjfW45clZCq9RoZzEP//iwyX039tCiERpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.13004","name":"0.1.1908.13004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2df88459-eb26-4828-bcb0-f376af2eeae1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13004","status":"Disconnected","lastStatusChange":"2019-08-13T18:22:07.3062765","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c163f79b-66be-4d0d-855c-a686c70696ab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApfdClp/+3YD/iIaSt+LlwQ2GAFVeJXQ20gsCtWnQoeZsTaYB/tFzpg1rJtW4vAHu1hbSKkqvCQIl3fpi7jB5HjH8VKIsrvuQl3imixPB3WKiLE0JBLi9XxNhruyK7pSiFN1GyGQ15323xu+xnUOPJGr5gu/EDI0P/YUDvbV7tau5nwB5hXsVczBjRdMHZf+icq2E1EKwmHjgfE1jHoFWyMxMhmQpTM5w6CQOLktnZcABGMIpVbDw6lGEkZ7pwdVgw/Rked2pzqPoPDer5wFDpFoNCIdt+ly2Ad7mwetr+mhakDetZOwp2FtH90wqkmhetaJoHRSfTh2fqvIjsKeYsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456cegoy_e2etest","name":"fv-az456cegoy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d63ba2b4-7d79-45cd-ac31-26c9662f7733","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23007","status":"Disconnected","lastStatusChange":"2019-07-23T22:30:28.2943653","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5a4a0dcf-c8fe-43f2-a139-86eacaa32917","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuTMIag34AEI+vURTTmT6izin86LQxfM5TEPN9OJjx2opX3l0YY1LnKae/5puU4jvt5ouusRjHlC3exXXBOYwW/jgm2XqDjfFvnlqT37lQl7iol9IyB92MY6pGKakn4hKsvOIJ0AYsUnorz9G+VY526GRE2aC5UCmBme3Vyaf0SxTWDWjbcVm79oBf0iglxWLxMOWeRa9h/r2srITzrn39skV5DL/LXIu4RdfW8rzEj19Xnh5wK9CZqUwLfztxvrDE8bmLtkkyGLALHoSFF7ZQijIuS2UO+sg8LTErx6dAYvuwJLej8OYoP8UbDyYcIw0wc4ZJACplydOT1eTn8yctQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.23002","name":"0.3.1910.23002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a41e3b7f-fb25-44a2-b805-4d28527d5d95","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23002","status":"Disconnected","lastStatusChange":"2019-10-23T17:01:31.1050499","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"281c0f41-635b-46d9-bbbd-0f52662407b6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwS5XaLEeRm+7HMr6OqzCGeRcsOV++1e6Or13AyZK0m/PntTnkWXKd9DjuJFQlgK4cOMweKQoInsvuwXZJH7FIBIfBpr5vMitwYK0N/xS225+2YhMevb1OnxgeWJzaBYBorHXF2c50kYKJzsd0n5O733pNPoS9eIKEyXDiXBOFoV7DmUvKE4SF1mDj8j9G/vSPE4qs1aIRxblwsZMDi/N+oYR4gcibxus2wfb0g4u0C03ggdB1QODeQDRLALxFcbaXlf3wnegXq47o0dfSR4bSQJbWQJ5mBVh5ACMLncmeLLlESYDxFUDIRA5jab/2An58p/ExsfkI+eUAIT4+eVgZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456to1sv_e2etest","name":"fv-az456to1sv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2b2461f8-c71b-47dd-b872-b9a6841bc170","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16015","status":"Disconnected","lastStatusChange":"2019-09-16T23:15:04.5127288","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6f5f45e5-2e9b-4f18-a070-b926feb907ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyJoBTe3SRi42DaQZRBHA1vAU+55Of9+jjIMPsJZomndG1Dk52G1Xnjk8H7FjF1F+u/fQ9corFxpuaPtXlwzNjsPW9LmKCkvmqUbIfytFORUKzs2cseo/yWzQm34cVw909u0nmpCG+DrLFGelqwDHu2x6rNVzySTCFFD6hJDTJR2GY64xxnPv25/w0cbd/F/I+Crsnzez23uhYCL7BjIuoC3ZA9sQKMk4dd0GLzrBn2JJl0PDOoTBqYTaLzliyzOWulm5lrkPZyvvdD3IVsf0Ol+ZGMnEZAQRMZ7ikgHmE4oeinV6mIOjm0QLJm2UhPII0Bv1lu67AViSWfgkEuaD6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17005","name":"0.2.1909.17005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"178282f4-17f4-4f68-a36c-9215044da2dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17005","status":"Disconnected","lastStatusChange":"2019-09-17T18:09:33.8033566","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4672b997-0086-4478-9df0-83f0a89d7f56","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAygqR9GQdMJ5Z/nVxhautG/jK8tmOnZHGNEzB6yHAGp2NHhSwIr7Z5LNbrUskSz0TICg9v5+RDEEC7hhV0wxHtGY2uKZqj1CVjKpAJlVj1nvr5KWTWCtR4TXZsSqh3H7akEERKU36djEJavqXobo0mwAf8T01jkbCd7etb7Bl/2uScv0RsZVLSHAHfP3GZZ3N0fK0uSG6hZHk24uU7zD339D1+xpSQwuGvQDGh0xpDDhoXSpGUdSQD8fqBKaha5I7okHZPJNiPOD38UtCZV/g/09/AAhYiTFVUnAF/Kq5SmuRlDML2yd5IEJk5/csfDq9+EW9KlrAQlhJmOcd8vOZCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.13005","name":"0.1.1908.13005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c2a7bf5b-ebe4-4223-92e0-bf35beebed99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13005","status":"Disconnected","lastStatusChange":"2019-08-13T19:22:13.7476612","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bdb3bb93-6958-4500-98e4-3acadb0d9322","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4+zv3EfzvTIQSEBgjCLExua4z4xKSaT1BJ3zWvFe+hz1e9qMY0nmhIifbgcnyMQY+0Tv7DM0bQrXjqjqauCfFKB+Fz6iZIuw9FX57ubmbFVQGYKK4dPIej1BwaJo7C8xx8EGvgf/dDVxSdSb1UOmimhbencwBh+9Yd/IQTUXlzjjC9mVL4yBMOYm+3po5wOWHeV0CcYAR9lyaFMEMsD/tRMpQRBJkvK6KPL1P0+oqo1mUNUOPy5KbeL2aNlmj1iFWukfGF7EmfohN8bXRfdFJSXQ62qDJLBagcoS6CMvoCIw9UtdrrysYeYv4PKQZZha/L9JstskCOYfkglqlIYphQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqMwEP0XtOzTElhDAkSqVmMuqZs2iSFE6iMhhlgowAK5tFX323cgfSiymDPj47mdD6USt%2f5ZVmWnzD%2bUAOJtEpMggY0yV45933RzXT%2blVVqIk6j6Sfp%2bbsUkq096d953WSubXtZVp%2b%2bnwrItJ9PymZtq1szONMe2XE2Q3M2c7GAe9obetPVFHkTb6S8ya%2buuzvvJ49u%2blQevPjXnXmCl7Cgr0f1JG6ldkInJH4jx29UMRzOI1rTiIsX154%2bulM22LkX1oE6palOVkH5w0aomDH9CI%2bYj%2fneDYgUvqXg3rcPKY3D%2fVBMvfZWY0RZJLoJt5A3IMBCzeIcYk5gsWCOaTafmDL1wM3CgWDD5erwCDQxYw5HnKgmxYJk8IshvCAEyykAG4G0o5RsMu0mC5QaaFWKDCEL7fpN3iX9BdxaCeWfc4%2bb9hfk28l0nLmABYAHaDcAVIAEPFhYsruEwU4x9AbCA7v7SJSw4BVYXjBcMo%2bFTBGUPDLCx%2bGkHNAIDwnW9krSAGt9dhpwBpyziwBn3ipgGsPSgBMYZFMHSq7cIvaFz53ufuLkwwApocAbUIWTjnD7hmAArjunhiJgHHKD0BPivMO6e%2fEKh2rQqxJdso44n%2bV3FkXNKcadfwoa4OaLa%2fnCmvvL5%2bR8%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '127616' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:46 GMT + - Tue, 15 Sep 2020 00:33:49 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 23fb1c24-83f6-4682-8363-37e502f7d3b4 status: code: 200 message: OK @@ -1432,44 +2616,49 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqMwEP0XtOzTElhDAkSqVmMuqZs2iSFE6iMhhlgowAK5tFX323cgfSiymDPj47mdD6USt%2F5ZVmWnzD%2BUAOJtEpMggY0yV45933RzXT%2BlVVqIk6j6Sfp%2BbsUkq096d953WSubXtZVp%2B%2BnwrItJ9PymZtq1szONMe2XE2Q3M2c7GAe9obetPVFHkTb6S8ya%2BuuzvvJ49u%2BlQevPjXnXmCl7Cgr0f1JG6ldkInJH4jx29UMRzOI1rTiIsX154%2BulM22LkX1oE6palOVkH5w0aomDH9CI%2BYj%2FneDYgUvqXg3rcPKY3D%2FVBMvfZWY0RZJLoJt5A3IMBCzeIcYk5gsWCOaTafmDL1wM3CgWDD5erwCDQxYw5HnKgmxYJk8IshvCAEyykAG4G0o5RsMu0mC5QaaFWKDCEL7fpN3iX9BdxaCeWfc4%2Bb9hfk28l0nLmABYAHaDcAVIAEPFhYsruEwU4x9AbCA7v7SJSw4BVYXjBcMo%2BFTBGUPDLCx%2BGkHNAIDwnW9krSAGt9dhpwBpyziwBn3ipgGsPSgBMYZFMHSq7cIvaFz53ufuLkwwApocAbUIWTjnD7hmAArjunhiJgHHKD0BPivMO6e%2FEKh2rQqxJdso44n%2BV3FkXNKcadfwoa4OaLa%2FnCmvvL5%2BR8%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ch9t1_e2etest","name":"fv-az456ch9t1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1415ac8c-f718-4809-9d8f-7f7564741e90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21008","status":"Disconnected","lastStatusChange":"2019-08-21T20:06:14.089862","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7cfecb2f-cd54-4898-9611-d68550805145","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxum5cVE6/q4QrX0lIHK/sVlZFSE+V3HM/ih9dTNxnTT5T0OPx8VneqFR4mCJukyWAPosI/1shtylgSJ40Usq9AyXoSlr74Gd57UYuGTITAB5S0PrxsABrJCc6s6GYxrC9PWYInIWp3pgJEHKOVjb+ELZrPo1VYunIwLX+hFJEDVgDdN96zxynSf4t/37Mi8KhPilo00bjEuSkjiKE1TiFrAQvdmXbR796ok7bRCv40Cx9/bsu9MP3jhXhf5RzmDEDkgwcqRUBR9hW8CF81lEDn6rceMD6tC8+Ma4eN7Dwy2ybzYNuNfh8/MWv4pjusrPPzweBt+Lik/ZNwC9MLW56wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.23003","name":"0.3.1910.23003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e7ff229f-fc8b-4070-b265-c76fe12a45be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23003","status":"Disconnected","lastStatusChange":"2019-10-23T17:21:31.3081837","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"bbdc8b1e-4a97-48fa-93ea-8b0bdffe9234","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzUmxiZeKIzvi4wwqiZwTr2QGkRSWuK2CAGq2UxPpDIFUwqzQpB/atNBWrXunhtBLPjBJyIQbTJ0y0aRaHt8Q+6Cfi0jsye3azg76+PmqTr40DVGNumU3wXpuf8+V+UypDXSOLDDesmRMFVNSfLASjLHMr/j4+8+8R2eX2+HC6Gr2qGqIzTqT5Ow2397KOtJYAoan05QG1MOMdY3HhHJkRnUXAMx5x+nryLHslxh/cLBPMJXeJkp7dGYAiW+G4DaN7k4N0vvXsbrjO6io2HrG8evlN0FalA6YpQUrJY3cRf8i1pfpxaMwGCxYQbOcAmSz/LUEmP+NCRN9URSn3IsfOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.14001","name":"0.1.1908.14001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8e5c148c-60c6-436b-99fd-12e34e1d4adc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14001","status":"Disconnected","lastStatusChange":"2019-08-14T17:27:21.3409795","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4d737171-c2f2-48cb-a920-39e996203754","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvpdbnZ8xrXEgfMyhZWRxKmLR/p+TO8azrhvQrdHLJXOVqCHwQXuCVGI4quJO6/DvKjPXc+dQWQI5O8XCrSnX7qztAqDdUDAJqUqANuuF/Md4c7jecvORClijrEIB6HCggAgQra2La7Q+a7z6YY2H0cEgtC+y48/8DN7aGKvayvtN3QGE84AFnc2pOXC0HZGtrx48TlR+5pavh1ipQLy+v5S8N+M32FnwkPYvs+B43KMmPXqLoSI/yn/K/IgIp5a/CXfvSDQlC9+KI2zl0XPZuWa32LywEhoSrh3sANyrrUh1SzZvP1Fu/00KlmfdCTWimALwsOrb9PgOHSx+KYxxhQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456cxsde_e2etest","name":"fv-az456cxsde_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bbef4ef0-bfed-4b14-b66c-f0f00a4ab4c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26009","status":"Disconnected","lastStatusChange":"2019-07-26T01:40:25.793968","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"302aff59-33f9-4a95-98c6-2a8471614d09","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmkZfWwvUWI/j1fyY1kk4kTxf/6fA8t3LmhgWvvjcSKZu9yHuxbWok9cq3IQO122nNKqLbNOS+0iFPGMqOSiCeWOGwkgSANPEFJ+w5WrMUEu8pzpyYsyWk5v2HM0LNBNEEnTN0w3JjO2P4WTZi1JmONnlW9A6iOAEP0CGOhOhWsBnnAIr1ZtV8A0uCuGJpQDEi9pLF3SAe4HcF/Y4KXFwz6+PVjOJbRQq6Dj2q2rlDYld+n0IuiSGLg9k2eBZD05895kEjyPOWd9i5wZMRcE7WA0kpIRkxHfYGKF1FTRaICHZLX39URyXzZGQ6xrwOzaUVsiAL7JbnLcegJRREKWPtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456tph74_e2etest","name":"fv-az456tph74_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1b940470-bfa4-404b-a383-47b8f50577f4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"d531b465-a3da-4f31-8ac8-99eaf660ee6d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwWTZuijIR+gzv5B0qO+syhmAVwv27UBP/+GInm5iNQpOLUa/iHbayi8E/h7gh8M6YCt0fmMYzk1WuQqT8sgbI23/TimU4U6kzXwXg2el2M+NZaqhvOfw8HT9OgecxoNxOljPgxBeLRV/yJKEw4O/4Xsso7uCAlH6p1VjS7MB01rhApg+2lbr+xoMya9tL782u6gsc4+vGhNw1hJl0dL6W/U2wysv79aRf7L6IvfkLFIQc2DyFgni1PR+s6CK4dLht9mk1xW+5mWQZW4fBE6ImRWfLGd7U0wu99m5Jx59nSBnN1Ji7U7D9v6+bdV+eDAJqjl9RnaS2djdREkZBgYq8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17006","name":"0.2.1909.17006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"055da00c-092f-43ea-acbe-7ccb9f9124d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17006","status":"Disconnected","lastStatusChange":"2019-09-17T18:19:34.0238281","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ff39bcaa-b511-453d-bc63-2d7107a81c13","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4oMpMd0C4OcinUbXDMzYua50gatrIzO7cNmJBA0Vjgl+Y/0CAPfiOrj+ta9tDoj4+y+1etaNPvCWJ8k2Yg+oqo7T4G7/lFj3WQPkddRhmH44fbR02Kfc13Rdm0cMg5Nm48rwl9IpzkDknbbQyqv2WHUaqRoRkSW3wbcYk3btuas5DwIlzA4OnAdo9Hv2VFARcjG1HaMhSO4cvoaxyNcEWAIqDycaa45MvsYKdNsMEIUrnegSzFY0sFxUVlQbQ+igyT0NAG+epCmz5C8Kw/QUYX1BBjV2pjLl5tV65L3LI1mWj3n9gbetS9OiWN3Ee9JxEJnPYRzBR5Kp4NBXQ3hUjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az49647q1o_e2etest","name":"fv-az49647q1o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f0719137-be73-45eb-8ec0-200749158bee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25011","status":"Disconnected","lastStatusChange":"2019-07-25T21:36:34.4414679","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"10fa7ffc-e778-4593-bf11-6da6e9e6c5a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2yJe6fDn0UKFDAceSOhsiAi70UOrhLUuTJ7hSdESpUZQ9A2Jl/JOe6dUSGt//Y976vMwPqCLlR+lyAxBJCZSLZNJFVONQPMy3kijdBjFaHiWJSqHcUlhYaSh2PC8bvCfzHt2IBin6IOYjg9HGx+AYFVHGGppgxNee5dfNl6M+L5EsuXVxVKPcfjQ5o+tCy3lqap0/MHDlae1aQyK5Wd9Nt40HdgYUef8nNPK1y8lBaFM1eIMyq5wWi7Lb+gPPI6IbJ+7dJuwKqStqYg5CrtC4kUEh1GkaTNhRfNeKcRW2L99hMLLHiW1ogP8Vd+AgU2fb4Hdg7JUL8G4o5nNZHaIYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461oex1l_e2etest","name":"fv-az461oex1l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab268ad5-832d-4bb6-9361-01cccb8680fd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.29002","status":"Disconnected","lastStatusChange":"2019-07-29T17:27:32.5898875","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"bc5fe9c5-e9cb-4c8a-9cf2-f44f745f0fee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyYKd5u7rw80EDIZt6QO4cbU/7WWE10igzDVZrzX0Ntb5jkSt15QYsl0FQM//bHA7zcVxMCdTVhpaR962AnQuO4AliZO+jfnNEu1BENSYH5F02h8sOfqClZH4/GErnFymrf/JWoEsnZUY5T+xltkEhXgfBZzYBzrFEe2FhP7OIlyvLxrbgDThqUYtWK+wZS1lyFxoLA6HZn1nvBKEqcWT8VPjOpuIhT3vHS2Qblu0regqhy7pRbtvrar3Rn+Tj+yIyZLug4M1NZSanA6hLDD5gW9hDIfR3+LW4JKMrV3CbPuwuBfgJR4D507b4WAA8tgqAudkWFZJZc3NYU56cgNBqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.14002","name":"0.1.1908.14002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8e961bee-5877-4166-a2f7-17417ff470e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14002","status":"Disconnected","lastStatusChange":"2019-08-14T17:47:21.5664194","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az508"},"vmId":"97e22898-5bc9-4c4e-b6a4-c5b862f74db8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwvo14qI8avWc46LxDX/LIZwcHhx6KwNGsTCMYmLLdr4AStJzV7tLveHb/6OkBbSZ+agDz/mdMbZ8amcxwyPh1DN0KL51o7wi/3YifGW94PCI/iXzcNDL/8xJlNNv03j3faEMTFmOMmP+/OGsxhMQOTc7K8sJ66hKYYkG7PI8nSOvaRRLSok4oYeMj5rBO8lVTl5rYaVbCVAU8d17dL8HUSOn8xp3GCpL8R1SGNZB+HUy65s1wkIev97cHPJBD2ar34FJ+AkxGQN3koLkfky4p2rlG/NJlcDgc7eqZVSGGF21D/Jhh3ztjvBCijyhelp9WOaoIcVYr9hV3mdHF8KdlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458m1r2n_e2etest","name":"fv-az458m1r2n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"074a0a0c-a363-49fe-ad35-5b0c9a690c99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22002","status":"Disconnected","lastStatusChange":"2019-10-22T01:56:27.8891539","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8e5ddbf8-562d-45fe-b35c-faa0a0d98a74","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnvJ4TxGYy3e3rtjGK3KBJiAuz7bTXr7yLsrb7mFMpiwZYKOKWCM2HLRFckORIze5eITDcldOTOcMjP4vSkJM0L5ASRBszKZ7Zf/ADuTTTuro4B1ek88jffFJaFonSioCIBeUMNiIeIuiFKb3ul+H0oxI0T8CbILHzGOEuQfivW2KG7R5byz5XewOn/O8fH+rCp6vv69cW4YMVAkjZ0q21DsMjK5sDsWtat3JWocuLGLdAPNT5o88VrHORQyzDecRMhJ1XYlZX4804PkTrcLTnD+h/l/pD1jPfVTASc3p8bvF4jWsg+QkzMf6mDFsevmgu4YKsZiySYvQhy8dpXYFqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.23004","name":"0.3.1910.23004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39f61402-703b-4ba8-83a7-6b8b4aa3618a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23004","status":"Disconnected","lastStatusChange":"2019-10-24T00:12:34.8696807","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"f9db7153-c34d-4774-80f0-624edbbf09f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA38FfyErW/M4sDg8oPWx3Ize19rN9scNPak13D6aDIAwZckW9XwCvfRnbRhWPOWnicQZowzL5EXCbzXjpPFvRD2pLAxr4ZK5kvyEZaPzh8lpejd7hV25pKN8a9pJLCjBBrDNY4IXXFMciCoVtMXzAWAh3ZkoekZxsNNc33ZtbEyYHlCYRH+AakjBcnSCuihHlKveO/T/dqBPg1kh06t9pZlW2iUXylsgvtwOv1sPrHzaP3H8Zl+gRaufOJk+/TJe5Ks7rjl6TFtHpVJ9StY6klx1Hk4/SepEm8RtHD+iG7qFzfl7gssaGt/cv37FxC0LT509Ba5RLm5tl4sllanacAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456d0jr7_e2etest","name":"fv-az456d0jr7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0c1b70b4-2a10-4404-affe-e49fea3a191f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13004","status":"Disconnected","lastStatusChange":"2019-09-13T23:09:37.9300084","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4376d3cb-d578-4f3f-9536-08db8ba1f7ca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2NsqaVASqycgfM+M9epzQ5cF21Kw3EiI0KPfWt9o4TJyPks2RtmZ2Buqq7OODLoloZG9FxiJE5gB3JmBlKhGDIl9riwqz3BSwwJbb9YhIt5zuS0W0vgra7HnPZSduysJtq/9ihXXGVo4I0z9+lj0x4ZCymkXJBKQBGyCmE6Rgc5d9qm+UaLqxHQnPx+hLHJClrcmMB6T+47R+lqqlphUWsPwrqgvsz3nYTA1semjxdErbPPd1LDmHpis6poft33RuwfZZR0Ou/h07MrKRiTWfCIvLleL0gkDSB2a2hy2HQ/RSKYLLU5Osv3t/MKTSsxB4K3+MEN2zXWKOOucrDixuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461olhkd_e2etest","name":"fv-az461olhkd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bbd2fb15-a28b-4163-bb1a-c43617d07eef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11001","status":"Disconnected","lastStatusChange":"2019-09-11T16:45:52.6759191","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"8b097902-50e9-4a07-87b2-7c024fbed306","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnu5z548MteqCzjhvrDHhU5/FOH27SLEbIMiSGNcfcysiRIK1WA3KulrYyPnNMGJV7zZSlP4Xez624k0HiYTJdWdbwAiBGspTbkL6PQfWK/quGu1tTN0pSrY1hoAlBDWIK5YYpwaS7LkUn2obrL2MF2e3qu+09hNiSAmkbHAVQuy/Zd4NEOll8G9MMPAtCtFcNdP3frBkaKN9vCGElmXp8fQyYMsYtTIwvZQqOGNRnKJBAKDxMr7ony2TWjxjdDb57bapHxO1G/wqcpE5VD2p22X00F5zNx+Q93Us+x4Titsor3HuzjnSEV60EbB+5I0JNnnpMuctv0M2HNb4LL4P2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4965n3gt_e2etest","name":"fv-az4965n3gt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8b81a306-4a47-4e33-aae9-541d02ed506d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26020","status":"Disconnected","lastStatusChange":"2019-07-26T18:10:49.5426326","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"44d18282-d0da-4c15-8813-5e3cb73dbd53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3p59ALAAN2HT7UWy5bHOqcdCnnS3R9TAM29kB9qVrNJKBjb2Bs8ifVf3hVtZ6kQJiEZtBt00ZZi2ALrUQw4ii3GMiBX7uXcN71Mn0tSmQVQ3sKEsIJiuY8WF9mrDaAOy074c2D64mgs5e2F1A4W8SIQmuDUeRetO1PvoWyyCca5yazps91P0UUvVFr0Uyf5gUtDq0Or9kd5UViTqa/+5vNzwwpFLLxKEHPpOz7L7ramIrx4X5EfGTKfXMvEqh52wpdiTyK3Ov9Y14qqi5c5pfunByK29yORrtsXmN7k3aNtklWSEwG2y7nwmgGktIsU1ieQy1A1LtDUsKxkg9WwI+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456u0apd_e2etest","name":"fv-az456u0apd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aaa2f317-a215-4469-aeeb-7521b649fee0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24002","status":"Disconnected","lastStatusChange":"2019-10-24T21:35:50.7142982","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"2874a1b5-7556-40e2-a492-7963b9557497","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnyU0kOH+eEcgpQIuzOIwg8BnYbPBCM+2Ir514atXrUJOM8hP60Hg5TATdoyVcBQla3hYML0j0hDI01OPnF5KIZPvRAYG9bIfxGswehMOfXN7jf5KVGEbHPZWefxzn+1pMQ/o99uG8PhZOcPIrTa3qnErJyKEBP8DbReRtPcZD7IlnDK29xFN1grqsOka1sAIWjxPBjTq1yEfGjKcO3UtQcm6ObQHB1/5GQtYcPDMBMoLg7QJ5qTNC+OWL+bTNTeR9yqcNGlyAPAfjAVtWEWVDjXmeL2QKlG5lrcCV4R+MH4I+S0rhJ+l7kMPktzbBnCIujPOIYLRKmBjLUEZANPQ4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17007","name":"0.2.1909.17007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e23a163a-0657-4ed7-9315-207c39fd9e4b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17007","status":"Disconnected","lastStatusChange":"2019-09-17T18:29:34.2435343","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a0a68609-9df6-4e06-831c-450a79e4311c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7stkDatgtlaIOvDRyfZko0+1oqoDzDg9xzUDOhQZ5BhkHOpWmr3BjZQySZ5gysE80JlE3ByH+CZjyvRxZo0Sf127OSTPM3CB3fKU2kv0gFkr8eyD8rVWaS9uJNJSVQhNvTBlqjQ4HQz75gQs/aiZeSk3Wh+Qm2VAYjkQIvdSqy3KMg8A1qNbLcOubcYydNc2TCNePxdYZ6DUVu+UI1XQVQDEHrwWtTU1wPzwiXjSx10tpGnWGXH2LG975cPwIxOdZUpQf2lNB2kWlWLZdO0F0J66Rb3vfnJ4uDjGBcYcn9nBHqj8AdO22RHF4Lj7s2lndn6JFU7its1Ggz9dE+q8RQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458mi3h6_e2etest","name":"fv-az458mi3h6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1757fc77-69ac-4552-b74d-2c6be09e77e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.06002","status":"Disconnected","lastStatusChange":"2019-09-07T00:16:02.7861504","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"51110de6-9fb3-4bd5-840e-ec636c314e37","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzbsxHcWXiXqofmKPQcF7BZTWG5X7b85SB3w4pQsDgnF3Ow919ZTZ4PoZ+ZCzWmdSt6fgOon28Rv5PBERoKwbcGToO2gjNFBEv0hY83+pcMxpJQSrDVsOCpIe4wSHfZNoemhquk2lniEtjdQYtBKCaT9AWM4Rxgt90HONl8DO1vchaxYG/EGjCVNjxwzGZwqOdmC0Bw8YdHolprq/E1m2g61UW1gYAwqLxUqnHGn+6/9X/Q4lls3nLP6p1cuZ9zVHxp1YwLNxbR2QUyqAj5njOqty2GmGhk5057l7OqL4by69IjgP5woEHrm4d6Cwkrh8S9fucL7/wRvxaPLfS6uYDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24001","name":"0.3.1910.24001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"673a315b-9a46-4c5c-8f3e-17f11e3383d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24001","status":"Disconnected","lastStatusChange":"2019-10-24T21:35:50.7142982","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"3b90fcdf-036b-454d-84cf-f786087bd897","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1vY82XvER2YGpsPgzWUZwCg4skGNmAXzfE7w0KOPNK2YtNCGhCyqouO5n0sqvSPjsDTXWL2FQKVIoTsr0wI7LXJ1ge98ET9FQNF93RVyrvP/SDmjxaoVd+WW4451BHuzFnedizj+xIReOTpZO0P4DS7g2ahgnityxmBWzOEFVmL0MA4oMh+2NnYfH+Zi5SjsqKnmpbjrdI0RK3Ak6F7H1ydei4xbyjkVWDPMRl4BdgGaA5C+MpxmGt96r2P5GBCil3fFrOYOrjisKXi/Ew3PY4KpwNg38Sv7IwmjK9hTxy3Rp40TLm9wEdJZmmCYW+IAUQnqx553CRvCIChJXoP3+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461p1kd4_e2etest","name":"fv-az461p1kd4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb053c61-a98e-4395-96a7-7579176ec393","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18004","status":"Disconnected","lastStatusChange":"2019-10-18T17:18:42.8814452","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f4139590-6043-4435-a8b8-22ff10d45afe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ECRI/G3dAFH993zIho6jV6YlsM9CCTLTdB/esa86XJF8a55MR9rNobNyRWUrh5cUbUt56pVODymIoT3OfTmYpt/WGq3StC1RY/9rwtLbLs6wZq7gJvmAcmeID5aKBITzNpD7bdN/t8C1Dq+QZDlOc6QGnFPfuCuCBK6dOe9/gwCeeC3bpxELXTO0vDwdKgafE7NGijkk8LThL07kHtPAiZhQE7n9i2HnOVy1l/0I161ZB/R4i8HWNiV3KjyIU5FP1PTpcVjZDDJeG3yaIPdPvN2mBPqttgQN9qmE/LvU6WdGNhdTEnF4E+zMHsrZa0RNJgAmWpqaPgFgmW/++MGdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.16001","name":"0.1.1908.16001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1e21c0ae-94bd-4f6c-aeea-14f6f1aac7ba","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16001","status":"Disconnected","lastStatusChange":"2019-08-16T21:36:12.5722718","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f42bc3b7-6009-4f97-a2f5-d8c629f948dc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2vyjmSahT55Z53QFz42qviKZKqn+ayl0FugpXnLsdc2PCEEC3AYVm+BTQFp3GskuJxy7VbjUnQGTrvt2h8BUWjuw6/zYYdKtfzkraOS4luqSf1L+Ls/cmCbS3gWTjotyIB96IZhqnigmUJ1ug0gqEPCekOMBOcoC9b7JOq8ByNp6mNhdaGXmkypwRXgYqeXunneIQ2SpVDyO2AcaG4m4rwReIH4I9x0xWr5P08Pj7f1L5JbTZ53LPVc7SAGBWYfaq4q6Cn/uxZ06BMqKRCvygArHHdPaVyCTdzzE4TdHs6FZGKQzFV77ZVXl9MVFlfaLYTSX+CxmvXJFAvAbphu/mwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496bh9im_e2etest","name":"fv-az496bh9im_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4177e5d5-36a9-4d36-b1cd-bc06b85b6efe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01006","status":"Disconnected","lastStatusChange":"2019-08-01T22:35:25.4339998","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az496"},"vmId":"6ad57029-bef9-4097-8ce5-2234c63af4e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1zjq1TqCFdJHgAVF9BvWDkJKXkq+WvfXoqBGW4YBdhOWT96LCdac8/WP179gRsE0Oa8udkD7cbc8IbMT7r8DMQE+9SrRrsgWPRsLXiqTQRibUqglnDfUcK+Gp60CSrH3KvYbUqIWpzoDF1lMBiGDOfI9zzbtX6GIJ3GvEkaFqZTlnb7cXp6I3ViG7HgFhBgT/UjMC5KouaU0YWIQFkp1QmEq0nFC0bM4XuowT63kkSBz/3JEfrCwzbvbFSFUc91W9bqUjwoS4qO8oSh46AHDXN3/WQ0yX3JcJijht8zvVjyFA0LY1hg/lpe6cKYhb7fH6poAmTWPqe41GxmRQiS5ZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458mo28v_e2etest","name":"fv-az458mo28v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"934b0d3e-5167-4829-b3bb-b98cc5802cca","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31001","status":"Disconnected","lastStatusChange":"2019-07-31T23:04:51.3936979","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"9cd9b401-8a29-4347-9913-20d4b4945e4f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0BoCGe6KsaBe0SnsgFDx8Tsm5QOhyYwi3ts2DNRfAkbcRsK7tVP+UwxhrSqSLlFoFG0K24WJpbMRirfcgtOhNAFkEcIl7VpbVX3q+idNaghpxFPtccowC640z2E2pAJv0D1vg1/IiGOFltDJcNrc5n2ksPXPWnyL9ySY2Ewozg6jjWySL7ud3COkt25haUl5u3htJwMcRgQwysvKZVCeA2+W9kPz+m5gGeaCDzuCwHIGzz78XEe04HmwLN9xnOMEeL4CVnBIbslCGLs8paPKqS/f9njwKCBXtJlOgs3MbQixBYA7fmEv1f0ecjmvt8tjZvZVN8cVfqefoyQbTxK5awIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456d2js1_e2etest","name":"fv-az456d2js1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"05dc5fc8-2106-4aef-9642-eb2f04eadde4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07007","status":"Disconnected","lastStatusChange":"2019-08-08T00:12:34.0833074","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"151aea99-1aee-4763-be8c-8e0e3a4a6de7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4FAIakMmaw6IFv9NTD73ZBsMcUw05ukaGkBlu9BQtLav9D8BpkspU/kKH+H5csQ9n3dUYPD8nx2Pw38nB9r7m/xsdaf9A+2Ig1NzMv2WjFOdsTBAyplDe+fuEkGEMcGPO9FBQHdpXL7L4bKEgjgjYK3J1U8CwkqeNZO2gvC4CztGm+r3kBZ09x8uyaDFp6ZEr0L8XiM4KYOgCzynQ08+WHf0lnbMBg58DxzVW8MgbJbG9rGkD1Reclyd0T44uNMiNsCETeYehtebdJCEK6+qk/rt391nCbVtO7DTVgMFz9cNlDQd15Bado9gh68fKV1gekI5/+xlxXPW1d7Fj8u+2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461p4z5i_e2etest","name":"fv-az461p4z5i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8f3cad9e-a8e8-44bc-8e7b-d8de52e4087c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25001","status":"Disconnected","lastStatusChange":"2019-09-25T22:14:04.0472897","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"d6d01c2c-f6dc-46ce-86a4-4a1712de0911","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1a6i4nOyq+CfN3MkB4dsrTGECImY8i8wU7+RTpUqfta3miFW9LUa90MRizBXhTEYigm5ApObboKl8pT/nrdU5yGKs8X5IMLPFH8et8RcBYi/sOS6MNCjKipnocOtOnrZSZ1NDnzz0LaS4KKEbDQxndyQdM/R9KkkU2kQYQkuWVOH9T2czulKGsPUCchHiOAnET92zJ47pjCBBOCDw8Z+BtAt0bngd+4wtAxnVNP6MEwZ1p4HC1eMT1lbtwH4sLNNrfHwE4mAYJ2rYkYWfEUge1KOmPOOWrZQDq03IoD8wmHrN3BpXitydn/m2/iEhwglEms3hNu4hJoRSDmfO8BSFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17008","name":"0.2.1909.17008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ad89ad76-cafe-477b-8ac7-7daa20279314","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17008","status":"Disconnected","lastStatusChange":"2019-09-17T19:19:34.6307992","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a7fcc8e3-88bb-49eb-b298-d69ee3a863e9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxlBAGSLA3nteCC90uUyaPtppXkbBVTYLpah+OOM0ocgO1H6W2PCG0SQnDpkXqXdcoCCmScH0p5Z2K91LTlGyv29SQTSI6O1Or6PNJAn2GUDATQ+ssmfBKdbR5Lag6PhN1asJ/yoaL9EhMxGhs0Kpc9x4DbSY6FLSMy09EMRnvK2yzweViXMyX1ItwSiXBFGWa9OogJW5I/x5Vy60fc913KuVDVJ3z2r64Ee7q0L5BR17bAylhT9kh7pkIKVbWnzrcYmOA0N4t6HgXB8QnaBj0rbRjz4J/qdBkpiQpBMQWppfwOuQeEIMMt4CH/jF09mYoPwHoZ4KA0JbDdwZdyneiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456u2w4h_e2etest","name":"fv-az456u2w4h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7035a894-928f-4b8d-913d-0080e50376d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.02001","status":"Disconnected","lastStatusChange":"2019-10-02T22:24:36.6405636","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"a5078efe-46ba-47b7-bc95-2ca9415e07cb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxew3h2ASbGI6xSmqihRE883EDQj0jrkYQyx1q4BGMl+qub9Vd3p+7v1U4qOgnf2UR9Pln9627FUhk5qhROapOSNz84jiQNPUtDuOrSCM/eKYe7jzdQJFdBH0MYW72o1OdSZIVs5s8eiZnTtkOsGcAwy48JqeV+QtTbhzjLJqqWAODrqZzzo6TfANYW+6UC5nife7P5FODj/7cKTirgCyY3YBebt9kgQ01lHRetr/q1BIVQVkfeggMT1Rno4n1WsUVmYRslP2x3BMKYhcz+8qzJ8X7P/uRcSVCdLEeivyCLEwT/c4SeMwZqFfl+4DIE8MbvcEphEOekDxEutKvpkIyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24002","name":"0.3.1910.24002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ccce9c03-516c-4bca-9682-c1409906c570","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24002","status":"Disconnected","lastStatusChange":"2019-10-24T21:35:50.7142982","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"17102f8b-40b5-4e7e-98e0-c71996f37f59","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5O9Sh0KHFaiBQ32KeGBrGUO/X4FPbXR9VgVCxfNt3P7+9cTjtfduqHhKWOnnVfC8ZtT1AhWb5wVgASGAS5YKJsgYz3ni1NJdR5DmmBxFqlstUPVuVCbyy53sQ2PQRXWk/Kpw1FvQQIbiKOy2CLKFnxhOkaWhgdV7lNmeeG3o9gd6rxYnw5H1nCVHP5saifbj8o/y8x7GYsKUKzZdwNZOhggW7SPTCGfWhqmKJmd8pbDFxaMyLyS1OAOh09BYICYnDZvkKvWQPPxyZrR1Z8334+djtkR5pc2lxy2364prGVALN61LJNpY7XTs7XKpIGM/tbWIUxLjk0ZzW92IAp+qLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496dg9py_e2etest","name":"fv-az496dg9py_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4b1dd727-3621-4891-b516-ee2f280987df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.17004","status":"Disconnected","lastStatusChange":"2019-07-17T18:23:30.4706521","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az496"},"vmId":"19985f3e-0a7d-4eed-9518-10df97905e0a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0NpjlOfgooTlqP02F7A7udPKWMSy24GLSQqfcqOabC9WzUwVf/x/VhTXXG68YqB9woybHYEAenBCBAelSE8YXY7rY7xznxqzBjgJk67csCrXAlKSl3fPXaFHtHoTyvVUyf9lyRXVrmYLT1yN+wBA9gotdMYHstHE6XpEAaclfbqEOm/qnzxA+8HVIGesAaasD4L0UxoDdh/OHQMSEiMyYGlDKYmhkFOJ62z1UKgrrEUwZuy4POUtxbVhOOgbMPFQSzf37WKLkvMMwYLkOsxnAagPa+DzeYkiHPgbG051elVA4Jko1J9U0UMcceVgsnra3leTW6N1sP2WSy4eFgVjHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.16002","name":"0.1.1908.16002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7176c8a7-b982-479c-808e-81d39c38f43a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16002","status":"Disconnected","lastStatusChange":"2019-08-16T23:51:13.5547803","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b1d50be7-4d4b-4575-9cdc-da190bd28928","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnGEBjanAsWKVhGp2WH66Jmq4n803YT06E1KRTnDIp/bv2ReKy76chs+5cvoV82TaXZOTs1UtJG1/L6+xRKWGQsu1htMZHkXOSwudLVo+UoiyUqmCkpF1Gz/k1GbpErF7uBb20YqsHbhOpNYg5aFpLj2ZeZghSRguZGI27O2gQoXjfvy4cPGaRJ0GE2LhsYEM7rPILhUohur6LLwHmXPEVT1MLKyVzsinJN+Z2SzdtSBa7gm9vSUXnYjaqoCkcayESvFtp11e50MyYW64dv6fYR/bnP5w5IPTY1QxRbziMz4bBVr/zhzmOATAa0i5hA+lX98DfCSmVBWpT5Pif9mE+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458mofug_e2etest","name":"fv-az458mofug_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4600294f-35d5-45f0-96a1-2992f04adb7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25007","status":"Disconnected","lastStatusChange":"2019-07-25T18:00:43.1952382","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"7805fa81-d70c-412e-9097-0f04db6a5df1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzyDL52HY3f8XXFRbeewWjKMWbZiZwCRESuCBAm0qwLK0lZpUjk5TFEbhLtj+uMqQtyrSWo3ePdrj/2RoLArd49ftFna1l1bCYlPPTKSCt9uhPZ4jhtmbiBnoFK4ap3R0pm8Qafi1eLYkmCmScz4xrvMYZu2oXwUBEaPHFrPgdzsnG1rfNj81IjE0CyEE6V/GehuzokU9q9p7j55eFb73+SAiHPuUsy8fC6gTzFUUQ7b2K/RjGzslF3fYE9Yu1kBViVInSu9W1t4J9AY1HCKmmrm1xZdj2APKZ1ll7Fd2bEjKsXqmWB0CyV5fvxaUj7XfPfyT4uQQAF1RbyOaHEPwFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461p9wo6_e2etest","name":"fv-az461p9wo6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8a81dd08-d894-4d70-9eec-dd24a136b5c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22011","status":"Disconnected","lastStatusChange":"2019-10-22T17:56:34.4492924","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"d256541a-839c-49a0-9524-0eac2dc58642","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqU+Zhm84F4rSVncriNRHxpu4qC2v15vBuMtYwX68zn7k0wjc+l1MlyPFBhO76S219SSU/G8BNGehtSLFblzVT6EB67RzljGlgRsIzCFanVTTk3d8yfXSbZM1tLOEu1+81AhJhdm2JiV/UFi1CMNYbXB5E+4U+567QZgdMlx2j9zuKqlUPSHi1D0cPmtgrmOcQeAETCMUpLF/naxRIHwv3MUVodRRmVcOacTdJzjbBGAyCCaKdyl5iv0fQIWNFaa1ny6eN0Nutnznzv8PY5J8Ci9FrlrEgJUI1GgiZxzT5lPK7Jg/VdtUhFJtE49GLr5EjnimuXhXlC9V+EGi17s28wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456d4mjc_e2etest","name":"fv-az456d4mjc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7db66a79-dff7-439a-af03-2da12c15c620","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31003","status":"Disconnected","lastStatusChange":"2019-07-31T23:24:51.9251377","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4d73d694-a52f-4ee8-96eb-625cc952420b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxvk66ub8k5jcYioI4CUOlrc3FYJvdNUa+ihm66bNAckULOjp0njNms5oKveR8xEyiIpZg9wLTCcVmFSossdfCJlq18fi62IsawjUFT+vmZznRiCaIBTiG9OmC1c3UwK0lMsPd2wd1Jf7uqHfySuvpsjv7sAe/YYAJT24CXzkAQJKEO65GkzZGIu2h/vGQ91RJ1dh6pYwgW/tX5NxPFq1XfvEbRGq1lp29tCnMNWDi98CDusYo6yU6M642DSmsU0+O+TqkNH0c171572cnG9a/xKR17Us05Kp8U3oFfogFJVvwwVCdg6oiJygGF5DFnEOemUzbtCN0xXC7YXCru5vjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456u4smz_e2etest","name":"fv-az456u4smz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9448e8a3-c2e6-4b44-bb94-1aa2895b38e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19003","status":"Disconnected","lastStatusChange":"2019-09-19T19:22:42.5123375","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"23531569-c4ed-4af9-aa1e-3c7b6499978a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAumlFNi8p46rtCGF/q3uQB8jKffJk/CyYSSLvmUnp/RY2g7DB1vfVDO5RObr6abbtu8PmOgRCdaWtqClrkgF1nGxK8783c98yl6zyvBUbf6KD/w9/50aGXx+6Myw282ar0MG6KucDtKnguWUKbiP+odokRxKWpLr/T4SLhlqDrVIeRPZPZo9KgFXKNrDwNKge3tNmGdTGmmySfcb9pZXxialLmOD515ZOFTSR9uHGT7LiJnmyROqf+fG0jYi9rDvP5Vj78dJ6c1K/gdQWmHkGj6WERwNVAx4/7osZ8jPZNui95wavQhztVACNT988IG3jPyqUYOYEXo0Vw8KiTyH0CQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496dv8yo_e2etest","name":"fv-az496dv8yo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"621ad0c8-8f49-44ae-b1d4-2c8009e51809","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23003","status":"Disconnected","lastStatusChange":"2019-07-23T17:15:26.2330754","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"64dcfa9a-f9c8-46e8-bb08-5aad21493030","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtlkETH6LDD295LDYXuRHgNxMkKYyVJJiIGcGcJOOeDWFjJtQz/fuRyAStAoNBydqaoK4XSOvX2n9Ry7CRnuTZ/IzgizgfLBWcr/WXEv9gFmG4+FML86wXSEDmpjpo5Ch+YZq+YUwqep9P1vzcQklkaQkCQ7MWBHu+kQKMFMV4YZVy1fsEZXesD17iija760U7B//ERT598wcsTo5at96y3roHPE+lAvyZAMBpE83nUJ/rUUKpJSEBNWER2QULurbzxzH7YQn9aZiaOAuXk32YPNSgPjR7dEpIsvonkgzPJY8dGFPGfyEOrT/HoquhqX1fnqIvHJE9bT+whvjV/qo5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458n1pf9_e2etest","name":"fv-az458n1pf9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4a97fa38-5dff-4630-a828-a28ea6806ee4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31003","status":"Disconnected","lastStatusChange":"2019-07-31T23:24:51.9251377","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"ca5cbb11-be24-446d-86f3-655a54da111a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw03a50geaWhiRW6dmkkEJhUU0gTr5RQRb78PjgfeqeYqPJashsaSlUkQn2h9kDpn4i3ZIe8D4caIldPmrPh4JEO1d0zXLyGBh6qjBiOC2ZON1RzkzvbO35NEaADy7tC9+GXWhe1b6Ldryyju3+vhEfwh5r0ZwWWWD02kqfEz2XBtQF1zJjEQdhfkb/2SiWii55Rx3kpasT6ZCvHrzoCQO4YpZebp7BcnsCXL7nEeBFM4ztZYRkdQJZkJXaMb+bCauXMjE3J7OzRtqdETUrJgmi1X0erWJo3sGfEZUiADmTDdzbmdOmTcRDNfDDBgh2YJhd4gsdw5u01H0gdwLJmJCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24003","name":"0.3.1910.24003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"58e5a4af-0dd3-4fba-89ab-68a82686c986","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24003","status":"Disconnected","lastStatusChange":"2019-10-24T22:00:51.1244851","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"9530381f-9cf0-4c5c-be9d-3946210fca68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDWKVtvQXlJ2jSup2mnMRz6rcjm7WunJ3duglRqWcVM1UUL4aiGDWSL9SHu9TLrHZNsuhxmyrYPiN9To596m2uzMa8CXVnXdFDUX9Qop3wK8/JhvbVTFD3oz+wZu5vKSeWeq5MnywyFXEPTopJohWBerxstldgTs770d1WmnSqnfLwx+Yln+T1s2K4W72OlyucfKvCXVqc8Dj+B5cVnUNuC8vrZi80YpBwtXzE/p+UwmwFkcFwT8YnN88fSi9P0YUw8Ao3UQpK9yzVKam8HJKUU0rrPfWPRAObRtrD9+WNx0KBFuxvepBN4S6Pc1JtPhRELEskHBr3O/ovNX+WYYkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.17009","name":"0.2.1909.17009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bda6efea-4bb9-48a3-9b01-fa7e05b4a5fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17009","status":"Disconnected","lastStatusChange":"2019-09-17T23:34:36.3348574","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"aef5306b-4cab-47cd-9cc9-38f75382599c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqKQXuTrdRY7ARbnlWvun7/cdwEwsFWNY6DX7HsbJ+UmmQonMTF4DjGYm+gU0bO9ceV4hQ0l48qOhjLq+nTKZkkWDE390vL0fdC4b8qi6gpKV17AuXEc9ozhodrP3bGt3diiqmBL2yJZOmFN4r+BOJ5UUdOuPXL7gbxGJUjt+ZQkuXXm/RBVxLLfSsNe1BA452BQpl1alVZLv6wNunN1jCMgIM6BGPxWAJprzKpFb2F/JWVWG3DQ345oZWkIg33ZkqNdFBhVU1JLiKyQECarVi2wruIk+shWvYnlKD0LKJmJkoS+/NuzZ9XZ9yuOtEwD1m0OO2Gyx1A+0CQCHsCUPcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461pt8cg_e2etest","name":"fv-az461pt8cg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ff5324d5-fbc1-4c59-b928-ba6cdd54617a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10001","status":"Disconnected","lastStatusChange":"2019-10-10T18:25:40.413624","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"6619f06f-9f39-4c23-bb37-db98c26d8291","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvepu98iQLCXZpBxHK77HJor7RTcr/XRAOgbo4E8nUD3/63IVhDB9yCPeAoWULsF1nTDzcpyuiPx1neIfEXGbDttkrDbJzRngKwLQKdqGDzOXFnt/kUsod/aRsz28imEfiBi6974O9KKoT/+E7xwmEk2RvC+FjLB48TYtwzzcCtDkvCo8eXUF7pRokcktlW9ghS6IiPN3V1CwJzP68er89rCThCWcU7lIFBHbFnm5tyR2/zylBdFvrZmMHiQIJ1rTRv26+YFGKA91OMl7iICtxWVAgfCFVzaNcCWaKNkbTbuswSIAqXiKvDs1owbn/32JLC+8m1HlUQ69z9iPjwuKrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496fnmzk_e2etest","name":"fv-az496fnmzk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ea7ffc6-7852-4416-9cd8-aa8361286f58","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26024","status":"Disconnected","lastStatusChange":"2019-07-26T20:50:53.1701887","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"0198f72c-ae9e-4466-b81f-bde2e494593a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0M4Zeh4kZvWyd7Fs02q16mYi/+zhl8PW1LloxOB5jkPgtmxcrT4MqU6iyzf7bVwVRBmaXb5E+lGQoIJACF3vbPkUPMg0h/n3EF2SMQAu1elTv+snMBRtSLiKQZQfs2Y1frKGHEXNEYdBDwngDRrR+BFOwpKsBhVYzhgma8WnQXn15Y2tR6840gCQBz8o9mfF5OgwSrVtPwG90lKTMm+6wMDLVvlslTRrK33Yue06J938Ky/fB55c6IBGuLhX4okwLGflz/sYVYI5APb2mEHV5zXu14Q3YvjrXm7pzyJz0kj7wpu2dc28HDUMxbKpuvwls469CBf8RZqS6nuwBXMwvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458nu2mb_e2etest","name":"fv-az458nu2mb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6638de48-c9c7-4631-9357-d8e2b3241144","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22007","status":"Disconnected","lastStatusChange":"2019-07-22T22:45:20.8283723","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"2c095719-4de1-4420-8463-33d6b52ddaec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwXb3GBlenInB8A6+GlRTozn+fezZEdpVE1vejb0w9x2Aw4wPcUwoQsrWyhcgkg/ykHSoG/XLheX6I7tXy0h0dF1ikxe9zOqVkUt4bFCGmMo1R/hO3aca7HAIXRNa9ON8OfgdS/XtMULuOHrgyt7eOn73twKoifdxTS4UyzwStq/CZ1yoQiO1RFxP0TzCrYQSlKhOSIsl8E1CLR1Lc6vvsQyaAN19sIx/Q5l4yUZLEambubspZYt/dY94zJw4BzLErPeERJyJTZhGmMUtcoBxIVhSFNbPrefSFSoJpiLlPszsWVhyjIUufaEIS3O60wZRjrKlYubsco0cZwGxcYmQrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456u68g4_e2etest","name":"fv-az456u68g4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9d20847-c2bc-459e-afd9-9248206bec5e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.19001","status":"Disconnected","lastStatusChange":"2019-07-19T18:28:45.5727419","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f9f9863e-6588-4785-a32f-3f0fc38e75a4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu5BCSvK/LDMIMJ41v4qpuAfQhkCcvZeOe0nrjlB4ZBGwQC77pr9p8TFJ2bEohAdT8l2u+BzLrShUeA6PUt+VLnULsigHDNsBUSZlaouiWB9FJP8CHkxgiP00LoSl0LWbRWi2KIWfHU/YfxyedYtmRXbpy/hZrocWgGlVpoTb3eZ+vUNllk+l8WKgbEHelvlrP2EEioOotZuH3jWr2UieA7+D4UC1LHsiR6b52DmaYKSC/egu/bE9iH36Fe8piBoIPBWsQ0Ur9xVFRZ5oPVxhpPzbmrNphqO8b3EY3Rc1Ao8PTICge+eq3sF3HkaF7qm7veTmBM0/1hBpveTgt80bcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456d9kqo_e2etest","name":"fv-az456d9kqo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0a6c9e9f-5c24-4913-ba44-e16f5787ec2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17006","status":"Disconnected","lastStatusChange":"2019-09-17T18:19:34.0238281","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"af5cb6d3-caf0-4069-a6d0-9d5d3198f6a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtcwhSlyS+BHreCvyWiPJ7b5Y1Dfow0GtyWlZc9omo2XDFQ8xIwcwHCnKaTte+RhX4fBO4vgrI8KF62kx1vD/bKF9X9Umia9hyA+3zl62kDPVBkDls0hFq+Koclm3xIV2EMaEfUiaCv8+bSagMRTnO7WteFSZ9pS2PJyG1BuuIimVduJsupgHQRYoL+JuLcpeJIDIrs5BCS8OyXkFrVYGx4NtiISnpgWZoz1jSuC8ZB4n//RALfbjpDf0wyXlDMMaPGj/R8o7YRILWSIS31UmhXee+VPz2oLq09zP0WFOqrWEd808O7ZGhgO8qigF1S9IfoarGyDJWQzHj0uDkCko5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461pwz32_e2etest","name":"fv-az461pwz32_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8211add-0998-4f7f-a5e3-f8398086ea0e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13004","status":"Disconnected","lastStatusChange":"2019-08-13T18:27:07.4145009","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c97ad9b7-1668-4c04-8642-4107b63acc2a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAosxd4TS4sSrQjVnbkV9R9WFSoF72C3QSTOfTp7P7po4wX60H1Rf6pHQVRBSsctDWOAdCwWMrKo4LEp2h5cS70R2+KSniRexzSV6rusYwkv0ih5AWoob716REqB3yc41t5IgNgXs/ftCxYfd2EsrlpHJxX9cYXLQ9Q/ha5pHvPuPb3VSNZE/fSfu27j68RdHfAz84VNoEfT482+eC4V3i6GHqlE8BJ4MCzZSKWuQkxBcmHwQVR7Q9WcNHQS+j1DIB+VPM9Zez5CZhzMD5l6lDKX/4VrNUfALj5vSKMHK/AE0aaTarz4xpmhqYMwu63SN4i/682O42HnoWa3tLbxcv5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.17001","name":"0.1.1908.17001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"da7f42ac-1ef4-44a2-9ee0-dacc1d217ea5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.17001","status":"Disconnected","lastStatusChange":"2019-08-17T01:31:14.2380189","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"960c9205-255f-4c4a-a435-942773a21300","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuSmFynZZYpNyxgTx63LvMlwiBAfRUNs1i9SBorPCJtRzvGr/3tRK38E5YXkLyzRWvUcxkolpKMKsBUuPON6VVzmhYWyjMTVg7QT0gFXUbZ8Linlaoi76Nz4AW9j28bEWOqNTOjLvu7vzoAI5csIiJLda7mEBxchO+nQSa0d+ZwqtDPPGCsainBt4td3D9HB5ic4ZJKD20jSC/yx+hJXMhwO/nNPT8BnE/xwicBtQ1+gC1oAwkGU+/7m5XrO0LN5YkTY14NHUnc7r6aJKMGs3eSqCCl87XQNUHrITUZxAIiZLLlxIiiRGhQqmJxkf1JIwY/FjVq55t83XOVEqpeEMhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.19001","name":"0.2.1909.19001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53835def-c8cb-45b6-aa53-635e040f1a26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19001","status":"Disconnected","lastStatusChange":"2019-09-19T20:42:43.1079175","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az548"},"vmId":"ab1428a3-0ce8-4d89-a711-25c43725571a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnZYtl2emTmj4Q3EnAr2tsiyGWfirt9TgZRDui2YMjRy0udIAgEf3lI5JcoPHrAbKA8oK932MCHecuqX14r+vXnQYym2+M0OZqueoU6QXFwMg6FVzORL2SUhwTqmAozaKl7CYWFIttkf8HSDqg9z+dDVz5QX8tC6kggLG2PPHWDN52xjNNbMUmHslHRv0TVqLZtceYZiz8zZBidpc9XviGn0L59YETYMNoJ/Kxb88yzqxgkBFpwGBQSAzlTF/eJf7/CMmggpM0RvQReu2pZQOHSgewYZyw/6WI/AKhEj27Wymg5ZIyksm1ulXTtJTjqJNsX529TgxGgCFQPDiHjgI2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24004","name":"0.3.1910.24004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d744d1ce-362b-4a19-95ad-6c607a8b1670","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-24T21:55:51.0279103","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"0331556a-75ac-4a67-9209-672782481fb1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAww+6TMi5UsTsEZCpmOKFCl1dacTHf/CkLf+/6cDSCorzhEwnF6+HMSY9qg0gI7ZZ82TnilN4oVhyNj4shLaTroCSOwNXwoZSRmNb9x1xhgA3i2cItZM5gFyBxk4t/nWr8euKEItrItee6sbqa26XoRA/kSvQrxp2a8ZjP2R/N2eJlaY6YUHeEdbSMAI3ZkFnpMuvrju/FgKUtUMSAnxmUup7/c0KfNrHD1tr8P30DQM/8ApyrriNb4rPqgAD4bWmfpDaJZKY35zdGECtX+aM1qOsmksxvkOddiUvzxG7QLio7Gz+rnI02vNjCrVOs8BL7h+YfpDSv7GQFacBc2UW5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496hbu9l_e2etest","name":"fv-az496hbu9l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6496512f-a7e7-47bb-a505-a0395343173e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26013","status":"Disconnected","lastStatusChange":"2019-07-26T16:45:47.3746465","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"e1f5aa08-e699-409c-b300-10b667361b01","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyzZBhpc/FUto2iKIS8CTYIME+INeZ7lPLK9p457OYzUh1vE8L2iJq3ljqE48pbnGGi3NDqSePWF2GD08QxbaJ2mgIUDSeuOK3lMwSIOAIPH5FkcbJHHI9dgKGERdnfxhQKor2yj0FrN8CxpEcK+hQ+ddspbI/trEmZN1rnZvBpWhuHTH0twra7UpxPZTf2R+DEAwp6BgWKIOHotoFh/BP69PKf1uuiX1FH3fxqgMDU3bvYYIgRy8geQDDpbJdHAcH6R7+Ogq7jpB8V4ObaJgTtg7+FhEW0D+vY00t1DFhLXDBXWVusg9CenALE/hYXLW3X1zsMptHoamJu3gZ/LVQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461py142_e2etest","name":"fv-az461py142_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6122d12c-b5e1-46b7-a74e-0a3cda6e4690","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24003","status":"Disconnected","lastStatusChange":"2019-09-24T16:38:52.8227789","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"3df125d5-c2db-45bf-8ffe-3324d7d6ee08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmuiaWBueLZfetO2TKrUeOUiYtQ3R5gQJyU6JQ6w3bKxQYe3xgTuKYIMnQDEMrX2VfTUWcYoKMPqlQj/n/x6phFlLVc0scDgFxEYwMRfkQsBSFUq9gZTSV2a3oCWTOqkiG5QAVPBWSxdxunVEvVI/FuiI+IVMbPgrTVRRCB4I5suiqh6uhge8/ok5HHLz25jynQby3r30LIOjppezerUW7QCMNTgIMEjh5y4W/tRNaiYyaTqGao8i7jQZiL/tFEa+FFpuS++1LECrT8D6ZHG1O0geIfob6ewo5fUtBbOx6LT+h6zbXHkDafrPOdrqqb8fDwuo+/LwPSze9DImsxZM6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458nw5su_e2etest","name":"fv-az458nw5su_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a045f67f-33fb-4650-9cbd-355898885a94","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17001","status":"Disconnected","lastStatusChange":"2019-09-17T17:04:33.0989802","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"21b01359-a91a-4b63-918c-1ec742d29681","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxeZ96nrB9n+W5CoGYpv5lccpRiVkuBKUrZFs1lHQObcPV2oL3K50w1GZVcl6p/bJe6DHqxyhy6ShAtgo7sYTAHe/Ox7+vBsjOLXsLgC49KCGAg9iIYHQs91y89Xwlxki6LVqMBnqkbVtMW06p5nqd+gQBnmKwG1xq68Cs68ckba3PkqIl+jhtOdRsopYHf59s4DqIxJBxPGCBvLB08hm5+om0cZFkzNqXBWbsK3pRTeQZFB7YrdafiGJK59ejX5QidRsY1nq6c+Qroz+ottgOoEimUgH1cCzkxWNLLwDA4mlr65SCZ7Cw7wCr8T9UWleFgE5K8BpYdi/xBUw5WpInQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ue746_e2etest","name":"fv-az456ue746_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0269e2e-47b3-4214-9ce4-e7673e08e4c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21004","status":"Disconnected","lastStatusChange":"2019-08-21T18:56:13.352039","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"702bd58d-7198-4dde-8084-816f179af332","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwpqOj7sHp1SHKMvjJd8QSsct6BqSuaxX89DhYy1g1FUWYLOrCLyeS7CXJgSZdCPaqNVSx8BAl6EvpsjV05wh6BxAqCoNgksruDvelAsCkBNuN5MbIEv4katQU5mH2DVXRJ4dfIoS7fLwnrDMxs5jpIcdP0Tl4AXKGwY8ABzZHwypgUXWdGPnTGc7KNeWMgSpC0Fbp+Qihu2prIwz68IxjbTERo9zX9qXVpt+qENNj3jR06m7SZJpz0H4+Yvoz8qlg3l9AcySuX9U+HN0/iyEbjnXV/ihjEl6cAulj8N5lgYJLK8XwluLdio1V2+rYexnM72vGKHjac1R5sd7Ur8hBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456dmtf8_e2etest","name":"fv-az456dmtf8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cf0491f7-edce-49ca-92fc-600337eb8f32","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04002","status":"Disconnected","lastStatusChange":"2019-09-04T19:46:40.6750779","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"41bb323f-d22d-4d61-8fd7-1525ef00a1e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApkNUuohzZ0zSlOE0LoGfDmUtDqASeDl/qJPx00gWB0V76Tl5WWAdLPx/cOY2M6gny/hiK1k/4mrLKao585CZR9yFcYcxyioUIb0ssJ2JpSALx4/oGx2pM5QqWcrQx7sgl8pw1iGWwVLmawuc+W6+Qvm8wZlkr2tu9t9fcgO3VrTQTHeUEEr4xtDsM5vmdE2d5+VTXRHZXIadODCY+l8JNoy00abvEWPkSFhwVMmkVjttdxR4c/U2H2rBiBIkMkUyprzwVWpL++Bzml9Ahx9U5s6eB6fFtsmjND7HmCOJw5k0/+O6k691JJCiIJf242lNvszFcZYll5Ax4sVtiOJmKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496jfgkt_e2etest","name":"fv-az496jfgkt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f0cee280-f15c-4ecd-bbef-1f060c21c4cd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26025","status":"Disconnected","lastStatusChange":"2019-07-26T21:35:54.2509407","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"cefc91de-b8b1-41b2-9f10-552cde28010a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwyapZCSBIj2pyDD0m5NpGbYKU/dYMgUfimG8sSDDG6m+yzgfdiaeyNuNrq4+qAHHreCYdD3iUbXWwwSGrfFR9A4zpepykh5LEj9HIegNB8U8eTknzuGJnkqzAEhN52wJE3Nx7hcZdOuabg4FnfqpUITEtq6Q/98KP67/jdO+RUbB3q/6eYrt8dYoFDRjg/uy9fKsKZveYaIJEVxmQaCdTfrQA1vsSLrIg1Sk6IEnDNQZ+MniTSFVmhtEwZ2ZfL79egEDokitF8VPQFMhPK7DaCdyH03q9cn5i/kd5wmUT9W/sbYhFZXp+DQ5QSR0eQ4lOsHDUm96v7zBS7RUqCXACQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.19002","name":"0.2.1909.19002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7b8a264f-3186-4749-a5ff-491406199a0d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19002","status":"Disconnected","lastStatusChange":"2019-09-19T19:12:42.1236707","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3a0513f8-0034-440e-98ba-85a6340f574e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3DjllkJkVxgLwXJHO6n6dLENUSCoRR211QX/1+iAoMeAz5F1te/pb5TCl1VN0PZGyUCf9TtRVAUjItpgRv8V5FvfUYOt01pMiJf3C0iqTIxrIYwQsfd6fGKbEgg7dbFeLvSXvj+g6VXkZWrMr05qUV0uoUfXiM5PAJk79UOyebBLv5yELmuu5ev+f/VourPZAPyBllZMQ+/EooboUabO7M0sNaPWhxbJMh3bKuxj/FVH2iDBGkQuKRBarzDW5opCrMWOneugNMufDuV9aR0AqJeDxUvb667WWscMxuLNbMxXizgbfGvL/inAPcHJBrw2YcibWISxb0YBGLhE1mheLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458obdis_e2etest","name":"fv-az458obdis_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7535a736-a330-49f9-8494-1d74def16200","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17010","status":"Disconnected","lastStatusChange":"2019-10-17T21:13:21.7043179","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"a34645f3-ab70-4847-b032-c45815d9ae43","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA00x0ChAeNHwxG5j0RzAuzzNkT8wcfJle0ByqsDJCY+m1KtTzUoYLWrT1lJyFO6LBFQ1j993pSVD6df9Mv9plSvEcrNqAGqabzy3EZFK8bRrOCKEMfJoyJf1/R2jnCdckmAfCQ4/1YOoQAI3beauOel7GsPFDAkSasroFjEMMRXcNKilq3BJT1hD7XwBSGcxaTdX5wh1NInojvzO3g74zvyXsI0SH2j6dCNQcpx5L/ZYtFSajNb2ChHCEUNwrc4vbHe1FLYupsI7ZtbTNlrHnxrMzW9sVSpnsaysLRAoLmuXeQhL4lhLt9uTwVd3fUtkvGJzpHTK2+GzXEMYq9KGiwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24005","name":"0.3.1910.24005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a2d63cd0-d333-49e0-a3a0-baa85a41a6a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24005","status":"Disconnected","lastStatusChange":"2019-10-24T22:10:51.2650559","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"24d654c2-5567-426c-95c3-0009c33c0fb6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz4T2QmbXDAlnRQE4ksluQJwnmdgH6JzSB9GE0StySvsLucp/SrKbd7gQmQjwSv/svnMsXXmjdWbnyLQEmAVfw03A+3RGN8+GhdOAfPv6C9y3anRPTExw4sPBUjUqzaOtR7C76rHPtEXWzkaq71DPcrXOWqhqkC9Hh/SDhe+x5eao30iMWYIujVabNBM7P3uIf5hkFuiFumPexsqU6HtxmepDFfglvv4Ux20/QNIqfiET8Ti3qn44E7peH/zKxwTb4T5PoGJfJMrPr8+H+0UuqxXQALbCmx24t2tFFoKIF7Xv9tjVyZtU4m6/WiH9QWfOzEJmRJYEeVPhPLPr3xv6QQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461qc687_e2etest","name":"fv-az461qc687_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db849139-d781-4761-b4ca-db1c90b5787c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17006","status":"Disconnected","lastStatusChange":"2019-09-17T18:24:34.1565184","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"5311a840-7c93-44af-a49c-14070b33798b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzlKfidJaZQY/wmy1tiEBh99pR4x5YUP0QtYxAtGPwioWm+cn1TYFrKvq0vrZHLKFkZGmrkK2czp3kT12ST53q50H+EysFRJfUlN+LkNd8ZqkBcJ/bLkyqcCgpxqEVtvINU5RK29qaTEcnMbLLHV7VFJqn+yZRwBb1CWTwLBteDo5sJeZzThym42Q9g1sn0shTehaEmdk/pJkfMZVbXQbhP97DiHz6tF6C55TR5+8Y5I73EJi5kZEufsoZ4ZzwruZ5b/90iVBvc2oR7nHv9h4XdPefYeIgYr9YjWf3FFoJiMuYGw9X44SbhG8t3xawWXCPejB1MVU8qeDPDYcpGeIQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.19001","name":"0.1.1908.19001","location":"eastus2euap","tags":{"tag1":""},"identity":{"type":"SystemAssigned","principalId":"99d9c415-c1b0-4743-8473-3002114119bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19001","status":"Disconnected","lastStatusChange":"2019-08-19T19:06:36.5728932","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2af53ad5-dce9-49cf-b3ed-2fc603e64265","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo4wrO+JCjNbAxf01JFR/4P+7wGOguYaRa2kEBy+PP1YhKvLNALlh3/Ew/9ueXsXiODgo8TT+nerGDKDCqvv+8X8IaiY5LJg874XCTGC/lTHFNwdXo3FKVaorONRliaoo+IfRR/DmWSvG3Dw0tG8Yp1OsJdgS8eyVDPw0c+0xBXe0h5+lbId5pVE/Qx82pI5IQws/tdog2Gqz4rRtnjyAeMkev31tJY5VnW474GyWeIurdyRJpri6SLFdfRTCr0dgtNghs0VWtqDnOXZ8lIj00R+9sbuNgaodvtbyDpqve3qgm7/N0+9A2Y3EG1swfGSoo4rEkf72XXDza7g8yczbawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496p7aku_e2etest","name":"fv-az496p7aku_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"44c7da19-6e07-466b-b176-336bb77f491a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26014","status":"Disconnected","lastStatusChange":"2019-07-26T17:00:47.7656177","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"40d2f796-d5a0-4a91-bd80-dfb139ee9fcc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxbo6N5rGu0fas8MkBEXNV5Jrr+q8QxyhnaPOr33667OEEk8w9YkPPY9HI9AbNxkbjqcDxO3AZWjsUafdVD/R28wt6xnFIA2GVtIPEhXL4oduQPswxCE9+8LODvnwtBQv3bZCrJzFEKAi1aPzSeIOqCgGDKmuY7V4A9j0qr9xPS5vGxham3cA6ehVHq0m4ibkogXxTvJSEL3uysAQun04VARgcv1ibVPK2LGv50dltwglR4sduhMYj5nCaHr2mWMM4umG/dSuBq/Fw+0ALht/1andWMV4Nrg+ihn3QP+Ky/zoaN1T4WdaGanGhF+l5a4Y4CQ4B3QuKbqXbLrVIBx3+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458ocrgd_e2etest","name":"fv-az458ocrgd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61e7ef58-aaa1-45db-a5ea-e6139cd1bb88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.05002","status":"Disconnected","lastStatusChange":"2019-08-05T21:41:16.1826147","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"3669e27a-1789-418b-bd80-32ec25689309","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvKtlLknGIWxSG9KCWi3gM1bkXyYj/QCW4kXiCkvU2Gy3Z0V42iPvEXrYFIgPTud5tDy9V4wp7h/o3LKMSCw0c1P79FAmrOPn96zmIN2eaIlf2PgSpzrKBB1s7O6M1DWW8jnKXYhBmsJJwkEl0t2V8N1ZtU53CRli9cFcnDbsrf3fIa5E/8UtUDpITda5pC7r2eZvwweaOBDpD1zPkJftox9H5PUE5RKO9OSbuGQ9N+JUlExuoCsfdVeHLmO8DgQNOYVGiBbtHqyp3X6Yry+4USRjw2frO2ynZOUpjseZZoPz+S1ONJfHDsKlmivDL+RKtxyR16AgG13+l39MULcA2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461qy98k_e2etest","name":"fv-az461qy98k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"08a01abe-39a6-4d0d-b9d3-3dc5441b8aab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26022","status":"Disconnected","lastStatusChange":"2019-07-26T18:55:50.5746328","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a9c0532c-3395-4ff0-a3ea-b0dbfc0228ad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxVQLwxM5MIFfUPFhgoDfoRx52p95haB8ZTQaavXSoGomGzATiNA00mBdz8j8+5F0lIH+3IUcnAWZz0eVNh3vlcNlGNTI6Vn4qzoOLyA9tywVKTrMm026uI5+hxhfUJWCCajPEB7v9GgCv9EHjC59aLeoND8Iygbhqpo7cPpj12xxqI5EKhSkxPv6mBO7FNELyUhyqDlAY6VfU09gTOtgI1mYsBuFyzBXi5fftisemR7vc+9NmNpNn+Z1Z2vCaCKi1KrNqv+HxTxG46v7Y+7NH1SsSiPo9LNRAMONHo+JPPf/MDnr/dpjZB9TvIWue3pS/aIlOgFt4lg8aqyg0Z6XhwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456untzx_e2etest","name":"fv-az456untzx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98bcd0db-a1b7-48f1-b7ce-e66f1456d416","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03004","status":"Disconnected","lastStatusChange":"2019-10-03T22:39:45.1132758","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bda0a7c3-a2f0-4949-8141-b3ab1632021c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn0G0cMmw+ZfGPAVT5qXzvNArPT9rOZuenmXrhre3lvENJj9Gklpdj07NS490lPgQ9BXIU5NuYeMmQxhHn9qXCd9tQiS6gNiNs4jNM0CZvp9sCRWXkH2CTVXQw0tBId0A//2kdjiXenK69knfDN3RG5IAq9UlQAF5ovOBpUuYD+B5v+TXAOotXDDu3gk6DJ03TfcZGU2TqpG3qq+6tocprpKz9vHQPyuXX8SXknAsrZHmtWaHniWcU8G659yc0UKrtEAU2cXA8eksZBFp2Ar2AgH8BUGWNg6Lfqp2oq3BxbxfzdEYyJBdjmdQecr8liC87OYsQoEuiUw6vo4nKgtPvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.19003","name":"0.2.1909.19003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"25bb475e-157a-4d2f-bc3f-647f90ee5d6a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19003","status":"Disconnected","lastStatusChange":"2019-09-19T19:22:42.5123375","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a47f18ee-54f9-4fd7-8ef5-0915c829a49b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Wu6u3+EmmVhSb8ZQ69nqVTxPRAHGBWTmUVKLZ6Hdo8m4Z8OgAK7O7RBZMxFufhcYAtBki0tfdoOO4AvvLxSmjJuyWj+gfvkobP7R4uuD89D5nAJfPj+T+PFdTysH+GtLbu1QiTQdK4IyTTTUO+yKbu8R6JhqZHdACVnSlQAJjDScO9O+unR7X4aD81S8DmmWBLdTiztMXCyDpocbPKLvW3K4Df1YErNIFaTvIg6n1xtf8iCR/WH26FGYTbk8Y5J/XtbYZzBIyu24pNTDuiDrLf5cHC5vvR5zIJVupzNPFaQ5gbQLmYxfmwvuzfTQIzUdVXYcrG962PaBhIsgX+V3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456e4wk7_e2etest","name":"fv-az456e4wk7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"231bd99d-1345-4076-9ba3-a0316576261d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08005","status":"Disconnected","lastStatusChange":"2019-08-08T23:42:49.093055","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b3760d75-c80b-4228-8c5f-325f314965d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAquGNcB//f9PjPjcGt+NPhc738StgmAxA+5ASq9grUWI5hO59uRAQpS9djLVZxoNFeq8Vr+Qj32k2ymXM3NFJMQt1tzAUU9uDnyKjbxZg9qMklzdrkrr0+4y6gybGUkOwCtPzZRwlKF4BohKqp++glquQ3bS/3Pw+H9T6QBIBGwS7YG+bKLsrDq/JQqhqOBAv4HgRXINuPVNYJxi327u0U8+nHsJX21aqcUdAoNOJpCr+i9A5jMZjVe3e0IYoOY+D5rbhcj3cai1kzzquWIvTISZGfmGHv/CNNPO9u9N8f+9xCY4TGY9Xup5hIoSjAvofSGifcXQFGRGme9PnmsdkFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.24006","name":"0.3.1910.24006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db19af14-8045-4fd3-800e-d6cb0b7c9125","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24006","status":"Disconnected","lastStatusChange":"2019-10-24T22:30:51.5298094","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"0b8b2050-7571-4b19-819f-9dddbe9dbaa8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1mi5ZhuwnZCyYxqkqfvvaD7evwPUrIpTQNsbtaifPhWNbMx5xJHs/uBr3AWqtFLL+Bp9kqrgSFZE3M26xnThrnK9msnodsNGkJFtfCGwclhNcT4rBgQoi6A8jF06887RaRVhmo/0tKow7nE339ENIkFLFskcwofJnezbOgMUKgaY6PpPFvCiiYPUTfpc5lpdyCjFrgi+WN4GoGgC01jVz1BKV7u3vB1ZPULjhPwiVZ+3IvfVPI+4HBDg3SjsppnE4HQUQC5ILPR18mU4Dpug7HLF1mdaW2VtSwMnxhp+1zOb6IsfoDnm4Nu1GEd3hajYhGiIPxUrYXmZQUwsqLKluwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496sl792_e2etest","name":"fv-az496sl792_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4fe73774-c037-4393-8455-24e426a2329a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29011","status":"Disconnected","lastStatusChange":"2019-08-29T22:05:57.2823385","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az496"},"vmId":"54c55135-02c6-4335-9083-e223f2f27d65","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5sLhnPHfFmhdBaeHTzXdcgfy5pLpRS2yH3yDEtSXfirTpyU1QU41U+pWQlp+LCK0RnBfvMLzztBKFofkgIQQr541BMKnjq513Ix77piuoLIYzPQYDuRbj8kgp1bXbIVZDLZ6QFPbYhRkICd4hC66YFciOnSr4fdYDGPANz/IquVU1j47tnRXnyzZTtKjxsBdhQgqIUXQcHvpZfG2Sbz8gMdhnPCX9Es5+m0JdhhPRbhND7J84r/lGgBMJNwaZuV4lUnUTngYHN8cGW9s2bDeMRUCTbXppDd8bYdp2m+OiU5wWfcYXZ/2WZL+5fK17GKHPXDhtEeGW7sAHcYqsxksAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458ogcbh_e2etest","name":"fv-az458ogcbh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c790b4d2-1dac-47f2-bf2c-9dfb958cf4bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08002","status":"Disconnected","lastStatusChange":"2019-08-08T17:18:04.2414579","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"3a1a5bea-ead8-440e-a258-bb7c03430b08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3jMKO4fbzbMK498UfZnVdL9kILLym3L6jzPzGZALw1YO6NzYWzslUtGRf06g4DwH3B5bgIjvpIOxhYnWynJ+uaFdRdAMsSbe2BYJKBeMKpWVNdZBuaOQitqlibw+KdgsWiWb0ll966+yfE/eYlRNseMJDTeMzz1EP6ITPaFbkMITcHJPDYfyZxoq2yIVg0SQDfgDGuwNgRqQOsU8aIWTtsQWZ1dU7/0pnifqxR5kBzrGw3zgWfu3TuT3jIy/8BmGY2SclBxi1egAZi12B/aJciH9YqJSV5cvQ5HKPKqzpom94foP7mZGH+XM4RVLmm8/TCHMFFu6MobdR43WwZvYowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456uxdc4_e2etest","name":"fv-az456uxdc4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b0c51e0c-e39b-4c5f-b458-4e754ecfab09","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20001","status":"Disconnected","lastStatusChange":"2019-08-20T17:16:44.6457814","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"49c9314d-44eb-40ca-8e8b-749548e39607","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtYkLf7XMq+TulW6+Zw6r7VBBUDBHSVg/9Lv/oilXS1ZldOxTHQuQHBMJCVQHYk7HAtSybSJlkabHPSSRRKhhU4fE3tN/2qi+CrT8cD3yZTYo3A5mjthGf1h79zTJvNRAapB1QFnACvUwAo/e6pTOWm5YOvArMj4CX7xi0hDGw9AOUbJ/Ru+gnYv8gmyrrjxtir5JY8H4F3SG/1bcdvdN/a+8AqOq7T6N8vt1VcQJrCBaATOiDT0ZOkRLdXlFWho96CMP6Hlz5RyYBj84Qy+8zbOr6/IkesuLj0ojWEhOZRlA3Uv0ykZDLyDORVf9gqDVxKA5VF8g42VMyKeQS8z3zQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461r0k9i_e2etest","name":"fv-az461r0k9i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"713cc51f-6e50-4107-916d-16ecce7753fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05003","status":"Disconnected","lastStatusChange":"2019-09-05T17:08:50.4581949","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"4d4787c5-eb52-45fc-8755-d2b68ad21b1d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtOwAsSCyTbnY48tUfgL7Oo1MhsOKnpTJqCqoyJx4PFPWFoBVNeL2Y0guIzZyEmzCe7BfxIpNsoGzyhPSkRmTxVnA6ylskh7jAxaenHV+1Gygokc4TDub46t7PaAKGBVo7YCQ99veg+lEcwwdJSASpE/92FTAzg18HnyPoFfXPYQEb0ToKyssUAxlt/ZuRkJSrsH4mm3kTL9OPhLP/u+oxstt9+pfElBie6VunomCVjcnZBTnKGkhLhclfH1EixWRaiHTpZWyHog8LCQUxfuELBso3vlaW3pQAd0IK8tyNPezfkMe6OKJNW6B/Wi6mQ7rno70kBz0MmStN8ipuojkDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.19002","name":"0.1.1908.19002","location":"eastus2euap","tags":{"tag1":""},"identity":{"type":"SystemAssigned","principalId":"415b1f6f-c055-43bc-918c-428b009c5bce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19002","status":"Disconnected","lastStatusChange":"2019-08-19T19:16:36.688436","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"04d3c91e-7a5a-4239-97c5-dff1a8a5b732","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyWxtvWHxp1hGjDmbCdys/UisXSIMoqx+Fl66Jv4KGLyjRe/iDUP5SXcEnaOYX65KjlrcSjPAFx5TG6qo8gIulAHS9Sxp2A8j5aWRiZyKqNB5AgquCDniQew69UbeAmTocYcKibwN0XlQxoxtbWhJN9MTpzy3UGKBQqaKGdiTefxEFtG2w8lVUadAzI0TJ4WHBRaladJmtoOFcxe7raAB6hYvJxrqAvLVCrQ5XBm5PkOR+7Mx3PxVssa01kg3xkfWghMLQKpN707JG7xKl7vDmUuLhP5meftVKHsqJgw0DOQyLJxL0+yi6+B/7Og+JpfHlUlPLbRf4G3gh4JwruJ2DQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496vlwc0_e2etest","name":"fv-az496vlwc0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"823d4620-48af-463e-9d15-ecf5c48fe06e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26021","status":"Disconnected","lastStatusChange":"2019-07-26T19:05:50.8306893","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"77ebb6d1-4970-4863-acff-ab6c61a9db4e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuQG5hCwLFNSghS3VqI4AdlOF6JTazBuEuGWWXKtExIEtyKLos/OWd9O8dR5L+6esBekkiwo1lVGBsL2/NnRVVrVo5p0qxfFDjq4MzWEte2bDL+u47YSQwQ2ZLEgApSm0VlHJCYvj1h34gz82A9IbkYGxuWIaT+6R8ueLDfCue58T6uc1KcS+d/NroX5dF+qyKLKlWAV8MpQj7UVOp0tbS9TFQ4cmCXmtNn/4VT4U2WW/CEjg9P/d7vE7kjTKJuaRNH1pav/Znmk/5/4jUmbpTLN3s8SadooIJP6UjZjjISAocv/sGadFkGm0c7bQlz7KTsxL7XVRh568lMwtE1yUgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456e52v6_e2etest","name":"fv-az456e52v6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ef26a6e3-5c1a-4c19-9ceb-24cddbd22e29","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29002","status":"Disconnected","lastStatusChange":"2019-08-29T17:16:57.0662992","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"911cd5e3-3abe-40c8-b9c1-c85a18acae88","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn0U+R7yvM2FsmxtHIM5Az/RDggmqm0T+YjHCq0dcfhFzi5xECxqKs2jUxMHtZ52buth6ZpOIfcmOnYNaLk8dTb6yW5Kh7Wnp4afVYS3SDYNRH5bC2e+CbgkvDXe1zCYGJxcl0VSw45bIssADRpFF/43W0XqbdybV2exDNJSaj6b7k2h0tJ6D80t0zelC4VdkvXcAcvhVYsLG2d5e4sPmLOJp5V8nXHSaFV6ptHQak8kEzy6nr2XHVryRZuNJIjlb97DzdF3G3HGysfUCgFZKH/6cJsCVMf1yxFLOWjBhSag3T+uKa1Fj8j49//4HQIj3YewkiK+ehxSUbPl6TVtcYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.20001","name":"0.2.1909.20001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"12d89663-c81b-4dc5-af81-0198b0cc8c30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T16:22:49.5482724","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b71c21b1-8ee2-49ca-87d8-0d0235271c5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzIOk6E8nWPn3MDuwImRDJLOBcYP/G3veSf+WkIrkec1GqCbk/yhqhbvtc4VnCtbNYw2L7vkBQLOkJtq43gfgwdNrYpVkza5ZD6Si5uijFdChi0e7R6dMR8aMI1koRhQpkZYZHpcTrHPq0IiririF+6O9kasWMosBfhAZMI61RMdtCnEbWMvZV5v0kLZswUztSR+s7R79t167Of+3HK+ce9OtShhN8jbOmQlUP6CFlNuveqKGEw8gwy+AE9vpKlgHAZUuSMOQmpUEWw5upMle/LwkRJqs+WiDl/60p4dnFQiUZVm9Ui1BVMajg+8Ym+959hlPs5KOP1WLoL7BiF+IkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458opquc_e2etest","name":"fv-az458opquc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1144bdc0-0208-4aa0-af2b-6d3eb11e28a2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10002","status":"Disconnected","lastStatusChange":"2019-09-10T22:27:55.9615849","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"c54f9221-8c6c-4cd5-a75a-ce99462d205d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw8wMzzYrTnfrFhV5yCbEm2WUHOByr72QTwf5Jhw+pEfF1X6dVDrluk9B/3A2N82Tuxj0v4wyDVpsqeVR0OVBx8LFqN4Z329S/z9HxxUpqlY+iT0QPyIsFp0rAIftkpSNeY1lWW8b+HpxABx0czEIce6+eiYdG21KGD3Hxka95o1yO3ejaw9JLrUVJhnzSB4fs+IMZcBCYlMyl7x54fF0SwMk989qYEqEfahonQnbB/pnVCscjFzKGvh3UHYdmY6znY73p63/VoKs4iclaztMLrGobHpnv7QzjgMHeuirZNUyk+0yrQmYCHxHDtnyBWGmTz4sr32lAtSSg/9pvQBzcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/dakirbyTest","name":"dakirbyTest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2f03a74c-5bce-4b4b-8049-dac8a77cf0bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b0ca10ea-153b-4443-a1e9-51ae055d814b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4iptDgaNQMulVY/C8xjgzZh34doUFSJNW2nk5uMn8mqNcTFrXJz+JSn6e/P9Bz1ChOlxNTHSu3IvaKM82uxVZuKTd+ynWionDrKLF20lCZgHoyx0gQRS4mkYRf78IzkhohFXFoloKfRW9K1eIi+1pUWEdANsCCHEwwSGFtBn4ZRJU0bXNulBOZgeH4Lh5rlhgMrPt6wjDnjsbsWyH2bBSm9Jnw6weULgkdK5hZONCDgd1Na9Nw7QLGfYUVQUsBsO4i61hqQTVgb5LKbyW2880T+IbPvacw8i2RvqrRSUq9/U5kAHTZS8uaOnqJlmG+xvsBXX5WfZD00/lYju1Y1UVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461r19mq_e2etest","name":"fv-az461r19mq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0213aa2e-994d-41de-a70a-023a58fbfd62","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03006","status":"Disconnected","lastStatusChange":"2019-09-03T23:09:25.7444053","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"7991de34-d8d8-4a95-a57e-309679c8028a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4WiG6YRFf3yJF86DbcTKIpEUzkY0L/eDS7WogXwHJOPd9AnVhJwpS8PMawCKw6bQKz/xMNvF1dK95z9YYbWxa85qhN8EuKCnCmU0u5LKmq2pownNDggM+kxuaS6v6KGB7ffsMAlvxAgkz1msdoJvlOsWc4EFDvPZVitN01U3cT0VchwEmBmDJd3K4WPY1/xbyeNJ9yDpcox5kzg7r5H6ZmZCW34h7JiGas0DXKJ9m2nXljfnFAtGj23VHsjIWE/JHb07ejtI0iDOtnk+fv3psyKfcac30bZQsx/4iSoLhDIf/EtmM4Qn4aBAsiDqziAb0ESGZJpDq+9EcaYH6C3rIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456v0q3m_e2etest","name":"fv-az456v0q3m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0dd779dd-2520-419a-a27f-a305597f7d4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30003","status":"Disconnected","lastStatusChange":"2019-08-30T21:46:05.9495073","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"df4781fc-bc61-48be-804f-6893810a2524","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArofqkb1SWU9zyjFbVeTDDvfVThHfUbEWXNlep2ZLhtHYT+omL/XkDZXQ7QF2NZrwnpUdD6+gincllt560ehWsoHa+xgNewcadzJ0ClVsAuBCh1JrVbVdSrKq77Ns0UXOGsfeVMzomkqxMRvdEPZ5Xfw0v8x3GrK5ZC+GI0Igf+oxvzi4AZkNppssorxcwKAfsUxXToMQvS+R/Rjg1fKyrQ4pfdl4c2LhU7YJKRfGHW2UkOalPiLIEEKtgFiADN2BI7Ifs9YxbsgV3EhaMoObASXmij0uL859S6MSj177cDaQtA7L+7HLi2+/LgcWmxTypGhrTQjFqCkM7cTYNJegYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496woz91_e2etest","name":"fv-az496woz91_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23ea7bea-6217-4135-b624-713f3fd2c8f1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24005","status":"Disconnected","lastStatusChange":"2019-07-24T17:40:34.339088","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"d7c18ccd-8da8-4146-bc91-425bc530d300","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1L7hIRuVDw4tKzo7k4sFKDbOzia9EXoX/1TdqTThqUhlsMQdl5kpxOiVimCcrl/0RXAcwWnMCYC5XYkPpQZs61/Pt55MMz8V+8ij66zSvvXzTlkbVbrF8U0cRUo5Zu37iZdebR4rYqRmNPP/lFMMwRE7XCgECKgPpo2GO7mTjOR3EZq/LRyfAwvvokwjzbUluW/M9eyi04pzVdUaNuxUxURT7DNR24E7zDGzHLD2uMtWpTrvELiBKeMQ6k2UbnU3JbbevbuZ+zGQYdPYcoKxOyuQEdFM6MlD1dLrpcx8HXicb7bOFnU0E1nTE51q9+d6/mwCAJ7oao0094r7TWcipQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20001","name":"0.1.1908.20001","location":"eastus2euap","tags":{"tag1":""},"identity":{"type":"SystemAssigned","principalId":"4a268e2d-c3ff-487d-a265-c0e4fea011b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20001","status":"Disconnected","lastStatusChange":"2019-08-20T17:16:44.6457814","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3ee8aacb-cc1c-41a0-9411-89c1d77e3268","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyyXiXIJRAdpHBINTlq/RX8SN2WLWb8APceWhlqV8wdGdSuEP6UnggJcH7FcqiRhvtRqXavr+Jp/01RtbNiePtJjy213KR7ZbLGXd3QumpbRfZ1z6I+tLq0e6RG+2gtXz17CPhxUYJIctqXNxWLOPCTuLgqv/MWcK0JPgK8UGOB89rCn6tHGcFR73J+dzG7rTPZmG8KG2tesAQbo7T9dNP+Soq5Rm9Jtpzjs+p5v7nhOhHntWkmxbAUdkllZ0kEwumxYtP4RVQ49ZX8dlHCtNM8lBu/hZZksH9im6J4OrwRIvg6+S2FuIUDORlstzAW52Vyyzp7OeGpsLFxUrw14QywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458ow0sd_e2etest","name":"fv-az458ow0sd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"43d0fd0e-45d8-4919-9743-894ccbe53a8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30004","status":"Disconnected","lastStatusChange":"2019-08-30T22:36:06.4811305","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"83c56980-6fa1-4a2d-a723-1d9faac56370","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArT7A4VlgYYZucQZryYYtO2+vDW6HpnLkyGACCkmM2pFfrN45CD711ZDa6wBB89TvBcHR1/33cWcaRJSYFfeYKsOSY8fiFDB5H/a0OA1fbqsQ123MkZE73BoOQaCEbVAQJ/zxrdyYX/F5rJRVg0fhq/hxHWGHN0MvwHhtj1jIV8B3X2SKQ/n1fll8kGANoDjzKn8dFFnq9kWLfzlnkj9NKFN091Oss/8JXkcBYqKH3DOs+m1BmEMUM/HnXuPdW44yjsmvImvju95+0xFcV14UXp1Xyn8FXY2qtofGRH1j2HWrzLLEaQQ9nmXP/GmYLxsYMK11UBliC+iyfWtf1wOdKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461r2g69_e2etest","name":"fv-az461r2g69_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6f048a00-518e-4093-af3b-eebafdc90928","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22002","status":"Disconnected","lastStatusChange":"2019-07-22T18:35:19.1776709","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a17fad35-0776-4feb-88a7-68a5c9f78d07","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Q6B6lelocF28kPxQJlXdwacdkklmQomGPp5ZwVsAlAo5lkueD9jvLo+163sOyBWH5oc0hP2x07QPw0xPZ/PKepetaD6QZ1eMyCmmUOSNzcyZmeaWvBoXB9BRS7B33TOgpfxBJPdJ4J4PZKNzjZ3arOJ8UK9ys65tvIu1GhPOHnfUiN6c+S0o/iETTeW2Ki8hINMV77+xPhU87F7h8HxLApCESQFWkNSpR1YteCeyVso31hCiwq0BKePEI9gHot3pxhfDXp+qAYhAWk/uh3TpV9T20TisJeomP5le3I7C3IKKCdBcga4PCK1CfwaaAvUvGcCxR09tKULETi8q7jhxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az496yalp7_e2etest","name":"fv-az496yalp7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1d92d43f-c69c-4702-bbf1-1bd23c771a36","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01003","status":"Disconnected","lastStatusChange":"2019-08-01T22:10:24.82892","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az496"},"vmId":"8e0fa961-8f11-485c-9636-9917d8953e24","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Qgizl6Ebx3RmoJHKeYibNaIykhFVZj9kd/xnhRFTxumVp8QLSlpaCmOL+FPkls4UAimctj9ld8BRPI8cH3NNc2sJEgfuzyM8wAVj5VNa5VKLGAs7gtGYbe3BSkZ9Nz/Gwhrr+6Y39Qcm7JdV5vmRcApBYmighLVncm0XnAFXj3JHevnIa4Px81O2k5iYNLzJcnNhNyerAmhTYd8TtMgnhXW6UaNdHQpshPN1dYduEBQuXIx5tdUzYfT8mBgayFEBQ5hwbNk4Rmw3F3kJHo0fSYbwoaSKbJQfKqukeROreEB8JyApZPSoFvnIZ+Ai9vJrlbNsF5p1K3CICm3fRtVjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456egauq_e2etest","name":"fv-az456egauq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5d312024-6280-4e10-a04b-ca050773d173","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26016","status":"Disconnected","lastStatusChange":"2019-07-26T17:10:48.0263647","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7e0eb252-6aa5-43dc-8fc7-aee8eeb91f1a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1FRYQofhFqDCd1vTPMYrdPCYfJMYj+L7FY7C7ht/9LuSVnI69A9NpmbWISdWWINQ9WZYEF1P7aLMkW24Qids6PSrKGDpLAQKrPHt+6PTrrcgeasht2ei/h/aDSvS+MG1a/0AINT4/gEy/ww3TRV0ucLC6MK6rFOZu7stNMAvQ2B6T/0fYGGRl47gME96wflse5DW/UGgpLZlojKd3DP7amtlZVrvqjse/ixO51EsJyDeVMroYHWkxX0x2fhD2BjhJgQPX2TUum7Gz6EK2Dd014ET0FDxoRwbMowG3b6+imWUmqeWP/FigVkqT6Qh3n5kv+BRSyED9p93OkrtbjGUfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456v3bm4_e2etest","name":"fv-az456v3bm4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1aa29d39-8c9a-4a24-be17-cb8e9dc46949","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25013","status":"Connected","lastStatusChange":"2019-07-25T22:07:23.6898561Z","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c99587ea-4f33-45e3-83e9-58b3e0c432c4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwWUbEfmCRxuIiScIY2R+dAbqLkTm6P2IOxvVpJvpiWqaUHtElY6KYywOd6Mn2IWUjvPnVSZpgBugLiCIiybMQHQ36FGwUAxhHhlVjhKWYqt4L/TqBicX8CkCmHjvYfsU5YEZAb2osNIZ5v5/TRkus6zfU/2XH4GgaXrqW4zlUYVlQ0ZNqR0t2FLIAGkTRgqioEFpS2HL7mPTf3PniqbPuxDRPv3YlWonRqvYpMLQxSkKK4vleLoFxaEmnmkanjBKGgSHXwaGjQ96fKUfJArd0VtumWZsP00L89ymZBeFomTyxR0nvQdvUJ7RdY3CifoYLPKm15qlue6dWXb/1z1g4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/farehartest1234","name":"farehartest1234","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5d9016ef-4bff-40c5-bfb3-22af7a2ec1a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"37c8eea1-7c3b-4d35-8ae5-9a9a5f1d2e91","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4Y+Xwho2uPvbEiw2/CC6xc6quKtQ9EPXIfLx7JChGin0PSexAGP0tHEVmFcIEbI8W+hw8dhMgHtobkNAElHlb02kGRJKuX//UmDzusPpgOxPcoJ3IwwHgqouW5P+oPLLB6Bc1Z+VkcLoCtUU34MUa2FB7JjcDkNATsnv1+9JjfmJT4SlaWYdwuDkNM/R5F3EayR9HoGvNQBOgEVoY/WyPINStPjR29QM6QKuK2ieExKdbZmSsrrdYnoeMbbA39ZaqsFJDKeaLKXdkWPvcYFlxSOmdSgjwU6lLL9qRqPeJ3z6m/rsYBWr3AZdu8F5E+J/0Hf01BsqlMAy1qRpdLM9PwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.20002","name":"0.2.1909.20002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"162fcdf1-834c-46fe-9ee8-a1e9122eb5bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-09-20T16:32:49.7486435","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d22e5089-7270-4a89-96e2-7b3593aacb15","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAulzUtljtc1eJbULXd5ueZV5wUFDudaAKq8IivgBFf7VQYKOZ7eOQ7LVXXAzG5DpEflokCytzjriHAP0QhmM5HTx9po0kwYs3LohhpafX3XF/L1ixPhQfvFlALDkcENiaS35Gug7AnYQ9IjRewKOKVu/AWrs2xnBO4VyWLjM4ZV/YPus+4mNRhmM6WL2M5Fj8pCOUhmhQNsBLJWwkjBKmBhxl2+RmWEZPDnYiY0chdvQEpvOX6BOZ2KjCDlrM3N/Aq2MUTy5YB1kgTzGitHdBQqkKrniRnCWceZJ3wKE8BfyLtw26vI7HAuxlBSaMVy+xM8rXncKj+SeXtReLutxnNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458p07vd_e2etest","name":"fv-az458p07vd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c66245f4-c06e-4be7-b29b-7112923ffb21","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22005","status":"Disconnected","lastStatusChange":"2019-10-22T03:51:28.8010301","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"a7f94e78-2e00-4b87-b32e-01f1a48b2bbb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8X+P1MCI8IR1EoZZF4LkgPQUXYeO6qX+Nz7rmi4o8hSixfMlrzaUXwuIxuM4Ym3qGcA5F6izZGyBG7l6J3lkhyXiLDXxCE8fxezjvZwMvgheqFqkWfuemBrGy3VFuiDE5zqBL11KWOh/TWT9wlxll0ykCFIXZQdb6muevU72i1KpIyZEM1aQwnBXxb3ARlWEJHdJHiWJ3M0zPJsBtwfjXC+FOGSBeHoRkpTxmFqZ8racVZRbWM2DoGbCtTHvYXCQr0kDRhvvqYEVRzZg9+rFClY3HykwhbVcpXlI2Xqi35RFQITGpcFVjwXukCgvapwbY72GTgxg/+SeBCOrtDAeFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20003","name":"0.1.1908.20003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"088dd937-6838-492e-b5a6-a4a3f37ff664","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20003","status":"Disconnected","lastStatusChange":"2019-08-20T22:06:46.5470254","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a4ed6009-7b84-4b83-97ca-dda5bbb8805e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApmpsm3gAuP0+2QKkakkiCr23wvDw3519OF0oEM+SFaxtx0xwgTakwKCUMEiwQyk/a7hxt97jodscShYTm6Gbzd5rDYRONzwjLYcJc8pHmbfBcPNHbMdOdf7fK1AGPpG7wGf9S3xc2bK+6SL3rn6eFX1UdsXEuwEUC8rf3LYHZomj6CNlDnpotUUmXIVUsftFErvEO7QlVNZh157H2zZw1uEV85bEv+V5gMaaFST5vzDqCil8NuEq2gPVUdDOVi5/e0TtzUjVICEnEfuAzaRn2ftulR1SzoF6xrz1n5vHuVus8Zc0gLEuE+WOK7e+/hdypUjG6oG8rqEJQym4FIyKrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az5061jsr3_e2etest","name":"fv-az5061jsr3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2057f52f-7e12-411d-bbb4-2059ca9e161b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26019","status":"Disconnected","lastStatusChange":"2019-07-26T18:00:49.2623425","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az506"},"vmId":"a1e867a2-0aab-45f6-be67-3b3f230eba1c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvBXEf08gYVHckUMoHWkflK8fonyJsha7PRBTsXTpBgqaNNacTEcRL0WJtENNEtFx34nlugEK8fjwDRGN6NiY0YNACRkMYUvXRJlKRZcxjLTInSOLZJdxesyDelFy6ywGPitseVpKH1VTEZ62y7GGtVa5zrdqKYdwLb+vvdztZctGjlhTKrnMr+czh3feVtMtaUyjqke5VfpkXYBsrrGJ+m26y3jNlVdb9oTPudqcDMUf/UsaJ3PX3JrRnXwKOzZcL8qG9Y3utNscFAQ57kmZx7KG83paVxBN2Z4k9ixO7szw8tWJxAbu0ix8HKuDO/xmGbusJXVzuzHGppjFssArvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461r4mdz_e2etest","name":"fv-az461r4mdz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5aa4f0c0-6ccf-4382-89b1-b8c46bb3d9ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18006","status":"Disconnected","lastStatusChange":"2019-10-18T18:53:43.5370511","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"def8bc56-d367-47f6-94b9-62448c7138d5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwTn/MHD5oDQvZzIT9tSY8SdMRl1Y43g7e3XfBMNBlPCWKDSKNDppbbx4EuzYzusAMRkPJiPJoPrIUBHxsu+5WBbHp0AFdR22CTl99ZAl/Olt5YCQcl+s6ebK3o4eEgTZiT1tQOTyLD8jx0AMKi+MTtLpJWs8UNy7suTMBYLCiT6CesNJOQyQZ8aVjBGYkFNhoOezi7hJu8naUBjJLxXej0uRzdzAthqhqnIFqAHupPAIpzNeabqN56mrAqmM3oU92FuzaTlpeODoRqpM2AsrS37sV49fisdAMjEO4BvuHlf//+KxJVmyxfaDb3z30LQR1dWGM0E0J2SflBDNNCWkEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fr_msft_1234_aa","name":"fr_msft_1234_aa","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f8f4a6b8-e5ec-40e0-8eab-b757fb49c835","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"de160f7e-2f9e-4826-a932-097bf0c2b0e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx8+M0LMrhO9JLz1s1nw7Vy1R/dLE6qMX2dy5xH+/y3zlGm+vc4vfQsjVDwy4F6AP7ax4YeZXbc4RMolRwx++XhK6uC1Jb84sWWl8oBX6eqdmhajpgoOEFL7/Rm0vGE4AVkRFPmYEgWxf9fGvR4pK/2kj6z2gzQmCPcUqWcCLV6ZwUqSGsz4MTD8sR9q/Ty6ohy611UWFcFUWVyMIuTy46qOaJ7Lg/60jmU8uLpzI+n8IiK3MV9/NsvvON7dBfFHCGiQ7lCYPy8rGuiLgoTr5CpOpSjCpIz7TTh13e/Qya4i2TBF0mW9tBawF/NoYiXx9jCqWLCi1mJa4wO1njesBaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az508zljwp_e2etest","name":"fv-az508zljwp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"988c52dc-d331-4b83-b20b-f1578b6944a0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14002","status":"Disconnected","lastStatusChange":"2019-08-14T17:47:21.5664194","errorDetails":[],"displayName":"fv-az508","machineFqdn":"fv-az508","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az508"},"vmId":"3fb5baee-14fd-40bc-b871-bbc3cfa1bb44","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwnP+amm9D2+74Odxwf3I1Pvck1bvb0j/3US5tM5nF+eXS+Msi6R2WRriZvnLXXxt+QaYQlknTG48zZ00dMiT+CVh5TY3r28OMPrCBrCz6GBzQA1Krlt3mxPITFuKMZ0j+d3T0kRR2U33as8oRw1ecwO9fMRTixyG3XuvUllsPzgU0Mcrw8WBxxHb7jdYQqBS4NYuEzpvJO2gWU3lYXMQR2NJ6Od+4IHzgidHgVsKMojsQM5nHNStUoFOPDoktsHTUiKxwknZEompPjm77sNysj2SCoccDdncfbOf4QH4e+44Q9fl0aXO8zAeB+RW49mIOGpmCLF8CXq0ZeH9u7qxWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456eucgj_e2etest","name":"fv-az456eucgj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6abe18b6-ffbb-47b6-90ec-0ab84b5a9171","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03005","status":"Disconnected","lastStatusChange":"2019-09-03T22:39:25.3909189","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4e8e42f0-9c62-4b2a-80d7-817df5e24b4f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArh3BJLk46BzwJHHqKMizogsuUoKZQB+bFp1oMPgI/IPExCpZldAPJxppZKYGPtVX5N0W3uh7fbf4mRernOzjLNYhWwm1gBjxEFJd2j2U6uCAnhqvWVGHDjf2eT6LHEttElKrQUFUeDBj+vejzcNzf1okByD0u48JfwWnpsL1rT7RtEE4Ay3FAGJyE93NPRW2NKsV27RGkh9Hx09e4QYr4YthoQ/B4qURbPFQojc1onGm08KeTqvXhK+GvxrULbnbTiNBFe4wwPreTaskU1NH8tSwnYkXXawSlbHcu9EKS88Bp+AN3xxQjY0Gr3z9MZrevUQr7/3Gbyl7IGlk2a7iqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458peynu_e2etest","name":"fv-az458peynu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8b56b643-cab0-498f-8993-7db9ed5476f7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.15001","status":"Disconnected","lastStatusChange":"2019-10-15T20:06:20.4530384","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"60bbae36-67eb-4744-8c8c-ef66fa0b2a45","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApOMQPpw5Y7JjLgvyK3DGQsnNF/vYFMoJwxB2nZ2dOo45nEhWx81SNfFKU+jDfW+kmXw7efUQ6ceuVXZW9iafzmQKDGc3s358tAP6uQ7Q38JGByfPKY2rahIk+2wFoDY5v7COgFPKwIJjbfBHqS2xkOFpsnAc7ODdeTGgMyqZHa45jJLatgBh6m6M7Z3wn4pJY/6FeiwxmkWcoWixx+hRWxv2VN2x6DWP93lQIm/x7EpQ66M09eDcKZ5rjmmFQ2yWPIW4LhH94zAVGGfQZLKULkWDGderuTyj0s9f8m4LgKK91it/YlxDnN0FiFIg9CdNNbVehE6mgP9lWlEdB0IvOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.20003","name":"0.2.1909.20003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7b986fd6-0cec-4435-92c3-13c4b1e363be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-09-20T16:37:49.8481733","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5e109721-2d91-4c00-aeaa-d11516c1f1af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0aYVHxYFRp0c+aSIPs8Y87870GVsNtsR+UF3AvRSXtpHSAGuFzAI28h/ZX+guWILCynShcYSJgWOq+1U9vZ3Yjwz9CKswx6wOIFJqddRt7MvBpAwQamf33uxh4mlfkL5uDduoztrYYGkRS6wbS0BBfOaasoiCXB9sionzabuJikLkyaebdOaqME+qY5f4BJsEKQ0bGITVqveVzeXbjAr7lMLOZAk1oOkjsrG5HQ7lh3I9vRG/ryqHn2VrTaL1WS2SGBxDPdB48v8h405SM9ElVZ2P+OPgYblFRg+LxMNYQzsGk+qfHUm1GCotb+kzvj2jKNbHAR7kWugtxe5X/nJywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461r5kq1_e2etest","name":"fv-az461r5kq1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a97e67a6-0a6e-47bd-9fcb-d6dd8a3e4578","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.19002","status":"Disconnected","lastStatusChange":"2019-07-19T18:28:45.5727419","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f3c33463-d9ee-4db5-ad13-8a1b3587dbed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqrVcIjqg/AaJQUqqcy/MJi2ujdmw9K08tgObtvGK5pkBi6aE+XlKVKHh+ozrU/14AKe1ibhpqtAOlRn9SFmQKgzcoCs16PZz6Gd3Fv8Q4KhOS8cOC8RsW9DJqJIXOPGsz8XZ6MuwvZA+tBooo0K1/CvufLSZ5+Mvj9KEuNxRCnLja/TaxN1HqSkOByFNZ/Mz5SqQzfiR98PNTzNLFk8ziJhcN/SOYJjk9iKPz1pxFrhu9x4n81jj75/ge9DNaLLT0XPmTQ3DLgRY7CkYsKf5mAm6Qk7Shfw6+VLtthdlVVWiDSf/QW/2wGINEMv+iGwqK1LnXexednf0b5yznr3SDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458psyvr_e2etest","name":"fv-az458psyvr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3455a138-4b2d-4c13-92e4-73aa3d860a3c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22001","status":"Disconnected","lastStatusChange":"2019-07-22T16:30:18.487134","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"1efe85c9-3347-41df-a7f9-e866221274de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9edwE/OyMBbLlXZqS2MjXzeMgcQVYUfV1XQXldPpRiYPLu3oOK5g1faL98fDjJNGl5LIHUkBZ1SRT5XSR06E+9ITzv1+t3Sxm0pejT25zqVR/YEC7cy4lhotmdSAoVnDiJeEqQVGyLOr5GKU9UkJ/YZwefkzzthn4T3gUNPSgks4wvsK4EbkUbL9Xnac5vkS3sTfkrWwMX4/KTiPEuvqgzzo96fFnmtg+Vhzeuu/xxMKCCiAJWKyqhbd28gFnqzLuAGz5lmeUyakd/ujBXyVXD22m0Q2l8T/KGBjPsGHguZL6IfV3KEWi6DHhygImXWFX1oGA3gEG9H0ubDn6mHbRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20004","name":"0.1.1908.20004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8cfd7d27-ecd5-4e43-b265-996861d8d9f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20004","status":"Connected","lastStatusChange":"2019-08-20T22:41:58.6766096Z","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9be3b774-3a2f-4976-8616-86bd6570175d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvhtx417B78FA/TdX4yOc4Q+Ob6TMKzswzIPlieoKU98FkV5imJFr4OG6TxM3iijDuaHSN/8lbP5yWFeDjiJ/0zgyhb0isbX3NqHNoh3/MPyBgWKip6KcxRGR6+KWJOHehzHYWVVlknuqULOF0oHVyuGUvwHy3ctRkHN1XVBgQb9+I3Dr2sR0fW9dYIRPYyarXNFrlF5IIKx7pCdb1d8TklRTEvIDO+Rd+OU2nGPAJndvrArnVq2re4/oHtN2fE5BUZYfAQIWjNdbGFzcNBkifHR+td8dRKuOJkduijUVUZ7x7hLF+W1jtuHmaWvjpSELxQ7mHl98qIfs76F4uFvKcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456v6eho_e2etest","name":"fv-az456v6eho_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2a8df5d7-a98b-42cf-89bc-d17491eb8ef5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18004","status":"Disconnected","lastStatusChange":"2019-10-18T17:08:42.7692846","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"4712fcb3-a447-4d9e-914f-8a87141d8bb2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvUZW3gY0ZWFfrHxRyUmZaAJfNUoVKtE6+U2VT27S6vwPTUG5hpNawJqYKuTSIez6aNT+HXHkFIxumcPUH73aN5rbQqiW5RwR38RDSMJE5TpXjn+39udaNFKW3SgOMMq4NFbd9YhaWHzi3G4OKhhV0RHVPs0am8BQJsj/VQi9H2E7FjIrferrqKU2raelWMrngQWd5xN77EvSBXFbylfM0xZHPDPBvDb4i1HqbYf1227YQ//MezYBCJm7lKvUg4eWpapxVRshrGLNFJDnoU4JMBzMQqGmOK55AultoHJxZhs/1YvRCKufOWw++MljhTs7naJjOWpXgqDzu7VPAbh/9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20005","name":"0.1.1908.20005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97064a16-1eda-4a2b-b58c-a14034a21ebe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20005","status":"Disconnected","lastStatusChange":"2019-08-20T23:11:06.7719795","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"13c96c90-ee12-4ac0-987b-6f321d4b1ff0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA27MmOcmkRtqFWIXQ/bjgt9mXC27BScB1pE4KnlYXSugyVKmbP8jYnL6iHfLccgA5LFp+JZcu8L7cHAokiwew2AjBaXW4yy8eW5pCiGNGG899uLR2Q7Nndjl5BLRao+Sd02Ew7rp77boC8ku3MBuGlA31MAOUh9DWtZpPGAztne/tTBkyY+BE7VlmemydretdjdOTCtYuI6UwUmHPayL/Am3r9rbb7YtXRHn1Al87mVD3fd9DBqXmmOvbb68D2KvbX1EOM0Ku7U9k2bHdw7tF/wT0iWi6MkFuvJeU6z60pBUV1tkeyOgkh6lXfhEH4vwLTdweMFVO+puIJtL3RIZGQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458pxnt3_e2etest","name":"fv-az458pxnt3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ad162f7e-0c98-45f3-bdfc-160388febcc3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08005","status":"Disconnected","lastStatusChange":"2019-08-08T18:51:02.0733127","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"c2650270-4e7e-4e57-9d7d-b12c739bd15f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuPnBzgqBYQ5tOSFTf+8/RY0OcTvPa3d6joRT7YCO5/mjcKGXZdeLaPpPllah9wf8daIAfj71QubwbU/dnxtfsOZnGFRjiH1Fxj9eTYdCTEVt18ns5474LDpyuyG4EO3VEV4AkjK34OGgrJwL5K7i6K2JLTzPMYjJOBPg9Bm4n/JHerqlIMXR+Ig5pm06SdfqlUW1T1w7IYRlHOqqmu/raf6XvKLKvCMPp16n/iopScQ2fj4SVl1OqXDTV+jBS/O3Qom/UJdR38N5ZXBrEnOLSdTKPKdNb7iicWt/SQ7kkGAqlmOzMNvNHnc8cjlPsXDan1wiXUCGSh8jEsEFJETjVwIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEuhAuESqVh4u6TTbNECI1EdCJmSEYFigSdqq%2b%2b1rSB%2bKRvjYPmN7fD6Uhl%2bHP6KpemXxoYSQbrOUhBlslIVyGoa2X%2bh6nTd5yWveDLP8%2fbXjs0LWev%2b674tOtIOQTa%2fv59xyLLfQjraXa5btFJrrWJ7GydEr3OJgHvaG3nbyLA686%2fUnUXSyl8dh9vC278TBl3X7OnDsVJxEw%2fvfeSu0MzKx%2bD0x7jzNcDWDaG3Hz4Jffv7oK9FuZcWbe3VOVYeqhAyji1Y1YfwTmrAA8b8rlGt4yvm7adO1z%2bD2qSYmA5WYyRZJdwaibeJP0Bgdlu7QwTImC58R2fO5aaMXbUYSlEsmXk4XYCGSozN2u8YbRAiq7AHB8YoQoKAMRAj%2bhtIp72UZNh1pVoRjIoicW%2bbYZwHWiewIzBvjFjdvN8y3ie%2b5aQlLAAvQbgAuABn4sLRgeYnGl6U4G%2bBYdPeXrmAZU2CyZHHJMBo9JlANwAAHSx93QBMwIHqWa0FLkHjvPNYMY8qSGGIW%2b2VKQ1j5UAGLGZThypdbhP44uft9Tg8DIXZAM%2b4CDZveGZAYC2DHqTycEMdhDFD5HIIXmBQgv1CuLm9K%2fiXepGYtvms5ceocd%2folb4SbI6oTjGceKJ%2bf%2fwE%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '116500' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:47 GMT + - Tue, 15 Sep 2020 00:34:19 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - ab1d735c-ecea-45ec-a9ef-da9d707127f4 status: code: 200 message: OK @@ -1477,44 +2666,49 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEuhAuESqVh4u6TTbNECI1EdCJmSEYFigSdqq%2B%2B1rSB%2BKRvjYPmN7fD6Uhl%2BHP6KpemXxoYSQbrOUhBlslIVyGoa2X%2Bh6nTd5yWveDLP8%2FbXjs0LWev%2B674tOtIOQTa%2Fv59xyLLfQjraXa5btFJrrWJ7GydEr3OJgHvaG3nbyLA686%2FUnUXSyl8dh9vC278TBl3X7OnDsVJxEw%2FvfeSu0MzKx%2BD0x7jzNcDWDaG3Hz4Jffv7oK9FuZcWbe3VOVYeqhAyji1Y1YfwTmrAA8b8rlGt4yvm7adO1z%2BD2qSYmA5WYyRZJdwaibeJP0Bgdlu7QwTImC58R2fO5aaMXbUYSlEsmXk4XYCGSozN2u8YbRAiq7AHB8YoQoKAMRAj%2BhtIp72UZNh1pVoRjIoicW%2BbYZwHWiewIzBvjFjdvN8y3ie%2B5aQlLAAvQbgAuABn4sLRgeYnGl6U4G%2BBYdPeXrmAZU2CyZHHJMBo9JlANwAAHSx93QBMwIHqWa0FLkHjvPNYMY8qSGGIW%2B2VKQ1j5UAGLGZThypdbhP44uft9Tg8DIXZAM%2B4CDZveGZAYC2DHqTycEMdhDFD5HIIXmBQgv1CuLm9K%2FiXepGYtvms5ceocd%2Folb4SbI6oTjGceKJ%2Bf%2FwE%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20006","name":"0.1.1908.20006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a18b6f95-61e7-4327-a0fd-7c50ef9bdc92","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20006","status":"Disconnected","lastStatusChange":"2019-08-20T23:16:06.855779","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e28aeadb-897c-4c35-b82b-0691575006d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvxj9lOu7NxWzNgIbiDUM+WhqzMh4S2cE7JabI0ECmL4ymYlj+VUnaH5LR+hRLYspoLgplhybVqu1Y98tibTI+yEoA2khmRL1YTYPM2+/riIrAZuxvLxlLRSKwN88G8V92yJCmVTA6fP7vl22AisXNhDDel89QeXP/TXefWj8vJMEWY0mwYvxup8bkBPdTrKkIo5JFNQEOAOpkwXN5vtPn6IKL4xnc9HePDil/8SLxHemAbM1DgfB/3gn7wiwSFdzfThKvMHV+oBq/4u9emZQaxv7NIlN0qrQYeRpM5WiQ0QnG0eGuv30kOIF5NvCAi9/QWh7WqjK6pWtHzStgxXofwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fr_test_10_16_1","name":"fr_test_10_16_1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a3a6ec07-52b8-48c7-8d9a-ebc216ab4b0d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"03b40586-dcf4-493f-8b78-9f95a1c6a2fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtqetxZ300+WW1/ADAqMI73dkL5qRs3SXEG3fzNMmOIotAE2CQOsUV8MiNzmWEliamKqJ+PednNxB8zcfEdvEoxSNJLwaYVBRxlaq24YnGIaqKqp3/Hll0kX9LkNAPMCIu6/KRBmjKUsmv1mx75HwUQCeL4D44Q7KS0jIZ9b7m6lcrSUuy32mO//9ybulIbBFIGqKjWwYsVBrvCoaurZ5Kwn2d7DtzkeZBli1nNjwJWcEeXbGu1M1jEZiVKhmn2IkTO4F3I/1Ia4ZMLEa/MAWNOpvfbzBmkZZRQfiDCnjjCL922khNI6IG2JWtGTSuAMd2tGyd9n08ON26f69ghqFpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458qkzaf_e2etest","name":"fv-az458qkzaf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8cb9c8aa-ea9d-44c6-bfd4-f55511012965","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13004","status":"Disconnected","lastStatusChange":"2019-09-13T21:04:36.5714337","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"3e85d083-8a59-4258-a4f9-fa4c0370f9da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0+uaw9c14p/QP6JOaefy2EH7OTPKeDBvQi1tWnRYwdieB2eoXM/QnPyRMaWn5J+KCUkuKJnxghEjBPnG0qRq8XhWRJDrdevgepDCXLv0WZW0UT5FYd9zt/yZU7L7L7jOgz+wi0nE9HYQo6gmG37QHM/i5WsNLTNOWFkLYT5BXKstcDcsPMNscIBb5MR4POXk4x3/ayS/XiyR9bgBTjM01oLt484AfIIyqvu80HC+9uaO9vW0MsTI+KzvjJLDlnhq2oJ3I0ltDzUjnpTLVqQC+dBX91HPv4ZE5MXBwdMluqeOvsoY+mKpUQZ5vDAZjU+52tvDapTYciGl+Fw9Ikrx3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456v85pw_e2etest","name":"fv-az456v85pw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab8b525b-398d-4aa2-baab-59ab17e2baf5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01004","status":"Disconnected","lastStatusChange":"2019-08-01T22:15:24.9289647","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fec2e42b-d2ad-4c01-b56b-10b68a63c1e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqNPnMPmW3g2BQJns5o/DVsqRdbuYF3+D4zk5LmVUs6grOSOa3iNZujL2Z+es6pK19Zp40rYeXq73jaIHlrLsEnjfpNvqIoLMEX7QiC0BF0mIVKGBcAgDtLUyK4eI53QCRarvoEdsFOFbw2Xp2iuSfpl3Bss3deIqbl4iiYtBjCCQvBGmOKGiUsjwgB35N3qDhyx8S6+Py4ryqfVAyurj/TSKg5cONopBx0cr/OMpiuO/06/xvz3l55yubf5VXAzTqVvSpfO8cv4s8U7vBR9aYHk0SGN32Q0MRLQJDJzi1yy6gTKks2BAKjAwapQW3hge1VAJpNCiqURBp+WP3IuYgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.20004","name":"0.2.1909.20004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8dec6ef9-14ae-45d6-a1ea-daadf79cd55b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20004","status":"Disconnected","lastStatusChange":"2019-09-20T18:37:50.6256119","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cd3e36f0-3953-45d8-bcce-3774faada617","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvg6v9bif23R6NZBBNY/lIOldOncn7sCrc7mPWjkjbzzglg4LeX40MM0XY0T6TtnfYvr+i73XRf/KCK0AF+dxyP7L1YZRna0svjctTb5UxTN2m4iiihCmWtsg9VowTkhY47BcTeRhugtuITBdqD3/HNLNppxg0jeJh1TPYGSqE4Au8n2rORtpu1Xrw2z8rlG9hcooIdugsSfCu74cbCGfAiaRaVPStm1qZUa2XyVpgO1bAfSXZu3+aMoZL+CxD3fCenbe586vbn5g0q9YHHyUmPIBbeuKAx+DRO4kMoevYU1TSwuo2L9LIHNUnxvZOYRRlQCyYUoo1BQnz3b8iUjpjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458r2ae5_e2etest","name":"fv-az458r2ae5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c3db13d3-b3e5-4d65-9240-3276ca10ead3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08009","status":"Disconnected","lastStatusChange":"2019-08-08T21:31:11.7748336","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"a987a8da-dd5b-4c88-9d15-b5a1efdb0ad3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArzwajpWaozO8tzk53gIyhQ4fh43w67NYBYMGUMPLAwWscMvyWQedXT1Yod7nY6lhlRm3xbnnR+A9IipA5Vki4+jjahgUuyLs+85aAQS/Op5HVgctk2a0L9A4WYz+JKtNg8Isu+Vwg/TWFg38RgEyF9tmdQEI12aBlTnre8GAYmlKIoKibsJXjDg2tKXzngz4pYcxakUBdUMhLy3qbWjKMfRnhmgUlL0M3G5f6Jvua8M0jDaaOJmCZCrCko/9A7TLmTuDdVHeqfgvb26+UukY5yJKbOr9AZ+SGaJEd97S320JOVyV0S2zkAFpTCwwGe0Xo8wfnCXLr3tWiGuLfql4PQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458rbcte_e2etest","name":"fv-az458rbcte_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5485393b-fbe2-4667-acf7-40cefccdac6e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.28002","status":"Disconnected","lastStatusChange":"2019-08-28T21:41:49.1632172","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"d0f2da35-e3cc-43de-99c7-b05176a1532f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoMme5R/DZ71YRE455AJiBqVTb72MDob5+xiMOb9Ris/VgQqrJFQEH0xEPdCyHHRYUOBdc1oUTcquR6xZYmTCPbUf7fEzzpd3ujvZG3Z7zycak0leNTAQvpF4FrFJr/HTxl9xQFfXD1BAkQqxOmnoFrZQXxwvrqau1Ws75Q/tHGSIE3yaYVfWU3cSNRvr8wJTNS+hXkk9b1X5d89NtXLzwTfXff0E04B78dvyaQ5nEIMslKmlctQyjjc1znwHvst6vnKJSrFOBRNzg9C5I9fIbwo7YGPvmHgsW6Q2eVCBYWArf3g1UcqGStCN4YVgcj8peSkD/SkdaFpNXTagJnkmewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fr_test_10_16_4","name":"fr_test_10_16_4","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"48985b72-a556-4198-b7c3-d1f186c80fd1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"6594e480-2651-45b8-b6cd-cdee0a441322","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsC8pvUiBHf+PY+Icc3mhz+6scJK6GB35geq05aD7ZPEy5ZLpRJsd4/40MrzZPhVMR4EooneUUWQ1YGj3Axixwg0fQQcugFUJz8rGA542+DkCFd1qT3NoiERJPWG9fRQfTSzWoHjvT6pA8ycwQnWiBHt7sR0/saR8GaiwubqNRdGhQBarI+m7i1lmy/4Tp1quHe/e1PY5gu1r24PTTotu0shCXODzTh9CgOmFfwNLaHFTjoTHac/2/N2AOgjbNIEaTnEtcsdg3+OVr5SnzIW2YvcKwg+fmte8jYSZaAHXSJTC01eJ/xpz0CqbiH0JOsZj+ek9U6G9oMLf0RMgN0lHOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456vbajl_e2etest","name":"fv-az456vbajl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f4cf82bd-4cab-41b2-85ba-7925f08612ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17013","status":"Disconnected","lastStatusChange":"2019-10-17T21:33:22.1655606","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"979389c5-1e15-4558-b4e0-c2a0540906ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1WmJJ1ux2Ws1OWzj4ghR35ui4b8smHiflBAvz9rCAmXE/GUU9x5fdrtaWQtYTybxOZJ37V5xd6vftN/oH+el7HCvI8wC/h4K+ShUBAaxUCYMNPhq6DTTKKhTWRsruZPP5fNunmvYIPkJ2Pxyfe5tf5PalP0I8uJLjHuJCmeC1ICDxwcv2rWueYOXXC8eu+9U48IF8DNnSliwyLi1HBsK5bTjDdp7miNzRGSDx1nM1/8wB+FxaQOeR8bh7von/pBF7JAuEuoMvk+OF1G83OFP1l7imV9oya9ROAxzGJ3t75Z0kIN9aS2hpZ1y272RUEyP3YMR+AdK48GGiaXh360vewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.20007","name":"0.1.1908.20007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"12149f97-b19e-49c4-b468-2308ca729760","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20007","status":"Disconnected","lastStatusChange":"2019-08-20T23:51:07.2802466","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6d032859-68fa-4cd6-aadf-1e207491a085","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv2wZ674gJfDAZE3MKO95tkLzZvBNfrim093BqHWIcKsn1bMOpTo2Fe/AoqX7wRXOM1ycyIjSb9JQmsbrcnlBZcT2Gi1PqPr8sme4G51qjQHBPgp2TMV8Kn9qe/djnj9b4KOh708mfb22xs95T1AAQnho7XAR6Qx0nO0rzumHoMOVyz+JSWhQ+2NfSczWUFOqoMufWxMEfxVUDBRnTFgX3pCacjaZTjhDGMs/u6uTOjEErS87sLesovVCEdP6MQq6LcYf/lJTn4URQyFUMlJuGtydWVD3HwWRblP491DLFgHrkMMxVW2P/nI7IK6YOlwk3Gbr6AepK865Luwl7boXSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456f76pm_e2etest","name":"fv-az456f76pm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"023dd19b-bb97-4142-a509-469eea305f24","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21001","status":"Disconnected","lastStatusChange":"2019-08-21T17:06:12.6044079","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"18980a8d-3c40-4b80-ab4b-be3d001d5a51","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxCshnKNRQgOKo7z7u5TIvj2XSUtPM3Gvtk9nMhiX1Cj527NRrEogbgmlM54laCA5RQiGf38R2vDHV8FtLMZEX0TVABKfDKbQaBd3WqwmBnbDfWOklaa0mlX52FcnuaXJEIB28AJnpX4CRWpEgnAjB5MbEYDBUkos9EDRKitoIBK2iMszC8mU1Q1fF4wSQpht5Nw97F4N/Sw1ARcS/48gCYqpDCFfSWTRWZq2DcinFDx1U/MLbh6K4hcAwtDbasC0f1q10jqBmUNCY9NAInCIhZCPnvGTVK7T5w4UJD/eCiMPd5YfjpALvE4PbI/3SlNHjluGOXao8Le+BKHr5hPJWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458rl6w4_e2etest","name":"fv-az458rl6w4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"15f4f50a-5004-4f43-a92b-d42a2c7f442f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10005","status":"Disconnected","lastStatusChange":"2019-09-10T23:22:56.6724315","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"4065c922-f955-4401-8330-53dd4996334e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6iyj8u/AS/OgIP1kEZiKArv/LFL3431pAm+EVONJEB3baHsuWuNkr6GorFOEp3dgN5j4V0/GiQSmBEIokozQaI/FqxZiwiZJSRySnNi9MpfxGwD6I0M6/hUlHr5ffQyIsVhv9/BVTEEwFkrWvqGwkg7pAKh+9Zm9ZhO4twDwcsu0WeOfgsGzd99fC02THZSO5qxrrgCKVC7W3FHYvrE3hiR34ft+hFkTIrCVroxkJ+7w3p/G8stkhVR2fZjy55lWyvt7xO5NZ7YXcz5hd8+zLMbThShjUXPN4vVxQz4hgfOm029dvX6sBc3mauB7z76zg0KG2QKEkuByuIlkqJ+dpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458rmajz_e2etest","name":"fv-az458rmajz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"138f58e9-4551-4ffd-8fb0-0693081c0ce5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22004","status":"Disconnected","lastStatusChange":"2019-10-22T03:31:28.5340666","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"7402f0a7-fc21-4168-a682-50dfba6ad885","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuOLo9AC0/D7Zv2ULB21LyKhEPvehkKn065NK+n7LYBCSoxQRdKolKQEN0L3Wgty18b6jFwq87fjZIQpjekWyv/TrsJ0/r7BxDaGd+aOgWLSfOwK2Xkg19Aadd31dkINo4Wa94f7Ed5Xz2IcwN3ILw7TEyXdEySbcgoHH2VH0BUfVDlVTRIrDMQ7pmurEr5PGtqf9ocILmslevTcCKXYOUSENT7kf/UwHDv+kRBRW/HGt06Ex761WayeqYm1VD3ZEH5lD03x/Kg58+vePcGSclAeer6RuoM0zwV7czjjh67He0nmHgqsPR52wyXFP3C0WEy7c+4Zxky+Q7NXghghYbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456vd8wj_e2etest","name":"fv-az456vd8wj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5cbc2415-c60b-4862-81bd-da2b3fd37ec5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23001","status":"Disconnected","lastStatusChange":"2019-09-23T17:13:43.1070082","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f25149f6-c71f-4b10-bbda-258bd1013735","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx3GSDecEZ0lmqKqy/KpOoko/liG6DXuxD8UfqJMThRAGGPhvJcCj8taiWasYN6gGRG9RaM/AlINAT4pLpZAipzn3/M1i43pS7BlnI1AWNl3hmbnLwOZafaS9rUz0eIaTrjOExwaj4zVliUxM/qOvpOiUqWPRADNk08tlSXdbHV+9j764+YG1peiTkZw+IC/3tt27df8EtkCYkqATqpg8TpZskCOcK9qA7VA1PG8Odk400YF8r2OEFTacKUjEbNmp/86eC9x64vv8Oio09pGG7rVdnCNLHAmEYT10wVuVrJ3Q0U6wFR/mHfTQGzhE3BKGRw4Hbowi6RpBWhV8xjaARwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458se9my_e2etest","name":"fv-az458se9my_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"095b1c5f-ef17-42d8-b2b1-2bfbd59d7ee0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25015","status":"Disconnected","lastStatusChange":"2019-07-25T21:36:34.4414679","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"ecd2d084-769d-469a-8d92-1b90eae6d102","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsKb6H3ysXVod6ekO/JjCvGMSeQ3xfbZLF8tfofNa5BoGyPZBMb5i5r6hXltXlEL5ri8ZLs9O/C9dKiBIe/iMf38B/4+npAf+K2jYqaijW2ahZ1iXGvYPWYu8bQw15pjXtxEbRNcIGdpx+ojfKwwR1wfDawLaRKjDQm96uyeccQX1XHEkay0NgcPMeUYdX+DWUGvDhC1DbTmy0i7sC/djo+tskB/lSTYhRAn020d79wVDXKbuUvHJTviFps12j88P/4EAaqbX0YpmgQk6J7o6YiPmaQSAuDEcsL6ddIULF9erSVHGZWvJNm75wMIHZM/nxpCc8nkPA2A9t7frJb2oXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21001","name":"0.1.1908.21001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"26382752-6cdc-4235-aee4-109159eedbef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21001","status":"Disconnected","lastStatusChange":"2019-08-21T17:01:12.558167","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cba994c0-4835-4d73-86e6-c9cb8b43bbf3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4nNymmU+drYQGKSvzmQEVJ8IXHYYAE9x1PJrvbS0O1kUHbT5e80HY7oFZfBz2cFd7wHiX19DNU+nvqd1y4USZN7dqg/kMNrFWRoecMGyC5xaDSnfTUPVefxU+lPrnxXzbWgiWLjSnl4/NNwc9eTokgVXI/fHHlW5BfjfT/cC5q5O0L0r4HqmSuxFJSbA5InpFlFSsTZD9lq0ZCPwbPPpTrZlHL7WluZWkShCGk5Tyhw40uPBWve2hk5H34rCKizMtcAwjwgCjCnJ+83Ox71tbifkudWANNWgioC8HO7U1o9uaZY6Zw48kzQwM5S2MldjlzEpxc8LWHZhde0gGxb3xwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456vd9x7_e2etest","name":"fv-az456vd9x7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9f98dca5-c4cf-4bad-bd69-187b97228569","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"fc63c321-062d-4f17-9079-db9a3aad5f1f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu9OXc/+0r14Y461aXOlgTgFo/yHXM3NSyWRvjMLvxXteZinO33V6Y7svN4IMqnbjSa/xeZOWHS4yl0kL8PkOo2LPQ839iNqlbikP4iKE2EUp57HQXFQbJ1CuFDOMo2BoiCwVfU8lzXXem2DJazmdJ3yppMr5xqhxKnfJpLvzMdf0brm3NZJQ/IK6ovKqN8kLHGE0Fv9ErCltztzbZ+WlrDSt6m1lto7D4yhtozcGIVFvJAI2c0w2DUmovQbKfTtQPU7eecFjeEFFKuuGydE4zWuhe+j3cZZrj+M8OUw0hs1QqBj7M9ra8G3WfKGwrzNy39J90ky/EyXpXy0O5ow1vwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.20005","name":"0.2.1909.20005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"529e4d99-da01-4ea2-985b-b4c9fc18d1c4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20005","status":"Disconnected","lastStatusChange":"2019-09-20T19:07:50.9344387","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8616f087-df99-4266-8842-30f1b0630784","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApEGzIiLvWXwKpQrd7sgy84XC5plIc+ilvOsm2Nlh65FLXSHIhFs1tzw9/233bLQCKFEp7xIgd0FC5psC11KFwOntfOOiPH/iLOMbMmuuWPmXmHiys5GaJlUebK2tLXbm1c6O21kMRI/4+8U+cEGK62oYCYdCgjDsbkk5mGqavA5BgHK9A/he04UB4E03/VFaD1X+oDQUlMy468r9HNQ4e31uepiEhg2+uWtzN5C16le7kKFv4pi7cJR4cGxImPqbd369xgudmnuSnz+9rVa9erWGSSUSoM+AJ38TROAmwUkElN9VDQpI4XTYHplPJL0ICyiq92JwUNgvNg1LJjDwtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21002","name":"0.1.1908.21002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"80ee08d8-2a48-4f4d-a368-07de422fb236","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21002","status":"Disconnected","lastStatusChange":"2019-08-21T18:41:13.1549698","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"538c5573-5071-4442-a833-20be928f1c09","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuGvmNc4a927sbKNGHzYF1xlGOX0/4TaFWNZfXmSOb6RBk6kho8jj7W7zBIie/IuR4rrlS/+H3vlJ1hTsiFyFUbTkcB4TvY8eSALGoY2qE6h7dFwl8MJmZj1ju0jGMDJPIlTqpjWA+zbE/izVMrIPqhUoBzQpCz/QbgGsMbGT+T0OjvIx7SPKc07vImKQSmkxyN09azgOFcujD8fyg+v7j9gO6jX2+cm6yKZvKk08L8zHrrh/1oHmjggLckbv0Jth6WBBkGC8Jj0dJNl+mS0Ve60C/mW1IP0W5E03Zz7hz9ciaFvmuaH+I3aKnwRUT5aMt0sAJptoPnWXfQp3eqeUSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fr_test_10_16_8","name":"fr_test_10_16_8","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7b097744-b603-4e09-a49a-204d2eedc271","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21004","status":"Disconnected","lastStatusChange":"2019-10-21T22:41:26.0788631","errorDetails":[],"displayName":"FR-DESKTOP","machineFqdn":"FR-DESKTOP","osName":"windows","osVersion":"10.0.18362.418","osProfile":{"computerName":"FR-DESKTOP"},"vmId":"b8e33564-48d9-40e8-9e4a-9a34081e1a86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5dtLc6s7dshPQAxemxatnr5pOkezspnOXPuZ2TKGw5x21wUKwVpA9XIGfar6rYQ9YE9x98Z+bhV8v4e91qGIcS9BbCr4zbL01QOqiOqJ16F0f6T76gBsUTKF+uTQwcRMP4OCDMMUSVbsKhn2JeDb6VCy1TQIkN3Dp016BvfhJjEGQcMf6TWeqYKimMbeSav3TxR4g6bLcg04nsxcX/8Rqha733CsIkFj9JrYP5Ip2M+dPk8TSy3I+qooeXxNfJjKWKCwsN+W9/DFtGFu1jUiHXZH4w5ZmuWljHm1AQxPmL2bMAdtqLHYPH7481dK/LDux+uDWdlGRwvXPvHOR2No3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458sf87t_e2etest","name":"fv-az458sf87t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"35c33a60-d778-4470-b0e7-94b765c0c16b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.19003","status":"Disconnected","lastStatusChange":"2019-07-19T23:33:59.0602277","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"2209225b-5493-41e8-83e4-6dd1ac056957","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqUtgxBcRN14XedgJscnVRiRYrur3VVyngHHV+sFl7jboufkjjZ6yw1R7bVafjlcTXautWbvGZ/ihx2bpMHFN5QyFwhqPPmFGhU+rZGtNF70gu98ErpzUMAAuISJpR3oy+2wchT/GyUE5icN1ZQeZ075zUnmSgOuNXYA/nkpRuRENoB0CH1CVwo1yvPh+wBdfb0+K7wFgGhKgh6y6F4DUmSxwhEovggXBbsjQj1vwLVN6c22oWIMNExe8ETlLX0imJFKdXu5QTDv1rcVXmLl4B7rOzS+EbkYREWGiDH6RzF5/SqpkGtDKqLoaytwKRNWliOtpNL+X3KYjmqZQyOkZywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456vl1t8_e2etest","name":"fv-az456vl1t8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4f705ce5-c21e-4b30-8bb9-6ed990ade0a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20005","status":"Disconnected","lastStatusChange":"2019-09-20T19:07:50.9344387","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a21daf73-7e1a-42bf-95ce-53ce9b3a3608","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwRrE/H1idzJkrOggDN5G/GOrsxYaQVeRoWeIUxwCx8Z3gQwxl4Bs5aF8cr7MOvuCRxv7WeBDVVCnpDuXUqgBDK6JZCWtvpmfd9UQN8xJCReATL/D3h6pOQ8Psz1k6lUQKEqUJr7HTXLHFUQqXMAR34maV7Ot54aUhwU8Xv7TkgkMXlYhgiBqH3JJgmcYDqPJQDB/kBTqZNfTW0nsTniaqa8Po+gYGFHBlh7is4GJFZOm2+k3go5SbbX/2wk9dmsLLqJhPcR8ROCftr0LrpIVYJQPYbDYLJl7Krex2F6GbIkEKLqumJGj31Sgt0EmSiYeynXtnxo/XIjcV/kwkh0QNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458skimy_e2etest","name":"fv-az458skimy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4e57b2d6-586d-4bbb-96cf-406c74371bc8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30006","status":"Disconnected","lastStatusChange":"2019-09-30T22:56:14.0129708","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"21002fd3-c3a5-489e-a54f-7e373513c8ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzoiphN8gRX2VV3fwunnZny1qVFN2wWC6iQc/iiD+4LwnwjnGrrG3YYNnmcvmjRTylAyL1N8pwntJS4j41/15dY4GSG7f2twaaUP+M5cEBXUXSZK/7H5wbnyS0sSBOCs7JD1k5iJF8leWMYk0eNKDN5HTge6Dj6MUdfEqQW8wjILh5+rJuS/U+pNikjAcpgGjlvrrpZSCoNam/zyQhE73pqyBrZBi6edYM0CtzTrdfxHSsNZcXVjOLx5ydSeIOO1FHJT2tiQclz4Fa++lG4eB4rkneD7lklsNiSQrSzik7MXl6hYYfB9r66zeaalhPZb1MiGL+m3Nj5MbrRgOwkqvcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az189yksr3_e2etest","name":"fv-az189yksr3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0fb8b34-811c-4d61-9f76-75f81386dbec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23005","status":"Disconnected","lastStatusChange":"2019-08-23T20:28:04.1572377","errorDetails":[],"displayName":"fv-az189","machineFqdn":"fv-az189","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az189"},"vmId":"7d9410ec-4478-494e-82b0-9a532f4e8929","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu3cuYOnZy0kR68VdRwnXT1TpYvoehv8qBs3JDpDjFPGxt7JlpN3IqbzGLdepkEDWNQt+UAKK8f7b+psKizEKuArgIKOQM8TMHBoZlrYlwy7PALNrIKThfJei8aQfnkW+WVz39kND4OyShR2N2JuyjVcvT6NE6r4KXqqPTyJFMeppnfdhciYu8FkhfXgbbU4zabXpm6KVSf8TRnpAalcTbt/kn+lClaCc+A8/FkRo+LsWcNeYLMQYRicnzqmCVyG75p58l6gDg23uqVfAmDRUTHjYjuJx2CxCJ38Ki2wTjFbTLsHgEAoYT2QqlWi7xVOedthqXZBJIHYW9mujNUzPkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21003","name":"0.1.1908.21003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4dd9d9ea-3530-4d8c-9e54-80b7c8fbe9e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21003","status":"Disconnected","lastStatusChange":"2019-08-21T18:56:13.352039","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d9d43f66-ed53-499e-978d-87a526dc2d05","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApQqM59m5mDh0YCSi3SUAcgCemLSwwXbVBChNCrBpI9Yaw5TtMB2qoELeRNWZlRr+nztOmMCNpWt0Iprr5YVzwz24hSNcNU+iPCzZjngg50NicQHw/8SFv+JhVy2026BsCQaNQszNhm1u65YUU/s0au96v7wuXHncGLPmLE9CcrCEEES5fFpFkTkZ5hpvcIwphmOwjBTyKOASLaVI/oMnFvrZiDU008lSHOfcZ4jNeXTAc83dQmpO/KOExQrmfELaS8GOyQhE3xoAG56TxB3IrQSD+dOaRwSswngPvbRF7TMPJ+igKfwlqXK3PkhRAvQUt3CgCKSXRmJs9SyCypgQ3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456w31ux_e2etest","name":"fv-az456w31ux_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5b19817b-9146-4f79-8b96-37d1ebf43a88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.18001","status":"Disconnected","lastStatusChange":"2019-07-18T16:33:37.6480341","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"00982c6e-b36b-4a96-8bd8-665d4435afbd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1jFpLywB9FMZrnI7vITpV6Da9HJaixHNPIbiNS2ttoO+EmIwyjZZRaPevPR8QzdJadxyl8xxvlie/v6FJHxoIRnIEJqHKojCn6SkcvSdwUB0AfKTZqeebxv7OP9H5vCzKT2EToqZvv3vYqTLUW/DP2TlJx4FcuPLUuqNe9+FsZKw4uOMENV4h8xpo1ujopqYpXgBCSeFYCif3efZAu9w2hwf+//AtlpoBTD1vxGw+E5aGBpq3A1jUg8EkzuoEg+gDHVqTCQ1MJULgktfh0KfX6N7VecIVaL/358V8pRn+Ozk2P6SVqQtIRSEpNvERCHV1lPipGILomZjZK5zFqFtgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461s8a06_e2etest","name":"fv-az461s8a06_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98b17de4-09bd-4d23-ad85-abb528501bef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16004","status":"Disconnected","lastStatusChange":"2019-09-16T21:25:03.4116287","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"541e2a94-7164-4804-a7b3-3b18dbf80607","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA08JSPt9w5YFKLHULWWZMWAC6rxuVS8OEO+JBScPP0Qjv05BETpZ/O63n9NNj+m4PbNlpgBQMM/qej4mjq5Di9NyzyXQ31dcEAsGpRIa7azcmajYV+NoPQtDR0hapvEdj/szCi9zVsQSEZHkaB0TuSAXXQjh8Pt55o8IaW/+pkjJmwSdopzgw7+cfB5hTLLFoQMtA60Xvu0Sbwhd/S05fXNhe8//gbEJ4fLYmxV5sXgbf4HFap2+j070FNbo6d6L1at0T6gAoWbrG5+DP1hKakc8U0cY+R1hjZOuMmcG3Cuvtminw3JB0gnmhcle70lWYp021uF+0JZKA9lFE5tbGFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az548treh9_e2etest","name":"fv-az548treh9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"13ef6b18-2228-4b33-97a9-6552beffbe91","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19001","status":"Disconnected","lastStatusChange":"2019-09-19T20:42:43.1079175","errorDetails":[],"displayName":"fv-az548","machineFqdn":"fv-az548","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az548"},"vmId":"b1f4edaa-a5ca-480b-b2f0-a8ead38e371b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuc5iZS21vkBNk4uemmXJg7rYEuvwKPaPjFlxnMi4LqF310pVBU42BFXHzDxJqzR7rF5fUNMPUeIc5lYo0Mj98gBAIW5Fs42GWzQG+jaOnFXmFD7GpgZasPfZAyXavNyY10sEooVqCJrVg4YGX0BPMIj+eEsdnq+8iYg8VKQ1QeHNGBwldLtUaiUIjNZwJJ4u8ro0+0ALUUPGIBZOXuNTJJKZbCDx058yzacAf0GYr0ukTuczYBXuOq11/+0MtCkGmDSZhqsHPeAt5WJA0uxB+J9z1fZryY+U4MisIieVP8kz6ScrHCiQTPIPC5I6blirONzm6Gv9FZaSj7xCp9QV9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461suawm_e2etest","name":"fv-az461suawm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b008c699-6178-439e-be96-f4ffb8a96f26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07003","status":"Disconnected","lastStatusChange":"2019-08-07T20:32:28.8348212","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"1c827e5d-8e22-4f10-aaf5-90294780ca58","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy6EC97anyqFDDJigG9XkenbJ5wq8yqnEloD75xjwy0uzWfzSHCG9ExuJf0VVhCg2fQ5mWzPOOND6jGbMPVib73ur781hiI4h+89vCBmzHyCCFO+kMw9Z9onKLhmsAEAOfzeVnVI/Ev+kII0XJAFBaYvATD9+YIwHAcNNoU+mmAXnE1obYScLMPcBzTGQba8RGyUolkgiZh/OJAGGFk+Tgs45ab0B/G9U3y8RnR4L32ni1bizvV7ThyEt7WSmV1IgUtqGS5hjOsP85D9ae41HP8hItLhg6lusa2qJyL0rr0t/NyLuRNc1ym2+al914LUkUIY3rAZlk+hW3IOrKfVpDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az219mgou1_e2etest","name":"fv-az219mgou1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"37fcbd2f-18b7-465c-ba20-3f6ccd698385","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.05001","status":"Disconnected","lastStatusChange":"2019-08-05T21:26:15.73134","errorDetails":[],"displayName":"fv-az219","machineFqdn":"fv-az219","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az219"},"vmId":"8bec8701-d2ba-4095-b7cc-efac9854bbe9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzaW13gEAP8IsTXRvDJp3sV/v9a7S43dwSdzAQOWd33GIb0En5WQ0GiRHDayRUOc2la/NpWbCrNJCms5ixW0+TIJG+r8zOmnNeIJuUJeEScfWrlaSfk2dfuK2FVmUjNjPqw3UWkjSy+nyG7sCKha2KV1JdL90IXaLRj8U+JdHVBnKFHhvoZydk6XcgDNTm+vfyh7VOCWtWqD12pJeB06hSAEgrOphW/rDaHjU/g7367hdwgbfkGSnchQ+FkwuRMqInXwqLbynRL4PPyBBUuob72dsJihIV6rxbQ26CG8GtlvXuqw1jjsft9tZFGB2PIvWT2BYOuKQm8BxrJpdpljeSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az58156g8s_e2etest","name":"fv-az58156g8s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dfeba283-11ba-4580-be5d-bdbf86887b55","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22008","status":"Disconnected","lastStatusChange":"2019-10-22T17:26:34.0512589","errorDetails":[],"displayName":"fv-az581","machineFqdn":"fv-az581","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az581"},"vmId":"8597e5b9-4281-4722-a8e7-c4c39b0c4b27","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtLfSb6AaX/jNqCFhJq8gEq9fJdhSLkppgdLC4Gx6Vb0neTzplUV5/ul4R7Ig5EVTVcj672GqNJDe1BChVhBXSWAuz4NuqRKflSak6TPCJ+Bl5dNw/BdQpqdOQaKGUSwhHbXS3nNZj5LlqObYeLirDBXH3jXtVa1HI5+RT+BzuitFYMjtqdKp1/5Z15qJlAbdP8Fw1c3OXpdnrzclVPpBibwxe6CbR3YtsjnKJfbRkdeGh9/YMft/Eiaoulggyx5Lot9fxmanIQpAceZhSmsFAtThOqFuc9ptOE9ajNQiQG4VNxAcPswK//j7syNEOtjKpBjK5L3ml/4E6bAv9FKIgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21004","name":"0.1.1908.21004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"98072d17-a29f-4f22-b589-ceb709f1a733","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21004","status":"Disconnected","lastStatusChange":"2019-08-21T18:56:13.352039","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"957f8e10-6105-4fae-ab6c-1bdf6d50dd4e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzVPm+MR/eQgfF9yGhq55cDRVEnz/lTd/SzEQouYwGVzahHhth763VzbePtBrtiipjKgRoal5VwSxONEgYdhoGgkCLUfh1JYVMcju9ZY2dA97hIPhkZMR6qU30XtJAwnRcp0YiP46kKHNWZ3WDYxtt2RTqvhX2kGpfnfGnO17uBRkYinxImqu+njjy/UIR2p7+F9Qrj8Bwtr2qfENkFUGAyK0yy9jiyPE3SCtsgTtbk6Q5ym2F+JjfpC+wZfsIcaobwIKrgKr2TY8HpqPLJOVaZSfTgEA+ovVdQTGJA+qMmUU+PE+rZONTIQBFyFebACB5PGfgT5YC/dH97uMVX8wBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456f7l81_e2etest","name":"fv-az456f7l81_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"86add91e-1a4a-43e6-9606-5e19cc947b32","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.28001","status":"Disconnected","lastStatusChange":"2019-08-28T19:03:24.7624542","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"687e28c0-bba1-4e6f-8ddd-d13345c279e6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1boNoKpSq5YMHO+hDdKrZNXkaPWF2kiTtOw06wj6DvXfhxt4bS6lymb1neYCH0VyXz+LiNwIWlAy7pbF1qizvecTKrv5Y45Wak54Iby0QJzlORtWf+XnYxmjnEj5up4kXah8sNdkxXLJJnmTo0N0wmITTmr4sFPEvJicJTqZwOhevw9EyXzS9HJl4roiXURjPUEET7dFg9fhx3wdQGW5gD1Z29M2njU0ZyX6+WmISTO+qDOgBlstmxM8Nm3bauOYlXYnxtzt4SedBuspIlkfzixR3oeRhArVhRlV5CcHhDWL1UBGXgqNhR3EiTPYWxnwwzSFQjn0ZNlZ91VWMDWHLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az5819mfyc_e2etest","name":"fv-az5819mfyc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5dd0111d-9ddb-4b2e-b80b-256c90a54cd7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21012","status":"Disconnected","lastStatusChange":"2019-10-21T22:51:26.2324611","errorDetails":[],"displayName":"fv-az581","machineFqdn":"fv-az581","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az581"},"vmId":"b48d8cd7-a8fd-40ed-a031-0f16d3712340","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA20GBkGWeig97/teaZgGXpJlzuEEVZ5os6XfUWFCd9PQS1tO4jkTJJgOZsWcnx/ZEugKhM9328BrHz+lqUmtSlBFyBUQ8cnmXRjA5BfiIR6Aky0WYLWj19rm38mI+n7hNBL8OOFu8aKwPtoiSskyVPtLIye5frnBYFnutsP2MmT/1J16MF5vbtRoLqbrJPZs0cNzijbIB3vAeJ05sm7HyMx/LilB0FWw3Y1zkU2VaPULfwY5Mg2az0T5J+yxspN8igEyvfZtTG5BFzOooLS7UJrIOh5Bd6gPLnV4i4wcXL2mqB6Ea5RQMEl8sbsGdVdB3UkvWYCPvXrMZi3YVolkFxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.20001","name":"0.3.1909.20001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cefab123-1a8a-4657-8f45-b150b5173880","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T18:47:50.763962","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"949ee233-96a8-4b1b-9eaf-7fa579121c7b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArrzC7ly1QZwL7yHj+SAOEaYgCpxwE1VFsjZqdwL7OcWdL7BmRqDOYwL3fOdwnl5TTeiw7M+ocak/sYJogA79htl7Po3BtRcgJ5xpk3eczhutA4WclDYnYj/oYQJRi28CzL+SL6mv3Xg1MqxT9rLKDMu9iP57JarQR59hkDuXwXrYKZE8/oscfJwvRCo2gKFMazhJP5mNsDZiVBNh291U4rMn/7Vd2CtoJ9gPNVR5wATyROB4tU987m2igK15ii4FZbLKD8OTjrFTZQBfUboq6GZrw5WTRKm3L7PBKOjTqFEF0iC78sBhxoi0QMzY53va+mchbBpfXu+7e0qqqgWrfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az581mhi1g_e2etest","name":"fv-az581mhi1g_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f5d1d94e-f60c-49d8-8d1a-d24238064a7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21011","status":"Disconnected","lastStatusChange":"2019-10-21T22:04:24.4093744","errorDetails":[],"displayName":"fv-az581","machineFqdn":"fv-az581","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az581"},"vmId":"1eb31ce2-545f-4678-b530-3543a5cd9b51","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvDGxkKJSxCntgV3pDXXGQOxt2S2WdhFyF952qKRf/SXktt0/FC0JbBLjxy46jflc9RP0R/7x82XjwLeObM6WwCXaery4sQ7BDCCSe7cPClkkdDpC7l4OmRc8J/icG2rBJ/i3aomKK313AxZabU2gtf1Ok2uAGHMU7HD3q1LdDaoe6cnpW5O+0aC/vNc4AZSSfrrtL7Si5TxwG+R0dj5JKTdf0D8/zbmwnznD1+KK8upZLdlThuz3LyNT3BpV8KAhHaeFZnA1h+gYGhMx/C88DxCOrxbbHF1qjj3F/ZHh4EJTbtCGa+SPUAbSQLN7W1GYtuQz2Hv3lFT2SEiJrFBjzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az581r5u4k_e2etest","name":"fv-az581r5u4k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0a5303d-f090-4e74-8add-650de5876c7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21007","status":"Disconnected","lastStatusChange":"2019-10-21T21:04:23.866776","errorDetails":[],"displayName":"fv-az581","machineFqdn":"fv-az581","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az581"},"vmId":"a7d4d460-699a-480a-ba27-904ff792f3ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoSr1QLUZDDLpwZjxUt+DMgZcfbyLY1Im4pfB3b3ARV/XwXIRGLK0PaE7ZljOYmtZOL67U+FIrvnS8LhF9kkWLkzauLA+oXPew+UI//fN3RVruymRxxqQscb16HohgjBj4NoVuybKHPC7yFWQeOMOhpOf2OK3hjvArX96L03BvC7JPoR9j1QH1IiRu7G/N2/lHl+1haXkw61GYUcTxLRSE0vUO349WrRPlFbiFiSRjmhNjS8gh1P+ZtGygUUnsoa1YKqWEn4PmzIrAXdJo61IHST1uzqtr3ypybd88aL/wWRulqLqnwKgbP4S0LBdO/8yhFmQbC+KtjLesliOUZ9lOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456f8ome_e2etest","name":"fv-az456f8ome_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d81095e-42db-44ba-8c7a-bed5c054fd2d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23004","status":"Disconnected","lastStatusChange":"2019-08-23T20:18:04.0214026","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1f005d20-6788-44e1-a959-4424177063d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwdbtwClih8NqmnO9Lu9IujScifCKCVR0L5bLzZFHYLJguM4v6FWGmZAbzIfCCxBjS6q9DfTtCz7gc8FGaSFqhbIbF0UO8n6SS6DZnTJeX6RDXRsUU0sboqchC4utmjIrOwskDsxMI2ppGz4RYHMe+b7sGg/X9rRiGSHaXpDZ1aVYLzL/ufLdf96pTH6Rgji/ng8L4/SbgP4YYved+/0lt+e1dkNr9rghVMjaRvYYW+vjaLCoTtLRn9OZoEMMKimnCipd5JbYkMvdzoNvC/w1pLc4KwTmkwOAB2kJ2Y2DZzRdYUMUUUQdFFLwpAi4fsUmvLQJxQE/PViqTOHJ+k3/6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456w4ign_e2etest","name":"fv-az456w4ign_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"68e30ebc-d945-488f-95de-d5b9206cd85d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05003","status":"Disconnected","lastStatusChange":"2019-09-05T17:03:50.3494053","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"72ea1a62-3117-426a-9843-0c82201695c9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlMVMhnCsHQhNtIWPYw7j8cs3C09Tm2ncsUKkPVbXi4+PEhd6UMiRN7OK6afONgS7GyaJAQW68HeqdaEjqbV5WaJ/rvX3Dh2uJ4xOo2HqKbFKIFpi3DiRIVuX//o6eWUeTt+wzMqkJPrQ7JpdgNLfSOoPzfgiJ1PAx09mmsGT2tAI7a6xTbiNnfBZHBQsgBPCErZVQ8J05nEd6SYMxiXSp+CJwZFSVlGqrLo1KVWauY61zdXKkIFQjDFj0/sZn+NNw3TvVwBwqmSOZdwIRyL77VWDYDsUL6mOfkIEUaiE0vQcOzqmZYRgJZR3mMO+u3gBZIujnSEWiQB8c95AgqbGIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456fck94_e2etest","name":"fv-az456fck94_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f68c7f22-5bd3-4914-8366-3e77294f64ef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17004","status":"Disconnected","lastStatusChange":"2019-09-17T18:09:33.8033566","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"61d0b284-cc5c-4367-b5dc-4c0ab1f4d358","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvg6QhshH2HBD2p+I4ZFG7vjTq5vOSOE3GV4Mgac798W7JGv6Ksi/alZLB0huh6gvCbIulEx6phJoqnZKZnWgw5rverbdzC02wNmKi4dVHKibUOhJIt2jJhLypaNslh6wPSfssnVte66Ftrca02dsAMyUem+gGXHdhMSE+2wK0IqZelcHuwaIoc5H//D71ptfFvPzG2qN5AW8zq0DjGLFgsw9NKUnGgEMOKgwWjjyLEWiMBf6Cw5ELdEOt7KVVSWRdiWJ/jQ0okk9+W+NwNTx0UqqzxUj4NssAQOn2uxCg4wRYroceNg3YBQ0CtouvaBX+s7R32NC6eQYr3E/EwcTwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456w60mv_e2etest","name":"fv-az456w60mv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c3858183-4cdf-4f4b-b923-6509edbc5d8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16001","status":"Disconnected","lastStatusChange":"2019-08-16T21:36:12.5722718","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"280447db-560f-4480-8661-02b4713d56f6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3bvjcOzpII2ZsrOjSulUwBka4i3UvAr8SQiqtwfy1ry3cnOHSk0rBZZFuppU9ugVv4Ny6UMOaE/ADqA6nnUI7lYzicXJzoLay0OVXhZcBlSKsJ5U1rClekqlpqS54AxePR2vbpN81tzhrtvTMiuzA9Y0K/dMiD8Krl8V3xYJosWUlXxlr/tQgHFhPtZXCW+FXOw/BoZyNVNrbQBmMCEVcSSkpjSfPxG+WfMmP9tDxSV9mzPQZNVmwzzpBK9g0EpLpKvlzLr/XPjZpuXUge+Fu62bZbNX4x/p947+cO2OaprUpMWC1f2OGAVqC6IihOSnYJq1SSN9t5ByrJRpJ/RfuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21005","name":"0.1.1908.21005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"02448f6d-0319-4eee-bda6-a182e6bd7831","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21005","status":"Disconnected","lastStatusChange":"2019-08-21T19:06:13.5097552","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e605375b-acb7-4bc7-9244-5568748c9413","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4HC3yvMrFJom8jn79xRTs376TvKgQp2RO/9FpkEQbANtoe/CVahmGY3m0h03UGm/AaetR5dvGRUMWich+YrlHJWo9XjKDcMRijlORYueAsrkhmJYD5RBV3ei5ZsnB+5UnYpC348LDg5OaBTQ71XxkSk6gFlQl0G0FOOrXDTFYe/1AgxTkTKv6GoJkms2bLc3kB19Uw7+R1qNMy9gW9Mc11cA3yxsBQf/Q1oJRtL1ImFm2f/L8gci2j+Inb397SuL15JoEWnmDzwcWpn9dntHAK0B9iLke0StUDhZyPKXI1iJOPgeQvg/ud/rtj2N1D5oXT9SNQFUzh3OH63/ThbCjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az581u4qmx_e2etest","name":"fv-az581u4qmx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4068646c-7a74-4ea6-9a81-81e30ebd1ade","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21014","status":"Disconnected","lastStatusChange":"2019-10-21T23:16:26.5737799","errorDetails":[],"displayName":"fv-az581","machineFqdn":"fv-az581","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az581"},"vmId":"6fff77bf-43c5-4a39-bb98-8f51018cf972","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvcxsFwNQeE9ZPPowQnsHsfILbNsdNyseBLZli33X2sMX7UaEfwmqo9t4xF8SMzO3YJoVdQYps1p/Ktm+40486tIMSU2cpP4JSuDEvpIfsBYPHxSeg8q/z+bwk9N0YumiDZoTNBcXpDO7YItkWpcjRBTxY6LQKCnZvm5u3W2iOxDYVrmi7dRaS3WVoC2k/bFEt7mcfFoLFSrF+52IMhyT0pPMQOHncFch7dfg0+yWlhFmxuW1T7EvkzJQV5qTjjCkeAlFY343Ivx+N5PmE+eZmPyZX//cAZ5jvqiSZ8aWtuDiQOdffbrIYFvXyQMRO1evT/NVjHDKDey6uZrJhLFv4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21007","name":"0.1.1908.21007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"169eced4-821c-460d-a2f1-eef0bb69e42b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21007","status":"Disconnected","lastStatusChange":"2019-08-21T19:41:13.8683375","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a1a12439-8fbb-4193-ad96-37c6a287f923","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwhjZSoBbk+MKXrs9WyW25xwYc8+toObFweVCtKlo5WYl4n8AvV1JrvvMRY8KxP86QCIk4blgX1VjGQ8UZd21IN22LkZrw4DY9wx/6X7/vZDeWi3fryRs4SLIDHtJ30E4tfO/Jrokw1k/O+DpkRFLCfbRdf3aT7FanIkAkoHntve1diYTevxl85UW/XebwXHYqpFRCzZaOHGfCHTaGTv/CazPFhJa8tq3navIhisV8Kf530ai4KzblOlYxG8Pk7n1DViP8U7tS4Hvul30ZRp2pz/Y3ugWEc6M1nTYFi1CAF6nffKNaReynG05GG6QG/m40op/04hi2I3PlIa4r2NJaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456flhe8_e2etest","name":"fv-az456flhe8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4954cd1a-5a9b-4921-b4b0-c1498b20fbbf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.28002","status":"Disconnected","lastStatusChange":"2019-08-28T21:26:48.6790284","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b1193a8a-804c-4b50-808e-55398a00f050","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0HldNC/TBxsfMMcm4j8Jxa1TFWtNKO6slOspRapFz9Lh5iCUWeU80UfVURDPJ7apbQV4eFwoEazY97Pup74WMm+C1gjtRndyITapioThmVTzptOvA7FCyeBqpISt4kvnagIu0/SoTolm5YgTGTW/2UNW7OLiOYgw4b7rz6Eey89G3HJGtHwaDaIQOvCTWPhf8f+YUQJL/WFC41jL0Avx5aLTnW1Tgt509/bTAwlCJ2Xo3FnFUg/TA5O0K85s9NF6sE63Odedvza9PjmmaLfbtGV1KHnicolbm79QeVsrTEqEOSGRyA4L4eCoQmsvy6mACEFInq5Zg8rGIwSSf0GzDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az219q2s6f_e2etest","name":"fv-az219q2s6f_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3c62053-eacd-472c-b9d6-cedae40e6567","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03007","status":"Disconnected","lastStatusChange":"2019-09-03T23:24:25.8564104","errorDetails":[],"displayName":"fv-az219","machineFqdn":"fv-az219","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az219"},"vmId":"8a1b32cb-e393-4a91-83f4-9627bcd2c0ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz4MxLrJTwz/6VxBJ191WX8PVLaO0XzPsjD/EsJFODmj4RcAh1To5ehh59rfoUV9ONLVTHHK6XXDS9VByWOT3KjtIKqxbD7vzwSnlLwvqzVKOJuwZVoEdnBlfWKvH6+iB5hlSd2F1TZcj7X4vqcuUA4PCMjg0XKN3JOz8oh7poi5Tvqh5EfBkthXY5AElcTV7fYfJht8fJcUBrGLbnWLLS3cI6v685pH0njvbXUp1dpXQl8gJrpiKt/l9QTZOeB9LTJ+rJ26Wg/OLFMkcZkGQKP8rw5nR44V8fgvFG6KfXTo/tAcDT+/bk4/PchGTDHREBXe5lj8HgDLQIjaXObbkcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458suezc_e2etest","name":"fv-az458suezc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99e9cdb5-cf24-45ff-8534-be12ddc963db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.17001","status":"Disconnected","lastStatusChange":"2019-08-17T01:31:14.2380189","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"69155786-c655-4437-b119-f2ac9ff70fe6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwtSGQnsfjUPcqPcAzde/4Yoj+ycxW+ueOMWT4u6Xp6KFO/PQjrDsiNfAron2PUoCYgEKJbnHkjLOp3AiGkAwRtsJl2AryJALS2HQ8/eaZuiu0JOlgJJWTkvGWIbMYFIqPdnb3iErXf9XFcBlPBS4iL3EXL7tBZSbk+zCxLFYBKDwgMWUQt7Sf0SRLj54rqrwRK6Q1lG9K2WvFy+u8WUo2VlZ+0hl8PcQHKnTKzuQQ3jjyjUyG6OsCiZi8d/msvXSgeBBc07gjuYEndcImEgRV8o0zyGNZkk4SMBuL6gGWGJTq7WShCoOt/PyKjy4tuC4OaHe8OdsVaeD9G8hXAbbsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456wa98o_e2etest","name":"fv-az456wa98o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"001d7152-ba29-4d36-948c-f4b37a82697f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29009","status":"Disconnected","lastStatusChange":"2019-08-29T21:10:56.8373195","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b9614f15-3c62-46ac-baa7-0d93b9af131c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4N0k+jtySWGOpvthlEoMC4PikArazwM+Ol/iFpsrnnysiiQY1/v/m0gKnFtGNBxSkqe+kxfshfQgZgoNw45IFoC8lGnqsihzJXK5qj2Yz1/gbBWUVc57wFM4vCGQFbPjomXwjRgjm5dD3oJoHVzrog553UtC83eR5y3QMUQk8CLNq06MzgA5gtmCjw1cQ8q/NPA0f/bRfrNS0U2B/Ke3CoSBUyfzDah94pPX+hzCx6kWI6Y58Mm+hyIMs+Wq0FJtHWjcHlCix/GLSrZbafZMPVNfgarIY0uGPwImcc/K8E2BAPkhsDvLxSRORlUxa91u00MyD7nf2jl+18/h/ohu9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458t0nul_e2etest","name":"fv-az458t0nul_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7f6a4f95-902b-45c5-83bf-e430795e9513","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12007","status":"Disconnected","lastStatusChange":"2019-08-12T23:51:55.3350552","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8996eb69-a474-433d-8842-20324bee13e6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu+GjeXqNCCu5TUPoklTCDlCYeqmem/KKcqj5+yrOfBSY1OrI73yqKi6iRNz9/GMLoLAwqtCIWoTKZpbkoAeOFxm1slCccrIy+8LLrKtGvn+l64bL+hKqB7AC0NZTWxjazT81yxkvcqN3bSkSaLjMvyhZtUS3iOFYbNOuG4A3FuF11cdWrv6SdK7AAXSbtoj5enrtkrwMFBbIG02hsRlAeUl/q815t/HAVUGJ7j93MVyYi8cvL4mFwYqzVsgZ1TKGUjPuddGp6ypXmygSF+TMwcOqHx4a9kMfNGWytZxX88demJ68aVXhOJq5fu32anEgOtU+2tLvJ0QJGr5pZd1oSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ftu5s_e2etest","name":"fv-az456ftu5s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8f439fd9-cbd2-4f53-90a3-42cbd409c1f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20004","status":"Disconnected","lastStatusChange":"2019-08-20T23:01:06.6264717","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3879b568-93a1-43c2-88ee-be60f2628bbd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwOM4femILXu7Okg0Pfd0GCk0c3yr1NdSzmHOCxefFczQZXFvaXwMBhaD0FXL3kEc8rw0u8DOlArXdw8K0ya2u+FBTXSE5hSd2DcRKxvBEA7gz0L0jtnk8AljfSqHCoqXnj0ytC8YPBPXCIshwXxNBoHL0v3+Kh1YpsWXRZ0uFdyIYd3RDu8nCGc6fdryUKY8B00bbAe3MtkQFjQ1qZqWH8jCjiJnCinG4fAG/smqRiOhShLiSZMSqqgsPVuNQ8twb5vF4uuIFHppVEFqNvYC6zeOeE8o3eAUdwthRA0gw1CrszkwT7HxZsDmAmhpCDv16sgBwhIOrKsrXnTnehUJCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az59581h0d_e2etest","name":"fv-az59581h0d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d4d28730-c54a-4823-aa05-be972e06c8c1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21002","status":"Disconnected","lastStatusChange":"2019-10-21T18:49:22.5583411","errorDetails":[],"displayName":"fv-az595","machineFqdn":"fv-az595","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az595"},"vmId":"6887d62c-5c82-4181-b14d-b31653aa28a0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5tpua1ALgclSP2t1ICS8zjw3wu/pU1StFRMKKmPIaxyvNkNHyfFwT4IL56yGZiYSS0C4mdVAMcbBSIEVzqd/n3CiMEUwFk341FOxJLjpNYRAeaJDTPuNw2P+2zK6sqaKOuMWxqqmmWJRK8DLMD6DwczSP5MItT/JU1ncLzbWrxWvDShsBx0a+SUCgbdJzELjvkfCHr1G79Zg3dXI5RAK/30BF44vCxPiqqUOczY0Shnmc/NaRnw6xVfIhIdrfDOfp8uqkcEJNeBWkxB9WzBhv6SPZ6C4UTUK1rwGiBtCx62Xf8yIQaJJkyUvf+ShXirQpEP5XWRMiBiQu5zkwTBMnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456fx39d_e2etest","name":"fv-az456fx39d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b093f8d9-bb18-40f0-be66-1a13a79cc740","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04003","status":"Disconnected","lastStatusChange":"2019-09-04T23:31:42.533593","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"af747d88-160e-4502-b2d7-ebf6b725fa3e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwOoJ8g5TyKP6UZDP8xUR07dR36AZz6T17hxLGfBxkEeawOf56J9SMEBiX/x1r1F/kFPDqeG3mP/5qjBlrVLdnXy0SAJRPFW0eFwNjsRNKOTXL/TfHMh4ORBBaFysL2QZV4SGD4mmskl6FGEpbrifkmIYNYw9J+9PcmMAmSFl10mhQaYzILifzM5WqjCDKVApcWdrjuL5SrvoU+mgAWm1l0B+7PGy0Q+6E6WEbooBRvgkA6sYreT2EGGjStGbgs2ynIBBRkGwZJXhYOjUUs0qffr/UMGWE8kj01B5EsfUiTkI33plikHPxF2oXuCwR/TahshOKggYENdpatKmLCXPsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az595n27qp_e2etest","name":"fv-az595n27qp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"19617ffa-3efc-470d-9bea-98f8730526b7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21013","status":"Disconnected","lastStatusChange":"2019-10-21T22:56:26.3178287","errorDetails":[],"displayName":"fv-az595","machineFqdn":"fv-az595","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az595"},"vmId":"2195c117-d175-4c71-b681-49a0a08b4578","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx80s2OkfMaIEKkwkOvgQ+j7IZ69gFps+9DVJ5cVUJUU6ADVkBdRUMuvilzDZWLTGN5JDVbxqgq1jYlyUMdbpLRF18xZWleodos98can39FXcue1/uWrFUJrc+IW1ZGtDtuI3AohlwGUjKynSY7LXuGpqkbrMCZDe9oWAmuxYWqCYsBEbP2MAGTjwUa9GPAhpd2nSj2aggipsxiaMKDH+K0QjW4glX1gKjjUe6VO8nV4N3FlzLjDK0ZSPLQqYJ0GsS1FwXFtr1yvkvc7xFOVV15ixrOx/ingNdh9TPivsNBgful8C2xuhNeVHDsSp5XiCkIDMyLafvtnBYsMyPT6fewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458tc8y4_e2etest","name":"fv-az458tc8y4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"769df772-e80b-49ea-a02a-629a9e48efbb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14003","status":"Disconnected","lastStatusChange":"2019-08-14T17:37:21.4464527","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"a238e592-b407-4bd3-8294-b9c8bee28344","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy05O0go9pA+3sp7Em/Voirb3bpe7oY6/L0+tJIZm2neGp46jH4FUKFf48QFmOLl6cOpzpK0O5B4lIhl7+cmTfPswpSlT5RzwQGZl9et2Pyfts1WATdkeNjNBeE0SmSK3ZpjNhsICrTlTs1WMOYgT/JZvJDudY4DPggKE+6QfGMolJbSj3bzOWGjmNVVJtPuk16SaPZKOhV7+WA46M54jW+YhVRGIcWwP8C/CmbBjEnUDfqvl33SYqNkIaMgN9bbRQYj4gqyBNJHg2Zs+xMfVRZ8QrOV7hx7DSqXcUhmN/Oo+mauVAKi4eWFT2SpQNE5KMNszYYdvrqDU635/eqXRVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.23001","name":"0.3.1909.23001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bf86003f-71f1-4a73-9ca9-9b4b9cef8c12","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23001","status":"Disconnected","lastStatusChange":"2019-09-23T17:13:43.1070082","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2364fc72-02d1-435a-80a6-bf67d783ef46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvc1prvMQkIKEeQ4Mh6o8X7gsKLcpBVWR7zoXuZn0liqRCfMicdDL5I0TnLWkZAj8x+cIXuTbFk3DbhGs5EQnLXGeBsi/tlt7Br6lI99HJjpS57HYEcpEKniq28cLEavPJZP2ro9fI7L8G5+/MUyqTPlj+4nye/UL5DU4yG3VHDP3siNJRest7vpuk2jC5wNaCSir43ygDehQ0PxcR57slD04DI9Ek5BkEBC25KTfJSjkKUvSUGg8DshvEWgbOLHcZTT0BmoXC9KDvk5tdajGDAMRmIH+MubJcK9TPZdml530nqPr71jSuVr3fl4pDxOhrdoAtRz16JyIQKaknevNOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458trymg_e2etest","name":"fv-az458trymg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a4811ceb-620e-48f4-8013-99b4cf81809f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T16:27:49.6402475","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8857fc8a-8ac6-4b02-92ef-1dcce8326618","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwSckV0MwrrC8iys8yastiyWuw6SEzG/tje4j6+ksNd+JdkllA5YCCkJ5C38smlAqEoXC/oHfll9nnLSKpz0i7vOZXF2Ukk54xIUNK9snss6/vK0RRzmdNasut/Yv2zarkIfT3XVmEVDqV+fYDrCI+WDApCLstXMm+RXw1mBxiqeND5PDJmilRx7s1Cx2pD4rNALDXRAn0ROFAQeZppIxlmcaMcex/kqtrPg4rsjq7v2Na4shdvOqbBLhyQpm+cIQLaLYeU3yUxiBYWUY3hdjPTW9f1ANNOCKNGNaDWooyIsMR9/iWFHHPPu//sgtl+zDrlAhc5NRgezwZwCZslY6wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21008","name":"0.1.1908.21008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a7c982c2-1671-4d7c-bb53-11a69fbfb6f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21008","status":"Disconnected","lastStatusChange":"2019-08-21T20:06:14.089862","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2e1fddf4-f317-49ca-a280-d8e86d86d9da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtUgykA5Ozh24sESZ54dr6f5V6s7henyWFOetItGxjElGRPyXKxjXwZU+OkOaukOMFduC2oCoVtifJmCRo2tV2SaYJP6T7HHCZWArKQWS3vbPXDubpUVtZio+osi/x3V6V5lw/9TLG6CO4pUAKTI++hAmlW5cH8zZTxjwvesOFKvkNGx2GmsRoq+yBWh4Q0TZpQa+DUqhD9Yo34nodMWQgHzeZpu1KY484eCxRL4QBQuYIWfUX/gJXcaw3rnc8nYDbYbNI+iUqhSVIIY18Kzvd6caLFomlQZlEhx6I7wxdmJqYPkLT7MZlTeM4JTSV/M2dQD+4siIbOnQFQdmZRE3tQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458utmr3_e2etest","name":"fv-az458utmr3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bf1f0e8f-0dcc-4401-a650-f1f80406e7b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23002","status":"Disconnected","lastStatusChange":"2019-08-23T19:58:03.6932667","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"c197e9c1-3482-4158-bf7c-95a7f65ff4fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2Q7HUcyFO9vikkBGa21ryW0+0eJHLpBqtXw/N6gs3GQ6A77xf5iTHyLsJWdnHlBlN3/n1yGn1c/T4+gTJcwYqiPunXTvw4tzrl58KrZ3kEufH9cE1ih8Y/D7abYPzq9cj+L1+hkAViiR+/+r6aIXABTTOoarS3cPSkOr8l2tWfzJ25vAZ+49lkH2OERrkKex5tn8B9dS2fVbuhF8jz5uGbB5oYJN8HMnHokflIXMewCbKPb4AA+1BB8YJJ3xQKKNjG+sLQxaz7uYO1oqW9nuG73RSQIzk5lVBRuX83BOb4h5XS8fdL/5nASdHrtmf0h9ksSJusU+l4tNyhnZgnDhAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az230ustyi_e2etest","name":"fv-az230ustyi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f75a7101-d328-40a8-bf57-d05ca1064c9c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12002","status":"Disconnected","lastStatusChange":"2019-08-12T20:25:28.5017692","errorDetails":[],"displayName":"fv-az230","machineFqdn":"fv-az230","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az230"},"vmId":"187c1ce3-bcfd-4e53-b03b-196ed8953ec7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqArVNaWHQWNquRrgKba4JDWDqdQ6kTjWsd7qy4EzXX4ZguuqYTJCxhSPXDYoGcpajLBSYQuu1tx0WCws8Nr+rMz1c/JvE/souReP9edpMA/EMm0o6pDXuM8KDBRySzFRXjLEw5VQJHbJeYRfbz4N1O7j08LeFS0k2ztFjXAFmFl+yys02vuGX0tAa3Ivw81QqqHu43Gq0KXhLaoRjHKSehu17sSqlrSql2VMbk1FfDQnhyw8EIdpsz3DszjLrbLnAG+tdZswc2Dg+AekZ+uSEyqwO4HSvUwlurezwIhmewo1OdNXZle7ikyGsn9+AYe53oApRje/fUY31lWjokWq0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az59923yrg_e2etest","name":"fv-az59923yrg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"676ce3ed-9723-4b27-a497-e984e62e2ea8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17012","status":"Disconnected","lastStatusChange":"2019-10-17T21:23:21.9211586","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"66b5827a-742a-4af8-80bd-e20a1f8e5a78","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7v+bKGE979Ll7ZTRnun36/a2VMswGf7MFH63tZ8ZMUzB/K/E37Adj9dA2xcY+mueMzZOVxB6GhWdiwhNIeg/xzRGgT4Uy+owRBY2C0DAeahOr0mLCzqnpJPTmLginBmrqiJk3Vixk/S9vD1UJLgO8ntnL5+OwwTfvDIX6ZaBE3a6MmbA7Huiq+IvJBEDnSgS0c/HgHEg7jl22TcPFaw3KdqH8iKXf1geK33m521n5PKpNGT9ffYQtxAxMuA7BUmv6R4wp8pdE+dfmVgcRnqoWBnumST4lqBgE5AAltkBWjT43eKxh3yb3qGIp4pRYsQsUDQzeT4TkBajMkwJ+eXFGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599735wy_e2etest","name":"fv-az599735wy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"db4698ec-dacc-4460-8d9f-a975e57c0df2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17010","status":"Disconnected","lastStatusChange":"2019-10-17T20:53:21.2569399","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"770e59c4-730f-4207-9070-067f7a4136b1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3vyl9CZO7SdIgGJnLtCTeVfqE7rD8GCKk/h3TrpcqJ3MYoZIpj+t+nE5FLJRQatybHZyl8VpST+diWgLUMWZuK+3JovuIh6G8M/zYDCajUkYoN33yijR8wU3QwtqgqM8ePK78rPQ205dsvngRuz2PYgt0LLlmjCcZk7XvIMbqntWOKTxUP1KAuJkFXTPE4FGhTVxAiKb1KryXBupC/GpUnHlYOGdgnXWil9Y2DB9F879Srvdt+tVreOR3yZuq0qWJbhTBkWQ+v/9jsY1HkBmKq3gHddffvHoHdOyumFwztFANGe6zEefbfwgrGdcpQLM1JP6X5d8t4Ccm77f7PUzOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.23002","name":"0.3.1909.23002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cd28de91-be3d-4e77-ae68-220c3d70fef9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23002","status":"Disconnected","lastStatusChange":"2019-09-23T21:33:45.0414883","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"76ead105-327e-42e6-8daa-7eeb4fb50daa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzow1WOUrEa5S+KP6uPlllhT9traQsqYWh/CWSALCm5cUT1aH6vctyBrOrXj0oZPfK3NBoiTMksGnGy9B9pBVKovd3BC9sRvEzTKFiBbzbAst+6070GgbgaHvUKhZ5z4tQg4aPBPnrxcr31v50BQu58EaPPl1Yj0LTBsRPtrxKcPDlmjqWj2L3y/Bf9nQSUuMV/uGbcxkgb60ScPkU8lg/s9bO4kgnRX0fSjkuQq9PNp/BQ0XL//s9iKA+qTEM7rrvhWy1JvhZy6zs3k0K+N4TJsDFuj08c+9CKrRfcBfWDAJMZIZ8/gVkGB/BqQE3WH6rxjV6P5R50/pmjQjHw0QiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599a6crl_e2etest","name":"fv-az599a6crl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9c638e2-d854-419b-b5f7-b222f7b30c8d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17006","status":"Disconnected","lastStatusChange":"2019-10-17T18:08:19.4738433","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az599"},"vmId":"19e515d5-4d67-4247-9555-4429533df0ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwkjohxYY36FlJe8uSlI4u6njbapKhwK8aIeyXxAUHZT3gaF9gtPHmmK7SIOfY4aLvoUpenNu/NfVxy1neGKXyE0PnLUNxloDQKrIavZgTWjFKzAfwnduQQLqdi/D0V36j+I5XSLLzwhFk2g9lk7WbwrCOLAWQfZF8BV8AUZlmLSpKTjJrtEwE1m0pxCRWzS9zhXk/3Fa4yo+FkPrjh81E6oA88hHPZy+Aadszis1k1ne1oQr9nkBXCaQ2ezJjWuLC2AQSkNAJ8nrIO4wVoYS+o730QPs5GK6OhDHHLuUszeJiiZeQuAZxvNk0Vjtk9aGH98y1T7qdpifhoWyCzvt4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599aoxek_e2etest","name":"fv-az599aoxek_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"41d94e5d-ea9d-4d46-9d29-027e4a599f8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-24T22:00:51.1244851","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"80f98315-88af-4d95-bc69-bd01759a9453","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuaPGs0ZVeUEnntZZV3L08aORFi5VI4+ZVsf723KKOH+nr93plkdzRb7ugxTiwj10eBpGng6lJ7vu1KJP/xu4TztL6YfMCGbIYg44tDIlo+gl/tRDmngjr41x6IQU8pfvxwpu1WreFIkJnwLHpSjEXg3r7Hu9D5draYd4Rb5gcWxTXcGSRPTa3SCj8K3ggqXu6psVmqWqpGyr6huuRdkwMooWVj85m+kxkK6TtG648VH/UHWC7JOvB0msqmUv+++bgBpmen/nAJjByf5QRtMb4+s5VbwjwEUI9Xq06/BLvI2iwJ0WziBKErLda6GHH5tTsSBGz3v0SJF9y/Kc0A57VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461t46em_e2etest","name":"fv-az461t46em_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"556f83d6-d1ff-4c2c-80bc-5dc7bb1e1b49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21001","status":"Disconnected","lastStatusChange":"2019-08-21T17:06:12.6044079","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"1d13cda0-ef0a-49ad-97ef-f58e81aa5db3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2vIhIpR44FJ+wOCYkK9ZBe4OnZ9mI3QdsbfXBpdlHxhCl4/Ye947FklUQW1KiUJGnSmiGia0AK3dPvfdtGwpOQ1rplO2E8lYDhb8SKiZYTrat1eiJo3rxySW2kw7qQhF9c8gG16aDuH53AWlbQOqLVLN6bYjAKPxQNzN8muhhFyrb1GSDpHcvb714yC44oUZp+PcNfqvM2lKqg50Zt4rbYX51BIE8eF1LU4jsbZuvCZOke0an9AfFzPI83gAgbvKPVzMnCtootfHBysavM2PGujm+1ze4DOLhFWrTNdDGIULJtO+2DQzp2oOCOGyZTTEUv+r7MrsdfG3RoNmyu877wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456wef7k_e2etest","name":"fv-az456wef7k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bab6aa24-c9fe-4611-88f4-fdf40f42ebd3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18010","status":"Disconnected","lastStatusChange":"2019-10-18T21:18:44.9216218","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"2bd2f055-699e-40dd-a39e-9665d10b6867","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7bw4ttf79dVP5CCHQQz4u9zS57zuyTv6Vofk1ICK37EcxoMUZHMfcBD2q+W4YiO2EO5o9dMkioVe30JgnaxFI5rrAX0CnVyhjoSKpzzJnkbHcRCDiTeCSrdqMQqeXXqLsXb0WfOvUdgkXQefAMlF+F04NHgNWe0TC3yYFuV5pYRIp6At6pdwzp6vGsAw7Q0Lyn5uInFPKi3uxAWH4c1Bnyd11YHQu3j8g3aclK0WIE91vXaMQiF3e11DIewPRcziEc87JzPTvU7YgRRAOMEY6r7D6WwZweQMYVMcbjSSaEPNgDXFUjdjuwk57lzPbp9/BTLmSgAuZ9S9G/JPwIq7TwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458uv0xb_e2etest","name":"fv-az458uv0xb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6bfadeb2-309f-47ef-8b1a-d747744d805a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05001","status":"Disconnected","lastStatusChange":"2019-09-05T16:33:49.9378823","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"1ff72bba-bd09-4d9b-b281-06c6a8b30da9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp1IUNiuUPO5mvxwmaWBt6DTvzo+Rlmlkg7Us76T+EGTG/+JMU7ZEhPcM8+1YglaoTpACXjFtzOVyutyFTGYke19MDehUeLrHFh/NxtFdjSmuulNk8+yDzfISWYBeJN0b+fDVnL5+2iHnHBobrGpF6K6cB5vtXg6oyz/4JKdO3SnqZdNZdeQzJ9cx9iyZqPNjkhC6QqGc2RoCfOPiDs82ULPuFhkDKb6UmWxxO4YiS88dk6UNxP2UvFLtK9I5iXKKeJAxNQfEoNKyZp1X0CVSIZ6HmWruOh7G8Z95Ynenlh84R8eWMrjhUWzxdOLGQZxFj5ej8PVBJyquE/Yi40f52wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24001","name":"0.3.1909.24001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c2757f9-0c28-412f-997d-541f7561fc70","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24001","status":"Disconnected","lastStatusChange":"2019-09-24T16:13:52.5017335","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6a7a9a00-2e15-460f-a1ad-aac75f52afc6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqcF8X6YVwbcfSEGpaORXEDV/aK9VFUvE3/AdE41lRp4isyMN03bIsSbUURnbh8t0wvYGVsPGaRUusp07+RC2EJTPsg2e3VCOn8v3UipJ7ENgnpMkDoZp8XYc8f/t8fRANWhvt2AfDAy+Q1MpKV7AB3xSSnJfngVPi4FgDJm0Xx/d0P/+0u9YLsDzprOu6MXxQvbB6FoCNS5DZJvL6vJqiMXoUPn3EIsmZjJ14QFkpsO4fVw76L4bqEt/D7+w/McssO6M1jOT2V0fj7i1dfZ8nyAqwkTJoGPYDMTOen5pqSuH6KK/rM3ldkb+B/cccAow9IPXA61nODaWCmaesue09QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458uyhdq_e2etest","name":"fv-az458uyhdq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e05f91a3-5535-4e01-989e-00015adf02e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07005","status":"Disconnected","lastStatusChange":"2019-08-07T23:07:32.4750112","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"cb7902fd-bd8e-427f-bc1d-2cdff246b877","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoOORXN+OJVPkZ/CjNoRBz+Bh2KyU+GAbg05I5nWTkfIIFEuv4oXB63PNLyRXdMsu1YbLqrR590mUrdpSy2WObJE7hzXcZbPq17R4PdMgz5MSSlhd12Ve+yujhC3P7X8k80dhjEZDDK1E/dwSl3xfx+JNcqC9WNbuu3bJ+1RA+ovkx4BXJEk+KYcJpPcUn+f63r8BvA9D9r470n4MsYr1Q0b5Q5An4wVkB+BsJ7ynKSWXLYqKl1nmmN/rYI0YNMIxElAaVS8PE6iZ8Ye3Ug6RuObYtRGzk8qgaZjgY/I644qMVgxTlinQzOmttgntb38vwDyhism//2qZ1jz3g/hnzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456wn1ch_e2etest","name":"fv-az456wn1ch_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"96a992ed-5251-437e-923d-0b3c25ffaf93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24003","status":"Disconnected","lastStatusChange":"2019-09-24T16:38:52.8227789","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c20a4412-532a-42ab-b061-dae928a91540","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnAszuzwBeDPwNifBOepZBKUuCpFmve1dvbGPrD14RUdTdvv/dDVyOTaK2bYrBkG7GxW/Vt8cMpXappnCffvz/sYo/XrNrPLhadUzhkGG33tdLst8ubDKSCa1iVV5BkDckl56LaaLZcjPDgGUJNv+yCmwn/W/ln62NZRPt1ROll/EoAGlpAh6FgVT+uU4eg4KwKnetPyoQGAS+v1I2pSuz692fXrKkkMG5iYz4GBINR8NTdNvZgDlQGXUP/QF4RUznuWnGGDn8Z15zE6xOHraWdP4tc6Tw/94VROTN0oovQ4MBCJR7IQmqiuPyPqde69Xy/WSrfl23ZerGPf5IObr/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24002","name":"0.3.1909.24002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c2568a35-0375-423a-984f-ff6ed6953570","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24002","status":"Disconnected","lastStatusChange":"2019-09-24T16:18:52.6064702","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5f4c000b-b72e-4375-9ed1-5b9d316fc5e3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwxUlVngH11rQdX5IGCAeBxhbHtGBh2VsLIisvR2h6XXqvN3K9p+uWopS0OkK7zxI1ql3jcz+uD/v56Mj7/L62qGmC9isw4hlwRdoqQ8vlOtZiEb/peDUB2C1Tj7Vv3nXyPf04xDJlC3QQxFxAO7WxvoK38uL94bJQKaLqAeB5lR1IIz3vpSrlyBQ8ow8zY7h5iFmERuisgMDP3Flnb8ePZbRV06EHSOnsiZkBmXuNTrUNkkLfuV84WqWVjJElKXSzoLqGwr98IJRavn+2sEA5e5PhfC2wyiuu0DZgj4LsxMpv89BKB1Bce3MyRiFtTcrd2+lM49+576fmmVjgvgAjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461t7zcy_e2etest","name":"fv-az461t7zcy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f24738c6-fe33-4258-93f0-b0a45c2278ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08011","status":"Disconnected","lastStatusChange":"2019-08-09T00:02:49.252157","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"df52d9d4-3aba-4a47-bc6f-2c5878fc7cec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApN4AOBynuoCJn9sexryoLc9uyKo1AFb9eNqRquWGx229bHzyPQAMGpN+B3clqIZZjpmp9ds4rpE4FhYUSdjyagLMbYsiudjGIxxahU2Nd3RP3BYG3DO6CjJkErUSlEUa1N6Ax9ieRNR08fBp31Ql4Z9B+0mj3ENb+rWVCCDG4eM7bjWjR118n4QF5Devqyl9x1tIhV2XnAui8KgjY4gmojS1V8xuyi7ZPnjlxZSPCw9RyMup+kI/rIpYG0h2Yx11fybeXJH0rU5uBnd4Mq3doSDhiJtK4f6a6tWmwBjvtI9v91fiYGXhCD+1K4Keod/cOZXHJKgWhZMh7lBvOdYOLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599d0esn_e2etest","name":"fv-az599d0esn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e327c1ed-b828-4b1d-aed2-6152556fb51e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18002","status":"Disconnected","lastStatusChange":"2019-10-18T16:58:42.5860588","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"7deaded1-2a9c-47b8-a57d-d7c40a100f77","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxv6cDD4o+VCTxVjvAN4krercVj8/yJItA9lXOpU/oMr1dAmG5ZZBdCFm9BNQ0eZ6KKb/TfGvUM2zC7vDc1np5+l+kJ0GLa2ZQ8V/m7IDETAjVdNL2hiUtP7aq47p4vbSwMovnFvJCaR1+3J+43LCsoVhd6onUU52I1z75AmM0PRR9MDtkQ/wcINF6Y/GLCzp96Qo6HCEXyEmM3Smk6o0L8Q2ZrZ0hxjzm7QxjKC+lRXEguwOPKsHlfBP0SycoqUQ82CNwqBeEw8opCQaMHzcfMVkUyQzk7Z155TAwq51V0T8OXeuk0LzoreolQThPRja+Vsxw567QWPfsu+Z2w3aPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24003","name":"0.3.1909.24003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"96bbafca-f54d-4403-ad22-b5bdfccdf4f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24003","status":"Disconnected","lastStatusChange":"2019-09-24T16:38:52.8227789","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"baef2fc8-3739-4a2d-8aac-6195757d947e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtaMfS6ByJC8o+jx/PCqKeIOpl9bcIkPPq/wRaI4G4NkLSxJEUJOqVr77RJVlPZdjRJtw4V0aDo/Eoid4fsrcmxhXNtvrkENtKdF8ep6nJX0H8WSIuVgky8QKohZw0zJqYdfvmEvXTznj0hW3efAQIwoTI6Y4LPdUlzoZQO29xVYKes9+1wwssJjNiTj1I5FJ0RvSnsmV4upyi6bqGxoKI7R6L4J4WXLdzsek6aha56NYwyGTxniwq19lwA5wq3kTP34b61v/5lSBEcbZXVXPPC5La5ZjpK29fHTulaIQWQWN6Z98QzkQM8aBUPc1V3o7SQtXJMJCXMSppHx8jJYx6QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az3559pkuy_e2etest","name":"fv-az3559pkuy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e6cecbdf-316e-4795-9cf5-be8ae4481ca3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-09-20T16:47:49.9796967","errorDetails":[],"displayName":"fv-az355","machineFqdn":"fv-az355","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az355"},"vmId":"49d58db1-4f12-4f1a-9c8f-16a85b4f6fe6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx7/80NO7Kzqse/WB6yFq0u6h9UlckC/Zr59uHItPzQaivXnM6K19LDdcUgQvh8i2ql9JrvL+BoTXga9c3QUjtIgT994DHj+2kC+ogpcQ16sUnRAJ9nkml3D9YM6S18J/2nt2fVd3rkHHorQclegU/J7HdKITwAnjNnWs7XAlTTvXLoI+2MaMDsft/SLce6o2gDH5esicRM4cy9cNSF+E4l6P0pLL0aVk/FPUzCr4CqaF7kjU8dXWB/2d70UJ8bMxefcNzPYCj8RdXUIylpU1XAk2bbk9WtDpijO9NjVREfr8IoV7ZLG3DDXWJtGGzUzUGPmOSValvWWLGG5g85ruwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458vcpez_e2etest","name":"fv-az458vcpez_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cde10f67-1b87-4038-978b-b336d527eddb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30002","status":"Disconnected","lastStatusChange":"2019-08-30T21:46:05.9495073","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"24902f38-dd22-4cd4-9750-3e92de25d6f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4oNnnUuNHpOZd5m0U1BZrF2XgWSIlMPJvAfAA38l6JcAYkb245x9M0o8shaD9xtHsAuzeQ6zuBag0hf5vJ51PP0dwZzaqUN1wELwzevg0ZrUVx/sfAErPG2YLsmLF796Az+cRahrzQcn2FGwwTLaddmRjEc1PpD9JajPiu+n93OSFxNHnfWF6zfl4Mz77fg4WUzsFmIpZo02+KYt4QrLW0+qpG0C8P7WmyRnFfYym6uS+xQd94mG55Y2Z544g5LKkP9UFmnIDYeLQDA/bLkO84WzVejZ/ME0qFmHhpbjibpgiPo/40h7uXexOzzgzEGYPKEWD/HJJms7PojQXk5CoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24004","name":"0.3.1909.24004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9ae96a5-bda0-41bb-a999-90db9cf6ad7b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24004","status":"Disconnected","lastStatusChange":"2019-09-24T16:43:52.934345","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az408"},"vmId":"f11d12d5-bba1-4b3a-8946-ea50cdd9d36d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0orAkXrcd5nTEGWzuTGB5BAzGXJM0hieimrVDW9zV3GudGEUrXkJpbkpBlQid0iN/MPtVsWhA1Z9/lMss7Y8GN0OYUzok9J8Wh23miEKotBCLwUEKiUXgwxVcSZMNFFySd3IMBzKcM9GNJt4Cz/8orYS21Sb8difh+9zNHcS7id6MADVEpbKWZfH4rlY0CBxVm0lAQEtvH8o1zZ0J99WTVnYroMi08uG+g0aHQoNnGuytE8z8Jx3VYIBwIPf3WLmqsPRTytPubFQ2TQpgp1ebF0pjPJQ9K0UuepunP/EqAVmJOqQemu9tXJ8upTMOSNpkmZh+J+ak90Vx1U3VgwthwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456wnts0_e2etest","name":"fv-az456wnts0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e82ce564-f10f-497a-ac9d-8d95bf4cace5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08002","status":"Disconnected","lastStatusChange":"2019-08-08T16:53:03.6153523","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7cc31c8b-c3c7-42e3-9959-9aefd9239b86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAun6oqUu29Y+pn3ci1cdM3N89brL50qcfTWuA/CipyW3sGsaELPMHXw/XpQBQ5xHUeaqhEu/S2D43UI1U0OGB37YQJWkDJgEOiasuYNznPHQZdOtfiD4QI3Ob7o88QQFGKUw9CvuJbK3nKOHCjZw8i3D78lDwdhqOpEj/ruzHGYoua/mJmGRRcbONWodx5MmeMEi5NEIpQQ0lxLViszFWlPBO65XqD2MHhkGbAeyc2q8YqwQ4lbHJTINFR5p7Y4H21w5FbZWiXClTYePfhnwMvxJAj9jcKwukV3+RqcZKSkB3LJ4M64+i/vseMEoRd/fpnsMSJqompMiIVAhmwC8GowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461t9o35_e2etest","name":"fv-az461t9o35_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"730a59fc-2c61-4dd9-8164-617374a3fdfd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26025","status":"Disconnected","lastStatusChange":"2019-07-26T20:20:52.3537396","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"e0ae6619-eded-471b-ba09-c8ee74d6923d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv/6Igk8ZmhAlPn8/dx6nEfCk0O2HQ8Kj0las+YnvMFdEfhDAjewQynkd1Ec43y4j98qXMt1dkQRS2nMPMTItqtSnadlMcPr4WLTzoQJwBPDp1H8KCW8l0MRJcwT2O3i7iycCAZw4z17s8T8kBj/wwrsqlIZdhKk+Dy5fi6auxIKwT/x81rzbAfaRbWweuYBYhS4E0noA5D95SYv64P6Lch27JPYYKUaCb7Bk2wuH5fzkfnV4Xrtuyhr9uPqV8+qV7YR2KBwG/WTNem/7zJ9882IKrElZc6OSV+IrQpmu7O5yVRne70G0klVUBOCptYx3Yul6rp1x9d/QVRT+EeLd7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456wrd8p_e2etest","name":"fv-az456wrd8p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"acf98b8d-01c3-4085-b6dc-1499ea309a9e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"08935bc7-8ac4-4902-b107-59b111b25206","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnkYrL6L+fuX9K7+m4pLVGR1sqs04kW+LSKFN6yIPPYiLTth+PCRyL1Pi7qfuen+xidvh8zJv78rwc6taEC1foKQ8iiehBKd65OmeKj89gzEOCsKy3iEbn1i1OVyYllqqQKU7NFGAEoAD07X948Mg0mcRXh0Ekg0pXJv4Ei6P0bOiSb/eKfvZ5E3RIyfAO2IrKyk/1QpDZm/zw5SOBpDQZwkK69h1BLku6bSxoek2obUAvqF9xbCizS7vQ5WDKmUXTqipqMpj2GuPFJ7oQDSuWECcCmBWr5RVCMBl1Da1XWGnBM0CFSDS96ZaNcZpnuiNo849QvY01n1eQKQAE6JABQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456fyuot_e2etest","name":"fv-az456fyuot_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"428bcc03-6627-4897-b3f5-0cbb9e88db92","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22001","status":"Disconnected","lastStatusChange":"2019-07-22T16:30:18.487134","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3c4a57ff-31e8-462d-b91e-e90dac5941b5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1VBFVIfAZgbD74dFQ4eKwrGmNLwZOJVaOo7mEApu5NujvVhLCLIjE73JwtfYa2ouJ26Wu0ShFUdFKU1SC0+GDyhbG6f3XFPYveSTs17QJjtcHV2AH4yEMZf9RdOeGDXLZWyspr7nTsnW8xmyuTIAEGRPtQV+O6XOpZr56H7zt58932bAWtraRTFs4RRqwGt4cNARtGKgpyT2CuMC0MP72oYVTVN0JUEC5G1cY8UR3Uiq04srp3XshNl1teVcx3v22z6lR+OTbYDbEVUpb1DfpCjIMqhraxrVEsDlSWbLfJBm7jiWzckoUaWU5awj+3egGXl92aFavbXgCAeHUv1l0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461tjad1_e2etest","name":"fv-az461tjad1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c55c35b5-6a29-463c-a5f7-25f44fbc9acc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16001","status":"Disconnected","lastStatusChange":"2019-08-16T21:41:12.6774943","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"7b3f76c8-4fed-4935-b0e0-819ab3d8aaca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs8Q+U4/2k6H/deZhzt3Qxs3GM+Ho8xj3TSBFMPAA2DuhMh42pknS7tc/fCTdCgHF7ZL6M+gUJ6NTQhdK3ZSrUAseuiaXH9GU3Znegt8OgObKnZ2SQ4I5nPjPpPw4DVuW4aAx9N5eIAsvDt50SvgqlrY/zXk2ryUCz8WbByQKEL4hA1uTkWKkJGuvJlTuXDtQ5DX31muglkfdmibr6d0DF9JbdjERSYnjHD74V8C/pg6rGHZwxiKl1hX1RUve64FbeSZQOm4MUk3/9zh6N56+ht3ViyWRakN+bUIRCeFhyQ9CxJfbM7lT9LrOlSdTesuX5bIQLOWcVUMJywMglsFckwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456gepcn_e2etest","name":"fv-az456gepcn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"620256dc-ed00-4126-b36f-1215c76d1631","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25001","status":"Disconnected","lastStatusChange":"2019-07-25T00:40:37.1548949","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c0a58e7c-36d2-4344-94d1-fbf8cee12619","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzLvF7M2k5UEPFt2UdqKlarbfCnRkBDCCo+VBkzT8deav7emIre5Mb0LMBVTPog6xQlyVwT0hE4TNQydGU+9O/wl9aZ+NL7MvwB3nrojGn/T7Tn9rzY5QR0IkivFfmz6CN31kZMRW9vww9nN4SCPP5kHyJ9dJgy/HXB3zzaS5oWsB3/Gc4yoU/0NLkMCYl6A1xRvcepXkU+x95nE98/jMgY5gCUPRAmLpUu2/1JBnRoZfIyn8g8sGmvQzMXFvZbA51R7/KaCfIdE+f+JlTmMnPdrEo0uZSzQyJcbnRVnkKdgcK1pXvmX80W1nGNQvcgV+2k/TdbMopEcnNIUKPczpGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xagot_e2etest","name":"fv-az456xagot_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1e01b291-d03a-4e4a-8b24-152faf9ae97e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11004","status":"Disconnected","lastStatusChange":"2019-09-11T18:05:53.404661","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ddae5e32-459a-4488-93f4-78ff74ce92a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7x0TnrcPE/pqsfJuLwd0YqLhEMNzgAIhz4HvsKV3B/vTvQ7vFVBrro+Q6YTCa5wquWZTq1XVzKFr+tfXNoq73wSK9IfRX4uC/ZQ1iu+EvRE/BV2cNpXRzg4uqCigdZuoLLWd2GEMbIXkYADbe01VvoFTRu4XGJQBKI1QBlPmzV4Kk+kBaAfdTJUfsTsK2eozfsGQhfHAKF+pm1lyo5Pgwo4Aw41Yzoh7eF/1JKEEkRa8z9sNOipnMOzlMZxIifIob2du5lfRP/XB17xR8RX3zd6mDT6OJJLLPucLCQD+8awp2ShAB6pwjIDf9x6g4oqbR07G9jFrT7bYShOu+7A9VwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21009","name":"0.1.1908.21009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b39a7152-2695-4d0d-9ea9-608716799a8c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21009","status":"Disconnected","lastStatusChange":"2019-08-21T21:26:14.6681502","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8870c265-dd29-48bd-8e75-9caf15d6494d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsegxrlQBOIQBdflfsZ0pn6FVgVEil4Qo/WitRZu25r3PpsBaM6WgktUi8hPWMRgYiB074tVlVjxoVUG26n6R6cCMe9RGIfC8tRN7EePIG9fZYinp2gr9jHv0Q2H/kONN7QeeWauBDOAzcp6r7JYloYHVDXzkZK5NUZnOf/pLjbm2ETk/DTrO7Pwz3mDHNFwrgeaMw9NDoOgy7xgM7tVmQrjTThJ7o6aqxnC/bVbpb5hD22g9e+EiajDfPlmqPGCvLH24l8MnC+5u5JNTYnYcF1EG1GzImzoWBPe1Fl8iLBYmLO3YdFCdzmmFKLWabdW+y4LFTxh1C7TVcr1ozckVEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21012","name":"0.1.1908.21012","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1c480e7f-7298-4966-ba23-990e3b50cee3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21012","status":"Disconnected","lastStatusChange":"2019-08-21T22:56:15.2400824","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4168a54e-3965-4f50-9320-6e5ee4319de7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxEI0FlgL5F4vuiYfGPZfLA7YaUkKNd9Qv9QN9w0NEBLRDDbeWKQiRj4fZwoXqAQsmvDIxHbYwioZjf1GpPBY1JG9+biU1YrWhG3K5NWEywCqWlBwbRZJuNiNDe13I/jyCCBjMHcIIDo578bd3vs3zk/Yok+jDGS9A2fv2SY55qJvwnuOTgdn4yBKG/8CekInmzehnTCFms71OY9eHnjufx/OxGkJk9nmMQdQPjM0d76DMMC46wSvRfQdatL4yFs2tj+p4rFhRPG/4tsprNpoHyrkc2TbpRcmVepxKwGZ3Hczj4KkQIq8F80LF/YUvb4Mv+Emci7LIe6/oJ2BPtCf8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599puey1_e2etest","name":"fv-az599puey1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3a3cc105-e7d1-46c9-95a0-492976dfda6d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22022","status":"Disconnected","lastStatusChange":"2019-10-22T23:01:36.6168124","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"56eeecd4-7042-44c9-941a-8b48b892b503","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsAdFvGqgpHR9MZDEvBVA8TXCpzgVG+i+vEe/YO+cEIApf5ss+yX9uxdmvyhNMHKH1Nb4EnGvLo5CSwrDhAIkG9gUbb6GP+xHusay+i5BXS2OPUGuv2j6tteP0NEzO+oFdSrlXTbVc9h0OrvMUZ19iApUn3bTng+sosfSsXMyZtBGlqcEE6fNaFtrXZNBrtsZRRjStOfLpH8bpT6okS9G9/KREvoLVaej24aSunx05iK+BZ++ugkUbG/fLPUIRX5V1ioip2BhSFu1YxjMhZh8GDGMsl8cejlccFk0hnka4WDQ3btc392e6JUvUKnv43PSswEPbBP7FE28z9+UbZyoRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599rhzov_e2etest","name":"fv-az599rhzov_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dddbcd29-c467-4776-aba3-babae2c40f98","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22003","status":"Disconnected","lastStatusChange":"2019-10-22T03:36:28.6374799","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"fc6dcd78-e985-4774-83ed-17710d58b030","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzOi4Nu5FfrU4G9dpUqI+rlpeninGcYNf/V7LZyRonEz/iJiAP9NeMIxEzgrCPdZFtK+5X7UUoF5p8zMPGH0sTTW+fMZAxu9Wfi0dBWYRI0wVZXI8tZouN9J7/NmlyoMrPVz9U2jrSdMlC00g8yq2rprkBXLby9q9Rpv5lkqznkqWZPDEU1J9G+umuyXNchA1T7esAFf0jYSwpOLC7GeifXNd0JYNgR72snOScHeDi8m3xYBsVmjvKA+ZK3yod3Vh7XdmBLvTVLYhoCcJUKk4auEqGHOEqToXXa47eyao1PbAVlCz7yjAWlvxISTvAscvswfB/lakvfBPSqgOLN5ZCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461tl239_e2etest","name":"fv-az461tl239_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1f99de04-fb62-4148-9958-90b7beb49209","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24001","status":"Disconnected","lastStatusChange":"2019-10-24T21:50:50.9286553","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"b05d36e5-a24a-4d66-a342-d6f6ac34a5f9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxKAW7y3EXLe6dC21lpREdxFg+l5C/zPn0y5bQYq67YIKIEkWkwiCmD20XtphCGaeo20JtMjSX0mSVV7c3PDRQpTJi3xieIhdX5aQRd/Rjlx/ZUqYj7KEuyqE8a/nDphZcA1oYpr+WBZ9fpirfLz5JVgSOy+6ySFcTD1D5yaR1qFod9Nhq+VcA+RHsO16cDZe1WbYGHl1HHlXF9Eqg6HN9nLYuSa8eeqApyFGdhHQTeGySY1tioYYpur8KVaMMvJqy5GO5zMoemvyj0huui+L9KN9VoIwZiD3OkAunC56OaAVGs6CUDxDiVLUfQahll3nyVxpqWpZjq81JywkkNzflwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456gk02v_e2etest","name":"fv-az456gk02v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3bb72401-5be9-4550-ac6d-3e4f1ece330b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26010","status":"Disconnected","lastStatusChange":"2019-07-26T01:45:25.9380974","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"10d8d96b-72f9-413f-b49e-8a21ec1569cc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxqHS7FyCa2JWZUf1nendZAfHQCqjtMA41qiktL+PnlTvpL3N+MJboq3yj+bX6Vh0Yd9WDv6LJ+HoA53HTDdjmO6Zm6A2Iocpc7+fuPKkezS6fs5Nl3H+g5mI4dYYp5H2lxyoujof8hhBJ3bIVGUpknzKUU8J8azNvGC1bl0P1rXxozYLbofUmdwcz6C+14H57JSwmutjfe1w30eZ0/14V+BSIYJKsSLpNuMc3VUWxKIXRMWPD80imqkFj9nHUrOD56tglruzu/3AL+zx2/jn1gLK6XtFE5xhMSUD3thL2ywscEl5/ogHCRqTEY6B79fv+cguk0z0dByaGpnSzzF85wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xeq72_e2etest","name":"fv-az456xeq72_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"26926302-acb5-4f10-b76f-67c64c09dad0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20005","status":"Disconnected","lastStatusChange":"2019-08-20T23:11:06.7719795","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3d626e92-ab3c-4f4b-a671-ca89c2798c82","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz0MyDCl3EMsT7Eua55Xu+To8895+NX6TaeSnfZexqLe/0/NOizSnJpVsRGW/QcuZgY+KLs/tXvqDXIv1ebdD1kQjAtAGiGKJph3NXzoIr49PYZD93goVaX/8hYpXb0/c4gKFZs6JlfkTKiBzGtzUWZMi8YVJgkqXU9i2VcK97X1WOB4qOgzeg7NP4WoWFon3o7Xtet/1sjYd7TIPt82Co1/quT6gJ9Qk09iMcFaCRd4JkVnGGakgmx6pH7lWNgJHtHL9fQ0huBtGP4OFC216uh9QaKyOkZCUMmxWa9Yawkjm5ithrJJvy79H1c0gTO3MmS8GVMkPgqACYopgcuhwXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599xofzt_e2etest","name":"fv-az599xofzt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5bdbbdd4-151d-40dd-b64b-278aec69d46b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03002","status":"Disconnected","lastStatusChange":"2019-10-03T22:19:44.8734634","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az599"},"vmId":"2298acc6-3b56-43a8-9cc9-647117aaeb49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5UZZADSG13WwgLgkkNlDn+YRbVfa7wCOFqj5c6df1xvTiSxm80izJnWVjF7wCaQkcfCgfEOfW4aVj4290HkNQ5u502JJtVLjO4kxq3CzXbbu0ZeiUOPvzKmxBJ+RV13UtlMaXlv4w9e36KT1505hedq2dIsTZXbTPVrgFQt4getgA9GYEOwN/AGP8m1fEP0xHZusiE3RGC95C4KFYKESHnOoohuDESKYLgri8XvMnF3tB4JjoWRCD4XE8E+HNbWGDMrXBMUcOW8GbD7AAjVsuRljBixSM2cbgphdMpnjanapQvqgMkRujE7x6RDvG89yZBzSj+tVVMeUaDvF6SGg7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458w6uks_e2etest","name":"fv-az458w6uks_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"26312f7a-2cb2-40e8-9610-4d027ee04523","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20007","status":"Disconnected","lastStatusChange":"2019-08-20T23:56:07.3786148","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"46ca370e-60c2-4c05-a607-d04bcbcdcf95","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwuBZAxf+vEpFLKfKO5xhZMoLJKnOncIVpb0wXswx87yuf7a237vnx7R8b/UjSR1mYvYmSL/ozWLhmLdMQ09Mn3g6xfMr9WWknOAH0pguFjixa5JvZ2NxtVYZf4AcDcaK9KA8pO+10s4l8Fe6EpQ1MrHfucf0lAZk2jhByci8aBCQE+hANLmEvn4anvqO2isxkCy6EEWYcc/1EyomV7n7Q8FsvYjMoUoMt0oYRZDdagPGlBj8bmEiQmrAHpms2MZOBgxaSBL+qTafltc8MCfvoAET0h1ViXjeBcsgszfIC1cEk+8Yo/y0+NcVR9i+xc5VbfNgWn7KyjBOPVInLIGSUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az599zha4e_e2etest","name":"fv-az599zha4e_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"babff77d-d0b5-49f2-8b63-6c03f7b91b3d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17015","status":"Disconnected","lastStatusChange":"2019-10-17T23:08:23.2333841","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"bb6cb801-164c-422c-8667-b9c105971f2c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwgrN1xbRL+YoQcCs7ZOq45z0hYr/UN2uwWKMqZEINpkPnr2pEnK1bQ9npZzjmR+lS/zyEHNn7+S7Hk1k2XA5zbBEp/2v8OLp1+e/8g4Ebix0M3lDUqHF/ESxfBbzpGwpYAPeelrVGumw0bFieTX9r1FU1Mn6IdFpMPQTlJR2lka51I4CBjLUpyoc++fmyGKGlHssZ1Td9qVoUkoDfVWqcdmL/jCVGXYst/qJ9E76d2PN2PsJkySp0W4opvX9FL0IM4TtZ9CHM+X2dxrOYG6CPeq7y4S/4i0NUGfD34u+Xb0YzpTs3TF80qZZMNDoAcxAkvOcukxnaXv1d8HO3rESGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458wic2b_e2etest","name":"fv-az458wic2b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"70e04fca-cee1-4cd1-9f05-0c434e95eb58","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19001","status":"Disconnected","lastStatusChange":"2019-09-19T19:17:42.3767166","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"39573f28-a0d5-48e8-91f7-7dc6e619c70d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw4IpQWrYvJ3hGHqu9B66JlBa+660Q0zAwltSvYrU5mn5uQOpQbYGlm/d8O6weUdldRmHdzVUtqWeUrMwat4UeLCZxQYVyy5C2n1TSGElQ8rbkmy736Kmgx+Z8PvqoVvFkBzNqn4Y+glqWHiWBBVyKO/+2vlM5CZjiW0mCOEEPJvJJ17tXqsCr1Iit3FhLklrsmRyLdy3RAu57HWa5O8JISBAW4kaBtNWLUl8vYJ7vHAKHHMLiCabWQ0e/PJ3kD62XC1iOR0XPReKPyJcmNXPDnzIE3Fee2z8h6bn+oVjrzfxwVAwm7hk1wxxA3lAEj295dvjwqvsu4B3TLfM/F0UcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6006fx72_e2etest","name":"fv-az6006fx72_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"54e0c097-881d-4c4a-af4d-ad6d0eeba0db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22005","status":"Disconnected","lastStatusChange":"2019-10-22T17:26:34.0512589","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"7a6b744c-376e-4479-8ac4-56f8f664d6ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqQIQ9pRCzc4qSN6BHkJ0bEpWQAFSE/bRIjRMmaOkJY1DsAZyEPn+gNK525b6LOo424V/QbSD5EZnx+GpTRslNr+6T3DDQqJ1vIy35BpKPhdXiGkRAIE6SsVcANuXBji8vBlsbDwusal07UPzGlR8nYT1Pldu1dFrRKLDgj2HgFaO5OC1ecfsLY4MgZpETWNtBJE7hcd/A/DAv+eiXK2NLTWHWqTB0KNph17fNohS/ZyAAu2A+rMPKspZ00kR9j26lVSbgdt6Q4Fteou3VLVKFsSxDeKJCIveR5i/19d3NaqMvzb0hxGy/8t9/4D0SY4VJDKKVrhGr3PGTx7YfZ2TqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458wtlbj_e2etest","name":"fv-az458wtlbj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fa86dc94-9a46-48a5-a8e2-7c69ab0059b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25011","status":"Disconnected","lastStatusChange":"2019-07-25T20:30:46.0622518","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"e2dde80a-87dc-4c31-a252-7ab78f5e08f3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz2veBFDj9d11crJlAgLHrw4ASCfGL01n6LjYWOuuBrDbyz5KEvlhK4ETt4TUbTiVu3uVsXr9bU/rvasR3lktbGYLxICB8/HSi46iyBuzNcSe8cZOosEOcWEwK+ZJFFi3jIQpJdu5UHFY+2NtXNHnWIhY0m+bndfvuSp1VlFBKFoiqSWMpQiTdAl2MApn8B5jvivMCafHZhsqhPdHOD+Rn4bvNFKR57hTNFrAHqYVUEfbutSDBJ/2HZADUOqv82+l9cIBqyEGiho0Ber/XduxtgY92IZePw1E5NtK78snFy+QVuMlW88EM1QEr3Q2W+Fu9LTU/bjRzqJS+ZiGGmAhKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461tl5m8_e2etest","name":"fv-az461tl5m8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5ff85d26-5893-43b0-8db2-6bda222c31b5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"9ea06365-eabf-4f21-b836-7baaa90f952b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvLaLd8Fp5Aw31O2eXFbX68Ixd4oIkuAxAs2PSpfM+ZQptdcdFo1Uw1hPWeeZrLPDTEXYLUiHSEYo21GckGKDE9Om3SLd9w+5udsZffFrwsVJP06KazrmKrcbCtTQsah/LiFiiF98dJwHBf3oW1xj9xUNUt/q2OKcDeg318J1UFMqg/cCxhkc52y1OMWK2szix7xbazxy2vmA+9umQVpRXrQzD/gcI5o3Z34iEzFGM9/AZP5AudF1DV6u7HvZMCQg9Zx3auO5jXRot64MV37a9q+GsFliDN4ufpSLEPuXEdfGQ41bkErzCKjFGjdvD7/8XCOlVMj6/NKuONwtEuUJOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458xow8i_e2etest","name":"fv-az458xow8i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"94798fe7-9609-48cc-b721-567cc1e49621","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11005","status":"Disconnected","lastStatusChange":"2019-09-11T18:30:53.7764404","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"d6a144f9-48ff-4cfd-a9f8-cf14d5857ab1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApfYu7sIUAS49iOkxh9fFZ5R/XTL+NIT84ZYTNYfKLldFNFCr9MVJDIEWLbQu4CnNu0W5JX94YVLZ8RP3P8TzI0IIWbT0b3Mal/Q6gc1mB4p9anTkHGq8jUbbIXmBxMk8o4NBR2jigwIbG6p3AWL59xlNZoFWGa1WdMH93A98J45h+yqWtFfyBhDey6dvIGjU5tw3hna1SL2bw2+LODx7E2ZOcbrpakXzfbuwXz0YRJRYHRYBeEbsyXvpYvJF5+8WJuGCsJ/pN8/yooRoGFRuZ77zKmCv56oyw79T+ntQ10ofufWbTBHgqKDjIjedMtpTm0udC2OiBdoDDMtZuvx4+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xh6i4_e2etest","name":"fv-az456xh6i4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"88984458-89f7-4c1c-8e23-eda305466723","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-09-20T16:32:49.7486435","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9685841f-ade0-4098-81ed-2ca9fd3f7a2f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzNQtKx0cEt5gZrGOsIwfromCOYNg4s0JFxfbdVARFzJhpAuw/K2pPZwe3SriB0tDiz4lkedAYS2yJGJ/JgWgEkU9NomeQaI5mJeyI6nU6Bbpuah0auv+zyzeAEX8Rlk4N/CeeI6NoGxQIsKox0Nn5nGr4kRzhQqDpyNmZryejl9FoOAVb0p5s2JYEfsbZYFxW18ugtGqskXPjT1jQlYKzZJaQV/eOvsyW3XROQ4QU3ja52uHLmZrpITyJiuU20620GhPitXnBCOYnp1nTp78YSyeJaEj3R7Yq+ag0bCafZ+OcFv5s9w0i5FQluc0kKTUhnpL64qeeAuI1uJbq8XS7QIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEshAAkSqVh4u6TRtwiVE6iMhEzJiuSyQS1t1v30N6UPRCB%2fbZ2yPz4dU8Vv%2fLKqikxYfkgfxNomJl0AgLaRT3zfdQlXLtEpzXvKqn6Tv55ZPsrpUu%2fO%2by1rR9KKuOnU%2f44ZpWJlynNupYszNTLFMw1Y4OdqZlR30w15Tm7a%2biANvO%2fVFZG3d1cd%2b8vi2b8XBqcvm3HPslJ1ExbvfaSOUCzKx%2bAPRpraiWYpGlKblF8GvP390hWi2dcGrB3lGZZPKhPSDi1bWYfgTGjEX8b8b5Gt4Sfm7bv5ZOwzun6xj0pWJHm2RNJ0i2kbOCDUNHRbv0MEyOvM2iOazmT5Hzw8GEuRLJl5PV9h4mhHYURjIxMeWRfKI4HhDCJBRBsIDJ6B0zNtJgg0HmuHjiAh88545dol7QXfug35n3OP6%2fYb%2bNvJtK85hCWAA2gDgCpCAA0sDlld%2feFWMcwEwj%2b7%2b0hUsQwqszlmYM4z6TxEUPTDAweKnHdAINPA39VrQHGq8dxlqeiFlUQghC508ph6sHCiAhQxyb%2bXUW4TOMLn1fU4bAx52QINvQCV8Nr7TJSEWwI5jeTghDr0QoHA4uK8wbp%2f8QqnatMr5l3CjkqX4ruPIKVPc6Ze0Pm6OyKY7nJkrfX7%2bBw%3d%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '116485' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:48 GMT + - Tue, 15 Sep 2020 00:34:49 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - b89b8f59-96ff-485f-b089-ccfa058bed0f status: code: 200 message: OK @@ -1522,44 +2716,49 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEshAAkSqVh4u6TRtwiVE6iMhEzJiuSyQS1t1v30N6UPRCB%2FbZ2yPz4dU8Vv%2FLKqikxYfkgfxNomJl0AgLaRT3zfdQlXLtEpzXvKqn6Tv55ZPsrpUu%2FO%2By1rR9KKuOnU%2F44ZpWJlynNupYszNTLFMw1Y4OdqZlR30w15Tm7a%2BiANvO%2FVFZG3d1cd%2B8vi2b8XBqcvm3HPslJ1ExbvfaSOUCzKx%2BAPRpraiWYpGlKblF8GvP390hWi2dcGrB3lGZZPKhPSDi1bWYfgTGjEX8b8b5Gt4Sfm7bv5ZOwzun6xj0pWJHm2RNJ0i2kbOCDUNHRbv0MEyOvM2iOazmT5Hzw8GEuRLJl5PV9h4mhHYURjIxMeWRfKI4HhDCJBRBsIDJ6B0zNtJgg0HmuHjiAh88545dol7QXfug35n3OP6%2FYb%2BNvJtK85hCWAA2gDgCpCAA0sDlld%2FeFWMcwEwj%2B7%2B0hUsQwqszlmYM4z6TxEUPTDAweKnHdAINPA39VrQHGq8dxlqeiFlUQghC508ph6sHCiAhQxyb%2BXUW4TOMLn1fU4bAx52QINvQCV8Nr7TJSEWwI5jeTghDr0QoHA4uK8wbp%2F8QqnatMr5l3CjkqX4ruPIKVPc6Ze0Pm6OyKY7nJkrfX7%2BBw%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458y3p7i_e2etest","name":"fv-az458y3p7i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9efaead5-9475-49c7-b898-0ed410251213","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22004","status":"Disconnected","lastStatusChange":"2019-08-22T22:51:23.3474865","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"e8e2321c-1e5b-44f4-b628-200eb718c34f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJ3zelycHdi0pUTb+Q6hNkD6cSV0n/A6zAC5WgCBFguLfH4n/Rf7RYzNDWxpPixeg+C1SicBwvBTfLpTtBrxdtQsSSl75nRrSwacYn0Q5Y2BcASZd62EeWYk9m7StMcCOVXPJkSlnQNibxGvK6XfOLiRN5IvDzueoyhPLG1jFBJ15BNZP9dYChdGfLLeOy319r9a4/5ai5m1B3Hs07CpVicuQXfXFdWPuwOf8mO4429HVAjC/3oiZrWemou9ox8nInMAGJFr0U2HSxXJr+sz7qg7nqr4MP7SCkwrW23Tk9/EAM8Zu8kfLh1lFH4FQpoASJGQrMPNf4YnWZUC31mOcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6009fvj4_e2etest","name":"fv-az6009fvj4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"839032e3-5741-4127-b6c4-8c7d735dca20","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23004","status":"Disconnected","lastStatusChange":"2019-10-24T00:12:34.8696807","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"4fcc38af-3156-49e9-bf32-77ea93ed56f0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzvWYPr7DZiMnv6R6EI7t0V1LNVfh/dvXTdJ8ebGCZzRSJHdinbqiuCoE2hdnxBRVKL/9TxTB7mldJDWeZBZ9w+YJG7E46IhN2ZJ5r3fcVLB+BFXYGmGNtSkrpWpcFbzga3RMV+LYi20Wb8O7udq18wIQinf3kxY8ddEBLWXvgV9FfEV+Oy9RCiR4C9JHcFmdnBji+nsEygrR41d5wiiJpW5aOG6KtB53j4V4Oue7HBuYGVHteStUJa6pGWWHRirs8bIDLUbmVwz3eLiS5XNHt6B1Fr4T1fJHSyTdY/BL6oDR4imqqnu9bOIjxdV3VdPtqNWBtf+SJrmZgHTLTheH4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458y69po_e2etest","name":"fv-az458y69po_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7611ae82-63a8-476d-a1b8-83eb42d19f3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16015","status":"Disconnected","lastStatusChange":"2019-09-16T23:15:04.5127288","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"4ab95a63-8a10-49a8-8d09-d8361bc8c2a3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsZroUNTwP4CcSg80exZM+FjQeQm180HgliaZAFSgIb6qDoIGNmtguqjY1W6aO8olJsktxJBaWHb1/4X+Evz564pMPFgrMiiShNr9GWWWgjg8psLPEYTy5oaiYi+J82HbPbcAJLZnYBEd3F02Cr6WGhprxK7CyuqJBvXhdi3CDcL4tLznhGiftANKKyuQexquflISv8pbqAt5Wt29adrL0SAbwjIu4H9GZ6AVV4opXi/IBU7yi23RDTfnmSCSAvHVeIz8u6B+bqspCJcF3IMGMXOB1erQeMSHj1p8WAHkY42RiujfmmObQ/uQo9OgJ8QTEHswlFV/hHmmypR60FfmRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xlwpi_e2etest","name":"fv-az456xlwpi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ca511e3d-cd27-4c53-a649-3911051447da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25006","status":"Disconnected","lastStatusChange":"2019-07-25T18:10:43.3106198","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b460b9b1-092d-4c61-b598-dca3ca31983c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAubHDz5gBdgYINZinI6ilxwOvVCTWSwR1C0n0M50KzKNZxLlw+HoKLx/c8J5ccTFPbnoP4BYIOUR3GYnL2UprtWgcsL5RqSPSjFwCCaVSxRNwnlJiEiscl5a4RUJNjjieObh0nKzJUFMH33d3h+87dTO6pvFqCt5yvKyLxsI+conXxfGXCu6rGTFHHZDgmmiFMGOo+kLOTL3JE1KXlZOdGTLxLPM9EJr+nEuQ6OQx31O18ywv99wJE0xKyUtLWNwEMedup5fYIpBIzr4fvTlKDw2xZxUtyE9vyLtky1FyNQ8WUbZI1Bi2Vl0sPndKa/yOH2DKxSGCcQdhJgbD45VHwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24005","name":"0.3.1909.24005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c2200acc-5f59-4cb8-8465-583b49806951","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24005","status":"Disconnected","lastStatusChange":"2019-09-24T17:18:53.2942169","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"45f5a068-9c50-48f8-9369-575f7288c21a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvuo7ZtU3c+J+5j36PN3f3TPSyp4ghyCPGpGD3/GPg1FXCwuoMjbIgKyBC+0KRtMcbLjc0jfcjAajOROAbl80Ldoa+f9KLdTO/KBziIyMrXeQBbY0hcobginmHSzMfifG5sAlSKkl6d7kvV1/PsXTzBLypGz4c9rVG75Rv2NCm7fMZdfIg2o2j8vYubwT8n7OGqT4iA6ENL724xeRptQb6HIYf6HfFIKocg4g8DGn96IHbaC3N93mWd+z9clWBzZdpNSaNTs2ORnlGdNWBY+jePg1Xp5ZQQq8gD0HlvWKgKsTybycLTUR8MTmdgrSUkA9Vqxt4vNm+drpZI4DdbOffwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xmo5y_e2etest","name":"fv-az456xmo5y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1797d0cb-a6c1-451a-9b9c-174e2f9b1c0c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.05002","status":"Disconnected","lastStatusChange":"2019-08-05T21:41:16.1826147","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"088dc6bc-69a1-47ff-abed-7bc1731bafc6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtz1TJT7sf3PEkTeKvuuY4GE3mwec20tnlqrOY/coqseDfACx/LdRJ9eM09GCndO8ebIQk/ryoCo3OO+Of4xqDVegerTtjgvo4rJYmvs8G6fhQOYcfknH/zJDIA6puB6dqiP2N35NCS4if9FXooRxEeYBcIoyonaNahgBO4XmElN5y1nvNnatAOgPHDdgxze8NwCdo5/L7ihr+a9tZj4ACHvHWn2BEQPU4I7t8G0jrvd2qPeb1EpggfQdubUaPCtlQ/nIwUg/FsiptHlIztR4EdP9s7zVnV1+1YwXU85IsXdWRsGEsyuciCSj4t2ZNkG4U5XDHCayiRO82+YncVKatQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24006","name":"0.3.1909.24006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"465712b9-e320-4327-9dc0-598708b81418","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24006","status":"Disconnected","lastStatusChange":"2019-09-24T17:28:53.5143364","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"993b24db-4533-42d0-bce0-1ba0a823321e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1NjlWnqBoIPSIh9NYmF5ve2hThu56QZ5h3EeMG5yOZ44QrcSg9RatfTUyNZdTZtNDl9nT/Ddn+D4T/Z/GgiasaaN9kIktbj33+UJLBEyxLxjXXILeAOoAjvGPas6HaXX5oyEIPISc996FaP6NgxZBsbY4se77F943gFoJ5EyCDr3mh+jnxV3C/vs0/j1WwYnlfu6QPwvdACD4PGjaCSoaTTESefLWlEIMSWMu+h/o2HK5RjAoJwjvmlFkQa4mG9af0v7tRmUvCEA3JFv3xDgUFdxWclMcsHTp+JizsZpOyz1L87cK28V36s5vIzQaGr0QhHAxLoDJ6OFUEAHfUe08QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600b723z_e2etest","name":"fv-az600b723z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"028ae6a5-994f-4ad1-bd3e-984f00e85115","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21007","status":"Disconnected","lastStatusChange":"2019-10-21T23:16:26.5737799","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"604b5eb3-565b-4b4e-a08e-404b7f1e1bd6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0h5oDZnarJ72OA3khZ8AxgAViWLmx5nWshNVGAp9X/J1/PSFUIAq8Tml8NBQAJckP+wpUhuFJFCq7UjZ54xsUMrd7C+h3NxrWRpTgJes7M+Rlp9jbbSydUuYJ9AGt1vwTNsnitSU9tIE9w189cMU1bVN9hZguHUXCa61xdOX4TUWaBkbeOaFX9BLBQOWVCiGFoGCgUCm7T+q4mHZm26O9S0jpCIuBQsSyw2KsBgQguYqpK5R6xIG0m+vez6Ke3Y0VuWQ/GGogHAgNBlxVFjRD2u+hwoZ/u2WkbL4lY34IpASv2jiJh7jtNeY4BEc7vNVkYabPo5eghVgwPNKoKQDDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600bvg40_e2etest","name":"fv-az600bvg40_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9bd3834-1f1a-46b2-b9f5-4457ac5dfb89","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17002","status":"Disconnected","lastStatusChange":"2019-10-17T15:58:18.0776712","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"dea4a526-24e1-48b3-8e9d-6a34ab23ac77","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzsAICGCHoU3EyYPKKYcDkBeh8MACcUbZ+OF314NFAxukmeDBwU9hl6fvEuQUQLYk9NwRLNygxBGPPW8RyEiu0hQS0Z/XGm2B12C6V3jQl96wv5ofgviCloorO0A05Tb8HhtlwAc4VQo+SHPc3hdNQaPqEv1bOvdk8xW43A6G9nUnKkaUjE+l51cM3wkpu91WNurn7xXBQ65rPikvnfUS7leWmEhGC1jbKbjjZnNmkgKubHtz+yVIC3Hzp1UA3mUZte+zGBy/DBfLDstO3ULDzkqGC8asU8rTVsoZLxcVXq9eoXeQvcBLcZZeeROYl60RUBMSvkcFTJ/uXx+jN+7WyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456gsvue_e2etest","name":"fv-az456gsvue_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"165a6b4b-e86e-42ed-8970-8bbbfb69257a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21009","status":"Disconnected","lastStatusChange":"2019-08-21T21:26:14.6681502","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bda54523-455d-4e41-a74e-7f659338c967","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA79wB6bsJUQF9cnpDeD7hQK6XEx8c8yKbBxysrvplxN0/VSiMVGEGKRL5IMMAiitPDxfTjyMLq3dBSD8E8jhiRtHzKg366rnG8Jt9f5APv5X9x6+75/27p6BOa5uT+YuOdy0vP6+0tWr1OWCzFtLn4i+hwxV3u6g26bH6Zxyqr8O/5pKx+qzFlvJWdtaTp5bdnuIiBk14A5EzLyUiL/HoPkRN43bbpJiPq65uSnhUjxXg+z+THsghqsamy/2BLllz3Z8bZPtsdO/+4G7YOdsV0xEC9v9uGYoJeJcsdnNBAsd3ktU7j/+q4wfR735BuNygsHnaWMr+36lxdUyx7nXpdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21013","name":"0.1.1908.21013","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"54ca1529-ed52-4c96-8ae1-338db1d84ec3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8c59bced-2e9f-47d5-9865-9ae519052a45","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvFdWzINIAsbS+LXQ/SquVExxgtmW6N+lycltYA/MTWxRxWKNzQIgQIwU4IBsBViZKjFT+RcyHn25Eyk2TgG28eVnvqYDgmUN9e4i7qHdnPpBu2L7EgUD9pfvcKw56TRA1Y8ZGcdDYf/H/4AC4QDH0ms1CL9S2QztloIyszUAb8swgxHPfNwvbFJQa4AcS2pL87V6BPO7VvIH2w2NOtBGZ/i0qATBYyx3bbkl0dD4k1TniuQpdcDku39Vlt1W323R/GEQTAFERMmjPyeRUK1YOCljJcvKu508nhxylWHO/CkIySylF2fmDZv/NhFv6BnRS5tnI61SwkT/zp08qJm3oQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458zg4ry_e2etest","name":"fv-az458zg4ry_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c231c25a-7d4e-4a17-8ec0-e353744f0bbb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22003","status":"Disconnected","lastStatusChange":"2019-08-22T20:31:22.6691323","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"90aad14f-4118-46d9-be4a-33fc93f94bc5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvk6wgzk8ax1aL4Ex5Vm6Fap4xcJi470BJPOn6arEuSw1fGoW0Z6N4kRzr96QFXsYl4Y0RSRDwpjFtNqtBZ9egTOxy9q4znBog3sgrmuvzqOSC869bAZlLXGMZCaCc0N4QqsUlMKmfRvTPgfFio5rCshFsvqXNnFAdu3prXQI+WC6St56uYg8ILRwAX6Qd+1fhbXCA9l86eeqqjH8vnaQj5i0uxiinO0yPeyrL++GpHcR4E79DA3xOoQ60/eFOPd8ztV/HU8RZ8BYc8XjaYTVqC63BlLOP39ARF28Xo2G1r3/TOcHvNP4fNTsLlZMoKKEMvKsmeqmRPJx0KSzJeWbsQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456xv6k2_e2etest","name":"fv-az456xv6k2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"89cebf25-c512-4428-8f4c-80a1d899b841","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09003","status":"Disconnected","lastStatusChange":"2019-10-09T18:25:32.1981456","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a64a193e-0fb8-44f0-9349-e03dfd65b27e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Jq0R+Jr9nWg5CLJ18o2Q+Z2xjJObSU0lwHE0DtLqmokG8h44KNOhIU/sG46kQDYvgmdiOpU9KflhU2/8DL0wXTZ43bMp021ZXdO8AgywMIFpPCk7iLeeh5dItRnq6PDX3rQlbcYoydw3dYAPizj42TOG0veZQ8B/67Ehnhv42cHY8AEGDQoqf8fIrCfrmGqwoJhyDB+ftkr4ErqPCcKWdScNjF/rZz5ZsSkdeNZFFw5SkTmD4vGHsTOGT/2JXPD5cnFA8oa0L098CPfXu5xlHXA5+I+OGWiy92tdkWIieZFH8QaPvUgwBoyaYWrcbRof7X8yhfXrSS9Q3aP0sFqPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456gy69b_e2etest","name":"fv-az456gy69b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7c071b43-7eed-488a-a87e-32e5b7839b55","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26022","status":"Disconnected","lastStatusChange":"2019-07-26T20:20:52.3537396","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"407d177e-f6a7-403c-9477-2415b5de049c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxdB41iabe+XL0Q3/wLXcQp0jIZzbJ2v9039PIr+i0L87i65603kYLX9DL/Cu58ewRKBBTABndquVF2DJHmdDxfAJAhPnRuUBl3dKK7vm21QOq8q8/t9QYI1LXywHXUm7BJVlFd79yAGf7TqVz8P9KU7nIiR3YfWFJp1XxmGtswOd2YEZDAD1C1Vskt5P/urqPpKvrAVufghrDiCSEaleBFbieF5fHNs45kYwOrbeOPIdse9JVsmtOhgp484E8V5cDym9wodls9eHnuwlf1CqVagtjxKxkusZd0UEwQNahTpMl6G9kZDXu23sO5ttCPTftVd+y8utbUFFVl0hznn7wQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.24007","name":"0.3.1909.24007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f658570a-ed84-4de3-932c-ebd268f6e989","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24007","status":"Disconnected","lastStatusChange":"2019-09-24T21:08:54.893841","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d0fd9207-b335-4bd3-8f9d-13fc35ce28ae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo5Wr3m5P9M5MKSoMa557cj2HUSVewjibsbOoPA0chXBHYtcnazfp0y2xnO9XgrE1nAz3FCpm1xaWy+rIDZIThitoDrrjZp+5SbNK82m4mFezcxK0qJA4Z2VRxnyUccQF/MyQ4YEGeW+F+uDlgb/Ej0MHxkrI1W5lJMzdluYptstTATVdex/6yZ8Zhwz4eucwkWNbjaQvyqzNzHDCGFTbaTFfy4oZ9qHVeNHDEa+23N5TOTzfWotg0uvpe4EjAF1wMlckASmsqBJb6U1STZI/AMuClENZA2dd1ZSObqsCFApINv1UFQHb3q+F8T3PjYG7n8tDdwONwPw0w4WyDGz9FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600drpl0_e2etest","name":"fv-az600drpl0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9f85c387-3238-4398-831d-5486d0a8ae82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24001","status":"Disconnected","lastStatusChange":"2019-10-24T21:35:50.7142982","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"f84eeb7a-3e9c-47d1-9ac7-27058fd7ca2e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9GZqzVuDYf/N/39oKgGoyFgmjxvjy5uIVrLjcLlqLDLaqahc6f/DXFLmCSouH5wP+LIOposmEBPVYtmizPIpZKxJpppPnxwiRw4REqEXTIR+YoTersVvpnrndRCore04HAygtMe3IT7mni9PaodGeDZqBoqrT6Y5fhe27Q3G/7qYXc+zC5cUjaYRR0gVvkryt6qETVJpTQD5MUWE6afZGKgeYjPyY0XLN/HRl89ka7+/YiUP7NW6UQNLhx0B9eitR5X7uGZ8DEXwlVegtsb97wXEv4QO2ozjAz6xixc2JiA7r8wSUWgQ+OHwRQauX2eppljxkYxVH62v0kQ7Z4G2bQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456y3b86_e2etest","name":"fv-az456y3b86_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0f08be49-c27f-4f7a-ba71-4c59f3c7df49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03001","status":"Disconnected","lastStatusChange":"2019-09-03T16:59:23.4245954","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ae502504-0321-4842-99d3-2180a7e26eb8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzOe2LlmYovKeO+cCtML9ArRTeRAHcexoeK/SwaEwW09dQvi9N+abPUbOiobnYwm2ztIqgWqnJOnzVvK/r/gq4rD+PWcz/zWhAQexFBO5fCMZMqiEIN9JAvMfnPatizuyiEZ67bKj/n9iMYC9QQ1RbUv43VcJgK7quKTCLJ5kjqE6+f89qSS+yHnflhL/k/qKabgifxEaZIUcjidgeWiP8uGfyVmWj6Z5+ZCO5kFkcvkEt5DXm+iRpQlNs0GQBzgFVzjJ1ve+xgcYraPL9GTMW4x4C3BR/EiMMjtsw5jv1Bvs+n3Ivaqofo00lfbQSCObJwcMFzxkuRXAXigQ5DpFCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21014","name":"0.1.1908.21014","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8e53e2d9-2e58-407b-a47c-83f44ac63503","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21014","status":"Disconnected","lastStatusChange":"2019-08-22T00:01:15.7848588","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c00e8e4f-9a40-41dc-a577-47d8e3ea1977","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqBH7zzyurRvKhLNONBPCC3Saqu4qj8tQdOmrymsSVLZJqGRTBz68jKM4YiJcki5Yd6fed69YEktBqsFbN/sWBo2RMSoayJTe6PfC+BhefTAK1jPoBNy8pnT/BTxjylA0dMfaODV3zqjyQXJgtGQ8GpD0KsMy5m7/u19UsVE8z/s6n1SncqfMol9w3c04jiPDTJv4QHsjoOG16Z2/r7v0EEkq9tO/ODTp6XvhMoc9maYIQbOHZ5r0usm2FT7Rq9eT40GKJyoyEdUQzYlkhlgVI4rP2EiTWsR/C0nIvPknUUhrtL8l68EvpByDWxnfBYceHfIKgcWoczYSdVgwFa22rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456yfmrg_e2etest","name":"fv-az456yfmrg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3da7e4b-6b88-4da5-baa6-9665b4e6a245","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01001","status":"Disconnected","lastStatusChange":"2019-10-01T17:51:20.1567878","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4c69e1ca-bdc2-4ca3-aa6a-817d70d390ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnMdXPEP77C2NEglel7f2jNwvNuoTx7FL5rG+hRzCasAJqfMm4AX8474yL8SQE6+h1OTHjmT/yFw42PYgNVCWIWB3kiVg0QKkQRydS8eUVYKOx3eS5A4mHws5edk1JNI8HqIc1jJBVql5Qdp769z3vg+0p0kzTu3mu25qVaph0nGJ+Ew1bCNOQJNgk52fNmJUoT/22TGsbgs0/TTwt32rWAjM7u2AwEN+4jh5l+wqjoAofzuf6zChrgBrSmgfMInkskAQxfoleUt7KVgDcb6y+o98hj0TP3BlmDY7pbWHi3CU2V6mxfZXWbpAH4AJH9b2vXr4/Elt9ZFmtpTZNFBKWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600ewrns_e2etest","name":"fv-az600ewrns_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a8f92aab-9345-4973-8273-d28e3749c15c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23002","status":"Disconnected","lastStatusChange":"2019-10-23T17:06:31.2049045","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"81a4b175-a34f-45b3-b53f-15d3f2afee49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5HeH2TZiBI8lZqJOFWoVx8I3nYZV0xPE2bSA7/U3Uo0uqFVNRlaQkmedJda8St4lN4uHC4DFWNQtIezyCX2kkWMxyAPwwP4M/voGTGB85c97xooQk2srSbwU4CCMDKaAv+OIdTIV8qULNm9tX2I+8dMUbnr3AFR1PwInTV4pnbFeXX8WbzJzYllxf7U2dGN9GaBUm9AbCvOVFyhQ41dGTci3jqzcguxZJzMi1tBNjgOnImaVwscTToujpmrZjDkJhqduicoEdFo6qKIziAmfTMihCklCqIboBM1hTjH0vun3IN3oVNwiCG2FisBD4vnGwnu3PpYzyvvz74LGEGwT0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456gzm40_e2etest","name":"fv-az456gzm40_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8fe0913c-6f78-4527-930c-31482a5b2eef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09007","status":"Disconnected","lastStatusChange":"2019-09-09T23:57:48.354005","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2c4c5c75-a55c-435b-884f-61fc8fbfb8fe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr7FaidXGaw6+TsbPI/rCS4oS0cvmCU5oJ5XIhgtl4/B8WyWE8+MzmCyY5nn/Gzo/wAOdlivK53AFGA6y/AgHXCV6H06QIdPmYGVtUi5RvpM1UTwHrC5Cg2ZjHNCpxUqahHZ3gbXrFlVE8LwETV1VQVfgZ60mvxjIE5oSVGQmrMshLeJzW2kP8yziwCVmXXVILiW9ovBqbpke1bJYj3K71uoFeI/HpaS6OKY1hw+hOiCb8KYv4ktS4VhXHnrWlwC7VQF5vGgayP662kz67Y1zgO9+1FBRIMtyNfkZB10rEvn2c7GN1EKIicaJMD6SDKxFg2gTUY5AJKoxB4NfdM9McQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.21015","name":"0.1.1908.21015","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c7bbbc94-7658-4611-8205-5ff7dfffb82f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21015","status":"Disconnected","lastStatusChange":"2019-08-22T00:11:15.9884485","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d276104b-49fe-4c22-8a92-9be475f25ad9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoYt5PhMJreqNYLOqW/K/v8xYc3W3MdjQLb4nn0l5sqVRL/0Asklt9isD8VqZ5VoCaACwpbtzTKX+jSRWqm2yXhw3V3vGykw8PNwHf3EBJYW88KHBJ+DuCqxoGhT8cJiva0qe1fHx3W1yjYtJ0NtiwndF0C9zOgA/itlpIgB8v4h/tJK/p/SqKKvtBVWuuiu9NS5tLp4IkDIKpyTVmGrsUk4mO41M8/+bc0LAh6cx1HZu/7sBJxQjy05TsStWo4wlODuQOBNWjB8Js+AH7HF7C7awg8JNbMF9T/rUITaOhmnS73ZUkwbkArZawuZeGKZhHFc8O88i7ANuZ/6Sj8AgRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461ug80d_e2etest","name":"fv-az461ug80d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28c9c842-a361-48a9-bf3a-5582c46756c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01005","status":"Disconnected","lastStatusChange":"2019-08-01T22:55:25.9531609","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"606d2428-6b95-4558-9330-20226d7264d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv4Z8YON7fdGvaTiKlI2sFeM8xcjWOA+0IXir5EzN24If2FsQxPxcm4K00zcb3clEe6EXjG6BG1g0URVy/KFVQ8878BONILX3KrVQdUetWF13KYFgpbJu+BTj8cxBoIb+P6yDMV1F8CXm94c/sUzmSUAkt8tslyr3pg+v4RLwQTT3aneUYvQfR/6CFMk1obXlBhjmShdpsmTtDNBs6EN1i4H4PPNglB6x0t3LBKgrvqDwbTUHIIpyaDIulMmx8ASX7zucAsYMH1zxQHVa+4EL0xn8RvL6shRABQobkgaQaih3udmiq2XZ6QUCRwqZV5y3cKRMFaYeF6kIwb8SXDEJkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456h2fvl_e2etest","name":"fv-az456h2fvl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"001abfd9-acda-401d-8ae9-ac42e59b0521","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30004","status":"Disconnected","lastStatusChange":"2019-09-30T21:56:13.3019025","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fe10d32e-7df6-40ec-82a9-35c45aee9a1f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw+SRYJDlaR29EnWXvzTkxOsYHVHEBpj59V2GNKWmxlJg7F62D3x/gWyssyoiQyEFqBWlu0QQ9V9ZETrJKUoBc9HvzTAavTTZRlyB1DD7Uyc9dzvnC1E+uEYc7lSWyw3ylUFzlBbmeIk2ervoDrPzDd5mH4HFZfdALFlrGpEK6hNTAPzLuMWz00t/0VBeNoFM+cCmje/iwzatplAn59GhDJ+c0LvOtNSFm31hCqMO3oDpzxSsDPbbAT3Tnhdrv9EPz1llELvOxMnIUyUpgJsibeMr9UvnEt2Vqct4pVwDG050sYN+CxQbWQ9QY/4Zjfnw7Hw+2j4ea6M1FMDzEovhYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600f4tyb_e2etest","name":"fv-az600f4tyb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"13f13e43-45d0-4e64-80f4-73b4be44aaf5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17001","status":"Disconnected","lastStatusChange":"2019-10-17T15:48:17.9049133","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"0c0dadea-7bee-4529-9524-066a12526082","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsUDyV7Bx+d6X86t1MpODou2SvZbSrOPEqLw4H8Es29N8l7T+KkM11UVb20c362UcWzrfbDwdZBbPyklQtHITpv9Fk/B4D5mwp0YMi76f0Ci5v+yoLAcnTbtYYbWkX56YqtgGFvd3mMqrkaGu1TPubrNrTvWhqla53LUGKVvHrpkkh7mvNH9Ar+eNSDocRkchYjvm7mBxu0+M1UYdAxmP5Bob1QlNL24iTrhAM+YsgqhSxHgZM5ZViRKL+aAm2zWJSpupxWSf+oGF3r2TDFpLhAtfKotJUTwUJtANOs/FC+VrFmhU7D74Mn6SILVJE3J1gfQX60SepBu2PIQq5WT2iQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az40825fp6_e2etest","name":"fv-az40825fp6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cf6b1fec-36a7-477e-bb42-dcad00ae3dde","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01003","status":"Disconnected","lastStatusChange":"2019-10-01T18:56:20.7261168","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az408"},"vmId":"4860228d-7920-45d4-8673-0dc26e42d249","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyvigf0caEVFUfibRPU9KsVvqb/SkGpRURIaWiF0zSnxeLsNX19YTeJmF1lGEKyjvA88Jtoepf+PCHd2RyDRJSOUmB90n6JO8WyLy5vy4NhbgccQ2yp6cRtZRN2FAeZfDV3nHUVl4/OxMoyr1i7OH2iG2mbZ0ZfGFhk/0DBw4AW1v04KtRdrPRfMbsCBCt5HKpsadnqisSmKHGlld+Rzab3zxtbjCNM6Xi9kYHHkmHUi1uDct469X31ydJrqRZ5k0Kc4wHc2T27sIQkSMwa0NVMy2fG9JNNLWH//LtMD/VuPVJkF4u9Z8wc2riUdIoktEhjF9OmFWhGUcw0s047BqOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.22002","name":"0.1.1908.22002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2bf13131-2976-455e-8d7d-65facf8124cf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"23018b03-1c65-4eb5-a086-4e2c72899ef3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAudhoIJdBmG9CCLOV3NK3FCiFJw/mSVa8rMmz3Zlj/qLu2BCjR50Hb2EUxOzKgoaPEmHpP8tzePSP3F0wkAJSy/NNEVBaTk164Juq/mEYaOmYUwStj9VyLST7tFfbhnq2dRtyr+02jlRaLXQhkwRR4tlQ3K5yldKieGXP3K4Vb8gVhfeScEe6Dvtpu2JY3n0D0cDXrmurLfGAAoMseKq44582TWGd4V/S9Osi1GT4DHpWfwmaWVGUiUzxJMIpHpBxBCJIhHTPZmKzpHzc+YYhot3fLGme1ds+LM6iLK9Bd698cr9upjc/e+7+8xQcW6GScWxmN3pAfq/ro4hvhnTO+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408btacx_e2etest","name":"fv-az408btacx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"76cdb4e3-14df-4c95-a235-4e0967d4249a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23009","status":"Disconnected","lastStatusChange":"2019-07-23T23:15:28.6300137","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az408"},"vmId":"e27c6161-9cb8-4d23-a72b-cb95a4c80466","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1AG24TfSPS1ZWLSlOdApepun2ihE4uKtIbT9+iScJWHzAOygi9gF/i9vKVn1r4HRrQ3doV3RfEiHrGk/0KHy8mZC/+SZmhwtQE0f4zWF8uFu2pNH0GfIgSf1LeTSf1wx999PWQSJGsAKmpXKukZfFLAhfOc/+hvO2hPJ1aJs9w7UpIiCIRHqlSbSDNXR9Hb9zzwbOgD/h2qKMTaSU51VtwcVC5ZujO8TC9bGtzKOpBUpSuBNO5RL9FmTR56Xh3unz4zfUbpSR6ZZHiHTkwbrXGb4585ZxNmSIm02TvXzpwfywW3oCd9ebbpvac+4Le/+fbOEb4+dxl/8++ORKv92iwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456yfu2l_e2etest","name":"fv-az456yfu2l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f117327b-a848-4c55-af74-81f6598a8dfa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24005","status":"Disconnected","lastStatusChange":"2019-09-24T17:23:53.37421","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d5b7cef4-4ea8-4220-a51c-c8456a19a4fa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAymjadwuF3EHrnoeqDezeLGkinTzp4XM72warPHwytLrNqKMYDMl4QlBCnXX7B6T6gqD7qJw9zuES3JO757cpWhlQkdZo8fhfTrBH6SmLq3O7TN5SZ4eSES7J/WLTCJ5lrxy/drnK8Cpf/G6vGkjPmNa98IL+bE/A+JzpdySQsMWvX1xvR7cUKWwfuevQuudsVeICHq0aK59Zdkkyd6tgKIzxEc9Niu4xT66c84OM0jT906nnAacdxQCSpd1aSwOIHCpRRmLJIYarpwZ3JDFt0cXD0RghLR65MtL7Tz9ix4pyUyAmAuUZQ/cI+wcCOqP06oGpxyAD9QjbxB86+zCgdQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461v4nac_e2etest","name":"fv-az461v4nac_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c84d34c6-e699-462d-adf7-9f96bebf787a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27002","status":"Disconnected","lastStatusChange":"2019-08-27T18:18:17.1760035","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"005aa6d8-b4ae-4b19-a98f-2885747ded38","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtVheGH/wyrESQv5jRVk0X1/RcelfiNuCMAcQkcTJLgpw0JlGLj8QrvhogZy4pky22rxX0UyE5/JiaY9wNM6zYvN8rDc/2451O2DU21b0z9I6tSK/QzXUmrqEHTP1BLxTSGAZ0Efxax/f2WVPALseOegS0VexdJYVL+Q7xMpWJEejgFOVyu4AUEP2EeM6Nnzb+uxm2ZeDxP9KNqkavFxbFgvyVD6o29Qe7UDcxyLoU2mCwSepPyR4QZz/ppdWoP2IbEtKkM6278CWUExgrvADJ5afaE3FQNjeAHo8V6v1oWHRY2nx4hhhnRW8N+y+5JX9gENxyiE8+wWXDg+6P+n/NwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461v6015_e2etest","name":"fv-az461v6015_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b8293cb8-28f1-431f-9a09-7280c9ebde38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08002","status":"Disconnected","lastStatusChange":"2019-10-08T22:35:25.0322338","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"960eadf4-cd47-431b-aae7-28d4e7aa6e7d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwv0+2RvICeN2wRnCKGP8tSJW7tGL96in0UBxP3H+GpKVPI7XiHPAFcwiOP/TTUA9+CST/3t1EMDyLf6AxThvg1U0K5YAAEwDozcDsTbozvf17GIyixcZYuCRCV5GTdErhSADLT/OMtUJXrornxe39Q1KiUFXD4SpJlmSUJjTdz7+N5JPMXlqOZr09bPaZt0YUrJ0wl65R8OdLNie6DieanZE2gib0lAYt9NEiYVT3Y7aotA/E7mUs7Eft9ugdmiQ3DA2igzo/y0T+ODiFzSWTu4a2bz2gKMPOdHnxaVAk51JiHhGrCC5O76K5EvCccEWW51xx4wTdWm/48ZEWCeUiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461va0hb_e2etest","name":"fv-az461va0hb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"20566f54-7630-42f7-8010-35e40c6d379f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25002","status":"Disconnected","lastStatusChange":"2019-09-25T22:54:04.4463206","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"3b6ac4f7-1d9f-433e-ac25-2105d79e12da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyqvTddzzFDARcQljAKlQZN6gJKH1DjpejzcCc42TiAhAzimudtjhnc8HdNlCrAjSaanve5N7TO1vOWpeDcNG5JWIa5MUk7cmdWgEnG+wxncXDFgPjWGpcGzpmMLMLYwhuogX8e6ml7/f5i+Jt1+yiT5bmUZhC3+cbguiZeQZ2ZS/o2/kfA/OhRQ3lY8ZAH6ve/0J56DRv9NPS5D48sl6jzK/Rcjq/Xz25lAuQLS6xLavY6SRc1y2qMw0HI4zJVwkqE+pAfgHya2PmoYXwYkbrSDNo0BfsvIZGbfO6DGF3TxJxVNmVJMl9GmEL9j3ZzKyQp8a5KlkUGgjAXQof6HIIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461vefnm_e2etest","name":"fv-az461vefnm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e6bc4f66-54de-4743-8f89-e51222027cd1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22013","status":"Disconnected","lastStatusChange":"2019-10-22T19:31:35.1257331","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"7920e5a0-1454-4571-8633-b1543ded61c4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmlZGSqzyYITGZsTbFUEwdd/vJddDvmT9Qwb1EV0tX35QPohmeiEG3Bd9E9c7viKArXrfufrMcDTMNK7Df4f6ed99lACm2CjQwDQJll2jdJl63wbLXMIGX119aWslcrwfehWSjiCtf3Dpown2Ur16BM4vxxDgHMuYcssZ7TcvBE3Usg9HKk6UnakZkR3VGUM5ssNJT2HEbnJ9j5T7230+jjdM/w4iClZEGagLvzxv8KZQ83lUMTdfreqoiMdUm/g3P+SJq2W2B50YEcttauehq3vLp2+M7EOUc0tGuyz8ARw9QFIF/A/abm/hmVDhe8HsFYdzoCchRgSxf4NWj3WymwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.22003","name":"0.1.1908.22003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f927819a-8eba-4f54-9ef0-fb0b0895e4f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22003","status":"Disconnected","lastStatusChange":"2019-08-22T20:26:22.6036371","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"976dd7e5-2729-4635-b872-85f640ad1bf2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8lJaQeuhdbU4wbhk6dQpat5+DLhu0iE1UmGuMxylipx0ofKpELRVedrFK6PfZ7lnvSt74RjwXywmOeQo40y3BdXLwgBjNux+gvOhWsVVVTQkuXUBI5042IeS5Bh1CAQUCVclmGTflKEhNwWz8innRsD9pxG5guU5Pp33Hyd4F/i9j8RlXZFEKA3QeOpFKRwfGcg8MNmqa+wzpvaxrDvbngxMXAbV4IKRaVCo+WrRaf5WYKw/PVXAXDHauXtQS+Z6+vzJj7yQA9l9hSAMgBCuwv3zHRKvqs4Xu6unIGpAlh/kMvumNQWJSOOtLhTNmCiJLL5dLxc5s73mthKAvN2xRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600fumwk_e2etest","name":"fv-az600fumwk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c68d883-980a-4c66-9113-3202f95e3e88","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17005","status":"Disconnected","lastStatusChange":"2019-10-17T16:48:18.605327","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"748cc9f5-f055-4e6e-b5a7-7d92e393f0ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAul2xfAV6zcDudRHOJ4m4YnYclpdTCkWcWF+d8HNYnBfXNGd9/eJW3bsQfe+/sbkxrOPHWIXz5KP23oG7nTWHaVlkSyj8XQhdh264e/0WD/5MqImxnbtj1Sq48DvZhrUfWEKsfeRh//pFdg1apmiPYT1eO48DXylARxc3MFiLKuO+wnzAkGhqQrHJxNx/lta9hjiO3FbyeGZpyiuuIkPrTSi0ut1JMi4Igx2/wBk8pNu/o2GMKqMseU5auxdvWNAiZ3X+JrxkHEGD1+PR8rwiXk3a2MUMADLnjl5rKm+QH9BhsdXcNg0KuH7zv/mhkO4mBAqzKnf+yxIGdYYZOno6NQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.25001","name":"0.3.1909.25001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"92ea3cfb-fe8b-4fcb-9887-93b1bc02b516","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25001","status":"Disconnected","lastStatusChange":"2019-09-25T22:14:04.0472897","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d2d68787-5180-4c22-a192-7351dca2075c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAueV8+HOCWkeBtbwfr5KVkHSecJPcNz+4mlI4MH3xTS1IaB6Ng3gLesSCuZRXLbFr5ovnYXKGO3bKy3PIgCMfTc1K8XAO/Mx8sdKfdAxw80vvET3HBdzyf0s5ZN4TKQ5VVTF1NGBoAzJDaXz7Fj0DMcW/Eq4myc8HDVywopHkRnyGFdKnNTJR6W7osrFc/oHVxzcQHNOZfsGKqdySti3ucmwWV7U1Db47rALHQwnWl68DBmPQFZZnpsRTMOd8i4llPNF1rQuqiEsgQgfC6BSpOAkt2vsR7GryLjFdzEW9sSyHSV25835DDB0WeyxyPWgoN2QX6CiVc9MXnWggFNUU1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408f4qgz_e2etest","name":"fv-az408f4qgz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"02d6eac2-0a4d-4ef5-9195-f100442baf9a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c958710d-60ae-454b-a887-fc10544c55fa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1bFnTih8ncadQVfsGXhCKpCuHoVOzamS66+IdEYHplEFjHuStdaubjg8Eks1FF2jHHUx5+K2D7hkPhqVjl8bKDVMd/OK4wjttRGsXgdbobG5HzapKrtcUusvbdaeG6vNg5MP00mgGqRSZ5zjrwcMQCn2hIs+hLmIuPEJyEK6QJvxYU+6ngkle4z7dTXVlIwcJL9n5BbEYnpvAewEQI4U6XZBTi5Zu1kprF4aUyfnVck9fYcL4Ty0uInyTyOiW25FPHloBV337OXoNQok8AtUPJCodrayu88Yjd1IGCCmGpFOyT0wuIeMzcQk93LH+NMOGo57xhk3WaQV30sjSF+eWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456hbvlo_e2etest","name":"fv-az456hbvlo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a931a8e9-64c0-47d6-ae9e-24566e29dafc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11002","status":"Disconnected","lastStatusChange":"2019-09-11T17:20:53.0178146","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2b65484c-6258-4c2a-a19e-2f720216b0a3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAunfAE3IRFisp0IvvDF4zPQmhTUs/nfvKUWU3XrKNTkqqMW9V6QwYa5weLt5cLic0uucB9ImN7/cgWEyQMGNX28OmzvnktzBukUZSgDHCFcn8L6Q2hrBcsdmCbuB0ufUKnarV7QbxYxEjAR4rhWvBr8ADPY99jbdo48V/bk6uumjAhg6jhk9Ba1Pv9mpo3L+AIDw2N2DHmitC9BVu7wHBnlee1Epl4G9ukW5blTTrHqRq8MegIvRH8baHenmxAff6p/98VAX+Ij7a3NtM8aRS+FobkP7dpeICtd5swrr9cnBnie/qL12I+CxxYog16SVKQ+MRFxBp/zBKm2t0RsbyvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461013mj_e2etest","name":"fv-az461013mj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"174b815f-500c-432a-a20e-b168072a55af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24004","status":"Disconnected","lastStatusChange":"2019-09-24T17:03:53.1665542","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"5e2dab32-7ee8-43a6-b225-b2d9beb8995a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn/tEkvEFpFWQg6mM6/l5TJTS+/dSPExijgynAlyKJJKKIH8pclVMI3YUAyTEVe786eWQfGh0WdiT+qhRnfiujqPnUR8PmGh+bgRHe/T/4wRvvh1Huk8UlCoPSeqItP9l9L1Y5Em/5uLXWqNWDa96eSiNObUBiBaJ02dEZvUrRV9Xj0Je/VxMh9EIJcMK6mRQj2Q/WEgXnWYJQYo45TL06U5m+e7PFFoULBrRXlFYOY30VthmVjXt3pbDzsgpRfpl1c+bdU5p7PcgYwMtobwVE/X3KTwrJ/G2YvsodBjyVdRaFLCnaDHKahjHfL36qQMtf1CVL15lnRO3+zNXS9Q2UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461vwacm_e2etest","name":"fv-az461vwacm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"14684cfd-21af-4a82-b074-c162e1abe2ed","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29003","status":"Disconnected","lastStatusChange":"2019-08-29T21:05:56.7410452","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"5019dc97-e6a5-4923-b96b-95bace13a392","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvQSlOFL+n3CWfg8vHKYkDuHNGyciC6lfZQTDvfZiPoyeEdfnKQewuuRoWCb8gRTgrr2JfUlCKq0IsNN8/1AljhGXWo4NNGd/PIjG9JqiIH6OLw/94NwWlJuBcXrFHGuMLBW/epQsLY3ZAfFvtLV67E5qVmdDk1Cgj22WROTfqxjp24giZ9wADkX3KnUO0FV0V+rhcsTtMgwYDuknrX1eW7rkVLLtOmgHTjPCi5qCMZ0RApoipdhpqKkllbshto1ypM9YCoQ6YKESWb4EuxgAHdqcjGWF3KgfqSqQESMQhLyKoSTx5qtUSBRpCmt4X3wOh298uJy+4BrnDZooVeyhxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456yja4l_e2etest","name":"fv-az456yja4l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a113195-51c9-4f5f-887c-2eb79a2e0d87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23006","status":"Disconnected","lastStatusChange":"2019-07-23T19:20:27.0989594","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1f698387-fc46-49fa-9120-59750edee00e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArKrOD3fio+EhyxOjOURcHo+ULnQeDJS+QLPvmu0RRRyBIYxiMJF8ryMt1VS7TRdMR+8kFVQ6V1KFwVUOPP5NLZKecXQquCOqDTaGPw8hN5Pk4xqOgfo6xt9tANbGIg5ggP1mXkIsfCIKun2dlFKzMZDy04fJuHBBJwyB0cohK0xuWouyU8C6hjIwxEywObNrImzs0yS0hM5tNs4ZLLBZL4ZiopyPNjV/Uygywujr7HEODNjeCXsZrs9so4wCbl4qWI6ohUKSs7+KSJyik29fktVutR5ZQTadbJnbHKhhNaFNhNU7ZYXwBQkfh+CyYGwwYqdabjltXVvKC5mTxcAC2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456hfve4_e2etest","name":"fv-az456hfve4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97baec79-38d5-495b-896b-3767d81a929c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23003","status":"Disconnected","lastStatusChange":"2019-08-23T20:13:03.9172134","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"475a622c-ba01-4990-bffe-e5c2e9313ba0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoxlXGsqjIT/exqqVZTQtAKk6g9a+FY+CnV6o1JXcBV/M78dnyIi4S4mG9ftgcUqjTOUwdULplBF96dbJ2b3hZY1tNSWUeUtsyQp9zMuHly/TGBfR9B7x0eUkdmELdAo4DDutbJKry1IvT6gOLf70hY2l/1Me9P8kEF8yFyo70wBA95ZWemtolgCfqLsdh7qo5HKvBBPGVAQZIBmnOfJs6Zy08F6+EQvnHeIqHzioLJNmVsPbn9ZCg1s3H3MLTI6HAWMg1zVcrmrPphqbf3c/TeZP+k3Lq5yQMV4FFoMAcIMDmmMn3tDiEXqoXUqKonKMZcXMKb+ptcpYwM/MYN6LgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461026ea_e2etest","name":"fv-az461026ea_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c692539f-e450-48be-8199-708c4bf150d1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23001","status":"Disconnected","lastStatusChange":"2019-10-23T17:01:31.1050499","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"73a7ddbd-2815-42c6-bdf6-7dd4f0d2ce0e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5pwO71ATIaB8QYba7vL+qxFkUnFsWwb0fkgTb1FKe+Csbg4atbX8U0QnHTAQ2BJoPfYr/akDmx72Q7lTZSGZ9b4PvV/AEyNskt88GUGBcry8o/wyjRZUTizN0rZ+v80DOiuH8Xqf2Kqd47z8XjySTpbKDjLBruRXQnyGBkr47c1WUNti+ixaTkmx2YX18a7fyD/jHPTcyxREoRMhaBKBsnS8Q8g5pjtXOqxvmfR2i14JwO32Uv25lnmioQ0Blg2vKaqDH19Z2j5WAha+7iKBeBsjQQNdkzAvqax9suQadO0Y5MIzMU35inv+4AnXTN02BEYLDjbTUKGvsBgozsbGlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.25002","name":"0.3.1909.25002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"90989456-5bb1-48df-9f6d-0c0176d46a1d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25002","status":"Disconnected","lastStatusChange":"2019-09-25T22:39:04.2942994","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9e7f9843-a057-418c-82be-d53d95629b0e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA24XyR41k+8EBdm1a2vPq9gHq0b0ECjujWSODy19/DwkQw0FwkQFOwZN2pejuojtMinjOG96qJeq6OB+O63FpW5AIsZYgqVz9+cxjcqfej4Meie6ql6AMQMhMll8bKuqucdpsxX7BxWAF4dAHR0aCLfvdpSAylSj21xeY+ANISeRQf4oAS5Qx8NJ/Nj37Co3S6nE38vaJ1ap/1wmssb/MvTER4HGRZAge6FxWvSWmRejQIv3NijW3K3bHlMMqT3DWa9qy8n0VoAdLV0E/Um+rziBqPBbe5fgFCH7i7BS43mDOlUMQRy6d5LFmxLJlYV9V0aEKdqMVj+IcmyhutEZUxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4610bph1_e2etest","name":"fv-az4610bph1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"688efb7b-1c2d-442c-8b6c-a45971e11483","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.06001","status":"Disconnected","lastStatusChange":"2019-09-07T00:01:02.6658475","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a713eedb-dd1a-4952-8bda-8588c64e0909","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy639J1vHkYI1LctOTlS14EcYAvi/xpibDqs1zcjFGnevHR5dngrzNPFgcmJN0gLK7ZNw5u5VPedlSzi7wTTwlACtcRtVCrr96ioRnwY9VBoHlQUe1BQp8Aw5hdfntxSkSa8BKkdYgIUIAM8s95SqEaQ1ujcvZDqRISRWq4ceUasw2A2xV1R+qIy58m62kO52hqVlyIjdWZVTGNKYbK6GerZpMm1OIhFBukjAUXamEMjV5QriwzdFudr0Y8wRseFwM75RJasgv+7VZ5/Z0vG9efNbuv0eKJe+NVdc9ZQOU0Lu+5EWhzWE54TRspyNq86Yh3TxC+242m1xag49C9+MzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456him46_e2etest","name":"fv-az456him46_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"37e385f1-9179-4e84-b883-d08a009ddb5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16011","status":"Disconnected","lastStatusChange":"2019-09-16T21:50:03.6922685","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cac7c8ca-4c85-47b7-92ff-6893073f257e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJv355Fw7qUGIklTyQncs1G8aTORfh+Mo/SQ4Y8ib3oISc0CQTW3pWo/HA/gsgevGk5Tq4R1X4BJfiPNqK6e3fMz3ObBhE87jbZXJPDW1WzW68/FOwCPZQBHDFNRoQ8t2OzMWLoPIeGzSDJNxWRISO0cFeYqvTK/yxzx4vmig9rPCyg+7xLNeh0tO7qkIeCIsGqimb39EsyEoUcPt2kb4Wzu/QZT3WR6VAZTmyJtdVteU+dvJRzOobu433kL+hfclJs19EwHlLq+c9pDZlwGl78g8pWEIHas3qBKMnlo0qJ96RihY+CskqkPGs5Mudjb/TIYiqKRWPaCHNRbCg+DwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.22004","name":"0.1.1908.22004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a8275c07-493f-4e6b-8baa-ce57aa04801d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22004","status":"Disconnected","lastStatusChange":"2019-08-22T22:51:23.3474865","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a6a18432-5575-4495-815b-f92318b25dd1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAreJpMYMuX+oK9AG3NxU+ukCfxbdFdZ0q7eifjcZ41/KawomgVi0kYsA9Wl3VtzeuEtQP7OAHP1wwbFW91YO1IWABeXF9LGBULoSuKk0FwclZCaNUILjqdGqDjKyz+XBNRjJ9RNj+vzFOg/V75v14KLnvJqUqixveh/YgNNVxXDBXBnLGrWuBfRYpDASKlfWlprz4/bObMPu8IuVXztvI/tGXUtG/H6dLzdz4fRX+3qDOj4WzED8F3LTYqbfR/Bf4plDvuPNUpkgsEBWFnT5efuPxwmM9yGuVeoufrZAXi8T+boV95AXIKWJdsUA+3NXhH0s/9fNLgHTaAas6B3JGcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.22005","name":"0.1.1908.22005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e9c93452-febb-4da4-ab3a-2076f72d14c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22005","status":"Disconnected","lastStatusChange":"2019-08-22T23:26:23.5884354","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ddff92fc-45ab-4ef6-b286-466757c8c72c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5SJ8qncpqeSnV+/kEfKWwVu47lyfHDNWi1WOYUsgb+iDCetnkvV1irGoAJBv/XDznJimgwxYQNEiSbk5MnZi4QJ3b/nOdyexxMqWok6t7mKBEwgBktkAVePRaFmz/Z7+TKoPvK6k5QtABvYpyAPPnC2SPTvKjLyE/CghSnqqomUTT/WaSdblm2DcbtbdvtRQTs311EDoIqx+UhGDuP9cHvxi0BDmkG9rh+d4XeOxxfhcQLLTpdxkK5uoejZgsNELLQJyHvzXqpSUu2W1mNKwjNXYeWaYnAMsWoC1+t7aA1Y6MUebPWpnN12ZakglLU99B0U/jsSLl5t0N3/wS//abwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408jtzbv_e2etest","name":"fv-az408jtzbv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"901a1084-c796-47d6-a3e7-68bef0c028bd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22002","status":"Disconnected","lastStatusChange":"2019-07-22T18:50:19.3435746","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az408"},"vmId":"0d8c7057-df97-49a3-939d-20cd2ead546f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwtB6R5bqz86vs7z1g2+U4+AFaXRygp0+U6KD3owsYyIO/sipAgUDh+3mD7spxvK0YvVgwTalhdAwExlVTahYwwBpRypY8eZ9+TmqlBf6W1cd76eHADjvh3K3ymEcJg4d+gyVHSPnUow1HoKnaW50yB+y9IMSVQsQ6/NAl7vWs9bXulFsbbOZ31Zc5SnWcBsj8GV/3H+C6m/TpcGyvqoOD+QiaNDGjqxmOWCv5DZplIZvlpAu55JJfO4zFRgw3SPFJuqZ1z62eE5nGl02U0yF4783dMgPU3suWDbEOvl2bxDnUk1qS6fquuY+HmEifYbzQfwjoaMG7c4ACiAcOvYr/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.23003","name":"0.1.1908.23003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"02eef548-7bec-447b-8298-5a63cbc10421","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23003","status":"Disconnected","lastStatusChange":"2019-08-23T20:13:03.9172134","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1971980f-e684-4157-b3cf-973dd94e99db","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAps/W3ZmACzkoXG6IcfZUfotlHc6bbX+iQxTS7N3h5ejpDwe56qE3zZB3VzyOkJpZKLH2rL94t4MaF3GN0wYJ0vou6P2GzW5tTIFgAUqG2YTzYGOcu/vqIHERVKX+0tdFVOmpK7DWsbUcOuGD4TV8WzwyjwSGxd5WaoUz0XUvUPNsUykQy+nsxhyn3rptZRBKo/s9nZtjgeT6czbOUJYtydE+1eEuiomqVA5bm+J0E36yqshoiq19kFVNsWjUHPvze708b6qJWH/N6iEyn/hGKz7Z/tdujxQZYY6q5pSukrcI1GeQBMRX4htTMRFLnHEcEZ66LA79MrRnDbXwbdRUawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4610pbkc_e2etest","name":"fv-az4610pbkc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"249e6d28-7be4-4585-9d11-b2d4329c664e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27003","status":"Disconnected","lastStatusChange":"2019-08-27T18:23:17.2983813","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"46317da8-70ac-4539-b549-5594782acb5d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAppaZ+YcHm1WDFtJDT58xwh+M9l4UHqV8wwdSx1El3+4poMop654KpC+muUHuuS09d9gtD5pJXszCqnTExYkGRt3CGrJiBBO+fXCql0fEdRpbTQvnpETpFLhVuDAd/eFy9H8STxf7NAwp84XtZOax8fn3PHvS1aGTQZjOsurXDfpPb5jFVVV+JjBO5lCcKqwdAeBNbdj0E7LNufpgSMl+2G38g2pVzTQ7oJ+Zs83mPllX1I0cWxjDNeXT73XGqzm9EI+Ft0DmRBC9ofsGTG+OlbwTfXU61RDnVBeDzUb8J5wYtPulTMSt1fVesVWBYcwbVQeY3K134gdhLCZtqOGYWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461wgv2o_e2etest","name":"fv-az461wgv2o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e8fdd2fa-ffab-4fe3-93e5-9e5a1dc467b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21009","status":"Disconnected","lastStatusChange":"2019-08-21T21:31:14.7809514","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"2d5cfeb6-d771-4355-a2ea-2a893e3077b6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqsgXPvc6AKOM2kWIf0VUfm9Qx0NsSQxhMTvX8AxqIc/qBSUlxELeJJ+MnX/ZPm75n+jHCOuDpvP3gTxJ9bqBx/U1TR6LZwBddGmIoP3LnaJUwMbBv9x7lOM9YDQXlH7f67o85m/r7DlFHwd3iLP3sbtaZ/VqkRRaxmiBwKQ+kKUrEPcV+zYRpx3G689mcPBtRbbC+PqBdBUoAI5I+HpOPD2uPo6iofyuGLe3n6ypZJJvktQBXE8LxQuNDcAYcPL5yZpDRIytYl6r+LvqdJB+YM6cCk9BfARa+8na9APXqpbrbJl/fq4Tyw5hoBXB3TwuikCYe+7L3VBOhki+CzJ0lQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408pk89g_e2etest","name":"fv-az408pk89g_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b9a3b171-3d87-4ebe-ab94-fabbb858aae9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25007","status":"Disconnected","lastStatusChange":"2019-07-25T20:30:46.0622518","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az408"},"vmId":"e56c3c38-ffd9-4739-a5dc-a3be3040ecca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAutIXNddodT/t0zw4TUO908o2eDH9+ZVSSMKTYuclLne7iyXxqPlWJRDkeeU329Z7DVHZvSbOKsTHg7piQxCB/KPARi1dr00ty+XWN0LqdtYQUnTwgt82APJk0RyzXUVr7y43Lg7OxCTUv4Dh1cMP5Dbl0J0+OGPDaz2phHl8kJ53LtJatZKQxA637b8ZksBzH3LJmTZg9VZU3mC6jJWnVetMMTAchtzP19kVkD/HJ0tZXS32jL9scBplN6fVD1BLtNnLB6Ii7T/J48fyoCJUKoy7IkQjGQuVtUJsJ3KQlfjDDZjZeE8WQl5V6+uu5jsKs0dcxBhUX9Prq/uYdbQGRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46118u97_e2etest","name":"fv-az46118u97_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6ee2a3ab-11fc-4b6b-bd42-611f3a790f2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26023","status":"Disconnected","lastStatusChange":"2019-07-26T19:15:51.0697908","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"5de09ffd-089d-4f38-9f7c-7f021390bc5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA65anvsYt07lAEX03SJ3DQEWNDrkuhmggpd5QNHgqWzK46RmkX4ZyGMq9fSh1OS69xxJob7WkXH9wxSsVmjdz0lHdPYSeOico+w+1mRIIdY/J49q4zvJazsHuYZtcOZn5kYW6JF2XtKJARv4zNtK9YknhCh/Rs1Atk+VtQLbtiKg70Qt9WRC/SsEPRzoajBHISVnmmdTshI1668wuTNAcPcSS6CH8ld+3T2bZol9KHJ3A0DBKuyj369G6VJRkkWtSTfHovZ6ZvVftIBFaXeEKDYcRoue/SGPNS7bS2gwDN3LsxouaB9EETeLFgoLYXKUYE9P+VOPJNTYCtIr9QAXdNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.30004","name":"0.3.1909.30004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"acd5cf40-50eb-4d4e-b20a-a8e613450b1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30004","status":"Disconnected","lastStatusChange":"2019-09-30T21:56:13.3019025","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"dd3c6ea5-4f83-46ab-8464-4446cbcf89ed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArqKUUpgCgXAq9LrhwY8yC2UzGNf0Jve62oAzXTJfDOSltfiFjmA2xzJCxnLgD4vSKbpzwAYGvnt9tUBUWfq/Qu4qA/QiP+PfYP93on7EZzMKoFUb3QqTdEQvEuPiUWHdnorzPv5Atc1r7exImA3R226O52cBIYBNT/YW9TZqkeTJ2y7uCor/bCRPPxxfoT5lBATLxJFM1cipU6aLhUCOhCQW6uknAAWgjJk2ZUG6XLy1kqfcoVOmMOIQ88uI61baSadah3LwO+OhKyEsYjpbjEXRk4X2hLdYF6jsqO/IUwGve6RR5IumlAAAGXOEKrOzZpYtZeLJXW3CoCUZ9yMEzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4611c58w_e2etest","name":"fv-az4611c58w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"737e04e9-6018-4188-acb4-e03394a2dc52","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21008","status":"Disconnected","lastStatusChange":"2019-08-21T20:11:14.2031349","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a30a3d14-d54d-4906-932a-1688736a1ed7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwjCqoln9YxWHiJ+1X0/vSYaHyIiQyin5z+m1yOvEETW+B33ReEAv8XrugenpNeNhaz1D/C1Xroes9TTdYhCxip8KyJK4UDLkwSGxpibcXODQ+3gn2lNfbowGBNUNqFW1hkgObObBVjXNwkvAk2VkmNCsn8/BHYMX80Ly/gaBVN98EcQ+5O0bs3UPiUOED/v/kf6cGbT8dnYMCPMn9x9f3hVL+8I+dFO2D/xvqKv1QHfEiXLpnoo4q2wsdzd+2FjrehWfBhF0LgglFx6aPu0/arqXEAH2bD9ai5xJfW4nwyrIeGHeqwAOhvsly0UNsz9MsaQLEqv7WeY4Ny6Jqe0ruQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4611va3q_e2etest","name":"fv-az4611va3q_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"30aea0b6-afc4-49bb-b931-ad8ed2bc9fb1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26026","status":"Disconnected","lastStatusChange":"2019-07-26T20:35:52.7557392","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f1943385-862d-4c77-aaea-6bed06081049","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvEtriHAncRoXIy6ZURNSajNAzmLHnU8244zs6vKsRhQr0gglIUlJXY0NTUdWwpu0FjjsVcnvlI5gxo+EyqVBf31GtgMWDx7LKnlURBXoc+eWLC9zqoD3Mj0+dQdgvRjY8CcOie/GAWusJFEB9T8JjAxuA8svhE7JrHgjSObsENlTmgb+tMQXVWKn8+bnunFb05LS+x0JisrDOsnvou/W8+VZ1yTJXt4ToAsfXSV5n9rV5VCiTYurTPcZdV0mpWsiAfVHsSla+UsE2+6bbVtC59auTxDO2z+IQ2bMT2w/dTPn/++aG6/yZvQrh7IIgGtvgpSu3u+NMgNP3jljc2fP5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.30005","name":"0.3.1909.30005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c56fbcc0-6b01-4896-aa6f-55c1c88674a1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30005","status":"Disconnected","lastStatusChange":"2019-09-30T22:21:13.5842945","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9c52bf79-ca4a-4585-8bb4-7737c87add9e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9JL3JoYtzdzyPUFuc+IpPY6mIYNCf4JXdgL4vjE1+sAJDOGNe9kgQiwyArEnaxbA69N5MWZTsGLLppVfBPoy70c5vmHZDUom8Dv9deINv6pB8WYqESGzpjDSyCgj9f/vGBzd4AK8QoXfr+2Nyh3OlBt+DiMyPiWZDvGe9G0K+g29ef5yne8T97Qwth0mrm1jP6z1Z95/y6TuBodirh+yYU/bdP39u2IO//Mhrkrq/bixrhcwtybH9IQpmHvP2fZ9Zkh1UmyDQ9B/Q4wya6k183ymCcovNLpUSq/RC80OSYQkqwh508QGmRS/QH0m5oi9l6x4jEE1rkZKdz8wl5sPKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461wrsot_e2etest","name":"fv-az461wrsot_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"464846bf-ff99-4b9f-8149-bca2c417fb6c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04001","status":"Disconnected","lastStatusChange":"2019-09-04T18:41:40.1703534","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"93342190-d73c-4d93-9c8e-63996fb46886","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2AKXVXpqvFcoTCNglPmo8aDWusRZYMF8UG81lEj46uztrOf3j0KcyxCJym3IoWIDj3drwY/FF5epqRX3WkTdPGmbEYhx43QCHlAA/MFuFcmyIhTdgnf9+pLQsbK7EVegpcAoYhZ7hKer0t9mVIbdb5NnSTYX0riLLukhCGttK5G2j6tRqGybnq4xFblYqFkSsNXBt7Gsi5QZt8V9Rott1AoZaNnIO83tMgIlKSLk+r/RFcbXACEYpM7lUx2AVDRaWIs2Qdg8MNtzFWf/JEzjglnyGv2VcXGJW4m6YHMwWn017b/axc6aLdXxtkCT7H1V44iIUIBwx2xYGJdgs4ZKNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4612jxvh_e2etest","name":"fv-az4612jxvh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ae13d6b7-dfc6-4344-9fe7-88610a0206d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12003","status":"Disconnected","lastStatusChange":"2019-08-12T21:10:28.7090586","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"261d0392-8219-4b08-b6d8-3145bda11f05","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzD6DmlwBqOSF0EzgkAyg8lVAIN4oxwefVrO+GPAo8fcbKyxBEi+E5wcCbcIl5SviSzo1y+RFJIRVaogYBUsAAyCnYxRgul/9p8avBz9jTOoLFoJVkWSogqWKrj/wXkaehCIbO3CzmzIUx7VQiocuT1IKLAm6hSUfO3t36i8eOjw4ZFPTJms8/I7ZDygyM6kBWDVfvzTDuypl+rQIWu9nerfuiczzH6+kErrd1GIrJYr8USfFJAtZZQm5+fLpAubv5TgBhog/4KmGbK76W8DPo6m5/IW1gFspIT2LL7by2RChtD5wYxqRbep/12fKNEgysCvcKOeCycC1J3XTH+KJGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456hrwm9_e2etest","name":"fv-az456hrwm9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"89da4e1d-59d0-4fb5-adc3-d8cbe8ff655e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04001","status":"Disconnected","lastStatusChange":"2019-09-04T18:26:39.945151","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cf56ebd0-cc90-4ec3-807c-c562b2cc58e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsS02O1dqYnMunFGeXNSubqBhPHxJ+zBtIrAAVAlrFivoSSvJM/Qq/7+6o7YAk+c4ZJR75h1khy9WGZAmdJUoBawkcf6cmEW9u5iimcqU8QxKTemoeWRdsgSWhoWiD6o4kkdfqD5YDhqG9kCoRixqbr6U/lI1Kw8boPLYoOhqTK0VEBFkqYNo89x04t92uhqxcjH7ox6UZqCqi1lk3J96Xf1A8B4mkbQdUeibJhjGjXu6ehNfmEC4yw444KThHL5tLHYeG2cSSBUrU1IHdlGH6CEjYxAJYnF2LJGWyJZJTtXQaCKIJsYMcWWYQA1DMfG0ASqh5gffUs3rjk2TLxw/9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456htgjl_e2etest","name":"fv-az456htgjl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"645fb2ca-ebcd-4332-8a0b-4ec478cf0136","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17005","status":"Disconnected","lastStatusChange":"2019-09-17T18:14:33.9193746","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"981408b7-2b33-465b-824e-a7eebde41e55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1YTWsqI0xYG4RuholCFQDpGdsXApTDCKbDg/Kn/CKXZoO0h+0lgLRr4R1dVoGSFRz669yZFIaRTFAN1DgUkV+O27V2LbL/ws0Fsfyf+SS6y83QI5i/0cZtF7fGLYm6u+5ZoKVPb+8XB0IUpnfITEXZw02TwOlZ2fmy2YLfzdRxm+EFzTtM48HCGdaVSH3QBgnJ3DrvhYC7kyu6lM3aajJPFEnPBggym4Ny7NOO+lo+TngIe3NKDzW7a+60qLlViZ05RBr28HzszfKoA1BlpAH/AROcoz4kLubsobeU8gLMMqHBQS6KVeHx08ZoOAtHWH1OtNVzgEGMO/cRD/BayDLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.23004","name":"0.1.1908.23004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"990b1192-fe33-49b9-8cec-a2a329681a46","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23004","status":"Disconnected","lastStatusChange":"2019-08-23T20:18:04.0214026","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9a612187-0f2f-4354-93b1-0e7ccd873fa3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArKtY8f6xTMN7aGEkZNh0S5pD/zIw72QFTU6amdcN1KVasfDsiObBTFzUALQv0CUKI9mnql4JXyDhzPAOZeWCcoyj6/cNfGuZCWPpuvz6nbuHE5l/nw7DCIXfFum0gol78DbzLxBAQy3dEidFpYkRmd5Cz3DlmkucEF1eIk2VD/GxaelCrsg0srYfhUhe+4oV0YF6IcbSiHXbPRhuMneWKRoCVrE+W4Hf0hmfyjQDWz4qBbp8lkwZRa4Wk30NkYT2uBOgf2u0h26XCXp/0JHEZsBFGmbrb9Oh48EDYy18X7mBIVhJ7QaslsbDjneNMex50oV5ofw/k3D9Zip8NDjLXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408pmfec_e2etest","name":"fv-az408pmfec_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7563da80-2ab0-4293-93a6-ea0a9dc86be7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24004","status":"Disconnected","lastStatusChange":"2019-09-24T16:48:53.0139834","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az408"},"vmId":"186c0728-2108-4d45-974e-f6e794f06707","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuTJgUmEd0NjwCZPPZKqLhpftDgQ5x8ZFInlwnSyxD2f52eXES2AZv9zeM2SOPkxGVoXPWeW5oSFMWRrwYbMdh8tNf5CvvkiGiLDKJRTFLjeLBMiz5qbHw5NZiLoF0ZJFMA9s0cLn6tfjCdxOEhzaDNxSiPeerD8N9EylIve+pUiaZC2R8ldC/4agALBqRB3onjH3dqgjdBX3+pyW+6T/RFWgeofBagzIfaojTSsO6sQxES1sIaJZRgU6ScR9AnB5hMK5/Ek1h9Yw+F0//YxBkVzU2LUSchKOU9y3J/X6HfpUT3t3aAzOyeU890kHhEWtouIx/0C1GeZYGdxjH1pLnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456hva4d_e2etest","name":"fv-az456hva4d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"11d6333a-e5a2-458b-b464-55b28ab48127","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23005","status":"Disconnected","lastStatusChange":"2019-08-23T20:38:04.2829048","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7ced05a8-0287-4664-bb97-d4d30a4ec36c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyZ0RjXcUIes2xZspcxy4+uzndxPNDICKxeZqCqRUKWMO1ja1nJwzLgzlGdRd4I640PD65dOzBwmTXBbvbiPsL+WluzAJQ8tX8UMo65Edpzyffi9Q89WiUIgO+3myXs24dumv5wtdfcrNM9RG0S3C1N4s1oBi9nmuDmVmLfJi07BZ8QUMapUoaJAzkxt97Jel7YProHTmntjG9WHsvGjJnFjZWwKNekxw3m1MVLaWYBAVwhxASbOqtd3Wga8VfCqOxgRoZEQ/x/qRr9tjzvEo3wTIqZB6krYUAmwe5VJ1eXMPpKvIGl8+p/xpgNwLwz65VhzbziYp+lw+0EeOGA4xRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az408px7d2_e2etest","name":"fv-az408px7d2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0a2b7ad8-b021-42aa-af00-4fe9e277ac97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26018","status":"Disconnected","lastStatusChange":"2019-07-26T17:50:49.0109709","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az408"},"vmId":"0282e176-a4f3-49d2-a2ee-a5bbdce1c5cf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3s/0c8wbXUHvpV3mqHH44/C+bZ5MbKIr+vFT02bmKsju6eA8bRyLly8samZiTPlomA/OUkEmIlaTyGb5asq+Vsmtw/WWDFHoVACi5uelE41fOlTvPDlvtjz30j2dVajRjsA88i2CxfNSDbNATRNsbHZ9XNVplGXibBpkjdZXPW+SC2Dz3DWTedzXrH+kYph81pTniRq8H+kglrFSWY2WYBH7Ie1RvXTVk0HtwmJgVhN9C0JkJyyumv2SkFLCiLMgE5pwrXW46DB5dKdFf+u7PYvuTZiDVeasIGj4fwr+ZiBBNj3e5SwB6322C6YnD40ISQXtBcLM8PVdDS9N5jKwbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45605ytf_e2etest","name":"fv-az45605ytf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4b062fc2-e265-4fba-8983-0e01c1723d5b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18012","status":"Disconnected","lastStatusChange":"2019-10-18T21:48:45.2935538","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"ce8be95e-0151-48c6-94fa-e43b40a4671f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlye/s1A9oqs+LgCRuFobl1nehoEO/5WFNUPVZrfb4XvmZpOSuF/gi1224V7isZ+1wRPzFRJbNApzQ+YVg52lPrfs6fpnglnCwaLJJnq88q/7T93g3NNnHReqgrhX+yBO74dOEoKdyHRYVj7+pg6PjLYyFQBAV+bIEdANLSlIdVUHx0OAitBaHYJ+LdVKSHKYaqC3SAVWwqJ4dAC8ovR5z8PF3RvzObydWILBWpVefM1Pty4aQ7l3JGWDU8mNF9b1gv/3ljOgzHvCY6/j9UijqvS05TVGmLO0DXdbUu6gfGZdQuR4T8tI2djZKNzCEu5tfxhGRniUbuWIiLNV3eh1ewIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1909.30006","name":"0.3.1909.30006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"096f58b7-6fc7-41d0-827b-707a2bbd1556","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30006","status":"Disconnected","lastStatusChange":"2019-09-30T22:36:13.7973207","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"0095b1e5-b1e2-478a-a284-6c86d04b73db","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQgV6ei8z+MuBUwD8/29Arov2xHM3oyNKP9cQhnQJrGuIrTNQVYZQ3ChOaskclX6AvgSc0GNZDIUi1ZvaVVPnr8yZ5tg2VsYqciyMK5tpTGsn4qgI656YiA7n+Y0bRGyhHHgBs2F4X/PWK104EZWm5/010rwcxv0DO5Mv4asZXkQgJ5uDYItaUVeVL43prLE+ZFAVHImsXQ0Vk28NCdQFzAjlOIUwBMayjTlX0w9l/2eScCkOjrES/NGog5ESDxmZcAHOtqJ229pZAj7j7KSo4RcQRb0PyETLryU6dAxoIt3Z56wHFNKnOYy7AprpqRTUJv35lY0CV8oQMVlOzZHCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ylxmi_e2etest","name":"fv-az456ylxmi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e16597c-17ac-404d-9cc0-e9886fe98889","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30001","status":"Disconnected","lastStatusChange":"2019-08-30T19:31:05.0733897","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"722e5b91-a599-4a5a-bc79-ee4c5c7145a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0WWF8CVlBxgfMPB7eem//vuy8OL3SRWYu0vBsGTRO2P45qGjl7uw4nBkpf3tg43ZvOg0LFYZ03aTtQ81AVb1IwcC20AYl6L91izF75dTQGKQ5Q5xKx44fMU5QVIZlD5dvITHl3GobVcnKQst82ZMkRk1Ojl4iY78TMrldZBpEcuTGUC4ChCBx567fuRaaZpw0rhCNFB0WEYNHPSBH4Bf3kFU0Z41IemilC4+avJvd8c5jCdUY76hN3Jgw38cJA68JKt2N6rsJJib9mLLUXtGwqRBG1uMljmz2ytmBAkWeITlvcDYKvYnMx8VP4cxiB1DPqJBbxGUDzPXdxOL+NTbBQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.01001","name":"0.3.1910.01001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d156758-2cb0-4139-98a6-5a858dc2d5e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01001","status":"Disconnected","lastStatusChange":"2019-10-01T17:51:20.1567878","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c5a2a78e-a237-47f1-9eb1-7ad2737bb467","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr2TF/hocvq4bvxEABDNJZTuXETp016sV6x6jEaVDxq7CXeLEsALd726iy6HD/AjvhNWtfvM+pNGIOr3MtGsmShqUs2Ph/UimQc7nuseOXYAcTbNLarWG8aCYo82Qp5Jp90iOt2SeIayRP/BM39f22mVtE3wa7qPLDwqftMMRPOTcjMZG3ZSR3iqdBTVZYQksHnsWFMIYcm39lZOp1nna3SCJ32VGTBXbdlzXacvc1L44eh9gSZp3AFYHWEil9MOAv4VJVh0qGluZzxHG0xbqVEdhFmEOo2lvcTF9sZm6J0ZNmJSggzAUHbMkMYZhmSs6yHXrm3YyAdS7L5ItykETbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456z15gl_e2etest","name":"fv-az456z15gl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e6b7be1c-3fa4-4390-a4e9-2038428cf577","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24002","status":"Disconnected","lastStatusChange":"2019-09-24T16:18:52.6064702","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a9613c14-f7bd-4869-ab02-6603b0b5e478","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt93kf4JKh1LBd4TN0pjMmCQZGUuxU7TbYnXyeXyFh5s0sN8/DP+W1NwcvchRcMjVrBUdy434sevEqli2Tmw9tZe6Bj0DURtkjpQAuDUD2UOugi5XPN0x3byChokxnzMlnpszBNhQ8N4ooTbGZBqKG3EpNdhVbH4y9wgAfm/YxcFz+zfRLAMzylZ7ApxxBmiP/+xvEYI6ta1+sPuEQFpM2/jnIMU7n/rwIhJBEDbWDqgj5RcKMBUcpIgfLtySmW5x4zHl4cnFkrVAvFPc69rTlNk4YlI405PiNJmOyyGA09zEhDoZw86jOrhlrJcmhDDpHDGUHB3+SgjwC9KcWVTDiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.01002","name":"0.3.1910.01002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f92c722a-a16b-4295-8bd7-f971df135784","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01002","status":"Disconnected","lastStatusChange":"2019-10-01T18:21:20.4790587","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9b0ab4b9-23c7-4231-ba65-fcff4059bdbb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArI7Mmri57j8AAcICAhhJ44fabDlvbAaFgA2saeZ32ReriRuloLW8Z0ervDyt6oWbGfv2mx9ydz/sy+9pA8eQ52RESXLDd07ZdCUsLt11UN6Mor8iZbasV5+TDL+jYcSWiNCqxQEAjy+5R5afM2895ZtNM8pa2IkwJKvzpGp8A9Cz0ONyeTZ4fa5TOIkR869h6dYlNR4pSQ16xHhay+sEW9mI4JFDaRRseLG1onkijT4W4W/wQO6POszVZ7gRQSTjuU8STi0uw0kqCyiY+CVyliJMON6YkEaVAFeOqBRYIogneodZ8lmGTxxdlXHXDNuCtIvYcWOgwrSHo6EtHY7ajQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.23005","name":"0.1.1908.23005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9b327924-6d85-4d44-9cb8-3eeff6242a2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23005","status":"Disconnected","lastStatusChange":"2019-08-23T20:38:04.2829048","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"43613b65-9ae7-48c8-bfa3-b9252125cd94","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5m3lSKzam6zbVcnnsh0P6N7B7oDHFXVuDdoerTgY9K687oNcqrrraGZfBjjU82ASRoeQ6s//h/B5AnsnLWw51x5ojGF/D/PxRYPmb0VpSVp1kHF6H1LgyzS8U+4wkM1xYxh+Jy7anZNa9S75BP2KBEnkylyKsErSGzgsiQj5ApsW4BZHQMc6A9VRGq/7paoCJbOkuL2io5NXLNPam+hXKk12qzqP3M9s3CUVogCGBpbBIT49AKlHoYJk+mFbL2hPkYp+PjKv3nx4OF3jlHAxbFfZOcnfrQyVyxDulYQzUdDWnDrTb1RbGiw9EYM9EVLdqiM7iQpJRctT3ArVm1y1wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45606duh_e2etest","name":"fv-az45606duh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9590a4c6-b035-49f4-97cb-a2dc909a6da7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21012","status":"Disconnected","lastStatusChange":"2019-08-21T22:56:15.2400824","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ca062d48-d9ce-426f-8485-1ba2c0897047","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6l/JUIzlGu5JKOJDqqhyvVzADePfMKepsxw0LIyseOkUOUiqCDHAheQMmwgWFyjzo8t2DTlNgp0TOGBe8/ajwXMrGNm1ncLRJxFrtz3kZLyBO5jC+CzI+FWyuh8/93f4lPtTVP933b2Y0LOvT4W+Ggbo0Q5D49kK79TCaVDVk6hnTXA9WPOuysx4nTbiOaGQLRiFGL8zaxF5woP/GPiM/Bb6QFISdxFD9lINRLtza3PHNFXZZjsNK+vrYzIFHNR6h/G0vCv2B2x6ARFuBvG1qmt/a2b9kXdieSAoZ9Ke/K7IrI2uk4DPPitSHlBD5gimlXqKQRblii/Gr6KDBz5mFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600lgptu_e2etest","name":"fv-az600lgptu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e89cfc8c-2345-422a-ab13-4123dccf1822","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21005","status":"Disconnected","lastStatusChange":"2019-10-21T23:06:26.4058752","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"c18b030e-6823-4165-afb5-6e2bfcc5f5b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArcAOM0IZONTSOO0/9CsGz1VArDgbU64hgAhr1g08YZr3Qa5MNtH7cSDOWvTxWnymWTi2TixeIQQAl9l/RDQolFMBaIi9rUI2ONYDxokigEWal1kA1uxd+mVlhV9so+Tn0Naaa2ZhuekhPjxgIXFiQAhWZjPJlIK7cGQP3Pu0Jz8vC+r5IuEpAQDfQvyXetiAJM1744izO1YsZQDo9kmIkBfw04N4LVIu9tYXeASk+HMLyD3h/mPB4SRYVtknDHgQWej234Zh4zIHil+k943dLDl6Ey2oB+T33hPP4PukR8jUaMJgmOlR+biX792vqTc7dg7O13votHjaADAUKCo84wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.27001","name":"0.1.1908.27001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"76e2cb36-7312-4664-81c2-7c7255eb5c26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27001","status":"Disconnected","lastStatusChange":"2019-08-27T18:13:16.8550668","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ccb06ca1-1ba7-424e-91cc-e734f680f8ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2vqemjbMguyu4ljJ9ZiCy2olAccwbUT2irNDUcjZe1NaLtoxpH+DhLsoXf/gvY4EjTrx4FrANvktvKPbTHgil22dI5Kp9B/3Foqm7ZhqrH6h/0fm7+WGrt9VUPlQRoCVv+Sc92E9gL+n+bmhtfFZ+JouzSdiaZnhLQANTl1ZPOJf0kRCrDUvCEtEZ5j/+YW1CVa/ypAwrbC9bIMAly9d/AnQPkp8gLmi6KciSS4zM6wiCAeoU4Bkf/3bVxsqpzQro95IdE7qRH7WAAz1tDAlmoedZgw74V0UDHvO/yXhtsVcokfPxgDCdCg00VbbcGbOEzffzzZIwAbrlPWv/rQszwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456zg4on_e2etest","name":"fv-az456zg4on_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"41142873-c5a9-4e7f-a387-7d8e57243091","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16002","status":"Disconnected","lastStatusChange":"2019-08-16T23:51:13.5547803","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cb5cf89f-501a-4971-bd09-12a80dccf37b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsuDF0o3SnU77JdExihy/nRFtSFt3Q2byBYQPOvjYMPhXCPG/qgvfAwe9effrfrD3uZ2csXbOLHPGBJlAXsW4u5WghPC/zA5kOg/ux3ALiX/W2PSsfKTRnnbgZaZJ33jV9bUbHvutO6mRmBvPEYK3k14AKGkPU99N78rTSJdreabU4BmOScTmP6pa5CIDa6zSuXe/kCQq4fXz7zW/NMg4JGidmQ2nHw2aXx+JOQ8BoF+DHccHztDxrLl14jMzn0w9AvPoQ6r7Q29hppL40blMzQXMggBrXZKaYZ0TOxJ8h8ILi27rZvs6IbIrvLQbsvZbDsnLBsoig/5Fwv9uTcgPowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600os0t9_e2etest","name":"fv-az600os0t9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"910cc5b3-c35f-4e2c-82fe-947d3632abd1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23001","status":"Disconnected","lastStatusChange":"2019-10-23T16:56:31.0095091","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"94e0bff2-fe8f-4846-918d-f9ba49a64f75","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAodY7RNW9aTYb8UcBqlNsvpZWWd4EHc/CThKLs640Qz4Y5x04YnvsiT6hmyozp1cYedIGHzfzkMLjrLEA4Ap+rjjEf/GDyWFcZ8BZgMlmi90+Yf4WsNXbXTzyzbGMHRaHJAINzXAB16Sms57v448ic3CyBxvTruwirZbl3aZI0QXvikRdjdRdoYFCrR7tW1rZiNzPeerMaJzcFzGklvcRI0XrwSsrauEbtNeGZBWzqk8+VMIOp/f8lnGu7mmH7vU5fU/94gPge53DarAor1H5M2xaK3miNG63is9k1PiD8TTWs9HZrSMOyYR+rzOBgBlpcXAoeKDTttO4QhIjkTsp3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.27002","name":"0.1.1908.27002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f322ef59-6d1b-4f4b-bb91-d5327ef78014","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27002","status":"Disconnected","lastStatusChange":"2019-08-27T18:18:17.1760035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9f0dd74f-b5fc-4cd1-be06-95fb5da230a4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApf+xYnlTn0JvnVJrYQN08FLH90YZYEAzIe+Vaa/vHDFm7R0bdTuPuVEI/CoQElPbvM6ycKPr/OVS+twtE8SHVXjd9HBRo6uBxad0Pz9N7GEUTTOo8BGo5xsUuOJ34YCzGsaji1BAShJZR7tBRj/EqDjvywZva3K/l7DOBVclsLL2rBsrtAquFVjiApZo5yVcFsU5J1LbsiKflibdz6jrwVPjxkUddHP4m8lta+4ztTUdHwOPg7VGWrYEvAN8pcqARHEszFmKsY+6NYLeSPz3sQ6iYnpvVcQSQPCzC8M62w/7/PGNyUhMuGZgxzWNWK7UqNNKOkJmooxfKAoSYN3NFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4612kwnl_e2etest","name":"fv-az4612kwnl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a16f2e0c-a066-40a3-bb98-f619719651dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07004","status":"Disconnected","lastStatusChange":"2019-08-07T21:02:29.5866825","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f3e061a8-6ed8-4280-b0e2-fa702e07dcff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsFIt8+0lUx6YkKE304MVhxbBpZ6+uMvq/DF2YvjVlk0F0lUGmHAt0rpDXtvfLkUU+nBHESzBplq8DB78AW62AOqDPU8BbDAZmOQDq0frGCWktnw5UpkXdiTkL0szs0wwyY60qIVFXLDHYymVANMcQBFmrAzc0mPZq31REb49lh+S62lDBfqlGT2gMijxiLtJjd24FPOkkrEzZbo7ktuuW0i3P5TIm0FNr71SlOeloVCJaIZGhaEJgujzJHU2G99MZsGsTJ8GMe0af59ROkMNIgwl5kese6H5hKMOTBYG/TGcWoipH/7BnPemvUnImnHzMMuBkA7XrXie4Hs6RSxYmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.27003","name":"0.1.1908.27003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a0d2378c-97b0-4d37-8245-37f68901fcbd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27003","status":"Disconnected","lastStatusChange":"2019-08-27T18:23:17.2983813","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e1a94693-0720-4257-8ef8-7de918293436","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtHF5kQu9fgFIAO4whIC0OTOaK0zMkbtgTABP1jt/X6qBe77cWE4AjqlsM/5m1KcsrJitiVXnX7STjjtXwrmODigq1DY4WUsvMehyczhxdOP2Ejz1VJNm+BwESria8dwI3HD6OThI3LTnGRqU18fm72p1gOLOENe4rNTPPHlJ6gfI8t2UW17uhWjX/4Ct4wZyopp5UVKrU6k0d8iFMxicdwqX7edPyxI51DPBPuvEiV79BGBZB0/nxdeOxq+VR0fi5SKCwoCTAdf2sMZCPnw7pr+1FZNmPZfgW/kpZOSlsyVbQ2n34yFxzUNTuUT3tTXzDUR4N1HXjugiz/wvmjm5vQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600tx1le_e2etest","name":"fv-az600tx1le_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f88d6bcc-8f1b-4b23-afa4-ec5c37cd135e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17008","status":"Disconnected","lastStatusChange":"2019-10-17T20:43:20.9250234","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"4b5f5ba3-5372-4259-82e9-191884dc56ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA28GIGLmo5erJuN45+S1woWlz+KoqHVZaO92C+0hT+MpV2MXeFAqqfi9pPAM+odcvhCIideSppLtUzZRw7NjZsvcjdC2i/vz2x8NWsJrIhBjp1W96xa9dlYoYOReuFc2nNyja8xbGqYUkj+uDujVDaR6mAeOAzlqS21dz5Ph2L1AsThLZm7b1I/GMrYLACftwIKMV9kljf9JWzIz9+9g2yLctML4/fovrbnLevjub/LWl2ZXKI54UXJwWjzbccclZqfolJYdymmDBS4wL4DfrC5CKq/niZlNQWxXzYQZkZmuj7MB6IkXrsYhaR2fg2koiMaXxmmuybE0BHvZi7OiJtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456i3vld_e2etest","name":"fv-az456i3vld_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f95b45d1-8a2c-4b96-9168-3cacee1850ba","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16013","status":"Disconnected","lastStatusChange":"2019-09-16T22:00:03.9367476","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"37ab8ce2-cae1-4b5d-b2ad-df52de0a0a0c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvrzlEvsZqIlXfl8yPZE26xn0TEdTfoYu6jqtuV2Z7Vvn16mVmb9JAbzumpW1rq4KowWmpdiyKu7TUkE6nWPVYfkfvacfUeIb+0FMrA+QyIlyvx8Fdw710ueiLZlbCbQOhF3ATJJzoj6eJskmuuFf9qKpvLE1A78FkP+t3EXr28wcuHkhII2yXpCae4ESLnCuBcvFtmSN2b3bkshZwSpp+HPdwyzli9g4gReFrhTEjjPOdKI3jcSmCksdA17K/0WW1aJDs+xDAoNburKjP3tR34ttXVhTYvzclkRdtdIhJiU1F4/EbqlUfj27O5T3mbfh43IlVK9ybhXaUQxE7WJCRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45606ny9_e2etest","name":"fv-az45606ny9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"45aa5b32-7290-49b9-9be6-5d8f185b0661","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25001","status":"Disconnected","lastStatusChange":"2019-09-25T22:14:04.0472897","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e1639a3d-33ba-4120-88af-8de9ad745145","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqLmDFeauBfPyZoQ8CefNgcDGgdyBr3RtOs2nBm+kW47pEUkoM/QtXkNM2cHItHA0GKtC0/Ex9tn82NSfx1HQEJOTNWAC4xpo60xLCml6OS0ahjJFLT01NO0P3+ZYowjzk9YBA/tLSsQ/ZI/IQCgjhK9dHRPvveK+TA2grXpGayRjpp+06guOBeIA3XrydP4FPp1Up+2CcH56LCeMvPUfzCe2psV1vEMRLibQa7h+8W4l7aGiz/zZfxVHX/JrIexTSixATK1ajjb7Exo+qo+eUXfV9KxuL604Uqtg3ICKcsSSs/+mOIKhS350NXbYh7XroEkmoBu4LeRjnpHsGc3fkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az600vrpmk_e2etest","name":"fv-az600vrpmk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"81097a71-7042-4929-9b07-3e97aac272de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17004","status":"Disconnected","lastStatusChange":"2019-10-17T16:53:18.7655273","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"57513f6a-bce2-45e8-a28e-276168cc6c90","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr2mYFoCKcJITZ+nvbHzeyng7TOKRVbFPiYV25kqXqBjQnCOfU8l7DDI7cB774VQw9UtVhUMv/KOyOvgA2lCkE5b+Gc5m8XpWfMnmCTaoZCIMomYwFK0DOIU5hetGyRIqXkORHfjXfqfWakHrTRQKT2BlbziPxJ/u/CqPZ1XlN4uN702iez7s/dd1WxjSVxZ6DLHM1pPxW3AtxgcI8HODX68N75PIL36d/v8UtGsijk7InpL82FfOpetIK5GD+TxTh+Fskg4GWoEXexf7f/gAXqrszHPUbvKDF9EOn2nTMyl33a1gEWHdqlOjh60FG98lTY64vBRahkpRn2unYHnJdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45607uk2_e2etest","name":"fv-az45607uk2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9de9165-bff3-4208-8c66-5b37448682d2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17008","status":"Disconnected","lastStatusChange":"2019-09-17T19:19:34.6307992","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5c629f0f-58f2-4604-9386-5d1ec6f63a25","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApFALDmFVZiCfC1GDyTsi2LPK39CCa+xrJEgaK4bykcySwJelLJwXeRrUbp/PoVrrmBM/oviF2S/9WLcZPmFARzgTfazo9EHQtJdI6Z6FUjw+ZTzvw1eXn/2LMacGpf+2a4FcpNT8Ap8K01E5zPUwAEF44rDdU+CxNvNqp3QFgQHm6ISY/o1kgFMSIFwddHwCZ1J7b04VDfMb7XVux3XM45s+b7CIxjCQ1phHDbiGJPhn5z0NSecLCkykk/Y+hMI5Vq3J+eYdfxOaxvUaZaBI2l8ni7NIGJm60RXLw4U099g2useiMND2Q8IOYFWHJfJwzEx1cyWCaeXg3uZ3Ok/xiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4612prsb_e2etest","name":"fv-az4612prsb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"47f311b5-39fe-402e-a304-626bb2c6c83e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21002","status":"Disconnected","lastStatusChange":"2019-08-21T18:36:13.0966468","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"da0f448a-0562-492a-8689-c832266e54df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAprcrf33zmhaapaFikSUBMKCpxv9OROZOxgSTuizRSF3g5gtTDLLxT/YpzPeyy/bWgXtN/LF98GFQQoopZu/ed4BGEOC3GTrjLMJnshL0BCvB9MnUqEAVuF8EDZ8LAdcbrUeliMXwx+MJQ3Fh8lSse0fGRTuICONIMBNfU6ou6Adtx/9FoGdDwkmYdonE7P4eCfmuAuluxqu4fiyyMXjsYDidN6qM7PwD93vFErfgWgWjw/sj2s6sMa94Sb/AmG+hlz80o0bmUs2UKIBMZK09krRzRltrTfDujmSudA/LbEW2M3EBgWQWRKkVmTXECtPQGLBTrSmU4H3DP3on0oWgwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4560keql_e2etest","name":"fv-az4560keql_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dc8b0083-00e1-4125-b91b-e5f15b2dcaec","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22008","status":"Disconnected","lastStatusChange":"2019-07-23T00:10:21.4719415","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d8bb4c04-6e18-46b4-b89c-e50b8a8f6b68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2zv4UDnehKsehbRG0jX1HxlW+mNuxSxpbHLVpWgHaUyTKyWd1tNXwGqDFidx88djwX0cJETpDwAyaPFMBNF1/4Ay3EdFnKXVTuIel3gEAkGKVvTYxvmETuh2P037HbJFskDM7n58FtumocjAi1OZ0He6aWpIXWUh4MbWd5f70l2ielW0Q6qz/3Ary1b8XLJXkHa2qjuzCm0WgfJWkt4giAs+2vQAWRQR6bmHeEqyFJdkhedoZmagmrJ2AsvSqZnj1b5j2n4NSNYAZQGbUqVl2xeOLqgjH3+p4claw12U7RvkwJUw7PF18I331i35FV/DuJOjIQUO8y9jEKT4BMQaBwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456i54ml_e2etest","name":"fv-az456i54ml_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"909bc677-286b-4270-9d25-c60aca282e4f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24005","status":"Disconnected","lastStatusChange":"2019-10-24T22:15:51.3478374","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"00dc16d9-933f-4a0e-8ece-2523755f0706","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvGr8qF7rqSkzX8sKVa7jV21MSNdENbJEoAB+CLCEX2QbcGUf1B6Kp3iFim/JZzouMzoBi4k3I1zsZD8czH/S6d/ePj+S7d3iBLfF5Q2s6X33fwF/ZiMJLZioDMyTEJvfjxzgEc32R3zevqGqXSuH+01w5tue4PPiLBI43kierIAh38Q56ZvR/LmdCljIeGGUaY74MH+WFOTdFvfnmI+DA9h74T/ZE2oGu6VRvbjr23UAHH0jXQEw9cST+RzrCwmVNyUSaBwzqKhFCX+0XjBzqNrtoXMNflIaFL0/G6gDv9fz6w4MP8UrZFmqzl1/HRnhUf3KQWqFfOA3UYeupsOJ3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456zhq51_e2etest","name":"fv-az456zhq51_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1a9961b8-1031-4d24-9632-112f2ebacb2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10006","status":"Disconnected","lastStatusChange":"2019-09-10T22:42:56.2232882","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fff5662d-c499-4f64-a393-e8ed2c158b7d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyr60Fha4cGv/j94rade76cLWikb/hO6/P5CWJz6ebwwe008fA9QTdPtOyTXzLDRTgVll6KDoMI/fJ2EL6Rm2IM05RIuPE8AmxBOb7003zeCA97Jm+CI2N0OkvQfPDYTo5POJaUG+e3qWlBYUAXlnzQuTE3zr3ToQp/C84J/+AqqEjaGSdjfVO7XfXLfSYltJ9KrkozTgVd0O0Sz3POg6Yn8rr/HMu5uwolcMovM0SVB52QaMo7GEK5W8b/r9y1WZKslJEH1uYcNBhkL2cq6zcgzAkruVG8c/Bj48oNjnJQ8VYjhFZiwb5fydEDn9Of8O96Cr2AWh5//fIofYF9e/JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.27004","name":"0.1.1908.27004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0d6bfec0-b0a7-4938-b14d-f74418b21fba","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27004","status":"Disconnected","lastStatusChange":"2019-08-27T18:48:17.5301339","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1b4b6ecf-a8ff-4695-b937-173c20465464","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyF0qguX/4jnMAevx2V6VFoQQZ/onbksQ3JCZ7QSd0LVmgZH72rx8SE9ZK2vhuhohcBDkBXJuamByJKh4MRTbJxVk/xrx5yktRniw1FsLVo9Eeyq237d1HRX4S8NKH2olO1zebEOBaCPHW185ZawrgXyQyOZlztnVLSqIQXHx3muJ5N+qrHQXQv9lSzOIrzr71oYXfvVHRTGQfAs9Yi8djnSBgXpEK86im/JmDyvtf+ICCps1t6A/BI84OCfJW6uhMDk1SVKrBCkYAuVDc6ePaeE0vXOyxutfxlNXu5sfE3HqgDVCMBpk56Rpjq72vdaLI3XhJfFxoCQ4WNLjAlD0QwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6015w1np_e2etest","name":"fv-az6015w1np_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e54de04f-cc90-47b7-9fe2-373a0c3a5d47","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.15001","status":"Disconnected","lastStatusChange":"2019-10-15T19:46:20.1802967","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az601"},"vmId":"6e2ff775-5f5b-418f-93eb-8095e1375bd6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArWRogrW+mf2OMpl5lP9+v70rM7Ad3KGe/8+ZwFvFljYjmykb/G1D3g5emVskFb0q8F7ZE18PqJEUEOxETSTGYsCiBS60q7doL6v0C32oe7WUEobz0BSxymiWXNR5FwA7luZEzT9gqdh357bG48UkVoOUhjxwx4MYhpjRGjHvqH2EykTlxz/uWZFkmvxJxuLdwMpvP2XgJ71PMygE/ejORt37/NMv7GBD5RGl1tfBAOcWKi3LrR2mHjnlTwwc0Ad5ROl2vOSqXi+tQ9CTlBGjCTzCgehYP/YSL9sWQr0+OgQt9ORQGu1y7ck6bc71VioWMINPrAMKs9ApX8mqjMnswQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46139dsk_e2etest","name":"fv-az46139dsk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5fdb987a-0871-4de8-ad54-891bba579311","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22009","status":"Disconnected","lastStatusChange":"2019-10-22T17:51:34.2694146","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"403998f2-a83b-4680-bdb0-838cb7e1c5fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0ghjP/Y96Sfr9lguK4mUSpvRg41zHoiu8Fk1ZxT0R5pacs/4zysYcf2RX+bthYSlpxYnet/h9ahb2iQHpqLsWnpbOXzz0vqOxEgqmanx5Jj/VpPrZRsAc9i3Of4ML5z2A92DhzaSVN+tIV/ywkhX5kUGrQkSQyxvChGRgfEqTOycboTaJP/ka0wbck0xi2n7zTnJV3YUAe3vfA2VCz4xQs11Ts+AkuofRF4LYT4HXAxrr0W8Y5quBvKe/oH2M1cjXObENtupPWfAg3c9sd7UokQQwh41gHnJiptUp9qvBQ0B5G1cDm0c6/icWLGS0T2FDqYslCdC7tiVXqf0GhkJ9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4560rwxc_e2etest","name":"fv-az4560rwxc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9dfbc7a2-309b-4b6c-a4e5-71b8fd99ce49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24009","status":"Disconnected","lastStatusChange":"2019-07-24T22:05:35.9872965","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"da4dcfe5-33be-47e1-b91f-6ee11ed807e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA76uylddVeWQWLXfFmp0ouIzCZxTnk43s/3c0bBoXdJoWROIwiTL6cd58uKZkfTxcvmprKYnqRBIRgi8YjjodN/OPUH5knFjXwMucRdvxAfB4Ya1/Lf0a8SwsokFllJh6wps9R7un7s7EaDvBCTrEcImDXwqmDJxMyNURj1/vVfixncY30oPK2PBEICAfJcAWW8ZC7lkbTfdhtHutqN+X0kKUmevuwdYfbK4gFi3K1cy8eAXaOwy1Ln3I+4zwKxZaHxz4LqXIDJiSqSf+LBPnX/h5lxdu2Tq+BduQp0KjLb3ibqwv5rMuocgcZgI1sXDydC2tNrmm1o8W5/flWAzhoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.28001","name":"0.1.1908.28001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aa2b0313-dea3-4fd8-b489-9cd409d3f341","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.28001","status":"Disconnected","lastStatusChange":"2019-08-28T18:58:24.6933046","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"03541806-875d-49bd-85e9-d88812157059","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0CfX3SfbMaJ24a26f50nHtRTBMxdaAJZUEjbmNT3SBeFu4uDk3lfiuTYN2w9EUNp2HRkWhI8U1tK270zrWCRhw4yIUpj49AahxISqGhTRuLzyrpibekFwnNI2Axjlmw4eC+210Emcc5uPdzBuhmGdqbZGsTIyZWBEY73gevK13s+mQ5Z9124zBD1UhN7BQWDOrn0X4UTQmpMd+navG6SIUQeKfer3ZPazZIDa2ZrP+CFNWGJzq1xzIwK0aASUJz+In4eqIotnzhDsGRhfx73LKE2znM1I4hJUTnAQ60Ajnpzdkyl8lCbIUAHKITbmG9lhMsnDOZGMNIqD+25sdbb7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4561ax2d_e2etest","name":"fv-az4561ax2d_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e2469112-cf38-4297-a512-20d75795f5a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18011","status":"Disconnected","lastStatusChange":"2019-10-18T21:43:45.1611942","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"587f2025-568a-4b74-a353-dc287b5c3fc8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz5kDuyXiCcO4UI2rf6htzbbUWujU8bK7/aQS/g+PCkAKaBYZcVtyXMMvMvu48mb4ikp4e4YY6Ud5s1QtgM+NumpeGnQ5jzrgLh7SBfxyqpeRugpc8S5/6Fk1cBp7fP0ecNYsPcidp/LEAqIZ36YGgkjTqQyu6kgf8tg9fH1EBs+Mw5qzIleZ3H5Vi2i73NbMMEJBW7Xznvd6oZEO8fs+OeYJyhXAaSFJvrCiAzLMBLuFM18VwqQKXWifpImo56jeZzmx1F/xKxQAcADt04Jgmwmm3stwnilKTd0Lg++VqUTkaNtiptkuDiNqmS/Ir20Sts9sYjlkEsuuM3IAGRTn+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.28002","name":"0.1.1908.28002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53ece33b-bb74-474c-adbf-6caf6753269c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.28002","status":"Disconnected","lastStatusChange":"2019-08-28T21:26:48.6790284","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"41ab9f8f-7e10-43ad-b045-07015d8892bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArZYDQo59kMGvUCfbS4fPX5ye/T/5qd/7p6vwO5JNzgykl7Pwkh6ASKz8l62awu94ysu3gp3GaImq8xNBZnU1FZja2xoE8Q3NrvodZLxQBj08Ke97JHPA8z0WKpsc6IEBtawRBDyYd/c+jaJQc5phpixdoMPTfDsmw56lFdJAcLE86mL/iO8HEKA2KHFCAXYIIKvi5FXZs0BbUfJnSos1T/k21vobA58aiT8+CCKtqhex2fdhxrFmNVaPkIYrQZXVU4gKN7uFa9hI15lu8Ge0wKN3GQt7HCHg6zUthf1CyO1Zo9OFe9n3uWl5vfDwQdC/buA3n58DrgJ1pyofuPpRIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461wul9o_e2etest","name":"fv-az461wul9o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"64ed55d4-2734-40ec-98e6-39143c6cb50f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22006","status":"Disconnected","lastStatusChange":"2019-10-22T16:36:33.5344057","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"6d0325a8-980d-4ec9-9d02-9430f13299de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArWuoCmdl0T5KMLkvWzuDSV7JwR9h+69mguzSSjDnjeSkvPl3v+KMHTqkSfrYffElJaArrp16tj6psAZ1xQFW+QuhRFhwK0ZmzOtkB13yYQkowVaDiqjHkB6k+Y9TW8FXxFIc0T8XKo+v56SLhNiGjibE+VBIiYkUhMD7nrUc/QOm/fUloLU9SYWBQ8ALV6FLDqwAB8T+JROXaQ65qdU+Yknij6wzTxv5AZXK2kqU8ffuzwc66YZ2WUyJUhOHyA9R7pbLli2grvQNaFCkHO1YWdQFdHGhsNfGoO9BlzTsZkoIK/I09Oz74bOt2ktRiXg43pY+R28oc03IkvyKuTVGeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4613cv0i_e2etest","name":"fv-az4613cv0i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"03e55c75-7155-4e17-8d7a-330b94d4d6b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26027","status":"Disconnected","lastStatusChange":"2019-07-26T20:50:53.1701887","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"42ceb7f6-681c-4c80-95dd-aca4ce8371d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlmu1C916nc6z1aHqGKQL0wuvCrlTb62w3s2WPayi95E+/RQ4J4Mf41gP4eiiKzStCrNIo99r0FQ8GoA2pP1ZfdTymlMt47rsatCC27Fwg2XKywIS9dM2NdIuYoTL8/lDFRhzw6au+HRlWbdpJNdGByKrI/gigQ/FLelE83VEBdmZ0mBTntS7shiMQe/vCy8oED7HYLu5V+ok8Tn4mBwWf7rQYEEBGdigPQjjpoctTsh1QH0dOFSJN5jMRs8DM9xdOvhL9YmFeY5qDLNnjOXG03vb1nDpwJvsRB5oIt4q1r1XDc9xJff5AR+agLZBbbZy52bSe0ks/2Wh+1SNzqeMrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.01003","name":"0.3.1910.01003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7901897a-4505-401e-8749-d46bee32a3b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01003","status":"Disconnected","lastStatusChange":"2019-10-01T18:56:20.7261168","errorDetails":[],"displayName":"fv-az408","machineFqdn":"fv-az408","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az408"},"vmId":"3781f838-9a50-4858-829f-32a1a87d2213","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt+UpbmFmLQkfw6DHj8Dmwmu5cdX21IHMAk7I0dSdaJ8d98HUUlSbIm6+yzsQIxdO5+lrqO1ipqwcoIkNeQnA/F8I+c13Fe8I8RdQqsFG8IQwzTVIoSOjWNj8/QIYA0c/YeSKG/d314mKaCpANeUbFymcsbE9vyxRtjIFC3M+fVAEWPyCjZWmFZEqM2uAS2eVtj5cHu3rlVhPy5izxh3DR9KhCk9uiUMRKJ6m9bYBMJR8XAve10NOn5EBRAEq2MVKjSkHPBa9OPOEGOCfsR+rtgyqhFG271/VDo4G1yZEyEeArXxycSJ8yFBuqpelIdiIiphO4cg3gDv4A7+YkrJBMwIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0din0RADgUSqpsOY1kuTBhI2td8IcYyVghGQl7XqfvuOZJ2KLO7u8XMvvudtUIlz96CqfTuYvg0YrNbpirAUloPpoOi6up0Oh2VWZVKUoupustdDI25yXQ7bw6bNG1V3SlftcOMKx3P83NyNJ5npjL3c9D1nYgqym%2bR%2bvrW3G2tYN%2fqotqJph3OVN7rVu%2b7m%2fvemUVuqy%2frQCeyUF6oS7fesVuYRmVj8llijiWn5pkXMuhFHJU5fv7R7Va%2f1XlS3hhsYXmAQ0vUhWsOG%2fk%2bChIfo%2fzmDXMA8E6%2b2O1%2bsOFw%2fw8bL0CB2skbSCPn2OqEX17Iw4KufGPQwZ4%2fojV3XHmMULXsSyDuunooWGBvBkibxbmKQ6N6B4MQk5TFwn0U4RoRnlMRLNJ5MsV0PtJcbTAjO8eMV0mm4Q8%2f5yNlec3b8kmOfZwBPEMoArQ8hQIAdYCNhAyk%2bJ%2bBA0cg4%2bqWZhmdgoBQUFBSi6QujKwskggF%2fSSFiYQzpWBJ%2bB1RSoDhHXzUBVkQQQAGzgLMYNKcxBsiI9ayYo4vrJNHp86S2vwJAFNcfeX4RL%2f3lM2AqdutLA2WgA6wMNP7hwELCx9bJN5SoySop%2fgl2UbBUn%2fW7cMrs%2fF%2fSCJdHDC%2fsjxsO3t%2f%2fAg%3d%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '116679' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:49 GMT + - Tue, 15 Sep 2020 00:35:19 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - f43b4112-d5c9-4164-9e94-a1e96a2ca252 status: code: 200 message: OK @@ -1567,44 +2766,49 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0din0RADgUSqpsOY1kuTBhI2td8IcYyVghGQl7XqfvuOZJ2KLO7u8XMvvudtUIlz96CqfTuYvg0YrNbpirAUloPpoOi6up0Oh2VWZVKUoupustdDI25yXQ7bw6bNG1V3SlftcOMKx3P83NyNJ5npjL3c9D1nYgqym%2BR%2BvrW3G2tYN%2FqotqJph3OVN7rVu%2B7m%2FvemUVuqy%2FrQCeyUF6oS7fesVuYRmVj8llijiWn5pkXMuhFHJU5fv7R7Va%2F1XlS3hhsYXmAQ0vUhWsOG%2Fk%2BChIfo%2FzmDXMA8E6%2B2O1%2BsOFw%2Fw8bL0CB2skbSCPn2OqEX17Iw4KufGPQwZ4%2FojV3XHmMULXsSyDuunooWGBvBkibxbmKQ6N6B4MQk5TFwn0U4RoRnlMRLNJ5MsV0PtJcbTAjO8eMV0mm4Q8%2F5yNlec3b8kmOfZwBPEMoArQ8hQIAdYCNhAyk%2BJ%2BBA0cg4%2BqWZhmdgoBQUFBSi6QujKwskggF%2FSSFiYQzpWBJ%2BB1RSoDhHXzUBVkQQQAGzgLMYNKcxBsiI9ayYo4vrJNHp86S2vwJAFNcfeX4RL%2F3lM2AqdutLA2WgA6wMNP7hwELCx9bJN5SoySop%2Fgl2UbBUn%2FW7cMrs%2FF%2FSCJdHDC%2FsjxsO3t%2F%2FAg%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461xe0pt_e2etest","name":"fv-az461xe0pt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"de1b1ee4-06b1-4241-ba78-694a6b9ae9a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23012","status":"Disconnected","lastStatusChange":"2019-07-23T23:10:28.5271269","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"8d7570f5-9623-4615-a347-437ab385da52","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1omdcaP3iY9Rvfps94nJUfYWAZ0KAghefmi0FWs8eFd7HdGUdjWIKHM4yiDeYH4WJBbs7GbW2o2+Ggmzzc2JjSyndVuAhizu1sHik4zO7Y+wd/Ppd/RYl2kgBoPJt/IVAjhxdG1QhFSYqVoTu0mlkG8QM/sURKzQvSfRM+rjD8g/ERpcFmDZcpLJLOEXqbfK4HDIPsJiLLowYPd7wV+xGHBlJgwz4LeYxN8ZljTwHvYI4mbI5jpMhsCMRqW9xB206XHZR26b66TXWr/KiHQsdSdzCETaDwLY7jpSczEWramUSrbj+A7JxRp4eIL1ZBObplzR3tPqP5j1AOMbf7YnKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456zmg26_e2etest","name":"fv-az456zmg26_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"076c87f7-b3cd-4377-aed1-07a44571681d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21003","status":"Disconnected","lastStatusChange":"2019-08-21T18:56:13.352039","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f2ed7669-3b08-490f-b3e7-3477edb3883d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoKKnbBkx9FxrxNRL8p6qT507OI/eBpFopkQ7XJn0ym5dvIORlGbDpfA7o3GsNFk4mqsdj37Va7BjsbnYxdGdSS4GpAIpXYiEetNXcWoHcH5pL3z08bgHneatg/BSsAO80/tlwKmjAWdtd1YtE5GLMOmE54wkjfyEn1FkpH9FN8WB0W7ka3OjJWyVn6Gq+JPRCGGLrEXsngSONt4U6wRAipTFJYqCoJMH2S25ChQgkxaD5WAQpMHVt+O0zxijfw0p1FUFutcEZIyxmCI/ErOk7bRQ/D+4bGWGznjaq5GNnNy/sZ4Z3MXqeH5tExIzsmg1X0L+HJCY6PysC55Y4YrRIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461y3r0m_e2etest","name":"fv-az461y3r0m_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"447e06a1-9e54-4c55-a97d-d48220f2735c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29001","status":"Disconnected","lastStatusChange":"2019-08-29T17:06:56.9064736","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"4d5868c9-56ff-485a-9051-67fd03ed85b3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn2pYRQaEh1pPYAB3X2XRwLFlzRw6N2LjyCuA3PpmaFL+eEIWiRPTZkJesj9f6ih0bZT9odlX21ZS6H4jYP/bTuOFyJJfT1pgRzkRLW5aIeID452NC5ZVBq/X2OLsbOgH1a9WcOaWXdM09xp2goFZkLhyWLUSUfsSbtbj0MHVGzwreog4wmQ8NwBjfUy6hnjMsmwDbHQSV7AXPEQTQls2903Co9yzMNI18rj4alIxWtwyY6BdV/hcuv9E/JLpOwhIBsgwR46XDrA9C023VBJNSeEY5bCUSzLNLWy2t4SjWoMhfXpV055GU8RgC/8x9ATescRWtmpb1TkPYnzaG29qqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4561gw93_e2etest","name":"fv-az4561gw93_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4981bfcd-d67f-417d-b646-8ffde5e6fe08","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23002","status":"Disconnected","lastStatusChange":"2019-07-23T16:30:25.894769","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1471a826-ac80-45b5-b8c0-1f9f52aee55b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8lYznBm5oxCl7Jn8pE0U/Oudyq3ik+wxdqVAwMFQ5kUDYfD1K0FXxej80ZV4ukY/blpTtY/1b1n97p40qyMY8KMEOymo0Ey8MlO7nm3JZMXRwvTWBpwUA+XeOdhY21acKhdWsa5HEe/q6r9UgU1/ZJk6Oi8FSlDNqGACdT07/oPaZG7aFjXKsvKdbtH3NVtMbdOaEQMSm2wCtkyypuqKbFaE0Iv4dsqoCoPMrmPBJbHkNakJp0c6UeeadWAuivxVdNMr4k5S7x1u6uPp8o/1pIgOD9PEXEglqx2eNeDmSH3WSRDdTyV2XQt1szuDfL35IBf8pwzwiSO9cSqVIp0FXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456idtzu_e2etest","name":"fv-az456idtzu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d189d34d-a285-46e4-83d4-f5d355100e78","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26023","status":"Disconnected","lastStatusChange":"2019-07-26T20:35:52.7557392","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"282bb8d8-0b0d-4e56-b39c-6f2b9d582509","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuCUkcfNH4tC8mF7VbM2tgKr+upe1IKT8OKosgSe0fNGn6rXS9MYSFdL9Gjd5fTmkiPVA14ndXFOz+IIMp0rqbgQl+hI7qk8Jk2tnD0Xe6kuOvkOJenP6Wl/4PKLTIkaoh+EHsIrfJ16h9rme7VMZV2uPv3LfpjN4DMr9oKq+pL9tXYejVZVXfWCMjOZ//kPTkl/MxubtBP0F2wsCpFgZEZviVC+DkT4OuUusnip2/LTQ6klPBgGuQWUZzeOPy05PbkjDlZFcJUVigUp0ohGNjJRFzfnFXJHgUtWqxpsZ+nCEDgOzqkG9piyN/JGiCoxM2oa+I6MM1u2np24Z+KWs5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4613g4hb_e2etest","name":"fv-az4613g4hb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"81aa51c2-3e45-4677-94fc-2f623423fdd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18010","status":"Disconnected","lastStatusChange":"2019-10-18T21:43:45.1611942","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"578badff-4305-4d99-896b-a7f6335d0e86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoWGIqDVzc+PRSTZ18rM9b4zlaKzqvOIv/CMOosia3jqaTFRXJHNWEry2/oJp98STHL4b36o6t3nBBXZl/KbcdKk53X5d2qiYLxNIcelepxCoIJCkyQ3T+s0O5sU/H3u/W6mrs2fmG3+PjYzFOTMVH7l40lx91w5r+XYWayzJi8YHxbbJLl88+CoH+jFqSoDk2LKE+PGmsECVZH5ngCxSQqQevXnZwEp4kZEpL7rU713he1efy90e8eBTF5FWDx0hfyl44cTfQqxrqVPbp9ioJDdE3Ab0HuIueQswbN9S+IuU2xF57B5v8bDp/XKMC2LbwA3lJkqBHxv+8Xhzpah4lwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6017rbfu_e2etest","name":"fv-az6017rbfu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e9d3d1c9-0107-4521-b803-1f88ecf83ea6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22023","status":"Disconnected","lastStatusChange":"2019-10-22T23:51:37.0572385","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"4c000a76-1135-4920-9a1f-5b24cb5a56d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwd41v+kMoy00TaqnONEUBiqz0p3kJ8WcQWq29pWKqe7Tu5jfiKt9Dzic8Clp/744v2sToHLXbHa0P9in86TzKSINztrm0rnUeUE1LHT6WXbDkjkIllcLmA/ltwbvvMyhWWVCem7Z27MrsX2YzTBWusrL8EXLdWa5ckD3yqvAlQU5KCJ5uI8WQ2CwxoHt663Ew2Nydtq4hewpJTgkpdJkW7g4EexAOVHhyFKZuUGX15ZQAxvxv9dYjA4CmYi7P9vPE8nDLDfdJo1Ii+Z1iZxKFt7Rgl4t05pFKv/C0ZVyhWhnw1eEa7nTNfXraAdaXEIY5zqa3OAnfkF+lUR2m75iWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29001","name":"0.1.1908.29001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7837b1a3-0f94-4473-b6e7-c28b31557c97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29001","status":"Disconnected","lastStatusChange":"2019-08-29T17:06:56.9064736","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"59c8ddcc-9db0-4eb1-ae29-2157310d588e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9rMjahplVrQoioHYVyQQYO4XOy9o8Ml7hNAGXBYzRUKxX7fNft3GOEaDgN9WGfO8PRH3i+DHDvFehAeR3mU1OmspZjB5ljjha6Np1uSCxF4/CHtzinMgDSJBR9BxYVuuCCmSrYJXRWrAjjjy8okTemCI+0wyRq3Ee6u5wbCfuIP5UIq9yplDm2kcTp0UB8wt9k8mbcIoWHHdQQbc/cp8K5cgSWwitilucxahGJav8B4ARBZ7OeYwmU/XFNkeM5vMnoOhauqDZWoAhzaEUabigDCboE6AB9N8EKRxPPgUNRqdi3WOT28rdq7DUiGVRmUZS8QbcaY6tFRGMnrwI4E/XwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6018okl3_e2etest","name":"fv-az6018okl3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39080e91-e38e-418d-9d5e-2613e3ce25c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22004","status":"Disconnected","lastStatusChange":"2019-10-22T16:46:33.6781833","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"1b18847e-cefa-4bb6-ad62-7074411f9b94","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArkMBOufyEH+AudzUBE3CCcaLNbH3L9eJHSqbhTla49MVkvexmAKJpfZY5SSsGAC+uDeL1AIRSwoilRrUER8pc4YjMfPDbdecV3La3mRFqrbXTDJrdc4agC7wlcTy1lyqxBDtpyS+fe/Ckv4SnBbKrYkpRk9kqboFqGDrdbgZgrdVgDlm1oI/m2+aQv+lPb/YI3CNXfdurHXO51DpzbjRytpSV1B8DOrj8HIoTf0UdUufUrY6eHrI5SxYvB/vRofX2jncO4yczoZFWWiZvltRYIW9SXlKXxYtexChlVEjd0xXKcaHSQzDlH0PFmk0SLtrOHN/UNhcnDIeitB4DaOgOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.02001","name":"0.3.1910.02001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7ca2df41-9b57-4ac3-936f-a108c387eb28","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.02001","status":"Disconnected","lastStatusChange":"2019-10-02T22:24:36.6405636","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"6f8d4b21-9bcf-4700-8e08-ded9fe47b68d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmrF3FPGfgbmJVguWQnGfFsO6PVT5sKNoqhApTXH3Kk3qHDplq0RBDrJU8rHyDOOpMV/mSIO6ZasxhI9mzeaHj7VKUYSU4fbF1JY18v+tX1WNgVPyoOKOe/Fq3S7DkFMyfuVuoWxBfRySwkrWRquKl5DyGk0vLFnWtDpOYlkVA7Ipm49UsEIKI5nSNwVdRwjsbaKQaWl2FvJmJRBFnAx9jSBoNr9/hyq6g48G4XUdThazPbJ7sWsjx5PJfxjTfAjdH+uIxEAOeZb59QXwC2f2aFLjCmXLQpvL/ZGlYEHs84x1VMTwlpla6s0bT4wfY92yeR1NQAg8WajPhFMirlokAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az601auk94_e2etest","name":"fv-az601auk94_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cdb464d9-1197-4fa3-96d1-2e6958f36c1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21003","status":"Disconnected","lastStatusChange":"2019-10-21T21:04:23.866776","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"30c87b5d-fbfe-40e8-85f9-3f841c5452ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuropOzwywYVOxq+LsjRXe1qOhQTbUrapOVGJkOAntjiHGEPBD+L1k2GerdWOj6Q5QBSjOu+J3PECFmEyRZBAFjscrBBnefhAFZS+SNT+A+ss/K/K7u5CjTnOHgWziiWiOTAoHBDX6sNEeL1SvywuhQIS/EhKvWGODEV60hb9d7eaVXavkfkJL5Ths6f0OrrrGeStuZOaL/y5cG8tsrcwPOkLvYUovcjEs7/wttvrMy+nSkuxspKDZ7n5yZFYEgKnL6iuVN3NXoTOh47A0DwbbxgyrZYwm/7JCRrQdnBXpMG3Mi+I+3voFrbwIA2DqeFo0AEdtQwOklSrs0a+nN7jcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4561ox92_e2etest","name":"fv-az4561ox92_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"be5403f7-6b8d-4e18-b018-a08459397941","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14001","status":"Disconnected","lastStatusChange":"2019-08-14T17:27:21.3409795","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2ba35bf1-c816-4bf4-8036-1c289a4a2423","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtkL2pywTqUR2qhVy9B08E1eiJIzw3y5EQXSx4RKQUztQHKFd1xjQq7JY5HFZtCugksxmLzqt47MA7qDDg2XvQhQJi4Lvo3FSSlS0exVB53YUR3OCDOGoE42LEImVErJqwCJ0mvXoP8azjtAN3mTgZdI4seqsn40T2pKN+aylYkDmP7+ZIJC1BtKWSPMpTOJDEH+xRUZBgLGyI7rH5jSmyx0FMlxtYSImyu9VkhgyjWACCIo5nF/XAw0srRxdEw6cFKieRFxa+Z/xOTRA7k/TYfXnqS47k8kN7qUD0VLBLrtZWvydV5dseGetBFFLLnE2bWIkkEBhuRqwQyjVFtz7jwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4613zdp5_e2etest","name":"fv-az4613zdp5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dbe5ef97-cd00-4590-815a-3e5a8bb5bdbc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23002","status":"Disconnected","lastStatusChange":"2019-09-23T21:28:44.9765688","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a3b69e76-3f4b-47b7-9811-fb8d8a9d6b7a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuPPnBS93P5+uEZaRvOp4H0jMJoSUnewS21lSvp2QwQz0bNLxig8uXSHFUpFIsSlicgfWNtOUdwDrcEZYSlGWzXbX7kOqRd9on4fRNeVOAGVM5Mw1IxVushfMF1xsdz9Lu1GiHs69E8AdcW6oRn2M/RCicSxasGp3udKdG5lHxYMldrwHAaGd6NijTQxjyVc9s0G0AScfLjBaBURrbu9FNCYrKd5Q3Gub8hli/Hjd0Bwqrz0xoQI97T8PjJ88QBboDoWtehzvxxhw634dLjdS+MFhbr+t45YgpZS4sARmF9RG4+btWJCTpLn8er4ERokg3zArIjO0iPgym7McCxro8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29002","name":"0.1.1908.29002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e823b9d-6e63-4c8d-9e88-9b0d7e240623","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29002","status":"Disconnected","lastStatusChange":"2019-08-29T17:16:57.0662992","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"61d77b49-76f8-4a62-91fc-1fdf4377e9b6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp05oBnAXiaWaC5tfHKvEWv/drqTGrD4elRzODQOtv4KtOAVkGyLQeU9HFdk6MtXWMr4Q8vZEZG9BmR37lmQunnDYwYtHI7nOaZMNCM0CFdAzz7vFpFbfRlzMmaBYy1OfHscmBckcejd6genbrUExB+JKij02aqRpv9mtqDh1XQU6cSjmuZdxT6UdaMLFFRNLYR9AOmT3WL6+kz3QLDXvGoP3Ior3L+apgbELQH44D4U9bKW+JMgsCKY/0OEdZPN1xVkJA9wtsn15c9KAx8ClGG/CScBpbj/niOSIEbwqaF0Om07R6AhqTgM3F0f2XFoci5MlSX+FyFlmujul0vjXCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29007","name":"0.1.1908.29007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6cfa0043-47c9-4ffe-97ee-fb2df2f2b718","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29007","status":"Disconnected","lastStatusChange":"2019-08-29T20:30:56.1453929","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"45a8b1da-af3f-4cee-a922-03d817f0dac0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwGTMTncXskwmUFZRnWLVf+6zi47s5Be96mEXQYUpaftPjCwApJ3EvnKCnq9Blw4vVj9A7uXo14zYH3Q4dYg4XNsZPecoHQlErpdHEWqRN7UZkLTjDhCFJgQfwK+NO8tqAmCA9hkeEPdSC0CjWgH3fBarxDgtWJgSUpAf+ZXhe0a5c6m+89FoJh4fFUcZXuAL9rlhRj85e8YS9bQiy51h0Ggw+JiifbYJyAxoyypEHgB8BON2R5JPETZdhOwyrEAFXv/RpmrDvbcCmB58FH8Vi7LEprKmol/TlZTCmCjPBms7bozcxh7O8y5iu2xnM+VU45KJ3BqHVNywDkKfXKOZtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az601kr9jt_e2etest","name":"fv-az601kr9jt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5fa8486d-7a29-4e3c-9629-378620cb4348","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21002","status":"Disconnected","lastStatusChange":"2019-10-21T20:44:23.5973385","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"d7462860-3af1-4ab3-9377-10ed92c362f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA05U43lh9r2MK2eRSjjZvYgKA8Glj+6akwemnMd0RgkHsD/sNU5LaoSwvwnGzSG1QXawfroPe/RZV7hG6SEc1UmMwjcBcJ528je6tT4ZooBHk2nN/1zY4WyH2PqMDkciOUrr5lwjckMNhMMv8KcQxtgpF+0N7vJECeQvOdNgvQDNkQhc9ruJkgoqNKUYd6LzClRcTg5/ogLZp0cC+VbEQ72359o/zuAmW20sWtYAqGbNA4gz3fCQw/WoMYNZYuu+uOdesdvLvXrSJO0C9J9GQ4qwQEcmfbDXw2T2lCdVdHImLyhB9FMwTlWZ10Y4DSIRFVXKsJJiyCLRNs7PtcHN21QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ixrma_e2etest","name":"fv-az456ixrma_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"87dc3c1d-3f57-41b0-ac64-9c0ae40d1623","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13001","status":"Disconnected","lastStatusChange":"2019-09-13T18:14:35.5276511","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ef4b8876-ffc4-4743-bf01-d5ac40fcc13c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwPMdfbGgCy51wrClQ2dLh9hnKRrD6ktcCIjANs7Vd8aoFh4JfAyHU+ILe9gRQDvhNAlXlujfMt0vdnt1EkodcvycHA9EPxtOOvMGemekA0HaiLAQtURU/fAsWyN66FcXPHKeO22qk9R7OEoR2baI8CQ6sob0/cnXC1XL4cqN28qTeVmDVrY133dTDnr0DY0zSK3HwvHo+saISX5M8wKpX872SEvShWUAPokgAVbsxiJfsAf/tq41AtQdwylaDCb+Vxzfl1z0e+KOSvkcBulELWnufs7GszwA8IvWFEpXAOtnrkNvJv87uh23IabvtkO2/OzyxiwzO6jVmZAxRnNksQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29008","name":"0.1.1908.29008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"11f15274-b279-4b99-9920-ba6c3afe06cc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29008","status":"Disconnected","lastStatusChange":"2019-08-29T20:35:56.4384805","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"12bee357-6aa7-43d5-b915-16363477cde3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA15CBGKv0cnpmBDne9rA1alUzkH16XaL0uqOCVQ1fkJuFWva3xlcRZ3g61f/5G+NybyS22gaeWq88l3hDttXQF6VaU9CdnditRbq7XXD2JaeZ/VF9P8gUTABeMMcqmvMQmPS61uUoK2jgWy53imvaeqdH++FP0Ej7EKd4wqGJ0w1bnF/pdVP2IwF4EBkDH4gClN84vWcIsTwotI0cbsX8M0oN/oDRDGxR2xE18c+xBjgdvf4nEhE3eKIcMpccxRccN+/AY06HzJnlyltsVNPqSdL+p4K2K2lnAJ1QlDJz2fznkR1qxxKW/iQD8UW3xhEr6B7x08BEDomLqdFaybXhzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464ak39p_e2etest","name":"fv-az464ak39p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61c57219-2723-48dd-bb60-747e46305581","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22017","status":"Disconnected","lastStatusChange":"2019-10-22T19:46:35.3204007","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"f6f7436f-4d23-4e48-9418-e4b9d95a0c8f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApdA6/N24lJUu8KJcZTV/xNvLhkYIasGsxrevT+ke/2WHLun2o7h4QVP1CGAjlbq1eoZRm2q6YFIMA+vxuYJzjCN3fs4oHui4QEttIDlmS1MJ/0VmK9S+4zTJ1nX6olXM8HM7Ffz9FNQRYbuMM1n2GilKbbSCztm8NIkIlLri5/wpfOQyUfjLJ9fx5RUaauaWUhR3k1VHue1qPBOaII1xhJv49egdsWaYnnciI7FIl5T/47BHrJUoEoItLwEDcZJLNh2T3D6a6vg76Ytq3X3qICu9kHx1QeJZDN58ctPwnGU0d7x8Nn/RJFzrAYYNjSx2Z5AufiNwI9pJ1VUBBVA8JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az601od5lp_e2etest","name":"fv-az601od5lp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63e798f1-6037-4574-a3d2-78f1a1c24138","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21006","status":"Disconnected","lastStatusChange":"2019-10-21T23:16:26.5737799","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"d0829a87-8752-4362-a24f-86a597452884","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwywGhmiMIx6okHUFMsOKeoHXmIqKxuB4FwxxjRkVxbUiytr715b26OcnutEGR9IUrhfs/8+pbRyoY5zdydIMamVg8s4mynwK3mwusNl+fnmxwsOxUxyrD4tWC6cs0FNliYrUJn/V5tY/o86Y/kZuQw3Xo5/PelmltfdVfH+H7006VCi3HYl3UvhGqN24HLclUzjUFD8ITsp4HN6s3WlN4HqtIHrxFwL6DObvfNzVgxo3fKUZxbF+RfgAMOl256xTuDJ0ArC8ig/T6aBAdB1iEtpjAuAxHO1tVJ9H7nP5LkLy2Ssxr+Y8lT5MdTbf8UCASicZFVWj9+ipRvmHWMrWUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464cynrw_e2etest","name":"fv-az464cynrw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c37679d0-5396-4ba9-955c-9a2ad0ef65ed","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09003","status":"Disconnected","lastStatusChange":"2019-10-09T18:30:32.2752242","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"0c2a805a-8854-4e73-8e65-cb1d0f17f5fb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5mHCa1U1oL6W2/PGK8TRvxitc/TWJQ91873chZLQrJZmeh+caPdJNaUUdgv03DekEg92jyyo7tjdoTS9Zz0KwvyXa2VjmjHUS4J/EdIjjk1SWRB7G9kBSBXEWrHMtMfy2tHWSWx0THhx9vHSw+xjH9b/QvO/6BhIJw5TSbqcPFXNgrK3czWYTHLHu9jT661m7X7EiruA7y/ezab5o9l/Bnx6ZIia/MWJSFZZJ9uJACIY8Jtxj9n7a5jBDgi6oc/xWpDl+pfmyv5X4ON91VGjFsGLH1FEpLrVk6QUHqkKh6ncZF8NCI47Hvm6V+gLgO+KoxUnuf09ewBO6UeaclGa9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03001","name":"0.3.1910.03001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fe72a852-3427-4777-888e-5b6a255a0048","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03001","status":"Disconnected","lastStatusChange":"2019-10-03T21:59:44.5127428","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4eac6c36-2ab1-47b9-8069-b1c7f9108600","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoOudFOEN7/GqR3TL2B4mIQjBYO8Yy8MvnUZg1pKdF3rZxYKFtmMme3QUusmdrOE8e0ER5mTXJI/EitEHjxH0rDYOlEmDLFX015IkHMibeY7yOpVTicau4zBA44TRxkATCXfLS/BMbHvfUXDNbpcLlTC9I4tqwy9K83IpadElM42rJd9SYIjjkIM8VZiDpO/i+dhonoI5yaCbWqcJbJq6ctdDQ/KyD6cFsBRlx4uMSVXoFK/JSqghP5eGJMUgyINMhfKDEjv9p6tQab6VqeQ1tiORfF5K68BeKZpRYY3BJAwYiwJFaclVBfnFeGeyvE04AFVV3QYnbvCprGywbxPRLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456js31u_e2etest","name":"fv-az456js31u_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f448b1e4-6768-4087-8ece-0913fb2526ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02004","status":"Disconnected","lastStatusChange":"2019-08-02T22:21:06.3259007","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9552fdda-2e47-4c28-9c75-75771ae89fce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtH6rpoMiqn+mA/1Ng0mhglJgierAEO7liXlipvwVFtUEwEb+0BqjE2/L23sLq0+DZ9DlC7OTwRtLob7U1deV/yi2/5uSrk15WyK+Mt2I7+qd0OR6qBSlvU6SWSEX2uqVson0tDEFpPn7WE//BfGrTX6jqAIr3x1Wsw8cwukifhpHflHVwBaqvNN6I0LUGAzXbbrSB6MpoZvOb9g1lOLLcRS2YYFxEqUtALemzBTLEQ2g9/w0g1iY7TL/TwvM7Wc7J0f4nbeYPJKz38piZZTbEoI9i6n8yZu/06GK3eWEwb4IeNiwDzFqjzX4xzusuOdFESUGXBC2NDk5Fbg4wJGGGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03002","name":"0.3.1910.03002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31dd4fd3-bc6f-40bd-a53f-4cc062a01000","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03002","status":"Disconnected","lastStatusChange":"2019-10-03T22:19:44.8734634","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az599"},"vmId":"92bdff63-0f7d-4afc-aa7d-43f3a8c7bcfa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtZXj48vuRLvieO1bjR5GY+7Am/tvCvYLkeHfjZ/z9dlKHle+Mq3bS7nLiUsIMnU30hsF/2hCoRWiOWOu4RwLPHYTAm60FkqnvFtih1/JhMVDWJzwvKdlV+VcK4sXSnmMWHKEWEF4O9cjtgJNT07kZWP6/RQ/4Y9QEWO3VEVINqgsViJ67xFIPb8j+/qOZ9kam4Wil/42+++bznfhsIS7JvaZX19NIMRa7imI+KlzCovuvbeYnozVVlp64ZxM7wwalZl8UtFBRTKPO0w+rAqM4IlYceMCR4B/+nFEmKKFK6kwoPQnLg8Tg03l/iSvGMIYK5XWJXyAmzcSvOmEO9CcAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464f76bd_e2etest","name":"fv-az464f76bd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1b5df1a4-cbc3-4fae-9d25-c532a18b2352","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22007","status":"Disconnected","lastStatusChange":"2019-10-22T16:51:33.7710548","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"9eb9c55e-96ec-4001-abc4-877f569e5efb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxHgDpr2rrrg42nNNcS2mnqF4BO6XdLgYI+DfT84IjpyDIBS9WO12kdRKOexU/VJsCOwfpmoO8PM0KXd/R9SAPymkjJQADJewvAQy6rMbwxBqnNYU1Sp+qi5MPSiA8Y+GqOwmL1/yQDlo85QkEh0HyXtovoKDxI3kNYFb6LwszauTdlINlPXQnRwpcYPS8xjJ2ThhctygblIC/xVllFhkqeb6rgXrvQDb8UC1soDf3tfLmXihKD1r/E0TtHzQVmIZC4FEpFIFMT61KSKGdQZ4OHohxX5y7DtuQvET2cURRY9q0WIXMDXualt17jtdrTSrKm2ZgpK+KW6SEI5Us9pRHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456k2t8z_e2etest","name":"fv-az456k2t8z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"799f0af3-ce1f-4602-9b80-6aae1cd6ddc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16012","status":"Disconnected","lastStatusChange":"2019-09-16T22:00:03.9367476","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"05a1e521-12fa-4f6c-a0e8-8f18dd0c9ed7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo0e2uZ0HWqy3d9of34h7FL501CgVBAkoOPwmqn2Wu1MDiJcwJMV2BqySOTf07cag85O2w1G4+msAMFL9fOB7eqvgzBQFeYhi7JdDsk75T2f//QPX5pgAxulWRJ+ZSncnapwzeHN4IwL4xMya6u3q6GyhmmHigKyDW4uRN3psaay522U2yKS0+xzUM22cp9hC0CWnyGvQGy0/4tFMCzpP0uTHF7tnJWtrUhEMOrFkSCs5E29QZ1jpkPPRw6tK11i4wGaKbnhcPt5GVAdDpEPKvhNACgMVLJBj+YFBe5TP0TJaWGEAmOyakNjAFQ5FdQVAd9Bqbrbz9+49ZwK57h3scwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461402yb_e2etest","name":"fv-az461402yb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0238a356-e93f-4ef0-bd5c-90859944aa80","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09002","status":"Disconnected","lastStatusChange":"2019-09-09T20:46:26.9389633","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"3cd65b6f-aae8-4de0-97fe-b148da4466ae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3Brzg1DSkgGIHDnWWGQSVlTdVkiqU9m8RK8Kbi0ljlasDdzQ+EJAapszRsqy2rK/Oz/eSvYSWb4IsZCUgRZ97FNcq0e0aeK3PU1J0HGvF0j7/0vhYzDf4UZvCIw5+VYhdjmqXrMWx4bhtCTHNBkW7fcZzoXTXZ16nKhTVNIh5oOAZTZ5Ac4pbRwt05kRSJAqPmr5mrXq1kbsqKWmx44jzgSO7iUVUrI/8Ye3go0pznRh5P/gqlc+wiQxNzUQZJB9KIsleFDLt6NGoG2wD/IMSZcpXPtNT8ueYiy6lANPahftwiRFeeIab0inc2O0TGNe5SBhVhnkqRiALbHUjYUDfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456k60df_e2etest","name":"fv-az456k60df_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3c0aef4d-bfd6-44e6-aeb6-d6da2b87e2bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24001","status":"Disconnected","lastStatusChange":"2019-09-24T16:13:52.5017335","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f7a3c736-5e39-4ff2-a87e-4538bdcceb3f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw5JZ1hhySrM++ChtsDPtQ7KTTwK7dkVCh5Gz4AN7K5Ut+2YmfT5LamHoWdvYBUSnGI143TGWNbkr/MKU/dvG95RcDbsdou3uqyrfy5LIl8wQzR1bBz0SL+JjdKfUQqfRAZwNtJ2BfA4A3p27WOWUiRgE/n2h3EPPW84dxfewWwyQc9beD+C76GHNlFbf2qSRSljfvxSU3DIWW9NviBj5PsmyUkgnIjTvOlVobRmSkBTZnKrDiAaVkFRNC7tnC7cNKbmr6MxAdha2eooaFHb9ZS6npXk/AkoDZU+atUm3r3Sxq362+s0oHjH1EMu5+pbRF1qR2JZLA8acd7248/fJcwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03003","name":"0.3.1910.03003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"567d1366-7f8b-497d-b8e4-52a5a18c8e6d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03003","status":"Disconnected","lastStatusChange":"2019-10-03T22:29:44.9859986","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6004037f-d58e-43c5-b3b9-6723da6b1f53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxbP845aVZCZ02wsKvyWQIJVu1qPTGi58BaCEGbgXAJeB6N2qHiToqpe0Cn6+ALHOaIFIaURPElljfuE3RUYzuNNQ57WZpXJ4gHLr9ZoLuDBdAY/2+MSUT18JEPU98b5FD/B86yQGhUaFrJT4bAh49ZLJ/t3FsypYbwR/wXvFcT6I9tLqgjQB2K7H6XkSSF4LIVZym23qMS+3PFKXL/sRdpBNj6olvVzuq02ZImKBPgc7g51wdLbcDaS9eEzU30rgpW2f/sW9piDc+f3FfK3l+2959BbWVEBBnrCIRe16yx+slHP9xtdkGQsgXTqGZIpTA7msL+mNwD7JUln92J8U0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4614kh8s_e2etest","name":"fv-az4614kh8s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0bd46223-43d4-4b15-b69d-706d09de91e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23003","status":"Disconnected","lastStatusChange":"2019-08-23T20:08:03.7891865","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"58afea6d-cdaf-4ded-a9d6-5c80107bff27","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqV9O+8PlyFCQpCYgqYHGLN9sP+8PtR+r+5AKhP6aPsRoK44zhJdU3VT2LV3QwwqdEI/1lbKjnyWjKnvfkaK26J0I1SXbOf/oHI8T3S3v6ExFfuUhdR/1p5Ll11S/v4rsT623xhk8ZzoWYUnyIx9Ioz7CeMFYJp9/pmBMHUKYHxBNGgKiB3nWN3DZWAhLRxtPj/FmxZmsd2K7YCeCpcOZbqJLcuL6OVCf0B4x7MUPjd7ig/Wy5MRFY69TQVcaQks7eggIsNNYgGNa4tWxpuYNNiNp5rfFfrm79VhDZByqPLqzSB6qdxy0StTV3X/9bDO6qxiqFewkkYuEXzOMNc8+hQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4614knyr_e2etest","name":"fv-az4614knyr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"19a5b2f6-b98c-40e3-afea-93892a1d73e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13004","status":"Disconnected","lastStatusChange":"2019-09-13T23:14:38.0352666","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"76933b96-6e08-49a3-b6f3-747329116576","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0giDaWVSvjRnx+uvSVctT22HG+4ewujrdNwvNkrBzOE589f5X+xd57m03hynf558PMo0roRCAcg027U4GAXdxQUxuB/Scg8ejj2Oi+6QbOy+k9DVc79IUJDVVM5EPGhFxkZuIngqwlylxbqQJqYahzUOVxIZSDONGJ8ADtlCes36PWpGMydt13LqTRtuWUGhtzMCe5QjNK8FCdLrwgx/D+7e3ldBGCLfrMD2nlYOD+NQhwxrEvjxthLhuLs/XsyOn5GW+xkHUh8H0bdx4E/WBi2tOCXDsQ1c0nlLN0u/tKRloTRCi8HUegsD7aa6cKKPa+EA8mrArDoRqmouahNG0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29009","name":"0.1.1908.29009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ade7be49-ee1a-43be-afa6-0cfb3a99a25f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29009","status":"Disconnected","lastStatusChange":"2019-08-29T21:10:56.8373195","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"718d0f3c-682f-45fb-b60b-31a86cdae6fd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyF2Tmc45OXedobr/X/ACCZ9qbGOV5PWuMd8dFWhhe2aSYlgGWy8AtofGNJKqiOgQ3SVDB7mOhAkTUELg2HJXjZ/leNq9K32PnYeQKdXd0NLZo+TeNeEM1xJOXwnSAFaAOOXE9U2F2d+Q7SM7pnNV7Sdm1sxfKQgXHKPWeafaDOnB5YpR5mXjtoUUtlTyVXVeEyIkN1upkaZwErIRrMOMaJN1vQ6rqf990yFaLCX7CAj/hT/cu64aOlzdGRVnfo6kQtHBC5Nlb0yRt+BVTLQcGYFpbs6xW0P4gIadoBWuHwfyWSuPSAllEs8+BcXBuMH6g32zbG+Ote0ERgU1TbvHqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az601y95vf_e2etest","name":"fv-az601y95vf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"17662609-9136-41b1-bada-249237dc220e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22008","status":"Disconnected","lastStatusChange":"2019-10-22T17:56:34.4492924","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"1abebf60-15c9-480f-a108-b09514d8ce8e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuaDyw4LAMTtB115AMS3Ag8dduuBk/YMhi/D38RA43aAvEd0GmtrpQ0SGUHS0ugy9vnF50dxWzPIb7tUG8Ne+XG0yfcNKw21BmxNnZGkn0411umjugQUfacWnVjmmUJXyh/j+nkCHznW7fH6Vv2kYNwpmk9LvnsaLZG99BaZqR39nc96Gj53qN0yuv60f3QJB0IwN/WUcH9BS48lb3MSr2up4IZamnwCZk3OD0V3+4Em7i0wGhTBHdMxoLdr6nJTfqwrE5K0UaFW5MULyUnKm24osHiv+LiBtR7Snn5VfbhOVF2zY47ZOi7yPYKQyWVma21+7kGXXAFALqZjxRp8NRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4561uxfr_e2etest","name":"fv-az4561uxfr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b1e6bf5f-56bb-4f04-939a-97a4b9097783","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03007","status":"Disconnected","lastStatusChange":"2019-10-03T23:04:45.4280122","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"084f1cf6-87a0-40e2-9871-2671122b09bd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxLL+dSCVfnZowO0/loKy0QP3Gnb4a1EB60Bcmj9G1IoqrdQxWri9nqYaHiKrUbIXuHFzil/LY0JmXZRNczF6axsvenzemATyZg+rHZ5bYFDfnPKiVV2l6f1pg8613nNuWCcZQkOfhhgape2ffg3qgu1gyO6yIU7cm97uljJqj2msgiJY8mE2E+YTyMpSAc+fFTywPFhI8lkjiFCsHuVeJWOxKuD3FlhjB71yunCg1dL8OzKSupcYqk7G5Kiz5Cn9425t5cqDwLl6izPzMmFH6lempEYW1ma6W29SrXRrRp1C1+MY0kFKjGYReEuKG8RzNaBKi3CFXnus7+WyuVh9PQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456kc327_e2etest","name":"fv-az456kc327_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d7fd1c76-7984-4aea-a4aa-b9b32aae3d45","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17002","status":"Disconnected","lastStatusChange":"2019-09-17T17:59:33.6456957","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"72a7130d-9f56-46a8-8954-9f6435311648","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqdGW7Lv8lCZyGPBfUr8PZRxr3l1tczq1f0c1rmnQpJhFJ65Mp8TYrIkpVkPW2a71XPWIis+kcFBCa9D2dBfjSAWYXjETcm5E/yKzI8zWlYvxyTAmZg82Rf6b/esFg6qTR9oAFNX/TO9HELtttwjCyJLmMPqTldFp3MkZEsf9YIaI5CNfwbGlteHPCBmlegWFnYXe/uXLZKvaoB337vq3WaaY+p2dJkIfeyoT7SjPU9eE3mZQc/pGBjfPeXIE+v6+3S5nq1ajcEuvrvTvS81iGZfMh4/J8SU8bRXFVDzYiyBCyiVrZkSiWcuxExPEaV7SRORLks6U93QXnpvpkv+/LwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ke8ul_e2etest","name":"fv-az456ke8ul_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aaaffe57-df55-4d04-a225-aedf17153b33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01005","status":"Disconnected","lastStatusChange":"2019-08-01T22:30:25.2899063","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3f8be945-f637-4a88-bda3-481cc49ad33d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApAFsg+sOEELAJMA+eWfYgrIwFh6kv/CaTmARFJK1KHz/XNDqGogKxQvJZthJvlf7GOttKq7NdLzJ2F8NRpe/6HZ0lwTMFjzkHh2JLFL1jwwI91RkL+HvcqNvjwFThuwzt+zv9b+hDRcpOBrIJ1TvHEpApEcry/tX2WM0nrvSLscLXWXTfvdP/1UOCejuokFBTSnDLGYsODOr6SyNqr6BLCZLUhUgy1YkQ4yfLq+owfYFCxcMGrBdLmwTbObMlnafi82R0qpek5A6makCqwcEUzdjBUfQwGzjXQ0mfjVjGygy39CP8SFZZzA5UTYY5tA+fcLjXNkU7I9288nt6auADwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.29011","name":"0.1.1908.29011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3230a45-f78e-4a77-a1aa-d2fdcac2c875","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29011","status":"Disconnected","lastStatusChange":"2019-08-29T22:05:57.2823385","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az496"},"vmId":"05546842-f8b9-48c9-a222-d4bf02857abc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1uGm+oaQpPyB9CyMbhIbtBHVDFSzA7fic6nhyP0tOUkJsLdiGpgzQgtVPjuNABs9ogpZgnfHm0cnEIBhbqu9rDhc9MExhj6/6LaYWb2Uuu3GGbgYZwy3LBUGh/LfY13Sw/yEmXZdcl2hwf1JQgYjKbE1UxOvcIgYx3HRCtA16d3dboPD0QfaV+Kvlc7RZmdYqoZMSf7YnRrbJGBADVLfmx3IirFWg1Y1B+E7pSowv/WY08fpn6rtHU4zltlEDKbuLZZNyfN9UXpIARef9dP2cTRqR2JA1tBTpgu5x+RGEu5CvwhuJuDz4Y+nx5HkICfi86hWC+qpTd0P8qMP9/SCKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46151uz8_e2etest","name":"fv-az46151uz8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cbe32c8d-9b2b-4ba2-9b2b-7040c8af795e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03005","status":"Disconnected","lastStatusChange":"2019-09-03T22:29:25.2925582","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"16c3827c-6987-4cc8-8111-0532291d4385","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwAMgrIcxS8wKd2vbAUM1DAxLOXhD4B+pseSWyipUUadlJOtEkdQqGsAd2lulNuernMlebvGc8ymAmfaP9Uza9/e+tQQsVLCWPvUnkXW7zPKMhZJFF7ybzQzWC7qRDmSOD3NCyO+797S24ImGoopKV1jPEz2fm8wXnl+HdQHsDku2ETsRdoIkogJtK6QtIgMuCQ9WEq4wHxP+vJANTj8VsFKdxRp4DrKIZU9+CKxClCmJwNBshECQyejspihiW5yB6GfKEq7x91dIxEToDleJlfVpWWfT34ibSxUEjmJ9MTRg+BN+bV3vybBLbpXtEmWG3WInkfBqOzXT87H1P0M2aQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.30001","name":"0.1.1908.30001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a521b980-9fa5-4fcc-b50f-3e5f8d9409e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30001","status":"Disconnected","lastStatusChange":"2019-08-30T19:31:05.0733897","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"71995589-73a7-4c0f-b3bb-3ba7cea90a5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA66E8ffkEXLTgqNrlmIZHbh5uCWDLowBGym2toGLHMRl3BRldcACATOGfyiZzsybdqbe+AKYpUt9SRMvxZBgx2NQoEd/GKUiAshhTCHmPGMjplLF3hApJod/7T9oY/Updc5zxBEJZ3D84wAEO9OiCIKBCUKMduCBMpRKbuN9fUtPvuda+wS2e9BTZ63kRbBybPjTY6zLzPoWNsOjsd+oEKksWISvbjeGgDNe6FYwv0l+N61dosCq0ay+K9NsgQwQFqa8SLNyyoQHQ9TiHl8gQ1MvetIZHBLzlJVW42+doNwlNxbTKzgVhYnnarQtbgAHDvUMdcGmxifT8fWz0JdZ87wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456kel41_e2etest","name":"fv-az456kel41_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06014928-5eb1-4702-980f-b9acf575be19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10001","status":"Disconnected","lastStatusChange":"2019-10-10T18:25:40.413624","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fe87e767-c495-4040-aee2-dbfb753a585d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0FBQwuOBTzpDrnDWo7OE4iJgBhkWRm9v0wjG3MD38nMnPEHRAnzY9gb9odPR90bbmEIV6wSYRhbK/Ija79dzQuqrxPbvyPqPehX/79ptcUc92b3KSJFHqLS/26JbmYwBK0JJm1HJPVn9trfy805c3lLUyLhAJ8Kf43bU/PQKazZ3O+iVpunG8MLlnD1aGXzqnsWjxmFFumM0bhDEZEeTH+FB9m2zaiy3Lp4EOFVsaU243n5qrqFhNMEcSz/wCWpuuQbWgpt63Oey+J50u/Za6HAHtd1881IGSB4wlH0MScRsCbquUQLOQtCNrVVfcDZsAJlCiCpcdpA3aM2O86u3JQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.30002","name":"0.1.1908.30002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4e346a13-e4a7-4e76-b729-150a32c8ee2b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30002","status":"Disconnected","lastStatusChange":"2019-08-30T21:26:05.748721","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"69c8a361-be5d-4960-a76d-ea24ce26a6a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx3RPCP79Qlv7zaVjBC4wFbSzpiRDpGX/edUitgiUSD+mOJsJoqG+pAhZeWz/pydvovZn2V/0+Qvdc6gTA7oTSp8pMvxK28IW8/NLDPPA1jFxeUar2p6RNuHwLmA99QkoTzUIK/lmMwVoWQ5x0RVY3csfifZBBT8EbfxqFtidMxbt76rhHGVzu6mgcklvTaihHdNkd2VDDeKfwk7erwmIOe2GEKPB4taeiYTadpPORwY6x+pBR5ntqeC/2j8unjigHjGS6rLxKvSWKPoxvolmuN8IXPibJgyn+OyeirBS/9lhlJPGl1tdPaEb48nNdk03g9hwzEYj72todOc1bpoNfQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456kj5ca_e2etest","name":"fv-az456kj5ca_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ea4a7faf-c100-476a-aba3-14bb6b061ddb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07005","status":"Disconnected","lastStatusChange":"2019-08-07T23:07:32.4750112","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fc0ac074-8624-4aaf-a597-0f6789062218","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0ZgZ+/wcDBoDk2H8AZ56JpXkFs+D1uwbEfxte9MBQvsPjL9uib7FJpL8X4u+keFUsabaHN0X35FQ8gygsgK6kfrRPWulfnqAnP4a53tSbGxzkY6UZ0WMKzA7zNJNizmnBxZR6ZZ37c7Bx01cRQtxO9sy3M4gOJ0WlM7Skg8pa5KvVT764DLzO/5zdMYyhX0oMlwIKsEvc3XIZMupPVGnO0/1+V5KX1dG3+u+9WEf5tsksg6i+3WpNfxFQDJQHg6p8OjhnhOB4L8A/gI2eay1jkcKSbmINk+UTeMhLQB8gZbfc72tnSE0pn+gD4Nt5Diq/n8c/omYQcfAfkWpHUY8BQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464jdl3h_e2etest","name":"fv-az464jdl3h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"353af4b0-046c-43c5-a636-52446671365a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22026","status":"Disconnected","lastStatusChange":"2019-10-22T23:36:36.885151","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"d38a400f-4d8f-4e8e-aa08-c5a361f64a0c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0wbqtp9Vf4Ymi5DO/Fg6p5ZuNEJZNF0I/zBexQQvK7Dhz3psRj3SSaGZD0NDtt0W+wgrpDetSRwkely5qZakA/vcXPIkKs48qZYrCbuKbZxipOBFTbzCPns1iIyOeL5fO50/ZdIODvdMn7MSNSURbSsrLI92QrPEAm1Ac5wjfN6bJicXTMUi9ELA4dhUmiqDRwgngdn1euhvWuxzqNcpxAWc2PZxm1PHwgdp7N24oZaXlnHiqle/t95Fly+gX7b2aG4SMyjMIGGHuv7VPH+O6+RhiIQ9a9BJvpmCiod7lCMfAQwhoN0p41H5qQ2vm6yF7EeKv7HxVd5StpRIKdHHPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az601zgc6e_e2etest","name":"fv-az601zgc6e_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5a684a58-538c-4201-a44e-9c92fc14a9e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17011","status":"Disconnected","lastStatusChange":"2019-10-17T21:13:21.7043179","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"8a2f1616-3843-4ed8-bd63-ec5e41b0630e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyocxaVhMb/3JjS5O0y1BzYOkYYQMLSBBvxk9m1LYR4wdpvyxxyzodg3cVHxgY+8TI/pALpuyAXK8q6BkXQUajJHvhu7I+Qunt9/X8XL6UOHdIW6W/mVn9q771Z8Rtuz6CtBmv3UFZA/imdQKhj2ZRwwJ9AZY0NUT9grIK3mvrpdyCVOMt+VM86NhFJullbE3RMxNS7buHDfnv3IVBy0hsgGiXbERhJZbh2Jpl3bRfsAsr+crblHsGBWepTMWuO1Yfar3NqFkHzGaVyFBwlifeKAkObhocT+pCg5ksXfIVHXwUd/l9dyp3kgo2y6JG5R+NrMEZoOeC9WOG0+RbWvylwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464jn0qg_e2etest","name":"fv-az464jn0qg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"605feb8c-126b-4694-8b35-e3f35068f727","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01001","status":"Disconnected","lastStatusChange":"2019-10-01T17:51:20.1567878","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"a762a1f9-ac0a-4205-b9a6-b82033d8c560","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw9sHc3p57Noqxv1rUx6RQuqkpAk+ROJZ5j/RA2JpAYBefP8X0KoBIXPRc7vtynq85QQObxplMFSeq+S9Vvpls5yAauPCfer4DjoeI3Nn6J9/TUi3rCkXrSIrmZxSvUXzHz49FJbdNtlFYRqQhz/gve5pTDI+zZgIFJlodgEuQgZpfrGwBrCbaLhzOOAr7KGpTC0ppFAjRbTFOLoRol1GJZ6CmY91vE7EqTv+ubMjeGcclyfhXTx9WtULveGEdwytIXtFgdxRMD/HAsaW9LfemFwZXA00M5DSX0X6kI+bKAeKEvsJ0a9yik1sYCneFydVVV4cq9+yjvQiwECbF2sf0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6107h943_e2etest","name":"fv-az6107h943_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6cf379f9-f4bb-402f-b4f3-921ab000b869","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22012","status":"Disconnected","lastStatusChange":"2019-10-22T17:56:34.4492924","errorDetails":[],"displayName":"fv-az610","machineFqdn":"fv-az610","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az610"},"vmId":"c4bc89c9-4d49-4166-a533-0e736f1ef1c6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs7PlCV/zAC6Tb9fZO/VxvSzguNQ4usEsDRLveKm0Lgp0FgBTlOwcMh7lx1wt16EbEFNkNQGm3hCfD9BlaKg4HkT/1R+Wp89P9VeBtpRv2I2+EI9eUqCjqhtbLNsTmdkkS1cRgpNWX3Bu63V6Nix3LNeUSzrekRMcWjYuLh574uOMKAclYged82Clap9H1aGVdvBaovZ+R89IPdGPdVevdf2T/SdA0qHvs5VRoqcUEob2mj4gbgnFDrCWnBGsbxuOOFB4DrzVMv6306+24/h672TODG44MsDXdXNgntgl2Hyd9d8FHKrUoha63QMsxGqYFH+PuZkxWPvaybdxVK/8pQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.30003","name":"0.1.1908.30003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fc574c45-6758-479a-a957-9dabb8fb11b9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30003","status":"Disconnected","lastStatusChange":"2019-08-30T21:46:05.9495073","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6dee1f69-8cff-4e51-9f12-db5e49fbe4ed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAweH8pa0dXYGEh8VB6hTqV2lQZ5+004SY3WfhDn6WWQ/DsDe3166sBcLFOOKAPJ60o7d4U72KYHCY8zav8jOoMOVZ9TFuHrIYEAxYKQOWudeSQc00WMwdmPbgBUY6Xk9ag8yBhqC6dc2uhDCex7cjIttXv35BTdAlIF7W1GGGWKxePYUQTRzdrMtL75x0lfN/Vapc5WWGm0RrqGbvuzWVbVCTdhzL23aA92fWhNccyo9M8e20Kn7Gnyj638NNEycxTluDPuHc5snr+GDa9p7Ahp4b+v87yDJ6o42qJXp/CCuhfrkFBQu8/8Shd10q0i1kFgtUPm0UZZJMAbLCezg0PQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464lpg4u_e2etest","name":"fv-az464lpg4u_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"445cc867-b5ab-4653-b245-e3eadc1c9ca2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18003","status":"Disconnected","lastStatusChange":"2019-10-18T16:53:42.4800251","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"2ac9f468-0d1a-40f6-8903-e3a52359a96b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxEyV1eBKTAIz+PEEce5ut+6kIrl2magOCvy6TrbhP5RpVSMNhKMIn6lOuniMgaJTw7d6lj5oGu6HcucsGNQQJ2yOnSkmtLFzt6p5tSi/LAiwlKMzJNNN+/l54kwmaeW0GMhV/UL+pRLvgeRGebVdJkTF/vRcm2gvBiPxS7D+UtvwnI4M9bGCrFDakENHjXmorrtR5aaTh3OKRTqy3WDhOB6Cay2z47xg+YKC8dMJwpqfrzUKOfj/TKfxkgeVSrjZg1Ggnj3lNU+kjna3TFDxAdjIILLtMDrtjUye96lg8hIgZ4BR6SAgGaauIt9bgvoATr28nyBQGZG+3lAv51A1uwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az610i71b2_e2etest","name":"fv-az610i71b2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"66e78771-60bc-4bcc-9550-6b4ad1af8be0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21003","status":"Disconnected","lastStatusChange":"2019-10-21T19:04:22.717366","errorDetails":[],"displayName":"fv-az610","machineFqdn":"fv-az610","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az610"},"vmId":"24b19563-f47c-41cb-a6c7-3a8ebe8be458","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3ifihlcSztHQ4R8KvqGtTArXMcIPTwhZ+KWVxzVmxwChjqlsOWTEPs1A0aqzLbsL/9iS4lKZ14y2WRWdiZyu0z1F+wyA2E69VZXnisc/RO6ZFK35M+9TMns+aCQiFE8QUQJn9tOUvZA9/eExtvv11M72sF/zrVrxr0qCOZDTM1cYOe2xL6KRIwzRrEFSK6a4gugkN/ho4Kn8dqGtBa9u/gAyiGkBgNhqjdB+Vtl5aXBqECD0idn8vwjcxTLrVMrCisI/ydubjFVvbdnJF8n9tht9+GoTWuNeL/L+exP0ubvwJ8Rs9RC3nf4D7MTe0DvKgdrMXjIv7mn0QEhZp9iPVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456zw4iu_e2etest","name":"fv-az456zw4iu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"911e7eef-25df-49df-a6e4-dfc864444148","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11001","status":"Disconnected","lastStatusChange":"2019-09-11T16:45:52.6759191","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d7221b15-f0a9-4ee6-baf2-9a1e98a29683","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4d8je7le+IG3AS7yfJKKd6HDgKr2PwO6A0w5zeyLwo3ebcItr+hYlFthfwQTfX7zlumHQJ9a35nhcaOxxPJlQpNjXd7eccB7L0LknOQAmF0UTvvKulbsunsNcmfwgQDGAKxtHnq+cHiuIgztHieYsZi9OR7fJjf9WMvdoynlC/VOfVtSHTo58ncW1K/b9I+9yqJh5rVtOCWq6SxTjSChiJ4xx+B2jC4kt8H/vdi1xcRDq4inlsSgbJj4FN6R0FfWQU3ozxeOBvHAimHmomfvykaz/iXHkafjHaxKj2wfxq53twRAbU9wO82QQ3s7+TTO6k5xzulD0RLndpYdqly7JwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4616i8ks_e2etest","name":"fv-az4616i8ks_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fc8a853b-706b-4603-9d0c-840bca30f09d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23001","status":"Disconnected","lastStatusChange":"2019-08-23T19:48:03.5830624","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"bf3f7384-dad9-4c57-8417-fc3303f2a435","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8U46fsWL4PqxNERClfVPYLGmczbg/Q2JXUpyGKzCxvRnA3Ug5naGnjr0AqHc2UDSTMc3jwugy+82iiaXx7Ue7sWNwpmzIa7v8xtBnxY4mPavkRS0C0hJZmp1oN/5c3Bmh9k7Qy+98SUkBoGgA43oOkIF4H8Xuq2cqFseOlztSyMoGEHQMJjyFo9HNChEMJ+4QLS9wdr3iT1sCXw2H2nu8l2i4T0IMGu0Rn5Ch3WaFiP8Nesik4UtGIyxoRcwWeEApI4XW8mzprkNIkIr/z6k36Qzatalozec0+jS7EQ+7z1AuuntgMrDrSybSnbjyZ/OicfV2I54jvckHR6/yR9cuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.30004","name":"0.1.1908.30004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3b84785-3ff4-4c8b-ab3c-d88b1741e0d4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30004","status":"Disconnected","lastStatusChange":"2019-08-30T22:06:06.1981756","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2e840049-cf06-4564-b97c-0ec537809ad0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0wiHWyTLS2U23lgKvrrMk/5wGuDl+oPtgp/vhTtVkfr988RHiPBUAM3HxVJUagY89Lwo/V6IhAol4T62uo/xBJHUsjBZPRJMzmrQbvwjJIRXaQ4pYaZp6u6gt6ezDsKLqaMTpqqgYiupCHDdXRyUEWAfeH7ApMDGUEIWrE2zMgfQ+YJBdOFhMo7iwe2ji3ecdbeUhZLW/dsNLHibySHPMte3z+XuxbcxGCtDFJCIVoTPBBzc7SLLYJYZ1fss1/DCFpRDcO1zLG3bqEOJU6yhFmH143OUf5hS8OdMhJB9r0f46UdDiHVW3VGOxebLMiaSmN86VckN3XGMm+KcdvIFmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456zxh9b_e2etest","name":"fv-az456zxh9b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1129b71b-2931-4ce4-86b9-b436bce84bcd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29007","status":"Disconnected","lastStatusChange":"2019-08-29T20:30:56.1453929","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"97a8ca9a-cfba-44ce-9efa-c51a83a77bae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxeGSYRL/b9Q+GCThE6TfvSnI7KNkkiNSDIsAL1HYsXwcY+9SCD39ZSp/OxCCheR3G8AjzPAhxThrKvoGn0O3fSWyCY2rg5y/v5IHCAxPfB2+p80OY2QLmzAoLyCKGqqQStQlFUEcEwy9ZdOMDKWZYRtNdsQJHG61LrqIJhxMXsM7IoGCM8MHsVI4n2+/65z6bUDUjcOubXRaS++oN2e1lEyH8DbpFcqUMatOzIw0S+XW5/oGnB1+0Q5EzreB8b3kH5NnKuSuww6pskMKC7j9m3Yj0wujABAaazFQs26dJyfUno9a+LyhVd1/j1Zt96jp47Lr7qMBzMRR3C51MkloMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1908.30005","name":"0.1.1908.30005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5a4cc88b-ca75-46f0-9419-81cb2e6cb7fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30005","status":"Disconnected","lastStatusChange":"2019-08-30T22:31:06.4019615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"20af7729-452b-4414-b0f1-b1d826c47ce0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq5Sno37MqA/zIGuaHds8LSk//XdyM9/GVxduzP3hJSGAVd3bj8FYTwRxSE/7nVuhyUtTEyMor6gX5AX7GjL4AhbiepwWRiiKAgkyJsvjRLf+UeqMmh9PjoD+GbKv+dixXiWpHSEdARGjRzs2trn8iPMky/B8hJhvCp7PlJdWhNQIF8HcYbiVATZLSaVlMHFgKOPpovedofZNWuIoPw/nQYAwMi6NOfitgP5yXg+q2qy/Oah3FG5Y06REF4Z4g6r7V97kKkFEmBqyo4wRApZ3Lstn4FEqPB8obHXdjTkm1xlAiSn7H5rYmYedZ6PnG3wmkZAyUgikYsTmGtbz04+WswIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az610ivf65_e2etest","name":"fv-az610ivf65_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99431e0a-d3ab-4d36-9dc2-7be64a58f731","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f93d3288-f18d-4908-9187-37622fae13bb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5dfDd4M/O06Exfp2nFmD1tYT2efxw0Kz86wK+IQlGNEvmCnrUW7E3skK3SOlaWU5pGK/rOPSLURGWkqaOUmDdBWSETy2Q7LCmrEO+eSxqrbMi3lxgE/fsir2fjOjck3eLQn6XhD1jpAueR6zq63Patl6laMO0fLQY1GAERlbBp0qSRhZywWtYvKyfkk+hAtUB+UCwGIbsDYjF+Cc0rqarbHpNdUGo6uy6D0aePSxnFdgZQSaCGg10M+AJqVaX8aQxcSH7IdO0mIQ5lh7L7ZhGADp8z9YwX6xxyN3IllaBiZbqXd3D2rZ17C7+Z0SIjfxAyulMtiM+opipmbggyuf8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46176qfc_e2etest","name":"fv-az46176qfc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9a1b5ac-421c-4637-9f89-036f98127bd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08001","status":"Disconnected","lastStatusChange":"2019-08-08T16:48:03.4666129","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"9a2a749d-87ec-45ea-bcc0-ecd113d31e08","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwpGdaCcx2dBXN1V/Xa1FGmObmI5xVZuwwUZ8R+csECnJQlq3acvAyaPx5iPlpiDki2Hm+N1OfcB8lNjVkILRbEN8+02Ys3IQADPCpZBr3jVIsL7MjpDPRoGqFOlY4kuxg8HGtL7wFroHCU6m9kkZft4iIooRecMDh07OnhG7Autlq2NkY3h91e+89j/INYM5SUMqClDnG7S+3KsfXOv7hG+it/dhLLKy5YUJfp1cA3ao1OBjB821enDl0kmERY/9k0mqpb2cdyils5lzK+9FaMVqEjyNX9KXtNI+j2nGIHdYPatdxUudpt6a+w/mex6JyirBAA/h9tF6StTgnMAqOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4580hdcu_e2etest","name":"fv-az4580hdcu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"17ed8ef2-cdfb-422d-b785-f383e735a106","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"44b0b673-d5ed-401e-b60d-5d74fc7e7527","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4F1ZtrED+7/P+IJj9FIs5GY6tUN6IjWNzfwVAP9uLF/keLY0fmBmy7OlD2WKyUMVCAubFQ19YjBSqFI4QCYvuSxyj7QHjKYMh+SWHKRK9Xve6EbPoqjEau0pK2Klyix3GO3pjWlhZeu6HQ4a6Q8h1tJEF0Zw5BsWe92ZeMeoky6tcKm81XS+91UhfaNv+7g3Rz3Ch78OT66lpw4ICNXf2Mx3j2S2mhpxDs76RulHvgMq276t0TlqdgAapyANy5b2LHEsNHYLbcpcMdx7sqB9RJhtMz3lNW1fSZ7IDC10H/wUtOJlOuRt/ZC6JXINp9kNsiiPnoi4MhH8rc3jYzvr4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464obqe9_e2etest","name":"fv-az464obqe9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"31eb39c8-ced4-4f96-9aac-a84af6995ba0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18011","status":"Disconnected","lastStatusChange":"2019-10-18T22:03:45.4617683","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"8c58228d-9e1d-4444-8c54-8a68b44caa65","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4mKyKNOFde6fkMYAw1uDHleUWvwwwjLAM6yxxFoWlSuSs5JLvf1hVmbkDXDgnRMgAwlb4kvOmjHrcH0UM/LCgG0YhiLfn8g1NWVC7qB7d7HQBKocQRgI8JG87UaujHce+d+8rYaDzT6WlpL2W0tuD3+rp4FnLu8ia8kIhxhdLHFU83wTrE/xqkUgv6o4IsmXGXGRMMG/5NYq8VequhoFfe2nK4bXS+WQ7tvjWdf9eBk8mcP8wfnkvy+pPTEaNdVOzkMklM+7ORef2G9UQCSpDsYQFbsNgNX4k2Kr5GT+1NTGCDyVduQ009fOLIniXMp9KhRqPpquKiI/ZgW4hvjr+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az610zk1r9_e2etest","name":"fv-az610zk1r9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"884517cb-ed65-4f2c-9f43-ab306834b9d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21015","status":"Disconnected","lastStatusChange":"2019-10-21T23:21:26.7568926","errorDetails":[],"displayName":"fv-az610","machineFqdn":"fv-az610","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az610"},"vmId":"a9c165ac-1939-44e3-9904-c01b4bea0951","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsOTWW5p7lP4Xb93eSHOKReKx5S6KW64pUuSLvqyKQaS1+8PY5ePGgLUuaHp/WJVc/zEMv6A9Br5fm6BL4X+E3ADYi9UoJQnzeDjVIHyon5mAz04lMkF9IWUK2omF6+YwkT2ZZRuQ/R4qy9KsVzi/USh+eQv1X2REEcTTMr2fqTcZCBA2DgGObSLxdBb86qe6FAC2ydGZStVNXJ5qi/SxLBCrHy4N/kg3bamfRSzYgI7bD8fl2gGMUmPaG1ZwBoT8z9pG4YcGXbbdpfeNf+7a9i5qeVhcoRUckGVJ5/bO1PeYHFlgh8G+Sh8TGHDJ1c1MMJ4yuhFENCpc8uB1ddXHqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458158a6_e2etest","name":"fv-az458158a6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3b0ee20-d029-48c4-ac71-7b25aafac56b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0e594473-1b80-4d93-9a72-1bb294ac0ad5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqLgDEDM4K7WMsyH2/p6V11sGtM/F4zdZOuaxtEPvqWYuwPOx8ZWnSmg52gLf/psvtsVHQWhN924rEXgx9Q+Ue87kvQzGU3hGKkLS89+gceCcK0pHuchklxwGXcW3xcvlFJnbbIvDe/Z8PrnOoDtQi/pdRNc5kUEBfrHmP1uH8rJdAznZOekI5FbNtVg5s3vEVr61h2YRNHHkvxEq1/iC6ySiZK2u6Ls/ov9/m+7L1yG3Mw++st4NIWozkJVZrLOcR59MG2EQmtncel8IbAXYvxDxU+FquhBxBJOvUmYCcDfKy43n1jrQRt4ohzQrj7qKJtruHAgu+i50e5yF3uVh4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464q86hd_e2etest","name":"fv-az464q86hd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"528438d6-cd16-437c-912d-d011617aa285","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.14001","status":"Disconnected","lastStatusChange":"2019-10-15T00:11:14.2127389","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"7fb43f6e-6fbc-4ff4-bf6c-73ccb13158e1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv1ifwwfKMVo2tKt8xVVQyW2W800NgeA+4J/1Gf1T1f+Q8WGEvLlZKI9eJOpyynf0aTzHwwgD5ROjJWoxOjubNsuvtdrGxNhys7hp+oqzbdgWnflzjMaMUOzk4rusSTikJ/Z4N3oEslfmaHEZ/dmW/dK5TiLSBXADn6RA/75TBnH7MotSAN8rS5WhsBfigLik0itzEbc2DaXBqrDH6B2Q09Wn3T2xDC+SD9twcf9GbmpuoI8ee6Tq735BPNrZICZPsQ/EaTC+pSWfW+rRkzQAId/99snTOcH4fzEDhK+YvQ4nxPzIQVTIht3NOlUi2N5wWqAgXQpGDMHcbEnje9hqzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03001","name":"0.1.1909.03001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"067ae3fa-b2f7-4288-95b2-e75e95b79628","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03001","status":"Disconnected","lastStatusChange":"2019-09-03T16:59:23.4245954","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ff5348df-fd85-43c9-b602-755e5087c1e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApysuKM9kUJDxKwRLy4by3Byce5PdMSMAjFQ2GjsC1D0QY7RnjIfzUxkrc2EoWE64ZKm3PnNp9kf3m7IOAt+knkFECV6HWmBJuAmrvKeIkpWk1OuEIcYzjLbHB3VQSCOlxOn0JHSBiMGUW5KiDhbzQEnOiRkg9PObu1BKYZMobP+dondKcC75yA9Chc87klI7s+M269qSAUmWjPyHxUXOJKRNK25k7rVzvoaLvBOsncUMVrCVqmH7lli3iobWVuLb3HNMUiMzIncVxPjc7MBrVT7q9DK1Q9Vu7yUrBK1P8z9i7yeJ01HL2pxBIH0hidWO5iSTkfAjwrX0YQYARMc2pwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456kn0ot_e2etest","name":"fv-az456kn0ot_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9d637a0d-a268-4286-8c1e-b1c35695f49e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.19002","status":"Disconnected","lastStatusChange":"2019-07-19T23:38:59.140923","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9fdfd9ca-3f2e-4b6c-a315-32a6b223f614","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvFGA6bgDFzQoiwnbR3jkxUFcENXmEotAZGBZp/AMXM7vQXTGIKpJlqGoHmF9eJ89DeZjWjy6+hlBbi7LrNoNvhZK2Ujs0j5DO23WsckL1Myd8kJvZlP+xlwePy6CK/hm7uBSEtWIz1g6lY678m2Kv7bGawHtj01aRYa0qcEN/Bxxbo6xPVUIHySU6oUmnPuDvv+MLcND1IPCocUIzTzAUD0CQP8YykrKNm9/XFVP8+zW9bVCc9VL6l0wc/wLCxQhdZliPx/P5vLb3Xz0wvUsfSbxv7HQQkutP7HiKXSdzuxEMFByfCzwXm/JszTUIPqB9oyNXeXUT0yO0l7fCtKdCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4561ysra_e2etest","name":"fv-az4561ysra_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9437ba1-f4d3-4d3a-a85b-b3f0fdf8bee0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05002","status":"Disconnected","lastStatusChange":"2019-09-05T16:43:50.0719035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b1be155a-5e99-4a4b-ae83-41a46aeee3af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwlDhlrF22HnZI/gxxIF7xCESrwKKwrzXcIHpsslyHM0HljkEd89IuEzo7cdglf8uAroaN8WSqIte534dJiSW/EI6Y7zrplOvvtQ2y9MyTQ/krJ2VAPoZo1Ksp7y+Q/FeDjpTN0lyzDTF791tM+qSNOkQaLzjHRmYTqOCe1CZuZd7eIN62GdOopE8l4B8ycQb1FQH2Dg3wQPRSxlCyc/i8czVZ2LBhdVyqxKP3HsGPD6TpjTk/6GYK+sY88OH7c7A6DuV6VYEw21dugaYXh51Dmv+aquFUtRlaeD2zspyU9InNcVsDVxhQgETPLUTDWv3gyG2AqkHacXiqilqay7ZdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4581e0jx_e2etest","name":"fv-az4581e0jx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a2c8a209-d665-448d-888b-399cba75a82a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02001","status":"Disconnected","lastStatusChange":"2019-08-02T02:15:31.102508","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"a375999c-143c-4a97-9ee7-a020104f3f97","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4F01b950UFm6IMqV1wUn0e+y9ASY0XeoODYNQIFld7Kuw/cCK2OhyKUaaIbELkQqGDshTdyyjH/ArwsZjngdUfKMvn/BY2flYLQkEfM00NmRt0VZsnEGWCUJj/QaX7sAQ7MmpA08267INDWxr65nWQhL5xYjQn6Vyv4yWQ0bMeiKDGlMWWp41D7j7s5CutZv8u3JEZEABHdOEwf83aejaUQEpuQtCMoWALgl2UH5nRzI1AY4zkVa8jwVrCRX6jYBuy3EXfpxmjw1i6mTjQV9bk/rMJvRXQGfodBzQ2qunyzKYHwhwt/wYI2MFApbc1BXPZzhXkTsngNyh5fhE2fVLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4617oure_e2etest","name":"fv-az4617oure_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fa0fb2f1-5d9a-42a1-96bf-19aeb163c7f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19002","status":"Disconnected","lastStatusChange":"2019-09-19T19:37:42.6754887","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"e6316956-c21d-4c27-a07f-d496734848d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArut0u4Gh2ZUVQ9HtIO/76yJ2EnJLnLIKQTZahnTHCRPW8/Kk3MVgCZl8z5u5P1C9YvX3PNvnFAsh9OkpWYnooQJxW0ScKjrFQ4UMrvrXKTI9msvdjSEatQxhlk7ss6NXibcMAwvRJFf8+ZpoPbY3B3eoxoIZWQSe3lFa1eTsaoPDq1SSbp7jF/6+Qau1CxFBXKADp2XHgFLaP5FvS+J8a7/mo3Ds8IFXXvIC6Rnh05jzah6rJ9RkYCyLKqw/Pu2oXfIsADnvlYrt4+QFY0eNWCaBjROQyEw4dEXxiGjDVSZgsjyEysWvG37UdgHJbgxZ7VMHQ5CE3ggTCCT3IXEu3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03002","name":"0.1.1909.03002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b384f090-87f1-4ba4-9f83-9d47af50c4d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03002","status":"Disconnected","lastStatusChange":"2019-09-03T17:34:23.8029945","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"69f5d50c-20e0-468a-9d0b-0c32c9c04d96","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqkI/FDoFtbMxrEmX9AeVRddq/R70ug9lRECWsZCMl0urtmFGEWfHMocJ73jkvlyLVaokjJvlr4ZgU/9+Bc6kelplJ1jkLc2vLPH7O8EW5Cyqgkc2osfKaoIWkut0UP2yrHWGWbC+EUfs3QIq7f1UP+BkupDE+RxViODRKZTvuHRr+YNz9o7zJTALG/UoQeCeg0yoy/QwpbpHc2OBSAb15aERtL8MMlGuCAzjl2p0NqHMWtRtAUh4TXnrmi0y1OFKSIDqUyuazbw7saYj1p/C1OOk7tjAim1ds32kyJepyO5bPIRok5qgWcxkSbG8Yt3EOWZcJRw6LJtjndxuKUL4OwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4581gbez_e2etest","name":"fv-az4581gbez_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e85fbec-4aaa-4357-b0ad-be2342a9962e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20004","status":"Connected","lastStatusChange":"2019-08-20T22:44:33.0590243Z","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"e4788140-1d96-4e8a-b2f0-11fc8c097e97","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArbct4yR6ipHWmleu1PGBd1YpnvOPnv3txOmn1tV97R+LLfJTNV7bu445+0L69lP9BXDAdlWQl5jSATPRMP+2yxQdI8iZ3Y1SnbwEYYKJvGqdIAtCjnXdSQ7uVkUzhMEvTyI+khDe4R9GSUf4+H5kyMYOalIsZdUxbuPB1Mr3yt0otNZhtVqDONoRE8I7zVQL0O/74/EstermlsL4Fh53BjJL2N+IYQmSlZbWUA4WkaJ3QPVHNZx/fx7BzwAFNeM56Euj7lRLyiY2uSmT34MYSgUreGcpmHQ7P9rspatHTLyQH0SOnR/qQ/uUUvHypkOgAhzQueFsq73heziRvYrXHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6235z0gu_e2etest","name":"fv-az6235z0gu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2364ac5e-f602-4886-8af1-2efd8f1ce167","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22002","status":"Disconnected","lastStatusChange":"2019-10-22T03:31:28.5340666","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"ab8c5f3c-d50f-43dc-ae16-75d427874c9d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtJXdDKK0orr9cwd/vdXLex2+slzG6gWc1xhDRqPz9hH3hxKss7MNU5e0w/bKSoIpofFYDRhZrrRTETlP3Z4ga/7DvSAl3SG4vPK5ZLjDoxvKq52XbCjY1cys+CvcEF7xfHsvv2anrNCKEBLhBkkvHae99kj5Qv5An8+MyQ09iz2uDGSTopOIVryslSJhtZnmCQvNuGcdVk+ORjCLjLYFcY9yt/nwYTCNV2Npiqum6m3Ym/jmEa1ciKDuHZezYUge0tGzlXG41TWagDuCEt30HhelPUrcEvkA6WUdCCvUZ9p+bLiFT2OFBG0DAQvvmfmNBoyuq/nbFLN+CIZNuvaFEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456kylx6_e2etest","name":"fv-az456kylx6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"411af5c1-b378-4f35-a296-659434af8dcf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24003","status":"Disconnected","lastStatusChange":"2019-10-24T22:00:51.1244851","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"ca5b47d4-d42c-4131-9c1d-ea9e84cfb203","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJyjb/l7sI5ISTFd0LPkIPxQ/dYLe6yWwaNh6LyxypEQliusu9Vt4LOoMtNvF+Z6MjNOs4bdVZw2Jo7fieRoCu4u6xBN18mIpZZaiN4i19It1FS4JG0E9HDcMET2p0/IO2+1lgjwOWhS0QfYXMts7Nj6V5XswrYWMl5U/2gjvmQ08R79y1dehwR4Gu3gumdm9MsPWb9LVbZRT4FvfiJD148RJ31LFRon/5iCSkD4P3wJElR7AXfgCYWWvSKNHlG28ZwyeoGN4fhA/90eBCH0GkOnoZ2Fz8+zAG26nR6AJSqYq2UHoOkZdtReNLRCbHXkfk2/LBCRUWwY9AiUdX/aywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4581jciq_e2etest","name":"fv-az4581jciq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1fcf1692-a637-4e60-92be-fefbda6f684f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21004","status":"Disconnected","lastStatusChange":"2019-08-21T19:16:13.6927026","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"d8ee94e2-1707-42ac-87de-f75f239ec0c8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvZY2uSJM2LgNKzp8th00dRS1sLTdZP9rVIkMIO5npKa8BmUSfYRGqMqOCSBbIczfHGdieO+EbBhYKxp7WNNt/yd5xQNPyouIeth97TuIpfT/eh3tTUBGpXT6a9/bWnlP4y1chWlxeqzEkNEisiItYWkLleI3yQDaOx2H5DTMWdPpiIGKsQCTVrJu14stlNSW9EDz16LDQVZqu4bK8A2VtpLiGKj7S+FHDTuiHVvHi2iGfKIv28oivNFbAT5HPm3vJAPA9S5OfTrvt8dmY8aOBWTM4Y9Q7HnELe1RfPRc3IQLE9IQLrttiHX7uEnuVSDV5+FTOBpPz7Ll/JDlIfsywwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03003","name":"0.1.1909.03003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"97339553-039b-4deb-8624-7a3c9292651a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03003","status":"Disconnected","lastStatusChange":"2019-09-03T21:49:24.949923","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9dffb059-0a3d-437f-8802-3bc6350176ac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Nlq6C2KQlokn5NqyMjVAwY8jFJ+3dc4zSCMdp2+/D4JVgnhNhthVEWj/XzLns0IowJkQqVaz1EB6iOwREnPd5Fd22KYXSh8EUW59dZnQxcA2Llnk1G8YjyeMfPsp+ElhSrpYNz17QX4vtsnoUrwc85wwxMYxAFWmq0vdIIbklMa1t4NBO3FpjE68kXfHylf+UsRfLKLj42MEJJ0yotD26R6NeF9V781IlF++OOvxaSbcVp95qFu86r1wRNZSfN/ZD3U9m0+j2PiWz2rXwb8kjyQj0rPj1Yxd7z1uKqCNU1ZvAroYOXK6sVYzddwAaZ0Nk4htjyvxnmRqvh8gxoMpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464vfkcw_e2etest","name":"fv-az464vfkcw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c7d8ebdb-b4a7-4325-a4a9-93851bf6f7cb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23002","status":"Disconnected","lastStatusChange":"2019-10-23T17:26:41.2063686","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"41f8294b-f16e-415a-b2b1-3b2f15f7c35e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuguUFdox0ih6JSYzl3l0kChYrXAPZoFLZiWKVgXMAuiOfAlVpTdueu/Kn59twY0/uhpMFGZs4+L14/TO/JkT0meGFGCFeosSKCrC4DWA+ujUj9t2vexmF2CARN/Yg7P0mCOYu48V1o4qJV5Q4OGVxOQz0pRD39Roe/fjLqSmDf4tzKt3UIB/jRyYG+YBfelBr68C7Ukw02ZliVI5ThakL8clEKbr8V5FySNDl7utzgVo1pBoHNrdxSWL8hx9ljZVGuaorfCMIeD1t6cF/IwgfuL3Sz33raRbS0NkoMZmelx7wTNtNJEqeqxfh7/cbOvhuBWyIvSs/x9uK7e2kaJJFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az6238pvbd_e2etest","name":"fv-az6238pvbd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b4ca4059-77fa-4421-8acd-5f2d6e8edce5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22001","status":"Disconnected","lastStatusChange":"2019-10-22T01:51:27.8141881","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"c733e542-a04b-43fc-b114-991e7eaabb53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5c9We/9nG4C+meVtkObr7F7rJ/eDvipZRnF/yWanCx3+hZ4nzREOizSWuI6zT13pBpI8L8QqyKOByDjR2qH5trC4eF2Sgij1IOWy7u9Vcgf1nrZP1OL0D6u/+E4zeGalU6HslmDoKrWJ80ZNsuVZfLSWDfXD3IuLrcYwFOU8fuRoPHVDw2klkF19k3timoWZMepWP3rME6sLpjw6+CEvTYDao8+x+0y+fAdKWABi7GeFzVBcVO572l2uvI7gZUixBhbT/0LoN45JUx6S2Smn5g4VeVrPbxfa6DRcGiOF8eKhIp14oqJupsLBQD35xFi8C3MG71qpp6+YV/6n6KQiRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456208tj_e2etest","name":"fv-az456208tj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d1a3c7d0-a1b6-42a4-8a96-a30cc47bc8db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22004","status":"Disconnected","lastStatusChange":"2019-07-22T22:25:20.5709341","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3e61e9b9-fada-4463-904c-e1724656519b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz2shSppd9qzVowBCZVfP75H7+qMLeX3vOsGoZu8l2OM5kRl4zqYP6We5C6trcopZtmuhZziGb5V1/OierfYOTIi2N9RVPtBI+vP6zQi0SPDtxgBWcTKF9hRBLm56H1WWxfj7G44fFB/dIvDdxFD5e9exza3erS4fU2ushKs423/xACKcLlz1khCE2izUlpI0cVGtcIZTtIBwGk2Zp21gsltmWqoAfeo5PB0Ng6QJHbf5jAIUZGIDenu0KOy3N3DLNQQhrQM4a3rbjSk7WdorLO4gBLUWgSmYWv67ISUonKBvvQZvzfVz0JgxK1fH5o1iKV5K72Z3aYKVNueyS/MfWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456l2qt4_e2etest","name":"fv-az456l2qt4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"30e983ff-fa1e-4d1b-90e9-6487d1685e56","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02002","status":"Disconnected","lastStatusChange":"2019-08-02T21:31:05.010805","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cbe0eb1a-ba2c-44e7-a30a-5f920a79a818","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtw6FeeIrZ5ug7TCESNJdCJBNh3SbIXN47WJzDJkws9K3H4irmIgMr+EckvWBhlyR1GpjlSLKFEt0jjuvk1YiQM/7d3FNMlYZ40dsfI3OpopJ3AUTfVhgnVgMuNHBuJIFbDDKa5U4eFrpNStvgNdwB+WAchLBxI2ahN/N3Qm82/D4Oh7IY5AOVLJ/fZk95h1NCVAzwdPMhcTOI/YTa+5ozdhzulQTLe21gAEgGN/6ZEHdSTFs96zSb7dws6hgLMVayNV5oSG73YETQHhvWPV01Ljfe3cOkQ9oCfKQuBWio0qCwOTyWI61AIWZJfpyqyT8D6VgdousEDoyqinzR6bvDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464vx29g_e2etest","name":"fv-az464vx29g_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a9d754ab-7895-444d-9dd8-c19140efa282","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18002","status":"Disconnected","lastStatusChange":"2019-10-18T17:03:42.6807387","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"54ee9a7b-3bc3-4ff1-9993-b15680fa6738","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8nEqpI8o6TPulY2/gjpLvI8EDuNVcnhwLxaiC/RNsMPKyq2MkVe9m330Kw8gc7tJhrH9Bxvf+AjgwoK70Rw/u52wJz/o0nR2QjuVXC/vQ1a/TpEGWrik5vCQwJspfcdsVPb3hfjtT/AMQLZUu776eOMKa6Fbicqwe2joBMySMp3AsfCqalS0rrLIASNZRVyCPh59nkYT6l5tJ0l3EMdUK4b4f0l+CfRImUsaudRuLogRBjU5r9vaVOl08k3tZIE2UrTFSPRa1hK9OI7SluNjQRTN8UHtPedg4LpbH25/Wd+v4HCH1d0gtiqB64Jre2Hfuk64XyyYrH1oZPUtgMdBOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45624hzc_e2etest","name":"fv-az45624hzc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d2bba58-7543-45cf-8682-8d33d95c47ae","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.14001","status":"Disconnected","lastStatusChange":"2019-10-15T00:06:14.1298481","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"67ffacbf-ac6f-43a2-b78f-4b39322258be","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn60581XB/evGUZm4iwlWNIbuIPxze9s/S4bFZsHxyUH8ZovAEi1f0QSSjpiVdykEdtaNnQujQj2e+R37AEQBPubp9dKOJZxAlmg9u0Gy5Q56usHHWWhCo0Q8RwMSRpdbIMqhkcXlMQJ5nYBA3WfX6tOT0oMKNZmHfiS/WO+DnhMvijg21pilw3sue8cQ70qoR2r4cQRwnCPH02oigqup3Iv5EwQ17OLEi/1qyaJm2n59nSoT+hkwQheReDTmlUgR/BW8H+n5SjUJjZgvELqXod08zWWZLbrs5Ezu+ciq0x8Oummrglyplhm4o0mloE3cyfiQvvd53a4EtnZgBVMzjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az464xdyr3_e2etest","name":"fv-az464xdyr3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d398f8c-678b-4136-bcd4-f9cf553c86bb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21016","status":"Disconnected","lastStatusChange":"2019-10-21T23:46:27.0456655","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"e009432c-2037-42f0-9c6f-c605f8319bef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvosVrvnSD7qwQxmR1vKpa00EWX7Ya2xM344me3H4W7M/ugkCmrXzSLJHGUwOXG5C7nqPLBAz1UjgfrWc0lWWnoTHxyAbnMvR5SxQqlRgh4EfbR3XWBC2qo6vz+x6M5QudBHVdAWWnkEbrv4r65ZoC2baGi0/33CLRA225bQ9rMNJ2uehbYH9KfCmS5oqtzPl1dBKOTjKYhOCQZ5oChIKb5FVSOqaqpo7s/z0CwESyquK4W9jUqhOuqhEccJhjX3OdNcz9SjutaOcciEUr1kZfBKV1LjWV6uoLZyejpi+uYIkEGvFjpWRoIMw+SOyR4nb8VJvG3bBuPnZAhkjeHHnwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lbznm_e2etest","name":"fv-az456lbznm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"29de1f84-577e-40d4-b9d4-3d7fefa2a76f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03002","status":"Disconnected","lastStatusChange":"2019-09-03T17:34:23.8029945","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c1ddf8e6-7536-485f-807f-c7c1b98a8e7d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7P/fbtUjC9ETZ6XObx2UFhBVQrXfUALk31DU/jmimKb+PCyaWrre/S3Z8VXBLrqVQvJJl5jncDgaHBFBWtFBCJBv3Qo10WpEVBCkWgzK4fY3oU9ND6ZIGLxHS+D7G6SfUyiFLzYtVaMbgMYvSTvsrfbyXttP9a++B0/2wTt361KAdxLC3uWk9wabPoiVU2sZPR9UPvbOWYY6AQ1bC1Rx/rouUFLLV14iJ/JZvAH/dyYjinHTdYoc5tekydc2vmzNrfMSh5mw72xrROuVpAskibJzTUNfKrUESZStjHIafnKd4CPQJpPCXIv4fHs+sR7UeL2YVp6eW9r+maR5x0V2LwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03005","name":"0.1.1909.03005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"30958e4f-ca47-4cd6-a677-477c076271e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03005","status":"Disconnected","lastStatusChange":"2019-09-03T22:39:25.3909189","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"61327746-6cd1-4cfa-8484-5e178a056121","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyJc1q7jSXqR3WlW7pK1+6Q/wWRkxbP7iWOlnoZGlePWM07ZICky1rDreg5T1wgs1z8JqpaOllhL0BRqioIYh44zQ/dA8ah9lKjmE3qVxlS0TqLZecDSh5MN+IAVpWTPe9c5rRnxxEg9OmFOj2rVS56GR8dKw8VQjuCZuNfFKOZetNAUxPNPFqff86kv9+E45A5KEGsU3aJuCWhOPyjm8vQLaS0rRJzPsdzO+RYzVUlIwm08YUzGERIemS9e9BgBwhGoo6T1JehScNXIVUbBu3iJQTV3hIw813rpn03wRzxDTB5OKg927Ex6Fqo6ti92ft6csa3Mi2zCevjT+/1/QJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4617sx3h_e2etest","name":"fv-az4617sx3h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e402e31-55d7-47f0-a7a9-8af6f6c9ffb6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22008","status":"Disconnected","lastStatusChange":"2019-07-22T22:55:20.9990808","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"0cb6c2d2-60a9-4121-b8cf-741033206ae6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx/sTWyC4jEhWrSZhyWI9KVOePh+abpVL6MxCVsZNsJo5b/q3N0ogTO63ajSt48BNc+4hxs/n4LsXWmUnz57zcWFQECn6SfwNEaddyN+6qKVjGRgL/cwjRk6NoROIOuVoUX153q4vGxAH8IBBjTkqPeqeXbbEBu5c1/J+A/nDoEQL7jCzWJnLTE0yh9Vytp/JsJh9Juh+bPG8oXRyl/Q/wrjH5vmL0fjKDayL88gdbOngMDwMUuS7rh6QXM0xBQtP6r0ddWMh6ND8vPTiMiu/plyx3OiNnxk4gQ2a1+v04Gleq7Fsy0p1fiagzCJFoqNZKEfcbd7Qw0Vd6FUrEyY4LQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03006","name":"0.1.1909.03006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"48b62d61-7e7e-40f4-8acb-4f313627837e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03006","status":"Disconnected","lastStatusChange":"2019-09-03T22:39:25.3909189","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8141daf7-451d-4ada-933c-3f3f64b414bd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqjknyeAtPRtYBfvJ/ewzbWm3GFAdyp4i7mE2ndnSFuY0wi2eiWvEi54giPR78xo16eQzC8fq25+OYO604L+8EQ5D09RUdqQo2tnT64fdCxFapWB+JzgXRT9Qicreyc8XT04QP68YZhyJcVRSK0aup78x+CK620KXDZc6zuYHiFwB1gicaMjq/+wp0c9mQ3zYRsY6UNXxtwVup9wylker264qTwqmh94rMm0Ceii+m/7j9AmT5in0SgHhI8dmjvAHNNaLkKXUjed5a0pQlZh03BH7quZXL8kUOjUBNzodJSQAcFrkeznEsQYYlPeQ2Ic8LpIPfEBXMS8S6hR28WZogQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45629n1k_e2etest","name":"fv-az45629n1k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a92addb3-8b5e-45cd-9d2c-23239979c3e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05004","status":"Disconnected","lastStatusChange":"2019-09-05T17:08:50.4581949","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fb2f9cbe-3b3e-4d95-b29b-b1c5f81d188b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2mAc3LaiwCy15Y2stHQtaymJU8YFDprp1/x7PfTHrDHzy852YXraUyBn51hLkdB0EzUCqEHgiZI6PDdaRtapa08aMs15wjLaNOcghLyxZs5mx0vlvf1as1yHZkT5HabkAmlK0wAiItLuyyF1WPdHRCXZ/EUYXythAfNFwzJtDGZBzTWVKX6hscNoV9q/7c9zl/ZFRw9Cq2CRMcDDxtS01tPXqXfWVI/b2cXnD2NwW/yWg6W81AhqgGuv05OZXG30mXpVgMPCrEWN9AqxWRU+A0Bd+XIFEWBiy9Y+i5KxUeV3dA7S4SeMr9vCxY1Uex6hTK04UK5m1ZERF0RAq0eXawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4581ljxs_e2etest","name":"fv-az4581ljxs_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1a4fc989-d7b0-41f3-9adc-aedceb1a1709","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30005","status":"Disconnected","lastStatusChange":"2019-09-30T22:26:13.6849938","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"905896f6-6f35-412b-9606-56f452e7a837","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7mBiFXhLMZE6B7PhftfLpIRzjxrGkojTBHIy11kBCDMj9VQWfTY05w3AhMawboUQUgoswVgQsV+ib5fEIcFVYAGIt1PHQw8VKPtMeGm/Mh3H60vO42yYsPOsW+q6s+K2EkH1OR+/g0syiWld+DvJZ1/MEAGGbPAjijOXY5w0hULDSIeh2z1ycMhg5UbSnFvhA1Yuny4Qlt3CNnbagUWPqprNjCNOzBcwllAeStRbjyjKMt+S+goJxhoNfwtXiM3NofEfCFP7WzK9W+oAQdofbD5cVI2lJjMX5G8ukiSBmbBgiLrni0zKqyXekwctugVutkE/jFp6amJiKY36sBXkkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az62394qxi_e2etest","name":"fv-az62394qxi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b85410fd-3b75-4e03-86da-3167d0332045","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17007","status":"Disconnected","lastStatusChange":"2019-10-17T18:18:19.9448978","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"c99998a2-25f2-44e7-947e-e5cfaab28f75","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzphUfMNPXNc7YnJcNBo3YQ7sGG/549GFuOgKZ1N7CNYa/lku+SNUawuv7GR2ruGUUpewNwdqjw8eGvD84K+x2c67S6dmWpYscm7olq7MwPsPiflU7wreyVM22zqy9GrWNQNL9M+sPr6ZBpMdkg4FXtTabz2f84zM7fulsbjEAFqYgHicryZkxxCW4OsIFGZdhDTlzYaxtTgiYKPd24D4XonkIUg924rRzDsCVef1ky8AWji82tWK0exB+9AqBh7g2O02jxHxU5sxd5oCrPCCwjOupIwpe5nbBWx7tyLAZfrtsqjITJukscPAn/rdi6PpYOMXavPJxclcPbfqQ1fVQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03004","name":"0.3.1910.03004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e2394457-0839-4b7e-847e-5ab59e79bb06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03004","status":"Disconnected","lastStatusChange":"2019-10-03T22:39:45.1132758","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"097be7d6-e835-479d-8ec2-e7d1c49f613b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0+g28hd7dGbHLDc7hHnxoUEkn+o3nQ30NHoBeYP926/pwtFY3+Z3SjMVvs/4CihqkF1HDeuNTVfimMg12BGdgApgVjc9N/uIzn9qVBIm6bNlFmJpLj1jubOja0WpVhmNfuuD/98BuHyq9EX5Bl1ipUCTckiEAyGEM+WPqZrJDiKHF7iqokoJL0MlaL1SpeS/d1xs2BXIXx5eYCzDZTWcQUpiyTAPTcmcSygqLOqY504tDTgv/PTl1YwzHjMOeSZUdy9XCWzUAIF29FT441WVjAiBE7R82zSgVde4lWN9+jSjQ3pgDBN9gwR97iEgPU0Jj01UJsmCEqVAUB3vCUOLCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46185bg0_e2etest","name":"fv-az46185bg0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0339e85-733b-4616-a1cc-ec7cdfe7dc7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16005","status":"Disconnected","lastStatusChange":"2019-09-16T21:55:03.8512197","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"9b30b017-8740-4bea-a52d-5a8ba0717f46","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyi6Pr3TD3Iih/6AxC75BWquXX8uPVEcC4NXGW5TIWv6GNqbXStAqNazAt6ekMi7LhNbxKV2657rskvwJjtk4diTs2yyla6Au85unDCaP5kvxVowkMH8LT4eUHobHaLXGewy/T+LAzADWNQVUKi3pszVBZLc4Lz7pkDn4GHD+KuqBJ/cgaOpW5XnGM5nyVnfUziQOBeGdYGSPVKMPoxWmies5EEajtIjdHlMWzrEb+H704Zm2bVmMTrFYWlR5vQoobBoNIUh9NUEdhZfIna7UOaW0tlP1gzDvJkPccPEP9v3AITjIW04K1uZ63SVJfmlSJ3zJ6W5yAXsd44lFm/ZGSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4562h603_e2etest","name":"fv-az4562h603_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9cca7444-e9cc-42fa-96b1-7260b8f9ab0a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19002","status":"Disconnected","lastStatusChange":"2019-09-19T19:12:42.1236707","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2f58c474-e0a7-40f6-86e8-f32a27534a3d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvfxmkyVr/GH5cdR3VAwOAcXNuIOhmerwTHcjwHez/3UHORca02J23eyPqq7JH16zCqTq+gLMbGinYMrTWy+PDeUGWVuzo/+hp043F6aU8FzVJRa5olRULdBnMbbR2t+rwPtI6RBc9pn5EXI/5hSjkwIcbU/h1XhKLYZosg2jNOKqvGbqd+bqRSwX0XIzEU25SDdV7mHT0bMr54bA8Lb+MF1OZ2zSAdWD6FzToqxOTs2DoEcWCi/0DzsFxpgIxDk+Vcbpc4vvY/j/ibfmc/X3qwaKHhx13hdGI6HsE2E4Y2RDvvSrXWyBrwhvYufMkmP1WMk8tg2uiWdvs/4xtK3wrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4583ta9o_e2etest","name":"fv-az4583ta9o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6ce7bca0-b1d7-4902-9dab-f4a73dfacd87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21014","status":"Disconnected","lastStatusChange":"2019-08-22T00:06:15.9040417","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"67813c84-bb0d-4dbe-bddf-74843eddb826","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw6nucSSXsGj6roL++MLhlf5738G3mlav5tP3/1I8zUe8kSNzyqkMVkyT4wGdcoidhTnnLY6Mzub1kMUW5VMHSDcjRIimuRC9WL3AsM53TfuJDLoKdCjTYNWjWNrb5BqFPCDaz1pVkmx7/xdCtqXDvwshRBvrMJfC8ud6hFmSFVjPrunOVgW9NyCNd/i+gCyS/nYPLmt29mwSruF2nCByhY8v+f8FIop8GCrnuW5FqSKBxOmPBEn0wboB9sqbZ5qOI3s8fihc1oORR5LrD6Pj/NIEonXI32NrCkbXeDWo6TwwJeZgX/DCP3XHPF6CSMlQnPOdbc6t7dT3VI7bYTWkEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4562hfjr_e2etest","name":"fv-az4562hfjr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4b79919b-0b38-4b8a-8546-e5e93f0cab87","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21005","status":"Disconnected","lastStatusChange":"2019-08-21T19:06:13.5097552","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ad3a6180-b605-4273-ae86-4ffc67019e7d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzMv/mZZutcvpVhEgOl/GYMgczCGxDYQ3Kr/PshKFHgy+4NsSa+IIs9wsaWw+KYTPwvJFduVM41nDUmlQgTqToiTeEP81eijKXIaYNKGixA+W8khZWAVTWTuSuXDLoh7Cx/l0CVyxy/zzyUJnE4Z7XZPOY6eJ1MIGyUVXO/sENHjF5WsLcoz30BqW2csN3OUo6B4tp8J70UO6j0Eb/VOrWjvHrqt8MzDejEIGrItfTUY3lybZg/vJ15GfZhVEIa/gdJCtJh0JonLuRRZwP27npupcwHBKfnL+nBbFxnZsdEgceVV2xymtDoBxeE5NxbtRPXSLYQUF+WNFdeaQhVLWywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623bag6j_e2etest","name":"fv-az623bag6j_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fae6eda8-f87e-412c-93aa-84e59dcf18c6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21004","status":"Disconnected","lastStatusChange":"2019-10-21T22:46:26.1491738","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"e3618c77-f18c-4f36-9c2a-6717e04cfd4b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxinIq6cSpekUzaMA3Y7QKbSsX7E0crfz3IKtrxDOApaJFyBB3dr5soKGYwtE5WoYySHxS1/Y529kOVBr/0R91q+pPba8elqsJMFBR85dRtw9p1Orz4/hTMXOFimdC2TvuBIjJ3TxUD78LLydoP/LF9G/LKCV4gNjjhPepJvQiDCRs8h7igVnoshdoJGLcp0YpElOprJIkjVskzSzqlp31JhcAbdCbYIJzXa1eouBZ882aRObst3GRA61aWqjAlxgx5hVwGCP4/YNGRU126T1SawJerkHcT3hzVHVMLfFuH1uCpnmq9ujCwKOAoXVv71IPyF52NIYPUCZOjzqsaW+tQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4618kmp0_e2etest","name":"fv-az4618kmp0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d9462b40-cdd0-430c-8c82-98142f51141c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22022","status":"Disconnected","lastStatusChange":"2019-10-22T22:26:36.1294438","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"85a77de7-9452-49c5-b5ce-7c3d7597bca9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4T98kwLKgHemTw7tjT7AEIpeht4ADh8XhnSeAMW9NgFkOtxC57lq0GYZXPt0Id5dzFSpRJ3OOLZJr1BdL8pASzqFwPXw7qKCTCqsO1hwT4pRN7cbZthbHATOgR2GugMoAYD4s7SZjxuDFyKNj8AA7oJmgTFo3NOhoAB9sOVWAKztbxrnoY733OEmCH2ljktmOhMO7t7Yxq9oK4F0+uO6eTDcInk0zvBHMiWf/8S4Te+6BneyI14vo84J8DfOpwR+wjshJucpHvRAq/WlpEAjiWIsrRw70RhyIwRHgkXjVG71F2zHSmQp2tNW9qpMCcwv+ZyNsTJNl7oFalOkeOi+fwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458471im_e2etest","name":"fv-az458471im_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4e172e20-91bf-4614-9a2d-5047775e9ac1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"45c39620-59f5-4199-969a-119cf7f206ed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmTmcvKpBqhLyMW8L0g+wFBasNJ8Hab19V21jp9SVBypScWS6c7wat2yZSN96rW5HQggrJiYjOulKNfXkOuaKj4I/Zxv6hSdB3WOef7ZT7X5WmY7C19AjEk7dLvDqu5+lG6mpaypfidA/bI0JaBcLpUNeDzsmAGZBIFKlUIaMU4WLGvoUo9YQsYbvGXzt+hnHJ1pvyDPjzPTKyWiH3HpMPRi01p66uTQbZxK0uc2zlSuYPOyS0qMUi7ifM1fr2gzYaQGtN3t3gGiCrhph2VoOSmAEFwgtTko0GRFtY5uoRim+p7QpmOJ1/zKQFGsQGegx9q/5lm4AUbfLtfyN4dWhwQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4562rxhu_e2etest","name":"fv-az4562rxhu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a21de15c-ed71-4ed6-a21d-5e3c44143863","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.09001","status":"Disconnected","lastStatusChange":"2019-08-09T19:32:54.1203432","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8892d37e-384d-469c-a3b1-b10e0010dd66","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmC9G6pvgUtxv5JTz0st0kgxd3/wvVubcE2vL4Mz/TSzu/nPI2rFBS+D3O8JJh/GPYvGKK2B5InxSOUbRomuM3FnMq8c7Tnlp2T2fTonHwgzYgDC1sgXz793fo7vfKfmeHz44jikQhfv/ZzTEayr/8oihV2fEtILTI08yVVP3Xb2Fusmy8kctuFXvJ2Kub9XhH8knsEKWIdC8u/m6ZwM1EW57fsk1ws05FaSFEA7tzvP+PGK4RS8wodowgyaZpp2WnUp0Urty0J9r2a4Eb4m8Rez5n7GCEvn4x2GlY8iwx8ClsGS+PT8q74xT3S8rJc64AQx15d7JDF7Gf7BWT8f1BwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4670mkho_e2etest","name":"fv-az4670mkho_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eca89280-ddc9-4ae4-8350-d9adafbf9e20","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03003","status":"Disconnected","lastStatusChange":"2019-09-03T21:49:24.949923","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"c0c5d786-051b-4d71-b12b-ab5142b2a472","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAujbeya7Bjv5OCzexhqk5UiAhASz2icBgD9MVemKKQ8JSllGBXrIr3afgOI4DmhCPlal0I0mOOmZeaf07M9dYhGiSzM++YgUNP7QOi70sp6SyQAPsvut+MTgjVQ81dRzUy8kfF4/MjzTVVNidBeq1Y73P8IljVfpyvtg8rey6bT6lojlW9W5N6f2WyQYjMAig1bfFKq0ECKRs+HRXRQMghuPd6j3PFVrukjiVigm56GBkJiZKi0GfdlHbNvTt/fJkC+wWIiDcCqMQT9HkvqwajqLLU99zG9cdyw8OhEs77H5TEYKSBdgX4I58x63L9Cn5Lksel5Acjsu0NDhHAe1zFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.03007","name":"0.1.1909.03007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2c1e736f-edd9-4c35-9c60-54557d8882a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03007","status":"Disconnected","lastStatusChange":"2019-09-03T23:34:25.9738763","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c4951468-08d5-440c-a05c-67bad0e18bd4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6cNasLvJbfXII2bYGdQrltyiYoc9Y73ikduQewhQja3fJ9c1vCr994YxLEYnPonSVyTNiQPl4StxQQ7qcWxUKRit090Hy1VSARMWyGfAGvMDeEsX+9oT6MBAKdXQc6zEGq7cq4IPgnWZE7i69B7u3cjCCyAM+64bTAVob4SXL8EQ3sm9BVwOD15zQZBe60QwpucWP4lhp8kXn1cKjbKrWeBJcWqlCufXmUJCRt/8iSR1q1JpTmMXtVImVv86JTC8910h2XK0+0QAKzKgNC2kuXKNIrx+Ui7ENTxK9ffsUbsKMH63B9Ma+LbHHGhkwxK/sX5/LuuWJYPR6czWOjuJXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46730pzh_e2etest","name":"fv-az46730pzh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0812e714-9841-4b78-9ab7-1481e6a1342c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.23004","status":"Disconnected","lastStatusChange":"2019-08-23T20:33:04.2048901","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"1c2eb304-3117-46d8-888c-421139589f0a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqflwNWfv+inI5OtNsUKD40Pz/bt+3yja1n+zLIf3LmBeMhdZ/iPVdBql6j2/pmi983UaJ+mCTU/LZBuk6BRQAaOBffnd8YdbF6fpyzYGLfme5QRTCP0qrVWHrf+u1WYVY6Da91wKP3JnOZG0FPgjgL08rg/vyBBAevqSLv1ZjIYV6veggvVprqbKrd7PhOy3VNq9SqyUTlwdDc9qM23aoduxPJdLqMzHLEd+49bESDsXLq270NrbcNySVEScewUx1OmQOmZSq6CeXOnWTHNh3sRHhUwXcPK83nPlSbVx12oVwn9k4TpfFY6bOnFT6mFN8UkodpCe0CRdoYmvDx5uWQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4618n2el_e2etest","name":"fv-az4618n2el_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4a2b4202-71c3-46da-be37-b813f246d6f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16003","status":"Disconnected","lastStatusChange":"2019-09-16T17:45:01.3960378","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"e0d37d41-5453-4f9e-96e6-e50468b6a1e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Dd4WoLjy/2jBHsSBmBNH7ifGHK2imPWbyr5FfeJ5Mx2ZSHBJ3C+rsnqyPEGM3t9ehp1hGtTCF11u4E6lW9b6jk3//+Hnx0GlzqpX/viNDTrgw/QVv1CqCVvBsAtdCc72rRdybJlpPMM7J2BYLEnN/y/20YYJ6w+3UF7fShsFSvDHDn0km4J5aeWVD5mmdHhbJ+9zOm5dKPMSIwDTBQWHI95fsAA/7QlSuZGxiosPg8ZxsTObz6Y5xlDWQNjo/RL+aIEJh3/xSPXTpg7xu8Mgq+dXniQCyJyMF5lzrgH2IJf2UHAJui5mx8IB6wdMMliHipuxeBDkW0qGOl2N0leRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4618p2fk_e2etest","name":"fv-az4618p2fk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a469f0f0-3f1a-4ef1-915d-e728ab0d8b3e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.14004","status":"Disconnected","lastStatusChange":"2019-08-14T18:02:21.6982289","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"ad89b228-f466-4814-b811-c6089eaf2645","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5dHkv5k+owX5lrOAe5Azz7NM7LWX0Q7ux73KKdxLMzspvMRpR2tBCK7+FJBicS5Dt49W6uAUItnDKkP3IUmsraB81oFUhAptmpO2UrzyV797AiUPFI03FfYcJHwgFm4RWfeV8Tl9vzt5O/Mh0QwokiT9mCX73eP1beAVdTeDr12fLaj+RBmdt3P+JVl68JubYfK3rKEqK4/AWfcUgqjunIzsKtn/Bu+hclFgDWZ3dYjVXoG+ThZWQauW25oYulIrnfvKElWb/oUy3Nps2e26X2Rkv9Q1M2GNSCvtIirjptjxrFceTmzfMpjGEJhuvotCtMoiXu7EoTk+nRO9sLzvwQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEshAuESqVh4u6TRNGiBE6iMhEzJCXArk0lbdb19D%2blA0wsf2GR%2bP%2fSlV%2fNY%2fi6ropPmn5EO8TWLiJ7CR5tKp75turqplWqU5L3nVT9KPc8snWV2q3XnfZa1oelFXnbqfccMy7Ew5mk6qGKaVKbZlOAonRyezs4N%2b2Gtq09YXceBtp65E1tZdfewnj%2b%2f7VhzcumzOPUel7CQq3v1NG6FckInFH4g2dRTNVjSiNC2%2fCH79%2fasrRLOtC149yDMqW1QmpB9ctLIOw5%2fQiHmI%2f90gX8Mq5R%2b6eV3HDO6frGPSk4kebZE01RFtI3eEmoYOi3foYBmd%2bS%2bIzNlMN9ELNgMJ8gUTr6c3eIbpKnmUSXC8oSJARhkIH9wNpeEGw06SoEiAOSPAthAE1j1z7BLvgq4ZAIoPjHtcv9%2fQ30e%2bY8c5LAAMQLsBuAIk4MLCgMU1GF4SYy8AzKe7N7qERUiB1TkLc4bR4CmCogcG2Fj8tAMagQbBS70WNIca712Gmn5IWRRCyEI3j6kPSxcKYCGD3F%2b69RahO3Ru%2f%2bzTwYCPCmjwDTj9gI3v9EiIBVBxLA8nxKEfAhQuB%2b8VxomTP7ieNq1y%2fr2scXul%2bLm7kVOmONPvdQY4ICJb3nBmnvT19R8%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '116587' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:50 GMT + - Tue, 15 Sep 2020 00:35:48 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 9dd55382-dc6b-48b0-8df2-756491cb7fe8 status: code: 200 message: OK @@ -1612,44 +2816,49 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEshAuESqVh4u6TRNGiBE6iMhEzJCXArk0lbdb19D%2BlA0wsf2GR%2BP%2FSlV%2FNY%2Fi6ropPmn5EO8TWLiJ7CR5tKp75turqplWqU5L3nVT9KPc8snWV2q3XnfZa1oelFXnbqfccMy7Ew5mk6qGKaVKbZlOAonRyezs4N%2B2Gtq09YXceBtp65E1tZdfewnj%2B%2F7VhzcumzOPUel7CQq3v1NG6FckInFH4g2dRTNVjSiNC2%2FCH79%2FasrRLOtC149yDMqW1QmpB9ctLIOw5%2FQiHmI%2F90gX8Mq5R%2B6eV3HDO6frGPSk4kebZE01RFtI3eEmoYOi3foYBmd%2BS%2BIzNlMN9ELNgMJ8gUTr6c3eIbpKnmUSXC8oSJARhkIH9wNpeEGw06SoEiAOSPAthAE1j1z7BLvgq4ZAIoPjHtcv9%2FQ30e%2BY8c5LAAMQLsBuAIk4MLCgMU1GF4SYy8AzKe7N7qERUiB1TkLc4bR4CmCogcG2Fj8tAMagQbBS70WNIca712Gmn5IWRRCyEI3j6kPSxcKYCGD3F%2B69RahO3Ru%2F%2BzTwYCPCmjwDTj9gI3v9EiIBVBxLA8nxKEfAhQuB%2B8VxomTP7ieNq1y%2Fr2scXul%2BLm7kVOmONPvdQY4ICJb3nBmnvT19R8%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4562s1l6_e2etest","name":"fv-az4562s1l6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c26327be-e693-452c-908c-1fe6fe7e5080","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21015","status":"Disconnected","lastStatusChange":"2019-08-22T00:11:15.9884485","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"64b1fdcf-1184-4f8b-a923-4ed7ac71108d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnweGBDJ/akiVHtGyw0CelRLgZVten04YBhnVBueXCzcMUvPmwEOFRVsB/T7mynTaiwLTBRdhf8pWlJVReRa9mOULoGmKIphhVJIpiCRvfI6s6fEpXgxfhr1vgdINauHCuvfiv4Q++vW64m6EDrQXB4vo6+SOJ9yiq6pzrbBw71KuvBGZHiYVkB4WiMECJujobi457TpPwjXnkT7SQBRlj+95StmwBXhgVfIYvK2UktrUUbp4K2q7a4U9hQWuTrYiLJrN8NF4qdSUr8EnDTtwLHczKKvRcVLQi1asqZubz6e8hpz8AwiuGwbBgcWZUrvlVUtqt4qRRnM7iRKpTeSJzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4673bsdl_e2etest","name":"fv-az4673bsdl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d5b3619a-e2ac-47bc-893f-738b9a73ecf8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05002","status":"Disconnected","lastStatusChange":"2019-09-05T16:53:50.201348","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"f53e3180-992a-47cb-9aaa-6ae941967433","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyYAQWOZi9s7Xsl1Yw39P8H6pKVqaiYtBT6xKzThvrU0YFxHdZ8rO955O/xgcyTCO4mB9RqQj+3rr5ulWElvnvyOaHE6wvRdKkWBd2zG2cKARoYug+BeHZ6b23rwYyIl37ANanPeik9jk44L++QK7kwkjQwSG95iIkYN2CWJc+PkBQE8lB4mlEF/ghq5eDwkloof1VtNfA95CpcHlp63LYALJC0sdP9lBOZsZ+lnqYdOCKvglOneulJ7j/KGVICtuK0tUgaRiNogZsE8i2DVrBFRozv33mXiJuVh+dsbmywwloruu3OLIhWboKDRi2IsmRdhAHO3iDUiMZ3/a90paLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.04001","name":"0.1.1909.04001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b0bc8795-3716-4acc-a3ce-ecbb1fccffc5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04001","status":"Disconnected","lastStatusChange":"2019-09-04T18:26:39.945151","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"93ee58c5-6319-470a-b056-07760c30e9ea","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtwTUUGgI/D/IEQfsxt0+ErKxfvwnAq1o+DkSULfZHhe/oOTpnOxn5TTPJIPvIhZrzH19qeSCxBWbIWdPDnUHz8RGgr5Ydr2InbBRslIWECw4GG3j3ykFFdK+nrjCrcNxONsM34OYOqrW5Sk8+10iLUpyB+N/z3ny4A9pHGIqh2amglj3es6CTPk2hZL1/33XvR+WuuypYdrfFPIJWC6sA7rYrocxBdREgRoyFC9zWCqUbfRvwZFFknNlDHESeKGr8fC1HA/cpmywMLdn2KH98rsajfZmGY/dy6wjFPDNpxv5wTVic3iRbkeBR1NiPovXsrg9YXep7QZ2E72L2G1lOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4619ahu7_e2etest","name":"fv-az4619ahu7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2d5304f8-741b-4a63-9517-154c42c6f69e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01002","status":"Disconnected","lastStatusChange":"2019-10-01T18:21:20.4790587","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f5289f84-5885-4f3e-a6ae-badcef49fbb2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArgP/lNIcNc0RLZqgmthMetjyibFiqyB3gmMtt4AAWnJCudGw6ExzP3FkmvsxH2l8htcIGRHlKZQBda3TiXikC8i1giG20y4fvTmoUuAFIfepCC95UIDZv6LJO3CNgI/kELKDJzqA7+VpgwjLpDxoiDeHZbxJnKd4+CH5NFs8/1TdRciarjOCa72H0N6iOH0U9uc5ESuaEADYZoRQK9EHw8Vgle5QQTKYQZEd4MXRVnS9nKFRVIeDTXfQHUQyc1ygJj9J1CAOyvX/aVXe0PH+j9csJX4JRGHDRK67u/KzHog0HalHnaMEtAqXbphZIuE0TkxP999SV82kJ4AVvBRYPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46741iem_e2etest","name":"fv-az46741iem_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"06e19ed7-7681-4db0-83c6-87a1064fb726","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25012","status":"Disconnected","lastStatusChange":"2019-07-25T20:40:46.4470149","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"d3a6d470-d590-45dd-9196-f342262580ca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArJiuH6Gug+3Lok8ZlTWyFGnbCqOYETsfGpCfcHH7Ms9stsNxffWqqq0nskbvFIBdrG7P8+FNlg+PNFmPOM2CDcBqmB9s1l3FyQ0BuYJO9DWJiwFM02IJLcgHiuYEXEr72dMLRyVxU+OgAqxvGOujj1ncIXolS1yFlj/xvNbIGKIusk/lpZgRTpqkI+H5dXel++Rgs9TMhpTRPBDtNg3PtCxtaXpbZ92U07RfDUJQvEY0R8DWSxgmmd0WCXQtYIpPRgXcHgdbcyttgt41Km/RmGCBA73AuEMGjjy8naslxV6DqTth1zIlpMvvTjZXs7KHFYlTdb3ku90yGjMLedHYmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.04002","name":"0.1.1909.04002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"69736d39-02da-4cfa-b4fc-3c3f2df469be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04002","status":"Disconnected","lastStatusChange":"2019-09-04T19:46:40.6750779","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"74960eb8-047a-4fb8-814f-d2a69a393bfe","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp2ax8UM+GOPXA0QWY2Ql52u393+t6sO5vOdqE622q9sbQCxYUhmDLL9fqmktCxaephnu7/H5pSsOEMDr2Bx1zPmp6Lv+l6VwvmalUGc/T4Ng3zcPzIeF5X8kgltVjEFHfULyQddNEaYB1pee8JYllXSMYxZTBTaKOqPGWkveFl2yqS7QdaXy3f0JBjrs+arxMVytAr7bgLjC2oMiSU5IOOc71xuAntGVM1Frsy7oYcn2G2ySyaCuri148bbrN7ywIDf2yTENYpxbYLiC5xk3H0RZ1yJdbq7uTY6jjxCOiq+uuADjpb3L/gjz0wgwZkVwYDynHgX8jvvYfJiVIf2DPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4584jg82_e2etest","name":"fv-az4584jg82_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a5a97398-1e2e-45e6-ad7a-71144e2f7477","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17001","status":"Disconnected","lastStatusChange":"2019-09-17T17:44:33.5127313","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"d6285a01-9702-44da-ba33-77a1078e9ea5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7BmuTyn0MrNxhgufsxOVs4WltMDlVaX8/01lVDDHCYIsZoIWMS/ZPCqs36pSVVs5Jm+w/JJeVqDI1A+n3081vOo0X+AhRJ3GhAONsycTgu0k809W85FHgZ1Bf/KGzVWkYPGYHtDfAbLD+Le1UA47yt6OWs4riTfl7IIrbEv6DPv+V7eyZpC4iL9GaaaX3Y/lOdH8XVXwbz4QQpPFdwIprZ1qaJMOcDkRwhIc5/2NGeNNUrdBUgukLz8jGwdwNI4TX7rKqz39Zpjx8BG5lmYxB8PJyg825aNvJZAFwN3ADhwA0OiaGsJSFVkb4IeyTRwwpoSbGuPRJwoI4NBGul2fDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4584lsem_e2etest","name":"fv-az4584lsem_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9a8b2ffb-ca61-45ab-871b-b1162992caeb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0d6eb183-2883-45f8-bedd-37408cb4813d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz5s3dZR3hCBmKfh8bvnMymGUwx9HkN7W7Y4TPkW/2sARHO22UOV+k8SzIYgtc5Evbs2QXeA8f6ozw54NSMDLGBQG1FrYw0J/jUodGoieusJcOOpYbHOWwGHMGFIvZ8prjpx8/QdWt9xhMvtOUlYomEL0iY1FKv1MvJXEd6PjRJuLwnk7/pEqrc6Cp2ubQzdLQ1t9uHgWfSQlAFOCBcMmf/rLn+QdLnXgqc8s0w08gWi00k9Jfj/nRmK4ff/6gO6ZRAZ43oIU0ILLM9lgkydWiJHLFWzB1fipki3fK4Og7j49tAEepWvb2Zq251WfV6tG4LAZpA3aZ51w98ads3A/wwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623bh5nm_e2etest","name":"fv-az623bh5nm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f55fe6ab-6f15-4270-9ab5-4c24e895b75b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21001","status":"Disconnected","lastStatusChange":"2019-10-21T20:24:23.4052388","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"e38e3b39-9e5b-436c-a250-00720aadd8d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+QJUtNkeqiUzMCXdL/Q3HHvKaEeYh8ee4589QKrAJl/hGp2jbObr1t5mRGHZ1756eWdRvpjkSfaa7blVvsI43xg2VrmhxTC4o/FiyKitpYe4/haWk+HtqnpYfn6mI1Sz5GXdrGe8joxoeowXUgKwiF1NYeFC8Y250z3Yp/LYu6DM7Od4Mjq6M7llVPRADqkCaqmR9tt9jIDhISS8uONtIxD3OJlMF6JfejW8qDdac28x23ouT7P+7OnrKButWhCuP4qIqxYYDD75M9VjiTdF3T5Pa18Ew/d8NNTEkRvH+MdbIFajbZ4qjCKlNopNO9YfQHK+/DTKpC3xXDXlhus0OwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46743x0h_e2etest","name":"fv-az46743x0h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ae8d732a-1139-4ebc-98ed-f038f8c72501","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.12001","status":"Disconnected","lastStatusChange":"2019-09-12T18:18:25.5004964","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"e6eb4ce6-339b-4102-b346-cd269798c72c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxpT+Alh+Ar7A4UeKXl6LXJe+svqlRXadtfI77migMRnJiclyOcfx524PJbJhLBhArSt7DmvrP7R9dmDTZCD5LQq4scUavHEPbc/wZwW8vKGMI7DlzvJgDpjiTeTxPZ0pPGFQoAShL75VPas2oZuo38FWxrUTDKmMLDps4FQ23RgoqjlMW7Gf94+CK7Q/fnLdXHSW0St43kh7a/ZJmsSOLq2ERTgSjERAzY39USeXb1HB29smnV8ja58ZuDnb3ivh/L2zs2mANFfbZ0zILizk9+KOocC09oMDCoLs60U+USp1D+bEOTNobt+zm47vfTGATpvQV38Cur5IUR1usC61oQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4619cy7x_e2etest","name":"fv-az4619cy7x_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"82571e8d-4978-4dd7-8fc3-4c507971bfb6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25018","status":"Disconnected","lastStatusChange":"2019-07-25T22:26:36.2617405","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c9ecc22a-40bb-419b-986d-ed4538192402","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArFNzTmPTs/YMHwYnmv/EtJtn4csb6OJmj5vNoq+20N/cOWR5FKx9YRtVp9IS597F82sWY1vyKNhTBepAOQw05uPjPDbi8pgCBiEpbU+O28OzqdP+hydJAxUEaeQyEsvk/5DLJpL+IwHGeQSuh2a4PFq4n7drehkuTsD0Jwiy4iqLbUGq2/DCUxDzqNaoSgHPpilbmKjS3IBIDZBLNUNfBYBNkCNcNKyjVLMxxOmwhpUrtba49g39w5CAEqlP4OcnNeMw6EmSjjFNHE6tZAZukdiGTgIotZslmt9dbT1kO2yaU0+X+NP6p2Qsx2lM0Ch1FU4A5/MaWSAhcC4S0fnL0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458571da_e2etest","name":"fv-az458571da_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"90cc7018-e69c-4cf7-b717-7867d5d4c871","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25008","status":"Disconnected","lastStatusChange":"2019-07-25T18:55:43.6749581","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"981345f9-81ee-46f8-81ff-9bc959118c54","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyaI/sBzIisw1RdI7mWhmzoGPY7h42TWSqfdNgBJEosS1jl3JoT9DoQLX3TTEagO2+eo1Vw/SSDD1vYnJycXbeTj6Vo4pAlpRWQZR1H4cw/zZ9vDsqHdKMHh7wk+Qj0fnbRHdzZyyjE8JI6rfgCGTssFvibvJ6dXHO+NgCTZt4mCnJIfryzrkXPvOsia9B9HphJlIdC06W41psxSymGEhZxHo5bvrNI3QEmI1h7FXoSsAr5eek11nvVkg/itudk3nHhTKhh5mQT3UYZcHTi9n6f6SbVJ4yiH26rOpG7t450lVZicEVYBKQi7ZcDA5Z54zy4u+sN/QwrVJWpcg9RPfAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.04003","name":"0.1.1909.04003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ebe6b711-e37f-4f38-b481-f650471f5a34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04003","status":"Disconnected","lastStatusChange":"2019-09-04T23:31:42.533593","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"45f36891-7f79-4bec-9798-cad9b60c8963","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAl62sqfrDZIT/LOVFoy3UNoxGhuralOg+/iqfNjLpYTjj+lKVOg2vcT1Bw3oaAzn8JO6OePWrKD4YLFHYNGN4Ge5sPupVqkrpgcJhSUdKVkbVbuPSU0ZhVijlrtEGHa0HOHpnG99oEhL9oFYOxW9+peEJBJSmQgMPn3b+qefvj5wc0Z/h+kiBeeF8tP5kMNAo9ggvRHW6cWO64oPbcwjA8EtqUiVXd67c7z0G7JBfWEbqidp5VBZtM8OI5EvC8fHhaeMB/2oPl+2v2UIKpJT5rsDMpjFCbSmCKsxh9ZN3rTcEvXi4jojQxXGqottUtERMjL7DS0npE2nHJd3E1XxyFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4619esla_e2etest","name":"fv-az4619esla_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1b805db4-9304-4a84-a165-cc2b06f8f0fe","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17011","status":"Disconnected","lastStatusChange":"2019-10-17T21:03:21.425852","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"db52b795-10d9-462d-b117-cb222d7d730d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt3vZWUeKuo7SXPqOn/35oEimQTx+8EO+fUuvDdwOv0J+CYAusSzSv5F6jY83c2Ips9Mg4/j+OierBd+WJrrFDZYKHLCu17z8ABsgoeQ+jDUKJ9ayGkePsTwyuBftN3ZUrUrKini/8g7H9y9Rm9vnjuI2slkyUywnumSOwR23q5BwfxzKOtFDseYmgTS/x41C5zKzif8haoMw3LHUgyWYzasjDhyVNq/ImR4OOqtDmchwbC7Mb59v+nWKfsKEOh09hYvKaeEdlb1VHii6VLm6qoq+tQdtv3mbXtV5VMNVv+ZSvTJ8u6v4yM2DaYOQb876NuaNdic9Xx2lOF6zggXZEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4585ehkd_e2etest","name":"fv-az4585ehkd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6a6e550-116f-452b-a5a1-2214e2631f30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09007","status":"Disconnected","lastStatusChange":"2019-09-09T23:57:48.354005","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"15c4bd2b-1326-4f9f-9fad-ff95619cd5b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn6VSWSTYagM1aiNPZXsGhzs5Vi6ZbaZ6ImbEoFmZKlZr6EJxd8ert6VDzRgCPRurpguziKWefaVVC89j9xbNM7GBxXyTS+j2VTAIfsY8TPiDTc5a0A3lkte6eWTLphLelgdM6DicCF2R8HhkzKeJs6Uud9M6pTL8Q/IuOvq+dZI+ijDjlexiB4QsFCMJd07HZV2R5ez++CWiUV3/Eibh6WS+7KOyilNfs09kKt8/GDtfSp8L36kVT9hZh3Opa8KGMzzrMnoAS3BvpOqj4xrKLjuF2hajN7O3sj1/87rdYBM+q0NPXfJXbYGQZXvkhKUKx9oicvf1uuxQRSKUHaQN2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4674g1nl_e2etest","name":"fv-az4674g1nl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3e06410-2e89-4c07-b1c5-9a9011a41799","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17015","status":"Disconnected","lastStatusChange":"2019-10-17T23:08:23.2333841","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"7d82955c-4b0a-4145-81f2-131495afa565","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs2qaTFHm/RXgI5l/R4tbpJe4Xg6DDN1qQy4C44HeOUfFsn3RyCef1AQrq9L3IBRRn0ZMVUE/NMipetQuV6YR9HSxqRYo/hzhtFohjOxemGvZ/nY9nTBV078aTaGC369WtE7Q/3fhfqwxQ3NZWPhhYYNxM3xZCQLlcUG09sjcKFXckoU59JcDBaQ3euZZW8mOz7l/XqjR3mjkcWMS+m9IiW6Ytn0wmvRu7kUMNZlmCPrvmmeo5YcYzOiArA7sCJR4Sb60wLczkiNoOsZE++dT8bU507keDi9wm4zzCZkOF75CRc6NpiDWL0lRxJ719RRorXyoPMCdOogitOkQaXa2+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4562ze1v_e2etest","name":"fv-az4562ze1v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0be8ce03-1c95-4dff-979c-69c4e138be2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08004","status":"Disconnected","lastStatusChange":"2019-08-08T23:37:48.9978119","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cb3a25ad-c900-4406-8bbc-ce363fba63e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4xVWYybg0OhS/CCNGkmSna3Jsxv4C1NbBqWu5Xa2UYzq/CdeF2m017y315eha8E8blrdvfCxbJJtvV1DPs/F82xZTstdS/y1LT+ID51XE8+SekD52a3/4qSXW18GEuyufatELD6Pas+IZN8IrA5bgqk6zgMrRIfcOMyz6zKUJTD4Wsa7PlGNageFUNgS3TxM1FCAA92khP2lHA43hjsYkBMJeuhY+/pIRwuYgQcMkmYLYK+/ue/Mr3JpY4xNgVM2h5oNFMlaQrfTwJLMGd9AqAbkVnfS7pRNDak0vCRTRK9u4TVhH5BmvmwSXsyOkuwPi0nGPqVTyHiNaXAIhWAMkQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623bp547_e2etest","name":"fv-az623bp547_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1048fec7-aa9d-4423-849a-855a27e0dc64","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22009","status":"Disconnected","lastStatusChange":"2019-10-22T17:56:34.4492924","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"d7800f25-c123-4795-85c2-b937f7ba0a50","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwAkyLbFmY3+9R5K0mNHJwMAAMScUVbtdcM6NWNxhO68sjBvcIh3YBb1b5P7jOIjc2MDVbQ5xP9rpfy4mYEzOFQ63ukaBYt2CCFeCdvfkCb7XEKTTA0KWnG4k3dr9IftXPphBjM+TVk/klDHLIETqF72JCv/jyWF3oGAP4J70Aw27JVJNmxVkBiQTIrflIx9R9k2WaiPzUX3njspMvcPb+P9Fgh1ZZaQ573TccThl5+GOMqKhAfWh54jRrKTG5iItqvNUMVJE7Pwgw8qKDFKrfu3YScUSm4JDedM3jz0Bg3o/AcRVQ/AOLyrUslg/Ct4pzMDwjR+clwFGklq4gRGvgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.05001","name":"0.1.1909.05001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"360a3e02-e949-4d26-8f95-96a0b0feb1dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05001","status":"Disconnected","lastStatusChange":"2019-09-05T16:28:49.8262859","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bc1dc9f8-16b3-4846-b5a6-b8171fde88c4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuvP1f+XAmdsN1+2TkuKGu0ceway1c8IZul6j7U6XttlHBlzrKtbylU4g2nizvHCfWZ/0YKAoiICcWa9so2Hl4a4Z3iv3xaXN/crz2qS5RvoX5jWrWcuH9DZGM0muVe42FAULdt/YreYjk0LXugAPAR5eJ6OCVOHzpePKM6eqd6Xm1xCLeRnEnqD5I0ihtJ0lq4GW6aQ8r6udkRWJxzuaG3RHZ/rn6mkzND7rlpI5YVLVfaMKmj/4Sev9Af4YL4I45OXIF4Z/mE0toNL6wuGi39Vm2FtWyB9FhF/bVaWIigrWega6DIDLhQOp4JysswYfgaG+f3L1gENseFXhOjqLbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4675exm8_e2etest","name":"fv-az4675exm8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d7bf0a48-e2cc-454b-8029-072a18c0875f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"f4b26a46-17ef-4ac2-a182-5323f36b2656","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqnXBMkndH2Or5NUpnbIhLoqQxjPT9EBNEmo2iYKwE3J1JWU6Pii0Nn+j+EUkp89VA9WRhenpIhX9anD3rKdXhWaJ+SZ0vmL19MOithhgaeMgCSIMkvn2eo+d3v4H18f1QkHOb8izu2RFUKoppyH2EK4IXUPdBmmd0SUlg1vzEeDJj98Jso3ffmx8hsYb1EFayJmAGqVVKZOySOGABgjS1zyeCaaOgn3GORH4dqtBusg4nC3CjPQlpFViSNsN+RIplHxvDK3648+023kf5EYWufCqqOVfGSkpeixzS4cJ8GN7wt1VOlUmVcVb36RgLmUgSlE8gNvfuThYtvdrmz290QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45634oel_e2etest","name":"fv-az45634oel_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"49e66214-3f96-48bf-81e4-793f32b46453","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05005","status":"Disconnected","lastStatusChange":"2019-09-05T17:13:50.5979133","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7179963c-06d2-4240-b319-4446c3fda351","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyk5Xb8Y97dLe+jXw5tz1wiQGnXtZ0ie7KFQAyTyUFQVJCyktTwKha0WSPCZDQ30UXVWC+GK3WVqzjA/b/eBhif6zgucnX/MMOiP9YGefhRxeM4o0MhUGtkzKV2SZgzIoGg7MWT9xoL9czCjBRCns94u5nIbleHixXr1V8yLpf24A6eBtGLf6Hys9OyOuW7zyYA+2c6n/hmhomqM4210tlMPIxOFWshIvFmvcEE0MOY66ciirciZQWLfeMGYSvSMVoXVk7zw0koAZEbsvduQdmveZOEv2QUNwFLbYW4VCAHQz4cU8h2ViE28EkEFgSLx0+cbYiiz6UKfYGma+7rOTqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4676onwg_e2etest","name":"fv-az4676onwg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e1376468-b5d5-4e9b-90c6-fc205883de9e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24002","status":"Disconnected","lastStatusChange":"2019-10-24T21:40:50.8529876","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"3488a29e-e1ab-4c71-85ad-3f69b4943265","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyeZa8D7yMWmIq1/x/L0b8kWcQnYvQxhcXPj+J/P5IdWvfH8KEFIoEvJv2OSHGTwgvw2VEkYV0y/7TnqnY54EULyT0QJyQjaTTuGkuxqZSdY+DS2LddnyeyaUeGtrE0FIA1fUEgWwy09TggdVtTQi/iAFzc6kzjjUyNCWRSHl1fJIMJx/c0bkpSAh1NNrWlPtPBRa1/mm3dFmwLIBMifWjyhizY8nDsV7+LA+VE5x7qgRa5auK88drV6V3QHaGVUhmy78Nli/jXr8QHgIv+Pv9Bzpko7zDga2A6o4oTJy1iB8SUb3/QyYbzcN7wzFx2D9jDE5YITfzt1PGlHA5/v4ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03005","name":"0.3.1910.03005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"acd95a56-2a2c-4540-9d99-39190bbd5003","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03005","status":"Disconnected","lastStatusChange":"2019-10-03T22:49:45.2326","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4d1c9a9b-5ba4-4965-b919-2d2b675d35d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy5s1bFRL8Dxy22wpMI/iL/uQ5QmWXY8UOretbPyrtMm/sYoH12dt/445g6ae9iM3UPRSZMtkdLR2UbAUa5ofd14nMyMTuBYQC5jGSHONqHefM/XjtZLn4w8CXnB6ABte+wcdF/SU/00lWBXSfgiTf5cBWT3/afrdGlhSeNC4NcHGjS1J9RLgG0dgQmerVvAAaxWyvLS+rDU0aWUvvdeDZFdrJ7Jr3RLFn9mX+BmV5RnwEc3Nmtn8M4m35bHePzWfPi5cP7yVBWRE/V9h+l+utZdnRIr642OOwzJWdk0B3frhf6//+vWtx6E1FEitdv0cwzyIKgHzlQL1B8Ji4YwfjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03006","name":"0.3.1910.03006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"342d1319-d92e-4b23-b619-8a9b1fcfbda8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03006","status":"Disconnected","lastStatusChange":"2019-10-03T22:54:45.3375633","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6abc3a5c-6101-4a2e-90e8-87ce1b849dca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArdiZkMKAj+gK2OsXWfJLs+GVQiJw+bEihKS0/g8aEsm69MJpPORqPd2ofoF7PdZu8NAlTIutPVVlfQXJatm2WjuaZ6sFAcrAF2VENf7sjzJlS+h+ezKhSFMZARV6NQh3/5JG8gcQ4h+glRC3SXZoi2wk4y8SM7jage3XglnUYzkwBgwHZKGwJskHJUpb63g10sz7kmzi2q1YEGbPDaV9Z2BcKVtdvLi4rJX2IfFJX7Hb8s6qi4yhLqNw68Hw5hsbb+kiKu5TrLhxGKjv8nj1KoD9mFSP3ziaoWvwFiyTL7Wqb7+f1254YEK8XLqF5RRaNOLypRiu6z+2r0k8cWVoOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623emr8p_e2etest","name":"fv-az623emr8p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"412b968c-6588-4d26-812a-827e20605d8f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17003","status":"Disconnected","lastStatusChange":"2019-10-17T16:33:18.4291452","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az623"},"vmId":"8d7ebcc0-f1ba-478d-abc2-ba721deb8b45","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr4HUKyms5eKsOQHtX8zcixKvKGhVviSLD/x8I1ZMkKXQkxSBMyxGGIwUb8w1RN9T6D3Cem6iRdIFUosQHCZIVHDjKyZTiSX3dy71YS+OIYCBbrXd5YiGGefwTNjjXK5EU81DJfSwhmhDyYMB2KdRCQKciGOgP8eip/LdgMHPefbdx8QQqb13761oaiZeZcl7yulrP/EpYEpFEYnjJ2ckZD2RCSXMcXjyFWoh7eg7aJ9kgZIrxrJ93EMUWby0KcmdUQWIqpM7QSs0F6DAANpxGk8lUGBVXR2nV3kTWz0jTmhFg0LAbh/xQ8/Og3bcw4/QUUgSH8koos1M1gqFxHmuPQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4563c0kv_e2etest","name":"fv-az4563c0kv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0905a897-9b10-46a9-a159-fd1dcab91c22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24012","status":"Disconnected","lastStatusChange":"2019-07-24T23:25:36.6789477","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"571f4e98-b65d-49c1-b474-3afe0710f75a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnFOKthLBV50VasJccuLsKWCr7Tmmjp5cuzlqqCtpLmQ2yA4pRsRyie8Y73bx87VDlUyuuBL0mTxdsvhAQPnLz4GI3GzhENeIFsa8KlbO9Yfz+1G9B9tpqt5sqO/vnGBw9BiSQ2X2gThVJk4630vY+txhV6wwHVTBQgyC4OeNHeXWIGN7th786ZHFztVvaMIv/bKJgB+IgIuV9rPjw2aaxQAdFzCGpom6qn/mB98ugHLAbarawIuUFX1jIFE4xHaWib4saIoSHTtWedkoYXXGp5+aExWhTwdM3qODDONPRtxZ/MepgXkvagI2cRGpDJFQxC+/7oaCHp5eVIxvrZIVmQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623p7tm5_e2etest","name":"fv-az623p7tm5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"dc10297b-0225-4236-b8af-066894022793","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23003","status":"Disconnected","lastStatusChange":"2019-10-23T17:21:31.3081837","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"f7ba3264-2d83-4094-9855-a5add6b0a763","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzs9RVdiPITZYqmMYkXB08MJDHSHMncUngbKYKr3AYSltImmd48YePji8vTgkaxjkkJ0b1r75YVeGlgSTfN+1WvcMEd0Ab/CP/90PUhMn01LZ58D/b44KSxh1bwwp0dEmuBGdNnef0kPYntgT/Ve2oOrMv1RCkBcuuuMD6uzd5TyESkTHsSOyfvx4V5Azz/+6hOiQnp5Uljc29AcSFEKw4iFo7dChTBC2pxV/AN1pogt4ULI5QFLK49oCxiBnRlLY/93yUMU7nzzoIAWCOKynaXwm5/VlACYWO20bBwlrVNr4FUpiDc0MkQvTkTRSmNPgHJKfthkQL/p/EAXeEgjxKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4563hz0n_e2etest","name":"fv-az4563hz0n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2581549e-095c-4a52-940f-95e825d84c01","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.17005","status":"Disconnected","lastStatusChange":"2019-07-17T23:03:32.0002184","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4ff71505-1925-4973-bc5e-b13d19ab7123","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3pFtaS4G3vrUz2QWNrq4jluavEuB0NILpDcDCE35q1TKrs6F3s/If8BzmKNnmHlRdW1l3pOcEbLPpplGSkQOHFM6loYr6G4HDAFDU63vgnZIAgysU6kChilju1Jp11Xrhu2U9HPC6PzvmTJxc4Ndws/u0dgbydOGq+mMyWfFdG4WZ1vITCjNAkzu1/J5DKG5IxqnrLuQ740bxwhm52o6TMoG1dx7T53xmQ2KYMmc5ByymjtwaPeDo0/k1a34FVolA7pMe5m8x6bZwSgj6Q7LYQGE76DI3lzBRyPEIYKkfLicaJLk48rj5V0NRCVNidGRV1kijiKGnZ4mW1g08v4c1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.05002","name":"0.1.1909.05002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"21e41b94-d23d-4eca-a4dc-75b4dd22d341","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05002","status":"Disconnected","lastStatusChange":"2019-09-05T16:43:50.0719035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b49f56f9-5d02-4d52-8a2a-e78ada39cc51","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1cQDyubdu5IaNOSig+4o8HCxFbFRxjCywQ8Urnj6hG9o/lfa+7VplBJMv05i6yPFNFo4FYsmaNmYgM5dGoVNxYxmsEtKDtTifrxVuTf/LOV7zHqz1k/U7qMOmORd72Jrvb6HP+z8vJem2c9aCbIPYjNM/1pQUcStA6SrkgxJ5xb49Py4wuQE0UaFr3zCy3ba2ith6BqVw6rifyNLSbcN1/Kkk/5iJBY/64QhibiEHWQwcebXi6zhMe7wmn7Cb16e09H/Gigj3augHq7r0L/iRku2IlWkKmP93Stm/7UkwaJOtQ9zFaZvl+uH4IDOf44ZtZgoneGG/3k9AlEuABg85QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623t5suk_e2etest","name":"fv-az623t5suk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8debb084-1785-416e-9805-d91e6dde4b49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22010","status":"Disconnected","lastStatusChange":"2019-10-22T19:16:34.9730624","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"387f10a2-0328-425b-8f24-7bd9f5332e3a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAljedvO/49chF9i04t/4iDFuraHsCgEJcA4PtOZzX7ChE93hsHQWbVHSxOuRzpssIompGdKtPmHWp0vDTEXc9wcCGAeUbb5KwURcsnE6mzqylkfPB7gLckjhWYd28nKoJNo2u0LzgvWycFSr+EU+nr1/phwDuBVYQmHSI1aRNx1yohpLHD1Pa4oZYJQ/6ezo00ZHyrkYx+FmHwjpufPlijCyXK9crNRQN7apA4PfwAQYsjOCH4l0/G7WHADcyxjuI2ywCiqZhdOBBuXNsLwFhhdn4ZpU7ykhFIKIE3nWS6fm5lCm24VT9zxhjlyIJo9XJYHMYXUMNEti+r5c4MNNQMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4585i38b_e2etest","name":"fv-az4585i38b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"87aa741b-e86b-4d20-9f91-4808c6bb51db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09002","status":"Disconnected","lastStatusChange":"2019-10-09T01:50:26.5038926","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"af1769ac-cc76-403e-a71f-492319415729","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwWmEOsX19MX4iV6XlpJK3NcXneQ5wytaOquiZ1yVm7xxq4X9aXogiTR7YTq1K2JLiLOEc6i7CjWq2daWnSykb7RKJzXkDjL+MznTh7BQ0xp1pNzCpPv6IQ96VwoULU3ON/bQk0bUuPNDMUGW92ltEL1jXCR72RJbuzBxAxunsqWQwi/IdBdagEh09rljDm2gZ3WpgdBeRl40dC/9YLWrb8HSaT/w5QvOzSu1SJReT0a2iacwkRBJCQbPMTTCZT4yzXPG5Yee5yIDhXv31Swq6vsktwQ95JBbta7LxpSJD2Jd30/g5rDs+u6KnyB/i/hT3zRUznYzRJd1XPQW2O8Q8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4563kew8_e2etest","name":"fv-az4563kew8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cc0282b9-9096-4aec-ba66-5ccb0b59a69a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23002","status":"Disconnected","lastStatusChange":"2019-09-23T21:33:45.0414883","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6ecd2ed6-da06-4953-80c2-d1539cff6cda","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAugcxCl3j+7lqrFBKGIzk4GcgA/dZtPPukOIfazNkyXrckTU3FkojSJyJRwe1EPsmI8zAAXAqXo/mGsoI8jBcjwdp52Qiugi4qSn9ve4BFa1rhCUejZhNFzHGg7ZtaYP3Xlxun0skZT/XUlnPo9yDgnTK3omGCJVSrzw37F3vU4yLjXcNbPWb7ewVR7dBIHLXJd99JsUaTY5VffKKyo2Z7TqPNHoYFyMGK5mgR8M3SlIKEAb8xYqW7pFizeumvwXg8JKvenU16BM9d7M0qJQlBNHEkZ+9GjG+4Rm54DwNnZCVyiCsOfG4YggN5CnCtRx9+5txr7dSj24lTcaBfoZ7HQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.05003","name":"0.1.1909.05003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"af83058d-09b8-44a7-aa26-37001c6b9487","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05003","status":"Disconnected","lastStatusChange":"2019-09-05T16:58:50.2860762","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5449bbfd-5ac7-485c-a0c6-baf4f006756a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz0m7tXdURKfCrR7qiB2Jjq30tBPg6JSh244YavWW9hhNxnHXmgiR7KnlMhD5ewl63FTPunrExMGXmGEGvnxviBn7PQkYPjrT0/XJtXTaAJl4WdiEd+7BX9t8RpVQPT7NFoqGp4mNSXTVIbHiTlxEED0kEvH+xcGJB/8J41/DGINxfFl+ofad7AlDW2Ssyx96wgvlRIeN4F3+RURU+/sPKe5HNHaFXpzC/ppULAArLWg7poFdWsOLKEJQKMyiC8WPkJ7PyOUA8H9/tLMvpDupjwmtDwV0kxgUSbWSMuUqhkFog2/0eVRmUz70aSjPrEpNfed3ASuJhnLIz3/9QVmp9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4563ow1p_e2etest","name":"fv-az4563ow1p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9c2f7f45-6b87-4130-89e7-708cb53a4283","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08006","status":"Disconnected","lastStatusChange":"2019-08-09T00:02:49.252157","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"71fcdafa-ffcd-43ce-a329-4676bd79592b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1jzxQARdZPuu6sA+S9EwPPZGfwRjeF3moYjbWtylqNJ+eu+7Yi6KAauTikgGKMXoKSWhENdAL7rA20vcWyjpxTTsAcvbs5tvZeA7aKr1Nr10rmvTN4doLq3fGKCUvQgYfWzVrSjdLQ2t5jcAx5iS8RnzecSeByOEMyMMOpDyOz2dN7uYGk/iw6NAwz5Uv1LWyQtPOWM+aChHLrO5A2vmuoT1Gngyn2/BSfvjBm0NI9e9/jCAQQQg2Pe6WJ+S/xq6IA8DiDHu5fauXYYc7i4osLuwtGYUxwcaNEByXgtUXhxSZMdlECU/JC72qAj+Tt3yJkh+LjRXzgBZz//aOCqy4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4585qxs8_e2etest","name":"fv-az4585qxs8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b8e91191-8bc5-4e6e-b5e2-0da7a0b50490","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17004","status":"Disconnected","lastStatusChange":"2019-09-17T18:14:33.9193746","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"624f8e51-74de-4606-bacd-935d33a44334","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9GXiu9p7eBCiRsXhxtc60PVRTZih2MqpzqTK3ADZ3G1tcKeDToAFuxZd/oqVp2PvmO40/QTPE1Lr+1NhpUb0l8wgyQlJ2Du0NtnNJ/A5FErnts6vQY1vZOES/IAdLFCc2tursUHVyACus2MBJ/l13fI5KmTOOhgDQKi2EtMg82UlScMdLyq/7AX59fLpR3SxQp+Ka0XYyN6t4tUsoaJspVVyHuGOf9cg4w4zgzcaadW9fOgSB4o1b3pUjuQv5O9fgu4ewT8+J5B4Qyv9ZILJV8bkbEotHiznDbChE1PlXlYY9gvkegF1Bp/re8qoCKwAdqf4BAZ3gt0xdT4/IZa7tQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461adr2u_e2etest","name":"fv-az461adr2u_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ba97310-7f8f-46e8-aaad-9f3b26f41d0f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.02001","status":"Disconnected","lastStatusChange":"2019-10-02T22:24:36.6405636","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"478c5b57-1e4e-4e96-8156-d5e7dc3862ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Esh0gfAI1jrayxSuOx0um9HZgUr2zIbrtKsbrgw4+rRL8BjizJCj88faqIvCOqRMThHTs/IsEpcfdaGFb5JxucIP9loWL+mJckEafYYly4gxiTvDiekxL6te5auldtaetMPWqBp3BhO3XZ8rJ8bvGqitJMBJK4qXKoyM3rYv4+FsZDcE+YR/9JivpIksWrMUuMzPYvQdasJSX4qtvCszPVIVPKZDMcVvdVN+jvTcGgPtY1K0Hhkk3RbqW5SHXtzGT8LNZ3hMNfKlLwMi11th/YKR8yJ97ja65CLO8d9T3F5O9yvmHTatr0V4gigwo5dhKGmfdS4K6ez828A2L1gFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623tinqo_e2etest","name":"fv-az623tinqo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c451b9de-c137-4bcc-a6dd-770e926ed905","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21008","status":"Disconnected","lastStatusChange":"2019-10-21T23:31:26.8986901","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"067923ed-643e-4ba8-9bc3-51bbd5958488","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsz+opzyCUFOvGTqQ2ZLJXXB0M+ZwhAXgWa7QAIdQLUoxb2L+Zu48FvBKkt4kLgduv9F3BRd02utElXZIyRf7yeTx1DnX4uBRtHqpiw/j85orW3WZ3TFrGrvbYXRggZ5BZ2DPOGBxR5YSrL4nsgkCV2o/hWzWcYKfJLDMwQfo5UiP8W0VNTR/eyxuAiohvcrlNrJ8p1x10vgIrcEVgbuUHhiB5h1rX42qKSC30DKe9BuhfUDDmFOWHPukAcimhCYOo3EI3fF77kt4cXHo5ucnUVySF9U6yqoaLb7r6TDMJpfoiGVKz2Ei65nGO4bU2qW731Is+4/5T3bmgFVoxiJ9KQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46775bqs_e2etest","name":"fv-az46775bqs_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c57163cb-16ec-4c85-945c-857f070f510e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13005","status":"Disconnected","lastStatusChange":"2019-08-13T19:22:13.7476612","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"9a20efa2-ac8f-46fc-bc12-2e354c791557","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1VgxKPO8WHh+AAsvc1YyQCSOl8aytvR8jofc8/1MSCrbjvI2Y4NtLnYoxy2R9VklSGyP0S5zF/Y6sEzsrUmUs/RhuPAF+i2kOt7E7IkyLY1RJX3u92gUL9W2WcUVFiVeTXwkTP3glJU1f9mLrOcpI52OPRkoJkwlzaFz9KJG/YJBu+78psX0BQ0C+DNia2vKoWO00eSkOGG9hcXRzp7kdbjpEnYm6fe1113L50uAICXxmWCXT5V33W9rJ9IPWwR2gbE14LkVsxvwchggI4GKvINpKjmLKqgVk9fWPKLfLA4pvkeb4nOyQyAT/Qn3YmrX1Owx7omlOckuAZe9VVFu+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456li9ap_e2etest","name":"fv-az456li9ap_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"77b90a80-855f-4a41-b62f-2a8ba8f74b4d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16005","status":"Disconnected","lastStatusChange":"2019-09-16T18:20:01.828603","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"036f3f8d-5687-43e4-ae39-f5cabe0d2688","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxGQQsokpoqidh/BA8R29p3TC3UdvPFb5Q4rfaacDz/7OY/7arFmOmP3GtrJr4t4crNSkfv8kF7y6F67ck4uLvsB2Lf6tsxF3oB3VDBlVZejhQ9lyCDvcxj3reShBkZr8V23wpIuNDDBRiiwUCf5Zwqn1PLW5feqFhMEYOrg4enP4FBF0Iz0q1gdF3LXGt3YqPmf8hUnaPGOYB+D3VNA9eLaQ81jHcQMZ0X+3zE8iSl0PMIqLqH6dmyRgTmrhlTlU80Ru52BtE009Bl+6vfJZs9rWfY1meHtvdyhJxtHsaIudUUhe91UPlkqmchoNvCw+4zz7yBvIksv5h0IJco+sPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46776ghj_e2etest","name":"fv-az46776ghj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6ac7b9a7-9680-4844-89f4-913cda5e6088","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21005","status":"Disconnected","lastStatusChange":"2019-08-21T19:06:13.5097552","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"20922ab3-81d1-4243-9715-1f819487076d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq1Lx13ER4FoIW0+KXqvEeUGlzTbGt9veBDI6ozprJxQxD54t6W69fNrVWuAiycl4GbP2lQRCd+Gw9qJ7bes/Hfu/n1mtaW/iCZe2nj1LQBtW3OQVxErZgihK9jXmeq2fkOJgb+P1gZtQ432bbeM9O+zPxdE0lnJ4pUN2y5o28NRDV79LJaj9Pyt1MebC44C/ZKG+tnO3hNmQHUmPyTUvnAQwizXIIK/R7KG37J/Ne3PrzLfczWJKguuE/G/fTqXderPKCCtSDtTIue+dTzNUlzMif7jlTOT90KqDV82vbKwUG4KWu5spubprFD93pxV8vjTtUzlGI9klqY4F4j5KgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461atdxj_e2etest","name":"fv-az461atdxj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6eb57f92-dde2-4fc4-82bf-649d6c740854","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09001","status":"Disconnected","lastStatusChange":"2019-09-09T20:26:26.7691636","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"794e36e2-2140-41e9-a19b-c12557e849da","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0F87yX3SgKEZRrhV47ZvjZmGFqwfQJTyfaDEuYpEoF5U6Owwn+WFdns1XypJyiqFq97LVjACtAj496D4lcg7ywphoDVpHL2bEZYMwP+pWETabL0R3fj1TWhjTwDR3hMbvSfTJLHRBCLttrZ8ENJf5u8CC81FbkCf+G6nxfJvOmjHbefgPh/sR8SsukRsOqxcRHnrHwEsS+9njg07QtqlGF1YJg/9sHlzVV4hsA6tWPgbcJ6Eq9fU4RdzZATkr+l5N4RIxqf/w4do8NIin1606cULHXCB+6JZzr9x6xRgBQ5h0Lx7GQWof5TWkXs81Km7Zb8dR5201xCzxG4KtBI43QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4563t7hr_e2etest","name":"fv-az4563t7hr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ff8398cd-3fbe-4aed-ba80-2f94397f84da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.29002","status":"Disconnected","lastStatusChange":"2019-07-29T17:37:32.8476059","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c9d163ff-e4f4-4478-85c6-8cd3d729b596","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAws180EUJP56aSGtJbRTTwxxH5lUxpRqG6noznkqc8bcyBmxZnYpqv0CNEJlmzZNfZDo02OVqDbpHS/KkOdZN5HPSW3y6SnWDhs/UTF2tnMyig8Bt/oIgr2h/qXoTzw+OaLNeaELwAOAiI8ngUxXa2z7sZ2kQle5bExTf/8ULnnDF+pXW9sRpK78VUoSc51OdTDlrBxmzFpENpOMit/N0gp3Wyt8AfNZJprdK3hszGXm0pTcoQdXl/kDSELTLRDaUy7tegxGUPGvZp4MCzyOniKUmT7u70w09Ur6/8IN1kF6FHr4lFCgawiTFNcWGPAAxVkm4CFRYJSntByS9Eu68IwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.05004","name":"0.1.1909.05004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6f339246-c62d-44bd-8d18-c7bc3190c5f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05004","status":"Disconnected","lastStatusChange":"2019-09-05T17:08:50.4581949","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"603aef8b-dcaa-488c-9ab0-8ef12b97daf5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzhd+3NmJJ0dgDYYzEch8wruTL2EXY8aufEGOd6iDlgkztVgTeTP5hyg0LsUGJkRB0eKJYEbJSWU1/DDZi5fqFyMFm/aJNWhGOBFb7iat+0OsMjEvv9JW9iojqDM8UkTeEOuyYoK2bzvm95oCit6BTXeRxiQp67SkmVl9LNPz8ZwWdlyRpf53oBdG/45nSetyv5XsEJeWBB97lUou1Q6LlzmZUTxiqAXDlu2XH/gV+CWb/XQ72unr9Sp6g6brvCcnR6W2hEr+9NYLxvfpRzt19vyDxhBt0II65eaJvhkeXZb6NG8WCBLR/jLcKjs3/6u3Kb5+cp7jIQ231W9gGJY6oQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4677is16_e2etest","name":"fv-az4677is16_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a761f281-20fc-48f6-8f24-4d3ae7c1650c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25010","status":"Disconnected","lastStatusChange":"2019-07-25T19:15:43.8831813","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"a8a94e68-1fb8-4198-8efd-97df31129567","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyiHfVp2nf/Jb7WZkYsTYohirQpPrItPZfixoqUuKlyel8qnDLLVmBIwIFylCM4Rt3cKFbgFT4p0x32fCScR42hyqLDJcvHehNnicbEgrBvENrRCrs/SOmrqUjICabMWsQJocaaOwbcjTdpL8JQHa9QLtvhDyXvAgIlqA+tKyhbFmtFDj8nCmZ/2BWmujSQtQ3UzOUJfBXwqvdqa7K02mtGapmLOVp1y3iabt+stU48m0khh/5PLDBRYZdaPp0vRo++bwqWL/jf4roNmGDhB1EomFB+JVg88nP5jlGB7pikn4Z/E4Xg7LuaWMGqtj3bLIVEqug42AslMX5CPCQpXQAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4585t8qf_e2etest","name":"fv-az4585t8qf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1f435615-1789-4099-9073-868496e4dad1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25009","status":"Disconnected","lastStatusChange":"2019-07-25T19:05:43.783055","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"5d964645-24bf-4bd7-b775-f319b995fd91","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzogAu23FuAzic8jDFYmDcaL8l+5aWfMgM14Qmu/W0bdoKQBy4/GUKeEwalm0yMn8CDN9v2IXYKrc/GQuL7OfJxvbx69d26xfD896WhC0aboziR++OQqcLczfEtESzU3EgTY2EOrC/c9CSoNf0rluI8XvIZNVwMh8z3fg9IqKZ6EjGQtFDnt9NgaJrM45WHMyPMZxZD+1LSEnPIvnoarwNlgxr2mmsroitujKJYdHqJrMJFnLECm9WKKplexiirG7m6QpZcx4UjF4ieJWI1Xdl4JeQ+qfSuYdXOED+aVhN5vDaFAuYeMO6XJ1Szpkdyzj5vaEymXUyrH5/QJkMcMxjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45864197_e2etest","name":"fv-az45864197_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3d2462b9-5a73-49f3-a243-5496a52a4a22","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17014","status":"Disconnected","lastStatusChange":"2019-10-17T22:03:22.6334199","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8d875e1f-bd49-4cd6-8fdc-ff11e0f2cc6f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzJSLW6w/ClzvwSMaNn8/X/eDDYZFmZV4RfN8gEnZhF7+Fh8mS71jurOYZyXKgQcbANEuouPIazP2J61ZkPsobDN2KX0nM9orhX4lb2ufgeD97CIXPMhaOtBTgOtvu851Q4RGIpWYeaj1mEb8iL3vSsCCugArCPvuQaReAzFqhX9duAO4Cgf/MbtN+pSfzJTxE50/gEfyMU4f11x14ByVMSXMR4vikASlOlI+3RFAGs2spOBnFRTT44D2mt5rHwIzSEK00xYi8Wt7rPposaaA6xeJjQvXjHSdAaFfPDwsCyfePNUPWI0mKmOTDR6lm9KagruJYhe0dN+cw8pRGiihLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461bo3mn_e2etest","name":"fv-az461bo3mn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"febc0916-070e-46e7-b7aa-db7f7a8533d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.23003","status":"Disconnected","lastStatusChange":"2019-10-24T00:17:34.951964","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"8cae8684-e127-4c9e-b404-0b0e0f1a3bd1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzxoukG2rmsuxAspu2gUtlocBKuiz5mlD0KGyhKprA84yOHcr7mWkXYCFF4AGHmuSvMNg/3P9MXA7HuCQFrMTX4WuuTatKODFbzIEoZ419K6vKFrshT2iJWaYdjhel8W/44AXAqEBl4ab7fuA1eT70DdY2dp0XTGdbTU3vjnECzRByDZEKFTzKZO+h/Lyo/UjrdXF3haHRkTHhbS7cOkvKYt0ulSK4CIIFY8ir+B50UnVtp3vJyNlUnh0O1WAQq2IjKs/wll7/uGnzANggs1JMUwoM9rWhilspg4nkGJ/W2tFYomcCZSH7BTMHbnwa2V0au9XdPdhB2yd92tnrULfDwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.05005","name":"0.1.1909.05005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b1d59121-f49e-4e8f-82d4-d7e4720de196","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05005","status":"Disconnected","lastStatusChange":"2019-09-05T17:13:50.5979133","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ec4c6ee5-6632-4bb4-8845-d3221ec811f7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwn6v+Fun0kkwg8dPHrfhsQoHK+Aq1ap2fO32Qx7nyQR7HdmXaNGHbvY01ygYwKIYAsl3WPhibg9kCpAEgffWmNHUaEiahk6/zNUFG6qezz0UN7WEPkg3jBywc37RVQtFmUmhPeCRveZlkKJFjkz8Gi8V7EydHVk0hUGIsgxbyBSIZcm2ZR/653w6bwBR0XvPk09nNIHvR3WJswggWsQslj4RStypHDrh3TdRIax5ybdjzcfS1MG6xP6rH81fgT6Ec7+wPxV1yKTTKNsMgYNv7evzLNrkk1UIbg5ROTUcyWwK6gxVgOpN89OVA2T9zwTJ3vSxw/nJWryHLjJ+CnVJkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4586a5v2_e2etest","name":"fv-az4586a5v2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3afaed3-92be-4b84-9686-e19c07d69ec4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05004","status":"Disconnected","lastStatusChange":"2019-09-05T17:33:50.8535424","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"9276bdba-bbe6-44a1-a44c-7d3e1aebe8a5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvBu6PzvJp3PRp0hTb5mEMRuQp5LL0ICP49yxpzi5B24Zj84tGxpY6E/SuAc15kJt4Nzk8TlCR120PbzgPSaEtqWhNXUoRX4mjfwV47YQOKYFrNS8sVlESU04Rrggw/PDchNf3Nz+O/+1KRVBvXrlsu2ANMDEJpP25CrDFyzqiwdpneegTJrFnMSdrYxW6Q6vbFAJ6aomO7e+TdFJ0eVaECuRp7emh+2SPV5x+NTM6WMkzMYP0GqhQRzihJjgTkoyM79wKbwLljDgNR5qYCLLIJxSZSGIC4P2YCRbQwbm5slTJtbewG5Xu9ftKtdFBjXmL9qmEEGBwKlTl/Z1Btwc+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45641gv3_e2etest","name":"fv-az45641gv3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3b204f7-99ed-4d2d-837e-63b4d60c98c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10007","status":"Disconnected","lastStatusChange":"2019-09-10T23:17:56.6025376","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"1164dea5-824f-427f-93ad-dc8ffa652fc7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxS6Pli1MUC4CIMYHFTFXI774bZYZz5yYZtwdKFxi5ce3BWpnFtIVASHH37lsbgWbjVT44aWdtAvIMUg9mSOpHu3Dp5nRkKAm4wjaid2ZrOXcJEdn1CtFNAJKz7hZrAVRleoS1evqu6opxcS9fv78nvsrW1wUCZ9CvhXjdxeeddYxL/0qVoM/peb7dZLCptDKJyTsvmCH/YNW2T8aV04pzIAmakJTE/FwdiWY1kh47/MeLp0KVmtE7vAQubMzSiC1J1xMkQ4AlJpV/pwa8Y5lg2OjFlzkoUQ8LNB5+IK+SLY4jf1n76HU0ApyOdIwua83f5AWdBK8aQvzAuvNTuMwYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4677xb4p_e2etest","name":"fv-az4677xb4p_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"95e3a604-554f-44dc-98be-01fb644f2569","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.10001","status":"Disconnected","lastStatusChange":"2019-09-10T17:47:54.1720916","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"7d3d8524-cd8b-4bf5-a6bc-6ce87ed1165a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1VXV2cH1oByb6xlOxHbd3TelnCKs0NoezEncbIeGtSvMAPq5pRZtLap1kMANPxulrEJczcQxx1/dAX8VSOJVbC5tx325LhcTm835xW4yocQ+fB5L84FrjdNJmnjYuMArlvZYr1eink1xtudEoephC72hRJRTwPd1hrwJiK6cXc2eMwrPud8cVkwsQsUHQRMQQFL8gvcQkGXgV1CdOR27Tntwd+QZOp9lbNQo7Opk2aSGqVDxoRjPTq+xRtnuNrmRJzjboDG8otTFv6W8oBBEwbSqwX4YXFhlrb80bHBudj7NjrK+2sBOY/7SBova4Thor9CI4do/E+csp1ds2xHQ8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4586pyxb_e2etest","name":"fv-az4586pyxb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8ff923c0-ee31-4ee3-b798-ccc8fde66647","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17002","status":"Disconnected","lastStatusChange":"2019-10-17T16:13:18.2456001","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"1e5480eb-683d-457a-8434-0e18cd41da4f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4H58NvtLu1y7T8QETa3dmLxhhDUSoyT8uEgRBoCPA+n95eiOx11FjIaB0AabZedLQpv7EKDHRSUTiWjJVguygS8CFV2o3FE1ZX6agDSvfcZphlvGwUVo3EA+yQ7i5DIY0BgBTpmwVBOtUL7iwRqB36pJWm8EHvlCWGFU+KBNZsx/gd/6JPWRCfhqjbQGYhFetKMBv1iEdX1ZaTaA4pT5ueYgkkKdEMi+XL1thukiv4yyCAd56WB/rnDXJynmBR99gHA+1Hy3GXbOfRsH6/EuAzOtrbtND+sffQ8vNgVRsAN9ma3IJ+pbe64wERpMeCeBOnbr0BykrCCqtYN4jhQkGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461boxr9_e2etest","name":"fv-az461boxr9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a57c347d-9fc7-41c7-9e03-63b0224910d5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30003","status":"Disconnected","lastStatusChange":"2019-08-30T22:01:06.1165323","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"f4879cf2-4115-4d2e-975e-7e616f9e7a86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzklaRg+89DgxqxCmFA+atvDMipfAWR6fWfB13bb8OvAvzUhQHyy671qkxN6Bxmz5L3N/1b2kq0NCoWiiPFmQI84pKDCpIUFnJLNfPz6Si2Y+xxWlaZhLQqVqyUf6E+s/r5s2EfYDO/62dhtJRp8HFdBwew06BA24+gA1M2KWEj5Yr7D8lqwF2/+J9ZShZtLOtOb2yLWiFwuTFiFB7TZZwKGfvnupmhy8wpJJKqG1vplBIMDZWTIMLQEqcHSRI86Tv/tqNGccJEiFcKrseQ8ISzqGuPLNzW3xfH3o1Ya1Ab6acCUEhm69Cq6vEy2KMQ4m/BikAI6TuK310d9qpSeE+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.09002","name":"0.1.1909.09002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6bb7a5fc-9df1-4b99-8a23-0a3e889750a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09002","status":"Disconnected","lastStatusChange":"2019-09-09T20:46:26.9389633","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7e8f145c-c258-4116-9ac1-4de424a5a868","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAszJQafwW/e1KIIlPbW1kK/1H06FQTGRBnpKurXsQnylCuERfSmZ5vH6lfKpW6P3BWxM1ILDfVY2Sg3fN21dw2nGeFHpFT9qsmcq00xhzqGfTfCuCSxn/DyMeh8sPfk79v+T03e5+/NMz2RbPIcvaaG5K/3Nrm2fz+YeqY23F9zIjVTXzruXssGK1l5Cmq441GVpZAbNQUcefIhbfYFPJDG3mYlFk3u/PahqZHhq9WUfxBftFpD9BWNz4i3piJ5rtC/DIKhNQsIRAhXppqLlkbos3d6zaHv8o5xa6UwALR3A99toZVcb/YmxG5v7gdMCIf7stsrhZtWPmN4yqjWSYIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.09007","name":"0.1.1909.09007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"91cabc6d-0ea6-43fa-89db-3779ec823149","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.09007","status":"Disconnected","lastStatusChange":"2019-09-09T23:57:48.354005","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"01f652d5-fd66-4715-9053-03de11d791d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1bY6uxxWSUCoXQE4Qy77c/D7utucgBM4x5xviMRVLdQV0NfeyG/S/qQMwUeu4KUQMXxwxdFdrfzVWOMXDqrHo7IG2BYdI6yG4kyH9ZCe9MfPjxFVJ0edOpQ27WTfQOpO1AnUKwZ1ps6nnMT/ZgVX2SCBm9UuCQ+TanrCgqT6xLkZ6aWOjYNTR2tC07IjpxJnKdiXo1QIY4ANRGr4K3g5IZYTgNdGnN57NF99WaiVmEahEi3tdIVibgVLt03SI37A8u+jQiY/NNffQgzms1Tk7eJNRsw0bC0KPvwchs7mUVWyie+SabyiLKdMljiOyVXa/v3jjnlBIbX62sMyY+5p0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.10001","name":"0.1.1909.10001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ed3435fe-b53b-44db-99c0-e2354a9f8286","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.10001","status":"Disconnected","lastStatusChange":"2019-09-10T17:27:53.9902037","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8dc619b7-c270-4f37-8e70-c134796a368b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3JQ76xAtivow8ddhv4kuDqsFpGa2C62e7PdT2i4bMLAVisepiN7bB/BuxtgJmjVojjwv/2G14kW3oDHp+CwtfXtxWVa/7eL7/iM7VVxBA+6SR0y211UfOOiH5AkjZ+pv3GsGDaTZRRK61/vh7ZNxrVgFykAwhh1oAq217PaDS8RWlL3SV5cxbRn47e9yQyiTPYEQNJ0ykrn0AZM/4uVS8xJ6MGzU7rN9wBb7XetvMimbt2sbKlFnsq0++hk7apbtZ/F42WB6w6MLj+RZGcHFadP2s7a+nFMvzTpryZLnGID5By0gnxuR5BiV9XyPjrX7u/7H1gvbrOLtLJI6R5u/UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.03007","name":"0.3.1910.03007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d3d76c8-9299-445f-83ad-4524d16aee1f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03007","status":"Disconnected","lastStatusChange":"2019-10-03T23:04:45.4280122","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bb5f2bef-2b2b-41a5-9564-7e30500c7a48","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtl4EDQj4aYm1zZGRqNFs7pJ3okYW7dsLppb7102wwLeXb4fGGtbd3g3JvEbBQ/it4do1V3yWzxFleW0tsEE5eEQF9nbxAjlj41oSz+oZGxD+iODxrb8OR4E6sEpe6MvM8GFuQz7izXc80VZcRGDFomgdXHLKkSTt9iTfz0CQ9aCs8vFZeawDtr7Kr0K72M6w1a1+JkVCQdjQkccvpPqd9gR5T5M2Fk16S5Fll+WHE+xzyO8vElyKw+Q9GLYQHWLO+8VzsCQvV3qzwiBleLfEGBI4XoO6XevUfZG0HIRx5b3iXp27TLDWde4TYtkXyPTVTQ6nQX9wJMLThTW9sNrVAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461cj47e_e2etest","name":"fv-az461cj47e_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7bfa2dc8-95ef-4c07-9fb9-188944b438d4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29002","status":"Disconnected","lastStatusChange":"2019-08-29T20:45:56.5691268","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"b5508ac9-27f9-40d1-a21c-182beb3c50c7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqb3FT7/T3Hyjen9YZ5cjHHBzseAUma9Z4koSTgVh5tddJOyvnOqtxmig5zVEboS5nnGgZeQ5tOnaju2nclmtb3GzKnVWAjSYwp/sL0xZDoVv6hHf7uD7dMJ4urR0AUCbf8HzF9esXogGLkkhAt/HQkwVIr7Abi/ZGjx/G1gJlcu3Ev61/hVMd7NyKXm4B8HTGiVxs65YurTMlL9c+n1Cdn7vBzLxco3OQJZwbkkEUaOXWzrhVY/QkIpLzLBeuNcL62QA7/TH76/gYJYvHNRn4V+IH81XXIeeroEXQt4FOL66Z+JrcPZuIKPn6dwCRxgS7V1659WT3Ng4eWiABBi1TQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456litr2_e2etest","name":"fv-az456litr2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"545bf62d-0592-403e-99d8-8906833c0f5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10005","status":"Disconnected","lastStatusChange":"2019-09-10T22:42:56.2232882","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"62a190b0-3cd1-4cc4-8037-f9eab5a1219a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAucsqXhJx0uFxuthz+1Ukhs0PgGIdQEwZ/jPl2/u1GaOhdheUZoPTcPSH/QR4gyz8gDPDbLsDNxF/GjLXG8QDCxIKu24SSXzoI6Ndsvny+ZFzPwFgJxD9wgRdz1dJb9Iv1ooCbsjsHXTXh8LTdGmzXuoItidh06yRLZrfePIYJHK8d1ZC/YW6zGkcg8zWKeT96QssP8C8PXvRpggWhFdXKPbahEzl51raV9ZWZCAib0JcgQiOYnuItvATNwfBAU34qSbUQBRIM5qsaMBqFoT43PXVhwBgpccfDdkzX+EQShJOGgpNMV+feE7P1lkWWKsg/5JSCbxnEETShk0HZOOMnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4586rnfc_e2etest","name":"fv-az4586rnfc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0402283b-b377-42da-9515-b8e97e97af2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.16002","status":"Disconnected","lastStatusChange":"2019-08-17T00:06:13.7051928","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"48ddee62-d9a3-43a2-8477-83b5e76b0bee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsPyjj1Uu+PeNcfNbgj+k42VKRngFQlPf5GSx6jMNc3eHP8yeKbGhNn9DCXzteTt5Ozj8oFftWyF/3B9OJwp9zaUmVBxlLZHbuPoYbpC7gm6Uqzz6YBzkqBDdAqw65QNPz5RqnDB20uEA+2MUZTs0yToJH9NxvDEZvM7SZg5F5CYlfOk7SFuc5U/y5eWSloKcEZTGeb+mEBBd1+BiYFGbKmogjI/nry99AjOttR0YYogiUN9aEIvknSDJ/QMWWdIBIoU7rpaNNT7jczPx9AEa5u7j76NfmrPHfoHbGT9ERyWcIHwoYo9azT1DpO0kR/e1oxlT+lXollJZwaP2qCpzowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623tme4r_e2etest","name":"fv-az623tme4r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a62bc6da-941f-4236-bb25-92b571ccbc19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22014","status":"Disconnected","lastStatusChange":"2019-10-22T19:46:35.3204007","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"50516708-5684-4a50-aa98-c4af676b5a93","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqZXxHJFVWn2KMy7nWBb73251ynLoYJmmft4rfs/QixjUaXgsiMFdPmUI66bN9sA7xppgn4ejzMc8c6A/DWvt0wug6ad6U3hQ1lr3+4wBHbIm2ru7K0GCo9Hb5AuHrOZWjwc7Pww/wUP1KOMq0JO2GkMeCWmXMMW5DNvf3CmX76gJkF6k/WkvyuIGaLz8yiEwZSu23xriE0wIVdcHoaLAHQFfq2pecfnVUBr65sgRjlieWlF+INkAmm0/QFbE2opLOOCRA/OF/K0mADIeDwCV6+HlPVSaAn0bZ7vFA+0vI4+575ekJiBI/t6fytuXK9RIV37f24ouPXKTXJtBBV+6kQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lm93s_e2etest","name":"fv-az456lm93s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0d1d9605-6b8d-4ef2-ae67-0284c4949b69","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12003","status":"Disconnected","lastStatusChange":"2019-08-12T21:10:28.7090586","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"43fc84ca-ceef-442e-b97f-4e67610f1314","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6d04sRndtQjUsX9nXHQdiqr26bnE4MqBO2Je3HGt8PKbpyqnsHxbZyowbOTh0yXEecPzE1arqB1/h5gYNj23/NVuay//pLwkBtKnbqkKpAeAkY3q5mlhTHLhM49NTSti92JYlg6S2ufIAlF5B7MZldHHCOK1pAdCFp8yKD7LjLld/jed5+piJg+7HAqyYGyXsmrsWQgDuEMxonGzwDbDMmgjTBvb6Tx/McpYTbjnLh9Mgk8vD5R5Fw7uQe8lF8DqvZ1hHEm1RJ050IlWlXX8tP3PWBsmDuo/tp4BMK8r8xTJv2K5H+hHad/3T4+nehQUZiDaVBN0ob5Ks3S1Wc7uFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45870cl2_e2etest","name":"fv-az45870cl2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5e6bc674-9289-4fae-8472-38af07b4a77c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17013","status":"Disconnected","lastStatusChange":"2019-10-17T21:48:22.4050501","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8997284d-3782-455a-9093-c04a5fde8086","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5xHy36hFCa2a8IGVdl4YFqIup6KUF+ZgHWKDc/exKnlCT0coFF71ZgpCGpezFfcFNI2OyC+JZTKdqYYfARk2izUkqSXurWSrjXEKjmGTJ+NeOvgIr5Wf7X3jq+P0ARb+Z+VeNqzPvJOVHsC982ZO/+q5ikXG/PT1tfNhNNI3oTk1UgNbuNOcxU8p8bGUoUDOmiogSRbdrykTgTELmaaqKyObdclDZ7HkKx0BkL+nLcthDok31PXMSsto4tGp8n+ZOZEUNwGs8S+fLneXDsOTsm9eL4BN7BkpSpbtkredSIB1T7CPYc+B49hPI0o7Q+gTtpeXY4v1Fmm370qzDi++swIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461co5ux_e2etest","name":"fv-az461co5ux_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b899ba5-99de-4086-aa50-dfea6605c3f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.29003","status":"Disconnected","lastStatusChange":"2019-07-29T17:37:32.8476059","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"24410cbe-9542-4bb6-82e4-93ab9c1d1f00","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAul3U8CdnLU/O0KUcj4Ng6Wmu4aNQmYfhEqiDAdFIOXZw37j/x6UNaPmdiyGq0NFYZ7apj6ispvyEDBrK4vJaoCR7C1jQvzzK171iOeL+aPo6JBLKEfxcMIhK91y+rGPWSMeM0wpN58nRrtOS4HrbIE4Fezf404hTSGLKAO86PKRoTZ8VFDfhZvy5D/FUy2CFeqkeFqz9UoThNkZoQyHatM0MoH1mv8S3SZslnn98FHYptlqmxXJ4DsYtO79fabdcxgAd3A6hMgrGWwAg8C33j3WOQv0ysaWJatk0RAWY+G4sGt2ujaQvnWuusTarC4MiZllLRRNCEyZpOsfrv8HK2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lo0t2_e2etest","name":"fv-az456lo0t2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ec7be6a-9726-4f2b-b4ec-8ef0d89e0f52","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13003","status":"Disconnected","lastStatusChange":"2019-09-13T22:29:37.5028813","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e8aaa628-a433-4d5b-a19e-a0938f289769","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8fHxGhns3bAKoerO8Ju6VT/zUtnA+7hSJhzk2crUSavUHlbLEyn4f3j7N50lJCyuRahMty2rWWXfh3PeP3JZW2vgt3OPLAyzeAr5XW8/10AglGhnSV0/ueds1SuKuFPO6kxL/uwVf3PGk4d81CRiSVvc7tSRwFdwHdIPpSsjnJLMfh4PdWOiMUV+8e9xhYpRDjG0TRFle/atOU/C44TCZVKOcglWtNL6DLPj4oBvdyIr5fhUkvJbnSXjLsO+qybh5kABr9pM0qSo+iIzAnJN+tEaP0yezTfhTvmiMxtVksKNSXoWBq2o3UMRrNrKCT9NROwMRsUvhq6RQe3zm5pApQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lvbjq_e2etest","name":"fv-az456lvbjq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eae51cc5-a777-4e6a-8c0a-601440634a6b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24006","status":"Disconnected","lastStatusChange":"2019-09-24T17:28:53.5143364","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3a880754-a632-4c36-92d7-34384e6bd5de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4kmD4s9zH4OqmopHMrdmX1fiGpiYieHXgigmwSLRaOPidv3waqC3812Dt21b/7Ws19RG67MttaW+tek/funwd+XEgVjyhjp7DDOWlUT4QEI4TSMShDtcw6ttkSOuTzpdxTk4hc72ZAmmJavvwqyagshq9RvvwUjJPebhuFwloi/BMWEjfHClNK3pAh4XHnDhHtZcXyU6WQf3sP9AFqhX9KMLkXkZV2DS/Psyx70qFLv8n4cYSTNJwpCHyRvi60lxUHkfrAdSLiBBMJFYWDF6fHB/ocZp/7a51eG6Jq6ZNdDZ76SjqBnjqG4BJY2L6tnR6NeQcqo6ooGK4bRQk9w8FwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4677yfz3_e2etest","name":"fv-az4677yfz3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a39dd491-7e1c-4dab-b0ba-fca20f5dabea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11004","status":"Disconnected","lastStatusChange":"2019-09-11T18:20:53.6292013","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"cd7f59bb-6425-4f63-8477-8a26016e33f5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuQTavfiIg7bmdAM+1ASUOgvjSlR5Wkn37f/yA7fNS0K8vCeBHfTw3Ea/TgHTaVpCDyizTzqENOvopjchiqwERNNtGtF4APD0K/+Bcvt+9YuyUo7P6LNnfJztYR4vAy8smrMYndJYD8zp7LR9By5U35uF9Ieu61uQ7oRrxPDUvtJ/OokQJAVuitxkwRG29NLDMWH9LGp1VRryYfjzW/xYOX2g2KDUPPHOXuWMJbY0G7wqxDXYhji7i/5v50HIGVDfNHchBn2+0MFHDm1E9P4/pEslVg8uwia6cuN4NifHKnv1XgFwpjDqZS7AREmnO74Rp6MSjmN7fRcOhHrSji8BQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.1.1909.10002","name":"0.1.1909.10002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4dbeb39f-a7b6-4780-b24d-f58af35bbcf4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.10002","status":"Disconnected","lastStatusChange":"2019-09-10T18:02:54.3097016","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"496018e9-fb1f-4eda-921c-9838e7b33bfd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7EMafkxKp4XibyG/cE/QKMuDgbZTF+PIeiJB83c7eNlKIYnDjbAR+54cLUg+fQMI7udLW0AiYNZjM/2PajFGn6f97sGNQfw/Y3R5CQoyqRcH7lM971npCuAOXLnXNia2BQiIWVuNqdo3tfiKLfLvW8JZpQij2B2U6/W6CsMEHs1v2dq/knWKoQBozxWRsaOL0n7squ/zjkz6uBpbUefVqZGCz6YfrMFOJQmnRJKIWeKQlLTi/wDQgTdhMVej1HT8W3K/uuwMXCwC3VKSjT2iSpMNeG818BZNQjrNUqKoAMKl+B8VwKYd/mwteSpoGbyMpZALSdiD+1dnE0TxpBFmGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45879usy_e2etest","name":"fv-az45879usy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"00eb4b56-ed12-4620-9c4d-8eb5637610a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22024","status":"Disconnected","lastStatusChange":"2019-10-22T22:56:36.5291465","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"5bf463cb-6c97-4bae-83c4-f31dc62d0c20","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuCu0ddY+liLN7wdx6gddyjKFRIROxu9SL/bw6W9MliJb4hldYiR6UmeyNyAwCklCu3mXVCcj1Hz4+8ZoRnloMWcRdjppGAw9UedqsSvwA4iv9aDK0dGBotdO8eRCQAQ7Jt/A8r2abC9WByO7lcWI/4fA9wDI8K8nJus7kjvsnUTCThJgbhxWhDe109T/1/ztEL28OzgMmUCEH3CU62tzgvWvw5oW8t7UKHqdqXZGkaF2halvsssmGma995KFDZyWlyXbkvryp51AEsBQJkh+1KecLBpsAFshOGb/BQqJkMl5VzXQkgH03OKcyssME67zCnhR/I0IeftrXbrtM9WdUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lvq5o_e2etest","name":"fv-az456lvq5o_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"637d8f85-dfc7-46a0-bae9-89d4f3538b9e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26004","status":"Disconnected","lastStatusChange":"2019-07-26T01:00:24.8144116","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"eb7062f0-7e2f-47eb-a6e0-1fe11016d5dd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAydxGU+kCqfyvj7s8GM9+1YPB8aay5JsoG0+i0OLJtE/7nu14LSJBoYHy6rYO1VzwjcEt6CyXr/1kvEpobo7jurMshjqh/F7IrgEEctbWTiwSZrRyxNZZOXerffi/gb2yUZU6/6GMgLw2udeW7acCS+LwhbMF5zn4c8mSyqS9SCHj/si2jjVBzZ80bC9aIWCIK3sCMWGiEbOYnpdjEWGYr3ZVJMJrh2VkHGO06jxhCXOKDMXy1jp7Er9S1RNCRPwD3/9SffK3FzfgmLAnylw+K2DTBiwY4ENmZLcoCkpyknn/9DvNoNP7wzR/LtiaxaQdAJLbROq9MeFEF4QP5sQ2qwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623yxl79_e2etest","name":"fv-az623yxl79_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ddf40b56-77d7-44b1-be45-90b5c5faead8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17014","status":"Disconnected","lastStatusChange":"2019-10-17T22:03:22.6334199","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"a7e1981a-2161-4dce-a01d-57d514b93317","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvk8a2ePTaZAULI5YafgiMJKTjvE4L1AUOTucWGxQif3rK1SIXlTPPst+uI7BcD26syBacBqZvPE6pfxkPvrPoY3QLEszz6oacUGlwtEhL8IQuxTT7Dji6uAKe6UUuKlPkt5T7C4SR38zqQMq7x3KymRxCkBWzEKsTfFxVYGB0Kv9D2tXgTnirs7x8iq6Ad3qY+mcMdPxez9RoekYPUsaJiEWasWmS216pRc7yNjywLardgaBLvCPAf+tkCNM00tPyuGkQAndyOO/pOqHKWbfzLNYc7OqHhxeVOELYg0bGLVsWdFQaoe+nfnTyPg5qp1umNs1c+0eHQB1Oz3kdGG9UwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az46794hn2_e2etest","name":"fv-az46794hn2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"29a19c84-efcb-44cd-8e47-d0225de88395","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19001","status":"Disconnected","lastStatusChange":"2019-08-19T19:21:36.803995","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"b17c5180-ca85-42f4-a0bf-dd518b95dcac","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnLxrH8Ix7yt5FlTi/WeiX2GMdcYKB97vvfMb+trj6KzZ0lkJ614k43cYJbBtUTT6eyP7JmhH/yYZOGWCm+k0icdWfuV96bHXx8DoLABcyiNKrdW+gol6WOPmLK05xVBPbNJ51U1HOMVotu5M+MTt8hrSiz7USgORTCEjGpTmlPOQXJ6SXG31BFBCA7VK4MPT6RgltNyTNlrpPrSXigwE4nIg60Rj49n9Z3ylUUlI42t6cm3o3vsR3fxeWgi0JNjhkt27n2JwEqzFvf3lQ7UWt+5UfVjM2wiRJKuDAlkd6erQJpoVvKPu3ayL6rG1bijdz/muDIxAYyteSkvagpDPGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10001","name":"0.2.1909.10001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f8097707-98cc-420c-b134-db5c27dc919c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10001","status":"Disconnected","lastStatusChange":"2019-09-10T18:22:54.4763747","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cfa219b0-600f-4c61-abb0-2d8d3a27a30a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApnehH2q3S1l+kGV/fg+ykdcx1aW8OqsLQsp5SbMh4pTf9wc2ZLp+UfSCEgCVUtjwLLTCQXUm6C2y6JvERjag14Qa5XUtbLWzhs+NEOYmhdqJ7kYGbBwgdSQJJYinRurbQ5sddHoCC6xChedtmP/yb8Rnata5tCYhnqhNT/rFn4iNgh+T70Xy5UlEzkIFDLRKRkjl9TCcf3kadIitpbiemGgCHH2366orpuJQgjLh06wBuOCxAPLRbhMkxo6zESWKbNmJvTHmlILVG01OGYeOatGrSjEjJ15rK9GU7EQGJw6OhMPJ8/HRPJBQIPA/OfKB0E2VL1c4Q2P7yONwxpulFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4679ymin_e2etest","name":"fv-az4679ymin_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bc829238-99ea-4ee4-89e2-95dbdfc17523","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17003","status":"Disconnected","lastStatusChange":"2019-09-17T18:19:34.0238281","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"49d28e78-3bc1-4153-945e-856d1ea6ec52","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0XzZHZqSSKk4BofCIcbJMOys98mMqnkkWzc7qJnacJT5KP4zmN+MTL6EN3H2ndctC5Uw0ufQ5X+5S1Fo8Q0JUBgh7mGoF9e2AL355aX//cItwguBmZTR5R7457q7zM1LUtxADX0VQ4HIH8FlDVUqAgkQUnM3nF2GpxYOUYN5pnl8NGPmj2KVNQhmuPB+ABqwvaFV5ou9SjrsAK6khTXjMF5AKHiiLXq8qnnht9pEC5G7hYI1oIqlmVPS0IMcpl440WFBmHkJaDm0fHY8dI0vyF7yDVjx6gmMLZ1HS/szTETf6+L+YaOzFIT7YmT0KUHv4QLKKH6YeHcsFVrkJ7+11QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az623z8gj0_e2etest","name":"fv-az623z8gj0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4162a60c-7a03-42ba-a827-90ae80a4114a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22006","status":"Disconnected","lastStatusChange":"2019-10-22T17:51:34.2694146","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"c066699c-04dc-43f3-835e-70d5310767d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzpViHMMORwkeDDxv8p4gJN/luB1l+mRF4VAT1VnNKn4y6hRs2v5oHkqc6r7u1JZZv1xyiqBBIqyf7+G2tQYnlPKeZ9Kw8pfxO3hrel9VvNhZdYujJkUakKFPbkRAODNRAggLi9MK1di5O3PoEypnYW0qk+0ikGBNntG97vECzPKTRr2RBzKGFvuGT71ZAhyqljfRiV44NXT02SvV5H/5bs5HjtXFmPpb6GKRGLoe3Jrjv8UiK5gMtz2Xev4rYQlVZ8iHMWLr2/eiMhagX+wVuKU/0BCTUxgJEPdtVd4HmWFhZKU77Rg79rumLL1+wFvUwQDkLUvlQkhVWsanC0KdaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.04001","name":"0.3.1910.04001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d28d9a3b-3781-4102-b187-4adaf1111e99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.04001","status":"Disconnected","lastStatusChange":"2019-10-04T21:24:52.4186289","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ac5e32b9-22aa-434a-b978-95a7dabe85fd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvaMaqCSCLX3BK+D5+LY/nSlSbw+c1oXkK26xCTG+8s8PyIUCmiwC+fxTOM9X2+85B2lS4+ZlnPF6uvwdVROH/MpR1gHqU/EELHSDcPiZZ9xIHGXyk5CQdSp60aFRUXDVNAzoc+L1gi1zcfYtBzR50KQ5OSkgXtCGLMw2y55/k71gWvrT1PBtdsRtRV5EhRB5Rmu6pF5KNOx7BBP8I+/MjLkMjSxsGKRt2wjFWF3xpdH+k2Fae9tUB5FEUM4pE/OrglatFfjd7eP1kzx85jY/jDB9NBVqJ9lC6FmW0lB0atnZgLgHTu3FKnsHD1KxfZiIaqdEBcHMBlY6T5xSfQRt6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461cp4d0_e2etest","name":"fv-az461cp4d0_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0e5b49bc-62b6-4791-84d2-413e38cb4fff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03001","status":"Disconnected","lastStatusChange":"2019-10-03T22:04:44.6171914","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"dd317b01-5eda-4ec8-90fd-1de6132067d9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArhBXnzPNopX9oyuEkCd9hcZXNiJGGDgMKmTAsJCd2eXu82ZQfrVY817zeIL1JBp+9aPGBNncmpszIkWrkUgWQagS5TddJRP/CqGnizyiBhsD4lhVcozchNjOw0s5uhqkCUQBVBGcCbpfTaVcu0q48bQD1a14/EV9zVUydKacqI+ZuwFQQwAxVa4saqbTxnvVSDbLC31kqns+j4JyVSOHL9cxxT0lDuBDYVOsIrbFOn4Iz6wJIAZXpsCGjfc/xG4NTwGdNWx+szh/IULAUp0lWShD0GPhSDWV5d5rZuOvisQJzqFdKEvMUz3Lqsr11ShfxrU+1474O/4ZYlflyCy2dwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461d2by4_e2etest","name":"fv-az461d2by4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"61bc9d3f-4a23-4d04-8391-036ede723c1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24002","status":"Disconnected","lastStatusChange":"2019-09-24T16:28:52.7219713","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c19d1c21-9d57-494c-a610-7e5cfe871d20","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyUb0QQ5tgP2BruooWi4NMQZ1N8PC9qdgvsV5GaU/5cBZ8pBqmZjCam605mccs69/Nwr8exs7kfAQmlUyA0QNLHB65K+fKh2LIW9hZg0fr9uc0lp2W5ESuJuUDGQoEjcb3mS8EumHGhFUJci4A4gEb8Xt4ZNvG+SAPe3uL+7Xfqqi3In2oqduixM77ZvFqdMR79oQfmJJZtv33Xck2fjImi9qtexD+osE0paZ+cG3AGBLhhXLtqUjCqFMwGs3jnYotn1Bi63UXBwRGKO4rocwcBH3xaDe9+lq8hE6cXJB1gnnZiTusZtUfuQ5ed7PM3ViH4o/Hgpjy7uMIC5q1UYL5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.08001","name":"0.3.1910.08001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53d3b80a-d12b-4dab-a4f3-e8b9312b6cc0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08001","status":"Disconnected","lastStatusChange":"2019-10-08T20:55:24.400528","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ad34b97d-6052-42f3-80c8-3f0843070c3f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr+D2KL5BwI7ZptdBl7nsEXRO/U4nwSMzvtwTCUebL93DPJHca4hx7Gu5Cc3UPCWT+YLYYfAiOLggU7h0aDKAkQiYrck1OWw8h6kkDHvaMRPCY7s+EDTOvzb2tCSwfzn9gUlcRRJXMsTEXu6dShY626gfDIHYscmrdefG2CEKsgV4FkR6T+31rRZZRrDJEj24hnYdMCuRtsphuL3BMqvAtl+wqBdTbt22JDWOQCcnBjHVRpMxAgeDntok7eINL9KvX0qhrtmhman1hMeeAN1CnpcjF7VyiNoQq63zneCheZcSHz99QPHxMa7RYNDZdxi+wPlOScnphmQNiyPNJQkOOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467a2w8f_e2etest","name":"fv-az467a2w8f_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"30f4e14b-48a9-43de-a591-4233c21f2546","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02002","status":"Disconnected","lastStatusChange":"2019-08-02T21:31:05.010805","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"d25a1378-3e40-4188-a14c-2178a01aed6d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1LEi0uazu7hii8VNonF3ADVpF/XaSslwGgbyFp2Ox1GNu3nbWsznF+RKP/ZDSRrydPF6kw/pPsv1r9afx2/6UYOfpR+xx0xdloL3qSqFtOv4mFl38s6EIteKccQ1kXzCS41y6JBu2S5X/Aa6Kih8I5g5Rrel+5JNrSKN2GvE5rObix4ydFVtTG7gHZTUy0/SFCxtcddjl8V1LvwEmGNwiBzhTZIQO12fv5aisEAfhKUYEGnoJhFDEyP7eZNHvJKR3vNmeeoBAENOgn5gFNZlTaEEEG7SkYgR8kL8uCeKm1yGDJMPUff6bm9FYDYMLkLvc5GBG0nCW3qFPxU0268AZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.08002","name":"0.3.1910.08002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5045165c-ea8d-4107-8fb2-e68d33df3393","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08002","status":"Disconnected","lastStatusChange":"2019-10-08T22:30:24.9248881","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"09db802e-2b87-46b0-91ae-a48a5ecb0337","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3ta0Kx9y2tKb8AOici+xM1opWhmOPzUBqMui9pXXuc15va2UNUEuW33hYB2JzWJTYW71Y2/Wabb3OHn5Xzg9OBjAQ4GnexTSKkSOSx+kHieuOlZcAN9tWAXZSfKOCMlYbi8G0HkHRE2+TkqFm40BBxL5TII8IGj0ExOtS3n6kTYwzSdLEShP8C7nXU9ruoFeYI5/Kl9h4P+2VXsjOB6SsJKPkiR3v9sWZ7vICHxVIXjMcn7oOBuLkApY4vx18KSW/cnX7IUOoowMBiGGwpbG6injZ597XP+BRQuTwcLvSenLko7l4YAKdGoqAwVUniiTLBlhaWmH06MfqcDhbTkEGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467aj28h_e2etest","name":"fv-az467aj28h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4995b865-28ee-42fb-9370-8fc6b63dde34","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16006","status":"Disconnected","lastStatusChange":"2019-09-16T21:50:03.6922685","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"7d33b907-f407-47cf-bd8e-c35c109afb68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7pkYlmQVUYZltnwPB54NL10GyoPQmcmRskASSa+uVamGtvvvak9pFQIo7EoLm032ZSs7Mvj35hfMfNzc65ChOW+sVz8hk42ouoQQBK6yOgSgz4INA7L8AL6XE2Yivx/zQrk7K6Ot6sPcx4mOELbahVNV9dhygrNAF5h48QZJ9ODIiY/lzSFM11a2svfBM4YrPbTWVMpM95owDiaWNZ+6GCgZGT+mqPBTCujLxngm5l/+2gvr+34oUZrbaYSatNtzHwPsjD/wsNApvtdzjGWIOnBizrxquEeM2uECPQZJseeYlpk/vHHIae/XzLXDhYlgISbGpBvRfn5Lp/UX1sn/rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456lvx2z_e2etest","name":"fv-az456lvx2z_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"23449e66-666d-437d-bffe-c48877c507de","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24002","status":"Disconnected","lastStatusChange":"2019-07-24T16:35:33.8091016","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c64b7ced-93bc-465a-a6fe-9ae75e0225d4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6DqRZ2LiIBuaYKEVou7VDLpidkYkOBlOHAVFPiAK1PMaE/yXKDJLuFwc8vSzzGonQL87BK85NdzbIEWZ9ToJC8hY0Z8fN9UYasOQelOLEKqwJS5MLdEGcWQechahW8+zru1tpjm1clNfqifKW0gGR7NZifc+Q0AmkU9ZOoZaBGPDtrtBs3/Wxw+X8PJvB2dwBwBnIfT4RTwkmo7koqb1QtEOuk6n7eq9uD4l6EOAvT0eKy7+1PlSPD3gGRFUIgEj3mUrbU04/ibiVjQH5sXZoKhrtlLNvFSgAVogKMqthYY6f4MqO84VHxa8sIYWA3DlxNgr9CWjhHbE06t1zvIViwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461djmqg_e2etest","name":"fv-az461djmqg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99adfa9c-590f-4555-bfb6-cc5ceddc35b3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4611fb64-8a05-4fa6-bf33-49805daff6b9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvm2Lf+3xElki61egk4LDO5u7e1avW4wXpvOTP0EhIpHzKMx1uv247+InpujcEFGnpGxlcH7Gg6cvZvFJnQAT1h1TnY84nx8C0mzQTZGlwKQLm7cdNiDJ6oNYsRc7/D+PGAMDTsImmNtVHttBnIKcJ4/TC2VVBW56YoyBwjqiIx94FRbCgHI/5IXI6IyEO8/SU07iwvDADBBT9WQAP7KD8mDWcO68S+SjETgGqj37+WgBUxShgzB2rqxbQ9gJ9OoQuseErZzJkJaZv9RyTVeQ5f+mr7x8pNLocuDmJCKo6GkbC+jWg1SauBzaCOgqKeNnv4hKmaEixOoN14O/rIExVwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/testm27","name":"testm27","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e13be7e1-84a3-4959-b222-074a4f4dfd21","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8888888","physicalLocation":"newLocation","clientPublicKey":"7777777"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456478m6_e2etest","name":"fv-az456478m6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"faec4582-a678-4b59-b998-02ec26bf5054","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10004","status":"Disconnected","lastStatusChange":"2019-09-10T22:32:56.0931269","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5aa44fe6-8b87-4e39-96a4-23630cc1857f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxw+xBaWJ0Q50tHdLQ0UKf44YCbD3CYSrezURj3+lgyGGdJ8vwBPymIxBNcCYK+3O80xJPNWtXQt4EKI2UKSOTLV0HbuAMgIm3Ht1Wazn3ad7AZ/2o7lgBgod+KQVbo59XmfjtY5kpdjql0G6UpIdHObakVng4YX/S11VnMxAVl67RJsAtqWkrT/pt2UgXCU8kQlRV5VMRncNFFNrtoVPxf+wE87Kypv0Qy4zmBpbOGEj/ULhyjdlwfLuH08yYjkHMgoYcJ3ynmqAG0jQYAbRovXnW2TJ/Tmj8AyKLQF1SaCFgHeeHVP5Bn+86StWO+l35oX6XBLkZa73cep7OhJzgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461e5t83_e2etest","name":"fv-az461e5t83_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e3e55e3b-64ee-41ae-8a66-52beced0e76e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13002","status":"Disconnected","lastStatusChange":"2019-08-13T17:52:07.0145513","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"96be8525-c72f-4ab1-85c2-d4a465c978b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArY+PZdDWEJvUsaLzkXg2lFgI7JdHMXqCEkPsXF2jFxkpfovz2BXPNh7bV4ZpbEtCfNcOC3+zLrsru6PpYrL8r5Mv7VWrxGDjlXr/tpKuBXXk45O3OHVxGmtJO3j/TYgl1Cd5WDac4fN3+sv7mMObQcR/aQ6upcDfg3I4G89l5ouN7Hm6wh+4utXYBnZM9c2yvoZj9gZgsPazzsfh3lATO5lNGuPTBSW66FMbioEg/IJlLy9VEIvGg7RCzjTXNX3sfhX8w2TEF/qQqG7nH37dHm+h/e0s1ongmfTbh/4nrr2N4HeJjE3gUo7iKAGjvOMu8pXIM5aK49tqX3l7bVUVoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.09001","name":"0.3.1910.09001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"42f6cb31-4da7-4b80-ae42-b7c3d4be80e2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09001","status":"Disconnected","lastStatusChange":"2019-10-09T01:15:26.2361944","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6aa98e21-b1fa-4cf6-a97a-60f45cdbb80c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt79xlp9dcbFHkNWCTFaEwayR9Ld0fvu8fw7SAT4AQcRn/6YOYWo/H7FnOVgjo98AcvolaZilCbxWs4Xx3Sm36nlfBOuxP2O4RlTdkqbfMJBrJ2JX+5oaTp4YGJKl4a8a8GNv36m6YnIrdwBTqdgTD1jHh0KqOKgNkrnkgnTCV58IM0duEdmxTmboCuJOug7JMZd5Tkz4JYIC2+vwK+ZTdcXmI1TlYbppXJivvi4aPCwvgRPE69wyOlnTO/gU7XX5GjkG5Qxg7Y47x+tdcPR9bt3Uq175U6ThIqIOfRL3xWkTs6qFrf9GXJMzCbHQfROOD9VrOqcw/WAnQ2ATSTBD6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461ew90t_e2etest","name":"fv-az461ew90t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1807b037-500d-4a6a-bb77-20059ff823e7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03002","status":"Disconnected","lastStatusChange":"2019-09-03T17:34:23.8029945","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"da2dbbb4-c9ab-494d-8355-f6840edf09d7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3HQrY3+WSzU2wctCV4zhSZxWlEEtHENyIqIKf+L92xx5mafDGewEkxqpvmLj7TPalD5uj+3QkxJ5RbSAF8Zv7q0U7TUqx9XM2lqgGq6Biw80TOjwG+tmjLsC/8b7krOKvuyDzo8aVT8Hua2PGYD5O/6kO0uIWK7MKix/hL6JcHclFjyh9HqpfkVvewpiVvjhViot0l1/XpuQQXwPMlnCFpLrAzXpaga3+cy0KLw+4W0npJpTht1h6c0wp4IddCMr8SU2OmQkHcF2iKYcgBKibcf0AWePPiUAUVB2fdNfJt6xe6GTQFY3USWLWyUOVH6n+tlxael4Oa1uuECMJ3MYowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4564pc78_e2etest","name":"fv-az4564pc78_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e17b203b-5a40-44a3-a7dd-64d7dc8d0954","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02003","status":"Disconnected","lastStatusChange":"2019-08-02T21:41:05.3136389","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"60d3dd51-77fe-4e72-b13a-2b001a3a54f9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzO/1fVGMRywl9yeonW/bfGZWgCb6yFXom78UlzutZyE+F1A1HGNzqRVIR9PGpNTtAnJ37Vd+r+LdmMNI+B6+rrE+jKOY07DqH0tU/MaWfDQMK+Aq9VFjuMijc06Ney7JUZ/n6bAgFrJgHT+q4wV3kWgj+bTmG5MmzrSZWZj8nLfDbRqiNcQLaM4HPg5tvey9FsX8LRfte4IstTb37HoMFcPuCLNjfcYt9DfQhJ/8y88gpuc4LO2K8ENzcHDIfDyrZgsii/qEr1XB1GnNq8v7bihqpTuJsafwlWH3eJtSbYoIvwxJ/Nv4dHmsN+kYaNZJFFShNrCzc2GoDAJl1744OQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461g7l6x_e2etest","name":"fv-az461g7l6x_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f28e4ded-736a-44a3-8f4d-a5ec9d870064","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17007","status":"Disconnected","lastStatusChange":"2019-09-17T19:34:34.8119423","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c53965a8-79c1-453c-85f0-013e12bd0b0b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqBYJZPPV9SCeG6NxvEGA9+XZjgR8TJ+uZI3eIqsY8bsmGIxZtSOICNE8bdIH/bx6veXHBgq6fuBjAYs3e27VSIGBGiJfjsPPnLv2r/m+1FUFF7OQtg/y/1HtQdHtG+lMdG7/gh0r181qdXgaZ1s6zVR1kntZz2YXk7k8Hrxydab79yjQeMdCFsOZ/XPq3bwmNOfLWaHh4HHipcCmV4IIzI6/b/tG0/YyPD2glfgRm02LTWt4iYLON97geut0EcAPR1XNZlPzKyMhMGGCOVTHoclu+pl8y33I62NHDEbJ1d5KFwHDEi2zR+ANmjAzvYj8hsCOiECKCRs2c43DTO0f+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461g7mhj_e2etest","name":"fv-az461g7mhj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b3e8b6b0-2cbd-45a6-9225-a9e922e9d878","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01006","status":"Disconnected","lastStatusChange":"2019-08-01T22:30:25.2899063","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"0293414c-25ac-449b-9395-fe9ed369b709","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwnwRjU+9I2yBjOIUPku43Ra6u98j4fX9aDkPgKXzHwezS0Hn6H/sQEmGczXw8Es6IR02pmIH5BMkG+WevFIaqq9vDJgRGIYcAo7Qqz2YQxPjFdSio0jcO/AaSREiZLPr8lANT8UwTrZEKR2Vi/tzf0EUO7ugnyCSDOUVwG3cukNrMQ8ySjoQ3JIQpyJIUEBMU2Br7Ns+ZUUUKrQ1Qia78l7KSrYrucxtMPm5QIr8qm4fYZDvccOl8My/J4c4Cx7QOGj5b+DuEsz3oqFKmDKfJKZk/7M69aj/MSzLpQPREFL5BWGnsdhCzwrkfYyraejyVtDJyoDfYRCQHxcKFtidxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4564ta09_e2etest","name":"fv-az4564ta09_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a63ffdcf-380b-4c2e-8628-69adc7fe950d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21002","status":"Disconnected","lastStatusChange":"2019-08-21T18:41:13.1549698","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"156d769c-ae38-4d5b-9e1d-c98b44449c7b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuu1DPXzahdMBKo1TP7TdRJrw2uXtw5z7ZSxkiKgtT7S4rmMpTqxgzRt/mvN0zG0A+jHeeUVvTRC+3vRzR40YdEwJtynS1Yg9/hkWCDn/B1NY9cC1/syr+R1u4ua3lwRBm1U4WnfMFdcJEMEYy2kY1YaaKXtNvVyxWnw3MTKJyszd8HKxNCU4++J+9issnOL8Ctt/ezL0JKaIeOQ44XH06/YbjIdegHQWP9PgY2A1sdW4b+qXkZQR+wmoZaHstBHUxGr0funjCoQKh4bd42kw7rgo0E2wcTngM2FONxUAYwtIlWS1kb8y5srZvdngc8ZCxkyitwTnhIoLGfUselMwSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10003","name":"0.2.1909.10003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b661f5fe-de76-4ba5-a4fb-bd94a637b32d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10003","status":"Disconnected","lastStatusChange":"2019-09-10T22:27:55.9615849","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"f6b0692f-cf07-4a1c-a5ea-c9247aed84a1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA27u8MjtIfxjt7GDrTyZ0Ew4FXpWGNFfq0JJXlmpvuWgw6XRv+NoB60pZTJVENcXnCri15IxkGrGvu0B+S0KbU7aMxbLisQSUvxhWFno6I3DRsq75dpyIMuq+w/NlgkyeoLrA+1JkUSsv1XxD7VUPe+31YQQ0q+6+CcNTNMWOEhduyjfzd7YXSbxKFn/Yr7D5uNwgIqfX+2IRu8MMhNYGpnqP75X0NDG6aGS2QB1LCX+B3ULibFB5YSEwOeY8A2oJx6HCcSIYLg+6GJFrf9kozKmcAprm7fz993RTsC0J7ibWWqCUAsIeJvONt7P2/l0e7nIbGiMgDOfV8BssO0Mx4wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.09002","name":"0.3.1910.09002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e1b195a1-952c-4b57-b9bf-b74cc9131179","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09002","status":"Disconnected","lastStatusChange":"2019-10-09T01:50:26.5038926","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"22e6eec4-1989-4e2d-bfa8-daa3ed241c68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtbeDUqN2tAiqlE8THC2lG++FMh9aEtnKuJ0qsPXiIKHxT4UpDIFeVrsXgonEbHD/zESwmyGBNYJneTDsB+nOeTyqL3rkp7KJ0hrFyL0tulMJA4n3vtsgVdqkIArNRSfeTZYgdkEugTfGp9LGII7tL9O0d1ZtUyfpgdjNMKcl2bFXhelQcy2OWSDJlMSVZMuaeCtDMYzOTMSo3/KudKTbTb8GjxG9MZx7Bn4P43HaCzmAhR4K/h2fwubt+yARZJ0uWTj0kVDMESb6Dfjma1TFwT7zKPklN9Sl6QEeEarEP+xRL3teXGUy8xhw5uLcU+4RvUrzroRhg+V7Qv+oBMTqxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461gavmd_e2etest","name":"fv-az461gavmd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b32a4b2-fb8a-4442-bace-27c95231649d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10004","status":"Disconnected","lastStatusChange":"2019-09-10T23:12:56.4875597","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"48a559f5-8408-47a7-a793-0078ae066dc0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2Cp6JHLd67fx/5Ld0msDcT20D8nI+gOqcAb+FudOCcULeIXUaXOFkhqW2FQvq/eUjXvej/d/PY426bOlAEsV6/zL47bJEHPMR7g9jX1xuj+srCasvaavc+9/tx9rsgJrFUMfECMkUuIGlW0+CeViomLv3mGzfxgYrql9Qnn4aWg8C2UzZlPcWh0oPiReOtpBOqvDV2zDOY3KUNrvBLtOZDoEulEY95RlILo+ki+IR6r9PD0p9fkwcEcOMc7iM/fEdn3RwuyBpeILy7vc1A4RG1E73NTLKRoF2YTMskCKIOkUG+ec93MA/nSR4Ci2vh2NovQ0qpVcIa9cMOioafni7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45650lxf_e2etest","name":"fv-az45650lxf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"678081d4-b245-4df8-b665-db68cc7896a3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.10001","status":"Disconnected","lastStatusChange":"2019-09-10T17:27:53.9902037","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"7568a38c-7a3c-492e-bcf1-5aad1c1f2ea0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy4rUeh9IFfbPOUPp4letdm+e4/oF++PKDtWo4wUcJTcQcHAj9wKF23cDnNv8ILzKDLrcotyj+OVXJDoSYgXEUeFCK618s3v5tqAb3BXiCie6fHQ0QJdAs+AftbSn7z2ktHZxocA1BrgrnTbF2Zahk6NHGeo4YQKkwvZwXTleuaEOYGecJXH/E406BlVshTgwc1fV2NF1/oZbWZ+J2WPExiJWqrmmK8D9iG3uu0R+/xqRf+lQ+I9yT/2oOhwK+GTDNSNBayJDCo7ShUUsJW66aoERWAK/nf1z0rvI6uj+02dnaWOQ7DT9qpFAzNQIOaPZlJB2LTHYfy2DfOOsjZp7fQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.09003","name":"0.3.1910.09003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3f78e912-fd1c-4e6e-9350-50da66f63f99","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09003","status":"Disconnected","lastStatusChange":"2019-10-09T18:25:32.1981456","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"80a4b380-6c14-4517-95d6-6379809ae506","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAp20rK9i24OTcWUATKJUN014DeSf6ortlzOhxAU6b4GWNnfoXJGnAUz1MfGyuN18snguuB30HIaJ57j50z/LRT46brcSOIl2VnJ+0fEgYvVhdSWTN9cWOIHq+J55uc3GAvaMGAmYf7OzSrcoLH/kUVUP9yXpTpd3/WYPnekGn+6yIW0fB7N6Oz78MhrBVN+5Hq+LKRAXLUHI+cwf52EECMC24aSrgv6esSSJZGmeoW+RPQqijoD5ZBVGG+MIR6cGS2HMMn4KDlLUgWX+puacvO7m9f0Idsv+k5yj4KEQGub6gSE+aGRIP3Duxm2f1asjMfO/vtKsrFqf8B7KhbZtu2QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10004","name":"0.2.1909.10004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8c4e74bb-4c45-4c1a-8458-a92dafe42faf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10004","status":"Disconnected","lastStatusChange":"2019-09-10T22:32:56.0931269","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ecf1db9a-2e95-428d-8954-69ee1a86da5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtrtCaby50RIM45+JilYvtBddeeseh/VYVQl0XK66QMWcNRHrQj9jPy2l5Cf8MBAM0aFv3kXIGbOVlmbLfi5t84sKfYOXSRRWbiuBBHEtKW5nqqIqRz6hp4d7J6qFi8E6VAhspG1k604UccpZJ6Jb+X4OyoHl5B+0DVWh8GUl9sbtpfaQX2RqO19qmK7g9LPoU7vZBV/RMuqfyMJzc1OLwZYuiFc6uAyiOXX0c5X0N+VYerVHpx06mV30wWl+pcyIH8xG3Oip8kUm2qR4qixQjh572TRzsSYs5QgeyuiE1oSMRONzkwSbPM8GZOB5jSHlDRaY3xlEsxd3hGEpzQmWmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4565ekz3_e2etest","name":"fv-az4565ekz3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f0c77903-b6e1-4d53-8f1a-b794ae633f0b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30004","status":"Disconnected","lastStatusChange":"2019-08-30T22:06:06.1981756","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2a2ec17f-26a6-495d-9052-5cd735c5b039","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAucbY2WcQuwUnqhKAB/fIkW4d3hNiGQ954VQioJZ/ZcH5HYGZxlIXuDABw43DV2DonK2DRFDUHVh3g6uraJcLfD6jNpSNgtPX+czf+0V0jIwDanWHezY6haQd2iIYvJj8I/WO2Bu8VGxNG7PoPpVUcZ5Tbx2hN++7uyY1mi0ZfC5RsmL8tucRt2lDyOzqewyAB3mg+tQRYYpQE94cCHm9iftKaXCjLf2fyPiSej/kGGD7AdOJuFB59HL2+trcla0bBTLbfG5o3KZYz8oxTViahr8K5lfiOCtj/QDO3J1tfujRvnEamsSgwLZeRu0zDjKIiNxFLyWrhpn3xi73ifbPaQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0dinUYghgUSqpjOY1kuTQhI2td%2bAOMZKgxGQl7XqfvuOZJ2KLO6583MvvudtUIlz96CqXTuYvg0YrNbpirAU4sF0UHZd3U4ta59VmRR7UXU32euhETeF3lvtIW%2bLRtWd0lVr5SPheq5fmNvxJDPdsVeYvudOTEG2k8IvNs4mt6260Ue1EU1rzVXR6FZvu5v733mjNoHe14dOYKeiVJVov2e1Mo%2fIxOK3xB5OTNs3bWLWjTgqcfr6pd2peq13oro1RtTwqEFI17toDQf6P6FLHiL%2bcwa5gHkmXh03XSgO189w8DI0iLNcI2noIlovgwu0bXT46ic6WMbh7BHReDRyxuhFcU8CecfVU9kCZcSPDRLRJJ6guXeBnpgMeALcZxEOEuEZLpOe48kUG%2faB9nKDCfScPF5DOg23iNyPnM01Z8svOc55BvAEoaRofQgBKHaAXEIOKT6IcgjQyCT6pZmGZ2CgFJQBKIymLyxY2SAxSPlLChELE0jHkvA7CGQAAc7RV10CKyOgUMKMcpaA5kGCDjISPSvnCHGhJDp9ntTxVwAYRQEizy%2bT2I%2bfAVOxW18aAgaaYmUIkh8uLCR87J18Q5GarJLin2QXDffqs4IXzj47%2fxc1wuURwwv7MwoH7%2b9%2fAQ%3d%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '116105' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:51 GMT + - Tue, 15 Sep 2020 00:36:19 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - 6dbc38d3-9efe-4bde-b515-ea9a9d0ef3d5 status: code: 200 message: OK @@ -1657,44 +2866,49 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0dinUYghgUSqpjOY1kuTQhI2td%2BAOMZKgxGQl7XqfvuOZJ2KLO6583MvvudtUIlz96CqXTuYvg0YrNbpirAU4sF0UHZd3U4ta59VmRR7UXU32euhETeF3lvtIW%2BLRtWd0lVr5SPheq5fmNvxJDPdsVeYvudOTEG2k8IvNs4mt6260Ue1EU1rzVXR6FZvu5v733mjNoHe14dOYKeiVJVov2e1Mo%2FIxOK3xB5OTNs3bWLWjTgqcfr6pd2peq13oro1RtTwqEFI17toDQf6P6FLHiL%2Bcwa5gHkmXh03XSgO189w8DI0iLNcI2noIlovgwu0bXT46ic6WMbh7BHReDRyxuhFcU8CecfVU9kCZcSPDRLRJJ6guXeBnpgMeALcZxEOEuEZLpOe48kUG%2FaB9nKDCfScPF5DOg23iNyPnM01Z8svOc55BvAEoaRofQgBKHaAXEIOKT6IcgjQyCT6pZmGZ2CgFJQBKIymLyxY2SAxSPlLChELE0jHkvA7CGQAAc7RV10CKyOgUMKMcpaA5kGCDjISPSvnCHGhJDp9ntTxVwAYRQEizy%2BT2I%2BfAVOxW18aAgaaYmUIkh8uLCR87J18Q5GarJLin2QXDffqs4IXzj47%2Fxc1wuURwwv7MwoH7%2B9%2FAQ%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456m7qgh_e2etest","name":"fv-az456m7qgh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"597816c2-248a-45fc-96cd-4cbea0379dee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22004","status":"Disconnected","lastStatusChange":"2019-08-22T22:51:23.3474865","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"67932112-e35f-4d4c-84ce-279160a592a1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6N7UIhpd3HfI0wvTxKCl0TNRoeUyiqGUFHG0Jx24wE8193yywAZGjS840TGkjydbeiqrBEVtmN2j+cpriRfC7oeR2bwJeRZQWQbddmjXzXDrvk2478e7NkF/nDBbA+15bzLbRFqQsKjLacrqC/5WVYVpSMGiP+bpdBC/tscP7tJp229Fe6Q29fKvjMLJGjZv9NU6DpEiFXBRp5R6TddFtlLiCZPDSXmpkQbbBwwnZh+iecg8xPycVkuxNO6brjYzlmTVU0UN/h7Vzl4v2SKzuBCUz54b+ncQ9LJXfn0i6+kwYXPtBFmJrB+1EoojgJQJa9HK93CAIw3RXxnTDXU1rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10005","name":"0.2.1909.10005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6f22a53b-ada4-4cfa-807a-f79c14b98b32","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10005","status":"Disconnected","lastStatusChange":"2019-09-10T22:42:56.2232882","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3b0f8de7-a4b5-41ba-a731-e4b6a4ad3a61","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwMrJfEMjsxF1jyk8Lih1+EULQYkBRLrbD4NZdNfTR8buqZez0m7G7erB4fnPUnk7B+YYOdLa0A+olTr+K3i0RhOKwKMLtj58MVvMiXumBiz/2dW9ppEkpKZEpp4/GVzZN3fMdJVzqRDWZoGakJbwsT8+NP4shlVacrtVKx9668NV7Ush2DrI5OsKCAdXlib/USsaOiQXcT0Lp5Yc9KTbmJAT4IioQsRz85KyLojSCXaGfPdfVjnNrrpu/e7fu7OXuquMJ4RRAp1fe/pmfO01MM90JQhchZN1KCS5S4Wunl4AiiS9S1DSe8slr49DagFzEzaLrBx4KdRIc2iVwqhefQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4565mp3f_e2etest","name":"fv-az4565mp3f_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ec5bffa7-f35d-4d94-9570-d2148f576475","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24006","status":"Disconnected","lastStatusChange":"2019-10-24T22:30:51.5298094","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"bdfaf471-2f2e-418b-af24-ba055e98af9d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2a5kd6H/nj0kGmtaHhRVOB/rX9Q5dvot0nS9kWCv18sgxyaetMWWuh0MEcFcz0tWrsCnX5974aTS9OF1WGNMSkjl2w7lZFn2LX63EjLnHVLFpVyr62ljHwGdWD616hJJ3Qt+GE5rm+9dLAFt04XijecbBx5cXLz6f4iC50/1AkBAIYD5UevyFemPq6L5y2uCaV/KRgP85NMouLp5RZEtULBe3riStEdjMpbozI4RZiWCCfuxqBWHn2QQQ6bh1YWt5tC9L4G3TuaElmQqxuwn4iDprI426Gsc2IEoupa09q7HK9yJkNMM6bg0aTSMxCAB8Y2aTfHjwF2BhwyWwQNJiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4587l5nx_e2etest","name":"fv-az4587l5nx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d90c9ddb-f94b-425e-ac17-7b4072c48a76","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.09001","status":"Disconnected","lastStatusChange":"2019-08-09T19:37:54.2442022","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"7ea79dbd-28d3-418d-b924-85ea0893ff87","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtvfq/fiRTUmqjDbOy16xEmK5kf1ZsFMe2u8/Vu1wCjxpqK+xPSu804b1iZ5mwyWcC5J4V63rjkVbuE6NouNL6aY+IkM1jVbkX/v61EFuo2iKLXI3j09AY+sQZSvUvJHB7sNdZQjIJFX+eDmiMWRkc72VJUyUo0V9ZeLqm9Mk0qdktCU1BVOjAEx9HzyMSDOX5P4dRvr3QG10UIERaeaT6YgQ0/ybVQDwMvCw7eOY5WS9hnY9kKh4sb7A5oRI7L/DU6j5UVyO+IJcQovwJD1NZYP0QmdGiwyTsNpIqSknTekm6xJalLvyDf6W8BJ4h17wVfF/asY3vkxam4VdcoFd3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467b5tal_e2etest","name":"fv-az467b5tal_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a52f20db-c5a0-40b8-b327-57c15804b1e3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.19001","status":"Disconnected","lastStatusChange":"2019-09-19T20:47:43.2086272","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"8a2b6df3-a916-4dfa-b86b-0c9db57c0e60","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApRfT0g7t65KApA4fi/aM0a2UOwLV7ryQiAja9NRkVEJWkO35ztXUnjDtfsFMbFutQlRYj2IlOyBO43UAIrOvpTBCllMGO1b1geMwib2+qPydQW6P0ap5v4/u2TewYnOLg5RDC/L2da1gEUE/fTeMfC3DC5Hw3lU9A10WKsRU9BFA74ovsR5fMR/rHUEczWrtaV+P3glUIEddVornt+LU6nADzOEbQRtAZxJq0xb2C1FGLb8PjL5UkMftMjUeGc8/pOtPkZxecOBUZDYvcCe6bG177+VeI2DK78+kYfHfD59JOHYh7YhWXawvJ5kRa/iU+6ftRjmU52hyxzY6xzSQdwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.10001","name":"0.3.1910.10001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b08e1390-7f5b-4c03-a594-f069ef669100","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10001","status":"Disconnected","lastStatusChange":"2019-10-10T18:25:40.413624","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e6ed7cd0-104b-4876-9e44-d79d695cec3b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqna5zVe2zOEC7E+1Q9hUAFxW6pfrLCSRKwcRb9mKdrT0N3D+x++RlayXJBhBUovMHXp3frPt2EXIPkUk/rqfMoQb2t8zSWCf2vrqNmwEctXdVVdEM9kIOOMsWZjxpWgA/57EAu5IJVv2E9z7akAlDYJuQjRxfgVIJ3FpCU2DcTtV57CyUIUgKBNYq9Ghol7oXFUXrgWmEhUUxyeGJ9nPgj3/kSLJl6Y7zQULLzAyTlsi0eTxHRISlnKwHq5Lbb9o1gSB54YuXdu+kAIhVLTY+mDwFHnJRVdQGzhpX6+DI0ME7HrBncZMiY0H/FZ0b0abmD7JZ0yJIT1fjcSU4+gGaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467bhji3_e2etest","name":"fv-az467bhji3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0ffdf852-1de2-436b-b150-41b6afdca8d6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17012","status":"Disconnected","lastStatusChange":"2019-10-17T21:23:21.9211586","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"574d4ed1-a4dc-433a-ad6b-c4f78a269abc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs65mHKBNWxNheOny3YfBUKiTqqyvBaeSssvAZ490tl/8C6Tv6VvoHuP3wQkjFW8m40cn8Sf2x6btqgWTnMVRIy3/1hrFT4ng9rji3u/ovEFgDKr9MMN1Ee727BY3RwnlyqiI+dRlrBzH7CbqHCrCy98AULV/KKmIzICvCvZxYHyhTjnARBu6BI1p5l+cXmGCzVXpaSuH/Oi6hpdD90TWwbql+DupYVTVmt/s+5BiJFAeB3P2arQJgWSAaEB10cYjir7vkruwgq6ZQKwYqQqiz+xhvGio3evjn5cblDcgoHN7wc84+/5J7FZ2Sc4RcfkgB9qtLyHF9T7Klp1jQPoYtwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456mon0v_e2etest","name":"fv-az456mon0v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5370e73a-6b4f-40cf-811a-10f81832c853","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13005","status":"Disconnected","lastStatusChange":"2019-08-13T19:22:13.7476612","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9c47c633-b1d8-4bf6-ac33-864889b81617","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1hMkQipWQrrR9lh7J0ndKKHMVC00eW2tXmTTBuYwHyAgcdVNHTUIqBHMBy2lch/nKcv926I0c2suviMDLxc/rRXJ0ynMFl3pbOXFenASiA2tGOEk3kwjgW/cYYIKh6S5lNbHdQAqjsUhHtI4wqI9swx43gcSKso+1iAbk8LN+5rdWCz+Atk2cfyZLQGqKfMMGdSV6FJmJswqmjm/t8+n6W51ccbNlFY4RULlf9CLESf7Y3RMF4XfdhG9EYykRd2JumH+rNB9hutB8Olo6mLJBzFi3f+WQhhFNaU0JEAi2Qi2dbT9K+uPItCuWlkZlW9kY44xEC4sMwGypoiSKr/yUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.10002","name":"0.3.1910.10002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"22f0e663-5f2f-43e9-8055-c30a42fb1cef","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10002","status":"Disconnected","lastStatusChange":"2019-10-10T18:35:40.5690125","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c4b7888c-6372-4649-a95c-4f283a64cade","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4xxg1R/ABO/5u6jgXm2aLs2pZibVIw6oiUtGd5DEo0QkmqAy39xi+R/XZ+anfGw0mqdKkHeCvJPzMdEPJ2lkmn7FiZ9EGhu1wEp8ARiqdDJkG1zHmZzUX0fsc5lHDNAyd5wmMULaOzRBKmLA6jrHeHR0RHC7sc02QihiymmuoE46e3+pTDgM8eMiOYe9pJ9o+awcAGxwRvbvFrr4qBxNMn/q06C7HUSkwore1R21pRtoKwiilQs9x2HptAknFEaiUvAGCXTsqaF2H94tDSsV+od4pJLzO9z5w2BfpV0jvuhdRS0B+n5NGfeaZG7yBzEdUH2Uvp5vtruTnWMKLybcvwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4565mqse_e2etest","name":"fv-az4565mqse_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6dde0f67-f29c-4c4a-aea0-3beb63c5ec63","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26002","status":"Disconnected","lastStatusChange":"2019-07-26T00:35:24.1543531","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cfb23291-81f0-494f-a493-ff986a7bf974","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAt9wwpKEEbUoULhDcbachtA7A13rHITvo40NVtAXd71NQ/3eg/0gMzhYScMuGDeIfT/RkJEf3GtBa/IHSOvKlhKr6ESUkLrocbpf7bWXw+SSIB7/eIoTE10mwkQRN6x7EJGDGymQ26FRsoGAn3KHc6ckyhyoVsfE0T0ytYVHVd7Ya9ZhvywHF9lxjhY0dmk763ljU5LKH4IPKyOButcWD0EWcGm8S93q7riWxHY3QLo394hrvjm6bcR9paaDPy1weNnPe9g9LpWfW22NttxP1giSnDPFV/9yrzekjom5N/u39blsBYZMIN/lFsAB9OYLZm9fRzV8yF1lO8b+qfwsYmwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.14001","name":"0.3.1910.14001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"85eb9307-f55b-497d-90ae-0e51defccbb6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.14001","status":"Disconnected","lastStatusChange":"2019-10-15T00:06:14.1298481","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"441ef958-44eb-400d-bd3a-9d0a3643d28d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2oRWw0w+/tOZx6QjFwWC1pxajAkHOsI0h9NEJEuBEljBgGYWHl3KcH+j2+1TPFisVZmMfcIRYJJI0xDpfOQFy8AzaTygwxXQ4F1miQOP6tLXrW3LtCmuQtclQ31RnKy/fhhT92njFQK5Ph+241HY/XtTvD/d2liTcbj+Qgp4nPi0qWJA+iXL9ttoOCEnIrO5GyOxzy41MI5gxorLuQ8fUWszs4Yng7qgKwS0eLaEOJntYLfwPok8Z5I8f/8si9SMphm0v/0ZzqMclVc8s9/jgOQW96nP2IDpAxAyeyqHqC0uxo2M6DU+py6oqrvD1ZGIOSQG33PnmjJnQMYo4VN4cwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467bhq3t_e2etest","name":"fv-az467bhq3t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8673ba67-eb9c-4fb6-9c5b-363cef339442","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17003","status":"Disconnected","lastStatusChange":"2019-10-17T16:38:18.5168412","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"785fae8e-73b7-40af-b8f2-d39340ece896","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqkFxbJqR2iRKq3IPEp5+dIYCZNVRzwZsIm1Q5gvuht75k4DvRIXoyyrdxB4jWYtnhzQ5yrqCGi1zGKODASTWNbJB1N3T6FAHYgTcTFOwI3eHBF/RTxkKru6UR4Ex70SJT9iQ1fz+Zlo01zymqiAHCAEwXU88h56vFsirWl6GZO2wgLv9NVWcrb+FErH7ugA+9wkRMZ9clGS4iTY4hEdpd1/Ggk+My3wm5RYB5Q1+/x5xUJBBw3d2V0h4FbG0OZT9gec+VjqDWXSCRGx9bGMmbTmF6ntbVQsXadF+4GPONdaS7uE7uXZ5z58J3GQkhNHNCet1yAP2ZjwnSS3Bjc/8AwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4565pfmb_e2etest","name":"fv-az4565pfmb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a037c391-4ed2-47f4-9a83-5e5debfa1c82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20007","status":"Disconnected","lastStatusChange":"2019-08-20T23:51:07.2802466","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c7902f5e-2781-4d35-920b-9c15a11f3c3e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3/rkPOT341rIWxu8/VC8YFKZhfP02VBsR78yHbjRcMCdRUal7RUQxGEn65Die53Wi3SsWs7WEMFNF8mcj+cFOI2hG+u82/znn72pKlRMCoE5GKd/7Oz+mT/r0DNcRjElac/HWawWxwvQjiid63NgRlVEFvl/35x03Hsy/M+J2FJrsUUMPoeYFTS+boi5OuP5AbyiuRhW6vtqs/U4bhms4+1X4dHDpU91TI0Nom+az7lRV2GIFeOafq8AJ1LpyMkgpNwFpkIQytOXzAfJ4LGAyeo1eBn9UuBJ8L7OT5gqiH530zoJfVmAYkIcLSvPMeBjb8UYvRVtxORifgUno/WflwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461gk7hv_e2etest","name":"fv-az461gk7hv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0171f4b-ce83-4001-a04f-0a1a9f9b347d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.04002","status":"Disconnected","lastStatusChange":"2019-09-04T23:21:42.3820449","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"6e2f3ca1-5190-4fea-88c1-dd97ef3dd071","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx5e2mUgk/okheg7IRT+hcQbAxsBW6ZjFvHbucEd7+T/oVpsmlOWdYiNFfL4wSSSvGLWMkCP9H/AgKEJjPm2NxUdxmH9CO+hyi7K+YQYiDCGi2nlj4tLOya4k/H0j1yR48ke9GQTf2NM3yNzcDOXix+uXGjECVF+tboZ057bPVBGMMlRQMmvtjVAPe7Y8sUHzqBtWWpPyqlYhtHUZwjnzzgvdcsESzzrTDZ7fTDl9KM6MFqyuN7OIHP+IHwog7fJHaogGEWzDsbw2AxpAg0Eir/YiX7nDZgy/BH2+0cftK5DXlVk044utlJWjZ+eaPyAVoEtWGUIqNJ/2DtJW6Lq6NQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10006","name":"0.2.1909.10006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1a58eeeb-e4ee-40b1-8526-5165c9d6abdd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10006","status":"Disconnected","lastStatusChange":"2019-09-10T22:42:56.2232882","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2ca16600-20de-41ab-830e-acda3a701862","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQJnGwsROv6GUrrUxe6AkmbltG5I5lM5FtdJ9j24PgbS2pUEwaORtFJKMkRBwy2WQbNMX3a/mTOpVMG2GPCGc8nIvYFre47xJBG2IowU0gJ4mwuDsj7ogOzgXg4lG/Dm3d+3G1hklB7b4GxeAuS92+QtzPgMrU2yecTY1UQ4Jf3gEob68Ko286+15RtGNPwo7QNRkCg7PItuPeg9G/X/Dd7kQljtv0ENM58NgHyJ0upnK6tQK2s1edTaqVLHfeG42g1dF9E4uGmQ9z4VruLUzhlkU8GjVTubqaMBcUCirHUm00lAqoP82wEMK7jQZj/FNDK3GKCAVzAYMfsWS2m3KQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461gvyuj_e2etest","name":"fv-az461gvyuj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ef7cb39-edee-410b-bf86-65627b92fdbc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08001","status":"Disconnected","lastStatusChange":"2019-10-08T20:45:24.3086714","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"0114e487-16a2-4584-8535-ae600e5cb6ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxmnQbeZW1pGSOCdkn6jY7O2rF3So4FqAdkxSh8e+CSipnZ4sATvPxuHCsYncr20PZsr6TUNTKRNIkepfZwyBcq5guf4aaKLytRkJNP66v//0a/hf3HUnHYgVDCJ00OULN9cIhApXSgw2TeBHnQ1broNWiAEZemgiOOtiRBczHlOWgZp9PSduU3tnbpmRGtKDQv62ZrmNZA34wyMGjygXdoLM7Z/tPzSoxar9oaZeHgYdxzm5nA6RlfvlPhZG//9TH/ns+H+InIKwDhUZ1f0KBd69oWnNQpzHdktUYZeN+dBR7UJaX+MNE+H5irfLtfEnF870Vi/2o41sQcSdRDxyqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ms2re_e2etest","name":"fv-az456ms2re_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b08a17b5-02cc-4e22-bc72-e0c216bcd46b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18007","status":"Disconnected","lastStatusChange":"2019-10-18T18:53:43.5370511","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"43121b77-2c36-4a3f-bdf1-feb6665eb067","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxk84OaXiNq2zqkmCAwJYgQ+BQR9AhkXn4ZkL0hHEhkTViirk5iTRLMoeJVID5/hms29mCuIZ9jUsckGeoypkAIzXRjyjAuTWKaXH/YN9eh26bqlAYkR+A14sEtoC+YX30OIUw1DGwMmDWaF5aQRuI3VaZZuQZM7HPrdznTVFO7ygUr5+KYhy9NdujtDYScsrjrRW/JGQatRQ0Nefktv4Y/RDbSRrMtQR8oZAodU/8TY37sn0OTmPAKAotAwNHtrbChEmV/gOkNIDfgLZLG9b3EIv0gv9UD0jgiFzKLZUNd6bFXZ0ecPkBrZIrBgaambgKajlcUf4XAgphi/PI9YWhQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.15001","name":"0.3.1910.15001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"63425417-40fd-4599-9a86-ccb1c466837e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.15001","status":"Disconnected","lastStatusChange":"2019-10-15T19:46:20.1802967","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az601"},"vmId":"c65cd9ce-7280-4bfb-85ba-9510105430d8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo2weEzjL9oFOUkpgKQKySOl92ik1pD0s3ACjKo15KsLLc7ZqwWPnCu0Fsv3Hyj3SM2caQGwetTUmTy4BNTcv5RHo8G+jeAQtVM/qt0GKGzW5OPpv/MWSY88gBZEk1a9VoTXXwbg/fI1xKnKyiJOYGooZUs6+aWURlENPc46KBIkv5fsyR7e7ZVJKYXE/shqUftQDLp2SihWdU/HZBcL01ogAUv/rhdt1o6OO+QllfJ6EUXwS7yB7nXm7knZWNEUPtjCo4Si9mIDmCJDnrFzrsMBqw5gJoq0Hm/J128dZ5rb68q8GL7KBY6J3K7IXTvwR9G0KvAMM1fbyEWzRe8EHGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.16001","name":"0.3.1910.16001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4d55ad16-3200-4e22-b529-b92f1e9c881f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b1fa3fea-5a60-4945-8f0e-9b7d152ac015","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1pWwMGcUKdYlMJ48SZYIdFJLpKJk4oaAav5r4/GFYvOt+6k6ipL+jmtHFL89NraJZdP9uPkMEhMHlMSVEfKgZwEATlQ532P/O9oLo0XGi6biPF2hOisYUTnrUSZ/6Q0Rk78p5Dhtap5JzwRgrzd9hvgP1VHX7jQYU0lJ9ibuOvK4YaIJZy7JdGYTcsK4NzUh/jYrK/xmFwmjIU4y1TpzpJ6HF6eM0xMMdfuab0pf9yEaMqSEJAs2rMSbPJugcd0+AgbXtGwKmMgICstPwndnA4ZrdfDzFFxkpN7hmSum2g6kgUwnjMZQruL68drOGqGHQDl6ZyTLY1Wng+/pg5SlZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461gxskt_e2etest","name":"fv-az461gxskt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6e023375-a7e8-4779-9835-686087007270","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13001","status":"Disconnected","lastStatusChange":"2019-09-13T22:29:37.5028813","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"02eceb31-a99f-478b-8ba0-bc5117ebe53b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuzXMVswWG8i5yaxmEZNaFBsNKwpIMgnNXUuzCnCCpc+VBpIKbuhwzBHPgQEhB9b4BZhxCUxjHSQokvDZb6Wg9ps5ZbXfQP5R++VirSKc77z+xsQruTJG2ranW17AW+atKIKeCY31q4P819wDcu/2vkDWw1BBxMLDl4XRIDGpjkGU2wVp9j9CFkfhRVMEXtxIUZXJcvOEEF3h9nDeU2IeHdCHtWaCNxAtklqZ5OeeosU8m5AqP1Iayi1kJmoKY2e1mwXwM3+qv9IBJfidzkjuEMUoW5UcqUTDgVZ53NygXpT7UDL/oZyOkiMcrKpJ/uHUwC/amF7qGeHjiXN+v4QRrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4565ucmp_e2etest","name":"fv-az4565ucmp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"abe5c8d5-5ce5-48f0-8e9d-4483a2c21f97","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-09-20T16:37:49.8481733","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"09b3c3f6-408a-449b-944e-2a89f0acdb1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA40s9HF4x3sxDQ1GJ9LpimD7e9h0pmvDGqxrdAQ4AfnEiRoTsqDqROtiodvmPRGeAo0EnHcr913MbyUYVs5gPw8AfxTJwfkBJKhxfmdAQoFqfQPiajE9iTjKPmK65u1FkCISxYPjA9VyZqWu43exk5D1bbGnfRjDFcH+uLS/201vcPx3HhqB090yR/6+/tG3UMrIuTPOgpN9ATdaNPBnEWJj+vXfUAYqaf9tqwM7sYAZWBmjHMRAtSFVzfWgVLvkjq24KLxg4PvCv2Xos+CJbG/+FZ5Z5ZExpNVSzakn9nGXEHNIQU8bAxwsNEz3zil8qJS2zmzUULD36Fzi/5RuNowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467c0ya6_e2etest","name":"fv-az467c0ya6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eeea2f76-99b0-40f3-82d2-1d78e5309b50","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21012","status":"Disconnected","lastStatusChange":"2019-08-21T22:56:15.2400824","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"31f69410-193b-423d-95d1-6107bfcd1ce9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1a4JkGOmlFUQWLq5Kkxiz9qr1nsCFyDgptQdEcmOSykmj02j25WBlns8DWrh974AwsOaBizHMUyMTY/3401tsgrwcj56/OZT/cLblKyFonK3TkQcCKRVYLMdGEvjosPyn3QzXAiVZKJPGJL6uuw9emU304E2dA3e66DfkzUv3DSXR38nDSXWpwzJCVsRx8PTzTidQtWfrmCUj/aRwaUbqkipTxOgnzdzHvtJ4UROYnZnZJqqsE5hTk24dQotJHPfGhoahlddHPUS7zrtSh/kFKZq6i+m1punqFPHD+oJOxeR31ukUZQIa6xCdpaRTBERevra8XbGw99hGljoxQF+TwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456mxj8a_e2etest","name":"fv-az456mxj8a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f0f687b2-5812-4063-8634-8cd999c0f31f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.05001","status":"Disconnected","lastStatusChange":"2019-09-05T16:28:49.8262859","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d89db7bf-f992-4d6a-a968-4cbc68aed236","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2y2eiJcVsmmS8ViQQKi23M5lGYzTrG8lpru3Kli37wJQhmyBdv2b7j24HjMMwt8VPJJVzPypD5su4aoTQtsTNCp1wXV8739LeSrOk0uCV8T2KPqfge66rCdWCBYlMDe6xvQADIzuVEt1ziW5VSefDWN8V4AZkPEi+IuYR4mltNe+qNgl2uIQ0xXTlOLRI3pmCTVxS59/UfGlXZ6w1bjScEsn7Twwq1SZW/WYogtbMG+kLz02x5bFGbizFUfsbqjz0zFuoYUl2MfKORG6U03dekqw1u+KpLkuYUkGT8v5CQqrJ3f9cQtxXFRNrc8NEf+8iRTOJJ86V+v+sbF0Jquu7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461h08i1_e2etest","name":"fv-az461h08i1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9a41696-de5a-4730-8caa-154695ac152d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25013","status":"Disconnected","lastStatusChange":"2019-07-25T20:51:33.2389455","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"bb6a9b36-3509-4e85-9fed-6e526ac70406","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3O3h6cYBKUgnLIKzptBgyEK5cyyKYluj0i1U61gesgBOPEGk8ftcGIwG3islDIOLNOSenxswIskxdXsJeDm4yKmB79D3LuKKaLdvzCLPjLHQoiHCDzOehnlAmVhafVwalLurNNTY6Na/c7MKAK0sVNjZndidIhLFsGhfs6JyxJTxbpAxDbQoBlw9FivPcwPgqAPo1kTTZoMSfhCHYjtXL6v6wgAP6YNDb5kEmvlqfIaUW7H4xh5JoA5+o/I9gUlaHZb8ptqSULe72heQrUtLJSpT08ax37UC09IVqlkRVS+xDBuhhkRtbTy5I2zCLYMxfSV0mQYCDdANViVXslPnNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.10007","name":"0.2.1909.10007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4c195ea5-f3e4-4adb-9dcd-6002e054b9bf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10007","status":"Disconnected","lastStatusChange":"2019-09-10T23:17:56.6025376","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6e1e6238-03c0-4627-b3b1-5211e334a105","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0FX0yDolRJgb8fbVN72A2XuWrsmRz+vDkdt1FUvaeCb97TXFHspMogJR7y17VasNHoTPzDu1szB8yD1U5NvbQ/TVld+Wzv9Tf0kam+qcCTOozkh8KKqFYKoZ1cZyQM/sSJoguiTe1q7uUO6jkXYBIcfWyhXB1gMG4/D0ruNIY+DL/knutyHVCtTzCqUH1han9VUZNdPzCeLYLFyZgy23JLHbQOMsVFMakLqTDZ8qS3TuziGVJyZUE6psavyYCXEJ2JVrWE9tg3Ywsy/FI/w06hQrzT8A9p8ocrJ6nOylvsZBCGMEvc1USWDstoCiOnG24yngJoG7SXCYCOVw6+S3/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.11001","name":"0.2.1909.11001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f5f15b30-7227-4027-8284-c84f88ed9af4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11001","status":"Disconnected","lastStatusChange":"2019-09-11T16:45:52.6759191","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"75fc2036-f0b2-440e-82be-84000c0c348a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv+i6qRuLbQO3wsTOkNT5Q5nPuOqO7fVUiMgw/2om2u9WCPrYaz0ZD+0VpX86DOI2V/KQPdgtAONDpaJfL7SKN5/YJpqDWEGh7TtAoQizQ7BhCu9RIWYYRtLcpLRD6lNnJXweAOuZiMU94JT7yzFYq6AidaqpFPyNXEtpO61fngMBH88D0OzWYXvi0RjnPnqNWPfEda8vvmmd+4t8CNvsG//KO6iTpDjrFt4O9eMRoKdwbOjpok0ir4IONy4rfsV7wv/yM4oH7QhXlYoIrHkTRLDqg6RB8b328afJw0SL6UIUsZm0/yTYnxSnR2AvVaGCHEfEvPIWnrtg/vugv1YO3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45663twr_e2etest","name":"fv-az45663twr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53df1743-cca6-4ee5-936d-3aa33fd2360c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16003","status":"Disconnected","lastStatusChange":"2019-09-16T17:45:01.3960378","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b0e49fb5-a24f-4fd1-a4ef-62504b8dbdf5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3dynsOsAlIvE7VxY/ltW+VqS0i30u88TF3RjSgKSf9xuO9QnhHiORSJW8iiy7PYy4pEaS2vhxh3Kx4d4FW+W90uO3+01PV36bNqa2BGPTwiCGWAAZz6pg7aJlbqgdph9lvFXGEC1jTgDA48XmaPrA46Wr/IUtwT6ujMCI9yBtB3HMVwrV+eLQgjf1SrvvbPQeUYu7204Fm3i+QBDF0e3oNcJpDI41xEQ+VFt7f1PDHpZxxb08jcnp4zRhXrMTPy/BYlradKjuE3zHZHZGFaZ1zWv82alGkWWtBUk1NphRl3CltwbnOSE+TlZN+6srGb2xII7Pem0ZnPAcOaglAewYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461hn0ub_e2etest","name":"fv-az461hn0ub_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"62ff0df0-bfaa-41c0-b152-d42476a93d10","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"9657b92e-06b3-4c49-b453-474896391e92","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5n9mxB8AIWPyFbp2tnnvh9S7mup+5xl+3igW48CBfUL/khIKuGVfnHpVQFOsS5UgrdKb7ZYVLz8HaUsnERCsGYQC5ExEZkvXghewTTZATd9vO6eOBdnM9YIRSzFg20tOQDJCrgtydoAGO5jEnbHMJqabqXr7Xr/ZEdUFOVLlOX0fVkzKoISUMMw+E0ZaiNdTJ0B2mi1MT9QRmi2NI/PvCrv7QA4ErdN6Ruudd+f3Tqg0gbQWj4Qov7xmTfhmSbWK4rlq/gTcDXCUTqglxmSWW4QI2Djl3Odch+Am6OuZB0/kIw5o2rHQ037oYrNeiUTDtz3uTHhYHuLhSVMHUDaA+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.11002","name":"0.2.1909.11002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4ef04f9-d38a-4591-8a1b-e6066b3187ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11002","status":"Disconnected","lastStatusChange":"2019-09-11T17:20:53.0178146","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5d4926f1-c83c-48af-bb65-2f9e3999a6ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzTkL2dUJR/mypfnSJYwi7qklMro4rAB95oLJ6A22m1FJhomjmoxIaKF2/gJtSehuK+dndmA3HLZJ3XOYih13/6L8fQcs93YXyXloM9jCn3XobxIRe48R7QzTq2ngDz/Nz1kC4W4Xy/fWbxQw7jZ6Eoo4kaGIkaHTZvuWwv3NzoNmCQwPCWLbQWkLo/Z+HALq6HkcJ17TBiiyG4fcKQnErdzbI95qAFwyYCwivMUKwWA7n0L4BmgrmP71BA/dLNxwU5OzJQeaI948mxzrw+rr59EZnskfk24ZTPFQ1wN2ULkMIJlkAWurjf2O4pgaUi4F6sMK0f0OGzPFBuSxwxl72QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467dnti7_e2etest","name":"fv-az467dnti7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1ca5387c-3dda-4eaa-9698-225a83e4b4c9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17005","status":"Disconnected","lastStatusChange":"2019-10-17T17:03:18.8889868","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"6a104215-0d0f-4d59-8ae6-a658f00c0923","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2PABreBxKVGPQt4iRze/Es71CRkb8m+mCkgqr/yHHbAzhq4HgxPD5u2zihpcbVOx+24IKtTb3bHdTeiViUvOGgL33t8CFTXeNrjAtqH6rVLbX6nbaqo6DLK65nwUY9VuQ8gTDEjl21Gf6mwe/MxncfySwgEmsDv7HbYNHO4RnJAHLCCmP6PtahLKzqYQqVYm9Oh9dkHctpqKu5YBsZPxoRwycevr/cxICxcAp9qgq6jd9corRG6EKJt+g8L1n8TiwaPWTzYjLsBB285ts4111wu1QCM0DurF/4EsEdFisSDnSiSIm17ARcDE6IK7BJoUoEdKJ26hEYjxd6OOxEtGTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456n2x6h_e2etest","name":"fv-az456n2x6h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f3b54423-fe66-4f18-9db0-c519853c72b4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08002","status":"Disconnected","lastStatusChange":"2019-10-08T22:30:24.9248881","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5eaf8f53-0a52-4964-9888-944d88a38b68","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwWvyZPMt9ae56Er7v1/ldeYOUZeccKy9TkztAO8bl5HcaEiTIEDqqjXT38vUpYwAqvyuEa6dfgCeceErAr8y5TwTcQt2t1McXmB+q5RQujcbex26t1VK4gbZmvxOipSDJaefzcC1RoI+s/q637T36b59jgGpbKLVKIlc4PQVaHf2VN5Sla3Wq81eGSgEONQpooNvYO/NCuhD962VF8pQ90CfduNwTQ7mZFchZNrH38POSlttQ5avqceG8Ce9AkMN+hdl2g+9KHI+ZIqnFNTzCn+Rgrx44GTY+xEYOiGUOz3PmRr1Bn16ThoBty1Bs++XX/V+tA5YOqfuyuYXMrUNcQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17001","name":"0.3.1910.17001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f7c29512-7ed8-4dc5-bba3-8c2f16b45e71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17001","status":"Disconnected","lastStatusChange":"2019-10-17T15:48:17.9049133","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"990a760a-dd08-4b25-8ffe-7246b0d81448","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxIuYd1efFhXNrcZWSNc+PNTStk83FwsGEHTc7ZLP1Ti3Gv+Uk3luqjyBvJ9P2Z34XUj9xWj9pow+KROTE14umUPk7Z6kK5cII7gcd1O4BDBhhxpDIkZjjBZzGtaV+SSztuOZUXEOOk4MM3mKxYQm8r9sc/WFzjivjV0umZzYpeWkwP/dovH+F5880rTu6hippD/b8M7by2EpyT3PALvs6YnAk4iKBf5lmac8rCteadIgvSIT9pDJN6HTRZpWLLZtPb4TKPyMi3BUjPZAjy+4VUyGplgJJC9mMxRcQjXbv9XjswNlPqPQ9NvUS517zSESlzs6PIbUdxNM87piSjVbrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456n3516_e2etest","name":"fv-az456n3516_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"afbaec5a-b9f8-4301-82bb-5c9b21f3756c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18008","status":"Disconnected","lastStatusChange":"2019-10-18T20:08:44.0941667","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"8f8ba6f4-3f57-4f23-9717-bd03c22cde03","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1RMOGmbPWGL6Ytfg0hVW0BzG+F9wXQtPkYaVSV8Bhz+Rh33/CKPJeDmb2mAqmu4rupKNhcPs60APMPLhVhKEiesIl10a2fllCg3tmiRRXo+WScIv2BZFOYTIZNVzQ75rFvMbaDwMntQJZlODP5iauMaLyh6jVRmm16OFxXNKJHiPU2Nj9Qm2dieXtiK9e0/CL/8jviGpoUQV7kKdcdkmTrspds2a+S0XTgwBNkPTF3cwX/Y6I88iJ3ffpMWjWwPF4jbV7f5OTjDMIZUTuni07cfydlbATqxAMK+vMhe683x9mVmquHf3zD5H85dYVBcg8L0RFgmHsbRstzjBE2padQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.11003","name":"0.2.1909.11003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4b73b9ae-611a-468a-b87e-38977327d498","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11003","status":"Disconnected","lastStatusChange":"2019-09-11T18:10:53.5015175","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cdc621c0-7cb0-4c1c-9f6d-817f9f4b1bff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsTsrsLAKmYEllPGQYMdy7MjgXiyayHCaF/vOeAm3BY5s484vR50nCXHLOXk9Lp4Ji7eR4TUb2WEushXORhM5DhJlsuXG69B6WUBDHXilxiLFhkOsLCj4gQoXvn4L2b6mXED3c1+9PfvTVDMSR9SUNUtGyidoNf3MsQgNUxHuCN20xYqwu507JdW/am83VUdUJ40RFdihqX+o3x6Xdc2qKfvoCqVMGTXDhJIec4OmIYvOlyt8QF6kX78pATW7a+7is2tApPKEw7BuIpMu3YJ1dV3staxP+XjJHTGvR1IITanZY+Mp/Km9VfTVH1lsDtJYfMwWZLKK5Wdl5a9aN0O7qwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17002","name":"0.3.1910.17002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"96b5bff7-de3b-40c7-87ca-d631157cc475","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17002","status":"Disconnected","lastStatusChange":"2019-10-17T15:58:18.0776712","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"c5552026-c8f3-4ad3-a3e9-0480a09ce611","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuzqVGiPDRFmyS80d0iAIc0VjmIaiFxedBHr8o6g8JG3U34MIce+va2rsFm9HnuPCJ/wo7Hcn1ShNztHZisZ4Vgi488xHyb1Mk4hNfuWaNhzk2QDxvtrMg37zkmZ/5Qb/+Hn2wK4iH9leLDz6hf/zFf2+8loXAmW6CQddF4QJPbudsp71z0YThrCJUnPaN9cWbsT0je/lH2GdGNq9ZFe6j9KSARcI4gwCXQDPc12WR+/JztQWQHIupwaUePT/+vSjOhpYTPjK9tsuEfajj1jL6zdCRuM3CoHAIWuRxe+U6CFYOFgpy8U7UtmoAl0V0Svuvce5jZZptelZDajvPVlnzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45669lpn_e2etest","name":"fv-az45669lpn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53e3fc55-5a41-443d-816f-148fe710e01c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30002","status":"Disconnected","lastStatusChange":"2019-08-30T21:26:05.748721","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e3981e8a-d527-45f9-b8a7-201922a56286","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3ykLuz/UKMsWWC82adpfgA4PMLSz4BIACHGgDMulRaBEZSkzHJEzgJy0mcmpem4KU69iy9qYIWeLTQ0C1gOX9cWcJBwfAMJlwtSaFnh6vIfEYvswp764Jo7lrAiJKANbzDWUgGsb21Lh2RvOEg2Hx7VDi+xD8qU80JCPyRsYPZn59eDKEWEHpW1lVQiNPlsvkXjwXnu+AukHCrJNxE3LM3d7YqlNck5CaP8AaHPOGf2UF9TaqVIzLTxXk0kuUnT66XXRBwSeKSU7559va9LNTA4jNUPnrHB9T0uEeTqx4gAaOkLN+MqMC37iE/611q9S+E7sPWRVnM/x9w3nA1BUGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17003","name":"0.3.1910.17003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b97cf8c5-81d0-4d41-af3b-224b6768df54","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17003","status":"Disconnected","lastStatusChange":"2019-10-17T16:33:18.4291452","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az623"},"vmId":"e612ce3d-bf0a-4686-9eab-3b345447aa8c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxsR/Vg3uKqyKnWVtPew0j5tZ9Qr6Ab+mv8wOZSyR64l/gvI/hLOAHu09Wouvcmso6l/Nb7OUaO4kIvIXcfEaWeFMX8WIvxGdB4lkDNeJU9ubBIdIY+gyp1cmQRfC/bFvmN1iFsgq4blD1jG8SoSsoP8rRNMW8CSWY4WDmFokSD8wGq6dCeN/4Vvm9AjlceJo3YbSWLX/spib+O5M5hg+W/p84vVNXaM5N/MygD6jxy2bj0EgKcDI3h/mp33S6IoqrjJSMzRRrEY/QdJwQ4y7TPIw8RFpuk+DOm0X4iq0tYT+LlrbJkqL5Ouaq9yAl80rHoYVvKU9LHg++c3d2w8agQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456n3a72_e2etest","name":"fv-az456n3a72_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a52d1c2b-9ea5-47c8-a1aa-ffb0a89ecc67","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.08001","status":"Disconnected","lastStatusChange":"2019-10-08T20:55:24.400528","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"42e71885-7301-421a-b7d8-e1f61a925e77","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5icwuodZVvnLRQqdmCtVQXoei6Qzq7zRtPIBkG8YqDojGnbT40AYGvwfmrv28slYFdREGkrLWCNIluKE9geyaDjuZVdDvAf4SSE223Gdkl0QJ4FF/sAEtl1QxUpC5PHHzyVPq4yWw48Y6LRX/uQ17wH7nCe9VGJ4NfvNIEg242McfQUt/eB2g0FFMsSTi8/Co+0HW1a3UbF8/sJuKybyJGm/3Mtx6Qf7NYknXLeS1SsFCvAofMZk0JbN26HgK/SXpawVeK1ka1jDp8YbI+h08N9urUJ8pI+SDSguIgyAaMcb9LMyvcYJMbpRwZzR5jZcHe3g+g18dltmYUz9UVGpZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17004","name":"0.3.1910.17004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bc87acd1-2bfa-4d32-9dfc-9117621e45be","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17004","status":"Disconnected","lastStatusChange":"2019-10-17T16:53:18.7655273","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"42316ed3-70dd-4728-a822-dad7395aadc8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+luMYUxuZByfT+SBv3YxZH57lX6yIzcBsg2NsPaBjudkY1zyQRL8WFThmVykntqHLwYquK9bk8Z/HELgkVQgdYBQ7X09fz31D1Hy4lVF0oU8n1Nl/jE/TcfvQ52OT/q/12BqQUfJU2/Xf8PFL1HPfFoG58cY/cJOH8L5hSgH6JzCzSW+XVFUBHoeC5D+qS5la8Dj1OyUuvpuJ3yYjtD6tp0RoC53Ap6lvA4rZliNnSY7f7qyg1kwM1xcX/6dvFnvDGslrISzbmAug6bpu7Zuqq8OUCWn07cIDMfllNwo3FsbDzVQ+janTB8zGX69Snz0iY4lOhFGhXro/Wbok/CmbwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456n6c2w_e2etest","name":"fv-az456n6c2w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"08afa87a-de58-4232-b28f-f386477d47b1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13004","status":"Disconnected","lastStatusChange":"2019-08-13T18:22:07.3062765","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"0679a097-7b2c-41cc-8633-f4e59f7b9d93","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApjJOfeUrsP4nq367swcbRd5HwPO8PI4ImMifmQEdCbt4VKsYscMdAtlffgIYxAHa8e7+rbegaIortxvEkwUA0WobwKMfzxJNzLTBbN4jTTN1Fpx//AZc42RVez+zFJVIoYhVjOFPq7EdJDNFnKsDzshpVIVwugl4gjTVxlShLZUv9R++LwAtDDDxpk0IcS6dM7WyVgct+FLwZpIuAhTHgLY/skpF+0AW2YWBMcD7fmdUI6bJFIRupqv1JSRqszP3elwfnpOX+5xfJjlgPAVGNqRAcCt+cBu+7Nd8bbLKT3n8ooMDXacwqIJ7YGeLyGn64KTfElmoY0wmrccqP7mwoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4566etum_e2etest","name":"fv-az4566etum_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d6525d1b-1dfb-49cc-ab24-4160b94d5dc5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.04001","status":"Disconnected","lastStatusChange":"2019-10-04T21:24:52.4186289","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"43505fd0-92ef-4d32-bc9b-92a44e486a72","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxrX/n9f4SCwdV6N6mpNpo5XWeNR8GEJ1/kUpZ18/utQEyt3TIlCqo/qjkvBL5Tu56ucZTKhXsA/qHJMnxxovwAvL5Pp70jQ7AeWdqA7AjcO9muCQkT7eC0M12LkEjGbkwhY5+vI2a5eElcIC21xv6K/0611wpvIutNlirm+zLHpac/T0nis6rf+OyQd0xYRE3s7AYVVNPPBorqxDE/LqadeXVHFxmwEctC5vrQtJnkupFgZah1I9PjepFWMgEOmT6Lpbsyt3+YXALnxwBy8aj8wD4hk7D0TqrsZa6dSW7QHFEaZprONzGll4bY/jSLUGbaQlRv0ozT3J8yEnNXnh1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456nshbo_e2etest","name":"fv-az456nshbo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b920c2e1-8582-4169-8fe3-071d3f09af75","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24011","status":"Disconnected","lastStatusChange":"2019-07-24T22:30:36.3029789","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d8a659c4-f826-4b1e-9f05-455698a90ae2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxh93Pw1C08IOFp32IzLAy7r/r/nqGtlgIzTmyD6bSHbf/zTxQWsZ2X+7c9kUaXRlUcPxFd7lp3Ac2Ra1vD5V+dDR26l8Xh2rn4go7br+U7YyskG9klobPRY34od5EZUmdPUOITuRneGe4ncR3OxtJ+038zxM1g3g6yjsZYWDSIjSOBxCsxVH/y7KrnI2dZdKCx0FcfFgwP/2Vir460yJJX56MzOS34UQkzQs7jbZeqSoHNzalfUlsoBct6kuq2jRQqEw1SfZBntYK3Ml/fthoXPKbpcFbQmtCORVm3U9kOQgDmViKVCLIi9lJP67eIUIp4wIFaxp4fQ1rFLtDOv6SQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4566klqh_e2etest","name":"fv-az4566klqh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"44cb20b1-bd40-4d24-991d-54459cd56160","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08001","status":"Disconnected","lastStatusChange":"2019-08-08T16:43:03.3105932","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"6f960856-128d-4b49-8c6e-c0d456f1d11d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2OXvGtNBVEAtg14+VQAEMr6M5F+tmZPoDn0BArcZJexmYS4yI3N1iF3IvxFee+kIcwEffugqBNa4f79zBceZQFbw3CBvs+5JScJPzEaCXJCMp28qqYLylqUQod7s47uD/Csr9VN1FyFcvaJCLmwWbuXLXaiYIQyJcdDABUcCGvKc+wpMRs69rAHDHouY7t1mn2xpxD28Bv0IfcJ0sEwJkfpTxxuzoo8Vi4xrmfcJA9v7hyIJyOYHZgyRyk0lK+Sk/iDJlKuDQQUoPS7HJlE72B3kBiJ1GifGsTMjazkm1CY4LMJqWnjwuoOs4Vgq1dEGPwuKjVq+GmuIx+ERjxXC5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.11004","name":"0.2.1909.11004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"99054f48-a950-43e8-884f-a1c21d3e79e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11004","status":"Disconnected","lastStatusChange":"2019-09-11T18:00:53.31943","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"17c6090c-ec63-4cb1-8511-d97818af8e6b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnIWoE07v77EQ3rwlD+BKNhwOVYdgviFTPMbZvKo8zXVewpxS3XUQq7VXnILE1CaM5994YXZIZWHAMI/9PJck4l84CrhAWtTxXvWtEq3IC5winlcfJ+Rv+dEJrCMwSu5NcrBlowonzbu5eAy4eIGkxi/cZDWPFFALPvUMRcytE7Zx9Ln0Oqv7av3Yfgtec1+tVKBr/qMQTndg9GNo5cEE+H3UazBjcW9UMWHXaWzuP58Gmwcv3RrQPGng4Zxi6XBQ/6ljyyGS/2w5aWAgO34CjmChCOlfxULWuqWEKB8B+beQ86VYGk7ekrUixJg8yHJK1RAai2poadAcEHGg/UYFaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467dntkj_e2etest","name":"fv-az467dntkj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"58155ab7-51f8-4a24-a004-0fe14c94458f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20004","status":"Disconnected","lastStatusChange":"2019-09-20T19:12:51.301266","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"a8541991-42d7-47cb-911a-64aa78914458","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzxydNwYDGBGUpVp29yAiOAxfbuNs0SRHur2GgPDotmvfY2a8As28xkgK4bxmxq0m6939SkNK1URfBDE7R8CrQBI9KJ1VBGXBSSJjgLlA8jCRK5dc6LTQhPxamKPuAtUmyGxuI3v7NesBXbfkQtWe/7RJmTMaZk2ciy9dIAq4DjGPfSAXYP70kahbcJGuhUx6r0usW2hqdHHkTGhAOYpr8vZMypGd+FS9ETy5kQCd7ODzm+6cqfIpTmOm7BMwbAeYXK6JoQ873CxJXm/2GsaOW0cDTvi5Yy0kLO1VhG/B/D0SEznkLa0K97nLguURgP8dvYZKgSzxguIbcXGIwV+SEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ntrvc_e2etest","name":"fv-az456ntrvc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"72ad2b84-91f7-4cce-8924-c50ec84f704b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18003","status":"Disconnected","lastStatusChange":"2019-10-18T16:53:42.4800251","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"39482603-4278-440f-85c8-01192433835e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu1ZlX/14sqM2MvKQI53GWHHwqFh3klEB9ckVQ4Aga7qbjYn+I7hZwSZUW1o/gwxh52s6srylGrL35pplilQpkNX5ovg6OpD8V+x6Vu3l9v6BN9NqyNzaNYrFNWVL4yfLQPz656nImJryDvGAI5IybPDP/ft/P9dCsdt5XgV9ptOr5mS3shGhJ4uZOk4OCXcLZ8dD4gUe4sOlKWfFj4Xal2YqUgEHf+2VVS9ebIRTF9dxZI+0TyOnYpqkf/bn4+fQN3jQXEQkw0mK8NxyscZIySSJE0ya+8IWyao12VGH5wI28vF7Zs/W1sjDUlvw6sXgIXvyLm3eCEnTAjP3jxgOPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4566x49r_e2etest","name":"fv-az4566x49r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f68efc24-2a05-4ea3-8dba-6c332e878932","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.10002","status":"Disconnected","lastStatusChange":"2019-09-10T18:02:54.3097016","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a94a1196-8b63-43fd-9e58-e5070d26ab0b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5U4flnzYgh3TUwNAJuaI57bsDaFN5akpjntvk4JihrK+Gx0fCV6rvRzSjhEUQkxXQTC8KJIwBrvCwyV8TiMErrZ+p8q+IBg2gZnv0jz5AUmarqrviereoRklC87IxzZvZfQESLB2kb7MAS2sen6qYWbLgf9pBN1CVnrd5S4F33x8wsuK+r7ZjLtxvFxl49zSMt/8VzrHwo1nD/DpPdzsBUbw7uArLGR0m7eAIr/Kt+DXDMOPgg5QwlLKG5AKZ9k8XizBoTMwG0qhYFcEuMi/iH6FdCBWpmiKaVJFzdgXJVeD679U5FEh5NqtkUSdZxlXjpPhJG6vaTrC+DJ0igIBLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467ewd6s_e2etest","name":"fv-az467ewd6s_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4627cba5-04f0-45f4-9720-1aa3e11218ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"da507e50-680a-4793-95c4-7c3504b34edf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7pmOkmLFuUxg0ezawtrdtFqYI6ZvdSW5kOyavemU+hDvLClS5I+U8djEqX883gFjHM2agaCJBmJOkOjjMns3gjxI3gnqqyEhikG0GR8OaXA/PH1A287jJg78Wi1U30imD0M/yf+Dd5YB77PohhXhP9kAkINAxhVOJFBl+ZhNCAn+TfYFQWUTP8twoweXdBmCKljU1V0S7pN+QmAVxvpe15BCWBSgVo4m/n8qJw6A+oyzDJ5ewEVu3G5Jww2VtBrcrAJrhg2TIGW6k1iVHpNDNB/a3J5T9vf/HTirHY0UHTb1AAwPEknDGCAOsBbnwdWEdDdrbKKqzuqPhBjyTNJRIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.11005","name":"0.2.1909.11005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a7f3de5f-2160-4bc6-9dd5-4bb850c5a364","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11005","status":"Disconnected","lastStatusChange":"2019-09-11T18:25:53.6922869","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"0e2bdbf6-d120-4eee-8c7d-c94100c5c972","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3wo9EojJQoHUvEp92kh+nf6gvN007ZBp0gUTyhGUJ8+0pLk1mRR88vb+EMrWiXLwOD+AY6VhF0tXJ/Wx+7EmN7eTkKt8NHFZEEtlYh8MxkmY6hfVT5H0P3LWoCjj3zEi65fjBZxRf+c6fhUxFLw9xip8YK0dxyGE6+SYn2C6AQx1/+ZqWTJrcjGFsZfZcKvJGaXR9idWHwhMuxOSvZHDPNCMiVUVK/IDUB0pJMIAwFsNYBf2ryHAv6uGGx7w/U+vhkY4QjcPVTYcXqL0pN8Dj7d6S/mVFZ2E9Ee4/V7Iy7Ec/kdLXV5PAKlHsRo+eoNPb1zJaU7jJE73QUKslOd/twIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.12001","name":"0.2.1909.12001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7b848ce1-fca0-4eb1-8892-823dba4586a5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.12001","status":"Disconnected","lastStatusChange":"2019-09-12T18:13:25.3748062","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"b8429a2e-ac26-4c8e-92e7-36910e496626","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1EmxTUZOJZLTBO71ODvrbgfLpeDNmwZxzSCSP8K2tJ1/NuUaIBSUVqlEWKKGwQ0IobmutDAuRQW7DXXGbhChSpMlVVGeZYpNGNuRWtgR/n1z/Ho3jSs9w2yoBiCbluunKTG3Et6Z1vPGmNIe/JO7r5Wq6w0GniqNZzMMbZkNj791CA9RSvHMPnxkeAO1jBu5uOZ27l05bgFXbDty/5LyJB+1tD00cSVkk6souScplhvV1RyUFfqRi575Kq/Qtqy0p/lWo5cjwrXE2qvDobsFjlVfeB8Hgw37kjdNTBglBVNVBWlPtG20SfsKOAAvmRBZrZ+y1ytCorgMo3N32MsJ0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467fledz_e2etest","name":"fv-az467fledz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"652064c9-24d7-4db8-9942-910156f03082","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Disconnected","lastStatusChange":"2019-09-20T17:02:50.1245538","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"75b9a0b1-5fe6-44c2-adee-3e28b5c81fa9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxGcOrXkU+RbiENPxnYBnsQ4ZDF7rrlKBD9S9Mvbq8V41fB9kf27OUMU7GnOXTwKIhSyTwKKmh1JUXwsdy0EPobbWIwftWsfbXLEADxELOjLxi82sevVSmLXvpdl02UeCgYwrT+ItTw8IcBCxy1U3rCF8T835/9JIrCsiatKNC+CBbGZ7Zh2O/rINmPLzOz/yGwm31DlkgoMCWYKec6jYsWrPEnmx63bLymWS9bhMA2kzRkZMVxm8o7FBTm+uSAVxMbde/xn2yT5JqbpTXv2eD7D1RbWZTfEWW3mxKD8s+3cq2z3PL96LLkUrJ6cUsfCtjnry0sLrmgtkBcHODDdejQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13001","name":"0.2.1909.13001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d2a5f8d2-0f49-46c3-b07a-59b901fd456d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13001","status":"Disconnected","lastStatusChange":"2019-09-13T18:14:35.5276511","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"95c5629d-4217-450c-90ff-ee2b10d7f084","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuLZHNCTXZONV1lsf4esspBVOLZT64RDYGahq12Xi6LVI6P4xDWzQxSZnvq3MLKtVN1CC0BJdTVh1Zep4j48EGJ+H1UnqxsrQZETupZxIo6JvygUxaiSo6LF7cmjIZa5DC1noWNwSchNCFlWSupHfQqtZu5gFeCf+9tlbmKGNZ0nIZeGYaiYFNN85AvI0ZrWXRxbAIJ6hnl/w+0YePEN4O+25Jnc9xmBBOfuwl73xsJzZJ2DaAUHLKEFEyr5RcgwJoXj3wEdLYYyoypKhVy8RPPQ08alwFJyYrnCOs+5E0j1ySwhol6qz7C6xOqd7Oi85JLrHvmFyKiBY63Gu5O2XYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467fxdiv_e2etest","name":"fv-az467fxdiv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e75e95fb-7b80-42c7-a690-75b9db3074cc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24003","status":"Disconnected","lastStatusChange":"2019-10-24T21:55:51.0279103","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"061efec2-9f59-4451-8b43-6c9a6a163565","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0jtQ8OBmMGzswZ56fy4CKW+EeQxlWtozuv261lg+cRpOZtHA0Ps5Jp4GDtlCgDX3YSWzYjIE6bDIgIPd77UnBLi64NhDIXg8YcQ6dCWE6s5xX7aBR6WyYoUXfUZRvuzVCp3SGMp4AsgBBtEw153tdUHcYUQvMJzc4EOn0MEtQNTqOBFdXXbiS5iRuVkQzGb2IjLs4ZgJUxoc0CdLXgIKv59e4XSk0Xb+MYxsdCweJrRYNO3i8uNQYaK5pl7k8oWfJu3kGxohnCg4myBgHBkXthHgyrlMB8PLIa7bfznjTe0PNJtztm4wMVn842VLakF/eO3nEBHEjeWvAzBrdElxiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13002","name":"0.2.1909.13002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"307687d3-3943-4877-94c9-d4e6f13c67ea","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13002","status":"Disconnected","lastStatusChange":"2019-09-13T22:19:37.2612615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c7f09973-bc36-4bc3-b038-d69d4ecfe122","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqJcN/SE/yamKNh/tku5ScqL8L1HXb2Evc2Ohe8rB8iz0gR431w+rVB+GSglcaix30bzPYG1HF4KGro/aflJ2frPgHru3Bg6VuEV8wzfPDQEt31izyTO5OebD6m8W8P2mN2Fwfw/e9ybGTjpU4wt2TEKzyhHHWDhOJ5daAkuF675AUMATkkz7LYFKtuWL20JbIoSU6gTFXgen6gEuu3keWotCXGwvSg30lJQlAY19VPTxmpV+gYW3FWFg/nM7ozqfx1e1x83yjy3+f/NW/q1TtOYDtN2oGvCTvgkp86B+auGSbWOLnHPLDNgdb42dfer1L+xJpyUYFFkjmoqTaD9cZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456nyo6c_e2etest","name":"fv-az456nyo6c_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c5c447a8-209f-43e8-9227-2e1e6e861cb8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09001","status":"Disconnected","lastStatusChange":"2019-10-09T01:15:26.2361944","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ae55722a-18cc-4cd8-8007-301e15ec4ec9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA77ZtLTctVFpv/z5JjQLHkGRsVtWR9q2pBj58MYlL+cEgWGAf3oKN3WoMBu+kIaDS1NJO5tHHwOl2Dw4UQbfBw3RE9GfHrhtU5P8Q/f3zYcjXJ+y+2ypPB96uYljEUjBaQujnRupUl0UUiVCQAvZGvI2QFxCJtZ/tNjo2aVKz6K2YVz66aDIhoccicJu0rnjnw4m0dnUOkfoDUvvgoav3HKyQ1A9XGKGTf3ck+yr2IH8YfD4G/vzvcrbPO8Du44wo3rHKZaa0ipF/KTZW0byqj81/AJCkcysIkW2BzrD62BVQ0XCup10d21shcchrVqDYoIY5URLhDI5VKCIpbrQjxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13003","name":"0.2.1909.13003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d63375db-46ab-41f4-bf53-84e13aac10d4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13003","status":"Disconnected","lastStatusChange":"2019-09-13T22:29:37.5028813","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cc63b0e6-bcec-46e0-ab9e-2ce763f13a09","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Jx/rnB8R+UfDrsar4HpPwfhUWoOCmmhkK3cCx2j/ypUX2vrR45gQMKUFyApgiO0mYKDeZENkYFDQj5+c6t6z6isKOvjBGYIjvz0A8DIKkz55BANsI84Ecrs4nUy/TnMLVGmbmrlB/wfZ+Nn37PVbo7ql+CfzC31t2OaNEHB5j8iT3x5HR4mpJ/mR124H+vnMKPj2AESmIRHa/jjt8v36LtgFMN05iy2Xr6dWakIjAPQM4XKUbqdc4ozHF53UcNppjT7jPnHU+2AMX9ndKZl+qrY5SHWDYveslMdBCLQoKP5FYYSdLsSqQTh97giiCpkVg1ayPvr+stBe31KoE4AwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461htgi7_e2etest","name":"fv-az461htgi7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ccbd1f43-8f20-411b-89db-7c4b0417d07d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24005","status":"Disconnected","lastStatusChange":"2019-10-24T22:15:51.3478374","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c01808e5-11eb-4736-acb2-0924ff4b7c9b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5J7oVYExt6mR7Z40da4VQ9sMCpb3v+FlM+0HfzXUjn4MXs34fQCUOQxX16E4W7ycLDJ//f9bU/jJtxL/NCTYAFlwpa36uWLOPwdkz9qd941HxLtBW2t5gjjr1IA/00dXsnqj1o81zt8K919Rq32Aw39ibmrjuUnHwxX8XWZyllZwxE4VGFGwO10m+QWy3PYwQx76140YhAtE6/1eYHz91RMdmPZ5xyL7Kaxbafzo0/s4D8tisRGyUEFUufVZU33ZbNn/LKfQSvoQu8et6ByUgVxkXXXegj5drty3UB0sbodMHuaHI2BCWQ1AfPPjoq9BB2AAGOlpZOkL5WUa4PkWQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13004","name":"0.2.1909.13004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"65ccd30a-e6aa-4377-9141-079eea6dcd7d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13004","status":"Disconnected","lastStatusChange":"2019-09-13T23:04:37.8189421","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"91781dfb-3b24-45e3-9a7d-c36fa1ae2831","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyYIfFVZ4IqQmtNlwboNkyMLyzo4UDDCY/9nExT8n40LwTkOQCbJ0ZETU0mU4mbhi15xBuOSmm1RRWx1VAKa/w2JSCgBWIC4LAQIJ21D0ytDbkIUj2RFkGCSohPNlwirp4ntWtHQfNvKFxi54TgPTxJMDkxAUUMWVFeIgnT587fhpPUOazrDcp/0WMLsIBXtk7f3vYlePQW++SvwrDGArSewpd3i2QgrufvSZcrxWwjnaj8mzm07nErZxGBjP/HbFT5SIgfth9ew9HIL3qui9xHF+dobQkf42qwadePMIXBTcN9/W+5DDrKcdPXy03d7rrs7eU3w/cY/hjmn4r6/IowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461hwbv1_e2etest","name":"fv-az461hwbv1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"53a0d30e-1dec-40ad-9983-c9b1c14355f0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18009","status":"Disconnected","lastStatusChange":"2019-10-18T21:18:44.9216218","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"307f88d8-2fc8-45b1-ac9b-2fc4fd4aa116","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwH0gWHBF4DmBdBR/zlkWivYSRnQiYwEEjRvhO5c5P0aa+BzWtD3RZkuvqS/aPIw10bDfC+koUDIwq6hDRvtqw25M081Rg2xbrqhLmjyGhIgE/ze+h5kQYaO5dywh342rRetKoBRo9ttq6dSoFdvh48iVT9FBsgXhyynQ0p2QS2bj/mxJfZa4zALMjZFTtgjYCAjRB+gKqG6fTrXkZ+kDTqCcbW5Mg1VRE6FiAtlKr1JLzaCbE+DxiaKCMiPNjTDrpCdLET+9x9B4olbwvn6CrYPqJPea6VMznCDpGeJ26H7836F8DbjP16Jb0tSsUes1DmBN1K/32ZIINX+NXSdeKQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456nyz90_e2etest","name":"fv-az456nyz90_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a5f0e81f-df7b-4700-ac62-00b44b036c77","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.12001","status":"Disconnected","lastStatusChange":"2019-09-12T18:13:25.3748062","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2ee33fba-1bd4-4ed6-9b89-4b9a77e4c382","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs3bDx5We5ifu7K+NcFZHWXX+G5E5cMl/eg34KnQ/n+pB9GcFFLjrd2dS13Ih76kBL6lRRA4l17IGDmJ7OPThz65qoWEQebamBL7/CHU3rJIhFxTVrCY7ZqJnpS+RyKJMFFE3q/AwdOtiNY6zNoUhxTeZvSE06ZQ3CRDNaL+dNLoHAse15cWOvxnUa9yRGvzh90SP+NMjSyUvFIFSqK0/gyaN8fNddQBNoFZuBljU4ZUsChLYIO862+CCBNu7ijABJKt8unCzhtvG4k40EHUfRAW6INtMUmEIPSFwO2MjR+sueoD7JN44l1lcOjPBus3czFuRb1FvOUi9Rg0GWY4C0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456o87pi_e2etest","name":"fv-az456o87pi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b21c322b-2644-47fa-9098-3d2eede3ab25","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T16:22:49.5482724","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8c830843-3d87-45c3-9c35-4ef4a136e2ab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvUvyTzvnv86LA8MWFe/bU5Igm0WnUmx2bodvuwsTLUailr2MZZ8rsxfR2ATL/A4xibL1PyUrt2rfeRBTdAcVjnjl9h1I/Ql5N1VNuJNykj5hZC/faGM7JMoSK4uiFYq3R5O7H3gurhOzv4Oquz4C8Rpl/SXq/WMjnHL+Qn28MmC8evIf2JjIFYlGjxoVPMjQFzsordve06C3bhntz90uzf/FI+hN7aIkP2vO2wCxOQ3WC1W6NXozzRu8gwWL65oAQXXbMsajLcOCWONT6YtLa3R6HHKmuGpwvmNveQ7XmIVR5Q6CboR/uUryo3sLZmmE65kmIu35oOoB5+UZoG3gSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467ghirn_e2etest","name":"fv-az467ghirn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d8c2c45e-2b9b-43e4-a42e-d06a527b6504","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18001","status":"Disconnected","lastStatusChange":"2019-10-18T16:43:42.2692093","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"22aaa775-c36a-404c-bbb7-9bf523ca6dc9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtRDenG1WDM7LCYB78QegBb5jotZB7D4kr2jNq3Zd1e2V6B4HuWtRThm8aN9u641VycJudRHI1DtE0eAOV2O26AYaXu/dYDfvQUdcBYUrfuYxBpHZX1NT5deRSVHMifu+zPLnNc9d+NKgCDHuUdA0gsVCDduzHyMD5043Sd1/FtUs5DPpdcKsTPK0yVN6WLBE1GNbAMdfEIlU+3KbBJq1K1ah8C5oTmXiJS/70z0+64GWX156PfDt1I3ZtSqOYTbDZMmZUSkscE30qj5nS9pP9rz4kOneT9g93NuPr8PU1WEFrBw5WG2cedlqqMR+JTWEgZTH1AhMVvS2QgxP7fufAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45671hkm_e2etest","name":"fv-az45671hkm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fcea4a57-89b5-4cfc-aac4-a2c36fb018e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01002","status":"Disconnected","lastStatusChange":"2019-10-01T18:21:20.4790587","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"63e29c82-ed49-445b-87d3-d238c0127554","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzu2bEXKR2qNYacqW6AAtPP5XSWjakobe/J/Bo4TzF5s+GAQulE+tibxlTSBciwtvwykvwmSYe/ZhQBy3qdQDhSbCMmQ7b3bRKUK3FSQLpS8W2E+kQxEYdJ6cru/PBRsGawY1YLxVObUG5C7DNjmdKX5xj95tSFMvzSfVHh3nG2sWCTQN63G9lJu8GiB4/78PRHG6sY2yOuYMk1wU5Kmlt4JV/p5a9rm6haZCKBaaOj0AaFSJM//zQsKNFYlnmnrpzHnE24a3mRps8WFr5Hse5bGExClZUR3VgWvaP9QbZX6EbwunfNUF6VSxgMuzjSpcKy5aSq6FKIpE4forksQ5FwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461i1zwg_e2etest","name":"fv-az461i1zwg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"490b9b40-2e3e-453b-9a8a-3ec511a8459a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20006","status":"Disconnected","lastStatusChange":"2019-08-20T23:21:07.0408891","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"438eb625-64f7-4c80-817b-d39112a5e822","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2Xhbu+CndSqmHUpzqjAA7/o1BaOt3KbiQkRHAagQH3pHQ09AnEhtgWNPgqYbbhVDPpIk+32ghEdSdB956FnUu8wqPGrMVChwwvaFrzldgZdlqGkCaWg9YihktumQAG/bt/llk/hG9hLfiVopb0RDnDxeRd4URyk8jNQSulpDej7mlQHLA4Iaj30xGlHGshcB0Xl4J/LaIX1Ov0ElKSWDM9ruQ8XfJkOV3xzDqmvk4DtSO2BudCK8AJ/1ISdPkCS1rYYIq4G75S5JtssTDgZVVPopFR1WIsd/c3WLWuJmrkA7Chev6W08hA1L00GlV0agNOlfbOhNHJ6EqZoRhsXq4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13011","name":"0.2.1909.13011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2b104369-9433-4bb1-b0f5-65dc3de1b4c2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13011","status":"Disconnected","lastStatusChange":"2019-09-13T21:59:36.9337665","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"c3c039d3-cdf8-4a17-a5bd-2295c70755b4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3FEMQYgJgIfXGvzL5Pph6z6SadiS9o+t2icX6AYx4v3NDGwLOFVcNgpPJ9SdgSySaOVw+pJ47yheZS4r2BUMnOfk0AfbcGitVssckTmaOt52fv4nixEVVR8O7hXFgp7Bm2xt4P5fAdFTGICJ4SW/y+xrHQXFr+OhftajU70qAP1UkNoMOu8UhL2h7KL/byotf8HuJxcBGdy0JOtrvgUZd2CSSSMGlEDhWq0MjKR8iTmSBt/dq3NnJ9t68YiWZeZopq/qKHxY0h8QlF3TCUeEyap51vdpJAfSAIpAt7HSTsQX5RkE7cZkbLmF+Hoxu65WgkuBSGlIoazkeCd0y7z/8wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461ir6n3_e2etest","name":"fv-az461ir6n3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2e5d60ef-b523-43fb-811c-bcee5ecaea8c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22025","status":"Disconnected","lastStatusChange":"2019-10-22T23:21:36.7654237","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"2f74ad3a-c051-46db-a900-19ac22a42fda","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzoCEdYjKeyGpFxcNBENcg7R93z54QwYIigcw2fsTFD4b6A+nL3f7+jFbrGW61ohA2LeErMQBN8HLe+PXc8EvQ4i1pABwcpSbludKtjpehsBtLyS2JT/ut+ZAnwJFLAnmfSzVvmshuYYzoMJt0VtM23yRy7mO7dGq6BG/xW7FQ2ICpCywmAnHbP4bJNpRaLyoyp8MgoRyW2RaZvoOupHcGjZ2qWLGpBTikJ0CL2v5uNl4xV1ow9apdMh/tLOjKg2KJIghxKiyOVSThNbIcFJj/OBdoELjR138rnvLE6nFxrhjbmKL633je0T/wl5Rs+gSxPSU8wR3f65QzeZYacNo9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456ob90c_e2etest","name":"fv-az456ob90c_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a826f705-2aa4-4dd0-ad49-e023881b321a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27001","status":"Disconnected","lastStatusChange":"2019-08-27T18:13:16.8550668","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"dccc1552-1615-444c-b06a-71868a94a4de","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy9Hf8eeKp+G6uuRwrL3P5V1YYWZKMniGVSjIZa272SSBi19lzo26TC1FupJZm7QzU7aUWFYUd1t6BMVC0EJEtK26oBlH/NE7HgkEZ0Ty6XLp2HvzNoYTDhaCidreSLu2Ok/xOJBcrk8xMXGXf+/lon+INqlG/7FzX1Mcrp/+UMCEgMPEp/UvCEDoealnD0QrCm+mDCHu4t9cTLx+81txbH5890B18I95MmYOfWX7/4M+izijMd+RsEr/bCOHlDUWYBVfRbGlBUZidLT/xeRxVpb14IUVK2XGKizD47IuaY+VUL0wozwpA/q3k+9ZWbWLO0gaX3iWV/iMRt4LqPR8RQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45672nwa_e2etest","name":"fv-az45672nwa_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bcc0a01e-5ff8-41a1-b233-f0b8b1693c0b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03007","status":"Disconnected","lastStatusChange":"2019-09-03T23:34:25.9738763","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"915ff696-4baf-40c4-97f8-46024bb14855","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzZBLvl0nMs8C25YfLlgSyk1MIGDaBmxsVvAyMCHpdrcjiLwbIsxkOSBvUGk0J3iY71WL6wUhkZNzOCHDeC+dK3RGQDHSGPIT7AGobg6Axkq0C401z8+lSk6mT3EX+pnfz5lo8G8KSrVsy6iZGZi1GL8rIUEEmp+nC+3kher38b4VztGJeeqLRg/2m5h3gFZ7NbXS/OfqzYf1n2x5y8FKUTjZxcwkF0RLC9YFN5fy3dwAR1DA8F3Vk/NPWox2STb1nSUrZZk7LtgvtIfCBhDoTJ6LulqBNchWAPX3PHeQNfU/QB9slpPABhELbillua/cjdGWFNZmNuySFY+ia88C7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456og937_e2etest","name":"fv-az456og937_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"03cdebcc-ac55-4ccd-9007-88f7bd425099","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07008","status":"Disconnected","lastStatusChange":"2019-08-08T00:32:34.6145802","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"3134dcd8-f70b-4032-9d8b-596f3ae870ed","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvs3p7eW9rCjuIoWa7aLXYA1Q5YGgzNi0jsvJy4vmm22bSTnPRMWfb4d/hsg+ER/HwCkBBUcL4gCJ6ZNRpJzX36HgQAV3GUBGvyg6Rwm1uFZbwXhkACFO5San+uYspG86eEkKz8bLWPdCvTovqZ0RA8RsfLPGrV5KQJgmy7averr55FyIZpEURbILWDMdNB7yb9AV8SFE31ky7qaBtJhEfMq3sXQY68IEAgtZ0f2SBy7hhV7GcLyjjA0DpBApFhpc73Y+Xz39f4LQKZu1RITIHhTz6PvJy8SRTtGOE7FshpiGsTEqLTrDWcEkjO8O5dH6oy0lmYujZbSBK0+GEKi68wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4567qtup_e2etest","name":"fv-az4567qtup_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f7805d3f-ab48-44a5-8466-bf9f75a6ae4e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29008","status":"Disconnected","lastStatusChange":"2019-08-29T20:35:56.4384805","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2eb94914-4d66-47dd-8a48-fd538c4181d1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuhU6grIasoK1mAlFmsRfBnsje2TBrakuSd1DXSN5ch5T9IrBgiH+j79fLOj0q1wO+9aZYzkfdLx35vbvWwv1gIl4hFLnDAWmh2Z5m44W+lIdwHtMQamtgg6rQW1Oe6ryGEYS4i5L2aFYP7JnC37BWp0UgPG0E94KhhFExhuB+JZVbTxXECelCT5iBz9Rhbek5Oga0D5rfxyoNNtiYtoWXMEjn95aI+AypOKq2QlL768z0wggQ55lymhAQWXLr/4bro+JSw1DiiHHKEmCBAzDEahbIvNwHCoIRm2qOc/uZDo4CBA+sqvvzMdKostcZG76HR0PkZWALhYgfQ9ShRN3FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4587u4m6_e2etest","name":"fv-az4587u4m6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a0b0e555-0483-4253-872d-2229d387684d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.01004","status":"Disconnected","lastStatusChange":"2019-08-01T22:20:25.0427245","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"506e6d31-dafd-4907-9851-2483a3fc4192","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAomp2Hs4NqeBeS9fyddBRrElsyN5yGyy6EWpfKIfo/TTXb3fpYnExPogGaQGcuSckMHvrdxPAIkDKSZvMn7JH67+jxlqSWdy/rMLeZrN2MQMBvHtDZelzWSyz4zm5wAqn9lBpafC85YdHv7xMHJ+1mEN2U91XG8QvJ8kVRu7QyJZUdVXrh6vx8p32etgZlch8rkFeIcKzzm7k40A1nlAynGpGUsvTCmjV7BnDFuWQseSiuWE/AavTw3sfNAFU5gGdh92tCm1xu8OXEjbHdK5rXgZz0FMTZAwpcpxEVkGxLEzz/qd8mkKs/TMLoH4kRONsUJzeDIbSvpb3zqco3Pf+SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461j4zs2_e2etest","name":"fv-az461j4zs2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ca68f6e-4dae-4137-93be-82594a935261","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24005","status":"Disconnected","lastStatusChange":"2019-09-24T17:23:53.37421","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"a9521b10-5105-4019-984a-9b10f31a5e34","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlwkQ2x2cPdzcSaQwx7wUqZjT5Xfq1MC45SEnZkx3XvNAfYENVm6/y+k3KW8Y58Wj0gRfLXkvbzuPPSBorlya91EdoxhO++4rx4GXtIiYHqJoEz/r4ue0o3fZ7sIQ8CvvzvSfaZ573IA76ho6IQyS2xP+CsCUcP6p536TsPoaeC9RFfc5iWTRVa2aIC4SWe4FhGfcP4kvfmNPsAwFo+l+zyxvtqBfIetTL5uwbkoNdyHkGva7DTJjDBVvIH8qKsr/yoXaK6xnpSaJpbt3OQluJrwmoEa9/r3YOW9KvYfa3elJngiZ0ldltYaBlzlePb73VABZCixLJOCkLkwWxgHxvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456olt50_e2etest","name":"fv-az456olt50_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a0f14d5-f919-4d01-9e95-d98823f57291","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11005","status":"Disconnected","lastStatusChange":"2019-09-11T18:25:53.6922869","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"63cdc4fb-cdf4-4d8e-a047-7cf9c59f35a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxTB7vLQQauKvDZD1xHFGKfJYIs17fkIcqDMMbp3OqE21WX9DWg8EqOH2pnWBfmqar5fycIacNueTHwN8pret+Bv9bcTUL1x0HMauLtUIBjTiYzywG9Pb5pNmFRWYQn3BoRPQPvcGqruKaRhNtC9+sAa0qr4F34kzGcubaUo+GmrbI5RwWYZLz9StzXu1QAw2BW1HyXm3hQRcCJBc8pIs/vrwwljktFeXEjjqQ0KYdb19zlZQHO1jj+jScaSgEXJoDQNPP5T33r4tFBq7/82YXXgTgWMKleZzqfbK2tPOjpBmn/4e9I6ynq+S9vx4VBGcF0q+DYXGJGzAK9CWa0UjNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467h2b5y_e2etest","name":"fv-az467h2b5y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7dda158d-f478-4007-8123-7a686c15d16f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27001","status":"Disconnected","lastStatusChange":"2019-08-27T18:13:16.8550668","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"0266a952-6995-47c9-850a-28118d37adf3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2mKL4GeDycciZclbOx075EFuONVAfo8/eXv8BFkGNpriI8G1qGXk5h9CUYx3FD6XI0F7q3A9HUChlVQ6iv6J+KQcf1a/gAd+fLkjby37TCDK3xPgqvo7e4kylSVSjcTfmfQFb9xj6iROPKFQOdPGjAPZu0pySkioMG7l5xc4XE9a4kCsI6DfWXM5LZSQBhLDpfFrcoehKTTehfbObOCgUSz8KOS6vc/j6YSxMDybs24Lc4E/YYaZ/ezawbL75ncbPw6eol3zVHpDGAW4+HivBfG7Z+OYI7SDQUQOFWD3rCh8uGB6xDnXJt5R6/SC9SLq1InW+4iUDZ8O5ufblTdmawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.13012","name":"0.2.1909.13012","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5bf3a0d4-cceb-4992-972c-356c53f0aa4f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13012","status":"Disconnected","lastStatusChange":"2019-09-13T22:19:37.2612615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"00724622-85fd-4d9b-82f0-8d0cbc381418","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0mMjgKKU8lVjuAWpCkhlVuMpK5y3l5xkZREfA4tIEoAW/vflOdtrDYpCTQ54hKO2nc5wZav5TT83ZLAW6B8PpSHvT1ysm3MCf4elah5HI0BZtdw4GEcMOKXoLQaCQS3NZDJp1in5bO2Fuv+roCsodsPwNGWAefK0sU4CXlzr0jUY0yoB2mIx9gSLoL/ViiuR4I5B25iT7JjtHl2raLVbJ0khHbtzpHZSWqmde5u7EGWO91aZJEwUj+pEWyd61Cw6Z3rwGpGxTLqxaGgAjsm7+MVi3xsiPz/gu8T+XDAyLBXA/ZrgxMOlSEpXPAe/e9KVuXi1kpiege5afclvvq0siwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16003","name":"0.2.1909.16003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8283aba0-cf85-4a92-8d7a-4db4706e8cdd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16003","status":"Disconnected","lastStatusChange":"2019-09-16T17:45:01.3960378","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"37b64c5b-df09-4c33-bbce-81ec70734b81","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtkT5s21lKv1pEzFYi0JiYg/Ua8R99U8INkuhnVjC9ipjvvHbJ+sYqcXd9S+uIYiDE2tLSBPudQkQd0szYQKB7vpJOw9/7f6U+tpr/RMdHPCRcEcQbA8jachXonI8wxvFPOYn3z8X+QbsnKcy4yqY7W3FT9DgUp2TxG3TYSJBWgbW6vwcKA3eyPBngQ4tRC2uYF2l0vhCsvZR4LapU4iD+Wqn8Ih+OvwIzSX0fXGLHHsAih3lioS4nmVwjBUXPQY/B0rTksC+bDL18dfq7UIIqxa5/rWOgjIW4Gf2V3XMFOeXW/RySxgZ38C+xZHJvmaYn0ux/vgN9mmISHanbagMpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16005","name":"0.2.1909.16005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1da73485-9bf3-4c80-8be8-025f3ecf1b1b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16005","status":"Disconnected","lastStatusChange":"2019-09-16T18:20:01.828603","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4438b4ee-b5f2-4e23-943d-ee8c61e11f70","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAryg8oYx5n4ZWAP6CnDGH+EFVFSvWpMb3qpoc6DOdhvYz4UGBN6LCU3ocYWXdauqvlInVsgaUfqHATfCgVjtsGas4RzFX2CM7QuSm5c2ADB6NHCky2zehiphew5z6+5Fq0NohDTge8wmCeZSNYnaXJ0xxTF9G0W87MswVJMucCluj1rxzG9nxIEHb+AzsXXeth2kMnWxDR5e/JmncLEY5s8+NzWuqENvMkBhsKopk895gHKIGteRAtEBwY2VW34QwyCD4x/NB+lCKdOf+6Hd2+HVkojhTfOTsInTPkOOZVWvUwj3JWlD6UcMXw6CbWwv5PwNnoyekP6hjSjREduWjNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458852r9_e2etest","name":"fv-az458852r9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6236f020-0cea-4c07-b5ea-40174bd9d817","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30001","status":"Disconnected","lastStatusChange":"2019-08-30T21:26:05.748721","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"5fccc1ea-b797-4af4-bde7-89b1e06249ae","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArw4A0N4NTK9YtcMnbfm4uc+KsFrwh3MSII1pih3LUaNSDklzROqhDtHqU0dJxCSbApbo7dleh11mAvFYZcpeeK2CqZJ+rwougBKMLnOhjiNV4U/FHpW0m35qtSmkkRl9QcyfH4T1tOxOou8IUiXoZgqgzeLPtEriZwgxjme0X3hncZXWrq+Vp8SmBjOC8rOUFiPK4X00J7jgyS7aCjQF66x2u4wsq4luXLq9m7uBHFzCo+DM94EOt1MuNh55d+K3llwReiQeEUnTBe1LxTSrzA73tZuRRGEzkxXxxwk7fwGvUJr03I2xVxq9ohLLDG+7Z9COr+kYdGrHxJrnflN8eQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456p0hjo_e2etest","name":"fv-az456p0hjo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bf27e01b-4396-4ebf-a607-58358aaf88d9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20003","status":"Disconnected","lastStatusChange":"2019-08-20T22:06:46.5470254","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"340e5cd5-5b88-4944-acb1-3355a982cc3c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAssIqg5TnD+cx9wrqOFmcjZ6oz+Tnsk3NXXSQeA/Lk1LDaOVFGCMTXKboZ2tfeDjHJPHZcf9JrtmR9JQhsEWuLrWLm8ChbBA2MlCpiBIhWBEHov9oUQ5RtQVDc3Mh22aGbXj2I0IYY366lnYYfkp+r5CDvbHbGimv7jKHYzRSXy7ncmGZUozuy+Ht1L0kStkw6Z1ysp73p/xFKgJirVXiOfD95FFAKIpavke7elB+Hij9+jnG0syOQaf2zR/POg7g7SIMlclX3Tgdc+Um4Tyzr5Y72TqMTM8b/rZ9YiGMDaR0E7dvlqbVeoO3PfhoTgYLL+AhJl+XVmKgjwn6CjK/KQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461jcwr6_e2etest","name":"fv-az461jcwr6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a5e6734f-3bd0-4d27-b1bc-063d50adfd98","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20005","status":"Disconnected","lastStatusChange":"2019-08-20T23:16:06.855779","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"8ad38b14-35ff-485a-8cfd-df800dbe0e94","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw+0gpZT6a9zNbE/p/uUyFWM0zyjFFOo4HqPJ3GBXRk4hUb2ACiaiAe5lnpZAdAvCMqsRGFoPNIQxmXtM/oQqnVINnmB5LPKLyskIPsW5BC+JOdTvwb6lOpeI9zb8BWy3GJ98cs5C7QNq9tOVCgdgj0jlw0xdSTEH6iQg6ZgPxvUB5bSgOxI47mPao2+aPi7fFG//VpUsIHtjDoaQr/+6Ii+Pf/Bfm7H8QG6moUUTlK90/Hw1zZuAbSyRwlF1YCs2+UgwP1Y23Yl2uU7hiz7GK5hmMl6lWKSBB6gj1vOe5SwbyHf59rk5xAhnpsEW0m/W7B6IrledWTxbGejcZDCqjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16006","name":"0.2.1909.16006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"293bf72b-a72d-41c7-af18-bf6310ea306d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16006","status":"Disconnected","lastStatusChange":"2019-09-16T18:00:01.5519372","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e359bf62-735b-411e-a3a4-4163f9049c50","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxF0lwuO6glcgRiyPpNWTHmv9aNczLt2rfVsFn9zbzanJGydADIQ8LOiBDiVytmnhmZrCbKc+xFAshr/cCNQ5ZNq/57e8p5l3Jh1Gc6SyjUI4w2sXo8TJkv7y+z86LMhXAVbZTslfXA6zqQpSjA9zc+gvve/3UeHMFhpBXE24SlVKCtRgtWj0ks4vUARFwz8na6VDJSxB2Ck/N6dmi1k0cyupn3FblrPu1hPno+TEp4fx1sjrkhcp/YqXntFqGuIiZNQcWbG6oIE6uGX5HVrRIvKgVlPCNQ2eG/FSKaGK6ZWhM5kt5FYfUmswjvWfogvSBLkztGpQ877cJbtwPAZ5zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461ji3vo_e2etest","name":"fv-az461ji3vo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7ded6f92-5bbf-47ba-8cfb-c6925efd4c5c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03001","status":"Disconnected","lastStatusChange":"2019-09-03T16:59:23.4245954","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"7e701246-0111-40a3-98fa-4f6907460faa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2pNz9WU3TyKM9go2MElf3cvrPSGAwzGT9RpoyMOMuImnUUTuACVtHccvu8vJ6/e8+cBU+U/lKfpRB2JbGj0v5Ri8i29NFcz2BNDT7KTvXZHRHUc9FIirCqre0OqiMnzF0ooYxA6ZbNil36hySRumIho6gEAjwwQ8IAMQAVXi+69Zpj0jmSBCj07VwTvpPoE2WRz7ErSqigzJukXVqpCjz9OITdjpMxnw3SXwT1MKZ/YjUvJSiItB3q/6BY8ojYOZ5XwzymFg52BaXP+lQ03Ny6dmWE86vVNRuF+QCwwd4gF+t29fcqCNYgSdFjIRQkoq+1BlViq9vudjBW4mckz5eQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456p5a98_e2etest","name":"fv-az456p5a98_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b048c4cc-04a1-4852-bf1d-a1b8ab1a3ca4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1909.03006","status":"Disconnected","lastStatusChange":"2019-09-03T22:44:25.509453","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"68be02e1-c4f6-4060-9200-0928aa002bc3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8x3U8uPtgorAIZuFLvdnpdxBCnxdxRltA/ScT3LirSZzi2POX3yPDLnY6APypIN+muXvXkL+zGyHCUxIkFGwP5Kc9wg2FzUIvJ3jLYzy0gD8eVybA64ddHSETs3f0N9hR2ZhZTpEMliFZzsBSrDZLcPanjLb2NmAItwU+QxZuNDR1Y0OZik4hfKcQbrWhuaiJmHCCNvgS6ulDuLDz7/sCqD4rATei1LT2Arl7tfAtTErQo3+RVSuxsyDyehcEwB+muimq5yNyAbUyq0FBFK1M3BEOYX449ZoOGAL3eQYDNMEn5mnX0zGDf6qlwThavl7LvkWdogfZ6CtVW8Hw+IxjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4567y2zk_e2etest","name":"fv-az4567y2zk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6eb16263-6e7e-48e8-b098-1f03ab65a16b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.27002","status":"Disconnected","lastStatusChange":"2019-08-27T18:18:17.1760035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"69310d9d-08ae-4b33-a152-a7987a4774a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmFQWteTIJfGXxZVEVFka0t+XJjfD455H9W3hPWQQyAstPaDJ9stwa6C7Z/kj6Ib9qTQJ2rBLj1qiuEvKgFxdpdUYgB7/wmxZGQ6bw+uDf7USW8ZrnhoOXnK6g/G1sWXNeZvh+NFRk0QXME0qkvaz6KA4YBE/H1pXbamb2AKZEslHA5kslQIV/3JvpYiW4YvfAaUwX51ZE1UYgUuKGqlgPQit+hssaWVr3bNP5Ps1Hkb/YpKoEUW6+g/3tnpsvFvc+npLS9U866F9wWQM4N2p/F26w0eEATROyXCv1ca0CeifEYze2zis8TVl0DQc1Pw9D0y9rlchJ3Q1hX7lFugDYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461k0lzc_e2etest","name":"fv-az461k0lzc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"808e7888-eaee-4f60-85a1-93e0cbf558bc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T18:47:50.763962","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"647b0778-5848-42ab-b64c-405543877607","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0nbP8v4Y53WqvfPdmwr6YP3Bg6e02caEkpfTY2fssZkADU4Kc0qXMsr6GGgoY9sV5lpSHdubClPo5YYW7WUE+qCuqBENIOSR63Vpda0Sv8z0BXeSCw6EI+ViZvrTv5qWtJkA88UBx04zkUGnjGf5Fd9P4pVrl6fKZSD3zC9/DKkATlIXZdCHQOi9u+Un9LwJm94A7iewGwxDsdolWebXRKuKG4AxTBMlAOLlXO3cXjMmmmKlapA25KhFy04+2bbJTjDwShY2mmm47y1AgLI3WB4q0MmnT9lTPmDHyX5L1WPz4BOyUiD9hI2Ef/LCrmeRZ/Koeb2DR0heUbUfvOBIGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456p5uvw_e2etest","name":"fv-az456p5uvw_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c009771e-9c3f-458f-9329-da404ddadba6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"58327655-7c2d-4b1f-abe4-eff5f0320e72","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA62X9Mx/u1l/MqyhqLcPR0j7fSbeIMU4acTC7Lbqq2kAgbGG4QcQRds1OCMqM/4NeqFWi0ziPOjFUFDxmQyQyJwwTUSog7M9whF0rA2eXmKon/jxlUIbHOUpNc7rbwXbihCsPr3zU26rgR3/LdoEfw8CaPdBh1FpRxF/A4xwEfqsWplPxy7fOZ/Z0wE2I561aGaq67hGeogkA4juxrIjUm0Rk07oxefOMkYTN6hfE8TXMLe5nes5O1TnsbjtGHYvavsHMAzL5szgHASzitolrFM2H5dhc5mMynz/bQvcFDUH+1Ta4Zj+8NLTFj6m54hB5j3zbn1sqTdcvPHb5uAo9bwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.2.1909.16007","name":"0.2.1909.16007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cbff9baf-691a-48ec-9fec-05754a43da39","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16007","status":"Disconnected","lastStatusChange":"2019-09-16T21:15:03.1708253","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"a727a85c-e7d9-499f-ae97-6810edad31f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtkcnRC6wETuYtMn7WjfKfwYKeMaVgXiCGnImmfLdlL6kYQkVdp07Pt7jeP3DbNzC1noPtaKy97V4jG+en+DP9ulLELtnDgGpij3S4pSTt+lIqb+1dD/H/Z5KK9piTcBK6BG1D4lhbLDinnSgfXufK3Zt+y8ScBPv7pS1Oo48GMNbuBrfvSDd1AcxzkSxIg6MLL996nWbTJ5T0+iC4dlqTvrOeWCE1OA9MOK2oRPMb7+5/h2DAeaQXz2rUAopj1aHLpXx4+Lcg5iQ1j4KAybpGPDivje1b5Bqc97gvbDTqpwCzHO81cIlcLxLgY09sTzbv8Y5rntkLJDe8XOboMmAUwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456pb64h_e2etest","name":"fv-az456pb64h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b02b1b6d-a0b7-46b3-97ee-41d4e5318dc0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23001","status":"Disconnected","lastStatusChange":"2019-07-23T16:25:25.7991356","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"54902efd-ea7e-4c51-9f58-1686e47dbd8c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzUSyCJK37WFopCfU2GM0U5+Fb5nGmukixoe/yLi8jD69zdQt7qozEmvN0ovuRo19+OKYCRFGhZ0jglW+3t6bhrFcuf3uhq0876M4r2TFJ4EFdmQyuTjDMLpxHtW9+gFgGolUnmiVXLRGk3t47eNoBe2q0hxCR9dkDO6u/rEP6fT+kV23czEkQtkAUQ7hmG50jrBHLi191LFo+v6axUwM9iF6wncdAFvCRsZMgWbFd1PkvCu39mWiF1hMqfO/Dbfj2FfpLdBdiasIv2/cFKDR17jJIm7czX6m0PPVMG5M0dhXidCdQPWgB95lxxjoV59cCuTaTf4j5MmspwU1e5BK0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17005","name":"0.3.1910.17005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9a4bac2f-75c6-4fe9-b8c1-ccea1c2b1068","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17005","status":"Disconnected","lastStatusChange":"2019-10-17T16:48:18.605327","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"1227ddbc-e36d-4ba0-a446-85c4b27b22e2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwwkvp6zlmlIwseBXNUkgbA5m3kgykHYk2T2sWe0APu4f4ImgvgfJMLsCYEMS61gBL+aLsFvXusAzJdB8kaJzU2lZ+o8aLZQ0SHmAab4j/Zh4qmck7SGVtBzH4guuomvJez/N1BACJdoQRHVqINTysui2t8rjsLhA+d9e08fejYTuzeKZtmGqDIXErq78rZ9xW6fjqsjz1/d7kD/FUkjZhXFIdic4q+PguJyKDaZr/99MwGvwXcyUN1jTOOV+dFyuiRUHSmM06CXOEKqE3fjYTH/uvL2ifAIxRWNazpJXi9KOIhNgI9J2QquWCBLzPE8z6YUiekAVEcO5g6/9rRa57QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461lsy7f_e2etest","name":"fv-az461lsy7f_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a19cadba-d29c-423f-9108-b14ed7b6fbf5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30004","status":"Disconnected","lastStatusChange":"2019-09-30T22:16:13.4886467","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"93c87a2e-ea56-4468-8fdf-9a53a6be3a1d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6wncHdpSih3resYCiCp69sP+fOuwQy4y7rsEQMMvTZSAhmLNVY+V79CVzfrC1m3yzkASeLXpnQUKd197laM76PeicHEmzJdko7sPkBdcerLgy9nTyyJ57Z+HQ3+bWwptIrK7vXaSX56uWAivxkOdZ2TELXwyRemGjRCBzbBNwFe9l8xAXH2r8cOSYEhi/8GOI1Wd6hvPdOKERwlf0mabhoGhJwZUBUkBOEsREklo87lLN0hDYRXBzXnwDZ3Q6YY54Z5Y3sZqCLOXX8z/xhT1jTk5tHsb4jBhuapWl4RS/tpnhI5yUlx4ktQ7P3vWqOFFH/nB7dZZYlpgBsbP8oyx7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456pq7vt_e2etest","name":"fv-az456pq7vt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fc1828a6-5269-4237-94b7-206319560daf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T18:47:50.763962","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"cf333bd4-1892-4ee2-b533-b59049a924e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7Brl/UGb8cds8dlvrMcrCweYmA+YeDQd4w6w1ON4yRrnldQ6ZEcPj6XzdIYVTYIzkGl9KiOk2XI9kUxDcn97Ulo3BUGgCehGKWb4t9lRrVny1v2hKAtK72L0MRztXC65mX3x9Q5tONoxEm7E2AGtp/CflIhQhptNCzBX6Zf1ibKj3xFSDFHmoGCzZN/Za8f0bbm9/RyDKSEVF1gp/P+ul7rDs8597uphGIAhjbdt7PndWBWBOog616LAwHt62+0zQvlMdfvKiNkUHA7+X/dRrYZk+fAFgeTZ4v3omFk7hdG4Me0skWr24LF08/XLkm1VncH95I3KRKY/F2gC14rQnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461mgaj8_e2etest","name":"fv-az461mgaj8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b097f62-92a7-49d9-ab1d-bc5b07b75dfa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21007","status":"Disconnected","lastStatusChange":"2019-08-21T19:46:13.9519546","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"0f6b6b3c-9f69-47dd-8174-2beec9e9f018","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAssiDnRyxErvwl3B9+WUdFf0SzqD7I9nth+VUtKTie5BKPZ8J5o+8Q2WtFs4iKOj4DTQ/dBT61xOAI9ULEVuxyQZCFtGDSm7ANT7pi5Hs3DRIzrPgTmncJOYkO1ebtW6ssCk1QrL9P3Qj0wHjY5O+KrQ/+y+q20PSFbzOYGRN3WdpweLTR4EVzEH1fgFuFuOYIgjp/dxToa3ii6/5jraSRHv0xssT+xT3AKFrH3C8tkc00iDbK21DZamSCq+0sTHQPishnMKN0QYFGpuJB+fZNXNbGwYzn+2lfa9q5AJzE6a1jT1DZfnH/J+EmBSTZbDuDw0+GQkHJ+BnUcG8u3f5yQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17006","name":"0.3.1910.17006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3c3394a0-bcfc-47d1-8b3f-2648cfdc1ccc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17006","status":"Disconnected","lastStatusChange":"2019-10-17T18:08:19.4738433","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az599"},"vmId":"a632a77d-4105-43e9-9ab1-032e7bf8931d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAm0iXYSKedfrtR46mjRMDwElrQpw6HvEB/FIojLwYPpsPCbMCRINPnFsEaHFN620WS3zY4CkcFnpyGD2xgm3gb9olWY2pqewtF5Bqwm9N3ZcUmDCLRrN5+crJhK8Yq3LVazveqOiom1xVd4rP3oFJDOohaeb7a5ayWHHXrh4xw/OpdUVhZmABYclIWMITIOn6MXXrTvm6xOaulzCJcM6iuk5opgdT60qWS9ykDhjJFx+mIlc8Q1/W8pAVl2aPrEIKE/VBv4qlxwTW5Zo+oo3L23HqIO/olXgugc6kAbtrY0bT8QTgSS195SfW8aeuHiZfLWfS/7Y5CmcE/r3bfe8wGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461mk2lh_e2etest","name":"fv-az461mk2lh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3b034f39-03d8-44ad-9c4d-3ae20c02d897","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20002","status":"Disconnected","lastStatusChange":"2019-08-20T16:31:44.3502298","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"311671f1-fcbf-42fc-beaa-a2b2c38cbfb6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnOyM3K8M576GL/bR4L/wbpHsfOMz0Qtd427IMtDve1PlYEI5P8KsHBvB8vPH5b9M6d3PcG4Olld3EDqMheSiElwfQ+mGHHatC7FdEChtvKxh0YutHQq+rGe89iiGJmy6tlHxjyA51jpImS+1MwyqFp9cmeKQ0j8OIsBroVDX/S/p4cSP03FDItdWXdJ1TTQvV9nIjE8aX6cZl+3QHaoBEHabPZUqsObiEiFaUX2Wz64xOvy2SsixlIbAiyf4VQUP4UvcHi7STAkGuqPf8f+EK4iDTPKF/cXAxzBJlxKU7CYnTItwmf6hJ+h/UmCIpU1/w0XkCNBHjwlsL9Jh/uuUgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456q32dt_e2etest","name":"fv-az456q32dt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5162cb34-a1fd-450a-bdbe-032088e33cd5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.03001","status":"Disconnected","lastStatusChange":"2019-10-03T22:04:44.6171914","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"0d733b7b-5519-4eda-b7f5-2ffe07da089d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4cEuBc9H7lgynHONyhPI56lhUP2BPf6bmbD4l5SkDPlnsQXe78cvM/hioYXhTrAXBPRwIOwUeaqLBq0zQYmxpLj7Jb7Qp7SCkiU6h+nSA4ui42ctjGXHgLW+kA0JBdG7ODVGvnV15YVFLPjtE8KMuGwqK+PN8bJHSvPuNLQnoqDjxhVM5lt2HyBvzxxtXG6ijC+VdVUQKSXmsXyGMpC6vIAn+StbnRlIVPEUcM3VhKYfw4fNQbhJupEwU2Nu2qNk7nR4MzqQpuIjY1TD3f3HStYzLNUAcPVibQBglXUQSP3M03ggoGUMzXq2Vxe6aIP0vVGFVpamV+9O8+TLu+FXZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456q36hv_e2etest","name":"fv-az456q36hv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6601c4d2-8c2e-4737-aa5d-68b17d2bc44c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.30001","status":"Disconnected","lastStatusChange":"2019-07-30T17:53:08.4423403","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"806738c8-f2d2-4f1f-8bfe-cdaea80fc707","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6vcuV2tCmnJkUb1ETYGboNF0+EUophohOmDRJhvVb0nN/UCSR0P8RAQeS2CtAvaS4VRIgOm9cDAWKTWdWSyRbGpPVlLKy9peb44uUEunmTFNoF1aJRR+MFcdDa1cslfP2C7qhInT5xV/A8A4BV+HB3/2Y7OG0G+BVLMmA2ihpeALax4pF45Sigp/M21mArhAHGjaFDDA+BPzhR9EpDnY44iK4zQA+fIny35ZSNc6YyhDbKJo6c4Jlrh3M7JrO500Hm/J9lTd8ACMMSeEfvzn6Ye3431PszuSsBuPeKmS/WZuNv5stFBSkMvngjy8vokAjqJ0S5wL5XztqYPsKjtsZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17007","name":"0.3.1910.17007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fae3fb59-e481-460d-b627-7211018f0e33","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17007","status":"Disconnected","lastStatusChange":"2019-10-17T18:13:19.7460831","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"c704e515-9d39-4f5d-bd4d-a442036bbca1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxkth9vH6bktW3vpJ9olue58yz6TFmWhVGeZNY4IwaaUQBWP9ses1W81AlyDvGeejAOhVZxVCZG2B33FeHIb1klBlpclVjgVDqIgEd8ykDQOSJqrH4S/ivwEFGb9HqaP1VMY2B6+O1ImTfO172jPqXqDMxzQ2XfkLqgIdo5M5PubO5upmi9/2uGWuiU0cRXDGvDzlJhMItXxEhGJLm55Mhe40DH+aPnoQVOzTNDvtYQNdhYkDeuHr49szZx2xqlznpR/TT/KU5WmCtqATlWrfbNQw744y6VZPjOBHeFS7OVOBJt0x0pul52lbpqyyWftgQEf5iWKOmX6ZmN5MFGaw1wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456q5a60_e2etest","name":"fv-az456q5a60_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"20b355be-4ce1-4711-9577-794231c838ff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07004","status":"Disconnected","lastStatusChange":"2019-08-07T21:02:29.5866825","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"fc9faa34-7eb9-4b1f-9c23-ef86c0c03b42","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtz5p5rUOzVJujM0TAXr4dpYNneJXCr7UiIu7yZ09IeiYHC+OVSXM5J/vl7rytzSI4lTgUG9Vwv81Hx0ndglL5lBcjymrDjBO9o/VS1/6VTiN2UthVF1OUVwsQ5LvZQGTMsFtimVPUulRSXw2VEeDcBc2oDer+CpCKGgbHnTZzkZeQhLKSy/0lXafl1GMJGlDTBkrIcVsQ72BKY4Nujb36SpBh+FnOsFhiO9OBRSQiOOtP/tdmNOUnYKOrouEP1Z/o8B27o/j7RVpPsagkqnNHO34MSyjO1RkXAVzF1QckEWAb5huHzARajW8o+QT4n6HKI9Q1aT3m+jJXf3EVoX8GQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4588pmac_e2etest","name":"fv-az4588pmac_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"735cab3b-4e35-4535-ab03-cf006688f7a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.04001","status":"Disconnected","lastStatusChange":"2019-10-04T22:49:52.9573846","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"f82bb9c8-b090-4132-b6b7-cb3bb0606884","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6VcXS3Gv27nAz9RSIpR/s2xDH+xS+9RwPWdlR8Rd3Xpn43soSs3kxOicsXp2nODeMHYkDVypNoLbtrytAM9YNULNST/11+znwtwXI1xiHz/8TgUAHz4QXI48DL1zVlccdwstCltnXtHUuOtbEY3ZhpzzCclv3nwWxXhkZMnNprWMjvLkDTnTsNOQGE1pxV9vg49Hi4T4mT1/b9HFbJCVUeG8c46q/ExIWq0ScFWa6MFFk8Phy7yjqe8oqAmFUmUdWNyoPlJ5u3CPzmNQf8gG6US/Kx2ih0RRW0xZo9IVHzWsqzxCqknteCVM/YmxoSjM7biM6badaxpV3UlDrM2M0QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17008","name":"0.3.1910.17008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3f2adb6a-42a3-4d9b-945f-766653a83194","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17008","status":"Disconnected","lastStatusChange":"2019-10-17T20:43:20.9250234","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az600"},"vmId":"9c396576-018c-434c-b24b-0dc53501ba89","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqPs5EK9+PG+gXYISX9eIlLOxCyLc4MMmkpAA0ouY+CAkdT9FRkRc8zQDPgVkOYfuR/W9D+jAifPeDm288zvoEaTkoqFzUTUz2R8ylBQGtljN6P6uKaM+6Tg/nbcYoERT0tHkLwYVfjCQZWAhneCLQY1jstii1qwXuckGnHXJFK6dPT9C9e5y2jTfEY8s4DeDQAIvQrValoacWv7tiKJ3IQx0bPdaIlIp9lNpn1nWk5XoiljQt++ZffD0nL4uUYcEwDEOs6QmzRRLZFPGNd4FQhEicUk+LbWD9A3ALkuMaZ4sGGTtbbJtNhyGvBp4VqGiqIsyQWEM6NAQc0U45xCvAQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0dinEYiBAJGq6QDTeGlSSMKm9hshjrHSYATkZa26374jWacii3ue8z1357u3QcUv3YOs9u1g8jagsFpnK0IzSAaTQdl1dTsxjENe5YIfeNUN89djw4eFOhjtcdMWjaw7qarW2Djcdm2v0HdjP9ftsVvonmv7Oic7v%2fCKrbXdmEbdqJPc8qY15rJoVKt23XD6e9PIbagO9bHjWKkoZcXb73kt9RNGYvI7Yo583fR0k%2bh1w0%2bSn79%2bafeyXqs9r%2b40J9DcQCOk6ylazYL%2bT4IlixD%2fuYBYwDznr5ZjLySD26dZeBlpxFquMWjkIFovwys0TSRs9RMJprEYfUQ0dhxrjCxO%2biAQ90w%2blS1MKYHEL9PE10g8tSE4UxGyFJhHY2wjxjNapgkaV2RYrne01xsUBJf08eZSWbRDZH9otjfNjl011mUG8ASRCNB6EAEEWAE2AjaQ4XMCBiEakca%2fFFXwDBSkhDIEid7shYYrEwQ6A%2faSQUyjFLKxIOweQhFCiH30WZdAyxgCKGEWMJqCYmGKBCNSNSvnCHGcJD5%2f7tTyVgDoxfHHrodT8JJnQClW61NDSEEFmBnC9IcNCwEfUyffcEVNXgn%2bb2HXDR7k5%2f1dYw755f9KYxwe0dyoP040eH%2f%2fCw%3d%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '116462' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:51 GMT + - Tue, 15 Sep 2020 00:36:49 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - c8e4d430-0cab-4f50-8f02-5173e528ddb3 status: code: 200 message: OK @@ -1702,44 +2916,49 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVFtb5swEP4v0dinEYiBAJGq6QDTeGlSSMKm9hshjrHSYATkZa26374jWacii3ue8z1357u3QcUv3YOs9u1g8jagsFpnK0IzSAaTQdl1dTsxjENe5YIfeNUN89djw4eFOhjtcdMWjaw7qarW2Djcdm2v0HdjP9ftsVvonmv7Oic7v%2FCKrbXdmEbdqJPc8qY15rJoVKt23XD6e9PIbagO9bHjWKkoZcXb73kt9RNGYvI7Yo583fR0k%2Bh1w0%2BSn79%2BafeyXqs9r%2B40J9DcQCOk6ylazYL%2BT4IlixD%2FuYBYwDznr5ZjLySD26dZeBlpxFquMWjkIFovwys0TSRs9RMJprEYfUQ0dhxrjCxO%2BiAQ90w%2BlS1MKYHEL9PE10g8tSE4UxGyFJhHY2wjxjNapgkaV2RYrne01xsUBJf08eZSWbRDZH9otjfNjl011mUG8ASRCNB6EAEEWAE2AjaQ4XMCBiEakca%2FFFXwDBSkhDIEid7shYYrEwQ6A%2FaSQUyjFLKxIOweQhFCiH30WZdAyxgCKGEWMJqCYmGKBCNSNSvnCHGcJD5%2F7tTyVgDoxfHHrodT8JJnQClW61NDSEEFmBnC9IcNCwEfUyffcEVNXgn%2Bb2HXDR7k5%2F1dYw755f9KYxwe0dyoP040eH%2F%2FCw%3D%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456q6d3i_e2etest","name":"fv-az456q6d3i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"820113b9-13e7-44ed-9b4f-d837007e2b49","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18009","status":"Disconnected","lastStatusChange":"2019-10-18T21:08:44.7136154","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"61cbbe80-d36c-46be-b378-3a8d1bc0c241","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyRAyjDZfCWd0VJlHAcEmUflh+WkC9dkM0OS++zyn3mIWYBR55FLKHC2q8dhsefyh4cIdDzwvq7RoHIKO3lacB7Gb6Q+f1qMl1upEI9QTFqABwEsejUFTVv+53+5S0dd5zbMEef0+8d7jddJ9n0U9ADLGPclqzfXnuWp8DRlb+YzKVOSdOw5cZQIj5GMm1ywWVVCuuVeF341Ty5ekX4iOPxATO6Wap8FjgkMpus29XYulRP5+TeVNAK5Ox30AwRm4V8Y2OdRPgbcR8jlL3NDHRYd6bGCNTJitoIN8iwORtQCST1/25mytBSVDzhQ8PLOTtQPZYMDbExWzULnf4/SBNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456q765w_e2etest","name":"fv-az456q765w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"905f737a-381b-4f47-88fb-bfeadf10fc31","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11003","status":"Disconnected","lastStatusChange":"2019-09-11T18:10:53.5015175","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"82b95aa5-a04c-4189-bc03-698798946aca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvPQTuIz5jat3bAb49LcaKxid0isO0VoJ66QsY6VfIRQQSCXcSBde6W9SbqgulFzC5kSRmYlijhkAhA7PbyECZCC8Ifjucefs1ywcwEiBI1vuR3SgzGaPldK3t43SAKpuWkW+vjOESGCQ0aIOhvJiCbBOgY7VLqwvNYwNxXgfFImTyKN15GlpbU0kivVrrXcBrXlo3PdjEJb+z/CRGTQpeKdCgziaukOw8Qrn/Kh5drrQ/N3o4kAL3I8RBi5giHPKXgX370f38Gc0eiUWUc+ynJ3dw0s6rOP/66rfV0sc0ULiwHaWfOwQFcJqJn2qNBjKZhPwgm0jj/xs0Vc5RpyAzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456qc2ap_e2etest","name":"fv-az456qc2ap_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7294e69a-5b16-455d-b54f-9279d20bf802","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21014","status":"Disconnected","lastStatusChange":"2019-08-22T00:01:15.7848588","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"41781108-02e2-4d9c-a3eb-6a40db3a0367","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0FiVUZmgv+jkGWHn8xHdkcMbLoVHBb/qBy/nKwShOJU2KtMNAEyN6vzvPrm8sFOxVol+SBETyRo4LAkNAUkpxo5liWhG6Jwbz2XyLUaI5xNsQooVHTVzv03YhTw6apbY8tEdB4B7s6Ij4RsibRFGdma9Z6buSdrZjf4ZLzlOicBEujKRJq+kb0Cp/sLt67yQNW5MYESJIirC6UkM53b6g/nMRHBWn0F1zwNUbmB1NPuqnsHaazgMZw83IWmiYYfJIn08ehECRtJxMtP0Rnk9h+Gsu7oUTusi49h5szbQxf9oygSzapTKugoQO95uu1DholeAEB/3MXo4AAw40GJ7rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461n9sag_e2etest","name":"fv-az461n9sag_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a255c2c8-ae3f-4ef1-8830-cd4881e2bf47","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17008","status":"Disconnected","lastStatusChange":"2019-10-17T20:48:21.113508","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"ba4086f4-7c0f-4ab2-adad-21a7b4fa88ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0ywQCZ75m7BoBzgi+gYUTgIQgGZaYUDDwbDgnsa8dPHIYbuiwilyd22zlk/4KL6DwFjOesA3X/0/2LEtkMaF9KAIPSWWvkoTUV+/6VdLfQxii+/O6Eh0kLFD+F2WikX2mQUcqRu0/GAgpdGA3AJ7DWOfom/U69pbht1bP+dWZDdBt7y37uX+44UcY9QN6Xkr6YPs67YlIE1xuLGAZ8aw+seqSnT1qjpMxdrjJpa01OV2diJ1iVuQGLqM4ZzWeu7w98DJ855Gi/IY7dMP1Qigpi5U0ghn7KLw4jMKCW9lv4pXSDGJ12AaRYEQb7qzDsocEQL/ilXOrVMHQ1G5ZjjypwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456qrd5n_e2etest","name":"fv-az456qrd5n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e75d6989-611e-4ed2-933e-de97d3957aa0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.30005","status":"Disconnected","lastStatusChange":"2019-08-30T22:31:06.4019615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"46fb5c90-519c-4d15-91e6-7e6bb9bd6112","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwgiOZxcBySkIEcb/AT6fpxKG+TzZuTJrqEeLCdFmVsj1gZJDeoMiWRP2Nri/FMD1KiNU4ECf2XvwxiijnBqXRMItdvgNKzfh/uKUSLQmeeyAF74osF0QbTBAUVjKLpnoKN04hQ8gtvBd+i6+Wbj+3FwdSTRbcIRy6S5BfJooN8B0ilL72+De9CkHR2+goLPEVzjirr3o6lPmG9xiIAUtWaHVIeZMDqDk09omV2PENHhLNxO7dUav5NhVS2XsVXbJfjDXXQUvdbrfU5JTn3Qiho8WszDb4kjISY7+zT+SRIJKeEmpOlScPt6FOfPvuyTOyjAmHK8gmJdVIMTGc/UKfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456r02b3_e2etest","name":"fv-az456r02b3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"60d3ba9d-11ab-4ae3-85ca-036480aecc92","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16006","status":"Disconnected","lastStatusChange":"2019-09-16T18:00:01.5519372","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"bc291d16-5e5a-492f-8f0a-b706a510129e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6KLthdaui15v9hrp64Uw5DpDywjx4JBLRhaXuNA/gba1VQJ7GuS+OoanDFfDSEpZS7jLS2T1/RwQce3YJaBYNAvJEHISHqk/TbXw/ylWY0/cd71d56y6FJTlcd8uyD6DfG/10qLG9AxdCHW3z1SmAoLALs9I7jG4gmZbvmKYWILLTNK6nRo+R6WgoNs2WMr3xS0pMy8dRMYvXVNQH0G9FAet0mWQcTEMrS/TDJscRbFVE1ONw1mx74/4CwVkg/XpaR9m/kREOCVgwfA1vLxEDd9wsxey0IfE2r05fNDm7Ap+0SlirhVVZeUa/+d3rom5ychO7mVkMyvj1d5IEAK6FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az461npwyc_e2etest","name":"fv-az461npwyc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"875857f0-9160-48b1-bc5a-f2314777889b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08008","status":"Disconnected","lastStatusChange":"2019-08-08T21:21:11.6591333","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"4d4c94b0-ea9e-43eb-9347-8673ccab1a4b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8R4pLNSbz58IoGcU9SBr12FPypFgqpTewSWqAONzUGMms62vg5XbQyeT8zy9MyaniGYUn9B5Ybfsy6B4TKcCwXnGmuKNouvwC0Sb83am6+Y6zSdUCJytPrllC/OVGWqO3vRetSwHc7Rd+WRpcZ43tXYBahG0SFl6whUR5YA4w03/7CJyeNdbyIwJe/1QIpnk5FQSCo022+666rWqYsXmoMUTKoOMZVsrAlwmA51holjdk4RRuXIjAEcUpx8+6Kn6meVZmScqsDxo5a5zVS8G0fubOJs3IReHSckaCg0esw3e27vw8rxsHZIrbj6VdPg9273IjQZOzv0xGOVBwdNhIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467jk3ql_e2etest","name":"fv-az467jk3ql_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3236df1d-ee44-47f8-a6e0-6c56c2b614d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16003","status":"Disconnected","lastStatusChange":"2019-09-16T18:00:01.5519372","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"d2351f92-3e94-452a-82f5-cdfad861a2a1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxR6iy6ciYxb0M1c1BotmY1E8azlRZ7fkQRTI936Zr3LKPdBQOMGTefgL6F4t/8XsKe0zD8+sD1O71w+49QAV0awNFX8NE+0oDUuSj8vyztDYC52gTrhMC99pMHAiwIDGOjzW+YIsyolUnbkvWueOm1tp7bmx6NWsakEZvw0pfDbcfkljUj1TrLxuaB7jGie0n/ikNM9v7I8379QBjVGv3aEIsH/zfmzBk5ysGBD/+939GYcOlgX4XVzS3pbW6/Lm9xSXeLd94/Wk7VbHfmX4hK7CbFAquGW97L8oDpwCuY/Td39i4D5D6bXJWLShPHJ/+ueawFB2C55mlQJZeAyAYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467jzvy4_e2etest","name":"fv-az467jzvy4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb6868ce-0d12-4096-af24-c5a9c775c755","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11003","status":"Disconnected","lastStatusChange":"2019-09-11T18:05:53.404661","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"092d913e-1fdd-47a9-9045-cfa1fb50080b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApHgkw4dzg+rLSM7Q6J1HoJsRlyabv8u9jkK8fUaRqheJv5gUhVjhdjvzTLr7XcS2L6smYo2KTDCzWqfceL+pq9xs/4x8iwx8xu1/oJCUNgjZVKka2yuVi1AXMwTFNCLexLpjGR23d30idvokTqkA6Gn3Sp1Y6O1m33ddkh0dOoecZX8cmWxlYyDYhjJms+umv08WQQQYJ4PBiw3nSfdyORnBOkH+9BWsecmDX2DhsZbNkTUC5Sj+2C1XInJA4RGB2vc6Ux7XBhJ+tnBMvenGMWrNcAS9TXf8cYP0HNs6JtEGAJMAPNIqXhk/bMU4C3DnIDxJ4g90oaUAGDY0DzH6nwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17009","name":"0.3.1910.17009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"58e33436-85a9-48cd-b8ea-028afe4e34a4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17009","status":"Disconnected","lastStatusChange":"2019-10-17T20:53:21.2569399","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"088a1f2c-cd77-40d2-86d9-b2c73a697663","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxx+bAn8yyqbBA8eaLtacNbMKteQsNGvlLuoueYw17d6g4cMmdD1PQStpzlhtOSewp2wNhMPBYEiGwJMOcBndx9P4a5tQ3MRE6YMWlLjwo3bT9hbTRYFQtJGVnULtlqJl4Qe6j6Wp5gFjTuJadUgWkY5cRx61juY/CveB6pNayd1NH4BDXVOhICudhL3dUZCYknUyAMxZp3vayrBcN4RGlq5x9fRdJA4PS3B716CbP58JdXVeYP2i9cJzdIAFLpDF6fWmXprlkmTh1IHJEh4m6Z752dkNcKvzTxx6QI4EsghCz0+TFUyK/kNLnMWZIM38JowEYvgOUZrKb3abxtcC+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456rif16_e2etest","name":"fv-az456rif16_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ebd5624e-c571-4ca6-997a-edab0e884d70","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22003","status":"Disconnected","lastStatusChange":"2019-08-22T20:31:22.6691323","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4a79bc77-13dc-4220-a303-343831ce5116","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9BD+7LXjB5AOe2gTTGO3sJ7lNlT+mdVCmz1WWjIpnZlsxfovFgxSEvtfOdi4zbFkhhzBOAQVCAfnnoyB7x5hMZSHGKMEuQCpU70N8iTGtCqLk1GEz5b3uhAWAV6Y3Ju5PO2NMHFYycO6kD/Bwf9t5N9OVzvcY3cPeinf8xsp+/Az8D0kDICrY9bCdiUufBpjxJetL0XgfuPunH3dTsuUrAEp3IvgpOTQF4KOjtt0w5T/ijGe7Ttn+YRE4gJVgn3LMnMDXL4lmGN9uy1hUI1UOAwv3TOITbPzHWS1LcbLpggMyjr4d3X5qUkRUVnqtPVLjKWlpuzNzPvIwPUUGaLLRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456rpzfs_e2etest","name":"fv-az456rpzfs_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"21ebd4bf-3fe0-4473-8556-5b67d945de91","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.23004","status":"Disconnected","lastStatusChange":"2019-07-23T18:50:26.8323619","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8684082c-6c54-4693-9399-6cef09c2bda6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzgw2l+4VzxbX8219BC6G8Dhl+Rvwrt7riHdVZiFYbw3JIJHpymAOWA+MBxwLIBrffwds++DC7wXKYa4NYcVp5ing/Dl+xQhy4mHsaXAnjd/g5b8e1xTcskNZ4Z7C4v7RJNmlhkBvogl1687+KBpD1I7q52a1bPR90l9mQDTq/sRnHJ7IJxaTs1I1NxdxhPg7H9OaZLfwODNQxZevFwRoHncuV4qOrZOOCNKUStE0yG9iwWH9ygjt4KNuyIbMnMkWAH/4oJGv6w3Sm8zM8Q9Xj86DYah+wJr2tJ/T78HbJX1qO0Umb2K3n3GloWTTwnBDjhiYWs61uDJNJ/yO6wuBjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45687z3i_e2etest","name":"fv-az45687z3i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"adf58c25-0b4d-4132-b1f0-180473ccd751","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25005","status":"Disconnected","lastStatusChange":"2019-07-25T17:45:43.0233167","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"13b19293-1c98-41dd-aa0d-a41224dffb1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsx+C2/s0A2ZpNJPn/bKIgzvd/vDxHAceXBQ8pIU0pzEJ3GnU9AU0Ptd/2rVhJLjD5F4Rz/VhQEF5UrLyNCRPKeP6d3IvUFXsrBMtcFKWpBn9HOkiqMRiQG8kcWX8PPl4C45DSnLdVcCmkEd105VGA828rM6564g2md1ImFaHYHvpo4FmrfHfZE2dQjyX/1s1gRxxRG+zcs/UmDubopsFCGbNpWkuO6XVNQEM7HeR3zrFV8v0PR+QBfU3vHoFmbxzWLWGRocmbZgynCRgbbZJ5fhDp181lQpeEmGeNJOsgx1/bTmitYnOjhArHyILQLVg1+u4CIdbmUcNYdVUMo+elQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467k9d8y_e2etest","name":"fv-az467k9d8y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"50eb808a-f526-437a-8bbc-9f5d233e3c16","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.23001","status":"Disconnected","lastStatusChange":"2019-09-23T17:28:43.277985","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"7ba137a1-9e08-466d-9c53-86a1c6ae0a25","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4/H25gYpKhwdWG3tSPQXaLc7/sCGAGo2gePkWFh5xeVzCMW7yZEt5+0ic7VDrO2FuwkDmQiB/uXjKtMODuitaFkts+mJ5cSI7nBnAmuRs3JK7SFiReWgJRNqssQhHhk70q6xNd/CMt71zxft8qRNhiqlfYn8ULFZ506ipYxa6ifzxH413BwZHQQJl6PKU8m+DpO2SUt+H2bMPqX3ofZlbV3Xpr2hTQVY5o2jypFTbHOlHK85j/t25pscFtOyGsEoj+PGmNoSr68UzhkvwCbXSxaXEiOL2M3NCKPUHNLtKd0QNm+RQA4X3dCsYJ4D/Wq+JW2Uf1VVh0fv7sAm6O8TLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17010","name":"0.3.1910.17010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"82cc3f60-c2bd-48f5-97b3-83b718544b46","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17010","status":"Disconnected","lastStatusChange":"2019-10-17T20:53:21.2569399","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"16efb43a-c684-4011-90fb-0ebebd586048","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv32f+DoZf36dqHcvLlyhf4HvuEYh5GtD8w/evUoZ3S/SKRKZ7rZBNjWr7v+3PZP/JserL6fu3EB6nUebR/bDClJgG8ymDUForcKZWdhCdELNnnGcLkdBAzkJezGTGdFcP9fZs0WSAxdx0S3V0VStI39ycg5gZkBZ4P2Dww8NpYDonf03fMmW9BHTUn1OUQ6l1nXiPXbUfl86qgulJ1nFYiZvYT6z/+KXHwCzwNCK4Qu1yYjmVQMHCu17evDf40n08sp7URptSeDfbUXcnOTEMiOfN726TtTQb0aZzRS9E1fCbSSQUxfOC9diu4h61Mw1HhTXUvWz+gDDYNO1KHJNQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467kbn4l_e2etest","name":"fv-az467kbn4l_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9ab927cd-c8df-43a9-91c7-2792cf080eb5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17005","status":"Disconnected","lastStatusChange":"2019-09-17T18:34:34.3555682","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"350590b1-385c-4e9a-9370-f14de0bcf145","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzEq5AlMKuJ5kmDqGjI0BzrCm7Hd0PFaP9E6Gt4+UiiPSEkOUGnc8uXtnGyj81ZIjFv3eLikmd9OUMlLgOSP3Udj2yexRQNG4ExU2X/t45f3z6B0+rAWasjVpc81S8Lnmb4pNmo02JVvqfcTXrjcdJhJUFkWr7+JbjqDTsFh3I0sSx5BCzxHQs2/xzQE5A4rEMCQL7x1Hbsej5c6VkqDW2RTBrbDCUGxB8WG2xnOtunqFWm2ZTjfFQOCAwCOY6fKDb78MuGBgnz0HPtuzE91orbCLzhK0/oRGeYzS94oKUevDTVuqZZqJ5cL9dTsLo22xrODyXQqFOK378qGNwSvr9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456rw5at_e2etest","name":"fv-az456rw5at_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"230763d6-c156-4bc4-87ab-bdab5c64c0f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25004","status":"Disconnected","lastStatusChange":"2019-07-25T17:15:42.498581","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8e76bb33-f0fc-4fa5-a27d-5719354fbcdf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxwK/z5YTnursH7runOXRKlh4zI/wFdliUUQUpBjFWq6M9hT9wiD7RgAr9ij10U3J8IC849uFDKfT4wZwDLe5rU5eghOgTM2Etcp9kLyxcWuQSAxcCbhdxPc2a1fAG+Ufc0IicTKztO1YeArUh7tnjE7NBpd031+guw4hgNxFt27PEZ60bgWZGoM94OPQDjfIc5x3KlQdK0bMIcckF/EWzVANttaXrkXV4VTqoo7BDx5OJ3EGPS6hTmNvVPHUaabmER/VfuFV6taWyIXFfDzCpept1kLq/oLCMCHdO/QT6pOrIqnB6dTxYJo1RCIRMBCZLtrrEdG5NjOw6kNmTYgj5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467l589y_e2etest","name":"fv-az467l589y_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"18dc3095-5432-447a-b95f-8bb39c9d53e0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17007","status":"Disconnected","lastStatusChange":"2019-10-17T18:18:19.9448978","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"636e7b8d-4736-49fd-a3d4-f1b27627c08e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlpgfMvfsmWVHmXq9N/trTo8PGy+56tj8uHo2BB1iafucCLHVhYCqrhd6LPAlXLp1pFQYZjaYs/HBdjmZDl0Gan+gFaJZXo90eEULZinXRoyRma45Pqj+aK8U3laxZhHJWoEgADKwtCRK2c+auc1VSK2LtaiXmALk8X44ZMARdG0XsT04lmc5FlnXmaUbNQhFeSj6njUftsx54x4Becrzk3jBCMqAAs5rbocAG+O1JCjBu0MSydkpxnJP3YlwTQ+TBgWRxtB+w2CvJKOEtWXD9iCRYTaOOggSAGkga87l+LCFvuVGU1m1CthP0CdY320VBjVPY+wbhZs7DBdVqFpujQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4588x5gb_e2etest","name":"fv-az4588x5gb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"92b8f53c-7871-4506-a36e-5bf22259a597","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"cf5ffe1f-9023-4784-9d15-4e844c8490ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuqftsDS9MJAczlaB9FZ8VEDcnAOvF+RdKA1MLqUXsO7JOtWBbjj9hy5POFxcpmg9VAM67/iIQu4JehKji4gqhFfsAn+JtN5zoYwqjvQuQWnR9LcpaaS+OCBWp1RorV38P3N+txFlv8Pt9hH10YJzvwYIDqXdqQzi82s8O6PdNrMBy82R8SvAhJZ25lnFJQX6LAQqnfQSc3+P/U1/CUnuQTSqo+9QqaEb/eBwcUJs4PzrtufhLV4h8XUl0e7tSP66utXorHDbwYJ+Awq6yiW+16uFQuI1o6ZiFbwjt/ihXSBg7oMpqp2pMBlMQN6mNrOFS7xlLhePGgbp1i1XSwJgowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456rwmxl_e2etest","name":"fv-az456rwmxl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e51ed65c-5b4e-4e0a-9384-82654f4ddcdb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13012","status":"Disconnected","lastStatusChange":"2019-09-13T22:19:37.2612615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8de83e8b-099b-44e6-8426-3b24d33ae6c9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3dWCUBEu9t1XVSkPBnDdHXLql6wcShFd826y2PXGlXvKKeZMhY/QyKYyN3kGMu7eQFAlVip671kZyFzihWYwoo2eTwBB1wxfAVvEvTpPRcvMtZwlq93R4G9a4N9UcbPxic4FyOSAq9BzpV9onkdkrkxhwGtCFTwR3yym/85bXYtF1MHqABIseE1mM7BXYv553UHFF7Ys6vyQ+E2Fr2aXDj8XoFyR+i4gZIujN15dtLphFws4Vjq4lVj8MDbxRFsc3RAsaBrXZWknvFsuwONRJltJek7OLefIVPJXZYErlwkrWRFyeBzQtgr9HhLCvLORptuf4ZGoMRn3qCIrD5A07QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467nj578_e2etest","name":"fv-az467nj578_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"484b4550-3f72-4441-87d2-e88fd81576f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.01003","status":"Disconnected","lastStatusChange":"2019-10-01T19:36:21.0205088","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"071d0be1-9509-4ddd-9ffb-bc2363193163","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAralks4LF7E8Q5/bXPrA0IbK/fFBI2QB2VFR67oLeZ47yXNFfaZQpAdfiNoQjK5RUhawvrqw1zDKI7Uy5eOpcnbe3n0Hz9Yipm3ihHAgAezgwFbiE7ynvum0xrjwSc+aX8lc4f16Pe4d3kWmqI9rTPWIjP4wf8V6cRC9OOsJJZd8zKzjeFXDJVWWc1xF059W7I2E9uX8eVgXnrxcMxFJHcO8HC9mOcDJXJcXqLRiOEuCqovbXl/O3cmEBgJn693CsRMgoPsOFLlOJT7xu0LytGLqehVKyMEaKngm2ElkSN0V4gjo7XUq+E7Tt3LiG5PLEzI9D9Fp5/q0dZIP/xz+bQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456s2wvt_e2etest","name":"fv-az456s2wvt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"116b7305-722e-43ab-af1d-a7ebe8750f39","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30005","status":"Disconnected","lastStatusChange":"2019-09-30T22:21:13.5842945","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2900703c-7948-4fdb-b854-2e7665520c86","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwF+cthQDnjdiFObGelitcmmMXnn/O1QM49qSnD+D57zz6lCPbqGwpWWNaBNoINlzjdWhHZuoID3YmySEoqmgPQtOYX6ijsScP62jZX4yC0Fj+HoaEJcMqCA66vmtdmR0m42DO/IBClVggzKwHwjpM4ECga5rYltesW09LXCvGiF6JaDEQrJFXPPJy3LrREe6GX6umfKkoIDnH0soxEPsZo9mDjXyR4mDRO0dJmzMc/Jmhj9dYFHKfPWw8k9sLCi2MQEP39iXma8iMTJUBFLIdEQrV0dg/FQzYP79SWSZovZIlPw0/a3y0FPreDMle/lbgl9pyIaKHSNLXCk6K4JVbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17011","name":"0.3.1910.17011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"565f0da8-c16d-43c4-9f75-da70192e71c8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17011","status":"Disconnected","lastStatusChange":"2019-10-17T21:13:21.7043179","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"47bf6a56-bf85-453c-90be-3517e843d584","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzl+rFPe2JH+o5Hf1Xd7olFpycqt9iuaq/jSOdAgHhq7GO8ZnEd2q/gA2qaIl+hMucVMpvbmMAY1ZEeE8+WRYyOQVW1QTP/gVSGb+xDnJJDzfxXbQ685dQlZGo28yQribdpRX4NQqoA7AN3tcw+6rqiznaXIv/RRmKNKm850E1yjgAHc3zvBpYRDp6zyv4og6vdoPUUguKmombzrNhrhH3poTI8alZBy99ByrI/pbgZfRYWwHJjOc1gHC4TUGfxnME04mXLaC5yuKVZDWpMRQSzWhS2YnJS1fmt4NCG5eYfiwVrMpk9sF+Mjjnvf+E/MYivbX+hby0z/SQo6DY59SRwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17012","name":"0.3.1910.17012","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6fb69dab-2019-4de9-abd3-aff89ebd7572","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17012","status":"Disconnected","lastStatusChange":"2019-10-17T21:23:21.9211586","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"6a91e809-cab6-4a82-ae90-1f01002a674e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9XjWox8sNVUchEGV/eKydXRAJjyo4dTgDBTBwfpJsehV/J9vSNJSOHxDqQ7/hHBxyeMpXYGT+WIRSUYHi6dvNW+m/AYvSNcX0QszSlQxfVF1f/KloXt8Qtt5GYUnjbs8+szsLGK7qO8gLloSo47yFzJL0Soj9+wongikWNvjvYpVgq6FR7J5sfCRIsryteE4xNvL7KyQGCrOamJ57l1y3spUXypfjj9qAMCT6oo21H9zombuwHEev2jXrAPnHt/ReAN7Rrx/O2yGpTl44lbMdVF8Wfj0rlsWG22xLw50jtEpoXpibH89pTjb5gWk4nvmDVBoR4Lq1FdEvtPv3NuXjwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467nuher_e2etest","name":"fv-az467nuher_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"04dcbfc2-0227-4a33-af41-dc95464b49ab","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20001","status":"Disconnected","lastStatusChange":"2019-09-20T16:27:49.6402475","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"481f4154-8e0d-4e2c-a61c-18859ffad15f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1rv98WYi+/PXBgxan6r8jsgDxoQZNmHETylfah24sBLEBqgQAua6gNbaTnqFnhobKMgv12OEEg2vMZ8Ci7mfB73xVnFF7+S9mGjHnuBBncotJWvg+fKfI9+odYRJoLfwoM8zrLXjnEZpD1F09KvoiwYXrJc2rK4vPMGOPxTiUbbYmlGQSUSVtJBjgtuxlcou5ismDBMUMhJ+m3emalmE1joEmPX3vPLfhPmGpCliSvbtNb8wVg/jnxJAOLJyxx/VD+79PPj81roqrRBocgrr3V0CcpUfD/VHuWuW030a4U7VkwWLYMgRdKROGkf4tpkZZzOd/75Bhp3CiZwIBxGcpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45894083_e2etest","name":"fv-az45894083_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"964e67df-1546-4678-bac7-eaec557b3b60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02005","status":"Disconnected","lastStatusChange":"2019-08-02T22:46:06.9817806","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"748af7fd-cf16-4d46-aa8f-2f41995985ba","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwSDYLx1yrpFH8Tg21ztjcZjWhdwHWaYI5Vs7w17e1rFGURseG/FRRCyPH9ATYYpIok8xJc2MuUKXIyr8n0mzm3M4m+47euHjb9JUAp5znEKVANOpAA2wQIYxvNJMUA9UCmYcWH+WEhR6A0KZT78cqpkKVnEEDNSqGJ/mCDbMqZqafmx8/F+CzGB0vvGvAY//fcFfji90BvBc5TQJDn6bb9YNo/lxVOa6WBVk3u7gxu2CLVxjegLiFCSlGYmF1qUWMPaWV19XeOaImYeLTPKCkbeCl0b9esR3DN5nj9u6aJE3S5rba5+tEgwICQzNKPjEJWqzy+HJpAtfUaicoz3PLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17013","name":"0.3.1910.17013","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5115513d-a5c7-4815-8ebb-5060916b1e7c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17013","status":"Disconnected","lastStatusChange":"2019-10-17T21:33:22.1655606","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e93877dd-06b1-474b-9560-b5f6b532cb30","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuHX2i61ZL4UsY7FPDlhzB6bNRT6k5BrQHSxp0DfyAyINhaYxogk/oTQixvhA5NTv3taedjBBI3h0ncqmwDi5LAfVGIxqfofVxWxNhxpuHJGqFeXjQfczBaIW70n+J0/5S9TrYz5ReL5bJJTITQJVs31/hm7AwvUz3vY+IcSaEzCHZRSucG64p0EdiBuaOjNoQlHHdBPBp52CcKVd9PtiUb4Gtn8h/HQkobGs6syhxqEsq+QsiQ/1THg5Zj/0YxZqaMhf1gC7Sht7ovkfzt38wfB4TBANaVTW+jNg5wmau19r0ILQ/VyXZiKJ8L8WneEyIwQ6JeQkjcnnQULloncxnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467qc9s1_e2etest","name":"fv-az467qc9s1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"60dfdd76-32a5-4369-a9cf-871ee8ff25f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17009","status":"Disconnected","lastStatusChange":"2019-10-17T21:08:21.5576995","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"fb0de7bb-92ab-4e00-92ea-68f850b3ab82","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAupGXkUjfvUnO6iEQSV7QuJyBilYALYDLzz6uxzbILLd0h6+1bOE6Cb9SeQFF5vlCg5VS8R2cxskN2MbFZqBDllSkchzFXQVSNfIiDiStQgPUgkkexZiTnOyJLmjJuaJ4XeWT/qDJRGl1qGUVgyRomfqZCvM4dv7fcpQSZMYklgUaj1OFoppS8dbwIvYLp4C0bSQpKhNVsnqUsAqmzRC3hdYQVJsPfIoeibPkHlTg0km6E5RlMagvUZ66EqNk2HzVfKqn/Q++fm1o1giXYVc9oaCT5SeNh50tz2Y3zDUbDCqo979omReC1asVLBJYEnqE/UzKIhFCb2REL5T3nE8lgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4589pvyk_e2etest","name":"fv-az4589pvyk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"575d39a1-e356-47c5-85c7-c17fd8bc2fd6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17008","status":"Disconnected","lastStatusChange":"2019-09-17T23:34:36.3348574","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"04030605-a5af-447c-a1a0-43a1fcf0bac9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzjPd82oVkecwswFsGShgnOhjt+ao2VMJY7GffGw1tlql9IDzQOo4SzOiPyG9geC1sEa0IHKtLlOpXqCEt2RhKJf0F14UaHgxGuSJbkmWwHNCCykyJYT/YNPLTT+2IAkIjK1YIGpgYK1/Rl/fq+hFMYfsk1cYZiFg6fi18RJN6qRHQ/oEcQI/1a3jTsL6U7f26y1IfkWtGm+mhzF1eOZhfIjj716ciH3QQ6VCWeCUmXywI3fdBLA/4pNGLyMFBG/RJOEekd0b7XaxhS1+Xt1j/e6F1XdEMq0D4iD7XkO+WA+/I5MOnIXO5pZkbAil79Fk772ILAxZywvS0FuXakqHtQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4589rlp3_e2etest","name":"fv-az4589rlp3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b0b8d86c-fc9e-4fd2-a5b2-afb1190d2832","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31002","status":"Disconnected","lastStatusChange":"2019-07-31T23:14:51.6374582","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"1c4b56da-69b6-4940-8937-a6ea716a19f5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtAKzgLEcKj8EBDpifGFXxsRdrf649pxEzcHnfnP4xdXoxexTtDnjgtJwZzHn90CgzAzOaUWmHXbWFCdpO82cR8SY8x6QsUSoM5ySX6fFoN/OFoglLdOMjnXXByCGnAPdtQQVtJxiD6p28Wa7mnRAvnqrUZZjp5g8PgAr4gW4giuReGz+irt1HiHkMj48f1rJK9IXYkmyk2nOpN5gMqS+x4rVi6J4bi2jKFe7FQz2qwkWVEqttxGtK2sG/IyARVlHoIL+0OiXlYIWA0LaxbhzI1vrpqOHU5VFEKN77SpBkrMyfzpI2WYBj4gbq3JSgpluILd8xNBZkEJbt4XZw2bS6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456s4wqd_e2etest","name":"fv-az456s4wqd_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e5e279b5-f52d-48ac-9c7c-e8cb7a8ba6da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25020","status":"Disconnected","lastStatusChange":"2019-07-26T00:20:23.7538887","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e1ce7a65-cba5-4e82-ac8c-516dde54977c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0dejKm2NMwkSYAXIjchivbAU2njQKlcqCAR0USxrcVuGvYm2d5l2gPu03o3CYYL64HEdh3kNVbmxkyakcQaJtJmIWl0LRcnn6lkboDGFU92JKoRm7XGmsdsA7f8lkH3KPzRifZCKqBHq9GdOSBtBFyFlPvv3HzyCkoTb4yNV/RepEkPe/mjlACLLeuhd5djsFT6jduXy27koeqe3kGbWcqSPdFudFrVUwfwl5dCRKpVW5beLPXaUDVQGNmRbymkP9rvQgTtaDjDw9qI3tvjLafTZVxZgIF83OO+Xo60qU/pK2p7as+uvFEHk78l44/98w+h9y0cl0U02p4PVuTMKwwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17014","name":"0.3.1910.17014","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7b4fddc8-ab18-4373-894f-1fdc265e6fdc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17014","status":"Disconnected","lastStatusChange":"2019-10-17T22:03:22.6334199","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"7fe64de5-6b49-48ab-9bcd-363a67393880","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzGtK/cX2qGNRDFjY/LovHfjHB4KbjYChzmZM0j9f3Snv3xHQ/ARmvWr67QDJaU/M8jKNe/57lMtfJZC5iPiwlhUb0ep1knBQrrx2cBqvpKA04BzjLIB313uzLNRdk0TG44LzvUY8r6oUj/n5muWw7E2SQxi8UhQKdaHF5izwipx3MvhXDbwBAU90NGdVgb9X08x/Boxr2GNrkRxUK4z57TdekFf4UhoKMaWKraw+M0GlXEqat96bPB1bmVv3xHFb+YZLFIM60dt0W8Mdhopi8VNXz0KPKKP0+NOqgxQ6vVF4jtR9xhy/3Z9gAVedaBjmloGVC90bKfc7FtliApFCbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467r9vm6_e2etest","name":"fv-az467r9vm6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"70a601f6-2135-4fac-a8b6-0557cecb7e47","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18008","status":"Disconnected","lastStatusChange":"2019-10-18T21:08:44.7136154","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"8241a857-0f5b-4852-8e02-226e5a0b1d9f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsvDpoAgRqNSw6HE62bQb3cO6QXqoQDG9MbU4echMOh8VN04HwPwwMNYsrseIKHyWBpmAMZ2SLvXmX/CoZE8VWP7PUQeLNxwYD0Iv734JjagMgdcNAURpISik4TW3eadFPvgVgR00V8pGFsERikTC6gDGtYoc0mJ5qbihTfZdJzgkwCtpFFLUuN6nhUqCcLmQxrh4muEAAF4mGOVFrBMcUBssk8i8jpJMUzgOow5BoKhFR1zAejpgI0ZGmiIZ7/BexUcFpLUGpbyfF7lvmJfVj0d9TjTGUwrRj6ZcMNJ9/jwyHLfZHUml04toyd4S38ioHSkPXbPyPqQPrLZoAgYXLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467reidp_e2etest","name":"fv-az467reidp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e4c582a3-494e-4d3f-84fb-1d460f6bfb75","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26028","status":"Disconnected","lastStatusChange":"2019-07-26T21:50:54.6112599","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"791efe43-55e9-4eac-8e1b-8036aadf6eb8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz0rRmZz32driHTAXn9BDpYL7q84/xn0m1U/SXyc2vJdSXd24z7W+GFdmqh6U9zRogYJv5NJ171VUAEskWYuuW55bDipXc9eIx4yRbJAC7IUZZmZDSZV/qUMfgkN9LXP93INoDwsR959fyWw/1bmqzvab+++OZWCyQM2TjMe/tQp7I5MkP4+WpJAaDvQGx53BMXXB1zVFFn8snykyaUxM6tDcMnJdCv0LebsLT6IscFhPGWJ3J20mrrRssjY65YQHaJ9cZ+9D2QsFdv5JQTRnpiSA78hYEJpGgdC7f1QmG374yb5OPwEorEMun4Vll3ZiazCC7r9hT+TKQXCxjb5diQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456sd4hx_e2etest","name":"fv-az456sd4hx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"11e0efc1-90f2-4890-95d9-09811728ad65","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22005","status":"Disconnected","lastStatusChange":"2019-08-22T23:26:23.5884354","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"9c937a7b-8364-4966-887a-8cf31b8c8179","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvFbQLowEd53Q3baECPGMRYPRYbrIosOCM7Cnhb7uT+lGAtiXZeYRl16mhtuhfvSpGJZIOkwDoTkLd54h9PVoY1GDu6g4JIibuVg/n7XdyeBuzixKyRJ66f0/w/cfyQNxRcNW8LLEc49YfInltAb9D23YwsPZf89FYolD1px1EwBcr5sBLUCSx9Vihav3Um6VVOnaHZ4HQ7/b1gkShdRdxN0KX0gIXoUjfAn7EGQnTLyLYU9DAWkqck49v7/PdaGI4ZU+ffrJpiYoantp9l9yRdtDfn3B9pR53MHiNJGvOKq/Gat4zK0wjkvVtYHV35gEwTB2nELKnhstrZLV3lLajQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467uj8hm_e2etest","name":"fv-az467uj8hm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3a92be97-1838-41c2-8a70-5f3d234e4e77","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.24006","status":"Disconnected","lastStatusChange":"2019-09-24T21:23:55.0426788","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"921692c5-d41a-4780-9ef8-7486a863375d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1Lrxded2WcL94W4cF6dPUgDOGFRUg+u3MkH13V9dqkUW8mssgPmaLVHcG8QvUSNt6HGj+QnINTTy4qhP6SVcyyslSFYwy2BU+pWfiVBg2rtjsTvbmjmA2V5wr4C8EaPUywtemFxBCuYHs/5QK/UTC7OHnA/j7tL7i9IdljKglk7f0x2ipR1b+orzf/73PGBCEljtuLXumgxokLCH5slr0PCFFeZMig36CRnbAq0/FvdZXOhLxpiD9oLuYGDD/NtnuYb227n2HEsyyV6MzYNl9aUoW/45ZIAazdj0zmVV/XhfAkzks7bd7tFPhoZH4NGjYQ3L7lMgmkkX+2idboiMZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467uvhl1_e2etest","name":"fv-az467uvhl1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"badb7cbd-7b32-46e1-a621-3bd261f73a2a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25016","status":"Disconnected","lastStatusChange":"2019-07-25T21:51:35.5320666","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"f75066ba-603e-45f2-821d-6eff1d4562d6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3+LjCTzuQa/HDjz1nv8Qlxf7lJLwAsgiJvjaFs4xa8zz9qzICQxfrWRLpGNFUh0dBGdiSKdjWboUFpq1ElFOZQSlROg7AWNuGwM8eDKTTod4yFyIHMuaQ8JgmDHpnTTmoO3L2XzK14uTfI8yTxMqdqRZX0v2JIQZm7H0FjJ7ecftXueozFBsK0xAAJYlyugqpbSuqbNh88RkBmrEVlcPH9VgRiZTqJGy4PNXiEscIDDxjiUhTGHrgQep4ZAJqQ0tN9AUIy/Jjf4qd9SG0nX3ERU1z1g9E7IOhQIMUvweQMoP6SkkUfjz+GWDNA0ecOHbAIriuWF0bWn5a3msaerngwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456slfne_e2etest","name":"fv-az456slfne_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3f901a7-d43d-4ef4-8996-ce45b226f11f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09002","status":"Disconnected","lastStatusChange":"2019-10-09T01:50:26.5038926","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"ae9a5123-a99a-4d7a-bc16-e32a66e1b2a9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAz/TAmGiDjkTi+3kL5Fqa38uATJn6VUawD2/7DiOztOibTB4zp2Ad+10X4tgWJqBU2cJSh3p68OpYfbGGA9OPOyzMt7+otiEFMA/g4N6ugT3EPGujIEtIeMXwX/MtRjrwdahSZZtSwM007/zfhuUQdRLGSavkYbk9220HAGXu+q4FV3hy50F7Ji+nT+dGvRguy/ejKLTvw6evpeUYFsnPUVX8nBtJeOtZSBjq1x8wNNRqwVGo2dfnwgHt1l+p4MEcmSWuPyntVx5YXfqoyDjCAkRrBrv0Q9T0HRYAiC0lN5q99JB/mP/7WYLInfugF9i2N1yoF/kWnf3JMIgMSA35EQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.17015","name":"0.3.1910.17015","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8b36abdb-eb72-4a08-bf64-d34bab050b26","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17015","status":"Disconnected","lastStatusChange":"2019-10-17T23:03:23.1174752","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"fcec7c76-19b4-4bc7-bd4a-fac245f32970","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqm9KHZRhthIMeU+x2zY3gggUftynQlDmAXXUtd/lpHlUilt2Lrs/tzvNJAOmuzJfbmSZR3TsfN5L4vCc1wkMb9RK1SMTNV+u4dwi/KfE2wtXGiS+7gunl2hwvPM6E+BYW+xNdqGlK6HA/SQkPe42xaGsYZ2JubFZJnLRRprm1JCofbkzUBT1I5X2KEcTsK5JvzclckIR/YHKl7qDRbaFK+nNumMz5SBBqeJCzZhwbqglRO1jUBTMyA7QNEXLvk4ybTM7Jw/PkE9k9hCG5L7h9dFHsQah5GXL5tQ1MUWCf2HCu6CumomM80nBbixADHrrQYC75ufQGGuOZ9MBNMzyiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467vdro5_e2etest","name":"fv-az467vdro5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8d8330f0-15a0-4571-841b-b7f8285dacda","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18007","status":"Disconnected","lastStatusChange":"2019-10-18T20:13:44.2368488","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"114b49e7-2eba-4a31-a9e7-9d8dd0e77771","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxHdXyJJhZ9/MaoXOgkDY6/dbVaQCyDEgDUg3uDdavrQyLwqSqEdkO7s/s4eeZBFs5FsACEoMCa6JHh5+wxaEinqPXJn7Efkyz5aSfdjRKqCslQNjtga2NzUUbfR8Le8ySyWOOvQ+HdyOSIi65iFbKE/n8+ywWz+SmMacRli3ol9ABEIg5ts+2z8EZ9YTmP4C2FUyiTByZDinuH/k9v+0xZ1KIRXG8Z1qJ7uaFP9shfZ8NSTglAzCWO2qGxksEHQ2vntxnHPR37pt2YAmHSf7Fg+uVCX7FqZd71P4Lny/myU9NBOaD/ReGcN1jyQwrXP2PKh9AHrIp07wjT6IOVmpawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467viagf_e2etest","name":"fv-az467viagf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"815d54e2-0b77-4a13-a1da-9dd13132024b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20003","status":"Disconnected","lastStatusChange":"2019-09-20T18:37:50.6256119","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"1577b241-721c-4ffb-9217-eb3a7934d6e0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2/ERM1gDEiy4JDcf6F1SvyOJ8QDd4ERMdrKXe41IdjGNORwowHddlj1E5kjZYKxOqnSYtUpXHSWhoJmuwWQ5+WrPP0Ighaoyf1tzaOU6QwZbmf7dKplSAZkZ36iT8Pk4HZ2A1UB1dLQZ3ixjDc4peHs/PcaAryBAHp/bwf1LzCKrfRZZ5g2hJdwBmAf5R+58QybS7jH3mgehrz1DzxQEwdObxfKmPZ7gCCUSuWE3uf+PE5Z9tjEvBVzxazHQTVagR7vpvwVGT8xJ0N0P/fhXdPKoMOPynwGkhOmfGQvIZJ2Y01c1dsf28RFxJ2l3Q08kLleOZNgvHcvDCIZWyRPNrwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18001","name":"0.3.1910.18001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0d04bc43-dad5-41b8-b4a1-45fbcdacb3e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18001","status":"Disconnected","lastStatusChange":"2019-10-18T16:43:42.2692093","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"8d05429b-6567-4d46-a13f-687a19b84889","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv5Pz38Ab/veWx+mhS7jEhnyVSDS1Dc+UWXwpiJX8ou1VC/4QZct5uXYPZFd58+MsC11V687NKRXpV/NlLSPFz73c5ekZBm26KQURmfWefiRpCQVCynE2N1D9A8onQwHXWiX+3VKY8w1LYgTb8FxFq5/+V336Y9jGlpfPvDg6hDmUcbaIj0Lt6m3WU7bWURZDI2mhlvbQuSvln3iK+IniM8d11HNwv3T6edW/zxdW/Mg4zHTYA6bG7ztAY2sA0dmI7cesSreOVsQbOfLFuIv/sM/O+WY3jrb7JBKaRfxD8KUr4M/6CTwiafG/GMr7Ax9tsd8Iw3lzth6eiJXR+vkEQQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458acxvn_e2etest","name":"fv-az458acxvn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c7a643ac-22ad-4747-892f-73bcdc201a5a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24011","status":"Disconnected","lastStatusChange":"2019-07-24T22:25:36.2145845","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"47b1b2dc-49ec-4d64-9219-c31941fa02b5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsPavievMw/IkvW74FQIF4MhiXclzYVBshNmIsdL70djpDDrpjSmweOmqRfan6E57qTqt6Qli4I8dli04kHgQHyVP6JYOcdSmU1W8ilSu//X9CaAtzYiw6stgPAXgjQwaNnzkSAToKmi7LyFIVK/C76sYzaT/51u7MPgHLjVbwZxxNU+sb927sVCD+2L6R662fSGKICLVEcFixmqXnMgzRekzaGsWq5maHO4+fkQ0+a3YRRNpJMRRF9NnDrIuhtL9yxB2+P03eVKgiR+f0e6bW+psAJnz4oaXC8i1Ty4GLXBup+6KmQjFD78YyZVT0FA5t4jGsrH0n3PRFFIFY9iyCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467vyl43_e2etest","name":"fv-az467vyl43_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bf9d6800-a4a2-4570-b39b-26a772c20037","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17004","status":"Disconnected","lastStatusChange":"2019-10-17T16:48:18.605327","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"003a6a83-1177-4707-b3a6-e4d82248a865","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAssIg9DmJaxBU4xvgcuQQC23naYsLeiH8QOiPEKQWnbEN47tJeAwb1mY+5UZNDlf4RCytoMDeUDftPtsM9VVu3lw9ZCsljLryXQhGwwocOLep9p7/ObIY0/raEPyO8Zc2U8JCyqAwVvm2nQhlgQlSc1Yv0TSQESxYjrvJ+6va0yc/QaI9Ys1sTpJqoJzAKcF2j5TU7dijl2SdN4NXiWCFqNi11agsZa/R27XXGkXsTIJSUWaD/DT33wdJxxc6TSSIeov21E+Z0SqMlFLeyj42AxGqcS5yLxs+BRsF+GFQ33NMGCyZ68CxawS7Te1/MiVyTR9e/FaZpqqV1++TpVIXZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467x18z4_e2etest","name":"fv-az467x18z4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"88baefc9-5dd0-472a-a66f-3d65544ad41b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.13003","status":"Disconnected","lastStatusChange":"2019-08-13T18:02:07.1552677","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"49ec36f5-db99-45ae-ae53-0f797718e398","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4vndD5op0nBQTP/bhvtKkBNmrxMsVJnrsWGr6DU7FpfpI0h/jqkCV1JgGelUj5Crv3T+90ctmjOcie0rspWBtQ3gDsyO23Yp4awgusOttVSdfcTwiXQgUqFGCSbZhRU6r9jpza59GDKoDCnTL+dB2NoUfB8/SOAOeeT7wHw58tTCAFEk2i4acj6b8QUFYVmuBg/Fy3atZOisplPseHLE/Nenwep1qjAmjsFch4NKRrucQ7MfOI+kxr6AQNHdZzf92Orc5PjEMglCjlCcdPNzq1qNh0P2lU03ONU7JLMRA5hjoCxkIILEqSoPzp1oItss6z2FPhmZmafYgsrV4mb+FQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18002","name":"0.3.1910.18002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b8ed44f-bf8b-463a-99ee-64009c8ea0db","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18002","status":"Disconnected","lastStatusChange":"2019-10-18T16:58:42.5860588","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"ea49163a-1b82-4d8e-9814-0b409bf56484","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoJckfHWyJx/uFwzwAI3s6OdH5iELcZEhio7eATwFqQBqfdJvxB95jY3kzGF9h34gpXspa9VYNPQsMqNQNSqqbg1wY88rXp9tnGPPdXtPg+2WGEIfKUzygf48Ifp+KF3B9KFmlM07nH7YZO5kEepWqXgFgHnkXlmiPucKn0xKJv4yq/Jn54Bru/VZSSKMO4phuY6moZ84QYeatKPnClJkjl+NHQu1ug01r0lpz5zuWNsNTASIx3tHkilh089hz1EWAVuk+DKKXP8GxJeV8IToBmJjm1lg8RPRiQmwATYGkdUA3JJEOl7Fr1bf5HTOeO2m3Zc+n8I+dHUDN7Z0OoynjQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568cmus_e2etest","name":"fv-az4568cmus_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5e290fe4-b133-4468-9662-acb69fce28af","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20004","status":"Disconnected","lastStatusChange":"2019-09-20T18:37:50.6256119","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"359cc45d-a755-4d84-8e68-0cf4f3bdf138","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA46s3TUscop+XAykveClqHLHjW6Prd+uw1k4B/tyxxZDZqxhIm7J6QGsoeH16x/tfNWP1UbLqrz80s2Z+TV7g4COAaj54RjbwnR46nH/v0ClWWQ58hAmgitdwkSaz+BBIPh6Lco2xwvCMPQ/k7vG6eJR/rpD8WtXK82GmCP59WzUQGj2ehX8z5pSv7lO4PFkyJZkXJJa8CVBdo5bXSQR3N9WqBYI6/mCEUX4+nhSj8g0z5gCfF6TC2WdVkAzlOObJM+bP1gans83pxQzJLX1pNG69B5m1G0k8mdiHuiaP9gBoelfO/EmUQU7DzOcXZ1qj4zyIGHLENnpcbERfZLIh/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467y051c_e2etest","name":"fv-az467y051c_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"508b5c3b-79b7-4004-a712-c8a43d8528b8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.11002","status":"Disconnected","lastStatusChange":"2019-09-11T17:20:53.0178146","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"121f2ae8-b2c5-47a2-a2b9-f4bd0b3dc3ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsXzh/LkvAVEnRL+Wlaopu/yhbaz/aStvzZhzkwuIqH4eZnd6jQ3agifPEqWpFwgOe7jgM6dwjFHedbdXVDtxh3OCpWgN7yh34s/LiuSzqFSPMo8vCQbVKF29p6tkq+1WauKQt0SPvnL2NsLE/CWRmvXnJknFpe6XqU8gGBbUwhvxxIbza/tWWQkz8MSLlMuJDoUmVPYJHHP50jwdLgNwg0hwLp7LhVZR57K/f0J3tw70aMI8y7QKIowMwqEwLfOGSaVdRMyxVmVMoVTABf3nay4ajHPD2e099FnJ1svEnq6x5+RBA0DeEJzv0+ce8AFTaAs68Id5bPWRmXJ/gczbzQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568f75j_e2etest","name":"fv-az4568f75j_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e261e464-75c2-4e00-83d2-421bacc69e7d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.17001","status":"Disconnected","lastStatusChange":"2019-08-17T01:31:14.2380189","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"8847b2bf-9ee8-4373-9bcb-5834a028db91","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtgTwDC6q3m3diFAXI9T3aR2N1rQ/D7uctq7GV5Tbin7diIFdfiEH9E7ZH95dfovobcyK5YvOiNx8Ts8CfLEAURTjCbZS6gQQum+FSbMSJR4O+ZzOsq05+2B6Z2dqceC8u1KF5O0a+xxKOLbLoHjYa84JxLmUt0BRUMGcuQckoFtpbogeBsmPnosY5aHHBe9ThNCzNI0/v2SF6LJWgkcz1eyvuHLMihzGGEU9blOS0gR+yyfmnjciVg5g9c4TNpp62LIGn1+drvXIfXkQ90ubyr2DZwiarj76ei8Aj5IuPNwweVzIhxK01wnWD1NrEjMWlSFGLmdmKTYCkxFSkTFkqQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467y4pqv_e2etest","name":"fv-az467y4pqv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c220483c-9ba8-45c0-b6c3-39504982ad71","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.30001","status":"Disconnected","lastStatusChange":"2019-07-30T17:53:08.4423403","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"8753da1a-d6f9-44b4-95ab-ac2b7e70b047","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwpWeic1U9jiChyMeWduY7IGkGe66jyWKnHcVJQgEStWPRRcLK2M71S5Q8T5OwEbogIqVQWRQkQMyS2B1BsGmpLGTWmetowmz9RneKF+kWrA34Uu8FFVc4ryrBBxYdunkKu+GohLAaXe7Lu35Dx4YYeWvSziHmXUEcj/IJ+7o9kttisb8MUNcn6vxkybRTFRsuJtuVfKIkbL4cCUQ/R4OEsUlXxEOW5ySnLaMEdOiBhJUSSb9xW/mcF69XPuGSsMhvX51wRhMk9OMOaPrzLPdQgyOBt/wbNgrLDvbFSW76n7+xJRjG3Cp2qDPL49IsFykqb3jxGX8RM+Bz+aKrK/uzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568ipta_e2etest","name":"fv-az4568ipta_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"78402fe3-ca6b-452e-8334-b0f724be1970","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31001","status":"Disconnected","lastStatusChange":"2019-07-31T23:04:51.3936979","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d21a45e6-398e-4b29-b56a-2fe80aed61d8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5uRKZD26qqipPnIuFF+HSAn3j3YHbdlkTYMFqidZd1MUsORMvDPNeNEgeqUZWr0RZtyD7MZevhwJlpNryPIjCE03qqAeqafUz1OJ2i1A9THE+zR592+unNiL5kRYI5J/7jAohfjzpbumO95ix0MZuIVKoysbBVtMTM4XdMY9Qvfedii1EmeyCt1WFWnNVUWh41feTlw9hFHYMJHy796ttkdmL6FllK4ffabxBCOFQjWNjGK8MAXDZPv3uExFHF9Yj8igqEuBsz05LdtMwtB4Lkf63yMiBF0YSgXdZL3xlaMpfoa9/7RDEPf/x7gnJhSzJ08byG9ZTiXjcWwzSS4fFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458aehk2_e2etest","name":"fv-az458aehk2_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ea08a735-276e-4243-a62a-1b883cd0610b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.10002","status":"Disconnected","lastStatusChange":"2019-10-10T18:55:40.7650266","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"aa763409-38d0-43d0-97bb-7249c3e0d73d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyUxHSW17jcjnJuZ1/hvo7GawUOP99smP1JfIfpNq5JG6hpsah80BOApQgkuUPwxqnPjWJUVEStDSIjQKx6GAFd7pF+WcIL800WSZ908/Qrv+PMz/enNvIJGN5VizcWfiI+Gni6jDWogwTWx/ha+LnpiGXDdvTfwIPXsWt1eFXWqVuBbV5a0X8fmGl8Rz7AYL+JOfOwrYbvJ09ykjJ6cpGgAtxEkr4LdImYOmJtE5VUeUs9uLs1czcM8ex9j9rTA/pmjSbtdld2RiRhEq3PG7jXA8N0fR4tW3bsN733p8a0cqeCM4haR6fqNbkiS8U6yUVFapDgFoKBcrTx2wcHWYLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18003","name":"0.3.1910.18003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"be22935b-1329-4be0-9e79-4818df382fbc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18003","status":"Disconnected","lastStatusChange":"2019-10-18T16:48:42.3892479","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"1da6427a-8ffb-4cbc-8b3f-909b98b5c658","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArP1S6Wu4thL+pGvfPYPRQ/pc3sYk9faxcsU7oCkd5nvaoCTcpg3Xpy6frHDd8oZnLRI7121jmCG3OW6S5+8FTYG+Arz8a0/Nmyb1482xq3skKDl/5APqL/hlKq72rsJhDHru7D6oD6H1nKYjyz9LWkH00jvLsc/nxz0BZj7xDjEos32Is4X9VFk6ZxKOkKnAFIfpxoztKQwFBNahw5Cmj+C53C8m9IXkw3+WYE+Ik8MkMD9e0cEoR7/Sq6Nba04vqoHI+gDyx8p48z+SNrxIg7waZJGzqFRG2bUg51CIiI75NqHGCVNyhNkIZfZz/535Jq417oJOKLxrEj1TWbGZ6wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568urme_e2etest","name":"fv-az4568urme_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"159c70eb-05f9-47bc-8439-a38c4252a5a1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13002","status":"Disconnected","lastStatusChange":"2019-09-13T22:19:37.2612615","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"34d98963-278e-4562-a790-5c4bae2a75bc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyV2/f4RM0iLhM2AhQOLUgyupAuClLXfY/U9jzTEDq8ZvjNAKAbXnxwk4dEfEYtHEH2n4YG7KrlFewe1oT25JJ2QwdUOoinfj7GD32JaRike7dN+gOlNLd8kPpA5TeRgxakZEqg5qBE4hss3wt65T5zV9U/l4qKki/BjlMe1KmrR1HTq1Fkd46Zd/o1OiUPaAj75sRvejriLuSq5d3W8o3Cum0k2s+9zioQL6k+Cle0z3EWfvGS3yDJ15KDu8JaVrCnxME09X+i9EMvZ8XgiPIfP/AMX4101R3JAR4XMfW1Ej3rLCVw/q9V7gTmPGAPPORW+esupZVmk5QRk2I5nmkwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467z9udm_e2etest","name":"fv-az467z9udm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"af834227-7c8e-4592-8d33-f76cc3315ac8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.20003","status":"Disconnected","lastStatusChange":"2019-08-20T22:11:46.6522646","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"7ae026be-39c3-49c0-9044-8410877d4e3a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvZZfQWHrt4BmczgghUt7wJ7Z1oV8/wGljwCzuul0hPVab7Y4TDCV7kUu5UepIWWgW2HGKi+X9xoKPx0jTiSn6fRfXtpR7fiQYLVojMvyzysvjk1bMSUoQMgXQILSmqrHsFej+073tfLFbQNLk8eor8wFF/vYCCp5H0TfJWsT0Kg2TC0KKqVEf9Z6k7wGQAmg0EXJg+OWSEEUhGgO/J2wb5DLxsIFL1MnaVTu3Q2dZYXGpKvHLIDs45QJIShd9dEIEXnGysX0HM+Q0pBozaL/DHuYdFc3y8HdPN3oRNq69I0YfV4u4FGumcp2LDBYedI8lbDXGuFJ2D/iaIQQmeaJpQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18004","name":"0.3.1910.18004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a51f0789-3f1d-4ad3-90b4-3b4c2d8eb7f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18004","status":"Disconnected","lastStatusChange":"2019-10-18T17:08:42.7692846","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"5c41e0ac-b659-4d13-99ae-9f964c2768a6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0Q4O7RDgjk0cZvQmACpg0+psJ6GQfmEChG/Ws+DmE5CvYJULW23ZPRaeFyOmlHE40YusOPsTpLA4bHzOJ9KT7IOVGKiZGa7wJ02zJb0ZLVhzpVBwOM8HLLP48IsaEtsIEAghj0SDhSsIzn5IzhytIBoFBIs5TdAz4sY9SZO/lko6jGaTW/7yvtHsGOTIZ1YEnEZR/YJI/lT8rXDjb3flpgTKX5V2Xabh1KbTtmfJvLnCrcPYPY3LJmPidDPZOuOkq1ZJMR3+F+iLwqXZs1AsVEBO/Yt8yjit33n4Qi1YX0uhElSnqYe4qvL0MgVL0O5Kg8SC2MOFmfrV4mPc3w8IiwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467zejld_e2etest","name":"fv-az467zejld_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9a5474eb-ffe7-47fe-9646-e3ebf8623cfc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24004","status":"Disconnected","lastStatusChange":"2019-10-24T22:10:51.2650559","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"73f2d5ad-5f5f-48d1-a3c7-25f4931b9585","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwbI9S4TA2FRqL6poRZB7C8N/APqzSUuvnWHZ7BfEE0QYzxsqkoG6WUmCdV5+TmnPfDFzoDrloAgq5WLi9ZUSQhsSi4/gXcABD5dHFrpytQyec8XqeKJ32JIJYqwhZYwMnVp891s0QY4htANKY1tHAzfHocF9YEDFfPaPtggrOLur7UGE8sY2fM0cF80z68xUtdHvifX8vQT/jmklZEfq1p1sYDfN9m5TloBzxMZ1Nm1vcMZeGvw1oR9Hiy31F4aYr6MW0WHt59ulg0U4IQPNP4PkJtxlUJc1+x3FEs5nV62xjlbOIJVy8rVMsVPL9NLRSLnBsWIkv2exZkoKPxiFJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az467zvdwh_e2etest","name":"fv-az467zvdwh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c4311811-ba4d-4f5e-b99a-b2db561ecf90","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16006","status":"Disconnected","lastStatusChange":"2019-09-16T18:05:01.6755118","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"87e9bf81-2a31-4cd2-949c-937a63d0de3c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvpF+ryWuCPcBku/2LIS9BMiJKZ7VYcE52TcTs1hkxWalR4LbUEXY3iBaLFhKjDP1NhNBS0Q1GSuEMP+JArHVQwPDWS4nr+rQeu3WWYtCb6yX9luc043jiGq292q1fKxlKknAfx4LRgP3/Sf81sq4xUeTXpTHdP1JfEss7iyfSonZJhk5NQr1lheHoV+hrVcjylZupnbNf3EzOnQfnWiuRo99ozwBQNtjBG9URIDjMW9vr4ETxQN4hnFDQg4yJviTso0eosL7eF1ZBNvv2SMhF8iVGpm6DLfEfLj+mdBickFpLF8RZN5aeDCowjuBgI/HQmRZj//2WNn3DLRmpwajNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18007","name":"0.3.1910.18007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"56b59ce0-897a-49e2-a08b-1ac8c4b94377","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18007","status":"Disconnected","lastStatusChange":"2019-10-18T18:53:43.5370511","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"8995cb71-f354-43e1-b56c-547d1ed1e98e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5x3od/qlDnsV5qOBkb5zyBQqKhy+/KilvR7ziV3tBJYxKyxk9OZF/2ziW3YN4dpStpvNOZlCanftXaT9olMdQiyGp6iCs5ZulZyZOIt4J+9k2h+CPgeSTBy7AOVL1NSJ0BkuhWO/YS1EtYogPCPc5vX688muySVEloOSWsJt5CoIVmE1BcRoycz3pkDKnQakwD6drvZB3Oj3njqRZXIyLhGYqCkKX7SiBuUcCz3+FiQJmuaiIKJKuy8YTtLjFlNIzVxMOSUP3ned9kTvEWxLwN7v3rjvAVRLj4zpgynzNTMwUwh5Kht0y/oPIqjrpe9CcsRSYdS9XLl5w4q8XJ0+WQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458aqkv6_e2etest","name":"fv-az458aqkv6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4052f6e0-6ef7-410c-8a12-c23cf1ec333f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12001","status":"Disconnected","lastStatusChange":"2019-08-12T18:26:53.6065721","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"f6dc264c-c900-4aee-a244-747b3b23e64a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq3xvNXZrJfEsdh3chKZYWVBFhaTTO1yAKFlsQ2hVzkaxOtlcO2RVii6LF6NE2Gn6OtAZSEhIQEwgSXONA5eI7fDX4Tc0o3+BAd88bITFLPdSd62E/nccBCK3qR2w9MRLIbM6Rk/ZLl78+jRvJDUrt0p0v97++82NVN254TI/rLOO/orNuWW+9/jc5bG6ACAJWCav7kSNo9mEtW54bNd7bJ3HP5hHsNmuxRgmjO7jLrtOrj/NWj7IMH+kDdgBZughMaHm3r8trTkGEwKhwtlESer3TwCjD7TAY9r/gu1MNrBsfvQESSH+1kZmTiK9tZJGKav4R49W8TNgUiWum6rgZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az470c7lgv_e2etest","name":"fv-az470c7lgv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e8391622-5139-4972-85bf-8f947038b7b6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25014","status":"Disconnected","lastStatusChange":"2019-07-25T21:01:33.557164","errorDetails":[],"displayName":"fv-az470","machineFqdn":"fv-az470","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az470"},"vmId":"cff81044-bfc4-42e4-823e-4c6f04c371ab","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuzszztfrrTvQmy/ufzSX2fO4DKxTNqqRcbHWkijvxCWUPdYfNXnxgL2Ixiym1BSTIOcAgeXaLBi0a7laDCIj9WFBjk8NOB2xEeaPtLfrjSfED+qD9yBc4Zmv1dPda739gQJA+7D0cOUGkmcPjdmBH3N58JWLzPTUzwrcDBdj/hHGA6NEiNFdUeORrljGal7pGuofKLBHvviIsFiR/bdki/gC0DkflD9BYQpH0BMrcKqZanM4ikLSwZvBf9aKwMmavPEgESHY/8229eP2jlea4iWsAhV+0ED1yeZpmhenTKwXJMnVMja99biFvW7Ttu0BPsAfAmQPjfa61hu7Gx8E7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458bi9xr_e2etest","name":"fv-az458bi9xr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"485de08b-747c-48f5-b7d9-826125c73b40","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02004","status":"Disconnected","lastStatusChange":"2019-08-02T21:56:05.661609","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"c71dbaa0-b50c-47df-af3f-99c1035563be","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwXmMklghLgsJPeG1aYnRSvyH01kiIyTs9hUfN0/MHwvMpS15bROmFCE1l80jN7NB6VwpY6aqeU9/7e5TB2NyKzIYvEQeL7N9/ikPCuc5fg19y5tweT/UXWntkl+xpAf76moCDsn3loMEKk0cEhUEsyR+H7mfOdrqEICbEN3Rei8zh5afDa8qFRuLBD75u/M4cSgPZOi84w2+MtCUlOqRwyK92HaEo+nch3jsTUTR9NATeNUOKcWtOy5gItZok/kX1+2AOvWTA9ZDo37+g7axG/t2yGE+aoG3UMWqqbIFCyJPjoJ8yLiB152xeXI1QhXH5zrqMffSW2KzB1V4nf1GfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458c9056_e2etest","name":"fv-az458c9056_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ddd9399-437f-4f67-9ca1-8d2421145b19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.09001","status":"Disconnected","lastStatusChange":"2019-10-09T01:15:26.2361944","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"da950de0-0b0e-4af4-bcb4-b781b3401f4d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7T4AOLUiEu6nSKmm6OtInzMfMYOwc4BuXPxI2BPEb+4wTovRyvLxP8+xL+C33hYRHmyvxSmiqqLjcoLXfYvKWN4FNtL9qOcP4m/yeonFMgsh9AwZFgd7/tDRSjJYjJCNDKlAk/Rh+orTTyFZSfqWdcwnvVYBaZXSPinJuH6f8YY0VqsXPChdtnJuXvwc5FnlqJPRIf1vi/YdvNnx07POkFsYQoAaucCY5r5ND/J0pXS1ciLf+BhuY8fct1HQ98BnOOE+RtcbC5mawlhHZ4nLlDjGqFbPpYLUhYN5Rqui19cUs3Td7SieVkmzcaM5O7DO7ibvjRxwNvdbaNX5/SR3uQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18008","name":"0.3.1910.18008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"83aa0558-d4f5-4eb7-98a0-a2df40d226a9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18008","status":"Disconnected","lastStatusChange":"2019-10-18T20:08:44.0941667","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"a93ea107-f0f4-4ee1-b592-5244825608ff","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAmNDS9UvFjEfDZICNgEOKLpmooZHVmEL5nYzdixVPaaqDxTushyfnfE/AprPmZ1Ct1D6DKUnOnqXNC/tvC/KiuicLw6cPm/CV+fBQzuvHlGDrHVFkfdZ4er3RnFz1k/9AREOJ2wX6QxZAoBxWjLN9H18pm+qO/w8nyxTxBrfwApZmhzjBVdepSIzR4IJQffB5apZkobXfLdqR0S+i6RyOfqLvXQa3mXMmlcYh9PWTnVN9/3zZsThhw89CjUdvia9UyqGTAcJ6AzQyrgsviqQrGcXWozKkWIrtd82KgoEQvwWos4eofhdRzFIAOsqZ+vvPUF+E/5GeVzOoMpEUtFXAawIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az473mqa19_e2etest","name":"fv-az473mqa19_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c9b8d10f-d424-4fe7-a37c-567dc8bc5388","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21008","status":"Disconnected","lastStatusChange":"2019-10-21T21:29:24.1157146","errorDetails":[],"displayName":"fv-az473","machineFqdn":"fv-az473","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az473"},"vmId":"78db5fb6-7a1d-46ae-bbb1-efcb6b644d33","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAue1Na6DxjrRs0dmtiKPA1EeUbaYO0bYsK1FcOMUBig7kL9innFeXcf4xqd4fFzU+3Rhq0trceLrmnYlRSqW4cWwpNuElKj8YL67GJ8hG0d/D3akfpnuNo8Sdy/H/RvWttQhLKb2Z1DI1MaIiXRSe0L1FMXKi0WPKncWPmIlNV6i+5q6M5EDpvC49prHAaJq32hDt58Wm8hlucexg6HpzHEbGLAGatdzT0yhGu/XFr7Z+N0FClvRGr9aFI5PqwPswQEYewDUipIZlYY5eUQ9u6m1T/2Ai1yFRoEO8qIMsEfYfzJj6Jlumt80XOAzpeoOKiyJIrI5frdz3NDQzH6DI7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az49629ztb_e2etest","name":"fv-az49629ztb_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"702fc318-b579-4bad-9252-86a143194d89","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24006","status":"Disconnected","lastStatusChange":"2019-07-24T19:50:35.1357724","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"2c72dbcd-5e1c-4f9e-949c-7879a4f3d91a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv5QEF1jRaxxdQdN1kvVquxPGloF9FkQBN7M85SZIgpF6zTJQVXtiXEAmpQyeuCvuHuedLdPukbfATAVQIfUf6EulQcCt24NeHzjnmk/v+7Ctit1iJ20WRYrHuuaSjWGbeY53fZcNI0OrMCXfzivAbZgI1//m/N/1raLYxnFi4au3vsWMHfFAOQy4Hf3so6YQkDBmAFcz7bCZtfXHgJKu8IZFGnZffaT4wf1UDMLgrF6ogVaDQrwC5sVMPKBkLovoz6vJc+Ts/egyCeGPt1VvIWNN5zcZxeYJuHCfxNnxFaYxxLhg81bPbA08BxZc78u+q2/JISihmdMa91hpHbi51QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458crzmq_e2etest","name":"fv-az458crzmq_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3ac8841f-6195-442c-81bb-a3b12ac1191f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"adf19b2c-53ca-4dc1-a5b3-0b400208dc2b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxkF2vBychjHkXb8zrdC7L4EOYhz2sNXy1Mh86PEzViiKPaHTIoZKZXyUf9OhbGPKkzFRgQhEmec2r1eLaApkarNBs4cce+M0uhyr0z6fmhEFpJ9xc9l7KX2C+Q0z/XIviFhDC/ggLC3sZNF+eTQfB1U10S7gPiaVBA+DjW6oU7gozrQ8qieR55+eWfWdcTuJ4xcobIdxz2A/eCnMLowBtnfVAtmO5NKZLnP2WDm2OwHdmElgpQKfMPLIStzsujyJpZJ5bLd2Ot79vXgUUstrXJlLAMl0dMwFfaeUWNxGgxlo08/UT9zT/N2wDgi0ah3YCl3Ma0BGMkftXs/8iyKakwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568w2bl_e2etest","name":"fv-az4568w2bl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d13e51e3-f8d4-46d7-9c82-fb6462489e06","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.10003","status":"Disconnected","lastStatusChange":"2019-09-10T22:27:55.9615849","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"918f6c7f-5289-4438-88c4-cc9204809950","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAui57X/3r/TXBH7KFrMWLcafjq+S0G2C2zTzRDrV8+fR+to2mD0tJ9e5W1eeXHIgUJ4j3crco/9zFs7ce+MnyBybFD8DqUihk2Hk/uGcLaa9AWdMFStbd7NFx7Jy/pXywXtJn2a2TWf9HNABwn7ffptADxmQ3F4DEHsBdPFO4GiOAQ+U1W4r2X/tkUkDG9/AFSS794V6nLVi6l8xNnzg2eOCzemASGMdY2Sie7XOyj4DI1XYGF6zruPbnVwanSmhaebNWdCV6TRTkFmd/w57iPBwZbcJGIXd9PToe0/VkgUdf+anCZdQoumuBoiGq0xX0WZ981Hz+E0ElZd735OUh9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18009","name":"0.3.1910.18009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a8dbcb14-e6ce-4b59-948d-117682d061ce","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18009","status":"Disconnected","lastStatusChange":"2019-10-18T21:08:44.7136154","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"7efc1eb0-cf44-44ec-b8aa-a10267c069f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA43YPgQ9AeBvd+Vpah6Grc2JJuGcQ8RI1txOkVqHa2nz5s5WLeoacBQzblqNC31OBRLJ97IBEwVs8it3WTYyg0NMx25N3H42GEpk5QjGq8yAKpyTu0xm/yVndYNDvrfbBL2K29O0veErvduzQn1h0UNhw6HjxA7mRlDPG3+W/ETujB5fIRj7NuCb2UB0cSH2yn61aNvwoH6OmtxMgk2X1+IlYVgUJoH5sDs681ywaqXfn3k8x8V4j/EGTDxDlVmYvLgkKKy6b1KTZVp/V5LpfUP0tZm4Y3cbQSfCXc+4LspvYWT65d6XikCSWftYO+8IpgC1OZA9Eit41HAT/OgMLFQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4568yo4w_e2etest","name":"fv-az4568yo4w_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cdaa704a-5948-4ba9-b7f1-440b8ce0ec09","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.12001","status":"Disconnected","lastStatusChange":"2019-08-12T18:35:27.8893752","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"d3ed2114-9ff8-4642-8a86-144bc038ab56","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2csmMADqgfDtDi5SbZn83Adgr0f0AdDfhs1uDYJzrN5cZNGZsdiJk4j/wMKS2MMY1ZPSb/hz878YXPZFWhKBojB1xQz2nYh8xAJ291SbyFFyuwa1Ws6k4zPeuxbC7JcTwVaLeZtVMJ8kRPGCePGgg0QElRSRDx3YzKA4N+9LDpM/bDiAOkWaI1EUQmvPMhOkTaUDnmJcBRQe9ixgwrwa1ESYCzradG2fee+xWZPd0n7hwO3iGCkKrF7tG1ybHg1gthidCtyahAobWbXuk7Lj7W8t4mMLFRZeC9AcZMKoWf0MV50hjbDiDWtQWrECE9TaGoYirZ2F22iONLTBgg4VTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458cyi47_e2etest","name":"fv-az458cyi47_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cae6fdb3-6b50-4761-8c18-eb4d62ea146b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21015","status":"Disconnected","lastStatusChange":"2019-08-22T00:21:16.0859123","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"8f15ce73-ba02-4670-9b1b-f4acdd6c9104","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs/BJ97tw6soRKdyK+F6NGvQZuR+sy4SorvopApk82lRDkI9+uL1MjUUISXNrPgnDjScf1COqmL5dL2IlH5VJWrTz8vPJmClO1Q5xsZT+ErzQ4jIR2n4Y1kN54b/7S5vVXX0F+Q3NKUjB+PQ5lw71bSGvWs/iaHEHg4YP5pxP198y4MW1a6gKx53DXeIShkwwwdWpf9zGaRCwgRKvHSEFYqJ+pqRhjfBgeoKDJBxBTd/DLCPDSUq+uwDOt4HsQ0H/hyx67GwQosSsKQMfgUrwZihjorLkR44Tg0DeeB5OOyB1JdrAIPWKzJYU5fMpQf3SuXnowmhU1J3LiOU7SApGCQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18010","name":"0.3.1910.18010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c8beac11-d445-41e4-9fee-3e369a285f95","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18010","status":"Disconnected","lastStatusChange":"2019-10-18T21:18:44.9216218","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"15123167-2568-4e0d-8ca6-cbeaf48ef177","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxbCDcrmaBMOjn40Rpk9JBicn0y46EVHPnepijho/TKTGrCOsglthMSwZR4dwxFRILEOwmmZ3TEdPzKEMh48FIxWzJmtsaAhmAH9c2X35f/IdkRFDDzFdLYVdIb8k6y97WDkHBmcxdDZ9ZLeS7XjuSOgTDUR0cPLq9xyZeXMNzKCL+Uz+ytMCbkAmNBKJcH9vSTUcfmioCSPGgzdNoET3SYXEQA4E59I/r69pIWV6eu3uhhlvVY3M3ZHzYxBEVoerAz6+YVv9iOY69TD4QVtsB9MzSWxRFUo/lUAn9xgbgDyYPB+iQNXtKzYu2NcKN1iJKlrI8rsdueObD3RoH8C3HwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4962uvcj_e2etest","name":"fv-az4962uvcj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ef5d1742-343f-4221-8a61-2d9857344a02","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24008","status":"Disconnected","lastStatusChange":"2019-07-24T20:55:35.5915399","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"5ba43978-d412-41b5-835c-f0944a904ef4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtNyWfVPgcfPI8w/S2HHtH8DIDWLOMESm54hsNjWi980eZs0yDLZf3j6ngnbZXVXfEJlLv2g7CbYTmZMOi0SDmAVRYyOe9cQkmz9U+FuNrr7JNZN4iK6XaHdqM5SY1X7TCtx4u9tvdE5P/EowYhsxXNu8/nKOUkOoahsrJSV4gQ/rRlNBiOJdHihDMiNPiTRxUo2JVo90S9fFWrd/yPL5eQo+QMP+qFmzOsu5WeduALZO6msPMCrdHHeQ5JAW9wINaAAZa8+3DKbbX5I6Mcy7S6kZTbh/fX0HBbdZkKENuSVz/ViGRDGEdqBNLhAOlw8ciEfeYyZJ0gvpRpRiEoE5GwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4963qkgi_e2etest","name":"fv-az4963qkgi_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"39b8dd4f-eae2-403b-8db6-bef21069d7a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.25008","status":"Disconnected","lastStatusChange":"2019-07-25T20:40:46.4470149","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az496"},"vmId":"8f0270e0-8744-4ad3-9f0a-2169a29bc218","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6cEx8BVIzTXE7ZTHPlslNl46KGyObRfg6fNmDqeU1zp/R+331d5B8ANDz0CukWEnEDB5ngwrWIp6xSV2yiURiBwceVkGFuuMTxMxPmK2Rt4ujPYigT4EtubczxTHk5L/z28smDqzTZh8Pl1I4lQX/VDMwpbxryM3eA4nuBPlLbMkBEU4r3TArjCdrDir+1JA8hzNuPH5HIJAgwxrraMwkHLOWjPFzbSZSwbUegXi3NzSA2J9txQTgtANtrUkcwmtotu1on0m0iJFYWRMuD0axxRmMweISp4s1ZS1EwNOtmG6hoedUyMs2tvqPChXKiZxpHQYyOqgGHfXjVwRJdQ2aQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4963wjkt_e2etest","name":"fv-az4963wjkt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3bcbaa29-0584-448b-ae01-fcbe5a2141c7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.22007","status":"Disconnected","lastStatusChange":"2019-07-22T22:55:20.9990808","errorDetails":[],"displayName":"fv-az496","machineFqdn":"fv-az496","osName":"linux","osVersion":"4.15.0-1047-azure","osProfile":{"computerName":"fv-az496"},"vmId":"23a18e04-64f2-460b-ba71-77b68072ab43","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvIw1mfsfCuHSEOsKforXPR3EPwUyNoVn6WyDEixhFVU+1dyHQ/rtzsf3qc0k3vb1NqYF5sQ60a6Vt0jn4ZmS41YDtETiulxPZfgSc9ScL/E2qPkzeTi3zFa7tLxzLQadzQavs2/Uv5ZAI47UNvMw7MWnVZ9rDtMmw4Hm+RRq7spWU2k5wLAZHBmBlnE6+lu2BniUcAgg8zVma4eVjZKgbVAZsdw6F519kX09rDVqBjEcBajn3SuDOlefJEGFA263bXEfBsYh5NNZDmstjVOJXHNZJiyT7+sF+IyHT3h+DKP+K0xXcWqlsLAy2jFHh70Vwj+SgCvlCDQH17NRdfOgJQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18011","name":"0.3.1910.18011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"122467a6-27d7-4082-b4af-9148c588b51f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18011","status":"Disconnected","lastStatusChange":"2019-10-18T21:43:45.1611942","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"75fe74e0-7503-4e5d-8e9c-1673137c1dad","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9Pdy1U14y3SOrRESVgpFyaOl13w2vlkxiUyRtioEKhrefpW+qMNObvD/W1UcgFoyzj14L8c+knE7jDCKbN7NV+2lx/iS8IE0yUdpYpE1bi6OoFVft54q1XxFGmfOj88Hpg1s1blHpEA2x+23YM4AAXcgL9x1E5BMZrCxPZBh5A+qHOiYCj48HsOlBQpy1EIsOUioKRjV2Mue1yf1pDU//2x2i+Q4aDiTATxWwSW1yByOn6bbwX2VeQoqpAdWhfy9NGzjcsdd7pujxnoklnRvVRrsPZA7NpUO5akTW6EkMJDJA6SPkAtoi7/HevWtSvsD5xhPoh4EbiWL4gzikFuTnQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.18012","name":"0.3.1910.18012","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b29d3b21-48a3-4ea0-a469-683c8718ccd8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18012","status":"Disconnected","lastStatusChange":"2019-10-18T21:48:45.2935538","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"ae467d3e-0cd2-4a1e-8a39-0bc12d837c5b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwdSyllTkLhJkoXy15Sk4mHz9e1gfJD4tymONy0ZuRLRW45xJcJ8DqFZNFoxi1dvgT9vbwmH+66UhuivYzm/MoTIVg4cat6Bpi8rO5mgP7oFoLIHbcYO41tZvPnAe2kVcYLuWAUjqKWQmPbCpZOp6+4wQSlX5rkeQXnZ9+lE+odYkptYNlOEFfLkNPagF6vLXa4zINNfRQhEaGRwANbGhLiuAwoEU71XO7AfPzVHxl5M9CE8OlL81BUYLeKbv45vN6YJa56Xvx/YsLG9VQDftkCAOyhqwdWjaqrMSwIjHB8uGpwNcJhyRzUdOnXqlxZLtWjwuX6Ufem/tCfE5h9vDowIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21001","name":"0.3.1910.21001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b4517fed-5787-4d34-8f6a-19c4d855dba4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21001","status":"Disconnected","lastStatusChange":"2019-10-21T20:24:23.4052388","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"5c74e555-5429-41ca-9ee8-1e0f836c5c7b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAywzZ/ZAJpg6bab3cqJv7huLUdsdbfIsMAsAPeCEA855bblgMzwhlw03PuzjFJUZBNsK1b/a0415HJNhAk4wXdtnXIHDBu8pMTBrjQuB2bPy7Xe3tbYNetpdP3a+f6y100gKDJ471eHZIOjqxjZzbKJ/Z7mEP0iLD+ARXq4hZ8sjtLajtmgrff1/bo72E5URRippbo8ehiN37C8O7B1U/7JdXozQ4GfDwUlca3tLbL166UzKTpeYbjVCL8hzlWVVvmotBXvIT2LUVOIbcCU2v1offLKCwsWavtsu9wv8in3q9NxBdw/3VJGd2rHsRw8FZCryGOSkKzfmS53Y+ftvoeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21002","name":"0.3.1910.21002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a703b529-b703-4190-ba86-cfcd0de81de7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21002","status":"Disconnected","lastStatusChange":"2019-10-21T20:44:23.5973385","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"4106f6db-e62b-43cd-8916-3f6955bc154c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA65iQWyXS6pM9+lFhOX82Up0ikBz8Kbdne+p/1W2GExD8bkHhOCzWrujk8Ndmj9ZWV324EmzPqRmNSwG8YYbLl5/ap1mEa7qQczzqGcu1LZa4q32jXkeJy4VBqZ0sXQv0JzVpM5O4rPaVTTth8u65KmiPKTF0INrV2VeAz6hKxBA87NcSR+o/hbPSFQ28NnHcEelbszjPOBSb6uU9WVBrnPVRY5TPwh76g724bf5f90wCoRJDKoMpMcK7LhMsXOwwUb2xjV8vz3DA16Ict/yk3jqpgm+sCjhmHY2wrRuXwWmNF1XMPd+IN3KhhJka9KM/BbhAUOptaO9nG4d12GWF5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21003","name":"0.3.1910.21003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0b4a4bb1-c83e-4d7f-be0c-9126f4e35416","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21003","status":"Disconnected","lastStatusChange":"2019-10-21T21:04:23.866776","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"957a95c9-9cb5-44a2-92b2-5a8f3b13f9af","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsV7Kx7RRV3GwothWvZcXQKpYUZaAp42D8KdUNqWluslgLo1VBUpF7CPaCOSCRXx59ftbL1zUuVNTiRcPPwelLyb/fhxvj1tIt8EyuhMv/rStJbHLfkueu2Xr1lr/KCuTvvYLemOgca9xvlA2bsduy+o+kL3gP8QwgL9GU0klUDkx7VvwcXZJcP2FYWekx6tme+Km47O8kULZNSn+Mj69G3SpPYqpeVGDkLVk+XS4aL0hNu5UnkQUuPdHpL9rPIumPeNO288zXCMj5HN98fClB65WMIoyRECda/OsKIe7/Qk9J8cW20Jdl3f13zI4kfCt92+1wRKowJObUBTSP2zCnwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458d1lyr_e2etest","name":"fv-az458d1lyr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7bfe31b9-ba9c-4ce2-8f2f-761366b8494c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17006","status":"Disconnected","lastStatusChange":"2019-10-17T18:08:19.4738433","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"62695b8f-cf2d-47b2-81cd-0db5322e63b5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv9QzuOP2si1hhkgSxbrYhGhi63JRl9BSAUG3vdlfKL+R/a0DJhaN6nI6rpXk/ANAmR5duAHTdoDmV3BFmroNH3JA0PlKdkUQj2oqiJYS/lnpdPfXAS7xXJSYK8XIDcJdO5F6mJsoWb+Xh5wHp2z5K0iIV+ssn6AOa4+LrHOAg6RYQHGOYrYDWDLlMI/9ABht++YoBldUlWXrx/1aPkMDwIbkVNcH2FfQ+9xzTZf1pVPdLzbmQ472/XqpZPbkLXAgA6N907+WvngPr946tbVQBpubs3Sb1FG3oTZhrOhFOmJ804y5ktRuO7h5nVwQjCbj90ZEPMmKky8BaYIvyq6OvQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21004","name":"0.3.1910.21004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7a30c1bb-c465-43c4-b9a2-10d44880067b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21004","status":"Disconnected","lastStatusChange":"2019-10-21T22:46:26.1491738","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"6c561fcc-31a0-429a-a04b-d7b045de7bb9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqD9oVWoY7Xb6Jhre06sRpl2UrOsBgxgjcu8MA3GGL0bs3k8f2I3i0SF9ZPS+30DCbWw6OkAyTnFFCGccU2y4/9R19MYQ9HPFQnlB/W/FsuQl59Zvtip8MtZyaeuOugpjegcdKzjAB6TMr9p4tXzMyLk/xKvuex86wm/NtQxcjVNHRyMD+9aXF9XOJlVk7MN7BAUjHdltBrAG99nxAh1AjX0Z7WvTtlSyHCOacefCfkUuJMnwyeRUlCOLkXf1pi7NFj7f3IONSbZNOpF+NwTwlwq2gj0Rxj4oduwib/L/WHtjHVsrjii2FEOSdfNjD35Zd33yP2JGSItCrSjDKudr5QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458d26mo_e2etest","name":"fv-az458d26mo_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"35f8bf1e-4efc-48ca-b116-88fb96499025","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07007","status":"Disconnected","lastStatusChange":"2019-08-08T00:17:34.2347971","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"239650b5-4f74-4584-90ad-36714b7dc678","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAs8o3cvLy2K4GIXHdvRc1P5vOq64dQEFqR65CZHsLrAHrdeDdlvnNynEBePSCoqvHwXUJTot+5fQjU6SR3giW6zicVHVaQsAZviMMWByR/CpvKjvWA1LKtOf7MPlQl2qCv8YPnSRqZH5T0kb9iES9omqR5P7zeKh0Sp1QuAAop3+KTchFbSpHPLWqQ6wQN/RmoLGnPf/xlFHx+NuhwZfzHKIWXn4XbAn6DPf2YfQmM9ZvwCM9YZbOT+o1KjzBHqoCnPZB0utWX24YqZl139zCYM1qArjUBFLURsJAsRqVk4FIHl3XtAl2KV9jjyo1hlJcGny7m8bqXzOzJ478h0vCOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458d8zht_e2etest","name":"fv-az458d8zht_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"92739081-101b-401e-9149-6f85a587f82c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.24006","status":"Disconnected","lastStatusChange":"2019-10-24T22:30:51.5298094","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"9b1fee17-c2dc-4ba8-b17f-ef24011fd12d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsASMoAkyuGFYoA+VGwGuZ0OuMSlOZfxwAkJVKkPaPVXObggVpbJwJTGzAMCqtk7BWAg/K3cGyUvoE1u3bz2SqPGOwRY0DB48VGW4eZuo1FNyIXqdnfyD49RoAqIfRFPd6z75RbnYMGV72EYZr7t2P0AWsbId/uaMLGxJKNvKlC4GL4KxL3sNFnCOkNQ1h35vOZOqXWxWsygLblkio1X20Ijhlx4T5Z4WTtKjN7+mq4SnVyof92U/iAfoDX/QYV9ju6b8rJvQ/uXDQGlb3dJ0rGoU7lvAxATvaKo3hDxBE9nAK///XZiObb6zfY+b2NDb9Ek2Tl17EvQEhXBVhd5TgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21005","name":"0.3.1910.21005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c02906bb-4dbd-41c4-a80c-1c2a2857e8ff","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21005","status":"Disconnected","lastStatusChange":"2019-10-21T23:06:26.4058752","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"6add4973-4127-4fdc-aaf0-b3799c57f17a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr4tg6UIL3isfPiczYbVnDRgK0y9QpSiQWdYcqZ89k91DvauTu5mA0azXQqYyPKVfrbO3c/ii1OMpPcGkS45S14XEPXjiKpHpvldAPdg5OIA9lAeyIvyDYOKxrvIVAG7dytMtOK+6yoWeSNXzpV/i3SpepjB+X0FdNyA9214+Yl+XhKuPsxUi9Iht4GT8S9Yat8oVvgbvk6oWbnLPjLHn/dsv1qaKeLOmpa8WQDuyiNmeVwSJzHv4BBjgcsCAYsNRddygL261xx+DyBkeHrh+ETJh7Q20EQpUZWoCNxPth9We+2l9ak4BZgWPqNPYR2mNKzt7nFe+CZItjy5GjQ4TfwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458dyu3i_e2etest","name":"fv-az458dyu3i_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"fcb4884f-02ea-45b9-8127-9e02b094cb4a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.22005","status":"Disconnected","lastStatusChange":"2019-08-22T23:26:23.5884354","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"32a72490-837b-484c-806d-f6c3817eb32a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv+MdHXgdd0YDcNraodRar1vLZuW2LelrmMXzQLZxLo5+Zm2hKrGyy+RAZDXgUU0Q28IeATImpSMbd7r+sLQH/gLFc0aJzTmLBVNJmXCl4Q11XT/LUXUyWhKmkZPCTV44sicKuFxFA724ngftiHq8xxNLSjQl4jEuC8TnNJM3Db4tynCpU0Ki5rOAnYQCTzl4E9Ts8i3UrgW12nzykq3WnedQlzTtzrR+HdLjp/6EWsBK2jTlCFqiIXa/TqYVcO8VEbTqdubupk935Ph5Oy56W0s4tyIfROLtSzw4gjnRooRPTlL2kiaNkORg1Vacq7nAj9w/utps9X8v7YjXNy/vYwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21006","name":"0.3.1910.21006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5f589c35-6b7c-4d0b-9e38-d0d18ac53c2d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21006","status":"Disconnected","lastStatusChange":"2019-10-21T23:11:26.4971687","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"b1103680-6771-42b3-9d5a-0853fccbb4b2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzSBowtlGyOFbdeCK9/iYdxXRuyOvTOoiyOjuSt/uBGHESubkaJYglO+92y16HVgYjlTgbtA5NqhF1mU1lMcJwdW9gtFV07BU7T8wCl93xwd/LLJ/Jt7mRxY0nAmo9c2PEiKaiAKf2S2sa3GwRvqikO4LfPw3Ikre500blkuqStQAdJdmEjTYl9mlcuf6i9gAUkGDzvNbHzLc+9IGEcdxLjUpppIlQROiSfWUyc0Qz8UYwy0gg5ZA4brP+DnJaD1RwKY0c0nbOaVx1BXtoWpDEHV3/dq4LnELNtF/IRCiVLeEl8vScsjjGM60itWoK+3ieaEvsfPmW7aeNVRadk5ejwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458ftdhm_e2etest","name":"fv-az458ftdhm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a0a5763b-458c-400a-a954-1149783c8ee1","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.26024","status":"Disconnected","lastStatusChange":"2019-07-26T19:20:51.1908922","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"4c129a28-3c74-4da8-afb8-1a66270657cf","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA7eGhsg2Val3ADhosIhx9DrzfDRHFFlDPFVVT/nvdW9TdZBrVTlUr5NmE9dyx7rpLC3S2TALer/zhEgxEnaO0Fide+WM99QdVVWxcohW6U5SyF8dXShTsHvqAGiwX+2Xm+hEmBr9ElcBv7jBQBk6Vmy6e1RvT6KM0kkk61kuIZxI94kSyfBl+XAGRrw3Y4l+gd8oQ5yYXLfoBKtRHhvNEq2OUw3DLxJicAIEYN7qdCdTgm9jPJIevzF2mQp/86UIyAPBAKRkLICTbMmeJapZJalng6NWcPwMYENkzqBk7jD3eTa4YMUEHmYcEovn2xoVfQvmJ4BTfCI81lRQ91OPuHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21007","name":"0.3.1910.21007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6f06d4a-74cb-4f48-9993-067ceb5c0653","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21007","status":"Disconnected","lastStatusChange":"2019-10-21T23:16:26.5737799","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"acdbe4ae-5268-4801-8855-def9f37db132","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvsGYgLKwa0c8wZl7PjuDeLN/B2To9thDSRD817LTj1A4FqAB291qWTEa5n2L6rh/nhWE0VT5O0GkFAvzOoZcdrIU6R/bf1IXn5P3X1wFQoAXwkIa9zqTtIVcUlx6Qbycqk91AgNbj7fRFuAgfnXcOm8Kg1gQloeCaQqqrd9kOs5AesbzE1vkZ1opY+wlQN237hnaeKR6+hwODj2PQMJHrnOvcf5cp6KyboTNqRw6WVtd72O7hjy8pbZgQCN36azzy658MoZkxR5dRCKmenhfFCdUsG71Um8mddWByjglXnDiG9RC/oAzHE7gNsdO69uVGLfZb+oO/JpYh8b/msfwqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458hbc74_e2etest","name":"fv-az458hbc74_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"24e160f6-d025-4e76-9322-494623d92aa3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1f3ee259-0288-4ac8-8552-e89e6bd1b00b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq/Bg4gvR91X9Y1Oxf5iYJlhe6y9eCZZJJCNNf720ruwAcWN3CiWuO+MQizX9t4UUiaOqY/tiV8xZo2sBnd+MZ0DlJfc06tAOTdUE8XAuOFOTFy6+8qswGqYAYH179yR9nZP7EYXdxqK+xFlvupl8BBo4SfXvxxevS6eT8mJZaWoH7Yoox09clU1mkBo0fI2jgj35VALcbc4m3b15uR+O+1V+rWm1YdTMNSZCvNqwz5IZ38L4EJ02sV81MkkysAEd8HkFD3X8uALi9TmJqImcLDEsYuCfF79JiBw1ASwQzKYAHuVpyBZg43gwkiJ5A9J4oUohpEZbjcQcYKz2+k0sKwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458hf6yj_e2etest","name":"fv-az458hf6yj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a3fde7b1-a6c7-430e-9592-a0c3d271c655","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.17001","status":"Disconnected","lastStatusChange":"2019-10-17T15:48:17.9049133","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"553f2094-f9af-4f6e-b850-5ba810508ead","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzjf/HalTMVuEMDcThuazD1mqvjjBp8c9Ef3D4bKQKYroKjcOQc6TwnycRjyklagR2ydUuRub5Cp+sSq8r+ekEba0MH0H1U463H7p6Bx0MLiGDAuXM6sbBIcaCx6O7gcH8c8mi2xGAgA3hgzWfxA88X6xrGo2jkgML7SYbqiGFVNtvd1oTvL6bwm4zliTYj5PYB9JMfIrokDZQsYbnMA1w8wHiK9omsMnUOG0SGTFTNwTprPWXFEmC6ju5IUZUEiBRg1JPQvSjhAJnmCJpC+fm6Zz2VSk9Y09J6NcJoIVXQwg+hxOvDVgSCtg5UFETzPCKucRYXh/tg6WM5iMHi6b8QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45693ac4_e2etest","name":"fv-az45693ac4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f8dba0a7-e776-496c-8766-ae0cf761c60c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.19002","status":"Disconnected","lastStatusChange":"2019-08-19T19:16:36.688436","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1052-azure","osProfile":{"computerName":"fv-az456"},"vmId":"498eb4f6-931f-4fee-8884-4ae565c5510f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuUBEX9qXGXB8QI+vkQeY+M9E44BqeKJ/VQ7L/1lNMx+Beu3VMXtank7jKRXnvvda4Xkfr8h/rGYHBu7zm24GQw2PpHiwdi1AKKsXlphTXSNuiVbUZDm+QUIuGkmihes4ky71sOVRyCepHxNZTMoxLLvKv2XRJEp/uF+qQl48Dqv8q+UJFzUVAlceeQtE5oggVMUXgOjTB+M5qOcoTYJFfaRcxNUv7kREsK5CY6uKfBeLg9sgEXr2+hWGEqXe6NO5u5uGQmP+jyzMnRn+8gyvQA2RhXrVmXbxolFpGGmU5ajfdcYxFaO1Ib0JdGRlnXeX80gQ2hZCbI+QcxxntmlklQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458iruz4_e2etest","name":"fv-az458iruz4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0dfab48a-1bde-4916-8abd-8adda6098a35","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22003","status":"Disconnected","lastStatusChange":"2019-10-22T02:06:27.9678791","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"bf360e31-6005-403f-8e4f-5cfc6ae66604","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1K6sJSgGgYwQSz88brWCmk/im3xyr7+JqCkXC3Qs1m7BshOf1kNuG8RtlGz4PGwIyeqdhaWByulLs6yBklxXWIMgcpAUaj9Du3HoqbU+nzUf00kfSa4kHGFL7IUODkJeX0lRIq3hthKmZNpQs/ld1O/HwWxSmytGTsQcwTTxtq/f/f8S7WdPrB2AjpVpbyegtfFrMld+6BUwbMMdp1I7ZIiMMPCA+CatLweyiXjWdLiGfCw++8z8hxXgpZar9g02iI/huhEujz2GO0tQ9/BivDYAOlXxrtBW0+HJVllUVqQfXt+YYqP1Q+RMFDfW5nfTr/sYaAFqp6Zskjvz8JzGYQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21008","name":"0.3.1910.21008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d15bb9d7-aa41-4c3e-9c0a-541b50dfb7ee","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21008","status":"Disconnected","lastStatusChange":"2019-10-21T23:31:26.8986901","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"7a96f1b3-a6e5-4b2b-93e3-84cf96f7d532","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyLjDiKtiTLcPRGu2qvKJgidls6r9d2XJly3vEKjYwfAiZNYdUwxBppteH8henscF4jCvYbOWmElAz59wp4pWZGU/QMbmgZXKUnZp+G3Peon8kL7D1p+6c6wMdMdRYLIqtXyNtypobFz34yyDJvZdjiW5msl+EsKJ/3JR5cVm0ZmJgZQEv1swNV4socJpf85zlyCaV4gYk/4XTp5Wpd4Kf0WMrdIBJPplJPFjDv5ltLhRQr7Qhj5irItozHRziqcDVynGooPnZe89zvAiN2wZniF4ZGJZ6A+rxvNVjAX4bnOlEc96rZHcI+f9gKHRLWGL/tREUP1ZeIZhYyNV6sOhXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456943jk_e2etest","name":"fv-az456943jk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f81f23aa-1dcc-4e78-9f16-dbf7e43d311e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.30006","status":"Disconnected","lastStatusChange":"2019-09-30T22:41:13.8888292","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"38980374-354c-4975-9d6d-d994dc4d308c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArlPQULBzxzTUghVlda3l//PhkGY5Ruf1WAJoTT2AttsgiHdt2G/9eNUM2KJQ792D66O65xiQfzWqkuDDeNyehr5bUz/Yo3yj7PDYJPhvWxSkGTeHoCPbL2UyeGNKE1cZhIshntFUIK95rNv4qpo+mCCwBSl80VM9El8cOfvIBByEz+nGRSixCjTmWxhtt3MS0Ya0BuapN5Q9D2Dt0r3DttIUM7ElwF7myGhtcs2QL8TM1ZbQETylI1Tv4jPMRqi2SX3phC2H5Y1fxXT7bxRfspIeJ3VWWeLCKo2/f10C3UDgUsU8k43bdtXxcbDcWMHE1vEx+PLomqHJf6PYLhlT3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458iv14t_e2etest","name":"fv-az458iv14t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a27dec14-9e70-4238-b858-364c8d228a93","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"98f8d531-cfbb-4d14-8ddd-55f6ccacf6d9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3TLTN3MR6PLCVuotAbIo2AObrsNa+MZzR2qf78Y2xBRKKL1lzsE6hBKHSq4QimjDlMo1uJE5FGmbR4GMlWeFWElQnCFsZOy3iz8g9E64nT0+i+2btWCSXZfCr8+0zlY8UUMvbiotH/X6u24p5xad91k8CfL9vFSHZXmbQfiq46xyvT4Zk2aD8w9EymJe4VGUP7gOlZ20NnzmIWSn735MBmhhxgohMX6y5vuqb0+mwUDVF+sz+ygR+3CItzSZjiEGZSiXursHugNUXcMP+pEdy+hPKzSjIlNcDAgiEqBqe03GcMpnZ/RQYncJSaXA2di83goUBxtzUhqH1Wmq2HAKaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.21009","name":"0.3.1910.21009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a86ecace-d176-44cc-b54c-866c2012811b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.21009","status":"Disconnected","lastStatusChange":"2019-10-21T23:56:27.1296364","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"86c46a1d-e397-4c01-8c78-007a048c62c3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3e6NOqZ5aASrT/fkWXORO0s+np9ejZ5GwRe6nYDBMfrL3P2KEwHEoYi/exqsUeL1SiTMt7HxdQpdANJpKLTg/yZt2o2MEMmJ8JwSoZO7b5e5lxJ4dWBP6NaEyuvE4kLECl2mYEWm3mvyn2CzVPvAWyvqy7YBLIAC17c/ygn10V9bvYBXJ6FG+v9xVl7fETAoSwCuBPCaHQc87WrcY/Z8NZ+7Da/g1NGfMZu4TtqEvkoGu4Q90Hzsj5ahPienlG3EKEqCUVRSZd0uj3VZ8qbGWPSdUWE1dgvHromiXIzcfLyr1lksKzQhu5fpDY0d2gS0SUIHF1TwQ1XCQanAh4Fv0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az45694we5_e2etest","name":"fv-az45694we5_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2ad160d1-a115-47ce-b0b9-d983e00e086d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.24007","status":"Disconnected","lastStatusChange":"2019-07-24T20:35:35.386752","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1050-azure","osProfile":{"computerName":"fv-az456"},"vmId":"78220ba5-f921-47f8-ac7a-427e32e31668","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0/oFzlnMDN6cDyzpGGenhyIH9vtO9hdx2ZOpOj4JWXWRxlNogD/E3qedXak13SBjqarsTlu/9QWXMAXT6paWHnzxLA1o1U8madzoZgp+gc8Or9RhlH4PODVfm7gu7upRw4znGneRJMZHgE6qRrO3Ttg6WHj3Q9UUu5lw3vFiYhBw6Fa/5Um2x9mEj3/OgqhXQdxCJMXGHqdcZ2zXLL2RNdQBxDjEh+hgDvpy4TW4sA6OCYXOCSQqS3qBW1/MtXXxkHLleTUbENmlrcWt8GMowXROq+JkHmziW6CDvCDLdsp0APOuk03Yqyw3YD80awfDdZvo5y1xkqXeC+MlOBP+UQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22001","name":"0.3.1910.22001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2d2426ed-bc5a-4b78-8173-cf4dfee93e30","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22001","status":"Disconnected","lastStatusChange":"2019-10-22T01:51:27.8141881","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"4dc9cd53-0525-4964-9983-d0ceb7bd583a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxhRF0lj+r2nSA+P1mWCOMAPA4Z+LZEmWg/T4EdG2XL6XGgt4Uo/0H6EhUIZ899+kdNng9Op9Xp0+VB63FlPQNooo1t0n8czpVfwC7VkJmbfQvBT/TlE0uD1ySfp809qGp/PbpxiMMGBN04rlKUtt2cc72cOGUud0IJSpcdvRMBjCbBuVSyVG1bB3Ph60XAQjh67EGSiZ31myUYCaqxfV2CnwxVBZq/9R2ilrqHjz1DGydzSF9q8lo5bXYFdDH8CmSZpJWA4UzijQ9dnsoWei03f5bBqwvG3W/Nv+nCDZuK9HW6ea2sPiqWCazPI2L+VjV5g/V5V7WgYNPM/Nqa0ihwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569cuqz_e2etest","name":"fv-az4569cuqz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"73efb726-3dd3-4b0f-900a-f427014ca9c3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17009","status":"Disconnected","lastStatusChange":"2019-09-17T23:34:36.3348574","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1057-azure","osProfile":{"computerName":"fv-az456"},"vmId":"0ed20624-3069-4651-ba71-e1b99eff777d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxC8W/nKoewTFxMs0r0oqXBP7/BaPSe3zA5vphBTFLj/U31hHJahuybp5Wy1haG4i/Kca5yZIi12jER698ptVMJcBkMS+YF699DD7ZbsMkbAEJ15VUTexZXcBSEHtbvM0TojDJrpXJ8SyXV8hyts39MCQS67cKllrSR2DuLVNUPu1qVDoJ4uPVQHFTnZkd6rZQltVaZPahb+ZJ6Yf1s6U9Dt6RqeQEDJRAjDuc+RZTyGsCjUzxxgIo5dqVdFR75s5Qr57s1FG3k/+ZTMu+5X2rrG1lLpc4PLhQ4CZqWuKA4l13mGuVF3Atxl7B3EIq5gIcmQcPHZb+SIRr3Xk+gvA2wIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEuhAAkSqVh4u2Wm2KQMhUh8JmZAR4lKgSdqq%2b%2b1rSB%2bKRvjYPnPssT%2bUWlyHv7Iue2X5oQSQbNOEBClEylI5DUPbL3W9yuqsEJWoh1n2%2ftqJWd5Uev%2b67%2fNOtoNs6l7fz4VlW06uHRduplkLO9cc23I1QY5u7uQH87A39LZrzvIgul5%2flHnX9M1xmP1523fy4DVV%2bzoIrJSfZC3631krtTMyUfyeGHeuZjiaQbS2E2cpLj9%2f9KVst00p6nt1TlWbqoQMo4tWNWH8ExozH%2fG%2fKxQbeMzEu2nnG8ng9qkmJn2VmPEWSXcLRNvYm6BhoMOSHTooY7LgCdFiPjdHUhiNJChWTD6fXmDDCEQoEx6vWBEgpwxkAF5EKY8w7KbpmMWcFWJbCEL7ljn2qX9GdxGCeWPc4ubthvk28V0nKWAFYAHaCOACkIIHKwtWl3B8SYK9ALCA7l7oGlacAmsKxguG0fAhhnIABthY8rADGoMB4VOzkbSABu%2bdR82AUxZz4Ix7RUIDWHtQAuMMimDtNVuE3ti5871PFwMBVkCDb8Dph2x6p084CmDFSR5OiHnAAUpPgP8M08TJL1xPl9WF%2bFrWtL1Kft%2fdxKkynOnXOkOcHFFtfzxzX%2fn8%2fA8%3d"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '116515' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:52 GMT + - Tue, 15 Sep 2020 00:37:19 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - aacfb395-41db-4580-ba1c-7fa9aa250f09 status: code: 200 message: OK @@ -1747,44 +2966,49 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TVHbbqNADP0XtOzTEuhAAkSqVh4u2Wm2KQMhUh8JmZAR4lKgSdqq%2B%2B1rSB%2BKRvjYPnPssT%2BUWlyHv7Iue2X5oQSQbNOEBClEylI5DUPbL3W9yuqsEJWoh1n2%2FtqJWd5Uev%2B67%2FNOtoNs6l7fz4VlW06uHRduplkLO9cc23I1QY5u7uQH87A39LZrzvIgul5%2FlHnX9M1xmP1523fy4DVV%2BzoIrJSfZC3631krtTMyUfyeGHeuZjiaQbS2E2cpLj9%2F9KVst00p6nt1TlWbqoQMo4tWNWH8ExozH%2FG%2FKxQbeMzEu2nnG8ng9qkmJn2VmPEWSXcLRNvYm6BhoMOSHTooY7LgCdFiPjdHUhiNJChWTD6fXmDDCEQoEx6vWBEgpwxkAF5EKY8w7KbpmMWcFWJbCEL7ljn2qX9GdxGCeWPc4ubthvk28V0nKWAFYAHaCOACkIIHKwtWl3B8SYK9ALCA7l7oGlacAmsKxguG0fAhhnIABthY8rADGoMB4VOzkbSABu%2BdR82AUxZz4Ix7RUIDWHtQAuMMimDtNVuE3ti5871PFwMBVkCDb8Dph2x6p084CmDFSR5OiHnAAUpPgP8M08TJL1xPl9WF%2BFrWtL1Kft%2FdxKkynOnXOkOcHFFtfzxzX%2Fn8%2FA8%3D + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458j2q8r_e2etest","name":"fv-az458j2q8r_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b5b67a49-d96a-4c71-bfb4-402dbc65a3f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.29004","status":"Disconnected","lastStatusChange":"2019-07-29T22:47:40.4056457","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"eec220c6-d97c-460a-8e73-330e8f50ec20","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2YM82+M6uaoBxKNGOpra8VE9ZiScq9blNdXVzb9Ke881md3/3mL2yg5ZlGLicm6i9KxN0y2RCyynUxE8VNA+EWk+ucp0ecwpw4dpezQkynet2HsQlZZ7SOvtjQEJidZTeT3vio2Z/AT83+1SVuQL/9UAUL9C9oDk1Qw104ElFHh53uAUSNxNbA62HZyf28d6/hrc+N/YNOseAHpZ2Sdjht74oO8vIKYdyrfnA3fBJcWCTTHU5uxEXiiLdJEdv1ry3g8EHMxGAnvD/MaSOTHVZl0BwWH8oy4nAzPY8+yjf/5orwWJHSuTG9Ci/qcUxPozfIXI+TIgbNZDJZ49I1QXywIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22002","name":"0.3.1910.22002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a6b8bef2-bb6c-44ad-8668-54f01b93ac60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22002","status":"Disconnected","lastStatusChange":"2019-10-22T03:31:28.5340666","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"b7f2a60a-c366-427c-aad0-4bd0ecfac56f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4PnDURBxDW5Av1rRHNpxBpQw4bAIx2HgB859jgfqJSIg2UImBxW3LQnYxoiCuJEI0weQQEnYkYxERF66k8sp9YIEq8eymBB0B92TPmpcLdSPNYnaysUDG3q0jYCgiwJRCPKBMBO0jWotHGreLt+zEC0NfWJJ0hbEKYoluTB+11CgD6SI6Llbk1Oh9zJvCb9fRIvPpGh2poDm9EdfvPy3IYxNY+8gtGUUpHlJLh4x6HstJ4ojG1AIxjYV57/pmEy1dp7zCWVXlcE0bVc38Mg51McZd1CHvMF745ghSXl1kIK42n+r3eSlMU8MFrn+vfQ6H1UYOv2YWyG13liXyV9URwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458kpzj6_e2etest","name":"fv-az458kpzj6_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28347fea-77f3-4cd2-8a06-84614a84f1e5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.21003","status":"Disconnected","lastStatusChange":"2019-08-21T18:51:13.2968888","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"7f5f939e-3391-4b37-8202-d0af0b34fd1a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+xobAhdsRHWuvuS1K1mbjadPugtY5kfBbHi/QJTAOvjtBf4Ho/eQUNfer4Z0IWs6fM8o6/+QISVEEAvpAfiUEEL2NES+WJwXjEaUtLm5fzWthHmHbDabw5FFceAPaJfs07S3coUnYLnRUS+lCfhObx4Wom7b9fsJ6e49GwBB3ZOJdD+kXwCJFKlGgsL3BVg4H+k23bN35XejfyX11cDyCBBkcuE5rrKAbZrGIyds7pK04eJpvwdy0BNeq+U4MrK3NfYl55I2d/lSuo+c5bxxenDx3ZZe+evoA3cFHBseqve/7mzhcJhBnMvuRCjqK3+hXdQiHTt3LKtAis5hlCSFuwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22003","name":"0.3.1910.22003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4cfc0465-3616-4273-ad72-d2e45f3220c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22003","status":"Disconnected","lastStatusChange":"2019-10-22T03:36:28.6374799","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"752adf9c-ba28-4065-bb35-5d3f9867082e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1RRKebgj3YgB6kcGA/O/Kb1223ELx1a0FNbWdcW1JxOzIEvEFaIJo/V0Dj2fXy6C3+jUv7SRN7dRhVUUVSNbGpoixnpmFsZT+iQFIpQeu25mGk0KF4scjvaPRPmuNSlbIsjYP9iM5wpxfWCaZ51Y57cY/wDRPWiYbraaNOP6rrWqsrT4uLjr14e9KNxuZeeLs1cP7cUbjhYg1yxrGl9jmYqT/5seMIgOLTXBisPygkdsfSlgvM3koqbRZ3zSjX1QVvQnwwHSTNSw6wbEy9Q0pxnGbAUK3APPytiTczN5WC00wawglyFfZb6oKznJdVQKmrjrSez/Ms10smHgMhj7zwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458l5hnx_e2etest","name":"fv-az458l5hnx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c0acc50f-7346-4ddf-b8c7-015e26649ea4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.08003","status":"Disconnected","lastStatusChange":"2019-08-08T18:28:05.9227854","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"392a0cc9-d25e-48ac-bad5-210666329368","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsH1Qh8rCub+xQ1+yvXsglGJ4s4tZnjSe1rGa+U+Xhz7DI5mPJuz4p4N2h31nkghaT9VTZuWFVZ1Kq8jgd/PGOPwBrJCqicQvcvniEiQr8fNAd+w+nZdi9Gjp+nvVYpadxaXgrDAUvKCXJXJvRQT1zKXmqn1Yynef8zWBOcStSr9X0tf3z+KUiAn14GjMFmwyocAVk9Iu5eRfQNE2WkcLzuY4WKz68w86StBN/FqJMzS9nfGS56thyt+9XtScqkBWL2MQbwUFvzb8PL4OPCN/bmSL5M+Jt9BJeXhD4UEEcrrIFCKKNuY/KwymCJ2teyQ/9IBgy2gKjjTZiQLz1PqL4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569dlav_e2etest","name":"fv-az4569dlav_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"671f1c7e-ccd8-4da1-9dca-6cb246bcb040","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1909.25002","status":"Disconnected","lastStatusChange":"2019-09-25T22:39:04.2942994","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure","osProfile":{"computerName":"fv-az456"},"vmId":"2f31c38a-3a7e-4a25-ba0e-98eea353ea95","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoqMHiLIfXA+WPwHULIz7dawcuFe6Tri8+rLC6up7uJQBPIG1FUQ4xuXHGn2qKt6+F0MHD5qhmpxk4jOILLpxlpkCryTS4xNthDsAEJgY99LmUPTCcZJpsRDktl13gsfQJWb7UkNfNW3xdfQkjjmnsjjYaFk3XNHwLqn9TSPhLeBmSPHBMDH25Mo6fqPp1pDJMDwJZHISuUaSdXvBm6dtpu9BJ3JV3Vl9x8jAFWPp7LhmdXAa1E5j5Ivf5wD8nKuV6TMvPOSdUGhHR3pqezBd5mF07UJaDRpFJyAXViK8ircWiwoxpkpSaGj0aT5P8AB4rvy8o8WzRD89j5ODqkOJRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22004","name":"0.3.1910.22004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"91e81c46-fdc9-42df-8228-aae08cb20e1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22004","status":"Disconnected","lastStatusChange":"2019-10-22T16:46:33.6781833","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"e960d3dc-16bc-43c6-8b78-008345fada82","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2VWBTbUqyXCg62Zi+yxM+kyYVbBodcAq0QEmrVpjJUsdZ2wpg+Jwf6ArguCC3u4cu9H+b72er3A1fQNJqYLA2KLYSuViVrOtoHrthVdAoz4o11GK9dupi3c4dNrIVS/i/hVFRyzxjdrbotL9F6ERXIc8Yx2TAqgXmkU+YBdHuLYW5Jhx0DywD+cEti1d68AaAlEDZzBlnIQz1GFtOacMQ6gknU4KZ0xtQT8/ZbjIvYUg+BUEJc2y1PnwoRDvqYbUStJofssVoTrEXbJlpyoKfJcAaXLOmUXYapySnhA0Pa1aZEiHJyl0xXMhSK2lwvo5n+ZZAj9+Wqq8a3rd2fZ/PwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569is1b_e2etest","name":"fv-az4569is1b_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"28088228-38ca-411b-a52d-d8156efc519d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.16007","status":"Disconnected","lastStatusChange":"2019-09-16T21:15:03.1708253","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"13262f4c-5a56-414c-8089-3bbd7462c382","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsq2M4JvkuqOlVr0ZY/hhq04J5E7MDTKaoiXghbIqFDoyholpIUDlp4LRbNBlG2bYm6FAAb2pduqTbLJZpPFLCkT9nTx18BnMHzmmQ30HJRCTiRBeV3CawQ0nlowlXvPSwOXgUYJibBP0ao8JB7oF9HyxQHBWUyOH/ixgHck33zrvmzinL0jSR65KV1P8pgF7927qTIVcZqRqtHi0P0ODw0AzCzgQmYyoq8XFrzBVT4BpqiZ4PaeTMcSJ5j2JNvljq1v9tRW7IbpONsSwjpmb80nKj15eQczxPgrKKT0C2DCaeRfqxnNn3KjmVVYDobib8GWkfNW8gkizgIOnefUbJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az458lhv0k_e2etest","name":"fv-az458lhv0k_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"674002b1-3d01-4117-9b40-bc649eeda2e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.07008","status":"Disconnected","lastStatusChange":"2019-08-08T00:47:34.995209","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"cbf3a585-97f8-47b7-94be-b25ed063fe9c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA60mpvvbkt5nNHDRTA4yb9WVzQ/uMXpbtC0I+Izfq8ayOazym+GZCqFzzE01SzbPpXtInAyS7p/nM6/l31nsRY5Utfc+MRIuOsNCDreCdaTDvJspaYBDLoWGOj/HBWlxYRIBXBI+tgYxpUW1c5eIAMiKyKDOX2HoM89vfNDvvFlG8hYaXNhqIZkYaPEdAokYM0kloHL/VKj1LpymWzfGHRxfYHpXyQcYPc3+RNqvRMFgo2gmd/qCBHLh4ob8mFtSB79zHqohtt+esYIf67FQbRZnNa1uhZmkKMpw/jX68qREGXwX9g+JNIKhPdSR2eFrf8jW5jC2IvQTsRGjTGu8BEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22005","name":"0.3.1910.22005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"43caa558-a146-4cfc-93c9-e449df19cf24","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22005","status":"Disconnected","lastStatusChange":"2019-10-22T17:26:34.0512589","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"3e7a7b0a-23b8-4015-8719-33026d428dc7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxp//qX6AnRNTSYIOAVDzn6sek0o+ZUZRF+gsoxIKsJyzfkea3jQpOOc6zzFTuiqgR+D0/osfTmOM/jTlrH4qGvrSeGqpBszaA7gDDqeskfHNAz1XVug5mqtcDasRyKwAahXYjMqR7bZNbqnukM9azAm9AMILuoiVd7OMrCJyk9qIkmXhUpvlRdzbvdc6DJwboM7YWf/dlRCTqIbRgukC+hNaK6RKYnpAkOpLPMdR1R1dF5x5LGrKsxNGm4q22o/Yal8GQG3VMlPAOX09tpE7iQezS1mtcVjombmi/0Td/53VvkInNLl26lzqqNedZScFVaXgGfX9vsOW8heBZyyKNwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569m3e4_e2etest","name":"fv-az4569m3e4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"df8c9a41-4ab0-429d-a3ce-274434cd248b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.05001","status":"Disconnected","lastStatusChange":"2019-08-05T21:26:15.73134","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5eae0ec6-b193-4f6c-9843-1207ee4af981","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnEm4EVC0t/rYeWN7KtcPbudMPjlzaLzkAOkIDmTuWprav940ms7iU8Lp01fZ4Q9Dbl55z0ixat13fnKaKYvqx63IklaLrKBxRrDHDLnMWdIeUeDTMmsHxnpHLrb4m52glMC9XCAYVEYwoid5GdTIzucrBekhhpndrA3KHlLHcjWIu8GvRgjyBfCKAuQvPtw76VqjL9ky+CPagMKDN+DDK46u6Pb5qEmLOxKYxZbcDf61wvJaOwzcg6Ti/0+fwyrJCyWg5No89o4S0vsrAcmE6G3i8W0VtBxIdpx+Bk/8T1esuNH4K4/9F2O2aRSNrYkAegR5/kQyT2aHuE6RaqCVGQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/0.3.1910.22006","name":"0.3.1910.22006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"92df0b78-8e63-419c-b09e-efcb77af3b15","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.22006","status":"Disconnected","lastStatusChange":"2019-10-22T17:51:34.2694146","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"3e3e270f-57ff-4a1e-9763-43ae14d59f5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApqYHhBLJe1U7zVhSgrlJlkTIXfKyBVIDrYMk12Re2xqGm7eugxFSb3LvdhyJ0UNWQTAx5JxmP3L93VD2MeKRVw1K2t6h6ExUZwZk6DvJ+/VXU8OIW1aoYzMFpFm8YMSwdhF+bIjH6m6lzQ3jkjcMYtahgBNaZGlVBLMjqea83cjUM+IN30ByQWfAPCinm2APS/hjVEZrVQxJYdtiDwnYuSUrDeWDAUpaSthqjG7OthgwtmK2DXXpUO+gh+fqaPIlXzuKcnanzRfVZzx9kbia04fKCmApNXB0Ts5cxL808gkKDbZY/rZq91Zlyz4N8oYeX7fI343WM6ecVNfzjhskhQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569nivu_e2etest","name":"fv-az4569nivu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"59f0c797-91cf-4eb5-8d50-ffbea1827610","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.17001","status":"Disconnected","lastStatusChange":"2019-09-17T17:04:33.0989802","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"5908b171-e468-45d8-b9dc-6c654b5e8812","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyQTnbTTLqrg+veEye0OlHOHogycSAryu99sWNpbfGduS7fmqgZo5wKBcsUoEyOcFh1wbNsG75rmG3BsKsUha6bQLZS0yr/Tl5FU5IqwOGnBKu9pebdr186A1e3y6vWGl+Mf/amoKDPFOtRgjBlbc7PthIf/gDtByvGnVrB+/opunuVecW3yaDCBv1hEvkKwcV6YZ7x4dYh+hOWhvzfYMT1xi0/Am4HhPRq2CTc5Rew/gDpx/fyLSEadsqZS5UGHAH+cJfe3gIx5wrumH3ncIF7cCJ4HkOnq4CYJkY90zfjuLfh+0cfIHrpTsHmMAfO7vH/NtyIfIznwOiXhox+NW5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569nvwf_e2etest","name":"fv-az4569nvwf_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"482325c3-4c37-42dc-a3a5-4ed0571f431c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.02001","status":"Disconnected","lastStatusChange":"2019-08-02T02:15:31.102508","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"e2ebf253-7d4a-461d-ab9c-1810e1d40bc7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxPS0zv2NmraItwg+3CQVWEOYaX5ERltQflbGmIhPro7W1omKmZiGWe0RhdFoAfIMU8TZnlcY10+ZVss3rbCR8q9amHXyVjnVqCt57P4l4CmO6woROIk1YfLFO9i+NcFZAGFDB5JadwJbGPAC+JqAjyoHPWdaJslEh3qAH2sQHdu6yh2BZv4/+xRPZwF2FX4H3Qc37fQuBLZmBJtGhb3gF5rS1WPDUuWj96V3LIIevPF7Oh2zAYopy7x7xaHFn0W8/rXlOnZFxh5cZYgQqMs2bb6aUi+hr9LLUtOnQNvuGDNaA+65EkAr4veuJi1jfv74tyJf0poVfSRBW/4rpOo9GQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569ogbl_e2etest","name":"fv-az4569ogbl_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b74db10a-a48d-4b2f-96b1-bca2d6996ba9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1908.29001","status":"Disconnected","lastStatusChange":"2019-08-29T17:06:56.9064736","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"13f4026c-4efc-4eb0-b4cd-f02a2b841afc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAo1CKT96uAzieqV6uVjvTyHOMh1h3/o9vMKa57xQH5wKh+1t35GEIDg55vUZjktvxenBdV2Q9Q5jTd+GTOCnJ1vGcgDFNnWkyz2on9o9rgk8Q75p70LNVghHmj19MY+bENl/vUI/5ehiaZI5ZPA2jNWWRqw6uRaAlJFl8Dj3P3g13tMwCRATtcz6ym2x/3j4kZaCuqoD65uLIL0kx8LTkbS5aErhLLYW+p3fX4pTWHvPLiuoeb/eB03XgNGfWaUN23SGKWc1YKBzjzBYmBw5Znxq2GDU4gnsyoM7jO8CEHZ7EHFtVx3iXxXYVodvIn3AA6HLYmeHhC0tskjUo/OGrgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569vzol_e2etest","name":"fv-az4569vzol_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f94cb47b-0e70-473b-b105-41084a19cb61","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.1.1907.31002","status":"Disconnected","lastStatusChange":"2019-07-31T23:14:51.6374582","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1051-azure","osProfile":{"computerName":"fv-az456"},"vmId":"4d4c8179-fa62-403c-b60d-318d37e2dc6b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4vKEdpwrdFo56DZGougkpMr0oRynUXSXTo7/skoYRkNzKMBuntizr1LkgEoHfY+Yx0w6+jnGh24FPu/6qkdr9x+hiPIz+nCjnD9q3skNg5edqyT8cdk7EU+tf+IbXGBOeKL+qpf5xpPwiRyNzwlOqfT91HoqpgmUCK0TmXtE+/DXYPx+0CgU7GUtrRHWl14plEhfmvkjByJq+8qfsmtpk3TKcZ3MVLTu38PNGwEhoUXSUI4i885AbG2AlBUa0uFZc97zRlDXoyTIfDzVRpQjWf2Hbrs/H4KcgIH+Hia5gFDbs3S2FQbfW/T7yoUYoKgG4YyaJASEHL9eYeM8U/GV/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az4569zlw1_e2etest","name":"fv-az4569zlw1_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d4958e9e-6cc2-4f7f-af5d-97935ed61cf7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.18001","status":"Disconnected","lastStatusChange":"2019-10-18T16:43:42.2692093","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"49528cbb-25c1-493a-a7a8-41f1a1f8ccb4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuJ4oQE7owZSfBaar3jxMDBueh/Z+v3ZYLt6wnBS3aJUqzk2sTvvxhvM67To0gX4Xd7mArdYX5xZw+RfjCeHAB4Q4kzhbGEEhg4ndshU67l2vYk7aJcRP/NcRi4LJTS3q9/Fxw4ukknFYvVXxJulHfuh4Ou2tOEYE/RVMPUZtuzay7BbfcqS1rT1TwcOb5PlECrdk9DICRdF8d8Y7ZvBzvTn30wyooWLxKYOtzclVCrq8LMQTKPl8QHnD+i2gEScUpUYvxhXdbcmdImRPLXSKrI0w6PMlM6FbUZvGW1+5Mm/dFn/xjDKOuC8dPnwJnhNZ2gdU46rjcJAdnu9NhuTEHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptestmove2/providers/Microsoft.HybridCompute/machines/fv-az456aivdu_e2etest","name":"fv-az456aivdu_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8ffb76c6-a741-40d6-bc41-b67c744707cc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.13011","status":"Disconnected","lastStatusChange":"2019-09-13T21:59:36.9337665","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1055-azure","osProfile":{"computerName":"fv-az456"},"vmId":"16080b01-a65f-4461-91a7-2a5238358b61","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwZOM4ATlw/g9ssweNG88i6/1oWa8xTeaecWTcG1j86ZAB5rZduTd4ITOMQ+spyy4Ky6Lkt/M6x4epAE5Y30f6Nra9fkh7XO9Esgj41eCYFs12zekBIzFKFqrHTTVGcb2xUjveVSnyFLKOh85fY37UP4bfOUwf5Aw9lyxbPP30xlYEZZwa0fPV250n0Bm1d3EdOBiH40DjA55m6MUM/vvQ/zf6ihptq3BJF3BovkAECwvk8ZzbJ7Qiaulu/xNO5FehpZ1BHN2kYB/KWKMrM+P+YlhpCEnuLw0QlpEWUh/Jza2Ridj5fwD8LJwp3Zk5PFd87YoA7bhKYQAKa918h3aMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aashishHPolicyEAPIgnite/providers/Microsoft.HybridCompute/machines/aashishHybridEAPIgnite1","name":"aashishHybridEAPIgnite1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3125545b-197a-4d52-becc-4a229f107251","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.2.1909.20002","status":"Connected","lastStatusChange":"2019-10-29T23:05:37.7326773Z","errorDetails":[],"displayName":"aashish-desktop","machineFqdn":"aashish-desktop","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"aashish-desktop"},"vmId":"1a2d1628-986e-4f82-95bc-cb1fd67f0683","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyDDZVm2uhA0Q3K0cEK7FYLbIXuwQAC6MF4/x+FsqaZcYGoXNm5jwC/Szsxae+Y5mOyaBDA5ULE2Ue4JOqSZRiVvghbZKpr55vwwr/jpl9M2YfejsQ6hhKKIwhZAXeke8koHdzTWGIa7oCOV1GCYXIi74PQplwcKtkRL20Rq4FuDVCMvcQcIa30DiXCdToHt2QKOJcBOtRdIJIMwVMQNSw2RDHafO7VYvy+juTg5H2Zec5UYLFZV/yTrVHwaJtL50RRNtMb4NFaxefMyYSXGkhm28P7/8KKcWiHNT3jz+PUDvzMm/exJdbbVJOgQn2kZSSxl0lAcUXKY1/2gwPXew3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.001","name":"0.4.19298.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"3730867d-b931-49c5-a8af-1e614b37d81b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.001","status":"Disconnected","lastStatusChange":"2019-10-25T20:26:44.928919","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"e46a4c89-382c-4f47-ae96-7b90bea684a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApKsuNRhwdVkYHn+IQWhu0nr4TmhORU0Tq6P1rTTSnGAAALGB3m5ARxZ0VzdfWtw3Gsr6mmBTsrbKeiBw3vUmHZH/DPHyixLTiQXEdKX1G28pUfwSaHn2roPEhfQGpZmcxNW1Y3utZYHedXTEgUuYXyjeIM1Ec2WRsu4cyNxKYHGosdN2Vnm5cWcp4Qq3twkpsn9zL3pjuIL1K6mETPTiJQOs2YYD9XSmE/nja1uVOAlJ53p0JPENowNNTKSIrXaitem1jnrhxCisnl6qFcIpccyYRuQ0sRbBnu85FVXSNTcISh/vgbDgqclr3I6f57J3JgG1jNtPlvap+LSMap4MNQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az467usklm_e2etest","name":"fv-az467usklm_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5ad0dfd2-b2aa-46a5-9681-efc843981b05","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.001","status":"Disconnected","lastStatusChange":"2019-10-25T20:41:45.1487113","errorDetails":[],"displayName":"fv-az467","machineFqdn":"fv-az467","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az467"},"vmId":"6cc0283c-7ec4-4a70-a75e-132d6ac62f5c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArfWguZZUyfCEUVaPWSa6M/xc+rZbrzMDr3cmCxl1/aE1fVWv5KBGMa3T4Wuyko+iNMSsCJyabczyRJePIuNIhLSDj64nJFNupX69dYdjb5JFQkSInHteRLX+Iylz63t5BcIqLkG0iz4HpLeYdoolubN4af79SAdt44G0aESu40PMimvlHxOyybYa86WSObY2boorCMC8MPTxJUo1CqvIN9WlCThIO4Dcyt2XfLYwUQx2KVpZQbSMQMOu334DsFMuHwRo6q2btdomRbJMs2lX8H28Heuy1Rzq/lj6s3U/hG9Q0nOvoQp7cHO9Nv3SrXsRDV/cfO47zeAJvl313UrVZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.003","name":"0.4.19298.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2f3a1723-cde6-4f90-86f8-88d44756e3fb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.003","status":"Disconnected","lastStatusChange":"2019-10-25T21:26:58.4957502","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"81fa2726-524b-4a6e-a0f1-28b0ae743a62","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2h9Ri+gYPaI1Fqwoh3hXCp4CZ8q401N67iMN2YFmeWazeqZ17Rey8CugAp0vFxGl+kXIff3loFa9oJPxelGWxI+ZJmcbZAvik0UrD0pbovzBjXR+hkeS5i+IE5pORmXxp+ali2lZ6s1qgv8GTA9l/elOixLX2r2Bx2AOGWpWypDhaN129tJ0JcOvaB2xc0ohRqKbx4Ohl8+mAvysDmGVFq1IjbZv7NTH/YnVj1++kERHuC8M3GxDrSye76JBBmdfygKI0qHmWYDD252kO5TjmZxrct+IhM6bFryik3pHsFeBhEWTOkpdA22K0eNvMt3Nc2fSB6rqYpnwzajCeDpFEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az5995mrq7_e2etest","name":"fv-az5995mrq7_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d41ae06a-6dd7-4ed3-9526-d6c0f5a008f8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.003","status":"Disconnected","lastStatusChange":"2019-10-25T21:26:58.4957502","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"7992e248-09a1-418f-ad70-35ec88f6659b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuU4530bRxKwqf1/iRUTcUOWTqUkUiAx9mnCiSLc3O6Ds2mBvZrghZGgjoOBxvbkZBUVHwlt1lqzd3f4jiWh9RoLZccRS1m7Aja+CBbmxxE8d+UiSncMv5FH4/J7N8hwNfXXDXlWK4DqifXErQkGQo5nUBxbIi1+RnHwSJv40e0NDxjabKLNe3DO/Mku2ACUprbauM5ni7GpGu+wiwTg2bltZCm9+RP84VVP8mQlPKkrx6gINoEFoajYsFQlhBWd4Xu+DL1asKGBlvFB/uUg9Ud5Jzo+pVP9Z49JBRsgNaN0MNzjEoIG28N7e5sCARej+lHblDPp+Y7KNHG6GRkOktwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.004","name":"0.4.19298.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f6185e86-422c-45e4-ab83-f513f3b2e242","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.004","status":"Disconnected","lastStatusChange":"2019-10-25T21:51:58.7887717","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"9d7b280d-92a7-4e2c-a14a-10a7dd02a0c1","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwRazIyP45x9UKRZ+nGDj4Q1+qV/P7gM22/0yTcja/8fhALBkr52dTQxTSBPR1MwNIESPljM/wP1oqiA9lzVt/7p2t1qr1q+MIBgtH6xY0nLmiLTSLXVd4jsjZLHLEfBodcsVp2ci0pntKJw4HVAtzEycn6tp69TY2wo49VoUl4amHACCAebqJm6kXwPncc+6KO1CxBx9zUSK67yUrKQI1rppa8i62SUl/smlnsv/mokd7JGEdbku6sWiqvsRoaqjQAOBaYgsjVo95kosFHjQ5nvL9lqS4KAMj9Jv+65iq7App86bCIcNOvP6e1RsHY/BAU4zRSNBNv8enAbo8NYjLwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az600wkm6a_e2etest","name":"fv-az600wkm6a_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6078e011-67ff-48c5-a52c-9cfe5fcfc428","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.004","status":"Disconnected","lastStatusChange":"2019-10-25T21:51:58.7887717","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"8b34a758-63f5-40ca-afc4-5c69b76efc76","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8kTLY5RSqTrwtRBAuzNCeb1qkF3hmE/H9KtnGr4AcVd5EdKlkH7h8no0/IGmM8MgdTaarBcRWsRT25UrDM5CA+Hq4rslxeRovXPaFYV8yUkkarbVyHLg+EcKJoxeB6b18l8Zdu6sgaeONLzrk3PxxyHnacf5di+HxU4b/xflhOeTbC7SxS9Bxf4I4k26RM08BQmTO5Go2017z5loLf2Vaij8AceWgjuEoJKz3qhZCB2AjNu/QnKh4RL0ALj/15pvOQouJNKp/6ZgPqb90nVfKWL3j0U22tTVMyiL96H7Mhx4Kf1/5SQjr2ObY+5J7lVx/js3iHmooxgCzTM7Vpml0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az4611s2gt_e2etest","name":"fv-az4611s2gt_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1299c4aa-89f6-4f1d-948f-ae6d6740b10f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.002","status":"Disconnected","lastStatusChange":"2019-10-25T22:11:59.0007547","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"cee53e1d-f56f-4845-9f03-3f209b43d7e3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8Glt3YJibiOW0c0yfHRbKQL+/DAcsoWWFVHlyQklr4JJOA3HvmQIc0X0WBthxySdr+YwurP9mPVBYT3QWWyXzjIxjn8o99lmkNIqE5PGZHw/pAdLhMYMVlgz9Q/A4rj9yeEWaca/GV794INuQroc36EhVrabuzSHGdCKQ6GXbdS2AT3/EkllmUA21RHVvgwy82FS3WnPXmiPikCzjik2G9i6HKdnG94PywEvEUTqllClBKxNP/URyz8I8MN44ASrzk9UTVgA5nVHdGULaHShr/JnW8gPRkNllSsmit8pqdhZoZel3ijlSSfZpYBHUVxUpzEob7tEJUwxcOW0Z3gQ5wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az4583ezxy_e2etest","name":"fv-az4583ezxy_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4648832b-14d6-413b-8e6d-9c693357bd46","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.005","status":"Disconnected","lastStatusChange":"2019-10-25T22:36:59.1770161","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"62612e79-2271-4486-bdc2-d2aca683cdb6","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoPEMUP1VqPU0yNg5olfZla9CH12g/Sl/K86fzr2Yl8jJwQ9lHa2tTgS/Pys2ajF7ClkQlegHSo2sxQZFd4zylsyv9xe6Ms+r5obuVOhVFnNiJd1n1x6FFJwrnbtKnmwykDxo73v+ImokvYTgWihXlvi//OT62UkisN3HFqgP1oQmXD+hRzmyJe1MuQMFy+Thv/69ZjN/HBQxfFiS3cCDRrNCd7xXm6yVHbIdz3ePlE77g/3bJbDlL+efvSUxuLUGtJSraQMA6JRajM3RPJBqaJDhyjC9xKaf7nO7MmUCPXHKqZqg5shoDKzeUh9vnuC6XHmwUCedoMh/XYlcjMYMxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.007","name":"0.4.19298.007","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a4359047-dfba-4af2-97c7-ace28940de9c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.007","status":"Disconnected","lastStatusChange":"2019-10-25T22:46:59.324253","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"5b92065f-3544-4823-be96-99340035eec9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAveebdvUCCSHBRCTIVIygq/Up8mzr1F0y+5U+uwhueoYh1kGILnhkfqnd9iGcCtx0ZzmhEJ+c1jvS28qvizr9TMoU7eHEB1R3gbvKF8zTWxVa/+o1LnjcNxlAx1HxP9lsuMcrfJdSNyv0MeDvkC90FZHVN06LGDn9WtyK3z/5XQYxJb1VpFCg77QTMv07XFCHjwlxBocXb3uT3uSJy1KnWDdG3iSZkPezcc3weMnis2iwimoVpe29d9I/HqEe6s0A8NMtAu+yW03u96sJ3L++IO/d67DkJ0IRbRHi5rPpabHuZapNA9+JxIYt6sw/LaqpKqf9Dkga7yev4NoX29qd9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az599em6y3_e2etest","name":"fv-az599em6y3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"29aa6885-f02a-42a0-8e3b-f6a775a660c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.007","status":"Disconnected","lastStatusChange":"2019-10-25T22:46:59.324253","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"bb7fd096-09f5-4b59-846b-c7923e331865","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5Zy2AtY+0fTwhDqEyf+6NdQf6jwvL63vFHgnAfyrmIRSWctOUNrb4Dz+2Hc0LywMNuay3TFPsc5NEOoE0qqSwwu9KXssIkQBWykNK/36IfFMMUzb2P2UGj+xwYLDY8k9N9nPVbAgFRXUdRt6fqtdH+HjsS9YDaUfSuuxYFmgAYvmZT3VgPbrHb561YJoTXo2ZZdwdxbhecpHuUf0igrwOc/t5Gsim/vIQqnskyiBoZj2MmK7mlRckUGOqH3yRv92pkhT9BN3pdgR55zOJgNgIBtqNp6PK2WOSPvCENeLBhrcRw2Ijd6unVDI8xJzbitJjyhjywhLXNPG0n1kLL1giwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mariah/providers/Microsoft.HybridCompute/machines/mariahvm3","name":"mariahvm3","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9910e4ac-3789-4e98-8819-9891cb9266dd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.1910.25001","status":"Connected","lastStatusChange":"2019-10-29T22:42:31.891501Z","errorDetails":[],"displayName":"MININT-BVC3J1U","machineFqdn":"MININT-BVC3J1U","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"MININT-BVC3J1U"},"vmId":"dc76caa1-9dbf-46e9-933f-a7c9339cca49","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwnMJagBFOLyAGgKjmXuYkuX3NQzaSH9o00FfhXstfEHpOSGNn6PAPnU764eiZU4voFRrtvvsTiYEHqElme55pcLlv7jEhVvhtRUY8cgpDz/s/UIQ7S01kA55n5jOthNKPdUgkAg2qXYqBOshzhWC/VkiORTS9ixWWexm1Pr/YUcsPHq/GpG3FgRdROW9bK5gBjIzKnQ88w3hKNKxAOAm+r7lI880FJAAzZfPRsHOwaaB5e2nFp8ojr+lmdSYBOH2X2ZV+2pxbc8XlUOyAfX2bgC6mIzu6IKdj26JxYoV6mg65t8NI/zllXoq9PI25vet0VSd7yxLKZN4elPyFZCATwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.008","name":"0.4.19298.008","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d3f94e3b-234d-4ceb-aa62-b49dabb0a5da","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.008","status":"Disconnected","lastStatusChange":"2019-10-25T23:16:59.6320698","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"02e99d8a-d836-4423-9848-ee8bc498258a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA42La5rK8EFFS/jI2OYF/TXhDi2/JhQ8zAqu0Hz0D+AY0ycebNgLWSI8rB6dKn3zGfmg94jmAEIARTQA6xC3PHn2GASHl2MdAU90rsRasFDX5PkrDCR4MBaB9hoSgORV04s1DDGoVUOZ6BScIDc8wj7pBmqSmoiejb0wWEvbjpnk7ku7OJyDfCLuqPQ99N7E5D0EA8nUf0CiY7ZGwV3TIjplJTYr3j4PieDvfSDWi9HNifJzcChCmyoxPiaw2BNe/LBHmsflb39H5bHyXp2q0q8T35tBLBKKHZJoyJpND+YH4pB3SNkqsa3xpD8O7j1PHHuUJ4szGsY30ZEtVTw4WoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az623i21qn_e2etest","name":"fv-az623i21qn_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"8afb64e3-c7e1-404d-8969-82492ae20874","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.008","status":"Disconnected","lastStatusChange":"2019-10-25T23:16:59.6320698","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"4b34db7d-8410-476c-9d98-3dfa9516de53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtFseYxLXFySF+M/BSdju+miX/9+b1ux5DGGoAO77MvF0qKz/Qfd/+6HYAjG7kAWa94W1Z6zk+CKSnX3k8w3BkUmjXXqFxrOUmTv/zgP1gBmPCThWzpSS1p7ean9jk4NTbUOKuzx5M2W/EH1JEeemR/Gn7vw34Ns53nMHTySRJWp4OkL+WevcS3LZltOFia7Ez40YM+cm/WM8pZpGTSwwId+mHd75AM6cTlpGZxNf4ZvhTvXafHVVJNzmgeeo3Qo2jQMXgCWm5YzLXJy+KHny7P1a7rHay5TEUUR6QQxvlOzuKtZ5VjLbQ5bVJNrka0l33nRtWsuGkWZXNgZRMbKnHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458sle97_e2etest","name":"fv-az458sle97_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"bb010d30-150a-4461-aed4-302e0cd2f4df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.006","status":"Disconnected","lastStatusChange":"2019-10-25T23:51:59.9312367","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"f10fcd84-8136-4dd6-a42d-9878ef93c89e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4Y7ODbB2vOJM63zYZmlb1RbDvA5fmIGjWU6Tltqa1xeKiH3ADT1O93V54qaF6J0KP3S+xAHkG+I+/Bk8Kl3B0TjbrvJE7seE6M1Ox8CWG5R/u5Lb4JZa/jkvBeX8hHRyjFvnXrSIbjn8rRTbsG9F5bNhs89rVJowwox7vImn/V2bysI7AGXtP0KcZskrt3TG/Zdf/tmKITbzpeYOW3L0Jl5jXbs6r/w08arwhD89P1dJFRnuDfTe2vbhxocsDoIOOsA4Si+a47mACLVSYNS+AGl9XyWRpYSu/SFmZu1ibKOrNlhe2uvZyMCT64Sr/Oj+Vytjxx60hQw6q8SQPBdKzwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.009","name":"0.4.19298.009","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b1e5a583-1b3c-414b-973b-df939db8fb5f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.009","status":"Disconnected","lastStatusChange":"2019-10-25T23:51:59.9312367","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"94214acc-3522-4fa1-a889-0694bb721e32","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3SdcCjud93Ti0VejJl4WTjMWzLC0zZ0y0AfHlgruqMkIWoKCMPv1Q0eeW3OGZUUIJUV19JOSGXmZNui1tyhBfrA4eSKtXzVETVJFvxyhxukR8GkirGR5J9Y9jFMPH4PdkZgvhOUtqPWr8yzesyU4n+Rod7ln82kZh1Bd0tn1jccSrHtf/q8s9WdIp91BEJzY6+i0HA+beT//NYJm7kRGewFvrpCHJy7spQj6AG87H+CBBLivHPvIqyQy+iXUJ4AiJMQqNAUreLghSQZywDsdxX1/6iT5o3Xr8JVBNSd/n8ej5foWBAfsw1g2rImI8YHb8+hyhRFj4tITjgj5VLXxPwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az599e5i64_e2etest","name":"fv-az599e5i64_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f8d666da-86a5-4e96-a56d-6444b5d2e6cf","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.009","status":"Disconnected","lastStatusChange":"2019-10-25T23:57:00.0207011","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"1c77253d-cbf1-4a30-85e1-b5f725b43ccc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuZvjTYQKKMT6oKRcppLpasOfnTIt7+OaGizgMb/R5cusZair52MR+c1KKAHCGb5RAb8WFi7D9hz5UaPiBvw5T5VsJDM4Uf+WiJTGSNBjY/i9D5Vd81hXOfGa0BUvPH3US32KjcTBsXRQTpNZ03pKCYcXvEyXwTWA7V3gAkwSk6ge2BoARAjvgZinVLdhhzUThP9tY4TnNO2xDNVVPfuCEe2cvCBWipCWJMeKxLHeL5gVHDrN11Wyt42ZS0OqjzZBuR/rRk1Bo5oMN6hyg3vUjZfHFT8aOrjLiSbcpNP2VIrZykgKS/EXxjxaUkMLJlkbV10KAQNs/rKyPAxsIcC+7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.010","name":"0.4.19298.010","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"244e7a8a-78f0-4957-88d7-eb16311358e4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.010","status":"Disconnected","lastStatusChange":"2019-10-25T23:57:00.0207011","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"1fba52d8-3132-469d-8968-4e936243a278","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvS5d6OFNPA0NxzHs7v9aONkVbFp49Vb9mvfA7ghSK+2fMr2O47Pna+GkJUScxJph+cJtbvA9ZakZ1Ng94V8xFRqTbF0ZjNpI7jpueUG2UKeoB8WX8tbP4S4cBIJ1loje5bnsFuukrdr7gqhjjHDlDTWP7TBeO0pwWmY+jbeggkjYnnUdllHsuaFpTKAqrdrBLJLAThH+xlkvICKgVJyy0RO1OhTI0mkyLyNTDE5RC5l24tsRZ7/7bZwQoI6mlJiWuI5mL4xWPU3H/1ZSQIt4IPNFlUzZFxKCZZlp36PBsWNl9eGpOvCj4EigYQmJw6twcEJkM+e+E0TrkimCBMr1IQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456lnku9_e2etest","name":"fv-az456lnku9_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"e72a37c5-c46f-4406-9d36-e2f0342e4a75","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.010","status":"Disconnected","lastStatusChange":"2019-10-25T23:57:00.0207011","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"24b40264-29b2-4e14-8032-573963d25d1e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr+++142Ejskw+KhjLKZq/ixOT92bcfRbQQKQcZ7qKuKmXOfAKkpOCmJi5AWON87q6wgLvDg+YDBX63vtpUHk7VjS8M32oo3ebKjB7otPqrlhe7c19W9wHi8Q/1RnJKxQNnQLnrnHi52hVZw/23vh/T8AUy6ga7OQdlNqj+K2G+j472JivOc1Jzq/C/dsMUUkjqfOnY2S1Y4fKNhP3QGKSo2WRCuy1Zck481FxGYYujCk4qdY3ErLAkwWz4rkJMQVC53+HIqbiXHFG/XtaRtlEujvUcjFSVXOD1Jpr5N1q9Ch7Tu0NBHmop6TkVHtgt3+j3aE5E0zWtL6sZck3uPj/wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az461xt7h4_e2etest","name":"fv-az461xt7h4_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cd416d91-20d6-40f6-95ad-320ac024404e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.007","status":"Disconnected","lastStatusChange":"2019-10-25T23:57:00.0207011","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"3c7e380a-9ed9-4320-b9cf-ca4f2b5b14c4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwrM3VP0rbibr1Ww2VrNxapQFeXN34zcwOrsOiy48MAe/B+TXBgEdLSr5CalAD6TFBQo4ADhjFSvc/3IVXbe1OUJk4Ounx3OJOwz5bPm+u2s1lfXq/Qu1qdg3Gl97m1vWrSNtwqaOP69rntgzoD5888+ms0pc4Dtwmrh2tBpbNP0bLd4AVsD0r8FjdgVVU1Y27rNmWfLHMxOeUgMNELPxgaCj/3AkJJqFlHS4+LEbVmibx6GwLuyQfgYSu8ClvY7UKyQoHeq253zmgjGEMyZHSOv8KcfjgV/8m2Cv87n4OQMa43Gntxao0zXK/cs7PbQ0sUavniVRoTquFDnkbe+MlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19298.011","name":"0.4.19298.011","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"799cb8f9-b75f-4b48-926d-a00f1e2b68e8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.011","status":"Disconnected","lastStatusChange":"2019-10-26T00:02:00.2681833","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"b944820b-afb1-4a78-b945-ea3157942c3d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzI7kJzgZqbrvZ7qNizVDv70ZOUILnCDQykOLYs6f4yWBg85cc7c3B3/6AzFbGCvmxari6ZYazh7twdUkUHEpsx94So1oN0StKPon3myvclX4VHM4I8OaYjXFtz3pX6e0/3QvvHWCEUT+aoxVK/+Re1sQbjrctBPZIpcI2C1Bs7buYWYDFzFT46eQOajEZcDK+z+pmtMPjLqymDHh8kiqHGojj3POQXSQP1t+qDuSdvsD5jyPKAGpROhwZqHkFobTJGSBJc1MMRh4pLFOdZ6/MZnfyZMpPPLktFaXDxRf1niD1Roe0QzigVmSHuMUAm8EJp9bUtpDDyWJK+o6JpTexQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az5994bqs8_e2etest","name":"fv-az5994bqs8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9d6d84ff-30b0-4a6e-a501-73099395c12c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.011","status":"Disconnected","lastStatusChange":"2019-10-26T00:02:00.2681833","errorDetails":[],"displayName":"fv-az599","machineFqdn":"fv-az599","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az599"},"vmId":"292b0162-fc31-4372-947e-49438740f76f","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwMZCAvhInmOc7HgsRzJQvJ+WPk3AdF7swrMkvwZoflENLI/GFdBG6loAT/3qiMoSR55VOw0AzRoCa7ddXDqunOUMJCxVnfo9liubJ4GMfnWRWNix9juLpxtswhsgCy10QL549ESBV3Q7253tl1tQOfi1AS16rO/0m3jfpdTP2bUwJMxNx34XofU2IbXI1CNNswiE8rrhH60pu+CSnKEukqedEy8stlBIyI3LsjAZGXuQd+wh5JpDTTDvME6I9YcgDSk63eXg/uxEQSj5845iwUIXOWCLcy1k5Skqr7vPXiEbqtGBHmLXwhTSMdevMwNpkK9SYEDU79HBe9my6YprrQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az461cd3tx_e2etest","name":"fv-az461cd3tx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d4e4b08c-6c2a-4997-8ba8-3556212de84b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.008","status":"Disconnected","lastStatusChange":"2019-10-26T00:02:00.2681833","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"c71682a4-43bd-4bbd-9223-d33a85e6b394","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlIKuVV1WXwhk91cs2ehutBiYGwfV+TeRdVzq+zJrZUMujLA/fZ/HpuInBrSktpz0t8DYhCUKvPyZ1KQTYz7E0WJCcOW4b4eAZKT17Qm5mYGOzcdVGAK5VXF0DTLBJ1SY7W4WZXnIrhH4YFquyw3ZjeL7+xSabSWRJwxlt2Tgi0xpNN6L7eGnc/w6eV9ozoBbYgRHftKU0myy5VkoQZ0vs6jEWuWkUnIwYJsnRLKsgoub1W8hTUPirg+tPiJyKTrmgq4u6Lc55Ve6K+B1r/Rl2rWeDIX0EeTVJrr6Mj9GhZcfHI/MHDDljgQ2Rntp3D54RnZqixJcLj/9cIeWys8FVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458w0ozx_e2etest","name":"fv-az458w0ozx_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"62db7632-16e7-4425-b95d-3d70ca863e31","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19298.007","status":"Disconnected","lastStatusChange":"2019-10-26T00:22:00.4836673","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"d70d5aec-3d6e-491e-a2e9-74ddc41f7aa5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAn9zTCxGml8m1W8JxXGHJscKkIcSzdbPTQLpDx/9whIDbEG/TdsUeKjMFmsgdeKD74n0nmNd2pHJvOodJU+xHCAInthBKs2NvZyObG9+sFrCwO6IGvpYmKF6g/BeRu3DVw4fbs9J+kgiG05CkT2nQS0vfdvdbQfWP+rL6uoEGFAmPK4xL84i+eUqxNS7eSz1GXOHP4jPRPjB3g2OODB2H17j3lNNk3B0UemE9jg1mFUXrJTEZzYlihIj8CfF8a+CElJCqLJMTueqcRuZAXh7OqMhyl7cDSqy2mHaoH2Q5LzkKGxpUc+NM+or/OzVG6YHn7Ji5M397vK/7ZQSrzOOmSwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19299.001","name":"0.4.19299.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"f2e086e5-0cef-4f5c-92ce-b562f27b0870","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.001","status":"Disconnected","lastStatusChange":"2019-10-26T02:07:09.8002198","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"d7192d4e-9506-456b-89c9-459a02fcb2df","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzsK4Y+PK4/I3kYSjW4pmjMvQ8AoXHHwHBHaVb7GIZYFqIB33kIPmWVBoZhReruEKldpwI+LCC0yCOM23YvMC6PEu8GYD6pcRiSE9bZUgTpkGl+9GO/V5v6MCxccIMjB8Nb3U1ln18KjSLeibi5eIAtfn0g4Ml7YhvKQ0QVEYwdrPMCnlkKwMNxdVqTLOa7I1U6NPeh95g9f4gS8tvmCKw0lzjXpL4hfQ+2OhmkOicHSCh1pS3n7GqFEuplE1gKqxGAOVeuXd1x42jYrodNWLJ5P14b/cKitXbJgCY+tF/NFsqWT9FYKU57jgu3XE/pvaDa+12Nd97tz4tLsDtFfSuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456fk4h3_e2etest","name":"fv-az456fk4h3_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5b8171e9-9318-4647-b4e9-d6693b92234e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.001","status":"Disconnected","lastStatusChange":"2019-10-26T02:12:09.880616","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"c43b3798-d387-4bf8-917c-b7da1e6519a7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAua+cX2sLcJFoX1OrC1x4vzClXThtAYC5WP93j5XCGCp0lc8tSx/0eCkIzMQ1dnSnQYLskJvagiB3LBctnT5KQdcL1Pz7Qlr6nupoM7WvNigqqHZxEaW0gQq5zhQ1UzH8Iq+4cLlXgPhpb6baj0x0asC6PgQc+B1z7tPiuR2wRa0524VTQEZ9M9kRCfAYqu+xsFWUc0xdIupweYTKjra6TjyRyysxoUM7ctZVAy8+jjxBY9A6j2B7B8rs+anMktAoyiKpIdQ1O+WrLus89ErfyfaZOCIuUz6jWlGlJlYI1FRiXAUtNUAA81IBXSyeOIVArZ3+1KxkU92gzMqkzQA6AQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458v8lhe_e2etest","name":"fv-az458v8lhe_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"09f12dd7-1355-4ed3-86cf-052c5e3d81cd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.001","status":"Disconnected","lastStatusChange":"2019-10-26T02:12:09.880616","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"f81c7948-13cc-445a-97b0-22be23ed98e4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4IoKy7bwEBsdcNX2Q5J5TAZzzdLfR8DrAsgTQBjw2XtuiM/7XKnWaqgLsORtEG3D842TVXx2HiCcSTKmt3rJeLnRHJQTwU1ilq0AaPp6z6jwxHx9nla53b+fuhDLRWVgLulsvUYinq6wKXcu3qvK+ItIgewTX62A+PZWoQmcUpMpwEVliGNTOzAmMzABwR29a6QwOrtptaVfCB9cIClSJOKo2/kQTgQ2LOiAoAqztqIKFBWTUmlaijpQ6HJjdqCjI/ttFMKJDacIiMLMdqw2ix8loLOp9pa43fFbZ2HGQdhI/z9wKTiyPCAHcaE4U6iOSIT0zcterit8X0e1a5deVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19299.002","name":"0.4.19299.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"a0f5877c-48ee-4e9c-ac49-6f7c2dbba821","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.002","status":"Disconnected","lastStatusChange":"2019-10-26T02:27:10.0331629","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"5dacc1ca-17bb-4db7-9470-c90a4d336fec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx/aEF3lpDW0wagmAkmxCft52CrigVVwkQyeNLVQCWGuIiiD6BMczQT3JQwxN+THENddPulouI1NGiBDZv1A6phtKpN8lvF9dnQhd0/Yrf0c8+tGWUd5rjdINI5K//7+7ZhhnvCTECrnvwaTStg2ZmdnPtIJGCCspuO2nFXZ3o0UU9qaRrQvR0PiJvqUf9wYbcEhU5h0+yKVP7sTZ36nvmSun0uIHlmOPTYnv7407sT3OH7Ssj/Rfvdc0gRdCeDGjWgpjVlv4W8dvkxHXygRtg3v8WSUvEWT/Ob62JckTATgz2HcRW68xYdtLlfh5JMq2jT5KWeC0897w2xjahaWjFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456tquc8_e2etest","name":"fv-az456tquc8_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"45edbbab-d92a-4f42-a939-d59fb3cd3759","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.002","status":"Disconnected","lastStatusChange":"2019-10-26T02:27:10.0331629","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"f2024591-ea7e-413d-9999-1a4e67b62863","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0H5E4FIaAVI/Pvxwret7K/71/HgHJDBBJIsWqFV/PnM8SfvxTxnEZlNdKj3mf0m5Bn5E7Ug6cO5NzxPdTr6Sed07ILqPa3DU1VS65qOOP9YeYEANInES89WaepaYeQNgo5vD15tPpTpQys8XrdhZgAbK6V99lme4RsfD4FHYC2I8CS2sENW6pWRoZZFzl1JeLZUNge+xJye8CMKJrDbyh9OmzUZ/KriWbbkqnQki6BWb0rFKMDiSE/9AULhcUUukxT7eg/FN10MrlPWXQlKbdBfYZFCKvpZF+LFPQMzuJVxZgBrvIUtJ1D5BNoQvfCFFTKdIEfiomvhVB+oLQ3ss9wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az461o9iab_e2etest","name":"fv-az461o9iab_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aac76996-f6ad-4eb9-a357-a68e930f1343","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19299.002","status":"Disconnected","lastStatusChange":"2019-10-26T02:42:10.1701326","errorDetails":[],"displayName":"fv-az461","machineFqdn":"fv-az461","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az461"},"vmId":"7935ffa5-075a-4a1e-a1da-c4d3a5f96139","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx7cQjGkP/qd5FY6F0swlBeyOGUSJEyAx5Kd8cF00+6u/dSQb1PoYp5jRQ+Srao9y+gkmaN68cAydiHbBTDv/w2ULV1ZXshKd8n5BvwnSyD9Q7kU3z9XpZxLqF4i7sZK3DEWyCO+Mj0odnlKQ6rSGwFwCo8UspG3zidWMqgiqhWeUvnGpVTio6tWFbGyKdLbOJWE6J4O53BFCpydhQMhHwyTHQjVZ+odZ/Z4OpNCVkz85saFu9FhDS6cI4PpaA2yDtyvPb+DRxe/25rxm2aOtAzMInzgiB7g7BtNbZaTt3tP6HUBSE63UF+s9tj/DkvtGcfbpsm7xzp+R+rx+p1mhIwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19300.001","name":"0.4.19300.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"4a08e1c1-1a79-4664-a2e3-828ce3ff0630","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.001","status":"Disconnected","lastStatusChange":"2019-10-27T02:37:17.1481652","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"66773207-e91c-43b8-adb0-d03b8e117075","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAziIGH/naB2oS5SGQpdrtpNDwMs/OB26vIDskBDHpStWnPt13P/CFn5WEOSW43KsxvYTC2EMSKK4SlGzostIb/T/57yPFx50DppEHOeEBNPQr/3eFBJTbq5gttbisaVKS0rv/6l4JUUk3skmUjIAF7sgZiOQDT1+HUB900datZmwlTPddzbC3mzdumF/iDmG2miPTyvFZRFVxhbOYdzHQyABbF4e4cZxjiEU7PzlFOCzzu016AkgS/ci2Sl1wOHYZIQKRG/6hvIkYi0ajzpv1NDNbrBls2MGJ2dbuzBDRkOtmT293Pl5WOKhHf8JwJwDwiyPCQQ4Xcw5jPIcNRl3VUQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az601fdwsg_e2etest","name":"fv-az601fdwsg_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"670a50f2-3e95-4361-9d07-a9f867f36e19","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.001","status":"Disconnected","lastStatusChange":"2019-10-27T02:42:17.2317161","errorDetails":[],"displayName":"fv-az601","machineFqdn":"fv-az601","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az601"},"vmId":"00aebb6c-d204-4c2b-8524-ab785cd40d11","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAszAkTy1ADiLzhguePlp8gUOXPEHT1CFsgjWTPzNHInglIP/FP5vyewmlynJ+OCss1Uan9FgYVNQHYNnzJkppyFrq+KW4QCq4EzxeTq4HZQoTxNPJjGa4BKrX6ngDAmZu7EOyGLLydmLGD6r96zkioi7WicMV5Z5FaPPzvQeqS9j0jJaCM9Jpw3DFFN4vWoIafJZ1UH9DMpLRWud66Mlwyw/LdiEZChrhsZ98pVv++sCugH+NqdL8uozmmf+cZ6GO9NBZCid2Ro2ulSPKSmnquCfjscDl9D+XaHKEUb9Zq3QWGkPBAhkilT9+v00g7mzpcVvVmxtie50B9dRyhXokDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458z9puc_e2etest","name":"fv-az458z9puc_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"49d367f0-ecd1-47ea-9036-7460838b713d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.001","status":"Disconnected","lastStatusChange":"2019-10-27T02:42:17.2317161","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"7e1cae00-df2a-482e-82ac-b7476fa80732","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8T9sTlS6KFaaO9aP8EWu0uOUEJm3HGqWdOcIpyhtAYefJ9VzvJgj6JQhvXj9+uL1Tyg7BNXSQaPpBSia61bwlhB+JVO+Uc3vbTiek291DVpffLc8lnkhref3GRCVFVOIa79JDWD0Mztr8RXbGX+zCzQkJeCuol0q+yaxNZ5UImJpvL1P4LLpy2ewT7rnxmnX+DD+0caNcttUaxBSdlXLCgYDtR4+MgU8eOR7b5lXrE4mx4gq2PeKlOKiTqt07fPT68fAiZPwZ29SX6/THs217InCan3cPJvnxbWtSfiev9Ug3Hsm97Gx7fXDt6WKeoxGsv+CkyVxW+3q/tjvvYJ0rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az4589m7yj_e2etest","name":"fv-az4589m7yj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0a12a144-03c3-4d68-b0c3-59c9e6d22a38","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.002","status":"Disconnected","lastStatusChange":"2019-10-27T16:32:21.6637122","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"0e487888-3a36-4853-9e29-885f9999a010","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuJ4tedm1BRoyQSiWtgi7fCerewOdVoaU7c7JMey/M2UHGe8/lypBibQlGhgQlsyTRvyIf4E2QgKsAo093oDzUYfoENhTm0ivBgxlXBpVfTiuZ3MD8XRKwYhx/3roE3CRwTDywJr6ntV+i1ciSqZBga/lLvYAg4GZaz9cmz47+GdH37pZXuAmHG8+An9so+5xksv2sjHUs5kBM+4EybcHmWes/2IxC0H77wMmhDCRjKBoCF/lmyapGFtd8eUGqB0v/PDjtI4DQD/7u2GSjI1SPBQGiWxpEcU1SbgRmggsOcqR7xOWo/vPUXP1S5MjVVv9RMCEOss6Sn34F9kx5OB0tQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.001","name":"0.4.19301.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"81ca395c-f842-4850-8038-73a341e568f5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.001","status":"Disconnected","lastStatusChange":"2019-10-28T19:57:30.8964037","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"c217112b-54a3-4e8b-94e9-b113671cf276","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAkr3yh9SXr0VqecbDoROil8RUEMaLIUeIFmFuD3Tq7lWj5ze4lHFucAZ9UFXonZaBPnI20n/I5WyBlPHsK/2xufhtoi27nQDj1fZLuhDfqNexJ/32wNNiYO3aiAAI16eNUtOsVgXgUzs8z0t3Q8uHtExE1NS8KQA2/9r59lHjKDQCMjz9QiaNOPO5fcvkPrSGAs+xAM4gxu7OhT9d1LMRyTZCtMlUUBulrT7IzD7XvaFRvgEpbeaoUBaJq2fIlgNx6JvuNoFidukIFqS6FTAk1efWpYKESM4CpzN2ogyx14pTxXgNvgm1if4NW3vrcQUyLqB/H0FIIjXwb5Ygf8OrlwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456wgkzj_e2etest","name":"fv-az456wgkzj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"5f589cc7-5f7b-4ce5-8c88-6e690c60da1a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.001","status":"Disconnected","lastStatusChange":"2019-10-28T19:57:30.8964037","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"822ee380-94f9-4aaa-bf3d-8612a55f1a8a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzCoz5emsLz7tKrbYSouOIzMMolcJNnyIi+Kb7kItnjhWi38Vg69rqhnJh/cU6+UnbXlyfvVbsJ4B2YOK5BqeLMsLud0zEohLKL64Fz7B1/Zf52eq/FfNmJ0t9xaUyfK5+SxXE3LBywaHGi2FnXRmhHSZEtHwNR2Hk9qq0cpXgrGFym9DUG47/guFeqYoeyqU6WOzbHS2/myDjAwkp0N8Owj5YBtjFtYmhCRKcROe5XfmY7d1zd7q0VtjiH8myW40rkGRs78LHW3W2a69CsnEUEXMs3OZKcYPENRqwDlCGCQRz9RGvq3N6YMJ39or4HqN1HdOYefVzTZjsx2mDvrIoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az464wln7e_e2etest","name":"fv-az464wln7e_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"d0168baa-b238-4388-8e4b-ef58c12bd3f2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.001","status":"Disconnected","lastStatusChange":"2019-10-28T20:02:30.9840804","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"0e8153ab-580e-4356-9668-8f1d31a10fe2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2svtDkijidPCEo7IAcsd+Opq5M+H2i8mEb3rnZj7lhahB/0Q/eS0MqhtUUrclqtH905brb0g1cnSY9D6m77vGA7SdV2tmGZO+rZ6QqDMw1STadUAjNwP4ZkMVnWEv4pUON7bBKD96GQ9rGcz8vgzzAkPeTo5WrBUemsBt6uNBNmDJH8WYs8/Go3kNJC+do5qNiEKYn20GWWrSixF1Mys39XbH1kD0wtrMbgjzGOJnfgKg2HEjSZgAGAf0lhV5kvdy8fkaQ8YGnBW+5gx6s66dykEgZbNvrHnSmEK2Tx4tPx8KmGsE+GRVy/HocZmvyqN65g/XBSLEBQ+LqFl+d17ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.002","name":"0.4.19301.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"14bb19ae-a059-4bcb-841e-82ae127ec1ad","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.002","status":"Disconnected","lastStatusChange":"2019-10-28T20:57:31.3897772","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"c7fc9608-3491-478a-9d25-fea2a36c833a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx1hbkMr7MSLNrrM8TxYu8evg8BBKWc2be527M+FmUmEu1e+M5xbYVLOysBRopxY3PDEwRd4Zeb2zRLhDjARtnColIBIGK4L+X4AJ/PtopEp1Wa+OWr+HwtcrM1bbioIGFQnTPAYJC318sDH4BF8BRzXHnNf8118H49DYqMAD2PGVS2SBPEGbhrZAWTYFHqeVIBpxmRoa320Dr0W6GjbQdf6NUp3qTmSLVnY3gR1vFqmy120nFHuL8g9HqaG90ypczIkF+nBVPMFvuJjUgMYPuWJtnFaAYShNPSZ2HSzp2nYVHZIDiw0bk1rKFETnORT7wZlTUUYBFF+cT68xm2admwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456je4rz_e2etest","name":"fv-az456je4rz_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b582133d-3fb4-4528-8941-e22397690e8e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.002","status":"Disconnected","lastStatusChange":"2019-10-28T20:57:31.3897772","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"2c877a8e-fe9e-44e6-a5a9-3505b0a883d0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA05h3Xa+PgGBcSsiXo/JQNJUpVsmXwvJxXFJMdjK55/8BY1J96eGE6Z8tsuPZnuXH9pUSUOtTQsrlEGVs54MTc3nZLJYrHhdY0gtm+iEKPOmovg6iP5HCw/Q4GE3CsZJh/H/UXgRwAcPKNwgTEHLoM4zo2S3pLntXP/vZY7php8W4oOfZr075HUT0zNG/o1ROWkFrX8UwjzFOZhCu0FidXKyOjFTinWL8mRDdk/G6AdgXGUh7cQ9xFqYwrsen/MfkQVW2ptuI9W0klpVnG1BwYU/O6OZ6zzOSc/0rGwyMQf/MUqGAgSjoUuk+frRs8iDwcrJYKj8hLaElhNrKNF8jbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458xyh6t_e2etest","name":"fv-az458xyh6t_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b514ed1b-2a70-46da-a1a8-4eb11c3b69a8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.002","status":"Disconnected","lastStatusChange":"2019-10-28T21:02:31.4888004","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"019cb7b4-f4ad-4d76-aa3f-49a481acd58b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8GLe2LoZiMSNo/nNp0nBActcIvRniyFGkNKHq+RN1oQMHS9gU+LbOmZioT1Ccsj+oZO+KUriH9DwHL42nT9L0RrYjo/ECuGbMQgbX1fvOoyOSUR8xX/L0dFVlzWvhCYk9BtPcmItnw1dXKiriV39UfUYRlFRRKLAGWYC0vI+pVNdYKrAKMaXm53FOauUkl4tAHCGRwP5FsDojblBGmUddU6TIgtw/BDQNA9L66eoRZ+2tU9GTbdPzI7eSeuakPAT0S7JQhQrQy31aVFqqZNxTTSR7MsgnvDPpkprx+Dq0K/eiblJruZAZ6pkl3GdG+ftXh6znWKXesluj6rl0JsPuQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.003","name":"0.4.19301.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"1bacc665-846b-41af-b1bc-c757a88f5af7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.003","status":"Disconnected","lastStatusChange":"2019-10-28T21:17:31.6127035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e119ddeb-d5eb-458e-b472-dac7398416e8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqXpMxFPqxU7QzreJwA85g/xdJLiGB5rDULoTJL7/Onr8O+jo2e4D664XeVZy7GsDpxsLLxtcFHJ34XOIGJ1pbM5UMxIIMbYXgnzkpzXedldNVXt7AwMpOCtwvOIQmWj1bVQ3x+o0PLFbswd7sXJR/ARgVGsf8w2KLOcn1kcMcXBfHvM0y07MgY1Z98ig7TMGclyLrVXz5i9hlfWDpgLlSHaxNK856FA9cJK8lgNhSaU0XcOhAiwo/0opmXmEy6PUrzY5yXTQm1YlIQodtv3dWbHElY/xSvxSotSh3uyPuI7fMje2oDQp/FRp+Udw3LUGlVowa1uOptqTN1wSVa4y+wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456nwyfp_e2etest","name":"fv-az456nwyfp_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6a078eda-1e1c-4d09-b7f7-b8ff42b6cf24","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.003","status":"Disconnected","lastStatusChange":"2019-10-28T21:17:31.6127035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"7bd304b1-d3a3-474d-90ff-7604ce6d4b93","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA8VP8OPfeLE8Lk6XhPtIGB9d54uyITYUBDVvh/eF33IjKY1+NlCL5HWWS7a55QqiFEk+V2hmtsFcnWCpsS+kFoyEJgcUV9QVQqQx1l8tho2JjSxs+NYpSkEM+M7BkYyctKTPQ4ThhYH87qoFqJOD1IG0NinZK3D9EtyAMuNx6vRx9GCnAk2QqUNcWBt9TbiOP33OHpii+YPBwjdN5LPbPz3kcAF6l/051RVBFGcpXoF4WcHVLkAISSy9C9OFbV1qSKURfSPIuO3w6jeA/PUstW45+J24jYm/msVj5WWaqW/zhxwWG9DJU57FILptPTuqB79VP0mgwzFHQpntepU9JLQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.004","name":"0.4.19301.004","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"aeb5daaa-b802-49e2-affc-a205017314d8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.004","status":"Disconnected","lastStatusChange":"2019-10-28T21:17:31.6127035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"45c538e9-e3dc-4bbf-adfa-b053ce4bee8b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsr+XVFSWXG+BPwjF5mpPsRrKg21+xHLU5QI/zop6Yf+eKqy4qCrrf4y1UBkT6AZ+mcT+BNhCSKtAhK5KJZXQ2I93LjYBQEz95C/k/my7S1hTp5X7PNFpCSJWKuG2gwcVFw/bPIxd2JMAGhltmJl5jJ2/UThHFbA86XD1TtJX5hgfnc7LinFA+3Y5EuA6QC054TRAxwesCwvS5nTwy1r1INm89RB10wTOwgUsl9oZpondofwmI+7HvJMLcdEuCprinmlrwGn0Rt6x43hENCxaEQMx0LQ0VBVHpoID7ACvLT0huZS8mpD2OTk25fFstQIhN6qwhp5OiaX4UTGrGAvCEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456ibqha_e2etest","name":"fv-az456ibqha_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c057e3b9-b584-4787-9c41-b7f4132ac666","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.004","status":"Disconnected","lastStatusChange":"2019-10-28T21:17:31.6127035","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"979e4ee2-3f28-4ab7-95ed-6323745b4f00","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAulOJ0sT119WFSk/wC3AH8pE+zim8vVn89jaJ/lsHrzfh7e4GBd+ij8m26WoOju1Xfw0bKtt4NTKGT11H/nTMVKNJEj+8GFUglyzaYwBWC2zO9JMWKSO+ngUTRFRb35GfgpsfAjzoMhNKsowWfAvruBkMpclq6riRqfI9cU1NxO4FJumMqy5N6EDAweShciM8ExC+dFD6FGfgFGcWl0Ylxt9Tq1KLdatIID9apgFQ+qwbpHwRYWcu6EO9vfPZkPB6M5rSre+c9r4VYO3FwDvyR3MwEtWiu67aa/BjrKOemzw2wKhJkcRyj1WWrZDWaUcObks5LbCmeYjfsHCRxNKswwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az464q4syh_e2etest","name":"fv-az464q4syh_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"000ac974-da0d-45ff-bfbc-799326b3a941","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.004","status":"Disconnected","lastStatusChange":"2019-10-28T21:22:31.7477909","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"b292800e-35a9-4f1b-ba7a-cc744e110e53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvtc+myXARkabqK06KUoXY5PtgYb6QfV7ng0+vy4twiP5edmzpiqNt5kL/8/rsHK6sEFXMEzGqe17ZKz13Zm36v/wcCDbmjD3zyL5J2Eouo2xKacXifLG+KZeFrs+D+zbrV2HYSi8tlFb9jCTd4CGQxkbIQz+kAykDgJWwa35MVcnauEmAhiEkzJkRda6I0e5qyYp1+VcntE7bAj7BdKrp+DqzKTPhKAYcGTC65Zu6C5SNlbDUKRF7ZFah+ql4JuySsVgFC++uYRMELRmqibGS5yYmRNV06gm4norbnv2SPcS2y29vqbKoPrUCF5230uN8gAtihoZjnGVumV2x9+NWwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az464sikxj_e2etest","name":"fv-az464sikxj_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"ab45d214-45fc-44fd-b5ce-7e38e521806f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.003","status":"Disconnected","lastStatusChange":"2019-10-28T21:32:31.8485251","errorDetails":[],"displayName":"fv-az464","machineFqdn":"fv-az464","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az464"},"vmId":"c956bdf2-25e1-4db8-a08f-f0872decf7f4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvcwYQVP9QotCVlckXJABo2QEZWoZyJhMd9ZNErYnTHrAEF2OskokYc/GqlkL751iy/tXIhKAWuNLV4BpSEdCZM++U12G8nIMJLcLpaqb0hxOYvchX4Gw0ZqYJuvyHghId/hYz8Qv55nDRdtH8WQ6mxDlNGqgVxZZ6fUGA9QEnELXRbHNGyjXoNYoGt35wdFB5wcAOWp5At/0vg92a2DShLvK2SKqKvKd2tuRz0LqK2dmYPHZGMGxM4eFTBUBxDvLahaFauGlghR9DnvnqlG/YUf16cZ3WxB0xjfZkAUnO1UVVlNsYpAiovGo9j1U8yl2UymuUvqw66YWstPp/5tqCwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.005","name":"0.4.19301.005","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"73c452a2-4b1f-40c4-aaed-b78b9591df42","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.005","status":"Disconnected","lastStatusChange":"2019-10-28T22:12:32.1568652","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"97c4f7e0-a3dc-476d-867f-87908a1df5a2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu+z7gZWYUtUcjwEZ2szuvvZY+KKXOgb+GEMMTHMgRLVLlLWL1/yEcWE+hv9zmVRZ1q6EI0vuA3nG7sVbGvHW5tgQXwdkAEDMqqiZVMdmdPJcjiHePxsBjl9cE6TH0jOgUclY/gJK0JxPMiNbHhejLWCcVL2+dUvzHV4aRz6cU6VbDC4EgVq60iGx7utA98mpUh1mRd/wQvAaD9MXbOzJHATyLIYoV95/HiLjv3P+jjau8THMHUnvHHNcQL4Dv4hshUE+alVQxt+Pq77elvQoO6pUNtglud2z1x2uShZU1HMvGNQRxBWVAYQDMh1rZnxz7vgkTph8lEsREvHn4MWjlQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456zy69h_e2etest","name":"fv-az456zy69h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b6bd3aaf-4739-47b7-a60c-f2e38772a2f3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.005","status":"Disconnected","lastStatusChange":"2019-10-28T22:12:32.1568652","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e9de2cae-ee59-4265-8165-225f5efc4cfc","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA29EHtQnilTlFUUAx0EDC9ylfK5/nBFd8lb5YoRGB9KeVSG/69lYfnV1Fmn99OJuTLZFCHVVSyYam6h4HxoZuR3zuEHaMPIdt56+pnzY6xKXlQ0gam4NevM7wsaJeqDLcqz6xiQgxQvO5BadAAchKzvCDdHhE8uVB5eeLyT+Kwm/10GxXPs3/KSvNuzPhyV5T/yRwiY9MxVE6KQB49Avjaa/Jc/1rDkrFQ+HxYTUT3F/ZSrLjkU+k/e9Lvp84m6aYfceHIRNlZyikvIWG49ikaD+uKth9i1EHR4t76ZJeQ+L5sctQJq0Uk/BQpG9+TXh4aezv8c6jkIMj8ScuSO+oZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458xvm5n_e2etest","name":"fv-az458xvm5n_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"eb9444d0-d09a-4f13-923a-42a26a4d8b5e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.005","status":"Disconnected","lastStatusChange":"2019-10-28T22:17:32.2636772","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"e4aa1c46-24af-48b3-9d97-7d645694af42","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAlFqbkqHMYb7RLDswT+XvrvtVi+vg793bGg2pMN279Vdx5TY0YqnzEY8rR4YOYaUkKqAZTtTn7EZ9f9ECrf3Yt4RkPWBjyVScgC/xEAT8V0ujUiIX6XYNvGjsVFdD+NakiYvjeiq82bWZ9mexUAnrpavqIZkNVY4kxTZ3wbht+ZU2Mn11HjfVjaEN/lsxpWcrSNAYmvqYZM7gtH6TLdoWG5GwPkpQKASq5dNAz/1Wx0y8V7nPfuZCzdZGkLz5QTJskZGqu5Na/SBO4ZbmZNdS2mRdxy2o/Wp/KQQ+g5+6vzWa2tUlR3SPJG6n/kHg727wjW2tNnf67lDtzlMB9oG+kwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19301.006","name":"0.4.19301.006","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"cb8ff3d1-10c5-45d2-8479-f223862e0821","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.006","status":"Disconnected","lastStatusChange":"2019-10-28T22:37:32.4238116","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"d046de3f-8671-404d-91fc-1e20e8b240ef","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA51ETEsHubXAS9AMrBJkFBrVPv5TlhAfTvTWosblrxXXcB1UHIBXW0oWAFLvnQHjMSXLJmKVjwOQB2QhrE5wXyBNpa02wkPRlaeR9OmwrStKJ2iKcxlOh1ulBZo+jVcfHZqrWF3jN9MLe+R5hI1yX437gYVcKKg5zJsFhI8u/qgABlcXUNswpg6dyknBtY6QEbfPobkOTCUJotQ3MdOUXp1Ykv79oKEQbqNjdcl0FONBZizLPd60R0XdpX9mw7qVJGPbWN8HnNCu+bMDmPcx94PEZd1sx9jRypl0cFn4vJcvbmZTYyNUsq8vHCPKVOixsn+unMnUlMKI9wG2e+pp3ZwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az456wkqdr_e2etest","name":"fv-az456wkqdr_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c10ce187-bada-4985-99ec-ea694ad8a8dc","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.006","status":"Disconnected","lastStatusChange":"2019-10-28T22:42:32.4967552","errorDetails":[],"displayName":"fv-az456","machineFqdn":"fv-az456","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az456"},"vmId":"e2ea0c21-a21f-4b17-b9a2-5b75869a08ec","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA2oPPHckajBxVrXj4URVElUjP5vzpbf++PhLWQF98PEVaZWHfIi7U9ULUdYWL5Q0URhidkrLoR9Ywp1f3qpnph5pIwbK4tDftIEOhi/NhtVOzXO/3S4dTdH0UrdjIJHKgTj/zXCXpDqENU5IP0tgqdNJ6kbfmaoQwaXMoJG2jXagTmE1lrKUF6ryJHkAeZJdKo8anxovfR0L3Ki7JMNrhWERneUyZpkRXuycH0u/Pze0bzG9gHLKK+JSpkIeAbRQoZt2v4wgpkZ5lqD0yUGga+UdOv3commY+gwqB0iC/wKvMNasmD1qb55F8sxx6HfnAEVytg39S0AGKqUEjkFq9IQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az458wfa3h_e2etest","name":"fv-az458wfa3h_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"85de1908-fe6b-4566-92b5-390eebf54295","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19301.006","status":"Disconnected","lastStatusChange":"2019-10-28T22:47:32.5886523","errorDetails":[],"displayName":"fv-az458","machineFqdn":"fv-az458","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az458"},"vmId":"3d62c3df-d4d5-4265-9c6a-43b9e0f2f9c0","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsaHbY3lIct0SyXFKb2t/levlLk9GRE4nlr/zVccg/e/5abmSWutertMTkeJBESYmUFtSnNoX6xtqfpXEFBHZJa506OMF4xOhb7zutGT3OCmrYqTy95+q//4Vn4Z+HWrH+QF6IRzLyx7ElZP7dnSkQYJ+34mpJ+Lzi7t1YNj4+Xbq6yyeUeQKd2u4u0tXGBuhMALJk3Ih4e69zj6uxrKGxwm1THVXLw5w1o4KbfpiVoPqnpP5NSy60KTUdWi+D7oqbpcXFRb3jdtdFovaPkKwP2n0JJnmZFNKTqMgxgAXD4rA73TUTzNZtViYh0du8zLr4TEAIIdsPbJZ8WLPzUNuSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aaa/providers/Microsoft.HybridCompute/machines/abhinav-z240","name":"abhinav-z240","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"0c20fc83-a863-4090-935d-6df90d714981","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19300.002","status":"Connected","lastStatusChange":"2019-10-29T22:58:57.1040683Z","errorDetails":[],"displayName":"abhinav-z240","machineFqdn":"abhinav-z240","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"abhinav-z240"},"vmId":"658397b8-6f76-4186-ae12-5af55f7e3564","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtzAkERKrV/XyjZimCc4sJxJgZzndOiiU2hDMrUyKn8OlQkcDgTXvFCsT6OqiIdYF1KbQcB1JMB5GJys6Wvhs/Wl0CpsFxzgpEQuFNfEb2ga5SZlqtyb46GnoVRd/IhYN1EuuFdKSJHMXznkZYOFPtEAkTuLWKgPADJ85td2fqrZLYj2VcLpbUMY9DW4Wf+EubskCo14fHp2y3eZoZxG5OWdmZHjo4YRp+veoX3wA+rWP4ee2LATMb5Cul9gXKFi+HQ+bPuYsuuJUGnfYSa6n5IueB357ax2/wqmf05XEnIrAukxl+Zkg5vtv2kpxjNoo707+8DXu7FE7B/e5vSaQOwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-dc83654a-6706-45d3-971c-98a6c49ad78b","name":"release-dc83654a-6706-45d3-971c-98a6c49ad78b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"23e68daa-fad9-4f5f-9bcb-d8afaf6e3140","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8059775","osProfile":{"computerName":"jianyunws1"},"vmId":"c7fee5ee-c1d1-491d-b548-5efaafb365a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxhW/HVxPaF9oBo9cjAGhAwH5vL6EAIl478r6y8h3WlCSnATsiVpPQBMLB9aWwjq3LnsrjRl7VNw7+2TAFRENZFTF+O2ZsAoynOCWAp6FrhnedCPz9LeKp8iorqBBXBY4gQ1+MjNPX4mKhvllre4ByHU6A3dToxbBbVi61WFVJ1B1D7YDpLIo1DDqCDTHmT2l978rCTNVrgcSPbU0YPumqCFbLPJdKnnBWZzoSMQVywTaEBw6mdoXlknCmrDT9fYjRwgPWilYTUee4Zp3dE+84aklhzIc+9ovoolcnWecWpaovE2lKx8F3XRXNMgMy8TfZw+1HRpkQPkoBJwNVInwOQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-2cfedf4c-d4f0-41c4-adf2-b9bab0670b1c","name":"release-2cfedf4c-d4f0-41c4-adf2-b9bab0670b1c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5ff73998-5dd5-48f2-9475-685176b81a82","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8057938","osProfile":{"computerName":"jianyunws1"},"vmId":"c939e895-247b-4501-8a9f-074650fad8f3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAw0yOn35elnV2Pa+Hd7SmJnIWNzZkz64J0Ycuj4WRAUObZFBvgxPqUSck2CfZmpcSit2sIHR0UHEfm5Czfy7+6/dZYXxP99T7pVJiAj5MloYTgHmAxgADhHhQBUw/spV8yxJ4YceH4V6yD4hgv/9Ub174p6uzqbByAmwUlE6FbdOTdQIPEFrIAZ9ynFS8JHmy6PVL+n8gCchyjdkROBnbq08AvSeY03ScFcWQN2PigRaXNfM8HmJTPnymLtLdtW7c8Kv/sj1xlSogzcdQ5p/tx9DUim0zN5kvP9mHpMqGzr6cDrE5xEcXQt+vEaT6fjHHaiCLMdYAp7A1GZA59guwRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-da790353-4172-43cb-af95-f1d78d844422","name":"release-da790353-4172-43cb-af95-f1d78d844422","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2e516c9f-643e-4214-9eb8-98626b7be5b7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8057198","osProfile":{"computerName":"jianyunws1"},"vmId":"e4c35c0e-a813-4b62-8afb-7b9a299c0412","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsH+UqHIYvbnWSLYhn9Sn/iENu0AY0HM6DjOUrp0Io3AauPh3/vW1mDkwiyw9E05RXTP0Xo0pqiKF9G2vxPt1KN/ZX1xEz63qiWRTwpIbxeRKVjw1W6insevcEs/js8D/cPsVRvXGrsonA2vEczleGwAuRXBNPIRxhmFBVDEA6VyPfyRrp/YPgzTFB3QIPpnqyoi19ABAuMDUwXtQuD3mtjOLYPB1YC3Ydej3fThrVNkqwW+6sce+ED/yJXOTAlNj5cB1WO5i2r2YOLBJavWDf6hH+ehcj7gYxXEgqBrMjpmkUAgV514biaPbdI+VncgUjfs8oN961csOf4WJ+JniGwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-a04a412e-de00-49f8-9e80-fd3d68340ec1","name":"release-a04a412e-de00-49f8-9e80-fd3d68340ec1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8a4cf09d-3cab-453b-a7a4-c4085220f60b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8059847","osProfile":{"computerName":"jianyunws1"},"vmId":"8b390273-0c60-4614-8032-c052555c0839","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1GhQZvPKujCxyV0DU37FdcvrmCg4grM7glFLU3mRbfVTZV9VugoYqH39fwdKy8w/OuLOihEPzVCszzuWWayP/YeRM/e5CNWrQme1mwIXSFefRofXluWtWbZeenOCKNTlGq53wXwmkN6dWLhA7sTbfocrKxph4kksRUZMQpPiOjUpTT+eb2cP5E5ijxdfshCYne1i9NR1tosht3l1g2dCxjeQyt0Z8O17HlO0jpHdZNWLyNBTxoVGWn2CZ4RhnpegwJqR2WHjjABuXd0S0+CQEPhE9F1JDI+SL8Wn3LhGdzngXrV7ZYnPHcwqTUa4ISGfxdE24ZAhYjPNjKAXVDjXXwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-ec2aa3ea-d1c9-44e1-a4da-0f3db7f22d4f","name":"release-ec2aa3ea-d1c9-44e1-a4da-0f3db7f22d4f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a0b362d6-e9e6-4eae-89b0-2eb65dc4dcae","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8054494","osProfile":{"computerName":"jianyunws1"},"vmId":"08a1d2b9-ab01-460d-a3cf-f411e90294cd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAr0pXjYRav6Ic24xQkWgNsQoRBg1eSS6RTjd3pCoE0SWbU30ouEru9S+f4UPjEFvLBl0ZoJDCq2P9I3Q4lW5A7Uo/9QCRjV8d44o4anb3GyizLGlNBk7juQUIxAJdIBd1FtuMz/FxKLwDtDAho2X9NBlP83PclDu9N1JO/tAYr8ZIosS1/z8Few8RPQzqd5Ja2LQlRAAZ0UN1DSewxv/WRpK1DLxDx1WTvsVcNEjlK0r1gfKHPSZcLOO+FgI24kmHutH+ykz6PigazteMWSJ9fesepQ6ol6nqqC8srpUuSjmpyguBW33ID3jSmlzIzXKykWWqXAIjOooLBX2VywBprwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-5b3cd97b-f69a-4f46-803b-4f859fe90827","name":"release-5b3cd97b-f69a-4f46-803b-4f859fe90827","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f7fef657-2680-455c-a9b4-e243d029a89a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8057766502","osProfile":{"computerName":"jianyunws1"},"vmId":"abac61f7-2898-4872-a1c2-e091ea386b64","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEApuUfNKVMxTTGIyrIrS+1O5/rUXDL6voVfwX/CWTZVeK8ssVOG+k2ih/lrdYS7KdOFIVX57+VJrWUjcsprAAxohBMFXwAtQEdRDtCDBlQNdDkFiifV8MwjL/Hu4C8Xc34JkUOa6EgKXdOz4co+jJbhKMzWyHCWqi1+q7PiNJiN9v6vEAuvPUOO8t0lBErU89UJ612Y7uQ8FcbjMwdphUOnJfeNFivv1dngv1RBnBGSpfC0KCW9u9oOCuhJEHyQqw2RjOhjTVkGJJ7n5yv0U9iJZpQv5vNu2+dDhk1FIXp6rnpPRiqK4VYBYu8wzkruIdAugnha+k5xdD7RqU9nmvw1QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-d92b105c-8f71-40d1-8064-422e321eeca9","name":"release-d92b105c-8f71-40d1-8064-422e321eeca9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5283c951-1b47-4d52-8157-25c864f0fa2f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8057190","osProfile":{"computerName":"jianyunws1"},"vmId":"3c253d9c-06c7-436f-9935-006d39057efa","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnMc35uHa53rziJPIso4LmiT46Eg/MWtjJb3wG9TvbrfpErX9DMgqCvQ0CAsbypuNO8pC61kuhhsghcjKZ1QIPrYOybY5W2iQaMHxMq42K4X4I/08Ayshfjm2mKn5OCFy8AibF9YPrAcH0H662vRuZi8x4ZWVOa/sDdJ/dP3sQbbUz3CuUI7RDrJwOp1eteATRKcM1/2YtnNZrbGKZD/6tg+Ys1BWBTnyarVY9qYPdArteat8Mz6+nszrUvwoQvybJ8kYu2rgoA4zPnM0SuxR2UztRn461m2xBIdK5GZ/TMcndHbPRSyco4bvol5hce+6ID1dIpLNv079omnFxEk/SQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-83d8d8b9-6895-45a1-aed5-8e58b9a6c215","name":"release-83d8d8b9-6895-45a1-aed5-8e58b9a6c215","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ba694f61-1d88-44e5-b453-b464b6420ee5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"0f6751dd-8a6b-402c-b888-3e3526f4f49c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyvEMhIcfexb9729DxGcElIlkSh2OPVMbWGiOvjwjJBdaPjicQP48T56+DorzJM1m5R/KY96Bzx0dRhtbywz7Fp777rl5sIZQg2hcBFRAklcyk1SHUwHGKl6iykzEKK5fHaVutfMmdsFABi9DaNOV73aUqzUaJ1lZYC49xg8tOgXwOy9BOZ90Ebw/oP60Xp365Oo/GPeJ6nxFp5il3mLTp7GeizdWIb2Ep7yA1I57HYH0W1dRi7zDmrDsLYulyTDUckEXX7bZYt3BF0nsyKKLmd1MjjDZVsjg2Xp/y0dagRKYj2TGrecbxYkVTFqzKoDtN22X7RUoNEw5XGDMMzicQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-ef553779-06f7-4d9a-9974-af8c887769f4","name":"release-ef553779-06f7-4d9a-9974-af8c887769f4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"025cdc58-545a-404e-8716-06d61906f7c0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80518221106","osProfile":{"computerName":"jianyunws1"},"vmId":"2e4c6b95-70d9-4693-9734-052d0b25a72d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA6CL+jbvVoSbGPEq4hwV/HHgOCQhm8ugpF3xjiXNHYcNIaRO5y3LdPXeucPvfhL7R1DrkMuTh1A4iWp4ZJlM7Dr+mEHYbZtpD+XxtTMgurjmuhXAz9Pipe8xUEQN1PS26oMTekfG3692hCA4qK7aS/Qw70w05Qg4RRip6KT+eyOWo8ADXQL3TftTcI/qUZz+WFrZIN+irjRWGDof+LGjz0GlaLlLXFEpIJpBiOUKnWks1Q2Dwmbpf264vTwYkmEVpv1jpWcqTZqDKJpUAld9VXT/mYW7mYt7V7KCJ0ceyvPvzaa11fhob4UJA1p5vTrs2HqrWkDrQTNUdOAhqHdEfTQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-8fbc170c-5067-4865-8b6d-8c7faa158322","name":"release-8fbc170c-5067-4865-8b6d-8c7faa158322","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7ced0482-b13d-442c-9c5a-1fb08da4dca9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8054854422448719278","osProfile":{"computerName":"jianyunws1"},"vmId":"74a37f71-0d1a-4652-818f-7a599100acfb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA1u1tSx8RiUxxTA4289/Q1ANEvVqs4jsRgqlB0WQ+gaN6HhyLH070RKmSf4mP2q09PNhVcsnFHH5x1tvRRhDqd6esTrFrgT/GIgp4AYIfUAuMxOTwOV5HEgT/H+HkJrr4ssnU+8morvd+Aq3MM9LZzfkIMgVGtHTMvKkNovrRoLSTBaHMtF3RTbpartS1vCO/rCRtqYq2Wo72vNqXShMatV/E9IaVAMKVdRgzhakleQ1lZKe7cH4lFUd+znKzWH+QZg42EUxO1ffMYaqsI1Ba7OrEsSsbzD6ehb7LQ0y/1cMGQO2rTa2idKSM3Pr1vdYfZiIKJaLzfrSWZTNk+d+HiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-650ac85d-5fc0-4477-b428-ba3fa3c56236","name":"release-650ac85d-5fc0-4477-b428-ba3fa3c56236","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bfa36f5d-2a67-42b5-b3cf-96e465d5b6b7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80589203078355573","osProfile":{"computerName":"jianyunws1"},"vmId":"80591b84-5dae-4c06-8c6a-715fbd7a751a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3WfMGS8xW6M0GKHKD2rvFbX1WyEup+3TXaWkSpKx283bSLWtxkqwOYEdVoPNkuSCc6JllL0oPHlr3+NmqcafDpVjp7usekrA8vUb5f7pY6vr9UuTSEVEQqFIqXJPQc2d6d/8aCq+HSC0wnXjNPQk1nFuTjV+cKvTeyPwTfWqM1ReB1/69aQ3tHWWxZIt5obptV3mU/nh4i/I3/iHgRpUE0gzsl8QsywU5ZTD4LBnqoeRVc2uPIsplia1KhBKw9KcXJyaQKA7sfnUuCemdawYyESs35h2X/gdZA1rwMCN4/wq4U/J2Ctmgx9AXhjlxjScYWfrTo65oAnI+LuepznQ/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-ea32377b-4bce-4037-bd13-f002514f1e1b","name":"release-ea32377b-4bce-4037-bd13-f002514f1e1b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"464e6cb4-0531-4933-adde-d103ec35783c","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80535348514","osProfile":{"computerName":"jianyunws1"},"vmId":"b9c1d673-110e-49db-9b50-da2a39bcdc8b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAopde0Y/tFrjz6t9j8SDfbtDes+ZeYLAA6znAIEkiusDoizlJwEne7AEfQCgXr0zDtk3lyxgPk3rPuE6z0Kmowo9T/qT0TsJnfogLJLsK+uSEegKDdjfnuCcau7uRXOW+YQOD9whNPFe/3OsfALfvXF7AI3RZVqZ2A7iJnFE7uf09D/ztINd0mFqJ7CgnT0YEBfC7eRhAYQXxqT0uZDXZQ0MZr5xhYDXu6gBN5PM4hlKtf9GBMVuJSTt5Oqj7rqRONF16knuLZtQPZ0LE+uzGLyeIYm6WUXqJSTIQHzglA9iLpmu3C7jKQs04P3Ng4YGp4qCMsx/pIfBCP2QxeBuuxQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-90189067-10cb-4f0b-98d4-d80f881eadd3","name":"release-90189067-10cb-4f0b-98d4-d80f881eadd3","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"3b5d04c0-dd40-4522-b8c2-80e802fb3bc4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805236712","osProfile":{"computerName":"jianyunws1"},"vmId":"bb3faf37-253e-4aeb-86d7-cca5aea77745","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3IsFOQeYKoelbcAoMC+WrU5g7yYW9GrpoXASv3HWeQP/v0yzUncRbOia+ib/Qp0QNfA2I1xplRL7IJ94q22fXZ21mbO7KMv0LMCd1xevijmTrJ3lWCdGHJOInhNMBnlFs8BCOCuGlWCov2WtsuHsNl47hKun7+XQus6aizzqkitS1JlO/NrLNhgg9mv+u6ST/riws4bV/GDjgugCGHs4QtzYmtpQi1Y6anNCVUyQRvgB77rBJot1VzSp4KNuXa7yHm//j7IteGZCvHjReTtJrCNWXAnV9KoJcHbiOkUQdYSm/1iO5tLcg3sgnAuJMkxY9U4jwF84nNIttPocGP+7bwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-2d4a7cd1-c713-4915-8e21-3b39440fabb1","name":"release-2d4a7cd1-c713-4915-8e21-3b39440fabb1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ba521c9f-07d1-439b-95a2-d1aa60b9152d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8056885473350230","osProfile":{"computerName":"jianyunws1"},"vmId":"7a568956-64b5-4c18-aebe-0acd70ffb77e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAy++zMQLquWipjDyDprXYDryP3O2e+Rqw2XtUKVm0o4N0wjGLgA4eEyINNbsf6/oH0ECAIcJ1He5eaBaggV3R4f3PY5rsDKhGTbYur2OSFqrEN+f8O1uQUx2HW/tHQxoMAUJjCzPXVpjw5GcQVsqPO97jBjObLEPlTZx233S8HKqQamCckVhiS7r5nkWVja/gD0M07Y3ELlZH0G+IPgZo4HfmY11TU4mHKH1U3uY+4d/ML/Tg8DfLZTJfOoUuy4F5fWnmNJfbwxhJ4v7wmWxTPw1/f8kTQwDijz+QgWYXUG7EschL8KBFUiW6+508G3pXkhUbheKBD6rqlkoDazinDQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-a0658581-7c89-4925-abd1-c202ee8ba7d1","name":"release-a0658581-7c89-4925-abd1-c202ee8ba7d1","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bf2b0562-2ed0-48fe-878e-4b9db38c7da9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805907951156893","osProfile":{"computerName":"jianyunws1"},"vmId":"c5d84ec1-690f-4fad-bf8b-17c0016a12d9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtgd8KOpIqubdnrKy9mtKfsIvGkImV/U9ARNi8qOO6sOp7b52AbBMZHMp6vM5LLCsgTpkjfBhv61RAmojXc7soMfutIkToQ/7y56Fc4dmynwHZrRiM8Hm9s/+BP94pNbSLUEbGXLN/gOWYNhilLt7pZlhJd3oFXz8JE5/9hT5EYwyX6sGZO+pg4vncJo1byVaCVwosvD+mii/UPHu20CP+qHLbNBf/FtvdVTDS8LodJA/wvtV8Ap+zZSQf0Sn8AJtnpwpQF4QvEP/05P4NQ7SXta2ZipKjcUinaDLh+LIKr1GefLsljf2YaDr1uh5pfhWtEeUjnDSAhKvGz++MqXRHwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-44424f96-e696-4d7f-ae1d-6fa49157aad4","name":"release-44424f96-e696-4d7f-ae1d-6fa49157aad4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4740facc-8245-4154-8b81-2694e2a26526","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8051809774655018781","osProfile":{"computerName":"jianyunws1"},"vmId":"346a900b-0409-462f-929d-b9afecd5f3b5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAv6j01KNkYfyellQm2v/BoJzhOhDgJz+efDVx/iiwQ71/0z5GOCUR4Jtsbv58K+80yB9K8tMONnTj8dMUUyIUHteU08kESlbqL7jCqLOe/Oymg6BP+K7b8f2SPKtWl7YVylSsvjnPVcYuCrouZIBKspL9dsdKZcN7Ssn2c+jlHna5UKnhAV5Z7a+x8LQ7XLRe+JIDsaERxGzDrkbb1fIEjkCzW9yW0HCz7cDq+gbJtLsyBWRtdp8o4i3Yibn9iS1LIwwol7nNqZDgpdQUtcig9PYS6DdGv4ZZMY3R8h/XAWGljrLB1fIhqFzHOiwv7iYkQ3RZlFHzHHieNYCDyFNH2wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-d1278086-2253-475a-a164-5bc92dc4868a","name":"release-d1278086-2253-475a-a164-5bc92dc4868a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4c14163a-08cd-42ef-a027-097824d5b661","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8052000","osProfile":{"computerName":"jianyunws1"},"vmId":"8b4885b4-b9ff-41f3-b24c-939783be3d32","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwzbOSwNJWCZ0D0EUrqEftFI+p2eWc8iFqjb9QMBgL3YNq4xM96SY2kbzAhk1kbgYff/rF83fXpkVDSR57GFiJueAJXG+jHzeTXcxn46FtrsGhm97V+vTqqAG2/h/7GXx8GCsm0LDZBWt7x+6aOE8MYUWNgi1RYWLiJvAESiZhJCIOSeA9VUVWr1tdYhm7lLZkRR7/CMY+F/mDMbw8VJ/2oguErChafU588z+vQoIBa4T4+fXtN1GcZwAwukqTYVCasJ7SrqYadq20lgaFLdK/yJa6OWEed0a7aeuRKfSS4OZQlTHOiKaqDFWykWxhdQJslRsX3A5+XvkJOq5Gc1TRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-191e6175-6bff-4f89-adeb-5b89ccc7176a","name":"release-191e6175-6bff-4f89-adeb-5b89ccc7176a","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f2e96019-5bdb-4d50-ac3f-39d9bbc492a7","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80558985122","osProfile":{"computerName":"jianyunws1"},"vmId":"5f28bb78-a617-471c-8d6a-e83fcd139089","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtVGdEkLU64dQ+WHTYSlpdGrIcPUdlv5rbb/UiK6EncFitDMyNWW+y5jG++E22k2sLfFqlEMOTzXfh7dVBPNplN2N2gkw3oa4wp/dgzkzNWyK8+upVC/A4ITaFE6k7ycaGvN+zpcrRazbkZy8LFPzjTAan9uMAZLuC10N9e4O8b2xmwAlBUp+TqhC8VJa72qtpPcTUzevml5fYoDaaWNyAiHUes0J/zaRAk4p4eFLhCzdpmctNrhCVpIZmTRIHjHtHDSLjXIMF0AsVFusTQWv48VFecY52/xV3GDmqN23NAJ10HJbTPaXZDKROwXJbl04TqmkRNAS071hU2Pn5UP0JwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-42169e7f-1bd4-4eec-b14d-e5b591ac1efb","name":"release-42169e7f-1bd4-4eec-b14d-e5b591ac1efb","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"04f256a1-b134-4d75-848e-705e3872b788","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80561139536","osProfile":{"computerName":"jianyunws1"},"vmId":"21f997b7-471a-45dd-94bc-57a50bc91ef5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuSm4EgL5zW6IyS3bSVpdlMR5SUZeUOg4WQABEpMzyeKXko9qqE+fv9eLtXS3lp/x25Bs0o527DAdGlVHIfsmbgj9U3MQn/sscNW4RL3qzhm7/ApVH2TwH+fds08W+/yvpQl6cb7QKgvwn42OX7U6G8Z5YbVL7CNhfp3XULQY/lOy1s7Su+yRyWpPDUAghZ4y/xw1H2eMtwg+LDatsaun2/wTJf7dWpqeFmiRpnV+ch8uYWx3GoMWDPcUpRSuSxHimfWeho84LKgPkebKFBlF+LtAWMOvpVmzxJXqaZGg6P6wyScyZUNTgnEcEFf+DmQnqtGls8YdGZ1hvmCSlYRAEwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-4ed54971-de35-49f8-9305-e71e01ab7243","name":"release-4ed54971-de35-49f8-9305-e71e01ab7243","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d9d177a9-eb36-469d-80b8-eb9c0c496e8b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80536768499","osProfile":{"computerName":"jianyunws1"},"vmId":"2b85700e-b3ca-49cb-a7b9-51f3ae4366f8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtRJhtExKCtT60lX6fCkgIHpRRD2Xwz3T9Q0sXjZtDOJrH4wTL+zjutcc7vrd9OVlsN3qFjF0CFnNwxjnNpr338HBWeix5OKDZoKYTtLyn3M8O8nmkePnhOHIGC3TEf59uWG51R7ii4sFf229P5Q2S5N2zn/eByPcWQIna5fZFpUbgK3jG1GHfQrbv5bPh5qiIT5vxrYBfv3teZzkCflta+WqTkuT2MKnn6VxAhf6ZIbkldSX4VuM0XFBq6qr2N8xuJ4uNdG+pnWJK5AcwxDyP0/+fD2Gklhq7DbbqF4t2II/1Vbj/YGYwYvidU0wHA+mrbzo3FrfE6qQDBJjS1VaHQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-4/providers/Microsoft.HybridCompute/machines/release-c3d667ce-b2c6-40f7-8920-16bc9a0edc67","name":"release-c3d667ce-b2c6-40f7-8920-16bc9a0edc67","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"83530f38-4e32-4305-b488-e456b6618346","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws4","machineFqdn":"jianyunws4","osName":"windows","osVersion":"10.0.17763.80543996055","osProfile":{"computerName":"jianyunws4"},"vmId":"aeca0df9-42a8-4c7f-a535-2b216950a557","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA80jPhUg1OVrUMEjPF13YL0tSR9WdTnBX/DmvqhqnFcQLniZLKrZtxbVe7GpwvL0wpNgbHKbEMmuJ2yOnjI3oPPVqtoyOd7UgpO3esMU7ObAD70XCThnVYJL9Xw+epDsIBxJu7OKXnYYzTCXUNnst7Ljf/SAi+J4OMYeMfVqKO8s7Vs5bm0F6Mv0Wmxuz2dXQFNfmwvj/zTB9JD/ZKqrbE+E9k62zUmsKBHylJmNsz4YtP1v4ylxClK/qxO5u7GXEJgH2daqDSWijsGxrTJgxWQykseMT++JFH0GRtTtysA4jxZsrnrQXVqMNhhxAZoI1YdTXdE4qdDRMdse2mZO9kQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-932bd050-198d-4051-8b91-fd339f988cc6","name":"release-932bd050-198d-4051-8b91-fd339f988cc6","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"ca290946-9004-401a-8102-e29704f78e7a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805359788964695","osProfile":{"computerName":"jianyunws1"},"vmId":"9bb1e2b8-6bb7-47c8-8d6a-a1f2149a0d79","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAuHmBFoGCN0u/kjGjHDEMply/MJshjjdMQNWn3jTIfPWa7/tIYC//GyRzfSoc229GFD1z97hzNtKUj2wPy4NByPH+JpSZdRfOU/gSGgiwRrbCVWq5vWzYdRsHp+A1tvJGKnndnaUF7MM3LghldKdmdnnCqC/jRx7kbDezSspvj2RXpVWdW8/LM8/gLAiIa6SrgdhbPM9VkCgMVYfJyHhTwRBNyZF8bfyOpUBg38nMVaZ4X9glrHu2CEmhWulI5EWLInbt4CHiCIKWQIeHNtFl082lQGRmDUzWsSLgJyb0+sxRmf/4OHp5rug4e7f7ThqniQyBB/7DDTcrzgn7T498rwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-5da97a6f-2c80-4850-b854-a9c10dbe5fed","name":"release-5da97a6f-2c80-4850-b854-a9c10dbe5fed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"050ed883-5605-401e-a571-0ebae19e558d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8054186","osProfile":{"computerName":"jianyunws1"},"vmId":"9e1a1bd3-ae72-402f-8ff8-9ecd3e98f124","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqJQh2q9erYo3j3QnxvxqoOvpGk4vcVbq9pfrCeVe8+3p18zYQld3fjfSWH0vepEd3TQuas/pcoKaaqeFMV6GCULsBHAWgsmcgw9MlYEPdCaCYv9dk7thzFElVffNxh/oIaa3UBkPWWQJD4O6L+1108JdxewW+ox0wlS2KWm3PhuiLr8hTrMOD7TcBrwrhoYlVqpdIgBJna9IGYlxodN8s7WhPFp9VcWuWAguTIUIHcOITl1DZezTBsug60vS8hdn25+BDFlumbcdsYzowj8OH7h7BDDbal0DfzRnckRL1DvPlYUzCoZRs3i1Pprqvan5+EUXRvNsfGvFBwpYPBwAgwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-0b93dace-f31f-41fe-84d6-704d074c0748","name":"release-0b93dace-f31f-41fe-84d6-704d074c0748","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4d3e8756-d529-436a-b89a-032b06d228d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"77244e68-b1d1-48ae-a601-532b129be818","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA4bbWwh/eKz+ktEOdRJGyHYFG3WacZN8IrlkPyHB4c3ukkKd5jnORKyuY08uEEmUXsclQXQsguzebmm5U0KuBGZAPxuI71i9ifoO+cy36ukhYVObDH17ayhFR+POTom9VDniKEI7B5KQotgjudh/190ELhfqAzjSOKTSKMZS3dq9B881MpZ3e9tg/G5Gh9UO24X2cirzuzvO45QbOGcTGvKQdByMAfysDyBanpjMDy1/GQUmKDBTgizi5aYW4YyFmdQd1oFRAZv7dHo9DT7HcfgQ3U6y1reD4Aw11HCDi9pTfrbmjwDpc5uxlM/FK/yQqtG5e5UHWC52kVbYuXbr+nwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-3b2ca546-32ed-4962-bd25-1b42ab7ae8ba","name":"release-3b2ca546-32ed-4962-bd25-1b42ab7ae8ba","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b14705c6-dd16-421d-b4d4-193b63beb82f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8058095","osProfile":{"computerName":"jianyunws1"},"vmId":"5569b2f3-80f0-405f-8f44-2df6835c1a1b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxGhqWlHMpbWm7VDu/1IOXes/iAlWDOf5cw0TKss1pZQ2L9wF4z/V3Ddlw6a9jcjS6s96tZpUjCx54mc8sCtffxZ3xWPtFd9AbD14oC9t7dGOlrmeRrw+tA2CMT2KfoJZCksaLqcemdo7jOwX/HsT07PbetYhz5KPEf/uWggx+XpcrUPEMkHjpHV+Z0Xq5SGVX9dDQKf/SxpjxQAjekgssgExOTqtQD7lXKJy37YoqHTepHuTKFxKs/dQSK+HL4GeeT/EKtOs7FsrGYzakv6bj6mHnfciq5ZhHGforohLIWVYfArwZiWMi9/Ym39yBSPsxvSfmioU3MsauoMTJJkwgQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-5f93696a-77d5-4a00-bb77-2c13baca9387","name":"release-5f93696a-77d5-4a00-bb77-2c13baca9387","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"4ced5f52-fc96-4640-932e-2c2c30f917eb","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"28bcf79b-73ad-4f4a-a389-75c0a5c1bc58","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsG+qEZc9AsYx/FurOKtUZxCMlQuszrZ7KV+ltKfW6/iWawTaRzZLKqhvdR+RTMP/Ao5+0yhMvYsSMh5blmxQlQ0ZyoAoh/Bnpj0ECUgp9QyErDZ0j7Mo6BVw56DtlUsXFLs2fs2S+Kkmd8sffOaraTvwZZKzBH5SO4xiqYN+SMOiKDzaEJj6LvdiO+79gkPTJH2BzqNP08t15bLSzu19+nq6ASb+AUqCti9Pzhro3pmXCzT5YdVCsIEojzKOqx/IwlJhgXCHVq3RwBnFWmzW3tXyL6OqOs/yqphk22GLxzU4c1kCyo0Gka/B1gvxA7L9kpPQ2jHuNOVKeKZZwmthiQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-fe3fb761-8273-495f-8f0f-a22d0cc53a6d","name":"release-fe3fb761-8273-495f-8f0f-a22d0cc53a6d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"f3ae8c23-3874-4c2a-9c5b-91186f0cee7f","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80511864159605962353000","osProfile":{"computerName":"jianyunws1"},"vmId":"7e0aa779-4b01-4c78-a0db-5da1f3b5e228","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwJ7BTF37BpXtk2GvA3ZUnDcb4I1xt8ROnqQcXomfpvfCq0egOL4vqmvt5PPSr3k1fuzNzGeREZcKexaBPbYCTH/rR+rT5VrZ1MxvZE5CjJkw0wHZGqwoNHuCymYI0uZCmRZl5ZEsZLbG1z7XBKZVOh8+sGFkNuUtYSSXpyRq6rLdUwGSNLTjPkvnyUlBAxaJgaM7MHrY6VdhSoqvASbmUGeiAh2kqTwtJjNI6bykoeH0hnK50TwsPyE1AoDvHWwZUgJLnqYFaQ+weCoHbb6PrDW1J4jN6Swsin430/pAQ7PmYSt80C1G1kDXmtKTRvGE7jye2JaJM6iBT83RJYPlMQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-ccee2334-ccbc-4584-a9e7-0928e5f155be","name":"release-ccee2334-ccbc-4584-a9e7-0928e5f155be","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b0800970-5fb6-4620-b7e0-7455f906b456","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8053635","osProfile":{"computerName":"jianyunws1"},"vmId":"65d42566-df0f-4bea-b78f-74db43b6741a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxeT7f9KrnVsiO4vSZj9F/V+t0rUS8od8vsPzJr4+FWyoCCAql0EJhn5YL/LmJnylVFLcLkRcqIaEgfWn5GlECdO0u/5CBlnKvo3vtUUwYPwmMS1rIwXXp5vXg3TnRC38Z+wa/o2gxy9Elv4qb5QMGzWyaco+ogQLLJafXj/EKDHtdAKjVDV9mpGvOzFqBcEZs4jMLlJ/MgQTiizM8obXi35fBPSfH3GVBEPscEaxMAP2zPhL+oV3kSSMhOpbShxI0A760yAt2TQ1KBAByTKhtogVbkagEradLfXoV5G7kr5r2SsSgcM7XhGjVoQDPCHp8ajoM3Qg0G6yP4AUrpINaQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-cba4ecaf-c143-49ac-8797-faf53920061b","name":"release-cba4ecaf-c143-49ac-8797-faf53920061b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1bb50a76-aa07-42f9-97c3-7f82c7e60e8a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8be90ea4-2b60-4a23-8f73-ce08eaf34e1c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAu1DNg75TLP2FJO8BgJc+F16OZPH2LzqOUYu5w4N5snleO8AlMLAKEhgyzReFhovOhHmxE3RAALJnsZ0BG3cj1RibxjPxDRyoKI+l8+/R/yph6Dqj3SCV8hko00jMqJlvUXBTvOqLs74FF3AINUkSyx/zivOgyRlFhbfeBwEWfVtGr7G1iqQjbKDG0Qz9XX+P98fLvRsIR9zFLxYfx1S0MTj5B9oxf0HH81fIr2aCiRC74KyYpuT5c19Xr/uFqwj2OEfUxq2cqb7tqKkXbkLAF94BD49EKXqTgntv397S2wIVlKD4+hlFdsKtAiwZN2K/MGOZp5/1yMWtJMYEFZSMvQIDAQAB"}}],"nextLink":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TY%2fZboMwEEX%2fBZU%2blUAMBIgUVcOSlqhJCSGV2jcWh1gIG2GyK%2f32mnRRrZHnXPlq5voiUXzsXgituDS%2bSAGskvUKBWuIpLG07bqGj1W1Tmla4hrTbpCedy0e5KxW%2bS7jeUuajjDK1czEhmXYubIZOalijKxcsS3DUTDaOLmdF3qRaWrTsj0pcMvVOclbxtmmGzyfspYUHqubXYfFpnxLKOaPaUOUvXCK4ROkDR1FsxUNKU2L9wQf7u94RZqEVZhOZNOVLVdGqOul6LIO%2fY3cOPQFfx6hXMA8xWfdQskphO8j6%2bLRl5EeJ8I0tAQlsXdDTRMiXL0JIcboYfAqaGSa%2bkioadSboHyakfcKQxREh8iOl5EdfcASGJTglR6AFwBzIRawnBmwKOF3H3oQ4dqUlvgn6i17Tf4nv3nq9Pj3mem0R8vvy%2fSl6%2fUL"}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '117715' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:53 GMT + - Tue, 15 Sep 2020 00:37:50 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - e9dce3fa-1611-4352-b161-f96271b402cf status: code: 200 message: OK @@ -1792,44 +3016,2936 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - connectedmachine list + - connectedmachine machine-extension create Connection: - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group User-Agent: - - python/3.7.4 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.1 - azure-mgmt-hybridcompute/0.1.0rc1 Azure-SDK-For-Python AZURECLI/2.0.73 - accept-language: - - en-US + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/machines?api-version=2019-08-02-preview&%24skiptoken=TY%2FZboMwEEX%2FBZU%2BlUAMBIgUVcOSlqhJCSGV2jcWh1gIG2GyK%2F32mnRRrZHnXPlq5voiUXzsXgituDS%2BSAGskvUKBWuIpLG07bqGj1W1Tmla4hrTbpCedy0e5KxW%2BS7jeUuajjDK1czEhmXYubIZOalijKxcsS3DUTDaOLmdF3qRaWrTsj0pcMvVOclbxtmmGzyfspYUHqubXYfFpnxLKOaPaUOUvXCK4ROkDR1FsxUNKU2L9wQf7u94RZqEVZhOZNOVLVdGqOul6LIO%2FY3cOPQFfx6hXMA8xWfdQskphO8j6%2BLRl5EeJ8I0tAQlsXdDTRMiXL0JIcboYfAqaGSa%2BkioadSboHyakfcKQxREh8iOl5EdfcASGJTglR6AFwBzIRawnBmwKOF3H3oQ4dqUlvgn6i17Tf4nv3nq9Pj3mem0R8vvy%2FSl6%2FUL + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-6984d3aa-d017-435b-91c0-a8c86beee35b","name":"release-6984d3aa-d017-435b-91c0-a8c86beee35b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6cbddc8f-1e77-49bb-8d8b-c1768db46ced","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"cbff3287-6f4d-4824-a02f-7a68a014df55","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtK3QsWxnky0Pn15VfvoXQcy7VSlUfedEX81gGOGmgOl83dt81kX3zsFfMBiwk9LrQ8Wp8vceL+kx0FpZpIHtHfPrnRd1xjkze1RwU90cp6ZGlzNsaI5nPHNC10YA50LzcKGKmxotU2AWDT8oehMR0lG7ny6K+6RvW1l83OiX4T41eCXXfKDDtz85OOdoVq6G+2oIX5pRut0AH3H0rSGPvjlAeF2JZv6q6v5vO0Dmdw8LsVWhI0/SQ3ruyNi3SOidTgPKx5qaS1x5ueKYtAANb4BB+9ypTEHjxDLJfVGL6EZ47cFLF4+Xy8yfoVbcUKAJUWGgzB18REkOFLBMmuGbQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-17b44589-60c8-4ed0-9a31-38d9dc578eed","name":"release-17b44589-60c8-4ed0-9a31-38d9dc578eed","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"baf6a480-ec08-4071-a2a4-03e260f30292","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"20d7517d-862d-49cd-b5d1-eca95e87a974","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAx8WXPlK0QS3AWnF6DYbE+ts9jWxMMaKS4OeTtZBfpdDo60lkqbAjWIVvQL4W/N+48aixcZhS5v9nOkKh5cE8LRE4umaTigaZDsj066wn/DVc/zqyZ33nUzYazrlCauN8jlPFL3XfecVpVc30aIPoinmI+VmJltK9eSZZrVMcUO5+SC4fAQTOrdy/OGLY/eqyPhmEid4gG5Rj8QHO6Iy+HcK+F0ULv4QAiAHx6a8M5R6126aE90wxzM7AvPVr4C85pzwX9H+6Ce35xh3UsnM/98DX45MeDBahLyfjNwH8lxiYpfJxWFTtqZksCrxefaGDnW6S99DSAGzjEafZG5JkxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-b4013f9b-0ea6-4c42-b221-cf35281576b0","name":"release-b4013f9b-0ea6-4c42-b221-cf35281576b0","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c4769ba5-c2f9-4581-87f8-9925669b6e10","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"b7b590c4-774a-4c44-a9ab-78408413f6e5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwqC1nGzLHQbyOz4xa2XZw2VDMv6LSCrEG7pbzjNIhBMLbsPbzRjlVYTadgaAWPcAo1j3YQ5NLMZe/WI77e4ZzMhfeAKpJyuX3VE1x1Oup4natB/cpnhqR+9DdA3NQbxeO8+IRyoXSwoFA9XNPXHvKDQYyRtvUyw+O5d++eVxfxVqpF6Vna9zn4RYWYpEaE4DtKGS7+yoN122D7mIZNZ28PT8e50G1dxZ3GBJaiMPAFhfaneo7T/2yXneUvhhEyC/9un40xwzU0PoPRNydAtxic00tR0i7Ec3XHjmY+UFsVtfWG9HK1GPmaWzaUld1hONF4med566dyqjRViF6wJW0wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-bf533b85-3ef9-48ff-9e19-2f6ad12850ba","name":"release-bf533b85-3ef9-48ff-9e19-2f6ad12850ba","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e3157809-3be4-426c-9311-83c79f1cf3b8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"18961924-4bde-4617-b720-6c83fe6dd17c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyi/4P2lAoMrLO74ddnm1TmMODzEGLE9i0EwJ/MLd4Mj3Av8TRU0wL5gMQEjwY1LnlxjpWUsFVa/QvObFUPuqafMEX3N1HO8js+g0nUWEggFa9EIhg9yciATvY17EzXdHH5jd8UFrWa1B0vZQp1kM1QnilecZANcHgkYd4GAe9v7BnoMZlILY5a2t6ifxE+FbmsSOLimr2alqtg1/kKPBsuL8CLzQV3AjKBaKlFAGyX2g3aNdxe7nMDAqhmXtj5gBTo5bnwlLJPPYU2pAobDX6xz8y4O/NmPUEnYTPelM6IuNVO3KyQPu9R24Z+pXBwlVmSj26VuaiSu4EfiGKlZZpwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-4b55970f-f5a6-440d-8d3d-bca7ec242cf9","name":"release-4b55970f-f5a6-440d-8d3d-bca7ec242cf9","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"78216975-d181-49c9-ba89-be5ec13ecf2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8058834","osProfile":{"computerName":"jianyunws1"},"vmId":"0632c2fb-127c-42ff-92ea-b41bba75c597","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA9GCy5UxrlCsrQjby6uBcwKNINAU7Z74kc6nTY0Y4sCCl4wOC93Wgg23YxzlHcYv/0liaQPZDq5h26kqF+mozO3st21BsxaauCCIW7MdDszWvS6WPa+ebjqhxVG0/a0Q3yMVhuqWqEWzJCzU725/25Hu1FpMPgfCtgSoms+mPeK8bb3bytL/sbA5tNYqhin9et33a4kEaNtV4aq8hzn16qvyilRT9hU4jlCD7ty4etjcIAtjmvxxJx4gpfHDDPRij+RwEOBmGUC8wK4LskW53X9X76Q5cu1TWE4ZSBuEs6K/KqATtNT4sfJH7GyNLIhqi1nVzwcOOFFVoIOSFSfL8WwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-c4114569-0ea2-4d27-8ef2-37d0b661ecbd","name":"release-c4114569-0ea2-4d27-8ef2-37d0b661ecbd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"7487f392-8a94-4c7c-b218-3066c92207f6","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80580528552","osProfile":{"computerName":"jianyunws1"},"vmId":"1a863d1a-cce7-486d-b274-b5339bee2444","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3vaGlIZpAFy5lfT8owDw7Y2SKcErfS+CO7X/2OmEHUi3E9ujDDo/o1EMYTgNkQIw9hBHDQCi7ruey07MrtcR/nmcXCRO7CDs58jKgfwoSSHumj4j2oWWX4UOi52Uqm9zv6ousl2H8ttFu2ejsgfAbul2oLVJyRJP8X0Bsb7rFRiEZeXqvCbe/Mgt3+/M+ivwcEAfz1pjHHcub6T2JDu2E+UEDCNeJH54kVxNdajvRBnE4sdCia4b8LBX0CQsPSZ1/u9T5RZM2B/myZ0XQUkN2PaO83aMIEhsxVluesVme27WYEbEGcgncKjjkwOjwVOojI2yLal8M4NjhLc2FhzOeQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-0d187f4a-aa7a-4ff6-81f3-f03d0622943d","name":"release-0d187f4a-aa7a-4ff6-81f3-f03d0622943d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8d73bc70-1357-4fff-938b-82d2109acac0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8052217","osProfile":{"computerName":"jianyunws1"},"vmId":"15c39099-a562-4118-8efb-a5cf48fdeb3e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAvLh8b3iZvRv8pSoKo2Ya4jSebJcTw03rOKXJYA/HHhFZRUmBC8P5ZtwyoLv887S9MVyhfrcFM324Ngg7yepSjfZ4dwq3cHBkA4G0CzEQC4HD0CV2mK43fwf2veENfkLJ3T/wL/8ecFBNowEuvbhBnYgLaAAsJpE+kNzJeG8/672A3RrC/lA0H+85dsdPXzLXbJyL0G5/7l9eIs8/UlvKj0P3NIXlMrs+qwsb6bzyxtP9oWnrGeVZaIv6WvxKvh4sbXv5tUanW2CKZuQbpvCww+i69MQblt1BxBuGL/rlMysbsghdADxqrsqiXwAbpZHsfnPhyoko9j8SvL+wPON9LQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-11c36041-481a-42f6-9b6e-b9f09baf10bd","name":"release-11c36041-481a-42f6-9b6e-b9f09baf10bd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"013c852a-d5c9-4d92-ad1f-80e62f894c60","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80547383363670","osProfile":{"computerName":"jianyunws1"},"vmId":"02ef0e26-4b32-49b4-b071-a588f4950b41","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwPe4jPCgcwYqvKobRLFkkuIRlCPnMwMoSIlhZ1J470eAomHUaXpaiFyT+amnrqkBYteYxopbmkILSRKOt2skn4UME7L8kci/uvHAiszHCkkaO1OEwIdk4nvYomVI3LMmH5kSGin5nYaKSYiXp8JW7ZWN4MzECvdlOfuwYgo1/ICjlEmFCrAX/w33Gj8Uc1TzuUaSmRc2xArNNrd7HxAw84PzrSVFMRnNZX1Ev5clTRWOWVor2zPLZ0L5qvKHUrzHURnsdmcGDjKoxT3zN+T+KurdFXzOtAPESsCiF2CiL6wzG1QDyVVtY/kNRsavEL0eitM9NTl1FaAxifEkn76rAQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-187cbb05-f371-4cde-bbdf-f8a7194cc3f5","name":"release-187cbb05-f371-4cde-bbdf-f8a7194cc3f5","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b65504fa-4ccb-4173-97de-7c14aaf40a44","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80590543264","osProfile":{"computerName":"jianyunws1"},"vmId":"29e382b2-e609-4dcb-b7f4-554ed1588718","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzDpDbgyP/0UD5aad/HlwLAxjrn6v3W2ojgnaiyvStECGLWFm0k2R0Hn7NJrkVFgx6tJ+n/kdRPVBLEWk6eAQaIEM8/QjGYWH2GA3PIpjCm5gnvUhD21cdbIZKwPUKSnYxeViHF8HcWDO9EyMro8lYDR6NG4akVhHqq5SSUC7Uymne9hdqOhLW+eEUeJXkpOenI1HSDJv7XZ+X8ejZRJt9yYfwHQ7qV9UgT4IcVnL2qQvK0mR5XgRofTO/SW8MkrS5up3vUUD3urDxHCotUqE4gWZrGAEYi4l80pcBAWMO/OY6j5bTs7zFlRh3HE+er5Z36pNgpwuYjLkhywVyko8IwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-2338cfd8-eba7-469a-83c2-2361c7e7c243","name":"release-2338cfd8-eba7-469a-83c2-2361c7e7c243","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"acddefcf-1847-4bfa-abec-18a4a9c65654","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8052182","osProfile":{"computerName":"jianyunws1"},"vmId":"150815b4-a43a-460d-8cb6-da8ce7a5eee9","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwH69j0IgZna4LSBolxvOpQbREAvzB+uOotbOPjWweHrIYA3dLoByntlS4xjkj8SUN6JT+bdlU8M3L0DKlwzavOi80WRtocoNRG9WO3hGCyCTgOmCtc+Sfdbu02WtbjmmocahW/GpQL0qv45JhhtlReG2olxttyVpAPCs/kO3Gld+wxdjGmCuXat04BR+e7dEUn9eWTV/4ySIpnP817ynKEU+OkpTYtEFeasp8JUoATPn4a1L5QrHiHd1syASMSfSQvaSH4E9MSeVl/B/iukHgPMVPuuF/zsGWlSmJCshZh7590V6yHM6M+hjOEwC1OMLlqH1QQpJLlLX0VcztW2v9QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-3474328d-da08-468e-9255-96ee440f85a2","name":"release-3474328d-da08-468e-9255-96ee440f85a2","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"26586270-8be9-4787-9be7-046001359190","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8054198","osProfile":{"computerName":"jianyunws1"},"vmId":"e34cf3d6-56c8-4702-b2df-3da6bd03710b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsNnDCFz9sMaAvhAoSAQTnfIGsvE8if7wKVjJJx+9ErL1tznGYv9sPgSBvJlI4iXckjDT7SjLA/gj2QQuQ/a3dv8c8XJtmwdxcY+PcCO3R/hTHpyn94SSYj6sarhlvWso1MUH3yg2HVODCqGBp4iXVBZdpE7yQxujmE/BeWjxRJ6c7P90+hKShvKDarnvHm6WWytIo9Yk40IKRn9IODzEQIgLamiyvj+34TUMZahba7vCxOaqFMFUF4Houy5mquuXtJ1EllYbhne/8b2FyIs7feDuWCoRoZ2TUZEqD/Ldwlthr0lPdo1qGuELzveEkgUB2+cYntvwvd8JEpE+SLhcMwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-1cc4a859-a8bc-40e4-b316-f2cce7c6b692","name":"release-1cc4a859-a8bc-40e4-b316-f2cce7c6b692","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c8fef550-8e1f-4e65-b4f9-129ddb06c575","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.80523881893","osProfile":{"computerName":"jianyunws1"},"vmId":"bde559bc-c234-480b-a592-603584e28e93","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA17UPU5k/v2AFMDeaYAtoqd+OvI18kJzwoyLFaMLIwfOpEczCveBoSqClrfOzxv9XfQuo3eeJYh2BjvqHFl2hEdoUNuzRvvKane9TJ6dhjG84qP3sB3HBG+sAJmWwPwlxGzZFjxEbLTe5YWJk5fH9q+4WQiMUIZvbE9v5QJA7txUIwK2J5VZrhjAVDSB3nb8JpkNZ6H+obIGSoNRXH8RUdY+pps5gkWScE+OVyGpLdg3RpLS+Le+PFoTYW95MOLtX2jpeVvqz3IRnWjSDzbSQcD8xGq/kDfzyQM2n9yyAHjmU6ypHMJW9hMoxt2vslS0eOOtJg6gxkuyhdu/cJ1NqyQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-d99b5b52-021d-45ac-a936-47308bda64cd","name":"release-d99b5b52-021d-45ac-a936-47308bda64cd","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d6662258-0f1f-4402-99af-ef153adf3aa8","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:27:39.3323181","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"d7d62ece-cc98-4a27-b591-fc2616e8dacd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAnRHp1k3OnDu7NTCMRccjZj/evc5+ZL0CYFOJRxCpPOgNXJj6U5cGs09LhSNs6DIeQQE7ZKmoywd1aFrjJix+9sfl8bQMRtBMST8v8ZBPb51mCCb+VKZW+K+VXb3WkhLou64neBKYgMeXkCHGTxpkyLnhZrGvN4TiACtNJcrxztTQ38oyMApg6QXcoQzQ9SyHyCrK9v+jUBXvPf5YnFobBlJFT2+ACIDdTvvxOiIgzZhMwL9q2BuKUT1D2Y1AEsBxoYvt270ispg0jGQ9uKn0AV19m9HPeFi8bPy33zrDKsLyH8CFl2WLTVyGvwjBkiS40s80A76DWraKJ8K/HXZWEQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-589038c4-5d65-49c9-8e47-7f8a7112789f","name":"release-589038c4-5d65-49c9-8e47-7f8a7112789f","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"d4db2cb6-65e5-461d-af32-c1d27c04dbfd","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.8059083","osProfile":{"computerName":"jianyunws1"},"vmId":"3615b4c3-1f4b-4535-b0e7-04e6c32953f2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAziNca+nGYci58fy4HHiTZEa4zRfMZR0jEk87UIlXI4YAE3K06Tbn20oA2PlNt0xFG7KZ9JnnUgIT+8jEd93BbbNjP8SECVPGlyca8lgHyiMrIyHoYt+AiRzjadsEqEMcBxC+u9eZIYnTspGh/tb9eTOjHzEnKDu/TbfKO2bM3K3Gh6Or7p1hUnZ23nrtTFGq8TGJxpokpWzXGS/U8QsV9jFXrIiJmuqV9OpCds3R6CiIfYD5h2EWvBiL5aBm0/6MZwXNwF56sy8BW0Z1dC4jk5cHYX73HQX08mo5gdBknzYW9+lkiTYcTaJebUzB4huOzDba7IZdEQBT4124ZrOZ3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-3c1f572f-9db1-4909-b833-8e1bd1696450","name":"release-3c1f572f-9db1-4909-b833-8e1bd1696450","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a7b11f75-0293-4145-a7a8-f74dc2d33146","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws1"},"vmId":"f7edc81f-7169-4e4d-bf0a-dd0d8dadd769","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzSLRoBGZ4Ni9q2ON7NhBVQ8+zJt+NM3rlOtgYAkXw7lY92vwzWOVtHu7Nenbd5oB1eELmo5zXTsrPfv+p0jmmEDOIDALP8BknhtGrxxnftpjjX0O+laPmp3eiakr9l4r6yYnIL/5ymygg6pNQ/nEmjyVg2qjMyPPkFrMV+7pbvo8arAc2N7lNuNbOaBqDD9WU+vhgGVx0wGaG/KxZoM6hYOqUwK1aQQDVXxqka+r4N+I+Yj75u1I0n8GZanCUoxwLyiigm3XpS0IdIpKcV6qndM6mCirECQj4N3hhFzPrLG6ymAfvXdhM4kiWwv2vbQbPlsQQRjexhC60I6r4w3jIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-659252ac-67a8-4e60-82f0-9435b9f2501d","name":"release-659252ac-67a8-4e60-82f0-9435b9f2501d","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"5b56c8b2-5e78-4b2a-a9e2-621aef384927","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws1","machineFqdn":"jianyunws1","osName":"windows","osVersion":"10.0.17763.805584444477628","osProfile":{"computerName":"jianyunws1"},"vmId":"8a05175d-1396-4817-9886-33987687f886","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxpGo5YiW5Vy6FzhTdivrEzcDvefIO9NJr40aB+QVJmuqCsI8VX9WaLtrhgqlYLQAOT5WYWcFYC+H3tSocHo9ElMV74yR2G8NZq55bKoGr5pdpXrugS2savhUMSkLVIxpBtLYoJGnrJRuIzzrUwvRXK1f0/RpviJKp9ciXB4w6NP+mq9Pt5U00S7nyTSOwo+PN8DheumVK5qFNKTc2Q3GBlgcEh6uyTaVX4CdxIP4FwzgTsnzm+PPrWfxOElHurQ437yvQq/13rC7jgKueXnsdHbnYGUFaK38GypgdlG/bWIlUiuHZnJjfZVQrHmDcyJooTD3jo2HFEWAl3TRa7sxVQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-2/providers/Microsoft.HybridCompute/machines/release-3387227f-a4a1-4205-a3ed-9b34f9e15353","name":"release-3387227f-a4a1-4205-a3ed-9b34f9e15353","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"31fce8a9-a103-4939-8349-541c142d5724","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws2","machineFqdn":"jianyunws2","osName":"windows","osVersion":"10.0.17763.8059613","osProfile":{"computerName":"jianyunws2"},"vmId":"a9215185-d690-4c95-a778-41b3ef2030d5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxV5jewklBNwh1C7WKDqiFD6xNHgmx51n7S+kWZHAP48n51YSffXv5WzPXbtclClu66MPIiikFRthhEQbTR8sii0W+UxoMHUEaEDBM6QmYwhS7d7CExhKR0tKrw07mCc1N1icwWytM3WI/a0Qqt0rpkAjyL49eMHHxTmqkfrwidHVW/mjjWrkr77OyZCRf/V4/QJwIOQfgwmn3BNzDwFIjZjcYcXKfDFN86f7EC6GOJD/uR6VPI2cuZNC3XUsbw6BXd4ZiqvvVfq0ghG/jO21kS9HI5sx1Utt/3w+MrkKJuKeJIwVAZzhcnZrEmNq28P5Xeus7GvfBD3sbyPxXPjPXQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-4/providers/Microsoft.HybridCompute/machines/release-d6b35889-09ee-4659-ba68-86b7f12239e4","name":"release-d6b35889-09ee-4659-ba68-86b7f12239e4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"52b12187-03d1-4359-bc8b-78da16e2b319","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Disconnected","lastStatusChange":"2019-10-29T01:32:39.6051867","errorDetails":[],"displayName":"jianyunws4","machineFqdn":"jianyunws4","osName":"windows","osVersion":"10.0.17763.805","osProfile":{"computerName":"jianyunws4"},"vmId":"e1fb22ac-9b2e-4492-94a4-ba57b2b87b3c","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0pw1qLgbOmHXNK5K88RVd7DfUPb7OT9y5gSWUH58nCCoAU65sOOoCl1kMYFWoJ7U5hiZfD1QwvTpBZcTLy58LUuXglx3Up2jy7GlGmDiFcw6J/uRcFwfSIY5INfPgw1bwOawcwp9TEhoqAWBdX+iIOH5tWYzeOOHAsvMQM91nI+6hm3ZvrCG3L5ADEFpGf786brtXYStYmpTq116RU5AkHppH6uxc7oJTz7I1CjAZIXMymW/nFZkRb+kEdd/+1Y6805SqlqqPsGMB5U7sqZZRWjLQL9cceJsBcnWHTlvAuwnU+lsPUlgjdKOI7RYzvZYQrlpVuEzwstgBacivuKy7wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-3/providers/Microsoft.HybridCompute/machines/release-c4985230-d08c-46e2-b7eb-ede63e93dec7","name":"release-c4985230-d08c-46e2-b7eb-ede63e93dec7","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"931be52b-3ac6-4c9b-a3cc-7f6fa505a311","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"bfb4f4d0-fa2f-46de-bbeb-14a83c98e08e","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtNhb/28cplKR15xNtNGnpo4ja2pVZ3b37PGDH260X8Q8yMbtnIutY0WEWspGRY62FSHCYb4kg3OmHgN+3X5pXwLOh3dO6WjFSPu4/wIJifZ5nSQRnsk1x0GgVNVLucM8lLXAyL0aBvlvuci3R+XzSjr+UdktWZah9D+hkByEivN88aq4yTsfzvNPE38tmy4afWAoJLX1jFAddTOQP3bSuW3WLqZcCtRd4NdGKE01izNBUB9D1FmVAKT1J/kg5Vn8dh07zEhjtGjTq8VbGMgpwuasaVRv/0kOu09HigOPMzSoYGX1dXaP0rQNezzwriJpds34OLOj1yS6fzPnkwLZ4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-11/providers/Microsoft.HybridCompute/machines/release-242f3c64-c938-49d5-87ef-fa1e6344bbba","name":"release-242f3c64-c938-49d5-87ef-fa1e6344bbba","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"e0d17eaa-4a27-4579-8cdc-9d73c730e50a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"62fbf174-cdfb-482d-9fdc-a8f18281bfca","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAsfnISxEic3fb6iHm/+zHKgbNHtreIMDtzq0RcAjTPzOGCcrMYqJz2Rv3DJSRki+4cBuUEwOlFygVA6PeqepkRcPOJt73hCXX1Urrr9oTmQNnoSuyX+ot89PoqM1tgF27CckNWeGrH+By0+Ej2qUmQjVOMVjtbd0ScFH8C64wKW2TynfZl5TcjESG/g7DstwLxpUyVV4Ewl3jbpWQgrEq3+BEO5hI2IsQwiECjdltCKtZ18zdqMAcO5o4trHSnjOFeSIVT2mKDnc8MSaCNZxtKQ0tfFO+hOWpBRTWUCZyXkehUWEZK12HxlqqnadajwdmPOik8Eq/D1dDLSiucN6+qwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-2/providers/Microsoft.HybridCompute/machines/release-6d1e8e2f-ea84-4475-8245-1a4dd2879e18","name":"release-6d1e8e2f-ea84-4475-8245-1a4dd2879e18","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"6a57cc9f-3737-483a-aeb8-67a2fd2cbff5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"084873cb-ceb8-4227-97db-4736fe7d44d3","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA+BgSzQqA0eCR7Rqf8jDf7xmc4y6NoMUTAqPhXTtbkYy824Lfi3V7tgRAom0Y9oXlfYzVjlJJlgubfYNP8e+Z9fF43pgDLAMxoF12+ld6HBuTqMX89iCYVsuJyQL7DbBTW4L3jILVuPTfbQbCEqQptPvUEkO3rfanuCCLqg7cMFr0AiNK+MdrBuyQbBkf2cS0r8bC50BV3dC2Vd3Qm9mDUP9FKLQc1UUGV7FVdLdVq6Dgn1QglL1HPuZzfBEaOXiyCLmnEJ0BCD/o3qNt8AESgU14nj7I/ZwpFxBuAgL9Aue8U2Lw070epAAgnPEVTmbNJUWwYSG2+4mMwv/ZESRDQwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-1/providers/Microsoft.HybridCompute/machines/release-a517e527-8e2e-4d86-8891-0b3b7f5e4b73","name":"release-a517e527-8e2e-4d86-8891-0b3b7f5e4b73","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"1f8fdfe1-66df-4dc9-b9e1-e5c80a4050d0","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0b52ca91-548e-49b3-9024-59b7aba04824","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtZ8luWsfatveY6Hi/iqlEf3sHZMiqTeQXs0La/vVpIAcvAwhNugbWqBivz9MhVRojUZBGkq65u3vo5m37WWG2sJah2Qen94gZVseFd68Uy4V9pg+8vWHqpSNl9lpMBkZHywOVDYUkvKzv2v26KGrprh7qQbl9iwFd3V3z5XIXAIB4uiuVj/odUOSI5jGlpDNNeUwcVOPcYVfhRLhqxWeQoU5QDM7wyGs2OlFjSxXWq0M9/HY8XjYYqtVT7oCGis5Kb2H5v/FYjyH65YeEVMZbsw78Yx50WMFAy/ViERdGLalFQdFE3MZCr2LPTPAlpMA+uOoVnnNYph2PFnMJcg3jwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-11/providers/Microsoft.HybridCompute/machines/release-02449f8c-7419-47d9-868b-06d9f53f0170","name":"release-02449f8c-7419-47d9-868b-06d9f53f0170","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"94fdf915-bc2c-4289-a330-41c0bd24edb5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"910b1124-eae3-4dd4-8b9c-9f39cb751a37","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq1RnoLeJW2v+1E64kqslmiBEoKAclCjW8b3oUUMG7zXyQ1+c/i9VYdamXzrOkoLlzKFPtFdTNbDgjuuydYoVDp7DoVFvZ6EW4DWyH75DXR25Vjp06B+g//P/JIdHCrVJFlq0fN+jsocYe1g6XhbB7+cmWetultBTa3HN41fgSgHkr9AGE5u6wwTnnnI6hLv1ulOm3yvmmxLqFg+Q9JicfbpIUTW4mgFqToliWjOqWuXRum1z0ZPtszwFju6dbMXNBTQq5REDfHhdUuwZ+uJmEJ5M1e1Bgya0RD/u8/kHVZ1CGFwb9LzwIACZQCrDt5fpXVDNxQmU5v9KLh3Ba+LtIQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-2/providers/Microsoft.HybridCompute/machines/release-6a7dc965-7ea2-4c9a-88ae-6c1fee989374","name":"release-6a7dc965-7ea2-4c9a-88ae-6c1fee989374","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"2a6dd1c4-c456-4251-b8ae-1667f9d4ad81","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"4bf58823-e7b2-4cf8-8177-46da8850026d","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA61U+yvjNCHOZq89rSl8k3bTZNlv+iz5+536l8BB2D9WVN/tec5mRt2tu8jRk3zgP+7qesgaQZ1gE84GSbNDZC6GoFYZHXUqXrHlHrVZh2OHC4E7qSO8pdH6upuZYx9KjmvNnbWUVToxp5IQKhj4e32TcSkHYaUPJ6crF/cVEqXI+oxUqokedceuuDMXU2zTnXsPTj0Qp+HA/SP4uxMWYA0BnNLe8WT6MTdya9PnCGetfpsWRECjn3ghgEC26H+30REkx3c93GEFhx2TWXtev6zFB1BVSIE2GeEU7VJQhcLxS2Y6uOcvGt1x3nQH1ozFmEsTNx3PJLNd7cf6Phji0DQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-8/providers/Microsoft.HybridCompute/machines/release-6dfa3974-d02a-4df8-bcc0-8ed6eafd4790","name":"release-6dfa3974-d02a-4df8-bcc0-8ed6eafd4790","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"860b1b5b-f6ed-442c-8d02-cafd2f097f91","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"cf9e75fb-87c6-49bc-b47d-e74a6bdeabde","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAugZyo8QSsZq/f8aYTQ03871I0F1rA4lAkmMkAIRdPfvggr0RYg2CoS4UC6DI9LNv828yCtpBSJMoJGO7cdnIxKwHhlIxgXcG/xjD3BQmm51b87L7Fdyt61gtLDJinsHtVdQx+/WWz3o22dcBNcs0+Y1zzuCIbvqoHaXEwVAXGTu263AFJ6vMh93wvKacpT9Wx3v6gjjUJmaCerO3ZfHr6tOUqkk42qMTqbA65nAZXCrLr9TGQLB2VHFj0au53glnryCGguhl5Gu1zwcuSIkpdte0blrrgA5xqGaTYZsnI5WShIxtpmfkPqIccaqF1ja7wudK/mj3B1ZRv60EYpmlJwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-7/providers/Microsoft.HybridCompute/machines/release-d7a96916-015c-4293-94f2-f3748293a919","name":"release-d7a96916-015c-4293-94f2-f3748293a919","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"52d09130-eb90-4e87-82cb-00c6d526c129","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"e6140439-701b-4c74-b4dd-5377321d02ee","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3FCgcr9nouGE6SLFaOwZmpoLDdEzI14vqlyUTaK+TUoKcENBcJ534dWe/FapVMYKUJahF1CVHwYVUFOEPUmzSoj3VGl03Rakmp613bT6CYkQnaSfJf+JWKvjRVytBAaJ2IeyVbBc6wUq0kSKaU+KxP9pFk+SCIRYHxhQ2tk7+fW+oMuUXJWyDIfKNnSc9K1bqxy0oyhNrdUElEehWXunSGC13OspwRFJLjye0yn5o6IPHBF9zWcMZOHcXy3UmLaXmcAcLtFRBv7cCU4rH9xjgoy2VleiWuPwK7BfTVyBm8hOY7qslJ3rUwnudCVxqs/RQWiBCfUaMBshXPM9lgx8+QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-7/providers/Microsoft.HybridCompute/machines/release-1a0394d8-f822-4339-9c02-3b80b6af17b4","name":"release-1a0394d8-f822-4339-9c02-3b80b6af17b4","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"cd0d7c5c-ffa5-45d9-8c6b-7c4220cd96d3","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"0e9f0eb2-779c-4ca0-ad7d-8f888aa238eb","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA0bOM8EkacUuVkhj2+9UKfY3erP5ZkVizLst0yf4WSjbE0I3DCq41NZ7ZDp/mgpuYhaXVZHbIEYc5N3Gd89gzMBsewOEOMKZKe82PwoabPoX80gQV1XelJIPW8qoC+yXaTv8jnYL2c+bmE532LJ6RIPdFVvg1Jww2jy7soZaPTCleYAROCeM4FXsmTshJ2p2AcEtspW1t+ltNbzyW18+RrjTk8p7o6OiU4SJOwWcHnk20JW7pkuJFclh0loPB0XdSkwLpfKDenHVSuXKlAzGcLFcQA1joEk6SSfw0F6UVhDVAZ9r7s94cghUyUGL7SFCE4m388bJdXqNkhXc4CWia4QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-9/providers/Microsoft.HybridCompute/machines/release-d0287ceb-d88a-4075-a322-5926fa7c4227","name":"release-d0287ceb-d88a-4075-a322-5926fa7c4227","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"074c7d66-b452-43c6-97b8-6dff48b4765e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"8d4c631f-fb53-41e4-8ee2-5613ed4d5be4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArPy2CL3fL7Ip9C1xEdp0Q2x4zrCe8rpGMkORK+h6eOq20EsbgrH7aYFaT23N66MS+83RokQKyM+B39MbVGfXkfkJOaI0GZH5s/qFLRMT1uAmGUzh4lgWW9fm5DdrEWiP+NtLv2wv+pz1tc3Fx71xxgZSupySSOKqThTF1wqKsmkwxucNxK3eL72NXFXoIfS6Xrd5lsfnq2e+OhpEPoSQxg71zUFvqP92JhmWB2NInbRF0mKWi4kb1NKOuIwp+2Rf0pTpp3XzU1+Uj85CDHjh+wFdsGQtZmxoj3SyI820NxplV+gGgdK0wwD3tQnOiRI7Jasi0Bai0qLd7qAbxEyPbQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-10/providers/Microsoft.HybridCompute/machines/release-1903f7bc-c829-4121-a59e-dd9394619718","name":"release-1903f7bc-c829-4121-a59e-dd9394619718","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"8bb9493b-a15d-4a2d-be21-36089fbb0f52","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"c56251ee-14a0-48f0-8d8c-b573b1e4ac7b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtPpVD/FjGVIFP1Wy8VZMXgOwyEbwXEyRG8euCEqJx7O00r+yLcgFr4cIH3apo98so6xCqeQege9m9L7yVl/vHF84yAXOMtm70tkx6XBtUv+A/8/LqG6enX3haDvGOzbXimDdhK1ph/1jjq1whPK4BSFGfub5Cz8Y6sHySw1tatCsgzoHvydB6vr1aqy/ZtrD2l9qexMqTG9CuoHqTujbAQ9sgjp1CYL69yujvM1doq4hTUlb8acVZmwMAEuBp1O3GCHB1lrOJuAa4MzVkb7i6ufhFizTn4ctLqkldYlb5+TwovhunT7vWIEs6vNbnldHyl5eWaI3SarC0s/RP+jepQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-13/providers/Microsoft.HybridCompute/machines/release-923b32cd-c2e7-4ad8-8132-df22af5e202c","name":"release-923b32cd-c2e7-4ad8-8132-df22af5e202c","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"739803f0-142c-4468-983a-1d6a1bf644c5","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"52dc7a91-5e9c-4350-8a14-b0405f72e0bd","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5ulbXMJrwNwO7EEr7ILpSzq7v06FFT3RGe/1QynShgMTD1f4q/eIuk6XkIiiJ5XX98L5fPYYwwH57dJnP5LM23UOICtYTo1QsUmed8XY6x3FmRpAwVTbredtaqbdxAwWfeWjX/tnleXwvGfXz9mG/qFwwhdbCtQFzuyu5TOR1EASBNR6iKVSl+833+67QEov5izxYIrtSR7R0yps8ZoT5sZ6sM4+r3Nh2RVXBJfj5pOvKvCKFet/yuptwAFZx9t+nf4RLOOGHSq/JcMCDqvLA/sgntnrJi6QiUgy1XUDqm7EiYpp1Q7dCkvyaBhlsct8ZFHIE5dbvmxouFV/bApK7QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-9/providers/Microsoft.HybridCompute/machines/release-4dec5edc-d55a-4244-889f-6001a654c2fe","name":"release-4dec5edc-d55a-4244-889f-6001a654c2fe","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a9c50d1f-9d60-446a-953c-b41e815b03e9","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"1f794459-162a-4688-8314-aab4554375d5","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwOHpBdZZZoZXsJojFAC6nz3RPukcy1YbL4yv1aw6Awwgmi9JM3/koOh/cIG9KFwXjVPzrI2vLLeyDjhl6JwUk4OXqjO+n1q24jWrBieDqY3DHiakDlAayZchGVmLlA2WVpgeBqAGnZ1lEIjIwrTxNmz5ik7r7SFTdscRbLvOOhhcVr8x4bYKwKQv793cr7FNhoNsSkj3P8R6R6VbdDcIP+IT45JwIN/rUWI9kVKROcMiJEZhUEpuev5S0XIv+AAnVTYPu7xaj3btkpRG3RN9jsqQKZ7sYBzsiZAJlPiWvlC2DICiEnrrvFhNjUagP8+Z9YJAPthiHfGwshBL3mxP3QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-10/providers/Microsoft.HybridCompute/machines/release-840eb83f-f8f0-47a8-8316-3c4805105dcc","name":"release-840eb83f-f8f0-47a8-8316-3c4805105dcc","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"a3e8d1f5-f9ae-49c3-9cb3-717314f74e44","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"a298abea-598a-47cb-8e69-74e0b1181635","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAxM76PhUd9jW6okVuq/l+vC53BNqmhZoHnkzrdTXwirvakp1mh4gRE/jm+5zlUb7c35LquzrMJtAWbfMXHEuP6PbUkzlfdUSrVmG4sijPRqYDKIp8txEFqhpiovY9j+ixe711Y6EztpQoKgIWeUODMUYeLrY7L79Ve/Loep7zke8KjIeWcTv9VpSO9/fgctnncs5fQJKbqkXDSjseB6apq7WAuv5PekloxM/fokK/nevKjNsu5AVzVC/hAI2ZlZXmNnfbJZQt6YHw6wLpbk6TCf8W8e1xQekDWE2zsKLzYfrSRiAcjlUUbpDkxWs4kjWe1SoePPjHkixxHhc1PJ856wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-13/providers/Microsoft.HybridCompute/machines/release-8dd76a1d-74eb-46ac-99cf-79fb8c9fc950","name":"release-8dd76a1d-74eb-46ac-99cf-79fb8c9fc950","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"dc68e962-3f7e-4812-a728-6b832acd943b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"51cde991-ecc1-4cf5-b834-a1aa08c0fc53","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA3shRPXij+mE4fbn8I70lmzfxqu81st+frStma6pJnd+L1UephfVac3xf+iT06owJY9aPU0zZJnHZNz3pfTsjxK1N/PAdvkfVxroB5g/fA/VB0KV6hBcxy22mmmOZicxvuYMeKOqvw0eEyW+67xiE5V75ym3rV7N+2Zgy+90wkvlR+PuljJgOvr/NqJmKxx0NYRHK6K1p/j4EOtCZ/goaD6LEP2/NSclqvfnmy65V/jylAuS6lwz2Q0lMy/gkwfNvcjwa5U0H1wLZ9RAc2JbzdSyBMMPBfkz26CV7dOm6tPTfOM51d1bD6ybDJeLnYWZLtPwfIljKF59Hm9eLxEKoAwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-13/providers/Microsoft.HybridCompute/machines/release-d5f5c193-9ddc-4a6d-aa19-dd71d6182d9b","name":"release-d5f5c193-9ddc-4a6d-aa19-dd71d6182d9b","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"bbaf2ceb-183b-4511-a059-b74981f9d0aa","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"336e2b50-bf0f-4b1d-b566-bdf001995223","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAujTcKkzsrLARUybyYM8L9xj3yhpdajqYenjJBsXK3GawO49FLcQBkwjXXGvgYWu2fjoO1VSIt5jrgFuqnztSDrw/Xa3N7FEqLfG1JExeiXKNpFntncHaYE4Ba2OJHkp8anMcKkmt0//k3dUEtAjbqY5PMffgphp7i5tKXOrq93n3vk0/vwq4bA2TNIBgHHRwewTIYSHfC9fC9XK+I55AV8GMqa18YvMPuFrHbPvgyiltdtFn+PLZLolLhebcar/z6Q56q/HdF9Wgyh4ywhTWPwoaFGORA1SZR6OcG807G/v5UYBEiBwQ9YTQfEIK/fb0y0rPOs3yzk2AnAjbQTp/SwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-13/providers/Microsoft.HybridCompute/machines/release-58232718-f240-4d61-9a41-47e33a556362","name":"release-58232718-f240-4d61-9a41-47e33a556362","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"40a86e67-cad1-47ce-9e40-7a4da0a316df","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"818d2fd3-2c5e-4a4f-9777-91cea0273f3b","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqroRlAfL4uPLy07OnBb7CxIr1JSWn+PKm88xXPFlVDqW328S/vc7Jk8/apE68KYf4sC/Ymo1x3waSlDh61wSXCYk4KC8q5V63sAfTpK23SfiekCycyAT2t+fT2VXsY0X1oYBD7ydd5rJLUo0vez01krO/p0fnqP0gx+ESdBKA8JZ4sK4is7k7kZxS03gJGISOMluEe/HWDfFIJlSAmJscs/AC7HioBbW+p+pkj3uRf4IBv2VrHrUMCLfzYSySF97kye7Rwxh6hlMqzIuZ6QaX+/et12HMq2tL89uS9y6lkUYB9a14n358eiEZcRVH0JKf7fNZnsGLLlzJJx2FVHSRQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-12/providers/Microsoft.HybridCompute/machines/release-97292c8d-9469-4715-a740-128612911cae","name":"release-97292c8d-9469-4715-a740-128612911cae","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"c4217279-0467-4e59-827b-4e5604b45a2e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"77d9e57e-6eb4-42c9-946a-2675eec2c8ce","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAqRdtcCfj2SeyZyWvfoV2OXEyW5/YpSzWpmdVe4tLoIJFP86fYgDoa0nJQCCdvC4HCIvI2wmuFdqgfp6HM8F1dUfgY/QlG6WgYvgr4u0MyBWAtbPBADKoRuH9hfKpdc3PFnyVlcsjJzxzz2DJMBR7BgdrnPR0ix03D0f6uPKngIrHY7LuDS7K3x5Wszjts1HV3vWAwbo8fqVt3DrU4x8vVvsI9Y0q1hVms39dwjpsiHQgxZw2VRe4r8XX+IKK3YsqNu0cxJXjCEejhHg+gt4vG/t1rrxZOdTNLsrcz3W2ln0QBBDEa74QrF1sHOX8QBn86SEKVgWKppRrBUM4vxKw/QIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridtest4-12/providers/Microsoft.HybridCompute/machines/release-446414e3-b905-419e-83d7-394ccd15f83e","name":"release-446414e3-b905-419e-83d7-394ccd15f83e","location":"eastus2euap","tags":null,"identity":{"type":"SystemAssigned","principalId":"b6b583da-224d-4783-9ed7-62f1fd705a3a","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":null,"status":null,"lastStatusChange":null,"errorDetails":null,"displayName":null,"machineFqdn":null,"osName":null,"osVersion":null,"osProfile":{"computerName":null},"vmId":"61227610-e187-44f8-b45f-e94d08a3b3a8","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAyXdntCrbw/Utbsg3yFtp6gbgAmv/et48HxFxUgCLxHnoeo1yAiGupZnvRZ7EMXJFqBgrUZTJttZf/tSn21n3JjVzBQIi2xt5UctPsVmHTagxNAB6B5bM5E8lOc3FHXkvpDoi/Rmepc1OnQL4mjqRq0EvXl5su9Y/PpiLIxHZlOInlrQnHNLM1RMch8wOxhp6Fw4tQJlf6TwUAjJltoRFc2A2Vy/pIs22c1niPESlvlTduWjf6DPrsGM/b/qeIZqtCYB+Zfh0OiMGgTTGeL4gTWLaZOGIPO9k9F52k4EHMGM6RqoFoCVXX4AeB6Py56UBaG9/7FqmTeoYp0grza7w3wIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19302.001","name":"0.4.19302.001","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"86c4a873-fefa-492c-8d04-dc05f47e8f52","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.001","status":"Disconnected","lastStatusChange":"2019-10-29T20:28:31.3261788","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"9edbde08-27b2-4e9e-9df8-80ec947c1ed4","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwlANGaY7etn3Oa76DrJK5aiJzpn9PVzVA93Q02434VX6hk6EkyxmRlxsroB2zWxMalC38/tRi+3bFDjqZvYlL2Mj7/hF2oEDmG/UV6myx2N2ayd/CnjaPdsGjfQMZqOIUE5pc4bZiEuezhy17Zadln6YOMDupSHdwdZvWeEw88DEnwX9unFDtuyZjVh/cvW+gKuye8YVjgjviucV95jDMus7R7yQvZCMdylwE0Z1X6/WvZnnl+cFDkyiEVBXke6NRokJf1c+oxE0hkVsZ3JZoG7UXyDPEJoJXvVqRVeEXTlPBvYDEvI8sZHjADkWfbD8tyc1gBCu3MtI1fFuTtqvqwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az6006zvns_e2etest","name":"fv-az6006zvns_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2399924e-0fe6-429f-944e-b6d26e5a7571","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.001","status":"Disconnected","lastStatusChange":"2019-10-29T20:33:31.4272604","errorDetails":[],"displayName":"fv-az600","machineFqdn":"fv-az600","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az600"},"vmId":"845e6aae-e795-47ee-ba3a-0b17aaa5be12","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAq7a2pPCSWZXTHJRFXUG4UD3jA7GAnoOLSHBNQW55leqGq16z67iQoUjn2L07thQKMGGm62SjalRbkAnNnEHfv0Atvsi3L8MExIaWZPNAHwFXfAYvXLSqpdddC5r6JBtFkYsLyV3y//Y7Vwoxx12ojy7/MBGjAZxjgOVd/eGp6Gs64bIgVX3/oOLHxVW0H8A3YE1MA/BLWrH4liWpI0ydRNbuYaYdU/md40ovlGPfyG8e5ixKJLk/dsX7il7zpdSIUccaBf2N9eH2UUTbpiKzFfVXhFps8xVh8YlVlJDC2WN7i+vtyBKKO1w98aS+YqZsGW6/hsqiirTeMu6S/2hTxwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az611cam13_e2etest","name":"fv-az611cam13_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"2b74a96d-99e5-4348-ad20-28942ba1cb6d","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.001","status":"Disconnected","lastStatusChange":"2019-10-29T20:33:31.4272604","errorDetails":[],"displayName":"fv-az611","machineFqdn":"fv-az611","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az611"},"vmId":"ef4d8e17-4dbb-42d9-a21e-f7759fde9155","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEArrdOmD5VqUR/BZ6IXPRgBONmB+NnFvjr1IsakdXbPXqZSy92L0lZYLRNu5CTth2d3O+bKSsD/nd9RUkrm2B/jFtSE616m5bH2yKbdMg+4bmtRDNMEULLoxA0VDvv0FgdQMVBEljKawucST/teWK64MjlMG9tEGxr70MqmOosImm/m96Fg52cb1YdIKjycfLNrj+zow+Ve5qacSRGHrDBBgMFi49zf85/LAITF40L+R3f2v6KZZnGzQXtT+O561zu2iJ3I3JlIYay9b0RbR+facFp7ZyFbeJ227UjxTCi2dDlmd5E3vHxqwccjSpzI/aK5+lF5BD3RQBdTJgoijOISQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19302.002","name":"0.4.19302.002","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"7ec4a518-a8fd-4818-86e2-9399ca80f682","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.002","status":"Disconnected","lastStatusChange":"2019-10-29T20:48:31.591239","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"ebd6fdb0-d970-47b1-ad67-a6abe59cd6e7","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAoORWqamgbAqfSfvb/YETReJQa4qURqf2Go8pnuDvr0QsdSeJM5P5MxVRLtIrUxbb/irIYeTuGxNq4PsaSTF1RguCyQwgRbTTUolIQ5j2fgyV/MbiSFcS4Ab10gkvVHEaaVXh7b0lWz3LVIj6woDbmtcZaTHyzpRqMtLMSspbFTojY6YNqO9pZWe7pcfKzJVoqlyx1zTFhkHbsDp67HO2b7RrHcEZtTqL3AJd6uEFNYHda5XTWfVv6VTPZVjh82SjClNPnDwf4RMIn357dFOxMVtvDVycvhnFHrUg7cRx2TchDdVfJLkWdZTQ6pGvLZNqfdmdN/WjcByFNMdRofwERwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az623l8usv_e2etest","name":"fv-az623l8usv_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"b63bb8f0-8e8c-452c-8628-343f537d871e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.002","status":"Disconnected","lastStatusChange":"2019-10-29T20:48:31.591239","errorDetails":[],"displayName":"fv-az623","machineFqdn":"fv-az623","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az623"},"vmId":"6bf6051e-c3da-4d20-ad09-5df55c8b9206","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAtNMRp0pCStn6B7Kgb+G3vcHuXiOE2imhcA1TrUMw1pDv3PTqBnVnMNoG8OtVjQvJyDBYmG5Ng2gEuC2yQPQf2IFtDhdKNmhKLEgKUMsO9Wj8dFSQUEvh2EXEWUmfTZc7h+oCexZDpx3UBumvom5/Sg5P9n6NSxeOykV2BAxRyy8np3erVlqZTEXGvRZnROGb62QKp4D0QfDrd599Ed870qkBmhoORERC/sB2DSmKXtpBHUNtcreWoDxavoEWvL/hdfML7/YG5frY2gPI/p9H6DCbZj8NX7CkS6dy1Sr8cNmG4obd3kU4hJCbK5ugP0z6/LFPNTg5LKhTozO+F04RZQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az59795phk_e2etest","name":"fv-az59795phk_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"c8daf50e-5083-4fb6-875c-1ca814ff8ee4","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.002","status":"Disconnected","lastStatusChange":"2019-10-29T21:08:31.7319833","errorDetails":[],"displayName":"fv-az597","machineFqdn":"fv-az597","osName":"windows","osVersion":"10.0.14393","osProfile":{"computerName":"fv-az597"},"vmId":"b5478a6b-766e-4163-98aa-8f6ccc50f9e2","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAwbZ85kWRO9BqJA299hTrSaBlPJF8bx3lG4dZKTdolMhmY2Nlx4wwqCuMkVB6lTY1RSxVbZvupyswp5BSOSK5WLol1TMBaFYrqIxASZ+4kPjOCHz7oqSnPpwgskYWFWpw/ytD1i7J/GUypaTdH4KVUiVj4eamiSdqMO+OP552UU0n9c1Q3swD63y3Yci7tSpMn1wHDNjg8cSmYwXCXwmPN6OeLofllJ7b1KDWcZIXxaZd4A7gXKM6oKKRJnt3bOb+Ru3/NRF6kDPHDp/zUoXWYw/rZCaOEU0ohg9vSjOnP6iubEbFf0c8lZe4nsIoAv733Fx5vVUkodiUvhgqZbEqSQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/0.4.19302.003","name":"0.4.19302.003","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"6ea91492-9036-46eb-a446-008b3aae0454","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.003","status":"Disconnected","lastStatusChange":"2019-10-29T21:53:32.1434445","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az506"},"vmId":"48ed7b24-c761-428b-9a9e-ba4818a1e714","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEA5IXgekrirYG/Og3hJpUOcTh/gM/sjJxgesbV4bzGp1KMPEFZicERz2XKORIpwX+2+hwAJXKdQpfp+9gShhLeUv0+yGD9tIAy/dB29J5OyLieyEz8tyy5Nh9TK3uzsfbxcLUvnlho3y8ErNoeBQZ1Hce0T5brcnkkfk+Zht8Nv1gO5h2OQ7gSZBUtA2WX/nUe/LBAo2/lBU8Q9+hgOYACDFzMqGwJ3egBSSeFPQZBgxXmfGfzjtf6I30P2LVA3OBrheq4e5G1y+7ky6eD14tGZ7g9az6ko6pTcNv4J9+qWPem0Ik4dtDPPJ6rRocjMjHg7+A//uT/P2GPzwzTewIXFwIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hybridrptest/providers/Microsoft.HybridCompute/machines/fv-az506ej05v_e2etest","name":"fv-az506ej05v_e2etest","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"47e9c4eb-b1e8-4534-b1a6-4887f3cd89b2","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.4.19302.003","status":"Disconnected","lastStatusChange":"2019-10-29T21:53:32.1434445","errorDetails":[],"displayName":"fv-az506","machineFqdn":"fv-az506","osName":"linux","osVersion":"4.15.0-1059-azure\n","osProfile":{"computerName":"fv-az506"},"vmId":"6ecebbba-c6f3-4a31-a63f-dfa589b81e4a","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAunMklALZNeZS32yfueXt+9nXUSshwHEXjNzUWW+a8wfe9D+6+2Ee95mKZokvpRMsT34AkZjcVk6CilrZlzNqAcd0PnPPpfXYuIR8MHN+RusmyjEoX7p87GPR3ADjnzrx/XLakLSC9E9izWWKJthIhy1l4zNqMR+NonOCEPxWDXCxeW5TWK65TiBvFWDf5eyFGqOpNRuHcFO++fprruosxv4PzyfrXrHxkfD5CEm5BihEZTA1oloERDhwbCWgAhp0HPQ1qUzzjjHuf9EVi+su2NeLYcgOXMw59n05U8Byb1wPjgYInsIXEhADhK9KbvJCoijz1FO70rujw0dzEE5RoQIDAQAB"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/George1/providers/Microsoft.HybridCompute/machines/gwf1","name":"gwf1","location":"eastus2euap","tags":{},"identity":{"type":"SystemAssigned","principalId":"9e7db19d-f7bc-4631-a9e8-67f84d951647","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"type":"Microsoft.HybridCompute/machines","properties":{"provisioningState":"Succeeded","agentVersion":"0.3.0.0","status":"Connected","lastStatusChange":"2019-10-29T23:11:18.780297Z","errorDetails":[],"displayName":"george-ubuntu18","machineFqdn":"george-ubuntu18","osName":"linux","osVersion":"4.15.0-65-generic\n","osProfile":{"computerName":"george-ubuntu18"},"vmId":"88dde220-f988-418d-8c04-16b697c0ac70","physicalLocation":"","clientPublicKey":"MIIBCgKCAQEAzlPkLCK1/IU9kG1m6fsST58KAYaz0RxAW/ggK9Gh1dkBBkWSRw5UXf9RmJUEciXhy62legRguPL7bSxgP0YZEXXK8v3f4uIs9L5ESEo9PGR8hPVqT4Ww3c3zuxpBQ9Yt0vX3au9CeCxWplbOVBeBASrpdWuj+z9BC29dEKRytIA5nDcUI4epryNeBrX4eZBQDed+sSeh/77ZO7Q2zEZG0tuyfrGxfbL+m/Q5XvlBSaZdI+02AzzNLrCkOyRkzNaD7xumHhfwMazTysL/raQYAEmKtwGotkiPlaKvW7Ipm0bp257pTyaPd1+y6D+bdEG8YsqQzz4gvWK50KB3HEBvywIDAQAB"}}]}' + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 cache-control: - no-cache content-length: - - '53450' + - '112' content-type: - application/json; charset=utf-8 date: - - Tue, 29 Oct 2019 23:17:54 GMT + - Tue, 15 Sep 2020 00:38:20 GMT expires: - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 pragma: - no-cache + server: + - Kestrel 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:38:50 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:39:19 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:39:50 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:40:20 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:40:50 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:41:21 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:41:51 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:42:21 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:42:52 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"InProgress","startTime":"2020-09-15T00:27:46.7614925Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:43:22 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/7e611e66-f29d-4df2-b3a7-74bc4ae2ae49?api-version=2020-08-02 + response: + body: + string: '{"name":"7e611e66-f29d-4df2-b3a7-74bc4ae2ae49","status":"Succeeded","startTime":"2020-09-15T00:27:46.7614925Z","properties":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups//providers/Microsoft.HybridCompute/machines//extensions/dependencyAgent","name":"dependencyAgent","location":"eastus","type":"Microsoft.HybridCompute/machines/extensions","properties":{"publisher":"Microsoft.Azure.Monitoring.DependencyAgent","type":"DependencyAgentLinux","typeHandlerVersion":"9.10.5.10940","autoUpgradeMinorVersion":false,"provisioningState":"Failed","instanceView":{"name":"dependencyAgent","type":"DependencyAgentLinux","typeHandlerVersion":"9.10.5.10940","status":{"code":"error","level":"Error","message":"Extension + failed to install. Check that all Extension dependencies have been installed + successfully, then remove the extension and try installing again."}}}}}' + headers: + cache-control: + - no-cache + content-length: + - '884' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:43:51 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/dependencyAgent?api-version=2020-08-02 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/dependencyAgent","name":"dependencyAgent","type":"Microsoft.HybridCompute/machines/extensions","location":"eastus","properties":{"publisher":"Microsoft.Azure.Monitoring.DependencyAgent","type":"DependencyAgentLinux","typeHandlerVersion":"9.10.5.10940","autoUpgradeMinorVersion":false,"provisioningState":"Failed","instanceView":{"name":"dependencyAgent","type":"DependencyAgentLinux","typeHandlerVersion":"9.10.5.10940","status":{"code":"error","level":"Error","message":"Extension + failed to install. Check that all Extension dependencies have been installed + successfully, then remove the extension and try installing again."}}}}' + headers: + cache-control: + - no-cache + content-length: + - '782' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:43:52 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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": "eastus", "properties": {"publisher": "Microsoft.Azure.Extensions", + "type": "CustomScript", "typeHandlerVersion": "2.1", "settings": {"commandToExecute": + "ls"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - connectedmachine machine-extension create + Connection: + - keep-alive + Content-Length: + - '174' + Content-Type: + - application/json + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript?api-version=2020-08-02 + response: + body: + string: '' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '0' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 00:43:54 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-resource-requests: + - '319' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + response: + body: + string: '{"name":"03232940-d8b8-4d5b-a7e6-f61efefe6b40","status":"InProgress","startTime":"2020-09-15T00:43:54.6591338Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:44:24 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + response: + body: + string: '{"name":"03232940-d8b8-4d5b-a7e6-f61efefe6b40","status":"InProgress","startTime":"2020-09-15T00:43:54.6591338Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:44:54 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + response: + body: + string: '{"name":"03232940-d8b8-4d5b-a7e6-f61efefe6b40","status":"InProgress","startTime":"2020-09-15T00:43:54.6591338Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:45:25 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + response: + body: + string: '{"name":"03232940-d8b8-4d5b-a7e6-f61efefe6b40","status":"InProgress","startTime":"2020-09-15T00:43:54.6591338Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:45:54 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + response: + body: + string: '{"name":"03232940-d8b8-4d5b-a7e6-f61efefe6b40","status":"InProgress","startTime":"2020-09-15T00:43:54.6591338Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:46:25 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + response: + body: + string: '{"name":"03232940-d8b8-4d5b-a7e6-f61efefe6b40","status":"InProgress","startTime":"2020-09-15T00:43:54.6591338Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:46:55 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + response: + body: + string: '{"name":"03232940-d8b8-4d5b-a7e6-f61efefe6b40","status":"InProgress","startTime":"2020-09-15T00:43:54.6591338Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:47:26 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + response: + body: + string: '{"name":"03232940-d8b8-4d5b-a7e6-f61efefe6b40","status":"InProgress","startTime":"2020-09-15T00:43:54.6591338Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:47:56 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/03232940-d8b8-4d5b-a7e6-f61efefe6b40?api-version=2020-08-02 + response: + body: + string: '{"name":"03232940-d8b8-4d5b-a7e6-f61efefe6b40","status":"Succeeded","startTime":"2020-09-15T00:43:54.6591338Z","properties":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups//providers/Microsoft.HybridCompute/machines//extensions/customScript","name":"customScript","location":"eastus","type":"Microsoft.HybridCompute/machines/extensions","properties":{"publisher":"Microsoft.Azure.Extensions","type":"CustomScript","typeHandlerVersion":"2.1.3","autoUpgradeMinorVersion":false,"settings":{"commandToExecute":"ls"},"provisioningState":"Succeeded","instanceView":{"name":"customScript","type":"CustomScript","typeHandlerVersion":"2.1.3","status":{"code":"success","level":"Information","message":"formattedMessage: + Enable succeeded: \n[stdout]\nstderr\nstdout\n\n[stderr]\n"}}}}}' + headers: + cache-control: + - no-cache + content-length: + - '801' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:48:25 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension create + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --location --type --publisher --settings --type-handler-version + --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript?api-version=2020-08-02 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript","name":"customScript","type":"Microsoft.HybridCompute/machines/extensions","location":"eastus","properties":{"publisher":"Microsoft.Azure.Extensions","type":"CustomScript","typeHandlerVersion":"2.1.3","autoUpgradeMinorVersion":false,"settings":{"commandToExecute":"ls"},"provisioningState":"Succeeded","instanceView":{"name":"customScript","type":"CustomScript","typeHandlerVersion":"2.1.3","status":{"code":"success","level":"Information","message":"formattedMessage: + Enable succeeded: \n[stdout]\nstderr\nstdout\n\n[stderr]\n"}}}}' + headers: + cache-control: + - no-cache + content-length: + - '699' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:48:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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": {"settings": {"commandToExecute": "ls -a"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - connectedmachine machine-extension update + Connection: + - keep-alive + Content-Length: + - '59' + Content-Type: + - application/json + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript?api-version=2020-08-02 + response: + body: + string: '' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '0' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 00:48:28 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-resource-requests: + - '319' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - connectedmachine machine-extension update + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + response: + body: + string: '{"name":"30e1480b-ae94-4c7e-91b1-b7eb34edc4b3","status":"InProgress","startTime":"2020-09-15T00:48:28.7283531Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:48:59 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension update + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + response: + body: + string: '{"name":"30e1480b-ae94-4c7e-91b1-b7eb34edc4b3","status":"InProgress","startTime":"2020-09-15T00:48:28.7283531Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:49:29 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension update + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + response: + body: + string: '{"name":"30e1480b-ae94-4c7e-91b1-b7eb34edc4b3","status":"InProgress","startTime":"2020-09-15T00:48:28.7283531Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:49:58 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension update + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + response: + body: + string: '{"name":"30e1480b-ae94-4c7e-91b1-b7eb34edc4b3","status":"InProgress","startTime":"2020-09-15T00:48:28.7283531Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:50:29 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension update + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + response: + body: + string: '{"name":"30e1480b-ae94-4c7e-91b1-b7eb34edc4b3","status":"InProgress","startTime":"2020-09-15T00:48:28.7283531Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:51:00 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension update + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + response: + body: + string: '{"name":"30e1480b-ae94-4c7e-91b1-b7eb34edc4b3","status":"InProgress","startTime":"2020-09-15T00:48:28.7283531Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:51:30 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension update + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + response: + body: + string: '{"name":"30e1480b-ae94-4c7e-91b1-b7eb34edc4b3","status":"InProgress","startTime":"2020-09-15T00:48:28.7283531Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:52:00 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension update + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + response: + body: + string: '{"name":"30e1480b-ae94-4c7e-91b1-b7eb34edc4b3","status":"InProgress","startTime":"2020-09-15T00:48:28.7283531Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:52:29 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension update + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/30e1480b-ae94-4c7e-91b1-b7eb34edc4b3?api-version=2020-08-02 + response: + body: + string: '{"name":"30e1480b-ae94-4c7e-91b1-b7eb34edc4b3","status":"Succeeded","startTime":"2020-09-15T00:48:28.7283531Z","properties":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups//providers/Microsoft.HybridCompute/machines//extensions/customScript","name":"customScript","location":"eastus","type":"Microsoft.HybridCompute/machines/extensions","properties":{"publisher":"Microsoft.Azure.Extensions","type":"CustomScript","typeHandlerVersion":"2.1.3","autoUpgradeMinorVersion":false,"settings":{"commandToExecute":"ls + -a"},"provisioningState":"Succeeded","instanceView":{"name":"customScript","type":"CustomScript","typeHandlerVersion":"2.1.3","status":{"code":"success","level":"Information","message":"formattedMessage: + Enable succeeded: \n[stdout]\n.\n..\nstderr\nstdout\n\n[stderr]\n"}}}}}' + headers: + cache-control: + - no-cache + content-length: + - '811' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:53:00 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension update + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --settings --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript?api-version=2020-08-02 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript","name":"customScript","type":"Microsoft.HybridCompute/machines/extensions","location":"eastus","properties":{"publisher":"Microsoft.Azure.Extensions","type":"CustomScript","typeHandlerVersion":"2.1.3","autoUpgradeMinorVersion":false,"settings":{"commandToExecute":"ls + -a"},"provisioningState":"Succeeded","instanceView":{"name":"customScript","type":"CustomScript","typeHandlerVersion":"2.1.3","status":{"code":"success","level":"Information","message":"formattedMessage: + Enable succeeded: \n[stdout]\n.\n..\nstderr\nstdout\n\n[stderr]\n"}}}}' + headers: + cache-control: + - no-cache + content-length: + - '709' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:53:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension show + Connection: + - keep-alive + ParameterSetName: + - --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript?api-version=2020-08-02 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript","name":"customScript","type":"Microsoft.HybridCompute/machines/extensions","location":"eastus","properties":{"publisher":"Microsoft.Azure.Extensions","type":"CustomScript","typeHandlerVersion":"2.1.3","autoUpgradeMinorVersion":false,"settings":{"commandToExecute":"ls + -a"},"provisioningState":"Succeeded","instanceView":{"name":"customScript","type":"CustomScript","typeHandlerVersion":"2.1.3","status":{"code":"success","level":"Information","message":"formattedMessage: + Enable succeeded: \n[stdout]\n.\n..\nstderr\nstdout\n\n[stderr]\n"}}}}' + headers: + cache-control: + - no-cache + content-length: + - '709' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:53:02 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension list + Connection: + - keep-alive + ParameterSetName: + - --machine-name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions?api-version=2020-08-02 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/dependencyAgent","name":"dependencyAgent","location":"eastus","type":"Microsoft.HybridCompute/machines/extensions","properties":{"publisher":"Microsoft.Azure.Monitoring.DependencyAgent","type":"DependencyAgentLinux","typeHandlerVersion":"9.10.5.10940","autoUpgradeMinorVersion":false,"provisioningState":"Failed","instanceView":{"name":"dependencyAgent","type":"DependencyAgentLinux","typeHandlerVersion":"9.10.5.10940","status":{"code":"error","level":"Error","message":"Extension + failed to install. Check that all Extension dependencies have been installed + successfully, then remove the extension and try installing again."}}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript","name":"customScript","location":"eastus","type":"Microsoft.HybridCompute/machines/extensions","properties":{"publisher":"Microsoft.Azure.Extensions","type":"CustomScript","typeHandlerVersion":"2.1.3","autoUpgradeMinorVersion":false,"settings":{"commandToExecute":"ls + -a"},"provisioningState":"Succeeded","instanceView":{"name":"customScript","type":"CustomScript","typeHandlerVersion":"2.1.3","status":{"code":"success","level":"Information","message":"formattedMessage: + Enable succeeded: \n[stdout]\n.\n..\nstderr\nstdout\n\n[stderr]\n"}}}}]}' + headers: + cache-control: + - no-cache + content-length: + - '1504' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:53:02 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/dependencyAgent?api-version=2020-08-02 + response: + body: + string: '' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '0' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 00:53:04 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-deletes: + - '14998' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + response: + body: + string: '{"name":"55306918-c020-4103-a92f-e8628f89bf1b","status":"InProgress","startTime":"2020-09-15T00:53:04.2627649Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:53:34 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + response: + body: + string: '{"name":"55306918-c020-4103-a92f-e8628f89bf1b","status":"InProgress","startTime":"2020-09-15T00:53:04.2627649Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:54:04 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + response: + body: + string: '{"name":"55306918-c020-4103-a92f-e8628f89bf1b","status":"InProgress","startTime":"2020-09-15T00:53:04.2627649Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:54:35 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + response: + body: + string: '{"name":"55306918-c020-4103-a92f-e8628f89bf1b","status":"InProgress","startTime":"2020-09-15T00:53:04.2627649Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:55:05 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + response: + body: + string: '{"name":"55306918-c020-4103-a92f-e8628f89bf1b","status":"InProgress","startTime":"2020-09-15T00:53:04.2627649Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:55:35 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + response: + body: + string: '{"name":"55306918-c020-4103-a92f-e8628f89bf1b","status":"InProgress","startTime":"2020-09-15T00:53:04.2627649Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:56:05 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + response: + body: + string: '{"name":"55306918-c020-4103-a92f-e8628f89bf1b","status":"InProgress","startTime":"2020-09-15T00:53:04.2627649Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:56:36 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + response: + body: + string: '{"name":"55306918-c020-4103-a92f-e8628f89bf1b","status":"InProgress","startTime":"2020-09-15T00:53:04.2627649Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:57:06 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/55306918-c020-4103-a92f-e8628f89bf1b?api-version=2020-08-02 + response: + body: + string: '{"name":"55306918-c020-4103-a92f-e8628f89bf1b","status":"Succeeded","startTime":"2020-09-15T00:53:04.2627649Z"}' + headers: + cache-control: + - no-cache + content-length: + - '111' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:57:36 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension list + Connection: + - keep-alive + ParameterSetName: + - --machine-name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions?api-version=2020-08-02 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript","name":"customScript","location":"eastus","type":"Microsoft.HybridCompute/machines/extensions","properties":{"publisher":"Microsoft.Azure.Extensions","type":"CustomScript","typeHandlerVersion":"2.1.3","autoUpgradeMinorVersion":false,"settings":{"commandToExecute":"ls + -a"},"provisioningState":"Succeeded","instanceView":{"name":"customScript","type":"CustomScript","typeHandlerVersion":"2.1.3","status":{"code":"success","level":"Information","message":"formattedMessage: + Enable succeeded: \n[stdout]\n.\n..\nstderr\nstdout\n\n[stderr]\n"}}}}]}' + headers: + cache-control: + - no-cache + content-length: + - '721' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:57:37 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions/customScript?api-version=2020-08-02 + response: + body: + string: '' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '0' + content-type: + - application/json + date: + - Tue, 15 Sep 2020 00:57:38 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-deletes: + - '14999' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + response: + body: + string: '{"name":"9f2ee3fe-92af-4671-8160-4538dda58ea5","status":"InProgress","startTime":"2020-09-15T00:57:39.1615943Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:58:09 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + response: + body: + string: '{"name":"9f2ee3fe-92af-4671-8160-4538dda58ea5","status":"InProgress","startTime":"2020-09-15T00:57:39.1615943Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:58:39 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + response: + body: + string: '{"name":"9f2ee3fe-92af-4671-8160-4538dda58ea5","status":"InProgress","startTime":"2020-09-15T00:57:39.1615943Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:59:09 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + response: + body: + string: '{"name":"9f2ee3fe-92af-4671-8160-4538dda58ea5","status":"InProgress","startTime":"2020-09-15T00:57:39.1615943Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 00:59:39 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + response: + body: + string: '{"name":"9f2ee3fe-92af-4671-8160-4538dda58ea5","status":"InProgress","startTime":"2020-09-15T00:57:39.1615943Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 01:00:10 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + response: + body: + string: '{"name":"9f2ee3fe-92af-4671-8160-4538dda58ea5","status":"InProgress","startTime":"2020-09-15T00:57:39.1615943Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 01:00:40 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + response: + body: + string: '{"name":"9f2ee3fe-92af-4671-8160-4538dda58ea5","status":"InProgress","startTime":"2020-09-15T00:57:39.1615943Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 01:01:10 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + response: + body: + string: '{"name":"9f2ee3fe-92af-4671-8160-4538dda58ea5","status":"InProgress","startTime":"2020-09-15T00:57:39.1615943Z"}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + cache-control: + - no-cache + content-length: + - '112' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 01:01:40 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationresults/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension delete + Connection: + - keep-alive + ParameterSetName: + - -y --machine-name --name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HybridCompute/locations/eastus/operationstatus/9f2ee3fe-92af-4671-8160-4538dda58ea5?api-version=2020-08-02 + response: + body: + string: '{"name":"9f2ee3fe-92af-4671-8160-4538dda58ea5","status":"Succeeded","startTime":"2020-09-15T00:57:39.1615943Z"}' + headers: + cache-control: + - no-cache + content-length: + - '111' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 01:02:10 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - connectedmachine machine-extension list + Connection: + - keep-alive + ParameterSetName: + - --machine-name --resource-group + User-Agent: + - AZURECLI/2.11.1 azsdk-python-connectedmachine/unknown Python/3.8.6rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/csharp-sdk-test/providers/Microsoft.HybridCompute/machines/thinkpad/extensions?api-version=2020-08-02 + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 15 Sep 2020 01:02:11 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked vary: - Accept-Encoding x-content-type-options: - nosniff - x-ms-original-request-ids: - - e3da4d61-38e2-4820-a636-6a0c6e79ab73 status: code: 200 message: OK diff --git a/src/connectedmachine/azext_connectedmachine/tests/latest/test_connectedmachine_scenario.py b/src/connectedmachine/azext_connectedmachine/tests/latest/test_connectedmachine_scenario.py index 53d9ed8d2ad..64a44f849ed 100644 --- a/src/connectedmachine/azext_connectedmachine/tests/latest/test_connectedmachine_scenario.py +++ b/src/connectedmachine/azext_connectedmachine/tests/latest/test_connectedmachine_scenario.py @@ -1,32 +1,221 @@ -# -------------------------------------------------------------------------------------------- +# -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- import os -import unittest - +from azure.cli.testsdk import ScenarioTest +from .. import try_manual, raise_if, calc_coverage +from azure.cli.testsdk import ResourceGroupPreparer from azure_devtools.scenario_tests import AllowLargeResponse -from azure.cli.testsdk import (ScenarioTest, ResourceGroupPreparer) - TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) +CUSTOM_SCRIPT_EXTENSION_NAME = 'customScript' +DEPENDENCY_AGENT_EXTENSION_NAME = 'dependencyAgent' + +# Constants for Machine tests +MACHINES_RESOURCE_GROUP_NAME = 'AzcmagentTest' +MACHINES_MACHINE_NAME = '0.10.20225.002' +MACHINES_LOCATION = 'eastus2euap' + +# Constants for Machine Extension tests +EXTENSIONS_RESOURCE_GROUP_NAME = 'csharp-sdk-test' +EXTENSIONS_MACHINE_NAME = 'thinkpad' +EXTENSIONS_LOCATION = 'eastus' + + +@try_manual +def setup(test): + # This machine needs to already exist + test.cmd('az connectedmachine machine show ' + f'--name "{EXTENSIONS_MACHINE_NAME}" ' + f'--resource-group "{EXTENSIONS_RESOURCE_GROUP_NAME}"', + checks=[ + test.check('name', EXTENSIONS_MACHINE_NAME), + test.check('location', EXTENSIONS_LOCATION) + ]) + + +@try_manual +def cleanup(test): + pass + + +# Machine tests + + +# EXAMPLE: /Machines/get/Get Machine +@try_manual +def step__machines_get_get_machine(test): + test.cmd('az connectedmachine machine show ' + f'--name "{MACHINES_MACHINE_NAME}" ' + f'--resource-group "{MACHINES_RESOURCE_GROUP_NAME}"', + checks=[ + test.check('name', MACHINES_MACHINE_NAME), + test.check('location', MACHINES_LOCATION) + ]) + + +# EXAMPLE: /Machines/get/List Machines by resource group +@try_manual +def step__machines_get_list_machines_by_resource_group(test): + test.cmd('az connectedmachine machine list ' + f'--resource-group "{MACHINES_RESOURCE_GROUP_NAME}"', + checks=[ + test.greater_than('length(@)', 400) + ]) + + +# EXAMPLE: /Machines/delete/Delete a Machine +@try_manual +def step__machines_delete_delete_a_machine(test): + list = test.cmd('az connectedmachine machine list ' + f'--resource-group "{MACHINES_RESOURCE_GROUP_NAME}"', + checks=[ + test.greater_than('length(@)', 400) + ]).get_output_in_json() + + nameToDelete = next(machine['name'] for machine in list if machine['name'] != MACHINES_MACHINE_NAME) + test.cmd('az connectedmachine machine delete -y ' + f'--name "{nameToDelete}" ' + f'--resource-group "{MACHINES_RESOURCE_GROUP_NAME}"', + checks=[]) + + +# Machine Extension tests + + +# EXAMPLE: /MachineExtensions/put/Create or Update a Machine Extension +@try_manual +def step__machineextensions_put(test): + test.cmd('az connectedmachine machine-extension create ' + f'--machine-name "{EXTENSIONS_MACHINE_NAME}" ' + f'--name "{DEPENDENCY_AGENT_EXTENSION_NAME}" ' + f'--location "{EXTENSIONS_LOCATION}" ' + '--type "DependencyAgentLinux" ' + '--publisher "Microsoft.Azure.Monitoring.DependencyAgent" ' + f'--resource-group "{EXTENSIONS_RESOURCE_GROUP_NAME}"', + checks=[ + test.check('name', DEPENDENCY_AGENT_EXTENSION_NAME) + ]) + + +# EXAMPLE: /MachineExtensions/patch/Create or Update a Machine Extension +@try_manual +def step__machineextensions_patch(test): + # Create an extension to update + test.cmd('az connectedmachine machine-extension create ' + f'--machine-name "{EXTENSIONS_MACHINE_NAME}" ' + f'--name "{CUSTOM_SCRIPT_EXTENSION_NAME}" ' + f'--location "{EXTENSIONS_LOCATION}" ' + '--type "CustomScript" ' + '--publisher "Microsoft.Azure.Extensions" ' + r"""--settings '{{"commandToExecute":"ls"}}' """ + '--type-handler-version "2.1" ' + f'--resource-group "{EXTENSIONS_RESOURCE_GROUP_NAME}"', + checks=[ + test.check('name', CUSTOM_SCRIPT_EXTENSION_NAME), + test.check('provisioningState', 'Succeeded'), + test.check('settings.commandToExecute', 'ls') + ]) + + # update the extension + test.cmd('az connectedmachine machine-extension update ' + f'--machine-name "{EXTENSIONS_MACHINE_NAME}" ' + f'--name "{CUSTOM_SCRIPT_EXTENSION_NAME}" ' + r"""--settings '{{"commandToExecute":"ls -a"}}' """ + f'--resource-group "{EXTENSIONS_RESOURCE_GROUP_NAME}"', + checks=[ + test.check('name', CUSTOM_SCRIPT_EXTENSION_NAME), + test.check('provisioningState', 'Succeeded'), + test.check('settings.commandToExecute', 'ls -a') + ]) + + +# EXAMPLE: /MachineExtensions/get/GET Machine Extension +@try_manual +def step__machineextensions_get_get_machine_extension(test): + print('this happened') + test.cmd('az connectedmachine machine-extension show ' + f'--machine-name "{EXTENSIONS_MACHINE_NAME}" ' + f'--name "{CUSTOM_SCRIPT_EXTENSION_NAME}" ' + f'--resource-group "{EXTENSIONS_RESOURCE_GROUP_NAME}"', + checks=[ + test.check('name', CUSTOM_SCRIPT_EXTENSION_NAME), + test.check('provisioningState', 'Succeeded') + ]) + + +# EXAMPLE: /MachineExtensions/get/GET all Machine Extensions +@try_manual +def step__machineextensions_get(test): + test.cmd('az connectedmachine machine-extension list ' + f'--machine-name "{EXTENSIONS_MACHINE_NAME}" ' + f'--resource-group "{EXTENSIONS_RESOURCE_GROUP_NAME}"', + checks=[ + test.check('length(@)', 2) + ]) + + +# EXAMPLE: /MachineExtensions/delete/Delete a Machine Extension +@try_manual +def step__machineextensions_delete(test): + test.cmd('az connectedmachine machine-extension delete -y ' + f'--machine-name "{EXTENSIONS_MACHINE_NAME}" ' + f'--name "{DEPENDENCY_AGENT_EXTENSION_NAME}" ' + f'--resource-group "{EXTENSIONS_RESOURCE_GROUP_NAME}"', + checks=[]) + + test.cmd('az connectedmachine machine-extension list ' + f'--machine-name "{EXTENSIONS_MACHINE_NAME}" ' + f'--resource-group "{EXTENSIONS_RESOURCE_GROUP_NAME}"', + checks=[ + test.check('length(@)', 1) + ]) + + test.cmd('az connectedmachine machine-extension delete -y ' + f'--machine-name "{EXTENSIONS_MACHINE_NAME}" ' + f'--name "{CUSTOM_SCRIPT_EXTENSION_NAME}" ' + f'--resource-group "{EXTENSIONS_RESOURCE_GROUP_NAME}"', + checks=[]) + + test.cmd('az connectedmachine machine-extension list ' + f'--machine-name "{EXTENSIONS_MACHINE_NAME}" ' + f'--resource-group "{EXTENSIONS_RESOURCE_GROUP_NAME}"', + checks=[ + test.check('length(@)', 0) + ]) + + +@try_manual +def call_scenario(test): + setup(test) + # Machines + step__machines_get_get_machine(test) + step__machines_get_list_machines_by_resource_group(test) + step__machines_get_list_machines_by_resource_group(test) + step__machines_delete_delete_a_machine(test) + + # Machine Extensions + step__machineextensions_put(test) + step__machineextensions_patch(test) + step__machineextensions_get_get_machine_extension(test) + step__machineextensions_get(test) + step__machineextensions_delete(test) + + cleanup(test) + +@try_manual +class ConnectedMachineScenarioTest(ScenarioTest): -class ConnectedmachineScenarioTest(ScenarioTest): - - @ResourceGroupPreparer(name_prefix='cli_test_connectedmachine') - @AllowLargeResponse(size_kb=3072) - def test_connectedmachine(self, resource_group): - self.kwargs.update({ - 'name': '0.4.19298.002', - 'rg': 'hybridrptest', - }) - count = len(self.cmd('connectedmachine list').get_output_in_json()) - self.cmd('az connectedmachine show --resource-group {rg} --name {name}', checks=[ - self.check('name', '{name}'), - self.check('resourceGroup', '{rg}'), - ]) - self.cmd('connectedmachine delete -g {rg} -n {name}') - final_count = len(self.cmd('connectedmachine list').get_output_in_json()) - self.assertTrue(final_count, count - 1) + @AllowLargeResponse() + def test_connectedmachine(self): + call_scenario(self) + calc_coverage(__file__) + raise_if() diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/__init__.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/__init__.py index ec0845f7e17..c9cfdc73e77 100644 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/__init__.py +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/__init__.py @@ -9,11 +9,4 @@ # regenerated. # -------------------------------------------------------------------------- -from ._configuration import HybridComputeManagementClientConfiguration -from ._hybrid_compute_management_client import HybridComputeManagementClient -__all__ = ['HybridComputeManagementClient', 'HybridComputeManagementClientConfiguration'] - -from .version import VERSION - -__version__ = VERSION - +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/_hybrid_compute_management_client.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/_hybrid_compute_management_client.py deleted file mode 100644 index ed04d1bcc9d..00000000000 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/_hybrid_compute_management_client.py +++ /dev/null @@ -1,61 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.service_client import SDKClient -from msrest import Serializer, Deserializer - -from ._configuration import HybridComputeManagementClientConfiguration -from .operations import MachinesOperations -from .operations import MachineExtensionsOperations -from .operations import Operations -from . import models - - -class HybridComputeManagementClient(SDKClient): - """The Hybrid Compute Management Client. - - :ivar config: Configuration for client. - :vartype config: HybridComputeManagementClientConfiguration - - :ivar machines: Machines operations - :vartype machines: azure.mgmt.hybridcompute.operations.MachinesOperations - :ivar machine_extensions: MachineExtensions operations - :vartype machine_extensions: azure.mgmt.hybridcompute.operations.MachineExtensionsOperations - :ivar operations: Operations operations - :vartype operations: azure.mgmt.hybridcompute.operations.Operations - - :param credentials: Credentials needed for the client to connect to Azure. - :type credentials: :mod:`A msrestazure Credentials - object` - :param subscription_id: Subscription credentials which uniquely identify - Microsoft Azure subscription. The subscription ID forms part of the URI - for every service call. - :type subscription_id: str - :param str base_url: Service URL - """ - - def __init__( - self, credentials, subscription_id, base_url=None): - - self.config = HybridComputeManagementClientConfiguration(credentials, subscription_id, base_url) - super(HybridComputeManagementClient, self).__init__(self.config.credentials, self.config) - - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self.api_version = '2019-08-02-preview' - self._serialize = Serializer(client_models) - self._deserialize = Deserializer(client_models) - - self.machines = MachinesOperations( - self._client, self.config, self._serialize, self._deserialize) - self.machine_extensions = MachineExtensionsOperations( - self._client, self.config, self._serialize, self._deserialize) - self.operations = Operations( - self._client, self.config, self._serialize, self._deserialize) diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/__init__.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/__init__.py new file mode 100644 index 00000000000..35ef17cd924 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/__init__.py @@ -0,0 +1,16 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._connected_machine import ConnectedMachine +__all__ = ['ConnectedMachine'] + +try: + from ._patch import patch_sdk # type: ignore + patch_sdk() +except ImportError: + pass diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/_configuration.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/_configuration.py new file mode 100644 index 00000000000..30e13b4570d --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/_configuration.py @@ -0,0 +1,71 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import TYPE_CHECKING + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + + from azure.core.credentials import TokenCredential + +VERSION = "unknown" + +class ConnectedMachineConfiguration(Configuration): + """Configuration for ConnectedMachine. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + """ + + def __init__( + self, + credential, # type: "TokenCredential" + subscription_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + super(ConnectedMachineConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.subscription_id = subscription_id + self.api_version = "2020-08-02" + self.credential_scopes = ['https://management.azure.com/.default'] + self.credential_scopes.extend(kwargs.pop('credential_scopes', [])) + kwargs.setdefault('sdk_moniker', 'connectedmachine/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs # type: Any + ): + # type: (...) -> None + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/_connected_machine.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/_connected_machine.py new file mode 100644 index 00000000000..c9fe364e257 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/_connected_machine.py @@ -0,0 +1,79 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import TYPE_CHECKING + +from azure.mgmt.core import ARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Optional + + from azure.core.credentials import TokenCredential + +from ._configuration import ConnectedMachineConfiguration +from .operations import MachineOperations +from .operations import MachineExtensionOperations +from .operations import OperationOperations +from . import models + + +class ConnectedMachine(object): + """The Hybrid Compute Management Client. + + :ivar machine: MachineOperations operations + :vartype machine: connected_machine.operations.MachineOperations + :ivar machine_extension: MachineExtensionOperations operations + :vartype machine_extension: connected_machine.operations.MachineExtensionOperations + :ivar operation: OperationOperations operations + :vartype operation: connected_machine.operations.OperationOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential, # type: "TokenCredential" + subscription_id, # type: str + base_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> None + if not base_url: + base_url = 'https://management.azure.com' + self._config = ConnectedMachineConfiguration(credential, subscription_id, **kwargs) + self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.machine = MachineOperations( + self._client, self._config, self._serialize, self._deserialize) + self.machine_extension = MachineExtensionOperations( + self._client, self._config, self._serialize, self._deserialize) + self.operation = OperationOperations( + self._client, self._config, self._serialize, self._deserialize) + + def close(self): + # type: () -> None + self._client.close() + + def __enter__(self): + # type: () -> ConnectedMachine + self._client.__enter__() + return self + + def __exit__(self, *exc_details): + # type: (Any) -> None + self._client.__exit__(*exc_details) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/commands.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/__init__.py similarity index 51% rename from src/ai-did-you-mean-this/azext_ai_did_you_mean_this/commands.py rename to src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/__init__.py index 0732b3eba2c..73b411ccdcb 100644 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/commands.py +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/__init__.py @@ -1,12 +1,10 @@ -# -------------------------------------------------------------------------------------------- +# coding=utf-8 +# -------------------------------------------------------------------------- # 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- -# pylint: disable=line-too-long - - -def load_command_table(self, _): - - with self.command_group('ai-did-you-mean-this', is_preview=True) as g: - g.custom_command('version', 'show_extension_version') +from ._connected_machine_async import ConnectedMachine +__all__ = ['ConnectedMachine'] diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/_configuration_async.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/_configuration_async.py new file mode 100644 index 00000000000..7a22244ff57 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/_configuration_async.py @@ -0,0 +1,67 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, TYPE_CHECKING + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +VERSION = "unknown" + +class ConnectedMachineConfiguration(Configuration): + """Configuration for ConnectedMachine. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + subscription_id: str, + **kwargs: Any + ) -> None: + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + super(ConnectedMachineConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.subscription_id = subscription_id + self.api_version = "2020-08-02" + self.credential_scopes = ['https://management.azure.com/.default'] + self.credential_scopes.extend(kwargs.pop('credential_scopes', [])) + kwargs.setdefault('sdk_moniker', 'connectedmachine/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs: Any + ) -> None: + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/_connected_machine_async.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/_connected_machine_async.py new file mode 100644 index 00000000000..f0a492604f8 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/_connected_machine_async.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, Optional, TYPE_CHECKING + +from azure.mgmt.core import AsyncARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +from ._configuration_async import ConnectedMachineConfiguration +from .operations_async import MachineOperations +from .operations_async import MachineExtensionOperations +from .operations_async import OperationOperations +from .. import models + + +class ConnectedMachine(object): + """The Hybrid Compute Management Client. + + :ivar machine: MachineOperations operations + :vartype machine: connected_machine.aio.operations_async.MachineOperations + :ivar machine_extension: MachineExtensionOperations operations + :vartype machine_extension: connected_machine.aio.operations_async.MachineExtensionOperations + :ivar operation: OperationOperations operations + :vartype operation: connected_machine.aio.operations_async.OperationOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + subscription_id: str, + base_url: Optional[str] = None, + **kwargs: Any + ) -> None: + if not base_url: + base_url = 'https://management.azure.com' + self._config = ConnectedMachineConfiguration(credential, subscription_id, **kwargs) + self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.machine = MachineOperations( + self._client, self._config, self._serialize, self._deserialize) + self.machine_extension = MachineExtensionOperations( + self._client, self._config, self._serialize, self._deserialize) + self.operation = OperationOperations( + self._client, self._config, self._serialize, self._deserialize) + + async def close(self) -> None: + await self._client.close() + + async def __aenter__(self) -> "ConnectedMachine": + await self._client.__aenter__() + return self + + async def __aexit__(self, *exc_details) -> None: + await self._client.__aexit__(*exc_details) diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/__init__.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/__init__.py new file mode 100644 index 00000000000..ff66f70f156 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/__init__.py @@ -0,0 +1,17 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._machine_operations_async import MachineOperations +from ._machine_extension_operations_async import MachineExtensionOperations +from ._operation_operations_async import OperationOperations + +__all__ = [ + 'MachineOperations', + 'MachineExtensionOperations', + 'OperationOperations', +] diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/_machine_extension_operations_async.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/_machine_extension_operations_async.py new file mode 100644 index 00000000000..d7013bc5b9c --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/_machine_extension_operations_async.py @@ -0,0 +1,623 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class MachineExtensionOperations: + """MachineExtensionOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~connected_machine.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def _create_or_update_initial( + self, + resource_group_name: str, + name: str, + extension_name: str, + location: str, + tags: Optional[Dict[str, str]] = None, + force_update_tag: Optional[str] = None, + publisher: Optional[str] = None, + type: Optional[str] = None, + type_handler_version: Optional[str] = None, + auto_upgrade_minor_version: Optional[bool] = None, + settings: Optional[object] = None, + protected_settings: Optional[object] = None, + status: Optional["models.MachineExtensionInstanceViewStatus"] = None, + **kwargs + ) -> Optional["models.MachineExtension"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.MachineExtension"]] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _extension_parameters = models.MachineExtension(tags=tags, location=location, force_update_tag=force_update_tag, publisher=publisher, type_properties_type=type, type_handler_version_properties_type_handler_version=type_handler_version, auto_upgrade_minor_version=auto_upgrade_minor_version, settings=settings, protected_settings=protected_settings, status=status) + api_version = "2020-08-02" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_extension_parameters, 'MachineExtension') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('MachineExtension', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + async def begin_create_or_update( + self, + resource_group_name: str, + name: str, + extension_name: str, + location: str, + tags: Optional[Dict[str, str]] = None, + force_update_tag: Optional[str] = None, + publisher: Optional[str] = None, + type: Optional[str] = None, + type_handler_version: Optional[str] = None, + auto_upgrade_minor_version: Optional[bool] = None, + settings: Optional[object] = None, + protected_settings: Optional[object] = None, + status: Optional["models.MachineExtensionInstanceViewStatus"] = None, + **kwargs + ) -> AsyncLROPoller["models.MachineExtension"]: + """The operation to create or update the extension. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the machine where the extension should be created or updated. + :type name: str + :param extension_name: The name of the machine extension. + :type extension_name: str + :param location: The geo-location where the resource lives. + :type location: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either MachineExtension or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~connected_machine.models.MachineExtension] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineExtension"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._create_or_update_initial( + resource_group_name=resource_group_name, + name=name, + extension_name=extension_name, + location=location, + tags=tags, + force_update_tag=force_update_tag, + publisher=publisher, + type=type, + type_handler_version=type_handler_version, + auto_upgrade_minor_version=auto_upgrade_minor_version, + settings=settings, + protected_settings=protected_settings, + status=status, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('MachineExtension', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + if polling is True: polling_method = AsyncARMPolling(lro_delay, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + async def _update_initial( + self, + resource_group_name: str, + name: str, + extension_name: str, + tags: Optional[Dict[str, str]] = None, + force_update_tag: Optional[str] = None, + publisher: Optional[str] = None, + type: Optional[str] = None, + type_handler_version: Optional[str] = None, + auto_upgrade_minor_version: Optional[bool] = None, + settings: Optional[object] = None, + protected_settings: Optional[object] = None, + **kwargs + ) -> Optional["models.MachineExtension"]: + cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.MachineExtension"]] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _extension_parameters = models.MachineExtensionUpdate(tags=tags, force_update_tag=force_update_tag, publisher=publisher, type=type, type_handler_version=type_handler_version, auto_upgrade_minor_version=auto_upgrade_minor_version, settings=settings, protected_settings=protected_settings) + api_version = "2020-08-02" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self._update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_extension_parameters, 'MachineExtensionUpdate') + body_content_kwargs['content'] = body_content + request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('MachineExtension', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + async def begin_update( + self, + resource_group_name: str, + name: str, + extension_name: str, + tags: Optional[Dict[str, str]] = None, + force_update_tag: Optional[str] = None, + publisher: Optional[str] = None, + type: Optional[str] = None, + type_handler_version: Optional[str] = None, + auto_upgrade_minor_version: Optional[bool] = None, + settings: Optional[object] = None, + protected_settings: Optional[object] = None, + **kwargs + ) -> AsyncLROPoller["models.MachineExtension"]: + """The operation to update the extension. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the machine where the extension should be created or updated. + :type name: str + :param extension_name: The name of the machine extension. + :type extension_name: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either MachineExtension or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[~connected_machine.models.MachineExtension] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineExtension"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._update_initial( + resource_group_name=resource_group_name, + name=name, + extension_name=extension_name, + tags=tags, + force_update_tag=force_update_tag, + publisher=publisher, + type=type, + type_handler_version=type_handler_version, + auto_upgrade_minor_version=auto_upgrade_minor_version, + settings=settings, + protected_settings=protected_settings, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('MachineExtension', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + if polling is True: polling_method = AsyncARMPolling(lro_delay, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + async def _delete_initial( + self, + resource_group_name: str, + name: str, + extension_name: str, + **kwargs + ) -> None: + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + async def begin_delete( + self, + resource_group_name: str, + name: str, + extension_name: str, + **kwargs + ) -> AsyncLROPoller[None]: + """The operation to delete the extension. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the machine where the extension should be deleted. + :type name: str + :param extension_name: The name of the machine extension. + :type extension_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.AsyncLROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = await self._delete_initial( + resource_group_name=resource_group_name, + name=name, + extension_name=extension_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + if polling is True: polling_method = AsyncARMPolling(lro_delay, **kwargs) + elif polling is False: polling_method = AsyncNoPolling() + else: polling_method = polling + if cont_token: + return AsyncLROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + async def get( + self, + resource_group_name: str, + name: str, + extension_name: str, + **kwargs + ) -> "models.MachineExtension": + """The operation to get the extension. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the machine containing the extension. + :type name: str + :param extension_name: The name of the machine extension. + :type extension_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MachineExtension, or the result of cls(response) + :rtype: ~connected_machine.models.MachineExtension + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineExtension"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MachineExtension', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + def list( + self, + resource_group_name: str, + name: str, + expand: Optional[str] = None, + **kwargs + ) -> AsyncIterable["models.MachineExtensionsListResult"]: + """The operation to get all extensions of a non-Azure machine. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the machine containing the extension. + :type name: str + :param expand: The expand expression to apply on the operation. + :type expand: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either MachineExtensionsListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~connected_machine.models.MachineExtensionsListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineExtensionsListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('MachineExtensionsListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions'} # type: ignore diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/_machine_operations_async.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/_machine_operations_async.py new file mode 100644 index 00000000000..27c9c280a82 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/_machine_operations_async.py @@ -0,0 +1,287 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class MachineOperations: + """MachineOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~connected_machine.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def delete( + self, + resource_group_name: str, + name: str, + **kwargs + ) -> None: + """The operation to remove a hybrid machine identity in Azure. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the hybrid machine. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}'} # type: ignore + + async def get( + self, + resource_group_name: str, + name: str, + expand: Optional[Union[str, "models.InstanceViewTypes"]] = None, + **kwargs + ) -> "models.Machine": + """Retrieves information about the model view or the instance view of a hybrid machine. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the hybrid machine. + :type name: str + :param expand: The expand expression to apply on the operation. + :type expand: str or ~connected_machine.models.InstanceViewTypes + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Machine, or the result of cls(response) + :rtype: ~connected_machine.models.Machine + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.Machine"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Machine', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs + ) -> AsyncIterable["models.MachineListResult"]: + """Lists all the hybrid machines in the specified resource group. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either MachineListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~connected_machine.models.MachineListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('MachineListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.ErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines'} # type: ignore + + def list_by_subscription( + self, + **kwargs + ) -> AsyncIterable["models.MachineListResult"]: + """Lists all the hybrid machines in the specified subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either MachineListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~connected_machine.models.MachineListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list_by_subscription.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('MachineListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.ErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.HybridCompute/machines'} # type: ignore diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/_operation_operations_async.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/_operation_operations_async.py new file mode 100644 index 00000000000..8c3939cae8e --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/aio/operations_async/_operation_operations_async.py @@ -0,0 +1,102 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class OperationOperations: + """OperationOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~connected_machine.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs + ) -> AsyncIterable["models.OperationListResult"]: + """Gets a list of hybrid compute operations. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either OperationListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~connected_machine.models.OperationListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('OperationListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.ErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/providers/Microsoft.HybridCompute/operations'} # type: ignore diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/__init__.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/__init__.py new file mode 100644 index 00000000000..d9ce4d9297c --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/__init__.py @@ -0,0 +1,118 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import ErrorDetail + from ._models_py3 import ErrorResponse + from ._models_py3 import Identity + from ._models_py3 import LocationData + from ._models_py3 import Machine + from ._models_py3 import MachineExtension + from ._models_py3 import MachineExtensionInstanceView + from ._models_py3 import MachineExtensionInstanceViewStatus + from ._models_py3 import MachineExtensionProperties + from ._models_py3 import MachineExtensionPropertiesInstanceView + from ._models_py3 import MachineExtensionPropertiesautogenerated + from ._models_py3 import MachineExtensionUpdate + from ._models_py3 import MachineExtensionUpdateProperties + from ._models_py3 import MachineExtensionUpdatePropertiesautogenerated + from ._models_py3 import MachineExtensionsListResult + from ._models_py3 import MachineIdentity + from ._models_py3 import MachineListResult + from ._models_py3 import MachineProperties + from ._models_py3 import MachinePropertiesOsProfile + from ._models_py3 import MachinePropertiesautogenerated + from ._models_py3 import MachineUpdate + from ._models_py3 import MachineUpdateIdentity + from ._models_py3 import MachineUpdateProperties + from ._models_py3 import MachineUpdatePropertiesautogenerated + from ._models_py3 import OperationListResult + from ._models_py3 import OperationValue + from ._models_py3 import OperationValueDisplay + from ._models_py3 import OperationValueDisplayautogenerated + from ._models_py3 import OsProfile + from ._models_py3 import Resource + from ._models_py3 import TrackedResource + from ._models_py3 import UpdateResource +except (SyntaxError, ImportError): + from ._models import ErrorDetail # type: ignore + from ._models import ErrorResponse # type: ignore + from ._models import Identity # type: ignore + from ._models import LocationData # type: ignore + from ._models import Machine # type: ignore + from ._models import MachineExtension # type: ignore + from ._models import MachineExtensionInstanceView # type: ignore + from ._models import MachineExtensionInstanceViewStatus # type: ignore + from ._models import MachineExtensionProperties # type: ignore + from ._models import MachineExtensionPropertiesInstanceView # type: ignore + from ._models import MachineExtensionPropertiesautogenerated # type: ignore + from ._models import MachineExtensionUpdate # type: ignore + from ._models import MachineExtensionUpdateProperties # type: ignore + from ._models import MachineExtensionUpdatePropertiesautogenerated # type: ignore + from ._models import MachineExtensionsListResult # type: ignore + from ._models import MachineIdentity # type: ignore + from ._models import MachineListResult # type: ignore + from ._models import MachineProperties # type: ignore + from ._models import MachinePropertiesOsProfile # type: ignore + from ._models import MachinePropertiesautogenerated # type: ignore + from ._models import MachineUpdate # type: ignore + from ._models import MachineUpdateIdentity # type: ignore + from ._models import MachineUpdateProperties # type: ignore + from ._models import MachineUpdatePropertiesautogenerated # type: ignore + from ._models import OperationListResult # type: ignore + from ._models import OperationValue # type: ignore + from ._models import OperationValueDisplay # type: ignore + from ._models import OperationValueDisplayautogenerated # type: ignore + from ._models import OsProfile # type: ignore + from ._models import Resource # type: ignore + from ._models import TrackedResource # type: ignore + from ._models import UpdateResource # type: ignore + +from ._connected_machine_enums import ( + InstanceViewTypes, + StatusLevelTypes, + StatusTypes, +) + +__all__ = [ + 'ErrorDetail', + 'ErrorResponse', + 'Identity', + 'LocationData', + 'Machine', + 'MachineExtension', + 'MachineExtensionInstanceView', + 'MachineExtensionInstanceViewStatus', + 'MachineExtensionProperties', + 'MachineExtensionPropertiesInstanceView', + 'MachineExtensionPropertiesautogenerated', + 'MachineExtensionUpdate', + 'MachineExtensionUpdateProperties', + 'MachineExtensionUpdatePropertiesautogenerated', + 'MachineExtensionsListResult', + 'MachineIdentity', + 'MachineListResult', + 'MachineProperties', + 'MachinePropertiesOsProfile', + 'MachinePropertiesautogenerated', + 'MachineUpdate', + 'MachineUpdateIdentity', + 'MachineUpdateProperties', + 'MachineUpdatePropertiesautogenerated', + 'OperationListResult', + 'OperationValue', + 'OperationValueDisplay', + 'OperationValueDisplayautogenerated', + 'OsProfile', + 'Resource', + 'TrackedResource', + 'UpdateResource', + 'InstanceViewTypes', + 'StatusLevelTypes', + 'StatusTypes', +] diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/_connected_machine_enums.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/_connected_machine_enums.py new file mode 100644 index 00000000000..c3ccf88fe6a --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/_connected_machine_enums.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum, EnumMeta +from six import with_metaclass + +class _CaseInsensitiveEnumMeta(EnumMeta): + def __getitem__(self, name): + return super().__getitem__(name.upper()) + + def __getattr__(cls, name): + """Return the enum member matching `name` + We use __getattr__ instead of descriptors or inserting into the enum + class' __dict__ in order to support `name` and `value` being both + properties for enum members (which live in the class' __dict__) and + enum members themselves. + """ + try: + return cls._member_map_[name.upper()] + except KeyError: + raise AttributeError(name) + + +class InstanceViewTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + + INSTANCE_VIEW = "instanceView" + +class StatusLevelTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The level code. + """ + + INFO = "Info" + WARNING = "Warning" + ERROR = "Error" + +class StatusTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The status of the hybrid machine agent. + """ + + CONNECTED = "Connected" + DISCONNECTED = "Disconnected" + ERROR = "Error" diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/_models.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/_models.py new file mode 100644 index 00000000000..b54993920c6 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/_models.py @@ -0,0 +1,1492 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import HttpResponseError +import msrest.serialization + + +class ErrorDetail(msrest.serialization.Model): + """Error details. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. The error's code. + :type code: str + :param message: Required. A human readable error message. + :type message: str + :param target: Indicates which property in the request is responsible for the error. + :type target: str + :param details: Additional error details. + :type details: list[~connected_machine.models.ErrorDetail] + """ + + _validation = { + 'code': {'required': True}, + 'message': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ErrorDetail]'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorDetail, self).__init__(**kwargs) + self.code = kwargs['code'] + self.message = kwargs['message'] + self.target = kwargs.get('target', None) + self.details = kwargs.get('details', None) + + +class ErrorResponse(msrest.serialization.Model): + """Contains details when the response code indicates an error. + + All required parameters must be populated in order to send to Azure. + + :param error: Required. The error details. + :type error: ~connected_machine.models.ErrorDetail + """ + + _validation = { + 'error': {'required': True}, + } + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorDetail'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorResponse, self).__init__(**kwargs) + self.error = kwargs['error'] + + +class Identity(msrest.serialization.Model): + """Managed Identity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param type: The identity type. + :type type: str + :ivar principal_id: The identity's principal id. + :vartype principal_id: str + :ivar tenant_id: The identity's tenant id. + :vartype tenant_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Identity, self).__init__(**kwargs) + self.type = kwargs.get('type', None) + self.principal_id = None + self.tenant_id = None + + +class LocationData(msrest.serialization.Model): + """Metadata pertaining to the geographic location of the resource. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. A canonical name for the geographic or physical location. + :type name: str + :param city: The city or locality where the resource is located. + :type city: str + :param district: The district, state, or province where the resource is located. + :type district: str + :param country_or_region: The country or region where the resource is located. + :type country_or_region: str + """ + + _validation = { + 'name': {'required': True, 'max_length': 256, 'min_length': 0}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'city': {'key': 'city', 'type': 'str'}, + 'district': {'key': 'district', 'type': 'str'}, + 'country_or_region': {'key': 'countryOrRegion', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(LocationData, self).__init__(**kwargs) + self.name = kwargs['name'] + self.city = kwargs.get('city', None) + self.district = kwargs.get('district', None) + self.country_or_region = kwargs.get('country_or_region', None) + + +class Resource(msrest.serialization.Model): + """Resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class TrackedResource(Resource): + """The resource model definition for a ARM tracked top level resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives. + :type location: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TrackedResource, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + self.location = kwargs['location'] + + +class Machine(TrackedResource): + """Describes a hybrid machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives. + :type location: str + :param identity: Managed Identity. + :type identity: ~connected_machine.models.Identity + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + :ivar os_profile: Specifies the operating system settings for the hybrid machine. + :vartype os_profile: ~connected_machine.models.OsProfile + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar status: The status of the hybrid machine agent. Possible values include: "Connected", + "Disconnected", "Error". + :vartype status: str or ~connected_machine.models.StatusTypes + :ivar last_status_change: The time of the last status change. + :vartype last_status_change: ~datetime.datetime + :ivar error_details: Details about the error state. + :vartype error_details: list[~connected_machine.models.ErrorDetail] + :ivar agent_version: The hybrid machine agent full version. + :vartype agent_version: str + :param vm_id: Specifies the hybrid machine unique ID. + :type vm_id: str + :ivar display_name: Specifies the hybrid machine display name. + :vartype display_name: str + :ivar machine_fqdn: Specifies the hybrid machine FQDN. + :vartype machine_fqdn: str + :param client_public_key: Public Key that the client provides to be used during initial + resource onboarding. + :type client_public_key: str + :ivar os_name: The Operating System running on the hybrid machine. + :vartype os_name: str + :ivar os_version: The version of Operating System running on the hybrid machine. + :vartype os_version: str + :ivar vm_uuid: Specifies the Arc Machine's unique SMBIOS ID. + :vartype vm_uuid: str + :ivar extensions: Machine Extensions information. + :vartype extensions: list[~connected_machine.models.MachineExtensionInstanceView] + :ivar os_sku: Specifies the Operating System product SKU. + :vartype os_sku: str + :ivar domain_name: Specifies the Windows domain name. + :vartype domain_name: str + :ivar ad_fqdn: Specifies the AD fully qualified display name. + :vartype ad_fqdn: str + :ivar dns_fqdn: Specifies the DNS fully qualified display name. + :vartype dns_fqdn: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'os_profile': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'last_status_change': {'readonly': True}, + 'error_details': {'readonly': True}, + 'agent_version': {'readonly': True}, + 'display_name': {'readonly': True}, + 'machine_fqdn': {'readonly': True}, + 'os_name': {'readonly': True}, + 'os_version': {'readonly': True}, + 'vm_uuid': {'readonly': True}, + 'extensions': {'readonly': True}, + 'os_sku': {'readonly': True}, + 'domain_name': {'readonly': True}, + 'ad_fqdn': {'readonly': True}, + 'dns_fqdn': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'identity': {'key': 'identity', 'type': 'Identity'}, + 'location_data': {'key': 'properties.locationData', 'type': 'LocationData'}, + 'os_profile': {'key': 'properties.osProfile', 'type': 'OsProfile'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'last_status_change': {'key': 'properties.lastStatusChange', 'type': 'iso-8601'}, + 'error_details': {'key': 'properties.errorDetails', 'type': '[ErrorDetail]'}, + 'agent_version': {'key': 'properties.agentVersion', 'type': 'str'}, + 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'machine_fqdn': {'key': 'properties.machineFqdn', 'type': 'str'}, + 'client_public_key': {'key': 'properties.clientPublicKey', 'type': 'str'}, + 'os_name': {'key': 'properties.osName', 'type': 'str'}, + 'os_version': {'key': 'properties.osVersion', 'type': 'str'}, + 'vm_uuid': {'key': 'properties.vmUuid', 'type': 'str'}, + 'extensions': {'key': 'properties.extensions', 'type': '[MachineExtensionInstanceView]'}, + 'os_sku': {'key': 'properties.osSku', 'type': 'str'}, + 'domain_name': {'key': 'properties.domainName', 'type': 'str'}, + 'ad_fqdn': {'key': 'properties.adFqdn', 'type': 'str'}, + 'dns_fqdn': {'key': 'properties.dnsFqdn', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Machine, self).__init__(**kwargs) + self.identity = kwargs.get('identity', None) + self.location_data = kwargs.get('location_data', None) + self.os_profile = None + self.provisioning_state = None + self.status = None + self.last_status_change = None + self.error_details = None + self.agent_version = None + self.vm_id = kwargs.get('vm_id', None) + self.display_name = None + self.machine_fqdn = None + self.client_public_key = kwargs.get('client_public_key', None) + self.os_name = None + self.os_version = None + self.vm_uuid = None + self.extensions = None + self.os_sku = None + self.domain_name = None + self.ad_fqdn = None + self.dns_fqdn = None + + +class MachineExtension(TrackedResource): + """Describes a Machine Extension. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives. + :type location: str + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type_properties_type: Specifies the type of the extension; an example is + "CustomScriptExtension". + :type type_properties_type: str + :param type_handler_version_properties_type_handler_version: Specifies the version of the + script handler. + :type type_handler_version_properties_type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar name_properties_instance_view_name: The machine extension name. + :vartype name_properties_instance_view_name: str + :ivar type_properties_instance_view_type: Specifies the type of the extension; an example is + "CustomScriptExtension". + :vartype type_properties_instance_view_type: str + :ivar type_handler_version_properties_instance_view_type_handler_version: Specifies the version + of the script handler. + :vartype type_handler_version_properties_instance_view_type_handler_version: str + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'name_properties_instance_view_name': {'readonly': True}, + 'type_properties_instance_view_type': {'readonly': True}, + 'type_handler_version_properties_instance_view_type_handler_version': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'properties.publisher', 'type': 'str'}, + 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, + 'type_handler_version_properties_type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'properties.settings', 'type': 'object'}, + 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'name_properties_instance_view_name': {'key': 'properties.instanceView.name', 'type': 'str'}, + 'type_properties_instance_view_type': {'key': 'properties.instanceView.type', 'type': 'str'}, + 'type_handler_version_properties_instance_view_type_handler_version': {'key': 'properties.instanceView.typeHandlerVersion', 'type': 'str'}, + 'status': {'key': 'properties.instanceView.status', 'type': 'MachineExtensionInstanceViewStatus'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtension, self).__init__(**kwargs) + self.force_update_tag = kwargs.get('force_update_tag', None) + self.publisher = kwargs.get('publisher', None) + self.type_properties_type = kwargs.get('type_properties_type', None) + self.type_handler_version_properties_type_handler_version = kwargs.get('type_handler_version_properties_type_handler_version', None) + self.auto_upgrade_minor_version = kwargs.get('auto_upgrade_minor_version', None) + self.settings = kwargs.get('settings', None) + self.protected_settings = kwargs.get('protected_settings', None) + self.provisioning_state = None + self.name_properties_instance_view_name = None + self.type_properties_instance_view_type = None + self.type_handler_version_properties_instance_view_type_handler_version = None + self.status = kwargs.get('status', None) + + +class MachineExtensionInstanceView(msrest.serialization.Model): + """Describes the Machine Extension Instance View. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The machine extension name. + :vartype name: str + :ivar type: Specifies the type of the extension; an example is "CustomScriptExtension". + :vartype type: str + :ivar type_handler_version: Specifies the version of the script handler. + :vartype type_handler_version: str + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + """ + + _validation = { + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'type_handler_version': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'MachineExtensionInstanceViewStatus'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtensionInstanceView, self).__init__(**kwargs) + self.name = None + self.type = None + self.type_handler_version = None + self.status = kwargs.get('status', None) + + +class MachineExtensionInstanceViewStatus(msrest.serialization.Model): + """Instance view status. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: The status code. + :vartype code: str + :ivar level: The level code. Possible values include: "Info", "Warning", "Error". + :vartype level: str or ~connected_machine.models.StatusLevelTypes + :ivar display_status: The short localizable label for the status. + :vartype display_status: str + :ivar message: The detailed status message, including for alerts and error messages. + :vartype message: str + :ivar time: The time of the status. + :vartype time: ~datetime.datetime + """ + + _validation = { + 'code': {'readonly': True}, + 'level': {'readonly': True}, + 'display_status': {'readonly': True}, + 'message': {'readonly': True}, + 'time': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'level': {'key': 'level', 'type': 'str'}, + 'display_status': {'key': 'displayStatus', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'time': {'key': 'time', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtensionInstanceViewStatus, self).__init__(**kwargs) + self.code = None + self.level = None + self.display_status = None + self.message = None + self.time = None + + +class MachineExtensionProperties(msrest.serialization.Model): + """Describes the properties of a Machine Extension. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar name: The machine extension name. + :vartype name: str + :ivar type_instance_view_type: Specifies the type of the extension; an example is + "CustomScriptExtension". + :vartype type_instance_view_type: str + :ivar type_handler_version_instance_view_type_handler_version: Specifies the version of the + script handler. + :vartype type_handler_version_instance_view_type_handler_version: str + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + 'name': {'readonly': True}, + 'type_instance_view_type': {'readonly': True}, + 'type_handler_version_instance_view_type_handler_version': {'readonly': True}, + } + + _attribute_map = { + 'force_update_tag': {'key': 'forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'settings', 'type': 'object'}, + 'protected_settings': {'key': 'protectedSettings', 'type': 'object'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'name': {'key': 'instanceView.name', 'type': 'str'}, + 'type_instance_view_type': {'key': 'instanceView.type', 'type': 'str'}, + 'type_handler_version_instance_view_type_handler_version': {'key': 'instanceView.typeHandlerVersion', 'type': 'str'}, + 'status': {'key': 'instanceView.status', 'type': 'MachineExtensionInstanceViewStatus'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtensionProperties, self).__init__(**kwargs) + self.force_update_tag = kwargs.get('force_update_tag', None) + self.publisher = kwargs.get('publisher', None) + self.type = kwargs.get('type', None) + self.type_handler_version = kwargs.get('type_handler_version', None) + self.auto_upgrade_minor_version = kwargs.get('auto_upgrade_minor_version', None) + self.settings = kwargs.get('settings', None) + self.protected_settings = kwargs.get('protected_settings', None) + self.provisioning_state = None + self.name = None + self.type_instance_view_type = None + self.type_handler_version_instance_view_type_handler_version = None + self.status = kwargs.get('status', None) + + +class MachineExtensionPropertiesautogenerated(MachineExtensionProperties): + """Describes Machine Extension Properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar name: The machine extension name. + :vartype name: str + :ivar type_instance_view_type: Specifies the type of the extension; an example is + "CustomScriptExtension". + :vartype type_instance_view_type: str + :ivar type_handler_version_instance_view_type_handler_version: Specifies the version of the + script handler. + :vartype type_handler_version_instance_view_type_handler_version: str + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + 'name': {'readonly': True}, + 'type_instance_view_type': {'readonly': True}, + 'type_handler_version_instance_view_type_handler_version': {'readonly': True}, + } + + _attribute_map = { + 'force_update_tag': {'key': 'forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'settings', 'type': 'object'}, + 'protected_settings': {'key': 'protectedSettings', 'type': 'object'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'name': {'key': 'instanceView.name', 'type': 'str'}, + 'type_instance_view_type': {'key': 'instanceView.type', 'type': 'str'}, + 'type_handler_version_instance_view_type_handler_version': {'key': 'instanceView.typeHandlerVersion', 'type': 'str'}, + 'status': {'key': 'instanceView.status', 'type': 'MachineExtensionInstanceViewStatus'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtensionPropertiesautogenerated, self).__init__(**kwargs) + + +class MachineExtensionPropertiesInstanceView(MachineExtensionInstanceView): + """The machine extension instance view. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The machine extension name. + :vartype name: str + :ivar type: Specifies the type of the extension; an example is "CustomScriptExtension". + :vartype type: str + :ivar type_handler_version: Specifies the version of the script handler. + :vartype type_handler_version: str + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + """ + + _validation = { + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'type_handler_version': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'MachineExtensionInstanceViewStatus'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtensionPropertiesInstanceView, self).__init__(**kwargs) + + +class MachineExtensionsListResult(msrest.serialization.Model): + """Describes the Machine Extensions List Result. + + :param value: The list of extensions. + :type value: list[~connected_machine.models.MachineExtension] + :param next_link: The uri to fetch the next page of machine extensions. Call ListNext() with + this to fetch the next page of extensions. + :type next_link: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[MachineExtension]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtensionsListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = kwargs.get('next_link', None) + + +class UpdateResource(msrest.serialization.Model): + """The Update Resource model definition. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__( + self, + **kwargs + ): + super(UpdateResource, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + + +class MachineExtensionUpdate(UpdateResource): + """Describes a Machine Extension Update. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'properties.publisher', 'type': 'str'}, + 'type': {'key': 'properties.type', 'type': 'str'}, + 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'properties.settings', 'type': 'object'}, + 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtensionUpdate, self).__init__(**kwargs) + self.force_update_tag = kwargs.get('force_update_tag', None) + self.publisher = kwargs.get('publisher', None) + self.type = kwargs.get('type', None) + self.type_handler_version = kwargs.get('type_handler_version', None) + self.auto_upgrade_minor_version = kwargs.get('auto_upgrade_minor_version', None) + self.settings = kwargs.get('settings', None) + self.protected_settings = kwargs.get('protected_settings', None) + + +class MachineExtensionUpdateProperties(msrest.serialization.Model): + """Describes the properties of a Machine Extension. + + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + """ + + _attribute_map = { + 'force_update_tag': {'key': 'forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'settings', 'type': 'object'}, + 'protected_settings': {'key': 'protectedSettings', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtensionUpdateProperties, self).__init__(**kwargs) + self.force_update_tag = kwargs.get('force_update_tag', None) + self.publisher = kwargs.get('publisher', None) + self.type = kwargs.get('type', None) + self.type_handler_version = kwargs.get('type_handler_version', None) + self.auto_upgrade_minor_version = kwargs.get('auto_upgrade_minor_version', None) + self.settings = kwargs.get('settings', None) + self.protected_settings = kwargs.get('protected_settings', None) + + +class MachineExtensionUpdatePropertiesautogenerated(MachineExtensionUpdateProperties): + """Describes Machine Extension Update Properties. + + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + """ + + _attribute_map = { + 'force_update_tag': {'key': 'forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'settings', 'type': 'object'}, + 'protected_settings': {'key': 'protectedSettings', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtensionUpdatePropertiesautogenerated, self).__init__(**kwargs) + + +class MachineIdentity(Identity): + """MachineIdentity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param type: The identity type. + :type type: str + :ivar principal_id: The identity's principal id. + :vartype principal_id: str + :ivar tenant_id: The identity's tenant id. + :vartype tenant_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineIdentity, self).__init__(**kwargs) + + +class MachineListResult(msrest.serialization.Model): + """The List hybrid machine operation response. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. The list of hybrid machines. + :type value: list[~connected_machine.models.Machine] + :param next_link: The URI to fetch the next page of Machines. Call ListNext() with this URI to + fetch the next page of hybrid machines. + :type next_link: str + """ + + _validation = { + 'value': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Machine]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineListResult, self).__init__(**kwargs) + self.value = kwargs['value'] + self.next_link = kwargs.get('next_link', None) + + +class MachineProperties(msrest.serialization.Model): + """Describes the properties of a hybrid machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + :ivar os_profile: Specifies the operating system settings for the hybrid machine. + :vartype os_profile: ~connected_machine.models.OsProfile + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar status: The status of the hybrid machine agent. Possible values include: "Connected", + "Disconnected", "Error". + :vartype status: str or ~connected_machine.models.StatusTypes + :ivar last_status_change: The time of the last status change. + :vartype last_status_change: ~datetime.datetime + :ivar error_details: Details about the error state. + :vartype error_details: list[~connected_machine.models.ErrorDetail] + :ivar agent_version: The hybrid machine agent full version. + :vartype agent_version: str + :param vm_id: Specifies the hybrid machine unique ID. + :type vm_id: str + :ivar display_name: Specifies the hybrid machine display name. + :vartype display_name: str + :ivar machine_fqdn: Specifies the hybrid machine FQDN. + :vartype machine_fqdn: str + :param client_public_key: Public Key that the client provides to be used during initial + resource onboarding. + :type client_public_key: str + :ivar os_name: The Operating System running on the hybrid machine. + :vartype os_name: str + :ivar os_version: The version of Operating System running on the hybrid machine. + :vartype os_version: str + :ivar vm_uuid: Specifies the Arc Machine's unique SMBIOS ID. + :vartype vm_uuid: str + :ivar extensions: Machine Extensions information. + :vartype extensions: list[~connected_machine.models.MachineExtensionInstanceView] + :ivar os_sku: Specifies the Operating System product SKU. + :vartype os_sku: str + :ivar domain_name: Specifies the Windows domain name. + :vartype domain_name: str + :ivar ad_fqdn: Specifies the AD fully qualified display name. + :vartype ad_fqdn: str + :ivar dns_fqdn: Specifies the DNS fully qualified display name. + :vartype dns_fqdn: str + """ + + _validation = { + 'os_profile': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'last_status_change': {'readonly': True}, + 'error_details': {'readonly': True}, + 'agent_version': {'readonly': True}, + 'display_name': {'readonly': True}, + 'machine_fqdn': {'readonly': True}, + 'os_name': {'readonly': True}, + 'os_version': {'readonly': True}, + 'vm_uuid': {'readonly': True}, + 'extensions': {'readonly': True}, + 'os_sku': {'readonly': True}, + 'domain_name': {'readonly': True}, + 'ad_fqdn': {'readonly': True}, + 'dns_fqdn': {'readonly': True}, + } + + _attribute_map = { + 'location_data': {'key': 'locationData', 'type': 'LocationData'}, + 'os_profile': {'key': 'osProfile', 'type': 'OsProfile'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'last_status_change': {'key': 'lastStatusChange', 'type': 'iso-8601'}, + 'error_details': {'key': 'errorDetails', 'type': '[ErrorDetail]'}, + 'agent_version': {'key': 'agentVersion', 'type': 'str'}, + 'vm_id': {'key': 'vmId', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'machine_fqdn': {'key': 'machineFqdn', 'type': 'str'}, + 'client_public_key': {'key': 'clientPublicKey', 'type': 'str'}, + 'os_name': {'key': 'osName', 'type': 'str'}, + 'os_version': {'key': 'osVersion', 'type': 'str'}, + 'vm_uuid': {'key': 'vmUuid', 'type': 'str'}, + 'extensions': {'key': 'extensions', 'type': '[MachineExtensionInstanceView]'}, + 'os_sku': {'key': 'osSku', 'type': 'str'}, + 'domain_name': {'key': 'domainName', 'type': 'str'}, + 'ad_fqdn': {'key': 'adFqdn', 'type': 'str'}, + 'dns_fqdn': {'key': 'dnsFqdn', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineProperties, self).__init__(**kwargs) + self.location_data = kwargs.get('location_data', None) + self.os_profile = None + self.provisioning_state = None + self.status = None + self.last_status_change = None + self.error_details = None + self.agent_version = None + self.vm_id = kwargs.get('vm_id', None) + self.display_name = None + self.machine_fqdn = None + self.client_public_key = kwargs.get('client_public_key', None) + self.os_name = None + self.os_version = None + self.vm_uuid = None + self.extensions = None + self.os_sku = None + self.domain_name = None + self.ad_fqdn = None + self.dns_fqdn = None + + +class MachinePropertiesautogenerated(MachineProperties): + """Hybrid Compute Machine properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + :ivar os_profile: Specifies the operating system settings for the hybrid machine. + :vartype os_profile: ~connected_machine.models.OsProfile + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar status: The status of the hybrid machine agent. Possible values include: "Connected", + "Disconnected", "Error". + :vartype status: str or ~connected_machine.models.StatusTypes + :ivar last_status_change: The time of the last status change. + :vartype last_status_change: ~datetime.datetime + :ivar error_details: Details about the error state. + :vartype error_details: list[~connected_machine.models.ErrorDetail] + :ivar agent_version: The hybrid machine agent full version. + :vartype agent_version: str + :param vm_id: Specifies the hybrid machine unique ID. + :type vm_id: str + :ivar display_name: Specifies the hybrid machine display name. + :vartype display_name: str + :ivar machine_fqdn: Specifies the hybrid machine FQDN. + :vartype machine_fqdn: str + :param client_public_key: Public Key that the client provides to be used during initial + resource onboarding. + :type client_public_key: str + :ivar os_name: The Operating System running on the hybrid machine. + :vartype os_name: str + :ivar os_version: The version of Operating System running on the hybrid machine. + :vartype os_version: str + :ivar vm_uuid: Specifies the Arc Machine's unique SMBIOS ID. + :vartype vm_uuid: str + :ivar extensions: Machine Extensions information. + :vartype extensions: list[~connected_machine.models.MachineExtensionInstanceView] + :ivar os_sku: Specifies the Operating System product SKU. + :vartype os_sku: str + :ivar domain_name: Specifies the Windows domain name. + :vartype domain_name: str + :ivar ad_fqdn: Specifies the AD fully qualified display name. + :vartype ad_fqdn: str + :ivar dns_fqdn: Specifies the DNS fully qualified display name. + :vartype dns_fqdn: str + """ + + _validation = { + 'os_profile': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'last_status_change': {'readonly': True}, + 'error_details': {'readonly': True}, + 'agent_version': {'readonly': True}, + 'display_name': {'readonly': True}, + 'machine_fqdn': {'readonly': True}, + 'os_name': {'readonly': True}, + 'os_version': {'readonly': True}, + 'vm_uuid': {'readonly': True}, + 'extensions': {'readonly': True}, + 'os_sku': {'readonly': True}, + 'domain_name': {'readonly': True}, + 'ad_fqdn': {'readonly': True}, + 'dns_fqdn': {'readonly': True}, + } + + _attribute_map = { + 'location_data': {'key': 'locationData', 'type': 'LocationData'}, + 'os_profile': {'key': 'osProfile', 'type': 'OsProfile'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'last_status_change': {'key': 'lastStatusChange', 'type': 'iso-8601'}, + 'error_details': {'key': 'errorDetails', 'type': '[ErrorDetail]'}, + 'agent_version': {'key': 'agentVersion', 'type': 'str'}, + 'vm_id': {'key': 'vmId', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'machine_fqdn': {'key': 'machineFqdn', 'type': 'str'}, + 'client_public_key': {'key': 'clientPublicKey', 'type': 'str'}, + 'os_name': {'key': 'osName', 'type': 'str'}, + 'os_version': {'key': 'osVersion', 'type': 'str'}, + 'vm_uuid': {'key': 'vmUuid', 'type': 'str'}, + 'extensions': {'key': 'extensions', 'type': '[MachineExtensionInstanceView]'}, + 'os_sku': {'key': 'osSku', 'type': 'str'}, + 'domain_name': {'key': 'domainName', 'type': 'str'}, + 'ad_fqdn': {'key': 'adFqdn', 'type': 'str'}, + 'dns_fqdn': {'key': 'dnsFqdn', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MachinePropertiesautogenerated, self).__init__(**kwargs) + + +class OsProfile(msrest.serialization.Model): + """Specifies the operating system settings for the hybrid machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar computer_name: Specifies the host OS name of the hybrid machine. + :vartype computer_name: str + """ + + _validation = { + 'computer_name': {'readonly': True}, + } + + _attribute_map = { + 'computer_name': {'key': 'computerName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OsProfile, self).__init__(**kwargs) + self.computer_name = None + + +class MachinePropertiesOsProfile(OsProfile): + """Specifies the operating system settings for the hybrid machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar computer_name: Specifies the host OS name of the hybrid machine. + :vartype computer_name: str + """ + + _validation = { + 'computer_name': {'readonly': True}, + } + + _attribute_map = { + 'computer_name': {'key': 'computerName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MachinePropertiesOsProfile, self).__init__(**kwargs) + + +class MachineUpdate(UpdateResource): + """Describes a hybrid machine Update. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + :param type: The identity type. + :type type: str + :ivar principal_id: The identity's principal id. + :vartype principal_id: str + :ivar tenant_id: The identity's tenant id. + :vartype tenant_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location_data': {'key': 'properties.locationData', 'type': 'LocationData'}, + 'type': {'key': 'identity.type', 'type': 'str'}, + 'principal_id': {'key': 'identity.principalId', 'type': 'str'}, + 'tenant_id': {'key': 'identity.tenantId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineUpdate, self).__init__(**kwargs) + self.location_data = kwargs.get('location_data', None) + self.type = kwargs.get('type', None) + self.principal_id = None + self.tenant_id = None + + +class MachineUpdateIdentity(Identity): + """Hybrid Compute Machine Managed Identity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param type: The identity type. + :type type: str + :ivar principal_id: The identity's principal id. + :vartype principal_id: str + :ivar tenant_id: The identity's tenant id. + :vartype tenant_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineUpdateIdentity, self).__init__(**kwargs) + + +class MachineUpdateProperties(msrest.serialization.Model): + """Describes the ARM updatable properties of a hybrid machine. + + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + """ + + _attribute_map = { + 'location_data': {'key': 'locationData', 'type': 'LocationData'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineUpdateProperties, self).__init__(**kwargs) + self.location_data = kwargs.get('location_data', None) + + +class MachineUpdatePropertiesautogenerated(MachineUpdateProperties): + """Hybrid Compute Machine properties. + + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + """ + + _attribute_map = { + 'location_data': {'key': 'locationData', 'type': 'LocationData'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineUpdatePropertiesautogenerated, self).__init__(**kwargs) + + +class OperationListResult(msrest.serialization.Model): + """The List Compute Operation operation response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: The list of compute operations. + :vartype value: list[~connected_machine.models.OperationValue] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[OperationValue]'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationListResult, self).__init__(**kwargs) + self.value = None + + +class OperationValue(msrest.serialization.Model): + """Describes the properties of a Compute Operation value. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar origin: The origin of the compute operation. + :vartype origin: str + :ivar name: The name of the compute operation. + :vartype name: str + :ivar operation: The display name of the compute operation. + :vartype operation: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar description: The description of the operation. + :vartype description: str + :ivar provider: The resource provider for the operation. + :vartype provider: str + """ + + _validation = { + 'origin': {'readonly': True}, + 'name': {'readonly': True}, + 'operation': {'readonly': True}, + 'resource': {'readonly': True}, + 'description': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'origin': {'key': 'origin', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'operation': {'key': 'display.operation', 'type': 'str'}, + 'resource': {'key': 'display.resource', 'type': 'str'}, + 'description': {'key': 'display.description', 'type': 'str'}, + 'provider': {'key': 'display.provider', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationValue, self).__init__(**kwargs) + self.origin = None + self.name = None + self.operation = None + self.resource = None + self.description = None + self.provider = None + + +class OperationValueDisplay(msrest.serialization.Model): + """Describes the properties of a Hybrid Compute Operation Value Display. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar operation: The display name of the compute operation. + :vartype operation: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar description: The description of the operation. + :vartype description: str + :ivar provider: The resource provider for the operation. + :vartype provider: str + """ + + _validation = { + 'operation': {'readonly': True}, + 'resource': {'readonly': True}, + 'description': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'operation': {'key': 'operation', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'provider': {'key': 'provider', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationValueDisplay, self).__init__(**kwargs) + self.operation = None + self.resource = None + self.description = None + self.provider = None + + +class OperationValueDisplayautogenerated(OperationValueDisplay): + """Display properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar operation: The display name of the compute operation. + :vartype operation: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar description: The description of the operation. + :vartype description: str + :ivar provider: The resource provider for the operation. + :vartype provider: str + """ + + _validation = { + 'operation': {'readonly': True}, + 'resource': {'readonly': True}, + 'description': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'operation': {'key': 'operation', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'provider': {'key': 'provider', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationValueDisplayautogenerated, self).__init__(**kwargs) diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/_models_py3.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/_models_py3.py new file mode 100644 index 00000000000..8098f04304a --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/models/_models_py3.py @@ -0,0 +1,1604 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Dict, List, Optional + +from azure.core.exceptions import HttpResponseError +import msrest.serialization + + +class ErrorDetail(msrest.serialization.Model): + """Error details. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. The error's code. + :type code: str + :param message: Required. A human readable error message. + :type message: str + :param target: Indicates which property in the request is responsible for the error. + :type target: str + :param details: Additional error details. + :type details: list[~connected_machine.models.ErrorDetail] + """ + + _validation = { + 'code': {'required': True}, + 'message': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ErrorDetail]'}, + } + + def __init__( + self, + *, + code: str, + message: str, + target: Optional[str] = None, + details: Optional[List["ErrorDetail"]] = None, + **kwargs + ): + super(ErrorDetail, self).__init__(**kwargs) + self.code = code + self.message = message + self.target = target + self.details = details + + +class ErrorResponse(msrest.serialization.Model): + """Contains details when the response code indicates an error. + + All required parameters must be populated in order to send to Azure. + + :param error: Required. The error details. + :type error: ~connected_machine.models.ErrorDetail + """ + + _validation = { + 'error': {'required': True}, + } + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorDetail'}, + } + + def __init__( + self, + *, + error: "ErrorDetail", + **kwargs + ): + super(ErrorResponse, self).__init__(**kwargs) + self.error = error + + +class Identity(msrest.serialization.Model): + """Managed Identity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param type: The identity type. + :type type: str + :ivar principal_id: The identity's principal id. + :vartype principal_id: str + :ivar tenant_id: The identity's tenant id. + :vartype tenant_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + } + + def __init__( + self, + *, + type: Optional[str] = None, + **kwargs + ): + super(Identity, self).__init__(**kwargs) + self.type = type + self.principal_id = None + self.tenant_id = None + + +class LocationData(msrest.serialization.Model): + """Metadata pertaining to the geographic location of the resource. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. A canonical name for the geographic or physical location. + :type name: str + :param city: The city or locality where the resource is located. + :type city: str + :param district: The district, state, or province where the resource is located. + :type district: str + :param country_or_region: The country or region where the resource is located. + :type country_or_region: str + """ + + _validation = { + 'name': {'required': True, 'max_length': 256, 'min_length': 0}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'city': {'key': 'city', 'type': 'str'}, + 'district': {'key': 'district', 'type': 'str'}, + 'country_or_region': {'key': 'countryOrRegion', 'type': 'str'}, + } + + def __init__( + self, + *, + name: str, + city: Optional[str] = None, + district: Optional[str] = None, + country_or_region: Optional[str] = None, + **kwargs + ): + super(LocationData, self).__init__(**kwargs) + self.name = name + self.city = city + self.district = district + self.country_or_region = country_or_region + + +class Resource(msrest.serialization.Model): + """Resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class TrackedResource(Resource): + """The resource model definition for a ARM tracked top level resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives. + :type location: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + **kwargs + ): + super(TrackedResource, self).__init__(**kwargs) + self.tags = tags + self.location = location + + +class Machine(TrackedResource): + """Describes a hybrid machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives. + :type location: str + :param identity: Managed Identity. + :type identity: ~connected_machine.models.Identity + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + :ivar os_profile: Specifies the operating system settings for the hybrid machine. + :vartype os_profile: ~connected_machine.models.OsProfile + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar status: The status of the hybrid machine agent. Possible values include: "Connected", + "Disconnected", "Error". + :vartype status: str or ~connected_machine.models.StatusTypes + :ivar last_status_change: The time of the last status change. + :vartype last_status_change: ~datetime.datetime + :ivar error_details: Details about the error state. + :vartype error_details: list[~connected_machine.models.ErrorDetail] + :ivar agent_version: The hybrid machine agent full version. + :vartype agent_version: str + :param vm_id: Specifies the hybrid machine unique ID. + :type vm_id: str + :ivar display_name: Specifies the hybrid machine display name. + :vartype display_name: str + :ivar machine_fqdn: Specifies the hybrid machine FQDN. + :vartype machine_fqdn: str + :param client_public_key: Public Key that the client provides to be used during initial + resource onboarding. + :type client_public_key: str + :ivar os_name: The Operating System running on the hybrid machine. + :vartype os_name: str + :ivar os_version: The version of Operating System running on the hybrid machine. + :vartype os_version: str + :ivar vm_uuid: Specifies the Arc Machine's unique SMBIOS ID. + :vartype vm_uuid: str + :ivar extensions: Machine Extensions information. + :vartype extensions: list[~connected_machine.models.MachineExtensionInstanceView] + :ivar os_sku: Specifies the Operating System product SKU. + :vartype os_sku: str + :ivar domain_name: Specifies the Windows domain name. + :vartype domain_name: str + :ivar ad_fqdn: Specifies the AD fully qualified display name. + :vartype ad_fqdn: str + :ivar dns_fqdn: Specifies the DNS fully qualified display name. + :vartype dns_fqdn: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'os_profile': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'last_status_change': {'readonly': True}, + 'error_details': {'readonly': True}, + 'agent_version': {'readonly': True}, + 'display_name': {'readonly': True}, + 'machine_fqdn': {'readonly': True}, + 'os_name': {'readonly': True}, + 'os_version': {'readonly': True}, + 'vm_uuid': {'readonly': True}, + 'extensions': {'readonly': True}, + 'os_sku': {'readonly': True}, + 'domain_name': {'readonly': True}, + 'ad_fqdn': {'readonly': True}, + 'dns_fqdn': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'identity': {'key': 'identity', 'type': 'Identity'}, + 'location_data': {'key': 'properties.locationData', 'type': 'LocationData'}, + 'os_profile': {'key': 'properties.osProfile', 'type': 'OsProfile'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'last_status_change': {'key': 'properties.lastStatusChange', 'type': 'iso-8601'}, + 'error_details': {'key': 'properties.errorDetails', 'type': '[ErrorDetail]'}, + 'agent_version': {'key': 'properties.agentVersion', 'type': 'str'}, + 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, + 'display_name': {'key': 'properties.displayName', 'type': 'str'}, + 'machine_fqdn': {'key': 'properties.machineFqdn', 'type': 'str'}, + 'client_public_key': {'key': 'properties.clientPublicKey', 'type': 'str'}, + 'os_name': {'key': 'properties.osName', 'type': 'str'}, + 'os_version': {'key': 'properties.osVersion', 'type': 'str'}, + 'vm_uuid': {'key': 'properties.vmUuid', 'type': 'str'}, + 'extensions': {'key': 'properties.extensions', 'type': '[MachineExtensionInstanceView]'}, + 'os_sku': {'key': 'properties.osSku', 'type': 'str'}, + 'domain_name': {'key': 'properties.domainName', 'type': 'str'}, + 'ad_fqdn': {'key': 'properties.adFqdn', 'type': 'str'}, + 'dns_fqdn': {'key': 'properties.dnsFqdn', 'type': 'str'}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + identity: Optional["Identity"] = None, + location_data: Optional["LocationData"] = None, + vm_id: Optional[str] = None, + client_public_key: Optional[str] = None, + **kwargs + ): + super(Machine, self).__init__(tags=tags, location=location, **kwargs) + self.identity = identity + self.location_data = location_data + self.os_profile = None + self.provisioning_state = None + self.status = None + self.last_status_change = None + self.error_details = None + self.agent_version = None + self.vm_id = vm_id + self.display_name = None + self.machine_fqdn = None + self.client_public_key = client_public_key + self.os_name = None + self.os_version = None + self.vm_uuid = None + self.extensions = None + self.os_sku = None + self.domain_name = None + self.ad_fqdn = None + self.dns_fqdn = None + + +class MachineExtension(TrackedResource): + """Describes a Machine Extension. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives. + :type location: str + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type_properties_type: Specifies the type of the extension; an example is + "CustomScriptExtension". + :type type_properties_type: str + :param type_handler_version_properties_type_handler_version: Specifies the version of the + script handler. + :type type_handler_version_properties_type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar name_properties_instance_view_name: The machine extension name. + :vartype name_properties_instance_view_name: str + :ivar type_properties_instance_view_type: Specifies the type of the extension; an example is + "CustomScriptExtension". + :vartype type_properties_instance_view_type: str + :ivar type_handler_version_properties_instance_view_type_handler_version: Specifies the version + of the script handler. + :vartype type_handler_version_properties_instance_view_type_handler_version: str + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'name_properties_instance_view_name': {'readonly': True}, + 'type_properties_instance_view_type': {'readonly': True}, + 'type_handler_version_properties_instance_view_type_handler_version': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'properties.publisher', 'type': 'str'}, + 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, + 'type_handler_version_properties_type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'properties.settings', 'type': 'object'}, + 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'name_properties_instance_view_name': {'key': 'properties.instanceView.name', 'type': 'str'}, + 'type_properties_instance_view_type': {'key': 'properties.instanceView.type', 'type': 'str'}, + 'type_handler_version_properties_instance_view_type_handler_version': {'key': 'properties.instanceView.typeHandlerVersion', 'type': 'str'}, + 'status': {'key': 'properties.instanceView.status', 'type': 'MachineExtensionInstanceViewStatus'}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + force_update_tag: Optional[str] = None, + publisher: Optional[str] = None, + type_properties_type: Optional[str] = None, + type_handler_version_properties_type_handler_version: Optional[str] = None, + auto_upgrade_minor_version: Optional[bool] = None, + settings: Optional[object] = None, + protected_settings: Optional[object] = None, + status: Optional["MachineExtensionInstanceViewStatus"] = None, + **kwargs + ): + super(MachineExtension, self).__init__(tags=tags, location=location, **kwargs) + self.force_update_tag = force_update_tag + self.publisher = publisher + self.type_properties_type = type_properties_type + self.type_handler_version_properties_type_handler_version = type_handler_version_properties_type_handler_version + self.auto_upgrade_minor_version = auto_upgrade_minor_version + self.settings = settings + self.protected_settings = protected_settings + self.provisioning_state = None + self.name_properties_instance_view_name = None + self.type_properties_instance_view_type = None + self.type_handler_version_properties_instance_view_type_handler_version = None + self.status = status + + +class MachineExtensionInstanceView(msrest.serialization.Model): + """Describes the Machine Extension Instance View. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The machine extension name. + :vartype name: str + :ivar type: Specifies the type of the extension; an example is "CustomScriptExtension". + :vartype type: str + :ivar type_handler_version: Specifies the version of the script handler. + :vartype type_handler_version: str + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + """ + + _validation = { + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'type_handler_version': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'MachineExtensionInstanceViewStatus'}, + } + + def __init__( + self, + *, + status: Optional["MachineExtensionInstanceViewStatus"] = None, + **kwargs + ): + super(MachineExtensionInstanceView, self).__init__(**kwargs) + self.name = None + self.type = None + self.type_handler_version = None + self.status = status + + +class MachineExtensionInstanceViewStatus(msrest.serialization.Model): + """Instance view status. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: The status code. + :vartype code: str + :ivar level: The level code. Possible values include: "Info", "Warning", "Error". + :vartype level: str or ~connected_machine.models.StatusLevelTypes + :ivar display_status: The short localizable label for the status. + :vartype display_status: str + :ivar message: The detailed status message, including for alerts and error messages. + :vartype message: str + :ivar time: The time of the status. + :vartype time: ~datetime.datetime + """ + + _validation = { + 'code': {'readonly': True}, + 'level': {'readonly': True}, + 'display_status': {'readonly': True}, + 'message': {'readonly': True}, + 'time': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'level': {'key': 'level', 'type': 'str'}, + 'display_status': {'key': 'displayStatus', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'time': {'key': 'time', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(MachineExtensionInstanceViewStatus, self).__init__(**kwargs) + self.code = None + self.level = None + self.display_status = None + self.message = None + self.time = None + + +class MachineExtensionProperties(msrest.serialization.Model): + """Describes the properties of a Machine Extension. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar name: The machine extension name. + :vartype name: str + :ivar type_instance_view_type: Specifies the type of the extension; an example is + "CustomScriptExtension". + :vartype type_instance_view_type: str + :ivar type_handler_version_instance_view_type_handler_version: Specifies the version of the + script handler. + :vartype type_handler_version_instance_view_type_handler_version: str + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + 'name': {'readonly': True}, + 'type_instance_view_type': {'readonly': True}, + 'type_handler_version_instance_view_type_handler_version': {'readonly': True}, + } + + _attribute_map = { + 'force_update_tag': {'key': 'forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'settings', 'type': 'object'}, + 'protected_settings': {'key': 'protectedSettings', 'type': 'object'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'name': {'key': 'instanceView.name', 'type': 'str'}, + 'type_instance_view_type': {'key': 'instanceView.type', 'type': 'str'}, + 'type_handler_version_instance_view_type_handler_version': {'key': 'instanceView.typeHandlerVersion', 'type': 'str'}, + 'status': {'key': 'instanceView.status', 'type': 'MachineExtensionInstanceViewStatus'}, + } + + def __init__( + self, + *, + force_update_tag: Optional[str] = None, + publisher: Optional[str] = None, + type: Optional[str] = None, + type_handler_version: Optional[str] = None, + auto_upgrade_minor_version: Optional[bool] = None, + settings: Optional[object] = None, + protected_settings: Optional[object] = None, + status: Optional["MachineExtensionInstanceViewStatus"] = None, + **kwargs + ): + super(MachineExtensionProperties, self).__init__(**kwargs) + self.force_update_tag = force_update_tag + self.publisher = publisher + self.type = type + self.type_handler_version = type_handler_version + self.auto_upgrade_minor_version = auto_upgrade_minor_version + self.settings = settings + self.protected_settings = protected_settings + self.provisioning_state = None + self.name = None + self.type_instance_view_type = None + self.type_handler_version_instance_view_type_handler_version = None + self.status = status + + +class MachineExtensionPropertiesautogenerated(MachineExtensionProperties): + """Describes Machine Extension Properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar name: The machine extension name. + :vartype name: str + :ivar type_instance_view_type: Specifies the type of the extension; an example is + "CustomScriptExtension". + :vartype type_instance_view_type: str + :ivar type_handler_version_instance_view_type_handler_version: Specifies the version of the + script handler. + :vartype type_handler_version_instance_view_type_handler_version: str + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + 'name': {'readonly': True}, + 'type_instance_view_type': {'readonly': True}, + 'type_handler_version_instance_view_type_handler_version': {'readonly': True}, + } + + _attribute_map = { + 'force_update_tag': {'key': 'forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'settings', 'type': 'object'}, + 'protected_settings': {'key': 'protectedSettings', 'type': 'object'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'name': {'key': 'instanceView.name', 'type': 'str'}, + 'type_instance_view_type': {'key': 'instanceView.type', 'type': 'str'}, + 'type_handler_version_instance_view_type_handler_version': {'key': 'instanceView.typeHandlerVersion', 'type': 'str'}, + 'status': {'key': 'instanceView.status', 'type': 'MachineExtensionInstanceViewStatus'}, + } + + def __init__( + self, + *, + force_update_tag: Optional[str] = None, + publisher: Optional[str] = None, + type: Optional[str] = None, + type_handler_version: Optional[str] = None, + auto_upgrade_minor_version: Optional[bool] = None, + settings: Optional[object] = None, + protected_settings: Optional[object] = None, + status: Optional["MachineExtensionInstanceViewStatus"] = None, + **kwargs + ): + super(MachineExtensionPropertiesautogenerated, self).__init__(force_update_tag=force_update_tag, publisher=publisher, type=type, type_handler_version=type_handler_version, auto_upgrade_minor_version=auto_upgrade_minor_version, settings=settings, protected_settings=protected_settings, status=status, **kwargs) + + +class MachineExtensionPropertiesInstanceView(MachineExtensionInstanceView): + """The machine extension instance view. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: The machine extension name. + :vartype name: str + :ivar type: Specifies the type of the extension; an example is "CustomScriptExtension". + :vartype type: str + :ivar type_handler_version: Specifies the version of the script handler. + :vartype type_handler_version: str + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + """ + + _validation = { + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'type_handler_version': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'MachineExtensionInstanceViewStatus'}, + } + + def __init__( + self, + *, + status: Optional["MachineExtensionInstanceViewStatus"] = None, + **kwargs + ): + super(MachineExtensionPropertiesInstanceView, self).__init__(status=status, **kwargs) + + +class MachineExtensionsListResult(msrest.serialization.Model): + """Describes the Machine Extensions List Result. + + :param value: The list of extensions. + :type value: list[~connected_machine.models.MachineExtension] + :param next_link: The uri to fetch the next page of machine extensions. Call ListNext() with + this to fetch the next page of extensions. + :type next_link: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[MachineExtension]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: Optional[List["MachineExtension"]] = None, + next_link: Optional[str] = None, + **kwargs + ): + super(MachineExtensionsListResult, self).__init__(**kwargs) + self.value = value + self.next_link = next_link + + +class UpdateResource(msrest.serialization.Model): + """The Update Resource model definition. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__( + self, + *, + tags: Optional[Dict[str, str]] = None, + **kwargs + ): + super(UpdateResource, self).__init__(**kwargs) + self.tags = tags + + +class MachineExtensionUpdate(UpdateResource): + """Describes a Machine Extension Update. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'properties.publisher', 'type': 'str'}, + 'type': {'key': 'properties.type', 'type': 'str'}, + 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'properties.settings', 'type': 'object'}, + 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, + } + + def __init__( + self, + *, + tags: Optional[Dict[str, str]] = None, + force_update_tag: Optional[str] = None, + publisher: Optional[str] = None, + type: Optional[str] = None, + type_handler_version: Optional[str] = None, + auto_upgrade_minor_version: Optional[bool] = None, + settings: Optional[object] = None, + protected_settings: Optional[object] = None, + **kwargs + ): + super(MachineExtensionUpdate, self).__init__(tags=tags, **kwargs) + self.force_update_tag = force_update_tag + self.publisher = publisher + self.type = type + self.type_handler_version = type_handler_version + self.auto_upgrade_minor_version = auto_upgrade_minor_version + self.settings = settings + self.protected_settings = protected_settings + + +class MachineExtensionUpdateProperties(msrest.serialization.Model): + """Describes the properties of a Machine Extension. + + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + """ + + _attribute_map = { + 'force_update_tag': {'key': 'forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'settings', 'type': 'object'}, + 'protected_settings': {'key': 'protectedSettings', 'type': 'object'}, + } + + def __init__( + self, + *, + force_update_tag: Optional[str] = None, + publisher: Optional[str] = None, + type: Optional[str] = None, + type_handler_version: Optional[str] = None, + auto_upgrade_minor_version: Optional[bool] = None, + settings: Optional[object] = None, + protected_settings: Optional[object] = None, + **kwargs + ): + super(MachineExtensionUpdateProperties, self).__init__(**kwargs) + self.force_update_tag = force_update_tag + self.publisher = publisher + self.type = type + self.type_handler_version = type_handler_version + self.auto_upgrade_minor_version = auto_upgrade_minor_version + self.settings = settings + self.protected_settings = protected_settings + + +class MachineExtensionUpdatePropertiesautogenerated(MachineExtensionUpdateProperties): + """Describes Machine Extension Update Properties. + + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + """ + + _attribute_map = { + 'force_update_tag': {'key': 'forceUpdateTag', 'type': 'str'}, + 'publisher': {'key': 'publisher', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, + 'auto_upgrade_minor_version': {'key': 'autoUpgradeMinorVersion', 'type': 'bool'}, + 'settings': {'key': 'settings', 'type': 'object'}, + 'protected_settings': {'key': 'protectedSettings', 'type': 'object'}, + } + + def __init__( + self, + *, + force_update_tag: Optional[str] = None, + publisher: Optional[str] = None, + type: Optional[str] = None, + type_handler_version: Optional[str] = None, + auto_upgrade_minor_version: Optional[bool] = None, + settings: Optional[object] = None, + protected_settings: Optional[object] = None, + **kwargs + ): + super(MachineExtensionUpdatePropertiesautogenerated, self).__init__(force_update_tag=force_update_tag, publisher=publisher, type=type, type_handler_version=type_handler_version, auto_upgrade_minor_version=auto_upgrade_minor_version, settings=settings, protected_settings=protected_settings, **kwargs) + + +class MachineIdentity(Identity): + """MachineIdentity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param type: The identity type. + :type type: str + :ivar principal_id: The identity's principal id. + :vartype principal_id: str + :ivar tenant_id: The identity's tenant id. + :vartype tenant_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + } + + def __init__( + self, + *, + type: Optional[str] = None, + **kwargs + ): + super(MachineIdentity, self).__init__(type=type, **kwargs) + + +class MachineListResult(msrest.serialization.Model): + """The List hybrid machine operation response. + + All required parameters must be populated in order to send to Azure. + + :param value: Required. The list of hybrid machines. + :type value: list[~connected_machine.models.Machine] + :param next_link: The URI to fetch the next page of Machines. Call ListNext() with this URI to + fetch the next page of hybrid machines. + :type next_link: str + """ + + _validation = { + 'value': {'required': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Machine]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: List["Machine"], + next_link: Optional[str] = None, + **kwargs + ): + super(MachineListResult, self).__init__(**kwargs) + self.value = value + self.next_link = next_link + + +class MachineProperties(msrest.serialization.Model): + """Describes the properties of a hybrid machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + :ivar os_profile: Specifies the operating system settings for the hybrid machine. + :vartype os_profile: ~connected_machine.models.OsProfile + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar status: The status of the hybrid machine agent. Possible values include: "Connected", + "Disconnected", "Error". + :vartype status: str or ~connected_machine.models.StatusTypes + :ivar last_status_change: The time of the last status change. + :vartype last_status_change: ~datetime.datetime + :ivar error_details: Details about the error state. + :vartype error_details: list[~connected_machine.models.ErrorDetail] + :ivar agent_version: The hybrid machine agent full version. + :vartype agent_version: str + :param vm_id: Specifies the hybrid machine unique ID. + :type vm_id: str + :ivar display_name: Specifies the hybrid machine display name. + :vartype display_name: str + :ivar machine_fqdn: Specifies the hybrid machine FQDN. + :vartype machine_fqdn: str + :param client_public_key: Public Key that the client provides to be used during initial + resource onboarding. + :type client_public_key: str + :ivar os_name: The Operating System running on the hybrid machine. + :vartype os_name: str + :ivar os_version: The version of Operating System running on the hybrid machine. + :vartype os_version: str + :ivar vm_uuid: Specifies the Arc Machine's unique SMBIOS ID. + :vartype vm_uuid: str + :ivar extensions: Machine Extensions information. + :vartype extensions: list[~connected_machine.models.MachineExtensionInstanceView] + :ivar os_sku: Specifies the Operating System product SKU. + :vartype os_sku: str + :ivar domain_name: Specifies the Windows domain name. + :vartype domain_name: str + :ivar ad_fqdn: Specifies the AD fully qualified display name. + :vartype ad_fqdn: str + :ivar dns_fqdn: Specifies the DNS fully qualified display name. + :vartype dns_fqdn: str + """ + + _validation = { + 'os_profile': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'last_status_change': {'readonly': True}, + 'error_details': {'readonly': True}, + 'agent_version': {'readonly': True}, + 'display_name': {'readonly': True}, + 'machine_fqdn': {'readonly': True}, + 'os_name': {'readonly': True}, + 'os_version': {'readonly': True}, + 'vm_uuid': {'readonly': True}, + 'extensions': {'readonly': True}, + 'os_sku': {'readonly': True}, + 'domain_name': {'readonly': True}, + 'ad_fqdn': {'readonly': True}, + 'dns_fqdn': {'readonly': True}, + } + + _attribute_map = { + 'location_data': {'key': 'locationData', 'type': 'LocationData'}, + 'os_profile': {'key': 'osProfile', 'type': 'OsProfile'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'last_status_change': {'key': 'lastStatusChange', 'type': 'iso-8601'}, + 'error_details': {'key': 'errorDetails', 'type': '[ErrorDetail]'}, + 'agent_version': {'key': 'agentVersion', 'type': 'str'}, + 'vm_id': {'key': 'vmId', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'machine_fqdn': {'key': 'machineFqdn', 'type': 'str'}, + 'client_public_key': {'key': 'clientPublicKey', 'type': 'str'}, + 'os_name': {'key': 'osName', 'type': 'str'}, + 'os_version': {'key': 'osVersion', 'type': 'str'}, + 'vm_uuid': {'key': 'vmUuid', 'type': 'str'}, + 'extensions': {'key': 'extensions', 'type': '[MachineExtensionInstanceView]'}, + 'os_sku': {'key': 'osSku', 'type': 'str'}, + 'domain_name': {'key': 'domainName', 'type': 'str'}, + 'ad_fqdn': {'key': 'adFqdn', 'type': 'str'}, + 'dns_fqdn': {'key': 'dnsFqdn', 'type': 'str'}, + } + + def __init__( + self, + *, + location_data: Optional["LocationData"] = None, + vm_id: Optional[str] = None, + client_public_key: Optional[str] = None, + **kwargs + ): + super(MachineProperties, self).__init__(**kwargs) + self.location_data = location_data + self.os_profile = None + self.provisioning_state = None + self.status = None + self.last_status_change = None + self.error_details = None + self.agent_version = None + self.vm_id = vm_id + self.display_name = None + self.machine_fqdn = None + self.client_public_key = client_public_key + self.os_name = None + self.os_version = None + self.vm_uuid = None + self.extensions = None + self.os_sku = None + self.domain_name = None + self.ad_fqdn = None + self.dns_fqdn = None + + +class MachinePropertiesautogenerated(MachineProperties): + """Hybrid Compute Machine properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + :ivar os_profile: Specifies the operating system settings for the hybrid machine. + :vartype os_profile: ~connected_machine.models.OsProfile + :ivar provisioning_state: The provisioning state, which only appears in the response. + :vartype provisioning_state: str + :ivar status: The status of the hybrid machine agent. Possible values include: "Connected", + "Disconnected", "Error". + :vartype status: str or ~connected_machine.models.StatusTypes + :ivar last_status_change: The time of the last status change. + :vartype last_status_change: ~datetime.datetime + :ivar error_details: Details about the error state. + :vartype error_details: list[~connected_machine.models.ErrorDetail] + :ivar agent_version: The hybrid machine agent full version. + :vartype agent_version: str + :param vm_id: Specifies the hybrid machine unique ID. + :type vm_id: str + :ivar display_name: Specifies the hybrid machine display name. + :vartype display_name: str + :ivar machine_fqdn: Specifies the hybrid machine FQDN. + :vartype machine_fqdn: str + :param client_public_key: Public Key that the client provides to be used during initial + resource onboarding. + :type client_public_key: str + :ivar os_name: The Operating System running on the hybrid machine. + :vartype os_name: str + :ivar os_version: The version of Operating System running on the hybrid machine. + :vartype os_version: str + :ivar vm_uuid: Specifies the Arc Machine's unique SMBIOS ID. + :vartype vm_uuid: str + :ivar extensions: Machine Extensions information. + :vartype extensions: list[~connected_machine.models.MachineExtensionInstanceView] + :ivar os_sku: Specifies the Operating System product SKU. + :vartype os_sku: str + :ivar domain_name: Specifies the Windows domain name. + :vartype domain_name: str + :ivar ad_fqdn: Specifies the AD fully qualified display name. + :vartype ad_fqdn: str + :ivar dns_fqdn: Specifies the DNS fully qualified display name. + :vartype dns_fqdn: str + """ + + _validation = { + 'os_profile': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'last_status_change': {'readonly': True}, + 'error_details': {'readonly': True}, + 'agent_version': {'readonly': True}, + 'display_name': {'readonly': True}, + 'machine_fqdn': {'readonly': True}, + 'os_name': {'readonly': True}, + 'os_version': {'readonly': True}, + 'vm_uuid': {'readonly': True}, + 'extensions': {'readonly': True}, + 'os_sku': {'readonly': True}, + 'domain_name': {'readonly': True}, + 'ad_fqdn': {'readonly': True}, + 'dns_fqdn': {'readonly': True}, + } + + _attribute_map = { + 'location_data': {'key': 'locationData', 'type': 'LocationData'}, + 'os_profile': {'key': 'osProfile', 'type': 'OsProfile'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'last_status_change': {'key': 'lastStatusChange', 'type': 'iso-8601'}, + 'error_details': {'key': 'errorDetails', 'type': '[ErrorDetail]'}, + 'agent_version': {'key': 'agentVersion', 'type': 'str'}, + 'vm_id': {'key': 'vmId', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'machine_fqdn': {'key': 'machineFqdn', 'type': 'str'}, + 'client_public_key': {'key': 'clientPublicKey', 'type': 'str'}, + 'os_name': {'key': 'osName', 'type': 'str'}, + 'os_version': {'key': 'osVersion', 'type': 'str'}, + 'vm_uuid': {'key': 'vmUuid', 'type': 'str'}, + 'extensions': {'key': 'extensions', 'type': '[MachineExtensionInstanceView]'}, + 'os_sku': {'key': 'osSku', 'type': 'str'}, + 'domain_name': {'key': 'domainName', 'type': 'str'}, + 'ad_fqdn': {'key': 'adFqdn', 'type': 'str'}, + 'dns_fqdn': {'key': 'dnsFqdn', 'type': 'str'}, + } + + def __init__( + self, + *, + location_data: Optional["LocationData"] = None, + vm_id: Optional[str] = None, + client_public_key: Optional[str] = None, + **kwargs + ): + super(MachinePropertiesautogenerated, self).__init__(location_data=location_data, vm_id=vm_id, client_public_key=client_public_key, **kwargs) + + +class OsProfile(msrest.serialization.Model): + """Specifies the operating system settings for the hybrid machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar computer_name: Specifies the host OS name of the hybrid machine. + :vartype computer_name: str + """ + + _validation = { + 'computer_name': {'readonly': True}, + } + + _attribute_map = { + 'computer_name': {'key': 'computerName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OsProfile, self).__init__(**kwargs) + self.computer_name = None + + +class MachinePropertiesOsProfile(OsProfile): + """Specifies the operating system settings for the hybrid machine. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar computer_name: Specifies the host OS name of the hybrid machine. + :vartype computer_name: str + """ + + _validation = { + 'computer_name': {'readonly': True}, + } + + _attribute_map = { + 'computer_name': {'key': 'computerName', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MachinePropertiesOsProfile, self).__init__(**kwargs) + + +class MachineUpdate(UpdateResource): + """Describes a hybrid machine Update. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + :param type: The identity type. + :type type: str + :ivar principal_id: The identity's principal id. + :vartype principal_id: str + :ivar tenant_id: The identity's tenant id. + :vartype tenant_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location_data': {'key': 'properties.locationData', 'type': 'LocationData'}, + 'type': {'key': 'identity.type', 'type': 'str'}, + 'principal_id': {'key': 'identity.principalId', 'type': 'str'}, + 'tenant_id': {'key': 'identity.tenantId', 'type': 'str'}, + } + + def __init__( + self, + *, + tags: Optional[Dict[str, str]] = None, + location_data: Optional["LocationData"] = None, + type: Optional[str] = None, + **kwargs + ): + super(MachineUpdate, self).__init__(tags=tags, **kwargs) + self.location_data = location_data + self.type = type + self.principal_id = None + self.tenant_id = None + + +class MachineUpdateIdentity(Identity): + """Hybrid Compute Machine Managed Identity. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param type: The identity type. + :type type: str + :ivar principal_id: The identity's principal id. + :vartype principal_id: str + :ivar tenant_id: The identity's tenant id. + :vartype tenant_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + } + + def __init__( + self, + *, + type: Optional[str] = None, + **kwargs + ): + super(MachineUpdateIdentity, self).__init__(type=type, **kwargs) + + +class MachineUpdateProperties(msrest.serialization.Model): + """Describes the ARM updatable properties of a hybrid machine. + + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + """ + + _attribute_map = { + 'location_data': {'key': 'locationData', 'type': 'LocationData'}, + } + + def __init__( + self, + *, + location_data: Optional["LocationData"] = None, + **kwargs + ): + super(MachineUpdateProperties, self).__init__(**kwargs) + self.location_data = location_data + + +class MachineUpdatePropertiesautogenerated(MachineUpdateProperties): + """Hybrid Compute Machine properties. + + :param location_data: Metadata pertaining to the geographic location of the resource. + :type location_data: ~connected_machine.models.LocationData + """ + + _attribute_map = { + 'location_data': {'key': 'locationData', 'type': 'LocationData'}, + } + + def __init__( + self, + *, + location_data: Optional["LocationData"] = None, + **kwargs + ): + super(MachineUpdatePropertiesautogenerated, self).__init__(location_data=location_data, **kwargs) + + +class OperationListResult(msrest.serialization.Model): + """The List Compute Operation operation response. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar value: The list of compute operations. + :vartype value: list[~connected_machine.models.OperationValue] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[OperationValue]'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationListResult, self).__init__(**kwargs) + self.value = None + + +class OperationValue(msrest.serialization.Model): + """Describes the properties of a Compute Operation value. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar origin: The origin of the compute operation. + :vartype origin: str + :ivar name: The name of the compute operation. + :vartype name: str + :ivar operation: The display name of the compute operation. + :vartype operation: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar description: The description of the operation. + :vartype description: str + :ivar provider: The resource provider for the operation. + :vartype provider: str + """ + + _validation = { + 'origin': {'readonly': True}, + 'name': {'readonly': True}, + 'operation': {'readonly': True}, + 'resource': {'readonly': True}, + 'description': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'origin': {'key': 'origin', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'operation': {'key': 'display.operation', 'type': 'str'}, + 'resource': {'key': 'display.resource', 'type': 'str'}, + 'description': {'key': 'display.description', 'type': 'str'}, + 'provider': {'key': 'display.provider', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationValue, self).__init__(**kwargs) + self.origin = None + self.name = None + self.operation = None + self.resource = None + self.description = None + self.provider = None + + +class OperationValueDisplay(msrest.serialization.Model): + """Describes the properties of a Hybrid Compute Operation Value Display. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar operation: The display name of the compute operation. + :vartype operation: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar description: The description of the operation. + :vartype description: str + :ivar provider: The resource provider for the operation. + :vartype provider: str + """ + + _validation = { + 'operation': {'readonly': True}, + 'resource': {'readonly': True}, + 'description': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'operation': {'key': 'operation', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'provider': {'key': 'provider', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationValueDisplay, self).__init__(**kwargs) + self.operation = None + self.resource = None + self.description = None + self.provider = None + + +class OperationValueDisplayautogenerated(OperationValueDisplay): + """Display properties. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar operation: The display name of the compute operation. + :vartype operation: str + :ivar resource: The display name of the resource the operation applies to. + :vartype resource: str + :ivar description: The description of the operation. + :vartype description: str + :ivar provider: The resource provider for the operation. + :vartype provider: str + """ + + _validation = { + 'operation': {'readonly': True}, + 'resource': {'readonly': True}, + 'description': {'readonly': True}, + 'provider': {'readonly': True}, + } + + _attribute_map = { + 'operation': {'key': 'operation', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'provider': {'key': 'provider', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationValueDisplayautogenerated, self).__init__(**kwargs) diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/__init__.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/__init__.py new file mode 100644 index 00000000000..7a5d284a13f --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/__init__.py @@ -0,0 +1,17 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._machine_operations import MachineOperations +from ._machine_extension_operations import MachineExtensionOperations +from ._operation_operations import OperationOperations + +__all__ = [ + 'MachineOperations', + 'MachineExtensionOperations', + 'OperationOperations', +] diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/_machine_extension_operations.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/_machine_extension_operations.py new file mode 100644 index 00000000000..06125cec631 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/_machine_extension_operations.py @@ -0,0 +1,635 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.core.polling import LROPoller, NoPolling, PollingMethod +from azure.mgmt.core.exceptions import ARMErrorFormat +from azure.mgmt.core.polling.arm_polling import ARMPolling + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class MachineExtensionOperations(object): + """MachineExtensionOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~connected_machine.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def _create_or_update_initial( + self, + resource_group_name, # type: str + name, # type: str + extension_name, # type: str + location, # type: str + tags=None, # type: Optional[Dict[str, str]] + force_update_tag=None, # type: Optional[str] + publisher=None, # type: Optional[str] + type=None, # type: Optional[str] + type_handler_version=None, # type: Optional[str] + auto_upgrade_minor_version=None, # type: Optional[bool] + settings=None, # type: Optional[object] + protected_settings=None, # type: Optional[object] + status=None, # type: Optional["models.MachineExtensionInstanceViewStatus"] + **kwargs # type: Any + ): + # type: (...) -> Optional["models.MachineExtension"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.MachineExtension"]] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _extension_parameters = models.MachineExtension(tags=tags, location=location, force_update_tag=force_update_tag, publisher=publisher, type_properties_type=type, type_handler_version_properties_type_handler_version=type_handler_version, auto_upgrade_minor_version=auto_upgrade_minor_version, settings=settings, protected_settings=protected_settings, status=status) + api_version = "2020-08-02" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self._create_or_update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_extension_parameters, 'MachineExtension') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('MachineExtension', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + def begin_create_or_update( + self, + resource_group_name, # type: str + name, # type: str + extension_name, # type: str + location, # type: str + tags=None, # type: Optional[Dict[str, str]] + force_update_tag=None, # type: Optional[str] + publisher=None, # type: Optional[str] + type=None, # type: Optional[str] + type_handler_version=None, # type: Optional[str] + auto_upgrade_minor_version=None, # type: Optional[bool] + settings=None, # type: Optional[object] + protected_settings=None, # type: Optional[object] + status=None, # type: Optional["models.MachineExtensionInstanceViewStatus"] + **kwargs # type: Any + ): + # type: (...) -> LROPoller["models.MachineExtension"] + """The operation to create or update the extension. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the machine where the extension should be created or updated. + :type name: str + :param extension_name: The name of the machine extension. + :type extension_name: str + :param location: The geo-location where the resource lives. + :type location: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + :param status: Instance view status. + :type status: ~connected_machine.models.MachineExtensionInstanceViewStatus + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either MachineExtension or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~connected_machine.models.MachineExtension] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineExtension"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._create_or_update_initial( + resource_group_name=resource_group_name, + name=name, + extension_name=extension_name, + location=location, + tags=tags, + force_update_tag=force_update_tag, + publisher=publisher, + type=type, + type_handler_version=type_handler_version, + auto_upgrade_minor_version=auto_upgrade_minor_version, + settings=settings, + protected_settings=protected_settings, + status=status, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('MachineExtension', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + if polling is True: polling_method = ARMPolling(lro_delay, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + def _update_initial( + self, + resource_group_name, # type: str + name, # type: str + extension_name, # type: str + tags=None, # type: Optional[Dict[str, str]] + force_update_tag=None, # type: Optional[str] + publisher=None, # type: Optional[str] + type=None, # type: Optional[str] + type_handler_version=None, # type: Optional[str] + auto_upgrade_minor_version=None, # type: Optional[bool] + settings=None, # type: Optional[object] + protected_settings=None, # type: Optional[object] + **kwargs # type: Any + ): + # type: (...) -> Optional["models.MachineExtension"] + cls = kwargs.pop('cls', None) # type: ClsType[Optional["models.MachineExtension"]] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _extension_parameters = models.MachineExtensionUpdate(tags=tags, force_update_tag=force_update_tag, publisher=publisher, type=type, type_handler_version=type_handler_version, auto_upgrade_minor_version=auto_upgrade_minor_version, settings=settings, protected_settings=protected_settings) + api_version = "2020-08-02" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self._update_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_extension_parameters, 'MachineExtensionUpdate') + body_content_kwargs['content'] = body_content + request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('MachineExtension', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + def begin_update( + self, + resource_group_name, # type: str + name, # type: str + extension_name, # type: str + tags=None, # type: Optional[Dict[str, str]] + force_update_tag=None, # type: Optional[str] + publisher=None, # type: Optional[str] + type=None, # type: Optional[str] + type_handler_version=None, # type: Optional[str] + auto_upgrade_minor_version=None, # type: Optional[bool] + settings=None, # type: Optional[object] + protected_settings=None, # type: Optional[object] + **kwargs # type: Any + ): + # type: (...) -> LROPoller["models.MachineExtension"] + """The operation to update the extension. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the machine where the extension should be created or updated. + :type name: str + :param extension_name: The name of the machine extension. + :type extension_name: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param force_update_tag: How the extension handler should be forced to update even if the + extension configuration has not changed. + :type force_update_tag: str + :param publisher: The name of the extension handler publisher. + :type publisher: str + :param type: Specifies the type of the extension; an example is "CustomScriptExtension". + :type type: str + :param type_handler_version: Specifies the version of the script handler. + :type type_handler_version: str + :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor + version if one is available at deployment time. Once deployed, however, the extension will not + upgrade minor versions unless redeployed, even with this property set to true. + :type auto_upgrade_minor_version: bool + :param settings: Json formatted public settings for the extension. + :type settings: object + :param protected_settings: The extension can contain either protectedSettings or + protectedSettingsFromKeyVault or no protected settings at all. + :type protected_settings: object + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either MachineExtension or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[~connected_machine.models.MachineExtension] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineExtension"] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._update_initial( + resource_group_name=resource_group_name, + name=name, + extension_name=extension_name, + tags=tags, + force_update_tag=force_update_tag, + publisher=publisher, + type=type, + type_handler_version=type_handler_version, + auto_upgrade_minor_version=auto_upgrade_minor_version, + settings=settings, + protected_settings=protected_settings, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + deserialized = self._deserialize('MachineExtension', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + return deserialized + + if polling is True: polling_method = ARMPolling(lro_delay, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + def _delete_initial( + self, + resource_group_name, # type: str + name, # type: str + extension_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + # Construct URL + url = self._delete_initial.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + def begin_delete( + self, + resource_group_name, # type: str + name, # type: str + extension_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> LROPoller[None] + """The operation to delete the extension. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the machine where the extension should be deleted. + :type name: str + :param extension_name: The name of the machine extension. + :type extension_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :keyword str continuation_token: A continuation token to restart a poller from a saved state. + :keyword polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :paramtype polling: bool or ~azure.core.polling.PollingMethod + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + :return: An instance of LROPoller that returns either None or the result of cls(response) + :rtype: ~azure.core.polling.LROPoller[None] + :raises ~azure.core.exceptions.HttpResponseError: + """ + polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] + cls = kwargs.pop('cls', None) # type: ClsType[None] + lro_delay = kwargs.pop( + 'polling_interval', + self._config.polling_interval + ) + cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] + if cont_token is None: + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + name=name, + extension_name=extension_name, + cls=lambda x,y,z: x, + **kwargs + ) + + kwargs.pop('error_map', None) + kwargs.pop('content_type', None) + + def get_long_running_output(pipeline_response): + if cls: + return cls(pipeline_response, None, {}) + + if polling is True: polling_method = ARMPolling(lro_delay, **kwargs) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + if cont_token: + return LROPoller.from_continuation_token( + polling_method=polling_method, + continuation_token=cont_token, + client=self._client, + deserialization_callback=get_long_running_output + ) + else: + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + def get( + self, + resource_group_name, # type: str + name, # type: str + extension_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.MachineExtension" + """The operation to get the extension. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the machine containing the extension. + :type name: str + :param extension_name: The name of the machine extension. + :type extension_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MachineExtension, or the result of cls(response) + :rtype: ~connected_machine.models.MachineExtension + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineExtension"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'extensionName': self._serialize.url("extension_name", extension_name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MachineExtension', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions/{extensionName}'} # type: ignore + + def list( + self, + resource_group_name, # type: str + name, # type: str + expand=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.MachineExtensionsListResult"] + """The operation to get all extensions of a non-Azure machine. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the machine containing the extension. + :type name: str + :param expand: The expand expression to apply on the operation. + :type expand: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either MachineExtensionsListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~connected_machine.models.MachineExtensionsListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineExtensionsListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('MachineExtensionsListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/extensions'} # type: ignore diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/_machine_operations.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/_machine_operations.py new file mode 100644 index 00000000000..eabd3562611 --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/_machine_operations.py @@ -0,0 +1,295 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class MachineOperations(object): + """MachineOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~connected_machine.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def delete( + self, + resource_group_name, # type: str + name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """The operation to remove a hybrid machine identity in Azure. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the hybrid machine. + :type name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}'} # type: ignore + + def get( + self, + resource_group_name, # type: str + name, # type: str + expand=None, # type: Optional[Union[str, "models.InstanceViewTypes"]] + **kwargs # type: Any + ): + # type: (...) -> "models.Machine" + """Retrieves information about the model view or the instance view of a hybrid machine. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param name: The name of the hybrid machine. + :type name: str + :param expand: The expand expression to apply on the operation. + :type expand: str or ~connected_machine.models.InstanceViewTypes + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Machine, or the result of cls(response) + :rtype: ~connected_machine.models.Machine + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.Machine"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'name': self._serialize.url("name", name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Machine', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.MachineListResult"] + """Lists all the hybrid machines in the specified resource group. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either MachineListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~connected_machine.models.MachineListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('MachineListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.ErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines'} # type: ignore + + def list_by_subscription( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.MachineListResult"] + """Lists all the hybrid machines in the specified subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either MachineListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~connected_machine.models.MachineListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MachineListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list_by_subscription.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('MachineListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.ErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.HybridCompute/machines'} # type: ignore diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/_operation_operations.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/_operation_operations.py new file mode 100644 index 00000000000..81080b1c7be --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/operations/_operation_operations.py @@ -0,0 +1,107 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class OperationOperations(object): + """OperationOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~connected_machine.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.OperationListResult"] + """Gets a list of hybrid compute operations. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either OperationListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~connected_machine.models.OperationListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-08-02" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('OperationListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.ErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/providers/Microsoft.HybridCompute/operations'} # type: ignore diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/py.typed b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/py.typed new file mode 100644 index 00000000000..e5aff4f83af --- /dev/null +++ b/src/connectedmachine/azext_connectedmachine/vendored_sdks/connectedmachine/py.typed @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/__init__.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/__init__.py deleted file mode 100644 index 4fd29ce26c7..00000000000 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/__init__.py +++ /dev/null @@ -1,69 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -try: - from ._models_py3 import ErrorDetail - from ._models_py3 import ErrorResponse, ErrorResponseException - from ._models_py3 import Machine - from ._models_py3 import MachineExtension - from ._models_py3 import MachineExtensionInstanceView - from ._models_py3 import MachineExtensionInstanceViewStatus - from ._models_py3 import MachineExtensionUpdate - from ._models_py3 import MachineReconnect - from ._models_py3 import MachineUpdate - from ._models_py3 import OperationValue - from ._models_py3 import OSProfile - from ._models_py3 import Resource - from ._models_py3 import UpdateResource -except (SyntaxError, ImportError): - from ._models import ErrorDetail - from ._models import ErrorResponse, ErrorResponseException - from ._models import Machine - from ._models import MachineExtension - from ._models import MachineExtensionInstanceView - from ._models import MachineExtensionInstanceViewStatus - from ._models import MachineExtensionUpdate - from ._models import MachineReconnect - from ._models import MachineUpdate - from ._models import OperationValue - from ._models import OSProfile - from ._models import Resource - from ._models import UpdateResource -from ._paged_models import MachineExtensionPaged -from ._paged_models import MachinePaged -from ._paged_models import OperationValuePaged -from ._hybrid_compute_management_client_enums import ( - StatusTypes, - StatusLevelTypes, - InstanceViewTypes, -) - -__all__ = [ - 'ErrorDetail', - 'ErrorResponse', 'ErrorResponseException', - 'Machine', - 'MachineExtension', - 'MachineExtensionInstanceView', - 'MachineExtensionInstanceViewStatus', - 'MachineExtensionUpdate', - 'MachineReconnect', - 'MachineUpdate', - 'OperationValue', - 'OSProfile', - 'Resource', - 'UpdateResource', - 'MachinePaged', - 'MachineExtensionPaged', - 'OperationValuePaged', - 'StatusTypes', - 'StatusLevelTypes', - 'InstanceViewTypes', -] diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_models.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_models.py deleted file mode 100644 index 97ecf06f915..00000000000 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_models.py +++ /dev/null @@ -1,630 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model -from msrest.exceptions import HttpOperationError - - -class CloudError(Model): - """CloudError. - """ - - _attribute_map = { - } - - -class ErrorDetail(Model): - """Error details. - - All required parameters must be populated in order to send to Azure. - - :param code: Required. The error's code. - :type code: str - :param message: Required. A human readable error message. - :type message: str - :param target: Indicates which property in the request is responsible for - the error. - :type target: str - :param details: Additional error details. - :type details: list[~azure.mgmt.hybridcompute.models.ErrorDetail] - """ - - _validation = { - 'code': {'required': True}, - 'message': {'required': True}, - } - - _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'target': {'key': 'target', 'type': 'str'}, - 'details': {'key': 'details', 'type': '[ErrorDetail]'}, - } - - def __init__(self, **kwargs): - super(ErrorDetail, self).__init__(**kwargs) - self.code = kwargs.get('code', None) - self.message = kwargs.get('message', None) - self.target = kwargs.get('target', None) - self.details = kwargs.get('details', None) - - -class ErrorResponse(Model): - """Error response. - - Contains details when the response code indicates an error. - - All required parameters must be populated in order to send to Azure. - - :param error: Required. The error details. - :type error: ~azure.mgmt.hybridcompute.models.ErrorDetail - """ - - _validation = { - 'error': {'required': True}, - } - - _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorDetail'}, - } - - def __init__(self, **kwargs): - super(ErrorResponse, self).__init__(**kwargs) - self.error = kwargs.get('error', None) - - -class ErrorResponseException(HttpOperationError): - """Server responsed with exception of type: 'ErrorResponse'. - - :param deserialize: A deserializer - :param response: Server response to be deserialized. - """ - - def __init__(self, deserialize, response, *args): - - super(ErrorResponseException, self).__init__(deserialize, response, 'ErrorResponse', *args) - - -class Resource(Model): - """The Resource model definition. - - Variables are only populated by the server, and will be ignored when - sending a request. - - All required parameters must be populated in order to send to Azure. - - :ivar id: Resource Id - :vartype id: str - :ivar name: Resource name - :vartype name: str - :ivar type: Resource type - :vartype type: str - :param location: Required. Resource location - :type location: str - :param tags: Resource tags - :type tags: dict[str, str] - :param type1: The identity type. - :type type1: str - :ivar principal_id: The identity's principal id. - :vartype principal_id: str - :ivar tenant_id: The identity's tenant id. - :vartype tenant_id: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'type1': {'key': 'identity.type', 'type': 'str'}, - 'principal_id': {'key': 'identity.principalId', 'type': 'str'}, - 'tenant_id': {'key': 'identity.tenantId', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(Resource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.location = kwargs.get('location', None) - self.tags = kwargs.get('tags', None) - self.type1 = kwargs.get('type1', None) - self.principal_id = None - self.tenant_id = None - - -class Machine(Resource): - """Describes a hybrid machine. - - Variables are only populated by the server, and will be ignored when - sending a request. - - All required parameters must be populated in order to send to Azure. - - :ivar id: Resource Id - :vartype id: str - :ivar name: Resource name - :vartype name: str - :ivar type: Resource type - :vartype type: str - :param location: Required. Resource location - :type location: str - :param tags: Resource tags - :type tags: dict[str, str] - :param type1: The identity type. - :type type1: str - :ivar principal_id: The identity's principal id. - :vartype principal_id: str - :ivar tenant_id: The identity's tenant id. - :vartype tenant_id: str - :param os_profile: Specifies the operating system settings for the hybrid - machine. - :type os_profile: ~azure.mgmt.hybridcompute.models.OSProfile - :ivar provisioning_state: The provisioning state, which only appears in - the response. - :vartype provisioning_state: str - :ivar status: The status of the hybrid machine agent. Possible values - include: 'Connected', 'Disconnected', 'Error' - :vartype status: str or ~azure.mgmt.hybridcompute.models.StatusTypes - :ivar last_status_change: The time of the last status change. - :vartype last_status_change: datetime - :ivar error_details: Details about the error state. - :vartype error_details: list[~azure.mgmt.hybridcompute.models.ErrorDetail] - :ivar agent_version: The hybrid machine agent full version. - :vartype agent_version: str - :ivar vm_id: Specifies the hybrid machine unique ID. - :vartype vm_id: str - :ivar display_name: Specifies the hybrid machine display name. - :vartype display_name: str - :ivar machine_fqdn: Specifies the hybrid machine FQDN. - :vartype machine_fqdn: str - :param physical_location: Resource's Physical Location - :type physical_location: str - :param client_public_key: Public Key that the client provides to be used - during initial resource onboarding - :type client_public_key: str - :ivar os_name: The Operating System running on the hybrid machine. - :vartype os_name: str - :ivar os_version: The version of Operating System running on the hybrid - machine. - :vartype os_version: str - :param extensions: Machine Extensions information - :type extensions: - list[~azure.mgmt.hybridcompute.models.MachineExtensionInstanceView] - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - 'status': {'readonly': True}, - 'last_status_change': {'readonly': True}, - 'error_details': {'readonly': True}, - 'agent_version': {'readonly': True}, - 'vm_id': {'readonly': True}, - 'display_name': {'readonly': True}, - 'machine_fqdn': {'readonly': True}, - 'os_name': {'readonly': True}, - 'os_version': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'type1': {'key': 'identity.type', 'type': 'str'}, - 'principal_id': {'key': 'identity.principalId', 'type': 'str'}, - 'tenant_id': {'key': 'identity.tenantId', 'type': 'str'}, - 'os_profile': {'key': 'properties.osProfile', 'type': 'OSProfile'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - 'status': {'key': 'properties.status', 'type': 'StatusTypes'}, - 'last_status_change': {'key': 'properties.lastStatusChange', 'type': 'iso-8601'}, - 'error_details': {'key': 'properties.errorDetails', 'type': '[ErrorDetail]'}, - 'agent_version': {'key': 'properties.agentVersion', 'type': 'str'}, - 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, - 'display_name': {'key': 'properties.displayName', 'type': 'str'}, - 'machine_fqdn': {'key': 'properties.machineFqdn', 'type': 'str'}, - 'physical_location': {'key': 'properties.physicalLocation', 'type': 'str'}, - 'client_public_key': {'key': 'properties.clientPublicKey', 'type': 'str'}, - 'os_name': {'key': 'properties.osName', 'type': 'str'}, - 'os_version': {'key': 'properties.osVersion', 'type': 'str'}, - 'extensions': {'key': 'properties.extensions', 'type': '[MachineExtensionInstanceView]'}, - } - - def __init__(self, **kwargs): - super(Machine, self).__init__(**kwargs) - self.os_profile = kwargs.get('os_profile', None) - self.provisioning_state = None - self.status = None - self.last_status_change = None - self.error_details = None - self.agent_version = None - self.vm_id = None - self.display_name = None - self.machine_fqdn = None - self.physical_location = kwargs.get('physical_location', None) - self.client_public_key = kwargs.get('client_public_key', None) - self.os_name = None - self.os_version = None - self.extensions = kwargs.get('extensions', None) - - -class MachineExtension(Resource): - """Describes a Machine Extension. - - Variables are only populated by the server, and will be ignored when - sending a request. - - All required parameters must be populated in order to send to Azure. - - :ivar id: Resource Id - :vartype id: str - :ivar name: Resource name - :vartype name: str - :ivar type: Resource type - :vartype type: str - :param location: Required. Resource location - :type location: str - :param tags: Resource tags - :type tags: dict[str, str] - :param type1: The identity type. - :type type1: str - :ivar principal_id: The identity's principal id. - :vartype principal_id: str - :ivar tenant_id: The identity's tenant id. - :vartype tenant_id: str - :param force_update_tag: How the extension handler should be forced to - update even if the extension configuration has not changed. - :type force_update_tag: str - :param publisher: The name of the extension handler publisher. - :type publisher: str - :param machine_extension_type: Specifies the type of the extension; an - example is "CustomScriptExtension". - :type machine_extension_type: str - :param type_handler_version: Specifies the version of the script handler. - :type type_handler_version: str - :param auto_upgrade_minor_version: Indicates whether the extension should - use a newer minor version if one is available at deployment time. Once - deployed, however, the extension will not upgrade minor versions unless - redeployed, even with this property set to true. - :type auto_upgrade_minor_version: bool - :param settings: Json formatted public settings for the extension. - :type settings: object - :param protected_settings: The extension can contain either - protectedSettings or protectedSettingsFromKeyVault or no protected - settings at all. - :type protected_settings: object - :ivar provisioning_state: The provisioning state, which only appears in - the response. - :vartype provisioning_state: str - :param instance_view: The machine extension instance view. - :type instance_view: - ~azure.mgmt.hybridcompute.models.MachineExtensionInstanceView - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'type1': {'key': 'identity.type', 'type': 'str'}, - 'principal_id': {'key': 'identity.principalId', 'type': 'str'}, - 'tenant_id': {'key': 'identity.tenantId', 'type': 'str'}, - 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, - 'publisher': {'key': 'properties.publisher', 'type': 'str'}, - 'machine_extension_type': {'key': 'properties.type', 'type': 'str'}, - 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, - 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, - 'settings': {'key': 'properties.settings', 'type': 'object'}, - 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - 'instance_view': {'key': 'properties.instanceView', 'type': 'MachineExtensionInstanceView'}, - } - - def __init__(self, **kwargs): - super(MachineExtension, self).__init__(**kwargs) - self.force_update_tag = kwargs.get('force_update_tag', None) - self.publisher = kwargs.get('publisher', None) - self.machine_extension_type = kwargs.get('machine_extension_type', None) - self.type_handler_version = kwargs.get('type_handler_version', None) - self.auto_upgrade_minor_version = kwargs.get('auto_upgrade_minor_version', None) - self.settings = kwargs.get('settings', None) - self.protected_settings = kwargs.get('protected_settings', None) - self.provisioning_state = None - self.instance_view = kwargs.get('instance_view', None) - - -class MachineExtensionInstanceView(Model): - """Describes the Machine Extension Instance View. - - :param name: The machine extension name. - :type name: str - :param type: Specifies the type of the extension; an example is - "CustomScriptExtension". - :type type: str - :param type_handler_version: Specifies the version of the script handler. - :type type_handler_version: str - :param status: Instance view status. - :type status: - ~azure.mgmt.hybridcompute.models.MachineExtensionInstanceViewStatus - """ - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, - 'status': {'key': 'status', 'type': 'MachineExtensionInstanceViewStatus'}, - } - - def __init__(self, **kwargs): - super(MachineExtensionInstanceView, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.type = kwargs.get('type', None) - self.type_handler_version = kwargs.get('type_handler_version', None) - self.status = kwargs.get('status', None) - - -class MachineExtensionInstanceViewStatus(Model): - """Instance view status. - - :param code: The status code. - :type code: str - :param level: The level code. Possible values include: 'Info', 'Warning', - 'Error' - :type level: str or ~azure.mgmt.hybridcompute.models.StatusLevelTypes - :param display_status: The short localizable label for the status. - :type display_status: str - :param message: The detailed status message, including for alerts and - error messages. - :type message: str - :param time: The time of the status. - :type time: datetime - """ - - _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'level': {'key': 'level', 'type': 'StatusLevelTypes'}, - 'display_status': {'key': 'displayStatus', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'time': {'key': 'time', 'type': 'iso-8601'}, - } - - def __init__(self, **kwargs): - super(MachineExtensionInstanceViewStatus, self).__init__(**kwargs) - self.code = kwargs.get('code', None) - self.level = kwargs.get('level', None) - self.display_status = kwargs.get('display_status', None) - self.message = kwargs.get('message', None) - self.time = kwargs.get('time', None) - - -class UpdateResource(Model): - """The Update Resource model definition. - - :param tags: Resource tags - :type tags: dict[str, str] - """ - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - } - - def __init__(self, **kwargs): - super(UpdateResource, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) - - -class MachineExtensionUpdate(UpdateResource): - """Describes a Machine Extension Update. - - :param tags: Resource tags - :type tags: dict[str, str] - :param force_update_tag: How the extension handler should be forced to - update even if the extension configuration has not changed. - :type force_update_tag: str - :param publisher: The name of the extension handler publisher. - :type publisher: str - :param type: Specifies the type of the extension; an example is - "CustomScriptExtension". - :type type: str - :param type_handler_version: Specifies the version of the script handler. - :type type_handler_version: str - :param auto_upgrade_minor_version: Indicates whether the extension should - use a newer minor version if one is available at deployment time. Once - deployed, however, the extension will not upgrade minor versions unless - redeployed, even with this property set to true. - :type auto_upgrade_minor_version: bool - :param settings: Json formatted public settings for the extension. - :type settings: object - :param protected_settings: The extension can contain either - protectedSettings or protectedSettingsFromKeyVault or no protected - settings at all. - :type protected_settings: object - """ - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, - 'publisher': {'key': 'properties.publisher', 'type': 'str'}, - 'type': {'key': 'properties.type', 'type': 'str'}, - 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, - 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, - 'settings': {'key': 'properties.settings', 'type': 'object'}, - 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, - } - - def __init__(self, **kwargs): - super(MachineExtensionUpdate, self).__init__(**kwargs) - self.force_update_tag = kwargs.get('force_update_tag', None) - self.publisher = kwargs.get('publisher', None) - self.type = kwargs.get('type', None) - self.type_handler_version = kwargs.get('type_handler_version', None) - self.auto_upgrade_minor_version = kwargs.get('auto_upgrade_minor_version', None) - self.settings = kwargs.get('settings', None) - self.protected_settings = kwargs.get('protected_settings', None) - - -class MachineReconnect(Model): - """Describes a hybrid machine reconnect. - - :param vm_id: Specifies the hybrid machine unique ID. - :type vm_id: str - :param client_public_key: Public Key that the client provides to be used - during initial resource onboarding. - :type client_public_key: str - """ - - _attribute_map = { - 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, - 'client_public_key': {'key': 'properties.clientPublicKey', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(MachineReconnect, self).__init__(**kwargs) - self.vm_id = kwargs.get('vm_id', None) - self.client_public_key = kwargs.get('client_public_key', None) - - -class MachineUpdate(UpdateResource): - """Describes a hybrid machine Update. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :param tags: Resource tags - :type tags: dict[str, str] - :param type: The identity type. - :type type: str - :ivar principal_id: The identity's principal id. - :vartype principal_id: str - :ivar tenant_id: The identity's tenant id. - :vartype tenant_id: str - :param physical_location: Resource's Physical Location - :type physical_location: str - """ - - _validation = { - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - } - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - 'type': {'key': 'identity.type', 'type': 'str'}, - 'principal_id': {'key': 'identity.principalId', 'type': 'str'}, - 'tenant_id': {'key': 'identity.tenantId', 'type': 'str'}, - 'physical_location': {'key': 'properties.physicalLocation', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(MachineUpdate, self).__init__(**kwargs) - self.type = kwargs.get('type', None) - self.principal_id = None - self.tenant_id = None - self.physical_location = kwargs.get('physical_location', None) - - -class OperationValue(Model): - """Describes the properties of a Compute Operation value. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar origin: The origin of the compute operation. - :vartype origin: str - :ivar name: The name of the compute operation. - :vartype name: str - :ivar operation: The display name of the compute operation. - :vartype operation: str - :ivar resource: The display name of the resource the operation applies to. - :vartype resource: str - :ivar description: The description of the operation. - :vartype description: str - :ivar provider: The resource provider for the operation. - :vartype provider: str - """ - - _validation = { - 'origin': {'readonly': True}, - 'name': {'readonly': True}, - 'operation': {'readonly': True}, - 'resource': {'readonly': True}, - 'description': {'readonly': True}, - 'provider': {'readonly': True}, - } - - _attribute_map = { - 'origin': {'key': 'origin', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'operation': {'key': 'display.operation', 'type': 'str'}, - 'resource': {'key': 'display.resource', 'type': 'str'}, - 'description': {'key': 'display.description', 'type': 'str'}, - 'provider': {'key': 'display.provider', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(OperationValue, self).__init__(**kwargs) - self.origin = None - self.name = None - self.operation = None - self.resource = None - self.description = None - self.provider = None - - -class OSProfile(Model): - """Specifies the operating system settings for the hybrid machine. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar computer_name: Specifies the host OS name of the hybrid machine. - :vartype computer_name: str - """ - - _validation = { - 'computer_name': {'readonly': True}, - } - - _attribute_map = { - 'computer_name': {'key': 'computerName', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(OSProfile, self).__init__(**kwargs) - self.computer_name = None diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_models_py3.py b/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_models_py3.py deleted file mode 100644 index 7be311eb5df..00000000000 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_models_py3.py +++ /dev/null @@ -1,630 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model -from msrest.exceptions import HttpOperationError - - -class CloudError(Model): - """CloudError. - """ - - _attribute_map = { - } - - -class ErrorDetail(Model): - """Error details. - - All required parameters must be populated in order to send to Azure. - - :param code: Required. The error's code. - :type code: str - :param message: Required. A human readable error message. - :type message: str - :param target: Indicates which property in the request is responsible for - the error. - :type target: str - :param details: Additional error details. - :type details: list[~azure.mgmt.hybridcompute.models.ErrorDetail] - """ - - _validation = { - 'code': {'required': True}, - 'message': {'required': True}, - } - - _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'target': {'key': 'target', 'type': 'str'}, - 'details': {'key': 'details', 'type': '[ErrorDetail]'}, - } - - def __init__(self, *, code: str, message: str, target: str=None, details=None, **kwargs) -> None: - super(ErrorDetail, self).__init__(**kwargs) - self.code = code - self.message = message - self.target = target - self.details = details - - -class ErrorResponse(Model): - """Error response. - - Contains details when the response code indicates an error. - - All required parameters must be populated in order to send to Azure. - - :param error: Required. The error details. - :type error: ~azure.mgmt.hybridcompute.models.ErrorDetail - """ - - _validation = { - 'error': {'required': True}, - } - - _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorDetail'}, - } - - def __init__(self, *, error, **kwargs) -> None: - super(ErrorResponse, self).__init__(**kwargs) - self.error = error - - -class ErrorResponseException(HttpOperationError): - """Server responsed with exception of type: 'ErrorResponse'. - - :param deserialize: A deserializer - :param response: Server response to be deserialized. - """ - - def __init__(self, deserialize, response, *args): - - super(ErrorResponseException, self).__init__(deserialize, response, 'ErrorResponse', *args) - - -class Resource(Model): - """The Resource model definition. - - Variables are only populated by the server, and will be ignored when - sending a request. - - All required parameters must be populated in order to send to Azure. - - :ivar id: Resource Id - :vartype id: str - :ivar name: Resource name - :vartype name: str - :ivar type: Resource type - :vartype type: str - :param location: Required. Resource location - :type location: str - :param tags: Resource tags - :type tags: dict[str, str] - :param type1: The identity type. - :type type1: str - :ivar principal_id: The identity's principal id. - :vartype principal_id: str - :ivar tenant_id: The identity's tenant id. - :vartype tenant_id: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'type1': {'key': 'identity.type', 'type': 'str'}, - 'principal_id': {'key': 'identity.principalId', 'type': 'str'}, - 'tenant_id': {'key': 'identity.tenantId', 'type': 'str'}, - } - - def __init__(self, *, location: str, tags=None, type1: str=None, **kwargs) -> None: - super(Resource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.location = location - self.tags = tags - self.type1 = type1 - self.principal_id = None - self.tenant_id = None - - -class Machine(Resource): - """Describes a hybrid machine. - - Variables are only populated by the server, and will be ignored when - sending a request. - - All required parameters must be populated in order to send to Azure. - - :ivar id: Resource Id - :vartype id: str - :ivar name: Resource name - :vartype name: str - :ivar type: Resource type - :vartype type: str - :param location: Required. Resource location - :type location: str - :param tags: Resource tags - :type tags: dict[str, str] - :param type1: The identity type. - :type type1: str - :ivar principal_id: The identity's principal id. - :vartype principal_id: str - :ivar tenant_id: The identity's tenant id. - :vartype tenant_id: str - :param os_profile: Specifies the operating system settings for the hybrid - machine. - :type os_profile: ~azure.mgmt.hybridcompute.models.OSProfile - :ivar provisioning_state: The provisioning state, which only appears in - the response. - :vartype provisioning_state: str - :ivar status: The status of the hybrid machine agent. Possible values - include: 'Connected', 'Disconnected', 'Error' - :vartype status: str or ~azure.mgmt.hybridcompute.models.StatusTypes - :ivar last_status_change: The time of the last status change. - :vartype last_status_change: datetime - :ivar error_details: Details about the error state. - :vartype error_details: list[~azure.mgmt.hybridcompute.models.ErrorDetail] - :ivar agent_version: The hybrid machine agent full version. - :vartype agent_version: str - :ivar vm_id: Specifies the hybrid machine unique ID. - :vartype vm_id: str - :ivar display_name: Specifies the hybrid machine display name. - :vartype display_name: str - :ivar machine_fqdn: Specifies the hybrid machine FQDN. - :vartype machine_fqdn: str - :param physical_location: Resource's Physical Location - :type physical_location: str - :param client_public_key: Public Key that the client provides to be used - during initial resource onboarding - :type client_public_key: str - :ivar os_name: The Operating System running on the hybrid machine. - :vartype os_name: str - :ivar os_version: The version of Operating System running on the hybrid - machine. - :vartype os_version: str - :param extensions: Machine Extensions information - :type extensions: - list[~azure.mgmt.hybridcompute.models.MachineExtensionInstanceView] - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - 'status': {'readonly': True}, - 'last_status_change': {'readonly': True}, - 'error_details': {'readonly': True}, - 'agent_version': {'readonly': True}, - 'vm_id': {'readonly': True}, - 'display_name': {'readonly': True}, - 'machine_fqdn': {'readonly': True}, - 'os_name': {'readonly': True}, - 'os_version': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'type1': {'key': 'identity.type', 'type': 'str'}, - 'principal_id': {'key': 'identity.principalId', 'type': 'str'}, - 'tenant_id': {'key': 'identity.tenantId', 'type': 'str'}, - 'os_profile': {'key': 'properties.osProfile', 'type': 'OSProfile'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - 'status': {'key': 'properties.status', 'type': 'StatusTypes'}, - 'last_status_change': {'key': 'properties.lastStatusChange', 'type': 'iso-8601'}, - 'error_details': {'key': 'properties.errorDetails', 'type': '[ErrorDetail]'}, - 'agent_version': {'key': 'properties.agentVersion', 'type': 'str'}, - 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, - 'display_name': {'key': 'properties.displayName', 'type': 'str'}, - 'machine_fqdn': {'key': 'properties.machineFqdn', 'type': 'str'}, - 'physical_location': {'key': 'properties.physicalLocation', 'type': 'str'}, - 'client_public_key': {'key': 'properties.clientPublicKey', 'type': 'str'}, - 'os_name': {'key': 'properties.osName', 'type': 'str'}, - 'os_version': {'key': 'properties.osVersion', 'type': 'str'}, - 'extensions': {'key': 'properties.extensions', 'type': '[MachineExtensionInstanceView]'}, - } - - def __init__(self, *, location: str, tags=None, type1: str=None, os_profile=None, physical_location: str=None, client_public_key: str=None, extensions=None, **kwargs) -> None: - super(Machine, self).__init__(location=location, tags=tags, type1=type1, **kwargs) - self.os_profile = os_profile - self.provisioning_state = None - self.status = None - self.last_status_change = None - self.error_details = None - self.agent_version = None - self.vm_id = None - self.display_name = None - self.machine_fqdn = None - self.physical_location = physical_location - self.client_public_key = client_public_key - self.os_name = None - self.os_version = None - self.extensions = extensions - - -class MachineExtension(Resource): - """Describes a Machine Extension. - - Variables are only populated by the server, and will be ignored when - sending a request. - - All required parameters must be populated in order to send to Azure. - - :ivar id: Resource Id - :vartype id: str - :ivar name: Resource name - :vartype name: str - :ivar type: Resource type - :vartype type: str - :param location: Required. Resource location - :type location: str - :param tags: Resource tags - :type tags: dict[str, str] - :param type1: The identity type. - :type type1: str - :ivar principal_id: The identity's principal id. - :vartype principal_id: str - :ivar tenant_id: The identity's tenant id. - :vartype tenant_id: str - :param force_update_tag: How the extension handler should be forced to - update even if the extension configuration has not changed. - :type force_update_tag: str - :param publisher: The name of the extension handler publisher. - :type publisher: str - :param machine_extension_type: Specifies the type of the extension; an - example is "CustomScriptExtension". - :type machine_extension_type: str - :param type_handler_version: Specifies the version of the script handler. - :type type_handler_version: str - :param auto_upgrade_minor_version: Indicates whether the extension should - use a newer minor version if one is available at deployment time. Once - deployed, however, the extension will not upgrade minor versions unless - redeployed, even with this property set to true. - :type auto_upgrade_minor_version: bool - :param settings: Json formatted public settings for the extension. - :type settings: object - :param protected_settings: The extension can contain either - protectedSettings or protectedSettingsFromKeyVault or no protected - settings at all. - :type protected_settings: object - :ivar provisioning_state: The provisioning state, which only appears in - the response. - :vartype provisioning_state: str - :param instance_view: The machine extension instance view. - :type instance_view: - ~azure.mgmt.hybridcompute.models.MachineExtensionInstanceView - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'type1': {'key': 'identity.type', 'type': 'str'}, - 'principal_id': {'key': 'identity.principalId', 'type': 'str'}, - 'tenant_id': {'key': 'identity.tenantId', 'type': 'str'}, - 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, - 'publisher': {'key': 'properties.publisher', 'type': 'str'}, - 'machine_extension_type': {'key': 'properties.type', 'type': 'str'}, - 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, - 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, - 'settings': {'key': 'properties.settings', 'type': 'object'}, - 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, - 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, - 'instance_view': {'key': 'properties.instanceView', 'type': 'MachineExtensionInstanceView'}, - } - - def __init__(self, *, location: str, tags=None, type1: str=None, force_update_tag: str=None, publisher: str=None, machine_extension_type: str=None, type_handler_version: str=None, auto_upgrade_minor_version: bool=None, settings=None, protected_settings=None, instance_view=None, **kwargs) -> None: - super(MachineExtension, self).__init__(location=location, tags=tags, type1=type1, **kwargs) - self.force_update_tag = force_update_tag - self.publisher = publisher - self.machine_extension_type = machine_extension_type - self.type_handler_version = type_handler_version - self.auto_upgrade_minor_version = auto_upgrade_minor_version - self.settings = settings - self.protected_settings = protected_settings - self.provisioning_state = None - self.instance_view = instance_view - - -class MachineExtensionInstanceView(Model): - """Describes the Machine Extension Instance View. - - :param name: The machine extension name. - :type name: str - :param type: Specifies the type of the extension; an example is - "CustomScriptExtension". - :type type: str - :param type_handler_version: Specifies the version of the script handler. - :type type_handler_version: str - :param status: Instance view status. - :type status: - ~azure.mgmt.hybridcompute.models.MachineExtensionInstanceViewStatus - """ - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, - 'status': {'key': 'status', 'type': 'MachineExtensionInstanceViewStatus'}, - } - - def __init__(self, *, name: str=None, type: str=None, type_handler_version: str=None, status=None, **kwargs) -> None: - super(MachineExtensionInstanceView, self).__init__(**kwargs) - self.name = name - self.type = type - self.type_handler_version = type_handler_version - self.status = status - - -class MachineExtensionInstanceViewStatus(Model): - """Instance view status. - - :param code: The status code. - :type code: str - :param level: The level code. Possible values include: 'Info', 'Warning', - 'Error' - :type level: str or ~azure.mgmt.hybridcompute.models.StatusLevelTypes - :param display_status: The short localizable label for the status. - :type display_status: str - :param message: The detailed status message, including for alerts and - error messages. - :type message: str - :param time: The time of the status. - :type time: datetime - """ - - _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'level': {'key': 'level', 'type': 'StatusLevelTypes'}, - 'display_status': {'key': 'displayStatus', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'time': {'key': 'time', 'type': 'iso-8601'}, - } - - def __init__(self, *, code: str=None, level=None, display_status: str=None, message: str=None, time=None, **kwargs) -> None: - super(MachineExtensionInstanceViewStatus, self).__init__(**kwargs) - self.code = code - self.level = level - self.display_status = display_status - self.message = message - self.time = time - - -class UpdateResource(Model): - """The Update Resource model definition. - - :param tags: Resource tags - :type tags: dict[str, str] - """ - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - } - - def __init__(self, *, tags=None, **kwargs) -> None: - super(UpdateResource, self).__init__(**kwargs) - self.tags = tags - - -class MachineExtensionUpdate(UpdateResource): - """Describes a Machine Extension Update. - - :param tags: Resource tags - :type tags: dict[str, str] - :param force_update_tag: How the extension handler should be forced to - update even if the extension configuration has not changed. - :type force_update_tag: str - :param publisher: The name of the extension handler publisher. - :type publisher: str - :param type: Specifies the type of the extension; an example is - "CustomScriptExtension". - :type type: str - :param type_handler_version: Specifies the version of the script handler. - :type type_handler_version: str - :param auto_upgrade_minor_version: Indicates whether the extension should - use a newer minor version if one is available at deployment time. Once - deployed, however, the extension will not upgrade minor versions unless - redeployed, even with this property set to true. - :type auto_upgrade_minor_version: bool - :param settings: Json formatted public settings for the extension. - :type settings: object - :param protected_settings: The extension can contain either - protectedSettings or protectedSettingsFromKeyVault or no protected - settings at all. - :type protected_settings: object - """ - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, - 'publisher': {'key': 'properties.publisher', 'type': 'str'}, - 'type': {'key': 'properties.type', 'type': 'str'}, - 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, - 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, - 'settings': {'key': 'properties.settings', 'type': 'object'}, - 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, - } - - def __init__(self, *, tags=None, force_update_tag: str=None, publisher: str=None, type: str=None, type_handler_version: str=None, auto_upgrade_minor_version: bool=None, settings=None, protected_settings=None, **kwargs) -> None: - super(MachineExtensionUpdate, self).__init__(tags=tags, **kwargs) - self.force_update_tag = force_update_tag - self.publisher = publisher - self.type = type - self.type_handler_version = type_handler_version - self.auto_upgrade_minor_version = auto_upgrade_minor_version - self.settings = settings - self.protected_settings = protected_settings - - -class MachineReconnect(Model): - """Describes a hybrid machine reconnect. - - :param vm_id: Specifies the hybrid machine unique ID. - :type vm_id: str - :param client_public_key: Public Key that the client provides to be used - during initial resource onboarding. - :type client_public_key: str - """ - - _attribute_map = { - 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, - 'client_public_key': {'key': 'properties.clientPublicKey', 'type': 'str'}, - } - - def __init__(self, *, vm_id: str=None, client_public_key: str=None, **kwargs) -> None: - super(MachineReconnect, self).__init__(**kwargs) - self.vm_id = vm_id - self.client_public_key = client_public_key - - -class MachineUpdate(UpdateResource): - """Describes a hybrid machine Update. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :param tags: Resource tags - :type tags: dict[str, str] - :param type: The identity type. - :type type: str - :ivar principal_id: The identity's principal id. - :vartype principal_id: str - :ivar tenant_id: The identity's tenant id. - :vartype tenant_id: str - :param physical_location: Resource's Physical Location - :type physical_location: str - """ - - _validation = { - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - } - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - 'type': {'key': 'identity.type', 'type': 'str'}, - 'principal_id': {'key': 'identity.principalId', 'type': 'str'}, - 'tenant_id': {'key': 'identity.tenantId', 'type': 'str'}, - 'physical_location': {'key': 'properties.physicalLocation', 'type': 'str'}, - } - - def __init__(self, *, tags=None, type: str=None, physical_location: str=None, **kwargs) -> None: - super(MachineUpdate, self).__init__(tags=tags, **kwargs) - self.type = type - self.principal_id = None - self.tenant_id = None - self.physical_location = physical_location - - -class OperationValue(Model): - """Describes the properties of a Compute Operation value. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar origin: The origin of the compute operation. - :vartype origin: str - :ivar name: The name of the compute operation. - :vartype name: str - :ivar operation: The display name of the compute operation. - :vartype operation: str - :ivar resource: The display name of the resource the operation applies to. - :vartype resource: str - :ivar description: The description of the operation. - :vartype description: str - :ivar provider: The resource provider for the operation. - :vartype provider: str - """ - - _validation = { - 'origin': {'readonly': True}, - 'name': {'readonly': True}, - 'operation': {'readonly': True}, - 'resource': {'readonly': True}, - 'description': {'readonly': True}, - 'provider': {'readonly': True}, - } - - _attribute_map = { - 'origin': {'key': 'origin', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'operation': {'key': 'display.operation', 'type': 'str'}, - 'resource': {'key': 'display.resource', 'type': 'str'}, - 'description': {'key': 'display.description', 'type': 'str'}, - 'provider': {'key': 'display.provider', 'type': 'str'}, - } - - def __init__(self, **kwargs) -> None: - super(OperationValue, self).__init__(**kwargs) - self.origin = None - self.name = None - self.operation = None - self.resource = None - self.description = None - self.provider = None - - -class OSProfile(Model): - """Specifies the operating system settings for the hybrid machine. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar computer_name: Specifies the host OS name of the hybrid machine. - :vartype computer_name: str - """ - - _validation = { - 'computer_name': {'readonly': True}, - } - - _attribute_map = { - 'computer_name': {'key': 'computerName', 'type': 'str'}, - } - - def __init__(self, **kwargs) -> None: - super(OSProfile, self).__init__(**kwargs) - self.computer_name = None diff --git a/src/connectedmachine/report.md b/src/connectedmachine/report.md new file mode 100644 index 00000000000..4f007b54f3a --- /dev/null +++ b/src/connectedmachine/report.md @@ -0,0 +1,183 @@ +# Azure CLI Module Creation Report + +### connectedmachine machine delete + +delete a connectedmachine machine. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|connectedmachine machine|Machines| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|delete|Delete| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|The name of the resource group.|resource_group_name|resourceGroupName| +|**--machine-name**|string|The name of the hybrid machine.|machine_name|name| + +### connectedmachine machine list + +list a connectedmachine machine. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|connectedmachine machine|Machines| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|list|ListByResourceGroup| +|list|ListBySubscription| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|The name of the resource group.|resource_group_name|resourceGroupName| + +### connectedmachine machine show + +show a connectedmachine machine. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|connectedmachine machine|Machines| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|show|Get| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|The name of the resource group.|resource_group_name|resourceGroupName| +|**--machine-name**|string|The name of the hybrid machine.|machine_name|name| + +### connectedmachine machine-extension create + +create a connectedmachine machine-extension. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|connectedmachine machine-extension|MachineExtensions| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|create|CreateOrUpdate#Create| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|The name of the resource group.|resource_group_name|resourceGroupName| +|**--machine-name**|string|The name of the machine where the extension should be created or updated.|machine_name|name| +|**--name**|string|The name of the machine extension.|name|extensionName| +|**--location**|string|The geo-location where the resource lives|location|location| +|**--tags**|dictionary|Resource tags.|tags|tags| +|**--force-update-tag**|string|How the extension handler should be forced to update even if the extension configuration has not changed.|force_update_tag|forceUpdateTag| +|**--publisher**|string|The name of the extension handler publisher.|publisher|publisher| +|**--type**|string|Specifies the type of the extension; an example is "CustomScriptExtension".|type|type| +|**--type-handler-version**|string|Specifies the version of the script handler.|type_handler_version|typeHandlerVersion| +|**--auto-upgrade-minor-version**|boolean|Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.|auto_upgrade_minor_version|autoUpgradeMinorVersion| +|**--settings**|any|Json formatted public settings for the extension.|settings|settings| +|**--protected-settings**|any|The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.|protected_settings|protectedSettings| + +### connectedmachine machine-extension delete + +delete a connectedmachine machine-extension. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|connectedmachine machine-extension|MachineExtensions| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|delete|Delete| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|The name of the resource group.|resource_group_name|resourceGroupName| +|**--machine-name**|string|The name of the machine where the extension should be deleted.|machine_name|name| +|**--name**|string|The name of the machine extension.|name|extensionName| + +### connectedmachine machine-extension list + +list a connectedmachine machine-extension. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|connectedmachine machine-extension|MachineExtensions| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|list|List| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|The name of the resource group.|resource_group_name|resourceGroupName| +|**--machine-name**|string|The name of the machine containing the extension.|machine_name|name| +|**--expand**|string|The expand expression to apply on the operation.|expand|$expand| + +### connectedmachine machine-extension show + +show a connectedmachine machine-extension. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|connectedmachine machine-extension|MachineExtensions| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|show|Get| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|The name of the resource group.|resource_group_name|resourceGroupName| +|**--machine-name**|string|The name of the machine containing the extension.|machine_name|name| +|**--name**|string|The name of the machine extension.|name|extensionName| + +### connectedmachine machine-extension update + +update a connectedmachine machine-extension. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|connectedmachine machine-extension|MachineExtensions| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|update|Update| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|The name of the resource group.|resource_group_name|resourceGroupName| +|**--machine-name**|string|The name of the machine where the extension should be created or updated.|machine_name|name| +|**--name**|string|The name of the machine extension.|name|extensionName| +|**--tags**|dictionary|Resource tags|tags|tags| +|**--force-update-tag**|string|How the extension handler should be forced to update even if the extension configuration has not changed.|force_update_tag|forceUpdateTag| +|**--publisher**|string|The name of the extension handler publisher.|publisher|publisher| +|**--type**|string|Specifies the type of the extension; an example is "CustomScriptExtension".|type|type| +|**--type-handler-version**|string|Specifies the version of the script handler.|type_handler_version|typeHandlerVersion| +|**--auto-upgrade-minor-version**|boolean|Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.|auto_upgrade_minor_version|autoUpgradeMinorVersion| +|**--settings**|any|Json formatted public settings for the extension.|settings|settings| +|**--protected-settings**|any|The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.|protected_settings|protectedSettings| diff --git a/src/connectedmachine/setup.cfg b/src/connectedmachine/setup.cfg index 3c6e79cf31d..2fdd96e5d39 100644 --- a/src/connectedmachine/setup.cfg +++ b/src/connectedmachine/setup.cfg @@ -1,2 +1 @@ -[bdist_wheel] -universal=1 +#setup.cfg \ No newline at end of file diff --git a/src/connectedmachine/setup.py b/src/connectedmachine/setup.py index c0607c6157b..e68a723d96c 100644 --- a/src/connectedmachine/setup.py +++ b/src/connectedmachine/setup.py @@ -8,15 +8,13 @@ from codecs import open from setuptools import setup, find_packages -try: - from azure_bdist_wheel import cmdclass -except ImportError: - from distutils import log as logger - logger.warn("Wheel is not available, disabling bdist_wheel hook") -# TODO: Confirm this is the right version number you want and it matches your # HISTORY.rst entry. -VERSION = '0.1.1' +VERSION = '0.2.0' +try: + from azext_connectedmachine.manual.version import VERSION +except ImportError: + pass # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers @@ -25,18 +23,20 @@ 'Intended Audience :: Developers', 'Intended Audience :: System Administrators', 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', 'License :: OSI Approved :: MIT License', ] DEPENDENCIES = [] +try: + from .manual.dependency import DEPENDENCIES +except ImportError: + pass -with open('README.rst', 'r', encoding='utf-8') as f: +with open('README.md', 'r', encoding='utf-8') as f: README = f.read() with open('HISTORY.rst', 'r', encoding='utf-8') as f: HISTORY = f.read() @@ -44,12 +44,10 @@ setup( name='connectedmachine', version=VERSION, - description='Microsoft Azure Command-Line Tools Connectedmachine Extension', - # TODO: Update author and email, if applicable + description='Microsoft Azure Command-Line Tools ConnectedMachine Extension', author='Microsoft Corporation', author_email='azpycli@microsoft.com', - # TODO: consider pointing directly to your source code instead of the generic repo - url='https://github.com/Azure/azure-cli-extensions', + url='https://github.com/Azure/azure-cli-extensions/tree/master/src/connectedmachine', long_description=README + '\n\n' + HISTORY, license='MIT', classifiers=CLASSIFIERS, diff --git a/src/databricks/HISTORY.rst b/src/databricks/HISTORY.rst index 86f2dbc8058..ae153570c6b 100644 --- a/src/databricks/HISTORY.rst +++ b/src/databricks/HISTORY.rst @@ -3,6 +3,15 @@ Release History =============== +0.7.0 ++++++ +* GA databricks extension + +0.6.0 ++++++ +* GA CMK feature +* Make --key-version optional when updating CMK + 0.5.0 +++++ * az databricks workspace create: add --require-infrastructure-encryption to enable double encryption diff --git a/src/databricks/azext_databricks/_params.py b/src/databricks/azext_databricks/_params.py index becefcc0c47..66ec07a9153 100644 --- a/src/databricks/azext_databricks/_params.py +++ b/src/databricks/azext_databricks/_params.py @@ -28,17 +28,17 @@ def load_arguments(self, _): c.argument('custom_public_subnet_name', options_list=['--public-subnet'], arg_group='Custom VNET', help='The name of a Public Subnet within the Virtual Network.') c.argument('custom_private_subnet_name', options_list=['--private-subnet'], arg_group='Custom VNET', help='The name of a Private Subnet within the Virtual Network.') c.argument('sku_name', options_list=['--sku'], arg_type=get_enum_type(['standard', 'premium', 'trial']), help='The SKU tier name.') - c.argument('prepare_encryption', action='store_true', is_preview=True, help='Flag to enable the Managed Identity for managed storage account to prepare for CMK encryption.') - c.argument('require_infrastructure_encryption', action='store_true', is_preview=True, help='Flag to enable the DBFS root file system with secondary layer of encryption with platform managed keys for data at rest.') + c.argument('prepare_encryption', action='store_true', help='Flag to enable the Managed Identity for managed storage account to prepare for CMK encryption.') + c.argument('require_infrastructure_encryption', action='store_true', help='Flag to enable the DBFS root file system with secondary layer of encryption with platform managed keys for data at rest.') with self.argument_context('databricks workspace update') as c: c.argument('workspace_name', options_list=['--name', '-n'], id_part='name', help='The name of the workspace.') c.argument('tags', tags_type) - c.argument('prepare_encryption', action='store_true', is_preview=True, help='Flag to enable the Managed Identity for managed storage account to prepare for CMK encryption.') - c.argument('encryption_key_source', options_list=['--key-source'], arg_group='Encryption', is_preview=True, arg_type=get_enum_type(['Default', 'Microsoft.Keyvault']), validator=validate_encryption_values, help='The encryption key source (provider).') - c.argument('encryption_key_name', options_list=['--key-name'], arg_group='Encryption', is_preview=True, help='The name of KeyVault key.') - c.argument('encryption_key_version', options_list=['--key-version'], arg_group='Encryption', is_preview=True, help='The version of KeyVault key.') - c.argument('encryption_key_vault', options_list=['--key-vault'], arg_group='Encryption', is_preview=True, help='The Uri of KeyVault.') + c.argument('prepare_encryption', action='store_true', help='Flag to enable the Managed Identity for managed storage account to prepare for CMK encryption.') + c.argument('encryption_key_source', options_list=['--key-source'], arg_group='Encryption', arg_type=get_enum_type(['Default', 'Microsoft.Keyvault']), validator=validate_encryption_values, help='The encryption key source (provider).') + c.argument('encryption_key_name', options_list=['--key-name'], arg_group='Encryption', help='The name of KeyVault key.') + c.argument('encryption_key_version', options_list=['--key-version'], arg_group='Encryption', help='The version of KeyVault key. It is optional when updating CMK.') + c.argument('encryption_key_vault', options_list=['--key-vault'], arg_group='Encryption', help='The Uri of KeyVault.') with self.argument_context('databricks workspace delete') as c: c.argument('workspace_name', options_list=['--name', '-n'], id_part='name', help='The name of the workspace.') diff --git a/src/databricks/azext_databricks/_validators.py b/src/databricks/azext_databricks/_validators.py index 39ae0f37cf3..ae747fd8009 100644 --- a/src/databricks/azext_databricks/_validators.py +++ b/src/databricks/azext_databricks/_validators.py @@ -56,7 +56,7 @@ def validate_encryption_values(namespace): if namespace.encryption_key_source: if namespace.encryption_key_source == 'Default' and any(v is not None for v in [namespace.encryption_key_name, namespace.encryption_key_version, namespace.encryption_key_vault]): raise CLIError('--key-name, --key-version, --key-vault should not be provided when --key-source is Default') - if namespace.encryption_key_source == 'Microsoft.Keyvault' and any(v is None for v in [namespace.encryption_key_name, namespace.encryption_key_version, namespace.encryption_key_vault]): - raise CLIError('--key-name, --key-version, --key-vault are required when --key-source is Microsoft.Keyvault') + if namespace.encryption_key_source == 'Microsoft.Keyvault' and any(v is None for v in [namespace.encryption_key_name, namespace.encryption_key_vault]): + raise CLIError('--key-name, --key-vault are required when --key-source is Microsoft.Keyvault') elif any(v is not None for v in [namespace.encryption_key_name, namespace.encryption_key_version, namespace.encryption_key_vault]): raise CLIError('please specify --key-source for encryption') diff --git a/src/databricks/azext_databricks/azext_metadata.json b/src/databricks/azext_databricks/azext_metadata.json index 5236b3b7283..513796a8328 100644 --- a/src/databricks/azext_databricks/azext_metadata.json +++ b/src/databricks/azext_databricks/azext_metadata.json @@ -1,4 +1,3 @@ { - "azext.isPreview": true, "azext.minCliCoreVersion": "2.3.1" } diff --git a/src/databricks/setup.py b/src/databricks/setup.py index 7b6f86502b6..7c2db27c498 100644 --- a/src/databricks/setup.py +++ b/src/databricks/setup.py @@ -16,7 +16,7 @@ # TODO: Confirm this is the right version number you want and it matches your # HISTORY.rst entry. -VERSION = '0.5.0' +VERSION = '0.7.0' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers diff --git a/src/datashare/HISTORY.rst b/src/datashare/HISTORY.rst index 27f152061e8..2f7a7a548bf 100644 --- a/src/datashare/HISTORY.rst +++ b/src/datashare/HISTORY.rst @@ -3,6 +3,11 @@ Release History =============== +0.1.1 ++++++ +* Add examples for creating a BlobFolder dataset + + 0.1.0 ++++++ * Initial release. diff --git a/src/datashare/azext_datashare/manual/_help.py b/src/datashare/azext_datashare/manual/_help.py index 4e1ee8e5414..e8b910eb70a 100644 --- a/src/datashare/azext_datashare/manual/_help.py +++ b/src/datashare/azext_datashare/manual/_help.py @@ -134,6 +134,11 @@ text: |- az datashare dataset create --account-name MyAccount --name MyDataset --resource-group MyResourceGroup --share-name MyShare \ --dataset "{\\"kind\\":\\"Blob\\",\\"properties\\":{\\"containerName\\":\\"C1\\",\\"filePath\\":\\"file21\\",\\"resourceGroup\\": \ +\\"SampleResourceGroup\\",\\"storageAccountName\\":\\"storage2\\",\\"subscriptionId\\":\\"00000000-0000-0000-0000-000000000000\\"}}" + - name: Create a BlobFolder dataset + text: |- + az datashare dataset create --account-name MyAccount --name MyDataset --resource-group MyResourceGroup --share-name MyShare \ +--dataset "{\\"kind\\":\\"BlobFolder\\",\\"properties\\":{\\"containerName\\":\\"C1\\",\\"prefix\\":\\"folder21\\",\\"resourceGroup\\": \ \\"SampleResourceGroup\\",\\"storageAccountName\\":\\"storage2\\",\\"subscriptionId\\":\\"00000000-0000-0000-0000-000000000000\\"}}" - name: Create a KustoCluster dataset text: |- @@ -208,6 +213,11 @@ az datashare consumer dataset-mapping create --account-name MyAccount --name MyDatasetMapping --resource-group MyResourceGroup --share-subscription-name MyShareSubscription \ --mapping "{\\"kind\\":\\"Blob\\",\\"properties\\":{\\"containerName\\":\\"C1\\",\\"dataSetId\\":\\"00000000-0000-0000-0000-000000000000\\",\\"filePath\ \\":\\"file21\\",\\"resourceGroup\\":\\"SampleResourceGroup\\",\\"storageAccountName\\":\\"storage2\\",\\"subscriptionId\\":\\"00000000-0000-0000-0000-000000000000\\"}}" + - name: Create a BlobFolder dataset mapping + text: |- + az datashare consumer dataset-mapping create --account-name MyAccount --name MyDatasetMapping --resource-group MyResourceGroup --share-subscription-name MyShareSubscription \ +--mapping "{\\"kind\\":\\"BlobFolder\\",\\"properties\\":{\\"containerName\\":\\"C2\\",\\"dataSetId\\":\\"00000000-0000-0000-0000-000000000000\\",\\"prefix\ +\\":\\"folder21\\",\\"resourceGroup\\":\\"SampleResourceGroup\\",\\"storageAccountName\\":\\"storage3\\",\\"subscriptionId\\":\\"00000000-0000-0000-0000-000000000000\\"}}" - name: Create a SqlDBTable dataset mapping text: |- az datashare consumer dataset-mapping create --account-name MyAccount --name MyDatasetMapping --resource-group MyResourceGroup --share-subscription-name MyShareSubscription \ diff --git a/src/datashare/azext_datashare/tests/latest/recordings/test_datashare.yaml b/src/datashare/azext_datashare/tests/latest/recordings/test_datashare.yaml index 5896d5f4841..6ee1763964d 100644 --- a/src/datashare/azext_datashare/tests/latest/recordings/test_datashare.yaml +++ b/src/datashare/azext_datashare/tests/latest/recordings/test_datashare.yaml @@ -11,64 +11,104 @@ interactions: Connection: - keep-alive User-Agent: - - python/3.8.2 (Windows-10-10.0.18362-SP0) msrest/0.6.11 msrest_azure/0.6.3 - azure-mgmt-resource/8.0.1 Azure-SDK-For-Python AZURECLI/2.4.0 (MSI) + - python/3.6.8 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/locations?api-version=2019-06-01 - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia","name":"eastasia","displayName":"East - Asia","longitude":"114.188","latitude":"22.267"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia","name":"southeastasia","displayName":"Southeast - Asia","longitude":"103.833","latitude":"1.283"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus","name":"centralus","displayName":"Central - US","longitude":"-93.6208","latitude":"41.5908"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus","name":"eastus","displayName":"East - US","longitude":"-79.8164","latitude":"37.3719"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2","name":"eastus2","displayName":"East - US 2","longitude":"-78.3889","latitude":"36.6681"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus","name":"westus","displayName":"West - US","longitude":"-122.417","latitude":"37.783"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus","name":"northcentralus","displayName":"North - Central US","longitude":"-87.6278","latitude":"41.8819"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus","name":"southcentralus","displayName":"South - Central US","longitude":"-98.5","latitude":"29.4167"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope","name":"northeurope","displayName":"North - Europe","longitude":"-6.2597","latitude":"53.3478"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope","name":"westeurope","displayName":"West - Europe","longitude":"4.9","latitude":"52.3667"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest","name":"japanwest","displayName":"Japan - West","longitude":"135.5022","latitude":"34.6939"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast","name":"japaneast","displayName":"Japan - East","longitude":"139.77","latitude":"35.68"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth","name":"brazilsouth","displayName":"Brazil - South","longitude":"-46.633","latitude":"-23.55"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast","name":"australiaeast","displayName":"Australia - East","longitude":"151.2094","latitude":"-33.86"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast","name":"australiasoutheast","displayName":"Australia - Southeast","longitude":"144.9631","latitude":"-37.8136"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia","name":"southindia","displayName":"South - India","longitude":"80.1636","latitude":"12.9822"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia","name":"centralindia","displayName":"Central - India","longitude":"73.9197","latitude":"18.5822"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westindia","name":"westindia","displayName":"West - India","longitude":"72.868","latitude":"19.088"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral","name":"canadacentral","displayName":"Canada - Central","longitude":"-79.383","latitude":"43.653"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast","name":"canadaeast","displayName":"Canada - East","longitude":"-71.217","latitude":"46.817"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth","name":"uksouth","displayName":"UK - South","longitude":"-0.799","latitude":"50.941"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest","name":"ukwest","displayName":"UK - West","longitude":"-3.084","latitude":"53.427"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus","name":"westcentralus","displayName":"West - Central US","longitude":"-110.234","latitude":"40.890"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2","name":"westus2","displayName":"West - US 2","longitude":"-119.852","latitude":"47.233"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral","name":"koreacentral","displayName":"Korea - Central","longitude":"126.9780","latitude":"37.5665"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth","name":"koreasouth","displayName":"Korea - South","longitude":"129.0756","latitude":"35.1796"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral","name":"francecentral","displayName":"France - Central","longitude":"2.3730","latitude":"46.3772"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth","name":"francesouth","displayName":"France - South","longitude":"2.1972","latitude":"43.8345"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral","name":"australiacentral","displayName":"Australia - Central","longitude":"149.1244","latitude":"-35.3075"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2","name":"australiacentral2","displayName":"Australia - Central 2","longitude":"149.1244","latitude":"-35.3075"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral","name":"uaecentral","displayName":"UAE - Central","longitude":"54.366669","latitude":"24.466667"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth","name":"uaenorth","displayName":"UAE - North","longitude":"55.316666","latitude":"25.266666"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth","name":"southafricanorth","displayName":"South - Africa North","longitude":"28.218370","latitude":"-25.731340"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest","name":"southafricawest","displayName":"South - Africa West","longitude":"18.843266","latitude":"-34.075691"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth","name":"switzerlandnorth","displayName":"Switzerland - North","longitude":"8.564572","latitude":"47.451542"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest","name":"switzerlandwest","displayName":"Switzerland - West","longitude":"6.143158","latitude":"46.204391"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth","name":"germanynorth","displayName":"Germany - North","longitude":"8.806422","latitude":"53.073635"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral","name":"germanywestcentral","displayName":"Germany - West Central","longitude":"8.682127","latitude":"50.110924"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest","name":"norwaywest","displayName":"Norway - West","longitude":"5.733107","latitude":"58.969975"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast","name":"norwayeast","displayName":"Norway - East","longitude":"10.752245","latitude":"59.913868"}]}' - headers: - cache-control: - - no-cache - content-length: - - '7129' + 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/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/uksouth","name":"uksouth","displayName":"UK + South","regionalDisplayName":"(Europe) UK South","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"-0.799","latitude":"50.941","physicalLocation":"London","pairedRegion":[{"name":"ukwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope","name":"westeurope","displayName":"West + Europe","regionalDisplayName":"(Europe) West Europe","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"4.9","latitude":"52.3667","physicalLocation":"Netherlands","pairedRegion":[{"name":"northeurope","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus","name":"centralus","displayName":"Central + US","regionalDisplayName":"(US) Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-93.6208","latitude":"41.5908","physicalLocation":"Iowa","pairedRegion":[{"name":"eastus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus","name":"northcentralus","displayName":"North + Central US","regionalDisplayName":"(US) North Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-87.6278","latitude":"41.8819","physicalLocation":"Illinois","pairedRegion":[{"name":"southcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus","name":"westus","displayName":"West + US","regionalDisplayName":"(US) West US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-122.417","latitude":"37.783","physicalLocation":"California","pairedRegion":[{"name":"eastus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth","name":"southafricanorth","displayName":"South + Africa North","regionalDisplayName":"(Africa) South Africa North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Africa","longitude":"28.218370","latitude":"-25.731340","physicalLocation":"Johannesburg","pairedRegion":[{"name":"southafricawest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia","name":"centralindia","displayName":"Central + India","regionalDisplayName":"(Asia Pacific) Central India","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"73.9197","latitude":"18.5822","physicalLocation":"Pune","pairedRegion":[{"name":"southindia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia","name":"eastasia","displayName":"East + Asia","regionalDisplayName":"(Asia Pacific) East Asia","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"114.188","latitude":"22.267","physicalLocation":"Hong + Kong","pairedRegion":[{"name":"southeastasia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast","name":"japaneast","displayName":"Japan + East","regionalDisplayName":"(Asia Pacific) Japan East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"139.77","latitude":"35.68","physicalLocation":"Tokyo, + Saitama","pairedRegion":[{"name":"japanwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral","name":"koreacentral","displayName":"Korea + Central","regionalDisplayName":"(Asia Pacific) Korea Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"126.9780","latitude":"37.5665","physicalLocation":"Seoul","pairedRegion":[{"name":"koreasouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral","name":"canadacentral","displayName":"Canada + Central","regionalDisplayName":"(Canada) Canada Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Canada","longitude":"-79.383","latitude":"43.653","physicalLocation":"Toronto","pairedRegion":[{"name":"canadaeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral","name":"francecentral","displayName":"France + Central","regionalDisplayName":"(Europe) France Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"2.3730","latitude":"46.3772","physicalLocation":"Paris","pairedRegion":[{"name":"francesouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral","name":"germanywestcentral","displayName":"Germany + West Central","regionalDisplayName":"(Europe) Germany West Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"8.682127","latitude":"50.110924","physicalLocation":"Frankfurt","pairedRegion":[{"name":"germanynorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast","name":"norwayeast","displayName":"Norway + East","regionalDisplayName":"(Europe) Norway East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"10.752245","latitude":"59.913868","physicalLocation":"Norway","pairedRegion":[{"name":"norwaywest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth","name":"switzerlandnorth","displayName":"Switzerland + North","regionalDisplayName":"(Europe) Switzerland North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"8.564572","latitude":"47.451542","physicalLocation":"Zurich","pairedRegion":[{"name":"switzerlandwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth","name":"uaenorth","displayName":"UAE + North","regionalDisplayName":"(Middle East) UAE North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Middle + East","longitude":"55.316666","latitude":"25.266666","physicalLocation":"Dubai","pairedRegion":[{"name":"uaecentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth","name":"brazilsouth","displayName":"Brazil + South","regionalDisplayName":"(South America) Brazil South","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"South + America","longitude":"-46.633","latitude":"-23.55","physicalLocation":"Sao + Paulo State","pairedRegion":[{"name":"southcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralusstage","name":"centralusstage","displayName":"Central + US (Stage)","regionalDisplayName":"(US) Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusstage","name":"eastusstage","displayName":"East + US (Stage)","regionalDisplayName":"(US) East US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2stage","name":"eastus2stage","displayName":"East + US 2 (Stage)","regionalDisplayName":"(US) East US 2 (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralusstage","name":"northcentralusstage","displayName":"North + Central US (Stage)","regionalDisplayName":"(US) North Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralusstage","name":"southcentralusstage","displayName":"South + Central US (Stage)","regionalDisplayName":"(US) South Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westusstage","name":"westusstage","displayName":"West + US (Stage)","regionalDisplayName":"(US) West US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2stage","name":"westus2stage","displayName":"West + US 2 (Stage)","regionalDisplayName":"(US) West US 2 (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asia","name":"asia","displayName":"Asia","regionalDisplayName":"Asia","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asiapacific","name":"asiapacific","displayName":"Asia + Pacific","regionalDisplayName":"Asia Pacific","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australia","name":"australia","displayName":"Australia","regionalDisplayName":"Australia","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazil","name":"brazil","displayName":"Brazil","regionalDisplayName":"Brazil","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canada","name":"canada","displayName":"Canada","regionalDisplayName":"Canada","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/europe","name":"europe","displayName":"Europe","regionalDisplayName":"Europe","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/global","name":"global","displayName":"Global","regionalDisplayName":"Global","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/india","name":"india","displayName":"India","regionalDisplayName":"India","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japan","name":"japan","displayName":"Japan","regionalDisplayName":"Japan","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uk","name":"uk","displayName":"United + Kingdom","regionalDisplayName":"United Kingdom","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/unitedstates","name":"unitedstates","displayName":"United + States","regionalDisplayName":"United States","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasiastage","name":"eastasiastage","displayName":"East + Asia (Stage)","regionalDisplayName":"(Asia Pacific) East Asia (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"Asia + Pacific"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasiastage","name":"southeastasiastage","displayName":"Southeast + Asia (Stage)","regionalDisplayName":"(Asia Pacific) Southeast Asia (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"Asia + Pacific"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap","name":"centraluseuap","displayName":"Central + US EUAP","regionalDisplayName":"(US) Central US EUAP","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-93.6208","latitude":"41.5908","pairedRegion":[{"name":"eastus2euap","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap","name":"eastus2euap","displayName":"East + US 2 EUAP","regionalDisplayName":"(US) East US 2 EUAP","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-78.3889","latitude":"36.6681","pairedRegion":[{"name":"centraluseuap","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus","name":"westcentralus","displayName":"West + Central US","regionalDisplayName":"(US) West Central US","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-110.234","latitude":"40.890","physicalLocation":"Wyoming","pairedRegion":[{"name":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest","name":"southafricawest","displayName":"South + Africa West","regionalDisplayName":"(Africa) South Africa West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Africa","longitude":"18.843266","latitude":"-34.075691","physicalLocation":"Cape + Town","pairedRegion":[{"name":"southafricanorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral","name":"australiacentral","displayName":"Australia + Central","regionalDisplayName":"(Asia Pacific) Australia Central","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"149.1244","latitude":"-35.3075","physicalLocation":"Canberra","pairedRegion":[{"name":"australiacentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2","name":"australiacentral2","displayName":"Australia + Central 2","regionalDisplayName":"(Asia Pacific) Australia Central 2","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"149.1244","latitude":"-35.3075","physicalLocation":"Canberra","pairedRegion":[{"name":"australiacentral2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast","name":"australiasoutheast","displayName":"Australia + Southeast","regionalDisplayName":"(Asia Pacific) Australia Southeast","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"144.9631","latitude":"-37.8136","physicalLocation":"Victoria","pairedRegion":[{"name":"australiaeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest","name":"japanwest","displayName":"Japan + West","regionalDisplayName":"(Asia Pacific) Japan West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"135.5022","latitude":"34.6939","physicalLocation":"Osaka","pairedRegion":[{"name":"japaneast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/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: + - '25098' content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:42:15 GMT + - Wed, 26 Aug 2020 05:31:39 GMT expires: - '-1' pragma: @@ -101,13 +141,13 @@ interactions: ParameterSetName: - --location --tags --name --resource-group User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-04-23T13:42:23.9427652Z","provisioningState":"Creating","userName":"Feng + string: '{"identity":{"type":"SystemAssigned","principalId":"5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-08-26T05:31:47.8342338Z","provisioningState":"Creating","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account","name":"cli_test_account","type":"Microsoft.DataShare/accounts","location":"westus2","tags":{"tag1":"Red","tag2":"White"}}' headers: cache-control: @@ -117,7 +157,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:42:26 GMT + - Wed, 26 Aug 2020 05:31:49 GMT expires: - '-1' location: @@ -131,10 +171,10 @@ interactions: x-content-type-options: - nosniff x-ms-quota: - - '[{"currentUsed":4,"limit":50,"name":{"localizedValue":"Account resource quota","value":"Account - resource quota"},"target":"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_datrywkgqr6mfnic2batum7zhzzekrutyfed7ajmopnqmg7bfkqdq2mavcabi7fdxo/providers/Microsoft.DataShare/accounts/cli_test_account"}]' + - '[{"currentUsed":1,"limit":100,"name":{"localizedValue":"Account resource + quota","value":"Account resource quota"},"target":"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_dat4k437juk3evbo6rjpubtqgmrpjoncob4ah3yozuootwcudid6ayi6kusmc5w44w/providers/Microsoft.DataShare/accounts/cli_test_account"}]' x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1198' status: code: 201 message: Created @@ -152,61 +192,13 @@ interactions: ParameterSetName: - --name --resource-group --created User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account?api-version=2019-11-01 - response: - body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-04-23T13:42:23.9427652Z","provisioningState":"Creating","userName":"Feng - Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account","name":"cli_test_account","type":"Microsoft.DataShare/accounts","location":"westus2","tags":{"tag1":"Red","tag2":"White"}}' - headers: - cache-control: - - no-cache - content-length: - - '619' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 23 Apr 2020 13:42:27 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - 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: - - datashare account wait - Connection: - - keep-alive - ParameterSetName: - - --name --resource-group --created - User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-04-23T13:42:23.9427652Z","provisioningState":"Creating","userName":"Feng + string: '{"identity":{"type":"SystemAssigned","principalId":"5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-08-26T05:31:47.8342338Z","provisioningState":"Creating","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account","name":"cli_test_account","type":"Microsoft.DataShare/accounts","location":"westus2","tags":{"tag1":"Red","tag2":"White"}}' headers: cache-control: @@ -216,7 +208,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:42:58 GMT + - Wed, 26 Aug 2020 05:31:50 GMT expires: - '-1' pragma: @@ -248,13 +240,13 @@ interactions: ParameterSetName: - --name --resource-group --created User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-04-23T13:42:23.9427652Z","provisioningState":"Creating","userName":"Feng + string: '{"identity":{"type":"SystemAssigned","principalId":"5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-08-26T05:31:47.8342338Z","provisioningState":"Creating","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account","name":"cli_test_account","type":"Microsoft.DataShare/accounts","location":"westus2","tags":{"tag1":"Red","tag2":"White"}}' headers: cache-control: @@ -264,7 +256,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:43:29 GMT + - Wed, 26 Aug 2020 05:32:20 GMT expires: - '-1' pragma: @@ -296,13 +288,13 @@ interactions: ParameterSetName: - --name --resource-group --created User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-04-23T13:42:23.9427652Z","provisioningState":"Creating","userName":"Feng + string: '{"identity":{"type":"SystemAssigned","principalId":"5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-08-26T05:31:47.8342338Z","provisioningState":"Creating","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account","name":"cli_test_account","type":"Microsoft.DataShare/accounts","location":"westus2","tags":{"tag1":"Red","tag2":"White"}}' headers: cache-control: @@ -312,7 +304,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:43:59 GMT + - Wed, 26 Aug 2020 05:32:50 GMT expires: - '-1' pragma: @@ -344,13 +336,13 @@ interactions: ParameterSetName: - --name --resource-group --created User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-04-23T13:42:23.9427652Z","provisioningState":"Succeeded","userName":"Feng + string: '{"identity":{"type":"SystemAssigned","principalId":"5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-08-26T05:31:47.8342338Z","provisioningState":"Succeeded","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account","name":"cli_test_account","type":"Microsoft.DataShare/accounts","location":"westus2","tags":{"tag1":"Red","tag2":"White"}}' headers: cache-control: @@ -360,7 +352,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:44:30 GMT + - Wed, 26 Aug 2020 05:33:20 GMT expires: - '-1' pragma: @@ -392,13 +384,13 @@ interactions: ParameterSetName: - -n --resource-group User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-04-23T13:42:23.9427652Z","provisioningState":"Succeeded","userName":"Feng + string: '{"identity":{"type":"SystemAssigned","principalId":"5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-08-26T05:31:47.8342338Z","provisioningState":"Succeeded","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account","name":"cli_test_account","type":"Microsoft.DataShare/accounts","location":"westus2","tags":{"tag1":"Red","tag2":"White"}}' headers: cache-control: @@ -408,7 +400,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:44:32 GMT + - Wed, 26 Aug 2020 05:33:21 GMT expires: - '-1' pragma: @@ -440,13 +432,13 @@ interactions: ParameterSetName: - --ids User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-04-23T13:42:23.9427652Z","provisioningState":"Succeeded","userName":"Feng + string: '{"identity":{"type":"SystemAssigned","principalId":"5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-08-26T05:31:47.8342338Z","provisioningState":"Succeeded","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account","name":"cli_test_account","type":"Microsoft.DataShare/accounts","location":"westus2","tags":{"tag1":"Red","tag2":"White"}}' headers: cache-control: @@ -456,7 +448,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:44:33 GMT + - Wed, 26 Aug 2020 05:33:23 GMT expires: - '-1' pragma: @@ -488,13 +480,13 @@ interactions: ParameterSetName: - --resource-group User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts?api-version=2019-11-01 response: body: - string: '{"value":[{"identity":{"type":"SystemAssigned","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-04-23T13:42:23.9427652Z","provisioningState":"Succeeded","userName":"Feng + string: '{"value":[{"identity":{"type":"SystemAssigned","principalId":"5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-08-26T05:31:47.8342338Z","provisioningState":"Succeeded","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account","name":"cli_test_account","type":"Microsoft.DataShare/accounts","location":"westus2","tags":{"tag1":"Red","tag2":"White"}}]}' headers: cache-control: @@ -504,7 +496,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:44:35 GMT + - Wed, 26 Aug 2020 05:33:23 GMT expires: - '-1' pragma: @@ -540,13 +532,13 @@ interactions: ParameterSetName: - --name --tags --resource-group User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: PATCH uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-04-23T13:42:23.9427652Z","provisioningState":"Succeeded","userName":"Feng + string: '{"identity":{"type":"SystemAssigned","principalId":"5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"},"properties":{"createdAt":"2020-08-26T05:31:47.8342338Z","provisioningState":"Succeeded","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account","name":"cli_test_account","type":"Microsoft.DataShare/accounts","location":"westus2","tags":{"tag1":"Green"}}' headers: cache-control: @@ -556,7 +548,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:44:40 GMT + - Wed, 26 Aug 2020 05:33:29 GMT expires: - '-1' pragma: @@ -595,13 +587,13 @@ interactions: ParameterSetName: - --account-name --resource-group --description --share-kind --terms --name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share?api-version=2019-11-01 response: body: - string: '{"properties":{"description":"share description","terms":"Confidential","shareKind":"CopyBased","provisioningState":"Succeeded","createdAt":"2020-04-23T13:44:43.0008884Z","userName":"Feng + string: '{"properties":{"description":"share description","terms":"Confidential","shareKind":"CopyBased","provisioningState":"Succeeded","createdAt":"2020-08-26T05:33:31.2063969Z","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share","name":"cli_test_share","type":"Microsoft.DataShare/shares"}' headers: cache-control: @@ -611,7 +603,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:44:43 GMT + - Wed, 26 Aug 2020 05:33:30 GMT expires: - '-1' location: @@ -625,8 +617,8 @@ interactions: x-content-type-options: - nosniff x-ms-quota: - - '[{"currentUsed":1,"limit":100,"name":{"localizedValue":"Share resource quota","value":"Share - resource quota"},"target":"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_datrywkgqr6mfnic2batum7zhzzekrutyfed7ajmopnqmg7bfkqdq2mavcabi7fdxo/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share"}]' + - '[{"currentUsed":1,"limit":200,"name":{"localizedValue":"Share resource quota","value":"Share + resource quota"},"target":"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_dat4k437juk3evbo6rjpubtqgmrpjoncob4ah3yozuootwcudid6ayi6kusmc5w44w/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share"}]' x-ms-ratelimit-remaining-subscription-writes: - '1198' status: @@ -646,13 +638,13 @@ interactions: ParameterSetName: - --account-name --resource-group --name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share?api-version=2019-11-01 response: body: - string: '{"properties":{"description":"share description","terms":"Confidential","shareKind":"CopyBased","provisioningState":"Succeeded","createdAt":"2020-04-23T13:44:43.0008884Z","userName":"Feng + string: '{"properties":{"description":"share description","terms":"Confidential","shareKind":"CopyBased","provisioningState":"Succeeded","createdAt":"2020-08-26T05:33:31.2063969Z","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share","name":"cli_test_share","type":"Microsoft.DataShare/shares"}' headers: cache-control: @@ -662,7 +654,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:44:44 GMT + - Wed, 26 Aug 2020 05:33:32 GMT expires: - '-1' pragma: @@ -694,13 +686,13 @@ interactions: ParameterSetName: - --ids User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share?api-version=2019-11-01 response: body: - string: '{"properties":{"description":"share description","terms":"Confidential","shareKind":"CopyBased","provisioningState":"Succeeded","createdAt":"2020-04-23T13:44:43.0008884Z","userName":"Feng + string: '{"properties":{"description":"share description","terms":"Confidential","shareKind":"CopyBased","provisioningState":"Succeeded","createdAt":"2020-08-26T05:33:31.2063969Z","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share","name":"cli_test_share","type":"Microsoft.DataShare/shares"}' headers: cache-control: @@ -710,7 +702,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:44:46 GMT + - Wed, 26 Aug 2020 05:33:33 GMT expires: - '-1' pragma: @@ -742,13 +734,13 @@ interactions: ParameterSetName: - --account-name --resource-group User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares?api-version=2019-11-01 response: body: - string: '{"value":[{"properties":{"description":"share description","terms":"Confidential","shareKind":"CopyBased","provisioningState":"Succeeded","createdAt":"2020-04-23T13:44:43.0008884Z","userName":"Feng + string: '{"value":[{"properties":{"description":"share description","terms":"Confidential","shareKind":"CopyBased","provisioningState":"Succeeded","createdAt":"2020-08-26T05:33:31.2063969Z","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share","name":"cli_test_share","type":"Microsoft.DataShare/shares"}]}' headers: cache-control: @@ -758,7 +750,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:44:48 GMT + - Wed, 26 Aug 2020 05:33:35 GMT expires: - '-1' pragma: @@ -790,24 +782,24 @@ interactions: ParameterSetName: - -n -g User-Agent: - - python/3.8.2 (Windows-10-10.0.18362-SP0) msrest/0.6.11 msrest_azure/0.6.3 - azure-mgmt-storage/9.0.0 Azure-SDK-For-Python AZURECLI/2.4.0 (MSI) + - python/3.6.8 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002?api-version=2019-06-01 response: body: - string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002","name":"clitestdatas000002","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-23T13:41:53.6606746Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-23T13:41:53.6606746Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-04-23T13:41:53.5981225Z","primaryEndpoints":{"blob":"https://clitestdatas000002.blob.core.windows.net/","queue":"https://clitestdatas000002.queue.core.windows.net/","table":"https://clitestdatas000002.table.core.windows.net/","file":"https://clitestdatas000002.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}}' + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002","name":"clitestdatas000002","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T05:31:18.7508737Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T05:31:18.7508737Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-08-26T05:31:18.6884316Z","primaryEndpoints":{"blob":"https://clitestdatas000002.blob.core.windows.net/","queue":"https://clitestdatas000002.queue.core.windows.net/","table":"https://clitestdatas000002.table.core.windows.net/","file":"https://clitestdatas000002.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}}' headers: cache-control: - no-cache content-length: - - '1263' + - '1242' content-type: - application/json date: - - Thu, 23 Apr 2020 13:44:49 GMT + - Wed, 26 Aug 2020 05:33:35 GMT expires: - '-1' pragma: @@ -827,7 +819,7 @@ interactions: message: OK - request: body: '{"properties": {"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1", - "principalId": "b5246a1a-9dff-43b3-bef8-4e1ae69234aa", "principalType": "ServicePrincipal"}}' + "principalId": "5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a", "principalType": "ServicePrincipal"}}' headers: Accept: - application/json @@ -844,15 +836,15 @@ interactions: ParameterSetName: - --role --assignee-object-id --assignee-principal-type --scope User-Agent: - - python/3.8.2 (Windows-10-10.0.18362-SP0) msrest/0.6.11 msrest_azure/0.6.3 - azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.4.0 (MSI) + - python/3.6.8 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002/providers/Microsoft.Authorization/roleAssignments/0276c401-3a81-4eb5-ac21-1d520c24c5e1?api-version=2018-09-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002/providers/Microsoft.Authorization/roleAssignments/7fdac965-f71d-4508-b446-1119cfcfef90?api-version=2018-09-01-preview response: body: - string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1","principalId":"b5246a1a-9dff-43b3-bef8-4e1ae69234aa","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002","createdOn":"2020-04-23T13:44:51.4815862Z","updatedOn":"2020-04-23T13:44:51.4815862Z","createdBy":null,"updatedBy":"31e600e0-d7ce-4e98-a927-19bb30042e44"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002/providers/Microsoft.Authorization/roleAssignments/0276c401-3a81-4eb5-ac21-1d520c24c5e1","type":"Microsoft.Authorization/roleAssignments","name":"0276c401-3a81-4eb5-ac21-1d520c24c5e1"}' + string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1","principalId":"5f6dcd2f-c2d1-4b11-96c6-e04c57155b4a","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002","createdOn":"2020-08-26T05:33:36.6904174Z","updatedOn":"2020-08-26T05:33:36.6904174Z","createdBy":null,"updatedBy":"31e600e0-d7ce-4e98-a927-19bb30042e44"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002/providers/Microsoft.Authorization/roleAssignments/7fdac965-f71d-4508-b446-1119cfcfef90","type":"Microsoft.Authorization/roleAssignments","name":"7fdac965-f71d-4508-b446-1119cfcfef90"}' headers: cache-control: - no-cache @@ -861,19 +853,19 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:44:58 GMT + - Wed, 26 Aug 2020 05:33:44 GMT expires: - '-1' pragma: - no-cache set-cookie: - - x-ms-gateway-slice=Production; path=/; SameSite=None; secure; HttpOnly + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly strict-transport-security: - max-age=31536000; includeSubDomains x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1199' status: code: 201 message: Created @@ -891,25 +883,24 @@ interactions: ParameterSetName: - --account-name --name User-Agent: - - python/3.8.2 (Windows-10-10.0.18362-SP0) msrest/0.6.11 msrest_azure/0.6.3 - azure-mgmt-storage/9.0.0 Azure-SDK-For-Python AZURECLI/2.4.0 (MSI) + - python/3.6.8 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/storageAccounts?api-version=2019-06-01 response: body: - string: '{"value":[{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azure-core-poc/providers/Microsoft.Storage/storageAccounts/azurecorepoc","name":"azurecorepoc","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-26T02:38:58.8233588Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-26T02:38:58.8233588Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-12-26T02:38:58.7452329Z","primaryEndpoints":{"dfs":"https://azurecorepoc.dfs.core.windows.net/","web":"https://azurecorepoc.z13.web.core.windows.net/","blob":"https://azurecorepoc.blob.core.windows.net/","queue":"https://azurecorepoc.queue.core.windows.net/","table":"https://azurecorepoc.table.core.windows.net/","file":"https://azurecorepoc.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://azurecorepoc-secondary.dfs.core.windows.net/","web":"https://azurecorepoc-secondary.z13.web.core.windows.net/","blob":"https://azurecorepoc-secondary.blob.core.windows.net/","queue":"https://azurecorepoc-secondary.queue.core.windows.net/","table":"https://azurecorepoc-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/fytest/providers/Microsoft.Storage/storageAccounts/fystac","name":"fystac","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-08T03:10:13.4426715Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-08T03:10:13.4426715Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-08T03:10:13.3645539Z","primaryEndpoints":{"dfs":"https://fystac.dfs.core.windows.net/","web":"https://fystac.z13.web.core.windows.net/","blob":"https://fystac.blob.core.windows.net/","queue":"https://fystac.queue.core.windows.net/","table":"https://fystac.table.core.windows.net/","file":"https://fystac.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://fystac-secondary.dfs.core.windows.net/","web":"https://fystac-secondary.z13.web.core.windows.net/","blob":"https://fystac-secondary.blob.core.windows.net/","queue":"https://fystac-secondary.queue.core.windows.net/","table":"https://fystac-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/harold/providers/Microsoft.Storage/storageAccounts/harold","name":"harold","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-29T13:11:16.4123336Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-29T13:11:16.4123336Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-29T13:11:16.3342268Z","primaryEndpoints":{"dfs":"https://harold.dfs.core.windows.net/","web":"https://harold.z13.web.core.windows.net/","blob":"https://harold.blob.core.windows.net/","queue":"https://harold.queue.core.windows.net/","table":"https://harold.table.core.windows.net/","file":"https://harold.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://harold-secondary.dfs.core.windows.net/","web":"https://harold-secondary.z13.web.core.windows.net/","blob":"https://harold-secondary.blob.core.windows.net/","queue":"https://harold-secondary.queue.core.windows.net/","table":"https://harold-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Storage/storageAccounts/qianwenadls","name":"qianwenadls","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-01T10:11:06.0357634Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-01T10:11:06.0357634Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-01T10:11:05.9576622Z","primaryEndpoints":{"dfs":"https://qianwenadls.dfs.core.windows.net/","web":"https://qianwenadls.z13.web.core.windows.net/","blob":"https://qianwenadls.blob.core.windows.net/","queue":"https://qianwenadls.queue.core.windows.net/","table":"https://qianwenadls.table.core.windows.net/","file":"https://qianwenadls.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://qianwenadls-secondary.dfs.core.windows.net/","web":"https://qianwenadls-secondary.z13.web.core.windows.net/","blob":"https://qianwenadls-secondary.blob.core.windows.net/","queue":"https://qianwenadls-secondary.queue.core.windows.net/","table":"https://qianwenadls-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Storage/storageAccounts/qianwendev","name":"qianwendev","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Network/virtualNetworks/QIAN/subnets/default","action":"Allow","state":"Succeeded"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Network/virtualNetworks/qianwendev/subnets/default","action":"Allow","state":"Succeeded"}],"ipRules":[{"value":"23.45.1.0/24","action":"Allow"},{"value":"23.45.1.1/24","action":"Allow"}],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-12T03:29:28.0084761Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-12T03:29:28.0084761Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-02-12T03:29:27.9459854Z","primaryEndpoints":{"dfs":"https://qianwendev.dfs.core.windows.net/","web":"https://qianwendev.z13.web.core.windows.net/","blob":"https://qianwendev.blob.core.windows.net/","queue":"https://qianwendev.queue.core.windows.net/","table":"https://qianwendev.table.core.windows.net/","file":"https://qianwendev.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://qianwendev-secondary.dfs.core.windows.net/","web":"https://qianwendev-secondary.z13.web.core.windows.net/","blob":"https://qianwendev-secondary.blob.core.windows.net/","queue":"https://qianwendev-secondary.queue.core.windows.net/","table":"https://qianwendev-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Storage/storageAccounts/qianwenhpctarget","name":"qianwenhpctarget","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T07:09:20.3073299Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T07:09:20.3073299Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-06T07:09:20.2291899Z","primaryEndpoints":{"dfs":"https://qianwenhpctarget.dfs.core.windows.net/","web":"https://qianwenhpctarget.z13.web.core.windows.net/","blob":"https://qianwenhpctarget.blob.core.windows.net/","queue":"https://qianwenhpctarget.queue.core.windows.net/","table":"https://qianwenhpctarget.table.core.windows.net/","file":"https://qianwenhpctarget.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://qianwenhpctarget-secondary.dfs.core.windows.net/","web":"https://qianwenhpctarget-secondary.z13.web.core.windows.net/","blob":"https://qianwenhpctarget-secondary.blob.core.windows.net/","queue":"https://qianwenhpctarget-secondary.queue.core.windows.net/","table":"https://qianwenhpctarget-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/zhoxing","name":"zhoxing","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-15T08:53:45.4310180Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-15T08:53:45.4310180Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-15T08:53:45.3528671Z","primaryEndpoints":{"dfs":"https://zhoxing.dfs.core.windows.net/","web":"https://zhoxing.z13.web.core.windows.net/","blob":"https://zhoxing.blob.core.windows.net/","queue":"https://zhoxing.queue.core.windows.net/","table":"https://zhoxing.table.core.windows.net/","file":"https://zhoxing.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zhoxing-secondary.dfs.core.windows.net/","web":"https://zhoxing-secondary.z13.web.core.windows.net/","blob":"https://zhoxing-secondary.blob.core.windows.net/","queue":"https://zhoxing-secondary.queue.core.windows.net/","table":"https://zhoxing-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jlrg1/providers/Microsoft.Storage/storageAccounts/jlst","name":"jlst","type":"Microsoft.Storage/storageAccounts","location":"eastus2","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-14T12:05:01.5230050Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-14T12:05:01.5230050Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-14T12:05:01.4448881Z","primaryEndpoints":{"dfs":"https://jlst.dfs.core.windows.net/","web":"https://jlst.z20.web.core.windows.net/","blob":"https://jlst.blob.core.windows.net/","queue":"https://jlst.queue.core.windows.net/","table":"https://jlst.table.core.windows.net/","file":"https://jlst.file.core.windows.net/"},"primaryLocation":"eastus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jlrg1/providers/Microsoft.Storage/storageAccounts/tsiext","name":"tsiext","type":"Microsoft.Storage/storageAccounts","location":"eastus2","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-16T04:42:27.8695098Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-16T04:42:27.8695098Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-16T04:42:27.8070104Z","primaryEndpoints":{"dfs":"https://tsiext.dfs.core.windows.net/","web":"https://tsiext.z20.web.core.windows.net/","blob":"https://tsiext.blob.core.windows.net/","queue":"https://tsiext.queue.core.windows.net/","table":"https://tsiext.table.core.windows.net/","file":"https://tsiext.file.core.windows.net/"},"primaryLocation":"eastus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/azhoxingtest9851","name":"azhoxingtest9851","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{"hidden-DevTestLabs-LabUId":"6e279161-d008-42b7-90a1-6801fc4bc4ca"},"properties":{"privateEndpointConnections":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/azhoxingtest9851/privateEndpointConnections/azhoxingtest9851.6911cd49-cfc1-4bcf-887b-6941ff2b8756","name":"azhoxingtest9851.6911cd49-cfc1-4bcf-887b-6941ff2b8756","type":"Microsoft.Storage/storageAccounts/privateEndpointConnections","properties":{"provisioningState":"Succeeded","privateEndpoint":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuhcentral/providers/Microsoft.Network/privateEndpoints/test"},"privateLinkServiceConnectionState":{"status":"Approved","description":"Auto-Approved","actionRequired":"None"}}}],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-21T05:43:15.2811036Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-21T05:43:15.2811036Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-02-21T05:43:15.2029670Z","primaryEndpoints":{"dfs":"https://azhoxingtest9851.dfs.core.windows.net/","web":"https://azhoxingtest9851.z22.web.core.windows.net/","blob":"https://azhoxingtest9851.blob.core.windows.net/","queue":"https://azhoxingtest9851.queue.core.windows.net/","table":"https://azhoxingtest9851.table.core.windows.net/","file":"https://azhoxingtest9851.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databoxoe2qtcqlnxonqpub522jgmpzgeegwhowl2qo6xqgfwtqcd3jzicz5yraawi/providers/Microsoft.Storage/storageAccounts/clitest6yrafi3cntx2cngw3","name":"clitest6yrafi3cntx2cngw3","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T14:00:05.4412024Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T14:00:05.4412024Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-06T14:00:05.3786989Z","primaryEndpoints":{"blob":"https://clitest6yrafi3cntx2cngw3.blob.core.windows.net/","queue":"https://clitest6yrafi3cntx2cngw3.queue.core.windows.net/","table":"https://clitest6yrafi3cntx2cngw3.table.core.windows.net/","file":"https://clitest6yrafi3cntx2cngw3.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databoxn5n2vkeyewiwob4e7e6nqiblkvvgc5qorevejhsntblvdlc2t373rrvy45p/providers/Microsoft.Storage/storageAccounts/clitest75g6r5uwkj7ker7wu","name":"clitest75g6r5uwkj7ker7wu","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T06:35:53.9029562Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T06:35:53.9029562Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-03T06:35:53.8248647Z","primaryEndpoints":{"blob":"https://clitest75g6r5uwkj7ker7wu.blob.core.windows.net/","queue":"https://clitest75g6r5uwkj7ker7wu.queue.core.windows.net/","table":"https://clitest75g6r5uwkj7ker7wu.table.core.windows.net/","file":"https://clitest75g6r5uwkj7ker7wu.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databox5gpbe2knrizxsitmvje3fbdl44tf6cvpfqbpvsyicxmupsbyhmlcrg4wesk/providers/Microsoft.Storage/storageAccounts/clitest7b5n3o4aahl5rafju","name":"clitest7b5n3o4aahl5rafju","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T08:27:23.1140038Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T08:27:23.1140038Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-03T08:27:23.0514944Z","primaryEndpoints":{"blob":"https://clitest7b5n3o4aahl5rafju.blob.core.windows.net/","queue":"https://clitest7b5n3o4aahl5rafju.queue.core.windows.net/","table":"https://clitest7b5n3o4aahl5rafju.table.core.windows.net/","file":"https://clitest7b5n3o4aahl5rafju.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databoxlekg7y4dtg2pnsaueisdkyqi5mnvmlwxto2cpu3kv7snll4uc37q2rm4wme/providers/Microsoft.Storage/storageAccounts/clitestcu3wv45lektdc3whs","name":"clitestcu3wv45lektdc3whs","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T08:35:04.7531702Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T08:35:04.7531702Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-03T08:35:04.6750427Z","primaryEndpoints":{"blob":"https://clitestcu3wv45lektdc3whs.blob.core.windows.net/","queue":"https://clitestcu3wv45lektdc3whs.queue.core.windows.net/","table":"https://clitestcu3wv45lektdc3whs.table.core.windows.net/","file":"https://clitestcu3wv45lektdc3whs.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databoxeg3csudujzrh2zcvbjytg6gvlkp6sjfcozveffblaqhrzhsslvpr54lg7n2/providers/Microsoft.Storage/storageAccounts/clitestgdfhjpgc2wgbrddlq","name":"clitestgdfhjpgc2wgbrddlq","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T06:28:55.9105364Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T06:28:55.9105364Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-03T06:28:55.8480330Z","primaryEndpoints":{"blob":"https://clitestgdfhjpgc2wgbrddlq.blob.core.windows.net/","queue":"https://clitestgdfhjpgc2wgbrddlq.queue.core.windows.net/","table":"https://clitestgdfhjpgc2wgbrddlq.table.core.windows.net/","file":"https://clitestgdfhjpgc2wgbrddlq.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databoxoe2qtcqlnxonqpub522jgmpzgeegwhowl2qo6xqgfwtqcd3jzicz5yraawi/providers/Microsoft.Storage/storageAccounts/clitestl6h6fa53d2gbmohn3","name":"clitestl6h6fa53d2gbmohn3","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T13:59:30.5816034Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T13:59:30.5816034Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-06T13:59:30.5034613Z","primaryEndpoints":{"blob":"https://clitestl6h6fa53d2gbmohn3.blob.core.windows.net/","queue":"https://clitestl6h6fa53d2gbmohn3.queue.core.windows.net/","table":"https://clitestl6h6fa53d2gbmohn3.table.core.windows.net/","file":"https://clitestl6h6fa53d2gbmohn3.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databoxfgdxtb5b3moqarfyogd7fcognbrlsihjlj3acnscrixetycujoejzzalyi3/providers/Microsoft.Storage/storageAccounts/clitestldg5uo7ika27utek4","name":"clitestldg5uo7ika27utek4","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T08:59:48.7196866Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T08:59:48.7196866Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-03T08:59:48.6728325Z","primaryEndpoints":{"blob":"https://clitestldg5uo7ika27utek4.blob.core.windows.net/","queue":"https://clitestldg5uo7ika27utek4.queue.core.windows.net/","table":"https://clitestldg5uo7ika27utek4.table.core.windows.net/","file":"https://clitestldg5uo7ika27utek4.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databox52yrfbe7molrqhwdubnr2jcijd22xsz3hgcg3btf3sza5boeklwgzzq5sfn/providers/Microsoft.Storage/storageAccounts/clitestm7nikx6sld4npo42d","name":"clitestm7nikx6sld4npo42d","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T14:20:54.5597796Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T14:20:54.5597796Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-06T14:20:54.4972558Z","primaryEndpoints":{"blob":"https://clitestm7nikx6sld4npo42d.blob.core.windows.net/","queue":"https://clitestm7nikx6sld4npo42d.queue.core.windows.net/","table":"https://clitestm7nikx6sld4npo42d.table.core.windows.net/","file":"https://clitestm7nikx6sld4npo42d.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databoxrg2slunrj5vx5aydveu66wkj6rh3ildamkumi4zojpcf6f4vastgfp4v3rw/providers/Microsoft.Storage/storageAccounts/clitestmap7c2xyjf3gsd7yg","name":"clitestmap7c2xyjf3gsd7yg","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T09:10:56.7318732Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T09:10:56.7318732Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-03T09:10:56.6381622Z","primaryEndpoints":{"blob":"https://clitestmap7c2xyjf3gsd7yg.blob.core.windows.net/","queue":"https://clitestmap7c2xyjf3gsd7yg.queue.core.windows.net/","table":"https://clitestmap7c2xyjf3gsd7yg.table.core.windows.net/","file":"https://clitestmap7c2xyjf3gsd7yg.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databoxu7woflo47pjem4rfw2djuvafywtfnprfpduospdfotkqkudaylsua3ybqpa/providers/Microsoft.Storage/storageAccounts/clitestnxsheqf5s5rcht46h","name":"clitestnxsheqf5s5rcht46h","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T06:40:27.7931436Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T06:40:27.7931436Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-03T06:40:27.7305929Z","primaryEndpoints":{"blob":"https://clitestnxsheqf5s5rcht46h.blob.core.windows.net/","queue":"https://clitestnxsheqf5s5rcht46h.queue.core.windows.net/","table":"https://clitestnxsheqf5s5rcht46h.table.core.windows.net/","file":"https://clitestnxsheqf5s5rcht46h.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databox52yrfbe7molrqhwdubnr2jcijd22xsz3hgcg3btf3sza5boeklwgzzq5sfn/providers/Microsoft.Storage/storageAccounts/clitestqsel4b35pkfyubvyx","name":"clitestqsel4b35pkfyubvyx","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T14:20:08.8041709Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T14:20:08.8041709Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-06T14:20:08.7417121Z","primaryEndpoints":{"blob":"https://clitestqsel4b35pkfyubvyx.blob.core.windows.net/","queue":"https://clitestqsel4b35pkfyubvyx.queue.core.windows.net/","table":"https://clitestqsel4b35pkfyubvyx.table.core.windows.net/","file":"https://clitestqsel4b35pkfyubvyx.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_databoxam64dpcskfsb23dkj6zbvxysimh24e3upfdsdmuxbdl2j25ckz2uz5lht5y/providers/Microsoft.Storage/storageAccounts/clitesty2xsxbbcego73beie","name":"clitesty2xsxbbcego73beie","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T05:23:45.1933083Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T05:23:45.1933083Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-03T05:23:45.1308322Z","primaryEndpoints":{"blob":"https://clitesty2xsxbbcego73beie.blob.core.windows.net/","queue":"https://clitesty2xsxbbcego73beie.queue.core.windows.net/","table":"https://clitesty2xsxbbcego73beie.table.core.windows.net/","file":"https://clitesty2xsxbbcego73beie.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-test-ws-udvur1v2scpdh/providers/Microsoft.Storage/storageAccounts/dbstorageazqiaxnzp45c4","name":"dbstorageazqiaxnzp45c4","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-13T03:47:02.5418099Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-13T03:47:02.5418099Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-13T03:47:02.4793343Z","primaryEndpoints":{"dfs":"https://dbstorageazqiaxnzp45c4.dfs.core.windows.net/","blob":"https://dbstorageazqiaxnzp45c4.blob.core.windows.net/","table":"https://dbstorageazqiaxnzp45c4.table.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available","secondaryLocation":"eastus","statusOfSecondary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-test-ws-1-tkfkantu2y5cn/providers/Microsoft.Storage/storageAccounts/dbstorageucp43z6irid74","name":"dbstorageucp43z6irid74","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-13T04:56:17.5656641Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-13T04:56:17.5656641Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-13T04:56:17.4874850Z","primaryEndpoints":{"dfs":"https://dbstorageucp43z6irid74.dfs.core.windows.net/","blob":"https://dbstorageucp43z6irid74.blob.core.windows.net/","table":"https://dbstorageucp43z6irid74.table.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available","secondaryLocation":"eastus","statusOfSecondary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-test-ws-2-eh7zug4x1inzs/providers/Microsoft.Storage/storageAccounts/dbstoragezkqasazvxxgmu","name":"dbstoragezkqasazvxxgmu","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-13T05:06:37.5070495Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-13T05:06:37.5070495Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-13T05:06:37.4288942Z","primaryEndpoints":{"dfs":"https://dbstoragezkqasazvxxgmu.dfs.core.windows.net/","blob":"https://dbstoragezkqasazvxxgmu.blob.core.windows.net/","table":"https://dbstoragezkqasazvxxgmu.table.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available","secondaryLocation":"eastus","statusOfSecondary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/yu-test-rg-westus/providers/Microsoft.Storage/storageAccounts/yutestdbsawestus","name":"yutestdbsawestus","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-25T11:11:24.7554090Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-25T11:11:24.7554090Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-02-25T11:11:24.6772540Z","primaryEndpoints":{"dfs":"https://yutestdbsawestus.dfs.core.windows.net/","web":"https://yutestdbsawestus.z22.web.core.windows.net/","blob":"https://yutestdbsawestus.blob.core.windows.net/","queue":"https://yutestdbsawestus.queue.core.windows.net/","table":"https://yutestdbsawestus.table.core.windows.net/","file":"https://yutestdbsawestus.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available","secondaryLocation":"eastus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://yutestdbsawestus-secondary.dfs.core.windows.net/","web":"https://yutestdbsawestus-secondary.z22.web.core.windows.net/","blob":"https://yutestdbsawestus-secondary.blob.core.windows.net/","queue":"https://yutestdbsawestus-secondary.queue.core.windows.net/","table":"https://yutestdbsawestus-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/yu-test-rg-westus/providers/Microsoft.Storage/storageAccounts/yutestlro","name":"yutestlro","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-28T07:50:15.1386919Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-28T07:50:15.1386919Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-02-28T07:50:15.0762161Z","primaryEndpoints":{"blob":"https://yutestlro.blob.core.windows.net/","queue":"https://yutestlro.queue.core.windows.net/","table":"https://yutestlro.table.core.windows.net/","file":"https://yutestlro.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available","secondaryLocation":"eastus","statusOfSecondary":"available","secondaryEndpoints":{"blob":"https://yutestlro-secondary.blob.core.windows.net/","queue":"https://yutestlro-secondary.queue.core.windows.net/","table":"https://yutestlro-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-my-standard-space-fez3hbt1bsvmr/providers/Microsoft.Storage/storageAccounts/dbstoragefez3hbt1bsvmr","name":"dbstoragefez3hbt1bsvmr","type":"Microsoft.Storage/storageAccounts","location":"eastasia","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-16T03:14:00.7822307Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-16T03:14:00.7822307Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-16T03:14:00.7197710Z","primaryEndpoints":{"dfs":"https://dbstoragefez3hbt1bsvmr.dfs.core.windows.net/","blob":"https://dbstoragefez3hbt1bsvmr.blob.core.windows.net/","table":"https://dbstoragefez3hbt1bsvmr.table.core.windows.net/"},"primaryLocation":"eastasia","statusOfPrimary":"available","secondaryLocation":"southeastasia","statusOfSecondary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/feng-cli-rg/providers/Microsoft.Storage/storageAccounts/fengws1storage296335f3c7","name":"fengws1storage296335f3c7","type":"Microsoft.Storage/storageAccounts","location":"eastasia","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-14T14:41:02.2224956Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-14T14:41:02.2224956Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-02-14T14:41:02.1600089Z","primaryEndpoints":{"dfs":"https://fengws1storage296335f3c7.dfs.core.windows.net/","web":"https://fengws1storage296335f3c7.z7.web.core.windows.net/","blob":"https://fengws1storage296335f3c7.blob.core.windows.net/","queue":"https://fengws1storage296335f3c7.queue.core.windows.net/","table":"https://fengws1storage296335f3c7.table.core.windows.net/","file":"https://fengws1storage296335f3c7.file.core.windows.net/"},"primaryLocation":"eastasia","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/xiaojianxu/providers/Microsoft.Storage/storageAccounts/xxjtest1","name":"xxjtest1","type":"Microsoft.Storage/storageAccounts","location":"eastasia","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-20T08:36:23.6918366Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-20T08:36:23.6918366Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-20T08:36:23.6293420Z","primaryEndpoints":{"dfs":"https://xxjtest1.dfs.core.windows.net/","web":"https://xxjtest1.z7.web.core.windows.net/","blob":"https://xxjtest1.blob.core.windows.net/","queue":"https://xxjtest1.queue.core.windows.net/","table":"https://xxjtest1.table.core.windows.net/","file":"https://xxjtest1.file.core.windows.net/"},"primaryLocation":"eastasia","statusOfPrimary":"available","secondaryLocation":"southeastasia","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://xxjtest1-secondary.dfs.core.windows.net/","web":"https://xxjtest1-secondary.z7.web.core.windows.net/","blob":"https://xxjtest1-secondary.blob.core.windows.net/","queue":"https://xxjtest1-secondary.queue.core.windows.net/","table":"https://xxjtest1-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg6i4hl6iakg/providers/Microsoft.Storage/storageAccounts/clitestu3p7a7ib4n4y7gt4m","name":"clitestu3p7a7ib4n4y7gt4m","type":"Microsoft.Storage/storageAccounts","location":"southeastasia","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-30T01:51:53.0814418Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-30T01:51:53.0814418Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2019-12-30T01:51:53.0189478Z","primaryEndpoints":{"blob":"https://clitestu3p7a7ib4n4y7gt4m.blob.core.windows.net/","queue":"https://clitestu3p7a7ib4n4y7gt4m.queue.core.windows.net/","table":"https://clitestu3p7a7ib4n4y7gt4m.table.core.windows.net/","file":"https://clitestu3p7a7ib4n4y7gt4m.file.core.windows.net/"},"primaryLocation":"southeastasia","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jlrg1/providers/Microsoft.Storage/storageAccounts/jlcsst","name":"jlcsst","type":"Microsoft.Storage/storageAccounts","location":"southeastasia","tags":{"ms-resource-usage":"azure-cloud-shell"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-02T07:15:45.8047726Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-02T07:15:45.8047726Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-02T07:15:45.7422455Z","primaryEndpoints":{"dfs":"https://jlcsst.dfs.core.windows.net/","web":"https://jlcsst.z23.web.core.windows.net/","blob":"https://jlcsst.blob.core.windows.net/","queue":"https://jlcsst.queue.core.windows.net/","table":"https://jlcsst.table.core.windows.net/","file":"https://jlcsst.file.core.windows.net/"},"primaryLocation":"southeastasia","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jlvm2rg/providers/Microsoft.Storage/storageAccounts/jlvm2rgdiag","name":"jlvm2rgdiag","type":"Microsoft.Storage/storageAccounts","location":"southeastasia","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T04:41:48.6974827Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T04:41:48.6974827Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-03T04:41:48.6505931Z","primaryEndpoints":{"blob":"https://jlvm2rgdiag.blob.core.windows.net/","queue":"https://jlvm2rgdiag.queue.core.windows.net/","table":"https://jlvm2rgdiag.table.core.windows.net/","file":"https://jlvm2rgdiag.file.core.windows.net/"},"primaryLocation":"southeastasia","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Storage/storageAccounts/qianwensdiag","name":"qianwensdiag","type":"Microsoft.Storage/storageAccounts","location":"southeastasia","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-04T07:17:09.1138103Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-04T07:17:09.1138103Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-02-04T07:17:09.0514178Z","primaryEndpoints":{"blob":"https://qianwensdiag.blob.core.windows.net/","queue":"https://qianwensdiag.queue.core.windows.net/","table":"https://qianwensdiag.table.core.windows.net/","file":"https://qianwensdiag.file.core.windows.net/"},"primaryLocation":"southeastasia","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/yeming/providers/Microsoft.Storage/storageAccounts/yeming","name":"yeming","type":"Microsoft.Storage/storageAccounts","location":"southeastasia","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-04T06:41:07.4012554Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-04T06:41:07.4012554Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-12-04T06:41:07.3699884Z","primaryEndpoints":{"dfs":"https://yeming.dfs.core.windows.net/","web":"https://yeming.z23.web.core.windows.net/","blob":"https://yeming.blob.core.windows.net/","queue":"https://yeming.queue.core.windows.net/","table":"https://yeming.table.core.windows.net/","file":"https://yeming.file.core.windows.net/"},"primaryLocation":"southeastasia","statusOfPrimary":"available","secondaryLocation":"eastasia","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://yeming-secondary.dfs.core.windows.net/","web":"https://yeming-secondary.z23.web.core.windows.net/","blob":"https://yeming-secondary.blob.core.windows.net/","queue":"https://yeming-secondary.queue.core.windows.net/","table":"https://yeming-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bim-rg/providers/Microsoft.Storage/storageAccounts/bimrgdiag","name":"bimrgdiag","type":"Microsoft.Storage/storageAccounts","location":"japaneast","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-12T15:04:32.1018377Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-12T15:04:32.1018377Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-02-12T15:04:32.0706109Z","primaryEndpoints":{"blob":"https://bimrgdiag.blob.core.windows.net/","queue":"https://bimrgdiag.queue.core.windows.net/","table":"https://bimrgdiag.table.core.windows.net/","file":"https://bimrgdiag.file.core.windows.net/"},"primaryLocation":"japaneast","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/feng-cli-rg/providers/Microsoft.Storage/storageAccounts/fengclirgdiag","name":"fengclirgdiag","type":"Microsoft.Storage/storageAccounts","location":"japaneast","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-01T07:10:20.0599535Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-01T07:10:20.0599535Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-01T07:10:19.9974827Z","primaryEndpoints":{"blob":"https://fengclirgdiag.blob.core.windows.net/","queue":"https://fengclirgdiag.queue.core.windows.net/","table":"https://fengclirgdiag.table.core.windows.net/","file":"https://fengclirgdiag.file.core.windows.net/"},"primaryLocation":"japaneast","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/store6472qnxl3vv5o","name":"store6472qnxl3vv5o","type":"Microsoft.Storage/storageAccounts","location":"southcentralus","tags":{"project":"Digital - Platform","env":"CI"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-27T08:24:34.7235260Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-27T08:24:34.7235260Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-02-27T08:24:34.6453999Z","primaryEndpoints":{"blob":"https://store6472qnxl3vv5o.blob.core.windows.net/","queue":"https://store6472qnxl3vv5o.queue.core.windows.net/","table":"https://store6472qnxl3vv5o.table.core.windows.net/","file":"https://store6472qnxl3vv5o.file.core.windows.net/"},"primaryLocation":"southcentralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/feng-cli-rg/providers/Microsoft.Storage/storageAccounts/extmigrate","name":"extmigrate","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-16T08:26:10.6796218Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-16T08:26:10.6796218Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-16T08:26:10.5858998Z","primaryEndpoints":{"blob":"https://extmigrate.blob.core.windows.net/","queue":"https://extmigrate.queue.core.windows.net/","table":"https://extmigrate.table.core.windows.net/","file":"https://extmigrate.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"blob":"https://extmigrate-secondary.blob.core.windows.net/","queue":"https://extmigrate-secondary.queue.core.windows.net/","table":"https://extmigrate-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/feng-cli-rg/providers/Microsoft.Storage/storageAccounts/fengsa","name":"fengsa","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-01-06T04:33:22.9379802Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-01-06T04:33:22.9379802Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-01-06T04:33:22.8754625Z","primaryEndpoints":{"dfs":"https://fengsa.dfs.core.windows.net/","web":"https://fengsa.z19.web.core.windows.net/","blob":"https://fengsa.blob.core.windows.net/","queue":"https://fengsa.queue.core.windows.net/","table":"https://fengsa.table.core.windows.net/","file":"https://fengsa.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://fengsa-secondary.dfs.core.windows.net/","web":"https://fengsa-secondary.z19.web.core.windows.net/","blob":"https://fengsa-secondary.blob.core.windows.net/","queue":"https://fengsa-secondary.queue.core.windows.net/","table":"https://fengsa-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/idgdiag6472qnxl3vv5o","name":"idgdiag6472qnxl3vv5o","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-03T08:53:11.2645207Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-03T08:53:11.2645207Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-03T08:53:11.1707355Z","primaryEndpoints":{"dfs":"https://idgdiag6472qnxl3vv5o.dfs.core.windows.net/","web":"https://idgdiag6472qnxl3vv5o.z19.web.core.windows.net/","blob":"https://idgdiag6472qnxl3vv5o.blob.core.windows.net/","queue":"https://idgdiag6472qnxl3vv5o.queue.core.windows.net/","table":"https://idgdiag6472qnxl3vv5o.table.core.windows.net/","file":"https://idgdiag6472qnxl3vv5o.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/storageaccountzhoxib2a8","name":"storageaccountzhoxib2a8","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-25T06:54:03.9825980Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-25T06:54:03.9825980Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-02-25T06:54:03.9044955Z","primaryEndpoints":{"blob":"https://storageaccountzhoxib2a8.blob.core.windows.net/","queue":"https://storageaccountzhoxib2a8.queue.core.windows.net/","table":"https://storageaccountzhoxib2a8.table.core.windows.net/","file":"https://storageaccountzhoxib2a8.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro1","name":"storagesfrepro1","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:07:42.2058942Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:07:42.2058942Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:07:42.1277444Z","primaryEndpoints":{"dfs":"https://storagesfrepro1.dfs.core.windows.net/","web":"https://storagesfrepro1.z19.web.core.windows.net/","blob":"https://storagesfrepro1.blob.core.windows.net/","queue":"https://storagesfrepro1.queue.core.windows.net/","table":"https://storagesfrepro1.table.core.windows.net/","file":"https://storagesfrepro1.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro1-secondary.dfs.core.windows.net/","web":"https://storagesfrepro1-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro1-secondary.blob.core.windows.net/","queue":"https://storagesfrepro1-secondary.queue.core.windows.net/","table":"https://storagesfrepro1-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro10","name":"storagesfrepro10","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:14:00.8753334Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:14:00.8753334Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:14:00.7815921Z","primaryEndpoints":{"dfs":"https://storagesfrepro10.dfs.core.windows.net/","web":"https://storagesfrepro10.z19.web.core.windows.net/","blob":"https://storagesfrepro10.blob.core.windows.net/","queue":"https://storagesfrepro10.queue.core.windows.net/","table":"https://storagesfrepro10.table.core.windows.net/","file":"https://storagesfrepro10.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro10-secondary.dfs.core.windows.net/","web":"https://storagesfrepro10-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro10-secondary.blob.core.windows.net/","queue":"https://storagesfrepro10-secondary.queue.core.windows.net/","table":"https://storagesfrepro10-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro11","name":"storagesfrepro11","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:14:28.9859417Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:14:28.9859417Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:14:28.8609347Z","primaryEndpoints":{"dfs":"https://storagesfrepro11.dfs.core.windows.net/","web":"https://storagesfrepro11.z19.web.core.windows.net/","blob":"https://storagesfrepro11.blob.core.windows.net/","queue":"https://storagesfrepro11.queue.core.windows.net/","table":"https://storagesfrepro11.table.core.windows.net/","file":"https://storagesfrepro11.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro11-secondary.dfs.core.windows.net/","web":"https://storagesfrepro11-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro11-secondary.blob.core.windows.net/","queue":"https://storagesfrepro11-secondary.queue.core.windows.net/","table":"https://storagesfrepro11-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro12","name":"storagesfrepro12","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:15:15.6785362Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:15:15.6785362Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:15:15.5848345Z","primaryEndpoints":{"dfs":"https://storagesfrepro12.dfs.core.windows.net/","web":"https://storagesfrepro12.z19.web.core.windows.net/","blob":"https://storagesfrepro12.blob.core.windows.net/","queue":"https://storagesfrepro12.queue.core.windows.net/","table":"https://storagesfrepro12.table.core.windows.net/","file":"https://storagesfrepro12.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro12-secondary.dfs.core.windows.net/","web":"https://storagesfrepro12-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro12-secondary.blob.core.windows.net/","queue":"https://storagesfrepro12-secondary.queue.core.windows.net/","table":"https://storagesfrepro12-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro13","name":"storagesfrepro13","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:16:55.7609361Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:16:55.7609361Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:16:55.6671828Z","primaryEndpoints":{"dfs":"https://storagesfrepro13.dfs.core.windows.net/","web":"https://storagesfrepro13.z19.web.core.windows.net/","blob":"https://storagesfrepro13.blob.core.windows.net/","queue":"https://storagesfrepro13.queue.core.windows.net/","table":"https://storagesfrepro13.table.core.windows.net/","file":"https://storagesfrepro13.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro13-secondary.dfs.core.windows.net/","web":"https://storagesfrepro13-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro13-secondary.blob.core.windows.net/","queue":"https://storagesfrepro13-secondary.queue.core.windows.net/","table":"https://storagesfrepro13-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro14","name":"storagesfrepro14","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:17:40.7661469Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:17:40.7661469Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:17:40.6880204Z","primaryEndpoints":{"dfs":"https://storagesfrepro14.dfs.core.windows.net/","web":"https://storagesfrepro14.z19.web.core.windows.net/","blob":"https://storagesfrepro14.blob.core.windows.net/","queue":"https://storagesfrepro14.queue.core.windows.net/","table":"https://storagesfrepro14.table.core.windows.net/","file":"https://storagesfrepro14.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro14-secondary.dfs.core.windows.net/","web":"https://storagesfrepro14-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro14-secondary.blob.core.windows.net/","queue":"https://storagesfrepro14-secondary.queue.core.windows.net/","table":"https://storagesfrepro14-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro15","name":"storagesfrepro15","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:18:52.1812445Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:18:52.1812445Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:18:52.0718543Z","primaryEndpoints":{"dfs":"https://storagesfrepro15.dfs.core.windows.net/","web":"https://storagesfrepro15.z19.web.core.windows.net/","blob":"https://storagesfrepro15.blob.core.windows.net/","queue":"https://storagesfrepro15.queue.core.windows.net/","table":"https://storagesfrepro15.table.core.windows.net/","file":"https://storagesfrepro15.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro15-secondary.dfs.core.windows.net/","web":"https://storagesfrepro15-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro15-secondary.blob.core.windows.net/","queue":"https://storagesfrepro15-secondary.queue.core.windows.net/","table":"https://storagesfrepro15-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro16","name":"storagesfrepro16","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:19:33.1863807Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:19:33.1863807Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:19:33.0770034Z","primaryEndpoints":{"dfs":"https://storagesfrepro16.dfs.core.windows.net/","web":"https://storagesfrepro16.z19.web.core.windows.net/","blob":"https://storagesfrepro16.blob.core.windows.net/","queue":"https://storagesfrepro16.queue.core.windows.net/","table":"https://storagesfrepro16.table.core.windows.net/","file":"https://storagesfrepro16.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro16-secondary.dfs.core.windows.net/","web":"https://storagesfrepro16-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro16-secondary.blob.core.windows.net/","queue":"https://storagesfrepro16-secondary.queue.core.windows.net/","table":"https://storagesfrepro16-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro17","name":"storagesfrepro17","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:04:23.5553513Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:04:23.5553513Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:04:23.4771469Z","primaryEndpoints":{"dfs":"https://storagesfrepro17.dfs.core.windows.net/","web":"https://storagesfrepro17.z19.web.core.windows.net/","blob":"https://storagesfrepro17.blob.core.windows.net/","queue":"https://storagesfrepro17.queue.core.windows.net/","table":"https://storagesfrepro17.table.core.windows.net/","file":"https://storagesfrepro17.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro17-secondary.dfs.core.windows.net/","web":"https://storagesfrepro17-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro17-secondary.blob.core.windows.net/","queue":"https://storagesfrepro17-secondary.queue.core.windows.net/","table":"https://storagesfrepro17-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro18","name":"storagesfrepro18","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:04:53.8320772Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:04:53.8320772Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:04:53.7383176Z","primaryEndpoints":{"dfs":"https://storagesfrepro18.dfs.core.windows.net/","web":"https://storagesfrepro18.z19.web.core.windows.net/","blob":"https://storagesfrepro18.blob.core.windows.net/","queue":"https://storagesfrepro18.queue.core.windows.net/","table":"https://storagesfrepro18.table.core.windows.net/","file":"https://storagesfrepro18.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro18-secondary.dfs.core.windows.net/","web":"https://storagesfrepro18-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro18-secondary.blob.core.windows.net/","queue":"https://storagesfrepro18-secondary.queue.core.windows.net/","table":"https://storagesfrepro18-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro19","name":"storagesfrepro19","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:05:26.3650238Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:05:26.3650238Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:05:26.2556326Z","primaryEndpoints":{"dfs":"https://storagesfrepro19.dfs.core.windows.net/","web":"https://storagesfrepro19.z19.web.core.windows.net/","blob":"https://storagesfrepro19.blob.core.windows.net/","queue":"https://storagesfrepro19.queue.core.windows.net/","table":"https://storagesfrepro19.table.core.windows.net/","file":"https://storagesfrepro19.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro19-secondary.dfs.core.windows.net/","web":"https://storagesfrepro19-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro19-secondary.blob.core.windows.net/","queue":"https://storagesfrepro19-secondary.queue.core.windows.net/","table":"https://storagesfrepro19-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro2","name":"storagesfrepro2","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:08:45.8498203Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:08:45.8498203Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:08:45.7717196Z","primaryEndpoints":{"dfs":"https://storagesfrepro2.dfs.core.windows.net/","web":"https://storagesfrepro2.z19.web.core.windows.net/","blob":"https://storagesfrepro2.blob.core.windows.net/","queue":"https://storagesfrepro2.queue.core.windows.net/","table":"https://storagesfrepro2.table.core.windows.net/","file":"https://storagesfrepro2.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro2-secondary.dfs.core.windows.net/","web":"https://storagesfrepro2-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro2-secondary.blob.core.windows.net/","queue":"https://storagesfrepro2-secondary.queue.core.windows.net/","table":"https://storagesfrepro2-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro20","name":"storagesfrepro20","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:07.4295934Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:07.4295934Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:06:07.3358422Z","primaryEndpoints":{"dfs":"https://storagesfrepro20.dfs.core.windows.net/","web":"https://storagesfrepro20.z19.web.core.windows.net/","blob":"https://storagesfrepro20.blob.core.windows.net/","queue":"https://storagesfrepro20.queue.core.windows.net/","table":"https://storagesfrepro20.table.core.windows.net/","file":"https://storagesfrepro20.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro20-secondary.dfs.core.windows.net/","web":"https://storagesfrepro20-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro20-secondary.blob.core.windows.net/","queue":"https://storagesfrepro20-secondary.queue.core.windows.net/","table":"https://storagesfrepro20-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro21","name":"storagesfrepro21","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:37.4780251Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:37.4780251Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:06:37.3686460Z","primaryEndpoints":{"dfs":"https://storagesfrepro21.dfs.core.windows.net/","web":"https://storagesfrepro21.z19.web.core.windows.net/","blob":"https://storagesfrepro21.blob.core.windows.net/","queue":"https://storagesfrepro21.queue.core.windows.net/","table":"https://storagesfrepro21.table.core.windows.net/","file":"https://storagesfrepro21.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro21-secondary.dfs.core.windows.net/","web":"https://storagesfrepro21-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro21-secondary.blob.core.windows.net/","queue":"https://storagesfrepro21-secondary.queue.core.windows.net/","table":"https://storagesfrepro21-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro22","name":"storagesfrepro22","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:59.8295391Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:59.8295391Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:06:59.7201581Z","primaryEndpoints":{"dfs":"https://storagesfrepro22.dfs.core.windows.net/","web":"https://storagesfrepro22.z19.web.core.windows.net/","blob":"https://storagesfrepro22.blob.core.windows.net/","queue":"https://storagesfrepro22.queue.core.windows.net/","table":"https://storagesfrepro22.table.core.windows.net/","file":"https://storagesfrepro22.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro22-secondary.dfs.core.windows.net/","web":"https://storagesfrepro22-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro22-secondary.blob.core.windows.net/","queue":"https://storagesfrepro22-secondary.queue.core.windows.net/","table":"https://storagesfrepro22-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro23","name":"storagesfrepro23","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:07:29.0846619Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:07:29.0846619Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:07:29.0065050Z","primaryEndpoints":{"dfs":"https://storagesfrepro23.dfs.core.windows.net/","web":"https://storagesfrepro23.z19.web.core.windows.net/","blob":"https://storagesfrepro23.blob.core.windows.net/","queue":"https://storagesfrepro23.queue.core.windows.net/","table":"https://storagesfrepro23.table.core.windows.net/","file":"https://storagesfrepro23.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro23-secondary.dfs.core.windows.net/","web":"https://storagesfrepro23-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro23-secondary.blob.core.windows.net/","queue":"https://storagesfrepro23-secondary.queue.core.windows.net/","table":"https://storagesfrepro23-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro24","name":"storagesfrepro24","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:07:53.2658712Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:07:53.2658712Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:07:53.1565651Z","primaryEndpoints":{"dfs":"https://storagesfrepro24.dfs.core.windows.net/","web":"https://storagesfrepro24.z19.web.core.windows.net/","blob":"https://storagesfrepro24.blob.core.windows.net/","queue":"https://storagesfrepro24.queue.core.windows.net/","table":"https://storagesfrepro24.table.core.windows.net/","file":"https://storagesfrepro24.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro24-secondary.dfs.core.windows.net/","web":"https://storagesfrepro24-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro24-secondary.blob.core.windows.net/","queue":"https://storagesfrepro24-secondary.queue.core.windows.net/","table":"https://storagesfrepro24-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro25","name":"storagesfrepro25","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:08:18.7432319Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:08:18.7432319Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:08:18.6338258Z","primaryEndpoints":{"dfs":"https://storagesfrepro25.dfs.core.windows.net/","web":"https://storagesfrepro25.z19.web.core.windows.net/","blob":"https://storagesfrepro25.blob.core.windows.net/","queue":"https://storagesfrepro25.queue.core.windows.net/","table":"https://storagesfrepro25.table.core.windows.net/","file":"https://storagesfrepro25.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro25-secondary.dfs.core.windows.net/","web":"https://storagesfrepro25-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro25-secondary.blob.core.windows.net/","queue":"https://storagesfrepro25-secondary.queue.core.windows.net/","table":"https://storagesfrepro25-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro3","name":"storagesfrepro3","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:09:19.5698333Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:09:19.5698333Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:09:19.3510997Z","primaryEndpoints":{"dfs":"https://storagesfrepro3.dfs.core.windows.net/","web":"https://storagesfrepro3.z19.web.core.windows.net/","blob":"https://storagesfrepro3.blob.core.windows.net/","queue":"https://storagesfrepro3.queue.core.windows.net/","table":"https://storagesfrepro3.table.core.windows.net/","file":"https://storagesfrepro3.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro3-secondary.dfs.core.windows.net/","web":"https://storagesfrepro3-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro3-secondary.blob.core.windows.net/","queue":"https://storagesfrepro3-secondary.queue.core.windows.net/","table":"https://storagesfrepro3-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro4","name":"storagesfrepro4","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:09:54.9930953Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:09:54.9930953Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:09:54.8993063Z","primaryEndpoints":{"dfs":"https://storagesfrepro4.dfs.core.windows.net/","web":"https://storagesfrepro4.z19.web.core.windows.net/","blob":"https://storagesfrepro4.blob.core.windows.net/","queue":"https://storagesfrepro4.queue.core.windows.net/","table":"https://storagesfrepro4.table.core.windows.net/","file":"https://storagesfrepro4.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro4-secondary.dfs.core.windows.net/","web":"https://storagesfrepro4-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro4-secondary.blob.core.windows.net/","queue":"https://storagesfrepro4-secondary.queue.core.windows.net/","table":"https://storagesfrepro4-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro5","name":"storagesfrepro5","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:10:48.1114395Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:10:48.1114395Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:10:48.0177273Z","primaryEndpoints":{"dfs":"https://storagesfrepro5.dfs.core.windows.net/","web":"https://storagesfrepro5.z19.web.core.windows.net/","blob":"https://storagesfrepro5.blob.core.windows.net/","queue":"https://storagesfrepro5.queue.core.windows.net/","table":"https://storagesfrepro5.table.core.windows.net/","file":"https://storagesfrepro5.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro5-secondary.dfs.core.windows.net/","web":"https://storagesfrepro5-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro5-secondary.blob.core.windows.net/","queue":"https://storagesfrepro5-secondary.queue.core.windows.net/","table":"https://storagesfrepro5-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro6","name":"storagesfrepro6","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:11:28.0269117Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:11:28.0269117Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:11:27.9331594Z","primaryEndpoints":{"dfs":"https://storagesfrepro6.dfs.core.windows.net/","web":"https://storagesfrepro6.z19.web.core.windows.net/","blob":"https://storagesfrepro6.blob.core.windows.net/","queue":"https://storagesfrepro6.queue.core.windows.net/","table":"https://storagesfrepro6.table.core.windows.net/","file":"https://storagesfrepro6.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro6-secondary.dfs.core.windows.net/","web":"https://storagesfrepro6-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro6-secondary.blob.core.windows.net/","queue":"https://storagesfrepro6-secondary.queue.core.windows.net/","table":"https://storagesfrepro6-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro7","name":"storagesfrepro7","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:12:08.7761892Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:12:08.7761892Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:12:08.6824637Z","primaryEndpoints":{"dfs":"https://storagesfrepro7.dfs.core.windows.net/","web":"https://storagesfrepro7.z19.web.core.windows.net/","blob":"https://storagesfrepro7.blob.core.windows.net/","queue":"https://storagesfrepro7.queue.core.windows.net/","table":"https://storagesfrepro7.table.core.windows.net/","file":"https://storagesfrepro7.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro7-secondary.dfs.core.windows.net/","web":"https://storagesfrepro7-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro7-secondary.blob.core.windows.net/","queue":"https://storagesfrepro7-secondary.queue.core.windows.net/","table":"https://storagesfrepro7-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro8","name":"storagesfrepro8","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:12:39.5221164Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:12:39.5221164Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:12:39.4283923Z","primaryEndpoints":{"dfs":"https://storagesfrepro8.dfs.core.windows.net/","web":"https://storagesfrepro8.z19.web.core.windows.net/","blob":"https://storagesfrepro8.blob.core.windows.net/","queue":"https://storagesfrepro8.queue.core.windows.net/","table":"https://storagesfrepro8.table.core.windows.net/","file":"https://storagesfrepro8.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro8-secondary.dfs.core.windows.net/","web":"https://storagesfrepro8-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro8-secondary.blob.core.windows.net/","queue":"https://storagesfrepro8-secondary.queue.core.windows.net/","table":"https://storagesfrepro8-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro9","name":"storagesfrepro9","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:13:18.1628430Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:13:18.1628430Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:13:18.0691096Z","primaryEndpoints":{"dfs":"https://storagesfrepro9.dfs.core.windows.net/","web":"https://storagesfrepro9.z19.web.core.windows.net/","blob":"https://storagesfrepro9.blob.core.windows.net/","queue":"https://storagesfrepro9.queue.core.windows.net/","table":"https://storagesfrepro9.table.core.windows.net/","file":"https://storagesfrepro9.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro9-secondary.dfs.core.windows.net/","web":"https://storagesfrepro9-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro9-secondary.blob.core.windows.net/","queue":"https://storagesfrepro9-secondary.queue.core.windows.net/","table":"https://storagesfrepro9-secondary.table.core.windows.net/"}}},{"sku":{"name":"Premium_LRS","tier":"Premium"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/zhoxing2","name":"zhoxing2","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-21T06:54:17.8037418Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-21T06:54:17.8037418Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-21T06:54:17.7099423Z","primaryEndpoints":{"dfs":"https://zhoxing2.dfs.core.windows.net/","web":"https://zhoxing2.z19.web.core.windows.net/","blob":"https://zhoxing2.blob.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/zhoxingtest","name":"zhoxingtest","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-20T09:01:14.2087269Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-20T09:01:14.2087269Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-20T09:01:14.1462280Z","primaryEndpoints":{"dfs":"https://zhoxingtest.dfs.core.windows.net/","web":"https://zhoxingtest.z19.web.core.windows.net/","blob":"https://zhoxingtest.blob.core.windows.net/","queue":"https://zhoxingtest.queue.core.windows.net/","table":"https://zhoxingtest.table.core.windows.net/","file":"https://zhoxingtest.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zhoxingtest-secondary.dfs.core.windows.net/","web":"https://zhoxingtest-secondary.z19.web.core.windows.net/","blob":"https://zhoxingtest-secondary.blob.core.windows.net/","queue":"https://zhoxingtest-secondary.queue.core.windows.net/","table":"https://zhoxingtest-secondary.table.core.windows.net/"}}},{"sku":{"name":"Premium_LRS","tier":"Premium"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/zhoxingtest2","name":"zhoxingtest2","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-21T06:52:39.2007383Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-21T06:52:39.2007383Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-21T06:52:39.1039700Z","primaryEndpoints":{"dfs":"https://zhoxingtest2.dfs.core.windows.net/","web":"https://zhoxingtest2.z19.web.core.windows.net/","blob":"https://zhoxingtest2.blob.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuhcentral/providers/Microsoft.Storage/storageAccounts/zuhstorage","name":"zuhstorage","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{"key":"val","key2":"val2"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-02T06:04:55.7104787Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-02T06:04:55.7104787Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-02T06:04:55.6167450Z","primaryEndpoints":{"dfs":"https://zuhstorage.dfs.core.windows.net/","web":"https://zuhstorage.z19.web.core.windows.net/","blob":"https://zuhstorage.blob.core.windows.net/","queue":"https://zuhstorage.queue.core.windows.net/","table":"https://zuhstorage.table.core.windows.net/","file":"https://zuhstorage.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zuhstorage-secondary.dfs.core.windows.net/","web":"https://zuhstorage-secondary.z19.web.core.windows.net/","blob":"https://zuhstorage-secondary.blob.core.windows.net/","queue":"https://zuhstorage-secondary.queue.core.windows.net/","table":"https://zuhstorage-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002","name":"clitestdatas000002","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-23T13:41:53.6606746Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-23T13:41:53.6606746Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-04-23T13:41:53.5981225Z","primaryEndpoints":{"blob":"https://clitestdatas000002.blob.core.windows.net/","queue":"https://clitestdatas000002.queue.core.windows.net/","table":"https://clitestdatas000002.table.core.windows.net/","file":"https://clitestdatas000002.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_datwup7nhvv2zbeog5cowmt74wcgwnrm6i5z2ss6dyqwfzen4jh3hjpyl2hwz5ynxy/providers/Microsoft.Storage/storageAccounts/clitestdatasmezc7dtd565a","name":"clitestdatasmezc7dtd565a","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-23T13:14:14.9779346Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-23T13:14:14.9779346Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-04-23T13:14:14.8998336Z","primaryEndpoints":{"blob":"https://clitestdatasmezc7dtd565a.blob.core.windows.net/","queue":"https://clitestdatasmezc7dtd565a.queue.core.windows.net/","table":"https://clitestdatasmezc7dtd565a.table.core.windows.net/","file":"https://clitestdatasmezc7dtd565a.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/feng-cli-rg/providers/Microsoft.Storage/storageAccounts/fengwsstorage28dfde17cb1","name":"fengwsstorage28dfde17cb1","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-07T04:11:42.2482670Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-07T04:11:42.2482670Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-02-07T04:11:42.1857797Z","primaryEndpoints":{"dfs":"https://fengwsstorage28dfde17cb1.dfs.core.windows.net/","web":"https://fengwsstorage28dfde17cb1.z5.web.core.windows.net/","blob":"https://fengwsstorage28dfde17cb1.blob.core.windows.net/","queue":"https://fengwsstorage28dfde17cb1.queue.core.windows.net/","table":"https://fengwsstorage28dfde17cb1.table.core.windows.net/","file":"https://fengwsstorage28dfde17cb1.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/xiaojianxu/providers/Microsoft.Storage/storageAccounts/xxjwetus2storage","name":"xxjwetus2storage","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-30T06:26:54.2163538Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-30T06:26:54.2163538Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-30T06:26:54.1538919Z","primaryEndpoints":{"dfs":"https://xxjwetus2storage.dfs.core.windows.net/","web":"https://xxjwetus2storage.z5.web.core.windows.net/","blob":"https://xxjwetus2storage.blob.core.windows.net/","queue":"https://xxjwetus2storage.queue.core.windows.net/","table":"https://xxjwetus2storage.table.core.windows.net/","file":"https://xxjwetus2storage.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available","secondaryLocation":"westcentralus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://xxjwetus2storage-secondary.dfs.core.windows.net/","web":"https://xxjwetus2storage-secondary.z5.web.core.windows.net/","blob":"https://xxjwetus2storage-secondary.blob.core.windows.net/","queue":"https://xxjwetus2storage-secondary.queue.core.windows.net/","table":"https://xxjwetus2storage-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bim-rg/providers/Microsoft.Storage/storageAccounts/bimstorageacc","name":"bimstorageacc","type":"Microsoft.Storage/storageAccounts","location":"westcentralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T07:20:55.2327590Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T07:20:55.2327590Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-03T07:20:55.1858389Z","primaryEndpoints":{"dfs":"https://bimstorageacc.dfs.core.windows.net/","web":"https://bimstorageacc.z4.web.core.windows.net/","blob":"https://bimstorageacc.blob.core.windows.net/","queue":"https://bimstorageacc.queue.core.windows.net/","table":"https://bimstorageacc.table.core.windows.net/","file":"https://bimstorageacc.file.core.windows.net/"},"primaryLocation":"westcentralus","statusOfPrimary":"available","secondaryLocation":"westus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://bimstorageacc-secondary.dfs.core.windows.net/","web":"https://bimstorageacc-secondary.z4.web.core.windows.net/","blob":"https://bimstorageacc-secondary.blob.core.windows.net/","queue":"https://bimstorageacc-secondary.queue.core.windows.net/","table":"https://bimstorageacc-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/yu-test-rg-westus/providers/Microsoft.Storage/storageAccounts/sfsfsfsssf","name":"sfsfsfsssf","type":"Microsoft.Storage/storageAccounts","location":"westcentralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-05T07:16:53.7141799Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-05T07:16:53.7141799Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-05T07:16:53.6829148Z","primaryEndpoints":{"blob":"https://sfsfsfsssf.blob.core.windows.net/","queue":"https://sfsfsfsssf.queue.core.windows.net/","table":"https://sfsfsfsssf.table.core.windows.net/","file":"https://sfsfsfsssf.file.core.windows.net/"},"primaryLocation":"westcentralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/yu-test-rg-westus/providers/Microsoft.Storage/storageAccounts/stststeset","name":"stststeset","type":"Microsoft.Storage/storageAccounts","location":"westcentralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-05T07:13:11.0482184Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-05T07:13:11.0482184Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-05T07:13:10.9856962Z","primaryEndpoints":{"dfs":"https://stststeset.dfs.core.windows.net/","web":"https://stststeset.z4.web.core.windows.net/","blob":"https://stststeset.blob.core.windows.net/","queue":"https://stststeset.queue.core.windows.net/","table":"https://stststeset.table.core.windows.net/","file":"https://stststeset.file.core.windows.net/"},"primaryLocation":"westcentralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/yu-test-rg-westus/providers/Microsoft.Storage/storageAccounts/yusawcu","name":"yusawcu","type":"Microsoft.Storage/storageAccounts","location":"westcentralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-26T09:39:00.0292799Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-26T09:39:00.0292799Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-02-26T09:38:59.9667703Z","primaryEndpoints":{"dfs":"https://yusawcu.dfs.core.windows.net/","web":"https://yusawcu.z4.web.core.windows.net/","blob":"https://yusawcu.blob.core.windows.net/","queue":"https://yusawcu.queue.core.windows.net/","table":"https://yusawcu.table.core.windows.net/","file":"https://yusawcu.file.core.windows.net/"},"primaryLocation":"westcentralus","statusOfPrimary":"available","secondaryLocation":"westus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://yusawcu-secondary.dfs.core.windows.net/","web":"https://yusawcu-secondary.z4.web.core.windows.net/","blob":"https://yusawcu-secondary.blob.core.windows.net/","queue":"https://yusawcu-secondary.queue.core.windows.net/","table":"https://yusawcu-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/storageextension","name":"storageextension","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-30T08:44:19.2476281Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-30T08:44:19.2476281Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-30T08:44:19.2007782Z","primaryEndpoints":{"dfs":"https://storageextension.dfs.core.windows.net/","web":"https://storageextension.z3.web.core.windows.net/","blob":"https://storageextension.blob.core.windows.net/","queue":"https://storageextension.queue.core.windows.net/","table":"https://storageextension.table.core.windows.net/","file":"https://storageextension.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available","secondaryLocation":"centraluseuap","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storageextension-secondary.dfs.core.windows.net/","web":"https://storageextension-secondary.z3.web.core.windows.net/","blob":"https://storageextension-secondary.blob.core.windows.net/","queue":"https://storageextension-secondary.queue.core.windows.net/","table":"https://storageextension-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/storagetest22","name":"storagetest22","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-21T03:43:07.5284378Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-21T03:43:07.5284378Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-21T03:43:07.4503168Z","primaryEndpoints":{"dfs":"https://storagetest22.dfs.core.windows.net/","web":"https://storagetest22.z3.web.core.windows.net/","blob":"https://storagetest22.blob.core.windows.net/","queue":"https://storagetest22.queue.core.windows.net/","table":"https://storagetest22.table.core.windows.net/","file":"https://storagetest22.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available","secondaryLocation":"centraluseuap","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagetest22-secondary.dfs.core.windows.net/","web":"https://storagetest22-secondary.z3.web.core.windows.net/","blob":"https://storagetest22-secondary.blob.core.windows.net/","queue":"https://storagetest22-secondary.queue.core.windows.net/","table":"https://storagetest22-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhadls","name":"zuhadls","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-20T03:10:14.5178215Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-20T03:10:14.5178215Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-20T03:10:14.4709025Z","primaryEndpoints":{"dfs":"https://zuhadls.dfs.core.windows.net/","web":"https://zuhadls.z3.web.core.windows.net/","blob":"https://zuhadls.blob.core.windows.net/","queue":"https://zuhadls.queue.core.windows.net/","table":"https://zuhadls.table.core.windows.net/","file":"https://zuhadls.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available","secondaryLocation":"centraluseuap","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zuhadls-secondary.dfs.core.windows.net/","web":"https://zuhadls-secondary.z3.web.core.windows.net/","blob":"https://zuhadls-secondary.blob.core.windows.net/","queue":"https://zuhadls-secondary.queue.core.windows.net/","table":"https://zuhadls-secondary.table.core.windows.net/"}}},{"identity":{"principalId":"d2e83740-1d90-4aa7-901c-97c510d4f7ec","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","type":"SystemAssigned"},"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhdefault","name":"zuhdefault","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"keyvaultproperties":{"currentVersionedKeyIdentifier":"https://zuhkeyvault.vault.azure.net/keys/zuhkey/2780bea583714f33b8051ea24f90a246","lastKeyRotationTimestamp":"2020-04-09T06:46:21.5968704Z","currentVersionedKeyExpirationTimestamp":"1970-01-01T00:00:00.0000000Z","keyvaulturi":"https://zuhkeyvault.vault.azure.net/","keyname":"zuhkey","keyversion":"2780bea583714f33b8051ea24f90a246"},"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-30T03:16:26.4697374Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-30T03:16:26.4697374Z"}},"keySource":"Microsoft.Keyvault"},"provisioningState":"Succeeded","creationTime":"2020-03-30T03:16:26.4228869Z","primaryEndpoints":{"blob":"https://zuhdefault.blob.core.windows.net/","queue":"https://zuhdefault.queue.core.windows.net/","table":"https://zuhdefault.table.core.windows.net/","file":"https://zuhdefault.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available","secondaryLocation":"centraluseuap","statusOfSecondary":"available","secondaryEndpoints":{"blob":"https://zuhdefault-secondary.blob.core.windows.net/","queue":"https://zuhdefault-secondary.queue.core.windows.net/","table":"https://zuhdefault-secondary.table.core.windows.net/"}}},{"identity":{"principalId":"1b643393-f35b-408e-b50c-2fbef882d353","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","type":"SystemAssigned"},"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhlrs","name":"zuhlrs","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"keyvaultproperties":{"currentVersionedKeyIdentifier":"https://zuhkeyvault.vault.azure.net/keys/storagekey/04704263f43241dca0ff99c3794fd8c7","lastKeyRotationTimestamp":"2020-04-15T08:06:44.8059437Z","currentVersionedKeyExpirationTimestamp":"1970-01-01T00:00:00.0000000Z","keyvaulturi":"https://zuhkeyvault.vault.azure.net/","keyname":"storagekey","keyversion":""},"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-18T01:57:52.8994530Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-18T01:57:52.8994530Z"}},"keySource":"Microsoft.Keyvault"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-18T01:57:52.8369202Z","primaryEndpoints":{"dfs":"https://zuhlrs.dfs.core.windows.net/","web":"https://zuhlrs.z3.web.core.windows.net/","blob":"https://zuhlrs.blob.core.windows.net/","queue":"https://zuhlrs.queue.core.windows.net/","table":"https://zuhlrs.table.core.windows.net/","file":"https://zuhlrs.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhors","name":"zuhors","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-30T05:15:21.5112485Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-30T05:15:21.5112485Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-30T05:15:21.4800200Z","primaryEndpoints":{"dfs":"https://zuhors.dfs.core.windows.net/","web":"https://zuhors.z3.web.core.windows.net/","blob":"https://zuhors.blob.core.windows.net/","queue":"https://zuhors.queue.core.windows.net/","table":"https://zuhors.table.core.windows.net/","file":"https://zuhors.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available","secondaryLocation":"centraluseuap","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zuhors-secondary.dfs.core.windows.net/","web":"https://zuhors-secondary.z3.web.core.windows.net/","blob":"https://zuhors-secondary.blob.core.windows.net/","queue":"https://zuhors-secondary.queue.core.windows.net/","table":"https://zuhors-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhstoragetest","name":"zuhstoragetest","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-20T07:16:48.8761196Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-20T07:16:48.8761196Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-20T07:16:48.8448300Z","primaryEndpoints":{"dfs":"https://zuhstoragetest.dfs.core.windows.net/","web":"https://zuhstoragetest.z3.web.core.windows.net/","blob":"https://zuhstoragetest.blob.core.windows.net/","queue":"https://zuhstoragetest.queue.core.windows.net/","table":"https://zuhstoragetest.table.core.windows.net/","file":"https://zuhstoragetest.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available","secondaryLocation":"centraluseuap","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zuhstoragetest-secondary.dfs.core.windows.net/","web":"https://zuhstoragetest-secondary.z3.web.core.windows.net/","blob":"https://zuhstoragetest-secondary.blob.core.windows.net/","queue":"https://zuhstoragetest-secondary.queue.core.windows.net/","table":"https://zuhstoragetest-secondary.table.core.windows.net/"}}}]}' + string: '{"value":[{"sku":{"name":"Premium_LRS","tier":"Premium"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli-beta/providers/Microsoft.Storage/storageAccounts/azureclibeta","name":"azureclibeta","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-11T10:11:09.8011543Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-11T10:11:09.8011543Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-11T10:11:09.7230107Z","primaryEndpoints":{"web":"https://azureclibeta.z13.web.core.windows.net/","blob":"https://azureclibeta.blob.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGZRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli-beta/providers/Microsoft.Storage/storageAccounts/azureclibetarelease","name":"azureclibetarelease","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-11T10:32:24.8036511Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-11T10:32:24.8036511Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-11T10:32:24.7099044Z","primaryEndpoints":{"dfs":"https://azureclibetarelease.dfs.core.windows.net/","web":"https://azureclibetarelease.z13.web.core.windows.net/","blob":"https://azureclibetarelease.blob.core.windows.net/","queue":"https://azureclibetarelease.queue.core.windows.net/","table":"https://azureclibetarelease.table.core.windows.net/","file":"https://azureclibetarelease.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://azureclibetarelease-secondary.dfs.core.windows.net/","web":"https://azureclibetarelease-secondary.z13.web.core.windows.net/","blob":"https://azureclibetarelease-secondary.blob.core.windows.net/","queue":"https://azureclibetarelease-secondary.queue.core.windows.net/","table":"https://azureclibetarelease-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azure-core-poc/providers/Microsoft.Storage/storageAccounts/azurecorepoc","name":"azurecorepoc","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-26T02:38:58.8233588Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-26T02:38:58.8233588Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-12-26T02:38:58.7452329Z","primaryEndpoints":{"dfs":"https://azurecorepoc.dfs.core.windows.net/","web":"https://azurecorepoc.z13.web.core.windows.net/","blob":"https://azurecorepoc.blob.core.windows.net/","queue":"https://azurecorepoc.queue.core.windows.net/","table":"https://azurecorepoc.table.core.windows.net/","file":"https://azurecorepoc.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://azurecorepoc-secondary.dfs.core.windows.net/","web":"https://azurecorepoc-secondary.z13.web.core.windows.net/","blob":"https://azurecorepoc-secondary.blob.core.windows.net/","queue":"https://azurecorepoc-secondary.queue.core.windows.net/","table":"https://azurecorepoc-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/bycvad","name":"bycvad","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-30T14:07:32.3655331Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-30T14:07:32.3655331Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-30T14:07:32.2873934Z","primaryEndpoints":{"dfs":"https://bycvad.dfs.core.windows.net/","web":"https://bycvad.z13.web.core.windows.net/","blob":"https://bycvad.blob.core.windows.net/","queue":"https://bycvad.queue.core.windows.net/","table":"https://bycvad.table.core.windows.net/","file":"https://bycvad.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitestresult/providers/Microsoft.Storage/storageAccounts/clitestresultstac","name":"clitestresultstac","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"minimumTlsVersion":"TLS1_0","allowBlobPublicAccess":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-15T06:20:52.7844389Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-15T06:20:52.7844389Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-15T06:20:52.6907255Z","primaryEndpoints":{"dfs":"https://clitestresultstac.dfs.core.windows.net/","web":"https://clitestresultstac.z13.web.core.windows.net/","blob":"https://clitestresultstac.blob.core.windows.net/","queue":"https://clitestresultstac.queue.core.windows.net/","table":"https://clitestresultstac.table.core.windows.net/","file":"https://clitestresultstac.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://clitestresultstac-secondary.dfs.core.windows.net/","web":"https://clitestresultstac-secondary.z13.web.core.windows.net/","blob":"https://clitestresultstac-secondary.blob.core.windows.net/","queue":"https://clitestresultstac-secondary.queue.core.windows.net/","table":"https://clitestresultstac-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/cyfgascfdf","name":"cyfgascfdf","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-04T05:27:55.5006933Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-04T05:27:55.5006933Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-08-04T05:27:55.4069561Z","primaryEndpoints":{"dfs":"https://cyfgascfdf.dfs.core.windows.net/","web":"https://cyfgascfdf.z13.web.core.windows.net/","blob":"https://cyfgascfdf.blob.core.windows.net/","queue":"https://cyfgascfdf.queue.core.windows.net/","table":"https://cyfgascfdf.table.core.windows.net/","file":"https://cyfgascfdf.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/dhsgcvkfg","name":"dhsgcvkfg","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[{"value":"13.66.128.0/17","action":"Allow"},{"value":"13.77.128.0/18","action":"Allow"},{"value":"13.104.129.64/26","action":"Allow"},{"value":"13.104.145.0/26","action":"Allow"},{"value":"13.104.208.192/26","action":"Allow"},{"value":"13.104.213.0/25","action":"Allow"},{"value":"13.104.220.0/25","action":"Allow"},{"value":"13.105.14.0/25","action":"Allow"},{"value":"13.105.14.128/26","action":"Allow"},{"value":"13.105.18.160/27","action":"Allow"},{"value":"13.105.36.0/27","action":"Allow"},{"value":"13.105.36.32/28","action":"Allow"},{"value":"13.105.36.64/27","action":"Allow"},{"value":"13.105.36.128/26","action":"Allow"},{"value":"13.105.66.64/26","action":"Allow"},{"value":"20.36.0.0/19","action":"Allow"},{"value":"20.38.99.0/24","action":"Allow"},{"value":"20.42.128.0/18","action":"Allow"},{"value":"20.47.62.0/23","action":"Allow"},{"value":"20.47.120.0/23","action":"Allow"},{"value":"20.51.64.0/18","action":"Allow"},{"value":"20.57.128.0/18","action":"Allow"},{"value":"20.59.0.0/18","action":"Allow"},{"value":"20.60.20.0/24","action":"Allow"},{"value":"20.150.68.0/24","action":"Allow"},{"value":"20.150.78.0/24","action":"Allow"},{"value":"20.150.87.0/24","action":"Allow"},{"value":"20.150.107.0/24","action":"Allow"},{"value":"20.187.0.0/18","action":"Allow"},{"value":"20.190.0.0/18","action":"Allow"},{"value":"20.190.133.0/24","action":"Allow"},{"value":"20.190.154.0/24","action":"Allow"},{"value":"20.191.64.0/18","action":"Allow"},{"value":"23.98.47.0/24","action":"Allow"},{"value":"23.102.192.0/21","action":"Allow"},{"value":"23.102.203.0/24","action":"Allow"},{"value":"23.103.64.32/27","action":"Allow"},{"value":"23.103.64.64/27","action":"Allow"},{"value":"23.103.66.0/23","action":"Allow"},{"value":"40.64.64.0/18","action":"Allow"},{"value":"40.64.128.0/21","action":"Allow"},{"value":"40.65.64.0/18","action":"Allow"},{"value":"40.77.136.0/28","action":"Allow"},{"value":"40.77.136.64/28","action":"Allow"},{"value":"40.77.139.128/25","action":"Allow"},{"value":"40.77.160.0/27","action":"Allow"},{"value":"40.77.162.0/24","action":"Allow"},{"value":"40.77.164.0/24","action":"Allow"},{"value":"40.77.169.0/24","action":"Allow"},{"value":"40.77.175.64/27","action":"Allow"},{"value":"40.77.180.0/23","action":"Allow"},{"value":"40.77.182.64/27","action":"Allow"},{"value":"40.77.185.128/25","action":"Allow"},{"value":"40.77.186.0/23","action":"Allow"},{"value":"40.77.198.128/25","action":"Allow"},{"value":"40.77.199.128/26","action":"Allow"},{"value":"40.77.200.0/25","action":"Allow"},{"value":"40.77.202.0/24","action":"Allow"},{"value":"40.77.224.96/27","action":"Allow"},{"value":"40.77.230.0/24","action":"Allow"},{"value":"40.77.232.128/25","action":"Allow"},{"value":"40.77.234.224/27","action":"Allow"},{"value":"40.77.236.128/27","action":"Allow"},{"value":"40.77.240.128/25","action":"Allow"},{"value":"40.77.241.0/24","action":"Allow"},{"value":"40.77.242.0/23","action":"Allow"},{"value":"40.77.247.0/24","action":"Allow"},{"value":"40.77.249.0/24","action":"Allow"},{"value":"40.77.250.0/24","action":"Allow"},{"value":"40.77.254.128/25","action":"Allow"},{"value":"40.78.208.32/30","action":"Allow"},{"value":"40.78.217.0/24","action":"Allow"},{"value":"40.78.240.0/20","action":"Allow"},{"value":"40.80.160.0/24","action":"Allow"},{"value":"40.82.36.0/22","action":"Allow"},{"value":"40.87.232.0/21","action":"Allow"},{"value":"40.90.16.192/26","action":"Allow"},{"value":"40.90.131.32/27","action":"Allow"},{"value":"40.90.132.48/28","action":"Allow"},{"value":"40.90.136.224/27","action":"Allow"},{"value":"40.90.138.208/28","action":"Allow"},{"value":"40.90.139.32/27","action":"Allow"},{"value":"40.90.146.32/27","action":"Allow"},{"value":"40.90.148.192/27","action":"Allow"},{"value":"40.90.153.0/26","action":"Allow"},{"value":"40.90.192.0/19","action":"Allow"},{"value":"40.91.0.0/22","action":"Allow"},{"value":"40.91.64.0/18","action":"Allow"},{"value":"40.91.160.0/19","action":"Allow"},{"value":"40.125.64.0/18","action":"Allow"},{"value":"40.126.5.0/24","action":"Allow"},{"value":"40.126.26.0/24","action":"Allow"},{"value":"51.141.160.0/19","action":"Allow"},{"value":"51.143.0.0/17","action":"Allow"},{"value":"52.96.11.0/24","action":"Allow"},{"value":"52.108.72.0/24","action":"Allow"},{"value":"52.108.93.0/24","action":"Allow"},{"value":"52.109.24.0/22","action":"Allow"},{"value":"52.111.246.0/24","action":"Allow"},{"value":"52.112.105.0/24","action":"Allow"},{"value":"52.112.109.0/24","action":"Allow"},{"value":"52.112.115.0/24","action":"Allow"},{"value":"52.114.148.0/22","action":"Allow"},{"value":"52.115.55.0/24","action":"Allow"},{"value":"52.136.0.0/22","action":"Allow"},{"value":"52.137.64.0/18","action":"Allow"},{"value":"52.143.64.0/18","action":"Allow"},{"value":"52.143.197.0/24","action":"Allow"},{"value":"52.143.211.0/24","action":"Allow"},{"value":"52.148.128.0/18","action":"Allow"},{"value":"52.149.0.0/18","action":"Allow"},{"value":"52.151.0.0/18","action":"Allow"},{"value":"52.156.64.0/18","action":"Allow"},{"value":"52.156.128.0/19","action":"Allow"},{"value":"52.158.224.0/19","action":"Allow"},{"value":"52.175.192.0/18","action":"Allow"},{"value":"52.183.0.0/17","action":"Allow"},{"value":"52.191.128.0/18","action":"Allow"},{"value":"52.229.0.0/18","action":"Allow"},{"value":"52.232.152.0/24","action":"Allow"},{"value":"52.233.64.0/18","action":"Allow"},{"value":"52.235.64.0/18","action":"Allow"},{"value":"52.239.148.128/25","action":"Allow"},{"value":"52.239.176.128/25","action":"Allow"},{"value":"52.239.193.0/24","action":"Allow"},{"value":"52.239.210.0/23","action":"Allow"},{"value":"52.239.236.0/23","action":"Allow"},{"value":"52.245.52.0/22","action":"Allow"},{"value":"52.246.192.0/18","action":"Allow"},{"value":"52.247.192.0/18","action":"Allow"},{"value":"52.250.0.0/17","action":"Allow"},{"value":"65.52.111.0/24","action":"Allow"},{"value":"65.55.32.128/28","action":"Allow"},{"value":"65.55.32.192/27","action":"Allow"},{"value":"65.55.32.224/28","action":"Allow"},{"value":"65.55.33.176/28","action":"Allow"},{"value":"65.55.33.192/28","action":"Allow"},{"value":"65.55.35.192/27","action":"Allow"},{"value":"65.55.44.8/29","action":"Allow"},{"value":"65.55.44.112/28","action":"Allow"},{"value":"65.55.51.0/24","action":"Allow"},{"value":"65.55.105.160/27","action":"Allow"},{"value":"65.55.106.192/28","action":"Allow"},{"value":"65.55.106.240/28","action":"Allow"},{"value":"65.55.107.0/28","action":"Allow"},{"value":"65.55.107.96/27","action":"Allow"},{"value":"65.55.110.0/24","action":"Allow"},{"value":"65.55.120.0/24","action":"Allow"},{"value":"65.55.207.0/24","action":"Allow"},{"value":"65.55.209.0/25","action":"Allow"},{"value":"65.55.210.0/24","action":"Allow"},{"value":"65.55.219.64/26","action":"Allow"},{"value":"65.55.250.0/24","action":"Allow"},{"value":"65.55.252.0/24","action":"Allow"},{"value":"70.37.0.0/21","action":"Allow"},{"value":"70.37.8.0/22","action":"Allow"},{"value":"70.37.16.0/20","action":"Allow"},{"value":"70.37.32.0/20","action":"Allow"},{"value":"104.44.89.128/27","action":"Allow"},{"value":"104.44.89.192/27","action":"Allow"},{"value":"104.44.95.0/28","action":"Allow"},{"value":"131.253.12.160/28","action":"Allow"},{"value":"131.253.12.228/30","action":"Allow"},{"value":"131.253.13.24/29","action":"Allow"},{"value":"131.253.13.88/30","action":"Allow"},{"value":"131.253.13.128/27","action":"Allow"},{"value":"131.253.14.4/30","action":"Allow"}],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-31T02:24:32.7434783Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-31T02:24:32.7434783Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-31T02:24:32.6653738Z","primaryEndpoints":{"dfs":"https://dhsgcvkfg.dfs.core.windows.net/","web":"https://dhsgcvkfg.z13.web.core.windows.net/","blob":"https://dhsgcvkfg.blob.core.windows.net/","queue":"https://dhsgcvkfg.queue.core.windows.net/","table":"https://dhsgcvkfg.table.core.windows.net/","file":"https://dhsgcvkfg.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/fytest/providers/Microsoft.Storage/storageAccounts/fystac","name":"fystac","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-08T03:10:13.4426715Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-08T03:10:13.4426715Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-08T03:10:13.3645539Z","primaryEndpoints":{"dfs":"https://fystac.dfs.core.windows.net/","web":"https://fystac.z13.web.core.windows.net/","blob":"https://fystac.blob.core.windows.net/","queue":"https://fystac.queue.core.windows.net/","table":"https://fystac.table.core.windows.net/","file":"https://fystac.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://fystac-secondary.dfs.core.windows.net/","web":"https://fystac-secondary.z13.web.core.windows.net/","blob":"https://fystac-secondary.blob.core.windows.net/","queue":"https://fystac-secondary.queue.core.windows.net/","table":"https://fystac-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/kdvgtafsjd","name":"kdvgtafsjd","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-30T15:33:49.2739863Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-30T15:33:49.2739863Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-30T15:33:49.1958406Z","primaryEndpoints":{"dfs":"https://kdvgtafsjd.dfs.core.windows.net/","web":"https://kdvgtafsjd.z13.web.core.windows.net/","blob":"https://kdvgtafsjd.blob.core.windows.net/","queue":"https://kdvgtafsjd.queue.core.windows.net/","table":"https://kdvgtafsjd.table.core.windows.net/","file":"https://kdvgtafsjd.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Storage/storageAccounts/mysasidsjaoj204","name":"mysasidsjaoj204","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-28T06:52:20.1427569Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-28T06:52:20.1427569Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-05-28T06:52:20.0646133Z","primaryEndpoints":{"dfs":"https://mysasidsjaoj204.dfs.core.windows.net/","web":"https://mysasidsjaoj204.z13.web.core.windows.net/","blob":"https://mysasidsjaoj204.blob.core.windows.net/","queue":"https://mysasidsjaoj204.queue.core.windows.net/","table":"https://mysasidsjaoj204.table.core.windows.net/","file":"https://mysasidsjaoj204.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Storage/storageAccounts/qianwenadls","name":"qianwenadls","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-01T10:11:06.0357634Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-01T10:11:06.0357634Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-01T10:11:05.9576622Z","primaryEndpoints":{"dfs":"https://qianwenadls.dfs.core.windows.net/","web":"https://qianwenadls.z13.web.core.windows.net/","blob":"https://qianwenadls.blob.core.windows.net/","queue":"https://qianwenadls.queue.core.windows.net/","table":"https://qianwenadls.table.core.windows.net/","file":"https://qianwenadls.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://qianwenadls-secondary.dfs.core.windows.net/","web":"https://qianwenadls-secondary.z13.web.core.windows.net/","blob":"https://qianwenadls-secondary.blob.core.windows.net/","queue":"https://qianwenadls-secondary.queue.core.windows.net/","table":"https://qianwenadls-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Storage/storageAccounts/qianwendev","name":"qianwendev","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Network/virtualNetworks/QIAN/subnets/default","action":"Allow","state":"Succeeded"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Network/virtualNetworks/qianwendev/subnets/default","action":"Allow","state":"Succeeded"}],"ipRules":[{"value":"23.45.1.0/24","action":"Allow"},{"value":"23.45.1.1/24","action":"Allow"}],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-12T03:29:28.0084761Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-12T03:29:28.0084761Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-02-12T03:29:27.9459854Z","primaryEndpoints":{"dfs":"https://qianwendev.dfs.core.windows.net/","web":"https://qianwendev.z13.web.core.windows.net/","blob":"https://qianwendev.blob.core.windows.net/","queue":"https://qianwendev.queue.core.windows.net/","table":"https://qianwendev.table.core.windows.net/","file":"https://qianwendev.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://qianwendev-secondary.dfs.core.windows.net/","web":"https://qianwendev-secondary.z13.web.core.windows.net/","blob":"https://qianwendev-secondary.blob.core.windows.net/","queue":"https://qianwendev-secondary.queue.core.windows.net/","table":"https://qianwendev-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Storage/storageAccounts/qianwenhpctarget","name":"qianwenhpctarget","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T07:09:20.3073299Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-06T07:09:20.3073299Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-06T07:09:20.2291899Z","primaryEndpoints":{"dfs":"https://qianwenhpctarget.dfs.core.windows.net/","web":"https://qianwenhpctarget.z13.web.core.windows.net/","blob":"https://qianwenhpctarget.blob.core.windows.net/","queue":"https://qianwenhpctarget.queue.core.windows.net/","table":"https://qianwenhpctarget.table.core.windows.net/","file":"https://qianwenhpctarget.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://qianwenhpctarget-secondary.dfs.core.windows.net/","web":"https://qianwenhpctarget-secondary.z13.web.core.windows.net/","blob":"https://qianwenhpctarget-secondary.blob.core.windows.net/","queue":"https://qianwenhpctarget-secondary.queue.core.windows.net/","table":"https://qianwenhpctarget-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_ZRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/savcktesf","name":"savcktesf","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-30T14:20:28.3593252Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-30T14:20:28.3593252Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-30T14:20:28.2811393Z","primaryEndpoints":{"dfs":"https://savcktesf.dfs.core.windows.net/","web":"https://savcktesf.z13.web.core.windows.net/","blob":"https://savcktesf.blob.core.windows.net/","queue":"https://savcktesf.queue.core.windows.net/","table":"https://savcktesf.table.core.windows.net/","file":"https://savcktesf.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/sfvtcakf","name":"sfvtcakf","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-03T05:40:57.2438526Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-03T05:40:57.2438526Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-08-03T05:40:57.1344759Z","primaryEndpoints":{"dfs":"https://sfvtcakf.dfs.core.windows.net/","web":"https://sfvtcakf.z13.web.core.windows.net/","blob":"https://sfvtcakf.blob.core.windows.net/","queue":"https://sfvtcakf.queue.core.windows.net/","table":"https://sfvtcakf.table.core.windows.net/","file":"https://sfvtcakf.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hackathon-cli-recommendation-rg/providers/Microsoft.Storage/storageAccounts/yueshi","name":"yueshi","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-04T07:09:49.4853538Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-04T07:09:49.4853538Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-08-04T07:09:49.3759728Z","primaryEndpoints":{"blob":"https://yueshi.blob.core.windows.net/","queue":"https://yueshi.queue.core.windows.net/","table":"https://yueshi.table.core.windows.net/","file":"https://yueshi.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/zhoxing","name":"zhoxing","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-15T08:53:45.4310180Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-15T08:53:45.4310180Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-15T08:53:45.3528671Z","primaryEndpoints":{"dfs":"https://zhoxing.dfs.core.windows.net/","web":"https://zhoxing.z13.web.core.windows.net/","blob":"https://zhoxing.blob.core.windows.net/","queue":"https://zhoxing.queue.core.windows.net/","table":"https://zhoxing.table.core.windows.net/","file":"https://zhoxing.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zhoxing-secondary.dfs.core.windows.net/","web":"https://zhoxing-secondary.z13.web.core.windows.net/","blob":"https://zhoxing-secondary.blob.core.windows.net/","queue":"https://zhoxing-secondary.queue.core.windows.net/","table":"https://zhoxing-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhadls","name":"zuhadls","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"minimumTlsVersion":"TLS1_0","allowBlobPublicAccess":true,"isHnsEnabled":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-24T03:15:58.4932756Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-24T03:15:58.4932756Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-24T03:15:58.3995048Z","primaryEndpoints":{"dfs":"https://zuhadls.dfs.core.windows.net/","web":"https://zuhadls.z13.web.core.windows.net/","blob":"https://zuhadls.blob.core.windows.net/","queue":"https://zuhadls.queue.core.windows.net/","table":"https://zuhadls.table.core.windows.net/","file":"https://zuhadls.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zuhadls-secondary.dfs.core.windows.net/","web":"https://zuhadls-secondary.z13.web.core.windows.net/","blob":"https://zuhadls-secondary.blob.core.windows.net/","queue":"https://zuhadls-secondary.queue.core.windows.net/","table":"https://zuhadls-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuheast","name":"zuheast","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Deny"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-16T02:03:47.0477434Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-16T02:03:47.0477434Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-16T02:03:46.9383659Z","primaryEndpoints":{"dfs":"https://zuheast.dfs.core.windows.net/","web":"https://zuheast.z13.web.core.windows.net/","blob":"https://zuheast.blob.core.windows.net/","queue":"https://zuheast.queue.core.windows.net/","table":"https://zuheast.table.core.windows.net/","file":"https://zuheast.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available","secondaryLocation":"westus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zuheast-secondary.dfs.core.windows.net/","web":"https://zuheast-secondary.z13.web.core.windows.net/","blob":"https://zuheast-secondary.blob.core.windows.net/","queue":"https://zuheast-secondary.queue.core.windows.net/","table":"https://zuheast-secondary.table.core.windows.net/"}}},{"sku":{"name":"Premium_LRS","tier":"Premium"},"kind":"FileStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhpremium","name":"zuhpremium","type":"Microsoft.Storage/storageAccounts","location":"eastus","tags":{},"properties":{"privateEndpointConnections":[],"largeFileSharesState":"Enabled","networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-17T06:37:44.0217858Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-17T06:37:44.0217858Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-07-17T06:37:43.9281994Z","primaryEndpoints":{"file":"https://zuhpremium.file.core.windows.net/"},"primaryLocation":"eastus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jlrg1/providers/Microsoft.Storage/storageAccounts/jlst","name":"jlst","type":"Microsoft.Storage/storageAccounts","location":"eastus2","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-14T12:05:01.5230050Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-14T12:05:01.5230050Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-14T12:05:01.4448881Z","primaryEndpoints":{"dfs":"https://jlst.dfs.core.windows.net/","web":"https://jlst.z20.web.core.windows.net/","blob":"https://jlst.blob.core.windows.net/","queue":"https://jlst.queue.core.windows.net/","table":"https://jlst.table.core.windows.net/","file":"https://jlst.file.core.windows.net/"},"primaryLocation":"eastus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jlrg1/providers/Microsoft.Storage/storageAccounts/tsiext","name":"tsiext","type":"Microsoft.Storage/storageAccounts","location":"eastus2","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-16T04:42:27.8695098Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-04-16T04:42:27.8695098Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-04-16T04:42:27.8070104Z","primaryEndpoints":{"dfs":"https://tsiext.dfs.core.windows.net/","web":"https://tsiext.z20.web.core.windows.net/","blob":"https://tsiext.blob.core.windows.net/","queue":"https://tsiext.queue.core.windows.net/","table":"https://tsiext.table.core.windows.net/","file":"https://tsiext.file.core.windows.net/"},"primaryLocation":"eastus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGZRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhtest","name":"zuhtest","type":"Microsoft.Storage/storageAccounts","location":"eastus2","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-12T05:41:52.2313290Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-12T05:41:52.2313290Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-08-12T05:41:52.1531917Z","primaryEndpoints":{"dfs":"https://zuhtest.dfs.core.windows.net/","web":"https://zuhtest.z20.web.core.windows.net/","blob":"https://zuhtest.blob.core.windows.net/","queue":"https://zuhtest.queue.core.windows.net/","table":"https://zuhtest.table.core.windows.net/","file":"https://zuhtest.file.core.windows.net/"},"primaryLocation":"eastus2","statusOfPrimary":"available","secondaryLocation":"centralus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zuhtest-secondary.dfs.core.windows.net/","web":"https://zuhtest-secondary.z20.web.core.windows.net/","blob":"https://zuhtest-secondary.blob.core.windows.net/","queue":"https://zuhtest-secondary.queue.core.windows.net/","table":"https://zuhtest-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/azhoxingtest9851","name":"azhoxingtest9851","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{"hidden-DevTestLabs-LabUId":"6e279161-d008-42b7-90a1-6801fc4bc4ca"},"properties":{"privateEndpointConnections":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/azhoxingtest9851/privateEndpointConnections/azhoxingtest9851.6911cd49-cfc1-4bcf-887b-6941ff2b8756","name":"azhoxingtest9851.6911cd49-cfc1-4bcf-887b-6941ff2b8756","type":"Microsoft.Storage/storageAccounts/privateEndpointConnections","properties":{"provisioningState":"Succeeded","privateEndpoint":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuhcentral/providers/Microsoft.Network/privateEndpoints/test"},"privateLinkServiceConnectionState":{"status":"Approved","description":"Auto-Approved","actionRequired":"None"}}}],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-21T05:43:15.2811036Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-21T05:43:15.2811036Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-02-21T05:43:15.2029670Z","primaryEndpoints":{"dfs":"https://azhoxingtest9851.dfs.core.windows.net/","web":"https://azhoxingtest9851.z22.web.core.windows.net/","blob":"https://azhoxingtest9851.blob.core.windows.net/","queue":"https://azhoxingtest9851.queue.core.windows.net/","table":"https://azhoxingtest9851.table.core.windows.net/","file":"https://azhoxingtest9851.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgcpdkal7yi2pgkmd5bo5p3buxmv65q2dqkpas44uvzxlnb5ped64duf2oyn64o45hp/providers/Microsoft.Storage/storageAccounts/clitest5y4tpgt7apfmaglj3","name":"clitest5y4tpgt7apfmaglj3","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T02:29:24.7587974Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T02:29:24.7587974Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-08-26T02:29:24.6649968Z","primaryEndpoints":{"blob":"https://clitest5y4tpgt7apfmaglj3.blob.core.windows.net/","queue":"https://clitest5y4tpgt7apfmaglj3.queue.core.windows.net/","table":"https://clitest5y4tpgt7apfmaglj3.table.core.windows.net/","file":"https://clitest5y4tpgt7apfmaglj3.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgx3n7tcpo5ehojmrzl5eidkafxqbcrkmsyj6jqyksircv6a624724cpwmwhmjtmu47/providers/Microsoft.Storage/storageAccounts/clitesthmvxtznocwuyui3b4","name":"clitesthmvxtznocwuyui3b4","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T02:28:45.9276930Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T02:28:45.9276930Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-08-26T02:28:45.8651780Z","primaryEndpoints":{"blob":"https://clitesthmvxtznocwuyui3b4.blob.core.windows.net/","queue":"https://clitesthmvxtznocwuyui3b4.queue.core.windows.net/","table":"https://clitesthmvxtznocwuyui3b4.table.core.windows.net/","file":"https://clitesthmvxtznocwuyui3b4.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Premium_LRS","tier":"Premium"},"kind":"BlockBlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgmobnnnyf77m7t4hzjm6e7zjjhmxlq2hsobfrvw4zsnfxg6ezetijp7luqim3ukq7j/providers/Microsoft.Storage/storageAccounts/clitestjshrnzbbzhnalq2dt","name":"clitestjshrnzbbzhnalq2dt","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T02:35:41.6821830Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T02:35:41.6821830Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-08-26T02:35:41.6040586Z","primaryEndpoints":{"dfs":"https://clitestjshrnzbbzhnalq2dt.dfs.core.windows.net/","web":"https://clitestjshrnzbbzhnalq2dt.z22.web.core.windows.net/","blob":"https://clitestjshrnzbbzhnalq2dt.blob.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Premium_LRS","tier":"Premium"},"kind":"BlockBlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgcpdkal7yi2pgkmd5bo5p3buxmv65q2dqkpas44uvzxlnb5ped64duf2oyn64o45hp/providers/Microsoft.Storage/storageAccounts/clitestysimuoccvi4c5mgex","name":"clitestysimuoccvi4c5mgex","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T02:29:51.3369361Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T02:29:51.3369361Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-08-26T02:29:51.2431652Z","primaryEndpoints":{"dfs":"https://clitestysimuoccvi4c5mgex.dfs.core.windows.net/","web":"https://clitestysimuoccvi4c5mgex.z22.web.core.windows.net/","blob":"https://clitestysimuoccvi4c5mgex.blob.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgmobnnnyf77m7t4hzjm6e7zjjhmxlq2hsobfrvw4zsnfxg6ezetijp7luqim3ukq7j/providers/Microsoft.Storage/storageAccounts/clitestysmawa42fmgyhyofl","name":"clitestysmawa42fmgyhyofl","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T02:35:16.8056086Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T02:35:16.8056086Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-08-26T02:35:16.7274930Z","primaryEndpoints":{"blob":"https://clitestysmawa42fmgyhyofl.blob.core.windows.net/","queue":"https://clitestysmawa42fmgyhyofl.queue.core.windows.net/","table":"https://clitestysmawa42fmgyhyofl.table.core.windows.net/","file":"https://clitestysmawa42fmgyhyofl.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-bimdatabricks0617_2-2ganrohazz59j/providers/Microsoft.Storage/storageAccounts/dbstorage2y7hwbxdze24o","name":"dbstorage2y7hwbxdze24o","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-17T09:02:57.7540092Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-17T09:02:57.7540092Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-17T09:02:57.6915310Z","primaryEndpoints":{"dfs":"https://dbstorage2y7hwbxdze24o.dfs.core.windows.net/","blob":"https://dbstorage2y7hwbxdze24o.blob.core.windows.net/","table":"https://dbstorage2y7hwbxdze24o.table.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available","secondaryLocation":"eastus","statusOfSecondary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-bimworkspace-trp053b370fgs/providers/Microsoft.Storage/storageAccounts/dbstoragean3z7e5vagldw","name":"dbstoragean3z7e5vagldw","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-12T10:06:41.7669227Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-12T10:06:41.7669227Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-12T10:06:41.6888438Z","primaryEndpoints":{"dfs":"https://dbstoragean3z7e5vagldw.dfs.core.windows.net/","blob":"https://dbstoragean3z7e5vagldw.blob.core.windows.net/","table":"https://dbstoragean3z7e5vagldw.table.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available","secondaryLocation":"eastus","statusOfSecondary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/getitxxx6472qnxl3vv5o","name":"getitxxx6472qnxl3vv5o","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{"projectName":"get.it"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Deny"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-14T02:16:44.4831310Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-14T02:16:44.4831310Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-08-14T02:16:44.3893785Z","primaryEndpoints":{"blob":"https://getitxxx6472qnxl3vv5o.blob.core.windows.net/","queue":"https://getitxxx6472qnxl3vv5o.queue.core.windows.net/","table":"https://getitxxx6472qnxl3vv5o.table.core.windows.net/","file":"https://getitxxx6472qnxl3vv5o.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/fytest/providers/Microsoft.Storage/storageAccounts/sharedvmextension","name":"sharedvmextension","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"minimumTlsVersion":"TLS1_0","allowBlobPublicAccess":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-06T03:37:04.8004229Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-06T03:37:04.8004229Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-06T03:37:04.7066555Z","primaryEndpoints":{"dfs":"https://sharedvmextension.dfs.core.windows.net/","web":"https://sharedvmextension.z22.web.core.windows.net/","blob":"https://sharedvmextension.blob.core.windows.net/","queue":"https://sharedvmextension.queue.core.windows.net/","table":"https://sharedvmextension.table.core.windows.net/","file":"https://sharedvmextension.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available","secondaryLocation":"eastus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://sharedvmextension-secondary.dfs.core.windows.net/","web":"https://sharedvmextension-secondary.z22.web.core.windows.net/","blob":"https://sharedvmextension-secondary.blob.core.windows.net/","queue":"https://sharedvmextension-secondary.queue.core.windows.net/","table":"https://sharedvmextension-secondary.table.core.windows.net/"}}},{"sku":{"name":"Premium_LRS","tier":"Premium"},"kind":"BlockBlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zhoxing-test/providers/Microsoft.Storage/storageAccounts/zhoxingtest","name":"zhoxingtest","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-04T09:47:33.0768819Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-04T09:47:33.0768819Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-06-04T09:47:32.9831234Z","primaryEndpoints":{"dfs":"https://zhoxingtest.dfs.core.windows.net/","web":"https://zhoxingtest.z22.web.core.windows.net/","blob":"https://zhoxingtest.blob.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhwest","name":"zuhwest","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[{"value":"207.68.174.192/28","action":"Allow"}],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-30T06:39:49.3101796Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-30T06:39:49.3101796Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-30T06:39:49.2320564Z","primaryEndpoints":{"dfs":"https://zuhwest.dfs.core.windows.net/","web":"https://zuhwest.z22.web.core.windows.net/","blob":"https://zuhwest.blob.core.windows.net/","queue":"https://zuhwest.queue.core.windows.net/","table":"https://zuhwest.table.core.windows.net/","file":"https://zuhwest.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/AzureSDKTest_reserved/providers/Microsoft.Storage/storageAccounts/azuresdktest","name":"azuresdktest","type":"Microsoft.Storage/storageAccounts","location":"eastasia","tags":{},"properties":{"privateEndpointConnections":[],"minimumTlsVersion":"TLS1_0","allowBlobPublicAccess":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-12T06:32:07.1157877Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-12T06:32:07.1157877Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-08-12T06:32:07.0689199Z","primaryEndpoints":{"dfs":"https://azuresdktest.dfs.core.windows.net/","web":"https://azuresdktest.z7.web.core.windows.net/","blob":"https://azuresdktest.blob.core.windows.net/","queue":"https://azuresdktest.queue.core.windows.net/","table":"https://azuresdktest.table.core.windows.net/","file":"https://azuresdktest.file.core.windows.net/"},"primaryLocation":"eastasia","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg6i4hl6iakg/providers/Microsoft.Storage/storageAccounts/clitestu3p7a7ib4n4y7gt4m","name":"clitestu3p7a7ib4n4y7gt4m","type":"Microsoft.Storage/storageAccounts","location":"southeastasia","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-30T01:51:53.0814418Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-30T01:51:53.0814418Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2019-12-30T01:51:53.0189478Z","primaryEndpoints":{"blob":"https://clitestu3p7a7ib4n4y7gt4m.blob.core.windows.net/","queue":"https://clitestu3p7a7ib4n4y7gt4m.queue.core.windows.net/","table":"https://clitestu3p7a7ib4n4y7gt4m.table.core.windows.net/","file":"https://clitestu3p7a7ib4n4y7gt4m.file.core.windows.net/"},"primaryLocation":"southeastasia","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/feng-cli-rg/providers/Microsoft.Storage/storageAccounts/fengcloudsa","name":"fengcloudsa","type":"Microsoft.Storage/storageAccounts","location":"southeastasia","tags":{"ms-resource-usage":"azure-cloud-shell"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-24T02:57:50.9889021Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-24T02:57:50.9889021Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-24T02:57:50.9264022Z","primaryEndpoints":{"dfs":"https://fengcloudsa.dfs.core.windows.net/","web":"https://fengcloudsa.z23.web.core.windows.net/","blob":"https://fengcloudsa.blob.core.windows.net/","queue":"https://fengcloudsa.queue.core.windows.net/","table":"https://fengcloudsa.table.core.windows.net/","file":"https://fengcloudsa.file.core.windows.net/"},"primaryLocation":"southeastasia","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jlrg1/providers/Microsoft.Storage/storageAccounts/jlcsst","name":"jlcsst","type":"Microsoft.Storage/storageAccounts","location":"southeastasia","tags":{"ms-resource-usage":"azure-cloud-shell"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-02T07:15:45.8047726Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-02T07:15:45.8047726Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-02T07:15:45.7422455Z","primaryEndpoints":{"dfs":"https://jlcsst.dfs.core.windows.net/","web":"https://jlcsst.z23.web.core.windows.net/","blob":"https://jlcsst.blob.core.windows.net/","queue":"https://jlcsst.queue.core.windows.net/","table":"https://jlcsst.table.core.windows.net/","file":"https://jlcsst.file.core.windows.net/"},"primaryLocation":"southeastasia","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qianwens/providers/Microsoft.Storage/storageAccounts/qianwensdiag","name":"qianwensdiag","type":"Microsoft.Storage/storageAccounts","location":"southeastasia","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-04T07:17:09.1138103Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-04T07:17:09.1138103Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-02-04T07:17:09.0514178Z","primaryEndpoints":{"blob":"https://qianwensdiag.blob.core.windows.net/","queue":"https://qianwensdiag.queue.core.windows.net/","table":"https://qianwensdiag.table.core.windows.net/","file":"https://qianwensdiag.file.core.windows.net/"},"primaryLocation":"southeastasia","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/yeming/providers/Microsoft.Storage/storageAccounts/yeming","name":"yeming","type":"Microsoft.Storage/storageAccounts","location":"southeastasia","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-04T06:41:07.4012554Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-12-04T06:41:07.4012554Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-12-04T06:41:07.3699884Z","primaryEndpoints":{"dfs":"https://yeming.dfs.core.windows.net/","web":"https://yeming.z23.web.core.windows.net/","blob":"https://yeming.blob.core.windows.net/","queue":"https://yeming.queue.core.windows.net/","table":"https://yeming.table.core.windows.net/","file":"https://yeming.file.core.windows.net/"},"primaryLocation":"southeastasia","statusOfPrimary":"available","secondaryLocation":"eastasia","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://yeming-secondary.dfs.core.windows.net/","web":"https://yeming-secondary.z23.web.core.windows.net/","blob":"https://yeming-secondary.blob.core.windows.net/","queue":"https://yeming-secondary.queue.core.windows.net/","table":"https://yeming-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bim-rg/providers/Microsoft.Storage/storageAccounts/bimrgdiag","name":"bimrgdiag","type":"Microsoft.Storage/storageAccounts","location":"japaneast","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-12T15:04:32.1018377Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-02-12T15:04:32.1018377Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-02-12T15:04:32.0706109Z","primaryEndpoints":{"blob":"https://bimrgdiag.blob.core.windows.net/","queue":"https://bimrgdiag.queue.core.windows.net/","table":"https://bimrgdiag.table.core.windows.net/","file":"https://bimrgdiag.file.core.windows.net/"},"primaryLocation":"japaneast","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/hasfcthfd","name":"hasfcthfd","type":"Microsoft.Storage/storageAccounts","location":"southcentralus","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-31T02:02:58.2702198Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-31T02:02:58.2702198Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-31T02:02:58.1920580Z","primaryEndpoints":{"dfs":"https://hasfcthfd.dfs.core.windows.net/","web":"https://hasfcthfd.z21.web.core.windows.net/","blob":"https://hasfcthfd.blob.core.windows.net/","queue":"https://hasfcthfd.queue.core.windows.net/","table":"https://hasfcthfd.table.core.windows.net/","file":"https://hasfcthfd.file.core.windows.net/"},"primaryLocation":"southcentralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-bimdatabricks2-qudpew5skdhvm/providers/Microsoft.Storage/storageAccounts/dbstorage735bkp4vtuyxc","name":"dbstorage735bkp4vtuyxc","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-17T08:11:57.0329028Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-17T08:11:57.0329028Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-17T08:11:56.9235224Z","primaryEndpoints":{"dfs":"https://dbstorage735bkp4vtuyxc.dfs.core.windows.net/","blob":"https://dbstorage735bkp4vtuyxc.blob.core.windows.net/","table":"https://dbstorage735bkp4vtuyxc.table.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-bimdatabricks3-t5xjlwnw4zlms/providers/Microsoft.Storage/storageAccounts/dbstorageh2ox2v5vtlrgs","name":"dbstorageh2ox2v5vtlrgs","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-17T08:49:27.5223382Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-17T08:49:27.5223382Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-17T08:49:27.4129693Z","primaryEndpoints":{"dfs":"https://dbstorageh2ox2v5vtlrgs.dfs.core.windows.net/","blob":"https://dbstorageh2ox2v5vtlrgs.blob.core.windows.net/","table":"https://dbstorageh2ox2v5vtlrgs.table.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-bimdatabricks-poumgta45nleo/providers/Microsoft.Storage/storageAccounts/dbstoragei4eqatrzykddu","name":"dbstoragei4eqatrzykddu","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-15T03:37:56.9362632Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-15T03:37:56.9362632Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-05-15T03:37:56.8425143Z","primaryEndpoints":{"dfs":"https://dbstoragei4eqatrzykddu.dfs.core.windows.net/","blob":"https://dbstoragei4eqatrzykddu.blob.core.windows.net/","table":"https://dbstoragei4eqatrzykddu.table.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-bimdatabricks4-csucgskux7byw/providers/Microsoft.Storage/storageAccounts/dbstoragewjw6osdyddzoo","name":"dbstoragewjw6osdyddzoo","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-02T07:22:12.8616393Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-02T07:22:12.8616393Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-02T07:22:12.7834766Z","primaryEndpoints":{"dfs":"https://dbstoragewjw6osdyddzoo.dfs.core.windows.net/","blob":"https://dbstoragewjw6osdyddzoo.blob.core.windows.net/","table":"https://dbstoragewjw6osdyddzoo.table.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/feng-cli-rg/providers/Microsoft.Storage/storageAccounts/extmigrate","name":"extmigrate","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-16T08:26:10.6796218Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-16T08:26:10.6796218Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-03-16T08:26:10.5858998Z","primaryEndpoints":{"blob":"https://extmigrate.blob.core.windows.net/","queue":"https://extmigrate.queue.core.windows.net/","table":"https://extmigrate.table.core.windows.net/","file":"https://extmigrate.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"blob":"https://extmigrate-secondary.blob.core.windows.net/","queue":"https://extmigrate-secondary.queue.core.windows.net/","table":"https://extmigrate-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/feng-cli-rg/providers/Microsoft.Storage/storageAccounts/fengsa","name":"fengsa","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-01-06T04:33:22.9379802Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-01-06T04:33:22.9379802Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-01-06T04:33:22.8754625Z","primaryEndpoints":{"dfs":"https://fengsa.dfs.core.windows.net/","web":"https://fengsa.z19.web.core.windows.net/","blob":"https://fengsa.blob.core.windows.net/","queue":"https://fengsa.queue.core.windows.net/","table":"https://fengsa.table.core.windows.net/","file":"https://fengsa.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://fengsa-secondary.dfs.core.windows.net/","web":"https://fengsa-secondary.z19.web.core.windows.net/","blob":"https://fengsa-secondary.blob.core.windows.net/","queue":"https://fengsa-secondary.queue.core.windows.net/","table":"https://fengsa-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bim-rg/providers/Microsoft.Storage/storageAccounts/storageaccountbimrg8277","name":"storageaccountbimrg8277","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-11T08:59:39.9591906Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-11T08:59:39.9591906Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-05-11T08:59:39.8810735Z","primaryEndpoints":{"blob":"https://storageaccountbimrg8277.blob.core.windows.net/","queue":"https://storageaccountbimrg8277.queue.core.windows.net/","table":"https://storageaccountbimrg8277.table.core.windows.net/","file":"https://storageaccountbimrg8277.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bim-rg/providers/Microsoft.Storage/storageAccounts/storageaccountbimrg83e4","name":"storageaccountbimrg83e4","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-12T06:39:23.8091026Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-12T06:39:23.8091026Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-05-12T06:39:23.7153914Z","primaryEndpoints":{"blob":"https://storageaccountbimrg83e4.blob.core.windows.net/","queue":"https://storageaccountbimrg83e4.queue.core.windows.net/","table":"https://storageaccountbimrg83e4.table.core.windows.net/","file":"https://storageaccountbimrg83e4.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bim-rg-function/providers/Microsoft.Storage/storageAccounts/storageaccountbimrg9eb7","name":"storageaccountbimrg9eb7","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-12T07:12:06.5485336Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-12T07:12:06.5485336Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-05-12T07:12:06.4547831Z","primaryEndpoints":{"blob":"https://storageaccountbimrg9eb7.blob.core.windows.net/","queue":"https://storageaccountbimrg9eb7.queue.core.windows.net/","table":"https://storageaccountbimrg9eb7.table.core.windows.net/","file":"https://storageaccountbimrg9eb7.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bim-rg/providers/Microsoft.Storage/storageAccounts/storageaccountbimrga78a","name":"storageaccountbimrga78a","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-11T08:52:23.3776162Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-11T08:52:23.3776162Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-05-11T08:52:23.2838874Z","primaryEndpoints":{"blob":"https://storageaccountbimrga78a.blob.core.windows.net/","queue":"https://storageaccountbimrga78a.queue.core.windows.net/","table":"https://storageaccountbimrga78a.table.core.windows.net/","file":"https://storageaccountbimrga78a.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bim-rg-function/providers/Microsoft.Storage/storageAccounts/storageaccountbimrgb117","name":"storageaccountbimrgb117","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-12T07:36:43.2037375Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-05-12T07:36:43.2037375Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-05-12T07:36:43.1099658Z","primaryEndpoints":{"blob":"https://storageaccountbimrgb117.blob.core.windows.net/","queue":"https://storageaccountbimrgb117.queue.core.windows.net/","table":"https://storageaccountbimrgb117.table.core.windows.net/","file":"https://storageaccountbimrgb117.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hackathon-cli-recommendation-rg/providers/Microsoft.Storage/storageAccounts/storageaccounthacka8516","name":"storageaccounthacka8516","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-28T07:01:29.5992127Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-28T07:01:29.5992127Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-07-28T07:01:29.4898032Z","primaryEndpoints":{"blob":"https://storageaccounthacka8516.blob.core.windows.net/","queue":"https://storageaccounthacka8516.queue.core.windows.net/","table":"https://storageaccounthacka8516.table.core.windows.net/","file":"https://storageaccounthacka8516.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro1","name":"storagesfrepro1","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:07:42.2058942Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:07:42.2058942Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:07:42.1277444Z","primaryEndpoints":{"dfs":"https://storagesfrepro1.dfs.core.windows.net/","web":"https://storagesfrepro1.z19.web.core.windows.net/","blob":"https://storagesfrepro1.blob.core.windows.net/","queue":"https://storagesfrepro1.queue.core.windows.net/","table":"https://storagesfrepro1.table.core.windows.net/","file":"https://storagesfrepro1.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro1-secondary.dfs.core.windows.net/","web":"https://storagesfrepro1-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro1-secondary.blob.core.windows.net/","queue":"https://storagesfrepro1-secondary.queue.core.windows.net/","table":"https://storagesfrepro1-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro10","name":"storagesfrepro10","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:14:00.8753334Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:14:00.8753334Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:14:00.7815921Z","primaryEndpoints":{"dfs":"https://storagesfrepro10.dfs.core.windows.net/","web":"https://storagesfrepro10.z19.web.core.windows.net/","blob":"https://storagesfrepro10.blob.core.windows.net/","queue":"https://storagesfrepro10.queue.core.windows.net/","table":"https://storagesfrepro10.table.core.windows.net/","file":"https://storagesfrepro10.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro10-secondary.dfs.core.windows.net/","web":"https://storagesfrepro10-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro10-secondary.blob.core.windows.net/","queue":"https://storagesfrepro10-secondary.queue.core.windows.net/","table":"https://storagesfrepro10-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro11","name":"storagesfrepro11","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:14:28.9859417Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:14:28.9859417Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:14:28.8609347Z","primaryEndpoints":{"dfs":"https://storagesfrepro11.dfs.core.windows.net/","web":"https://storagesfrepro11.z19.web.core.windows.net/","blob":"https://storagesfrepro11.blob.core.windows.net/","queue":"https://storagesfrepro11.queue.core.windows.net/","table":"https://storagesfrepro11.table.core.windows.net/","file":"https://storagesfrepro11.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro11-secondary.dfs.core.windows.net/","web":"https://storagesfrepro11-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro11-secondary.blob.core.windows.net/","queue":"https://storagesfrepro11-secondary.queue.core.windows.net/","table":"https://storagesfrepro11-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro12","name":"storagesfrepro12","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:15:15.6785362Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:15:15.6785362Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:15:15.5848345Z","primaryEndpoints":{"dfs":"https://storagesfrepro12.dfs.core.windows.net/","web":"https://storagesfrepro12.z19.web.core.windows.net/","blob":"https://storagesfrepro12.blob.core.windows.net/","queue":"https://storagesfrepro12.queue.core.windows.net/","table":"https://storagesfrepro12.table.core.windows.net/","file":"https://storagesfrepro12.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro12-secondary.dfs.core.windows.net/","web":"https://storagesfrepro12-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro12-secondary.blob.core.windows.net/","queue":"https://storagesfrepro12-secondary.queue.core.windows.net/","table":"https://storagesfrepro12-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro13","name":"storagesfrepro13","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:16:55.7609361Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:16:55.7609361Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:16:55.6671828Z","primaryEndpoints":{"dfs":"https://storagesfrepro13.dfs.core.windows.net/","web":"https://storagesfrepro13.z19.web.core.windows.net/","blob":"https://storagesfrepro13.blob.core.windows.net/","queue":"https://storagesfrepro13.queue.core.windows.net/","table":"https://storagesfrepro13.table.core.windows.net/","file":"https://storagesfrepro13.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro13-secondary.dfs.core.windows.net/","web":"https://storagesfrepro13-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro13-secondary.blob.core.windows.net/","queue":"https://storagesfrepro13-secondary.queue.core.windows.net/","table":"https://storagesfrepro13-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro14","name":"storagesfrepro14","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:17:40.7661469Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:17:40.7661469Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:17:40.6880204Z","primaryEndpoints":{"dfs":"https://storagesfrepro14.dfs.core.windows.net/","web":"https://storagesfrepro14.z19.web.core.windows.net/","blob":"https://storagesfrepro14.blob.core.windows.net/","queue":"https://storagesfrepro14.queue.core.windows.net/","table":"https://storagesfrepro14.table.core.windows.net/","file":"https://storagesfrepro14.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro14-secondary.dfs.core.windows.net/","web":"https://storagesfrepro14-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro14-secondary.blob.core.windows.net/","queue":"https://storagesfrepro14-secondary.queue.core.windows.net/","table":"https://storagesfrepro14-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro15","name":"storagesfrepro15","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:18:52.1812445Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:18:52.1812445Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:18:52.0718543Z","primaryEndpoints":{"dfs":"https://storagesfrepro15.dfs.core.windows.net/","web":"https://storagesfrepro15.z19.web.core.windows.net/","blob":"https://storagesfrepro15.blob.core.windows.net/","queue":"https://storagesfrepro15.queue.core.windows.net/","table":"https://storagesfrepro15.table.core.windows.net/","file":"https://storagesfrepro15.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro15-secondary.dfs.core.windows.net/","web":"https://storagesfrepro15-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro15-secondary.blob.core.windows.net/","queue":"https://storagesfrepro15-secondary.queue.core.windows.net/","table":"https://storagesfrepro15-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro16","name":"storagesfrepro16","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:19:33.1863807Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:19:33.1863807Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:19:33.0770034Z","primaryEndpoints":{"dfs":"https://storagesfrepro16.dfs.core.windows.net/","web":"https://storagesfrepro16.z19.web.core.windows.net/","blob":"https://storagesfrepro16.blob.core.windows.net/","queue":"https://storagesfrepro16.queue.core.windows.net/","table":"https://storagesfrepro16.table.core.windows.net/","file":"https://storagesfrepro16.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro16-secondary.dfs.core.windows.net/","web":"https://storagesfrepro16-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro16-secondary.blob.core.windows.net/","queue":"https://storagesfrepro16-secondary.queue.core.windows.net/","table":"https://storagesfrepro16-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro17","name":"storagesfrepro17","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:04:23.5553513Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:04:23.5553513Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:04:23.4771469Z","primaryEndpoints":{"dfs":"https://storagesfrepro17.dfs.core.windows.net/","web":"https://storagesfrepro17.z19.web.core.windows.net/","blob":"https://storagesfrepro17.blob.core.windows.net/","queue":"https://storagesfrepro17.queue.core.windows.net/","table":"https://storagesfrepro17.table.core.windows.net/","file":"https://storagesfrepro17.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro17-secondary.dfs.core.windows.net/","web":"https://storagesfrepro17-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro17-secondary.blob.core.windows.net/","queue":"https://storagesfrepro17-secondary.queue.core.windows.net/","table":"https://storagesfrepro17-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro18","name":"storagesfrepro18","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:04:53.8320772Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:04:53.8320772Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:04:53.7383176Z","primaryEndpoints":{"dfs":"https://storagesfrepro18.dfs.core.windows.net/","web":"https://storagesfrepro18.z19.web.core.windows.net/","blob":"https://storagesfrepro18.blob.core.windows.net/","queue":"https://storagesfrepro18.queue.core.windows.net/","table":"https://storagesfrepro18.table.core.windows.net/","file":"https://storagesfrepro18.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro18-secondary.dfs.core.windows.net/","web":"https://storagesfrepro18-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro18-secondary.blob.core.windows.net/","queue":"https://storagesfrepro18-secondary.queue.core.windows.net/","table":"https://storagesfrepro18-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro19","name":"storagesfrepro19","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:05:26.3650238Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:05:26.3650238Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:05:26.2556326Z","primaryEndpoints":{"dfs":"https://storagesfrepro19.dfs.core.windows.net/","web":"https://storagesfrepro19.z19.web.core.windows.net/","blob":"https://storagesfrepro19.blob.core.windows.net/","queue":"https://storagesfrepro19.queue.core.windows.net/","table":"https://storagesfrepro19.table.core.windows.net/","file":"https://storagesfrepro19.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro19-secondary.dfs.core.windows.net/","web":"https://storagesfrepro19-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro19-secondary.blob.core.windows.net/","queue":"https://storagesfrepro19-secondary.queue.core.windows.net/","table":"https://storagesfrepro19-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro2","name":"storagesfrepro2","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:08:45.8498203Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:08:45.8498203Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:08:45.7717196Z","primaryEndpoints":{"dfs":"https://storagesfrepro2.dfs.core.windows.net/","web":"https://storagesfrepro2.z19.web.core.windows.net/","blob":"https://storagesfrepro2.blob.core.windows.net/","queue":"https://storagesfrepro2.queue.core.windows.net/","table":"https://storagesfrepro2.table.core.windows.net/","file":"https://storagesfrepro2.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro2-secondary.dfs.core.windows.net/","web":"https://storagesfrepro2-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro2-secondary.blob.core.windows.net/","queue":"https://storagesfrepro2-secondary.queue.core.windows.net/","table":"https://storagesfrepro2-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro20","name":"storagesfrepro20","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:07.4295934Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:07.4295934Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:06:07.3358422Z","primaryEndpoints":{"dfs":"https://storagesfrepro20.dfs.core.windows.net/","web":"https://storagesfrepro20.z19.web.core.windows.net/","blob":"https://storagesfrepro20.blob.core.windows.net/","queue":"https://storagesfrepro20.queue.core.windows.net/","table":"https://storagesfrepro20.table.core.windows.net/","file":"https://storagesfrepro20.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro20-secondary.dfs.core.windows.net/","web":"https://storagesfrepro20-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro20-secondary.blob.core.windows.net/","queue":"https://storagesfrepro20-secondary.queue.core.windows.net/","table":"https://storagesfrepro20-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro21","name":"storagesfrepro21","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:37.4780251Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:37.4780251Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:06:37.3686460Z","primaryEndpoints":{"dfs":"https://storagesfrepro21.dfs.core.windows.net/","web":"https://storagesfrepro21.z19.web.core.windows.net/","blob":"https://storagesfrepro21.blob.core.windows.net/","queue":"https://storagesfrepro21.queue.core.windows.net/","table":"https://storagesfrepro21.table.core.windows.net/","file":"https://storagesfrepro21.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro21-secondary.dfs.core.windows.net/","web":"https://storagesfrepro21-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro21-secondary.blob.core.windows.net/","queue":"https://storagesfrepro21-secondary.queue.core.windows.net/","table":"https://storagesfrepro21-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro22","name":"storagesfrepro22","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:59.8295391Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:06:59.8295391Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:06:59.7201581Z","primaryEndpoints":{"dfs":"https://storagesfrepro22.dfs.core.windows.net/","web":"https://storagesfrepro22.z19.web.core.windows.net/","blob":"https://storagesfrepro22.blob.core.windows.net/","queue":"https://storagesfrepro22.queue.core.windows.net/","table":"https://storagesfrepro22.table.core.windows.net/","file":"https://storagesfrepro22.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro22-secondary.dfs.core.windows.net/","web":"https://storagesfrepro22-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro22-secondary.blob.core.windows.net/","queue":"https://storagesfrepro22-secondary.queue.core.windows.net/","table":"https://storagesfrepro22-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro23","name":"storagesfrepro23","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:07:29.0846619Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:07:29.0846619Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:07:29.0065050Z","primaryEndpoints":{"dfs":"https://storagesfrepro23.dfs.core.windows.net/","web":"https://storagesfrepro23.z19.web.core.windows.net/","blob":"https://storagesfrepro23.blob.core.windows.net/","queue":"https://storagesfrepro23.queue.core.windows.net/","table":"https://storagesfrepro23.table.core.windows.net/","file":"https://storagesfrepro23.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro23-secondary.dfs.core.windows.net/","web":"https://storagesfrepro23-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro23-secondary.blob.core.windows.net/","queue":"https://storagesfrepro23-secondary.queue.core.windows.net/","table":"https://storagesfrepro23-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro24","name":"storagesfrepro24","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:07:53.2658712Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:07:53.2658712Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:07:53.1565651Z","primaryEndpoints":{"dfs":"https://storagesfrepro24.dfs.core.windows.net/","web":"https://storagesfrepro24.z19.web.core.windows.net/","blob":"https://storagesfrepro24.blob.core.windows.net/","queue":"https://storagesfrepro24.queue.core.windows.net/","table":"https://storagesfrepro24.table.core.windows.net/","file":"https://storagesfrepro24.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro24-secondary.dfs.core.windows.net/","web":"https://storagesfrepro24-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro24-secondary.blob.core.windows.net/","queue":"https://storagesfrepro24-secondary.queue.core.windows.net/","table":"https://storagesfrepro24-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro25","name":"storagesfrepro25","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:08:18.7432319Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T05:08:18.7432319Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T05:08:18.6338258Z","primaryEndpoints":{"dfs":"https://storagesfrepro25.dfs.core.windows.net/","web":"https://storagesfrepro25.z19.web.core.windows.net/","blob":"https://storagesfrepro25.blob.core.windows.net/","queue":"https://storagesfrepro25.queue.core.windows.net/","table":"https://storagesfrepro25.table.core.windows.net/","file":"https://storagesfrepro25.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro25-secondary.dfs.core.windows.net/","web":"https://storagesfrepro25-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro25-secondary.blob.core.windows.net/","queue":"https://storagesfrepro25-secondary.queue.core.windows.net/","table":"https://storagesfrepro25-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro3","name":"storagesfrepro3","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:09:19.5698333Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:09:19.5698333Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:09:19.3510997Z","primaryEndpoints":{"dfs":"https://storagesfrepro3.dfs.core.windows.net/","web":"https://storagesfrepro3.z19.web.core.windows.net/","blob":"https://storagesfrepro3.blob.core.windows.net/","queue":"https://storagesfrepro3.queue.core.windows.net/","table":"https://storagesfrepro3.table.core.windows.net/","file":"https://storagesfrepro3.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro3-secondary.dfs.core.windows.net/","web":"https://storagesfrepro3-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro3-secondary.blob.core.windows.net/","queue":"https://storagesfrepro3-secondary.queue.core.windows.net/","table":"https://storagesfrepro3-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro4","name":"storagesfrepro4","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:09:54.9930953Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:09:54.9930953Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:09:54.8993063Z","primaryEndpoints":{"dfs":"https://storagesfrepro4.dfs.core.windows.net/","web":"https://storagesfrepro4.z19.web.core.windows.net/","blob":"https://storagesfrepro4.blob.core.windows.net/","queue":"https://storagesfrepro4.queue.core.windows.net/","table":"https://storagesfrepro4.table.core.windows.net/","file":"https://storagesfrepro4.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro4-secondary.dfs.core.windows.net/","web":"https://storagesfrepro4-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro4-secondary.blob.core.windows.net/","queue":"https://storagesfrepro4-secondary.queue.core.windows.net/","table":"https://storagesfrepro4-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro5","name":"storagesfrepro5","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:10:48.1114395Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:10:48.1114395Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:10:48.0177273Z","primaryEndpoints":{"dfs":"https://storagesfrepro5.dfs.core.windows.net/","web":"https://storagesfrepro5.z19.web.core.windows.net/","blob":"https://storagesfrepro5.blob.core.windows.net/","queue":"https://storagesfrepro5.queue.core.windows.net/","table":"https://storagesfrepro5.table.core.windows.net/","file":"https://storagesfrepro5.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro5-secondary.dfs.core.windows.net/","web":"https://storagesfrepro5-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro5-secondary.blob.core.windows.net/","queue":"https://storagesfrepro5-secondary.queue.core.windows.net/","table":"https://storagesfrepro5-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro6","name":"storagesfrepro6","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:11:28.0269117Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:11:28.0269117Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:11:27.9331594Z","primaryEndpoints":{"dfs":"https://storagesfrepro6.dfs.core.windows.net/","web":"https://storagesfrepro6.z19.web.core.windows.net/","blob":"https://storagesfrepro6.blob.core.windows.net/","queue":"https://storagesfrepro6.queue.core.windows.net/","table":"https://storagesfrepro6.table.core.windows.net/","file":"https://storagesfrepro6.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro6-secondary.dfs.core.windows.net/","web":"https://storagesfrepro6-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro6-secondary.blob.core.windows.net/","queue":"https://storagesfrepro6-secondary.queue.core.windows.net/","table":"https://storagesfrepro6-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro7","name":"storagesfrepro7","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:12:08.7761892Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:12:08.7761892Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:12:08.6824637Z","primaryEndpoints":{"dfs":"https://storagesfrepro7.dfs.core.windows.net/","web":"https://storagesfrepro7.z19.web.core.windows.net/","blob":"https://storagesfrepro7.blob.core.windows.net/","queue":"https://storagesfrepro7.queue.core.windows.net/","table":"https://storagesfrepro7.table.core.windows.net/","file":"https://storagesfrepro7.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro7-secondary.dfs.core.windows.net/","web":"https://storagesfrepro7-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro7-secondary.blob.core.windows.net/","queue":"https://storagesfrepro7-secondary.queue.core.windows.net/","table":"https://storagesfrepro7-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro8","name":"storagesfrepro8","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:12:39.5221164Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:12:39.5221164Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:12:39.4283923Z","primaryEndpoints":{"dfs":"https://storagesfrepro8.dfs.core.windows.net/","web":"https://storagesfrepro8.z19.web.core.windows.net/","blob":"https://storagesfrepro8.blob.core.windows.net/","queue":"https://storagesfrepro8.queue.core.windows.net/","table":"https://storagesfrepro8.table.core.windows.net/","file":"https://storagesfrepro8.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro8-secondary.dfs.core.windows.net/","web":"https://storagesfrepro8-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro8-secondary.blob.core.windows.net/","queue":"https://storagesfrepro8-secondary.queue.core.windows.net/","table":"https://storagesfrepro8-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/storage-v2rt-repro/providers/Microsoft.Storage/storageAccounts/storagesfrepro9","name":"storagesfrepro9","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:13:18.1628430Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2019-02-26T04:13:18.1628430Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2019-02-26T04:13:18.0691096Z","primaryEndpoints":{"dfs":"https://storagesfrepro9.dfs.core.windows.net/","web":"https://storagesfrepro9.z19.web.core.windows.net/","blob":"https://storagesfrepro9.blob.core.windows.net/","queue":"https://storagesfrepro9.queue.core.windows.net/","table":"https://storagesfrepro9.table.core.windows.net/","file":"https://storagesfrepro9.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://storagesfrepro9-secondary.dfs.core.windows.net/","web":"https://storagesfrepro9-secondary.z19.web.core.windows.net/","blob":"https://storagesfrepro9-secondary.blob.core.windows.net/","queue":"https://storagesfrepro9-secondary.queue.core.windows.net/","table":"https://storagesfrepro9-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuhcentral/providers/Microsoft.Storage/storageAccounts/zuhstorage","name":"zuhstorage","type":"Microsoft.Storage/storageAccounts","location":"centralus","tags":{"key":"value"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"Logging","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-02T06:04:55.7104787Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-02T06:04:55.7104787Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-02T06:04:55.6167450Z","primaryEndpoints":{"dfs":"https://zuhstorage.dfs.core.windows.net/","web":"https://zuhstorage.z19.web.core.windows.net/","blob":"https://zuhstorage.blob.core.windows.net/","queue":"https://zuhstorage.queue.core.windows.net/","table":"https://zuhstorage.table.core.windows.net/","file":"https://zuhstorage.file.core.windows.net/"},"primaryLocation":"centralus","statusOfPrimary":"available","secondaryLocation":"eastus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zuhstorage-secondary.dfs.core.windows.net/","web":"https://zuhstorage-secondary.z19.web.core.windows.net/","blob":"https://zuhstorage-secondary.blob.core.windows.net/","queue":"https://zuhstorage-secondary.queue.core.windows.net/","table":"https://zuhstorage-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/IT_acctestRG-ibt-24_acctest-IBT-0710-2_4ebedb5a-e3b1-4675-aa4c-3c160fe70907/providers/Microsoft.Storage/storageAccounts/6ynst8ytvcms52eviy9cme3e","name":"6ynst8ytvcms52eviy9cme3e","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{"createdby":"azureimagebuilder","magicvalue":"0d819542a3774a2a8709401a7cd09eb8"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-10T11:43:30.0119558Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-10T11:43:30.0119558Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-07-10T11:43:29.9651518Z","primaryEndpoints":{"blob":"https://6ynst8ytvcms52eviy9cme3e.blob.core.windows.net/","queue":"https://6ynst8ytvcms52eviy9cme3e.queue.core.windows.net/","table":"https://6ynst8ytvcms52eviy9cme3e.table.core.windows.net/","file":"https://6ynst8ytvcms52eviy9cme3e.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/azclirg/providers/Microsoft.Storage/storageAccounts/azclist0703","name":"azclist0703","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"minimumTlsVersion":"TLS1_0","allowBlobPublicAccess":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-03T10:45:23.1955829Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-03T10:45:23.1955829Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-03T10:45:23.1174571Z","primaryEndpoints":{"dfs":"https://azclist0703.dfs.core.windows.net/","web":"https://azclist0703.z5.web.core.windows.net/","blob":"https://azclist0703.blob.core.windows.net/","queue":"https://azclist0703.queue.core.windows.net/","table":"https://azclist0703.table.core.windows.net/","file":"https://azclist0703.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available","secondaryLocation":"westcentralus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://azclist0703-secondary.dfs.core.windows.net/","web":"https://azclist0703-secondary.z5.web.core.windows.net/","blob":"https://azclist0703-secondary.blob.core.windows.net/","queue":"https://azclist0703-secondary.queue.core.windows.net/","table":"https://azclist0703-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.Storage/storageAccounts/clitestdatas000002","name":"clitestdatas000002","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T05:31:18.7508737Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-26T05:31:18.7508737Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-08-26T05:31:18.6884316Z","primaryEndpoints":{"blob":"https://clitestdatas000002.blob.core.windows.net/","queue":"https://clitestdatas000002.queue.core.windows.net/","table":"https://clitestdatas000002.table.core.windows.net/","file":"https://clitestdatas000002.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/xiaojxu/providers/Microsoft.Storage/storageAccounts/xiaojxudiag","name":"xiaojxudiag","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-19T05:19:04.4604985Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-19T05:19:04.4604985Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-08-19T05:19:04.3823145Z","primaryEndpoints":{"blob":"https://xiaojxudiag.blob.core.windows.net/","queue":"https://xiaojxudiag.queue.core.windows.net/","table":"https://xiaojxudiag.table.core.windows.net/","file":"https://xiaojxudiag.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhlrs","name":"zuhlrs","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"azureFilesIdentityBasedAuthentication":{"directoryServiceOptions":"None"},"minimumTlsVersion":"TLS1_0","allowBlobPublicAccess":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[{"value":"13.104.129.64/26","action":"Allow"},{"value":"13.104.145.0/26","action":"Allow"},{"value":"13.104.208.192/26","action":"Allow"},{"value":"13.104.213.0/25","action":"Allow"},{"value":"13.104.220.0/25","action":"Allow"},{"value":"13.105.14.0/25","action":"Allow"},{"value":"13.105.14.128/26","action":"Allow"},{"value":"13.105.18.160/27","action":"Allow"},{"value":"13.105.36.0/27","action":"Allow"},{"value":"13.105.36.32/28","action":"Allow"},{"value":"13.105.36.64/27","action":"Allow"},{"value":"13.105.36.128/26","action":"Allow"},{"value":"13.105.66.64/26","action":"Allow"},{"value":"20.36.0.0/19","action":"Allow"},{"value":"20.38.99.0/24","action":"Allow"},{"value":"20.42.128.0/18","action":"Allow"},{"value":"20.47.62.0/23","action":"Allow"},{"value":"20.47.120.0/23","action":"Allow"},{"value":"20.51.64.0/18","action":"Allow"},{"value":"20.57.128.0/18","action":"Allow"},{"value":"20.59.0.0/18","action":"Allow"},{"value":"20.60.20.0/24","action":"Allow"},{"value":"20.150.68.0/24","action":"Allow"},{"value":"20.150.78.0/24","action":"Allow"},{"value":"20.150.87.0/24","action":"Allow"},{"value":"20.150.107.0/24","action":"Allow"},{"value":"20.187.0.0/18","action":"Allow"},{"value":"20.190.0.0/18","action":"Allow"},{"value":"20.190.133.0/24","action":"Allow"},{"value":"20.190.154.0/24","action":"Allow"},{"value":"20.191.64.0/18","action":"Allow"},{"value":"23.98.47.0/24","action":"Allow"},{"value":"23.102.192.0/21","action":"Allow"},{"value":"23.102.203.0/24","action":"Allow"},{"value":"23.103.64.32/27","action":"Allow"},{"value":"23.103.64.64/27","action":"Allow"},{"value":"23.103.66.0/23","action":"Allow"},{"value":"40.64.64.0/18","action":"Allow"},{"value":"40.64.128.0/21","action":"Allow"},{"value":"40.65.64.0/18","action":"Allow"},{"value":"40.77.136.0/28","action":"Allow"},{"value":"40.77.136.64/28","action":"Allow"},{"value":"40.77.139.128/25","action":"Allow"},{"value":"40.77.160.0/27","action":"Allow"},{"value":"40.77.162.0/24","action":"Allow"},{"value":"40.77.164.0/24","action":"Allow"},{"value":"40.77.169.0/24","action":"Allow"},{"value":"40.77.175.64/27","action":"Allow"},{"value":"40.77.180.0/23","action":"Allow"},{"value":"40.77.182.64/27","action":"Allow"},{"value":"40.77.185.128/25","action":"Allow"},{"value":"40.77.186.0/23","action":"Allow"},{"value":"40.77.198.128/25","action":"Allow"},{"value":"40.77.199.128/26","action":"Allow"},{"value":"40.77.200.0/25","action":"Allow"},{"value":"40.77.202.0/24","action":"Allow"},{"value":"40.77.224.96/27","action":"Allow"},{"value":"40.77.230.0/24","action":"Allow"},{"value":"40.77.232.128/25","action":"Allow"},{"value":"40.77.234.224/27","action":"Allow"},{"value":"40.77.236.128/27","action":"Allow"},{"value":"40.77.240.128/25","action":"Allow"},{"value":"40.77.241.0/24","action":"Allow"},{"value":"40.77.242.0/23","action":"Allow"},{"value":"40.77.247.0/24","action":"Allow"},{"value":"40.77.249.0/24","action":"Allow"},{"value":"40.77.250.0/24","action":"Allow"},{"value":"40.77.254.128/25","action":"Allow"},{"value":"40.78.208.32/30","action":"Allow"},{"value":"40.78.217.0/24","action":"Allow"},{"value":"40.78.240.0/20","action":"Allow"},{"value":"40.80.160.0/24","action":"Allow"},{"value":"40.82.36.0/22","action":"Allow"},{"value":"40.87.232.0/21","action":"Allow"},{"value":"40.90.16.192/26","action":"Allow"},{"value":"40.90.131.32/27","action":"Allow"},{"value":"40.90.132.48/28","action":"Allow"},{"value":"40.90.136.224/27","action":"Allow"},{"value":"40.90.138.208/28","action":"Allow"},{"value":"40.90.139.32/27","action":"Allow"},{"value":"40.90.146.32/27","action":"Allow"},{"value":"40.90.148.192/27","action":"Allow"},{"value":"40.90.153.0/26","action":"Allow"},{"value":"40.90.192.0/19","action":"Allow"},{"value":"40.91.0.0/22","action":"Allow"},{"value":"40.91.64.0/18","action":"Allow"},{"value":"40.91.160.0/19","action":"Allow"},{"value":"40.125.64.0/18","action":"Allow"},{"value":"40.126.5.0/24","action":"Allow"},{"value":"40.126.26.0/24","action":"Allow"},{"value":"51.141.160.0/19","action":"Allow"},{"value":"51.143.0.0/17","action":"Allow"},{"value":"52.96.11.0/24","action":"Allow"},{"value":"52.108.72.0/24","action":"Allow"},{"value":"52.108.93.0/24","action":"Allow"},{"value":"52.109.24.0/22","action":"Allow"},{"value":"52.111.246.0/24","action":"Allow"},{"value":"52.112.105.0/24","action":"Allow"},{"value":"52.112.109.0/24","action":"Allow"},{"value":"52.112.115.0/24","action":"Allow"},{"value":"52.114.148.0/22","action":"Allow"},{"value":"52.115.55.0/24","action":"Allow"},{"value":"52.136.0.0/22","action":"Allow"},{"value":"52.137.64.0/18","action":"Allow"},{"value":"52.143.64.0/18","action":"Allow"},{"value":"52.143.197.0/24","action":"Allow"},{"value":"52.143.211.0/24","action":"Allow"},{"value":"52.148.128.0/18","action":"Allow"},{"value":"52.149.0.0/18","action":"Allow"},{"value":"52.151.0.0/18","action":"Allow"},{"value":"52.156.64.0/18","action":"Allow"},{"value":"52.156.128.0/19","action":"Allow"},{"value":"52.158.224.0/19","action":"Allow"},{"value":"52.175.192.0/18","action":"Allow"},{"value":"52.183.0.0/17","action":"Allow"},{"value":"52.191.128.0/18","action":"Allow"},{"value":"52.229.0.0/18","action":"Allow"},{"value":"52.232.152.0/24","action":"Allow"},{"value":"52.233.64.0/18","action":"Allow"},{"value":"52.235.64.0/18","action":"Allow"},{"value":"52.239.148.128/25","action":"Allow"},{"value":"52.239.176.128/25","action":"Allow"},{"value":"52.239.193.0/24","action":"Allow"},{"value":"52.239.210.0/23","action":"Allow"},{"value":"52.239.236.0/23","action":"Allow"},{"value":"52.245.52.0/22","action":"Allow"},{"value":"52.246.192.0/18","action":"Allow"},{"value":"52.247.192.0/18","action":"Allow"},{"value":"52.250.0.0/17","action":"Allow"},{"value":"65.52.111.0/24","action":"Allow"},{"value":"65.55.32.128/28","action":"Allow"},{"value":"65.55.32.192/27","action":"Allow"},{"value":"65.55.32.224/28","action":"Allow"},{"value":"65.55.33.176/28","action":"Allow"},{"value":"65.55.33.192/28","action":"Allow"},{"value":"65.55.35.192/27","action":"Allow"},{"value":"65.55.44.8/29","action":"Allow"},{"value":"65.55.44.112/28","action":"Allow"},{"value":"65.55.51.0/24","action":"Allow"},{"value":"65.55.105.160/27","action":"Allow"},{"value":"65.55.106.192/28","action":"Allow"},{"value":"65.55.106.240/28","action":"Allow"},{"value":"65.55.107.0/28","action":"Allow"},{"value":"65.55.107.96/27","action":"Allow"},{"value":"65.55.110.0/24","action":"Allow"},{"value":"65.55.120.0/24","action":"Allow"},{"value":"65.55.207.0/24","action":"Allow"},{"value":"65.55.209.0/25","action":"Allow"},{"value":"65.55.210.0/24","action":"Allow"},{"value":"65.55.219.64/26","action":"Allow"},{"value":"65.55.250.0/24","action":"Allow"},{"value":"65.55.252.0/24","action":"Allow"},{"value":"70.37.0.0/21","action":"Allow"},{"value":"70.37.8.0/22","action":"Allow"},{"value":"70.37.16.0/20","action":"Allow"},{"value":"70.37.32.0/20","action":"Allow"},{"value":"104.44.89.128/27","action":"Allow"},{"value":"104.44.89.192/27","action":"Allow"},{"value":"104.44.95.0/28","action":"Allow"},{"value":"131.253.12.160/28","action":"Allow"},{"value":"131.253.12.228/30","action":"Allow"},{"value":"131.253.13.24/29","action":"Allow"},{"value":"131.253.13.88/30","action":"Allow"},{"value":"131.253.13.128/27","action":"Allow"},{"value":"131.253.14.4/30","action":"Allow"},{"value":"131.253.14.96/27","action":"Allow"},{"value":"131.253.14.128/27","action":"Allow"},{"value":"131.253.14.192/29","action":"Allow"},{"value":"131.253.15.192/28","action":"Allow"},{"value":"131.253.35.128/26","action":"Allow"},{"value":"131.253.40.48/29","action":"Allow"},{"value":"131.253.40.128/27","action":"Allow"},{"value":"131.253.41.0/24","action":"Allow"},{"value":"134.170.222.0/24","action":"Allow"},{"value":"137.116.176.0/21","action":"Allow"},{"value":"157.55.2.128/26","action":"Allow"},{"value":"157.55.12.64/26","action":"Allow"},{"value":"157.55.13.64/26","action":"Allow"},{"value":"157.55.39.0/24","action":"Allow"},{"value":"157.55.55.228/30","action":"Allow"},{"value":"157.55.55.232/29","action":"Allow"},{"value":"157.55.55.240/28","action":"Allow"},{"value":"157.55.106.0/26","action":"Allow"},{"value":"157.55.154.128/25","action":"Allow"},{"value":"157.56.2.0/25","action":"Allow"},{"value":"157.56.3.128/25","action":"Allow"},{"value":"157.56.19.224/27","action":"Allow"},{"value":"157.56.21.160/27","action":"Allow"},{"value":"157.56.21.192/27","action":"Allow"},{"value":"157.56.80.0/25","action":"Allow"},{"value":"168.62.64.0/19","action":"Allow"},{"value":"199.30.24.0/23","action":"Allow"},{"value":"199.30.27.0/25","action":"Allow"},{"value":"199.30.27.144/28","action":"Allow"},{"value":"199.30.27.160/27","action":"Allow"},{"value":"199.30.31.192/26","action":"Allow"},{"value":"207.46.13.0/24","action":"Allow"},{"value":"207.68.174.192/28","action":"Allow"},{"value":"13.77.128.0/18","action":"Allow"},{"value":"13.66.128.0/17","action":"Allow"}],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-30T07:47:21.5398746Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-30T07:47:21.5398746Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-30T07:47:21.4617428Z","primaryEndpoints":{"dfs":"https://zuhlrs.dfs.core.windows.net/","web":"https://zuhlrs.z5.web.core.windows.net/","blob":"https://zuhlrs.blob.core.windows.net/","queue":"https://zuhlrs.queue.core.windows.net/","table":"https://zuhlrs.table.core.windows.net/","file":"https://zuhlrs.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available","secondaryLocation":"westcentralus","statusOfSecondary":"available"}},{"sku":{"name":"Standard_ZRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhzrs","name":"zuhzrs","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"privateEndpointConnections":[],"minimumTlsVersion":"TLS1_0","allowBlobPublicAccess":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-30T07:44:07.3205056Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-30T07:44:07.3205056Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-30T07:44:07.2424144Z","primaryEndpoints":{"dfs":"https://zuhzrs.dfs.core.windows.net/","web":"https://zuhzrs.z5.web.core.windows.net/","blob":"https://zuhzrs.blob.core.windows.net/","queue":"https://zuhzrs.queue.core.windows.net/","table":"https://zuhzrs.table.core.windows.net/","file":"https://zuhzrs.file.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/bim-rg/providers/Microsoft.Storage/storageAccounts/bimstorageacc","name":"bimstorageacc","type":"Microsoft.Storage/storageAccounts","location":"westcentralus","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T07:20:55.2327590Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-03-03T07:20:55.2327590Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-03-03T07:20:55.1858389Z","primaryEndpoints":{"dfs":"https://bimstorageacc.dfs.core.windows.net/","web":"https://bimstorageacc.z4.web.core.windows.net/","blob":"https://bimstorageacc.blob.core.windows.net/","queue":"https://bimstorageacc.queue.core.windows.net/","table":"https://bimstorageacc.table.core.windows.net/","file":"https://bimstorageacc.file.core.windows.net/"},"primaryLocation":"westcentralus","statusOfPrimary":"available","secondaryLocation":"westus2","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://bimstorageacc-secondary.dfs.core.windows.net/","web":"https://bimstorageacc-secondary.z4.web.core.windows.net/","blob":"https://bimstorageacc-secondary.blob.core.windows.net/","queue":"https://bimstorageacc-secondary.queue.core.windows.net/","table":"https://bimstorageacc-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/advwreb","name":"advwreb","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-29T16:18:22.7391575Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-29T16:18:22.7391575Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-29T16:18:22.6918660Z","primaryEndpoints":{"dfs":"https://advwreb.dfs.core.windows.net/","web":"https://advwreb.z3.web.core.windows.net/","blob":"https://advwreb.blob.core.windows.net/","queue":"https://advwreb.queue.core.windows.net/","table":"https://advwreb.table.core.windows.net/","file":"https://advwreb.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available"}},{"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-MyWorkspace1-3yvd2kcnpsfm5/providers/Microsoft.Storage/storageAccounts/dbstorageafjorlaw6ekoi","name":"dbstorageafjorlaw6ekoi","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"requireInfrastructureEncryption":true,"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-03T04:54:13.0551809Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-03T04:54:13.0551809Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-08-03T04:54:12.9926412Z","primaryEndpoints":{"dfs":"https://dbstorageafjorlaw6ekoi.dfs.core.windows.net/","blob":"https://dbstorageafjorlaw6ekoi.blob.core.windows.net/","table":"https://dbstorageafjorlaw6ekoi.table.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available","secondaryLocation":"centraluseuap","statusOfSecondary":"available"}},{"identity":{"principalId":"7669e357-e1a4-498d-aa33-ba4b357c6f52","tenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","type":"SystemAssigned"},"sku":{"name":"Standard_GRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/databricks-rg-MyWorkspace-j2h8wc266spgx/providers/Microsoft.Storage/storageAccounts/dbstoragepuf6bmfb7dcxa","name":"dbstoragepuf6bmfb7dcxa","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{"application":"databricks","databricks-environment":"true"},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"requireInfrastructureEncryption":true,"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-03T04:47:00.4136456Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-03T04:47:00.4136456Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-08-03T04:47:00.3511548Z","primaryEndpoints":{"dfs":"https://dbstoragepuf6bmfb7dcxa.dfs.core.windows.net/","blob":"https://dbstoragepuf6bmfb7dcxa.blob.core.windows.net/","table":"https://dbstoragepuf6bmfb7dcxa.table.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available","secondaryLocation":"centraluseuap","statusOfSecondary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/jksdgva","name":"jksdgva","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-30T09:41:58.0481530Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-30T09:41:58.0481530Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-30T09:41:58.0012163Z","primaryEndpoints":{"dfs":"https://jksdgva.dfs.core.windows.net/","web":"https://jksdgva.z3.web.core.windows.net/","blob":"https://jksdgva.blob.core.windows.net/","queue":"https://jksdgva.queue.core.windows.net/","table":"https://jksdgva.table.core.windows.net/","file":"https://jksdgva.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/tckftakf","name":"tckftakf","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-29T16:14:55.8833538Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-29T16:14:55.8833538Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-29T16:14:55.8521030Z","primaryEndpoints":{"dfs":"https://tckftakf.dfs.core.windows.net/","web":"https://tckftakf.z3.web.core.windows.net/","blob":"https://tckftakf.blob.core.windows.net/","queue":"https://tckftakf.queue.core.windows.net/","table":"https://tckftakf.table.core.windows.net/","file":"https://tckftakf.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/vsdchjkav","name":"vsdchjkav","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-29T16:17:18.4683358Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-29T16:17:18.4683358Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-29T16:17:18.4058930Z","primaryEndpoints":{"dfs":"https://vsdchjkav.dfs.core.windows.net/","web":"https://vsdchjkav.z3.web.core.windows.net/","blob":"https://vsdchjkav.blob.core.windows.net/","queue":"https://vsdchjkav.queue.core.windows.net/","table":"https://vsdchjkav.table.core.windows.net/","file":"https://vsdchjkav.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available"}},{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhblob","name":"zuhblob","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-08T02:49:16.2101485Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-08T02:49:16.2101485Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Cool","provisioningState":"Succeeded","creationTime":"2020-06-08T02:49:16.1476663Z","primaryEndpoints":{"dfs":"https://zuhblob.dfs.core.windows.net/","blob":"https://zuhblob.blob.core.windows.net/","table":"https://zuhblob.table.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available"}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhdefault","name":"zuhdefault","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[{"value":"167.1.1.24","action":"Allow"},{"value":"13.66.128.0/17","action":"Allow"},{"value":"13.77.128.0/18","action":"Allow"},{"value":"13.104.129.64/26","action":"Allow"},{"value":"13.104.145.0/26","action":"Allow"},{"value":"13.104.208.192/26","action":"Allow"},{"value":"13.104.213.0/25","action":"Allow"},{"value":"13.104.220.0/25","action":"Allow"},{"value":"13.105.14.0/25","action":"Allow"},{"value":"13.105.14.128/26","action":"Allow"},{"value":"13.105.18.160/27","action":"Allow"},{"value":"13.105.36.0/27","action":"Allow"},{"value":"13.105.36.32/28","action":"Allow"},{"value":"13.105.36.64/27","action":"Allow"},{"value":"13.105.36.128/26","action":"Allow"},{"value":"13.105.66.64/26","action":"Allow"},{"value":"20.36.0.0/19","action":"Allow"},{"value":"20.38.99.0/24","action":"Allow"},{"value":"20.42.128.0/18","action":"Allow"},{"value":"20.47.62.0/23","action":"Allow"},{"value":"20.47.120.0/23","action":"Allow"},{"value":"20.51.64.0/18","action":"Allow"},{"value":"20.57.128.0/18","action":"Allow"},{"value":"20.59.0.0/18","action":"Allow"},{"value":"20.60.20.0/24","action":"Allow"},{"value":"20.150.68.0/24","action":"Allow"},{"value":"20.150.78.0/24","action":"Allow"},{"value":"20.150.87.0/24","action":"Allow"},{"value":"20.150.107.0/24","action":"Allow"},{"value":"20.187.0.0/18","action":"Allow"},{"value":"20.190.0.0/18","action":"Allow"},{"value":"20.190.133.0/24","action":"Allow"},{"value":"20.190.154.0/24","action":"Allow"},{"value":"20.191.64.0/18","action":"Allow"},{"value":"23.98.47.0/24","action":"Allow"},{"value":"23.102.192.0/21","action":"Allow"},{"value":"23.102.203.0/24","action":"Allow"},{"value":"23.103.64.32/27","action":"Allow"},{"value":"23.103.64.64/27","action":"Allow"},{"value":"23.103.66.0/23","action":"Allow"},{"value":"40.64.64.0/18","action":"Allow"},{"value":"40.64.128.0/21","action":"Allow"},{"value":"40.65.64.0/18","action":"Allow"},{"value":"40.77.136.0/28","action":"Allow"},{"value":"40.77.136.64/28","action":"Allow"},{"value":"40.77.139.128/25","action":"Allow"},{"value":"40.77.160.0/27","action":"Allow"},{"value":"40.77.162.0/24","action":"Allow"},{"value":"40.77.164.0/24","action":"Allow"},{"value":"40.77.169.0/24","action":"Allow"},{"value":"40.77.175.64/27","action":"Allow"},{"value":"40.77.180.0/23","action":"Allow"},{"value":"40.77.182.64/27","action":"Allow"},{"value":"40.77.185.128/25","action":"Allow"},{"value":"40.77.186.0/23","action":"Allow"},{"value":"40.77.198.128/25","action":"Allow"},{"value":"40.77.199.128/26","action":"Allow"},{"value":"40.77.200.0/25","action":"Allow"},{"value":"40.77.202.0/24","action":"Allow"},{"value":"40.77.224.96/27","action":"Allow"},{"value":"40.77.230.0/24","action":"Allow"},{"value":"40.77.232.128/25","action":"Allow"},{"value":"40.77.234.224/27","action":"Allow"},{"value":"40.77.236.128/27","action":"Allow"},{"value":"40.77.240.128/25","action":"Allow"},{"value":"40.77.241.0/24","action":"Allow"},{"value":"40.77.242.0/23","action":"Allow"},{"value":"40.77.247.0/24","action":"Allow"},{"value":"40.77.249.0/24","action":"Allow"},{"value":"40.77.250.0/24","action":"Allow"},{"value":"40.77.254.128/25","action":"Allow"},{"value":"40.78.208.32/30","action":"Allow"},{"value":"40.78.217.0/24","action":"Allow"},{"value":"40.78.240.0/20","action":"Allow"},{"value":"40.80.160.0/24","action":"Allow"},{"value":"40.82.36.0/22","action":"Allow"},{"value":"40.87.232.0/21","action":"Allow"},{"value":"40.90.16.192/26","action":"Allow"},{"value":"40.90.131.32/27","action":"Allow"},{"value":"40.90.132.48/28","action":"Allow"},{"value":"40.90.136.224/27","action":"Allow"},{"value":"40.90.138.208/28","action":"Allow"},{"value":"40.90.139.32/27","action":"Allow"},{"value":"40.90.146.32/27","action":"Allow"},{"value":"40.90.148.192/27","action":"Allow"},{"value":"40.90.153.0/26","action":"Allow"},{"value":"40.90.192.0/19","action":"Allow"},{"value":"40.91.0.0/22","action":"Allow"},{"value":"40.91.64.0/18","action":"Allow"},{"value":"40.91.160.0/19","action":"Allow"},{"value":"40.125.64.0/18","action":"Allow"},{"value":"40.126.5.0/24","action":"Allow"},{"value":"40.126.26.0/24","action":"Allow"},{"value":"51.141.160.0/19","action":"Allow"},{"value":"51.143.0.0/17","action":"Allow"},{"value":"52.96.11.0/24","action":"Allow"},{"value":"52.108.72.0/24","action":"Allow"},{"value":"52.108.93.0/24","action":"Allow"},{"value":"52.109.24.0/22","action":"Allow"},{"value":"52.111.246.0/24","action":"Allow"},{"value":"52.112.105.0/24","action":"Allow"},{"value":"52.112.109.0/24","action":"Allow"},{"value":"52.112.115.0/24","action":"Allow"},{"value":"52.114.148.0/22","action":"Allow"},{"value":"52.115.55.0/24","action":"Allow"},{"value":"52.136.0.0/22","action":"Allow"},{"value":"52.137.64.0/18","action":"Allow"},{"value":"52.143.64.0/18","action":"Allow"},{"value":"52.143.197.0/24","action":"Allow"},{"value":"52.143.211.0/24","action":"Allow"},{"value":"52.148.128.0/18","action":"Allow"},{"value":"52.149.0.0/18","action":"Allow"},{"value":"52.151.0.0/18","action":"Allow"},{"value":"52.156.64.0/18","action":"Allow"},{"value":"52.156.128.0/19","action":"Allow"},{"value":"52.158.224.0/19","action":"Allow"},{"value":"52.175.192.0/18","action":"Allow"},{"value":"52.183.0.0/17","action":"Allow"},{"value":"52.191.128.0/18","action":"Allow"},{"value":"52.229.0.0/18","action":"Allow"},{"value":"52.232.152.0/24","action":"Allow"},{"value":"52.233.64.0/18","action":"Allow"},{"value":"52.235.64.0/18","action":"Allow"},{"value":"52.239.148.128/25","action":"Allow"},{"value":"52.239.176.128/25","action":"Allow"},{"value":"52.239.193.0/24","action":"Allow"},{"value":"52.239.210.0/23","action":"Allow"},{"value":"52.239.236.0/23","action":"Allow"},{"value":"52.245.52.0/22","action":"Allow"},{"value":"52.246.192.0/18","action":"Allow"},{"value":"52.247.192.0/18","action":"Allow"},{"value":"52.250.0.0/17","action":"Allow"},{"value":"65.52.111.0/24","action":"Allow"},{"value":"65.55.32.128/28","action":"Allow"},{"value":"65.55.32.192/27","action":"Allow"},{"value":"65.55.32.224/28","action":"Allow"},{"value":"65.55.33.176/28","action":"Allow"},{"value":"65.55.33.192/28","action":"Allow"},{"value":"65.55.35.192/27","action":"Allow"},{"value":"65.55.44.8/29","action":"Allow"},{"value":"65.55.44.112/28","action":"Allow"},{"value":"65.55.51.0/24","action":"Allow"},{"value":"65.55.105.160/27","action":"Allow"},{"value":"65.55.106.192/28","action":"Allow"},{"value":"65.55.106.240/28","action":"Allow"},{"value":"65.55.107.0/28","action":"Allow"},{"value":"65.55.107.96/27","action":"Allow"},{"value":"65.55.110.0/24","action":"Allow"},{"value":"65.55.120.0/24","action":"Allow"},{"value":"65.55.207.0/24","action":"Allow"},{"value":"65.55.209.0/25","action":"Allow"},{"value":"65.55.210.0/24","action":"Allow"},{"value":"65.55.219.64/26","action":"Allow"},{"value":"65.55.250.0/24","action":"Allow"},{"value":"65.55.252.0/24","action":"Allow"},{"value":"70.37.0.0/21","action":"Allow"},{"value":"70.37.8.0/22","action":"Allow"},{"value":"70.37.16.0/20","action":"Allow"},{"value":"70.37.32.0/20","action":"Allow"},{"value":"104.44.89.128/27","action":"Allow"},{"value":"104.44.89.192/27","action":"Allow"},{"value":"104.44.95.0/28","action":"Allow"},{"value":"131.253.12.160/28","action":"Allow"},{"value":"131.253.12.228/30","action":"Allow"},{"value":"131.253.13.24/29","action":"Allow"},{"value":"131.253.13.88/30","action":"Allow"},{"value":"131.253.13.128/27","action":"Allow"},{"value":"131.253.14.4/30","action":"Allow"},{"value":"131.253.14.96/27","action":"Allow"},{"value":"131.253.14.128/27","action":"Allow"},{"value":"131.253.14.192/29","action":"Allow"},{"value":"131.253.15.192/28","action":"Allow"},{"value":"131.253.35.128/26","action":"Allow"},{"value":"131.253.40.48/29","action":"Allow"},{"value":"131.253.40.128/27","action":"Allow"},{"value":"131.253.41.0/24","action":"Allow"},{"value":"134.170.222.0/24","action":"Allow"},{"value":"137.116.176.0/21","action":"Allow"},{"value":"157.55.2.128/26","action":"Allow"},{"value":"157.55.12.64/26","action":"Allow"},{"value":"157.55.13.64/26","action":"Allow"},{"value":"157.55.39.0/24","action":"Allow"},{"value":"157.55.55.228/30","action":"Allow"},{"value":"157.55.55.232/29","action":"Allow"},{"value":"157.55.55.240/28","action":"Allow"},{"value":"157.55.106.0/26","action":"Allow"},{"value":"157.55.154.128/25","action":"Allow"},{"value":"157.56.2.0/25","action":"Allow"},{"value":"157.56.3.128/25","action":"Allow"},{"value":"157.56.19.224/27","action":"Allow"},{"value":"157.56.21.160/27","action":"Allow"},{"value":"157.56.21.192/27","action":"Allow"},{"value":"157.56.80.0/25","action":"Allow"},{"value":"168.62.64.0/19","action":"Allow"},{"value":"199.30.24.0/23","action":"Allow"},{"value":"199.30.27.0/25","action":"Allow"},{"value":"199.30.27.144/28","action":"Allow"},{"value":"199.30.27.160/27","action":"Allow"},{"value":"199.30.31.192/26","action":"Allow"},{"value":"207.46.13.0/24","action":"Allow"}],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-08T06:37:33.5016145Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-06-08T06:37:33.5016145Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-06-08T06:37:33.4547782Z","primaryEndpoints":{"dfs":"https://zuhdefault.dfs.core.windows.net/","web":"https://zuhdefault.z3.web.core.windows.net/","blob":"https://zuhdefault.blob.core.windows.net/","queue":"https://zuhdefault.queue.core.windows.net/","table":"https://zuhdefault.table.core.windows.net/","file":"https://zuhdefault.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available","secondaryLocation":"centraluseuap","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zuhdefault-secondary.dfs.core.windows.net/","web":"https://zuhdefault-secondary.z3.web.core.windows.net/","blob":"https://zuhdefault-secondary.blob.core.windows.net/","queue":"https://zuhdefault-secondary.queue.core.windows.net/","table":"https://zuhdefault-secondary.table.core.windows.net/"}}},{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhors","name":"zuhors","type":"Microsoft.Storage/storageAccounts","location":"eastus2euap","tags":{},"properties":{"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-20T13:11:32.2899214Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-08-20T13:11:32.2899214Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-08-20T13:11:32.2273941Z","primaryEndpoints":{"dfs":"https://zuhors.dfs.core.windows.net/","web":"https://zuhors.z3.web.core.windows.net/","blob":"https://zuhors.blob.core.windows.net/","queue":"https://zuhors.queue.core.windows.net/","table":"https://zuhors.table.core.windows.net/","file":"https://zuhors.file.core.windows.net/"},"primaryLocation":"eastus2euap","statusOfPrimary":"available","secondaryLocation":"centraluseuap","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://zuhors-secondary.dfs.core.windows.net/","web":"https://zuhors-secondary.z3.web.core.windows.net/","blob":"https://zuhors-secondary.blob.core.windows.net/","queue":"https://zuhors-secondary.queue.core.windows.net/","table":"https://zuhors-secondary.table.core.windows.net/"}}},{"sku":{"name":"Premium_LRS","tier":"Premium"},"kind":"FileStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/zuh/providers/Microsoft.Storage/storageAccounts/zuhpremium2","name":"zuhpremium2","type":"Microsoft.Storage/storageAccounts","location":"centraluseuap","tags":{},"properties":{"privateEndpointConnections":[],"largeFileSharesState":"Enabled","networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-17T06:42:28.7244764Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2020-07-17T06:42:28.7244764Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2020-07-17T06:42:28.6619434Z","primaryEndpoints":{"file":"https://zuhpremium2.file.core.windows.net/"},"primaryLocation":"centraluseuap","statusOfPrimary":"available"}}]}' headers: cache-control: - no-cache content-length: - - '127895' + - '165301' content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:04 GMT + - Wed, 26 Aug 2020 05:33:55 GMT expires: - '-1' pragma: @@ -921,17 +912,18 @@ interactions: x-content-type-options: - nosniff x-ms-original-request-ids: - - 1d135e07-2e6e-40be-a2b3-3b916a6e0da2 - - dee3f2c8-4ebe-4540-8407-ca7713724a9a - - c104a4ca-15f7-470c-bacd-faa81e9b4517 - - 2dfc2132-c363-4994-94b4-7a92972f8324 - - 4f634dd3-9a28-4a79-96a4-c226b692416f - - 714ebaf4-62c9-4b87-b9fe-f8f7cd8f4ecf - - c2bc88dc-82f1-4bbb-9066-9e0266f19444 - - 4d9514e9-6d2a-4501-846d-7cbf1bbb9c5b - - cb89a6d6-335f-451a-a1f8-86799ab6f621 - - 62943f3d-91c5-4359-8a8e-f594544946e5 - - 0720666c-126e-42db-80dd-f720caa725e0 + - 7723a0c1-7ecb-4936-a023-a9a904d4f910 + - 32dbebb3-23a1-4818-a102-0bfa5b2dabe0 + - 8f37dcc5-9dea-41ad-9050-9bc4aa030a3b + - 6d5fa6f0-9aed-4eb1-b32b-1053e5ae3ea7 + - cc455a6b-84fa-4215-ac20-434a312c17ec + - 778621da-f74e-4167-8940-d7f6b94d016e + - 0b76e2a4-3a5b-4d7d-bfa5-f883585ecf28 + - 39c482c4-3b81-424d-8169-64496d3eae5c + - a22f6e38-1248-411e-bf3f-231ef9b876cb + - f41de4b2-195d-4add-bbed-0d785deb2519 + - c253476c-1118-4ee9-a26a-4e00f0c3b317 + - 805f254b-b786-449a-ae6c-bb0817b71b35 status: code: 200 message: OK @@ -951,8 +943,8 @@ interactions: ParameterSetName: - --account-name --name User-Agent: - - python/3.8.2 (Windows-10-10.0.18362-SP0) msrest/0.6.11 msrest_azure/0.6.3 - azure-mgmt-storage/9.0.0 Azure-SDK-For-Python AZURECLI/2.4.0 (MSI) + - python/3.6.8 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: POST @@ -968,7 +960,7 @@ interactions: content-type: - application/json date: - - Thu, 23 Apr 2020 13:45:05 GMT + - Wed, 26 Aug 2020 05:33:56 GMT expires: - '-1' pragma: @@ -984,7 +976,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-resource-requests: - - '11998' + - '11999' status: code: 200 message: OK @@ -996,10 +988,9 @@ interactions: Content-Length: - '0' User-Agent: - - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.8.2; Windows 10) AZURECLI/2.4.0 - (MSI) + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.6.8; Windows 10) AZURECLI/2.11.0 x-ms-date: - - Thu, 23 Apr 2020 13:45:06 GMT + - Wed, 26 Aug 2020 05:33:56 GMT x-ms-version: - '2018-11-09' method: PUT @@ -1011,11 +1002,11 @@ interactions: content-length: - '0' date: - - Thu, 23 Apr 2020 13:45:07 GMT + - Wed, 26 Aug 2020 05:33:59 GMT etag: - - '"0x8D7E78C89BF1209"' + - '"0x8D84981A255D27F"' last-modified: - - Thu, 23 Apr 2020 13:45:08 GMT + - Wed, 26 Aug 2020 05:33:59 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-version: @@ -1024,9 +1015,9 @@ interactions: code: 201 message: Created - request: - body: 'b''b\''{"kind": "Container", "properties": {"containerName": "clitestcontainer", + body: '{"kind": "Container", "properties": {"containerName": "clitestcontainer", "resourceGroup": "cli_test_dat000001", "storageAccountName": "clitestdatas000002", - "subscriptionId": "0b1f6471-1bf0-4dda-aec3-cb9272f09590"}}\''''' + "subscriptionId": "0b1f6471-1bf0-4dda-aec3-cb9272f09590"}}' headers: Accept: - application/json @@ -1043,13 +1034,13 @@ interactions: ParameterSetName: - --account-name --dataset --name --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set?api-version=2019-11-01 response: body: - string: '{"properties":{"containerName":"clitestcontainer","subscriptionId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","resourceGroup":"cli_test_dat000001","storageAccountName":"clitestdatas000002","dataSetId":"031a78ef-0cfc-45b0-88a3-a20a58f3a87a"},"kind":"Container","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set","name":"cli_test_data_set","type":"Microsoft.DataShare/DataSets"}' + string: '{"properties":{"containerName":"clitestcontainer","subscriptionId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","resourceGroup":"cli_test_dat000001","storageAccountName":"clitestdatas000002","dataSetId":"b3ec7dfa-012a-4a85-b1f7-400f140aeadc"},"kind":"Container","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set","name":"cli_test_data_set","type":"Microsoft.DataShare/DataSets"}' headers: cache-control: - no-cache @@ -1058,7 +1049,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:11 GMT + - Wed, 26 Aug 2020 05:34:00 GMT expires: - '-1' location: @@ -1072,10 +1063,10 @@ interactions: x-content-type-options: - nosniff x-ms-quota: - - '[{"currentUsed":1,"limit":100,"name":{"localizedValue":"DataSet resource - quota","value":"DataSet resource quota"},"target":"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_datrywkgqr6mfnic2batum7zhzzekrutyfed7ajmopnqmg7bfkqdq2mavcabi7fdxo/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set"}]' + - '[{"currentUsed":1,"limit":200,"name":{"localizedValue":"DataSet resource + quota","value":"DataSet resource quota"},"target":"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_dat4k437juk3evbo6rjpubtqgmrpjoncob4ah3yozuootwcudid6ayi6kusmc5w44w/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set"}]' x-ms-ratelimit-remaining-subscription-writes: - - '1199' + - '1197' status: code: 201 message: Created @@ -1093,13 +1084,13 @@ interactions: ParameterSetName: - --account-name --name --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set?api-version=2019-11-01 response: body: - string: '{"properties":{"containerName":"clitestcontainer","subscriptionId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","resourceGroup":"cli_test_dat000001","storageAccountName":"clitestdatas000002","dataSetId":"031a78ef-0cfc-45b0-88a3-a20a58f3a87a"},"kind":"Container","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set","name":"cli_test_data_set","type":"Microsoft.DataShare/DataSets"}' + string: '{"properties":{"containerName":"clitestcontainer","subscriptionId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","resourceGroup":"cli_test_dat000001","storageAccountName":"clitestdatas000002","dataSetId":"b3ec7dfa-012a-4a85-b1f7-400f140aeadc"},"kind":"Container","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set","name":"cli_test_data_set","type":"Microsoft.DataShare/DataSets"}' headers: cache-control: - no-cache @@ -1108,7 +1099,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:13 GMT + - Wed, 26 Aug 2020 05:34:02 GMT expires: - '-1' pragma: @@ -1140,13 +1131,13 @@ interactions: ParameterSetName: - --account-name --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets?api-version=2019-11-01 response: body: - string: '{"value":[{"properties":{"containerName":"clitestcontainer","subscriptionId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","resourceGroup":"cli_test_dat000001","storageAccountName":"clitestdatas000002","dataSetId":"031a78ef-0cfc-45b0-88a3-a20a58f3a87a"},"kind":"Container","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set","name":"cli_test_data_set","type":"Microsoft.DataShare/DataSets"}]}' + string: '{"value":[{"properties":{"containerName":"clitestcontainer","subscriptionId":"0b1f6471-1bf0-4dda-aec3-cb9272f09590","resourceGroup":"cli_test_dat000001","storageAccountName":"clitestdatas000002","dataSetId":"b3ec7dfa-012a-4a85-b1f7-400f140aeadc"},"kind":"Container","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set","name":"cli_test_data_set","type":"Microsoft.DataShare/DataSets"}]}' headers: cache-control: - no-cache @@ -1155,7 +1146,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:16 GMT + - Wed, 26 Aug 2020 05:34:03 GMT expires: - '-1' pragma: @@ -1193,13 +1184,13 @@ interactions: - --account-name --resource-group --share-name --name --recurrence-interval --synchronization-time User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/synchronizationSettings/cli_test_synchronization_setting?api-version=2019-11-01 response: body: - string: '{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-04-23T13:45:18.9184873Z","userName":"Feng + string: '{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-08-26T05:34:05.2464344Z","userName":"Feng Zhou","provisioningState":"Succeeded"},"kind":"ScheduleBased","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/synchronizationSettings/cli_test_synchronization_setting","name":"cli_test_synchronization_setting","type":"Microsoft.DataShare/SynchronizationSettings"}' headers: cache-control: @@ -1209,7 +1200,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:18 GMT + - Wed, 26 Aug 2020 05:34:05 GMT expires: - '-1' location: @@ -1241,13 +1232,13 @@ interactions: ParameterSetName: - --account-name --resource-group --share-name --name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/synchronizationSettings/cli_test_synchronization_setting?api-version=2019-11-01 response: body: - string: '{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-04-23T13:45:18.9184873Z","userName":"Feng + string: '{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-08-26T05:34:05.2464344Z","userName":"Feng Zhou","provisioningState":"Succeeded"},"kind":"ScheduleBased","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/synchronizationSettings/cli_test_synchronization_setting","name":"cli_test_synchronization_setting","type":"Microsoft.DataShare/SynchronizationSettings"}' headers: cache-control: @@ -1257,7 +1248,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:19 GMT + - Wed, 26 Aug 2020 05:34:06 GMT expires: - '-1' pragma: @@ -1289,13 +1280,13 @@ interactions: ParameterSetName: - --account-name --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/synchronizationSettings?api-version=2019-11-01 response: body: - string: '{"value":[{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-04-23T13:45:18.9184873Z","userName":"Feng + string: '{"value":[{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-08-26T05:34:05.2464344Z","userName":"Feng Zhou","provisioningState":"Succeeded"},"kind":"ScheduleBased","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/synchronizationSettings/cli_test_synchronization_setting","name":"cli_test_synchronization_setting","type":"Microsoft.DataShare/SynchronizationSettings"}]}' headers: cache-control: @@ -1305,7 +1296,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:22 GMT + - Wed, 26 Aug 2020 05:34:07 GMT expires: - '-1' pragma: @@ -1339,8 +1330,8 @@ interactions: ParameterSetName: - --account-name --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/listSynchronizations?api-version=2019-11-01 response: @@ -1354,7 +1345,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:22 GMT + - Wed, 26 Aug 2020 05:34:08 GMT expires: - '-1' pragma: @@ -1392,13 +1383,13 @@ interactions: ParameterSetName: - --account-name --target-email --name --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/invitations/cli_test_invitation?api-version=2019-11-01 response: body: - string: '{"properties":{"sentAt":"2020-04-23T13:45:26.3055269Z","targetEmail":"consumer@microsoft.com","invitationStatus":"Pending","invitationId":"8844a5ff-7016-4c96-9901-1a7d005fc0ec","userName":"Feng + string: '{"properties":{"sentAt":"2020-08-26T05:34:10.4486509Z","targetEmail":"consumer@microsoft.com","invitationStatus":"Pending","invitationId":"25961b01-ebe4-49cd-915a-8654146d4741","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/invitations/cli_test_invitation","name":"cli_test_invitation","type":"Microsoft.DataShare/Invitations"}' headers: cache-control: @@ -1408,11 +1399,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:26 GMT + - Wed, 26 Aug 2020 05:34:10 GMT expires: - '-1' location: - - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/invitations/cli_test_invitation/8844a5ff-7016-4c96-9901-1a7d005fc0ec + - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/invitations/cli_test_invitation/25961b01-ebe4-49cd-915a-8654146d4741 pragma: - no-cache server: @@ -1421,8 +1412,11 @@ interactions: - max-age=31536000; includeSubDomains x-content-type-options: - nosniff + x-ms-quota: + - '[{"currentUsed":1,"limit":200,"name":{"localizedValue":"Invitation resource + quota","value":"Invitation resource quota"},"target":"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_dat4k437juk3evbo6rjpubtqgmrpjoncob4ah3yozuootwcudid6ayi6kusmc5w44w/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/invitations/cli_test_invitation"}]' x-ms-ratelimit-remaining-subscription-writes: - - '1196' + - '1198' status: code: 201 message: Created @@ -1440,13 +1434,13 @@ interactions: ParameterSetName: - --account-name --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/invitations?api-version=2019-11-01 response: body: - string: '{"value":[{"properties":{"sentAt":"2020-04-23T13:45:26.3055269Z","targetEmail":"consumer@microsoft.com","invitationStatus":"Pending","invitationId":"8844a5ff-7016-4c96-9901-1a7d005fc0ec","userName":"Feng + string: '{"value":[{"properties":{"sentAt":"2020-08-26T05:34:10.4486509Z","targetEmail":"consumer@microsoft.com","invitationStatus":"Pending","invitationId":"25961b01-ebe4-49cd-915a-8654146d4741","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/invitations/cli_test_invitation","name":"cli_test_invitation","type":"Microsoft.DataShare/Invitations"}]}' headers: cache-control: @@ -1456,7 +1450,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:27 GMT + - Wed, 26 Aug 2020 05:34:11 GMT expires: - '-1' pragma: @@ -1488,13 +1482,13 @@ interactions: ParameterSetName: - --account-name --name --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/invitations/cli_test_invitation?api-version=2019-11-01 response: body: - string: '{"properties":{"sentAt":"2020-04-23T13:45:26.3055269Z","targetEmail":"consumer@microsoft.com","invitationStatus":"Pending","invitationId":"8844a5ff-7016-4c96-9901-1a7d005fc0ec","userName":"Feng + string: '{"properties":{"sentAt":"2020-08-26T05:34:10.4486509Z","targetEmail":"consumer@microsoft.com","invitationStatus":"Pending","invitationId":"25961b01-ebe4-49cd-915a-8654146d4741","userName":"Feng Zhou","userEmail":"provider@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/invitations/cli_test_invitation","name":"cli_test_invitation","type":"Microsoft.DataShare/Invitations"}' headers: cache-control: @@ -1504,7 +1498,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:29 GMT + - Wed, 26 Aug 2020 05:34:12 GMT expires: - '-1' pragma: @@ -1536,64 +1530,104 @@ interactions: ParameterSetName: - --account-name --name --resource-group --share-name User-Agent: - - python/3.8.2 (Windows-10-10.0.18362-SP0) msrest/0.6.11 msrest_azure/0.6.3 - azure-mgmt-resource/8.0.1 Azure-SDK-For-Python AZURECLI/2.4.0 (MSI) + - python/3.6.8 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/locations?api-version=2019-06-01 - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia","name":"eastasia","displayName":"East - Asia","longitude":"114.188","latitude":"22.267"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia","name":"southeastasia","displayName":"Southeast - Asia","longitude":"103.833","latitude":"1.283"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus","name":"centralus","displayName":"Central - US","longitude":"-93.6208","latitude":"41.5908"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus","name":"eastus","displayName":"East - US","longitude":"-79.8164","latitude":"37.3719"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2","name":"eastus2","displayName":"East - US 2","longitude":"-78.3889","latitude":"36.6681"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus","name":"westus","displayName":"West - US","longitude":"-122.417","latitude":"37.783"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus","name":"northcentralus","displayName":"North - Central US","longitude":"-87.6278","latitude":"41.8819"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus","name":"southcentralus","displayName":"South - Central US","longitude":"-98.5","latitude":"29.4167"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope","name":"northeurope","displayName":"North - Europe","longitude":"-6.2597","latitude":"53.3478"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope","name":"westeurope","displayName":"West - Europe","longitude":"4.9","latitude":"52.3667"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest","name":"japanwest","displayName":"Japan - West","longitude":"135.5022","latitude":"34.6939"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast","name":"japaneast","displayName":"Japan - East","longitude":"139.77","latitude":"35.68"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth","name":"brazilsouth","displayName":"Brazil - South","longitude":"-46.633","latitude":"-23.55"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast","name":"australiaeast","displayName":"Australia - East","longitude":"151.2094","latitude":"-33.86"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast","name":"australiasoutheast","displayName":"Australia - Southeast","longitude":"144.9631","latitude":"-37.8136"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia","name":"southindia","displayName":"South - India","longitude":"80.1636","latitude":"12.9822"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia","name":"centralindia","displayName":"Central - India","longitude":"73.9197","latitude":"18.5822"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westindia","name":"westindia","displayName":"West - India","longitude":"72.868","latitude":"19.088"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral","name":"canadacentral","displayName":"Canada - Central","longitude":"-79.383","latitude":"43.653"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast","name":"canadaeast","displayName":"Canada - East","longitude":"-71.217","latitude":"46.817"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth","name":"uksouth","displayName":"UK - South","longitude":"-0.799","latitude":"50.941"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest","name":"ukwest","displayName":"UK - West","longitude":"-3.084","latitude":"53.427"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus","name":"westcentralus","displayName":"West - Central US","longitude":"-110.234","latitude":"40.890"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2","name":"westus2","displayName":"West - US 2","longitude":"-119.852","latitude":"47.233"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral","name":"koreacentral","displayName":"Korea - Central","longitude":"126.9780","latitude":"37.5665"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth","name":"koreasouth","displayName":"Korea - South","longitude":"129.0756","latitude":"35.1796"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral","name":"francecentral","displayName":"France - Central","longitude":"2.3730","latitude":"46.3772"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth","name":"francesouth","displayName":"France - South","longitude":"2.1972","latitude":"43.8345"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral","name":"australiacentral","displayName":"Australia - Central","longitude":"149.1244","latitude":"-35.3075"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2","name":"australiacentral2","displayName":"Australia - Central 2","longitude":"149.1244","latitude":"-35.3075"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral","name":"uaecentral","displayName":"UAE - Central","longitude":"54.366669","latitude":"24.466667"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth","name":"uaenorth","displayName":"UAE - North","longitude":"55.316666","latitude":"25.266666"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth","name":"southafricanorth","displayName":"South - Africa North","longitude":"28.218370","latitude":"-25.731340"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest","name":"southafricawest","displayName":"South - Africa West","longitude":"18.843266","latitude":"-34.075691"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth","name":"switzerlandnorth","displayName":"Switzerland - North","longitude":"8.564572","latitude":"47.451542"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest","name":"switzerlandwest","displayName":"Switzerland - West","longitude":"6.143158","latitude":"46.204391"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth","name":"germanynorth","displayName":"Germany - North","longitude":"8.806422","latitude":"53.073635"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral","name":"germanywestcentral","displayName":"Germany - West Central","longitude":"8.682127","latitude":"50.110924"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest","name":"norwaywest","displayName":"Norway - West","longitude":"5.733107","latitude":"58.969975"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast","name":"norwayeast","displayName":"Norway - East","longitude":"10.752245","latitude":"59.913868"}]}' - headers: - cache-control: - - no-cache - content-length: - - '7129' + 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/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/uksouth","name":"uksouth","displayName":"UK + South","regionalDisplayName":"(Europe) UK South","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"-0.799","latitude":"50.941","physicalLocation":"London","pairedRegion":[{"name":"ukwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope","name":"westeurope","displayName":"West + Europe","regionalDisplayName":"(Europe) West Europe","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"4.9","latitude":"52.3667","physicalLocation":"Netherlands","pairedRegion":[{"name":"northeurope","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus","name":"centralus","displayName":"Central + US","regionalDisplayName":"(US) Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-93.6208","latitude":"41.5908","physicalLocation":"Iowa","pairedRegion":[{"name":"eastus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus","name":"northcentralus","displayName":"North + Central US","regionalDisplayName":"(US) North Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-87.6278","latitude":"41.8819","physicalLocation":"Illinois","pairedRegion":[{"name":"southcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus","name":"westus","displayName":"West + US","regionalDisplayName":"(US) West US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-122.417","latitude":"37.783","physicalLocation":"California","pairedRegion":[{"name":"eastus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth","name":"southafricanorth","displayName":"South + Africa North","regionalDisplayName":"(Africa) South Africa North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Africa","longitude":"28.218370","latitude":"-25.731340","physicalLocation":"Johannesburg","pairedRegion":[{"name":"southafricawest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia","name":"centralindia","displayName":"Central + India","regionalDisplayName":"(Asia Pacific) Central India","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"73.9197","latitude":"18.5822","physicalLocation":"Pune","pairedRegion":[{"name":"southindia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia","name":"eastasia","displayName":"East + Asia","regionalDisplayName":"(Asia Pacific) East Asia","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"114.188","latitude":"22.267","physicalLocation":"Hong + Kong","pairedRegion":[{"name":"southeastasia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast","name":"japaneast","displayName":"Japan + East","regionalDisplayName":"(Asia Pacific) Japan East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"139.77","latitude":"35.68","physicalLocation":"Tokyo, + Saitama","pairedRegion":[{"name":"japanwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral","name":"koreacentral","displayName":"Korea + Central","regionalDisplayName":"(Asia Pacific) Korea Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"126.9780","latitude":"37.5665","physicalLocation":"Seoul","pairedRegion":[{"name":"koreasouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral","name":"canadacentral","displayName":"Canada + Central","regionalDisplayName":"(Canada) Canada Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Canada","longitude":"-79.383","latitude":"43.653","physicalLocation":"Toronto","pairedRegion":[{"name":"canadaeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral","name":"francecentral","displayName":"France + Central","regionalDisplayName":"(Europe) France Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"2.3730","latitude":"46.3772","physicalLocation":"Paris","pairedRegion":[{"name":"francesouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral","name":"germanywestcentral","displayName":"Germany + West Central","regionalDisplayName":"(Europe) Germany West Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"8.682127","latitude":"50.110924","physicalLocation":"Frankfurt","pairedRegion":[{"name":"germanynorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast","name":"norwayeast","displayName":"Norway + East","regionalDisplayName":"(Europe) Norway East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"10.752245","latitude":"59.913868","physicalLocation":"Norway","pairedRegion":[{"name":"norwaywest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth","name":"switzerlandnorth","displayName":"Switzerland + North","regionalDisplayName":"(Europe) Switzerland North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"8.564572","latitude":"47.451542","physicalLocation":"Zurich","pairedRegion":[{"name":"switzerlandwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth","name":"uaenorth","displayName":"UAE + North","regionalDisplayName":"(Middle East) UAE North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Middle + East","longitude":"55.316666","latitude":"25.266666","physicalLocation":"Dubai","pairedRegion":[{"name":"uaecentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth","name":"brazilsouth","displayName":"Brazil + South","regionalDisplayName":"(South America) Brazil South","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"South + America","longitude":"-46.633","latitude":"-23.55","physicalLocation":"Sao + Paulo State","pairedRegion":[{"name":"southcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralusstage","name":"centralusstage","displayName":"Central + US (Stage)","regionalDisplayName":"(US) Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusstage","name":"eastusstage","displayName":"East + US (Stage)","regionalDisplayName":"(US) East US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2stage","name":"eastus2stage","displayName":"East + US 2 (Stage)","regionalDisplayName":"(US) East US 2 (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralusstage","name":"northcentralusstage","displayName":"North + Central US (Stage)","regionalDisplayName":"(US) North Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralusstage","name":"southcentralusstage","displayName":"South + Central US (Stage)","regionalDisplayName":"(US) South Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westusstage","name":"westusstage","displayName":"West + US (Stage)","regionalDisplayName":"(US) West US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2stage","name":"westus2stage","displayName":"West + US 2 (Stage)","regionalDisplayName":"(US) West US 2 (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asia","name":"asia","displayName":"Asia","regionalDisplayName":"Asia","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asiapacific","name":"asiapacific","displayName":"Asia + Pacific","regionalDisplayName":"Asia Pacific","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australia","name":"australia","displayName":"Australia","regionalDisplayName":"Australia","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazil","name":"brazil","displayName":"Brazil","regionalDisplayName":"Brazil","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canada","name":"canada","displayName":"Canada","regionalDisplayName":"Canada","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/europe","name":"europe","displayName":"Europe","regionalDisplayName":"Europe","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/global","name":"global","displayName":"Global","regionalDisplayName":"Global","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/india","name":"india","displayName":"India","regionalDisplayName":"India","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japan","name":"japan","displayName":"Japan","regionalDisplayName":"Japan","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uk","name":"uk","displayName":"United + Kingdom","regionalDisplayName":"United Kingdom","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/unitedstates","name":"unitedstates","displayName":"United + States","regionalDisplayName":"United States","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasiastage","name":"eastasiastage","displayName":"East + Asia (Stage)","regionalDisplayName":"(Asia Pacific) East Asia (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"Asia + Pacific"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasiastage","name":"southeastasiastage","displayName":"Southeast + Asia (Stage)","regionalDisplayName":"(Asia Pacific) Southeast Asia (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"Asia + Pacific"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap","name":"centraluseuap","displayName":"Central + US EUAP","regionalDisplayName":"(US) Central US EUAP","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-93.6208","latitude":"41.5908","pairedRegion":[{"name":"eastus2euap","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap","name":"eastus2euap","displayName":"East + US 2 EUAP","regionalDisplayName":"(US) East US 2 EUAP","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-78.3889","latitude":"36.6681","pairedRegion":[{"name":"centraluseuap","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus","name":"westcentralus","displayName":"West + Central US","regionalDisplayName":"(US) West Central US","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-110.234","latitude":"40.890","physicalLocation":"Wyoming","pairedRegion":[{"name":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest","name":"southafricawest","displayName":"South + Africa West","regionalDisplayName":"(Africa) South Africa West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Africa","longitude":"18.843266","latitude":"-34.075691","physicalLocation":"Cape + Town","pairedRegion":[{"name":"southafricanorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral","name":"australiacentral","displayName":"Australia + Central","regionalDisplayName":"(Asia Pacific) Australia Central","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"149.1244","latitude":"-35.3075","physicalLocation":"Canberra","pairedRegion":[{"name":"australiacentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2","name":"australiacentral2","displayName":"Australia + Central 2","regionalDisplayName":"(Asia Pacific) Australia Central 2","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"149.1244","latitude":"-35.3075","physicalLocation":"Canberra","pairedRegion":[{"name":"australiacentral2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast","name":"australiasoutheast","displayName":"Australia + Southeast","regionalDisplayName":"(Asia Pacific) Australia Southeast","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"144.9631","latitude":"-37.8136","physicalLocation":"Victoria","pairedRegion":[{"name":"australiaeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest","name":"japanwest","displayName":"Japan + West","regionalDisplayName":"(Asia Pacific) Japan West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"135.5022","latitude":"34.6939","physicalLocation":"Osaka","pairedRegion":[{"name":"japaneast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/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: + - '25098' content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:30 GMT + - Wed, 26 Aug 2020 05:34:13 GMT expires: - '-1' pragma: @@ -1625,43 +1659,42 @@ interactions: ParameterSetName: - --location --name --resource-group --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b6e0a818-ff37-4b75-95bd-1b2526538ea7","tenantId":"66d4b7e9-35f0-4be4-993b-31770b23fbae"},"properties":{"createdAt":"2020-04-23T13:45:41.6651537Z","provisioningState":"Creating","userName":"Allen + string: '{"identity":{"type":"SystemAssigned","principalId":"f7147b7f-06d3-4003-823c-081f55252444","tenantId":"66d4b7e9-35f0-4be4-993b-31770b23fbae"},"properties":{"createdAt":"2020-08-26T05:08:23.2292535Z","provisioningState":"Succeeded","userName":"Allen Zhou","userEmail":"consumer@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account","name":"cli_test_consumer_account","type":"Microsoft.DataShare/accounts","location":"westus2"}' headers: cache-control: - no-cache content-length: - - '543' + - '544' content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:42 GMT + - Wed, 26 Aug 2020 05:34:19 GMT expires: - '-1' - location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account?api-version=2019-11-01 pragma: - no-cache server: - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding x-content-type-options: - nosniff - x-ms-quota: - - '[{"currentUsed":1,"limit":50,"name":{"localizedValue":"Account resource quota","value":"Account - resource quota"},"target":"/subscriptions/9abff005-2afc-4de1-b39c-344b9de2cc9c/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account"}]' x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1199' status: - code: 201 - message: Created + code: 200 + message: OK - request: body: null headers: @@ -1676,23 +1709,23 @@ interactions: ParameterSetName: - --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/providers/Microsoft.DataShare/ListInvitations?api-version=2019-11-01 response: body: - string: '{"value":[{"properties":{"description":"share description","dataSetCount":1,"invitationId":"8844a5ff-7016-4c96-9901-1a7d005fc0ec","invitationStatus":"Pending","location":"westus2","shareName":"cli_test_share","sentAt":"2020-04-23T13:45:26.3055269Z","termsOfUse":"Confidential","providerName":"Feng - Zhou","providerEmail":"provider@microsoft.com","providerTenantName":"AzureSDKTeam","userName":null,"userEmail":null},"id":"/providers/Microsoft.DataShare/consumerInvitations/8844a5ff-7016-4c96-9901-1a7d005fc0ec","name":"cli_test_invitation","type":"Microsoft.DataShare/consumerInvitations"}]}' + string: '{"value":[{"properties":{"description":"share description","dataSetCount":1,"invitationId":"25961b01-ebe4-49cd-915a-8654146d4741","invitationStatus":"Pending","location":"westus2","shareName":"cli_test_share","sentAt":"2020-08-26T05:34:10.4486509Z","termsOfUse":"Confidential","providerName":"Feng + Zhou","providerEmail":"provider@microsoft.com","providerTenantName":"AzureSDKTeam","userName":null,"userEmail":null},"id":"/providers/Microsoft.DataShare/locations/westus2/consumerInvitations/25961b01-ebe4-49cd-915a-8654146d4741","name":"cli_test_invitation","type":"Microsoft.DataShare/consumerInvitations"}]}' headers: cache-control: - no-cache content-length: - - '591' + - '609' content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:45:45 GMT + - Wed, 26 Aug 2020 05:34:22 GMT expires: - '-1' pragma: @@ -1710,6 +1743,7 @@ interactions: - '' - '' - '' + - '' status: code: 200 message: OK @@ -1727,215 +1761,23 @@ interactions: ParameterSetName: - --invitation-id --subscription --location User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) - method: GET - uri: https://management.azure.com/providers/Microsoft.DataShare/locations/westus2/consumerInvitations/8844a5ff-7016-4c96-9901-1a7d005fc0ec?api-version=2019-11-01 - response: - body: - string: '{"properties":{"description":"share description","dataSetCount":1,"invitationId":"8844a5ff-7016-4c96-9901-1a7d005fc0ec","invitationStatus":"Pending","location":"westus2","shareName":"cli_test_share","sentAt":"2020-04-23T13:45:26.3055269Z","termsOfUse":"Confidential","providerName":"Feng - Zhou","providerEmail":"provider@microsoft.com","providerTenantName":"AzureSDKTeam","userName":null,"userEmail":null},"id":"/providers/Microsoft.DataShare/consumerInvitations/8844a5ff-7016-4c96-9901-1a7d005fc0ec","name":"cli_test_invitation","type":"Microsoft.DataShare/consumerInvitations"}' - headers: - cache-control: - - no-cache - content-length: - - '579' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 23 Apr 2020 13:45:48 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - 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: - - datashare account wait - Connection: - - keep-alive - ParameterSetName: - - --name --resource-group --created --subscription - User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account?api-version=2019-11-01 - response: - body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b6e0a818-ff37-4b75-95bd-1b2526538ea7","tenantId":"66d4b7e9-35f0-4be4-993b-31770b23fbae"},"properties":{"createdAt":"2020-04-23T13:45:41.6651537Z","provisioningState":"Creating","userName":"Allen - Zhou","userEmail":"consumer@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account","name":"cli_test_consumer_account","type":"Microsoft.DataShare/accounts","location":"westus2"}' - headers: - cache-control: - - no-cache - content-length: - - '543' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 23 Apr 2020 13:45:49 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - 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: - - datashare account wait - Connection: - - keep-alive - ParameterSetName: - - --name --resource-group --created --subscription - User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account?api-version=2019-11-01 - response: - body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b6e0a818-ff37-4b75-95bd-1b2526538ea7","tenantId":"66d4b7e9-35f0-4be4-993b-31770b23fbae"},"properties":{"createdAt":"2020-04-23T13:45:41.6651537Z","provisioningState":"Creating","userName":"Allen - Zhou","userEmail":"consumer@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account","name":"cli_test_consumer_account","type":"Microsoft.DataShare/accounts","location":"westus2"}' - headers: - cache-control: - - no-cache - content-length: - - '543' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 23 Apr 2020 13:46:19 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - 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: - - datashare account wait - Connection: - - keep-alive - ParameterSetName: - - --name --resource-group --created --subscription - User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account?api-version=2019-11-01 - response: - body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b6e0a818-ff37-4b75-95bd-1b2526538ea7","tenantId":"66d4b7e9-35f0-4be4-993b-31770b23fbae"},"properties":{"createdAt":"2020-04-23T13:45:41.6651537Z","provisioningState":"Creating","userName":"Allen - Zhou","userEmail":"consumer@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account","name":"cli_test_consumer_account","type":"Microsoft.DataShare/accounts","location":"westus2"}' - headers: - cache-control: - - no-cache - content-length: - - '543' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 23 Apr 2020 13:46:49 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - 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: - - datashare account wait - Connection: - - keep-alive - ParameterSetName: - - --name --resource-group --created --subscription - User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account?api-version=2019-11-01 + uri: https://management.azure.com/providers/Microsoft.DataShare/locations/westus2/consumerInvitations/25961b01-ebe4-49cd-915a-8654146d4741?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b6e0a818-ff37-4b75-95bd-1b2526538ea7","tenantId":"66d4b7e9-35f0-4be4-993b-31770b23fbae"},"properties":{"createdAt":"2020-04-23T13:45:41.6651537Z","provisioningState":"Creating","userName":"Allen - Zhou","userEmail":"consumer@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account","name":"cli_test_consumer_account","type":"Microsoft.DataShare/accounts","location":"westus2"}' + string: '{"properties":{"description":"share description","dataSetCount":1,"invitationId":"25961b01-ebe4-49cd-915a-8654146d4741","invitationStatus":"Pending","location":"westus2","shareName":"cli_test_share","sentAt":"2020-08-26T05:34:10.4486509Z","termsOfUse":"Confidential","providerName":"Feng + Zhou","providerEmail":"provider@microsoft.com","providerTenantName":"AzureSDKTeam","userName":null,"userEmail":null},"id":"/providers/Microsoft.DataShare/locations/westus2/consumerInvitations/25961b01-ebe4-49cd-915a-8654146d4741","name":"cli_test_invitation","type":"Microsoft.DataShare/consumerInvitations"}' headers: cache-control: - no-cache content-length: - - '543' + - '597' content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:47:21 GMT + - Wed, 26 Aug 2020 05:34:24 GMT expires: - '-1' pragma: @@ -1967,13 +1809,13 @@ interactions: ParameterSetName: - --name --resource-group --created --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account?api-version=2019-11-01 response: body: - string: '{"identity":{"type":"SystemAssigned","principalId":"b6e0a818-ff37-4b75-95bd-1b2526538ea7","tenantId":"66d4b7e9-35f0-4be4-993b-31770b23fbae"},"properties":{"createdAt":"2020-04-23T13:45:41.6651537Z","provisioningState":"Succeeded","userName":"Allen + string: '{"identity":{"type":"SystemAssigned","principalId":"f7147b7f-06d3-4003-823c-081f55252444","tenantId":"66d4b7e9-35f0-4be4-993b-31770b23fbae"},"properties":{"createdAt":"2020-08-26T05:08:23.2292535Z","provisioningState":"Succeeded","userName":"Allen Zhou","userEmail":"consumer@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account","name":"cli_test_consumer_account","type":"Microsoft.DataShare/accounts","location":"westus2"}' headers: cache-control: @@ -1983,7 +1825,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:47:51 GMT + - Wed, 26 Aug 2020 05:34:25 GMT expires: - '-1' pragma: @@ -2002,7 +1844,7 @@ interactions: code: 200 message: OK - request: - body: '{"properties": {"invitationId": "8844a5ff-7016-4c96-9901-1a7d005fc0ec", + body: '{"properties": {"invitationId": "25961b01-ebe4-49cd-915a-8654146d4741", "sourceShareLocation": "westus2"}}' headers: Accept: @@ -2021,13 +1863,13 @@ interactions: - --account-name --resource-group --invitation-id --source-share-location --name --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription?api-version=2019-11-01 response: body: - string: '{"properties":{"createdAt":"2020-04-23T13:47:55.3598425Z","invitationId":"8844a5ff-7016-4c96-9901-1a7d005fc0ec","sourceShareLocation":"westus2","provisioningState":"Succeeded","shareDescription":"share + string: '{"properties":{"createdAt":"2020-08-26T05:34:29.3515129Z","invitationId":"25961b01-ebe4-49cd-915a-8654146d4741","sourceShareLocation":"westus2","provisioningState":"Succeeded","shareDescription":"share description","shareKind":"CopyBased","shareName":"cli_test_share","shareSubscriptionStatus":"Active","shareTerms":"Confidential","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","providerTenantName":"AzureSDKTeam","userName":"Allen Zhou","userEmail":"consumer@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}' @@ -2039,7 +1881,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:47:55 GMT + - Wed, 26 Aug 2020 05:34:29 GMT expires: - '-1' location: @@ -2054,7 +1896,7 @@ interactions: - nosniff x-ms-quota: - '[{"currentUsed":1,"limit":100,"name":{"localizedValue":"ShareSubscription - resource quota","value":"ShareSubscription resource quota"},"target":"/subscriptions/9abff005-2afc-4de1-b39c-344b9de2cc9c/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription"}]' + resource quota","value":"ShareSubscription resource quota"},"target":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription"}]' x-ms-ratelimit-remaining-subscription-writes: - '1199' status: @@ -2074,13 +1916,13 @@ interactions: ParameterSetName: - --account-name --resource-group --name --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription?api-version=2019-11-01 response: body: - string: '{"properties":{"createdAt":"2020-04-23T13:47:55.3598425Z","invitationId":"8844a5ff-7016-4c96-9901-1a7d005fc0ec","sourceShareLocation":"westus2","provisioningState":"Succeeded","shareDescription":"share + string: '{"properties":{"createdAt":"2020-08-26T05:34:29.3515129Z","invitationId":"25961b01-ebe4-49cd-915a-8654146d4741","sourceShareLocation":"westus2","provisioningState":"Succeeded","shareDescription":"share description","shareKind":"CopyBased","shareName":"cli_test_share","shareSubscriptionStatus":"Active","shareTerms":"Confidential","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","providerTenantName":"AzureSDKTeam","userName":"Allen Zhou","userEmail":"consumer@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}' @@ -2092,7 +1934,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:47:56 GMT + - Wed, 26 Aug 2020 05:34:30 GMT expires: - '-1' pragma: @@ -2124,13 +1966,13 @@ interactions: ParameterSetName: - --account-name --resource-group --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions?api-version=2019-11-01 response: body: - string: '{"value":[{"properties":{"createdAt":"2020-04-23T13:47:55.3598425Z","invitationId":"8844a5ff-7016-4c96-9901-1a7d005fc0ec","sourceShareLocation":"westus2","provisioningState":"Succeeded","shareDescription":"share + string: '{"value":[{"properties":{"createdAt":"2020-08-26T05:34:29.3515129Z","invitationId":"25961b01-ebe4-49cd-915a-8654146d4741","sourceShareLocation":"westus2","provisioningState":"Succeeded","shareDescription":"share description","shareKind":"CopyBased","shareName":"cli_test_share","shareSubscriptionStatus":"Active","shareTerms":"Confidential","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","providerTenantName":"AzureSDKTeam","userName":"Allen Zhou","userEmail":"consumer@microsoft.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}]}' @@ -2142,7 +1984,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:47:59 GMT + - Wed, 26 Aug 2020 05:34:31 GMT expires: - '-1' pragma: @@ -2174,13 +2016,13 @@ interactions: ParameterSetName: - --account-name --resource-group --share-subscription-name --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/ConsumerSourceDataSets?api-version=2019-11-01 response: body: - string: '{"value":[{"properties":{"dataSetName":"cli_test_data_set","dataSetPath":"clitestcontainer","dataSetId":"031a78ef-0cfc-45b0-88a3-a20a58f3a87a","dataSetLocation":null,"dataSetType":"Container"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/consumerSourceDataSets/cli_test_data_set","name":"cli_test_data_set","type":"Microsoft.DataShare/ConsumerSourceDataSet"}]}' + string: '{"value":[{"properties":{"dataSetName":"cli_test_data_set","dataSetPath":"clitestcontainer","dataSetId":"b3ec7dfa-012a-4a85-b1f7-400f140aeadc","dataSetLocation":null,"dataSetType":"Container"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/consumerSourceDataSets/cli_test_data_set","name":"cli_test_data_set","type":"Microsoft.DataShare/ConsumerSourceDataSet"}]}' headers: cache-control: - no-cache @@ -2189,7 +2031,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:00 GMT + - Wed, 26 Aug 2020 05:34:33 GMT expires: - '-1' pragma: @@ -2221,8 +2063,8 @@ interactions: ParameterSetName: - -n -g --subscription User-Agent: - - python/3.8.2 (Windows-10-10.0.18362-SP0) msrest/0.6.11 msrest_azure/0.6.3 - azure-mgmt-storage/9.0.0 Azure-SDK-For-Python AZURECLI/2.4.0 (MSI) + - python/3.6.8 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: GET @@ -2238,7 +2080,7 @@ interactions: content-type: - application/json date: - - Thu, 23 Apr 2020 13:48:02 GMT + - Wed, 26 Aug 2020 05:34:33 GMT expires: - '-1' pragma: @@ -2258,7 +2100,7 @@ interactions: message: OK - request: body: '{"properties": {"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe", - "principalId": "b6e0a818-ff37-4b75-95bd-1b2526538ea7", "principalType": "ServicePrincipal"}}' + "principalId": "f7147b7f-06d3-4003-823c-081f55252444", "principalType": "ServicePrincipal"}}' headers: Accept: - application/json @@ -2275,15 +2117,15 @@ interactions: ParameterSetName: - --role --assignee-object-id --assignee-principal-type --scope --subscription User-Agent: - - python/3.8.2 (Windows-10-10.0.18362-SP0) msrest/0.6.11 msrest_azure/0.6.3 - azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.4.0 (MSI) + - python/3.6.8 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-authorization/0.52.0 Azure-SDK-For-Python AZURECLI/2.11.0 accept-language: - en-US method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.Storage/storageAccounts/datashareconsumersa/providers/Microsoft.Authorization/roleAssignments/3a1bf740-28a5-4a0d-bdb5-48fdb2c43922?api-version=2018-09-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.Storage/storageAccounts/datashareconsumersa/providers/Microsoft.Authorization/roleAssignments/293ef04b-8383-4c74-aaeb-fff997d4e4d4?api-version=2018-09-01-preview response: body: - string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe","principalId":"b6e0a818-ff37-4b75-95bd-1b2526538ea7","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.Storage/storageAccounts/datashareconsumersa","createdOn":"2020-04-23T13:48:04.0784140Z","updatedOn":"2020-04-23T13:48:04.0784140Z","createdBy":null,"updatedBy":"97bce510-8fdd-4a59-9f13-f32a6179931e"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.Storage/storageAccounts/datashareconsumersa/providers/Microsoft.Authorization/roleAssignments/3a1bf740-28a5-4a0d-bdb5-48fdb2c43922","type":"Microsoft.Authorization/roleAssignments","name":"3a1bf740-28a5-4a0d-bdb5-48fdb2c43922"}' + string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe","principalId":"f7147b7f-06d3-4003-823c-081f55252444","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.Storage/storageAccounts/datashareconsumersa","createdOn":"2020-08-26T05:34:34.5002060Z","updatedOn":"2020-08-26T05:34:34.5002060Z","createdBy":null,"updatedBy":"97bce510-8fdd-4a59-9f13-f32a6179931e"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.Storage/storageAccounts/datashareconsumersa/providers/Microsoft.Authorization/roleAssignments/293ef04b-8383-4c74-aaeb-fff997d4e4d4","type":"Microsoft.Authorization/roleAssignments","name":"293ef04b-8383-4c74-aaeb-fff997d4e4d4"}' headers: cache-control: - no-cache @@ -2292,27 +2134,27 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:10 GMT + - Wed, 26 Aug 2020 05:34:38 GMT expires: - '-1' pragma: - no-cache set-cookie: - - x-ms-gateway-slice=Production; path=/; SameSite=None; secure; HttpOnly + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly strict-transport-security: - max-age=31536000; includeSubDomains x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1199' + - '1198' status: code: 201 message: Created - request: body: '{"kind": "BlobFolder", "properties": {"containerName": "clitestconsumercontainer", - "dataSetId": "031a78ef-0cfc-45b0-88a3-a20a58f3a87a", "prefix": "cli_test_data_set", + "dataSetId": "b3ec7dfa-012a-4a85-b1f7-400f140aeadc", "prefix": "cli_test_data_set", "resourceGroup": "datashare_consumer_rg", "storageAccountName": "datashareconsumersa", - "subscriptionId": "9abff005-2afc-4de1-b39c-344b9de2cc9c"}}' + "subscriptionId": "00000000-0000-0000-0000-000000000000"}}' headers: Accept: - application/json @@ -2330,13 +2172,13 @@ interactions: - --account-name --name --resource-group --share-subscription-name --mapping --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping?api-version=2019-11-01 response: body: - string: '{"properties":{"containerName":"clitestconsumercontainer","prefix":"cli_test_data_set","subscriptionId":"9abff005-2afc-4de1-b39c-344b9de2cc9c","resourceGroup":"datashare_consumer_rg","storageAccountName":"datashareconsumersa","dataSetId":"031a78ef-0cfc-45b0-88a3-a20a58f3a87a","dataSetMappingStatus":"Ok","provisioningState":"Succeeded"},"kind":"BlobFolder","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping","name":"cli_test_data_set_mapping","type":"Microsoft.DataShare/DataSetMappings"}' + string: '{"properties":{"containerName":"clitestconsumercontainer","prefix":"cli_test_data_set","subscriptionId":"00000000-0000-0000-0000-000000000000","resourceGroup":"datashare_consumer_rg","storageAccountName":"datashareconsumersa","dataSetId":"b3ec7dfa-012a-4a85-b1f7-400f140aeadc","dataSetMappingStatus":"Ok","provisioningState":"Succeeded"},"kind":"BlobFolder","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping","name":"cli_test_data_set_mapping","type":"Microsoft.DataShare/DataSetMappings"}' headers: cache-control: - no-cache @@ -2345,7 +2187,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:25 GMT + - Wed, 26 Aug 2020 05:34:49 GMT expires: - '-1' location: @@ -2359,10 +2201,10 @@ interactions: x-content-type-options: - nosniff x-ms-quota: - - '[{"currentUsed":1,"limit":100,"name":{"localizedValue":"DataSetMapping resource - quota","value":"DataSetMapping resource quota"},"target":"/subscriptions/9abff005-2afc-4de1-b39c-344b9de2cc9c/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping"}]' + - '[{"currentUsed":1,"limit":200,"name":{"localizedValue":"DataSetMapping resource + quota","value":"DataSetMapping resource quota"},"target":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping"}]' x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1199' status: code: 201 message: Created @@ -2385,16 +2227,16 @@ interactions: - --account-name --resource-group --share-subscription-name --synchronization-mode --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/Synchronize?api-version=2019-11-01 response: body: - string: '{"status":"Queued","synchronizationId":"46da96f7-df55-4472-9d4a-90dabc0dc1c2","synchronizationMode":"Incremental"}' + string: '{"status":"Queued","synchronizationId":"d1470340-7765-4519-a701-88523c66ff7f","synchronizationMode":"Incremental"}' headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/synchronizationOperationResults/46da96f7-df55-4472-9d4a-90dabc0dc1c2?api-version=2019-11-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/synchronizationOperationResults/d1470340-7765-4519-a701-88523c66ff7f?api-version=2019-11-01 cache-control: - no-cache content-length: @@ -2402,11 +2244,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:31 GMT + - Wed, 26 Aug 2020 05:34:55 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/shareSubscriptionSynchronizations/46da96f7-df55-4472-9d4a-90dabc0dc1c2?api-version=2019-11-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/shareSubscriptionSynchronizations/d1470340-7765-4519-a701-88523c66ff7f?api-version=2019-11-01 pragma: - no-cache server: @@ -2434,13 +2276,13 @@ interactions: ParameterSetName: - --account-name --name --resource-group --share-subscription-name --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping?api-version=2019-11-01 response: body: - string: '{"properties":{"containerName":"clitestconsumercontainer","prefix":"cli_test_data_set","subscriptionId":"9abff005-2afc-4de1-b39c-344b9de2cc9c","resourceGroup":"datashare_consumer_rg","storageAccountName":"datashareconsumersa","dataSetId":"031a78ef-0cfc-45b0-88a3-a20a58f3a87a","dataSetMappingStatus":"Ok","provisioningState":"Succeeded"},"kind":"BlobFolder","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping","name":"cli_test_data_set_mapping","type":"Microsoft.DataShare/DataSetMappings"}' + string: '{"properties":{"containerName":"clitestconsumercontainer","prefix":"cli_test_data_set","subscriptionId":"00000000-0000-0000-0000-000000000000","resourceGroup":"datashare_consumer_rg","storageAccountName":"datashareconsumersa","dataSetId":"b3ec7dfa-012a-4a85-b1f7-400f140aeadc","dataSetMappingStatus":"Ok","provisioningState":"Succeeded"},"kind":"BlobFolder","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping","name":"cli_test_data_set_mapping","type":"Microsoft.DataShare/DataSetMappings"}' headers: cache-control: - no-cache @@ -2449,7 +2291,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:32 GMT + - Wed, 26 Aug 2020 05:34:55 GMT expires: - '-1' pragma: @@ -2481,13 +2323,13 @@ interactions: ParameterSetName: - --account-name --resource-group --share-subscription-name --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings?api-version=2019-11-01 response: body: - string: '{"value":[{"properties":{"containerName":"clitestconsumercontainer","prefix":"cli_test_data_set","subscriptionId":"9abff005-2afc-4de1-b39c-344b9de2cc9c","resourceGroup":"datashare_consumer_rg","storageAccountName":"datashareconsumersa","dataSetId":"031a78ef-0cfc-45b0-88a3-a20a58f3a87a","dataSetMappingStatus":"Ok","provisioningState":"Succeeded"},"kind":"BlobFolder","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping","name":"cli_test_data_set_mapping","type":"Microsoft.DataShare/DataSetMappings"}]}' + string: '{"value":[{"properties":{"containerName":"clitestconsumercontainer","prefix":"cli_test_data_set","subscriptionId":"00000000-0000-0000-0000-000000000000","resourceGroup":"datashare_consumer_rg","storageAccountName":"datashareconsumersa","dataSetId":"b3ec7dfa-012a-4a85-b1f7-400f140aeadc","dataSetMappingStatus":"Ok","provisioningState":"Succeeded"},"kind":"BlobFolder","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping","name":"cli_test_data_set_mapping","type":"Microsoft.DataShare/DataSetMappings"}]}' headers: cache-control: - no-cache @@ -2496,7 +2338,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:35 GMT + - Wed, 26 Aug 2020 05:34:56 GMT expires: - '-1' pragma: @@ -2530,22 +2372,22 @@ interactions: ParameterSetName: - --account-name --resource-group --share-subscription-name --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/listSynchronizations?api-version=2019-11-01 response: body: - string: '{"value":[{"startTime":"2020-04-23T13:48:32.353028Z","status":"Queued","synchronizationId":"46da96f7-df55-4472-9d4a-90dabc0dc1c2","synchronizationMode":"Incremental"}]}' + string: '{"value":[{"status":"Queued","synchronizationId":"d1470340-7765-4519-a701-88523c66ff7f","synchronizationMode":"Incremental"}]}' headers: cache-control: - no-cache content-length: - - '168' + - '126' content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:37 GMT + - Wed, 26 Aug 2020 05:34:57 GMT expires: - '-1' pragma: @@ -2581,8 +2423,8 @@ interactions: ParameterSetName: - --account-name --resource-group --share-subscription-name --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/listSourceShareSynchronizationSettings?api-version=2019-11-01 response: @@ -2596,7 +2438,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:39 GMT + - Wed, 26 Aug 2020 05:34:59 GMT expires: - '-1' pragma: @@ -2636,13 +2478,13 @@ interactions: - --account-name --resource-group --share-subscription-name --name --recurrence-interval --synchronization-time --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/triggers/cli_test_trigger?api-version=2019-11-01 response: body: - string: '{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-04-23T13:48:42.2978189Z","userName":"Allen + string: '{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-08-26T05:35:00.8368064Z","userName":"Allen Zhou","provisioningState":"Creating","triggerStatus":"Inactive","synchronizationMode":"Incremental"},"kind":"ScheduleBased","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/triggers/cli_test_trigger","name":"cli_test_trigger","type":"Microsoft.DataShare/Triggers"}' headers: cache-control: @@ -2652,7 +2494,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:42 GMT + - Wed, 26 Aug 2020 05:35:00 GMT expires: - '-1' location: @@ -2666,7 +2508,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1199' + - '1198' status: code: 201 message: Created @@ -2684,13 +2526,13 @@ interactions: ParameterSetName: - --account-name --resource-group --share-subscription-name --name --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/triggers/cli_test_trigger?api-version=2019-11-01 response: body: - string: '{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-04-23T13:48:42.2978189Z","userName":"Allen + string: '{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-08-26T05:35:00.8368064Z","userName":"Allen Zhou","provisioningState":"Creating","triggerStatus":"Inactive","synchronizationMode":"Incremental"},"kind":"ScheduleBased","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/triggers/cli_test_trigger","name":"cli_test_trigger","type":"Microsoft.DataShare/Triggers"}' headers: cache-control: @@ -2700,7 +2542,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:43 GMT + - Wed, 26 Aug 2020 05:35:01 GMT expires: - '-1' pragma: @@ -2732,13 +2574,13 @@ interactions: ParameterSetName: - --account-name --resource-group --share-subscription-name --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/triggers?api-version=2019-11-01 response: body: - string: '{"value":[{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-04-23T13:48:42.2978189Z","userName":"Allen + string: '{"value":[{"properties":{"recurrenceInterval":"Day","synchronizationTime":"2020-04-05T10:50:00Z","createdAt":"2020-08-26T05:35:00.8368064Z","userName":"Allen Zhou","provisioningState":"Creating","triggerStatus":"Inactive","synchronizationMode":"Incremental"},"kind":"ScheduleBased","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/triggers/cli_test_trigger","name":"cli_test_trigger","type":"Microsoft.DataShare/Triggers"}]}' headers: cache-control: @@ -2748,7 +2590,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:45 GMT + - Wed, 26 Aug 2020 05:35:03 GMT expires: - '-1' pragma: @@ -2780,15 +2622,15 @@ interactions: ParameterSetName: - --account-name --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/providerShareSubscriptions?api-version=2019-11-01 response: body: - string: '{"value":[{"properties":{"shareSubscriptionObjectId":"cea4ae94-0b80-4306-9124-29e0f97e6604","consumerName":"Allen - Zhou","createdAt":"2020-04-23T13:47:55.3598425Z","sharedAt":"2020-04-23T13:45:26.3055269Z","consumerEmail":"consumer@microsoft.com","consumerTenantName":"Default - Directory","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","shareSubscriptionStatus":"Active"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/shareSubscriptions/cea4ae94-0b80-4306-9124-29e0f97e6604","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}]}' + string: '{"value":[{"properties":{"shareSubscriptionObjectId":"89426a01-1223-4205-ab50-743c3dcd4dce","consumerName":"Allen + Zhou","createdAt":"2020-08-26T05:34:29.3515129Z","sharedAt":"2020-08-26T05:34:10.4486509Z","consumerEmail":"consumer@microsoft.com","consumerTenantName":"Default + Directory","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","shareSubscriptionStatus":"Active"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/shareSubscriptions/89426a01-1223-4205-ab50-743c3dcd4dce","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}]}' headers: cache-control: - no-cache @@ -2797,7 +2639,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:47 GMT + - Wed, 26 Aug 2020 05:35:04 GMT expires: - '-1' pragma: @@ -2829,15 +2671,15 @@ interactions: ParameterSetName: - --account-name --share-subscription --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/providerShareSubscriptions/cea4ae94-0b80-4306-9124-29e0f97e6604?api-version=2019-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/providerShareSubscriptions/89426a01-1223-4205-ab50-743c3dcd4dce?api-version=2019-11-01 response: body: - string: '{"properties":{"shareSubscriptionObjectId":"cea4ae94-0b80-4306-9124-29e0f97e6604","consumerName":"Allen - Zhou","createdAt":"2020-04-23T13:47:55.3598425Z","sharedAt":"2020-04-23T13:45:26.3055269Z","consumerEmail":"consumer@microsoft.com","consumerTenantName":"Default - Directory","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","shareSubscriptionStatus":"Active"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/shareSubscriptions/cea4ae94-0b80-4306-9124-29e0f97e6604","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}' + string: '{"properties":{"shareSubscriptionObjectId":"89426a01-1223-4205-ab50-743c3dcd4dce","consumerName":"Allen + Zhou","createdAt":"2020-08-26T05:34:29.3515129Z","sharedAt":"2020-08-26T05:34:10.4486509Z","consumerEmail":"consumer@microsoft.com","consumerTenantName":"Default + Directory","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","shareSubscriptionStatus":"Active"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/shareSubscriptions/89426a01-1223-4205-ab50-743c3dcd4dce","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}' headers: cache-control: - no-cache @@ -2846,7 +2688,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:49 GMT + - Wed, 26 Aug 2020 05:35:05 GMT expires: - '-1' pragma: @@ -2880,18 +2722,18 @@ interactions: ParameterSetName: - --account-name --share-subscription --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/providerShareSubscriptions/cea4ae94-0b80-4306-9124-29e0f97e6604/revoke?api-version=2019-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/providerShareSubscriptions/89426a01-1223-4205-ab50-743c3dcd4dce/revoke?api-version=2019-11-01 response: body: - string: '{"properties":{"shareSubscriptionObjectId":"cea4ae94-0b80-4306-9124-29e0f97e6604","consumerName":"Allen - Zhou","createdAt":"2020-04-23T13:47:55.3598425Z","sharedAt":"2020-04-23T13:45:26.3055269Z","consumerEmail":"consumer@microsoft.com","consumerTenantName":"Default - Directory","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","shareSubscriptionStatus":"Revoking"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/shareSubscriptions/cea4ae94-0b80-4306-9124-29e0f97e6604","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}' + string: '{"properties":{"shareSubscriptionObjectId":"89426a01-1223-4205-ab50-743c3dcd4dce","consumerName":"Allen + Zhou","createdAt":"2020-08-26T05:34:29.3515129Z","sharedAt":"2020-08-26T05:34:10.4486509Z","consumerEmail":"consumer@microsoft.com","consumerTenantName":"Default + Directory","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","shareSubscriptionStatus":"Revoking"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/shareSubscriptions/89426a01-1223-4205-ab50-743c3dcd4dce","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}' headers: azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/operationResults/f9efc1e9-34af-4f77-87eb-5de189b8fe89?api-version=2019-11-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/operationResults/fbe08a2c-7e18-4ef2-9e98-74be6c9be304?api-version=2019-11-01 cache-control: - no-cache content-length: @@ -2899,11 +2741,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:52 GMT + - Wed, 26 Aug 2020 05:35:07 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/providerShareSubscriptions/cea4ae94-0b80-4306-9124-29e0f97e6604?api-version=2019-11-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/providerShareSubscriptions/89426a01-1223-4205-ab50-743c3dcd4dce?api-version=2019-11-01 pragma: - no-cache server: @@ -2933,15 +2775,15 @@ interactions: ParameterSetName: - --account-name --share-subscription --resource-group --share-name User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/providerShareSubscriptions/cea4ae94-0b80-4306-9124-29e0f97e6604/reinstate?api-version=2019-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/providerShareSubscriptions/89426a01-1223-4205-ab50-743c3dcd4dce/reinstate?api-version=2019-11-01 response: body: - string: '{"properties":{"shareSubscriptionObjectId":"cea4ae94-0b80-4306-9124-29e0f97e6604","consumerName":"Allen - Zhou","createdAt":"2020-04-23T13:47:55.3598425Z","sharedAt":"2020-04-23T13:45:26.3055269Z","consumerEmail":"consumer@microsoft.com","consumerTenantName":"Default - Directory","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","shareSubscriptionStatus":"Active"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/shareSubscriptions/cea4ae94-0b80-4306-9124-29e0f97e6604","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}' + string: '{"properties":{"shareSubscriptionObjectId":"89426a01-1223-4205-ab50-743c3dcd4dce","consumerName":"Allen + Zhou","createdAt":"2020-08-26T05:34:29.3515129Z","sharedAt":"2020-08-26T05:34:10.4486509Z","consumerEmail":"consumer@microsoft.com","consumerTenantName":"Default + Directory","providerName":"Feng Zhou","providerEmail":"provider@microsoft.com","shareSubscriptionStatus":"Active"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/shareSubscriptions/89426a01-1223-4205-ab50-743c3dcd4dce","name":"cli_test_share_subscription","type":"Microsoft.DataShare/ShareSubscriptions"}' headers: cache-control: - no-cache @@ -2950,7 +2792,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 23 Apr 2020 13:48:59 GMT + - Wed, 26 Aug 2020 05:35:13 GMT expires: - '-1' pragma: @@ -2986,8 +2828,8 @@ interactions: ParameterSetName: - --account-name --resource-group --share-name --name --yes User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/synchronizationSettings/cli_test_synchronization_setting?api-version=2019-11-01 response: @@ -2999,11 +2841,11 @@ interactions: content-length: - '0' date: - - Thu, 23 Apr 2020 13:49:01 GMT + - Wed, 26 Aug 2020 05:35:14 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/d7892df8-eccd-42a3-8de4-be8600d80a4d?api-version=2019-11-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/dbb6e0a5-8cd3-4328-bfdb-039fc2e1beea?api-version=2019-11-01 pragma: - no-cache server: @@ -3033,8 +2875,8 @@ interactions: ParameterSetName: - --account-name --name --resource-group --share-name --yes User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set?api-version=2019-11-01 response: @@ -3046,7 +2888,7 @@ interactions: content-length: - '0' date: - - Thu, 23 Apr 2020 13:49:03 GMT + - Wed, 26 Aug 2020 05:35:15 GMT expires: - '-1' pragma: @@ -3058,10 +2900,10 @@ interactions: x-content-type-options: - nosniff x-ms-quota: - - '[{"currentUsed":0,"limit":100,"name":{"localizedValue":"DataSet resource - quota","value":"DataSet resource quota"},"target":"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_datrywkgqr6mfnic2batum7zhzzekrutyfed7ajmopnqmg7bfkqdq2mavcabi7fdxo/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set"}]' + - '[{"currentUsed":0,"limit":200,"name":{"localizedValue":"DataSet resource + quota","value":"DataSet resource quota"},"target":"/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_dat4k437juk3evbo6rjpubtqgmrpjoncob4ah3yozuootwcudid6ayi6kusmc5w44w/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share/dataSets/cli_test_data_set"}]' x-ms-ratelimit-remaining-subscription-deletes: - - '14999' + - '14996' status: code: 200 message: OK @@ -3081,8 +2923,8 @@ interactions: ParameterSetName: - --account-name --resource-group --name --yes User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account/shares/cli_test_share?api-version=2019-11-01 response: @@ -3094,11 +2936,11 @@ interactions: content-length: - '0' date: - - Thu, 23 Apr 2020 13:49:04 GMT + - Wed, 26 Aug 2020 05:35:17 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/80548841-441e-4061-93b9-b6d0ce4c0249?api-version=2019-11-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/8cc4158b-3d8f-4c21-89bb-2bf7f42e15ae?api-version=2019-11-01 pragma: - no-cache server: @@ -3128,8 +2970,8 @@ interactions: ParameterSetName: - --name --resource-group --no-wait --yes User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_dat000001/providers/Microsoft.DataShare/accounts/cli_test_account?api-version=2019-11-01 response: @@ -3141,11 +2983,11 @@ interactions: content-length: - '0' date: - - Thu, 23 Apr 2020 13:49:06 GMT + - Wed, 26 Aug 2020 05:35:18 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/e331712b-17b0-48ba-8e62-592b4f5f284d?api-version=2019-11-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/0f4468bb-10dc-47f2-952d-c679c4e8c003?api-version=2019-11-01 pragma: - no-cache server: @@ -3155,7 +2997,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-deletes: - - '14998' + - '14999' status: code: 202 message: Accepted @@ -3175,8 +3017,8 @@ interactions: ParameterSetName: - --account-name --resource-group --share-subscription-name --name --yes --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/triggers/cli_test_trigger?api-version=2019-11-01 response: @@ -3188,11 +3030,11 @@ interactions: content-length: - '0' date: - - Thu, 23 Apr 2020 13:49:08 GMT + - Wed, 26 Aug 2020 05:35:19 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/e89ae980-17f5-4a9b-9e65-db922d490a7c?api-version=2019-11-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/a94216fe-bab2-48e9-908f-e11f997de7fc?api-version=2019-11-01 pragma: - no-cache server: @@ -3202,7 +3044,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-deletes: - - '14998' + - '14999' status: code: 202 message: Accepted @@ -3222,8 +3064,8 @@ interactions: ParameterSetName: - --account-name --name --resource-group --share-subscription-name --yes --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping?api-version=2019-11-01 response: @@ -3235,7 +3077,7 @@ interactions: content-length: - '0' date: - - Thu, 23 Apr 2020 13:49:09 GMT + - Wed, 26 Aug 2020 05:35:20 GMT expires: - '-1' pragma: @@ -3247,10 +3089,10 @@ interactions: x-content-type-options: - nosniff x-ms-quota: - - '[{"currentUsed":0,"limit":100,"name":{"localizedValue":"DataSetMapping resource - quota","value":"DataSetMapping resource quota"},"target":"/subscriptions/9abff005-2afc-4de1-b39c-344b9de2cc9c/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping"}]' + - '[{"currentUsed":0,"limit":200,"name":{"localizedValue":"DataSetMapping resource + quota","value":"DataSetMapping resource quota"},"target":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription/dataSetMappings/cli_test_data_set_mapping"}]' x-ms-ratelimit-remaining-subscription-deletes: - - '14997' + - '14999' status: code: 200 message: OK @@ -3270,8 +3112,8 @@ interactions: ParameterSetName: - --account-name --resource-group --name --yes --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account/shareSubscriptions/cli_test_share_subscription?api-version=2019-11-01 response: @@ -3283,11 +3125,11 @@ interactions: content-length: - '0' date: - - Thu, 23 Apr 2020 13:49:11 GMT + - Wed, 26 Aug 2020 05:35:21 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/bd7196da-c8a9-4b96-927e-000510684928?api-version=2019-11-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/e9667e21-3c41-4daf-9f06-7b45f06b0967?api-version=2019-11-01 pragma: - no-cache server: @@ -3317,8 +3159,8 @@ interactions: ParameterSetName: - --name --resource-group --no-wait --yes --subscription User-Agent: - - AZURECLI/2.4.0 (MSI) azsdk-python-datasharemanagementclient/unknown Python/3.8.2 - (Windows-10-10.0.18362-SP0) + - AZURECLI/2.11.0 azsdk-python-datasharemanagementclient/unknown Python/3.6.8 + (Windows-10-10.0.19041-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/datashare_consumer_rg/providers/Microsoft.DataShare/accounts/cli_test_consumer_account?api-version=2019-11-01 response: @@ -3330,11 +3172,11 @@ interactions: content-length: - '0' date: - - Thu, 23 Apr 2020 13:49:13 GMT + - Wed, 26 Aug 2020 05:35:22 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/44b598b3-6268-4028-9d1f-3cdb8adb30c6?api-version=2019-11-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DataShare/locations/westus2/operationResults/ce4e927e-1f78-4fa6-9817-6b27c36ef7ed?api-version=2019-11-01 pragma: - no-cache server: @@ -3344,7 +3186,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-deletes: - - '14999' + - '14998' status: code: 202 message: Accepted diff --git a/src/datashare/azext_datashare/tests/latest/test_datashare_scenario.py b/src/datashare/azext_datashare/tests/latest/test_datashare_scenario.py index 43245c24f3e..2e9b8747434 100644 --- a/src/datashare/azext_datashare/tests/latest/test_datashare_scenario.py +++ b/src/datashare/azext_datashare/tests/latest/test_datashare_scenario.py @@ -146,7 +146,7 @@ def test_datashare(self, resource_group, storage_account): '--assignee-object-id {} ' '--assignee-principal-type ServicePrincipal ' '--scope {}'.format(accountPrincipalId, storage_account_json['id'])) - time.sleep(5) + time.sleep(10) self.cmd('az storage container create ' '--account-name {ProviderStorageAccount} ' @@ -369,7 +369,7 @@ def test_datashare(self, resource_group, storage_account): '--assignee-principal-type ServicePrincipal ' '--scope "{StorageAccountId2}" ' '--subscription "{ConsumerSubscription}"') - time.sleep(5) + time.sleep(10) datasetMappingContent = {"data_set_id": "{}".format(sourceDatasetId), "container_name": "{}".format(self.kwargs.get('ConsumerContainer', '')), diff --git a/src/datashare/setup.py b/src/datashare/setup.py index 172005632aa..75eb38a691c 100644 --- a/src/datashare/setup.py +++ b/src/datashare/setup.py @@ -16,7 +16,7 @@ # TODO: Confirm this is the right version number you want and it matches your # HISTORY.rst entry. -VERSION = '0.1.0' +VERSION = '0.1.1' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers diff --git a/src/dms-preview/HISTORY.rst b/src/dms-preview/HISTORY.rst index 07384a9f796..d43345a4d1f 100644 --- a/src/dms-preview/HISTORY.rst +++ b/src/dms-preview/HISTORY.rst @@ -1,3 +1,9 @@ +0.12.0 +++++++++++++++++++ + +* Allowing for table selection in PG migrations. +* Added default settings for MySQL migrations when options aren't selected. + 0.11.0 ++++++++++++++++++ diff --git a/src/dms-preview/azext_dms/_help.py b/src/dms-preview/azext_dms/_help.py index a0b9ec4195e..b55ffc32adb 100644 --- a/src/dms-preview/azext_dms/_help.py +++ b/src/dms-preview/azext_dms/_help.py @@ -189,7 +189,13 @@ "targetSetting": { "setting1": "value1", ...n - } + }, + // Applies only for PostgreSQL + // List tables that you want included in the migration. + "selectedTables": [ + "schemaName1.tableName1", + ...n + ] }, ...n ] diff --git a/src/dms-preview/azext_dms/scenario_inputs.py b/src/dms-preview/azext_dms/scenario_inputs.py index e18f7b7f3f7..91a974dc324 100644 --- a/src/dms-preview/azext_dms/scenario_inputs.py +++ b/src/dms-preview/azext_dms/scenario_inputs.py @@ -7,6 +7,7 @@ from knack.prompting import prompt, prompt_pass from azext_dms.vendored_sdks.datamigration.models import (MigrateMySqlAzureDbForMySqlSyncDatabaseInput, MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput, + MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput, MigrateMySqlAzureDbForMySqlSyncTaskInput, MigratePostgreSqlAzureDbForPostgreSqlSyncTaskInput, MongoDbMigrationSettings, @@ -24,10 +25,15 @@ def get_migrate_mysql_to_azuredbformysql_sync_input(database_options_json, database_options = [] for d in database_options_json: + def_migration_setting_input = {"fullLoadSubTasks": "5", + "inlineLobMaxSize": "0", + "limitLOBSize": "true", + "lobChunkSize": "64", + "lobMaxSize": "32"} database_options.append(MigrateMySqlAzureDbForMySqlSyncDatabaseInput( name=d.get('name', None), target_database_name=d.get('target_database_name', None), - migration_setting=d.get('migrationSetting', None), + migration_setting=d.get('migrationSetting', def_migration_setting_input), source_setting=d.get('sourceSetting', None), target_setting=d.get('targetSetting', None))) @@ -42,12 +48,15 @@ def get_migrate_postgresql_to_azuredbforpostgresql_sync_input(database_options_j database_options = [] for d in database_options_json: + s_t = d.get('selectedTables', None) + t = None if s_t is None else [MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput(name=t) for t in s_t] database_options.append(MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput( name=d.get('name', None), target_database_name=d.get('target_database_name', None), migration_setting=d.get('migrationSetting', None), source_setting=d.get('sourceSetting', None), - target_setting=d.get('targetSetting', None))) + target_setting=d.get('targetSetting', None), + selected_tables=t)) return MigratePostgreSqlAzureDbForPostgreSqlSyncTaskInput(source_connection_info=source_connection_info, target_connection_info=target_connection_info, diff --git a/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/__init__.py b/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/__init__.py index 38e4b26b2e0..e9b2872e980 100644 --- a/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/__init__.py +++ b/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/__init__.py @@ -121,6 +121,7 @@ from ._models_py3 import MigrateOracleAzureDbPostgreSqlSyncTaskOutputMigrationLevel from ._models_py3 import MigrateOracleAzureDbPostgreSqlSyncTaskOutputTableLevel from ._models_py3 import MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput + from ._models_py3 import MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput from ._models_py3 import MigratePostgreSqlAzureDbForPostgreSqlSyncTaskInput from ._models_py3 import MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutput from ._models_py3 import MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutputDatabaseError @@ -380,6 +381,7 @@ from ._models import MigrateOracleAzureDbPostgreSqlSyncTaskOutputMigrationLevel from ._models import MigrateOracleAzureDbPostgreSqlSyncTaskOutputTableLevel from ._models import MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput + from ._models import MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput from ._models import MigratePostgreSqlAzureDbForPostgreSqlSyncTaskInput from ._models import MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutput from ._models import MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutputDatabaseError @@ -698,6 +700,7 @@ 'MigrateOracleAzureDbPostgreSqlSyncTaskOutputMigrationLevel', 'MigrateOracleAzureDbPostgreSqlSyncTaskOutputTableLevel', 'MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput', + 'MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput', 'MigratePostgreSqlAzureDbForPostgreSqlSyncTaskInput', 'MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutput', 'MigratePostgreSqlAzureDbForPostgreSqlSyncTaskOutputDatabaseError', diff --git a/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/_models.py b/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/_models.py index 014cb7c31b9..7553aa8515e 100644 --- a/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/_models.py +++ b/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/_models.py @@ -4065,6 +4065,8 @@ class MigrateMySqlAzureDbForMySqlSyncDatabaseInput(Model): :param target_setting: Target settings to tune target endpoint migration behavior :type target_setting: dict[str, str] + :param table_map: Mapping of source to target tables + :type table_map: dict[str, str] """ _attribute_map = { @@ -4073,6 +4075,7 @@ class MigrateMySqlAzureDbForMySqlSyncDatabaseInput(Model): 'migration_setting': {'key': 'migrationSetting', 'type': '{str}'}, 'source_setting': {'key': 'sourceSetting', 'type': '{str}'}, 'target_setting': {'key': 'targetSetting', 'type': '{str}'}, + 'table_map': {'key': 'tableMap', 'type': '{str}'}, } def __init__(self, **kwargs): @@ -4082,6 +4085,7 @@ def __init__(self, **kwargs): self.migration_setting = kwargs.get('migration_setting', None) self.source_setting = kwargs.get('source_setting', None) self.target_setting = kwargs.get('target_setting', None) + self.table_map = kwargs.get('table_map', None) class MigrateMySqlAzureDbForMySqlSyncTaskInput(Model): @@ -5102,6 +5106,9 @@ class MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput(Model): :param target_setting: Target settings to tune target endpoint migration behavior :type target_setting: dict[str, str] + :param selected_tables: Tables selected for migration + :type selected_tables: + list[~azure.mgmt.datamigration.models.MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput] """ _attribute_map = { @@ -5110,6 +5117,7 @@ class MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput(Model): 'migration_setting': {'key': 'migrationSetting', 'type': '{str}'}, 'source_setting': {'key': 'sourceSetting', 'type': '{str}'}, 'target_setting': {'key': 'targetSetting', 'type': '{str}'}, + 'selected_tables': {'key': 'selectedTables', 'type': '[MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput]'}, } def __init__(self, **kwargs): @@ -5119,6 +5127,23 @@ def __init__(self, **kwargs): self.migration_setting = kwargs.get('migration_setting', None) self.source_setting = kwargs.get('source_setting', None) self.target_setting = kwargs.get('target_setting', None) + self.selected_tables = kwargs.get('selected_tables', None) + + +class MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput(Model): + """Selected tables for the migration. + + :param name: Name of the table to migrate + :type name: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput, self).__init__(**kwargs) + self.name = kwargs.get('name', None) class MigratePostgreSqlAzureDbForPostgreSqlSyncTaskInput(Model): diff --git a/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/_models_py3.py b/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/_models_py3.py index da476c6337f..db33173c586 100644 --- a/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/_models_py3.py +++ b/src/dms-preview/azext_dms/vendored_sdks/datamigration/models/_models_py3.py @@ -4065,6 +4065,8 @@ class MigrateMySqlAzureDbForMySqlSyncDatabaseInput(Model): :param target_setting: Target settings to tune target endpoint migration behavior :type target_setting: dict[str, str] + :param table_map: Mapping of source to target tables + :type table_map: dict[str, str] """ _attribute_map = { @@ -4073,15 +4075,17 @@ class MigrateMySqlAzureDbForMySqlSyncDatabaseInput(Model): 'migration_setting': {'key': 'migrationSetting', 'type': '{str}'}, 'source_setting': {'key': 'sourceSetting', 'type': '{str}'}, 'target_setting': {'key': 'targetSetting', 'type': '{str}'}, + 'table_map': {'key': 'tableMap', 'type': '{str}'}, } - def __init__(self, *, name: str=None, target_database_name: str=None, migration_setting=None, source_setting=None, target_setting=None, **kwargs) -> None: + def __init__(self, *, name: str=None, target_database_name: str=None, migration_setting=None, source_setting=None, target_setting=None, table_map=None, **kwargs) -> None: super(MigrateMySqlAzureDbForMySqlSyncDatabaseInput, self).__init__(**kwargs) self.name = name self.target_database_name = target_database_name self.migration_setting = migration_setting self.source_setting = source_setting self.target_setting = target_setting + self.table_map = table_map class MigrateMySqlAzureDbForMySqlSyncTaskInput(Model): @@ -5102,6 +5106,9 @@ class MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput(Model): :param target_setting: Target settings to tune target endpoint migration behavior :type target_setting: dict[str, str] + :param selected_tables: Tables selected for migration + :type selected_tables: + list[~azure.mgmt.datamigration.models.MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput] """ _attribute_map = { @@ -5110,15 +5117,33 @@ class MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput(Model): 'migration_setting': {'key': 'migrationSetting', 'type': '{str}'}, 'source_setting': {'key': 'sourceSetting', 'type': '{str}'}, 'target_setting': {'key': 'targetSetting', 'type': '{str}'}, + 'selected_tables': {'key': 'selectedTables', 'type': '[MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput]'}, } - def __init__(self, *, name: str=None, target_database_name: str=None, migration_setting=None, source_setting=None, target_setting=None, **kwargs) -> None: + def __init__(self, *, name: str=None, target_database_name: str=None, migration_setting=None, source_setting=None, target_setting=None, selected_tables=None, **kwargs) -> None: super(MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseInput, self).__init__(**kwargs) self.name = name self.target_database_name = target_database_name self.migration_setting = migration_setting self.source_setting = source_setting self.target_setting = target_setting + self.selected_tables = selected_tables + + +class MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput(Model): + """Selected tables for the migration. + + :param name: Name of the table to migrate + :type name: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__(self, *, name: str=None, **kwargs) -> None: + super(MigratePostgreSqlAzureDbForPostgreSqlSyncDatabaseTableInput, self).__init__(**kwargs) + self.name = name class MigratePostgreSqlAzureDbForPostgreSqlSyncTaskInput(Model): diff --git a/src/dms-preview/setup.py b/src/dms-preview/setup.py index beae13c93c6..e6de907b28e 100644 --- a/src/dms-preview/setup.py +++ b/src/dms-preview/setup.py @@ -8,7 +8,7 @@ from codecs import open from setuptools import setup, find_packages -VERSION = "0.11.0" +VERSION = "0.12.0" CLASSIFIERS = [ 'Development Status :: 4 - Beta', diff --git a/src/footprint/HISTORY.rst b/src/footprint/HISTORY.rst index 1c139576ba0..8e13854c706 100644 --- a/src/footprint/HISTORY.rst +++ b/src/footprint/HISTORY.rst @@ -6,3 +6,7 @@ Release History 0.1.0 ++++++ * Initial release. + +1.0.0 +++++++ +* Relaxed the min_length on profile name and provided short names to all parameters of commands longer than 22 characters to improve the experience. diff --git a/src/footprint/azext_footprint/azext_metadata.json b/src/footprint/azext_footprint/azext_metadata.json index 13025150393..4f48fa652a5 100644 --- a/src/footprint/azext_footprint/azext_metadata.json +++ b/src/footprint/azext_footprint/azext_metadata.json @@ -1,4 +1,4 @@ { "azext.isExperimental": true, - "azext.minCliCoreVersion": "2.3.1" + "azext.minCliCoreVersion": "2.11.0" } \ No newline at end of file diff --git a/src/footprint/azext_footprint/generated/_help.py b/src/footprint/azext_footprint/generated/_help.py index 5950c9eb2da..2d1d19cfc8d 100644 --- a/src/footprint/azext_footprint/generated/_help.py +++ b/src/footprint/azext_footprint/generated/_help.py @@ -19,7 +19,7 @@ helps['footprint profile list'] = """ type: command - short-summary: Retrieves the information about all Footprint profiles under a subscription. + short-summary: "Retrieves the information about all Footprint profiles under a subscription." examples: - name: List all Footprint profiles under a Resource Group. text: |- @@ -28,7 +28,7 @@ helps['footprint profile show'] = """ type: command - short-summary: Retrieves the information about a single Footprint profile. + short-summary: "Retrieves the information about a single Footprint profile." examples: - name: Get the details of a Footprint profile. text: |- @@ -37,17 +37,17 @@ helps['footprint profile create'] = """ type: command - short-summary: Creates or updates a Footprint profile with the specified properties. + short-summary: "Creates or updates a Footprint profile with the specified properties." examples: - name: Create or update a Footprint profile. text: |- - az footprint profile create --location "westus2" --measurement-count 3 --start-delay-milliseconds 5000 \ ---tags key1="value1" key2="value2" --name "fpProfile1" --resource-group "rgName" + az footprint profile create --location "westus2" --measurement-count 3 --start-delay-ms 5000 --tags \ +key1="value1" key2="value2" --name "fpProfile1" --resource-group "rgName" """ helps['footprint profile update'] = """ type: command - short-summary: Updates an existing Footprint profile resource. + short-summary: "Updates an existing Footprint profile resource." examples: - name: Update a Footprint profile. text: |- @@ -57,7 +57,7 @@ helps['footprint profile delete'] = """ type: command - short-summary: Deletes an existing Footprint profile. + short-summary: "Deletes an existing Footprint profile." examples: - name: Delete a Footprint profile. text: |- @@ -71,7 +71,7 @@ helps['footprint measurement-endpoint list'] = """ type: command - short-summary: Retrieves the information about all measurement endpoints under a Footprint profile. + short-summary: "Retrieves the information about all measurement endpoints under a Footprint profile." examples: - name: List all the measurement endpoints under a Footprint profile. text: |- @@ -80,7 +80,7 @@ helps['footprint measurement-endpoint show'] = """ type: command - short-summary: Retrieves the information about a single measurement endpoint under a Footprint profile. + short-summary: "Retrieves the information about a single measurement endpoint under a Footprint profile." examples: - name: Get the details of a measurement endpoint. text: |- @@ -90,8 +90,8 @@ helps['footprint measurement-endpoint create'] = """ type: command - short-summary: Creates or updates a single measurement endpoint under a Footprint profile with the specified \ -properties. + short-summary: "Creates or updates a single measurement endpoint under a Footprint profile with the specified \ +properties." examples: - name: Create or update a measurement endpoint. text: |- @@ -102,19 +102,13 @@ helps['footprint measurement-endpoint update'] = """ type: command - short-summary: Creates or updates a single measurement endpoint under a Footprint profile with the specified \ -properties. - examples: - - name: Create or update a measurement endpoint. - text: |- - az footprint measurement-endpoint update --name "endpoint1" --endpoint "www.contoso.com" \ ---experiment-id "664cdec4f07d4e1083c9b3969ee2c49b" --measurement-type 2 --object-path "/trans.gif" --weight 10 \ ---profile-name "fpProfile1" --resource-group "rgName" + short-summary: "Creates or updates a single measurement endpoint under a Footprint profile with the specified \ +properties." """ helps['footprint measurement-endpoint delete'] = """ type: command - short-summary: Deletes an existing measurement endpoint under a Footprint profile. + short-summary: "Deletes an existing measurement endpoint under a Footprint profile." examples: - name: Delete a measurement endpoint. text: |- @@ -129,58 +123,52 @@ helps['footprint measurement-endpoint-condition list'] = """ type: command - short-summary: Retrieves the information about all measurement endpoint conditions under a Footprint measurement \ -endpoint. + short-summary: "Retrieves the information about all measurement endpoint conditions under a Footprint measurement \ +endpoint." examples: - name: List all conditions under a measurement endpoint. text: |- - az footprint measurement-endpoint-condition list --measurement-endpoint-name "endpoint1" --profile-name \ + az footprint measurement-endpoint-condition list --endpoint-name "endpoint1" --profile-name \ "fpProfile1" --resource-group "rgName" """ helps['footprint measurement-endpoint-condition show'] = """ type: command - short-summary: Retrieves the information about a single measurement endpoint condition under a Footprint \ -measurement endpoint. + short-summary: "Retrieves the information about a single measurement endpoint condition under a Footprint \ +measurement endpoint." examples: - name: Get the details of a measurement endpoint condition. text: |- - az footprint measurement-endpoint-condition show --condition-name "condition0" \ ---measurement-endpoint-name "endpoint1" --profile-name "fpProfile1" --resource-group "rgName" + az footprint measurement-endpoint-condition show --name "condition0" --endpoint-name "endpoint1" \ +--profile-name "fpProfile1" --resource-group "rgName" """ helps['footprint measurement-endpoint-condition create'] = """ type: command - short-summary: Creates or updates a measurement endpoint condition under a Footprint measurement with the \ -specified properties. + short-summary: "Creates or updates a measurement endpoint condition under a Footprint measurement with the \ +specified properties." examples: - name: Create or update a measurement endpoint condition. text: |- - az footprint measurement-endpoint-condition create --condition-name "condition0" \ ---measurement-endpoint-name "endpoint1" --constant "Edge-Prod-WST" --operator "MatchValueIgnoreCasing" --variable \ -"X-FD-EdgeEnvironment" --profile-name "fpProfile1" --resource-group "rgName" + az footprint measurement-endpoint-condition create --name "condition0" --endpoint-name "endpoint1" \ +--constant "Edge-Prod-WST" --operator "MatchValueIgnoreCasing" --variable "X-FD-EdgeEnvironment" --profile-name \ +"fpProfile1" --resource-group "rgName" """ helps['footprint measurement-endpoint-condition update'] = """ type: command - short-summary: Creates or updates a measurement endpoint condition under a Footprint measurement with the \ -specified properties. - examples: - - name: Create or update a measurement endpoint condition. - text: |- - az footprint measurement-endpoint-condition update --condition-name "condition0" \ ---measurement-endpoint-name "endpoint1" --constant "Edge-Prod-WST" --operator "MatchValueIgnoreCasing" --variable \ -"X-FD-EdgeEnvironment" --profile-name "fpProfile1" --resource-group "rgName" + short-summary: "Creates or updates a measurement endpoint condition under a Footprint measurement with the \ +specified properties." """ helps['footprint measurement-endpoint-condition delete'] = """ type: command - short-summary: Deletes an existing measurement endpoint condition under a Footprint measurement. + short-summary: "Deletes an existing measurement endpoint condition under a Footprint measurement." examples: - name: Delete a measurement endpoint condition. text: |- - az footprint measurement-endpoint-condition delete --condition-name "condition0" \ ---measurement-endpoint-name "endpoint1" --profile-name "fpProfile1" --resource-group "rgName" + az footprint measurement-endpoint-condition delete --name "condition0" --endpoint-name "endpoint1" \ +--profile-name "fpProfile1" --resource-group "rgName" """ helps['footprint experiment'] = """ @@ -190,7 +178,7 @@ helps['footprint experiment list'] = """ type: command - short-summary: Retrieves the information about all experiments under a Footprint profile. + short-summary: "Retrieves the information about all experiments under a Footprint profile." examples: - name: List all experiments under a Footprint profile. text: |- @@ -199,7 +187,7 @@ helps['footprint experiment show'] = """ type: command - short-summary: Retrieves the information about a single Footprint experiment. + short-summary: "Retrieves the information about a single Footprint experiment." examples: - name: Get the details of an experiment. text: |- @@ -208,7 +196,7 @@ helps['footprint experiment create'] = """ type: command - short-summary: Creates or updates a Footprint experiment with the specified properties. + short-summary: "Creates or updates a Footprint experiment with the specified properties." examples: - name: Create or update an experiment. text: |- @@ -218,17 +206,12 @@ helps['footprint experiment update'] = """ type: command - short-summary: Creates or updates a Footprint experiment with the specified properties. - examples: - - name: Create or update an experiment. - text: |- - az footprint experiment update --name "fpExp1" --description "An experiment description." \ ---profile-name "fpProfile1" --resource-group "rgName" + short-summary: "Creates or updates a Footprint experiment with the specified properties." """ helps['footprint experiment delete'] = """ type: command - short-summary: Deletes an existing Footprint experiment. + short-summary: "Deletes an existing Footprint experiment." examples: - name: Delete an experiment. text: |- diff --git a/src/footprint/azext_footprint/generated/_params.py b/src/footprint/azext_footprint/generated/_params.py index 4fbedd56ba9..6dd4f80c85a 100644 --- a/src/footprint/azext_footprint/generated/_params.py +++ b/src/footprint/azext_footprint/generated/_params.py @@ -26,34 +26,34 @@ def load_arguments(self, _): with self.argument_context('footprint profile show') as c: c.argument('resource_group_name', resource_group_name_type) - c.argument('profile_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint profile ' - 'resource.', id_part='name') + c.argument('profile_name', options_list=['--name', '-n', '--profile-name'], type=str, help='Name of the ' + 'Footprint profile resource.', id_part='name') with self.argument_context('footprint profile create') as c: c.argument('resource_group_name', resource_group_name_type) - c.argument('profile_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint profile ' - 'resource.') + c.argument('profile_name', options_list=['--name', '-n', '--profile-name'], type=str, help='Name of the ' + 'Footprint profile resource.') c.argument('tags', tags_type) c.argument('location', arg_type=get_location_type(self.cli_ctx), validator=get_default_location_from_resource_group) c.argument('description', type=str, help='The description of the Footprint profile.') - c.argument('start_delay_milliseconds', type=int, help='The delay in milliseconds that the clients should wait ' - 'for until they start performing measurements.') + c.argument('start_delay_milliseconds', options_list=['--start-delay-ms'], type=int, help='The delay in ' + 'milliseconds that the clients should wait for until they start performing measurements.') c.argument('measurement_count', type=int, help='The number of measurements to perform.') - c.argument('cold_path_sampling_percentage_rate', type=float, help='The default sampling percentage for cold ' - 'path measurement storage.') + c.argument('cold_path_sampling_percentage_rate', options_list=['--sample-rate-cold'], type=float, help='The ' + 'default sampling percentage for cold path measurement storage.') c.argument('reporting_endpoints', nargs='*', help='The endpoints which to upload measurements to.') with self.argument_context('footprint profile update') as c: c.argument('resource_group_name', resource_group_name_type) - c.argument('profile_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint profile ' - 'resource.', id_part='name') + c.argument('profile_name', options_list=['--name', '-n', '--profile-name'], type=str, help='Name of the ' + 'Footprint profile resource.', id_part='name') c.argument('tags', tags_type) with self.argument_context('footprint profile delete') as c: c.argument('resource_group_name', resource_group_name_type) - c.argument('profile_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint profile ' - 'resource.', id_part='name') + c.argument('profile_name', options_list=['--name', '-n', '--profile-name'], type=str, help='Name of the ' + 'Footprint profile resource.', id_part='name') with self.argument_context('footprint measurement-endpoint list') as c: c.argument('resource_group_name', resource_group_name_type) @@ -62,14 +62,14 @@ def load_arguments(self, _): with self.argument_context('footprint measurement-endpoint show') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.', id_part='name') - c.argument('measurement_endpoint_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint ' - 'measurement endpoint resource.', id_part='child_name_1') + c.argument('measurement_endpoint_name', options_list=['--name', '-n', '--measurement-endpoint-name'], type=str, + help='Name of the Footprint measurement endpoint resource.', id_part='child_name_1') with self.argument_context('footprint measurement-endpoint create') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.') - c.argument('measurement_endpoint_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint ' - 'measurement endpoint resource.') + c.argument('measurement_endpoint_name', options_list=['--name', '-n', '--measurement-endpoint-name'], type=str, + help='Name of the Footprint measurement endpoint resource.') c.argument('description', type=str, help='The description of a measurement endpoint.') c.argument('endpoint', type=str, help='The value of a measurement endpoint.') c.argument('measurement_type', type=int, help='The type of a measurement endpoint.') @@ -79,19 +79,19 @@ def load_arguments(self, _): c.argument('object_path', type=str, help='The path of the object that a measurement endpoint points to.') c.argument('start_time_utc', help='The start time that a measurement endpoint should be served.') c.argument('end_time_utc', help='The end time that a measurement endpoint should be served.') - c.argument('hot_path_sampling_percentage_rate', type=float, help='The percentual sampling rate for the hot ' - 'path logging of a measurement endpoint.') - c.argument('warm_path_sampling_percentage_rate', type=float, help='The percentual sampling rate for the warm ' - 'path logging of a measurement endpoint.') - c.argument('cold_path_sampling_percentage_rate_override', type=float, help='The percentual sampling rate for ' - 'the cold path logging of a measurement endpoint.') + c.argument('hot_path_sampling_percentage_rate', options_list=['--sample-rate-hot'], type=float, help='The ' + 'percentual sampling rate for the hot path logging of a measurement endpoint.') + c.argument('warm_path_sampling_percentage_rate', options_list=['--sample-rate-warm'], type=float, help='The ' + 'percentual sampling rate for the warm path logging of a measurement endpoint.') + c.argument('cold_path_sampling_percentage_rate_override', options_list=['--sample-rate-cold'], type=float, + help='The percentual sampling rate for the cold path logging of a measurement endpoint.') c.argument('metadata', type=str, help='The metadata of a measurement endpoint.') with self.argument_context('footprint measurement-endpoint update') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.', id_part='name') - c.argument('measurement_endpoint_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint ' - 'measurement endpoint resource.', id_part='child_name_1') + c.argument('measurement_endpoint_name', options_list=['--name', '-n', '--measurement-endpoint-name'], type=str, + help='Name of the Footprint measurement endpoint resource.', id_part='child_name_1') c.argument('description', type=str, help='The description of a measurement endpoint.') c.argument('endpoint', type=str, help='The value of a measurement endpoint.') c.argument('measurement_type', type=int, help='The type of a measurement endpoint.') @@ -101,68 +101,69 @@ def load_arguments(self, _): c.argument('object_path', type=str, help='The path of the object that a measurement endpoint points to.') c.argument('start_time_utc', help='The start time that a measurement endpoint should be served.') c.argument('end_time_utc', help='The end time that a measurement endpoint should be served.') - c.argument('hot_path_sampling_percentage_rate', type=float, help='The percentual sampling rate for the hot ' - 'path logging of a measurement endpoint.') - c.argument('warm_path_sampling_percentage_rate', type=float, help='The percentual sampling rate for the warm ' - 'path logging of a measurement endpoint.') - c.argument('cold_path_sampling_percentage_rate_override', type=float, help='The percentual sampling rate for ' - 'the cold path logging of a measurement endpoint.') + c.argument('hot_path_sampling_percentage_rate', options_list=['--sample-rate-hot'], type=float, help='The ' + 'percentual sampling rate for the hot path logging of a measurement endpoint.') + c.argument('warm_path_sampling_percentage_rate', options_list=['--sample-rate-warm'], type=float, help='The ' + 'percentual sampling rate for the warm path logging of a measurement endpoint.') + c.argument('cold_path_sampling_percentage_rate_override', options_list=['--sample-rate-cold'], type=float, + help='The percentual sampling rate for the cold path logging of a measurement endpoint.') c.argument('metadata', type=str, help='The metadata of a measurement endpoint.') with self.argument_context('footprint measurement-endpoint delete') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.', id_part='name') - c.argument('measurement_endpoint_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint ' - 'measurement endpoint resource.', id_part='child_name_1') + c.argument('measurement_endpoint_name', options_list=['--name', '-n', '--measurement-endpoint-name'], type=str, + help='Name of the Footprint measurement endpoint resource.', id_part='child_name_1') with self.argument_context('footprint measurement-endpoint-condition list') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.') - c.argument('measurement_endpoint_name', type=str, help='Name of the Footprint measurement endpoint resource.') + c.argument('measurement_endpoint_name', options_list=['--endpoint-name'], type=str, help='Name of the ' + 'Footprint measurement endpoint resource.') with self.argument_context('footprint measurement-endpoint-condition show') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.', id_part='name') - c.argument('measurement_endpoint_name', type=str, help='Name of the Footprint measurement endpoint resource.', - id_part='child_name_1') - c.argument('condition_name', type=str, help='Name of the Footprint measurement endpoint condition resource.', - id_part='child_name_2') + c.argument('measurement_endpoint_name', options_list=['--endpoint-name'], type=str, help='Name of the ' + 'Footprint measurement endpoint resource.', id_part='child_name_1') + c.argument('condition_name', options_list=['--name'], type=str, help='Name of the Footprint measurement ' + 'endpoint condition resource.', id_part='child_name_2') with self.argument_context('footprint measurement-endpoint-condition create') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.') - c.argument('measurement_endpoint_name', type=str, help='Name of the Footprint measurement endpoint resource.') - c.argument('condition_name', type=str, help='Name of the Footprint measurement endpoint condition resource.') + c.argument('measurement_endpoint_name', options_list=['--endpoint-name'], type=str, help='Name of the ' + 'Footprint measurement endpoint resource.') + c.argument('condition_name', options_list=['--name'], type=str, help='Name of the Footprint measurement ' + 'endpoint condition resource.') c.argument('variable', type=str, help='The variable of a Footprint measurement endpoint condition.') - c.argument('operator', - arg_type=get_enum_type(['IsExactValue', 'MatchValueIgnoreCasing', 'ContainsValue', - 'ContainsValueIgnoreCasing', 'DoesNotContainValue', - 'DoesNotContainValueIgnoreCasing']), - help='The operator of a Footprint measurement endpoint condition.') + c.argument('operator', arg_type=get_enum_type(['IsExactValue', 'MatchValueIgnoreCasing', 'ContainsValue', '' + 'ContainsValueIgnoreCasing', 'DoesNotContainValue', '' + 'DoesNotContainValueIgnoreCasing']), help='The operator of a ' + 'Footprint measurement endpoint condition.') c.argument('constant', type=str, help='The constant of a Footprint measurement endpoint condition.') with self.argument_context('footprint measurement-endpoint-condition update') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.', id_part='name') - c.argument('measurement_endpoint_name', type=str, help='Name of the Footprint measurement endpoint resource.', - id_part='child_name_1') - c.argument('condition_name', type=str, help='Name of the Footprint measurement endpoint condition resource.', - id_part='child_name_2') + c.argument('measurement_endpoint_name', options_list=['--endpoint-name'], type=str, help='Name of the ' + 'Footprint measurement endpoint resource.', id_part='child_name_1') + c.argument('condition_name', options_list=['--name'], type=str, help='Name of the Footprint measurement ' + 'endpoint condition resource.', id_part='child_name_2') c.argument('variable', type=str, help='The variable of a Footprint measurement endpoint condition.') - c.argument('operator', - arg_type=get_enum_type(['IsExactValue', 'MatchValueIgnoreCasing', 'ContainsValue', - 'ContainsValueIgnoreCasing', 'DoesNotContainValue', - 'DoesNotContainValueIgnoreCasing']), - help='The operator of a Footprint measurement endpoint condition. Swagger name=operator') + c.argument('operator', arg_type=get_enum_type(['IsExactValue', 'MatchValueIgnoreCasing', 'ContainsValue', '' + 'ContainsValueIgnoreCasing', 'DoesNotContainValue', '' + 'DoesNotContainValueIgnoreCasing']), help='The operator of a ' + 'Footprint measurement endpoint condition.') c.argument('constant', type=str, help='The constant of a Footprint measurement endpoint condition.') with self.argument_context('footprint measurement-endpoint-condition delete') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.', id_part='name') - c.argument('measurement_endpoint_name', type=str, help='Name of the Footprint measurement endpoint resource.', - id_part='child_name_1') - c.argument('condition_name', type=str, help='Name of the Footprint measurement endpoint condition resource.', - id_part='child_name_2') + c.argument('measurement_endpoint_name', options_list=['--endpoint-name'], type=str, help='Name of the ' + 'Footprint measurement endpoint resource.', id_part='child_name_1') + c.argument('condition_name', options_list=['--name'], type=str, help='Name of the Footprint measurement ' + 'endpoint condition resource.', id_part='child_name_2') with self.argument_context('footprint experiment list') as c: c.argument('resource_group_name', resource_group_name_type) @@ -171,25 +172,25 @@ def load_arguments(self, _): with self.argument_context('footprint experiment show') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.', id_part='name') - c.argument('experiment_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint experiment ' - 'resource.', id_part='child_name_1') + c.argument('experiment_name', options_list=['--name', '-n', '--experiment-name'], type=str, help='Name of the ' + 'Footprint experiment resource.', id_part='child_name_1') with self.argument_context('footprint experiment create') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.') - c.argument('experiment_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint experiment ' - 'resource.') + c.argument('experiment_name', options_list=['--name', '-n', '--experiment-name'], type=str, help='Name of the ' + 'Footprint experiment resource.') c.argument('description', type=str, help='The description of a Footprint experiment.') with self.argument_context('footprint experiment update') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.', id_part='name') - c.argument('experiment_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint experiment ' - 'resource.', id_part='child_name_1') + c.argument('experiment_name', options_list=['--name', '-n', '--experiment-name'], type=str, help='Name of the ' + 'Footprint experiment resource.', id_part='child_name_1') c.argument('description', type=str, help='The description of a Footprint experiment.') with self.argument_context('footprint experiment delete') as c: c.argument('resource_group_name', resource_group_name_type) c.argument('profile_name', type=str, help='Name of the Footprint profile resource.', id_part='name') - c.argument('experiment_name', options_list=['--name', '-n'], type=str, help='Name of the Footprint experiment ' - 'resource.', id_part='child_name_1') + c.argument('experiment_name', options_list=['--name', '-n', '--experiment-name'], type=str, help='Name of the ' + 'Footprint experiment resource.', id_part='child_name_1') diff --git a/src/footprint/azext_footprint/generated/commands.py b/src/footprint/azext_footprint/generated/commands.py index f89fcd1cf1b..1854908d4f0 100644 --- a/src/footprint/azext_footprint/generated/commands.py +++ b/src/footprint/azext_footprint/generated/commands.py @@ -25,7 +25,7 @@ def load_command_table(self, _): g.custom_show_command('show', 'footprint_profile_show') g.custom_command('create', 'footprint_profile_create') g.custom_command('update', 'footprint_profile_update') - g.custom_command('delete', 'footprint_profile_delete') + g.custom_command('delete', 'footprint_profile_delete', confirmation=True) from azext_footprint.generated._client_factory import cf_measurement_endpoint footprint_measurement_endpoint = CliCommandType( @@ -38,7 +38,7 @@ def load_command_table(self, _): g.custom_show_command('show', 'footprint_measurement_endpoint_show') g.custom_command('create', 'footprint_measurement_endpoint_create') g.custom_command('update', 'footprint_measurement_endpoint_update') - g.custom_command('delete', 'footprint_measurement_endpoint_delete') + g.custom_command('delete', 'footprint_measurement_endpoint_delete', confirmation=True) from azext_footprint.generated._client_factory import cf_measurement_endpoint_condition footprint_measurement_endpoint_condition = CliCommandType( @@ -51,7 +51,7 @@ def load_command_table(self, _): g.custom_show_command('show', 'footprint_measurement_endpoint_condition_show') g.custom_command('create', 'footprint_measurement_endpoint_condition_create') g.custom_command('update', 'footprint_measurement_endpoint_condition_update') - g.custom_command('delete', 'footprint_measurement_endpoint_condition_delete') + g.custom_command('delete', 'footprint_measurement_endpoint_condition_delete', confirmation=True) from azext_footprint.generated._client_factory import cf_experiment footprint_experiment = CliCommandType( @@ -64,4 +64,4 @@ def load_command_table(self, _): g.custom_show_command('show', 'footprint_experiment_show') g.custom_command('create', 'footprint_experiment_create') g.custom_command('update', 'footprint_experiment_update') - g.custom_command('delete', 'footprint_experiment_delete') + g.custom_command('delete', 'footprint_experiment_delete', confirmation=True) diff --git a/src/footprint/azext_footprint/generated/custom.py b/src/footprint/azext_footprint/generated/custom.py index 9f4d18a0930..06436ba5d7a 100644 --- a/src/footprint/azext_footprint/generated/custom.py +++ b/src/footprint/azext_footprint/generated/custom.py @@ -185,6 +185,7 @@ def footprint_measurement_endpoint_condition_create(client, profile_name=profile_name, measurement_endpoint_name=measurement_endpoint_name, condition_name=condition_name, + type="RequestHeader", variable=variable, operator=operator, constant=constant) @@ -202,6 +203,7 @@ def footprint_measurement_endpoint_condition_update(client, profile_name=profile_name, measurement_endpoint_name=measurement_endpoint_name, condition_name=condition_name, + type="RequestHeader", variable=variable, operator=operator, constant=constant) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/version.py b/src/footprint/azext_footprint/manual/version.py similarity index 100% rename from src/maintenance/azext_maintenance/vendored_sdks/version.py rename to src/footprint/azext_footprint/manual/version.py diff --git a/src/footprint/azext_footprint/tests/__init__.py b/src/footprint/azext_footprint/tests/__init__.py index 9b7ec942a0b..50e0627daff 100644 --- a/src/footprint/azext_footprint/tests/__init__.py +++ b/src/footprint/azext_footprint/tests/__init__.py @@ -9,15 +9,23 @@ # regenerated. # -------------------------------------------------------------------------- import inspect +import logging import os import sys import traceback +import datetime as dt + from azure.core.exceptions import AzureError from azure.cli.testsdk.exceptions import CliTestError, CliExecutionError, JMESPathCheckAssertionError +logger = logging.getLogger('azure.cli.testsdk') +logger.addHandler(logging.StreamHandler()) __path__ = __import__('pkgutil').extend_path(__path__, __name__) exceptions = [] +test_map = dict() +SUCCESSED = "successed" +FAILED = "failed" def try_manual(func): @@ -39,29 +47,64 @@ def get_func_to_call(): func_to_call = func try: func_to_call = import_manual_function(func) - print("Found manual override for {}(...)".format(func.__name__)) + func_to_call = import_manual_function(func) + logger.info("Found manual override for %s(...)", func.__name__) except (ImportError, AttributeError): pass return func_to_call def wrapper(*args, **kwargs): func_to_call = get_func_to_call() - print("running {}()...".format(func.__name__)) + logger.info("running %s()...", func.__name__) try: - return func_to_call(*args, **kwargs) - except (AssertionError, AzureError, CliTestError, CliExecutionError, JMESPathCheckAssertionError) as e: - print("--------------------------------------") - print("step exception: ", e) - print("--------------------------------------", file=sys.stderr) - print("step exception in {}: {}".format(func.__name__, e), file=sys.stderr) - traceback.print_exc() + test_map[func.__name__] = dict() + test_map[func.__name__]["result"] = SUCCESSED + test_map[func.__name__]["error_message"] = "" + test_map[func.__name__]["error_stack"] = "" + test_map[func.__name__]["error_normalized"] = "" + test_map[func.__name__]["start_dt"] = dt.datetime.utcnow() + ret = func_to_call(*args, **kwargs) + except (AssertionError, AzureError, CliTestError, CliExecutionError, SystemExit, + JMESPathCheckAssertionError) as e: + test_map[func.__name__]["end_dt"] = dt.datetime.utcnow() + test_map[func.__name__]["result"] = FAILED + test_map[func.__name__]["error_message"] = str(e).replace("\r\n", " ").replace("\n", " ")[:500] + test_map[func.__name__]["error_stack"] = traceback.format_exc().replace( + "\r\n", " ").replace("\n", " ")[:500] + logger.info("--------------------------------------") + logger.info("step exception: %s", e) + logger.error("--------------------------------------") + logger.error("step exception in %s: %s", func.__name__, e) + logger.info(traceback.format_exc()) exceptions.append((func.__name__, sys.exc_info())) + else: + test_map[func.__name__]["end_dt"] = dt.datetime.utcnow() + return ret if inspect.isclass(func): return get_func_to_call() return wrapper +def calc_coverage(filename): + filename = filename.split(".")[0] + coverage_name = filename + "_coverage.md" + with open(coverage_name, "w") as f: + f.write("|Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt|\n") + total = len(test_map) + covered = 0 + for k, v in test_map.items(): + if not k.startswith("step_"): + total -= 1 + continue + if v["result"] == SUCCESSED: + covered += 1 + f.write("|{step_name}|{result}|{error_message}|{error_stack}|{error_normalized}|{start_dt}|" + "{end_dt}|\n".format(step_name=k, **v)) + f.write("Coverage: {}/{}\n".format(covered, total)) + print("Create coverage\n", file=sys.stderr) + + def raise_if(): if exceptions: if len(exceptions) <= 1: diff --git a/src/footprint/azext_footprint/tests/latest/recordings/test_footprint.yaml b/src/footprint/azext_footprint/tests/latest/recordings/test_footprint.yaml index 19119b1369a..c835cb75662 100644 --- a/src/footprint/azext_footprint/tests/latest/recordings/test_footprint.yaml +++ b/src/footprint/azext_footprint/tests/latest/recordings/test_footprint.yaml @@ -16,9 +16,9 @@ interactions: Content-Type: - application/json ParameterSetName: - - --location --measurement-count --start-delay-milliseconds --tags --name --resource-group + - --location --measurement-count --start-delay-ms --tags --name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002?api-version=2020-02-01-preview @@ -36,7 +36,7 @@ interactions: content-type: - application/json date: - - Wed, 05 Aug 2020 08:20:51 GMT + - Tue, 18 Aug 2020 22:22:43 GMT server: - Microsoft-IIS/10.0 strict-transport-security: @@ -48,7 +48,7 @@ interactions: x-ms-ratelimit-remaining-subscription-writes: - '1199' x-msedge-ref: - - 'Ref A: 28DA5B1A92774B62AA803F7BF36F1FC1 Ref B: STBEDGE0208 Ref C: 2020-08-05T08:20:19Z' + - 'Ref A: C3793B9AE28B4430A11116AED83FBE03 Ref B: STBEDGE0114 Ref C: 2020-08-18T22:22:12Z' status: code: 503 message: Service Unavailable @@ -69,24 +69,26 @@ interactions: Content-Type: - application/json ParameterSetName: - - --location --measurement-count --start-delay-milliseconds --tags --name --resource-group + - --location --measurement-count --start-delay-ms --tags --name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002?api-version=2020-02-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002","name":"fpPro000002","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"experiments":[],"measurementCount":3,"measurementEndpoints":[],"profileId":"fpPro000002","provisioningState":"Succeeded","startDelayMilliseconds":5000}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002","name":"fpPro000002","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"coldPathSamplingPercentageRate":100.0,"measurementCount":3,"profileId":"fpPro000002","provisioningState":"Succeeded","reportingEndpoints":["fpc.msedge.net/r.gif","odinvzc.azureedge.net/apc/trans.gif"],"scriptUri":"https://fpc.msedge.net/conf/v2/fpPro000002/fpconfig.min.json","startDelayMilliseconds":5000}}' headers: cache-control: - no-cache content-length: - - '507' + - '661' content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:20:58 GMT + - Tue, 18 Aug 2020 22:22:55 GMT + etag: + - '"02004a6f-0000-0800-0000-5f3c54bf0000"' expires: - '-1' pragma: @@ -114,28 +116,30 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - footprint profile list + - footprint profile show Connection: - keep-alive ParameterSetName: - - --resource-group + - --name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles?api-version=2020-02-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002?api-version=2020-02-01-preview response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002","name":"fpPro000002","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"coldPathSamplingPercentageRate":0.0,"experiments":[],"measurementCount":3,"measurementEndpoints":[],"profileId":"fpPro000002","provisioningState":"Succeeded","startDelayMilliseconds":5000}}]}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002","name":"fpPro000002","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"coldPathSamplingPercentageRate":100.0,"experiments":[],"measurementCount":3,"measurementEndpoints":[],"profileId":"fpPro000002","provisioningState":"Succeeded","reportingEndpoints":["fpc.msedge.net/r.gif","odinvzc.azureedge.net/apc/trans.gif"],"scriptUri":"https://fpc.msedge.net/conf/v2/fpPro000002/fpconfig.min.json","startDelayMilliseconds":5000}}' headers: cache-control: - no-cache content-length: - - '556' + - '704' content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:20:59 GMT + - Tue, 18 Aug 2020 22:22:56 GMT + etag: + - '"02004a6f-0000-0800-0000-5f3c54bf0000"' expires: - '-1' pragma: @@ -165,24 +169,24 @@ interactions: Connection: - keep-alive ParameterSetName: - - -g + - --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.FootprintMonitoring/profiles?api-version=2020-02-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles?api-version=2020-02-01-preview response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jonunezd-rg-1/providers/Microsoft.FootprintMonitoring/profiles/jonunezd-prodtest","name":"jonunezd-prodtest","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","properties":{"coldPathSamplingPercentageRate":100.0,"experiments":[],"measurementCount":5,"measurementEndpoints":[],"profileId":"jonunezd-prodtest","provisioningState":"Succeeded","reportingEndpoints":["fpc.msedge.net/r.gif","odinvzc.azureedge.net/apc/trans.gif"],"scriptUri":"https://fpc.msedge.net/conf/v2/jonunezd-prodtest/fpconfig.min.json","startDelayMilliseconds":999}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002","name":"fpPro000002","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"coldPathSamplingPercentageRate":0.0,"experiments":[],"measurementCount":3,"measurementEndpoints":[],"profileId":"fpPro000002","provisioningState":"Succeeded","startDelayMilliseconds":5000}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002","name":"fpPro000002","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"coldPathSamplingPercentageRate":100.0,"experiments":[],"measurementCount":3,"measurementEndpoints":[],"profileId":"fpPro000002","provisioningState":"Succeeded","reportingEndpoints":["fpc.msedge.net/r.gif","odinvzc.azureedge.net/apc/trans.gif"],"scriptUri":"https://fpc.msedge.net/conf/v2/fpPro000002/fpconfig.min.json","startDelayMilliseconds":5000}}]}' headers: cache-control: - no-cache content-length: - - '1185' + - '716' content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:01 GMT + - Tue, 18 Aug 2020 22:22:57 GMT expires: - '-1' pragma: @@ -208,28 +212,28 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - footprint profile show + - footprint profile list Connection: - keep-alive ParameterSetName: - - --name --resource-group + - -g User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002?api-version=2020-02-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.FootprintMonitoring/profiles?api-version=2020-02-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002","name":"fpPro000002","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"coldPathSamplingPercentageRate":0.0,"experiments":[],"measurementCount":3,"measurementEndpoints":[],"profileId":"fpPro000002","provisioningState":"Succeeded","startDelayMilliseconds":5000}}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jonunezd-rg-1/providers/Microsoft.FootprintMonitoring/profiles/jonunezd-prodtest","name":"jonunezd-prodtest","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"coldPathSamplingPercentageRate":100.0,"experiments":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jonunezd-rg-1/providers/Microsoft.FootprintMonitoring/profiles/jonunezd-prodtest/experiments/exp-1"}],"measurementCount":5,"measurementEndpoints":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jonunezd-rg-1/providers/Microsoft.FootprintMonitoring/profiles/jonunezd-prodtest/measurementEndpoints/endpoint-2"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/jonunezd-rg-1/providers/Microsoft.FootprintMonitoring/profiles/jonunezd-prodtest/measurementEndpoints/endpoint-1"}],"profileId":"jonunezd-prodtest","provisioningState":"Succeeded","reportingEndpoints":["fpc.msedge.net/r.gif","odinvzc.azureedge.net/apc/trans.gif"],"scriptUri":"https://fpc.msedge.net/conf/v2/jonunezd-prodtest/fpconfig.min.json","startDelayMilliseconds":999}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002","name":"fpPro000002","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"coldPathSamplingPercentageRate":100.0,"experiments":[],"measurementCount":3,"measurementEndpoints":[],"profileId":"fpPro000002","provisioningState":"Succeeded","reportingEndpoints":["fpc.msedge.net/r.gif","odinvzc.azureedge.net/apc/trans.gif"],"scriptUri":"https://fpc.msedge.net/conf/v2/fpPro000002/fpconfig.min.json","startDelayMilliseconds":5000}}]}' headers: cache-control: - no-cache content-length: - - '544' + - '1937' content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:03 GMT + - Tue, 18 Aug 2020 22:22:58 GMT expires: - '-1' pragma: @@ -265,22 +269,24 @@ interactions: ParameterSetName: - --tags --name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: PATCH uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002?api-version=2020-02-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002","name":"fpPro000002","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"experiments":[],"measurementCount":3,"measurementEndpoints":[],"profileId":"fpPro000002","provisioningState":"Succeeded","startDelayMilliseconds":5000}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002","name":"fpPro000002","type":"Microsoft.FootprintMonitoring/profiles","location":"westus2","tags":{"key1":"value1","key2":"value2"},"properties":{"coldPathSamplingPercentageRate":100,"measurementCount":3,"profileId":"fpPro000002","provisioningState":"Succeeded","reportingEndpoints":["fpc.msedge.net/r.gif","odinvzc.azureedge.net/apc/trans.gif"],"scriptUri":"https://fpc.msedge.net/conf/v2/fpPro000002/fpconfig.min.json","startDelayMilliseconds":5000}}' headers: cache-control: - no-cache content-length: - - '507' + - '659' content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:04 GMT + - Tue, 18 Aug 2020 22:23:00 GMT + etag: + - '"02004b6f-0000-0800-0000-5f3c54c30000"' expires: - '-1' pragma: @@ -318,131 +324,14 @@ interactions: ParameterSetName: - --name --description --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 - (Windows-10-10.0.18362-SP0) - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fpE000004?api-version=2020-02-01-preview - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fpE000004","name":"fpE000004","type":"Microsoft.FootprintMonitoring/profiles/experiments","properties":{"description":"An - experiment description.","experimentId":"586c1d81fd08775f60023bb24ffc736e","status":"Created"}}' - headers: - cache-control: - - no-cache - content-length: - - '439' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 05 Aug 2020 08:21:12 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - 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": {"description": "An experiment description."}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - footprint experiment update - Connection: - - keep-alive - Content-Length: - - '61' - Content-Type: - - application/json - ParameterSetName: - - --name --description --profile-name --resource-group - User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 - (Windows-10-10.0.18362-SP0) - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fpE000004?api-version=2020-02-01-preview - response: - body: - string: '{"error":{"code":"InternalServerError","message":"Http request failed - with unhandled exception of type ''TransportException'' and message: ''A client - transport error occurred: The request timed out while waiting for a server - response. (Time: 2020-08-05T08:21:20.7978176Z, activity ID: cce04305-17e2-4436-99e9-94c89f290d0b, - error code: ReceiveTimeout [0x0010], base error: HRESULT 0x80131500, URI: - rntbd://cdb-ms-prod-westus2-fd29.documents.azure.com:14321/apps/8bb46273-f073-4969-8b43-c0a8cd2096bc/services/4865234e-df65-4b7c-9eb7-db43ee041120/partitions/291c41c1-f2ef-4c6c-96fe-6ed3aeb25583/replicas/132409189192848212p/, - connection: 10.244.5.102:41128 -> 13.66.138.23:14321, payload sent: True, - CPU history: (2020-07-31T17:44:05.3141382Z 4.000), (2020-07-31T17:44:15.3138006Z - 0.000), (2020-07-31T17:44:25.3134499Z 18.182), (2020-07-31T17:44:25.3138959Z - 0.000), (2020-07-31T17:44:35.3153958Z 12.000), (2020-07-31T17:44:45.3138193Z - 4.348), CPU count: 5)''."}}' - headers: - cache-control: - - no-cache - connection: - - close - content-length: - - '955' - content-type: - - application/json - date: - - Wed, 05 Aug 2020 08:21:20 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-ms-failure-cause: - - service - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 500 - message: Internal Server Error -- request: - body: '{"properties": {"description": "An experiment description."}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - footprint experiment update - Connection: - - keep-alive - Content-Length: - - '61' - Content-Type: - - application/json - ParameterSetName: - - --name --description --profile-name --resource-group - User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fpE000004?api-version=2020-02-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fp000004?api-version=2020-02-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fpE000004","name":"fpE000004","type":"Microsoft.FootprintMonitoring/profiles/experiments","properties":{"description":"An - experiment description.","experimentId":"586c1d81fd08775f60023bb24ffc736e","status":"Created"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fp000004","name":"fp000004","type":"Microsoft.FootprintMonitoring/profiles/experiments","properties":{"description":"An + experiment description.","experimentId":"fc0b63fba89db2f8d4150e1d95b9ea58","status":"Created"}}' headers: cache-control: - no-cache @@ -451,7 +340,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:36 GMT + - Tue, 18 Aug 2020 22:23:05 GMT + etag: + - '"360161d9-0000-0800-0000-5f3c54c90000"' expires: - '-1' pragma: @@ -485,14 +376,14 @@ interactions: ParameterSetName: - --name --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fpE000004?api-version=2020-02-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fp000004?api-version=2020-02-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fpE000004","name":"fpE000004","type":"Microsoft.FootprintMonitoring/profiles/experiments","properties":{"description":"An - experiment description.","experimentId":"586c1d81fd08775f60023bb24ffc736e","status":"Created"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fp000004","name":"fp000004","type":"Microsoft.FootprintMonitoring/profiles/experiments","properties":{"description":"An + experiment description.","experimentId":"fc0b63fba89db2f8d4150e1d95b9ea58","status":"Created"}}' headers: cache-control: - no-cache @@ -501,7 +392,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:37 GMT + - Tue, 18 Aug 2020 22:23:05 GMT + etag: + - '"360161d9-0000-0800-0000-5f3c54c90000"' expires: - '-1' pragma: @@ -533,14 +426,14 @@ interactions: ParameterSetName: - --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments?api-version=2020-02-01-preview response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fpE000004","name":"fpE000004","type":"Microsoft.FootprintMonitoring/profiles/experiments","properties":{"description":"An - experiment description.","experimentId":"586c1d81fd08775f60023bb24ffc736e","status":"Created"}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fp000004","name":"fp000004","type":"Microsoft.FootprintMonitoring/profiles/experiments","properties":{"description":"An + experiment description.","experimentId":"fc0b63fba89db2f8d4150e1d95b9ea58","status":"Created"}}]}' headers: cache-control: - no-cache @@ -549,7 +442,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:38 GMT + - Tue, 18 Aug 2020 22:23:07 GMT expires: - '-1' pragma: @@ -558,10 +451,6 @@ interactions: - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding x-content-type-options: - nosniff status: @@ -587,13 +476,13 @@ interactions: - --name --endpoint --experiment-id --measurement-type --object-path --weight --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003?api-version=2020-02-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003","name":"endp000003","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints","properties":{"endpoint":"www.contoso.com","endpointId":"64c88d189c9ad2c9c096b211ee30e355","experimentId":"664cdec4f07d4e1083c9b3969ee2c49b","hotPathSamplingPercentageRate":0.0,"measurementType":2,"objectPath":"/trans.gif","warmPathSamplingPercentageRate":0.0,"weight":10}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003","name":"endp000003","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints","properties":{"endpoint":"www.contoso.com","endpointId":"3f9db20029849b10e9e1c41f71c32b80","experimentId":"664cdec4f07d4e1083c9b3969ee2c49b","hotPathSamplingPercentageRate":0.0,"measurementType":2,"objectPath":"/trans.gif","warmPathSamplingPercentageRate":0.0,"weight":10}}' headers: cache-control: - no-cache @@ -602,62 +491,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:43 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - 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": {"endpoint": "www.contoso.com", "measurementType": 2, "weight": - 10, "experimentId": "664cdec4f07d4e1083c9b3969ee2c49b", "objectPath": "/trans.gif"}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - footprint measurement-endpoint update - Connection: - - keep-alive - Content-Length: - - '163' - Content-Type: - - application/json - ParameterSetName: - - --name --endpoint --experiment-id --measurement-type --object-path --weight - --profile-name --resource-group - User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 - (Windows-10-10.0.18362-SP0) - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003?api-version=2020-02-01-preview - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003","name":"endp000003","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints","properties":{"conditions":[],"endpoint":"www.contoso.com","endpointId":"64c88d189c9ad2c9c096b211ee30e355","experimentId":"664cdec4f07d4e1083c9b3969ee2c49b","measurementType":2,"objectPath":"/trans.gif","weight":10}}' - headers: - cache-control: - - no-cache - content-length: - - '546' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 05 Aug 2020 08:21:47 GMT + - Tue, 18 Aug 2020 22:23:13 GMT + etag: + - '"98014158-0000-0800-0000-5f3c54d20000"' expires: - '-1' pragma: @@ -691,13 +527,13 @@ interactions: ParameterSetName: - --name --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003?api-version=2020-02-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003","name":"endp000003","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints","properties":{"conditions":[],"endpoint":"www.contoso.com","endpointId":"64c88d189c9ad2c9c096b211ee30e355","experimentId":"664cdec4f07d4e1083c9b3969ee2c49b","hotPathSamplingPercentageRate":0.0,"measurementType":2,"objectPath":"/trans.gif","warmPathSamplingPercentageRate":0.0,"weight":10}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003","name":"endp000003","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints","properties":{"conditions":[],"endpoint":"www.contoso.com","endpointId":"3f9db20029849b10e9e1c41f71c32b80","experimentId":"664cdec4f07d4e1083c9b3969ee2c49b","hotPathSamplingPercentageRate":0.0,"measurementType":2,"objectPath":"/trans.gif","warmPathSamplingPercentageRate":0.0,"weight":10}}' headers: cache-control: - no-cache @@ -706,7 +542,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:47 GMT + - Tue, 18 Aug 2020 22:23:15 GMT + etag: + - '"98014158-0000-0800-0000-5f3c54d20000"' expires: - '-1' pragma: @@ -738,13 +576,13 @@ interactions: ParameterSetName: - --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints?api-version=2020-02-01-preview response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003","name":"endp000003","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints","properties":{"conditions":[],"endpoint":"www.contoso.com","endpointId":"64c88d189c9ad2c9c096b211ee30e355","experimentId":"664cdec4f07d4e1083c9b3969ee2c49b","hotPathSamplingPercentageRate":0.0,"measurementType":2,"objectPath":"/trans.gif","warmPathSamplingPercentageRate":0.0,"weight":10}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003","name":"endp000003","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints","properties":{"conditions":[],"endpoint":"www.contoso.com","endpointId":"3f9db20029849b10e9e1c41f71c32b80","experimentId":"664cdec4f07d4e1083c9b3969ee2c49b","hotPathSamplingPercentageRate":0.0,"measurementType":2,"objectPath":"/trans.gif","warmPathSamplingPercentageRate":0.0,"weight":10}}]}' headers: cache-control: - no-cache @@ -753,7 +591,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:49 GMT + - Tue, 18 Aug 2020 22:23:15 GMT expires: - '-1' pragma: @@ -788,71 +626,15 @@ interactions: Content-Type: - application/json ParameterSetName: - - --condition-name --measurement-endpoint-name --constant --operator --variable - --profile-name --resource-group - User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 - (Windows-10-10.0.18362-SP0) - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0?api-version=2020-02-01-preview - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0","name":"condition0","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints/conditions","properties":{"conditionId":"ab691355ced92ed2b5173bfa5df624af","constant":"Edge-Prod-WST","operator":"MatchValueIgnoreCasing","type":"RequestHeader","variable":"X-FD-EdgeEnvironment"}}' - headers: - cache-control: - - no-cache - content-length: - - '548' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 05 Aug 2020 08:21:54 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - 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": {"type": "RequestHeader", "variable": "X-FD-EdgeEnvironment", - "operator": "MatchValueIgnoreCasing", "constant": "Edge-Prod-WST"}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - footprint measurement-endpoint-condition update - Connection: - - keep-alive - Content-Length: - - '144' - Content-Type: - - application/json - ParameterSetName: - - --condition-name --measurement-endpoint-name --constant --operator --variable - --profile-name --resource-group + - --name --endpoint-name --constant --operator --variable --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0?api-version=2020-02-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0","name":"condition0","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints/conditions","properties":{"conditionId":"ab691355ced92ed2b5173bfa5df624af","constant":"Edge-Prod-WST","operator":"MatchValueIgnoreCasing","type":"RequestHeader","variable":"X-FD-EdgeEnvironment"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0","name":"condition0","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints/conditions","properties":{"conditionId":"677f1a8667196d9513d36440893e8d4a","constant":"Edge-Prod-WST","operator":"MatchValueIgnoreCasing","type":"RequestHeader","variable":"X-FD-EdgeEnvironment"}}' headers: cache-control: - no-cache @@ -861,7 +643,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:56 GMT + - Tue, 18 Aug 2020 22:23:26 GMT + etag: + - '"7900e932-0000-0800-0000-5f3c54df0000"' expires: - '-1' pragma: @@ -893,15 +677,15 @@ interactions: Connection: - keep-alive ParameterSetName: - - --condition-name --measurement-endpoint-name --profile-name --resource-group + - --name --endpoint-name --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0?api-version=2020-02-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0","name":"condition0","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints/conditions","properties":{"conditionId":"ab691355ced92ed2b5173bfa5df624af","constant":"Edge-Prod-WST","operator":"MatchValueIgnoreCasing","type":"RequestHeader","variable":"X-FD-EdgeEnvironment"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0","name":"condition0","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints/conditions","properties":{"conditionId":"677f1a8667196d9513d36440893e8d4a","constant":"Edge-Prod-WST","operator":"MatchValueIgnoreCasing","type":"RequestHeader","variable":"X-FD-EdgeEnvironment"}}' headers: cache-control: - no-cache @@ -910,7 +694,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:58 GMT + - Tue, 18 Aug 2020 22:23:28 GMT + etag: + - '"7900e932-0000-0800-0000-5f3c54df0000"' expires: - '-1' pragma: @@ -940,15 +726,15 @@ interactions: Connection: - keep-alive ParameterSetName: - - --measurement-endpoint-name --profile-name --resource-group + - --endpoint-name --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions?api-version=2020-02-01-preview response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0","name":"condition0","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints/conditions","properties":{"conditionId":"ab691355ced92ed2b5173bfa5df624af","constant":"Edge-Prod-WST","operator":"MatchValueIgnoreCasing","type":"RequestHeader","variable":"X-FD-EdgeEnvironment"}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0","name":"condition0","type":"Microsoft.FootprintMonitoring/profiles/measurementEndpoints/conditions","properties":{"conditionId":"677f1a8667196d9513d36440893e8d4a","constant":"Edge-Prod-WST","operator":"MatchValueIgnoreCasing","type":"RequestHeader","variable":"X-FD-EdgeEnvironment"}}]}' headers: cache-control: - no-cache @@ -957,7 +743,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Wed, 05 Aug 2020 08:21:59 GMT + - Tue, 18 Aug 2020 22:23:30 GMT expires: - '-1' pragma: @@ -989,9 +775,9 @@ interactions: Content-Length: - '0' ParameterSetName: - - --condition-name --measurement-endpoint-name --profile-name --resource-group + - -y --name --endpoint-name --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003/conditions/condition0?api-version=2020-02-01-preview @@ -1004,7 +790,7 @@ interactions: content-length: - '0' date: - - Wed, 05 Aug 2020 08:22:03 GMT + - Tue, 18 Aug 2020 22:23:34 GMT expires: - '-1' pragma: @@ -1034,12 +820,12 @@ interactions: Content-Length: - '0' ParameterSetName: - - --name --profile-name --resource-group + - -y --name --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fpE000004?api-version=2020-02-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/experiments/fp000004?api-version=2020-02-01-preview response: body: string: '' @@ -1049,7 +835,7 @@ interactions: content-length: - '0' date: - - Wed, 05 Aug 2020 08:22:09 GMT + - Tue, 18 Aug 2020 22:23:39 GMT expires: - '-1' pragma: @@ -1079,9 +865,9 @@ interactions: Content-Length: - '0' ParameterSetName: - - --name --profile-name --resource-group + - -y --name --profile-name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002/measurementEndpoints/endp000003?api-version=2020-02-01-preview @@ -1094,7 +880,7 @@ interactions: content-length: - '0' date: - - Wed, 05 Aug 2020 08:22:14 GMT + - Tue, 18 Aug 2020 22:23:45 GMT expires: - '-1' pragma: @@ -1124,9 +910,9 @@ interactions: Content-Length: - '0' ParameterSetName: - - --name --resource-group + - -y --name --resource-group User-Agent: - - AZURECLI/2.9.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 + - AZURECLI/2.10.1 azsdk-python-footprintmonitoringmanagementclient/unknown Python/3.8.5 (Windows-10-10.0.18362-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.FootprintMonitoring/profiles/fpPro000002?api-version=2020-02-01-preview @@ -1139,7 +925,7 @@ interactions: content-length: - '0' date: - - Wed, 05 Aug 2020 08:22:19 GMT + - Tue, 18 Aug 2020 22:23:52 GMT expires: - '-1' pragma: diff --git a/src/footprint/azext_footprint/tests/latest/test_footprint_scenario.py b/src/footprint/azext_footprint/tests/latest/test_footprint_scenario.py index 1a0aaecf8fb..623f56c8f0c 100644 --- a/src/footprint/azext_footprint/tests/latest/test_footprint_scenario.py +++ b/src/footprint/azext_footprint/tests/latest/test_footprint_scenario.py @@ -10,7 +10,7 @@ import os from azure.cli.testsdk import ScenarioTest -from .. import try_manual, raise_if +from .. import try_manual, raise_if, calc_coverage from azure.cli.testsdk import ResourceGroupPreparer @@ -22,47 +22,47 @@ def setup(test, rg): pass -# EXAMPLE: /profiles/put/profilesCreateOrUpdate +# EXAMPLE: /profiles/put/Create or update a Footprint profile. @try_manual -def step__profiles_put_profilescreate(test, rg): +def step__profiles_put_create_or_update_a_footprint_profile_(test, rg): test.cmd('az footprint profile create ' '--location "westus2" ' '--measurement-count 3 ' - '--start-delay-milliseconds 5000 ' + '--start-delay-ms 5000 ' '--tags key1="value1" key2="value2" ' '--name "{myProfile}" ' '--resource-group "{rg}"', checks=[]) -# EXAMPLE: /profiles/get/List Footprint profiles in a Resource Group +# EXAMPLE: /profiles/get/Get the details of a Footprint profile. @try_manual -def step__profiles_get_list_footprint_profiles_in_a_resource_group(test, rg): - test.cmd('az footprint profile list ' +def step__profiles_get_get_the_details_of_a_footprint_profile_(test, rg): + test.cmd('az footprint profile show ' + '--name "{myProfile}" ' '--resource-group "{rg}"', checks=[]) -# EXAMPLE: /profiles/get/List Footprint profiles in a Subscription +# EXAMPLE: /profiles/get/List all Footprint profiles under a Resource Group. @try_manual -def step__profiles_get_list_footprint_profiles_in_a_subscription(test, rg): +def step__profiles_get_list_all_footprint_profiles_under_a_resource_group_(test, rg): test.cmd('az footprint profile list ' - '-g ""', + '--resource-group "{rg}"', checks=[]) -# EXAMPLE: /profiles/get/profilesGet +# EXAMPLE: /profiles/get/List all Footprint profiles under a subscription. @try_manual -def step__profiles_get_profilesget(test, rg): - test.cmd('az footprint profile show ' - '--name "{myProfile}" ' - '--resource-group "{rg}"', +def step__profiles_get_list_all_footprint_profiles_under_a_subscription_(test, rg): + test.cmd('az footprint profile list ' + '-g ""', checks=[]) -# EXAMPLE: /profiles/patch/profilesUpdate +# EXAMPLE: /profiles/patch/Update a Footprint profile. @try_manual -def step__profiles_patch_profilesupdate(test, rg): +def step__profiles_patch_update_a_footprint_profile_(test, rg): test.cmd('az footprint profile update ' '--tags key1="value1" key2="value2" ' '--name "{myProfile}" ' @@ -70,9 +70,9 @@ def step__profiles_patch_profilesupdate(test, rg): checks=[]) -# EXAMPLE: /experiments/put/experimentsCreateOrUpdate +# EXAMPLE: /experiments/put/Create or update an experiment. @try_manual -def step__experiments_put_experimentscreate(test, rg): +def step__experiments_put_create_or_update_an_experiment_(test, rg): test.cmd('az footprint experiment create ' '--name "{myExperiment}" ' '--description "An experiment description." ' @@ -81,20 +81,9 @@ def step__experiments_put_experimentscreate(test, rg): checks=[]) -# EXAMPLE: /experiments/put/experimentsCreateOrUpdate +# EXAMPLE: /experiments/get/Get the details of an experiment. @try_manual -def step__experiments_put_experimentsupdate(test, rg): - test.cmd('az footprint experiment update ' - '--name "{myExperiment}" ' - '--description "An experiment description." ' - '--profile-name "{myProfile}" ' - '--resource-group "{rg}"', - checks=[]) - - -# EXAMPLE: /experiments/get/experimentsGet -@try_manual -def step__experiments_get_experimentsget(test, rg): +def step__experiments_get_get_the_details_of_an_experiment_(test, rg): test.cmd('az footprint experiment show ' '--name "{myExperiment}" ' '--profile-name "{myProfile}" ' @@ -102,18 +91,18 @@ def step__experiments_get_experimentsget(test, rg): checks=[]) -# EXAMPLE: /experiments/get/experimentsListByProfile +# EXAMPLE: /experiments/get/List all experiments under a Footprint profile. @try_manual -def step__experiments_get_experimentslistbyprofile(test, rg): +def step__experiments_get_list_all_experiments_under_a_footprint_profile_(test, rg): test.cmd('az footprint experiment list ' '--profile-name "{myProfile}" ' '--resource-group "{rg}"', checks=[]) -# EXAMPLE: /measurementEndpoints/put/measurementEndpointsCreateOrUpdate +# EXAMPLE: /measurementEndpoints/put/Create or update a measurement endpoint. @try_manual -def step__measurementendpoints_put_measurementendpointscreate(test, rg): +def step__measurementendpoints_put_create_or_update_a_measurement_endpoint_(test, rg): test.cmd('az footprint measurement-endpoint create ' '--name "{myMeasurementEndpoint}" ' '--endpoint "www.contoso.com" ' @@ -126,24 +115,9 @@ def step__measurementendpoints_put_measurementendpointscreate(test, rg): checks=[]) -# EXAMPLE: /measurementEndpoints/put/measurementEndpointsCreateOrUpdate +# EXAMPLE: /measurementEndpoints/get/Get the details of a measurement endpoint. @try_manual -def step__measurementendpoints_put_measurementendpointsupdate(test, rg): - test.cmd('az footprint measurement-endpoint update ' - '--name "{myMeasurementEndpoint}" ' - '--endpoint "www.contoso.com" ' - '--experiment-id "664cdec4f07d4e1083c9b3969ee2c49b" ' - '--measurement-type 2 ' - '--object-path "/trans.gif" ' - '--weight 10 ' - '--profile-name "{myProfile}" ' - '--resource-group "{rg}"', - checks=[]) - - -# EXAMPLE: /measurementEndpoints/get/measurementEndpointsGet -@try_manual -def step__measurementendpoints_get_measurementendpointsget(test, rg): +def step__measurementendpoints_get_get_the_details_of_a_measurement_endpoint_(test, rg): test.cmd('az footprint measurement-endpoint show ' '--name "{myMeasurementEndpoint}" ' '--profile-name "{myProfile}" ' @@ -151,35 +125,21 @@ def step__measurementendpoints_get_measurementendpointsget(test, rg): checks=[]) -# EXAMPLE: /measurementEndpoints/get/measurementEndpointsListByProfile +# EXAMPLE: /measurementEndpoints/get/List all the measurement endpoints under a Footprint profile. @try_manual -def step__measurementendpoints_get_measurementendpointslistbyprofile(test, rg): +def step__measurementendpoints_get_list_all_the_measurement_endpoints_under_a_footprint_profile_(test, rg): test.cmd('az footprint measurement-endpoint list ' '--profile-name "{myProfile}" ' '--resource-group "{rg}"', checks=[]) -# EXAMPLE: /measurementEndpointConditions/put/measurementEndpointConditionCreateOrUpdate +# EXAMPLE: /measurementEndpointConditions/put/Create or update a measurement endpoint condition. @try_manual -def step__measurementendpointconditions_put_measurementendpointconditioncreate(test, rg): +def step__measurementendpointconditions_put_create_or_update_a_measurement_endpoint_condition_(test, rg): test.cmd('az footprint measurement-endpoint-condition create ' - '--condition-name "condition0" ' - '--measurement-endpoint-name "{myMeasurementEndpoint}" ' - '--constant "Edge-Prod-WST" ' - '--operator "MatchValueIgnoreCasing" ' - '--variable "X-FD-EdgeEnvironment" ' - '--profile-name "{myProfile}" ' - '--resource-group "{rg}"', - checks=[]) - - -# EXAMPLE: /measurementEndpointConditions/put/measurementEndpointConditionCreateOrUpdate -@try_manual -def step__measurementendpointconditions_put_measurementendpointconditionupdate(test, rg): - test.cmd('az footprint measurement-endpoint-condition update ' - '--condition-name "condition0" ' - '--measurement-endpoint-name "{myMeasurementEndpoint}" ' + '--name "condition0" ' + '--endpoint-name "{myMeasurementEndpoint}" ' '--constant "Edge-Prod-WST" ' '--operator "MatchValueIgnoreCasing" ' '--variable "X-FD-EdgeEnvironment" ' @@ -188,62 +148,62 @@ def step__measurementendpointconditions_put_measurementendpointconditionupdate(t checks=[]) -# EXAMPLE: /measurementEndpointConditions/get/measurementEndpointConditionGet +# EXAMPLE: /measurementEndpointConditions/get/Get the details of a measurement endpoint condition. @try_manual -def step__measurementendpointconditions_get_measurementendpointconditionget(test, rg): +def step__measurementendpointconditions_get_get_the_details_of_a_measurement_endpoint_condition_(test, rg): test.cmd('az footprint measurement-endpoint-condition show ' - '--condition-name "condition0" ' - '--measurement-endpoint-name "{myMeasurementEndpoint}" ' + '--name "condition0" ' + '--endpoint-name "{myMeasurementEndpoint}" ' '--profile-name "{myProfile}" ' '--resource-group "{rg}"', checks=[]) -# EXAMPLE: /measurementEndpointConditions/get/measurementEndpointConditionsListByEndpoint +# EXAMPLE: /measurementEndpointConditions/get/List all conditions under a measurement endpoint. @try_manual -def step__measurementendpointconditions_get_measurementendpointconditionslistbyendpoint(test, rg): +def step__measurementendpointconditions_get_list_all_conditions_under_a_measurement_endpoint_(test, rg): test.cmd('az footprint measurement-endpoint-condition list ' - '--measurement-endpoint-name "{myMeasurementEndpoint}" ' + '--endpoint-name "{myMeasurementEndpoint}" ' '--profile-name "{myProfile}" ' '--resource-group "{rg}"', checks=[]) -# EXAMPLE: /measurementEndpointConditions/delete/measurementEndpointConditionDelete +# EXAMPLE: /measurementEndpointConditions/delete/Delete a measurement endpoint condition. @try_manual -def step__measurementendpointconditions_delete_measurementendpointconditiondelete(test, rg): - test.cmd('az footprint measurement-endpoint-condition delete ' - '--condition-name "condition0" ' - '--measurement-endpoint-name "{myMeasurementEndpoint}" ' +def step__measurementendpointconditions_delete_delete_a_measurement_endpoint_condition_(test, rg): + test.cmd('az footprint measurement-endpoint-condition delete -y ' + '--name "condition0" ' + '--endpoint-name "{myMeasurementEndpoint}" ' '--profile-name "{myProfile}" ' '--resource-group "{rg}"', checks=[]) -# EXAMPLE: /experiments/delete/experimentsDelete +# EXAMPLE: /experiments/delete/Delete an experiment. @try_manual -def step__experiments_delete_experimentsdelete(test, rg): - test.cmd('az footprint experiment delete ' +def step__experiments_delete_delete_an_experiment_(test, rg): + test.cmd('az footprint experiment delete -y ' '--name "{myExperiment}" ' '--profile-name "{myProfile}" ' '--resource-group "{rg}"', checks=[]) -# EXAMPLE: /measurementEndpoints/delete/measurementEndpointsDelete +# EXAMPLE: /measurementEndpoints/delete/Delete a measurement endpoint. @try_manual -def step__measurementendpoints_delete_measurementendpointsdelete(test, rg): - test.cmd('az footprint measurement-endpoint delete ' +def step__measurementendpoints_delete_delete_a_measurement_endpoint_(test, rg): + test.cmd('az footprint measurement-endpoint delete -y ' '--name "{myMeasurementEndpoint}" ' '--profile-name "{myProfile}" ' '--resource-group "{rg}"', checks=[]) -# EXAMPLE: /profiles/delete/profilesDelete +# EXAMPLE: /profiles/delete/Delete a Footprint profile. @try_manual -def step__profiles_delete_profilesdelete(test, rg): - test.cmd('az footprint profile delete ' +def step__profiles_delete_delete_a_footprint_profile_(test, rg): + test.cmd('az footprint profile delete -y ' '--name "{myProfile}" ' '--resource-group "{rg}"', checks=[]) @@ -257,27 +217,24 @@ def cleanup(test, rg): @try_manual def call_scenario(test, rg): setup(test, rg) - step__profiles_put_profilescreate(test, rg) - step__profiles_get_list_footprint_profiles_in_a_resource_group(test, rg) - step__profiles_get_list_footprint_profiles_in_a_subscription(test, rg) - step__profiles_get_profilesget(test, rg) - step__profiles_patch_profilesupdate(test, rg) - step__experiments_put_experimentscreate(test, rg) - step__experiments_put_experimentsupdate(test, rg) - step__experiments_get_experimentsget(test, rg) - step__experiments_get_experimentslistbyprofile(test, rg) - step__measurementendpoints_put_measurementendpointscreate(test, rg) - step__measurementendpoints_put_measurementendpointsupdate(test, rg) - step__measurementendpoints_get_measurementendpointsget(test, rg) - step__measurementendpoints_get_measurementendpointslistbyprofile(test, rg) - step__measurementendpointconditions_put_measurementendpointconditioncreate(test, rg) - step__measurementendpointconditions_put_measurementendpointconditionupdate(test, rg) - step__measurementendpointconditions_get_measurementendpointconditionget(test, rg) - step__measurementendpointconditions_get_measurementendpointconditionslistbyendpoint(test, rg) - step__measurementendpointconditions_delete_measurementendpointconditiondelete(test, rg) - step__experiments_delete_experimentsdelete(test, rg) - step__measurementendpoints_delete_measurementendpointsdelete(test, rg) - step__profiles_delete_profilesdelete(test, rg) + step__profiles_put_create_or_update_a_footprint_profile_(test, rg) + step__profiles_get_get_the_details_of_a_footprint_profile_(test, rg) + step__profiles_get_list_all_footprint_profiles_under_a_resource_group_(test, rg) + step__profiles_get_list_all_footprint_profiles_under_a_subscription_(test, rg) + step__profiles_patch_update_a_footprint_profile_(test, rg) + step__experiments_put_create_or_update_an_experiment_(test, rg) + step__experiments_get_get_the_details_of_an_experiment_(test, rg) + step__experiments_get_list_all_experiments_under_a_footprint_profile_(test, rg) + step__measurementendpoints_put_create_or_update_a_measurement_endpoint_(test, rg) + step__measurementendpoints_get_get_the_details_of_a_measurement_endpoint_(test, rg) + step__measurementendpoints_get_list_all_the_measurement_endpoints_under_a_footprint_profile_(test, rg) + step__measurementendpointconditions_put_create_or_update_a_measurement_endpoint_condition_(test, rg) + step__measurementendpointconditions_get_get_the_details_of_a_measurement_endpoint_condition_(test, rg) + step__measurementendpointconditions_get_list_all_conditions_under_a_measurement_endpoint_(test, rg) + step__measurementendpointconditions_delete_delete_a_measurement_endpoint_condition_(test, rg) + step__experiments_delete_delete_an_experiment_(test, rg) + step__measurementendpoints_delete_delete_a_measurement_endpoint_(test, rg) + step__profiles_delete_delete_a_footprint_profile_(test, rg) cleanup(test, rg) @@ -290,8 +247,9 @@ def test_footprint(self, rg): self.kwargs.update({ 'myProfile': self.create_random_name(prefix='fpProfile1'[:5], length=10), 'myMeasurementEndpoint': self.create_random_name(prefix='endpoint1'[:4], length=9), - 'myExperiment': self.create_random_name(prefix='fpExp1'[:3], length=9), + 'myExperiment': self.create_random_name(prefix='fpExp1'[:2], length=9), }) call_scenario(self, rg) + calc_coverage(__file__) raise_if() diff --git a/src/footprint/azext_footprint/tests/latest/test_footprint_scenario_coverage.md b/src/footprint/azext_footprint/tests/latest/test_footprint_scenario_coverage.md new file mode 100644 index 00000000000..918c9def9f0 --- /dev/null +++ b/src/footprint/azext_footprint/tests/latest/test_footprint_scenario_coverage.md @@ -0,0 +1,20 @@ +|Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt| +|step__profiles_put_create_or_update_a_footprint_profile_|successed||||2020-08-18 22:22:11.639664|2020-08-18 22:22:55.697462| +|step__profiles_get_get_the_details_of_a_footprint_profile_|successed||||2020-08-18 22:22:55.697462|2020-08-18 22:22:56.835470| +|step__profiles_get_list_all_footprint_profiles_under_a_resource_group_|successed||||2020-08-18 22:22:56.835470|2020-08-18 22:22:57.912519| +|step__profiles_get_list_all_footprint_profiles_under_a_subscription_|successed||||2020-08-18 22:22:57.912519|2020-08-18 22:22:59.172658| +|step__profiles_patch_update_a_footprint_profile_|successed||||2020-08-18 22:22:59.172658|2020-08-18 22:23:00.365159| +|step__experiments_put_create_or_update_an_experiment_|successed||||2020-08-18 22:23:00.365159|2020-08-18 22:23:05.881296| +|step__experiments_get_get_the_details_of_an_experiment_|successed||||2020-08-18 22:23:05.882295|2020-08-18 22:23:06.878597| +|step__experiments_get_list_all_experiments_under_a_footprint_profile_|successed||||2020-08-18 22:23:06.878597|2020-08-18 22:23:07.847313| +|step__measurementendpoints_put_create_or_update_a_measurement_endpoint_|successed||||2020-08-18 22:23:07.848309|2020-08-18 22:23:14.516788| +|step__measurementendpoints_get_get_the_details_of_a_measurement_endpoint_|successed||||2020-08-18 22:23:14.516788|2020-08-18 22:23:15.493906| +|step__measurementendpoints_get_list_all_the_measurement_endpoints_under_a_footprint_profile_|successed||||2020-08-18 22:23:15.493906|2020-08-18 22:23:16.698742| +|step__measurementendpointconditions_put_create_or_update_a_measurement_endpoint_condition_|successed||||2020-08-18 22:23:16.698742|2020-08-18 22:23:28.010368| +|step__measurementendpointconditions_get_get_the_details_of_a_measurement_endpoint_condition_|successed||||2020-08-18 22:23:28.011367|2020-08-18 22:23:29.276407| +|step__measurementendpointconditions_get_list_all_conditions_under_a_measurement_endpoint_|successed||||2020-08-18 22:23:29.276407|2020-08-18 22:23:30.574658| +|step__measurementendpointconditions_delete_delete_a_measurement_endpoint_condition_|successed||||2020-08-18 22:23:30.575663|2020-08-18 22:23:35.114155| +|step__experiments_delete_delete_an_experiment_|successed||||2020-08-18 22:23:35.114155|2020-08-18 22:23:39.818973| +|step__measurementendpoints_delete_delete_a_measurement_endpoint_|successed||||2020-08-18 22:23:39.818973|2020-08-18 22:23:46.433847| +|step__profiles_delete_delete_a_footprint_profile_|successed||||2020-08-18 22:23:46.434832|2020-08-18 22:23:53.642127| +Coverage: 18/18 diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/__init__.py b/src/footprint/azext_footprint/vendored_sdks/footprint/__init__.py index c473fbd91c6..3e62f1a2930 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/__init__.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/__init__.py @@ -10,7 +10,7 @@ __all__ = ['FootprintMonitoringManagementClient'] try: - from ._patch import patch_sdk + from ._patch import patch_sdk # type: ignore patch_sdk() except ImportError: pass diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/_configuration.py b/src/footprint/azext_footprint/vendored_sdks/footprint/_configuration.py index 20e946275c4..8b683be6f0b 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/_configuration.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/_configuration.py @@ -10,6 +10,7 @@ from azure.core.configuration import Configuration from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -61,6 +62,7 @@ def _configure( self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/_configuration_async.py b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/_configuration_async.py index 4c6079c33c9..ba84e637b66 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/_configuration_async.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/_configuration_async.py @@ -10,6 +10,7 @@ from azure.core.configuration import Configuration from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -57,6 +58,7 @@ def _configure( self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_experiment_operations_async.py b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_experiment_operations_async.py index 6d3fc9623b8..ef5b94d03a0 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_experiment_operations_async.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_experiment_operations_async.py @@ -47,9 +47,9 @@ def list_by_profile( profile_name: str, **kwargs ) -> AsyncIterable["models.ExperimentList"]: - """Retrieves the information about all experiments under a Footprint profile. + """Get all experiments under a Footprint profile. - Get all experiments under a Footprint profile. + Retrieves the information about all experiments under a Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -66,28 +66,28 @@ def list_by_profile( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_profile.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -122,9 +122,9 @@ async def get( experiment_name: str, **kwargs ) -> "models.Experiment": - """Retrieves the information about a single Footprint experiment. + """Get a Footprint experiment resource. - Get a Footprint experiment resource. + Retrieves the information about a single Footprint experiment. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -147,7 +147,7 @@ async def get( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'experimentName': self._serialize.url("experiment_name", experiment_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -160,7 +160,6 @@ async def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -186,9 +185,9 @@ async def create_or_update( description: Optional[str] = None, **kwargs ) -> "models.Experiment": - """Creates or updates a Footprint experiment with the specified properties. + """Creates or updates a Footprint experiment resource. - Creates or updates a Footprint experiment resource. + Creates or updates a Footprint experiment with the specified properties. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -216,7 +215,7 @@ async def create_or_update( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'experimentName': self._serialize.url("experiment_name", experiment_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -230,7 +229,6 @@ async def create_or_update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(_parameters, 'Experiment') body_content_kwargs['content'] = body_content @@ -244,7 +242,6 @@ async def create_or_update( error = self._deserialize(models.DefaultErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Experiment', pipeline_response) @@ -264,9 +261,9 @@ async def delete( experiment_name: str, **kwargs ) -> None: - """Deletes an existing Footprint experiment. + """Deletes a Footprint experiment resource. - Deletes a Footprint experiment resource. + Deletes an existing Footprint experiment. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -289,7 +286,7 @@ async def delete( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'experimentName': self._serialize.url("experiment_name", experiment_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -301,7 +298,6 @@ async def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_measurement_endpoint_condition_operations_async.py b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_measurement_endpoint_condition_operations_async.py index d055f8ba6e6..09edc639dea 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_measurement_endpoint_condition_operations_async.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_measurement_endpoint_condition_operations_async.py @@ -48,9 +48,10 @@ def list_by_measurement_endpoint( measurement_endpoint_name: str, **kwargs ) -> AsyncIterable["models.MeasurementEndpointConditionList"]: - """Retrieves the information about all measurement endpoint conditions under a Footprint measurement endpoint. + """Get all measurement endpoint conditions under a Footprint measurement endpoint. - Get all measurement endpoint conditions under a Footprint measurement endpoint. + Retrieves the information about all measurement endpoint conditions under a Footprint + measurement endpoint. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -69,13 +70,17 @@ def list_by_measurement_endpoint( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_measurement_endpoint.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -83,15 +88,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -127,9 +128,10 @@ async def get( condition_name: str, **kwargs ) -> "models.MeasurementEndpointCondition": - """Retrieves the information about a single measurement endpoint condition under a Footprint measurement endpoint. + """Get a measurement endpoint condition under a Footprint measurement endpoint resource. - Get a measurement endpoint condition under a Footprint measurement endpoint resource. + Retrieves the information about a single measurement endpoint condition under a Footprint + measurement endpoint. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -154,7 +156,7 @@ async def get( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), 'conditionName': self._serialize.url("condition_name", condition_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } @@ -168,7 +170,6 @@ async def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -192,14 +193,16 @@ async def create_or_update( profile_name: str, measurement_endpoint_name: str, condition_name: str, + type: Union[str, "models.Type"], variable: str, operator: Union[str, "models.Operator"], constant: str, **kwargs ) -> "models.MeasurementEndpointCondition": - """Creates or updates a measurement endpoint condition under a Footprint measurement with the specified properties. + """Creates or updates a measurement endpoint condition under a Footprint measurement resource. - Creates or updates a measurement endpoint condition under a Footprint measurement resource. + Creates or updates a measurement endpoint condition under a Footprint measurement with the + specified properties. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -209,6 +212,8 @@ async def create_or_update( :type measurement_endpoint_name: str :param condition_name: Name of the Footprint measurement endpoint condition resource. :type condition_name: str + :param type: The type of a Footprint measurement endpoint condition. + :type type: str or ~footprint_monitoring_management_client.models.Type :param variable: The variable of a Footprint measurement endpoint condition. :type variable: str :param operator: The operator of a Footprint measurement endpoint condition. @@ -224,7 +229,7 @@ async def create_or_update( error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) - _parameters = models.MeasurementEndpointCondition(variable=variable, operator=operator, constant=constant) + _parameters = models.MeasurementEndpointCondition(type_properties_type=type, variable=variable, operator=operator, constant=constant) api_version = "2020-02-01-preview" content_type = kwargs.pop("content_type", "application/json") @@ -233,7 +238,7 @@ async def create_or_update( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), 'conditionName': self._serialize.url("condition_name", condition_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } @@ -248,7 +253,6 @@ async def create_or_update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(_parameters, 'MeasurementEndpointCondition') body_content_kwargs['content'] = body_content @@ -262,7 +266,6 @@ async def create_or_update( error = self._deserialize(models.DefaultErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('MeasurementEndpointCondition', pipeline_response) @@ -283,9 +286,9 @@ async def delete( condition_name: str, **kwargs ) -> None: - """Deletes an existing measurement endpoint condition under a Footprint measurement. + """Deletes a measurement endpoint condition under a Footprint measurement resource. - Deletes a measurement endpoint condition under a Footprint measurement resource. + Deletes an existing measurement endpoint condition under a Footprint measurement. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -310,7 +313,7 @@ async def delete( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), 'conditionName': self._serialize.url("condition_name", condition_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } @@ -323,7 +326,6 @@ async def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_measurement_endpoint_operations_async.py b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_measurement_endpoint_operations_async.py index 83e51bf9489..676d640f806 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_measurement_endpoint_operations_async.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_measurement_endpoint_operations_async.py @@ -48,9 +48,9 @@ def list_by_profile( profile_name: str, **kwargs ) -> AsyncIterable["models.MeasurementEndpointList"]: - """Retrieves the information about all measurement endpoints under a Footprint profile. + """Get all measurement endpoints under a Footprint profile. - Get all measurement endpoints under a Footprint profile. + Retrieves the information about all measurement endpoints under a Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -67,28 +67,28 @@ def list_by_profile( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_profile.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -123,9 +123,9 @@ async def get( measurement_endpoint_name: str, **kwargs ) -> "models.MeasurementEndpoint": - """Retrieves the information about a single measurement endpoint under a Footprint profile. + """Get a measurement endpoint under a Footprint profile resource. - Get a measurement endpoint under a Footprint profile resource. + Retrieves the information about a single measurement endpoint under a Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -148,7 +148,7 @@ async def get( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -161,7 +161,6 @@ async def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -198,9 +197,10 @@ async def create_or_update( metadata: Optional[str] = None, **kwargs ) -> "models.MeasurementEndpoint": - """Creates or updates a single measurement endpoint under a Footprint profile with the specified properties. + """Creates or updates a single measurement endpoint under a Footprint profile resource. - Creates or updates a single measurement endpoint under a Footprint profile resource. + Creates or updates a single measurement endpoint under a Footprint profile with the specified + properties. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -253,7 +253,7 @@ async def create_or_update( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -267,7 +267,6 @@ async def create_or_update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(_parameters, 'MeasurementEndpoint') body_content_kwargs['content'] = body_content @@ -281,7 +280,6 @@ async def create_or_update( error = self._deserialize(models.DefaultErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('MeasurementEndpoint', pipeline_response) @@ -301,9 +299,9 @@ async def delete( measurement_endpoint_name: str, **kwargs ) -> None: - """Deletes an existing measurement endpoint under a Footprint profile. + """Deletes a measurement endpoint under a Footprint profile resource. - Deletes a measurement endpoint under a Footprint profile resource. + Deletes an existing measurement endpoint under a Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -326,7 +324,7 @@ async def delete( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -338,7 +336,6 @@ async def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_operation_operations_async.py b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_operation_operations_async.py index 29d76f0ef2f..7af97ca3cd5 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_operation_operations_async.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_operation_operations_async.py @@ -45,9 +45,9 @@ def list( self, **kwargs ) -> AsyncIterable["models.ResourceProviderOperationList"]: - """Retrieves a list of available API operations. + """Retrieves a list of available API operations under this Resource Provider. - Retrieves a list of available API operations under this Resource Provider. + Retrieves a list of available API operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ResourceProviderOperationList or the result of cls(response) @@ -60,6 +60,10 @@ def list( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -67,15 +71,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_profile_operations_async.py b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_profile_operations_async.py index adca0e27008..4fa036cbaa4 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_profile_operations_async.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/aio/operations_async/_profile_operations_async.py @@ -45,9 +45,9 @@ def list_by_subscription( self, **kwargs ) -> AsyncIterable["models.ProfileList"]: - """Retrieves the information about all Footprint profiles under a subscription. + """Get all Footprint profiles under a subscription. - Get all Footprint profiles under a subscription. + Retrieves the information about all Footprint profiles under a subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProfileList or the result of cls(response) @@ -60,6 +60,10 @@ def list_by_subscription( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_subscription.metadata['url'] # type: ignore @@ -71,15 +75,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -112,9 +112,9 @@ def list_by_resource_group( resource_group_name: str, **kwargs ) -> AsyncIterable["models.ProfileList"]: - """Retrieves the information about all Footprint profiles under a resource group. + """Get all Footprint profiles under a resource group. - Get all Footprint profiles under a resource group. + Retrieves the information about all Footprint profiles under a resource group. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -129,6 +129,10 @@ def list_by_resource_group( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_resource_group.metadata['url'] # type: ignore @@ -141,15 +145,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request async def extract_data(pipeline_response): @@ -183,9 +183,9 @@ async def get( profile_name: str, **kwargs ) -> "models.Profile": - """Retrieves the information about a single Footprint profile. + """Get a Footprint profile resource. - Get a Footprint profile resource. + Retrieves the information about a single Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -206,7 +206,7 @@ async def get( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -218,7 +218,6 @@ async def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -249,9 +248,9 @@ async def create_or_update( reporting_endpoints: Optional[List[str]] = None, **kwargs ) -> "models.Profile": - """Creates or updates a Footprint profile with the specified properties. + """Creates or updates a Footprint profile resource. - Creates or updates a Footprint profile resource. + Creates or updates a Footprint profile with the specified properties. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -291,7 +290,7 @@ async def create_or_update( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -304,7 +303,6 @@ async def create_or_update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(_parameters, 'Profile') body_content_kwargs['content'] = body_content @@ -318,7 +316,6 @@ async def create_or_update( error = self._deserialize(models.DefaultErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Profile', pipeline_response) @@ -337,9 +334,9 @@ async def delete( profile_name: str, **kwargs ) -> None: - """Deletes an existing Footprint profile. + """Deletes a Footprint profile resource. - Deletes a Footprint profile resource. + Deletes an existing Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -360,7 +357,7 @@ async def delete( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -371,7 +368,6 @@ async def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -393,9 +389,9 @@ async def update( tags: Optional[Dict[str, str]] = None, **kwargs ) -> "models.Profile": - """Updates an existing Footprint profile resource. + """Updates a Footprint profile resource. - Updates a Footprint profile resource. + Updates an existing Footprint profile resource. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -421,7 +417,7 @@ async def update( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -434,7 +430,6 @@ async def update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(_parameters, 'ProfilePatch') body_content_kwargs['content'] = body_content diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/models/__init__.py b/src/footprint/azext_footprint/vendored_sdks/footprint/models/__init__.py index bde17874024..ea9b48aa2d5 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/models/__init__.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/models/__init__.py @@ -44,6 +44,7 @@ from ._footprint_monitoring_management_client_enums import ( Operator, ProvisioningState, + Type, ) __all__ = [ @@ -65,4 +66,5 @@ 'SubResource', 'Operator', 'ProvisioningState', + 'Type', ] diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/models/_footprint_monitoring_management_client_enums.py b/src/footprint/azext_footprint/vendored_sdks/footprint/models/_footprint_monitoring_management_client_enums.py index a3afc39ef78..f9aee1ac55e 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/models/_footprint_monitoring_management_client_enums.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/models/_footprint_monitoring_management_client_enums.py @@ -6,25 +6,49 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from enum import Enum +from enum import Enum, EnumMeta +from six import with_metaclass -class Operator(str, Enum): +class _CaseInsensitiveEnumMeta(EnumMeta): + def __getitem__(self, name): + return super().__getitem__(name.upper()) + + def __getattr__(cls, name): + """Return the enum member matching `name` + We use __getattr__ instead of descriptors or inserting into the enum + class' __dict__ in order to support `name` and `value` being both + properties for enum members (which live in the class' __dict__) and + enum members themselves. + """ + try: + return cls._member_map_[name.upper()] + except KeyError: + raise AttributeError(name) + + +class Operator(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The operator of a Footprint measurement endpoint condition. """ - is_exact_value = "IsExactValue" - match_value_ignore_casing = "MatchValueIgnoreCasing" - contains_value = "ContainsValue" - contains_value_ignore_casing = "ContainsValueIgnoreCasing" - does_not_contain_value = "DoesNotContainValue" - does_not_contain_value_ignore_casing = "DoesNotContainValueIgnoreCasing" + IS_EXACT_VALUE = "IsExactValue" + MATCH_VALUE_IGNORE_CASING = "MatchValueIgnoreCasing" + CONTAINS_VALUE = "ContainsValue" + CONTAINS_VALUE_IGNORE_CASING = "ContainsValueIgnoreCasing" + DOES_NOT_CONTAIN_VALUE = "DoesNotContainValue" + DOES_NOT_CONTAIN_VALUE_IGNORE_CASING = "DoesNotContainValueIgnoreCasing" -class ProvisioningState(str, Enum): +class ProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """The provisioned state of the resource. """ - succeeded = "Succeeded" - failed = "Failed" - cancelled = "Cancelled" - updating = "Updating" - deleting = "Deleting" + SUCCEEDED = "Succeeded" + FAILED = "Failed" + CANCELLED = "Cancelled" + UPDATING = "Updating" + DELETING = "Deleting" + +class Type(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The type of a Footprint measurement endpoint condition. + """ + + REQUEST_HEADER = "RequestHeader" diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/models/_models.py b/src/footprint/azext_footprint/vendored_sdks/footprint/models/_models.py index 7d5cc896398..a14b4cb9cb9 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/models/_models.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/models/_models.py @@ -282,9 +282,9 @@ class MeasurementEndpointCondition(SubResource): :vartype type: str :ivar condition_id: The id of a Footprint measurement endpoint condition. :vartype condition_id: str - :ivar type_properties_type: Required. The type of a Footprint measurement endpoint condition. - Default value: "RequestHeader". - :vartype type_properties_type: str + :param type_properties_type: Required. The type of a Footprint measurement endpoint condition. + Possible values include: "RequestHeader". + :type type_properties_type: str or ~footprint_monitoring_management_client.models.Type :param variable: Required. The variable of a Footprint measurement endpoint condition. :type variable: str :param operator: Required. The operator of a Footprint measurement endpoint condition. Possible @@ -300,7 +300,7 @@ class MeasurementEndpointCondition(SubResource): 'name': {'readonly': True}, 'type': {'readonly': True}, 'condition_id': {'readonly': True, 'max_length': 32, 'min_length': 32, 'pattern': r'[a-f0-9]{32}'}, - 'type_properties_type': {'required': True, 'constant': True}, + 'type_properties_type': {'required': True}, 'variable': {'required': True}, 'operator': {'required': True}, 'constant': {'required': True}, @@ -317,8 +317,6 @@ class MeasurementEndpointCondition(SubResource): 'constant': {'key': 'properties.constant', 'type': 'str'}, } - type_properties_type = "RequestHeader" - def __init__( self, **kwargs @@ -327,6 +325,7 @@ def __init__( self.name = None self.type = None self.condition_id = None + self.type_properties_type = kwargs['type_properties_type'] self.variable = kwargs['variable'] self.operator = kwargs['operator'] self.constant = kwargs['constant'] diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/models/_models_py3.py b/src/footprint/azext_footprint/vendored_sdks/footprint/models/_models_py3.py index 46561b6719d..71e77c74d5c 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/models/_models_py3.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/models/_models_py3.py @@ -306,9 +306,9 @@ class MeasurementEndpointCondition(SubResource): :vartype type: str :ivar condition_id: The id of a Footprint measurement endpoint condition. :vartype condition_id: str - :ivar type_properties_type: Required. The type of a Footprint measurement endpoint condition. - Default value: "RequestHeader". - :vartype type_properties_type: str + :param type_properties_type: Required. The type of a Footprint measurement endpoint condition. + Possible values include: "RequestHeader". + :type type_properties_type: str or ~footprint_monitoring_management_client.models.Type :param variable: Required. The variable of a Footprint measurement endpoint condition. :type variable: str :param operator: Required. The operator of a Footprint measurement endpoint condition. Possible @@ -324,7 +324,7 @@ class MeasurementEndpointCondition(SubResource): 'name': {'readonly': True}, 'type': {'readonly': True}, 'condition_id': {'readonly': True, 'max_length': 32, 'min_length': 32, 'pattern': r'[a-f0-9]{32}'}, - 'type_properties_type': {'required': True, 'constant': True}, + 'type_properties_type': {'required': True}, 'variable': {'required': True}, 'operator': {'required': True}, 'constant': {'required': True}, @@ -341,11 +341,10 @@ class MeasurementEndpointCondition(SubResource): 'constant': {'key': 'properties.constant', 'type': 'str'}, } - type_properties_type = "RequestHeader" - def __init__( self, *, + type_properties_type: Union[str, "Type"], variable: str, operator: Union[str, "Operator"], constant: str, @@ -355,6 +354,7 @@ def __init__( self.name = None self.type = None self.condition_id = None + self.type_properties_type = type_properties_type self.variable = variable self.operator = operator self.constant = constant diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_experiment_operations.py b/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_experiment_operations.py index 5a85a42ad80..ba2b9cbb6d8 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_experiment_operations.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_experiment_operations.py @@ -52,9 +52,9 @@ def list_by_profile( **kwargs # type: Any ): # type: (...) -> Iterable["models.ExperimentList"] - """Retrieves the information about all experiments under a Footprint profile. + """Get all experiments under a Footprint profile. - Get all experiments under a Footprint profile. + Retrieves the information about all experiments under a Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -71,28 +71,28 @@ def list_by_profile( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_profile.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -128,9 +128,9 @@ def get( **kwargs # type: Any ): # type: (...) -> "models.Experiment" - """Retrieves the information about a single Footprint experiment. + """Get a Footprint experiment resource. - Get a Footprint experiment resource. + Retrieves the information about a single Footprint experiment. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -153,7 +153,7 @@ def get( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'experimentName': self._serialize.url("experiment_name", experiment_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -166,7 +166,6 @@ def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -193,9 +192,9 @@ def create_or_update( **kwargs # type: Any ): # type: (...) -> "models.Experiment" - """Creates or updates a Footprint experiment with the specified properties. + """Creates or updates a Footprint experiment resource. - Creates or updates a Footprint experiment resource. + Creates or updates a Footprint experiment with the specified properties. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -223,7 +222,7 @@ def create_or_update( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'experimentName': self._serialize.url("experiment_name", experiment_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -237,7 +236,6 @@ def create_or_update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(_parameters, 'Experiment') body_content_kwargs['content'] = body_content @@ -251,7 +249,6 @@ def create_or_update( error = self._deserialize(models.DefaultErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Experiment', pipeline_response) @@ -272,9 +269,9 @@ def delete( **kwargs # type: Any ): # type: (...) -> None - """Deletes an existing Footprint experiment. + """Deletes a Footprint experiment resource. - Deletes a Footprint experiment resource. + Deletes an existing Footprint experiment. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -297,7 +294,7 @@ def delete( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'experimentName': self._serialize.url("experiment_name", experiment_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -309,7 +306,6 @@ def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_measurement_endpoint_condition_operations.py b/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_measurement_endpoint_condition_operations.py index 9f8e04bd4d3..06cd219176a 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_measurement_endpoint_condition_operations.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_measurement_endpoint_condition_operations.py @@ -53,9 +53,10 @@ def list_by_measurement_endpoint( **kwargs # type: Any ): # type: (...) -> Iterable["models.MeasurementEndpointConditionList"] - """Retrieves the information about all measurement endpoint conditions under a Footprint measurement endpoint. + """Get all measurement endpoint conditions under a Footprint measurement endpoint. - Get all measurement endpoint conditions under a Footprint measurement endpoint. + Retrieves the information about all measurement endpoint conditions under a Footprint + measurement endpoint. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -74,13 +75,17 @@ def list_by_measurement_endpoint( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_measurement_endpoint.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -88,15 +93,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -133,9 +134,10 @@ def get( **kwargs # type: Any ): # type: (...) -> "models.MeasurementEndpointCondition" - """Retrieves the information about a single measurement endpoint condition under a Footprint measurement endpoint. + """Get a measurement endpoint condition under a Footprint measurement endpoint resource. - Get a measurement endpoint condition under a Footprint measurement endpoint resource. + Retrieves the information about a single measurement endpoint condition under a Footprint + measurement endpoint. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -160,7 +162,7 @@ def get( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), 'conditionName': self._serialize.url("condition_name", condition_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } @@ -174,7 +176,6 @@ def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -198,15 +199,17 @@ def create_or_update( profile_name, # type: str measurement_endpoint_name, # type: str condition_name, # type: str + type, # type: Union[str, "models.Type"] variable, # type: str operator, # type: Union[str, "models.Operator"] constant, # type: str **kwargs # type: Any ): # type: (...) -> "models.MeasurementEndpointCondition" - """Creates or updates a measurement endpoint condition under a Footprint measurement with the specified properties. + """Creates or updates a measurement endpoint condition under a Footprint measurement resource. - Creates or updates a measurement endpoint condition under a Footprint measurement resource. + Creates or updates a measurement endpoint condition under a Footprint measurement with the + specified properties. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -216,6 +219,8 @@ def create_or_update( :type measurement_endpoint_name: str :param condition_name: Name of the Footprint measurement endpoint condition resource. :type condition_name: str + :param type: The type of a Footprint measurement endpoint condition. + :type type: str or ~footprint_monitoring_management_client.models.Type :param variable: The variable of a Footprint measurement endpoint condition. :type variable: str :param operator: The operator of a Footprint measurement endpoint condition. @@ -231,7 +236,7 @@ def create_or_update( error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} error_map.update(kwargs.pop('error_map', {})) - _parameters = models.MeasurementEndpointCondition(variable=variable, operator=operator, constant=constant) + _parameters = models.MeasurementEndpointCondition(type_properties_type=type, variable=variable, operator=operator, constant=constant) api_version = "2020-02-01-preview" content_type = kwargs.pop("content_type", "application/json") @@ -240,7 +245,7 @@ def create_or_update( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), 'conditionName': self._serialize.url("condition_name", condition_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } @@ -255,7 +260,6 @@ def create_or_update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(_parameters, 'MeasurementEndpointCondition') body_content_kwargs['content'] = body_content @@ -269,7 +273,6 @@ def create_or_update( error = self._deserialize(models.DefaultErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('MeasurementEndpointCondition', pipeline_response) @@ -291,9 +294,9 @@ def delete( **kwargs # type: Any ): # type: (...) -> None - """Deletes an existing measurement endpoint condition under a Footprint measurement. + """Deletes a measurement endpoint condition under a Footprint measurement resource. - Deletes a measurement endpoint condition under a Footprint measurement resource. + Deletes an existing measurement endpoint condition under a Footprint measurement. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -318,7 +321,7 @@ def delete( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), 'conditionName': self._serialize.url("condition_name", condition_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } @@ -331,7 +334,6 @@ def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_measurement_endpoint_operations.py b/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_measurement_endpoint_operations.py index 814403d0e17..074f9d936f7 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_measurement_endpoint_operations.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_measurement_endpoint_operations.py @@ -53,9 +53,9 @@ def list_by_profile( **kwargs # type: Any ): # type: (...) -> Iterable["models.MeasurementEndpointList"] - """Retrieves the information about all measurement endpoints under a Footprint profile. + """Get all measurement endpoints under a Footprint profile. - Get all measurement endpoints under a Footprint profile. + Retrieves the information about all measurement endpoints under a Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -72,28 +72,28 @@ def list_by_profile( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_profile.metadata['url'] # type: ignore path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -129,9 +129,9 @@ def get( **kwargs # type: Any ): # type: (...) -> "models.MeasurementEndpoint" - """Retrieves the information about a single measurement endpoint under a Footprint profile. + """Get a measurement endpoint under a Footprint profile resource. - Get a measurement endpoint under a Footprint profile resource. + Retrieves the information about a single measurement endpoint under a Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -154,7 +154,7 @@ def get( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -167,7 +167,6 @@ def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -205,9 +204,10 @@ def create_or_update( **kwargs # type: Any ): # type: (...) -> "models.MeasurementEndpoint" - """Creates or updates a single measurement endpoint under a Footprint profile with the specified properties. + """Creates or updates a single measurement endpoint under a Footprint profile resource. - Creates or updates a single measurement endpoint under a Footprint profile resource. + Creates or updates a single measurement endpoint under a Footprint profile with the specified + properties. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -260,7 +260,7 @@ def create_or_update( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -274,7 +274,6 @@ def create_or_update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(_parameters, 'MeasurementEndpoint') body_content_kwargs['content'] = body_content @@ -288,7 +287,6 @@ def create_or_update( error = self._deserialize(models.DefaultErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('MeasurementEndpoint', pipeline_response) @@ -309,9 +307,9 @@ def delete( **kwargs # type: Any ): # type: (...) -> None - """Deletes an existing measurement endpoint under a Footprint profile. + """Deletes a measurement endpoint under a Footprint profile resource. - Deletes a measurement endpoint under a Footprint profile resource. + Deletes an existing measurement endpoint under a Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -334,7 +332,7 @@ def delete( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), 'measurementEndpointName': self._serialize.url("measurement_endpoint_name", measurement_endpoint_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -346,7 +344,6 @@ def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_operation_operations.py b/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_operation_operations.py index ca1412f746b..f93189b1091 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_operation_operations.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_operation_operations.py @@ -50,9 +50,9 @@ def list( **kwargs # type: Any ): # type: (...) -> Iterable["models.ResourceProviderOperationList"] - """Retrieves a list of available API operations. + """Retrieves a list of available API operations under this Resource Provider. - Retrieves a list of available API operations under this Resource Provider. + Retrieves a list of available API operations. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ResourceProviderOperationList or the result of cls(response) @@ -65,6 +65,10 @@ def list( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list.metadata['url'] # type: ignore @@ -72,15 +76,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): diff --git a/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_profile_operations.py b/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_profile_operations.py index fbefdc79ff6..896c12ee2b4 100644 --- a/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_profile_operations.py +++ b/src/footprint/azext_footprint/vendored_sdks/footprint/operations/_profile_operations.py @@ -50,9 +50,9 @@ def list_by_subscription( **kwargs # type: Any ): # type: (...) -> Iterable["models.ProfileList"] - """Retrieves the information about all Footprint profiles under a subscription. + """Get all Footprint profiles under a subscription. - Get all Footprint profiles under a subscription. + Retrieves the information about all Footprint profiles under a subscription. :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ProfileList or the result of cls(response) @@ -65,6 +65,10 @@ def list_by_subscription( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_subscription.metadata['url'] # type: ignore @@ -76,15 +80,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -118,9 +118,9 @@ def list_by_resource_group( **kwargs # type: Any ): # type: (...) -> Iterable["models.ProfileList"] - """Retrieves the information about all Footprint profiles under a resource group. + """Get all Footprint profiles under a resource group. - Get all Footprint profiles under a resource group. + Retrieves the information about all Footprint profiles under a resource group. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -135,6 +135,10 @@ def list_by_resource_group( api_version = "2020-02-01-preview" def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + if not next_link: # Construct URL url = self.list_by_resource_group.metadata['url'] # type: ignore @@ -147,15 +151,11 @@ def prepare_request(next_link=None): query_parameters = {} # type: Dict[str, Any] query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + request = self._client.get(url, query_parameters, header_parameters) else: url = next_link query_parameters = {} # type: Dict[str, Any] - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = 'application/json' - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) return request def extract_data(pipeline_response): @@ -190,9 +190,9 @@ def get( **kwargs # type: Any ): # type: (...) -> "models.Profile" - """Retrieves the information about a single Footprint profile. + """Get a Footprint profile resource. - Get a Footprint profile resource. + Retrieves the information about a single Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -213,7 +213,7 @@ def get( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -225,7 +225,6 @@ def get( header_parameters = {} # type: Dict[str, Any] header_parameters['Accept'] = 'application/json' - # Construct and send request request = self._client.get(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -257,9 +256,9 @@ def create_or_update( **kwargs # type: Any ): # type: (...) -> "models.Profile" - """Creates or updates a Footprint profile with the specified properties. + """Creates or updates a Footprint profile resource. - Creates or updates a Footprint profile resource. + Creates or updates a Footprint profile with the specified properties. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -299,7 +298,7 @@ def create_or_update( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -312,7 +311,6 @@ def create_or_update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(_parameters, 'Profile') body_content_kwargs['content'] = body_content @@ -326,7 +324,6 @@ def create_or_update( error = self._deserialize(models.DefaultErrorResponse, response) raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - deserialized = None if response.status_code == 200: deserialized = self._deserialize('Profile', pipeline_response) @@ -346,9 +343,9 @@ def delete( **kwargs # type: Any ): # type: (...) -> None - """Deletes an existing Footprint profile. + """Deletes a Footprint profile resource. - Deletes a Footprint profile resource. + Deletes an existing Footprint profile. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -369,7 +366,7 @@ def delete( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -380,7 +377,6 @@ def delete( # Construct headers header_parameters = {} # type: Dict[str, Any] - # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) response = pipeline_response.http_response @@ -403,9 +399,9 @@ def update( **kwargs # type: Any ): # type: (...) -> "models.Profile" - """Updates an existing Footprint profile resource. + """Updates a Footprint profile resource. - Updates a Footprint profile resource. + Updates an existing Footprint profile resource. :param resource_group_name: The name of the resource group. :type resource_group_name: str @@ -431,7 +427,7 @@ def update( path_format_arguments = { 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1), - 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=5, pattern=r'^[a-zA-Z0-9]'), + 'profileName': self._serialize.url("profile_name", profile_name, 'str', max_length=64, min_length=3, pattern=r'^[a-zA-Z0-9]'), } url = self._client.format_url(url, **path_format_arguments) @@ -444,7 +440,6 @@ def update( header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') header_parameters['Accept'] = 'application/json' - # Construct and send request body_content_kwargs = {} # type: Dict[str, Any] body_content = self._serialize.body(_parameters, 'ProfilePatch') body_content_kwargs['content'] = body_content diff --git a/src/footprint/report.md b/src/footprint/report.md index d92c9032f38..bd486ca79c6 100644 --- a/src/footprint/report.md +++ b/src/footprint/report.md @@ -132,8 +132,8 @@ create a footprint measurement-endpoint. |**--description**|string|The description of a measurement endpoint.|description|description| |**--experiment-id**|string|The id of an experiment that a measurement endpoint is part of.|experiment_id|experimentId| |**--object-path**|string|The path of the object that a measurement endpoint points to.|object_path|objectPath| -|**--start-time-utc**|date-time|The start time that a measurement endpoint should be served.|start_time_utc|startTimeUTC| -|**--end-time-utc**|date-time|The end time that a measurement endpoint should be served.|end_time_utc|endTimeUTC| +|**--start-time-utc**|date-time|The start time that a measurement endpoint should be served.|start_time_u_t_c|startTimeUTC| +|**--end-time-utc**|date-time|The end time that a measurement endpoint should be served.|end_time_u_t_c|endTimeUTC| |**--hot-path-sampling-percentage-rate**|number|The percentual sampling rate for the hot path logging of a measurement endpoint.|hot_path_sampling_percentage_rate|hotPathSamplingPercentageRate| |**--warm-path-sampling-percentage-rate**|number|The percentual sampling rate for the warm path logging of a measurement endpoint.|warm_path_sampling_percentage_rate|warmPathSamplingPercentageRate| |**--cold-path-sampling-percentage-rate-override**|number|The percentual sampling rate for the cold path logging of a measurement endpoint.|cold_path_sampling_percentage_rate_override|coldPathSamplingPercentageRateOverride| @@ -227,8 +227,8 @@ update a footprint measurement-endpoint. |**--description**|string|The description of a measurement endpoint.|description|description| |**--experiment-id**|string|The id of an experiment that a measurement endpoint is part of.|experiment_id|experimentId| |**--object-path**|string|The path of the object that a measurement endpoint points to.|object_path|objectPath| -|**--start-time-utc**|date-time|The start time that a measurement endpoint should be served.|start_time_utc|startTimeUTC| -|**--end-time-utc**|date-time|The end time that a measurement endpoint should be served.|end_time_utc|endTimeUTC| +|**--start-time-utc**|date-time|The start time that a measurement endpoint should be served.|start_time_u_t_c|startTimeUTC| +|**--end-time-utc**|date-time|The end time that a measurement endpoint should be served.|end_time_u_t_c|endTimeUTC| |**--hot-path-sampling-percentage-rate**|number|The percentual sampling rate for the hot path logging of a measurement endpoint.|hot_path_sampling_percentage_rate|hotPathSamplingPercentageRate| |**--warm-path-sampling-percentage-rate**|number|The percentual sampling rate for the warm path logging of a measurement endpoint.|warm_path_sampling_percentage_rate|warmPathSamplingPercentageRate| |**--cold-path-sampling-percentage-rate-override**|number|The percentual sampling rate for the cold path logging of a measurement endpoint.|cold_path_sampling_percentage_rate_override|coldPathSamplingPercentageRateOverride| diff --git a/src/image-copy/HISTORY.rst b/src/image-copy/HISTORY.rst index da3ac7ec439..2f5620bd73e 100644 --- a/src/image-copy/HISTORY.rst +++ b/src/image-copy/HISTORY.rst @@ -3,6 +3,10 @@ Release History =============== +0.2.7 +++++++ +* Fix copying failure when location of source resource group and source image are different. + 0.2.6 ++++++ * Add validation on temporary resource group. diff --git a/src/image-copy/azext_imagecopy/custom.py b/src/image-copy/azext_imagecopy/custom.py index 817382d0454..8480959b579 100644 --- a/src/image-copy/azext_imagecopy/custom.py +++ b/src/image-copy/azext_imagecopy/custom.py @@ -84,19 +84,21 @@ def imagecopy(cmd, source_resource_group_name, source_object_name, target_locati # TODO: skip creating another snapshot when the source is a snapshot logger.warning("Creating source snapshot") source_os_disk_snapshot_name = source_object_name + '_os_disk_snapshot' - + snapshot_location = json_cmd_output['location'] if source_os_disk_type == "BLOB": source_storage_account_id = get_storage_account_id_from_blob_path(cmd, source_os_disk_id, source_resource_group_name) cli_cmd = prepare_cli_command(['snapshot', 'create', '--name', source_os_disk_snapshot_name, + '--location', snapshot_location, '--resource-group', source_resource_group_name, '--source', source_os_disk_id, '--source-storage-account-id', source_storage_account_id]) else: cli_cmd = prepare_cli_command(['snapshot', 'create', '--name', source_os_disk_snapshot_name, + '--location', snapshot_location, '--resource-group', source_resource_group_name, '--source', source_os_disk_id]) diff --git a/src/image-copy/setup.py b/src/image-copy/setup.py index 06a60b58a19..7a821051e46 100644 --- a/src/image-copy/setup.py +++ b/src/image-copy/setup.py @@ -8,7 +8,7 @@ from codecs import open from setuptools import setup, find_packages -VERSION = "0.2.6" +VERSION = "0.2.7" CLASSIFIERS = [ 'Development Status :: 4 - Beta', diff --git a/src/index.json b/src/index.json index 502636c7a5b..537c9f4c10a 100644 --- a/src/index.json +++ b/src/index.json @@ -43,33 +43,30 @@ "version": "0.1.0" }, "sha256Digest": "badd35099d52efc5d8c337eee3ce3958005e6bfbb0c83798a74458b90ea6046b" - } - ], - "aem": [ + }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/aem-0.1.1-py2.py3-none-any.whl", - "filename": "aem-0.1.1-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/account-0.2.0-py2.py3-none-any.whl", + "filename": "account-0.2.0-py2.py3-none-any.whl", "metadata": { - "azext.minCliCoreVersion": "2.0.30", + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.3.1", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { "python.details": { "contacts": [ { - "email": "yugangw@microsoft.com", - "name": "Yugang Wang", + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", "role": "author" } ], @@ -81,40 +78,41 @@ } } }, - "generator": "bdist_wheel (0.29.0)", + "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "aem", - "summary": "Manage Azure Enhanced Monitoring Extensions for SAP", - "version": "0.1.1" + "name": "account", + "summary": "Microsoft Azure Command-Line Tools SubscriptionClient Extension", + "version": "0.2.0" }, - "sha256Digest": "4ac7b8a4a89eda68d9d1a07cc5edd9b1a2b88421e2aa9a9e5b86a241f127775f" + "sha256Digest": "a5613056e59cccaf4de58d9b108b0103f1b5a698345e6261b5bf83b3ff7637cf" } ], - "ai-did-you-mean-this": [ + "aem": [ { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_did_you_mean_this-0.1.1-py3-none-any.whl", - "filename": "ai_did_you_mean_this-0.1.1-py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/aem-0.1.1-py2.py3-none-any.whl", + "filename": "aem-0.1.1-py2.py3-none-any.whl", "metadata": { - "azext.isExperimental": true, - "azext.minCliCoreVersion": "2.4.0", + "azext.minCliCoreVersion": "2.0.30", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { "python.details": { "contacts": [ { - "email": "chotool@microsoft.com", - "name": "Christopher O'Toole", + "email": "yugangw@microsoft.com", + "name": "Yugang Wang", "role": "author" } ], @@ -122,31 +120,36 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions/ai-did-you-mean-this" + "Home": "https://github.com/Azure/azure-cli-extensions" } } }, - "generator": "bdist_wheel (0.30.0)", + "generator": "bdist_wheel (0.29.0)", "license": "MIT", "metadata_version": "2.0", - "name": "ai-did-you-mean-this", - "summary": "Recommend recovery options on failure.", + "name": "aem", + "summary": "Manage Azure Enhanced Monitoring Extensions for SAP", "version": "0.1.1" }, - "sha256Digest": "bb9c1226707c3f15b1da4c1ebff3cf34ed8c683342eb2d353b18925e344da8ac" - }, + "sha256Digest": "4ac7b8a4a89eda68d9d1a07cc5edd9b1a2b88421e2aa9a9e5b86a241f127775f" + } + ], + "ai-examples": [ { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_did_you_mean_this-0.2.0-py3-none-any.whl", - "filename": "ai_did_you_mean_this-0.2.0-py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.1.0-py2.py3-none-any.whl", + "filename": "ai_examples-0.1.0-py2.py3-none-any.whl", "metadata": { - "azext.isExperimental": true, - "azext.minCliCoreVersion": "2.4.0", + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.81", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", @@ -156,8 +159,8 @@ "python.details": { "contacts": [ { - "email": "chotool@microsoft.com", - "name": "Christopher O'Toole", + "email": "mabooe@microsoft.com", + "name": "Matthew Booe", "role": "author" } ], @@ -165,70 +168,25 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions/ai-did-you-mean-this" + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/ai-examples" } } }, "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "ai-did-you-mean-this", - "summary": "Recommend recovery options on failure.", - "version": "0.2.0" + "name": "ai-examples", + "summary": "Add AI powered examples to help content.", + "version": "0.1.0" }, - "sha256Digest": "83d7f955d0dda41b015a10d22be1066a497463c06d7444335e8b394bbc20d42b" + "sha256Digest": "3bf63937122345abe28f6d6ddcac8c76491ae992910a6516bcb506e099e59f8b" }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_did_you_mean_this-0.2.1-py3-none-any.whl", - "filename": "ai_did_you_mean_this-0.2.1-py3-none-any.whl", - "metadata": { - "azext.isExperimental": true, - "azext.minCliCoreVersion": "2.4.0", - "classifiers": [ - "Development Status :: 4 - Beta", - "Intended Audience :: Developers", - "Intended Audience :: System Administrators", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "License :: OSI Approved :: MIT License" - ], - "extensions": { - "python.details": { - "contacts": [ - { - "email": "chotool@microsoft.com", - "name": "Christopher O'Toole", - "role": "author" - } - ], - "document_names": { - "description": "DESCRIPTION.rst" - }, - "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/ai-did-you-mean-this" - } - } - }, - "generator": "bdist_wheel (0.30.0)", - "license": "MIT", - "metadata_version": "2.0", - "name": "ai-did-you-mean-this", - "summary": "Recommend recovery options on failure.", - "version": "0.2.1" - }, - "sha256Digest": "420faee6ce67baca3a277d7e473ce3de2e62311c5483ccab18450679bd01f8a5" - } - ], - "ai-examples": [ - { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.1.0-py2.py3-none-any.whl", - "filename": "ai_examples-0.1.0-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.2.0-py2.py3-none-any.whl", + "filename": "ai_examples-0.2.0-py2.py3-none-any.whl", "metadata": { "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.81", + "azext.minCliCoreVersion": "2.2.0", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", @@ -265,13 +223,13 @@ "metadata_version": "2.0", "name": "ai-examples", "summary": "Add AI powered examples to help content.", - "version": "0.1.0" + "version": "0.2.0" }, - "sha256Digest": "3bf63937122345abe28f6d6ddcac8c76491ae992910a6516bcb506e099e59f8b" + "sha256Digest": "1e976b938f377e35618525154b46725fa66f17883a6fb233fb2f9d427a34421b" }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.2.0-py2.py3-none-any.whl", - "filename": "ai_examples-0.2.0-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.2.1-py2.py3-none-any.whl", + "filename": "ai_examples-0.2.1-py2.py3-none-any.whl", "metadata": { "azext.isPreview": true, "azext.minCliCoreVersion": "2.2.0", @@ -311,13 +269,13 @@ "metadata_version": "2.0", "name": "ai-examples", "summary": "Add AI powered examples to help content.", - "version": "0.2.0" + "version": "0.2.1" }, - "sha256Digest": "1e976b938f377e35618525154b46725fa66f17883a6fb233fb2f9d427a34421b" + "sha256Digest": "f45d5a3726924c8a7ae03f2fce1ea4c0221291cf5c815dd54bbc7cd867f1edc2" }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.2.1-py2.py3-none-any.whl", - "filename": "ai_examples-0.2.1-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.2.2-py2.py3-none-any.whl", + "filename": "ai_examples-0.2.2-py2.py3-none-any.whl", "metadata": { "azext.isPreview": true, "azext.minCliCoreVersion": "2.2.0", @@ -357,13 +315,13 @@ "metadata_version": "2.0", "name": "ai-examples", "summary": "Add AI powered examples to help content.", - "version": "0.2.1" + "version": "0.2.2" }, - "sha256Digest": "f45d5a3726924c8a7ae03f2fce1ea4c0221291cf5c815dd54bbc7cd867f1edc2" + "sha256Digest": "6f5da7c8783d6c295b0bc290284609d2e4d60618e208529ec224cde6137254e7" }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.2.2-py2.py3-none-any.whl", - "filename": "ai_examples-0.2.2-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.2.3-py2.py3-none-any.whl", + "filename": "ai_examples-0.2.3-py2.py3-none-any.whl", "metadata": { "azext.isPreview": true, "azext.minCliCoreVersion": "2.2.0", @@ -403,13 +361,13 @@ "metadata_version": "2.0", "name": "ai-examples", "summary": "Add AI powered examples to help content.", - "version": "0.2.2" + "version": "0.2.3" }, - "sha256Digest": "6f5da7c8783d6c295b0bc290284609d2e4d60618e208529ec224cde6137254e7" + "sha256Digest": "b4e02c629f2d5613553460c0c1923d638753b355cda5cd7e6ed11b573eaf6d01" }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.2.3-py2.py3-none-any.whl", - "filename": "ai_examples-0.2.3-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ai_examples-0.2.4-py2.py3-none-any.whl", + "filename": "ai_examples-0.2.4-py2.py3-none-any.whl", "metadata": { "azext.isPreview": true, "azext.minCliCoreVersion": "2.2.0", @@ -449,9 +407,9 @@ "metadata_version": "2.0", "name": "ai-examples", "summary": "Add AI powered examples to help content.", - "version": "0.2.3" + "version": "0.2.4" }, - "sha256Digest": "b4e02c629f2d5613553460c0c1923d638753b355cda5cd7e6ed11b573eaf6d01" + "sha256Digest": "acb73b45ea35b909a0e25ca8757a1434d9ba109ebb3d54698850f5258e76132c" } ], "aks-preview": [ @@ -1535,15 +1493,13 @@ "version": "0.4.61" }, "sha256Digest": "e40833b2de89ae4884d0d88741ed6949d6a3b8e970c946e1ff4aed1ca5215b57" - } - ], - "alertsmanagement": [ + }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/alertsmanagement-0.1.0-py2.py3-none-any.whl", - "filename": "alertsmanagement-0.1.0-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/aks_preview-0.4.62-py2.py3-none-any.whl", + "filename": "aks_preview-0.4.62-py2.py3-none-any.whl", "metadata": { - "azext.isExperimental": true, - "azext.minCliCoreVersion": "2.3.1", + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.49", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", @@ -1559,8 +1515,8 @@ "python.details": { "contacts": [ { - "email": "fey@microsoft.com", - "name": "Github:qwordy", + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", "role": "author" } ], @@ -1568,46 +1524,42 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions" + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/aks-preview" } } }, "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "alertsmanagement", - "summary": "Microsoft Azure Command-Line Tools Alerts Extension", - "version": "0.1.0" + "name": "aks-preview", + "summary": "Provides a preview for upcoming AKS features", + "version": "0.4.62" }, - "sha256Digest": "80ab78574debff9d8a9106bac3929cb552adea1371ea24f06073669fef708fcd" - } - ], - "alias": [ + "sha256Digest": "41538793759b3aae977c3c0e6263a271b20ea130467d89c0dee19877198f0703" + }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/alias-0.5.2-py2.py3-none-any.whl", - "filename": "alias-0.5.2-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/aks_preview-0.4.63-py2.py3-none-any.whl", + "filename": "aks_preview-0.4.63-py2.py3-none-any.whl", "metadata": { "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.50.dev0", + "azext.minCliCoreVersion": "2.0.49", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { "python.details": { "contacts": [ { - "email": "t-chwong@microsoft.com", - "name": "Ernest Wong", + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", "role": "author" } ], @@ -1615,52 +1567,42 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions" + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/aks-preview" } } }, - "extras": [], - "generator": "bdist_wheel (0.29.0)", + "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "alias", - "run_requires": [ - { - "requires": [ - "jinja2 (~=2.10)" - ] - } - ], - "summary": "Support for command aliases", - "version": "0.5.2" + "name": "aks-preview", + "summary": "Provides a preview for upcoming AKS features", + "version": "0.4.63" }, - "sha256Digest": "05f82d75026e780d27bd34a1be57f4ec0f425500d8ab4ee7e92fee07b944da33" + "sha256Digest": "ad7e574b1728797189c3e7185ff56e09e835086bd8876c4ef8cbdc54ffe1bc77" }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/alias-0.5.1-py2.py3-none-any.whl", - "filename": "alias-0.5.1-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/aks_preview-0.4.64-py2.py3-none-any.whl", + "filename": "aks_preview-0.4.64-py2.py3-none-any.whl", "metadata": { "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.31.dev0", + "azext.minCliCoreVersion": "2.0.49", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { "python.details": { "contacts": [ { - "email": "t-chwong@microsoft.com", - "name": "Ernest Wong", + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", "role": "author" } ], @@ -1668,41 +1610,186 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions" + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/aks-preview" } } }, - "extras": [], "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "alias", - "run_requires": [ - { - "requires": [ - "jinja2 (~=2.10)" - ] - } - ], - "summary": "Support for command aliases", - "version": "0.5.1" + "name": "aks-preview", + "summary": "Provides a preview for upcoming AKS features", + "version": "0.4.64" }, - "sha256Digest": "81b9a7f1824bffcbd6e72680891476151dde868e030cdbf1bfd9135e1a8f3447" + "sha256Digest": "507a299bddcb9199f589be12ad0761e03c8386ed2b4ca26782199e9c1f18bf49" } ], - "application-insights": [ + "alertsmanagement": [ { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/application_insights-0.1.3-py2.py3-none-any.whl", - "filename": "application_insights-0.1.3-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/alertsmanagement-0.1.0-py2.py3-none-any.whl", + "filename": "alertsmanagement-0.1.0-py2.py3-none-any.whl", "metadata": { - "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.79", + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.3.1", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], "extensions": { "python.details": { "contacts": [ { - "email": "aleldeib@microsoft.com", - "name": "Ace Eldeib", + "email": "fey@microsoft.com", + "name": "Github:qwordy", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "alertsmanagement", + "summary": "Microsoft Azure Command-Line Tools Alerts Extension", + "version": "0.1.0" + }, + "sha256Digest": "80ab78574debff9d8a9106bac3929cb552adea1371ea24f06073669fef708fcd" + } + ], + "alias": [ + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/alias-0.5.2-py2.py3-none-any.whl", + "filename": "alias-0.5.2-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.50.dev0", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "t-chwong@microsoft.com", + "name": "Ernest Wong", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "extras": [], + "generator": "bdist_wheel (0.29.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "alias", + "run_requires": [ + { + "requires": [ + "jinja2 (~=2.10)" + ] + } + ], + "summary": "Support for command aliases", + "version": "0.5.2" + }, + "sha256Digest": "05f82d75026e780d27bd34a1be57f4ec0f425500d8ab4ee7e92fee07b944da33" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/alias-0.5.1-py2.py3-none-any.whl", + "filename": "alias-0.5.1-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.31.dev0", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "t-chwong@microsoft.com", + "name": "Ernest Wong", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "extras": [], + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "alias", + "run_requires": [ + { + "requires": [ + "jinja2 (~=2.10)" + ] + } + ], + "summary": "Support for command aliases", + "version": "0.5.1" + }, + "sha256Digest": "81b9a7f1824bffcbd6e72680891476151dde868e030cdbf1bfd9135e1a8f3447" + } + ], + "application-insights": [ + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/application_insights-0.1.3-py2.py3-none-any.whl", + "filename": "application_insights-0.1.3-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.79", + "extensions": { + "python.details": { + "contacts": [ + { + "email": "aleldeib@microsoft.com", + "name": "Ace Eldeib", "role": "author" } ], @@ -1995,6 +2082,112 @@ "version": "0.1.9" }, "sha256Digest": "4ed371e2e02a31133bec6d416dd98c0de3e1ffbf56089e034abc36609c9dfa97" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/application_insights-0.1.10-py2.py3-none-any.whl", + "filename": "application_insights-0.1.10-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.79", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "aleldeib@microsoft.com", + "name": "Ace Eldeib", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/application-insights" + } + } + }, + "extras": [], + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "application-insights", + "run_requires": [ + { + "requires": [ + "isodate (~=0.6.0)" + ] + } + ], + "summary": "Support for managing Application Insights components and querying metrics, events, and logs from such components.", + "version": "0.1.10" + }, + "sha256Digest": "4f6ef254677ae32523f44af0f6b99bbdf6e5a8d1c894c7d2d72f4c8f8f359fb0" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/application_insights-0.1.11-py2.py3-none-any.whl", + "filename": "application_insights-0.1.11-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.79", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "aleldeib@microsoft.com", + "name": "Ace Eldeib", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/application-insights" + } + } + }, + "extras": [], + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "application-insights", + "run_requires": [ + { + "requires": [ + "isodate (~=0.6.0)" + ] + } + ], + "summary": "Support for managing Application Insights components and querying metrics, events, and logs from such components.", + "version": "0.1.11" + }, + "sha256Digest": "ffb9b4daf395966226786cc55bce2beff7d9a22ccec739cb21910ff03f582e90" } ], "attestation": [ @@ -2378,8 +2571,8 @@ ], "azure-cli-ml": [ { - "downloadUrl": "https://azurecliext.blob.core.windows.net/release/azure_cli_ml-1.12.0-py3-none-any.whl", - "filename": "azure_cli_ml-1.12.0-py3-none-any.whl", + "downloadUrl": "https://azurecliext.blob.core.windows.net/release/azure_cli_ml-1.15.0-py3-none-any.whl", + "filename": "azure_cli_ml-1.15.0-py3-none-any.whl", "metadata": { "azext.minCliCoreVersion": "2.3.1", "classifiers": [ @@ -2420,7 +2613,7 @@ { "requires": [ "adal (>=1.2.1)", - "azureml-cli-common (~=1.12.0)", + "azureml-cli-common (~=1.15.0)", "docker (>=3.7.2)", "msrest (>=0.6.6)", "pyyaml (>=5.1.0)", @@ -2439,9 +2632,9 @@ ] } ], - "version": "1.12.0" + "version": "1.15.0" }, - "sha256Digest": "51bb9bed05af974494df27cccebea7382b6c37e5b12e8edc5ff7134e58efc143" + "sha256Digest": "aae85163243c63013f68cce55b543c9e6560b69027c01a8f87b01f9f009ef01d" }, { "downloadUrl": "https://azurecliext.blob.core.windows.net/release/azure_cli_ml-1.5.0-py2.py3-none-any.whl", @@ -3032,32 +3225,167 @@ "version": "0.5.1" }, "sha256Digest": "40581d4aaf52a8a1f8deccf3be641385348251b34ffeb4c65193111150002699" - } - ], - "azure-iot": [ + }, { - "downloadUrl": "https://github.com/Azure/azure-iot-cli-extension/releases/download/v0.9.8/azure_iot-0.9.8-py2.py3-none-any.whl", - "filename": "azure_iot-0.9.8-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/azure_firewall-0.6.0-py2.py3-none-any.whl", + "filename": "azure_firewall-0.6.0-py2.py3-none-any.whl", "metadata": { - "azext.minCliCoreVersion": "2.3.1", + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { "python.details": { "contacts": [ { - "email": "iotupx@microsoft.com", - "name": "Microsoft", + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/azure-firewall" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "azure-firewall", + "summary": "Manage Azure Firewall resources.", + "version": "0.6.0" + }, + "sha256Digest": "b22c81a341f1742ebb2c32c45af1470b12bfe2d03907d43206cf8d0860e058f6" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/azure_firewall-0.6.1-py2.py3-none-any.whl", + "filename": "azure_firewall-0.6.1-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/azure-firewall" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "azure-firewall", + "summary": "Manage Azure Firewall resources.", + "version": "0.6.1" + }, + "sha256Digest": "4bf18f81d1b97d458181154f51803103745182cf68972180507aa8c291c60a94" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/azure_firewall-0.6.2-py2.py3-none-any.whl", + "filename": "azure_firewall-0.6.2-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/azure-firewall" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "azure-firewall", + "summary": "Manage Azure Firewall resources.", + "version": "0.6.2" + }, + "sha256Digest": "30539d78089ae73cbc012d487de7b9e9717096e2abf960ca4e7057ef77222a25" + } + ], + "azure-iot": [ + { + "downloadUrl": "https://github.com/Azure/azure-iot-cli-extension/releases/download/v0.10.3/azure_iot-0.10.3-py3-none-any.whl", + "filename": "azure_iot-0.10.3-py3-none-any.whl", + "metadata": { + "azext.minCliCoreVersion": "2.3.1", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "iotupx@microsoft.com", + "name": "Microsoft", "role": "author" } ], @@ -3074,6 +3402,7 @@ "license": "MIT", "metadata_version": "2.0", "name": "azure-iot", + "requires_python": ">=3.5,<4", "run_requires": [ { "requires": [ @@ -3084,9 +3413,9 @@ } ], "summary": "The Azure IoT extension for Azure CLI.", - "version": "0.9.8" + "version": "0.10.3" }, - "sha256Digest": "d3f576c0a07459d252e31b81bca37f21d8ec329958e4a0ff0424b15696308908" + "sha256Digest": "f77123c6c80c7c9b91bd373a15529cdf49fb524902f7ab44f72936f27fe2f8c7" }, { "downloadUrl": "https://github.com/Azure/azure-iot-cli-extension/releases/download/v0.9.7/azure_iot-0.9.7-py2.py3-none-any.whl", @@ -3195,6 +3524,52 @@ "sha256Digest": "bbf330942daac0035bd9bb9a0fdeaf297124ec8cd98e28e46adb2bf34070295b" } ], + "baremetal-infrastructure": [ + { + "downloadUrl": "https://github.com/Azure/azure-baremetalinfrastructure-cli-extension/releases/download/0.0.1/baremetal_infrastructure-0.0.1-py2.py3-none-any.whl", + "filename": "baremetal_infrastructure-0.0.1-py2.py3-none-any.whl", + "metadata": { + "azext.minCliCoreVersion": "2.12.0", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-baremetalinfrastructure-cli-extension" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "baremetal-infrastructure", + "summary": "Additional commands for working with BareMetal instances.", + "version": "0.0.1" + }, + "sha256Digest": "1c2344e2c4bce6df9d8c2a588111b4106e02e80568278f2be247a543cb15b9c4" + } + ], "blockchain": [ { "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/blockchain-0.1.0-py3-none-any.whl", @@ -3762,20 +4137,29 @@ "version": "0.2.4" }, "sha256Digest": "4de66f7e8cecdfab8c91bf4f37347770fb17e087454159d3a5c81e0205f2da2c" - } - ], - "connectedmachine": [ + }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/connectedmachine-0.1.1-py2.py3-none-any.whl", - "filename": "connectedmachine-0.1.1-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/connectedk8s-0.2.5-py3-none-any.whl", + "filename": "connectedk8s-0.2.5-py3-none-any.whl", "metadata": { "azext.isPreview": true, "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], "extensions": { "python.details": { "contacts": [ { - "email": "azpycli@microsoft.com", + "email": "k8connect@microsoft.com", "name": "Microsoft Corporation", "role": "author" } @@ -3788,58 +4172,30 @@ } } }, + "extras": [], "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "connectedmachine", - "summary": "Microsoft Azure Command-Line Tools Connectedmachine Extension", - "version": "0.1.1" - }, - "sha256Digest": "0f4d009da4e091aece74cd53833fe63e5af18d68fcf6308a08155ee5284f12fb" - } - ], - "connection-monitor-preview": [ - { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/connection_monitor_preview-0.1.0-py2.py3-none-any.whl", - "filename": "connection_monitor_preview-0.1.0-py2.py3-none-any.whl", - "metadata": { - "azext.isPreview": true, - "azext.maxCliCoreVersion": "2.0.82", - "azext.minCliCoreVersion": "2.0.80", - "extensions": { - "python.details": { - "contacts": [ - { - "email": "azpycli@microsoft.com", - "name": "Microsoft Corporation", - "role": "author" - } - ], - "document_names": { - "description": "DESCRIPTION.rst" - }, - "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/connection-monitor-preview" - } + "name": "connectedk8s", + "run_requires": [ + { + "requires": [ + "kubernetes", + "pycryptodome" + ] } - }, - "generator": "bdist_wheel (0.30.0)", - "license": "MIT", - "metadata_version": "2.0", - "name": "connection-monitor-preview", - "summary": "Microsoft Azure Command-Line Connection Monitor V2 Extension", - "version": "0.1.0" + ], + "summary": "Microsoft Azure Command-Line Tools Connectedk8s Extension", + "version": "0.2.5" }, - "sha256Digest": "9a796d5187571990d27feb9efeedde38c194f13ea21cbf9ec06131196bfd821d" - } - ], - "costmanagement": [ + "sha256Digest": "0c23ebd04c37b26219cd224134e8af675130cc346808ae008cd5cfc4f3b1bd84" + }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/costmanagement-0.1.0-py3-none-any.whl", - "filename": "costmanagement-0.1.0-py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/connectedk8s-0.2.6-py3-none-any.whl", + "filename": "connectedk8s-0.2.6-py3-none-any.whl", "metadata": { - "azext.isExperimental": true, - "azext.minCliCoreVersion": "2.3.1", + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", @@ -3855,7 +4211,7 @@ "python.details": { "contacts": [ { - "email": "azpycli@microsoft.com", + "email": "k8connect@microsoft.com", "name": "Microsoft Corporation", "role": "author" } @@ -3868,19 +4224,185 @@ } } }, + "extras": [], "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "costmanagement", - "summary": "Microsoft Azure Command-Line Tools CostManagementClient Extension", - "version": "0.1.0" - }, - "sha256Digest": "d5c8be4d6f3e59a44da32af66f8855c24d9855c5b7bdd2f6571c8721afa20223" - } - ], - "csvmware": [ - { - "downloadUrl": "https://github.com/Azure/az-csvmware-cli/releases/download/0.3.0/csvmware-0.3.0-py2.py3-none-any.whl", + "name": "connectedk8s", + "run_requires": [ + { + "requires": [ + "kubernetes", + "pycryptodome" + ] + } + ], + "summary": "Microsoft Azure Command-Line Tools Connectedk8s Extension", + "version": "0.2.6" + }, + "sha256Digest": "165411ce6ecdda8a4705bd9e93998b1ffdf6ddc88b01ed0ce12a3c100d1b9549" + } + ], + "connectedmachine": [ + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/connectedmachine-0.1.1-py2.py3-none-any.whl", + "filename": "connectedmachine-0.1.1-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "connectedmachine", + "summary": "Microsoft Azure Command-Line Tools Connectedmachine Extension", + "version": "0.1.1" + }, + "sha256Digest": "0f4d009da4e091aece74cd53833fe63e5af18d68fcf6308a08155ee5284f12fb" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/connectedmachine-0.2.0-py3-none-any.whl", + "filename": "connectedmachine-0.2.0-py3-none-any.whl", + "metadata": { + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.11.0", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/connectedmachine" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "connectedmachine", + "summary": "Microsoft Azure Command-Line Tools ConnectedMachine Extension", + "version": "0.2.0" + }, + "sha256Digest": "b9a2f3ea3fb7a4c981fad30ff670ff3ca1f8fbef0aede36a8e8a20050b1a245d" + } + ], + "connection-monitor-preview": [ + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/connection_monitor_preview-0.1.0-py2.py3-none-any.whl", + "filename": "connection_monitor_preview-0.1.0-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.maxCliCoreVersion": "2.0.82", + "azext.minCliCoreVersion": "2.0.80", + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/connection-monitor-preview" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "connection-monitor-preview", + "summary": "Microsoft Azure Command-Line Connection Monitor V2 Extension", + "version": "0.1.0" + }, + "sha256Digest": "9a796d5187571990d27feb9efeedde38c194f13ea21cbf9ec06131196bfd821d" + } + ], + "costmanagement": [ + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/costmanagement-0.1.0-py3-none-any.whl", + "filename": "costmanagement-0.1.0-py3-none-any.whl", + "metadata": { + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.3.1", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "costmanagement", + "summary": "Microsoft Azure Command-Line Tools CostManagementClient Extension", + "version": "0.1.0" + }, + "sha256Digest": "d5c8be4d6f3e59a44da32af66f8855c24d9855c5b7bdd2f6571c8721afa20223" + } + ], + "csvmware": [ + { + "downloadUrl": "https://github.com/Azure/az-csvmware-cli/releases/download/0.3.0/csvmware-0.3.0-py2.py3-none-any.whl", "filename": "csvmware-0.3.0-py2.py3-none-any.whl", "metadata": { "azext.isPreview": true, @@ -4232,14 +4754,12 @@ "version": "0.5.0" }, "sha256Digest": "9a7bca2c8828959ed048b883da9c2b62c1597f5c6bd475c5269c30a27282080f" - } - ], - "datafactory": [ + }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/datafactory-0.1.0-py3-none-any.whl", - "filename": "datafactory-0.1.0-py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/databricks-0.6.0-py3-none-any.whl", + "filename": "databricks-0.6.0-py3-none-any.whl", "metadata": { - "azext.isExperimental": true, + "azext.isPreview": true, "azext.minCliCoreVersion": "2.3.1", "classifiers": [ "Development Status :: 4 - Beta", @@ -4265,26 +4785,23 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/datafactory" + "Home": "https://github.com/Azure/azure-cli-extensions" } } }, "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "datafactory", - "summary": "Microsoft Azure Command-Line Tools DataFactoryManagementClient Extension", - "version": "0.1.0" + "name": "databricks", + "summary": "Microsoft Azure Command-Line Tools DatabricksClient Extension", + "version": "0.6.0" }, - "sha256Digest": "f49b145f8125cde30aedf5080af90e26277ad1527cfb13cff0d72838298241d3" - } - ], - "datashare": [ + "sha256Digest": "46a77fcd4b31191ce2b2d58e58af982415ea91787628426bd2b3d567da273411" + }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/datashare-0.1.0-py3-none-any.whl", - "filename": "datashare-0.1.0-py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/databricks-0.7.0-py3-none-any.whl", + "filename": "databricks-0.7.0-py3-none-any.whl", "metadata": { - "azext.isExperimental": true, "azext.minCliCoreVersion": "2.3.1", "classifiers": [ "Development Status :: 4 - Beta", @@ -4317,31 +4834,29 @@ "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "datashare", - "summary": "Microsoft Azure Command-Line Tools DataShareManagementClient Extension", - "version": "0.1.0" + "name": "databricks", + "summary": "Microsoft Azure Command-Line Tools DatabricksClient Extension", + "version": "0.7.0" }, - "sha256Digest": "803c3637f752b0fb77eb5272a544abafe44942ff920a020ff7ea179ace329342" + "sha256Digest": "236f561c6a20141ae854d1dd64a6e5a0b4636d98517e5ba245401882cc7fbd92" } ], - "db-up": [ + "datafactory": [ { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/db_up-0.1.13-py2.py3-none-any.whl", - "filename": "db_up-0.1.13-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/datafactory-0.1.0-py3-none-any.whl", + "filename": "datafactory-0.1.0-py3-none-any.whl", "metadata": { - "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.46", + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.3.1", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { @@ -4357,35 +4872,27 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/db-up" + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/datafactory" } } }, - "extras": [], "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "db-up", - "run_requires": [ - { - "requires": [ - "Cython (==0.29.6)", - "mysql-connector-python (==8.0.13)", - "psycopg2-binary (==2.7.7)" - ] - } - ], - "summary": "Additional commands to simplify Azure Database workflows.", - "version": "0.1.13" + "name": "datafactory", + "summary": "Microsoft Azure Command-Line Tools DataFactoryManagementClient Extension", + "version": "0.1.0" }, - "sha256Digest": "df397272396c684972d1185e16439159427795b305f67e47fc37447a0c4d1257" - }, + "sha256Digest": "f49b145f8125cde30aedf5080af90e26277ad1527cfb13cff0d72838298241d3" + } + ], + "datashare": [ { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/db_up-0.1.14-py2.py3-none-any.whl", - "filename": "db_up-0.1.14-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/datashare-0.1.0-py3-none-any.whl", + "filename": "datashare-0.1.0-py3-none-any.whl", "metadata": { - "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.46", + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.3.1", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", @@ -4410,21 +4917,164 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/db-up" + "Home": "https://github.com/Azure/azure-cli-extensions" } } }, - "extras": [], "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "db-up", - "run_requires": [ - { - "requires": [ - "Cython (==0.29.17)", - "mysql-connector-python (==8.0.13)", - "psycopg2-binary (==2.8.5)" + "name": "datashare", + "summary": "Microsoft Azure Command-Line Tools DataShareManagementClient Extension", + "version": "0.1.0" + }, + "sha256Digest": "803c3637f752b0fb77eb5272a544abafe44942ff920a020ff7ea179ace329342" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/datashare-0.1.1-py3-none-any.whl", + "filename": "datashare-0.1.1-py3-none-any.whl", + "metadata": { + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.3.1", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "datashare", + "summary": "Microsoft Azure Command-Line Tools DataShareManagementClient Extension", + "version": "0.1.1" + }, + "sha256Digest": "c0a2b603c0abd320bc3df0a4d6c38945fd894737804690dad98896e2446763f4" + } + ], + "db-up": [ + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/db_up-0.1.13-py2.py3-none-any.whl", + "filename": "db_up-0.1.13-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.46", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/db-up" + } + } + }, + "extras": [], + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "db-up", + "run_requires": [ + { + "requires": [ + "Cython (==0.29.6)", + "mysql-connector-python (==8.0.13)", + "psycopg2-binary (==2.7.7)" + ] + } + ], + "summary": "Additional commands to simplify Azure Database workflows.", + "version": "0.1.13" + }, + "sha256Digest": "df397272396c684972d1185e16439159427795b305f67e47fc37447a0c4d1257" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/db_up-0.1.14-py2.py3-none-any.whl", + "filename": "db_up-0.1.14-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.46", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/db-up" + } + } + }, + "extras": [], + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "db-up", + "run_requires": [ + { + "requires": [ + "Cython (==0.29.17)", + "mysql-connector-python (==8.0.13)", + "psycopg2-binary (==2.8.5)" ] } ], @@ -4485,6 +5135,59 @@ "version": "0.1.15" }, "sha256Digest": "7c8db14999b2b5a4d4b9ae870562505a120896f39c64c20501502f5fdd897911" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/db_up-0.2.0-py2.py3-none-any.whl", + "filename": "db_up-0.2.0-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.46", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/db-up" + } + } + }, + "extras": [], + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "db-up", + "run_requires": [ + { + "requires": [ + "Cython (==0.29.17)", + "mysql-connector-python (==8.0.13)", + "psycopg2-binary (==2.8.5)" + ] + } + ], + "summary": "Additional commands to simplify Azure Database workflows.", + "version": "0.2.0" + }, + "sha256Digest": "3e5b22cfbe3a0ec63aba3040e541d6819dbb1fbdc5b49286edfd143c79a2b8cb" } ], "deploy-to-azure": [ @@ -4762,6 +5465,51 @@ "version": "0.11.0" }, "sha256Digest": "ef19e5c19976506a8f8910ec04bc785ebeffb5a4c8764047e4e4d42f812b0845" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/dms_preview-0.12.0-py2.py3-none-any.whl", + "filename": "dms_preview-0.12.0-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.43", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "arpavlic@microsoft.com", + "name": "Artyom Pavlichenko", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/dms-preview" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "dms-preview", + "summary": "Support for new Database Migration Service scenarios.", + "version": "0.12.0" + }, + "sha256Digest": "5e2fd9a8e413fd13a280fbba9964658a5569af2e49e802bd12116ec01e5dd0ae" } ], "eventgrid": [ @@ -5127,25 +5875,22 @@ "version": "0.1.0" }, "sha256Digest": "69b0e9a19682f12c67af509071177e442349e1e2ae2f07f1e15d5a3f4136aa95" - } - ], - "front-door": [ + }, { - "downloadUrl": "https://azurecliafd.blob.core.windows.net/azure-cli-extension/front_door-1.0.2-py2.py3-none-any.whl", - "filename": "front_door-1.0.2-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/footprint-1.0.0-py3-none-any.whl", + "filename": "footprint-1.0.0-py3-none-any.whl", "metadata": { - "azext.minCliCoreVersion": "2.0.68", + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.11.0", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { @@ -5161,7 +5906,53 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/front-door" + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/footprint" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "footprint", + "summary": "Microsoft Azure Command-Line Tools FootprintMonitoringManagementClient Extension", + "version": "1.0.0" + }, + "sha256Digest": "4aa59288bf46cfd68519f1f7f63d3e33af16d80632b84c283cc7152129260b2c" + } + ], + "front-door": [ + { + "downloadUrl": "https://azurecliafd.blob.core.windows.net/azure-cli-extension/front_door-1.0.2-py2.py3-none-any.whl", + "filename": "front_door-1.0.2-py2.py3-none-any.whl", + "metadata": { + "azext.minCliCoreVersion": "2.0.68", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/front-door" } } }, @@ -5473,6 +6264,53 @@ "sha256Digest": "064aa0c647e0dd320fd1eba50257387fd27e125838a2cf5b58121cc1c5eefc45" } ], + "fzf": [ + { + "downloadUrl": "https://pahealy.blob.core.windows.net/azext-fzf/fzf-1.0.2-py2.py3-none-any.whl", + "filename": "fzf-1.0.2-py2.py3-none-any.whl", + "metadata": { + "azext.isExperimental": true, + "azext.isPreview": false, + "azext.maxCliCoreVersion": "2.99.0", + "azext.minCliCoreVersion": "2.9.0", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "patrick.healy@microsoft.com", + "name": "Patrick W. Healy", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/phealy/azure-cli-fzf" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "fzf", + "summary": "Microsoft Azure Command-Line Tools fzf Extension", + "version": "1.0.2" + }, + "sha256Digest": "87fc41624d52af36251c67f8f307e4e3b3789f8664e917d6d5bf4305fbb64e6d" + } + ], "guestconfig": [ { "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/guestconfig-0.1.0-py3-none-any.whl", @@ -5942,7 +6780,49 @@ "summary": "Support for copying managed vm images between regions", "version": "0.2.6" }, - "sha256Digest": "8eb044e70cfe9cc59ca98d0656762023036c0ac7aa3d27253c2c6d0f91fa9faa" + "sha256Digest": "69cc6fac34625677c94fb276dc97caca8769295db51dc480da4b194a0ec94720" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/image_copy_extension-0.2.7-py2.py3-none-any.whl", + "filename": "image_copy_extension-0.2.7-py2.py3-none-any.whl", + "metadata": { + "azext.minCliCoreVersion": "2.0.24", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "tamir.kamara@microsoft.com", + "name": "Tamir Kamara", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "image-copy-extension", + "summary": "Support for copying managed vm images between regions", + "version": "0.2.7" + }, + "sha256Digest": "565cf4411a6b12d2940365a7d4d578422709a2c38f95a253e5f6e82ab9bd6bdd" } ], "import-export": [ @@ -6800,6 +7680,49 @@ "version": "1.0.1" }, "sha256Digest": "3e0fb5392bd29e53e7afde543d1a0ef5d33a6032f01322fd75b7afe7016c34fc" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/maintenance-1.1.0-py3-none-any.whl", + "filename": "maintenance-1.1.0-py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.3.1", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/maintenance" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "maintenance", + "summary": "Microsoft Azure Command-Line Tools MaintenanceClient Extension", + "version": "1.1.0" + }, + "sha256Digest": "351c717a37e6fb9b29d22cdca3b0744a452a1116e83f9e57e794464311708c97" } ], "managementpartner": [ @@ -7550,6 +8473,94 @@ "sha256Digest": "352266a3e0857574c25f0d1930bfb2c0d79329bee2400f6431a37c6162337b12" } ], + "scheduled-query": [ + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/scheduled_query-0.1.0-py2.py3-none-any.whl", + "filename": "scheduled_query-0.1.0-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "scheduled-query", + "summary": "Microsoft Azure Command-Line Tools Scheduled_query Extension", + "version": "0.1.0" + }, + "sha256Digest": "5529213e41055f70c53407498b618c7d48cea70a0ce0aca069e0dd9bb818f549" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/scheduled_query-0.2.0-py2.py3-none-any.whl", + "filename": "scheduled_query-0.2.0-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "scheduled-query", + "summary": "Microsoft Azure Command-Line Tools Scheduled_query Extension", + "version": "0.2.0" + }, + "sha256Digest": "d9cba80c47b0b8b3e3ad86a257eb53598611698efab6687a11f81c2b036b1083" + } + ], "spring-cloud": [ { "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-0.1.0-py2.py3-none-any.whl", @@ -7954,30 +8965,390 @@ "sha256Digest": "9c719fe1c6f539ba663283bd2eb8464aa9bcbf2d35617ac58408c6133f824f38" }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-0.3.1-py2.py3-none-any.whl", - "filename": "spring_cloud-0.3.1-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-0.3.1-py2.py3-none-any.whl", + "filename": "spring_cloud-0.3.1-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "spring-cloud", + "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", + "version": "0.3.1" + }, + "sha256Digest": "a720deecb978406fb081c148078ee8831780cefefe965556852c00f8e1fc36c7" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-0.4.0-py2.py3-none-any.whl", + "filename": "spring_cloud-0.4.0-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "spring-cloud", + "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", + "version": "0.4.0" + }, + "sha256Digest": "c09d2a188fe5e41f7fd9835c1efd0c3065b55f2b9efde39b6f2ff399be567eec" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-0.5.0-py2.py3-none-any.whl", + "filename": "spring_cloud-0.5.0-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "spring-cloud", + "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", + "version": "0.5.0" + }, + "sha256Digest": "b2a36656b073f9cf588755508757fcd2cd7e0f8d573b7e43fc5fa3adb315a063" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-0.5.1-py2.py3-none-any.whl", + "filename": "spring_cloud-0.5.1-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "spring-cloud", + "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", + "version": "0.5.1" + }, + "sha256Digest": "79fd3b7b6928ea53b63a040412420398e138097e960a3afdfa76da051f140f19" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-1.0.0-py2.py3-none-any.whl", + "filename": "spring_cloud-1.0.0-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": false, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "spring-cloud", + "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", + "version": "1.0.0" + }, + "sha256Digest": "698aa10606de4ec9eec580747a2d6d38c755633261241d75618badc53fe1e0f4" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-1.0.1-py2.py3-none-any.whl", + "filename": "spring_cloud-1.0.1-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": false, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "spring-cloud", + "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", + "version": "1.0.1" + }, + "sha256Digest": "d2b766d594c89a19abba3a7b2df6224d1af15fd9202b31fe5d57b9d9970b399c" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-1.1.0-py2.py3-none-any.whl", + "filename": "spring_cloud-1.1.0-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": false, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "spring-cloud", + "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", + "version": "1.1.0" + }, + "sha256Digest": "a4fa97d6241fab2a66d8dd80e0d6a68ea17d849bb7404349ad6203c71fb89ba9" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-1.1.1-py2.py3-none-any.whl", + "filename": "spring_cloud-1.1.1-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": false, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "spring-cloud", + "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", + "version": "1.1.1" + }, + "sha256Digest": "ed63f4464f80e47df33b336ede149e1bc0f3b985dd033ee3541fffbaa9ad5f59" + } + ], + "ssh": [ + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/ssh-0.1.0-py3-none-any.whl", + "filename": "ssh-0.1.0-py3-none-any.whl", "metadata": { "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.67", + "azext.minCliCoreVersion": "2.4.0", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { "python.details": { "contacts": [ { - "email": "azpycli@microsoft.com", - "name": "Microsoft Corporation", + "email": "ryrossit@microsoft.com", + "name": "Ryan Rossiter", "role": "author" } ], @@ -7985,36 +9356,45 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions" + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/ssh" } } }, + "extras": [], "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "spring-cloud", - "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", - "version": "0.3.1" + "name": "ssh", + "run_requires": [ + { + "requires": [ + "cryptography (==2.8.0)", + "paramiko (==2.6.0)" + ] + } + ], + "summary": "SSH into VMs", + "version": "0.1.0" }, - "sha256Digest": "a720deecb978406fb081c148078ee8831780cefefe965556852c00f8e1fc36c7" - }, + "sha256Digest": "cf39bfcf542db4a7a3acf119f4ea71f17626eaaac7fe480d058962fec3d3ff25" + } + ], + "stack-hci": [ { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-0.4.0-py2.py3-none-any.whl", - "filename": "spring_cloud-0.4.0-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/stack_hci-0.1.0-py3-none-any.whl", + "filename": "stack_hci-0.1.0-py3-none-any.whl", "metadata": { - "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.67", + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.3.1", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { @@ -8030,36 +9410,36 @@ "description": "DESCRIPTION.rst" }, "project_urls": { - "Home": "https://github.com/Azure/azure-cli-extensions" + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/stack-hci" } } }, "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "spring-cloud", - "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", - "version": "0.4.0" + "name": "stack-hci", + "summary": "Microsoft Azure Command-Line Tools AzureStackHCIClient Extension", + "version": "0.1.0" }, - "sha256Digest": "c09d2a188fe5e41f7fd9835c1efd0c3065b55f2b9efde39b6f2ff399be567eec" - }, + "sha256Digest": "9095702d720e24173616232ffab42bdf121dd82eeda48becd52d141f73c35bb3" + } + ], + "storage-blob-preview": [ { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-0.5.0-py2.py3-none-any.whl", - "filename": "spring_cloud-0.5.0-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/storage_blob_preview-0.1.0-py2.py3-none-any.whl", + "filename": "storage_blob_preview-0.1.0-py2.py3-none-any.whl", "metadata": { "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.67", + "azext.minCliCoreVersion": "2.9.1", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { @@ -8082,29 +9462,27 @@ "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "spring-cloud", - "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", - "version": "0.5.0" + "name": "storage-blob-preview", + "summary": "Microsoft Azure Command-Line Tools Storage-blob-preview Extension", + "version": "0.1.0" }, - "sha256Digest": "b2a36656b073f9cf588755508757fcd2cd7e0f8d573b7e43fc5fa3adb315a063" + "sha256Digest": "3407bc6ea0425aab5c5a495c447b0d9ec4f4a360f08bdfd68cfd7a6504789231" }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-0.5.1-py2.py3-none-any.whl", - "filename": "spring_cloud-0.5.1-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/storage_blob_preview-0.2.0-py2.py3-none-any.whl", + "filename": "storage_blob_preview-0.2.0-py2.py3-none-any.whl", "metadata": { "azext.isPreview": true, - "azext.minCliCoreVersion": "2.0.67", + "azext.minCliCoreVersion": "2.12.0", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { @@ -8127,29 +9505,27 @@ "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "spring-cloud", - "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", - "version": "0.5.1" + "name": "storage-blob-preview", + "summary": "Microsoft Azure Command-Line Tools Storage-blob-preview Extension", + "version": "0.2.0" }, - "sha256Digest": "79fd3b7b6928ea53b63a040412420398e138097e960a3afdfa76da051f140f19" + "sha256Digest": "fc96b22fd656fcba97b8ee3283a1bead65b941aae10c174f597703ad7d8a5114" }, { - "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/spring_cloud-1.0.0-py2.py3-none-any.whl", - "filename": "spring_cloud-1.0.0-py2.py3-none-any.whl", + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/storage_blob_preview-0.3.0-py2.py3-none-any.whl", + "filename": "storage_blob_preview-0.3.0-py2.py3-none-any.whl", "metadata": { - "azext.isPreview": false, - "azext.minCliCoreVersion": "2.0.67", + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.12.0", "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "License :: OSI Approved :: MIT License" ], "extensions": { @@ -8172,11 +9548,11 @@ "generator": "bdist_wheel (0.30.0)", "license": "MIT", "metadata_version": "2.0", - "name": "spring-cloud", - "summary": "Microsoft Azure Command-Line Tools spring-cloud Extension", - "version": "1.0.0" + "name": "storage-blob-preview", + "summary": "Microsoft Azure Command-Line Tools Storage-blob-preview Extension", + "version": "0.3.0" }, - "sha256Digest": "698aa10606de4ec9eec580747a2d6d38c755633261241d75618badc53fe1e0f4" + "sha256Digest": "daec951de77a200f3479c00ebf1015534891592cfd4bbf7873c5784bdd3f57a0" } ], "storage-or-preview": [ @@ -8451,6 +9827,51 @@ "version": "0.2.12" }, "sha256Digest": "5bd273bf4c1952f4576faf05ed80fd73b25f0f4d0be81fe0bbf471019705a6bb" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/storage_preview-0.3.0-py2.py3-none-any.whl", + "filename": "storage_preview-0.3.0-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.6.0", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/storage-preview" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "storage-preview", + "summary": "Provides a preview for upcoming storage features.", + "version": "0.3.0" + }, + "sha256Digest": "7fb50e37a0e271c118124b4488474e3c2957cffe1b319660bd3df91534911008" } ], "storagesync": [ @@ -9068,6 +10489,48 @@ "version": "0.1.2" }, "sha256Digest": "3caba62be85114e44cd61c8541df49c7ff67b76b8c26e53e198b00a98a907417" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/timeseriesinsights-0.1.3-py3-none-any.whl", + "filename": "timeseriesinsights-0.1.3-py3-none-any.whl", + "metadata": { + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.3.1", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/src/timeseriesinsights" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "timeseriesinsights", + "summary": "Microsoft Azure Command-Line Tools TimeSeriesInsightsClient Extension", + "version": "0.1.3" + }, + "sha256Digest": "84009856e1a9e6e6b178425099c2e1eaa4753ba5e375426a504f92bd4b9a21aa" } ], "virtual-network-tap": [ @@ -9252,6 +10715,51 @@ "version": "0.2.0" }, "sha256Digest": "45b52f87cd76a269d8e6151782a437692cea3725b4f64d9d4d64cc2c4b49288f" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/virtual_wan-0.2.1-py2.py3-none-any.whl", + "filename": "virtual_wan-0.2.1-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "azpycli@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/virtual-wan" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "virtual-wan", + "summary": "Manage virtual WAN, hubs, VPN gateways and VPN sites.", + "version": "0.2.1" + }, + "sha256Digest": "db108cf3fb9f3a49aea87f35d658b0bdc9c2321122b9a1ec1f58f4fecb0ebe90" } ], "vm-repair": [ @@ -9430,6 +10938,51 @@ "version": "0.3.2" }, "sha256Digest": "b7837a3129ff2614d27c2acbd254e97d83ac1540745225d2b156c897bb065125" + }, + { + "downloadUrl": "https://azurecliprod.blob.core.windows.net/cli-extensions/vm_repair-0.3.3-py2.py3-none-any.whl", + "filename": "vm_repair-0.3.3-py2.py3-none-any.whl", + "metadata": { + "azext.isPreview": false, + "azext.minCliCoreVersion": "2.0.67", + "classifiers": [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "License :: OSI Approved :: MIT License" + ], + "extensions": { + "python.details": { + "contacts": [ + { + "email": "caiddev@microsoft.com", + "name": "Microsoft Corporation", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + }, + "project_urls": { + "Home": "https://github.com/Azure/azure-cli-extensions/tree/master/src/vm-repair" + } + } + }, + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "metadata_version": "2.0", + "name": "vm-repair", + "summary": "Auto repair commands to fix VMs.", + "version": "0.3.3" + }, + "sha256Digest": "04ddc34a525af5b313f9dd1b5b446e5aa2a79d242451cf09f7670147c7aadd42" } ], "vmware": [ diff --git a/src/kusto/kusto.egg-info/PKG-INFO b/src/kusto/kusto.egg-info/PKG-INFO deleted file mode 100644 index 570c2449bc6..00000000000 --- a/src/kusto/kusto.egg-info/PKG-INFO +++ /dev/null @@ -1,34 +0,0 @@ -Metadata-Version: 1.1 -Name: kusto -Version: 0.1.0 -Summary: Microsoft Azure Command-Line Tools KustoManagementClient Extension -Home-page: https://github.com/Azure/azure-cli-extensions/tree/master/src/kusto -Author: Microsoft Corporation -Author-email: azpycli@microsoft.com -License: MIT -Description: Microsoft Azure CLI 'kusto' Extension - ========================================== - - This package is for the 'kusto' extension. - i.e. 'az kusto' - - - .. :changelog: - - Release History - =============== - - 0.1.0 - ++++++ - * Initial release. - -Platform: UNKNOWN -Classifier: Development Status :: 4 - Beta -Classifier: Intended Audience :: Developers -Classifier: Intended Audience :: System Administrators -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: License :: OSI Approved :: MIT License diff --git a/src/kusto/kusto.egg-info/SOURCES.txt b/src/kusto/kusto.egg-info/SOURCES.txt deleted file mode 100644 index dcdb5808ee5..00000000000 --- a/src/kusto/kusto.egg-info/SOURCES.txt +++ /dev/null @@ -1,57 +0,0 @@ -README.md -setup.cfg -setup.py -azext_kusto/__init__.py -azext_kusto/action.py -azext_kusto/azext_metadata.json -azext_kusto/custom.py -azext_kusto/generated/__init__.py -azext_kusto/generated/_client_factory.py -azext_kusto/generated/_help.py -azext_kusto/generated/_params.py -azext_kusto/generated/_validators.py -azext_kusto/generated/action.py -azext_kusto/generated/commands.py -azext_kusto/generated/custom.py -azext_kusto/manual/__init__.py -azext_kusto/manual/_help.py -azext_kusto/manual/tests/__init__.py -azext_kusto/manual/tests/latest/__init__.py -azext_kusto/manual/tests/latest/test_kusto_scenario.py -azext_kusto/tests/__init__.py -azext_kusto/tests/latest/__init__.py -azext_kusto/tests/latest/preparers.py -azext_kusto/tests/latest/test_kusto_scenario.py -azext_kusto/vendored_sdks/__init__.py -azext_kusto/vendored_sdks/kusto/__init__.py -azext_kusto/vendored_sdks/kusto/_configuration.py -azext_kusto/vendored_sdks/kusto/_kusto_management_client.py -azext_kusto/vendored_sdks/kusto/_version.py -azext_kusto/vendored_sdks/kusto/setup.py -azext_kusto/vendored_sdks/kusto/aio/__init__.py -azext_kusto/vendored_sdks/kusto/aio/_configuration_async.py -azext_kusto/vendored_sdks/kusto/aio/_kusto_management_client_async.py -azext_kusto/vendored_sdks/kusto/aio/operations_async/__init__.py -azext_kusto/vendored_sdks/kusto/aio/operations_async/_attached_database_configuration_operations_async.py -azext_kusto/vendored_sdks/kusto/aio/operations_async/_cluster_operations_async.py -azext_kusto/vendored_sdks/kusto/aio/operations_async/_cluster_principal_assignment_operations_async.py -azext_kusto/vendored_sdks/kusto/aio/operations_async/_data_connection_operations_async.py -azext_kusto/vendored_sdks/kusto/aio/operations_async/_database_operations_async.py -azext_kusto/vendored_sdks/kusto/aio/operations_async/_database_principal_assignment_operations_async.py -azext_kusto/vendored_sdks/kusto/aio/operations_async/_operation_operations_async.py -azext_kusto/vendored_sdks/kusto/models/__init__.py -azext_kusto/vendored_sdks/kusto/models/_kusto_management_client_enums.py -azext_kusto/vendored_sdks/kusto/models/_models.py -azext_kusto/vendored_sdks/kusto/models/_models_py3.py -azext_kusto/vendored_sdks/kusto/operations/__init__.py -azext_kusto/vendored_sdks/kusto/operations/_attached_database_configuration_operations.py -azext_kusto/vendored_sdks/kusto/operations/_cluster_operations.py -azext_kusto/vendored_sdks/kusto/operations/_cluster_principal_assignment_operations.py -azext_kusto/vendored_sdks/kusto/operations/_data_connection_operations.py -azext_kusto/vendored_sdks/kusto/operations/_database_operations.py -azext_kusto/vendored_sdks/kusto/operations/_database_principal_assignment_operations.py -azext_kusto/vendored_sdks/kusto/operations/_operation_operations.py -kusto.egg-info/PKG-INFO -kusto.egg-info/SOURCES.txt -kusto.egg-info/dependency_links.txt -kusto.egg-info/top_level.txt \ No newline at end of file diff --git a/src/kusto/kusto.egg-info/dependency_links.txt b/src/kusto/kusto.egg-info/dependency_links.txt deleted file mode 100644 index 8b137891791..00000000000 --- a/src/kusto/kusto.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/kusto/kusto.egg-info/top_level.txt b/src/kusto/kusto.egg-info/top_level.txt deleted file mode 100644 index 37a1542d066..00000000000 --- a/src/kusto/kusto.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -azext_kusto diff --git a/src/maintenance/HISTORY.rst b/src/maintenance/HISTORY.rst new file mode 100644 index 00000000000..6f5c4083dd8 --- /dev/null +++ b/src/maintenance/HISTORY.rst @@ -0,0 +1,13 @@ +.. :changelog: + +Release History +=============== + +1.1.0 +++++++ +* Add schedule related fields for creating maintenance configurations +* Add public maintenance configuration APIs + +1.0.1 +++++++ +* Initial release. diff --git a/src/maintenance/README.md b/src/maintenance/README.md new file mode 100644 index 00000000000..fe6d44ddf74 --- /dev/null +++ b/src/maintenance/README.md @@ -0,0 +1,5 @@ +Microsoft Azure CLI 'maintenance' Extension +========================================== + +This package is for the 'maintenance' extension. +i.e. 'az maintenance' diff --git a/src/maintenance/azext_maintenance/__init__.py b/src/maintenance/azext_maintenance/__init__.py index f071164b207..6c2ab930af5 100644 --- a/src/maintenance/azext_maintenance/__init__.py +++ b/src/maintenance/azext_maintenance/__init__.py @@ -1,28 +1,50 @@ -# -------------------------------------------------------------------------------------------- +# -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- from azure.cli.core import AzCommandsLoader +from azext_maintenance.generated._help import helps # pylint: disable=unused-import +try: + from azext_maintenance.manual._help import helps # pylint: disable=reimported +except ImportError: + pass -import azext_maintenance._help # pylint: disable=unused-import - -class MaintenanceCommandsLoader(AzCommandsLoader): +class MaintenanceClientCommandsLoader(AzCommandsLoader): def __init__(self, cli_ctx=None): from azure.cli.core.commands import CliCommandType - maintenance_custom = CliCommandType(operations_tmpl='azext_maintenance.custom#{}') - super(MaintenanceCommandsLoader, self).__init__(cli_ctx=cli_ctx, custom_command_type=maintenance_custom) + from azext_maintenance.generated._client_factory import cf_maintenance_cl + maintenance_custom = CliCommandType( + operations_tmpl='azext_maintenance.custom#{}', + client_factory=cf_maintenance_cl) + parent = super(MaintenanceClientCommandsLoader, self) + parent.__init__(cli_ctx=cli_ctx, custom_command_type=maintenance_custom) def load_command_table(self, args): - from .commands import load_command_table + from azext_maintenance.generated.commands import load_command_table load_command_table(self, args) + try: + from azext_maintenance.manual.commands import load_command_table as load_command_table_manual + load_command_table_manual(self, args) + except ImportError: + pass return self.command_table def load_arguments(self, command): - from ._params import load_arguments + from azext_maintenance.generated._params import load_arguments load_arguments(self, command) + try: + from azext_maintenance.manual._params import load_arguments as load_arguments_manual + load_arguments_manual(self, command) + except ImportError: + pass -COMMAND_LOADER_CLS = MaintenanceCommandsLoader +COMMAND_LOADER_CLS = MaintenanceClientCommandsLoader diff --git a/src/maintenance/azext_maintenance/_client_factory.py b/src/maintenance/azext_maintenance/_client_factory.py deleted file mode 100644 index 5be4c7a2d29..00000000000 --- a/src/maintenance/azext_maintenance/_client_factory.py +++ /dev/null @@ -1,26 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - - -def _maintenance_client_factory(cli_ctx, **_): - from azext_maintenance.vendored_sdks import MaintenanceManagementClient - from azure.cli.core.commands.client_factory import get_mgmt_service_client - return get_mgmt_service_client(cli_ctx, MaintenanceManagementClient) - - -def cf_maintenance_configurations(cli_ctx, _): - return _maintenance_client_factory(cli_ctx).maintenance_configurations - - -def cf_maintenance_updates(cli_ctx, _): - return _maintenance_client_factory(cli_ctx).updates - - -def cf_configuration_assignments(cli_ctx, _): - return _maintenance_client_factory(cli_ctx).configuration_assignments - - -def cf_apply_updates(cli_ctx, _): - return _maintenance_client_factory(cli_ctx).apply_updates diff --git a/src/maintenance/azext_maintenance/_constants.py b/src/maintenance/azext_maintenance/_constants.py deleted file mode 100644 index 06d2bac1d54..00000000000 --- a/src/maintenance/azext_maintenance/_constants.py +++ /dev/null @@ -1,9 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - - -MAINTENANCE_SCOPE = ['Host', 'Resource'] -MAINTENANCE_RESOURCE_TYPE = 'Microsoft.Maintenance/maintenanceConfigurations' -UNIT_COUNT_MAXIMUM = 10 diff --git a/src/maintenance/azext_maintenance/_help.py b/src/maintenance/azext_maintenance/_help.py deleted file mode 100644 index 564a383cd27..00000000000 --- a/src/maintenance/azext_maintenance/_help.py +++ /dev/null @@ -1,141 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - - -from knack.help_files import helps - -helps['maintenance'] = """ - type: group - short-summary: Manage Azure Maintenance. - """ - -helps['maintenance configuration'] = """ - type: group - short-summary: Manage Azure Maintenance configurations. - """ - -helps['maintenance update'] = """ - type: group - short-summary: Azure Maintenance updates. - """ - -helps['maintenance assignment'] = """ - type: group - short-summary: Manage Azure Maintenance configuration assignment to resource. - """ - -helps['maintenance applyupdate'] = """ - type: group - short-summary: Manage Azure Maintenance update applications. - """ - -helps['maintenance configuration create'] = """ - type: command - short-summary: Creates a Maintenance Configuration. - examples: - - name: Create a Maintenance Configuration with the All scope. - text: > - az maintenance configuration create --name workervms -g MyResourceGroup -l westus -""" - -helps['maintenance configuration update'] = """ - type: command - short-summary: Creates a Maintenance Configuration. - examples: - - name: Create a Maintenance Configuration with the All scope. - text: > - az maintenance configuration update --name workervms -g MyResourceGroup -l westus --maintenanceScope All -""" - -helps['maintenance configuration delete'] = """ - type: command - short-summary: Deletes a Maintenance Configuration. - examples: - - name: Delete a Maintenance Configuration. - text: > - az maintenance configuration delete --name workervms -g MyResourceGroup -""" - -helps['maintenance configuration show'] = """ - type: command - short-summary: Get the details of a Maintenance Configuration. - examples: - - name: Get the Maintenance Configuration. - text: > - az maintenance configuration show --name workervms -g MyResourceGroup -""" - - -helps['maintenance configuration list'] = """ - type: command - short-summary: Get Configuration records within a subscription. - examples: - - name: Get Configuration records within a subscription. - text: > - az maintenance configuration list --subscription 2b4ce620-bb0f-4964-8428-dea4aefe00000 -""" - -helps['maintenance assignment create'] = """ - type: command - short-summary: Creates a Maintenance Assignment. - examples: - - name: Create a Maintenance Assignment. - text: > - az maintenance assignment create -g smdtest --resource-name smdVM --resource-type virtualMachines --provider-name Microsoft.Compute --configuration-assignment-name workervms --maintenance-configuration-id "/subscriptions/2b4ce620-bb0f-4964-8428-dea4aefec295/resourcegroups/smdtest/providers/Microsoft.Maintenance/maintenanceConfigurations/workervms" -l eastus2 -""" - -helps['maintenance assignment delete'] = """ - type: command - short-summary: Delete a Maintenance Assignment. - examples: - - name: Delete a Maintenance Assignment. - text: > - az maintenance assignment delete -g smdtest --resource-name smdVM --resource-type virtualMachines --provider-name Microsoft.Compute --configuration-assignment-name workervms -""" - -helps['maintenance assignment list'] = """ - type: command - short-summary: Lists Maintenance Assignment. - examples: - - name: List Maintenance Assignment. - text: > - az maintenance assignment list -g smdtest --resource-name smdVM --resource-type virtualMachines --provider-name Microsoft.Compute -""" - -helps['maintenance update list'] = """ - type: command - short-summary: List pending a Maintenance Updates. - examples: - - name: List pending a Maintenance Updates. - text: > - az maintenance update list -g smdtest --resource-name smdVM --resource-type virtualMachines --provider-name Microsoft.Compute -""" - -helps['maintenance applyupdate create'] = """ - type: command - short-summary: Creates a ApplyUpdate request. - examples: - - name: Creates a ApplyUpdate request. - text: > - az maintenance applyupdate create -g smdtest --resource-name smdVM --resource-type virtualMachines --provider-name Microsoft.Compute -""" - -helps['maintenance applyupdate get'] = """ - type: command - short-summary: Gets the state of a ApplyUpdate request. - examples: - - name: Gets the state of a ApplyUpdate request. - text: > - az maintenance applyupdate get -g smdtest --resource-name smdVM --resource-type virtualMachines --provider-name Microsoft.Compute --apply-update-name 7b1b66dc-e93a-4183-81ff-591f1b2d4f07 -""" - -helps['maintenance applyupdate show'] = """ - type: command - short-summary: Shows the state of a ApplyUpdate request. - examples: - - name: Shows the state of a ApplyUpdate request. - text: > - az maintenance applyupdate show -g smdtest --resource-name smdVM --resource-type virtualMachines --provider-name Microsoft.Compute --apply-update-name 7b1b66dc-e93a-4183-81ff-591f1b2d4f07 -""" diff --git a/src/maintenance/azext_maintenance/_params.py b/src/maintenance/azext_maintenance/_params.py deleted file mode 100644 index ce0ac86efee..00000000000 --- a/src/maintenance/azext_maintenance/_params.py +++ /dev/null @@ -1,65 +0,0 @@ -# pylint: disable=line-too-long -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - - -from azure.cli.core.commands.validators import get_default_location_from_resource_group -from azure.cli.core.commands.parameters import ( - resource_group_name_type, - get_location_type, - get_resource_name_completion_list, - tags_type -) - -from knack.log import get_logger - -from ._constants import ( - MAINTENANCE_RESOURCE_TYPE -) - - -logger = get_logger(__name__) - - -def load_arguments(self, _): - with self.argument_context('maintenance configuration') as c: - c.argument('resource_group_name', arg_type=resource_group_name_type) - c.argument('location', - arg_type=get_location_type(self.cli_ctx), - validator=get_default_location_from_resource_group) - c.argument('resource_name', options_list=['--name', '-n'], - completer=get_resource_name_completion_list(MAINTENANCE_RESOURCE_TYPE), - help='Name of resource.') - c.argument('maintenanceScope', help='Maintenance Scope e.g. Host, Guest or All') - c.argument('provider_name', help='Maintenance resource provider - Microsoft.Maintenance') - c.argument('tags', arg_type=tags_type) - - with self.argument_context('maintenance applyupdate') as c: - c.argument('apply_update_name', help='Name of apply update resource e.g. default') - c.argument('provider_name', help='Maintenance resource provider - Microsoft.Maintenance') - c.argument('resource_parent_name', help="Name of the parent resource e.g. for dedicated hosts this would be the name of the dedicated host group, for VMSS VMs this would be the VMSS name") - c.argument('resource_parent_type', help="Type of the parent resource e.g. for dedicated hosts this would be hostGroups, for VMSS VMs this would be virtualmachinescalesets") - c.argument('resource_name', completer=get_resource_name_completion_list(MAINTENANCE_RESOURCE_TYPE), help='Name of resource.') - c.argument('resource_type', help="Type of the azure resource e.g. virtualmachines, hosts etc.") - - with self.argument_context('maintenance update') as c: - c.argument('provider_name', help='Maintenance resource provider - Microsoft.Maintenance') - c.argument('resource_parent_name', help="Name of the parent resource e.g. for dedicated hosts this would be the name of the dedicated host group, for VMSS VMs this would be the VMSS name") - c.argument('resource_parent_type', help="Type of the parent resource e.g. for dedicated hosts this would be hostGroups, for VMSS VMs this would be virtualmachinescalesets") - c.argument('resource_name', completer=get_resource_name_completion_list(MAINTENANCE_RESOURCE_TYPE), - help='Name of resource.') - c.argument('resource_type', help="Type of the azure resource e.g. virtualmachines, hosts etc.") - - with self.argument_context('maintenance assignment') as c: - c.argument('provider_name', help='Maintenance resource provider - Microsoft.Maintenance') - c.argument('resource_id', help="Fully qualified identifier of the Azure resource.") - c.argument('resource_parent_name', help="Name of the parent resource e.g. for dedicated hosts this would be the name of the dedicated host group, for VMSS VMs this would be the VMSS name") - c.argument('resource_parent_type', help="Type of the parent resource e.g. for dedicated hosts this would be hostGroups, for VMSS VMs this would be virtualmachinescalesets") - c.argument('resource_name', completer=get_resource_name_completion_list(MAINTENANCE_RESOURCE_TYPE), - help='Name of resource.') - c.argument('resource_type', help="Type of the azure resource e.g. virtualmachines, hosts etc.") - c.argument('provider_name', help='Maintenance resource provider - Microsoft.Maintenance') - c.argument('maintenance_configuration_id', help='Fully qualified id of the maintenance configuration e.g. /subscriptions/2b4ce620-bb0f-4964-8428-dea4aefec295/resourceGroups/smdtest/providers/Microsoft.Maintenance/maintenanceConfigurations/config1') - c.argument('configuration_assignment_name', help='Configuration assignment name. Same as the configuration name') diff --git a/src/maintenance/azext_maintenance/action.py b/src/maintenance/azext_maintenance/action.py new file mode 100644 index 00000000000..d95d53bf711 --- /dev/null +++ b/src/maintenance/azext_maintenance/action.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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=wildcard-import +# pylint: disable=unused-wildcard-import + +from .generated.action import * # noqa: F403 +try: + from .manual.action import * # noqa: F403 +except ImportError: + pass diff --git a/src/maintenance/azext_maintenance/azext_metadata.json b/src/maintenance/azext_maintenance/azext_metadata.json index eb20a2fd2cc..8cfc6da9485 100644 --- a/src/maintenance/azext_maintenance/azext_metadata.json +++ b/src/maintenance/azext_maintenance/azext_metadata.json @@ -1,3 +1,4 @@ { - "azext.minCliCoreVersion": "2.0.47" + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.3.1" } \ No newline at end of file diff --git a/src/maintenance/azext_maintenance/commands.py b/src/maintenance/azext_maintenance/commands.py deleted file mode 100644 index 94693bfdbd4..00000000000 --- a/src/maintenance/azext_maintenance/commands.py +++ /dev/null @@ -1,53 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -# pylint: disable=line-too-long - -from azure.cli.core.commands import CliCommandType - -from ._client_factory import (cf_maintenance_configurations, cf_maintenance_updates, cf_configuration_assignments, cf_apply_updates) - - -def load_command_table(self, _): - - maintenance_configurations_mgmt_util = CliCommandType( - operations_tmpl='azext_maintenance.vendored_sdks.operations.maintenance_configurations_operations#MaintenanceConfigurationsOperations.{}', - client_factory=cf_maintenance_configurations - ) - - maintenance_updates_mgmt_util = CliCommandType( - operations_tmpl='azext_maintenance.vendored_sdks.operations.updates_operations#UpdatesOperations.{}', - client_factory=cf_maintenance_updates - ) - - configuration_assignments_mgmt_util = CliCommandType( - operations_tmpl='azext_maintenance.vendored_sdks.operations.configuration_assignments_operations#ConfigurationAssignmentsOperations.{}', - client_factory=cf_configuration_assignments - ) - - apply_updates_mgmt_util = CliCommandType( - operations_tmpl='azext_maintenance.vendored_sdks.operations.apply_updates_operations#ApplyUpdatesOperations.{}', - client_factory=cf_apply_updates - ) - - with self.command_group('maintenance configuration', maintenance_configurations_mgmt_util, client_factory=cf_maintenance_configurations) as g: - g.custom_command('create', 'cli_configuration_create') - g.command('delete', 'delete') - g.custom_command('update', 'cli_configuration_create') - g.show_command('show', 'get') - g.command('list', 'list') - - with self.command_group('maintenance update', maintenance_updates_mgmt_util, client_factory=cf_maintenance_updates) as g: - g.custom_command('list', 'cli_update_list') - - with self.command_group('maintenance assignment', configuration_assignments_mgmt_util, client_factory=cf_configuration_assignments) as g: - g.custom_command('create', 'cli_assignment_create') - g.custom_command('delete', 'cli_assignment_delete') - g.custom_command('list', 'cli_assignment_list') - - with self.command_group('maintenance applyupdate', apply_updates_mgmt_util, client_factory=cf_apply_updates) as g: - g.custom_command('create', 'cli_applyupdate_create') - g.custom_command('get', 'cli_applyupdate_get', deprecate_info=g.deprecate(redirect='maintenance applyupdate show')) - g.custom_show_command('show', 'cli_applyupdate_get') diff --git a/src/maintenance/azext_maintenance/custom.py b/src/maintenance/azext_maintenance/custom.py index 33788f540e5..dbe9d5f9742 100644 --- a/src/maintenance/azext_maintenance/custom.py +++ b/src/maintenance/azext_maintenance/custom.py @@ -1,238 +1,17 @@ -# pylint: disable=import-error,relative-import,unused-import -# -------------------------------------------------------------------------------------------- +# -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import re -from six.moves.urllib.parse import quote -from knack.log import get_logger -from knack.util import CLIError -from msrestazure.tools import parse_resource_id -from dateutil.parser import parse - -from azure.cli.core.commands.client_factory import get_subscription_id -from azext_maintenance.vendored_sdks.models import ( - ApplyUpdate, - ConfigurationAssignment, - MaintenanceConfiguration, - Update, - UpdateStatus, - MaintenanceScope, - ImpactType) - -logger = get_logger(__name__) - -MAINTENANCE_NAMESPACE = "Microsoft.Maintenance" -RESOURCES_NAMESPACE = "Microsoft.Resources" -SUBSCRIPTIONS = "subscriptions" -RESOURCE_GROUPS = "resourcegroups" -EVENTGRID_DOMAINS = "domains" -EVENTGRID_TOPICS = "topics" -WEBHOOK_DESTINATION = "webhook" -EVENTHUB_DESTINATION = "eventhub" -STORAGEQUEUE_DESTINATION = "storagequeue" -HYBRIDCONNECTION_DESTINATION = "hybridconnection" -EVENTGRID_SCHEMA = "EventGridSchema" -CLOUDEVENTV01_SCHEMA = "CloudEventV01Schema" -CUSTOM_EVENT_SCHEMA = "CustomEventSchema" -CUSTOM_INPUT_SCHEMA = "CustomInputSchema" -GLOBAL = "global" - -# Deprecated event delivery schema value (starting 2018-09-15-preview) -INPUT_EVENT_SCHEMA = "InputEventSchema" - -# Constants for the target field names of the mapping -CONFIGURATION = "configuration" -SUBJECT = "subject" -ID = "id" -DEFAULT_SCOPE = "All" - - -def cli_configuration_create( - client, - resource_group_name, - resource_name, - location, - tags=None, - maintenanceScope=DEFAULT_SCOPE): - - configuration = MaintenanceConfiguration( - location=location, - tags=tags, - namespace=MAINTENANCE_NAMESPACE, - maintenance_scope=maintenanceScope) - - return client.create_or_update( - resource_group_name=resource_group_name, - resource_name=resource_name, - configuration=configuration) - - -def cli_assignment_create( - client, - resource_group_name, - provider_name, - resource_type, - resource_name, - configuration_assignment_name, - location, - maintenance_configuration_id, - resource_parent_type=None, - resource_parent_name=None, - resource_id=None): - - configuration_assignment = ConfigurationAssignment( - location=location, - maintenance_configuration_id=maintenance_configuration_id, - resource_id=resource_id) - - if not resource_parent_type: - return client.create_or_update( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_type=resource_type, - resource_name=resource_name, - configuration_assignment_name=configuration_assignment_name, - configuration_assignment=configuration_assignment) - - return client.create_or_update_parent( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_parent_type=resource_parent_type, - resource_parent_name=resource_parent_name, - resource_type=resource_type, - resource_name=resource_name, - configuration_assignment_name=configuration_assignment_name, - configuration_assignment=configuration_assignment) - - -def cli_assignment_delete( - client, - resource_group_name, - provider_name, - resource_type, - resource_name, - configuration_assignment_name, - resource_parent_type=None, - resource_parent_name=None): - - if not resource_parent_type: - return client.delete( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_type=resource_type, - resource_name=resource_name, - configuration_assignment_name=configuration_assignment_name) - - return client.delete_parent( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_parent_type=resource_parent_type, - resource_parent_name=resource_parent_name, - resource_type=resource_type, - resource_name=resource_name, - configuration_assignment_name=configuration_assignment_name) - - -def cli_assignment_list( - client, - resource_group_name, - provider_name, - resource_type, - resource_name, - resource_parent_type=None, - resource_parent_name=None): - - if not resource_parent_type: - return client.list( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_type=resource_type, - resource_name=resource_name) - - return client.list_parent( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_parent_type=resource_parent_type, - resource_parent_name=resource_parent_name, - resource_type=resource_type, - resource_name=resource_name) - - -def cli_applyupdate_create( - client, - resource_group_name, - provider_name, - resource_type, - resource_name, - resource_parent_type=None, - resource_parent_name=None): - - if not resource_parent_type: - return client.create_or_update( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_type=resource_type, - resource_name=resource_name) - - return client.create_or_update_parent( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_parent_type=resource_parent_type, - resource_parent_name=resource_parent_name, - resource_type=resource_type, - resource_name=resource_name) - - -def cli_applyupdate_get( - client, - resource_group_name, - provider_name, - resource_type, - resource_name, - apply_update_name, - resource_parent_type=None, - resource_parent_name=None): - - if not resource_parent_type: - return client.get( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_type=resource_type, - resource_name=resource_name, - apply_update_name=apply_update_name) - - return client.get_parent( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_parent_type=resource_parent_type, - resource_parent_name=resource_parent_name, - resource_type=resource_type, - resource_name=resource_name, - apply_update_name=apply_update_name) - - -def cli_update_list( - client, - resource_group_name, - provider_name, - resource_type, - resource_name, - resource_parent_type=None, - resource_parent_name=None): - - if not resource_parent_type: - return client.list( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_type=resource_type, - resource_name=resource_name) - - return client.list_parent( - resource_group_name=resource_group_name, - provider_name=provider_name, - resource_parent_type=resource_parent_type, - resource_parent_name=resource_parent_name, - resource_type=resource_type, - resource_name=resource_name) +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=wildcard-import +# pylint: disable=unused-wildcard-import + +from .generated.custom import * # noqa: F403 +try: + from .manual.custom import * # noqa: F403 +except ImportError: + pass diff --git a/src/maintenance/azext_maintenance/generated/__init__.py b/src/maintenance/azext_maintenance/generated/__init__.py new file mode 100644 index 00000000000..c9cfdc73e77 --- /dev/null +++ b/src/maintenance/azext_maintenance/generated/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/maintenance/azext_maintenance/generated/_client_factory.py b/src/maintenance/azext_maintenance/generated/_client_factory.py new file mode 100644 index 00000000000..caba0b6d68b --- /dev/null +++ b/src/maintenance/azext_maintenance/generated/_client_factory.py @@ -0,0 +1,36 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + + +def cf_maintenance_cl(cli_ctx, *_): + from azure.cli.core.commands.client_factory import get_mgmt_service_client + from ..vendored_sdks.maintenance import MaintenanceClient + return get_mgmt_service_client(cli_ctx, + MaintenanceClient) + + +def cf_public_maintenance_configuration(cli_ctx, *_): + return cf_maintenance_cl(cli_ctx).public_maintenance_configuration + + +def cf_apply_update(cli_ctx, *_): + return cf_maintenance_cl(cli_ctx).apply_update + + +def cf_configuration_assignment(cli_ctx, *_): + return cf_maintenance_cl(cli_ctx).configuration_assignment + + +def cf_maintenance_configuration(cli_ctx, *_): + return cf_maintenance_cl(cli_ctx).maintenance_configuration + + +def cf_update(cli_ctx, *_): + return cf_maintenance_cl(cli_ctx).update diff --git a/src/maintenance/azext_maintenance/generated/_help.py b/src/maintenance/azext_maintenance/generated/_help.py new file mode 100644 index 00000000000..6b2bd9d2b1d --- /dev/null +++ b/src/maintenance/azext_maintenance/generated/_help.py @@ -0,0 +1,216 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines + +from knack.help_files import helps + + +helps['maintenance public-configuration'] = """ + type: group + short-summary: maintenance public-configuration +""" + +helps['maintenance public-configuration list'] = """ + type: command + short-summary: "Get Public Maintenance Configuration records" + examples: + - name: PublicMaintenanceConfigurations_List + text: |- + az maintenance public-configuration list +""" + +helps['maintenance public-configuration show'] = """ + type: command + short-summary: "Get Public Maintenance Configuration record" + examples: + - name: PublicMaintenanceConfigurations_GetForResource + text: |- + az maintenance public-configuration show --resource-name "configuration1" +""" + +helps['maintenance applyupdate'] = """ + type: group + short-summary: maintenance applyupdate +""" + +helps['maintenance applyupdate show'] = """ + type: command + short-summary: "Track maintenance updates to resource" + examples: + - name: ApplyUpdates_Get + text: |- + az maintenance applyupdate show --name "e9b9685d-78e4-44c4-a81c-64a14f9b87b6" --provider-name \ +"Microsoft.Compute" --resource-group "examplerg" --resource-name "smdtest1" --resource-type "virtualMachineScaleSets" +""" + +helps['maintenance applyupdate create'] = """ + type: command + short-summary: "Apply maintenance updates to resource" + examples: + - name: ApplyUpdates_CreateOrUpdateParent + text: |- + az maintenance applyupdate create --provider-name "Microsoft.Compute" --resource-group "examplerg" \ +--resource-name "smdvm1" --resource-parent-name "smdtest1" --resource-parent-type "virtualMachineScaleSets" \ +--resource-type "virtualMachines" +""" + +helps['maintenance applyupdate update'] = """ + type: command + short-summary: "Apply maintenance updates to resource" +""" + +helps['maintenance applyupdate get-parent'] = """ + type: command + short-summary: "Track maintenance updates to resource with parent" + examples: + - name: ApplyUpdates_GetParent + text: |- + az maintenance applyupdate get-parent --name "e9b9685d-78e4-44c4-a81c-64a14f9b87b6" --provider-name \ +"Microsoft.Compute" --resource-group "examplerg" --resource-name "smdvm1" --resource-parent-name "smdtest1" \ +--resource-parent-type "virtualMachineScaleSets" --resource-type "virtualMachines" +""" + +helps['maintenance assignment'] = """ + type: group + short-summary: maintenance assignment +""" + +helps['maintenance assignment list'] = """ + type: command + short-summary: "List configurationAssignments for resource." + examples: + - name: ConfigurationAssignments_List + text: |- + az maintenance assignment list --provider-name "Microsoft.Compute" --resource-group "examplerg" \ +--resource-name "smdtest1" --resource-type "virtualMachineScaleSets" +""" + +helps['maintenance assignment create'] = """ + type: command + short-summary: "Register configuration for resource." + examples: + - name: ConfigurationAssignments_CreateOrUpdateParent + text: |- + az maintenance assignment create --maintenance-configuration-id "/subscriptions/5b4b650e-28b9-4790-b3ab-\ +ddbd88d727c4/resourcegroups/examplerg/providers/Microsoft.Maintenance/maintenanceConfigurations/policy1" --name \ +"workervmPolicy" --provider-name "Microsoft.Compute" --resource-group "examplerg" --resource-name "smdvm1" \ +--resource-parent-name "smdtest1" --resource-parent-type "virtualMachineScaleSets" --resource-type "virtualMachines" +""" + +helps['maintenance assignment update'] = """ + type: command + short-summary: "Register configuration for resource." +""" + +helps['maintenance assignment delete'] = """ + type: command + short-summary: "Unregister configuration for resource." + examples: + - name: ConfigurationAssignments_DeleteParent + text: |- + az maintenance assignment delete --name "workervmConfiguration" --provider-name "Microsoft.Compute" \ +--resource-group "examplerg" --resource-name "smdvm1" --resource-parent-name "smdtest1" --resource-parent-type \ +"virtualMachineScaleSets" --resource-type "virtualMachines" +""" + +helps['maintenance assignment list-parent'] = """ + type: command + short-summary: "List configurationAssignments for resource." + examples: + - name: ConfigurationAssignments_ListParent + text: |- + az maintenance assignment list-parent --provider-name "Microsoft.Compute" --resource-group "examplerg" \ +--resource-name "smdtestvm1" --resource-parent-name "smdtest1" --resource-parent-type "virtualMachineScaleSets" \ +--resource-type "virtualMachines" +""" + +helps['maintenance configuration'] = """ + type: group + short-summary: maintenance configuration +""" + +helps['maintenance configuration list'] = """ + type: command + short-summary: "Get Configuration records within a subscription" + examples: + - name: MaintenanceConfigurations_List + text: |- + az maintenance configuration list +""" + +helps['maintenance configuration show'] = """ + type: command + short-summary: "Get Configuration record" + examples: + - name: MaintenanceConfigurations_GetForResource + text: |- + az maintenance configuration show --resource-group "examplerg" --resource-name "configuration1" +""" + +helps['maintenance configuration create'] = """ + type: command + short-summary: "Create or Update configuration record" + examples: + - name: MaintenanceConfigurations_CreateOrUpdateForResource + text: |- + az maintenance configuration create --location "westus2" --maintenance-scope "OSImage" \ +--maintenance-window-duration "05:00" --maintenance-window-expiration-date-time "9999-12-31 00:00" \ +--maintenance-window-recur-every "Day" --maintenance-window-start-date-time "2020-04-30 08:00" \ +--maintenance-window-time-zone "Pacific Standard Time" --namespace "Microsoft.Maintenance" --visibility "Custom" \ +--resource-group "examplerg" --resource-name "configuration1" +""" + +helps['maintenance configuration update'] = """ + type: command + short-summary: "Patch configuration record" + examples: + - name: MaintenanceConfigurations_UpdateForResource + text: |- + az maintenance configuration update --location "westus2" --maintenance-scope "OSImage" \ +--maintenance-window-duration "05:00" --maintenance-window-expiration-date-time "9999-12-31 00:00" \ +--maintenance-window-recur-every "Month Third Sunday" --maintenance-window-start-date-time "2020-04-30 08:00" \ +--maintenance-window-time-zone "Pacific Standard Time" --namespace "Microsoft.Maintenance" --visibility "Custom" \ +--resource-group "examplerg" --resource-name "configuration1" +""" + +helps['maintenance configuration delete'] = """ + type: command + short-summary: "Delete Configuration record" + examples: + - name: MaintenanceConfigurations_DeleteForResource + text: |- + az maintenance configuration delete --resource-group "examplerg" --resource-name "example1" +""" + +helps['maintenance update'] = """ + type: group + short-summary: maintenance update +""" + +helps['maintenance update list'] = """ + type: command + short-summary: "Get updates to resources." + examples: + - name: Updates_List + text: |- + az maintenance update list --provider-name "Microsoft.Compute" --resource-group "examplerg" \ +--resource-name "smdtest1" --resource-type "virtualMachineScaleSets" +""" + +helps['maintenance update list-parent'] = """ + type: command + short-summary: "Get updates to resources." + examples: + - name: Updates_ListParent + text: |- + az maintenance update list-parent --provider-name "Microsoft.Compute" --resource-group "examplerg" \ +--resource-name "1" --resource-parent-name "smdtest1" --resource-parent-type "virtualMachineScaleSets" --resource-type \ +"virtualMachines" +""" diff --git a/src/maintenance/azext_maintenance/generated/_params.py b/src/maintenance/azext_maintenance/generated/_params.py new file mode 100644 index 00000000000..a019b1b9744 --- /dev/null +++ b/src/maintenance/azext_maintenance/generated/_params.py @@ -0,0 +1,210 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + +from azure.cli.core.commands.parameters import ( + tags_type, + get_enum_type, + resource_group_name_type, + get_location_type +) +from azure.cli.core.commands.validators import get_default_location_from_resource_group +from azext_maintenance.action import AddExtensionProperties + + +def load_arguments(self, _): + + with self.argument_context('maintenance public-configuration show') as c: + c.argument('resource_name', type=str, help='Resource Identifier', id_part='name') + + with self.argument_context('maintenance applyupdate show') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + c.argument('apply_update_name', options_list=['--name', '-n', '--apply-update-name'], type=str, help='' + 'applyUpdate Id') + + with self.argument_context('maintenance applyupdate create') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + + with self.argument_context('maintenance applyupdate update') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + + with self.argument_context('maintenance applyupdate get-parent') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + c.argument('apply_update_name', options_list=['--name', '-n', '--apply-update-name'], type=str, help='' + 'applyUpdate Id') + + with self.argument_context('maintenance assignment list') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + + with self.argument_context('maintenance assignment create') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + c.argument('configuration_assignment_name', options_list=['--name', '-n', '--configuration-assignment-name'], + type=str, help='Configuration assignment name') + c.argument('location', arg_type=get_location_type(self.cli_ctx), + validator=get_default_location_from_resource_group) + c.argument('maintenance_configuration_id', type=str, help='The maintenance configuration Id') + c.argument('resource_id', type=str, help='The unique resourceId') + + with self.argument_context('maintenance assignment update') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + c.argument('configuration_assignment_name', options_list=['--name', '-n', '--configuration-assignment-name'], + type=str, help='Configuration assignment name') + c.argument('location', arg_type=get_location_type(self.cli_ctx), + validator=get_default_location_from_resource_group) + c.argument('maintenance_configuration_id', type=str, help='The maintenance configuration Id') + c.argument('resource_id', type=str, help='The unique resourceId') + + with self.argument_context('maintenance assignment delete') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + c.argument('configuration_assignment_name', options_list=['--name', '-n', '--configuration-assignment-name'], + type=str, help='Unique configuration assignment name') + + with self.argument_context('maintenance assignment list-parent') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + + with self.argument_context('maintenance configuration show') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('resource_name', type=str, help='Resource Identifier') + + with self.argument_context('maintenance configuration create') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('resource_name', type=str, help='Resource Identifier') + c.argument('location', arg_type=get_location_type(self.cli_ctx), + validator=get_default_location_from_resource_group) + c.argument('tags', tags_type) + c.argument('namespace', type=str, help='Gets or sets namespace of the resource') + c.argument('extension_properties', action=AddExtensionProperties, nargs='*', help='Gets or sets ' + 'extensionProperties of the maintenanceConfiguration Expect value: KEY1=VALUE1 KEY2=VALUE2 ...') + c.argument('maintenance_scope', arg_type=get_enum_type(['All', 'Host', 'Resource', 'InResource', 'OSImage', '' + 'Extension', 'InGuestPatch', 'SQLDB', '' + 'SQLManagedInstance']), help='Gets or sets ' + 'maintenanceScope of the configuration') + c.argument('visibility', arg_type=get_enum_type(['Custom', 'Public']), help='Gets or sets the visibility of ' + 'the configuration') + c.argument('maintenance_window_start_date_time', type=str, help='Effective start date of the maintenance ' + 'window in YYYY-MM-DD hh:mm format. The start date can be set to either the current date or future ' + 'date. The window will be created in the time zone provided and adjusted to daylight savings ' + 'according to that time zone.') + c.argument('maintenance_window_expiration_date_time', type=str, help='Effective expiration date of the ' + 'maintenance window in YYYY-MM-DD hh:mm format. The window will be created in the time zone ' + 'provided and adjusted to daylight savings according to that time zone. Expiration date must be set ' + 'to a future date. If not provided, it will be set to the maximum datetime 9999-12-31 23:59:59.') + c.argument('maintenance_window_duration', type=str, help='Duration of the maintenance window in HH:mm format. ' + 'If not provided, default value will be used based on maintenance scope provided. Example: 05:00.') + c.argument('maintenance_window_time_zone', type=str, help='Name of the timezone. List of timezones can be ' + 'obtained by executing [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific ' + 'Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time.') + c.argument('maintenance_window_recur_every', type=str, help='Rate at which a Maintenance window is expected to ' + 'recur. The rate can be expressed as daily, weekly, or monthly schedules. Daily schedule are ' + 'formatted as recurEvery: [Frequency as integer][\'Day(s)\']. If no frequency is provided, the ' + 'default frequency is 1. Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly ' + 'schedule are formatted as recurEvery: [Frequency as integer][\'Week(s)\'] [Optional comma ' + 'separated list of weekdays Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, ' + 'recurEvery: Week Saturday,Sunday. Monthly schedules are formatted as [Frequency as ' + 'integer][\'Month(s)\'] [Comma separated list of month days] or [Frequency as ' + 'integer][\'Month(s)\'] [Week of Month (First, Second, Third, Fourth, Last)] [Weekday ' + 'Monday-Sunday]. Monthly schedule examples are recurEvery: Month, recurEvery: 2Months, recurEvery: ' + 'Month day23,day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday.') + + with self.argument_context('maintenance configuration update') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('resource_name', type=str, help='Resource Identifier') + c.argument('location', arg_type=get_location_type(self.cli_ctx), + validator=get_default_location_from_resource_group) + c.argument('tags', tags_type) + c.argument('namespace', type=str, help='Gets or sets namespace of the resource') + c.argument('extension_properties', action=AddExtensionProperties, nargs='*', help='Gets or sets ' + 'extensionProperties of the maintenanceConfiguration Expect value: KEY1=VALUE1 KEY2=VALUE2 ...') + c.argument('maintenance_scope', arg_type=get_enum_type(['All', 'Host', 'Resource', 'InResource', 'OSImage', '' + 'Extension', 'InGuestPatch', 'SQLDB', '' + 'SQLManagedInstance']), help='Gets or sets ' + 'maintenanceScope of the configuration') + c.argument('visibility', arg_type=get_enum_type(['Custom', 'Public']), help='Gets or sets the visibility of ' + 'the configuration') + c.argument('maintenance_window_start_date_time', type=str, help='Effective start date of the maintenance ' + 'window in YYYY-MM-DD hh:mm format. The start date can be set to either the current date or future ' + 'date. The window will be created in the time zone provided and adjusted to daylight savings ' + 'according to that time zone.') + c.argument('maintenance_window_expiration_date_time', type=str, help='Effective expiration date of the ' + 'maintenance window in YYYY-MM-DD hh:mm format. The window will be created in the time zone ' + 'provided and adjusted to daylight savings according to that time zone. Expiration date must be set ' + 'to a future date. If not provided, it will be set to the maximum datetime 9999-12-31 23:59:59.') + c.argument('maintenance_window_duration', type=str, help='Duration of the maintenance window in HH:mm format. ' + 'If not provided, default value will be used based on maintenance scope provided. Example: 05:00.') + c.argument('maintenance_window_time_zone', type=str, help='Name of the timezone. List of timezones can be ' + 'obtained by executing [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific ' + 'Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time.') + c.argument('maintenance_window_recur_every', type=str, help='Rate at which a Maintenance window is expected to ' + 'recur. The rate can be expressed as daily, weekly, or monthly schedules. Daily schedule are ' + 'formatted as recurEvery: [Frequency as integer][\'Day(s)\']. If no frequency is provided, the ' + 'default frequency is 1. Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly ' + 'schedule are formatted as recurEvery: [Frequency as integer][\'Week(s)\'] [Optional comma ' + 'separated list of weekdays Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, ' + 'recurEvery: Week Saturday,Sunday. Monthly schedules are formatted as [Frequency as ' + 'integer][\'Month(s)\'] [Comma separated list of month days] or [Frequency as ' + 'integer][\'Month(s)\'] [Week of Month (First, Second, Third, Fourth, Last)] [Weekday ' + 'Monday-Sunday]. Monthly schedule examples are recurEvery: Month, recurEvery: 2Months, recurEvery: ' + 'Month day23,day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday.') + + with self.argument_context('maintenance configuration delete') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('resource_name', type=str, help='Resource Identifier') + + with self.argument_context('maintenance update list') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + + with self.argument_context('maintenance update list-parent') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') diff --git a/src/maintenance/azext_maintenance/generated/_validators.py b/src/maintenance/azext_maintenance/generated/_validators.py new file mode 100644 index 00000000000..b33a44c1ebf --- /dev/null +++ b/src/maintenance/azext_maintenance/generated/_validators.py @@ -0,0 +1,9 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- diff --git a/src/maintenance/azext_maintenance/generated/action.py b/src/maintenance/azext_maintenance/generated/action.py new file mode 100644 index 00000000000..409077136fb --- /dev/null +++ b/src/maintenance/azext_maintenance/generated/action.py @@ -0,0 +1,34 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=protected-access + +import argparse +from collections import defaultdict +from knack.util import CLIError + + +class AddExtensionProperties(argparse.Action): + def __call__(self, parser, namespace, values, option_string=None): + action = self.get_action(values, option_string) + namespace.extension_properties = action + + def get_action(self, values, option_string): # pylint: disable=no-self-use + try: + properties = defaultdict(list) + for (k, v) in (x.split('=', 1) for x in values): + properties[k].append(v) + properties = dict(properties) + except ValueError: + raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string)) + d = {} + for k in properties: + v = properties[k] + d[k] = v[0] + return d diff --git a/src/maintenance/azext_maintenance/generated/commands.py b/src/maintenance/azext_maintenance/generated/commands.py new file mode 100644 index 00000000000..98fe74f50ae --- /dev/null +++ b/src/maintenance/azext_maintenance/generated/commands.py @@ -0,0 +1,73 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-statements +# pylint: disable=too-many-locals + +from azure.cli.core.commands import CliCommandType + + +def load_command_table(self, _): + + from azext_maintenance.generated._client_factory import cf_public_maintenance_configuration + maintenance_public_maintenance_configuration = CliCommandType( + operations_tmpl='azext_maintenance.vendored_sdks.maintenance.operations._public_maintenance_configuration_opera' + 'tions#PublicMaintenanceConfigurationOperations.{}', + client_factory=cf_public_maintenance_configuration) + with self.command_group('maintenance public-configuration', maintenance_public_maintenance_configuration, + client_factory=cf_public_maintenance_configuration, is_experimental=True) as g: + g.custom_command('list', 'maintenance_public_configuration_list') + g.custom_show_command('show', 'maintenance_public_configuration_show') + + from azext_maintenance.generated._client_factory import cf_apply_update + maintenance_apply_update = CliCommandType( + operations_tmpl='azext_maintenance.vendored_sdks.maintenance.operations._apply_update_operations#ApplyUpdateOpe' + 'rations.{}', + client_factory=cf_apply_update) + with self.command_group('maintenance applyupdate', maintenance_apply_update, client_factory=cf_apply_update, + is_experimental=True) as g: + g.custom_show_command('show', 'maintenance_applyupdate_show') + g.custom_command('create', 'maintenance_applyupdate_create') + g.custom_command('update', 'maintenance_applyupdate_update') + g.custom_command('get-parent', 'maintenance_applyupdate_get_parent') + + from azext_maintenance.generated._client_factory import cf_configuration_assignment + maintenance_configuration_assignment = CliCommandType( + operations_tmpl='azext_maintenance.vendored_sdks.maintenance.operations._configuration_assignment_operations#Co' + 'nfigurationAssignmentOperations.{}', + client_factory=cf_configuration_assignment) + with self.command_group('maintenance assignment', maintenance_configuration_assignment, + client_factory=cf_configuration_assignment, is_experimental=True) as g: + g.custom_command('list', 'maintenance_assignment_list') + g.custom_command('create', 'maintenance_assignment_create') + g.custom_command('update', 'maintenance_assignment_update') + g.custom_command('delete', 'maintenance_assignment_delete', confirmation=True) + g.custom_command('list-parent', 'maintenance_assignment_list_parent') + + from azext_maintenance.generated._client_factory import cf_maintenance_configuration + maintenance_maintenance_configuration = CliCommandType( + operations_tmpl='azext_maintenance.vendored_sdks.maintenance.operations._maintenance_configuration_operations#M' + 'aintenanceConfigurationOperations.{}', + client_factory=cf_maintenance_configuration) + with self.command_group('maintenance configuration', maintenance_maintenance_configuration, + client_factory=cf_maintenance_configuration, is_experimental=True) as g: + g.custom_command('list', 'maintenance_configuration_list') + g.custom_show_command('show', 'maintenance_configuration_show') + g.custom_command('create', 'maintenance_configuration_create') + g.custom_command('update', 'maintenance_configuration_update') + g.custom_command('delete', 'maintenance_configuration_delete', confirmation=True) + + from azext_maintenance.generated._client_factory import cf_update + maintenance_update = CliCommandType( + operations_tmpl='azext_maintenance.vendored_sdks.maintenance.operations._update_operations#UpdateOperations.{}', + client_factory=cf_update) + with self.command_group('maintenance update', maintenance_update, client_factory=cf_update, + is_experimental=True) as g: + g.custom_command('list', 'maintenance_update_list') + g.custom_command('list-parent', 'maintenance_update_list_parent') diff --git a/src/maintenance/azext_maintenance/generated/custom.py b/src/maintenance/azext_maintenance/generated/custom.py new file mode 100644 index 00000000000..37c5c5073ce --- /dev/null +++ b/src/maintenance/azext_maintenance/generated/custom.py @@ -0,0 +1,283 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=line-too-long +# pylint: disable=too-many-lines + + +def maintenance_public_configuration_list(client): + return client.list() + + +def maintenance_public_configuration_show(client, + resource_name): + return client.get(resource_name=resource_name) + + +def maintenance_applyupdate_show(client, + resource_group_name, + provider_name, + resource_type, + resource_name, + apply_update_name): + return client.get(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_type=resource_type, + resource_name=resource_name, + apply_update_name=apply_update_name) + + +def maintenance_applyupdate_create(client, + resource_group_name, + provider_name, + resource_type, + resource_name, + resource_parent_type=None, + resource_parent_name=None): + if resource_group_name and all(v is not None for v in [provider_name, resource_parent_type, resource_parent_name, resource_type, resource_name]): + return client.create_or_update_parent(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_parent_type=resource_parent_type, + resource_parent_name=resource_parent_name, + resource_type=resource_type, + resource_name=resource_name) + return client.create_or_update(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_type=resource_type, + resource_name=resource_name) + + +def maintenance_applyupdate_update(client, + resource_group_name, + provider_name, + resource_type, + resource_name): + return client.create_or_update(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_type=resource_type, + resource_name=resource_name) + + +def maintenance_applyupdate_get_parent(client, + resource_group_name, + resource_parent_type, + resource_parent_name, + provider_name, + resource_type, + resource_name, + apply_update_name): + return client.get_parent(resource_group_name=resource_group_name, + resource_parent_type=resource_parent_type, + resource_parent_name=resource_parent_name, + provider_name=provider_name, + resource_type=resource_type, + resource_name=resource_name, + apply_update_name=apply_update_name) + + +def maintenance_assignment_list(client, + resource_group_name, + provider_name, + resource_type, + resource_name): + return client.list(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_type=resource_type, + resource_name=resource_name) + + +def maintenance_assignment_create(client, + resource_group_name, + provider_name, + resource_type, + resource_name, + configuration_assignment_name, + resource_parent_type=None, + resource_parent_name=None, + location=None, + maintenance_configuration_id=None, + resource_id=None): + if resource_group_name and all(v is not None for v in [provider_name, resource_parent_type, resource_parent_name, resource_type, resource_name, configuration_assignment_name]): + return client.create_or_update_parent(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_parent_type=resource_parent_type, + resource_parent_name=resource_parent_name, + resource_type=resource_type, + resource_name=resource_name, + configuration_assignment_name=configuration_assignment_name, + location=location, + maintenance_configuration_id=maintenance_configuration_id, + resource_id=resource_id) + return client.create_or_update(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_type=resource_type, + resource_name=resource_name, + configuration_assignment_name=configuration_assignment_name, + location=location, + maintenance_configuration_id=maintenance_configuration_id, + resource_id=resource_id) + + +def maintenance_assignment_update(client, + resource_group_name, + provider_name, + resource_type, + resource_name, + configuration_assignment_name, + location=None, + maintenance_configuration_id=None, + resource_id=None): + return client.create_or_update(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_type=resource_type, + resource_name=resource_name, + configuration_assignment_name=configuration_assignment_name, + location=location, + maintenance_configuration_id=maintenance_configuration_id, + resource_id=resource_id) + + +def maintenance_assignment_delete(client, + resource_group_name, + provider_name, + resource_type, + resource_name, + configuration_assignment_name, + resource_parent_type=None, + resource_parent_name=None): + if resource_group_name and all(v is not None for v in [provider_name, resource_parent_type, resource_parent_name, resource_type, resource_name, configuration_assignment_name]): + return client.delete_parent(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_parent_type=resource_parent_type, + resource_parent_name=resource_parent_name, + resource_type=resource_type, + resource_name=resource_name, + configuration_assignment_name=configuration_assignment_name) + return client.delete(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_type=resource_type, + resource_name=resource_name, + configuration_assignment_name=configuration_assignment_name) + + +def maintenance_assignment_list_parent(client, + resource_group_name, + provider_name, + resource_parent_type, + resource_parent_name, + resource_type, + resource_name): + return client.list_parent(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_parent_type=resource_parent_type, + resource_parent_name=resource_parent_name, + resource_type=resource_type, + resource_name=resource_name) + + +def maintenance_configuration_list(client): + return client.list() + + +def maintenance_configuration_show(client, + resource_group_name, + resource_name): + return client.get(resource_group_name=resource_group_name, + resource_name=resource_name) + + +def maintenance_configuration_create(client, + resource_group_name, + resource_name, + location=None, + tags=None, + namespace=None, + extension_properties=None, + maintenance_scope=None, + visibility=None, + maintenance_window_start_date_time=None, + maintenance_window_expiration_date_time=None, + maintenance_window_duration=None, + maintenance_window_time_zone=None, + maintenance_window_recur_every=None): + return client.create_or_update(resource_group_name=resource_group_name, + resource_name=resource_name, + location=location, + tags=tags, + namespace=namespace, + extension_properties=extension_properties, + maintenance_scope=maintenance_scope, + visibility=visibility, + start_date_time=maintenance_window_start_date_time, + expiration_date_time=maintenance_window_expiration_date_time, + duration=maintenance_window_duration, + time_zone=maintenance_window_time_zone, + recur_every=maintenance_window_recur_every) + + +def maintenance_configuration_update(client, + resource_group_name, + resource_name, + location=None, + tags=None, + namespace=None, + extension_properties=None, + maintenance_scope=None, + visibility=None, + maintenance_window_start_date_time=None, + maintenance_window_expiration_date_time=None, + maintenance_window_duration=None, + maintenance_window_time_zone=None, + maintenance_window_recur_every=None): + return client.update(resource_group_name=resource_group_name, + resource_name=resource_name, + location=location, + tags=tags, + namespace=namespace, + extension_properties=extension_properties, + maintenance_scope=maintenance_scope, + visibility=visibility, + start_date_time=maintenance_window_start_date_time, + expiration_date_time=maintenance_window_expiration_date_time, + duration=maintenance_window_duration, + time_zone=maintenance_window_time_zone, + recur_every=maintenance_window_recur_every) + + +def maintenance_configuration_delete(client, + resource_group_name, + resource_name): + return client.delete(resource_group_name=resource_group_name, + resource_name=resource_name) + + +def maintenance_update_list(client, + resource_group_name, + provider_name, + resource_type, + resource_name): + return client.list(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_type=resource_type, + resource_name=resource_name) + + +def maintenance_update_list_parent(client, + resource_group_name, + provider_name, + resource_parent_type, + resource_parent_name, + resource_type, + resource_name): + return client.list_parent(resource_group_name=resource_group_name, + provider_name=provider_name, + resource_parent_type=resource_parent_type, + resource_parent_name=resource_parent_name, + resource_type=resource_type, + resource_name=resource_name) diff --git a/src/maintenance/azext_maintenance/manual/__init__.py b/src/maintenance/azext_maintenance/manual/__init__.py new file mode 100644 index 00000000000..c9cfdc73e77 --- /dev/null +++ b/src/maintenance/azext_maintenance/manual/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/maintenance/azext_maintenance/manual/_params.py b/src/maintenance/azext_maintenance/manual/_params.py new file mode 100644 index 00000000000..ed543971556 --- /dev/null +++ b/src/maintenance/azext_maintenance/manual/_params.py @@ -0,0 +1,226 @@ +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + +from azure.cli.core.commands.parameters import ( + tags_type, + get_enum_type, + resource_group_name_type, + get_location_type +) +from azure.cli.core.commands.validators import get_default_location_from_resource_group +from azext_maintenance.action import AddExtensionProperties + + +def load_arguments(self, _): + + with self.argument_context('maintenance public-configuration show') as c: + c.argument('resource_name', type=str, help='Resource Identifier', id_part='name') + + with self.argument_context('maintenance applyupdate show') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + c.argument('apply_update_name', options_list=['--name', '-n', '--apply-update-name'], type=str, help='' + 'applyUpdate Id') + + with self.argument_context('maintenance applyupdate create') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + + with self.argument_context('maintenance applyupdate update') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + + with self.argument_context('maintenance applyupdate get-parent') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + c.argument('apply_update_name', options_list=['--name', '-n', '--apply-update-name'], type=str, help='' + 'applyUpdate Id') + + with self.argument_context('maintenance assignment list') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + + with self.argument_context('maintenance assignment create') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + c.argument('configuration_assignment_name', options_list=['--name', '-n', '--configuration-assignment-name'], + type=str, help='Configuration assignment name') + c.argument('location', arg_type=get_location_type(self.cli_ctx), + validator=get_default_location_from_resource_group) + c.argument('maintenance_configuration_id', options_list=['--maintenance-configuration-id', '--config-id'], + type=str, help='The maintenance configuration Id') + c.argument('resource_id', type=str, help='The unique resourceId') + + with self.argument_context('maintenance assignment update') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + c.argument('configuration_assignment_name', options_list=['--name', '-n', '--configuration-assignment-name'], + type=str, help='Configuration assignment name') + c.argument('location', arg_type=get_location_type(self.cli_ctx), + validator=get_default_location_from_resource_group) + c.argument('maintenance_configuration_id', options_list=['--maintenance-configuration-id', '--config-id'], + type=str, help='The maintenance configuration Id') + c.argument('resource_id', type=str, help='The unique resourceId') + + with self.argument_context('maintenance assignment delete') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + c.argument('configuration_assignment_name', options_list=['--name', '-n', '--configuration-assignment-name'], + type=str, help='Unique configuration assignment name') + + with self.argument_context('maintenance assignment list-parent') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + + with self.argument_context('maintenance configuration show') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('resource_name', type=str, help='Resource Identifier') + + with self.argument_context('maintenance configuration create') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('resource_name', type=str, help='Resource Identifier') + c.argument('location', arg_type=get_location_type(self.cli_ctx), + validator=get_default_location_from_resource_group) + c.argument('tags', tags_type) + c.argument('namespace', type=str, help='Gets or sets namespace of the resource') + c.argument('extension_properties', action=AddExtensionProperties, nargs='*', help='Gets or sets ' + 'extensionProperties of the maintenanceConfiguration Expect value: KEY1=VALUE1 KEY2=VALUE2 ...') + c.argument('maintenance_scope', arg_type=get_enum_type(['All', 'Host', 'Resource', 'InResource', 'OSImage', '' + 'Extension', 'InGuestPatch', 'SQLDB', '' + 'SQLManagedInstance']), help='Gets or sets ' + 'maintenanceScope of the configuration') + c.argument('visibility', arg_type=get_enum_type(['Custom', 'Public']), help='Gets or sets the visibility of ' + 'the configuration') + c.argument('maintenance_window_start_date_time', + options_list=['--maintenance-window-start-date-time', '--start-datetime'], + type=str, help='Effective start date of the maintenance ' + 'window in YYYY-MM-DD hh:mm format. The start date can be set to either the current date or future ' + 'date. The window will be created in the time zone provided and adjusted to daylight savings ' + 'according to that time zone.') + c.argument('maintenance_window_expiration_date_time', + options_list=['--maintenance-window-expiration-date-time', '--expiration-datetime'], + type=str, help='Effective expiration date of the ' + 'maintenance window in YYYY-MM-DD hh:mm format. The window will be created in the time zone ' + 'provided and adjusted to daylight savings according to that time zone. Expiration date must be set ' + 'to a future date. If not provided, it will be set to the maximum datetime 9999-12-31 23:59:59.') + c.argument('maintenance_window_duration', options_list=['--maintenance-window-duration', '--duration'], + type=str, help='Duration of the maintenance window in HH:mm format. ' + 'If not provided, default value will be used based on maintenance scope provided. Example: 05:00.') + c.argument('maintenance_window_time_zone', options_list=['--maintenance-window-time-zone', '--time-zone'], + type=str, help='Name of the timezone. List of timezones can be ' + 'obtained by executing [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific ' + 'Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time.') + c.argument('maintenance_window_recur_every', options_list=['--maintenance-window-recur-every', '--recur-every'], + type=str, help='Rate at which a Maintenance window is expected to ' + 'recur. The rate can be expressed as daily, weekly, or monthly schedules. Daily schedule are ' + 'formatted as recurEvery: [Frequency as integer][\'Day(s)\']. If no frequency is provided, the ' + 'default frequency is 1. Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly ' + 'schedule are formatted as recurEvery: [Frequency as integer][\'Week(s)\'] [Optional comma ' + 'separated list of weekdays Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, ' + 'recurEvery: Week Saturday,Sunday. Monthly schedules are formatted as [Frequency as ' + 'integer][\'Month(s)\'] [Comma separated list of month days] or [Frequency as ' + 'integer][\'Month(s)\'] [Week of Month (First, Second, Third, Fourth, Last)] [Weekday ' + 'Monday-Sunday]. Monthly schedule examples are recurEvery: Month, recurEvery: 2Months, recurEvery: ' + 'Month day23,day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday.') + + with self.argument_context('maintenance configuration update') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('resource_name', type=str, help='Resource Identifier') + c.argument('location', arg_type=get_location_type(self.cli_ctx), + validator=get_default_location_from_resource_group) + c.argument('tags', tags_type) + c.argument('namespace', type=str, help='Gets or sets namespace of the resource') + c.argument('extension_properties', action=AddExtensionProperties, nargs='*', help='Gets or sets ' + 'extensionProperties of the maintenanceConfiguration Expect value: KEY1=VALUE1 KEY2=VALUE2 ...') + c.argument('maintenance_scope', arg_type=get_enum_type(['All', 'Host', 'Resource', 'InResource', 'OSImage', '' + 'Extension', 'InGuestPatch', 'SQLDB', '' + 'SQLManagedInstance']), help='Gets or sets ' + 'maintenanceScope of the configuration') + c.argument('visibility', arg_type=get_enum_type(['Custom', 'Public']), help='Gets or sets the visibility of ' + 'the configuration') + c.argument('maintenance_window_start_date_time', + options_list=['--maintenance-window-start-date-time', '--start-datetime'], + type=str, help='Effective start date of the maintenance ' + 'window in YYYY-MM-DD hh:mm format. The start date can be set to either the current date or future ' + 'date. The window will be created in the time zone provided and adjusted to daylight savings ' + 'according to that time zone.') + c.argument('maintenance_window_expiration_date_time', + options_list=['--maintenance-window-expiration-date-time', '--expiration-datetime'], + type=str, help='Effective expiration date of the ' + 'maintenance window in YYYY-MM-DD hh:mm format. The window will be created in the time zone ' + 'provided and adjusted to daylight savings according to that time zone. Expiration date must be set ' + 'to a future date. If not provided, it will be set to the maximum datetime 9999-12-31 23:59:59.') + c.argument('maintenance_window_duration', options_list=['--maintenance-window-duration', '--duration'], + type=str, help='Duration of the maintenance window in HH:mm format. ' + 'If not provided, default value will be used based on maintenance scope provided. Example: 05:00.') + c.argument('maintenance_window_time_zone', options_list=['--maintenance-window-time-zone', '--time-zone'], + type=str, help='Name of the timezone. List of timezones can be ' + 'obtained by executing [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific ' + 'Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time.') + c.argument('maintenance_window_recur_every', options_list=['--maintenance-window-recur-every', '--recur-every'], + type=str, help='Rate at which a Maintenance window is expected to ' + 'recur. The rate can be expressed as daily, weekly, or monthly schedules. Daily schedule are ' + 'formatted as recurEvery: [Frequency as integer][\'Day(s)\']. If no frequency is provided, the ' + 'default frequency is 1. Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly ' + 'schedule are formatted as recurEvery: [Frequency as integer][\'Week(s)\'] [Optional comma ' + 'separated list of weekdays Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, ' + 'recurEvery: Week Saturday,Sunday. Monthly schedules are formatted as [Frequency as ' + 'integer][\'Month(s)\'] [Comma separated list of month days] or [Frequency as ' + 'integer][\'Month(s)\'] [Week of Month (First, Second, Third, Fourth, Last)] [Weekday ' + 'Monday-Sunday]. Monthly schedule examples are recurEvery: Month, recurEvery: 2Months, recurEvery: ' + 'Month day23,day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday.') + + with self.argument_context('maintenance configuration delete') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('resource_name', type=str, help='Resource Identifier') + + with self.argument_context('maintenance update list') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') + + with self.argument_context('maintenance update list-parent') as c: + c.argument('resource_group_name', resource_group_name_type) + c.argument('provider_name', type=str, help='Resource provider name') + c.argument('resource_parent_type', type=str, help='Resource parent type') + c.argument('resource_parent_name', type=str, help='Resource parent identifier') + c.argument('resource_type', type=str, help='Resource type') + c.argument('resource_name', type=str, help='Resource identifier') diff --git a/src/maintenance/azext_maintenance/manual/commands.py b/src/maintenance/azext_maintenance/manual/commands.py new file mode 100644 index 00000000000..022fc1cec35 --- /dev/null +++ b/src/maintenance/azext_maintenance/manual/commands.py @@ -0,0 +1,71 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-statements +# pylint: disable=too-many-locals + +from azure.cli.core.commands import CliCommandType + + +def load_command_table(self, _): + + from azext_maintenance.generated._client_factory import cf_public_maintenance_configuration + maintenance_public_maintenance_configuration = CliCommandType( + operations_tmpl='azext_maintenance.vendored_sdks.maintenance.operations._public_maintenance_configuration_opera' + 'tions#PublicMaintenanceConfigurationOperations.{}', + client_factory=cf_public_maintenance_configuration) + with self.command_group('maintenance public-configuration', maintenance_public_maintenance_configuration, + client_factory=cf_public_maintenance_configuration, is_preview=True) as g: + g.custom_command('list', 'maintenance_public_configuration_list') + g.custom_show_command('show', 'maintenance_public_configuration_show') + + from azext_maintenance.generated._client_factory import cf_apply_update + maintenance_apply_update = CliCommandType( + operations_tmpl='azext_maintenance.vendored_sdks.maintenance.operations._apply_update_operations#ApplyUpdateOpe' + 'rations.{}', + client_factory=cf_apply_update) + with self.command_group('maintenance applyupdate', maintenance_apply_update, client_factory=cf_apply_update) as g: + g.custom_show_command('show', 'maintenance_applyupdate_show') + g.custom_command('create', 'maintenance_applyupdate_create') + g.custom_command('update', 'maintenance_applyupdate_update') + g.custom_command('get-parent', 'maintenance_applyupdate_get_parent') + + from azext_maintenance.generated._client_factory import cf_configuration_assignment + maintenance_configuration_assignment = CliCommandType( + operations_tmpl='azext_maintenance.vendored_sdks.maintenance.operations._configuration_assignment_operations#Co' + 'nfigurationAssignmentOperations.{}', + client_factory=cf_configuration_assignment) + with self.command_group('maintenance assignment', maintenance_configuration_assignment, + client_factory=cf_configuration_assignment) as g: + g.custom_command('list', 'maintenance_assignment_list') + g.custom_command('create', 'maintenance_assignment_create') + g.custom_command('update', 'maintenance_assignment_update') + g.custom_command('delete', 'maintenance_assignment_delete', confirmation=True) + g.custom_command('list-parent', 'maintenance_assignment_list_parent') + + from azext_maintenance.generated._client_factory import cf_maintenance_configuration + maintenance_maintenance_configuration = CliCommandType( + operations_tmpl='azext_maintenance.vendored_sdks.maintenance.operations._maintenance_configuration_operations#M' + 'aintenanceConfigurationOperations.{}', + client_factory=cf_maintenance_configuration) + with self.command_group('maintenance configuration', maintenance_maintenance_configuration, + client_factory=cf_maintenance_configuration) as g: + g.custom_command('list', 'maintenance_configuration_list') + g.custom_show_command('show', 'maintenance_configuration_show') + g.custom_command('create', 'maintenance_configuration_create') + g.custom_command('update', 'maintenance_configuration_update') + g.custom_command('delete', 'maintenance_configuration_delete', confirmation=True) + + from azext_maintenance.generated._client_factory import cf_update + maintenance_update = CliCommandType( + operations_tmpl='azext_maintenance.vendored_sdks.maintenance.operations._update_operations#UpdateOperations.{}', + client_factory=cf_update) + with self.command_group('maintenance update', maintenance_update, client_factory=cf_update) as g: + g.custom_command('list', 'maintenance_update_list') + g.custom_command('list-parent', 'maintenance_update_list_parent') diff --git a/src/maintenance/azext_maintenance/manual/tests/__init__.py b/src/maintenance/azext_maintenance/manual/tests/__init__.py new file mode 100644 index 00000000000..c9cfdc73e77 --- /dev/null +++ b/src/maintenance/azext_maintenance/manual/tests/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/maintenance/azext_maintenance/manual/tests/latest/__init__.py b/src/maintenance/azext_maintenance/manual/tests/latest/__init__.py new file mode 100644 index 00000000000..c9cfdc73e77 --- /dev/null +++ b/src/maintenance/azext_maintenance/manual/tests/latest/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/maintenance/azext_maintenance/manual/tests/latest/recordings/test_maintenance.yaml b/src/maintenance/azext_maintenance/manual/tests/latest/recordings/test_maintenance.yaml new file mode 100644 index 00000000000..28ed380e73d --- /dev/null +++ b/src/maintenance/azext_maintenance/manual/tests/latest/recordings/test_maintenance.yaml @@ -0,0 +1,1959 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-02T02:11:33Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '428' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:11:33 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.23.0 + method: GET + uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/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 \"CentOS\": + {\n \"publisher\": \"OpenLogic\",\n \"offer\": \"CentOS\",\n + \ \"sku\": \"7.5\",\n \"version\": \"latest\"\n },\n + \ \"CoreOS\": {\n \"publisher\": \"CoreOS\",\n \"offer\": + \"CoreOS\",\n \"sku\": \"Stable\",\n \"version\": \"latest\"\n + \ },\n \"Debian\": {\n \"publisher\": \"Debian\",\n + \ \"offer\": \"debian-10\",\n \"sku\": \"10\",\n \"version\": + \"latest\"\n },\n \"openSUSE-Leap\": {\n \"publisher\": + \"SUSE\",\n \"offer\": \"openSUSE-Leap\",\n \"sku\": + \"42.3\",\n \"version\": \"latest\"\n },\n \"RHEL\": + {\n \"publisher\": \"RedHat\",\n \"offer\": \"RHEL\",\n + \ \"sku\": \"7-LVM\",\n \"version\": \"latest\"\n },\n + \ \"SLES\": {\n \"publisher\": \"SUSE\",\n \"offer\": + \"SLES\",\n \"sku\": \"15\",\n \"version\": \"latest\"\n + \ },\n \"UbuntuLTS\": {\n \"publisher\": \"Canonical\",\n + \ \"offer\": \"UbuntuServer\",\n \"sku\": \"18.04-LTS\",\n + \ \"version\": \"latest\"\n }\n },\n \"Windows\": + {\n \"Win2019Datacenter\": {\n \"publisher\": \"MicrosoftWindowsServer\",\n + \ \"offer\": \"WindowsServer\",\n \"sku\": \"2019-Datacenter\",\n + \ \"version\": \"latest\"\n },\n \"Win2016Datacenter\": + {\n \"publisher\": \"MicrosoftWindowsServer\",\n \"offer\": + \"WindowsServer\",\n \"sku\": \"2016-Datacenter\",\n \"version\": + \"latest\"\n },\n \"Win2012R2Datacenter\": {\n \"publisher\": + \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\",\n \"sku\": + \"2012-R2-Datacenter\",\n \"version\": \"latest\"\n },\n + \ \"Win2012Datacenter\": {\n \"publisher\": \"MicrosoftWindowsServer\",\n + \ \"offer\": \"WindowsServer\",\n \"sku\": \"2012-Datacenter\",\n + \ \"version\": \"latest\"\n },\n \"Win2008R2SP1\": + {\n \"publisher\": \"MicrosoftWindowsServer\",\n \"offer\": + \"WindowsServer\",\n \"sku\": \"2008-R2-SP1\",\n \"version\": + \"latest\"\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: + - '2501' + content-security-policy: + - default-src 'none'; style-src 'unsafe-inline'; sandbox + content-type: + - text/plain; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:11:34 GMT + etag: + - W/"540044b4084c3c314537f1baa1770f248628b2bc9ba0328f1004c33862e049da" + expires: + - Wed, 02 Sep 2020 02:16:34 GMT + source-age: + - '0' + strict-transport-security: + - max-age=31536000 + vary: + - Authorization,Accept-Encoding + via: + - 1.1 varnish (Varnish/6.0) + - 1.1 varnish + x-cache: + - HIT, HIT + x-cache-hits: + - 2, 1 + x-content-type-options: + - nosniff + x-fastly-request-id: + - 8579b6c0eba58178640b5ab3f76cb4b1406a9551 + x-frame-options: + - deny + x-github-request-id: + - CFDE:4809:5D89DA:6D773C:5F4EF1BC + x-served-by: + - cache-mdw17357-MDW + x-timer: + - S1599012695.534568,VS0,VE118 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks?api-version=2018-01-01 + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:11:34 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: '{"properties": {"template": {"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", "parameters": {"adminPassword": {"type": "securestring", + "metadata": {"description": "Secure adminPassword"}}}, "variables": {}, "resources": + [{"name": "clitestvmssVNET", "type": "Microsoft.Network/virtualNetworks", "location": + "westus", "apiVersion": "2015-06-15", "dependsOn": [], "tags": {}, "properties": + {"addressSpace": {"addressPrefixes": ["10.0.0.0/16"]}, "subnets": [{"name": + "clitestvmssSubnet", "properties": {"addressPrefix": "10.0.0.0/24"}}]}}, {"apiVersion": + "2018-01-01", "type": "Microsoft.Network/publicIPAddresses", "name": "clitestvmssLBPublicIP", + "location": "westus", "tags": {}, "dependsOn": [], "properties": {"publicIPAllocationMethod": + "Dynamic"}}, {"type": "Microsoft.Network/loadBalancers", "name": "clitestvmssLB", + "location": "westus", "tags": {}, "apiVersion": "2018-01-01", "dependsOn": ["Microsoft.Network/virtualNetworks/clitestvmssVNET", + "Microsoft.Network/publicIpAddresses/clitestvmssLBPublicIP"], "properties": + {"backendAddressPools": [{"name": "clitestvmssLBBEPool"}], "inboundNatPools": + [{"name": "clitestvmssLBNatPool", "properties": {"frontendIPConfiguration": + {"id": "[concat(resourceId(''Microsoft.Network/loadBalancers'', ''clitestvmssLB''), + ''/frontendIPConfigurations/'', ''loadBalancerFrontEnd'')]"}, "protocol": "tcp", + "frontendPortRangeStart": "50000", "frontendPortRangeEnd": "50119", "backendPort": + 3389}}], "frontendIPConfigurations": [{"name": "loadBalancerFrontEnd", "properties": + {"publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/clitestvmssLBPublicIP"}}}]}}, + {"type": "Microsoft.Compute/virtualMachineScaleSets", "name": "clitestvmss", + "location": "westus", "tags": {}, "apiVersion": "2020-06-01", "dependsOn": ["Microsoft.Network/virtualNetworks/clitestvmssVNET", + "Microsoft.Network/loadBalancers/clitestvmssLB"], "sku": {"name": "Standard_DS1_v2", + "capacity": 1}, "properties": {"overprovision": true, "upgradePolicy": {"mode": + "manual"}, "virtualMachineProfile": {"storageProfile": {"osDisk": {"createOption": + "FromImage", "caching": "ReadWrite", "managedDisk": {"storageAccountType": null}}, + "imageReference": {"publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "sku": "2016-Datacenter", "version": "latest"}, "dataDisks": [{"lun": 0, "managedDisk": + {"storageAccountType": null}, "createOption": "empty", "diskSizeGB": 2}]}, "networkProfile": + {"networkInterfaceConfigurations": [{"name": "clite3953Nic", "properties": {"primary": + "true", "ipConfigurations": [{"name": "clite3953IPConfig", "properties": {"subnet": + {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET/subnets/clitestvmssSubnet"}, + "loadBalancerBackendAddressPools": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB/backendAddressPools/clitestvmssLBBEPool"}], + "loadBalancerInboundNatPools": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB/inboundNatPools/clitestvmssLBNatPool"}]}}]}}]}, + "osProfile": {"computerNamePrefix": "clite3953", "adminUsername": "azureuser", + "adminPassword": "[parameters(''adminPassword'')]"}}, "singlePlacementGroup": + null}}], "outputs": {"VMSS": {"type": "object", "value": "[reference(resourceId(''Microsoft.Compute/virtualMachineScaleSets'', + ''clitestvmss''),providers(''Microsoft.Compute'', ''virtualMachineScaleSets'').apiVersions[0])]"}}}, + "parameters": {"adminPassword": {"value": "PasswordCLIMaintenanceRP8!"}}, "mode": + "Incremental"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss create + Connection: + - keep-alive + Content-Length: + - '4085' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Resources/deployments/vmss_deploy_kgiZuXZn7diwXlq8NQwT2xBeVr0t8Hqn","name":"vmss_deploy_kgiZuXZn7diwXlq8NQwT2xBeVr0t8Hqn","type":"Microsoft.Resources/deployments","properties":{"templateHash":"2606780367408474299","parameters":{"adminPassword":{"type":"SecureString"}},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2020-09-02T02:11:36.2685717Z","duration":"PT0.6467681S","correlationId":"d812fc6b-de40-4289-b657-d25bb76609ef","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"virtualNetworks","locations":["westus"]},{"resourceType":"publicIPAddresses","locations":["westus"]},{"resourceType":"loadBalancers","locations":["westus"]}]},{"namespace":"Microsoft.Compute","resourceTypes":[{"resourceType":"virtualMachineScaleSets","locations":["westus"]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"clitestvmssVNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/clitestvmssLBPublicIP","resourceType":"Microsoft.Network/publicIPAddresses","resourceName":"clitestvmssLBPublicIP"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB","resourceType":"Microsoft.Network/loadBalancers","resourceName":"clitestvmssLB"},{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"clitestvmssVNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB","resourceType":"Microsoft.Network/loadBalancers","resourceName":"clitestvmssLB"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss","resourceType":"Microsoft.Compute/virtualMachineScaleSets","resourceName":"clitestvmss"}]}}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/vmss_deploy_kgiZuXZn7diwXlq8NQwT2xBeVr0t8Hqn/operationStatuses/08586025941898558427?api-version=2020-06-01 + cache-control: + - no-cache + content-length: + - '2803' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:11:35 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:12:06 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:12:36 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:13:06 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:13:36 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:14:06 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:14:36 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:15:07 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:15: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: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:16:06 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:16:36 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:17:07 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:17: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: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025941898558427?api-version=2020-06-01 + response: + body: + string: '{"status":"Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:07 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Resources/deployments/vmss_deploy_kgiZuXZn7diwXlq8NQwT2xBeVr0t8Hqn","name":"vmss_deploy_kgiZuXZn7diwXlq8NQwT2xBeVr0t8Hqn","type":"Microsoft.Resources/deployments","properties":{"templateHash":"2606780367408474299","parameters":{"adminPassword":{"type":"SecureString"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2020-09-02T02:18:05.3398615Z","duration":"PT6M29.7180579S","correlationId":"d812fc6b-de40-4289-b657-d25bb76609ef","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"virtualNetworks","locations":["westus"]},{"resourceType":"publicIPAddresses","locations":["westus"]},{"resourceType":"loadBalancers","locations":["westus"]}]},{"namespace":"Microsoft.Compute","resourceTypes":[{"resourceType":"virtualMachineScaleSets","locations":["westus"]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"clitestvmssVNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/clitestvmssLBPublicIP","resourceType":"Microsoft.Network/publicIPAddresses","resourceName":"clitestvmssLBPublicIP"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB","resourceType":"Microsoft.Network/loadBalancers","resourceName":"clitestvmssLB"},{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"clitestvmssVNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB","resourceType":"Microsoft.Network/loadBalancers","resourceName":"clitestvmssLB"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss","resourceType":"Microsoft.Compute/virtualMachineScaleSets","resourceName":"clitestvmss"}],"outputs":{"vmss":{"type":"Object","value":{"singlePlacementGroup":true,"upgradePolicy":{"mode":"Manual"},"virtualMachineProfile":{"osProfile":{"computerNamePrefix":"clite3953","adminUsername":"azureuser","windowsConfiguration":{"provisionVMAgent":true,"enableAutomaticUpdates":true},"secrets":[],"allowExtensionOperations":true,"requireGuestProvisionSignal":true},"storageProfile":{"osDisk":{"createOption":"FromImage","caching":"ReadWrite","managedDisk":{"storageAccountType":"Premium_LRS"},"diskSizeGB":127},"imageReference":{"publisher":"MicrosoftWindowsServer","offer":"WindowsServer","sku":"2016-Datacenter","version":"latest"},"dataDisks":[{"lun":0,"createOption":"Empty","caching":"None","managedDisk":{"storageAccountType":"Premium_LRS"},"diskSizeGB":2}]},"networkProfile":{"networkInterfaceConfigurations":[{"name":"clite3953Nic","properties":{"primary":true,"enableAcceleratedNetworking":false,"dnsSettings":{"dnsServers":[]},"enableIPForwarding":false,"ipConfigurations":[{"name":"clite3953IPConfig","properties":{"subnet":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET/subnets/clitestvmssSubnet"},"privateIPAddressVersion":"IPv4","loadBalancerBackendAddressPools":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB/backendAddressPools/clitestvmssLBBEPool"}],"loadBalancerInboundNatPools":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB/inboundNatPools/clitestvmssLBNatPool"}]}}]}}]},"extensionProfile":{"extensions":[{"name":"Microsoft.Azure.Geneva.GenevaMonitoring","properties":{"autoUpgradeMinorVersion":true,"publisher":"Microsoft.Azure.Geneva","type":"GenevaMonitoring","typeHandlerVersion":"2.0","settings":{}}}]}},"provisioningState":"Succeeded","overprovision":true,"doNotRunExtensionsOnOverprovisionedVMs":false,"uniqueId":"5cf122fd-355d-4adc-b07d-3f6484fc07d7"}}},"outputResources":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/clitestvmssLBPublicIP"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET"}]}}' + headers: + cache-control: + - no-cache + content-length: + - '5948' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:07 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: '{"location": "westus2", "properties": {"namespace": "Microsoft.Maintenance", + "maintenanceScope": "OSImage", "visibility": "Custom", "maintenanceWindow": + {"startDateTime": "2020-09-30 08:00", "expirationDateTime": "9999-12-31 00:00", + "duration": "05:00", "timeZone": "Pacific Standard Time", "recurEvery": "Day"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - maintenance configuration create + Connection: + - keep-alive + Content-Length: + - '313' + Content-Type: + - application/json + ParameterSetName: + - --location --maintenance-scope --maintenance-window-duration --maintenance-window-expiration-date-time + --maintenance-window-recur-every --maintenance-window-start-date-time --maintenance-window-time-zone + --namespace --visibility --resource-group --resource-name + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"westus2\",\r\n \"tags\": {},\r\n \"properties\": + {\r\n \"namespace\": \"Microsoft.Maintenance\",\r\n \"extensionProperties\": + {},\r\n \"maintenanceScope\": \"OSImage\",\r\n \"maintenanceWindow\": + {\r\n \"startDateTime\": \"2020-09-30 08:00\",\r\n \"expirationDateTime\": + \"9999-12-31 00:00\",\r\n \"duration\": \"05:00\",\r\n \"timeZone\": + \"Pacific Standard Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n + \ \"visibility\": \"Custom\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1\",\r\n + \ \"name\": \"configuration1\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '755' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:09 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance configuration show + Connection: + - keep-alive + ParameterSetName: + - --resource-group --resource-name + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"westus2\",\r\n \"tags\": {},\r\n \"properties\": + {\r\n \"namespace\": \"Microsoft.Maintenance\",\r\n \"extensionProperties\": + {},\r\n \"maintenanceScope\": \"OSImage\",\r\n \"maintenanceWindow\": + {\r\n \"startDateTime\": \"2020-09-30 08:00\",\r\n \"expirationDateTime\": + \"9999-12-31 00:00\",\r\n \"duration\": \"05:00\",\r\n \"timeZone\": + \"Pacific Standard Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n + \ \"visibility\": \"Custom\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/microsoft.maintenance/maintenanceconfigurations/configuration1\",\r\n + \ \"name\": \"configuration1\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '755' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:09 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance configuration list + Connection: + - keep-alive + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/maintenanceConfigurations?api-version=2020-07-01-preview + response: + body: + string: '{"value":[{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedkoreacentral","name":"policydgnsrsharedkoreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedkoreasouth","name":"policydgnsrsharedkoreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedjapaneast","name":"policydgnsrsharedjapaneast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedsouthcentralus","name":"policydgnsrsharedsouthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsoutH/providers/Microsoft.Maintenance/maintenanceConfigurations/configsotaneja","name":"configsotaneja","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouTH/providers/Microsoft.Maintenance/maintenanceConfigurations/configsotaneja","name":"configsotaneja","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedeastasia","name":"policydgnsrsharedeastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedwestindia","name":"policydgnsrsharedwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliaeast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedaustraliaeast","name":"policydgnsrsharedaustraliaeast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedsoutheastasia","name":"policydgnsrsharedsoutheastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedaustraliasoutheast","name":"policydgnsrsharedaustraliasoutheast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedcentralus","name":"policydgnsrsharedcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedcanadacentral","name":"policydgnsrsharedcanadacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedeastus","name":"policydgnsrsharedeastus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus2/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedwestus2","name":"policydgnsrsharedwestus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedbrazilsouth","name":"policydgnsrsharedbrazilsouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedeastus2","name":"policydgnsrsharedeastus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharednorthcentralus","name":"policydgnsrsharednorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnortheurope/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharednortheurope","name":"policydgnsrsharednortheurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrshareduksouth","name":"policydgnsrshareduksouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"ukwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrukwest/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedukwest","name":"policydgnsrsharedukwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedfrancecentral","name":"policydgnsrsharedfrancecentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwesteurope/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedwesteurope","name":"policydgnsrsharedwesteurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedsouthafricanorth","name":"policydgnsrsharedsouthafricanorth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedaustraliacentral","name":"policydgnsrsharedaustraliacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever15","name":"configjusiever15","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever","name":"configjusiever","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever","name":"configjusiever","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadaeast/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever","name":"configjusiever","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pseastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/psconfigeastasia","name":"psconfigeastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clinorthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/clinorthusconfiguration","name":"clinorthusconfiguration","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clieastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/clieastasiaconfigurationdh","name":"clieastasiaconfigurationdh","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clieastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/clieastasiaconfigurationdng","name":"clieastasiaconfigurationdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pseastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/pseastasiaconfigurationdh","name":"pseastasiaconfigurationdh","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pseastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/pseastasiaconfigurationdng","name":"pseastasiaconfigurationdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhsouthcentralus","name":"policydgnsrdhsouthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japanwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapanwest/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhjapanwest","name":"policydgnsrdhjapanwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhjapaneast","name":"policydgnsrdhjapaneast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhkoreasouth","name":"policydgnsrdhkoreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhwestindia","name":"policydgnsrdhwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhaustraliasoutheast","name":"policydgnsrdhaustraliasoutheast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhaustraliacentral","name":"policydgnsrdhaustraliacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrfullwestindia","name":"policydgnsrfullwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliaeast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhsoutheastasia","name":"policydgnsrdhsoutheastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhfrancecentral","name":"policydgnsrdhfrancecentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhcanadacentral","name":"policydgnsrdhcanadacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrfullnorthcentralus","name":"policydgnsrfullnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwesteurope/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhwesteurope","name":"policydgnsrdhwesteurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrfullbrazilsouth","name":"policydgnsrfullbrazilsouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus2/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhwestus2","name":"policydgnsrdhwestus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhnorthcentralus","name":"policydgnsrdhnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhuksouth","name":"policydgnsrdhuksouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnortheurope/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedsouthcentralus","name":"policydgnsrsharedsouthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharednorthcentralus","name":"policydgnsrsharednorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedaustraliasoutheast","name":"policydgnsrsharedaustraliasoutheast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedaustraliacentral","name":"policydgnsrsharedaustraliacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwesteurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedwesteurope","name":"policydgnsrsharedwesteurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedwestus2","name":"policydgnsrsharedwestus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedbrazilsouth","name":"policydgnsrsharedbrazilsouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedsouthafricanorth","name":"policydgnsrsharedsouthafricanorth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrshareduksouth","name":"policydgnsrshareduksouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedcentralus","name":"policydgnsrsharedcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedeastus2","name":"policydgnsrsharedeastus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnortheurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharednortheurope","name":"policydgnsrsharednortheurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedkoreasouth","name":"policydgnsrsharedkoreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedeastus","name":"policydgnsrsharedeastus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedwestindia","name":"policydgnsrsharedwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedeastasia","name":"policydgnsrsharedeastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedcanadacentral","name":"policydgnsrsharedcanadacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliaeast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedaustraliaeast","name":"policydgnsrsharedaustraliaeast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedjapaneast","name":"policydgnsrsharedjapaneast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedkoreacentral","name":"policydgnsrsharedkoreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedfrancecentral","name":"policydgnsrsharedfrancecentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"ukwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrukwest/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedukwest","name":"policydgnsrsharedukwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedsoutheastasia","name":"policydgnsrsharedsoutheastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dbgkoreasouth/providers/microsoft.maintenance/maintenanceconfigurations/defaultmaintenanceconfiguration-koreasouth","name":"defaultMaintenanceConfiguration-koreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dbgkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/defaultmaintenanceconfiguration-koreacentral","name":"defaultMaintenanceConfiguration-koreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testatrg/providers/microsoft.maintenance/maintenanceconfigurations/defaultmcwestus2","name":"defaultmcwestus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testatrg/providers/microsoft.maintenance/maintenanceconfigurations/defaultmcnorthcentralus","name":"defaultmcnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/psnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/defaultmcnorthcentralus","name":"defaultmcnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testatrg/providers/microsoft.maintenance/maintenanceconfigurations/defaultmaintenanceconfiguration","name":"defaultMaintenanceConfiguration","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/psnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/defaultmaintenanceconfiguration","name":"defaultMaintenanceConfiguration","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clinorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/portaltestconfig","name":"portaltestconfig","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/netsdknorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/netsdknorthcentralusconfigurationfull","name":"netsdknorthcentralusconfigurationfull","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/abtest/providers/microsoft.maintenance/maintenanceconfigurations/testconfigfromportal","name":"testconfigfromportal","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{"tag1":"bugbash"},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/portalbugbash/providers/microsoft.maintenance/maintenanceconfigurations/scenario1","name":"scenario1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/defaultmaintenanceconfiguration-koreacentral","name":"defaultMaintenanceConfiguration-koreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwesteurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnortheurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/psnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/psnorthusconfigurationfull","name":"psnorthusconfigurationfull","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pseastasia/providers/microsoft.maintenance/maintenanceconfigurations/pseastasiaconfigurationdh","name":"pseastasiaconfigurationdh","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Resource","maintenanceWindow":{"startDateTime":"0001-01-01 + 00:00","expirationDateTime":"0001-01-01 00:00","duration":"05:00","timeZone":"India + Standard Time","recurEvery":"0"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/afecflagkoreasouth","name":"afecFlagKoreaSouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Resource","maintenanceWindow":{"startDateTime":"0001-01-01 + 00:00","expirationDateTime":"0001-01-01 00:00","duration":"05:00","timeZone":"Eastern + Standard Time","recurEvery":"0"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/afecflagcanada","name":"afecFlagCanada","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"WESTEUROPE","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Resource","maintenanceWindow":{"startDateTime":"0001-01-01 + 00:00","expirationDateTime":"0001-01-01 00:00","duration":"05:00","timeZone":"Central + Europe standard Time","recurEvery":"0"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/afecflageurope","name":"afecFlagEurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Resource, + InResource","maintenanceWindow":{"startDateTime":"0001-01-01 00:00","expirationDateTime":"0001-01-01 + 00:00","duration":"05:00","timeZone":"Central standard Time","recurEvery":"0"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/afecflagus3","name":"afecFlagUS3","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/microsoft.maintenance/maintenanceconfigurations/testargconfiguration1","name":"testARGConfiguration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-08-09 + 20:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"week sunday,monday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/hosttestingscope","name":"HostTestingscope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/testpowershellconfig","name":"testpowershellconfig","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/soniapowershell","name":"soniapowershell","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps8596/providers/microsoft.maintenance/maintenanceconfigurations/ps5164","name":"ps5164","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps9969/providers/microsoft.maintenance/maintenanceconfigurations/ps227","name":"ps227","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps4851/providers/microsoft.maintenance/maintenanceconfigurations/ps132","name":"ps132","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps5895/providers/microsoft.maintenance/maintenanceconfigurations/ps4366","name":"ps4366","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps3332/providers/microsoft.maintenance/maintenanceconfigurations/ps404","name":"ps404","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps9548/providers/microsoft.maintenance/maintenanceconfigurations/ps567","name":"ps567","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps3221/providers/microsoft.maintenance/maintenanceconfigurations/ps5992","name":"ps5992","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps9573/providers/microsoft.maintenance/maintenanceconfigurations/ps575","name":"ps575","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{"publicMaintenanceConfigurationId":"ps4509","isAvailable":"true"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps7939/providers/microsoft.maintenance/maintenanceconfigurations/ps4509","name":"ps4509","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{"isAvailable":"true","publicMaintenanceConfigurationId":"randomc"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/randogroup/providers/microsoft.maintenance/maintenanceconfigurations/randomc","name":"randomc","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{"isAvailable":"true","publicMaintenanceConfigurationId":"soniaps"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/randogroup/providers/microsoft.maintenance/maintenanceconfigurations/soniaps","name":"soniaps","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Month Third Sunday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitests5f7aik4kielzdkgwmkwjyxpjzokzgfpgfivhyj7wne4w7wl6shvtm3xsunnzt76rcet/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{"publicMaintenanceConfigurationId":"configurationsql","isAvailable":"true"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/configurationsql","name":"configurationsql","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Month Third Sunday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitestbjnoqkenrf5azew3kgnabym44odg7prhbgld62256xzyrysux4j7uag3cjosjnh4vr6o/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Month Third Sunday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest4m7giv6zpf3q5vef7j3msfh3nsgpzqdfsh4sh3daxxvfrnmb6guxwefrdjrgxeo3ojvw/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Month Third Sunday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitestqm2p2j4y45bdhruz5u22egugnh2mbsfo7ycpzsy33taklfoaa7u4jte2dz2nghrd56oq/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-09-01 + 00:00","expirationDateTime":"2021-08-04 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/pstest","name":"pstest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japanwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapanwest/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhjapanwest","name":"policydgnsrdhjapanwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Month Third Sunday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitestf5ivvpypbhqgzkft234pqqqm3rmaueztclxupbsi4it2tknktbbt5dogcp74ybrjjnmd/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhsouthindia","name":"policydgnsrdhsouthindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhsoutheastasia","name":"policydgnsrdhsoutheastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"ukwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrukwest/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhsouthcentralus","name":"policydgnsrdhsouthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhuksouth","name":"policydgnsrdhuksouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhbrazilsouth","name":"policydgnsrdhbrazilsouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfulljapaneast","name":"policydgnsrfulljapaneast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullsouthindia","name":"policydgnsrfullsouthindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwesteurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhwesteurope","name":"policydgnsrdhwesteurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhcanadacentral","name":"policydgnsrdhcanadacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhkoreacentral","name":"policydgnsrdhkoreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhsouthafricanorth","name":"policydgnsrdhsouthafricanorth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"ukwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrukwest/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhukwest","name":"policydgnsrdhukwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdheastasia","name":"policydgnsrdheastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhwestus","name":"policydgnsrdhwestus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliaeast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullkoreasouth","name":"policydgnsrfullkoreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhjapaneast","name":"policydgnsrdhjapaneast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullaustraliasoutheast","name":"policydgnsrfullaustraliasoutheast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullbrazilsouth","name":"policydgnsrfullbrazilsouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhnorthcentralus","name":"policydgnsrdhnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdheastus2","name":"policydgnsrdheastus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadaeast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhcanadaeast","name":"policydgnsrdhcanadaeast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"ukwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrukwest/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullukwest","name":"policydgnsrfullukwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullnorthcentralus","name":"policydgnsrfullnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnortheurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhnortheurope","name":"policydgnsrdhnortheurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhkoreasouth","name":"policydgnsrdhkoreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdheastus","name":"policydgnsrdheastus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullwestindia","name":"policydgnsrfullwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullkoreacentral","name":"policydgnsrfullkoreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentralindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhcentralindia","name":"policydgnsrdhcentralindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhaustraliasoutheast","name":"policydgnsrdhaustraliasoutheast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhwestus2","name":"policydgnsrdhwestus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhaustraliacentral","name":"policydgnsrdhaustraliacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullcanadacentral","name":"policydgnsrfullcanadacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfulluksouth","name":"policydgnsrfulluksouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhfrancecentral","name":"policydgnsrdhfrancecentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhwestindia","name":"policydgnsrdhwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhcentralus","name":"policydgnsrdhcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedeastus2euap","name":"policydgnsrsharedeastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedcentraluseuap","name":"policydgnsrsharedcentraluseuap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever","name":"configjusiever","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/Microsoft.Maintenance/maintenanceConfigurations/configshvenk","name":"configshvenk","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdheastus2euap","name":"policydgnsrdheastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrfulleastus2euap","name":"policydgnsrfulleastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedcentraluseuap","name":"policydgnsrsharedcentraluseuap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/Microsoft.Maintenance/maintenanceConfigurations/testARGConfiguration3","name":"testARGConfiguration3","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/Microsoft.Maintenance/maintenanceConfigurations/gautamdPolicy","name":"gautamdPolicy","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfulleastus2euap","name":"policydgnsrfulleastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedeastus2euap","name":"policydgnsrsharedeastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdheastus2euap","name":"policydgnsrdheastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhcentraluseuap","name":"policydgnsrdhcentraluseuap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/microsoft.maintenance/maintenanceconfigurations/testargconfiguration9","name":"testARGConfiguration9","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{"publicMaintenanceConfigurationId":"soniasql","isAvailable":"false"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-08-19 + 03:00","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/soniasql","name":"soniasql","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{"publicMaintenanceConfigurationId":"sqlcli","isAvailable":"true"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/sqlcli","name":"sqlcli","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{"publicMaintenanceConfigurationId":"[''sqlcliv2'']","isAvailable":"[''true'']"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/sqlcliv2","name":"sqlcliv2","type":"Microsoft.Maintenance/maintenanceConfigurations"}]}' + headers: + cache-control: + - no-cache + content-length: + - '85789' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:10 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-original-request-ids: + - 98fe099e-755b-425c-a675-994a4e539d37 + - 98fe099e-755b-425c-a675-994a4e539d37 + status: + code: 200 + message: OK +- request: + body: '{"location": "westus2", "properties": {"namespace": "Microsoft.Maintenance", + "maintenanceScope": "OSImage", "visibility": "Custom", "maintenanceWindow": + {"startDateTime": "2020-09-30 08:00", "expirationDateTime": "9999-12-31 00:00", + "duration": "05:00", "timeZone": "Pacific Standard Time", "recurEvery": "Month + Third Sunday"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - maintenance configuration update + Connection: + - keep-alive + Content-Length: + - '328' + Content-Type: + - application/json + ParameterSetName: + - --location --maintenance-scope --maintenance-window-duration --maintenance-window-expiration-date-time + --maintenance-window-recur-every --maintenance-window-start-date-time --maintenance-window-time-zone + --namespace --visibility --resource-group --resource-name + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: PATCH + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"westus2\",\r\n \"tags\": {},\r\n \"properties\": + {\r\n \"namespace\": \"Microsoft.Maintenance\",\r\n \"extensionProperties\": + {},\r\n \"maintenanceScope\": \"OSImage\",\r\n \"maintenanceWindow\": + {\r\n \"startDateTime\": \"2020-09-30 08:00\",\r\n \"expirationDateTime\": + \"9999-12-31 00:00\",\r\n \"duration\": \"05:00\",\r\n \"timeZone\": + \"Pacific Standard Time\",\r\n \"recurEvery\": \"Month Third Sunday\"\r\n + \ },\r\n \"visibility\": \"Custom\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/microsoft.maintenance/maintenanceconfigurations/configuration1\",\r\n + \ \"name\": \"configuration1\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '770' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:12 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance assignment create + Connection: + - keep-alive + ParameterSetName: + - --maintenance-configuration-id --provider-name --resource-group --resource-name + --name --resource-type + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-02T02:11:33Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '428' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:12 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: '{"location": "westus", "properties": {"maintenanceConfigurationId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - maintenance assignment create + Connection: + - keep-alive + Content-Length: + - '287' + Content-Type: + - application/json + ParameterSetName: + - --maintenance-configuration-id --provider-name --resource-group --resource-name + --name --resource-type + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/configurationAssignments/configuration1?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"maintenanceConfigurationId\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1\",\r\n + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/microsoft.compute/virtualmachinescalesets/clitestvmss\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/microsoft.compute/virtualmachinescalesets/clitestvmss/providers/Microsoft.Maintenance/configurationAssignments/configuration1\",\r\n + \ \"name\": \"configuration1\",\r\n \"type\": \"Microsoft.Maintenance/configurationAssignments\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '916' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:14 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance assignment list + Connection: + - keep-alive + ParameterSetName: + - --provider-name --resource-group --resource-name --resource-type + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/configurationAssignments?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"maintenanceConfigurationId\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/configurationAssignments/configuration1\",\r\n + \ \"name\": \"configuration1\",\r\n \"type\": \"Microsoft.Maintenance/configurationAssignments\"\r\n + \ }\r\n ]\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '719' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:14 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance public-configuration show + Connection: + - keep-alive + ParameterSetName: + - --resource-name + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/sql2?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": + {\r\n \"extensionProperties\": {\r\n \"publicMaintenanceConfigurationId\": + \"sql2\",\r\n \"isAvailable\": \"true\"\r\n },\r\n \"maintenanceScope\": + \"SQLDB\",\r\n \"maintenanceWindow\": {\r\n \"startDateTime\": \"2020-08-12 + 03:00\",\r\n \"expirationDateTime\": \"9999-12-31 23:59\",\r\n \"duration\": + \"05:00\",\r\n \"timeZone\": \"Pacific Standard Time\",\r\n \"recurEvery\": + \"Day\"\r\n },\r\n \"visibility\": \"Public\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/smdtest/providers/microsoft.maintenance/maintenanceconfigurations/sql2\",\r\n + \ \"name\": \"sql2\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '712' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:16 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance public-configuration list + Connection: + - keep-alive + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"value\": [\r\n {\r\n \"location\": \"eastus2euap\",\r\n + \ \"tags\": {},\r\n \"properties\": {\r\n \"extensionProperties\": + {\r\n \"publicMaintenanceConfigurationId\": \"sql2\",\r\n \"isAvailable\": + \"true\"\r\n },\r\n \"maintenanceScope\": \"SQLDB\",\r\n \"maintenanceWindow\": + {\r\n \"startDateTime\": \"2020-08-12 03:00\",\r\n \"expirationDateTime\": + \"9999-12-31 23:59\",\r\n \"duration\": \"05:00\",\r\n \"timeZone\": + \"Pacific Standard Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n + \ \"visibility\": \"Public\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/smdtest/providers/microsoft.maintenance/maintenanceconfigurations/sql2\",\r\n + \ \"name\": \"sql2\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n + \ },\r\n {\r\n \"location\": \"eastus2euap\",\r\n \"tags\": + {},\r\n \"properties\": {\r\n \"extensionProperties\": {\r\n \"publicMaintenanceConfigurationId\": + \"randomc\",\r\n \"isAvailable\": \"true\"\r\n },\r\n \"maintenanceScope\": + \"SQLDB\",\r\n \"maintenanceWindow\": {\r\n \"startDateTime\": + \"2020-08-13 03:00\",\r\n \"expirationDateTime\": \"9999-12-31 23:59\",\r\n + \ \"duration\": \"05:00\",\r\n \"timeZone\": \"Pacific Standard + Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n \"visibility\": + \"Public\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/smdtest/providers/microsoft.maintenance/maintenanceconfigurations/randomc\",\r\n + \ \"name\": \"randomc\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n + \ },\r\n {\r\n \"location\": \"eastus2euap\",\r\n \"tags\": + {},\r\n \"properties\": {\r\n \"namespace\": \"Microsoft.Maintenance\",\r\n + \ \"extensionProperties\": {\r\n \"publicMaintenanceConfigurationId\": + \"sqlcli\",\r\n \"isAvailable\": \"true\"\r\n },\r\n \"maintenanceScope\": + \"SQLDB\",\r\n \"maintenanceWindow\": {\r\n \"startDateTime\": + \"2020-09-30 08:00\",\r\n \"expirationDateTime\": \"9999-12-31 00:00\",\r\n + \ \"duration\": \"05:00\",\r\n \"timeZone\": \"Pacific Standard + Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n \"visibility\": + \"Public\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/sqlcli\",\r\n + \ \"name\": \"sqlcli\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n + \ }\r\n ]\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '2497' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:18 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance update list + Connection: + - keep-alive + ParameterSetName: + - --provider-name --resource-group --resource-name --resource-type + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/updates?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"value\": []\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '19' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:18 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance applyupdate create + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --provider-name --resource-group --resource-name --resource-type + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/applyUpdates/default?api-version=2020-07-01-preview + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:19 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance applyupdate show + Connection: + - keep-alive + ParameterSetName: + - --name --provider-name --resource-group --resource-name --resource-type + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/applyUpdates/default?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"properties\": {\r\n \"status\": \"Completed\",\r\n \"resourceId\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss\",\r\n + \ \"lastUpdateTime\": \"0001-01-01T00:00:00\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/applyUpdates/default\",\r\n + \ \"name\": \"default\",\r\n \"type\": \"Microsoft.Maintenance/applyUpdates\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '673' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:20 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance assignment delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --name --provider-name --resource-group --resource-name --resource-type --yes + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/configurationAssignments/configuration1?api-version=2020-07-01-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 02 Sep 2020 02:18:21 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance configuration delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --resource-group --resource-name --yes + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1?api-version=2020-07-01-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 02 Sep 2020 02:18:23 GMT + expires: + - '-1' + pragma: + - no-cache + 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: '{"location": "eastus2euap", "properties": {"namespace": "Microsoft.Maintenance", + "extensionProperties": {"publicMaintenanceConfigurationId": "sqlcli", "isAvailable": + "true"}, "maintenanceScope": "SQLDB", "visibility": "Public", "maintenanceWindow": + {"startDateTime": "2020-09-30 08:00", "expirationDateTime": "9999-12-31 00:00", + "duration": "05:00", "timeZone": "Pacific Standard Time", "recurEvery": "Day"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - maintenance configuration create + Connection: + - keep-alive + Content-Length: + - '409' + Content-Type: + - application/json + ParameterSetName: + - --location --maintenance-scope --maintenance-window-duration --maintenance-window-expiration-date-time + --maintenance-window-recur-every --maintenance-window-start-date-time --maintenance-window-time-zone + --namespace --visibility --resource-group --resource-name --extension-properties + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/sqlcli?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": + {\r\n \"namespace\": \"Microsoft.Maintenance\",\r\n \"extensionProperties\": + {\r\n \"publicMaintenanceConfigurationId\": \"sqlcli\",\r\n \"isAvailable\": + \"true\"\r\n },\r\n \"maintenanceScope\": \"SQLDB\",\r\n \"maintenanceWindow\": + {\r\n \"startDateTime\": \"2020-09-30 08:00\",\r\n \"expirationDateTime\": + \"9999-12-31 00:00\",\r\n \"duration\": \"05:00\",\r\n \"timeZone\": + \"Pacific Standard Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n + \ \"visibility\": \"Public\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/sqlcli\",\r\n + \ \"name\": \"sqlcli\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '829' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:25 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance configuration delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --resource-group --resource-name --yes + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/sqlcli?api-version=2020-07-01-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 02 Sep 2020 02:18:26 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - vmss delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-compute/13.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss?api-version=2020-06-01 + response: + body: + string: '' + headers: + azure-asyncnotification: + - Enabled + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus/operations/7932b62f-846d-46ae-a9b7-20a8853c8c11?api-version=2020-06-01 + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 02 Sep 2020 02:18:27 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus/operations/7932b62f-846d-46ae-a9b7-20a8853c8c11?monitor=true&api-version=2020-06-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-resource: + - Microsoft.Compute/DeleteVMScaleSet3Min;79,Microsoft.Compute/DeleteVMScaleSet30Min;398,Microsoft.Compute/VMScaleSetBatchedVMRequests5Min;1198,Microsoft.Compute/VmssQueuedVMOperations;4798 + x-ms-ratelimit-remaining-subscription-deletes: + - '14999' + x-ms-request-charge: + - '2' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss delete + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-compute/13.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus/operations/7932b62f-846d-46ae-a9b7-20a8853c8c11?api-version=2020-06-01 + response: + body: + string: "{\r\n \"startTime\": \"2020-09-02T02:18:27.5039331+00:00\",\r\n \"status\": + \"InProgress\",\r\n \"name\": \"7932b62f-846d-46ae-a9b7-20a8853c8c11\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '134' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:37 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/GetOperation3Min;14995,Microsoft.Compute/GetOperation30Min;29979 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss delete + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-compute/13.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus/operations/7932b62f-846d-46ae-a9b7-20a8853c8c11?api-version=2020-06-01 + response: + body: + string: "{\r\n \"startTime\": \"2020-09-02T02:18:27.5039331+00:00\",\r\n \"status\": + \"InProgress\",\r\n \"name\": \"7932b62f-846d-46ae-a9b7-20a8853c8c11\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '134' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:18:48 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/GetOperation3Min;14994,Microsoft.Compute/GetOperation30Min;29978 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss delete + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-compute/13.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus/operations/7932b62f-846d-46ae-a9b7-20a8853c8c11?api-version=2020-06-01 + response: + body: + string: "{\r\n \"startTime\": \"2020-09-02T02:18:27.5039331+00:00\",\r\n \"endTime\": + \"2020-09-02T02:18:57.4728431+00:00\",\r\n \"status\": \"Succeeded\",\r\n + \ \"name\": \"7932b62f-846d-46ae-a9b7-20a8853c8c11\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '184' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:19:18 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/GetOperation3Min;14992,Microsoft.Compute/GetOperation30Min;29976 + status: + code: 200 + message: OK +version: 1 diff --git a/src/maintenance/azext_maintenance/manual/tests/latest/test_maintenance_scenario.py b/src/maintenance/azext_maintenance/manual/tests/latest/test_maintenance_scenario.py new file mode 100644 index 00000000000..9c614b036bd --- /dev/null +++ b/src/maintenance/azext_maintenance/manual/tests/latest/test_maintenance_scenario.py @@ -0,0 +1,191 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import os +from azure.cli.testsdk import ScenarioTest +from azure.cli.testsdk import ResourceGroupPreparer + + +def setup(test, rg): + test.cmd('az vmss create -n "clitestvmss" -g "{rg}" --instance-count 1 --image "Win2016Datacenter" --data-disk-sizes-gb 2 --admin-password "PasswordCLIMaintenanceRP8!"', checks=[]) + pass + + +def step__applyupdates_put_applyupdates_createorupdate(test, rg): + test.cmd('az maintenance applyupdate create ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "clitestvmss" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +def step__applyupdates_get_applyupdates_get(test, rg): + test.cmd('az maintenance applyupdate show ' + '--name "default" ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "clitestvmss" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +def step__maintenanceconfigurations_put_maintenanceconfigurations_createorupdateforresource(test, rg): + test.cmd('az maintenance configuration create ' + '--location "westus2" ' + '--maintenance-scope "OSImage" ' + '--maintenance-window-duration "05:00" ' + '--maintenance-window-expiration-date-time "9999-12-31 00:00" ' + '--maintenance-window-recur-every "Day" ' + '--maintenance-window-start-date-time "2020-09-30 08:00" ' + '--maintenance-window-time-zone "Pacific Standard Time" ' + '--namespace "Microsoft.Maintenance" ' + '--visibility "Custom" ' + '--resource-group "{rg}" ' + '--resource-name "configuration1"', + checks=[]) + + +def step__maintenanceconfigurations_get_maintenanceconfigurations_getforresource(test, rg): + test.cmd('az maintenance configuration show ' + '--resource-group "{rg}" ' + '--resource-name "configuration1"', + checks=[]) + + +def step__maintenanceconfigurations_get_maintenanceconfigurations_list(test, rg): + test.cmd('az maintenance configuration list', + checks=[]) + + +def step__maintenanceconfigurations_patch_maintenanceconfigurations_updateforresource(test, rg): + test.cmd('az maintenance configuration update ' + '--location "westus2" ' + '--maintenance-scope "OSImage" ' + '--maintenance-window-duration "05:00" ' + '--maintenance-window-expiration-date-time "9999-12-31 00:00" ' + '--maintenance-window-recur-every "Month Third Sunday" ' + '--maintenance-window-start-date-time "2020-09-30 08:00" ' + '--maintenance-window-time-zone "Pacific Standard Time" ' + '--namespace "Microsoft.Maintenance" ' + '--visibility "Custom" ' + '--resource-group "{rg}" ' + '--resource-name "configuration1"', + checks=[]) + + +def step__configurationassignments_put_configurationassignments_createorupdate(test, rg): + test.cmd('az maintenance assignment create ' + '--maintenance-configuration-id "/subscriptions/{subscription_id}/resourcegroups/{rg}/providers/Microsoft.' + 'Maintenance/maintenanceConfigurations/{MaintenanceConfigurations_2}" ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "clitestvmss" ' + '--name "{MaintenanceConfigurations_2}" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +def step__configurationassignments_get_configurationassignments_list(test, rg): + test.cmd('az maintenance assignment list ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "clitestvmss" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +def step__publicmaintenanceconfigurations_get_publicmaintenanceconfigurations_getforresource(test, rg): + test.cmd('az maintenance public-configuration show ' + '--resource-name "sql2"', + checks=[]) + + +def step__publicmaintenanceconfigurations_get_publicmaintenanceconfigurations_list(test, rg): + test.cmd('az maintenance public-configuration list', + checks=[]) + + +def step__updates_get_updates_list(test, rg): + test.cmd('az maintenance update list ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "clitestvmss" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +def step__configurationassignments_delete_configurationassignments_delete(test, rg): + test.cmd('az maintenance assignment delete ' + '--name "{MaintenanceConfigurations_2}" ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "clitestvmss" ' + '--resource-type "virtualMachineScaleSets" ' + '--yes', + checks=[]) + + +def step__maintenanceconfigurations_delete_maintenanceconfigurations_deleteforresource(test, rg): + test.cmd('az maintenance configuration delete ' + '--resource-group "{rg}" ' + '--resource-name "configuration1" ' + '--yes', + checks=[]) + + +def step__maintenanceconfigurations_delete_publicmaintenanceconfigurations_delete(test, rg): + test.cmd('az maintenance configuration delete ' + '--resource-group "{rg}" ' + '--resource-name "sqlcli" ' + '--yes', + checks=[]) + + +def step__maintenanceconfigurations_put_publicmaintenanceconfigurations_createorupdateforresource(test, rg): + test.cmd('az maintenance configuration create ' + '--location "eastus2euap" ' + '--maintenance-scope "SQLDB" ' + '--maintenance-window-duration "05:00" ' + '--maintenance-window-expiration-date-time "9999-12-31 00:00" ' + '--maintenance-window-recur-every "Day" ' + '--maintenance-window-start-date-time "2020-09-30 08:00" ' + '--maintenance-window-time-zone "Pacific Standard Time" ' + '--namespace "Microsoft.Maintenance" ' + '--visibility "Public" ' + '--resource-group "{rg}" ' + '--resource-name "sqlcli" ' + '--extension-properties publicMaintenanceConfigurationId=sqlcli isAvailable=true', + checks=[]) + + +def cleanup(test, rg): + test.cmd('az vmss delete -n "clitestvmss" -g "{rg}"', checks=[]) + pass + + +def call_scenario(test, rg): + setup(test, rg) + step__maintenanceconfigurations_put_maintenanceconfigurations_createorupdateforresource(test, rg) + step__maintenanceconfigurations_get_maintenanceconfigurations_getforresource(test, rg) + step__maintenanceconfigurations_get_maintenanceconfigurations_list(test, rg) + step__maintenanceconfigurations_patch_maintenanceconfigurations_updateforresource(test, rg) + step__configurationassignments_put_configurationassignments_createorupdate(test, rg) + step__configurationassignments_get_configurationassignments_list(test, rg) + step__publicmaintenanceconfigurations_get_publicmaintenanceconfigurations_getforresource(test, rg) + step__publicmaintenanceconfigurations_get_publicmaintenanceconfigurations_list(test, rg) + step__updates_get_updates_list(test, rg) + step__applyupdates_put_applyupdates_createorupdate(test, rg) + step__applyupdates_get_applyupdates_get(test, rg) + step__configurationassignments_delete_configurationassignments_delete(test, rg) + step__maintenanceconfigurations_delete_maintenanceconfigurations_deleteforresource(test, rg) + step__maintenanceconfigurations_put_publicmaintenanceconfigurations_createorupdateforresource(test, rg) + step__maintenanceconfigurations_delete_publicmaintenanceconfigurations_delete(test, rg) + cleanup(test, rg) diff --git a/src/maintenance/azext_maintenance/tests/__init__.py b/src/maintenance/azext_maintenance/tests/__init__.py index 34913fb394d..50e0627daff 100644 --- a/src/maintenance/azext_maintenance/tests/__init__.py +++ b/src/maintenance/azext_maintenance/tests/__init__.py @@ -1,4 +1,114 @@ -# -------------------------------------------------------------------------------------------- +# coding=utf-8 +# -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +import inspect +import logging +import os +import sys +import traceback +import datetime as dt + +from azure.core.exceptions import AzureError +from azure.cli.testsdk.exceptions import CliTestError, CliExecutionError, JMESPathCheckAssertionError + + +logger = logging.getLogger('azure.cli.testsdk') +logger.addHandler(logging.StreamHandler()) +__path__ = __import__('pkgutil').extend_path(__path__, __name__) +exceptions = [] +test_map = dict() +SUCCESSED = "successed" +FAILED = "failed" + + +def try_manual(func): + def import_manual_function(origin_func): + from importlib import import_module + decorated_path = inspect.getfile(origin_func) + module_path = __path__[0] + if not decorated_path.startswith(module_path): + raise Exception("Decorator can only be used in submodules!") + manual_path = os.path.join( + decorated_path[module_path.rfind(os.path.sep) + 1:]) + manual_file_path, manual_file_name = os.path.split(manual_path) + module_name, _ = os.path.splitext(manual_file_name) + manual_module = "..manual." + \ + ".".join(manual_file_path.split(os.path.sep) + [module_name, ]) + return getattr(import_module(manual_module, package=__name__), origin_func.__name__) + + def get_func_to_call(): + func_to_call = func + try: + func_to_call = import_manual_function(func) + func_to_call = import_manual_function(func) + logger.info("Found manual override for %s(...)", func.__name__) + except (ImportError, AttributeError): + pass + return func_to_call + + def wrapper(*args, **kwargs): + func_to_call = get_func_to_call() + logger.info("running %s()...", func.__name__) + try: + test_map[func.__name__] = dict() + test_map[func.__name__]["result"] = SUCCESSED + test_map[func.__name__]["error_message"] = "" + test_map[func.__name__]["error_stack"] = "" + test_map[func.__name__]["error_normalized"] = "" + test_map[func.__name__]["start_dt"] = dt.datetime.utcnow() + ret = func_to_call(*args, **kwargs) + except (AssertionError, AzureError, CliTestError, CliExecutionError, SystemExit, + JMESPathCheckAssertionError) as e: + test_map[func.__name__]["end_dt"] = dt.datetime.utcnow() + test_map[func.__name__]["result"] = FAILED + test_map[func.__name__]["error_message"] = str(e).replace("\r\n", " ").replace("\n", " ")[:500] + test_map[func.__name__]["error_stack"] = traceback.format_exc().replace( + "\r\n", " ").replace("\n", " ")[:500] + logger.info("--------------------------------------") + logger.info("step exception: %s", e) + logger.error("--------------------------------------") + logger.error("step exception in %s: %s", func.__name__, e) + logger.info(traceback.format_exc()) + exceptions.append((func.__name__, sys.exc_info())) + else: + test_map[func.__name__]["end_dt"] = dt.datetime.utcnow() + return ret + + if inspect.isclass(func): + return get_func_to_call() + return wrapper + + +def calc_coverage(filename): + filename = filename.split(".")[0] + coverage_name = filename + "_coverage.md" + with open(coverage_name, "w") as f: + f.write("|Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt|\n") + total = len(test_map) + covered = 0 + for k, v in test_map.items(): + if not k.startswith("step_"): + total -= 1 + continue + if v["result"] == SUCCESSED: + covered += 1 + f.write("|{step_name}|{result}|{error_message}|{error_stack}|{error_normalized}|{start_dt}|" + "{end_dt}|\n".format(step_name=k, **v)) + f.write("Coverage: {}/{}\n".format(covered, total)) + print("Create coverage\n", file=sys.stderr) + + +def raise_if(): + if exceptions: + if len(exceptions) <= 1: + raise exceptions[0][1][1] + message = "{}\nFollowed with exceptions in other steps:\n".format(str(exceptions[0][1][1])) + message += "\n".join(["{}: {}".format(h[0], h[1][1]) for h in exceptions[1:]]) + raise exceptions[0][1][0](message).with_traceback(exceptions[0][1][2]) diff --git a/src/maintenance/azext_maintenance/tests/latest/__init__.py b/src/maintenance/azext_maintenance/tests/latest/__init__.py index 34913fb394d..c9cfdc73e77 100644 --- a/src/maintenance/azext_maintenance/tests/latest/__init__.py +++ b/src/maintenance/azext_maintenance/tests/latest/__init__.py @@ -1,4 +1,12 @@ -# -------------------------------------------------------------------------------------------- +# coding=utf-8 +# -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/maintenance/azext_maintenance/tests/latest/preparers.py b/src/maintenance/azext_maintenance/tests/latest/preparers.py new file mode 100644 index 00000000000..0879e51945a --- /dev/null +++ b/src/maintenance/azext_maintenance/tests/latest/preparers.py @@ -0,0 +1,159 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import os +from datetime import datetime +from azure_devtools.scenario_tests import SingleValueReplacer +from azure.cli.testsdk.preparers import NoTrafficRecordingPreparer +from azure.cli.testsdk.exceptions import CliTestError +from azure.cli.testsdk.reverse_dependency import get_dummy_cli + + +KEY_RESOURCE_GROUP = 'rg' +KEY_VIRTUAL_NETWORK = 'vnet' +KEY_VNET_SUBNET = 'subnet' +KEY_VNET_NIC = 'nic' + + +class VirtualNetworkPreparer(NoTrafficRecordingPreparer, SingleValueReplacer): + def __init__(self, name_prefix='clitest.vn', + parameter_name='virtual_network', + resource_group_name=None, + resource_group_key=KEY_RESOURCE_GROUP, + dev_setting_name='AZURE_CLI_TEST_DEV_VIRTUAL_NETWORK_NAME', + random_name_length=24, key=KEY_VIRTUAL_NETWORK): + if ' ' in name_prefix: + raise CliTestError( + 'Error: Space character in name prefix \'%s\'' % name_prefix) + super(VirtualNetworkPreparer, self).__init__( + name_prefix, random_name_length) + self.cli_ctx = get_dummy_cli() + self.parameter_name = parameter_name + self.key = key + self.resource_group_name = resource_group_name + self.resource_group_key = resource_group_key + self.dev_setting_name = os.environ.get(dev_setting_name, None) + + def create_resource(self, name, **_): + if self.dev_setting_name: + return {self.parameter_name: self.dev_setting_name, } + + if not self.resource_group_name: + self.resource_group_name = self.test_class_instance.kwargs.get( + self.resource_group_key) + if not self.resource_group_name: + raise CliTestError("Error: No resource group configured!") + + tags = {'product': 'azurecli', 'cause': 'automation', + 'date': datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')} + if 'ENV_JOB_NAME' in os.environ: + tags['job'] = os.environ['ENV_JOB_NAME'] + tags = ' '.join(['{}={}'.format(key, value) + for key, value in tags.items()]) + template = 'az network vnet create --resource-group {} --name {} --subnet-name default --tag ' + tags + self.live_only_execute(self.cli_ctx, template.format( + self.resource_group_name, name)) + + self.test_class_instance.kwargs[self.key] = name + return {self.parameter_name: name} + + def remove_resource(self, name, **_): + # delete vnet if test is being recorded and if the vnet is not a dev rg + if not self.dev_setting_name: + self.live_only_execute( + self.cli_ctx, + 'az network vnet delete --name {} --resource-group {}'.format(name, self.resource_group_name)) + + +class VnetSubnetPreparer(NoTrafficRecordingPreparer, SingleValueReplacer): + def __init__(self, name_prefix='clitest.vn', + parameter_name='subnet', + resource_group_key=KEY_RESOURCE_GROUP, + vnet_key=KEY_VIRTUAL_NETWORK, + address_prefixes="11.0.0.0/24", + dev_setting_name='AZURE_CLI_TEST_DEV_VNET_SUBNET_NAME', + key=KEY_VNET_SUBNET): + if ' ' in name_prefix: + raise CliTestError( + 'Error: Space character in name prefix \'%s\'' % name_prefix) + super(VnetSubnetPreparer, self).__init__(name_prefix, 15) + self.cli_ctx = get_dummy_cli() + self.parameter_name = parameter_name + self.key = key + self.resource_group = [resource_group_key, None] + self.vnet = [vnet_key, None] + self.address_prefixes = address_prefixes + self.dev_setting_name = os.environ.get(dev_setting_name, None) + + def create_resource(self, name, **_): + if self.dev_setting_name: + return {self.parameter_name: self.dev_setting_name, } + + if not self.resource_group[1]: + self.resource_group[1] = self.test_class_instance.kwargs.get( + self.resource_group[0]) + if not self.resource_group[1]: + raise CliTestError("Error: No resource group configured!") + if not self.vnet[1]: + self.vnet[1] = self.test_class_instance.kwargs.get(self.vnet[0]) + if not self.vnet[1]: + raise CliTestError("Error: No vnet configured!") + + self.test_class_instance.kwargs[self.key] = 'default' + return {self.parameter_name: name} + + def remove_resource(self, name, **_): + pass + + +class VnetNicPreparer(NoTrafficRecordingPreparer, SingleValueReplacer): + def __init__(self, name_prefix='clitest.nic', + parameter_name='subnet', + resource_group_key=KEY_RESOURCE_GROUP, + vnet_key=KEY_VIRTUAL_NETWORK, + dev_setting_name='AZURE_CLI_TEST_DEV_VNET_NIC_NAME', + key=KEY_VNET_NIC): + if ' ' in name_prefix: + raise CliTestError( + 'Error: Space character in name prefix \'%s\'' % name_prefix) + super(VnetNicPreparer, self).__init__(name_prefix, 15) + self.cli_ctx = get_dummy_cli() + self.parameter_name = parameter_name + self.key = key + self.resource_group = [resource_group_key, None] + self.vnet = [vnet_key, None] + self.dev_setting_name = os.environ.get(dev_setting_name, None) + + def create_resource(self, name, **_): + if self.dev_setting_name: + return {self.parameter_name: self.dev_setting_name, } + + if not self.resource_group[1]: + self.resource_group[1] = self.test_class_instance.kwargs.get( + self.resource_group[0]) + if not self.resource_group[1]: + raise CliTestError("Error: No resource group configured!") + if not self.vnet[1]: + self.vnet[1] = self.test_class_instance.kwargs.get(self.vnet[0]) + if not self.vnet[1]: + raise CliTestError("Error: No vnet configured!") + + template = 'az network nic create --resource-group {} --name {} --vnet-name {} --subnet default ' + self.live_only_execute(self.cli_ctx, template.format( + self.resource_group[1], name, self.vnet[1])) + + self.test_class_instance.kwargs[self.key] = name + return {self.parameter_name: name} + + def remove_resource(self, name, **_): + if not self.dev_setting_name: + self.live_only_execute( + self.cli_ctx, + 'az network nic delete --name {} --resource-group {}'.format(name, self.resource_group[1])) diff --git a/src/maintenance/azext_maintenance/tests/latest/recordings/test_maintenance.yaml b/src/maintenance/azext_maintenance/tests/latest/recordings/test_maintenance.yaml new file mode 100644 index 00000000000..945d6e28680 --- /dev/null +++ b/src/maintenance/azext_maintenance/tests/latest/recordings/test_maintenance.yaml @@ -0,0 +1,2004 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-02T02:22:02Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '428' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:22:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.23.0 + method: GET + uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/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 \"CentOS\": + {\n \"publisher\": \"OpenLogic\",\n \"offer\": \"CentOS\",\n + \ \"sku\": \"7.5\",\n \"version\": \"latest\"\n },\n + \ \"CoreOS\": {\n \"publisher\": \"CoreOS\",\n \"offer\": + \"CoreOS\",\n \"sku\": \"Stable\",\n \"version\": \"latest\"\n + \ },\n \"Debian\": {\n \"publisher\": \"Debian\",\n + \ \"offer\": \"debian-10\",\n \"sku\": \"10\",\n \"version\": + \"latest\"\n },\n \"openSUSE-Leap\": {\n \"publisher\": + \"SUSE\",\n \"offer\": \"openSUSE-Leap\",\n \"sku\": + \"42.3\",\n \"version\": \"latest\"\n },\n \"RHEL\": + {\n \"publisher\": \"RedHat\",\n \"offer\": \"RHEL\",\n + \ \"sku\": \"7-LVM\",\n \"version\": \"latest\"\n },\n + \ \"SLES\": {\n \"publisher\": \"SUSE\",\n \"offer\": + \"SLES\",\n \"sku\": \"15\",\n \"version\": \"latest\"\n + \ },\n \"UbuntuLTS\": {\n \"publisher\": \"Canonical\",\n + \ \"offer\": \"UbuntuServer\",\n \"sku\": \"18.04-LTS\",\n + \ \"version\": \"latest\"\n }\n },\n \"Windows\": + {\n \"Win2019Datacenter\": {\n \"publisher\": \"MicrosoftWindowsServer\",\n + \ \"offer\": \"WindowsServer\",\n \"sku\": \"2019-Datacenter\",\n + \ \"version\": \"latest\"\n },\n \"Win2016Datacenter\": + {\n \"publisher\": \"MicrosoftWindowsServer\",\n \"offer\": + \"WindowsServer\",\n \"sku\": \"2016-Datacenter\",\n \"version\": + \"latest\"\n },\n \"Win2012R2Datacenter\": {\n \"publisher\": + \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\",\n \"sku\": + \"2012-R2-Datacenter\",\n \"version\": \"latest\"\n },\n + \ \"Win2012Datacenter\": {\n \"publisher\": \"MicrosoftWindowsServer\",\n + \ \"offer\": \"WindowsServer\",\n \"sku\": \"2012-Datacenter\",\n + \ \"version\": \"latest\"\n },\n \"Win2008R2SP1\": + {\n \"publisher\": \"MicrosoftWindowsServer\",\n \"offer\": + \"WindowsServer\",\n \"sku\": \"2008-R2-SP1\",\n \"version\": + \"latest\"\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: + - '2501' + content-security-policy: + - default-src 'none'; style-src 'unsafe-inline'; sandbox + content-type: + - text/plain; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:22:03 GMT + etag: + - W/"540044b4084c3c314537f1baa1770f248628b2bc9ba0328f1004c33862e049da" + expires: + - Wed, 02 Sep 2020 02:27:03 GMT + source-age: + - '177' + strict-transport-security: + - max-age=31536000 + vary: + - Authorization,Accept-Encoding + via: + - 1.1 varnish (Varnish/6.0) + - 1.1 varnish + x-cache: + - HIT, HIT + x-cache-hits: + - 4, 1 + x-content-type-options: + - nosniff + x-fastly-request-id: + - 97c85f4297b0f50270b5ad17c7452b837d5b853e + x-frame-options: + - deny + x-github-request-id: + - 27E6:47E1:27615D:3369B0:5F4EF159 + x-served-by: + - cache-sea4420-SEA + x-timer: + - S1599013324.823782,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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-network/11.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks?api-version=2018-01-01 + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:22:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"properties": {"template": {"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", "parameters": {"adminPassword": {"type": "securestring", + "metadata": {"description": "Secure adminPassword"}}}, "variables": {}, "resources": + [{"name": "clitestvmssVNET", "type": "Microsoft.Network/virtualNetworks", "location": + "westus", "apiVersion": "2015-06-15", "dependsOn": [], "tags": {}, "properties": + {"addressSpace": {"addressPrefixes": ["10.0.0.0/16"]}, "subnets": [{"name": + "clitestvmssSubnet", "properties": {"addressPrefix": "10.0.0.0/24"}}]}}, {"apiVersion": + "2018-01-01", "type": "Microsoft.Network/publicIPAddresses", "name": "clitestvmssLBPublicIP", + "location": "westus", "tags": {}, "dependsOn": [], "properties": {"publicIPAllocationMethod": + "Dynamic"}}, {"type": "Microsoft.Network/loadBalancers", "name": "clitestvmssLB", + "location": "westus", "tags": {}, "apiVersion": "2018-01-01", "dependsOn": ["Microsoft.Network/virtualNetworks/clitestvmssVNET", + "Microsoft.Network/publicIpAddresses/clitestvmssLBPublicIP"], "properties": + {"backendAddressPools": [{"name": "clitestvmssLBBEPool"}], "inboundNatPools": + [{"name": "clitestvmssLBNatPool", "properties": {"frontendIPConfiguration": + {"id": "[concat(resourceId(''Microsoft.Network/loadBalancers'', ''clitestvmssLB''), + ''/frontendIPConfigurations/'', ''loadBalancerFrontEnd'')]"}, "protocol": "tcp", + "frontendPortRangeStart": "50000", "frontendPortRangeEnd": "50119", "backendPort": + 3389}}], "frontendIPConfigurations": [{"name": "loadBalancerFrontEnd", "properties": + {"publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/clitestvmssLBPublicIP"}}}]}}, + {"type": "Microsoft.Compute/virtualMachineScaleSets", "name": "clitestvmss", + "location": "westus", "tags": {}, "apiVersion": "2020-06-01", "dependsOn": ["Microsoft.Network/virtualNetworks/clitestvmssVNET", + "Microsoft.Network/loadBalancers/clitestvmssLB"], "sku": {"name": "Standard_DS1_v2", + "capacity": 1}, "properties": {"overprovision": true, "upgradePolicy": {"mode": + "manual"}, "virtualMachineProfile": {"storageProfile": {"osDisk": {"createOption": + "FromImage", "caching": "ReadWrite", "managedDisk": {"storageAccountType": null}}, + "imageReference": {"publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "sku": "2016-Datacenter", "version": "latest"}, "dataDisks": [{"lun": 0, "managedDisk": + {"storageAccountType": null}, "createOption": "empty", "diskSizeGB": 2}]}, "networkProfile": + {"networkInterfaceConfigurations": [{"name": "cliteb8c8Nic", "properties": {"primary": + "true", "ipConfigurations": [{"name": "cliteb8c8IPConfig", "properties": {"subnet": + {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET/subnets/clitestvmssSubnet"}, + "loadBalancerBackendAddressPools": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB/backendAddressPools/clitestvmssLBBEPool"}], + "loadBalancerInboundNatPools": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB/inboundNatPools/clitestvmssLBNatPool"}]}}]}}]}, + "osProfile": {"computerNamePrefix": "cliteb8c8", "adminUsername": "azureuser", + "adminPassword": "[parameters(''adminPassword'')]"}}, "singlePlacementGroup": + null}}], "outputs": {"VMSS": {"type": "object", "value": "[reference(resourceId(''Microsoft.Compute/virtualMachineScaleSets'', + ''clitestvmss''),providers(''Microsoft.Compute'', ''virtualMachineScaleSets'').apiVersions[0])]"}}}, + "parameters": {"adminPassword": {"value": "PasswordCLIMaintenanceRP8!"}}, "mode": + "Incremental"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss create + Connection: + - keep-alive + Content-Length: + - '4085' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Resources/deployments/vmss_deploy_tHrtHs9va12B6dVhmjzQvXd6KXEA3Kli","name":"vmss_deploy_tHrtHs9va12B6dVhmjzQvXd6KXEA3Kli","type":"Microsoft.Resources/deployments","properties":{"templateHash":"13981659799554997302","parameters":{"adminPassword":{"type":"SecureString"}},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2020-09-02T02:22:05.4772059Z","duration":"PT0.6258802S","correlationId":"51a44ee2-a84b-4218-8d78-13ba6b289011","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"virtualNetworks","locations":["westus"]},{"resourceType":"publicIPAddresses","locations":["westus"]},{"resourceType":"loadBalancers","locations":["westus"]}]},{"namespace":"Microsoft.Compute","resourceTypes":[{"resourceType":"virtualMachineScaleSets","locations":["westus"]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"clitestvmssVNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/clitestvmssLBPublicIP","resourceType":"Microsoft.Network/publicIPAddresses","resourceName":"clitestvmssLBPublicIP"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB","resourceType":"Microsoft.Network/loadBalancers","resourceName":"clitestvmssLB"},{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"clitestvmssVNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB","resourceType":"Microsoft.Network/loadBalancers","resourceName":"clitestvmssLB"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss","resourceType":"Microsoft.Compute/virtualMachineScaleSets","resourceName":"clitestvmss"}]}}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/vmss_deploy_tHrtHs9va12B6dVhmjzQvXd6KXEA3Kli/operationStatuses/08586025935606263293?api-version=2020-06-01 + cache-control: + - no-cache + content-length: + - '2804' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:22:04 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: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:22:35 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:23:04 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:23:35 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:24:05 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:24:35 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:25:05 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:25:35 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:26:05 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:26:36 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:27:06 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:27:36 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:28:06 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586025935606263293?api-version=2020-06-01 + response: + body: + string: '{"status":"Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:28:36 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: + - vmss create + Connection: + - keep-alive + ParameterSetName: + - -n -g --instance-count --image --data-disk-sizes-gb --admin-password + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Resources/deployments/vmss_deploy_tHrtHs9va12B6dVhmjzQvXd6KXEA3Kli","name":"vmss_deploy_tHrtHs9va12B6dVhmjzQvXd6KXEA3Kli","type":"Microsoft.Resources/deployments","properties":{"templateHash":"13981659799554997302","parameters":{"adminPassword":{"type":"SecureString"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2020-09-02T02:28:15.496844Z","duration":"PT6M10.6455183S","correlationId":"51a44ee2-a84b-4218-8d78-13ba6b289011","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"virtualNetworks","locations":["westus"]},{"resourceType":"publicIPAddresses","locations":["westus"]},{"resourceType":"loadBalancers","locations":["westus"]}]},{"namespace":"Microsoft.Compute","resourceTypes":[{"resourceType":"virtualMachineScaleSets","locations":["westus"]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"clitestvmssVNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/clitestvmssLBPublicIP","resourceType":"Microsoft.Network/publicIPAddresses","resourceName":"clitestvmssLBPublicIP"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB","resourceType":"Microsoft.Network/loadBalancers","resourceName":"clitestvmssLB"},{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"clitestvmssVNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB","resourceType":"Microsoft.Network/loadBalancers","resourceName":"clitestvmssLB"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss","resourceType":"Microsoft.Compute/virtualMachineScaleSets","resourceName":"clitestvmss"}],"outputs":{"vmss":{"type":"Object","value":{"singlePlacementGroup":true,"upgradePolicy":{"mode":"Manual"},"virtualMachineProfile":{"osProfile":{"computerNamePrefix":"cliteb8c8","adminUsername":"azureuser","windowsConfiguration":{"provisionVMAgent":true,"enableAutomaticUpdates":true},"secrets":[],"allowExtensionOperations":true,"requireGuestProvisionSignal":true},"storageProfile":{"osDisk":{"createOption":"FromImage","caching":"ReadWrite","managedDisk":{"storageAccountType":"Premium_LRS"},"diskSizeGB":127},"imageReference":{"publisher":"MicrosoftWindowsServer","offer":"WindowsServer","sku":"2016-Datacenter","version":"latest"},"dataDisks":[{"lun":0,"createOption":"Empty","caching":"None","managedDisk":{"storageAccountType":"Premium_LRS"},"diskSizeGB":2}]},"networkProfile":{"networkInterfaceConfigurations":[{"name":"cliteb8c8Nic","properties":{"primary":true,"enableAcceleratedNetworking":false,"dnsSettings":{"dnsServers":[]},"enableIPForwarding":false,"ipConfigurations":[{"name":"cliteb8c8IPConfig","properties":{"subnet":{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET/subnets/clitestvmssSubnet"},"privateIPAddressVersion":"IPv4","loadBalancerBackendAddressPools":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB/backendAddressPools/clitestvmssLBBEPool"}],"loadBalancerInboundNatPools":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB/inboundNatPools/clitestvmssLBNatPool"}]}}]}}]},"extensionProfile":{"extensions":[{"name":"Microsoft.Azure.Geneva.GenevaMonitoring","properties":{"autoUpgradeMinorVersion":true,"publisher":"Microsoft.Azure.Geneva","type":"GenevaMonitoring","typeHandlerVersion":"2.0","settings":{}}}]}},"provisioningState":"Succeeded","overprovision":true,"doNotRunExtensionsOnOverprovisionedVMs":false,"uniqueId":"18368aad-094c-4414-ae42-ff38e4b596c2"}}},"outputResources":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/loadBalancers/clitestvmssLB"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/publicIPAddresses/clitestvmssLBPublicIP"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Network/virtualNetworks/clitestvmssVNET"}]}}' + headers: + cache-control: + - no-cache + content-length: + - '5948' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:28:36 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: '{"location": "westus2", "properties": {"namespace": "Microsoft.Maintenance", + "maintenanceScope": "OSImage", "visibility": "Custom", "maintenanceWindow": + {"startDateTime": "2020-09-30 08:00", "expirationDateTime": "9999-12-31 00:00", + "duration": "05:00", "timeZone": "Pacific Standard Time", "recurEvery": "Day"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - maintenance configuration create + Connection: + - keep-alive + Content-Length: + - '313' + Content-Type: + - application/json + ParameterSetName: + - --location --maintenance-scope --maintenance-window-duration --maintenance-window-expiration-date-time + --maintenance-window-recur-every --maintenance-window-start-date-time --maintenance-window-time-zone + --namespace --visibility --resource-group --resource-name + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"westus2\",\r\n \"tags\": {},\r\n \"properties\": + {\r\n \"namespace\": \"Microsoft.Maintenance\",\r\n \"extensionProperties\": + {},\r\n \"maintenanceScope\": \"OSImage\",\r\n \"maintenanceWindow\": + {\r\n \"startDateTime\": \"2020-09-30 08:00\",\r\n \"expirationDateTime\": + \"9999-12-31 00:00\",\r\n \"duration\": \"05:00\",\r\n \"timeZone\": + \"Pacific Standard Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n + \ \"visibility\": \"Custom\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1\",\r\n + \ \"name\": \"configuration1\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '755' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:28:38 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance configuration show + Connection: + - keep-alive + ParameterSetName: + - --resource-group --resource-name + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"westus2\",\r\n \"tags\": {},\r\n \"properties\": + {\r\n \"namespace\": \"Microsoft.Maintenance\",\r\n \"extensionProperties\": + {},\r\n \"maintenanceScope\": \"OSImage\",\r\n \"maintenanceWindow\": + {\r\n \"startDateTime\": \"2020-09-30 08:00\",\r\n \"expirationDateTime\": + \"9999-12-31 00:00\",\r\n \"duration\": \"05:00\",\r\n \"timeZone\": + \"Pacific Standard Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n + \ \"visibility\": \"Custom\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/microsoft.maintenance/maintenanceconfigurations/configuration1\",\r\n + \ \"name\": \"configuration1\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '755' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:28:44 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance configuration list + Connection: + - keep-alive + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/maintenanceConfigurations?api-version=2020-07-01-preview + response: + body: + string: '{"error":{"code":"InternalServerError","message":"Encountered internal + server error. Diagnostic information: timestamp ''20200902T022858Z'', subscription + id ''eee2cef4-bc47-4278-b4f8-cfc65f25dfd8'', tracking id ''2ec53f11-0dfb-4c5b-8726-8d445454952b'', + request correlation id ''2ec53f11-0dfb-4c5b-8726-8d445454952b''."}}' + headers: + cache-control: + - no-cache + connection: + - close + content-length: + - '312' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:28:58 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-failure-cause: + - gateway + status: + code: 500 + message: Internal Server Error +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - maintenance configuration list + Connection: + - keep-alive + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/maintenanceConfigurations?api-version=2020-07-01-preview + response: + body: + string: '{"value":[{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedkoreacentral","name":"policydgnsrsharedkoreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedkoreasouth","name":"policydgnsrsharedkoreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedjapaneast","name":"policydgnsrsharedjapaneast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedsouthcentralus","name":"policydgnsrsharedsouthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsoutH/providers/Microsoft.Maintenance/maintenanceConfigurations/configsotaneja","name":"configsotaneja","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouTH/providers/Microsoft.Maintenance/maintenanceConfigurations/configsotaneja","name":"configsotaneja","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedeastasia","name":"policydgnsrsharedeastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedwestindia","name":"policydgnsrsharedwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliaeast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedaustraliaeast","name":"policydgnsrsharedaustraliaeast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedsoutheastasia","name":"policydgnsrsharedsoutheastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedaustraliasoutheast","name":"policydgnsrsharedaustraliasoutheast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedcentralus","name":"policydgnsrsharedcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedcanadacentral","name":"policydgnsrsharedcanadacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedeastus","name":"policydgnsrsharedeastus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus2/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedwestus2","name":"policydgnsrsharedwestus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedbrazilsouth","name":"policydgnsrsharedbrazilsouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedeastus2","name":"policydgnsrsharedeastus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharednorthcentralus","name":"policydgnsrsharednorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnortheurope/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharednortheurope","name":"policydgnsrsharednortheurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrshareduksouth","name":"policydgnsrshareduksouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"ukwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrukwest/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedukwest","name":"policydgnsrsharedukwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedfrancecentral","name":"policydgnsrsharedfrancecentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwesteurope/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedwesteurope","name":"policydgnsrsharedwesteurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedsouthafricanorth","name":"policydgnsrsharedsouthafricanorth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedaustraliacentral","name":"policydgnsrsharedaustraliacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever15","name":"configjusiever15","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever","name":"configjusiever","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever","name":"configjusiever","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadaeast/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever","name":"configjusiever","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pseastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/psconfigeastasia","name":"psconfigeastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clinorthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/clinorthusconfiguration","name":"clinorthusconfiguration","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clieastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/clieastasiaconfigurationdh","name":"clieastasiaconfigurationdh","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clieastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/clieastasiaconfigurationdng","name":"clieastasiaconfigurationdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pseastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/pseastasiaconfigurationdh","name":"pseastasiaconfigurationdh","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pseastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/pseastasiaconfigurationdng","name":"pseastasiaconfigurationdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhsouthcentralus","name":"policydgnsrdhsouthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japanwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapanwest/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhjapanwest","name":"policydgnsrdhjapanwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhjapaneast","name":"policydgnsrdhjapaneast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhkoreasouth","name":"policydgnsrdhkoreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhwestindia","name":"policydgnsrdhwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhaustraliasoutheast","name":"policydgnsrdhaustraliasoutheast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhaustraliacentral","name":"policydgnsrdhaustraliacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrfullwestindia","name":"policydgnsrfullwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliaeast/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhsoutheastasia","name":"policydgnsrdhsoutheastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhfrancecentral","name":"policydgnsrdhfrancecentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhcanadacentral","name":"policydgnsrdhcanadacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrfullnorthcentralus","name":"policydgnsrfullnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwesteurope/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhwesteurope","name":"policydgnsrdhwesteurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrfullbrazilsouth","name":"policydgnsrfullbrazilsouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus2/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhwestus2","name":"policydgnsrdhwestus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhnorthcentralus","name":"policydgnsrdhnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdhuksouth","name":"policydgnsrdhuksouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnortheurope/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever131","name":"configjusiever131","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedsouthcentralus","name":"policydgnsrsharedsouthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharednorthcentralus","name":"policydgnsrsharednorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedaustraliasoutheast","name":"policydgnsrsharedaustraliasoutheast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedaustraliacentral","name":"policydgnsrsharedaustraliacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwesteurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedwesteurope","name":"policydgnsrsharedwesteurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedwestus2","name":"policydgnsrsharedwestus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedbrazilsouth","name":"policydgnsrsharedbrazilsouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedsouthafricanorth","name":"policydgnsrsharedsouthafricanorth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrshareduksouth","name":"policydgnsrshareduksouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedcentralus","name":"policydgnsrsharedcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedeastus2","name":"policydgnsrsharedeastus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnortheurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharednortheurope","name":"policydgnsrsharednortheurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedkoreasouth","name":"policydgnsrsharedkoreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedeastus","name":"policydgnsrsharedeastus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedwestindia","name":"policydgnsrsharedwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedeastasia","name":"policydgnsrsharedeastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedcanadacentral","name":"policydgnsrsharedcanadacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliaeast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedaustraliaeast","name":"policydgnsrsharedaustraliaeast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedjapaneast","name":"policydgnsrsharedjapaneast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedkoreacentral","name":"policydgnsrsharedkoreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedfrancecentral","name":"policydgnsrsharedfrancecentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"ukwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrukwest/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedukwest","name":"policydgnsrsharedukwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedsoutheastasia","name":"policydgnsrsharedsoutheastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dbgkoreasouth/providers/microsoft.maintenance/maintenanceconfigurations/defaultmaintenanceconfiguration-koreasouth","name":"defaultMaintenanceConfiguration-koreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dbgkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/defaultmaintenanceconfiguration-koreacentral","name":"defaultMaintenanceConfiguration-koreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testatrg/providers/microsoft.maintenance/maintenanceconfigurations/defaultmcwestus2","name":"defaultmcwestus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testatrg/providers/microsoft.maintenance/maintenanceconfigurations/defaultmcnorthcentralus","name":"defaultmcnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/psnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/defaultmcnorthcentralus","name":"defaultmcnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testatrg/providers/microsoft.maintenance/maintenanceconfigurations/defaultmaintenanceconfiguration","name":"defaultMaintenanceConfiguration","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/psnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/defaultmaintenanceconfiguration","name":"defaultMaintenanceConfiguration","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clinorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/portaltestconfig","name":"portaltestconfig","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/netsdknorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/netsdknorthcentralusconfigurationfull","name":"netsdknorthcentralusconfigurationfull","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/abtest/providers/microsoft.maintenance/maintenanceconfigurations/testconfigfromportal","name":"testconfigfromportal","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{"tag1":"bugbash"},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/portalbugbash/providers/microsoft.maintenance/maintenanceconfigurations/scenario1","name":"scenario1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/defaultmaintenanceconfiguration-koreacentral","name":"defaultMaintenanceConfiguration-koreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwesteurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnortheurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/psnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/psnorthusconfigurationfull","name":"psnorthusconfigurationfull","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pseastasia/providers/microsoft.maintenance/maintenanceconfigurations/pseastasiaconfigurationdh","name":"pseastasiaconfigurationdh","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Resource","maintenanceWindow":{"startDateTime":"0001-01-01 + 00:00","expirationDateTime":"0001-01-01 00:00","duration":"05:00","timeZone":"India + Standard Time","recurEvery":"0"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/afecflagkoreasouth","name":"afecFlagKoreaSouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Resource","maintenanceWindow":{"startDateTime":"0001-01-01 + 00:00","expirationDateTime":"0001-01-01 00:00","duration":"05:00","timeZone":"Eastern + Standard Time","recurEvery":"0"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/afecflagcanada","name":"afecFlagCanada","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"WESTEUROPE","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Resource","maintenanceWindow":{"startDateTime":"0001-01-01 + 00:00","expirationDateTime":"0001-01-01 00:00","duration":"05:00","timeZone":"Central + Europe standard Time","recurEvery":"0"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/afecflageurope","name":"afecFlagEurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Resource, + InResource","maintenanceWindow":{"startDateTime":"0001-01-01 00:00","expirationDateTime":"0001-01-01 + 00:00","duration":"05:00","timeZone":"Central standard Time","recurEvery":"0"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/afecflagus3","name":"afecFlagUS3","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/microsoft.maintenance/maintenanceconfigurations/testargconfiguration1","name":"testARGConfiguration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-08-09 + 20:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"week sunday,monday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/hosttestingscope","name":"HostTestingscope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/testpowershellconfig","name":"testpowershellconfig","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/soniapowershell","name":"soniapowershell","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps8596/providers/microsoft.maintenance/maintenanceconfigurations/ps5164","name":"ps5164","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps9969/providers/microsoft.maintenance/maintenanceconfigurations/ps227","name":"ps227","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps4851/providers/microsoft.maintenance/maintenanceconfigurations/ps132","name":"ps132","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps5895/providers/microsoft.maintenance/maintenanceconfigurations/ps4366","name":"ps4366","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps3332/providers/microsoft.maintenance/maintenanceconfigurations/ps404","name":"ps404","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps9548/providers/microsoft.maintenance/maintenanceconfigurations/ps567","name":"ps567","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps3221/providers/microsoft.maintenance/maintenanceconfigurations/ps5992","name":"ps5992","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps9573/providers/microsoft.maintenance/maintenanceconfigurations/ps575","name":"ps575","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{"publicMaintenanceConfigurationId":"ps4509","isAvailable":"true"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/ps7939/providers/microsoft.maintenance/maintenanceconfigurations/ps4509","name":"ps4509","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{"isAvailable":"true","publicMaintenanceConfigurationId":"randomc"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/randogroup/providers/microsoft.maintenance/maintenanceconfigurations/randomc","name":"randomc","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{"isAvailable":"true","publicMaintenanceConfigurationId":"soniaps"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-01 + 12:30","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/randogroup/providers/microsoft.maintenance/maintenanceconfigurations/soniaps","name":"soniaps","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Month Third Sunday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitests5f7aik4kielzdkgwmkwjyxpjzokzgfpgfivhyj7wne4w7wl6shvtm3xsunnzt76rcet/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{"publicMaintenanceConfigurationId":"configurationsql","isAvailable":"true"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/configurationsql","name":"configurationsql","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Month Third Sunday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitestbjnoqkenrf5azew3kgnabym44odg7prhbgld62256xzyrysux4j7uag3cjosjnh4vr6o/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Month Third Sunday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest4m7giv6zpf3q5vef7j3msfh3nsgpzqdfsh4sh3daxxvfrnmb6guxwefrdjrgxeo3ojvw/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Month Third Sunday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitestqm2p2j4y45bdhruz5u22egugnh2mbsfo7ycpzsy33taklfoaa7u4jte2dz2nghrd56oq/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","maintenanceWindow":{"startDateTime":"2020-09-01 + 00:00","expirationDateTime":"2021-08-04 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/pstest","name":"pstest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Month Third Sunday"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitestf5ivvpypbhqgzkft234pqqqm3rmaueztclxupbsi4it2tknktbbt5dogcp74ybrjjnmd/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullkoreasouth","name":"policydgnsrfullkoreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhjapaneast","name":"policydgnsrdhjapaneast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullaustraliasoutheast","name":"policydgnsrfullaustraliasoutheast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullbrazilsouth","name":"policydgnsrfullbrazilsouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhnorthcentralus","name":"policydgnsrdhnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdheastus2","name":"policydgnsrdheastus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadaeast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhcanadaeast","name":"policydgnsrdhcanadaeast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"ukwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrukwest/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullukwest","name":"policydgnsrfullukwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullnorthcentralus","name":"policydgnsrfullnorthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnortheurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhnortheurope","name":"policydgnsrdhnortheurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreasouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreasouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhkoreasouth","name":"policydgnsrdhkoreasouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdheastus","name":"policydgnsrdheastus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullwestindia","name":"policydgnsrfullwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullkoreacentral","name":"policydgnsrfullkoreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentralindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhcentralindia","name":"policydgnsrdhcentralindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhaustraliasoutheast","name":"policydgnsrdhaustraliasoutheast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus2/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhwestus2","name":"policydgnsrdhwestus2","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhaustraliacentral","name":"policydgnsrdhaustraliacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullcanadacentral","name":"policydgnsrfullcanadacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfulluksouth","name":"policydgnsrfulluksouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhfrancecentral","name":"policydgnsrdhfrancecentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhwestindia","name":"policydgnsrdhwestindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhcentralus","name":"policydgnsrdhcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiasoutheast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliasoutheast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"francecentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrfrancecentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhwestus","name":"policydgnsrdhwestus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westeurope","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwesteurope/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhwesteurope","name":"policydgnsrdhwesteurope","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"canadacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcanadacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhcanadacentral","name":"policydgnsrdhcanadacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiaeast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliaeast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhbrazilsouth","name":"policydgnsrdhbrazilsouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhsouthcentralus","name":"policydgnsrdhsouthcentralus","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japanwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapanwest/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhjapanwest","name":"policydgnsrdhjapanwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"koreacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrkoreacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhkoreacentral","name":"policydgnsrdhkoreacentral","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"northcentralus","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrnorthcentralus/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"uksouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsruksouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhuksouth","name":"policydgnsrdhuksouth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrwestindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"ukwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrukwest/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhukwest","name":"policydgnsrdhukwest","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"japaneast","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrjapaneast/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfulljapaneast","name":"policydgnsrfulljapaneast","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfullsouthindia","name":"policydgnsrfullsouthindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"ukwest","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrukwest/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southindia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthindia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhsouthindia","name":"policydgnsrdhsouthindia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"brazilsouth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrbrazilsouth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdheastasia","name":"policydgnsrdheastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"australiacentral","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsraustraliacentral/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"westus2","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{},"maintenanceScope":"OSImage","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/microsoft.maintenance/maintenanceconfigurations/configuration1","name":"configuration1","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southafricanorth","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsouthafricanorth/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhsouthafricanorth","name":"policydgnsrdhsouthafricanorth","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"southeastasia","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrsoutheastasia/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhsoutheastasia","name":"policydgnsrdhsoutheastasia","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedeastus2euap","name":"policydgnsrsharedeastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrsharedcentraluseuap","name":"policydgnsrsharedcentraluseuap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/Microsoft.Maintenance/maintenanceConfigurations/configjusiever","name":"configjusiever","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/Microsoft.Maintenance/maintenanceConfigurations/configshvenk","name":"configshvenk","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrdheastus2euap","name":"policydgnsrdheastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/Microsoft.Maintenance/maintenanceConfigurations/policydgnsrfulleastus2euap","name":"policydgnsrfulleastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedcentraluseuap","name":"policydgnsrsharedcentraluseuap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/Microsoft.Maintenance/maintenanceConfigurations/testARGConfiguration3","name":"testARGConfiguration3","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/Microsoft.Maintenance/maintenanceConfigurations/gautamdPolicy","name":"gautamdPolicy","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrfulleastus2euap","name":"policydgnsrfulleastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"Host","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrsharedeastus2euap","name":"policydgnsrsharedeastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdheastus2euap","name":"policydgnsrdheastus2euap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdng","name":"policydgnsrdng","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"centraluseuap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsrcentraluseuap/providers/microsoft.maintenance/maintenanceconfigurations/policydgnsrdhcentraluseuap","name":"policydgnsrdhcentraluseuap","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{},"maintenanceScope":"All","visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/dgnsreastus2euap/providers/microsoft.maintenance/maintenanceconfigurations/testargconfiguration9","name":"testARGConfiguration9","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"extensionProperties":{"publicMaintenanceConfigurationId":"soniasql","isAvailable":"false"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-08-19 + 03:00","expirationDateTime":"9999-12-31 23:59","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/soniasql","name":"soniasql","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{"publicMaintenanceConfigurationId":"sqlcli","isAvailable":"true"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Public"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/sqlcli","name":"sqlcli","type":"Microsoft.Maintenance/maintenanceConfigurations"},{"location":"eastus2euap","tags":{},"properties":{"namespace":"Microsoft.Maintenance","extensionProperties":{"publicMaintenanceConfigurationId":"[''sqlcliv2'']","isAvailable":"[''true'']"},"maintenanceScope":"SQLDB","maintenanceWindow":{"startDateTime":"2020-09-30 + 08:00","expirationDateTime":"9999-12-31 00:00","duration":"05:00","timeZone":"Pacific + Standard Time","recurEvery":"Day"},"visibility":"Custom"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/sqlcliv2","name":"sqlcliv2","type":"Microsoft.Maintenance/maintenanceConfigurations"}]}' + headers: + cache-control: + - no-cache + content-length: + - '85789' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:28:59 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-original-request-ids: + - 353e354e-8afa-4a30-adc4-e14973858135 + - 353e354e-8afa-4a30-adc4-e14973858135 + status: + code: 200 + message: OK +- request: + body: '{"location": "westus2", "properties": {"namespace": "Microsoft.Maintenance", + "maintenanceScope": "OSImage", "visibility": "Custom", "maintenanceWindow": + {"startDateTime": "2020-09-30 08:00", "expirationDateTime": "9999-12-31 00:00", + "duration": "05:00", "timeZone": "Pacific Standard Time", "recurEvery": "Month + Third Sunday"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - maintenance configuration update + Connection: + - keep-alive + Content-Length: + - '328' + Content-Type: + - application/json + ParameterSetName: + - --location --maintenance-scope --maintenance-window-duration --maintenance-window-expiration-date-time + --maintenance-window-recur-every --maintenance-window-start-date-time --maintenance-window-time-zone + --namespace --visibility --resource-group --resource-name + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: PATCH + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"westus2\",\r\n \"tags\": {},\r\n \"properties\": + {\r\n \"namespace\": \"Microsoft.Maintenance\",\r\n \"extensionProperties\": + {},\r\n \"maintenanceScope\": \"OSImage\",\r\n \"maintenanceWindow\": + {\r\n \"startDateTime\": \"2020-09-30 08:00\",\r\n \"expirationDateTime\": + \"9999-12-31 00:00\",\r\n \"duration\": \"05:00\",\r\n \"timeZone\": + \"Pacific Standard Time\",\r\n \"recurEvery\": \"Month Third Sunday\"\r\n + \ },\r\n \"visibility\": \"Custom\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/microsoft.maintenance/maintenanceconfigurations/configuration1\",\r\n + \ \"name\": \"configuration1\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '770' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:00 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance assignment create + Connection: + - keep-alive + ParameterSetName: + - --maintenance-configuration-id --provider-name --resource-group --resource-name + --name --resource-type + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001","name":"clitest000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-02T02:22:02Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '428' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:01 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: '{"location": "westus", "properties": {"maintenanceConfigurationId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - maintenance assignment create + Connection: + - keep-alive + Content-Length: + - '287' + Content-Type: + - application/json + ParameterSetName: + - --maintenance-configuration-id --provider-name --resource-group --resource-name + --name --resource-type + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/configurationAssignments/configuration1?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"westus\",\r\n \"properties\": {\r\n \"maintenanceConfigurationId\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1\",\r\n + \ \"resourceId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/microsoft.compute/virtualmachinescalesets/clitestvmss\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/microsoft.compute/virtualmachinescalesets/clitestvmss/providers/Microsoft.Maintenance/configurationAssignments/configuration1\",\r\n + \ \"name\": \"configuration1\",\r\n \"type\": \"Microsoft.Maintenance/configurationAssignments\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '916' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:03 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance assignment list + Connection: + - keep-alive + ParameterSetName: + - --provider-name --resource-group --resource-name --resource-type + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/configurationAssignments?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"value\": [\r\n {\r\n \"properties\": {\r\n \"maintenanceConfigurationId\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1\"\r\n + \ },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/configurationAssignments/configuration1\",\r\n + \ \"name\": \"configuration1\",\r\n \"type\": \"Microsoft.Maintenance/configurationAssignments\"\r\n + \ }\r\n ]\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '719' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:04 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance public-configuration show + Connection: + - keep-alive + ParameterSetName: + - --resource-name + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/sql2?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": + {\r\n \"extensionProperties\": {\r\n \"publicMaintenanceConfigurationId\": + \"sql2\",\r\n \"isAvailable\": \"true\"\r\n },\r\n \"maintenanceScope\": + \"SQLDB\",\r\n \"maintenanceWindow\": {\r\n \"startDateTime\": \"2020-08-12 + 03:00\",\r\n \"expirationDateTime\": \"9999-12-31 23:59\",\r\n \"duration\": + \"05:00\",\r\n \"timeZone\": \"Pacific Standard Time\",\r\n \"recurEvery\": + \"Day\"\r\n },\r\n \"visibility\": \"Public\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/smdtest/providers/microsoft.maintenance/maintenanceconfigurations/sql2\",\r\n + \ \"name\": \"sql2\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '712' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:05 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance public-configuration list + Connection: + - keep-alive + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"value\": [\r\n {\r\n \"location\": \"eastus2euap\",\r\n + \ \"tags\": {},\r\n \"properties\": {\r\n \"extensionProperties\": + {\r\n \"publicMaintenanceConfigurationId\": \"sql2\",\r\n \"isAvailable\": + \"true\"\r\n },\r\n \"maintenanceScope\": \"SQLDB\",\r\n \"maintenanceWindow\": + {\r\n \"startDateTime\": \"2020-08-12 03:00\",\r\n \"expirationDateTime\": + \"9999-12-31 23:59\",\r\n \"duration\": \"05:00\",\r\n \"timeZone\": + \"Pacific Standard Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n + \ \"visibility\": \"Public\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/smdtest/providers/microsoft.maintenance/maintenanceconfigurations/sql2\",\r\n + \ \"name\": \"sql2\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n + \ },\r\n {\r\n \"location\": \"eastus2euap\",\r\n \"tags\": + {},\r\n \"properties\": {\r\n \"extensionProperties\": {\r\n \"publicMaintenanceConfigurationId\": + \"randomc\",\r\n \"isAvailable\": \"true\"\r\n },\r\n \"maintenanceScope\": + \"SQLDB\",\r\n \"maintenanceWindow\": {\r\n \"startDateTime\": + \"2020-08-13 03:00\",\r\n \"expirationDateTime\": \"9999-12-31 23:59\",\r\n + \ \"duration\": \"05:00\",\r\n \"timeZone\": \"Pacific Standard + Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n \"visibility\": + \"Public\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/smdtest/providers/microsoft.maintenance/maintenanceconfigurations/randomc\",\r\n + \ \"name\": \"randomc\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n + \ },\r\n {\r\n \"location\": \"eastus2euap\",\r\n \"tags\": + {},\r\n \"properties\": {\r\n \"namespace\": \"Microsoft.Maintenance\",\r\n + \ \"extensionProperties\": {\r\n \"publicMaintenanceConfigurationId\": + \"sqlcli\",\r\n \"isAvailable\": \"true\"\r\n },\r\n \"maintenanceScope\": + \"SQLDB\",\r\n \"maintenanceWindow\": {\r\n \"startDateTime\": + \"2020-09-30 08:00\",\r\n \"expirationDateTime\": \"9999-12-31 00:00\",\r\n + \ \"duration\": \"05:00\",\r\n \"timeZone\": \"Pacific Standard + Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n \"visibility\": + \"Public\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/schedulerrg/providers/microsoft.maintenance/maintenanceconfigurations/sqlcli\",\r\n + \ \"name\": \"sqlcli\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n + \ }\r\n ]\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '2497' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:05 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance update list + Connection: + - keep-alive + ParameterSetName: + - --provider-name --resource-group --resource-name --resource-type + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/updates?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"value\": []\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '19' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:06 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance applyupdate create + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --provider-name --resource-group --resource-name --resource-type + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/applyUpdates/default?api-version=2020-07-01-preview + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:07 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance applyupdate show + Connection: + - keep-alive + ParameterSetName: + - --name --provider-name --resource-group --resource-name --resource-type + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/applyUpdates/default?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"properties\": {\r\n \"status\": \"Completed\",\r\n \"resourceId\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss\",\r\n + \ \"lastUpdateTime\": \"0001-01-01T00:00:00\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/applyUpdates/default\",\r\n + \ \"name\": \"default\",\r\n \"type\": \"Microsoft.Maintenance/applyUpdates\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '673' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:08 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance assignment delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --name --provider-name --resource-group --resource-name --resource-type --yes + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss/providers/Microsoft.Maintenance/configurationAssignments/configuration1?api-version=2020-07-01-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 02 Sep 2020 02:29:10 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance configuration delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --resource-group --resource-name --yes + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/configuration1?api-version=2020-07-01-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 02 Sep 2020 02:29:11 GMT + expires: + - '-1' + pragma: + - no-cache + 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: '{"location": "eastus2euap", "properties": {"namespace": "Microsoft.Maintenance", + "extensionProperties": {"publicMaintenanceConfigurationId": "sqlcli", "isAvailable": + "true"}, "maintenanceScope": "SQLDB", "visibility": "Public", "maintenanceWindow": + {"startDateTime": "2020-09-30 08:00", "expirationDateTime": "9999-12-31 00:00", + "duration": "05:00", "timeZone": "Pacific Standard Time", "recurEvery": "Day"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - maintenance configuration create + Connection: + - keep-alive + Content-Length: + - '409' + Content-Type: + - application/json + ParameterSetName: + - --location --maintenance-scope --maintenance-window-duration --maintenance-window-expiration-date-time + --maintenance-window-recur-every --maintenance-window-start-date-time --maintenance-window-time-zone + --namespace --visibility --resource-group --resource-name --extension-properties + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/sqlcli?api-version=2020-07-01-preview + response: + body: + string: "{\r\n \"location\": \"eastus2euap\",\r\n \"tags\": {},\r\n \"properties\": + {\r\n \"namespace\": \"Microsoft.Maintenance\",\r\n \"extensionProperties\": + {\r\n \"publicMaintenanceConfigurationId\": \"sqlcli\",\r\n \"isAvailable\": + \"true\"\r\n },\r\n \"maintenanceScope\": \"SQLDB\",\r\n \"maintenanceWindow\": + {\r\n \"startDateTime\": \"2020-09-30 08:00\",\r\n \"expirationDateTime\": + \"9999-12-31 00:00\",\r\n \"duration\": \"05:00\",\r\n \"timeZone\": + \"Pacific Standard Time\",\r\n \"recurEvery\": \"Day\"\r\n },\r\n + \ \"visibility\": \"Public\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/sqlcli\",\r\n + \ \"name\": \"sqlcli\",\r\n \"type\": \"Microsoft.Maintenance/maintenanceConfigurations\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '829' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:14 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - maintenance configuration delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --resource-group --resource-name --yes + User-Agent: + - AZURECLI/2.11.1 azsdk-python-maintenanceclient/unknown Python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Maintenance/maintenanceConfigurations/sqlcli?api-version=2020-07-01-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 02 Sep 2020 02:29:16 GMT + expires: + - '-1' + pragma: + - no-cache + 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: + - vmss delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-compute/13.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss?api-version=2020-06-01 + response: + body: + string: '' + headers: + azure-asyncnotification: + - Enabled + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus/operations/d9809f49-c6cd-4959-aaa1-8fde960349cd?api-version=2020-06-01 + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 02 Sep 2020 02:29:28 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus/operations/d9809f49-c6cd-4959-aaa1-8fde960349cd?monitor=true&api-version=2020-06-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-resource: + - Microsoft.Compute/DeleteVMScaleSet3Min;79,Microsoft.Compute/DeleteVMScaleSet30Min;397,Microsoft.Compute/VMScaleSetBatchedVMRequests5Min;1199,Microsoft.Compute/VmssQueuedVMOperations;4799 + x-ms-ratelimit-remaining-subscription-deletes: + - '14999' + x-ms-request-charge: + - '1' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss delete + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-compute/13.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus/operations/d9809f49-c6cd-4959-aaa1-8fde960349cd?api-version=2020-06-01 + response: + body: + string: "{\r\n \"startTime\": \"2020-09-02T02:29:28.1762407+00:00\",\r\n \"status\": + \"InProgress\",\r\n \"name\": \"d9809f49-c6cd-4959-aaa1-8fde960349cd\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '134' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:38 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/GetOperation3Min;14997,Microsoft.Compute/GetOperation30Min;29969 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss delete + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-compute/13.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus/operations/d9809f49-c6cd-4959-aaa1-8fde960349cd?api-version=2020-06-01 + response: + body: + string: "{\r\n \"startTime\": \"2020-09-02T02:29:28.1762407+00:00\",\r\n \"status\": + \"InProgress\",\r\n \"name\": \"d9809f49-c6cd-4959-aaa1-8fde960349cd\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '134' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:29:49 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/GetOperation3Min;14996,Microsoft.Compute/GetOperation30Min;29968 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vmss delete + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.6 (Linux-4.19.76-linuxkit-x86_64-with-debian-10.3) msrest/0.6.18 + msrest_azure/0.6.4 azure-mgmt-compute/13.0.0 Azure-SDK-For-Python AZURECLI/2.11.1 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus/operations/d9809f49-c6cd-4959-aaa1-8fde960349cd?api-version=2020-06-01 + response: + body: + string: "{\r\n \"startTime\": \"2020-09-02T02:29:28.1762407+00:00\",\r\n \"endTime\": + \"2020-09-02T02:30:04.5825072+00:00\",\r\n \"status\": \"Succeeded\",\r\n + \ \"name\": \"d9809f49-c6cd-4959-aaa1-8fde960349cd\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '184' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 02 Sep 2020 02:30: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/GetOperation3Min;14994,Microsoft.Compute/GetOperation30Min;29971 + status: + code: 200 + message: OK +version: 1 diff --git a/src/maintenance/azext_maintenance/tests/latest/recordings/test_maintenance_commands.yaml b/src/maintenance/azext_maintenance/tests/latest/recordings/test_maintenance_commands.yaml deleted file mode 100644 index 75ea072b4ab..00000000000 --- a/src/maintenance/azext_maintenance/tests/latest/recordings/test_maintenance_commands.yaml +++ /dev/null @@ -1,344 +0,0 @@ -interactions: -- request: - body: !!python/unicode '{"location": "westus", "tags": {"date": "2018-04-18T06:43:11Z", - "product": "azurecli", "cause": "automation"}}' - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [group create] - Connection: [keep-alive] - Content-Length: ['110'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 resourcemanagementclient/1.2.1 Azure-SDK-For-Python - AZURECLI/2.0.32] - accept-language: [en-US] - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01 - response: - body: {string: !!python/unicode '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"westus","tags":{"date":"2018-04-18T06:43:11Z","product":"azurecli","cause":"automation"},"properties":{"provisioningState":"Succeeded"}}'} - headers: - cache-control: [no-cache] - content-length: ['274'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:43:16 GMT'] - expires: ['-1'] - pragma: [no-cache] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-ms-ratelimit-remaining-subscription-writes: ['1185'] - status: {code: 201, message: Created} -- request: - body: !!python/unicode '{"sku": {"capacity": 1, "name": "Basic_DS2"}, "tags": - {"key": "value"}, "location": "eastus", "properties": {}}' - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - Content-Length: ['111'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - accept-language: [en-US] - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":null,"hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['507'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:43:22 GMT'] - expires: ['-1'] - location: ['/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-ms-ratelimit-remaining-subscription-writes: ['1136'] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":null,"hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['507'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:43:54 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":null,"hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['507'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:44:24 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":"52.186.14.213","hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['518'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:44:56 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":"52.186.14.213","hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['518'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:45:27 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Succeeded","externalIP":"52.186.14.213","hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['519'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:45:57 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr show] - Connection: [keep-alive] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - accept-language: [en-US] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Succeeded","externalIP":"52.186.14.213","hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['519'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:46:00 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr list] - Connection: [keep-alive] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - accept-language: [en-US] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"value":[{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Succeeded","externalIP":"52.186.14.213","hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}]}'} - headers: - cache-control: [no-cache] - content-length: ['531'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:46:01 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr key list] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - accept-language: [en-US] - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002/listKeys?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"primaryKey":"jcDZZ4MraKySuGlDHIQ7Risc4xnTyN3dEjy4lZFFnVk=","secondaryKey":"A4oMGrPpHOK7/CwumXobfiDVuWRpmvNpeYCDgWtxkjk="}'} - headers: - cache-control: [no-cache] - content-length: ['123'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:46:03 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-ms-ratelimit-remaining-subscription-writes: ['1140'] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: !!python/unicode '{"keyType": "Secondary"}' - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr key renew] - Connection: [keep-alive] - Content-Length: ['24'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - accept-language: [en-US] - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002/regenerateKey?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"primaryKey":"jcDZZ4MraKySuGlDHIQ7Risc4xnTyN3dEjy4lZFFnVk=","secondaryKey":"RzZiqdcre3PMa/77KfphUUnG+Ikgz+g2e2r+3ss6JPk="}'} - headers: - cache-control: [no-cache] - content-length: ['123'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 06:46:05 GMT'] - expires: ['-1'] - location: ['https://signalrprod.eastus.cloudapp.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/operationResults/signalr000002/operationresult/43c2cf59-a595-4fe2-9695-d8d1975ea89b?api-version=2018-03-01-preview'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-ms-ratelimit-remaining-subscription-writes: ['1139'] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [group delete] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 resourcemanagementclient/1.2.1 Azure-SDK-For-Python - AZURECLI/2.0.32] - accept-language: [en-US] - method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01 - response: - body: {string: !!python/unicode ''} - headers: - cache-control: [no-cache] - content-length: ['0'] - date: ['Wed, 18 Apr 2018 06:46:08 GMT'] - expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkczNEM0V0hXU0pKLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2018-05-01'] - pragma: [no-cache] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-ms-ratelimit-remaining-subscription-writes: ['1195'] - status: {code: 202, message: Accepted} -version: 1 diff --git a/src/maintenance/azext_maintenance/tests/latest/recordings/test_maintenance_configuration_create.yaml b/src/maintenance/azext_maintenance/tests/latest/recordings/test_maintenance_configuration_create.yaml deleted file mode 100644 index 13cc85e7dd2..00000000000 --- a/src/maintenance/azext_maintenance/tests/latest/recordings/test_maintenance_configuration_create.yaml +++ /dev/null @@ -1,371 +0,0 @@ -interactions: -- request: - body: !!python/unicode '{"location": "westus", "tags": {"date": "2018-04-18T03:06:18Z", - "product": "azurecli", "cause": "automation"}}' - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [group create] - Connection: [keep-alive] - Content-Length: ['110'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 resourcemanagementclient/1.2.1 Azure-SDK-For-Python - AZURECLI/2.0.32] - accept-language: [en-US] - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01 - response: - body: {string: !!python/unicode '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"westus","tags":{"date":"2018-04-18T03:06:18Z","product":"azurecli","cause":"automation"},"properties":{"provisioningState":"Succeeded"}}'} - headers: - cache-control: [no-cache] - content-length: ['274'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:06:21 GMT'] - expires: ['-1'] - pragma: [no-cache] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-ms-ratelimit-remaining-subscription-writes: ['1138'] - status: {code: 201, message: Created} -- request: - body: !!python/unicode '{"sku": {"capacity": 1, "name": "Basic_DS2"}, "tags": - {"key": "value"}, "location": "eastus", "properties": {}}' - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - Content-Length: ['111'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - accept-language: [en-US] - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":null,"hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['507'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:06:26 GMT'] - expires: ['-1'] - location: ['/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-ms-ratelimit-remaining-subscription-writes: ['1196'] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":null,"hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['507'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:06:57 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":null,"hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['507'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:07:28 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":null,"hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['507'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:07:59 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":"13.82.48.132","hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['517'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:08:30 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":"13.82.48.132","hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['517'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:09:00 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr create] - Connection: [keep-alive] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Succeeded","externalIP":"13.82.48.132","hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['518'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:09:31 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr show] - Connection: [keep-alive] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - accept-language: [en-US] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Succeeded","externalIP":"13.82.48.132","hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}'} - headers: - cache-control: [no-cache] - content-length: ['518'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:09:34 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr list] - Connection: [keep-alive] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - accept-language: [en-US] - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"value":[{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Succeeded","externalIP":"13.82.48.132","hostName":"signalr000002.service.signalr.net","publicPort":5001,"serverPort":5002,"hostNamePrefix":null},"location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}]}'} - headers: - cache-control: [no-cache] - content-length: ['530'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:11:14 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr key list] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - accept-language: [en-US] - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002/listKeys?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"primaryKey":"K96MqMucgXF3mcTj7oFjLiiQMRPjl5+wuTAeyntEK/w=","secondaryKey":"vAV/BSQGrA81JfPzi14bsdi9wc2EV8xgis6JruMzo94="}'} - headers: - cache-control: [no-cache] - content-length: ['123'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:11:16 GMT'] - expires: ['-1'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - transfer-encoding: [chunked] - vary: [Accept-Encoding] - x-content-type-options: [nosniff] - x-ms-ratelimit-remaining-subscription-writes: ['1196'] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 200, message: OK} -- request: - body: !!python/unicode '{"keyType": "Secondary"}' - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [signalr key renew] - Connection: [keep-alive] - Content-Length: ['24'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 azure-mgmt-signalr/0.1.0 Azure-SDK-For-Python AZURECLI/2.0.32] - accept-language: [en-US] - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002/regenerateKey?api-version=2018-03-01-preview - response: - body: {string: !!python/unicode '{"primaryKey":"K96MqMucgXF3mcTj7oFjLiiQMRPjl5+wuTAeyntEK/w=","secondaryKey":"KAV5MtQTW/gXbNgEkcnluIuQLDqU7Ecpy1ljDtvOxi8="}'} - headers: - cache-control: [no-cache] - content-length: ['123'] - content-type: [application/json; charset=utf-8] - date: ['Wed, 18 Apr 2018 03:11:18 GMT'] - expires: ['-1'] - location: ['https://signalrprod.eastus.cloudapp.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/operationResults/signalr000002/operationresult/22a6ffbd-e942-4f69-8de4-150feefbcea0?api-version=2018-03-01-preview'] - pragma: [no-cache] - server: [Kestrel] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-ms-ratelimit-remaining-subscription-writes: ['1137'] - x-rp-server-mvid: [ce49f4a3-7c3a-4945-9c5c-73aa4062a6ec] - status: {code: 201, message: Created} -- request: - body: null - headers: - Accept: [application/json] - Accept-Encoding: ['gzip, deflate'] - CommandName: [group delete] - Connection: [keep-alive] - Content-Length: ['0'] - Content-Type: [application/json; charset=utf-8] - User-Agent: [python/2.7.14 (Windows-10-10.0.17133) requests/2.18.4 msrest/0.4.27 - msrest_azure/0.4.25 resourcemanagementclient/1.2.1 Azure-SDK-For-Python - AZURECLI/2.0.32] - accept-language: [en-US] - method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01 - response: - body: {string: !!python/unicode ''} - headers: - cache-control: [no-cache] - content-length: ['0'] - date: ['Wed, 18 Apr 2018 03:11:20 GMT'] - expires: ['-1'] - location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkc3WjY0N0JCT1NGLVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2018-05-01'] - pragma: [no-cache] - strict-transport-security: [max-age=31536000; includeSubDomains] - x-content-type-options: [nosniff] - x-ms-ratelimit-remaining-subscription-writes: ['1199'] - status: {code: 202, message: Accepted} -version: 1 diff --git a/src/maintenance/azext_maintenance/tests/latest/recordings/test_signalr_commands.yaml b/src/maintenance/azext_maintenance/tests/latest/recordings/test_signalr_commands.yaml deleted file mode 100644 index 2ec4d24de82..00000000000 --- a/src/maintenance/azext_maintenance/tests/latest/recordings/test_signalr_commands.yaml +++ /dev/null @@ -1,521 +0,0 @@ -interactions: -- request: - body: '{"location": "eastus", "tags": {"key": "value"}, "sku": {"name": "Basic_DS2", - "capacity": 1}, "properties": {"hostNamePrefix": "signalr000002", "features": - [{"flag": "ServiceMode", "value": "Default"}], "cors": {}, "networkACLs": {"defaultAction": - "Allow"}}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - signalr create - Connection: - - keep-alive - Content-Length: - - '261' - Content-Type: - - application/json; charset=utf-8 - ParameterSetName: - - -n -g --sku --unit-count -l --tags - User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-signalr/0.4.0 - Azure-SDK-For-Python AZURECLI/2.10.0 - accept-language: - - en-US - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/signalR/signalr000002?api-version=2020-05-01 - response: - body: - string: '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Creating","externalIP":null,"hostName":"signalr000002.service.signalr.net","publicPort":443,"serverPort":443,"version":"1.0-preview","privateEndpointConnections":[],"hostNamePrefix":"signalr000002","features":[{"flag":"ServiceMode","value":"Default","properties":{}},{"flag":"EnableConnectivityLogs","value":"False","properties":{}},{"flag":"EnableMessagingLogs","value":"False","properties":{}}],"cors":{"allowedOrigins":["*"]},"upstream":{"templates":null},"networkACLs":{"defaultAction":"Allow","publicNetwork":{"allow":["ServerConnection","ClientConnection","RESTAPI"],"deny":null},"privateEndpoints":[]}},"kind":"SignalR","location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}' - headers: - azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationStatuses/signalr000002/operationId/4ae0cfb4-8675-4b87-a9cc-a037338222a0?api-version=2020-05-01 - cache-control: - - no-cache - content-length: - - '1003' - content-type: - - application/json; charset=utf-8 - date: - - Mon, 17 Aug 2020 08:35:17 GMT - expires: - - '-1' - location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationResults/4ae0cfb4-8675-4b87-a9cc-a037338222a0/SignalR/signalr000002?api-version=2020-05-01 - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1190' - x-rp-server-mvid: - - 550a765b-13c2-41b5-b121-6b740f4e6137 - status: - code: 201 - message: Created -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - signalr create - Connection: - - keep-alive - ParameterSetName: - - -n -g --sku --unit-count -l --tags - User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-signalr/0.4.0 - Azure-SDK-For-Python AZURECLI/2.10.0 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationStatuses/signalr000002/operationId/4ae0cfb4-8675-4b87-a9cc-a037338222a0?api-version=2020-05-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationStatuses/signalr000002/operationId/4ae0cfb4-8675-4b87-a9cc-a037338222a0","name":"4ae0cfb4-8675-4b87-a9cc-a037338222a0","status":"Running","startTime":"2020-08-17T08:35:15.5035921Z"}' - headers: - cache-control: - - no-cache - content-length: - - '340' - content-type: - - application/json; charset=utf-8 - date: - - Mon, 17 Aug 2020 08:35:48 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-rp-server-mvid: - - 550a765b-13c2-41b5-b121-6b740f4e6137 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - signalr create - Connection: - - keep-alive - ParameterSetName: - - -n -g --sku --unit-count -l --tags - User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-signalr/0.4.0 - Azure-SDK-For-Python AZURECLI/2.10.0 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationStatuses/signalr000002/operationId/4ae0cfb4-8675-4b87-a9cc-a037338222a0?api-version=2020-05-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationStatuses/signalr000002/operationId/4ae0cfb4-8675-4b87-a9cc-a037338222a0","name":"4ae0cfb4-8675-4b87-a9cc-a037338222a0","status":"Running","startTime":"2020-08-17T08:35:15.5035921Z"}' - headers: - cache-control: - - no-cache - content-length: - - '340' - content-type: - - application/json; charset=utf-8 - date: - - Mon, 17 Aug 2020 08:36:18 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-rp-server-mvid: - - 550a765b-13c2-41b5-b121-6b740f4e6137 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - signalr create - Connection: - - keep-alive - ParameterSetName: - - -n -g --sku --unit-count -l --tags - User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-signalr/0.4.0 - Azure-SDK-For-Python AZURECLI/2.10.0 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationStatuses/signalr000002/operationId/4ae0cfb4-8675-4b87-a9cc-a037338222a0?api-version=2020-05-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationStatuses/signalr000002/operationId/4ae0cfb4-8675-4b87-a9cc-a037338222a0","name":"4ae0cfb4-8675-4b87-a9cc-a037338222a0","status":"Running","startTime":"2020-08-17T08:35:15.5035921Z"}' - headers: - cache-control: - - no-cache - content-length: - - '340' - content-type: - - application/json; charset=utf-8 - date: - - Mon, 17 Aug 2020 08:36:48 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-rp-server-mvid: - - 550a765b-13c2-41b5-b121-6b740f4e6137 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - signalr create - Connection: - - keep-alive - ParameterSetName: - - -n -g --sku --unit-count -l --tags - User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-signalr/0.4.0 - Azure-SDK-For-Python AZURECLI/2.10.0 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationStatuses/signalr000002/operationId/4ae0cfb4-8675-4b87-a9cc-a037338222a0?api-version=2020-05-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationStatuses/signalr000002/operationId/4ae0cfb4-8675-4b87-a9cc-a037338222a0","name":"4ae0cfb4-8675-4b87-a9cc-a037338222a0","status":"Succeeded","startTime":"2020-08-17T08:35:15.5035921Z","endTime":"2020-08-17T08:37:05.3340704Z"}' - headers: - cache-control: - - no-cache - content-length: - - '383' - content-type: - - application/json; charset=utf-8 - date: - - Mon, 17 Aug 2020 08:37:18 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-rp-server-mvid: - - 550a765b-13c2-41b5-b121-6b740f4e6137 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - signalr create - Connection: - - keep-alive - ParameterSetName: - - -n -g --sku --unit-count -l --tags - User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-signalr/0.4.0 - Azure-SDK-For-Python AZURECLI/2.10.0 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/signalR/signalr000002?api-version=2020-05-01 - response: - body: - string: '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Succeeded","externalIP":"40.71.15.8","hostName":"signalr000002.service.signalr.net","publicPort":443,"serverPort":443,"version":"1.0","privateEndpointConnections":[],"hostNamePrefix":"signalr000002","features":[{"flag":"ServiceMode","value":"Default","properties":{}},{"flag":"EnableConnectivityLogs","value":"False","properties":{}},{"flag":"EnableMessagingLogs","value":"False","properties":{}}],"cors":{"allowedOrigins":["*"]},"upstream":{"templates":null},"networkACLs":{"defaultAction":"Allow","publicNetwork":{"allow":["ServerConnection","ClientConnection","RESTAPI"],"deny":null},"privateEndpoints":[]}},"kind":"SignalR","location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}' - headers: - cache-control: - - no-cache - content-length: - - '1004' - content-type: - - application/json; charset=utf-8 - date: - - Mon, 17 Aug 2020 08:37:19 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-rp-server-mvid: - - 550a765b-13c2-41b5-b121-6b740f4e6137 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - signalr show - Connection: - - keep-alive - ParameterSetName: - - -n -g - User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-signalr/0.4.0 - Azure-SDK-For-Python AZURECLI/2.10.0 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/signalR/signalr000002?api-version=2020-05-01 - response: - body: - string: '{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Succeeded","externalIP":"40.71.15.8","hostName":"signalr000002.service.signalr.net","publicPort":443,"serverPort":443,"version":"1.0","privateEndpointConnections":[],"hostNamePrefix":"signalr000002","features":[{"flag":"ServiceMode","value":"Default","properties":{}},{"flag":"EnableConnectivityLogs","value":"False","properties":{}},{"flag":"EnableMessagingLogs","value":"False","properties":{}}],"cors":{"allowedOrigins":["*"]},"upstream":{"templates":null},"networkACLs":{"defaultAction":"Allow","publicNetwork":{"allow":["ServerConnection","ClientConnection","RESTAPI"],"deny":null},"privateEndpoints":[]}},"kind":"SignalR","location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}' - headers: - cache-control: - - no-cache - content-length: - - '1004' - content-type: - - application/json; charset=utf-8 - date: - - Mon, 17 Aug 2020 08:37:21 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-rp-server-mvid: - - 550a765b-13c2-41b5-b121-6b740f4e6137 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - signalr list - Connection: - - keep-alive - ParameterSetName: - - -g - User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-signalr/0.4.0 - Azure-SDK-For-Python AZURECLI/2.10.0 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/signalR?api-version=2020-05-01 - response: - body: - string: '{"value":[{"sku":{"name":"Basic_DS2","tier":"Basic","size":"DS2","capacity":1},"properties":{"provisioningState":"Succeeded","externalIP":"40.71.15.8","hostName":"signalr000002.service.signalr.net","publicPort":443,"serverPort":443,"version":"1.0","privateEndpointConnections":[],"hostNamePrefix":"signalr000002","features":[{"flag":"ServiceMode","value":"Default","properties":{}},{"flag":"EnableConnectivityLogs","value":"False","properties":{}},{"flag":"EnableMessagingLogs","value":"False","properties":{}}],"cors":{"allowedOrigins":["*"]},"upstream":{"templates":null},"networkACLs":{"defaultAction":"Allow","publicNetwork":{"allow":["ServerConnection","ClientConnection","RESTAPI"],"deny":null},"privateEndpoints":[]}},"kind":"SignalR","location":"eastus","tags":{"key":"value"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/SignalR/signalr000002","name":"signalr000002","type":"Microsoft.SignalRService/SignalR"}]}' - headers: - cache-control: - - no-cache - content-length: - - '1016' - content-type: - - application/json; charset=utf-8 - date: - - Mon, 17 Aug 2020 08:37:22 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-rp-server-mvid: - - 550a765b-13c2-41b5-b121-6b740f4e6137 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - signalr key list - Connection: - - keep-alive - Content-Length: - - '0' - ParameterSetName: - - -n -g - User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-signalr/0.4.0 - Azure-SDK-For-Python AZURECLI/2.10.0 - accept-language: - - en-US - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/signalR/signalr000002/listKeys?api-version=2020-05-01 - response: - body: - string: '{"primaryKey":"ywm2SYPFAQxFWdua3j6ftjyyy8n3O04PC9mAw2Q9UTM=","secondaryKey":"NoqGPOQxGoCFgirJFf522a9qiMvZeoOmqAwqwppu7IU=","primaryConnectionString":"Endpoint=https://signalr000002.service.signalr.net;AccessKey=ywm2SYPFAQxFWdua3j6ftjyyy8n3O04PC9mAw2Q9UTM=;Version=1.0;","secondaryConnectionString":"Endpoint=https://signalr000002.service.signalr.net;AccessKey=NoqGPOQxGoCFgirJFf522a9qiMvZeoOmqAwqwppu7IU=;Version=1.0;"}' - headers: - cache-control: - - no-cache - content-length: - - '425' - content-type: - - application/json; charset=utf-8 - date: - - Mon, 17 Aug 2020 08:37:24 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1197' - x-rp-server-mvid: - - 550a765b-13c2-41b5-b121-6b740f4e6137 - status: - code: 200 - message: OK -- request: - body: '{"keyType": "Secondary"}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - signalr key renew - Connection: - - keep-alive - Content-Length: - - '24' - Content-Type: - - application/json; charset=utf-8 - ParameterSetName: - - -n -g --key-type - User-Agent: - - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-signalr/0.4.0 - Azure-SDK-For-Python AZURECLI/2.10.0 - accept-language: - - en-US - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/signalR/signalr000002/regenerateKey?api-version=2020-05-01 - response: - body: - string: '{"primaryKey":"ywm2SYPFAQxFWdua3j6ftjyyy8n3O04PC9mAw2Q9UTM=","secondaryKey":"eYJNextta8yAw5JSCV6eFXa46VKaNH6FcRRYHBPzRpA=","primaryConnectionString":"Endpoint=https://signalr000002.service.signalr.net;AccessKey=ywm2SYPFAQxFWdua3j6ftjyyy8n3O04PC9mAw2Q9UTM=;Version=1.0;","secondaryConnectionString":"Endpoint=https://signalr000002.service.signalr.net;AccessKey=eYJNextta8yAw5JSCV6eFXa46VKaNH6FcRRYHBPzRpA=;Version=1.0;"}' - headers: - azure-asyncoperation: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationStatuses/signalr000002/operationId/f3e9b871-eb7f-4efb-ab57-dec623a13807?api-version=2020-05-01 - cache-control: - - no-cache - content-length: - - '425' - content-type: - - application/json; charset=utf-8 - date: - - Mon, 17 Aug 2020 08:37:25 GMT - expires: - - '-1' - location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.SignalRService/locations/eastus/operationResults/f3e9b871-eb7f-4efb-ab57-dec623a13807/SignalR/signalr000002?api-version=2020-05-01 - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - x-rp-server-mvid: - - 550a765b-13c2-41b5-b121-6b740f4e6137 - status: - code: 201 - message: Created -version: 1 diff --git a/src/maintenance/azext_maintenance/tests/latest/test_maintenance_commands.py b/src/maintenance/azext_maintenance/tests/latest/test_maintenance_commands.py deleted file mode 100644 index 3fcbc4d55b8..00000000000 --- a/src/maintenance/azext_maintenance/tests/latest/test_maintenance_commands.py +++ /dev/null @@ -1,79 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import time -import unittest -from azure.cli.testsdk import ScenarioTest, ResourceGroupPreparer - - -class AzureMaintenanceScenarioTest(ScenarioTest): - @ResourceGroupPreparer(random_name_length=20) - def test_signalr_commands(self, resource_group): - signalr_name = self.create_random_name('signalr', 16) - sku = 'Basic_DS2' - unit_count = 1 - location = 'eastus' - tags_key = 'key' - tags_val = 'value' - - self.kwargs.update({ - 'location': location, - 'signalr_name': signalr_name, - 'sku': sku, - 'unit_count': unit_count, - 'tags': '{}={}'.format(tags_key, tags_val) - }) - - # Test create - self.cmd('az signalr create -n {signalr_name} -g {rg} --sku {sku} --unit-count {unit_count} -l {location} --tags {tags}', - checks=[ - self.check('name', '{signalr_name}'), - self.check('location', '{location}'), - self.check('provisioningState', 'Succeeded'), - self.check('sku.name', '{sku}'), - self.check('sku.capacity', '{unit_count}'), - self.check('tags.{}'.format(tags_key), tags_val), - self.exists('hostName'), - self.exists('publicPort'), - self.exists('serverPort'), - ]) - - # Test show - self.cmd('az signalr show -n {signalr_name} -g {rg}', checks=[ - self.check('name', '{signalr_name}'), - self.check('location', '{location}'), - self.check('provisioningState', 'Succeeded'), - self.check('sku.name', '{sku}'), - self.check('sku.capacity', '{unit_count}'), - self.exists('hostName'), - self.exists('publicPort'), - self.exists('serverPort'), - self.exists('externalIp') - ]) - - # Test list - self.cmd('az signalr list -g {rg}', checks=[ - self.check('[0].name', '{signalr_name}'), - self.check('[0].location', '{location}'), - self.check('[0].provisioningState', 'Succeeded'), - self.check('[0].sku.name', '{sku}'), - self.check('[0].sku.capacity', '{unit_count}'), - self.exists('[0].hostName'), - self.exists('[0].publicPort'), - self.exists('[0].serverPort'), - self.exists('[0].externalIp') - ]) - - # Test key list - self.cmd('az signalr key list -n {signalr_name} -g {rg}', checks=[ - self.exists('primaryKey'), - self.exists('secondaryKey') - ]) - - # Test key renew - self.cmd('az signalr key renew -n {signalr_name} -g {rg} --key-type secondary', checks=[ - self.exists('primaryKey'), - self.exists('secondaryKey') - ]) diff --git a/src/maintenance/azext_maintenance/tests/latest/test_maintenance_scenario.py b/src/maintenance/azext_maintenance/tests/latest/test_maintenance_scenario.py new file mode 100644 index 00000000000..aba6a30c112 --- /dev/null +++ b/src/maintenance/azext_maintenance/tests/latest/test_maintenance_scenario.py @@ -0,0 +1,305 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import os +from azure.cli.testsdk import ScenarioTest +from .. import try_manual, raise_if, calc_coverage +from azure.cli.testsdk import ResourceGroupPreparer + + +TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) + + +@try_manual +def setup(test, rg): + pass + + +# EXAMPLE: /ApplyUpdates/put/ApplyUpdates_CreateOrUpdate +@try_manual +def step__applyupdates_put_applyupdates_createorupdate(test, rg): + test.cmd('az maintenance applyupdate create ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdtest1" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +# EXAMPLE: /ApplyUpdates/put/ApplyUpdates_CreateOrUpdateParent +@try_manual +def step__applyupdates_put_applyupdates_createorupdateparent(test, rg): + test.cmd('az maintenance applyupdate create ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdvm1" ' + '--resource-parent-name "smdtest1" ' + '--resource-parent-type "virtualMachineScaleSets" ' + '--resource-type "virtualMachines"', + checks=[]) + + +# EXAMPLE: /ApplyUpdates/get/ApplyUpdates_Get +@try_manual +def step__applyupdates_get_applyupdates_get(test, rg): + test.cmd('az maintenance applyupdate show ' + '--name "{myApplyUpdate}" ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdtest1" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +# EXAMPLE: /ApplyUpdates/get/ApplyUpdates_GetParent +@try_manual +def step__applyupdates_get_applyupdates_getparent(test, rg): + test.cmd('az maintenance applyupdate get-parent ' + '--name "{myApplyUpdate}" ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdvm1" ' + '--resource-parent-name "smdtest1" ' + '--resource-parent-type "virtualMachineScaleSets" ' + '--resource-type "virtualMachines"', + checks=[]) + + +# EXAMPLE: /MaintenanceConfigurations/put/MaintenanceConfigurations_CreateOrUpdateForResource +@try_manual +def step__maintenanceconfigurations_put_maintenanceconfigurations_createorupdateforresource(test, rg): + test.cmd('az maintenance configuration create ' + '--location "westus2" ' + '--maintenance-scope "OSImage" ' + '--maintenance-window-duration "05:00" ' + '--maintenance-window-expiration-date-time "9999-12-31 00:00" ' + '--maintenance-window-recur-every "Day" ' + '--maintenance-window-start-date-time "2020-04-30 08:00" ' + '--maintenance-window-time-zone "Pacific Standard Time" ' + '--namespace "Microsoft.Maintenance" ' + '--visibility "Custom" ' + '--resource-group "{rg}" ' + '--resource-name "{myMaintenanceConfiguration2}"', + checks=[]) + + +# EXAMPLE: /MaintenanceConfigurations/get/MaintenanceConfigurations_GetForResource +@try_manual +def step__maintenanceconfigurations_get_maintenanceconfigurations_getforresource(test, rg): + test.cmd('az maintenance configuration show ' + '--resource-group "{rg}" ' + '--resource-name "{myMaintenanceConfiguration2}"', + checks=[]) + + +# EXAMPLE: /MaintenanceConfigurations/get/MaintenanceConfigurations_List +@try_manual +def step__maintenanceconfigurations_get_maintenanceconfigurations_list(test, rg): + test.cmd('az maintenance configuration list', + checks=[]) + + +# EXAMPLE: /MaintenanceConfigurations/patch/MaintenanceConfigurations_UpdateForResource +@try_manual +def step__maintenanceconfigurations_patch_maintenanceconfigurations_updateforresource(test, rg): + test.cmd('az maintenance configuration update ' + '--location "westus2" ' + '--maintenance-scope "OSImage" ' + '--maintenance-window-duration "05:00" ' + '--maintenance-window-expiration-date-time "9999-12-31 00:00" ' + '--maintenance-window-recur-every "Month Third Sunday" ' + '--maintenance-window-start-date-time "2020-04-30 08:00" ' + '--maintenance-window-time-zone "Pacific Standard Time" ' + '--namespace "Microsoft.Maintenance" ' + '--visibility "Custom" ' + '--resource-group "{rg}" ' + '--resource-name "{myMaintenanceConfiguration2}"', + checks=[]) + + +# EXAMPLE: /ConfigurationAssignments/put/ConfigurationAssignments_CreateOrUpdate +@try_manual +def step__configurationassignments_put_configurationassignments_createorupdate(test, rg): + test.cmd('az maintenance assignment create ' + '--maintenance-configuration-id "/subscriptions/{subscription_id}/resourcegroups/{rg}/providers/Microsoft.' + 'Maintenance/maintenanceConfigurations/{myMaintenanceConfiguration2}" ' + '--name "{myConfigurationAssignment2}" ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdtest1" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +# EXAMPLE: /ConfigurationAssignments/put/ConfigurationAssignments_CreateOrUpdateParent +@try_manual +def step__configurationassignments_put_configurationassignments_createorupdateparent(test, rg): + test.cmd('az maintenance assignment create ' + '--maintenance-configuration-id "/subscriptions/{subscription_id}/resourcegroups/{rg}/providers/Microsoft.' + 'Maintenance/maintenanceConfigurations/{myMaintenanceConfiguration}" ' + '--name "{myConfigurationAssignment}" ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdvm1" ' + '--resource-parent-name "smdtest1" ' + '--resource-parent-type "virtualMachineScaleSets" ' + '--resource-type "virtualMachines"', + checks=[]) + + +# EXAMPLE: /ConfigurationAssignments/get/ConfigurationAssignments_List +@try_manual +def step__configurationassignments_get_configurationassignments_list(test, rg): + test.cmd('az maintenance assignment list ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdtest1" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +# EXAMPLE: /ConfigurationAssignments/get/ConfigurationAssignments_ListParent +@try_manual +def step__configurationassignments_get_configurationassignments_listparent(test, rg): + test.cmd('az maintenance assignment list-parent ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdtestvm1" ' + '--resource-parent-name "smdtest1" ' + '--resource-parent-type "virtualMachineScaleSets" ' + '--resource-type "virtualMachines"', + checks=[]) + + +# EXAMPLE: /ConfigurationAssignments/delete/ConfigurationAssignments_DeleteParent +@try_manual +def step__configurationassignments_delete_configurationassignments_deleteparent(test, rg): + test.cmd('az maintenance assignment delete -y ' + '--name "{myConfigurationAssignment2}" ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdvm1" ' + '--resource-parent-name "smdtest1" ' + '--resource-parent-type "virtualMachineScaleSets" ' + '--resource-type "virtualMachines"', + checks=[]) + + +# EXAMPLE: /PublicMaintenanceConfigurations/get/PublicMaintenanceConfigurations_GetForResource +@try_manual +def step__publicmaintenanceconfigurations_get_publicmaintenanceconfigurations_getforresource(test, rg): + test.cmd('az maintenance public-configuration show ' + '--resource-name "{myMaintenanceConfiguration2}"', + checks=[]) + + +# EXAMPLE: /PublicMaintenanceConfigurations/get/PublicMaintenanceConfigurations_List +@try_manual +def step__publicmaintenanceconfigurations_get_publicmaintenanceconfigurations_list(test, rg): + test.cmd('az maintenance public-configuration list', + checks=[]) + + +# EXAMPLE: /Updates/get/Updates_List +@try_manual +def step__updates_get_updates_list(test, rg): + test.cmd('az maintenance update list ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdtest1" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +# EXAMPLE: /Updates/get/Updates_ListParent +@try_manual +def step__updates_get_updates_listparent(test, rg): + test.cmd('az maintenance update list-parent ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "1" ' + '--resource-parent-name "smdtest1" ' + '--resource-parent-type "virtualMachineScaleSets" ' + '--resource-type "virtualMachines"', + checks=[]) + + +# EXAMPLE: /ConfigurationAssignments/delete/ConfigurationAssignments_Delete +@try_manual +def step__configurationassignments_delete_configurationassignments_delete(test, rg): + test.cmd('az maintenance assignment delete -y ' + '--name "{myConfigurationAssignment2}" ' + '--provider-name "Microsoft.Compute" ' + '--resource-group "{rg}" ' + '--resource-name "smdtest1" ' + '--resource-type "virtualMachineScaleSets"', + checks=[]) + + +# EXAMPLE: /MaintenanceConfigurations/delete/MaintenanceConfigurations_DeleteForResource +@try_manual +def step__maintenanceconfigurations_delete_maintenanceconfigurations_deleteforresource(test, rg): + test.cmd('az maintenance configuration delete -y ' + '--resource-group "{rg}" ' + '--resource-name "example1"', + checks=[]) + + +@try_manual +def cleanup(test, rg): + pass + + +@try_manual +def call_scenario(test, rg): + setup(test, rg) + step__applyupdates_put_applyupdates_createorupdate(test, rg) + step__applyupdates_put_applyupdates_createorupdateparent(test, rg) + step__applyupdates_get_applyupdates_get(test, rg) + step__applyupdates_get_applyupdates_getparent(test, rg) + step__maintenanceconfigurations_put_maintenanceconfigurations_createorupdateforresource(test, rg) + step__maintenanceconfigurations_get_maintenanceconfigurations_getforresource(test, rg) + step__maintenanceconfigurations_get_maintenanceconfigurations_list(test, rg) + step__maintenanceconfigurations_patch_maintenanceconfigurations_updateforresource(test, rg) + step__configurationassignments_put_configurationassignments_createorupdate(test, rg) + step__configurationassignments_put_configurationassignments_createorupdateparent(test, rg) + step__configurationassignments_get_configurationassignments_list(test, rg) + step__configurationassignments_get_configurationassignments_listparent(test, rg) + step__configurationassignments_delete_configurationassignments_deleteparent(test, rg) + step__publicmaintenanceconfigurations_get_publicmaintenanceconfigurations_getforresource(test, rg) + step__publicmaintenanceconfigurations_get_publicmaintenanceconfigurations_list(test, rg) + step__updates_get_updates_list(test, rg) + step__updates_get_updates_listparent(test, rg) + step__configurationassignments_delete_configurationassignments_delete(test, rg) + step__maintenanceconfigurations_delete_maintenanceconfigurations_deleteforresource(test, rg) + cleanup(test, rg) + + +@try_manual +class MaintenanceClientScenarioTest(ScenarioTest): + + @ResourceGroupPreparer(name_prefix='clitestmaintenance_examplerg'[:7], key='rg', parameter_name='rg') + def test_maintenance(self, rg): + + self.kwargs.update({ + 'subscription_id': self.get_subscription_id() + }) + + self.kwargs.update({ + 'e9b9685d-78e4-44c4-a81c-64a14f9b87b6': 'e9b9685d-78e4-44c4-a81c-64a14f9b87b6', + 'policy1': 'policy1', + 'MaintenanceConfigurations_2': 'configuration1', + 'workervmConfiguration': 'workervmConfiguration', + 'ConfigurationAssignments_2': 'workervmPolicy', + }) + + call_scenario(self, rg) + calc_coverage(__file__) + raise_if() diff --git a/src/maintenance/azext_maintenance/tests/latest/test_maintenance_scenario_coverage.md b/src/maintenance/azext_maintenance/tests/latest/test_maintenance_scenario_coverage.md new file mode 100644 index 00000000000..cb712843009 --- /dev/null +++ b/src/maintenance/azext_maintenance/tests/latest/test_maintenance_scenario_coverage.md @@ -0,0 +1,2 @@ +|Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt| +Coverage: 0/0 diff --git a/src/maintenance/azext_maintenance/tests/res.json b/src/maintenance/azext_maintenance/tests/res.json deleted file mode 100644 index b2793c2c353..00000000000 Binary files a/src/maintenance/azext_maintenance/tests/res.json and /dev/null differ diff --git a/src/maintenance/azext_maintenance/vendored_sdks/__init__.py b/src/maintenance/azext_maintenance/vendored_sdks/__init__.py index 430734215b5..c9cfdc73e77 100644 --- a/src/maintenance/azext_maintenance/vendored_sdks/__init__.py +++ b/src/maintenance/azext_maintenance/vendored_sdks/__init__.py @@ -9,9 +9,4 @@ # regenerated. # -------------------------------------------------------------------------- -from .maintenance_management_client import MaintenanceManagementClient -from .version import VERSION - -__all__ = ['MaintenanceManagementClient'] - -__version__ = VERSION +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/__init__.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/__init__.py new file mode 100644 index 00000000000..986c9f75bfb --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/__init__.py @@ -0,0 +1,16 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._maintenance_client import MaintenanceClient +__all__ = ['MaintenanceClient'] + +try: + from ._patch import patch_sdk # type: ignore + patch_sdk() +except ImportError: + pass diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/_configuration.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/_configuration.py new file mode 100644 index 00000000000..2625b159846 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/_configuration.py @@ -0,0 +1,71 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import TYPE_CHECKING + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + + from azure.core.credentials import TokenCredential + +VERSION = "unknown" + +class MaintenanceClientConfiguration(Configuration): + """Configuration for MaintenanceClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param subscription_id: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + """ + + def __init__( + self, + credential, # type: "TokenCredential" + subscription_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + super(MaintenanceClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.subscription_id = subscription_id + self.api_version = "2020-07-01-preview" + self.credential_scopes = ['https://management.azure.com/.default'] + self.credential_scopes.extend(kwargs.pop('credential_scopes', [])) + kwargs.setdefault('sdk_moniker', 'maintenanceclient/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs # type: Any + ): + # type: (...) -> None + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/_maintenance_client.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/_maintenance_client.py new file mode 100644 index 00000000000..9a655692155 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/_maintenance_client.py @@ -0,0 +1,94 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import TYPE_CHECKING + +from azure.mgmt.core import ARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Optional + + from azure.core.credentials import TokenCredential + +from ._configuration import MaintenanceClientConfiguration +from .operations import PublicMaintenanceConfigurationOperations +from .operations import ApplyUpdateOperations +from .operations import ConfigurationAssignmentOperations +from .operations import MaintenanceConfigurationOperations +from .operations import OperationOperations +from .operations import UpdateOperations +from . import models + + +class MaintenanceClient(object): + """Maintenance Client. + + :ivar public_maintenance_configuration: PublicMaintenanceConfigurationOperations operations + :vartype public_maintenance_configuration: maintenance_client.operations.PublicMaintenanceConfigurationOperations + :ivar apply_update: ApplyUpdateOperations operations + :vartype apply_update: maintenance_client.operations.ApplyUpdateOperations + :ivar configuration_assignment: ConfigurationAssignmentOperations operations + :vartype configuration_assignment: maintenance_client.operations.ConfigurationAssignmentOperations + :ivar maintenance_configuration: MaintenanceConfigurationOperations operations + :vartype maintenance_configuration: maintenance_client.operations.MaintenanceConfigurationOperations + :ivar operation: OperationOperations operations + :vartype operation: maintenance_client.operations.OperationOperations + :ivar update: UpdateOperations operations + :vartype update: maintenance_client.operations.UpdateOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param subscription_id: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential, # type: "TokenCredential" + subscription_id, # type: str + base_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> None + if not base_url: + base_url = 'https://management.azure.com' + self._config = MaintenanceClientConfiguration(credential, subscription_id, **kwargs) + self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.public_maintenance_configuration = PublicMaintenanceConfigurationOperations( + self._client, self._config, self._serialize, self._deserialize) + self.apply_update = ApplyUpdateOperations( + self._client, self._config, self._serialize, self._deserialize) + self.configuration_assignment = ConfigurationAssignmentOperations( + self._client, self._config, self._serialize, self._deserialize) + self.maintenance_configuration = MaintenanceConfigurationOperations( + self._client, self._config, self._serialize, self._deserialize) + self.operation = OperationOperations( + self._client, self._config, self._serialize, self._deserialize) + self.update = UpdateOperations( + self._client, self._config, self._serialize, self._deserialize) + + def close(self): + # type: () -> None + self._client.close() + + def __enter__(self): + # type: () -> MaintenanceClient + self._client.__enter__() + return self + + def __exit__(self, *exc_details): + # type: (Any) -> None + self._client.__exit__(*exc_details) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/__init__.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/__init__.py new file mode 100644 index 00000000000..0819299aee3 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/__init__.py @@ -0,0 +1,10 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._maintenance_client_async import MaintenanceClient +__all__ = ['MaintenanceClient'] diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/_configuration_async.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/_configuration_async.py new file mode 100644 index 00000000000..2742c40df71 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/_configuration_async.py @@ -0,0 +1,67 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, TYPE_CHECKING + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies +from azure.mgmt.core.policies import ARMHttpLoggingPolicy + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +VERSION = "unknown" + +class MaintenanceClientConfiguration(Configuration): + """Configuration for MaintenanceClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param subscription_id: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + subscription_id: str, + **kwargs: Any + ) -> None: + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + super(MaintenanceClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.subscription_id = subscription_id + self.api_version = "2020-07-01-preview" + self.credential_scopes = ['https://management.azure.com/.default'] + self.credential_scopes.extend(kwargs.pop('credential_scopes', [])) + kwargs.setdefault('sdk_moniker', 'maintenanceclient/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs: Any + ) -> None: + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/_maintenance_client_async.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/_maintenance_client_async.py new file mode 100644 index 00000000000..b04b86b6e96 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/_maintenance_client_async.py @@ -0,0 +1,88 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, Optional, TYPE_CHECKING + +from azure.mgmt.core import AsyncARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +from ._configuration_async import MaintenanceClientConfiguration +from .operations_async import PublicMaintenanceConfigurationOperations +from .operations_async import ApplyUpdateOperations +from .operations_async import ConfigurationAssignmentOperations +from .operations_async import MaintenanceConfigurationOperations +from .operations_async import OperationOperations +from .operations_async import UpdateOperations +from .. import models + + +class MaintenanceClient(object): + """Maintenance Client. + + :ivar public_maintenance_configuration: PublicMaintenanceConfigurationOperations operations + :vartype public_maintenance_configuration: maintenance_client.aio.operations_async.PublicMaintenanceConfigurationOperations + :ivar apply_update: ApplyUpdateOperations operations + :vartype apply_update: maintenance_client.aio.operations_async.ApplyUpdateOperations + :ivar configuration_assignment: ConfigurationAssignmentOperations operations + :vartype configuration_assignment: maintenance_client.aio.operations_async.ConfigurationAssignmentOperations + :ivar maintenance_configuration: MaintenanceConfigurationOperations operations + :vartype maintenance_configuration: maintenance_client.aio.operations_async.MaintenanceConfigurationOperations + :ivar operation: OperationOperations operations + :vartype operation: maintenance_client.aio.operations_async.OperationOperations + :ivar update: UpdateOperations operations + :vartype update: maintenance_client.aio.operations_async.UpdateOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param subscription_id: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + :type subscription_id: str + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + subscription_id: str, + base_url: Optional[str] = None, + **kwargs: Any + ) -> None: + if not base_url: + base_url = 'https://management.azure.com' + self._config = MaintenanceClientConfiguration(credential, subscription_id, **kwargs) + self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.public_maintenance_configuration = PublicMaintenanceConfigurationOperations( + self._client, self._config, self._serialize, self._deserialize) + self.apply_update = ApplyUpdateOperations( + self._client, self._config, self._serialize, self._deserialize) + self.configuration_assignment = ConfigurationAssignmentOperations( + self._client, self._config, self._serialize, self._deserialize) + self.maintenance_configuration = MaintenanceConfigurationOperations( + self._client, self._config, self._serialize, self._deserialize) + self.operation = OperationOperations( + self._client, self._config, self._serialize, self._deserialize) + self.update = UpdateOperations( + self._client, self._config, self._serialize, self._deserialize) + + async def close(self) -> None: + await self._client.close() + + async def __aenter__(self) -> "MaintenanceClient": + await self._client.__aenter__() + return self + + async def __aexit__(self, *exc_details) -> None: + await self._client.__aexit__(*exc_details) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/__init__.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/__init__.py new file mode 100644 index 00000000000..32e852e6b67 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/__init__.py @@ -0,0 +1,23 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._public_maintenance_configuration_operations_async import PublicMaintenanceConfigurationOperations +from ._apply_update_operations_async import ApplyUpdateOperations +from ._configuration_assignment_operations_async import ConfigurationAssignmentOperations +from ._maintenance_configuration_operations_async import MaintenanceConfigurationOperations +from ._operation_operations_async import OperationOperations +from ._update_operations_async import UpdateOperations + +__all__ = [ + 'PublicMaintenanceConfigurationOperations', + 'ApplyUpdateOperations', + 'ConfigurationAssignmentOperations', + 'MaintenanceConfigurationOperations', + 'OperationOperations', + 'UpdateOperations', +] diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_apply_update_operations_async.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_apply_update_operations_async.py new file mode 100644 index 00000000000..41976323244 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_apply_update_operations_async.py @@ -0,0 +1,325 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ApplyUpdateOperations: + """ApplyUpdateOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def get_parent( + self, + resource_group_name: str, + resource_parent_type: str, + resource_parent_name: str, + provider_name: str, + resource_type: str, + resource_name: str, + apply_update_name: str, + **kwargs + ) -> "models.ApplyUpdate": + """Track Updates to resource with parent. + + Track maintenance updates to resource with parent. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param apply_update_name: applyUpdate Id. + :type apply_update_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApplyUpdate, or the result of cls(response) + :rtype: ~maintenance_client.models.ApplyUpdate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ApplyUpdate"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.get_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'applyUpdateName': self._serialize.url("apply_update_name", apply_update_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApplyUpdate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/{applyUpdateName}'} # type: ignore + + async def get( + self, + resource_group_name: str, + provider_name: str, + resource_type: str, + resource_name: str, + apply_update_name: str, + **kwargs + ) -> "models.ApplyUpdate": + """Track Updates to resource. + + Track maintenance updates to resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param apply_update_name: applyUpdate Id. + :type apply_update_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApplyUpdate, or the result of cls(response) + :rtype: ~maintenance_client.models.ApplyUpdate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ApplyUpdate"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'applyUpdateName': self._serialize.url("apply_update_name", apply_update_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApplyUpdate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/{applyUpdateName}'} # type: ignore + + async def create_or_update_parent( + self, + resource_group_name: str, + provider_name: str, + resource_parent_type: str, + resource_parent_name: str, + resource_type: str, + resource_name: str, + **kwargs + ) -> "models.ApplyUpdate": + """Apply Updates to resource with parent. + + Apply maintenance updates to resource with parent. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApplyUpdate, or the result of cls(response) + :rtype: ~maintenance_client.models.ApplyUpdate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ApplyUpdate"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.create_or_update_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApplyUpdate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/default'} # type: ignore + + async def create_or_update( + self, + resource_group_name: str, + provider_name: str, + resource_type: str, + resource_name: str, + **kwargs + ) -> "models.ApplyUpdate": + """Apply Updates to resource. + + Apply maintenance updates to resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApplyUpdate, or the result of cls(response) + :rtype: ~maintenance_client.models.ApplyUpdate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ApplyUpdate"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApplyUpdate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/default'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_configuration_assignment_operations_async.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_configuration_assignment_operations_async.py new file mode 100644 index 00000000000..a8848aa2f66 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_configuration_assignment_operations_async.py @@ -0,0 +1,538 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ConfigurationAssignmentOperations: + """ConfigurationAssignmentOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def create_or_update_parent( + self, + resource_group_name: str, + provider_name: str, + resource_parent_type: str, + resource_parent_name: str, + resource_type: str, + resource_name: str, + configuration_assignment_name: str, + location: Optional[str] = None, + maintenance_configuration_id: Optional[str] = None, + resource_id: Optional[str] = None, + **kwargs + ) -> "models.ConfigurationAssignment": + """Create configuration assignment. + + Register configuration for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param configuration_assignment_name: Configuration assignment name. + :type configuration_assignment_name: str + :param location: Location of the resource. + :type location: str + :param maintenance_configuration_id: The maintenance configuration Id. + :type maintenance_configuration_id: str + :param resource_id: The unique resourceId. + :type resource_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConfigurationAssignment, or the result of cls(response) + :rtype: ~maintenance_client.models.ConfigurationAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationAssignment"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _configuration_assignment = models.ConfigurationAssignment(location=location, maintenance_configuration_id=maintenance_configuration_id, resource_id=resource_id) + api_version = "2020-07-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.create_or_update_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_configuration_assignment, 'ConfigurationAssignment') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConfigurationAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} # type: ignore + + async def delete_parent( + self, + resource_group_name: str, + provider_name: str, + resource_parent_type: str, + resource_parent_name: str, + resource_type: str, + resource_name: str, + configuration_assignment_name: str, + **kwargs + ) -> "models.ConfigurationAssignment": + """Unregister configuration for resource. + + Unregister configuration for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param configuration_assignment_name: Unique configuration assignment name. + :type configuration_assignment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConfigurationAssignment, or the result of cls(response) + :rtype: ~maintenance_client.models.ConfigurationAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationAssignment"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.delete_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConfigurationAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + delete_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} # type: ignore + + async def create_or_update( + self, + resource_group_name: str, + provider_name: str, + resource_type: str, + resource_name: str, + configuration_assignment_name: str, + location: Optional[str] = None, + maintenance_configuration_id: Optional[str] = None, + resource_id: Optional[str] = None, + **kwargs + ) -> "models.ConfigurationAssignment": + """Create configuration assignment. + + Register configuration for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param configuration_assignment_name: Configuration assignment name. + :type configuration_assignment_name: str + :param location: Location of the resource. + :type location: str + :param maintenance_configuration_id: The maintenance configuration Id. + :type maintenance_configuration_id: str + :param resource_id: The unique resourceId. + :type resource_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConfigurationAssignment, or the result of cls(response) + :rtype: ~maintenance_client.models.ConfigurationAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationAssignment"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _configuration_assignment = models.ConfigurationAssignment(location=location, maintenance_configuration_id=maintenance_configuration_id, resource_id=resource_id) + api_version = "2020-07-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_configuration_assignment, 'ConfigurationAssignment') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConfigurationAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} # type: ignore + + async def delete( + self, + resource_group_name: str, + provider_name: str, + resource_type: str, + resource_name: str, + configuration_assignment_name: str, + **kwargs + ) -> "models.ConfigurationAssignment": + """Unregister configuration for resource. + + Unregister configuration for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param configuration_assignment_name: Unique configuration assignment name. + :type configuration_assignment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConfigurationAssignment, or the result of cls(response) + :rtype: ~maintenance_client.models.ConfigurationAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationAssignment"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConfigurationAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} # type: ignore + + def list_parent( + self, + resource_group_name: str, + provider_name: str, + resource_parent_type: str, + resource_parent_name: str, + resource_type: str, + resource_name: str, + **kwargs + ) -> AsyncIterable["models.ListConfigurationAssignmentsResult"]: + """List configurationAssignments for resource. + + List configurationAssignments for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListConfigurationAssignmentsResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~maintenance_client.models.ListConfigurationAssignmentsResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListConfigurationAssignmentsResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ListConfigurationAssignmentsResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments'} # type: ignore + + def list( + self, + resource_group_name: str, + provider_name: str, + resource_type: str, + resource_name: str, + **kwargs + ) -> AsyncIterable["models.ListConfigurationAssignmentsResult"]: + """List configurationAssignments for resource. + + List configurationAssignments for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListConfigurationAssignmentsResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~maintenance_client.models.ListConfigurationAssignmentsResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListConfigurationAssignmentsResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ListConfigurationAssignmentsResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_maintenance_configuration_operations_async.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_maintenance_configuration_operations_async.py new file mode 100644 index 00000000000..8d9967c415b --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_maintenance_configuration_operations_async.py @@ -0,0 +1,458 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class MaintenanceConfigurationOperations: + """MaintenanceConfigurationOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def get( + self, + resource_group_name: str, + resource_name: str, + **kwargs + ) -> "models.MaintenanceConfiguration": + """Get Configuration record. + + Get Configuration record. + + :param resource_group_name: Resource Group Name. + :type resource_group_name: str + :param resource_name: Resource Identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~maintenance_client.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MaintenanceConfiguration"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.MaintenanceError, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} # type: ignore + + async def create_or_update( + self, + resource_group_name: str, + resource_name: str, + location: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + namespace: Optional[str] = None, + extension_properties: Optional[Dict[str, str]] = None, + maintenance_scope: Optional[Union[str, "models.MaintenanceScope"]] = None, + visibility: Optional[Union[str, "models.Visibility"]] = None, + start_date_time: Optional[str] = None, + expiration_date_time: Optional[str] = None, + duration: Optional[str] = None, + time_zone: Optional[str] = None, + recur_every: Optional[str] = None, + **kwargs + ) -> "models.MaintenanceConfiguration": + """Create or Update configuration record. + + Create or Update configuration record. + + :param resource_group_name: Resource Group Name. + :type resource_group_name: str + :param resource_name: Resource Identifier. + :type resource_name: str + :param location: Gets or sets location of the resource. + :type location: str + :param tags: Gets or sets tags of the resource. + :type tags: dict[str, str] + :param namespace: Gets or sets namespace of the resource. + :type namespace: str + :param extension_properties: Gets or sets extensionProperties of the maintenanceConfiguration. + :type extension_properties: dict[str, str] + :param maintenance_scope: Gets or sets maintenanceScope of the configuration. + :type maintenance_scope: str or ~maintenance_client.models.MaintenanceScope + :param visibility: Gets or sets the visibility of the configuration. + :type visibility: str or ~maintenance_client.models.Visibility + :param start_date_time: Effective start date of the maintenance window in YYYY-MM-DD hh:mm + format. The start date can be set to either the current date or future date. The window will be + created in the time zone provided and adjusted to daylight savings according to that time zone. + :type start_date_time: str + :param expiration_date_time: Effective expiration date of the maintenance window in YYYY-MM-DD + hh:mm format. The window will be created in the time zone provided and adjusted to daylight + savings according to that time zone. Expiration date must be set to a future date. If not + provided, it will be set to the maximum datetime 9999-12-31 23:59:59. + :type expiration_date_time: str + :param duration: Duration of the maintenance window in HH:mm format. If not provided, default + value will be used based on maintenance scope provided. Example: 05:00. + :type duration: str + :param time_zone: Name of the timezone. List of timezones can be obtained by executing + [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific Standard Time, UTC, + W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time. + :type time_zone: str + :param recur_every: Rate at which a Maintenance window is expected to recur. The rate can be + expressed as daily, weekly, or monthly schedules. Daily schedule are formatted as recurEvery: + [Frequency as integer]['Day(s)']. If no frequency is provided, the default frequency is 1. + Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly schedule are formatted + as recurEvery: [Frequency as integer]['Week(s)'] [Optional comma separated list of weekdays + Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, recurEvery: Week + Saturday,Sunday. Monthly schedules are formatted as [Frequency as integer]['Month(s)'] [Comma + separated list of month days] or [Frequency as integer]['Month(s)'] [Week of Month (First, + Second, Third, Fourth, Last)] [Weekday Monday-Sunday]. Monthly schedule examples are + recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23,day24, recurEvery: Month Last + Sunday, recurEvery: Month Fourth Monday. + :type recur_every: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~maintenance_client.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MaintenanceConfiguration"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _configuration = models.MaintenanceConfiguration(location=location, tags=tags, namespace=namespace, extension_properties=extension_properties, maintenance_scope=maintenance_scope, visibility=visibility, start_date_time=start_date_time, expiration_date_time=expiration_date_time, duration=duration, time_zone=time_zone, recur_every=recur_every) + api_version = "2020-07-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_configuration, 'MaintenanceConfiguration') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.MaintenanceError, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} # type: ignore + + async def delete( + self, + resource_group_name: str, + resource_name: str, + **kwargs + ) -> "models.MaintenanceConfiguration": + """Delete Configuration record. + + Delete Configuration record. + + :param resource_group_name: Resource Group Name. + :type resource_group_name: str + :param resource_name: Resource Identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~maintenance_client.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MaintenanceConfiguration"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.MaintenanceError, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} # type: ignore + + async def update( + self, + resource_group_name: str, + resource_name: str, + location: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + namespace: Optional[str] = None, + extension_properties: Optional[Dict[str, str]] = None, + maintenance_scope: Optional[Union[str, "models.MaintenanceScope"]] = None, + visibility: Optional[Union[str, "models.Visibility"]] = None, + start_date_time: Optional[str] = None, + expiration_date_time: Optional[str] = None, + duration: Optional[str] = None, + time_zone: Optional[str] = None, + recur_every: Optional[str] = None, + **kwargs + ) -> "models.MaintenanceConfiguration": + """Patch configuration record. + + Patch configuration record. + + :param resource_group_name: Resource Group Name. + :type resource_group_name: str + :param resource_name: Resource Identifier. + :type resource_name: str + :param location: Gets or sets location of the resource. + :type location: str + :param tags: Gets or sets tags of the resource. + :type tags: dict[str, str] + :param namespace: Gets or sets namespace of the resource. + :type namespace: str + :param extension_properties: Gets or sets extensionProperties of the maintenanceConfiguration. + :type extension_properties: dict[str, str] + :param maintenance_scope: Gets or sets maintenanceScope of the configuration. + :type maintenance_scope: str or ~maintenance_client.models.MaintenanceScope + :param visibility: Gets or sets the visibility of the configuration. + :type visibility: str or ~maintenance_client.models.Visibility + :param start_date_time: Effective start date of the maintenance window in YYYY-MM-DD hh:mm + format. The start date can be set to either the current date or future date. The window will be + created in the time zone provided and adjusted to daylight savings according to that time zone. + :type start_date_time: str + :param expiration_date_time: Effective expiration date of the maintenance window in YYYY-MM-DD + hh:mm format. The window will be created in the time zone provided and adjusted to daylight + savings according to that time zone. Expiration date must be set to a future date. If not + provided, it will be set to the maximum datetime 9999-12-31 23:59:59. + :type expiration_date_time: str + :param duration: Duration of the maintenance window in HH:mm format. If not provided, default + value will be used based on maintenance scope provided. Example: 05:00. + :type duration: str + :param time_zone: Name of the timezone. List of timezones can be obtained by executing + [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific Standard Time, UTC, + W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time. + :type time_zone: str + :param recur_every: Rate at which a Maintenance window is expected to recur. The rate can be + expressed as daily, weekly, or monthly schedules. Daily schedule are formatted as recurEvery: + [Frequency as integer]['Day(s)']. If no frequency is provided, the default frequency is 1. + Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly schedule are formatted + as recurEvery: [Frequency as integer]['Week(s)'] [Optional comma separated list of weekdays + Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, recurEvery: Week + Saturday,Sunday. Monthly schedules are formatted as [Frequency as integer]['Month(s)'] [Comma + separated list of month days] or [Frequency as integer]['Month(s)'] [Week of Month (First, + Second, Third, Fourth, Last)] [Weekday Monday-Sunday]. Monthly schedule examples are + recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23,day24, recurEvery: Month Last + Sunday, recurEvery: Month Fourth Monday. + :type recur_every: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~maintenance_client.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MaintenanceConfiguration"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _configuration = models.MaintenanceConfiguration(location=location, tags=tags, namespace=namespace, extension_properties=extension_properties, maintenance_scope=maintenance_scope, visibility=visibility, start_date_time=start_date_time, expiration_date_time=expiration_date_time, duration=duration, time_zone=time_zone, recur_every=recur_every) + api_version = "2020-07-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_configuration, 'MaintenanceConfiguration') + body_content_kwargs['content'] = body_content + request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.MaintenanceError, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} # type: ignore + + def list( + self, + **kwargs + ) -> AsyncIterable["models.ListMaintenanceConfigurationsResult"]: + """Get Configuration records within a subscription. + + Get Configuration records within a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListMaintenanceConfigurationsResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~maintenance_client.models.ListMaintenanceConfigurationsResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListMaintenanceConfigurationsResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ListMaintenanceConfigurationsResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.MaintenanceError, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Maintenance/maintenanceConfigurations'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_operation_operations_async.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_operation_operations_async.py new file mode 100644 index 00000000000..3f727b6422e --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_operation_operations_async.py @@ -0,0 +1,104 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class OperationOperations: + """OperationOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs + ) -> AsyncIterable["models.OperationsListResult"]: + """List available operations. + + List the available operations supported by the Microsoft.Maintenance resource provider. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either OperationsListResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~maintenance_client.models.OperationsListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.OperationsListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('OperationsListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.MaintenanceError, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/providers/Microsoft.Maintenance/operations'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_public_maintenance_configuration_operations_async.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_public_maintenance_configuration_operations_async.py new file mode 100644 index 00000000000..0c700661962 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_public_maintenance_configuration_operations_async.py @@ -0,0 +1,162 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class PublicMaintenanceConfigurationOperations: + """PublicMaintenanceConfigurationOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs + ) -> AsyncIterable["models.ListMaintenanceConfigurationsResult"]: + """Get Public Maintenance Configuration records. + + Get Public Maintenance Configuration records. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListMaintenanceConfigurationsResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~maintenance_client.models.ListMaintenanceConfigurationsResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListMaintenanceConfigurationsResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ListMaintenanceConfigurationsResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.MaintenanceError, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Maintenance/publicMaintenanceConfigurations'} # type: ignore + + async def get( + self, + resource_name: str, + **kwargs + ) -> "models.MaintenanceConfiguration": + """Get Public Maintenance Configuration record. + + Get Public Maintenance Configuration record. + + :param resource_name: Resource Identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~maintenance_client.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MaintenanceConfiguration"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.MaintenanceError, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/{resourceName}'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_update_operations_async.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_update_operations_async.py new file mode 100644 index 00000000000..660aaea0a6f --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/aio/operations_async/_update_operations_async.py @@ -0,0 +1,212 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class UpdateOperations: + """UpdateOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list_parent( + self, + resource_group_name: str, + provider_name: str, + resource_parent_type: str, + resource_parent_name: str, + resource_type: str, + resource_name: str, + **kwargs + ) -> AsyncIterable["models.ListUpdatesResult"]: + """Get Updates to resource. + + Get updates to resources. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListUpdatesResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~maintenance_client.models.ListUpdatesResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListUpdatesResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ListUpdatesResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/updates'} # type: ignore + + def list( + self, + resource_group_name: str, + provider_name: str, + resource_type: str, + resource_name: str, + **kwargs + ) -> AsyncIterable["models.ListUpdatesResult"]: + """Get Updates to resource. + + Get updates to resources. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListUpdatesResult or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~maintenance_client.models.ListUpdatesResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListUpdatesResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ListUpdatesResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/updates'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/__init__.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/__init__.py new file mode 100644 index 00000000000..56f8e539b54 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/__init__.py @@ -0,0 +1,63 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import ApplyUpdate + from ._models_py3 import ConfigurationAssignment + from ._models_py3 import ErrorDetails + from ._models_py3 import ListConfigurationAssignmentsResult + from ._models_py3 import ListMaintenanceConfigurationsResult + from ._models_py3 import ListUpdatesResult + from ._models_py3 import MaintenanceConfiguration + from ._models_py3 import MaintenanceError + from ._models_py3 import Operation + from ._models_py3 import OperationInfo + from ._models_py3 import OperationsListResult + from ._models_py3 import Resource + from ._models_py3 import Update +except (SyntaxError, ImportError): + from ._models import ApplyUpdate # type: ignore + from ._models import ConfigurationAssignment # type: ignore + from ._models import ErrorDetails # type: ignore + from ._models import ListConfigurationAssignmentsResult # type: ignore + from ._models import ListMaintenanceConfigurationsResult # type: ignore + from ._models import ListUpdatesResult # type: ignore + from ._models import MaintenanceConfiguration # type: ignore + from ._models import MaintenanceError # type: ignore + from ._models import Operation # type: ignore + from ._models import OperationInfo # type: ignore + from ._models import OperationsListResult # type: ignore + from ._models import Resource # type: ignore + from ._models import Update # type: ignore + +from ._maintenance_client_enums import ( + ImpactType, + MaintenanceScope, + UpdateStatus, + Visibility, +) + +__all__ = [ + 'ApplyUpdate', + 'ConfigurationAssignment', + 'ErrorDetails', + 'ListConfigurationAssignmentsResult', + 'ListMaintenanceConfigurationsResult', + 'ListUpdatesResult', + 'MaintenanceConfiguration', + 'MaintenanceError', + 'Operation', + 'OperationInfo', + 'OperationsListResult', + 'Resource', + 'Update', + 'ImpactType', + 'MaintenanceScope', + 'UpdateStatus', + 'Visibility', +] diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/_maintenance_client_enums.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/_maintenance_client_enums.py new file mode 100644 index 00000000000..ed541885949 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/_maintenance_client_enums.py @@ -0,0 +1,67 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum, EnumMeta +from six import with_metaclass + +class _CaseInsensitiveEnumMeta(EnumMeta): + def __getitem__(self, name): + return super().__getitem__(name.upper()) + + def __getattr__(cls, name): + """Return the enum member matching `name` + We use __getattr__ instead of descriptors or inserting into the enum + class' __dict__ in order to support `name` and `value` being both + properties for enum members (which live in the class' __dict__) and + enum members themselves. + """ + try: + return cls._member_map_[name.upper()] + except KeyError: + raise AttributeError(name) + + +class ImpactType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The impact type + """ + + NONE = "None" + FREEZE = "Freeze" + RESTART = "Restart" + REDEPLOY = "Redeploy" + +class MaintenanceScope(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Gets or sets maintenanceScope of the configuration + """ + + ALL = "All" + HOST = "Host" + RESOURCE = "Resource" + IN_RESOURCE = "InResource" + OS_IMAGE = "OSImage" + EXTENSION = "Extension" + IN_GUEST_PATCH = "InGuestPatch" + SQLDB = "SQLDB" + SQL_MANAGED_INSTANCE = "SQLManagedInstance" + +class UpdateStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The status + """ + + PENDING = "Pending" + IN_PROGRESS = "InProgress" + COMPLETED = "Completed" + RETRY_NOW = "RetryNow" + RETRY_LATER = "RetryLater" + +class Visibility(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """Gets or sets the visibility of the configuration + """ + + CUSTOM = "Custom" + PUBLIC = "Public" diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/_models.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/_models.py new file mode 100644 index 00000000000..d48038d28b8 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/_models.py @@ -0,0 +1,455 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import HttpResponseError +import msrest.serialization + + +class Resource(msrest.serialization.Model): + """Definition of a Resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified identifier of the resource. + :vartype id: str + :ivar name: Name of the resource. + :vartype name: str + :ivar type: Type of the resource. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class ApplyUpdate(Resource): + """Apply Update request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified identifier of the resource. + :vartype id: str + :ivar name: Name of the resource. + :vartype name: str + :ivar type: Type of the resource. + :vartype type: str + :param status: The status. Possible values include: "Pending", "InProgress", "Completed", + "RetryNow", "RetryLater". + :type status: str or ~maintenance_client.models.UpdateStatus + :param resource_id: The resourceId. + :type resource_id: str + :param last_update_time: Last Update time. + :type last_update_time: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, + 'last_update_time': {'key': 'properties.lastUpdateTime', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(ApplyUpdate, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.resource_id = kwargs.get('resource_id', None) + self.last_update_time = kwargs.get('last_update_time', None) + + +class ConfigurationAssignment(Resource): + """Configuration Assignment. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified identifier of the resource. + :vartype id: str + :ivar name: Name of the resource. + :vartype name: str + :ivar type: Type of the resource. + :vartype type: str + :param location: Location of the resource. + :type location: str + :param maintenance_configuration_id: The maintenance configuration Id. + :type maintenance_configuration_id: str + :param resource_id: The unique resourceId. + :type resource_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'maintenance_configuration_id': {'key': 'properties.maintenanceConfigurationId', 'type': 'str'}, + 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ConfigurationAssignment, self).__init__(**kwargs) + self.location = kwargs.get('location', None) + self.maintenance_configuration_id = kwargs.get('maintenance_configuration_id', None) + self.resource_id = kwargs.get('resource_id', None) + + +class ErrorDetails(msrest.serialization.Model): + """An error response details received from the Azure Maintenance service. + + :param code: Service-defined error code. This code serves as a sub-status for the HTTP error + code specified in the response. + :type code: str + :param message: Human-readable representation of the error. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorDetails, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + + +class ListConfigurationAssignmentsResult(msrest.serialization.Model): + """Response for ConfigurationAssignments list. + + :param value: The list of configuration Assignments. + :type value: list[~maintenance_client.models.ConfigurationAssignment] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ConfigurationAssignment]'}, + } + + def __init__( + self, + **kwargs + ): + super(ListConfigurationAssignmentsResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class ListMaintenanceConfigurationsResult(msrest.serialization.Model): + """Response for MaintenanceConfigurations list. + + :param value: The list of maintenance Configurations. + :type value: list[~maintenance_client.models.MaintenanceConfiguration] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[MaintenanceConfiguration]'}, + } + + def __init__( + self, + **kwargs + ): + super(ListMaintenanceConfigurationsResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class ListUpdatesResult(msrest.serialization.Model): + """Response for Updates list. + + :param value: The pending updates. + :type value: list[~maintenance_client.models.Update] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Update]'}, + } + + def __init__( + self, + **kwargs + ): + super(ListUpdatesResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class MaintenanceConfiguration(Resource): + """Maintenance configuration record type. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified identifier of the resource. + :vartype id: str + :ivar name: Name of the resource. + :vartype name: str + :ivar type: Type of the resource. + :vartype type: str + :param location: Gets or sets location of the resource. + :type location: str + :param tags: A set of tags. Gets or sets tags of the resource. + :type tags: dict[str, str] + :param namespace: Gets or sets namespace of the resource. + :type namespace: str + :param extension_properties: Gets or sets extensionProperties of the maintenanceConfiguration. + :type extension_properties: dict[str, str] + :param maintenance_scope: Gets or sets maintenanceScope of the configuration. Possible values + include: "All", "Host", "Resource", "InResource", "OSImage", "Extension", "InGuestPatch", + "SQLDB", "SQLManagedInstance". + :type maintenance_scope: str or ~maintenance_client.models.MaintenanceScope + :param visibility: Gets or sets the visibility of the configuration. Possible values include: + "Custom", "Public". + :type visibility: str or ~maintenance_client.models.Visibility + :param start_date_time: Effective start date of the maintenance window in YYYY-MM-DD hh:mm + format. The start date can be set to either the current date or future date. The window will be + created in the time zone provided and adjusted to daylight savings according to that time zone. + :type start_date_time: str + :param expiration_date_time: Effective expiration date of the maintenance window in YYYY-MM-DD + hh:mm format. The window will be created in the time zone provided and adjusted to daylight + savings according to that time zone. Expiration date must be set to a future date. If not + provided, it will be set to the maximum datetime 9999-12-31 23:59:59. + :type expiration_date_time: str + :param duration: Duration of the maintenance window in HH:mm format. If not provided, default + value will be used based on maintenance scope provided. Example: 05:00. + :type duration: str + :param time_zone: Name of the timezone. List of timezones can be obtained by executing + [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific Standard Time, UTC, + W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time. + :type time_zone: str + :param recur_every: Rate at which a Maintenance window is expected to recur. The rate can be + expressed as daily, weekly, or monthly schedules. Daily schedule are formatted as recurEvery: + [Frequency as integer]['Day(s)']. If no frequency is provided, the default frequency is 1. + Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly schedule are formatted + as recurEvery: [Frequency as integer]['Week(s)'] [Optional comma separated list of weekdays + Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, recurEvery: Week + Saturday,Sunday. Monthly schedules are formatted as [Frequency as integer]['Month(s)'] [Comma + separated list of month days] or [Frequency as integer]['Month(s)'] [Week of Month (First, + Second, Third, Fourth, Last)] [Weekday Monday-Sunday]. Monthly schedule examples are + recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23,day24, recurEvery: Month Last + Sunday, recurEvery: Month Fourth Monday. + :type recur_every: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'namespace': {'key': 'properties.namespace', 'type': 'str'}, + 'extension_properties': {'key': 'properties.extensionProperties', 'type': '{str}'}, + 'maintenance_scope': {'key': 'properties.maintenanceScope', 'type': 'str'}, + 'visibility': {'key': 'properties.visibility', 'type': 'str'}, + 'start_date_time': {'key': 'properties.maintenanceWindow.startDateTime', 'type': 'str'}, + 'expiration_date_time': {'key': 'properties.maintenanceWindow.expirationDateTime', 'type': 'str'}, + 'duration': {'key': 'properties.maintenanceWindow.duration', 'type': 'str'}, + 'time_zone': {'key': 'properties.maintenanceWindow.timeZone', 'type': 'str'}, + 'recur_every': {'key': 'properties.maintenanceWindow.recurEvery', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(MaintenanceConfiguration, self).__init__(**kwargs) + self.location = kwargs.get('location', None) + self.tags = kwargs.get('tags', None) + self.namespace = kwargs.get('namespace', None) + self.extension_properties = kwargs.get('extension_properties', None) + self.maintenance_scope = kwargs.get('maintenance_scope', None) + self.visibility = kwargs.get('visibility', None) + self.start_date_time = kwargs.get('start_date_time', None) + self.expiration_date_time = kwargs.get('expiration_date_time', None) + self.duration = kwargs.get('duration', None) + self.time_zone = kwargs.get('time_zone', None) + self.recur_every = kwargs.get('recur_every', None) + + +class MaintenanceError(msrest.serialization.Model): + """An error response received from the Azure Maintenance service. + + :param error: Details of the error. + :type error: ~maintenance_client.models.ErrorDetails + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorDetails'}, + } + + def __init__( + self, + **kwargs + ): + super(MaintenanceError, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class Operation(msrest.serialization.Model): + """Represents an operation returned by the GetOperations request. + + :param name: Name of the operation. + :type name: str + :param display: Display name of the operation. + :type display: ~maintenance_client.models.OperationInfo + :param origin: Origin of the operation. + :type origin: str + :param properties: Properties of the operation. + :type properties: object + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'OperationInfo'}, + 'origin': {'key': 'origin', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(Operation, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.display = kwargs.get('display', None) + self.origin = kwargs.get('origin', None) + self.properties = kwargs.get('properties', None) + + +class OperationInfo(msrest.serialization.Model): + """Information about an operation. + + :param provider: Name of the provider. + :type provider: str + :param resource: Name of the resource type. + :type resource: str + :param operation: Name of the operation. + :type operation: str + :param description: Description of the operation. + :type description: str + """ + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationInfo, self).__init__(**kwargs) + self.provider = kwargs.get('provider', None) + self.resource = kwargs.get('resource', None) + self.operation = kwargs.get('operation', None) + self.description = kwargs.get('description', None) + + +class OperationsListResult(msrest.serialization.Model): + """Result of the List Operations operation. + + :param value: A collection of operations. + :type value: list[~maintenance_client.models.Operation] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Operation]'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationsListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class Update(msrest.serialization.Model): + """Maintenance update on a resource. + + :param maintenance_scope: The impact area. Possible values include: "All", "Host", "Resource", + "InResource", "OSImage", "Extension", "InGuestPatch", "SQLDB", "SQLManagedInstance". + :type maintenance_scope: str or ~maintenance_client.models.MaintenanceScope + :param impact_type: The impact type. Possible values include: "None", "Freeze", "Restart", + "Redeploy". + :type impact_type: str or ~maintenance_client.models.ImpactType + :param status: The status. Possible values include: "Pending", "InProgress", "Completed", + "RetryNow", "RetryLater". + :type status: str or ~maintenance_client.models.UpdateStatus + :param impact_duration_in_sec: Duration of impact in seconds. + :type impact_duration_in_sec: int + :param not_before: Time when Azure will start force updates if not self-updated by customer + before this time. + :type not_before: ~datetime.datetime + :param resource_id: The resourceId. + :type resource_id: str + """ + + _attribute_map = { + 'maintenance_scope': {'key': 'maintenanceScope', 'type': 'str'}, + 'impact_type': {'key': 'impactType', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'impact_duration_in_sec': {'key': 'impactDurationInSec', 'type': 'int'}, + 'not_before': {'key': 'notBefore', 'type': 'iso-8601'}, + 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Update, self).__init__(**kwargs) + self.maintenance_scope = kwargs.get('maintenance_scope', None) + self.impact_type = kwargs.get('impact_type', None) + self.status = kwargs.get('status', None) + self.impact_duration_in_sec = kwargs.get('impact_duration_in_sec', None) + self.not_before = kwargs.get('not_before', None) + self.resource_id = kwargs.get('resource_id', None) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/_models_py3.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/_models_py3.py new file mode 100644 index 00000000000..0536271dece --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/models/_models_py3.py @@ -0,0 +1,510 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +import datetime +from typing import Dict, List, Optional, Union + +from azure.core.exceptions import HttpResponseError +import msrest.serialization + +from ._maintenance_client_enums import * + + +class Resource(msrest.serialization.Model): + """Definition of a Resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified identifier of the resource. + :vartype id: str + :ivar name: Name of the resource. + :vartype name: str + :ivar type: Type of the resource. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class ApplyUpdate(Resource): + """Apply Update request. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified identifier of the resource. + :vartype id: str + :ivar name: Name of the resource. + :vartype name: str + :ivar type: Type of the resource. + :vartype type: str + :param status: The status. Possible values include: "Pending", "InProgress", "Completed", + "RetryNow", "RetryLater". + :type status: str or ~maintenance_client.models.UpdateStatus + :param resource_id: The resourceId. + :type resource_id: str + :param last_update_time: Last Update time. + :type last_update_time: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, + 'last_update_time': {'key': 'properties.lastUpdateTime', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + status: Optional[Union[str, "UpdateStatus"]] = None, + resource_id: Optional[str] = None, + last_update_time: Optional[datetime.datetime] = None, + **kwargs + ): + super(ApplyUpdate, self).__init__(**kwargs) + self.status = status + self.resource_id = resource_id + self.last_update_time = last_update_time + + +class ConfigurationAssignment(Resource): + """Configuration Assignment. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified identifier of the resource. + :vartype id: str + :ivar name: Name of the resource. + :vartype name: str + :ivar type: Type of the resource. + :vartype type: str + :param location: Location of the resource. + :type location: str + :param maintenance_configuration_id: The maintenance configuration Id. + :type maintenance_configuration_id: str + :param resource_id: The unique resourceId. + :type resource_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'maintenance_configuration_id': {'key': 'properties.maintenanceConfigurationId', 'type': 'str'}, + 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, + } + + def __init__( + self, + *, + location: Optional[str] = None, + maintenance_configuration_id: Optional[str] = None, + resource_id: Optional[str] = None, + **kwargs + ): + super(ConfigurationAssignment, self).__init__(**kwargs) + self.location = location + self.maintenance_configuration_id = maintenance_configuration_id + self.resource_id = resource_id + + +class ErrorDetails(msrest.serialization.Model): + """An error response details received from the Azure Maintenance service. + + :param code: Service-defined error code. This code serves as a sub-status for the HTTP error + code specified in the response. + :type code: str + :param message: Human-readable representation of the error. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__( + self, + *, + code: Optional[str] = None, + message: Optional[str] = None, + **kwargs + ): + super(ErrorDetails, self).__init__(**kwargs) + self.code = code + self.message = message + + +class ListConfigurationAssignmentsResult(msrest.serialization.Model): + """Response for ConfigurationAssignments list. + + :param value: The list of configuration Assignments. + :type value: list[~maintenance_client.models.ConfigurationAssignment] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ConfigurationAssignment]'}, + } + + def __init__( + self, + *, + value: Optional[List["ConfigurationAssignment"]] = None, + **kwargs + ): + super(ListConfigurationAssignmentsResult, self).__init__(**kwargs) + self.value = value + + +class ListMaintenanceConfigurationsResult(msrest.serialization.Model): + """Response for MaintenanceConfigurations list. + + :param value: The list of maintenance Configurations. + :type value: list[~maintenance_client.models.MaintenanceConfiguration] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[MaintenanceConfiguration]'}, + } + + def __init__( + self, + *, + value: Optional[List["MaintenanceConfiguration"]] = None, + **kwargs + ): + super(ListMaintenanceConfigurationsResult, self).__init__(**kwargs) + self.value = value + + +class ListUpdatesResult(msrest.serialization.Model): + """Response for Updates list. + + :param value: The pending updates. + :type value: list[~maintenance_client.models.Update] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Update]'}, + } + + def __init__( + self, + *, + value: Optional[List["Update"]] = None, + **kwargs + ): + super(ListUpdatesResult, self).__init__(**kwargs) + self.value = value + + +class MaintenanceConfiguration(Resource): + """Maintenance configuration record type. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified identifier of the resource. + :vartype id: str + :ivar name: Name of the resource. + :vartype name: str + :ivar type: Type of the resource. + :vartype type: str + :param location: Gets or sets location of the resource. + :type location: str + :param tags: A set of tags. Gets or sets tags of the resource. + :type tags: dict[str, str] + :param namespace: Gets or sets namespace of the resource. + :type namespace: str + :param extension_properties: Gets or sets extensionProperties of the maintenanceConfiguration. + :type extension_properties: dict[str, str] + :param maintenance_scope: Gets or sets maintenanceScope of the configuration. Possible values + include: "All", "Host", "Resource", "InResource", "OSImage", "Extension", "InGuestPatch", + "SQLDB", "SQLManagedInstance". + :type maintenance_scope: str or ~maintenance_client.models.MaintenanceScope + :param visibility: Gets or sets the visibility of the configuration. Possible values include: + "Custom", "Public". + :type visibility: str or ~maintenance_client.models.Visibility + :param start_date_time: Effective start date of the maintenance window in YYYY-MM-DD hh:mm + format. The start date can be set to either the current date or future date. The window will be + created in the time zone provided and adjusted to daylight savings according to that time zone. + :type start_date_time: str + :param expiration_date_time: Effective expiration date of the maintenance window in YYYY-MM-DD + hh:mm format. The window will be created in the time zone provided and adjusted to daylight + savings according to that time zone. Expiration date must be set to a future date. If not + provided, it will be set to the maximum datetime 9999-12-31 23:59:59. + :type expiration_date_time: str + :param duration: Duration of the maintenance window in HH:mm format. If not provided, default + value will be used based on maintenance scope provided. Example: 05:00. + :type duration: str + :param time_zone: Name of the timezone. List of timezones can be obtained by executing + [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific Standard Time, UTC, + W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time. + :type time_zone: str + :param recur_every: Rate at which a Maintenance window is expected to recur. The rate can be + expressed as daily, weekly, or monthly schedules. Daily schedule are formatted as recurEvery: + [Frequency as integer]['Day(s)']. If no frequency is provided, the default frequency is 1. + Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly schedule are formatted + as recurEvery: [Frequency as integer]['Week(s)'] [Optional comma separated list of weekdays + Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, recurEvery: Week + Saturday,Sunday. Monthly schedules are formatted as [Frequency as integer]['Month(s)'] [Comma + separated list of month days] or [Frequency as integer]['Month(s)'] [Week of Month (First, + Second, Third, Fourth, Last)] [Weekday Monday-Sunday]. Monthly schedule examples are + recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23,day24, recurEvery: Month Last + Sunday, recurEvery: Month Fourth Monday. + :type recur_every: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'namespace': {'key': 'properties.namespace', 'type': 'str'}, + 'extension_properties': {'key': 'properties.extensionProperties', 'type': '{str}'}, + 'maintenance_scope': {'key': 'properties.maintenanceScope', 'type': 'str'}, + 'visibility': {'key': 'properties.visibility', 'type': 'str'}, + 'start_date_time': {'key': 'properties.maintenanceWindow.startDateTime', 'type': 'str'}, + 'expiration_date_time': {'key': 'properties.maintenanceWindow.expirationDateTime', 'type': 'str'}, + 'duration': {'key': 'properties.maintenanceWindow.duration', 'type': 'str'}, + 'time_zone': {'key': 'properties.maintenanceWindow.timeZone', 'type': 'str'}, + 'recur_every': {'key': 'properties.maintenanceWindow.recurEvery', 'type': 'str'}, + } + + def __init__( + self, + *, + location: Optional[str] = None, + tags: Optional[Dict[str, str]] = None, + namespace: Optional[str] = None, + extension_properties: Optional[Dict[str, str]] = None, + maintenance_scope: Optional[Union[str, "MaintenanceScope"]] = None, + visibility: Optional[Union[str, "Visibility"]] = None, + start_date_time: Optional[str] = None, + expiration_date_time: Optional[str] = None, + duration: Optional[str] = None, + time_zone: Optional[str] = None, + recur_every: Optional[str] = None, + **kwargs + ): + super(MaintenanceConfiguration, self).__init__(**kwargs) + self.location = location + self.tags = tags + self.namespace = namespace + self.extension_properties = extension_properties + self.maintenance_scope = maintenance_scope + self.visibility = visibility + self.start_date_time = start_date_time + self.expiration_date_time = expiration_date_time + self.duration = duration + self.time_zone = time_zone + self.recur_every = recur_every + + +class MaintenanceError(msrest.serialization.Model): + """An error response received from the Azure Maintenance service. + + :param error: Details of the error. + :type error: ~maintenance_client.models.ErrorDetails + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorDetails'}, + } + + def __init__( + self, + *, + error: Optional["ErrorDetails"] = None, + **kwargs + ): + super(MaintenanceError, self).__init__(**kwargs) + self.error = error + + +class Operation(msrest.serialization.Model): + """Represents an operation returned by the GetOperations request. + + :param name: Name of the operation. + :type name: str + :param display: Display name of the operation. + :type display: ~maintenance_client.models.OperationInfo + :param origin: Origin of the operation. + :type origin: str + :param properties: Properties of the operation. + :type properties: object + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'OperationInfo'}, + 'origin': {'key': 'origin', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'object'}, + } + + def __init__( + self, + *, + name: Optional[str] = None, + display: Optional["OperationInfo"] = None, + origin: Optional[str] = None, + properties: Optional[object] = None, + **kwargs + ): + super(Operation, self).__init__(**kwargs) + self.name = name + self.display = display + self.origin = origin + self.properties = properties + + +class OperationInfo(msrest.serialization.Model): + """Information about an operation. + + :param provider: Name of the provider. + :type provider: str + :param resource: Name of the resource type. + :type resource: str + :param operation: Name of the operation. + :type operation: str + :param description: Description of the operation. + :type description: str + """ + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + *, + provider: Optional[str] = None, + resource: Optional[str] = None, + operation: Optional[str] = None, + description: Optional[str] = None, + **kwargs + ): + super(OperationInfo, self).__init__(**kwargs) + self.provider = provider + self.resource = resource + self.operation = operation + self.description = description + + +class OperationsListResult(msrest.serialization.Model): + """Result of the List Operations operation. + + :param value: A collection of operations. + :type value: list[~maintenance_client.models.Operation] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Operation]'}, + } + + def __init__( + self, + *, + value: Optional[List["Operation"]] = None, + **kwargs + ): + super(OperationsListResult, self).__init__(**kwargs) + self.value = value + + +class Update(msrest.serialization.Model): + """Maintenance update on a resource. + + :param maintenance_scope: The impact area. Possible values include: "All", "Host", "Resource", + "InResource", "OSImage", "Extension", "InGuestPatch", "SQLDB", "SQLManagedInstance". + :type maintenance_scope: str or ~maintenance_client.models.MaintenanceScope + :param impact_type: The impact type. Possible values include: "None", "Freeze", "Restart", + "Redeploy". + :type impact_type: str or ~maintenance_client.models.ImpactType + :param status: The status. Possible values include: "Pending", "InProgress", "Completed", + "RetryNow", "RetryLater". + :type status: str or ~maintenance_client.models.UpdateStatus + :param impact_duration_in_sec: Duration of impact in seconds. + :type impact_duration_in_sec: int + :param not_before: Time when Azure will start force updates if not self-updated by customer + before this time. + :type not_before: ~datetime.datetime + :param resource_id: The resourceId. + :type resource_id: str + """ + + _attribute_map = { + 'maintenance_scope': {'key': 'maintenanceScope', 'type': 'str'}, + 'impact_type': {'key': 'impactType', 'type': 'str'}, + 'status': {'key': 'status', 'type': 'str'}, + 'impact_duration_in_sec': {'key': 'impactDurationInSec', 'type': 'int'}, + 'not_before': {'key': 'notBefore', 'type': 'iso-8601'}, + 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, + } + + def __init__( + self, + *, + maintenance_scope: Optional[Union[str, "MaintenanceScope"]] = None, + impact_type: Optional[Union[str, "ImpactType"]] = None, + status: Optional[Union[str, "UpdateStatus"]] = None, + impact_duration_in_sec: Optional[int] = None, + not_before: Optional[datetime.datetime] = None, + resource_id: Optional[str] = None, + **kwargs + ): + super(Update, self).__init__(**kwargs) + self.maintenance_scope = maintenance_scope + self.impact_type = impact_type + self.status = status + self.impact_duration_in_sec = impact_duration_in_sec + self.not_before = not_before + self.resource_id = resource_id diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/__init__.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/__init__.py new file mode 100644 index 00000000000..4abcf25d27c --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/__init__.py @@ -0,0 +1,23 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._public_maintenance_configuration_operations import PublicMaintenanceConfigurationOperations +from ._apply_update_operations import ApplyUpdateOperations +from ._configuration_assignment_operations import ConfigurationAssignmentOperations +from ._maintenance_configuration_operations import MaintenanceConfigurationOperations +from ._operation_operations import OperationOperations +from ._update_operations import UpdateOperations + +__all__ = [ + 'PublicMaintenanceConfigurationOperations', + 'ApplyUpdateOperations', + 'ConfigurationAssignmentOperations', + 'MaintenanceConfigurationOperations', + 'OperationOperations', + 'UpdateOperations', +] diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_apply_update_operations.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_apply_update_operations.py new file mode 100644 index 00000000000..e659a0bcad2 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_apply_update_operations.py @@ -0,0 +1,333 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ApplyUpdateOperations(object): + """ApplyUpdateOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def get_parent( + self, + resource_group_name, # type: str + resource_parent_type, # type: str + resource_parent_name, # type: str + provider_name, # type: str + resource_type, # type: str + resource_name, # type: str + apply_update_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.ApplyUpdate" + """Track Updates to resource with parent. + + Track maintenance updates to resource with parent. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param apply_update_name: applyUpdate Id. + :type apply_update_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApplyUpdate, or the result of cls(response) + :rtype: ~maintenance_client.models.ApplyUpdate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ApplyUpdate"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.get_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'applyUpdateName': self._serialize.url("apply_update_name", apply_update_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApplyUpdate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/{applyUpdateName}'} # type: ignore + + def get( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_type, # type: str + resource_name, # type: str + apply_update_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.ApplyUpdate" + """Track Updates to resource. + + Track maintenance updates to resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param apply_update_name: applyUpdate Id. + :type apply_update_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApplyUpdate, or the result of cls(response) + :rtype: ~maintenance_client.models.ApplyUpdate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ApplyUpdate"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'applyUpdateName': self._serialize.url("apply_update_name", apply_update_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApplyUpdate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/{applyUpdateName}'} # type: ignore + + def create_or_update_parent( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_parent_type, # type: str + resource_parent_name, # type: str + resource_type, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.ApplyUpdate" + """Apply Updates to resource with parent. + + Apply maintenance updates to resource with parent. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApplyUpdate, or the result of cls(response) + :rtype: ~maintenance_client.models.ApplyUpdate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ApplyUpdate"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.create_or_update_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApplyUpdate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/default'} # type: ignore + + def create_or_update( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_type, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.ApplyUpdate" + """Apply Updates to resource. + + Apply maintenance updates to resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ApplyUpdate, or the result of cls(response) + :rtype: ~maintenance_client.models.ApplyUpdate + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ApplyUpdate"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ApplyUpdate', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/applyUpdates/default'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_configuration_assignment_operations.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_configuration_assignment_operations.py new file mode 100644 index 00000000000..974f31215f9 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_configuration_assignment_operations.py @@ -0,0 +1,548 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ConfigurationAssignmentOperations(object): + """ConfigurationAssignmentOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def create_or_update_parent( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_parent_type, # type: str + resource_parent_name, # type: str + resource_type, # type: str + resource_name, # type: str + configuration_assignment_name, # type: str + location=None, # type: Optional[str] + maintenance_configuration_id=None, # type: Optional[str] + resource_id=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "models.ConfigurationAssignment" + """Create configuration assignment. + + Register configuration for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param configuration_assignment_name: Configuration assignment name. + :type configuration_assignment_name: str + :param location: Location of the resource. + :type location: str + :param maintenance_configuration_id: The maintenance configuration Id. + :type maintenance_configuration_id: str + :param resource_id: The unique resourceId. + :type resource_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConfigurationAssignment, or the result of cls(response) + :rtype: ~maintenance_client.models.ConfigurationAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationAssignment"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _configuration_assignment = models.ConfigurationAssignment(location=location, maintenance_configuration_id=maintenance_configuration_id, resource_id=resource_id) + api_version = "2020-07-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.create_or_update_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_configuration_assignment, 'ConfigurationAssignment') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConfigurationAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} # type: ignore + + def delete_parent( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_parent_type, # type: str + resource_parent_name, # type: str + resource_type, # type: str + resource_name, # type: str + configuration_assignment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.ConfigurationAssignment" + """Unregister configuration for resource. + + Unregister configuration for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param configuration_assignment_name: Unique configuration assignment name. + :type configuration_assignment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConfigurationAssignment, or the result of cls(response) + :rtype: ~maintenance_client.models.ConfigurationAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationAssignment"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.delete_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConfigurationAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + delete_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} # type: ignore + + def create_or_update( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_type, # type: str + resource_name, # type: str + configuration_assignment_name, # type: str + location=None, # type: Optional[str] + maintenance_configuration_id=None, # type: Optional[str] + resource_id=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "models.ConfigurationAssignment" + """Create configuration assignment. + + Register configuration for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param configuration_assignment_name: Configuration assignment name. + :type configuration_assignment_name: str + :param location: Location of the resource. + :type location: str + :param maintenance_configuration_id: The maintenance configuration Id. + :type maintenance_configuration_id: str + :param resource_id: The unique resourceId. + :type resource_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConfigurationAssignment, or the result of cls(response) + :rtype: ~maintenance_client.models.ConfigurationAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationAssignment"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _configuration_assignment = models.ConfigurationAssignment(location=location, maintenance_configuration_id=maintenance_configuration_id, resource_id=resource_id) + api_version = "2020-07-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_configuration_assignment, 'ConfigurationAssignment') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConfigurationAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} # type: ignore + + def delete( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_type, # type: str + resource_name, # type: str + configuration_assignment_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.ConfigurationAssignment" + """Unregister configuration for resource. + + Unregister configuration for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :param configuration_assignment_name: Unique configuration assignment name. + :type configuration_assignment_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: ConfigurationAssignment, or the result of cls(response) + :rtype: ~maintenance_client.models.ConfigurationAssignment + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ConfigurationAssignment"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + deserialized = self._deserialize('ConfigurationAssignment', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} # type: ignore + + def list_parent( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_parent_type, # type: str + resource_parent_name, # type: str + resource_type, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.ListConfigurationAssignmentsResult"] + """List configurationAssignments for resource. + + List configurationAssignments for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListConfigurationAssignmentsResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~maintenance_client.models.ListConfigurationAssignmentsResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListConfigurationAssignmentsResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ListConfigurationAssignmentsResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments'} # type: ignore + + def list( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_type, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.ListConfigurationAssignmentsResult"] + """List configurationAssignments for resource. + + List configurationAssignments for resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListConfigurationAssignmentsResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~maintenance_client.models.ListConfigurationAssignmentsResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListConfigurationAssignmentsResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ListConfigurationAssignmentsResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_maintenance_configuration_operations.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_maintenance_configuration_operations.py new file mode 100644 index 00000000000..b9848a0ab46 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_maintenance_configuration_operations.py @@ -0,0 +1,467 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class MaintenanceConfigurationOperations(object): + """MaintenanceConfigurationOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def get( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.MaintenanceConfiguration" + """Get Configuration record. + + Get Configuration record. + + :param resource_group_name: Resource Group Name. + :type resource_group_name: str + :param resource_name: Resource Identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~maintenance_client.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MaintenanceConfiguration"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.MaintenanceError, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} # type: ignore + + def create_or_update( + self, + resource_group_name, # type: str + resource_name, # type: str + location=None, # type: Optional[str] + tags=None, # type: Optional[Dict[str, str]] + namespace=None, # type: Optional[str] + extension_properties=None, # type: Optional[Dict[str, str]] + maintenance_scope=None, # type: Optional[Union[str, "models.MaintenanceScope"]] + visibility=None, # type: Optional[Union[str, "models.Visibility"]] + start_date_time=None, # type: Optional[str] + expiration_date_time=None, # type: Optional[str] + duration=None, # type: Optional[str] + time_zone=None, # type: Optional[str] + recur_every=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "models.MaintenanceConfiguration" + """Create or Update configuration record. + + Create or Update configuration record. + + :param resource_group_name: Resource Group Name. + :type resource_group_name: str + :param resource_name: Resource Identifier. + :type resource_name: str + :param location: Gets or sets location of the resource. + :type location: str + :param tags: Gets or sets tags of the resource. + :type tags: dict[str, str] + :param namespace: Gets or sets namespace of the resource. + :type namespace: str + :param extension_properties: Gets or sets extensionProperties of the maintenanceConfiguration. + :type extension_properties: dict[str, str] + :param maintenance_scope: Gets or sets maintenanceScope of the configuration. + :type maintenance_scope: str or ~maintenance_client.models.MaintenanceScope + :param visibility: Gets or sets the visibility of the configuration. + :type visibility: str or ~maintenance_client.models.Visibility + :param start_date_time: Effective start date of the maintenance window in YYYY-MM-DD hh:mm + format. The start date can be set to either the current date or future date. The window will be + created in the time zone provided and adjusted to daylight savings according to that time zone. + :type start_date_time: str + :param expiration_date_time: Effective expiration date of the maintenance window in YYYY-MM-DD + hh:mm format. The window will be created in the time zone provided and adjusted to daylight + savings according to that time zone. Expiration date must be set to a future date. If not + provided, it will be set to the maximum datetime 9999-12-31 23:59:59. + :type expiration_date_time: str + :param duration: Duration of the maintenance window in HH:mm format. If not provided, default + value will be used based on maintenance scope provided. Example: 05:00. + :type duration: str + :param time_zone: Name of the timezone. List of timezones can be obtained by executing + [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific Standard Time, UTC, + W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time. + :type time_zone: str + :param recur_every: Rate at which a Maintenance window is expected to recur. The rate can be + expressed as daily, weekly, or monthly schedules. Daily schedule are formatted as recurEvery: + [Frequency as integer]['Day(s)']. If no frequency is provided, the default frequency is 1. + Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly schedule are formatted + as recurEvery: [Frequency as integer]['Week(s)'] [Optional comma separated list of weekdays + Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, recurEvery: Week + Saturday,Sunday. Monthly schedules are formatted as [Frequency as integer]['Month(s)'] [Comma + separated list of month days] or [Frequency as integer]['Month(s)'] [Week of Month (First, + Second, Third, Fourth, Last)] [Weekday Monday-Sunday]. Monthly schedule examples are + recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23,day24, recurEvery: Month Last + Sunday, recurEvery: Month Fourth Monday. + :type recur_every: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~maintenance_client.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MaintenanceConfiguration"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _configuration = models.MaintenanceConfiguration(location=location, tags=tags, namespace=namespace, extension_properties=extension_properties, maintenance_scope=maintenance_scope, visibility=visibility, start_date_time=start_date_time, expiration_date_time=expiration_date_time, duration=duration, time_zone=time_zone, recur_every=recur_every) + api_version = "2020-07-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.create_or_update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_configuration, 'MaintenanceConfiguration') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.MaintenanceError, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} # type: ignore + + def delete( + self, + resource_group_name, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.MaintenanceConfiguration" + """Delete Configuration record. + + Delete Configuration record. + + :param resource_group_name: Resource Group Name. + :type resource_group_name: str + :param resource_name: Resource Identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~maintenance_client.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MaintenanceConfiguration"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.MaintenanceError, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} # type: ignore + + def update( + self, + resource_group_name, # type: str + resource_name, # type: str + location=None, # type: Optional[str] + tags=None, # type: Optional[Dict[str, str]] + namespace=None, # type: Optional[str] + extension_properties=None, # type: Optional[Dict[str, str]] + maintenance_scope=None, # type: Optional[Union[str, "models.MaintenanceScope"]] + visibility=None, # type: Optional[Union[str, "models.Visibility"]] + start_date_time=None, # type: Optional[str] + expiration_date_time=None, # type: Optional[str] + duration=None, # type: Optional[str] + time_zone=None, # type: Optional[str] + recur_every=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "models.MaintenanceConfiguration" + """Patch configuration record. + + Patch configuration record. + + :param resource_group_name: Resource Group Name. + :type resource_group_name: str + :param resource_name: Resource Identifier. + :type resource_name: str + :param location: Gets or sets location of the resource. + :type location: str + :param tags: Gets or sets tags of the resource. + :type tags: dict[str, str] + :param namespace: Gets or sets namespace of the resource. + :type namespace: str + :param extension_properties: Gets or sets extensionProperties of the maintenanceConfiguration. + :type extension_properties: dict[str, str] + :param maintenance_scope: Gets or sets maintenanceScope of the configuration. + :type maintenance_scope: str or ~maintenance_client.models.MaintenanceScope + :param visibility: Gets or sets the visibility of the configuration. + :type visibility: str or ~maintenance_client.models.Visibility + :param start_date_time: Effective start date of the maintenance window in YYYY-MM-DD hh:mm + format. The start date can be set to either the current date or future date. The window will be + created in the time zone provided and adjusted to daylight savings according to that time zone. + :type start_date_time: str + :param expiration_date_time: Effective expiration date of the maintenance window in YYYY-MM-DD + hh:mm format. The window will be created in the time zone provided and adjusted to daylight + savings according to that time zone. Expiration date must be set to a future date. If not + provided, it will be set to the maximum datetime 9999-12-31 23:59:59. + :type expiration_date_time: str + :param duration: Duration of the maintenance window in HH:mm format. If not provided, default + value will be used based on maintenance scope provided. Example: 05:00. + :type duration: str + :param time_zone: Name of the timezone. List of timezones can be obtained by executing + [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific Standard Time, UTC, + W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time. + :type time_zone: str + :param recur_every: Rate at which a Maintenance window is expected to recur. The rate can be + expressed as daily, weekly, or monthly schedules. Daily schedule are formatted as recurEvery: + [Frequency as integer]['Day(s)']. If no frequency is provided, the default frequency is 1. + Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly schedule are formatted + as recurEvery: [Frequency as integer]['Week(s)'] [Optional comma separated list of weekdays + Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, recurEvery: Week + Saturday,Sunday. Monthly schedules are formatted as [Frequency as integer]['Month(s)'] [Comma + separated list of month days] or [Frequency as integer]['Month(s)'] [Week of Month (First, + Second, Third, Fourth, Last)] [Weekday Monday-Sunday]. Monthly schedule examples are + recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23,day24, recurEvery: Month Last + Sunday, recurEvery: Month Fourth Monday. + :type recur_every: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~maintenance_client.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MaintenanceConfiguration"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _configuration = models.MaintenanceConfiguration(location=location, tags=tags, namespace=namespace, extension_properties=extension_properties, maintenance_scope=maintenance_scope, visibility=visibility, start_date_time=start_date_time, expiration_date_time=expiration_date_time, duration=duration, time_zone=time_zone, recur_every=recur_every) + api_version = "2020-07-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_configuration, 'MaintenanceConfiguration') + body_content_kwargs['content'] = body_content + request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.MaintenanceError, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} # type: ignore + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.ListMaintenanceConfigurationsResult"] + """Get Configuration records within a subscription. + + Get Configuration records within a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListMaintenanceConfigurationsResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~maintenance_client.models.ListMaintenanceConfigurationsResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListMaintenanceConfigurationsResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ListMaintenanceConfigurationsResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.MaintenanceError, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Maintenance/maintenanceConfigurations'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_operation_operations.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_operation_operations.py new file mode 100644 index 00000000000..0a8fa2a7aee --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_operation_operations.py @@ -0,0 +1,109 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class OperationOperations(object): + """OperationOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.OperationsListResult"] + """List available operations. + + List the available operations supported by the Microsoft.Maintenance resource provider. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either OperationsListResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~maintenance_client.models.OperationsListResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.OperationsListResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('OperationsListResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.MaintenanceError, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/providers/Microsoft.Maintenance/operations'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_public_maintenance_configuration_operations.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_public_maintenance_configuration_operations.py new file mode 100644 index 00000000000..dd8406a5446 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_public_maintenance_configuration_operations.py @@ -0,0 +1,168 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class PublicMaintenanceConfigurationOperations(object): + """PublicMaintenanceConfigurationOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.ListMaintenanceConfigurationsResult"] + """Get Public Maintenance Configuration records. + + Get Public Maintenance Configuration records. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListMaintenanceConfigurationsResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~maintenance_client.models.ListMaintenanceConfigurationsResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListMaintenanceConfigurationsResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ListMaintenanceConfigurationsResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.MaintenanceError, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Maintenance/publicMaintenanceConfigurations'} # type: ignore + + def get( + self, + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.MaintenanceConfiguration" + """Get Public Maintenance Configuration record. + + Get Public Maintenance Configuration record. + + :param resource_name: Resource Identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: MaintenanceConfiguration, or the result of cls(response) + :rtype: ~maintenance_client.models.MaintenanceConfiguration + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.MaintenanceConfiguration"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.MaintenanceError, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('MaintenanceConfiguration', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/{resourceName}'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_update_operations.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_update_operations.py new file mode 100644 index 00000000000..fd193a4fef6 --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/operations/_update_operations.py @@ -0,0 +1,218 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class UpdateOperations(object): + """UpdateOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~maintenance_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list_parent( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_parent_type, # type: str + resource_parent_name, # type: str + resource_type, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.ListUpdatesResult"] + """Get Updates to resource. + + Get updates to resources. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_parent_type: Resource parent type. + :type resource_parent_type: str + :param resource_parent_name: Resource parent identifier. + :type resource_parent_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListUpdatesResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~maintenance_client.models.ListUpdatesResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListUpdatesResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list_parent.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), + 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ListUpdatesResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/updates'} # type: ignore + + def list( + self, + resource_group_name, # type: str + provider_name, # type: str + resource_type, # type: str + resource_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.ListUpdatesResult"] + """Get Updates to resource. + + Get updates to resources. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param provider_name: Resource provider name. + :type provider_name: str + :param resource_type: Resource type. + :type resource_type: str + :param resource_name: Resource identifier. + :type resource_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ListUpdatesResult or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~maintenance_client.models.ListUpdatesResult] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ListUpdatesResult"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-07-01-preview" + + def prepare_request(next_link=None): + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'providerName': self._serialize.url("provider_name", provider_name, 'str'), + 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), + 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + request = self._client.get(url, query_parameters, header_parameters) + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ListUpdatesResult', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/updates'} # type: ignore diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance/py.typed b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/py.typed new file mode 100644 index 00000000000..e5aff4f83af --- /dev/null +++ b/src/maintenance/azext_maintenance/vendored_sdks/maintenance/py.typed @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file diff --git a/src/maintenance/azext_maintenance/vendored_sdks/maintenance_management_client.py b/src/maintenance/azext_maintenance/vendored_sdks/maintenance_management_client.py deleted file mode 100644 index 63a666bd608..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/maintenance_management_client.py +++ /dev/null @@ -1,106 +0,0 @@ -# pylint: disable=too-many-instance-attributes,too-few-public-methods -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.service_client import SDKClient -from msrest import Serializer, Deserializer -from msrestazure import AzureConfiguration -from .version import VERSION -from .operations.apply_updates_operations import ApplyUpdatesOperations -from .operations.configuration_assignments_operations import ConfigurationAssignmentsOperations -from .operations.maintenance_configurations_operations import MaintenanceConfigurationsOperations -from .operations.operations import Operations -from .operations.updates_operations import UpdatesOperations -from . import models - - -class MaintenanceManagementClientConfiguration(AzureConfiguration): - """Configuration for MaintenanceManagementClient - Note that all parameters used to create this instance are saved as instance - attributes. - - :param credentials: Credentials needed for the client to connect to Azure. - :type credentials: :mod:`A msrestazure Credentials - object` - :param subscription_id: Subscription credentials that uniquely identify a - Microsoft Azure subscription. The subscription ID forms part of the URI - for every service call. - :type subscription_id: str - :param str base_url: Service URL - """ - - def __init__( - self, credentials, subscription_id, base_url=None): - - if credentials is None: - raise ValueError("Parameter 'credentials' must not be None.") - if subscription_id is None: - raise ValueError("Parameter 'subscription_id' must not be None.") - if not base_url: - base_url = 'https://management.azure.com' - - super(MaintenanceManagementClientConfiguration, self).__init__(base_url) - - self.add_user_agent('azure-mgmt-Maintenance/{}'.format(VERSION)) - self.add_user_agent('Azure-SDK-For-Python') - - self.credentials = credentials - self.subscription_id = subscription_id - - -class MaintenanceManagementClient(SDKClient): - """Azure Maintenance Management Client - - :ivar config: Configuration for client. - :vartype config: MaintenanceManagementClientConfiguration - - :ivar apply_updates: ApplyUpdates operations - :vartype apply_updates: azure.mgmt.maintenance.operations.ApplyUpdatesOperations - :ivar configuration_assignments: ConfigurationAssignments operations - :vartype configuration_assignments: azure.mgmt.maintenance.operations.ConfigurationAssignmentsOperations - :ivar maintenance_configurations: MaintenanceConfigurations operations - :vartype maintenance_configurations: azure.mgmt.maintenance.operations.MaintenanceConfigurationsOperations - :ivar operations: Operations operations - :vartype operations: azure.mgmt.maintenance.operations.Operations - :ivar updates: Updates operations - :vartype updates: azure.mgmt.maintenance.operations.UpdatesOperations - - :param credentials: Credentials needed for the client to connect to Azure. - :type credentials: :mod:`A msrestazure Credentials - object` - :param subscription_id: Subscription credentials that uniquely identify a - Microsoft Azure subscription. The subscription ID forms part of the URI - for every service call. - :type subscription_id: str - :param str base_url: Service URL - """ - - def __init__( - self, credentials, subscription_id, base_url=None): - - self.config = MaintenanceManagementClientConfiguration(credentials, subscription_id, base_url) - super(MaintenanceManagementClient, self).__init__(self.config.credentials, self.config) - - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self.api_version = '2018-06-01-preview' - self._serialize = Serializer(client_models) - self._deserialize = Deserializer(client_models) - - self.apply_updates = ApplyUpdatesOperations( - self._client, self.config, self._serialize, self._deserialize) - self.configuration_assignments = ConfigurationAssignmentsOperations( - self._client, self.config, self._serialize, self._deserialize) - self.maintenance_configurations = MaintenanceConfigurationsOperations( - self._client, self.config, self._serialize, self._deserialize) - self.operations = Operations( - self._client, self.config, self._serialize, self._deserialize) - self.updates = UpdatesOperations( - self._client, self.config, self._serialize, self._deserialize) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/__init__.py b/src/maintenance/azext_maintenance/vendored_sdks/models/__init__.py deleted file mode 100644 index 13b4a414936..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/__init__.py +++ /dev/null @@ -1,59 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -try: - from .resource_py3 import Resource - from .apply_update_py3 import ApplyUpdate - from .configuration_assignment_py3 import ConfigurationAssignment - from .maintenance_configuration_py3 import MaintenanceConfiguration - from .error_details_py3 import ErrorDetails - from .maintenance_error_py3 import MaintenanceError, MaintenanceErrorException - from .operation_info_py3 import OperationInfo - from .operation_py3 import Operation - from .update_py3 import Update -except (SyntaxError, ImportError): - from .resource import Resource - from .apply_update import ApplyUpdate - from .configuration_assignment import ConfigurationAssignment - from .maintenance_configuration import MaintenanceConfiguration - from .error_details import ErrorDetails - from .maintenance_error import MaintenanceError, MaintenanceErrorException - from .operation_info import OperationInfo - from .operation import Operation - from .update import Update -from .configuration_assignment_paged import ConfigurationAssignmentPaged -from .maintenance_configuration_paged import MaintenanceConfigurationPaged -from .operation_paged import OperationPaged -from .update_paged import UpdatePaged -from .maintenance_management_client_enums import ( - UpdateStatus, - MaintenanceScope, - ImpactType, -) - -__all__ = [ - 'Resource', - 'ApplyUpdate', - 'ConfigurationAssignment', - 'MaintenanceConfiguration', - 'ErrorDetails', - 'MaintenanceError', 'MaintenanceErrorException', - 'OperationInfo', - 'Operation', - 'Update', - 'ConfigurationAssignmentPaged', - 'MaintenanceConfigurationPaged', - 'OperationPaged', - 'UpdatePaged', - 'UpdateStatus', - 'MaintenanceScope', - 'ImpactType', -] diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/apply_update.py b/src/maintenance/azext_maintenance/vendored_sdks/models/apply_update.py deleted file mode 100644 index 8eb0f9de95a..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/apply_update.py +++ /dev/null @@ -1,55 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from .resource import Resource - - -class ApplyUpdate(Resource): - """Apply Update request. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar id: Fully qualified identifier of the resource - :vartype id: str - :ivar name: Name of the resource - :vartype name: str - :ivar type: Type of the resource - :vartype type: str - :param status: The status. Possible values include: 'Pending', - 'InProgress', 'Completed', 'RetryNow', 'RetryLater' - :type status: str or ~azure.mgmt.maintenance.models.UpdateStatus - :param resource_id: The resourceId - :type resource_id: str - :param last_update_time: Last Update time - :type last_update_time: datetime - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'status': {'key': 'properties.status', 'type': 'str'}, - 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, - 'last_update_time': {'key': 'properties.lastUpdateTime', 'type': 'iso-8601'}, - } - - def __init__(self, **kwargs): - super(ApplyUpdate, self).__init__(**kwargs) - self.status = kwargs.get('status', None) - self.resource_id = kwargs.get('resource_id', None) - self.last_update_time = kwargs.get('last_update_time', None) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/apply_update_py3.py b/src/maintenance/azext_maintenance/vendored_sdks/models/apply_update_py3.py deleted file mode 100644 index 7630d88a575..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/apply_update_py3.py +++ /dev/null @@ -1,55 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from .resource_py3 import Resource - - -class ApplyUpdate(Resource): - """Apply Update request. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar id: Fully qualified identifier of the resource - :vartype id: str - :ivar name: Name of the resource - :vartype name: str - :ivar type: Type of the resource - :vartype type: str - :param status: The status. Possible values include: 'Pending', - 'InProgress', 'Completed', 'RetryNow', 'RetryLater' - :type status: str or ~azure.mgmt.maintenance.models.UpdateStatus - :param resource_id: The resourceId - :type resource_id: str - :param last_update_time: Last Update time - :type last_update_time: datetime - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'status': {'key': 'properties.status', 'type': 'str'}, - 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, - 'last_update_time': {'key': 'properties.lastUpdateTime', 'type': 'iso-8601'}, - } - - def __init__(self, *, status=None, resource_id: str = None, last_update_time=None, **kwargs) -> None: - super(ApplyUpdate, self).__init__(**kwargs) - self.status = status - self.resource_id = resource_id - self.last_update_time = last_update_time diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/configuration_assignment.py b/src/maintenance/azext_maintenance/vendored_sdks/models/configuration_assignment.py deleted file mode 100644 index 6dcfed83e76..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/configuration_assignment.py +++ /dev/null @@ -1,54 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from .resource import Resource - - -class ConfigurationAssignment(Resource): - """Configuration Assignment. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar id: Fully qualified identifier of the resource - :vartype id: str - :ivar name: Name of the resource - :vartype name: str - :ivar type: Type of the resource - :vartype type: str - :param location: Location of the resource - :type location: str - :param maintenance_configuration_id: The maintenance configuration Id - :type maintenance_configuration_id: str - :param resource_id: The unique resourceId - :type resource_id: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'maintenance_configuration_id': {'key': 'properties.maintenanceConfigurationId', 'type': 'str'}, - 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(ConfigurationAssignment, self).__init__(**kwargs) - self.location = kwargs.get('location', None) - self.maintenance_configuration_id = kwargs.get('maintenance_configuration_id', None) - self.resource_id = kwargs.get('resource_id', None) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/configuration_assignment_paged.py b/src/maintenance/azext_maintenance/vendored_sdks/models/configuration_assignment_paged.py deleted file mode 100644 index 3bc4778ffda..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/configuration_assignment_paged.py +++ /dev/null @@ -1,29 +0,0 @@ -# pylint: disable=line-too-long -# pylint: disable=too-many-ancestors -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.paging import Paged - - -class ConfigurationAssignmentPaged(Paged): - """ - A paging container for iterating over a list of :class:`ConfigurationAssignment ` object - """ - - _attribute_map = { - 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'current_page': {'key': 'value', 'type': '[ConfigurationAssignment]'} - } - - def __init__(self, *args, **kwargs): - - super(ConfigurationAssignmentPaged, self).__init__(*args, **kwargs) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/configuration_assignment_py3.py b/src/maintenance/azext_maintenance/vendored_sdks/models/configuration_assignment_py3.py deleted file mode 100644 index 58a3550d207..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/configuration_assignment_py3.py +++ /dev/null @@ -1,55 +0,0 @@ -# pylint: disable=line-too-long -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from .resource_py3 import Resource - - -class ConfigurationAssignment(Resource): - """Configuration Assignment. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar id: Fully qualified identifier of the resource - :vartype id: str - :ivar name: Name of the resource - :vartype name: str - :ivar type: Type of the resource - :vartype type: str - :param location: Location of the resource - :type location: str - :param maintenance_configuration_id: The maintenance configuration Id - :type maintenance_configuration_id: str - :param resource_id: The unique resourceId - :type resource_id: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'maintenance_configuration_id': {'key': 'properties.maintenanceConfigurationId', 'type': 'str'}, - 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, - } - - def __init__(self, *, location: str = None, maintenance_configuration_id: str = None, resource_id: str = None, **kwargs) -> None: - super(ConfigurationAssignment, self).__init__(**kwargs) - self.location = location - self.maintenance_configuration_id = maintenance_configuration_id - self.resource_id = resource_id diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/error_details.py b/src/maintenance/azext_maintenance/vendored_sdks/models/error_details.py deleted file mode 100644 index 4047ccb42aa..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/error_details.py +++ /dev/null @@ -1,33 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class ErrorDetails(Model): - """An error response details received from the Azure Maintenance service. - - :param code: Service-defined error code. This code serves as a sub-status - for the HTTP error code specified in the response. - :type code: str - :param message: Human-readable representation of the error. - :type message: str - """ - - _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(ErrorDetails, self).__init__(**kwargs) - self.code = kwargs.get('code', None) - self.message = kwargs.get('message', None) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/error_details_py3.py b/src/maintenance/azext_maintenance/vendored_sdks/models/error_details_py3.py deleted file mode 100644 index 2f167d99c59..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/error_details_py3.py +++ /dev/null @@ -1,33 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class ErrorDetails(Model): - """An error response details received from the Azure Maintenance service. - - :param code: Service-defined error code. This code serves as a sub-status - for the HTTP error code specified in the response. - :type code: str - :param message: Human-readable representation of the error. - :type message: str - """ - - _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - } - - def __init__(self, *, code: str = None, message: str = None, **kwargs) -> None: - super(ErrorDetails, self).__init__(**kwargs) - self.code = code - self.message = message diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_configuration.py b/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_configuration.py deleted file mode 100644 index 8852b344935..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_configuration.py +++ /dev/null @@ -1,66 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from .resource import Resource - - -class MaintenanceConfiguration(Resource): - """Maintenance configuration record type. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar id: Fully qualified identifier of the resource - :vartype id: str - :ivar name: Name of the resource - :vartype name: str - :ivar type: Type of the resource - :vartype type: str - :param location: Gets or sets location of the resource - :type location: str - :param tags: Gets or sets tags of the resource - :type tags: dict[str, str] - :param namespace: Gets or sets namespace of the resource - :type namespace: str - :param extension_properties: Gets or sets extensionProperties of the - maintenanceConfiguration - :type extension_properties: dict[str, str] - :param maintenance_scope: Gets or sets maintenanceScope of the - configuration. Possible values include: 'All', 'Host', 'Resource', - 'InResource' - :type maintenance_scope: str or - ~azure.mgmt.maintenance.models.MaintenanceScope - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'namespace': {'key': 'properties.namespace', 'type': 'str'}, - 'extension_properties': {'key': 'properties.extensionProperties', 'type': '{str}'}, - 'maintenance_scope': {'key': 'properties.maintenanceScope', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(MaintenanceConfiguration, self).__init__(**kwargs) - self.location = kwargs.get('location', None) - self.tags = kwargs.get('tags', None) - self.namespace = kwargs.get('namespace', None) - self.extension_properties = kwargs.get('extension_properties', None) - self.maintenance_scope = kwargs.get('maintenance_scope', None) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_configuration_paged.py b/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_configuration_paged.py deleted file mode 100644 index 0913770a431..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_configuration_paged.py +++ /dev/null @@ -1,29 +0,0 @@ -# pylint: disable=line-too-long -# pylint: disable=too-many-ancestors -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.paging import Paged - - -class MaintenanceConfigurationPaged(Paged): - """ - A paging container for iterating over a list of :class:`MaintenanceConfiguration ` object - """ - - _attribute_map = { - 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'current_page': {'key': 'value', 'type': '[MaintenanceConfiguration]'} - } - - def __init__(self, *args, **kwargs): - - super(MaintenanceConfigurationPaged, self).__init__(*args, **kwargs) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_configuration_py3.py b/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_configuration_py3.py deleted file mode 100644 index 36fa2aa307f..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_configuration_py3.py +++ /dev/null @@ -1,67 +0,0 @@ -# pylint: disable=line-too-long -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from .resource_py3 import Resource - - -class MaintenanceConfiguration(Resource): - """Maintenance configuration record type. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar id: Fully qualified identifier of the resource - :vartype id: str - :ivar name: Name of the resource - :vartype name: str - :ivar type: Type of the resource - :vartype type: str - :param location: Gets or sets location of the resource - :type location: str - :param tags: Gets or sets tags of the resource - :type tags: dict[str, str] - :param namespace: Gets or sets namespace of the resource - :type namespace: str - :param extension_properties: Gets or sets extensionProperties of the - maintenanceConfiguration - :type extension_properties: dict[str, str] - :param maintenance_scope: Gets or sets maintenanceScope of the - configuration. Possible values include: 'All', 'Host', 'Resource', - 'InResource' - :type maintenance_scope: str or - ~azure.mgmt.maintenance.models.MaintenanceScope - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'location': {'key': 'location', 'type': 'str'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'namespace': {'key': 'properties.namespace', 'type': 'str'}, - 'extension_properties': {'key': 'properties.extensionProperties', 'type': '{str}'}, - 'maintenance_scope': {'key': 'properties.maintenanceScope', 'type': 'str'}, - } - - def __init__(self, *, location: str = None, tags=None, namespace: str = None, extension_properties=None, maintenance_scope=None, **kwargs) -> None: - super(MaintenanceConfiguration, self).__init__(**kwargs) - self.location = location - self.tags = tags - self.namespace = namespace - self.extension_properties = extension_properties - self.maintenance_scope = maintenance_scope diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_error.py b/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_error.py deleted file mode 100644 index 005fd1ec7c2..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_error.py +++ /dev/null @@ -1,41 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model -from msrest.exceptions import HttpOperationError - - -class MaintenanceError(Model): - """An error response received from the Azure Maintenance service. - - :param error: Details of the error - :type error: ~azure.mgmt.maintenance.models.ErrorDetails - """ - - _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorDetails'}, - } - - def __init__(self, **kwargs): - super(MaintenanceError, self).__init__(**kwargs) - self.error = kwargs.get('error', None) - - -class MaintenanceErrorException(HttpOperationError): - """Server responsed with exception of type: 'MaintenanceError'. - - :param deserialize: A deserializer - :param response: Server response to be deserialized. - """ - - def __init__(self, deserialize, response, *args): - - super(MaintenanceErrorException, self).__init__(deserialize, response, 'MaintenanceError', *args) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_error_py3.py b/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_error_py3.py deleted file mode 100644 index 90c111e3030..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_error_py3.py +++ /dev/null @@ -1,41 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model -from msrest.exceptions import HttpOperationError - - -class MaintenanceError(Model): - """An error response received from the Azure Maintenance service. - - :param error: Details of the error - :type error: ~azure.mgmt.maintenance.models.ErrorDetails - """ - - _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorDetails'}, - } - - def __init__(self, *, error=None, **kwargs) -> None: - super(MaintenanceError, self).__init__(**kwargs) - self.error = error - - -class MaintenanceErrorException(HttpOperationError): - """Server responsed with exception of type: 'MaintenanceError'. - - :param deserialize: A deserializer - :param response: Server response to be deserialized. - """ - - def __init__(self, deserialize, response, *args): - - super(MaintenanceErrorException, self).__init__(deserialize, response, 'MaintenanceError', *args) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/operation.py b/src/maintenance/azext_maintenance/vendored_sdks/models/operation.py deleted file mode 100644 index a49db9af2e3..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/operation.py +++ /dev/null @@ -1,40 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class Operation(Model): - """Represents an operation returned by the GetOperations request. - - :param name: Name of the operation - :type name: str - :param display: Display name of the operation - :type display: ~azure.mgmt.maintenance.models.OperationInfo - :param origin: Origin of the operation - :type origin: str - :param properties: Properties of the operation - :type properties: object - """ - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'display': {'key': 'display', 'type': 'OperationInfo'}, - 'origin': {'key': 'origin', 'type': 'str'}, - 'properties': {'key': 'properties', 'type': 'object'}, - } - - def __init__(self, **kwargs): - super(Operation, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.display = kwargs.get('display', None) - self.origin = kwargs.get('origin', None) - self.properties = kwargs.get('properties', None) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/operation_info.py b/src/maintenance/azext_maintenance/vendored_sdks/models/operation_info.py deleted file mode 100644 index 20c7286c095..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/operation_info.py +++ /dev/null @@ -1,40 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class OperationInfo(Model): - """Information about an operation. - - :param provider: Name of the provider - :type provider: str - :param resource: Name of the resource type - :type resource: str - :param operation: Name of the operation - :type operation: str - :param description: Description of the operation - :type description: str - """ - - _attribute_map = { - 'provider': {'key': 'provider', 'type': 'str'}, - 'resource': {'key': 'resource', 'type': 'str'}, - 'operation': {'key': 'operation', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(OperationInfo, self).__init__(**kwargs) - self.provider = kwargs.get('provider', None) - self.resource = kwargs.get('resource', None) - self.operation = kwargs.get('operation', None) - self.description = kwargs.get('description', None) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/operation_info_py3.py b/src/maintenance/azext_maintenance/vendored_sdks/models/operation_info_py3.py deleted file mode 100644 index 7376965ab1e..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/operation_info_py3.py +++ /dev/null @@ -1,41 +0,0 @@ -# pylint: disable=line-too-long -# # coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class OperationInfo(Model): - """Information about an operation. - - :param provider: Name of the provider - :type provider: str - :param resource: Name of the resource type - :type resource: str - :param operation: Name of the operation - :type operation: str - :param description: Description of the operation - :type description: str - """ - - _attribute_map = { - 'provider': {'key': 'provider', 'type': 'str'}, - 'resource': {'key': 'resource', 'type': 'str'}, - 'operation': {'key': 'operation', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - } - - def __init__(self, *, provider: str = None, resource: str = None, operation: str = None, description: str = None, **kwargs) -> None: - super(OperationInfo, self).__init__(**kwargs) - self.provider = provider - self.resource = resource - self.operation = operation - self.description = description diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/operation_py3.py b/src/maintenance/azext_maintenance/vendored_sdks/models/operation_py3.py deleted file mode 100644 index 521b2ceeadb..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/operation_py3.py +++ /dev/null @@ -1,40 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class Operation(Model): - """Represents an operation returned by the GetOperations request. - - :param name: Name of the operation - :type name: str - :param display: Display name of the operation - :type display: ~azure.mgmt.maintenance.models.OperationInfo - :param origin: Origin of the operation - :type origin: str - :param properties: Properties of the operation - :type properties: object - """ - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'display': {'key': 'display', 'type': 'OperationInfo'}, - 'origin': {'key': 'origin', 'type': 'str'}, - 'properties': {'key': 'properties', 'type': 'object'}, - } - - def __init__(self, *, name: str = None, display=None, origin: str = None, properties=None, **kwargs) -> None: - super(Operation, self).__init__(**kwargs) - self.name = name - self.display = display - self.origin = origin - self.properties = properties diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/resource.py b/src/maintenance/azext_maintenance/vendored_sdks/models/resource.py deleted file mode 100644 index b2d2b17be38..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/resource.py +++ /dev/null @@ -1,45 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class Resource(Model): - """Definition of a Resource. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar id: Fully qualified identifier of the resource - :vartype id: str - :ivar name: Name of the resource - :vartype name: str - :ivar type: Type of the resource - :vartype type: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(Resource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/resource_py3.py b/src/maintenance/azext_maintenance/vendored_sdks/models/resource_py3.py deleted file mode 100644 index 79dce3e5b3b..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/resource_py3.py +++ /dev/null @@ -1,45 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class Resource(Model): - """Definition of a Resource. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar id: Fully qualified identifier of the resource - :vartype id: str - :ivar name: Name of the resource - :vartype name: str - :ivar type: Type of the resource - :vartype type: str - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - } - - def __init__(self, **kwargs) -> None: - super(Resource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/update.py b/src/maintenance/azext_maintenance/vendored_sdks/models/update.py deleted file mode 100644 index 85af753a955..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/update.py +++ /dev/null @@ -1,53 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class Update(Model): - """Maintenance update on a resource. - - :param maintenance_scope: The impact area. Possible values include: 'All', - 'Host', 'Resource', 'InResource' - :type maintenance_scope: str or - ~azure.mgmt.maintenance.models.MaintenanceScope - :param impact_type: The impact type. Possible values include: 'None', - 'Freeze', 'Restart', 'Redeploy' - :type impact_type: str or ~azure.mgmt.maintenance.models.ImpactType - :param status: The status. Possible values include: 'Pending', - 'InProgress', 'Completed', 'RetryNow', 'RetryLater' - :type status: str or ~azure.mgmt.maintenance.models.UpdateStatus - :param impact_duration_in_sec: Duration of impact in seconds - :type impact_duration_in_sec: int - :param not_before: Time when Azure will start force updates if not - self-updated by customer before this time - :type not_before: datetime - :param resource_id: The resourceId - :type resource_id: str - """ - - _attribute_map = { - 'maintenance_scope': {'key': 'maintenanceScope', 'type': 'str'}, - 'impact_type': {'key': 'impactType', 'type': 'str'}, - 'status': {'key': 'status', 'type': 'str'}, - 'impact_duration_in_sec': {'key': 'impactDurationInSec', 'type': 'int'}, - 'not_before': {'key': 'notBefore', 'type': 'iso-8601'}, - 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(Update, self).__init__(**kwargs) - self.maintenance_scope = kwargs.get('maintenance_scope', None) - self.impact_type = kwargs.get('impact_type', None) - self.status = kwargs.get('status', None) - self.impact_duration_in_sec = kwargs.get('impact_duration_in_sec', None) - self.not_before = kwargs.get('not_before', None) - self.resource_id = kwargs.get('resource_id', None) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/update_paged.py b/src/maintenance/azext_maintenance/vendored_sdks/models/update_paged.py deleted file mode 100644 index 4e0a307fbcc..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/update_paged.py +++ /dev/null @@ -1,28 +0,0 @@ -# pylint: disable=too-many-ancestors -# # coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.paging import Paged - - -class UpdatePaged(Paged): - """ - A paging container for iterating over a list of :class:`Update ` object - """ - - _attribute_map = { - 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'current_page': {'key': 'value', 'type': '[Update]'} - } - - def __init__(self, *args, **kwargs): - - super(UpdatePaged, self).__init__(*args, **kwargs) diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/update_py3.py b/src/maintenance/azext_maintenance/vendored_sdks/models/update_py3.py deleted file mode 100644 index d8f4ba7ca7d..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/update_py3.py +++ /dev/null @@ -1,54 +0,0 @@ -# pylint: disable=line-too-long -# # coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from msrest.serialization import Model - - -class Update(Model): - """Maintenance update on a resource. - - :param maintenance_scope: The impact area. Possible values include: 'All', - 'Host', 'Resource', 'InResource' - :type maintenance_scope: str or - ~azure.mgmt.maintenance.models.MaintenanceScope - :param impact_type: The impact type. Possible values include: 'None', - 'Freeze', 'Restart', 'Redeploy' - :type impact_type: str or ~azure.mgmt.maintenance.models.ImpactType - :param status: The status. Possible values include: 'Pending', - 'InProgress', 'Completed', 'RetryNow', 'RetryLater' - :type status: str or ~azure.mgmt.maintenance.models.UpdateStatus - :param impact_duration_in_sec: Duration of impact in seconds - :type impact_duration_in_sec: int - :param not_before: Time when Azure will start force updates if not - self-updated by customer before this time - :type not_before: datetime - :param resource_id: The resourceId - :type resource_id: str - """ - - _attribute_map = { - 'maintenance_scope': {'key': 'maintenanceScope', 'type': 'str'}, - 'impact_type': {'key': 'impactType', 'type': 'str'}, - 'status': {'key': 'status', 'type': 'str'}, - 'impact_duration_in_sec': {'key': 'impactDurationInSec', 'type': 'int'}, - 'not_before': {'key': 'notBefore', 'type': 'iso-8601'}, - 'resource_id': {'key': 'properties.resourceId', 'type': 'str'}, - } - - def __init__(self, *, maintenance_scope=None, impact_type=None, status=None, impact_duration_in_sec: int = None, not_before=None, resource_id: str = None, **kwargs) -> None: - super(Update, self).__init__(**kwargs) - self.maintenance_scope = maintenance_scope - self.impact_type = impact_type - self.status = status - self.impact_duration_in_sec = impact_duration_in_sec - self.not_before = not_before - self.resource_id = resource_id diff --git a/src/maintenance/azext_maintenance/vendored_sdks/operations/__init__.py b/src/maintenance/azext_maintenance/vendored_sdks/operations/__init__.py deleted file mode 100644 index 6a398c8ffd0..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/operations/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -from .apply_updates_operations import ApplyUpdatesOperations -from .configuration_assignments_operations import ConfigurationAssignmentsOperations -from .maintenance_configurations_operations import MaintenanceConfigurationsOperations -from .operations import Operations -from .updates_operations import UpdatesOperations - -__all__ = [ - 'ApplyUpdatesOperations', - 'ConfigurationAssignmentsOperations', - 'MaintenanceConfigurationsOperations', - 'Operations', - 'UpdatesOperations', -] diff --git a/src/maintenance/azext_maintenance/vendored_sdks/operations/configuration_assignments_operations.py b/src/maintenance/azext_maintenance/vendored_sdks/operations/configuration_assignments_operations.py deleted file mode 100644 index 9c9fa81346f..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/operations/configuration_assignments_operations.py +++ /dev/null @@ -1,521 +0,0 @@ -# pylint: disable=line-too-long -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -import uuid -from msrest.pipeline import ClientRawResponse -from msrestazure.azure_exceptions import CloudError - -from .. import models - - -class ConfigurationAssignmentsOperations(object): - """ConfigurationAssignmentsOperations operations. - - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - :ivar api_version: Version of the API to be used with the client request. Constant value: "2018-06-01-preview". - """ - - models = models - - def __init__(self, client, config, serializer, deserializer): - - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self.api_version = "2018-06-01-preview" - - self.config = config - - def create_or_update_parent( - self, resource_group_name, provider_name, resource_parent_type, resource_parent_name, resource_type, resource_name, configuration_assignment_name, configuration_assignment, custom_headers=None, raw=False, **operation_config): - """Create configuration assignment. - - Register configuration for resource. - - :param resource_group_name: Resource group name - :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_parent_type: Resource parent type - :type resource_parent_type: str - :param resource_parent_name: Resource parent identifier - :type resource_parent_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier - :type resource_name: str - :param configuration_assignment_name: Configuration assignment name - :type configuration_assignment_name: str - :param configuration_assignment: The configurationAssignment - :type configuration_assignment: - ~azure.mgmt.maintenance.models.ConfigurationAssignment - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: ConfigurationAssignment or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.ConfigurationAssignment or - ~msrest.pipeline.ClientRawResponse - :raises: :class:`CloudError` - """ - # Construct URL - url = self.create_or_update_parent.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), - 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), - 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct body - body_content = self._serialize.body(configuration_assignment, 'ConfigurationAssignment') - - # Construct and send request - request = self._client.put(url, query_parameters, header_parameters, body_content) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - exp = CloudError(response) - exp.request_id = response.headers.get('x-ms-request-id') - raise exp - - deserialized = None - - if response.status_code == 200: - deserialized = self._deserialize('ConfigurationAssignment', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - create_or_update_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} - - def delete_parent( - self, resource_group_name, provider_name, resource_parent_type, resource_parent_name, resource_type, resource_name, configuration_assignment_name, custom_headers=None, raw=False, **operation_config): - """Unregister configuration for resource. - - Unregister configuration for resource. - - :param resource_group_name: Resource group name - :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_parent_type: Resource parent type - :type resource_parent_type: str - :param resource_parent_name: Resource parent identifier - :type resource_parent_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier - :type resource_name: str - :param configuration_assignment_name: Unique configuration assignment - name - :type configuration_assignment_name: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: ConfigurationAssignment or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.ConfigurationAssignment or - ~msrest.pipeline.ClientRawResponse - :raises: :class:`CloudError` - """ - # Construct URL - url = self.delete_parent.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), - 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), - 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.delete(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - exp = CloudError(response) - exp.request_id = response.headers.get('x-ms-request-id') - raise exp - - deserialized = None - - if response.status_code == 200: - deserialized = self._deserialize('ConfigurationAssignment', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - delete_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} - - def create_or_update( - self, resource_group_name, provider_name, resource_type, resource_name, configuration_assignment_name, configuration_assignment, custom_headers=None, raw=False, **operation_config): - """Create configuration assignment. - - Register configuration for resource. - - :param resource_group_name: Resource group name - :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier - :type resource_name: str - :param configuration_assignment_name: Configuration assignment name - :type configuration_assignment_name: str - :param configuration_assignment: The configurationAssignment - :type configuration_assignment: - ~azure.mgmt.maintenance.models.ConfigurationAssignment - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: ConfigurationAssignment or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.ConfigurationAssignment or - ~msrest.pipeline.ClientRawResponse - :raises: :class:`CloudError` - """ - # Construct URL - url = self.create_or_update.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), - 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct body - body_content = self._serialize.body(configuration_assignment, 'ConfigurationAssignment') - - # Construct and send request - request = self._client.put(url, query_parameters, header_parameters, body_content) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - exp = CloudError(response) - exp.request_id = response.headers.get('x-ms-request-id') - raise exp - - deserialized = None - - if response.status_code == 200: - deserialized = self._deserialize('ConfigurationAssignment', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} - - def delete( - self, resource_group_name, provider_name, resource_type, resource_name, configuration_assignment_name, custom_headers=None, raw=False, **operation_config): - """Unregister configuration for resource. - - Unregister configuration for resource. - - :param resource_group_name: Resource group name - :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier - :type resource_name: str - :param configuration_assignment_name: Unique configuration assignment - name - :type configuration_assignment_name: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: ConfigurationAssignment or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.ConfigurationAssignment or - ~msrest.pipeline.ClientRawResponse - :raises: :class:`CloudError` - """ - # Construct URL - url = self.delete.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), - 'configurationAssignmentName': self._serialize.url("configuration_assignment_name", configuration_assignment_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.delete(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - exp = CloudError(response) - exp.request_id = response.headers.get('x-ms-request-id') - raise exp - - deserialized = None - - if response.status_code == 200: - deserialized = self._deserialize('ConfigurationAssignment', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments/{configurationAssignmentName}'} - - def list_parent( - self, resource_group_name, provider_name, resource_parent_type, resource_parent_name, resource_type, resource_name, custom_headers=None, raw=False, **operation_config): - """List configurationAssignments for resource. - - List configurationAssignments for resource. - - :param resource_group_name: Resource group name - :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_parent_type: Resource parent type - :type resource_parent_type: str - :param resource_parent_name: Resource parent identifier - :type resource_parent_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier - :type resource_name: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: An iterator like instance of ConfigurationAssignment - :rtype: - ~azure.mgmt.maintenance.models.ConfigurationAssignmentPaged[~azure.mgmt.maintenance.models.ConfigurationAssignment] - :raises: :class:`CloudError` - """ - def internal_paging(next_link=None, raw=False): # pylint: disable=unused-argument - - if not next_link: - # Construct URL - url = self.list_parent.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), - 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - else: - url = next_link - query_parameters = {} - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - exp = CloudError(response) - exp.request_id = response.headers.get('x-ms-request-id') - raise exp - - return response - - # Deserialize response - deserialized = models.ConfigurationAssignmentPaged(internal_paging, self._deserialize.dependencies) - - if raw: - header_dict = {} - client_raw_response = models.ConfigurationAssignmentPaged(internal_paging, self._deserialize.dependencies, header_dict) - return client_raw_response - - return deserialized - list_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments'} - - def list( - self, resource_group_name, provider_name, resource_type, resource_name, custom_headers=None, raw=False, **operation_config): - """List configurationAssignments for resource. - - List configurationAssignments for resource. - - :param resource_group_name: Resource group name - :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier - :type resource_name: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: An iterator like instance of ConfigurationAssignment - :rtype: - ~azure.mgmt.maintenance.models.ConfigurationAssignmentPaged[~azure.mgmt.maintenance.models.ConfigurationAssignment] - :raises: :class:`CloudError` - """ - def internal_paging(next_link=None, raw=False): # pylint: disable=unused-argument - - if not next_link: - # Construct URL - url = self.list.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - else: - url = next_link - query_parameters = {} - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - exp = CloudError(response) - exp.request_id = response.headers.get('x-ms-request-id') - raise exp - - return response - - # Deserialize response - deserialized = models.ConfigurationAssignmentPaged(internal_paging, self._deserialize.dependencies) - - if raw: - header_dict = {} - client_raw_response = models.ConfigurationAssignmentPaged(internal_paging, self._deserialize.dependencies, header_dict) - return client_raw_response - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments'} diff --git a/src/maintenance/azext_maintenance/vendored_sdks/operations/maintenance_configurations_operations.py b/src/maintenance/azext_maintenance/vendored_sdks/operations/maintenance_configurations_operations.py deleted file mode 100644 index c828322f8c3..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/operations/maintenance_configurations_operations.py +++ /dev/null @@ -1,359 +0,0 @@ -# pylint: disable=line-too-long -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -import uuid -from msrest.pipeline import ClientRawResponse - -from .. import models - - -class MaintenanceConfigurationsOperations(object): - """MaintenanceConfigurationsOperations operations. - - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - :ivar api_version: Version of the API to be used with the client request. Constant value: "2018-06-01-preview". - """ - - models = models - - def __init__(self, client, config, serializer, deserializer): - - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self.api_version = "2018-06-01-preview" - - self.config = config - - def get( - self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): - """Get Configuration record. - - :param resource_group_name: Resource Group Name - :type resource_group_name: str - :param resource_name: Resource Identifier - :type resource_name: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: MaintenanceConfiguration or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.MaintenanceConfiguration or - ~msrest.pipeline.ClientRawResponse - :raises: - :class:`MaintenanceErrorException` - """ - # Construct URL - url = self.get.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - raise models.MaintenanceErrorException(self._deserialize, response) - - deserialized = None - - if response.status_code == 200: - deserialized = self._deserialize('MaintenanceConfiguration', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} - - def create_or_update( - self, resource_group_name, resource_name, configuration, custom_headers=None, raw=False, **operation_config): - """Create or Update configuration record. - - :param resource_group_name: Resource Group Name - :type resource_group_name: str - :param resource_name: Resource Identifier - :type resource_name: str - :param configuration: The configuration - :type configuration: - ~azure.mgmt.maintenance.models.MaintenanceConfiguration - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: MaintenanceConfiguration or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.MaintenanceConfiguration or - ~msrest.pipeline.ClientRawResponse - :raises: - :class:`MaintenanceErrorException` - """ - # Construct URL - url = self.create_or_update.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct body - body_content = self._serialize.body(configuration, 'MaintenanceConfiguration') - - # Construct and send request - request = self._client.put(url, query_parameters, header_parameters, body_content) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - raise models.MaintenanceErrorException(self._deserialize, response) - - deserialized = None - - if response.status_code == 200: - deserialized = self._deserialize('MaintenanceConfiguration', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} - - def delete( - self, resource_group_name, resource_name, custom_headers=None, raw=False, **operation_config): - """Delete Configuration record. - - :param resource_group_name: Resource Group Name - :type resource_group_name: str - :param resource_name: Resource Identifier - :type resource_name: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: MaintenanceConfiguration or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.MaintenanceConfiguration or - ~msrest.pipeline.ClientRawResponse - :raises: - :class:`MaintenanceErrorException` - """ - # Construct URL - url = self.delete.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.delete(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - raise models.MaintenanceErrorException(self._deserialize, response) - - deserialized = None - - if response.status_code == 200: - deserialized = self._deserialize('MaintenanceConfiguration', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} - - def update_method( - self, resource_group_name, resource_name, configuration, custom_headers=None, raw=False, **operation_config): - """Patch configuration record. - - :param resource_group_name: Resource Group Name - :type resource_group_name: str - :param resource_name: Resource Identifier - :type resource_name: str - :param configuration: The configuration - :type configuration: - ~azure.mgmt.maintenance.models.MaintenanceConfiguration - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: MaintenanceConfiguration or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.maintenance.models.MaintenanceConfiguration or - ~msrest.pipeline.ClientRawResponse - :raises: - :class:`MaintenanceErrorException` - """ - # Construct URL - url = self.update_method.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct body - body_content = self._serialize.body(configuration, 'MaintenanceConfiguration') - - # Construct and send request - request = self._client.patch(url, query_parameters, header_parameters, body_content) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - raise models.MaintenanceErrorException(self._deserialize, response) - - deserialized = None - - if response.status_code == 200: - deserialized = self._deserialize('MaintenanceConfiguration', response) - - if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response - - return deserialized - update_method.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Maintenance/maintenanceConfigurations/{resourceName}'} - - def list( - self, custom_headers=None, raw=False, **operation_config): - """Get Configuration records within a subscription. - - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: An iterator like instance of MaintenanceConfiguration - :rtype: - ~azure.mgmt.maintenance.models.MaintenanceConfigurationPaged[~azure.mgmt.maintenance.models.MaintenanceConfiguration] - :raises: - :class:`MaintenanceErrorException` - """ - def internal_paging(next_link=None, raw=False): # pylint: disable=unused-argument - - if not next_link: - # Construct URL - url = self.list.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - else: - url = next_link - query_parameters = {} - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - raise models.MaintenanceErrorException(self._deserialize, response) - - return response - - # Deserialize response - deserialized = models.MaintenanceConfigurationPaged(internal_paging, self._deserialize.dependencies) - - if raw: - header_dict = {} - client_raw_response = models.MaintenanceConfigurationPaged(internal_paging, self._deserialize.dependencies, header_dict) - return client_raw_response - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Maintenance/maintenanceConfigurations'} diff --git a/src/maintenance/azext_maintenance/vendored_sdks/operations/updates_operations.py b/src/maintenance/azext_maintenance/vendored_sdks/operations/updates_operations.py deleted file mode 100644 index 397bb74a29c..00000000000 --- a/src/maintenance/azext_maintenance/vendored_sdks/operations/updates_operations.py +++ /dev/null @@ -1,201 +0,0 @@ -# pylint: disable=line-too-long,unused-argument,unused-import -# coding=utf-8 -# -------------------------------------------------------------------------- -# 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 Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -import uuid -from msrest.pipeline import ClientRawResponse -from msrestazure.azure_exceptions import CloudError - -from .. import models - - -class UpdatesOperations(object): - """UpdatesOperations operations. - - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - :ivar api_version: Version of the API to be used with the client request. Constant value: "2018-06-01-preview". - """ - - models = models - - def __init__(self, client, config, serializer, deserializer): - - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self.api_version = "2018-06-01-preview" - - self.config = config - - def list_parent( - self, resource_group_name, provider_name, resource_parent_type, resource_parent_name, resource_type, resource_name, custom_headers=None, raw=False, **operation_config): - """Get Updates to resource. - - Get updates to resources. - - :param resource_group_name: Resource group name - :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_parent_type: Resource parent type - :type resource_parent_type: str - :param resource_parent_name: Resource parent identifier - :type resource_parent_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier - :type resource_name: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: An iterator like instance of Update - :rtype: - ~azure.mgmt.maintenance.models.UpdatePaged[~azure.mgmt.maintenance.models.Update] - :raises: :class:`CloudError` - """ - def internal_paging(next_link=None, raw=False): - - if not next_link: - # Construct URL - url = self.list_parent.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceParentType': self._serialize.url("resource_parent_type", resource_parent_type, 'str'), - 'resourceParentName': self._serialize.url("resource_parent_name", resource_parent_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - else: - url = next_link - query_parameters = {} - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - exp = CloudError(response) - exp.request_id = response.headers.get('x-ms-request-id') - raise exp - - return response - - # Deserialize response - deserialized = models.UpdatePaged(internal_paging, self._deserialize.dependencies) - - if raw: - header_dict = {} - client_raw_response = models.UpdatePaged(internal_paging, self._deserialize.dependencies, header_dict) - return client_raw_response - - return deserialized - list_parent.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/updates'} - - def list( - self, resource_group_name, provider_name, resource_type, resource_name, custom_headers=None, raw=False, **operation_config): - """Get Updates to resource. - - Get updates to resources. - - :param resource_group_name: Resource group name - :type resource_group_name: str - :param provider_name: Resource provider name - :type provider_name: str - :param resource_type: Resource type - :type resource_type: str - :param resource_name: Resource identifier - :type resource_name: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: An iterator like instance of Update - :rtype: - ~azure.mgmt.maintenance.models.UpdatePaged[~azure.mgmt.maintenance.models.Update] - :raises: :class:`CloudError` - """ - def internal_paging(next_link=None, raw=False): - - if not next_link: - # Construct URL - url = self.list.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'providerName': self._serialize.url("provider_name", provider_name, 'str'), - 'resourceType': self._serialize.url("resource_type", resource_type, 'str'), - 'resourceName': self._serialize.url("resource_name", resource_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - else: - url = next_link - query_parameters = {} - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - exp = CloudError(response) - exp.request_id = response.headers.get('x-ms-request-id') - raise exp - - return response - - # Deserialize response - deserialized = models.UpdatePaged(internal_paging, self._deserialize.dependencies) - - if raw: - header_dict = {} - client_raw_response = models.UpdatePaged(internal_paging, self._deserialize.dependencies, header_dict) - return client_raw_response - - return deserialized - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/updates'} diff --git a/src/maintenance/reinstall.cmd b/src/maintenance/reinstall.cmd deleted file mode 100644 index dc63c14ec5a..00000000000 --- a/src/maintenance/reinstall.cmd +++ /dev/null @@ -1,3 +0,0 @@ -cmd /c "az extension remove -n maintenance" -cmd /c "python setup.py bdist_wheel" -cmd /c "az extension add --source dist\maintenance-1.0.1-py2.py3-none-any.whl -y" \ No newline at end of file diff --git a/src/maintenance/report.md b/src/maintenance/report.md new file mode 100644 index 00000000000..e90e71c36a4 --- /dev/null +++ b/src/maintenance/report.md @@ -0,0 +1,426 @@ +# Azure CLI Module Creation Report + +### maintenance applyupdate create + +create a maintenance applyupdate. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance applyupdate|ApplyUpdates| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|create|CreateOrUpdateParent| +|create|CreateOrUpdate#Create| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-parent-type**|string|Resource parent type|resource_parent_type|resourceParentType| +|**--resource-parent-name**|string|Resource parent identifier|resource_parent_name|resourceParentName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| + +### maintenance applyupdate get-parent + +get-parent a maintenance applyupdate. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance applyupdate|ApplyUpdates| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|get-parent|GetParent| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--resource-parent-type**|string|Resource parent type|resource_parent_type|resourceParentType| +|**--resource-parent-name**|string|Resource parent identifier|resource_parent_name|resourceParentName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| +|**--apply-update-name**|string|applyUpdate Id|apply_update_name|applyUpdateName| + +### maintenance applyupdate show + +show a maintenance applyupdate. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance applyupdate|ApplyUpdates| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|show|Get| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| +|**--apply-update-name**|string|applyUpdate Id|apply_update_name|applyUpdateName| + +### maintenance applyupdate update + +update a maintenance applyupdate. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance applyupdate|ApplyUpdates| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|update|CreateOrUpdate#Update| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| + +### maintenance assignment create + +create a maintenance assignment. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance assignment|ConfigurationAssignments| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|create|CreateOrUpdateParent| +|create|CreateOrUpdate#Create| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-parent-type**|string|Resource parent type|resource_parent_type|resourceParentType| +|**--resource-parent-name**|string|Resource parent identifier|resource_parent_name|resourceParentName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| +|**--configuration-assignment-name**|string|Configuration assignment name|configuration_assignment_name|configurationAssignmentName| +|**--location**|string|Location of the resource|location|location| +|**--maintenance-configuration-id**|string|The maintenance configuration Id|maintenance_configuration_id|maintenanceConfigurationId| +|**--resource-id**|string|The unique resourceId|resource_id|resourceId| + +### maintenance assignment delete + +delete a maintenance assignment. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance assignment|ConfigurationAssignments| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|delete|DeleteParent| +|delete|Delete| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-parent-type**|string|Resource parent type|resource_parent_type|resourceParentType| +|**--resource-parent-name**|string|Resource parent identifier|resource_parent_name|resourceParentName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| +|**--configuration-assignment-name**|string|Unique configuration assignment name|configuration_assignment_name|configurationAssignmentName| + +### maintenance assignment list + +list a maintenance assignment. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance assignment|ConfigurationAssignments| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|list|List| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| + +### maintenance assignment list-parent + +list-parent a maintenance assignment. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance assignment|ConfigurationAssignments| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|list-parent|ListParent| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-parent-type**|string|Resource parent type|resource_parent_type|resourceParentType| +|**--resource-parent-name**|string|Resource parent identifier|resource_parent_name|resourceParentName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| + +### maintenance assignment update + +update a maintenance assignment. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance assignment|ConfigurationAssignments| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|update|CreateOrUpdate#Update| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| +|**--configuration-assignment-name**|string|Configuration assignment name|configuration_assignment_name|configurationAssignmentName| +|**--location**|string|Location of the resource|location|location| +|**--maintenance-configuration-id**|string|The maintenance configuration Id|maintenance_configuration_id|maintenanceConfigurationId| +|**--resource-id**|string|The unique resourceId|resource_id|resourceId| + +### maintenance configuration create + +create a maintenance configuration. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance configuration|MaintenanceConfigurations| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|create|CreateOrUpdate#Create| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource Group Name|resource_group_name|resourceGroupName| +|**--resource-name**|string|Resource Identifier|resource_name|resourceName| +|**--location**|string|Gets or sets location of the resource|location|location| +|**--tags**|dictionary|Gets or sets tags of the resource|tags|tags| +|**--namespace**|string|Gets or sets namespace of the resource|namespace|namespace| +|**--extension-properties**|dictionary|Gets or sets extensionProperties of the maintenanceConfiguration|extension_properties|extensionProperties| +|**--maintenance-scope**|choice|Gets or sets maintenanceScope of the configuration|maintenance_scope|maintenanceScope| +|**--visibility**|choice|Gets or sets the visibility of the configuration|visibility|visibility| +|**--maintenance-window-start-date-time**|string|Effective start date of the maintenance window in YYYY-MM-DD hh:mm format. The start date can be set to either the current date or future date. The window will be created in the time zone provided and adjusted to daylight savings according to that time zone.|start_date_time|startDateTime| +|**--maintenance-window-expiration-date-time**|string|Effective expiration date of the maintenance window in YYYY-MM-DD hh:mm format. The window will be created in the time zone provided and adjusted to daylight savings according to that time zone. Expiration date must be set to a future date. If not provided, it will be set to the maximum datetime 9999-12-31 23:59:59.|expiration_date_time|expirationDateTime| +|**--maintenance-window-duration**|string|Duration of the maintenance window in HH:mm format. If not provided, default value will be used based on maintenance scope provided. Example: 05:00.|duration|duration| +|**--maintenance-window-time-zone**|string|Name of the timezone. List of timezones can be obtained by executing [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time.|time_zone|timeZone| +|**--maintenance-window-recur-every**|string|Rate at which a Maintenance window is expected to recur. The rate can be expressed as daily, weekly, or monthly schedules. Daily schedule are formatted as recurEvery: [Frequency as integer]['Day(s)']. If no frequency is provided, the default frequency is 1. Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly schedule are formatted as recurEvery: [Frequency as integer]['Week(s)'] [Optional comma separated list of weekdays Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, recurEvery: Week Saturday,Sunday. Monthly schedules are formatted as [Frequency as integer]['Month(s)'] [Comma separated list of month days] or [Frequency as integer]['Month(s)'] [Week of Month (First, Second, Third, Fourth, Last)] [Weekday Monday-Sunday]. Monthly schedule examples are recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23,day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday.|recur_every|recurEvery| + +### maintenance configuration delete + +delete a maintenance configuration. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance configuration|MaintenanceConfigurations| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|delete|Delete| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource Group Name|resource_group_name|resourceGroupName| +|**--resource-name**|string|Resource Identifier|resource_name|resourceName| + +### maintenance configuration list + +list a maintenance configuration. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance configuration|MaintenanceConfigurations| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|list|List| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| + +### maintenance configuration show + +show a maintenance configuration. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance configuration|MaintenanceConfigurations| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|show|Get| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource Group Name|resource_group_name|resourceGroupName| +|**--resource-name**|string|Resource Identifier|resource_name|resourceName| + +### maintenance configuration update + +update a maintenance configuration. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance configuration|MaintenanceConfigurations| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|update|Update| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource Group Name|resource_group_name|resourceGroupName| +|**--resource-name**|string|Resource Identifier|resource_name|resourceName| +|**--location**|string|Gets or sets location of the resource|location|location| +|**--tags**|dictionary|Gets or sets tags of the resource|tags|tags| +|**--namespace**|string|Gets or sets namespace of the resource|namespace|namespace| +|**--extension-properties**|dictionary|Gets or sets extensionProperties of the maintenanceConfiguration|extension_properties|extensionProperties| +|**--maintenance-scope**|choice|Gets or sets maintenanceScope of the configuration|maintenance_scope|maintenanceScope| +|**--visibility**|choice|Gets or sets the visibility of the configuration|visibility|visibility| +|**--maintenance-window-start-date-time**|string|Effective start date of the maintenance window in YYYY-MM-DD hh:mm format. The start date can be set to either the current date or future date. The window will be created in the time zone provided and adjusted to daylight savings according to that time zone.|start_date_time|startDateTime| +|**--maintenance-window-expiration-date-time**|string|Effective expiration date of the maintenance window in YYYY-MM-DD hh:mm format. The window will be created in the time zone provided and adjusted to daylight savings according to that time zone. Expiration date must be set to a future date. If not provided, it will be set to the maximum datetime 9999-12-31 23:59:59.|expiration_date_time|expirationDateTime| +|**--maintenance-window-duration**|string|Duration of the maintenance window in HH:mm format. If not provided, default value will be used based on maintenance scope provided. Example: 05:00.|duration|duration| +|**--maintenance-window-time-zone**|string|Name of the timezone. List of timezones can be obtained by executing [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell. Example: Pacific Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Cen. Australia Standard Time.|time_zone|timeZone| +|**--maintenance-window-recur-every**|string|Rate at which a Maintenance window is expected to recur. The rate can be expressed as daily, weekly, or monthly schedules. Daily schedule are formatted as recurEvery: [Frequency as integer]['Day(s)']. If no frequency is provided, the default frequency is 1. Daily schedule examples are recurEvery: Day, recurEvery: 3Days. Weekly schedule are formatted as recurEvery: [Frequency as integer]['Week(s)'] [Optional comma separated list of weekdays Monday-Sunday]. Weekly schedule examples are recurEvery: 3Weeks, recurEvery: Week Saturday,Sunday. Monthly schedules are formatted as [Frequency as integer]['Month(s)'] [Comma separated list of month days] or [Frequency as integer]['Month(s)'] [Week of Month (First, Second, Third, Fourth, Last)] [Weekday Monday-Sunday]. Monthly schedule examples are recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23,day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday.|recur_every|recurEvery| + +### maintenance public-configuration list + +list a maintenance public-configuration. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance public-configuration|PublicMaintenanceConfigurations| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|list|List| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| + +### maintenance public-configuration show + +show a maintenance public-configuration. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance public-configuration|PublicMaintenanceConfigurations| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|show|Get| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-name**|string|Resource Identifier|resource_name|resourceName| + +### maintenance update list + +list a maintenance update. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance update|Updates| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|list|List| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| + +### maintenance update list-parent + +list-parent a maintenance update. + +#### Command group +|Name (az)|Swagger name| +|---------|------------| +|maintenance update|Updates| + +#### Methods +|Name (az)|Swagger name| +|---------|------------| +|list-parent|ListParent| + +#### Parameters +|Option|Type|Description|Path (SDK)|Swagger name| +|------|----|-----------|----------|------------| +|**--resource-group-name**|string|Resource group name|resource_group_name|resourceGroupName| +|**--provider-name**|string|Resource provider name|provider_name|providerName| +|**--resource-parent-type**|string|Resource parent type|resource_parent_type|resourceParentType| +|**--resource-parent-name**|string|Resource parent identifier|resource_parent_name|resourceParentName| +|**--resource-type**|string|Resource type|resource_type|resourceType| +|**--resource-name**|string|Resource identifier|resource_name|resourceName| diff --git a/src/maintenance/setup.cfg b/src/maintenance/setup.cfg index 11d9c44f6e0..2fdd96e5d39 100644 --- a/src/maintenance/setup.cfg +++ b/src/maintenance/setup.cfg @@ -1,3 +1 @@ -[bdist_wheel] -universal=1 - +#setup.cfg \ No newline at end of file diff --git a/src/maintenance/setup.py b/src/maintenance/setup.py index 271eea54fa3..3ec4d712c90 100644 --- a/src/maintenance/setup.py +++ b/src/maintenance/setup.py @@ -1,40 +1,57 @@ +#!/usr/bin/env python + # -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- +from codecs import open from setuptools import setup, find_packages +# HISTORY.rst entry. +VERSION = '1.1.0' +try: + from azext_maintenance.manual.version import VERSION +except ImportError: + pass -VERSION = "1.0.1" +# The full list of classifiers is available at +# https://pypi.python.org/pypi?%3Aaction=list_classifiers CLASSIFIERS = [ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'Intended Audience :: System Administrators', 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', 'License :: OSI Approved :: MIT License', ] DEPENDENCIES = [] +try: + from .manual.dependency import DEPENDENCIES +except ImportError: + pass + +with open('README.md', 'r', encoding='utf-8') as f: + README = f.read() +with open('HISTORY.rst', 'r', encoding='utf-8') as f: + HISTORY = f.read() setup( name='maintenance', version=VERSION, - description='Support for Azure maintenance management.', - long_description='Microsoft Azure Command-Line Extensions for Maintenance', + description='Microsoft Azure Command-Line Tools MaintenanceClient Extension', + author='Microsoft Corporation', + author_email='azpycli@microsoft.com', + url='https://github.com/Azure/azure-cli-extensions/tree/master/src/maintenance', + long_description=README + '\n\n' + HISTORY, license='MIT', - author='Abhishek Kumar', - author_email='abkmr@microsoft.com', - url='https://github.com/Azure/azure-cli-extensions', classifiers=CLASSIFIERS, + packages=find_packages(), + install_requires=DEPENDENCIES, package_data={'azext_maintenance': ['azext_metadata.json']}, - packages=find_packages(exclude=['tests']), - install_requires=DEPENDENCIES ) diff --git a/src/scheduled-query/HISTORY.rst b/src/scheduled-query/HISTORY.rst new file mode 100644 index 00000000000..57ce1a5210a --- /dev/null +++ b/src/scheduled-query/HISTORY.rst @@ -0,0 +1,11 @@ +.. :changelog: + +Release History +=============== +0.2.0 +++++++ +* Adjust pattern for `--condition` parameter. + +0.1.0 +++++++ +* Initial release. \ No newline at end of file diff --git a/src/scheduled-query/README.rst b/src/scheduled-query/README.rst new file mode 100644 index 00000000000..f8516fe1a34 --- /dev/null +++ b/src/scheduled-query/README.rst @@ -0,0 +1,51 @@ +Microsoft Azure CLI 'scheduled-query' Extension +========================================== + +This package is for the 'scheduled-query' extension. +i.e. 'az scheduled-query' + +### How to use ### + +Install this extension using the below CLI command: + +``` +az extension add --name scheduled-query +``` + +### Sample Commands ### + +Create a scheduled query for a vm: + +``` +az monitor scheduled-query create -g {ResourceGroup} -n {nameofthealert} --scopes {vm_id} --condition "count \'union Event, Syslog | where TimeGenerated > ago(1h) | where EventLevelName == \"Error\" or SeverityLevel== \"err\"\' > 360" --description {descriptionofthealert} +``` + +Update the scheduled query for a vm: + +``` +az monitor scheduled-query update -g {ResourceGroup} -n {nameofthealert} --condition "count \'union Event, Syslog | where TimeGenerated > ago(1h) | where EventLevelName == \"Error\" or SeverityLevel== \"err\"\' > 360" --description {descriptionofthealert} +``` + +Show the detail of a scheduled query: + +``` +az monitor scheduled-query show -g {ResourceGroup} -n {nameofthealert} +``` + +List all scheduled queries in a resource group: + +``` +az monitor scheduled-query list -g {ResourceGroup} +``` + +List scheduled query by id: + +``` +az monitor scheduled-query show --ids {RuleResourceId} +``` + +Delete the scheduled query: + +``` +az monitor scheduled-query delete -g {ResourceGroup} -n {nameofthealert} +``` diff --git a/src/scheduled-query/azext_scheduled_query/__init__.py b/src/scheduled-query/azext_scheduled_query/__init__.py new file mode 100644 index 00000000000..d7894bdc735 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/__init__.py @@ -0,0 +1,32 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from azure.cli.core import AzCommandsLoader + +from azext_scheduled_query._help import helps # pylint: disable=unused-import + + +class ScheduledQueryCommandsLoader(AzCommandsLoader): + + def __init__(self, cli_ctx=None): + from azure.cli.core.commands import CliCommandType + from azext_scheduled_query._client_factory import cf_scheduled_query + scheduled_query_custom = CliCommandType( + operations_tmpl='azext_scheduled_query.custom#{}', + client_factory=cf_scheduled_query) + super(ScheduledQueryCommandsLoader, self).__init__(cli_ctx=cli_ctx, + custom_command_type=scheduled_query_custom) + + def load_command_table(self, args): + from azext_scheduled_query.commands import load_command_table + load_command_table(self, args) + return self.command_table + + def load_arguments(self, command): + from azext_scheduled_query._params import load_arguments + load_arguments(self, command) + + +COMMAND_LOADER_CLS = ScheduledQueryCommandsLoader diff --git a/src/scheduled-query/azext_scheduled_query/_actions.py b/src/scheduled-query/azext_scheduled_query/_actions.py new file mode 100644 index 00000000000..6c6b3534d74 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/_actions.py @@ -0,0 +1,59 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import argparse +from knack.util import CLIError + + +# pylint: disable=protected-access, too-few-public-methods +class ScheduleQueryConditionAction(argparse._AppendAction): + + def __call__(self, parser, namespace, values, option_string=None): + # antlr4 is not available everywhere, restrict the import scope so that commands + # that do not need it don't fail when it is absent + import antlr4 + + from azext_scheduled_query.grammar.scheduled_query import ( + ScheduleQueryConditionLexer, ScheduleQueryConditionParser, ScheduleQueryConditionValidator) + + usage = 'usage error: --condition {avg,min,max,total,count} ["METRIC COLUMN" from]\n' \ + ' "QUERY" {=,!=,>,>=,<,<=} THRESHOLD\n' \ + ' [resource id RESOURCEID]\n' \ + ' [where DIMENSION {includes,excludes} VALUE [or VALUE ...]\n' \ + ' [and DIMENSION {includes,excludes} VALUE [or VALUE ...] ...]]\n' \ + ' [at least MinTimeToFail violations out of EvaluationPeriod aggregated points]' + string_val = ' '.join(values) + + lexer = ScheduleQueryConditionLexer(antlr4.InputStream(string_val)) + stream = antlr4.CommonTokenStream(lexer) + parser = ScheduleQueryConditionParser(stream) + tree = parser.expression() + + try: + validator = ScheduleQueryConditionValidator() + walker = antlr4.ParseTreeWalker() + walker.walk(validator, tree) + scheduled_query_condition = validator.result() + for item in ['time_aggregation', 'threshold', 'operator']: + if not getattr(scheduled_query_condition, item, None): + raise CLIError(usage) + except (AttributeError, TypeError, KeyError): + raise CLIError(usage) + super(ScheduleQueryConditionAction, self).__call__(parser, + namespace, + scheduled_query_condition, + option_string) + + +# pylint: disable=protected-access, too-few-public-methods +class ScheduleQueryAddAction(argparse._AppendAction): + + def __call__(self, parser, namespace, values, option_string=None): + from azext_scheduled_query.vendored_sdks.azure_mgmt_scheduled_query.models import Action + action = Action( + action_group_id=values[0], + web_hook_properties=dict(x.split('=', 1) for x in values[1:]) if len(values) > 1 else None + ) + super(ScheduleQueryAddAction, self).__call__(parser, namespace, action, option_string) diff --git a/src/connectedmachine/azext_connectedmachine/_client_factory.py b/src/scheduled-query/azext_scheduled_query/_client_factory.py similarity index 67% rename from src/connectedmachine/azext_connectedmachine/_client_factory.py rename to src/scheduled-query/azext_scheduled_query/_client_factory.py index b788393389f..736646ac843 100644 --- a/src/connectedmachine/azext_connectedmachine/_client_factory.py +++ b/src/scheduled-query/azext_scheduled_query/_client_factory.py @@ -4,8 +4,7 @@ # -------------------------------------------------------------------------------------------- -def cf_connectedmachine(cli_ctx, *_): - +def cf_scheduled_query(cli_ctx, *_): from azure.cli.core.commands.client_factory import get_mgmt_service_client - from azext_connectedmachine.vendored_sdks import HybridComputeManagementClient - return get_mgmt_service_client(cli_ctx, HybridComputeManagementClient) + from .vendored_sdks.azure_mgmt_scheduled_query._monitor_client import MonitorClient + return get_mgmt_service_client(cli_ctx, MonitorClient).scheduled_query_rules diff --git a/src/scheduled-query/azext_scheduled_query/_help.py b/src/scheduled-query/azext_scheduled_query/_help.py new file mode 100644 index 00000000000..299901a117f --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/_help.py @@ -0,0 +1,79 @@ +# coding=utf-8 +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from knack.help_files import helps # pylint: disable=unused-import + + +helps['monitor scheduled-query'] = """ + type: group + short-summary: Commands to manage scheduled queries. +""" + +helps['monitor scheduled-query create'] = """ +type: command +short-summary: Create a scheduled query. +parameters: + - name: --action -a + short-summary: Add an action group and optional webhook properties to fire when the alert is triggered. + long-summary: | + Usage: --action ACTION_GROUP_NAME_OR_ID [KEY=VAL [KEY=VAL ...]] + + Multiple action groups can be specified by using more than one `--action` argument. + - name: --condition + short-summary: The condition which triggers the rule. + long-summary: | + Usage: --condition {avg,min,max,total,count} ["METRIC COLUMN" from] + "QUERY" {=,!=,>,>=,<,<=} THRESHOLD + [resource id RESOURCEID] + [where DIMENSION {includes,excludes} VALUE [or VALUE ...] + [and DIMENSION {includes,excludes} VALUE [or VALUE ...] ...]] + [at least MinTimeToFail violations out of EvaluationPeriod aggregated points]' + + Dimensions can be queried by adding the 'where' keyword and multiple dimensions can be queried by combining them with the 'and' keyword. +examples: + - name: Create a scheduled query for a VM. + text: az monitor scheduled-query create -g {rg} -n {name1} --scopes {vm_id} --condition "count 'union Event, Syslog | where TimeGenerated > ago(1h) | where EventLevelName==\"Error\" or SeverityLevel==\"err\"' > 360 resource id _ResourceID at least 1 violations out of 5 aggregated points" --description "Test rule" + - name: Create a scheduled query for VMs in a resource group. + text: az monitor scheduled-query create -g {rg} -n {name1} --scopes {rg_id} --condition "count 'union Event, Syslog | where TimeGenerated > ago(1h) | where EventLevelName==\"Error\" or SeverityLevel==\"err\"' > 360 resource id _ResourceID at least 1 violations out of 5 aggregated points" --description "Test rule" +""" + +helps['monitor scheduled-query update'] = """ +type: command +short-summary: Update a scheduled query. +parameters: + - name: --action -a + short-summary: Add an action group and optional webhook properties to fire when the alert is triggered. + long-summary: | + Usage: --action ACTION_GROUP_NAME_OR_ID [KEY=VAL [KEY=VAL ...]] + + Multiple action groups can be specified by using more than one `--action` argument. + - name: --condition + short-summary: The condition which triggers the rule. + long-summary: | + Usage: --condition {avg,min,max,total,count} ["METRIC COLUMN" from] + "QUERY" {=,!=,>,>=,<,<=} THRESHOLD + [resource id RESOURCEID] + [where DIMENSION {includes,excludes} VALUE [or VALUE ...] + [and DIMENSION {includes,excludes} VALUE [or VALUE ...] ...]] + [at least MinTimeToFail violations out of EvaluationPeriod aggregated points]' + + Dimensions can be queried by adding the 'where' keyword and multiple dimensions can be queried by combining them with the 'and' keyword. +""" + +helps['monitor scheduled-query list'] = """ + type: command + short-summary: List all scheduled queries. +""" + +helps['monitor scheduled-query show'] = """ + type: command + short-summary: Show detail of a scheduled query. +""" + +helps['monitor scheduled-query delete'] = """ + type: command + short-summary: Delete a scheduled query. +""" diff --git a/src/scheduled-query/azext_scheduled_query/_params.py b/src/scheduled-query/azext_scheduled_query/_params.py new file mode 100644 index 00000000000..1dec815e934 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/_params.py @@ -0,0 +1,37 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +# pylint: disable=line-too-long + +from azure.cli.core.commands.parameters import tags_type, get_three_state_flag +from azure.cli.command_modules.monitor.actions import get_period_type +from azure.cli.command_modules.monitor.validators import get_action_group_validator +from knack.arguments import CLIArgumentType +from ._actions import ScheduleQueryConditionAction, ScheduleQueryAddAction + + +def load_arguments(self, _): + + from azure.cli.core.commands.validators import get_default_location_from_resource_group + + name_arg_type = CLIArgumentType(options_list=['--name', '-n'], metavar='NAME') + with self.argument_context('monitor scheduled-query') as c: + c.argument('rule_name', name_arg_type, id_part='name', help='Name of the scheduled query rule.') + c.argument('location', validator=get_default_location_from_resource_group) + c.argument('tags', tags_type) + c.argument('severity', type=int, help='Severity of the alert from 0 (critical) to 4 (verbose).') + c.argument('window_size', type=get_period_type(), help='Time over which to aggregate metrics in "##h##m##s" format.') + c.argument('evaluation_frequency', type=get_period_type(), help='Frequency with which to evaluate the rule in "##h##m##s" format.') + c.argument('condition', options_list=['--condition'], action=ScheduleQueryConditionAction, nargs='+') + c.argument('description', help='Free-text description of the rule.') + c.argument('scopes', nargs='+', help='Space-separated list of scopes the rule applies to. ' + 'The resources specified in this parameter must be of the same type and exist in the same location.') + c.argument('disabled', arg_type=get_three_state_flag(), help='Disable the scheduled query.') + c.argument('target_resource_type', options_list=['--target-resource-type', '--type'], + help='The resource type of the target resource(s) in scopes. ' + 'This must be provided when scopes is resource group or subscription.') + c.argument('mute_actions_duration', type=get_period_type(as_timedelta=True), + options_list=['--mute-actions-duration', '--mad'], + help='Mute actions for the chosen period of time (in ISO 8601 duration format) after the alert is fired.') + c.argument('actions', options_list=['--action', '-a'], action=ScheduleQueryAddAction, nargs='+', validator=get_action_group_validator('actions')) diff --git a/src/scheduled-query/azext_scheduled_query/azext_metadata.json b/src/scheduled-query/azext_scheduled_query/azext_metadata.json new file mode 100644 index 00000000000..55c81bf3328 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/azext_metadata.json @@ -0,0 +1,4 @@ +{ + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.0.67" +} \ No newline at end of file diff --git a/src/scheduled-query/azext_scheduled_query/commands.py b/src/scheduled-query/azext_scheduled_query/commands.py new file mode 100644 index 00000000000..974878c5951 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/commands.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. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=line-too-long +from azure.cli.core.commands import CliCommandType +from azext_scheduled_query._client_factory import cf_scheduled_query + + +def load_command_table(self, _): + + scheduled_query_sdk = CliCommandType( + operations_tmpl='azext_scheduled_query.vendored_sdks.azure_mgmt_scheduled_query.operations#ScheduledQueryRulesOperations.{}', + client_factory=cf_scheduled_query + ) + + with self.command_group('monitor scheduled-query', scheduled_query_sdk) as g: + g.custom_command('create', 'create_scheduled_query') + g.command('delete', 'delete', confirmation=True) + g.custom_command('list', 'list_scheduled_query') + g.show_command('show', 'get') + g.generic_update_command('update', custom_func_name='update_scheduled_query') diff --git a/src/scheduled-query/azext_scheduled_query/custom.py b/src/scheduled-query/azext_scheduled_query/custom.py new file mode 100644 index 00000000000..766985c1024 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/custom.py @@ -0,0 +1,65 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + + +def create_scheduled_query(client, resource_group_name, rule_name, scopes, condition, + disabled=False, description=None, tags=None, location=None, + actions=None, severity=2, window_size='5m', evaluation_frequency='5m', + target_resource_type=None, mute_actions_duration='PT30M'): + from .vendored_sdks.azure_mgmt_scheduled_query.models import (ScheduledQueryRuleResource, + ScheduledQueryRuleCriteria, + ConditionFailingPeriods) + from knack.util import CLIError + + for cond in condition: + if cond.failing_periods is None: + cond.failing_periods = ConditionFailingPeriods( + min_failing_periods_to_alert=1, + number_of_evaluation_periods=1 + ) + else: + if cond.failing_periods.min_failing_periods_to_alert > cond.failing_periods.number_of_evaluation_periods: + raise CLIError('EvaluationPeriod must be greater than or equals to MinTimeToFail.') + criteria = ScheduledQueryRuleCriteria(all_of=condition) + + kwargs = { + 'description': description, + 'severity': severity, + 'enabled': not disabled, + 'scopes': scopes, + 'evaluation_frequency': evaluation_frequency, + 'window_size': window_size, + 'criteria': criteria, + 'target_resource_types': [target_resource_type] if target_resource_type else None, + 'actions': actions, + 'tags': tags, + 'location': location, + 'mute_actions_duration': mute_actions_duration + } + return client.create_or_update(resource_group_name, rule_name, ScheduledQueryRuleResource(**kwargs)) + + +def list_scheduled_query(client, resource_group_name=None): + if resource_group_name: + return client.list_by_resource_group(resource_group_name=resource_group_name) + return client.list_by_subscription() + + +def update_scheduled_query(cmd, instance, tags=None, disabled=False, condition=None, + description=None, actions=None, severity=None, window_size=None, + evaluation_frequency=None, mute_actions_duration=None): + from .vendored_sdks.azure_mgmt_scheduled_query.models import ScheduledQueryRuleCriteria + with cmd.update_context(instance) as c: + c.set_param('tags', tags) + c.set_param('enabled', not disabled) + c.set_param('description', description) + c.set_param('actions', actions) + c.set_param('severity', severity) + c.set_param('window_size', window_size) + c.set_param('evaluation_frequency', evaluation_frequency) + c.set_param('mute_actions_duration', mute_actions_duration) + if condition is not None: + c.set_param('criteria', ScheduledQueryRuleCriteria(all_of=condition)) + return instance diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/__init__.py b/src/scheduled-query/azext_scheduled_query/grammar/__init__.py similarity index 100% rename from src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/__init__.py rename to src/scheduled-query/azext_scheduled_query/grammar/__init__.py diff --git a/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/README.md b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/README.md new file mode 100644 index 00000000000..5e04114a5c2 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/README.md @@ -0,0 +1,28 @@ +# Working with the ANTLR grammar in Azure CLI + +The ANTLR grammar is used to generate expression parsing for the `az monitor schedule-query create/update` commands. Due to the complexity, and introduction of other authoring features, it is *not* recommended that new commands follow this pattern. + +## SETUP + +To set up your system to be able to alter and regenerate the grammar code, see the QuickStart section on [the ANTLR website](https://www.antlr.org/). You will need to have the Java JDK (JRE is *not* sufficient) installed. + +The steps for Windows are replicated here: +``` +Download https://www.antlr.org/download/antlr-4.7.2-complete.jar. +Add antlr4-complete.jar to CLASSPATH, either: +Permanently: Using System Properties dialog > Environment variables > Create or append to CLASSPATH variable +Temporarily, at command line: +SET CLASSPATH=.;C:\Javalib\antlr4-complete.jar;%CLASSPATH% +``` + +You will likely also need to add the path to your JDK bin directory to your PATH. + +## MAKING CHANGES + +1. Make updates to the `ScheduleQueryCondition.g4` grammar file. +2. Test your changes by entering a condition expression in a file called `test.txt` and running `run_test.bat`. This will open a GUI where you can visually see how your expression will be parsed--useful in identifying problems with your grammar. +3. Once you are happy with the grammar changes, run `build_python.bat` to update the generated Python classes. Add the license header to the three generated files. +4. Add a test to cover your new scenario. +5. Update the `ScheduleQueryConditionValidator.py` file until your test passes. +6. Clean up the unneeded Java files `del *.class *.java *.tokens *.interp test.txt` +7. Open a PR. License headers and pylint annotations will be removed during autogeneration, so you will need to reverse those lines. \ No newline at end of file diff --git a/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryCondition.g4 b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryCondition.g4 new file mode 100644 index 00000000000..7e45c776f48 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryCondition.g4 @@ -0,0 +1,128 @@ +/* PARSER RULES */ + +grammar ScheduleQueryCondition ; + +/* Main Rules */ + +expression : aggregation (metric_with_quote comes_from)? query_with_quote WHITESPACE operator threshold (WHITESPACE resource_column)? (WHITESPACE dimensions)* (WHITESPACE falling_period)? NEWLINE* ; + +aggregation : WORD WHITESPACE ; + +comes_from : COMESFROM WHITESPACE ; + +namespace : (WORD | '/' | '.')+; + +metric_with_quote : (QUOTE metric QUOTE | metric) WHITESPACE ; + +metric : (WORD | WHITESPACE | '.' | '/' | '_' | '\\' | ':' | '%' | '-' | ',' | '|')+; + +query_with_quote : QUOTE query QUOTE ; + +query : (WORD | WHITESPACE | OPERATOR | AND | OR | where | '&' |'.' | '/' | '('| ')' | '_' | '\\' | ':' | '%' | '-' | ',' | '|' | '==' | '\\"' | '\\\'')+ ; + +operator : OPERATOR WHITESPACE ; + +threshold : NUMBER ; + +/* Resource Column */ + +resource_column : resource column resource_id ; + +resource_id : (WORD | WHITESPACE | '.' | '/' | '_' | '\\' | ':' | '%' | '-' | ',' | '|')+; + +resource : RESOURCE WHITESPACE ; + +column : COLUMN WHITESPACE ; + +/* Falling Period */ + +falling_period : at least min_times violations out of evaluation_period aggregated points ; + +at : AT WHITESPACE ; + +least : LEAST WHITESPACE ; + +violations : VIOLATIONS WHITESPACE ; + +out : OUT WHITESPACE ; + +of : OF WHITESPACE ; + +min_times : NUMBER WHITESPACE ; + +aggregated : AGGREGATED WHITESPACE ; + +points : POINTS ; + +evaluation_period : NUMBER WHITESPACE ; + +/* Dimensions */ + +where : WHERE WHITESPACE ; + +dimensions : where dimension (dim_separator dimension)* ; + +dimension : dim_name dim_operator dim_values ; + +dim_separator : (AND | ',') WHITESPACE ; + +dim_operator : (INCLUDES | EXCLUDES) WHITESPACE ; + +dim_val_separator : (OR | ',') WHITESPACE ; + +dim_name : WORD WHITESPACE ; + +dim_values : dim_value (dim_val_separator dim_value)* ; + +dim_value : (NUMBER | WORD | '-' | '.' | '*' | WHITESPACE | ':'| '~' | ',' | '|' | '%' | '_')+ ; + +/* LEXER RULES */ + +fragment A : ('a'|'A') ; +fragment C : ('c'|'C') ; +fragment D : ('d'|'D') ; +fragment E : ('e'|'E') ; +fragment F : ('f'|'F') ; +fragment G : ('g'|'G') ; +fragment H : ('h'|'H') ; +fragment I : ('i'|'I') ; +fragment L : ('l'|'L') ; +fragment M : ('m'|'M') ; +fragment N : ('n'|'N') ; +fragment O : ('o'|'O') ; +fragment P : ('p'|'P') ; +fragment R : ('r'|'R') ; +fragment S : ('s'|'S') ; +fragment U : ('u'|'U') ; +fragment V : ('v'|'V') ; +fragment W : ('w'|'W') ; +fragment X : ('x'|'X') ; +fragment T : ('t'|'T') ; + +fragment DIGIT : [0-9] ; +fragment LOWERCASE : [a-z] ; +fragment UPPERCASE : [A-Z] ; + +WHERE : W H E R E ; +COMESFROM : F R O M ; +RESOURCE : R E S O U R C E ; +COLUMN : I D ; +AT : A T ; +LEAST : L E A S T ; +OUT : O U T ; +OF : O F ; +VIOLATIONS : V I O L A T I O N S ; +AGGREGATED : A G G R E G A T E D ; +POINTS : P O I N T S ; +AND : A N D ; +INCLUDES : I N C L U D E S ; +EXCLUDES : E X C L U D E S ; +OR : O R ; + +OPERATOR : ('<' | '<=' | '=' | '>=' | '>' | '!=') ; +NUMBER : DIGIT+ ([.,] DIGIT+)? ; +QUOTE : ('\'' | '"') ; +WHITESPACE : (' ' | '\t')+ ; +NEWLINE : ('\r'? '\n' | '\r')+ ; +WORD : (LOWERCASE | UPPERCASE | DIGIT | '_')+ ; + diff --git a/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionLexer.py b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionLexer.py new file mode 100644 index 00000000000..c6c31eee939 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionLexer.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. +# -------------------------------------------------------------------------------------------- +# pylint: disable=all +# Generated from ScheduleQueryCondition.g4 by ANTLR 4.7.2 +# encoding: utf-8 +from __future__ import print_function +from antlr4 import * +from io import StringIO +import sys + + + +def serializedATN(): + with StringIO() as buf: + buf.write(u"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2") + buf.write(u"(\u015d\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4") + buf.write(u"\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r") + buf.write(u"\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22") + buf.write(u"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4") + buf.write(u"\30\t\30\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35") + buf.write(u"\t\35\4\36\t\36\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4") + buf.write(u"$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t") + buf.write(u",\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63") + buf.write(u"\t\63\4\64\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\4") + buf.write(u"9\t9\4:\t:\4;\t;\4<\t<\4=\t=\4>\t>\3\2\3\2\3\3\3\3\3") + buf.write(u"\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\n\3") + buf.write(u"\n\3\13\3\13\3\f\3\f\3\r\3\r\3\16\3\16\3\16\3\17\3\17") + buf.write(u"\3\17\3\20\3\20\3\20\3\21\3\21\3\22\3\22\3\23\3\23\3") + buf.write(u"\24\3\24\3\25\3\25\3\26\3\26\3\27\3\27\3\30\3\30\3\31") + buf.write(u"\3\31\3\32\3\32\3\33\3\33\3\34\3\34\3\35\3\35\3\36\3") + buf.write(u"\36\3\37\3\37\3 \3 \3!\3!\3\"\3\"\3#\3#\3$\3$\3%\3%\3") + buf.write(u"&\3&\3\'\3\'\3(\3(\3)\3)\3*\3*\3*\3*\3*\3*\3+\3+\3+\3") + buf.write(u"+\3+\3,\3,\3,\3,\3,\3,\3,\3,\3,\3-\3-\3-\3.\3.\3.\3/") + buf.write(u"\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3") + buf.write(u"\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62") + buf.write(u"\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3") + buf.write(u"\63\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65") + buf.write(u"\3\65\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3") + buf.write(u"\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\38\38\38") + buf.write(u"\39\39\39\39\39\39\39\39\39\59\u0137\n9\3:\6:\u013a\n") + buf.write(u":\r:\16:\u013b\3:\3:\6:\u0140\n:\r:\16:\u0141\5:\u0144") + buf.write(u"\n:\3;\3;\3<\6<\u0149\n<\r<\16<\u014a\3=\5=\u014e\n=") + buf.write(u"\3=\3=\6=\u0152\n=\r=\16=\u0153\3>\3>\3>\3>\6>\u015a") + buf.write(u"\n>\r>\16>\u015b\2\2?\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21") + buf.write(u"\n\23\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\2") + buf.write(u"\'\2)\2+\2-\2/\2\61\2\63\2\65\2\67\29\2;\2=\2?\2A\2C") + buf.write(u"\2E\2G\2I\2K\2M\2O\2Q\2S\24U\25W\26Y\27[\30]\31_\32a") + buf.write(u"\33c\34e\35g\36i\37k m!o\"q#s$u%w&y\'{(\3\2\34\4\2CC") + buf.write(u"cc\4\2EEee\4\2FFff\4\2GGgg\4\2HHhh\4\2IIii\4\2JJjj\4") + buf.write(u"\2KKkk\4\2NNnn\4\2OOoo\4\2PPpp\4\2QQqq\4\2RRrr\4\2TT") + buf.write(u"tt\4\2UUuu\4\2WWww\4\2XXxx\4\2YYyy\4\2ZZzz\4\2VVvv\3") + buf.write(u"\2\62;\3\2c|\3\2C\\\4\2..\60\60\4\2$$))\4\2\13\13\"\"") + buf.write(u"\2\u0155\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2") + buf.write(u"\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2") + buf.write(u"\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2") + buf.write(u"\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2") + buf.write(u"\2#\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2") + buf.write(u"\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2") + buf.write(u"\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3") + buf.write(u"\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2") + buf.write(u"w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\3}\3\2\2\2\5\177\3\2") + buf.write(u"\2\2\7\u0081\3\2\2\2\t\u0083\3\2\2\2\13\u0085\3\2\2\2") + buf.write(u"\r\u0087\3\2\2\2\17\u0089\3\2\2\2\21\u008b\3\2\2\2\23") + buf.write(u"\u008d\3\2\2\2\25\u008f\3\2\2\2\27\u0091\3\2\2\2\31\u0093") + buf.write(u"\3\2\2\2\33\u0095\3\2\2\2\35\u0098\3\2\2\2\37\u009b\3") + buf.write(u"\2\2\2!\u009e\3\2\2\2#\u00a0\3\2\2\2%\u00a2\3\2\2\2\'") + buf.write(u"\u00a4\3\2\2\2)\u00a6\3\2\2\2+\u00a8\3\2\2\2-\u00aa\3") + buf.write(u"\2\2\2/\u00ac\3\2\2\2\61\u00ae\3\2\2\2\63\u00b0\3\2\2") + buf.write(u"\2\65\u00b2\3\2\2\2\67\u00b4\3\2\2\29\u00b6\3\2\2\2;") + buf.write(u"\u00b8\3\2\2\2=\u00ba\3\2\2\2?\u00bc\3\2\2\2A\u00be\3") + buf.write(u"\2\2\2C\u00c0\3\2\2\2E\u00c2\3\2\2\2G\u00c4\3\2\2\2I") + buf.write(u"\u00c6\3\2\2\2K\u00c8\3\2\2\2M\u00ca\3\2\2\2O\u00cc\3") + buf.write(u"\2\2\2Q\u00ce\3\2\2\2S\u00d0\3\2\2\2U\u00d6\3\2\2\2W") + buf.write(u"\u00db\3\2\2\2Y\u00e4\3\2\2\2[\u00e7\3\2\2\2]\u00ea\3") + buf.write(u"\2\2\2_\u00f0\3\2\2\2a\u00f4\3\2\2\2c\u00f7\3\2\2\2e") + buf.write(u"\u0102\3\2\2\2g\u010d\3\2\2\2i\u0114\3\2\2\2k\u0118\3") + buf.write(u"\2\2\2m\u0121\3\2\2\2o\u012a\3\2\2\2q\u0136\3\2\2\2s") + buf.write(u"\u0139\3\2\2\2u\u0145\3\2\2\2w\u0148\3\2\2\2y\u0151\3") + buf.write(u"\2\2\2{\u0159\3\2\2\2}~\7\61\2\2~\4\3\2\2\2\177\u0080") + buf.write(u"\7\60\2\2\u0080\6\3\2\2\2\u0081\u0082\7a\2\2\u0082\b") + buf.write(u"\3\2\2\2\u0083\u0084\7^\2\2\u0084\n\3\2\2\2\u0085\u0086") + buf.write(u"\7<\2\2\u0086\f\3\2\2\2\u0087\u0088\7\'\2\2\u0088\16") + buf.write(u"\3\2\2\2\u0089\u008a\7/\2\2\u008a\20\3\2\2\2\u008b\u008c") + buf.write(u"\7.\2\2\u008c\22\3\2\2\2\u008d\u008e\7~\2\2\u008e\24") + buf.write(u"\3\2\2\2\u008f\u0090\7(\2\2\u0090\26\3\2\2\2\u0091\u0092") + buf.write(u"\7*\2\2\u0092\30\3\2\2\2\u0093\u0094\7+\2\2\u0094\32") + buf.write(u"\3\2\2\2\u0095\u0096\7?\2\2\u0096\u0097\7?\2\2\u0097") + buf.write(u"\34\3\2\2\2\u0098\u0099\7^\2\2\u0099\u009a\7$\2\2\u009a") + buf.write(u"\36\3\2\2\2\u009b\u009c\7^\2\2\u009c\u009d\7)\2\2\u009d") + buf.write(u" \3\2\2\2\u009e\u009f\7,\2\2\u009f\"\3\2\2\2\u00a0\u00a1") + buf.write(u"\7\u0080\2\2\u00a1$\3\2\2\2\u00a2\u00a3\t\2\2\2\u00a3") + buf.write(u"&\3\2\2\2\u00a4\u00a5\t\3\2\2\u00a5(\3\2\2\2\u00a6\u00a7") + buf.write(u"\t\4\2\2\u00a7*\3\2\2\2\u00a8\u00a9\t\5\2\2\u00a9,\3") + buf.write(u"\2\2\2\u00aa\u00ab\t\6\2\2\u00ab.\3\2\2\2\u00ac\u00ad") + buf.write(u"\t\7\2\2\u00ad\60\3\2\2\2\u00ae\u00af\t\b\2\2\u00af\62") + buf.write(u"\3\2\2\2\u00b0\u00b1\t\t\2\2\u00b1\64\3\2\2\2\u00b2\u00b3") + buf.write(u"\t\n\2\2\u00b3\66\3\2\2\2\u00b4\u00b5\t\13\2\2\u00b5") + buf.write(u"8\3\2\2\2\u00b6\u00b7\t\f\2\2\u00b7:\3\2\2\2\u00b8\u00b9") + buf.write(u"\t\r\2\2\u00b9<\3\2\2\2\u00ba\u00bb\t\16\2\2\u00bb>\3") + buf.write(u"\2\2\2\u00bc\u00bd\t\17\2\2\u00bd@\3\2\2\2\u00be\u00bf") + buf.write(u"\t\20\2\2\u00bfB\3\2\2\2\u00c0\u00c1\t\21\2\2\u00c1D") + buf.write(u"\3\2\2\2\u00c2\u00c3\t\22\2\2\u00c3F\3\2\2\2\u00c4\u00c5") + buf.write(u"\t\23\2\2\u00c5H\3\2\2\2\u00c6\u00c7\t\24\2\2\u00c7J") + buf.write(u"\3\2\2\2\u00c8\u00c9\t\25\2\2\u00c9L\3\2\2\2\u00ca\u00cb") + buf.write(u"\t\26\2\2\u00cbN\3\2\2\2\u00cc\u00cd\t\27\2\2\u00cdP") + buf.write(u"\3\2\2\2\u00ce\u00cf\t\30\2\2\u00cfR\3\2\2\2\u00d0\u00d1") + buf.write(u"\5G$\2\u00d1\u00d2\5\61\31\2\u00d2\u00d3\5+\26\2\u00d3") + buf.write(u"\u00d4\5? \2\u00d4\u00d5\5+\26\2\u00d5T\3\2\2\2\u00d6") + buf.write(u"\u00d7\5-\27\2\u00d7\u00d8\5? \2\u00d8\u00d9\5;\36\2") + buf.write(u"\u00d9\u00da\5\67\34\2\u00daV\3\2\2\2\u00db\u00dc\5?") + buf.write(u" \2\u00dc\u00dd\5+\26\2\u00dd\u00de\5A!\2\u00de\u00df") + buf.write(u"\5;\36\2\u00df\u00e0\5C\"\2\u00e0\u00e1\5? \2\u00e1\u00e2") + buf.write(u"\5\'\24\2\u00e2\u00e3\5+\26\2\u00e3X\3\2\2\2\u00e4\u00e5") + buf.write(u"\5\63\32\2\u00e5\u00e6\5)\25\2\u00e6Z\3\2\2\2\u00e7\u00e8") + buf.write(u"\5%\23\2\u00e8\u00e9\5K&\2\u00e9\\\3\2\2\2\u00ea\u00eb") + buf.write(u"\5\65\33\2\u00eb\u00ec\5+\26\2\u00ec\u00ed\5%\23\2\u00ed") + buf.write(u"\u00ee\5A!\2\u00ee\u00ef\5K&\2\u00ef^\3\2\2\2\u00f0\u00f1") + buf.write(u"\5;\36\2\u00f1\u00f2\5C\"\2\u00f2\u00f3\5K&\2\u00f3`") + buf.write(u"\3\2\2\2\u00f4\u00f5\5;\36\2\u00f5\u00f6\5-\27\2\u00f6") + buf.write(u"b\3\2\2\2\u00f7\u00f8\5E#\2\u00f8\u00f9\5\63\32\2\u00f9") + buf.write(u"\u00fa\5;\36\2\u00fa\u00fb\5\65\33\2\u00fb\u00fc\5%\23") + buf.write(u"\2\u00fc\u00fd\5K&\2\u00fd\u00fe\5\63\32\2\u00fe\u00ff") + buf.write(u"\5;\36\2\u00ff\u0100\59\35\2\u0100\u0101\5A!\2\u0101") + buf.write(u"d\3\2\2\2\u0102\u0103\5%\23\2\u0103\u0104\5/\30\2\u0104") + buf.write(u"\u0105\5/\30\2\u0105\u0106\5? \2\u0106\u0107\5+\26\2") + buf.write(u"\u0107\u0108\5/\30\2\u0108\u0109\5%\23\2\u0109\u010a") + buf.write(u"\5K&\2\u010a\u010b\5+\26\2\u010b\u010c\5)\25\2\u010c") + buf.write(u"f\3\2\2\2\u010d\u010e\5=\37\2\u010e\u010f\5;\36\2\u010f") + buf.write(u"\u0110\5\63\32\2\u0110\u0111\59\35\2\u0111\u0112\5K&") + buf.write(u"\2\u0112\u0113\5A!\2\u0113h\3\2\2\2\u0114\u0115\5%\23") + buf.write(u"\2\u0115\u0116\59\35\2\u0116\u0117\5)\25\2\u0117j\3\2") + buf.write(u"\2\2\u0118\u0119\5\63\32\2\u0119\u011a\59\35\2\u011a") + buf.write(u"\u011b\5\'\24\2\u011b\u011c\5\65\33\2\u011c\u011d\5C") + buf.write(u"\"\2\u011d\u011e\5)\25\2\u011e\u011f\5+\26\2\u011f\u0120") + buf.write(u"\5A!\2\u0120l\3\2\2\2\u0121\u0122\5+\26\2\u0122\u0123") + buf.write(u"\5I%\2\u0123\u0124\5\'\24\2\u0124\u0125\5\65\33\2\u0125") + buf.write(u"\u0126\5C\"\2\u0126\u0127\5)\25\2\u0127\u0128\5+\26\2") + buf.write(u"\u0128\u0129\5A!\2\u0129n\3\2\2\2\u012a\u012b\5;\36\2") + buf.write(u"\u012b\u012c\5? \2\u012cp\3\2\2\2\u012d\u0137\7>\2\2") + buf.write(u"\u012e\u012f\7>\2\2\u012f\u0137\7?\2\2\u0130\u0137\7") + buf.write(u"?\2\2\u0131\u0132\7@\2\2\u0132\u0137\7?\2\2\u0133\u0137") + buf.write(u"\7@\2\2\u0134\u0135\7#\2\2\u0135\u0137\7?\2\2\u0136\u012d") + buf.write(u"\3\2\2\2\u0136\u012e\3\2\2\2\u0136\u0130\3\2\2\2\u0136") + buf.write(u"\u0131\3\2\2\2\u0136\u0133\3\2\2\2\u0136\u0134\3\2\2") + buf.write(u"\2\u0137r\3\2\2\2\u0138\u013a\5M\'\2\u0139\u0138\3\2") + buf.write(u"\2\2\u013a\u013b\3\2\2\2\u013b\u0139\3\2\2\2\u013b\u013c") + buf.write(u"\3\2\2\2\u013c\u0143\3\2\2\2\u013d\u013f\t\31\2\2\u013e") + buf.write(u"\u0140\5M\'\2\u013f\u013e\3\2\2\2\u0140\u0141\3\2\2\2") + buf.write(u"\u0141\u013f\3\2\2\2\u0141\u0142\3\2\2\2\u0142\u0144") + buf.write(u"\3\2\2\2\u0143\u013d\3\2\2\2\u0143\u0144\3\2\2\2\u0144") + buf.write(u"t\3\2\2\2\u0145\u0146\t\32\2\2\u0146v\3\2\2\2\u0147\u0149") + buf.write(u"\t\33\2\2\u0148\u0147\3\2\2\2\u0149\u014a\3\2\2\2\u014a") + buf.write(u"\u0148\3\2\2\2\u014a\u014b\3\2\2\2\u014bx\3\2\2\2\u014c") + buf.write(u"\u014e\7\17\2\2\u014d\u014c\3\2\2\2\u014d\u014e\3\2\2") + buf.write(u"\2\u014e\u014f\3\2\2\2\u014f\u0152\7\f\2\2\u0150\u0152") + buf.write(u"\7\17\2\2\u0151\u014d\3\2\2\2\u0151\u0150\3\2\2\2\u0152") + buf.write(u"\u0153\3\2\2\2\u0153\u0151\3\2\2\2\u0153\u0154\3\2\2") + buf.write(u"\2\u0154z\3\2\2\2\u0155\u015a\5O(\2\u0156\u015a\5Q)\2") + buf.write(u"\u0157\u015a\5M\'\2\u0158\u015a\7a\2\2\u0159\u0155\3") + buf.write(u"\2\2\2\u0159\u0156\3\2\2\2\u0159\u0157\3\2\2\2\u0159") + buf.write(u"\u0158\3\2\2\2\u015a\u015b\3\2\2\2\u015b\u0159\3\2\2") + buf.write(u"\2\u015b\u015c\3\2\2\2\u015c|\3\2\2\2\r\2\u0136\u013b") + buf.write(u"\u0141\u0143\u014a\u014d\u0151\u0153\u0159\u015b\2") + return buf.getvalue() + + +class ScheduleQueryConditionLexer(Lexer): + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + T__0 = 1 + T__1 = 2 + T__2 = 3 + T__3 = 4 + T__4 = 5 + T__5 = 6 + T__6 = 7 + T__7 = 8 + T__8 = 9 + T__9 = 10 + T__10 = 11 + T__11 = 12 + T__12 = 13 + T__13 = 14 + T__14 = 15 + T__15 = 16 + T__16 = 17 + WHERE = 18 + COMESFROM = 19 + RESOURCE = 20 + COLUMN = 21 + AT = 22 + LEAST = 23 + OUT = 24 + OF = 25 + VIOLATIONS = 26 + AGGREGATED = 27 + POINTS = 28 + AND = 29 + INCLUDES = 30 + EXCLUDES = 31 + OR = 32 + OPERATOR = 33 + NUMBER = 34 + QUOTE = 35 + WHITESPACE = 36 + NEWLINE = 37 + WORD = 38 + + channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] + + modeNames = [ u"DEFAULT_MODE" ] + + literalNames = [ u"", + u"'/'", u"'.'", u"'_'", u"'\\'", u"':'", u"'%'", u"'-'", u"','", + u"'|'", u"'&'", u"'('", u"')'", u"'=='", u"'\\\"'", u"'\\''", + u"'*'", u"'~'" ] + + symbolicNames = [ u"", + u"WHERE", u"COMESFROM", u"RESOURCE", u"COLUMN", u"AT", u"LEAST", + u"OUT", u"OF", u"VIOLATIONS", u"AGGREGATED", u"POINTS", u"AND", + u"INCLUDES", u"EXCLUDES", u"OR", u"OPERATOR", u"NUMBER", u"QUOTE", + u"WHITESPACE", u"NEWLINE", u"WORD" ] + + ruleNames = [ u"T__0", u"T__1", u"T__2", u"T__3", u"T__4", u"T__5", + u"T__6", u"T__7", u"T__8", u"T__9", u"T__10", u"T__11", + u"T__12", u"T__13", u"T__14", u"T__15", u"T__16", u"A", + u"C", u"D", u"E", u"F", u"G", u"H", u"I", u"L", u"M", + u"N", u"O", u"P", u"R", u"S", u"U", u"V", u"W", u"X", + u"T", u"DIGIT", u"LOWERCASE", u"UPPERCASE", u"WHERE", + u"COMESFROM", u"RESOURCE", u"COLUMN", u"AT", u"LEAST", + u"OUT", u"OF", u"VIOLATIONS", u"AGGREGATED", u"POINTS", + u"AND", u"INCLUDES", u"EXCLUDES", u"OR", u"OPERATOR", + u"NUMBER", u"QUOTE", u"WHITESPACE", u"NEWLINE", u"WORD" ] + + grammarFileName = u"ScheduleQueryCondition.g4" + + def __init__(self, input=None, output=sys.stdout): + super(ScheduleQueryConditionLexer, self).__init__(input, output=output) + self.checkVersion("4.7.2") + self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache()) + self._actions = None + self._predicates = None + + diff --git a/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionListener.py b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionListener.py new file mode 100644 index 00000000000..003ba175f79 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionListener.py @@ -0,0 +1,308 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +# pylint: disable=all +# Generated from ScheduleQueryCondition.g4 by ANTLR 4.7.2 +from antlr4 import * + +# This class defines a complete listener for a parse tree produced by ScheduleQueryConditionParser. +class ScheduleQueryConditionListener(ParseTreeListener): + + # Enter a parse tree produced by ScheduleQueryConditionParser#expression. + def enterExpression(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#expression. + def exitExpression(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#aggregation. + def enterAggregation(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#aggregation. + def exitAggregation(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#comes_from. + def enterComes_from(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#comes_from. + def exitComes_from(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#namespace. + def enterNamespace(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#namespace. + def exitNamespace(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#metric_with_quote. + def enterMetric_with_quote(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#metric_with_quote. + def exitMetric_with_quote(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#metric. + def enterMetric(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#metric. + def exitMetric(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#query_with_quote. + def enterQuery_with_quote(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#query_with_quote. + def exitQuery_with_quote(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#query. + def enterQuery(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#query. + def exitQuery(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#operator. + def enterOperator(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#operator. + def exitOperator(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#threshold. + def enterThreshold(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#threshold. + def exitThreshold(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#resource_column. + def enterResource_column(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#resource_column. + def exitResource_column(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#resource_id. + def enterResource_id(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#resource_id. + def exitResource_id(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#resource. + def enterResource(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#resource. + def exitResource(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#column. + def enterColumn(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#column. + def exitColumn(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#falling_period. + def enterFalling_period(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#falling_period. + def exitFalling_period(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#at. + def enterAt(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#at. + def exitAt(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#least. + def enterLeast(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#least. + def exitLeast(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#violations. + def enterViolations(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#violations. + def exitViolations(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#out. + def enterOut(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#out. + def exitOut(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#of. + def enterOf(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#of. + def exitOf(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#min_times. + def enterMin_times(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#min_times. + def exitMin_times(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#aggregated. + def enterAggregated(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#aggregated. + def exitAggregated(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#points. + def enterPoints(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#points. + def exitPoints(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#evaluation_period. + def enterEvaluation_period(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#evaluation_period. + def exitEvaluation_period(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#where. + def enterWhere(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#where. + def exitWhere(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#dimensions. + def enterDimensions(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#dimensions. + def exitDimensions(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#dimension. + def enterDimension(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#dimension. + def exitDimension(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#dim_separator. + def enterDim_separator(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#dim_separator. + def exitDim_separator(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#dim_operator. + def enterDim_operator(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#dim_operator. + def exitDim_operator(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#dim_val_separator. + def enterDim_val_separator(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#dim_val_separator. + def exitDim_val_separator(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#dim_name. + def enterDim_name(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#dim_name. + def exitDim_name(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#dim_values. + def enterDim_values(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#dim_values. + def exitDim_values(self, ctx): + pass + + + # Enter a parse tree produced by ScheduleQueryConditionParser#dim_value. + def enterDim_value(self, ctx): + pass + + # Exit a parse tree produced by ScheduleQueryConditionParser#dim_value. + def exitDim_value(self, ctx): + pass + + diff --git a/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionParser.py b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionParser.py new file mode 100644 index 00000000000..6da51dda013 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionParser.py @@ -0,0 +1,2189 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +# pylint: disable=all +# Generated from ScheduleQueryCondition.g4 by ANTLR 4.7.2 +# encoding: utf-8 +from __future__ import print_function +from antlr4 import * +from io import StringIO +import sys + + +def serializedATN(): + with StringIO() as buf: + buf.write(u"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3") + buf.write(u"(\u00fd\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t") + buf.write(u"\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r") + buf.write(u"\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4") + buf.write(u"\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30") + buf.write(u"\t\30\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t") + buf.write(u"\35\4\36\t\36\4\37\t\37\4 \t \4!\t!\4\"\t\"\3\2\3\2\3") + buf.write(u"\2\3\2\5\2I\n\2\3\2\3\2\3\2\3\2\3\2\3\2\5\2Q\n\2\3\2") + buf.write(u"\3\2\7\2U\n\2\f\2\16\2X\13\2\3\2\3\2\5\2\\\n\2\3\2\7") + buf.write(u"\2_\n\2\f\2\16\2b\13\2\3\3\3\3\3\3\3\4\3\4\3\4\3\5\6") + buf.write(u"\5k\n\5\r\5\16\5l\3\6\3\6\3\6\3\6\3\6\5\6t\n\6\3\6\3") + buf.write(u"\6\3\7\6\7y\n\7\r\7\16\7z\3\b\3\b\3\b\3\b\3\t\3\t\3\t") + buf.write(u"\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t") + buf.write(u"\3\t\3\t\3\t\3\t\3\t\6\t\u0096\n\t\r\t\16\t\u0097\3\n") + buf.write(u"\3\n\3\n\3\13\3\13\3\f\3\f\3\f\3\f\3\r\6\r\u00a4\n\r") + buf.write(u"\r\r\16\r\u00a5\3\16\3\16\3\16\3\17\3\17\3\17\3\20\3") + buf.write(u"\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\21\3\21") + buf.write(u"\3\21\3\22\3\22\3\22\3\23\3\23\3\23\3\24\3\24\3\24\3") + buf.write(u"\25\3\25\3\25\3\26\3\26\3\26\3\27\3\27\3\27\3\30\3\30") + buf.write(u"\3\31\3\31\3\31\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3") + buf.write(u"\33\7\33\u00da\n\33\f\33\16\33\u00dd\13\33\3\34\3\34") + buf.write(u"\3\34\3\34\3\35\3\35\3\35\3\36\3\36\3\36\3\37\3\37\3") + buf.write(u"\37\3 \3 \3 \3!\3!\3!\3!\7!\u00f3\n!\f!\16!\u00f6\13") + buf.write(u"!\3\"\6\"\u00f9\n\"\r\"\16\"\u00fa\3\"\2\2#\2\4\6\b\n") + buf.write(u"\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:") + buf.write(u"<>@B\2\b\4\2\3\4((\5\2\3\13&&((\4\2\n\n\37\37\3\2 !\4") + buf.write(u"\2\n\n\"\"\b\2\4\5\7\13\22\23$$&&((\2\u00fc\2D\3\2\2") + buf.write(u"\2\4c\3\2\2\2\6f\3\2\2\2\bj\3\2\2\2\ns\3\2\2\2\fx\3\2") + buf.write(u"\2\2\16|\3\2\2\2\20\u0095\3\2\2\2\22\u0099\3\2\2\2\24") + buf.write(u"\u009c\3\2\2\2\26\u009e\3\2\2\2\30\u00a3\3\2\2\2\32\u00a7") + buf.write(u"\3\2\2\2\34\u00aa\3\2\2\2\36\u00ad\3\2\2\2 \u00b7\3\2") + buf.write(u"\2\2\"\u00ba\3\2\2\2$\u00bd\3\2\2\2&\u00c0\3\2\2\2(\u00c3") + buf.write(u"\3\2\2\2*\u00c6\3\2\2\2,\u00c9\3\2\2\2.\u00cc\3\2\2\2") + buf.write(u"\60\u00ce\3\2\2\2\62\u00d1\3\2\2\2\64\u00d4\3\2\2\2\66") + buf.write(u"\u00de\3\2\2\28\u00e2\3\2\2\2:\u00e5\3\2\2\2<\u00e8\3") + buf.write(u"\2\2\2>\u00eb\3\2\2\2@\u00ee\3\2\2\2B\u00f8\3\2\2\2D") + buf.write(u"H\5\4\3\2EF\5\n\6\2FG\5\6\4\2GI\3\2\2\2HE\3\2\2\2HI\3") + buf.write(u"\2\2\2IJ\3\2\2\2JK\5\16\b\2KL\7&\2\2LM\5\22\n\2MP\5\24") + buf.write(u"\13\2NO\7&\2\2OQ\5\26\f\2PN\3\2\2\2PQ\3\2\2\2QV\3\2\2") + buf.write(u"\2RS\7&\2\2SU\5\64\33\2TR\3\2\2\2UX\3\2\2\2VT\3\2\2\2") + buf.write(u"VW\3\2\2\2W[\3\2\2\2XV\3\2\2\2YZ\7&\2\2Z\\\5\36\20\2") + buf.write(u"[Y\3\2\2\2[\\\3\2\2\2\\`\3\2\2\2]_\7\'\2\2^]\3\2\2\2") + buf.write(u"_b\3\2\2\2`^\3\2\2\2`a\3\2\2\2a\3\3\2\2\2b`\3\2\2\2c") + buf.write(u"d\7(\2\2de\7&\2\2e\5\3\2\2\2fg\7\25\2\2gh\7&\2\2h\7\3") + buf.write(u"\2\2\2ik\t\2\2\2ji\3\2\2\2kl\3\2\2\2lj\3\2\2\2lm\3\2") + buf.write(u"\2\2m\t\3\2\2\2no\7%\2\2op\5\f\7\2pq\7%\2\2qt\3\2\2\2") + buf.write(u"rt\5\f\7\2sn\3\2\2\2sr\3\2\2\2tu\3\2\2\2uv\7&\2\2v\13") + buf.write(u"\3\2\2\2wy\t\3\2\2xw\3\2\2\2yz\3\2\2\2zx\3\2\2\2z{\3") + buf.write(u"\2\2\2{\r\3\2\2\2|}\7%\2\2}~\5\20\t\2~\177\7%\2\2\177") + buf.write(u"\17\3\2\2\2\u0080\u0096\7(\2\2\u0081\u0096\7&\2\2\u0082") + buf.write(u"\u0096\7#\2\2\u0083\u0096\7\37\2\2\u0084\u0096\7\"\2") + buf.write(u"\2\u0085\u0096\5\62\32\2\u0086\u0096\7\f\2\2\u0087\u0096") + buf.write(u"\7\4\2\2\u0088\u0096\7\3\2\2\u0089\u0096\7\r\2\2\u008a") + buf.write(u"\u0096\7\16\2\2\u008b\u0096\7\5\2\2\u008c\u0096\7\6\2") + buf.write(u"\2\u008d\u0096\7\7\2\2\u008e\u0096\7\b\2\2\u008f\u0096") + buf.write(u"\7\t\2\2\u0090\u0096\7\n\2\2\u0091\u0096\7\13\2\2\u0092") + buf.write(u"\u0096\7\17\2\2\u0093\u0096\7\20\2\2\u0094\u0096\7\21") + buf.write(u"\2\2\u0095\u0080\3\2\2\2\u0095\u0081\3\2\2\2\u0095\u0082") + buf.write(u"\3\2\2\2\u0095\u0083\3\2\2\2\u0095\u0084\3\2\2\2\u0095") + buf.write(u"\u0085\3\2\2\2\u0095\u0086\3\2\2\2\u0095\u0087\3\2\2") + buf.write(u"\2\u0095\u0088\3\2\2\2\u0095\u0089\3\2\2\2\u0095\u008a") + buf.write(u"\3\2\2\2\u0095\u008b\3\2\2\2\u0095\u008c\3\2\2\2\u0095") + buf.write(u"\u008d\3\2\2\2\u0095\u008e\3\2\2\2\u0095\u008f\3\2\2") + buf.write(u"\2\u0095\u0090\3\2\2\2\u0095\u0091\3\2\2\2\u0095\u0092") + buf.write(u"\3\2\2\2\u0095\u0093\3\2\2\2\u0095\u0094\3\2\2\2\u0096") + buf.write(u"\u0097\3\2\2\2\u0097\u0095\3\2\2\2\u0097\u0098\3\2\2") + buf.write(u"\2\u0098\21\3\2\2\2\u0099\u009a\7#\2\2\u009a\u009b\7") + buf.write(u"&\2\2\u009b\23\3\2\2\2\u009c\u009d\7$\2\2\u009d\25\3") + buf.write(u"\2\2\2\u009e\u009f\5\32\16\2\u009f\u00a0\5\34\17\2\u00a0") + buf.write(u"\u00a1\5\30\r\2\u00a1\27\3\2\2\2\u00a2\u00a4\t\3\2\2") + buf.write(u"\u00a3\u00a2\3\2\2\2\u00a4\u00a5\3\2\2\2\u00a5\u00a3") + buf.write(u"\3\2\2\2\u00a5\u00a6\3\2\2\2\u00a6\31\3\2\2\2\u00a7\u00a8") + buf.write(u"\7\26\2\2\u00a8\u00a9\7&\2\2\u00a9\33\3\2\2\2\u00aa\u00ab") + buf.write(u"\7\27\2\2\u00ab\u00ac\7&\2\2\u00ac\35\3\2\2\2\u00ad\u00ae") + buf.write(u"\5 \21\2\u00ae\u00af\5\"\22\2\u00af\u00b0\5*\26\2\u00b0") + buf.write(u"\u00b1\5$\23\2\u00b1\u00b2\5&\24\2\u00b2\u00b3\5(\25") + buf.write(u"\2\u00b3\u00b4\5\60\31\2\u00b4\u00b5\5,\27\2\u00b5\u00b6") + buf.write(u"\5.\30\2\u00b6\37\3\2\2\2\u00b7\u00b8\7\30\2\2\u00b8") + buf.write(u"\u00b9\7&\2\2\u00b9!\3\2\2\2\u00ba\u00bb\7\31\2\2\u00bb") + buf.write(u"\u00bc\7&\2\2\u00bc#\3\2\2\2\u00bd\u00be\7\34\2\2\u00be") + buf.write(u"\u00bf\7&\2\2\u00bf%\3\2\2\2\u00c0\u00c1\7\32\2\2\u00c1") + buf.write(u"\u00c2\7&\2\2\u00c2\'\3\2\2\2\u00c3\u00c4\7\33\2\2\u00c4") + buf.write(u"\u00c5\7&\2\2\u00c5)\3\2\2\2\u00c6\u00c7\7$\2\2\u00c7") + buf.write(u"\u00c8\7&\2\2\u00c8+\3\2\2\2\u00c9\u00ca\7\35\2\2\u00ca") + buf.write(u"\u00cb\7&\2\2\u00cb-\3\2\2\2\u00cc\u00cd\7\36\2\2\u00cd") + buf.write(u"/\3\2\2\2\u00ce\u00cf\7$\2\2\u00cf\u00d0\7&\2\2\u00d0") + buf.write(u"\61\3\2\2\2\u00d1\u00d2\7\24\2\2\u00d2\u00d3\7&\2\2\u00d3") + buf.write(u"\63\3\2\2\2\u00d4\u00d5\5\62\32\2\u00d5\u00db\5\66\34") + buf.write(u"\2\u00d6\u00d7\58\35\2\u00d7\u00d8\5\66\34\2\u00d8\u00da") + buf.write(u"\3\2\2\2\u00d9\u00d6\3\2\2\2\u00da\u00dd\3\2\2\2\u00db") + buf.write(u"\u00d9\3\2\2\2\u00db\u00dc\3\2\2\2\u00dc\65\3\2\2\2\u00dd") + buf.write(u"\u00db\3\2\2\2\u00de\u00df\5> \2\u00df\u00e0\5:\36\2") + buf.write(u"\u00e0\u00e1\5@!\2\u00e1\67\3\2\2\2\u00e2\u00e3\t\4\2") + buf.write(u"\2\u00e3\u00e4\7&\2\2\u00e49\3\2\2\2\u00e5\u00e6\t\5") + buf.write(u"\2\2\u00e6\u00e7\7&\2\2\u00e7;\3\2\2\2\u00e8\u00e9\t") + buf.write(u"\6\2\2\u00e9\u00ea\7&\2\2\u00ea=\3\2\2\2\u00eb\u00ec") + buf.write(u"\7(\2\2\u00ec\u00ed\7&\2\2\u00ed?\3\2\2\2\u00ee\u00f4") + buf.write(u"\5B\"\2\u00ef\u00f0\5<\37\2\u00f0\u00f1\5B\"\2\u00f1") + buf.write(u"\u00f3\3\2\2\2\u00f2\u00ef\3\2\2\2\u00f3\u00f6\3\2\2") + buf.write(u"\2\u00f4\u00f2\3\2\2\2\u00f4\u00f5\3\2\2\2\u00f5A\3\2") + buf.write(u"\2\2\u00f6\u00f4\3\2\2\2\u00f7\u00f9\t\7\2\2\u00f8\u00f7") + buf.write(u"\3\2\2\2\u00f9\u00fa\3\2\2\2\u00fa\u00f8\3\2\2\2\u00fa") + buf.write(u"\u00fb\3\2\2\2\u00fbC\3\2\2\2\20HPV[`lsz\u0095\u0097") + buf.write(u"\u00a5\u00db\u00f4\u00fa") + return buf.getvalue() + + +class ScheduleQueryConditionParser ( Parser ): + + grammarFileName = "ScheduleQueryCondition.g4" + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + sharedContextCache = PredictionContextCache() + + literalNames = [ u"", u"'/'", u"'.'", u"'_'", u"'\\'", u"':'", + u"'%'", u"'-'", u"','", u"'|'", u"'&'", u"'('", u"')'", + u"'=='", u"'\\\"'", u"'\\''", u"'*'", u"'~'" ] + + symbolicNames = [ u"", u"", u"", u"", + u"", u"", u"", u"", + u"", u"", u"", u"", + u"", u"", u"", u"", + u"", u"", u"WHERE", u"COMESFROM", + u"RESOURCE", u"COLUMN", u"AT", u"LEAST", u"OUT", u"OF", + u"VIOLATIONS", u"AGGREGATED", u"POINTS", u"AND", u"INCLUDES", + u"EXCLUDES", u"OR", u"OPERATOR", u"NUMBER", u"QUOTE", + u"WHITESPACE", u"NEWLINE", u"WORD" ] + + RULE_expression = 0 + RULE_aggregation = 1 + RULE_comes_from = 2 + RULE_namespace = 3 + RULE_metric_with_quote = 4 + RULE_metric = 5 + RULE_query_with_quote = 6 + RULE_query = 7 + RULE_operator = 8 + RULE_threshold = 9 + RULE_resource_column = 10 + RULE_resource_id = 11 + RULE_resource = 12 + RULE_column = 13 + RULE_falling_period = 14 + RULE_at = 15 + RULE_least = 16 + RULE_violations = 17 + RULE_out = 18 + RULE_of = 19 + RULE_min_times = 20 + RULE_aggregated = 21 + RULE_points = 22 + RULE_evaluation_period = 23 + RULE_where = 24 + RULE_dimensions = 25 + RULE_dimension = 26 + RULE_dim_separator = 27 + RULE_dim_operator = 28 + RULE_dim_val_separator = 29 + RULE_dim_name = 30 + RULE_dim_values = 31 + RULE_dim_value = 32 + + ruleNames = [ u"expression", u"aggregation", u"comes_from", u"namespace", + u"metric_with_quote", u"metric", u"query_with_quote", + u"query", u"operator", u"threshold", u"resource_column", + u"resource_id", u"resource", u"column", u"falling_period", + u"at", u"least", u"violations", u"out", u"of", u"min_times", + u"aggregated", u"points", u"evaluation_period", u"where", + u"dimensions", u"dimension", u"dim_separator", u"dim_operator", + u"dim_val_separator", u"dim_name", u"dim_values", u"dim_value" ] + + EOF = Token.EOF + T__0=1 + T__1=2 + T__2=3 + T__3=4 + T__4=5 + T__5=6 + T__6=7 + T__7=8 + T__8=9 + T__9=10 + T__10=11 + T__11=12 + T__12=13 + T__13=14 + T__14=15 + T__15=16 + T__16=17 + WHERE=18 + COMESFROM=19 + RESOURCE=20 + COLUMN=21 + AT=22 + LEAST=23 + OUT=24 + OF=25 + VIOLATIONS=26 + AGGREGATED=27 + POINTS=28 + AND=29 + INCLUDES=30 + EXCLUDES=31 + OR=32 + OPERATOR=33 + NUMBER=34 + QUOTE=35 + WHITESPACE=36 + NEWLINE=37 + WORD=38 + + def __init__(self, input, output=sys.stdout): + super(ScheduleQueryConditionParser, self).__init__(input, output=output) + self.checkVersion("4.7.2") + self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) + self._predicates = None + + + + + class ExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.ExpressionContext, self).__init__(parent, invokingState) + self.parser = parser + + def aggregation(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.AggregationContext,0) + + + def query_with_quote(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Query_with_quoteContext,0) + + + def WHITESPACE(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.WHITESPACE) + else: + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, i) + + def operator(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.OperatorContext,0) + + + def threshold(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.ThresholdContext,0) + + + def metric_with_quote(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Metric_with_quoteContext,0) + + + def comes_from(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Comes_fromContext,0) + + + def resource_column(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Resource_columnContext,0) + + + def dimensions(self, i=None): + if i is None: + return self.getTypedRuleContexts(ScheduleQueryConditionParser.DimensionsContext) + else: + return self.getTypedRuleContext(ScheduleQueryConditionParser.DimensionsContext,i) + + + def falling_period(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Falling_periodContext,0) + + + def NEWLINE(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.NEWLINE) + else: + return self.getToken(ScheduleQueryConditionParser.NEWLINE, i) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_expression + + def enterRule(self, listener): + if hasattr(listener, "enterExpression"): + listener.enterExpression(self) + + def exitRule(self, listener): + if hasattr(listener, "exitExpression"): + listener.exitExpression(self) + + + + + def expression(self): + + localctx = ScheduleQueryConditionParser.ExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 0, self.RULE_expression) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 66 + self.aggregation() + self.state = 70 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,0,self._ctx) + if la_ == 1: + self.state = 67 + self.metric_with_quote() + self.state = 68 + self.comes_from() + + + self.state = 72 + self.query_with_quote() + self.state = 73 + self.match(ScheduleQueryConditionParser.WHITESPACE) + self.state = 74 + self.operator() + self.state = 75 + self.threshold() + self.state = 78 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,1,self._ctx) + if la_ == 1: + self.state = 76 + self.match(ScheduleQueryConditionParser.WHITESPACE) + self.state = 77 + self.resource_column() + + + self.state = 84 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,2,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 80 + self.match(ScheduleQueryConditionParser.WHITESPACE) + self.state = 81 + self.dimensions() + self.state = 86 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,2,self._ctx) + + self.state = 89 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==ScheduleQueryConditionParser.WHITESPACE: + self.state = 87 + self.match(ScheduleQueryConditionParser.WHITESPACE) + self.state = 88 + self.falling_period() + + + self.state = 94 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==ScheduleQueryConditionParser.NEWLINE: + self.state = 91 + self.match(ScheduleQueryConditionParser.NEWLINE) + self.state = 96 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class AggregationContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.AggregationContext, self).__init__(parent, invokingState) + self.parser = parser + + def WORD(self): + return self.getToken(ScheduleQueryConditionParser.WORD, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_aggregation + + def enterRule(self, listener): + if hasattr(listener, "enterAggregation"): + listener.enterAggregation(self) + + def exitRule(self, listener): + if hasattr(listener, "exitAggregation"): + listener.exitAggregation(self) + + + + + def aggregation(self): + + localctx = ScheduleQueryConditionParser.AggregationContext(self, self._ctx, self.state) + self.enterRule(localctx, 2, self.RULE_aggregation) + try: + self.enterOuterAlt(localctx, 1) + self.state = 97 + self.match(ScheduleQueryConditionParser.WORD) + self.state = 98 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Comes_fromContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Comes_fromContext, self).__init__(parent, invokingState) + self.parser = parser + + def COMESFROM(self): + return self.getToken(ScheduleQueryConditionParser.COMESFROM, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_comes_from + + def enterRule(self, listener): + if hasattr(listener, "enterComes_from"): + listener.enterComes_from(self) + + def exitRule(self, listener): + if hasattr(listener, "exitComes_from"): + listener.exitComes_from(self) + + + + + def comes_from(self): + + localctx = ScheduleQueryConditionParser.Comes_fromContext(self, self._ctx, self.state) + self.enterRule(localctx, 4, self.RULE_comes_from) + try: + self.enterOuterAlt(localctx, 1) + self.state = 100 + self.match(ScheduleQueryConditionParser.COMESFROM) + self.state = 101 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class NamespaceContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.NamespaceContext, self).__init__(parent, invokingState) + self.parser = parser + + def WORD(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.WORD) + else: + return self.getToken(ScheduleQueryConditionParser.WORD, i) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_namespace + + def enterRule(self, listener): + if hasattr(listener, "enterNamespace"): + listener.enterNamespace(self) + + def exitRule(self, listener): + if hasattr(listener, "exitNamespace"): + listener.exitNamespace(self) + + + + + def namespace(self): + + localctx = ScheduleQueryConditionParser.NamespaceContext(self, self._ctx, self.state) + self.enterRule(localctx, 6, self.RULE_namespace) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 104 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 103 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << ScheduleQueryConditionParser.T__0) | (1 << ScheduleQueryConditionParser.T__1) | (1 << ScheduleQueryConditionParser.WORD))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 106 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << ScheduleQueryConditionParser.T__0) | (1 << ScheduleQueryConditionParser.T__1) | (1 << ScheduleQueryConditionParser.WORD))) != 0)): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Metric_with_quoteContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Metric_with_quoteContext, self).__init__(parent, invokingState) + self.parser = parser + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def QUOTE(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.QUOTE) + else: + return self.getToken(ScheduleQueryConditionParser.QUOTE, i) + + def metric(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.MetricContext,0) + + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_metric_with_quote + + def enterRule(self, listener): + if hasattr(listener, "enterMetric_with_quote"): + listener.enterMetric_with_quote(self) + + def exitRule(self, listener): + if hasattr(listener, "exitMetric_with_quote"): + listener.exitMetric_with_quote(self) + + + + + def metric_with_quote(self): + + localctx = ScheduleQueryConditionParser.Metric_with_quoteContext(self, self._ctx, self.state) + self.enterRule(localctx, 8, self.RULE_metric_with_quote) + try: + self.enterOuterAlt(localctx, 1) + self.state = 113 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [ScheduleQueryConditionParser.QUOTE]: + self.state = 108 + self.match(ScheduleQueryConditionParser.QUOTE) + self.state = 109 + self.metric() + self.state = 110 + self.match(ScheduleQueryConditionParser.QUOTE) + pass + elif token in [ScheduleQueryConditionParser.T__0, ScheduleQueryConditionParser.T__1, ScheduleQueryConditionParser.T__2, ScheduleQueryConditionParser.T__3, ScheduleQueryConditionParser.T__4, ScheduleQueryConditionParser.T__5, ScheduleQueryConditionParser.T__6, ScheduleQueryConditionParser.T__7, ScheduleQueryConditionParser.T__8, ScheduleQueryConditionParser.WHITESPACE, ScheduleQueryConditionParser.WORD]: + self.state = 112 + self.metric() + pass + else: + raise NoViableAltException(self) + + self.state = 115 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class MetricContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.MetricContext, self).__init__(parent, invokingState) + self.parser = parser + + def WORD(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.WORD) + else: + return self.getToken(ScheduleQueryConditionParser.WORD, i) + + def WHITESPACE(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.WHITESPACE) + else: + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, i) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_metric + + def enterRule(self, listener): + if hasattr(listener, "enterMetric"): + listener.enterMetric(self) + + def exitRule(self, listener): + if hasattr(listener, "exitMetric"): + listener.exitMetric(self) + + + + + def metric(self): + + localctx = ScheduleQueryConditionParser.MetricContext(self, self._ctx, self.state) + self.enterRule(localctx, 10, self.RULE_metric) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 118 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 117 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << ScheduleQueryConditionParser.T__0) | (1 << ScheduleQueryConditionParser.T__1) | (1 << ScheduleQueryConditionParser.T__2) | (1 << ScheduleQueryConditionParser.T__3) | (1 << ScheduleQueryConditionParser.T__4) | (1 << ScheduleQueryConditionParser.T__5) | (1 << ScheduleQueryConditionParser.T__6) | (1 << ScheduleQueryConditionParser.T__7) | (1 << ScheduleQueryConditionParser.T__8) | (1 << ScheduleQueryConditionParser.WHITESPACE) | (1 << ScheduleQueryConditionParser.WORD))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + + else: + raise NoViableAltException(self) + self.state = 120 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,7,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Query_with_quoteContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Query_with_quoteContext, self).__init__(parent, invokingState) + self.parser = parser + + def QUOTE(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.QUOTE) + else: + return self.getToken(ScheduleQueryConditionParser.QUOTE, i) + + def query(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.QueryContext,0) + + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_query_with_quote + + def enterRule(self, listener): + if hasattr(listener, "enterQuery_with_quote"): + listener.enterQuery_with_quote(self) + + def exitRule(self, listener): + if hasattr(listener, "exitQuery_with_quote"): + listener.exitQuery_with_quote(self) + + + + + def query_with_quote(self): + + localctx = ScheduleQueryConditionParser.Query_with_quoteContext(self, self._ctx, self.state) + self.enterRule(localctx, 12, self.RULE_query_with_quote) + try: + self.enterOuterAlt(localctx, 1) + self.state = 122 + self.match(ScheduleQueryConditionParser.QUOTE) + self.state = 123 + self.query() + self.state = 124 + self.match(ScheduleQueryConditionParser.QUOTE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class QueryContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.QueryContext, self).__init__(parent, invokingState) + self.parser = parser + + def WORD(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.WORD) + else: + return self.getToken(ScheduleQueryConditionParser.WORD, i) + + def WHITESPACE(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.WHITESPACE) + else: + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, i) + + def OPERATOR(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.OPERATOR) + else: + return self.getToken(ScheduleQueryConditionParser.OPERATOR, i) + + def AND(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.AND) + else: + return self.getToken(ScheduleQueryConditionParser.AND, i) + + def OR(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.OR) + else: + return self.getToken(ScheduleQueryConditionParser.OR, i) + + def where(self, i=None): + if i is None: + return self.getTypedRuleContexts(ScheduleQueryConditionParser.WhereContext) + else: + return self.getTypedRuleContext(ScheduleQueryConditionParser.WhereContext,i) + + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_query + + def enterRule(self, listener): + if hasattr(listener, "enterQuery"): + listener.enterQuery(self) + + def exitRule(self, listener): + if hasattr(listener, "exitQuery"): + listener.exitQuery(self) + + + + + def query(self): + + localctx = ScheduleQueryConditionParser.QueryContext(self, self._ctx, self.state) + self.enterRule(localctx, 14, self.RULE_query) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 147 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 147 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [ScheduleQueryConditionParser.WORD]: + self.state = 126 + self.match(ScheduleQueryConditionParser.WORD) + pass + elif token in [ScheduleQueryConditionParser.WHITESPACE]: + self.state = 127 + self.match(ScheduleQueryConditionParser.WHITESPACE) + pass + elif token in [ScheduleQueryConditionParser.OPERATOR]: + self.state = 128 + self.match(ScheduleQueryConditionParser.OPERATOR) + pass + elif token in [ScheduleQueryConditionParser.AND]: + self.state = 129 + self.match(ScheduleQueryConditionParser.AND) + pass + elif token in [ScheduleQueryConditionParser.OR]: + self.state = 130 + self.match(ScheduleQueryConditionParser.OR) + pass + elif token in [ScheduleQueryConditionParser.WHERE]: + self.state = 131 + self.where() + pass + elif token in [ScheduleQueryConditionParser.T__9]: + self.state = 132 + self.match(ScheduleQueryConditionParser.T__9) + pass + elif token in [ScheduleQueryConditionParser.T__1]: + self.state = 133 + self.match(ScheduleQueryConditionParser.T__1) + pass + elif token in [ScheduleQueryConditionParser.T__0]: + self.state = 134 + self.match(ScheduleQueryConditionParser.T__0) + pass + elif token in [ScheduleQueryConditionParser.T__10]: + self.state = 135 + self.match(ScheduleQueryConditionParser.T__10) + pass + elif token in [ScheduleQueryConditionParser.T__11]: + self.state = 136 + self.match(ScheduleQueryConditionParser.T__11) + pass + elif token in [ScheduleQueryConditionParser.T__2]: + self.state = 137 + self.match(ScheduleQueryConditionParser.T__2) + pass + elif token in [ScheduleQueryConditionParser.T__3]: + self.state = 138 + self.match(ScheduleQueryConditionParser.T__3) + pass + elif token in [ScheduleQueryConditionParser.T__4]: + self.state = 139 + self.match(ScheduleQueryConditionParser.T__4) + pass + elif token in [ScheduleQueryConditionParser.T__5]: + self.state = 140 + self.match(ScheduleQueryConditionParser.T__5) + pass + elif token in [ScheduleQueryConditionParser.T__6]: + self.state = 141 + self.match(ScheduleQueryConditionParser.T__6) + pass + elif token in [ScheduleQueryConditionParser.T__7]: + self.state = 142 + self.match(ScheduleQueryConditionParser.T__7) + pass + elif token in [ScheduleQueryConditionParser.T__8]: + self.state = 143 + self.match(ScheduleQueryConditionParser.T__8) + pass + elif token in [ScheduleQueryConditionParser.T__12]: + self.state = 144 + self.match(ScheduleQueryConditionParser.T__12) + pass + elif token in [ScheduleQueryConditionParser.T__13]: + self.state = 145 + self.match(ScheduleQueryConditionParser.T__13) + pass + elif token in [ScheduleQueryConditionParser.T__14]: + self.state = 146 + self.match(ScheduleQueryConditionParser.T__14) + pass + else: + raise NoViableAltException(self) + + self.state = 149 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << ScheduleQueryConditionParser.T__0) | (1 << ScheduleQueryConditionParser.T__1) | (1 << ScheduleQueryConditionParser.T__2) | (1 << ScheduleQueryConditionParser.T__3) | (1 << ScheduleQueryConditionParser.T__4) | (1 << ScheduleQueryConditionParser.T__5) | (1 << ScheduleQueryConditionParser.T__6) | (1 << ScheduleQueryConditionParser.T__7) | (1 << ScheduleQueryConditionParser.T__8) | (1 << ScheduleQueryConditionParser.T__9) | (1 << ScheduleQueryConditionParser.T__10) | (1 << ScheduleQueryConditionParser.T__11) | (1 << ScheduleQueryConditionParser.T__12) | (1 << ScheduleQueryConditionParser.T__13) | (1 << ScheduleQueryConditionParser.T__14) | (1 << ScheduleQueryConditionParser.WHERE) | (1 << ScheduleQueryConditionParser.AND) | (1 << ScheduleQueryConditionParser.OR) | (1 << ScheduleQueryConditionParser.OPERATOR) | (1 << ScheduleQueryConditionParser.WHITESPACE) | (1 << ScheduleQueryConditionParser.WORD))) != 0)): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class OperatorContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.OperatorContext, self).__init__(parent, invokingState) + self.parser = parser + + def OPERATOR(self): + return self.getToken(ScheduleQueryConditionParser.OPERATOR, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_operator + + def enterRule(self, listener): + if hasattr(listener, "enterOperator"): + listener.enterOperator(self) + + def exitRule(self, listener): + if hasattr(listener, "exitOperator"): + listener.exitOperator(self) + + + + + def operator(self): + + localctx = ScheduleQueryConditionParser.OperatorContext(self, self._ctx, self.state) + self.enterRule(localctx, 16, self.RULE_operator) + try: + self.enterOuterAlt(localctx, 1) + self.state = 151 + self.match(ScheduleQueryConditionParser.OPERATOR) + self.state = 152 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class ThresholdContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.ThresholdContext, self).__init__(parent, invokingState) + self.parser = parser + + def NUMBER(self): + return self.getToken(ScheduleQueryConditionParser.NUMBER, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_threshold + + def enterRule(self, listener): + if hasattr(listener, "enterThreshold"): + listener.enterThreshold(self) + + def exitRule(self, listener): + if hasattr(listener, "exitThreshold"): + listener.exitThreshold(self) + + + + + def threshold(self): + + localctx = ScheduleQueryConditionParser.ThresholdContext(self, self._ctx, self.state) + self.enterRule(localctx, 18, self.RULE_threshold) + try: + self.enterOuterAlt(localctx, 1) + self.state = 154 + self.match(ScheduleQueryConditionParser.NUMBER) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Resource_columnContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Resource_columnContext, self).__init__(parent, invokingState) + self.parser = parser + + def resource(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.ResourceContext,0) + + + def column(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.ColumnContext,0) + + + def resource_id(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Resource_idContext,0) + + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_resource_column + + def enterRule(self, listener): + if hasattr(listener, "enterResource_column"): + listener.enterResource_column(self) + + def exitRule(self, listener): + if hasattr(listener, "exitResource_column"): + listener.exitResource_column(self) + + + + + def resource_column(self): + + localctx = ScheduleQueryConditionParser.Resource_columnContext(self, self._ctx, self.state) + self.enterRule(localctx, 20, self.RULE_resource_column) + try: + self.enterOuterAlt(localctx, 1) + self.state = 156 + self.resource() + self.state = 157 + self.column() + self.state = 158 + self.resource_id() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Resource_idContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Resource_idContext, self).__init__(parent, invokingState) + self.parser = parser + + def WORD(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.WORD) + else: + return self.getToken(ScheduleQueryConditionParser.WORD, i) + + def WHITESPACE(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.WHITESPACE) + else: + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, i) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_resource_id + + def enterRule(self, listener): + if hasattr(listener, "enterResource_id"): + listener.enterResource_id(self) + + def exitRule(self, listener): + if hasattr(listener, "exitResource_id"): + listener.exitResource_id(self) + + + + + def resource_id(self): + + localctx = ScheduleQueryConditionParser.Resource_idContext(self, self._ctx, self.state) + self.enterRule(localctx, 22, self.RULE_resource_id) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 161 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 160 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << ScheduleQueryConditionParser.T__0) | (1 << ScheduleQueryConditionParser.T__1) | (1 << ScheduleQueryConditionParser.T__2) | (1 << ScheduleQueryConditionParser.T__3) | (1 << ScheduleQueryConditionParser.T__4) | (1 << ScheduleQueryConditionParser.T__5) | (1 << ScheduleQueryConditionParser.T__6) | (1 << ScheduleQueryConditionParser.T__7) | (1 << ScheduleQueryConditionParser.T__8) | (1 << ScheduleQueryConditionParser.WHITESPACE) | (1 << ScheduleQueryConditionParser.WORD))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + + else: + raise NoViableAltException(self) + self.state = 163 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,10,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class ResourceContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.ResourceContext, self).__init__(parent, invokingState) + self.parser = parser + + def RESOURCE(self): + return self.getToken(ScheduleQueryConditionParser.RESOURCE, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_resource + + def enterRule(self, listener): + if hasattr(listener, "enterResource"): + listener.enterResource(self) + + def exitRule(self, listener): + if hasattr(listener, "exitResource"): + listener.exitResource(self) + + + + + def resource(self): + + localctx = ScheduleQueryConditionParser.ResourceContext(self, self._ctx, self.state) + self.enterRule(localctx, 24, self.RULE_resource) + try: + self.enterOuterAlt(localctx, 1) + self.state = 165 + self.match(ScheduleQueryConditionParser.RESOURCE) + self.state = 166 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class ColumnContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.ColumnContext, self).__init__(parent, invokingState) + self.parser = parser + + def COLUMN(self): + return self.getToken(ScheduleQueryConditionParser.COLUMN, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_column + + def enterRule(self, listener): + if hasattr(listener, "enterColumn"): + listener.enterColumn(self) + + def exitRule(self, listener): + if hasattr(listener, "exitColumn"): + listener.exitColumn(self) + + + + + def column(self): + + localctx = ScheduleQueryConditionParser.ColumnContext(self, self._ctx, self.state) + self.enterRule(localctx, 26, self.RULE_column) + try: + self.enterOuterAlt(localctx, 1) + self.state = 168 + self.match(ScheduleQueryConditionParser.COLUMN) + self.state = 169 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Falling_periodContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Falling_periodContext, self).__init__(parent, invokingState) + self.parser = parser + + def at(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.AtContext,0) + + + def least(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.LeastContext,0) + + + def min_times(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Min_timesContext,0) + + + def violations(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.ViolationsContext,0) + + + def out(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.OutContext,0) + + + def of(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.OfContext,0) + + + def evaluation_period(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Evaluation_periodContext,0) + + + def aggregated(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.AggregatedContext,0) + + + def points(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.PointsContext,0) + + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_falling_period + + def enterRule(self, listener): + if hasattr(listener, "enterFalling_period"): + listener.enterFalling_period(self) + + def exitRule(self, listener): + if hasattr(listener, "exitFalling_period"): + listener.exitFalling_period(self) + + + + + def falling_period(self): + + localctx = ScheduleQueryConditionParser.Falling_periodContext(self, self._ctx, self.state) + self.enterRule(localctx, 28, self.RULE_falling_period) + try: + self.enterOuterAlt(localctx, 1) + self.state = 171 + self.at() + self.state = 172 + self.least() + self.state = 173 + self.min_times() + self.state = 174 + self.violations() + self.state = 175 + self.out() + self.state = 176 + self.of() + self.state = 177 + self.evaluation_period() + self.state = 178 + self.aggregated() + self.state = 179 + self.points() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class AtContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.AtContext, self).__init__(parent, invokingState) + self.parser = parser + + def AT(self): + return self.getToken(ScheduleQueryConditionParser.AT, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_at + + def enterRule(self, listener): + if hasattr(listener, "enterAt"): + listener.enterAt(self) + + def exitRule(self, listener): + if hasattr(listener, "exitAt"): + listener.exitAt(self) + + + + + def at(self): + + localctx = ScheduleQueryConditionParser.AtContext(self, self._ctx, self.state) + self.enterRule(localctx, 30, self.RULE_at) + try: + self.enterOuterAlt(localctx, 1) + self.state = 181 + self.match(ScheduleQueryConditionParser.AT) + self.state = 182 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class LeastContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.LeastContext, self).__init__(parent, invokingState) + self.parser = parser + + def LEAST(self): + return self.getToken(ScheduleQueryConditionParser.LEAST, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_least + + def enterRule(self, listener): + if hasattr(listener, "enterLeast"): + listener.enterLeast(self) + + def exitRule(self, listener): + if hasattr(listener, "exitLeast"): + listener.exitLeast(self) + + + + + def least(self): + + localctx = ScheduleQueryConditionParser.LeastContext(self, self._ctx, self.state) + self.enterRule(localctx, 32, self.RULE_least) + try: + self.enterOuterAlt(localctx, 1) + self.state = 184 + self.match(ScheduleQueryConditionParser.LEAST) + self.state = 185 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class ViolationsContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.ViolationsContext, self).__init__(parent, invokingState) + self.parser = parser + + def VIOLATIONS(self): + return self.getToken(ScheduleQueryConditionParser.VIOLATIONS, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_violations + + def enterRule(self, listener): + if hasattr(listener, "enterViolations"): + listener.enterViolations(self) + + def exitRule(self, listener): + if hasattr(listener, "exitViolations"): + listener.exitViolations(self) + + + + + def violations(self): + + localctx = ScheduleQueryConditionParser.ViolationsContext(self, self._ctx, self.state) + self.enterRule(localctx, 34, self.RULE_violations) + try: + self.enterOuterAlt(localctx, 1) + self.state = 187 + self.match(ScheduleQueryConditionParser.VIOLATIONS) + self.state = 188 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class OutContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.OutContext, self).__init__(parent, invokingState) + self.parser = parser + + def OUT(self): + return self.getToken(ScheduleQueryConditionParser.OUT, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_out + + def enterRule(self, listener): + if hasattr(listener, "enterOut"): + listener.enterOut(self) + + def exitRule(self, listener): + if hasattr(listener, "exitOut"): + listener.exitOut(self) + + + + + def out(self): + + localctx = ScheduleQueryConditionParser.OutContext(self, self._ctx, self.state) + self.enterRule(localctx, 36, self.RULE_out) + try: + self.enterOuterAlt(localctx, 1) + self.state = 190 + self.match(ScheduleQueryConditionParser.OUT) + self.state = 191 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class OfContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.OfContext, self).__init__(parent, invokingState) + self.parser = parser + + def OF(self): + return self.getToken(ScheduleQueryConditionParser.OF, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_of + + def enterRule(self, listener): + if hasattr(listener, "enterOf"): + listener.enterOf(self) + + def exitRule(self, listener): + if hasattr(listener, "exitOf"): + listener.exitOf(self) + + + + + def of(self): + + localctx = ScheduleQueryConditionParser.OfContext(self, self._ctx, self.state) + self.enterRule(localctx, 38, self.RULE_of) + try: + self.enterOuterAlt(localctx, 1) + self.state = 193 + self.match(ScheduleQueryConditionParser.OF) + self.state = 194 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Min_timesContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Min_timesContext, self).__init__(parent, invokingState) + self.parser = parser + + def NUMBER(self): + return self.getToken(ScheduleQueryConditionParser.NUMBER, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_min_times + + def enterRule(self, listener): + if hasattr(listener, "enterMin_times"): + listener.enterMin_times(self) + + def exitRule(self, listener): + if hasattr(listener, "exitMin_times"): + listener.exitMin_times(self) + + + + + def min_times(self): + + localctx = ScheduleQueryConditionParser.Min_timesContext(self, self._ctx, self.state) + self.enterRule(localctx, 40, self.RULE_min_times) + try: + self.enterOuterAlt(localctx, 1) + self.state = 196 + self.match(ScheduleQueryConditionParser.NUMBER) + self.state = 197 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class AggregatedContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.AggregatedContext, self).__init__(parent, invokingState) + self.parser = parser + + def AGGREGATED(self): + return self.getToken(ScheduleQueryConditionParser.AGGREGATED, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_aggregated + + def enterRule(self, listener): + if hasattr(listener, "enterAggregated"): + listener.enterAggregated(self) + + def exitRule(self, listener): + if hasattr(listener, "exitAggregated"): + listener.exitAggregated(self) + + + + + def aggregated(self): + + localctx = ScheduleQueryConditionParser.AggregatedContext(self, self._ctx, self.state) + self.enterRule(localctx, 42, self.RULE_aggregated) + try: + self.enterOuterAlt(localctx, 1) + self.state = 199 + self.match(ScheduleQueryConditionParser.AGGREGATED) + self.state = 200 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class PointsContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.PointsContext, self).__init__(parent, invokingState) + self.parser = parser + + def POINTS(self): + return self.getToken(ScheduleQueryConditionParser.POINTS, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_points + + def enterRule(self, listener): + if hasattr(listener, "enterPoints"): + listener.enterPoints(self) + + def exitRule(self, listener): + if hasattr(listener, "exitPoints"): + listener.exitPoints(self) + + + + + def points(self): + + localctx = ScheduleQueryConditionParser.PointsContext(self, self._ctx, self.state) + self.enterRule(localctx, 44, self.RULE_points) + try: + self.enterOuterAlt(localctx, 1) + self.state = 202 + self.match(ScheduleQueryConditionParser.POINTS) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Evaluation_periodContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Evaluation_periodContext, self).__init__(parent, invokingState) + self.parser = parser + + def NUMBER(self): + return self.getToken(ScheduleQueryConditionParser.NUMBER, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_evaluation_period + + def enterRule(self, listener): + if hasattr(listener, "enterEvaluation_period"): + listener.enterEvaluation_period(self) + + def exitRule(self, listener): + if hasattr(listener, "exitEvaluation_period"): + listener.exitEvaluation_period(self) + + + + + def evaluation_period(self): + + localctx = ScheduleQueryConditionParser.Evaluation_periodContext(self, self._ctx, self.state) + self.enterRule(localctx, 46, self.RULE_evaluation_period) + try: + self.enterOuterAlt(localctx, 1) + self.state = 204 + self.match(ScheduleQueryConditionParser.NUMBER) + self.state = 205 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class WhereContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.WhereContext, self).__init__(parent, invokingState) + self.parser = parser + + def WHERE(self): + return self.getToken(ScheduleQueryConditionParser.WHERE, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_where + + def enterRule(self, listener): + if hasattr(listener, "enterWhere"): + listener.enterWhere(self) + + def exitRule(self, listener): + if hasattr(listener, "exitWhere"): + listener.exitWhere(self) + + + + + def where(self): + + localctx = ScheduleQueryConditionParser.WhereContext(self, self._ctx, self.state) + self.enterRule(localctx, 48, self.RULE_where) + try: + self.enterOuterAlt(localctx, 1) + self.state = 207 + self.match(ScheduleQueryConditionParser.WHERE) + self.state = 208 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class DimensionsContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.DimensionsContext, self).__init__(parent, invokingState) + self.parser = parser + + def where(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.WhereContext,0) + + + def dimension(self, i=None): + if i is None: + return self.getTypedRuleContexts(ScheduleQueryConditionParser.DimensionContext) + else: + return self.getTypedRuleContext(ScheduleQueryConditionParser.DimensionContext,i) + + + def dim_separator(self, i=None): + if i is None: + return self.getTypedRuleContexts(ScheduleQueryConditionParser.Dim_separatorContext) + else: + return self.getTypedRuleContext(ScheduleQueryConditionParser.Dim_separatorContext,i) + + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_dimensions + + def enterRule(self, listener): + if hasattr(listener, "enterDimensions"): + listener.enterDimensions(self) + + def exitRule(self, listener): + if hasattr(listener, "exitDimensions"): + listener.exitDimensions(self) + + + + + def dimensions(self): + + localctx = ScheduleQueryConditionParser.DimensionsContext(self, self._ctx, self.state) + self.enterRule(localctx, 50, self.RULE_dimensions) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 210 + self.where() + self.state = 211 + self.dimension() + self.state = 217 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==ScheduleQueryConditionParser.T__7 or _la==ScheduleQueryConditionParser.AND: + self.state = 212 + self.dim_separator() + self.state = 213 + self.dimension() + self.state = 219 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class DimensionContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.DimensionContext, self).__init__(parent, invokingState) + self.parser = parser + + def dim_name(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Dim_nameContext,0) + + + def dim_operator(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Dim_operatorContext,0) + + + def dim_values(self): + return self.getTypedRuleContext(ScheduleQueryConditionParser.Dim_valuesContext,0) + + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_dimension + + def enterRule(self, listener): + if hasattr(listener, "enterDimension"): + listener.enterDimension(self) + + def exitRule(self, listener): + if hasattr(listener, "exitDimension"): + listener.exitDimension(self) + + + + + def dimension(self): + + localctx = ScheduleQueryConditionParser.DimensionContext(self, self._ctx, self.state) + self.enterRule(localctx, 52, self.RULE_dimension) + try: + self.enterOuterAlt(localctx, 1) + self.state = 220 + self.dim_name() + self.state = 221 + self.dim_operator() + self.state = 222 + self.dim_values() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Dim_separatorContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Dim_separatorContext, self).__init__(parent, invokingState) + self.parser = parser + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def AND(self): + return self.getToken(ScheduleQueryConditionParser.AND, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_dim_separator + + def enterRule(self, listener): + if hasattr(listener, "enterDim_separator"): + listener.enterDim_separator(self) + + def exitRule(self, listener): + if hasattr(listener, "exitDim_separator"): + listener.exitDim_separator(self) + + + + + def dim_separator(self): + + localctx = ScheduleQueryConditionParser.Dim_separatorContext(self, self._ctx, self.state) + self.enterRule(localctx, 54, self.RULE_dim_separator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 224 + _la = self._input.LA(1) + if not(_la==ScheduleQueryConditionParser.T__7 or _la==ScheduleQueryConditionParser.AND): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 225 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Dim_operatorContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Dim_operatorContext, self).__init__(parent, invokingState) + self.parser = parser + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def INCLUDES(self): + return self.getToken(ScheduleQueryConditionParser.INCLUDES, 0) + + def EXCLUDES(self): + return self.getToken(ScheduleQueryConditionParser.EXCLUDES, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_dim_operator + + def enterRule(self, listener): + if hasattr(listener, "enterDim_operator"): + listener.enterDim_operator(self) + + def exitRule(self, listener): + if hasattr(listener, "exitDim_operator"): + listener.exitDim_operator(self) + + + + + def dim_operator(self): + + localctx = ScheduleQueryConditionParser.Dim_operatorContext(self, self._ctx, self.state) + self.enterRule(localctx, 56, self.RULE_dim_operator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 227 + _la = self._input.LA(1) + if not(_la==ScheduleQueryConditionParser.INCLUDES or _la==ScheduleQueryConditionParser.EXCLUDES): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 228 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Dim_val_separatorContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Dim_val_separatorContext, self).__init__(parent, invokingState) + self.parser = parser + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def OR(self): + return self.getToken(ScheduleQueryConditionParser.OR, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_dim_val_separator + + def enterRule(self, listener): + if hasattr(listener, "enterDim_val_separator"): + listener.enterDim_val_separator(self) + + def exitRule(self, listener): + if hasattr(listener, "exitDim_val_separator"): + listener.exitDim_val_separator(self) + + + + + def dim_val_separator(self): + + localctx = ScheduleQueryConditionParser.Dim_val_separatorContext(self, self._ctx, self.state) + self.enterRule(localctx, 58, self.RULE_dim_val_separator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 230 + _la = self._input.LA(1) + if not(_la==ScheduleQueryConditionParser.T__7 or _la==ScheduleQueryConditionParser.OR): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 231 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Dim_nameContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Dim_nameContext, self).__init__(parent, invokingState) + self.parser = parser + + def WORD(self): + return self.getToken(ScheduleQueryConditionParser.WORD, 0) + + def WHITESPACE(self): + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, 0) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_dim_name + + def enterRule(self, listener): + if hasattr(listener, "enterDim_name"): + listener.enterDim_name(self) + + def exitRule(self, listener): + if hasattr(listener, "exitDim_name"): + listener.exitDim_name(self) + + + + + def dim_name(self): + + localctx = ScheduleQueryConditionParser.Dim_nameContext(self, self._ctx, self.state) + self.enterRule(localctx, 60, self.RULE_dim_name) + try: + self.enterOuterAlt(localctx, 1) + self.state = 233 + self.match(ScheduleQueryConditionParser.WORD) + self.state = 234 + self.match(ScheduleQueryConditionParser.WHITESPACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Dim_valuesContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Dim_valuesContext, self).__init__(parent, invokingState) + self.parser = parser + + def dim_value(self, i=None): + if i is None: + return self.getTypedRuleContexts(ScheduleQueryConditionParser.Dim_valueContext) + else: + return self.getTypedRuleContext(ScheduleQueryConditionParser.Dim_valueContext,i) + + + def dim_val_separator(self, i=None): + if i is None: + return self.getTypedRuleContexts(ScheduleQueryConditionParser.Dim_val_separatorContext) + else: + return self.getTypedRuleContext(ScheduleQueryConditionParser.Dim_val_separatorContext,i) + + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_dim_values + + def enterRule(self, listener): + if hasattr(listener, "enterDim_values"): + listener.enterDim_values(self) + + def exitRule(self, listener): + if hasattr(listener, "exitDim_values"): + listener.exitDim_values(self) + + + + + def dim_values(self): + + localctx = ScheduleQueryConditionParser.Dim_valuesContext(self, self._ctx, self.state) + self.enterRule(localctx, 62, self.RULE_dim_values) + try: + self.enterOuterAlt(localctx, 1) + self.state = 236 + self.dim_value() + self.state = 242 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,12,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 237 + self.dim_val_separator() + self.state = 238 + self.dim_value() + self.state = 244 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,12,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class Dim_valueContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(ScheduleQueryConditionParser.Dim_valueContext, self).__init__(parent, invokingState) + self.parser = parser + + def NUMBER(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.NUMBER) + else: + return self.getToken(ScheduleQueryConditionParser.NUMBER, i) + + def WORD(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.WORD) + else: + return self.getToken(ScheduleQueryConditionParser.WORD, i) + + def WHITESPACE(self, i=None): + if i is None: + return self.getTokens(ScheduleQueryConditionParser.WHITESPACE) + else: + return self.getToken(ScheduleQueryConditionParser.WHITESPACE, i) + + def getRuleIndex(self): + return ScheduleQueryConditionParser.RULE_dim_value + + def enterRule(self, listener): + if hasattr(listener, "enterDim_value"): + listener.enterDim_value(self) + + def exitRule(self, listener): + if hasattr(listener, "exitDim_value"): + listener.exitDim_value(self) + + + + + def dim_value(self): + + localctx = ScheduleQueryConditionParser.Dim_valueContext(self, self._ctx, self.state) + self.enterRule(localctx, 64, self.RULE_dim_value) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 246 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 245 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << ScheduleQueryConditionParser.T__1) | (1 << ScheduleQueryConditionParser.T__2) | (1 << ScheduleQueryConditionParser.T__4) | (1 << ScheduleQueryConditionParser.T__5) | (1 << ScheduleQueryConditionParser.T__6) | (1 << ScheduleQueryConditionParser.T__7) | (1 << ScheduleQueryConditionParser.T__8) | (1 << ScheduleQueryConditionParser.T__15) | (1 << ScheduleQueryConditionParser.T__16) | (1 << ScheduleQueryConditionParser.NUMBER) | (1 << ScheduleQueryConditionParser.WHITESPACE) | (1 << ScheduleQueryConditionParser.WORD))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + + else: + raise NoViableAltException(self) + self.state = 248 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,13,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + + + diff --git a/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionValidator.py b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionValidator.py new file mode 100644 index 00000000000..2441ab377d1 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/ScheduleQueryConditionValidator.py @@ -0,0 +1,111 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +# pylint: disable=all +from .ScheduleQueryConditionListener import ScheduleQueryConditionListener +from azext_scheduled_query.vendored_sdks.azure_mgmt_scheduled_query.models import ConditionFailingPeriods + + +op_conversion = { + '=': 'Equals', + '!=': 'NotEquals', + '>': 'GreaterThan', + '>=': 'GreaterThanOrEqual', + '<': 'LessThan', + '<=': 'LessThanOrEqual' +} + +agg_conversion = { + 'avg': 'Average', + 'min': 'Minimum', + 'max': 'Maximum', + 'total': 'Total', + 'count': 'Count' +} + +dim_op_conversion = { + 'includes': 'Include', + 'excludes': 'Exclude' +} + +# This class defines a complete listener for a parse tree produced by MetricAlertConditionParser. +class ScheduleQueryConditionValidator(ScheduleQueryConditionListener): + + def __init__(self): + super(ScheduleQueryConditionValidator, self).__init__() + self.parameters = {} + self._dimension_index = 0 + + # Exit a parse tree produced by MetricAlertConditionParser#aggregation. + def exitAggregation(self, ctx): + aggregation = agg_conversion[ctx.getText().strip()] + self.parameters['time_aggregation'] = aggregation + + # Exit a parse tree produced by MetricAlertConditionParser#metric. + def exitMetric(self, ctx): + self.parameters['metric_measure_column'] = ctx.getText().strip() + + # Exit a parse tree produced by MetricAlertConditionParser#operator. + def exitOperator(self, ctx): + operator = op_conversion[ctx.getText().strip()] + self.parameters['operator'] = operator + + # Exit a parse tree produced by MetricAlertConditionParser#threshold. + def exitThreshold(self, ctx): + self.parameters['threshold'] = ctx.getText().strip() + + # Exit a parse tree produced by MetricAlertConditionParser#threshold. + def exitQuery(self, ctx): + self.parameters['query'] = ctx.getText().strip() + + # Exit a parse tree produced by MetricAlertConditionParser#threshold. + def exitResource_id(self, ctx): + self.parameters['resource_id_column'] = ctx.getText().strip() + + # Enter a parse tree produced by MetricAlertConditionParser#dimensions. + def enterFalling_period(self, ctx): + self.parameters['failing_periods'] = ConditionFailingPeriods() + + # Exit a parse tree produced by MetricAlertConditionParser#threshold. + def exitMin_times(self, ctx): + self.parameters['failing_periods'].min_failing_periods_to_alert = int(float(ctx.getText().strip())) + + # Exit a parse tree produced by MetricAlertConditionParser#threshold. + def exitEvaluation_period(self, ctx): + self.parameters['failing_periods'].number_of_evaluation_periods = int(float(ctx.getText().strip())) + + # Enter a parse tree produced by MetricAlertConditionParser#dimensions. + def enterDimensions(self, ctx): + self.parameters['dimensions'] = [] + + # Enter a parse tree produced by MetricAlertConditionParser#dimension. + def enterDimension(self, ctx): + self.parameters['dimensions'].append({}) + + # Exit a parse tree produced by MetricAlertConditionParser#dimension. + def exitDimension(self, ctx): + self._dimension_index = self._dimension_index + 1 + + # Exit a parse tree produced by MetricAlertConditionParser#dname. + def exitDim_name(self, ctx): + self.parameters['dimensions'][self._dimension_index]['name'] = ctx.getText().strip() + + # Exit a parse tree produced by MetricAlertConditionParser#dop. + def exitDim_operator(self, ctx): + op_text = ctx.getText().strip() + self.parameters['dimensions'][self._dimension_index]['operator'] = dim_op_conversion[op_text.lower()] + + # Exit a parse tree produced by MetricAlertConditionParser#dvalues. + def exitDim_values(self, ctx): + dvalues = ctx.getText().strip().split(' ') + self.parameters['dimensions'][self._dimension_index]['values'] = [x for x in dvalues if x not in ['', 'or']] + + def result(self): + from azext_scheduled_query.vendored_sdks.azure_mgmt_scheduled_query.models import Condition, Dimension + dim_params = self.parameters.get('dimensions', []) + dimensions = [] + for dim in dim_params: + dimensions.append(Dimension(**dim)) + self.parameters['dimensions'] = dimensions + return Condition(**self.parameters) diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_types.py b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/__init__.py similarity index 51% rename from src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_types.py rename to src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/__init__.py index 2eaef891723..5cb68614326 100644 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/_types.py +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/__init__.py @@ -3,12 +3,8 @@ # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- -from typing import Dict, List, Union, Iterable, Any - -from knack.arguments import CLICommandArgument -from knack.deprecation import Deprecated - -ParameterTableType = Dict[str, CLICommandArgument] -OptionListType = List[Union[str, Deprecated]] - -ArgumentsType = Union[Iterable[Any], str] +# pylint: disable=unused-import +from .ScheduleQueryConditionLexer import ScheduleQueryConditionLexer +from .ScheduleQueryConditionParser import ScheduleQueryConditionParser +from .ScheduleQueryConditionListener import ScheduleQueryConditionListener +from .ScheduleQueryConditionValidator import ScheduleQueryConditionValidator diff --git a/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/antlr.bat b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/antlr.bat new file mode 100644 index 00000000000..bfbae7b62c9 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/antlr.bat @@ -0,0 +1 @@ +java org.antlr.v4.Tool %* \ No newline at end of file diff --git a/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/build_python.bat b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/build_python.bat new file mode 100644 index 00000000000..77a8c2674a0 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/build_python.bat @@ -0,0 +1,3 @@ +echo off +echo Building ScheduleQueryCondition +call antlr -Dlanguage=Python2 ScheduleQueryCondition.g4 diff --git a/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/grun.bat b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/grun.bat new file mode 100644 index 00000000000..e348bb47cbe --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/grun.bat @@ -0,0 +1,5 @@ +@ECHO OFF +SET TEST_CURRENT_DIR=%CLASSPATH:.;=% +if "%TEST_CURRENT_DIR%" == "%CLASSPATH%" ( SET CLASSPATH=.;%CLASSPATH% ) +@ECHO ON +java org.antlr.v4.gui.TestRig %* \ No newline at end of file diff --git a/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/run_test.bat b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/run_test.bat new file mode 100644 index 00000000000..24f6e15b3dd --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/grammar/scheduled_query/run_test.bat @@ -0,0 +1,5 @@ +echo off +echo Testing ScheduleQueryCondition +call antlr ScheduleQueryCondition.g4 +call javac Schedule*.java +call grun ScheduleQueryCondition expression test.txt -gui diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/__init__.py b/src/scheduled-query/azext_scheduled_query/tests/__init__.py similarity index 100% rename from src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/__init__.py rename to src/scheduled-query/azext_scheduled_query/tests/__init__.py diff --git a/src/scheduled-query/azext_scheduled_query/tests/latest/__init__.py b/src/scheduled-query/azext_scheduled_query/tests/latest/__init__.py new file mode 100644 index 00000000000..99c0f28cd71 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/tests/latest/__init__.py @@ -0,0 +1,5 @@ +# ----------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# ----------------------------------------------------------------------------- diff --git a/src/scheduled-query/azext_scheduled_query/tests/latest/recordings/test_scheduled_query.yaml b/src/scheduled-query/azext_scheduled_query/tests/latest/recordings/test_scheduled_query.yaml new file mode 100644 index 00000000000..0b30bfeb39a --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/tests/latest/recordings/test_scheduled_query.yaml @@ -0,0 +1,1960 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001","name":"cli_test_scheduled_query000001","type":"Microsoft.Resources/resourceGroups","location":"eastus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-24T10:31:58Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '428' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:32:04 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.22.0 + method: GET + uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/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 \"CentOS\": + {\n \"publisher\": \"OpenLogic\",\n \"offer\": \"CentOS\",\n + \ \"sku\": \"7.5\",\n \"version\": \"latest\"\n },\n + \ \"CoreOS\": {\n \"publisher\": \"CoreOS\",\n \"offer\": + \"CoreOS\",\n \"sku\": \"Stable\",\n \"version\": \"latest\"\n + \ },\n \"Debian\": {\n \"publisher\": \"Debian\",\n + \ \"offer\": \"debian-10\",\n \"sku\": \"10\",\n \"version\": + \"latest\"\n },\n \"openSUSE-Leap\": {\n \"publisher\": + \"SUSE\",\n \"offer\": \"openSUSE-Leap\",\n \"sku\": + \"42.3\",\n \"version\": \"latest\"\n },\n \"RHEL\": + {\n \"publisher\": \"RedHat\",\n \"offer\": \"RHEL\",\n + \ \"sku\": \"7-LVM\",\n \"version\": \"latest\"\n },\n + \ \"SLES\": {\n \"publisher\": \"SUSE\",\n \"offer\": + \"SLES\",\n \"sku\": \"15\",\n \"version\": \"latest\"\n + \ },\n \"UbuntuLTS\": {\n \"publisher\": \"Canonical\",\n + \ \"offer\": \"UbuntuServer\",\n \"sku\": \"18.04-LTS\",\n + \ \"version\": \"latest\"\n }\n },\n \"Windows\": + {\n \"Win2019Datacenter\": {\n \"publisher\": \"MicrosoftWindowsServer\",\n + \ \"offer\": \"WindowsServer\",\n \"sku\": \"2019-Datacenter\",\n + \ \"version\": \"latest\"\n },\n \"Win2016Datacenter\": + {\n \"publisher\": \"MicrosoftWindowsServer\",\n \"offer\": + \"WindowsServer\",\n \"sku\": \"2016-Datacenter\",\n \"version\": + \"latest\"\n },\n \"Win2012R2Datacenter\": {\n \"publisher\": + \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\",\n \"sku\": + \"2012-R2-Datacenter\",\n \"version\": \"latest\"\n },\n + \ \"Win2012Datacenter\": {\n \"publisher\": \"MicrosoftWindowsServer\",\n + \ \"offer\": \"WindowsServer\",\n \"sku\": \"2012-Datacenter\",\n + \ \"version\": \"latest\"\n },\n \"Win2008R2SP1\": + {\n \"publisher\": \"MicrosoftWindowsServer\",\n \"offer\": + \"WindowsServer\",\n \"sku\": \"2008-R2-SP1\",\n \"version\": + \"latest\"\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: + - '2501' + content-security-policy: + - default-src 'none'; style-src 'unsafe-inline'; sandbox + content-type: + - text/plain; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:32:05 GMT + etag: + - W/"540044b4084c3c314537f1baa1770f248628b2bc9ba0328f1004c33862e049da" + expires: + - Thu, 24 Sep 2020 10:37:05 GMT + source-age: + - '212' + strict-transport-security: + - max-age=31536000 + vary: + - Authorization,Accept-Encoding, Accept-Encoding + via: + - 1.1 varnish (Varnish/6.0) + - 1.1 varnish + x-cache: + - HIT, HIT + x-cache-hits: + - 1, 2 + x-content-type-options: + - nosniff + x-fastly-request-id: + - 7d1007c9d545f3a69ee8008f35cb7d6b57b43706 + x-frame-options: + - deny + x-github-request-id: + - 758A:7A4A:D8BFE6:E306EC:5F6C7165 + x-served-by: + - cache-sin18023-SIN + x-timer: + - S1600943525.434000,VS0,VE0 + 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: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/virtualNetworks?api-version=2018-01-01 + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:32:05 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: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002?api-version=2020-03-01-preview + response: + body: + string: '{"error":{"code":"ResourceNotFound","message":"The Resource ''Microsoft.OperationalInsights/workspaces/clitest000002'' + under resource group ''cli_test_scheduled_query000001'' was not found. For + more details please go to https://aka.ms/ARMResourceNotFoundFix"}}' + headers: + cache-control: + - no-cache + content-length: + - '308' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:32:06 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-failure-cause: + - gateway + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001","name":"cli_test_scheduled_query000001","type":"Microsoft.Resources/resourceGroups","location":"eastus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-24T10:31:58Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '428' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:32:06 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: '{"location": "eastus", "properties": {"sku": {"name": "PerGB2018"}, "retentionInDays": + 30, "publicNetworkAccessForIngestion": "Enabled", "publicNetworkAccessForQuery": + "Enabled"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + Content-Length: + - '179' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002?api-version=2020-03-01-preview + response: + body: + string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": + \"296b43f3-dba9-4a7c-ad4d-aa1d1782cbc4\",\r\n \"provisioningState\": \"Creating\",\r\n + \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": + 3000,\r\n \"lastSkuUpdate\": \"Thu, 24 Sep 2020 10:32:14 GMT\"\r\n },\r\n + \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n + \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": + true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n + \ \"quotaNextResetTime\": \"Thu, 24 Sep 2020 19:00:00 GMT\",\r\n \"dataIngestionStatus\": + \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n + \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": + \"Thu, 24 Sep 2020 10:32:14 GMT\",\r\n \"modifiedDate\": \"Thu, 24 Sep + 2020 10:32:14 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n + \ \"name\": \"clitest000002\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n + \ \"location\": \"eastus\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1177' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 10:32:16 GMT + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + x-powered-by: + - ASP.NET + - ASP.NET + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002?api-version=2020-03-01-preview + response: + body: + string: "{\r\n \"properties\": {\r\n \"source\": \"Azure\",\r\n \"customerId\": + \"296b43f3-dba9-4a7c-ad4d-aa1d1782cbc4\",\r\n \"provisioningState\": \"Succeeded\",\r\n + \ \"sku\": {\r\n \"name\": \"pergb2018\",\r\n \"maxCapacityReservationLevel\": + 3000,\r\n \"lastSkuUpdate\": \"Thu, 24 Sep 2020 10:32:14 GMT\"\r\n },\r\n + \ \"retentionInDays\": 30,\r\n \"features\": {\r\n \"legacy\": 0,\r\n + \ \"searchVersion\": 1,\r\n \"enableLogAccessUsingOnlyResourcePermissions\": + true\r\n },\r\n \"workspaceCapping\": {\r\n \"dailyQuotaGb\": -1.0,\r\n + \ \"quotaNextResetTime\": \"Thu, 24 Sep 2020 19:00:00 GMT\",\r\n \"dataIngestionStatus\": + \"RespectQuota\"\r\n },\r\n \"publicNetworkAccessForIngestion\": \"Enabled\",\r\n + \ \"publicNetworkAccessForQuery\": \"Enabled\",\r\n \"createdDate\": + \"Thu, 24 Sep 2020 10:32:14 GMT\",\r\n \"modifiedDate\": \"Thu, 24 Sep + 2020 10:32:15 GMT\"\r\n },\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.operationalinsights/workspaces/clitest000002\",\r\n + \ \"name\": \"clitest000002\",\r\n \"type\": \"Microsoft.OperationalInsights/workspaces\",\r\n + \ \"location\": \"eastus\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1178' + content-type: + - application/json + date: + - Thu, 24 Sep 2020 10:32:47 GMT + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + - Microsoft-IIS/10.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-powered-by: + - ASP.NET + - ASP.NET + 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": {"workspaceId": {"type": "securestring", + "metadata": {"description": "Secure workspaceId"}}}, "variables": {}, "resources": + [{"name": "myvm1VNET", "type": "Microsoft.Network/virtualNetworks", "location": + "eastus", "apiVersion": "2015-06-15", "dependsOn": [], "tags": {}, "properties": + {"addressSpace": {"addressPrefixes": ["10.0.0.0/16"]}, "subnets": [{"name": + "myvm1Subnet", "properties": {"addressPrefix": "10.0.0.0/24"}}]}}, {"type": + "Microsoft.Network/networkSecurityGroups", "name": "myvm1NSG", "apiVersion": + "2015-06-15", "location": "eastus", "tags": {}, "dependsOn": []}, {"apiVersion": + "2018-01-01", "type": "Microsoft.Network/publicIPAddresses", "name": "myvm1PublicIP", + "location": "eastus", "tags": {}, "dependsOn": [], "properties": {"publicIPAllocationMethod": + null}}, {"apiVersion": "2015-06-15", "type": "Microsoft.Network/networkInterfaces", + "name": "myvm1VMNic", "location": "eastus", "tags": {}, "dependsOn": ["Microsoft.Network/virtualNetworks/myvm1VNET", + "Microsoft.Network/networkSecurityGroups/myvm1NSG", "Microsoft.Network/publicIpAddresses/myvm1PublicIP"], + "properties": {"ipConfigurations": [{"name": "ipconfigmyvm1", "properties": + {"privateIPAllocationMethod": "Dynamic", "subnet": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/virtualNetworks/myvm1VNET/subnets/myvm1Subnet"}, + "publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/publicIPAddresses/myvm1PublicIP"}}}], + "networkSecurityGroup": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkSecurityGroups/myvm1NSG"}}}, + {"type": "Microsoft.Compute/virtualMachines/extensions", "apiVersion": "2018-10-01", + "properties": {"publisher": "Microsoft.EnterpriseCloud.Monitoring", "type": + "OmsAgentForLinux", "typeHandlerVersion": "1.0", "autoUpgradeMinorVersion": + "true", "settings": {"workspaceId": "[reference(parameters(''workspaceId''), + ''2015-11-01-preview'').customerId]", "stopOnMultipleConnections": "true"}, + "protectedSettings": {"workspaceKey": "[listKeys(parameters(''workspaceId''), + ''2015-11-01-preview'').primarySharedKey]"}}, "name": "myvm1/OmsAgentForLinux", + "location": "eastus", "dependsOn": ["Microsoft.Compute/virtualMachines/myvm1"]}, + {"apiVersion": "2020-06-01", "type": "Microsoft.Compute/virtualMachines", "name": + "myvm1", "location": "eastus", "tags": {}, "dependsOn": ["Microsoft.Network/networkInterfaces/myvm1VMNic"], + "properties": {"hardwareProfile": {"vmSize": "Standard_DS1_v2"}, "networkProfile": + {"networkInterfaces": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic"}]}, + "storageProfile": {"osDisk": {"createOption": "fromImage", "name": null, "caching": + "ReadWrite", "managedDisk": {"storageAccountType": null}}, "imageReference": + {"publisher": "Canonical", "offer": "UbuntuServer", "sku": "18.04-LTS", "version": + "latest"}}, "osProfile": {"computerName": "myvm1", "adminUsername": "fanqiu", + "linuxConfiguration": {"disablePasswordAuthentication": true, "ssh": {"publicKeys": + [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/6lyAsWCEt5FlwlP4E2dBLTrJlQ8F8eM7P+N60KN/G59ytk5e1hUZ9BsCLOQ+Ebh9Fq/ck2k2AbOPhTk+PcUOMDSTkxPIXcA/zUtfKOV9VHf4urkVFy+4mN9+xcs7NlAbyj0ZImvy3SIsdlL4dO3FWJ81QtRUOgdYQq5cBXi0eExClt0Hfjq4T4FqU0GKhjOnaO/MLZ7gf0UfWdqmYqUWOE5EZKdml1PG/LeYG5y7oXQ1uCz9wwsa8DO3PzUSzCw8RK1/6MJQIyBbytz2LzXSidHj8tHFkxt9Flhh+CeeoDTJYm13Jvic9DxrqFY3Px7+9Bt6D0exV+USneFGB2LRJk2Bm6Nz6/FYlyXUAgZbZx2w3ZSXhaiNoW7UfD4GJ5E9O3F2T0atN/IgW2IHp1wNdr8AAT18YqkN69iBSL1Rx9eel/V6YYjhG7F6dTHCsJUB1qQWoCEaWwiRw57fsrO2XRzF79QK96Oz4VkLZvJj/PhR4ez+/tsjIT5TKWKGHstQ4VNvvuUhbYt+SI3aLxg8EuEgmvfaJ3k77+ceb7Sy3WsWHyRDgmypHe1ncYqFMONTwGcPO5snIH40C34eD5hy3t3myX8WVpDwcBrn44cqQ722Q6u6z/qEpC4sDsYCH9fp+7/PMGQWwwgdqf7Leqe4IKxIL+OxoXxUswat/6wzpQ== + fanqiu@microsoft.com\n", "path": "/home/fanqiu/.ssh/authorized_keys"}]}}}}}], + "outputs": {}}, "parameters": {"workspaceId": {"value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.operationalinsights/workspaces/clitest000002"}}, + "mode": "Incremental"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + Content-Length: + - '4730' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Resources/deployments/vm_deploy_59VhVEbW4oVL92t8k2wiXIbi7wzKm4PN","name":"vm_deploy_59VhVEbW4oVL92t8k2wiXIbi7wzKm4PN","type":"Microsoft.Resources/deployments","properties":{"templateHash":"2112431419068722003","parameters":{"workspaceId":{"type":"SecureString"}},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2020-09-24T10:32:53.3647829Z","duration":"PT3.3316277S","correlationId":"808e51ca-42dc-4c7e-9b23-0b9886f1f3bb","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"virtualNetworks","locations":["eastus"]},{"resourceType":"networkSecurityGroups","locations":["eastus"]},{"resourceType":"publicIPAddresses","locations":["eastus"]},{"resourceType":"networkInterfaces","locations":["eastus"]}]},{"namespace":"Microsoft.Compute","resourceTypes":[{"resourceType":"virtualMachines/extensions","locations":["eastus"]},{"resourceType":"virtualMachines","locations":["eastus"]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/virtualNetworks/myvm1VNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"myvm1VNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkSecurityGroups/myvm1NSG","resourceType":"Microsoft.Network/networkSecurityGroups","resourceName":"myvm1NSG"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/publicIPAddresses/myvm1PublicIP","resourceType":"Microsoft.Network/publicIPAddresses","resourceName":"myvm1PublicIP"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic","resourceType":"Microsoft.Network/networkInterfaces","resourceName":"myvm1VMNic"},{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1","resourceType":"Microsoft.Compute/virtualMachines","resourceName":"myvm1"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/microsoft.operationalinsights/workspaces/clitest000002","resourceType":"microsoft.operationalinsights/workspaces","resourceName":"clitest000002","apiVersion":"2015-11-01-preview"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/microsoft.operationalinsights/workspaces/clitest000002","resourceType":"microsoft.operationalinsights/workspaces","resourceName":"clitest000002","actionName":"listKeys","apiVersion":"2015-11-01-preview"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1/extensions/OmsAgentForLinux","resourceType":"Microsoft.Compute/virtualMachines/extensions","resourceName":"myvm1/OmsAgentForLinux"},{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic","resourceType":"Microsoft.Network/networkInterfaces","resourceName":"myvm1VMNic"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1","resourceType":"Microsoft.Compute/virtualMachines","resourceName":"myvm1"}]}}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.Resources/deployments/vm_deploy_59VhVEbW4oVL92t8k2wiXIbi7wzKm4PN/operationStatuses/08586006633154444848?api-version=2020-06-01 + cache-control: + - no-cache + content-length: + - '4226' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:32:55 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: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586006633154444848?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:33:25 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: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586006633154444848?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:33:55 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: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586006633154444848?api-version=2020-06-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:34:27 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: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08586006633154444848?api-version=2020-06-01 + response: + body: + string: '{"status":"Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:34:57 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: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Resources/deployments/vm_deploy_59VhVEbW4oVL92t8k2wiXIbi7wzKm4PN","name":"vm_deploy_59VhVEbW4oVL92t8k2wiXIbi7wzKm4PN","type":"Microsoft.Resources/deployments","properties":{"templateHash":"2112431419068722003","parameters":{"workspaceId":{"type":"SecureString"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2020-09-24T10:34:54.3345167Z","duration":"PT2M4.3013615S","correlationId":"808e51ca-42dc-4c7e-9b23-0b9886f1f3bb","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"virtualNetworks","locations":["eastus"]},{"resourceType":"networkSecurityGroups","locations":["eastus"]},{"resourceType":"publicIPAddresses","locations":["eastus"]},{"resourceType":"networkInterfaces","locations":["eastus"]}]},{"namespace":"Microsoft.Compute","resourceTypes":[{"resourceType":"virtualMachines/extensions","locations":["eastus"]},{"resourceType":"virtualMachines","locations":["eastus"]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/virtualNetworks/myvm1VNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"myvm1VNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkSecurityGroups/myvm1NSG","resourceType":"Microsoft.Network/networkSecurityGroups","resourceName":"myvm1NSG"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/publicIPAddresses/myvm1PublicIP","resourceType":"Microsoft.Network/publicIPAddresses","resourceName":"myvm1PublicIP"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic","resourceType":"Microsoft.Network/networkInterfaces","resourceName":"myvm1VMNic"},{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1","resourceType":"Microsoft.Compute/virtualMachines","resourceName":"myvm1"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/microsoft.operationalinsights/workspaces/clitest000002","resourceType":"microsoft.operationalinsights/workspaces","resourceName":"clitest000002","apiVersion":"2015-11-01-preview"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/microsoft.operationalinsights/workspaces/clitest000002","resourceType":"microsoft.operationalinsights/workspaces","resourceName":"clitest000002","actionName":"listKeys","apiVersion":"2015-11-01-preview"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1/extensions/OmsAgentForLinux","resourceType":"Microsoft.Compute/virtualMachines/extensions","resourceName":"myvm1/OmsAgentForLinux"},{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic","resourceType":"Microsoft.Network/networkInterfaces","resourceName":"myvm1VMNic"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1","resourceType":"Microsoft.Compute/virtualMachines","resourceName":"myvm1"}],"outputs":{},"outputResources":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1/extensions/OmsAgentForLinux"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkSecurityGroups/myvm1NSG"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/publicIPAddresses/myvm1PublicIP"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/virtualNetworks/myvm1VNET"}]}}' + headers: + cache-control: + - no-cache + content-length: + - '5532' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:34:58 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: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-compute/13.1.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1?$expand=instanceView&api-version=2020-06-01 + response: + body: + string: "{\r\n \"name\": \"myvm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1\",\r\n + \ \"type\": \"Microsoft.Compute/virtualMachines\",\r\n \"location\": \"eastus\",\r\n + \ \"tags\": {},\r\n \"properties\": {\r\n \"vmId\": \"df09d5b7-af06-4a21-a020-e0bcebd3468a\",\r\n + \ \"hardwareProfile\": {\r\n \"vmSize\": \"Standard_DS1_v2\"\r\n },\r\n + \ \"storageProfile\": {\r\n \"imageReference\": {\r\n \"publisher\": + \"Canonical\",\r\n \"offer\": \"UbuntuServer\",\r\n \"sku\": + \"18.04-LTS\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": + \"18.04.202009220\"\r\n },\r\n \"osDisk\": {\r\n \"osType\": + \"Linux\",\r\n \"name\": \"myvm1_disk1_c1a9939f76ec4d59897be9a66f21f951\",\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_SCHEDULED_QUERYGRYLIBYQRLNXZL27IKUY4ADHSARWP4IQ3JTUTUUW7WS367VNRBG/providers/Microsoft.Compute/disks/myvm1_disk1_c1a9939f76ec4d59897be9a66f21f951\"\r\n + \ },\r\n \"diskSizeGB\": 30\r\n },\r\n \"dataDisks\": + []\r\n },\r\n \"osProfile\": {\r\n \"computerName\": \"myvm1\",\r\n + \ \"adminUsername\": \"fanqiu\",\r\n \"linuxConfiguration\": {\r\n + \ \"disablePasswordAuthentication\": true,\r\n \"ssh\": {\r\n + \ \"publicKeys\": [\r\n {\r\n \"path\": \"/home/fanqiu/.ssh/authorized_keys\",\r\n + \ \"keyData\": \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/6lyAsWCEt5FlwlP4E2dBLTrJlQ8F8eM7P+N60KN/G59ytk5e1hUZ9BsCLOQ+Ebh9Fq/ck2k2AbOPhTk+PcUOMDSTkxPIXcA/zUtfKOV9VHf4urkVFy+4mN9+xcs7NlAbyj0ZImvy3SIsdlL4dO3FWJ81QtRUOgdYQq5cBXi0eExClt0Hfjq4T4FqU0GKhjOnaO/MLZ7gf0UfWdqmYqUWOE5EZKdml1PG/LeYG5y7oXQ1uCz9wwsa8DO3PzUSzCw8RK1/6MJQIyBbytz2LzXSidHj8tHFkxt9Flhh+CeeoDTJYm13Jvic9DxrqFY3Px7+9Bt6D0exV+USneFGB2LRJk2Bm6Nz6/FYlyXUAgZbZx2w3ZSXhaiNoW7UfD4GJ5E9O3F2T0atN/IgW2IHp1wNdr8AAT18YqkN69iBSL1Rx9eel/V6YYjhG7F6dTHCsJUB1qQWoCEaWwiRw57fsrO2XRzF79QK96Oz4VkLZvJj/PhR4ez+/tsjIT5TKWKGHstQ4VNvvuUhbYt+SI3aLxg8EuEgmvfaJ3k77+ceb7Sy3WsWHyRDgmypHe1ncYqFMONTwGcPO5snIH40C34eD5hy3t3myX8WVpDwcBrn44cqQ722Q6u6z/qEpC4sDsYCH9fp+7/PMGQWwwgdqf7Leqe4IKxIL+OxoXxUswat/6wzpQ== + fanqiu@microsoft.com\\n\"\r\n }\r\n ]\r\n },\r\n + \ \"provisionVMAgent\": true,\r\n \"patchSettings\": {\r\n \"patchMode\": + \"ImageDefault\"\r\n }\r\n },\r\n \"secrets\": [],\r\n \"allowExtensionOperations\": + true,\r\n \"requireGuestProvisionSignal\": true\r\n },\r\n \"networkProfile\": + {\"networkInterfaces\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic\"}]},\r\n + \ \"provisioningState\": \"Succeeded\",\r\n \"instanceView\": {\r\n \"computerName\": + \"myvm1\",\r\n \"osName\": \"ubuntu\",\r\n \"osVersion\": \"18.04\",\r\n + \ \"vmAgent\": {\r\n \"vmAgentVersion\": \"2.2.49.2\",\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\": + \"2020-09-24T10:34:55+00:00\"\r\n }\r\n ],\r\n \"extensionHandlers\": + [\r\n {\r\n \"type\": \"Microsoft.EnterpriseCloud.Monitoring.OmsAgentForLinux\",\r\n + \ \"typeHandlerVersion\": \"1.13.15\",\r\n \"status\": + {\r\n \"code\": \"ProvisioningState/succeeded\",\r\n \"level\": + \"Info\",\r\n \"displayStatus\": \"Ready\",\r\n \"message\": + \"Plugin enabled\"\r\n }\r\n }\r\n ]\r\n },\r\n + \ \"disks\": [\r\n {\r\n \"name\": \"myvm1_disk1_c1a9939f76ec4d59897be9a66f21f951\",\r\n + \ \"statuses\": [\r\n {\r\n \"code\": \"ProvisioningState/succeeded\",\r\n + \ \"level\": \"Info\",\r\n \"displayStatus\": \"Provisioning + succeeded\",\r\n \"time\": \"2020-09-24T10:33:17.566953+00:00\"\r\n + \ }\r\n ]\r\n }\r\n ],\r\n \"extensions\": + [\r\n {\r\n \"name\": \"OmsAgentForLinux\",\r\n \"type\": + \"Microsoft.EnterpriseCloud.Monitoring.OmsAgentForLinux\",\r\n \"typeHandlerVersion\": + \"1.13.15\",\r\n \"statuses\": [\r\n {\r\n \"code\": + \"ProvisioningState/succeeded\",\r\n \"level\": \"Info\",\r\n + \ \"displayStatus\": \"Provisioning succeeded\",\r\n \"message\": + \"Enable succeeded\"\r\n }\r\n ]\r\n }\r\n ],\r\n + \ \"hyperVGeneration\": \"V1\",\r\n \"statuses\": [\r\n {\r\n + \ \"code\": \"ProvisioningState/succeeded\",\r\n \"level\": + \"Info\",\r\n \"displayStatus\": \"Provisioning succeeded\",\r\n + \ \"time\": \"2020-09-24T10:34:52.442054+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 },\r\n \"resources\": [\r\n {\r\n \"name\": + \"OmsAgentForLinux\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1/extensions/OmsAgentForLinux\",\r\n + \ \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": + \"eastus\",\r\n \"properties\": {\r\n \"autoUpgradeMinorVersion\": + true,\r\n \"provisioningState\": \"Succeeded\",\r\n \"publisher\": + \"Microsoft.EnterpriseCloud.Monitoring\",\r\n \"type\": \"OmsAgentForLinux\",\r\n + \ \"typeHandlerVersion\": \"1.0\",\r\n \"settings\": {\"workspaceId\":\"296b43f3-dba9-4a7c-ad4d-aa1d1782cbc4\",\"stopOnMultipleConnections\":\"true\"}\r\n + \ }\r\n }\r\n ]\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '5807' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:34:59 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/LowCostGet3Min;3992,Microsoft.Compute/LowCostGet30Min;31837 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic?api-version=2018-01-01 + response: + body: + string: "{\r\n \"name\": \"myvm1VMNic\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic\",\r\n + \ \"etag\": \"W/\\\"809d5b4a-058f-441b-a5fb-a87f8f0ac5f9\\\"\",\r\n \"location\": + \"eastus\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\": + \"Succeeded\",\r\n \"resourceGuid\": \"bd43e3b0-fb4e-4ed2-a3e1-c03fbad9ae66\",\r\n + \ \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfigmyvm1\",\r\n + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic/ipConfigurations/ipconfigmyvm1\",\r\n + \ \"etag\": \"W/\\\"809d5b4a-058f-441b-a5fb-a87f8f0ac5f9\\\"\",\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_scheduled_query000001/providers/Microsoft.Network/publicIPAddresses/myvm1PublicIP\"\r\n + \ },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/virtualNetworks/myvm1VNET/subnets/myvm1Subnet\"\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\": + \"kcaqlsbd1ccetktiuagtyc0zob.bx.internal.cloudapp.net\"\r\n },\r\n \"macAddress\": + \"00-0D-3A-9C-73-23\",\r\n \"enableAcceleratedNetworking\": false,\r\n + \ \"enableIPForwarding\": false,\r\n \"networkSecurityGroup\": {\r\n + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkSecurityGroups/myvm1NSG\"\r\n + \ },\r\n \"primary\": true,\r\n \"virtualMachine\": {\r\n \"id\": + \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1\"\r\n + \ }\r\n },\r\n \"type\": \"Microsoft.Network/networkInterfaces\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '2588' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:35:00 GMT + etag: + - W/"809d5b4a-058f-441b-a5fb-a87f8f0ac5f9" + 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: + - c67a2f2a-c744-45e5-945e-221a2a5fd0b0 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-network/12.0.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/publicIPAddresses/myvm1PublicIP?api-version=2018-01-01 + response: + body: + string: "{\r\n \"name\": \"myvm1PublicIP\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/publicIPAddresses/myvm1PublicIP\",\r\n + \ \"etag\": \"W/\\\"f1d180ae-7686-46b8-acdc-721fa02f5e7c\\\"\",\r\n \"location\": + \"eastus\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\": + \"Succeeded\",\r\n \"resourceGuid\": \"39eff541-ffd9-48bf-b167-af77f8f1d69b\",\r\n + \ \"ipAddress\": \"52.170.112.184\",\r\n \"publicIPAddressVersion\": + \"IPv4\",\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"idleTimeoutInMinutes\": + 4,\r\n \"ipTags\": [],\r\n \"ipConfiguration\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Network/networkInterfaces/myvm1VMNic/ipConfigurations/ipconfigmyvm1\"\r\n + \ }\r\n },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n + \ \"sku\": {\r\n \"name\": \"Basic\"\r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1006' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:35:00 GMT + etag: + - W/"f1d180ae-7686-46b8-acdc-721fa02f5e7c" + 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: + - 40ae930b-b88b-416f-8ee0-06bd3a69cd0b + status: + code: 200 + message: OK +- request: + body: '{"properties": {"state": "Enabled"}, "kind": "LinuxPerformanceCollection"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + Content-Length: + - '74' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/dataSources/DataSource_LinuxPerformanceCollection_88888888-0000-0000-0000-000000000001?api-version=2020-03-01-preview + response: + body: + string: '{"kind":"LinuxPerformanceCollection","properties":{"state":"Enabled"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/datasources/DataSource_LinuxPerformanceCollection_88888888-0000-0000-0000-000000000001","etag":"W/\"datetime''2020-09-24T10%3A35%3A03.1964515Z''\"","name":"DataSource_LinuxPerformanceCollection_88888888-0000-0000-0000-000000000001","type":"Microsoft.OperationalInsights/workspaces/datasources"}' + headers: + cache-control: + - no-cache + content-length: + - '583' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:35:02 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.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' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"properties": {"instanceName": "*", "intervalSeconds": 10, "objectName": + "Memory", "performanceCounters": [{"counterName": "Available MBytes Memory"}, + {"counterName": "% Used Memory"}, {"counterName": "% Used Swap Space"}]}, "kind": + "LinuxPerformanceObject"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + Content-Length: + - '259' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/dataSources/DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000002?api-version=2020-03-01-preview + response: + body: + string: '{"kind":"LinuxPerformanceObject","properties":{"instanceName":"*","intervalSeconds":10,"objectName":"Memory","performanceCounters":[{"counterName":"Available + MBytes Memory"},{"counterName":"% Used Memory"},{"counterName":"% Used Swap + Space"}]},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/datasources/DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000002","etag":"W/\"datetime''2020-09-24T10%3A35%3A03.8742088Z''\"","name":"DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000002","type":"Microsoft.OperationalInsights/workspaces/datasources"}' + headers: + cache-control: + - no-cache + content-length: + - '749' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:35:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.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: + - '1197' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"properties": {"instanceName": "*", "intervalSeconds": 10, "objectName": + "Processor", "performanceCounters": [{"counterName": "% Processor Time"}, {"counterName": + "% Privileged Time"}]}, "kind": "LinuxPerformanceObject"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + Content-Length: + - '221' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/dataSources/DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000003?api-version=2020-03-01-preview + response: + body: + string: '{"kind":"LinuxPerformanceObject","properties":{"instanceName":"*","intervalSeconds":10,"objectName":"Processor","performanceCounters":[{"counterName":"% + Processor Time"},{"counterName":"% Privileged Time"}]},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/datasources/DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000003","etag":"W/\"datetime''2020-09-24T10%3A35%3A05.6804123Z''\"","name":"DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000003","type":"Microsoft.OperationalInsights/workspaces/datasources"}' + headers: + cache-control: + - no-cache + content-length: + - '713' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:35:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.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: + - '1196' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"properties": {"instanceName": "*", "intervalSeconds": 10, "objectName": + "Logical Disk", "performanceCounters": [{"counterName": "% Used Inodes"}, {"counterName": + "Free Megabytes"}, {"counterName": "% Used Space"}, {"counterName": "Disk Transfers/sec"}, + {"counterName": "Disk Reads/sec"}, {"counterName": "Disk Writes/sec"}]}, "kind": + "LinuxPerformanceObject"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + Content-Length: + - '361' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/dataSources/DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000004?api-version=2020-03-01-preview + response: + body: + string: '{"kind":"LinuxPerformanceObject","properties":{"instanceName":"*","intervalSeconds":10,"objectName":"Logical + Disk","performanceCounters":[{"counterName":"% Used Inodes"},{"counterName":"Free + Megabytes"},{"counterName":"% Used Space"},{"counterName":"Disk Transfers/sec"},{"counterName":"Disk + Reads/sec"},{"counterName":"Disk Writes/sec"}]},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/datasources/DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000004","etag":"W/\"datetime''2020-09-24T10%3A35%3A06.3463496Z''\"","name":"DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000004","type":"Microsoft.OperationalInsights/workspaces/datasources"}' + headers: + cache-control: + - no-cache + content-length: + - '845' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:35:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.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: + - '1195' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"properties": {"instanceName": "*", "intervalSeconds": 10, "objectName": + "Network", "performanceCounters": [{"counterName": "Total Bytes Transmitted"}, + {"counterName": "Total Bytes Received"}]}, "kind": "LinuxPerformanceObject"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + Content-Length: + - '229' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/dataSources/DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000005?api-version=2020-03-01-preview + response: + body: + string: '{"kind":"LinuxPerformanceObject","properties":{"instanceName":"*","intervalSeconds":10,"objectName":"Network","performanceCounters":[{"counterName":"Total + Bytes Transmitted"},{"counterName":"Total Bytes Received"}]},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/datasources/DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000005","etag":"W/\"datetime''2020-09-24T10%3A35%3A07.0968828Z''\"","name":"DataSource_LinuxPerformanceObject_88888888-0000-0000-0000-000000000005","type":"Microsoft.OperationalInsights/workspaces/datasources"}' + headers: + cache-control: + - no-cache + content-length: + - '721' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:35:07 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.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: + - '1194' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"properties": {"state": "Enabled"}, "kind": "LinuxSyslogCollection"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + Content-Length: + - '69' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/dataSources/DataSource_LinuxSyslogCollection_88888888-0000-0000-0000-000000000006?api-version=2020-03-01-preview + response: + body: + string: '{"kind":"LinuxSyslogCollection","properties":{"state":"Enabled"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/datasources/DataSource_LinuxSyslogCollection_88888888-0000-0000-0000-000000000006","etag":"W/\"datetime''2020-09-24T10%3A35%3A07.8727513Z''\"","name":"DataSource_LinuxSyslogCollection_88888888-0000-0000-0000-000000000006","type":"Microsoft.OperationalInsights/workspaces/datasources"}' + headers: + cache-control: + - no-cache + content-length: + - '568' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:35:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.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: + - '1193' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"properties": {"syslogName": "syslog", "syslogSeverities": [{"severity": + "notice"}, {"severity": "info"}, {"severity": "debug"}]}, "kind": "LinuxSyslog"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + Content-Length: + - '154' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --image --nsg-rule --workspace --generate-ssh-keys + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-loganalytics/0.7.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/dataSources/DataSource_LinuxSyslog_88888888-0000-0000-0000-000000000007?api-version=2020-03-01-preview + response: + body: + string: '{"kind":"LinuxSyslog","properties":{"syslogName":"syslog","syslogSeverities":[{"severity":"notice"},{"severity":"info"},{"severity":"debug"}]},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.OperationalInsights/workspaces/clitest000002/datasources/DataSource_LinuxSyslog_88888888-0000-0000-0000-000000000007","etag":"W/\"datetime''2020-09-24T10%3A35%3A08.6280169Z''\"","name":"DataSource_LinuxSyslog_88888888-0000-0000-0000-000000000007","type":"Microsoft.OperationalInsights/workspaces/datasources"}' + headers: + cache-control: + - no-cache + content-length: + - '626' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:35:09 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.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: + - '1192' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - monitor scheduled-query create + Connection: + - keep-alive + ParameterSetName: + - -g -n --scopes --condition --description + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001","name":"cli_test_scheduled_query000001","type":"Microsoft.Resources/resourceGroups","location":"eastus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-24T10:31:58Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '428' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:38: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: '{"location": "eastus", "properties": {"description": "Test rule", "severity": + 2, "enabled": true, "scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1"], + "evaluationFrequency": "PT5M", "windowSize": "PT5M", "criteria": {"allOf": [{"query": + "union Event, Syslog | where TimeGenerated > ago(1h)", "timeAggregation": "Count", + "dimensions": [], "operator": "GreaterThan", "threshold": 360, "failingPeriods": + {"numberOfEvaluationPeriods": 1, "minFailingPeriodsToAlert": 1}}]}, "muteActionsDuration": + "PT30M"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - monitor scheduled-query create + Connection: + - keep-alive + Content-Length: + - '656' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n --scopes --condition --description + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-monitor/2020-05-01-preview Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Insights/scheduledQueryRules/sq01?api-version=2020-05-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq01","name":"sq01","type":"microsoft.insights/scheduledqueryrules","location":"eastus","properties":{"description":"Test + rule","severity":2,"enabled":true,"evaluationFrequency":"PT5M","scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1"],"windowSize":"PT5M","criteria":{"allOf":[{"query":"union + Event, Syslog | where TimeGenerated > ago(1h)","timeAggregation":"Count","dimensions":[],"operator":"GreaterThan","threshold":360.0,"failingPeriods":{"numberOfEvaluationPeriods":1,"minFailingPeriodsToAlert":1}}]},"muteActionsDuration":"PT30M"}}' + headers: + cache-control: + - no-cache + content-length: + - '891' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:38:27 GMT + expires: + - '-1' + location: + - /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq01 + pragma: + - no-cache + server: + - Kestrel + 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: + - monitor scheduled-query create + Connection: + - keep-alive + ParameterSetName: + - -g -n --scopes --condition --description + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001","name":"cli_test_scheduled_query000001","type":"Microsoft.Resources/resourceGroups","location":"eastus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-24T10:31:58Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '428' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:38:27 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: '{"location": "eastus", "properties": {"description": "Test rule", "severity": + 2, "enabled": true, "scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001"], + "evaluationFrequency": "PT5M", "windowSize": "PT5M", "criteria": {"allOf": [{"query": + "union Event, Syslog | where TimeGenerated > ago(1h)", "timeAggregation": "Count", + "resourceIdColumn": "_ResourceId", "dimensions": [], "operator": "GreaterThan", + "threshold": 360, "failingPeriods": {"numberOfEvaluationPeriods": 1, "minFailingPeriodsToAlert": + 1}}]}, "muteActionsDuration": "PT30M"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - monitor scheduled-query create + Connection: + - keep-alive + Content-Length: + - '641' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n --scopes --condition --description + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-monitor/2020-05-01-preview Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Insights/scheduledQueryRules/sq02?api-version=2020-05-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq02","name":"sq02","type":"microsoft.insights/scheduledqueryrules","location":"eastus","properties":{"description":"Test + rule","severity":2,"enabled":true,"evaluationFrequency":"PT5M","scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001"],"windowSize":"PT5M","criteria":{"allOf":[{"query":"union + Event, Syslog | where TimeGenerated > ago(1h)","timeAggregation":"Count","dimensions":[],"resourceIdColumn":"_ResourceId","operator":"GreaterThan","threshold":360.0,"failingPeriods":{"numberOfEvaluationPeriods":1,"minFailingPeriodsToAlert":1}}]},"muteActionsDuration":"PT30M"}}' + headers: + cache-control: + - no-cache + content-length: + - '874' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:38:45 GMT + expires: + - '-1' + location: + - /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq02 + pragma: + - no-cache + server: + - Kestrel + 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: + - monitor scheduled-query update + Connection: + - keep-alive + ParameterSetName: + - -g -n --condition --description --severity --disabled --evaluation-frequency + --window-size + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-monitor/2020-05-01-preview Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Insights/scheduledQueryRules/sq01?api-version=2020-05-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq01","name":"sq01","type":"microsoft.insights/scheduledqueryrules","location":"eastus","properties":{"description":"Test + rule","severity":2,"enabled":true,"evaluationFrequency":"PT5M","scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1"],"windowSize":"PT5M","criteria":{"allOf":[{"query":"union + Event, Syslog | where TimeGenerated > ago(1h)","timeAggregation":"Count","dimensions":[],"operator":"GreaterThan","threshold":360.0,"failingPeriods":{"numberOfEvaluationPeriods":1,"minFailingPeriodsToAlert":1}}]},"muteActionsDuration":"PT30M"}}' + headers: + cache-control: + - no-cache + content-length: + - '891' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:38:46 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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": "eastus", "properties": {"description": "Test rule 2", "severity": + 4, "enabled": false, "scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1"], + "evaluationFrequency": "PT10M", "windowSize": "PT10M", "criteria": {"allOf": + [{"query": "union Event | where TimeGenerated > ago(2h)", "timeAggregation": + "Count", "resourceIdColumn": "_ResourceId", "dimensions": [], "operator": "LessThan", + "threshold": 260, "failingPeriods": {"numberOfEvaluationPeriods": 3, "minFailingPeriodsToAlert": + 2}}]}, "muteActionsDuration": "PT30M"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - monitor scheduled-query update + Connection: + - keep-alive + Content-Length: + - '685' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n --condition --description --severity --disabled --evaluation-frequency + --window-size + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-monitor/2020-05-01-preview Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Insights/scheduledQueryRules/sq01?api-version=2020-05-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq01","name":"sq01","type":"microsoft.insights/scheduledqueryrules","location":"eastus","properties":{"description":"Test + rule 2","severity":4,"enabled":false,"evaluationFrequency":"PT10M","scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1"],"windowSize":"PT10M","criteria":{"allOf":[{"query":"union + Event | where TimeGenerated > ago(2h)","timeAggregation":"Count","dimensions":[],"resourceIdColumn":"_ResourceId","operator":"LessThan","threshold":260.0,"failingPeriods":{"numberOfEvaluationPeriods":3,"minFailingPeriodsToAlert":2}}]},"muteActionsDuration":"PT30M"}}' + headers: + cache-control: + - no-cache + content-length: + - '918' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:38:51 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - monitor scheduled-query show + Connection: + - keep-alive + ParameterSetName: + - -g -n + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-monitor/2020-05-01-preview Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Insights/scheduledQueryRules/sq01?api-version=2020-05-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq01","name":"sq01","type":"microsoft.insights/scheduledqueryrules","location":"eastus","properties":{"description":"Test + rule 2","severity":4,"enabled":false,"evaluationFrequency":"PT10M","scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1"],"windowSize":"PT10M","criteria":{"allOf":[{"query":"union + Event | where TimeGenerated > ago(2h)","timeAggregation":"Count","dimensions":[],"resourceIdColumn":"_ResourceId","operator":"LessThan","threshold":260.0,"failingPeriods":{"numberOfEvaluationPeriods":3,"minFailingPeriodsToAlert":2}}]},"muteActionsDuration":"PT30M"}}' + headers: + cache-control: + - no-cache + content-length: + - '918' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:38:52 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - monitor scheduled-query list + Connection: + - keep-alive + ParameterSetName: + - -g + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-monitor/2020-05-01-preview Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Insights/scheduledQueryRules?api-version=2020-05-01-preview + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq01","name":"sq01","type":"microsoft.insights/scheduledqueryrules","location":"eastus","properties":{"description":"Test + rule 2","severity":4,"enabled":false,"evaluationFrequency":"PT10M","scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1"],"windowSize":"PT10M","criteria":{"allOf":[{"query":"union + Event | where TimeGenerated > ago(2h)","timeAggregation":"Count","dimensions":[],"resourceIdColumn":"_ResourceId","operator":"LessThan","threshold":260.0,"failingPeriods":{"numberOfEvaluationPeriods":3,"minFailingPeriodsToAlert":2}}]},"muteActionsDuration":"PT30M"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq02","name":"sq02","type":"microsoft.insights/scheduledqueryrules","location":"eastus","properties":{"description":"Test + rule","severity":2,"enabled":true,"evaluationFrequency":"PT5M","scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001"],"windowSize":"PT5M","criteria":{"allOf":[{"query":"union + Event, Syslog | where TimeGenerated > ago(1h)","timeAggregation":"Count","dimensions":[],"resourceIdColumn":"_ResourceId","operator":"GreaterThan","threshold":360.0,"failingPeriods":{"numberOfEvaluationPeriods":1,"minFailingPeriodsToAlert":1}}]},"muteActionsDuration":"PT30M"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '1805' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:38:53 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - monitor scheduled-query list + Connection: + - keep-alive + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-monitor/2020-05-01-preview Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Insights/scheduledQueryRules?api-version=2020-05-01-preview + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq01","name":"sq01","type":"microsoft.insights/scheduledqueryrules","location":"eastus","properties":{"description":"Test + rule 2","severity":4,"enabled":false,"evaluationFrequency":"PT10M","scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Compute/virtualMachines/myvm1"],"windowSize":"PT10M","criteria":{"allOf":[{"query":"union + Event | where TimeGenerated > ago(2h)","timeAggregation":"Count","dimensions":[],"resourceIdColumn":"_ResourceId","operator":"LessThan","threshold":260.0,"failingPeriods":{"numberOfEvaluationPeriods":3,"minFailingPeriodsToAlert":2}}]},"muteActionsDuration":"PT30M"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_scheduled_query000001/providers/microsoft.insights/scheduledqueryrules/sq02","name":"sq02","type":"microsoft.insights/scheduledqueryrules","location":"eastus","properties":{"description":"Test + rule","severity":2,"enabled":true,"evaluationFrequency":"PT5M","scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001"],"windowSize":"PT5M","criteria":{"allOf":[{"query":"union + Event, Syslog | where TimeGenerated > ago(1h)","timeAggregation":"Count","dimensions":[],"resourceIdColumn":"_ResourceId","operator":"GreaterThan","threshold":360.0,"failingPeriods":{"numberOfEvaluationPeriods":1,"minFailingPeriodsToAlert":1}}]},"muteActionsDuration":"PT30M"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '1805' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:38:57 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-original-request-ids: + - '' + - '' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - monitor scheduled-query delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -g -n -y + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-monitor/2020-05-01-preview Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Insights/scheduledQueryRules/sq01?api-version=2020-05-01-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Thu, 24 Sep 2020 10:39:11 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - monitor scheduled-query show + Connection: + - keep-alive + ParameterSetName: + - -g -n + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-monitor/2020-05-01-preview Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_scheduled_query000001/providers/Microsoft.Insights/scheduledQueryRules/sq01?api-version=2020-05-01-preview + response: + body: + string: '{"error":{"code":"ResourceNotFound","message":"The Resource ''Microsoft.Insights/scheduledqueryrules/sq01'' + under resource group ''cli_test_scheduled_query000001'' was not found. For + more details please go to https://aka.ms/ARMResourceNotFoundFix"}}' + headers: + cache-control: + - no-cache + content-length: + - '290' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 24 Sep 2020 10:39:11 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-failure-cause: + - gateway + status: + code: 404 + message: Not Found +version: 1 diff --git a/src/scheduled-query/azext_scheduled_query/tests/latest/test_scheduled_query_scenario.py b/src/scheduled-query/azext_scheduled_query/tests/latest/test_scheduled_query_scenario.py new file mode 100644 index 00000000000..2fe958b9b06 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/tests/latest/test_scheduled_query_scenario.py @@ -0,0 +1,145 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import os +import unittest + +from azure_devtools.scenario_tests import AllowLargeResponse +from azure.cli.testsdk import (ScenarioTest, ResourceGroupPreparer) + + +TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) + + +class Scheduled_queryScenarioTest(ScenarioTest): + + @ResourceGroupPreparer(name_prefix='cli_test_scheduled_query', location='eastus') + def test_scheduled_query(self, resource_group): + from azure.mgmt.core.tools import resource_id + import time + import mock + self.kwargs.update({ + 'name1': 'sq01', + 'name2': 'sq02', + 'rg': resource_group, + 'vm': 'myvm1', + 'ws': self.create_random_name('clitest', 20) + }) + with mock.patch('azure.cli.command_modules.vm.custom._gen_guid', side_effect=self.create_guid): + vm = self.cmd('vm create -n {vm} -g {rg} --image UbuntuLTS --nsg-rule None --workspace {ws} --generate-ssh-keys').get_output_in_json() + self.kwargs.update({ + 'vm_id': vm['id'], + 'rg_id': resource_id(subscription=self.get_subscription_id(), + resource_group=resource_group), + 'sub_id': resource_id(subscription=self.get_subscription_id(), + resource_group=resource_group), + }) + time.sleep(180) + self.cmd('monitor scheduled-query create -g {rg} -n {name1} --scopes {vm_id} --condition "count \'union Event, Syslog | where TimeGenerated > ago(1h)\' > 360" --description "Test rule"', + checks=[ + self.check('name', '{name1}'), + self.check('scopes[0]', '{vm_id}'), + self.check('severity', 2), + self.check('criteria.allOf[0].query', 'union Event, Syslog | where TimeGenerated > ago(1h)'), + self.check('criteria.allOf[0].threshold', 360), + self.check('criteria.allOf[0].timeAggregation', 'Count'), + self.check('criteria.allOf[0].operator', 'GreaterThan'), + self.check('criteria.allOf[0].failingPeriods.minFailingPeriodsToAlert', 1), + self.check('criteria.allOf[0].failingPeriods.numberOfEvaluationPeriods', 1) + ]) + self.cmd('monitor scheduled-query create -g {rg} -n {name2} --scopes {rg_id} --condition "count \'union Event, Syslog | where TimeGenerated > ago(1h)\' > 360 resource id _ResourceId" --description "Test rule"', + checks=[ + self.check('name', '{name2}'), + self.check('scopes[0]', '{rg_id}'), + self.check('severity', 2) + ]) + self.cmd('monitor scheduled-query update -g {rg} -n {name1} --condition "count \'union Event | where TimeGenerated > ago(2h)\' < 260 resource id _ResourceId at least 2 violations out of 3 aggregated points" --description "Test rule 2" --severity 4 --disabled --evaluation-frequency 10m --window-size 10m', + checks=[ + self.check('name', '{name1}'), + self.check('scopes[0]', '{vm_id}'), + self.check('severity', 4), + self.check('windowSize', '0:10:00'), + self.check('evaluationFrequency', '0:10:00'), + self.check('criteria.allOf[0].query', 'union Event | where TimeGenerated > ago(2h)'), + self.check('criteria.allOf[0].threshold', 260), + self.check('criteria.allOf[0].timeAggregation', 'Count'), + self.check('criteria.allOf[0].operator', 'LessThan'), + self.check('criteria.allOf[0].failingPeriods.minFailingPeriodsToAlert', 2), + self.check('criteria.allOf[0].failingPeriods.numberOfEvaluationPeriods', 3) + ]) + self.cmd('monitor scheduled-query show -g {rg} -n {name1}', + checks=[ + self.check('name', '{name1}') + ]) + self.cmd('monitor scheduled-query list -g {rg}', + checks=[ + self.check('length(@)', 2) + ]) + self.cmd('monitor scheduled-query list', + checks=[ + ]) + self.cmd('monitor scheduled-query delete -g {rg} -n {name1} -y') + with self.assertRaisesRegexp(SystemExit, '3'): + self.cmd('monitor scheduled-query show -g {rg} -n {name1}') + + +class ScheduledQueryCondtionTest(unittest.TestCase): + + def _build_namespace(self, name_or_id=None, resource_group=None, provider_namespace=None, parent=None, + resource_type=None): + from argparse import Namespace + return Namespace() + + def call_condition(self, ns, value): + from azext_scheduled_query._actions import ScheduleQueryConditionAction + ScheduleQueryConditionAction('--condition', 'condition').__call__(None, ns, value.split(), '--condition') + + def check_condition(self, ns, time_aggregation, query, operator, threshold, metric_measure_column=None, resource_id_column=None): + prop = ns.condition[0] + self.assertEqual(prop.time_aggregation, time_aggregation) + self.assertEqual(prop.query, query) + self.assertEqual(prop.operator, operator) + self.assertEqual(prop.threshold, threshold) + if metric_measure_column: + self.assertEqual(prop.metric_measure_column, metric_measure_column) + if resource_id_column: + self.assertEqual(prop.resource_id_column, resource_id_column) + + def check_dimension(self, ns, index, name, operator, values): + dim = ns.condition[0].dimensions[index] + self.assertEqual(dim.name, name) + self.assertEqual(dim.operator, operator) + self.assertEqual(dim.values, values) + + def check_falling_period(self, ns, min_failing_periods_to_alert, number_of_evaluation_periods): + falling_period = ns.condition[0].failing_periods + self.assertEqual(falling_period.min_failing_periods_to_alert, min_failing_periods_to_alert) + self.assertEqual(falling_period.number_of_evaluation_periods, number_of_evaluation_periods) + + def test_monitor_scheduled_query_condition_action(self): + + from knack.util import CLIError + + ns = self._build_namespace() + self.call_condition(ns, 'avg "Perf" > 90') + self.check_condition(ns, 'Average', 'Perf', 'GreaterThan', '90') + + ns = self._build_namespace() + self.call_condition(ns, 'avg "% Processor Time" from "Perf | where ObjectName == \\\"Processor\\\"" > 70 resource id resourceId') + self.check_condition(ns, 'Average', 'Perf | where ObjectName == \\\"Processor\\\"', 'GreaterThan', '70', '% Processor Time', 'resourceId') + + ns = self._build_namespace() + self.call_condition(ns, 'avg "% Processor Time" from "Perf | where ObjectName == \\\"Processor\\\" and C>=D && E< 70 resource id resourceId where ApiName includes GetBlob or PutBlob and DpiName excludes CCC at least 1.1 violations out of 10.1 aggregated points') + self.check_condition(ns, 'Average', 'Perf | where ObjectName == \\\"Processor\\\" and C>=D && E<=D && E< 70 resource id resourceId where ApiName includes GetBlob or PutBlob and DpiName excludes CCC at least 1.1 violations out of 10.1 aggregated points') + self.check_condition(ns, 'Average', 'Perf and C>=D && E<` + :param subscription_id: The Azure subscription Id. + :type subscription_id: str + :param str base_url: Service URL + """ + + def __init__( + self, credentials, subscription_id, base_url=None): + + if credentials is None: + raise ValueError("Parameter 'credentials' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + if not base_url: + base_url = 'https://management.azure.com' + + super(MonitorClientConfiguration, self).__init__(base_url) + + # Starting Autorest.Python 4.0.64, make connection pool activated by default + self.keep_alive = True + + self.add_user_agent('azure-mgmt-monitor/{}'.format(VERSION)) + self.add_user_agent('Azure-SDK-For-Python') + + self.credentials = credentials + self.subscription_id = subscription_id diff --git a/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/_monitor_client.py b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/_monitor_client.py new file mode 100644 index 00000000000..9126e1c0d2c --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/_monitor_client.py @@ -0,0 +1,49 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.service_client import SDKClient +from msrest import Serializer, Deserializer + +from ._configuration import MonitorClientConfiguration +from .operations import ScheduledQueryRulesOperations +from . import models + + +class MonitorClient(SDKClient): + """Monitor Management Client + + :ivar config: Configuration for client. + :vartype config: MonitorClientConfiguration + + :ivar scheduled_query_rules: ScheduledQueryRules operations + :vartype scheduled_query_rules: azure.mgmt.monitor.v2020_05_01_preview.operations.ScheduledQueryRulesOperations + + :param credentials: Credentials needed for the client to connect to Azure. + :type credentials: :mod:`A msrestazure Credentials + object` + :param subscription_id: The Azure subscription Id. + :type subscription_id: str + :param str base_url: Service URL + """ + + def __init__( + self, credentials, subscription_id, base_url=None): + + self.config = MonitorClientConfiguration(credentials, subscription_id, base_url) + super(MonitorClient, self).__init__(self.config.credentials, self.config) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self.api_version = '2020-05-01-preview' + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.scheduled_query_rules = ScheduledQueryRulesOperations( + self._client, self.config, self._serialize, self._deserialize) diff --git a/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/__init__.py b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/__init__.py new file mode 100644 index 00000000000..cfb55074177 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/__init__.py @@ -0,0 +1,68 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import Action + from ._models_py3 import AzureEntityResource + from ._models_py3 import Condition + from ._models_py3 import ConditionFailingPeriods + from ._models_py3 import Dimension + from ._models_py3 import ErrorAdditionalInfo + from ._models_py3 import ErrorContract, ErrorContractException + from ._models_py3 import ErrorResponse + from ._models_py3 import ProxyResource + from ._models_py3 import Resource + from ._models_py3 import ScheduledQueryRuleCriteria + from ._models_py3 import ScheduledQueryRuleResource + from ._models_py3 import ScheduledQueryRuleResourcePatch + from ._models_py3 import TrackedResource +except (SyntaxError, ImportError): + from ._models import Action + from ._models import AzureEntityResource + from ._models import Condition + from ._models import ConditionFailingPeriods + from ._models import Dimension + from ._models import ErrorAdditionalInfo + from ._models import ErrorContract, ErrorContractException + from ._models import ErrorResponse + from ._models import ProxyResource + from ._models import Resource + from ._models import ScheduledQueryRuleCriteria + from ._models import ScheduledQueryRuleResource + from ._models import ScheduledQueryRuleResourcePatch + from ._models import TrackedResource +from ._paged_models import ScheduledQueryRuleResourcePaged +from ._monitor_client_enums import ( + TimeAggregation, + DimensionOperator, + ConditionOperator, +) + +__all__ = [ + 'Action', + 'AzureEntityResource', + 'Condition', + 'ConditionFailingPeriods', + 'Dimension', + 'ErrorAdditionalInfo', + 'ErrorContract', 'ErrorContractException', + 'ErrorResponse', + 'ProxyResource', + 'Resource', + 'ScheduledQueryRuleCriteria', + 'ScheduledQueryRuleResource', + 'ScheduledQueryRuleResourcePatch', + 'TrackedResource', + 'ScheduledQueryRuleResourcePaged', + 'TimeAggregation', + 'DimensionOperator', + 'ConditionOperator', +] diff --git a/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_models.py b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_models.py new file mode 100644 index 00000000000..c5e78eef7c5 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_models.py @@ -0,0 +1,596 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class Action(Model): + """Actions to invoke when the alert fires. + + :param action_group_id: Action Group resource Id to invoke when the alert + fires. + :type action_group_id: str + :param web_hook_properties: The properties of a webhook object. + :type web_hook_properties: dict[str, str] + """ + + _attribute_map = { + 'action_group_id': {'key': 'actionGroupId', 'type': 'str'}, + 'web_hook_properties': {'key': 'webHookProperties', 'type': '{str}'}, + } + + def __init__(self, **kwargs): + super(Action, self).__init__(**kwargs) + self.action_group_id = kwargs.get('action_group_id', None) + self.web_hook_properties = kwargs.get('web_hook_properties', None) + + +class Resource(Model): + """Resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class AzureEntityResource(Resource): + """The resource model definition for a Azure Resource Manager resource with an + etag. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AzureEntityResource, self).__init__(**kwargs) + self.etag = None + + +class CloudError(Model): + """CloudError. + """ + + _attribute_map = { + } + + +class Condition(Model): + """A condition of the scheduled query rule. + + All required parameters must be populated in order to send to Azure. + + :param query: Log query alert + :type query: str + :param time_aggregation: Required. Aggregation type. Possible values + include: 'Count', 'Average', 'Minimum', 'Maximum', 'Total' + :type time_aggregation: str or + ~azure.mgmt.monitor.v2020_05_01_preview.models.TimeAggregation + :param metric_measure_column: The column containing the metric measure + number. + :type metric_measure_column: str + :param resource_id_column: The column containing the resource id. The + content of the column must be a uri formatted as resource id + :type resource_id_column: str + :param dimensions: List of Dimensions conditions + :type dimensions: + list[~azure.mgmt.monitor.v2020_05_01_preview.models.Dimension] + :param operator: Required. The criteria operator. Possible values include: + 'Equals', 'GreaterThan', 'GreaterThanOrEqual', 'LessThan', + 'LessThanOrEqual' + :type operator: str or + ~azure.mgmt.monitor.v2020_05_01_preview.models.ConditionOperator + :param threshold: Required. the criteria threshold value that activates + the alert. + :type threshold: int + :param failing_periods: The minimum number of violations required within + the selected lookback time window required to raise an alert. + :type failing_periods: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ConditionFailingPeriods + """ + + _validation = { + 'time_aggregation': {'required': True}, + 'operator': {'required': True}, + 'threshold': {'required': True}, + } + + _attribute_map = { + 'query': {'key': 'query', 'type': 'str'}, + 'time_aggregation': {'key': 'timeAggregation', 'type': 'str'}, + 'metric_measure_column': {'key': 'metricMeasureColumn', 'type': 'str'}, + 'resource_id_column': {'key': 'resourceIdColumn', 'type': 'str'}, + 'dimensions': {'key': 'dimensions', 'type': '[Dimension]'}, + 'operator': {'key': 'operator', 'type': 'str'}, + 'threshold': {'key': 'threshold', 'type': 'int'}, + 'failing_periods': {'key': 'failingPeriods', 'type': 'ConditionFailingPeriods'}, + } + + def __init__(self, **kwargs): + super(Condition, self).__init__(**kwargs) + self.query = kwargs.get('query', None) + self.time_aggregation = kwargs.get('time_aggregation', None) + self.metric_measure_column = kwargs.get('metric_measure_column', None) + self.resource_id_column = kwargs.get('resource_id_column', None) + self.dimensions = kwargs.get('dimensions', None) + self.operator = kwargs.get('operator', None) + self.threshold = kwargs.get('threshold', None) + self.failing_periods = kwargs.get('failing_periods', None) + + +class ConditionFailingPeriods(Model): + """The minimum number of violations required within the selected lookback time + window required to raise an alert. + + :param number_of_evaluation_periods: The number of aggregated lookback + points. The lookback time window is calculated based on the aggregation + granularity (windowSize) and the selected number of aggregated points. + Default value is 1 + :type number_of_evaluation_periods: int + :param min_failing_periods_to_alert: The number of violations to trigger + an alert. Should be smaller or equal to numberOfEvaluationPeriods. Default + value is 1 + :type min_failing_periods_to_alert: int + """ + + _attribute_map = { + 'number_of_evaluation_periods': {'key': 'numberOfEvaluationPeriods', 'type': 'int'}, + 'min_failing_periods_to_alert': {'key': 'minFailingPeriodsToAlert', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(ConditionFailingPeriods, self).__init__(**kwargs) + self.number_of_evaluation_periods = kwargs.get('number_of_evaluation_periods', None) + self.min_failing_periods_to_alert = kwargs.get('min_failing_periods_to_alert', None) + + +class Dimension(Model): + """Dimension splitting and filtering definition. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Name of the dimension + :type name: str + :param operator: Required. Operator for dimension values. Possible values + include: 'Include', 'Exclude' + :type operator: str or + ~azure.mgmt.monitor.v2020_05_01_preview.models.DimensionOperator + :param values: Required. List of dimension values + :type values: list[str] + """ + + _validation = { + 'name': {'required': True}, + 'operator': {'required': True}, + 'values': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'operator': {'key': 'operator', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(Dimension, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.operator = kwargs.get('operator', None) + self.values = kwargs.get('values', None) + + +class ErrorAdditionalInfo(Model): + """The resource management error additional info. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar type: The additional info type. + :vartype type: str + :ivar info: The additional info. + :vartype info: object + """ + + _validation = { + 'type': {'readonly': True}, + 'info': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'info': {'key': 'info', 'type': 'object'}, + } + + def __init__(self, **kwargs): + super(ErrorAdditionalInfo, self).__init__(**kwargs) + self.type = None + self.info = None + + +class ErrorContract(Model): + """Describes the format of Error response. + + :param error: The error details. + :type error: ~azure.mgmt.monitor.v2020_05_01_preview.models.ErrorResponse + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorResponse'}, + } + + def __init__(self, **kwargs): + super(ErrorContract, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class ErrorContractException(HttpOperationError): + """Server responsed with exception of type: 'ErrorContract'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(ErrorContractException, self).__init__(deserialize, response, 'ErrorContract', *args) + + +class ErrorResponse(Model): + """The resource management error response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar code: The error code. + :vartype code: str + :ivar message: The error message. + :vartype message: str + :ivar target: The error target. + :vartype target: str + :ivar details: The error details. + :vartype details: + list[~azure.mgmt.monitor.v2020_05_01_preview.models.ErrorResponse] + :ivar additional_info: The error additional info. + :vartype additional_info: + list[~azure.mgmt.monitor.v2020_05_01_preview.models.ErrorAdditionalInfo] + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'details': {'readonly': True}, + 'additional_info': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ErrorResponse]'}, + 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, + } + + def __init__(self, **kwargs): + super(ErrorResponse, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None + + +class ProxyResource(Resource): + """The resource model definition for a ARM proxy resource. It will have + everything other than required location and tags. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ProxyResource, self).__init__(**kwargs) + + +class ScheduledQueryRuleCriteria(Model): + """The rule criteria that defines the conditions of the scheduled query rule. + + :param all_of: A list of conditions to evaluate against the specified + scopes + :type all_of: + list[~azure.mgmt.monitor.v2020_05_01_preview.models.Condition] + """ + + _attribute_map = { + 'all_of': {'key': 'allOf', 'type': '[Condition]'}, + } + + def __init__(self, **kwargs): + super(ScheduledQueryRuleCriteria, self).__init__(**kwargs) + self.all_of = kwargs.get('all_of', None) + + +class TrackedResource(Resource): + """The resource model definition for a ARM tracked top level resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives + :type location: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(TrackedResource, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + self.location = kwargs.get('location', None) + + +class ScheduledQueryRuleResource(TrackedResource): + """The scheduled query rule resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives + :type location: str + :param description: The description of the scheduled query rule. + :type description: str + :param severity: Severity of the alert. Should be an integer between + [0-4]. Value of 0 is severest + :type severity: int + :param enabled: The flag which indicates whether this scheduled query rule + is enabled. Value should be true or false + :type enabled: bool + :param scopes: The list of resource id's that this scheduled query rule is + scoped to. + :type scopes: list[str] + :param evaluation_frequency: How often the scheduled query rule is + evaluated represented in ISO 8601 duration format. + :type evaluation_frequency: timedelta + :param window_size: The period of time (in ISO 8601 duration format) on + which the Alert query will be executed (bin size). + :type window_size: timedelta + :param target_resource_types: List of resource type of the target + resource(s) on which the alert is created/updated. For example if the + scope is a resource group and targetResourceTypes is + Microsoft.Compute/virtualMachines, then a different alert will be fired + for each virtual machine in the resource group which meet the alert + criteria + :type target_resource_types: list[str] + :param criteria: The rule criteria that defines the conditions of the + scheduled query rule. + :type criteria: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleCriteria + :param mute_actions_duration: Mute actions for the chosen period of time + (in ISO 8601 duration format) after the alert is fired. + :type mute_actions_duration: timedelta + :param actions: + :type actions: list[~azure.mgmt.monitor.v2020_05_01_preview.models.Action] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'severity': {'key': 'properties.severity', 'type': 'int'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'scopes': {'key': 'properties.scopes', 'type': '[str]'}, + 'evaluation_frequency': {'key': 'properties.evaluationFrequency', 'type': 'duration'}, + 'window_size': {'key': 'properties.windowSize', 'type': 'duration'}, + 'target_resource_types': {'key': 'properties.targetResourceTypes', 'type': '[str]'}, + 'criteria': {'key': 'properties.criteria', 'type': 'ScheduledQueryRuleCriteria'}, + 'mute_actions_duration': {'key': 'properties.muteActionsDuration', 'type': 'duration'}, + 'actions': {'key': 'properties.actions', 'type': '[Action]'}, + } + + def __init__(self, **kwargs): + super(ScheduledQueryRuleResource, self).__init__(**kwargs) + self.description = kwargs.get('description', None) + self.severity = kwargs.get('severity', None) + self.enabled = kwargs.get('enabled', None) + self.scopes = kwargs.get('scopes', None) + self.evaluation_frequency = kwargs.get('evaluation_frequency', None) + self.window_size = kwargs.get('window_size', None) + self.target_resource_types = kwargs.get('target_resource_types', None) + self.criteria = kwargs.get('criteria', None) + self.mute_actions_duration = kwargs.get('mute_actions_duration', None) + self.actions = kwargs.get('actions', None) + + +class ScheduledQueryRuleResourcePatch(Model): + """The scheduled query rule resource for patch operations. + + :param tags: Resource tags + :type tags: dict[str, str] + :param description: The description of the scheduled query rule. + :type description: str + :param severity: Severity of the alert. Should be an integer between + [0-4]. Value of 0 is severest + :type severity: int + :param enabled: The flag which indicates whether this scheduled query rule + is enabled. Value should be true or false + :type enabled: bool + :param scopes: The list of resource id's that this scheduled query rule is + scoped to. + :type scopes: list[str] + :param evaluation_frequency: How often the scheduled query rule is + evaluated represented in ISO 8601 duration format. + :type evaluation_frequency: timedelta + :param window_size: The period of time (in ISO 8601 duration format) on + which the Alert query will be executed (bin size). + :type window_size: timedelta + :param target_resource_types: List of resource type of the target + resource(s) on which the alert is created/updated. For example if the + scope is a resource group and targetResourceTypes is + Microsoft.Compute/virtualMachines, then a different alert will be fired + for each virtual machine in the resource group which meet the alert + criteria + :type target_resource_types: list[str] + :param criteria: The rule criteria that defines the conditions of the + scheduled query rule. + :type criteria: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleCriteria + :param mute_actions_duration: Mute actions for the chosen period of time + (in ISO 8601 duration format) after the alert is fired. + :type mute_actions_duration: timedelta + :param actions: + :type actions: list[~azure.mgmt.monitor.v2020_05_01_preview.models.Action] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'severity': {'key': 'properties.severity', 'type': 'int'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'scopes': {'key': 'properties.scopes', 'type': '[str]'}, + 'evaluation_frequency': {'key': 'properties.evaluationFrequency', 'type': 'duration'}, + 'window_size': {'key': 'properties.windowSize', 'type': 'duration'}, + 'target_resource_types': {'key': 'properties.targetResourceTypes', 'type': '[str]'}, + 'criteria': {'key': 'properties.criteria', 'type': 'ScheduledQueryRuleCriteria'}, + 'mute_actions_duration': {'key': 'properties.muteActionsDuration', 'type': 'duration'}, + 'actions': {'key': 'properties.actions', 'type': '[Action]'}, + } + + def __init__(self, **kwargs): + super(ScheduledQueryRuleResourcePatch, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + self.description = kwargs.get('description', None) + self.severity = kwargs.get('severity', None) + self.enabled = kwargs.get('enabled', None) + self.scopes = kwargs.get('scopes', None) + self.evaluation_frequency = kwargs.get('evaluation_frequency', None) + self.window_size = kwargs.get('window_size', None) + self.target_resource_types = kwargs.get('target_resource_types', None) + self.criteria = kwargs.get('criteria', None) + self.mute_actions_duration = kwargs.get('mute_actions_duration', None) + self.actions = kwargs.get('actions', None) diff --git a/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_models_py3.py b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_models_py3.py new file mode 100644 index 00000000000..e9d2d107998 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_models_py3.py @@ -0,0 +1,596 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class Action(Model): + """Actions to invoke when the alert fires. + + :param action_group_id: Action Group resource Id to invoke when the alert + fires. + :type action_group_id: str + :param web_hook_properties: The properties of a webhook object. + :type web_hook_properties: dict[str, str] + """ + + _attribute_map = { + 'action_group_id': {'key': 'actionGroupId', 'type': 'str'}, + 'web_hook_properties': {'key': 'webHookProperties', 'type': '{str}'}, + } + + def __init__(self, *, action_group_id: str=None, web_hook_properties=None, **kwargs) -> None: + super(Action, self).__init__(**kwargs) + self.action_group_id = action_group_id + self.web_hook_properties = web_hook_properties + + +class Resource(Model): + """Resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class AzureEntityResource(Resource): + """The resource model definition for a Azure Resource Manager resource with an + etag. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(AzureEntityResource, self).__init__(**kwargs) + self.etag = None + + +class CloudError(Model): + """CloudError. + """ + + _attribute_map = { + } + + +class Condition(Model): + """A condition of the scheduled query rule. + + All required parameters must be populated in order to send to Azure. + + :param query: Log query alert + :type query: str + :param time_aggregation: Required. Aggregation type. Possible values + include: 'Count', 'Average', 'Minimum', 'Maximum', 'Total' + :type time_aggregation: str or + ~azure.mgmt.monitor.v2020_05_01_preview.models.TimeAggregation + :param metric_measure_column: The column containing the metric measure + number. + :type metric_measure_column: str + :param resource_id_column: The column containing the resource id. The + content of the column must be a uri formatted as resource id + :type resource_id_column: str + :param dimensions: List of Dimensions conditions + :type dimensions: + list[~azure.mgmt.monitor.v2020_05_01_preview.models.Dimension] + :param operator: Required. The criteria operator. Possible values include: + 'Equals', 'GreaterThan', 'GreaterThanOrEqual', 'LessThan', + 'LessThanOrEqual' + :type operator: str or + ~azure.mgmt.monitor.v2020_05_01_preview.models.ConditionOperator + :param threshold: Required. the criteria threshold value that activates + the alert. + :type threshold: int + :param failing_periods: The minimum number of violations required within + the selected lookback time window required to raise an alert. + :type failing_periods: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ConditionFailingPeriods + """ + + _validation = { + 'time_aggregation': {'required': True}, + 'operator': {'required': True}, + 'threshold': {'required': True}, + } + + _attribute_map = { + 'query': {'key': 'query', 'type': 'str'}, + 'time_aggregation': {'key': 'timeAggregation', 'type': 'str'}, + 'metric_measure_column': {'key': 'metricMeasureColumn', 'type': 'str'}, + 'resource_id_column': {'key': 'resourceIdColumn', 'type': 'str'}, + 'dimensions': {'key': 'dimensions', 'type': '[Dimension]'}, + 'operator': {'key': 'operator', 'type': 'str'}, + 'threshold': {'key': 'threshold', 'type': 'int'}, + 'failing_periods': {'key': 'failingPeriods', 'type': 'ConditionFailingPeriods'}, + } + + def __init__(self, *, time_aggregation, operator, threshold: int, query: str=None, metric_measure_column: str=None, resource_id_column: str=None, dimensions=None, failing_periods=None, **kwargs) -> None: + super(Condition, self).__init__(**kwargs) + self.query = query + self.time_aggregation = time_aggregation + self.metric_measure_column = metric_measure_column + self.resource_id_column = resource_id_column + self.dimensions = dimensions + self.operator = operator + self.threshold = threshold + self.failing_periods = failing_periods + + +class ConditionFailingPeriods(Model): + """The minimum number of violations required within the selected lookback time + window required to raise an alert. + + :param number_of_evaluation_periods: The number of aggregated lookback + points. The lookback time window is calculated based on the aggregation + granularity (windowSize) and the selected number of aggregated points. + Default value is 1 + :type number_of_evaluation_periods: int + :param min_failing_periods_to_alert: The number of violations to trigger + an alert. Should be smaller or equal to numberOfEvaluationPeriods. Default + value is 1 + :type min_failing_periods_to_alert: int + """ + + _attribute_map = { + 'number_of_evaluation_periods': {'key': 'numberOfEvaluationPeriods', 'type': 'int'}, + 'min_failing_periods_to_alert': {'key': 'minFailingPeriodsToAlert', 'type': 'int'}, + } + + def __init__(self, *, number_of_evaluation_periods: int=None, min_failing_periods_to_alert: int=None, **kwargs) -> None: + super(ConditionFailingPeriods, self).__init__(**kwargs) + self.number_of_evaluation_periods = number_of_evaluation_periods + self.min_failing_periods_to_alert = min_failing_periods_to_alert + + +class Dimension(Model): + """Dimension splitting and filtering definition. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Name of the dimension + :type name: str + :param operator: Required. Operator for dimension values. Possible values + include: 'Include', 'Exclude' + :type operator: str or + ~azure.mgmt.monitor.v2020_05_01_preview.models.DimensionOperator + :param values: Required. List of dimension values + :type values: list[str] + """ + + _validation = { + 'name': {'required': True}, + 'operator': {'required': True}, + 'values': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'operator': {'key': 'operator', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[str]'}, + } + + def __init__(self, *, name: str, operator, values, **kwargs) -> None: + super(Dimension, self).__init__(**kwargs) + self.name = name + self.operator = operator + self.values = values + + +class ErrorAdditionalInfo(Model): + """The resource management error additional info. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar type: The additional info type. + :vartype type: str + :ivar info: The additional info. + :vartype info: object + """ + + _validation = { + 'type': {'readonly': True}, + 'info': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'info': {'key': 'info', 'type': 'object'}, + } + + def __init__(self, **kwargs) -> None: + super(ErrorAdditionalInfo, self).__init__(**kwargs) + self.type = None + self.info = None + + +class ErrorContract(Model): + """Describes the format of Error response. + + :param error: The error details. + :type error: ~azure.mgmt.monitor.v2020_05_01_preview.models.ErrorResponse + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorResponse'}, + } + + def __init__(self, *, error=None, **kwargs) -> None: + super(ErrorContract, self).__init__(**kwargs) + self.error = error + + +class ErrorContractException(HttpOperationError): + """Server responsed with exception of type: 'ErrorContract'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(ErrorContractException, self).__init__(deserialize, response, 'ErrorContract', *args) + + +class ErrorResponse(Model): + """The resource management error response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar code: The error code. + :vartype code: str + :ivar message: The error message. + :vartype message: str + :ivar target: The error target. + :vartype target: str + :ivar details: The error details. + :vartype details: + list[~azure.mgmt.monitor.v2020_05_01_preview.models.ErrorResponse] + :ivar additional_info: The error additional info. + :vartype additional_info: + list[~azure.mgmt.monitor.v2020_05_01_preview.models.ErrorAdditionalInfo] + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'details': {'readonly': True}, + 'additional_info': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ErrorResponse]'}, + 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, + } + + def __init__(self, **kwargs) -> None: + super(ErrorResponse, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None + + +class ProxyResource(Resource): + """The resource model definition for a ARM proxy resource. It will have + everything other than required location and tags. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(ProxyResource, self).__init__(**kwargs) + + +class ScheduledQueryRuleCriteria(Model): + """The rule criteria that defines the conditions of the scheduled query rule. + + :param all_of: A list of conditions to evaluate against the specified + scopes + :type all_of: + list[~azure.mgmt.monitor.v2020_05_01_preview.models.Condition] + """ + + _attribute_map = { + 'all_of': {'key': 'allOf', 'type': '[Condition]'}, + } + + def __init__(self, *, all_of=None, **kwargs) -> None: + super(ScheduledQueryRuleCriteria, self).__init__(**kwargs) + self.all_of = all_of + + +class TrackedResource(Resource): + """The resource model definition for a ARM tracked top level resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives + :type location: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__(self, *, location: str, tags=None, **kwargs) -> None: + super(TrackedResource, self).__init__(**kwargs) + self.tags = tags + self.location = location + + +class ScheduledQueryRuleResource(TrackedResource): + """The scheduled query rule resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives + :type location: str + :param description: The description of the scheduled query rule. + :type description: str + :param severity: Severity of the alert. Should be an integer between + [0-4]. Value of 0 is severest + :type severity: int + :param enabled: The flag which indicates whether this scheduled query rule + is enabled. Value should be true or false + :type enabled: bool + :param scopes: The list of resource id's that this scheduled query rule is + scoped to. + :type scopes: list[str] + :param evaluation_frequency: How often the scheduled query rule is + evaluated represented in ISO 8601 duration format. + :type evaluation_frequency: timedelta + :param window_size: The period of time (in ISO 8601 duration format) on + which the Alert query will be executed (bin size). + :type window_size: timedelta + :param target_resource_types: List of resource type of the target + resource(s) on which the alert is created/updated. For example if the + scope is a resource group and targetResourceTypes is + Microsoft.Compute/virtualMachines, then a different alert will be fired + for each virtual machine in the resource group which meet the alert + criteria + :type target_resource_types: list[str] + :param criteria: The rule criteria that defines the conditions of the + scheduled query rule. + :type criteria: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleCriteria + :param mute_actions_duration: Mute actions for the chosen period of time + (in ISO 8601 duration format) after the alert is fired. + :type mute_actions_duration: timedelta + :param actions: + :type actions: list[~azure.mgmt.monitor.v2020_05_01_preview.models.Action] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'severity': {'key': 'properties.severity', 'type': 'int'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'scopes': {'key': 'properties.scopes', 'type': '[str]'}, + 'evaluation_frequency': {'key': 'properties.evaluationFrequency', 'type': 'duration'}, + 'window_size': {'key': 'properties.windowSize', 'type': 'duration'}, + 'target_resource_types': {'key': 'properties.targetResourceTypes', 'type': '[str]'}, + 'criteria': {'key': 'properties.criteria', 'type': 'ScheduledQueryRuleCriteria'}, + 'mute_actions_duration': {'key': 'properties.muteActionsDuration', 'type': 'duration'}, + 'actions': {'key': 'properties.actions', 'type': '[Action]'}, + } + + def __init__(self, *, location: str, tags=None, description: str=None, severity: int=None, enabled: bool=None, scopes=None, evaluation_frequency=None, window_size=None, target_resource_types=None, criteria=None, mute_actions_duration=None, actions=None, **kwargs) -> None: + super(ScheduledQueryRuleResource, self).__init__(tags=tags, location=location, **kwargs) + self.description = description + self.severity = severity + self.enabled = enabled + self.scopes = scopes + self.evaluation_frequency = evaluation_frequency + self.window_size = window_size + self.target_resource_types = target_resource_types + self.criteria = criteria + self.mute_actions_duration = mute_actions_duration + self.actions = actions + + +class ScheduledQueryRuleResourcePatch(Model): + """The scheduled query rule resource for patch operations. + + :param tags: Resource tags + :type tags: dict[str, str] + :param description: The description of the scheduled query rule. + :type description: str + :param severity: Severity of the alert. Should be an integer between + [0-4]. Value of 0 is severest + :type severity: int + :param enabled: The flag which indicates whether this scheduled query rule + is enabled. Value should be true or false + :type enabled: bool + :param scopes: The list of resource id's that this scheduled query rule is + scoped to. + :type scopes: list[str] + :param evaluation_frequency: How often the scheduled query rule is + evaluated represented in ISO 8601 duration format. + :type evaluation_frequency: timedelta + :param window_size: The period of time (in ISO 8601 duration format) on + which the Alert query will be executed (bin size). + :type window_size: timedelta + :param target_resource_types: List of resource type of the target + resource(s) on which the alert is created/updated. For example if the + scope is a resource group and targetResourceTypes is + Microsoft.Compute/virtualMachines, then a different alert will be fired + for each virtual machine in the resource group which meet the alert + criteria + :type target_resource_types: list[str] + :param criteria: The rule criteria that defines the conditions of the + scheduled query rule. + :type criteria: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleCriteria + :param mute_actions_duration: Mute actions for the chosen period of time + (in ISO 8601 duration format) after the alert is fired. + :type mute_actions_duration: timedelta + :param actions: + :type actions: list[~azure.mgmt.monitor.v2020_05_01_preview.models.Action] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'severity': {'key': 'properties.severity', 'type': 'int'}, + 'enabled': {'key': 'properties.enabled', 'type': 'bool'}, + 'scopes': {'key': 'properties.scopes', 'type': '[str]'}, + 'evaluation_frequency': {'key': 'properties.evaluationFrequency', 'type': 'duration'}, + 'window_size': {'key': 'properties.windowSize', 'type': 'duration'}, + 'target_resource_types': {'key': 'properties.targetResourceTypes', 'type': '[str]'}, + 'criteria': {'key': 'properties.criteria', 'type': 'ScheduledQueryRuleCriteria'}, + 'mute_actions_duration': {'key': 'properties.muteActionsDuration', 'type': 'duration'}, + 'actions': {'key': 'properties.actions', 'type': '[Action]'}, + } + + def __init__(self, *, tags=None, description: str=None, severity: int=None, enabled: bool=None, scopes=None, evaluation_frequency=None, window_size=None, target_resource_types=None, criteria=None, mute_actions_duration=None, actions=None, **kwargs) -> None: + super(ScheduledQueryRuleResourcePatch, self).__init__(**kwargs) + self.tags = tags + self.description = description + self.severity = severity + self.enabled = enabled + self.scopes = scopes + self.evaluation_frequency = evaluation_frequency + self.window_size = window_size + self.target_resource_types = target_resource_types + self.criteria = criteria + self.mute_actions_duration = mute_actions_duration + self.actions = actions diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_management_client_enums.py b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_monitor_client_enums.py similarity index 53% rename from src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_management_client_enums.py rename to src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_monitor_client_enums.py index 83ce8e7ded5..93fa54eb856 100644 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/maintenance_management_client_enums.py +++ b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_monitor_client_enums.py @@ -12,26 +12,25 @@ from enum import Enum -class UpdateStatus(str, Enum): +class TimeAggregation(str, Enum): - pending = "Pending" - in_progress = "InProgress" - completed = "Completed" - retry_now = "RetryNow" - retry_later = "RetryLater" + count = "Count" + average = "Average" + minimum = "Minimum" + maximum = "Maximum" + total = "Total" -class MaintenanceScope(str, Enum): +class DimensionOperator(str, Enum): - all = "All" - host = "Host" - resource = "Resource" - in_resource = "InResource" + include = "Include" + exclude = "Exclude" -class ImpactType(str, Enum): +class ConditionOperator(str, Enum): - none = "None" - freeze = "Freeze" - restart = "Restart" - redeploy = "Redeploy" + equals = "Equals" + greater_than = "GreaterThan" + greater_than_or_equal = "GreaterThanOrEqual" + less_than = "LessThan" + less_than_or_equal = "LessThanOrEqual" diff --git a/src/maintenance/azext_maintenance/vendored_sdks/models/operation_paged.py b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_paged_models.py similarity index 62% rename from src/maintenance/azext_maintenance/vendored_sdks/models/operation_paged.py rename to src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_paged_models.py index 144a92a8c9d..f84d254075a 100644 --- a/src/maintenance/azext_maintenance/vendored_sdks/models/operation_paged.py +++ b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/models/_paged_models.py @@ -1,5 +1,4 @@ -# pylint: disable=too-many-ancestors -# # coding=utf-8 +# coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for @@ -13,16 +12,16 @@ from msrest.paging import Paged -class OperationPaged(Paged): +class ScheduledQueryRuleResourcePaged(Paged): """ - A paging container for iterating over a list of :class:`Operation ` object + A paging container for iterating over a list of :class:`ScheduledQueryRuleResource ` object """ _attribute_map = { 'next_link': {'key': 'nextLink', 'type': 'str'}, - 'current_page': {'key': 'value', 'type': '[Operation]'} + 'current_page': {'key': 'value', 'type': '[ScheduledQueryRuleResource]'} } def __init__(self, *args, **kwargs): - super(OperationPaged, self).__init__(*args, **kwargs) + super(ScheduledQueryRuleResourcePaged, self).__init__(*args, **kwargs) diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/__init__.py b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/operations/__init__.py similarity index 67% rename from src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/__init__.py rename to src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/operations/__init__.py index f362d1375d6..c8cedc13e4d 100644 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/__init__.py +++ b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/operations/__init__.py @@ -9,12 +9,8 @@ # regenerated. # -------------------------------------------------------------------------- -from ._machines_operations import MachinesOperations -from ._machine_extensions_operations import MachineExtensionsOperations -from ._operations import Operations +from ._scheduled_query_rules_operations import ScheduledQueryRulesOperations __all__ = [ - 'MachinesOperations', - 'MachineExtensionsOperations', - 'Operations', + 'ScheduledQueryRulesOperations', ] diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/_machines_operations.py b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/operations/_scheduled_query_rules_operations.py similarity index 62% rename from src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/_machines_operations.py rename to src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/operations/_scheduled_query_rules_operations.py index ef687d7c63b..448838fbdc5 100644 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/operations/_machines_operations.py +++ b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/operations/_scheduled_query_rules_operations.py @@ -15,8 +15,8 @@ from .. import models -class MachinesOperations(object): - """MachinesOperations operations. +class ScheduledQueryRulesOperations(object): + """ScheduledQueryRulesOperations operations. You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. @@ -24,7 +24,7 @@ class MachinesOperations(object): :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. - :ivar api_version: Client Api Version. Constant value: "2019-08-02-preview". + :ivar api_version: Client Api Version. Constant value: "2020-05-01-preview". """ models = models @@ -34,169 +34,169 @@ def __init__(self, client, config, serializer, deserializer): self._client = client self._serialize = serializer self._deserialize = deserializer - self.api_version = "2019-08-02-preview" + self.api_version = "2020-05-01-preview" self.config = config - def create_or_update( - self, resource_group_name, name, parameters, custom_headers=None, raw=False, **operation_config): - """The operation to create or update a hybrid machine resource identity in - Azure. + def list_by_subscription( + self, custom_headers=None, raw=False, **operation_config): + """Retrieve a scheduled query rule definitions in a subscription. - :param resource_group_name: The name of the resource group. - :type resource_group_name: str - :param name: The name of the hybrid machine. - :type name: str - :param parameters: Parameters supplied to the Create hybrid machine - operation. - :type parameters: ~azure.mgmt.hybridcompute.models.Machine :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: Machine or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.hybridcompute.models.Machine or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of ScheduledQueryRuleResource + :rtype: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleResourcePaged[~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleResource] :raises: - :class:`ErrorResponseException` + :class:`ErrorContractException` """ - # Construct URL - url = self.create_or_update.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'name': self._serialize.url("name", name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_by_subscription.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + else: + url = next_link + query_parameters = {} - # Construct body - body_content = self._serialize.body(parameters, 'Machine') + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - # Construct and send request - request = self._client.put(url, query_parameters, header_parameters, body_content) - response = self._client.send(request, stream=False, **operation_config) + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request - if response.status_code not in [200]: - raise models.ErrorResponseException(self._deserialize, response) + def internal_paging(next_link=None): + request = prepare_request(next_link) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('Machine', response) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorContractException(self._deserialize, response) + + return response + # Deserialize response + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.ScheduledQueryRuleResourcePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}'} + list_by_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Insights/scheduledQueryRules'} - def update( - self, resource_group_name, name, parameters, custom_headers=None, raw=False, **operation_config): - """The operation to update a hybrid machine. + def list_by_resource_group( + self, resource_group_name, custom_headers=None, raw=False, **operation_config): + """Retrieve scheduled query rule definitions in a resource group. :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param name: The name of the hybrid machine. - :type name: str - :param parameters: Parameters supplied to the Update hybrid machine - operation. - :type parameters: ~azure.mgmt.hybridcompute.models.MachineUpdate :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: Machine or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.hybridcompute.models.Machine or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of ScheduledQueryRuleResource + :rtype: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleResourcePaged[~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleResource] :raises: - :class:`ErrorResponseException` + :class:`ErrorContractException` """ - # Construct URL - url = self.update.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'name': self._serialize.url("name", name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - header_parameters['Content-Type'] = 'application/json; charset=utf-8' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + else: + url = next_link + query_parameters = {} - # Construct body - body_content = self._serialize.body(parameters, 'MachineUpdate') + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - # Construct and send request - request = self._client.patch(url, query_parameters, header_parameters, body_content) - response = self._client.send(request, stream=False, **operation_config) + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request - if response.status_code not in [200]: - raise models.ErrorResponseException(self._deserialize, response) + def internal_paging(next_link=None): + request = prepare_request(next_link) - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('Machine', response) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorContractException(self._deserialize, response) + return response + + # Deserialize response + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.ScheduledQueryRuleResourcePaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized - update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}'} + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/scheduledQueryRules'} - def delete( - self, resource_group_name, name, custom_headers=None, raw=False, **operation_config): - """The operation to remove a hybrid machine identity in Azure. + def get( + self, resource_group_name, rule_name, custom_headers=None, raw=False, **operation_config): + """Retrieve an scheduled query rule definition. :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param name: The name of the hybrid machine. - :type name: str + :param rule_name: The name of the rule. + :type rule_name: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: None or ClientRawResponse if raw=true - :rtype: None or ~msrest.pipeline.ClientRawResponse + :return: ScheduledQueryRuleResource or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleResource + or ~msrest.pipeline.ClientRawResponse :raises: - :class:`ErrorResponseException` + :class:`ErrorContractException` """ # Construct URL - url = self.delete.metadata['url'] + url = self.get.metadata['url'] path_format_arguments = { 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'name': self._serialize.url("name", name, 'str') + 'ruleName': self._serialize.url("rule_name", rule_name, 'str') } url = self._client.format_url(url, **path_format_arguments) @@ -206,6 +206,7 @@ def delete( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -214,59 +215,63 @@ def delete( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.delete(url, query_parameters, header_parameters) + request = self._client.get(url, query_parameters, header_parameters) response = self._client.send(request, stream=False, **operation_config) - if response.status_code not in [200, 204]: - raise models.ErrorResponseException(self._deserialize, response) + if response.status_code not in [200]: + raise models.ErrorContractException(self._deserialize, response) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ScheduledQueryRuleResource', response) if raw: - client_raw_response = ClientRawResponse(None, response) + client_raw_response = ClientRawResponse(deserialized, response) return client_raw_response - delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}'} - def get( - self, resource_group_name, name, expand=None, custom_headers=None, raw=False, **operation_config): - """Retrieves information about the model view or the instance view of a - hybrid machine. + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/scheduledQueryRules/{ruleName}'} + + def create_or_update( + self, resource_group_name, rule_name, parameters, custom_headers=None, raw=False, **operation_config): + """Creates or updates a scheduled query rule. :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param name: The name of the hybrid machine. - :type name: str - :param expand: The expand expression to apply on the operation. - Possible values include: 'instanceView' - :type expand: str or - ~azure.mgmt.hybridcompute.models.InstanceViewTypes + :param rule_name: The name of the rule. + :type rule_name: str + :param parameters: The parameters of the rule to create or update. + :type parameters: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleResource :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: Machine or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.hybridcompute.models.Machine or - ~msrest.pipeline.ClientRawResponse + :return: ScheduledQueryRuleResource or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleResource + or ~msrest.pipeline.ClientRawResponse :raises: - :class:`ErrorResponseException` + :class:`ErrorContractException` """ # Construct URL - url = self.get.metadata['url'] + url = self.create_or_update.metadata['url'] path_format_arguments = { 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'name': self._serialize.url("name", name, 'str') + 'ruleName': self._serialize.url("rule_name", rule_name, 'str') } url = self._client.format_url(url, **path_format_arguments) # Construct parameters query_parameters = {} query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - if expand is not None: - query_parameters['$expand'] = self._serialize.query("expand", expand, 'InstanceViewTypes') # Construct headers header_parameters = {} header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -274,57 +279,58 @@ def get( if self.config.accept_language is not None: header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + # Construct body + body_content = self._serialize.body(parameters, 'ScheduledQueryRuleResource') + # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) + request = self._client.put(url, query_parameters, header_parameters, body_content) response = self._client.send(request, stream=False, **operation_config) - if response.status_code not in [200]: - raise models.ErrorResponseException(self._deserialize, response) + if response.status_code not in [200, 201]: + raise models.ErrorContractException(self._deserialize, response) deserialized = None if response.status_code == 200: - deserialized = self._deserialize('Machine', response) + deserialized = self._deserialize('ScheduledQueryRuleResource', response) + if response.status_code == 201: + deserialized = self._deserialize('ScheduledQueryRuleResource', response) if raw: client_raw_response = ClientRawResponse(deserialized, response) return client_raw_response return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}'} + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/scheduledQueryRules/{ruleName}'} - def reconnect( - self, resource_group_name, name, vm_id=None, client_public_key=None, custom_headers=None, raw=False, **operation_config): - """The operation to reconnect a hybrid machine resource to its identity in - Azure. + def update( + self, resource_group_name, rule_name, parameters, custom_headers=None, raw=False, **operation_config): + """Update a scheduled query rule. :param resource_group_name: The name of the resource group. :type resource_group_name: str - :param name: The name of the hybrid machine. - :type name: str - :param vm_id: Specifies the hybrid machine unique ID. - :type vm_id: str - :param client_public_key: Public Key that the client provides to be - used during initial resource onboarding. - :type client_public_key: str + :param rule_name: The name of the rule. + :type rule_name: str + :param parameters: The parameters of the rule to update. + :type parameters: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleResourcePatch :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: Machine or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.hybridcompute.models.Machine or - ~msrest.pipeline.ClientRawResponse + :return: ScheduledQueryRuleResource or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.monitor.v2020_05_01_preview.models.ScheduledQueryRuleResource + or ~msrest.pipeline.ClientRawResponse :raises: - :class:`ErrorResponseException` + :class:`ErrorContractException` """ - parameters = models.MachineReconnect(vm_id=vm_id, client_public_key=client_public_key) - # Construct URL - url = self.reconnect.metadata['url'] + url = self.update.metadata['url'] path_format_arguments = { 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), - 'name': self._serialize.url("name", name, 'str') + 'ruleName': self._serialize.url("rule_name", rule_name, 'str') } url = self._client.format_url(url, **path_format_arguments) @@ -344,159 +350,74 @@ def reconnect( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct body - body_content = self._serialize.body(parameters, 'MachineReconnect') + body_content = self._serialize.body(parameters, 'ScheduledQueryRuleResourcePatch') # Construct and send request - request = self._client.post(url, query_parameters, header_parameters, body_content) + request = self._client.patch(url, query_parameters, header_parameters, body_content) response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: - raise models.ErrorResponseException(self._deserialize, response) + raise models.ErrorContractException(self._deserialize, response) deserialized = None if response.status_code == 200: - deserialized = self._deserialize('Machine', response) + deserialized = self._deserialize('ScheduledQueryRuleResource', response) if raw: client_raw_response = ClientRawResponse(deserialized, response) return client_raw_response return deserialized - reconnect.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{name}/reconnect'} + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/scheduledQueryRules/{ruleName}'} - def list_by_resource_group( - self, resource_group_name, custom_headers=None, raw=False, **operation_config): - """Lists all the hybrid machines in the specified resource group. Use the - nextLink property in the response to get the next page of hybrid - machines. + def delete( + self, resource_group_name, rule_name, custom_headers=None, raw=False, **operation_config): + """Deletes a scheduled query rule. :param resource_group_name: The name of the resource group. :type resource_group_name: str + :param rule_name: The name of the rule. + :type rule_name: str :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: An iterator like instance of Machine - :rtype: - ~azure.mgmt.hybridcompute.models.MachinePaged[~azure.mgmt.hybridcompute.models.Machine] - :raises: - :class:`ErrorResponseException` - """ - def prepare_request(next_link=None): - if not next_link: - # Construct URL - url = self.list_by_resource_group.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - else: - url = next_link - query_parameters = {} - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) - return request - - def internal_paging(next_link=None): - request = prepare_request(next_link) - - response = self._client.send(request, stream=False, **operation_config) - - if response.status_code not in [200]: - raise models.ErrorResponseException(self._deserialize, response) - - return response - - # Deserialize response - header_dict = None - if raw: - header_dict = {} - deserialized = models.MachinePaged(internal_paging, self._deserialize.dependencies, header_dict) - - return deserialized - list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines'} - - def list_by_subscription( - self, custom_headers=None, raw=False, **operation_config): - """Lists all the hybrid machines in the specified subscription. Use the - nextLink property in the response to get the next page of hybrid - machines. - - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :param operation_config: :ref:`Operation configuration - overrides`. - :return: An iterator like instance of Machine - :rtype: - ~azure.mgmt.hybridcompute.models.MachinePaged[~azure.mgmt.hybridcompute.models.Machine] + :return: None or ClientRawResponse if raw=true + :rtype: None or ~msrest.pipeline.ClientRawResponse :raises: - :class:`ErrorResponseException` + :class:`ErrorContractException` """ - def prepare_request(next_link=None): - if not next_link: - # Construct URL - url = self.list_by_subscription.metadata['url'] - path_format_arguments = { - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - - else: - url = next_link - query_parameters = {} - - # Construct headers - header_parameters = {} - header_parameters['Accept'] = 'application/json' - if self.config.generate_client_request_id: - header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) - if custom_headers: - header_parameters.update(custom_headers) - if self.config.accept_language is not None: - header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - - # Construct and send request - request = self._client.get(url, query_parameters, header_parameters) - return request + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'ruleName': self._serialize.url("rule_name", rule_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) - def internal_paging(next_link=None): - request = prepare_request(next_link) + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') - response = self._client.send(request, stream=False, **operation_config) + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') - if response.status_code not in [200]: - raise models.ErrorResponseException(self._deserialize, response) + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) - return response + if response.status_code not in [200, 204]: + raise models.ErrorContractException(self._deserialize, response) - # Deserialize response - header_dict = None if raw: - header_dict = {} - deserialized = models.MachinePaged(internal_paging, self._deserialize.dependencies, header_dict) - - return deserialized - list_by_subscription.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.HybridCompute/machines'} + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/scheduledQueryRules/{ruleName}'} diff --git a/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/version.py b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/version.py new file mode 100644 index 00000000000..fc729cd3194 --- /dev/null +++ b/src/scheduled-query/azext_scheduled_query/vendored_sdks/azure_mgmt_scheduled_query/version.py @@ -0,0 +1,13 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +VERSION = "2020-05-01-preview" + diff --git a/src/scheduled-query/setup.cfg b/src/scheduled-query/setup.cfg new file mode 100644 index 00000000000..3c6e79cf31d --- /dev/null +++ b/src/scheduled-query/setup.cfg @@ -0,0 +1,2 @@ +[bdist_wheel] +universal=1 diff --git a/src/scheduled-query/setup.py b/src/scheduled-query/setup.py new file mode 100644 index 00000000000..74f6aa163e4 --- /dev/null +++ b/src/scheduled-query/setup.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + + +from codecs import open +from setuptools import setup, find_packages +try: + from azure_bdist_wheel import cmdclass +except ImportError: + from distutils import log as logger + logger.warn("Wheel is not available, disabling bdist_wheel hook") + +# TODO: Confirm this is the right version number you want and it matches your +# HISTORY.rst entry. +VERSION = '0.2.0' + +# The full list of classifiers is available at +# https://pypi.python.org/pypi?%3Aaction=list_classifiers +CLASSIFIERS = [ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Developers', + 'Intended Audience :: System Administrators', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'License :: OSI Approved :: MIT License', +] + +with open('README.rst', 'r', encoding='utf-8') as f: + README = f.read() +with open('HISTORY.rst', 'r', encoding='utf-8') as f: + HISTORY = f.read() + +setup( + name='scheduled-query', + version=VERSION, + description='Microsoft Azure Command-Line Tools Scheduled_query Extension', + # TODO: Update author and email, if applicable + author='Microsoft Corporation', + author_email='azpycli@microsoft.com', + # TODO: consider pointing directly to your source code instead of the generic repo + url='https://github.com/Azure/azure-cli-extensions', + long_description=README + '\n\n' + HISTORY, + license='MIT', + classifiers=CLASSIFIERS, + packages=find_packages(), + package_data={'azext_scheduled_query': ['azext_metadata.json']}, +) diff --git a/src/spring-cloud/HISTORY.md b/src/spring-cloud/HISTORY.md index fcec8baed2c..602bde60201 100644 --- a/src/spring-cloud/HISTORY.md +++ b/src/spring-cloud/HISTORY.md @@ -1,5 +1,17 @@ Release History =============== +1.1.1 +----- +* Reimport the updated version of Python SDK. + +1.1.0 +----- +* Support Steeltoe feature. + +1.0.1 +----- +* Optimize VNet Injection validator + 1.0.0 ----- * Bump version to 1.0.0 diff --git a/src/spring-cloud/azext_spring_cloud/_params.py b/src/spring-cloud/azext_spring_cloud/_params.py index 97684faf45f..5789d73f8f0 100644 --- a/src/spring-cloud/azext_spring_cloud/_params.py +++ b/src/spring-cloud/azext_spring_cloud/_params.py @@ -83,6 +83,8 @@ def load_arguments(self, _): with self.argument_context(scope) as c: c.argument('deployment', options_list=[ '--deployment', '-d'], help='Name of an existing deployment of the app. Default to the production deployment if not specified.', validator=validate_deployment_name) + c.argument('main_entry', options_list=[ + '--main-entry', '-m'], help="The path to the .NET executable relative to zip root.") with self.argument_context('spring-cloud app identity assign') as c: c.argument('scope', help="The scope the managed identity has access to") @@ -127,9 +129,13 @@ def load_arguments(self, _): for scope in ['spring-cloud app deploy', 'spring-cloud app deployment create']: with self.argument_context(scope) as c: c.argument( - 'jar_path', help='If provided, deploy jar, otherwise deploy current folder as tar.') + 'artifact_path', options_list=[ + '--artifact-path', '--jar-path', '-p'], help='If provided, deploy pre-built artifact (jar or netcore zip), otherwise deploy current folder as tar.') c.argument( - 'target_module', help='Child module to be deployed, required for multiple jar packages built from source code') + 'main_entry', options_list=[ + '--main-entry', '-m'], help="A string containing the path to the .NET executable relative to zip root.") + c.argument( + 'target_module', help='Child module to be deployed, required for multiple jar packages built from source code.') c.argument( 'version', help='Deployment version, keep unchanged if not set.') diff --git a/src/spring-cloud/azext_spring_cloud/_utils.py b/src/spring-cloud/azext_spring_cloud/_utils.py index 137aa0d55f4..4a5ac198f0e 100644 --- a/src/spring-cloud/azext_spring_cloud/_utils.py +++ b/src/spring-cloud/azext_spring_cloud/_utils.py @@ -14,15 +14,16 @@ from json import dumps from knack.util import CLIError, todict from knack.log import get_logger +from .vendored_sdks.appplatform.models import _app_platform_management_client_enums as AppPlatformEnums from ._client_factory import cf_resource_groups logger = get_logger(__name__) -def _get_upload_local_file(jar_path=None): - file_path = jar_path - file_type = "Jar" +def _get_upload_local_file(runtime_version, artifact_path=None): + file_path = artifact_path + file_type = "NetCoreZip" if runtime_version == AppPlatformEnums.RuntimeVersion.net_core_31 else "Jar" if file_path is None: file_type = "Source" diff --git a/src/spring-cloud/azext_spring_cloud/_validators.py b/src/spring-cloud/azext_spring_cloud/_validators.py index e3136f77b73..43613925959 100644 --- a/src/spring-cloud/azext_spring_cloud/_validators.py +++ b/src/spring-cloud/azext_spring_cloud/_validators.py @@ -15,6 +15,7 @@ from msrestazure.tools import resource_id from knack.log import get_logger from ._utils import ApiType +from ._utils import _get_rg_location logger = get_logger(__name__) @@ -180,6 +181,15 @@ def validate_vnet(cmd, namespace): raise CLIError('--app-subnet and --service-runtime-subnet should not be the same.') vnet_obj = _get_vnet(cmd, vnet_id) + instance_location = namespace.location + if instance_location is None: + instance_location = _get_rg_location(cmd.cli_ctx, namespace.resource_group) + else: + instance_location_slice = instance_location.split(" ") + instance_location = "".join([piece.lower() + for piece in instance_location_slice]) + if vnet_obj.location.lower() != instance_location.lower(): + raise CLIError('--vnet and Azure Spring Cloud instance should be in the same location.') for subnet in vnet_obj.subnets: _validate_subnet(namespace, subnet) @@ -189,7 +199,6 @@ def validate_vnet(cmd, namespace): namespace.reserved_cidr_range = _set_default_cidr_range(vnet_obj.address_space.address_prefixes) if \ vnet_obj and vnet_obj.address_space and vnet_obj.address_space.address_prefixes \ else '10.234.0.0/16,10.244.0.0/16,172.17.0.1/16' - _check_spring_cloud_rp_permission(cmd, vnet_id) def _validate_subnet(namespace, subnet): @@ -212,32 +221,6 @@ def _validate_subnet(namespace, subnet): raise CLIError('--{0} should contain at least /{1} address, got /{2}'.format(name, limit, address.prefixlen)) -def _check_spring_cloud_rp_permission(cmd, vnet_id): - vnet = parse_resource_id(vnet_id) - auth_client = _get_authorization_client(cmd.cli_ctx, subscription_id=vnet['subscription']) - assignments = auth_client.role_assignments.list_for_scope(vnet_id) - objectIds = [x.principal_id for x in assignments if x.principal_type == 'ServicePrincipal' and - '8e3af657-a8ff-443c-a75c-2fe8c4bcb635' in x.role_definition_id] - objectId = _look_up_spring_cloud_rp(cmd, objectIds, subscription_id=vnet['subscription']) - if not objectId: - logger.warning("Please make sure to grant Azure Spring Cloud service permission to the virtual network. Refer " - "to https://aka.ms/asc/vnet-permission-help for more details.") - - -def _look_up_spring_cloud_rp(cmd, objectIds, subscription_id=None): - if not objectIds: - return None - graph_client = _get_graph_rbac_management_client(cmd.cli_ctx, subscription_id=subscription_id) - from azure.graphrbac.models import GetObjectsParameters - for i in range(0, len(objectIds), 1000): - params = GetObjectsParameters(include_directory_object_references=True, object_ids=objectIds[i:i + 1000]) - result = list(graph_client.objects.get_objects_by_object_ids(params)) - app = next((x for x in result if x.app_id and x.app_id == 'e8de9221-a19c-4c81-b814-fd37c6caf9d2'), None) - if app: - return app - return None - - def _get_vnet(cmd, vnet_id): vnet = parse_resource_id(vnet_id) network_client = _get_network_client(cmd.cli_ctx, subscription_id=vnet['subscription']) diff --git a/src/spring-cloud/azext_spring_cloud/azure_storage_file/_deserialization.py b/src/spring-cloud/azext_spring_cloud/azure_storage_file/_deserialization.py index 0e36b11fdad..92870d6922a 100644 --- a/src/spring-cloud/azext_spring_cloud/azure_storage_file/_deserialization.py +++ b/src/spring-cloud/azext_spring_cloud/azure_storage_file/_deserialization.py @@ -203,16 +203,16 @@ def _convert_xml_to_directories_and_files(response): for file_element in entries_element.findall('File'): # Name element - file = File() - file.name = file_element.findtext('Name') + _file = File() + _file.name = file_element.findtext('Name') # Properties properties_element = file_element.find('Properties') - file.properties.content_length = int( + _file.properties.content_length = int( properties_element.findtext('Content-Length')) # Add file to list - entries.append(file) + entries.append(_file) for directory_element in entries_element.findall('Directory'): # Name element diff --git a/src/spring-cloud/azext_spring_cloud/custom.py b/src/spring-cloud/azext_spring_cloud/custom.py index 5830adf2250..e398b4a27cf 100644 --- a/src/spring-cloud/azext_spring_cloud/custom.py +++ b/src/spring-cloud/azext_spring_cloud/custom.py @@ -14,6 +14,7 @@ from ._utils import _get_upload_local_file, _get_persistent_disk_size from knack.util import CLIError from .vendored_sdks.appplatform import models +from .vendored_sdks.appplatform.models import _app_platform_management_client_enums as AppPlatformEnums from knack.log import get_logger from .azure_storage_file import FileService from azure.cli.core.commands.client_factory import get_mgmt_service_client @@ -209,9 +210,13 @@ def app_create(cmd, client, resource_group, service, name, instance_count=instance_count, environment_variables=env, jvm_options=jvm_options, - runtime_version=runtime_version,) + net_core_main_entry_path=None, + runtime_version=runtime_version) + + file_type = "NetCoreZip" if runtime_version == AppPlatformEnums.RuntimeVersion.net_core_31 else "Jar" + user_source_info = models.UserSourceInfo( - relative_path='', type='Jar') + relative_path='', type=file_type) properties = models.DeploymentResourceProperties( deployment_settings=deployment_settings, source=user_source_info) @@ -255,6 +260,7 @@ def app_update(cmd, client, resource_group, service, name, deployment=None, runtime_version=None, jvm_options=None, + main_entry=None, env=None, enable_persistent_storage=None, https_only=None): @@ -296,6 +302,7 @@ def app_update(cmd, client, resource_group, service, name, instance_count=None, environment_variables=env, jvm_options=jvm_options, + net_core_main_entry_path=main_entry, runtime_version=runtime_version,) properties = models.DeploymentResourceProperties( deployment_settings=deployment_settings) @@ -395,10 +402,11 @@ def app_get(cmd, client, def app_deploy(cmd, client, resource_group, service, name, version=None, deployment=None, - jar_path=None, + artifact_path=None, target_module=None, runtime_version=None, jvm_options=None, + main_entry=None, env=None, no_wait=False): logger.warning(LOG_RUNNING_PROMPT) @@ -410,7 +418,7 @@ def app_deploy(cmd, client, resource_group, service, name, client.deployments.get(resource_group, service, name, deployment) - file_type, file_path = _get_upload_local_file(jar_path) + file_type, file_path = _get_upload_local_file(runtime_version, artifact_path) return _app_deploy(client, resource_group, @@ -425,6 +433,7 @@ def app_deploy(cmd, client, resource_group, service, name, None, None, env, + main_entry, target_module, no_wait, file_type, @@ -460,8 +469,8 @@ def app_get_build_log(cmd, client, resource_group, service, name, deployment=Non raise CLIError(NO_PRODUCTION_DEPLOYMENT_ERROR) deployment_properties = client.deployments.get( resource_group, service, name, deployment).properties - if deployment_properties.source.type == "Jar": - raise CLIError("Jar deployment has no build logs.") + if deployment_properties.source.type == "Jar" or deployment_properties.source.type == "NetCoreZip": + raise CLIError("{} deployment has no build logs.".format(deployment_properties.source.type)) return stream_logs(client.deployments, resource_group, service, name, deployment) @@ -611,10 +620,11 @@ def app_set_deployment(cmd, client, resource_group, service, name, deployment): def deployment_create(cmd, client, resource_group, service, app, name, skip_clone_settings=False, version=None, - jar_path=None, + artifact_path=None, target_module=None, runtime_version=None, jvm_options=None, + main_entry=None, cpu=None, memory=None, instance_count=None, @@ -641,7 +651,7 @@ def deployment_create(cmd, client, resource_group, service, app, name, memory = memory or 1 instance_count = instance_count or 1 - file_type, file_path = _get_upload_local_file(jar_path) + file_type, file_path = _get_upload_local_file(runtime_version, artifact_path) return _app_deploy(client, resource_group, service, app, name, version, file_path, runtime_version, jvm_options, @@ -649,6 +659,7 @@ def deployment_create(cmd, client, resource_group, service, app, name, memory, instance_count, env, + main_entry, target_module, no_wait, file_type) @@ -1122,12 +1133,14 @@ def _get_all_apps(client, resource_group, service): def _app_deploy(client, resource_group, service, app, name, version, path, runtime_version, jvm_options, cpu, memory, instance_count, env, + main_entry=None, target_module=None, no_wait=False, file_type="Jar", update=False): upload_url = None relative_path = None + logger.warning("file_type is {}".format(file_type)) logger.warning("[1/3] Requesting for upload URL") try: response = client.apps.get_resource_upload_url(resource_group, @@ -1154,6 +1167,7 @@ def _app_deploy(client, resource_group, service, app, name, version, path, runti memory_in_gb=memory, environment_variables=env, jvm_options=jvm_options, + net_core_main_entry_path=main_entry, runtime_version=runtime_version, instance_count=instance_count,) user_source_info = models.UserSourceInfo( diff --git a/src/spring-cloud/azext_spring_cloud/tests/latest/test_asc_validator.py b/src/spring-cloud/azext_spring_cloud/tests/latest/test_asc_validator.py index f9cb03565f7..87541a7df33 100644 --- a/src/spring-cloud/azext_spring_cloud/tests/latest/test_asc_validator.py +++ b/src/spring-cloud/azext_spring_cloud/tests/latest/test_asc_validator.py @@ -30,7 +30,7 @@ def _get_test_cmd(): def _mock_get_vnet(cmd, vnet_id): def _mock_get(id): - def _get_subnet(vnet_id, name, address_prefix=None, route_table=None, ip_configurations=None): + def _get_subnet(vnet_id, name, address_prefix=None, route_table=None, ip_configurations=None, location=None): subnet = mock.MagicMock() subnet.id = '{0}/subnets/{1}'.format(vnet_id, name) subnet.name = name @@ -39,24 +39,29 @@ def _get_subnet(vnet_id, name, address_prefix=None, route_table=None, ip_configu subnet.ip_configurations = ip_configurations return subnet - def _get_mock_vnet(id, **kwargs): + def _get_mock_vnet(id, location, **kwargs): vnet = mock.MagicMock() vnet.id = id + vnet.location = location vnet.subnets = [_get_subnet(id, x, **kwargs) for x in ['app', 'svc']] return vnet all_mocks = [ _get_mock_vnet( "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/virtualNetworks/test-vnet", + 'eastus', address_prefix='10.0.0.0/24'), _get_mock_vnet( "/subscriptions/11111111-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet", + 'eastus', address_prefix='10.0.0.0/24'), _get_mock_vnet( "/subscriptions/22222222-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet", + 'eastus', route_table=mock.MagicMock(), address_prefix='10.0.0.0/24'), _get_mock_vnet( "/subscriptions/33333333-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet", + 'eastus', address_prefix='10.0.0.0/24'), ] for x in all_mocks: @@ -113,7 +118,7 @@ def _get_mock_role_assignment(scope, object_id): class TestValidateIPRanges(unittest.TestCase): def test_lack_of_parameters(self): ns = Namespace(vnet='test-vnet', app_subnet='app', service_runtime_subnet=None, resource_group='test', - reserved_cidr_range='10.0.0.0/14', sku=None) + reserved_cidr_range='10.0.0.0/14', sku=None, location='eastus') with self.assertRaises(CLIError) as context: validate_vnet_required_parameters(ns) self.assertEqual('--app-subnet, --service-runtime-subnet must be set when deploying to VNet', @@ -148,7 +153,7 @@ def test_multi_cidr_with_overlaps(self): @mock.patch('azext_spring_cloud._validators._get_graph_rbac_management_client', _mock_get_graph_rbac_management_client) def test_valid_vnet(self): - ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', vnet='test-vnet', app_subnet='app', + ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', vnet='test-vnet', app_subnet='app', location='eastus', service_runtime_subnet='svc', resource_group='test', sku=None) validate_vnet(_get_test_cmd(), ns) self.assertEqual(ns.app_subnet.lower(), @@ -176,7 +181,7 @@ def test_only_subnet_name(self): @mock.patch('azext_spring_cloud._validators._get_graph_rbac_management_client', _mock_get_graph_rbac_management_client) def test_valid_subnets(self): - ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', resource_group='test', vnet=None, sku=None, + ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', resource_group='test', vnet=None, sku=None, location='eastus', app_subnet='/subscriptions/11111111-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet/subnets/app', service_runtime_subnet='/subscriptions/11111111-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet/subnets/svc') validate_vnet(_get_test_cmd(), ns) @@ -190,29 +195,15 @@ def test_valid_subnets(self): @mock.patch('azext_spring_cloud._validators._get_graph_rbac_management_client', _mock_get_graph_rbac_management_client) def test_subnet_with_route_table(self): - ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', resource_group='test', vnet=None, sku=None, + ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', resource_group='test', vnet=None, sku=None, location='eastus', app_subnet='/subscriptions/22222222-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet/subnets/app', service_runtime_subnet='/subscriptions/22222222-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet/subnets/svc') with self.assertRaises(CLIError) as context: validate_vnet(_get_test_cmd(), ns) self.assertTrue('subnet should not associate with any route tables.' in str(context.exception)) - @mock.patch('azext_spring_cloud._validators._get_vnet', _mock_get_vnet) - @mock.patch('azext_spring_cloud._validators._get_authorization_client', _mock_get_authorization_client) - @mock.patch('azext_spring_cloud._validators._get_graph_rbac_management_client', - _mock_get_graph_rbac_management_client) - def test_vnet_without_permission(self): - ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', resource_group='test', vnet=None, sku=None, - app_subnet='/subscriptions/33333333-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet/subnets/app', - service_runtime_subnet='/subscriptions/33333333-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet/subnets/svc') - with self.assertLogs('cli.azext_spring_cloud._validators', level='WARNING') as cm: - validate_vnet(_get_test_cmd(), ns) - self.assertTrue( - 'Please make sure to grant Azure Spring Cloud service permission to the virtual network.' in str( - cm.output)) - def test_subnets_same(self): - ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', resource_group='test', vnet=None, sku=None, + ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', resource_group='test', vnet=None, sku=None, location='eastus', app_subnet='/subscriptions/11111111-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/virtualnetworks/test-Vnet/subnets/app', service_runtime_subnet='/subscriptions/11111111-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet/subnets/app') with self.assertRaises(CLIError) as context: @@ -220,7 +211,7 @@ def test_subnets_same(self): self.assertEqual('--app-subnet and --service-runtime-subnet should not be same.', str(context.exception)) def test_subnets_in_different_vnet(self): - ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', resource_group='test', vnet=None, sku=None, + ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.0/16', resource_group='test', vnet=None, sku=None, location='eastus', app_subnet='/subscriptions/11111111-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/virtualnetworks/test-Vnet/subnets/app', service_runtime_subnet='/subscriptions/11111111-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/VirtualNetworks/test-vnet1/subnets/svc') with self.assertRaises(CLIError) as context: @@ -246,3 +237,15 @@ def test_set_default_cidr_range(self): self.assertEqual( 'Cannot set "reserved-cidr-range" automatically.Please specify "--reserved-cidr-range" with 3 unused CIDR ranges in your network environment.', str(context.exception)) + + @mock.patch('azext_spring_cloud._validators._get_vnet', _mock_get_vnet) + @mock.patch('azext_spring_cloud._validators._get_authorization_client', _mock_get_authorization_client) + @mock.patch('azext_spring_cloud._validators._get_graph_rbac_management_client', + _mock_get_graph_rbac_management_client) + def test_vnet_location(self): + ns = Namespace(reserved_cidr_range='10.0.0.0/8,20.0.0.0/16,30.0.0.1/16', resource_group='test', vnet=None, sku=None, location='westus', + app_subnet='/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/app', + service_runtime_subnet='/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/svc') + with self.assertRaises(CLIError) as context: + validate_vnet(_get_test_cmd(), ns) + self.assertTrue('--vnet and Azure Spring Cloud instance should be in the same location.' in str(context.exception)) diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/_app_platform_management_client.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/_app_platform_management_client.py index 4b2272208ce..a0ff01ceabf 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/_app_platform_management_client.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/_app_platform_management_client.py @@ -20,6 +20,7 @@ from .operations import CustomDomainsOperations from .operations import DeploymentsOperations from .operations import Operations +from .operations import RuntimeVersionsOperations from .operations import SkuOperations from . import models @@ -31,21 +32,23 @@ class AppPlatformManagementClient(SDKClient): :vartype config: AppPlatformManagementClientConfiguration :ivar services: Services operations - :vartype services: azure.mgmt.appplatform.operations.ServicesOperations + :vartype services: azure.mgmt.appplatform.v2019_05_01_preview.operations.ServicesOperations :ivar apps: Apps operations - :vartype apps: azure.mgmt.appplatform.operations.AppsOperations + :vartype apps: azure.mgmt.appplatform.v2019_05_01_preview.operations.AppsOperations :ivar bindings: Bindings operations - :vartype bindings: azure.mgmt.appplatform.operations.BindingsOperations + :vartype bindings: azure.mgmt.appplatform.v2019_05_01_preview.operations.BindingsOperations :ivar certificates: Certificates operations - :vartype certificates: azure.mgmt.appplatform.operations.CertificatesOperations + :vartype certificates: azure.mgmt.appplatform.v2019_05_01_preview.operations.CertificatesOperations :ivar custom_domains: CustomDomains operations - :vartype custom_domains: azure.mgmt.appplatform.operations.CustomDomainsOperations + :vartype custom_domains: azure.mgmt.appplatform.v2019_05_01_preview.operations.CustomDomainsOperations :ivar deployments: Deployments operations - :vartype deployments: azure.mgmt.appplatform.operations.DeploymentsOperations + :vartype deployments: azure.mgmt.appplatform.v2019_05_01_preview.operations.DeploymentsOperations :ivar operations: Operations operations - :vartype operations: azure.mgmt.appplatform.operations.Operations + :vartype operations: azure.mgmt.appplatform.v2019_05_01_preview.operations.Operations + :ivar runtime_versions: RuntimeVersions operations + :vartype runtime_versions: azure.mgmt.appplatform.v2019_05_01_preview.operations.RuntimeVersionsOperations :ivar sku: Sku operations - :vartype sku: azure.mgmt.appplatform.operations.SkuOperations + :vartype sku: azure.mgmt.appplatform.v2019_05_01_preview.operations.SkuOperations :param credentials: Credentials needed for the client to connect to Azure. :type credentials: :mod:`A msrestazure Credentials @@ -82,5 +85,7 @@ def __init__( self._client, self.config, self._serialize, self._deserialize) self.operations = Operations( self._client, self.config, self._serialize, self._deserialize) + self.runtime_versions = RuntimeVersionsOperations( + self._client, self.config, self._serialize, self._deserialize) self.sku = SkuOperations( self._client, self.config, self._serialize, self._deserialize) diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/__init__.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/__init__.py index fd6e2ee703f..05307b382a4 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/__init__.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/__init__.py @@ -12,6 +12,7 @@ try: from ._models_py3 import AppResource from ._models_py3 import AppResourceProperties + from ._models_py3 import AvailableRuntimeVersions from ._models_py3 import BindingResource from ._models_py3 import BindingResourceProperties from ._models_py3 import CertificateProperties @@ -38,6 +39,7 @@ from ._models_py3 import NameAvailability from ._models_py3 import NameAvailabilityParameters from ._models_py3 import NetworkProfile + from ._models_py3 import NetworkProfileOutboundIPs from ._models_py3 import OperationDetail from ._models_py3 import OperationDisplay from ._models_py3 import OperationProperties @@ -56,6 +58,7 @@ from ._models_py3 import ServiceSpecification from ._models_py3 import Sku from ._models_py3 import SkuCapacity + from ._models_py3 import SupportedRuntimeVersion from ._models_py3 import TemporaryDisk from ._models_py3 import TestKeys from ._models_py3 import TraceProperties @@ -64,6 +67,7 @@ except (SyntaxError, ImportError): from ._models import AppResource from ._models import AppResourceProperties + from ._models import AvailableRuntimeVersions from ._models import BindingResource from ._models import BindingResourceProperties from ._models import CertificateProperties @@ -90,6 +94,7 @@ from ._models import NameAvailability from ._models import NameAvailabilityParameters from ._models import NetworkProfile + from ._models import NetworkProfileOutboundIPs from ._models import OperationDetail from ._models import OperationDisplay from ._models import OperationProperties @@ -108,6 +113,7 @@ from ._models import ServiceSpecification from ._models import Sku from ._models import SkuCapacity + from ._models import SupportedRuntimeVersion from ._models import TemporaryDisk from ._models import TestKeys from ._models import TraceProperties @@ -135,11 +141,14 @@ SkuScaleType, ResourceSkuRestrictionsType, ResourceSkuRestrictionsReasonCode, + SupportedRuntimeValue, + SupportedRuntimePlatform, ) __all__ = [ 'AppResource', 'AppResourceProperties', + 'AvailableRuntimeVersions', 'BindingResource', 'BindingResourceProperties', 'CertificateProperties', @@ -166,6 +175,7 @@ 'NameAvailability', 'NameAvailabilityParameters', 'NetworkProfile', + 'NetworkProfileOutboundIPs', 'OperationDetail', 'OperationDisplay', 'OperationProperties', @@ -184,6 +194,7 @@ 'ServiceSpecification', 'Sku', 'SkuCapacity', + 'SupportedRuntimeVersion', 'TemporaryDisk', 'TestKeys', 'TraceProperties', @@ -210,4 +221,6 @@ 'SkuScaleType', 'ResourceSkuRestrictionsType', 'ResourceSkuRestrictionsReasonCode', + 'SupportedRuntimeValue', + 'SupportedRuntimePlatform', ] diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_app_platform_management_client_enums.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_app_platform_management_client_enums.py index 43b052634d0..39cfc85a61a 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_app_platform_management_client_enums.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_app_platform_management_client_enums.py @@ -67,6 +67,7 @@ class AppResourceProvisioningState(str, Enum): class UserSourceType(str, Enum): jar = "Jar" + net_core_zip = "NetCoreZip" source = "Source" @@ -74,6 +75,7 @@ class RuntimeVersion(str, Enum): java_8 = "Java_8" java_11 = "Java_11" + net_core_31 = "NetCore_31" class DeploymentResourceProvisioningState(str, Enum): @@ -112,3 +114,16 @@ class ResourceSkuRestrictionsReasonCode(str, Enum): quota_id = "QuotaId" not_available_for_subscription = "NotAvailableForSubscription" + + +class SupportedRuntimeValue(str, Enum): + + java_8 = "Java_8" + java_11 = "Java_11" + net_core_31 = "NetCore_31" + + +class SupportedRuntimePlatform(str, Enum): + + java = "Java" + net_core = ".NET Core" diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_models.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_models.py index 378fd044a8d..08f58d3ef8f 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_models.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_models.py @@ -90,9 +90,11 @@ class AppResource(ProxyResource): :ivar type: The type of the resource. :vartype type: str :param properties: Properties of the App resource - :type properties: ~azure.mgmt.appplatform.models.AppResourceProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResourceProperties :param identity: The Managed Identity type of the app resource - :type identity: ~azure.mgmt.appplatform.models.ManagedIdentityProperties + :type identity: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ManagedIdentityProperties :param location: The GEO location of the application, always the same with its parent resource :type location: str @@ -133,7 +135,7 @@ class AppResourceProperties(Model): :ivar provisioning_state: Provisioning state of the App. Possible values include: 'Succeeded', 'Failed', 'Creating', 'Updating' :vartype provisioning_state: str or - ~azure.mgmt.appplatform.models.AppResourceProvisioningState + ~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResourceProvisioningState :param active_deployment_name: Name of the active deployment of the App :type active_deployment_name: str :param fqdn: Fully qualified dns Name. @@ -143,9 +145,11 @@ class AppResourceProperties(Model): :ivar created_time: Date time when the resource is created :vartype created_time: datetime :param temporary_disk: Temporary disk settings - :type temporary_disk: ~azure.mgmt.appplatform.models.TemporaryDisk + :type temporary_disk: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.TemporaryDisk :param persistent_disk: Persistent disk settings - :type persistent_disk: ~azure.mgmt.appplatform.models.PersistentDisk + :type persistent_disk: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.PersistentDisk """ _validation = { @@ -179,6 +183,30 @@ def __init__(self, **kwargs): self.persistent_disk = kwargs.get('persistent_disk', None) +class AvailableRuntimeVersions(Model): + """AvailableRuntimeVersions. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar value: A list of all supported runtime versions. + :vartype value: + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.SupportedRuntimeVersion] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SupportedRuntimeVersion]'}, + } + + def __init__(self, **kwargs): + super(AvailableRuntimeVersions, self).__init__(**kwargs) + self.value = None + + class BindingResource(ProxyResource): """Binding resource payload. @@ -192,7 +220,8 @@ class BindingResource(ProxyResource): :ivar type: The type of the resource. :vartype type: str :param properties: Properties of the Binding resource - :type properties: ~azure.mgmt.appplatform.models.BindingResourceProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.BindingResourceProperties """ _validation = { @@ -219,11 +248,11 @@ class BindingResourceProperties(Model): Variables are only populated by the server, and will be ignored when sending a request. - :param resource_name: The name of the bound resource - :type resource_name: str - :param resource_type: The standard Azure resource type of the bound + :ivar resource_name: The name of the bound resource + :vartype resource_name: str + :ivar resource_type: The standard Azure resource type of the bound resource - :type resource_type: str + :vartype resource_type: str :param resource_id: The Azure resource id of the bound resource :type resource_id: str :param key: The key of the bound resource @@ -240,6 +269,8 @@ class BindingResourceProperties(Model): """ _validation = { + 'resource_name': {'readonly': True}, + 'resource_type': {'readonly': True}, 'generated_properties': {'readonly': True}, 'created_at': {'readonly': True}, 'updated_at': {'readonly': True}, @@ -258,8 +289,8 @@ class BindingResourceProperties(Model): def __init__(self, **kwargs): super(BindingResourceProperties, self).__init__(**kwargs) - self.resource_name = kwargs.get('resource_name', None) - self.resource_type = kwargs.get('resource_type', None) + self.resource_name = None + self.resource_type = None self.resource_id = kwargs.get('resource_id', None) self.key = kwargs.get('key', None) self.binding_parameters = kwargs.get('binding_parameters', None) @@ -350,7 +381,8 @@ class CertificateResource(ProxyResource): :ivar type: The type of the resource. :vartype type: str :param properties: Properties of the certificate resource payload. - :type properties: ~azure.mgmt.appplatform.models.CertificateProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CertificateProperties """ _validation = { @@ -375,7 +407,8 @@ class CloudError(Model): """An error response from the service. :param error: - :type error: ~azure.mgmt.appplatform.models.CloudErrorBody + :type error: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CloudErrorBody """ _attribute_map = { @@ -412,7 +445,8 @@ class CloudErrorBody(Model): of the property in error. :type target: str :param details: A list of additional details about the error. - :type details: list[~azure.mgmt.appplatform.models.CloudErrorBody] + :type details: + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.CloudErrorBody] """ _attribute_map = { @@ -440,20 +474,22 @@ class ClusterResourceProperties(Model): values include: 'Creating', 'Updating', 'Deleting', 'Deleted', 'Succeeded', 'Failed', 'Moving', 'Moved', 'MoveFailed' :vartype provisioning_state: str or - ~azure.mgmt.appplatform.models.ProvisioningState + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ProvisioningState :param config_server_properties: Config server git properties of the Service :type config_server_properties: - ~azure.mgmt.appplatform.models.ConfigServerProperties + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ConfigServerProperties :param trace: Trace properties of the Service - :type trace: ~azure.mgmt.appplatform.models.TraceProperties + :type trace: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.TraceProperties + :param network_profile: Network profile of the Service + :type network_profile: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.NetworkProfile :ivar version: Version of the Service :vartype version: int :ivar service_id: ServiceInstanceEntity GUID which uniquely identifies a created resource :vartype service_id: str - :param network_profile: Network profile of the Service - :type network_profile: ~azure.mgmt.appplatform.models.NetworkProfile """ _validation = { @@ -466,9 +502,9 @@ class ClusterResourceProperties(Model): 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, 'config_server_properties': {'key': 'configServerProperties', 'type': 'ConfigServerProperties'}, 'trace': {'key': 'trace', 'type': 'TraceProperties'}, + 'network_profile': {'key': 'networkProfile', 'type': 'NetworkProfile'}, 'version': {'key': 'version', 'type': 'int'}, 'service_id': {'key': 'serviceId', 'type': 'str'}, - 'network_profile': {'key': 'networkProfile', 'type': 'NetworkProfile'}, } def __init__(self, **kwargs): @@ -476,9 +512,9 @@ def __init__(self, **kwargs): self.provisioning_state = None self.config_server_properties = kwargs.get('config_server_properties', None) self.trace = kwargs.get('trace', None) + self.network_profile = kwargs.get('network_profile', None) self.version = None self.service_id = None - self.network_profile = kwargs.get('network_profile', None) class ConfigServerGitProperty(Model): @@ -488,7 +524,7 @@ class ConfigServerGitProperty(Model): :param repositories: Repositories of git. :type repositories: - list[~azure.mgmt.appplatform.models.GitPatternRepository] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.GitPatternRepository] :param uri: Required. URI of the repository :type uri: str :param label: Label of the repository @@ -548,11 +584,13 @@ class ConfigServerProperties(Model): :ivar state: State of the config server. Possible values include: 'NotAvailable', 'Deleted', 'Failed', 'Succeeded', 'Updating' - :vartype state: str or ~azure.mgmt.appplatform.models.ConfigServerState + :vartype state: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ConfigServerState :param error: Error when apply config server settings. - :type error: ~azure.mgmt.appplatform.models.Error + :type error: ~azure.mgmt.appplatform.v2019_05_01_preview.models.Error :param config_server: Settings of config server. - :type config_server: ~azure.mgmt.appplatform.models.ConfigServerSettings + :type config_server: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ConfigServerSettings """ _validation = { @@ -576,7 +614,8 @@ class ConfigServerSettings(Model): """The settings of config server. :param git_property: Property of git environment. - :type git_property: ~azure.mgmt.appplatform.models.ConfigServerGitProperty + :type git_property: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ConfigServerGitProperty """ _attribute_map = { @@ -591,14 +630,21 @@ def __init__(self, **kwargs): class CustomDomainProperties(Model): """Custom domain of app resource payload. + Variables are only populated by the server, and will be ignored when + sending a request. + :param thumbprint: The thumbprint of bound certificate. :type thumbprint: str - :param app_name: The app name of domain. - :type app_name: str + :ivar app_name: The app name of domain. + :vartype app_name: str :param cert_name: The bound certificate name of domain. :type cert_name: str """ + _validation = { + 'app_name': {'readonly': True}, + } + _attribute_map = { 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, 'app_name': {'key': 'appName', 'type': 'str'}, @@ -608,7 +654,7 @@ class CustomDomainProperties(Model): def __init__(self, **kwargs): super(CustomDomainProperties, self).__init__(**kwargs) self.thumbprint = kwargs.get('thumbprint', None) - self.app_name = kwargs.get('app_name', None) + self.app_name = None self.cert_name = kwargs.get('cert_name', None) @@ -625,7 +671,8 @@ class CustomDomainResource(ProxyResource): :ivar type: The type of the resource. :vartype type: str :param properties: Properties of the custom domain resource. - :type properties: ~azure.mgmt.appplatform.models.CustomDomainProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CustomDomainProperties """ _validation = { @@ -702,6 +749,8 @@ class DeploymentInstance(Model): :vartype reason: str :ivar discovery_status: Discovery status of the deployment instance :vartype discovery_status: str + :ivar start_time: Start time of the deployment instance + :vartype start_time: str """ _validation = { @@ -709,6 +758,7 @@ class DeploymentInstance(Model): 'status': {'readonly': True}, 'reason': {'readonly': True}, 'discovery_status': {'readonly': True}, + 'start_time': {'readonly': True}, } _attribute_map = { @@ -716,6 +766,7 @@ class DeploymentInstance(Model): 'status': {'key': 'status', 'type': 'str'}, 'reason': {'key': 'reason', 'type': 'str'}, 'discovery_status': {'key': 'discoveryStatus', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'str'}, } def __init__(self, **kwargs): @@ -724,6 +775,7 @@ def __init__(self, **kwargs): self.status = None self.reason = None self.discovery_status = None + self.start_time = None class DeploymentResource(ProxyResource): @@ -740,7 +792,7 @@ class DeploymentResource(ProxyResource): :vartype type: str :param properties: Properties of the Deployment resource :type properties: - ~azure.mgmt.appplatform.models.DeploymentResourceProperties + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResourceProperties """ _validation = { @@ -768,28 +820,29 @@ class DeploymentResourceProperties(Model): sending a request. :param source: Uploaded source information of the deployment. - :type source: ~azure.mgmt.appplatform.models.UserSourceInfo + :type source: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.UserSourceInfo :ivar app_name: App name of the deployment :vartype app_name: str :param deployment_settings: Deployment settings of the Deployment :type deployment_settings: - ~azure.mgmt.appplatform.models.DeploymentSettings + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentSettings :ivar provisioning_state: Provisioning state of the Deployment. Possible values include: 'Creating', 'Updating', 'Succeeded', 'Failed' :vartype provisioning_state: str or - ~azure.mgmt.appplatform.models.DeploymentResourceProvisioningState + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResourceProvisioningState :ivar status: Status of the Deployment. Possible values include: 'Unknown', 'Stopped', 'Running', 'Failed', 'Allocating', 'Upgrading', 'Compiling' :vartype status: str or - ~azure.mgmt.appplatform.models.DeploymentResourceStatus + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResourceStatus :ivar active: Indicates whether the Deployment is active :vartype active: bool :ivar created_time: Date time when the resource is created :vartype created_time: datetime :ivar instances: Collection of instances belong to the Deployment :vartype instances: - list[~azure.mgmt.appplatform.models.DeploymentInstance] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentInstance] """ _validation = { @@ -835,21 +888,25 @@ class DeploymentSettings(Model): :type memory_in_gb: int :param jvm_options: JVM parameter :type jvm_options: str + :param net_core_main_entry_path: The path to the .NET executable relative + to zip root + :type net_core_main_entry_path: str :param instance_count: Instance count, basic tier should be in range (1, 25), standard tier should be in range (1, 500). Default value: 1 . :type instance_count: int :param environment_variables: Collection of environment variables :type environment_variables: dict[str, str] :param runtime_version: Runtime version. Possible values include: - 'Java_8', 'Java_11' + 'Java_8', 'Java_11', 'NetCore_31' :type runtime_version: str or - ~azure.mgmt.appplatform.models.RuntimeVersion + ~azure.mgmt.appplatform.v2019_05_01_preview.models.RuntimeVersion """ _attribute_map = { 'cpu': {'key': 'cpu', 'type': 'int'}, 'memory_in_gb': {'key': 'memoryInGB', 'type': 'int'}, 'jvm_options': {'key': 'jvmOptions', 'type': 'str'}, + 'net_core_main_entry_path': {'key': 'netCoreMainEntryPath', 'type': 'str'}, 'instance_count': {'key': 'instanceCount', 'type': 'int'}, 'environment_variables': {'key': 'environmentVariables', 'type': '{str}'}, 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, @@ -860,6 +917,7 @@ def __init__(self, **kwargs): self.cpu = kwargs.get('cpu', 1) self.memory_in_gb = kwargs.get('memory_in_gb', 1) self.jvm_options = kwargs.get('jvm_options', None) + self.net_core_main_entry_path = kwargs.get('net_core_main_entry_path', None) self.instance_count = kwargs.get('instance_count', 1) self.environment_variables = kwargs.get('environment_variables', None) self.runtime_version = kwargs.get('runtime_version', None) @@ -999,7 +1057,8 @@ class ManagedIdentityProperties(Model): :param type: Possible values include: 'None', 'SystemAssigned', 'UserAssigned', 'SystemAssigned,UserAssigned' - :type type: str or ~azure.mgmt.appplatform.models.ManagedIdentityType + :type type: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ManagedIdentityType :param principal_id: :type principal_id: str :param tenant_id: @@ -1064,7 +1123,8 @@ class MetricSpecification(Model): returned for time duration where no metric is emitted/published. :type fill_gap_with_zero: bool :param dimensions: Dimensions of the metric - :type dimensions: list[~azure.mgmt.appplatform.models.MetricDimension] + :type dimensions: + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.MetricDimension] """ _attribute_map = { @@ -1148,6 +1208,9 @@ def __init__(self, **kwargs): class NetworkProfile(Model): """Service network profile payload. + Variables are only populated by the server, and will be ignored when + sending a request. + :param service_runtime_subnet_id: Fully qualified resource Id of the subnet to host Azure Spring Cloud Service Runtime :type service_runtime_subnet_id: str @@ -1162,14 +1225,23 @@ class NetworkProfile(Model): :param app_network_resource_group: Name of the resource group containing network resources of Azure Spring Cloud Apps :type app_network_resource_group: str + :ivar outbound_ips: Desired outbound IP resources for Azure Spring Cloud + instance. + :vartype outbound_ips: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.NetworkProfileOutboundIPs """ + _validation = { + 'outbound_ips': {'readonly': True}, + } + _attribute_map = { 'service_runtime_subnet_id': {'key': 'serviceRuntimeSubnetId', 'type': 'str'}, 'app_subnet_id': {'key': 'appSubnetId', 'type': 'str'}, 'service_cidr': {'key': 'serviceCidr', 'type': 'str'}, 'service_runtime_network_resource_group': {'key': 'serviceRuntimeNetworkResourceGroup', 'type': 'str'}, 'app_network_resource_group': {'key': 'appNetworkResourceGroup', 'type': 'str'}, + 'outbound_ips': {'key': 'outboundIPs', 'type': 'NetworkProfileOutboundIPs'}, } def __init__(self, **kwargs): @@ -1179,6 +1251,30 @@ def __init__(self, **kwargs): self.service_cidr = kwargs.get('service_cidr', None) self.service_runtime_network_resource_group = kwargs.get('service_runtime_network_resource_group', None) self.app_network_resource_group = kwargs.get('app_network_resource_group', None) + self.outbound_ips = None + + +class NetworkProfileOutboundIPs(Model): + """Desired outbound IP resources for Azure Spring Cloud instance. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar public_ips: A list of public IP addresses. + :vartype public_ips: list[str] + """ + + _validation = { + 'public_ips': {'readonly': True}, + } + + _attribute_map = { + 'public_ips': {'key': 'publicIPs', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(NetworkProfileOutboundIPs, self).__init__(**kwargs) + self.public_ips = None class OperationDetail(Model): @@ -1189,11 +1285,13 @@ class OperationDetail(Model): :param is_data_action: Indicates whether the operation is a data action :type is_data_action: bool :param display: Display of the operation - :type display: ~azure.mgmt.appplatform.models.OperationDisplay + :type display: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.OperationDisplay :param origin: Origin of the operation :type origin: str :param properties: Properties of the operation - :type properties: ~azure.mgmt.appplatform.models.OperationProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.OperationProperties """ _attribute_map = { @@ -1246,7 +1344,7 @@ class OperationProperties(Model): :param service_specification: Service specifications of the operation :type service_specification: - ~azure.mgmt.appplatform.models.ServiceSpecification + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceSpecification """ _attribute_map = { @@ -1297,7 +1395,8 @@ class RegenerateTestKeyRequestPayload(Model): :param key_type: Required. Type of the test key. Possible values include: 'Primary', 'Secondary' - :type key_type: str or ~azure.mgmt.appplatform.models.TestKeyType + :type key_type: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.TestKeyType """ _validation = { @@ -1323,18 +1422,19 @@ class ResourceSku(Model): :param tier: Gets the tier of SKU. :type tier: str :param capacity: Gets the capacity of SKU. - :type capacity: ~azure.mgmt.appplatform.models.SkuCapacity + :type capacity: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.SkuCapacity :param locations: Gets the set of locations that the SKU is available. :type locations: list[str] :param location_info: Gets a list of locations and availability zones in those locations where the SKU is available. :type location_info: - list[~azure.mgmt.appplatform.models.ResourceSkuLocationInfo] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuLocationInfo] :param restrictions: Gets the restrictions because of which SKU cannot be used. This is empty if there are no restrictions. :type restrictions: - list[~azure.mgmt.appplatform.models.ResourceSkuRestrictions] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuRestrictions] """ _attribute_map = { @@ -1388,7 +1488,7 @@ class ResourceSkuLocationInfo(Model): :param zone_details: Gets details of capabilities available to a SKU in specific zones. :type zone_details: - list[~azure.mgmt.appplatform.models.ResourceSkuZoneDetails] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuZoneDetails] """ _attribute_map = { @@ -1430,7 +1530,7 @@ class ResourceSkuRestrictions(Model): :param type: Gets the type of restrictions. Possible values include: 'Location', 'Zone' :type type: str or - ~azure.mgmt.appplatform.models.ResourceSkuRestrictionsType + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuRestrictionsType :param values: Gets the value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted. @@ -1438,11 +1538,11 @@ class ResourceSkuRestrictions(Model): :param restriction_info: Gets the information about the restriction where the SKU cannot be used. :type restriction_info: - ~azure.mgmt.appplatform.models.ResourceSkuRestrictionInfo + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuRestrictionInfo :param reason_code: Gets the reason for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription' :type reason_code: str or - ~azure.mgmt.appplatform.models.ResourceSkuRestrictionsReasonCode + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuRestrictionsReasonCode """ _attribute_map = { @@ -1470,7 +1570,7 @@ class ResourceSkuZoneDetails(Model): the SKU in the specified list of zones. :type capabilities: - list[~azure.mgmt.appplatform.models.ResourceSkuCapabilities] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuCapabilities] """ _attribute_map = { @@ -1561,9 +1661,10 @@ class ServiceResource(TrackedResource): describe the resource. :type tags: dict[str, str] :param properties: Properties of the Service resource - :type properties: ~azure.mgmt.appplatform.models.ClusterResourceProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ClusterResourceProperties :param sku: Sku of the Service resource - :type sku: ~azure.mgmt.appplatform.models.Sku + :type sku: ~azure.mgmt.appplatform.v2019_05_01_preview.models.Sku """ _validation = { @@ -1593,11 +1694,11 @@ class ServiceSpecification(Model): :param log_specifications: Specifications of the Log for Azure Monitoring :type log_specifications: - list[~azure.mgmt.appplatform.models.LogSpecification] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.LogSpecification] :param metric_specifications: Specifications of the Metrics for Azure Monitoring :type metric_specifications: - list[~azure.mgmt.appplatform.models.MetricSpecification] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.MetricSpecification] """ _attribute_map = { @@ -1648,7 +1749,8 @@ class SkuCapacity(Model): :type default: int :param scale_type: Gets or sets the type of the scale. Possible values include: 'None', 'Manual', 'Automatic' - :type scale_type: str or ~azure.mgmt.appplatform.models.SkuScaleType + :type scale_type: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.SkuScaleType """ _validation = { @@ -1670,6 +1772,34 @@ def __init__(self, **kwargs): self.scale_type = kwargs.get('scale_type', None) +class SupportedRuntimeVersion(Model): + """Supported deployment runtime version descriptor. + + :param value: The raw value which could be passed to deployment CRUD + operations. Possible values include: 'Java_8', 'Java_11', 'NetCore_31' + :type value: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.SupportedRuntimeValue + :param platform: The platform of this runtime version (possible values: + "Java" or ".NET"). Possible values include: 'Java', '.NET Core' + :type platform: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.SupportedRuntimePlatform + :param version: The detailed version (major.minor) of the platform. + :type version: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': 'str'}, + 'platform': {'key': 'platform', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(SupportedRuntimeVersion, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.platform = kwargs.get('platform', None) + self.version = kwargs.get('version', None) + + class TemporaryDisk(Model): """Temporary disk payload. @@ -1734,9 +1864,10 @@ class TraceProperties(Model): :ivar state: State of the trace proxy. Possible values include: 'NotAvailable', 'Failed', 'Succeeded', 'Updating' - :vartype state: str or ~azure.mgmt.appplatform.models.TraceProxyState + :vartype state: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.TraceProxyState :param error: Error when apply trace proxy changes. - :type error: ~azure.mgmt.appplatform.models.Error + :type error: ~azure.mgmt.appplatform.v2019_05_01_preview.models.Error :param enabled: Indicates whether enable the tracing functionality :type enabled: bool :param app_insight_instrumentation_key: Target application insight @@ -1767,8 +1898,9 @@ class UserSourceInfo(Model): """Source information for a deployment. :param type: Type of the source uploaded. Possible values include: 'Jar', - 'Source' - :type type: str or ~azure.mgmt.appplatform.models.UserSourceType + 'NetCoreZip', 'Source' + :type type: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.UserSourceType :param relative_path: Relative path of the storage which stores the source :type relative_path: str :param version: Version of the source diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_models_py3.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_models_py3.py index 0adf115c92f..b5b8edb6c82 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_models_py3.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_models_py3.py @@ -90,9 +90,11 @@ class AppResource(ProxyResource): :ivar type: The type of the resource. :vartype type: str :param properties: Properties of the App resource - :type properties: ~azure.mgmt.appplatform.models.AppResourceProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResourceProperties :param identity: The Managed Identity type of the app resource - :type identity: ~azure.mgmt.appplatform.models.ManagedIdentityProperties + :type identity: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ManagedIdentityProperties :param location: The GEO location of the application, always the same with its parent resource :type location: str @@ -133,7 +135,7 @@ class AppResourceProperties(Model): :ivar provisioning_state: Provisioning state of the App. Possible values include: 'Succeeded', 'Failed', 'Creating', 'Updating' :vartype provisioning_state: str or - ~azure.mgmt.appplatform.models.AppResourceProvisioningState + ~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResourceProvisioningState :param active_deployment_name: Name of the active deployment of the App :type active_deployment_name: str :param fqdn: Fully qualified dns Name. @@ -143,9 +145,11 @@ class AppResourceProperties(Model): :ivar created_time: Date time when the resource is created :vartype created_time: datetime :param temporary_disk: Temporary disk settings - :type temporary_disk: ~azure.mgmt.appplatform.models.TemporaryDisk + :type temporary_disk: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.TemporaryDisk :param persistent_disk: Persistent disk settings - :type persistent_disk: ~azure.mgmt.appplatform.models.PersistentDisk + :type persistent_disk: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.PersistentDisk """ _validation = { @@ -179,6 +183,30 @@ def __init__(self, *, public: bool=None, active_deployment_name: str=None, fqdn: self.persistent_disk = persistent_disk +class AvailableRuntimeVersions(Model): + """AvailableRuntimeVersions. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar value: A list of all supported runtime versions. + :vartype value: + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.SupportedRuntimeVersion] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[SupportedRuntimeVersion]'}, + } + + def __init__(self, **kwargs) -> None: + super(AvailableRuntimeVersions, self).__init__(**kwargs) + self.value = None + + class BindingResource(ProxyResource): """Binding resource payload. @@ -192,7 +220,8 @@ class BindingResource(ProxyResource): :ivar type: The type of the resource. :vartype type: str :param properties: Properties of the Binding resource - :type properties: ~azure.mgmt.appplatform.models.BindingResourceProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.BindingResourceProperties """ _validation = { @@ -219,11 +248,11 @@ class BindingResourceProperties(Model): Variables are only populated by the server, and will be ignored when sending a request. - :param resource_name: The name of the bound resource - :type resource_name: str - :param resource_type: The standard Azure resource type of the bound + :ivar resource_name: The name of the bound resource + :vartype resource_name: str + :ivar resource_type: The standard Azure resource type of the bound resource - :type resource_type: str + :vartype resource_type: str :param resource_id: The Azure resource id of the bound resource :type resource_id: str :param key: The key of the bound resource @@ -240,6 +269,8 @@ class BindingResourceProperties(Model): """ _validation = { + 'resource_name': {'readonly': True}, + 'resource_type': {'readonly': True}, 'generated_properties': {'readonly': True}, 'created_at': {'readonly': True}, 'updated_at': {'readonly': True}, @@ -256,10 +287,10 @@ class BindingResourceProperties(Model): 'updated_at': {'key': 'updatedAt', 'type': 'str'}, } - def __init__(self, *, resource_name: str=None, resource_type: str=None, resource_id: str=None, key: str=None, binding_parameters=None, **kwargs) -> None: + def __init__(self, *, resource_id: str=None, key: str=None, binding_parameters=None, **kwargs) -> None: super(BindingResourceProperties, self).__init__(**kwargs) - self.resource_name = resource_name - self.resource_type = resource_type + self.resource_name = None + self.resource_type = None self.resource_id = resource_id self.key = key self.binding_parameters = binding_parameters @@ -350,7 +381,8 @@ class CertificateResource(ProxyResource): :ivar type: The type of the resource. :vartype type: str :param properties: Properties of the certificate resource payload. - :type properties: ~azure.mgmt.appplatform.models.CertificateProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CertificateProperties """ _validation = { @@ -375,7 +407,8 @@ class CloudError(Model): """An error response from the service. :param error: - :type error: ~azure.mgmt.appplatform.models.CloudErrorBody + :type error: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CloudErrorBody """ _attribute_map = { @@ -412,7 +445,8 @@ class CloudErrorBody(Model): of the property in error. :type target: str :param details: A list of additional details about the error. - :type details: list[~azure.mgmt.appplatform.models.CloudErrorBody] + :type details: + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.CloudErrorBody] """ _attribute_map = { @@ -440,20 +474,22 @@ class ClusterResourceProperties(Model): values include: 'Creating', 'Updating', 'Deleting', 'Deleted', 'Succeeded', 'Failed', 'Moving', 'Moved', 'MoveFailed' :vartype provisioning_state: str or - ~azure.mgmt.appplatform.models.ProvisioningState + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ProvisioningState :param config_server_properties: Config server git properties of the Service :type config_server_properties: - ~azure.mgmt.appplatform.models.ConfigServerProperties + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ConfigServerProperties :param trace: Trace properties of the Service - :type trace: ~azure.mgmt.appplatform.models.TraceProperties + :type trace: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.TraceProperties + :param network_profile: Network profile of the Service + :type network_profile: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.NetworkProfile :ivar version: Version of the Service :vartype version: int :ivar service_id: ServiceInstanceEntity GUID which uniquely identifies a created resource :vartype service_id: str - :param network_profile: Network profile of the Service - :type network_profile: ~azure.mgmt.appplatform.models.NetworkProfile """ _validation = { @@ -466,9 +502,9 @@ class ClusterResourceProperties(Model): 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, 'config_server_properties': {'key': 'configServerProperties', 'type': 'ConfigServerProperties'}, 'trace': {'key': 'trace', 'type': 'TraceProperties'}, + 'network_profile': {'key': 'networkProfile', 'type': 'NetworkProfile'}, 'version': {'key': 'version', 'type': 'int'}, 'service_id': {'key': 'serviceId', 'type': 'str'}, - 'network_profile': {'key': 'networkProfile', 'type': 'NetworkProfile'}, } def __init__(self, *, config_server_properties=None, trace=None, network_profile=None, **kwargs) -> None: @@ -476,9 +512,9 @@ def __init__(self, *, config_server_properties=None, trace=None, network_profile self.provisioning_state = None self.config_server_properties = config_server_properties self.trace = trace + self.network_profile = network_profile self.version = None self.service_id = None - self.network_profile = network_profile class ConfigServerGitProperty(Model): @@ -488,7 +524,7 @@ class ConfigServerGitProperty(Model): :param repositories: Repositories of git. :type repositories: - list[~azure.mgmt.appplatform.models.GitPatternRepository] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.GitPatternRepository] :param uri: Required. URI of the repository :type uri: str :param label: Label of the repository @@ -548,11 +584,13 @@ class ConfigServerProperties(Model): :ivar state: State of the config server. Possible values include: 'NotAvailable', 'Deleted', 'Failed', 'Succeeded', 'Updating' - :vartype state: str or ~azure.mgmt.appplatform.models.ConfigServerState + :vartype state: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ConfigServerState :param error: Error when apply config server settings. - :type error: ~azure.mgmt.appplatform.models.Error + :type error: ~azure.mgmt.appplatform.v2019_05_01_preview.models.Error :param config_server: Settings of config server. - :type config_server: ~azure.mgmt.appplatform.models.ConfigServerSettings + :type config_server: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ConfigServerSettings """ _validation = { @@ -576,7 +614,8 @@ class ConfigServerSettings(Model): """The settings of config server. :param git_property: Property of git environment. - :type git_property: ~azure.mgmt.appplatform.models.ConfigServerGitProperty + :type git_property: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ConfigServerGitProperty """ _attribute_map = { @@ -591,24 +630,31 @@ def __init__(self, *, git_property=None, **kwargs) -> None: class CustomDomainProperties(Model): """Custom domain of app resource payload. + Variables are only populated by the server, and will be ignored when + sending a request. + :param thumbprint: The thumbprint of bound certificate. :type thumbprint: str - :param app_name: The app name of domain. - :type app_name: str + :ivar app_name: The app name of domain. + :vartype app_name: str :param cert_name: The bound certificate name of domain. :type cert_name: str """ + _validation = { + 'app_name': {'readonly': True}, + } + _attribute_map = { 'thumbprint': {'key': 'thumbprint', 'type': 'str'}, 'app_name': {'key': 'appName', 'type': 'str'}, 'cert_name': {'key': 'certName', 'type': 'str'}, } - def __init__(self, *, thumbprint: str=None, app_name: str=None, cert_name: str=None, **kwargs) -> None: + def __init__(self, *, thumbprint: str=None, cert_name: str=None, **kwargs) -> None: super(CustomDomainProperties, self).__init__(**kwargs) self.thumbprint = thumbprint - self.app_name = app_name + self.app_name = None self.cert_name = cert_name @@ -625,7 +671,8 @@ class CustomDomainResource(ProxyResource): :ivar type: The type of the resource. :vartype type: str :param properties: Properties of the custom domain resource. - :type properties: ~azure.mgmt.appplatform.models.CustomDomainProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CustomDomainProperties """ _validation = { @@ -702,6 +749,8 @@ class DeploymentInstance(Model): :vartype reason: str :ivar discovery_status: Discovery status of the deployment instance :vartype discovery_status: str + :ivar start_time: Start time of the deployment instance + :vartype start_time: str """ _validation = { @@ -709,6 +758,7 @@ class DeploymentInstance(Model): 'status': {'readonly': True}, 'reason': {'readonly': True}, 'discovery_status': {'readonly': True}, + 'start_time': {'readonly': True}, } _attribute_map = { @@ -716,6 +766,7 @@ class DeploymentInstance(Model): 'status': {'key': 'status', 'type': 'str'}, 'reason': {'key': 'reason', 'type': 'str'}, 'discovery_status': {'key': 'discoveryStatus', 'type': 'str'}, + 'start_time': {'key': 'startTime', 'type': 'str'}, } def __init__(self, **kwargs) -> None: @@ -724,6 +775,7 @@ def __init__(self, **kwargs) -> None: self.status = None self.reason = None self.discovery_status = None + self.start_time = None class DeploymentResource(ProxyResource): @@ -740,7 +792,7 @@ class DeploymentResource(ProxyResource): :vartype type: str :param properties: Properties of the Deployment resource :type properties: - ~azure.mgmt.appplatform.models.DeploymentResourceProperties + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResourceProperties """ _validation = { @@ -768,28 +820,29 @@ class DeploymentResourceProperties(Model): sending a request. :param source: Uploaded source information of the deployment. - :type source: ~azure.mgmt.appplatform.models.UserSourceInfo + :type source: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.UserSourceInfo :ivar app_name: App name of the deployment :vartype app_name: str :param deployment_settings: Deployment settings of the Deployment :type deployment_settings: - ~azure.mgmt.appplatform.models.DeploymentSettings + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentSettings :ivar provisioning_state: Provisioning state of the Deployment. Possible values include: 'Creating', 'Updating', 'Succeeded', 'Failed' :vartype provisioning_state: str or - ~azure.mgmt.appplatform.models.DeploymentResourceProvisioningState + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResourceProvisioningState :ivar status: Status of the Deployment. Possible values include: 'Unknown', 'Stopped', 'Running', 'Failed', 'Allocating', 'Upgrading', 'Compiling' :vartype status: str or - ~azure.mgmt.appplatform.models.DeploymentResourceStatus + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResourceStatus :ivar active: Indicates whether the Deployment is active :vartype active: bool :ivar created_time: Date time when the resource is created :vartype created_time: datetime :ivar instances: Collection of instances belong to the Deployment :vartype instances: - list[~azure.mgmt.appplatform.models.DeploymentInstance] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentInstance] """ _validation = { @@ -835,31 +888,36 @@ class DeploymentSettings(Model): :type memory_in_gb: int :param jvm_options: JVM parameter :type jvm_options: str + :param net_core_main_entry_path: The path to the .NET executable relative + to zip root + :type net_core_main_entry_path: str :param instance_count: Instance count, basic tier should be in range (1, 25), standard tier should be in range (1, 500). Default value: 1 . :type instance_count: int :param environment_variables: Collection of environment variables :type environment_variables: dict[str, str] :param runtime_version: Runtime version. Possible values include: - 'Java_8', 'Java_11' + 'Java_8', 'Java_11', 'NetCore_31' :type runtime_version: str or - ~azure.mgmt.appplatform.models.RuntimeVersion + ~azure.mgmt.appplatform.v2019_05_01_preview.models.RuntimeVersion """ _attribute_map = { 'cpu': {'key': 'cpu', 'type': 'int'}, 'memory_in_gb': {'key': 'memoryInGB', 'type': 'int'}, 'jvm_options': {'key': 'jvmOptions', 'type': 'str'}, + 'net_core_main_entry_path': {'key': 'netCoreMainEntryPath', 'type': 'str'}, 'instance_count': {'key': 'instanceCount', 'type': 'int'}, 'environment_variables': {'key': 'environmentVariables', 'type': '{str}'}, 'runtime_version': {'key': 'runtimeVersion', 'type': 'str'}, } - def __init__(self, *, cpu: int=1, memory_in_gb: int=1, jvm_options: str=None, instance_count: int=1, environment_variables=None, runtime_version=None, **kwargs) -> None: + def __init__(self, *, cpu: int=1, memory_in_gb: int=1, jvm_options: str=None, net_core_main_entry_path: str=None, instance_count: int=1, environment_variables=None, runtime_version=None, **kwargs) -> None: super(DeploymentSettings, self).__init__(**kwargs) self.cpu = cpu self.memory_in_gb = memory_in_gb self.jvm_options = jvm_options + self.net_core_main_entry_path = net_core_main_entry_path self.instance_count = instance_count self.environment_variables = environment_variables self.runtime_version = runtime_version @@ -999,7 +1057,8 @@ class ManagedIdentityProperties(Model): :param type: Possible values include: 'None', 'SystemAssigned', 'UserAssigned', 'SystemAssigned,UserAssigned' - :type type: str or ~azure.mgmt.appplatform.models.ManagedIdentityType + :type type: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ManagedIdentityType :param principal_id: :type principal_id: str :param tenant_id: @@ -1064,7 +1123,8 @@ class MetricSpecification(Model): returned for time duration where no metric is emitted/published. :type fill_gap_with_zero: bool :param dimensions: Dimensions of the metric - :type dimensions: list[~azure.mgmt.appplatform.models.MetricDimension] + :type dimensions: + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.MetricDimension] """ _attribute_map = { @@ -1148,6 +1208,9 @@ def __init__(self, *, type: str, name: str, **kwargs) -> None: class NetworkProfile(Model): """Service network profile payload. + Variables are only populated by the server, and will be ignored when + sending a request. + :param service_runtime_subnet_id: Fully qualified resource Id of the subnet to host Azure Spring Cloud Service Runtime :type service_runtime_subnet_id: str @@ -1162,14 +1225,23 @@ class NetworkProfile(Model): :param app_network_resource_group: Name of the resource group containing network resources of Azure Spring Cloud Apps :type app_network_resource_group: str + :ivar outbound_ips: Desired outbound IP resources for Azure Spring Cloud + instance. + :vartype outbound_ips: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.NetworkProfileOutboundIPs """ + _validation = { + 'outbound_ips': {'readonly': True}, + } + _attribute_map = { 'service_runtime_subnet_id': {'key': 'serviceRuntimeSubnetId', 'type': 'str'}, 'app_subnet_id': {'key': 'appSubnetId', 'type': 'str'}, 'service_cidr': {'key': 'serviceCidr', 'type': 'str'}, 'service_runtime_network_resource_group': {'key': 'serviceRuntimeNetworkResourceGroup', 'type': 'str'}, 'app_network_resource_group': {'key': 'appNetworkResourceGroup', 'type': 'str'}, + 'outbound_ips': {'key': 'outboundIPs', 'type': 'NetworkProfileOutboundIPs'}, } def __init__(self, *, service_runtime_subnet_id: str=None, app_subnet_id: str=None, service_cidr: str=None, service_runtime_network_resource_group: str=None, app_network_resource_group: str=None, **kwargs) -> None: @@ -1179,6 +1251,30 @@ def __init__(self, *, service_runtime_subnet_id: str=None, app_subnet_id: str=No self.service_cidr = service_cidr self.service_runtime_network_resource_group = service_runtime_network_resource_group self.app_network_resource_group = app_network_resource_group + self.outbound_ips = None + + +class NetworkProfileOutboundIPs(Model): + """Desired outbound IP resources for Azure Spring Cloud instance. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar public_ips: A list of public IP addresses. + :vartype public_ips: list[str] + """ + + _validation = { + 'public_ips': {'readonly': True}, + } + + _attribute_map = { + 'public_ips': {'key': 'publicIPs', 'type': '[str]'}, + } + + def __init__(self, **kwargs) -> None: + super(NetworkProfileOutboundIPs, self).__init__(**kwargs) + self.public_ips = None class OperationDetail(Model): @@ -1189,11 +1285,13 @@ class OperationDetail(Model): :param is_data_action: Indicates whether the operation is a data action :type is_data_action: bool :param display: Display of the operation - :type display: ~azure.mgmt.appplatform.models.OperationDisplay + :type display: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.OperationDisplay :param origin: Origin of the operation :type origin: str :param properties: Properties of the operation - :type properties: ~azure.mgmt.appplatform.models.OperationProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.OperationProperties """ _attribute_map = { @@ -1246,7 +1344,7 @@ class OperationProperties(Model): :param service_specification: Service specifications of the operation :type service_specification: - ~azure.mgmt.appplatform.models.ServiceSpecification + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceSpecification """ _attribute_map = { @@ -1297,7 +1395,8 @@ class RegenerateTestKeyRequestPayload(Model): :param key_type: Required. Type of the test key. Possible values include: 'Primary', 'Secondary' - :type key_type: str or ~azure.mgmt.appplatform.models.TestKeyType + :type key_type: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.TestKeyType """ _validation = { @@ -1323,18 +1422,19 @@ class ResourceSku(Model): :param tier: Gets the tier of SKU. :type tier: str :param capacity: Gets the capacity of SKU. - :type capacity: ~azure.mgmt.appplatform.models.SkuCapacity + :type capacity: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.SkuCapacity :param locations: Gets the set of locations that the SKU is available. :type locations: list[str] :param location_info: Gets a list of locations and availability zones in those locations where the SKU is available. :type location_info: - list[~azure.mgmt.appplatform.models.ResourceSkuLocationInfo] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuLocationInfo] :param restrictions: Gets the restrictions because of which SKU cannot be used. This is empty if there are no restrictions. :type restrictions: - list[~azure.mgmt.appplatform.models.ResourceSkuRestrictions] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuRestrictions] """ _attribute_map = { @@ -1388,7 +1488,7 @@ class ResourceSkuLocationInfo(Model): :param zone_details: Gets details of capabilities available to a SKU in specific zones. :type zone_details: - list[~azure.mgmt.appplatform.models.ResourceSkuZoneDetails] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuZoneDetails] """ _attribute_map = { @@ -1430,7 +1530,7 @@ class ResourceSkuRestrictions(Model): :param type: Gets the type of restrictions. Possible values include: 'Location', 'Zone' :type type: str or - ~azure.mgmt.appplatform.models.ResourceSkuRestrictionsType + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuRestrictionsType :param values: Gets the value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted. @@ -1438,11 +1538,11 @@ class ResourceSkuRestrictions(Model): :param restriction_info: Gets the information about the restriction where the SKU cannot be used. :type restriction_info: - ~azure.mgmt.appplatform.models.ResourceSkuRestrictionInfo + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuRestrictionInfo :param reason_code: Gets the reason for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription' :type reason_code: str or - ~azure.mgmt.appplatform.models.ResourceSkuRestrictionsReasonCode + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuRestrictionsReasonCode """ _attribute_map = { @@ -1470,7 +1570,7 @@ class ResourceSkuZoneDetails(Model): the SKU in the specified list of zones. :type capabilities: - list[~azure.mgmt.appplatform.models.ResourceSkuCapabilities] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuCapabilities] """ _attribute_map = { @@ -1561,9 +1661,10 @@ class ServiceResource(TrackedResource): describe the resource. :type tags: dict[str, str] :param properties: Properties of the Service resource - :type properties: ~azure.mgmt.appplatform.models.ClusterResourceProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ClusterResourceProperties :param sku: Sku of the Service resource - :type sku: ~azure.mgmt.appplatform.models.Sku + :type sku: ~azure.mgmt.appplatform.v2019_05_01_preview.models.Sku """ _validation = { @@ -1593,11 +1694,11 @@ class ServiceSpecification(Model): :param log_specifications: Specifications of the Log for Azure Monitoring :type log_specifications: - list[~azure.mgmt.appplatform.models.LogSpecification] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.LogSpecification] :param metric_specifications: Specifications of the Metrics for Azure Monitoring :type metric_specifications: - list[~azure.mgmt.appplatform.models.MetricSpecification] + list[~azure.mgmt.appplatform.v2019_05_01_preview.models.MetricSpecification] """ _attribute_map = { @@ -1648,7 +1749,8 @@ class SkuCapacity(Model): :type default: int :param scale_type: Gets or sets the type of the scale. Possible values include: 'None', 'Manual', 'Automatic' - :type scale_type: str or ~azure.mgmt.appplatform.models.SkuScaleType + :type scale_type: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.SkuScaleType """ _validation = { @@ -1670,6 +1772,34 @@ def __init__(self, *, minimum: int, maximum: int=None, default: int=None, scale_ self.scale_type = scale_type +class SupportedRuntimeVersion(Model): + """Supported deployment runtime version descriptor. + + :param value: The raw value which could be passed to deployment CRUD + operations. Possible values include: 'Java_8', 'Java_11', 'NetCore_31' + :type value: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.SupportedRuntimeValue + :param platform: The platform of this runtime version (possible values: + "Java" or ".NET"). Possible values include: 'Java', '.NET Core' + :type platform: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.SupportedRuntimePlatform + :param version: The detailed version (major.minor) of the platform. + :type version: str + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': 'str'}, + 'platform': {'key': 'platform', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, *, value=None, platform=None, version: str=None, **kwargs) -> None: + super(SupportedRuntimeVersion, self).__init__(**kwargs) + self.value = value + self.platform = platform + self.version = version + + class TemporaryDisk(Model): """Temporary disk payload. @@ -1734,9 +1864,10 @@ class TraceProperties(Model): :ivar state: State of the trace proxy. Possible values include: 'NotAvailable', 'Failed', 'Succeeded', 'Updating' - :vartype state: str or ~azure.mgmt.appplatform.models.TraceProxyState + :vartype state: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.TraceProxyState :param error: Error when apply trace proxy changes. - :type error: ~azure.mgmt.appplatform.models.Error + :type error: ~azure.mgmt.appplatform.v2019_05_01_preview.models.Error :param enabled: Indicates whether enable the tracing functionality :type enabled: bool :param app_insight_instrumentation_key: Target application insight @@ -1767,8 +1898,9 @@ class UserSourceInfo(Model): """Source information for a deployment. :param type: Type of the source uploaded. Possible values include: 'Jar', - 'Source' - :type type: str or ~azure.mgmt.appplatform.models.UserSourceType + 'NetCoreZip', 'Source' + :type type: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.UserSourceType :param relative_path: Relative path of the storage which stores the source :type relative_path: str :param version: Version of the source diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_paged_models.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_paged_models.py index d04b54cc306..3338dac377b 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_paged_models.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/models/_paged_models.py @@ -14,7 +14,7 @@ class ServiceResourcePaged(Paged): """ - A paging container for iterating over a list of :class:`ServiceResource ` object + A paging container for iterating over a list of :class:`ServiceResource ` object """ _attribute_map = { @@ -27,7 +27,7 @@ def __init__(self, *args, **kwargs): super(ServiceResourcePaged, self).__init__(*args, **kwargs) class AppResourcePaged(Paged): """ - A paging container for iterating over a list of :class:`AppResource ` object + A paging container for iterating over a list of :class:`AppResource ` object """ _attribute_map = { @@ -40,7 +40,7 @@ def __init__(self, *args, **kwargs): super(AppResourcePaged, self).__init__(*args, **kwargs) class BindingResourcePaged(Paged): """ - A paging container for iterating over a list of :class:`BindingResource ` object + A paging container for iterating over a list of :class:`BindingResource ` object """ _attribute_map = { @@ -53,7 +53,7 @@ def __init__(self, *args, **kwargs): super(BindingResourcePaged, self).__init__(*args, **kwargs) class CertificateResourcePaged(Paged): """ - A paging container for iterating over a list of :class:`CertificateResource ` object + A paging container for iterating over a list of :class:`CertificateResource ` object """ _attribute_map = { @@ -66,7 +66,7 @@ def __init__(self, *args, **kwargs): super(CertificateResourcePaged, self).__init__(*args, **kwargs) class CustomDomainResourcePaged(Paged): """ - A paging container for iterating over a list of :class:`CustomDomainResource ` object + A paging container for iterating over a list of :class:`CustomDomainResource ` object """ _attribute_map = { @@ -79,7 +79,7 @@ def __init__(self, *args, **kwargs): super(CustomDomainResourcePaged, self).__init__(*args, **kwargs) class DeploymentResourcePaged(Paged): """ - A paging container for iterating over a list of :class:`DeploymentResource ` object + A paging container for iterating over a list of :class:`DeploymentResource ` object """ _attribute_map = { @@ -92,7 +92,7 @@ def __init__(self, *args, **kwargs): super(DeploymentResourcePaged, self).__init__(*args, **kwargs) class OperationDetailPaged(Paged): """ - A paging container for iterating over a list of :class:`OperationDetail ` object + A paging container for iterating over a list of :class:`OperationDetail ` object """ _attribute_map = { @@ -105,7 +105,7 @@ def __init__(self, *args, **kwargs): super(OperationDetailPaged, self).__init__(*args, **kwargs) class ResourceSkuPaged(Paged): """ - A paging container for iterating over a list of :class:`ResourceSku ` object + A paging container for iterating over a list of :class:`ResourceSku ` object """ _attribute_map = { diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/__init__.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/__init__.py index 45301a531c0..de8f71f38f0 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/__init__.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/__init__.py @@ -16,6 +16,7 @@ from ._custom_domains_operations import CustomDomainsOperations from ._deployments_operations import DeploymentsOperations from ._operations import Operations +from ._runtime_versions_operations import RuntimeVersionsOperations from ._sku_operations import SkuOperations __all__ = [ @@ -26,5 +27,6 @@ 'CustomDomainsOperations', 'DeploymentsOperations', 'Operations', + 'RuntimeVersionsOperations', 'SkuOperations', ] diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_apps_operations.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_apps_operations.py index 4b8a5e5d58c..9ae13765156 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_apps_operations.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_apps_operations.py @@ -61,8 +61,8 @@ def get( :param operation_config: :ref:`Operation configuration overrides`. :return: AppResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.AppResource or - ~msrest.pipeline.ClientRawResponse + :rtype: ~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResource + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ # Construct URL @@ -177,7 +177,8 @@ def create_or_update( :param app_name: The name of the App resource. :type app_name: str :param app_resource: Parameters for the create or update operation - :type app_resource: ~azure.mgmt.appplatform.models.AppResource + :type app_resource: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResource :param dict custom_headers: headers that will be added to the request :param bool raw: The poller return type is ClientRawResponse, the direct response alongside the deserialized response @@ -186,9 +187,9 @@ def create_or_update( :return: An instance of LROPoller that returns AppResource or ClientRawResponse if raw==True :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.models.AppResource] + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResource] or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.models.AppResource]] + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResource]] :raises: :class:`CloudError` """ raw_result = self._create_or_update_initial( @@ -343,7 +344,8 @@ def update( :param app_name: The name of the App resource. :type app_name: str :param app_resource: Parameters for the update operation - :type app_resource: ~azure.mgmt.appplatform.models.AppResource + :type app_resource: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResource :param dict custom_headers: headers that will be added to the request :param bool raw: The poller return type is ClientRawResponse, the direct response alongside the deserialized response @@ -352,9 +354,9 @@ def update( :return: An instance of LROPoller that returns AppResource or ClientRawResponse if raw==True :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.models.AppResource] + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResource] or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.models.AppResource]] + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResource]] :raises: :class:`CloudError` """ raw_result = self._update_initial( @@ -402,7 +404,7 @@ def list( overrides`. :return: An iterator like instance of AppResource :rtype: - ~azure.mgmt.appplatform.models.AppResourcePaged[~azure.mgmt.appplatform.models.AppResource] + ~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResourcePaged[~azure.mgmt.appplatform.v2019_05_01_preview.models.AppResource] :raises: :class:`CloudError` """ def prepare_request(next_link=None): @@ -478,8 +480,9 @@ def get_resource_upload_url( :param operation_config: :ref:`Operation configuration overrides`. :return: ResourceUploadDefinition or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.ResourceUploadDefinition or - ~msrest.pipeline.ClientRawResponse + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceUploadDefinition + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ # Construct URL diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_bindings_operations.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_bindings_operations.py index 1be603bdfc9..83ebe124109 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_bindings_operations.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_bindings_operations.py @@ -59,7 +59,8 @@ def get( :param operation_config: :ref:`Operation configuration overrides`. :return: BindingResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.BindingResource or + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.BindingResource or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ @@ -124,14 +125,15 @@ def create_or_update( :type binding_name: str :param properties: Properties of the Binding resource :type properties: - ~azure.mgmt.appplatform.models.BindingResourceProperties + ~azure.mgmt.appplatform.v2019_05_01_preview.models.BindingResourceProperties :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. :return: BindingResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.BindingResource or + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.BindingResource or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ @@ -263,14 +265,15 @@ def update( :type binding_name: str :param properties: Properties of the Binding resource :type properties: - ~azure.mgmt.appplatform.models.BindingResourceProperties + ~azure.mgmt.appplatform.v2019_05_01_preview.models.BindingResourceProperties :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. :return: BindingResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.BindingResource or + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.BindingResource or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ @@ -344,7 +347,7 @@ def list( overrides`. :return: An iterator like instance of BindingResource :rtype: - ~azure.mgmt.appplatform.models.BindingResourcePaged[~azure.mgmt.appplatform.models.BindingResource] + ~azure.mgmt.appplatform.v2019_05_01_preview.models.BindingResourcePaged[~azure.mgmt.appplatform.v2019_05_01_preview.models.BindingResource] :raises: :class:`CloudError` """ def prepare_request(next_link=None): diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_certificates_operations.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_certificates_operations.py index 00428016758..fc34fb799ec 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_certificates_operations.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_certificates_operations.py @@ -57,8 +57,9 @@ def get( :param operation_config: :ref:`Operation configuration overrides`. :return: CertificateResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.CertificateResource or - ~msrest.pipeline.ClientRawResponse + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CertificateResource + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ # Construct URL @@ -118,15 +119,17 @@ def create_or_update( :param certificate_name: The name of the certificate resource. :type certificate_name: str :param properties: Properties of the certificate resource payload. - :type properties: ~azure.mgmt.appplatform.models.CertificateProperties + :type properties: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CertificateProperties :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. :return: CertificateResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.CertificateResource or - ~msrest.pipeline.ClientRawResponse + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CertificateResource + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ certificate_resource = models.CertificateResource(properties=properties) @@ -254,7 +257,7 @@ def list( overrides`. :return: An iterator like instance of CertificateResource :rtype: - ~azure.mgmt.appplatform.models.CertificateResourcePaged[~azure.mgmt.appplatform.models.CertificateResource] + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CertificateResourcePaged[~azure.mgmt.appplatform.v2019_05_01_preview.models.CertificateResource] :raises: :class:`CloudError` """ def prepare_request(next_link=None): diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_custom_domains_operations.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_custom_domains_operations.py index f7f88db69a4..aeec8066df5 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_custom_domains_operations.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_custom_domains_operations.py @@ -59,8 +59,9 @@ def get( :param operation_config: :ref:`Operation configuration overrides`. :return: CustomDomainResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.CustomDomainResource or - ~msrest.pipeline.ClientRawResponse + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CustomDomainResource + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ # Construct URL @@ -124,15 +125,16 @@ def create_or_update( :type domain_name: str :param properties: Properties of the custom domain resource. :type properties: - ~azure.mgmt.appplatform.models.CustomDomainProperties + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CustomDomainProperties :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. :return: CustomDomainResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.CustomDomainResource or - ~msrest.pipeline.ClientRawResponse + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CustomDomainResource + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ domain_resource = models.CustomDomainResource(properties=properties) @@ -263,15 +265,16 @@ def patch( :type domain_name: str :param properties: Properties of the custom domain resource. :type properties: - ~azure.mgmt.appplatform.models.CustomDomainProperties + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CustomDomainProperties :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. :return: CustomDomainResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.CustomDomainResource or - ~msrest.pipeline.ClientRawResponse + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CustomDomainResource + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ domain_resource = models.CustomDomainResource(properties=properties) @@ -344,7 +347,7 @@ def list( overrides`. :return: An iterator like instance of CustomDomainResource :rtype: - ~azure.mgmt.appplatform.models.CustomDomainResourcePaged[~azure.mgmt.appplatform.models.CustomDomainResource] + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CustomDomainResourcePaged[~azure.mgmt.appplatform.v2019_05_01_preview.models.CustomDomainResource] :raises: :class:`CloudError` """ def prepare_request(next_link=None): @@ -422,8 +425,9 @@ def validate( :param operation_config: :ref:`Operation configuration overrides`. :return: CustomDomainValidateResult or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.CustomDomainValidateResult or - ~msrest.pipeline.ClientRawResponse + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.CustomDomainValidateResult + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ validate_payload = models.CustomDomainValidatePayload(name=name) diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_deployments_operations.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_deployments_operations.py index 53205447fd4..05f24f854b5 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_deployments_operations.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_deployments_operations.py @@ -61,8 +61,9 @@ def get( :param operation_config: :ref:`Operation configuration overrides`. :return: DeploymentResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.DeploymentResource or - ~msrest.pipeline.ClientRawResponse + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResource + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ # Construct URL @@ -182,7 +183,7 @@ def create_or_update( :type deployment_name: str :param properties: Properties of the Deployment resource :type properties: - ~azure.mgmt.appplatform.models.DeploymentResourceProperties + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResourceProperties :param dict custom_headers: headers that will be added to the request :param bool raw: The poller return type is ClientRawResponse, the direct response alongside the deserialized response @@ -191,9 +192,9 @@ def create_or_update( :return: An instance of LROPoller that returns DeploymentResource or ClientRawResponse if raw==True :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.models.DeploymentResource] + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResource] or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.models.DeploymentResource]] + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResource]] :raises: :class:`CloudError` """ raw_result = self._create_or_update_initial( @@ -358,7 +359,7 @@ def update( :type deployment_name: str :param properties: Properties of the Deployment resource :type properties: - ~azure.mgmt.appplatform.models.DeploymentResourceProperties + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResourceProperties :param dict custom_headers: headers that will be added to the request :param bool raw: The poller return type is ClientRawResponse, the direct response alongside the deserialized response @@ -367,9 +368,9 @@ def update( :return: An instance of LROPoller that returns DeploymentResource or ClientRawResponse if raw==True :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.models.DeploymentResource] + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResource] or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.models.DeploymentResource]] + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResource]] :raises: :class:`CloudError` """ raw_result = self._update_initial( @@ -422,7 +423,7 @@ def list( overrides`. :return: An iterator like instance of DeploymentResource :rtype: - ~azure.mgmt.appplatform.models.DeploymentResourcePaged[~azure.mgmt.appplatform.models.DeploymentResource] + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResourcePaged[~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResource] :raises: :class:`CloudError` """ def prepare_request(next_link=None): @@ -501,7 +502,7 @@ def list_cluster_all_deployments( overrides`. :return: An iterator like instance of DeploymentResource :rtype: - ~azure.mgmt.appplatform.models.DeploymentResourcePaged[~azure.mgmt.appplatform.models.DeploymentResource] + ~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResourcePaged[~azure.mgmt.appplatform.v2019_05_01_preview.models.DeploymentResource] :raises: :class:`CloudError` """ def prepare_request(next_link=None): @@ -847,8 +848,9 @@ def get_log_file_url( :param operation_config: :ref:`Operation configuration overrides`. :return: LogFileUrlResponse or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.LogFileUrlResponse or - ~msrest.pipeline.ClientRawResponse + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.LogFileUrlResponse + or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ # Construct URL diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_operations.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_operations.py index d69c8a0616e..8c2898d9179 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_operations.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_operations.py @@ -51,7 +51,7 @@ def list( overrides`. :return: An iterator like instance of OperationDetail :rtype: - ~azure.mgmt.appplatform.models.OperationDetailPaged[~azure.mgmt.appplatform.models.OperationDetail] + ~azure.mgmt.appplatform.v2019_05_01_preview.models.OperationDetailPaged[~azure.mgmt.appplatform.v2019_05_01_preview.models.OperationDetail] :raises: :class:`CloudError` """ def prepare_request(next_link=None): diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_runtime_versions_operations.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_runtime_versions_operations.py new file mode 100644 index 00000000000..d3eaac0f5b0 --- /dev/null +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_runtime_versions_operations.py @@ -0,0 +1,93 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class RuntimeVersionsOperations(object): + """RuntimeVersionsOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: Client Api Version. Constant value: "2019-05-01-preview". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-05-01-preview" + + self.config = config + + def list_runtime_versions( + self, custom_headers=None, raw=False, **operation_config): + """Lists all of the available runtime versions supported by + Microsoft.AppPlatform provider. + + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: AvailableRuntimeVersions or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.AvailableRuntimeVersions + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list_runtime_versions.metadata['url'] + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('AvailableRuntimeVersions', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list_runtime_versions.metadata = {'url': '/providers/Microsoft.AppPlatform/runtimeVersions'} diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_services_operations.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_services_operations.py index 3fb045d7800..b545584a020 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_services_operations.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_services_operations.py @@ -57,7 +57,8 @@ def get( :param operation_config: :ref:`Operation configuration overrides`. :return: ServiceResource or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.ServiceResource or + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResource or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ @@ -167,7 +168,8 @@ def create_or_update( :param service_name: The name of the Service resource. :type service_name: str :param resource: Parameters for the create or update operation - :type resource: ~azure.mgmt.appplatform.models.ServiceResource + :type resource: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResource :param dict custom_headers: headers that will be added to the request :param bool raw: The poller return type is ClientRawResponse, the direct response alongside the deserialized response @@ -176,9 +178,9 @@ def create_or_update( :return: An instance of LROPoller that returns ServiceResource or ClientRawResponse if raw==True :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.models.ServiceResource] + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResource] or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.models.ServiceResource]] + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResource]] :raises: :class:`CloudError` """ raw_result = self._create_or_update_initial( @@ -352,7 +354,8 @@ def update( :param service_name: The name of the Service resource. :type service_name: str :param resource: Parameters for the update operation - :type resource: ~azure.mgmt.appplatform.models.ServiceResource + :type resource: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResource :param dict custom_headers: headers that will be added to the request :param bool raw: The poller return type is ClientRawResponse, the direct response alongside the deserialized response @@ -361,9 +364,9 @@ def update( :return: An instance of LROPoller that returns ServiceResource or ClientRawResponse if raw==True :rtype: - ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.models.ServiceResource] + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResource] or - ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.models.ServiceResource]] + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResource]] :raises: :class:`CloudError` """ raw_result = self._update_initial( @@ -409,7 +412,7 @@ def list_test_keys( :param operation_config: :ref:`Operation configuration overrides`. :return: TestKeys or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.TestKeys or + :rtype: ~azure.mgmt.appplatform.v2019_05_01_preview.models.TestKeys or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ @@ -468,14 +471,15 @@ def regenerate_test_key( :type service_name: str :param key_type: Type of the test key. Possible values include: 'Primary', 'Secondary' - :type key_type: str or ~azure.mgmt.appplatform.models.TestKeyType + :type key_type: str or + ~azure.mgmt.appplatform.v2019_05_01_preview.models.TestKeyType :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the deserialized response :param operation_config: :ref:`Operation configuration overrides`. :return: TestKeys or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.TestKeys or + :rtype: ~azure.mgmt.appplatform.v2019_05_01_preview.models.TestKeys or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ @@ -599,7 +603,7 @@ def enable_test_endpoint( :param operation_config: :ref:`Operation configuration overrides`. :return: TestKeys or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.TestKeys or + :rtype: ~azure.mgmt.appplatform.v2019_05_01_preview.models.TestKeys or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ @@ -662,7 +666,8 @@ def check_name_availability( :param operation_config: :ref:`Operation configuration overrides`. :return: NameAvailability or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.appplatform.models.NameAvailability or + :rtype: + ~azure.mgmt.appplatform.v2019_05_01_preview.models.NameAvailability or ~msrest.pipeline.ClientRawResponse :raises: :class:`CloudError` """ @@ -725,7 +730,7 @@ def list_by_subscription( overrides`. :return: An iterator like instance of ServiceResource :rtype: - ~azure.mgmt.appplatform.models.ServiceResourcePaged[~azure.mgmt.appplatform.models.ServiceResource] + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResourcePaged[~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResource] :raises: :class:`CloudError` """ def prepare_request(next_link=None): @@ -795,7 +800,7 @@ def list( overrides`. :return: An iterator like instance of ServiceResource :rtype: - ~azure.mgmt.appplatform.models.ServiceResourcePaged[~azure.mgmt.appplatform.models.ServiceResource] + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResourcePaged[~azure.mgmt.appplatform.v2019_05_01_preview.models.ServiceResource] :raises: :class:`CloudError` """ def prepare_request(next_link=None): diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_sku_operations.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_sku_operations.py index 26330c9b065..a67afa4c3c2 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_sku_operations.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/operations/_sku_operations.py @@ -50,7 +50,7 @@ def list( overrides`. :return: An iterator like instance of ResourceSku :rtype: - ~azure.mgmt.appplatform.models.ResourceSkuPaged[~azure.mgmt.appplatform.models.ResourceSku] + ~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSkuPaged[~azure.mgmt.appplatform.v2019_05_01_preview.models.ResourceSku] :raises: :class:`CloudError` """ def prepare_request(next_link=None): diff --git a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/version.py b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/version.py index e0ec669828c..91d3d3040ed 100644 --- a/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/version.py +++ b/src/spring-cloud/azext_spring_cloud/vendored_sdks/appplatform/version.py @@ -9,5 +9,5 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "0.1.0" +VERSION = "2019-05-01-preview" diff --git a/src/spring-cloud/setup.py b/src/spring-cloud/setup.py index 65796c70c67..63620f3d150 100644 --- a/src/spring-cloud/setup.py +++ b/src/spring-cloud/setup.py @@ -16,7 +16,7 @@ # TODO: Confirm this is the right version number you want and it matches your # HISTORY.rst entry. -VERSION = '1.0.0' +VERSION = '1.1.1' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers diff --git a/src/ssh/HISTORY.md b/src/ssh/HISTORY.md new file mode 100644 index 00000000000..68e4fe4892d --- /dev/null +++ b/src/ssh/HISTORY.md @@ -0,0 +1,18 @@ +Release History +=============== + +0.1.2 +----- +* Add support for hardware tokens (don't require the private key be passed in) +* Add support for cert signing only +* Add numerous short parameters +* Add support for and switch default behavior to ephemeral keypair generation when no public key is passed in +* Add support for Host * by not writing Hostname into ssh_config files + +0.1.1 +----- +* Fix bash not work problem. + +0.1.0 +----- +* Initial release. diff --git a/src/ssh/azext_ssh/_help.py b/src/ssh/azext_ssh/_help.py index c064b6d375e..2a3e942b743 100644 --- a/src/ssh/azext_ssh/_help.py +++ b/src/ssh/azext_ssh/_help.py @@ -7,29 +7,44 @@ helps['ssh'] = """ type: group - short-summary: SSH into Azure VMs + short-summary: SSH into resources (Azure VMs, etc) using AAD issued openssh certificates """ helps['ssh vm'] = """ type: command - short-summary: SSH into Azure VMs + short-summary: SSH into Azure VMs using an ssh certificate examples: - name: Give a resource group and VM to SSH to text: | az ssh vm --resource-group myResourceGroup --vm-name myVm - - name: Give the public IP of a VM to SSH to + - name: Give the public IP (or hostname) of a VM to SSH to text: | az ssh vm --ip 1.2.3.4 """ helps['ssh config'] = """ type: command - short-summary: Create an SSH config for Azure VMs which can then be imported to 3rd party SSH clients + short-summary: Create an SSH config for resources (Azure VMs, etc) which can then be imported to 3rd party SSH clients examples: - name: Give a resource group and VM for which to create a config, and save in a local file text: | az ssh config --resource-group myResourceGroup --vm-name myVm --file ./sshconfig - - name: Give the public IP of a VM for which to create a config + - name: Give the public IP (or hostname) of a VM for which to create a config text: | az ssh config --ip 1.2.3.4 --file ./sshconfig + - name: Create a generic config for use with any host + text: | + #Bash + az ssh config --ip \\* --file ./sshconfig + #PowerShell + az ssh config --ip * --file ./sshconfig +""" + +helps['ssh cert'] = """ + type: command + short-summary: Create an SSH RSA certifcate signed by AAD + examples: + - name: Create a short lived ssh certificate signed by AAD + text: | + az ssh cert --public-key-file ./id_rsa.pub --file ./id_rsa-aadcert.pub """ diff --git a/src/ssh/azext_ssh/_params.py b/src/ssh/azext_ssh/_params.py index 22324511773..90c78d1145f 100644 --- a/src/ssh/azext_ssh/_params.py +++ b/src/ssh/azext_ssh/_params.py @@ -7,14 +7,19 @@ def load_arguments(self, _): with self.argument_context('ssh vm') as c: - c.argument('vm_name', options_list=['--vm-name'], help='The name of the VM') - c.argument('ssh_ip', options_list=['--ip'], help='The public IP address of the VM') - c.argument('public_key_file', help='The RSA public key file path') - c.argument('private_key_file', help='The RSA private key file path') + c.argument('vm_name', options_list=['--vm-name', '-n'], help='The name of the VM') + c.argument('ssh_ip', options_list=['--ip'], help='The public IP address (or hostname) of the VM') + c.argument('public_key_file', options_list=['--public-key-file', '-p'], help='The RSA public key file path') + c.argument('private_key_file', options_list=['--private-key-file', '-i'], help='The RSA private key file path') with self.argument_context('ssh config') as c: - c.argument('config_path', options_list=['--file'], help='The file path to write the SSH config to') - c.argument('vm_name', options_list=['--vm-name'], help='The name of the VM') - c.argument('ssh_ip', options_list=['--ip'], help='The public IP address of the VM') - c.argument('public_key_file', help='The RSA public key file path') - c.argument('private_key_file', help='The RSA private key file path') + c.argument('config_path', options_list=['--file', '-f'], help='The file path to write the SSH config to') + c.argument('vm_name', options_list=['--vm-name', '-n'], help='The name of the VM') + c.argument('ssh_ip', options_list=['--ip'], help='The public IP address (or hostname) of the VM') + c.argument('public_key_file', options_list=['--public-key-file', '-p'], help='The RSA public key file path') + c.argument('private_key_file', options_list=['--private-key-file', '-i'], help='The RSA private key file path') + + with self.argument_context('ssh cert') as c: + c.argument('cert_path', options_list=['--file', '-f'], + help='The file path to write the SSH cert to, defaults to public key path with -aadcert.pub appened') + c.argument('public_key_file', options_list=['--public-key-file', '-p'], help='The RSA public key file path') diff --git a/src/ssh/azext_ssh/commands.py b/src/ssh/azext_ssh/commands.py index e8049935233..44fcd1e736f 100644 --- a/src/ssh/azext_ssh/commands.py +++ b/src/ssh/azext_ssh/commands.py @@ -9,3 +9,4 @@ def load_command_table(self, _): with self.command_group('ssh') as g: g.custom_command('vm', 'ssh_vm') g.custom_command('config', 'ssh_config') + g.custom_command('cert', 'ssh_cert') diff --git a/src/ssh/azext_ssh/custom.py b/src/ssh/azext_ssh/custom.py index e0b09f6ddf5..4f460ca667f 100644 --- a/src/ssh/azext_ssh/custom.py +++ b/src/ssh/azext_ssh/custom.py @@ -7,6 +7,7 @@ import os import hashlib import json +import tempfile from knack import util @@ -26,22 +27,33 @@ def ssh_config(cmd, config_path, resource_group_name=None, vm_name=None, ssh_ip= _do_ssh_op(cmd, resource_group_name, vm_name, ssh_ip, public_key_file, private_key_file, op_call) +def ssh_cert(cmd, cert_path=None, public_key_file=None): + public_key_file, _ = _check_or_create_public_private_files(public_key_file, None) + cert_file, _ = _get_and_write_certificate(cmd, public_key_file, cert_path) + print(cert_file + "\n") + + def _do_ssh_op(cmd, resource_group, vm_name, ssh_ip, public_key_file, private_key_file, op_call): _assert_args(resource_group, vm_name, ssh_ip) - public_key_file, private_key_file = _check_public_private_files(public_key_file, private_key_file) + public_key_file, private_key_file = _check_or_create_public_private_files(public_key_file, private_key_file) ssh_ip = ssh_ip or ip_utils.get_ssh_ip(cmd, resource_group, vm_name) if not ssh_ip: raise util.CLIError(f"VM '{vm_name}' does not have a public IP address to SSH to") + cert_file, username = _get_and_write_certificate(cmd, public_key_file, None) + op_call(ssh_ip, username, cert_file, private_key_file) + + +def _get_and_write_certificate(cmd, public_key_file, cert_file): scopes = ["https://pas.windows.net/CheckMyAccess/Linux/user_impersonation"] data = _prepare_jwk_data(public_key_file) from azure.cli.core._profile import Profile profile = Profile(cli_ctx=cmd.cli_ctx) username, certificate = profile.get_msal_token(scopes, data) - - cert_file = _write_cert_file(public_key_file, certificate) - op_call(ssh_ip, username, cert_file, private_key_file) + if not cert_file: + cert_file = public_key_file + "-aadcert.pub" + return _write_cert_file(certificate, cert_file), username def _prepare_jwk_data(public_key_file): @@ -76,21 +88,27 @@ def _assert_args(resource_group, vm_name, ssh_ip): raise util.CLIError("--ip cannot be used with --resource-group or --name") -def _check_public_private_files(public_key_file, private_key_file): - ssh_dir_parts = ["~", ".ssh"] - public_key_file = public_key_file or os.path.expanduser(os.path.join(*ssh_dir_parts, "id_rsa.pub")) - private_key_file = private_key_file or os.path.expanduser(os.path.join(*ssh_dir_parts, "id_rsa")) +def _check_or_create_public_private_files(public_key_file, private_key_file): + # If nothing is passed in create a temporary directory with a ephemeral keypair + if not public_key_file and not private_key_file: + temp_dir = tempfile.mkdtemp(prefix="aadsshcert") + public_key_file = os.path.join(temp_dir, "id_rsa.pub") + private_key_file = os.path.join(temp_dir, "id_rsa") + ssh_utils.create_ssh_keyfile(private_key_file) if not os.path.isfile(public_key_file): - raise util.CLIError(f"Pulic key file {public_key_file} not found") - if not os.path.isfile(private_key_file): - raise util.CLIError(f"Private key file {private_key_file} not found") + raise util.CLIError(f"Public key file {public_key_file} not found") + + # The private key is not required as the user may be using a keypair + # stored in ssh-agent (and possibly in a hardware token) + if private_key_file: + if not os.path.isfile(private_key_file): + raise util.CLIError(f"Private key file {private_key_file} not found") return public_key_file, private_key_file -def _write_cert_file(public_key_file, certificate_contents): - cert_file = os.path.join(*os.path.split(public_key_file)[:-1], "id_rsa-cert.pub") +def _write_cert_file(certificate_contents, cert_file): with open(cert_file, 'w') as f: f.write(f"ssh-rsa-cert-v01@openssh.com {certificate_contents}") diff --git a/src/ssh/azext_ssh/ssh_utils.py b/src/ssh/azext_ssh/ssh_utils.py index 974f47dfc00..593efbd929f 100644 --- a/src/ssh/azext_ssh/ssh_utils.py +++ b/src/ssh/azext_ssh/ssh_utils.py @@ -18,7 +18,13 @@ def start_ssh_connection(ip, username, cert_file, private_key_file): command = [_get_ssh_path(), _get_host(username, ip)] command = command + _build_args(cert_file, private_key_file) logger.debug("Running ssh command %s", ' '.join(command)) - subprocess.call(command, shell=True) + subprocess.call(command, shell=platform.system() == 'Windows') + + +def create_ssh_keyfile(private_key_file): + command = [_get_ssh_path("ssh-keygen"), "-f", private_key_file, "-t", "rsa", "-q", "-N", ""] + logger.debug("Running ssh-keygen command %s", ' '.join(command)) + subprocess.call(command, shell=platform.system() == 'Windows') def write_ssh_config(config_path, resource_group, vm_name, @@ -30,20 +36,25 @@ def write_ssh_config(config_path, resource_group, vm_name, lines.append("\tUser " + username) lines.append("\tHostName " + ip) lines.append("\tCertificateFile " + cert_file) - lines.append("\tIdentityFile " + private_key_file) + if private_key_file: + lines.append("\tIdentityFile " + private_key_file) + + # default to all hosts for config + if not ip: + ip = "*" lines.append("Host " + ip) lines.append("\tUser " + username) - lines.append("\tHostName " + ip) lines.append("\tCertificateFile " + cert_file) - lines.append("\tIdentityFile " + private_key_file) + if private_key_file: + lines.append("\tIdentityFile " + private_key_file) with open(config_path, 'w') as f: f.write('\n'.join(lines)) -def _get_ssh_path(): - ssh_path = "ssh" +def _get_ssh_path(ssh_command="ssh"): + ssh_path = ssh_command if platform.system() == 'Windows': arch_data = platform.architecture() @@ -51,13 +62,13 @@ def _get_ssh_path(): sys_path = 'SysNative' if is_32bit else 'System32' system_root = os.environ['SystemRoot'] system32_path = os.path.join(system_root, sys_path) - ssh_path = os.path.join(system32_path, "openSSH", "ssh.exe") + ssh_path = os.path.join(system32_path, "openSSH", (ssh_command + ".exe")) logger.debug("Platform architecture: %s", str(arch_data)) logger.debug("System Root: %s", system_root) logger.debug("Attempting to run ssh from path %s", ssh_path) if not os.path.isfile(ssh_path): - raise util.CLIError("Could not find ssh.exe. Is the OpenSSH client installed?") + raise util.CLIError("Could not find " + ssh_command + ".exe. Is the OpenSSH client installed?") return ssh_path @@ -67,6 +78,8 @@ def _get_host(username, ip): def _build_args(cert_file, private_key_file): - private_key = ["-i", private_key_file] + private_key = [] + if private_key_file: + private_key = ["-i", private_key_file] certificate = ["-o", "CertificateFile=" + cert_file] return private_key + certificate diff --git a/src/ssh/azext_ssh/tests/latest/test_custom.py b/src/ssh/azext_ssh/tests/latest/test_custom.py index 7580cf75d5d..d54363e1416 100644 --- a/src/ssh/azext_ssh/tests/latest/test_custom.py +++ b/src/ssh/azext_ssh/tests/latest/test_custom.py @@ -21,32 +21,37 @@ def test_ssh_vm(self, mock_ssh_utils, mock_do_op): mock_do_op.assert_called_once_with( cmd, "rg", "vm", "ip", "public", "private", mock_ssh_utils.start_ssh_connection) - @unittest.skip('have problems with patching functools.partial, will enable it after getting the root cause.') @mock.patch('azext_ssh.custom._do_ssh_op') - @mock.patch('azext_ssh.custom.ssh_utils') - @mock.patch('functools.partial') - def test_ssh_config(self, mock_partial, mock_ssh_utils, mock_do_op): + @mock.patch('azext_ssh.ssh_utils.write_ssh_config') + def test_ssh_config(self, mock_ssh_utils, mock_do_op): cmd = mock.Mock() + + def do_op_side_effect(cmd, resource_group, vm_name, ssh_ip, public_key_file, private_key_file, op_call): + op_call(ssh_ip, "username", "cert_file", private_key_file) + + mock_do_op.side_effect = do_op_side_effect custom.ssh_config(cmd, "path/to/file", "rg", "vm", "ip", "public", "private") - mock_partial.assert_called_once_with( - mock_ssh_utils.write_ssh_config, "path/to/file", "rg", "vm") + mock_ssh_utils.assert_called_once_with("path/to/file", "rg", "vm", "ip", "username", "cert_file", "private") + mock_do_op.assert_called_once_with( - cmd, "rg", "vm", "ip", "public", "private", mock_partial.return_value) + cmd, "rg", "vm", "ip", "public", "private", mock.ANY) + @mock.patch('os.path.join') @mock.patch('azext_ssh.custom._assert_args') - @mock.patch('azext_ssh.custom._check_public_private_files') + @mock.patch('azext_ssh.custom._check_or_create_public_private_files') @mock.patch('azext_ssh.ip_utils.get_ssh_ip') @mock.patch('azext_ssh.custom._get_modulus_exponent') @mock.patch('azure.cli.core._profile.Profile.get_msal_token') @mock.patch('azext_ssh.custom._write_cert_file') def test_do_ssh_op(self, mock_write_cert, mock_ssh_creds, mock_get_mod_exp, mock_ip, - mock_check_files, mock_assert): + mock_check_files, mock_assert, mock_join): cmd = mock.Mock() mock_op = mock.Mock() mock_check_files.return_value = "public", "private" mock_get_mod_exp.return_value = "modulus", "exponent" mock_ssh_creds.return_value = "username", "certificate" + mock_join.return_value = "public-aadcert.pub" custom._do_ssh_op(cmd, None, None, "1.2.3.4", "publicfile", "privatefile", mock_op) @@ -54,12 +59,12 @@ def test_do_ssh_op(self, mock_write_cert, mock_ssh_creds, mock_get_mod_exp, mock mock_check_files.assert_called_once_with("publicfile", "privatefile") mock_ip.assert_not_called() mock_get_mod_exp.assert_called_once_with("public") - mock_write_cert.assert_called_once_with("public", "certificate") + mock_write_cert.assert_called_once_with("certificate", "public-aadcert.pub") mock_op.assert_called_once_with( "1.2.3.4", "username", mock_write_cert.return_value, "private") @mock.patch('azext_ssh.custom._assert_args') - @mock.patch('azext_ssh.custom._check_public_private_files') + @mock.patch('azext_ssh.custom._check_or_create_public_private_files') @mock.patch('azext_ssh.ip_utils.get_ssh_ip') @mock.patch('azext_ssh.custom._get_modulus_exponent') def test_do_ssh_op_no_public_ip(self, mock_get_mod_exp, mock_ip, mock_check_files, mock_assert): @@ -88,73 +93,62 @@ def test_assert_args_ip_with_vm_or_rg(self): self.assertRaises(util.CLIError, custom._assert_args, None, "vm", "ip") self.assertRaises(util.CLIError, custom._assert_args, "rg", "vm", "ip") + @mock.patch('azext_ssh.ssh_utils.create_ssh_keyfile') + @mock.patch('tempfile.mkdtemp') @mock.patch('os.path.isfile') - @mock.patch('os.path.expanduser') @mock.patch('os.path.join') - def test_check_public_private_files_defaults(self, mock_join, mock_expand, mock_isfile): - mock_expand.side_effect = ['publicfile', 'privatefile'] + def test_check_or_create_public_private_files_defaults(self, mock_join, mock_isfile, mock_temp, mock_create): mock_isfile.return_value = True + mock_temp.return_value = "/tmp/aadtemp" + mock_join.side_effect = ['/tmp/aadtemp/id_rsa.pub', '/tmp/aadtemp/id_rsa'] - public, private = custom._check_public_private_files(None, None) + public, private = custom._check_or_create_public_private_files(None, None) - self.assertEqual('publicfile', public) - self.assertEqual('privatefile', private) - mock_expand.assert_has_calls([ - mock.call(mock_join.return_value), - mock.call(mock_join.return_value) - ]) + self.assertEqual('/tmp/aadtemp/id_rsa.pub', public) + self.assertEqual('/tmp/aadtemp/id_rsa', private) mock_join.assert_has_calls([ - mock.call("~", ".ssh", "id_rsa.pub"), - mock.call("~", ".ssh", "id_rsa") + mock.call("/tmp/aadtemp", "id_rsa.pub"), + mock.call("/tmp/aadtemp", "id_rsa") ]) mock_isfile.assert_has_calls([ - mock.call('publicfile'), - mock.call('privatefile') + mock.call('/tmp/aadtemp/id_rsa.pub'), + mock.call('/tmp/aadtemp/id_rsa') + ]) + mock_create.assert_has_calls([ + mock.call('/tmp/aadtemp/id_rsa') ]) @mock.patch('os.path.isfile') - @mock.patch('os.path.expanduser') @mock.patch('os.path.join') - def test_check_public_private_files_no_public(self, mock_join, mock_expand, mock_isfile): - mock_isfile.side_effect = [False, True] - + def test_check_or_create_public_private_files_no_public(self, mock_join, mock_isfile): + mock_isfile.side_effect = [False] self.assertRaises( - util.CLIError, custom._check_public_private_files, "public", None) + util.CLIError, custom._check_or_create_public_private_files, "public", None) - mock_expand.assert_called_once_with(mock_join.return_value) - mock_join.assert_called_once_with("~", ".ssh", "id_rsa") mock_isfile.assert_called_once_with("public") @mock.patch('os.path.isfile') - @mock.patch('os.path.expanduser') @mock.patch('os.path.join') - def test_check_public_private_files_no_private(self, mock_join, mock_expand, mock_isfile): + def test_check_or_create_public_private_files_no_private(self, mock_join, mock_isfile): mock_isfile.side_effect = [True, False] self.assertRaises( - util.CLIError, custom._check_public_private_files, "public", "private") + util.CLIError, custom._check_or_create_public_private_files, "public", "private") - mock_expand.assert_not_called() mock_join.assert_not_called() mock_isfile.assert_has_calls([ mock.call("public"), mock.call("private") ]) - @mock.patch('os.path.join') - @mock.patch('os.path.split') @mock.patch('builtins.open') - def test_write_cert_file(self, mock_open, mock_split, mock_join): + def test_write_cert_file(self, mock_open): mock_file = mock.Mock() mock_open.return_value.__enter__.return_value = mock_file - mock_split.return_value = ["path", "to", "publickey"] - file_name = custom._write_cert_file("public", "cert") + custom._write_cert_file("cert", "publickey-aadcert.pub") - self.assertEqual(mock_join.return_value, file_name) - mock_split.assert_called_once_with("public") - mock_join.assert_called_once_with("path", "to", "id_rsa-cert.pub") - mock_open.assert_called_once_with(mock_join.return_value, 'w') + mock_open.assert_called_once_with("publickey-aadcert.pub", 'w') mock_file.write.assert_called_once_with("ssh-rsa-cert-v01@openssh.com cert") @mock.patch('azext_ssh.rsa_parser.RSAParser') diff --git a/src/ssh/azext_ssh/tests/latest/test_ssh_utils.py b/src/ssh/azext_ssh/tests/latest/test_ssh_utils.py index 66b2d2bec19..11d74dc62e8 100644 --- a/src/ssh/azext_ssh/tests/latest/test_ssh_utils.py +++ b/src/ssh/azext_ssh/tests/latest/test_ssh_utils.py @@ -6,6 +6,7 @@ from knack import util import mock import unittest +import platform from azext_ssh import ssh_utils @@ -26,7 +27,7 @@ def test_start_ssh_connection(self, mock_call, mock_build, mock_host, mock_path) mock_path.assert_called_once_with() mock_host.assert_called_once_with("user", "ip") mock_build.assert_called_once_with("cert", "private") - mock_call.assert_called_once_with(expected_command, shell=True) + mock_call.assert_called_once_with(expected_command, shell=platform.system() == 'Windows') @mock.patch('azext_ssh.ssh_utils.file_utils.make_dirs_for_file') def test_write_ssh_config_ip_and_vm(self, mock_make_dirs): @@ -38,7 +39,6 @@ def test_write_ssh_config_ip_and_vm(self, mock_make_dirs): "\tIdentityFile privatekey", "Host 1.2.3.4", "\tUser username", - "\tHostName 1.2.3.4", "\tCertificateFile cert", "\tIdentityFile privatekey" ] @@ -59,7 +59,6 @@ def test_write_ssh_config_ip_only(self, mock_make_dirs): expected_lines = [ "Host 1.2.3.4", "\tUser username", - "\tHostName 1.2.3.4", "\tCertificateFile cert", "\tIdentityFile privatekey" ] diff --git a/src/ssh/setup.py b/src/ssh/setup.py index f3c01549186..e3853dc8caa 100644 --- a/src/ssh/setup.py +++ b/src/ssh/setup.py @@ -7,7 +7,7 @@ from setuptools import setup, find_packages -VERSION = "0.1.0" +VERSION = "0.1.2" CLASSIFIERS = [ 'Development Status :: 4 - Beta', diff --git a/src/stack-hci/HISTORY.rst b/src/stack-hci/HISTORY.rst new file mode 100644 index 00000000000..1c139576ba0 --- /dev/null +++ b/src/stack-hci/HISTORY.rst @@ -0,0 +1,8 @@ +.. :changelog: + +Release History +=============== + +0.1.0 +++++++ +* Initial release. diff --git a/src/stack-hci/README.md b/src/stack-hci/README.md new file mode 100644 index 00000000000..68264818f33 --- /dev/null +++ b/src/stack-hci/README.md @@ -0,0 +1,51 @@ +# Azure CLI stack-hci Extension # +This package is for the 'stack-hci' extension, i.e. 'az stack-hci' + +### How to use ### +Install this extension using the below CLI command +``` +az extension add --name stack-hci +``` + +### Included Features +#### Stack HCI Management: +Manage Stack HCI: [more info](https://docs.microsoft.com/en-us/azure-stack/hci/) \ +*Examples:* + +##### Create an HCI cluster +``` +az stack-hci cluster create \ + --location "East US" \ + --aad-client-id "24a6e53d-04e5-44d2-b7cc-1b732a847dfc" \ + --aad-tenant-id "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94" \ + --name "myCluster" \ + --resource-group "test-rg" +``` + +##### Delete an HCI cluster +``` +az stack-hci cluster delete --name "myCluster" --resource-group "test-rg" +``` + +##### List the HCI clusters +``` +az stack-hci cluster list +``` +``` +az stack-hci cluster list --resource-group "test-rg" +``` +``` +az stack-hci cluster list --subscription "test-sub" +``` + +##### Get details about the specified HCI cluster +``` +az stack-hci cluster show --name "myCluster" --resource-group "test-rg" +``` + +##### Update an HCI cluster +``` +az stack-hci cluster update --tags tag1="value1" tag2="value2" --name "myCluster" --resource-group "test-rg" +``` + +If you have issues, please give feedback by opening an issue at https://github.com/Azure/azure-cli-extensions/issues. diff --git a/src/stack-hci/azext_stack_hci/__init__.py b/src/stack-hci/azext_stack_hci/__init__.py new file mode 100644 index 00000000000..5c84badb797 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/__init__.py @@ -0,0 +1,46 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.cli.core import AzCommandsLoader +from azext_stack_hci.generated._help import helps # pylint: disable=unused-import + + +class AzureStackHCIClientCommandsLoader(AzCommandsLoader): + + def __init__(self, cli_ctx=None): + from azure.cli.core.commands import CliCommandType + from azext_stack_hci.generated._client_factory import cf_stack_hci + azure_stack_hci_custom = CliCommandType( + operations_tmpl='azext_stack_hci.custom#{}', + client_factory=cf_stack_hci) + parent = super(AzureStackHCIClientCommandsLoader, self) + parent.__init__(cli_ctx=cli_ctx, custom_command_type=azure_stack_hci_custom) + + def load_command_table(self, args): + from azext_stack_hci.generated.commands import load_command_table + load_command_table(self, args) + try: + from azext_stack_hci.manual.commands import load_command_table as load_command_table_manual + load_command_table_manual(self, args) + except ImportError: + pass + return self.command_table + + def load_arguments(self, command): + from azext_stack_hci.generated._params import load_arguments + load_arguments(self, command) + try: + from azext_stack_hci.manual._params import load_arguments as load_arguments_manual + load_arguments_manual(self, command) + except ImportError: + pass + + +COMMAND_LOADER_CLS = AzureStackHCIClientCommandsLoader diff --git a/src/stack-hci/azext_stack_hci/azext_metadata.json b/src/stack-hci/azext_stack_hci/azext_metadata.json new file mode 100644 index 00000000000..13025150393 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/azext_metadata.json @@ -0,0 +1,4 @@ +{ + "azext.isExperimental": true, + "azext.minCliCoreVersion": "2.3.1" +} \ No newline at end of file diff --git a/src/stack-hci/azext_stack_hci/custom.py b/src/stack-hci/azext_stack_hci/custom.py new file mode 100644 index 00000000000..dbe9d5f9742 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/custom.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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=wildcard-import +# pylint: disable=unused-wildcard-import + +from .generated.custom import * # noqa: F403 +try: + from .manual.custom import * # noqa: F403 +except ImportError: + pass diff --git a/src/stack-hci/azext_stack_hci/generated/__init__.py b/src/stack-hci/azext_stack_hci/generated/__init__.py new file mode 100644 index 00000000000..c9cfdc73e77 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/generated/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/stack-hci/azext_stack_hci/generated/_client_factory.py b/src/stack-hci/azext_stack_hci/generated/_client_factory.py new file mode 100644 index 00000000000..7bcbc499f84 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/generated/_client_factory.py @@ -0,0 +1,19 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + + +def cf_stack_hci(cli_ctx, *_): + from azure.cli.core.commands.client_factory import get_mgmt_service_client + from ..vendored_sdks.azurestackhci import AzureStackHCIClient + return get_mgmt_service_client(cli_ctx, AzureStackHCIClient) + + +def cf_cluster(cli_ctx, *_): + return cf_stack_hci(cli_ctx).cluster diff --git a/src/stack-hci/azext_stack_hci/generated/_help.py b/src/stack-hci/azext_stack_hci/generated/_help.py new file mode 100644 index 00000000000..c08641fd75b --- /dev/null +++ b/src/stack-hci/azext_stack_hci/generated/_help.py @@ -0,0 +1,65 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines + +from knack.help_files import helps + + +helps['stack-hci cluster'] = """ + type: group + short-summary: Commands to manage stack-hci cluster +""" + +helps['stack-hci cluster list'] = """ + type: command + short-summary: List all HCI clusters in a subscription. + examples: + - name: List all HCI clusters in a resource group + text: |- + az stack-hci cluster list --resource-group "test-rg" +""" + +helps['stack-hci cluster show'] = """ + type: command + short-summary: Get HCI cluster. + examples: + - name: Get a HCI cluster + text: |- + az stack-hci cluster show --name "myCluster" --resource-group "test-rg" +""" + +helps['stack-hci cluster create'] = """ + type: command + short-summary: Create an HCI cluster. + examples: + - name: Create an HCI cluster + text: |- + az stack-hci cluster create --location "East US" --aad-client-id "24a6e53d-04e5-44d2-b7cc-1b732a84\ +7dfc" --aad-tenant-id "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94" --name "myCluster" --resource-group "test-rg" +""" + +helps['stack-hci cluster update'] = """ + type: command + short-summary: Update an HCI cluster. + examples: + - name: Update an HCI cluster + text: |- + az stack-hci cluster update --tags tag1="value1" tag2="value2" --name "myCluster" --resource-group\ + "test-rg" +""" + +helps['stack-hci cluster delete'] = """ + type: command + short-summary: Delete an HCI cluster. + examples: + - name: Delete an HCI cluster + text: |- + az stack-hci cluster delete --name "myCluster" --resource-group "test-rg" +""" diff --git a/src/stack-hci/azext_stack_hci/generated/_params.py b/src/stack-hci/azext_stack_hci/generated/_params.py new file mode 100644 index 00000000000..c1c98a00749 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/generated/_params.py @@ -0,0 +1,34 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + +from azure.cli.core.commands.parameters import ( + tags_type, + get_location_type +) +from azure.cli.core.commands.validators import get_default_location_from_resource_group +from knack.arguments import CLIArgumentType + + +def load_arguments(self, _): + + cluster_name = CLIArgumentType(options_list=['--name', '-n'], help='The name of the cluster.') + + with self.argument_context('stack-hci cluster') as c: + c.argument('cluster_name', cluster_name, id_part='name') + c.argument('tags', tags_type) + + with self.argument_context('stack-hci cluster create') as c: + c.argument('cluster_name', cluster_name) + c.argument('location', arg_type=get_location_type(self.cli_ctx), + validator=get_default_location_from_resource_group) + c.argument('aad_client_id', help='App ID of cluster AAD identity.') + c.argument('aad_tenant_id', help='Tenant ID of cluster AAD identity. Default is the current tenant ID') diff --git a/src/stack-hci/azext_stack_hci/generated/commands.py b/src/stack-hci/azext_stack_hci/generated/commands.py new file mode 100644 index 00000000000..dc716b8477e --- /dev/null +++ b/src/stack-hci/azext_stack_hci/generated/commands.py @@ -0,0 +1,28 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +# pylint: disable=line-too-long +from azure.cli.core.commands import CliCommandType + + +def load_command_table(self, _): + + from azext_stack_hci.generated._client_factory import cf_cluster + stack_hci_cluster = CliCommandType( + operations_tmpl='azext_stack_hci.vendored_sdks.azurestackhci.operations._cluster_operations#ClusterOperations.{}', + client_factory=cf_cluster) + + with self.command_group('stack-hci cluster', stack_hci_cluster, client_factory=cf_cluster, + is_experimental=True) as g: + g.custom_command('list', 'stack_hci_cluster_list') + g.custom_show_command('show', 'stack_hci_cluster_show') + g.custom_command('create', 'stack_hci_cluster_create') + g.custom_command('update', 'stack_hci_cluster_update') + g.custom_command('delete', 'stack_hci_cluster_delete', confirmation=True) diff --git a/src/stack-hci/azext_stack_hci/generated/custom.py b/src/stack-hci/azext_stack_hci/generated/custom.py new file mode 100644 index 00000000000..f0cbad69db7 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/generated/custom.py @@ -0,0 +1,62 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines + + +def stack_hci_cluster_list(client, + resource_group_name=None): + if resource_group_name: + return client.list_by_resource_group(resource_group_name=resource_group_name) + return client.list() + + +def stack_hci_cluster_show(client, + resource_group_name, + cluster_name): + return client.get(resource_group_name=resource_group_name, + cluster_name=cluster_name) + + +def stack_hci_cluster_create(cmd, + client, + resource_group_name, + cluster_name, + aad_client_id, + location=None, + tags=None, + aad_tenant_id=None): + + if not aad_tenant_id: + from azure.cli.core._profile import Profile + profile = Profile(cli_ctx=cmd.cli_ctx) + aad_tenant_id = profile.get_subscription()['tenantId'] + + return client.create(resource_group_name=resource_group_name, + cluster_name=cluster_name, + tags=tags, + location=location, + aad_client_id=aad_client_id, + aad_tenant_id=aad_tenant_id) + + +def stack_hci_cluster_update(client, + resource_group_name, + cluster_name, + tags=None): + return client.update(resource_group_name=resource_group_name, + cluster_name=cluster_name, + tags=tags) + + +def stack_hci_cluster_delete(client, + resource_group_name, + cluster_name): + return client.delete(resource_group_name=resource_group_name, + cluster_name=cluster_name) diff --git a/src/stack-hci/azext_stack_hci/manual/__init__.py b/src/stack-hci/azext_stack_hci/manual/__init__.py new file mode 100644 index 00000000000..c9cfdc73e77 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/manual/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/stack-hci/azext_stack_hci/tests/__init__.py b/src/stack-hci/azext_stack_hci/tests/__init__.py new file mode 100644 index 00000000000..9b7ec942a0b --- /dev/null +++ b/src/stack-hci/azext_stack_hci/tests/__init__.py @@ -0,0 +1,71 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +import inspect +import os +import sys +import traceback +from azure.core.exceptions import AzureError +from azure.cli.testsdk.exceptions import CliTestError, CliExecutionError, JMESPathCheckAssertionError + + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) +exceptions = [] + + +def try_manual(func): + def import_manual_function(origin_func): + from importlib import import_module + decorated_path = inspect.getfile(origin_func) + module_path = __path__[0] + if not decorated_path.startswith(module_path): + raise Exception("Decorator can only be used in submodules!") + manual_path = os.path.join( + decorated_path[module_path.rfind(os.path.sep) + 1:]) + manual_file_path, manual_file_name = os.path.split(manual_path) + module_name, _ = os.path.splitext(manual_file_name) + manual_module = "..manual." + \ + ".".join(manual_file_path.split(os.path.sep) + [module_name, ]) + return getattr(import_module(manual_module, package=__name__), origin_func.__name__) + + def get_func_to_call(): + func_to_call = func + try: + func_to_call = import_manual_function(func) + print("Found manual override for {}(...)".format(func.__name__)) + except (ImportError, AttributeError): + pass + return func_to_call + + def wrapper(*args, **kwargs): + func_to_call = get_func_to_call() + print("running {}()...".format(func.__name__)) + try: + return func_to_call(*args, **kwargs) + except (AssertionError, AzureError, CliTestError, CliExecutionError, JMESPathCheckAssertionError) as e: + print("--------------------------------------") + print("step exception: ", e) + print("--------------------------------------", file=sys.stderr) + print("step exception in {}: {}".format(func.__name__, e), file=sys.stderr) + traceback.print_exc() + exceptions.append((func.__name__, sys.exc_info())) + + if inspect.isclass(func): + return get_func_to_call() + return wrapper + + +def raise_if(): + if exceptions: + if len(exceptions) <= 1: + raise exceptions[0][1][1] + message = "{}\nFollowed with exceptions in other steps:\n".format(str(exceptions[0][1][1])) + message += "\n".join(["{}: {}".format(h[0], h[1][1]) for h in exceptions[1:]]) + raise exceptions[0][1][0](message).with_traceback(exceptions[0][1][2]) diff --git a/src/stack-hci/azext_stack_hci/tests/latest/__init__.py b/src/stack-hci/azext_stack_hci/tests/latest/__init__.py new file mode 100644 index 00000000000..c9cfdc73e77 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/tests/latest/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/stack-hci/azext_stack_hci/tests/latest/preparers.py b/src/stack-hci/azext_stack_hci/tests/latest/preparers.py new file mode 100644 index 00000000000..0879e51945a --- /dev/null +++ b/src/stack-hci/azext_stack_hci/tests/latest/preparers.py @@ -0,0 +1,159 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import os +from datetime import datetime +from azure_devtools.scenario_tests import SingleValueReplacer +from azure.cli.testsdk.preparers import NoTrafficRecordingPreparer +from azure.cli.testsdk.exceptions import CliTestError +from azure.cli.testsdk.reverse_dependency import get_dummy_cli + + +KEY_RESOURCE_GROUP = 'rg' +KEY_VIRTUAL_NETWORK = 'vnet' +KEY_VNET_SUBNET = 'subnet' +KEY_VNET_NIC = 'nic' + + +class VirtualNetworkPreparer(NoTrafficRecordingPreparer, SingleValueReplacer): + def __init__(self, name_prefix='clitest.vn', + parameter_name='virtual_network', + resource_group_name=None, + resource_group_key=KEY_RESOURCE_GROUP, + dev_setting_name='AZURE_CLI_TEST_DEV_VIRTUAL_NETWORK_NAME', + random_name_length=24, key=KEY_VIRTUAL_NETWORK): + if ' ' in name_prefix: + raise CliTestError( + 'Error: Space character in name prefix \'%s\'' % name_prefix) + super(VirtualNetworkPreparer, self).__init__( + name_prefix, random_name_length) + self.cli_ctx = get_dummy_cli() + self.parameter_name = parameter_name + self.key = key + self.resource_group_name = resource_group_name + self.resource_group_key = resource_group_key + self.dev_setting_name = os.environ.get(dev_setting_name, None) + + def create_resource(self, name, **_): + if self.dev_setting_name: + return {self.parameter_name: self.dev_setting_name, } + + if not self.resource_group_name: + self.resource_group_name = self.test_class_instance.kwargs.get( + self.resource_group_key) + if not self.resource_group_name: + raise CliTestError("Error: No resource group configured!") + + tags = {'product': 'azurecli', 'cause': 'automation', + 'date': datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')} + if 'ENV_JOB_NAME' in os.environ: + tags['job'] = os.environ['ENV_JOB_NAME'] + tags = ' '.join(['{}={}'.format(key, value) + for key, value in tags.items()]) + template = 'az network vnet create --resource-group {} --name {} --subnet-name default --tag ' + tags + self.live_only_execute(self.cli_ctx, template.format( + self.resource_group_name, name)) + + self.test_class_instance.kwargs[self.key] = name + return {self.parameter_name: name} + + def remove_resource(self, name, **_): + # delete vnet if test is being recorded and if the vnet is not a dev rg + if not self.dev_setting_name: + self.live_only_execute( + self.cli_ctx, + 'az network vnet delete --name {} --resource-group {}'.format(name, self.resource_group_name)) + + +class VnetSubnetPreparer(NoTrafficRecordingPreparer, SingleValueReplacer): + def __init__(self, name_prefix='clitest.vn', + parameter_name='subnet', + resource_group_key=KEY_RESOURCE_GROUP, + vnet_key=KEY_VIRTUAL_NETWORK, + address_prefixes="11.0.0.0/24", + dev_setting_name='AZURE_CLI_TEST_DEV_VNET_SUBNET_NAME', + key=KEY_VNET_SUBNET): + if ' ' in name_prefix: + raise CliTestError( + 'Error: Space character in name prefix \'%s\'' % name_prefix) + super(VnetSubnetPreparer, self).__init__(name_prefix, 15) + self.cli_ctx = get_dummy_cli() + self.parameter_name = parameter_name + self.key = key + self.resource_group = [resource_group_key, None] + self.vnet = [vnet_key, None] + self.address_prefixes = address_prefixes + self.dev_setting_name = os.environ.get(dev_setting_name, None) + + def create_resource(self, name, **_): + if self.dev_setting_name: + return {self.parameter_name: self.dev_setting_name, } + + if not self.resource_group[1]: + self.resource_group[1] = self.test_class_instance.kwargs.get( + self.resource_group[0]) + if not self.resource_group[1]: + raise CliTestError("Error: No resource group configured!") + if not self.vnet[1]: + self.vnet[1] = self.test_class_instance.kwargs.get(self.vnet[0]) + if not self.vnet[1]: + raise CliTestError("Error: No vnet configured!") + + self.test_class_instance.kwargs[self.key] = 'default' + return {self.parameter_name: name} + + def remove_resource(self, name, **_): + pass + + +class VnetNicPreparer(NoTrafficRecordingPreparer, SingleValueReplacer): + def __init__(self, name_prefix='clitest.nic', + parameter_name='subnet', + resource_group_key=KEY_RESOURCE_GROUP, + vnet_key=KEY_VIRTUAL_NETWORK, + dev_setting_name='AZURE_CLI_TEST_DEV_VNET_NIC_NAME', + key=KEY_VNET_NIC): + if ' ' in name_prefix: + raise CliTestError( + 'Error: Space character in name prefix \'%s\'' % name_prefix) + super(VnetNicPreparer, self).__init__(name_prefix, 15) + self.cli_ctx = get_dummy_cli() + self.parameter_name = parameter_name + self.key = key + self.resource_group = [resource_group_key, None] + self.vnet = [vnet_key, None] + self.dev_setting_name = os.environ.get(dev_setting_name, None) + + def create_resource(self, name, **_): + if self.dev_setting_name: + return {self.parameter_name: self.dev_setting_name, } + + if not self.resource_group[1]: + self.resource_group[1] = self.test_class_instance.kwargs.get( + self.resource_group[0]) + if not self.resource_group[1]: + raise CliTestError("Error: No resource group configured!") + if not self.vnet[1]: + self.vnet[1] = self.test_class_instance.kwargs.get(self.vnet[0]) + if not self.vnet[1]: + raise CliTestError("Error: No vnet configured!") + + template = 'az network nic create --resource-group {} --name {} --vnet-name {} --subnet default ' + self.live_only_execute(self.cli_ctx, template.format( + self.resource_group[1], name, self.vnet[1])) + + self.test_class_instance.kwargs[self.key] = name + return {self.parameter_name: name} + + def remove_resource(self, name, **_): + if not self.dev_setting_name: + self.live_only_execute( + self.cli_ctx, + 'az network nic delete --name {} --resource-group {}'.format(name, self.resource_group[1])) diff --git a/src/stack-hci/azext_stack_hci/tests/latest/recordings/test_stack_hci.yaml b/src/stack-hci/azext_stack_hci/tests/latest/recordings/test_stack_hci.yaml new file mode 100644 index 00000000000..e0e416402a3 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/tests/latest/recordings/test_stack_hci.yaml @@ -0,0 +1,750 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - ad app create + Connection: + - keep-alive + ParameterSetName: + - --display-name + User-Agent: + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/applications?$filter=startswith%28displayName%2C%27cli-app-000003%27%29&api-version=1.6 + response: + body: + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[]}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '121' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Fri, 18 Sep 2020 08:43:03 GMT + duration: + - '2630429' + expires: + - '-1' + ocp-aad-diagnostics-server-name: + - 4gwQrBtXks5dVi0aRt0zGhLTOtYc/KnLaBj5AQs9ou4= + ocp-aad-session-key: + - jP2gbKIeF8jMFB4RM505TX_sUsyMbkPnSebl9fPaywRUbxgguYXPpD7ytz5slp0L-hqJi0DLhWFdM3kACgld6ZEzYi9DYunxv6Nx9cJFMNWrkqJRTrZPiXuqf4oK4SvA.723C6zaMb_rRKJVYELEI2D4mJe8GF6TNUam06Dbi59o + pragma: + - no-cache + request-id: + - 623a47d8-0208-4bce-93eb-cf08ea1582b1 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '2' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: '{"availableToOtherTenants": false, "displayName": "cli-app-000003", "identifierUris": + []}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - ad app create + Connection: + - keep-alive + Content-Length: + - '89' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --display-name + User-Agent: + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: POST + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/applications?api-version=1.6 + response: + body: + string: '{"odata.metadata": "https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects/@Element", + "odata.type": "Microsoft.DirectoryServices.Application", "objectType": "Application", + "objectId": "9de12a67-ca90-4972-b015-a458c448616b", "deletionTimestamp": null, + "acceptMappedClaims": null, "addIns": [], "appId": "d584248b-f548-4e32-b9d8-e6be31a7b199", + "applicationTemplateId": null, "appRoles": [], "availableToOtherTenants": + false, "displayName": "cli-app-000003", "errorUrl": null, "groupMembershipClaims": + null, "homepage": null, "identifierUris": [], "informationalUrls": {"termsOfService": + null, "support": null, "privacy": null, "marketing": null}, "isDeviceOnlyAuthSupported": + null, "keyCredentials": [], "knownClientApplications": [], "logoutUrl": null, + "logo@odata.mediaEditLink": "directoryObjects/9de12a67-ca90-4972-b015-a458c448616b/Microsoft.DirectoryServices.Application/logo", + "logo@odata.mediaContentType": "application/json;odata=minimalmetadata; charset=utf-8", + "logoUrl": null, "mainLogo@odata.mediaEditLink": "directoryObjects/9de12a67-ca90-4972-b015-a458c448616b/Microsoft.DirectoryServices.Application/mainLogo", + "oauth2AllowIdTokenImplicitFlow": true, "oauth2AllowImplicitFlow": false, + "oauth2AllowUrlPathMatching": false, "oauth2Permissions": [{"adminConsentDescription": + "Allow the application to access cli-app-000003 on behalf of the signed-in + user.", "adminConsentDisplayName": "Access cli-app-000003", "id": "6fdf5671-9e38-4ef7-bc54-ece58c268d34", + "isEnabled": true, "type": "User", "userConsentDescription": "Allow the application + to access cli-app-000003 on your behalf.", "userConsentDisplayName": "Access + cli-app-000003", "value": "user_impersonation"}], "oauth2RequirePostResponse": + false, "optionalClaims": null, "orgRestrictions": [], "parentalControlSettings": + {"countriesBlockedForMinors": [], "legalAgeGroupRule": "Allow"}, "passwordCredentials": + [], "publicClient": null, "publisherDomain": "AzureSDKTeam.onmicrosoft.com", + "recordConsentConditions": null, "replyUrls": [], "requiredResourceAccess": + [], "samlMetadataUrl": null, "signInAudience": "AzureADMyOrg", "tokenEncryptionKeyId": + null}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '2048' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Fri, 18 Sep 2020 08:43:04 GMT + duration: + - '5530656' + expires: + - '-1' + location: + - https://graph.windows.net/00000000-0000-0000-0000-000000000000/directoryObjects/9de12a67-ca90-4972-b015-a458c448616b/Microsoft.DirectoryServices.Application + ocp-aad-diagnostics-server-name: + - 2dwL4zmGotV02lDmIuML9wD2xi2nJgoszFrjUl3LYBw= + ocp-aad-session-key: + - MSA0O2sZTLbCb1iwTuyVsOpgYjIJnlNRm-G93i0Wjw48sXYwmq-iaSUd7E1mve2ZJowbxAw-mMH87ALSfrHfODydNghCbjeKWalMM8vdJcpnRhmmI0nxv5RNSzv66AZje-wNGJ8LVZH9ufxuFhvpOnuubjcZl4O4g73Hd44QC14.IdMhTRcDE_GoWjvBMDznmvhP7t7Tx1gZsxg7sftyA3Q + pragma: + - no-cache + request-id: + - a9740549-9e8a-41e7-bd78-8bcfa1291454 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '1' + x-powered-by: + - ASP.NET + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - account show + Connection: + - keep-alive + User-Agent: + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + 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/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/uksouth","name":"uksouth","displayName":"UK + South","regionalDisplayName":"(Europe) UK South","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"-0.799","latitude":"50.941","physicalLocation":"London","pairedRegion":[{"name":"ukwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope","name":"westeurope","displayName":"West + Europe","regionalDisplayName":"(Europe) West Europe","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"4.9","latitude":"52.3667","physicalLocation":"Netherlands","pairedRegion":[{"name":"northeurope","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus","name":"centralus","displayName":"Central + US","regionalDisplayName":"(US) Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-93.6208","latitude":"41.5908","physicalLocation":"Iowa","pairedRegion":[{"name":"eastus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus","name":"northcentralus","displayName":"North + Central US","regionalDisplayName":"(US) North Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-87.6278","latitude":"41.8819","physicalLocation":"Illinois","pairedRegion":[{"name":"southcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus","name":"westus","displayName":"West + US","regionalDisplayName":"(US) West US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-122.417","latitude":"37.783","physicalLocation":"California","pairedRegion":[{"name":"eastus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth","name":"southafricanorth","displayName":"South + Africa North","regionalDisplayName":"(Africa) South Africa North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Africa","longitude":"28.218370","latitude":"-25.731340","physicalLocation":"Johannesburg","pairedRegion":[{"name":"southafricawest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia","name":"centralindia","displayName":"Central + India","regionalDisplayName":"(Asia Pacific) Central India","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"73.9197","latitude":"18.5822","physicalLocation":"Pune","pairedRegion":[{"name":"southindia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia","name":"eastasia","displayName":"East + Asia","regionalDisplayName":"(Asia Pacific) East Asia","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"114.188","latitude":"22.267","physicalLocation":"Hong + Kong","pairedRegion":[{"name":"southeastasia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast","name":"japaneast","displayName":"Japan + East","regionalDisplayName":"(Asia Pacific) Japan East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"139.77","latitude":"35.68","physicalLocation":"Tokyo, + Saitama","pairedRegion":[{"name":"japanwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral","name":"koreacentral","displayName":"Korea + Central","regionalDisplayName":"(Asia Pacific) Korea Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia + Pacific","longitude":"126.9780","latitude":"37.5665","physicalLocation":"Seoul","pairedRegion":[{"name":"koreasouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral","name":"canadacentral","displayName":"Canada + Central","regionalDisplayName":"(Canada) Canada Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Canada","longitude":"-79.383","latitude":"43.653","physicalLocation":"Toronto","pairedRegion":[{"name":"canadaeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral","name":"francecentral","displayName":"France + Central","regionalDisplayName":"(Europe) France Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"2.3730","latitude":"46.3772","physicalLocation":"Paris","pairedRegion":[{"name":"francesouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral","name":"germanywestcentral","displayName":"Germany + West Central","regionalDisplayName":"(Europe) Germany West Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"8.682127","latitude":"50.110924","physicalLocation":"Frankfurt","pairedRegion":[{"name":"germanynorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast","name":"norwayeast","displayName":"Norway + East","regionalDisplayName":"(Europe) Norway East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"10.752245","latitude":"59.913868","physicalLocation":"Norway","pairedRegion":[{"name":"norwaywest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth","name":"switzerlandnorth","displayName":"Switzerland + North","regionalDisplayName":"(Europe) Switzerland North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"8.564572","latitude":"47.451542","physicalLocation":"Zurich","pairedRegion":[{"name":"switzerlandwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth","name":"uaenorth","displayName":"UAE + North","regionalDisplayName":"(Middle East) UAE North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Middle + East","longitude":"55.316666","latitude":"25.266666","physicalLocation":"Dubai","pairedRegion":[{"name":"uaecentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth","name":"brazilsouth","displayName":"Brazil + South","regionalDisplayName":"(South America) Brazil South","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"South + America","longitude":"-46.633","latitude":"-23.55","physicalLocation":"Sao + Paulo State","pairedRegion":[{"name":"southcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralusstage","name":"centralusstage","displayName":"Central + US (Stage)","regionalDisplayName":"(US) Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusstage","name":"eastusstage","displayName":"East + US (Stage)","regionalDisplayName":"(US) East US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2stage","name":"eastus2stage","displayName":"East + US 2 (Stage)","regionalDisplayName":"(US) East US 2 (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralusstage","name":"northcentralusstage","displayName":"North + Central US (Stage)","regionalDisplayName":"(US) North Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralusstage","name":"southcentralusstage","displayName":"South + Central US (Stage)","regionalDisplayName":"(US) South Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westusstage","name":"westusstage","displayName":"West + US (Stage)","regionalDisplayName":"(US) West US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2stage","name":"westus2stage","displayName":"West + US 2 (Stage)","regionalDisplayName":"(US) West US 2 (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asia","name":"asia","displayName":"Asia","regionalDisplayName":"Asia","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asiapacific","name":"asiapacific","displayName":"Asia + Pacific","regionalDisplayName":"Asia Pacific","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australia","name":"australia","displayName":"Australia","regionalDisplayName":"Australia","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazil","name":"brazil","displayName":"Brazil","regionalDisplayName":"Brazil","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canada","name":"canada","displayName":"Canada","regionalDisplayName":"Canada","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/europe","name":"europe","displayName":"Europe","regionalDisplayName":"Europe","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/global","name":"global","displayName":"Global","regionalDisplayName":"Global","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/india","name":"india","displayName":"India","regionalDisplayName":"India","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japan","name":"japan","displayName":"Japan","regionalDisplayName":"Japan","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uk","name":"uk","displayName":"United + Kingdom","regionalDisplayName":"United Kingdom","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/unitedstates","name":"unitedstates","displayName":"United + States","regionalDisplayName":"United States","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasiastage","name":"eastasiastage","displayName":"East + Asia (Stage)","regionalDisplayName":"(Asia Pacific) East Asia (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"Asia + Pacific"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasiastage","name":"southeastasiastage","displayName":"Southeast + Asia (Stage)","regionalDisplayName":"(Asia Pacific) Southeast Asia (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"Asia + Pacific"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap","name":"centraluseuap","displayName":"Central + US EUAP","regionalDisplayName":"(US) Central US EUAP","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-93.6208","latitude":"41.5908","pairedRegion":[{"name":"eastus2euap","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap","name":"eastus2euap","displayName":"East + US 2 EUAP","regionalDisplayName":"(US) East US 2 EUAP","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-78.3889","latitude":"36.6681","pairedRegion":[{"name":"centraluseuap","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus","name":"westcentralus","displayName":"West + Central US","regionalDisplayName":"(US) West Central US","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-110.234","latitude":"40.890","physicalLocation":"Wyoming","pairedRegion":[{"name":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest","name":"southafricawest","displayName":"South + Africa West","regionalDisplayName":"(Africa) South Africa West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Africa","longitude":"18.843266","latitude":"-34.075691","physicalLocation":"Cape + Town","pairedRegion":[{"name":"southafricanorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral","name":"australiacentral","displayName":"Australia + Central","regionalDisplayName":"(Asia Pacific) Australia Central","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"149.1244","latitude":"-35.3075","physicalLocation":"Canberra","pairedRegion":[{"name":"australiacentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2","name":"australiacentral2","displayName":"Australia + Central 2","regionalDisplayName":"(Asia Pacific) Australia Central 2","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"149.1244","latitude":"-35.3075","physicalLocation":"Canberra","pairedRegion":[{"name":"australiacentral2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast","name":"australiasoutheast","displayName":"Australia + Southeast","regionalDisplayName":"(Asia Pacific) Australia Southeast","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"144.9631","latitude":"-37.8136","physicalLocation":"Victoria","pairedRegion":[{"name":"australiaeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest","name":"japanwest","displayName":"Japan + West","regionalDisplayName":"(Asia Pacific) Japan West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia + Pacific","longitude":"135.5022","latitude":"34.6939","physicalLocation":"Osaka","pairedRegion":[{"name":"japaneast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/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: + - '25098' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 18 Sep 2020 08:43:04 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: '{"location": "eastus", "properties": {"aadClientId": "d584248b-f548-4e32-b9d8-e6be31a7b199", + "aadTenantId": "54826b22-38d6-4fb2-bad9-b7b93a3e9c5a"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - stack-hci cluster create + Connection: + - keep-alive + Content-Length: + - '148' + Content-Type: + - application/json + ParameterSetName: + - --location --aad-client-id --aad-tenant-id --name --resource-group + User-Agent: + - AZURECLI/2.12.0 azsdk-python-azurestackhciclient/unknown Python/3.8.0 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_tes000001/providers/Microsoft.AzureStackHCI/clusters/cli-cluster-000002?api-version=2020-03-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_tes000001/providers/Microsoft.AzureStackHCI/clusters/cli-cluster-000002","name":"cli-cluster-000002","type":"Microsoft.AzureStackHCI/clusters","location":"eastus","tags":{},"properties":{"provisioningState":"Succeeded","status":"NotYetRegistered","cloudId":"4fb1ebb3-6e4d-4873-9100-71a4ea0de088","aadClientId":"d584248b-f548-4e32-b9d8-e6be31a7b199","aadTenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","trialDaysRemaining":30,"billingModel":"Trial"}}' + headers: + cache-control: + - no-cache + content-length: + - '594' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 18 Sep 2020 08:43:12 GMT + etag: + - '"24007f60-0000-0100-0000-5f6473200000"' + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - stack-hci cluster show + Connection: + - keep-alive + ParameterSetName: + - --name --resource-group + User-Agent: + - AZURECLI/2.12.0 azsdk-python-azurestackhciclient/unknown Python/3.8.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_tes000001/providers/Microsoft.AzureStackHCI/clusters/cli-cluster-000002?api-version=2020-03-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_tes000001/providers/Microsoft.AzureStackHCI/clusters/cli-cluster-000002","name":"cli-cluster-000002","type":"Microsoft.AzureStackHCI/clusters","location":"eastus","tags":{},"properties":{"provisioningState":"Succeeded","status":"NotYetRegistered","cloudId":"4fb1ebb3-6e4d-4873-9100-71a4ea0de088","aadClientId":"d584248b-f548-4e32-b9d8-e6be31a7b199","aadTenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","trialDaysRemaining":30,"billingModel":"Trial"}}' + headers: + cache-control: + - no-cache + content-length: + - '594' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 18 Sep 2020 08:43:15 GMT + etag: + - '"24007f60-0000-0100-0000-5f6473200000"' + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - stack-hci cluster list + Connection: + - keep-alive + ParameterSetName: + - --resource-group + User-Agent: + - AZURECLI/2.12.0 azsdk-python-azurestackhciclient/unknown Python/3.8.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_tes000001/providers/Microsoft.AzureStackHCI/clusters?api-version=2020-03-01-preview + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_tes000001/providers/Microsoft.AzureStackHCI/clusters/cli-cluster-000002","name":"cli-cluster-000002","type":"Microsoft.AzureStackHCI/clusters","location":"eastus","tags":{},"properties":{"provisioningState":"Succeeded","status":"NotYetRegistered","cloudId":"4fb1ebb3-6e4d-4873-9100-71a4ea0de088","aadClientId":"d584248b-f548-4e32-b9d8-e6be31a7b199","aadTenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","trialDaysRemaining":30,"billingModel":"Trial"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '606' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 18 Sep 2020 08:43:16 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: '{"tags": {"tag1": "value1", "tag2": "value2"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - stack-hci cluster update + Connection: + - keep-alive + Content-Length: + - '46' + Content-Type: + - application/json + ParameterSetName: + - --tags --name --resource-group + User-Agent: + - AZURECLI/2.12.0 azsdk-python-azurestackhciclient/unknown Python/3.8.0 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_tes000001/providers/Microsoft.AzureStackHCI/clusters/cli-cluster-000002?api-version=2020-03-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_tes000001/providers/Microsoft.AzureStackHCI/clusters/cli-cluster-000002","name":"cli-cluster-000002","type":"Microsoft.AzureStackHCI/clusters","location":"eastus","tags":{"tag1":"value1","tag2":"value2"},"properties":{"provisioningState":"Succeeded","status":"NotYetRegistered","cloudId":"4fb1ebb3-6e4d-4873-9100-71a4ea0de088","aadClientId":"d584248b-f548-4e32-b9d8-e6be31a7b199","aadTenantId":"54826b22-38d6-4fb2-bad9-b7b93a3e9c5a","trialDaysRemaining":30,"billingModel":"Trial"}}' + headers: + cache-control: + - no-cache + content-length: + - '625' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 18 Sep 2020 08:43:21 GMT + etag: + - '"24008060-0000-0100-0000-5f6473270000"' + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - stack-hci cluster delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --name --resource-group -y + User-Agent: + - AZURECLI/2.12.0 azsdk-python-azurestackhciclient/unknown Python/3.8.0 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_tes000001/providers/Microsoft.AzureStackHCI/clusters/cli-cluster-000002?api-version=2020-03-01-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Fri, 18 Sep 2020 08:43:27 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Kestrel + 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: + - stack-hci cluster list + Connection: + - keep-alive + ParameterSetName: + - --resource-group + User-Agent: + - AZURECLI/2.12.0 azsdk-python-azurestackhciclient/unknown Python/3.8.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_tes000001/providers/Microsoft.AzureStackHCI/clusters?api-version=2020-03-01-preview + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 18 Sep 2020 08:43:28 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: + - ad app delete + Connection: + - keep-alive + ParameterSetName: + - --id + User-Agent: + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/applications?$filter=identifierUris%2Fany%28s%3As%20eq%20%27d584248b-f548-4e32-b9d8-e6be31a7b199%27%29&api-version=1.6 + response: + body: + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[]}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '121' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Fri, 18 Sep 2020 08:43:28 GMT + duration: + - '2561050' + expires: + - '-1' + ocp-aad-diagnostics-server-name: + - 0PH1DQHS551TbzXZzdmMkjBdAuwHhl7QqdInjX69/n8= + ocp-aad-session-key: + - _GGkbfW0ZG3jIzAgV4gydNi8QqdhVuNIsNYCTNWBB918zz1BvubmcXqMS3VF1PNi3PxWWipH9xi4RGYYNi6ggLxLP0RnAtzoJ7TiYOGBwHBNrnmlsfutFKkAk5j3Ggxia2NiN14He4ZXaRn284ko2X8-nlxTSlXV_2Dc6AZpnFk.9mRW7aRoLO_U4h52DSXwfj4jzb11THORdOhkjQGbrGE + pragma: + - no-cache + request-id: + - 8ae3cb7e-c31c-4e5e-aab7-18f77b5b9078 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '2' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - ad app delete + Connection: + - keep-alive + ParameterSetName: + - --id + User-Agent: + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/applications?$filter=appId%20eq%20%27d584248b-f548-4e32-b9d8-e6be31a7b199%27&api-version=1.6 + response: + body: + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.Application","objectType":"Application","objectId":"9de12a67-ca90-4972-b015-a458c448616b","deletionTimestamp":null,"acceptMappedClaims":null,"addIns":[],"appId":"d584248b-f548-4e32-b9d8-e6be31a7b199","applicationTemplateId":null,"appRoles":[],"availableToOtherTenants":false,"displayName":"cli-app-000003","errorUrl":null,"groupMembershipClaims":null,"homepage":null,"identifierUris":[],"informationalUrls":{"termsOfService":null,"support":null,"privacy":null,"marketing":null},"isDeviceOnlyAuthSupported":null,"keyCredentials":[],"knownClientApplications":[],"logoutUrl":null,"logo@odata.mediaEditLink":"directoryObjects/9de12a67-ca90-4972-b015-a458c448616b/Microsoft.DirectoryServices.Application/logo","logoUrl":null,"mainLogo@odata.mediaEditLink":"directoryObjects/9de12a67-ca90-4972-b015-a458c448616b/Microsoft.DirectoryServices.Application/mainLogo","oauth2AllowIdTokenImplicitFlow":true,"oauth2AllowImplicitFlow":false,"oauth2AllowUrlPathMatching":false,"oauth2Permissions":[{"adminConsentDescription":"Allow + the application to access cli-app-000003 on behalf of the signed-in user.","adminConsentDisplayName":"Access + cli-app-000003","id":"6fdf5671-9e38-4ef7-bc54-ece58c268d34","isEnabled":true,"type":"User","userConsentDescription":"Allow + the application to access cli-app-000003 on your behalf.","userConsentDisplayName":"Access + cli-app-000003","value":"user_impersonation"}],"oauth2RequirePostResponse":false,"optionalClaims":null,"orgRestrictions":[],"parentalControlSettings":{"countriesBlockedForMinors":[],"legalAgeGroupRule":"Allow"},"passwordCredentials":[],"publicClient":null,"publisherDomain":"AzureSDKTeam.onmicrosoft.com","recordConsentConditions":null,"replyUrls":[],"requiredResourceAccess":[],"samlMetadataUrl":null,"signInAudience":"AzureADMyOrg","tokenEncryptionKeyId":null}]}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '1965' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Fri, 18 Sep 2020 08:43:29 GMT + duration: + - '2488583' + expires: + - '-1' + ocp-aad-diagnostics-server-name: + - y2AFatDb8bxovAuAcAg+Xai78XOhksqhh+LYGhHC+p8= + ocp-aad-session-key: + - Pp6i7wxbqs2PdiffcDKwzzyRXt0NRQyPI_kqzFEISv4h5x7fY2TFHGhMKvxejNNESzdMVSBFz-LZqiYQgk3NZM4OmAPoB9GOmNrVRGHk3bRmSNpttGqCMJx33J2FQkQEIQ_bwQQ2CCYg4NIujJq5uwICYxNr9Fvc_308dBie6vE.DAagkv3LxTCj4hiTGfYRvgk7R4-yeFujsCUGOCamfDo + pragma: + - no-cache + request-id: + - f7c34571-02d4-4c42-9a6c-86d596e00884 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '2' + x-powered-by: + - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - ad app delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --id + User-Agent: + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: DELETE + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/applications/9de12a67-ca90-4972-b015-a458c448616b?api-version=1.6 + response: + body: + string: '' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + date: + - Fri, 18 Sep 2020 08:43:30 GMT + duration: + - '3475373' + expires: + - '-1' + ocp-aad-diagnostics-server-name: + - y2AFatDb8bxovAuAcAg+Xai78XOhksqhh+LYGhHC+p8= + ocp-aad-session-key: + - essQYgyWsOPaX-e2IqOuafN7lZjicnZkHViKGiXPpcaSZPgeBq214zScs7DdNzoJERNp4zRcKhtE34MXRmKHTojV_6UAC5nnfuzi7_W5uvPWNAFFg-soYWZTuHPuPwmhvaTNmq2YOlYPZP7HFaXN6GViGdaKOhgmF0igZqIiPA0.3bXT-lpjisU4JuFsKPrTS2uWUWu-F9LT0cY_ofB4NAU + pragma: + - no-cache + request-id: + - 3ff8268d-0ec7-41f0-b0ea-a7522f0377ea + strict-transport-security: + - max-age=31536000; includeSubDomains + x-aspnet-version: + - 4.0.30319 + x-ms-dirapi-data-contract-version: + - '1.6' + x-ms-resource-unit: + - '1' + x-powered-by: + - ASP.NET + status: + code: 204 + message: No Content +version: 1 diff --git a/src/stack-hci/azext_stack_hci/tests/latest/test_azure_stack_hci_scenario.py b/src/stack-hci/azext_stack_hci/tests/latest/test_azure_stack_hci_scenario.py new file mode 100644 index 00000000000..c3f46da843c --- /dev/null +++ b/src/stack-hci/azext_stack_hci/tests/latest/test_azure_stack_hci_scenario.py @@ -0,0 +1,108 @@ +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import os +from azure.cli.testsdk import ScenarioTest +from .. import try_manual, raise_if +from azure.cli.testsdk import ResourceGroupPreparer + + +TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) + + +@try_manual +def setup(test, rg): + test.kwargs.update({ + 'cluster_name': test.create_random_name('cli-cluster-', 20), + 'app_name': test.create_random_name(prefix='cli-app-', length=14) + }) + + app_id = test.cmd('ad app create --display-name {app_name}').get_output_in_json()['appId'] + tenant_id = test.cmd('account show').get_output_in_json()['tenantId'] + + test.kwargs.update({ + 'aad_client_id': app_id, + 'aad-tenant-id': tenant_id + }) + + +# EXAMPLE: /Clusters/put/GetClusters +@try_manual +def step__clusters_put_getclusters(test, rg): + test.cmd('az stack-hci cluster create ' + '--location "East US" ' + '--aad-client-id {aad_client_id} ' + '--aad-tenant-id {aad-tenant-id} ' + '--name "{cluster_name}" ' + '--resource-group "{rg}"', + checks=[test.check('name', '{cluster_name}')]) + + +# EXAMPLE: /Clusters/get/GetClusters +@try_manual +def step__clusters_get_getclusters(test, rg): + test.cmd('az stack-hci cluster show ' + '--name "{cluster_name}" ' + '--resource-group "{rg}"', + checks=[test.check('name', '{cluster_name}')]) + + +# EXAMPLE: /Clusters/get/ListClusters +@try_manual +def step__clusters_get_listclusters(test, rg, cluster_amount): + test.cmd('az stack-hci cluster list ' + '--resource-group "{rg}"', + checks=[test.check('length([])', cluster_amount)]) + + +# EXAMPLE: /Clusters/patch/GetClusters +@try_manual +def step__clusters_patch_getclusters(test, rg): + test.cmd('az stack-hci cluster update ' + '--tags tag1="value1" tag2="value2" ' + '--name "{cluster_name}" ' + '--resource-group "{rg}"', + checks=[test.check('tags', {'tag1': 'value1', 'tag2': 'value2'})]) + + +# EXAMPLE: /Clusters/delete/GetClusters +@try_manual +def step__clusters_delete_getclusters(test, rg): + test.cmd('az stack-hci cluster delete ' + '--name "{cluster_name}" ' + '--resource-group "{rg}" -y', + checks=[]) + + +@try_manual +def cleanup(test, rg): + test.cmd("ad app delete --id {aad_client_id} ") + + +@try_manual +def call_scenario(test, rg): + setup(test, rg) + step__clusters_put_getclusters(test, rg) + step__clusters_get_getclusters(test, rg) + step__clusters_get_listclusters(test, rg, 1) + step__clusters_patch_getclusters(test, rg) + step__clusters_delete_getclusters(test, rg) + step__clusters_get_listclusters(test, rg, 0) + cleanup(test, rg) + + +@try_manual +class AzureStackHCIClientScenarioTest(ScenarioTest): + + @ResourceGroupPreparer(name_prefix='cli_test_stack_hci_test-rg'[:7], key='rg', parameter_name='rg') + def test_stack_hci(self, rg): + + call_scenario(self, rg) + raise_if() diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/__init__.py b/src/stack-hci/azext_stack_hci/vendored_sdks/__init__.py new file mode 100644 index 00000000000..c9cfdc73e77 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/__init__.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/__init__.py new file mode 100644 index 00000000000..f4ef346a221 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/__init__.py @@ -0,0 +1,16 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._azure_stack_hci_client import AzureStackHCIClient +__all__ = ['AzureStackHCIClient'] + +try: + from ._patch import patch_sdk + patch_sdk() +except ImportError: + pass diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/_azure_stack_hci_client.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/_azure_stack_hci_client.py new file mode 100644 index 00000000000..4702aa9ff20 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/_azure_stack_hci_client.py @@ -0,0 +1,74 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import TYPE_CHECKING + +from azure.mgmt.core import ARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Optional + + from azure.core.credentials import TokenCredential + +from ._configuration import AzureStackHCIClientConfiguration +from .operations import OperationOperations +from .operations import ClusterOperations +from . import models + + +class AzureStackHCIClient(object): + """Azure Stack HCI management service. + + :ivar operation: OperationOperations operations + :vartype operation: azure_stack_hci_client.operations.OperationOperations + :ivar cluster: ClusterOperations operations + :vartype cluster: azure_stack_hci_client.operations.ClusterOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential, # type: "TokenCredential" + subscription_id, # type: str + base_url=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> None + if not base_url: + base_url = 'https://management.azure.com' + self._config = AzureStackHCIClientConfiguration(credential, subscription_id, **kwargs) + self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.operation = OperationOperations( + self._client, self._config, self._serialize, self._deserialize) + self.cluster = ClusterOperations( + self._client, self._config, self._serialize, self._deserialize) + + def close(self): + # type: () -> None + self._client.close() + + def __enter__(self): + # type: () -> AzureStackHCIClient + self._client.__enter__() + return self + + def __exit__(self, *exc_details): + # type: (Any) -> None + self._client.__exit__(*exc_details) diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/_configuration.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/_configuration.py new file mode 100644 index 00000000000..034bc536248 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/_configuration.py @@ -0,0 +1,69 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import TYPE_CHECKING + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any + + from azure.core.credentials import TokenCredential + +VERSION = "unknown" + +class AzureStackHCIClientConfiguration(Configuration): + """Configuration for AzureStackHCIClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials.TokenCredential + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + """ + + def __init__( + self, + credential, # type: "TokenCredential" + subscription_id, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + super(AzureStackHCIClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.subscription_id = subscription_id + self.api_version = "2020-03-01-preview" + self.credential_scopes = ['https://management.azure.com/.default'] + self.credential_scopes.extend(kwargs.pop('credential_scopes', [])) + kwargs.setdefault('sdk_moniker', 'azurestackhciclient/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs # type: Any + ): + # type: (...) -> None + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/__init__.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/__init__.py new file mode 100644 index 00000000000..d0158d0ea72 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/__init__.py @@ -0,0 +1,10 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._azure_stack_hci_client_async import AzureStackHCIClient +__all__ = ['AzureStackHCIClient'] diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/_azure_stack_hci_client_async.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/_azure_stack_hci_client_async.py new file mode 100644 index 00000000000..b2584804915 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/_azure_stack_hci_client_async.py @@ -0,0 +1,68 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, Optional, TYPE_CHECKING + +from azure.mgmt.core import AsyncARMPipelineClient +from msrest import Deserializer, Serializer + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +from ._configuration_async import AzureStackHCIClientConfiguration +from .operations_async import OperationOperations +from .operations_async import ClusterOperations +from .. import models + + +class AzureStackHCIClient(object): + """Azure Stack HCI management service. + + :ivar operation: OperationOperations operations + :vartype operation: azure_stack_hci_client.aio.operations_async.OperationOperations + :ivar cluster: ClusterOperations operations + :vartype cluster: azure_stack_hci_client.aio.operations_async.ClusterOperations + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :param str base_url: Service URL + :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + subscription_id: str, + base_url: Optional[str] = None, + **kwargs: Any + ) -> None: + if not base_url: + base_url = 'https://management.azure.com' + self._config = AzureStackHCIClientConfiguration(credential, subscription_id, **kwargs) + self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.operation = OperationOperations( + self._client, self._config, self._serialize, self._deserialize) + self.cluster = ClusterOperations( + self._client, self._config, self._serialize, self._deserialize) + + async def close(self) -> None: + await self._client.close() + + async def __aenter__(self) -> "AzureStackHCIClient": + await self._client.__aenter__() + return self + + async def __aexit__(self, *exc_details) -> None: + await self._client.__aexit__(*exc_details) diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/_configuration_async.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/_configuration_async.py new file mode 100644 index 00000000000..a318df7704f --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/_configuration_async.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Any, TYPE_CHECKING + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from azure.core.credentials_async import AsyncTokenCredential + +VERSION = "unknown" + +class AzureStackHCIClientConfiguration(Configuration): + """Configuration for AzureStackHCIClient. + + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credential: Credential needed for the client to connect to Azure. + :type credential: ~azure.core.credentials_async.AsyncTokenCredential + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + """ + + def __init__( + self, + credential: "AsyncTokenCredential", + subscription_id: str, + **kwargs: Any + ) -> None: + if credential is None: + raise ValueError("Parameter 'credential' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + super(AzureStackHCIClientConfiguration, self).__init__(**kwargs) + + self.credential = credential + self.subscription_id = subscription_id + self.api_version = "2020-03-01-preview" + self.credential_scopes = ['https://management.azure.com/.default'] + self.credential_scopes.extend(kwargs.pop('credential_scopes', [])) + kwargs.setdefault('sdk_moniker', 'azurestackhciclient/{}'.format(VERSION)) + self._configure(**kwargs) + + def _configure( + self, + **kwargs: Any + ) -> None: + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) + self.authentication_policy = kwargs.get('authentication_policy') + if self.credential and not self.authentication_policy: + self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/operations_async/__init__.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/operations_async/__init__.py new file mode 100644 index 00000000000..203605bf3a6 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/operations_async/__init__.py @@ -0,0 +1,15 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._operation_operations_async import OperationOperations +from ._cluster_operations_async import ClusterOperations + +__all__ = [ + 'OperationOperations', + 'ClusterOperations', +] diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/operations_async/_cluster_operations_async.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/operations_async/_cluster_operations_async.py new file mode 100644 index 00000000000..184162ba671 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/operations_async/_cluster_operations_async.py @@ -0,0 +1,429 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class ClusterOperations: + """ClusterOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure_stack_hci_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs + ) -> AsyncIterable["models.ClusterList"]: + """List all HCI clusters in a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ClusterList or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure_stack_hci_client.models.ClusterList] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ClusterList"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-03-01-preview" + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ClusterList', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.ErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/clusters'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name: str, + **kwargs + ) -> AsyncIterable["models.ClusterList"]: + """List all HCI clusters in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ClusterList or the result of cls(response) + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure_stack_hci_client.models.ClusterList] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ClusterList"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-03-01-preview" + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize('ClusterList', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.ErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters'} # type: ignore + + async def get( + self, + resource_group_name: str, + cluster_name: str, + **kwargs + ) -> "models.Cluster": + """Get HCI cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Cluster, or the result of cls(response) + :rtype: ~azure_stack_hci_client.models.Cluster + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.Cluster"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-03-01-preview" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Cluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}'} # type: ignore + + async def create( + self, + resource_group_name: str, + cluster_name: str, + location: str, + tags: Optional[Dict[str, str]] = None, + aad_client_id: Optional[str] = None, + aad_tenant_id: Optional[str] = None, + **kwargs + ) -> "models.Cluster": + """Create an HCI cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :param location: The geo-location where the resource lives. + :type location: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param aad_client_id: App id of cluster AAD identity. + :type aad_client_id: str + :param aad_tenant_id: Tenant id of cluster AAD identity. + :type aad_tenant_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Cluster, or the result of cls(response) + :rtype: ~azure_stack_hci_client.models.Cluster + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.Cluster"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _cluster = models.Cluster(tags=tags, location=location, aad_client_id=aad_client_id, aad_tenant_id=aad_tenant_id) + api_version = "2020-03-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.create.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + # Construct and send request + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_cluster, 'Cluster') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Cluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}'} # type: ignore + + async def update( + self, + resource_group_name: str, + cluster_name: str, + tags: Optional[Dict[str, str]] = None, + **kwargs + ) -> "models.Cluster": + """Update an HCI cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :param tags: Resource tags. + :type tags: dict[str, str] + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Cluster, or the result of cls(response) + :rtype: ~azure_stack_hci_client.models.Cluster + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.Cluster"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _cluster = models.ClusterUpdate(tags=tags) + api_version = "2020-03-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + # Construct and send request + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_cluster, 'ClusterUpdate') + body_content_kwargs['content'] = body_content + request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Cluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}'} # type: ignore + + async def delete( + self, + resource_group_name: str, + cluster_name: str, + **kwargs + ) -> None: + """Delete an HCI cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-03-01-preview" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}'} # type: ignore diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/operations_async/_operation_operations_async.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/operations_async/_operation_operations_async.py new file mode 100644 index 00000000000..7e7d50b603a --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/aio/operations_async/_operation_operations_async.py @@ -0,0 +1,86 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest +from azure.mgmt.core.exceptions import ARMErrorFormat + +from ... import models + +T = TypeVar('T') +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + +class OperationOperations: + """OperationOperations async operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure_stack_hci_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + async def list( + self, + **kwargs + ) -> "models.OperationList": + """List all available Microsoft.AzureStackHCI provider operations. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: OperationList, or the result of cls(response) + :rtype: ~azure_stack_hci_client.models.OperationList + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.OperationList"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-03-01-preview" + + # Construct URL + url = self.list.metadata['url'] # type: ignore + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('OperationList', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list.metadata = {'url': '/providers/Microsoft.AzureStackHCI/operations'} # type: ignore diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/__init__.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/__init__.py new file mode 100644 index 00000000000..d733b9f25cf --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/__init__.py @@ -0,0 +1,56 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import Cluster + from ._models_py3 import ClusterList + from ._models_py3 import ClusterNode + from ._models_py3 import ClusterUpdate + from ._models_py3 import ErrorAdditionalInfo + from ._models_py3 import ErrorResponse + from ._models_py3 import ErrorResponseError + from ._models_py3 import Operation + from ._models_py3 import OperationDisplay + from ._models_py3 import OperationList + from ._models_py3 import Resource + from ._models_py3 import TrackedResource +except (SyntaxError, ImportError): + from ._models import Cluster # type: ignore + from ._models import ClusterList # type: ignore + from ._models import ClusterNode # type: ignore + from ._models import ClusterUpdate # type: ignore + from ._models import ErrorAdditionalInfo # type: ignore + from ._models import ErrorResponse # type: ignore + from ._models import ErrorResponseError # type: ignore + from ._models import Operation # type: ignore + from ._models import OperationDisplay # type: ignore + from ._models import OperationList # type: ignore + from ._models import Resource # type: ignore + from ._models import TrackedResource # type: ignore + +from ._azure_stack_hci_client_enums import ( + ProvisioningState, + Status, +) + +__all__ = [ + 'Cluster', + 'ClusterList', + 'ClusterNode', + 'ClusterUpdate', + 'ErrorAdditionalInfo', + 'ErrorResponse', + 'ErrorResponseError', + 'Operation', + 'OperationDisplay', + 'OperationList', + 'Resource', + 'TrackedResource', + 'ProvisioningState', + 'Status', +] diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/_azure_stack_hci_client_enums.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/_azure_stack_hci_client_enums.py new file mode 100644 index 00000000000..9d7b82b9c96 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/_azure_stack_hci_client_enums.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum + +class ProvisioningState(str, Enum): + """Provisioning state. + """ + + succeeded = "Succeeded" + failed = "Failed" + canceled = "Canceled" + accepted = "Accepted" + provisioning = "Provisioning" + +class Status(str, Enum): + """Status of the cluster agent. + """ + + never_connected = "NeverConnected" + connected_recently = "ConnectedRecently" + not_connected_recently = "NotConnectedRecently" + expired = "Expired" + error = "Error" diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/_models.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/_models.py new file mode 100644 index 00000000000..b1042b095a9 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/_models.py @@ -0,0 +1,491 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import HttpResponseError +import msrest.serialization + + +class Resource(msrest.serialization.Model): + """Resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class TrackedResource(Resource): + """The resource model definition for a ARM tracked top level resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives. + :type location: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(TrackedResource, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + self.location = kwargs['location'] + + +class Cluster(TrackedResource): + """Cluster details. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives. + :type location: str + :ivar provisioning_state: Provisioning state. Possible values include: "Succeeded", "Failed", + "Canceled", "Accepted", "Provisioning". + :vartype provisioning_state: str or ~azure_stack_hci_client.models.ProvisioningState + :ivar status: Status of the cluster agent. Possible values include: "NeverConnected", + "ConnectedRecently", "NotConnectedRecently", "Expired", "Error". + :vartype status: str or ~azure_stack_hci_client.models.Status + :ivar cloud_id: Unique, immutable resource id. + :vartype cloud_id: str + :param aad_client_id: App id of cluster AAD identity. + :type aad_client_id: str + :param aad_tenant_id: Tenant id of cluster AAD identity. + :type aad_tenant_id: str + :ivar trial_days_remaining: Number of days remaining in the trial period. + :vartype trial_days_remaining: float + :ivar billing_model: Type of billing applied to the resource. + :vartype billing_model: str + :ivar cluster_name: Name of the on-prem cluster connected to this resource. + :vartype cluster_name: str + :ivar cluster_id: Unique id generated by the on-prem cluster. + :vartype cluster_id: str + :ivar cluster_version: Version of the cluster software. + :vartype cluster_version: str + :ivar nodes: List of nodes reported by the cluster. + :vartype nodes: list[~azure_stack_hci_client.models.ClusterNode] + :ivar last_updated: Last time the cluster reported the data. + :vartype last_updated: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'cloud_id': {'readonly': True}, + 'trial_days_remaining': {'readonly': True}, + 'billing_model': {'readonly': True}, + 'cluster_name': {'readonly': True}, + 'cluster_id': {'readonly': True}, + 'cluster_version': {'readonly': True}, + 'nodes': {'readonly': True}, + 'last_updated': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'cloud_id': {'key': 'properties.cloudId', 'type': 'str'}, + 'aad_client_id': {'key': 'properties.aadClientId', 'type': 'str'}, + 'aad_tenant_id': {'key': 'properties.aadTenantId', 'type': 'str'}, + 'trial_days_remaining': {'key': 'properties.trialDaysRemaining', 'type': 'float'}, + 'billing_model': {'key': 'properties.billingModel', 'type': 'str'}, + 'cluster_name': {'key': 'properties.reportedProperties.clusterName', 'type': 'str'}, + 'cluster_id': {'key': 'properties.reportedProperties.clusterId', 'type': 'str'}, + 'cluster_version': {'key': 'properties.reportedProperties.clusterVersion', 'type': 'str'}, + 'nodes': {'key': 'properties.reportedProperties.nodes', 'type': '[ClusterNode]'}, + 'last_updated': {'key': 'properties.reportedProperties.lastUpdated', 'type': 'iso-8601'}, + } + + def __init__( + self, + **kwargs + ): + super(Cluster, self).__init__(**kwargs) + self.provisioning_state = None + self.status = None + self.cloud_id = None + self.aad_client_id = kwargs.get('aad_client_id', None) + self.aad_tenant_id = kwargs.get('aad_tenant_id', None) + self.trial_days_remaining = None + self.billing_model = None + self.cluster_name = None + self.cluster_id = None + self.cluster_version = None + self.nodes = None + self.last_updated = None + + +class ClusterList(msrest.serialization.Model): + """List of clusters. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: List of clusters. + :type value: list[~azure_stack_hci_client.models.Cluster] + :ivar next_link: Link to the next set of results. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Cluster]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(ClusterList, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = None + + +class ClusterNode(msrest.serialization.Model): + """Cluster node details. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: Name of the cluster node. + :vartype name: str + :ivar id: Id of the node in the cluster. + :vartype id: float + :ivar manufacturer: Manufacturer of the cluster node hardware. + :vartype manufacturer: str + :ivar model: Model name of the cluster node hardware. + :vartype model: str + :ivar os_name: Operating system running on the cluster node. + :vartype os_name: str + :ivar os_version: Version of the operating system running on the cluster node. + :vartype os_version: str + :ivar serial_number: Immutable id of the cluster node. + :vartype serial_number: str + :ivar core_count: Number of physical cores on the cluster node. + :vartype core_count: float + :ivar memory_in_gi_b: Total available memory on the cluster node (in GiB). + :vartype memory_in_gi_b: float + """ + + _validation = { + 'name': {'readonly': True}, + 'id': {'readonly': True}, + 'manufacturer': {'readonly': True}, + 'model': {'readonly': True}, + 'os_name': {'readonly': True}, + 'os_version': {'readonly': True}, + 'serial_number': {'readonly': True}, + 'core_count': {'readonly': True}, + 'memory_in_gi_b': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'float'}, + 'manufacturer': {'key': 'manufacturer', 'type': 'str'}, + 'model': {'key': 'model', 'type': 'str'}, + 'os_name': {'key': 'osName', 'type': 'str'}, + 'os_version': {'key': 'osVersion', 'type': 'str'}, + 'serial_number': {'key': 'serialNumber', 'type': 'str'}, + 'core_count': {'key': 'coreCount', 'type': 'float'}, + 'memory_in_gi_b': {'key': 'memoryInGiB', 'type': 'float'}, + } + + def __init__( + self, + **kwargs + ): + super(ClusterNode, self).__init__(**kwargs) + self.name = None + self.id = None + self.manufacturer = None + self.model = None + self.os_name = None + self.os_version = None + self.serial_number = None + self.core_count = None + self.memory_in_gi_b = None + + +class ClusterUpdate(msrest.serialization.Model): + """Cluster details to update. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__( + self, + **kwargs + ): + super(ClusterUpdate, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + + +class ErrorAdditionalInfo(msrest.serialization.Model): + """The resource management error additional info. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar type: The additional info type. + :vartype type: str + :ivar info: The additional info. + :vartype info: object + """ + + _validation = { + 'type': {'readonly': True}, + 'info': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'info': {'key': 'info', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorAdditionalInfo, self).__init__(**kwargs) + self.type = None + self.info = None + + +class ErrorResponse(msrest.serialization.Model): + """The resource management error response. + + :param error: The error object. + :type error: ~azure_stack_hci_client.models.ErrorResponseError + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorResponseError'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorResponse, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class ErrorResponseError(msrest.serialization.Model): + """The error object. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: The error code. + :vartype code: str + :ivar message: The error message. + :vartype message: str + :ivar target: The error target. + :vartype target: str + :ivar details: The error details. + :vartype details: list[~azure_stack_hci_client.models.ErrorResponse] + :ivar additional_info: The error additional info. + :vartype additional_info: list[~azure_stack_hci_client.models.ErrorAdditionalInfo] + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'details': {'readonly': True}, + 'additional_info': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ErrorResponse]'}, + 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorResponseError, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None + + +class Operation(msrest.serialization.Model): + """Operation details. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: Name of the operation. + :vartype name: str + :param display: Operation properties. + :type display: ~azure_stack_hci_client.models.OperationDisplay + """ + + _validation = { + 'name': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'OperationDisplay'}, + } + + def __init__( + self, + **kwargs + ): + super(Operation, self).__init__(**kwargs) + self.name = None + self.display = kwargs.get('display', None) + + +class OperationDisplay(msrest.serialization.Model): + """Operation properties. + + :param provider: Resource provider name. + :type provider: str + :param resource: Resource type name. + :type resource: str + :param operation: Operation name. + :type operation: str + :param description: Operation description. + :type description: str + """ + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationDisplay, self).__init__(**kwargs) + self.provider = kwargs.get('provider', None) + self.resource = kwargs.get('resource', None) + self.operation = kwargs.get('operation', None) + self.description = kwargs.get('description', None) + + +class OperationList(msrest.serialization.Model): + """List of available operations. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: List of operations. + :type value: list[~azure_stack_hci_client.models.Operation] + :ivar next_link: Link to the next set of results. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Operation]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(OperationList, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + self.next_link = None diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/_models_py3.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/_models_py3.py new file mode 100644 index 00000000000..00582506549 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/models/_models_py3.py @@ -0,0 +1,516 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from typing import Dict, List, Optional + +from azure.core.exceptions import HttpResponseError +import msrest.serialization + + +class Resource(msrest.serialization.Model): + """Resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__( + self, + **kwargs + ): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class TrackedResource(Resource): + """The resource model definition for a ARM tracked top level resource. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives. + :type location: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + **kwargs + ): + super(TrackedResource, self).__init__(**kwargs) + self.tags = tags + self.location = location + + +class Cluster(TrackedResource): + """Cluster details. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. Ex- Microsoft.Compute/virtualMachines or + Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives. + :type location: str + :ivar provisioning_state: Provisioning state. Possible values include: "Succeeded", "Failed", + "Canceled", "Accepted", "Provisioning". + :vartype provisioning_state: str or ~azure_stack_hci_client.models.ProvisioningState + :ivar status: Status of the cluster agent. Possible values include: "NeverConnected", + "ConnectedRecently", "NotConnectedRecently", "Expired", "Error". + :vartype status: str or ~azure_stack_hci_client.models.Status + :ivar cloud_id: Unique, immutable resource id. + :vartype cloud_id: str + :param aad_client_id: App id of cluster AAD identity. + :type aad_client_id: str + :param aad_tenant_id: Tenant id of cluster AAD identity. + :type aad_tenant_id: str + :ivar trial_days_remaining: Number of days remaining in the trial period. + :vartype trial_days_remaining: float + :ivar billing_model: Type of billing applied to the resource. + :vartype billing_model: str + :ivar cluster_name: Name of the on-prem cluster connected to this resource. + :vartype cluster_name: str + :ivar cluster_id: Unique id generated by the on-prem cluster. + :vartype cluster_id: str + :ivar cluster_version: Version of the cluster software. + :vartype cluster_version: str + :ivar nodes: List of nodes reported by the cluster. + :vartype nodes: list[~azure_stack_hci_client.models.ClusterNode] + :ivar last_updated: Last time the cluster reported the data. + :vartype last_updated: ~datetime.datetime + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'status': {'readonly': True}, + 'cloud_id': {'readonly': True}, + 'trial_days_remaining': {'readonly': True}, + 'billing_model': {'readonly': True}, + 'cluster_name': {'readonly': True}, + 'cluster_id': {'readonly': True}, + 'cluster_version': {'readonly': True}, + 'nodes': {'readonly': True}, + 'last_updated': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'status': {'key': 'properties.status', 'type': 'str'}, + 'cloud_id': {'key': 'properties.cloudId', 'type': 'str'}, + 'aad_client_id': {'key': 'properties.aadClientId', 'type': 'str'}, + 'aad_tenant_id': {'key': 'properties.aadTenantId', 'type': 'str'}, + 'trial_days_remaining': {'key': 'properties.trialDaysRemaining', 'type': 'float'}, + 'billing_model': {'key': 'properties.billingModel', 'type': 'str'}, + 'cluster_name': {'key': 'properties.reportedProperties.clusterName', 'type': 'str'}, + 'cluster_id': {'key': 'properties.reportedProperties.clusterId', 'type': 'str'}, + 'cluster_version': {'key': 'properties.reportedProperties.clusterVersion', 'type': 'str'}, + 'nodes': {'key': 'properties.reportedProperties.nodes', 'type': '[ClusterNode]'}, + 'last_updated': {'key': 'properties.reportedProperties.lastUpdated', 'type': 'iso-8601'}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + aad_client_id: Optional[str] = None, + aad_tenant_id: Optional[str] = None, + **kwargs + ): + super(Cluster, self).__init__(tags=tags, location=location, **kwargs) + self.provisioning_state = None + self.status = None + self.cloud_id = None + self.aad_client_id = aad_client_id + self.aad_tenant_id = aad_tenant_id + self.trial_days_remaining = None + self.billing_model = None + self.cluster_name = None + self.cluster_id = None + self.cluster_version = None + self.nodes = None + self.last_updated = None + + +class ClusterList(msrest.serialization.Model): + """List of clusters. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: List of clusters. + :type value: list[~azure_stack_hci_client.models.Cluster] + :ivar next_link: Link to the next set of results. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Cluster]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: Optional[List["Cluster"]] = None, + **kwargs + ): + super(ClusterList, self).__init__(**kwargs) + self.value = value + self.next_link = None + + +class ClusterNode(msrest.serialization.Model): + """Cluster node details. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: Name of the cluster node. + :vartype name: str + :ivar id: Id of the node in the cluster. + :vartype id: float + :ivar manufacturer: Manufacturer of the cluster node hardware. + :vartype manufacturer: str + :ivar model: Model name of the cluster node hardware. + :vartype model: str + :ivar os_name: Operating system running on the cluster node. + :vartype os_name: str + :ivar os_version: Version of the operating system running on the cluster node. + :vartype os_version: str + :ivar serial_number: Immutable id of the cluster node. + :vartype serial_number: str + :ivar core_count: Number of physical cores on the cluster node. + :vartype core_count: float + :ivar memory_in_gi_b: Total available memory on the cluster node (in GiB). + :vartype memory_in_gi_b: float + """ + + _validation = { + 'name': {'readonly': True}, + 'id': {'readonly': True}, + 'manufacturer': {'readonly': True}, + 'model': {'readonly': True}, + 'os_name': {'readonly': True}, + 'os_version': {'readonly': True}, + 'serial_number': {'readonly': True}, + 'core_count': {'readonly': True}, + 'memory_in_gi_b': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'float'}, + 'manufacturer': {'key': 'manufacturer', 'type': 'str'}, + 'model': {'key': 'model', 'type': 'str'}, + 'os_name': {'key': 'osName', 'type': 'str'}, + 'os_version': {'key': 'osVersion', 'type': 'str'}, + 'serial_number': {'key': 'serialNumber', 'type': 'str'}, + 'core_count': {'key': 'coreCount', 'type': 'float'}, + 'memory_in_gi_b': {'key': 'memoryInGiB', 'type': 'float'}, + } + + def __init__( + self, + **kwargs + ): + super(ClusterNode, self).__init__(**kwargs) + self.name = None + self.id = None + self.manufacturer = None + self.model = None + self.os_name = None + self.os_version = None + self.serial_number = None + self.core_count = None + self.memory_in_gi_b = None + + +class ClusterUpdate(msrest.serialization.Model): + """Cluster details to update. + + :param tags: A set of tags. Resource tags. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__( + self, + *, + tags: Optional[Dict[str, str]] = None, + **kwargs + ): + super(ClusterUpdate, self).__init__(**kwargs) + self.tags = tags + + +class ErrorAdditionalInfo(msrest.serialization.Model): + """The resource management error additional info. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar type: The additional info type. + :vartype type: str + :ivar info: The additional info. + :vartype info: object + """ + + _validation = { + 'type': {'readonly': True}, + 'info': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'info': {'key': 'info', 'type': 'object'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorAdditionalInfo, self).__init__(**kwargs) + self.type = None + self.info = None + + +class ErrorResponse(msrest.serialization.Model): + """The resource management error response. + + :param error: The error object. + :type error: ~azure_stack_hci_client.models.ErrorResponseError + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorResponseError'}, + } + + def __init__( + self, + *, + error: Optional["ErrorResponseError"] = None, + **kwargs + ): + super(ErrorResponse, self).__init__(**kwargs) + self.error = error + + +class ErrorResponseError(msrest.serialization.Model): + """The error object. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar code: The error code. + :vartype code: str + :ivar message: The error message. + :vartype message: str + :ivar target: The error target. + :vartype target: str + :ivar details: The error details. + :vartype details: list[~azure_stack_hci_client.models.ErrorResponse] + :ivar additional_info: The error additional info. + :vartype additional_info: list[~azure_stack_hci_client.models.ErrorAdditionalInfo] + """ + + _validation = { + 'code': {'readonly': True}, + 'message': {'readonly': True}, + 'target': {'readonly': True}, + 'details': {'readonly': True}, + 'additional_info': {'readonly': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ErrorResponse]'}, + 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, + } + + def __init__( + self, + **kwargs + ): + super(ErrorResponseError, self).__init__(**kwargs) + self.code = None + self.message = None + self.target = None + self.details = None + self.additional_info = None + + +class Operation(msrest.serialization.Model): + """Operation details. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar name: Name of the operation. + :vartype name: str + :param display: Operation properties. + :type display: ~azure_stack_hci_client.models.OperationDisplay + """ + + _validation = { + 'name': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'OperationDisplay'}, + } + + def __init__( + self, + *, + display: Optional["OperationDisplay"] = None, + **kwargs + ): + super(Operation, self).__init__(**kwargs) + self.name = None + self.display = display + + +class OperationDisplay(msrest.serialization.Model): + """Operation properties. + + :param provider: Resource provider name. + :type provider: str + :param resource: Resource type name. + :type resource: str + :param operation: Operation name. + :type operation: str + :param description: Operation description. + :type description: str + """ + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__( + self, + *, + provider: Optional[str] = None, + resource: Optional[str] = None, + operation: Optional[str] = None, + description: Optional[str] = None, + **kwargs + ): + super(OperationDisplay, self).__init__(**kwargs) + self.provider = provider + self.resource = resource + self.operation = operation + self.description = description + + +class OperationList(msrest.serialization.Model): + """List of available operations. + + Variables are only populated by the server, and will be ignored when sending a request. + + :param value: List of operations. + :type value: list[~azure_stack_hci_client.models.Operation] + :ivar next_link: Link to the next set of results. + :vartype next_link: str + """ + + _validation = { + 'next_link': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[Operation]'}, + 'next_link': {'key': 'nextLink', 'type': 'str'}, + } + + def __init__( + self, + *, + value: Optional[List["Operation"]] = None, + **kwargs + ): + super(OperationList, self).__init__(**kwargs) + self.value = value + self.next_link = None diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/operations/__init__.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/operations/__init__.py new file mode 100644 index 00000000000..fe6dd61cfc3 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/operations/__init__.py @@ -0,0 +1,15 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from ._operation_operations import OperationOperations +from ._cluster_operations import ClusterOperations + +__all__ = [ + 'OperationOperations', + 'ClusterOperations', +] diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/operations/_cluster_operations.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/operations/_cluster_operations.py new file mode 100644 index 00000000000..d79ee7c1429 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/operations/_cluster_operations.py @@ -0,0 +1,439 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class ClusterOperations(object): + """ClusterOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure_stack_hci_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.ClusterList"] + """List all HCI clusters in a subscription. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ClusterList or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure_stack_hci_client.models.ClusterList] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ClusterList"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-03-01-preview" + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ClusterList', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.ErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/clusters'} # type: ignore + + def list_by_resource_group( + self, + resource_group_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> Iterable["models.ClusterList"] + """List all HCI clusters in a resource group. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either ClusterList or the result of cls(response) + :rtype: ~azure.core.paging.ItemPaged[~azure_stack_hci_client.models.ClusterList] + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.ClusterList"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-03-01-preview" + + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + } + url = self._client.format_url(url, **path_format_arguments) + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + else: + url = next_link + query_parameters = {} # type: Dict[str, Any] + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize('ClusterList', pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + error = self._deserialize(models.ErrorResponse, response) + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged( + get_next, extract_data + ) + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters'} # type: ignore + + def get( + self, + resource_group_name, # type: str + cluster_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> "models.Cluster" + """Get HCI cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Cluster, or the result of cls(response) + :rtype: ~azure_stack_hci_client.models.Cluster + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.Cluster"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-03-01-preview" + + # Construct URL + url = self.get.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Cluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}'} # type: ignore + + def create( + self, + resource_group_name, # type: str + cluster_name, # type: str + location, # type: str + tags=None, # type: Optional[Dict[str, str]] + aad_client_id=None, # type: Optional[str] + aad_tenant_id=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> "models.Cluster" + """Create an HCI cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :param location: The geo-location where the resource lives. + :type location: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param aad_client_id: App id of cluster AAD identity. + :type aad_client_id: str + :param aad_tenant_id: Tenant id of cluster AAD identity. + :type aad_tenant_id: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Cluster, or the result of cls(response) + :rtype: ~azure_stack_hci_client.models.Cluster + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.Cluster"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _cluster = models.Cluster(tags=tags, location=location, aad_client_id=aad_client_id, aad_tenant_id=aad_tenant_id) + api_version = "2020-03-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.create.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + # Construct and send request + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_cluster, 'Cluster') + body_content_kwargs['content'] = body_content + request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Cluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}'} # type: ignore + + def update( + self, + resource_group_name, # type: str + cluster_name, # type: str + tags=None, # type: Optional[Dict[str, str]] + **kwargs # type: Any + ): + # type: (...) -> "models.Cluster" + """Update an HCI cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :param tags: Resource tags. + :type tags: dict[str, str] + :keyword callable cls: A custom type or function that will be passed the direct response + :return: Cluster, or the result of cls(response) + :rtype: ~azure_stack_hci_client.models.Cluster + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.Cluster"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + + _cluster = models.ClusterUpdate(tags=tags) + api_version = "2020-03-01-preview" + content_type = kwargs.pop("content_type", "application/json") + + # Construct URL + url = self.update.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Content-Type'] = self._serialize.header("content_type", content_type, 'str') + header_parameters['Accept'] = 'application/json' + + # Construct and send request + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(_cluster, 'ClusterUpdate') + body_content_kwargs['content'] = body_content + request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) + + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('Cluster', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}'} # type: ignore + + def delete( + self, + resource_group_name, # type: str + cluster_name, # type: str + **kwargs # type: Any + ): + # type: (...) -> None + """Delete an HCI cluster. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: None, or the result of cls(response) + :rtype: None + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType[None] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-03-01-preview" + + # Construct URL + url = self.delete.metadata['url'] # type: ignore + path_format_arguments = { + 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str'), + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}'} # type: ignore diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/operations/_operation_operations.py b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/operations/_operation_operations.py new file mode 100644 index 00000000000..527c687c168 --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/operations/_operation_operations.py @@ -0,0 +1,91 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from typing import TYPE_CHECKING +import warnings + +from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import HttpRequest, HttpResponse +from azure.mgmt.core.exceptions import ARMErrorFormat + +from .. import models + +if TYPE_CHECKING: + # pylint: disable=unused-import,ungrouped-imports + from typing import Any, Callable, Dict, Generic, Optional, TypeVar + + T = TypeVar('T') + ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] + +class OperationOperations(object): + """OperationOperations operations. + + You should not instantiate this class directly. Instead, you should create a Client instance that + instantiates it for you and attaches it as an attribute. + + :ivar models: Alias to model classes used in this operation group. + :type models: ~azure_stack_hci_client.models + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self._config = config + + def list( + self, + **kwargs # type: Any + ): + # type: (...) -> "models.OperationList" + """List all available Microsoft.AzureStackHCI provider operations. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: OperationList, or the result of cls(response) + :rtype: ~azure_stack_hci_client.models.OperationList + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.OperationList"] + error_map = {404: ResourceNotFoundError, 409: ResourceExistsError} + error_map.update(kwargs.pop('error_map', {})) + api_version = "2020-03-01-preview" + + # Construct URL + url = self.list.metadata['url'] # type: ignore + + # Construct parameters + query_parameters = {} # type: Dict[str, Any] + query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') + + # Construct headers + header_parameters = {} # type: Dict[str, Any] + header_parameters['Accept'] = 'application/json' + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize(models.ErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('OperationList', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + list.metadata = {'url': '/providers/Microsoft.AzureStackHCI/operations'} # type: ignore diff --git a/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/py.typed b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/py.typed new file mode 100644 index 00000000000..e5aff4f83af --- /dev/null +++ b/src/stack-hci/azext_stack_hci/vendored_sdks/azurestackhci/py.typed @@ -0,0 +1 @@ +# Marker file for PEP 561. \ No newline at end of file diff --git a/src/stack-hci/report.md b/src/stack-hci/report.md new file mode 100644 index 00000000000..a03a079581f --- /dev/null +++ b/src/stack-hci/report.md @@ -0,0 +1,46 @@ +# Azure CLI Module Creation Report + +### stack-hci cluster create + +create a stack-hci cluster. + +|Option|Type|Description|Path (SDK)|Path (swagger)| +|------|----|-----------|----------|--------------| +|**--resource-group-name**|string|The name of the resource group. The name is case insensitive.|resource_group_name| +|**--cluster-name**|string|The name of the cluster.|cluster_name| +|**--location**|string|The geo-location where the resource lives|location| +|**--tags**|dictionary|Resource tags.|tags| +|**--aad-client-id**|string|App id of cluster AAD identity.|aad_client_id| +|**--aad-tenant-id**|string|Tenant id of cluster AAD identity.|aad_tenant_id| +### stack-hci cluster delete + +delete a stack-hci cluster. + +|Option|Type|Description|Path (SDK)|Path (swagger)| +|------|----|-----------|----------|--------------| +|**--resource-group-name**|string|The name of the resource group. The name is case insensitive.|resource_group_name| +|**--cluster-name**|string|The name of the cluster.|cluster_name| +### stack-hci cluster list + +list a stack-hci cluster. + +|Option|Type|Description|Path (SDK)|Path (swagger)| +|------|----|-----------|----------|--------------| +|**--resource-group-name**|string|The name of the resource group. The name is case insensitive.|resource_group_name| +### stack-hci cluster show + +show a stack-hci cluster. + +|Option|Type|Description|Path (SDK)|Path (swagger)| +|------|----|-----------|----------|--------------| +|**--resource-group-name**|string|The name of the resource group. The name is case insensitive.|resource_group_name| +|**--cluster-name**|string|The name of the cluster.|cluster_name| +### stack-hci cluster update + +update a stack-hci cluster. + +|Option|Type|Description|Path (SDK)|Path (swagger)| +|------|----|-----------|----------|--------------| +|**--resource-group-name**|string|The name of the resource group. The name is case insensitive.|resource_group_name| +|**--cluster-name**|string|The name of the cluster.|cluster_name| +|**--tags**|dictionary|Resource tags.|tags| \ No newline at end of file diff --git a/src/stack-hci/setup.cfg b/src/stack-hci/setup.cfg new file mode 100644 index 00000000000..2fdd96e5d39 --- /dev/null +++ b/src/stack-hci/setup.cfg @@ -0,0 +1 @@ +#setup.cfg \ No newline at end of file diff --git a/src/stack-hci/setup.py b/src/stack-hci/setup.py new file mode 100644 index 00000000000..e855e258e4a --- /dev/null +++ b/src/stack-hci/setup.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + + +from codecs import open +from setuptools import setup, find_packages + +# HISTORY.rst entry. +VERSION = '0.1.0' +try: + from .manual.version import VERSION +except ImportError: + pass + +# The full list of classifiers is available at +# https://pypi.python.org/pypi?%3Aaction=list_classifiers +CLASSIFIERS = [ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Developers', + 'Intended Audience :: System Administrators', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'License :: OSI Approved :: MIT License', +] + +DEPENDENCIES = [] +try: + from .manual.dependency import DEPENDENCIES +except ImportError: + pass + +with open('README.md', 'r', encoding='utf-8') as f: + README = f.read() +with open('HISTORY.rst', 'r', encoding='utf-8') as f: + HISTORY = f.read() + +setup( + name='stack_hci', + version=VERSION, + description='Microsoft Azure Command-Line Tools AzureStackHCIClient Extension', + author='Microsoft Corporation', + author_email='azpycli@microsoft.com', + url='https://github.com/Azure/azure-cli-extensions/tree/master/src/stack-hci', + long_description=README + '\n\n' + HISTORY, + license='MIT', + classifiers=CLASSIFIERS, + packages=find_packages(), + install_requires=DEPENDENCIES, + package_data={'azext_stack_hci': ['azext_metadata.json']}, +) diff --git a/src/storage-blob-preview/HISTORY.rst b/src/storage-blob-preview/HISTORY.rst new file mode 100644 index 00000000000..713c81126d7 --- /dev/null +++ b/src/storage-blob-preview/HISTORY.rst @@ -0,0 +1,18 @@ +.. :changelog: + +Release History +=============== +0.3.0 +++++++ +* az storage container list: Add --include-deleted to list soft-deleted containers and --show-next-marker to show marker +* az storage container restore: Restore soft-deleted container. + +0.2.0 +++++++ +* az storage account blob-service-properties update: Support last access time tracking policy +* az storage account management-policy create/update: Support DaysAfterLastAccessTimeGreaterThan +* az storage blob show: Add lastAccessOn property + +0.1.0 +++++++ +* Initial release. \ No newline at end of file diff --git a/src/storage-blob-preview/README.md b/src/storage-blob-preview/README.md new file mode 100644 index 00000000000..fe4ce1eb717 --- /dev/null +++ b/src/storage-blob-preview/README.md @@ -0,0 +1,10 @@ +Microsoft Azure CLI 'storage-blob-preview' Extension +========================================== + +This package is for the 'storage-blob-preview' extension. + +### How to use ### +Install this extension using the below CLI command +``` +az extension add --name storage-blob-preview +``` diff --git a/src/storage-blob-preview/azext_storage_blob_preview/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/__init__.py new file mode 100644 index 00000000000..80798765052 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/__init__.py @@ -0,0 +1,261 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from azure.cli.core import AzCommandsLoader +from azure.cli.core.profiles import register_resource_type +from azure.cli.core.commands import AzCommandGroup, AzArgumentContext +from .profiles import CUSTOM_DATA_STORAGE_BLOB, CUSTOM_MGMT_STORAGE + +from ._help import helps # pylint: disable=unused-import + + +class StorageCommandsLoader(AzCommandsLoader): + def __init__(self, cli_ctx=None): + from azure.cli.core.commands import CliCommandType + register_resource_type('latest', CUSTOM_DATA_STORAGE_BLOB, '2020-02-10') + register_resource_type('latest', CUSTOM_MGMT_STORAGE, '2019-06-01') + storage_custom = CliCommandType(operations_tmpl='azure.cli.command_modules.storage.custom#{}') + super(StorageCommandsLoader, self).__init__(cli_ctx=cli_ctx, + resource_type=CUSTOM_DATA_STORAGE_BLOB, + custom_command_type=storage_custom, + command_group_cls=StorageCommandGroup, + argument_context_cls=StorageArgumentContext) + + def load_command_table(self, args): + from .commands import load_command_table + load_command_table(self, args) + return self.command_table + + def load_arguments(self, command): + from ._params import load_arguments + load_arguments(self, command) + + +class StorageArgumentContext(AzArgumentContext): + def register_sas_arguments(self): + from ._validators import ipv4_range_type, get_datetime_type + self.argument('ip', type=ipv4_range_type, + help='Specifies the IP address or range of IP addresses from which to accept requests. Supports ' + 'only IPv4 style addresses.') + self.argument('expiry', type=get_datetime_type(True), + help='Specifies the UTC datetime (Y-m-d\'T\'H:M\'Z\') at which the SAS becomes invalid. Do not ' + 'use if a stored access policy is referenced with --id that specifies this value.') + self.argument('start', type=get_datetime_type(True), + help='Specifies the UTC datetime (Y-m-d\'T\'H:M\'Z\') at which the SAS becomes valid. Do not use ' + 'if a stored access policy is referenced with --id that specifies this value. Defaults to ' + 'the time of the request.') + self.argument('protocol', options_list=('--https-only',), action='store_const', const='https', + help='Only permit requests made with the HTTPS protocol. If omitted, requests from both the HTTP ' + 'and HTTPS protocol are permitted.') + + def register_content_settings_argument(self, settings_class, update, arg_group=None, guess_from_file=None): + from ._validators import get_content_setting_validator + from azure.cli.core.commands.parameters import get_three_state_flag + + self.ignore('content_settings') + self.extra('content_type', default=None, help='The content MIME type.', arg_group=arg_group, + validator=get_content_setting_validator(settings_class, update, guess_from_file=guess_from_file)) + self.extra('content_encoding', default=None, help='The content encoding type.', arg_group=arg_group) + self.extra('content_language', default=None, help='The content language.', arg_group=arg_group) + self.extra('content_disposition', default=None, arg_group=arg_group, + help='Conveys additional information about how to process the response payload, and can also be ' + 'used to attach additional metadata.') + self.extra('content_cache_control', default=None, help='The cache control string.', arg_group=arg_group) + self.extra('content_md5', default=None, help='The content\'s MD5 hash.', arg_group=arg_group) + if update: + self.extra('clear_content_settings', help='If this flag is set, then if any one or more of the ' + 'following properties (--content-cache-control, --content-disposition, --content-encoding, ' + '--content-language, --content-md5, --content-type) is set, then all of these properties are ' + 'set together. If a value is not provided for a given property when at least one of the ' + 'properties listed below is set, then that property will be cleared.', + arg_type=get_three_state_flag()) + + def register_path_argument(self, default_file_param=None, options_list=None): + from ._validators import get_file_path_validator + from .completers import file_path_completer + + path_help = 'The path to the file within the file share.' + if default_file_param: + path_help = '{} If the file name is omitted, the source file name will be used.'.format(path_help) + self.extra('path', options_list=options_list or ('--path', '-p'), + required=default_file_param is None, help=path_help, + validator=get_file_path_validator(default_file_param=default_file_param), + completer=file_path_completer) + self.ignore('file_name') + self.ignore('directory_name') + + def register_source_uri_arguments(self, validator, blob_only=False): + self.argument('source_url', options_list=('--source-uri', '-u'), validator=validator, required=False, + arg_group='Copy Source') + self.extra('source_sas', default=None, arg_group='Copy Source', + help='The shared access signature for the source storage account.') + self.extra('source_container', default=None, arg_group='Copy Source', + help='The container name for the source storage account.') + self.extra('source_blob', default=None, arg_group='Copy Source', + help='The blob name for the source storage account.') + self.extra('source_snapshot', default=None, arg_group='Copy Source', + help='The blob snapshot for the source storage account.') + self.extra('source_account_name', default=None, arg_group='Copy Source', + help='The storage account name of the source blob.') + self.extra('source_account_key', default=None, arg_group='Copy Source', + help='The storage account key of the source blob.') + if not blob_only: + self.extra('source_path', default=None, arg_group='Copy Source', + help='The file path for the source storage account.') + self.extra('source_share', default=None, arg_group='Copy Source', + help='The share name for the source storage account.') + + def register_precondition_options(self, prefix=''): + from ._validators import (get_datetime_type) + self.extra('{}if_modified_since'.format(prefix), arg_group='Precondition', + help="Commence only if modified since supplied UTC datetime (Y-m-d'T'H:M'Z').", + type=get_datetime_type(False)) + self.extra('{}if_unmodified_since'.format(prefix), arg_group='Precondition', + help="Commence only if modified since supplied UTC datetime (Y-m-d'T'H:M'Z').", + type=get_datetime_type(False)) + self.extra('{}if_match'.format(prefix), arg_group='Precondition', + help="An ETag value, or the wildcard character (*). Specify this header to perform the " + "operation only if the resource's ETag matches the value specified.") + self.extra('{}if_none_match'.format(prefix), arg_group='Precondition', + help="An ETag value, or the wildcard character (*). Specify this header to perform " + "the operation only if the resource's ETag does not match the value specified. Specify the wildcard " + "character (*) to perform the operation only if the resource does not exist, and fail the operation " + "if it does exist.") + self.extra('{}if_tags_match_condition'.format(prefix), arg_group='Precondition', + options_list=['--{}tags-condition'.format(prefix.replace('_', '-'))], + help='Specify a SQL where clause on blob tags to operate only on blobs with a matching value.') + + def register_blob_arguments(self): + self.extra('blob_name', required=True) + self.extra('container_name', required=True) + self.extra('timeout', help='Request timeout in seconds. Applies to each call to the service.', type=int) + + def register_container_arguments(self): + self.extra('container_name', required=True) + self.extra('timeout', help='Request timeout in seconds. Applies to each call to the service.', type=int) + + +class StorageCommandGroup(AzCommandGroup): + def storage_command(self, name, method_name=None, command_type=None, oauth=False, generic_update=None, **kwargs): + """ Registers an Azure CLI Storage Data Plane command. These commands always include the four parameters which + can be used to obtain a storage client: account-name, account-key, connection-string, and sas-token. """ + if generic_update: + command_name = '{} {}'.format(self.group_name, name) if self.group_name else name + self.generic_update_command(name, **kwargs) + elif command_type: + command_name = self.command(name, method_name, command_type=command_type, **kwargs) + else: + command_name = self.command(name, method_name, **kwargs) + self._register_data_plane_account_arguments(command_name) + if oauth: + self._register_data_plane_oauth_arguments(command_name) + + def storage_command_oauth(self, *args, **kwargs): + _merge_new_exception_handler(kwargs, self.get_handler_suppress_some_400()) + self.storage_command(*args, oauth=True, **kwargs) + + def storage_custom_command(self, name, method_name, oauth=False, **kwargs): + command_name = self.custom_command(name, method_name, **kwargs) + self._register_data_plane_account_arguments(command_name) + if oauth: + self._register_data_plane_oauth_arguments(command_name) + + def storage_custom_command_oauth(self, *args, **kwargs): + _merge_new_exception_handler(kwargs, self.get_handler_suppress_some_400()) + self.storage_custom_command(*args, oauth=True, **kwargs) + + @classmethod + def get_handler_suppress_some_400(cls): + def handler(ex): + if hasattr(ex, 'status_code') and ex.status_code == 403 and hasattr(ex, 'error_code'): + # TODO: Revisit the logic here once the service team updates their response + if ex.error_code == 'AuthorizationPermissionMismatch': + message = """ +You do not have the required permissions needed to perform this operation. +Depending on your operation, you may need to be assigned one of the following roles: + "Storage Blob Data Contributor" + "Storage Blob Data Reader" + "Storage Queue Data Contributor" + "Storage Queue Data Reader" + +If you want to use the old authentication method and allow querying for the right account key, please use the "--auth-mode" parameter and "key" value. + """ + ex.args = (message,) + elif ex.error_code == 'AuthorizationFailure': + message = """ +The request may be blocked by network rules of storage account. Please check network rule set using 'az storage account show -n accountname --query networkRuleSet'. +If you want to change the default action to apply when no rule matches, please use 'az storage account update'. + """ + ex.args = (message,) + elif ex.error_code == 'AuthenticationFailed': + message = """ +Authentication failure. This may be caused by either invalid account key, connection string or sas token value provided for your storage account. + """ + ex.args = (message,) + if hasattr(ex, 'status_code') and ex.status_code == 409 and ex.error_code == 'NoPendingCopyOperation': + pass + + return handler + + def _register_data_plane_account_arguments(self, command_name): + """ Add parameters required to create a storage client """ + from azure.cli.core.commands.parameters import get_resource_name_completion_list + from ._validators import validate_client_parameters + command = self.command_loader.command_table.get(command_name, None) + if not command: + return + + group_name = 'Storage Account' + command.add_argument('account_name', '--account-name', required=False, default=None, + arg_group=group_name, + completer=get_resource_name_completion_list('Microsoft.Storage/storageAccounts'), + help='Storage account name. Related environment variable: AZURE_STORAGE_ACCOUNT. Must be ' + 'used in conjunction with either storage account key or a SAS token. If neither are ' + 'present, the command will try to query the storage account key using the ' + 'authenticated Azure account. If a large number of storage commands are executed the ' + 'API quota may be hit') + command.add_argument('account_key', '--account-key', required=False, default=None, + arg_group=group_name, + help='Storage account key. Must be used in conjunction with storage account name. ' + 'Environment variable: AZURE_STORAGE_KEY') + command.add_argument('connection_string', '--connection-string', required=False, default=None, + validator=validate_client_parameters, arg_group=group_name, + help='Storage account connection string. Environment variable: ' + 'AZURE_STORAGE_CONNECTION_STRING') + command.add_argument('sas_token', '--sas-token', required=False, default=None, + arg_group=group_name, + help='A Shared Access Signature (SAS). Must be used in conjunction with storage account ' + 'name. Environment variable: AZURE_STORAGE_SAS_TOKEN') + + def _register_data_plane_oauth_arguments(self, command_name): + from azure.cli.core.commands.parameters import get_enum_type + + # The CLI's argument registration methods assume command table has finished loading and contain checks + # that reflect the state of the CLI at that point in time. + # The following code bypasses those checks, as these arguments are registered in tandem with commands. + if command_name not in self.command_loader.command_table: + return + self.command_loader.cli_ctx.invocation.data['command_string'] = command_name + + with self.command_loader.argument_context(command_name, min_api='2017-11-09') as c: + c.extra('auth_mode', arg_type=get_enum_type(['login', 'key']), + help='The mode in which to run the command. "login" mode will directly use your login credentials ' + 'for the authentication. The legacy "key" mode will attempt to query for ' + 'an account key if no authentication parameters for the account are provided. ' + 'Environment variable: AZURE_STORAGE_AUTH_MODE') + + +def _merge_new_exception_handler(kwargs, handler): + first = kwargs.get('exception_handler') + + def new_handler(ex): + handler(ex) + if not first: + raise ex + first(ex) + kwargs['exception_handler'] = new_handler + + +COMMAND_LOADER_CLS = StorageCommandsLoader diff --git a/src/storage-blob-preview/azext_storage_blob_preview/_client_factory.py b/src/storage-blob-preview/azext_storage_blob_preview/_client_factory.py new file mode 100644 index 00000000000..e87ae70db6a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/_client_factory.py @@ -0,0 +1,140 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from azure.cli.core.commands.client_factory import get_mgmt_service_client +from azure.cli.core.profiles import ResourceType, get_sdk +from .profiles import CUSTOM_DATA_STORAGE_BLOB, CUSTOM_MGMT_STORAGE + +MISSING_CREDENTIALS_ERROR_MESSAGE = """ +Missing credentials to access storage service. The following variations are accepted: + (1) account name and key (--account-name and --account-key options or + set AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_KEY environment variables) + (2) account name and SAS token (--sas-token option used with either the --account-name + option or AZURE_STORAGE_ACCOUNT environment variable) + (3) account name (--account-name option or AZURE_STORAGE_ACCOUNT environment variable; + this will make calls to query for a storage account key using login credentials) + (4) connection string (--connection-string option or + set AZURE_STORAGE_CONNECTION_STRING environment variable); some shells will require + quoting to preserve literal character interpretation. +""" + + +def storage_client_factory(cli_ctx, **_): + return get_mgmt_service_client(cli_ctx, CUSTOM_MGMT_STORAGE) + + +def cf_mgmt_blob_services(cli_ctx, _): + return storage_client_factory(cli_ctx).blob_services + + +def cf_mgmt_policy(cli_ctx, _): + return storage_client_factory(cli_ctx).management_policies + + +def cf_sa(cli_ctx, _): + return storage_client_factory(cli_ctx).storage_accounts + + +def cf_mgmt_policy(cli_ctx, _): + return storage_client_factory(cli_ctx).management_policies + + +def get_account_url(cli_ctx, account_name, service): + from knack.util import CLIError + if account_name is None: + raise CLIError("Please provide storage account name or connection string.") + storage_endpoint = cli_ctx.cloud.suffixes.storage_endpoint + return "https://{}.{}.{}".format(account_name, service, storage_endpoint) + + +def cf_blob_service(cli_ctx, kwargs): + from knack.util import CLIError + client_args = {} + t_blob_service = get_sdk(cli_ctx, CUSTOM_DATA_STORAGE_BLOB, + '_blob_service_client#BlobServiceClient') + connection_string = kwargs.pop('connection_string', None) + account_name = kwargs.pop('account_name', None) + account_key = kwargs.pop('account_key', None) + token_credential = kwargs.pop('token_credential', None) + sas_token = kwargs.pop('sas_token', None) + location_mode = kwargs.pop('location_mode', None) + if location_mode: + client_args['_location_mode'] = location_mode + + if connection_string: + return t_blob_service.from_connection_string(conn_str=connection_string) + + account_url = get_account_url(cli_ctx, account_name=account_name, service='blob') + credential = account_key or sas_token or token_credential + + if account_url and credential: + return t_blob_service(account_url=account_url, credential=credential, **client_args) + raise CLIError("Please provide valid connection string, or account name with account key, " + "sas token or login auth mode.") + + +def cf_blob_client(cli_ctx, kwargs): + return cf_blob_service(cli_ctx, kwargs).get_blob_client(container=kwargs.pop('container_name'), + blob=kwargs.pop('blob_name'), + snapshot=kwargs.pop('snapshot', None)) + + +def cf_blob_lease_client(cli_ctx, kwargs): + t_lease_service = get_sdk(cli_ctx, ResourceType.DATA_STORAGE_BLOB, '_lease#BlobLeaseClient') + blob_client = cf_blob_service(cli_ctx, kwargs).get_blob_client(container=kwargs.pop('container_name', None), + blob=kwargs.pop('blob_name', None)) + return t_lease_service(client=blob_client, lease_id=kwargs.pop('lease_id', None)) + + +def cf_container_client(cli_ctx, kwargs): + return cf_blob_service(cli_ctx, kwargs).get_container_client(container=kwargs.pop('container_name', None)) + + +def cf_blob_sas(cli_ctx, kwargs): + t_blob_sas = get_sdk(cli_ctx, CUSTOM_DATA_STORAGE_BLOB, '_shared_access_signature#BlobSharedAccessSignature') + + if kwargs.pop('as_user', None): + from .operations.blob import _get_datetime_from_string + from datetime import datetime + service_client = cf_blob_service(cli_ctx, kwargs) + user_delegation_key = service_client.get_user_delegation_key( + _get_datetime_from_string(kwargs['start']) if kwargs['start'] else datetime.utcnow(), + _get_datetime_from_string(kwargs['expiry'])) + return t_blob_sas(account_name=kwargs.pop('account_name', None), + user_delegation_key=user_delegation_key) + + return t_blob_sas(account_name=kwargs.pop('account_name', None), + account_key=kwargs.pop('account_key', None)) + + +def cf_adls_service(cli_ctx, kwargs): + t_adls_service = get_sdk(cli_ctx, ResourceType.DATA_STORAGE_FILEDATALAKE, + '_data_lake_service_client#DataLakeServiceClient') + connection_string = kwargs.pop('connection_string', None) + account_key = kwargs.pop('account_key', None) + token_credential = kwargs.pop('token_credential', None) + sas_token = kwargs.pop('sas_token', None) + if connection_string: + return t_adls_service.from_connection_string(connection_string=connection_string) + + account_url = get_account_url(cli_ctx, account_name=kwargs.pop('account_name', None), service='dfs') + credential = account_key or sas_token or token_credential + + if account_url and credential: + return t_adls_service(account_url=account_url, credential=credential) + return None + + +def cf_adls_file_system(cli_ctx, kwargs): + return cf_adls_service(cli_ctx, kwargs).get_file_system_client(file_system=kwargs.pop('file_system_name')) + + +def cf_adls_directory(cli_ctx, kwargs): + return cf_adls_file_system(cli_ctx, kwargs).get_directory_client(directory=kwargs.pop('directory_path')) + + +def cf_adls_file(cli_ctx, kwargs): + return cf_adls_service(cli_ctx, kwargs).get_file_client(file_system=kwargs.pop('file_system_name', None), + file_path=kwargs.pop('path', None)) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/_help.py b/src/storage-blob-preview/azext_storage_blob_preview/_help.py new file mode 100644 index 00000000000..92fb1c90e7c --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/_help.py @@ -0,0 +1,134 @@ +# coding=utf-8 +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from knack.help_files import helps # pylint: disable=unused-import + +helps['storage blob copy start'] = """ +type: command +short-summary: List blobs in a given container. +parameters: + - name: --source-uri -u + type: string + short-summary: > + A URL of up to 2 KB in length that specifies an Azure file or blob. + The value should be URL-encoded as it would appear in a request URI. + If the source is in another account, the source must either be public + or must be authenticated via a shared access signature. If the source + is public, no authentication is required. + Examples: + `https://myaccount.blob.core.windows.net/mycontainer/myblob`, + `https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=`, + `https://otheraccount.blob.core.windows.net/mycontainer/myblob?sastoken` + - name: --destination-if-modified-since + type: string + short-summary: > + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only + if the destination blob has been modified since the specified date/time. + If the destination blob has not been modified, the Blob service returns + status code 412 (Precondition Failed). + - name: --destination-if-unmodified-since + type: string + short-summary: > + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only + if the destination blob has not been modified since the specified + date/time. If the destination blob has been modified, the Blob service + returns status code 412 (Precondition Failed). + - name: --source-if-modified-since + type: string + short-summary: > + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only if the source + blob has been modified since the specified date/time. + - name: --source-if-unmodified-since + type: string + short-summary: > + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only if the source blob + has not been modified since the specified date/time. +examples: + - name: Copy a blob asynchronously. Use `az storage blob show` to check the status of the blobs. + text: | + az storage blob copy start --account-key 00000000 --account-name MyAccount --destination-blob MyDestinationBlob --destination-container MyDestinationContainer --source-uri https://storage.blob.core.windows.net/photos + - name: Copy a blob asynchronously. Use `az storage blob show` to check the status of the blobs. + text: | + az storage blob copy start --account-name MyAccount --destination-blob MyDestinationBlob --destination-container MyDestinationContainer --sas-token $sas --source-uri https://storage.blob.core.windows.net/photos +""" + +helps['storage blob download'] = """ +type: command +short-summary: Download a blob to a file path, with automatic chunking and progress notifications. +""" + +helps['storage blob filter'] = """ +type: command +short-summary: List blobs across all containers whose tags match a given search expression. +long-summary: > + Filter blobs searches across all containers within a storage account but can be scoped within the expression to + a single container. +parameters: + - name: --tag-filter + short-summary: > + The expression to find blobs whose tags matches the specified condition. + eg. ""yourtagname"='firsttag' and "yourtagname2"='secondtag'" + To specify a container, eg. "@container='containerName' and "Name"='C'" +""" + +helps['storage blob list'] = """ +type: command +short-summary: List blobs in a given container. +examples: + - name: List all storage blobs in a container whose names start with 'foo'; will match names such as 'foo', 'foobar', and 'foo/bar' + text: az storage blob list -c MyContainer --prefix foo +""" + +helps['storage blob metadata'] = """ +type: group +short-summary: Manage blob metadata. +""" + +helps['storage blob metadata show'] = """ +type: command +short-summary: Return all user-defined metadata for the specified blob or snapshot. +examples: + - name: Get all user-defined metadata for the specified blob. + text: az storage blob metadata show -n myblob -c mycontainer --account-name mystorageaccount --account-key 0000-0000 +""" + +helps['storage blob metadata update'] = """ +type: command +short-summary: Set user-defined metadata for the specified blob as one or more name-value pairs. +examples: + - name: Set user-defined metadata for the specified blob as one or more name-value pairs. + text: az storage blob metadata update -n myblob -c mycontainer --metadata a=b c=d +""" + +helps['storage blob tag'] = """ +type: group +short-summary: Manage blob tags. +""" + +helps['storage blob tag list'] = """ +type: command +short-summary: Get tags on a blob or specific blob version, or snapshot. +""" + +helps['storage blob tag set'] = """ +type: command +short-summary: Set tags on a blob or specific blob version, but not snapshot. +long-summary: > + Each call to this operation replaces all existing tags attached to the blob. To remove all + tags from the blob, call this operation with no tags set. +""" diff --git a/src/storage-blob-preview/azext_storage_blob_preview/_params.py b/src/storage-blob-preview/azext_storage_blob_preview/_params.py new file mode 100644 index 00000000000..c86f8fe78de --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/_params.py @@ -0,0 +1,492 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + + +from azure.cli.core.commands.validators import validate_tags +from azure.cli.core.commands.parameters import (file_type, get_enum_type, get_three_state_flag) +from azure.cli.core.local_context import LocalContextAttribute, LocalContextAction + +from ._validators import (validate_metadata, get_permission_validator, get_permission_help_string, + validate_blob_type, validate_included_datasets_v2, add_progress_callback, + validate_storage_data_plane_list, as_user_validator, blob_tier_validator, + validate_container_delete_retention_days, validate_delete_retention_days, + process_resource_group) + +from .profiles import CUSTOM_DATA_STORAGE_BLOB, CUSTOM_MGMT_STORAGE + + +def load_arguments(self, _): # pylint: disable=too-many-locals, too-many-statements, too-many-lines + from argcomplete.completers import FilesCompleter + + from knack.arguments import CLIArgumentType + + from azure.cli.core.commands.parameters import get_resource_name_completion_list + + from .sdkutil import get_table_data_type + from .completers import get_storage_name_completion_list + + acct_name_type = CLIArgumentType(options_list=['--account-name', '-n'], help='The storage account name.', + id_part='name', + completer=get_resource_name_completion_list('Microsoft.Storage/storageAccounts'), + local_context_attribute=LocalContextAttribute( + name='storage_account_name', actions=[LocalContextAction.GET])) + + t_base_blob_service = self.get_sdk('blob.baseblobservice#BaseBlobService') + t_file_service = self.get_sdk('file#FileService') + t_table_service = get_table_data_type(self.cli_ctx, 'table', 'TableService') + t_blob_tier = self.get_sdk('_generated.models._azure_blob_storage_enums#AccessTierOptional', + resource_type=CUSTOM_DATA_STORAGE_BLOB) + t_rehydrate_priority = self.get_sdk('_generated.models._azure_blob_storage_enums#RehydratePriority', + resource_type=CUSTOM_DATA_STORAGE_BLOB) + + blob_name_type = CLIArgumentType(options_list=['--blob-name', '-b'], help='The blob name.', + completer=get_storage_name_completion_list(t_base_blob_service, 'list_blobs', + parent='container_name')) + + container_name_type = CLIArgumentType(options_list=['--container-name', '-c'], help='The container name.', + completer=get_storage_name_completion_list(t_base_blob_service, + 'list_containers')) + directory_type = CLIArgumentType(options_list=['--directory-name', '-d'], help='The directory name.', + completer=get_storage_name_completion_list(t_file_service, + 'list_directories_and_files', + parent='share_name')) + share_name_type = CLIArgumentType(options_list=['--share-name', '-s'], help='The file share name.', + completer=get_storage_name_completion_list(t_file_service, 'list_shares')) + table_name_type = CLIArgumentType(options_list=['--table-name', '-t'], + completer=get_storage_name_completion_list(t_table_service, 'list_tables')) + progress_type = CLIArgumentType(help='Include this flag to disable progress reporting for the command.', + action='store_true', validator=add_progress_callback) + sas_help = 'The permissions the SAS grants. Allowed values: {}. Do not use if a stored access policy is ' \ + 'referenced with --policy-name that specifies this value. Can be combined.' + + lease_type = CLIArgumentType( + options_list='--lease-id', help='Required if the blob has an active lease.' + ) + + snapshot_type = CLIArgumentType( + help='The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot ' + 'to retrieve.' + ) + + tags_type = CLIArgumentType( + nargs='*', validator=validate_tags, min_api='2019-12-12', is_preview=True, + help='space-separated tags: key[=value] [key[=value] ...]. Tags are case-sensitive. The tag set may ' + 'contain at most 10 tags. Tag keys must be between 1 and 128 characters, and tag values must be ' + 'between 0 and 256 characters. Valid tag key and value characters include: lowercase and uppercase ' + 'letters, digits (0-9), space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals ' + '(=), underscore (_).' + ) + + marker_type = CLIArgumentType( + help='A string value that identifies the portion of the list of containers to be ' + 'returned with the next listing operation. The operation returns the NextMarker value within ' + 'the response body if the listing operation did not return all containers remaining to be listed ' + 'with the current page. If specified, this generator will begin returning results from the point ' + 'where the previous generator stopped.') + + num_results_type = CLIArgumentType( + default=5000, validator=validate_storage_data_plane_list, options_list='--num-results', + help='Specify the maximum number to return. If the request does not specify ' + 'num_results, or specifies a value greater than 5000, the server will return up to 5000 items. Note that ' + 'if the listing operation crosses a partition boundary, then the service will return a continuation token ' + 'for retrieving the remaining of the results. Provide "*" to return all.' + ) + + version_id_type = CLIArgumentType( + help='An optional blob version ID. This parameter is only for versioning enabled account. ', + min_api='2019-12-12', is_preview=True + ) # Fix preview display + + tier_type = CLIArgumentType( + arg_type=get_enum_type(t_blob_tier), min_api='2019-02-02', + help='The tier value to set the blob to. For page blob, the tier correlates to the size of the blob ' + 'and number of allowed IOPS. Possible values are P10, P15, P20, P30, P4, P40, P50, P6, P60, P70, P80 ' + 'and this is only applicable to page blobs on premium storage accounts; For block blob, possible ' + 'values are Archive, Cool and Hot. This is only applicable to block blobs on standard storage accounts.' + ) + + rehydrate_priority_type = CLIArgumentType( + arg_type=get_enum_type(t_rehydrate_priority), options_list=('--rehydrate-priority', '-r'), + min_api='2019-02-02', + help='Indicate the priority with which to rehydrate an archived blob.') + + tags_condition_type = CLIArgumentType( + options_list='--tags-condition', min_api='2019-12-12', + help='Specify a SQL where clause on blob tags to operate only on blobs with a matching value.') + timeout_type = CLIArgumentType( + help='Request timeout in seconds. Applies to each call to the service.', type=int + ) + + with self.argument_context('storage') as c: + c.argument('container_name', container_name_type) + c.argument('directory_name', directory_type) + c.argument('share_name', share_name_type) + c.argument('table_name', table_name_type) + c.argument('retry_wait', options_list=('--retry-interval',)) + c.ignore('progress_callback') + c.argument('metadata', nargs='+', + help='Metadata in space-separated key=value pairs. This overwrites any existing metadata.', + validator=validate_metadata) + c.argument('timeout', help='Request timeout in seconds. Applies to each call to the service.', type=int) + + with self.argument_context('storage account blob-service-properties show', + resource_type=CUSTOM_MGMT_STORAGE) as c: + c.argument('account_name', acct_name_type, id_part=None) + c.argument('resource_group_name', required=False, validator=process_resource_group) + + with self.argument_context('storage account blob-service-properties update', + resource_type=CUSTOM_MGMT_STORAGE) as c: + c.argument('account_name', acct_name_type, id_part=None) + c.argument('resource_group_name', required=False, validator=process_resource_group) + c.argument('enable_change_feed', arg_type=get_three_state_flag(), min_api='2019-04-01') + c.argument('enable_container_delete_retention', + arg_type=get_three_state_flag(), + options_list=['--enable-container-delete-retention', '--container-retention'], + arg_group='Container Delete Retention Policy', min_api='2019-06-01', + help='Enable container delete retention policy for container soft delete when set to true. ' + 'Disable container delete retention policy when set to false.') + c.argument('container_delete_retention_days', + options_list=['--container-delete-retention-days', '--container-days'], + type=int, arg_group='Container Delete Retention Policy', + min_api='2019-06-01', validator=validate_container_delete_retention_days, + help='Indicate the number of days that the deleted container should be retained. The minimum ' + 'specified value can be 1 and the maximum value can be 365.') + c.argument('enable_delete_retention', arg_type=get_three_state_flag(), arg_group='Delete Retention Policy', + min_api='2018-07-01') + c.argument('delete_retention_days', type=int, arg_group='Delete Retention Policy', + validator=validate_delete_retention_days, min_api='2018-07-01') + c.argument('enable_restore_policy', arg_type=get_three_state_flag(), arg_group='Restore Policy', + min_api='2019-06-01', help="Enable blob restore policy when it set to true.") + c.argument('restore_days', type=int, arg_group='Restore Policy', + min_api='2019-06-01', help="The number of days for the blob can be restored. It should be greater " + "than zero and less than Delete Retention Days.") + c.argument('enable_versioning', arg_type=get_three_state_flag(), help='Versioning is enabled if set to true.', + min_api='2019-06-01') + c.argument('enable_last_access_tracking', arg_type=get_three_state_flag(), min_api='2019-06-01', + options_list=['--enable-last-access-tracking', '-t'], + help='When set to true last access time based tracking policy is enabled.') + + with self.argument_context('storage account management-policy create') as c: + c.argument('policy', type=file_type, completer=FilesCompleter(), + help='The Storage Account ManagementPolicies Rules, in JSON format. See more details in: ' + 'https://docs.microsoft.com/azure/storage/common/storage-lifecycle-managment-concepts.') + c.argument('account_name', help='The name of the storage account within the specified resource group.') + + with self.argument_context('storage account management-policy update') as c: + c.argument('account_name', help='The name of the storage account within the specified resource group.') + + with self.argument_context('storage blob') as c: + c.argument('blob_name', options_list=('--name', '-n'), arg_type=blob_name_type) + + with self.argument_context('storage blob copy start') as c: + from ._validators import validate_source_url + + c.register_blob_arguments() + c.register_precondition_options() + c.register_precondition_options(prefix='source_') + c.register_source_uri_arguments(validator=validate_source_url) + + c.ignore('incremental_copy') + c.argument('if_match', options_list=['--destination-if-match']) + c.argument('if_modified_since', options_list=['--destination-if-modified-since']) + c.argument('if_none_match', options_list=['--destination-if-none-match']) + c.argument('if_unmodified_since', options_list=['--destination-if-unmodified-since']) + c.argument('if_tags_match_condition', options_list=['--destination-tags-condition']) + + c.argument('blob_name', options_list=['--destination-blob', '-b'], required=True, + help='Name of the destination blob. If the exists, it will be overwritten.') + c.argument('container_name', options_list=['--destination-container', '-c'], required=True, + help='The container name.') + c.extra('destination_lease', options_list='--destination-lease-id', + help='The lease ID specified for this header must match the lease ID of the estination blob. ' + 'If the request does not include the lease ID or it is not valid, the operation fails with status ' + 'code 412 (Precondition Failed).') + c.extra('source_lease', options_list='--source-lease-id', arg_group='Copy Source', + help='Specify this to perform the Copy Blob operation only if the lease ID given matches the ' + 'active lease ID of the source blob.') + c.extra('rehydrate_priority', rehydrate_priority_type) + c.extra('requires_sync', arg_type=get_three_state_flag(), + help='Enforce that the service will not return a response until the copy is complete.') + c.extra('tier', tier_type) + c.extra('tags', tags_type) + + with self.argument_context('storage blob delete') as c: + c.register_blob_arguments() + c.register_precondition_options() + + c.extra('lease', lease_type) + c.extra('snapshot', snapshot_type) + c.extra('version_id', version_id_type) + + with self.argument_context('storage blob download') as c: + from ._validators import add_progress_callback_v2 + c.register_blob_arguments() + c.register_precondition_options() + c.argument('file_path', options_list=('--file', '-f'), type=file_type, completer=FilesCompleter(), + help='Path of file to write out to.') + c.extra('start_range', type=int, + help='Start of byte range to use for downloading a section of the blob. If no end_range is given, ' + 'all bytes after the start_range will be downloaded. The start_range and end_range params are ' + 'inclusive. Ex: start_range=0, end_range=511 will download first 512 bytes of blob.') + c.extra('end_range', type=int, + help='End of byte range to use for downloading a section of the blob. If end_range is given, ' + 'start_range must be provided. The start_range and end_range params are inclusive. Ex: start_range=0, ' + 'end_range=511 will download first 512 bytes of blob.') + c.extra('no_progress', progress_type, validator=add_progress_callback_v2) + c.extra('snapshot', snapshot_type) + c.extra('lease', lease_type) + c.extra('version_id', version_id_type) + c.extra('max_concurrency', options_list='--max-connections', type=int, default=2, + help='The number of parallel connections with which to download.') + c.argument('open_mode', help='Mode to use when opening the file. Note that specifying append only open_mode ' + 'prevents parallel download. So, max_connections must be set to 1 if this open_mode is used.') + c.argument('socket_timeout', deprecate_info=c.deprecate(hide=True), + help='The socket timeout(secs), used by the service to regulate data flow.') + c.extra('validate_content', action='store_true', min_api='2016-05-31', + help='If true, calculates an MD5 hash for each chunk of the blob. The storage service checks the ' + 'hash of the content that has arrived with the hash that was sent. This is primarily valuable for ' + 'detecting bitflips on the wire if using http instead of https, as https (the default), will already ' + 'validate. Note that this MD5 hash is not stored with the blob. Also note that if enabled, the ' + 'memory-efficient algorithm will not be used because computing the MD5 hash requires buffering ' + 'entire blocks, and doing so defeats the purpose of the memory-efficient algorithm.') + + with self.argument_context('storage blob exists') as c: + c.register_blob_arguments() + + with self.argument_context('storage blob filter') as c: + c.argument('filter_expression', options_list=['--tag-filter']) + + with self.argument_context('storage blob generate-sas') as c: + from .completers import get_storage_acl_name_completion_list + + t_blob_permissions = self.get_sdk('_models#BlobSasPermissions', resource_type=CUSTOM_DATA_STORAGE_BLOB) + c.register_sas_arguments() + c.argument('cache_control', help='Response header value for Cache-Control when resource is accessed' + 'using this shared access signature.') + c.argument('content_disposition', help='Response header value for Content-Disposition when resource is accessed' + 'using this shared access signature.') + c.argument('content_encoding', help='Response header value for Content-Encoding when resource is accessed' + 'using this shared access signature.') + c.argument('content_language', help='Response header value for Content-Language when resource is accessed' + 'using this shared access signature.') + c.argument('content_type', help='Response header value for Content-Type when resource is accessed' + 'using this shared access signature.') + c.argument('full_uri', action='store_true', + help='Indicate that this command return the full blob URI and the shared access signature token.') + c.argument('as_user', min_api='2018-11-09', action='store_true', + validator=as_user_validator, + help="Indicates that this command return the SAS signed with the user delegation key. " + "The expiry parameter and '--auth-mode login' are required if this argument is specified. ") + c.argument('id', options_list='--policy-name', + help='The name of a stored access policy within the container\'s ACL.', + completer=get_storage_acl_name_completion_list(t_base_blob_service, 'container_name', + 'get_container_acl')) + c.argument('ip', help='Specify an IP address or a range of IP addresses from which to accept requests. ' + 'If the IP address from which the request originates does not match the IP address or address range ' + 'specified on the SAS token, the request is not authenticated. For example, specifying ip=168.1.5.65' + ' or ip=168.1.5.60-168.1.5.70 on the SAS restricts the request to those IP addresses.') + c.argument('permission', options_list='--permissions', + help=sas_help.format(get_permission_help_string(t_blob_permissions)), + validator=get_permission_validator(t_blob_permissions)) + c.argument('snapshot', snapshot_type) + c.ignore('sas_token') + c.argument('version_id', version_id_type) + + with self.argument_context('storage blob lease') as c: + c.argument('blob_name', arg_type=blob_name_type) + + with self.argument_context('storage blob lease acquire') as c: + c.register_precondition_options() + c.register_blob_arguments() + c.extra('lease_id', options_list='--proposed-lease-id', help='Proposed lease ID, in a GUID string format. ' + 'The Blob service returns 400 (Invalid request) if the proposed lease ID is not in the correct format.') + c.argument('lease_duration', help='Specify the duration of the lease, in seconds, or negative one (-1) for ' + 'a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease ' + 'duration cannot be changed using renew or change. Default is -1 (infinite lease)', type=int) + c.extra('if_tags_match_condition', tags_condition_type) + + with self.argument_context('storage blob lease break') as c: + c.register_precondition_options() + c.register_blob_arguments() + c.argument('lease_break_period', type=int, + help="This is the proposed duration of seconds that the lease should continue before it is broken, " + "between 0 and 60 seconds. This break period is only used if it is shorter than the time remaining " + "on the lease. If longer, the time remaining on the lease is used. A new lease will not be " + "available before the break period has expired, but the lease may be held for longer than the break " + "period. If this header does not appear with a break operation, a fixed-duration lease breaks after " + "the remaining lease period elapses, and an infinite lease breaks immediately.") + c.extra('if_tags_match_condition', tags_condition_type) + + with self.argument_context('storage blob lease change') as c: + c.register_precondition_options() + c.register_blob_arguments() + c.extra('proposed_lease_id', help='Proposed lease ID, in a GUID string format. The Blob service returns 400 ' + '(Invalid request) if the proposed lease ID is not in the correct format.', required=True) + c.extra('lease_id', help='Required if the blob has an active lease.', required=True) + c.extra('if_tags_match_condition', tags_condition_type) + + for item in ['release', 'renew']: + with self.argument_context('storage blob lease {}'.format(item)) as c: + c.register_precondition_options() + c.register_blob_arguments() + c.extra('lease_id', help='Required if the blob has an active lease.', required=True) + c.extra('if_tags_match_condition', tags_condition_type) + + with self.argument_context('storage blob list') as c: + from .track2_util import get_include_help_string + t_blob_include = self.get_sdk('_generated.models._azure_blob_storage_enums#ListBlobsIncludeItem', + resource_type=CUSTOM_DATA_STORAGE_BLOB) + c.register_container_arguments() + c.argument('delimiter', + help='When the request includes this parameter, the operation returns a BlobPrefix element in the ' + 'result list that acts as a placeholder for all blobs whose names begin with the same substring ' + 'up to the appearance of the delimiter character. The delimiter may be a single character or a ' + 'string.') + c.argument('include', help="Specify one or more additional datasets to include in the response. " + "Options include: {}. Can be combined.".format(get_include_help_string(t_blob_include)), + validator=validate_included_datasets_v2) + c.argument('marker', arg_type=marker_type) + c.argument('num_results', arg_type=num_results_type) + c.argument('prefix', + help='Filter the results to return only blobs whose name begins with the specified prefix.') + c.argument('show_next_marker', action='store_true', is_preview=True, + help='Show nextMarker in result when specified.') + + for item in ['show', 'update']: + with self.argument_context('storage blob metadata {}'.format(item), resource_type=CUSTOM_DATA_STORAGE_BLOB) \ + as c: + c.register_blob_arguments() + c.register_precondition_options() + c.extra('lease', lease_type) + c.extra('snapshot', snapshot_type) + c.extra('if_tags_match_condition', tags_condition_type) + + with self.argument_context('storage blob set-tier', resource_type=CUSTOM_DATA_STORAGE_BLOB) as c: + c.register_blob_arguments() + + c.argument('blob_type', options_list=('--type', '-t'), arg_type=get_enum_type(('block', 'page'))) + c.extra('tier', tier_type, validator=blob_tier_validator, required=True) + c.argument('rehydrate_priority', rehydrate_priority_type, is_preview=True) + c.extra('version_id', version_id_type) + c.extra('if_tags_match_condition', tags_condition_type) + + with self.argument_context('storage blob show') as c: + c.register_blob_arguments() + c.register_precondition_options() + c.extra('snapshot', snapshot_type) + c.extra('lease', lease_type) + c.argument('version_id', version_id_type) + + with self.argument_context('storage blob snapshot') as c: + c.register_blob_arguments() + c.register_precondition_options() + c.extra('lease', lease_type) + c.extra('if_tags_match_condition', tags_condition_type) + + with self.argument_context('storage blob undelete', resource_type=CUSTOM_DATA_STORAGE_BLOB) as c: + c.register_blob_arguments() + + with self.argument_context('storage blob tag list') as c: + c.register_blob_arguments() + c.extra('version_id', version_id_type) + c.extra('snapshot', snapshot_type) + c.extra('if_tags_match_condition', tags_condition_type) + + with self.argument_context('storage blob tag set') as c: + c.register_blob_arguments() + c.extra('version_id', version_id_type) + c.argument('tags', tags_type, required=True) + c.extra('if_tags_match_condition', tags_condition_type) + + with self.argument_context('storage blob upload') as c: + from ._validators import validate_encryption_scope_client_params, \ + add_progress_callback_v2 + from .sdkutil import get_blob_types + + t_blob_content_settings = self.get_sdk('_models#ContentSettings', resource_type=CUSTOM_DATA_STORAGE_BLOB) + + c.register_blob_arguments() + c.register_precondition_options() + c.register_content_settings_argument(t_blob_content_settings, update=False) + + c.argument('file_path', options_list=('--file', '-f'), type=file_type, completer=FilesCompleter(), + help='Path of the file to upload as the blob content.') + c.argument('overwrite', arg_type=get_three_state_flag(), + help='Whether the blob to be uploaded should overwrite the current data. If True, upload_blob will ' + 'overwrite the existing data. If set to False, the operation will fail with ResourceExistsError. ' + 'The exception to the above is with Append blob types: if set to False and the data already exists, ' + 'an error will not be raised and the data will be appended to the existing blob. If set ' + 'overwrite=True, then the existing append blob will be deleted, and a new one created. ' + 'Defaults to False.', is_preview=True) + c.argument('max_connections', type=int, + help='Maximum number of parallel connections to use when the blob size exceeds 64MB.') + c.extra('maxsize_condition', type=int, + help='The max length in bytes permitted for the append blob.') + c.argument('blob_type', options_list=('--type', '-t'), validator=validate_blob_type, + arg_type=get_enum_type(get_blob_types())) + c.argument('validate_content', action='store_true', min_api='2016-05-31') + c.extra('no_progress', progress_type, validator=add_progress_callback_v2) + c.argument('socket_timeout', deprecate_info=c.deprecate(hide=True), + help='The socket timeout(secs), used by the service to regulate data flow.') + c.extra('tier', tier_type, validator=blob_tier_validator) + c.argument('encryption_scope', validator=validate_encryption_scope_client_params, + help='A predefined encryption scope used to encrypt the data on the service.') + c.argument('lease_id', help='Required if the blob has an active lease.') + c.extra('tags', arg_type=tags_type) + + with self.argument_context('storage container') as c: + c.argument('container_name', container_name_type, options_list=('--name', '-n')) + + with self.argument_context('storage container generate-sas') as c: + from .completers import get_storage_acl_name_completion_list + t_container_permissions = self.get_sdk('_models#ContainerSasPermissions', + resource_type=CUSTOM_DATA_STORAGE_BLOB) + c.register_sas_arguments() + c.argument('id', options_list='--policy-name', + help='The name of a stored access policy within the container\'s ACL.', + completer=get_storage_acl_name_completion_list(t_container_permissions, 'container_name', + 'get_container_acl')) + c.argument('permission', options_list='--permissions', + help=sas_help.format(get_permission_help_string(t_container_permissions)), + validator=get_permission_validator(t_container_permissions)) + c.argument('cache_control', help='Response header value for Cache-Control when resource is accessed' + 'using this shared access signature.') + c.argument('content_disposition', help='Response header value for Content-Disposition when resource is accessed' + 'using this shared access signature.') + c.argument('content_encoding', help='Response header value for Content-Encoding when resource is accessed' + 'using this shared access signature.') + c.argument('content_language', help='Response header value for Content-Language when resource is accessed' + 'using this shared access signature.') + c.argument('content_type', help='Response header value for Content-Type when resource is accessed' + 'using this shared access signature.') + c.argument('as_user', min_api='2018-11-09', action='store_true', + validator=as_user_validator, + help="Indicates that this command return the SAS signed with the user delegation key. " + "The expiry parameter and '--auth-mode login' are required if this argument is specified. ") + c.ignore('sas_token') + c.argument('full_uri', action='store_true', is_preview=True, + help='Indicate that this command return the full blob URI and the shared access signature token.') + + with self.argument_context('storage container list') as c: + c.extra('timeout', timeout_type) + c.argument('marker', arg_type=marker_type) + c.argument('num_results', arg_type=num_results_type) + c.argument('prefix', + help='Filter the results to return only blobs whose name begins with the specified prefix.') + c.argument('include_metadata', arg_type=get_three_state_flag(), + help='Specify that container metadata to be returned in the response.') + c.argument('show_next_marker', action='store_true', is_preview=True, + help='Show nextMarker in result when specified.') + c.argument('include_deleted', arg_type=get_three_state_flag(), min_api='2020-02-10', + help='Specify that deleted containers to be returned in the response. This is for container restore ' + 'enabled account. The default value is `False`') + + with self.argument_context('storage container restore') as c: + c.argument('deleted_container_name', options_list=['--name', '-n'], + help='Specify the name of the deleted container to restore.') + c.argument('deleted_container_version', options_list=['--deleted-version'], + help='Specify the version of the deleted container to restore.') + c.argument('new_name', help='The new name for the deleted container to be restored to.') + c.extra('timeout', timeout_type) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/_transformers.py b/src/storage-blob-preview/azext_storage_blob_preview/_transformers.py new file mode 100644 index 00000000000..6a945277356 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/_transformers.py @@ -0,0 +1,271 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import base64 +from knack.log import get_logger +from knack.util import todict +from .track2_util import _encode_bytes +from .url_quote_util import encode_url_path + +storage_account_key_options = {'primary': 'key1', 'secondary': 'key2'} +logger = get_logger(__name__) + + +def transform_acl_list_output(result): + """ Transform to convert SDK output into a form that is more readily + usable by the CLI and tools such as jpterm. """ + from collections import OrderedDict + new_result = [] + for key in sorted(result.keys()): + new_entry = OrderedDict() + new_entry['Name'] = key + new_entry['Start'] = result[key]['start'] + new_entry['Expiry'] = result[key]['expiry'] + new_entry['Permissions'] = result[key]['permission'] + new_result.append(new_entry) + return new_result + + +def transform_container_permission_output(result): + return {'publicAccess': result.public_access or 'off'} + + +def transform_cors_list_output(result): + from collections import OrderedDict + new_result = [] + for service in sorted(result.keys()): + for i, rule in enumerate(result[service]): + new_entry = OrderedDict() + new_entry['Service'] = service + new_entry['Rule'] = i + 1 + + new_entry['AllowedMethods'] = ', '.join((x for x in rule.allowed_methods)) + new_entry['AllowedOrigins'] = ', '.join((x for x in rule.allowed_origins)) + new_entry['ExposedHeaders'] = ', '.join((x for x in rule.exposed_headers)) + new_entry['AllowedHeaders'] = ', '.join((x for x in rule.allowed_headers)) + new_entry['MaxAgeInSeconds'] = rule.max_age_in_seconds + new_result.append(new_entry) + return new_result + + +def transform_entity_query_output(result): + from collections import OrderedDict + new_results = [] + ignored_keys = ['etag', 'Timestamp', 'RowKey', 'PartitionKey'] + for row in result['items']: + new_entry = OrderedDict() + new_entry['PartitionKey'] = row['PartitionKey'] + new_entry['RowKey'] = row['RowKey'] + other_keys = sorted([x for x in row.keys() if x not in ignored_keys]) + for key in other_keys: + new_entry[key] = row[key] + new_results.append(new_entry) + return new_results + + +def transform_entities_result(result): + for entity in result.items: + transform_entity_result(entity) + return result + + +def transform_entity_result(entity): + for key in entity.keys(): + entity_property = entity[key] + if hasattr(entity_property, 'value') and isinstance(entity_property.value, bytes): + entity_property.value = base64.b64encode(entity_property.value).decode() + return entity + + +def transform_logging_list_output(result): + from collections import OrderedDict + new_result = [] + for key in sorted(result.keys()): + new_entry = OrderedDict() + new_entry['Service'] = key + new_entry['Read'] = str(result[key]['read']) + new_entry['Write'] = str(result[key]['write']) + new_entry['Delete'] = str(result[key]['delete']) + new_entry['RetentionPolicy'] = str(result[key]['retentionPolicy']['days']) + new_result.append(new_entry) + return new_result + + +def transform_metrics_list_output(result): + from collections import OrderedDict + new_result = [] + for service in sorted(result.keys()): + service_name = service + for interval in sorted(result[service].keys()): + item = result[service][interval] + new_entry = OrderedDict() + new_entry['Service'] = service_name + service_name = '' + new_entry['Interval'] = str(interval) + new_entry['Enabled'] = str(item['enabled']) + new_entry['IncludeApis'] = str(item['includeApis']) + new_entry['RetentionPolicy'] = str(item['retentionPolicy']['days']) + new_result.append(new_entry) + return new_result + + +def create_boolean_result_output_transformer(property_name): + def _transformer(result): + return {property_name: result} + + return _transformer + + +def transform_storage_list_output(result): + if getattr(result, 'next_marker', None): + logger.warning('Next Marker:') + logger.warning(result.next_marker) + return list(result) + + +def transform_url(result): + """ Ensures the resulting URL string does not contain extra / characters """ + import re + result = re.sub('//', '/', result) + result = re.sub('/', '//', result, count=1) + return encode_url_path(result) + + +def transform_fs_access_output(result): + """ Transform to convert SDK output into a form that is more readily + usable by the CLI and tools such as jpterm. """ + + new_result = {} + useful_keys = ['acl', 'group', 'owner', 'permissions'] + for key in useful_keys: + new_result[key] = result[key] + return new_result + + +# TODO: Remove it when SDK is right for file system scenarios +def transform_fs_public_access_output(result): + """ Transform to convert SDK output into a form that is more readily + usable by the CLI and tools such as jpterm. """ + + if result.public_access == 'blob': + result.public_access = 'file' + if result.public_access == 'container': + result.public_access = 'filesystem' + return result + + +# TODO: Remove it when SDK is right for file system scenarios +def transform_fs_list_public_access_output(result): + """ Transform to convert SDK output into a form that is more readily + usable by the CLI and tools such as jpterm. """ + + new_result = list(result) + for i, item in enumerate(new_result): + new_result[i] = transform_fs_public_access_output(item) + return new_result + + +def transform_metadata(result): + return result.metadata + + +# ------------------Track2 Support----------------------- +def _transform_page_ranges(page_ranges): + # in track 2 sdk, page ranges result is tuple(list(dict(str, str), list(dict(str, str)) + if page_ranges and len(page_ranges) == 2: + result = page_ranges[0] if page_ranges[0] else [{}] + result[0]['isCleared'] = bool(page_ranges[1]) + return result + return None + + +def transform_blob_list_output(result): + for i, item in enumerate(result): + if isinstance(item, dict) and 'nextMarker' in item: + continue + try: + result[i] = transform_blob_json_output(item) + except KeyError: # Deal with BlobPrefix object when there is delimiter specified + result[i] = {"name": item.name} + return result + + +def transform_blob_json_output(result): + result = todict(result) + new_result = { + "content": "", + "deleted": result.pop('deleted', None), + "metadata": result.pop('metadata', None), + "name": result.pop('name', None), + "properties": { + "appendBlobCommittedBlockCount": result.pop('appendBlobCommittedBlockCount', None), + "blobTier": result.pop('blobTier', None), + "blobTierChangeTime": result.pop('blobTierChangeTime', None), + "blobTierInferred": result.pop('blobTierInferred', None), + "blobType": result.pop('blobType', None), + "contentLength": result.pop('size', None), + "contentRange": result.pop('contentRange', None), + "contentSettings": { + "cacheControl": result['contentSettings']['cacheControl'], + "contentDisposition": result['contentSettings']['contentDisposition'], + "contentEncoding": result['contentSettings']['contentEncoding'], + "contentLanguage": result['contentSettings']['contentLanguage'], + "contentMd5": _encode_bytes(result['contentSettings']['contentMd5']), + "contentType": result['contentSettings']['contentType'] + }, + "copy": result.pop('copy', None), + "creationTime": result.pop('creationTime', None), + "deletedTime": result.pop('deletedTime', None), + "etag": result.pop('etag', None), + "lastModified": result.pop('lastModified', None), + "lease": result.pop('lease', None), + "pageBlobSequenceNumber": result.pop('pageBlobSequenceNumber', None), + "pageRanges": _transform_page_ranges(result.pop('pageRanges', None)), + "rehydrationStatus": result.pop('archiveStatus', None), + "remainingRetentionDays": result.pop('remainingRetentionDays', None), + "serverEncrypted": result.pop('serverEncrypted', None) + }, + "snapshot": result.pop('snapshot', None) + } + del result['contentSettings'] + new_result.update(result) + return new_result + + +def transform_container_list_output(result): + for i, item in enumerate(result): + if isinstance(item, dict) and 'nextMarker' in item: + continue + try: + result[i] = transform_container_json_output(item) + except KeyError: # Deal with BlobPrefix object when there is delimiter specified + result[i] = {"name": item.name} + return result + + +def transform_container_json_output(result): + result = todict(result) + new_result = { + "metadata": result.pop('metadata', None), + "name": result.pop('name', None), + "properties": { + "etag": result.pop('etag', None), + "hasImmutabilityPolicy": result.pop('hasImmutabilityPolicy', None), + "hasLegalHold": result.pop('hasLegalHold', None), + "lastModified": result.pop('lastModified', None), + "lease": result.pop('lease', None), + "publicAccess": result.pop('publicAccess', None) + } + } + new_result.update(result) + return new_result + + +def transform_immutability_policy(result): + # service returns policy with period value of "0" after it has been deleted + # this only shows the policy if the property value is greater than 0 + if result.immutability_period_since_creation_in_days: + return result + return None diff --git a/src/storage-blob-preview/azext_storage_blob_preview/_validators.py b/src/storage-blob-preview/azext_storage_blob_preview/_validators.py new file mode 100644 index 00000000000..c695a1687b0 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/_validators.py @@ -0,0 +1,1031 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +# pylint: disable=protected-access + +import argparse + +from azure.cli.core.commands.validators import validate_key_value_pairs +from azure.cli.core.profiles import ResourceType, get_sdk + +from azure.cli.command_modules.storage._client_factory import storage_client_factory +from azure.cli.command_modules.storage.util import guess_content_type +from azure.cli.command_modules.storage.sdkutil import get_table_data_type +from azure.cli.command_modules.storage.url_quote_util import encode_for_url +from azure.cli.command_modules.storage.oauth_token_util import TokenUpdater + +from knack.log import get_logger +from knack.util import CLIError +from .profiles import CUSTOM_DATA_STORAGE_BLOB +from ._client_factory import cf_blob_client + +storage_account_key_options = {'primary': 'key1', 'secondary': 'key2'} +logger = get_logger(__name__) + + +# Utilities + + +# pylint: disable=inconsistent-return-statements,too-many-lines +def _query_account_key(cli_ctx, account_name): + """Query the storage account key. This is used when the customer doesn't offer account key but name.""" + rg, scf = _query_account_rg(cli_ctx, account_name) + t_storage_account_keys = get_sdk( + cli_ctx, ResourceType.MGMT_STORAGE, 'models.storage_account_keys#StorageAccountKeys') + + scf.config.enable_http_logger = False + logger.debug('Disable HTTP logging to avoid having storage keys in debug logs') + if t_storage_account_keys: + return scf.storage_accounts.list_keys(rg, account_name).key1 + # of type: models.storage_account_list_keys_result#StorageAccountListKeysResult + return scf.storage_accounts.list_keys(rg, account_name).keys[0].value # pylint: disable=no-member + + +def _query_account_rg(cli_ctx, account_name): + """Query the storage account's resource group, which the mgmt sdk requires.""" + scf = storage_client_factory(cli_ctx) + acc = next((x for x in scf.storage_accounts.list() if x.name == account_name), None) + if acc: + from msrestazure.tools import parse_resource_id + return parse_resource_id(acc.id)['resource_group'], scf + raise ValueError("Storage account '{}' not found.".format(account_name)) + + +def _create_token_credential(cli_ctx): + from knack.cli import EVENT_CLI_POST_EXECUTE + + TokenCredential = get_sdk(cli_ctx, ResourceType.DATA_STORAGE, 'common#TokenCredential') + + token_credential = TokenCredential() + updater = TokenUpdater(token_credential, cli_ctx) + + def _cancel_timer_event_handler(_, **__): + updater.cancel() + cli_ctx.register_event(EVENT_CLI_POST_EXECUTE, _cancel_timer_event_handler) + return token_credential + + +# region PARAMETER VALIDATORS +def parse_storage_account(cmd, namespace): + """Parse storage account which can be either account name or account id""" + from msrestazure.tools import parse_resource_id, is_valid_resource_id + + if namespace.account_name and is_valid_resource_id(namespace.account_name): + namespace.resource_group_name = parse_resource_id(namespace.account_name)['resource_group'] + namespace.account_name = parse_resource_id(namespace.account_name)['name'] + elif namespace.account_name and not is_valid_resource_id(namespace.account_name) and \ + not namespace.resource_group_name: + namespace.resource_group_name = _query_account_rg(cmd.cli_ctx, namespace.account_name)[0] + + +def process_resource_group(cmd, namespace): + """Processes the resource group parameter from the account name""" + if namespace.account_name and not namespace.resource_group_name: + namespace.resource_group_name = _query_account_rg(cmd.cli_ctx, namespace.account_name)[0] + + +def validate_table_payload_format(cmd, namespace): + t_table_payload = get_table_data_type(cmd.cli_ctx, 'table', 'TablePayloadFormat') + if namespace.accept: + formats = { + 'none': t_table_payload.JSON_NO_METADATA, + 'minimal': t_table_payload.JSON_MINIMAL_METADATA, + 'full': t_table_payload.JSON_FULL_METADATA + } + namespace.accept = formats[namespace.accept.lower()] + + +def validate_bypass(namespace): + if namespace.bypass: + namespace.bypass = ', '.join(namespace.bypass) if isinstance(namespace.bypass, list) else namespace.bypass + + +def get_config_value(cmd, section, key, default): + return cmd.cli_ctx.config.get(section, key, default) + + +def is_storagev2(import_prefix): + return import_prefix.startswith('azure.multiapi.storagev2.') + + +def validate_client_parameters(cmd, namespace): + """ Retrieves storage connection parameters from environment variables and parses out connection string into + account name and key """ + n = namespace + + if hasattr(n, 'auth_mode'): + auth_mode = n.auth_mode or get_config_value(cmd, 'storage', 'auth_mode', None) + del n.auth_mode + if not n.account_name: + n.account_name = get_config_value(cmd, 'storage', 'account', None) + if auth_mode == 'login': + from azure.cli.core._profile import Profile + profile = Profile(cli_ctx=cmd.cli_ctx) + n.token_credential, _, _ = profile.get_login_credentials( + resource="https://storage.azure.com", subscription_id=n._subscription) + + if hasattr(n, 'token_credential') and n.token_credential: + # give warning if there are account key args being ignored + account_key_args = [n.account_key and "--account-key", n.sas_token and "--sas-token", + n.connection_string and "--connection-string"] + account_key_args = [arg for arg in account_key_args if arg] + + if account_key_args: + logger.warning('In "login" auth mode, the following arguments are ignored: %s', + ' ,'.join(account_key_args)) + return + + if not n.connection_string: + n.connection_string = get_config_value(cmd, 'storage', 'connection_string', None) + + # if connection string supplied or in environment variables, extract account key and name + if n.connection_string: + conn_dict = validate_key_value_pairs(n.connection_string) + n.account_name = conn_dict.get('AccountName') + n.account_key = conn_dict.get('AccountKey') + n.sas_token = conn_dict.get('SharedAccessSignature') + + # otherwise, simply try to retrieve the remaining variables from environment variables + if not n.account_name: + n.account_name = get_config_value(cmd, 'storage', 'account', None) + if not n.account_key: + n.account_key = get_config_value(cmd, 'storage', 'key', None) + if not n.sas_token: + n.sas_token = get_config_value(cmd, 'storage', 'sas_token', None) + + # strip the '?' from sas token. the portal and command line are returns sas token in different + # forms + if n.sas_token: + n.sas_token = n.sas_token.lstrip('?') + + # account name with secondary + if n.account_name and n.account_name.endswith('-secondary'): + n.location_mode = 'secondary' + n.account_name = n.account_name[:-10] + + # if account name is specified but no key, attempt to query + if n.account_name and not n.account_key and not n.sas_token: + logger.warning('There is no credential provided in your command and environment, we will query account key ' + 'for your storage account. \nPlease provide --connection-string, --account-key or --sas-token ' + 'as credential, or use `--auth-mode login` if you have required RBAC roles in your command. ' + 'For more information about RBAC roles in storage, you can see ' + 'https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad-rbac-cli. \n' + 'Setting corresponding environment variable can avoid inputting credential in your command. ' + 'Please use --help to get more information.') + n.account_key = _query_account_key(cmd.cli_ctx, n.account_name) + + +def validate_encryption_key(cmd, namespace): + encryption_key_source = cmd.get_models('EncryptionScopeSource', resource_type=ResourceType.MGMT_STORAGE) + if namespace.key_source == encryption_key_source.microsoft_key_vault and \ + not namespace.key_uri: + raise CLIError("usage error: Please specify --key-uri when using {} as key source." + .format(encryption_key_source.microsoft_key_vault)) + if namespace.key_source != encryption_key_source.microsoft_key_vault and namespace.key_uri: + raise CLIError("usage error: Specify `--key-source={}` and --key-uri to configure key vault properties." + .format(encryption_key_source.microsoft_key_vault)) + + +def process_blob_source_uri(cmd, namespace): + """ + Validate the parameters referenced to a blob source and create the source URI from them. + """ + from .util import create_short_lived_blob_sas + usage_string = \ + 'Invalid usage: {}. Supply only one of the following argument sets to specify source:' \ + '\n\t --source-uri' \ + '\n\tOR --source-container --source-blob --source-snapshot [--source-account-name & sas] ' \ + '\n\tOR --source-container --source-blob --source-snapshot [--source-account-name & key] ' + + ns = vars(namespace) + + # source as blob + container = ns.pop('source_container', None) + blob = ns.pop('source_blob', None) + snapshot = ns.pop('source_snapshot', None) + + # source credential clues + source_account_name = ns.pop('source_account_name', None) + source_account_key = ns.pop('source_account_key', None) + sas = ns.pop('source_sas', None) + + # source in the form of an uri + uri = ns.get('copy_source', None) + if uri: + if any([container, blob, sas, snapshot, source_account_name, source_account_key]): + raise ValueError(usage_string.format('Unused parameters are given in addition to the ' + 'source URI')) + # simplest scenario--no further processing necessary + return + + validate_client_parameters(cmd, namespace) # must run first to resolve storage account + + # determine if the copy will happen in the same storage account + if not source_account_name and source_account_key: + raise ValueError(usage_string.format('Source account key is given but account name is not')) + if not source_account_name and not source_account_key: + # neither source account name or key is given, assume that user intends to copy blob in + # the same account + source_account_name = ns.get('account_name', None) + source_account_key = ns.get('account_key', None) + elif source_account_name and not source_account_key: + if source_account_name == ns.get('account_name', None): + # the source account name is same as the destination account name + source_account_key = ns.get('account_key', None) + else: + # the source account is different from destination account but the key is missing + # try to query one. + try: + source_account_key = _query_account_key(cmd.cli_ctx, source_account_name) + except ValueError: + raise ValueError('Source storage account {} not found.'.format(source_account_name)) + # else: both source account name and key are given by user + + if not source_account_name: + raise ValueError(usage_string.format('Storage account name not found')) + + if not sas: + sas = create_short_lived_blob_sas(cmd, source_account_name, source_account_key, container, blob) + + query_params = [] + if sas: + query_params.append(sas) + if snapshot: + query_params.append('snapshot={}'.format(snapshot)) + + uri = 'https://{}.blob.{}/{}/{}{}{}'.format(source_account_name, + cmd.cli_ctx.cloud.suffixes.storage_endpoint, + container, + blob, + '?' if query_params else '', + '&'.join(query_params)) + + namespace.copy_source = uri + + +def validate_source_url(cmd, namespace): # pylint: disable=too-many-statements + from .util import create_short_lived_blob_sas, create_short_lived_file_sas + usage_string = \ + 'Invalid usage: {}. Supply only one of the following argument sets to specify source:' \ + '\n\t --source-uri [--source-sas]' \ + '\n\tOR --source-container --source-blob [--source-account-name & sas] [--source-snapshot]' \ + '\n\tOR --source-container --source-blob [--source-account-name & key] [--source-snapshot]' \ + '\n\tOR --source-share --source-path' \ + '\n\tOR --source-share --source-path [--source-account-name & sas]' \ + '\n\tOR --source-share --source-path [--source-account-name & key]' + + ns = vars(namespace) + + # source as blob + container = ns.pop('source_container', None) + blob = ns.pop('source_blob', None) + snapshot = ns.pop('source_snapshot', None) + + # source as file + share = ns.pop('source_share', None) + path = ns.pop('source_path', None) + file_snapshot = ns.pop('file_snapshot', None) + + # source credential clues + source_account_name = ns.pop('source_account_name', None) + source_account_key = ns.pop('source_account_key', None) + source_sas = ns.pop('source_sas', None) + + # source in the form of an uri + uri = ns.get('source_url', None) + if uri: + if any([container, blob, snapshot, share, path, file_snapshot, source_account_name, + source_account_key]): + raise ValueError(usage_string.format('Unused parameters are given in addition to the ' + 'source URI')) + if source_sas: + source_sas = source_sas.lstrip('?') + uri = '{}{}{}'.format(uri, '?', source_sas) + namespace.copy_source = uri + return + + # ensure either a file or blob source is specified + valid_blob_source = container and blob and not share and not path and not file_snapshot + valid_file_source = share and path and not container and not blob and not snapshot + + if not valid_blob_source and not valid_file_source: + raise ValueError(usage_string.format('Neither a valid blob or file source is specified')) + if valid_blob_source and valid_file_source: + raise ValueError(usage_string.format('Ambiguous parameters, both blob and file sources are ' + 'specified')) + + validate_client_parameters(cmd, namespace) # must run first to resolve storage account + + if not source_account_name: + if source_account_key: + raise ValueError(usage_string.format('Source account key is given but account name is not')) + # assume that user intends to copy blob in the same account + source_account_name = ns.get('account_name', None) + + # determine if the copy will happen in the same storage account + same_account = False + + if not source_account_key and not source_sas: + if source_account_name == ns.get('account_name', None): + same_account = True + source_account_key = ns.get('account_key', None) + source_sas = ns.get('sas_token', None) + else: + # the source account is different from destination account but the key is missing try to query one. + try: + source_account_key = _query_account_key(cmd.cli_ctx, source_account_name) + except ValueError: + raise ValueError('Source storage account {} not found.'.format(source_account_name)) + + # Both source account name and either key or sas (or both) are now available + if not source_sas: + # generate a sas token even in the same account when the source and destination are not the same kind. + if valid_file_source and (ns.get('container_name', None) or not same_account): + import os + dir_name, file_name = os.path.split(path) if path else (None, '') + source_sas = create_short_lived_file_sas(cmd, source_account_name, source_account_key, share, + dir_name, file_name) + elif valid_blob_source and (ns.get('share_name', None) or not same_account): + source_sas = create_short_lived_blob_sas(cmd, source_account_name, source_account_key, container, blob) + + query_params = [] + if source_sas: + query_params.append(source_sas.lstrip('?')) + if snapshot: + query_params.append('snapshot={}'.format(snapshot)) + if file_snapshot: + query_params.append('sharesnapshot={}'.format(file_snapshot)) + + uri = 'https://{0}.{1}.{6}/{2}/{3}{4}{5}'.format( + source_account_name, + 'blob' if valid_blob_source else 'file', + container if valid_blob_source else share, + encode_for_url(blob if valid_blob_source else path), + '?' if query_params else '', + '&'.join(query_params), + cmd.cli_ctx.cloud.suffixes.storage_endpoint) + + namespace.source_url = uri + + +def validate_blob_type(namespace): + if not namespace.blob_type: + namespace.blob_type = 'page' if namespace.file_path.endswith('.vhd') else 'block' + + +def validate_storage_data_plane_list(namespace): + if namespace.num_results == '*': + namespace.num_results = None + else: + namespace.num_results = int(namespace.num_results) + + +def get_content_setting_validator(settings_class, update, guess_from_file=None): + def _class_name(class_type): + return class_type.__module__ + "." + class_type.__class__.__name__ + + def validator(cmd, namespace): + t_blob_content_settings = cmd.get_models('_models#ContentSettings', resource_type=CUSTOM_DATA_STORAGE_BLOB) + + # must run certain validators first for an update + if update: + validate_client_parameters(cmd, namespace) + + ns = vars(namespace) + clear_content_settings = ns.pop('clear_content_settings', False) + + # retrieve the existing object properties for an update + if update and not clear_content_settings: + account = ns.get('account_name') + key = ns.get('account_key') + cs = ns.get('connection_string') + sas = ns.get('sas_token') + token_credential = ns.get('token_credential') + if _class_name(settings_class) == _class_name(t_blob_content_settings): + container = ns.get('container_name') + blob = ns.get('blob_name') + lease_id = ns.get('lease_id') + client = cf_blob_client(cmd.cli_ctx, connection_string=cs, account_name=account, account_key=key, + token_credential=token_credential, sas_token=sas, container=container, + blob=blob) + + props = client.get_blob_properties(lease=lease_id).content_settings + + # create new properties + new_props = settings_class( + content_type=ns.pop('content_type', None), + content_disposition=ns.pop('content_disposition', None), + content_encoding=ns.pop('content_encoding', None), + content_language=ns.pop('content_language', None), + content_md5=ns.pop('content_md5', None), + cache_control=ns.pop('content_cache_control', None) + ) + + # if update, fill in any None values with existing + if update: + if not clear_content_settings: + for attr in ['content_type', 'content_disposition', 'content_encoding', 'content_language', + 'content_md5', 'cache_control']: + if getattr(new_props, attr) is None: + setattr(new_props, attr, getattr(props, attr)) + else: + if guess_from_file: + new_props = guess_content_type(ns[guess_from_file], new_props, settings_class) + + ns['content_settings'] = new_props + + return validator + + +def validate_custom_domain(namespace): + if namespace.use_subdomain and not namespace.custom_domain: + raise ValueError('usage error: --custom-domain DOMAIN [--use-subdomain]') + + +def validate_encryption_services(cmd, namespace): + """ + Builds up the encryption services object for storage account operations based on the list of services passed in. + """ + if namespace.encryption_services: + t_encryption_services, t_encryption_service = get_sdk(cmd.cli_ctx, ResourceType.MGMT_STORAGE, + 'EncryptionServices', 'EncryptionService', mod='models') + services = {service: t_encryption_service(enabled=True) for service in namespace.encryption_services} + + namespace.encryption_services = t_encryption_services(**services) + + +def validate_encryption_source(namespace): + if namespace.encryption_key_source == 'Microsoft.Keyvault' and \ + not (namespace.encryption_key_name and namespace.encryption_key_vault): + raise ValueError('--encryption-key-name and --encryption-key-vault are required ' + 'when --encryption-key-source=Microsoft.Keyvault is specified.') + + if namespace.encryption_key_name or namespace.encryption_key_version is not None or namespace.encryption_key_vault: + if namespace.encryption_key_source and namespace.encryption_key_source != 'Microsoft.Keyvault': + raise ValueError('--encryption-key-name, --encryption-key-vault, and --encryption-key-version are not ' + 'applicable without Microsoft.Keyvault key-source.') + + +def validate_entity(namespace): + """ Converts a list of key value pairs into a dictionary. Ensures that required + RowKey and PartitionKey are converted to the correct case and included. """ + values = dict(x.split('=', 1) for x in namespace.entity) + keys = values.keys() + for key in list(keys): + if key.lower() == 'rowkey': + val = values[key] + del values[key] + values['RowKey'] = val + elif key.lower() == 'partitionkey': + val = values[key] + del values[key] + values['PartitionKey'] = val + keys = values.keys() + missing_keys = 'RowKey ' if 'RowKey' not in keys else '' + missing_keys = '{}PartitionKey'.format(missing_keys) \ + if 'PartitionKey' not in keys else missing_keys + if missing_keys: + raise argparse.ArgumentError( + None, 'incorrect usage: entity requires: {}'.format(missing_keys)) + + def cast_val(key, val): + """ Attempts to cast numeric values (except RowKey and PartitionKey) to numbers so they + can be queried correctly. """ + if key in ['PartitionKey', 'RowKey']: + return val + + def try_cast(to_type): + try: + return to_type(val) + except ValueError: + return None + + return try_cast(int) or try_cast(float) or val + + # ensure numbers are converted from strings so querying will work correctly + values = {key: cast_val(key, val) for key, val in values.items()} + namespace.entity = values + + +def validate_marker(namespace): + """ Converts a list of key value pairs into a dictionary. Ensures that required + nextrowkey and nextpartitionkey are included. """ + if not namespace.marker: + return + marker = dict(x.split('=', 1) for x in namespace.marker) + expected_keys = {'nextrowkey', 'nextpartitionkey'} + + for key in list(marker.keys()): + new_key = key.lower() + if new_key in expected_keys: + expected_keys.remove(key.lower()) + val = marker[key] + del marker[key] + marker[new_key] = val + if expected_keys: + raise argparse.ArgumentError( + None, 'incorrect usage: marker requires: {}'.format(' '.join(expected_keys))) + + namespace.marker = marker + + +def get_file_path_validator(default_file_param=None): + """ Creates a namespace validator that splits out 'path' into 'directory_name' and 'file_name'. + Allows another path-type parameter to be named which can supply a default filename. """ + + def validator(namespace): + import os + if not hasattr(namespace, 'path'): + return + + path = namespace.path + dir_name, file_name = os.path.split(path) if path else (None, '') + + if default_file_param and '.' not in file_name: + dir_name = path + file_name = os.path.split(getattr(namespace, default_file_param))[1] + dir_name = None if dir_name in ('', '.') else dir_name + namespace.directory_name = dir_name + namespace.file_name = file_name + del namespace.path + + return validator + + +def validate_included_datasets_v2(cmd, namespace): + if namespace.include: + short_include = namespace.include + if set(short_include) - set('cmsdvt'): + help_string = '(c)opy-info (m)etadata (s)napshots (d)eleted (v)ersions (t)ags' + raise ValueError('valid values are {} or a combination thereof.'.format(help_string)) + t_blob_include = cmd.get_models('_generated.models._azure_blob_storage_enums#ListBlobsIncludeItem') + include = [] + if short_include.startswith('s'): + include.append(t_blob_include.snapshots) + if short_include.startswith('m'): + include.append(t_blob_include.metadata) + if short_include.startswith('c'): + include.append(t_blob_include.copy) + if short_include.startswith('d'): + include.append(t_blob_include.deleted) + if short_include.startswith('v'): + include.append(t_blob_include.versions) + if short_include.startswith('t'): + include.append(t_blob_include.tags) + namespace.include = include + + +def validate_key_name(namespace): + key_options = {'primary': '1', 'secondary': '2'} + if hasattr(namespace, 'key_type') and namespace.key_type: + namespace.key_name = namespace.key_type + key_options[namespace.key_name] + else: + namespace.key_name = storage_account_key_options[namespace.key_name] + + +def validate_metadata(namespace): + if namespace.metadata: + namespace.metadata = dict(x.split('=', 1) for x in namespace.metadata) + + +def get_permission_allowed_values(permission_class): + if permission_class: + instance = permission_class() + + allowed_values = [x.lower() for x in dir(instance) if not x.startswith('_')] + allowed_values.remove('from_string') + for i, item in enumerate(allowed_values): + if item == 'delete_previous_version': + allowed_values[i] = 'x' + item + return allowed_values + return None + + +def get_permission_help_string(permission_class): + allowed_values = get_permission_allowed_values(permission_class) + + return ' '.join(['({}){}'.format(x[0], x[1:]) for x in allowed_values]) + + +def get_permission_validator(permission_class): + allowed_values = get_permission_allowed_values(permission_class) + allowed_string = ''.join(x[0] for x in allowed_values) + + def validator(namespace): + if namespace.permission: + if set(namespace.permission) - set(allowed_string): + help_string = get_permission_help_string(permission_class) + raise ValueError( + 'valid values are {} or a combination thereof.'.format(help_string)) + namespace.permission = permission_class.from_string(namespace.permission) + + return validator + + +def table_permission_validator(cmd, namespace): + """ A special case for table because the SDK associates the QUERY permission with 'r' """ + t_table_permissions = get_table_data_type(cmd.cli_ctx, 'table', 'TablePermissions') + if namespace.permission: + if set(namespace.permission) - set('raud'): + help_string = '(r)ead/query (a)dd (u)pdate (d)elete' + raise ValueError('valid values are {} or a combination thereof.'.format(help_string)) + namespace.permission = t_table_permissions(_str=namespace.permission) + + +def validate_fs_public_access(cmd, namespace): + from .sdkutil import get_fs_access_type + + if namespace.public_access: + namespace.public_access = get_fs_access_type(cmd.cli_ctx, namespace.public_access.lower()) + + +def validate_select(namespace): + if namespace.select: + namespace.select = ','.join(namespace.select) + + +def add_progress_callback(cmd, namespace): + def _update_progress(current, total): + message = getattr(_update_progress, 'message', 'Alive') + reuse = getattr(_update_progress, 'reuse', False) + + if total: + hook.add(message=message, value=current, total_val=total) + if total == current and not reuse: + hook.end() + + hook = cmd.cli_ctx.get_progress_controller(det=True) + _update_progress.hook = hook + + if not namespace.no_progress: + namespace.progress_callback = _update_progress + del namespace.no_progress + + +def add_progress_callback_v2(cmd, namespace): + def _update_progress(response): + if response.http_response.status_code not in [200, 201]: + return + + message = getattr(_update_progress, 'message', 'Alive') + reuse = getattr(_update_progress, 'reuse', False) + current = response.context['upload_stream_current'] + total = response.context['data_stream_total'] + + if total: + hook.add(message=message, value=current, total_val=total) + if total == current and not reuse: + hook.end() + + hook = cmd.cli_ctx.get_progress_controller(det=True) + _update_progress.hook = hook + + if not namespace.no_progress: + namespace.progress_callback = _update_progress + del namespace.no_progress + + +def process_container_delete_parameters(cmd, namespace): + """Process the parameters for storage container delete command""" + # check whether to use mgmt or data-plane + if namespace.bypass_immutability_policy: + # use management-plane + namespace.processed_account_name = namespace.account_name + namespace.processed_resource_group, namespace.mgmt_client = _query_account_rg( + cmd.cli_ctx, namespace.account_name) + del namespace.auth_mode + else: + # use data-plane, like before + validate_client_parameters(cmd, namespace) + + +def process_file_download_namespace(namespace): + import os + + get_file_path_validator()(namespace) + + dest = namespace.file_path + if not dest or os.path.isdir(dest): + namespace.file_path = os.path.join(dest, namespace.file_name) \ + if dest else namespace.file_name + + +def process_metric_update_namespace(namespace): + namespace.hour = namespace.hour == 'true' + namespace.minute = namespace.minute == 'true' + namespace.api = namespace.api == 'true' if namespace.api else None + if namespace.hour is None and namespace.minute is None: + raise argparse.ArgumentError( + None, 'incorrect usage: must specify --hour and/or --minute') + if (namespace.hour or namespace.minute) and namespace.api is None: + raise argparse.ArgumentError( + None, 'incorrect usage: specify --api when hour or minute metrics are enabled') + + +def validate_subnet(cmd, namespace): + from msrestazure.tools import resource_id, is_valid_resource_id + from azure.cli.core.commands.client_factory import get_subscription_id + + subnet = namespace.subnet + subnet_is_id = is_valid_resource_id(subnet) + vnet = namespace.vnet_name + + if (subnet_is_id and not vnet) or (not subnet and not vnet): + return + if subnet and not subnet_is_id and vnet: + namespace.subnet = resource_id( + subscription=get_subscription_id(cmd.cli_ctx), + resource_group=namespace.resource_group_name, + namespace='Microsoft.Network', + type='virtualNetworks', + name=vnet, + child_type_1='subnets', + child_name_1=subnet) + else: + raise CLIError('incorrect usage: [--subnet ID | --subnet NAME --vnet-name NAME]') + + +def get_datetime_type(to_string): + """ Validates UTC datetime. Examples of accepted forms: + 2017-12-31T01:11:59Z,2017-12-31T01:11Z or 2017-12-31T01Z or 2017-12-31 """ + from datetime import datetime + + def datetime_type(string): + """ Validates UTC datetime. Examples of accepted forms: + 2017-12-31T01:11:59Z,2017-12-31T01:11Z or 2017-12-31T01Z or 2017-12-31 """ + accepted_date_formats = ['%Y-%m-%dT%H:%M:%SZ', '%Y-%m-%dT%H:%MZ', + '%Y-%m-%dT%HZ', '%Y-%m-%d'] + for form in accepted_date_formats: + try: + if to_string: + return datetime.strptime(string, form).strftime(form) + + return datetime.strptime(string, form) + except ValueError: + continue + raise ValueError("Input '{}' not valid. Valid example: 2000-12-31T12:59:59Z".format(string)) + + return datetime_type + + +def ipv4_range_type(string): + """ Validates an IPv4 address or address range. """ + import re + ip_format = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' + if not re.match("^{}$".format(ip_format), string): + if not re.match("^{ip_format}-{ip_format}$".format(ip_format=ip_format), string): + raise ValueError + return string + + +def resource_type_type(loader): + """ Returns a function which validates that resource types string contains only a combination of service, + container, and object. Their shorthand representations are s, c, and o. """ + + def impl(string): + t_resources = loader.get_models('common.models#ResourceTypes') + if set(string) - set("sco"): + raise ValueError + return t_resources(_str=''.join(set(string))) + + return impl + + +def services_type(loader): + """ Returns a function which validates that services string contains only a combination of blob, queue, table, + and file. Their shorthand representations are b, q, t, and f. """ + + def impl(string): + t_services = loader.get_models('common.models#Services') + if set(string) - set("bqtf"): + raise ValueError + return t_services(_str=''.join(set(string))) + + return impl + + +def get_char_options_validator(types, property_name): + def _validator(namespace): + service_types = set(getattr(namespace, property_name, list())) + + if not service_types: + raise ValueError('Missing options --{}.'.format(property_name.replace('_', '-'))) + + if service_types - set(types): + raise ValueError( + '--{}: only valid values are: {}.'.format(property_name.replace('_', '-'), ', '.join(types))) + + setattr(namespace, property_name, service_types) + + return _validator + + +def page_blob_tier_validator(cmd, namespace): + if not namespace.tier: + return + + if namespace.blob_type != 'page' and namespace.tier: + raise ValueError('Blob tier is only applicable to page blobs on premium storage accounts.') + + try: + namespace.premium_page_blob_tier = getattr(cmd.get_models('_models#PremiumPageBlobTier'), namespace.tier) + except AttributeError: + from azure.cli.command_modules.storage.sdkutil import get_blob_tier_names + raise ValueError('Unknown premium page blob tier name. Choose among {}'.format(', '.join( + get_blob_tier_names(cmd.cli_ctx, 'PremiumPageBlobTier')))) + + +def block_blob_tier_validator(cmd, namespace): + if not namespace.tier: + return + + if namespace.blob_type != 'block' and namespace.tier: + raise ValueError('Blob tier is only applicable to block blobs on standard storage accounts.') + + try: + namespace.standard_blob_tier = getattr(cmd.get_models('_models#StandardBlobTier'), namespace.tier) + except AttributeError: + from azure.cli.command_modules.storage.sdkutil import get_blob_tier_names + raise ValueError('Unknown block blob tier name. Choose among {}'.format(', '.join( + get_blob_tier_names(cmd.cli_ctx, 'StandardBlobTier')))) + + +def blob_tier_validator(cmd, namespace): + if namespace.tier: + if namespace.blob_type == 'page': + page_blob_tier_validator(cmd, namespace) + elif namespace.blob_type == 'block': + block_blob_tier_validator(cmd, namespace) + else: + raise ValueError('Blob tier is only applicable to block or page blob.') + del namespace.tier + + +def blob_rehydrate_priority_validator(namespace): + if namespace.blob_type == 'page' and namespace.rehydrate_priority: + raise ValueError('--rehydrate-priority is only applicable to block blob.') + if namespace.tier == 'Archive' and namespace.rehydrate_priority: + raise ValueError('--rehydrate-priority is only applicable to rehydrate blob data from the archive tier.') + if namespace.rehydrate_priority is None: + namespace.rehydrate_priority = 'Standard' + + +def as_user_validator(namespace): + if hasattr(namespace, 'token_credential') and not namespace.as_user: + raise CLIError('incorrect usage: specify --as-user when --auth-mode login is used to get user delegation key.') + if namespace.as_user: + if namespace.expiry is None: + raise argparse.ArgumentError( + None, 'incorrect usage: specify --expiry when as-user is enabled') + + expiry = get_datetime_type(False)(namespace.expiry) + + from datetime import datetime, timedelta + if expiry > datetime.utcnow() + timedelta(days=7): + raise argparse.ArgumentError( + None, 'incorrect usage: --expiry should be within 7 days from now') + + if ((not hasattr(namespace, 'token_credential') or namespace.token_credential is None) and + (not hasattr(namespace, 'auth_mode') or namespace.auth_mode != 'login')): + raise argparse.ArgumentError( + None, "incorrect usage: specify '--auth-mode login' when as-user is enabled") + + +def validator_delete_retention_days(namespace, enable=None, days=None): + enable_param = '--' + enable.replace('_', '-') + days_param = '--' + enable.replace('_', '-') + enable = getattr(namespace, enable) + days = getattr(namespace, days) + + if enable is True and days is None: + raise ValueError( + "incorrect usage: you have to provide value for '{}' when '{}' " + "is set to true".format(days_param, enable_param)) + + if enable is False and days is not None: + raise ValueError( + "incorrect usage: '{}' is invalid when '{}' is set to false".format(days_param, enable_param)) + + if enable is None and days is not None: + raise ValueError( + "incorrect usage: please specify '{} true' if you want to set the value for " + "'{}'".format(enable_param, days_param)) + + if days or days == 0: + if days < 1: + raise ValueError( + "incorrect usage: '{}' must be greater than or equal to 1".format(days_param)) + if days > 365: + raise ValueError( + "incorrect usage: '{}' must be less than or equal to 365".format(days_param)) + + +def validate_container_delete_retention_days(namespace): + validator_delete_retention_days(namespace, enable='enable_container_delete_retention', + days='container_delete_retention_days') + + +def validate_delete_retention_days(namespace): + validator_delete_retention_days(namespace, enable='enable_delete_retention', + days='delete_retention_days') + + +# pylint: disable=too-few-public-methods +class BlobRangeAddAction(argparse._AppendAction): + def __call__(self, parser, namespace, values, option_string=None): + if not namespace.blob_ranges: + namespace.blob_ranges = [] + if isinstance(values, list): + values = ' '.join(values) + BlobRange = namespace._cmd.get_models('BlobRestoreRange', resource_type=ResourceType.MGMT_STORAGE) + try: + start_range, end_range = values.split(' ') + except (ValueError, TypeError): + raise CLIError('usage error: --blob-range VARIABLE OPERATOR VALUE') + namespace.blob_ranges.append(BlobRange( + start_range=start_range, + end_range=end_range + )) + + +def validate_private_endpoint_connection_id(cmd, namespace): + if namespace.connection_id: + from azure.cli.core.util import parse_proxy_resource_id + result = parse_proxy_resource_id(namespace.connection_id) + namespace.resource_group_name = result['resource_group'] + namespace.account_name = result['name'] + namespace.private_endpoint_connection_name = result['child_name_1'] + + if namespace.account_name and not namespace.resource_group_name: + namespace.resource_group_name = _query_account_rg(cmd.cli_ctx, namespace.account_name)[0] + + if not all([namespace.account_name, namespace.resource_group_name, namespace.private_endpoint_connection_name]): + raise CLIError('incorrect usage: [--id ID | --name NAME --account-name NAME]') + + del namespace.connection_id + + +def pop_data_client_auth(ns): + del ns.auth_mode + del ns.account_key + del ns.connection_string + del ns.sas_token + + +def validate_client_auth_parameter(cmd, ns): + from .sdkutil import get_container_access_type + if ns.public_access: + ns.public_access = get_container_access_type(cmd.cli_ctx, ns.public_access.lower()) + if ns.default_encryption_scope and ns.prevent_encryption_scope_override is not None: + # simply try to retrieve the remaining variables from environment variables + if not ns.account_name: + ns.account_name = get_config_value(cmd, 'storage', 'account', None) + if ns.account_name and not ns.resource_group_name: + ns.resource_group_name = _query_account_rg(cmd.cli_ctx, account_name=ns.account_name)[0] + pop_data_client_auth(ns) + elif (ns.default_encryption_scope and ns.prevent_encryption_scope_override is None) or \ + (not ns.default_encryption_scope and ns.prevent_encryption_scope_override is not None): + raise CLIError("usage error: You need to specify both --default-encryption-scope and " + "--prevent-encryption-scope-override to set encryption scope information " + "when creating container.") + else: + validate_client_parameters(cmd, ns) + + +def validate_encryption_scope_client_params(ns): + if ns.encryption_scope: + # will use track2 client and socket_timeout is unused + del ns.socket_timeout + + +def validate_access_control(namespace): + if namespace.acl and namespace.permissions: + raise CLIError('usage error: invalid when specifying both --acl and --permissions.') + + +def validate_service_type(services, service_type): + if service_type == 'table': + return 't' in services + if service_type == 'blob': + return 'b' in services + if service_type == 'queue': + return 'q' in services + + +def validate_logging_version(namespace): + if validate_service_type(namespace.services, 'table') and namespace.version != 1.0: + raise CLIError( + 'incorrect usage: for table service, the supported version for logging is `1.0`. For more information, ' + 'please refer to https://docs.microsoft.com/en-us/rest/api/storageservices/storage-analytics-log-format.') + + +def validate_match_condition(namespace): + from .track2_util import _if_match, _if_none_match + if namespace.if_match: + namespace = _if_match(if_match=namespace.if_match, **namespace) + del namespace.if_match + if namespace.if_none_match: + namespace = _if_none_match(if_none_match=namespace.if_none_match, **namespace) + del namespace.if_none_match diff --git a/src/storage-blob-preview/azext_storage_blob_preview/azext_metadata.json b/src/storage-blob-preview/azext_storage_blob_preview/azext_metadata.json new file mode 100644 index 00000000000..6d89145ee59 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/azext_metadata.json @@ -0,0 +1,4 @@ +{ + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.12.0" +} \ No newline at end of file diff --git a/src/storage-blob-preview/azext_storage_blob_preview/commands.py b/src/storage-blob-preview/azext_storage_blob_preview/commands.py new file mode 100644 index 00000000000..3e566bd9784 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/commands.py @@ -0,0 +1,151 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from azure.cli.core.commands import CliCommandType +from azure.cli.core.commands.arm import show_exception_handler +from azure.cli.core.profiles import ResourceType + +from ._client_factory import cf_blob_client, cf_container_client, cf_blob_service, cf_blob_lease_client, \ + cf_mgmt_blob_services, cf_sa, cf_mgmt_policy +from .profiles import CUSTOM_DATA_STORAGE_BLOB, CUSTOM_MGMT_STORAGE + + +def load_command_table(self, _): # pylint: disable=too-many-locals, too-many-statements + + def get_custom_sdk(custom_module, client_factory, resource_type=ResourceType.DATA_STORAGE): + """Returns a CliCommandType instance with specified operation template based on the given custom module name. + This is useful when the command is not defined in the default 'custom' module but instead in a module under + 'operations' package.""" + return CliCommandType( + operations_tmpl='azext_storage_blob_preview.operations.{}#'.format( + custom_module) + '{}', + client_factory=client_factory, + resource_type=resource_type + ) + + blob_service_mgmt_sdk = CliCommandType( + operations_tmpl='azext_storage_blob_preview.vendored_sdks.azure_mgmt_storage.operations#BlobServicesOperations.{}', + client_factory=cf_mgmt_blob_services, + resource_type=CUSTOM_MGMT_STORAGE + ) + + storage_account_custom_type = CliCommandType( + operations_tmpl='azext_storage_blob_preview.operations.account#{}', + client_factory=cf_sa) + + with self.command_group('storage account blob-service-properties', blob_service_mgmt_sdk, + custom_command_type=storage_account_custom_type, + resource_type=CUSTOM_MGMT_STORAGE, min_api='2018-07-01', is_preview=True) as g: + g.show_command('show', 'get_service_properties') + g.generic_update_command('update', + getter_name='get_service_properties', + setter_name='set_service_properties', + custom_func_name='update_blob_service_properties') + + management_policy_sdk = CliCommandType( + operations_tmpl='azext_storage_blob_preview.vendored_sdks.azure_mgmt_storage.operations#ManagementPoliciesOperations.{}', + client_factory=cf_mgmt_policy, + resource_type=ResourceType.MGMT_STORAGE + ) + + management_policy_custom_type = CliCommandType( + operations_tmpl='azure.cli.command_modules.storage.operations.account#{}', + client_factory=cf_mgmt_policy) + + with self.command_group('storage account management-policy', management_policy_sdk, + resource_type=ResourceType.MGMT_STORAGE, min_api='2018-11-01', + custom_command_type=management_policy_custom_type) as g: + g.show_command('show', 'get') + g.custom_command('create', 'create_management_policies') + g.generic_update_command('update', getter_name='get', + setter_name='update_management_policies', + setter_type=management_policy_custom_type) + g.command('delete', 'delete') + + blob_client_sdk = CliCommandType( + operations_tmpl='azext_storage_blob_preview.vendored_sdks.azure_storage_blob._blob_client#BlobClient.{}', + client_factory=cf_blob_client, + resource_type=CUSTOM_DATA_STORAGE_BLOB + ) + + blob_service_sdk = CliCommandType( + operations_tmpl='azext_storage_blob_preview.vendored_sdks.azure_storage_blob._blob_service_client#' + 'BlobServiceClient.{}', + client_factory=cf_blob_service, + resource_type=CUSTOM_DATA_STORAGE_BLOB + ) + + blob_service_custom_sdk = get_custom_sdk('blob', client_factory=cf_blob_service, + resource_type=CUSTOM_DATA_STORAGE_BLOB) + + with self.command_group('storage blob', blob_client_sdk, resource_type=CUSTOM_DATA_STORAGE_BLOB, + min_api='2019-02-02', + custom_command_type=get_custom_sdk('blob', client_factory=cf_blob_client, + resource_type=CUSTOM_DATA_STORAGE_BLOB)) as g: + from azure.cli.command_modules.storage._format import transform_blob_output + from ._transformers import transform_blob_list_output, transform_blob_json_output, transform_metadata,\ + create_boolean_result_output_transformer + g.storage_custom_command_oauth('list', 'list_blobs', client_factory=cf_container_client, + transform=transform_blob_list_output, + table_transformer=transform_blob_output) + + g.storage_custom_command_oauth('copy start', 'copy_blob') + g.storage_command_oauth('delete', 'delete_blob') + g.storage_custom_command_oauth('download', 'download_blob') + g.storage_custom_command_oauth('exists', 'exists', transform=create_boolean_result_output_transformer('exists')) + g.storage_custom_command_oauth('generate-sas', 'generate_sas_blob_uri', + custom_command_type=blob_service_custom_sdk) + g.storage_command_oauth('metadata show', 'get_blob_properties', exception_handler=show_exception_handler, + transform=transform_metadata) + g.storage_command_oauth('metadata update', 'set_blob_metadata') + g.storage_custom_command_oauth('set-tier', 'set_blob_tier_v2') + g.storage_command_oauth('snapshot', 'create_snapshot') # need to refine output + g.storage_custom_command_oauth('show', 'show_blob_v2', transform=transform_blob_json_output, + table_transformer=transform_blob_output, + exception_handler=show_exception_handler) + g.storage_command_oauth('undelete', 'undelete_blob') + g.storage_custom_command_oauth('upload', 'upload_blob') + + with self.command_group('storage blob', blob_service_sdk, resource_type=CUSTOM_DATA_STORAGE_BLOB, + min_api='2019-12-12', + custom_command_type=blob_service_custom_sdk) as g: + g.storage_command_oauth('filter', 'find_blobs_by_tags', is_preview=True) + + blob_lease_client_sdk = CliCommandType( + operations_tmpl='azure.multiapi.storagev2.blob._lease#BlobLeaseClient.{}', + client_factory=cf_blob_lease_client, + resource_type=ResourceType.DATA_STORAGE_BLOB + ) + + with self.command_group('storage blob lease', blob_lease_client_sdk, resource_type=ResourceType.DATA_STORAGE_BLOB, + min_api='2019-02-02', + custom_command_type=get_custom_sdk('blob', client_factory=cf_blob_lease_client, + resource_type=ResourceType.DATA_STORAGE_BLOB)) as g: + g.storage_custom_command_oauth('acquire', 'acquire_blob_lease') + g.storage_command_oauth('break', 'break_lease') + g.storage_command_oauth('change', 'change') + g.storage_custom_command_oauth('renew', 'renew_blob_lease') + g.storage_command_oauth('release', 'release') + + # --auth-mode login need to verify + with self.command_group('storage blob tag', command_type=blob_client_sdk, + custom_command_type=get_custom_sdk('blob', cf_blob_client), + resource_type=CUSTOM_DATA_STORAGE_BLOB, min_api='2019-12-12', is_preview=True) as g: + g.storage_command_oauth('list', 'get_blob_tags') + g.storage_custom_command_oauth('set', 'set_blob_tags') + + with self.command_group('storage container', resource_type=CUSTOM_DATA_STORAGE_BLOB, + min_api='2019-02-02', + custom_command_type=get_custom_sdk('blob', client_factory=cf_container_client, + resource_type=CUSTOM_DATA_STORAGE_BLOB)) as g: + from ._transformers import transform_container_list_output + from azure.cli.command_modules.storage._format import transform_container_list + g.storage_custom_command_oauth('generate-sas', 'generate_sas_container_uri', + custom_command_type=blob_service_custom_sdk) + g.storage_custom_command_oauth('list', 'list_containers', custom_command_type=blob_service_custom_sdk, + transform=transform_container_list_output, + table_transformer=transform_container_list) + g.storage_command_oauth('restore', 'undelete_container', command_type=blob_service_sdk, + min_api='2020-02-10', is_preview=True) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/completers.py b/src/storage-blob-preview/azext_storage_blob_preview/completers.py new file mode 100644 index 00000000000..acc8b2427cb --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/completers.py @@ -0,0 +1,99 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from azure.cli.core.decorators import Completer + +from .util import get_storage_client +from ._validators import validate_client_parameters + + +@Completer +def file_path_completer(cmd, prefix, namespace): + from azure.common import AzureMissingResourceHttpError + + if not namespace.share_name: + return [] + + validate_client_parameters(cmd, namespace) + + t_file_service = cmd.get_models('file#FileService') + client = get_storage_client(cmd.cli_ctx, t_file_service, namespace) + + share_name = namespace.share_name + directory_name = prefix or '' + + try: + items = list(client.list_directories_and_files(share_name, directory_name)) + except AzureMissingResourceHttpError: + directory_name = directory_name.rsplit('/', 1)[0] if '/' in directory_name else '' + items = list(client.list_directories_and_files(share_name, directory_name)) + + path_format = '{}{}' if directory_name.endswith('/') or not directory_name else '{}/{}' + names = [] + for i in items: + name = path_format.format(directory_name, i.name) + if not hasattr(i.properties, 'content_length'): + name = '{}/'.format(name) + names.append(name) + + return sorted(names) + + +@Completer +def dir_path_completer(cmd, prefix, namespace): + from azure.common import AzureMissingResourceHttpError + + if not namespace.share_name: + return [] + + validate_client_parameters(cmd, namespace) + + t_file_service = cmd.get_models('file#FileService') + client = get_storage_client(cmd.cli_ctx, t_file_service, namespace) + + share_name = namespace.share_name + directory_name = prefix or '' + + try: + items = list(client.list_directories_and_files(share_name, directory_name)) + except AzureMissingResourceHttpError: + directory_name = directory_name.rsplit('/', 1)[0] if '/' in directory_name else '' + items = list(client.list_directories_and_files(share_name, directory_name)) + + dir_list = [x for x in items if not hasattr(x.properties, 'content_length')] + path_format = '{}{}/' if directory_name.endswith('/') or not directory_name else '{}/{}/' + names = [] + for d in dir_list: + name = path_format.format(directory_name, d.name) + names.append(name) + + return sorted(names) + + +def get_storage_name_completion_list(service, func, parent=None): + @Completer + def completer(cmd, _, namespace): + validate_client_parameters(cmd, namespace) + client = get_storage_client(cmd.cli_ctx, service, namespace) + if parent: + parent_name = getattr(namespace, parent) + method = getattr(client, func) + items = [x.name for x in method(**{parent: parent_name})] + else: + items = [x.name for x in getattr(client, func)()] + return items + + return completer + + +def get_storage_acl_name_completion_list(service, container_param, func): + @Completer + def completer(cmd, _, namespace): + validate_client_parameters(cmd, namespace) + client = get_storage_client(cmd.cli_ctx, service, namespace) + container_name = getattr(namespace, container_param) + return list(getattr(client, func)(container_name)) + + return completer diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/operations/__init__.py similarity index 100% rename from src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/data/__init__.py rename to src/storage-blob-preview/azext_storage_blob_preview/operations/__init__.py diff --git a/src/storage-blob-preview/azext_storage_blob_preview/operations/account.py b/src/storage-blob-preview/azext_storage_blob_preview/operations/account.py new file mode 100644 index 00000000000..75dc260c239 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/operations/account.py @@ -0,0 +1,60 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +"""Custom operations for storage account commands""" + +import os +from azure.cli.core.util import get_file_json, shell_safe_json_parse + + +def create_management_policies(client, resource_group_name, account_name, policy): + if os.path.exists(policy): + policy = get_file_json(policy) + else: + policy = shell_safe_json_parse(policy) + return client.create_or_update(resource_group_name, account_name, policy=policy) + + +def update_management_policies(client, resource_group_name, account_name, parameters=None): + if parameters: + parameters = parameters.policy + return client.create_or_update(resource_group_name, account_name, policy=parameters) + + +# TODO: support updating other properties besides 'enable_change_feed,delete_retention_policy' +def update_blob_service_properties(cmd, instance, enable_change_feed=None, enable_delete_retention=None, + delete_retention_days=None, enable_restore_policy=None, restore_days=None, + enable_versioning=None, enable_container_delete_retention=None, + container_delete_retention_days=None, enable_last_access_tracking=None): + if enable_change_feed is not None: + instance.change_feed = cmd.get_models('ChangeFeed')(enabled=enable_change_feed) + + if enable_container_delete_retention is not None: + if enable_container_delete_retention is False: + container_delete_retention_days = None + instance.container_delete_retention_policy = cmd.get_models('DeleteRetentionPolicy')( + enabled=enable_container_delete_retention, days=container_delete_retention_days) + + if enable_delete_retention is not None: + if enable_delete_retention is False: + delete_retention_days = None + instance.delete_retention_policy = cmd.get_models('DeleteRetentionPolicy')( + enabled=enable_delete_retention, days=delete_retention_days) + + if enable_restore_policy is not None: + if enable_restore_policy is False: + restore_days = None + instance.restore_policy = cmd.get_models('RestorePolicyProperties')( + enabled=enable_restore_policy, days=restore_days) + + if enable_versioning is not None: + instance.is_versioning_enabled = enable_versioning + + # Update last access time tracking policy + if enable_last_access_tracking is not None: + LastAccessTimeTrackingPolicy = cmd.get_models('LastAccessTimeTrackingPolicy') + instance.last_access_time_tracking_policy = LastAccessTimeTrackingPolicy(enable=enable_last_access_tracking) + + return instance diff --git a/src/storage-blob-preview/azext_storage_blob_preview/operations/blob.py b/src/storage-blob-preview/azext_storage_blob_preview/operations/blob.py new file mode 100644 index 00000000000..7465cddd0c8 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/operations/blob.py @@ -0,0 +1,670 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from __future__ import print_function + +import os +from datetime import datetime + +from azure.cli.core.util import sdk_no_wait +from azure.cli.command_modules.storage.url_quote_util import encode_for_url, make_encoded_file_url_and_params +from azure.cli.command_modules.storage.util import (create_blob_service_from_storage_client, + create_file_share_from_storage_client, + create_short_lived_share_sas, + create_short_lived_container_sas, + filter_none, collect_blobs, collect_blob_objects, collect_files, + mkdir_p, guess_content_type, normalize_blob_file_path, + check_precondition_success) +from knack.log import get_logger +from knack.util import CLIError +from ..profiles import CUSTOM_DATA_STORAGE_BLOB + +logger = get_logger(__name__) + + +def delete_container(client, container_name, fail_not_exist=False, lease_id=None, if_modified_since=None, + if_unmodified_since=None, timeout=None, bypass_immutability_policy=False, + processed_resource_group=None, processed_account_name=None, mgmt_client=None): + if bypass_immutability_policy: + return mgmt_client.blob_containers.delete(processed_resource_group, processed_account_name, container_name) + return client.delete_container( + container_name, fail_not_exist=fail_not_exist, lease_id=lease_id, if_modified_since=if_modified_since, + if_unmodified_since=if_unmodified_since, timeout=timeout) + + +def restore_blob_ranges(cmd, client, resource_group_name, account_name, time_to_restore, blob_ranges=None, + no_wait=False): + + if blob_ranges is None: + BlobRestoreRange = cmd.get_models("BlobRestoreRange") + blob_ranges = [BlobRestoreRange(start_range="", end_range="")] + + return sdk_no_wait(no_wait, client.restore_blob_ranges, resource_group_name=resource_group_name, + account_name=account_name, time_to_restore=time_to_restore, blob_ranges=blob_ranges) + + +def set_blob_tier(client, container_name, blob_name, tier, blob_type='block', timeout=None): + if blob_type == 'block': + return client.set_standard_blob_tier(container_name=container_name, blob_name=blob_name, + standard_blob_tier=tier, timeout=timeout) + if blob_type == 'page': + return client.set_premium_page_blob_tier(container_name=container_name, blob_name=blob_name, + premium_page_blob_tier=tier, timeout=timeout) + raise ValueError('Blob tier is only applicable to block or page blob.') + + +def set_delete_policy(client, enable=None, days_retained=None): + policy = client.get_blob_service_properties().delete_retention_policy + + if enable is not None: + policy.enabled = enable == 'true' + if days_retained is not None: + policy.days = days_retained + + if policy.enabled and not policy.days: + raise CLIError("must specify days-retained") + + client.set_blob_service_properties(delete_retention_policy=policy) + return client.get_blob_service_properties().delete_retention_policy + + +def set_service_properties(client, parameters, delete_retention=None, delete_retention_period=None, + static_website=None, index_document=None, error_document_404_path=None): + # update + kwargs = {} + if hasattr(parameters, 'delete_retention_policy'): + kwargs['delete_retention_policy'] = parameters.delete_retention_policy + if delete_retention is not None: + parameters.delete_retention_policy.enabled = delete_retention + if delete_retention_period is not None: + parameters.delete_retention_policy.days = delete_retention_period + + if hasattr(parameters, 'static_website'): + kwargs['static_website'] = parameters.static_website + elif any(param is not None for param in [static_website, index_document, error_document_404_path]): + raise CLIError('Static websites are only supported for StorageV2 (general-purpose v2) accounts.') + if static_website is not None: + parameters.static_website.enabled = static_website + if index_document is not None: + parameters.static_website.index_document = index_document + if error_document_404_path is not None: + parameters.static_website.error_document_404_path = error_document_404_path + if hasattr(parameters, 'hour_metrics'): + kwargs['hour_metrics'] = parameters.hour_metrics + if hasattr(parameters, 'logging'): + kwargs['logging'] = parameters.logging + if hasattr(parameters, 'minute_metrics'): + kwargs['minute_metrics'] = parameters.minute_metrics + if hasattr(parameters, 'cors'): + kwargs['cors'] = parameters.cors + + # checks + policy = kwargs.get('delete_retention_policy', None) + if policy and policy.enabled and not policy.days: + raise CLIError("must specify days-retained") + + client.set_blob_service_properties(**kwargs) + return client.get_blob_service_properties() + + +def storage_blob_copy_batch(cmd, client, source_client, container_name=None, + destination_path=None, source_container=None, source_share=None, + source_sas=None, pattern=None, dryrun=False): + """Copy a group of blob or files to a blob container.""" + if dryrun: + logger.warning('copy files or blobs to blob container') + logger.warning(' account %s', client.account_name) + logger.warning(' container %s', container_name) + logger.warning(' source %s', source_container or source_share) + logger.warning('source type %s', 'blob' if source_container else 'file') + logger.warning(' pattern %s', pattern) + logger.warning(' operations') + + if source_container: + # copy blobs for blob container + + # if the source client is None, recreate one from the destination client. + source_client = source_client or create_blob_service_from_storage_client(cmd, client) + if not source_sas: + source_sas = create_short_lived_container_sas(cmd, source_client.account_name, source_client.account_key, + source_container) + + # pylint: disable=inconsistent-return-statements + def action_blob_copy(blob_name): + if dryrun: + logger.warning(' - copy blob %s', blob_name) + else: + return _copy_blob_to_blob_container(client, source_client, container_name, destination_path, + source_container, source_sas, blob_name) + + return list(filter_none(action_blob_copy(blob) for blob in collect_blobs(source_client, + source_container, + pattern))) + + if source_share: + # copy blob from file share + + # if the source client is None, recreate one from the destination client. + source_client = source_client or create_file_share_from_storage_client(cmd, client) + + if not source_sas: + source_sas = create_short_lived_share_sas(cmd, source_client.account_name, source_client.account_key, + source_share) + + # pylint: disable=inconsistent-return-statements + def action_file_copy(file_info): + dir_name, file_name = file_info + if dryrun: + logger.warning(' - copy file %s', os.path.join(dir_name, file_name)) + else: + return _copy_file_to_blob_container(client, source_client, container_name, destination_path, + source_share, source_sas, dir_name, file_name) + + return list(filter_none(action_file_copy(file) for file in collect_files(cmd, + source_client, + source_share, + pattern))) + raise ValueError('Fail to find source. Neither blob container or file share is specified') + + +# pylint: disable=unused-argument +def storage_blob_download_batch(client, source, destination, source_container_name, pattern=None, dryrun=False, + progress_callback=None, max_connections=2): + + def _download_blob(blob_service, container, destination_folder, normalized_blob_name, blob_name): + # TODO: try catch IO exception + destination_path = os.path.join(destination_folder, normalized_blob_name) + destination_folder = os.path.dirname(destination_path) + if not os.path.exists(destination_folder): + mkdir_p(destination_folder) + + blob = blob_service.get_blob_to_path(container, blob_name, destination_path, max_connections=max_connections, + progress_callback=progress_callback) + return blob.name + + source_blobs = collect_blobs(client, source_container_name, pattern) + blobs_to_download = {} + for blob_name in source_blobs: + # remove starting path seperator and normalize + normalized_blob_name = normalize_blob_file_path(None, blob_name) + if normalized_blob_name in blobs_to_download: + raise CLIError('Multiple blobs with download path: `{}`. As a solution, use the `--pattern` parameter ' + 'to select for a subset of blobs to download OR utilize the `storage blob download` ' + 'command instead to download individual blobs.'.format(normalized_blob_name)) + blobs_to_download[normalized_blob_name] = blob_name + + if dryrun: + logger.warning('download action: from %s to %s', source, destination) + logger.warning(' pattern %s', pattern) + logger.warning(' container %s', source_container_name) + logger.warning(' total %d', len(source_blobs)) + logger.warning(' operations') + for b in source_blobs: + logger.warning(' - %s', b) + return [] + + # Tell progress reporter to reuse the same hook + if progress_callback: + progress_callback.reuse = True + + results = [] + for index, blob_normed in enumerate(blobs_to_download): + # add blob name and number to progress message + if progress_callback: + progress_callback.message = '{}/{}: "{}"'.format( + index + 1, len(blobs_to_download), blobs_to_download[blob_normed]) + results.append(_download_blob( + client, source_container_name, destination, blob_normed, blobs_to_download[blob_normed])) + + # end progress hook + if progress_callback: + progress_callback.hook.end() + + return results + + +def storage_blob_upload_batch(cmd, client, source, destination, pattern=None, # pylint: disable=too-many-locals + source_files=None, destination_path=None, + destination_container_name=None, blob_type=None, + content_settings=None, metadata=None, validate_content=False, + maxsize_condition=None, max_connections=2, lease_id=None, progress_callback=None, + if_modified_since=None, if_unmodified_since=None, if_match=None, + if_none_match=None, timeout=None, dryrun=False): + def _create_return_result(blob_name, blob_content_settings, upload_result=None): + blob_name = normalize_blob_file_path(destination_path, blob_name) + return { + 'Blob': client.make_blob_url(destination_container_name, blob_name), + 'Type': blob_content_settings.content_type, + 'Last Modified': upload_result.last_modified if upload_result else None, + 'eTag': upload_result.etag if upload_result else None} + + source_files = source_files or [] + t_content_settings = cmd.get_models('blob.models#ContentSettings') + + results = [] + if dryrun: + logger.info('upload action: from %s to %s', source, destination) + logger.info(' pattern %s', pattern) + logger.info(' container %s', destination_container_name) + logger.info(' type %s', blob_type) + logger.info(' total %d', len(source_files)) + results = [] + for src, dst in source_files: + results.append(_create_return_result(dst, guess_content_type(src, content_settings, t_content_settings))) + else: + @check_precondition_success + def _upload_blob(*args, **kwargs): + return upload_blob(*args, **kwargs) + + # Tell progress reporter to reuse the same hook + if progress_callback: + progress_callback.reuse = True + + for index, source_file in enumerate(source_files): + src, dst = source_file + # logger.warning('uploading %s', src) + guessed_content_settings = guess_content_type(src, content_settings, t_content_settings) + + # add blob name and number to progress message + if progress_callback: + progress_callback.message = '{}/{}: "{}"'.format( + index + 1, len(source_files), normalize_blob_file_path(destination_path, dst)) + + include, result = _upload_blob(cmd, client, destination_container_name, + normalize_blob_file_path(destination_path, dst), src, + blob_type=blob_type, content_settings=guessed_content_settings, + metadata=metadata, validate_content=validate_content, + maxsize_condition=maxsize_condition, max_connections=max_connections, + lease_id=lease_id, progress_callback=progress_callback, + if_modified_since=if_modified_since, + if_unmodified_since=if_unmodified_since, if_match=if_match, + if_none_match=if_none_match, timeout=timeout) + if include: + results.append(_create_return_result(dst, guessed_content_settings, result)) + # end progress hook + if progress_callback: + progress_callback.hook.end() + num_failures = len(source_files) - len(results) + if num_failures: + logger.warning('%s of %s files not uploaded due to "Failed Precondition"', num_failures, len(source_files)) + return results + + +def transform_blob_type(cmd, blob_type): + """ + get_blob_types() will get ['block', 'page', 'append'] + transform it to BlobType in track2 + """ + BlobType = cmd.get_models('_models#BlobType', resource_type=CUSTOM_DATA_STORAGE_BLOB) + if blob_type == 'block': + return BlobType.BlockBlob + if blob_type == 'page': + return BlobType.PageBlob + if blob_type == 'append': + return BlobType.AppendBlob + return None + + +def show_blob(cmd, client, container_name, blob_name, snapshot=None, lease_id=None, + if_modified_since=None, if_unmodified_since=None, if_match=None, + if_none_match=None, timeout=None): + blob = client.get_blob_properties( + container_name, blob_name, snapshot=snapshot, lease_id=lease_id, + if_modified_since=if_modified_since, if_unmodified_since=if_unmodified_since, if_match=if_match, + if_none_match=if_none_match, timeout=timeout) + + page_ranges = None + if blob.properties.blob_type == cmd.get_models('blob.models#_BlobTypes').PageBlob: + page_ranges = client.get_page_ranges( + container_name, blob_name, snapshot=snapshot, lease_id=lease_id, if_modified_since=if_modified_since, + if_unmodified_since=if_unmodified_since, if_match=if_match, if_none_match=if_none_match, timeout=timeout) + + blob.properties.page_ranges = page_ranges + + return blob + + +def storage_blob_delete_batch(client, source, source_container_name, pattern=None, lease_id=None, + delete_snapshots=None, if_modified_since=None, if_unmodified_since=None, if_match=None, + if_none_match=None, timeout=None, dryrun=False): + @check_precondition_success + def _delete_blob(blob_name): + delete_blob_args = { + 'container_name': source_container_name, + 'blob_name': blob_name, + 'lease_id': lease_id, + 'delete_snapshots': delete_snapshots, + 'if_modified_since': if_modified_since, + 'if_unmodified_since': if_unmodified_since, + 'if_match': if_match, + 'if_none_match': if_none_match, + 'timeout': timeout + } + return client.delete_blob(**delete_blob_args) + + source_blobs = list(collect_blob_objects(client, source_container_name, pattern)) + + if dryrun: + from datetime import timezone + delete_blobs = [] + if_modified_since_utc = if_modified_since.replace(tzinfo=timezone.utc) if if_modified_since else None + if_unmodified_since_utc = if_unmodified_since.replace(tzinfo=timezone.utc) if if_unmodified_since else None + for blob in source_blobs: + if not if_modified_since or blob[1].properties.last_modified >= if_modified_since_utc: + if not if_unmodified_since or blob[1].properties.last_modified <= if_unmodified_since_utc: + delete_blobs.append(blob[0]) + logger.warning('delete action: from %s', source) + logger.warning(' pattern %s', pattern) + logger.warning(' container %s', source_container_name) + logger.warning(' total %d', len(delete_blobs)) + logger.warning(' operations') + for blob in delete_blobs: + logger.warning(' - %s', blob) + return [] + + results = [result for include, result in (_delete_blob(blob[0]) for blob in source_blobs) if include] + num_failures = len(source_blobs) - len(results) + if num_failures: + logger.warning('%s of %s blobs not deleted due to "Failed Precondition"', num_failures, len(source_blobs)) + + +def generate_container_shared_access_signature(client, container_name, permission=None, + expiry=None, start=None, id=None, ip=None, # pylint: disable=redefined-builtin + protocol=None, cache_control=None, content_disposition=None, + content_encoding=None, content_language=None, + content_type=None, as_user=False): + user_delegation_key = None + if as_user: + user_delegation_key = client.get_user_delegation_key( + _get_datetime_from_string(start) if start else datetime.utcnow(), _get_datetime_from_string(expiry)) + + return client.generate_container_shared_access_signature( + container_name, permission=permission, expiry=expiry, start=start, id=id, ip=ip, + protocol=protocol, cache_control=cache_control, content_disposition=content_disposition, + content_encoding=content_encoding, content_language=content_language, content_type=content_type, + user_delegation_key=user_delegation_key) + + +def create_blob_url(client, container_name, blob_name, protocol=None, snapshot=None): + return client.make_blob_url( + container_name, blob_name, protocol=protocol, snapshot=snapshot, sas_token=client.sas_token) + + +def _copy_blob_to_blob_container(blob_service, source_blob_service, destination_container, destination_path, + source_container, source_sas, source_blob_name): + from azure.common import AzureException + source_blob_url = source_blob_service.make_blob_url(source_container, encode_for_url(source_blob_name), + sas_token=source_sas) + destination_blob_name = normalize_blob_file_path(destination_path, source_blob_name) + try: + blob_service.copy_blob(destination_container, destination_blob_name, source_blob_url) + return blob_service.make_blob_url(destination_container, destination_blob_name) + except AzureException: + error_template = 'Failed to copy blob {} to container {}.' + raise CLIError(error_template.format(source_blob_name, destination_container)) + + +def _copy_file_to_blob_container(blob_service, source_file_service, destination_container, destination_path, + source_share, source_sas, source_file_dir, source_file_name): + from azure.common import AzureException + file_url, source_file_dir, source_file_name = \ + make_encoded_file_url_and_params(source_file_service, source_share, source_file_dir, + source_file_name, source_sas) + + source_path = os.path.join(source_file_dir, source_file_name) if source_file_dir else source_file_name + destination_blob_name = normalize_blob_file_path(destination_path, source_path) + + try: + blob_service.copy_blob(destination_container, destination_blob_name, file_url) + return blob_service.make_blob_url(destination_container, destination_blob_name) + except AzureException as ex: + error_template = 'Failed to copy file {} to container {}. {}' + raise CLIError(error_template.format(source_file_name, destination_container, ex)) + + +def _get_datetime_from_string(dt_str): + accepted_date_formats = ['%Y-%m-%dT%H:%M:%SZ', '%Y-%m-%dT%H:%MZ', + '%Y-%m-%dT%HZ', '%Y-%m-%d'] + for form in accepted_date_formats: + try: + return datetime.strptime(dt_str, form) + except ValueError: + continue + raise ValueError("datetime string '{}' not valid. Valid example: 2000-12-31T12:59:59Z".format(dt_str)) + + +def copy_blob(client, source_url, metadata=None, **kwargs): + if not kwargs['requires_sync']: + kwargs.pop('requires_sync') + return client.start_copy_from_url(source_url=source_url, metadata=metadata, incremental_copy=False, **kwargs) + + +def download_blob(client, file_path, open_mode='wb', progress_callback=None, socket_timeout=None, **kwargs): + if progress_callback: + kwargs['raw_response_hook'] = progress_callback + download_stream = client.download_blob(**kwargs) + with open(file_path, open_mode) as stream: + blob = download_stream.readinto(stream) + return blob + + +def exists(cmd, client, **kwargs): + from azure.core.exceptions import HttpResponseError + try: + client.get_blob_properties(**kwargs) + return True + except HttpResponseError as ex: + from azure.cli.command_modules.storage.track2_util import _dont_fail_on_exist + StorageErrorCode = cmd.get_models("_shared.models#StorageErrorCode", + resource_type=CUSTOM_DATA_STORAGE_BLOB) + return _dont_fail_on_exist(ex, StorageErrorCode.blob_not_found) + + +def generate_sas_blob_uri(client, cmd, container_name, blob_name, permission=None, + expiry=None, start=None, id=None, ip=None, # pylint: disable=redefined-builtin + protocol=None, cache_control=None, content_disposition=None, + content_encoding=None, content_language=None, + content_type=None, full_uri=False, as_user=False, snapshot=None, version_id=None): + generate_blob_sas = cmd.get_models('_shared_access_signature#generate_blob_sas') + + sas_kwargs = {} + if as_user: + sas_kwargs['user_delegation_key'] = client.get_user_delegation_key( + _get_datetime_from_string(start) if start else datetime.utcnow(), + _get_datetime_from_string(expiry)) + else: + sas_kwargs['account_key'] = client.credential.account_key + sas_token = generate_blob_sas(account_name=client.account_name, container_name=container_name, blob_name=blob_name, + snapshot=snapshot, version_id=version_id, permission=permission, + expiry=expiry, start=start, policy_id=id, ip=ip, protocol=protocol, + cache_control=cache_control, content_disposition=content_disposition, + content_encoding=content_encoding, content_language=content_language, + content_type=content_type, **sas_kwargs) + + if full_uri: + t_blob_client = cmd.get_models('_blob_client#BlobClient') + blob_client = t_blob_client(account_url=client.url, container_name=container_name, + blob_name=blob_name, snapshot=snapshot, credential=sas_token) + return blob_client.url + + return sas_token + + +def generate_sas_container_uri(client, cmd, container_name, permission=None, + expiry=None, start=None, id=None, ip=None, # pylint: disable=redefined-builtin + protocol=None, cache_control=None, content_disposition=None, + content_encoding=None, content_language=None, + content_type=None, full_uri=False, as_user=False): + generate_container_sas = cmd.get_models('_shared_access_signature#generate_container_sas') + + sas_kwargs = {} + if as_user: + sas_kwargs['user_delegation_key'] = client.get_user_delegation_key( + _get_datetime_from_string(start) if start else datetime.utcnow(), + _get_datetime_from_string(expiry)) + else: + sas_kwargs['account_key'] = client.credential.account_key + sas_token = generate_container_sas(account_name=client.account_name, container_name=container_name, + permission=permission, expiry=expiry, start=start, policy_id=id, + ip=ip, protocol=protocol, + cache_control=cache_control, content_disposition=content_disposition, + content_encoding=content_encoding, content_language=content_language, + content_type=content_type, **sas_kwargs) + + if full_uri: + t_container_client = cmd.get_models('_container_client#ContainerClient') + container_client = t_container_client(account_url=client.url, container_name=container_name, + credential=sas_token) + return container_client.url + + return sas_token + + +def list_blobs(client, delimiter=None, include=None, marker=None, num_results=None, prefix=None, + show_next_marker=None, **kwargs): + from ..track2_util import list_generator + + if delimiter: + generator = client.walk_blobs(name_starts_with=prefix, include=include, results_per_page=num_results, **kwargs) + else: + generator = client.list_blobs(name_starts_with=prefix, include=include, results_per_page=num_results, **kwargs) + + pages = generator.by_page(continuation_token=marker) # BlobPropertiesPaged + result = list_generator(pages=pages, num_results=num_results) + + if show_next_marker: + next_marker = {"nextMarker": pages.continuation_token} + result.append(next_marker) + else: + if pages.continuation_token: + logger.warning('Next Marker:') + logger.warning(pages.continuation_token) + + return result + + +def list_containers(client, include_metadata=False, include_deleted=False, marker=None, + num_results=None, prefix=None, show_next_marker=None, **kwargs): + from ..track2_util import list_generator + + generator = client.list_containers(name_starts_with=prefix, include_metadata=include_metadata, + include_deleted=include_deleted, results_per_page=num_results, **kwargs) + + pages = generator.by_page(continuation_token=marker) # ContainerPropertiesPaged + result = list_generator(pages=pages, num_results=num_results) + + if show_next_marker: + next_marker = {"nextMarker": pages.continuation_token} + result.append(next_marker) + else: + if pages.continuation_token: + logger.warning('Next Marker:') + logger.warning(pages.continuation_token) + + return result + + +def show_blob_v2(cmd, client, version_id=None, **kwargs): + + blob = client.get_blob_properties(version_id=version_id, **kwargs) + + page_ranges = None + if blob.blob_type == cmd.get_models('_models#BlobType', resource_type=CUSTOM_DATA_STORAGE_BLOB).PageBlob: + page_ranges = client.get_page_ranges(**kwargs) + + blob.page_ranges = page_ranges + + return blob + + +def set_blob_tags(client, tags=None, **kwargs): + client.set_blob_tags(tags=tags, **kwargs) + return client.get_blob_tags() + + +def set_blob_tier_v2(client, blob_type='block', rehydrate_priority=None, **kwargs): + if blob_type == 'block': + return client.set_standard_blob_tier(rehydrate_priority=rehydrate_priority, + **kwargs) + if blob_type == 'page': + return client.set_premium_page_blob_tier(**kwargs) + raise ValueError('Blob tier is only applicable to block or page blob.') + + +def snapshot_blob(client, metadata=None, **kwargs): + client.snapshot = client.create_snapshot(metadata=metadata, **kwargs)['snapshot'] + return client.get_blob_properties() + + +def upload_blob(cmd, client, file_path, container_name=None, blob_name=None, blob_type=None, + metadata=None, validate_content=False, maxsize_condition=None, max_connections=2, lease_id=None, + if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, + timeout=None, progress_callback=None, encryption_scope=None, overwrite=None, **kwargs): + """Upload a blob to a container.""" + + upload_args = { + 'blob_type': transform_blob_type(cmd, blob_type), + 'lease': lease_id, + 'max_concurrency': max_connections + } + + if overwrite is not None: + upload_args['overwrite'] = overwrite + if maxsize_condition: + upload_args['maxsize_condition'] = maxsize_condition + + if cmd.supported_api_version(min_api='2016-05-31'): + upload_args['validate_content'] = validate_content + + if progress_callback: + upload_args['raw_response_hook'] = progress_callback + + check_blob_args = { + 'lease': lease_id, + 'if_modified_since': if_modified_since, + 'if_unmodified_since': if_unmodified_since, + 'if_match': if_match, + 'if_none_match': if_none_match, + 'timeout': timeout + } + + # used to check for the preconditions as upload_append_blob() cannot + if blob_type == 'append': + from azure.core.exceptions import HttpResponseError + if exists(cmd, client, timeout=timeout): + client.get_blob_properties(**check_blob_args) + + # Because the contents of the uploaded file may be too large, it should be passed into the a stream object, + # upload_blob() read file data in batches to avoid OOM problems + count = os.path.getsize(file_path) + with open(file_path, 'rb') as stream: + response = client.upload_blob(data=stream, length=count, metadata=metadata, encryption_scope=encryption_scope, + **upload_args, **kwargs) + + # PageBlobChunkUploader verifies the file when uploading the chunk data, If the contents of the file are + # all null byte("\x00"), the file will not be uploaded, and the response will be none. + # Therefore, the compatibility logic for response is added to keep it consistent with track 1 + if response is None: + return { + "etag": None, + "lastModified": None + } + + from msrest import Serializer + if 'content_md5' in response and response['content_md5'] is not None: + response['content_md5'] = Serializer.serialize_bytearray(response['content_md5']) + if 'content_crc64' in response and response['content_crc64'] is not None: + response['content_crc64'] = Serializer.serialize_bytearray(response['content_crc64']) + return response + + +def acquire_blob_lease(client, lease_duration=-1, **kwargs): + client.acquire(lease_duration=lease_duration, **kwargs) + return client.id + + +def renew_blob_lease(client, **kwargs): + client.renew(**kwargs) + return client.id diff --git a/src/storage-blob-preview/azext_storage_blob_preview/profiles.py b/src/storage-blob-preview/azext_storage_blob_preview/profiles.py new file mode 100644 index 00000000000..b9b7ed10c19 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/profiles.py @@ -0,0 +1,11 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from azure.cli.core.profiles import CustomResourceType + +CUSTOM_DATA_STORAGE_BLOB = CustomResourceType('azext_storage_blob_preview.vendored_sdks.azure_storage_blob', + 'BlobClient') +CUSTOM_MGMT_STORAGE = CustomResourceType('azext_storage_blob_preview.vendored_sdks.azure_mgmt_storage', + 'StorageManagementClient') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/sdkutil.py b/src/storage-blob-preview/azext_storage_blob_preview/sdkutil.py new file mode 100644 index 00000000000..bec472ed32e --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/sdkutil.py @@ -0,0 +1,91 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +"""Assist the command module to get correct type from SDK based on current API version""" + +from azure.cli.core.profiles import get_sdk, supported_api_version, ResourceType +from azure.cli.core.profiles._shared import APIVersionException + + +def cosmosdb_table_exists(cli_ctx): + try: + return supported_api_version(cli_ctx, ResourceType.DATA_COSMOS_TABLE, min_api='2017-04-17') + except APIVersionException: + return False + + +def get_table_data_type(cli_ctx, module_name, *type_names): + if cosmosdb_table_exists(cli_ctx): + return get_sdk(cli_ctx, ResourceType.DATA_COSMOS_TABLE, *type_names, mod=module_name) + + return get_sdk(cli_ctx, ResourceType.DATA_STORAGE, *type_names, mod=module_name) + + +def get_blob_service_by_type(cli_ctx, blob_type): + type_to_service = { + 'block': lambda ctx: get_sdk(ctx, ResourceType.DATA_STORAGE, 'BlockBlobService', mod='blob'), + 'page': lambda ctx: get_sdk(ctx, ResourceType.DATA_STORAGE, 'PageBlobService', mod='blob'), + 'append': lambda ctx: get_sdk(ctx, ResourceType.DATA_STORAGE, 'AppendBlobService', mod='blob') + } + + try: + return type_to_service[blob_type](cli_ctx) + except KeyError: + return None + + +def get_blob_types(): + return 'block', 'page', 'append' + + +def get_blob_tier_names(cli_ctx, model, **kwargs): + t_blob_tier_model = get_sdk(cli_ctx, attr_args=model, **kwargs) + return [v for v in dir(t_blob_tier_model) if not v.startswith('_')] + + +def get_delete_blob_snapshot_type_names(): + return 'include', 'only' + + +def get_delete_blob_snapshot_type(cli_ctx, name): + t_delete_snapshot = get_sdk(cli_ctx, ResourceType.DATA_STORAGE, 'DeleteSnapshot', mod='blob') + return {'include': t_delete_snapshot.Include, 'only': t_delete_snapshot.Only}[name] + + +def get_delete_file_snapshot_type_names(): + return ['include'] + + +def get_delete_file_snapshot_type(cli_ctx, name): + t_delete_snapshot = get_sdk(cli_ctx, ResourceType.DATA_STORAGE, 'DeleteSnapshot', mod='file.models') + return {'include': t_delete_snapshot.Include}[name] + + +def get_container_access_type_names(): + return 'off', 'blob', 'container' + + +def get_container_access_type(cli_ctx, name): + if name == 'off': + return None + if name == 'blob': + return get_sdk(cli_ctx, ResourceType.DATA_STORAGE, 'PublicAccess', mod='blob.models').Blob + if name == 'container': + return get_sdk(cli_ctx, ResourceType.DATA_STORAGE, 'PublicAccess', mod='blob.models').Container + raise KeyError + + +def get_fs_access_type_names(): + return 'off', 'file', 'filesystem' + + +def get_fs_access_type(cli_ctx, name): + if name == 'off': + return None + if name == 'file': + return get_sdk(cli_ctx, ResourceType.DATA_STORAGE_FILEDATALAKE, 'PublicAccess', mod='_models').File + if name == 'filesystem': + return get_sdk(cli_ctx, ResourceType.DATA_STORAGE_FILEDATALAKE, 'PublicAccess', mod='_models').FileSystem + raise KeyError diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/tests/__init__.py new file mode 100644 index 00000000000..99c0f28cd71 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/__init__.py @@ -0,0 +1,5 @@ +# ----------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# ----------------------------------------------------------------------------- diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/__init__.py new file mode 100644 index 00000000000..99c0f28cd71 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/__init__.py @@ -0,0 +1,5 @@ +# ----------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# ----------------------------------------------------------------------------- diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/mgmt_policy.json b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/mgmt_policy.json new file mode 100644 index 00000000000..ba986735b9d --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/mgmt_policy.json @@ -0,0 +1,38 @@ +{ + "rules": [ + { + "enabled": true, + "name": "olcmtest", + "type": "Lifecycle", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] + }, + "actions": { + "baseBlob": { + "tierToCool": { + "daysAfterLastAccessTimeGreaterThan": 30 + }, + "tierToArchive": { + "daysAfterLastAccessTimeGreaterThan": 90 + }, + "delete": { + "daysAfterLastAccessTimeGreaterThan": 1000 + }, + "enableAutoTierToHotFromCool": true + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 30 + } + } + } + } + } + ] +} \ No newline at end of file diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_change_feed.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_change_feed.yaml new file mode 100644 index 00000000000..0000f22329f --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_change_feed.yaml @@ -0,0 +1,366 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-change-feed -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '443' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:24 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "changeFeed": {"enabled": true}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '121' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-change-feed -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"changeFeed":{"enabled":true},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '425' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:25 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1197' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-change-feed -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"changeFeed":{"enabled":true},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '473' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "changeFeed": {"enabled": false}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '122' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-change-feed -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"changeFeed":{"enabled":false},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '426' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:27 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-change-feed -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"changeFeed":{"enabled":false},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '474' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:28 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "changeFeed": {"enabled": true}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '121' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-change-feed -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"changeFeed":{"enabled":true},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '425' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:29 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties show + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"changeFeed":{"enabled":true},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '473' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:30 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_container_delete_retention_policy.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_container_delete_retention_policy.yaml new file mode 100644 index 00000000000..a0195da7611 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_container_delete_retention_policy.yaml @@ -0,0 +1,422 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-container-delete-retention --container-delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '443' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:37:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "containerDeleteRetentionPolicy": {"enabled": true, "days": 1}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '152' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-container-delete-retention --container-delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"containerDeleteRetentionPolicy":{"enabled":true,"days":1},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '454' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:37:03 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-container-delete-retention --container-delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"containerDeleteRetentionPolicy":{"enabled":true,"days":1},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '502' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:37:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "containerDeleteRetentionPolicy": {"enabled": true, "days": 100}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '154' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-container-delete-retention --container-delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"containerDeleteRetentionPolicy":{"enabled":true,"days":100},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '456' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:37:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1197' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-container-delete-retention --container-delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"containerDeleteRetentionPolicy":{"enabled":true,"days":100},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '504' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:37:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "containerDeleteRetentionPolicy": {"enabled": true, "days": 365}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '154' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-container-delete-retention --container-delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"containerDeleteRetentionPolicy":{"enabled":true,"days":365},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '456' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:37:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1197' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-container-delete-retention -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"containerDeleteRetentionPolicy":{"enabled":true,"days":365},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '504' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:37:10 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "containerDeleteRetentionPolicy": {"enabled": false}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '142' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-container-delete-retention -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"containerDeleteRetentionPolicy":{"enabled":false},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '446' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:37:12 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1197' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_delete_retention_policy.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_delete_retention_policy.yaml new file mode 100644 index 00000000000..c7f520b7f1a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_delete_retention_policy.yaml @@ -0,0 +1,422 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-delete-retention --delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '443' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + true, "days": 1}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '98' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-delete-retention --delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":true,"days":1}}}' + headers: + cache-control: + - no-cache + content-length: + - '403' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:27 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-delete-retention --delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":true,"days":1}}}' + headers: + cache-control: + - no-cache + content-length: + - '451' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:28 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + true, "days": 100}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '100' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-delete-retention --delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":true,"days":100}}}' + headers: + cache-control: + - no-cache + content-length: + - '405' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:29 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1196' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-delete-retention --delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":true,"days":100}}}' + headers: + cache-control: + - no-cache + content-length: + - '453' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:30 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + true, "days": 365}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '100' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-delete-retention --delete-retention-days -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":true,"days":365}}}' + headers: + cache-control: + - no-cache + content-length: + - '405' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:30 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1196' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-delete-retention -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":true,"days":365}}}' + headers: + cache-control: + - no-cache + content-length: + - '453' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '88' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-delete-retention -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_storage_account_update_delete_retention_policy000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '395' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:33 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1198' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_last_access.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_last_access.yaml new file mode 100644 index 00000000000..21bca535a8a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_last_access.yaml @@ -0,0 +1,415 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-last-access-tracking -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '443' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 09:54:58 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "lastAccessTimeTrackingPolicy": {"enable": true}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '138' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-last-access-tracking -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"lastAccessTimeTrackingPolicy":{"enable":true,"name":"AccessTimeTracking","trackingGranularityInDays":1,"blobType":["blockBlob"]},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '525' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 09:55:00 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1199' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties show + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"lastAccessTimeTrackingPolicy":{"enable":true,"name":"AccessTimeTracking","trackingGranularityInDays":1,"blobType":["blockBlob"]},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '573' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 09:55:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-last-access-tracking -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"lastAccessTimeTrackingPolicy":{"enable":true,"name":"AccessTimeTracking","trackingGranularityInDays":1,"blobType":["blockBlob"]},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '573' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 09:55:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "lastAccessTimeTrackingPolicy": {"enable": false}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '139' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-last-access-tracking -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '395' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 09:55:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-last-access-tracking -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '443' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 09:55:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "lastAccessTimeTrackingPolicy": {"enable": true}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '138' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-last-access-tracking -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"lastAccessTimeTrackingPolicy":{"enable":true,"name":"AccessTimeTracking","trackingGranularityInDays":1,"blobType":["blockBlob"]},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '525' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 09:55:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1199' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties show + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"lastAccessTimeTrackingPolicy":{"enable":true,"name":"AccessTimeTracking","trackingGranularityInDays":1,"blobType":["blockBlob"]},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '573' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 09:55:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_versioning.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_versioning.yaml new file mode 100644 index 00000000000..ead2676bdc2 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_account_update_versioning.yaml @@ -0,0 +1,366 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-versioning -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '443' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "isVersioningEnabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '117' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-versioning -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false},"isVersioningEnabled":true}}' + headers: + cache-control: + - no-cache + content-length: + - '422' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:27 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-versioning -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false},"isVersioningEnabled":true}}' + headers: + cache-control: + - no-cache + content-length: + - '470' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:28 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "isVersioningEnabled": false}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '118' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-versioning -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false},"isVersioningEnabled":false}}' + headers: + cache-control: + - no-cache + content-length: + - '423' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:29 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1196' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --enable-versioning -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false},"isVersioningEnabled":false}}' + headers: + cache-control: + - no-cache + content-length: + - '471' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:30 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "isVersioningEnabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '117' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --enable-versioning -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false},"isVersioningEnabled":true}}' + headers: + cache-control: + - no-cache + content-length: + - '422' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:31 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1196' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties show + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_sa_versioning000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false},"isVersioningEnabled":true}}' + headers: + cache-control: + - no-cache + content-length: + - '470' + content-type: + - application/json + date: + - Wed, 16 Sep 2020 08:28:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_append_blob_upload_oauth.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_append_blob_upload_oauth.yaml new file mode 100644 index 00000000000..f47a75e320e --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_append_blob_upload_oauth.yaml @@ -0,0 +1,903 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account keys list + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g --query -o + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2019-06-01 + response: + body: + string: '{"keys":[{"keyName":"key1","value":"veryFakedStorageAccountKey==","permissions":"FULL"},{"keyName":"key2","value":"veryFakedStorageAccountKey==","permissions":"FULL"}]}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 09:50:39 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-resource-requests: + - '11998' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.7; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 09:50:40 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:40 GMT + etag: + - '"0x8D85AEF23B5429D"' + last-modified: + - Thu, 17 Sep 2020 09:50:41 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:42 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + date: + - Thu, 17 Sep 2020 09:50:45 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-error-code: + - BlobNotFound + x-ms-version: + - '2020-02-10' + status: + code: 404 + message: The specified blob does not exist. +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004?comp=appendblock + response: + body: + string: "\uFEFFBlobNotFoundThe + specified blob does not exist.\nRequestId:c7880bcd-801e-0044-3ad8-8c020d000000\nTime:2020-09-17T09:50:46.5043199Z" + headers: + content-length: + - '215' + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:50:45 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - BlobNotFound + x-ms-version: + - '2020-02-10' + status: + code: 404 + message: The specified blob does not exist. +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - AppendBlob + x-ms-date: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:46 GMT + etag: + - '"0x8D85AEF26CE0668"' + last-modified: + - Thu, 17 Sep 2020 09:50:46 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004?comp=appendblock + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:46 GMT + etag: + - '"0x8D85AEF26F56BA5"' + last-modified: + - Thu, 17 Sep 2020 09:50:47 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-append-offset: + - '0' + x-ms-blob-committed-block-count: + - '1' + x-ms-content-crc64: + - iknlm7CyG2k= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:47 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '1024' + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:47 GMT + etag: + - '"0x8D85AEF26F56BA5"' + last-modified: + - Thu, 17 Sep 2020 09:50:47 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: + - '1' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:49 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '1024' + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:50 GMT + etag: + - '"0x8D85AEF26F56BA5"' + last-modified: + - Thu, 17 Sep 2020 09:50:47 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: + - '1' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:50 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '1024' + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:50 GMT + etag: + - '"0x8D85AEF26F56BA5"' + last-modified: + - Thu, 17 Sep 2020 09:50:47 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: + - '1' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:51 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004?comp=appendblock + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:51 GMT + etag: + - '"0x8D85AEF2989FAF0"' + last-modified: + - Thu, 17 Sep 2020 09:50:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-append-offset: + - '1024' + x-ms-blob-committed-block-count: + - '2' + x-ms-content-crc64: + - iknlm7CyG2k= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:52 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '2048' + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:52 GMT + etag: + - '"0x8D85AEF2989FAF0"' + last-modified: + - Thu, 17 Sep 2020 09:50:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: + - '2' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:53 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '2048' + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:54 GMT + etag: + - '"0x8D85AEF2989FAF0"' + last-modified: + - Thu, 17 Sep 2020 09:50:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: + - '2' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:54 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '2048' + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:54 GMT + etag: + - '"0x8D85AEF2989FAF0"' + last-modified: + - Thu, 17 Sep 2020 09:50:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: + - '2' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-condition-maxsize: + - '1000' + x-ms-date: + - Thu, 17 Sep 2020 09:50:54 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004?comp=appendblock + response: + body: + string: "\uFEFFMaxBlobSizeConditionNotMetThe + max blob size condition specified was not met.\nRequestId:4032042e-301e-0030-2ed8-8c844b000000\nTime:2020-09-17T09:50:55.1321098Z" + headers: + content-length: + - '245' + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:50:55 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - MaxBlobSizeConditionNotMet + x-ms-version: + - '2020-02-10' + status: + code: 412 + message: The max blob size condition specified was not met. +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:55 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '2048' + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:56 GMT + etag: + - '"0x8D85AEF2989FAF0"' + last-modified: + - Thu, 17 Sep 2020 09:50:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: + - '2' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:56 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '2048' + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:56 GMT + etag: + - '"0x8D85AEF2989FAF0"' + last-modified: + - Thu, 17 Sep 2020 09:50:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: + - '2' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - AppendBlob + x-ms-date: + - Thu, 17 Sep 2020 09:50:56 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:56 GMT + etag: + - '"0x8D85AEF2CFBCB72"' + last-modified: + - Thu, 17 Sep 2020 09:50:57 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:57 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004?comp=appendblock + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:56 GMT + etag: + - '"0x8D85AEF2D23CD05"' + last-modified: + - Thu, 17 Sep 2020 09:50:57 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-append-offset: + - '0' + x-ms-blob-committed-block-count: + - '1' + x-ms-content-crc64: + - iknlm7CyG2k= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:57 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '1024' + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:58 GMT + etag: + - '"0x8D85AEF2D23CD05"' + last-modified: + - Thu, 17 Sep 2020 09:50:57 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-committed-block-count: + - '1' + x-ms-blob-type: + - AppendBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:46 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_list_scenarios.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_list_scenarios.yaml new file mode 100644 index 00000000000..c9ac190046a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_list_scenarios.yaml @@ -0,0 +1,708 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account keys list + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g --query -o + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/storage000002/listKeys?api-version=2019-06-01 + response: + body: + string: '{"keys":[{"keyName":"key1","value":"veryFakedStorageAccountKey==","permissions":"FULL"},{"keyName":"key2","value":"veryFakedStorageAccountKey==","permissions":"FULL"}]}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 09:57:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-resource-requests: + - '11999' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.7; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 09:57:41 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://storage000002.blob.core.windows.net/con000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:57:43 GMT + etag: + - '"0x8D85AF01FA4BD20"' + last-modified: + - Thu, 17 Sep 2020 09:57:44 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '131072' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 17 Sep 2020 09:57:44 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://storage000002.blob.core.windows.net/con000003/dir/blob000004 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + date: + - Thu, 17 Sep 2020 09:57:46 GMT + etag: + - '"0x8D85AF0213527F8"' + last-modified: + - Thu, 17 Sep 2020 09:57:46 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - UNjdat8Fk3M= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:57:47 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://storage000002.blob.core.windows.net/con000003/dir/blob000004?comp=snapshot + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:57:47 GMT + etag: + - '"0x8D85AF0213527F8"' + last-modified: + - Thu, 17 Sep 2020 09:57:46 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'false' + x-ms-snapshot: + - '2020-09-17T09:57:48.5724163Z' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:57:48 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://storage000002.blob.core.windows.net/con000003?maxresults=5000&include=snapshots&restype=container&comp=list + response: + body: + string: "\uFEFF5000dir/blob0000042020-09-17T09:57:48.5724163ZThu, + 17 Sep 2020 09:57:46 GMTThu, 17 Sep 2020 09:57:46 + GMT0x8D85AF0213527F8131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottruetruedir/blob000004Thu, + 17 Sep 2020 09:57:46 GMTThu, 17 Sep 2020 09:57:46 + GMT0x8D85AF0213527F8131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:57:49 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:57:50 GMT + x-ms-meta-test: + - '1' + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://storage000002.blob.core.windows.net/con000003/dir/blob000004?comp=metadata + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:57:51 GMT + etag: + - '"0x8D85AF024331E92"' + last-modified: + - Thu, 17 Sep 2020 09:57:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:57:52 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://storage000002.blob.core.windows.net/con000003/dir/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:57:52 GMT + etag: + - '"0x8D85AF024331E92"' + last-modified: + - Thu, 17 Sep 2020 09:57:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Hot + x-ms-access-tier-inferred: + - 'true' + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:57:46 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-meta-test: + - '1' + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:57:53 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://storage000002.blob.core.windows.net/con000003?maxresults=5000&include=metadata&restype=container&comp=list + response: + body: + string: "\uFEFF5000dir/blob000004Thu, + 17 Sep 2020 09:57:46 GMTThu, 17 Sep 2020 09:57:51 + GMT0x8D85AF024331E92131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletrue1" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:57:54 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '131072' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 17 Sep 2020 09:57:55 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://storage000002.blob.core.windows.net/con000003/dir/blob000005 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + date: + - Thu, 17 Sep 2020 09:57:57 GMT + etag: + - '"0x8D85AF027A921C0"' + last-modified: + - Thu, 17 Sep 2020 09:57:57 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - UNjdat8Fk3M= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:57:58 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://storage000002.blob.core.windows.net/con000003?maxresults=5000&restype=container&comp=list + response: + body: + string: "\uFEFF5000dir/blob000004Thu, + 17 Sep 2020 09:57:46 GMTThu, 17 Sep 2020 09:57:51 + GMT0x8D85AF024331E92131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletruedir/blob000005Thu, + 17 Sep 2020 09:57:57 GMTThu, 17 Sep 2020 09:57:57 + GMT0x8D85AF027A921C0131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:57:58 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:57:59 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://storage000002.blob.core.windows.net/con000003?maxresults=1&restype=container&comp=list + response: + body: + string: "\uFEFF1dir/blob000004Thu, + 17 Sep 2020 09:57:46 GMTThu, 17 Sep 2020 09:57:51 + GMT0x8D85AF024331E92131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletrue2!96!MDAwMDI4IWRpci9ibG9idGJ6eGk0ZHNjZmlneWV0ZWh3c3ohMDAwMDI4ITk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OVoh" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:58:00 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:58:01 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://storage000002.blob.core.windows.net/con000003?maxresults=1&restype=container&comp=list + response: + body: + string: "\uFEFF1dir/blob000004Thu, + 17 Sep 2020 09:57:46 GMTThu, 17 Sep 2020 09:57:51 + GMT0x8D85AF024331E92131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletrue2!96!MDAwMDI4IWRpci9ibG9idGJ6eGk0ZHNjZmlneWV0ZWh3c3ohMDAwMDI4ITk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OVoh" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:58:02 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:58:03 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://storage000002.blob.core.windows.net/con000003?marker=2%2196%21MDAwMDI4IWRpci9ibG9idGJ6eGk0ZHNjZmlneWV0ZWh3c3ohMDAwMDI4ITk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OVoh&maxresults=5000&restype=container&comp=list + response: + body: + string: "\uFEFF2!96!MDAwMDI4IWRpci9ibG9idGJ6eGk0ZHNjZmlneWV0ZWh3c3ohMDAwMDI4ITk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OVoh5000dir/blob000005Thu, + 17 Sep 2020 09:57:57 GMTThu, 17 Sep 2020 09:57:57 + GMT0x8D85AF027A921C0131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:58:04 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:58:04 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://storage000002.blob.core.windows.net/con000003?prefix=dir%2F&maxresults=5000&restype=container&comp=list + response: + body: + string: "\uFEFFdir/5000dir/blob000004Thu, + 17 Sep 2020 09:57:46 GMTThu, 17 Sep 2020 09:57:51 + GMT0x8D85AF024331E92131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletruedir/blob000005Thu, + 17 Sep 2020 09:57:57 GMTThu, 17 Sep 2020 09:57:57 + GMT0x8D85AF027A921C0131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:58:05 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:58:06 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://storage000002.blob.core.windows.net/con000003?delimiter=%2F&maxresults=5000&restype=container&comp=list + response: + body: + string: "\uFEFF5000/dir/" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:58:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:58:08 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://storage000002-secondary.blob.core.windows.net/con000003?maxresults=5000&restype=container&comp=list + response: + body: + string: "\uFEFF5000dir/blob000004Thu, + 17 Sep 2020 09:57:46 GMTThu, 17 Sep 2020 09:57:51 + GMT0x8D85AF024331E92131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletruedir/blob000005Thu, + 17 Sep 2020 09:57:57 GMTThu, 17 Sep 2020 09:57:57 + GMT0x8D85AF027A921C0131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:58:10 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_sas_oauth.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_sas_oauth.yaml new file mode 100644 index 00000000000..5bdf61a7b1f --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_sas_oauth.yaml @@ -0,0 +1,319 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account keys list + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g --query -o + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.11.0 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2019-06-01 + response: + body: + string: '{"keys":[{"keyName":"key1","value":"veryFakedStorageAccountKey==","permissions":"FULL"},{"keyName":"key2","value":"veryFakedStorageAccountKey==","permissions":"FULL"}]}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json + date: + - Mon, 31 Aug 2020 02:37:24 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-resource-requests: + - '11999' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.0 + x-ms-date: + - Mon, 31 Aug 2020 02:37:25 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Mon, 31 Aug 2020 02:37:27 GMT + etag: + - '"0x8D84D56CD41CCBD"' + last-modified: + - Mon, 31 Aug 2020 02:37:27 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: ' + + 2020-08-31T02:37:28Z2020-08-31T03:37:00Z' + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '130' + Content-Type: + - application/xml; charset=utf-8 + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Mon, 31 Aug 2020 02:37:28 GMT + x-ms-version: + - '2019-12-12' + method: POST + uri: https://clitest000002.blob.core.windows.net/?restype=service&comp=userdelegationkey + response: + body: + string: "\uFEFF21cd756e-e290-4a26-9547-93e8cc1a892354826b22-38d6-4fb2-bad9-b7b93a3e9c5a2020-08-31T02:37:28Z2020-08-31T03:37:00Zb2019-12-12zTyeeJg+Bn930f3CLqLaNtA6xiRm7SphyXCBeyDR+tE=" + headers: + content-type: + - application/xml + date: + - Mon, 31 Aug 2020 02:37:29 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '131072' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Mon, 31 Aug 2020 02:37:30 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004?se=2020-08-31T03%3A37Z&sp=rwdl&spr=https&sv=2019-12-12&sr=c&skoid=21cd756e-e290-4a26-9547-93e8cc1a8923&sktid=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a&skt=2020-08-31T02%3A37%3A28Z&ske=2020-08-31T03%3A37%3A00Z&sks=b&skv=2019-12-12&sig=rxNhyBzqNQoEZBGmL0c0%2BZRmpRNCHX9u%2F0HRdV8CPsU%3D + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + date: + - Mon, 31 Aug 2020 02:37:32 GMT + etag: + - '"0x8D84D56D0177BB7"' + last-modified: + - Mon, 31 Aug 2020 02:37:32 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - UNjdat8Fk3M= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 201 + message: Created +- request: + body: ' + + 2020-08-31T02:37:33Z2020-08-31T03:37:00Z' + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '130' + Content-Type: + - application/xml; charset=utf-8 + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Mon, 31 Aug 2020 02:37:33 GMT + x-ms-version: + - '2019-12-12' + method: POST + uri: https://clitest000002.blob.core.windows.net/?restype=service&comp=userdelegationkey + response: + body: + string: "\uFEFF21cd756e-e290-4a26-9547-93e8cc1a892354826b22-38d6-4fb2-bad9-b7b93a3e9c5a2020-08-31T02:37:33Z2020-08-31T03:37:00Zb2019-12-12nvNlqo2osOPJ4GFwHPtdjA5SRml6IRaZ/76vptFz3LE=" + headers: + content-type: + - application/xml + date: + - Mon, 31 Aug 2020 02:37:34 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '131072' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Mon, 31 Aug 2020 02:37:34 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004?se=2020-08-31T03%3A37Z&sp=racwd&spr=https&sv=2019-12-12&sr=b&skoid=21cd756e-e290-4a26-9547-93e8cc1a8923&sktid=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a&skt=2020-08-31T02%3A37%3A33Z&ske=2020-08-31T03%3A37%3A00Z&sks=b&skv=2019-12-12&sig=tQv6cAV5QimaqGmmL39fnp6vLcIYUGDnsy0qFkgLM9o%3D + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + date: + - Mon, 31 Aug 2020 02:37:36 GMT + etag: + - '"0x8D84D56D236C7E6"' + last-modified: + - Mon, 31 Aug 2020 02:37:36 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - UNjdat8Fk3M= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Mon, 31 Aug 2020 02:37:36 GMT + x-ms-version: + - '2019-12-12' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004?se=2020-08-31T03%3A37Z&sp=racwd&spr=https&sv=2019-12-12&sr=b&skoid=21cd756e-e290-4a26-9547-93e8cc1a8923&sktid=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a&skt=2020-08-31T02%3A37%3A33Z&ske=2020-08-31T03%3A37%3A00Z&sks=b&skv=2019-12-12&sig=tQv6cAV5QimaqGmmL39fnp6vLcIYUGDnsy0qFkgLM9o%3D + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Mon, 31 Aug 2020 02:37:37 GMT + etag: + - '"0x8D84D56D236C7E6"' + last-modified: + - Mon, 31 Aug 2020 02:37:36 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Mon, 31 Aug 2020 02:37:32 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_show_oauth.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_show_oauth.yaml new file mode 100644 index 00000000000..800c6178248 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_show_oauth.yaml @@ -0,0 +1,745 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account keys list + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g --query -o + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2019-06-01 + response: + body: + string: '{"keys":[{"keyName":"key1","value":"veryFakedStorageAccountKey==","permissions":"FULL"},{"keyName":"key2","value":"veryFakedStorageAccountKey==","permissions":"FULL"}]}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 09:50:36 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-resource-requests: + - '11999' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.7; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 09:50:37 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:39 GMT + etag: + - '"0x8D85AEF22E8FB84"' + last-modified: + - Thu, 17 Sep 2020 09:50:40 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '131072' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 17 Sep 2020 09:50:40 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + date: + - Thu, 17 Sep 2020 09:50:44 GMT + etag: + - '"0x8D85AEF25C590DC"' + last-modified: + - Thu, 17 Sep 2020 09:50:45 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - UNjdat8Fk3M= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:45 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:46 GMT + etag: + - '"0x8D85AEF25C590DC"' + last-modified: + - Thu, 17 Sep 2020 09:50:45 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:45 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:47 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:48 GMT + etag: + - '"0x8D85AEF25C590DC"' + last-modified: + - Thu, 17 Sep 2020 09:50:45 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:45 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-content-length: + - '131072' + x-ms-blob-type: + - PageBlob + x-ms-date: + - Thu, 17 Sep 2020 09:50:49 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/page000005 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:50 GMT + etag: + - '"0x8D85AEF29275AE8"' + last-modified: + - Thu, 17 Sep 2020 09:50:50 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:51 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/page000005 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:51 GMT + etag: + - '"0x8D85AEF29275AE8"' + last-modified: + - Thu, 17 Sep 2020 09:50:50 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-sequence-number: + - '0' + x-ms-blob-type: + - PageBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:50 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:52 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/cont000003/page000005?comp=pagelist + response: + body: + string: "\uFEFF" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:50:51 GMT + etag: + - '"0x8D85AEF29275AE8"' + last-modified: + - Thu, 17 Sep 2020 09:50:50 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-blob-content-length: + - '131072' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:52 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004?comp=snapshot + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:52 GMT + etag: + - '"0x8D85AEF25C590DC"' + last-modified: + - Thu, 17 Sep 2020 09:50:45 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'false' + x-ms-snapshot: + - '2020-09-17T09:50:53.8956487Z' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:54 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:55 GMT + etag: + - '"0x8D85AEF25C590DC"' + last-modified: + - Thu, 17 Sep 2020 09:50:45 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:45 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + If-Match: + - '0x8D85AEF25C590DC' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:55 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:56 GMT + etag: + - '"0x8D85AEF25C590DC"' + last-modified: + - Thu, 17 Sep 2020 09:50:45 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:45 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + If-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:57 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:57 GMT + etag: + - '"0x8D85AEF25C590DC"' + last-modified: + - Thu, 17 Sep 2020 09:50:45 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:45 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + If-None-Match: + - '0x8D85AEF25C590DC' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:58 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:59 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-error-code: + - ConditionNotMet + x-ms-version: + - '2020-02-10' + status: + code: 304 + message: The condition specified using HTTP conditional header(s) is not met. +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:51:00 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004 + response: + body: + string: '' + headers: + date: + - Thu, 17 Sep 2020 09:51:00 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-error-code: + - UnsatisfiableCondition + x-ms-version: + - '2020-02-10' + status: + code: 400 + message: The request includes an unsatisfiable condition for this operation. +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + If-Unmodified-Since: + - Mon, 29 Jun 2020 06:32:00 GMT + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:51:01 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004 + response: + body: + string: '' + headers: + date: + - Thu, 17 Sep 2020 09:51:01 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-error-code: + - ConditionNotMet + x-ms-version: + - '2020-02-10' + status: + code: 412 + message: The condition specified using HTTP conditional header(s) is not met. +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + If-Modified-Since: + - Mon, 29 Jun 2020 06:32:00 GMT + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:51:02 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/block000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:51:03 GMT + etag: + - '"0x8D85AEF25C590DC"' + last-modified: + - Thu, 17 Sep 2020 09:50:45 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:45 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_tags_scenario.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_tags_scenario.yaml new file mode 100644 index 00000000000..2c7fcc221ea --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_tags_scenario.yaml @@ -0,0 +1,1578 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account keys list + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g --query -o + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.11 msrest_azure/0.6.3 + azure-mgmt-storage/11.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/blobtag000002/listKeys?api-version=2019-06-01 + response: + body: + string: '{"keys":[{"keyName":"key1","value":"veryFakedStorageAccountKey==","permissions":"FULL"},{"keyName":"key2","value":"veryFakedStorageAccountKey==","permissions":"FULL"}]}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 14:32:13 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-resource-requests: + - '11999' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 14:32:14 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:32:15 GMT + etag: + - '"0x8D85B1679898E1F"' + last-modified: + - Thu, 17 Sep 2020 14:32:15 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 14:32:16 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont2000004?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:32:17 GMT + etag: + - '"0x8D85B167A55C21D"' + last-modified: + - Thu, 17 Sep 2020 14:32:17 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '131072' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 17 Sep 2020 14:32:17 GMT + x-ms-tags: + - date=2020-01-01&category=test + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + date: + - Thu, 17 Sep 2020 14:32:19 GMT + etag: + - '"0x8D85B167BBE58CE"' + last-modified: + - Thu, 17 Sep 2020 14:32:19 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - UNjdat8Fk3M= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:32:49 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont1000003?maxresults=5000&include=tags&restype=container&comp=list + response: + body: + string: "\uFEFF5000blob000005Thu, + 17 Sep 2020 14:32:19 GMTThu, 17 Sep 2020 14:32:19 + GMT0x8D85B167BBE58CE131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletrue2categorytestdate2020-01-01" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:32:50 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:32:51 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=tags + response: + body: + string: "\uFEFF\ncategorytestdate2020-01-01" + headers: + content-length: + - '172' + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:32:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-copy-source: + - https://blobtag6w6352qmk5hq3rsdq.blob.core.windows.net/cont17h4ybqbiltp64wyxxpy/blobcbwun5afz66optbrvduk? + x-ms-date: + - Thu, 17 Sep 2020 14:32:52 GMT + x-ms-tags: + - number=1 + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont2000004/blob000006 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:32:53 GMT + etag: + - '"0x8D85B16903EF326"' + last-modified: + - Thu, 17 Sep 2020 14:32:54 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-copy-id: + - 5e116a9c-9e82-41a8-8115-b9d360746df9 + x-ms-copy-status: + - success + x-ms-version: + - '2020-02-10' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:32:54 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont2000004/blob000006?comp=tags + response: + body: + string: "\uFEFF\nnumber1" + headers: + content-length: + - '116' + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:32:55 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:32:55 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont2000004?maxresults=5000&include=tags&restype=container&comp=list + response: + body: + string: "\uFEFF5000blob000006Thu, + 17 Sep 2020 14:32:54 GMTThu, 17 Sep 2020 14:32:54 + GMT0x8D85B16903EF326131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHottrueunlockedavailabletrue1number1" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:32:56 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: ' + + testtag' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '113' + Content-Type: + - application/xml; charset=utf-8 + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:32:57 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=tags + response: + body: + string: '' + headers: + date: + - Thu, 17 Sep 2020 14:32:58 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 204 + message: No Content +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:32:58 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=tags + response: + body: + string: "\uFEFF\ntesttag" + headers: + content-length: + - '116' + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:32:58 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:32:59 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=tags + response: + body: + string: "\uFEFF\ntesttag" + headers: + content-length: + - '116' + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:33:00 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:00 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/?where=test%3D%27tag%27&comp=blobs + response: + body: + string: "\uFEFF\ntest='tag'blob000005cont1000003tag" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:33:01 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-copy-source: + - https://blobtag6w6352qmk5hq3rsdq.blob.core.windows.net/cont17h4ybqbiltp64wyxxpy/blobcbwun5afz66optbrvduk? + x-ms-date: + - Thu, 17 Sep 2020 14:33:02 GMT + x-ms-source-if-tags: + - test='tag' + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont2000004/blob000006 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:02 GMT + etag: + - '"0x8D85B1695F3F0CD"' + last-modified: + - Thu, 17 Sep 2020 14:33:03 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-copy-id: + - f97d80e4-4ea7-4301-b43f-7f01d6c02a48 + x-ms-copy-status: + - success + x-ms-version: + - '2020-02-10' + status: + code: 202 + message: Accepted +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '131072' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 17 Sep 2020 14:33:03 GMT + x-ms-if-tags: + - test='tag' + x-ms-tags: + - date=2020-01-01&category=test + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + date: + - Thu, 17 Sep 2020 14:33:04 GMT + etag: + - '"0x8D85B169754AADF"' + last-modified: + - Thu, 17 Sep 2020 14:33:05 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - UNjdat8Fk3M= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:06 GMT + x-ms-if-tags: + - category='test' + x-ms-meta-a: + - b + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=metadata + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:07 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:07 GMT + x-ms-if-tags: + - category='test' + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 14:33:09 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Hot + x-ms-access-tier-inferred: + - 'true' + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 14:32:19 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-meta-a: + - b + x-ms-server-encrypted: + - 'true' + x-ms-tag-count: + - '2' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:09 GMT + x-ms-if-tags: + - category='test' + x-ms-lease-action: + - acquire + x-ms-lease-duration: + - '60' + x-ms-proposed-lease-id: + - abcdabcd-abcd-abcd-abcd-abcdabcdabcd + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=lease + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:10 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-lease-id: + - abcdabcd-abcd-abcd-abcd-abcdabcdabcd + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:11 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 14:33:12 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Hot + x-ms-access-tier-inferred: + - 'true' + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 14:32:19 GMT + x-ms-lease-duration: + - fixed + x-ms-lease-state: + - leased + x-ms-lease-status: + - locked + x-ms-meta-a: + - b + x-ms-server-encrypted: + - 'true' + x-ms-tag-count: + - '2' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:12 GMT + x-ms-if-tags: + - category='test' + x-ms-lease-action: + - change + x-ms-lease-id: + - abcdabcd-abcd-abcd-abcd-abcdabcdabcd + x-ms-proposed-lease-id: + - dcbadcba-dcba-dcba-dcba-dcbadcbadcba + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=lease + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:13 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-lease-id: + - dcbadcba-dcba-dcba-dcba-dcbadcbadcba + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:14 GMT + x-ms-if-tags: + - category='test' + x-ms-lease-action: + - renew + x-ms-lease-id: + - dcbadcba-dcba-dcba-dcba-dcbadcbadcba + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=lease + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:15 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-lease-id: + - dcbadcba-dcba-dcba-dcba-dcbadcbadcba + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:16 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 14:33:17 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Hot + x-ms-access-tier-inferred: + - 'true' + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 14:32:19 GMT + x-ms-lease-duration: + - fixed + x-ms-lease-state: + - leased + x-ms-lease-status: + - locked + x-ms-meta-a: + - b + x-ms-server-encrypted: + - 'true' + x-ms-tag-count: + - '2' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:18 GMT + x-ms-if-tags: + - category='test' + x-ms-lease-action: + - break + x-ms-lease-break-period: + - '30' + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=lease + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:19 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-lease-time: + - '30' + x-ms-version: + - '2020-02-10' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:19 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 14:33:20 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Hot + x-ms-access-tier-inferred: + - 'true' + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 14:32:19 GMT + x-ms-lease-state: + - breaking + x-ms-lease-status: + - locked + x-ms-meta-a: + - b + x-ms-server-encrypted: + - 'true' + x-ms-tag-count: + - '2' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:21 GMT + x-ms-if-tags: + - category='test' + x-ms-lease-action: + - release + x-ms-lease-id: + - dcbadcba-dcba-dcba-dcba-dcbadcbadcba + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=lease + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:22 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:22 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '131072' + content-md5: + - DfvoqkwgtS4bi/PLbL3xkw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 14:33:23 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Hot + x-ms-access-tier-inferred: + - 'true' + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 14:32:19 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-meta-a: + - b + x-ms-server-encrypted: + - 'true' + x-ms-tag-count: + - '2' + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-access-tier: + - Hot + x-ms-date: + - Thu, 17 Sep 2020 14:33:24 GMT + x-ms-if-tags: + - category='test' + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=tier + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:25 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:25 GMT + x-ms-if-tags: + - category='test' + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=snapshot + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:26 GMT + etag: + - '"0x8D85B169839DD15"' + last-modified: + - Thu, 17 Sep 2020 14:33:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-request-server-encrypted: + - 'false' + x-ms-snapshot: + - '2020-09-17T14:33:26.7368411Z' + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: ' + + date2020-01-01categorytest' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '169' + Content-Type: + - application/xml; charset=utf-8 + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:27 GMT + x-ms-if-tags: + - category='test' + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=tags + response: + body: + string: '' + headers: + date: + - Thu, 17 Sep 2020 14:33:28 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 204 + message: No Content +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:28 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=tags + response: + body: + string: "\uFEFF\ncategorytestdate2020-01-01" + headers: + content-length: + - '172' + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:33:28 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:29 GMT + x-ms-if-tags: + - category='test' + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?comp=tags + response: + body: + string: "\uFEFF\ncategorytestdate2020-01-01" + headers: + content-length: + - '172' + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:33:29 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:30 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont1000003?maxresults=5000&restype=container&comp=list + response: + body: + string: "\uFEFF5000blob000005Thu, + 17 Sep 2020 14:32:19 GMTThu, 17 Sep 2020 14:33:07 + GMT0x8D85B169839DD15131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHotThu, + 17 Sep 2020 14:33:25 GMTunlockedavailabletrue2" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:33:30 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:31 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont1000003?maxresults=5000&include=snapshots&restype=container&comp=list + response: + body: + string: "\uFEFF5000blob0000052020-09-17T14:33:26.7368411ZThu, + 17 Sep 2020 14:32:19 GMTThu, 17 Sep 2020 14:33:07 + GMT0x8D85B169839DD15131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHotThu, + 17 Sep 2020 14:33:25 GMTtrue2blob000005Thu, 17 Sep + 2020 14:32:19 GMTThu, 17 Sep 2020 14:33:07 + GMT0x8D85B169839DD15131072application/octet-streamDfvoqkwgtS4bi/PLbL3xkw==BlockBlobHotThu, + 17 Sep 2020 14:33:25 GMTunlockedavailabletrue2" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:33:32 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:33 GMT + x-ms-if-tags: + - category='test' + x-ms-version: + - '2020-02-10' + method: DELETE + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005?snapshot=2020-09-17T14:33:26.7368411Z + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:34 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:35 GMT + x-ms-if-tags: + - category='test' + x-ms-version: + - '2020-02-10' + method: DELETE + uri: https://blobtag000002.blob.core.windows.net/cont1000003/blob000005 + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 14:33:36 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 14:33:37 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://blobtag000002.blob.core.windows.net/cont1000003?maxresults=5000&restype=container&comp=list + response: + body: + string: "\uFEFF5000" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 14:33:37 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_versioning.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_versioning.yaml new file mode 100644 index 00000000000..a80722515f3 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_blob_versioning.yaml @@ -0,0 +1,656 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - -n -g --enable-versioning + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/version000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/version000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '443' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 09:50:39 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "isVersioningEnabled": true}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '117' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --enable-versioning + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/version000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/version000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false},"isVersioningEnabled":true}}' + headers: + cache-control: + - no-cache + content-length: + - '422' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 09:50:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1199' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account keys list + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g --query -o + User-Agent: + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/11.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/version000002/listKeys?api-version=2019-06-01 + response: + body: + string: '{"keys":[{"keyName":"key1","value":"veryFakedStorageAccountKey==","permissions":"FULL"},{"keyName":"key2","value":"veryFakedStorageAccountKey==","permissions":"FULL"}]}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 09:50:43 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-resource-requests: + - '11999' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.7; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 09:50:44 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://version000002.blob.core.windows.net/con000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:47 GMT + etag: + - '"0x8D85AEF27B4C120"' + last-modified: + - Thu, 17 Sep 2020 09:50:48 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1024' + Content-Type: + - application/octet-stream + If-None-Match: + - '*' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 17 Sep 2020 09:50:49 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://version000002.blob.core.windows.net/con000003/blob000004 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - DzQ7CTESaiDxM9Z8KwGKOw== + date: + - Thu, 17 Sep 2020 09:50:50 GMT + etag: + - '"0x8D85AEF29653E94"' + last-modified: + - Thu, 17 Sep 2020 09:50:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - iknlm7CyG2k= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + x-ms-version-id: + - '2020-09-17T09:50:51.1109780Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:51 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://version000002.blob.core.windows.net/con000003?maxresults=5000&include=versions&restype=container&comp=list + response: + body: + string: "\uFEFF5000blob0000042020-09-17T09:50:51.1109780ZtrueThu, + 17 Sep 2020 09:50:51 GMTThu, 17 Sep 2020 09:50:51 + GMT0x8D85AEF29653E941024application/octet-streamDzQ7CTESaiDxM9Z8KwGKOw==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:50:52 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2048' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 17 Sep 2020 09:50:53 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://version000002.blob.core.windows.net/con000003/blob000004 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - yZp0xVU3GkM9Eh9VHWxjmA== + date: + - Thu, 17 Sep 2020 09:50:54 GMT + etag: + - '"0x8D85AEF2B952E53"' + last-modified: + - Thu, 17 Sep 2020 09:50:54 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - E1xsWVuyFpc= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + x-ms-version-id: + - '2020-09-17T09:50:54.7825786Z' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:55 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://version000002.blob.core.windows.net/con000003/blob000004?versionid=2020-09-17T09%3A50%3A51.1109780Z + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '1024' + content-md5: + - DzQ7CTESaiDxM9Z8KwGKOw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:55 GMT + etag: + - '"0x8D85AEF29653E94"' + last-modified: + - Thu, 17 Sep 2020 09:50:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Hot + x-ms-access-tier-inferred: + - 'true' + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:51 GMT + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + x-ms-version-id: + - '2020-09-17T09:50:51.1109780Z' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:50:56 GMT + x-ms-range: + - bytes=0-33554431 + x-ms-version: + - '2020-02-10' + method: GET + uri: https://version000002.blob.core.windows.net/con000003/blob000004?versionid=2020-09-17T09%3A50%3A51.1109780Z + response: + body: + string: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + accept-ranges: + - bytes + content-length: + - '1024' + content-range: + - bytes 0-1023/1024 + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:50:57 GMT + etag: + - '"0x8D85AEF29653E94"' + last-modified: + - Thu, 17 Sep 2020 09:50:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-blob-content-md5: + - DzQ7CTESaiDxM9Z8KwGKOw== + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:51 GMT + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + x-ms-version-id: + - '2020-09-17T09:50:51.1109780Z' + status: + code: 206 + message: Partial Content +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-access-tier: + - Cool + x-ms-date: + - Thu, 17 Sep 2020 09:50:58 GMT + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://version000002.blob.core.windows.net/con000003/blob000004?versionid=2020-09-17T09%3A50%3A51.1109780Z&comp=tier + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:50:58 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:51:00 GMT + x-ms-version: + - '2020-02-10' + method: HEAD + uri: https://version000002.blob.core.windows.net/con000003/blob000004?versionid=2020-09-17T09%3A50%3A51.1109780Z + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '1024' + content-md5: + - DzQ7CTESaiDxM9Z8KwGKOw== + content-type: + - application/octet-stream + date: + - Thu, 17 Sep 2020 09:51:00 GMT + etag: + - '"0x8D85AEF29653E94"' + last-modified: + - Thu, 17 Sep 2020 09:50:51 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Cool + x-ms-access-tier-change-time: + - Thu, 17 Sep 2020 09:50:59 GMT + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 17 Sep 2020 09:50:51 GMT + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2020-02-10' + x-ms-version-id: + - '2020-09-17T09:50:51.1109780Z' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:51:02 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://version000002.blob.core.windows.net/con000003?maxresults=5000&include=versions&restype=container&comp=list + response: + body: + string: "\uFEFF5000blob0000042020-09-17T09:50:51.1109780ZThu, + 17 Sep 2020 09:50:51 GMTThu, 17 Sep 2020 09:50:51 + GMT0x8D85AEF29653E941024application/octet-streamDzQ7CTESaiDxM9Z8KwGKOw==BlockBlobCoolThu, + 17 Sep 2020 09:50:59 GMTtrueblob0000042020-09-17T09:50:54.7825786ZtrueThu, + 17 Sep 2020 09:50:54 GMTThu, 17 Sep 2020 09:50:54 + GMT0x8D85AEF2B952E532048application/octet-streamyZp0xVU3GkM9Eh9VHWxjmA==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:51:02 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:51:03 GMT + x-ms-version: + - '2020-02-10' + method: DELETE + uri: https://version000002.blob.core.windows.net/con000003/blob000004?versionid=2020-09-17T09%3A50%3A51.1109780Z + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 09:51:04 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-delete-type-permanent: + - 'true' + x-ms-version: + - '2020-02-10' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.7 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 09:51:05 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://version000002.blob.core.windows.net/con000003?maxresults=5000&include=versions&restype=container&comp=list + response: + body: + string: "\uFEFF5000blob0000042020-09-17T09:50:54.7825786ZtrueThu, + 17 Sep 2020 09:50:54 GMTThu, 17 Sep 2020 09:50:54 + GMT0x8D85AEF2B952E532048application/octet-streamyZp0xVU3GkM9Eh9VHWxjmA==BlockBlobHottrueunlockedavailabletrue" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 09:51:05 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_block_blob_set_tier_v2.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_block_blob_set_tier_v2.yaml new file mode 100644 index 00000000000..0e49b10a06f --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_block_blob_set_tier_v2.yaml @@ -0,0 +1,569 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account keys list + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g --query -o + User-Agent: + - python/3.7.7 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-storage/11.1.0 + Azure-SDK-For-Python AZURECLI/2.10.1 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2019-06-01 + response: + body: + string: '{"keys":[{"keyName":"key1","value":"veryFakedStorageAccountKey==","permissions":"FULL"},{"keyName":"key2","value":"veryFakedStorageAccountKey==","permissions":"FULL"}]}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json + date: + - Thu, 13 Aug 2020 09:50:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-resource-requests: + - '11998' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.7; Windows 10) AZURECLI/2.10.1 + x-ms-date: + - Thu, 13 Aug 2020 09:50:02 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 13 Aug 2020 09:50:04 GMT + etag: + - '"0x8D83F6E41B0F6E7"' + last-modified: + - Thu, 13 Aug 2020 09:50:05 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '16384' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.4.0b1 Python/3.7.7 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 13 Aug 2020 09:50:05 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - zjOP5omXeKrPwoQU8tlJiw== + date: + - Thu, 13 Aug 2020 09:50:06 GMT + etag: + - '"0x8D83F6E42B3A3AE"' + last-modified: + - Thu, 13 Aug 2020 09:50:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - QSaeldJ28Ts= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0b1 Python/3.7.7 (Windows-10-10.0.18362-SP0) + x-ms-access-tier: + - Archive + x-ms-date: + - Thu, 13 Aug 2020 09:50:08 GMT + x-ms-rehydrate-priority: + - Standard + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004?comp=tier + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 13 Aug 2020 09:50:08 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0b1 Python/3.7.7 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 13 Aug 2020 09:50:09 GMT + x-ms-version: + - '2019-12-12' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '16384' + content-md5: + - zjOP5omXeKrPwoQU8tlJiw== + content-type: + - application/octet-stream + date: + - Thu, 13 Aug 2020 09:50:10 GMT + etag: + - '"0x8D83F6E42B3A3AE"' + last-modified: + - Thu, 13 Aug 2020 09:50:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Archive + x-ms-access-tier-change-time: + - Thu, 13 Aug 2020 09:50:09 GMT + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 13 Aug 2020 09:50:07 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0b1 Python/3.7.7 (Windows-10-10.0.18362-SP0) + x-ms-access-tier: + - Cool + x-ms-date: + - Thu, 13 Aug 2020 09:50:11 GMT + x-ms-rehydrate-priority: + - High + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004?comp=tier + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 13 Aug 2020 09:50:12 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0b1 Python/3.7.7 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 13 Aug 2020 09:50:12 GMT + x-ms-version: + - '2019-12-12' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000004 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '16384' + content-md5: + - zjOP5omXeKrPwoQU8tlJiw== + content-type: + - application/octet-stream + date: + - Thu, 13 Aug 2020 09:50:13 GMT + etag: + - '"0x8D83F6E42B3A3AE"' + last-modified: + - Thu, 13 Aug 2020 09:50:07 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Archive + x-ms-access-tier-change-time: + - Thu, 13 Aug 2020 09:50:11 GMT + x-ms-archive-status: + - rehydrate-pending-to-cool + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 13 Aug 2020 09:50:07 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-rehydrate-priority: + - High + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '16384' + Content-Type: + - application/octet-stream + User-Agent: + - azsdk-python-storage-blob/12.4.0b1 Python/3.7.7 (Windows-10-10.0.18362-SP0) + x-ms-blob-type: + - BlockBlob + x-ms-date: + - Thu, 13 Aug 2020 09:50:14 GMT + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000005 + response: + body: + string: '' + headers: + content-length: + - '0' + content-md5: + - zjOP5omXeKrPwoQU8tlJiw== + date: + - Thu, 13 Aug 2020 09:50:15 GMT + etag: + - '"0x8D83F6E479D6425"' + last-modified: + - Thu, 13 Aug 2020 09:50:15 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-content-crc64: + - QSaeldJ28Ts= + x-ms-request-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0b1 Python/3.7.7 (Windows-10-10.0.18362-SP0) + x-ms-access-tier: + - Archive + x-ms-date: + - Thu, 13 Aug 2020 09:50:15 GMT + x-ms-rehydrate-priority: + - Standard + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000005?comp=tier + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 13 Aug 2020 09:50:16 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0b1 Python/3.7.7 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 13 Aug 2020 09:50:17 GMT + x-ms-version: + - '2019-12-12' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000005 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '16384' + content-md5: + - zjOP5omXeKrPwoQU8tlJiw== + content-type: + - application/octet-stream + date: + - Thu, 13 Aug 2020 09:50:17 GMT + etag: + - '"0x8D83F6E479D6425"' + last-modified: + - Thu, 13 Aug 2020 09:50:15 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Archive + x-ms-access-tier-change-time: + - Thu, 13 Aug 2020 09:50:16 GMT + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 13 Aug 2020 09:50:15 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0b1 Python/3.7.7 (Windows-10-10.0.18362-SP0) + x-ms-access-tier: + - Hot + x-ms-date: + - Thu, 13 Aug 2020 09:50:18 GMT + x-ms-rehydrate-priority: + - Standard + x-ms-version: + - '2019-12-12' + method: PUT + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000005?comp=tier + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 13 Aug 2020 09:50:18 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2019-12-12' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0b1 Python/3.7.7 (Windows-10-10.0.18362-SP0) + x-ms-date: + - Thu, 13 Aug 2020 09:50:20 GMT + x-ms-version: + - '2019-12-12' + method: HEAD + uri: https://clitest000002.blob.core.windows.net/cont000003/blob000005 + response: + body: + string: '' + headers: + accept-ranges: + - bytes + content-length: + - '16384' + content-md5: + - zjOP5omXeKrPwoQU8tlJiw== + content-type: + - application/octet-stream + date: + - Thu, 13 Aug 2020 09:50:20 GMT + etag: + - '"0x8D83F6E479D6425"' + last-modified: + - Thu, 13 Aug 2020 09:50:15 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-access-tier: + - Archive + x-ms-access-tier-change-time: + - Thu, 13 Aug 2020 09:50:19 GMT + x-ms-archive-status: + - rehydrate-pending-to-hot + x-ms-blob-type: + - BlockBlob + x-ms-creation-time: + - Thu, 13 Aug 2020 09:50:15 GMT + x-ms-lease-state: + - available + x-ms-lease-status: + - unlocked + x-ms-rehydrate-priority: + - Standard + x-ms-server-encrypted: + - 'true' + x-ms-version: + - '2019-12-12' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_container_list_scenarios.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_container_list_scenarios.yaml new file mode 100644 index 00000000000..e2efda6b3d2 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_container_list_scenarios.yaml @@ -0,0 +1,626 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account keys list + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g --query -o + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.11 msrest_azure/0.6.3 + azure-mgmt-storage/11.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2019-06-01 + response: + body: + string: '{"keys":[{"keyName":"key1","value":"veryFakedStorageAccountKey==","permissions":"FULL"},{"keyName":"key2","value":"veryFakedStorageAccountKey==","permissions":"FULL"}]}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 15:46:50 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-resource-requests: + - '11997' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 15:46:51 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://clitest000002.blob.core.windows.net/con1000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 15:46:54 GMT + etag: + - '"0x8D85B20E73FAFEA"' + last-modified: + - Thu, 17 Sep 2020 15:46:54 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 15:46:55 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://clitest000002.blob.core.windows.net/con2000004?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 15:46:55 GMT + etag: + - '"0x8D85B20E813D3AE"' + last-modified: + - Thu, 17 Sep 2020 15:46:56 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - -n -g --container-delete-retention-days --enable-container-delete-retention + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.11 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '443' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 15:46:57 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "containerDeleteRetentionPolicy": {"enabled": true, "days": 7}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '152' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --container-delete-retention-days --enable-container-delete-retention + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.11 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"containerDeleteRetentionPolicy":{"enabled":true,"days":7},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '454' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 15:46:58 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 15:46:59 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=&comp=list + response: + body: + string: "\uFEFF5000con1000003Thu, + 17 Sep 2020 15:46:54 GMT\"0x8D85B20E73FAFEA\"unlockedavailable$account-encryption-keyfalsefalsefalsecon2000004Thu, + 17 Sep 2020 15:46:56 GMT\"0x8D85B20E813D3AE\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 15:46:59 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 15:47:00 GMT + x-ms-meta-test: + - '1' + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://clitest000002.blob.core.windows.net/con1000003?restype=container&comp=metadata + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 15:47:01 GMT + etag: + - '"0x8D85B20EB61F352"' + last-modified: + - Thu, 17 Sep 2020 15:47:01 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 15:47:02 GMT + x-ms-version: + - '2018-11-09' + method: GET + uri: https://clitest000002.blob.core.windows.net/con1000003?restype=container&comp=metadata + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 15:47:02 GMT + etag: + - '"0x8D85B20EB61F352"' + last-modified: + - Thu, 17 Sep 2020 15:47:01 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-meta-test: + - '1' + x-ms-version: + - '2018-11-09' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 15:47:03 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=metadata&comp=list + response: + body: + string: "\uFEFF5000con1000003Thu, + 17 Sep 2020 15:47:01 GMT\"0x8D85B20EB61F352\"unlockedavailable$account-encryption-keyfalsefalsefalse1con2000004Thu, + 17 Sep 2020 15:46:56 GMT\"0x8D85B20E813D3AE\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 15:47:04 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 15:47:04 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=1&include=&comp=list + response: + body: + string: "\uFEFF1con1000003Thu, + 17 Sep 2020 15:47:01 GMT\"0x8D85B20EB61F352\"unlockedavailable$account-encryption-keyfalsefalsefalse/clitest000002/con2000004" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 15:47:05 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 15:47:06 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=1&include=&comp=list + response: + body: + string: "\uFEFF1con1000003Thu, + 17 Sep 2020 15:47:01 GMT\"0x8D85B20EB61F352\"unlockedavailable$account-encryption-keyfalsefalsefalse/clitest000002/con2000004" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 15:47:06 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 15:47:07 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?marker=%2Fclitest000002%2Fcon2000004&maxresults=5000&include=&comp=list + response: + body: + string: "\uFEFF/clitest000002/con20000045000con2000004Thu, + 17 Sep 2020 15:46:56 GMT\"0x8D85B20E813D3AE\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 15:47:08 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 15:47:09 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?prefix=con1&maxresults=5000&include=&comp=list + response: + body: + string: "\uFEFFcon15000con1000003Thu, + 17 Sep 2020 15:47:01 GMT\"0x8D85B20EB61F352\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 15:47:09 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 15:47:10 GMT + x-ms-version: + - '2018-11-09' + method: DELETE + uri: https://clitest000002.blob.core.windows.net/con2000004?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 15:47:11 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 15:47:12 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=&comp=list + response: + body: + string: "\uFEFF5000con1000003Thu, + 17 Sep 2020 15:47:01 GMT\"0x8D85B20EB61F352\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 15:47:12 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 15:47:13 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=deleted&comp=list + response: + body: + string: "\uFEFF5000con1000003Thu, + 17 Sep 2020 15:47:01 GMT\"0x8D85B20EB61F352\"unlockedavailable$account-encryption-keyfalsefalsefalsecon2000004true01D68D09C59D0326Thu, + 17 Sep 2020 15:46:56 GMT\"0x8D85B20E813D3AE\"lockedleasedfixed$account-encryption-keyfalsefalsefalseThu, + 17 Sep 2020 15:47:11 GMT7" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 15:47:14 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_container_soft_delete_oauth.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_container_soft_delete_oauth.yaml new file mode 100644 index 00000000000..c13bd7ee431 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_container_soft_delete_oauth.yaml @@ -0,0 +1,485 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account keys list + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g --query -o + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.11 msrest_azure/0.6.3 + azure-mgmt-storage/11.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2019-06-01 + response: + body: + string: '{"keys":[{"keyName":"key1","value":"veryFakedStorageAccountKey==","permissions":"FULL"},{"keyName":"key2","value":"veryFakedStorageAccountKey==","permissions":"FULL"}]}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 16:31:32 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-resource-requests: + - '11999' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 16:31:33 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://clitest000002.blob.core.windows.net/con1000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 16:31:35 GMT + etag: + - '"0x8D85B27258B9A56"' + last-modified: + - Thu, 17 Sep 2020 16:31:36 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - -n -g --container-delete-retention-days --enable-container-delete-retention + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.11 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '443' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 16:31:36 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "containerDeleteRetentionPolicy": {"enabled": true, "days": 7}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '152' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --container-delete-retention-days --enable-container-delete-retention + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.11 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"containerDeleteRetentionPolicy":{"enabled":true,"days":7},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '454' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 16:31:38 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:31:39 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=&comp=list + response: + body: + string: "\uFEFF5000con1000003Thu, + 17 Sep 2020 16:31:36 GMT\"0x8D85B27258B9A56\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:31:41 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 16:31:42 GMT + x-ms-version: + - '2018-11-09' + method: DELETE + uri: https://clitest000002.blob.core.windows.net/con1000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 16:31:43 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:31:44 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=&comp=list + response: + body: + string: "\uFEFF5000" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:31:44 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:31:45 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=deleted&comp=list + response: + body: + string: "\uFEFF5000con1000003true01D68D100314DDC8Thu, + 17 Sep 2020 16:31:36 GMT\"0x8D85B27258B9A56\"lockedleasedfixed$account-encryption-keyfalsefalsefalseThu, + 17 Sep 2020 16:31:44 GMT7" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:31:46 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:32:17 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=deleted&comp=list + response: + body: + string: "\uFEFF5000con1000003true01D68D100314DDC8Thu, + 17 Sep 2020 16:31:36 GMT\"0x8D85B27258B9A56\"unlockedexpired$account-encryption-keyfalsefalsefalseThu, + 17 Sep 2020 16:31:44 GMT7" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:32:17 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:32:18 GMT + x-ms-deleted-container-name: + - con1lbsm2avullnsjj6ai6st + x-ms-deleted-container-version: + - 01D68D100314DDC8 + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/con1000003?restype=container&comp=undelete + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 16:32:19 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:32:20 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=&comp=list + response: + body: + string: "\uFEFF5000con1000003Thu, + 17 Sep 2020 16:32:19 GMT\"0x8D85B273F6CFFAC\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:32:21 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:32:21 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=deleted&comp=list + response: + body: + string: "\uFEFF5000con1000003Thu, + 17 Sep 2020 16:32:19 GMT\"0x8D85B273F6CFFAC\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:32:21 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_container_soft_delete_scenarios.yaml b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_container_soft_delete_scenarios.yaml new file mode 100644 index 00000000000..7c062496987 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/recordings/test_storage_container_soft_delete_scenarios.yaml @@ -0,0 +1,485 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account keys list + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -n -g --query -o + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.11 msrest_azure/0.6.3 + azure-mgmt-storage/11.2.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2019-06-01 + response: + body: + string: '{"keys":[{"keyName":"key1","value":"veryFakedStorageAccountKey==","permissions":"FULL"},{"keyName":"key2","value":"veryFakedStorageAccountKey==","permissions":"FULL"}]}' + headers: + cache-control: + - no-cache + content-length: + - '288' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 16:16:36 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-resource-requests: + - '11997' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 16:16:37 GMT + x-ms-version: + - '2018-11-09' + method: PUT + uri: https://clitest000002.blob.core.windows.net/con1000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 16:16:40 GMT + etag: + - '"0x8D85B250FCB6F91"' + last-modified: + - Thu, 17 Sep 2020 16:16:40 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + ParameterSetName: + - -n -g --container-delete-retention-days --enable-container-delete-retention + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.11 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '443' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 16:16:42 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"cors": {"corsRules": []}, "deleteRetentionPolicy": {"enabled": + false}, "containerDeleteRetentionPolicy": {"enabled": true, "days": 7}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account blob-service-properties update + Connection: + - keep-alive + Content-Length: + - '152' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -n -g --container-delete-retention-days --enable-container-delete-retention + User-Agent: + - python/3.7.4 (Windows-10-10.0.19041-SP0) msrest/0.6.11 msrest_azure/0.6.3 + azure-mgmt-storage/11.1.0 Azure-SDK-For-Python AZURECLI/2.12.0 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default?api-version=2019-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Storage/storageAccounts/clitest000002/blobServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/blobServices","properties":{"containerDeleteRetentionPolicy":{"enabled":true,"days":7},"cors":{"corsRules":[]},"deleteRetentionPolicy":{"enabled":false}}}' + headers: + cache-control: + - no-cache + content-length: + - '454' + content-type: + - application/json + date: + - Thu, 17 Sep 2020 16:16:43 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,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-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:16:44 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=&comp=list + response: + body: + string: "\uFEFF5000con1000003Thu, + 17 Sep 2020 16:16:40 GMT\"0x8D85B250FCB6F91\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:16:44 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.4; Windows 10) AZURECLI/2.12.0 + x-ms-date: + - Thu, 17 Sep 2020 16:16:45 GMT + x-ms-version: + - '2018-11-09' + method: DELETE + uri: https://clitest000002.blob.core.windows.net/con1000003?restype=container + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 16:16:46 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2018-11-09' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:16:47 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=&comp=list + response: + body: + string: "\uFEFF5000" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:16:48 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:16:48 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=deleted&comp=list + response: + body: + string: "\uFEFF5000con1000003true01D68D0DED54BFFCThu, + 17 Sep 2020 16:16:40 GMT\"0x8D85B250FCB6F91\"lockedleasedfixed$account-encryption-keyfalsefalsefalseThu, + 17 Sep 2020 16:16:47 GMT7" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:16:49 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:17:20 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=deleted&comp=list + response: + body: + string: "\uFEFF5000con1000003true01D68D0DED54BFFCThu, + 17 Sep 2020 16:16:40 GMT\"0x8D85B250FCB6F91\"unlockedexpired$account-encryption-keyfalsefalsefalseThu, + 17 Sep 2020 16:16:47 GMT7" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:17:20 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '0' + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:17:21 GMT + x-ms-deleted-container-name: + - con1hxq6wsxhlc2t6v7r45la + x-ms-deleted-container-version: + - 01D68D0DED54BFFC + x-ms-version: + - '2020-02-10' + method: PUT + uri: https://clitest000002.blob.core.windows.net/con1000003?restype=container&comp=undelete + response: + body: + string: '' + headers: + content-length: + - '0' + date: + - Thu, 17 Sep 2020 16:17:22 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + x-ms-version: + - '2020-02-10' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:17:23 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=&comp=list + response: + body: + string: "\uFEFF5000con1000003Thu, + 17 Sep 2020 16:17:22 GMT\"0x8D85B2528B5769C\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:17:24 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/xml + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-storage-blob/12.4.0 Python/3.7.4 (Windows-10-10.0.19041-SP0) + x-ms-date: + - Thu, 17 Sep 2020 16:17:24 GMT + x-ms-version: + - '2020-02-10' + method: GET + uri: https://clitest000002.blob.core.windows.net/?maxresults=5000&include=deleted&comp=list + response: + body: + string: "\uFEFF5000con1000003Thu, + 17 Sep 2020 16:17:22 GMT\"0x8D85B2528B5769C\"unlockedavailable$account-encryption-keyfalsefalsefalse" + headers: + content-type: + - application/xml + date: + - Thu, 17 Sep 2020 16:17:25 GMT + server: + - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + transfer-encoding: + - chunked + x-ms-version: + - '2020-02-10' + status: + code: 200 + message: OK +version: 1 diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_account_scenarios.py b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_account_scenarios.py new file mode 100644 index 00000000000..8e9ecdce854 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_account_scenarios.py @@ -0,0 +1,177 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +import os +from azure.cli.testsdk import (ScenarioTest, LocalContextScenarioTest, JMESPathCheck, ResourceGroupPreparer, + StorageAccountPreparer, api_version_constraint, live_only, LiveScenarioTest) +from azure.cli.core.profiles import ResourceType +from ..storage_test_util import StorageScenarioMixin +from knack.util import CLIError +from datetime import datetime, timedelta +from azure_devtools.scenario_tests import AllowLargeResponse + + +@api_version_constraint(ResourceType.MGMT_STORAGE, min_api='2019-06-01') +class BlobServicePropertiesTests(StorageScenarioMixin, ScenarioTest): + @ResourceGroupPreparer() + def test_management_policy(self, resource_group): + import os + curr_dir = os.path.dirname(os.path.realpath(__file__)) + policy_file = os.path.join(curr_dir, 'mgmt_policy.json').replace('\\', '\\\\') + + storage_account = self.create_random_name(prefix='cli', length=24) + + self.kwargs = {'rg': resource_group, 'sa': storage_account, 'policy': policy_file} + self.cmd('storage account create -g {rg} -n {sa} --kind StorageV2') + self.cmd('storage account management-policy create --account-name {sa} -g {rg} --policy @"{policy}"') + self.cmd('storage account management-policy update --account-name {sa} -g {rg}' + ' --set "policy.rules[0].name=newname"') + self.cmd('storage account management-policy show --account-name {sa} -g {rg}', + checks=JMESPathCheck('policy.rules[0].name', 'newname')) + self.cmd('storage account management-policy delete --account-name {sa} -g {rg}') + self.cmd('storage account management-policy show --account-name {sa} -g {rg}', expect_failure=True) + + +@api_version_constraint(ResourceType.MGMT_STORAGE, min_api='2019-04-01') +class BlobServicePropertiesTests(StorageScenarioMixin, ScenarioTest): + @ResourceGroupPreparer() + @StorageAccountPreparer(kind='StorageV2') + def test_storage_account_update_change_feed(self): + result = self.cmd('storage account blob-service-properties update --enable-change-feed true -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['changeFeed']['enabled'], True) + + result = self.cmd('storage account blob-service-properties update --enable-change-feed false -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['changeFeed']['enabled'], False) + + result = self.cmd('storage account blob-service-properties update --enable-change-feed -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['changeFeed']['enabled'], True) + + result = self.cmd('storage account blob-service-properties show -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['changeFeed']['enabled'], True) + + @ResourceGroupPreparer(name_prefix='cli_storage_account_update_delete_retention_policy') + @StorageAccountPreparer(kind='StorageV2') + def test_storage_account_update_delete_retention_policy(self, resource_group, storage_account): + self.kwargs.update({ + 'sa': storage_account, + 'rg': resource_group, + 'cmd': 'storage account blob-service-properties update' + }) + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --enable-delete-retention true -n {sa} -g {rg}') + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --enable-delete-retention false --delete-retention-days 365 -n {sa} -g {rg}').get_output_in_json() + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --delete-retention-days 1 -n {sa} -g {rg}').get_output_in_json() + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --enable-delete-retention true --delete-retention-days -1 -n {sa} -g {rg}') + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --enable-delete-retention true --delete-retention-days 0 -n {sa} -g {rg}') + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --enable-delete-retention true --delete-retention-days 366 -n {sa} -g {rg}') + + result = self.cmd('{cmd} --enable-delete-retention true --delete-retention-days 1 -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['deleteRetentionPolicy']['enabled'], True) + self.assertEqual(result['deleteRetentionPolicy']['days'], 1) + + result = self.cmd('{cmd} --enable-delete-retention true --delete-retention-days 100 -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['deleteRetentionPolicy']['enabled'], True) + self.assertEqual(result['deleteRetentionPolicy']['days'], 100) + + result = self.cmd('{cmd} --enable-delete-retention true --delete-retention-days 365 -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['deleteRetentionPolicy']['enabled'], True) + self.assertEqual(result['deleteRetentionPolicy']['days'], 365) + + result = self.cmd('{cmd} --enable-delete-retention false -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['deleteRetentionPolicy']['enabled'], False) + self.assertEqual(result['deleteRetentionPolicy']['days'], None) + + @api_version_constraint(ResourceType.MGMT_STORAGE, min_api='2019-06-01') + @ResourceGroupPreparer(name_prefix="cli_test_sa_versioning") + @StorageAccountPreparer(location="eastus2euap", kind="StorageV2") + def test_storage_account_update_versioning(self): + result = self.cmd('storage account blob-service-properties update --enable-versioning true -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['isVersioningEnabled'], True) + + result = self.cmd('storage account blob-service-properties update --enable-versioning false -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['isVersioningEnabled'], False) + + result = self.cmd('storage account blob-service-properties update --enable-versioning -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['isVersioningEnabled'], True) + + result = self.cmd('storage account blob-service-properties show -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['isVersioningEnabled'], True) + + @api_version_constraint(ResourceType.MGMT_STORAGE, min_api='2019-06-01') + @ResourceGroupPreparer(name_prefix='cli_storage_account_update_delete_retention_policy') + @StorageAccountPreparer(kind='StorageV2', name_prefix='clitest', location='eastus2euap') + def test_storage_account_update_container_delete_retention_policy(self, resource_group, storage_account): + self.kwargs.update({ + 'sa': storage_account, + 'rg': resource_group, + 'cmd': 'storage account blob-service-properties update' + }) + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --enable-container-delete-retention true -n {sa} -g {rg}') + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --enable-container-delete-retention false --container-delete-retention-days 365 -n {sa} -g {rg}') + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --container-delete-retention-days 1 -n {sa} -g {rg}') + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --enable-container-delete-retention true --container-delete-retention-days -1 -n {sa} -g {rg}') + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --enable-container-delete-retention true --container-delete-retention-days 0 -n {sa} -g {rg}') + + with self.assertRaises(SystemExit): + self.cmd('{cmd} --enable-container-delete-retention true --container-delete-retention-days 366 -n {sa} -g {rg}') + + result = self.cmd('{cmd} --enable-container-delete-retention true --container-delete-retention-days 1 -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['containerDeleteRetentionPolicy']['enabled'], True) + self.assertEqual(result['containerDeleteRetentionPolicy']['days'], 1) + + result = self.cmd('{cmd} --enable-container-delete-retention true --container-delete-retention-days 100 -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['containerDeleteRetentionPolicy']['enabled'], True) + self.assertEqual(result['containerDeleteRetentionPolicy']['days'], 100) + + result = self.cmd('{cmd} --enable-container-delete-retention true --container-delete-retention-days 365 -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['containerDeleteRetentionPolicy']['enabled'], True) + self.assertEqual(result['containerDeleteRetentionPolicy']['days'], 365) + + result = self.cmd('{cmd} --enable-container-delete-retention false -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['containerDeleteRetentionPolicy']['enabled'], False) + self.assertEqual(result['containerDeleteRetentionPolicy']['days'], None) + + @api_version_constraint(ResourceType.MGMT_STORAGE, min_api='2019-06-01') + @ResourceGroupPreparer(name_prefix="cli_test_sa_versioning") + @StorageAccountPreparer(location="eastus2euap", kind="StorageV2") + def test_storage_account_update_last_access(self): + result = self.cmd('storage account blob-service-properties update --enable-last-access-tracking true -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['lastAccessTimeTrackingPolicy']['enable'], True) + + result = self.cmd( + 'storage account blob-service-properties show -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['lastAccessTimeTrackingPolicy']['enable'], True) + self.assertEqual(result['lastAccessTimeTrackingPolicy']['name'], "AccessTimeTracking") + self.assertEqual(result['lastAccessTimeTrackingPolicy']['trackingGranularityInDays'], 1) + self.assertEqual(result['lastAccessTimeTrackingPolicy']['blobType'][0], "blockBlob") + + result = self.cmd('storage account blob-service-properties update --enable-last-access-tracking false -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['lastAccessTimeTrackingPolicy'], None) + + result = self.cmd('storage account blob-service-properties update --enable-last-access-tracking -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['lastAccessTimeTrackingPolicy']['enable'], True) + + result = self.cmd('storage account blob-service-properties show -n {sa} -g {rg}').get_output_in_json() + self.assertEqual(result['lastAccessTimeTrackingPolicy']['enable'], True) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_blob_live_scenarios.py b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_blob_live_scenarios.py new file mode 100644 index 00000000000..93cca2de07a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_blob_live_scenarios.py @@ -0,0 +1,87 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import os +from datetime import datetime, timedelta +from azure.cli.testsdk import (LiveScenarioTest, ResourceGroupPreparer, StorageAccountPreparer, + JMESPathCheck, JMESPathCheckExists, NoneCheck, api_version_constraint) +from azure.cli.core.profiles import ResourceType + + +@api_version_constraint(ResourceType.MGMT_STORAGE, min_api='2016-12-01') +class StorageBlobUploadLiveTests(LiveScenarioTest): + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_upload_128mb_file(self, resource_group, storage_account): + self.verify_blob_upload_and_download(resource_group, storage_account, 128 * 1024, 'block') + + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_upload_64mb_file(self, resource_group, storage_account): + self.verify_blob_upload_and_download(resource_group, storage_account, 64 * 1024, 'block') + + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_upload_256mb_file(self, resource_group, storage_account): + self.verify_blob_upload_and_download(resource_group, storage_account, 256 * 1024, 'block') + + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_upload_1G_file(self, resource_group, storage_account): + self.verify_blob_upload_and_download(resource_group, storage_account, 1024 * 1024, 'block') + + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_upload_2G_file(self, resource_group, storage_account): + self.verify_blob_upload_and_download(resource_group, storage_account, 2 * 1024 * 1024, + 'block') + + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_upload_10G_file(self, resource_group, storage_account): + self.verify_blob_upload_and_download(resource_group, storage_account, 10 * 1024 * 1024, + 'block', skip_download=True) + + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_page_blob_upload_10G_file(self, resource_group, storage_account): + self.verify_blob_upload_and_download(resource_group, storage_account, 10 * 1024 * 1024, + 'page', skip_download=True) + + def verify_blob_upload_and_download(self, group, account, file_size_kb, blob_type, + skip_download=False): + container = self.create_random_name(prefix='cont', length=24) + local_dir = self.create_temp_dir() + local_file = self.create_temp_file(file_size_kb, full_random=True) + blob_name = self.create_random_name(prefix='blob', length=24) + account_key = self.cmd('storage account keys list -n {} -g {} --query "[0].value" -otsv' + .format(account, group)).output + + self.set_env('AZURE_STORAGE_ACCOUNT', account) + self.set_env('AZURE_STORAGE_KEY', account_key) + + self.cmd('storage container create -n {}'.format(container)) + + self.cmd('storage blob exists -n {} -c {}'.format(blob_name, container), + checks=JMESPathCheck('exists', False)) + + self.cmd('storage blob upload -c {} -f "{}" -n {} --type {}' + .format(container, local_file, blob_name, blob_type)) + + self.cmd('storage blob exists -n {} -c {}'.format(blob_name, container), + checks=JMESPathCheck('exists', True)) + + self.cmd('storage blob show -n {} -c {}'.format(blob_name, container), + checks=[JMESPathCheck('properties.contentLength', file_size_kb * 1024), + JMESPathCheckExists('properties.pageRanges') if blob_type == 'page' else + JMESPathCheck('properties.pageRanges', None)]) + + if not skip_download: + downloaded = os.path.join(local_dir, 'test.file') + self.cmd('storage blob download -n {} -c {} --file "{}"' + .format(blob_name, container, downloaded)) + self.assertTrue(os.path.isfile(downloaded), 'The file is not downloaded.') + self.assertEqual(file_size_kb * 1024, os.stat(downloaded).st_size, + 'The download file size is not right.') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_blob_preview_scenario.py b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_blob_preview_scenario.py new file mode 100644 index 00000000000..6430ee12214 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_blob_preview_scenario.py @@ -0,0 +1,366 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import os +import unittest + +from azure_devtools.scenario_tests import AllowLargeResponse +from azure.cli.testsdk import (JMESPathCheck, JMESPathCheckExists, + ScenarioTest, ResourceGroupPreparer, StorageAccountPreparer) +from ..storage_test_util import StorageScenarioMixin + + +class StorageBlobScenarioTest(StorageScenarioMixin, ScenarioTest): + @ResourceGroupPreparer(name_prefix='clitest') + @StorageAccountPreparer(name_prefix='storage', kind='StorageV2', location='eastus2', sku='Standard_RAGZRS') + def test_storage_blob_list_scenarios(self, resource_group, storage_account): + account_info = self.get_account_info(resource_group, storage_account) + container = self.create_container(account_info, prefix="con") + + local_file = self.create_temp_file(128) + blob_name1 = "/".join(["dir", self.create_random_name(prefix='blob', length=24)]) + blob_name2 = "/".join(["dir", self.create_random_name(prefix='blob', length=24)]) + + # Prepare blob 1 + self.storage_cmd('storage blob upload -c {} -f "{}" -n {} ', account_info, + container, local_file, blob_name1) + + # Test with include snapshot + result = self.storage_cmd('storage blob snapshot -c {} -n {} ', account_info, container, blob_name1)\ + .get_output_in_json() + self.assertIsNotNone(result['snapshot']) + snapshot = result['snapshot'] + + self.storage_cmd('storage blob list -c {} --include s', account_info, container) \ + .assert_with_checks(JMESPathCheck('[0].snapshot', snapshot)) + + # Test with include metadata + self.storage_cmd('storage blob metadata update -c {} -n {} --metadata test=1 ', account_info, + container, blob_name1) + self.storage_cmd('storage blob metadata show -c {} -n {} ', account_info, container, blob_name1)\ + .assert_with_checks(JMESPathCheck('test', '1')) + + self.storage_cmd('storage blob list -c {} --include m', account_info, container) \ + .assert_with_checks(JMESPathCheck('[0].metadata.test', '1')) + + # Prepare blob 2 + self.storage_cmd('storage blob upload -c {} -f "{}" -n {} ', account_info, + container, local_file, blob_name2) + + self.storage_cmd('storage blob list -c {} ', account_info, container).assert_with_checks( + JMESPathCheck('length(@)', 2) + ) + + # Test num_results and next marker + self.storage_cmd('storage blob list -c {} --num-results 1 ', account_info, container).assert_with_checks( + JMESPathCheck('length(@)', 1)) + + result = self.storage_cmd('storage blob list -c {} --num-results 1 --show-next-marker', + account_info, container).get_output_in_json() + self.assertIsNotNone(result[1]['nextMarker']) + next_marker = result[1]['nextMarker'] + + # Test with marker + self.storage_cmd('storage blob list -c {} --marker {} ', account_info, container, next_marker) \ + .assert_with_checks(JMESPathCheck('length(@)', 1)) + + # Test with prefix + self.storage_cmd('storage blob list -c {} --prefix {}', account_info, container, 'dir/') \ + .assert_with_checks(JMESPathCheck('length(@)', 2)) + + # Test with delimiter + self.storage_cmd('storage blob list -c {} --delimiter "/"', account_info, container) \ + .assert_with_checks(JMESPathCheck('length(@)', 1), + JMESPathCheck('[0].name', 'dir/')) + + # Test secondary location + account_name = account_info[0] + '-secondary' + account_key = account_info[1] + self.cmd('storage blob list -c {} --account-name {} --account-key {} '.format( + container, account_name, account_key)).assert_with_checks( + JMESPathCheck('length(@)', 2)) + + @ResourceGroupPreparer(name_prefix='clitest') + @StorageAccountPreparer(name_prefix='version', kind='StorageV2', location='eastus2euap') + def test_storage_blob_versioning(self, resource_group, storage_account): + import time + from datetime import datetime, timedelta + self.cmd('storage account blob-service-properties update -n {} -g {} --enable-versioning '.format( + storage_account, resource_group), checks=[ + JMESPathCheck('isVersioningEnabled', True) + ]) + account_info = self.get_account_info(resource_group, storage_account) + container = self.create_container(account_info, prefix="con") + + temp_dir = self.create_temp_dir() + local_file = self.create_temp_file(1) + blob_name = self.create_random_name(prefix='blob', length=24) + + self.storage_cmd('storage blob upload -c {} -f "{}" -n {} ', account_info, + container, local_file, blob_name) + count = 1 + while True: + # get previous version + result = self.storage_cmd('storage blob list -c {} --include v', account_info, + container).get_output_in_json() + version_id = result[0]['versionId'] + if version_id: + break + time.sleep(10) + self.storage_cmd('storage blob upload -c {} -f "{}" -n {} --overwrite ', account_info, + container, local_file, blob_name) + count += 1 + + local_file2 = self.create_temp_file(2) + self.storage_cmd('storage blob upload -c {} -f "{}" -n {} --overwrite ', account_info, + container, local_file2, blob_name) + count += 1 + # show with version id + self.storage_cmd('storage blob show -c {} -n {} --version-id {} ', account_info, container, blob_name, + version_id).assert_with_checks(JMESPathCheck('versionId', version_id), + JMESPathCheck('name', blob_name), + JMESPathCheck('properties.blobTier', 'Hot'), + JMESPathCheck('properties.contentLength', 1024)) + + # download with version id + self.storage_cmd('storage blob download -c {} -n {} --version-id {} -f "{}" ', account_info, container, + blob_name, version_id, os.path.join(temp_dir, local_file)) + + # set-tier with version id, not for page blob + self.storage_cmd('storage blob set-tier -c {} -n {} --version-id {} --tier Cool ', account_info, container, + blob_name, version_id) + self.storage_cmd('storage blob show -c {} -n {} --version-id {} ', account_info, container, blob_name, + version_id).assert_with_checks(JMESPathCheck('versionId', version_id), + JMESPathCheck('name', blob_name), + JMESPathCheck('properties.blobTier', 'Cool')) + + # generate sas with version id + expiry = (datetime.utcnow() + timedelta(hours=1)).strftime('%Y-%m-%dT%H:%MZ') + sas_token = self.storage_cmd( + 'storage blob generate-sas -c {} -n {} --version-id {} --permissions dx --expiry {} ', account_info, + container, blob_name, version_id, expiry).output.strip('\n') + self.assertIn('sig=', sas_token) + + # delete with version id + self.storage_cmd('storage blob list -c {} --include v', account_info, container)\ + .assert_with_checks(JMESPathCheck('length(@)', count)) + self.storage_cmd('storage blob delete -c {} -n {} --version-id {} --account-name {} ', account_info, + container, blob_name, version_id, storage_account, sas_token) + + self.storage_cmd('storage blob list -c {} --include v', account_info, container)\ + .assert_with_checks(JMESPathCheck('length(@)', count - 1)) + + @ResourceGroupPreparer(name_prefix='clitest') + @StorageAccountPreparer(name_prefix='blobtag', kind='StorageV2', location='eastus2euap') + def test_storage_blob_tags_scenario(self, resource_group, storage_account): + import time + account_info = self.get_account_info(resource_group, storage_account) + container1 = self.create_container(account_info, prefix="cont1") + container2 = self.create_container(account_info, prefix="cont2") + + local_file = self.create_temp_file(128) + blob_name1 = self.create_random_name(prefix='blob', length=24) + blob_name2 = self.create_random_name(prefix='blob', length=24) + + # upload with tags + tags = 'date=2020-01-01 category=test' + self.storage_cmd('storage blob upload -c {} -f "{}" -n {} --tags {} ', account_info, + container1, local_file, blob_name1, tags) + + # May several seconds to take effect + time.sleep(30) + self.storage_cmd('storage blob list -c {} --include t', account_info, container1) \ + .assert_with_checks(JMESPathCheck('[0].tags.date', '2020-01-01'), + JMESPathCheck('[0].tags.category', 'test')) + self.storage_cmd('storage blob tag list -n {} -c {} ', account_info, blob_name1, container1)\ + .assert_with_checks(JMESPathCheck('date', '2020-01-01'), + JMESPathCheck('category', 'test')) + + # copy with tags + tag = 'number=1' + self.storage_cmd('storage blob copy start --source-blob {} --source-container {} -c {} -b {} --tags {}', + account_info, blob_name1, container1, container2, blob_name2, tag) + # May several seconds to take effect + self.storage_cmd('storage blob tag list -n {} -c {} ', account_info, blob_name2, container2)\ + .assert_with_checks(JMESPathCheck('number', '1')) + self.storage_cmd('storage blob list -c {} --include t ', account_info, container2)\ + .assert_with_checks(JMESPathCheck('[0].tags.number', '1')) + + # set tags + self.storage_cmd('storage blob tag set -n {} -c {} --tags {}', account_info, blob_name1, container1, + 'test=tag').assert_with_checks(JMESPathCheck('test', 'tag')) + + # list tags + self.storage_cmd('storage blob tag list -n {} -c {} ', account_info, blob_name1, container1)\ + .assert_with_checks(JMESPathCheck('test', 'tag')) + + # generate sas with tag permission + from datetime import datetime, timedelta + expiry = (datetime.utcnow() + timedelta(hours=1)).strftime('%Y-%m-%dT%H:%MZ') + sas = self.storage_cmd('storage blob generate-sas -n {} -c {} --permissions t --expiry {} --https-only -o tsv', + account_info, blob_name1, container1, expiry).output.strip('\n') + self.assertTrue(sas) + self.assertIn('sig=', sas) + + # find blobs cross containers with index tags + self.storage_cmd("storage blob filter --tag-filter \"test='tag'\" ", account_info).\ + assert_with_checks(JMESPathCheck('length(@)', 1), + JMESPathCheck('[0].containerName', container1), + JMESPathCheck('[0].name', blob_name1)) + + # tag condition + tag_condition = "test=\'tag\'" + self.storage_cmd('storage blob copy start --source-blob {} --source-container {} -c {} -b {} ' + '--source-tags-condition "{}" ', account_info, blob_name1, container1, container2, + blob_name2, tag_condition) + + self.storage_cmd('storage blob upload -n {} -c {} --tags-condition "{}" -f "{}" --tags {} --overwrite ', account_info, + blob_name1, container1, tag_condition, local_file, tags) + + # metadata + tag_condition = "category=\'test\'" + self.storage_cmd('storage blob metadata update -n {} -c {} --tags-condition "{}" --metadata a=b ', account_info, + blob_name1, container1, tag_condition) + self.storage_cmd('storage blob metadata show -n {} -c {} --tags-condition "{}" ', account_info, + blob_name1, container1, tag_condition)\ + .assert_with_checks(JMESPathCheck('a', 'b')) + + # lease + proposed_lease_id = 'abcdabcd-abcd-abcd-abcd-abcdabcdabcd' + new_lease_id = 'dcbadcba-dcba-dcba-dcba-dcbadcbadcba' + self.storage_cmd('storage blob lease acquire --lease-duration 60 -b {} -c {} --proposed-lease-id {} ' + '--tags-condition "{}" ', account_info, blob_name1, container1, proposed_lease_id, tag_condition) + self.storage_cmd('storage blob show -n {} -c {}', account_info, blob_name1, container1) \ + .assert_with_checks(JMESPathCheck('properties.lease.duration', 'fixed'), + JMESPathCheck('properties.lease.state', 'leased'), + JMESPathCheck('properties.lease.status', 'locked')) + self.storage_cmd('storage blob lease change -b {} -c {} --lease-id {} --proposed-lease-id {} ' + '--tags-condition "{}" ', account_info, blob_name1, container1, proposed_lease_id, + new_lease_id, tag_condition) + self.storage_cmd('storage blob lease renew -b {} -c {} --lease-id {} --tags-condition "{}" ', account_info, + blob_name1, container1, new_lease_id, tag_condition) + self.storage_cmd('storage blob show -n {} -c {}', account_info, blob_name1, container1) \ + .assert_with_checks(JMESPathCheck('properties.lease.duration', 'fixed'), + JMESPathCheck('properties.lease.state', 'leased'), + JMESPathCheck('properties.lease.status', 'locked')) + self.storage_cmd('storage blob lease break -b {} -c {} --lease-break-period 30 --tags-condition "{}" ', + account_info, blob_name1, container1, tag_condition) + self.storage_cmd('storage blob show -n {} -c {}', account_info, blob_name1, container1) \ + .assert_with_checks(JMESPathCheck('properties.lease.duration', None), + JMESPathCheck('properties.lease.state', 'breaking'), + JMESPathCheck('properties.lease.status', 'locked')) + self.storage_cmd('storage blob lease release -b {} -c {} --lease-id {} --tags-condition "{}" ', account_info, + blob_name1, container1, new_lease_id, tag_condition) + self.storage_cmd('storage blob show -n {} -c {}', account_info, blob_name1, container1) \ + .assert_with_checks(JMESPathCheck('properties.lease.duration', None), + JMESPathCheck('properties.lease.state', 'available'), + JMESPathCheck('properties.lease.status', 'unlocked')) + + self.storage_cmd('storage blob set-tier -n {} -c {} --tier Hot --tags-condition "{}" ', account_info, + blob_name1, container1, tag_condition) + + result = self.storage_cmd('storage blob snapshot -n {} -c {} --tags-condition "{}" ', account_info, + blob_name1, container1, tag_condition).get_output_in_json() + snapshot = result['snapshot'] + + self.storage_cmd('storage blob tag set -n {} -c {} --tags-condition "{}" --tags {} ', account_info, + blob_name1, container1, tag_condition, tags) \ + .assert_with_checks(JMESPathCheck('category', 'test')) + self.storage_cmd('storage blob tag list -n {} -c {} --tags-condition "{}" ', account_info, + blob_name1, container1, tag_condition) \ + .assert_with_checks(JMESPathCheck('category', 'test')) + + self.storage_cmd("storage blob list -c {} ", account_info, container1)\ + .assert_with_checks(JMESPathCheck('length(@)', 1)) + self.storage_cmd("storage blob list -c {} --include s ", account_info, container1)\ + .assert_with_checks(JMESPathCheck('length(@)', 2)) + self.storage_cmd('storage blob delete -n {} -c {} --tags-condition "{}" --snapshot {} ', account_info, + blob_name1, container1, tag_condition, snapshot) + self.storage_cmd('storage blob delete -n {} -c {} --tags-condition "{}" ', account_info, + blob_name1, container1, tag_condition) + self.storage_cmd("storage blob list -c {} ", account_info, container1)\ + .assert_with_checks(JMESPathCheck('length(@)', 0)) + + +class StorageContainerScenarioTest(StorageScenarioMixin, ScenarioTest): + @ResourceGroupPreparer(name_prefix='clitest') + @StorageAccountPreparer(kind='StorageV2', name_prefix='clitest', location='eastus2euap') + def test_storage_container_list_scenarios(self, resource_group, storage_account): + account_info = self.get_account_info(resource_group, storage_account) + container1 = self.create_container(account_info, prefix="con1") + container2 = self.create_container(account_info, prefix="con2") + self.cmd('storage account blob-service-properties update -n {sa} -g {rg} --container-delete-retention-days 7 ' + '--enable-container-delete-retention', + checks={ + JMESPathCheck('containerDeleteRetentionPolicy.days', 7), + JMESPathCheck('containerDeleteRetentionPolicy.enabled', True) + }) + self.storage_cmd('storage container list ', account_info) \ + .assert_with_checks(JMESPathCheck('length(@)', 2)) + + # Test with include metadata + self.storage_cmd('storage container metadata update -n {} --metadata test=1 ', account_info, container1) + self.storage_cmd('storage container metadata show -n {} ', account_info, container1)\ + .assert_with_checks(JMESPathCheck('test', '1')) + + self.storage_cmd('storage container list --include-metadata', account_info, container1) \ + .assert_with_checks(JMESPathCheck('[0].metadata.test', '1')) + + # Test num_results and next marker + self.storage_cmd('storage container list --num-results 1 ', account_info).assert_with_checks( + JMESPathCheck('length(@)', 1)) + + result = self.storage_cmd('storage container list --num-results 1 --show-next-marker', + account_info).get_output_in_json() + self.assertIsNotNone(result[1]['nextMarker']) + next_marker = result[1]['nextMarker'] + + # Test with marker + self.storage_cmd('storage container list --marker {} ', account_info, next_marker) \ + .assert_with_checks(JMESPathCheck('length(@)', 1)) + + # Test with prefix + self.storage_cmd('storage container list --prefix {}', account_info, 'con1') \ + .assert_with_checks(JMESPathCheck('length(@)', 1)) + + # Test with include deleted + self.storage_cmd('storage container delete -n {} ', account_info, container2) + self.storage_cmd('storage container list ', account_info) \ + .assert_with_checks(JMESPathCheck('length(@)', 1)) + self.storage_cmd('storage container list --include-deleted ', account_info) \ + .assert_with_checks(JMESPathCheck('length(@)', 2)) + + @ResourceGroupPreparer(name_prefix='clitest') + @StorageAccountPreparer(kind='StorageV2', name_prefix='clitest', location='eastus2euap') + def test_storage_container_soft_delete_scenarios(self, resource_group, storage_account): + import time + account_info = self.get_account_info(resource_group, storage_account) + container = self.create_container(account_info, prefix="con1") + self.cmd('storage account blob-service-properties update -n {sa} -g {rg} --container-delete-retention-days 7 ' + '--enable-container-delete-retention', + checks={ + JMESPathCheck('containerDeleteRetentionPolicy.days', 7), + JMESPathCheck('containerDeleteRetentionPolicy.enabled', True) + }) + self.storage_cmd('storage container list ', account_info) \ + .assert_with_checks(JMESPathCheck('length(@)', 1)) + + self.storage_cmd('storage container delete -n {} ', account_info, container) + self.storage_cmd('storage container list ', account_info) \ + .assert_with_checks(JMESPathCheck('length(@)', 0)) + self.storage_cmd('storage container list --include-deleted', account_info).assert_with_checks( + JMESPathCheck('length(@)', 1), + JMESPathCheck('[0].deleted', True)) + + time.sleep(30) + version = self.storage_cmd('storage container list --include-deleted --query [0].version -o tsv', account_info)\ + .output.strip('\n') + self.storage_cmd('storage container restore -n {} --deleted-version {}', account_info, container, version)\ + .assert_with_checks(JMESPathCheck('containerName', container)) + + self.storage_cmd('storage container list ', account_info) \ + .assert_with_checks(JMESPathCheck('length(@)', 1)) + self.storage_cmd('storage container list --include-deleted ', account_info) \ + .assert_with_checks(JMESPathCheck('length(@)', 1)) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_oauth_track2.py b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_oauth_track2.py new file mode 100644 index 00000000000..e68066c3db1 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_oauth_track2.py @@ -0,0 +1,254 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- +import os +from azure.cli.testsdk import (ScenarioTest, JMESPathCheck, JMESPathCheckExists, ResourceGroupPreparer, + StorageAccountPreparer, api_version_constraint, live_only) +from azure.cli.core.profiles import ResourceType +from ..storage_test_util import StorageScenarioMixin +from knack.util import CLIError + + +class StorageOauthTests(StorageScenarioMixin, ScenarioTest): + def oauth_cmd(self, cmd, *args, **kwargs): + return self.cmd(cmd + ' --auth-mode login', *args, **kwargs) + + @live_only() + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_sas_oauth(self, resource_group, storage_account): + """ + Test user delegaiton SAS. + A user delegation SAS is secured with Azure Active Directory (Azure AD) credentials and also by the + permissions specified for the SAS. A user delegation SAS applies to Blob storage only. + + """ + from datetime import datetime, timedelta + expiry = (datetime.utcnow() + timedelta(hours=1)).strftime('%Y-%m-%dT%H:%MZ') + + account_info = self.get_account_info(resource_group, storage_account) + container = self.create_container(account_info) + local_file = self.create_temp_file(128, full_random=False) + blob_name = self.create_random_name('blob', 16) + + self.kwargs.update({ + 'expiry': expiry, + 'account': storage_account, + 'container': container, + 'local_file': local_file, + 'blob': blob_name + }) + + # ----user delegation key---- + with self.assertRaisesRegexp(CLIError, "incorrect usage: specify --as-user when --auth-mode login"): + self.oauth_cmd('storage blob generate-sas --account-name {account} -n {blob} -c {container} ' + '--expiry {expiry} --permissions r --https-only ') + + # test sas-token for a container + sas = self.oauth_cmd('storage container generate-sas -n {container} --https-only --permissions dlrw ' + '--expiry {expiry} --as-user --account-name {account} -otsv').output.strip() + self.kwargs['container_sas'] = sas + self.cmd('storage blob upload -c {container} -f "{local_file}" -n {blob} ' + '--account-name {account} --sas-token "{container_sas}"') + + # test sas-token for a blob + sas = self.oauth_cmd('storage blob generate-sas -c {container} -n {blob} --https-only --permissions acdrw ' + '--expiry {expiry} --as-user --account-name {account} -otsv').output.strip() + self.kwargs['blob_sas'] = sas + self.cmd('storage blob upload -c {container} -f "{local_file}" -n {blob} --overwrite ' + '--account-name {account} --sas-token "{blob_sas}"') + + self.cmd('storage blob show -c {container} -n {blob} --account-name {account} --sas-token {blob_sas}') \ + .assert_with_checks(JMESPathCheck('name', blob_name)) + + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_append_blob_upload_oauth(self, resource_group, storage_account): + account_info = self.get_account_info(resource_group, storage_account) + self.kwargs = { + 'account': storage_account, + 'container': self.create_container(account_info), + 'local_file': self.create_temp_file(1, full_random=False), + 'blob': self.create_random_name('blob', 16) + } + + # create an append blob with pre-condition + self.oauth_cmd('storage blob upload -c {container} -f "{local_file}" -n {blob} --type append --if-none-match * ' + '--account-name {account} ') + result = self.oauth_cmd('storage blob show -n {blob} -c {container} --account-name {account}')\ + .get_output_in_json() + self.assertEqual(result['properties']['blobType'], 'AppendBlob') + length = int(result['properties']['contentLength']) + + # append if-none-match should throw exception + with self.assertRaises(Exception): + self.oauth_cmd('storage blob upload -c {container} -f "{local_file}" -n {blob} --type append ' + '--if-none-match * --account-name {} ') + + # append an append blob + self.oauth_cmd('storage blob upload -c {container} -f "{local_file}" -n {blob} --type append ' + '--account-name {account} ') + self.oauth_cmd('storage blob show -n {blob} -c {container} --account-name {account}').assert_with_checks( + JMESPathCheck('properties.contentLength', length * 2), + JMESPathCheck('properties.blobType', 'AppendBlob') + ) + + # append an append blob with maxsize_condition + with self.assertRaises(Exception): + self.oauth_cmd('storage blob upload -c {container} -f "{local_file}" -n {blob} --type append ' + '--maxsize-condition 1000 --account-name {account} ') + + # append an append blob with overwrite + self.oauth_cmd('storage blob upload -c {container} -f "{local_file}" -n {blob} --type append ' + '--overwrite --account-name {account} ') + self.oauth_cmd('storage blob show -n {blob} -c {container} --account-name {account}').assert_with_checks( + JMESPathCheck('properties.contentLength', length), + JMESPathCheck('properties.blobType', 'AppendBlob') + ) + + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_show_oauth(self, resource_group, storage_account): + account_info = self.get_account_info(resource_group, storage_account) + + self.kwargs.update({ + 'rg': resource_group, + 'account': storage_account, + 'container': self.create_container(account_info=account_info), + 'local_file': self.create_temp_file(128), + 'block': self.create_random_name(prefix='block', length=12), + 'page': self.create_random_name(prefix='page', length=12), + }) + + # test block blob + self.oauth_cmd('storage blob upload -c {container} -n {block} -f "{local_file}" --account-name {sa}') + + self.oauth_cmd('storage blob show -c {container} -n {block} --account-name {sa}')\ + .assert_with_checks(JMESPathCheck('name', self.kwargs['block']), + JMESPathCheck('deleted', False), + JMESPathCheck('encryptionScope', None), + JMESPathCheck('properties.appendBlobCommittedBlockCount', None), + JMESPathCheck('properties.blobTier', None), + JMESPathCheck('properties.blobTierChangeTime', None), + JMESPathCheck('properties.blobTierInferred', None), + JMESPathCheck('properties.blobType', 'BlockBlob'), + JMESPathCheck('properties.contentLength', 128 * 1024), + JMESPathCheck('properties.contentSettings.contentType', 'application/octet-stream'), + JMESPathCheck('properties.contentSettings.cacheControl', None), + JMESPathCheck('properties.contentSettings.contentDisposition', None), + JMESPathCheck('properties.contentSettings.contentEncooding', None), + JMESPathCheck('properties.contentSettings.contentLanguage', None), + JMESPathCheckExists('properties.contentSettings.contentMd5'), + JMESPathCheck('properties.copy.completionTime', None), + JMESPathCheck('properties.copy.id', None), + JMESPathCheck('properties.copy.progress', None), + JMESPathCheck('properties.copy.source', None), + JMESPathCheck('properties.copy.status', None), + JMESPathCheck('properties.copy.statusDescription', None), + JMESPathCheck('properties.pageRanges', None), + JMESPathCheckExists('properties.etag'), + JMESPathCheckExists('properties.creationTime'), + JMESPathCheck('properties.deletedTime', None), + JMESPathCheckExists('properties.etag'), + JMESPathCheckExists('properties.lastModified'), + JMESPathCheck('properties.lease.duration', None), + JMESPathCheck('properties.lease.state', 'available'), + JMESPathCheck('properties.lease.status', 'unlocked'), + JMESPathCheck('snapshot', None), + JMESPathCheck('objectReplicationDestinationPolicy', None), + JMESPathCheck('objectReplicationSourceProperties', []), + JMESPathCheck('rehydratePriority', None), + JMESPathCheck('tags', None), + JMESPathCheck('tagCount', None), + JMESPathCheck('versionId', None), + JMESPathCheck('lastAccessOn', None)) + + self.kwargs['etag'] = self.oauth_cmd('storage blob show -c {container} -n {block} --account-name {sa}')\ + .get_output_in_json()['properties']['etag'] + + # test page blob + self.oauth_cmd('storage blob upload -c {container} -n {page} -f "{local_file}" --type page --account-name {sa}') + self.oauth_cmd('storage blob show -c {container} -n {page} --account-name {sa}') \ + .assert_with_checks(JMESPathCheck('name', self.kwargs['page']), + JMESPathCheck('properties.blobType', 'PageBlob'), + JMESPathCheck('properties.contentLength', 128 * 1024), + JMESPathCheck('properties.contentSettings.contentType', 'application/octet-stream'), + JMESPathCheck('properties.pageBlobSequenceNumber', 0), + JMESPathCheckExists('properties.pageRanges')) + + # test snapshot + self.kwargs['snapshot'] = self.oauth_cmd('storage blob snapshot -c {container} -n {block} --account-name {sa}')\ + .get_output_in_json()['snapshot'] + self.oauth_cmd('storage blob show -c {container} -n {block} --account-name {sa}') \ + .assert_with_checks(JMESPathCheck('name', self.kwargs['block']), + JMESPathCheck('properties.blobType', 'BlockBlob'), + JMESPathCheck('properties.contentLength', 128 * 1024), + JMESPathCheck('properties.contentSettings.contentType', 'application/octet-stream'), + JMESPathCheck('properties.pageRanges', None)) + + # test precondition + self.oauth_cmd('storage blob show -c {container} -n {block} --account-name {sa} --if-match {etag}') \ + .assert_with_checks(JMESPathCheck('name', self.kwargs['block']), + JMESPathCheck('properties.blobType', 'BlockBlob'), + JMESPathCheck('properties.contentLength', 128 * 1024), + JMESPathCheck('properties.contentSettings.contentType', 'application/octet-stream'), + JMESPathCheck('properties.pageRanges', None)) + + self.oauth_cmd('storage blob show -c {container} -n {block} --account-name {sa} --if-match *') \ + .assert_with_checks(JMESPathCheck('name', self.kwargs['block']), + JMESPathCheck('properties.blobType', 'BlockBlob'), + JMESPathCheck('properties.contentLength', 128 * 1024), + JMESPathCheck('properties.contentSettings.contentType', 'application/octet-stream'), + JMESPathCheck('properties.pageRanges', None)) + + from azure.core.exceptions import ResourceModifiedError, HttpResponseError + with self.assertRaisesRegex(ResourceModifiedError, 'ErrorCode:ConditionNotMet'): + self.oauth_cmd('storage blob show -c {container} -n {block} --account-name {sa} --if-none-match {etag}') + + with self.assertRaisesRegex(HttpResponseError, 'ErrorCode:UnsatisfiableCondition'): + self.oauth_cmd('storage blob show -c {container} -n {block} --account-name {sa} --if-none-match *') + + with self.assertRaisesRegex(ResourceModifiedError, 'ErrorCode:ConditionNotMet'): + self.oauth_cmd('storage blob show -c {container} -n {block} --account-name {sa} --if-unmodified-since "2020-06-29T06:32Z"') + + self.oauth_cmd('storage blob show -c {container} -n {block} --account-name {sa} --if-modified-since "2020-06-29T06:32Z"') \ + .assert_with_checks(JMESPathCheck('name', self.kwargs['block']), + JMESPathCheck('properties.blobType', 'BlockBlob'), + JMESPathCheck('properties.contentLength', 128 * 1024), + JMESPathCheck('properties.contentSettings.contentType', 'application/octet-stream'), + JMESPathCheck('properties.pageRanges', None)) + + @ResourceGroupPreparer(name_prefix='clitest') + @StorageAccountPreparer(kind='StorageV2', name_prefix='clitest', location='eastus2euap') + def test_storage_container_soft_delete_oauth(self, resource_group, storage_account): + import time + account_info = self.get_account_info(resource_group, storage_account) + container = self.create_container(account_info, prefix="con1") + self.cmd('storage account blob-service-properties update -n {sa} -g {rg} --container-delete-retention-days 7 ' + '--enable-container-delete-retention', + checks={ + JMESPathCheck('containerDeleteRetentionPolicy.days', 7), + JMESPathCheck('containerDeleteRetentionPolicy.enabled', True) + }) + self.oauth_cmd('storage container list --account-name {} '.format(storage_account)) \ + .assert_with_checks(JMESPathCheck('length(@)', 1)) + + self.oauth_cmd('storage container delete -n {} --account-name {} '.format(container, storage_account)) + self.oauth_cmd('storage container list --account-name {} '.format(storage_account)) \ + .assert_with_checks(JMESPathCheck('length(@)', 0)) + self.oauth_cmd('storage container list --include-deleted --account-name {} '.format(storage_account))\ + .assert_with_checks(JMESPathCheck('length(@)', 1), + JMESPathCheck('[0].deleted', True)) + + time.sleep(30) + version = self.oauth_cmd('storage container list --include-deleted --query [0].version -o tsv --account-name {}' + .format(storage_account)).output.strip('\n') + self.oauth_cmd('storage container restore -n {} --deleted-version {} --account-name {} '.format( + container, version, storage_account))\ + .assert_with_checks(JMESPathCheck('containerName', container)) + + self.oauth_cmd('storage container list --account-name {} '.format(storage_account)) \ + .assert_with_checks(JMESPathCheck('length(@)', 1)) + self.oauth_cmd('storage container list --include-deleted --account-name {} '.format(storage_account)) \ + .assert_with_checks(JMESPathCheck('length(@)', 1)) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_sas_scenarios.py b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_sas_scenarios.py new file mode 100644 index 00000000000..7fe8ebfd5f1 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/latest/test_storage_sas_scenarios.py @@ -0,0 +1,118 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from datetime import datetime, timedelta +from azure.cli.testsdk import (LiveScenarioTest, ResourceGroupPreparer, StorageAccountPreparer, + JMESPathCheck, JMESPathCheckExists, NoneCheck) +from ..storage_test_util import StorageScenarioMixin + + +class StorageSASScenario(StorageScenarioMixin, LiveScenarioTest): + @ResourceGroupPreparer() + @StorageAccountPreparer(name_prefix='blobsas', kind='StorageV2', location='eastus2euap') + def test_storage_blob_sas_permission_scenario(self, resource_group, storage_account): + """ + Test service SAS operations. + + A service SAS is secured with the storage account key. A service SAS delegates access to a resource in only + one of the Azure Storage services: Blob storage, Queue storage, Table storage, or Azure Files. + """ + expiry = (datetime.utcnow() + timedelta(hours=1)).strftime('%Y-%m-%dT%H:%MZ') + + account_info = self.get_account_info(resource_group, storage_account) + container = self.create_container(account_info) + local_file = self.create_temp_file(128, full_random=False) + blob_name = self.create_random_name('blob', 16) + + self.kwargs.update({ + 'expiry': expiry, + 'account': storage_account, + 'container': container, + 'local_file': local_file, + 'blob': blob_name + }) + + # ----account key---- + # test sas-token for a container + sas = self.storage_cmd('storage container generate-sas -n {} --https-only --permissions dlrwt --expiry {} -otsv', + account_info, container, expiry).output.strip() + self.kwargs['container_sas'] = sas + self.cmd('storage blob upload -c {container} -f "{local_file}" -n {blob} ' + '--account-name {account} --sas-token "{container_sas}"') + + # test sas-token for a blob + sas = self.storage_cmd('storage blob generate-sas -c {} -n {} --https-only --permissions acdrwt --expiry {} ' + '-otsv', account_info, container, blob_name, expiry).output.strip() + self.kwargs['blob_sas'] = sas + self.cmd('storage blob upload -c {container} -f "{local_file}" -n {blob} --overwrite ' + '--account-name {account} --sas-token "{blob_sas}" --tags test=tag ') + + self.cmd('storage blob show -c {container} -n {blob} --account-name {account} --sas-token {blob_sas}') \ + .assert_with_checks(JMESPathCheck('name', blob_name), + JMESPathCheck('tagCount', 1)) + + self.cmd('storage blob tag list -n {} -c {} --account-name {} --sas-token "{}" '.format(blob_name, + container, storage_account, sas)).assert_with_checks(JMESPathCheck('test', 'tag')) + + # ----connection string---- + connection_str = self.cmd('storage account show-connection-string -n {account} --query connectionString ' + '-otsv').output.strip() + self.kwargs['con_str'] = connection_str + # test sas-token for a container + sas = self.cmd('storage container generate-sas -n {container} --https-only --permissions dlrw ' + '--connection-string {con_str} --expiry {expiry} -otsv').output.strip() + self.kwargs['container_sas'] = sas + self.cmd('storage blob upload -c {container} -f "{local_file}" -n {blob} ' + '--account-name {account} --sas-token "{container_sas}"') + + # test sas-token for a blob + sas = self.cmd('storage blob generate-sas -c {container} -n {blob} --account-name {account} --https-only ' + '--permissions acdrwt --expiry {expiry} -otsv').output.strip() + self.kwargs['blob_sas'] = sas + self.cmd('storage blob show -c {container} -n {blob} --account-name {account} --sas-token {blob_sas}') \ + .assert_with_checks(JMESPathCheck('name', blob_name)) + + @ResourceGroupPreparer() + @StorageAccountPreparer() + def test_storage_blob_sas_permission_scenario(self, resource_group, storage_account): + """ + Test service SAS with stored access policy. + + A stored access policy is defined on a resource container, which can be a blob container, table, queue, + or file share. The stored access policy can be used to manage constraints for one or more service shared + access signatures. When you associate a service SAS with a stored access policy, the SAS inherits the + constraints—the start time, expiry time, and permissions—defined for the stored access policy. + """ + expiry = (datetime.utcnow() + timedelta(hours=1)).strftime('%Y-%m-%dT%H:%MZ') + + account_info = self.get_account_info(resource_group, storage_account) + container = self.create_container(account_info) + local_file = self.create_temp_file(128, full_random=False) + blob_name = self.create_random_name('blob', 16) + policy = self.create_random_name('policy', 16) + + self.storage_cmd('storage container policy create -c {} -n {} --expiry {} --permissions acdlrw', account_info, + container, policy, expiry) + self.storage_cmd('storage container policy list -c {} ', account_info, container)\ + .assert_with_checks(JMESPathCheckExists('{}.expiry'.format(policy)), + JMESPathCheck('{}.permission'.format(policy), 'racwdl')) + self.storage_cmd('storage container policy show -c {} -n {} ', account_info, container, policy, expiry)\ + .assert_with_checks(JMESPathCheckExists('expiry'), + JMESPathCheck('permission', 'racwdl')) + + sas = self.storage_cmd('storage blob generate-sas -n {} -c {} --policy-name {} -otsv ', account_info, blob_name, + container, policy).output.strip() + + self.storage_cmd('storage blob upload -n {} -c {} -f "{}" --sas-token "{}" ', account_info, blob_name, container, + local_file, sas) + + self.storage_cmd('storage container policy update -c {} -n {} --permissions acdlr', account_info, container, + policy) + self.storage_cmd('storage container policy show -c {} -n {} ', account_info, container, policy)\ + .assert_with_checks(JMESPathCheckExists('expiry'), + JMESPathCheck('permission', 'racdl')) + self.storage_cmd('storage container policy delete -c {} -n {} ', account_info, container, policy) + self.storage_cmd('storage container policy list -c {} ', account_info, container) \ + .assert_with_checks(NoneCheck()) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/tests/storage_test_util.py b/src/storage-blob-preview/azext_storage_blob_preview/tests/storage_test_util.py new file mode 100644 index 00000000000..2c169c6f4a8 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/tests/storage_test_util.py @@ -0,0 +1,92 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import os +import tempfile +import shutil + +from azure.cli.testsdk.preparers import AbstractPreparer + + +class StorageScenarioMixin: + profile = None + + def get_current_profile(self): + if not self.profile: + self.profile = self.cmd('cloud show --query profile -otsv').output + return self.profile + + def get_account_key(self, group, name): + if self.get_current_profile() == '2017-03-09-profile': + template = 'storage account keys list -n {} -g {} --query "key1" -otsv' + else: + template = 'storage account keys list -n {} -g {} --query "[0].value" -otsv' + + return self.cmd(template.format(name, group)).output + + def get_account_info(self, group, name): + """Returns the storage account name and key in a tuple""" + return name, self.get_account_key(group, name) + + def storage_cmd(self, cmd, account_info, *args): + cmd = cmd.format(*args) + cmd = '{} --account-name {} --account-key {}'.format(cmd, *account_info) + return self.cmd(cmd) + + def storage_cmd_negative(self, cmd, account_info, *args): + cmd = cmd.format(*args) + cmd = '{} --account-name {} --account-key {}'.format(cmd, *account_info) + return self.cmd(cmd, expect_failure=True) + + def create_container(self, account_info, prefix='cont', length=24): + container_name = self.create_random_name(prefix=prefix, length=length) + self.storage_cmd('storage container create -n {}', account_info, container_name) + return container_name + + def create_share(self, account_info, prefix='share', length=24): + share_name = self.create_random_name(prefix=prefix, length=length) + self.storage_cmd('storage share create -n {}', account_info, share_name) + return share_name + + def create_file_system(self, account_info, prefix='filesystem', length=24): + filesystem_name = self.create_random_name(prefix=prefix, length=length) + self.storage_cmd('storage fs create -n {}', account_info, filesystem_name) + return filesystem_name + + +class StorageTestFilesPreparer(AbstractPreparer): + def __init__(self, parameter_name='test_dir'): + super(StorageTestFilesPreparer, self).__init__(name_prefix='test', name_len=24) + self.parameter_name = parameter_name + + def create_resource(self, name, **kwargs): + temp_dir = os.path.join(tempfile.gettempdir(), self.random_name) + if not os.path.exists(temp_dir): + os.mkdir(temp_dir) + + with open(os.path.join(temp_dir, 'readme'), 'w') as f: + f.write('This directory contains test files generated by Azure CLI storage command ' + 'module tests.') + + for folder_name in ['apple', 'butter', 'butter/charlie', 'duff/edward']: + for file_index in range(10): + file_path = os.path.join(temp_dir, folder_name, 'file_%s' % file_index) + if not os.path.exists(os.path.dirname(file_path)): + os.makedirs(os.path.dirname(file_path)) + + with open(file_path, 'w') as f: + f.write('Azure CLI storage command module test sample file. origin:' + ' %s' % file_path) + + setattr(self, '_temp_dir', temp_dir) + return {self.parameter_name: temp_dir} + + def remove_resource(self, name, **kwargs): + temp_dir = self.get_temp_dir() + if temp_dir: + shutil.rmtree(temp_dir, ignore_errors=True) + + def get_temp_dir(self): + return getattr(self, '_temp_dir', None) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/track2_util.py b/src/storage-blob-preview/azext_storage_blob_preview/track2_util.py new file mode 100644 index 00000000000..b6281c281c1 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/track2_util.py @@ -0,0 +1,91 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + + +def _dont_fail_on_exist(ex, error_code): + """ + don't throw exception if the resource doesn't exist. + This is called by create_* APIs with fail_on_exist=False + :param error: + :param resource: + :return: + """ + if ex.error_code == error_code: + return False + raise ex + + +def _if_match(if_match, **kwargs): + from azure.core import MatchConditions + # Precondition Check + if if_match == '*': + kwargs['match_condition'] = MatchConditions.IfPresent + else: + kwargs['etag'] = if_match + kwargs['match_condition'] = MatchConditions.IfNotModified + return kwargs + + +def _if_none_match(if_none_match, **kwargs): + from azure.core import MatchConditions + if if_none_match == '*': + kwargs['match_condition'] = MatchConditions.IfMissing + else: + kwargs['etag'] = if_none_match + kwargs['match_condition'] = MatchConditions.IfModified + return kwargs + + +def _encode_bytes(b): + import base64 + if isinstance(b, (bytes, bytearray)): + return base64.b64encode(b).decode('utf-8') + return b + + +def transform_dict_keys_to_hump(data_dict): + new_dict = {} + if not data_dict: + return new_dict + for key in data_dict: + new_dict[underline_to_hump(key)] = data_dict.get(key) + return new_dict + + +def underline_to_hump(underline_str): + import re + sub = re.sub(r'(_\w)', lambda x: x.group(1)[1].upper(), underline_str) + return sub + + +def get_include_help_string(include_list): + item = [] + for include in include_list: + if include.value == 'uncommittedblobs': + continue + item.append('(' + include.value[0] + ')' + include[1:]) + return ', '.join(item) + + +def list_generator(pages, num_results): + result = [] + + # get first page items + page = list(next(pages)) + result += page + + while True: + if not pages.continuation_token: + break + + # handle num results + if num_results is not None: + if num_results == len(result): + break + + page = list(next(pages)) + result += page + + return result diff --git a/src/storage-blob-preview/azext_storage_blob_preview/url_quote_util.py b/src/storage-blob-preview/azext_storage_blob_preview/url_quote_util.py new file mode 100644 index 00000000000..49f269d63ed --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/url_quote_util.py @@ -0,0 +1,42 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +""" +Tools to encode url components using python quoting. This is needed to make non-ascii characters safe for requests. +""" + +# Safe characters taken from the sdk: +# https://github.com/Azure/azure-multiapi-storage-python/blob/d4329a838f7d2fa6f0dab584274fd1bd3e77bcc4/azure/multiapi/storage/v2017_04_17/common/_serialization.py#L83 +SAFE_CHARS = '/()$=\',~' + + +def encode_for_url(url_component, safe=SAFE_CHARS): + from six.moves.urllib.parse import quote as url_quote # pylint: disable=import-error + return url_quote(url_component, safe) + + +def encode_url_path(url, safe=SAFE_CHARS): + from six.moves.urllib.parse import urlparse, urlunparse # pylint: disable=import-error + url_parts = urlparse(url) + quoted_path = encode_for_url(url_parts.path, safe) + return urlunparse(url_parts[:2] + (quoted_path,) + url_parts[3:]) + + +def make_encoded_file_url_and_params(file_service, share, file_dir, file_name, sas_token, safe=SAFE_CHARS): + """ + Makes the file url using the service. Converts the file directory and name into byte-strings if needed and returns + (url, dir, file) as a tuple. This is needed to account for string encoding differences between python 2 and 3. + """ + try: + file_url = file_service.make_file_url(share, file_dir, file_name, sas_token=sas_token) + except UnicodeEncodeError: + file_dir = file_dir.encode('utf-8') + file_name = file_name.encode('utf-8') + file_url = file_service.make_file_url(share, file_dir, file_name, sas_token=sas_token) + + if not file_dir: + sep = file_url.find('://') + file_url = file_url[:sep + 3] + file_url[sep + 3:].replace('//', '/') + return encode_url_path(file_url, safe), file_dir, file_name diff --git a/src/storage-blob-preview/azext_storage_blob_preview/util.py b/src/storage-blob-preview/azext_storage_blob_preview/util.py new file mode 100644 index 00000000000..dc4be315931 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/util.py @@ -0,0 +1,234 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + + +import os + + +def collect_blobs(blob_service, container, pattern=None): + """ + List the blobs in the given blob container, filter the blob by comparing their path to the given pattern. + """ + return [name for (name, _) in collect_blob_objects(blob_service, container, pattern)] + + +def collect_blob_objects(blob_service, container, pattern=None): + """ + List the blob name and blob in the given blob container, filter the blob by comparing their path to + the given pattern. + """ + if not blob_service: + raise ValueError('missing parameter blob_service') + + if not container: + raise ValueError('missing parameter container') + + if not _pattern_has_wildcards(pattern): + if blob_service.exists(container, pattern): + yield pattern, blob_service.get_blob_properties(container, pattern) + else: + for blob in blob_service.list_blobs(container): + try: + blob_name = blob.name.encode('utf-8') if isinstance(blob.name, unicode) else blob.name + except NameError: + blob_name = blob.name + + if not pattern or _match_path(blob_name, pattern): + yield blob_name, blob + + +def collect_files(cmd, file_service, share, pattern=None): + """ + Search files in the the given file share recursively. Filter the files by matching their path to the given pattern. + Returns a iterable of tuple (dir, name). + """ + if not file_service: + raise ValueError('missing parameter file_service') + + if not share: + raise ValueError('missing parameter share') + + if not _pattern_has_wildcards(pattern): + return [pattern] + + return glob_files_remotely(cmd, file_service, share, pattern) + + +def create_blob_service_from_storage_client(cmd, client): + t_block_blob_svc = cmd.get_models('blob#BlockBlobService') + return t_block_blob_svc(account_name=client.account_name, + account_key=client.account_key, + sas_token=client.sas_token) + + +def create_file_share_from_storage_client(cmd, client): + t_file_svc = cmd.get_models('file.fileservice#FileService') + return t_file_svc(account_name=client.account_name, + account_key=client.account_key, + sas_token=client.sas_token) + + +def filter_none(iterable): + return (x for x in iterable if x is not None) + + +def glob_files_locally(folder_path, pattern): + """glob files in local folder based on the given pattern""" + + pattern = os.path.join(folder_path, pattern.lstrip('/')) if pattern else None + + len_folder_path = len(folder_path) + 1 + for root, _, files in os.walk(folder_path): + for f in files: + full_path = os.path.join(root, f) + if not pattern or _match_path(full_path, pattern): + yield (full_path, full_path[len_folder_path:]) + + +def glob_files_remotely(cmd, client, share_name, pattern): + """glob the files in remote file share based on the given pattern""" + from collections import deque + t_dir, t_file = cmd.get_models('file.models#Directory', 'file.models#File') + + queue = deque([""]) + while queue: + current_dir = queue.pop() + for f in client.list_directories_and_files(share_name, current_dir): + if isinstance(f, t_file): + if not pattern or _match_path(os.path.join(current_dir, f.name), pattern): + yield current_dir, f.name + elif isinstance(f, t_dir): + queue.appendleft(os.path.join(current_dir, f.name)) + + +def create_short_lived_blob_sas(cmd, account_name, account_key, container, blob): + from datetime import datetime, timedelta + if cmd.supported_api_version(min_api='2017-04-17'): + t_sas = cmd.get_models('blob.sharedaccesssignature#BlobSharedAccessSignature') + else: + t_sas = cmd.get_models('shareaccesssignature#SharedAccessSignature') + + t_blob_permissions = cmd.get_models('blob.models#BlobPermissions') + expiry = (datetime.utcnow() + timedelta(days=1)).strftime('%Y-%m-%dT%H:%M:%SZ') + sas = t_sas(account_name, account_key) + return sas.generate_blob(container, blob, permission=t_blob_permissions(read=True), expiry=expiry, protocol='https') + + +def create_short_lived_file_sas(cmd, account_name, account_key, share, directory_name, file_name): + from datetime import datetime, timedelta + if cmd.supported_api_version(min_api='2017-04-17'): + t_sas = cmd.get_models('file.sharedaccesssignature#FileSharedAccessSignature') + else: + t_sas = cmd.get_models('sharedaccesssignature#SharedAccessSignature') + + t_file_permissions = cmd.get_models('file.models#FilePermissions') + # if dir is empty string change it to None + directory_name = directory_name if directory_name else None + expiry = (datetime.utcnow() + timedelta(days=1)).strftime('%Y-%m-%dT%H:%M:%SZ') + sas = t_sas(account_name, account_key) + return sas.generate_file(share, directory_name=directory_name, file_name=file_name, + permission=t_file_permissions(read=True), expiry=expiry, protocol='https') + + +def create_short_lived_container_sas(cmd, account_name, account_key, container): + from datetime import datetime, timedelta + if cmd.supported_api_version(min_api='2017-04-17'): + t_sas = cmd.get_models('blob.sharedaccesssignature#BlobSharedAccessSignature') + else: + t_sas = cmd.get_models('sharedaccesssignature#SharedAccessSignature') + t_blob_permissions = cmd.get_models('blob.models#BlobPermissions') + + expiry = (datetime.utcnow() + timedelta(days=1)).strftime('%Y-%m-%dT%H:%M:%SZ') + sas = t_sas(account_name, account_key) + return sas.generate_container(container, permission=t_blob_permissions(read=True), expiry=expiry, protocol='https') + + +def create_short_lived_share_sas(cmd, account_name, account_key, share): + from datetime import datetime, timedelta + if cmd.supported_api_version(min_api='2017-04-17'): + t_sas = cmd.get_models('file.sharedaccesssignature#FileSharedAccessSignature') + else: + t_sas = cmd.get_models('sharedaccesssignature#SharedAccessSignature') + + t_file_permissions = cmd.get_models('file.models#FilePermissions') + expiry = (datetime.utcnow() + timedelta(days=1)).strftime('%Y-%m-%dT%H:%M:%SZ') + sas = t_sas(account_name, account_key) + return sas.generate_share(share, permission=t_file_permissions(read=True), expiry=expiry, protocol='https') + + +def mkdir_p(path): + import errno + try: + os.makedirs(path) + except OSError as exc: # Python <= 2.5 + if exc.errno == errno.EEXIST and os.path.isdir(path): + pass + else: + raise + + +def _pattern_has_wildcards(p): + return not p or p.find('*') != -1 or p.find('?') != -1 or p.find('[') != -1 + + +def _match_path(path, pattern): + from fnmatch import fnmatch + return fnmatch(path, pattern) + + +def guess_content_type(file_path, original, settings_class): + if original.content_encoding or original.content_type: + return original + + import mimetypes + mimetypes.add_type('application/json', '.json') + mimetypes.add_type('application/javascript', '.js') + mimetypes.add_type('application/wasm', '.wasm') + + content_type, _ = mimetypes.guess_type(file_path) + return settings_class( + content_type=content_type, + content_encoding=original.content_encoding, + content_disposition=original.content_disposition, + content_language=original.content_language, + content_md5=original.content_md5, + cache_control=original.cache_control) + + +def get_storage_client(cli_ctx, service_type, namespace): + from azure.cli.command_modules.storage._client_factory import get_storage_data_service_client + + az_config = cli_ctx.config + + name = getattr(namespace, 'account_name', az_config.get('storage', 'account', None)) + key = getattr(namespace, 'account_key', az_config.get('storage', 'key', None)) + connection_string = getattr(namespace, 'connection_string', az_config.get('storage', 'connection_string', None)) + sas_token = getattr(namespace, 'sas_token', az_config.get('storage', 'sas_token', None)) + + return get_storage_data_service_client(cli_ctx, service_type, name, key, connection_string, sas_token) + + +def normalize_blob_file_path(path, name): + # '/' is the path separator used by blobs/files, we normalize to it + path_sep = '/' + if path: + name = path_sep.join((path, name)) + return path_sep.join(os.path.normpath(name).split(os.path.sep)).strip(path_sep) + + +def check_precondition_success(func): + def wrapper(*args, **kwargs): + from azure.common import AzureHttpError + try: + return True, func(*args, **kwargs) + except AzureHttpError as ex: + # Precondition failed error + # https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/412 + # Not modified error + # https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/304 + if ex.status_code not in [304, 412]: + raise + return False, None + return wrapper diff --git a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/__init__.py similarity index 84% rename from src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/__init__.py rename to src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/__init__.py index 34913fb394d..66c5d46008f 100644 --- a/src/ai-did-you-mean-this/azext_ai_did_you_mean_this/tests/latest/mock/__init__.py +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/__init__.py @@ -2,3 +2,4 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_hybrid_compute_management_client_enums.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/__init__.py similarity index 60% rename from src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_hybrid_compute_management_client_enums.py rename to src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/__init__.py index 3abdca4c61f..da2c3f969e6 100644 --- a/src/connectedmachine/azext_connectedmachine/vendored_sdks/models/_hybrid_compute_management_client_enums.py +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/__init__.py @@ -9,23 +9,11 @@ # regenerated. # -------------------------------------------------------------------------- -from enum import Enum +from ._configuration import StorageManagementClientConfiguration +from ._storage_management_client import StorageManagementClient +__all__ = ['StorageManagementClient', 'StorageManagementClientConfiguration'] +from .version import VERSION -class StatusTypes(str, Enum): +__version__ = VERSION - connected = "Connected" - disconnected = "Disconnected" - error = "Error" - - -class StatusLevelTypes(str, Enum): - - info = "Info" - warning = "Warning" - error = "Error" - - -class InstanceViewTypes(str, Enum): - - instance_view = "instanceView" diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/_configuration.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/_configuration.py new file mode 100644 index 00000000000..57fa5132dc8 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/_configuration.py @@ -0,0 +1,48 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +from msrestazure import AzureConfiguration + +from .version import VERSION + + +class StorageManagementClientConfiguration(AzureConfiguration): + """Configuration for StorageManagementClient + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credentials: Credentials needed for the client to connect to Azure. + :type credentials: :mod:`A msrestazure Credentials + object` + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :param str base_url: Service URL + """ + + def __init__( + self, credentials, subscription_id, base_url=None): + + if credentials is None: + raise ValueError("Parameter 'credentials' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + if not base_url: + base_url = 'https://management.azure.com' + + super(StorageManagementClientConfiguration, self).__init__(base_url) + + # Starting Autorest.Python 4.0.64, make connection pool activated by default + self.keep_alive = True + + self.add_user_agent('azure-mgmt-storage/{}'.format(VERSION)) + self.add_user_agent('Azure-SDK-For-Python') + + self.credentials = credentials + self.subscription_id = subscription_id diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/_storage_management_client.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/_storage_management_client.py new file mode 100644 index 00000000000..c468c8a66b6 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/_storage_management_client.py @@ -0,0 +1,415 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.service_client import SDKClient +from msrest import Serializer, Deserializer + +from azure.profiles import KnownProfiles, ProfileDefinition +from azure.profiles.multiapiclient import MultiApiClientMixin +from ._configuration import StorageManagementClientConfiguration + + + +class StorageManagementClient(MultiApiClientMixin, SDKClient): + """The Azure Storage Management API. + + This ready contains multiple API versions, to help you deal with all Azure clouds + (Azure Stack, Azure Government, Azure China, etc.). + By default, uses latest API version available on public Azure. + For production, you should stick a particular api-version and/or profile. + The profile sets a mapping between the operation group and an API version. + The api-version parameter sets the default API version if the operation + group is not described in the profile. + + :ivar config: Configuration for client. + :vartype config: StorageManagementClientConfiguration + + :param credentials: Credentials needed for the client to connect to Azure. + :type credentials: :mod:`A msrestazure Credentials + object` + :param subscription_id: Subscription credentials which uniquely identify + Microsoft Azure subscription. The subscription ID forms part of the URI + for every service call. + :type subscription_id: str + :param str api_version: API version to use if no profile is provided, or if + missing in profile. + :param str base_url: Service URL + :param profile: A profile definition, from KnownProfiles to dict. + :type profile: azure.profiles.KnownProfiles + """ + + DEFAULT_API_VERSION = '2019-06-01' + _PROFILE_TAG = "azure.mgmt.storage.StorageManagementClient" + LATEST_PROFILE = ProfileDefinition({ + _PROFILE_TAG: { + None: DEFAULT_API_VERSION, + 'usage': '2018-02-01', + }}, + _PROFILE_TAG + " latest" + ) + + def __init__(self, credentials, subscription_id, api_version=None, base_url=None, profile=KnownProfiles.default): + self.config = StorageManagementClientConfiguration(credentials, subscription_id, base_url) + super(StorageManagementClient, self).__init__( + credentials, + self.config, + api_version=api_version, + profile=profile + ) + + @classmethod + def _models_dict(cls, api_version): + return {k: v for k, v in cls.models(api_version).__dict__.items() if isinstance(v, type)} + + @classmethod + def models(cls, api_version=DEFAULT_API_VERSION): + """Module depends on the API version: + + * 2015-06-15: :mod:`v2015_06_15.models` + * 2016-01-01: :mod:`v2016_01_01.models` + * 2016-12-01: :mod:`v2016_12_01.models` + * 2017-06-01: :mod:`v2017_06_01.models` + * 2017-10-01: :mod:`v2017_10_01.models` + * 2018-02-01: :mod:`v2018_02_01.models` + * 2018-03-01-preview: :mod:`v2018_03_01_preview.models` + * 2018-07-01: :mod:`v2018_07_01.models` + * 2018-11-01: :mod:`v2018_11_01.models` + * 2019-04-01: :mod:`v2019_04_01.models` + * 2019-06-01: :mod:`v2019_06_01.models` + """ + if api_version == '2015-06-15': + from .v2015_06_15 import models + return models + elif api_version == '2016-01-01': + from .v2016_01_01 import models + return models + elif api_version == '2016-12-01': + from .v2016_12_01 import models + return models + elif api_version == '2017-06-01': + from .v2017_06_01 import models + return models + elif api_version == '2017-10-01': + from .v2017_10_01 import models + return models + elif api_version == '2018-02-01': + from .v2018_02_01 import models + return models + elif api_version == '2018-03-01-preview': + from .v2018_03_01_preview import models + return models + elif api_version == '2018-07-01': + from .v2018_07_01 import models + return models + elif api_version == '2018-11-01': + from .v2018_11_01 import models + return models + elif api_version == '2019-04-01': + from .v2019_04_01 import models + return models + elif api_version == '2019-06-01': + from .v2019_06_01 import models + return models + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + + @property + def blob_containers(self): + """Instance depends on the API version: + + * 2018-02-01: :class:`BlobContainersOperations` + * 2018-03-01-preview: :class:`BlobContainersOperations` + * 2018-07-01: :class:`BlobContainersOperations` + * 2018-11-01: :class:`BlobContainersOperations` + * 2019-04-01: :class:`BlobContainersOperations` + * 2019-06-01: :class:`BlobContainersOperations` + """ + api_version = self._get_api_version('blob_containers') + if api_version == '2018-02-01': + from .v2018_02_01.operations import BlobContainersOperations as OperationClass + elif api_version == '2018-03-01-preview': + from .v2018_03_01_preview.operations import BlobContainersOperations as OperationClass + elif api_version == '2018-07-01': + from .v2018_07_01.operations import BlobContainersOperations as OperationClass + elif api_version == '2018-11-01': + from .v2018_11_01.operations import BlobContainersOperations as OperationClass + elif api_version == '2019-04-01': + from .v2019_04_01.operations import BlobContainersOperations as OperationClass + elif api_version == '2019-06-01': + from .v2019_06_01.operations import BlobContainersOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def blob_services(self): + """Instance depends on the API version: + + * 2018-07-01: :class:`BlobServicesOperations` + * 2018-11-01: :class:`BlobServicesOperations` + * 2019-04-01: :class:`BlobServicesOperations` + * 2019-06-01: :class:`BlobServicesOperations` + """ + api_version = self._get_api_version('blob_services') + if api_version == '2018-07-01': + from .v2018_07_01.operations import BlobServicesOperations as OperationClass + elif api_version == '2018-11-01': + from .v2018_11_01.operations import BlobServicesOperations as OperationClass + elif api_version == '2019-04-01': + from .v2019_04_01.operations import BlobServicesOperations as OperationClass + elif api_version == '2019-06-01': + from .v2019_06_01.operations import BlobServicesOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def file_services(self): + """Instance depends on the API version: + + * 2019-04-01: :class:`FileServicesOperations` + * 2019-06-01: :class:`FileServicesOperations` + """ + api_version = self._get_api_version('file_services') + if api_version == '2019-04-01': + from .v2019_04_01.operations import FileServicesOperations as OperationClass + elif api_version == '2019-06-01': + from .v2019_06_01.operations import FileServicesOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def file_shares(self): + """Instance depends on the API version: + + * 2019-04-01: :class:`FileSharesOperations` + * 2019-06-01: :class:`FileSharesOperations` + """ + api_version = self._get_api_version('file_shares') + if api_version == '2019-04-01': + from .v2019_04_01.operations import FileSharesOperations as OperationClass + elif api_version == '2019-06-01': + from .v2019_06_01.operations import FileSharesOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def management_policies(self): + """Instance depends on the API version: + + * 2018-07-01: :class:`ManagementPoliciesOperations` + * 2018-11-01: :class:`ManagementPoliciesOperations` + * 2019-04-01: :class:`ManagementPoliciesOperations` + * 2019-06-01: :class:`ManagementPoliciesOperations` + """ + api_version = self._get_api_version('management_policies') + if api_version == '2018-07-01': + from .v2018_07_01.operations import ManagementPoliciesOperations as OperationClass + elif api_version == '2018-11-01': + from .v2018_11_01.operations import ManagementPoliciesOperations as OperationClass + elif api_version == '2019-04-01': + from .v2019_04_01.operations import ManagementPoliciesOperations as OperationClass + elif api_version == '2019-06-01': + from .v2019_06_01.operations import ManagementPoliciesOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def operations(self): + """Instance depends on the API version: + + * 2017-06-01: :class:`Operations` + * 2017-10-01: :class:`Operations` + * 2018-02-01: :class:`Operations` + * 2018-03-01-preview: :class:`Operations` + * 2018-07-01: :class:`Operations` + * 2018-11-01: :class:`Operations` + * 2019-04-01: :class:`Operations` + * 2019-06-01: :class:`Operations` + """ + api_version = self._get_api_version('operations') + if api_version == '2017-06-01': + from .v2017_06_01.operations import Operations as OperationClass + elif api_version == '2017-10-01': + from .v2017_10_01.operations import Operations as OperationClass + elif api_version == '2018-02-01': + from .v2018_02_01.operations import Operations as OperationClass + elif api_version == '2018-03-01-preview': + from .v2018_03_01_preview.operations import Operations as OperationClass + elif api_version == '2018-07-01': + from .v2018_07_01.operations import Operations as OperationClass + elif api_version == '2018-11-01': + from .v2018_11_01.operations import Operations as OperationClass + elif api_version == '2019-04-01': + from .v2019_04_01.operations import Operations as OperationClass + elif api_version == '2019-06-01': + from .v2019_06_01.operations import Operations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def private_endpoint_connections(self): + """Instance depends on the API version: + + * 2019-06-01: :class:`PrivateEndpointConnectionsOperations` + """ + api_version = self._get_api_version('private_endpoint_connections') + if api_version == '2019-06-01': + from .v2019_06_01.operations import PrivateEndpointConnectionsOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def private_link_resources(self): + """Instance depends on the API version: + + * 2019-06-01: :class:`PrivateLinkResourcesOperations` + """ + api_version = self._get_api_version('private_link_resources') + if api_version == '2019-06-01': + from .v2019_06_01.operations import PrivateLinkResourcesOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def skus(self): + """Instance depends on the API version: + + * 2017-06-01: :class:`SkusOperations` + * 2017-10-01: :class:`SkusOperations` + * 2018-02-01: :class:`SkusOperations` + * 2018-03-01-preview: :class:`SkusOperations` + * 2018-07-01: :class:`SkusOperations` + * 2018-11-01: :class:`SkusOperations` + * 2019-04-01: :class:`SkusOperations` + * 2019-06-01: :class:`SkusOperations` + """ + api_version = self._get_api_version('skus') + if api_version == '2017-06-01': + from .v2017_06_01.operations import SkusOperations as OperationClass + elif api_version == '2017-10-01': + from .v2017_10_01.operations import SkusOperations as OperationClass + elif api_version == '2018-02-01': + from .v2018_02_01.operations import SkusOperations as OperationClass + elif api_version == '2018-03-01-preview': + from .v2018_03_01_preview.operations import SkusOperations as OperationClass + elif api_version == '2018-07-01': + from .v2018_07_01.operations import SkusOperations as OperationClass + elif api_version == '2018-11-01': + from .v2018_11_01.operations import SkusOperations as OperationClass + elif api_version == '2019-04-01': + from .v2019_04_01.operations import SkusOperations as OperationClass + elif api_version == '2019-06-01': + from .v2019_06_01.operations import SkusOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def storage_accounts(self): + """Instance depends on the API version: + + * 2015-06-15: :class:`StorageAccountsOperations` + * 2016-01-01: :class:`StorageAccountsOperations` + * 2016-12-01: :class:`StorageAccountsOperations` + * 2017-06-01: :class:`StorageAccountsOperations` + * 2017-10-01: :class:`StorageAccountsOperations` + * 2018-02-01: :class:`StorageAccountsOperations` + * 2018-03-01-preview: :class:`StorageAccountsOperations` + * 2018-07-01: :class:`StorageAccountsOperations` + * 2018-11-01: :class:`StorageAccountsOperations` + * 2019-04-01: :class:`StorageAccountsOperations` + * 2019-06-01: :class:`StorageAccountsOperations` + """ + api_version = self._get_api_version('storage_accounts') + if api_version == '2015-06-15': + from .v2015_06_15.operations import StorageAccountsOperations as OperationClass + elif api_version == '2016-01-01': + from .v2016_01_01.operations import StorageAccountsOperations as OperationClass + elif api_version == '2016-12-01': + from .v2016_12_01.operations import StorageAccountsOperations as OperationClass + elif api_version == '2017-06-01': + from .v2017_06_01.operations import StorageAccountsOperations as OperationClass + elif api_version == '2017-10-01': + from .v2017_10_01.operations import StorageAccountsOperations as OperationClass + elif api_version == '2018-02-01': + from .v2018_02_01.operations import StorageAccountsOperations as OperationClass + elif api_version == '2018-03-01-preview': + from .v2018_03_01_preview.operations import StorageAccountsOperations as OperationClass + elif api_version == '2018-07-01': + from .v2018_07_01.operations import StorageAccountsOperations as OperationClass + elif api_version == '2018-11-01': + from .v2018_11_01.operations import StorageAccountsOperations as OperationClass + elif api_version == '2019-04-01': + from .v2019_04_01.operations import StorageAccountsOperations as OperationClass + elif api_version == '2019-06-01': + from .v2019_06_01.operations import StorageAccountsOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def usage(self): + """Instance depends on the API version: + + * 2015-06-15: :class:`UsageOperations` + * 2016-01-01: :class:`UsageOperations` + * 2016-12-01: :class:`UsageOperations` + * 2017-06-01: :class:`UsageOperations` + * 2017-10-01: :class:`UsageOperations` + * 2018-02-01: :class:`UsageOperations` + """ + api_version = self._get_api_version('usage') + if api_version == '2015-06-15': + from .v2015_06_15.operations import UsageOperations as OperationClass + elif api_version == '2016-01-01': + from .v2016_01_01.operations import UsageOperations as OperationClass + elif api_version == '2016-12-01': + from .v2016_12_01.operations import UsageOperations as OperationClass + elif api_version == '2017-06-01': + from .v2017_06_01.operations import UsageOperations as OperationClass + elif api_version == '2017-10-01': + from .v2017_10_01.operations import UsageOperations as OperationClass + elif api_version == '2018-02-01': + from .v2018_02_01.operations import UsageOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + + @property + def usages(self): + """Instance depends on the API version: + + * 2018-03-01-preview: :class:`UsagesOperations` + * 2018-07-01: :class:`UsagesOperations` + * 2018-11-01: :class:`UsagesOperations` + * 2019-04-01: :class:`UsagesOperations` + * 2019-06-01: :class:`UsagesOperations` + """ + api_version = self._get_api_version('usages') + if api_version == '2018-03-01-preview': + from .v2018_03_01_preview.operations import UsagesOperations as OperationClass + elif api_version == '2018-07-01': + from .v2018_07_01.operations import UsagesOperations as OperationClass + elif api_version == '2018-11-01': + from .v2018_11_01.operations import UsagesOperations as OperationClass + elif api_version == '2019-04-01': + from .v2019_04_01.operations import UsagesOperations as OperationClass + elif api_version == '2019-06-01': + from .v2019_06_01.operations import UsagesOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/models.py new file mode 100644 index 00000000000..35b6148bf8e --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/models.py @@ -0,0 +1,8 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +from .v2018_02_01.models import * +from .v2019_06_01.models import * diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/__init__.py new file mode 100644 index 00000000000..da2c3f969e6 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/__init__.py @@ -0,0 +1,19 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._configuration import StorageManagementClientConfiguration +from ._storage_management_client import StorageManagementClient +__all__ = ['StorageManagementClient', 'StorageManagementClientConfiguration'] + +from .version import VERSION + +__version__ = VERSION + diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/_configuration.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/_configuration.py new file mode 100644 index 00000000000..57fa5132dc8 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/_configuration.py @@ -0,0 +1,48 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- +from msrestazure import AzureConfiguration + +from .version import VERSION + + +class StorageManagementClientConfiguration(AzureConfiguration): + """Configuration for StorageManagementClient + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credentials: Credentials needed for the client to connect to Azure. + :type credentials: :mod:`A msrestazure Credentials + object` + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :param str base_url: Service URL + """ + + def __init__( + self, credentials, subscription_id, base_url=None): + + if credentials is None: + raise ValueError("Parameter 'credentials' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + if not base_url: + base_url = 'https://management.azure.com' + + super(StorageManagementClientConfiguration, self).__init__(base_url) + + # Starting Autorest.Python 4.0.64, make connection pool activated by default + self.keep_alive = True + + self.add_user_agent('azure-mgmt-storage/{}'.format(VERSION)) + self.add_user_agent('Azure-SDK-For-Python') + + self.credentials = credentials + self.subscription_id = subscription_id diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/_storage_management_client.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/_storage_management_client.py new file mode 100644 index 00000000000..692c9e08d5f --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/_storage_management_client.py @@ -0,0 +1,99 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.service_client import SDKClient +from msrest import Serializer, Deserializer + +from ._configuration import StorageManagementClientConfiguration +from .operations import Operations +from .operations import SkusOperations +from .operations import StorageAccountsOperations +from .operations import UsagesOperations +from .operations import ManagementPoliciesOperations +from .operations import PrivateEndpointConnectionsOperations +from .operations import PrivateLinkResourcesOperations +from .operations import BlobServicesOperations +from .operations import BlobContainersOperations +from .operations import FileServicesOperations +from .operations import FileSharesOperations +from . import models + + +class StorageManagementClient(SDKClient): + """The Azure Storage Management API. + + :ivar config: Configuration for client. + :vartype config: StorageManagementClientConfiguration + + :ivar operations: Operations operations + :vartype operations: azure.mgmt.storage.v2019_06_01.operations.Operations + :ivar skus: Skus operations + :vartype skus: azure.mgmt.storage.v2019_06_01.operations.SkusOperations + :ivar storage_accounts: StorageAccounts operations + :vartype storage_accounts: azure.mgmt.storage.v2019_06_01.operations.StorageAccountsOperations + :ivar usages: Usages operations + :vartype usages: azure.mgmt.storage.v2019_06_01.operations.UsagesOperations + :ivar management_policies: ManagementPolicies operations + :vartype management_policies: azure.mgmt.storage.v2019_06_01.operations.ManagementPoliciesOperations + :ivar private_endpoint_connections: PrivateEndpointConnections operations + :vartype private_endpoint_connections: azure.mgmt.storage.v2019_06_01.operations.PrivateEndpointConnectionsOperations + :ivar private_link_resources: PrivateLinkResources operations + :vartype private_link_resources: azure.mgmt.storage.v2019_06_01.operations.PrivateLinkResourcesOperations + :ivar blob_services: BlobServices operations + :vartype blob_services: azure.mgmt.storage.v2019_06_01.operations.BlobServicesOperations + :ivar blob_containers: BlobContainers operations + :vartype blob_containers: azure.mgmt.storage.v2019_06_01.operations.BlobContainersOperations + :ivar file_services: FileServices operations + :vartype file_services: azure.mgmt.storage.v2019_06_01.operations.FileServicesOperations + :ivar file_shares: FileShares operations + :vartype file_shares: azure.mgmt.storage.v2019_06_01.operations.FileSharesOperations + + :param credentials: Credentials needed for the client to connect to Azure. + :type credentials: :mod:`A msrestazure Credentials + object` + :param subscription_id: The ID of the target subscription. + :type subscription_id: str + :param str base_url: Service URL + """ + + def __init__( + self, credentials, subscription_id, base_url=None): + + self.config = StorageManagementClientConfiguration(credentials, subscription_id, base_url) + super(StorageManagementClient, self).__init__(self.config.credentials, self.config) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self.api_version = '2019-06-01' + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.operations = Operations( + self._client, self.config, self._serialize, self._deserialize) + self.skus = SkusOperations( + self._client, self.config, self._serialize, self._deserialize) + self.storage_accounts = StorageAccountsOperations( + self._client, self.config, self._serialize, self._deserialize) + self.usages = UsagesOperations( + self._client, self.config, self._serialize, self._deserialize) + self.management_policies = ManagementPoliciesOperations( + self._client, self.config, self._serialize, self._deserialize) + self.private_endpoint_connections = PrivateEndpointConnectionsOperations( + self._client, self.config, self._serialize, self._deserialize) + self.private_link_resources = PrivateLinkResourcesOperations( + self._client, self.config, self._serialize, self._deserialize) + self.blob_services = BlobServicesOperations( + self._client, self.config, self._serialize, self._deserialize) + self.blob_containers = BlobContainersOperations( + self._client, self.config, self._serialize, self._deserialize) + self.file_services = FileServicesOperations( + self._client, self.config, self._serialize, self._deserialize) + self.file_shares = FileSharesOperations( + self._client, self.config, self._serialize, self._deserialize) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/__init__.py new file mode 100644 index 00000000000..782e199e552 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/__init__.py @@ -0,0 +1,355 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import AccountSasParameters + from ._models_py3 import ActiveDirectoryProperties + from ._models_py3 import AzureEntityResource + from ._models_py3 import AzureFilesIdentityBasedAuthentication + from ._models_py3 import BlobContainer + from ._models_py3 import BlobRestoreParameters + from ._models_py3 import BlobRestoreRange + from ._models_py3 import BlobRestoreStatus + from ._models_py3 import BlobServiceProperties + from ._models_py3 import ChangeFeed + from ._models_py3 import CheckNameAvailabilityResult + from ._models_py3 import CorsRule + from ._models_py3 import CorsRules + from ._models_py3 import CustomDomain + from ._models_py3 import DateAfterCreation + from ._models_py3 import DateAfterModification + from ._models_py3 import DeleteRetentionPolicy + from ._models_py3 import Dimension + from ._models_py3 import Encryption + from ._models_py3 import EncryptionService + from ._models_py3 import EncryptionServices + from ._models_py3 import Endpoints + from ._models_py3 import ErrorResponse, ErrorResponseException + from ._models_py3 import FileServiceItems + from ._models_py3 import FileServiceProperties + from ._models_py3 import FileShare + from ._models_py3 import FileShareItem + from ._models_py3 import GeoReplicationStats + from ._models_py3 import Identity + from ._models_py3 import ImmutabilityPolicy + from ._models_py3 import ImmutabilityPolicyProperties + from ._models_py3 import IPRule + from ._models_py3 import KeyVaultProperties + from ._models_py3 import LastAccessTimeTrackingPolicy + from ._models_py3 import LeaseContainerRequest + from ._models_py3 import LeaseContainerResponse + from ._models_py3 import LegalHold + from ._models_py3 import LegalHoldProperties + from ._models_py3 import ListAccountSasResponse + from ._models_py3 import ListContainerItem + from ._models_py3 import ListServiceSasResponse + from ._models_py3 import ManagementPolicy + from ._models_py3 import ManagementPolicyAction + from ._models_py3 import ManagementPolicyBaseBlob + from ._models_py3 import ManagementPolicyDefinition + from ._models_py3 import ManagementPolicyFilter + from ._models_py3 import ManagementPolicyRule + from ._models_py3 import ManagementPolicySchema + from ._models_py3 import ManagementPolicySnapShot + from ._models_py3 import MetricSpecification + from ._models_py3 import NetworkRuleSet + from ._models_py3 import Operation + from ._models_py3 import OperationDisplay + from ._models_py3 import PrivateEndpoint + from ._models_py3 import PrivateEndpointConnection + from ._models_py3 import PrivateLinkResource + from ._models_py3 import PrivateLinkResourceListResult + from ._models_py3 import PrivateLinkServiceConnectionState + from ._models_py3 import ProxyResource + from ._models_py3 import Resource + from ._models_py3 import RestorePolicyProperties + from ._models_py3 import Restriction + from ._models_py3 import RoutingPreference + from ._models_py3 import ServiceSasParameters + from ._models_py3 import ServiceSpecification + from ._models_py3 import Sku + from ._models_py3 import SKUCapability + from ._models_py3 import SkuInformation + from ._models_py3 import StorageAccount + from ._models_py3 import StorageAccountCheckNameAvailabilityParameters + from ._models_py3 import StorageAccountCreateParameters + from ._models_py3 import StorageAccountInternetEndpoints + from ._models_py3 import StorageAccountKey + from ._models_py3 import StorageAccountListKeysResult + from ._models_py3 import StorageAccountMicrosoftEndpoints + from ._models_py3 import StorageAccountRegenerateKeyParameters + from ._models_py3 import StorageAccountUpdateParameters + from ._models_py3 import TagProperty + from ._models_py3 import TrackedResource + from ._models_py3 import UpdateHistoryProperty + from ._models_py3 import Usage + from ._models_py3 import UsageName + from ._models_py3 import VirtualNetworkRule +except (SyntaxError, ImportError): + from ._models import AccountSasParameters + from ._models import ActiveDirectoryProperties + from ._models import AzureEntityResource + from ._models import AzureFilesIdentityBasedAuthentication + from ._models import BlobContainer + from ._models import BlobRestoreParameters + from ._models import BlobRestoreRange + from ._models import BlobRestoreStatus + from ._models import BlobServiceProperties + from ._models import ChangeFeed + from ._models import CheckNameAvailabilityResult + from ._models import CorsRule + from ._models import CorsRules + from ._models import CustomDomain + from ._models import DateAfterCreation + from ._models import DateAfterModification + from ._models import DeleteRetentionPolicy + from ._models import Dimension + from ._models import Encryption + from ._models import EncryptionService + from ._models import EncryptionServices + from ._models import Endpoints + from ._models import ErrorResponse, ErrorResponseException + from ._models import FileServiceItems + from ._models import FileServiceProperties + from ._models import FileShare + from ._models import FileShareItem + from ._models import GeoReplicationStats + from ._models import Identity + from ._models import ImmutabilityPolicy + from ._models import ImmutabilityPolicyProperties + from ._models import IPRule + from ._models import KeyVaultProperties + from ._models import LastAccessTimeTrackingPolicy + from ._models import LeaseContainerRequest + from ._models import LeaseContainerResponse + from ._models import LegalHold + from ._models import LegalHoldProperties + from ._models import ListAccountSasResponse + from ._models import ListContainerItem + from ._models import ListServiceSasResponse + from ._models import ManagementPolicy + from ._models import ManagementPolicyAction + from ._models import ManagementPolicyBaseBlob + from ._models import ManagementPolicyDefinition + from ._models import ManagementPolicyFilter + from ._models import ManagementPolicyRule + from ._models import ManagementPolicySchema + from ._models import ManagementPolicySnapShot + from ._models import MetricSpecification + from ._models import NetworkRuleSet + from ._models import Operation + from ._models import OperationDisplay + from ._models import PrivateEndpoint + from ._models import PrivateEndpointConnection + from ._models import PrivateLinkResource + from ._models import PrivateLinkResourceListResult + from ._models import PrivateLinkServiceConnectionState + from ._models import ProxyResource + from ._models import Resource + from ._models import RestorePolicyProperties + from ._models import Restriction + from ._models import RoutingPreference + from ._models import ServiceSasParameters + from ._models import ServiceSpecification + from ._models import Sku + from ._models import SKUCapability + from ._models import SkuInformation + from ._models import StorageAccount + from ._models import StorageAccountCheckNameAvailabilityParameters + from ._models import StorageAccountCreateParameters + from ._models import StorageAccountInternetEndpoints + from ._models import StorageAccountKey + from ._models import StorageAccountListKeysResult + from ._models import StorageAccountMicrosoftEndpoints + from ._models import StorageAccountRegenerateKeyParameters + from ._models import StorageAccountUpdateParameters + from ._models import TagProperty + from ._models import TrackedResource + from ._models import UpdateHistoryProperty + from ._models import Usage + from ._models import UsageName + from ._models import VirtualNetworkRule +from ._paged_models import BlobServicePropertiesPaged +from ._paged_models import FileShareItemPaged +from ._paged_models import ListContainerItemPaged +from ._paged_models import OperationPaged +from ._paged_models import SkuInformationPaged +from ._paged_models import StorageAccountPaged +from ._paged_models import UsagePaged +from ._storage_management_client_enums import ( + ReasonCode, + SkuName, + SkuTier, + Kind, + Reason, + KeyType, + KeySource, + Action, + State, + Bypass, + DefaultAction, + DirectoryServiceOptions, + AccessTier, + LargeFileSharesState, + RoutingChoice, + GeoReplicationStatus, + BlobRestoreProgressStatus, + ProvisioningState, + AccountStatus, + PrivateEndpointServiceConnectionStatus, + PrivateEndpointConnectionProvisioningState, + KeyPermission, + UsageUnit, + Services, + SignedResourceTypes, + Permissions, + HttpProtocol, + SignedResource, + PublicAccess, + LeaseStatus, + LeaseState, + LeaseDuration, + ImmutabilityPolicyState, + ImmutabilityPolicyUpdateType, + Name, + StorageAccountExpand, + ListKeyExpand, +) + +__all__ = [ + 'AccountSasParameters', + 'ActiveDirectoryProperties', + 'AzureEntityResource', + 'AzureFilesIdentityBasedAuthentication', + 'BlobContainer', + 'BlobRestoreParameters', + 'BlobRestoreRange', + 'BlobRestoreStatus', + 'BlobServiceProperties', + 'ChangeFeed', + 'CheckNameAvailabilityResult', + 'CorsRule', + 'CorsRules', + 'CustomDomain', + 'DateAfterCreation', + 'DateAfterModification', + 'DeleteRetentionPolicy', + 'Dimension', + 'Encryption', + 'EncryptionService', + 'EncryptionServices', + 'Endpoints', + 'ErrorResponse', 'ErrorResponseException', + 'FileServiceItems', + 'FileServiceProperties', + 'FileShare', + 'FileShareItem', + 'GeoReplicationStats', + 'Identity', + 'ImmutabilityPolicy', + 'ImmutabilityPolicyProperties', + 'IPRule', + 'KeyVaultProperties', + 'LastAccessTimeTrackingPolicy', + 'LeaseContainerRequest', + 'LeaseContainerResponse', + 'LegalHold', + 'LegalHoldProperties', + 'ListAccountSasResponse', + 'ListContainerItem', + 'ListServiceSasResponse', + 'ManagementPolicy', + 'ManagementPolicyAction', + 'ManagementPolicyBaseBlob', + 'ManagementPolicyDefinition', + 'ManagementPolicyFilter', + 'ManagementPolicyRule', + 'ManagementPolicySchema', + 'ManagementPolicySnapShot', + 'MetricSpecification', + 'NetworkRuleSet', + 'Operation', + 'OperationDisplay', + 'PrivateEndpoint', + 'PrivateEndpointConnection', + 'PrivateLinkResource', + 'PrivateLinkResourceListResult', + 'PrivateLinkServiceConnectionState', + 'ProxyResource', + 'Resource', + 'RestorePolicyProperties', + 'Restriction', + 'RoutingPreference', + 'ServiceSasParameters', + 'ServiceSpecification', + 'Sku', + 'SKUCapability', + 'SkuInformation', + 'StorageAccount', + 'StorageAccountCheckNameAvailabilityParameters', + 'StorageAccountCreateParameters', + 'StorageAccountInternetEndpoints', + 'StorageAccountKey', + 'StorageAccountListKeysResult', + 'StorageAccountMicrosoftEndpoints', + 'StorageAccountRegenerateKeyParameters', + 'StorageAccountUpdateParameters', + 'TagProperty', + 'TrackedResource', + 'UpdateHistoryProperty', + 'Usage', + 'UsageName', + 'VirtualNetworkRule', + 'OperationPaged', + 'SkuInformationPaged', + 'StorageAccountPaged', + 'UsagePaged', + 'BlobServicePropertiesPaged', + 'ListContainerItemPaged', + 'FileShareItemPaged', + 'ReasonCode', + 'SkuName', + 'SkuTier', + 'Kind', + 'Reason', + 'KeyType', + 'KeySource', + 'Action', + 'State', + 'Bypass', + 'DefaultAction', + 'DirectoryServiceOptions', + 'AccessTier', + 'LargeFileSharesState', + 'RoutingChoice', + 'GeoReplicationStatus', + 'BlobRestoreProgressStatus', + 'ProvisioningState', + 'AccountStatus', + 'PrivateEndpointServiceConnectionStatus', + 'PrivateEndpointConnectionProvisioningState', + 'KeyPermission', + 'UsageUnit', + 'Services', + 'SignedResourceTypes', + 'Permissions', + 'HttpProtocol', + 'SignedResource', + 'PublicAccess', + 'LeaseStatus', + 'LeaseState', + 'LeaseDuration', + 'ImmutabilityPolicyState', + 'ImmutabilityPolicyUpdateType', + 'Name', + 'StorageAccountExpand', + 'ListKeyExpand', +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_models.py new file mode 100644 index 00000000000..7d8f23fdc20 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_models.py @@ -0,0 +1,3571 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class AccountSasParameters(Model): + """The parameters to list SAS credentials of a storage account. + + All required parameters must be populated in order to send to Azure. + + :param services: Required. The signed services accessible with the account + SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f). + Possible values include: 'b', 'q', 't', 'f' + :type services: str or ~azure.mgmt.storage.v2019_06_01.models.Services + :param resource_types: Required. The signed resource types that are + accessible with the account SAS. Service (s): Access to service-level + APIs; Container (c): Access to container-level APIs; Object (o): Access to + object-level APIs for blobs, queue messages, table entities, and files. + Possible values include: 's', 'c', 'o' + :type resource_types: str or + ~azure.mgmt.storage.v2019_06_01.models.SignedResourceTypes + :param permissions: Required. The signed permissions for the account SAS. + Possible values include: Read (r), Write (w), Delete (d), List (l), Add + (a), Create (c), Update (u) and Process (p). Possible values include: 'r', + 'd', 'w', 'l', 'a', 'c', 'u', 'p' + :type permissions: str or + ~azure.mgmt.storage.v2019_06_01.models.Permissions + :param ip_address_or_range: An IP address or a range of IP addresses from + which to accept requests. + :type ip_address_or_range: str + :param protocols: The protocol permitted for a request made with the + account SAS. Possible values include: 'https,http', 'https' + :type protocols: str or + ~azure.mgmt.storage.v2019_06_01.models.HttpProtocol + :param shared_access_start_time: The time at which the SAS becomes valid. + :type shared_access_start_time: datetime + :param shared_access_expiry_time: Required. The time at which the shared + access signature becomes invalid. + :type shared_access_expiry_time: datetime + :param key_to_sign: The key to sign the account SAS token with. + :type key_to_sign: str + """ + + _validation = { + 'services': {'required': True}, + 'resource_types': {'required': True}, + 'permissions': {'required': True}, + 'shared_access_expiry_time': {'required': True}, + } + + _attribute_map = { + 'services': {'key': 'signedServices', 'type': 'str'}, + 'resource_types': {'key': 'signedResourceTypes', 'type': 'str'}, + 'permissions': {'key': 'signedPermission', 'type': 'str'}, + 'ip_address_or_range': {'key': 'signedIp', 'type': 'str'}, + 'protocols': {'key': 'signedProtocol', 'type': 'HttpProtocol'}, + 'shared_access_start_time': {'key': 'signedStart', 'type': 'iso-8601'}, + 'shared_access_expiry_time': {'key': 'signedExpiry', 'type': 'iso-8601'}, + 'key_to_sign': {'key': 'keyToSign', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AccountSasParameters, self).__init__(**kwargs) + self.services = kwargs.get('services', None) + self.resource_types = kwargs.get('resource_types', None) + self.permissions = kwargs.get('permissions', None) + self.ip_address_or_range = kwargs.get('ip_address_or_range', None) + self.protocols = kwargs.get('protocols', None) + self.shared_access_start_time = kwargs.get('shared_access_start_time', None) + self.shared_access_expiry_time = kwargs.get('shared_access_expiry_time', None) + self.key_to_sign = kwargs.get('key_to_sign', None) + + +class ActiveDirectoryProperties(Model): + """Settings properties for Active Directory (AD). + + All required parameters must be populated in order to send to Azure. + + :param domain_name: Required. Specifies the primary domain that the AD DNS + server is authoritative for. + :type domain_name: str + :param net_bios_domain_name: Required. Specifies the NetBIOS domain name. + :type net_bios_domain_name: str + :param forest_name: Required. Specifies the Active Directory forest to + get. + :type forest_name: str + :param domain_guid: Required. Specifies the domain GUID. + :type domain_guid: str + :param domain_sid: Required. Specifies the security identifier (SID). + :type domain_sid: str + :param azure_storage_sid: Required. Specifies the security identifier + (SID) for Azure Storage. + :type azure_storage_sid: str + """ + + _validation = { + 'domain_name': {'required': True}, + 'net_bios_domain_name': {'required': True}, + 'forest_name': {'required': True}, + 'domain_guid': {'required': True}, + 'domain_sid': {'required': True}, + 'azure_storage_sid': {'required': True}, + } + + _attribute_map = { + 'domain_name': {'key': 'domainName', 'type': 'str'}, + 'net_bios_domain_name': {'key': 'netBiosDomainName', 'type': 'str'}, + 'forest_name': {'key': 'forestName', 'type': 'str'}, + 'domain_guid': {'key': 'domainGuid', 'type': 'str'}, + 'domain_sid': {'key': 'domainSid', 'type': 'str'}, + 'azure_storage_sid': {'key': 'azureStorageSid', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ActiveDirectoryProperties, self).__init__(**kwargs) + self.domain_name = kwargs.get('domain_name', None) + self.net_bios_domain_name = kwargs.get('net_bios_domain_name', None) + self.forest_name = kwargs.get('forest_name', None) + self.domain_guid = kwargs.get('domain_guid', None) + self.domain_sid = kwargs.get('domain_sid', None) + self.azure_storage_sid = kwargs.get('azure_storage_sid', None) + + +class Resource(Model): + """Resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class AzureEntityResource(Resource): + """The resource model definition for a Azure Resource Manager resource with an + etag. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AzureEntityResource, self).__init__(**kwargs) + self.etag = None + + +class AzureFilesIdentityBasedAuthentication(Model): + """Settings for Azure Files identity based authentication. + + All required parameters must be populated in order to send to Azure. + + :param directory_service_options: Required. Indicates the directory + service used. Possible values include: 'None', 'AADDS', 'AD' + :type directory_service_options: str or + ~azure.mgmt.storage.v2019_06_01.models.DirectoryServiceOptions + :param active_directory_properties: Required if choose AD. + :type active_directory_properties: + ~azure.mgmt.storage.v2019_06_01.models.ActiveDirectoryProperties + """ + + _validation = { + 'directory_service_options': {'required': True}, + } + + _attribute_map = { + 'directory_service_options': {'key': 'directoryServiceOptions', 'type': 'str'}, + 'active_directory_properties': {'key': 'activeDirectoryProperties', 'type': 'ActiveDirectoryProperties'}, + } + + def __init__(self, **kwargs): + super(AzureFilesIdentityBasedAuthentication, self).__init__(**kwargs) + self.directory_service_options = kwargs.get('directory_service_options', None) + self.active_directory_properties = kwargs.get('active_directory_properties', None) + + +class BlobContainer(AzureEntityResource): + """Properties of the blob container, including Id, resource name, resource + type, Etag. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + :param public_access: Specifies whether data in the container may be + accessed publicly and the level of access. Possible values include: + 'Container', 'Blob', 'None' + :type public_access: str or + ~azure.mgmt.storage.v2019_06_01.models.PublicAccess + :ivar last_modified_time: Returns the date and time the container was last + modified. + :vartype last_modified_time: datetime + :ivar lease_status: The lease status of the container. Possible values + include: 'Locked', 'Unlocked' + :vartype lease_status: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseStatus + :ivar lease_state: Lease state of the container. Possible values include: + 'Available', 'Leased', 'Expired', 'Breaking', 'Broken' + :vartype lease_state: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseState + :ivar lease_duration: Specifies whether the lease on a container is of + infinite or fixed duration, only when the container is leased. Possible + values include: 'Infinite', 'Fixed' + :vartype lease_duration: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseDuration + :param metadata: A name-value pair to associate with the container as + metadata. + :type metadata: dict[str, str] + :ivar immutability_policy: The ImmutabilityPolicy property of the + container. + :vartype immutability_policy: + ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicyProperties + :ivar legal_hold: The LegalHold property of the container. + :vartype legal_hold: + ~azure.mgmt.storage.v2019_06_01.models.LegalHoldProperties + :ivar has_legal_hold: The hasLegalHold public property is set to true by + SRP if there are at least one existing tag. The hasLegalHold public + property is set to false by SRP if all existing legal hold tags are + cleared out. There can be a maximum of 1000 blob containers with + hasLegalHold=true for a given account. + :vartype has_legal_hold: bool + :ivar has_immutability_policy: The hasImmutabilityPolicy public property + is set to true by SRP if ImmutabilityPolicy has been created for this + container. The hasImmutabilityPolicy public property is set to false by + SRP if ImmutabilityPolicy has not been created for this container. + :vartype has_immutability_policy: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'last_modified_time': {'readonly': True}, + 'lease_status': {'readonly': True}, + 'lease_state': {'readonly': True}, + 'lease_duration': {'readonly': True}, + 'immutability_policy': {'readonly': True}, + 'legal_hold': {'readonly': True}, + 'has_legal_hold': {'readonly': True}, + 'has_immutability_policy': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'public_access': {'key': 'properties.publicAccess', 'type': 'PublicAccess'}, + 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, + 'lease_status': {'key': 'properties.leaseStatus', 'type': 'str'}, + 'lease_state': {'key': 'properties.leaseState', 'type': 'str'}, + 'lease_duration': {'key': 'properties.leaseDuration', 'type': 'str'}, + 'metadata': {'key': 'properties.metadata', 'type': '{str}'}, + 'immutability_policy': {'key': 'properties.immutabilityPolicy', 'type': 'ImmutabilityPolicyProperties'}, + 'legal_hold': {'key': 'properties.legalHold', 'type': 'LegalHoldProperties'}, + 'has_legal_hold': {'key': 'properties.hasLegalHold', 'type': 'bool'}, + 'has_immutability_policy': {'key': 'properties.hasImmutabilityPolicy', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(BlobContainer, self).__init__(**kwargs) + self.public_access = kwargs.get('public_access', None) + self.last_modified_time = None + self.lease_status = None + self.lease_state = None + self.lease_duration = None + self.metadata = kwargs.get('metadata', None) + self.immutability_policy = None + self.legal_hold = None + self.has_legal_hold = None + self.has_immutability_policy = None + + +class BlobRestoreParameters(Model): + """Blob restore parameters. + + All required parameters must be populated in order to send to Azure. + + :param time_to_restore: Required. Restore blob to the specified time. + :type time_to_restore: datetime + :param blob_ranges: Required. Blob ranges to restore. + :type blob_ranges: + list[~azure.mgmt.storage.v2019_06_01.models.BlobRestoreRange] + """ + + _validation = { + 'time_to_restore': {'required': True}, + 'blob_ranges': {'required': True}, + } + + _attribute_map = { + 'time_to_restore': {'key': 'timeToRestore', 'type': 'iso-8601'}, + 'blob_ranges': {'key': 'blobRanges', 'type': '[BlobRestoreRange]'}, + } + + def __init__(self, **kwargs): + super(BlobRestoreParameters, self).__init__(**kwargs) + self.time_to_restore = kwargs.get('time_to_restore', None) + self.blob_ranges = kwargs.get('blob_ranges', None) + + +class BlobRestoreRange(Model): + """Blob range. + + All required parameters must be populated in order to send to Azure. + + :param start_range: Required. Blob start range. Empty means account start. + :type start_range: str + :param end_range: Required. Blob end range. Empty means account end. + :type end_range: str + """ + + _validation = { + 'start_range': {'required': True}, + 'end_range': {'required': True}, + } + + _attribute_map = { + 'start_range': {'key': 'startRange', 'type': 'str'}, + 'end_range': {'key': 'endRange', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(BlobRestoreRange, self).__init__(**kwargs) + self.start_range = kwargs.get('start_range', None) + self.end_range = kwargs.get('end_range', None) + + +class BlobRestoreStatus(Model): + """Blob restore status. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar status: The status of blob restore progress. Possible values are: - + InProgress: Indicates that blob restore is ongoing. - Complete: Indicates + that blob restore has been completed successfully. - Failed: Indicates + that blob restore is failed. Possible values include: 'InProgress', + 'Complete', 'Failed' + :vartype status: str or + ~azure.mgmt.storage.v2019_06_01.models.BlobRestoreProgressStatus + :ivar failure_reason: Failure reason when blob restore is failed. + :vartype failure_reason: str + :ivar restore_id: Id for tracking blob restore request. + :vartype restore_id: str + :ivar parameters: Blob restore request parameters. + :vartype parameters: + ~azure.mgmt.storage.v2019_06_01.models.BlobRestoreParameters + """ + + _validation = { + 'status': {'readonly': True}, + 'failure_reason': {'readonly': True}, + 'restore_id': {'readonly': True}, + 'parameters': {'readonly': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'failure_reason': {'key': 'failureReason', 'type': 'str'}, + 'restore_id': {'key': 'restoreId', 'type': 'str'}, + 'parameters': {'key': 'parameters', 'type': 'BlobRestoreParameters'}, + } + + def __init__(self, **kwargs): + super(BlobRestoreStatus, self).__init__(**kwargs) + self.status = None + self.failure_reason = None + self.restore_id = None + self.parameters = None + + +class BlobServiceProperties(Resource): + """The properties of a storage account’s Blob service. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param cors: Specifies CORS rules for the Blob service. You can include up + to five CorsRule elements in the request. If no CorsRule elements are + included in the request body, all CORS rules will be deleted, and CORS + will be disabled for the Blob service. + :type cors: ~azure.mgmt.storage.v2019_06_01.models.CorsRules + :param default_service_version: DefaultServiceVersion indicates the + default version to use for requests to the Blob service if an incoming + request’s version is not specified. Possible values include version + 2008-10-27 and all more recent versions. + :type default_service_version: str + :param delete_retention_policy: The blob service properties for blob soft + delete. + :type delete_retention_policy: + ~azure.mgmt.storage.v2019_06_01.models.DeleteRetentionPolicy + :param is_versioning_enabled: Versioning is enabled if set to true. + :type is_versioning_enabled: bool + :param automatic_snapshot_policy_enabled: Deprecated in favor of + isVersioningEnabled property. + :type automatic_snapshot_policy_enabled: bool + :param change_feed: The blob service properties for change feed events. + :type change_feed: ~azure.mgmt.storage.v2019_06_01.models.ChangeFeed + :param restore_policy: The blob service properties for blob restore + policy. + :type restore_policy: + ~azure.mgmt.storage.v2019_06_01.models.RestorePolicyProperties + :param container_delete_retention_policy: The blob service properties for + container soft delete. + :type container_delete_retention_policy: + ~azure.mgmt.storage.v2019_06_01.models.DeleteRetentionPolicy + :param last_access_time_tracking_policy: The blob service property to + configure last access time based tracking policy. + :type last_access_time_tracking_policy: + ~azure.mgmt.storage.v2019_06_01.models.LastAccessTimeTrackingPolicy + :ivar sku: Sku name and tier. + :vartype sku: ~azure.mgmt.storage.v2019_06_01.models.Sku + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'sku': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'cors': {'key': 'properties.cors', 'type': 'CorsRules'}, + 'default_service_version': {'key': 'properties.defaultServiceVersion', 'type': 'str'}, + 'delete_retention_policy': {'key': 'properties.deleteRetentionPolicy', 'type': 'DeleteRetentionPolicy'}, + 'is_versioning_enabled': {'key': 'properties.isVersioningEnabled', 'type': 'bool'}, + 'automatic_snapshot_policy_enabled': {'key': 'properties.automaticSnapshotPolicyEnabled', 'type': 'bool'}, + 'change_feed': {'key': 'properties.changeFeed', 'type': 'ChangeFeed'}, + 'restore_policy': {'key': 'properties.restorePolicy', 'type': 'RestorePolicyProperties'}, + 'container_delete_retention_policy': {'key': 'properties.containerDeleteRetentionPolicy', 'type': 'DeleteRetentionPolicy'}, + 'last_access_time_tracking_policy': {'key': 'properties.lastAccessTimeTrackingPolicy', 'type': 'LastAccessTimeTrackingPolicy'}, + 'sku': {'key': 'sku', 'type': 'Sku'}, + } + + def __init__(self, **kwargs): + super(BlobServiceProperties, self).__init__(**kwargs) + self.cors = kwargs.get('cors', None) + self.default_service_version = kwargs.get('default_service_version', None) + self.delete_retention_policy = kwargs.get('delete_retention_policy', None) + self.is_versioning_enabled = kwargs.get('is_versioning_enabled', None) + self.automatic_snapshot_policy_enabled = kwargs.get('automatic_snapshot_policy_enabled', None) + self.change_feed = kwargs.get('change_feed', None) + self.restore_policy = kwargs.get('restore_policy', None) + self.container_delete_retention_policy = kwargs.get('container_delete_retention_policy', None) + self.last_access_time_tracking_policy = kwargs.get('last_access_time_tracking_policy', None) + self.sku = None + + +class ChangeFeed(Model): + """The blob service properties for change feed events. + + :param enabled: Indicates whether change feed event logging is enabled for + the Blob service. + :type enabled: bool + """ + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(ChangeFeed, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + + +class CheckNameAvailabilityResult(Model): + """The CheckNameAvailability operation response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar name_available: Gets a boolean value that indicates whether the name + is available for you to use. If true, the name is available. If false, the + name has already been taken or is invalid and cannot be used. + :vartype name_available: bool + :ivar reason: Gets the reason that a storage account name could not be + used. The Reason element is only returned if NameAvailable is false. + Possible values include: 'AccountNameInvalid', 'AlreadyExists' + :vartype reason: str or ~azure.mgmt.storage.v2019_06_01.models.Reason + :ivar message: Gets an error message explaining the Reason value in more + detail. + :vartype message: str + """ + + _validation = { + 'name_available': {'readonly': True}, + 'reason': {'readonly': True}, + 'message': {'readonly': True}, + } + + _attribute_map = { + 'name_available': {'key': 'nameAvailable', 'type': 'bool'}, + 'reason': {'key': 'reason', 'type': 'Reason'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(CheckNameAvailabilityResult, self).__init__(**kwargs) + self.name_available = None + self.reason = None + self.message = None + + +class CloudError(Model): + """An error response from the Storage service. + + :param error: + :type error: ~azure.mgmt.storage.v2019_06_01.models.CloudErrorBody + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'CloudErrorBody'}, + } + + def __init__(self, **kwargs): + super(CloudError, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class CloudErrorException(HttpOperationError): + """Server responsed with exception of type: 'CloudError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(CloudErrorException, self).__init__(deserialize, response, 'CloudError', *args) + + +class CloudErrorBody(Model): + """An error response from the Storage service. + + :param code: An identifier for the error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable + for display in a user interface. + :type message: str + :param target: The target of the particular error. For example, the name + of the property in error. + :type target: str + :param details: A list of additional details about the error. + :type details: list[~azure.mgmt.storage.v2019_06_01.models.CloudErrorBody] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, + } + + def __init__(self, **kwargs): + super(CloudErrorBody, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.target = kwargs.get('target', None) + self.details = kwargs.get('details', None) + + +class CorsRule(Model): + """Specifies a CORS rule for the Blob service. + + All required parameters must be populated in order to send to Azure. + + :param allowed_origins: Required. Required if CorsRule element is present. + A list of origin domains that will be allowed via CORS, or "*" to allow + all domains + :type allowed_origins: list[str] + :param allowed_methods: Required. Required if CorsRule element is present. + A list of HTTP methods that are allowed to be executed by the origin. + :type allowed_methods: list[str] + :param max_age_in_seconds: Required. Required if CorsRule element is + present. The number of seconds that the client/browser should cache a + preflight response. + :type max_age_in_seconds: int + :param exposed_headers: Required. Required if CorsRule element is present. + A list of response headers to expose to CORS clients. + :type exposed_headers: list[str] + :param allowed_headers: Required. Required if CorsRule element is present. + A list of headers allowed to be part of the cross-origin request. + :type allowed_headers: list[str] + """ + + _validation = { + 'allowed_origins': {'required': True}, + 'allowed_methods': {'required': True}, + 'max_age_in_seconds': {'required': True}, + 'exposed_headers': {'required': True}, + 'allowed_headers': {'required': True}, + } + + _attribute_map = { + 'allowed_origins': {'key': 'allowedOrigins', 'type': '[str]'}, + 'allowed_methods': {'key': 'allowedMethods', 'type': '[str]'}, + 'max_age_in_seconds': {'key': 'maxAgeInSeconds', 'type': 'int'}, + 'exposed_headers': {'key': 'exposedHeaders', 'type': '[str]'}, + 'allowed_headers': {'key': 'allowedHeaders', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(CorsRule, self).__init__(**kwargs) + self.allowed_origins = kwargs.get('allowed_origins', None) + self.allowed_methods = kwargs.get('allowed_methods', None) + self.max_age_in_seconds = kwargs.get('max_age_in_seconds', None) + self.exposed_headers = kwargs.get('exposed_headers', None) + self.allowed_headers = kwargs.get('allowed_headers', None) + + +class CorsRules(Model): + """Sets the CORS rules. You can include up to five CorsRule elements in the + request. . + + :param cors_rules: The List of CORS rules. You can include up to five + CorsRule elements in the request. + :type cors_rules: list[~azure.mgmt.storage.v2019_06_01.models.CorsRule] + """ + + _attribute_map = { + 'cors_rules': {'key': 'corsRules', 'type': '[CorsRule]'}, + } + + def __init__(self, **kwargs): + super(CorsRules, self).__init__(**kwargs) + self.cors_rules = kwargs.get('cors_rules', None) + + +class CustomDomain(Model): + """The custom domain assigned to this storage account. This can be set via + Update. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Gets or sets the custom domain name assigned to the + storage account. Name is the CNAME source. + :type name: str + :param use_sub_domain_name: Indicates whether indirect CName validation is + enabled. Default value is false. This should only be set on updates. + :type use_sub_domain_name: bool + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'use_sub_domain_name': {'key': 'useSubDomainName', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(CustomDomain, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.use_sub_domain_name = kwargs.get('use_sub_domain_name', None) + + +class DateAfterCreation(Model): + """Object to define the number of days after creation. + + All required parameters must be populated in order to send to Azure. + + :param days_after_creation_greater_than: Required. Value indicating the + age in days after creation + :type days_after_creation_greater_than: float + """ + + _validation = { + 'days_after_creation_greater_than': {'required': True, 'minimum': 0, 'multiple': 1}, + } + + _attribute_map = { + 'days_after_creation_greater_than': {'key': 'daysAfterCreationGreaterThan', 'type': 'float'}, + } + + def __init__(self, **kwargs): + super(DateAfterCreation, self).__init__(**kwargs) + self.days_after_creation_greater_than = kwargs.get('days_after_creation_greater_than', None) + + +class DateAfterModification(Model): + """Object to define the number of days after object last modification Or last + access. Properties daysAfterModificationGreaterThan and + daysAfterLastAccessTimeGreaterThan are mutually exclusive. + + :param days_after_modification_greater_than: Value indicating the age in + days after last modification + :type days_after_modification_greater_than: float + :param days_after_last_access_time_greater_than: Value indicating the age + in days after last blob access. This property can only be used in + conjuction with last access time tracking policy + :type days_after_last_access_time_greater_than: float + """ + + _validation = { + 'days_after_modification_greater_than': {'minimum': 0, 'multiple': 1}, + 'days_after_last_access_time_greater_than': {'minimum': 0, 'multiple': 1}, + } + + _attribute_map = { + 'days_after_modification_greater_than': {'key': 'daysAfterModificationGreaterThan', 'type': 'float'}, + 'days_after_last_access_time_greater_than': {'key': 'daysAfterLastAccessTimeGreaterThan', 'type': 'float'}, + } + + def __init__(self, **kwargs): + super(DateAfterModification, self).__init__(**kwargs) + self.days_after_modification_greater_than = kwargs.get('days_after_modification_greater_than', None) + self.days_after_last_access_time_greater_than = kwargs.get('days_after_last_access_time_greater_than', None) + + +class DeleteRetentionPolicy(Model): + """The service properties for soft delete. + + :param enabled: Indicates whether DeleteRetentionPolicy is enabled. + :type enabled: bool + :param days: Indicates the number of days that the deleted item should be + retained. The minimum specified value can be 1 and the maximum value can + be 365. + :type days: int + """ + + _validation = { + 'days': {'maximum': 365, 'minimum': 1}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'days': {'key': 'days', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(DeleteRetentionPolicy, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.days = kwargs.get('days', None) + + +class Dimension(Model): + """Dimension of blobs, possibly be blob type or access tier. + + :param name: Display name of dimension. + :type name: str + :param display_name: Display name of dimension. + :type display_name: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(Dimension, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.display_name = kwargs.get('display_name', None) + + +class Encryption(Model): + """The encryption settings on the storage account. + + All required parameters must be populated in order to send to Azure. + + :param services: List of services which support encryption. + :type services: ~azure.mgmt.storage.v2019_06_01.models.EncryptionServices + :param key_source: Required. The encryption keySource (provider). Possible + values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault. + Possible values include: 'Microsoft.Storage', 'Microsoft.Keyvault'. + Default value: "Microsoft.Storage" . + :type key_source: str or ~azure.mgmt.storage.v2019_06_01.models.KeySource + :param key_vault_properties: Properties provided by key vault. + :type key_vault_properties: + ~azure.mgmt.storage.v2019_06_01.models.KeyVaultProperties + """ + + _validation = { + 'key_source': {'required': True}, + } + + _attribute_map = { + 'services': {'key': 'services', 'type': 'EncryptionServices'}, + 'key_source': {'key': 'keySource', 'type': 'str'}, + 'key_vault_properties': {'key': 'keyvaultproperties', 'type': 'KeyVaultProperties'}, + } + + def __init__(self, **kwargs): + super(Encryption, self).__init__(**kwargs) + self.services = kwargs.get('services', None) + self.key_source = kwargs.get('key_source', "Microsoft.Storage") + self.key_vault_properties = kwargs.get('key_vault_properties', None) + + +class EncryptionService(Model): + """A service that allows server-side encryption to be used. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param enabled: A boolean indicating whether or not the service encrypts + the data as it is stored. + :type enabled: bool + :ivar last_enabled_time: Gets a rough estimate of the date/time when the + encryption was last enabled by the user. Only returned when encryption is + enabled. There might be some unencrypted blobs which were written after + this time, as it is just a rough estimate. + :vartype last_enabled_time: datetime + :param key_type: Encryption key type to be used for the encryption + service. 'Account' key type implies that an account-scoped encryption key + will be used. 'Service' key type implies that a default service key is + used. Possible values include: 'Service', 'Account' + :type key_type: str or ~azure.mgmt.storage.v2019_06_01.models.KeyType + """ + + _validation = { + 'last_enabled_time': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'last_enabled_time': {'key': 'lastEnabledTime', 'type': 'iso-8601'}, + 'key_type': {'key': 'keyType', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(EncryptionService, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.last_enabled_time = None + self.key_type = kwargs.get('key_type', None) + + +class EncryptionServices(Model): + """A list of services that support encryption. + + :param blob: The encryption function of the blob storage service. + :type blob: ~azure.mgmt.storage.v2019_06_01.models.EncryptionService + :param file: The encryption function of the file storage service. + :type file: ~azure.mgmt.storage.v2019_06_01.models.EncryptionService + :param table: The encryption function of the table storage service. + :type table: ~azure.mgmt.storage.v2019_06_01.models.EncryptionService + :param queue: The encryption function of the queue storage service. + :type queue: ~azure.mgmt.storage.v2019_06_01.models.EncryptionService + """ + + _attribute_map = { + 'blob': {'key': 'blob', 'type': 'EncryptionService'}, + 'file': {'key': 'file', 'type': 'EncryptionService'}, + 'table': {'key': 'table', 'type': 'EncryptionService'}, + 'queue': {'key': 'queue', 'type': 'EncryptionService'}, + } + + def __init__(self, **kwargs): + super(EncryptionServices, self).__init__(**kwargs) + self.blob = kwargs.get('blob', None) + self.file = kwargs.get('file', None) + self.table = kwargs.get('table', None) + self.queue = kwargs.get('queue', None) + + +class Endpoints(Model): + """The URIs that are used to perform a retrieval of a public blob, queue, + table, web or dfs object. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar blob: Gets the blob endpoint. + :vartype blob: str + :ivar queue: Gets the queue endpoint. + :vartype queue: str + :ivar table: Gets the table endpoint. + :vartype table: str + :ivar file: Gets the file endpoint. + :vartype file: str + :ivar web: Gets the web endpoint. + :vartype web: str + :ivar dfs: Gets the dfs endpoint. + :vartype dfs: str + :param microsoft_endpoints: Gets the microsoft routing storage endpoints. + :type microsoft_endpoints: + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountMicrosoftEndpoints + :param internet_endpoints: Gets the internet routing storage endpoints + :type internet_endpoints: + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountInternetEndpoints + """ + + _validation = { + 'blob': {'readonly': True}, + 'queue': {'readonly': True}, + 'table': {'readonly': True}, + 'file': {'readonly': True}, + 'web': {'readonly': True}, + 'dfs': {'readonly': True}, + } + + _attribute_map = { + 'blob': {'key': 'blob', 'type': 'str'}, + 'queue': {'key': 'queue', 'type': 'str'}, + 'table': {'key': 'table', 'type': 'str'}, + 'file': {'key': 'file', 'type': 'str'}, + 'web': {'key': 'web', 'type': 'str'}, + 'dfs': {'key': 'dfs', 'type': 'str'}, + 'microsoft_endpoints': {'key': 'microsoftEndpoints', 'type': 'StorageAccountMicrosoftEndpoints'}, + 'internet_endpoints': {'key': 'internetEndpoints', 'type': 'StorageAccountInternetEndpoints'}, + } + + def __init__(self, **kwargs): + super(Endpoints, self).__init__(**kwargs) + self.blob = None + self.queue = None + self.table = None + self.file = None + self.web = None + self.dfs = None + self.microsoft_endpoints = kwargs.get('microsoft_endpoints', None) + self.internet_endpoints = kwargs.get('internet_endpoints', None) + + +class ErrorResponse(Model): + """An error response from the storage resource provider. + + :param code: An identifier for the error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable + for display in a user interface. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ErrorResponse, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + + +class ErrorResponseException(HttpOperationError): + """Server responsed with exception of type: 'ErrorResponse'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(ErrorResponseException, self).__init__(deserialize, response, 'ErrorResponse', *args) + + +class FileServiceItems(Model): + """FileServiceItems. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar value: List of file services returned. + :vartype value: + list[~azure.mgmt.storage.v2019_06_01.models.FileServiceProperties] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[FileServiceProperties]'}, + } + + def __init__(self, **kwargs): + super(FileServiceItems, self).__init__(**kwargs) + self.value = None + + +class FileServiceProperties(Resource): + """The properties of File services in storage account. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param cors: Specifies CORS rules for the File service. You can include up + to five CorsRule elements in the request. If no CorsRule elements are + included in the request body, all CORS rules will be deleted, and CORS + will be disabled for the File service. + :type cors: ~azure.mgmt.storage.v2019_06_01.models.CorsRules + :param share_delete_retention_policy: The file service properties for + share soft delete. + :type share_delete_retention_policy: + ~azure.mgmt.storage.v2019_06_01.models.DeleteRetentionPolicy + :ivar sku: Sku name and tier. + :vartype sku: ~azure.mgmt.storage.v2019_06_01.models.Sku + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'sku': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'cors': {'key': 'properties.cors', 'type': 'CorsRules'}, + 'share_delete_retention_policy': {'key': 'properties.shareDeleteRetentionPolicy', 'type': 'DeleteRetentionPolicy'}, + 'sku': {'key': 'sku', 'type': 'Sku'}, + } + + def __init__(self, **kwargs): + super(FileServiceProperties, self).__init__(**kwargs) + self.cors = kwargs.get('cors', None) + self.share_delete_retention_policy = kwargs.get('share_delete_retention_policy', None) + self.sku = None + + +class FileShare(AzureEntityResource): + """Properties of the file share, including Id, resource name, resource type, + Etag. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + :ivar last_modified_time: Returns the date and time the share was last + modified. + :vartype last_modified_time: datetime + :param metadata: A name-value pair to associate with the share as + metadata. + :type metadata: dict[str, str] + :param share_quota: The maximum size of the share, in gigabytes. Must be + greater than 0, and less than or equal to 5TB (5120). For Large File + Shares, the maximum size is 102400. + :type share_quota: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'last_modified_time': {'readonly': True}, + 'share_quota': {'maximum': 102400, 'minimum': 1}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, + 'metadata': {'key': 'properties.metadata', 'type': '{str}'}, + 'share_quota': {'key': 'properties.shareQuota', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(FileShare, self).__init__(**kwargs) + self.last_modified_time = None + self.metadata = kwargs.get('metadata', None) + self.share_quota = kwargs.get('share_quota', None) + + +class FileShareItem(AzureEntityResource): + """The file share properties be listed out. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + :ivar last_modified_time: Returns the date and time the share was last + modified. + :vartype last_modified_time: datetime + :param metadata: A name-value pair to associate with the share as + metadata. + :type metadata: dict[str, str] + :param share_quota: The maximum size of the share, in gigabytes. Must be + greater than 0, and less than or equal to 5TB (5120). For Large File + Shares, the maximum size is 102400. + :type share_quota: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'last_modified_time': {'readonly': True}, + 'share_quota': {'maximum': 102400, 'minimum': 1}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, + 'metadata': {'key': 'properties.metadata', 'type': '{str}'}, + 'share_quota': {'key': 'properties.shareQuota', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(FileShareItem, self).__init__(**kwargs) + self.last_modified_time = None + self.metadata = kwargs.get('metadata', None) + self.share_quota = kwargs.get('share_quota', None) + + +class GeoReplicationStats(Model): + """Statistics related to replication for storage account's Blob, Table, Queue + and File services. It is only available when geo-redundant replication is + enabled for the storage account. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar status: The status of the secondary location. Possible values are: - + Live: Indicates that the secondary location is active and operational. - + Bootstrap: Indicates initial synchronization from the primary location to + the secondary location is in progress.This typically occurs when + replication is first enabled. - Unavailable: Indicates that the secondary + location is temporarily unavailable. Possible values include: 'Live', + 'Bootstrap', 'Unavailable' + :vartype status: str or + ~azure.mgmt.storage.v2019_06_01.models.GeoReplicationStatus + :ivar last_sync_time: All primary writes preceding this UTC date/time + value are guaranteed to be available for read operations. Primary writes + following this point in time may or may not be available for reads. + Element may be default value if value of LastSyncTime is not available, + this can happen if secondary is offline or we are in bootstrap. + :vartype last_sync_time: datetime + :ivar can_failover: A boolean flag which indicates whether or not account + failover is supported for the account. + :vartype can_failover: bool + """ + + _validation = { + 'status': {'readonly': True}, + 'last_sync_time': {'readonly': True}, + 'can_failover': {'readonly': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'last_sync_time': {'key': 'lastSyncTime', 'type': 'iso-8601'}, + 'can_failover': {'key': 'canFailover', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(GeoReplicationStats, self).__init__(**kwargs) + self.status = None + self.last_sync_time = None + self.can_failover = None + + +class Identity(Model): + """Identity for the resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar principal_id: The principal ID of resource identity. + :vartype principal_id: str + :ivar tenant_id: The tenant ID of resource. + :vartype tenant_id: str + :ivar type: Required. The identity type. Default value: "SystemAssigned" . + :vartype type: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + 'type': {'required': True, 'constant': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + type = "SystemAssigned" + + def __init__(self, **kwargs): + super(Identity, self).__init__(**kwargs) + self.principal_id = None + self.tenant_id = None + + +class ImmutabilityPolicy(AzureEntityResource): + """The ImmutabilityPolicy property of a blob container, including Id, resource + name, resource type, Etag. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + :param immutability_period_since_creation_in_days: Required. The + immutability period for the blobs in the container since the policy + creation, in days. + :type immutability_period_since_creation_in_days: int + :ivar state: The ImmutabilityPolicy state of a blob container, possible + values include: Locked and Unlocked. Possible values include: 'Locked', + 'Unlocked' + :vartype state: str or + ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicyState + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'immutability_period_since_creation_in_days': {'required': True}, + 'state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'immutability_period_since_creation_in_days': {'key': 'properties.immutabilityPeriodSinceCreationInDays', 'type': 'int'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ImmutabilityPolicy, self).__init__(**kwargs) + self.immutability_period_since_creation_in_days = kwargs.get('immutability_period_since_creation_in_days', None) + self.state = None + + +class ImmutabilityPolicyProperties(Model): + """The properties of an ImmutabilityPolicy of a blob container. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param immutability_period_since_creation_in_days: Required. The + immutability period for the blobs in the container since the policy + creation, in days. + :type immutability_period_since_creation_in_days: int + :ivar state: The ImmutabilityPolicy state of a blob container, possible + values include: Locked and Unlocked. Possible values include: 'Locked', + 'Unlocked' + :vartype state: str or + ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicyState + :ivar etag: ImmutabilityPolicy Etag. + :vartype etag: str + :ivar update_history: The ImmutabilityPolicy update history of the blob + container. + :vartype update_history: + list[~azure.mgmt.storage.v2019_06_01.models.UpdateHistoryProperty] + """ + + _validation = { + 'immutability_period_since_creation_in_days': {'required': True}, + 'state': {'readonly': True}, + 'etag': {'readonly': True}, + 'update_history': {'readonly': True}, + } + + _attribute_map = { + 'immutability_period_since_creation_in_days': {'key': 'properties.immutabilityPeriodSinceCreationInDays', 'type': 'int'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'update_history': {'key': 'updateHistory', 'type': '[UpdateHistoryProperty]'}, + } + + def __init__(self, **kwargs): + super(ImmutabilityPolicyProperties, self).__init__(**kwargs) + self.immutability_period_since_creation_in_days = kwargs.get('immutability_period_since_creation_in_days', None) + self.state = None + self.etag = None + self.update_history = None + + +class IPRule(Model): + """IP rule with specific IP or IP range in CIDR format. + + All required parameters must be populated in order to send to Azure. + + :param ip_address_or_range: Required. Specifies the IP or IP range in CIDR + format. Only IPV4 address is allowed. + :type ip_address_or_range: str + :param action: The action of IP ACL rule. Possible values include: + 'Allow'. Default value: "Allow" . + :type action: str or ~azure.mgmt.storage.v2019_06_01.models.Action + """ + + _validation = { + 'ip_address_or_range': {'required': True}, + } + + _attribute_map = { + 'ip_address_or_range': {'key': 'value', 'type': 'str'}, + 'action': {'key': 'action', 'type': 'Action'}, + } + + def __init__(self, **kwargs): + super(IPRule, self).__init__(**kwargs) + self.ip_address_or_range = kwargs.get('ip_address_or_range', None) + self.action = kwargs.get('action', "Allow") + + +class KeyVaultProperties(Model): + """Properties of key vault. + + :param key_name: The name of KeyVault key. + :type key_name: str + :param key_version: The version of KeyVault key. + :type key_version: str + :param key_vault_uri: The Uri of KeyVault. + :type key_vault_uri: str + """ + + _attribute_map = { + 'key_name': {'key': 'keyname', 'type': 'str'}, + 'key_version': {'key': 'keyversion', 'type': 'str'}, + 'key_vault_uri': {'key': 'keyvaulturi', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(KeyVaultProperties, self).__init__(**kwargs) + self.key_name = kwargs.get('key_name', None) + self.key_version = kwargs.get('key_version', None) + self.key_vault_uri = kwargs.get('key_vault_uri', None) + + +class LastAccessTimeTrackingPolicy(Model): + """The blob service properties for Last access time based tracking policy. + + All required parameters must be populated in order to send to Azure. + + :param enable: Required. When set to true last access time based tracking + is enabled. + :type enable: bool + :param name: Name of the policy. The valid value is AccessTimeTracking. + Possible values include: 'AccessTimeTracking' + :type name: str or ~azure.mgmt.storage.v2019_06_01.models.Name + :param tracking_granularity_in_days: The field specifies blob object + tracking granularity in days, typically how often the blob object should + be tracked. + :type tracking_granularity_in_days: int + :param blob_type: An array of predefined supported blob types. + :type blob_type: list[str] + """ + + _validation = { + 'enable': {'required': True}, + } + + _attribute_map = { + 'enable': {'key': 'enable', 'type': 'bool'}, + 'name': {'key': 'name', 'type': 'str'}, + 'tracking_granularity_in_days': {'key': 'trackingGranularityInDays', 'type': 'int'}, + 'blob_type': {'key': 'blobType', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(LastAccessTimeTrackingPolicy, self).__init__(**kwargs) + self.enable = kwargs.get('enable', None) + self.name = kwargs.get('name', None) + self.tracking_granularity_in_days = kwargs.get('tracking_granularity_in_days', None) + self.blob_type = kwargs.get('blob_type', None) + + +class LeaseContainerRequest(Model): + """Lease Container request schema. + + All required parameters must be populated in order to send to Azure. + + :param action: Required. Specifies the lease action. Can be one of the + available actions. Possible values include: 'Acquire', 'Renew', 'Change', + 'Release', 'Break' + :type action: str or ~azure.mgmt.storage.v2019_06_01.models.enum + :param lease_id: Identifies the lease. Can be specified in any valid GUID + string format. + :type lease_id: str + :param break_period: Optional. For a break action, proposed duration the + lease should continue before it is broken, in seconds, between 0 and 60. + :type break_period: int + :param lease_duration: Required for acquire. Specifies the duration of the + lease, in seconds, or negative one (-1) for a lease that never expires. + :type lease_duration: int + :param proposed_lease_id: Optional for acquire, required for change. + Proposed lease ID, in a GUID string format. + :type proposed_lease_id: str + """ + + _validation = { + 'action': {'required': True}, + } + + _attribute_map = { + 'action': {'key': 'action', 'type': 'str'}, + 'lease_id': {'key': 'leaseId', 'type': 'str'}, + 'break_period': {'key': 'breakPeriod', 'type': 'int'}, + 'lease_duration': {'key': 'leaseDuration', 'type': 'int'}, + 'proposed_lease_id': {'key': 'proposedLeaseId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(LeaseContainerRequest, self).__init__(**kwargs) + self.action = kwargs.get('action', None) + self.lease_id = kwargs.get('lease_id', None) + self.break_period = kwargs.get('break_period', None) + self.lease_duration = kwargs.get('lease_duration', None) + self.proposed_lease_id = kwargs.get('proposed_lease_id', None) + + +class LeaseContainerResponse(Model): + """Lease Container response schema. + + :param lease_id: Returned unique lease ID that must be included with any + request to delete the container, or to renew, change, or release the + lease. + :type lease_id: str + :param lease_time_seconds: Approximate time remaining in the lease period, + in seconds. + :type lease_time_seconds: str + """ + + _attribute_map = { + 'lease_id': {'key': 'leaseId', 'type': 'str'}, + 'lease_time_seconds': {'key': 'leaseTimeSeconds', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(LeaseContainerResponse, self).__init__(**kwargs) + self.lease_id = kwargs.get('lease_id', None) + self.lease_time_seconds = kwargs.get('lease_time_seconds', None) + + +class LegalHold(Model): + """The LegalHold property of a blob container. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar has_legal_hold: The hasLegalHold public property is set to true by + SRP if there are at least one existing tag. The hasLegalHold public + property is set to false by SRP if all existing legal hold tags are + cleared out. There can be a maximum of 1000 blob containers with + hasLegalHold=true for a given account. + :vartype has_legal_hold: bool + :param tags: Required. Each tag should be 3 to 23 alphanumeric characters + and is normalized to lower case at SRP. + :type tags: list[str] + """ + + _validation = { + 'has_legal_hold': {'readonly': True}, + 'tags': {'required': True}, + } + + _attribute_map = { + 'has_legal_hold': {'key': 'hasLegalHold', 'type': 'bool'}, + 'tags': {'key': 'tags', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(LegalHold, self).__init__(**kwargs) + self.has_legal_hold = None + self.tags = kwargs.get('tags', None) + + +class LegalHoldProperties(Model): + """The LegalHold property of a blob container. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar has_legal_hold: The hasLegalHold public property is set to true by + SRP if there are at least one existing tag. The hasLegalHold public + property is set to false by SRP if all existing legal hold tags are + cleared out. There can be a maximum of 1000 blob containers with + hasLegalHold=true for a given account. + :vartype has_legal_hold: bool + :param tags: The list of LegalHold tags of a blob container. + :type tags: list[~azure.mgmt.storage.v2019_06_01.models.TagProperty] + """ + + _validation = { + 'has_legal_hold': {'readonly': True}, + } + + _attribute_map = { + 'has_legal_hold': {'key': 'hasLegalHold', 'type': 'bool'}, + 'tags': {'key': 'tags', 'type': '[TagProperty]'}, + } + + def __init__(self, **kwargs): + super(LegalHoldProperties, self).__init__(**kwargs) + self.has_legal_hold = None + self.tags = kwargs.get('tags', None) + + +class ListAccountSasResponse(Model): + """The List SAS credentials operation response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar account_sas_token: List SAS credentials of storage account. + :vartype account_sas_token: str + """ + + _validation = { + 'account_sas_token': {'readonly': True}, + } + + _attribute_map = { + 'account_sas_token': {'key': 'accountSasToken', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ListAccountSasResponse, self).__init__(**kwargs) + self.account_sas_token = None + + +class ListContainerItem(AzureEntityResource): + """The blob container properties be listed out. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + :param public_access: Specifies whether data in the container may be + accessed publicly and the level of access. Possible values include: + 'Container', 'Blob', 'None' + :type public_access: str or + ~azure.mgmt.storage.v2019_06_01.models.PublicAccess + :ivar last_modified_time: Returns the date and time the container was last + modified. + :vartype last_modified_time: datetime + :ivar lease_status: The lease status of the container. Possible values + include: 'Locked', 'Unlocked' + :vartype lease_status: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseStatus + :ivar lease_state: Lease state of the container. Possible values include: + 'Available', 'Leased', 'Expired', 'Breaking', 'Broken' + :vartype lease_state: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseState + :ivar lease_duration: Specifies whether the lease on a container is of + infinite or fixed duration, only when the container is leased. Possible + values include: 'Infinite', 'Fixed' + :vartype lease_duration: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseDuration + :param metadata: A name-value pair to associate with the container as + metadata. + :type metadata: dict[str, str] + :ivar immutability_policy: The ImmutabilityPolicy property of the + container. + :vartype immutability_policy: + ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicyProperties + :ivar legal_hold: The LegalHold property of the container. + :vartype legal_hold: + ~azure.mgmt.storage.v2019_06_01.models.LegalHoldProperties + :ivar has_legal_hold: The hasLegalHold public property is set to true by + SRP if there are at least one existing tag. The hasLegalHold public + property is set to false by SRP if all existing legal hold tags are + cleared out. There can be a maximum of 1000 blob containers with + hasLegalHold=true for a given account. + :vartype has_legal_hold: bool + :ivar has_immutability_policy: The hasImmutabilityPolicy public property + is set to true by SRP if ImmutabilityPolicy has been created for this + container. The hasImmutabilityPolicy public property is set to false by + SRP if ImmutabilityPolicy has not been created for this container. + :vartype has_immutability_policy: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'last_modified_time': {'readonly': True}, + 'lease_status': {'readonly': True}, + 'lease_state': {'readonly': True}, + 'lease_duration': {'readonly': True}, + 'immutability_policy': {'readonly': True}, + 'legal_hold': {'readonly': True}, + 'has_legal_hold': {'readonly': True}, + 'has_immutability_policy': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'public_access': {'key': 'properties.publicAccess', 'type': 'PublicAccess'}, + 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, + 'lease_status': {'key': 'properties.leaseStatus', 'type': 'str'}, + 'lease_state': {'key': 'properties.leaseState', 'type': 'str'}, + 'lease_duration': {'key': 'properties.leaseDuration', 'type': 'str'}, + 'metadata': {'key': 'properties.metadata', 'type': '{str}'}, + 'immutability_policy': {'key': 'properties.immutabilityPolicy', 'type': 'ImmutabilityPolicyProperties'}, + 'legal_hold': {'key': 'properties.legalHold', 'type': 'LegalHoldProperties'}, + 'has_legal_hold': {'key': 'properties.hasLegalHold', 'type': 'bool'}, + 'has_immutability_policy': {'key': 'properties.hasImmutabilityPolicy', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(ListContainerItem, self).__init__(**kwargs) + self.public_access = kwargs.get('public_access', None) + self.last_modified_time = None + self.lease_status = None + self.lease_state = None + self.lease_duration = None + self.metadata = kwargs.get('metadata', None) + self.immutability_policy = None + self.legal_hold = None + self.has_legal_hold = None + self.has_immutability_policy = None + + +class ListServiceSasResponse(Model): + """The List service SAS credentials operation response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar service_sas_token: List service SAS credentials of specific + resource. + :vartype service_sas_token: str + """ + + _validation = { + 'service_sas_token': {'readonly': True}, + } + + _attribute_map = { + 'service_sas_token': {'key': 'serviceSasToken', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ListServiceSasResponse, self).__init__(**kwargs) + self.service_sas_token = None + + +class ManagementPolicy(Resource): + """The Get Storage Account ManagementPolicies operation response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar last_modified_time: Returns the date and time the ManagementPolicies + was last modified. + :vartype last_modified_time: datetime + :param policy: Required. The Storage Account ManagementPolicy, in JSON + format. See more details in: + https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. + :type policy: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicySchema + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'last_modified_time': {'readonly': True}, + 'policy': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, + 'policy': {'key': 'properties.policy', 'type': 'ManagementPolicySchema'}, + } + + def __init__(self, **kwargs): + super(ManagementPolicy, self).__init__(**kwargs) + self.last_modified_time = None + self.policy = kwargs.get('policy', None) + + +class ManagementPolicyAction(Model): + """Actions are applied to the filtered blobs when the execution condition is + met. + + :param base_blob: The management policy action for base blob + :type base_blob: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicyBaseBlob + :param snapshot: The management policy action for snapshot + :type snapshot: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicySnapShot + """ + + _attribute_map = { + 'base_blob': {'key': 'baseBlob', 'type': 'ManagementPolicyBaseBlob'}, + 'snapshot': {'key': 'snapshot', 'type': 'ManagementPolicySnapShot'}, + } + + def __init__(self, **kwargs): + super(ManagementPolicyAction, self).__init__(**kwargs) + self.base_blob = kwargs.get('base_blob', None) + self.snapshot = kwargs.get('snapshot', None) + + +class ManagementPolicyBaseBlob(Model): + """Management policy action for base blob. + + :param tier_to_cool: The function to tier blobs to cool storage. Support + blobs currently at Hot tier + :type tier_to_cool: + ~azure.mgmt.storage.v2019_06_01.models.DateAfterModification + :param tier_to_archive: The function to tier blobs to archive storage. + Support blobs currently at Hot or Cool tier + :type tier_to_archive: + ~azure.mgmt.storage.v2019_06_01.models.DateAfterModification + :param delete: The function to delete the blob + :type delete: ~azure.mgmt.storage.v2019_06_01.models.DateAfterModification + :param enable_auto_tier_to_hot_from_cool: This property enables auto + tiering of a blob from cool to hot on a blob access + :type enable_auto_tier_to_hot_from_cool: bool + """ + + _attribute_map = { + 'tier_to_cool': {'key': 'tierToCool', 'type': 'DateAfterModification'}, + 'tier_to_archive': {'key': 'tierToArchive', 'type': 'DateAfterModification'}, + 'delete': {'key': 'delete', 'type': 'DateAfterModification'}, + 'enable_auto_tier_to_hot_from_cool': {'key': 'enableAutoTierToHotFromCool', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(ManagementPolicyBaseBlob, self).__init__(**kwargs) + self.tier_to_cool = kwargs.get('tier_to_cool', None) + self.tier_to_archive = kwargs.get('tier_to_archive', None) + self.delete = kwargs.get('delete', None) + self.enable_auto_tier_to_hot_from_cool = kwargs.get('enable_auto_tier_to_hot_from_cool', None) + + +class ManagementPolicyDefinition(Model): + """An object that defines the Lifecycle rule. Each definition is made up with + a filters set and an actions set. + + All required parameters must be populated in order to send to Azure. + + :param actions: Required. An object that defines the action set. + :type actions: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicyAction + :param filters: An object that defines the filter set. + :type filters: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicyFilter + """ + + _validation = { + 'actions': {'required': True}, + } + + _attribute_map = { + 'actions': {'key': 'actions', 'type': 'ManagementPolicyAction'}, + 'filters': {'key': 'filters', 'type': 'ManagementPolicyFilter'}, + } + + def __init__(self, **kwargs): + super(ManagementPolicyDefinition, self).__init__(**kwargs) + self.actions = kwargs.get('actions', None) + self.filters = kwargs.get('filters', None) + + +class ManagementPolicyFilter(Model): + """Filters limit rule actions to a subset of blobs within the storage account. + If multiple filters are defined, a logical AND is performed on all filters. + . + + All required parameters must be populated in order to send to Azure. + + :param prefix_match: An array of strings for prefixes to be match. + :type prefix_match: list[str] + :param blob_types: Required. An array of predefined enum values. Only + blockBlob is supported. + :type blob_types: list[str] + """ + + _validation = { + 'blob_types': {'required': True}, + } + + _attribute_map = { + 'prefix_match': {'key': 'prefixMatch', 'type': '[str]'}, + 'blob_types': {'key': 'blobTypes', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(ManagementPolicyFilter, self).__init__(**kwargs) + self.prefix_match = kwargs.get('prefix_match', None) + self.blob_types = kwargs.get('blob_types', None) + + +class ManagementPolicyRule(Model): + """An object that wraps the Lifecycle rule. Each rule is uniquely defined by + name. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Rule is enabled if set to true. + :type enabled: bool + :param name: Required. A rule name can contain any combination of alpha + numeric characters. Rule name is case-sensitive. It must be unique within + a policy. + :type name: str + :ivar type: Required. The valid value is Lifecycle. Default value: + "Lifecycle" . + :vartype type: str + :param definition: Required. An object that defines the Lifecycle rule. + :type definition: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicyDefinition + """ + + _validation = { + 'name': {'required': True}, + 'type': {'required': True, 'constant': True}, + 'definition': {'required': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'definition': {'key': 'definition', 'type': 'ManagementPolicyDefinition'}, + } + + type = "Lifecycle" + + def __init__(self, **kwargs): + super(ManagementPolicyRule, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.name = kwargs.get('name', None) + self.definition = kwargs.get('definition', None) + + +class ManagementPolicySchema(Model): + """The Storage Account ManagementPolicies Rules. See more details in: + https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. + + All required parameters must be populated in order to send to Azure. + + :param rules: Required. The Storage Account ManagementPolicies Rules. See + more details in: + https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. + :type rules: + list[~azure.mgmt.storage.v2019_06_01.models.ManagementPolicyRule] + """ + + _validation = { + 'rules': {'required': True}, + } + + _attribute_map = { + 'rules': {'key': 'rules', 'type': '[ManagementPolicyRule]'}, + } + + def __init__(self, **kwargs): + super(ManagementPolicySchema, self).__init__(**kwargs) + self.rules = kwargs.get('rules', None) + + +class ManagementPolicySnapShot(Model): + """Management policy action for snapshot. + + :param delete: The function to delete the blob snapshot + :type delete: ~azure.mgmt.storage.v2019_06_01.models.DateAfterCreation + """ + + _attribute_map = { + 'delete': {'key': 'delete', 'type': 'DateAfterCreation'}, + } + + def __init__(self, **kwargs): + super(ManagementPolicySnapShot, self).__init__(**kwargs) + self.delete = kwargs.get('delete', None) + + +class MetricSpecification(Model): + """Metric specification of operation. + + :param name: Name of metric specification. + :type name: str + :param display_name: Display name of metric specification. + :type display_name: str + :param display_description: Display description of metric specification. + :type display_description: str + :param unit: Unit could be Bytes or Count. + :type unit: str + :param dimensions: Dimensions of blobs, including blob type and access + tier. + :type dimensions: list[~azure.mgmt.storage.v2019_06_01.models.Dimension] + :param aggregation_type: Aggregation type could be Average. + :type aggregation_type: str + :param fill_gap_with_zero: The property to decide fill gap with zero or + not. + :type fill_gap_with_zero: bool + :param category: The category this metric specification belong to, could + be Capacity. + :type category: str + :param resource_id_dimension_name_override: Account Resource Id. + :type resource_id_dimension_name_override: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'display_description': {'key': 'displayDescription', 'type': 'str'}, + 'unit': {'key': 'unit', 'type': 'str'}, + 'dimensions': {'key': 'dimensions', 'type': '[Dimension]'}, + 'aggregation_type': {'key': 'aggregationType', 'type': 'str'}, + 'fill_gap_with_zero': {'key': 'fillGapWithZero', 'type': 'bool'}, + 'category': {'key': 'category', 'type': 'str'}, + 'resource_id_dimension_name_override': {'key': 'resourceIdDimensionNameOverride', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(MetricSpecification, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.display_name = kwargs.get('display_name', None) + self.display_description = kwargs.get('display_description', None) + self.unit = kwargs.get('unit', None) + self.dimensions = kwargs.get('dimensions', None) + self.aggregation_type = kwargs.get('aggregation_type', None) + self.fill_gap_with_zero = kwargs.get('fill_gap_with_zero', None) + self.category = kwargs.get('category', None) + self.resource_id_dimension_name_override = kwargs.get('resource_id_dimension_name_override', None) + + +class NetworkRuleSet(Model): + """Network rule set. + + All required parameters must be populated in order to send to Azure. + + :param bypass: Specifies whether traffic is bypassed for + Logging/Metrics/AzureServices. Possible values are any combination of + Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None + to bypass none of those traffics. Possible values include: 'None', + 'Logging', 'Metrics', 'AzureServices'. Default value: "AzureServices" . + :type bypass: str or ~azure.mgmt.storage.v2019_06_01.models.Bypass + :param virtual_network_rules: Sets the virtual network rules + :type virtual_network_rules: + list[~azure.mgmt.storage.v2019_06_01.models.VirtualNetworkRule] + :param ip_rules: Sets the IP ACL rules + :type ip_rules: list[~azure.mgmt.storage.v2019_06_01.models.IPRule] + :param default_action: Required. Specifies the default action of allow or + deny when no other rules match. Possible values include: 'Allow', 'Deny'. + Default value: "Allow" . + :type default_action: str or + ~azure.mgmt.storage.v2019_06_01.models.DefaultAction + """ + + _validation = { + 'default_action': {'required': True}, + } + + _attribute_map = { + 'bypass': {'key': 'bypass', 'type': 'str'}, + 'virtual_network_rules': {'key': 'virtualNetworkRules', 'type': '[VirtualNetworkRule]'}, + 'ip_rules': {'key': 'ipRules', 'type': '[IPRule]'}, + 'default_action': {'key': 'defaultAction', 'type': 'DefaultAction'}, + } + + def __init__(self, **kwargs): + super(NetworkRuleSet, self).__init__(**kwargs) + self.bypass = kwargs.get('bypass', "AzureServices") + self.virtual_network_rules = kwargs.get('virtual_network_rules', None) + self.ip_rules = kwargs.get('ip_rules', None) + self.default_action = kwargs.get('default_action', "Allow") + + +class Operation(Model): + """Storage REST API operation definition. + + :param name: Operation name: {provider}/{resource}/{operation} + :type name: str + :param display: Display metadata associated with the operation. + :type display: ~azure.mgmt.storage.v2019_06_01.models.OperationDisplay + :param origin: The origin of operations. + :type origin: str + :param service_specification: One property of operation, include metric + specifications. + :type service_specification: + ~azure.mgmt.storage.v2019_06_01.models.ServiceSpecification + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'OperationDisplay'}, + 'origin': {'key': 'origin', 'type': 'str'}, + 'service_specification': {'key': 'properties.serviceSpecification', 'type': 'ServiceSpecification'}, + } + + def __init__(self, **kwargs): + super(Operation, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.display = kwargs.get('display', None) + self.origin = kwargs.get('origin', None) + self.service_specification = kwargs.get('service_specification', None) + + +class OperationDisplay(Model): + """Display metadata associated with the operation. + + :param provider: Service provider: Microsoft Storage. + :type provider: str + :param resource: Resource on which the operation is performed etc. + :type resource: str + :param operation: Type of operation: get, read, delete, etc. + :type operation: str + :param description: Description of the operation. + :type description: str + """ + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(OperationDisplay, self).__init__(**kwargs) + self.provider = kwargs.get('provider', None) + self.resource = kwargs.get('resource', None) + self.operation = kwargs.get('operation', None) + self.description = kwargs.get('description', None) + + +class PrivateEndpoint(Model): + """The Private Endpoint resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: The ARM identifier for Private Endpoint + :vartype id: str + """ + + _validation = { + 'id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PrivateEndpoint, self).__init__(**kwargs) + self.id = None + + +class PrivateEndpointConnection(Resource): + """The Private Endpoint Connection resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param private_endpoint: The resource of private end point. + :type private_endpoint: + ~azure.mgmt.storage.v2019_06_01.models.PrivateEndpoint + :param private_link_service_connection_state: Required. A collection of + information about the state of the connection between service consumer and + provider. + :type private_link_service_connection_state: + ~azure.mgmt.storage.v2019_06_01.models.PrivateLinkServiceConnectionState + :param provisioning_state: The provisioning state of the private endpoint + connection resource. Possible values include: 'Succeeded', 'Creating', + 'Deleting', 'Failed' + :type provisioning_state: str or + ~azure.mgmt.storage.v2019_06_01.models.PrivateEndpointConnectionProvisioningState + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'private_link_service_connection_state': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'PrivateEndpoint'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkServiceConnectionState'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PrivateEndpointConnection, self).__init__(**kwargs) + self.private_endpoint = kwargs.get('private_endpoint', None) + self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None) + self.provisioning_state = kwargs.get('provisioning_state', None) + + +class PrivateLinkResource(Resource): + """A private link resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar group_id: The private link resource group id. + :vartype group_id: str + :ivar required_members: The private link resource required member names. + :vartype required_members: list[str] + :param required_zone_names: The private link resource Private link DNS + zone name. + :type required_zone_names: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'group_id': {'readonly': True}, + 'required_members': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'group_id': {'key': 'properties.groupId', 'type': 'str'}, + 'required_members': {'key': 'properties.requiredMembers', 'type': '[str]'}, + 'required_zone_names': {'key': 'properties.requiredZoneNames', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(PrivateLinkResource, self).__init__(**kwargs) + self.group_id = None + self.required_members = None + self.required_zone_names = kwargs.get('required_zone_names', None) + + +class PrivateLinkResourceListResult(Model): + """A list of private link resources. + + :param value: Array of private link resources + :type value: + list[~azure.mgmt.storage.v2019_06_01.models.PrivateLinkResource] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__(self, **kwargs): + super(PrivateLinkResourceListResult, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class PrivateLinkServiceConnectionState(Model): + """A collection of information about the state of the connection between + service consumer and provider. + + :param status: Indicates whether the connection has been + Approved/Rejected/Removed by the owner of the service. Possible values + include: 'Pending', 'Approved', 'Rejected' + :type status: str or + ~azure.mgmt.storage.v2019_06_01.models.PrivateEndpointServiceConnectionStatus + :param description: The reason for approval/rejection of the connection. + :type description: str + :param action_required: A message indicating if changes on the service + provider require any updates on the consumer. + :type action_required: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'action_required': {'key': 'actionRequired', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(PrivateLinkServiceConnectionState, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.description = kwargs.get('description', None) + self.action_required = kwargs.get('action_required', None) + + +class ProxyResource(Resource): + """The resource model definition for a ARM proxy resource. It will have + everything other than required location and tags. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ProxyResource, self).__init__(**kwargs) + + +class RestorePolicyProperties(Model): + """The blob service properties for blob restore policy. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Blob restore is enabled if set to true. + :type enabled: bool + :param days: how long this blob can be restored. It should be great than + zero and less than DeleteRetentionPolicy.days. + :type days: int + """ + + _validation = { + 'enabled': {'required': True}, + 'days': {'maximum': 365, 'minimum': 1}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'days': {'key': 'days', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(RestorePolicyProperties, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.days = kwargs.get('days', None) + + +class Restriction(Model): + """The restriction because of which SKU cannot be used. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar type: The type of restrictions. As of now only possible value for + this is location. + :vartype type: str + :ivar values: The value of restrictions. If the restriction type is set to + location. This would be different locations where the SKU is restricted. + :vartype values: list[str] + :param reason_code: The reason for the restriction. As of now this can be + "QuotaId" or "NotAvailableForSubscription". Quota Id is set when the SKU + has requiredQuotas parameter as the subscription does not belong to that + quota. The "NotAvailableForSubscription" is related to capacity at DC. + Possible values include: 'QuotaId', 'NotAvailableForSubscription' + :type reason_code: str or + ~azure.mgmt.storage.v2019_06_01.models.ReasonCode + """ + + _validation = { + 'type': {'readonly': True}, + 'values': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[str]'}, + 'reason_code': {'key': 'reasonCode', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(Restriction, self).__init__(**kwargs) + self.type = None + self.values = None + self.reason_code = kwargs.get('reason_code', None) + + +class RoutingPreference(Model): + """Routing preference defines the type of network, either microsoft or + internet routing to be used to deliver the user data, the default option is + microsoft routing. + + :param routing_choice: Routing Choice defines the kind of network routing + opted by the user. Possible values include: 'MicrosoftRouting', + 'InternetRouting' + :type routing_choice: str or + ~azure.mgmt.storage.v2019_06_01.models.RoutingChoice + :param publish_microsoft_endpoints: A boolean flag which indicates whether + microsoft routing storage endpoints are to be published + :type publish_microsoft_endpoints: bool + :param publish_internet_endpoints: A boolean flag which indicates whether + internet routing storage endpoints are to be published + :type publish_internet_endpoints: bool + """ + + _attribute_map = { + 'routing_choice': {'key': 'routingChoice', 'type': 'str'}, + 'publish_microsoft_endpoints': {'key': 'publishMicrosoftEndpoints', 'type': 'bool'}, + 'publish_internet_endpoints': {'key': 'publishInternetEndpoints', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(RoutingPreference, self).__init__(**kwargs) + self.routing_choice = kwargs.get('routing_choice', None) + self.publish_microsoft_endpoints = kwargs.get('publish_microsoft_endpoints', None) + self.publish_internet_endpoints = kwargs.get('publish_internet_endpoints', None) + + +class ServiceSasParameters(Model): + """The parameters to list service SAS credentials of a specific resource. + + All required parameters must be populated in order to send to Azure. + + :param canonicalized_resource: Required. The canonical path to the signed + resource. + :type canonicalized_resource: str + :param resource: The signed services accessible with the service SAS. + Possible values include: Blob (b), Container (c), File (f), Share (s). + Possible values include: 'b', 'c', 'f', 's' + :type resource: str or + ~azure.mgmt.storage.v2019_06_01.models.SignedResource + :param permissions: The signed permissions for the service SAS. Possible + values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create + (c), Update (u) and Process (p). Possible values include: 'r', 'd', 'w', + 'l', 'a', 'c', 'u', 'p' + :type permissions: str or + ~azure.mgmt.storage.v2019_06_01.models.Permissions + :param ip_address_or_range: An IP address or a range of IP addresses from + which to accept requests. + :type ip_address_or_range: str + :param protocols: The protocol permitted for a request made with the + account SAS. Possible values include: 'https,http', 'https' + :type protocols: str or + ~azure.mgmt.storage.v2019_06_01.models.HttpProtocol + :param shared_access_start_time: The time at which the SAS becomes valid. + :type shared_access_start_time: datetime + :param shared_access_expiry_time: The time at which the shared access + signature becomes invalid. + :type shared_access_expiry_time: datetime + :param identifier: A unique value up to 64 characters in length that + correlates to an access policy specified for the container, queue, or + table. + :type identifier: str + :param partition_key_start: The start of partition key. + :type partition_key_start: str + :param partition_key_end: The end of partition key. + :type partition_key_end: str + :param row_key_start: The start of row key. + :type row_key_start: str + :param row_key_end: The end of row key. + :type row_key_end: str + :param key_to_sign: The key to sign the account SAS token with. + :type key_to_sign: str + :param cache_control: The response header override for cache control. + :type cache_control: str + :param content_disposition: The response header override for content + disposition. + :type content_disposition: str + :param content_encoding: The response header override for content + encoding. + :type content_encoding: str + :param content_language: The response header override for content + language. + :type content_language: str + :param content_type: The response header override for content type. + :type content_type: str + """ + + _validation = { + 'canonicalized_resource': {'required': True}, + 'identifier': {'max_length': 64}, + } + + _attribute_map = { + 'canonicalized_resource': {'key': 'canonicalizedResource', 'type': 'str'}, + 'resource': {'key': 'signedResource', 'type': 'str'}, + 'permissions': {'key': 'signedPermission', 'type': 'str'}, + 'ip_address_or_range': {'key': 'signedIp', 'type': 'str'}, + 'protocols': {'key': 'signedProtocol', 'type': 'HttpProtocol'}, + 'shared_access_start_time': {'key': 'signedStart', 'type': 'iso-8601'}, + 'shared_access_expiry_time': {'key': 'signedExpiry', 'type': 'iso-8601'}, + 'identifier': {'key': 'signedIdentifier', 'type': 'str'}, + 'partition_key_start': {'key': 'startPk', 'type': 'str'}, + 'partition_key_end': {'key': 'endPk', 'type': 'str'}, + 'row_key_start': {'key': 'startRk', 'type': 'str'}, + 'row_key_end': {'key': 'endRk', 'type': 'str'}, + 'key_to_sign': {'key': 'keyToSign', 'type': 'str'}, + 'cache_control': {'key': 'rscc', 'type': 'str'}, + 'content_disposition': {'key': 'rscd', 'type': 'str'}, + 'content_encoding': {'key': 'rsce', 'type': 'str'}, + 'content_language': {'key': 'rscl', 'type': 'str'}, + 'content_type': {'key': 'rsct', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ServiceSasParameters, self).__init__(**kwargs) + self.canonicalized_resource = kwargs.get('canonicalized_resource', None) + self.resource = kwargs.get('resource', None) + self.permissions = kwargs.get('permissions', None) + self.ip_address_or_range = kwargs.get('ip_address_or_range', None) + self.protocols = kwargs.get('protocols', None) + self.shared_access_start_time = kwargs.get('shared_access_start_time', None) + self.shared_access_expiry_time = kwargs.get('shared_access_expiry_time', None) + self.identifier = kwargs.get('identifier', None) + self.partition_key_start = kwargs.get('partition_key_start', None) + self.partition_key_end = kwargs.get('partition_key_end', None) + self.row_key_start = kwargs.get('row_key_start', None) + self.row_key_end = kwargs.get('row_key_end', None) + self.key_to_sign = kwargs.get('key_to_sign', None) + self.cache_control = kwargs.get('cache_control', None) + self.content_disposition = kwargs.get('content_disposition', None) + self.content_encoding = kwargs.get('content_encoding', None) + self.content_language = kwargs.get('content_language', None) + self.content_type = kwargs.get('content_type', None) + + +class ServiceSpecification(Model): + """One property of operation, include metric specifications. + + :param metric_specifications: Metric specifications of operation. + :type metric_specifications: + list[~azure.mgmt.storage.v2019_06_01.models.MetricSpecification] + """ + + _attribute_map = { + 'metric_specifications': {'key': 'metricSpecifications', 'type': '[MetricSpecification]'}, + } + + def __init__(self, **kwargs): + super(ServiceSpecification, self).__init__(**kwargs) + self.metric_specifications = kwargs.get('metric_specifications', None) + + +class Sku(Model): + """The SKU of the storage account. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Possible values include: 'Standard_LRS', + 'Standard_GRS', 'Standard_RAGRS', 'Standard_ZRS', 'Premium_LRS', + 'Premium_ZRS', 'Standard_GZRS', 'Standard_RAGZRS' + :type name: str or ~azure.mgmt.storage.v2019_06_01.models.SkuName + :param tier: Possible values include: 'Standard', 'Premium' + :type tier: str or ~azure.mgmt.storage.v2019_06_01.models.SkuTier + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'SkuTier'}, + } + + def __init__(self, **kwargs): + super(Sku, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.tier = kwargs.get('tier', None) + + +class SKUCapability(Model): + """The capability information in the specified SKU, including file encryption, + network ACLs, change notification, etc. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar name: The name of capability, The capability information in the + specified SKU, including file encryption, network ACLs, change + notification, etc. + :vartype name: str + :ivar value: A string value to indicate states of given capability. + Possibly 'true' or 'false'. + :vartype value: str + """ + + _validation = { + 'name': {'readonly': True}, + 'value': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(SKUCapability, self).__init__(**kwargs) + self.name = None + self.value = None + + +class SkuInformation(Model): + """Storage SKU and its properties. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Possible values include: 'Standard_LRS', + 'Standard_GRS', 'Standard_RAGRS', 'Standard_ZRS', 'Premium_LRS', + 'Premium_ZRS', 'Standard_GZRS', 'Standard_RAGZRS' + :type name: str or ~azure.mgmt.storage.v2019_06_01.models.SkuName + :param tier: Possible values include: 'Standard', 'Premium' + :type tier: str or ~azure.mgmt.storage.v2019_06_01.models.SkuTier + :ivar resource_type: The type of the resource, usually it is + 'storageAccounts'. + :vartype resource_type: str + :ivar kind: Indicates the type of storage account. Possible values + include: 'Storage', 'StorageV2', 'BlobStorage', 'FileStorage', + 'BlockBlobStorage' + :vartype kind: str or ~azure.mgmt.storage.v2019_06_01.models.Kind + :ivar locations: The set of locations that the SKU is available. This will + be supported and registered Azure Geo Regions (e.g. West US, East US, + Southeast Asia, etc.). + :vartype locations: list[str] + :ivar capabilities: The capability information in the specified SKU, + including file encryption, network ACLs, change notification, etc. + :vartype capabilities: + list[~azure.mgmt.storage.v2019_06_01.models.SKUCapability] + :param restrictions: The restrictions because of which SKU cannot be used. + This is empty if there are no restrictions. + :type restrictions: + list[~azure.mgmt.storage.v2019_06_01.models.Restriction] + """ + + _validation = { + 'name': {'required': True}, + 'resource_type': {'readonly': True}, + 'kind': {'readonly': True}, + 'locations': {'readonly': True}, + 'capabilities': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'SkuTier'}, + 'resource_type': {'key': 'resourceType', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'locations': {'key': 'locations', 'type': '[str]'}, + 'capabilities': {'key': 'capabilities', 'type': '[SKUCapability]'}, + 'restrictions': {'key': 'restrictions', 'type': '[Restriction]'}, + } + + def __init__(self, **kwargs): + super(SkuInformation, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.tier = kwargs.get('tier', None) + self.resource_type = None + self.kind = None + self.locations = None + self.capabilities = None + self.restrictions = kwargs.get('restrictions', None) + + +class TrackedResource(Resource): + """The resource model definition for a ARM tracked top level resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives + :type location: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(TrackedResource, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + self.location = kwargs.get('location', None) + + +class StorageAccount(TrackedResource): + """The storage account. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives + :type location: str + :ivar sku: Gets the SKU. + :vartype sku: ~azure.mgmt.storage.v2019_06_01.models.Sku + :ivar kind: Gets the Kind. Possible values include: 'Storage', + 'StorageV2', 'BlobStorage', 'FileStorage', 'BlockBlobStorage' + :vartype kind: str or ~azure.mgmt.storage.v2019_06_01.models.Kind + :param identity: The identity of the resource. + :type identity: ~azure.mgmt.storage.v2019_06_01.models.Identity + :ivar provisioning_state: Gets the status of the storage account at the + time the operation was called. Possible values include: 'Creating', + 'ResolvingDNS', 'Succeeded' + :vartype provisioning_state: str or + ~azure.mgmt.storage.v2019_06_01.models.ProvisioningState + :ivar primary_endpoints: Gets the URLs that are used to perform a + retrieval of a public blob, queue, or table object. Note that Standard_ZRS + and Premium_LRS accounts only return the blob endpoint. + :vartype primary_endpoints: + ~azure.mgmt.storage.v2019_06_01.models.Endpoints + :ivar primary_location: Gets the location of the primary data center for + the storage account. + :vartype primary_location: str + :ivar status_of_primary: Gets the status indicating whether the primary + location of the storage account is available or unavailable. Possible + values include: 'available', 'unavailable' + :vartype status_of_primary: str or + ~azure.mgmt.storage.v2019_06_01.models.AccountStatus + :ivar last_geo_failover_time: Gets the timestamp of the most recent + instance of a failover to the secondary location. Only the most recent + timestamp is retained. This element is not returned if there has never + been a failover instance. Only available if the accountType is + Standard_GRS or Standard_RAGRS. + :vartype last_geo_failover_time: datetime + :ivar secondary_location: Gets the location of the geo-replicated + secondary for the storage account. Only available if the accountType is + Standard_GRS or Standard_RAGRS. + :vartype secondary_location: str + :ivar status_of_secondary: Gets the status indicating whether the + secondary location of the storage account is available or unavailable. + Only available if the SKU name is Standard_GRS or Standard_RAGRS. Possible + values include: 'available', 'unavailable' + :vartype status_of_secondary: str or + ~azure.mgmt.storage.v2019_06_01.models.AccountStatus + :ivar creation_time: Gets the creation date and time of the storage + account in UTC. + :vartype creation_time: datetime + :ivar custom_domain: Gets the custom domain the user assigned to this + storage account. + :vartype custom_domain: + ~azure.mgmt.storage.v2019_06_01.models.CustomDomain + :ivar secondary_endpoints: Gets the URLs that are used to perform a + retrieval of a public blob, queue, or table object from the secondary + location of the storage account. Only available if the SKU name is + Standard_RAGRS. + :vartype secondary_endpoints: + ~azure.mgmt.storage.v2019_06_01.models.Endpoints + :ivar encryption: Gets the encryption settings on the account. If + unspecified, the account is unencrypted. + :vartype encryption: ~azure.mgmt.storage.v2019_06_01.models.Encryption + :ivar access_tier: Required for storage accounts where kind = BlobStorage. + The access tier used for billing. Possible values include: 'Hot', 'Cool' + :vartype access_tier: str or + ~azure.mgmt.storage.v2019_06_01.models.AccessTier + :param azure_files_identity_based_authentication: Provides the identity + based authentication settings for Azure Files. + :type azure_files_identity_based_authentication: + ~azure.mgmt.storage.v2019_06_01.models.AzureFilesIdentityBasedAuthentication + :param enable_https_traffic_only: Allows https traffic only to storage + service if sets to true. + :type enable_https_traffic_only: bool + :ivar network_rule_set: Network rule set + :vartype network_rule_set: + ~azure.mgmt.storage.v2019_06_01.models.NetworkRuleSet + :param is_hns_enabled: Account HierarchicalNamespace enabled if sets to + true. + :type is_hns_enabled: bool + :ivar geo_replication_stats: Geo Replication Stats + :vartype geo_replication_stats: + ~azure.mgmt.storage.v2019_06_01.models.GeoReplicationStats + :ivar failover_in_progress: If the failover is in progress, the value will + be true, otherwise, it will be null. + :vartype failover_in_progress: bool + :param large_file_shares_state: Allow large file shares if sets to + Enabled. It cannot be disabled once it is enabled. Possible values + include: 'Disabled', 'Enabled' + :type large_file_shares_state: str or + ~azure.mgmt.storage.v2019_06_01.models.LargeFileSharesState + :ivar private_endpoint_connections: List of private endpoint connection + associated with the specified storage account + :vartype private_endpoint_connections: + list[~azure.mgmt.storage.v2019_06_01.models.PrivateEndpointConnection] + :param routing_preference: Maintains information about the network routing + choice opted by the user for data transfer + :type routing_preference: + ~azure.mgmt.storage.v2019_06_01.models.RoutingPreference + :ivar blob_restore_status: Blob restore status + :vartype blob_restore_status: + ~azure.mgmt.storage.v2019_06_01.models.BlobRestoreStatus + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'sku': {'readonly': True}, + 'kind': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'primary_endpoints': {'readonly': True}, + 'primary_location': {'readonly': True}, + 'status_of_primary': {'readonly': True}, + 'last_geo_failover_time': {'readonly': True}, + 'secondary_location': {'readonly': True}, + 'status_of_secondary': {'readonly': True}, + 'creation_time': {'readonly': True}, + 'custom_domain': {'readonly': True}, + 'secondary_endpoints': {'readonly': True}, + 'encryption': {'readonly': True}, + 'access_tier': {'readonly': True}, + 'network_rule_set': {'readonly': True}, + 'geo_replication_stats': {'readonly': True}, + 'failover_in_progress': {'readonly': True}, + 'private_endpoint_connections': {'readonly': True}, + 'blob_restore_status': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'Sku'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'identity': {'key': 'identity', 'type': 'Identity'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'ProvisioningState'}, + 'primary_endpoints': {'key': 'properties.primaryEndpoints', 'type': 'Endpoints'}, + 'primary_location': {'key': 'properties.primaryLocation', 'type': 'str'}, + 'status_of_primary': {'key': 'properties.statusOfPrimary', 'type': 'AccountStatus'}, + 'last_geo_failover_time': {'key': 'properties.lastGeoFailoverTime', 'type': 'iso-8601'}, + 'secondary_location': {'key': 'properties.secondaryLocation', 'type': 'str'}, + 'status_of_secondary': {'key': 'properties.statusOfSecondary', 'type': 'AccountStatus'}, + 'creation_time': {'key': 'properties.creationTime', 'type': 'iso-8601'}, + 'custom_domain': {'key': 'properties.customDomain', 'type': 'CustomDomain'}, + 'secondary_endpoints': {'key': 'properties.secondaryEndpoints', 'type': 'Endpoints'}, + 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, + 'access_tier': {'key': 'properties.accessTier', 'type': 'AccessTier'}, + 'azure_files_identity_based_authentication': {'key': 'properties.azureFilesIdentityBasedAuthentication', 'type': 'AzureFilesIdentityBasedAuthentication'}, + 'enable_https_traffic_only': {'key': 'properties.supportsHttpsTrafficOnly', 'type': 'bool'}, + 'network_rule_set': {'key': 'properties.networkAcls', 'type': 'NetworkRuleSet'}, + 'is_hns_enabled': {'key': 'properties.isHnsEnabled', 'type': 'bool'}, + 'geo_replication_stats': {'key': 'properties.geoReplicationStats', 'type': 'GeoReplicationStats'}, + 'failover_in_progress': {'key': 'properties.failoverInProgress', 'type': 'bool'}, + 'large_file_shares_state': {'key': 'properties.largeFileSharesState', 'type': 'str'}, + 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[PrivateEndpointConnection]'}, + 'routing_preference': {'key': 'properties.routingPreference', 'type': 'RoutingPreference'}, + 'blob_restore_status': {'key': 'properties.blobRestoreStatus', 'type': 'BlobRestoreStatus'}, + } + + def __init__(self, **kwargs): + super(StorageAccount, self).__init__(**kwargs) + self.sku = None + self.kind = None + self.identity = kwargs.get('identity', None) + self.provisioning_state = None + self.primary_endpoints = None + self.primary_location = None + self.status_of_primary = None + self.last_geo_failover_time = None + self.secondary_location = None + self.status_of_secondary = None + self.creation_time = None + self.custom_domain = None + self.secondary_endpoints = None + self.encryption = None + self.access_tier = None + self.azure_files_identity_based_authentication = kwargs.get('azure_files_identity_based_authentication', None) + self.enable_https_traffic_only = kwargs.get('enable_https_traffic_only', None) + self.network_rule_set = None + self.is_hns_enabled = kwargs.get('is_hns_enabled', None) + self.geo_replication_stats = None + self.failover_in_progress = None + self.large_file_shares_state = kwargs.get('large_file_shares_state', None) + self.private_endpoint_connections = None + self.routing_preference = kwargs.get('routing_preference', None) + self.blob_restore_status = None + + +class StorageAccountCheckNameAvailabilityParameters(Model): + """The parameters used to check the availability of the storage account name. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The storage account name. + :type name: str + :ivar type: Required. The type of resource, + Microsoft.Storage/storageAccounts. Default value: + "Microsoft.Storage/storageAccounts" . + :vartype type: str + """ + + _validation = { + 'name': {'required': True}, + 'type': {'required': True, 'constant': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + type = "Microsoft.Storage/storageAccounts" + + def __init__(self, **kwargs): + super(StorageAccountCheckNameAvailabilityParameters, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + + +class StorageAccountCreateParameters(Model): + """The parameters used when creating a storage account. + + All required parameters must be populated in order to send to Azure. + + :param sku: Required. Required. Gets or sets the SKU name. + :type sku: ~azure.mgmt.storage.v2019_06_01.models.Sku + :param kind: Required. Required. Indicates the type of storage account. + Possible values include: 'Storage', 'StorageV2', 'BlobStorage', + 'FileStorage', 'BlockBlobStorage' + :type kind: str or ~azure.mgmt.storage.v2019_06_01.models.Kind + :param location: Required. Required. Gets or sets the location of the + resource. This will be one of the supported and registered Azure Geo + Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of a + resource cannot be changed once it is created, but if an identical geo + region is specified on update, the request will succeed. + :type location: str + :param tags: Gets or sets a list of key value pairs that describe the + resource. These tags can be used for viewing and grouping this resource + (across resource groups). A maximum of 15 tags can be provided for a + resource. Each tag must have a key with a length no greater than 128 + characters and a value with a length no greater than 256 characters. + :type tags: dict[str, str] + :param identity: The identity of the resource. + :type identity: ~azure.mgmt.storage.v2019_06_01.models.Identity + :param custom_domain: User domain assigned to the storage account. Name is + the CNAME source. Only one custom domain is supported per storage account + at this time. To clear the existing custom domain, use an empty string for + the custom domain name property. + :type custom_domain: ~azure.mgmt.storage.v2019_06_01.models.CustomDomain + :param encryption: Not applicable. Azure Storage encryption is enabled for + all storage accounts and cannot be disabled. + :type encryption: ~azure.mgmt.storage.v2019_06_01.models.Encryption + :param network_rule_set: Network rule set + :type network_rule_set: + ~azure.mgmt.storage.v2019_06_01.models.NetworkRuleSet + :param access_tier: Required for storage accounts where kind = + BlobStorage. The access tier used for billing. Possible values include: + 'Hot', 'Cool' + :type access_tier: str or + ~azure.mgmt.storage.v2019_06_01.models.AccessTier + :param azure_files_identity_based_authentication: Provides the identity + based authentication settings for Azure Files. + :type azure_files_identity_based_authentication: + ~azure.mgmt.storage.v2019_06_01.models.AzureFilesIdentityBasedAuthentication + :param enable_https_traffic_only: Allows https traffic only to storage + service if sets to true. The default value is true since API version + 2019-04-01. + :type enable_https_traffic_only: bool + :param is_hns_enabled: Account HierarchicalNamespace enabled if sets to + true. + :type is_hns_enabled: bool + :param large_file_shares_state: Allow large file shares if sets to + Enabled. It cannot be disabled once it is enabled. Possible values + include: 'Disabled', 'Enabled' + :type large_file_shares_state: str or + ~azure.mgmt.storage.v2019_06_01.models.LargeFileSharesState + :param routing_preference: Maintains information about the network routing + choice opted by the user for data transfer + :type routing_preference: + ~azure.mgmt.storage.v2019_06_01.models.RoutingPreference + """ + + _validation = { + 'sku': {'required': True}, + 'kind': {'required': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'sku': {'key': 'sku', 'type': 'Sku'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'Identity'}, + 'custom_domain': {'key': 'properties.customDomain', 'type': 'CustomDomain'}, + 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, + 'network_rule_set': {'key': 'properties.networkAcls', 'type': 'NetworkRuleSet'}, + 'access_tier': {'key': 'properties.accessTier', 'type': 'AccessTier'}, + 'azure_files_identity_based_authentication': {'key': 'properties.azureFilesIdentityBasedAuthentication', 'type': 'AzureFilesIdentityBasedAuthentication'}, + 'enable_https_traffic_only': {'key': 'properties.supportsHttpsTrafficOnly', 'type': 'bool'}, + 'is_hns_enabled': {'key': 'properties.isHnsEnabled', 'type': 'bool'}, + 'large_file_shares_state': {'key': 'properties.largeFileSharesState', 'type': 'str'}, + 'routing_preference': {'key': 'properties.routingPreference', 'type': 'RoutingPreference'}, + } + + def __init__(self, **kwargs): + super(StorageAccountCreateParameters, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) + self.kind = kwargs.get('kind', None) + self.location = kwargs.get('location', None) + self.tags = kwargs.get('tags', None) + self.identity = kwargs.get('identity', None) + self.custom_domain = kwargs.get('custom_domain', None) + self.encryption = kwargs.get('encryption', None) + self.network_rule_set = kwargs.get('network_rule_set', None) + self.access_tier = kwargs.get('access_tier', None) + self.azure_files_identity_based_authentication = kwargs.get('azure_files_identity_based_authentication', None) + self.enable_https_traffic_only = kwargs.get('enable_https_traffic_only', None) + self.is_hns_enabled = kwargs.get('is_hns_enabled', None) + self.large_file_shares_state = kwargs.get('large_file_shares_state', None) + self.routing_preference = kwargs.get('routing_preference', None) + + +class StorageAccountInternetEndpoints(Model): + """The URIs that are used to perform a retrieval of a public blob, file, web + or dfs object via a internet routing endpoint. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar blob: Gets the blob endpoint. + :vartype blob: str + :ivar file: Gets the file endpoint. + :vartype file: str + :ivar web: Gets the web endpoint. + :vartype web: str + :ivar dfs: Gets the dfs endpoint. + :vartype dfs: str + """ + + _validation = { + 'blob': {'readonly': True}, + 'file': {'readonly': True}, + 'web': {'readonly': True}, + 'dfs': {'readonly': True}, + } + + _attribute_map = { + 'blob': {'key': 'blob', 'type': 'str'}, + 'file': {'key': 'file', 'type': 'str'}, + 'web': {'key': 'web', 'type': 'str'}, + 'dfs': {'key': 'dfs', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(StorageAccountInternetEndpoints, self).__init__(**kwargs) + self.blob = None + self.file = None + self.web = None + self.dfs = None + + +class StorageAccountKey(Model): + """An access key for the storage account. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar key_name: Name of the key. + :vartype key_name: str + :ivar value: Base 64-encoded value of the key. + :vartype value: str + :ivar permissions: Permissions for the key -- read-only or full + permissions. Possible values include: 'Read', 'Full' + :vartype permissions: str or + ~azure.mgmt.storage.v2019_06_01.models.KeyPermission + """ + + _validation = { + 'key_name': {'readonly': True}, + 'value': {'readonly': True}, + 'permissions': {'readonly': True}, + } + + _attribute_map = { + 'key_name': {'key': 'keyName', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'permissions': {'key': 'permissions', 'type': 'KeyPermission'}, + } + + def __init__(self, **kwargs): + super(StorageAccountKey, self).__init__(**kwargs) + self.key_name = None + self.value = None + self.permissions = None + + +class StorageAccountListKeysResult(Model): + """The response from the ListKeys operation. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar keys: Gets the list of storage account keys and their properties for + the specified storage account. + :vartype keys: + list[~azure.mgmt.storage.v2019_06_01.models.StorageAccountKey] + """ + + _validation = { + 'keys': {'readonly': True}, + } + + _attribute_map = { + 'keys': {'key': 'keys', 'type': '[StorageAccountKey]'}, + } + + def __init__(self, **kwargs): + super(StorageAccountListKeysResult, self).__init__(**kwargs) + self.keys = None + + +class StorageAccountMicrosoftEndpoints(Model): + """The URIs that are used to perform a retrieval of a public blob, queue, + table, web or dfs object via a microsoft routing endpoint. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar blob: Gets the blob endpoint. + :vartype blob: str + :ivar queue: Gets the queue endpoint. + :vartype queue: str + :ivar table: Gets the table endpoint. + :vartype table: str + :ivar file: Gets the file endpoint. + :vartype file: str + :ivar web: Gets the web endpoint. + :vartype web: str + :ivar dfs: Gets the dfs endpoint. + :vartype dfs: str + """ + + _validation = { + 'blob': {'readonly': True}, + 'queue': {'readonly': True}, + 'table': {'readonly': True}, + 'file': {'readonly': True}, + 'web': {'readonly': True}, + 'dfs': {'readonly': True}, + } + + _attribute_map = { + 'blob': {'key': 'blob', 'type': 'str'}, + 'queue': {'key': 'queue', 'type': 'str'}, + 'table': {'key': 'table', 'type': 'str'}, + 'file': {'key': 'file', 'type': 'str'}, + 'web': {'key': 'web', 'type': 'str'}, + 'dfs': {'key': 'dfs', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(StorageAccountMicrosoftEndpoints, self).__init__(**kwargs) + self.blob = None + self.queue = None + self.table = None + self.file = None + self.web = None + self.dfs = None + + +class StorageAccountRegenerateKeyParameters(Model): + """The parameters used to regenerate the storage account key. + + All required parameters must be populated in order to send to Azure. + + :param key_name: Required. The name of storage keys that want to be + regenerated, possible values are key1, key2, kerb1, kerb2. + :type key_name: str + """ + + _validation = { + 'key_name': {'required': True}, + } + + _attribute_map = { + 'key_name': {'key': 'keyName', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(StorageAccountRegenerateKeyParameters, self).__init__(**kwargs) + self.key_name = kwargs.get('key_name', None) + + +class StorageAccountUpdateParameters(Model): + """The parameters that can be provided when updating the storage account + properties. + + :param sku: Gets or sets the SKU name. Note that the SKU name cannot be + updated to Standard_ZRS, Premium_LRS or Premium_ZRS, nor can accounts of + those SKU names be updated to any other value. + :type sku: ~azure.mgmt.storage.v2019_06_01.models.Sku + :param tags: Gets or sets a list of key value pairs that describe the + resource. These tags can be used in viewing and grouping this resource + (across resource groups). A maximum of 15 tags can be provided for a + resource. Each tag must have a key no greater in length than 128 + characters and a value no greater in length than 256 characters. + :type tags: dict[str, str] + :param identity: The identity of the resource. + :type identity: ~azure.mgmt.storage.v2019_06_01.models.Identity + :param custom_domain: Custom domain assigned to the storage account by the + user. Name is the CNAME source. Only one custom domain is supported per + storage account at this time. To clear the existing custom domain, use an + empty string for the custom domain name property. + :type custom_domain: ~azure.mgmt.storage.v2019_06_01.models.CustomDomain + :param encryption: Provides the encryption settings on the account. The + default setting is unencrypted. + :type encryption: ~azure.mgmt.storage.v2019_06_01.models.Encryption + :param access_tier: Required for storage accounts where kind = + BlobStorage. The access tier used for billing. Possible values include: + 'Hot', 'Cool' + :type access_tier: str or + ~azure.mgmt.storage.v2019_06_01.models.AccessTier + :param azure_files_identity_based_authentication: Provides the identity + based authentication settings for Azure Files. + :type azure_files_identity_based_authentication: + ~azure.mgmt.storage.v2019_06_01.models.AzureFilesIdentityBasedAuthentication + :param enable_https_traffic_only: Allows https traffic only to storage + service if sets to true. + :type enable_https_traffic_only: bool + :param network_rule_set: Network rule set + :type network_rule_set: + ~azure.mgmt.storage.v2019_06_01.models.NetworkRuleSet + :param large_file_shares_state: Allow large file shares if sets to + Enabled. It cannot be disabled once it is enabled. Possible values + include: 'Disabled', 'Enabled' + :type large_file_shares_state: str or + ~azure.mgmt.storage.v2019_06_01.models.LargeFileSharesState + :param routing_preference: Maintains information about the network routing + choice opted by the user for data transfer + :type routing_preference: + ~azure.mgmt.storage.v2019_06_01.models.RoutingPreference + :param kind: Optional. Indicates the type of storage account. Currently + only StorageV2 value supported by server. Possible values include: + 'Storage', 'StorageV2', 'BlobStorage', 'FileStorage', 'BlockBlobStorage' + :type kind: str or ~azure.mgmt.storage.v2019_06_01.models.Kind + """ + + _attribute_map = { + 'sku': {'key': 'sku', 'type': 'Sku'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'Identity'}, + 'custom_domain': {'key': 'properties.customDomain', 'type': 'CustomDomain'}, + 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, + 'access_tier': {'key': 'properties.accessTier', 'type': 'AccessTier'}, + 'azure_files_identity_based_authentication': {'key': 'properties.azureFilesIdentityBasedAuthentication', 'type': 'AzureFilesIdentityBasedAuthentication'}, + 'enable_https_traffic_only': {'key': 'properties.supportsHttpsTrafficOnly', 'type': 'bool'}, + 'network_rule_set': {'key': 'properties.networkAcls', 'type': 'NetworkRuleSet'}, + 'large_file_shares_state': {'key': 'properties.largeFileSharesState', 'type': 'str'}, + 'routing_preference': {'key': 'properties.routingPreference', 'type': 'RoutingPreference'}, + 'kind': {'key': 'kind', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(StorageAccountUpdateParameters, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) + self.tags = kwargs.get('tags', None) + self.identity = kwargs.get('identity', None) + self.custom_domain = kwargs.get('custom_domain', None) + self.encryption = kwargs.get('encryption', None) + self.access_tier = kwargs.get('access_tier', None) + self.azure_files_identity_based_authentication = kwargs.get('azure_files_identity_based_authentication', None) + self.enable_https_traffic_only = kwargs.get('enable_https_traffic_only', None) + self.network_rule_set = kwargs.get('network_rule_set', None) + self.large_file_shares_state = kwargs.get('large_file_shares_state', None) + self.routing_preference = kwargs.get('routing_preference', None) + self.kind = kwargs.get('kind', None) + + +class TagProperty(Model): + """A tag of the LegalHold of a blob container. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar tag: The tag value. + :vartype tag: str + :ivar timestamp: Returns the date and time the tag was added. + :vartype timestamp: datetime + :ivar object_identifier: Returns the Object ID of the user who added the + tag. + :vartype object_identifier: str + :ivar tenant_id: Returns the Tenant ID that issued the token for the user + who added the tag. + :vartype tenant_id: str + :ivar upn: Returns the User Principal Name of the user who added the tag. + :vartype upn: str + """ + + _validation = { + 'tag': {'readonly': True}, + 'timestamp': {'readonly': True}, + 'object_identifier': {'readonly': True}, + 'tenant_id': {'readonly': True}, + 'upn': {'readonly': True}, + } + + _attribute_map = { + 'tag': {'key': 'tag', 'type': 'str'}, + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'object_identifier': {'key': 'objectIdentifier', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'upn': {'key': 'upn', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(TagProperty, self).__init__(**kwargs) + self.tag = None + self.timestamp = None + self.object_identifier = None + self.tenant_id = None + self.upn = None + + +class UpdateHistoryProperty(Model): + """An update history of the ImmutabilityPolicy of a blob container. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar update: The ImmutabilityPolicy update type of a blob container, + possible values include: put, lock and extend. Possible values include: + 'put', 'lock', 'extend' + :vartype update: str or + ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicyUpdateType + :ivar immutability_period_since_creation_in_days: The immutability period + for the blobs in the container since the policy creation, in days. + :vartype immutability_period_since_creation_in_days: int + :ivar timestamp: Returns the date and time the ImmutabilityPolicy was + updated. + :vartype timestamp: datetime + :ivar object_identifier: Returns the Object ID of the user who updated the + ImmutabilityPolicy. + :vartype object_identifier: str + :ivar tenant_id: Returns the Tenant ID that issued the token for the user + who updated the ImmutabilityPolicy. + :vartype tenant_id: str + :ivar upn: Returns the User Principal Name of the user who updated the + ImmutabilityPolicy. + :vartype upn: str + """ + + _validation = { + 'update': {'readonly': True}, + 'immutability_period_since_creation_in_days': {'readonly': True}, + 'timestamp': {'readonly': True}, + 'object_identifier': {'readonly': True}, + 'tenant_id': {'readonly': True}, + 'upn': {'readonly': True}, + } + + _attribute_map = { + 'update': {'key': 'update', 'type': 'str'}, + 'immutability_period_since_creation_in_days': {'key': 'immutabilityPeriodSinceCreationInDays', 'type': 'int'}, + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'object_identifier': {'key': 'objectIdentifier', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'upn': {'key': 'upn', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(UpdateHistoryProperty, self).__init__(**kwargs) + self.update = None + self.immutability_period_since_creation_in_days = None + self.timestamp = None + self.object_identifier = None + self.tenant_id = None + self.upn = None + + +class Usage(Model): + """Describes Storage Resource Usage. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar unit: Gets the unit of measurement. Possible values include: + 'Count', 'Bytes', 'Seconds', 'Percent', 'CountsPerSecond', + 'BytesPerSecond' + :vartype unit: str or ~azure.mgmt.storage.v2019_06_01.models.UsageUnit + :ivar current_value: Gets the current count of the allocated resources in + the subscription. + :vartype current_value: int + :ivar limit: Gets the maximum count of the resources that can be allocated + in the subscription. + :vartype limit: int + :ivar name: Gets the name of the type of usage. + :vartype name: ~azure.mgmt.storage.v2019_06_01.models.UsageName + """ + + _validation = { + 'unit': {'readonly': True}, + 'current_value': {'readonly': True}, + 'limit': {'readonly': True}, + 'name': {'readonly': True}, + } + + _attribute_map = { + 'unit': {'key': 'unit', 'type': 'UsageUnit'}, + 'current_value': {'key': 'currentValue', 'type': 'int'}, + 'limit': {'key': 'limit', 'type': 'int'}, + 'name': {'key': 'name', 'type': 'UsageName'}, + } + + def __init__(self, **kwargs): + super(Usage, self).__init__(**kwargs) + self.unit = None + self.current_value = None + self.limit = None + self.name = None + + +class UsageName(Model): + """The usage names that can be used; currently limited to StorageAccount. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar value: Gets a string describing the resource name. + :vartype value: str + :ivar localized_value: Gets a localized string describing the resource + name. + :vartype localized_value: str + """ + + _validation = { + 'value': {'readonly': True}, + 'localized_value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': 'str'}, + 'localized_value': {'key': 'localizedValue', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(UsageName, self).__init__(**kwargs) + self.value = None + self.localized_value = None + + +class VirtualNetworkRule(Model): + """Virtual Network rule. + + All required parameters must be populated in order to send to Azure. + + :param virtual_network_resource_id: Required. Resource ID of a subnet, for + example: + /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}. + :type virtual_network_resource_id: str + :param action: The action of virtual network rule. Possible values + include: 'Allow'. Default value: "Allow" . + :type action: str or ~azure.mgmt.storage.v2019_06_01.models.Action + :param state: Gets the state of virtual network rule. Possible values + include: 'provisioning', 'deprovisioning', 'succeeded', 'failed', + 'networkSourceDeleted' + :type state: str or ~azure.mgmt.storage.v2019_06_01.models.State + """ + + _validation = { + 'virtual_network_resource_id': {'required': True}, + } + + _attribute_map = { + 'virtual_network_resource_id': {'key': 'id', 'type': 'str'}, + 'action': {'key': 'action', 'type': 'Action'}, + 'state': {'key': 'state', 'type': 'State'}, + } + + def __init__(self, **kwargs): + super(VirtualNetworkRule, self).__init__(**kwargs) + self.virtual_network_resource_id = kwargs.get('virtual_network_resource_id', None) + self.action = kwargs.get('action', "Allow") + self.state = kwargs.get('state', None) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_models_py3.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_models_py3.py new file mode 100644 index 00000000000..b1d9f4943cc --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_models_py3.py @@ -0,0 +1,3571 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class AccountSasParameters(Model): + """The parameters to list SAS credentials of a storage account. + + All required parameters must be populated in order to send to Azure. + + :param services: Required. The signed services accessible with the account + SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f). + Possible values include: 'b', 'q', 't', 'f' + :type services: str or ~azure.mgmt.storage.v2019_06_01.models.Services + :param resource_types: Required. The signed resource types that are + accessible with the account SAS. Service (s): Access to service-level + APIs; Container (c): Access to container-level APIs; Object (o): Access to + object-level APIs for blobs, queue messages, table entities, and files. + Possible values include: 's', 'c', 'o' + :type resource_types: str or + ~azure.mgmt.storage.v2019_06_01.models.SignedResourceTypes + :param permissions: Required. The signed permissions for the account SAS. + Possible values include: Read (r), Write (w), Delete (d), List (l), Add + (a), Create (c), Update (u) and Process (p). Possible values include: 'r', + 'd', 'w', 'l', 'a', 'c', 'u', 'p' + :type permissions: str or + ~azure.mgmt.storage.v2019_06_01.models.Permissions + :param ip_address_or_range: An IP address or a range of IP addresses from + which to accept requests. + :type ip_address_or_range: str + :param protocols: The protocol permitted for a request made with the + account SAS. Possible values include: 'https,http', 'https' + :type protocols: str or + ~azure.mgmt.storage.v2019_06_01.models.HttpProtocol + :param shared_access_start_time: The time at which the SAS becomes valid. + :type shared_access_start_time: datetime + :param shared_access_expiry_time: Required. The time at which the shared + access signature becomes invalid. + :type shared_access_expiry_time: datetime + :param key_to_sign: The key to sign the account SAS token with. + :type key_to_sign: str + """ + + _validation = { + 'services': {'required': True}, + 'resource_types': {'required': True}, + 'permissions': {'required': True}, + 'shared_access_expiry_time': {'required': True}, + } + + _attribute_map = { + 'services': {'key': 'signedServices', 'type': 'str'}, + 'resource_types': {'key': 'signedResourceTypes', 'type': 'str'}, + 'permissions': {'key': 'signedPermission', 'type': 'str'}, + 'ip_address_or_range': {'key': 'signedIp', 'type': 'str'}, + 'protocols': {'key': 'signedProtocol', 'type': 'HttpProtocol'}, + 'shared_access_start_time': {'key': 'signedStart', 'type': 'iso-8601'}, + 'shared_access_expiry_time': {'key': 'signedExpiry', 'type': 'iso-8601'}, + 'key_to_sign': {'key': 'keyToSign', 'type': 'str'}, + } + + def __init__(self, *, services, resource_types, permissions, shared_access_expiry_time, ip_address_or_range: str=None, protocols=None, shared_access_start_time=None, key_to_sign: str=None, **kwargs) -> None: + super(AccountSasParameters, self).__init__(**kwargs) + self.services = services + self.resource_types = resource_types + self.permissions = permissions + self.ip_address_or_range = ip_address_or_range + self.protocols = protocols + self.shared_access_start_time = shared_access_start_time + self.shared_access_expiry_time = shared_access_expiry_time + self.key_to_sign = key_to_sign + + +class ActiveDirectoryProperties(Model): + """Settings properties for Active Directory (AD). + + All required parameters must be populated in order to send to Azure. + + :param domain_name: Required. Specifies the primary domain that the AD DNS + server is authoritative for. + :type domain_name: str + :param net_bios_domain_name: Required. Specifies the NetBIOS domain name. + :type net_bios_domain_name: str + :param forest_name: Required. Specifies the Active Directory forest to + get. + :type forest_name: str + :param domain_guid: Required. Specifies the domain GUID. + :type domain_guid: str + :param domain_sid: Required. Specifies the security identifier (SID). + :type domain_sid: str + :param azure_storage_sid: Required. Specifies the security identifier + (SID) for Azure Storage. + :type azure_storage_sid: str + """ + + _validation = { + 'domain_name': {'required': True}, + 'net_bios_domain_name': {'required': True}, + 'forest_name': {'required': True}, + 'domain_guid': {'required': True}, + 'domain_sid': {'required': True}, + 'azure_storage_sid': {'required': True}, + } + + _attribute_map = { + 'domain_name': {'key': 'domainName', 'type': 'str'}, + 'net_bios_domain_name': {'key': 'netBiosDomainName', 'type': 'str'}, + 'forest_name': {'key': 'forestName', 'type': 'str'}, + 'domain_guid': {'key': 'domainGuid', 'type': 'str'}, + 'domain_sid': {'key': 'domainSid', 'type': 'str'}, + 'azure_storage_sid': {'key': 'azureStorageSid', 'type': 'str'}, + } + + def __init__(self, *, domain_name: str, net_bios_domain_name: str, forest_name: str, domain_guid: str, domain_sid: str, azure_storage_sid: str, **kwargs) -> None: + super(ActiveDirectoryProperties, self).__init__(**kwargs) + self.domain_name = domain_name + self.net_bios_domain_name = net_bios_domain_name + self.forest_name = forest_name + self.domain_guid = domain_guid + self.domain_sid = domain_sid + self.azure_storage_sid = azure_storage_sid + + +class Resource(Model): + """Resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None + + +class AzureEntityResource(Resource): + """The resource model definition for a Azure Resource Manager resource with an + etag. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(AzureEntityResource, self).__init__(**kwargs) + self.etag = None + + +class AzureFilesIdentityBasedAuthentication(Model): + """Settings for Azure Files identity based authentication. + + All required parameters must be populated in order to send to Azure. + + :param directory_service_options: Required. Indicates the directory + service used. Possible values include: 'None', 'AADDS', 'AD' + :type directory_service_options: str or + ~azure.mgmt.storage.v2019_06_01.models.DirectoryServiceOptions + :param active_directory_properties: Required if choose AD. + :type active_directory_properties: + ~azure.mgmt.storage.v2019_06_01.models.ActiveDirectoryProperties + """ + + _validation = { + 'directory_service_options': {'required': True}, + } + + _attribute_map = { + 'directory_service_options': {'key': 'directoryServiceOptions', 'type': 'str'}, + 'active_directory_properties': {'key': 'activeDirectoryProperties', 'type': 'ActiveDirectoryProperties'}, + } + + def __init__(self, *, directory_service_options, active_directory_properties=None, **kwargs) -> None: + super(AzureFilesIdentityBasedAuthentication, self).__init__(**kwargs) + self.directory_service_options = directory_service_options + self.active_directory_properties = active_directory_properties + + +class BlobContainer(AzureEntityResource): + """Properties of the blob container, including Id, resource name, resource + type, Etag. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + :param public_access: Specifies whether data in the container may be + accessed publicly and the level of access. Possible values include: + 'Container', 'Blob', 'None' + :type public_access: str or + ~azure.mgmt.storage.v2019_06_01.models.PublicAccess + :ivar last_modified_time: Returns the date and time the container was last + modified. + :vartype last_modified_time: datetime + :ivar lease_status: The lease status of the container. Possible values + include: 'Locked', 'Unlocked' + :vartype lease_status: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseStatus + :ivar lease_state: Lease state of the container. Possible values include: + 'Available', 'Leased', 'Expired', 'Breaking', 'Broken' + :vartype lease_state: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseState + :ivar lease_duration: Specifies whether the lease on a container is of + infinite or fixed duration, only when the container is leased. Possible + values include: 'Infinite', 'Fixed' + :vartype lease_duration: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseDuration + :param metadata: A name-value pair to associate with the container as + metadata. + :type metadata: dict[str, str] + :ivar immutability_policy: The ImmutabilityPolicy property of the + container. + :vartype immutability_policy: + ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicyProperties + :ivar legal_hold: The LegalHold property of the container. + :vartype legal_hold: + ~azure.mgmt.storage.v2019_06_01.models.LegalHoldProperties + :ivar has_legal_hold: The hasLegalHold public property is set to true by + SRP if there are at least one existing tag. The hasLegalHold public + property is set to false by SRP if all existing legal hold tags are + cleared out. There can be a maximum of 1000 blob containers with + hasLegalHold=true for a given account. + :vartype has_legal_hold: bool + :ivar has_immutability_policy: The hasImmutabilityPolicy public property + is set to true by SRP if ImmutabilityPolicy has been created for this + container. The hasImmutabilityPolicy public property is set to false by + SRP if ImmutabilityPolicy has not been created for this container. + :vartype has_immutability_policy: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'last_modified_time': {'readonly': True}, + 'lease_status': {'readonly': True}, + 'lease_state': {'readonly': True}, + 'lease_duration': {'readonly': True}, + 'immutability_policy': {'readonly': True}, + 'legal_hold': {'readonly': True}, + 'has_legal_hold': {'readonly': True}, + 'has_immutability_policy': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'public_access': {'key': 'properties.publicAccess', 'type': 'PublicAccess'}, + 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, + 'lease_status': {'key': 'properties.leaseStatus', 'type': 'str'}, + 'lease_state': {'key': 'properties.leaseState', 'type': 'str'}, + 'lease_duration': {'key': 'properties.leaseDuration', 'type': 'str'}, + 'metadata': {'key': 'properties.metadata', 'type': '{str}'}, + 'immutability_policy': {'key': 'properties.immutabilityPolicy', 'type': 'ImmutabilityPolicyProperties'}, + 'legal_hold': {'key': 'properties.legalHold', 'type': 'LegalHoldProperties'}, + 'has_legal_hold': {'key': 'properties.hasLegalHold', 'type': 'bool'}, + 'has_immutability_policy': {'key': 'properties.hasImmutabilityPolicy', 'type': 'bool'}, + } + + def __init__(self, *, public_access=None, metadata=None, **kwargs) -> None: + super(BlobContainer, self).__init__(**kwargs) + self.public_access = public_access + self.last_modified_time = None + self.lease_status = None + self.lease_state = None + self.lease_duration = None + self.metadata = metadata + self.immutability_policy = None + self.legal_hold = None + self.has_legal_hold = None + self.has_immutability_policy = None + + +class BlobRestoreParameters(Model): + """Blob restore parameters. + + All required parameters must be populated in order to send to Azure. + + :param time_to_restore: Required. Restore blob to the specified time. + :type time_to_restore: datetime + :param blob_ranges: Required. Blob ranges to restore. + :type blob_ranges: + list[~azure.mgmt.storage.v2019_06_01.models.BlobRestoreRange] + """ + + _validation = { + 'time_to_restore': {'required': True}, + 'blob_ranges': {'required': True}, + } + + _attribute_map = { + 'time_to_restore': {'key': 'timeToRestore', 'type': 'iso-8601'}, + 'blob_ranges': {'key': 'blobRanges', 'type': '[BlobRestoreRange]'}, + } + + def __init__(self, *, time_to_restore, blob_ranges, **kwargs) -> None: + super(BlobRestoreParameters, self).__init__(**kwargs) + self.time_to_restore = time_to_restore + self.blob_ranges = blob_ranges + + +class BlobRestoreRange(Model): + """Blob range. + + All required parameters must be populated in order to send to Azure. + + :param start_range: Required. Blob start range. Empty means account start. + :type start_range: str + :param end_range: Required. Blob end range. Empty means account end. + :type end_range: str + """ + + _validation = { + 'start_range': {'required': True}, + 'end_range': {'required': True}, + } + + _attribute_map = { + 'start_range': {'key': 'startRange', 'type': 'str'}, + 'end_range': {'key': 'endRange', 'type': 'str'}, + } + + def __init__(self, *, start_range: str, end_range: str, **kwargs) -> None: + super(BlobRestoreRange, self).__init__(**kwargs) + self.start_range = start_range + self.end_range = end_range + + +class BlobRestoreStatus(Model): + """Blob restore status. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar status: The status of blob restore progress. Possible values are: - + InProgress: Indicates that blob restore is ongoing. - Complete: Indicates + that blob restore has been completed successfully. - Failed: Indicates + that blob restore is failed. Possible values include: 'InProgress', + 'Complete', 'Failed' + :vartype status: str or + ~azure.mgmt.storage.v2019_06_01.models.BlobRestoreProgressStatus + :ivar failure_reason: Failure reason when blob restore is failed. + :vartype failure_reason: str + :ivar restore_id: Id for tracking blob restore request. + :vartype restore_id: str + :ivar parameters: Blob restore request parameters. + :vartype parameters: + ~azure.mgmt.storage.v2019_06_01.models.BlobRestoreParameters + """ + + _validation = { + 'status': {'readonly': True}, + 'failure_reason': {'readonly': True}, + 'restore_id': {'readonly': True}, + 'parameters': {'readonly': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'failure_reason': {'key': 'failureReason', 'type': 'str'}, + 'restore_id': {'key': 'restoreId', 'type': 'str'}, + 'parameters': {'key': 'parameters', 'type': 'BlobRestoreParameters'}, + } + + def __init__(self, **kwargs) -> None: + super(BlobRestoreStatus, self).__init__(**kwargs) + self.status = None + self.failure_reason = None + self.restore_id = None + self.parameters = None + + +class BlobServiceProperties(Resource): + """The properties of a storage account’s Blob service. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param cors: Specifies CORS rules for the Blob service. You can include up + to five CorsRule elements in the request. If no CorsRule elements are + included in the request body, all CORS rules will be deleted, and CORS + will be disabled for the Blob service. + :type cors: ~azure.mgmt.storage.v2019_06_01.models.CorsRules + :param default_service_version: DefaultServiceVersion indicates the + default version to use for requests to the Blob service if an incoming + request’s version is not specified. Possible values include version + 2008-10-27 and all more recent versions. + :type default_service_version: str + :param delete_retention_policy: The blob service properties for blob soft + delete. + :type delete_retention_policy: + ~azure.mgmt.storage.v2019_06_01.models.DeleteRetentionPolicy + :param is_versioning_enabled: Versioning is enabled if set to true. + :type is_versioning_enabled: bool + :param automatic_snapshot_policy_enabled: Deprecated in favor of + isVersioningEnabled property. + :type automatic_snapshot_policy_enabled: bool + :param change_feed: The blob service properties for change feed events. + :type change_feed: ~azure.mgmt.storage.v2019_06_01.models.ChangeFeed + :param restore_policy: The blob service properties for blob restore + policy. + :type restore_policy: + ~azure.mgmt.storage.v2019_06_01.models.RestorePolicyProperties + :param container_delete_retention_policy: The blob service properties for + container soft delete. + :type container_delete_retention_policy: + ~azure.mgmt.storage.v2019_06_01.models.DeleteRetentionPolicy + :param last_access_time_tracking_policy: The blob service property to + configure last access time based tracking policy. + :type last_access_time_tracking_policy: + ~azure.mgmt.storage.v2019_06_01.models.LastAccessTimeTrackingPolicy + :ivar sku: Sku name and tier. + :vartype sku: ~azure.mgmt.storage.v2019_06_01.models.Sku + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'sku': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'cors': {'key': 'properties.cors', 'type': 'CorsRules'}, + 'default_service_version': {'key': 'properties.defaultServiceVersion', 'type': 'str'}, + 'delete_retention_policy': {'key': 'properties.deleteRetentionPolicy', 'type': 'DeleteRetentionPolicy'}, + 'is_versioning_enabled': {'key': 'properties.isVersioningEnabled', 'type': 'bool'}, + 'automatic_snapshot_policy_enabled': {'key': 'properties.automaticSnapshotPolicyEnabled', 'type': 'bool'}, + 'change_feed': {'key': 'properties.changeFeed', 'type': 'ChangeFeed'}, + 'restore_policy': {'key': 'properties.restorePolicy', 'type': 'RestorePolicyProperties'}, + 'container_delete_retention_policy': {'key': 'properties.containerDeleteRetentionPolicy', 'type': 'DeleteRetentionPolicy'}, + 'last_access_time_tracking_policy': {'key': 'properties.lastAccessTimeTrackingPolicy', 'type': 'LastAccessTimeTrackingPolicy'}, + 'sku': {'key': 'sku', 'type': 'Sku'}, + } + + def __init__(self, *, cors=None, default_service_version: str=None, delete_retention_policy=None, is_versioning_enabled: bool=None, automatic_snapshot_policy_enabled: bool=None, change_feed=None, restore_policy=None, container_delete_retention_policy=None, last_access_time_tracking_policy=None, **kwargs) -> None: + super(BlobServiceProperties, self).__init__(**kwargs) + self.cors = cors + self.default_service_version = default_service_version + self.delete_retention_policy = delete_retention_policy + self.is_versioning_enabled = is_versioning_enabled + self.automatic_snapshot_policy_enabled = automatic_snapshot_policy_enabled + self.change_feed = change_feed + self.restore_policy = restore_policy + self.container_delete_retention_policy = container_delete_retention_policy + self.last_access_time_tracking_policy = last_access_time_tracking_policy + self.sku = None + + +class ChangeFeed(Model): + """The blob service properties for change feed events. + + :param enabled: Indicates whether change feed event logging is enabled for + the Blob service. + :type enabled: bool + """ + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + } + + def __init__(self, *, enabled: bool=None, **kwargs) -> None: + super(ChangeFeed, self).__init__(**kwargs) + self.enabled = enabled + + +class CheckNameAvailabilityResult(Model): + """The CheckNameAvailability operation response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar name_available: Gets a boolean value that indicates whether the name + is available for you to use. If true, the name is available. If false, the + name has already been taken or is invalid and cannot be used. + :vartype name_available: bool + :ivar reason: Gets the reason that a storage account name could not be + used. The Reason element is only returned if NameAvailable is false. + Possible values include: 'AccountNameInvalid', 'AlreadyExists' + :vartype reason: str or ~azure.mgmt.storage.v2019_06_01.models.Reason + :ivar message: Gets an error message explaining the Reason value in more + detail. + :vartype message: str + """ + + _validation = { + 'name_available': {'readonly': True}, + 'reason': {'readonly': True}, + 'message': {'readonly': True}, + } + + _attribute_map = { + 'name_available': {'key': 'nameAvailable', 'type': 'bool'}, + 'reason': {'key': 'reason', 'type': 'Reason'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(CheckNameAvailabilityResult, self).__init__(**kwargs) + self.name_available = None + self.reason = None + self.message = None + + +class CloudError(Model): + """An error response from the Storage service. + + :param error: + :type error: ~azure.mgmt.storage.v2019_06_01.models.CloudErrorBody + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'CloudErrorBody'}, + } + + def __init__(self, *, error=None, **kwargs) -> None: + super(CloudError, self).__init__(**kwargs) + self.error = error + + +class CloudErrorException(HttpOperationError): + """Server responsed with exception of type: 'CloudError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(CloudErrorException, self).__init__(deserialize, response, 'CloudError', *args) + + +class CloudErrorBody(Model): + """An error response from the Storage service. + + :param code: An identifier for the error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable + for display in a user interface. + :type message: str + :param target: The target of the particular error. For example, the name + of the property in error. + :type target: str + :param details: A list of additional details about the error. + :type details: list[~azure.mgmt.storage.v2019_06_01.models.CloudErrorBody] + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'target': {'key': 'target', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, + } + + def __init__(self, *, code: str=None, message: str=None, target: str=None, details=None, **kwargs) -> None: + super(CloudErrorBody, self).__init__(**kwargs) + self.code = code + self.message = message + self.target = target + self.details = details + + +class CorsRule(Model): + """Specifies a CORS rule for the Blob service. + + All required parameters must be populated in order to send to Azure. + + :param allowed_origins: Required. Required if CorsRule element is present. + A list of origin domains that will be allowed via CORS, or "*" to allow + all domains + :type allowed_origins: list[str] + :param allowed_methods: Required. Required if CorsRule element is present. + A list of HTTP methods that are allowed to be executed by the origin. + :type allowed_methods: list[str] + :param max_age_in_seconds: Required. Required if CorsRule element is + present. The number of seconds that the client/browser should cache a + preflight response. + :type max_age_in_seconds: int + :param exposed_headers: Required. Required if CorsRule element is present. + A list of response headers to expose to CORS clients. + :type exposed_headers: list[str] + :param allowed_headers: Required. Required if CorsRule element is present. + A list of headers allowed to be part of the cross-origin request. + :type allowed_headers: list[str] + """ + + _validation = { + 'allowed_origins': {'required': True}, + 'allowed_methods': {'required': True}, + 'max_age_in_seconds': {'required': True}, + 'exposed_headers': {'required': True}, + 'allowed_headers': {'required': True}, + } + + _attribute_map = { + 'allowed_origins': {'key': 'allowedOrigins', 'type': '[str]'}, + 'allowed_methods': {'key': 'allowedMethods', 'type': '[str]'}, + 'max_age_in_seconds': {'key': 'maxAgeInSeconds', 'type': 'int'}, + 'exposed_headers': {'key': 'exposedHeaders', 'type': '[str]'}, + 'allowed_headers': {'key': 'allowedHeaders', 'type': '[str]'}, + } + + def __init__(self, *, allowed_origins, allowed_methods, max_age_in_seconds: int, exposed_headers, allowed_headers, **kwargs) -> None: + super(CorsRule, self).__init__(**kwargs) + self.allowed_origins = allowed_origins + self.allowed_methods = allowed_methods + self.max_age_in_seconds = max_age_in_seconds + self.exposed_headers = exposed_headers + self.allowed_headers = allowed_headers + + +class CorsRules(Model): + """Sets the CORS rules. You can include up to five CorsRule elements in the + request. . + + :param cors_rules: The List of CORS rules. You can include up to five + CorsRule elements in the request. + :type cors_rules: list[~azure.mgmt.storage.v2019_06_01.models.CorsRule] + """ + + _attribute_map = { + 'cors_rules': {'key': 'corsRules', 'type': '[CorsRule]'}, + } + + def __init__(self, *, cors_rules=None, **kwargs) -> None: + super(CorsRules, self).__init__(**kwargs) + self.cors_rules = cors_rules + + +class CustomDomain(Model): + """The custom domain assigned to this storage account. This can be set via + Update. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Gets or sets the custom domain name assigned to the + storage account. Name is the CNAME source. + :type name: str + :param use_sub_domain_name: Indicates whether indirect CName validation is + enabled. Default value is false. This should only be set on updates. + :type use_sub_domain_name: bool + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'use_sub_domain_name': {'key': 'useSubDomainName', 'type': 'bool'}, + } + + def __init__(self, *, name: str, use_sub_domain_name: bool=None, **kwargs) -> None: + super(CustomDomain, self).__init__(**kwargs) + self.name = name + self.use_sub_domain_name = use_sub_domain_name + + +class DateAfterCreation(Model): + """Object to define the number of days after creation. + + All required parameters must be populated in order to send to Azure. + + :param days_after_creation_greater_than: Required. Value indicating the + age in days after creation + :type days_after_creation_greater_than: float + """ + + _validation = { + 'days_after_creation_greater_than': {'required': True, 'minimum': 0, 'multiple': 1}, + } + + _attribute_map = { + 'days_after_creation_greater_than': {'key': 'daysAfterCreationGreaterThan', 'type': 'float'}, + } + + def __init__(self, *, days_after_creation_greater_than: float, **kwargs) -> None: + super(DateAfterCreation, self).__init__(**kwargs) + self.days_after_creation_greater_than = days_after_creation_greater_than + + +class DateAfterModification(Model): + """Object to define the number of days after object last modification Or last + access. Properties daysAfterModificationGreaterThan and + daysAfterLastAccessTimeGreaterThan are mutually exclusive. + + :param days_after_modification_greater_than: Value indicating the age in + days after last modification + :type days_after_modification_greater_than: float + :param days_after_last_access_time_greater_than: Value indicating the age + in days after last blob access. This property can only be used in + conjuction with last access time tracking policy + :type days_after_last_access_time_greater_than: float + """ + + _validation = { + 'days_after_modification_greater_than': {'minimum': 0, 'multiple': 1}, + 'days_after_last_access_time_greater_than': {'minimum': 0, 'multiple': 1}, + } + + _attribute_map = { + 'days_after_modification_greater_than': {'key': 'daysAfterModificationGreaterThan', 'type': 'float'}, + 'days_after_last_access_time_greater_than': {'key': 'daysAfterLastAccessTimeGreaterThan', 'type': 'float'}, + } + + def __init__(self, *, days_after_modification_greater_than: float=None, days_after_last_access_time_greater_than: float=None, **kwargs) -> None: + super(DateAfterModification, self).__init__(**kwargs) + self.days_after_modification_greater_than = days_after_modification_greater_than + self.days_after_last_access_time_greater_than = days_after_last_access_time_greater_than + + +class DeleteRetentionPolicy(Model): + """The service properties for soft delete. + + :param enabled: Indicates whether DeleteRetentionPolicy is enabled. + :type enabled: bool + :param days: Indicates the number of days that the deleted item should be + retained. The minimum specified value can be 1 and the maximum value can + be 365. + :type days: int + """ + + _validation = { + 'days': {'maximum': 365, 'minimum': 1}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'days': {'key': 'days', 'type': 'int'}, + } + + def __init__(self, *, enabled: bool=None, days: int=None, **kwargs) -> None: + super(DeleteRetentionPolicy, self).__init__(**kwargs) + self.enabled = enabled + self.days = days + + +class Dimension(Model): + """Dimension of blobs, possibly be blob type or access tier. + + :param name: Display name of dimension. + :type name: str + :param display_name: Display name of dimension. + :type display_name: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + } + + def __init__(self, *, name: str=None, display_name: str=None, **kwargs) -> None: + super(Dimension, self).__init__(**kwargs) + self.name = name + self.display_name = display_name + + +class Encryption(Model): + """The encryption settings on the storage account. + + All required parameters must be populated in order to send to Azure. + + :param services: List of services which support encryption. + :type services: ~azure.mgmt.storage.v2019_06_01.models.EncryptionServices + :param key_source: Required. The encryption keySource (provider). Possible + values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault. + Possible values include: 'Microsoft.Storage', 'Microsoft.Keyvault'. + Default value: "Microsoft.Storage" . + :type key_source: str or ~azure.mgmt.storage.v2019_06_01.models.KeySource + :param key_vault_properties: Properties provided by key vault. + :type key_vault_properties: + ~azure.mgmt.storage.v2019_06_01.models.KeyVaultProperties + """ + + _validation = { + 'key_source': {'required': True}, + } + + _attribute_map = { + 'services': {'key': 'services', 'type': 'EncryptionServices'}, + 'key_source': {'key': 'keySource', 'type': 'str'}, + 'key_vault_properties': {'key': 'keyvaultproperties', 'type': 'KeyVaultProperties'}, + } + + def __init__(self, *, services=None, key_source="Microsoft.Storage", key_vault_properties=None, **kwargs) -> None: + super(Encryption, self).__init__(**kwargs) + self.services = services + self.key_source = key_source + self.key_vault_properties = key_vault_properties + + +class EncryptionService(Model): + """A service that allows server-side encryption to be used. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param enabled: A boolean indicating whether or not the service encrypts + the data as it is stored. + :type enabled: bool + :ivar last_enabled_time: Gets a rough estimate of the date/time when the + encryption was last enabled by the user. Only returned when encryption is + enabled. There might be some unencrypted blobs which were written after + this time, as it is just a rough estimate. + :vartype last_enabled_time: datetime + :param key_type: Encryption key type to be used for the encryption + service. 'Account' key type implies that an account-scoped encryption key + will be used. 'Service' key type implies that a default service key is + used. Possible values include: 'Service', 'Account' + :type key_type: str or ~azure.mgmt.storage.v2019_06_01.models.KeyType + """ + + _validation = { + 'last_enabled_time': {'readonly': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'last_enabled_time': {'key': 'lastEnabledTime', 'type': 'iso-8601'}, + 'key_type': {'key': 'keyType', 'type': 'str'}, + } + + def __init__(self, *, enabled: bool=None, key_type=None, **kwargs) -> None: + super(EncryptionService, self).__init__(**kwargs) + self.enabled = enabled + self.last_enabled_time = None + self.key_type = key_type + + +class EncryptionServices(Model): + """A list of services that support encryption. + + :param blob: The encryption function of the blob storage service. + :type blob: ~azure.mgmt.storage.v2019_06_01.models.EncryptionService + :param file: The encryption function of the file storage service. + :type file: ~azure.mgmt.storage.v2019_06_01.models.EncryptionService + :param table: The encryption function of the table storage service. + :type table: ~azure.mgmt.storage.v2019_06_01.models.EncryptionService + :param queue: The encryption function of the queue storage service. + :type queue: ~azure.mgmt.storage.v2019_06_01.models.EncryptionService + """ + + _attribute_map = { + 'blob': {'key': 'blob', 'type': 'EncryptionService'}, + 'file': {'key': 'file', 'type': 'EncryptionService'}, + 'table': {'key': 'table', 'type': 'EncryptionService'}, + 'queue': {'key': 'queue', 'type': 'EncryptionService'}, + } + + def __init__(self, *, blob=None, file=None, table=None, queue=None, **kwargs) -> None: + super(EncryptionServices, self).__init__(**kwargs) + self.blob = blob + self.file = file + self.table = table + self.queue = queue + + +class Endpoints(Model): + """The URIs that are used to perform a retrieval of a public blob, queue, + table, web or dfs object. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar blob: Gets the blob endpoint. + :vartype blob: str + :ivar queue: Gets the queue endpoint. + :vartype queue: str + :ivar table: Gets the table endpoint. + :vartype table: str + :ivar file: Gets the file endpoint. + :vartype file: str + :ivar web: Gets the web endpoint. + :vartype web: str + :ivar dfs: Gets the dfs endpoint. + :vartype dfs: str + :param microsoft_endpoints: Gets the microsoft routing storage endpoints. + :type microsoft_endpoints: + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountMicrosoftEndpoints + :param internet_endpoints: Gets the internet routing storage endpoints + :type internet_endpoints: + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountInternetEndpoints + """ + + _validation = { + 'blob': {'readonly': True}, + 'queue': {'readonly': True}, + 'table': {'readonly': True}, + 'file': {'readonly': True}, + 'web': {'readonly': True}, + 'dfs': {'readonly': True}, + } + + _attribute_map = { + 'blob': {'key': 'blob', 'type': 'str'}, + 'queue': {'key': 'queue', 'type': 'str'}, + 'table': {'key': 'table', 'type': 'str'}, + 'file': {'key': 'file', 'type': 'str'}, + 'web': {'key': 'web', 'type': 'str'}, + 'dfs': {'key': 'dfs', 'type': 'str'}, + 'microsoft_endpoints': {'key': 'microsoftEndpoints', 'type': 'StorageAccountMicrosoftEndpoints'}, + 'internet_endpoints': {'key': 'internetEndpoints', 'type': 'StorageAccountInternetEndpoints'}, + } + + def __init__(self, *, microsoft_endpoints=None, internet_endpoints=None, **kwargs) -> None: + super(Endpoints, self).__init__(**kwargs) + self.blob = None + self.queue = None + self.table = None + self.file = None + self.web = None + self.dfs = None + self.microsoft_endpoints = microsoft_endpoints + self.internet_endpoints = internet_endpoints + + +class ErrorResponse(Model): + """An error response from the storage resource provider. + + :param code: An identifier for the error. Codes are invariant and are + intended to be consumed programmatically. + :type code: str + :param message: A message describing the error, intended to be suitable + for display in a user interface. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__(self, *, code: str=None, message: str=None, **kwargs) -> None: + super(ErrorResponse, self).__init__(**kwargs) + self.code = code + self.message = message + + +class ErrorResponseException(HttpOperationError): + """Server responsed with exception of type: 'ErrorResponse'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(ErrorResponseException, self).__init__(deserialize, response, 'ErrorResponse', *args) + + +class FileServiceItems(Model): + """FileServiceItems. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar value: List of file services returned. + :vartype value: + list[~azure.mgmt.storage.v2019_06_01.models.FileServiceProperties] + """ + + _validation = { + 'value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': '[FileServiceProperties]'}, + } + + def __init__(self, **kwargs) -> None: + super(FileServiceItems, self).__init__(**kwargs) + self.value = None + + +class FileServiceProperties(Resource): + """The properties of File services in storage account. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param cors: Specifies CORS rules for the File service. You can include up + to five CorsRule elements in the request. If no CorsRule elements are + included in the request body, all CORS rules will be deleted, and CORS + will be disabled for the File service. + :type cors: ~azure.mgmt.storage.v2019_06_01.models.CorsRules + :param share_delete_retention_policy: The file service properties for + share soft delete. + :type share_delete_retention_policy: + ~azure.mgmt.storage.v2019_06_01.models.DeleteRetentionPolicy + :ivar sku: Sku name and tier. + :vartype sku: ~azure.mgmt.storage.v2019_06_01.models.Sku + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'sku': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'cors': {'key': 'properties.cors', 'type': 'CorsRules'}, + 'share_delete_retention_policy': {'key': 'properties.shareDeleteRetentionPolicy', 'type': 'DeleteRetentionPolicy'}, + 'sku': {'key': 'sku', 'type': 'Sku'}, + } + + def __init__(self, *, cors=None, share_delete_retention_policy=None, **kwargs) -> None: + super(FileServiceProperties, self).__init__(**kwargs) + self.cors = cors + self.share_delete_retention_policy = share_delete_retention_policy + self.sku = None + + +class FileShare(AzureEntityResource): + """Properties of the file share, including Id, resource name, resource type, + Etag. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + :ivar last_modified_time: Returns the date and time the share was last + modified. + :vartype last_modified_time: datetime + :param metadata: A name-value pair to associate with the share as + metadata. + :type metadata: dict[str, str] + :param share_quota: The maximum size of the share, in gigabytes. Must be + greater than 0, and less than or equal to 5TB (5120). For Large File + Shares, the maximum size is 102400. + :type share_quota: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'last_modified_time': {'readonly': True}, + 'share_quota': {'maximum': 102400, 'minimum': 1}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, + 'metadata': {'key': 'properties.metadata', 'type': '{str}'}, + 'share_quota': {'key': 'properties.shareQuota', 'type': 'int'}, + } + + def __init__(self, *, metadata=None, share_quota: int=None, **kwargs) -> None: + super(FileShare, self).__init__(**kwargs) + self.last_modified_time = None + self.metadata = metadata + self.share_quota = share_quota + + +class FileShareItem(AzureEntityResource): + """The file share properties be listed out. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + :ivar last_modified_time: Returns the date and time the share was last + modified. + :vartype last_modified_time: datetime + :param metadata: A name-value pair to associate with the share as + metadata. + :type metadata: dict[str, str] + :param share_quota: The maximum size of the share, in gigabytes. Must be + greater than 0, and less than or equal to 5TB (5120). For Large File + Shares, the maximum size is 102400. + :type share_quota: int + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'last_modified_time': {'readonly': True}, + 'share_quota': {'maximum': 102400, 'minimum': 1}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, + 'metadata': {'key': 'properties.metadata', 'type': '{str}'}, + 'share_quota': {'key': 'properties.shareQuota', 'type': 'int'}, + } + + def __init__(self, *, metadata=None, share_quota: int=None, **kwargs) -> None: + super(FileShareItem, self).__init__(**kwargs) + self.last_modified_time = None + self.metadata = metadata + self.share_quota = share_quota + + +class GeoReplicationStats(Model): + """Statistics related to replication for storage account's Blob, Table, Queue + and File services. It is only available when geo-redundant replication is + enabled for the storage account. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar status: The status of the secondary location. Possible values are: - + Live: Indicates that the secondary location is active and operational. - + Bootstrap: Indicates initial synchronization from the primary location to + the secondary location is in progress.This typically occurs when + replication is first enabled. - Unavailable: Indicates that the secondary + location is temporarily unavailable. Possible values include: 'Live', + 'Bootstrap', 'Unavailable' + :vartype status: str or + ~azure.mgmt.storage.v2019_06_01.models.GeoReplicationStatus + :ivar last_sync_time: All primary writes preceding this UTC date/time + value are guaranteed to be available for read operations. Primary writes + following this point in time may or may not be available for reads. + Element may be default value if value of LastSyncTime is not available, + this can happen if secondary is offline or we are in bootstrap. + :vartype last_sync_time: datetime + :ivar can_failover: A boolean flag which indicates whether or not account + failover is supported for the account. + :vartype can_failover: bool + """ + + _validation = { + 'status': {'readonly': True}, + 'last_sync_time': {'readonly': True}, + 'can_failover': {'readonly': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'last_sync_time': {'key': 'lastSyncTime', 'type': 'iso-8601'}, + 'can_failover': {'key': 'canFailover', 'type': 'bool'}, + } + + def __init__(self, **kwargs) -> None: + super(GeoReplicationStats, self).__init__(**kwargs) + self.status = None + self.last_sync_time = None + self.can_failover = None + + +class Identity(Model): + """Identity for the resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar principal_id: The principal ID of resource identity. + :vartype principal_id: str + :ivar tenant_id: The tenant ID of resource. + :vartype tenant_id: str + :ivar type: Required. The identity type. Default value: "SystemAssigned" . + :vartype type: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + 'type': {'required': True, 'constant': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + type = "SystemAssigned" + + def __init__(self, **kwargs) -> None: + super(Identity, self).__init__(**kwargs) + self.principal_id = None + self.tenant_id = None + + +class ImmutabilityPolicy(AzureEntityResource): + """The ImmutabilityPolicy property of a blob container, including Id, resource + name, resource type, Etag. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + :param immutability_period_since_creation_in_days: Required. The + immutability period for the blobs in the container since the policy + creation, in days. + :type immutability_period_since_creation_in_days: int + :ivar state: The ImmutabilityPolicy state of a blob container, possible + values include: Locked and Unlocked. Possible values include: 'Locked', + 'Unlocked' + :vartype state: str or + ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicyState + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'immutability_period_since_creation_in_days': {'required': True}, + 'state': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'immutability_period_since_creation_in_days': {'key': 'properties.immutabilityPeriodSinceCreationInDays', 'type': 'int'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + } + + def __init__(self, *, immutability_period_since_creation_in_days: int, **kwargs) -> None: + super(ImmutabilityPolicy, self).__init__(**kwargs) + self.immutability_period_since_creation_in_days = immutability_period_since_creation_in_days + self.state = None + + +class ImmutabilityPolicyProperties(Model): + """The properties of an ImmutabilityPolicy of a blob container. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param immutability_period_since_creation_in_days: Required. The + immutability period for the blobs in the container since the policy + creation, in days. + :type immutability_period_since_creation_in_days: int + :ivar state: The ImmutabilityPolicy state of a blob container, possible + values include: Locked and Unlocked. Possible values include: 'Locked', + 'Unlocked' + :vartype state: str or + ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicyState + :ivar etag: ImmutabilityPolicy Etag. + :vartype etag: str + :ivar update_history: The ImmutabilityPolicy update history of the blob + container. + :vartype update_history: + list[~azure.mgmt.storage.v2019_06_01.models.UpdateHistoryProperty] + """ + + _validation = { + 'immutability_period_since_creation_in_days': {'required': True}, + 'state': {'readonly': True}, + 'etag': {'readonly': True}, + 'update_history': {'readonly': True}, + } + + _attribute_map = { + 'immutability_period_since_creation_in_days': {'key': 'properties.immutabilityPeriodSinceCreationInDays', 'type': 'int'}, + 'state': {'key': 'properties.state', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'update_history': {'key': 'updateHistory', 'type': '[UpdateHistoryProperty]'}, + } + + def __init__(self, *, immutability_period_since_creation_in_days: int, **kwargs) -> None: + super(ImmutabilityPolicyProperties, self).__init__(**kwargs) + self.immutability_period_since_creation_in_days = immutability_period_since_creation_in_days + self.state = None + self.etag = None + self.update_history = None + + +class IPRule(Model): + """IP rule with specific IP or IP range in CIDR format. + + All required parameters must be populated in order to send to Azure. + + :param ip_address_or_range: Required. Specifies the IP or IP range in CIDR + format. Only IPV4 address is allowed. + :type ip_address_or_range: str + :param action: The action of IP ACL rule. Possible values include: + 'Allow'. Default value: "Allow" . + :type action: str or ~azure.mgmt.storage.v2019_06_01.models.Action + """ + + _validation = { + 'ip_address_or_range': {'required': True}, + } + + _attribute_map = { + 'ip_address_or_range': {'key': 'value', 'type': 'str'}, + 'action': {'key': 'action', 'type': 'Action'}, + } + + def __init__(self, *, ip_address_or_range: str, action="Allow", **kwargs) -> None: + super(IPRule, self).__init__(**kwargs) + self.ip_address_or_range = ip_address_or_range + self.action = action + + +class KeyVaultProperties(Model): + """Properties of key vault. + + :param key_name: The name of KeyVault key. + :type key_name: str + :param key_version: The version of KeyVault key. + :type key_version: str + :param key_vault_uri: The Uri of KeyVault. + :type key_vault_uri: str + """ + + _attribute_map = { + 'key_name': {'key': 'keyname', 'type': 'str'}, + 'key_version': {'key': 'keyversion', 'type': 'str'}, + 'key_vault_uri': {'key': 'keyvaulturi', 'type': 'str'}, + } + + def __init__(self, *, key_name: str=None, key_version: str=None, key_vault_uri: str=None, **kwargs) -> None: + super(KeyVaultProperties, self).__init__(**kwargs) + self.key_name = key_name + self.key_version = key_version + self.key_vault_uri = key_vault_uri + + +class LastAccessTimeTrackingPolicy(Model): + """The blob service properties for Last access time based tracking policy. + + All required parameters must be populated in order to send to Azure. + + :param enable: Required. When set to true last access time based tracking + is enabled. + :type enable: bool + :param name: Name of the policy. The valid value is AccessTimeTracking. + Possible values include: 'AccessTimeTracking' + :type name: str or ~azure.mgmt.storage.v2019_06_01.models.Name + :param tracking_granularity_in_days: The field specifies blob object + tracking granularity in days, typically how often the blob object should + be tracked. + :type tracking_granularity_in_days: int + :param blob_type: An array of predefined supported blob types. + :type blob_type: list[str] + """ + + _validation = { + 'enable': {'required': True}, + } + + _attribute_map = { + 'enable': {'key': 'enable', 'type': 'bool'}, + 'name': {'key': 'name', 'type': 'str'}, + 'tracking_granularity_in_days': {'key': 'trackingGranularityInDays', 'type': 'int'}, + 'blob_type': {'key': 'blobType', 'type': '[str]'}, + } + + def __init__(self, *, enable: bool, name=None, tracking_granularity_in_days: int=None, blob_type=None, **kwargs) -> None: + super(LastAccessTimeTrackingPolicy, self).__init__(**kwargs) + self.enable = enable + self.name = name + self.tracking_granularity_in_days = tracking_granularity_in_days + self.blob_type = blob_type + + +class LeaseContainerRequest(Model): + """Lease Container request schema. + + All required parameters must be populated in order to send to Azure. + + :param action: Required. Specifies the lease action. Can be one of the + available actions. Possible values include: 'Acquire', 'Renew', 'Change', + 'Release', 'Break' + :type action: str or ~azure.mgmt.storage.v2019_06_01.models.enum + :param lease_id: Identifies the lease. Can be specified in any valid GUID + string format. + :type lease_id: str + :param break_period: Optional. For a break action, proposed duration the + lease should continue before it is broken, in seconds, between 0 and 60. + :type break_period: int + :param lease_duration: Required for acquire. Specifies the duration of the + lease, in seconds, or negative one (-1) for a lease that never expires. + :type lease_duration: int + :param proposed_lease_id: Optional for acquire, required for change. + Proposed lease ID, in a GUID string format. + :type proposed_lease_id: str + """ + + _validation = { + 'action': {'required': True}, + } + + _attribute_map = { + 'action': {'key': 'action', 'type': 'str'}, + 'lease_id': {'key': 'leaseId', 'type': 'str'}, + 'break_period': {'key': 'breakPeriod', 'type': 'int'}, + 'lease_duration': {'key': 'leaseDuration', 'type': 'int'}, + 'proposed_lease_id': {'key': 'proposedLeaseId', 'type': 'str'}, + } + + def __init__(self, *, action, lease_id: str=None, break_period: int=None, lease_duration: int=None, proposed_lease_id: str=None, **kwargs) -> None: + super(LeaseContainerRequest, self).__init__(**kwargs) + self.action = action + self.lease_id = lease_id + self.break_period = break_period + self.lease_duration = lease_duration + self.proposed_lease_id = proposed_lease_id + + +class LeaseContainerResponse(Model): + """Lease Container response schema. + + :param lease_id: Returned unique lease ID that must be included with any + request to delete the container, or to renew, change, or release the + lease. + :type lease_id: str + :param lease_time_seconds: Approximate time remaining in the lease period, + in seconds. + :type lease_time_seconds: str + """ + + _attribute_map = { + 'lease_id': {'key': 'leaseId', 'type': 'str'}, + 'lease_time_seconds': {'key': 'leaseTimeSeconds', 'type': 'str'}, + } + + def __init__(self, *, lease_id: str=None, lease_time_seconds: str=None, **kwargs) -> None: + super(LeaseContainerResponse, self).__init__(**kwargs) + self.lease_id = lease_id + self.lease_time_seconds = lease_time_seconds + + +class LegalHold(Model): + """The LegalHold property of a blob container. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar has_legal_hold: The hasLegalHold public property is set to true by + SRP if there are at least one existing tag. The hasLegalHold public + property is set to false by SRP if all existing legal hold tags are + cleared out. There can be a maximum of 1000 blob containers with + hasLegalHold=true for a given account. + :vartype has_legal_hold: bool + :param tags: Required. Each tag should be 3 to 23 alphanumeric characters + and is normalized to lower case at SRP. + :type tags: list[str] + """ + + _validation = { + 'has_legal_hold': {'readonly': True}, + 'tags': {'required': True}, + } + + _attribute_map = { + 'has_legal_hold': {'key': 'hasLegalHold', 'type': 'bool'}, + 'tags': {'key': 'tags', 'type': '[str]'}, + } + + def __init__(self, *, tags, **kwargs) -> None: + super(LegalHold, self).__init__(**kwargs) + self.has_legal_hold = None + self.tags = tags + + +class LegalHoldProperties(Model): + """The LegalHold property of a blob container. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar has_legal_hold: The hasLegalHold public property is set to true by + SRP if there are at least one existing tag. The hasLegalHold public + property is set to false by SRP if all existing legal hold tags are + cleared out. There can be a maximum of 1000 blob containers with + hasLegalHold=true for a given account. + :vartype has_legal_hold: bool + :param tags: The list of LegalHold tags of a blob container. + :type tags: list[~azure.mgmt.storage.v2019_06_01.models.TagProperty] + """ + + _validation = { + 'has_legal_hold': {'readonly': True}, + } + + _attribute_map = { + 'has_legal_hold': {'key': 'hasLegalHold', 'type': 'bool'}, + 'tags': {'key': 'tags', 'type': '[TagProperty]'}, + } + + def __init__(self, *, tags=None, **kwargs) -> None: + super(LegalHoldProperties, self).__init__(**kwargs) + self.has_legal_hold = None + self.tags = tags + + +class ListAccountSasResponse(Model): + """The List SAS credentials operation response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar account_sas_token: List SAS credentials of storage account. + :vartype account_sas_token: str + """ + + _validation = { + 'account_sas_token': {'readonly': True}, + } + + _attribute_map = { + 'account_sas_token': {'key': 'accountSasToken', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(ListAccountSasResponse, self).__init__(**kwargs) + self.account_sas_token = None + + +class ListContainerItem(AzureEntityResource): + """The blob container properties be listed out. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar etag: Resource Etag. + :vartype etag: str + :param public_access: Specifies whether data in the container may be + accessed publicly and the level of access. Possible values include: + 'Container', 'Blob', 'None' + :type public_access: str or + ~azure.mgmt.storage.v2019_06_01.models.PublicAccess + :ivar last_modified_time: Returns the date and time the container was last + modified. + :vartype last_modified_time: datetime + :ivar lease_status: The lease status of the container. Possible values + include: 'Locked', 'Unlocked' + :vartype lease_status: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseStatus + :ivar lease_state: Lease state of the container. Possible values include: + 'Available', 'Leased', 'Expired', 'Breaking', 'Broken' + :vartype lease_state: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseState + :ivar lease_duration: Specifies whether the lease on a container is of + infinite or fixed duration, only when the container is leased. Possible + values include: 'Infinite', 'Fixed' + :vartype lease_duration: str or + ~azure.mgmt.storage.v2019_06_01.models.LeaseDuration + :param metadata: A name-value pair to associate with the container as + metadata. + :type metadata: dict[str, str] + :ivar immutability_policy: The ImmutabilityPolicy property of the + container. + :vartype immutability_policy: + ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicyProperties + :ivar legal_hold: The LegalHold property of the container. + :vartype legal_hold: + ~azure.mgmt.storage.v2019_06_01.models.LegalHoldProperties + :ivar has_legal_hold: The hasLegalHold public property is set to true by + SRP if there are at least one existing tag. The hasLegalHold public + property is set to false by SRP if all existing legal hold tags are + cleared out. There can be a maximum of 1000 blob containers with + hasLegalHold=true for a given account. + :vartype has_legal_hold: bool + :ivar has_immutability_policy: The hasImmutabilityPolicy public property + is set to true by SRP if ImmutabilityPolicy has been created for this + container. The hasImmutabilityPolicy public property is set to false by + SRP if ImmutabilityPolicy has not been created for this container. + :vartype has_immutability_policy: bool + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'etag': {'readonly': True}, + 'last_modified_time': {'readonly': True}, + 'lease_status': {'readonly': True}, + 'lease_state': {'readonly': True}, + 'lease_duration': {'readonly': True}, + 'immutability_policy': {'readonly': True}, + 'legal_hold': {'readonly': True}, + 'has_legal_hold': {'readonly': True}, + 'has_immutability_policy': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'public_access': {'key': 'properties.publicAccess', 'type': 'PublicAccess'}, + 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, + 'lease_status': {'key': 'properties.leaseStatus', 'type': 'str'}, + 'lease_state': {'key': 'properties.leaseState', 'type': 'str'}, + 'lease_duration': {'key': 'properties.leaseDuration', 'type': 'str'}, + 'metadata': {'key': 'properties.metadata', 'type': '{str}'}, + 'immutability_policy': {'key': 'properties.immutabilityPolicy', 'type': 'ImmutabilityPolicyProperties'}, + 'legal_hold': {'key': 'properties.legalHold', 'type': 'LegalHoldProperties'}, + 'has_legal_hold': {'key': 'properties.hasLegalHold', 'type': 'bool'}, + 'has_immutability_policy': {'key': 'properties.hasImmutabilityPolicy', 'type': 'bool'}, + } + + def __init__(self, *, public_access=None, metadata=None, **kwargs) -> None: + super(ListContainerItem, self).__init__(**kwargs) + self.public_access = public_access + self.last_modified_time = None + self.lease_status = None + self.lease_state = None + self.lease_duration = None + self.metadata = metadata + self.immutability_policy = None + self.legal_hold = None + self.has_legal_hold = None + self.has_immutability_policy = None + + +class ListServiceSasResponse(Model): + """The List service SAS credentials operation response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar service_sas_token: List service SAS credentials of specific + resource. + :vartype service_sas_token: str + """ + + _validation = { + 'service_sas_token': {'readonly': True}, + } + + _attribute_map = { + 'service_sas_token': {'key': 'serviceSasToken', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(ListServiceSasResponse, self).__init__(**kwargs) + self.service_sas_token = None + + +class ManagementPolicy(Resource): + """The Get Storage Account ManagementPolicies operation response. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar last_modified_time: Returns the date and time the ManagementPolicies + was last modified. + :vartype last_modified_time: datetime + :param policy: Required. The Storage Account ManagementPolicy, in JSON + format. See more details in: + https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. + :type policy: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicySchema + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'last_modified_time': {'readonly': True}, + 'policy': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'last_modified_time': {'key': 'properties.lastModifiedTime', 'type': 'iso-8601'}, + 'policy': {'key': 'properties.policy', 'type': 'ManagementPolicySchema'}, + } + + def __init__(self, *, policy, **kwargs) -> None: + super(ManagementPolicy, self).__init__(**kwargs) + self.last_modified_time = None + self.policy = policy + + +class ManagementPolicyAction(Model): + """Actions are applied to the filtered blobs when the execution condition is + met. + + :param base_blob: The management policy action for base blob + :type base_blob: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicyBaseBlob + :param snapshot: The management policy action for snapshot + :type snapshot: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicySnapShot + """ + + _attribute_map = { + 'base_blob': {'key': 'baseBlob', 'type': 'ManagementPolicyBaseBlob'}, + 'snapshot': {'key': 'snapshot', 'type': 'ManagementPolicySnapShot'}, + } + + def __init__(self, *, base_blob=None, snapshot=None, **kwargs) -> None: + super(ManagementPolicyAction, self).__init__(**kwargs) + self.base_blob = base_blob + self.snapshot = snapshot + + +class ManagementPolicyBaseBlob(Model): + """Management policy action for base blob. + + :param tier_to_cool: The function to tier blobs to cool storage. Support + blobs currently at Hot tier + :type tier_to_cool: + ~azure.mgmt.storage.v2019_06_01.models.DateAfterModification + :param tier_to_archive: The function to tier blobs to archive storage. + Support blobs currently at Hot or Cool tier + :type tier_to_archive: + ~azure.mgmt.storage.v2019_06_01.models.DateAfterModification + :param delete: The function to delete the blob + :type delete: ~azure.mgmt.storage.v2019_06_01.models.DateAfterModification + :param enable_auto_tier_to_hot_from_cool: This property enables auto + tiering of a blob from cool to hot on a blob access + :type enable_auto_tier_to_hot_from_cool: bool + """ + + _attribute_map = { + 'tier_to_cool': {'key': 'tierToCool', 'type': 'DateAfterModification'}, + 'tier_to_archive': {'key': 'tierToArchive', 'type': 'DateAfterModification'}, + 'delete': {'key': 'delete', 'type': 'DateAfterModification'}, + 'enable_auto_tier_to_hot_from_cool': {'key': 'enableAutoTierToHotFromCool', 'type': 'bool'}, + } + + def __init__(self, *, tier_to_cool=None, tier_to_archive=None, delete=None, enable_auto_tier_to_hot_from_cool: bool=None, **kwargs) -> None: + super(ManagementPolicyBaseBlob, self).__init__(**kwargs) + self.tier_to_cool = tier_to_cool + self.tier_to_archive = tier_to_archive + self.delete = delete + self.enable_auto_tier_to_hot_from_cool = enable_auto_tier_to_hot_from_cool + + +class ManagementPolicyDefinition(Model): + """An object that defines the Lifecycle rule. Each definition is made up with + a filters set and an actions set. + + All required parameters must be populated in order to send to Azure. + + :param actions: Required. An object that defines the action set. + :type actions: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicyAction + :param filters: An object that defines the filter set. + :type filters: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicyFilter + """ + + _validation = { + 'actions': {'required': True}, + } + + _attribute_map = { + 'actions': {'key': 'actions', 'type': 'ManagementPolicyAction'}, + 'filters': {'key': 'filters', 'type': 'ManagementPolicyFilter'}, + } + + def __init__(self, *, actions, filters=None, **kwargs) -> None: + super(ManagementPolicyDefinition, self).__init__(**kwargs) + self.actions = actions + self.filters = filters + + +class ManagementPolicyFilter(Model): + """Filters limit rule actions to a subset of blobs within the storage account. + If multiple filters are defined, a logical AND is performed on all filters. + . + + All required parameters must be populated in order to send to Azure. + + :param prefix_match: An array of strings for prefixes to be match. + :type prefix_match: list[str] + :param blob_types: Required. An array of predefined enum values. Only + blockBlob is supported. + :type blob_types: list[str] + """ + + _validation = { + 'blob_types': {'required': True}, + } + + _attribute_map = { + 'prefix_match': {'key': 'prefixMatch', 'type': '[str]'}, + 'blob_types': {'key': 'blobTypes', 'type': '[str]'}, + } + + def __init__(self, *, blob_types, prefix_match=None, **kwargs) -> None: + super(ManagementPolicyFilter, self).__init__(**kwargs) + self.prefix_match = prefix_match + self.blob_types = blob_types + + +class ManagementPolicyRule(Model): + """An object that wraps the Lifecycle rule. Each rule is uniquely defined by + name. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Rule is enabled if set to true. + :type enabled: bool + :param name: Required. A rule name can contain any combination of alpha + numeric characters. Rule name is case-sensitive. It must be unique within + a policy. + :type name: str + :ivar type: Required. The valid value is Lifecycle. Default value: + "Lifecycle" . + :vartype type: str + :param definition: Required. An object that defines the Lifecycle rule. + :type definition: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicyDefinition + """ + + _validation = { + 'name': {'required': True}, + 'type': {'required': True, 'constant': True}, + 'definition': {'required': True}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'definition': {'key': 'definition', 'type': 'ManagementPolicyDefinition'}, + } + + type = "Lifecycle" + + def __init__(self, *, name: str, definition, enabled: bool=None, **kwargs) -> None: + super(ManagementPolicyRule, self).__init__(**kwargs) + self.enabled = enabled + self.name = name + self.definition = definition + + +class ManagementPolicySchema(Model): + """The Storage Account ManagementPolicies Rules. See more details in: + https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. + + All required parameters must be populated in order to send to Azure. + + :param rules: Required. The Storage Account ManagementPolicies Rules. See + more details in: + https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. + :type rules: + list[~azure.mgmt.storage.v2019_06_01.models.ManagementPolicyRule] + """ + + _validation = { + 'rules': {'required': True}, + } + + _attribute_map = { + 'rules': {'key': 'rules', 'type': '[ManagementPolicyRule]'}, + } + + def __init__(self, *, rules, **kwargs) -> None: + super(ManagementPolicySchema, self).__init__(**kwargs) + self.rules = rules + + +class ManagementPolicySnapShot(Model): + """Management policy action for snapshot. + + :param delete: The function to delete the blob snapshot + :type delete: ~azure.mgmt.storage.v2019_06_01.models.DateAfterCreation + """ + + _attribute_map = { + 'delete': {'key': 'delete', 'type': 'DateAfterCreation'}, + } + + def __init__(self, *, delete=None, **kwargs) -> None: + super(ManagementPolicySnapShot, self).__init__(**kwargs) + self.delete = delete + + +class MetricSpecification(Model): + """Metric specification of operation. + + :param name: Name of metric specification. + :type name: str + :param display_name: Display name of metric specification. + :type display_name: str + :param display_description: Display description of metric specification. + :type display_description: str + :param unit: Unit could be Bytes or Count. + :type unit: str + :param dimensions: Dimensions of blobs, including blob type and access + tier. + :type dimensions: list[~azure.mgmt.storage.v2019_06_01.models.Dimension] + :param aggregation_type: Aggregation type could be Average. + :type aggregation_type: str + :param fill_gap_with_zero: The property to decide fill gap with zero or + not. + :type fill_gap_with_zero: bool + :param category: The category this metric specification belong to, could + be Capacity. + :type category: str + :param resource_id_dimension_name_override: Account Resource Id. + :type resource_id_dimension_name_override: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display_name': {'key': 'displayName', 'type': 'str'}, + 'display_description': {'key': 'displayDescription', 'type': 'str'}, + 'unit': {'key': 'unit', 'type': 'str'}, + 'dimensions': {'key': 'dimensions', 'type': '[Dimension]'}, + 'aggregation_type': {'key': 'aggregationType', 'type': 'str'}, + 'fill_gap_with_zero': {'key': 'fillGapWithZero', 'type': 'bool'}, + 'category': {'key': 'category', 'type': 'str'}, + 'resource_id_dimension_name_override': {'key': 'resourceIdDimensionNameOverride', 'type': 'str'}, + } + + def __init__(self, *, name: str=None, display_name: str=None, display_description: str=None, unit: str=None, dimensions=None, aggregation_type: str=None, fill_gap_with_zero: bool=None, category: str=None, resource_id_dimension_name_override: str=None, **kwargs) -> None: + super(MetricSpecification, self).__init__(**kwargs) + self.name = name + self.display_name = display_name + self.display_description = display_description + self.unit = unit + self.dimensions = dimensions + self.aggregation_type = aggregation_type + self.fill_gap_with_zero = fill_gap_with_zero + self.category = category + self.resource_id_dimension_name_override = resource_id_dimension_name_override + + +class NetworkRuleSet(Model): + """Network rule set. + + All required parameters must be populated in order to send to Azure. + + :param bypass: Specifies whether traffic is bypassed for + Logging/Metrics/AzureServices. Possible values are any combination of + Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None + to bypass none of those traffics. Possible values include: 'None', + 'Logging', 'Metrics', 'AzureServices'. Default value: "AzureServices" . + :type bypass: str or ~azure.mgmt.storage.v2019_06_01.models.Bypass + :param virtual_network_rules: Sets the virtual network rules + :type virtual_network_rules: + list[~azure.mgmt.storage.v2019_06_01.models.VirtualNetworkRule] + :param ip_rules: Sets the IP ACL rules + :type ip_rules: list[~azure.mgmt.storage.v2019_06_01.models.IPRule] + :param default_action: Required. Specifies the default action of allow or + deny when no other rules match. Possible values include: 'Allow', 'Deny'. + Default value: "Allow" . + :type default_action: str or + ~azure.mgmt.storage.v2019_06_01.models.DefaultAction + """ + + _validation = { + 'default_action': {'required': True}, + } + + _attribute_map = { + 'bypass': {'key': 'bypass', 'type': 'str'}, + 'virtual_network_rules': {'key': 'virtualNetworkRules', 'type': '[VirtualNetworkRule]'}, + 'ip_rules': {'key': 'ipRules', 'type': '[IPRule]'}, + 'default_action': {'key': 'defaultAction', 'type': 'DefaultAction'}, + } + + def __init__(self, *, bypass="AzureServices", virtual_network_rules=None, ip_rules=None, default_action="Allow", **kwargs) -> None: + super(NetworkRuleSet, self).__init__(**kwargs) + self.bypass = bypass + self.virtual_network_rules = virtual_network_rules + self.ip_rules = ip_rules + self.default_action = default_action + + +class Operation(Model): + """Storage REST API operation definition. + + :param name: Operation name: {provider}/{resource}/{operation} + :type name: str + :param display: Display metadata associated with the operation. + :type display: ~azure.mgmt.storage.v2019_06_01.models.OperationDisplay + :param origin: The origin of operations. + :type origin: str + :param service_specification: One property of operation, include metric + specifications. + :type service_specification: + ~azure.mgmt.storage.v2019_06_01.models.ServiceSpecification + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'OperationDisplay'}, + 'origin': {'key': 'origin', 'type': 'str'}, + 'service_specification': {'key': 'properties.serviceSpecification', 'type': 'ServiceSpecification'}, + } + + def __init__(self, *, name: str=None, display=None, origin: str=None, service_specification=None, **kwargs) -> None: + super(Operation, self).__init__(**kwargs) + self.name = name + self.display = display + self.origin = origin + self.service_specification = service_specification + + +class OperationDisplay(Model): + """Display metadata associated with the operation. + + :param provider: Service provider: Microsoft Storage. + :type provider: str + :param resource: Resource on which the operation is performed etc. + :type resource: str + :param operation: Type of operation: get, read, delete, etc. + :type operation: str + :param description: Description of the operation. + :type description: str + """ + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__(self, *, provider: str=None, resource: str=None, operation: str=None, description: str=None, **kwargs) -> None: + super(OperationDisplay, self).__init__(**kwargs) + self.provider = provider + self.resource = resource + self.operation = operation + self.description = description + + +class PrivateEndpoint(Model): + """The Private Endpoint resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: The ARM identifier for Private Endpoint + :vartype id: str + """ + + _validation = { + 'id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(PrivateEndpoint, self).__init__(**kwargs) + self.id = None + + +class PrivateEndpointConnection(Resource): + """The Private Endpoint Connection resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param private_endpoint: The resource of private end point. + :type private_endpoint: + ~azure.mgmt.storage.v2019_06_01.models.PrivateEndpoint + :param private_link_service_connection_state: Required. A collection of + information about the state of the connection between service consumer and + provider. + :type private_link_service_connection_state: + ~azure.mgmt.storage.v2019_06_01.models.PrivateLinkServiceConnectionState + :param provisioning_state: The provisioning state of the private endpoint + connection resource. Possible values include: 'Succeeded', 'Creating', + 'Deleting', 'Failed' + :type provisioning_state: str or + ~azure.mgmt.storage.v2019_06_01.models.PrivateEndpointConnectionProvisioningState + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'private_link_service_connection_state': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'PrivateEndpoint'}, + 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkServiceConnectionState'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + } + + def __init__(self, *, private_link_service_connection_state, private_endpoint=None, provisioning_state=None, **kwargs) -> None: + super(PrivateEndpointConnection, self).__init__(**kwargs) + self.private_endpoint = private_endpoint + self.private_link_service_connection_state = private_link_service_connection_state + self.provisioning_state = provisioning_state + + +class PrivateLinkResource(Resource): + """A private link resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar group_id: The private link resource group id. + :vartype group_id: str + :ivar required_members: The private link resource required member names. + :vartype required_members: list[str] + :param required_zone_names: The private link resource Private link DNS + zone name. + :type required_zone_names: list[str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'group_id': {'readonly': True}, + 'required_members': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'group_id': {'key': 'properties.groupId', 'type': 'str'}, + 'required_members': {'key': 'properties.requiredMembers', 'type': '[str]'}, + 'required_zone_names': {'key': 'properties.requiredZoneNames', 'type': '[str]'}, + } + + def __init__(self, *, required_zone_names=None, **kwargs) -> None: + super(PrivateLinkResource, self).__init__(**kwargs) + self.group_id = None + self.required_members = None + self.required_zone_names = required_zone_names + + +class PrivateLinkResourceListResult(Model): + """A list of private link resources. + + :param value: Array of private link resources + :type value: + list[~azure.mgmt.storage.v2019_06_01.models.PrivateLinkResource] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, + } + + def __init__(self, *, value=None, **kwargs) -> None: + super(PrivateLinkResourceListResult, self).__init__(**kwargs) + self.value = value + + +class PrivateLinkServiceConnectionState(Model): + """A collection of information about the state of the connection between + service consumer and provider. + + :param status: Indicates whether the connection has been + Approved/Rejected/Removed by the owner of the service. Possible values + include: 'Pending', 'Approved', 'Rejected' + :type status: str or + ~azure.mgmt.storage.v2019_06_01.models.PrivateEndpointServiceConnectionStatus + :param description: The reason for approval/rejection of the connection. + :type description: str + :param action_required: A message indicating if changes on the service + provider require any updates on the consumer. + :type action_required: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'action_required': {'key': 'actionRequired', 'type': 'str'}, + } + + def __init__(self, *, status=None, description: str=None, action_required: str=None, **kwargs) -> None: + super(PrivateLinkServiceConnectionState, self).__init__(**kwargs) + self.status = status + self.description = description + self.action_required = action_required + + +class ProxyResource(Resource): + """The resource model definition for a ARM proxy resource. It will have + everything other than required location and tags. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(ProxyResource, self).__init__(**kwargs) + + +class RestorePolicyProperties(Model): + """The blob service properties for blob restore policy. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Blob restore is enabled if set to true. + :type enabled: bool + :param days: how long this blob can be restored. It should be great than + zero and less than DeleteRetentionPolicy.days. + :type days: int + """ + + _validation = { + 'enabled': {'required': True}, + 'days': {'maximum': 365, 'minimum': 1}, + } + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + 'days': {'key': 'days', 'type': 'int'}, + } + + def __init__(self, *, enabled: bool, days: int=None, **kwargs) -> None: + super(RestorePolicyProperties, self).__init__(**kwargs) + self.enabled = enabled + self.days = days + + +class Restriction(Model): + """The restriction because of which SKU cannot be used. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar type: The type of restrictions. As of now only possible value for + this is location. + :vartype type: str + :ivar values: The value of restrictions. If the restriction type is set to + location. This would be different locations where the SKU is restricted. + :vartype values: list[str] + :param reason_code: The reason for the restriction. As of now this can be + "QuotaId" or "NotAvailableForSubscription". Quota Id is set when the SKU + has requiredQuotas parameter as the subscription does not belong to that + quota. The "NotAvailableForSubscription" is related to capacity at DC. + Possible values include: 'QuotaId', 'NotAvailableForSubscription' + :type reason_code: str or + ~azure.mgmt.storage.v2019_06_01.models.ReasonCode + """ + + _validation = { + 'type': {'readonly': True}, + 'values': {'readonly': True}, + } + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + 'values': {'key': 'values', 'type': '[str]'}, + 'reason_code': {'key': 'reasonCode', 'type': 'str'}, + } + + def __init__(self, *, reason_code=None, **kwargs) -> None: + super(Restriction, self).__init__(**kwargs) + self.type = None + self.values = None + self.reason_code = reason_code + + +class RoutingPreference(Model): + """Routing preference defines the type of network, either microsoft or + internet routing to be used to deliver the user data, the default option is + microsoft routing. + + :param routing_choice: Routing Choice defines the kind of network routing + opted by the user. Possible values include: 'MicrosoftRouting', + 'InternetRouting' + :type routing_choice: str or + ~azure.mgmt.storage.v2019_06_01.models.RoutingChoice + :param publish_microsoft_endpoints: A boolean flag which indicates whether + microsoft routing storage endpoints are to be published + :type publish_microsoft_endpoints: bool + :param publish_internet_endpoints: A boolean flag which indicates whether + internet routing storage endpoints are to be published + :type publish_internet_endpoints: bool + """ + + _attribute_map = { + 'routing_choice': {'key': 'routingChoice', 'type': 'str'}, + 'publish_microsoft_endpoints': {'key': 'publishMicrosoftEndpoints', 'type': 'bool'}, + 'publish_internet_endpoints': {'key': 'publishInternetEndpoints', 'type': 'bool'}, + } + + def __init__(self, *, routing_choice=None, publish_microsoft_endpoints: bool=None, publish_internet_endpoints: bool=None, **kwargs) -> None: + super(RoutingPreference, self).__init__(**kwargs) + self.routing_choice = routing_choice + self.publish_microsoft_endpoints = publish_microsoft_endpoints + self.publish_internet_endpoints = publish_internet_endpoints + + +class ServiceSasParameters(Model): + """The parameters to list service SAS credentials of a specific resource. + + All required parameters must be populated in order to send to Azure. + + :param canonicalized_resource: Required. The canonical path to the signed + resource. + :type canonicalized_resource: str + :param resource: The signed services accessible with the service SAS. + Possible values include: Blob (b), Container (c), File (f), Share (s). + Possible values include: 'b', 'c', 'f', 's' + :type resource: str or + ~azure.mgmt.storage.v2019_06_01.models.SignedResource + :param permissions: The signed permissions for the service SAS. Possible + values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create + (c), Update (u) and Process (p). Possible values include: 'r', 'd', 'w', + 'l', 'a', 'c', 'u', 'p' + :type permissions: str or + ~azure.mgmt.storage.v2019_06_01.models.Permissions + :param ip_address_or_range: An IP address or a range of IP addresses from + which to accept requests. + :type ip_address_or_range: str + :param protocols: The protocol permitted for a request made with the + account SAS. Possible values include: 'https,http', 'https' + :type protocols: str or + ~azure.mgmt.storage.v2019_06_01.models.HttpProtocol + :param shared_access_start_time: The time at which the SAS becomes valid. + :type shared_access_start_time: datetime + :param shared_access_expiry_time: The time at which the shared access + signature becomes invalid. + :type shared_access_expiry_time: datetime + :param identifier: A unique value up to 64 characters in length that + correlates to an access policy specified for the container, queue, or + table. + :type identifier: str + :param partition_key_start: The start of partition key. + :type partition_key_start: str + :param partition_key_end: The end of partition key. + :type partition_key_end: str + :param row_key_start: The start of row key. + :type row_key_start: str + :param row_key_end: The end of row key. + :type row_key_end: str + :param key_to_sign: The key to sign the account SAS token with. + :type key_to_sign: str + :param cache_control: The response header override for cache control. + :type cache_control: str + :param content_disposition: The response header override for content + disposition. + :type content_disposition: str + :param content_encoding: The response header override for content + encoding. + :type content_encoding: str + :param content_language: The response header override for content + language. + :type content_language: str + :param content_type: The response header override for content type. + :type content_type: str + """ + + _validation = { + 'canonicalized_resource': {'required': True}, + 'identifier': {'max_length': 64}, + } + + _attribute_map = { + 'canonicalized_resource': {'key': 'canonicalizedResource', 'type': 'str'}, + 'resource': {'key': 'signedResource', 'type': 'str'}, + 'permissions': {'key': 'signedPermission', 'type': 'str'}, + 'ip_address_or_range': {'key': 'signedIp', 'type': 'str'}, + 'protocols': {'key': 'signedProtocol', 'type': 'HttpProtocol'}, + 'shared_access_start_time': {'key': 'signedStart', 'type': 'iso-8601'}, + 'shared_access_expiry_time': {'key': 'signedExpiry', 'type': 'iso-8601'}, + 'identifier': {'key': 'signedIdentifier', 'type': 'str'}, + 'partition_key_start': {'key': 'startPk', 'type': 'str'}, + 'partition_key_end': {'key': 'endPk', 'type': 'str'}, + 'row_key_start': {'key': 'startRk', 'type': 'str'}, + 'row_key_end': {'key': 'endRk', 'type': 'str'}, + 'key_to_sign': {'key': 'keyToSign', 'type': 'str'}, + 'cache_control': {'key': 'rscc', 'type': 'str'}, + 'content_disposition': {'key': 'rscd', 'type': 'str'}, + 'content_encoding': {'key': 'rsce', 'type': 'str'}, + 'content_language': {'key': 'rscl', 'type': 'str'}, + 'content_type': {'key': 'rsct', 'type': 'str'}, + } + + def __init__(self, *, canonicalized_resource: str, resource=None, permissions=None, ip_address_or_range: str=None, protocols=None, shared_access_start_time=None, shared_access_expiry_time=None, identifier: str=None, partition_key_start: str=None, partition_key_end: str=None, row_key_start: str=None, row_key_end: str=None, key_to_sign: str=None, cache_control: str=None, content_disposition: str=None, content_encoding: str=None, content_language: str=None, content_type: str=None, **kwargs) -> None: + super(ServiceSasParameters, self).__init__(**kwargs) + self.canonicalized_resource = canonicalized_resource + self.resource = resource + self.permissions = permissions + self.ip_address_or_range = ip_address_or_range + self.protocols = protocols + self.shared_access_start_time = shared_access_start_time + self.shared_access_expiry_time = shared_access_expiry_time + self.identifier = identifier + self.partition_key_start = partition_key_start + self.partition_key_end = partition_key_end + self.row_key_start = row_key_start + self.row_key_end = row_key_end + self.key_to_sign = key_to_sign + self.cache_control = cache_control + self.content_disposition = content_disposition + self.content_encoding = content_encoding + self.content_language = content_language + self.content_type = content_type + + +class ServiceSpecification(Model): + """One property of operation, include metric specifications. + + :param metric_specifications: Metric specifications of operation. + :type metric_specifications: + list[~azure.mgmt.storage.v2019_06_01.models.MetricSpecification] + """ + + _attribute_map = { + 'metric_specifications': {'key': 'metricSpecifications', 'type': '[MetricSpecification]'}, + } + + def __init__(self, *, metric_specifications=None, **kwargs) -> None: + super(ServiceSpecification, self).__init__(**kwargs) + self.metric_specifications = metric_specifications + + +class Sku(Model): + """The SKU of the storage account. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Possible values include: 'Standard_LRS', + 'Standard_GRS', 'Standard_RAGRS', 'Standard_ZRS', 'Premium_LRS', + 'Premium_ZRS', 'Standard_GZRS', 'Standard_RAGZRS' + :type name: str or ~azure.mgmt.storage.v2019_06_01.models.SkuName + :param tier: Possible values include: 'Standard', 'Premium' + :type tier: str or ~azure.mgmt.storage.v2019_06_01.models.SkuTier + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'SkuTier'}, + } + + def __init__(self, *, name, tier=None, **kwargs) -> None: + super(Sku, self).__init__(**kwargs) + self.name = name + self.tier = tier + + +class SKUCapability(Model): + """The capability information in the specified SKU, including file encryption, + network ACLs, change notification, etc. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar name: The name of capability, The capability information in the + specified SKU, including file encryption, network ACLs, change + notification, etc. + :vartype name: str + :ivar value: A string value to indicate states of given capability. + Possibly 'true' or 'false'. + :vartype value: str + """ + + _validation = { + 'name': {'readonly': True}, + 'value': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(SKUCapability, self).__init__(**kwargs) + self.name = None + self.value = None + + +class SkuInformation(Model): + """Storage SKU and its properties. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. Possible values include: 'Standard_LRS', + 'Standard_GRS', 'Standard_RAGRS', 'Standard_ZRS', 'Premium_LRS', + 'Premium_ZRS', 'Standard_GZRS', 'Standard_RAGZRS' + :type name: str or ~azure.mgmt.storage.v2019_06_01.models.SkuName + :param tier: Possible values include: 'Standard', 'Premium' + :type tier: str or ~azure.mgmt.storage.v2019_06_01.models.SkuTier + :ivar resource_type: The type of the resource, usually it is + 'storageAccounts'. + :vartype resource_type: str + :ivar kind: Indicates the type of storage account. Possible values + include: 'Storage', 'StorageV2', 'BlobStorage', 'FileStorage', + 'BlockBlobStorage' + :vartype kind: str or ~azure.mgmt.storage.v2019_06_01.models.Kind + :ivar locations: The set of locations that the SKU is available. This will + be supported and registered Azure Geo Regions (e.g. West US, East US, + Southeast Asia, etc.). + :vartype locations: list[str] + :ivar capabilities: The capability information in the specified SKU, + including file encryption, network ACLs, change notification, etc. + :vartype capabilities: + list[~azure.mgmt.storage.v2019_06_01.models.SKUCapability] + :param restrictions: The restrictions because of which SKU cannot be used. + This is empty if there are no restrictions. + :type restrictions: + list[~azure.mgmt.storage.v2019_06_01.models.Restriction] + """ + + _validation = { + 'name': {'required': True}, + 'resource_type': {'readonly': True}, + 'kind': {'readonly': True}, + 'locations': {'readonly': True}, + 'capabilities': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'SkuTier'}, + 'resource_type': {'key': 'resourceType', 'type': 'str'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'locations': {'key': 'locations', 'type': '[str]'}, + 'capabilities': {'key': 'capabilities', 'type': '[SKUCapability]'}, + 'restrictions': {'key': 'restrictions', 'type': '[Restriction]'}, + } + + def __init__(self, *, name, tier=None, restrictions=None, **kwargs) -> None: + super(SkuInformation, self).__init__(**kwargs) + self.name = name + self.tier = tier + self.resource_type = None + self.kind = None + self.locations = None + self.capabilities = None + self.restrictions = restrictions + + +class TrackedResource(Resource): + """The resource model definition for a ARM tracked top level resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives + :type location: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + } + + def __init__(self, *, location: str, tags=None, **kwargs) -> None: + super(TrackedResource, self).__init__(**kwargs) + self.tags = tags + self.location = location + + +class StorageAccount(TrackedResource): + """The storage account. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param location: Required. The geo-location where the resource lives + :type location: str + :ivar sku: Gets the SKU. + :vartype sku: ~azure.mgmt.storage.v2019_06_01.models.Sku + :ivar kind: Gets the Kind. Possible values include: 'Storage', + 'StorageV2', 'BlobStorage', 'FileStorage', 'BlockBlobStorage' + :vartype kind: str or ~azure.mgmt.storage.v2019_06_01.models.Kind + :param identity: The identity of the resource. + :type identity: ~azure.mgmt.storage.v2019_06_01.models.Identity + :ivar provisioning_state: Gets the status of the storage account at the + time the operation was called. Possible values include: 'Creating', + 'ResolvingDNS', 'Succeeded' + :vartype provisioning_state: str or + ~azure.mgmt.storage.v2019_06_01.models.ProvisioningState + :ivar primary_endpoints: Gets the URLs that are used to perform a + retrieval of a public blob, queue, or table object. Note that Standard_ZRS + and Premium_LRS accounts only return the blob endpoint. + :vartype primary_endpoints: + ~azure.mgmt.storage.v2019_06_01.models.Endpoints + :ivar primary_location: Gets the location of the primary data center for + the storage account. + :vartype primary_location: str + :ivar status_of_primary: Gets the status indicating whether the primary + location of the storage account is available or unavailable. Possible + values include: 'available', 'unavailable' + :vartype status_of_primary: str or + ~azure.mgmt.storage.v2019_06_01.models.AccountStatus + :ivar last_geo_failover_time: Gets the timestamp of the most recent + instance of a failover to the secondary location. Only the most recent + timestamp is retained. This element is not returned if there has never + been a failover instance. Only available if the accountType is + Standard_GRS or Standard_RAGRS. + :vartype last_geo_failover_time: datetime + :ivar secondary_location: Gets the location of the geo-replicated + secondary for the storage account. Only available if the accountType is + Standard_GRS or Standard_RAGRS. + :vartype secondary_location: str + :ivar status_of_secondary: Gets the status indicating whether the + secondary location of the storage account is available or unavailable. + Only available if the SKU name is Standard_GRS or Standard_RAGRS. Possible + values include: 'available', 'unavailable' + :vartype status_of_secondary: str or + ~azure.mgmt.storage.v2019_06_01.models.AccountStatus + :ivar creation_time: Gets the creation date and time of the storage + account in UTC. + :vartype creation_time: datetime + :ivar custom_domain: Gets the custom domain the user assigned to this + storage account. + :vartype custom_domain: + ~azure.mgmt.storage.v2019_06_01.models.CustomDomain + :ivar secondary_endpoints: Gets the URLs that are used to perform a + retrieval of a public blob, queue, or table object from the secondary + location of the storage account. Only available if the SKU name is + Standard_RAGRS. + :vartype secondary_endpoints: + ~azure.mgmt.storage.v2019_06_01.models.Endpoints + :ivar encryption: Gets the encryption settings on the account. If + unspecified, the account is unencrypted. + :vartype encryption: ~azure.mgmt.storage.v2019_06_01.models.Encryption + :ivar access_tier: Required for storage accounts where kind = BlobStorage. + The access tier used for billing. Possible values include: 'Hot', 'Cool' + :vartype access_tier: str or + ~azure.mgmt.storage.v2019_06_01.models.AccessTier + :param azure_files_identity_based_authentication: Provides the identity + based authentication settings for Azure Files. + :type azure_files_identity_based_authentication: + ~azure.mgmt.storage.v2019_06_01.models.AzureFilesIdentityBasedAuthentication + :param enable_https_traffic_only: Allows https traffic only to storage + service if sets to true. + :type enable_https_traffic_only: bool + :ivar network_rule_set: Network rule set + :vartype network_rule_set: + ~azure.mgmt.storage.v2019_06_01.models.NetworkRuleSet + :param is_hns_enabled: Account HierarchicalNamespace enabled if sets to + true. + :type is_hns_enabled: bool + :ivar geo_replication_stats: Geo Replication Stats + :vartype geo_replication_stats: + ~azure.mgmt.storage.v2019_06_01.models.GeoReplicationStats + :ivar failover_in_progress: If the failover is in progress, the value will + be true, otherwise, it will be null. + :vartype failover_in_progress: bool + :param large_file_shares_state: Allow large file shares if sets to + Enabled. It cannot be disabled once it is enabled. Possible values + include: 'Disabled', 'Enabled' + :type large_file_shares_state: str or + ~azure.mgmt.storage.v2019_06_01.models.LargeFileSharesState + :ivar private_endpoint_connections: List of private endpoint connection + associated with the specified storage account + :vartype private_endpoint_connections: + list[~azure.mgmt.storage.v2019_06_01.models.PrivateEndpointConnection] + :param routing_preference: Maintains information about the network routing + choice opted by the user for data transfer + :type routing_preference: + ~azure.mgmt.storage.v2019_06_01.models.RoutingPreference + :ivar blob_restore_status: Blob restore status + :vartype blob_restore_status: + ~azure.mgmt.storage.v2019_06_01.models.BlobRestoreStatus + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'sku': {'readonly': True}, + 'kind': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'primary_endpoints': {'readonly': True}, + 'primary_location': {'readonly': True}, + 'status_of_primary': {'readonly': True}, + 'last_geo_failover_time': {'readonly': True}, + 'secondary_location': {'readonly': True}, + 'status_of_secondary': {'readonly': True}, + 'creation_time': {'readonly': True}, + 'custom_domain': {'readonly': True}, + 'secondary_endpoints': {'readonly': True}, + 'encryption': {'readonly': True}, + 'access_tier': {'readonly': True}, + 'network_rule_set': {'readonly': True}, + 'geo_replication_stats': {'readonly': True}, + 'failover_in_progress': {'readonly': True}, + 'private_endpoint_connections': {'readonly': True}, + 'blob_restore_status': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'location': {'key': 'location', 'type': 'str'}, + 'sku': {'key': 'sku', 'type': 'Sku'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'identity': {'key': 'identity', 'type': 'Identity'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'ProvisioningState'}, + 'primary_endpoints': {'key': 'properties.primaryEndpoints', 'type': 'Endpoints'}, + 'primary_location': {'key': 'properties.primaryLocation', 'type': 'str'}, + 'status_of_primary': {'key': 'properties.statusOfPrimary', 'type': 'AccountStatus'}, + 'last_geo_failover_time': {'key': 'properties.lastGeoFailoverTime', 'type': 'iso-8601'}, + 'secondary_location': {'key': 'properties.secondaryLocation', 'type': 'str'}, + 'status_of_secondary': {'key': 'properties.statusOfSecondary', 'type': 'AccountStatus'}, + 'creation_time': {'key': 'properties.creationTime', 'type': 'iso-8601'}, + 'custom_domain': {'key': 'properties.customDomain', 'type': 'CustomDomain'}, + 'secondary_endpoints': {'key': 'properties.secondaryEndpoints', 'type': 'Endpoints'}, + 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, + 'access_tier': {'key': 'properties.accessTier', 'type': 'AccessTier'}, + 'azure_files_identity_based_authentication': {'key': 'properties.azureFilesIdentityBasedAuthentication', 'type': 'AzureFilesIdentityBasedAuthentication'}, + 'enable_https_traffic_only': {'key': 'properties.supportsHttpsTrafficOnly', 'type': 'bool'}, + 'network_rule_set': {'key': 'properties.networkAcls', 'type': 'NetworkRuleSet'}, + 'is_hns_enabled': {'key': 'properties.isHnsEnabled', 'type': 'bool'}, + 'geo_replication_stats': {'key': 'properties.geoReplicationStats', 'type': 'GeoReplicationStats'}, + 'failover_in_progress': {'key': 'properties.failoverInProgress', 'type': 'bool'}, + 'large_file_shares_state': {'key': 'properties.largeFileSharesState', 'type': 'str'}, + 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[PrivateEndpointConnection]'}, + 'routing_preference': {'key': 'properties.routingPreference', 'type': 'RoutingPreference'}, + 'blob_restore_status': {'key': 'properties.blobRestoreStatus', 'type': 'BlobRestoreStatus'}, + } + + def __init__(self, *, location: str, tags=None, identity=None, azure_files_identity_based_authentication=None, enable_https_traffic_only: bool=None, is_hns_enabled: bool=None, large_file_shares_state=None, routing_preference=None, **kwargs) -> None: + super(StorageAccount, self).__init__(tags=tags, location=location, **kwargs) + self.sku = None + self.kind = None + self.identity = identity + self.provisioning_state = None + self.primary_endpoints = None + self.primary_location = None + self.status_of_primary = None + self.last_geo_failover_time = None + self.secondary_location = None + self.status_of_secondary = None + self.creation_time = None + self.custom_domain = None + self.secondary_endpoints = None + self.encryption = None + self.access_tier = None + self.azure_files_identity_based_authentication = azure_files_identity_based_authentication + self.enable_https_traffic_only = enable_https_traffic_only + self.network_rule_set = None + self.is_hns_enabled = is_hns_enabled + self.geo_replication_stats = None + self.failover_in_progress = None + self.large_file_shares_state = large_file_shares_state + self.private_endpoint_connections = None + self.routing_preference = routing_preference + self.blob_restore_status = None + + +class StorageAccountCheckNameAvailabilityParameters(Model): + """The parameters used to check the availability of the storage account name. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The storage account name. + :type name: str + :ivar type: Required. The type of resource, + Microsoft.Storage/storageAccounts. Default value: + "Microsoft.Storage/storageAccounts" . + :vartype type: str + """ + + _validation = { + 'name': {'required': True}, + 'type': {'required': True, 'constant': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + type = "Microsoft.Storage/storageAccounts" + + def __init__(self, *, name: str, **kwargs) -> None: + super(StorageAccountCheckNameAvailabilityParameters, self).__init__(**kwargs) + self.name = name + + +class StorageAccountCreateParameters(Model): + """The parameters used when creating a storage account. + + All required parameters must be populated in order to send to Azure. + + :param sku: Required. Required. Gets or sets the SKU name. + :type sku: ~azure.mgmt.storage.v2019_06_01.models.Sku + :param kind: Required. Required. Indicates the type of storage account. + Possible values include: 'Storage', 'StorageV2', 'BlobStorage', + 'FileStorage', 'BlockBlobStorage' + :type kind: str or ~azure.mgmt.storage.v2019_06_01.models.Kind + :param location: Required. Required. Gets or sets the location of the + resource. This will be one of the supported and registered Azure Geo + Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of a + resource cannot be changed once it is created, but if an identical geo + region is specified on update, the request will succeed. + :type location: str + :param tags: Gets or sets a list of key value pairs that describe the + resource. These tags can be used for viewing and grouping this resource + (across resource groups). A maximum of 15 tags can be provided for a + resource. Each tag must have a key with a length no greater than 128 + characters and a value with a length no greater than 256 characters. + :type tags: dict[str, str] + :param identity: The identity of the resource. + :type identity: ~azure.mgmt.storage.v2019_06_01.models.Identity + :param custom_domain: User domain assigned to the storage account. Name is + the CNAME source. Only one custom domain is supported per storage account + at this time. To clear the existing custom domain, use an empty string for + the custom domain name property. + :type custom_domain: ~azure.mgmt.storage.v2019_06_01.models.CustomDomain + :param encryption: Not applicable. Azure Storage encryption is enabled for + all storage accounts and cannot be disabled. + :type encryption: ~azure.mgmt.storage.v2019_06_01.models.Encryption + :param network_rule_set: Network rule set + :type network_rule_set: + ~azure.mgmt.storage.v2019_06_01.models.NetworkRuleSet + :param access_tier: Required for storage accounts where kind = + BlobStorage. The access tier used for billing. Possible values include: + 'Hot', 'Cool' + :type access_tier: str or + ~azure.mgmt.storage.v2019_06_01.models.AccessTier + :param azure_files_identity_based_authentication: Provides the identity + based authentication settings for Azure Files. + :type azure_files_identity_based_authentication: + ~azure.mgmt.storage.v2019_06_01.models.AzureFilesIdentityBasedAuthentication + :param enable_https_traffic_only: Allows https traffic only to storage + service if sets to true. The default value is true since API version + 2019-04-01. + :type enable_https_traffic_only: bool + :param is_hns_enabled: Account HierarchicalNamespace enabled if sets to + true. + :type is_hns_enabled: bool + :param large_file_shares_state: Allow large file shares if sets to + Enabled. It cannot be disabled once it is enabled. Possible values + include: 'Disabled', 'Enabled' + :type large_file_shares_state: str or + ~azure.mgmt.storage.v2019_06_01.models.LargeFileSharesState + :param routing_preference: Maintains information about the network routing + choice opted by the user for data transfer + :type routing_preference: + ~azure.mgmt.storage.v2019_06_01.models.RoutingPreference + """ + + _validation = { + 'sku': {'required': True}, + 'kind': {'required': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'sku': {'key': 'sku', 'type': 'Sku'}, + 'kind': {'key': 'kind', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'Identity'}, + 'custom_domain': {'key': 'properties.customDomain', 'type': 'CustomDomain'}, + 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, + 'network_rule_set': {'key': 'properties.networkAcls', 'type': 'NetworkRuleSet'}, + 'access_tier': {'key': 'properties.accessTier', 'type': 'AccessTier'}, + 'azure_files_identity_based_authentication': {'key': 'properties.azureFilesIdentityBasedAuthentication', 'type': 'AzureFilesIdentityBasedAuthentication'}, + 'enable_https_traffic_only': {'key': 'properties.supportsHttpsTrafficOnly', 'type': 'bool'}, + 'is_hns_enabled': {'key': 'properties.isHnsEnabled', 'type': 'bool'}, + 'large_file_shares_state': {'key': 'properties.largeFileSharesState', 'type': 'str'}, + 'routing_preference': {'key': 'properties.routingPreference', 'type': 'RoutingPreference'}, + } + + def __init__(self, *, sku, kind, location: str, tags=None, identity=None, custom_domain=None, encryption=None, network_rule_set=None, access_tier=None, azure_files_identity_based_authentication=None, enable_https_traffic_only: bool=None, is_hns_enabled: bool=None, large_file_shares_state=None, routing_preference=None, **kwargs) -> None: + super(StorageAccountCreateParameters, self).__init__(**kwargs) + self.sku = sku + self.kind = kind + self.location = location + self.tags = tags + self.identity = identity + self.custom_domain = custom_domain + self.encryption = encryption + self.network_rule_set = network_rule_set + self.access_tier = access_tier + self.azure_files_identity_based_authentication = azure_files_identity_based_authentication + self.enable_https_traffic_only = enable_https_traffic_only + self.is_hns_enabled = is_hns_enabled + self.large_file_shares_state = large_file_shares_state + self.routing_preference = routing_preference + + +class StorageAccountInternetEndpoints(Model): + """The URIs that are used to perform a retrieval of a public blob, file, web + or dfs object via a internet routing endpoint. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar blob: Gets the blob endpoint. + :vartype blob: str + :ivar file: Gets the file endpoint. + :vartype file: str + :ivar web: Gets the web endpoint. + :vartype web: str + :ivar dfs: Gets the dfs endpoint. + :vartype dfs: str + """ + + _validation = { + 'blob': {'readonly': True}, + 'file': {'readonly': True}, + 'web': {'readonly': True}, + 'dfs': {'readonly': True}, + } + + _attribute_map = { + 'blob': {'key': 'blob', 'type': 'str'}, + 'file': {'key': 'file', 'type': 'str'}, + 'web': {'key': 'web', 'type': 'str'}, + 'dfs': {'key': 'dfs', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(StorageAccountInternetEndpoints, self).__init__(**kwargs) + self.blob = None + self.file = None + self.web = None + self.dfs = None + + +class StorageAccountKey(Model): + """An access key for the storage account. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar key_name: Name of the key. + :vartype key_name: str + :ivar value: Base 64-encoded value of the key. + :vartype value: str + :ivar permissions: Permissions for the key -- read-only or full + permissions. Possible values include: 'Read', 'Full' + :vartype permissions: str or + ~azure.mgmt.storage.v2019_06_01.models.KeyPermission + """ + + _validation = { + 'key_name': {'readonly': True}, + 'value': {'readonly': True}, + 'permissions': {'readonly': True}, + } + + _attribute_map = { + 'key_name': {'key': 'keyName', 'type': 'str'}, + 'value': {'key': 'value', 'type': 'str'}, + 'permissions': {'key': 'permissions', 'type': 'KeyPermission'}, + } + + def __init__(self, **kwargs) -> None: + super(StorageAccountKey, self).__init__(**kwargs) + self.key_name = None + self.value = None + self.permissions = None + + +class StorageAccountListKeysResult(Model): + """The response from the ListKeys operation. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar keys: Gets the list of storage account keys and their properties for + the specified storage account. + :vartype keys: + list[~azure.mgmt.storage.v2019_06_01.models.StorageAccountKey] + """ + + _validation = { + 'keys': {'readonly': True}, + } + + _attribute_map = { + 'keys': {'key': 'keys', 'type': '[StorageAccountKey]'}, + } + + def __init__(self, **kwargs) -> None: + super(StorageAccountListKeysResult, self).__init__(**kwargs) + self.keys = None + + +class StorageAccountMicrosoftEndpoints(Model): + """The URIs that are used to perform a retrieval of a public blob, queue, + table, web or dfs object via a microsoft routing endpoint. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar blob: Gets the blob endpoint. + :vartype blob: str + :ivar queue: Gets the queue endpoint. + :vartype queue: str + :ivar table: Gets the table endpoint. + :vartype table: str + :ivar file: Gets the file endpoint. + :vartype file: str + :ivar web: Gets the web endpoint. + :vartype web: str + :ivar dfs: Gets the dfs endpoint. + :vartype dfs: str + """ + + _validation = { + 'blob': {'readonly': True}, + 'queue': {'readonly': True}, + 'table': {'readonly': True}, + 'file': {'readonly': True}, + 'web': {'readonly': True}, + 'dfs': {'readonly': True}, + } + + _attribute_map = { + 'blob': {'key': 'blob', 'type': 'str'}, + 'queue': {'key': 'queue', 'type': 'str'}, + 'table': {'key': 'table', 'type': 'str'}, + 'file': {'key': 'file', 'type': 'str'}, + 'web': {'key': 'web', 'type': 'str'}, + 'dfs': {'key': 'dfs', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(StorageAccountMicrosoftEndpoints, self).__init__(**kwargs) + self.blob = None + self.queue = None + self.table = None + self.file = None + self.web = None + self.dfs = None + + +class StorageAccountRegenerateKeyParameters(Model): + """The parameters used to regenerate the storage account key. + + All required parameters must be populated in order to send to Azure. + + :param key_name: Required. The name of storage keys that want to be + regenerated, possible values are key1, key2, kerb1, kerb2. + :type key_name: str + """ + + _validation = { + 'key_name': {'required': True}, + } + + _attribute_map = { + 'key_name': {'key': 'keyName', 'type': 'str'}, + } + + def __init__(self, *, key_name: str, **kwargs) -> None: + super(StorageAccountRegenerateKeyParameters, self).__init__(**kwargs) + self.key_name = key_name + + +class StorageAccountUpdateParameters(Model): + """The parameters that can be provided when updating the storage account + properties. + + :param sku: Gets or sets the SKU name. Note that the SKU name cannot be + updated to Standard_ZRS, Premium_LRS or Premium_ZRS, nor can accounts of + those SKU names be updated to any other value. + :type sku: ~azure.mgmt.storage.v2019_06_01.models.Sku + :param tags: Gets or sets a list of key value pairs that describe the + resource. These tags can be used in viewing and grouping this resource + (across resource groups). A maximum of 15 tags can be provided for a + resource. Each tag must have a key no greater in length than 128 + characters and a value no greater in length than 256 characters. + :type tags: dict[str, str] + :param identity: The identity of the resource. + :type identity: ~azure.mgmt.storage.v2019_06_01.models.Identity + :param custom_domain: Custom domain assigned to the storage account by the + user. Name is the CNAME source. Only one custom domain is supported per + storage account at this time. To clear the existing custom domain, use an + empty string for the custom domain name property. + :type custom_domain: ~azure.mgmt.storage.v2019_06_01.models.CustomDomain + :param encryption: Provides the encryption settings on the account. The + default setting is unencrypted. + :type encryption: ~azure.mgmt.storage.v2019_06_01.models.Encryption + :param access_tier: Required for storage accounts where kind = + BlobStorage. The access tier used for billing. Possible values include: + 'Hot', 'Cool' + :type access_tier: str or + ~azure.mgmt.storage.v2019_06_01.models.AccessTier + :param azure_files_identity_based_authentication: Provides the identity + based authentication settings for Azure Files. + :type azure_files_identity_based_authentication: + ~azure.mgmt.storage.v2019_06_01.models.AzureFilesIdentityBasedAuthentication + :param enable_https_traffic_only: Allows https traffic only to storage + service if sets to true. + :type enable_https_traffic_only: bool + :param network_rule_set: Network rule set + :type network_rule_set: + ~azure.mgmt.storage.v2019_06_01.models.NetworkRuleSet + :param large_file_shares_state: Allow large file shares if sets to + Enabled. It cannot be disabled once it is enabled. Possible values + include: 'Disabled', 'Enabled' + :type large_file_shares_state: str or + ~azure.mgmt.storage.v2019_06_01.models.LargeFileSharesState + :param routing_preference: Maintains information about the network routing + choice opted by the user for data transfer + :type routing_preference: + ~azure.mgmt.storage.v2019_06_01.models.RoutingPreference + :param kind: Optional. Indicates the type of storage account. Currently + only StorageV2 value supported by server. Possible values include: + 'Storage', 'StorageV2', 'BlobStorage', 'FileStorage', 'BlockBlobStorage' + :type kind: str or ~azure.mgmt.storage.v2019_06_01.models.Kind + """ + + _attribute_map = { + 'sku': {'key': 'sku', 'type': 'Sku'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'identity': {'key': 'identity', 'type': 'Identity'}, + 'custom_domain': {'key': 'properties.customDomain', 'type': 'CustomDomain'}, + 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, + 'access_tier': {'key': 'properties.accessTier', 'type': 'AccessTier'}, + 'azure_files_identity_based_authentication': {'key': 'properties.azureFilesIdentityBasedAuthentication', 'type': 'AzureFilesIdentityBasedAuthentication'}, + 'enable_https_traffic_only': {'key': 'properties.supportsHttpsTrafficOnly', 'type': 'bool'}, + 'network_rule_set': {'key': 'properties.networkAcls', 'type': 'NetworkRuleSet'}, + 'large_file_shares_state': {'key': 'properties.largeFileSharesState', 'type': 'str'}, + 'routing_preference': {'key': 'properties.routingPreference', 'type': 'RoutingPreference'}, + 'kind': {'key': 'kind', 'type': 'str'}, + } + + def __init__(self, *, sku=None, tags=None, identity=None, custom_domain=None, encryption=None, access_tier=None, azure_files_identity_based_authentication=None, enable_https_traffic_only: bool=None, network_rule_set=None, large_file_shares_state=None, routing_preference=None, kind=None, **kwargs) -> None: + super(StorageAccountUpdateParameters, self).__init__(**kwargs) + self.sku = sku + self.tags = tags + self.identity = identity + self.custom_domain = custom_domain + self.encryption = encryption + self.access_tier = access_tier + self.azure_files_identity_based_authentication = azure_files_identity_based_authentication + self.enable_https_traffic_only = enable_https_traffic_only + self.network_rule_set = network_rule_set + self.large_file_shares_state = large_file_shares_state + self.routing_preference = routing_preference + self.kind = kind + + +class TagProperty(Model): + """A tag of the LegalHold of a blob container. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar tag: The tag value. + :vartype tag: str + :ivar timestamp: Returns the date and time the tag was added. + :vartype timestamp: datetime + :ivar object_identifier: Returns the Object ID of the user who added the + tag. + :vartype object_identifier: str + :ivar tenant_id: Returns the Tenant ID that issued the token for the user + who added the tag. + :vartype tenant_id: str + :ivar upn: Returns the User Principal Name of the user who added the tag. + :vartype upn: str + """ + + _validation = { + 'tag': {'readonly': True}, + 'timestamp': {'readonly': True}, + 'object_identifier': {'readonly': True}, + 'tenant_id': {'readonly': True}, + 'upn': {'readonly': True}, + } + + _attribute_map = { + 'tag': {'key': 'tag', 'type': 'str'}, + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'object_identifier': {'key': 'objectIdentifier', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'upn': {'key': 'upn', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(TagProperty, self).__init__(**kwargs) + self.tag = None + self.timestamp = None + self.object_identifier = None + self.tenant_id = None + self.upn = None + + +class UpdateHistoryProperty(Model): + """An update history of the ImmutabilityPolicy of a blob container. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar update: The ImmutabilityPolicy update type of a blob container, + possible values include: put, lock and extend. Possible values include: + 'put', 'lock', 'extend' + :vartype update: str or + ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicyUpdateType + :ivar immutability_period_since_creation_in_days: The immutability period + for the blobs in the container since the policy creation, in days. + :vartype immutability_period_since_creation_in_days: int + :ivar timestamp: Returns the date and time the ImmutabilityPolicy was + updated. + :vartype timestamp: datetime + :ivar object_identifier: Returns the Object ID of the user who updated the + ImmutabilityPolicy. + :vartype object_identifier: str + :ivar tenant_id: Returns the Tenant ID that issued the token for the user + who updated the ImmutabilityPolicy. + :vartype tenant_id: str + :ivar upn: Returns the User Principal Name of the user who updated the + ImmutabilityPolicy. + :vartype upn: str + """ + + _validation = { + 'update': {'readonly': True}, + 'immutability_period_since_creation_in_days': {'readonly': True}, + 'timestamp': {'readonly': True}, + 'object_identifier': {'readonly': True}, + 'tenant_id': {'readonly': True}, + 'upn': {'readonly': True}, + } + + _attribute_map = { + 'update': {'key': 'update', 'type': 'str'}, + 'immutability_period_since_creation_in_days': {'key': 'immutabilityPeriodSinceCreationInDays', 'type': 'int'}, + 'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}, + 'object_identifier': {'key': 'objectIdentifier', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + 'upn': {'key': 'upn', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(UpdateHistoryProperty, self).__init__(**kwargs) + self.update = None + self.immutability_period_since_creation_in_days = None + self.timestamp = None + self.object_identifier = None + self.tenant_id = None + self.upn = None + + +class Usage(Model): + """Describes Storage Resource Usage. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar unit: Gets the unit of measurement. Possible values include: + 'Count', 'Bytes', 'Seconds', 'Percent', 'CountsPerSecond', + 'BytesPerSecond' + :vartype unit: str or ~azure.mgmt.storage.v2019_06_01.models.UsageUnit + :ivar current_value: Gets the current count of the allocated resources in + the subscription. + :vartype current_value: int + :ivar limit: Gets the maximum count of the resources that can be allocated + in the subscription. + :vartype limit: int + :ivar name: Gets the name of the type of usage. + :vartype name: ~azure.mgmt.storage.v2019_06_01.models.UsageName + """ + + _validation = { + 'unit': {'readonly': True}, + 'current_value': {'readonly': True}, + 'limit': {'readonly': True}, + 'name': {'readonly': True}, + } + + _attribute_map = { + 'unit': {'key': 'unit', 'type': 'UsageUnit'}, + 'current_value': {'key': 'currentValue', 'type': 'int'}, + 'limit': {'key': 'limit', 'type': 'int'}, + 'name': {'key': 'name', 'type': 'UsageName'}, + } + + def __init__(self, **kwargs) -> None: + super(Usage, self).__init__(**kwargs) + self.unit = None + self.current_value = None + self.limit = None + self.name = None + + +class UsageName(Model): + """The usage names that can be used; currently limited to StorageAccount. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar value: Gets a string describing the resource name. + :vartype value: str + :ivar localized_value: Gets a localized string describing the resource + name. + :vartype localized_value: str + """ + + _validation = { + 'value': {'readonly': True}, + 'localized_value': {'readonly': True}, + } + + _attribute_map = { + 'value': {'key': 'value', 'type': 'str'}, + 'localized_value': {'key': 'localizedValue', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(UsageName, self).__init__(**kwargs) + self.value = None + self.localized_value = None + + +class VirtualNetworkRule(Model): + """Virtual Network rule. + + All required parameters must be populated in order to send to Azure. + + :param virtual_network_resource_id: Required. Resource ID of a subnet, for + example: + /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}. + :type virtual_network_resource_id: str + :param action: The action of virtual network rule. Possible values + include: 'Allow'. Default value: "Allow" . + :type action: str or ~azure.mgmt.storage.v2019_06_01.models.Action + :param state: Gets the state of virtual network rule. Possible values + include: 'provisioning', 'deprovisioning', 'succeeded', 'failed', + 'networkSourceDeleted' + :type state: str or ~azure.mgmt.storage.v2019_06_01.models.State + """ + + _validation = { + 'virtual_network_resource_id': {'required': True}, + } + + _attribute_map = { + 'virtual_network_resource_id': {'key': 'id', 'type': 'str'}, + 'action': {'key': 'action', 'type': 'Action'}, + 'state': {'key': 'state', 'type': 'State'}, + } + + def __init__(self, *, virtual_network_resource_id: str, action="Allow", state=None, **kwargs) -> None: + super(VirtualNetworkRule, self).__init__(**kwargs) + self.virtual_network_resource_id = virtual_network_resource_id + self.action = action + self.state = state diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_paged_models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_paged_models.py new file mode 100644 index 00000000000..c4ace1805ec --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_paged_models.py @@ -0,0 +1,105 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class OperationPaged(Paged): + """ + A paging container for iterating over a list of :class:`Operation ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[Operation]'} + } + + def __init__(self, *args, **kwargs): + + super(OperationPaged, self).__init__(*args, **kwargs) +class SkuInformationPaged(Paged): + """ + A paging container for iterating over a list of :class:`SkuInformation ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[SkuInformation]'} + } + + def __init__(self, *args, **kwargs): + + super(SkuInformationPaged, self).__init__(*args, **kwargs) +class StorageAccountPaged(Paged): + """ + A paging container for iterating over a list of :class:`StorageAccount ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[StorageAccount]'} + } + + def __init__(self, *args, **kwargs): + + super(StorageAccountPaged, self).__init__(*args, **kwargs) +class UsagePaged(Paged): + """ + A paging container for iterating over a list of :class:`Usage ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[Usage]'} + } + + def __init__(self, *args, **kwargs): + + super(UsagePaged, self).__init__(*args, **kwargs) +class BlobServicePropertiesPaged(Paged): + """ + A paging container for iterating over a list of :class:`BlobServiceProperties ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[BlobServiceProperties]'} + } + + def __init__(self, *args, **kwargs): + + super(BlobServicePropertiesPaged, self).__init__(*args, **kwargs) +class ListContainerItemPaged(Paged): + """ + A paging container for iterating over a list of :class:`ListContainerItem ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[ListContainerItem]'} + } + + def __init__(self, *args, **kwargs): + + super(ListContainerItemPaged, self).__init__(*args, **kwargs) +class FileShareItemPaged(Paged): + """ + A paging container for iterating over a list of :class:`FileShareItem ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[FileShareItem]'} + } + + def __init__(self, *args, **kwargs): + + super(FileShareItemPaged, self).__init__(*args, **kwargs) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_storage_management_client_enums.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_storage_management_client_enums.py new file mode 100644 index 00000000000..6e8f33ecd85 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/models/_storage_management_client_enums.py @@ -0,0 +1,272 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum + + +class ReasonCode(str, Enum): + + quota_id = "QuotaId" + not_available_for_subscription = "NotAvailableForSubscription" + + +class SkuName(str, Enum): + + standard_lrs = "Standard_LRS" + standard_grs = "Standard_GRS" + standard_ragrs = "Standard_RAGRS" + standard_zrs = "Standard_ZRS" + premium_lrs = "Premium_LRS" + premium_zrs = "Premium_ZRS" + standard_gzrs = "Standard_GZRS" + standard_ragzrs = "Standard_RAGZRS" + + +class SkuTier(str, Enum): + + standard = "Standard" + premium = "Premium" + + +class Kind(str, Enum): + + storage = "Storage" + storage_v2 = "StorageV2" + blob_storage = "BlobStorage" + file_storage = "FileStorage" + block_blob_storage = "BlockBlobStorage" + + +class Reason(str, Enum): + + account_name_invalid = "AccountNameInvalid" + already_exists = "AlreadyExists" + + +class KeyType(str, Enum): + + service = "Service" + account = "Account" + + +class KeySource(str, Enum): + + microsoft_storage = "Microsoft.Storage" + microsoft_keyvault = "Microsoft.Keyvault" + + +class Action(str, Enum): + + allow = "Allow" + + +class State(str, Enum): + + provisioning = "provisioning" + deprovisioning = "deprovisioning" + succeeded = "succeeded" + failed = "failed" + network_source_deleted = "networkSourceDeleted" + + +class Bypass(str, Enum): + + none = "None" + logging = "Logging" + metrics = "Metrics" + azure_services = "AzureServices" + + +class DefaultAction(str, Enum): + + allow = "Allow" + deny = "Deny" + + +class DirectoryServiceOptions(str, Enum): + + none = "None" + aadds = "AADDS" + ad = "AD" + + +class AccessTier(str, Enum): + + hot = "Hot" + cool = "Cool" + + +class LargeFileSharesState(str, Enum): + + disabled = "Disabled" + enabled = "Enabled" + + +class RoutingChoice(str, Enum): + + microsoft_routing = "MicrosoftRouting" + internet_routing = "InternetRouting" + + +class GeoReplicationStatus(str, Enum): + + live = "Live" + bootstrap = "Bootstrap" + unavailable = "Unavailable" + + +class BlobRestoreProgressStatus(str, Enum): + + in_progress = "InProgress" + complete = "Complete" + failed = "Failed" + + +class ProvisioningState(str, Enum): + + creating = "Creating" + resolving_dns = "ResolvingDNS" + succeeded = "Succeeded" + + +class AccountStatus(str, Enum): + + available = "available" + unavailable = "unavailable" + + +class PrivateEndpointServiceConnectionStatus(str, Enum): + + pending = "Pending" + approved = "Approved" + rejected = "Rejected" + + +class PrivateEndpointConnectionProvisioningState(str, Enum): + + succeeded = "Succeeded" + creating = "Creating" + deleting = "Deleting" + failed = "Failed" + + +class KeyPermission(str, Enum): + + read = "Read" + full = "Full" + + +class UsageUnit(str, Enum): + + count = "Count" + bytes = "Bytes" + seconds = "Seconds" + percent = "Percent" + counts_per_second = "CountsPerSecond" + bytes_per_second = "BytesPerSecond" + + +class Services(str, Enum): + + b = "b" + q = "q" + t = "t" + f = "f" + + +class SignedResourceTypes(str, Enum): + + s = "s" + c = "c" + o = "o" + + +class Permissions(str, Enum): + + r = "r" + d = "d" + w = "w" + l = "l" + a = "a" + c = "c" + u = "u" + p = "p" + + +class HttpProtocol(str, Enum): + + httpshttp = "https,http" + https = "https" + + +class SignedResource(str, Enum): + + b = "b" + c = "c" + f = "f" + s = "s" + + +class PublicAccess(str, Enum): + + container = "Container" + blob = "Blob" + none = "None" + + +class LeaseStatus(str, Enum): + + locked = "Locked" + unlocked = "Unlocked" + + +class LeaseState(str, Enum): + + available = "Available" + leased = "Leased" + expired = "Expired" + breaking = "Breaking" + broken = "Broken" + + +class LeaseDuration(str, Enum): + + infinite = "Infinite" + fixed = "Fixed" + + +class ImmutabilityPolicyState(str, Enum): + + locked = "Locked" + unlocked = "Unlocked" + + +class ImmutabilityPolicyUpdateType(str, Enum): + + put = "put" + lock = "lock" + extend = "extend" + + +class Name(str, Enum): + + access_time_tracking = "AccessTimeTracking" + + +class StorageAccountExpand(str, Enum): + + geo_replication_stats = "geoReplicationStats" + blob_restore_status = "blobRestoreStatus" + + +class ListKeyExpand(str, Enum): + + kerb = "kerb" diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/__init__.py new file mode 100644 index 00000000000..5a2ff1e65d6 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/__init__.py @@ -0,0 +1,36 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._operations import Operations +from ._skus_operations import SkusOperations +from ._storage_accounts_operations import StorageAccountsOperations +from ._usages_operations import UsagesOperations +from ._management_policies_operations import ManagementPoliciesOperations +from ._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations +from ._private_link_resources_operations import PrivateLinkResourcesOperations +from ._blob_services_operations import BlobServicesOperations +from ._blob_containers_operations import BlobContainersOperations +from ._file_services_operations import FileServicesOperations +from ._file_shares_operations import FileSharesOperations + +__all__ = [ + 'Operations', + 'SkusOperations', + 'StorageAccountsOperations', + 'UsagesOperations', + 'ManagementPoliciesOperations', + 'PrivateEndpointConnectionsOperations', + 'PrivateLinkResourcesOperations', + 'BlobServicesOperations', + 'BlobContainersOperations', + 'FileServicesOperations', + 'FileSharesOperations', +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_blob_containers_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_blob_containers_operations.py new file mode 100644 index 00000000000..2e21e131e55 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_blob_containers_operations.py @@ -0,0 +1,1141 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class BlobContainersOperations(object): + """BlobContainersOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". + :ivar immutability_policy_name: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'. Constant value: "default". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-06-01" + self.immutability_policy_name = "default" + + self.config = config + + def list( + self, resource_group_name, account_name, maxpagesize=None, filter=None, custom_headers=None, raw=False, **operation_config): + """Lists all containers and does not support a prefix like data plane. + Also SRP today does not return continuation token. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param maxpagesize: Optional. Specified maximum number of containers + that can be included in the list. + :type maxpagesize: str + :param filter: Optional. When specified, only container names starting + with the filter will be listed. + :type filter: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of ListContainerItem + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.ListContainerItemPaged[~azure.mgmt.storage.v2019_06_01.models.ListContainerItem] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + if maxpagesize is not None: + query_parameters['$maxpagesize'] = self._serialize.query("maxpagesize", maxpagesize, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.ListContainerItemPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers'} + + def create( + self, resource_group_name, account_name, container_name, public_access=None, metadata=None, custom_headers=None, raw=False, **operation_config): + """Creates a new container under the specified account as described by + request body. The container resource includes metadata and properties + for that container. It does not include a list of the blobs contained + by the container. . + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param public_access: Specifies whether data in the container may be + accessed publicly and the level of access. Possible values include: + 'Container', 'Blob', 'None' + :type public_access: str or + ~azure.mgmt.storage.v2019_06_01.models.PublicAccess + :param metadata: A name-value pair to associate with the container as + metadata. + :type metadata: dict[str, str] + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: BlobContainer or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.BlobContainer or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + blob_container = models.BlobContainer(public_access=public_access, metadata=metadata) + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(blob_container, 'BlobContainer') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 201]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlobContainer', response) + if response.status_code == 201: + deserialized = self._deserialize('BlobContainer', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}'} + + def update( + self, resource_group_name, account_name, container_name, public_access=None, metadata=None, custom_headers=None, raw=False, **operation_config): + """Updates container properties as specified in request body. Properties + not mentioned in the request will be unchanged. Update fails if the + specified container doesn't already exist. . + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param public_access: Specifies whether data in the container may be + accessed publicly and the level of access. Possible values include: + 'Container', 'Blob', 'None' + :type public_access: str or + ~azure.mgmt.storage.v2019_06_01.models.PublicAccess + :param metadata: A name-value pair to associate with the container as + metadata. + :type metadata: dict[str, str] + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: BlobContainer or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.BlobContainer or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + blob_container = models.BlobContainer(public_access=public_access, metadata=metadata) + + # Construct URL + url = self.update.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(blob_container, 'BlobContainer') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlobContainer', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}'} + + def get( + self, resource_group_name, account_name, container_name, custom_headers=None, raw=False, **operation_config): + """Gets properties of a specified container. . + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: BlobContainer or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.BlobContainer or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlobContainer', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}'} + + def delete( + self, resource_group_name, account_name, container_name, custom_headers=None, raw=False, **operation_config): + """Deletes specified container under its account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: None or ClientRawResponse if raw=true + :rtype: None or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}'} + + def set_legal_hold( + self, resource_group_name, account_name, container_name, tags, custom_headers=None, raw=False, **operation_config): + """Sets legal hold tags. Setting the same tag results in an idempotent + operation. SetLegalHold follows an append pattern and does not clear + out the existing tags that are not specified in the request. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param tags: Each tag should be 3 to 23 alphanumeric characters and is + normalized to lower case at SRP. + :type tags: list[str] + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: LegalHold or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.LegalHold or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + legal_hold = models.LegalHold(tags=tags) + + # Construct URL + url = self.set_legal_hold.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(legal_hold, 'LegalHold') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('LegalHold', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + set_legal_hold.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/setLegalHold'} + + def clear_legal_hold( + self, resource_group_name, account_name, container_name, tags, custom_headers=None, raw=False, **operation_config): + """Clears legal hold tags. Clearing the same or non-existent tag results + in an idempotent operation. ClearLegalHold clears out only the + specified tags in the request. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param tags: Each tag should be 3 to 23 alphanumeric characters and is + normalized to lower case at SRP. + :type tags: list[str] + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: LegalHold or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.LegalHold or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + legal_hold = models.LegalHold(tags=tags) + + # Construct URL + url = self.clear_legal_hold.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(legal_hold, 'LegalHold') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('LegalHold', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + clear_legal_hold.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/clearLegalHold'} + + def create_or_update_immutability_policy( + self, resource_group_name, account_name, container_name, immutability_period_since_creation_in_days, if_match=None, custom_headers=None, raw=False, **operation_config): + """Creates or updates an unlocked immutability policy. ETag in If-Match is + honored if given but not required for this operation. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param immutability_period_since_creation_in_days: The immutability + period for the blobs in the container since the policy creation, in + days. + :type immutability_period_since_creation_in_days: int + :param if_match: The entity state (ETag) version of the immutability + policy to update. A value of "*" can be used to apply the operation + only if the immutability policy already exists. If omitted, this + operation will always be applied. + :type if_match: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ImmutabilityPolicy or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicy or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + parameters = None + if immutability_period_since_creation_in_days is not None: + parameters = models.ImmutabilityPolicy(immutability_period_since_creation_in_days=immutability_period_since_creation_in_days) + + # Construct URL + url = self.create_or_update_immutability_policy.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'immutabilityPolicyName': self._serialize.url("self.immutability_policy_name", self.immutability_policy_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + if parameters is not None: + body_content = self._serialize.body(parameters, 'ImmutabilityPolicy') + else: + body_content = None + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ImmutabilityPolicy', response) + header_dict = { + 'ETag': 'str', + } + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + client_raw_response.add_headers(header_dict) + return client_raw_response + + return deserialized + create_or_update_immutability_policy.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/{immutabilityPolicyName}'} + + def get_immutability_policy( + self, resource_group_name, account_name, container_name, if_match=None, custom_headers=None, raw=False, **operation_config): + """Gets the existing immutability policy along with the corresponding ETag + in response headers and body. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param if_match: The entity state (ETag) version of the immutability + policy to update. A value of "*" can be used to apply the operation + only if the immutability policy already exists. If omitted, this + operation will always be applied. + :type if_match: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ImmutabilityPolicy or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicy or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get_immutability_policy.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'immutabilityPolicyName': self._serialize.url("self.immutability_policy_name", self.immutability_policy_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ImmutabilityPolicy', response) + header_dict = { + 'ETag': 'str', + } + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + client_raw_response.add_headers(header_dict) + return client_raw_response + + return deserialized + get_immutability_policy.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/{immutabilityPolicyName}'} + + def delete_immutability_policy( + self, resource_group_name, account_name, container_name, if_match, custom_headers=None, raw=False, **operation_config): + """Aborts an unlocked immutability policy. The response of delete has + immutabilityPeriodSinceCreationInDays set to 0. ETag in If-Match is + required for this operation. Deleting a locked immutability policy is + not allowed, only way is to delete the container after deleting all + blobs inside the container. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param if_match: The entity state (ETag) version of the immutability + policy to update. A value of "*" can be used to apply the operation + only if the immutability policy already exists. If omitted, this + operation will always be applied. + :type if_match: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ImmutabilityPolicy or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicy or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.delete_immutability_policy.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'immutabilityPolicyName': self._serialize.url("self.immutability_policy_name", self.immutability_policy_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ImmutabilityPolicy', response) + header_dict = { + 'ETag': 'str', + } + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + client_raw_response.add_headers(header_dict) + return client_raw_response + + return deserialized + delete_immutability_policy.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/{immutabilityPolicyName}'} + + def lock_immutability_policy( + self, resource_group_name, account_name, container_name, if_match, custom_headers=None, raw=False, **operation_config): + """Sets the ImmutabilityPolicy to Locked state. The only action allowed on + a Locked policy is ExtendImmutabilityPolicy action. ETag in If-Match is + required for this operation. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param if_match: The entity state (ETag) version of the immutability + policy to update. A value of "*" can be used to apply the operation + only if the immutability policy already exists. If omitted, this + operation will always be applied. + :type if_match: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ImmutabilityPolicy or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicy or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.lock_immutability_policy.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ImmutabilityPolicy', response) + header_dict = { + 'ETag': 'str', + } + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + client_raw_response.add_headers(header_dict) + return client_raw_response + + return deserialized + lock_immutability_policy.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default/lock'} + + def extend_immutability_policy( + self, resource_group_name, account_name, container_name, if_match, immutability_period_since_creation_in_days, custom_headers=None, raw=False, **operation_config): + """Extends the immutabilityPeriodSinceCreationInDays of a locked + immutabilityPolicy. The only action allowed on a Locked policy will be + this action. ETag in If-Match is required for this operation. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param if_match: The entity state (ETag) version of the immutability + policy to update. A value of "*" can be used to apply the operation + only if the immutability policy already exists. If omitted, this + operation will always be applied. + :type if_match: str + :param immutability_period_since_creation_in_days: The immutability + period for the blobs in the container since the policy creation, in + days. + :type immutability_period_since_creation_in_days: int + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ImmutabilityPolicy or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.ImmutabilityPolicy or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + parameters = None + if immutability_period_since_creation_in_days is not None: + parameters = models.ImmutabilityPolicy(immutability_period_since_creation_in_days=immutability_period_since_creation_in_days) + + # Construct URL + url = self.extend_immutability_policy.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + if parameters is not None: + body_content = self._serialize.body(parameters, 'ImmutabilityPolicy') + else: + body_content = None + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ImmutabilityPolicy', response) + header_dict = { + 'ETag': 'str', + } + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + client_raw_response.add_headers(header_dict) + return client_raw_response + + return deserialized + extend_immutability_policy.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default/extend'} + + def lease( + self, resource_group_name, account_name, container_name, parameters=None, custom_headers=None, raw=False, **operation_config): + """The Lease Container operation establishes and manages a lock on a + container for delete operations. The lock duration can be 15 to 60 + seconds, or can be infinite. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param container_name: The name of the blob container within the + specified storage account. Blob container names must be between 3 and + 63 characters in length and use numbers, lower-case letters and dash + (-) only. Every dash (-) character must be immediately preceded and + followed by a letter or number. + :type container_name: str + :param parameters: Lease Container request body. + :type parameters: + ~azure.mgmt.storage.v2019_06_01.models.LeaseContainerRequest + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: LeaseContainerResponse or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.LeaseContainerResponse + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.lease.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'containerName': self._serialize.url("container_name", container_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + if parameters is not None: + body_content = self._serialize.body(parameters, 'LeaseContainerRequest') + else: + body_content = None + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('LeaseContainerResponse', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + lease.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/lease'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_blob_services_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_blob_services_operations.py new file mode 100644 index 00000000000..2e3af3f0af3 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_blob_services_operations.py @@ -0,0 +1,261 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class BlobServicesOperations(object): + """BlobServicesOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". + :ivar blob_services_name: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'. Constant value: "default". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-06-01" + self.blob_services_name = "default" + + self.config = config + + def list( + self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): + """List blob services of storage account. It returns a collection of one + object named default. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of BlobServiceProperties + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.BlobServicePropertiesPaged[~azure.mgmt.storage.v2019_06_01.models.BlobServiceProperties] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.BlobServicePropertiesPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices'} + + def set_service_properties( + self, resource_group_name, account_name, parameters, custom_headers=None, raw=False, **operation_config): + """Sets the properties of a storage account’s Blob service, including + properties for Storage Analytics and CORS (Cross-Origin Resource + Sharing) rules. . + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param parameters: The properties of a storage account’s Blob service, + including properties for Storage Analytics and CORS (Cross-Origin + Resource Sharing) rules. + :type parameters: + ~azure.mgmt.storage.v2019_06_01.models.BlobServiceProperties + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: BlobServiceProperties or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.BlobServiceProperties + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.set_service_properties.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'BlobServicesName': self._serialize.url("self.blob_services_name", self.blob_services_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'BlobServiceProperties') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlobServiceProperties', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + set_service_properties.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/{BlobServicesName}'} + + def get_service_properties( + self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): + """Gets the properties of a storage account’s Blob service, including + properties for Storage Analytics and CORS (Cross-Origin Resource + Sharing) rules. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: BlobServiceProperties or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.BlobServiceProperties + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get_service_properties.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'BlobServicesName': self._serialize.url("self.blob_services_name", self.blob_services_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlobServiceProperties', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get_service_properties.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/{BlobServicesName}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_file_services_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_file_services_operations.py new file mode 100644 index 00000000000..693f633a0fa --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_file_services_operations.py @@ -0,0 +1,253 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class FileServicesOperations(object): + """FileServicesOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". + :ivar file_services_name: The name of the file Service within the specified storage account. File Service Name must be "default". Constant value: "default". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-06-01" + self.file_services_name = "default" + + self.config = config + + def list( + self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): + """List all file services in storage accounts. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: FileServiceItems or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.FileServiceItems or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('FileServiceItems', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices'} + + def set_service_properties( + self, resource_group_name, account_name, cors=None, share_delete_retention_policy=None, custom_headers=None, raw=False, **operation_config): + """Sets the properties of file services in storage accounts, including + CORS (Cross-Origin Resource Sharing) rules. . + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param cors: Specifies CORS rules for the File service. You can + include up to five CorsRule elements in the request. If no CorsRule + elements are included in the request body, all CORS rules will be + deleted, and CORS will be disabled for the File service. + :type cors: ~azure.mgmt.storage.v2019_06_01.models.CorsRules + :param share_delete_retention_policy: The file service properties for + share soft delete. + :type share_delete_retention_policy: + ~azure.mgmt.storage.v2019_06_01.models.DeleteRetentionPolicy + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: FileServiceProperties or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.FileServiceProperties + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + parameters = models.FileServiceProperties(cors=cors, share_delete_retention_policy=share_delete_retention_policy) + + # Construct URL + url = self.set_service_properties.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'FileServicesName': self._serialize.url("self.file_services_name", self.file_services_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'FileServiceProperties') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('FileServiceProperties', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + set_service_properties.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/{FileServicesName}'} + + def get_service_properties( + self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): + """Gets the properties of file services in storage accounts, including + CORS (Cross-Origin Resource Sharing) rules. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: FileServiceProperties or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.FileServiceProperties + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get_service_properties.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'FileServicesName': self._serialize.url("self.file_services_name", self.file_services_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('FileServiceProperties', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get_service_properties.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/{FileServicesName}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_file_shares_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_file_shares_operations.py new file mode 100644 index 00000000000..ca0c37d1861 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_file_shares_operations.py @@ -0,0 +1,434 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class FileSharesOperations(object): + """FileSharesOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-06-01" + + self.config = config + + def list( + self, resource_group_name, account_name, maxpagesize=None, filter=None, custom_headers=None, raw=False, **operation_config): + """Lists all shares. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param maxpagesize: Optional. Specified maximum number of shares that + can be included in the list. + :type maxpagesize: str + :param filter: Optional. When specified, only share names starting + with the filter will be listed. + :type filter: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of FileShareItem + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.FileShareItemPaged[~azure.mgmt.storage.v2019_06_01.models.FileShareItem] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + if maxpagesize is not None: + query_parameters['$maxpagesize'] = self._serialize.query("maxpagesize", maxpagesize, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.FileShareItemPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares'} + + def create( + self, resource_group_name, account_name, share_name, metadata=None, share_quota=None, custom_headers=None, raw=False, **operation_config): + """Creates a new share under the specified account as described by request + body. The share resource includes metadata and properties for that + share. It does not include a list of the files contained by the share. + . + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param share_name: The name of the file share within the specified + storage account. File share names must be between 3 and 63 characters + in length and use numbers, lower-case letters and dash (-) only. Every + dash (-) character must be immediately preceded and followed by a + letter or number. + :type share_name: str + :param metadata: A name-value pair to associate with the share as + metadata. + :type metadata: dict[str, str] + :param share_quota: The maximum size of the share, in gigabytes. Must + be greater than 0, and less than or equal to 5TB (5120). For Large + File Shares, the maximum size is 102400. + :type share_quota: int + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: FileShare or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.FileShare or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + file_share = models.FileShare(metadata=metadata, share_quota=share_quota) + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'shareName': self._serialize.url("share_name", share_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(file_share, 'FileShare') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 201]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('FileShare', response) + if response.status_code == 201: + deserialized = self._deserialize('FileShare', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares/{shareName}'} + + def update( + self, resource_group_name, account_name, share_name, metadata=None, share_quota=None, custom_headers=None, raw=False, **operation_config): + """Updates share properties as specified in request body. Properties not + mentioned in the request will not be changed. Update fails if the + specified share does not already exist. . + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param share_name: The name of the file share within the specified + storage account. File share names must be between 3 and 63 characters + in length and use numbers, lower-case letters and dash (-) only. Every + dash (-) character must be immediately preceded and followed by a + letter or number. + :type share_name: str + :param metadata: A name-value pair to associate with the share as + metadata. + :type metadata: dict[str, str] + :param share_quota: The maximum size of the share, in gigabytes. Must + be greater than 0, and less than or equal to 5TB (5120). For Large + File Shares, the maximum size is 102400. + :type share_quota: int + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: FileShare or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.FileShare or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + file_share = models.FileShare(metadata=metadata, share_quota=share_quota) + + # Construct URL + url = self.update.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'shareName': self._serialize.url("share_name", share_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(file_share, 'FileShare') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('FileShare', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares/{shareName}'} + + def get( + self, resource_group_name, account_name, share_name, custom_headers=None, raw=False, **operation_config): + """Gets properties of a specified share. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param share_name: The name of the file share within the specified + storage account. File share names must be between 3 and 63 characters + in length and use numbers, lower-case letters and dash (-) only. Every + dash (-) character must be immediately preceded and followed by a + letter or number. + :type share_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: FileShare or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.FileShare or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'shareName': self._serialize.url("share_name", share_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('FileShare', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares/{shareName}'} + + def delete( + self, resource_group_name, account_name, share_name, custom_headers=None, raw=False, **operation_config): + """Deletes specified share under its account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param share_name: The name of the file share within the specified + storage account. File share names must be between 3 and 63 characters + in length and use numbers, lower-case letters and dash (-) only. Every + dash (-) character must be immediately preceded and followed by a + letter or number. + :type share_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: None or ClientRawResponse if raw=true + :rtype: None or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'shareName': self._serialize.url("share_name", share_name, 'str', max_length=63, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares/{shareName}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_management_policies_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_management_policies_operations.py new file mode 100644 index 00000000000..e6e4b398a17 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_management_policies_operations.py @@ -0,0 +1,242 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class ManagementPoliciesOperations(object): + """ManagementPoliciesOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". + :ivar management_policy_name: The name of the Storage Account Management Policy. It should always be 'default'. Constant value: "default". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-06-01" + self.management_policy_name = "default" + + self.config = config + + def get( + self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): + """Gets the managementpolicy associated with the specified storage + account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ManagementPolicy or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicy or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'managementPolicyName': self._serialize.url("self.management_policy_name", self.management_policy_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ManagementPolicy', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/managementPolicies/{managementPolicyName}'} + + def create_or_update( + self, resource_group_name, account_name, policy, custom_headers=None, raw=False, **operation_config): + """Sets the managementpolicy to the specified storage account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param policy: The Storage Account ManagementPolicy, in JSON format. + See more details in: + https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. + :type policy: + ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicySchema + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ManagementPolicy or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.ManagementPolicy or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + properties = models.ManagementPolicy(policy=policy) + + # Construct URL + url = self.create_or_update.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'managementPolicyName': self._serialize.url("self.management_policy_name", self.management_policy_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(properties, 'ManagementPolicy') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ManagementPolicy', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/managementPolicies/{managementPolicyName}'} + + def delete( + self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): + """Deletes the managementpolicy associated with the specified storage + account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: None or ClientRawResponse if raw=true + :rtype: None or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'managementPolicyName': self._serialize.url("self.management_policy_name", self.management_policy_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/managementPolicies/{managementPolicyName}'} diff --git a/src/maintenance/azext_maintenance/vendored_sdks/operations/operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_operations.py similarity index 72% rename from src/maintenance/azext_maintenance/vendored_sdks/operations/operations.py rename to src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_operations.py index b53a9be0dc3..758ea32d576 100644 --- a/src/maintenance/azext_maintenance/vendored_sdks/operations/operations.py +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_operations.py @@ -1,4 +1,3 @@ -# pylint: disable=line-too-long,unused-import,too-few-public-methods,unused-argument # coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. @@ -12,6 +11,7 @@ import uuid from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError from .. import models @@ -19,11 +19,13 @@ class Operations(object): """Operations operations. + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. :param deserializer: An object model deserializer. - :ivar api_version: Version of the API to be used with the client request. Constant value: "2018-06-01-preview". + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". """ models = models @@ -33,16 +35,13 @@ def __init__(self, client, config, serializer, deserializer): self._client = client self._serialize = serializer self._deserialize = deserializer - self.api_version = "2018-06-01-preview" + self.api_version = "2019-06-01" self.config = config def list( self, custom_headers=None, raw=False, **operation_config): - """List available operations. - - List the available operations supported by the Microsoft.Maintenance - resource provider. + """Lists all of the available Storage Rest API operations. :param dict custom_headers: headers that will be added to the request :param bool raw: returns the direct response alongside the @@ -51,19 +50,17 @@ def list( overrides`. :return: An iterator like instance of Operation :rtype: - ~azure.mgmt.maintenance.models.OperationPaged[~azure.mgmt.maintenance.models.Operation] - :raises: - :class:`MaintenanceErrorException` + ~azure.mgmt.storage.v2019_06_01.models.OperationPaged[~azure.mgmt.storage.v2019_06_01.models.Operation] + :raises: :class:`CloudError` """ - def internal_paging(next_link=None, raw=False): - + def prepare_request(next_link=None): if not next_link: # Construct URL url = self.list.metadata['url'] # Construct parameters query_parameters = {} - query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) else: url = next_link @@ -81,20 +78,25 @@ def internal_paging(next_link=None, raw=False): # Construct and send request request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: - raise models.MaintenanceErrorException(self._deserialize, response) + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp return response # Deserialize response - deserialized = models.OperationPaged(internal_paging, self._deserialize.dependencies) - + header_dict = None if raw: header_dict = {} - client_raw_response = models.OperationPaged(internal_paging, self._deserialize.dependencies, header_dict) - return client_raw_response + deserialized = models.OperationPaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized - list.metadata = {'url': '/providers/Microsoft.Maintenance/operations'} + list.metadata = {'url': '/providers/Microsoft.Storage/operations'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_private_endpoint_connections_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_private_endpoint_connections_operations.py new file mode 100644 index 00000000000..25ce6b2bf0b --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_private_endpoint_connections_operations.py @@ -0,0 +1,244 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse + +from .. import models + + +class PrivateEndpointConnectionsOperations(object): + """PrivateEndpointConnectionsOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-06-01" + + self.config = config + + def get( + self, resource_group_name, account_name, private_endpoint_connection_name, custom_headers=None, raw=False, **operation_config): + """Gets the specified private endpoint connection associated with the + storage account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param private_endpoint_connection_name: The name of the private + endpoint connection associated with the Storage Account + :type private_endpoint_connection_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: PrivateEndpointConnection or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.PrivateEndpointConnection or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PrivateEndpointConnection', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} + + def put( + self, resource_group_name, account_name, private_endpoint_connection_name, properties, custom_headers=None, raw=False, **operation_config): + """Update the state of specified private endpoint connection associated + with the storage account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param private_endpoint_connection_name: The name of the private + endpoint connection associated with the Storage Account + :type private_endpoint_connection_name: str + :param properties: The private endpoint connection properties. + :type properties: + ~azure.mgmt.storage.v2019_06_01.models.PrivateEndpointConnection + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: PrivateEndpointConnection or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.PrivateEndpointConnection or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.put.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(properties, 'PrivateEndpointConnection') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PrivateEndpointConnection', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + put.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} + + def delete( + self, resource_group_name, account_name, private_endpoint_connection_name, custom_headers=None, raw=False, **operation_config): + """Deletes the specified private endpoint connection associated with the + storage account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param private_endpoint_connection_name: The name of the private + endpoint connection associated with the Storage Account + :type private_endpoint_connection_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: None or ClientRawResponse if raw=true + :rtype: None or ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseException` + """ + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'privateEndpointConnectionName': self._serialize.url("private_endpoint_connection_name", private_endpoint_connection_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 204]: + raise models.ErrorResponseException(self._deserialize, response) + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_private_link_resources_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_private_link_resources_operations.py new file mode 100644 index 00000000000..1042ffd402e --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_private_link_resources_operations.py @@ -0,0 +1,107 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class PrivateLinkResourcesOperations(object): + """PrivateLinkResourcesOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-06-01" + + self.config = config + + def list_by_storage_account( + self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): + """Gets the private link resources that need to be created for a storage + account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: PrivateLinkResourceListResult or ClientRawResponse if + raw=true + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.PrivateLinkResourceListResult + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list_by_storage_account.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PrivateLinkResourceListResult', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list_by_storage_account.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateLinkResources'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_skus_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_skus_operations.py new file mode 100644 index 00000000000..abe72334abc --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_skus_operations.py @@ -0,0 +1,107 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class SkusOperations(object): + """SkusOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-06-01" + + self.config = config + + def list( + self, custom_headers=None, raw=False, **operation_config): + """Lists the available SKUs supported by Microsoft.Storage for given + subscription. + + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of SkuInformation + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.SkuInformationPaged[~azure.mgmt.storage.v2019_06_01.models.SkuInformation] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.SkuInformationPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Storage/skus'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_storage_accounts_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_storage_accounts_operations.py new file mode 100644 index 00000000000..ce9f19d296d --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_storage_accounts_operations.py @@ -0,0 +1,1109 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError +from msrest.polling import LROPoller, NoPolling +from msrestazure.polling.arm_polling import ARMPolling + +from .. import models + + +class StorageAccountsOperations(object): + """StorageAccountsOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-06-01" + + self.config = config + + def check_name_availability( + self, name, custom_headers=None, raw=False, **operation_config): + """Checks that the storage account name is valid and is not already in + use. + + :param name: The storage account name. + :type name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: CheckNameAvailabilityResult or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.CheckNameAvailabilityResult or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + account_name = models.StorageAccountCheckNameAvailabilityParameters(name=name) + + # Construct URL + url = self.check_name_availability.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(account_name, 'StorageAccountCheckNameAvailabilityParameters') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('CheckNameAvailabilityResult', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + check_name_availability.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Storage/checkNameAvailability'} + + + def _create_initial( + self, resource_group_name, account_name, parameters, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'StorageAccountCreateParameters') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('StorageAccount', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def create( + self, resource_group_name, account_name, parameters, custom_headers=None, raw=False, polling=True, **operation_config): + """Asynchronously creates a new storage account with the specified + parameters. If an account is already created and a subsequent create + request is issued with different properties, the account properties + will be updated. If an account is already created and a subsequent + create or update request is issued with the exact same set of + properties, the request will succeed. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param parameters: The parameters to provide for the created account. + :type parameters: + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountCreateParameters + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns StorageAccount or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.storage.v2019_06_01.models.StorageAccount] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.storage.v2019_06_01.models.StorageAccount]] + :raises: :class:`CloudError` + """ + raw_result = self._create_initial( + resource_group_name=resource_group_name, + account_name=account_name, + parameters=parameters, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('StorageAccount', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}'} + + def delete( + self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): + """Deletes a storage account in Microsoft Azure. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: None or ClientRawResponse if raw=true + :rtype: None or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}'} + + def get_properties( + self, resource_group_name, account_name, expand=None, custom_headers=None, raw=False, **operation_config): + """Returns the properties for the specified storage account including but + not limited to name, SKU name, location, and account status. The + ListKeys operation should be used to retrieve storage keys. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param expand: May be used to expand the properties within account's + properties. By default, data is not included when fetching properties. + Currently we only support geoReplicationStats and blobRestoreStatus. + Possible values include: 'geoReplicationStats', 'blobRestoreStatus' + :type expand: str or + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountExpand + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: StorageAccount or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.StorageAccount or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'StorageAccountExpand') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageAccount', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get_properties.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}'} + + def update( + self, resource_group_name, account_name, parameters, custom_headers=None, raw=False, **operation_config): + """The update operation can be used to update the SKU, encryption, access + tier, or tags for a storage account. It can also be used to map the + account to a custom domain. Only one custom domain is supported per + storage account; the replacement/change of custom domain is not + supported. In order to replace an old custom domain, the old value must + be cleared/unregistered before a new value can be set. The update of + multiple properties is supported. This call does not change the storage + keys for the account. If you want to change the storage account keys, + use the regenerate keys operation. The location and name of the storage + account cannot be changed after creation. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param parameters: The parameters to provide for the updated account. + :type parameters: + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountUpdateParameters + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: StorageAccount or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.StorageAccount or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.update.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'StorageAccountUpdateParameters') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageAccount', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}'} + + def list( + self, custom_headers=None, raw=False, **operation_config): + """Lists all the storage accounts available under the subscription. Note + that storage keys are not returned; use the ListKeys operation for + this. + + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of StorageAccount + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountPaged[~azure.mgmt.storage.v2019_06_01.models.StorageAccount] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.StorageAccountPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Storage/storageAccounts'} + + def list_by_resource_group( + self, resource_group_name, custom_headers=None, raw=False, **operation_config): + """Lists all the storage accounts available under the given resource + group. Note that storage keys are not returned; use the ListKeys + operation for this. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of StorageAccount + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountPaged[~azure.mgmt.storage.v2019_06_01.models.StorageAccount] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.StorageAccountPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts'} + + def list_keys( + self, resource_group_name, account_name, expand=None, custom_headers=None, raw=False, **operation_config): + """Lists the access keys or Kerberos keys (if active directory enabled) + for the specified storage account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param expand: Specifies type of the key to be listed. Possible value + is kerb. Possible values include: 'kerb' + :type expand: str or + ~azure.mgmt.storage.v2019_06_01.models.ListKeyExpand + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: StorageAccountListKeysResult or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountListKeysResult or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list_keys.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + if expand is not None: + query_parameters['$expand'] = self._serialize.query("expand", expand, 'ListKeyExpand') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageAccountListKeysResult', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/listKeys'} + + def regenerate_key( + self, resource_group_name, account_name, key_name, custom_headers=None, raw=False, **operation_config): + """Regenerates one of the access keys or Kerberos keys for the specified + storage account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param key_name: The name of storage keys that want to be regenerated, + possible values are key1, key2, kerb1, kerb2. + :type key_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: StorageAccountListKeysResult or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.StorageAccountListKeysResult or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + regenerate_key1 = models.StorageAccountRegenerateKeyParameters(key_name=key_name) + + # Construct URL + url = self.regenerate_key.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(regenerate_key1, 'StorageAccountRegenerateKeyParameters') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageAccountListKeysResult', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + regenerate_key.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/regenerateKey'} + + def list_account_sas( + self, resource_group_name, account_name, parameters, custom_headers=None, raw=False, **operation_config): + """List SAS credentials of a storage account. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param parameters: The parameters to provide to list SAS credentials + for the storage account. + :type parameters: + ~azure.mgmt.storage.v2019_06_01.models.AccountSasParameters + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ListAccountSasResponse or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.ListAccountSasResponse + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list_account_sas.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'AccountSasParameters') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListAccountSasResponse', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list_account_sas.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/ListAccountSas'} + + def list_service_sas( + self, resource_group_name, account_name, parameters, custom_headers=None, raw=False, **operation_config): + """List service SAS credentials of a specific resource. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param parameters: The parameters to provide to list service SAS + credentials. + :type parameters: + ~azure.mgmt.storage.v2019_06_01.models.ServiceSasParameters + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ListServiceSasResponse or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.storage.v2019_06_01.models.ListServiceSasResponse + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list_service_sas.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'ServiceSasParameters') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListServiceSasResponse', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list_service_sas.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/ListServiceSas'} + + + def _failover_initial( + self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.failover.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def failover( + self, resource_group_name, account_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Failover request can be triggered for a storage account in case of + availability issues. The failover occurs from the storage account's + primary cluster to secondary cluster for RA-GRS accounts. The secondary + cluster will become primary after failover. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._failover_initial( + resource_group_name=resource_group_name, + account_name=account_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'location'}, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + failover.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/failover'} + + + def _restore_blob_ranges_initial( + self, resource_group_name, account_name, time_to_restore, blob_ranges, custom_headers=None, raw=False, **operation_config): + parameters = models.BlobRestoreParameters(time_to_restore=time_to_restore, blob_ranges=blob_ranges) + + # Construct URL + url = self.restore_blob_ranges.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'BlobRestoreParameters') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('BlobRestoreStatus', response) + if response.status_code == 202: + deserialized = self._deserialize('BlobRestoreStatus', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def restore_blob_ranges( + self, resource_group_name, account_name, time_to_restore, blob_ranges, custom_headers=None, raw=False, polling=True, **operation_config): + """Restore blobs in the specified blob ranges. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param time_to_restore: Restore blob to the specified time. + :type time_to_restore: datetime + :param blob_ranges: Blob ranges to restore. + :type blob_ranges: + list[~azure.mgmt.storage.v2019_06_01.models.BlobRestoreRange] + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns BlobRestoreStatus or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.storage.v2019_06_01.models.BlobRestoreStatus] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.storage.v2019_06_01.models.BlobRestoreStatus]] + :raises: :class:`CloudError` + """ + raw_result = self._restore_blob_ranges_initial( + resource_group_name=resource_group_name, + account_name=account_name, + time_to_restore=time_to_restore, + blob_ranges=blob_ranges, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('BlobRestoreStatus', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'location'}, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + restore_blob_ranges.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/restoreBlobRanges'} + + def revoke_user_delegation_keys( + self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): + """Revoke user delegation keys. + + :param resource_group_name: The name of the resource group within the + user's subscription. The name is case insensitive. + :type resource_group_name: str + :param account_name: The name of the storage account within the + specified resource group. Storage account names must be between 3 and + 24 characters in length and use numbers and lower-case letters only. + :type account_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: None or ClientRawResponse if raw=true + :rtype: None or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.revoke_user_delegation_keys.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + revoke_user_delegation_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/revokeUserDelegationKeys'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_usages_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_usages_operations.py new file mode 100644 index 00000000000..b2750e6ba46 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/operations/_usages_operations.py @@ -0,0 +1,110 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError + +from .. import models + + +class UsagesOperations(object): + """UsagesOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2019-06-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2019-06-01" + + self.config = config + + def list_by_location( + self, location, custom_headers=None, raw=False, **operation_config): + """Gets the current usage count and the limit for the resources of the + location under the subscription. + + :param location: The location of the Azure Storage resource. + :type location: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of Usage + :rtype: + ~azure.mgmt.storage.v2019_06_01.models.UsagePaged[~azure.mgmt.storage.v2019_06_01.models.Usage] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_by_location.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'location': self._serialize.url("location", location, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.UsagePaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list_by_location.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Storage/locations/{location}/usages'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/version.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/version.py new file mode 100644 index 00000000000..4174449873a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/v2019_06_01/version.py @@ -0,0 +1,13 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +VERSION = "2019-06-01" + diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/version.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/version.py new file mode 100644 index 00000000000..fb2d4315df5 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_mgmt_storage/version.py @@ -0,0 +1,8 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +VERSION = "11.1.0" diff --git a/src/account/azext_account/generated/action.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/__init__.py similarity index 84% rename from src/account/azext_account/generated/action.py rename to src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/__init__.py index 34913fb394d..66c5d46008f 100644 --- a/src/account/azext_account/generated/action.py +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/__init__.py @@ -2,3 +2,4 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/__init__.py new file mode 100644 index 00000000000..caa00401b96 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/__init__.py @@ -0,0 +1,225 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import os + +from typing import Union, Iterable, AnyStr, IO, Any, Dict # pylint: disable=unused-import +from ._version import VERSION +from ._blob_client import BlobClient +from ._container_client import ContainerClient +from ._blob_service_client import BlobServiceClient +from ._lease import BlobLeaseClient +from ._download import StorageStreamDownloader +from ._quick_query_helper import BlobQueryReader +from ._shared_access_signature import generate_account_sas, generate_container_sas, generate_blob_sas +from ._shared.policies import ExponentialRetry, LinearRetry +from ._shared.response_handlers import PartialBatchErrorException +from ._shared.models import( + LocationMode, + ResourceTypes, + AccountSasPermissions, + StorageErrorCode, + UserDelegationKey +) +from ._generated.models import ( + RehydratePriority +) +from ._models import ( + BlobType, + BlockState, + StandardBlobTier, + PremiumPageBlobTier, + SequenceNumberAction, + PublicAccess, + BlobAnalyticsLogging, + Metrics, + RetentionPolicy, + StaticWebsite, + CorsRule, + ContainerProperties, + BlobProperties, + FilteredBlob, + LeaseProperties, + ContentSettings, + CopyProperties, + BlobBlock, + PageRange, + AccessPolicy, + ContainerSasPermissions, + BlobSasPermissions, + CustomerProvidedEncryptionKey, + ContainerEncryptionScope, + BlobQueryError, + DelimitedJsonDialect, + DelimitedTextDialect, + ObjectReplicationPolicy, + ObjectReplicationRule +) +from ._list_blobs_helper import BlobPrefix + +__version__ = VERSION + + +def upload_blob_to_url( + blob_url, # type: str + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + credential=None, # type: Any + **kwargs): + # type: (...) -> Dict[str, Any] + """Upload data to a given URL + + The data will be uploaded as a block blob. + + :param str blob_url: + The full URI to the blob. This can also include a SAS token. + :param data: + The data to upload. This can be bytes, text, an iterable or a file-like object. + :type data: bytes or str or Iterable + :param credential: + The credentials with which to authenticate. This is optional if the + blob URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword bool overwrite: + Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob_to_url will overwrite any existing data. If set to False, the + operation will fail with a ResourceExistsError. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword dict(str,str) metadata: + Name-value pairs associated with the blob as metadata. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https as https (the default) will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword str encoding: + Encoding to use if text is supplied as input. Defaults to UTF-8. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: dict(str, Any) + """ + with BlobClient.from_blob_url(blob_url, credential=credential) as client: + return client.upload_blob(data=data, blob_type=BlobType.BlockBlob, **kwargs) + + +def _download_to_stream(client, handle, **kwargs): + """Download data to specified open file-handle.""" + stream = client.download_blob(**kwargs) + stream.readinto(handle) + + +def download_blob_from_url( + blob_url, # type: str + output, # type: str + credential=None, # type: Any + **kwargs): + # type: (...) -> None + """Download the contents of a blob to a local file or stream. + + :param str blob_url: + The full URI to the blob. This can also include a SAS token. + :param output: + Where the data should be downloaded to. This could be either a file path to write to, + or an open IO handle to write to. + :type output: str or writable stream. + :param credential: + The credentials with which to authenticate. This is optional if the + blob URL already has a SAS token or the blob is public. The value can be a SAS token string, + an account shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword bool overwrite: + Whether the local file should be overwritten if it already exists. The default value is + `False` - in which case a ValueError will be raised if the file already exists. If set to + `True`, an attempt will be made to write to the existing file. If a stream handle is passed + in, this value is ignored. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :keyword int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https as https (the default) will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :rtype: None + """ + overwrite = kwargs.pop('overwrite', False) + with BlobClient.from_blob_url(blob_url, credential=credential) as client: + if hasattr(output, 'write'): + _download_to_stream(client, output, **kwargs) + else: + if not overwrite and os.path.isfile(output): + raise ValueError("The file '{}' already exists.".format(output)) + with open(output, 'wb') as file_handle: + _download_to_stream(client, file_handle, **kwargs) + + +__all__ = [ + 'upload_blob_to_url', + 'download_blob_from_url', + 'BlobServiceClient', + 'ContainerClient', + 'BlobClient', + 'BlobType', + 'BlobLeaseClient', + 'StorageErrorCode', + 'UserDelegationKey', + 'ExponentialRetry', + 'LinearRetry', + 'LocationMode', + 'BlockState', + 'StandardBlobTier', + 'PremiumPageBlobTier', + 'SequenceNumberAction', + 'PublicAccess', + 'BlobAnalyticsLogging', + 'Metrics', + 'RetentionPolicy', + 'StaticWebsite', + 'CorsRule', + 'ContainerProperties', + 'BlobProperties', + 'BlobPrefix', + 'FilteredBlob', + 'LeaseProperties', + 'ContentSettings', + 'CopyProperties', + 'BlobBlock', + 'PageRange', + 'AccessPolicy', + 'ContainerSasPermissions', + 'BlobSasPermissions', + 'ResourceTypes', + 'AccountSasPermissions', + 'StorageStreamDownloader', + 'CustomerProvidedEncryptionKey', + 'RehydratePriority', + 'generate_account_sas', + 'generate_container_sas', + 'generate_blob_sas', + 'PartialBatchErrorException', + 'ContainerEncryptionScope', + 'BlobQueryError', + 'DelimitedJsonDialect', + 'DelimitedTextDialect', + 'BlobQueryReader', + 'ObjectReplicationPolicy', + 'ObjectReplicationRule' +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_blob_client.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_blob_client.py new file mode 100644 index 00000000000..b5366051d7a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_blob_client.py @@ -0,0 +1,3535 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines,no-self-use + +from io import BytesIO +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, IO, Iterable, AnyStr, Dict, List, Tuple, + TYPE_CHECKING +) +try: + from urllib.parse import urlparse, quote, unquote +except ImportError: + from urlparse import urlparse # type: ignore + from urllib2 import quote, unquote # type: ignore + +import six +from azure.core.tracing.decorator import distributed_trace + +from ._shared import encode_base64 +from ._shared.base_client import StorageAccountHostsMixin, parse_connection_str, parse_query +from ._shared.encryption import generate_blob_encryption_data +from ._shared.uploads import IterStreamer +from ._shared.request_handlers import ( + add_metadata_headers, get_length, read_length, + validate_and_format_range_headers) +from ._shared.response_handlers import return_response_headers, process_storage_error, return_headers_and_deserialized +from ._generated import AzureBlobStorage, VERSION +from ._generated.models import ( # pylint: disable=unused-import + DeleteSnapshotsOptionType, + BlobHTTPHeaders, + BlockLookupList, + AppendPositionAccessConditions, + SequenceNumberAccessConditions, + StorageErrorException, + QueryRequest, + CpkInfo) +from ._serialize import ( + get_modify_conditions, + get_source_conditions, + get_cpk_scope_info, + get_api_version, + serialize_blob_tags_header, + serialize_blob_tags, + serialize_query_format +) +from ._deserialize import get_page_ranges_result, deserialize_blob_properties, deserialize_blob_stream, parse_tags +from ._quick_query_helper import BlobQueryReader +from ._upload_helpers import ( + upload_block_blob, + upload_append_blob, + upload_page_blob) +from ._models import BlobType, BlobBlock, BlobProperties, BlobQueryError +from ._download import StorageStreamDownloader +from ._lease import BlobLeaseClient, get_access_conditions + +if TYPE_CHECKING: + from datetime import datetime + from ._generated.models import BlockList + from ._models import ( # pylint: disable=unused-import + ContentSettings, + PremiumPageBlobTier, + StandardBlobTier, + SequenceNumberAction + ) + +_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION = ( + 'The require_encryption flag is set, but encryption is not supported' + ' for this method.') + + +class BlobClient(StorageAccountHostsMixin): # pylint: disable=too-many-public-methods + """A client to interact with a specific blob, although that blob may not yet exist. + + :param str account_url: + The URI to the storage account. In order to create a client given the full URI to the blob, + use the :func:`from_blob_url` classmethod. + :param container_name: The container name for the blob. + :type container_name: str + :param blob_name: The name of the blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob_name: str + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`create_snapshot`. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START create_blob_client] + :end-before: [END create_blob_client] + :language: python + :dedent: 8 + :caption: Creating the BlobClient from a URL to a public blob (no auth needed). + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START create_blob_client_sas_url] + :end-before: [END create_blob_client_sas_url] + :language: python + :dedent: 8 + :caption: Creating the BlobClient from a SAS URL to a blob. + """ + def __init__( + self, account_url, # type: str + container_name, # type: str + blob_name, # type: str + snapshot=None, # type: Optional[Union[str, Dict[str, Any]]] + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + try: + if not account_url.lower().startswith('http'): + account_url = "https://" + account_url + except AttributeError: + raise ValueError("Account URL must be a string.") + parsed_url = urlparse(account_url.rstrip('/')) + + if not (container_name and blob_name): + raise ValueError("Please specify a container name and blob name.") + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(account_url)) + + path_snapshot, sas_token = parse_query(parsed_url.query) + + self.container_name = container_name + self.blob_name = blob_name + try: + self.snapshot = snapshot.snapshot # type: ignore + except AttributeError: + try: + self.snapshot = snapshot['snapshot'] # type: ignore + except TypeError: + self.snapshot = snapshot or path_snapshot + + self._query_str, credential = self._format_query_string(sas_token, credential, snapshot=self.snapshot) + super(BlobClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) + self._client = AzureBlobStorage(self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + + def _format_url(self, hostname): + container_name = self.container_name + if isinstance(container_name, six.text_type): + container_name = container_name.encode('UTF-8') + return "{}://{}/{}/{}{}".format( + self.scheme, + hostname, + quote(container_name), + quote(self.blob_name, safe='~/'), + self._query_str) + + @classmethod + def from_blob_url(cls, blob_url, credential=None, snapshot=None, **kwargs): + # type: (str, Optional[Any], Optional[Union[str, Dict[str, Any]]], Any) -> BlobClient + """Create BlobClient from a blob url. This doesn't support customized blob url with '/' in blob name. + + :param str blob_url: + The full endpoint URL to the Blob, including SAS token and snapshot if used. This could be + either the primary endpoint, or the secondary endpoint depending on the current `location_mode`. + :type blob_url: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`create_snapshot`. If specified, this will override + the snapshot in the url. + :returns: A Blob client. + :rtype: ~azure.storage.blob.BlobClient + """ + try: + if not blob_url.lower().startswith('http'): + blob_url = "https://" + blob_url + except AttributeError: + raise ValueError("Blob URL must be a string.") + parsed_url = urlparse(blob_url.rstrip('/')) + + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(blob_url)) + + account_path = "" + if ".core." in parsed_url.netloc: + # .core. is indicating non-customized url. Blob name with directory info can also be parsed. + path_blob = parsed_url.path.lstrip('/').split('/', 1) + elif "localhost" in parsed_url.netloc or "127.0.0.1" in parsed_url.netloc: + path_blob = parsed_url.path.lstrip('/').split('/', 2) + account_path += path_blob[0] + else: + # for customized url. blob name that has directory info cannot be parsed. + path_blob = parsed_url.path.lstrip('/').split('/') + if len(path_blob) > 2: + account_path = "/" + "/".join(path_blob[:-2]) + account_url = "{}://{}{}?{}".format( + parsed_url.scheme, + parsed_url.netloc.rstrip('/'), + account_path, + parsed_url.query) + container_name, blob_name = unquote(path_blob[-2]), unquote(path_blob[-1]) + if not container_name or not blob_name: + raise ValueError("Invalid URL. Provide a blob_url with a valid blob and container name.") + + path_snapshot, _ = parse_query(parsed_url.query) + if snapshot: + try: + path_snapshot = snapshot.snapshot # type: ignore + except AttributeError: + try: + path_snapshot = snapshot['snapshot'] # type: ignore + except TypeError: + path_snapshot = snapshot + + return cls( + account_url, container_name=container_name, blob_name=blob_name, + snapshot=path_snapshot, credential=credential, **kwargs + ) + + @classmethod + def from_connection_string( + cls, conn_str, # type: str + container_name, # type: str + blob_name, # type: str + snapshot=None, # type: Optional[str] + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): # type: (...) -> BlobClient + """Create BlobClient from a Connection String. + + :param str conn_str: + A connection string to an Azure Storage account. + :param container_name: The container name for the blob. + :type container_name: str + :param blob_name: The name of the blob with which to interact. + :type blob_name: str + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`create_snapshot`. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :returns: A Blob client. + :rtype: ~azure.storage.blob.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START auth_from_connection_string_blob] + :end-before: [END auth_from_connection_string_blob] + :language: python + :dedent: 8 + :caption: Creating the BlobClient from a connection string. + """ + account_url, secondary, credential = parse_connection_str(conn_str, credential, 'blob') + if 'secondary_hostname' not in kwargs: + kwargs['secondary_hostname'] = secondary + return cls( + account_url, container_name=container_name, blob_name=blob_name, + snapshot=snapshot, credential=credential, **kwargs + ) + + @distributed_trace + def get_account_information(self, **kwargs): + # type: (**Any) -> Dict[str, str] + """Gets information related to the storage account in which the blob resides. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + """ + try: + return self._client.blob.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _upload_blob_options( # pylint:disable=too-many-statements + self, data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + blob_type=BlobType.BlockBlob, # type: Union[str, BlobType] + length=None, # type: Optional[int] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption and not self.key_encryption_key: + raise ValueError("Encryption required but no key was provided.") + encryption_options = { + 'required': self.require_encryption, + 'key': self.key_encryption_key, + 'resolver': self.key_resolver_function, + } + if self.key_encryption_key is not None: + cek, iv, encryption_data = generate_blob_encryption_data(self.key_encryption_key) + encryption_options['cek'] = cek + encryption_options['vector'] = iv + encryption_options['data'] = encryption_data + + encoding = kwargs.pop('encoding', 'UTF-8') + if isinstance(data, six.text_type): + data = data.encode(encoding) # type: ignore + if length is None: + length = get_length(data) + if isinstance(data, bytes): + data = data[:length] + + if isinstance(data, bytes): + stream = BytesIO(data) + elif hasattr(data, 'read'): + stream = data + elif hasattr(data, '__iter__'): + stream = IterStreamer(data, encoding=encoding) + else: + raise TypeError("Unsupported data type: {}".format(type(data))) + + validate_content = kwargs.pop('validate_content', False) + content_settings = kwargs.pop('content_settings', None) + overwrite = kwargs.pop('overwrite', False) + max_concurrency = kwargs.pop('max_concurrency', 1) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + kwargs['cpk_info'] = cpk_info + + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + kwargs['lease_access_conditions'] = get_access_conditions(kwargs.pop('lease', None)) + kwargs['modified_access_conditions'] = get_modify_conditions(kwargs) + kwargs['cpk_scope_info'] = get_cpk_scope_info(kwargs) + if content_settings: + kwargs['blob_headers'] = BlobHTTPHeaders( + blob_cache_control=content_settings.cache_control, + blob_content_type=content_settings.content_type, + blob_content_md5=bytearray(content_settings.content_md5) if content_settings.content_md5 else None, + blob_content_encoding=content_settings.content_encoding, + blob_content_language=content_settings.content_language, + blob_content_disposition=content_settings.content_disposition + ) + kwargs['blob_tags_string'] = serialize_blob_tags_header(kwargs.pop('tags', None)) + kwargs['stream'] = stream + kwargs['length'] = length + kwargs['overwrite'] = overwrite + kwargs['headers'] = headers + kwargs['validate_content'] = validate_content + kwargs['blob_settings'] = self._config + kwargs['max_concurrency'] = max_concurrency + kwargs['encryption_options'] = encryption_options + if blob_type == BlobType.BlockBlob: + kwargs['client'] = self._client.block_blob + kwargs['data'] = data + elif blob_type == BlobType.PageBlob: + kwargs['client'] = self._client.page_blob + elif blob_type == BlobType.AppendBlob: + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + kwargs['client'] = self._client.append_blob + else: + raise ValueError("Unsupported BlobType: {}".format(blob_type)) + return kwargs + + @distributed_trace + def upload_blob( # pylint: disable=too-many-locals + self, data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + blob_type=BlobType.BlockBlob, # type: Union[str, BlobType] + length=None, # type: Optional[int] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Any + """Creates a new blob from a data source with automatic chunking. + + :param data: The blob data to upload. + :param ~azure.storage.blob.BlobType blob_type: The type of the blob. This can be + either BlockBlob, PageBlob or AppendBlob. The default value is BlockBlob. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword bool overwrite: Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob will overwrite the existing data. If set to False, the + operation will fail with ResourceExistsError. The exception to the above is with Append + blob types: if set to False and the data already exists, an error will not be raised + and the data will be appended to the existing blob. If set overwrite=True, then the existing + append blob will be deleted, and a new one created. Defaults to False. + :keyword ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. If specified, upload_blob only succeeds if the + blob's lease is active and matches this ID. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int max_concurrency: + Maximum number of parallel connections to use when the blob size exceeds + 64MB. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world.py + :start-after: [START upload_a_blob] + :end-before: [END upload_a_blob] + :language: python + :dedent: 12 + :caption: Upload a blob to the container. + """ + options = self._upload_blob_options( + data, + blob_type=blob_type, + length=length, + metadata=metadata, + **kwargs) + if blob_type == BlobType.BlockBlob: + return upload_block_blob(**options) + if blob_type == BlobType.PageBlob: + return upload_page_blob(**options) + return upload_append_blob(**options) + + def _download_blob_options(self, offset=None, length=None, **kwargs): + # type: (Optional[int], Optional[int], **Any) -> Dict[str, Any] + if self.require_encryption and not self.key_encryption_key: + raise ValueError("Encryption required but no key was provided.") + if length is not None and offset is None: + raise ValueError("Offset value must not be None if length is set.") + if length is not None: + length = offset + length - 1 # Service actually uses an end-range inclusive index + + validate_content = kwargs.pop('validate_content', False) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'clients': self._client, + 'config': self._config, + 'start_range': offset, + 'end_range': length, + 'version_id': kwargs.pop('version_id', None), + 'validate_content': validate_content, + 'encryption_options': { + 'required': self.require_encryption, + 'key': self.key_encryption_key, + 'resolver': self.key_resolver_function}, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_info': cpk_info, + 'cls': deserialize_blob_stream, + 'max_concurrency':kwargs.pop('max_concurrency', 1), + 'encoding': kwargs.pop('encoding', None), + 'timeout': kwargs.pop('timeout', None), + 'name': self.blob_name, + 'container': self.container_name} + options.update(kwargs) + return options + + @distributed_trace + def download_blob(self, offset=None, length=None, **kwargs): + # type: (Optional[int], Optional[int], **Any) -> StorageStreamDownloader + """Downloads a blob to the StorageStreamDownloader. The readall() method must + be used to read all the content or readinto() must be used to download the blob into + a stream. + + :param int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to download. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. If specified, download_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword str encoding: + Encoding to decode the downloaded bytes. Default is None, i.e. no decoding. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: A streaming object (StorageStreamDownloader) + :rtype: ~azure.storage.blob.StorageStreamDownloader + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world.py + :start-after: [START download_a_blob] + :end-before: [END download_a_blob] + :language: python + :dedent: 12 + :caption: Download a blob. + """ + options = self._download_blob_options( + offset=offset, + length=length, + **kwargs) + return StorageStreamDownloader(**options) + + def _quick_query_options(self, query_expression, + **kwargs): + # type: (str, **Any) -> Dict[str, Any] + delimiter = '\n' + input_format = kwargs.pop('blob_format', None) + if input_format: + try: + delimiter = input_format.lineterminator + except AttributeError: + delimiter = input_format.delimiter + output_format = kwargs.pop('output_format', None) + if output_format: + try: + delimiter = output_format.lineterminator + except AttributeError: + delimiter = output_format.delimiter + else: + output_format = input_format + query_request = QueryRequest( + expression=query_expression, + input_serialization=serialize_query_format(input_format), + output_serialization=serialize_query_format(output_format) + ) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo( + encryption_key=cpk.key_value, + encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm + ) + options = { + 'query_request': query_request, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_info': cpk_info, + 'snapshot': self.snapshot, + 'timeout': kwargs.pop('timeout', None), + 'cls': return_headers_and_deserialized, + } + options.update(kwargs) + return options, delimiter + + @distributed_trace + def query_blob(self, query_expression, **kwargs): + # type: (str, **Any) -> BlobQueryReader + """Enables users to select/project on blob/or blob snapshot data by providing simple query expressions. + This operations returns a BlobQueryReader, users need to use readall() or readinto() to get query data. + + :param str query_expression: + Required. a query statement. + :keyword Callable[Exception] on_error: + A function to be called on any processing errors returned by the service. + :keyword blob_format: + Optional. Defines the serialization of the data currently stored in the blob. The default is to + treat the blob data as CSV data formatted in the default dialect. This can be overridden with + a custom DelimitedTextDialect, or alternatively a DelimitedJsonDialect. + :paramtype blob_format: ~azure.storage.blob.DelimitedTextDialect or ~azure.storage.blob.DelimitedJsonDialect + :keyword output_format: + Optional. Defines the output serialization for the data stream. By default the data will be returned + as it is represented in the blob. By providing an output format, the blob data will be reformatted + according to that profile. This value can be a DelimitedTextDialect or a DelimitedJsonDialect. + :paramtype output_format: ~azure.storage.blob.DelimitedTextDialect or ~azure.storage.blob.DelimitedJsonDialect + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A streaming object (BlobQueryReader) + :rtype: ~azure.storage.blob.BlobQueryReader + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_query.py + :start-after: [START query] + :end-before: [END query] + :language: python + :dedent: 4 + :caption: select/project on blob/or blob snapshot data by providing simple query expressions. + """ + errors = kwargs.pop("on_error", None) + error_cls = kwargs.pop("error_cls", BlobQueryError) + encoding = kwargs.pop("encoding", None) + options, delimiter = self._quick_query_options(query_expression, **kwargs) + try: + headers, raw_response_body = self._client.blob.query(**options) + except StorageErrorException as error: + process_storage_error(error) + return BlobQueryReader( + name=self.blob_name, + container=self.container_name, + errors=errors, + record_delimiter=delimiter, + encoding=encoding, + headers=headers, + response=raw_response_body, + error_cls=error_cls) + + @staticmethod + def _generic_delete_blob_options(delete_snapshots=False, **kwargs): + # type: (bool, **Any) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if delete_snapshots: + delete_snapshots = DeleteSnapshotsOptionType(delete_snapshots) + options = { + 'timeout': kwargs.pop('timeout', None), + 'snapshot': kwargs.pop('snapshot', None), # this is added for delete_blobs + 'delete_snapshots': delete_snapshots or None, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions} + options.update(kwargs) + return options + + def _delete_blob_options(self, delete_snapshots=False, **kwargs): + # type: (bool, **Any) -> Dict[str, Any] + if self.snapshot and delete_snapshots: + raise ValueError("The delete_snapshots option cannot be used with a specific snapshot.") + options = self._generic_delete_blob_options(delete_snapshots, **kwargs) + options['snapshot'] = self.snapshot + options['version_id'] = kwargs.pop('version_id', None) + return options + + @distributed_trace + def delete_blob(self, delete_snapshots=False, **kwargs): + # type: (bool, **Any) -> None + """Marks the specified blob for deletion. + + The blob is later deleted during garbage collection. + Note that in order to delete a blob, you must delete all of its + snapshots. You can delete both at the same time with the delete_blob() + operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blob + and retains the blob for a specified number of days. + After the specified number of days, the blob's data is removed from the service during garbage collection. + Soft deleted blob is accessible through :func:`~ContainerClient.list_blobs()` specifying `include=['deleted']` + option. Soft-deleted blob can be restored using :func:`undelete` operation. + + :param str delete_snapshots: + Required if the blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to delete. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword lease: + Required if the blob has an active lease. If specified, delete_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world.py + :start-after: [START delete_blob] + :end-before: [END delete_blob] + :language: python + :dedent: 12 + :caption: Delete a blob. + """ + options = self._delete_blob_options(delete_snapshots=delete_snapshots, **kwargs) + try: + self._client.blob.delete(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def undelete_blob(self, **kwargs): + # type: (**Any) -> None + """Restores soft-deleted blobs or snapshots. + + Operation will only be successful if used within the specified number of days + set in the delete retention policy. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START undelete_blob] + :end-before: [END undelete_blob] + :language: python + :dedent: 8 + :caption: Undeleting a blob. + """ + try: + self._client.blob.undelete(timeout=kwargs.pop('timeout', None), **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def get_blob_properties(self, **kwargs): + # type: (**Any) -> BlobProperties + """Returns all user-defined metadata, standard HTTP properties, and + system properties for the blob. It does not return the content of the blob. + + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to get properties. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: BlobProperties + :rtype: ~azure.storage.blob.BlobProperties + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START get_blob_properties] + :end-before: [END get_blob_properties] + :language: python + :dedent: 8 + :caption: Getting the properties for a blob. + """ + # TODO: extract this out as _get_blob_properties_options + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + try: + blob_props = self._client.blob.get_properties( + timeout=kwargs.pop('timeout', None), + version_id=kwargs.pop('version_id', None), + snapshot=self.snapshot, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=deserialize_blob_properties, + cpk_info=cpk_info, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + blob_props.name = self.blob_name + blob_props.container = self.container_name + return blob_props # type: ignore + + def _set_http_headers_options(self, content_settings=None, **kwargs): + # type: (Optional[ContentSettings], **Any) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + blob_headers = None + if content_settings: + blob_headers = BlobHTTPHeaders( + blob_cache_control=content_settings.cache_control, + blob_content_type=content_settings.content_type, + blob_content_md5=bytearray(content_settings.content_md5) if content_settings.content_md5 else None, + blob_content_encoding=content_settings.content_encoding, + blob_content_language=content_settings.content_language, + blob_content_disposition=content_settings.content_disposition + ) + options = { + 'timeout': kwargs.pop('timeout', None), + 'blob_http_headers': blob_headers, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def set_http_headers(self, content_settings=None, **kwargs): + # type: (Optional[ContentSettings], **Any) -> None + """Sets system properties on the blob. + + If one property is set for the content_settings, all properties will be overridden. + + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: Dict[str, Any] + """ + options = self._set_http_headers_options(content_settings=content_settings, **kwargs) + try: + return self._client.blob.set_http_headers(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _set_blob_metadata_options(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Any] + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + options = { + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers, + 'headers': headers} + options.update(kwargs) + return options + + @distributed_trace + def set_blob_metadata(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Union[str, datetime]] + """Sets user-defined metadata for the blob as one or more name-value pairs. + + :param metadata: + Dict containing name and value pairs. Each call to this operation + replaces all existing metadata attached to the blob. To remove all + metadata from the blob, call this operation with no metadata headers. + :type metadata: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + """ + options = self._set_blob_metadata_options(metadata=metadata, **kwargs) + try: + return self._client.blob.set_metadata(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _create_page_blob_options( # type: ignore + self, size, # type: int + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + premium_page_blob_tier=None, # type: Optional[Union[str, PremiumPageBlobTier]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + blob_headers = None + if content_settings: + blob_headers = BlobHTTPHeaders( + blob_cache_control=content_settings.cache_control, + blob_content_type=content_settings.content_type, + blob_content_md5=bytearray(content_settings.content_md5) if content_settings.content_md5 else None, + blob_content_encoding=content_settings.content_encoding, + blob_content_language=content_settings.content_language, + blob_content_disposition=content_settings.content_disposition + ) + + sequence_number = kwargs.pop('sequence_number', None) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + if premium_page_blob_tier: + try: + headers['x-ms-access-tier'] = premium_page_blob_tier.value # type: ignore + except AttributeError: + headers['x-ms-access-tier'] = premium_page_blob_tier # type: ignore + + blob_tags_string = serialize_blob_tags_header(kwargs.pop('tags', None)) + + options = { + 'content_length': 0, + 'blob_content_length': size, + 'blob_sequence_number': sequence_number, + 'blob_http_headers': blob_headers, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'blob_tags_string': blob_tags_string, + 'cls': return_response_headers, + 'headers': headers} + options.update(kwargs) + return options + + @distributed_trace + def create_page_blob( # type: ignore + self, size, # type: int + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + premium_page_blob_tier=None, # type: Optional[Union[str, PremiumPageBlobTier]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """Creates a new Page Blob of the specified size. + + :param int size: + This specifies the maximum size for the page blob, up to 1 TB. + The page blob size must be aligned to a 512-byte boundary. + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :param ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword int sequence_number: + Only for Page blobs. The sequence number is a user-controlled value that you can use to + track requests. The value of the sequence number must be between 0 + and 2^63 - 1.The default value is 0. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict[str, Any] + """ + options = self._create_page_blob_options( + size, + content_settings=content_settings, + metadata=metadata, + premium_page_blob_tier=premium_page_blob_tier, + **kwargs) + try: + return self._client.page_blob.create(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _create_append_blob_options(self, content_settings=None, metadata=None, **kwargs): + # type: (Optional[ContentSettings], Optional[Dict[str, str]], **Any) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + blob_headers = None + if content_settings: + blob_headers = BlobHTTPHeaders( + blob_cache_control=content_settings.cache_control, + blob_content_type=content_settings.content_type, + blob_content_md5=bytearray(content_settings.content_md5) if content_settings.content_md5 else None, + blob_content_encoding=content_settings.content_encoding, + blob_content_language=content_settings.content_language, + blob_content_disposition=content_settings.content_disposition + ) + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + blob_tags_string = serialize_blob_tags_header(kwargs.pop('tags', None)) + + options = { + 'content_length': 0, + 'blob_http_headers': blob_headers, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'blob_tags_string': blob_tags_string, + 'cls': return_response_headers, + 'headers': headers} + options.update(kwargs) + return options + + @distributed_trace + def create_append_blob(self, content_settings=None, metadata=None, **kwargs): + # type: (Optional[ContentSettings], Optional[Dict[str, str]], **Any) -> Dict[str, Union[str, datetime]] + """Creates a new Append Blob. + + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict[str, Any] + """ + options = self._create_append_blob_options( + content_settings=content_settings, + metadata=metadata, + **kwargs) + try: + return self._client.append_blob.create(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _create_snapshot_options(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Any] + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers, + 'headers': headers} + options.update(kwargs) + return options + + @distributed_trace + def create_snapshot(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Union[str, datetime]] + """Creates a snapshot of the blob. + + A snapshot is a read-only version of a blob that's taken at a point in time. + It can be read, copied, or deleted, but not modified. Snapshots provide a way + to back up a blob as it appears at a moment in time. + + A snapshot of a blob has the same name as the base blob from which the snapshot + is taken, with a DateTime value appended to indicate the time at which the + snapshot was taken. + + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on destination blob with a matching value. + + .. versionadded:: 12.4.0 + + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Snapshot ID, Etag, and last modified). + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START create_blob_snapshot] + :end-before: [END create_blob_snapshot] + :language: python + :dedent: 8 + :caption: Create a snapshot of the blob. + """ + options = self._create_snapshot_options(metadata=metadata, **kwargs) + try: + return self._client.blob.create_snapshot(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _start_copy_from_url_options(self, source_url, metadata=None, incremental_copy=False, **kwargs): + # type: (str, Optional[Dict[str, str]], bool, **Any) -> Dict[str, Any] + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + if 'source_lease' in kwargs: + source_lease = kwargs.pop('source_lease') + try: + headers['x-ms-source-lease-id'] = source_lease.id # type: str + except AttributeError: + headers['x-ms-source-lease-id'] = source_lease + + tier = kwargs.pop('premium_page_blob_tier', None) or kwargs.pop('standard_blob_tier', None) + + if kwargs.get('requires_sync'): + headers['x-ms-requires-sync'] = str(kwargs.pop('requires_sync')) + + timeout = kwargs.pop('timeout', None) + dest_mod_conditions = get_modify_conditions(kwargs) + blob_tags_string = serialize_blob_tags_header(kwargs.pop('tags', None)) + + options = { + 'copy_source': source_url, + 'seal_blob': kwargs.pop('seal_destination_blob', None), + 'timeout': timeout, + 'modified_access_conditions': dest_mod_conditions, + 'blob_tags_string': blob_tags_string, + 'headers': headers, + 'cls': return_response_headers, + } + if not incremental_copy: + source_mod_conditions = get_source_conditions(kwargs) + dest_access_conditions = get_access_conditions(kwargs.pop('destination_lease', None)) + options['source_modified_access_conditions'] = source_mod_conditions + options['lease_access_conditions'] = dest_access_conditions + options['tier'] = tier.value if tier else None + options.update(kwargs) + return options + + @distributed_trace + def start_copy_from_url(self, source_url, metadata=None, incremental_copy=False, **kwargs): + # type: (str, Optional[Dict[str, str]], bool, **Any) -> Dict[str, Union[str, datetime]] + """Copies a blob asynchronously. + + This operation returns a copy operation + object that can be used to wait on the completion of the operation, + as well as check status or abort the copy operation. + The Blob service copies blobs on a best-effort basis. + + The source blob for a copy operation may be a block blob, an append blob, + or a page blob. If the destination blob already exists, it must be of the + same blob type as the source blob. Any existing destination blob will be + overwritten. The destination blob cannot be modified while a copy operation + is in progress. + + When copying from a page blob, the Blob service creates a destination page + blob of the source blob's length, initially containing all zeroes. Then + the source page ranges are enumerated, and non-empty ranges are copied. + + For a block blob or an append blob, the Blob service creates a committed + blob of zero length before returning from this operation. When copying + from a block blob, all committed blocks and their block IDs are copied. + Uncommitted blocks are not copied. At the end of the copy operation, the + destination blob will have the same committed block count as the source. + + When copying from an append blob, all committed blocks are copied. At the + end of the copy operation, the destination blob will have the same committed + block count as the source. + + For all blob types, you can call status() on the returned polling object + to check the status of the copy operation, or wait() to block until the + operation is complete. The final blob will be committed when the copy completes. + + :param str source_url: + A URL of up to 2 KB in length that specifies a file or blob. + The value should be URL-encoded as it would appear in a request URI. + If the source is in another account, the source must either be public + or must be authenticated via a shared access signature. If the source + is public, no authentication is required. + Examples: + https://myaccount.blob.core.windows.net/mycontainer/myblob + + https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot= + + https://otheraccount.blob.core.windows.net/mycontainer/myblob?sastoken + :param metadata: + Name-value pairs associated with the blob as metadata. If no name-value + pairs are specified, the operation will copy the metadata from the + source blob or file to the destination blob. If one or more name-value + pairs are specified, the destination blob is created with the specified + metadata, and metadata is not copied from the source blob or file. + :type metadata: dict(str, str) + :param bool incremental_copy: + Copies the snapshot of the source page blob to a destination page blob. + The snapshot is copied such that only the differential changes between + the previously copied snapshot are transferred to the destination. + The copied snapshots are complete copies of the original snapshot and + can be read or copied from as usual. Defaults to False. + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only if the source + blob has been modified since the specified date/time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only if the source blob + has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only + if the destination blob has been modified since the specified date/time. + If the destination blob has not been modified, the Blob service returns + status code 412 (Precondition Failed). + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only + if the destination blob has not been modified since the specified + date/time. If the destination blob has been modified, the Blob service + returns status code 412 (Precondition Failed). + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword destination_lease: + The lease ID specified for this header must match the lease ID of the + destination blob. If the request does not include the lease ID or it is not + valid, the operation fails with status code 412 (Precondition Failed). + :paramtype destination_lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword source_lease: + Specify this to perform the Copy Blob operation only if + the lease ID given matches the active lease ID of the source blob. + :paramtype source_lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword bool seal_destination_blob: + Seal the destination append blob. This operation is only for append blob. + + .. versionadded:: 12.4.0 + + :keyword bool requires_sync: + Enforces that the service will not return a response until the copy is complete. + :returns: A dictionary of copy properties (etag, last_modified, copy_id, copy_status). + :rtype: dict[str, str or ~datetime.datetime] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START copy_blob_from_url] + :end-before: [END copy_blob_from_url] + :language: python + :dedent: 12 + :caption: Copy a blob from a URL. + """ + options = self._start_copy_from_url_options( + source_url, + metadata=metadata, + incremental_copy=incremental_copy, + **kwargs) + try: + if incremental_copy: + return self._client.page_blob.copy_incremental(**options) + return self._client.blob.start_copy_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + def _abort_copy_options(self, copy_id, **kwargs): + # type: (Union[str, Dict[str, Any], BlobProperties], **Any) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + try: + copy_id = copy_id.copy.id + except AttributeError: + try: + copy_id = copy_id['copy_id'] + except TypeError: + pass + options = { + 'copy_id': copy_id, + 'lease_access_conditions': access_conditions, + 'timeout': kwargs.pop('timeout', None)} + options.update(kwargs) + return options + + @distributed_trace + def abort_copy(self, copy_id, **kwargs): + # type: (Union[str, Dict[str, Any], BlobProperties], **Any) -> None + """Abort an ongoing copy operation. + + This will leave a destination blob with zero length and full metadata. + This will raise an error if the copy operation has already ended. + + :param copy_id: + The copy operation to abort. This can be either an ID string, or an + instance of BlobProperties. + :type copy_id: str or ~azure.storage.blob.BlobProperties + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START abort_copy_blob_from_url] + :end-before: [END abort_copy_blob_from_url] + :language: python + :dedent: 12 + :caption: Abort copying a blob from URL. + """ + options = self._abort_copy_options(copy_id, **kwargs) + try: + self._client.blob.abort_copy_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def acquire_lease(self, lease_duration=-1, lease_id=None, **kwargs): + # type: (int, Optional[str], **Any) -> BlobLeaseClient + """Requests a new lease. + + If the blob does not have an active lease, the Blob + Service creates a lease on the blob and returns a new lease. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :param str lease_id: + Proposed lease ID, in a GUID string format. The Blob Service + returns 400 (Invalid request) if the proposed lease ID is not + in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A BlobLeaseClient object. + :rtype: ~azure.storage.blob.BlobLeaseClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START acquire_lease_on_blob] + :end-before: [END acquire_lease_on_blob] + :language: python + :dedent: 8 + :caption: Acquiring a lease on a blob. + """ + lease = BlobLeaseClient(self, lease_id=lease_id) # type: ignore + lease.acquire(lease_duration=lease_duration, **kwargs) + return lease + + @distributed_trace + def set_standard_blob_tier(self, standard_blob_tier, **kwargs): + # type: (Union[str, StandardBlobTier], Any) -> None + """This operation sets the tier on a block blob. + + A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param standard_blob_tier: + Indicates the tier to be set on the blob. Options include 'Hot', 'Cool', + 'Archive'. The hot tier is optimized for storing data that is accessed + frequently. The cool storage tier is optimized for storing data that + is infrequently accessed and stored for at least a month. The archive + tier is optimized for storing data that is rarely accessed and stored + for at least six months with flexible latency requirements. + :type standard_blob_tier: str or ~azure.storage.blob.StandardBlobTier + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to download. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :rtype: None + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if standard_blob_tier is None: + raise ValueError("A StandardBlobTier must be specified") + if self.snapshot and kwargs.get('version_id'): + raise ValueError("Snapshot and version_id cannot be set at the same time") + try: + self._client.blob.set_tier( + tier=standard_blob_tier, + snapshot=self.snapshot, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + lease_access_conditions=access_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + def _stage_block_options( + self, block_id, # type: str + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + block_id = encode_base64(str(block_id)) + if isinstance(data, six.text_type): + data = data.encode(kwargs.pop('encoding', 'UTF-8')) # type: ignore + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + if length is None: + length = get_length(data) + if length is None: + length, data = read_length(data) + if isinstance(data, bytes): + data = data[:length] + + validate_content = kwargs.pop('validate_content', False) + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'block_id': block_id, + 'content_length': length, + 'body': data, + 'transactional_content_md5': None, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'validate_content': validate_content, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers, + } + options.update(kwargs) + return options + + @distributed_trace + def stage_block( + self, block_id, # type: str + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Any] + """Creates a new block to be committed as part of a blob. + + :param str block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the block_id parameter must be the same size for each block. + :param data: The blob data. + :param int length: Size of the block. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword str encoding: + Defaults to UTF-8. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob property dict. + :rtype: dict[str, Any] + """ + options = self._stage_block_options( + block_id, + data, + length=length, + **kwargs) + try: + return self._client.block_blob.stage_block(**options) + except StorageErrorException as error: + process_storage_error(error) + + def _stage_block_from_url_options( + self, block_id, # type: str + source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + source_content_md5=None, # type: Optional[Union[bytes, bytearray]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if source_length is not None and source_offset is None: + raise ValueError("Source offset value must not be None if length is set.") + if source_length is not None: + source_length = source_offset + source_length - 1 + block_id = encode_base64(str(block_id)) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + range_header = None + if source_offset is not None: + range_header, _ = validate_and_format_range_headers(source_offset, source_length) + + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + options = { + 'block_id': block_id, + 'content_length': 0, + 'source_url': source_url, + 'source_range': range_header, + 'source_content_md5': bytearray(source_content_md5) if source_content_md5 else None, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers, + } + options.update(kwargs) + return options + + @distributed_trace + def stage_block_from_url( + self, block_id, # type: str + source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + source_content_md5=None, # type: Optional[Union[bytes, bytearray]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + """Creates a new block to be committed as part of a blob where + the contents are read from a URL. + + :param str block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the block_id parameter must be the same size for each block. + :param str source_url: The URL. + :param int source_offset: + Start of byte range to use for the block. + Must be set if source length is provided. + :param int source_length: The size of the block in bytes. + :param bytearray source_content_md5: + Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob property dict. + :rtype: dict[str, Any] + """ + options = self._stage_block_from_url_options( + block_id, + source_url, + source_offset=source_offset, + source_length=source_length, + source_content_md5=source_content_md5, + **kwargs) + try: + return self._client.block_blob.stage_block_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + def _get_block_list_result(self, blocks): + # type: (BlockList) -> Tuple[List[BlobBlock], List[BlobBlock]] + committed = [] # type: List + uncommitted = [] # type: List + if blocks.committed_blocks: + committed = [BlobBlock._from_generated(b) for b in blocks.committed_blocks] # pylint: disable=protected-access + if blocks.uncommitted_blocks: + uncommitted = [BlobBlock._from_generated(b) for b in blocks.uncommitted_blocks] # pylint: disable=protected-access + return committed, uncommitted + + @distributed_trace + def get_block_list(self, block_list_type="committed", **kwargs): + # type: (Optional[str], **Any) -> Tuple[List[BlobBlock], List[BlobBlock]] + """The Get Block List operation retrieves the list of blocks that have + been uploaded as part of a block blob. + + :param str block_list_type: + Specifies whether to return the list of committed + blocks, the list of uncommitted blocks, or both lists together. + Possible values include: 'committed', 'uncommitted', 'all' + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on destination blob with a matching value. + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A tuple of two lists - committed and uncommitted blocks + :rtype: tuple(list(~azure.storage.blob.BlobBlock), list(~azure.storage.blob.BlobBlock)) + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + try: + blocks = self._client.block_blob.get_block_list( + list_type=block_list_type, + snapshot=self.snapshot, + timeout=kwargs.pop('timeout', None), + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return self._get_block_list_result(blocks) + + def _commit_block_list_options( # type: ignore + self, block_list, # type: List[BlobBlock] + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + block_lookup = BlockLookupList(committed=[], uncommitted=[], latest=[]) + for block in block_list: + try: + if block.state.value == 'committed': + block_lookup.committed.append(encode_base64(str(block.id))) + elif block.state.value == 'uncommitted': + block_lookup.uncommitted.append(encode_base64(str(block.id))) + else: + block_lookup.latest.append(encode_base64(str(block.id))) + except AttributeError: + block_lookup.latest.append(encode_base64(str(block))) + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + blob_headers = None + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if content_settings: + blob_headers = BlobHTTPHeaders( + blob_cache_control=content_settings.cache_control, + blob_content_type=content_settings.content_type, + blob_content_md5=bytearray(content_settings.content_md5) if content_settings.content_md5 else None, + blob_content_encoding=content_settings.content_encoding, + blob_content_language=content_settings.content_language, + blob_content_disposition=content_settings.content_disposition + ) + + validate_content = kwargs.pop('validate_content', False) + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + tier = kwargs.pop('standard_blob_tier', None) + blob_tags_string = serialize_blob_tags_header(kwargs.pop('tags', None)) + + options = { + 'blocks': block_lookup, + 'blob_http_headers': blob_headers, + 'lease_access_conditions': access_conditions, + 'timeout': kwargs.pop('timeout', None), + 'modified_access_conditions': mod_conditions, + 'cls': return_response_headers, + 'validate_content': validate_content, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'tier': tier.value if tier else None, + 'blob_tags_string': blob_tags_string, + 'headers': headers + } + options.update(kwargs) + return options + + @distributed_trace + def commit_block_list( # type: ignore + self, block_list, # type: List[BlobBlock] + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """The Commit Block List operation writes a blob by specifying the list of + block IDs that make up the blob. + + :param list block_list: + List of Blockblobs. + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict[str, str] + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword bool validate_content: + If true, calculates an MD5 hash of the page content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on destination blob with a matching value. + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._commit_block_list_options( + block_list, + content_settings=content_settings, + metadata=metadata, + **kwargs) + try: + return self._client.block_blob.commit_block_list(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def set_premium_page_blob_tier(self, premium_page_blob_tier, **kwargs): + # type: (Union[str, PremiumPageBlobTier], **Any) -> None + """Sets the page blob tiers on the blob. This API is only supported for page blobs on premium accounts. + + :param premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :type premium_page_blob_tier: ~azure.storage.blob.PremiumPageBlobTier + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :rtype: None + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if premium_page_blob_tier is None: + raise ValueError("A PremiumPageBlobTier must be specified") + try: + self._client.blob.set_tier( + tier=premium_page_blob_tier, + timeout=kwargs.pop('timeout', None), + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + def _set_blob_tags_options(self, tags=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Any] + tags = serialize_blob_tags(tags) + mod_conditions = get_modify_conditions(kwargs) + + options = { + 'tags': tags, + 'modified_access_conditions': mod_conditions, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def set_blob_tags(self, tags=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Any] + """The Set Tags operation enables users to set tags on a blob or specific blob version, but not snapshot. + Each call to this operation replaces all existing tags attached to the blob. To remove all + tags from the blob, call this operation with no tags set. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :param tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + :type tags: dict(str, str) + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to add tags to. + :keyword bool validate_content: + If true, calculates an MD5 hash of the tags content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on destination blob with a matching value. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: Dict[str, Any] + """ + options = self._set_blob_tags_options(tags=tags, **kwargs) + try: + return self._client.blob.set_tags(**options) + except StorageErrorException as error: + process_storage_error(error) + + def _get_blob_tags_options(self, **kwargs): + # type: (**Any) -> Dict[str, str] + mod_conditions = get_modify_conditions(kwargs) + + options = { + 'version_id': kwargs.pop('version_id', None), + 'snapshot': self.snapshot, + 'modified_access_conditions': mod_conditions, + 'timeout': kwargs.pop('timeout', None), + 'cls': return_headers_and_deserialized} + return options + + @distributed_trace + def get_blob_tags(self, **kwargs): + # type: (**Any) -> Dict[str, str] + """The Get Tags operation enables users to get tags on a blob or specific blob version, or snapshot. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to add tags to. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on destination blob with a matching value. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Key value pairs of blob tags. + :rtype: Dict[str, str] + """ + options = self._get_blob_tags_options(**kwargs) + try: + _, tags = self._client.blob.get_tags(**options) + return parse_tags(tags) # pylint: disable=protected-access + except StorageErrorException as error: + process_storage_error(error) + + def _get_page_ranges_options( # type: ignore + self, offset=None, # type: Optional[int] + length=None, # type: Optional[int] + previous_snapshot_diff=None, # type: Optional[Union[str, Dict[str, Any]]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if length is not None and offset is None: + raise ValueError("Offset value must not be None if length is set.") + if length is not None: + length = offset + length - 1 # Reformat to an inclusive range index + page_range, _ = validate_and_format_range_headers( + offset, length, start_range_required=False, end_range_required=False, align_to_page=True + ) + options = { + 'snapshot': self.snapshot, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'timeout': kwargs.pop('timeout', None), + 'range': page_range} + if previous_snapshot_diff: + try: + options['prevsnapshot'] = previous_snapshot_diff.snapshot # type: ignore + except AttributeError: + try: + options['prevsnapshot'] = previous_snapshot_diff['snapshot'] # type: ignore + except TypeError: + options['prevsnapshot'] = previous_snapshot_diff + options.update(kwargs) + return options + + @distributed_trace + def get_page_ranges( # type: ignore + self, offset=None, # type: Optional[int] + length=None, # type: Optional[int] + previous_snapshot_diff=None, # type: Optional[Union[str, Dict[str, Any]]] + **kwargs + ): + # type: (...) -> Tuple[List[Dict[str, int]], List[Dict[str, int]]] + """Returns the list of valid page ranges for a Page Blob or snapshot + of a page blob. + + :param int offset: + Start of byte range to use for getting valid page ranges. + If no length is given, all bytes after the offset will be searched. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for getting valid page ranges. + If length is given, offset must be provided. + This range will return valid page ranges from the offset start up to + the specified length. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param str previous_snapshot_diff: + The snapshot diff parameter that contains an opaque DateTime value that + specifies a previous blob snapshot to be compared + against a more recent snapshot or the current blob. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: + A tuple of two lists of page ranges as dictionaries with 'start' and 'end' keys. + The first element are filled page ranges, the 2nd element is cleared page ranges. + :rtype: tuple(list(dict(str, str), list(dict(str, str)) + """ + options = self._get_page_ranges_options( + offset=offset, + length=length, + previous_snapshot_diff=previous_snapshot_diff, + **kwargs) + try: + if previous_snapshot_diff: + ranges = self._client.page_blob.get_page_ranges_diff(**options) + else: + ranges = self._client.page_blob.get_page_ranges(**options) + except StorageErrorException as error: + process_storage_error(error) + return get_page_ranges_result(ranges) + + @distributed_trace + def get_page_range_diff_for_managed_disk( + self, previous_snapshot_url, # type: str + offset=None, # type: Optional[int] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Tuple[List[Dict[str, int]], List[Dict[str, int]]] + """Returns the list of valid page ranges for a managed disk or snapshot. + + .. note:: + This operation is only available for managed disk accounts. + + .. versionadded:: 12.2.0 + This operation was introduced in API version '2019-07-07'. + + :param previous_snapshot_url: + Specifies the URL of a previous snapshot of the managed disk. + The response will only contain pages that were changed between the target blob and + its previous snapshot. + :param int offset: + Start of byte range to use for getting valid page ranges. + If no length is given, all bytes after the offset will be searched. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for getting valid page ranges. + If length is given, offset must be provided. + This range will return valid page ranges from the offset start up to + the specified length. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: + A tuple of two lists of page ranges as dictionaries with 'start' and 'end' keys. + The first element are filled page ranges, the 2nd element is cleared page ranges. + :rtype: tuple(list(dict(str, str), list(dict(str, str)) + """ + options = self._get_page_ranges_options( + offset=offset, + length=length, + prev_snapshot_url=previous_snapshot_url, + **kwargs) + try: + ranges = self._client.page_blob.get_page_ranges_diff(**options) + except StorageErrorException as error: + process_storage_error(error) + return get_page_ranges_result(ranges) + + def _set_sequence_number_options(self, sequence_number_action, sequence_number=None, **kwargs): + # type: (Union[str, SequenceNumberAction], Optional[str], **Any) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if sequence_number_action is None: + raise ValueError("A sequence number action must be specified") + options = { + 'sequence_number_action': sequence_number_action, + 'timeout': kwargs.pop('timeout', None), + 'blob_sequence_number': sequence_number, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def set_sequence_number(self, sequence_number_action, sequence_number=None, **kwargs): + # type: (Union[str, SequenceNumberAction], Optional[str], **Any) -> Dict[str, Union[str, datetime]] + """Sets the blob sequence number. + + :param str sequence_number_action: + This property indicates how the service should modify the blob's sequence + number. See :class:`~azure.storage.blob.SequenceNumberAction` for more information. + :param str sequence_number: + This property sets the blob's sequence number. The sequence number is a + user-controlled property that you can use to track requests and manage + concurrency issues. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._set_sequence_number_options( + sequence_number_action, sequence_number=sequence_number, **kwargs) + try: + return self._client.page_blob.update_sequence_number(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _resize_blob_options(self, size, **kwargs): + # type: (int, **Any) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if size is None: + raise ValueError("A content length must be specified for a Page Blob.") + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + options = { + 'blob_content_length': size, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_info': cpk_info, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def resize_blob(self, size, **kwargs): + # type: (int, **Any) -> Dict[str, Union[str, datetime]] + """Resizes a page blob to the specified size. + + If the specified value is less than the current size of the blob, + then all pages above the specified value are cleared. + + :param int size: + Size used to resize blob. Maximum size for a page blob is up to 1 TB. + The page blob size must be aligned to a 512-byte boundary. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._resize_blob_options(size, **kwargs) + try: + return self._client.page_blob.resize(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _upload_page_options( # type: ignore + self, page, # type: bytes + offset, # type: int + length, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Any] + if isinstance(page, six.text_type): + page = page.encode(kwargs.pop('encoding', 'UTF-8')) + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + + if offset is None or offset % 512 != 0: + raise ValueError("offset must be an integer that aligns with 512 page size") + if length is None or length % 512 != 0: + raise ValueError("length must be an integer that aligns with 512 page size") + end_range = offset + length - 1 # Reformat to an inclusive range index + content_range = 'bytes={0}-{1}'.format(offset, end_range) # type: ignore + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + seq_conditions = SequenceNumberAccessConditions( + if_sequence_number_less_than_or_equal_to=kwargs.pop('if_sequence_number_lte', None), + if_sequence_number_less_than=kwargs.pop('if_sequence_number_lt', None), + if_sequence_number_equal_to=kwargs.pop('if_sequence_number_eq', None) + ) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + validate_content = kwargs.pop('validate_content', False) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + options = { + 'body': page[:length], + 'content_length': length, + 'transactional_content_md5': None, + 'timeout': kwargs.pop('timeout', None), + 'range': content_range, + 'lease_access_conditions': access_conditions, + 'sequence_number_access_conditions': seq_conditions, + 'modified_access_conditions': mod_conditions, + 'validate_content': validate_content, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def upload_page( # type: ignore + self, page, # type: bytes + offset, # type: int + length, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """The Upload Pages operation writes a range of pages to a page blob. + + :param bytes page: + Content of the page. + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword bool validate_content: + If true, calculates an MD5 hash of the page content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._upload_page_options( + page=page, + offset=offset, + length=length, + **kwargs) + try: + return self._client.page_blob.upload_pages(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _upload_pages_from_url_options( # type: ignore + self, source_url, # type: str + offset, # type: int + length, # type: int + source_offset, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + + # TODO: extract the code to a method format_range + if offset is None or offset % 512 != 0: + raise ValueError("offset must be an integer that aligns with 512 page size") + if length is None or length % 512 != 0: + raise ValueError("length must be an integer that aligns with 512 page size") + if source_offset is None or offset % 512 != 0: + raise ValueError("source_offset must be an integer that aligns with 512 page size") + + # Format range + end_range = offset + length - 1 + destination_range = 'bytes={0}-{1}'.format(offset, end_range) + source_range = 'bytes={0}-{1}'.format(source_offset, source_offset + length - 1) # should subtract 1 here? + + seq_conditions = SequenceNumberAccessConditions( + if_sequence_number_less_than_or_equal_to=kwargs.pop('if_sequence_number_lte', None), + if_sequence_number_less_than=kwargs.pop('if_sequence_number_lt', None), + if_sequence_number_equal_to=kwargs.pop('if_sequence_number_eq', None) + ) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + source_mod_conditions = get_source_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + source_content_md5 = kwargs.pop('source_content_md5', None) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'source_url': source_url, + 'content_length': 0, + 'source_range': source_range, + 'range': destination_range, + 'source_content_md5': bytearray(source_content_md5) if source_content_md5 else None, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'sequence_number_access_conditions': seq_conditions, + 'modified_access_conditions': mod_conditions, + 'source_modified_access_conditions': source_mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def upload_pages_from_url(self, source_url, # type: str + offset, # type: int + length, # type: int + source_offset, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Any] + """ + The Upload Pages operation writes a range of pages to a page blob where + the contents are read from a URL. + + :param str source_url: + The URL of the source data. It can point to any Azure Blob or File, that is either public or has a + shared access signature attached. + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int source_offset: + This indicates the start of the range of bytes(inclusive) that has to be taken from the copy source. + The service will read the same number of bytes as the destination range (length-offset). + :keyword bytes source_content_md5: + If given, the service will calculate the MD5 hash of the block content and compare against this value. + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the source resource has been modified since the specified time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the source resource has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + """ + options = self._upload_pages_from_url_options( + source_url=source_url, + offset=offset, + length=length, + source_offset=source_offset, + **kwargs + ) + try: + return self._client.page_blob.upload_pages_from_url(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _clear_page_options(self, offset, length, **kwargs): + # type: (int, int, **Any) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + seq_conditions = SequenceNumberAccessConditions( + if_sequence_number_less_than_or_equal_to=kwargs.pop('if_sequence_number_lte', None), + if_sequence_number_less_than=kwargs.pop('if_sequence_number_lt', None), + if_sequence_number_equal_to=kwargs.pop('if_sequence_number_eq', None) + ) + mod_conditions = get_modify_conditions(kwargs) + if offset is None or offset % 512 != 0: + raise ValueError("offset must be an integer that aligns with 512 page size") + if length is None or length % 512 != 0: + raise ValueError("length must be an integer that aligns with 512 page size") + end_range = length + offset - 1 # Reformat to an inclusive range index + content_range = 'bytes={0}-{1}'.format(offset, end_range) + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'content_length': 0, + 'timeout': kwargs.pop('timeout', None), + 'range': content_range, + 'lease_access_conditions': access_conditions, + 'sequence_number_access_conditions': seq_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_info': cpk_info, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def clear_page(self, offset, length, **kwargs): + # type: (int, int, **Any) -> Dict[str, Union[str, datetime]] + """Clears a range of pages. + + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._clear_page_options(offset, length, **kwargs) + try: + return self._client.page_blob.clear_pages(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _append_block_options( # type: ignore + self, data, # type: Union[AnyStr, Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + + if isinstance(data, six.text_type): + data = data.encode(kwargs.pop('encoding', 'UTF-8')) # type: ignore + if length is None: + length = get_length(data) + if length is None: + length, data = read_length(data) + if length == 0: + return {} + if isinstance(data, bytes): + data = data[:length] + + appendpos_condition = kwargs.pop('appendpos_condition', None) + maxsize_condition = kwargs.pop('maxsize_condition', None) + validate_content = kwargs.pop('validate_content', False) + append_conditions = None + if maxsize_condition or appendpos_condition is not None: + append_conditions = AppendPositionAccessConditions( + max_size=maxsize_condition, + append_position=appendpos_condition + ) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + options = { + 'body': data, + 'content_length': length, + 'timeout': kwargs.pop('timeout', None), + 'transactional_content_md5': None, + 'lease_access_conditions': access_conditions, + 'append_position_access_conditions': append_conditions, + 'modified_access_conditions': mod_conditions, + 'validate_content': validate_content, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def append_block( # type: ignore + self, data, # type: Union[AnyStr, Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """Commits a new block of data to the end of the existing append blob. + + :param data: + Content of the block. This can be bytes, text, an iterable or a file-like object. + :type data: bytes or str or Iterable + :param int length: + Size of the block in bytes. + :keyword bool validate_content: + If true, calculates an MD5 hash of the block content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag, last modified, append offset, committed block count). + :rtype: dict(str, Any) + """ + options = self._append_block_options( + data, + length=length, + **kwargs + ) + try: + return self._client.append_blob.append_block(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _append_block_from_url_options( # type: ignore + self, copy_source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + + # If end range is provided, start range must be provided + if source_length is not None and source_offset is None: + raise ValueError("source_offset should also be specified if source_length is specified") + # Format based on whether length is present + source_range = None + if source_length is not None: + end_range = source_offset + source_length - 1 + source_range = 'bytes={0}-{1}'.format(source_offset, end_range) + elif source_offset is not None: + source_range = "bytes={0}-".format(source_offset) + + appendpos_condition = kwargs.pop('appendpos_condition', None) + maxsize_condition = kwargs.pop('maxsize_condition', None) + source_content_md5 = kwargs.pop('source_content_md5', None) + append_conditions = None + if maxsize_condition or appendpos_condition is not None: + append_conditions = AppendPositionAccessConditions( + max_size=maxsize_condition, + append_position=appendpos_condition + ) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + source_mod_conditions = get_source_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'source_url': copy_source_url, + 'content_length': 0, + 'source_range': source_range, + 'source_content_md5': source_content_md5, + 'transactional_content_md5': None, + 'lease_access_conditions': access_conditions, + 'append_position_access_conditions': append_conditions, + 'modified_access_conditions': mod_conditions, + 'source_modified_access_conditions': source_mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers, + 'timeout': kwargs.pop('timeout', None)} + options.update(kwargs) + return options + + @distributed_trace + def append_block_from_url(self, copy_source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + **kwargs): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """ + Creates a new block to be committed as part of a blob, where the contents are read from a source url. + + :param str copy_source_url: + The URL of the source data. It can point to any Azure Blob or File, that is either public or has a + shared access signature attached. + :param int source_offset: + This indicates the start of the range of bytes (inclusive) that has to be taken from the copy source. + :param int source_length: + This indicates the end of the range of bytes that has to be taken from the copy source. + :keyword bytearray source_content_md5: + If given, the service will calculate the MD5 hash of the block content and compare against this value. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the + AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the source resource has been modified since the specified time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the source resource has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + """ + options = self._append_block_from_url_options( + copy_source_url, + source_offset=source_offset, + source_length=source_length, + **kwargs + ) + try: + return self._client.append_blob.append_block_from_url(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _seal_append_blob_options(self, **kwargs): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + + appendpos_condition = kwargs.pop('appendpos_condition', None) + append_conditions = None + if appendpos_condition is not None: + append_conditions = AppendPositionAccessConditions( + append_position=appendpos_condition + ) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + + options = { + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'append_position_access_conditions': append_conditions, + 'modified_access_conditions': mod_conditions, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def seal_append_blob(self, **kwargs): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """The Seal operation seals the Append Blob to make it read-only. + + .. versionadded:: 12.4.0 + + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag, last modified, append offset, committed block count). + :rtype: dict(str, Any) + """ + options = self._seal_append_blob_options(**kwargs) + try: + return self._client.append_blob.seal(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_blob_service_client.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_blob_service_client.py new file mode 100644 index 00000000000..bde84756559 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_blob_service_client.py @@ -0,0 +1,677 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import functools +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, Dict, List, + TYPE_CHECKING +) + +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse # type: ignore + +from azure.core.paging import ItemPaged +from azure.core.pipeline import Pipeline +from azure.core.tracing.decorator import distributed_trace + +from ._shared.models import LocationMode +from ._shared.base_client import StorageAccountHostsMixin, TransportWrapper, parse_connection_str, parse_query +from ._shared.parser import _to_utc_datetime +from ._shared.response_handlers import return_response_headers, process_storage_error, \ + parse_to_internal_user_delegation_key +from ._generated import AzureBlobStorage, VERSION +from ._generated.models import StorageErrorException, StorageServiceProperties, KeyInfo +from ._container_client import ContainerClient +from ._blob_client import BlobClient +from ._models import ContainerPropertiesPaged, FilteredBlobPaged +from ._serialize import get_api_version +from ._deserialize import service_stats_deserialize, service_properties_deserialize + +if TYPE_CHECKING: + from datetime import datetime + from azure.core.pipeline.transport import HttpTransport + from azure.core.pipeline.policies import HTTPPolicy + from ._shared.models import UserDelegationKey + from ._lease import BlobLeaseClient + from ._models import ( + ContainerProperties, + BlobProperties, + PublicAccess, + BlobAnalyticsLogging, + Metrics, + CorsRule, + RetentionPolicy, + StaticWebsite, + ) + + +class BlobServiceClient(StorageAccountHostsMixin): + """A client to interact with the Blob Service at the account level. + + This client provides operations to retrieve and configure the account properties + as well as list, create and delete containers within the account. + For operations relating to a specific container or blob, clients for those entities + can also be retrieved using the `get_client` functions. + + :param str account_url: + The URL to the blob storage account. Any other entities included + in the URL path (e.g. container or blob) will be discarded. This URL can be optionally + authenticated with a SAS token. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START create_blob_service_client] + :end-before: [END create_blob_service_client] + :language: python + :dedent: 8 + :caption: Creating the BlobServiceClient with account url and credential. + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START create_blob_service_client_oauth] + :end-before: [END create_blob_service_client_oauth] + :language: python + :dedent: 8 + :caption: Creating the BlobServiceClient with Azure Identity credentials. + """ + + def __init__( + self, account_url, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + try: + if not account_url.lower().startswith('http'): + account_url = "https://" + account_url + except AttributeError: + raise ValueError("Account URL must be a string.") + parsed_url = urlparse(account_url.rstrip('/')) + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(account_url)) + + _, sas_token = parse_query(parsed_url.query) + self._query_str, credential = self._format_query_string(sas_token, credential) + super(BlobServiceClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) + self._client = AzureBlobStorage(self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + + def _format_url(self, hostname): + """Format the endpoint URL according to the current location + mode hostname. + """ + return "{}://{}/{}".format(self.scheme, hostname, self._query_str) + + @classmethod + def from_connection_string( + cls, conn_str, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): # type: (...) -> BlobServiceClient + """Create BlobServiceClient from a Connection String. + + :param str conn_str: + A connection string to an Azure Storage account. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :returns: A Blob service client. + :rtype: ~azure.storage.blob.BlobServiceClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START auth_from_connection_string] + :end-before: [END auth_from_connection_string] + :language: python + :dedent: 8 + :caption: Creating the BlobServiceClient from a connection string. + """ + account_url, secondary, credential = parse_connection_str(conn_str, credential, 'blob') + if 'secondary_hostname' not in kwargs: + kwargs['secondary_hostname'] = secondary + return cls(account_url, credential=credential, **kwargs) + + @distributed_trace + def get_user_delegation_key(self, key_start_time, # type: datetime + key_expiry_time, # type: datetime + **kwargs # type: Any + ): + # type: (...) -> UserDelegationKey + """ + Obtain a user delegation key for the purpose of signing SAS tokens. + A token credential must be present on the service object for this request to succeed. + + :param ~datetime.datetime key_start_time: + A DateTime value. Indicates when the key becomes valid. + :param ~datetime.datetime key_expiry_time: + A DateTime value. Indicates when the key stops being valid. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: The user delegation key. + :rtype: ~azure.storage.blob.UserDelegationKey + """ + key_info = KeyInfo(start=_to_utc_datetime(key_start_time), expiry=_to_utc_datetime(key_expiry_time)) + timeout = kwargs.pop('timeout', None) + try: + user_delegation_key = self._client.service.get_user_delegation_key(key_info=key_info, + timeout=timeout, + **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + return parse_to_internal_user_delegation_key(user_delegation_key) # type: ignore + + @distributed_trace + def get_account_information(self, **kwargs): + # type: (Any) -> Dict[str, str] + """Gets information related to the storage account. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START get_blob_service_account_info] + :end-before: [END get_blob_service_account_info] + :language: python + :dedent: 8 + :caption: Getting account information for the blob service. + """ + try: + return self._client.service.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def get_service_stats(self, **kwargs): + # type: (**Any) -> Dict[str, Any] + """Retrieves statistics related to replication for the Blob service. + + It is only available when read-access geo-redundant replication is enabled for + the storage account. + + With geo-redundant replication, Azure Storage maintains your data durable + in two locations. In both locations, Azure Storage constantly maintains + multiple healthy replicas of your data. The location where you read, + create, update, or delete data is the primary storage account location. + The primary location exists in the region you choose at the time you + create an account via the Azure Management Azure classic portal, for + example, North Central US. The location to which your data is replicated + is the secondary location. The secondary location is automatically + determined based on the location of the primary; it is in a second data + center that resides in the same region as the primary location. Read-only + access is available from the secondary location, if read-access geo-redundant + replication is enabled for your storage account. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: The blob service stats. + :rtype: Dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START get_blob_service_stats] + :end-before: [END get_blob_service_stats] + :language: python + :dedent: 8 + :caption: Getting service stats for the blob service. + """ + timeout = kwargs.pop('timeout', None) + try: + stats = self._client.service.get_statistics( # type: ignore + timeout=timeout, use_location=LocationMode.SECONDARY, **kwargs) + return service_stats_deserialize(stats) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def get_service_properties(self, **kwargs): + # type: (Any) -> Dict[str, Any] + """Gets the properties of a storage account's Blob service, including + Azure Storage Analytics. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An object containing blob service properties such as + analytics logging, hour/minute metrics, cors rules, etc. + :rtype: Dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START get_blob_service_properties] + :end-before: [END get_blob_service_properties] + :language: python + :dedent: 8 + :caption: Getting service properties for the blob service. + """ + timeout = kwargs.pop('timeout', None) + try: + service_props = self._client.service.get_properties(timeout=timeout, **kwargs) + return service_properties_deserialize(service_props) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def set_service_properties( + self, analytics_logging=None, # type: Optional[BlobAnalyticsLogging] + hour_metrics=None, # type: Optional[Metrics] + minute_metrics=None, # type: Optional[Metrics] + cors=None, # type: Optional[List[CorsRule]] + target_version=None, # type: Optional[str] + delete_retention_policy=None, # type: Optional[RetentionPolicy] + static_website=None, # type: Optional[StaticWebsite] + **kwargs + ): + # type: (...) -> None + """Sets the properties of a storage account's Blob service, including + Azure Storage Analytics. + + If an element (e.g. analytics_logging) is left as None, the + existing settings on the service for that functionality are preserved. + + :param analytics_logging: + Groups the Azure Analytics Logging settings. + :type analytics_logging: ~azure.storage.blob.BlobAnalyticsLogging + :param hour_metrics: + The hour metrics settings provide a summary of request + statistics grouped by API in hourly aggregates for blobs. + :type hour_metrics: ~azure.storage.blob.Metrics + :param minute_metrics: + The minute metrics settings provide request statistics + for each minute for blobs. + :type minute_metrics: ~azure.storage.blob.Metrics + :param cors: + You can include up to five CorsRule elements in the + list. If an empty list is specified, all CORS rules will be deleted, + and CORS will be disabled for the service. + :type cors: list[~azure.storage.blob.CorsRule] + :param str target_version: + Indicates the default version to use for requests if an incoming + request's version is not specified. + :param delete_retention_policy: + The delete retention policy specifies whether to retain deleted blobs. + It also specifies the number of days and versions of blob to keep. + :type delete_retention_policy: ~azure.storage.blob.RetentionPolicy + :param static_website: + Specifies whether the static website feature is enabled, + and if yes, indicates the index document and 404 error document to use. + :type static_website: ~azure.storage.blob.StaticWebsite + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START set_blob_service_properties] + :end-before: [END set_blob_service_properties] + :language: python + :dedent: 8 + :caption: Setting service properties for the blob service. + """ + props = StorageServiceProperties( + logging=analytics_logging, + hour_metrics=hour_metrics, + minute_metrics=minute_metrics, + cors=cors, + default_service_version=target_version, + delete_retention_policy=delete_retention_policy, + static_website=static_website + ) + timeout = kwargs.pop('timeout', None) + try: + self._client.service.set_properties(props, timeout=timeout, **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def list_containers( + self, name_starts_with=None, # type: Optional[str] + include_metadata=False, # type: Optional[bool] + **kwargs + ): + # type: (...) -> ItemPaged[ContainerProperties] + """Returns a generator to list the containers under the specified account. + + The generator will lazily follow the continuation tokens returned by + the service and stop when all containers have been returned. + + :param str name_starts_with: + Filters the results to return only containers whose names + begin with the specified prefix. + :param bool include_metadata: + Specifies that container metadata to be returned in the response. + The default value is `False`. + :keyword int results_per_page: + The maximum number of container names to retrieve per API + call. If the request does not specify the server will return up to 5,000 items. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) of ContainerProperties. + :rtype: ~azure.core.paging.ItemPaged[~azure.storage.blob.ContainerProperties] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START bsc_list_containers] + :end-before: [END bsc_list_containers] + :language: python + :dedent: 12 + :caption: Listing the containers in the blob service. + """ + include = ['metadata'] if include_metadata else [] + + timeout = kwargs.pop('timeout', None) + results_per_page = kwargs.pop('results_per_page', None) + command = functools.partial( + self._client.service.list_containers_segment, + prefix=name_starts_with, + include=include, + timeout=timeout, + **kwargs) + return ItemPaged( + command, + prefix=name_starts_with, + results_per_page=results_per_page, + page_iterator_class=ContainerPropertiesPaged + ) + + @distributed_trace + def find_blobs_by_tags(self, filter_expression, **kwargs): + # type: (str, **Any) -> ItemPaged[FilteredBlob] + """The Filter Blobs operation enables callers to list blobs across all + containers whose tags match a given search expression. Filter blobs + searches across all containers within a storage account but can be + scoped within the expression to a single container. + + :param str filter_expression: + The expression to find blobs whose tags matches the specified condition. + eg. "\"yourtagname\"='firsttag' and \"yourtagname2\"='secondtag'" + To specify a container, eg. "@container='containerName' and \"Name\"='C'" + :keyword int results_per_page: + The max result per page when paginating. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.paging.ItemPaged[~azure.storage.blob.FilteredBlob] + """ + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.service.filter_blobs, + where=filter_expression, + timeout=timeout, + **kwargs) + return ItemPaged( + command, results_per_page=results_per_page, + page_iterator_class=FilteredBlobPaged) + + @distributed_trace + def create_container( + self, name, # type: str + metadata=None, # type: Optional[Dict[str, str]] + public_access=None, # type: Optional[Union[PublicAccess, str]] + **kwargs + ): + # type: (...) -> ContainerClient + """Creates a new container under the specified account. + + If the container with the same name already exists, a ResourceExistsError will + be raised. This method returns a client with which to interact with the newly + created container. + + :param str name: The name of the container to create. + :param metadata: + A dict with name-value pairs to associate with the + container as metadata. Example: `{'Category':'test'}` + :type metadata: dict(str, str) + :param public_access: + Possible values include: 'container', 'blob'. + :type public_access: str or ~azure.storage.blob.PublicAccess + :keyword container_encryption_scope: + Specifies the default encryption scope to set on the container and use for + all future writes. + + .. versionadded:: 12.2.0 + + :paramtype container_encryption_scope: dict or ~azure.storage.blob.ContainerEncryptionScope + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: ~azure.storage.blob.ContainerClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START bsc_create_container] + :end-before: [END bsc_create_container] + :language: python + :dedent: 12 + :caption: Creating a container in the blob service. + """ + container = self.get_container_client(name) + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + container.create_container( + metadata=metadata, public_access=public_access, timeout=timeout, **kwargs) + return container + + @distributed_trace + def delete_container( + self, container, # type: Union[ContainerProperties, str] + lease=None, # type: Optional[Union[BlobLeaseClient, str]] + **kwargs + ): + # type: (...) -> None + """Marks the specified container for deletion. + + The container and any blobs contained within it are later deleted during garbage collection. + If the container is not found, a ResourceNotFoundError will be raised. + + :param container: + The container to delete. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :param lease: + If specified, delete_container only succeeds if the + container's lease is active and matches this ID. + Required if the container has an active lease. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START bsc_delete_container] + :end-before: [END bsc_delete_container] + :language: python + :dedent: 12 + :caption: Deleting a container in the blob service. + """ + container = self.get_container_client(container) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + container.delete_container( # type: ignore + lease=lease, + timeout=timeout, + **kwargs) + + @distributed_trace + def _undelete_container(self, deleted_container_name, deleted_container_version, new_name=None, **kwargs): + # type: (str, str, str, **Any) -> ContainerClient + """Restores soft-deleted container. + + Operation will only be successful if used within the specified number of days + set in the delete retention policy. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :param str deleted_container_name: + Specifies the name of the deleted container to restore. + :param str deleted_container_version: + Specifies the version of the deleted container to restore. + :param str new_name: + The new name for the deleted container to be restored to. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: ~azure.storage.blob.ContainerClient + """ + container = self.get_container_client(new_name or deleted_container_name) + try: + container._client.container.restore(deleted_container_name=deleted_container_name, # pylint: disable = protected-access + deleted_container_version=deleted_container_version, + timeout=kwargs.pop('timeout', None), **kwargs) + return container + except StorageErrorException as error: + process_storage_error(error) + + def get_container_client(self, container): + # type: (Union[ContainerProperties, str]) -> ContainerClient + """Get a client to interact with the specified container. + + The container need not already exist. + + :param container: + The container. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :returns: A ContainerClient. + :rtype: ~azure.storage.blob.ContainerClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START bsc_get_container_client] + :end-before: [END bsc_get_container_client] + :language: python + :dedent: 8 + :caption: Getting the container client to interact with a specific container. + """ + try: + container_name = container.name + except AttributeError: + container_name = container + _pipeline = Pipeline( + transport=TransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return ContainerClient( + self.url, container_name=container_name, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function) + + def get_blob_client( + self, container, # type: Union[ContainerProperties, str] + blob, # type: Union[BlobProperties, str] + snapshot=None # type: Optional[Union[Dict[str, Any], str]] + ): + # type: (...) -> BlobClient + """Get a client to interact with the specified blob. + + The blob need not already exist. + + :param container: + The container that the blob is in. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :param blob: + The blob with which to interact. This can either be the name of the blob, + or an instance of BlobProperties. + :type blob: str or ~azure.storage.blob.BlobProperties + :param snapshot: + The optional blob snapshot on which to operate. This can either be the ID of the snapshot, + or a dictionary output returned by :func:`~azure.storage.blob.BlobClient.create_snapshot()`. + :type snapshot: str or dict(str, Any) + :returns: A BlobClient. + :rtype: ~azure.storage.blob.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START bsc_get_blob_client] + :end-before: [END bsc_get_blob_client] + :language: python + :dedent: 12 + :caption: Getting the blob client to interact with a specific blob. + """ + try: + container_name = container.name + except AttributeError: + container_name = container + try: + blob_name = blob.name + except AttributeError: + blob_name = blob + _pipeline = Pipeline( + transport=TransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return BlobClient( # type: ignore + self.url, container_name=container_name, blob_name=blob_name, snapshot=snapshot, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_container_client.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_container_client.py new file mode 100644 index 00000000000..d771d19ccfc --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_container_client.py @@ -0,0 +1,1441 @@ +# pylint: disable=too-many-lines +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import functools +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, AnyStr, Dict, List, Tuple, IO, Iterator, + TYPE_CHECKING +) + +try: + from urllib.parse import urlparse, quote, unquote +except ImportError: + from urlparse import urlparse # type: ignore + from urllib2 import quote, unquote # type: ignore + +import six + +from azure.core import MatchConditions +from azure.core.paging import ItemPaged +from azure.core.tracing.decorator import distributed_trace +from azure.core.pipeline import Pipeline +from azure.core.pipeline.transport import HttpRequest + +from ._shared.base_client import StorageAccountHostsMixin, TransportWrapper, parse_connection_str, parse_query +from ._shared.request_handlers import add_metadata_headers, serialize_iso +from ._shared.response_handlers import ( + process_storage_error, + return_response_headers, + return_headers_and_deserialized) +from ._generated import AzureBlobStorage, VERSION +from ._generated.models import ( + StorageErrorException, + SignedIdentifier) +from ._deserialize import deserialize_container_properties +from ._serialize import get_modify_conditions, get_container_cpk_scope_info, get_api_version +from ._models import ( # pylint: disable=unused-import + ContainerProperties, + BlobProperties, + BlobType) +from ._list_blobs_helper import BlobPrefix, BlobPropertiesPaged +from ._lease import BlobLeaseClient, get_access_conditions +from ._blob_client import BlobClient + +if TYPE_CHECKING: + from azure.core.pipeline.transport import HttpTransport, HttpResponse # pylint: disable=ungrouped-imports + from azure.core.pipeline.policies import HTTPPolicy # pylint: disable=ungrouped-imports + from datetime import datetime + from ._models import ( # pylint: disable=unused-import + PublicAccess, + AccessPolicy, + ContentSettings, + StandardBlobTier, + PremiumPageBlobTier) + + +def _get_blob_name(blob): + """Return the blob name. + + :param blob: A blob string or BlobProperties + :rtype: str + """ + try: + return blob.get('name') + except AttributeError: + return blob + + +class ContainerClient(StorageAccountHostsMixin): + """A client to interact with a specific container, although that container + may not yet exist. + + For operations relating to a specific blob within this container, a blob client can be + retrieved using the :func:`~get_blob_client` function. + + :param str account_url: + The URI to the storage account. In order to create a client given the full URI to the container, + use the :func:`from_container_url` classmethod. + :param container_name: + The name of the container for the blob. + :type container_name: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START create_container_client_from_service] + :end-before: [END create_container_client_from_service] + :language: python + :dedent: 8 + :caption: Get a ContainerClient from an existing BlobServiceClient. + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START create_container_client_sasurl] + :end-before: [END create_container_client_sasurl] + :language: python + :dedent: 8 + :caption: Creating the container client directly. + """ + def __init__( + self, account_url, # type: str + container_name, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + try: + if not account_url.lower().startswith('http'): + account_url = "https://" + account_url + except AttributeError: + raise ValueError("Container URL must be a string.") + parsed_url = urlparse(account_url.rstrip('/')) + if not container_name: + raise ValueError("Please specify a container name.") + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(account_url)) + + _, sas_token = parse_query(parsed_url.query) + self.container_name = container_name + self._query_str, credential = self._format_query_string(sas_token, credential) + super(ContainerClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) + self._client = AzureBlobStorage(self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + + def _format_url(self, hostname): + container_name = self.container_name + if isinstance(container_name, six.text_type): + container_name = container_name.encode('UTF-8') + return "{}://{}/{}{}".format( + self.scheme, + hostname, + quote(container_name), + self._query_str) + + @classmethod + def from_container_url(cls, container_url, credential=None, **kwargs): + # type: (str, Optional[Any], Any) -> ContainerClient + """Create ContainerClient from a container url. + + :param str container_url: + The full endpoint URL to the Container, including SAS token if used. This could be + either the primary endpoint, or the secondary endpoint depending on the current `location_mode`. + :type container_url: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :returns: A container client. + :rtype: ~azure.storage.blob.ContainerClient + """ + try: + if not container_url.lower().startswith('http'): + container_url = "https://" + container_url + except AttributeError: + raise ValueError("Container URL must be a string.") + parsed_url = urlparse(container_url.rstrip('/')) + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(container_url)) + + container_path = parsed_url.path.lstrip('/').split('/') + account_path = "" + if len(container_path) > 1: + account_path = "/" + "/".join(container_path[:-1]) + account_url = "{}://{}{}?{}".format( + parsed_url.scheme, + parsed_url.netloc.rstrip('/'), + account_path, + parsed_url.query) + container_name = unquote(container_path[-1]) + if not container_name: + raise ValueError("Invalid URL. Please provide a URL with a valid container name") + return cls(account_url, container_name=container_name, credential=credential, **kwargs) + + @classmethod + def from_connection_string( + cls, conn_str, # type: str + container_name, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): # type: (...) -> ContainerClient + """Create ContainerClient from a Connection String. + + :param str conn_str: + A connection string to an Azure Storage account. + :param container_name: + The container name for the blob. + :type container_name: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :returns: A container client. + :rtype: ~azure.storage.blob.ContainerClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START auth_from_connection_string_container] + :end-before: [END auth_from_connection_string_container] + :language: python + :dedent: 8 + :caption: Creating the ContainerClient from a connection string. + """ + account_url, secondary, credential = parse_connection_str(conn_str, credential, 'blob') + if 'secondary_hostname' not in kwargs: + kwargs['secondary_hostname'] = secondary + return cls( + account_url, container_name=container_name, credential=credential, **kwargs) + + @distributed_trace + def create_container(self, metadata=None, public_access=None, **kwargs): + # type: (Optional[Dict[str, str]], Optional[Union[PublicAccess, str]], **Any) -> None + """ + Creates a new container under the specified account. If the container + with the same name already exists, the operation fails. + + :param metadata: + A dict with name_value pairs to associate with the + container as metadata. Example:{'Category':'test'} + :type metadata: dict[str, str] + :param ~azure.storage.blob.PublicAccess public_access: + Possible values include: 'container', 'blob'. + :keyword container_encryption_scope: + Specifies the default encryption scope to set on the container and use for + all future writes. + + .. versionadded:: 12.2.0 + + :paramtype container_encryption_scope: dict or ~azure.storage.blob.ContainerEncryptionScope + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START create_container] + :end-before: [END create_container] + :language: python + :dedent: 12 + :caption: Creating a container to store blobs. + """ + headers = kwargs.pop('headers', {}) + timeout = kwargs.pop('timeout', None) + headers.update(add_metadata_headers(metadata)) # type: ignore + container_cpk_scope_info = get_container_cpk_scope_info(kwargs) + try: + return self._client.container.create( # type: ignore + timeout=timeout, + access=public_access, + container_cpk_scope_info=container_cpk_scope_info, + cls=return_response_headers, + headers=headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def delete_container( + self, **kwargs): + # type: (Any) -> None + """ + Marks the specified container for deletion. The container and any blobs + contained within it are later deleted during garbage collection. + + :keyword lease: + If specified, delete_container only succeeds if the + container's lease is active and matches this ID. + Required if the container has an active lease. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START delete_container] + :end-before: [END delete_container] + :language: python + :dedent: 12 + :caption: Delete a container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + mod_conditions = get_modify_conditions(kwargs) + timeout = kwargs.pop('timeout', None) + try: + self._client.container.delete( + timeout=timeout, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def acquire_lease( + self, lease_duration=-1, # type: int + lease_id=None, # type: Optional[str] + **kwargs): + # type: (...) -> BlobLeaseClient + """ + Requests a new lease. If the container does not have an active lease, + the Blob service creates a lease on the container and returns a new + lease ID. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :param str lease_id: + Proposed lease ID, in a GUID string format. The Blob service returns + 400 (Invalid request) if the proposed lease ID is not in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A BlobLeaseClient object, that can be run in a context manager. + :rtype: ~azure.storage.blob.BlobLeaseClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START acquire_lease_on_container] + :end-before: [END acquire_lease_on_container] + :language: python + :dedent: 8 + :caption: Acquiring a lease on the container. + """ + lease = BlobLeaseClient(self, lease_id=lease_id) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + lease.acquire(lease_duration=lease_duration, timeout=timeout, **kwargs) + return lease + + @distributed_trace + def get_account_information(self, **kwargs): + # type: (**Any) -> Dict[str, str] + """Gets information related to the storage account. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + """ + try: + return self._client.container.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def get_container_properties(self, **kwargs): + # type: (Any) -> ContainerProperties + """Returns all user-defined metadata and system properties for the specified + container. The data returned does not include the container's list of blobs. + + :keyword lease: + If specified, get_container_properties only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: Properties for the specified container within a container object. + :rtype: ~azure.storage.blob.ContainerProperties + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START get_container_properties] + :end-before: [END get_container_properties] + :language: python + :dedent: 12 + :caption: Getting properties on the container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + timeout = kwargs.pop('timeout', None) + try: + response = self._client.container.get_properties( + timeout=timeout, + lease_access_conditions=access_conditions, + cls=deserialize_container_properties, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + response.name = self.container_name + return response # type: ignore + + @distributed_trace + def set_container_metadata( # type: ignore + self, metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """Sets one or more user-defined name-value pairs for the specified + container. Each call to this operation replaces all existing metadata + attached to the container. To remove all metadata from the container, + call this operation with no metadata dict. + + :param metadata: + A dict containing name-value pairs to associate with the container as + metadata. Example: {'category':'test'} + :type metadata: dict[str, str] + :keyword lease: + If specified, set_container_metadata only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Container-updated property dict (Etag and last modified). + :rtype: dict[str, str or datetime] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START set_container_metadata] + :end-before: [END set_container_metadata] + :language: python + :dedent: 12 + :caption: Setting metadata on the container. + """ + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + mod_conditions = get_modify_conditions(kwargs) + timeout = kwargs.pop('timeout', None) + try: + return self._client.container.set_metadata( # type: ignore + timeout=timeout, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + headers=headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def get_container_access_policy(self, **kwargs): + # type: (Any) -> Dict[str, Any] + """Gets the permissions for the specified container. + The permissions indicate whether container data may be accessed publicly. + + :keyword lease: + If specified, get_container_access_policy only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Access policy information in a dict. + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START get_container_access_policy] + :end-before: [END get_container_access_policy] + :language: python + :dedent: 12 + :caption: Getting the access policy on the container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + timeout = kwargs.pop('timeout', None) + try: + response, identifiers = self._client.container.get_access_policy( + timeout=timeout, + lease_access_conditions=access_conditions, + cls=return_headers_and_deserialized, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return { + 'public_access': response.get('blob_public_access'), + 'signed_identifiers': identifiers or [] + } + + @distributed_trace + def set_container_access_policy( + self, signed_identifiers, # type: Dict[str, AccessPolicy] + public_access=None, # type: Optional[Union[str, PublicAccess]] + **kwargs + ): # type: (...) -> Dict[str, Union[str, datetime]] + """Sets the permissions for the specified container or stored access + policies that may be used with Shared Access Signatures. The permissions + indicate whether blobs in a container may be accessed publicly. + + :param signed_identifiers: + A dictionary of access policies to associate with the container. The + dictionary may contain up to 5 elements. An empty dictionary + will clear the access policies set on the service. + :type signed_identifiers: dict[str, ~azure.storage.blob.AccessPolicy] + :param ~azure.storage.blob.PublicAccess public_access: + Possible values include: 'container', 'blob'. + :keyword lease: + Required if the container has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A datetime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified date/time. + :keyword ~datetime.datetime if_unmodified_since: + A datetime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Container-updated property dict (Etag and last modified). + :rtype: dict[str, str or ~datetime.datetime] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START set_container_access_policy] + :end-before: [END set_container_access_policy] + :language: python + :dedent: 12 + :caption: Setting access policy on the container. + """ + if len(signed_identifiers) > 5: + raise ValueError( + 'Too many access policies provided. The server does not support setting ' + 'more than 5 access policies on a single resource.') + identifiers = [] + for key, value in signed_identifiers.items(): + if value: + value.start = serialize_iso(value.start) + value.expiry = serialize_iso(value.expiry) + identifiers.append(SignedIdentifier(id=key, access_policy=value)) # type: ignore + signed_identifiers = identifiers # type: ignore + lease = kwargs.pop('lease', None) + mod_conditions = get_modify_conditions(kwargs) + access_conditions = get_access_conditions(lease) + timeout = kwargs.pop('timeout', None) + try: + return self._client.container.set_access_policy( + container_acl=signed_identifiers or None, + timeout=timeout, + access=public_access, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def list_blobs(self, name_starts_with=None, include=None, **kwargs): + # type: (Optional[str], Optional[Union[str, List[str]]], **Any) -> ItemPaged[BlobProperties] + """Returns a generator to list the blobs under the specified container. + The generator will lazily follow the continuation tokens returned by + the service. + + :param str name_starts_with: + Filters the results to return only blobs whose names + begin with the specified prefix. + :param list[str] or str include: + Specifies one or more additional datasets to include in the response. + Options include: 'snapshots', 'metadata', 'uncommittedblobs', 'copy', 'deleted', 'tags'. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.paging.ItemPaged[~azure.storage.blob.BlobProperties] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START list_blobs_in_container] + :end-before: [END list_blobs_in_container] + :language: python + :dedent: 8 + :caption: List the blobs in the container. + """ + if include and not isinstance(include, list): + include = [include] + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.container.list_blob_flat_segment, + include=include, + timeout=timeout, + **kwargs) + return ItemPaged( + command, prefix=name_starts_with, results_per_page=results_per_page, + page_iterator_class=BlobPropertiesPaged) + + @distributed_trace + def walk_blobs( + self, name_starts_with=None, # type: Optional[str] + include=None, # type: Optional[Any] + delimiter="/", # type: str + **kwargs # type: Optional[Any] + ): + # type: (...) -> ItemPaged[BlobProperties] + """Returns a generator to list the blobs under the specified container. + The generator will lazily follow the continuation tokens returned by + the service. This operation will list blobs in accordance with a hierarchy, + as delimited by the specified delimiter character. + + :param str name_starts_with: + Filters the results to return only blobs whose names + begin with the specified prefix. + :param list[str] include: + Specifies one or more additional datasets to include in the response. + Options include: 'snapshots', 'metadata', 'uncommittedblobs', 'copy', 'deleted'. + :param str delimiter: + When the request includes this parameter, the operation returns a BlobPrefix + element in the response body that acts as a placeholder for all blobs whose + names begin with the same substring up to the appearance of the delimiter + character. The delimiter may be a single character or a string. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.paging.ItemPaged[~azure.storage.blob.BlobProperties] + """ + if include and not isinstance(include, list): + include = [include] + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.container.list_blob_hierarchy_segment, + delimiter=delimiter, + include=include, + timeout=timeout, + **kwargs) + return BlobPrefix( + command, + prefix=name_starts_with, + results_per_page=results_per_page, + delimiter=delimiter) + + @distributed_trace + def upload_blob( + self, name, # type: Union[str, BlobProperties] + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + blob_type=BlobType.BlockBlob, # type: Union[str, BlobType] + length=None, # type: Optional[int] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> BlobClient + """Creates a new blob from a data source with automatic chunking. + + :param name: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type name: str or ~azure.storage.blob.BlobProperties + :param data: The blob data to upload. + :param ~azure.storage.blob.BlobType blob_type: The type of the blob. This can be + either BlockBlob, PageBlob or AppendBlob. The default value is BlockBlob. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword bool overwrite: Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob will overwrite the existing data. If set to False, the + operation will fail with ResourceExistsError. The exception to the above is with Append + blob types: if set to False and the data already exists, an error will not be raised + and the data will be appended to the existing blob. If set overwrite=True, then the existing + append blob will be deleted, and a new one created. Defaults to False. + :keyword ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the container has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int max_concurrency: + Maximum number of parallel connections to use when the blob size exceeds + 64MB. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :returns: A BlobClient to interact with the newly uploaded blob. + :rtype: ~azure.storage.blob.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START upload_blob_to_container] + :end-before: [END upload_blob_to_container] + :language: python + :dedent: 8 + :caption: Upload blob to the container. + """ + blob = self.get_blob_client(name) + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + encoding = kwargs.pop('encoding', 'UTF-8') + blob.upload_blob( + data, + blob_type=blob_type, + length=length, + metadata=metadata, + timeout=timeout, + encoding=encoding, + **kwargs + ) + return blob + + @distributed_trace + def delete_blob( + self, blob, # type: Union[str, BlobProperties] + delete_snapshots=None, # type: Optional[str] + **kwargs + ): + # type: (...) -> None + """Marks the specified blob or snapshot for deletion. + + The blob is later deleted during garbage collection. + Note that in order to delete a blob, you must delete all of its + snapshots. You can delete both at the same time with the delete_blob + operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blob or snapshot + and retains the blob or snapshot for specified number of days. + After specified number of days, blob's data is removed from the service during garbage collection. + Soft deleted blob or snapshot is accessible through :func:`list_blobs()` specifying `include=["deleted"]` + option. Soft-deleted blob or snapshot can be restored using :func:`~BlobClient.undelete()` + + :param blob: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob: str or ~azure.storage.blob.BlobProperties + :param str delete_snapshots: + Required if the blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + blob_client = self.get_blob_client(blob) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + blob_client.delete_blob( # type: ignore + delete_snapshots=delete_snapshots, + timeout=timeout, + **kwargs) + + @distributed_trace + def download_blob(self, blob, offset=None, length=None, **kwargs): + # type: (Union[str, BlobProperties], Optional[int], Optional[int], **Any) -> StorageStreamDownloader + """Downloads a blob to the StorageStreamDownloader. The readall() method must + be used to read all the content or readinto() must be used to download the blob into + a stream. + + :param blob: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob: str or ~azure.storage.blob.BlobProperties + :param int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. If specified, download_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword str encoding: + Encoding to decode the downloaded bytes. Default is None, i.e. no decoding. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: A streaming object (StorageStreamDownloader) + :rtype: ~azure.storage.blob.StorageStreamDownloader + """ + blob_client = self.get_blob_client(blob) # type: ignore + kwargs.setdefault('merge_span', True) + return blob_client.download_blob(offset=offset, length=length, **kwargs) + + def _generate_delete_blobs_subrequest_options( + self, snapshot=None, + delete_snapshots=None, + lease_access_conditions=None, + modified_access_conditions=None, + **kwargs + ): + """This code is a copy from _generated. + + Once Autorest is able to provide request preparation this code should be removed. + """ + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct parameters + timeout = kwargs.pop('timeout', None) + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._client._serialize.query("snapshot", snapshot, 'str') # pylint: disable=protected-access + if timeout is not None: + query_parameters['timeout'] = self._client._serialize.query("timeout", timeout, 'int', minimum=0) # pylint: disable=protected-access + + # Construct headers + header_parameters = {} + if delete_snapshots is not None: + header_parameters['x-ms-delete-snapshots'] = self._client._serialize.header( # pylint: disable=protected-access + "delete_snapshots", delete_snapshots, 'DeleteSnapshotsOptionType') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._client._serialize.header( # pylint: disable=protected-access + "lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._client._serialize.header( # pylint: disable=protected-access + "if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._client._serialize.header( # pylint: disable=protected-access + "if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._client._serialize.header( # pylint: disable=protected-access + "if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._client._serialize.header( # pylint: disable=protected-access + "if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._client._serialize.header("if_tags", if_tags, 'str') # pylint: disable=protected-access + + return query_parameters, header_parameters + + def _generate_delete_blobs_options(self, + *blobs, # type: List[Union[str, BlobProperties, dict]] + **kwargs + ): + timeout = kwargs.pop('timeout', None) + raise_on_any_failure = kwargs.pop('raise_on_any_failure', True) + delete_snapshots = kwargs.pop('delete_snapshots', None) + if_modified_since = kwargs.pop('if_modified_since', None) + if_unmodified_since = kwargs.pop('if_unmodified_since', None) + if_tags_match_condition = kwargs.pop('if_tags_match_condition', None) + kwargs.update({'raise_on_any_failure': raise_on_any_failure, + 'sas': self._query_str.replace('?', '&'), + 'timeout': '&timeout=' + str(timeout) if timeout else "" + }) + + reqs = [] + for blob in blobs: + blob_name = _get_blob_name(blob) + container_name = self.container_name + + try: + options = BlobClient._generic_delete_blob_options( # pylint: disable=protected-access + snapshot=blob.get('snapshot'), + delete_snapshots=delete_snapshots or blob.get('delete_snapshots'), + lease=blob.get('lease_id'), + if_modified_since=if_modified_since or blob.get('if_modified_since'), + if_unmodified_since=if_unmodified_since or blob.get('if_unmodified_since'), + etag=blob.get('etag'), + if_tags_match_condition=if_tags_match_condition or blob.get('if_tags_match_condition'), + match_condition=blob.get('match_condition') or MatchConditions.IfNotModified if blob.get('etag') + else None, + timeout=blob.get('timeout'), + ) + except AttributeError: + options = BlobClient._generic_delete_blob_options( # pylint: disable=protected-access + delete_snapshots=delete_snapshots, + if_modified_since=if_modified_since, + if_unmodified_since=if_unmodified_since, + if_tags_match_condition=if_tags_match_condition + ) + + query_parameters, header_parameters = self._generate_delete_blobs_subrequest_options(**options) + + req = HttpRequest( + "DELETE", + "/{}/{}{}".format(quote(container_name), quote(blob_name, safe='/~'), self._query_str), + headers=header_parameters + ) + req.format_parameters(query_parameters) + reqs.append(req) + + return reqs, kwargs + + @distributed_trace + def delete_blobs(self, *blobs, **kwargs): + # type: (...) -> Iterator[HttpResponse] + """Marks the specified blobs or snapshots for deletion. + + The blobs are later deleted during garbage collection. + Note that in order to delete blobs, you must delete all of their + snapshots. You can delete both at the same time with the delete_blobs operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blobs or snapshots + and retains the blobs or snapshots for specified number of days. + After specified number of days, blobs' data is removed from the service during garbage collection. + Soft deleted blobs or snapshots are accessible through :func:`list_blobs()` specifying `include=["deleted"]` + Soft-deleted blobs or snapshots can be restored using :func:`~BlobClient.undelete()` + + :param blobs: + The blobs to delete. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + + blob name: + key: 'name', value type: str + snapshot you want to delete: + key: 'snapshot', value type: str + whether to delete snapthots when deleting blob: + key: 'delete_snapshots', value: 'include' or 'only' + if the blob modified or not: + key: 'if_modified_since', 'if_unmodified_since', value type: datetime + etag: + key: 'etag', value type: str + match the etag or not: + key: 'match_condition', value type: MatchConditions + tags match condition: + key: 'if_tags_match_condition', value type: str + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword str delete_snapshots: + Required if a blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: An iterator of responses, one for each blob in order + :rtype: Iterator[~azure.core.pipeline.transport.HttpResponse] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START delete_multiple_blobs] + :end-before: [END delete_multiple_blobs] + :language: python + :dedent: 8 + :caption: Deleting multiple blobs. + """ + if len(blobs) == 0: + return iter(list()) + + reqs, options = self._generate_delete_blobs_options(*blobs, **kwargs) + + return self._batch_send(*reqs, **options) + + def _generate_set_tiers_subrequest_options( + self, tier, snapshot=None, version_id=None, rehydrate_priority=None, lease_access_conditions=None, **kwargs + ): + """This code is a copy from _generated. + + Once Autorest is able to provide request preparation this code should be removed. + """ + if not tier: + raise ValueError("A blob tier must be specified") + if snapshot and version_id: + raise ValueError("Snapshot and version_id cannot be set at the same time") + if_tags = kwargs.pop('if_tags', None) + + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + comp = "tier" + timeout = kwargs.pop('timeout', None) + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._client._serialize.query("snapshot", snapshot, 'str') # pylint: disable=protected-access + if version_id is not None: + query_parameters['versionid'] = self._client._serialize.query("version_id", version_id, 'str') # pylint: disable=protected-access + if timeout is not None: + query_parameters['timeout'] = self._client._serialize.query("timeout", timeout, 'int', minimum=0) # pylint: disable=protected-access + query_parameters['comp'] = self._client._serialize.query("comp", comp, 'str') # pylint: disable=protected-access, specify-parameter-names-in-call + + # Construct headers + header_parameters = {} + header_parameters['x-ms-access-tier'] = self._client._serialize.header("tier", tier, 'str') # pylint: disable=protected-access, specify-parameter-names-in-call + if rehydrate_priority is not None: + header_parameters['x-ms-rehydrate-priority'] = self._client._serialize.header( # pylint: disable=protected-access + "rehydrate_priority", rehydrate_priority, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._client._serialize.header("lease_id", lease_id, 'str') # pylint: disable=protected-access + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._client._serialize.header("if_tags", if_tags, 'str') # pylint: disable=protected-access + + return query_parameters, header_parameters + + def _generate_set_tiers_options(self, + blob_tier, # type: Optional[Union[str, StandardBlobTier, PremiumPageBlobTier]] + *blobs, # type: List[Union[str, BlobProperties, dict]] + **kwargs + ): + timeout = kwargs.pop('timeout', None) + raise_on_any_failure = kwargs.pop('raise_on_any_failure', True) + rehydrate_priority = kwargs.pop('rehydrate_priority', None) + if_tags = kwargs.pop('if_tags_match_condition', None) + kwargs.update({'raise_on_any_failure': raise_on_any_failure, + 'sas': self._query_str.replace('?', '&'), + 'timeout': '&timeout=' + str(timeout) if timeout else "" + }) + + reqs = [] + for blob in blobs: + blob_name = _get_blob_name(blob) + container_name = self.container_name + + try: + tier = blob_tier or blob.get('blob_tier') + query_parameters, header_parameters = self._generate_set_tiers_subrequest_options( + tier=tier, + snapshot=blob.get('snapshot'), + version_id=blob.get('version_id'), + rehydrate_priority=rehydrate_priority or blob.get('rehydrate_priority'), + lease_access_conditions=blob.get('lease_id'), + if_tags=if_tags or blob.get('if_tags_match_condition'), + timeout=timeout or blob.get('timeout') + ) + except AttributeError: + query_parameters, header_parameters = self._generate_set_tiers_subrequest_options( + blob_tier, rehydrate_priority=rehydrate_priority, if_tags=if_tags) + + req = HttpRequest( + "PUT", + "/{}/{}{}".format(quote(container_name), quote(blob_name, safe='/~'), self._query_str), + headers=header_parameters + ) + req.format_parameters(query_parameters) + reqs.append(req) + + return reqs, kwargs + + @distributed_trace + def set_standard_blob_tier_blobs( + self, + standard_blob_tier, # type: Optional[Union[str, StandardBlobTier]] + *blobs, # type: List[Union[str, BlobProperties, dict]] + **kwargs + ): + # type: (...) -> Iterator[HttpResponse] + """This operation sets the tier on block blobs. + + A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param standard_blob_tier: + Indicates the tier to be set on all blobs. Options include 'Hot', 'Cool', + 'Archive'. The hot tier is optimized for storing data that is accessed + frequently. The cool storage tier is optimized for storing data that + is infrequently accessed and stored for at least a month. The archive + tier is optimized for storing data that is rarely accessed and stored + for at least six months with flexible latency requirements. + + .. note:: + If you want to set different tier on different blobs please set this positional parameter to None. + Then the blob tier on every BlobProperties will be taken. + + :type standard_blob_tier: str or ~azure.storage.blob.StandardBlobTier + :param blobs: + The blobs with which to interact. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + + blob name: + key: 'name', value type: str + standard blob tier: + key: 'blob_tier', value type: StandardBlobTier + rehydrate priority: + key: 'rehydrate_priority', value type: RehydratePriority + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + snapshot: + key: "snapshost", value type: str + version id: + key: "version_id", value type: str + tags match condition: + key: 'if_tags_match_condition', value type: str + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. + :return: An iterator of responses, one for each blob in order + :rtype: Iterator[~azure.core.pipeline.transport.HttpResponse] + """ + reqs, options = self._generate_set_tiers_options(standard_blob_tier, *blobs, **kwargs) + + return self._batch_send(*reqs, **options) + + @distributed_trace + def set_premium_page_blob_tier_blobs( + self, + premium_page_blob_tier, # type: Optional[Union[str, PremiumPageBlobTier]] + *blobs, # type: List[Union[str, BlobProperties, dict]] + **kwargs + ): + # type: (...) -> Iterator[HttpResponse] + """Sets the page blob tiers on all blobs. This API is only supported for page blobs on premium accounts. + + :param premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + + .. note:: + If you want to set different tier on different blobs please set this positional parameter to None. + Then the blob tier on every BlobProperties will be taken. + + :type premium_page_blob_tier: ~azure.storage.blob.PremiumPageBlobTier + :param blobs: + The blobs with which to interact. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + + blob name: + key: 'name', value type: str + premium blob tier: + key: 'blob_tier', value type: PremiumPageBlobTier + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. + :return: An iterator of responses, one for each blob in order + :rtype: iterator[~azure.core.pipeline.transport.HttpResponse] + """ + reqs, options = self._generate_set_tiers_options(premium_page_blob_tier, *blobs, **kwargs) + + return self._batch_send(*reqs, **options) + + def get_blob_client( + self, blob, # type: Union[str, BlobProperties] + snapshot=None # type: str + ): + # type: (...) -> BlobClient + """Get a client to interact with the specified blob. + + The blob need not already exist. + + :param blob: + The blob with which to interact. + :type blob: str or ~azure.storage.blob.BlobProperties + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`~BlobClient.create_snapshot()`. + :returns: A BlobClient. + :rtype: ~azure.storage.blob.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START get_blob_client] + :end-before: [END get_blob_client] + :language: python + :dedent: 8 + :caption: Get the blob client. + """ + blob_name = _get_blob_name(blob) + _pipeline = Pipeline( + transport=TransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return BlobClient( + self.url, container_name=self.container_name, blob_name=blob_name, snapshot=snapshot, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_deserialize.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_deserialize.py new file mode 100644 index 00000000000..a8b48b7b70f --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_deserialize.py @@ -0,0 +1,157 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use +from typing import ( # pylint: disable=unused-import + Tuple, Dict, List, + TYPE_CHECKING +) + +from ._models import BlobType, CopyProperties, ContentSettings, LeaseProperties, BlobProperties +from ._shared.models import get_enum_value + +from ._shared.response_handlers import deserialize_metadata +from ._models import ContainerProperties, BlobAnalyticsLogging, Metrics, CorsRule, RetentionPolicy, \ + StaticWebsite, ObjectReplicationPolicy, ObjectReplicationRule + +if TYPE_CHECKING: + from ._generated.models import PageList + + +def deserialize_blob_properties(response, obj, headers): + blob_properties = BlobProperties( + metadata=deserialize_metadata(response, obj, headers), + object_replication_source_properties=deserialize_ors_policies(response.headers), + **headers + ) + if 'Content-Range' in headers: + if 'x-ms-blob-content-md5' in headers: + blob_properties.content_settings.content_md5 = headers['x-ms-blob-content-md5'] + else: + blob_properties.content_settings.content_md5 = None + return blob_properties + + +def deserialize_ors_policies(policy_dictionary): + + if policy_dictionary is None: + return None + # For source blobs (blobs that have policy ids and rule ids applied to them), + # the header will be formatted as "x-ms-or-_: {Complete, Failed}". + # The value of this header is the status of the replication. + or_policy_status_headers = {key: val for key, val in policy_dictionary.items() + if 'or-' in key and key != 'x-ms-or-policy-id'} + + parsed_result = {} + + for key, val in or_policy_status_headers.items(): + # list blobs gives or-policy_rule and get blob properties gives x-ms-or-policy_rule + policy_and_rule_ids = key.split('or-')[1].split('_') + policy_id = policy_and_rule_ids[0] + rule_id = policy_and_rule_ids[1] + + # If we are seeing this policy for the first time, create a new list to store rule_id -> result + parsed_result[policy_id] = parsed_result.get(policy_id) or list() + parsed_result[policy_id].append(ObjectReplicationRule(rule_id=rule_id, status=val)) + + result_list = [ObjectReplicationPolicy(policy_id=k, rules=v) for k, v in parsed_result.items()] + + return result_list + + +def deserialize_blob_stream(response, obj, headers): + blob_properties = deserialize_blob_properties(response, obj, headers) + obj.properties = blob_properties + return response.location_mode, obj + + +def deserialize_container_properties(response, obj, headers): + metadata = deserialize_metadata(response, obj, headers) + container_properties = ContainerProperties( + metadata=metadata, + **headers + ) + return container_properties + + +def get_page_ranges_result(ranges): + # type: (PageList) -> Tuple[List[Dict[str, int]], List[Dict[str, int]]] + page_range = [] # type: ignore + clear_range = [] # type: List + if ranges.page_range: + page_range = [{'start': b.start, 'end': b.end} for b in ranges.page_range] # type: ignore + if ranges.clear_range: + clear_range = [{'start': b.start, 'end': b.end} for b in ranges.clear_range] + return page_range, clear_range # type: ignore + + +def service_stats_deserialize(generated): + """Deserialize a ServiceStats objects into a dict. + """ + return { + 'geo_replication': { + 'status': generated.geo_replication.status, + 'last_sync_time': generated.geo_replication.last_sync_time, + } + } + + +def service_properties_deserialize(generated): + """Deserialize a ServiceProperties objects into a dict. + """ + return { + 'analytics_logging': BlobAnalyticsLogging._from_generated(generated.logging), # pylint: disable=protected-access + 'hour_metrics': Metrics._from_generated(generated.hour_metrics), # pylint: disable=protected-access + 'minute_metrics': Metrics._from_generated(generated.minute_metrics), # pylint: disable=protected-access + 'cors': [CorsRule._from_generated(cors) for cors in generated.cors], # pylint: disable=protected-access + 'target_version': generated.default_service_version, # pylint: disable=protected-access + 'delete_retention_policy': RetentionPolicy._from_generated(generated.delete_retention_policy), # pylint: disable=protected-access + 'static_website': StaticWebsite._from_generated(generated.static_website), # pylint: disable=protected-access + } + + +def get_blob_properties_from_generated_code(generated): + blob = BlobProperties() + blob.name = generated.name + blob_type = get_enum_value(generated.properties.blob_type) + blob.blob_type = BlobType(blob_type) if blob_type else None + blob.etag = generated.properties.etag + blob.deleted = generated.deleted + blob.snapshot = generated.snapshot + blob.is_append_blob_sealed = generated.properties.is_sealed + blob.metadata = generated.metadata.additional_properties if generated.metadata else {} + blob.encrypted_metadata = generated.metadata.encrypted if generated.metadata else None + blob.lease = LeaseProperties._from_generated(generated) # pylint: disable=protected-access + blob.copy = CopyProperties._from_generated(generated) # pylint: disable=protected-access + blob.last_modified = generated.properties.last_modified + blob.creation_time = generated.properties.creation_time + blob.content_settings = ContentSettings._from_generated(generated) # pylint: disable=protected-access + blob.size = generated.properties.content_length + blob.page_blob_sequence_number = generated.properties.blob_sequence_number + blob.server_encrypted = generated.properties.server_encrypted + blob.encryption_scope = generated.properties.encryption_scope + blob.deleted_time = generated.properties.deleted_time + blob.remaining_retention_days = generated.properties.remaining_retention_days + blob.blob_tier = generated.properties.access_tier + blob.rehydrate_priority = generated.properties.rehydrate_priority + blob.blob_tier_inferred = generated.properties.access_tier_inferred + blob.archive_status = generated.properties.archive_status + blob.blob_tier_change_time = generated.properties.access_tier_change_time + blob.version_id = generated.version_id + blob.is_current_version = generated.is_current_version + blob.tag_count = generated.properties.tag_count + blob.tags = parse_tags(generated.blob_tags) # pylint: disable=protected-access + blob.object_replication_source_properties = deserialize_ors_policies(generated.object_replication_metadata) + return blob + + +def parse_tags(generated_tags): + # type: (Optional[List[BlobTag]]) -> Union[Dict[str, str], None] + """Deserialize a list of BlobTag objects into a dict. + """ + if generated_tags: + tag_dict = {t.key: t.value for t in generated_tags.blob_tag_set} + return tag_dict + return None diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_download.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_download.py new file mode 100644 index 00000000000..e11023c0f9c --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_download.py @@ -0,0 +1,579 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import sys +import threading +import warnings +from io import BytesIO + +from azure.core.exceptions import HttpResponseError +from azure.core.tracing.common import with_current_context +from ._shared.encryption import decrypt_blob +from ._shared.request_handlers import validate_and_format_range_headers +from ._shared.response_handlers import process_storage_error, parse_length_from_content_range +from ._deserialize import get_page_ranges_result + + +def process_range_and_offset(start_range, end_range, length, encryption): + start_offset, end_offset = 0, 0 + if encryption.get("key") is not None or encryption.get("resolver") is not None: + if start_range is not None: + # Align the start of the range along a 16 byte block + start_offset = start_range % 16 + start_range -= start_offset + + # Include an extra 16 bytes for the IV if necessary + # Because of the previous offsetting, start_range will always + # be a multiple of 16. + if start_range > 0: + start_offset += 16 + start_range -= 16 + + if length is not None: + # Align the end of the range along a 16 byte block + end_offset = 15 - (end_range % 16) + end_range += end_offset + + return (start_range, end_range), (start_offset, end_offset) + + +def process_content(data, start_offset, end_offset, encryption): + if data is None: + raise ValueError("Response cannot be None.") + try: + content = b"".join(list(data)) + except Exception as error: + raise HttpResponseError(message="Download stream interrupted.", response=data.response, error=error) + if content and encryption.get("key") is not None or encryption.get("resolver") is not None: + try: + return decrypt_blob( + encryption.get("required"), + encryption.get("key"), + encryption.get("resolver"), + content, + start_offset, + end_offset, + data.response.headers, + ) + except Exception as error: + raise HttpResponseError(message="Decryption failed.", response=data.response, error=error) + return content + + +class _ChunkDownloader(object): # pylint: disable=too-many-instance-attributes + def __init__( + self, + client=None, + non_empty_ranges=None, + total_size=None, + chunk_size=None, + current_progress=None, + start_range=None, + end_range=None, + stream=None, + parallel=None, + validate_content=None, + encryption_options=None, + **kwargs + ): + self.client = client + self.non_empty_ranges = non_empty_ranges + + # Information on the download range/chunk size + self.chunk_size = chunk_size + self.total_size = total_size + self.start_index = start_range + self.end_index = end_range + + # The destination that we will write to + self.stream = stream + self.stream_lock = threading.Lock() if parallel else None + self.progress_lock = threading.Lock() if parallel else None + + # For a parallel download, the stream is always seekable, so we note down the current position + # in order to seek to the right place when out-of-order chunks come in + self.stream_start = stream.tell() if parallel else None + + # Download progress so far + self.progress_total = current_progress + + # Encryption + self.encryption_options = encryption_options + + # Parameters for each get operation + self.validate_content = validate_content + self.request_options = kwargs + + def _calculate_range(self, chunk_start): + if chunk_start + self.chunk_size > self.end_index: + chunk_end = self.end_index + else: + chunk_end = chunk_start + self.chunk_size + return chunk_start, chunk_end + + def get_chunk_offsets(self): + index = self.start_index + while index < self.end_index: + yield index + index += self.chunk_size + + def process_chunk(self, chunk_start): + chunk_start, chunk_end = self._calculate_range(chunk_start) + chunk_data = self._download_chunk(chunk_start, chunk_end - 1) + length = chunk_end - chunk_start + if length > 0: + self._write_to_stream(chunk_data, chunk_start) + self._update_progress(length) + + def yield_chunk(self, chunk_start): + chunk_start, chunk_end = self._calculate_range(chunk_start) + return self._download_chunk(chunk_start, chunk_end - 1) + + def _update_progress(self, length): + if self.progress_lock: + with self.progress_lock: # pylint: disable=not-context-manager + self.progress_total += length + else: + self.progress_total += length + + def _write_to_stream(self, chunk_data, chunk_start): + if self.stream_lock: + with self.stream_lock: # pylint: disable=not-context-manager + self.stream.seek(self.stream_start + (chunk_start - self.start_index)) + self.stream.write(chunk_data) + else: + self.stream.write(chunk_data) + + def _do_optimize(self, given_range_start, given_range_end): + # If we have no page range list stored, then assume there's data everywhere for that page blob + # or it's a block blob or append blob + if self.non_empty_ranges is None: + return False + + for source_range in self.non_empty_ranges: + # Case 1: As the range list is sorted, if we've reached such a source_range + # we've checked all the appropriate source_range already and haven't found any overlapping. + # so the given range doesn't have any data and download optimization could be applied. + # given range: | | + # source range: | | + if given_range_end < source_range['start']: # pylint:disable=no-else-return + return True + # Case 2: the given range comes after source_range, continue checking. + # given range: | | + # source range: | | + elif source_range['end'] < given_range_start: + pass + # Case 3: source_range and given range overlap somehow, no need to optimize. + else: + return False + # Went through all src_ranges, but nothing overlapped. Optimization will be applied. + return True + + def _download_chunk(self, chunk_start, chunk_end): + download_range, offset = process_range_and_offset( + chunk_start, chunk_end, chunk_end, self.encryption_options + ) + + # No need to download the empty chunk from server if there's no data in the chunk to be downloaded. + # Do optimize and create empty chunk locally if condition is met. + if self._do_optimize(download_range[0], download_range[1]): + chunk_data = b"\x00" * self.chunk_size + else: + range_header, range_validation = validate_and_format_range_headers( + download_range[0], + download_range[1], + check_content_md5=self.validate_content + ) + + try: + _, response = self.client.download( + range=range_header, + range_get_content_md5=range_validation, + validate_content=self.validate_content, + data_stream_total=self.total_size, + download_stream_current=self.progress_total, + **self.request_options + ) + except HttpResponseError as error: + process_storage_error(error) + + chunk_data = process_content(response, offset[0], offset[1], self.encryption_options) + + # This makes sure that if_match is set so that we can validate + # that subsequent downloads are to an unmodified blob + if self.request_options.get("modified_access_conditions"): + self.request_options["modified_access_conditions"].if_match = response.properties.etag + + return chunk_data + + +class _ChunkIterator(object): + """Async iterator for chunks in blob download stream.""" + + def __init__(self, size, content, downloader): + self.size = size + self._current_content = content + self._iter_downloader = downloader + self._iter_chunks = None + self._complete = (size == 0) + + def __len__(self): + return self.size + + def __iter__(self): + return self + + def __next__(self): + """Iterate through responses.""" + if self._complete: + raise StopIteration("Download complete") + if not self._iter_downloader: + # If no iterator was supplied, the download completed with + # the initial GET, so we just return that data + self._complete = True + return self._current_content + + if not self._iter_chunks: + self._iter_chunks = self._iter_downloader.get_chunk_offsets() + else: + chunk = next(self._iter_chunks) + self._current_content = self._iter_downloader.yield_chunk(chunk) + + return self._current_content + + next = __next__ # Python 2 compatibility. + + +class StorageStreamDownloader(object): # pylint: disable=too-many-instance-attributes + """A streaming object to download from Azure Storage. + + :ivar str name: + The name of the blob being downloaded. + :ivar str container: + The name of the container where the blob is. + :ivar ~azure.storage.blob.BlobProperties properties: + The properties of the blob being downloaded. If only a range of the data is being + downloaded, this will be reflected in the properties. + :ivar int size: + The size of the total data in the stream. This will be the byte range if specified, + otherwise the total size of the blob. + """ + + def __init__( + self, + clients=None, + config=None, + start_range=None, + end_range=None, + validate_content=None, + encryption_options=None, + max_concurrency=1, + name=None, + container=None, + encoding=None, + **kwargs + ): + self.name = name + self.container = container + self.properties = None + self.size = None + + self._clients = clients + self._config = config + self._start_range = start_range + self._end_range = end_range + self._max_concurrency = max_concurrency + self._encoding = encoding + self._validate_content = validate_content + self._encryption_options = encryption_options or {} + self._request_options = kwargs + self._location_mode = None + self._download_complete = False + self._current_content = None + self._file_size = None + self._non_empty_ranges = None + self._response = None + + # The service only provides transactional MD5s for chunks under 4MB. + # If validate_content is on, get only self.MAX_CHUNK_GET_SIZE for the first + # chunk so a transactional MD5 can be retrieved. + self._first_get_size = ( + self._config.max_single_get_size if not self._validate_content else self._config.max_chunk_get_size + ) + initial_request_start = self._start_range if self._start_range is not None else 0 + if self._end_range is not None and self._end_range - self._start_range < self._first_get_size: + initial_request_end = self._end_range + else: + initial_request_end = initial_request_start + self._first_get_size - 1 + + self._initial_range, self._initial_offset = process_range_and_offset( + initial_request_start, initial_request_end, self._end_range, self._encryption_options + ) + + self._response = self._initial_request() + self.properties = self._response.properties + self.properties.name = self.name + self.properties.container = self.container + + # Set the content length to the download size instead of the size of + # the last range + self.properties.size = self.size + + # Overwrite the content range to the user requested range + self.properties.content_range = "bytes {0}-{1}/{2}".format( + self._start_range, + self._end_range, + self._file_size + ) + + # Overwrite the content MD5 as it is the MD5 for the last range instead + # of the stored MD5 + # TODO: Set to the stored MD5 when the service returns this + self.properties.content_md5 = None + + if self.size == 0: + self._current_content = b"" + else: + self._current_content = process_content( + self._response, + self._initial_offset[0], + self._initial_offset[1], + self._encryption_options + ) + + def __len__(self): + return self.size + + def _initial_request(self): + range_header, range_validation = validate_and_format_range_headers( + self._initial_range[0], + self._initial_range[1], + start_range_required=False, + end_range_required=False, + check_content_md5=self._validate_content + ) + + try: + location_mode, response = self._clients.blob.download( + range=range_header, + range_get_content_md5=range_validation, + validate_content=self._validate_content, + data_stream_total=None, + download_stream_current=0, + **self._request_options + ) + + # Check the location we read from to ensure we use the same one + # for subsequent requests. + self._location_mode = location_mode + + # Parse the total file size and adjust the download size if ranges + # were specified + self._file_size = parse_length_from_content_range(response.properties.content_range) + if self._end_range is not None: + # Use the end range index unless it is over the end of the file + self.size = min(self._file_size, self._end_range - self._start_range + 1) + elif self._start_range is not None: + self.size = self._file_size - self._start_range + else: + self.size = self._file_size + + except HttpResponseError as error: + if self._start_range is None and error.response.status_code == 416: + # Get range will fail on an empty file. If the user did not + # request a range, do a regular get request in order to get + # any properties. + try: + _, response = self._clients.blob.download( + validate_content=self._validate_content, + data_stream_total=0, + download_stream_current=0, + **self._request_options + ) + except HttpResponseError as error: + process_storage_error(error) + + # Set the download size to empty + self.size = 0 + self._file_size = 0 + else: + process_storage_error(error) + + # get page ranges to optimize downloading sparse page blob + if response.properties.blob_type == 'PageBlob': + try: + page_ranges = self._clients.page_blob.get_page_ranges() + self._non_empty_ranges = get_page_ranges_result(page_ranges)[0] + # according to the REST API documentation: + # in a highly fragmented page blob with a large number of writes, + # a Get Page Ranges request can fail due to an internal server timeout. + # thus, if the page blob is not sparse, it's ok for it to fail + except HttpResponseError: + pass + + # If the file is small, the download is complete at this point. + # If file size is large, download the rest of the file in chunks. + if response.properties.size != self.size: + # Lock on the etag. This can be overriden by the user by specifying '*' + if self._request_options.get("modified_access_conditions"): + if not self._request_options["modified_access_conditions"].if_match: + self._request_options["modified_access_conditions"].if_match = response.properties.etag + else: + self._download_complete = True + return response + + def chunks(self): + if self.size == 0 or self._download_complete: + iter_downloader = None + else: + data_end = self._file_size + if self._end_range is not None: + # Use the end range index unless it is over the end of the file + data_end = min(self._file_size, self._end_range + 1) + iter_downloader = _ChunkDownloader( + client=self._clients.blob, + non_empty_ranges=self._non_empty_ranges, + total_size=self.size, + chunk_size=self._config.max_chunk_get_size, + current_progress=self._first_get_size, + start_range=self._initial_range[1] + 1, # start where the first download ended + end_range=data_end, + stream=None, + parallel=False, + validate_content=self._validate_content, + encryption_options=self._encryption_options, + use_location=self._location_mode, + **self._request_options + ) + return _ChunkIterator( + size=self.size, + content=self._current_content, + downloader=iter_downloader) + + def readall(self): + """Download the contents of this blob. + + This operation is blocking until all data is downloaded. + :rtype: bytes or str + """ + stream = BytesIO() + self.readinto(stream) + data = stream.getvalue() + if self._encoding: + return data.decode(self._encoding) + return data + + def content_as_bytes(self, max_concurrency=1): + """Download the contents of this file. + + This operation is blocking until all data is downloaded. + + :keyword int max_concurrency: + The number of parallel connections with which to download. + :rtype: bytes + """ + warnings.warn( + "content_as_bytes is deprecated, use readall instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + return self.readall() + + def content_as_text(self, max_concurrency=1, encoding="UTF-8"): + """Download the contents of this blob, and decode as text. + + This operation is blocking until all data is downloaded. + + :keyword int max_concurrency: + The number of parallel connections with which to download. + :param str encoding: + Test encoding to decode the downloaded bytes. Default is UTF-8. + :rtype: str + """ + warnings.warn( + "content_as_text is deprecated, use readall instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + self._encoding = encoding + return self.readall() + + def readinto(self, stream): + """Download the contents of this file to a stream. + + :param stream: + The stream to download to. This can be an open file-handle, + or any writable stream. The stream must be seekable if the download + uses more than one parallel connection. + :returns: The number of bytes read. + :rtype: int + """ + # The stream must be seekable if parallel download is required + parallel = self._max_concurrency > 1 + if parallel: + error_message = "Target stream handle must be seekable." + if sys.version_info >= (3,) and not stream.seekable(): + raise ValueError(error_message) + + try: + stream.seek(stream.tell()) + except (NotImplementedError, AttributeError): + raise ValueError(error_message) + + # Write the content to the user stream + stream.write(self._current_content) + if self._download_complete: + return self.size + + data_end = self._file_size + if self._end_range is not None: + # Use the length unless it is over the end of the file + data_end = min(self._file_size, self._end_range + 1) + + downloader = _ChunkDownloader( + client=self._clients.blob, + non_empty_ranges=self._non_empty_ranges, + total_size=self.size, + chunk_size=self._config.max_chunk_get_size, + current_progress=self._first_get_size, + start_range=self._initial_range[1] + 1, # Start where the first download ended + end_range=data_end, + stream=stream, + parallel=parallel, + validate_content=self._validate_content, + encryption_options=self._encryption_options, + use_location=self._location_mode, + **self._request_options + ) + if parallel: + import concurrent.futures + executor = concurrent.futures.ThreadPoolExecutor(self._max_concurrency) + list(executor.map( + with_current_context(downloader.process_chunk), + downloader.get_chunk_offsets() + )) + else: + for chunk in downloader.get_chunk_offsets(): + downloader.process_chunk(chunk) + return self.size + + def download_to_stream(self, stream, max_concurrency=1): + """Download the contents of this blob to a stream. + + :param stream: + The stream to download to. This can be an open file-handle, + or any writable stream. The stream must be seekable if the download + uses more than one parallel connection. + :returns: The properties of the downloaded blob. + :rtype: Any + """ + warnings.warn( + "download_to_stream is deprecated, use readinto instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + self.readinto(stream) + return self.properties diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/__init__.py new file mode 100644 index 00000000000..f5c8f4a954d --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/__init__.py @@ -0,0 +1,18 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._azure_blob_storage import AzureBlobStorage +__all__ = ['AzureBlobStorage'] + +from .version import VERSION + +__version__ = VERSION + diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/_azure_blob_storage.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/_azure_blob_storage.py new file mode 100644 index 00000000000..aa278421202 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/_azure_blob_storage.py @@ -0,0 +1,83 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core import PipelineClient +from msrest import Serializer, Deserializer + +from ._configuration import AzureBlobStorageConfiguration +from azure.core.exceptions import map_error +from .operations import ServiceOperations +from .operations import ContainerOperations +from .operations import DirectoryOperations +from .operations import BlobOperations +from .operations import PageBlobOperations +from .operations import AppendBlobOperations +from .operations import BlockBlobOperations +from . import models + + +class AzureBlobStorage(object): + """AzureBlobStorage + + + :ivar service: Service operations + :vartype service: azure.storage.blob.operations.ServiceOperations + :ivar container: Container operations + :vartype container: azure.storage.blob.operations.ContainerOperations + :ivar directory: Directory operations + :vartype directory: azure.storage.blob.operations.DirectoryOperations + :ivar blob: Blob operations + :vartype blob: azure.storage.blob.operations.BlobOperations + :ivar page_blob: PageBlob operations + :vartype page_blob: azure.storage.blob.operations.PageBlobOperations + :ivar append_blob: AppendBlob operations + :vartype append_blob: azure.storage.blob.operations.AppendBlobOperations + :ivar block_blob: BlockBlob operations + :vartype block_blob: azure.storage.blob.operations.BlockBlobOperations + + :param url: The URL of the service account, container, or blob that is the + targe of the desired operation. + :type url: str + """ + + def __init__(self, url, **kwargs): + + base_url = '{url}' + self._config = AzureBlobStorageConfiguration(url, **kwargs) + self._client = PipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self.api_version = '2019-12-12' + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.service = ServiceOperations( + self._client, self._config, self._serialize, self._deserialize) + self.container = ContainerOperations( + self._client, self._config, self._serialize, self._deserialize) + self.directory = DirectoryOperations( + self._client, self._config, self._serialize, self._deserialize) + self.blob = BlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.page_blob = PageBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.append_blob = AppendBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.block_blob = BlockBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + + def close(self): + self._client.close() + def __enter__(self): + self._client.__enter__() + return self + def __exit__(self, *exc_details): + self._client.__exit__(*exc_details) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/_configuration.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/_configuration.py new file mode 100644 index 00000000000..5bf56719ad1 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/_configuration.py @@ -0,0 +1,52 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +from .version import VERSION + + +class AzureBlobStorageConfiguration(Configuration): + """Configuration for AzureBlobStorage + Note that all parameters used to create this instance are saved as instance + attributes. + + :param url: The URL of the service account, container, or blob that is the + targe of the desired operation. + :type url: str + :ivar version: Specifies the version of the operation to use for this + request. + :type version: str + """ + + def __init__(self, url, **kwargs): + + if url is None: + raise ValueError("Parameter 'url' must not be None.") + + super(AzureBlobStorageConfiguration, self).__init__(**kwargs) + self._configure(**kwargs) + + self.user_agent_policy.add_user_agent('azsdk-python-azureblobstorage/{}'.format(VERSION)) + self.generate_client_request_id = True + + self.url = url + self.version = "2019-12-12" + + def _configure(self, **kwargs): + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/__init__.py new file mode 100644 index 00000000000..009c9659435 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/__init__.py @@ -0,0 +1,13 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._azure_blob_storage_async import AzureBlobStorage +__all__ = ['AzureBlobStorage'] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/_azure_blob_storage_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/_azure_blob_storage_async.py new file mode 100644 index 00000000000..7b1aa347f11 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/_azure_blob_storage_async.py @@ -0,0 +1,84 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core import AsyncPipelineClient +from msrest import Serializer, Deserializer + +from ._configuration_async import AzureBlobStorageConfiguration +from azure.core.exceptions import map_error +from .operations_async import ServiceOperations +from .operations_async import ContainerOperations +from .operations_async import DirectoryOperations +from .operations_async import BlobOperations +from .operations_async import PageBlobOperations +from .operations_async import AppendBlobOperations +from .operations_async import BlockBlobOperations +from .. import models + + +class AzureBlobStorage(object): + """AzureBlobStorage + + + :ivar service: Service operations + :vartype service: azure.storage.blob.aio.operations_async.ServiceOperations + :ivar container: Container operations + :vartype container: azure.storage.blob.aio.operations_async.ContainerOperations + :ivar directory: Directory operations + :vartype directory: azure.storage.blob.aio.operations_async.DirectoryOperations + :ivar blob: Blob operations + :vartype blob: azure.storage.blob.aio.operations_async.BlobOperations + :ivar page_blob: PageBlob operations + :vartype page_blob: azure.storage.blob.aio.operations_async.PageBlobOperations + :ivar append_blob: AppendBlob operations + :vartype append_blob: azure.storage.blob.aio.operations_async.AppendBlobOperations + :ivar block_blob: BlockBlob operations + :vartype block_blob: azure.storage.blob.aio.operations_async.BlockBlobOperations + + :param url: The URL of the service account, container, or blob that is the + targe of the desired operation. + :type url: str + """ + + def __init__( + self, url, **kwargs): + + base_url = '{url}' + self._config = AzureBlobStorageConfiguration(url, **kwargs) + self._client = AsyncPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self.api_version = '2019-12-12' + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.service = ServiceOperations( + self._client, self._config, self._serialize, self._deserialize) + self.container = ContainerOperations( + self._client, self._config, self._serialize, self._deserialize) + self.directory = DirectoryOperations( + self._client, self._config, self._serialize, self._deserialize) + self.blob = BlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.page_blob = PageBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.append_blob = AppendBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.block_blob = BlockBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + + async def close(self): + await self._client.close() + async def __aenter__(self): + await self._client.__aenter__() + return self + async def __aexit__(self, *exc_details): + await self._client.__aexit__(*exc_details) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/_configuration_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/_configuration_async.py new file mode 100644 index 00000000000..a500a0cfe38 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/_configuration_async.py @@ -0,0 +1,53 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +from ..version import VERSION + + +class AzureBlobStorageConfiguration(Configuration): + """Configuration for AzureBlobStorage + Note that all parameters used to create this instance are saved as instance + attributes. + + :param url: The URL of the service account, container, or blob that is the + targe of the desired operation. + :type url: str + :ivar version: Specifies the version of the operation to use for this + request. + :type version: str + """ + + def __init__(self, url, **kwargs): + + if url is None: + raise ValueError("Parameter 'url' must not be None.") + + super(AzureBlobStorageConfiguration, self).__init__(**kwargs) + self._configure(**kwargs) + + self.user_agent_policy.add_user_agent('azsdk-python-azureblobstorage/{}'.format(VERSION)) + self.generate_client_request_id = True + self.accept_language = None + + self.url = url + self.version = "2019-12-12" + + def _configure(self, **kwargs): + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/__init__.py new file mode 100644 index 00000000000..dec05192c81 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/__init__.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._service_operations_async import ServiceOperations +from ._container_operations_async import ContainerOperations +from ._directory_operations_async import DirectoryOperations +from ._blob_operations_async import BlobOperations +from ._page_blob_operations_async import PageBlobOperations +from ._append_blob_operations_async import AppendBlobOperations +from ._block_blob_operations_async import BlockBlobOperations + +__all__ = [ + 'ServiceOperations', + 'ContainerOperations', + 'DirectoryOperations', + 'BlobOperations', + 'PageBlobOperations', + 'AppendBlobOperations', + 'BlockBlobOperations', +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_append_blob_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_append_blob_operations_async.py new file mode 100644 index 00000000000..ea79827cdbd --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_append_blob_operations_async.py @@ -0,0 +1,694 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class AppendBlobOperations: + """AppendBlobOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "AppendBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "AppendBlob" + + async def create(self, content_length, timeout=None, metadata=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Create Append Blob operation creates a new append blob. + + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}/{blob}'} + + async def append_block(self, body, content_length, timeout=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, lease_access_conditions=None, append_position_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Append Block operation commits a new block of data to the end of an + existing append blob. The Append Block operation is permitted only if + the blob was created with x-ms-blob-type set to AppendBlob. Append + Block is supported only on version 2015-02-21 version or later. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + max_size = None + if append_position_access_conditions is not None: + max_size = append_position_access_conditions.max_size + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "appendblock" + + # Construct URL + url = self.append_block.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if max_size is not None: + header_parameters['x-ms-blob-condition-maxsize'] = self._serialize.header("max_size", max_size, 'long') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-append-offset': self._deserialize('str', response.headers.get('x-ms-blob-append-offset')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + append_block.metadata = {'url': '/{containerName}/{blob}'} + + async def append_block_from_url(self, source_url, content_length, source_range=None, source_content_md5=None, source_contentcrc64=None, timeout=None, transactional_content_md5=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, append_position_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, *, cls=None, **kwargs): + """The Append Block operation commits a new block of data to the end of an + existing append blob where the contents are read from a source url. The + Append Block operation is permitted only if the blob was created with + x-ms-blob-type set to AppendBlob. Append Block is supported only on + version 2015-02-21 version or later. + + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param content_length: The length of the request. + :type content_length: long + :param source_range: Bytes of source data in the specified range. + :type source_range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + max_size = None + if append_position_access_conditions is not None: + max_size = append_position_access_conditions.max_size + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "appendblock" + + # Construct URL + url = self.append_block_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + if source_range is not None: + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if max_size is not None: + header_parameters['x-ms-blob-condition-maxsize'] = self._serialize.header("max_size", max_size, 'long') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-append-offset': self._deserialize('str', response.headers.get('x-ms-blob-append-offset')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + append_block_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def seal(self, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, append_position_access_conditions=None, *, cls=None, **kwargs): + """The Seal operation seals the Append Blob to make it read-only. Seal is + supported only on version 2019-12-12 version or later. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + + comp = "seal" + + # Construct URL + url = self.seal.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + seal.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_blob_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_blob_operations_async.py new file mode 100644 index 00000000000..24aea41c4e4 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_blob_operations_async.py @@ -0,0 +1,3064 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class BlobOperations: + """BlobOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_requires_sync: . Constant value: "true". + :ivar x_ms_copy_action: . Constant value: "abort". + :ivar restype: . Constant value: "account". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_requires_sync = "true" + self.x_ms_copy_action = "abort" + self.restype = "account" + + async def download(self, snapshot=None, version_id=None, timeout=None, range=None, range_get_content_md5=None, range_get_content_crc64=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Download operation reads or downloads a blob from the system, + including its metadata and properties. You can also call Download to + read a snapshot. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param range_get_content_md5: When set to true and specified together + with the Range, the service returns the MD5 hash for the range, as + long as the range is less than or equal to 4 MB in size. + :type range_get_content_md5: bool + :param range_get_content_crc64: When set to true and specified + together with the Range, the service returns the CRC64 hash for the + range, as long as the range is less than or equal to 4 MB in size. + :type range_get_content_crc64: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.download.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + if range_get_content_md5 is not None: + header_parameters['x-ms-range-get-content-md5'] = self._serialize.header("range_get_content_md5", range_get_content_md5, 'bool') + if range_get_content_crc64 is not None: + header_parameters['x-ms-range-get-content-crc64'] = self._serialize.header("range_get_content_crc64", range_get_content_crc64, 'bool') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 206]: + await response.load_body() + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + if response.status_code == 206: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + download.metadata = {'url': '/{containerName}/{blob}'} + + async def get_properties(self, snapshot=None, version_id=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Get Properties operation returns all user-defined metadata, + standard HTTP properties, and system properties for the blob. It does + not return the content of the blob. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-creation-time': self._deserialize('rfc-1123', response.headers.get('x-ms-creation-time')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-incremental-copy': self._deserialize('bool', response.headers.get('x-ms-incremental-copy')), + 'x-ms-copy-destination-snapshot': self._deserialize('str', response.headers.get('x-ms-copy-destination-snapshot')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-access-tier': self._deserialize('str', response.headers.get('x-ms-access-tier')), + 'x-ms-access-tier-inferred': self._deserialize('bool', response.headers.get('x-ms-access-tier-inferred')), + 'x-ms-archive-status': self._deserialize('str', response.headers.get('x-ms-archive-status')), + 'x-ms-access-tier-change-time': self._deserialize('rfc-1123', response.headers.get('x-ms-access-tier-change-time')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'x-ms-is-current-version': self._deserialize('bool', response.headers.get('x-ms-is-current-version')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-expiry-time': self._deserialize('rfc-1123', response.headers.get('x-ms-expiry-time')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-rehydrate-priority': self._deserialize('str', response.headers.get('x-ms-rehydrate-priority')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_properties.metadata = {'url': '/{containerName}/{blob}'} + + async def delete(self, snapshot=None, version_id=None, timeout=None, delete_snapshots=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """If the storage account's soft delete feature is disabled then, when a + blob is deleted, it is permanently removed from the storage account. If + the storage account's soft delete feature is enabled, then, when a blob + is deleted, it is marked for deletion and becomes inaccessible + immediately. However, the blob service retains the blob or snapshot for + the number of days specified by the DeleteRetentionPolicy section of + [Storage service properties] (Set-Blob-Service-Properties.md). After + the specified number of days has passed, the blob's data is permanently + removed from the storage account. Note that you continue to be charged + for the soft-deleted blob's storage until it is permanently removed. + Use the List Blobs API and specify the "include=deleted" query + parameter to discover which blobs and snapshots have been soft deleted. + You can then use the Undelete Blob API to restore a soft-deleted blob. + All other operations on a soft-deleted blob or snapshot causes the + service to return an HTTP status code of 404 (ResourceNotFound). + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param delete_snapshots: Required if the blob has associated + snapshots. Specify one of the following two options: include: Delete + the base blob and all of its snapshots. only: Delete only the blob's + snapshots and not the blob itself. Possible values include: 'include', + 'only' + :type delete_snapshots: str or + ~azure.storage.blob.models.DeleteSnapshotsOptionType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if delete_snapshots is not None: + header_parameters['x-ms-delete-snapshots'] = self._serialize.header("delete_snapshots", delete_snapshots, 'DeleteSnapshotsOptionType') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{containerName}/{blob}'} + + async def set_access_control(self, timeout=None, owner=None, group=None, posix_permissions=None, posix_acl=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Set the owner, group, permissions, or access control list for a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param owner: Optional. The owner of the blob or directory. + :type owner: str + :param group: Optional. The owning group of the blob or directory. + :type group: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_acl: Sets POSIX access control rights on files and + directories. The value is a comma-separated list of access control + entries. Each access control entry (ACE) consists of a scope, a type, + a user or group identifier, and permissions in the format + "[scope:][type]:[id]:[permissions]". + :type posix_acl: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "setAccessControl" + + # Construct URL + url = self.set_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if owner is not None: + header_parameters['x-ms-owner'] = self._serialize.header("owner", owner, 'str') + if group is not None: + header_parameters['x-ms-group'] = self._serialize.header("group", group, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_acl is not None: + header_parameters['x-ms-acl'] = self._serialize.header("posix_acl", posix_acl, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + set_access_control.metadata = {'url': '/{filesystem}/{path}'} + + async def get_access_control(self, timeout=None, upn=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Get the owner, group, permissions, or access control list for a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param upn: Optional. Valid only when Hierarchical Namespace is + enabled for the account. If "true", the identity values returned in + the x-ms-owner, x-ms-group, and x-ms-acl response headers will be + transformed from Azure Active Directory Object IDs to User Principal + Names. If "false", the values will be returned as Azure Active + Directory Object IDs. The default value is false. + :type upn: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "getAccessControl" + + # Construct URL + url = self.get_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if upn is not None: + query_parameters['upn'] = self._serialize.query("upn", upn, 'bool') + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-owner': self._deserialize('str', response.headers.get('x-ms-owner')), + 'x-ms-group': self._deserialize('str', response.headers.get('x-ms-group')), + 'x-ms-permissions': self._deserialize('str', response.headers.get('x-ms-permissions')), + 'x-ms-acl': self._deserialize('str', response.headers.get('x-ms-acl')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + get_access_control.metadata = {'url': '/{filesystem}/{path}'} + + async def rename(self, rename_source, timeout=None, path_rename_mode=None, directory_properties=None, posix_permissions=None, posix_umask=None, source_lease_id=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, *, cls=None, **kwargs): + """Rename a blob/file. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param rename_source: The file or directory to be renamed. The value + must have the following format: "/{filesysystem}/{path}". If + "x-ms-properties" is specified, the properties will overwrite the + existing properties; otherwise, the existing properties will be + preserved. + :type rename_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param path_rename_mode: Determines the behavior of the rename + operation. Possible values include: 'legacy', 'posix' + :type path_rename_mode: str or + ~azure.storage.blob.models.PathRenameMode + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param source_lease_id: A lease ID for the source path. If specified, + the source path must have an active lease and the lease ID must match. + :type source_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + # Construct URL + url = self.rename.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if path_rename_mode is not None: + query_parameters['mode'] = self._serialize.query("path_rename_mode", path_rename_mode, 'PathRenameMode') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-rename-source'] = self._serialize.header("rename_source", rename_source, 'str') + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + if source_lease_id is not None: + header_parameters['x-ms-source-lease-id'] = self._serialize.header("source_lease_id", source_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + rename.metadata = {'url': '/{filesystem}/{path}'} + + async def undelete(self, timeout=None, request_id=None, *, cls=None, **kwargs): + """Undelete a blob that was previously soft deleted. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "undelete" + + # Construct URL + url = self.undelete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + undelete.metadata = {'url': '/{containerName}/{blob}'} + + async def set_expiry(self, expiry_options, timeout=None, request_id=None, expires_on=None, *, cls=None, **kwargs): + """Sets the time a blob will expire and be deleted. + + :param expiry_options: Required. Indicates mode of the expiry time. + Possible values include: 'NeverExpire', 'RelativeToCreation', + 'RelativeToNow', 'Absolute' + :type expiry_options: str or + ~azure.storage.blob.models.BlobExpiryOptions + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param expires_on: The time to set the blob to expiry + :type expires_on: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "expiry" + + # Construct URL + url = self.set_expiry.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-expiry-option'] = self._serialize.header("expiry_options", expiry_options, 'str') + if expires_on is not None: + header_parameters['x-ms-expiry-time'] = self._serialize.header("expires_on", expires_on, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_expiry.metadata = {'url': '/{containerName}/{blob}'} + + async def set_http_headers(self, timeout=None, request_id=None, blob_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Set HTTP Headers operation sets system properties on the blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.set_http_headers.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_http_headers.metadata = {'url': '/{containerName}/{blob}'} + + async def set_metadata(self, timeout=None, metadata=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Set Blob Metadata operation sets user-defined metadata for the + specified blob as one or more name-value pairs. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "metadata" + + # Construct URL + url = self.set_metadata.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_metadata.metadata = {'url': '/{containerName}/{blob}'} + + async def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param duration: Specifies the duration of the lease, in seconds, or + negative one (-1) for a lease that never expires. A non-infinite lease + can be between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. + :type duration: int + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "acquire" + + # Construct URL + url = self.acquire_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if duration is not None: + header_parameters['x-ms-lease-duration'] = self._serialize.header("duration", duration, 'int') + if proposed_lease_id is not None: + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + acquire_lease.metadata = {'url': '/{containerName}/{blob}'} + + async def release_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "release" + + # Construct URL + url = self.release_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + release_lease.metadata = {'url': '/{containerName}/{blob}'} + + async def renew_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "renew" + + # Construct URL + url = self.renew_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + renew_lease.metadata = {'url': '/{containerName}/{blob}'} + + async def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "change" + + # Construct URL + url = self.change_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + change_lease.metadata = {'url': '/{containerName}/{blob}'} + + async def break_lease(self, timeout=None, break_period=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param break_period: For a break operation, proposed duration the + lease should continue before it is broken, in seconds, between 0 and + 60. This break period is only used if it is shorter than the time + remaining on the lease. If longer, the time remaining on the lease is + used. A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break period. + If this header does not appear with a break operation, a + fixed-duration lease breaks after the remaining lease period elapses, + and an infinite lease breaks immediately. + :type break_period: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "break" + + # Construct URL + url = self.break_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if break_period is not None: + header_parameters['x-ms-lease-break-period'] = self._serialize.header("break_period", break_period, 'int') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-time': self._deserialize('int', response.headers.get('x-ms-lease-time')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + break_lease.metadata = {'url': '/{containerName}/{blob}'} + + async def create_snapshot(self, timeout=None, metadata=None, request_id=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, lease_access_conditions=None, *, cls=None, **kwargs): + """The Create Snapshot operation creates a read-only snapshot of a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + comp = "snapshot" + + # Construct URL + url = self.create_snapshot.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-snapshot': self._deserialize('str', response.headers.get('x-ms-snapshot')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create_snapshot.metadata = {'url': '/{containerName}/{blob}'} + + async def start_copy_from_url(self, copy_source, timeout=None, metadata=None, tier=None, rehydrate_priority=None, request_id=None, blob_tags_string=None, seal_blob=None, source_modified_access_conditions=None, modified_access_conditions=None, lease_access_conditions=None, *, cls=None, **kwargs): + """The Start Copy From URL operation copies a blob or an internet resource + to a new blob. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param rehydrate_priority: Optional: Indicates the priority with which + to rehydrate an archived blob. Possible values include: 'High', + 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param seal_blob: Overrides the sealed state of the destination blob. + Service version 2019-12-12 and newer. + :type seal_blob: bool + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + source_if_tags = None + if source_modified_access_conditions is not None: + source_if_tags = source_modified_access_conditions.source_if_tags + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + # Construct URL + url = self.start_copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if rehydrate_priority is not None: + header_parameters['x-ms-rehydrate-priority'] = self._serialize.header("rehydrate_priority", rehydrate_priority, 'str') + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + if seal_blob is not None: + header_parameters['x-ms-seal-blob'] = self._serialize.header("seal_blob", seal_blob, 'bool') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + if source_if_tags is not None: + header_parameters['x-ms-source-if-tags'] = self._serialize.header("source_if_tags", source_if_tags, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + start_copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def copy_from_url(self, copy_source, timeout=None, metadata=None, tier=None, request_id=None, source_content_md5=None, blob_tags_string=None, source_modified_access_conditions=None, modified_access_conditions=None, lease_access_conditions=None, *, cls=None, **kwargs): + """The Copy From URL operation copies a blob or an internet resource to a + new blob. It will not return a response until the copy is complete. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + # Construct URL + url = self.copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-requires-sync'] = self._serialize.header("self.x_ms_requires_sync", self.x_ms_requires_sync, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.SyncCopyStatusType, response.headers.get('x-ms-copy-status')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def abort_copy_from_url(self, copy_id, timeout=None, request_id=None, lease_access_conditions=None, *, cls=None, **kwargs): + """The Abort Copy From URL operation aborts a pending Copy From URL + operation, and leaves a destination blob with zero length and full + metadata. + + :param copy_id: The copy identifier provided in the x-ms-copy-id + header of the original Copy Blob operation. + :type copy_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + comp = "copy" + + # Construct URL + url = self.abort_copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['copyid'] = self._serialize.query("copy_id", copy_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-copy-action'] = self._serialize.header("self.x_ms_copy_action", self.x_ms_copy_action, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + abort_copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def set_tier(self, tier, snapshot=None, version_id=None, timeout=None, rehydrate_priority=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Set Tier operation sets the tier on a blob. The operation is + allowed on a page blob in a premium storage account and on a block blob + in a blob storage account (locally redundant storage only). A premium + page blob's tier determines the allowed size, IOPS, and bandwidth of + the blob. A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param tier: Indicates the tier to be set on the blob. Possible values + include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', 'P40', 'P50', 'P60', + 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierRequired + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param rehydrate_priority: Optional: Indicates the priority with which + to rehydrate an archived blob. Possible values include: 'High', + 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tier" + + # Construct URL + url = self.set_tier.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if rehydrate_priority is not None: + header_parameters['x-ms-rehydrate-priority'] = self._serialize.header("rehydrate_priority", rehydrate_priority, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_tier.metadata = {'url': '/{containerName}/{blob}'} + + async def get_account_info(self, *, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("self.restype", self.restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/{containerName}/{blob}'} + + async def query(self, query_request=None, snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Query operation enables users to select/project on blob data by + providing simple query expressions. + + :param query_request: the query request + :type query_request: ~azure.storage.blob.models.QueryRequest + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "query" + + # Construct URL + url = self.query.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + if query_request is not None: + body_content = self._serialize.body(query_request, 'QueryRequest') + else: + body_content = None + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 206]: + await response.load_body() + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + if response.status_code == 206: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + query.metadata = {'url': '/{containerName}/{blob}'} + + async def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Get Tags operation enables users to get the tags associated with a + blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: BlobTags or the result of cls(response) + :rtype: ~azure.storage.blob.models.BlobTags + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tags" + + # Construct URL + url = self.get_tags.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlobTags', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_tags.metadata = {'url': '/{containerName}/{blob}'} + + async def set_tags(self, timeout=None, version_id=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, tags=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Set Tags operation enables users to set tags on a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param tags: Blob tags + :type tags: ~azure.storage.blob.models.BlobTags + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tags" + + # Construct URL + url = self.set_tags.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + if tags is not None: + body_content = self._serialize.body(tags, 'BlobTags') + else: + body_content = None + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_tags.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_block_blob_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_block_blob_operations_async.py new file mode 100644 index 00000000000..e06937056b0 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_block_blob_operations_async.py @@ -0,0 +1,833 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class BlockBlobOperations: + """BlockBlobOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "BlockBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "BlockBlob" + + async def upload(self, body, content_length, timeout=None, transactional_content_md5=None, metadata=None, tier=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Upload Block Blob operation updates the content of an existing + block blob. Updating an existing block blob overwrites any existing + metadata on the blob. Partial updates are not supported with Put Blob; + the content of the existing blob is overwritten with the content of the + new blob. To perform a partial update of the content of a block blob, + use the Put Block List operation. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.upload.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload.metadata = {'url': '/{containerName}/{blob}'} + + async def stage_block(self, block_id, content_length, body, transactional_content_md5=None, transactional_content_crc64=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, *, cls=None, **kwargs): + """The Stage Block operation creates a new block to be committed as part + of a blob. + + :param block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the blockid parameter must be the same size for each block. + :type block_id: str + :param content_length: The length of the request. + :type content_length: long + :param body: Initial data + :type body: Generator + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + + comp = "block" + + # Construct URL + url = self.stage_block.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['blockid'] = self._serialize.query("block_id", block_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + stage_block.metadata = {'url': '/{containerName}/{blob}'} + + async def stage_block_from_url(self, block_id, content_length, source_url, source_range=None, source_content_md5=None, source_contentcrc64=None, timeout=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, source_modified_access_conditions=None, *, cls=None, **kwargs): + """The Stage Block operation creates a new block to be committed as part + of a blob where the contents are read from a URL. + + :param block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the blockid parameter must be the same size for each block. + :type block_id: str + :param content_length: The length of the request. + :type content_length: long + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param source_range: Bytes of source data in the specified range. + :type source_range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "block" + + # Construct URL + url = self.stage_block_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['blockid'] = self._serialize.query("block_id", block_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + if source_range is not None: + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + stage_block_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def commit_block_list(self, blocks, timeout=None, transactional_content_md5=None, transactional_content_crc64=None, metadata=None, tier=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Commit Block List operation writes a blob by specifying the list of + block IDs that make up the blob. In order to be written as part of a + blob, a block must have been successfully written to the server in a + prior Put Block operation. You can call Put Block List to update a blob + by uploading only those blocks that have changed, then committing the + new and existing blocks together. You can do this by specifying whether + to commit a block from the committed block list or from the uncommitted + block list, or to commit the most recently uploaded version of the + block, whichever list it may belong to. + + :param blocks: + :type blocks: ~azure.storage.blob.models.BlockLookupList + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "blocklist" + + # Construct URL + url = self.commit_block_list.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + body_content = self._serialize.body(blocks, 'BlockLookupList') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + commit_block_list.metadata = {'url': '/{containerName}/{blob}'} + + async def get_block_list(self, list_type="committed", snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Get Block List operation retrieves the list of blocks that have + been uploaded as part of a block blob. + + :param list_type: Specifies whether to return the list of committed + blocks, the list of uncommitted blocks, or both lists together. + Possible values include: 'committed', 'uncommitted', 'all' + :type list_type: str or ~azure.storage.blob.models.BlockListType + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: BlockList or the result of cls(response) + :rtype: ~azure.storage.blob.models.BlockList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "blocklist" + + # Construct URL + url = self.get_block_list.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + query_parameters['blocklisttype'] = self._serialize.query("list_type", list_type, 'BlockListType') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlockList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_block_list.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_container_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_container_operations_async.py new file mode 100644 index 00000000000..b7e1eb840e7 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_container_operations_async.py @@ -0,0 +1,1400 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class ContainerOperations: + """ContainerOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + + async def create(self, timeout=None, metadata=None, access=None, request_id=None, container_cpk_scope_info=None, *, cls=None, **kwargs): + """creates a new container under the specified account. If the container + with the same name already exists, the operation fails. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param access: Specifies whether data in the container may be accessed + publicly and the level of access. Possible values include: + 'container', 'blob' + :type access: str or ~azure.storage.blob.models.PublicAccessType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param container_cpk_scope_info: Additional parameters for the + operation + :type container_cpk_scope_info: + ~azure.storage.blob.models.ContainerCpkScopeInfo + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + default_encryption_scope = None + if container_cpk_scope_info is not None: + default_encryption_scope = container_cpk_scope_info.default_encryption_scope + prevent_encryption_scope_override = None + if container_cpk_scope_info is not None: + prevent_encryption_scope_override = container_cpk_scope_info.prevent_encryption_scope_override + + restype = "container" + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if access is not None: + header_parameters['x-ms-blob-public-access'] = self._serialize.header("access", access, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if default_encryption_scope is not None: + header_parameters['x-ms-default-encryption-scope'] = self._serialize.header("default_encryption_scope", default_encryption_scope, 'str') + if prevent_encryption_scope_override is not None: + header_parameters['x-ms-deny-encryption-scope-override'] = self._serialize.header("prevent_encryption_scope_override", prevent_encryption_scope_override, 'bool') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}'} + + async def get_properties(self, timeout=None, request_id=None, lease_access_conditions=None, *, cls=None, **kwargs): + """returns all user-defined metadata and system properties for the + specified container. The data returned does not include the container's + list of blobs. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + restype = "container" + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-public-access': self._deserialize('str', response.headers.get('x-ms-blob-public-access')), + 'x-ms-has-immutability-policy': self._deserialize('bool', response.headers.get('x-ms-has-immutability-policy')), + 'x-ms-has-legal-hold': self._deserialize('bool', response.headers.get('x-ms-has-legal-hold')), + 'x-ms-default-encryption-scope': self._deserialize('str', response.headers.get('x-ms-default-encryption-scope')), + 'x-ms-deny-encryption-scope-override': self._deserialize('bool', response.headers.get('x-ms-deny-encryption-scope-override')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_properties.metadata = {'url': '/{containerName}'} + + async def delete(self, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """operation marks the specified container for deletion. The container and + any blobs contained within it are later deleted during garbage + collection. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + restype = "container" + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{containerName}'} + + async def set_metadata(self, timeout=None, metadata=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """operation sets one or more user-defined name-value pairs for the + specified container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + + restype = "container" + comp = "metadata" + + # Construct URL + url = self.set_metadata.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_metadata.metadata = {'url': '/{containerName}'} + + async def get_access_policy(self, timeout=None, request_id=None, lease_access_conditions=None, *, cls=None, **kwargs): + """gets the permissions for the specified container. The permissions + indicate whether container data may be accessed publicly. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: list or the result of cls(response) + :rtype: list[~azure.storage.blob.models.SignedIdentifier] + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + restype = "container" + comp = "acl" + + # Construct URL + url = self.get_access_policy.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('[SignedIdentifier]', response) + header_dict = { + 'x-ms-blob-public-access': self._deserialize('str', response.headers.get('x-ms-blob-public-access')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_access_policy.metadata = {'url': '/{containerName}'} + + async def set_access_policy(self, container_acl=None, timeout=None, access=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """sets the permissions for the specified container. The permissions + indicate whether blobs in a container may be accessed publicly. + + :param container_acl: the acls for the container + :type container_acl: list[~azure.storage.blob.models.SignedIdentifier] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param access: Specifies whether data in the container may be accessed + publicly and the level of access. Possible values include: + 'container', 'blob' + :type access: str or ~azure.storage.blob.models.PublicAccessType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + restype = "container" + comp = "acl" + + # Construct URL + url = self.set_access_policy.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + if access is not None: + header_parameters['x-ms-blob-public-access'] = self._serialize.header("access", access, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct body + serialization_ctxt = {'xml': {'name': 'SignedIdentifiers', 'itemsName': 'SignedIdentifiers', 'wrapped': True}} + if container_acl is not None: + body_content = self._serialize.body(container_acl, '[SignedIdentifier]', serialization_ctxt=serialization_ctxt) + else: + body_content = None + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_access_policy.metadata = {'url': '/{containerName}'} + + async def restore(self, timeout=None, request_id=None, deleted_container_name=None, deleted_container_version=None, *, cls=None, **kwargs): + """Restores a previously-deleted container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param deleted_container_name: Optional. Version 2019-12-12 and + laster. Specifies the name of the deleted container to restore. + :type deleted_container_name: str + :param deleted_container_version: Optional. Version 2019-12-12 and + laster. Specifies the version of the deleted container to restore. + :type deleted_container_version: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "undelete" + + # Construct URL + url = self.restore.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if deleted_container_name is not None: + header_parameters['x-ms-deleted-container-name'] = self._serialize.header("deleted_container_name", deleted_container_name, 'str') + if deleted_container_version is not None: + header_parameters['x-ms-deleted-container-version'] = self._serialize.header("deleted_container_version", deleted_container_version, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + restore.metadata = {'url': '/{containerName}'} + + async def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param duration: Specifies the duration of the lease, in seconds, or + negative one (-1) for a lease that never expires. A non-infinite lease + can be between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. + :type duration: int + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "acquire" + + # Construct URL + url = self.acquire_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if duration is not None: + header_parameters['x-ms-lease-duration'] = self._serialize.header("duration", duration, 'int') + if proposed_lease_id is not None: + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + acquire_lease.metadata = {'url': '/{containerName}'} + + async def release_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "release" + + # Construct URL + url = self.release_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + release_lease.metadata = {'url': '/{containerName}'} + + async def renew_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "renew" + + # Construct URL + url = self.renew_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + renew_lease.metadata = {'url': '/{containerName}'} + + async def break_lease(self, timeout=None, break_period=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param break_period: For a break operation, proposed duration the + lease should continue before it is broken, in seconds, between 0 and + 60. This break period is only used if it is shorter than the time + remaining on the lease. If longer, the time remaining on the lease is + used. A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break period. + If this header does not appear with a break operation, a + fixed-duration lease breaks after the remaining lease period elapses, + and an infinite lease breaks immediately. + :type break_period: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "break" + + # Construct URL + url = self.break_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if break_period is not None: + header_parameters['x-ms-lease-break-period'] = self._serialize.header("break_period", break_period, 'int') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-time': self._deserialize('int', response.headers.get('x-ms-lease-time')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + break_lease.metadata = {'url': '/{containerName}'} + + async def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "change" + + # Construct URL + url = self.change_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + change_lease.metadata = {'url': '/{containerName}'} + + async def list_blob_flat_segment(self, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, *, cls=None, **kwargs): + """[Update] The List Blobs operation returns a list of the blobs under the + specified container. + + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify one or more datasets + to include in the response. + :type include: list[str or + ~azure.storage.blob.models.ListBlobsIncludeItem] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListBlobsFlatSegmentResponse or the result of cls(response) + :rtype: ~azure.storage.blob.models.ListBlobsFlatSegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "list" + + # Construct URL + url = self.list_blob_flat_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListBlobsIncludeItem]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListBlobsFlatSegmentResponse', response) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_blob_flat_segment.metadata = {'url': '/{containerName}'} + + async def list_blob_hierarchy_segment(self, delimiter, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, *, cls=None, **kwargs): + """[Update] The List Blobs operation returns a list of the blobs under the + specified container. + + :param delimiter: When the request includes this parameter, the + operation returns a BlobPrefix element in the response body that acts + as a placeholder for all blobs whose names begin with the same + substring up to the appearance of the delimiter character. The + delimiter may be a single character or a string. + :type delimiter: str + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify one or more datasets + to include in the response. + :type include: list[str or + ~azure.storage.blob.models.ListBlobsIncludeItem] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListBlobsHierarchySegmentResponse or the result of + cls(response) + :rtype: ~azure.storage.blob.models.ListBlobsHierarchySegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "list" + + # Construct URL + url = self.list_blob_hierarchy_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + query_parameters['delimiter'] = self._serialize.query("delimiter", delimiter, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListBlobsIncludeItem]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListBlobsHierarchySegmentResponse', response) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_blob_hierarchy_segment.metadata = {'url': '/{containerName}'} + + async def get_account_info(self, *, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "account" + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/{containerName}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_directory_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_directory_operations_async.py new file mode 100644 index 00000000000..590c0f88433 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_directory_operations_async.py @@ -0,0 +1,739 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class DirectoryOperations: + """DirectoryOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar resource: . Constant value: "directory". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.resource = "directory" + + async def create(self, timeout=None, directory_properties=None, posix_permissions=None, posix_umask=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Create a directory. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['resource'] = self._serialize.query("self.resource", self.resource, 'str') + + # Construct headers + header_parameters = {} + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{filesystem}/{path}'} + + async def rename(self, rename_source, timeout=None, marker=None, path_rename_mode=None, directory_properties=None, posix_permissions=None, posix_umask=None, source_lease_id=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, *, cls=None, **kwargs): + """Rename a directory. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param rename_source: The file or directory to be renamed. The value + must have the following format: "/{filesysystem}/{path}". If + "x-ms-properties" is specified, the properties will overwrite the + existing properties; otherwise, the existing properties will be + preserved. + :type rename_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param marker: When renaming a directory, the number of paths that are + renamed with each invocation is limited. If the number of paths to be + renamed exceeds this limit, a continuation token is returned in this + response header. When a continuation token is returned in the + response, it must be specified in a subsequent invocation of the + rename operation to continue renaming the directory. + :type marker: str + :param path_rename_mode: Determines the behavior of the rename + operation. Possible values include: 'legacy', 'posix' + :type path_rename_mode: str or + ~azure.storage.blob.models.PathRenameMode + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param source_lease_id: A lease ID for the source path. If specified, + the source path must have an active lease and the lease ID must match. + :type source_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + # Construct URL + url = self.rename.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if marker is not None: + query_parameters['continuation'] = self._serialize.query("marker", marker, 'str') + if path_rename_mode is not None: + query_parameters['mode'] = self._serialize.query("path_rename_mode", path_rename_mode, 'PathRenameMode') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-rename-source'] = self._serialize.header("rename_source", rename_source, 'str') + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + if source_lease_id is not None: + header_parameters['x-ms-source-lease-id'] = self._serialize.header("source_lease_id", source_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-continuation': self._deserialize('str', response.headers.get('x-ms-continuation')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + rename.metadata = {'url': '/{filesystem}/{path}'} + + async def delete(self, recursive_directory_delete, timeout=None, marker=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Deletes the directory. + + :param recursive_directory_delete: If "true", all paths beneath the + directory will be deleted. If "false" and the directory is non-empty, + an error occurs. + :type recursive_directory_delete: bool + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param marker: When renaming a directory, the number of paths that are + renamed with each invocation is limited. If the number of paths to be + renamed exceeds this limit, a continuation token is returned in this + response header. When a continuation token is returned in the + response, it must be specified in a subsequent invocation of the + rename operation to continue renaming the directory. + :type marker: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['recursive'] = self._serialize.query("recursive_directory_delete", recursive_directory_delete, 'bool') + if marker is not None: + query_parameters['continuation'] = self._serialize.query("marker", marker, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-continuation': self._deserialize('str', response.headers.get('x-ms-continuation')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{filesystem}/{path}'} + + async def set_access_control(self, timeout=None, owner=None, group=None, posix_permissions=None, posix_acl=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Set the owner, group, permissions, or access control list for a + directory. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param owner: Optional. The owner of the blob or directory. + :type owner: str + :param group: Optional. The owning group of the blob or directory. + :type group: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_acl: Sets POSIX access control rights on files and + directories. The value is a comma-separated list of access control + entries. Each access control entry (ACE) consists of a scope, a type, + a user or group identifier, and permissions in the format + "[scope:][type]:[id]:[permissions]". + :type posix_acl: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "setAccessControl" + + # Construct URL + url = self.set_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if owner is not None: + header_parameters['x-ms-owner'] = self._serialize.header("owner", owner, 'str') + if group is not None: + header_parameters['x-ms-group'] = self._serialize.header("group", group, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_acl is not None: + header_parameters['x-ms-acl'] = self._serialize.header("posix_acl", posix_acl, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + set_access_control.metadata = {'url': '/{filesystem}/{path}'} + + async def get_access_control(self, timeout=None, upn=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Get the owner, group, permissions, or access control list for a + directory. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param upn: Optional. Valid only when Hierarchical Namespace is + enabled for the account. If "true", the identity values returned in + the x-ms-owner, x-ms-group, and x-ms-acl response headers will be + transformed from Azure Active Directory Object IDs to User Principal + Names. If "false", the values will be returned as Azure Active + Directory Object IDs. The default value is false. + :type upn: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "getAccessControl" + + # Construct URL + url = self.get_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if upn is not None: + query_parameters['upn'] = self._serialize.query("upn", upn, 'bool') + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-owner': self._deserialize('str', response.headers.get('x-ms-owner')), + 'x-ms-group': self._deserialize('str', response.headers.get('x-ms-group')), + 'x-ms-permissions': self._deserialize('str', response.headers.get('x-ms-permissions')), + 'x-ms-acl': self._deserialize('str', response.headers.get('x-ms-acl')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + get_access_control.metadata = {'url': '/{filesystem}/{path}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_page_blob_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_page_blob_operations_async.py new file mode 100644 index 00000000000..c54a27cf8bf --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_page_blob_operations_async.py @@ -0,0 +1,1399 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class PageBlobOperations: + """PageBlobOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "PageBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "PageBlob" + + async def create(self, content_length, blob_content_length, timeout=None, tier=None, metadata=None, blob_sequence_number=0, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Create operation creates a new page blob. + + :param content_length: The length of the request. + :type content_length: long + :param blob_content_length: This header specifies the maximum size for + the page blob, up to 1 TB. The page blob size must be aligned to a + 512-byte boundary. + :type blob_content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param tier: Optional. Indicates the tier to be set on the page blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80' + :type tier: str or + ~azure.storage.blob.models.PremiumPageBlobAccessTier + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param blob_sequence_number: Set for page blobs only. The sequence + number is a user-controlled value that you can use to track requests. + The value of the sequence number must be between 0 and 2^63 - 1. + :type blob_sequence_number: long + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-blob-content-length'] = self._serialize.header("blob_content_length", blob_content_length, 'long') + if blob_sequence_number is not None: + header_parameters['x-ms-blob-sequence-number'] = self._serialize.header("blob_sequence_number", blob_sequence_number, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}/{blob}'} + + async def upload_pages(self, body, content_length, transactional_content_md5=None, transactional_content_crc64=None, timeout=None, range=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, sequence_number_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Upload Pages operation writes a range of pages to a page blob. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "page" + page_write = "update" + + # Construct URL + url = self.upload_pages.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload_pages.metadata = {'url': '/{containerName}/{blob}'} + + async def clear_pages(self, content_length, timeout=None, range=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, sequence_number_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Clear Pages operation clears a set of pages from a page blob. + + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "page" + page_write = "clear" + + # Construct URL + url = self.clear_pages.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + clear_pages.metadata = {'url': '/{containerName}/{blob}'} + + async def upload_pages_from_url(self, source_url, source_range, content_length, range, source_content_md5=None, source_contentcrc64=None, timeout=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, sequence_number_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, *, cls=None, **kwargs): + """The Upload Pages operation writes a range of pages to a page blob where + the contents are read from a URL. + + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param source_range: Bytes of source data in the specified range. The + length of this range should match the ContentLength header and + x-ms-range/Range destination range header. + :type source_range: str + :param content_length: The length of the request. + :type content_length: long + :param range: The range of bytes to which the source range would be + written. The range should be 512 aligned and range-end is required. + :type range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "page" + page_write = "update" + + # Construct URL + url = self.upload_pages_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload_pages_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def get_page_ranges(self, snapshot=None, timeout=None, range=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Get Page Ranges operation returns the list of valid page ranges for + a page blob or snapshot of a page blob. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: PageList or the result of cls(response) + :rtype: ~azure.storage.blob.models.PageList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "pagelist" + + # Construct URL + url = self.get_page_ranges.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PageList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_page_ranges.metadata = {'url': '/{containerName}/{blob}'} + + async def get_page_ranges_diff(self, snapshot=None, timeout=None, prevsnapshot=None, prev_snapshot_url=None, range=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Get Page Ranges Diff operation returns the list of valid page + ranges for a page blob that were changed between target blob and + previous snapshot. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param prevsnapshot: Optional in version 2015-07-08 and newer. The + prevsnapshot parameter is a DateTime value that specifies that the + response will contain only pages that were changed between target blob + and previous snapshot. Changed pages include both updated and cleared + pages. The target blob may be a snapshot, as long as the snapshot + specified by prevsnapshot is the older of the two. Note that + incremental snapshots are currently supported only for blobs created + on or after January 1, 2016. + :type prevsnapshot: str + :param prev_snapshot_url: Optional. This header is only supported in + service versions 2019-04-19 and after and specifies the URL of a + previous snapshot of the target blob. The response will only contain + pages that were changed between the target blob and its previous + snapshot. + :type prev_snapshot_url: str + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: PageList or the result of cls(response) + :rtype: ~azure.storage.blob.models.PageList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "pagelist" + + # Construct URL + url = self.get_page_ranges_diff.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if prevsnapshot is not None: + query_parameters['prevsnapshot'] = self._serialize.query("prevsnapshot", prevsnapshot, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if prev_snapshot_url is not None: + header_parameters['x-ms-previous-snapshot-url'] = self._serialize.header("prev_snapshot_url", prev_snapshot_url, 'str') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PageList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_page_ranges_diff.metadata = {'url': '/{containerName}/{blob}'} + + async def resize(self, blob_content_length, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Resize the Blob. + + :param blob_content_length: This header specifies the maximum size for + the page blob, up to 1 TB. The page blob size must be aligned to a + 512-byte boundary. + :type blob_content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.resize.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-blob-content-length'] = self._serialize.header("blob_content_length", blob_content_length, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + resize.metadata = {'url': '/{containerName}/{blob}'} + + async def update_sequence_number(self, sequence_number_action, timeout=None, blob_sequence_number=0, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Update the sequence number of the blob. + + :param sequence_number_action: Required if the + x-ms-blob-sequence-number header is set for the request. This property + applies to page blobs only. This property indicates how the service + should modify the blob's sequence number. Possible values include: + 'max', 'update', 'increment' + :type sequence_number_action: str or + ~azure.storage.blob.models.SequenceNumberActionType + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param blob_sequence_number: Set for page blobs only. The sequence + number is a user-controlled value that you can use to track requests. + The value of the sequence number must be between 0 and 2^63 - 1. + :type blob_sequence_number: long + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.update_sequence_number.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-sequence-number-action'] = self._serialize.header("sequence_number_action", sequence_number_action, 'SequenceNumberActionType') + if blob_sequence_number is not None: + header_parameters['x-ms-blob-sequence-number'] = self._serialize.header("blob_sequence_number", blob_sequence_number, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + update_sequence_number.metadata = {'url': '/{containerName}/{blob}'} + + async def copy_incremental(self, copy_source, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Copy Incremental operation copies a snapshot of the source page + blob to a destination page blob. The snapshot is copied such that only + the differential changes between the previously copied snapshot are + transferred to the destination. The copied snapshots are complete + copies of the original snapshot and can be read or copied from as + usual. This API is supported since REST version 2016-05-31. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "incrementalcopy" + + # Construct URL + url = self.copy_incremental.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + copy_incremental.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_service_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_service_operations_async.py new file mode 100644 index 00000000000..e12c2b9bfb5 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/aio/operations_async/_service_operations_async.py @@ -0,0 +1,664 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class ServiceOperations: + """ServiceOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + + async def set_properties(self, storage_service_properties, timeout=None, request_id=None, *, cls=None, **kwargs): + """Sets properties for a storage account's Blob service endpoint, + including properties for Storage Analytics and CORS (Cross-Origin + Resource Sharing) rules. + + :param storage_service_properties: The StorageService properties. + :type storage_service_properties: + ~azure.storage.blob.models.StorageServiceProperties + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "properties" + + # Construct URL + url = self.set_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + body_content = self._serialize.body(storage_service_properties, 'StorageServiceProperties') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_properties.metadata = {'url': '/'} + + async def get_properties(self, timeout=None, request_id=None, *, cls=None, **kwargs): + """gets the properties of a storage account's Blob service, including + properties for Storage Analytics and CORS (Cross-Origin Resource + Sharing) rules. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: StorageServiceProperties or the result of cls(response) + :rtype: ~azure.storage.blob.models.StorageServiceProperties + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "properties" + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageServiceProperties', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_properties.metadata = {'url': '/'} + + async def get_statistics(self, timeout=None, request_id=None, *, cls=None, **kwargs): + """Retrieves statistics related to replication for the Blob service. It is + only available on the secondary location endpoint when read-access + geo-redundant replication is enabled for the storage account. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: StorageServiceStats or the result of cls(response) + :rtype: ~azure.storage.blob.models.StorageServiceStats + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "stats" + + # Construct URL + url = self.get_statistics.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageServiceStats', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_statistics.metadata = {'url': '/'} + + async def list_containers_segment(self, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, *, cls=None, **kwargs): + """The List Containers Segment operation returns a list of the containers + under the specified account. + + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify that the container's + metadata be returned as part of the response body. + :type include: list[str or + ~azure.storage.blob.models.ListContainersIncludeType] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListContainersSegmentResponse or the result of cls(response) + :rtype: ~azure.storage.blob.models.ListContainersSegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "list" + + # Construct URL + url = self.list_containers_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListContainersIncludeType]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListContainersSegmentResponse', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_containers_segment.metadata = {'url': '/'} + + async def get_user_delegation_key(self, key_info, timeout=None, request_id=None, *, cls=None, **kwargs): + """Retrieves a user delegation key for the Blob service. This is only a + valid operation when using bearer token authentication. + + :param key_info: + :type key_info: ~azure.storage.blob.models.KeyInfo + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: UserDelegationKey or the result of cls(response) + :rtype: ~azure.storage.blob.models.UserDelegationKey + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "userdelegationkey" + + # Construct URL + url = self.get_user_delegation_key.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + body_content = self._serialize.body(key_info, 'KeyInfo') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('UserDelegationKey', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_user_delegation_key.metadata = {'url': '/'} + + async def get_account_info(self, *, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "account" + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/'} + + async def submit_batch(self, body, content_length, multipart_content_type, timeout=None, request_id=None, *, cls=None, **kwargs): + """The Batch operation allows multiple API calls to be embedded into a + single HTTP request. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param multipart_content_type: Required. The value of this header must + be multipart/mixed with a batch boundary. Example header value: + multipart/mixed; boundary=batch_ + :type multipart_content_type: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "batch" + + # Construct URL + url = self.submit_batch.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['Content-Type'] = self._serialize.header("multipart_content_type", multipart_content_type, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + await response.load_body() + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + submit_batch.metadata = {'url': '/'} + + async def filter_blobs(self, timeout=None, request_id=None, where=None, marker=None, maxresults=None, *, cls=None, **kwargs): + """The Filter Blobs operation enables callers to list blobs across all + containers whose tags match a given search expression. Filter blobs + searches across all containers within a storage account but can be + scoped within the expression to a single container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param where: Filters the results to return only to return only blobs + whose tags match the specified expression. + :type where: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param callable cls: A custom type or function that will be passed the + direct response + :return: FilterBlobSegment or the result of cls(response) + :rtype: ~azure.storage.blob.models.FilterBlobSegment + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "blobs" + + # Construct URL + url = self.filter_blobs.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if where is not None: + query_parameters['where'] = self._serialize.query("where", where, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('FilterBlobSegment', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + filter_blobs.metadata = {'url': '/'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/__init__.py new file mode 100644 index 00000000000..6709caf3e7e --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/__init__.py @@ -0,0 +1,223 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import AccessPolicy + from ._models_py3 import AppendPositionAccessConditions + from ._models_py3 import BlobFlatListSegment + from ._models_py3 import BlobHierarchyListSegment + from ._models_py3 import BlobHTTPHeaders + from ._models_py3 import BlobItemInternal + from ._models_py3 import BlobMetadata + from ._models_py3 import BlobPrefix + from ._models_py3 import BlobPropertiesInternal + from ._models_py3 import BlobTag + from ._models_py3 import BlobTags + from ._models_py3 import Block + from ._models_py3 import BlockList + from ._models_py3 import BlockLookupList + from ._models_py3 import ClearRange + from ._models_py3 import ContainerCpkScopeInfo + from ._models_py3 import ContainerItem + from ._models_py3 import ContainerProperties + from ._models_py3 import CorsRule + from ._models_py3 import CpkInfo + from ._models_py3 import CpkScopeInfo + from ._models_py3 import DataLakeStorageError, DataLakeStorageErrorException + from ._models_py3 import DataLakeStorageErrorError + from ._models_py3 import DelimitedTextConfiguration + from ._models_py3 import DirectoryHttpHeaders + from ._models_py3 import FilterBlobItem + from ._models_py3 import FilterBlobSegment + from ._models_py3 import GeoReplication + from ._models_py3 import JsonTextConfiguration + from ._models_py3 import KeyInfo + from ._models_py3 import LeaseAccessConditions + from ._models_py3 import ListBlobsFlatSegmentResponse + from ._models_py3 import ListBlobsHierarchySegmentResponse + from ._models_py3 import ListContainersSegmentResponse + from ._models_py3 import Logging + from ._models_py3 import Metrics + from ._models_py3 import ModifiedAccessConditions + from ._models_py3 import PageList + from ._models_py3 import PageRange + from ._models_py3 import QueryFormat + from ._models_py3 import QueryRequest + from ._models_py3 import QuerySerialization + from ._models_py3 import RetentionPolicy + from ._models_py3 import SequenceNumberAccessConditions + from ._models_py3 import SignedIdentifier + from ._models_py3 import SourceModifiedAccessConditions + from ._models_py3 import StaticWebsite + from ._models_py3 import StorageError, StorageErrorException + from ._models_py3 import StorageServiceProperties + from ._models_py3 import StorageServiceStats + from ._models_py3 import UserDelegationKey +except (SyntaxError, ImportError): + from ._models import AccessPolicy + from ._models import AppendPositionAccessConditions + from ._models import BlobFlatListSegment + from ._models import BlobHierarchyListSegment + from ._models import BlobHTTPHeaders + from ._models import BlobItemInternal + from ._models import BlobMetadata + from ._models import BlobPrefix + from ._models import BlobPropertiesInternal + from ._models import BlobTag + from ._models import BlobTags + from ._models import Block + from ._models import BlockList + from ._models import BlockLookupList + from ._models import ClearRange + from ._models import ContainerCpkScopeInfo + from ._models import ContainerItem + from ._models import ContainerProperties + from ._models import CorsRule + from ._models import CpkInfo + from ._models import CpkScopeInfo + from ._models import DataLakeStorageError, DataLakeStorageErrorException + from ._models import DataLakeStorageErrorError + from ._models import DelimitedTextConfiguration + from ._models import DirectoryHttpHeaders + from ._models import FilterBlobItem + from ._models import FilterBlobSegment + from ._models import GeoReplication + from ._models import JsonTextConfiguration + from ._models import KeyInfo + from ._models import LeaseAccessConditions + from ._models import ListBlobsFlatSegmentResponse + from ._models import ListBlobsHierarchySegmentResponse + from ._models import ListContainersSegmentResponse + from ._models import Logging + from ._models import Metrics + from ._models import ModifiedAccessConditions + from ._models import PageList + from ._models import PageRange + from ._models import QueryFormat + from ._models import QueryRequest + from ._models import QuerySerialization + from ._models import RetentionPolicy + from ._models import SequenceNumberAccessConditions + from ._models import SignedIdentifier + from ._models import SourceModifiedAccessConditions + from ._models import StaticWebsite + from ._models import StorageError, StorageErrorException + from ._models import StorageServiceProperties + from ._models import StorageServiceStats + from ._models import UserDelegationKey +from ._azure_blob_storage_enums import ( + AccessTier, + AccessTierOptional, + AccessTierRequired, + AccountKind, + ArchiveStatus, + BlobExpiryOptions, + BlobType, + BlockListType, + CopyStatusType, + DeleteSnapshotsOptionType, + EncryptionAlgorithmType, + GeoReplicationStatusType, + LeaseDurationType, + LeaseStateType, + LeaseStatusType, + ListBlobsIncludeItem, + ListContainersIncludeType, + PathRenameMode, + PremiumPageBlobAccessTier, + PublicAccessType, + QueryFormatType, + RehydratePriority, + SequenceNumberActionType, + SkuName, + StorageErrorCode, + SyncCopyStatusType, +) + +__all__ = [ + 'AccessPolicy', + 'AppendPositionAccessConditions', + 'BlobFlatListSegment', + 'BlobHierarchyListSegment', + 'BlobHTTPHeaders', + 'BlobItemInternal', + 'BlobMetadata', + 'BlobPrefix', + 'BlobPropertiesInternal', + 'BlobTag', + 'BlobTags', + 'Block', + 'BlockList', + 'BlockLookupList', + 'ClearRange', + 'ContainerCpkScopeInfo', + 'ContainerItem', + 'ContainerProperties', + 'CorsRule', + 'CpkInfo', + 'CpkScopeInfo', + 'DataLakeStorageError', 'DataLakeStorageErrorException', + 'DataLakeStorageErrorError', + 'DelimitedTextConfiguration', + 'DirectoryHttpHeaders', + 'FilterBlobItem', + 'FilterBlobSegment', + 'GeoReplication', + 'JsonTextConfiguration', + 'KeyInfo', + 'LeaseAccessConditions', + 'ListBlobsFlatSegmentResponse', + 'ListBlobsHierarchySegmentResponse', + 'ListContainersSegmentResponse', + 'Logging', + 'Metrics', + 'ModifiedAccessConditions', + 'PageList', + 'PageRange', + 'QueryFormat', + 'QueryRequest', + 'QuerySerialization', + 'RetentionPolicy', + 'SequenceNumberAccessConditions', + 'SignedIdentifier', + 'SourceModifiedAccessConditions', + 'StaticWebsite', + 'StorageError', 'StorageErrorException', + 'StorageServiceProperties', + 'StorageServiceStats', + 'UserDelegationKey', + 'PublicAccessType', + 'CopyStatusType', + 'LeaseDurationType', + 'LeaseStateType', + 'LeaseStatusType', + 'AccessTier', + 'ArchiveStatus', + 'BlobType', + 'RehydratePriority', + 'StorageErrorCode', + 'GeoReplicationStatusType', + 'QueryFormatType', + 'AccessTierRequired', + 'AccessTierOptional', + 'PremiumPageBlobAccessTier', + 'BlobExpiryOptions', + 'BlockListType', + 'DeleteSnapshotsOptionType', + 'EncryptionAlgorithmType', + 'ListBlobsIncludeItem', + 'ListContainersIncludeType', + 'PathRenameMode', + 'SequenceNumberActionType', + 'SkuName', + 'AccountKind', + 'SyncCopyStatusType', +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/_azure_blob_storage_enums.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/_azure_blob_storage_enums.py new file mode 100644 index 00000000000..d89e858684f --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/_azure_blob_storage_enums.py @@ -0,0 +1,342 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum + + +class PublicAccessType(str, Enum): + + container = "container" + blob = "blob" + + +class CopyStatusType(str, Enum): + + pending = "pending" + success = "success" + aborted = "aborted" + failed = "failed" + + +class LeaseDurationType(str, Enum): + + infinite = "infinite" + fixed = "fixed" + + +class LeaseStateType(str, Enum): + + available = "available" + leased = "leased" + expired = "expired" + breaking = "breaking" + broken = "broken" + + +class LeaseStatusType(str, Enum): + + locked = "locked" + unlocked = "unlocked" + + +class AccessTier(str, Enum): + + p4 = "P4" + p6 = "P6" + p10 = "P10" + p15 = "P15" + p20 = "P20" + p30 = "P30" + p40 = "P40" + p50 = "P50" + p60 = "P60" + p70 = "P70" + p80 = "P80" + hot = "Hot" + cool = "Cool" + archive = "Archive" + + +class ArchiveStatus(str, Enum): + + rehydrate_pending_to_hot = "rehydrate-pending-to-hot" + rehydrate_pending_to_cool = "rehydrate-pending-to-cool" + + +class BlobType(str, Enum): + + block_blob = "BlockBlob" + page_blob = "PageBlob" + append_blob = "AppendBlob" + + +class RehydratePriority(str, Enum): + + high = "High" + standard = "Standard" + + +class StorageErrorCode(str, Enum): + + account_already_exists = "AccountAlreadyExists" + account_being_created = "AccountBeingCreated" + account_is_disabled = "AccountIsDisabled" + authentication_failed = "AuthenticationFailed" + authorization_failure = "AuthorizationFailure" + condition_headers_not_supported = "ConditionHeadersNotSupported" + condition_not_met = "ConditionNotMet" + empty_metadata_key = "EmptyMetadataKey" + insufficient_account_permissions = "InsufficientAccountPermissions" + internal_error = "InternalError" + invalid_authentication_info = "InvalidAuthenticationInfo" + invalid_header_value = "InvalidHeaderValue" + invalid_http_verb = "InvalidHttpVerb" + invalid_input = "InvalidInput" + invalid_md5 = "InvalidMd5" + invalid_metadata = "InvalidMetadata" + invalid_query_parameter_value = "InvalidQueryParameterValue" + invalid_range = "InvalidRange" + invalid_resource_name = "InvalidResourceName" + invalid_uri = "InvalidUri" + invalid_xml_document = "InvalidXmlDocument" + invalid_xml_node_value = "InvalidXmlNodeValue" + md5_mismatch = "Md5Mismatch" + metadata_too_large = "MetadataTooLarge" + missing_content_length_header = "MissingContentLengthHeader" + missing_required_query_parameter = "MissingRequiredQueryParameter" + missing_required_header = "MissingRequiredHeader" + missing_required_xml_node = "MissingRequiredXmlNode" + multiple_condition_headers_not_supported = "MultipleConditionHeadersNotSupported" + operation_timed_out = "OperationTimedOut" + out_of_range_input = "OutOfRangeInput" + out_of_range_query_parameter_value = "OutOfRangeQueryParameterValue" + request_body_too_large = "RequestBodyTooLarge" + resource_type_mismatch = "ResourceTypeMismatch" + request_url_failed_to_parse = "RequestUrlFailedToParse" + resource_already_exists = "ResourceAlreadyExists" + resource_not_found = "ResourceNotFound" + server_busy = "ServerBusy" + unsupported_header = "UnsupportedHeader" + unsupported_xml_node = "UnsupportedXmlNode" + unsupported_query_parameter = "UnsupportedQueryParameter" + unsupported_http_verb = "UnsupportedHttpVerb" + append_position_condition_not_met = "AppendPositionConditionNotMet" + blob_already_exists = "BlobAlreadyExists" + blob_not_found = "BlobNotFound" + blob_overwritten = "BlobOverwritten" + blob_tier_inadequate_for_content_length = "BlobTierInadequateForContentLength" + block_count_exceeds_limit = "BlockCountExceedsLimit" + block_list_too_long = "BlockListTooLong" + cannot_change_to_lower_tier = "CannotChangeToLowerTier" + cannot_verify_copy_source = "CannotVerifyCopySource" + container_already_exists = "ContainerAlreadyExists" + container_being_deleted = "ContainerBeingDeleted" + container_disabled = "ContainerDisabled" + container_not_found = "ContainerNotFound" + content_length_larger_than_tier_limit = "ContentLengthLargerThanTierLimit" + copy_across_accounts_not_supported = "CopyAcrossAccountsNotSupported" + copy_id_mismatch = "CopyIdMismatch" + feature_version_mismatch = "FeatureVersionMismatch" + incremental_copy_blob_mismatch = "IncrementalCopyBlobMismatch" + incremental_copy_of_eralier_version_snapshot_not_allowed = "IncrementalCopyOfEralierVersionSnapshotNotAllowed" + incremental_copy_source_must_be_snapshot = "IncrementalCopySourceMustBeSnapshot" + infinite_lease_duration_required = "InfiniteLeaseDurationRequired" + invalid_blob_or_block = "InvalidBlobOrBlock" + invalid_blob_tier = "InvalidBlobTier" + invalid_blob_type = "InvalidBlobType" + invalid_block_id = "InvalidBlockId" + invalid_block_list = "InvalidBlockList" + invalid_operation = "InvalidOperation" + invalid_page_range = "InvalidPageRange" + invalid_source_blob_type = "InvalidSourceBlobType" + invalid_source_blob_url = "InvalidSourceBlobUrl" + invalid_version_for_page_blob_operation = "InvalidVersionForPageBlobOperation" + lease_already_present = "LeaseAlreadyPresent" + lease_already_broken = "LeaseAlreadyBroken" + lease_id_mismatch_with_blob_operation = "LeaseIdMismatchWithBlobOperation" + lease_id_mismatch_with_container_operation = "LeaseIdMismatchWithContainerOperation" + lease_id_mismatch_with_lease_operation = "LeaseIdMismatchWithLeaseOperation" + lease_id_missing = "LeaseIdMissing" + lease_is_breaking_and_cannot_be_acquired = "LeaseIsBreakingAndCannotBeAcquired" + lease_is_breaking_and_cannot_be_changed = "LeaseIsBreakingAndCannotBeChanged" + lease_is_broken_and_cannot_be_renewed = "LeaseIsBrokenAndCannotBeRenewed" + lease_lost = "LeaseLost" + lease_not_present_with_blob_operation = "LeaseNotPresentWithBlobOperation" + lease_not_present_with_container_operation = "LeaseNotPresentWithContainerOperation" + lease_not_present_with_lease_operation = "LeaseNotPresentWithLeaseOperation" + max_blob_size_condition_not_met = "MaxBlobSizeConditionNotMet" + no_authentication_information = "NoAuthenticationInformation" + no_pending_copy_operation = "NoPendingCopyOperation" + operation_not_allowed_on_incremental_copy_blob = "OperationNotAllowedOnIncrementalCopyBlob" + pending_copy_operation = "PendingCopyOperation" + previous_snapshot_cannot_be_newer = "PreviousSnapshotCannotBeNewer" + previous_snapshot_not_found = "PreviousSnapshotNotFound" + previous_snapshot_operation_not_supported = "PreviousSnapshotOperationNotSupported" + sequence_number_condition_not_met = "SequenceNumberConditionNotMet" + sequence_number_increment_too_large = "SequenceNumberIncrementTooLarge" + snapshot_count_exceeded = "SnapshotCountExceeded" + snaphot_operation_rate_exceeded = "SnaphotOperationRateExceeded" + snapshots_present = "SnapshotsPresent" + source_condition_not_met = "SourceConditionNotMet" + system_in_use = "SystemInUse" + target_condition_not_met = "TargetConditionNotMet" + unauthorized_blob_overwrite = "UnauthorizedBlobOverwrite" + blob_being_rehydrated = "BlobBeingRehydrated" + blob_archived = "BlobArchived" + blob_not_archived = "BlobNotArchived" + authorization_source_ip_mismatch = "AuthorizationSourceIPMismatch" + authorization_protocol_mismatch = "AuthorizationProtocolMismatch" + authorization_permission_mismatch = "AuthorizationPermissionMismatch" + authorization_service_mismatch = "AuthorizationServiceMismatch" + authorization_resource_type_mismatch = "AuthorizationResourceTypeMismatch" + + +class GeoReplicationStatusType(str, Enum): + + live = "live" + bootstrap = "bootstrap" + unavailable = "unavailable" + + +class QueryFormatType(str, Enum): + + delimited = "delimited" + json = "json" + + +class AccessTierRequired(str, Enum): + + p4 = "P4" + p6 = "P6" + p10 = "P10" + p15 = "P15" + p20 = "P20" + p30 = "P30" + p40 = "P40" + p50 = "P50" + p60 = "P60" + p70 = "P70" + p80 = "P80" + hot = "Hot" + cool = "Cool" + archive = "Archive" + + +class AccessTierOptional(str, Enum): + + p4 = "P4" + p6 = "P6" + p10 = "P10" + p15 = "P15" + p20 = "P20" + p30 = "P30" + p40 = "P40" + p50 = "P50" + p60 = "P60" + p70 = "P70" + p80 = "P80" + hot = "Hot" + cool = "Cool" + archive = "Archive" + + +class PremiumPageBlobAccessTier(str, Enum): + + p4 = "P4" + p6 = "P6" + p10 = "P10" + p15 = "P15" + p20 = "P20" + p30 = "P30" + p40 = "P40" + p50 = "P50" + p60 = "P60" + p70 = "P70" + p80 = "P80" + + +class BlobExpiryOptions(str, Enum): + + never_expire = "NeverExpire" + relative_to_creation = "RelativeToCreation" + relative_to_now = "RelativeToNow" + absolute = "Absolute" + + +class BlockListType(str, Enum): + + committed = "committed" + uncommitted = "uncommitted" + all = "all" + + +class DeleteSnapshotsOptionType(str, Enum): + + include = "include" + only = "only" + + +class EncryptionAlgorithmType(str, Enum): + + aes256 = "AES256" + + +class ListBlobsIncludeItem(str, Enum): + + copy = "copy" + deleted = "deleted" + metadata = "metadata" + snapshots = "snapshots" + uncommittedblobs = "uncommittedblobs" + versions = "versions" + tags = "tags" + + +class ListContainersIncludeType(str, Enum): + + metadata = "metadata" + deleted = "deleted" + + +class PathRenameMode(str, Enum): + + legacy = "legacy" + posix = "posix" + + +class SequenceNumberActionType(str, Enum): + + max = "max" + update = "update" + increment = "increment" + + +class SkuName(str, Enum): + + standard_lrs = "Standard_LRS" + standard_grs = "Standard_GRS" + standard_ragrs = "Standard_RAGRS" + standard_zrs = "Standard_ZRS" + premium_lrs = "Premium_LRS" + + +class AccountKind(str, Enum): + + storage = "Storage" + blob_storage = "BlobStorage" + storage_v2 = "StorageV2" + file_storage = "FileStorage" + block_blob_storage = "BlockBlobStorage" + + +class SyncCopyStatusType(str, Enum): + + success = "success" diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/_models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/_models.py new file mode 100644 index 00000000000..acb79c0eebc --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/_models.py @@ -0,0 +1,1939 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from azure.core.exceptions import HttpResponseError + + +class AccessPolicy(Model): + """An Access policy. + + :param start: the date-time the policy is active + :type start: str + :param expiry: the date-time the policy expires + :type expiry: str + :param permission: the permissions for the acl policy + :type permission: str + """ + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'str', 'xml': {'name': 'Start'}}, + 'expiry': {'key': 'Expiry', 'type': 'str', 'xml': {'name': 'Expiry'}}, + 'permission': {'key': 'Permission', 'type': 'str', 'xml': {'name': 'Permission'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(AccessPolicy, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.expiry = kwargs.get('expiry', None) + self.permission = kwargs.get('permission', None) + + +class AppendPositionAccessConditions(Model): + """Additional parameters for a set of operations, such as: + AppendBlob_append_block, AppendBlob_append_block_from_url, AppendBlob_seal. + + :param max_size: Optional conditional header. The max length in bytes + permitted for the append blob. If the Append Block operation would cause + the blob to exceed that limit or if the blob size is already greater than + the value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition + Failed). + :type max_size: long + :param append_position: Optional conditional header, used only for the + Append Block operation. A number indicating the byte offset to compare. + Append Block will succeed only if the append position is equal to this + number. If it is not, the request will fail with the + AppendPositionConditionNotMet error (HTTP status code 412 - Precondition + Failed). + :type append_position: long + """ + + _attribute_map = { + 'max_size': {'key': '', 'type': 'long', 'xml': {'name': 'max_size'}}, + 'append_position': {'key': '', 'type': 'long', 'xml': {'name': 'append_position'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(AppendPositionAccessConditions, self).__init__(**kwargs) + self.max_size = kwargs.get('max_size', None) + self.append_position = kwargs.get('append_position', None) + + +class BlobFlatListSegment(Model): + """BlobFlatListSegment. + + All required parameters must be populated in order to send to Azure. + + :param blob_items: Required. + :type blob_items: list[~azure.storage.blob.models.BlobItemInternal] + """ + + _validation = { + 'blob_items': {'required': True}, + } + + _attribute_map = { + 'blob_items': {'key': 'BlobItems', 'type': '[BlobItemInternal]', 'xml': {'name': 'BlobItems', 'itemsName': 'Blob'}}, + } + _xml_map = { + 'name': 'Blobs' + } + + def __init__(self, **kwargs): + super(BlobFlatListSegment, self).__init__(**kwargs) + self.blob_items = kwargs.get('blob_items', None) + + +class BlobHierarchyListSegment(Model): + """BlobHierarchyListSegment. + + All required parameters must be populated in order to send to Azure. + + :param blob_prefixes: + :type blob_prefixes: list[~azure.storage.blob.models.BlobPrefix] + :param blob_items: Required. + :type blob_items: list[~azure.storage.blob.models.BlobItemInternal] + """ + + _validation = { + 'blob_items': {'required': True}, + } + + _attribute_map = { + 'blob_prefixes': {'key': 'BlobPrefixes', 'type': '[BlobPrefix]', 'xml': {'name': 'BlobPrefix', 'itemsName': 'BlobPrefix'}}, + 'blob_items': {'key': 'BlobItems', 'type': '[BlobItemInternal]', 'xml': {'name': 'Blob', 'itemsName': 'Blob'}}, + } + _xml_map = { + 'name': 'Blobs' + } + + def __init__(self, **kwargs): + super(BlobHierarchyListSegment, self).__init__(**kwargs) + self.blob_prefixes = kwargs.get('blob_prefixes', None) + self.blob_items = kwargs.get('blob_items', None) + + +class BlobHTTPHeaders(Model): + """Additional parameters for a set of operations. + + :param blob_cache_control: Optional. Sets the blob's cache control. If + specified, this property is stored with the blob and returned with a read + request. + :type blob_cache_control: str + :param blob_content_type: Optional. Sets the blob's content type. If + specified, this property is stored with the blob and returned with a read + request. + :type blob_content_type: str + :param blob_content_md5: Optional. An MD5 hash of the blob content. Note + that this hash is not validated, as the hashes for the individual blocks + were validated when each was uploaded. + :type blob_content_md5: bytearray + :param blob_content_encoding: Optional. Sets the blob's content encoding. + If specified, this property is stored with the blob and returned with a + read request. + :type blob_content_encoding: str + :param blob_content_language: Optional. Set the blob's content language. + If specified, this property is stored with the blob and returned with a + read request. + :type blob_content_language: str + :param blob_content_disposition: Optional. Sets the blob's + Content-Disposition header. + :type blob_content_disposition: str + """ + + _attribute_map = { + 'blob_cache_control': {'key': '', 'type': 'str', 'xml': {'name': 'blob_cache_control'}}, + 'blob_content_type': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_type'}}, + 'blob_content_md5': {'key': '', 'type': 'bytearray', 'xml': {'name': 'blob_content_md5'}}, + 'blob_content_encoding': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_encoding'}}, + 'blob_content_language': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_language'}}, + 'blob_content_disposition': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_disposition'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(BlobHTTPHeaders, self).__init__(**kwargs) + self.blob_cache_control = kwargs.get('blob_cache_control', None) + self.blob_content_type = kwargs.get('blob_content_type', None) + self.blob_content_md5 = kwargs.get('blob_content_md5', None) + self.blob_content_encoding = kwargs.get('blob_content_encoding', None) + self.blob_content_language = kwargs.get('blob_content_language', None) + self.blob_content_disposition = kwargs.get('blob_content_disposition', None) + + +class BlobItemInternal(Model): + """An Azure Storage blob. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param deleted: Required. + :type deleted: bool + :param snapshot: Required. + :type snapshot: str + :param version_id: + :type version_id: str + :param is_current_version: + :type is_current_version: bool + :param properties: Required. + :type properties: ~azure.storage.blob.models.BlobPropertiesInternal + :param metadata: + :type metadata: ~azure.storage.blob.models.BlobMetadata + :param blob_tags: + :type blob_tags: ~azure.storage.blob.models.BlobTags + :param object_replication_metadata: + :type object_replication_metadata: dict[str, str] + """ + + _validation = { + 'name': {'required': True}, + 'deleted': {'required': True}, + 'snapshot': {'required': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'deleted': {'key': 'Deleted', 'type': 'bool', 'xml': {'name': 'Deleted'}}, + 'snapshot': {'key': 'Snapshot', 'type': 'str', 'xml': {'name': 'Snapshot'}}, + 'version_id': {'key': 'VersionId', 'type': 'str', 'xml': {'name': 'VersionId'}}, + 'is_current_version': {'key': 'IsCurrentVersion', 'type': 'bool', 'xml': {'name': 'IsCurrentVersion'}}, + 'properties': {'key': 'Properties', 'type': 'BlobPropertiesInternal', 'xml': {'name': 'Properties'}}, + 'metadata': {'key': 'Metadata', 'type': 'BlobMetadata', 'xml': {'name': 'Metadata'}}, + 'blob_tags': {'key': 'BlobTags', 'type': 'BlobTags', 'xml': {'name': 'BlobTags'}}, + 'object_replication_metadata': {'key': 'OrMetadata', 'type': '{str}', 'xml': {'name': 'OrMetadata'}}, + } + _xml_map = { + 'name': 'Blob' + } + + def __init__(self, **kwargs): + super(BlobItemInternal, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.deleted = kwargs.get('deleted', None) + self.snapshot = kwargs.get('snapshot', None) + self.version_id = kwargs.get('version_id', None) + self.is_current_version = kwargs.get('is_current_version', None) + self.properties = kwargs.get('properties', None) + self.metadata = kwargs.get('metadata', None) + self.blob_tags = kwargs.get('blob_tags', None) + self.object_replication_metadata = kwargs.get('object_replication_metadata', None) + + +class BlobMetadata(Model): + """BlobMetadata. + + :param additional_properties: Unmatched properties from the message are + deserialized this collection + :type additional_properties: dict[str, str] + :param encrypted: + :type encrypted: str + """ + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{str}', 'xml': {'name': 'additional_properties'}}, + 'encrypted': {'key': 'Encrypted', 'type': 'str', 'xml': {'name': 'Encrypted', 'attr': True}}, + } + _xml_map = { + 'name': 'Metadata' + } + + def __init__(self, **kwargs): + super(BlobMetadata, self).__init__(**kwargs) + self.additional_properties = kwargs.get('additional_properties', None) + self.encrypted = kwargs.get('encrypted', None) + + +class BlobPrefix(Model): + """BlobPrefix. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(BlobPrefix, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + + +class BlobPropertiesInternal(Model): + """Properties of a blob. + + All required parameters must be populated in order to send to Azure. + + :param creation_time: + :type creation_time: datetime + :param last_modified: Required. + :type last_modified: datetime + :param etag: Required. + :type etag: str + :param content_length: Size in bytes + :type content_length: long + :param content_type: + :type content_type: str + :param content_encoding: + :type content_encoding: str + :param content_language: + :type content_language: str + :param content_md5: + :type content_md5: bytearray + :param content_disposition: + :type content_disposition: str + :param cache_control: + :type cache_control: str + :param blob_sequence_number: + :type blob_sequence_number: long + :param blob_type: Possible values include: 'BlockBlob', 'PageBlob', + 'AppendBlob' + :type blob_type: str or ~azure.storage.blob.models.BlobType + :param lease_status: Possible values include: 'locked', 'unlocked' + :type lease_status: str or ~azure.storage.blob.models.LeaseStatusType + :param lease_state: Possible values include: 'available', 'leased', + 'expired', 'breaking', 'broken' + :type lease_state: str or ~azure.storage.blob.models.LeaseStateType + :param lease_duration: Possible values include: 'infinite', 'fixed' + :type lease_duration: str or ~azure.storage.blob.models.LeaseDurationType + :param copy_id: + :type copy_id: str + :param copy_status: Possible values include: 'pending', 'success', + 'aborted', 'failed' + :type copy_status: str or ~azure.storage.blob.models.CopyStatusType + :param copy_source: + :type copy_source: str + :param copy_progress: + :type copy_progress: str + :param copy_completion_time: + :type copy_completion_time: datetime + :param copy_status_description: + :type copy_status_description: str + :param server_encrypted: + :type server_encrypted: bool + :param incremental_copy: + :type incremental_copy: bool + :param destination_snapshot: + :type destination_snapshot: str + :param deleted_time: + :type deleted_time: datetime + :param remaining_retention_days: + :type remaining_retention_days: int + :param access_tier: Possible values include: 'P4', 'P6', 'P10', 'P15', + 'P20', 'P30', 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type access_tier: str or ~azure.storage.blob.models.AccessTier + :param access_tier_inferred: + :type access_tier_inferred: bool + :param archive_status: Possible values include: + 'rehydrate-pending-to-hot', 'rehydrate-pending-to-cool' + :type archive_status: str or ~azure.storage.blob.models.ArchiveStatus + :param customer_provided_key_sha256: + :type customer_provided_key_sha256: str + :param encryption_scope: The name of the encryption scope under which the + blob is encrypted. + :type encryption_scope: str + :param access_tier_change_time: + :type access_tier_change_time: datetime + :param tag_count: + :type tag_count: int + :param expires_on: + :type expires_on: datetime + :param is_sealed: + :type is_sealed: bool + :param rehydrate_priority: Possible values include: 'High', 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + """ + + _validation = { + 'last_modified': {'required': True}, + 'etag': {'required': True}, + } + + _attribute_map = { + 'creation_time': {'key': 'Creation-Time', 'type': 'rfc-1123', 'xml': {'name': 'Creation-Time'}}, + 'last_modified': {'key': 'Last-Modified', 'type': 'rfc-1123', 'xml': {'name': 'Last-Modified'}}, + 'etag': {'key': 'Etag', 'type': 'str', 'xml': {'name': 'Etag'}}, + 'content_length': {'key': 'Content-Length', 'type': 'long', 'xml': {'name': 'Content-Length'}}, + 'content_type': {'key': 'Content-Type', 'type': 'str', 'xml': {'name': 'Content-Type'}}, + 'content_encoding': {'key': 'Content-Encoding', 'type': 'str', 'xml': {'name': 'Content-Encoding'}}, + 'content_language': {'key': 'Content-Language', 'type': 'str', 'xml': {'name': 'Content-Language'}}, + 'content_md5': {'key': 'Content-MD5', 'type': 'bytearray', 'xml': {'name': 'Content-MD5'}}, + 'content_disposition': {'key': 'Content-Disposition', 'type': 'str', 'xml': {'name': 'Content-Disposition'}}, + 'cache_control': {'key': 'Cache-Control', 'type': 'str', 'xml': {'name': 'Cache-Control'}}, + 'blob_sequence_number': {'key': 'x-ms-blob-sequence-number', 'type': 'long', 'xml': {'name': 'x-ms-blob-sequence-number'}}, + 'blob_type': {'key': 'BlobType', 'type': 'BlobType', 'xml': {'name': 'BlobType'}}, + 'lease_status': {'key': 'LeaseStatus', 'type': 'LeaseStatusType', 'xml': {'name': 'LeaseStatus'}}, + 'lease_state': {'key': 'LeaseState', 'type': 'LeaseStateType', 'xml': {'name': 'LeaseState'}}, + 'lease_duration': {'key': 'LeaseDuration', 'type': 'LeaseDurationType', 'xml': {'name': 'LeaseDuration'}}, + 'copy_id': {'key': 'CopyId', 'type': 'str', 'xml': {'name': 'CopyId'}}, + 'copy_status': {'key': 'CopyStatus', 'type': 'CopyStatusType', 'xml': {'name': 'CopyStatus'}}, + 'copy_source': {'key': 'CopySource', 'type': 'str', 'xml': {'name': 'CopySource'}}, + 'copy_progress': {'key': 'CopyProgress', 'type': 'str', 'xml': {'name': 'CopyProgress'}}, + 'copy_completion_time': {'key': 'CopyCompletionTime', 'type': 'rfc-1123', 'xml': {'name': 'CopyCompletionTime'}}, + 'copy_status_description': {'key': 'CopyStatusDescription', 'type': 'str', 'xml': {'name': 'CopyStatusDescription'}}, + 'server_encrypted': {'key': 'ServerEncrypted', 'type': 'bool', 'xml': {'name': 'ServerEncrypted'}}, + 'incremental_copy': {'key': 'IncrementalCopy', 'type': 'bool', 'xml': {'name': 'IncrementalCopy'}}, + 'destination_snapshot': {'key': 'DestinationSnapshot', 'type': 'str', 'xml': {'name': 'DestinationSnapshot'}}, + 'deleted_time': {'key': 'DeletedTime', 'type': 'rfc-1123', 'xml': {'name': 'DeletedTime'}}, + 'remaining_retention_days': {'key': 'RemainingRetentionDays', 'type': 'int', 'xml': {'name': 'RemainingRetentionDays'}}, + 'access_tier': {'key': 'AccessTier', 'type': 'str', 'xml': {'name': 'AccessTier'}}, + 'access_tier_inferred': {'key': 'AccessTierInferred', 'type': 'bool', 'xml': {'name': 'AccessTierInferred'}}, + 'archive_status': {'key': 'ArchiveStatus', 'type': 'str', 'xml': {'name': 'ArchiveStatus'}}, + 'customer_provided_key_sha256': {'key': 'CustomerProvidedKeySha256', 'type': 'str', 'xml': {'name': 'CustomerProvidedKeySha256'}}, + 'encryption_scope': {'key': 'EncryptionScope', 'type': 'str', 'xml': {'name': 'EncryptionScope'}}, + 'access_tier_change_time': {'key': 'AccessTierChangeTime', 'type': 'rfc-1123', 'xml': {'name': 'AccessTierChangeTime'}}, + 'tag_count': {'key': 'TagCount', 'type': 'int', 'xml': {'name': 'TagCount'}}, + 'expires_on': {'key': 'Expiry-Time', 'type': 'rfc-1123', 'xml': {'name': 'Expiry-Time'}}, + 'is_sealed': {'key': 'Sealed', 'type': 'bool', 'xml': {'name': 'Sealed'}}, + 'rehydrate_priority': {'key': 'RehydratePriority', 'type': 'str', 'xml': {'name': 'RehydratePriority'}}, + } + _xml_map = { + 'name': 'Properties' + } + + def __init__(self, **kwargs): + super(BlobPropertiesInternal, self).__init__(**kwargs) + self.creation_time = kwargs.get('creation_time', None) + self.last_modified = kwargs.get('last_modified', None) + self.etag = kwargs.get('etag', None) + self.content_length = kwargs.get('content_length', None) + self.content_type = kwargs.get('content_type', None) + self.content_encoding = kwargs.get('content_encoding', None) + self.content_language = kwargs.get('content_language', None) + self.content_md5 = kwargs.get('content_md5', None) + self.content_disposition = kwargs.get('content_disposition', None) + self.cache_control = kwargs.get('cache_control', None) + self.blob_sequence_number = kwargs.get('blob_sequence_number', None) + self.blob_type = kwargs.get('blob_type', None) + self.lease_status = kwargs.get('lease_status', None) + self.lease_state = kwargs.get('lease_state', None) + self.lease_duration = kwargs.get('lease_duration', None) + self.copy_id = kwargs.get('copy_id', None) + self.copy_status = kwargs.get('copy_status', None) + self.copy_source = kwargs.get('copy_source', None) + self.copy_progress = kwargs.get('copy_progress', None) + self.copy_completion_time = kwargs.get('copy_completion_time', None) + self.copy_status_description = kwargs.get('copy_status_description', None) + self.server_encrypted = kwargs.get('server_encrypted', None) + self.incremental_copy = kwargs.get('incremental_copy', None) + self.destination_snapshot = kwargs.get('destination_snapshot', None) + self.deleted_time = kwargs.get('deleted_time', None) + self.remaining_retention_days = kwargs.get('remaining_retention_days', None) + self.access_tier = kwargs.get('access_tier', None) + self.access_tier_inferred = kwargs.get('access_tier_inferred', None) + self.archive_status = kwargs.get('archive_status', None) + self.customer_provided_key_sha256 = kwargs.get('customer_provided_key_sha256', None) + self.encryption_scope = kwargs.get('encryption_scope', None) + self.access_tier_change_time = kwargs.get('access_tier_change_time', None) + self.tag_count = kwargs.get('tag_count', None) + self.expires_on = kwargs.get('expires_on', None) + self.is_sealed = kwargs.get('is_sealed', None) + self.rehydrate_priority = kwargs.get('rehydrate_priority', None) + + +class BlobTag(Model): + """BlobTag. + + All required parameters must be populated in order to send to Azure. + + :param key: Required. + :type key: str + :param value: Required. + :type value: str + """ + + _validation = { + 'key': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'key': {'key': 'Key', 'type': 'str', 'xml': {'name': 'Key'}}, + 'value': {'key': 'Value', 'type': 'str', 'xml': {'name': 'Value'}}, + } + _xml_map = { + 'name': 'Tag' + } + + def __init__(self, **kwargs): + super(BlobTag, self).__init__(**kwargs) + self.key = kwargs.get('key', None) + self.value = kwargs.get('value', None) + + +class BlobTags(Model): + """Blob tags. + + All required parameters must be populated in order to send to Azure. + + :param blob_tag_set: Required. + :type blob_tag_set: list[~azure.storage.blob.models.BlobTag] + """ + + _validation = { + 'blob_tag_set': {'required': True}, + } + + _attribute_map = { + 'blob_tag_set': {'key': 'BlobTagSet', 'type': '[BlobTag]', 'xml': {'name': 'TagSet', 'itemsName': 'TagSet', 'wrapped': True}}, + } + _xml_map = { + 'name': 'Tags' + } + + def __init__(self, **kwargs): + super(BlobTags, self).__init__(**kwargs) + self.blob_tag_set = kwargs.get('blob_tag_set', None) + + +class Block(Model): + """Represents a single block in a block blob. It describes the block's ID and + size. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The base64 encoded block ID. + :type name: str + :param size: Required. The block size in bytes. + :type size: int + """ + + _validation = { + 'name': {'required': True}, + 'size': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'size': {'key': 'Size', 'type': 'int', 'xml': {'name': 'Size'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(Block, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.size = kwargs.get('size', None) + + +class BlockList(Model): + """BlockList. + + :param committed_blocks: + :type committed_blocks: list[~azure.storage.blob.models.Block] + :param uncommitted_blocks: + :type uncommitted_blocks: list[~azure.storage.blob.models.Block] + """ + + _attribute_map = { + 'committed_blocks': {'key': 'CommittedBlocks', 'type': '[Block]', 'xml': {'name': 'CommittedBlocks', 'itemsName': 'Block', 'wrapped': True}}, + 'uncommitted_blocks': {'key': 'UncommittedBlocks', 'type': '[Block]', 'xml': {'name': 'UncommittedBlocks', 'itemsName': 'Block', 'wrapped': True}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(BlockList, self).__init__(**kwargs) + self.committed_blocks = kwargs.get('committed_blocks', None) + self.uncommitted_blocks = kwargs.get('uncommitted_blocks', None) + + +class BlockLookupList(Model): + """BlockLookupList. + + :param committed: + :type committed: list[str] + :param uncommitted: + :type uncommitted: list[str] + :param latest: + :type latest: list[str] + """ + + _attribute_map = { + 'committed': {'key': 'Committed', 'type': '[str]', 'xml': {'name': 'Committed', 'itemsName': 'Committed'}}, + 'uncommitted': {'key': 'Uncommitted', 'type': '[str]', 'xml': {'name': 'Uncommitted', 'itemsName': 'Uncommitted'}}, + 'latest': {'key': 'Latest', 'type': '[str]', 'xml': {'name': 'Latest', 'itemsName': 'Latest'}}, + } + _xml_map = { + 'name': 'BlockList' + } + + def __init__(self, **kwargs): + super(BlockLookupList, self).__init__(**kwargs) + self.committed = kwargs.get('committed', None) + self.uncommitted = kwargs.get('uncommitted', None) + self.latest = kwargs.get('latest', None) + + +class ClearRange(Model): + """ClearRange. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. + :type start: long + :param end: Required. + :type end: long + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'long', 'xml': {'name': 'Start'}}, + 'end': {'key': 'End', 'type': 'long', 'xml': {'name': 'End'}}, + } + _xml_map = { + 'name': 'ClearRange' + } + + def __init__(self, **kwargs): + super(ClearRange, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.end = kwargs.get('end', None) + + +class ContainerCpkScopeInfo(Model): + """Additional parameters for create operation. + + :param default_encryption_scope: Optional. Version 2019-07-07 and later. + Specifies the default encryption scope to set on the container and use for + all future writes. + :type default_encryption_scope: str + :param prevent_encryption_scope_override: Optional. Version 2019-07-07 + and newer. If true, prevents any request from specifying a different + encryption scope than the scope set on the container. + :type prevent_encryption_scope_override: bool + """ + + _attribute_map = { + 'default_encryption_scope': {'key': '', 'type': 'str', 'xml': {'name': 'default_encryption_scope'}}, + 'prevent_encryption_scope_override': {'key': '', 'type': 'bool', 'xml': {'name': 'prevent_encryption_scope_override'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(ContainerCpkScopeInfo, self).__init__(**kwargs) + self.default_encryption_scope = kwargs.get('default_encryption_scope', None) + self.prevent_encryption_scope_override = kwargs.get('prevent_encryption_scope_override', None) + + +class ContainerItem(Model): + """An Azure Storage container. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param deleted: + :type deleted: bool + :param version: + :type version: str + :param properties: Required. + :type properties: ~azure.storage.blob.models.ContainerProperties + :param metadata: + :type metadata: dict[str, str] + """ + + _validation = { + 'name': {'required': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'deleted': {'key': 'Deleted', 'type': 'bool', 'xml': {'name': 'Deleted'}}, + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'properties': {'key': 'Properties', 'type': 'ContainerProperties', 'xml': {'name': 'Properties'}}, + 'metadata': {'key': 'Metadata', 'type': '{str}', 'xml': {'name': 'Metadata'}}, + } + _xml_map = { + 'name': 'Container' + } + + def __init__(self, **kwargs): + super(ContainerItem, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.deleted = kwargs.get('deleted', None) + self.version = kwargs.get('version', None) + self.properties = kwargs.get('properties', None) + self.metadata = kwargs.get('metadata', None) + + +class ContainerProperties(Model): + """Properties of a container. + + All required parameters must be populated in order to send to Azure. + + :param last_modified: Required. + :type last_modified: datetime + :param etag: Required. + :type etag: str + :param lease_status: Possible values include: 'locked', 'unlocked' + :type lease_status: str or ~azure.storage.blob.models.LeaseStatusType + :param lease_state: Possible values include: 'available', 'leased', + 'expired', 'breaking', 'broken' + :type lease_state: str or ~azure.storage.blob.models.LeaseStateType + :param lease_duration: Possible values include: 'infinite', 'fixed' + :type lease_duration: str or ~azure.storage.blob.models.LeaseDurationType + :param public_access: Possible values include: 'container', 'blob' + :type public_access: str or ~azure.storage.blob.models.PublicAccessType + :param has_immutability_policy: + :type has_immutability_policy: bool + :param has_legal_hold: + :type has_legal_hold: bool + :param default_encryption_scope: + :type default_encryption_scope: str + :param prevent_encryption_scope_override: + :type prevent_encryption_scope_override: bool + :param deleted_time: + :type deleted_time: datetime + :param remaining_retention_days: + :type remaining_retention_days: int + """ + + _validation = { + 'last_modified': {'required': True}, + 'etag': {'required': True}, + } + + _attribute_map = { + 'last_modified': {'key': 'Last-Modified', 'type': 'rfc-1123', 'xml': {'name': 'Last-Modified'}}, + 'etag': {'key': 'Etag', 'type': 'str', 'xml': {'name': 'Etag'}}, + 'lease_status': {'key': 'LeaseStatus', 'type': 'LeaseStatusType', 'xml': {'name': 'LeaseStatus'}}, + 'lease_state': {'key': 'LeaseState', 'type': 'LeaseStateType', 'xml': {'name': 'LeaseState'}}, + 'lease_duration': {'key': 'LeaseDuration', 'type': 'LeaseDurationType', 'xml': {'name': 'LeaseDuration'}}, + 'public_access': {'key': 'PublicAccess', 'type': 'str', 'xml': {'name': 'PublicAccess'}}, + 'has_immutability_policy': {'key': 'HasImmutabilityPolicy', 'type': 'bool', 'xml': {'name': 'HasImmutabilityPolicy'}}, + 'has_legal_hold': {'key': 'HasLegalHold', 'type': 'bool', 'xml': {'name': 'HasLegalHold'}}, + 'default_encryption_scope': {'key': 'DefaultEncryptionScope', 'type': 'str', 'xml': {'name': 'DefaultEncryptionScope'}}, + 'prevent_encryption_scope_override': {'key': 'DenyEncryptionScopeOverride', 'type': 'bool', 'xml': {'name': 'DenyEncryptionScopeOverride'}}, + 'deleted_time': {'key': 'DeletedTime', 'type': 'rfc-1123', 'xml': {'name': 'DeletedTime'}}, + 'remaining_retention_days': {'key': 'RemainingRetentionDays', 'type': 'int', 'xml': {'name': 'RemainingRetentionDays'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(ContainerProperties, self).__init__(**kwargs) + self.last_modified = kwargs.get('last_modified', None) + self.etag = kwargs.get('etag', None) + self.lease_status = kwargs.get('lease_status', None) + self.lease_state = kwargs.get('lease_state', None) + self.lease_duration = kwargs.get('lease_duration', None) + self.public_access = kwargs.get('public_access', None) + self.has_immutability_policy = kwargs.get('has_immutability_policy', None) + self.has_legal_hold = kwargs.get('has_legal_hold', None) + self.default_encryption_scope = kwargs.get('default_encryption_scope', None) + self.prevent_encryption_scope_override = kwargs.get('prevent_encryption_scope_override', None) + self.deleted_time = kwargs.get('deleted_time', None) + self.remaining_retention_days = kwargs.get('remaining_retention_days', None) + + +class CorsRule(Model): + """CORS is an HTTP feature that enables a web application running under one + domain to access resources in another domain. Web browsers implement a + security restriction known as same-origin policy that prevents a web page + from calling APIs in a different domain; CORS provides a secure way to + allow one domain (the origin domain) to call APIs in another domain. + + All required parameters must be populated in order to send to Azure. + + :param allowed_origins: Required. The origin domains that are permitted to + make a request against the storage service via CORS. The origin domain is + the domain from which the request originates. Note that the origin must be + an exact case-sensitive match with the origin that the user age sends to + the service. You can also use the wildcard character '*' to allow all + origin domains to make requests via CORS. + :type allowed_origins: str + :param allowed_methods: Required. The methods (HTTP request verbs) that + the origin domain may use for a CORS request. (comma separated) + :type allowed_methods: str + :param allowed_headers: Required. the request headers that the origin + domain may specify on the CORS request. + :type allowed_headers: str + :param exposed_headers: Required. The response headers that may be sent in + the response to the CORS request and exposed by the browser to the request + issuer + :type exposed_headers: str + :param max_age_in_seconds: Required. The maximum amount time that a + browser should cache the preflight OPTIONS request. + :type max_age_in_seconds: int + """ + + _validation = { + 'allowed_origins': {'required': True}, + 'allowed_methods': {'required': True}, + 'allowed_headers': {'required': True}, + 'exposed_headers': {'required': True}, + 'max_age_in_seconds': {'required': True, 'minimum': 0}, + } + + _attribute_map = { + 'allowed_origins': {'key': 'AllowedOrigins', 'type': 'str', 'xml': {'name': 'AllowedOrigins'}}, + 'allowed_methods': {'key': 'AllowedMethods', 'type': 'str', 'xml': {'name': 'AllowedMethods'}}, + 'allowed_headers': {'key': 'AllowedHeaders', 'type': 'str', 'xml': {'name': 'AllowedHeaders'}}, + 'exposed_headers': {'key': 'ExposedHeaders', 'type': 'str', 'xml': {'name': 'ExposedHeaders'}}, + 'max_age_in_seconds': {'key': 'MaxAgeInSeconds', 'type': 'int', 'xml': {'name': 'MaxAgeInSeconds'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(CorsRule, self).__init__(**kwargs) + self.allowed_origins = kwargs.get('allowed_origins', None) + self.allowed_methods = kwargs.get('allowed_methods', None) + self.allowed_headers = kwargs.get('allowed_headers', None) + self.exposed_headers = kwargs.get('exposed_headers', None) + self.max_age_in_seconds = kwargs.get('max_age_in_seconds', None) + + +class CpkInfo(Model): + """Additional parameters for a set of operations. + + :param encryption_key: Optional. Specifies the encryption key to use to + encrypt the data provided in the request. If not specified, encryption is + performed with the root account encryption key. For more information, see + Encryption at Rest for Azure Storage Services. + :type encryption_key: str + :param encryption_key_sha256: The SHA-256 hash of the provided encryption + key. Must be provided if the x-ms-encryption-key header is provided. + :type encryption_key_sha256: str + :param encryption_algorithm: The algorithm used to produce the encryption + key hash. Currently, the only accepted value is "AES256". Must be provided + if the x-ms-encryption-key header is provided. Possible values include: + 'AES256' + :type encryption_algorithm: str or + ~azure.storage.blob.models.EncryptionAlgorithmType + """ + + _attribute_map = { + 'encryption_key': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_key'}}, + 'encryption_key_sha256': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_key_sha256'}}, + 'encryption_algorithm': {'key': '', 'type': 'EncryptionAlgorithmType', 'xml': {'name': 'encryption_algorithm'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(CpkInfo, self).__init__(**kwargs) + self.encryption_key = kwargs.get('encryption_key', None) + self.encryption_key_sha256 = kwargs.get('encryption_key_sha256', None) + self.encryption_algorithm = kwargs.get('encryption_algorithm', None) + + +class CpkScopeInfo(Model): + """Additional parameters for a set of operations. + + :param encryption_scope: Optional. Version 2019-07-07 and later. + Specifies the name of the encryption scope to use to encrypt the data + provided in the request. If not specified, encryption is performed with + the default account encryption scope. For more information, see + Encryption at Rest for Azure Storage Services. + :type encryption_scope: str + """ + + _attribute_map = { + 'encryption_scope': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_scope'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(CpkScopeInfo, self).__init__(**kwargs) + self.encryption_scope = kwargs.get('encryption_scope', None) + + +class DataLakeStorageError(Model): + """DataLakeStorageError. + + :param data_lake_storage_error_details: The service error response object. + :type data_lake_storage_error_details: + ~azure.storage.blob.models.DataLakeStorageErrorError + """ + + _attribute_map = { + 'data_lake_storage_error_details': {'key': 'error', 'type': 'DataLakeStorageErrorError', 'xml': {'name': 'error'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(DataLakeStorageError, self).__init__(**kwargs) + self.data_lake_storage_error_details = kwargs.get('data_lake_storage_error_details', None) + + +class DataLakeStorageErrorException(HttpResponseError): + """Server responsed with exception of type: 'DataLakeStorageError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, response, deserialize, *args): + + model_name = 'DataLakeStorageError' + self.error = deserialize(model_name, response) + if self.error is None: + self.error = deserialize.dependencies[model_name]() + super(DataLakeStorageErrorException, self).__init__(response=response) + + +class DataLakeStorageErrorError(Model): + """The service error response object. + + :param code: The service error code. + :type code: str + :param message: The service error message. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'Code', 'type': 'str', 'xml': {'name': 'Code'}}, + 'message': {'key': 'Message', 'type': 'str', 'xml': {'name': 'Message'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(DataLakeStorageErrorError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + + +class DelimitedTextConfiguration(Model): + """delimited text configuration. + + All required parameters must be populated in order to send to Azure. + + :param column_separator: Required. column separator + :type column_separator: str + :param field_quote: Required. field quote + :type field_quote: str + :param record_separator: Required. record separator + :type record_separator: str + :param escape_char: Required. escape char + :type escape_char: str + :param headers_present: Required. has headers + :type headers_present: bool + """ + + _validation = { + 'column_separator': {'required': True}, + 'field_quote': {'required': True}, + 'record_separator': {'required': True}, + 'escape_char': {'required': True}, + 'headers_present': {'required': True}, + } + + _attribute_map = { + 'column_separator': {'key': 'ColumnSeparator', 'type': 'str', 'xml': {'name': 'ColumnSeparator'}}, + 'field_quote': {'key': 'FieldQuote', 'type': 'str', 'xml': {'name': 'FieldQuote'}}, + 'record_separator': {'key': 'RecordSeparator', 'type': 'str', 'xml': {'name': 'RecordSeparator'}}, + 'escape_char': {'key': 'EscapeChar', 'type': 'str', 'xml': {'name': 'EscapeChar'}}, + 'headers_present': {'key': 'HeadersPresent', 'type': 'bool', 'xml': {'name': 'HasHeaders'}}, + } + _xml_map = { + 'name': 'DelimitedTextConfiguration' + } + + def __init__(self, **kwargs): + super(DelimitedTextConfiguration, self).__init__(**kwargs) + self.column_separator = kwargs.get('column_separator', None) + self.field_quote = kwargs.get('field_quote', None) + self.record_separator = kwargs.get('record_separator', None) + self.escape_char = kwargs.get('escape_char', None) + self.headers_present = kwargs.get('headers_present', None) + + +class DirectoryHttpHeaders(Model): + """Additional parameters for a set of operations, such as: Directory_create, + Directory_rename, Blob_rename. + + :param cache_control: Cache control for given resource + :type cache_control: str + :param content_type: Content type for given resource + :type content_type: str + :param content_encoding: Content encoding for given resource + :type content_encoding: str + :param content_language: Content language for given resource + :type content_language: str + :param content_disposition: Content disposition for given resource + :type content_disposition: str + """ + + _attribute_map = { + 'cache_control': {'key': '', 'type': 'str', 'xml': {'name': 'cache_control'}}, + 'content_type': {'key': '', 'type': 'str', 'xml': {'name': 'content_type'}}, + 'content_encoding': {'key': '', 'type': 'str', 'xml': {'name': 'content_encoding'}}, + 'content_language': {'key': '', 'type': 'str', 'xml': {'name': 'content_language'}}, + 'content_disposition': {'key': '', 'type': 'str', 'xml': {'name': 'content_disposition'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(DirectoryHttpHeaders, self).__init__(**kwargs) + self.cache_control = kwargs.get('cache_control', None) + self.content_type = kwargs.get('content_type', None) + self.content_encoding = kwargs.get('content_encoding', None) + self.content_language = kwargs.get('content_language', None) + self.content_disposition = kwargs.get('content_disposition', None) + + +class FilterBlobItem(Model): + """Blob info from a Filter Blobs API call. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param container_name: Required. + :type container_name: str + :param tag_value: Required. + :type tag_value: str + """ + + _validation = { + 'name': {'required': True}, + 'container_name': {'required': True}, + 'tag_value': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName'}}, + 'tag_value': {'key': 'TagValue', 'type': 'str', 'xml': {'name': 'TagValue'}}, + } + _xml_map = { + 'name': 'Blob' + } + + def __init__(self, **kwargs): + super(FilterBlobItem, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.container_name = kwargs.get('container_name', None) + self.tag_value = kwargs.get('tag_value', None) + + +class FilterBlobSegment(Model): + """The result of a Filter Blobs API call. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param where: Required. + :type where: str + :param blobs: Required. + :type blobs: list[~azure.storage.blob.models.FilterBlobItem] + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'where': {'required': True}, + 'blobs': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'where': {'key': 'Where', 'type': 'str', 'xml': {'name': 'Where'}}, + 'blobs': {'key': 'Blobs', 'type': '[FilterBlobItem]', 'xml': {'name': 'Blobs', 'itemsName': 'Blobs', 'wrapped': True}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, **kwargs): + super(FilterBlobSegment, self).__init__(**kwargs) + self.service_endpoint = kwargs.get('service_endpoint', None) + self.where = kwargs.get('where', None) + self.blobs = kwargs.get('blobs', None) + self.next_marker = kwargs.get('next_marker', None) + + +class GeoReplication(Model): + """Geo-Replication information for the Secondary Storage Service. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The status of the secondary location. Possible + values include: 'live', 'bootstrap', 'unavailable' + :type status: str or ~azure.storage.blob.models.GeoReplicationStatusType + :param last_sync_time: Required. A GMT date/time value, to the second. All + primary writes preceding this value are guaranteed to be available for + read operations at the secondary. Primary writes after this point in time + may or may not be available for reads. + :type last_sync_time: datetime + """ + + _validation = { + 'status': {'required': True}, + 'last_sync_time': {'required': True}, + } + + _attribute_map = { + 'status': {'key': 'Status', 'type': 'str', 'xml': {'name': 'Status'}}, + 'last_sync_time': {'key': 'LastSyncTime', 'type': 'rfc-1123', 'xml': {'name': 'LastSyncTime'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(GeoReplication, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.last_sync_time = kwargs.get('last_sync_time', None) + + +class JsonTextConfiguration(Model): + """json text configuration. + + All required parameters must be populated in order to send to Azure. + + :param record_separator: Required. record separator + :type record_separator: str + """ + + _validation = { + 'record_separator': {'required': True}, + } + + _attribute_map = { + 'record_separator': {'key': 'RecordSeparator', 'type': 'str', 'xml': {'name': 'RecordSeparator'}}, + } + _xml_map = { + 'name': 'JsonTextConfiguration' + } + + def __init__(self, **kwargs): + super(JsonTextConfiguration, self).__init__(**kwargs) + self.record_separator = kwargs.get('record_separator', None) + + +class KeyInfo(Model): + """Key information. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The date-time the key is active in ISO 8601 UTC + time + :type start: str + :param expiry: Required. The date-time the key expires in ISO 8601 UTC + time + :type expiry: str + """ + + _validation = { + 'start': {'required': True}, + 'expiry': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'str', 'xml': {'name': 'Start'}}, + 'expiry': {'key': 'Expiry', 'type': 'str', 'xml': {'name': 'Expiry'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(KeyInfo, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.expiry = kwargs.get('expiry', None) + + +class LeaseAccessConditions(Model): + """Additional parameters for a set of operations. + + :param lease_id: If specified, the operation only succeeds if the + resource's lease is active and matches this ID. + :type lease_id: str + """ + + _attribute_map = { + 'lease_id': {'key': '', 'type': 'str', 'xml': {'name': 'lease_id'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(LeaseAccessConditions, self).__init__(**kwargs) + self.lease_id = kwargs.get('lease_id', None) + + +class ListBlobsFlatSegmentResponse(Model): + """An enumeration of blobs. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param container_name: Required. + :type container_name: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param segment: Required. + :type segment: ~azure.storage.blob.models.BlobFlatListSegment + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_name': {'required': True}, + 'segment': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'segment': {'key': 'Segment', 'type': 'BlobFlatListSegment', 'xml': {'name': 'Segment'}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, **kwargs): + super(ListBlobsFlatSegmentResponse, self).__init__(**kwargs) + self.service_endpoint = kwargs.get('service_endpoint', None) + self.container_name = kwargs.get('container_name', None) + self.prefix = kwargs.get('prefix', None) + self.marker = kwargs.get('marker', None) + self.max_results = kwargs.get('max_results', None) + self.segment = kwargs.get('segment', None) + self.next_marker = kwargs.get('next_marker', None) + + +class ListBlobsHierarchySegmentResponse(Model): + """An enumeration of blobs. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param container_name: Required. + :type container_name: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param delimiter: + :type delimiter: str + :param segment: Required. + :type segment: ~azure.storage.blob.models.BlobHierarchyListSegment + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_name': {'required': True}, + 'segment': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'delimiter': {'key': 'Delimiter', 'type': 'str', 'xml': {'name': 'Delimiter'}}, + 'segment': {'key': 'Segment', 'type': 'BlobHierarchyListSegment', 'xml': {'name': 'Segment'}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, **kwargs): + super(ListBlobsHierarchySegmentResponse, self).__init__(**kwargs) + self.service_endpoint = kwargs.get('service_endpoint', None) + self.container_name = kwargs.get('container_name', None) + self.prefix = kwargs.get('prefix', None) + self.marker = kwargs.get('marker', None) + self.max_results = kwargs.get('max_results', None) + self.delimiter = kwargs.get('delimiter', None) + self.segment = kwargs.get('segment', None) + self.next_marker = kwargs.get('next_marker', None) + + +class ListContainersSegmentResponse(Model): + """An enumeration of containers. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param container_items: Required. + :type container_items: list[~azure.storage.blob.models.ContainerItem] + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_items': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'container_items': {'key': 'ContainerItems', 'type': '[ContainerItem]', 'xml': {'name': 'Containers', 'itemsName': 'Containers', 'wrapped': True}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, **kwargs): + super(ListContainersSegmentResponse, self).__init__(**kwargs) + self.service_endpoint = kwargs.get('service_endpoint', None) + self.prefix = kwargs.get('prefix', None) + self.marker = kwargs.get('marker', None) + self.max_results = kwargs.get('max_results', None) + self.container_items = kwargs.get('container_items', None) + self.next_marker = kwargs.get('next_marker', None) + + +class Logging(Model): + """Azure Analytics Logging settings. + + All required parameters must be populated in order to send to Azure. + + :param version: Required. The version of Storage Analytics to configure. + :type version: str + :param delete: Required. Indicates whether all delete requests should be + logged. + :type delete: bool + :param read: Required. Indicates whether all read requests should be + logged. + :type read: bool + :param write: Required. Indicates whether all write requests should be + logged. + :type write: bool + :param retention_policy: Required. + :type retention_policy: ~azure.storage.blob.models.RetentionPolicy + """ + + _validation = { + 'version': {'required': True}, + 'delete': {'required': True}, + 'read': {'required': True}, + 'write': {'required': True}, + 'retention_policy': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'delete': {'key': 'Delete', 'type': 'bool', 'xml': {'name': 'Delete'}}, + 'read': {'key': 'Read', 'type': 'bool', 'xml': {'name': 'Read'}}, + 'write': {'key': 'Write', 'type': 'bool', 'xml': {'name': 'Write'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'RetentionPolicy'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(Logging, self).__init__(**kwargs) + self.version = kwargs.get('version', None) + self.delete = kwargs.get('delete', None) + self.read = kwargs.get('read', None) + self.write = kwargs.get('write', None) + self.retention_policy = kwargs.get('retention_policy', None) + + +class Metrics(Model): + """a summary of request statistics grouped by API in hour or minute aggregates + for blobs. + + All required parameters must be populated in order to send to Azure. + + :param version: The version of Storage Analytics to configure. + :type version: str + :param enabled: Required. Indicates whether metrics are enabled for the + Blob service. + :type enabled: bool + :param include_apis: Indicates whether metrics should generate summary + statistics for called API operations. + :type include_apis: bool + :param retention_policy: + :type retention_policy: ~azure.storage.blob.models.RetentionPolicy + """ + + _validation = { + 'enabled': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'include_apis': {'key': 'IncludeAPIs', 'type': 'bool', 'xml': {'name': 'IncludeAPIs'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'RetentionPolicy'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(Metrics, self).__init__(**kwargs) + self.version = kwargs.get('version', None) + self.enabled = kwargs.get('enabled', None) + self.include_apis = kwargs.get('include_apis', None) + self.retention_policy = kwargs.get('retention_policy', None) + + +class ModifiedAccessConditions(Model): + """Additional parameters for a set of operations. + + :param if_modified_since: Specify this header value to operate only on a + blob if it has been modified since the specified date/time. + :type if_modified_since: datetime + :param if_unmodified_since: Specify this header value to operate only on a + blob if it has not been modified since the specified date/time. + :type if_unmodified_since: datetime + :param if_match: Specify an ETag value to operate only on blobs with a + matching value. + :type if_match: str + :param if_none_match: Specify an ETag value to operate only on blobs + without a matching value. + :type if_none_match: str + :param if_tags: Specify a SQL where clause on blob tags to operate only on + blobs with a matching value. + :type if_tags: str + """ + + _attribute_map = { + 'if_modified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'if_modified_since'}}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'if_unmodified_since'}}, + 'if_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_match'}}, + 'if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_none_match'}}, + 'if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'if_tags'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(ModifiedAccessConditions, self).__init__(**kwargs) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_tags = kwargs.get('if_tags', None) + + +class PageList(Model): + """the list of pages. + + :param page_range: + :type page_range: list[~azure.storage.blob.models.PageRange] + :param clear_range: + :type clear_range: list[~azure.storage.blob.models.ClearRange] + """ + + _attribute_map = { + 'page_range': {'key': 'PageRange', 'type': '[PageRange]', 'xml': {'name': 'PageRange', 'itemsName': 'PageRange'}}, + 'clear_range': {'key': 'ClearRange', 'type': '[ClearRange]', 'xml': {'name': 'ClearRange', 'itemsName': 'ClearRange'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(PageList, self).__init__(**kwargs) + self.page_range = kwargs.get('page_range', None) + self.clear_range = kwargs.get('clear_range', None) + + +class PageRange(Model): + """PageRange. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. + :type start: long + :param end: Required. + :type end: long + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'long', 'xml': {'name': 'Start'}}, + 'end': {'key': 'End', 'type': 'long', 'xml': {'name': 'End'}}, + } + _xml_map = { + 'name': 'PageRange' + } + + def __init__(self, **kwargs): + super(PageRange, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.end = kwargs.get('end', None) + + +class QueryFormat(Model): + """QueryFormat. + + :param type: Possible values include: 'delimited', 'json' + :type type: str or ~azure.storage.blob.models.QueryFormatType + :param delimited_text_configuration: + :type delimited_text_configuration: + ~azure.storage.blob.models.DelimitedTextConfiguration + :param json_text_configuration: + :type json_text_configuration: + ~azure.storage.blob.models.JsonTextConfiguration + """ + + _attribute_map = { + 'type': {'key': 'Type', 'type': 'QueryFormatType', 'xml': {'name': 'Type'}}, + 'delimited_text_configuration': {'key': 'DelimitedTextConfiguration', 'type': 'DelimitedTextConfiguration', 'xml': {'name': 'DelimitedTextConfiguration'}}, + 'json_text_configuration': {'key': 'JsonTextConfiguration', 'type': 'JsonTextConfiguration', 'xml': {'name': 'JsonTextConfiguration'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(QueryFormat, self).__init__(**kwargs) + self.type = kwargs.get('type', None) + self.delimited_text_configuration = kwargs.get('delimited_text_configuration', None) + self.json_text_configuration = kwargs.get('json_text_configuration', None) + + +class QueryRequest(Model): + """the quick query body. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar query_type: Required. the query type. Default value: "SQL" . + :vartype query_type: str + :param expression: Required. a query statement + :type expression: str + :param input_serialization: + :type input_serialization: ~azure.storage.blob.models.QuerySerialization + :param output_serialization: + :type output_serialization: ~azure.storage.blob.models.QuerySerialization + """ + + _validation = { + 'query_type': {'required': True, 'constant': True}, + 'expression': {'required': True}, + } + + _attribute_map = { + 'query_type': {'key': 'QueryType', 'type': 'str', 'xml': {'name': 'QueryType'}}, + 'expression': {'key': 'Expression', 'type': 'str', 'xml': {'name': 'Expression'}}, + 'input_serialization': {'key': 'InputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'InputSerialization'}}, + 'output_serialization': {'key': 'OutputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'OutputSerialization'}}, + } + _xml_map = { + 'name': 'QueryRequest' + } + + query_type = "SQL" + + def __init__(self, **kwargs): + super(QueryRequest, self).__init__(**kwargs) + self.expression = kwargs.get('expression', None) + self.input_serialization = kwargs.get('input_serialization', None) + self.output_serialization = kwargs.get('output_serialization', None) + + +class QuerySerialization(Model): + """QuerySerialization. + + All required parameters must be populated in order to send to Azure. + + :param format: Required. + :type format: ~azure.storage.blob.models.QueryFormat + """ + + _validation = { + 'format': {'required': True}, + } + + _attribute_map = { + 'format': {'key': 'Format', 'type': 'QueryFormat', 'xml': {'name': 'Format'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(QuerySerialization, self).__init__(**kwargs) + self.format = kwargs.get('format', None) + + +class RetentionPolicy(Model): + """the retention policy which determines how long the associated data should + persist. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Indicates whether a retention policy is enabled + for the storage service + :type enabled: bool + :param days: Indicates the number of days that metrics or logging or + soft-deleted data should be retained. All data older than this value will + be deleted + :type days: int + """ + + _validation = { + 'enabled': {'required': True}, + 'days': {'minimum': 1}, + } + + _attribute_map = { + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'days': {'key': 'Days', 'type': 'int', 'xml': {'name': 'Days'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(RetentionPolicy, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.days = kwargs.get('days', None) + + +class SequenceNumberAccessConditions(Model): + """Additional parameters for a set of operations, such as: + PageBlob_upload_pages, PageBlob_clear_pages, + PageBlob_upload_pages_from_url. + + :param if_sequence_number_less_than_or_equal_to: Specify this header value + to operate only on a blob if it has a sequence number less than or equal + to the specified. + :type if_sequence_number_less_than_or_equal_to: long + :param if_sequence_number_less_than: Specify this header value to operate + only on a blob if it has a sequence number less than the specified. + :type if_sequence_number_less_than: long + :param if_sequence_number_equal_to: Specify this header value to operate + only on a blob if it has the specified sequence number. + :type if_sequence_number_equal_to: long + """ + + _attribute_map = { + 'if_sequence_number_less_than_or_equal_to': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_less_than_or_equal_to'}}, + 'if_sequence_number_less_than': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_less_than'}}, + 'if_sequence_number_equal_to': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_equal_to'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(SequenceNumberAccessConditions, self).__init__(**kwargs) + self.if_sequence_number_less_than_or_equal_to = kwargs.get('if_sequence_number_less_than_or_equal_to', None) + self.if_sequence_number_less_than = kwargs.get('if_sequence_number_less_than', None) + self.if_sequence_number_equal_to = kwargs.get('if_sequence_number_equal_to', None) + + +class SignedIdentifier(Model): + """signed identifier. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. a unique id + :type id: str + :param access_policy: + :type access_policy: ~azure.storage.blob.models.AccessPolicy + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'Id', 'type': 'str', 'xml': {'name': 'Id'}}, + 'access_policy': {'key': 'AccessPolicy', 'type': 'AccessPolicy', 'xml': {'name': 'AccessPolicy'}}, + } + _xml_map = { + 'name': 'SignedIdentifier' + } + + def __init__(self, **kwargs): + super(SignedIdentifier, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.access_policy = kwargs.get('access_policy', None) + + +class SourceModifiedAccessConditions(Model): + """Additional parameters for a set of operations. + + :param source_if_modified_since: Specify this header value to operate only + on a blob if it has been modified since the specified date/time. + :type source_if_modified_since: datetime + :param source_if_unmodified_since: Specify this header value to operate + only on a blob if it has not been modified since the specified date/time. + :type source_if_unmodified_since: datetime + :param source_if_match: Specify an ETag value to operate only on blobs + with a matching value. + :type source_if_match: str + :param source_if_none_match: Specify an ETag value to operate only on + blobs without a matching value. + :type source_if_none_match: str + :param source_if_tags: Specify a SQL where clause on blob tags to operate + only on blobs with a matching value. + :type source_if_tags: str + """ + + _attribute_map = { + 'source_if_modified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'source_if_modified_since'}}, + 'source_if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'source_if_unmodified_since'}}, + 'source_if_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_match'}}, + 'source_if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_none_match'}}, + 'source_if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_tags'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(SourceModifiedAccessConditions, self).__init__(**kwargs) + self.source_if_modified_since = kwargs.get('source_if_modified_since', None) + self.source_if_unmodified_since = kwargs.get('source_if_unmodified_since', None) + self.source_if_match = kwargs.get('source_if_match', None) + self.source_if_none_match = kwargs.get('source_if_none_match', None) + self.source_if_tags = kwargs.get('source_if_tags', None) + + +class StaticWebsite(Model): + """The properties that enable an account to host a static website. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Indicates whether this account is hosting a + static website + :type enabled: bool + :param index_document: The default name of the index page under each + directory + :type index_document: str + :param error_document404_path: The absolute path of the custom 404 page + :type error_document404_path: str + :param default_index_document_path: Absolute path of the default index + page + :type default_index_document_path: str + """ + + _validation = { + 'enabled': {'required': True}, + } + + _attribute_map = { + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'index_document': {'key': 'IndexDocument', 'type': 'str', 'xml': {'name': 'IndexDocument'}}, + 'error_document404_path': {'key': 'ErrorDocument404Path', 'type': 'str', 'xml': {'name': 'ErrorDocument404Path'}}, + 'default_index_document_path': {'key': 'DefaultIndexDocumentPath', 'type': 'str', 'xml': {'name': 'DefaultIndexDocumentPath'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(StaticWebsite, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.index_document = kwargs.get('index_document', None) + self.error_document404_path = kwargs.get('error_document404_path', None) + self.default_index_document_path = kwargs.get('default_index_document_path', None) + + +class StorageError(Model): + """StorageError. + + :param message: + :type message: str + """ + + _attribute_map = { + 'message': {'key': 'Message', 'type': 'str', 'xml': {'name': 'Message'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(StorageError, self).__init__(**kwargs) + self.message = kwargs.get('message', None) + + +class StorageErrorException(HttpResponseError): + """Server responsed with exception of type: 'StorageError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, response, deserialize, *args): + + model_name = 'StorageError' + self.error = deserialize(model_name, response) + if self.error is None: + self.error = deserialize.dependencies[model_name]() + super(StorageErrorException, self).__init__(response=response) + + +class StorageServiceProperties(Model): + """Storage Service Properties. + + :param logging: + :type logging: ~azure.storage.blob.models.Logging + :param hour_metrics: + :type hour_metrics: ~azure.storage.blob.models.Metrics + :param minute_metrics: + :type minute_metrics: ~azure.storage.blob.models.Metrics + :param cors: The set of CORS rules. + :type cors: list[~azure.storage.blob.models.CorsRule] + :param default_service_version: The default version to use for requests to + the Blob service if an incoming request's version is not specified. + Possible values include version 2008-10-27 and all more recent versions + :type default_service_version: str + :param delete_retention_policy: + :type delete_retention_policy: ~azure.storage.blob.models.RetentionPolicy + :param static_website: + :type static_website: ~azure.storage.blob.models.StaticWebsite + """ + + _attribute_map = { + 'logging': {'key': 'Logging', 'type': 'Logging', 'xml': {'name': 'Logging'}}, + 'hour_metrics': {'key': 'HourMetrics', 'type': 'Metrics', 'xml': {'name': 'HourMetrics'}}, + 'minute_metrics': {'key': 'MinuteMetrics', 'type': 'Metrics', 'xml': {'name': 'MinuteMetrics'}}, + 'cors': {'key': 'Cors', 'type': '[CorsRule]', 'xml': {'name': 'Cors', 'itemsName': 'CorsRule', 'wrapped': True}}, + 'default_service_version': {'key': 'DefaultServiceVersion', 'type': 'str', 'xml': {'name': 'DefaultServiceVersion'}}, + 'delete_retention_policy': {'key': 'DeleteRetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'DeleteRetentionPolicy'}}, + 'static_website': {'key': 'StaticWebsite', 'type': 'StaticWebsite', 'xml': {'name': 'StaticWebsite'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(StorageServiceProperties, self).__init__(**kwargs) + self.logging = kwargs.get('logging', None) + self.hour_metrics = kwargs.get('hour_metrics', None) + self.minute_metrics = kwargs.get('minute_metrics', None) + self.cors = kwargs.get('cors', None) + self.default_service_version = kwargs.get('default_service_version', None) + self.delete_retention_policy = kwargs.get('delete_retention_policy', None) + self.static_website = kwargs.get('static_website', None) + + +class StorageServiceStats(Model): + """Stats for the storage service. + + :param geo_replication: + :type geo_replication: ~azure.storage.blob.models.GeoReplication + """ + + _attribute_map = { + 'geo_replication': {'key': 'GeoReplication', 'type': 'GeoReplication', 'xml': {'name': 'GeoReplication'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(StorageServiceStats, self).__init__(**kwargs) + self.geo_replication = kwargs.get('geo_replication', None) + + +class UserDelegationKey(Model): + """A user delegation key. + + All required parameters must be populated in order to send to Azure. + + :param signed_oid: Required. The Azure Active Directory object ID in GUID + format. + :type signed_oid: str + :param signed_tid: Required. The Azure Active Directory tenant ID in GUID + format + :type signed_tid: str + :param signed_start: Required. The date-time the key is active + :type signed_start: datetime + :param signed_expiry: Required. The date-time the key expires + :type signed_expiry: datetime + :param signed_service: Required. Abbreviation of the Azure Storage service + that accepts the key + :type signed_service: str + :param signed_version: Required. The service version that created the key + :type signed_version: str + :param value: Required. The key as a base64 string + :type value: str + """ + + _validation = { + 'signed_oid': {'required': True}, + 'signed_tid': {'required': True}, + 'signed_start': {'required': True}, + 'signed_expiry': {'required': True}, + 'signed_service': {'required': True}, + 'signed_version': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'signed_oid': {'key': 'SignedOid', 'type': 'str', 'xml': {'name': 'SignedOid'}}, + 'signed_tid': {'key': 'SignedTid', 'type': 'str', 'xml': {'name': 'SignedTid'}}, + 'signed_start': {'key': 'SignedStart', 'type': 'iso-8601', 'xml': {'name': 'SignedStart'}}, + 'signed_expiry': {'key': 'SignedExpiry', 'type': 'iso-8601', 'xml': {'name': 'SignedExpiry'}}, + 'signed_service': {'key': 'SignedService', 'type': 'str', 'xml': {'name': 'SignedService'}}, + 'signed_version': {'key': 'SignedVersion', 'type': 'str', 'xml': {'name': 'SignedVersion'}}, + 'value': {'key': 'Value', 'type': 'str', 'xml': {'name': 'Value'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(UserDelegationKey, self).__init__(**kwargs) + self.signed_oid = kwargs.get('signed_oid', None) + self.signed_tid = kwargs.get('signed_tid', None) + self.signed_start = kwargs.get('signed_start', None) + self.signed_expiry = kwargs.get('signed_expiry', None) + self.signed_service = kwargs.get('signed_service', None) + self.signed_version = kwargs.get('signed_version', None) + self.value = kwargs.get('value', None) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/_models_py3.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/_models_py3.py new file mode 100644 index 00000000000..36c3964fa74 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/models/_models_py3.py @@ -0,0 +1,1939 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from azure.core.exceptions import HttpResponseError + + +class AccessPolicy(Model): + """An Access policy. + + :param start: the date-time the policy is active + :type start: str + :param expiry: the date-time the policy expires + :type expiry: str + :param permission: the permissions for the acl policy + :type permission: str + """ + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'str', 'xml': {'name': 'Start'}}, + 'expiry': {'key': 'Expiry', 'type': 'str', 'xml': {'name': 'Expiry'}}, + 'permission': {'key': 'Permission', 'type': 'str', 'xml': {'name': 'Permission'}}, + } + _xml_map = { + } + + def __init__(self, *, start: str=None, expiry: str=None, permission: str=None, **kwargs) -> None: + super(AccessPolicy, self).__init__(**kwargs) + self.start = start + self.expiry = expiry + self.permission = permission + + +class AppendPositionAccessConditions(Model): + """Additional parameters for a set of operations, such as: + AppendBlob_append_block, AppendBlob_append_block_from_url, AppendBlob_seal. + + :param max_size: Optional conditional header. The max length in bytes + permitted for the append blob. If the Append Block operation would cause + the blob to exceed that limit or if the blob size is already greater than + the value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition + Failed). + :type max_size: long + :param append_position: Optional conditional header, used only for the + Append Block operation. A number indicating the byte offset to compare. + Append Block will succeed only if the append position is equal to this + number. If it is not, the request will fail with the + AppendPositionConditionNotMet error (HTTP status code 412 - Precondition + Failed). + :type append_position: long + """ + + _attribute_map = { + 'max_size': {'key': '', 'type': 'long', 'xml': {'name': 'max_size'}}, + 'append_position': {'key': '', 'type': 'long', 'xml': {'name': 'append_position'}}, + } + _xml_map = { + } + + def __init__(self, *, max_size: int=None, append_position: int=None, **kwargs) -> None: + super(AppendPositionAccessConditions, self).__init__(**kwargs) + self.max_size = max_size + self.append_position = append_position + + +class BlobFlatListSegment(Model): + """BlobFlatListSegment. + + All required parameters must be populated in order to send to Azure. + + :param blob_items: Required. + :type blob_items: list[~azure.storage.blob.models.BlobItemInternal] + """ + + _validation = { + 'blob_items': {'required': True}, + } + + _attribute_map = { + 'blob_items': {'key': 'BlobItems', 'type': '[BlobItemInternal]', 'xml': {'name': 'BlobItems', 'itemsName': 'Blob'}}, + } + _xml_map = { + 'name': 'Blobs' + } + + def __init__(self, *, blob_items, **kwargs) -> None: + super(BlobFlatListSegment, self).__init__(**kwargs) + self.blob_items = blob_items + + +class BlobHierarchyListSegment(Model): + """BlobHierarchyListSegment. + + All required parameters must be populated in order to send to Azure. + + :param blob_prefixes: + :type blob_prefixes: list[~azure.storage.blob.models.BlobPrefix] + :param blob_items: Required. + :type blob_items: list[~azure.storage.blob.models.BlobItemInternal] + """ + + _validation = { + 'blob_items': {'required': True}, + } + + _attribute_map = { + 'blob_prefixes': {'key': 'BlobPrefixes', 'type': '[BlobPrefix]', 'xml': {'name': 'BlobPrefix', 'itemsName': 'BlobPrefix'}}, + 'blob_items': {'key': 'BlobItems', 'type': '[BlobItemInternal]', 'xml': {'name': 'Blob', 'itemsName': 'Blob'}}, + } + _xml_map = { + 'name': 'Blobs' + } + + def __init__(self, *, blob_items, blob_prefixes=None, **kwargs) -> None: + super(BlobHierarchyListSegment, self).__init__(**kwargs) + self.blob_prefixes = blob_prefixes + self.blob_items = blob_items + + +class BlobHTTPHeaders(Model): + """Additional parameters for a set of operations. + + :param blob_cache_control: Optional. Sets the blob's cache control. If + specified, this property is stored with the blob and returned with a read + request. + :type blob_cache_control: str + :param blob_content_type: Optional. Sets the blob's content type. If + specified, this property is stored with the blob and returned with a read + request. + :type blob_content_type: str + :param blob_content_md5: Optional. An MD5 hash of the blob content. Note + that this hash is not validated, as the hashes for the individual blocks + were validated when each was uploaded. + :type blob_content_md5: bytearray + :param blob_content_encoding: Optional. Sets the blob's content encoding. + If specified, this property is stored with the blob and returned with a + read request. + :type blob_content_encoding: str + :param blob_content_language: Optional. Set the blob's content language. + If specified, this property is stored with the blob and returned with a + read request. + :type blob_content_language: str + :param blob_content_disposition: Optional. Sets the blob's + Content-Disposition header. + :type blob_content_disposition: str + """ + + _attribute_map = { + 'blob_cache_control': {'key': '', 'type': 'str', 'xml': {'name': 'blob_cache_control'}}, + 'blob_content_type': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_type'}}, + 'blob_content_md5': {'key': '', 'type': 'bytearray', 'xml': {'name': 'blob_content_md5'}}, + 'blob_content_encoding': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_encoding'}}, + 'blob_content_language': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_language'}}, + 'blob_content_disposition': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_disposition'}}, + } + _xml_map = { + } + + def __init__(self, *, blob_cache_control: str=None, blob_content_type: str=None, blob_content_md5: bytearray=None, blob_content_encoding: str=None, blob_content_language: str=None, blob_content_disposition: str=None, **kwargs) -> None: + super(BlobHTTPHeaders, self).__init__(**kwargs) + self.blob_cache_control = blob_cache_control + self.blob_content_type = blob_content_type + self.blob_content_md5 = blob_content_md5 + self.blob_content_encoding = blob_content_encoding + self.blob_content_language = blob_content_language + self.blob_content_disposition = blob_content_disposition + + +class BlobItemInternal(Model): + """An Azure Storage blob. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param deleted: Required. + :type deleted: bool + :param snapshot: Required. + :type snapshot: str + :param version_id: + :type version_id: str + :param is_current_version: + :type is_current_version: bool + :param properties: Required. + :type properties: ~azure.storage.blob.models.BlobPropertiesInternal + :param metadata: + :type metadata: ~azure.storage.blob.models.BlobMetadata + :param blob_tags: + :type blob_tags: ~azure.storage.blob.models.BlobTags + :param object_replication_metadata: + :type object_replication_metadata: dict[str, str] + """ + + _validation = { + 'name': {'required': True}, + 'deleted': {'required': True}, + 'snapshot': {'required': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'deleted': {'key': 'Deleted', 'type': 'bool', 'xml': {'name': 'Deleted'}}, + 'snapshot': {'key': 'Snapshot', 'type': 'str', 'xml': {'name': 'Snapshot'}}, + 'version_id': {'key': 'VersionId', 'type': 'str', 'xml': {'name': 'VersionId'}}, + 'is_current_version': {'key': 'IsCurrentVersion', 'type': 'bool', 'xml': {'name': 'IsCurrentVersion'}}, + 'properties': {'key': 'Properties', 'type': 'BlobPropertiesInternal', 'xml': {'name': 'Properties'}}, + 'metadata': {'key': 'Metadata', 'type': 'BlobMetadata', 'xml': {'name': 'Metadata'}}, + 'blob_tags': {'key': 'BlobTags', 'type': 'BlobTags', 'xml': {'name': 'BlobTags'}}, + 'object_replication_metadata': {'key': 'OrMetadata', 'type': '{str}', 'xml': {'name': 'OrMetadata'}}, + } + _xml_map = { + 'name': 'Blob' + } + + def __init__(self, *, name: str, deleted: bool, snapshot: str, properties, version_id: str=None, is_current_version: bool=None, metadata=None, blob_tags=None, object_replication_metadata=None, **kwargs) -> None: + super(BlobItemInternal, self).__init__(**kwargs) + self.name = name + self.deleted = deleted + self.snapshot = snapshot + self.version_id = version_id + self.is_current_version = is_current_version + self.properties = properties + self.metadata = metadata + self.blob_tags = blob_tags + self.object_replication_metadata = object_replication_metadata + + +class BlobMetadata(Model): + """BlobMetadata. + + :param additional_properties: Unmatched properties from the message are + deserialized this collection + :type additional_properties: dict[str, str] + :param encrypted: + :type encrypted: str + """ + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{str}', 'xml': {'name': 'additional_properties'}}, + 'encrypted': {'key': 'Encrypted', 'type': 'str', 'xml': {'name': 'Encrypted', 'attr': True}}, + } + _xml_map = { + 'name': 'Metadata' + } + + def __init__(self, *, additional_properties=None, encrypted: str=None, **kwargs) -> None: + super(BlobMetadata, self).__init__(**kwargs) + self.additional_properties = additional_properties + self.encrypted = encrypted + + +class BlobPrefix(Model): + """BlobPrefix. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + } + _xml_map = { + } + + def __init__(self, *, name: str, **kwargs) -> None: + super(BlobPrefix, self).__init__(**kwargs) + self.name = name + + +class BlobPropertiesInternal(Model): + """Properties of a blob. + + All required parameters must be populated in order to send to Azure. + + :param creation_time: + :type creation_time: datetime + :param last_modified: Required. + :type last_modified: datetime + :param etag: Required. + :type etag: str + :param content_length: Size in bytes + :type content_length: long + :param content_type: + :type content_type: str + :param content_encoding: + :type content_encoding: str + :param content_language: + :type content_language: str + :param content_md5: + :type content_md5: bytearray + :param content_disposition: + :type content_disposition: str + :param cache_control: + :type cache_control: str + :param blob_sequence_number: + :type blob_sequence_number: long + :param blob_type: Possible values include: 'BlockBlob', 'PageBlob', + 'AppendBlob' + :type blob_type: str or ~azure.storage.blob.models.BlobType + :param lease_status: Possible values include: 'locked', 'unlocked' + :type lease_status: str or ~azure.storage.blob.models.LeaseStatusType + :param lease_state: Possible values include: 'available', 'leased', + 'expired', 'breaking', 'broken' + :type lease_state: str or ~azure.storage.blob.models.LeaseStateType + :param lease_duration: Possible values include: 'infinite', 'fixed' + :type lease_duration: str or ~azure.storage.blob.models.LeaseDurationType + :param copy_id: + :type copy_id: str + :param copy_status: Possible values include: 'pending', 'success', + 'aborted', 'failed' + :type copy_status: str or ~azure.storage.blob.models.CopyStatusType + :param copy_source: + :type copy_source: str + :param copy_progress: + :type copy_progress: str + :param copy_completion_time: + :type copy_completion_time: datetime + :param copy_status_description: + :type copy_status_description: str + :param server_encrypted: + :type server_encrypted: bool + :param incremental_copy: + :type incremental_copy: bool + :param destination_snapshot: + :type destination_snapshot: str + :param deleted_time: + :type deleted_time: datetime + :param remaining_retention_days: + :type remaining_retention_days: int + :param access_tier: Possible values include: 'P4', 'P6', 'P10', 'P15', + 'P20', 'P30', 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type access_tier: str or ~azure.storage.blob.models.AccessTier + :param access_tier_inferred: + :type access_tier_inferred: bool + :param archive_status: Possible values include: + 'rehydrate-pending-to-hot', 'rehydrate-pending-to-cool' + :type archive_status: str or ~azure.storage.blob.models.ArchiveStatus + :param customer_provided_key_sha256: + :type customer_provided_key_sha256: str + :param encryption_scope: The name of the encryption scope under which the + blob is encrypted. + :type encryption_scope: str + :param access_tier_change_time: + :type access_tier_change_time: datetime + :param tag_count: + :type tag_count: int + :param expires_on: + :type expires_on: datetime + :param is_sealed: + :type is_sealed: bool + :param rehydrate_priority: Possible values include: 'High', 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + """ + + _validation = { + 'last_modified': {'required': True}, + 'etag': {'required': True}, + } + + _attribute_map = { + 'creation_time': {'key': 'Creation-Time', 'type': 'rfc-1123', 'xml': {'name': 'Creation-Time'}}, + 'last_modified': {'key': 'Last-Modified', 'type': 'rfc-1123', 'xml': {'name': 'Last-Modified'}}, + 'etag': {'key': 'Etag', 'type': 'str', 'xml': {'name': 'Etag'}}, + 'content_length': {'key': 'Content-Length', 'type': 'long', 'xml': {'name': 'Content-Length'}}, + 'content_type': {'key': 'Content-Type', 'type': 'str', 'xml': {'name': 'Content-Type'}}, + 'content_encoding': {'key': 'Content-Encoding', 'type': 'str', 'xml': {'name': 'Content-Encoding'}}, + 'content_language': {'key': 'Content-Language', 'type': 'str', 'xml': {'name': 'Content-Language'}}, + 'content_md5': {'key': 'Content-MD5', 'type': 'bytearray', 'xml': {'name': 'Content-MD5'}}, + 'content_disposition': {'key': 'Content-Disposition', 'type': 'str', 'xml': {'name': 'Content-Disposition'}}, + 'cache_control': {'key': 'Cache-Control', 'type': 'str', 'xml': {'name': 'Cache-Control'}}, + 'blob_sequence_number': {'key': 'x-ms-blob-sequence-number', 'type': 'long', 'xml': {'name': 'x-ms-blob-sequence-number'}}, + 'blob_type': {'key': 'BlobType', 'type': 'BlobType', 'xml': {'name': 'BlobType'}}, + 'lease_status': {'key': 'LeaseStatus', 'type': 'LeaseStatusType', 'xml': {'name': 'LeaseStatus'}}, + 'lease_state': {'key': 'LeaseState', 'type': 'LeaseStateType', 'xml': {'name': 'LeaseState'}}, + 'lease_duration': {'key': 'LeaseDuration', 'type': 'LeaseDurationType', 'xml': {'name': 'LeaseDuration'}}, + 'copy_id': {'key': 'CopyId', 'type': 'str', 'xml': {'name': 'CopyId'}}, + 'copy_status': {'key': 'CopyStatus', 'type': 'CopyStatusType', 'xml': {'name': 'CopyStatus'}}, + 'copy_source': {'key': 'CopySource', 'type': 'str', 'xml': {'name': 'CopySource'}}, + 'copy_progress': {'key': 'CopyProgress', 'type': 'str', 'xml': {'name': 'CopyProgress'}}, + 'copy_completion_time': {'key': 'CopyCompletionTime', 'type': 'rfc-1123', 'xml': {'name': 'CopyCompletionTime'}}, + 'copy_status_description': {'key': 'CopyStatusDescription', 'type': 'str', 'xml': {'name': 'CopyStatusDescription'}}, + 'server_encrypted': {'key': 'ServerEncrypted', 'type': 'bool', 'xml': {'name': 'ServerEncrypted'}}, + 'incremental_copy': {'key': 'IncrementalCopy', 'type': 'bool', 'xml': {'name': 'IncrementalCopy'}}, + 'destination_snapshot': {'key': 'DestinationSnapshot', 'type': 'str', 'xml': {'name': 'DestinationSnapshot'}}, + 'deleted_time': {'key': 'DeletedTime', 'type': 'rfc-1123', 'xml': {'name': 'DeletedTime'}}, + 'remaining_retention_days': {'key': 'RemainingRetentionDays', 'type': 'int', 'xml': {'name': 'RemainingRetentionDays'}}, + 'access_tier': {'key': 'AccessTier', 'type': 'str', 'xml': {'name': 'AccessTier'}}, + 'access_tier_inferred': {'key': 'AccessTierInferred', 'type': 'bool', 'xml': {'name': 'AccessTierInferred'}}, + 'archive_status': {'key': 'ArchiveStatus', 'type': 'str', 'xml': {'name': 'ArchiveStatus'}}, + 'customer_provided_key_sha256': {'key': 'CustomerProvidedKeySha256', 'type': 'str', 'xml': {'name': 'CustomerProvidedKeySha256'}}, + 'encryption_scope': {'key': 'EncryptionScope', 'type': 'str', 'xml': {'name': 'EncryptionScope'}}, + 'access_tier_change_time': {'key': 'AccessTierChangeTime', 'type': 'rfc-1123', 'xml': {'name': 'AccessTierChangeTime'}}, + 'tag_count': {'key': 'TagCount', 'type': 'int', 'xml': {'name': 'TagCount'}}, + 'expires_on': {'key': 'Expiry-Time', 'type': 'rfc-1123', 'xml': {'name': 'Expiry-Time'}}, + 'is_sealed': {'key': 'Sealed', 'type': 'bool', 'xml': {'name': 'Sealed'}}, + 'rehydrate_priority': {'key': 'RehydratePriority', 'type': 'str', 'xml': {'name': 'RehydratePriority'}}, + } + _xml_map = { + 'name': 'Properties' + } + + def __init__(self, *, last_modified, etag: str, creation_time=None, content_length: int=None, content_type: str=None, content_encoding: str=None, content_language: str=None, content_md5: bytearray=None, content_disposition: str=None, cache_control: str=None, blob_sequence_number: int=None, blob_type=None, lease_status=None, lease_state=None, lease_duration=None, copy_id: str=None, copy_status=None, copy_source: str=None, copy_progress: str=None, copy_completion_time=None, copy_status_description: str=None, server_encrypted: bool=None, incremental_copy: bool=None, destination_snapshot: str=None, deleted_time=None, remaining_retention_days: int=None, access_tier=None, access_tier_inferred: bool=None, archive_status=None, customer_provided_key_sha256: str=None, encryption_scope: str=None, access_tier_change_time=None, tag_count: int=None, expires_on=None, is_sealed: bool=None, rehydrate_priority=None, **kwargs) -> None: + super(BlobPropertiesInternal, self).__init__(**kwargs) + self.creation_time = creation_time + self.last_modified = last_modified + self.etag = etag + self.content_length = content_length + self.content_type = content_type + self.content_encoding = content_encoding + self.content_language = content_language + self.content_md5 = content_md5 + self.content_disposition = content_disposition + self.cache_control = cache_control + self.blob_sequence_number = blob_sequence_number + self.blob_type = blob_type + self.lease_status = lease_status + self.lease_state = lease_state + self.lease_duration = lease_duration + self.copy_id = copy_id + self.copy_status = copy_status + self.copy_source = copy_source + self.copy_progress = copy_progress + self.copy_completion_time = copy_completion_time + self.copy_status_description = copy_status_description + self.server_encrypted = server_encrypted + self.incremental_copy = incremental_copy + self.destination_snapshot = destination_snapshot + self.deleted_time = deleted_time + self.remaining_retention_days = remaining_retention_days + self.access_tier = access_tier + self.access_tier_inferred = access_tier_inferred + self.archive_status = archive_status + self.customer_provided_key_sha256 = customer_provided_key_sha256 + self.encryption_scope = encryption_scope + self.access_tier_change_time = access_tier_change_time + self.tag_count = tag_count + self.expires_on = expires_on + self.is_sealed = is_sealed + self.rehydrate_priority = rehydrate_priority + + +class BlobTag(Model): + """BlobTag. + + All required parameters must be populated in order to send to Azure. + + :param key: Required. + :type key: str + :param value: Required. + :type value: str + """ + + _validation = { + 'key': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'key': {'key': 'Key', 'type': 'str', 'xml': {'name': 'Key'}}, + 'value': {'key': 'Value', 'type': 'str', 'xml': {'name': 'Value'}}, + } + _xml_map = { + 'name': 'Tag' + } + + def __init__(self, *, key: str, value: str, **kwargs) -> None: + super(BlobTag, self).__init__(**kwargs) + self.key = key + self.value = value + + +class BlobTags(Model): + """Blob tags. + + All required parameters must be populated in order to send to Azure. + + :param blob_tag_set: Required. + :type blob_tag_set: list[~azure.storage.blob.models.BlobTag] + """ + + _validation = { + 'blob_tag_set': {'required': True}, + } + + _attribute_map = { + 'blob_tag_set': {'key': 'BlobTagSet', 'type': '[BlobTag]', 'xml': {'name': 'TagSet', 'itemsName': 'TagSet', 'wrapped': True}}, + } + _xml_map = { + 'name': 'Tags' + } + + def __init__(self, *, blob_tag_set, **kwargs) -> None: + super(BlobTags, self).__init__(**kwargs) + self.blob_tag_set = blob_tag_set + + +class Block(Model): + """Represents a single block in a block blob. It describes the block's ID and + size. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The base64 encoded block ID. + :type name: str + :param size: Required. The block size in bytes. + :type size: int + """ + + _validation = { + 'name': {'required': True}, + 'size': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'size': {'key': 'Size', 'type': 'int', 'xml': {'name': 'Size'}}, + } + _xml_map = { + } + + def __init__(self, *, name: str, size: int, **kwargs) -> None: + super(Block, self).__init__(**kwargs) + self.name = name + self.size = size + + +class BlockList(Model): + """BlockList. + + :param committed_blocks: + :type committed_blocks: list[~azure.storage.blob.models.Block] + :param uncommitted_blocks: + :type uncommitted_blocks: list[~azure.storage.blob.models.Block] + """ + + _attribute_map = { + 'committed_blocks': {'key': 'CommittedBlocks', 'type': '[Block]', 'xml': {'name': 'CommittedBlocks', 'itemsName': 'Block', 'wrapped': True}}, + 'uncommitted_blocks': {'key': 'UncommittedBlocks', 'type': '[Block]', 'xml': {'name': 'UncommittedBlocks', 'itemsName': 'Block', 'wrapped': True}}, + } + _xml_map = { + } + + def __init__(self, *, committed_blocks=None, uncommitted_blocks=None, **kwargs) -> None: + super(BlockList, self).__init__(**kwargs) + self.committed_blocks = committed_blocks + self.uncommitted_blocks = uncommitted_blocks + + +class BlockLookupList(Model): + """BlockLookupList. + + :param committed: + :type committed: list[str] + :param uncommitted: + :type uncommitted: list[str] + :param latest: + :type latest: list[str] + """ + + _attribute_map = { + 'committed': {'key': 'Committed', 'type': '[str]', 'xml': {'name': 'Committed', 'itemsName': 'Committed'}}, + 'uncommitted': {'key': 'Uncommitted', 'type': '[str]', 'xml': {'name': 'Uncommitted', 'itemsName': 'Uncommitted'}}, + 'latest': {'key': 'Latest', 'type': '[str]', 'xml': {'name': 'Latest', 'itemsName': 'Latest'}}, + } + _xml_map = { + 'name': 'BlockList' + } + + def __init__(self, *, committed=None, uncommitted=None, latest=None, **kwargs) -> None: + super(BlockLookupList, self).__init__(**kwargs) + self.committed = committed + self.uncommitted = uncommitted + self.latest = latest + + +class ClearRange(Model): + """ClearRange. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. + :type start: long + :param end: Required. + :type end: long + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'long', 'xml': {'name': 'Start'}}, + 'end': {'key': 'End', 'type': 'long', 'xml': {'name': 'End'}}, + } + _xml_map = { + 'name': 'ClearRange' + } + + def __init__(self, *, start: int, end: int, **kwargs) -> None: + super(ClearRange, self).__init__(**kwargs) + self.start = start + self.end = end + + +class ContainerCpkScopeInfo(Model): + """Additional parameters for create operation. + + :param default_encryption_scope: Optional. Version 2019-07-07 and later. + Specifies the default encryption scope to set on the container and use for + all future writes. + :type default_encryption_scope: str + :param prevent_encryption_scope_override: Optional. Version 2019-07-07 + and newer. If true, prevents any request from specifying a different + encryption scope than the scope set on the container. + :type prevent_encryption_scope_override: bool + """ + + _attribute_map = { + 'default_encryption_scope': {'key': '', 'type': 'str', 'xml': {'name': 'default_encryption_scope'}}, + 'prevent_encryption_scope_override': {'key': '', 'type': 'bool', 'xml': {'name': 'prevent_encryption_scope_override'}}, + } + _xml_map = { + } + + def __init__(self, *, default_encryption_scope: str=None, prevent_encryption_scope_override: bool=None, **kwargs) -> None: + super(ContainerCpkScopeInfo, self).__init__(**kwargs) + self.default_encryption_scope = default_encryption_scope + self.prevent_encryption_scope_override = prevent_encryption_scope_override + + +class ContainerItem(Model): + """An Azure Storage container. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param deleted: + :type deleted: bool + :param version: + :type version: str + :param properties: Required. + :type properties: ~azure.storage.blob.models.ContainerProperties + :param metadata: + :type metadata: dict[str, str] + """ + + _validation = { + 'name': {'required': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'deleted': {'key': 'Deleted', 'type': 'bool', 'xml': {'name': 'Deleted'}}, + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'properties': {'key': 'Properties', 'type': 'ContainerProperties', 'xml': {'name': 'Properties'}}, + 'metadata': {'key': 'Metadata', 'type': '{str}', 'xml': {'name': 'Metadata'}}, + } + _xml_map = { + 'name': 'Container' + } + + def __init__(self, *, name: str, properties, deleted: bool=None, version: str=None, metadata=None, **kwargs) -> None: + super(ContainerItem, self).__init__(**kwargs) + self.name = name + self.deleted = deleted + self.version = version + self.properties = properties + self.metadata = metadata + + +class ContainerProperties(Model): + """Properties of a container. + + All required parameters must be populated in order to send to Azure. + + :param last_modified: Required. + :type last_modified: datetime + :param etag: Required. + :type etag: str + :param lease_status: Possible values include: 'locked', 'unlocked' + :type lease_status: str or ~azure.storage.blob.models.LeaseStatusType + :param lease_state: Possible values include: 'available', 'leased', + 'expired', 'breaking', 'broken' + :type lease_state: str or ~azure.storage.blob.models.LeaseStateType + :param lease_duration: Possible values include: 'infinite', 'fixed' + :type lease_duration: str or ~azure.storage.blob.models.LeaseDurationType + :param public_access: Possible values include: 'container', 'blob' + :type public_access: str or ~azure.storage.blob.models.PublicAccessType + :param has_immutability_policy: + :type has_immutability_policy: bool + :param has_legal_hold: + :type has_legal_hold: bool + :param default_encryption_scope: + :type default_encryption_scope: str + :param prevent_encryption_scope_override: + :type prevent_encryption_scope_override: bool + :param deleted_time: + :type deleted_time: datetime + :param remaining_retention_days: + :type remaining_retention_days: int + """ + + _validation = { + 'last_modified': {'required': True}, + 'etag': {'required': True}, + } + + _attribute_map = { + 'last_modified': {'key': 'Last-Modified', 'type': 'rfc-1123', 'xml': {'name': 'Last-Modified'}}, + 'etag': {'key': 'Etag', 'type': 'str', 'xml': {'name': 'Etag'}}, + 'lease_status': {'key': 'LeaseStatus', 'type': 'LeaseStatusType', 'xml': {'name': 'LeaseStatus'}}, + 'lease_state': {'key': 'LeaseState', 'type': 'LeaseStateType', 'xml': {'name': 'LeaseState'}}, + 'lease_duration': {'key': 'LeaseDuration', 'type': 'LeaseDurationType', 'xml': {'name': 'LeaseDuration'}}, + 'public_access': {'key': 'PublicAccess', 'type': 'str', 'xml': {'name': 'PublicAccess'}}, + 'has_immutability_policy': {'key': 'HasImmutabilityPolicy', 'type': 'bool', 'xml': {'name': 'HasImmutabilityPolicy'}}, + 'has_legal_hold': {'key': 'HasLegalHold', 'type': 'bool', 'xml': {'name': 'HasLegalHold'}}, + 'default_encryption_scope': {'key': 'DefaultEncryptionScope', 'type': 'str', 'xml': {'name': 'DefaultEncryptionScope'}}, + 'prevent_encryption_scope_override': {'key': 'DenyEncryptionScopeOverride', 'type': 'bool', 'xml': {'name': 'DenyEncryptionScopeOverride'}}, + 'deleted_time': {'key': 'DeletedTime', 'type': 'rfc-1123', 'xml': {'name': 'DeletedTime'}}, + 'remaining_retention_days': {'key': 'RemainingRetentionDays', 'type': 'int', 'xml': {'name': 'RemainingRetentionDays'}}, + } + _xml_map = { + } + + def __init__(self, *, last_modified, etag: str, lease_status=None, lease_state=None, lease_duration=None, public_access=None, has_immutability_policy: bool=None, has_legal_hold: bool=None, default_encryption_scope: str=None, prevent_encryption_scope_override: bool=None, deleted_time=None, remaining_retention_days: int=None, **kwargs) -> None: + super(ContainerProperties, self).__init__(**kwargs) + self.last_modified = last_modified + self.etag = etag + self.lease_status = lease_status + self.lease_state = lease_state + self.lease_duration = lease_duration + self.public_access = public_access + self.has_immutability_policy = has_immutability_policy + self.has_legal_hold = has_legal_hold + self.default_encryption_scope = default_encryption_scope + self.prevent_encryption_scope_override = prevent_encryption_scope_override + self.deleted_time = deleted_time + self.remaining_retention_days = remaining_retention_days + + +class CorsRule(Model): + """CORS is an HTTP feature that enables a web application running under one + domain to access resources in another domain. Web browsers implement a + security restriction known as same-origin policy that prevents a web page + from calling APIs in a different domain; CORS provides a secure way to + allow one domain (the origin domain) to call APIs in another domain. + + All required parameters must be populated in order to send to Azure. + + :param allowed_origins: Required. The origin domains that are permitted to + make a request against the storage service via CORS. The origin domain is + the domain from which the request originates. Note that the origin must be + an exact case-sensitive match with the origin that the user age sends to + the service. You can also use the wildcard character '*' to allow all + origin domains to make requests via CORS. + :type allowed_origins: str + :param allowed_methods: Required. The methods (HTTP request verbs) that + the origin domain may use for a CORS request. (comma separated) + :type allowed_methods: str + :param allowed_headers: Required. the request headers that the origin + domain may specify on the CORS request. + :type allowed_headers: str + :param exposed_headers: Required. The response headers that may be sent in + the response to the CORS request and exposed by the browser to the request + issuer + :type exposed_headers: str + :param max_age_in_seconds: Required. The maximum amount time that a + browser should cache the preflight OPTIONS request. + :type max_age_in_seconds: int + """ + + _validation = { + 'allowed_origins': {'required': True}, + 'allowed_methods': {'required': True}, + 'allowed_headers': {'required': True}, + 'exposed_headers': {'required': True}, + 'max_age_in_seconds': {'required': True, 'minimum': 0}, + } + + _attribute_map = { + 'allowed_origins': {'key': 'AllowedOrigins', 'type': 'str', 'xml': {'name': 'AllowedOrigins'}}, + 'allowed_methods': {'key': 'AllowedMethods', 'type': 'str', 'xml': {'name': 'AllowedMethods'}}, + 'allowed_headers': {'key': 'AllowedHeaders', 'type': 'str', 'xml': {'name': 'AllowedHeaders'}}, + 'exposed_headers': {'key': 'ExposedHeaders', 'type': 'str', 'xml': {'name': 'ExposedHeaders'}}, + 'max_age_in_seconds': {'key': 'MaxAgeInSeconds', 'type': 'int', 'xml': {'name': 'MaxAgeInSeconds'}}, + } + _xml_map = { + } + + def __init__(self, *, allowed_origins: str, allowed_methods: str, allowed_headers: str, exposed_headers: str, max_age_in_seconds: int, **kwargs) -> None: + super(CorsRule, self).__init__(**kwargs) + self.allowed_origins = allowed_origins + self.allowed_methods = allowed_methods + self.allowed_headers = allowed_headers + self.exposed_headers = exposed_headers + self.max_age_in_seconds = max_age_in_seconds + + +class CpkInfo(Model): + """Additional parameters for a set of operations. + + :param encryption_key: Optional. Specifies the encryption key to use to + encrypt the data provided in the request. If not specified, encryption is + performed with the root account encryption key. For more information, see + Encryption at Rest for Azure Storage Services. + :type encryption_key: str + :param encryption_key_sha256: The SHA-256 hash of the provided encryption + key. Must be provided if the x-ms-encryption-key header is provided. + :type encryption_key_sha256: str + :param encryption_algorithm: The algorithm used to produce the encryption + key hash. Currently, the only accepted value is "AES256". Must be provided + if the x-ms-encryption-key header is provided. Possible values include: + 'AES256' + :type encryption_algorithm: str or + ~azure.storage.blob.models.EncryptionAlgorithmType + """ + + _attribute_map = { + 'encryption_key': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_key'}}, + 'encryption_key_sha256': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_key_sha256'}}, + 'encryption_algorithm': {'key': '', 'type': 'EncryptionAlgorithmType', 'xml': {'name': 'encryption_algorithm'}}, + } + _xml_map = { + } + + def __init__(self, *, encryption_key: str=None, encryption_key_sha256: str=None, encryption_algorithm=None, **kwargs) -> None: + super(CpkInfo, self).__init__(**kwargs) + self.encryption_key = encryption_key + self.encryption_key_sha256 = encryption_key_sha256 + self.encryption_algorithm = encryption_algorithm + + +class CpkScopeInfo(Model): + """Additional parameters for a set of operations. + + :param encryption_scope: Optional. Version 2019-07-07 and later. + Specifies the name of the encryption scope to use to encrypt the data + provided in the request. If not specified, encryption is performed with + the default account encryption scope. For more information, see + Encryption at Rest for Azure Storage Services. + :type encryption_scope: str + """ + + _attribute_map = { + 'encryption_scope': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_scope'}}, + } + _xml_map = { + } + + def __init__(self, *, encryption_scope: str=None, **kwargs) -> None: + super(CpkScopeInfo, self).__init__(**kwargs) + self.encryption_scope = encryption_scope + + +class DataLakeStorageError(Model): + """DataLakeStorageError. + + :param data_lake_storage_error_details: The service error response object. + :type data_lake_storage_error_details: + ~azure.storage.blob.models.DataLakeStorageErrorError + """ + + _attribute_map = { + 'data_lake_storage_error_details': {'key': 'error', 'type': 'DataLakeStorageErrorError', 'xml': {'name': 'error'}}, + } + _xml_map = { + } + + def __init__(self, *, data_lake_storage_error_details=None, **kwargs) -> None: + super(DataLakeStorageError, self).__init__(**kwargs) + self.data_lake_storage_error_details = data_lake_storage_error_details + + +class DataLakeStorageErrorException(HttpResponseError): + """Server responsed with exception of type: 'DataLakeStorageError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, response, deserialize, *args): + + model_name = 'DataLakeStorageError' + self.error = deserialize(model_name, response) + if self.error is None: + self.error = deserialize.dependencies[model_name]() + super(DataLakeStorageErrorException, self).__init__(response=response) + + +class DataLakeStorageErrorError(Model): + """The service error response object. + + :param code: The service error code. + :type code: str + :param message: The service error message. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'Code', 'type': 'str', 'xml': {'name': 'Code'}}, + 'message': {'key': 'Message', 'type': 'str', 'xml': {'name': 'Message'}}, + } + _xml_map = { + } + + def __init__(self, *, code: str=None, message: str=None, **kwargs) -> None: + super(DataLakeStorageErrorError, self).__init__(**kwargs) + self.code = code + self.message = message + + +class DelimitedTextConfiguration(Model): + """delimited text configuration. + + All required parameters must be populated in order to send to Azure. + + :param column_separator: Required. column separator + :type column_separator: str + :param field_quote: Required. field quote + :type field_quote: str + :param record_separator: Required. record separator + :type record_separator: str + :param escape_char: Required. escape char + :type escape_char: str + :param headers_present: Required. has headers + :type headers_present: bool + """ + + _validation = { + 'column_separator': {'required': True}, + 'field_quote': {'required': True}, + 'record_separator': {'required': True}, + 'escape_char': {'required': True}, + 'headers_present': {'required': True}, + } + + _attribute_map = { + 'column_separator': {'key': 'ColumnSeparator', 'type': 'str', 'xml': {'name': 'ColumnSeparator'}}, + 'field_quote': {'key': 'FieldQuote', 'type': 'str', 'xml': {'name': 'FieldQuote'}}, + 'record_separator': {'key': 'RecordSeparator', 'type': 'str', 'xml': {'name': 'RecordSeparator'}}, + 'escape_char': {'key': 'EscapeChar', 'type': 'str', 'xml': {'name': 'EscapeChar'}}, + 'headers_present': {'key': 'HeadersPresent', 'type': 'bool', 'xml': {'name': 'HasHeaders'}}, + } + _xml_map = { + 'name': 'DelimitedTextConfiguration' + } + + def __init__(self, *, column_separator: str, field_quote: str, record_separator: str, escape_char: str, headers_present: bool, **kwargs) -> None: + super(DelimitedTextConfiguration, self).__init__(**kwargs) + self.column_separator = column_separator + self.field_quote = field_quote + self.record_separator = record_separator + self.escape_char = escape_char + self.headers_present = headers_present + + +class DirectoryHttpHeaders(Model): + """Additional parameters for a set of operations, such as: Directory_create, + Directory_rename, Blob_rename. + + :param cache_control: Cache control for given resource + :type cache_control: str + :param content_type: Content type for given resource + :type content_type: str + :param content_encoding: Content encoding for given resource + :type content_encoding: str + :param content_language: Content language for given resource + :type content_language: str + :param content_disposition: Content disposition for given resource + :type content_disposition: str + """ + + _attribute_map = { + 'cache_control': {'key': '', 'type': 'str', 'xml': {'name': 'cache_control'}}, + 'content_type': {'key': '', 'type': 'str', 'xml': {'name': 'content_type'}}, + 'content_encoding': {'key': '', 'type': 'str', 'xml': {'name': 'content_encoding'}}, + 'content_language': {'key': '', 'type': 'str', 'xml': {'name': 'content_language'}}, + 'content_disposition': {'key': '', 'type': 'str', 'xml': {'name': 'content_disposition'}}, + } + _xml_map = { + } + + def __init__(self, *, cache_control: str=None, content_type: str=None, content_encoding: str=None, content_language: str=None, content_disposition: str=None, **kwargs) -> None: + super(DirectoryHttpHeaders, self).__init__(**kwargs) + self.cache_control = cache_control + self.content_type = content_type + self.content_encoding = content_encoding + self.content_language = content_language + self.content_disposition = content_disposition + + +class FilterBlobItem(Model): + """Blob info from a Filter Blobs API call. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param container_name: Required. + :type container_name: str + :param tag_value: Required. + :type tag_value: str + """ + + _validation = { + 'name': {'required': True}, + 'container_name': {'required': True}, + 'tag_value': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName'}}, + 'tag_value': {'key': 'TagValue', 'type': 'str', 'xml': {'name': 'TagValue'}}, + } + _xml_map = { + 'name': 'Blob' + } + + def __init__(self, *, name: str, container_name: str, tag_value: str, **kwargs) -> None: + super(FilterBlobItem, self).__init__(**kwargs) + self.name = name + self.container_name = container_name + self.tag_value = tag_value + + +class FilterBlobSegment(Model): + """The result of a Filter Blobs API call. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param where: Required. + :type where: str + :param blobs: Required. + :type blobs: list[~azure.storage.blob.models.FilterBlobItem] + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'where': {'required': True}, + 'blobs': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'where': {'key': 'Where', 'type': 'str', 'xml': {'name': 'Where'}}, + 'blobs': {'key': 'Blobs', 'type': '[FilterBlobItem]', 'xml': {'name': 'Blobs', 'itemsName': 'Blobs', 'wrapped': True}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, *, service_endpoint: str, where: str, blobs, next_marker: str=None, **kwargs) -> None: + super(FilterBlobSegment, self).__init__(**kwargs) + self.service_endpoint = service_endpoint + self.where = where + self.blobs = blobs + self.next_marker = next_marker + + +class GeoReplication(Model): + """Geo-Replication information for the Secondary Storage Service. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The status of the secondary location. Possible + values include: 'live', 'bootstrap', 'unavailable' + :type status: str or ~azure.storage.blob.models.GeoReplicationStatusType + :param last_sync_time: Required. A GMT date/time value, to the second. All + primary writes preceding this value are guaranteed to be available for + read operations at the secondary. Primary writes after this point in time + may or may not be available for reads. + :type last_sync_time: datetime + """ + + _validation = { + 'status': {'required': True}, + 'last_sync_time': {'required': True}, + } + + _attribute_map = { + 'status': {'key': 'Status', 'type': 'str', 'xml': {'name': 'Status'}}, + 'last_sync_time': {'key': 'LastSyncTime', 'type': 'rfc-1123', 'xml': {'name': 'LastSyncTime'}}, + } + _xml_map = { + } + + def __init__(self, *, status, last_sync_time, **kwargs) -> None: + super(GeoReplication, self).__init__(**kwargs) + self.status = status + self.last_sync_time = last_sync_time + + +class JsonTextConfiguration(Model): + """json text configuration. + + All required parameters must be populated in order to send to Azure. + + :param record_separator: Required. record separator + :type record_separator: str + """ + + _validation = { + 'record_separator': {'required': True}, + } + + _attribute_map = { + 'record_separator': {'key': 'RecordSeparator', 'type': 'str', 'xml': {'name': 'RecordSeparator'}}, + } + _xml_map = { + 'name': 'JsonTextConfiguration' + } + + def __init__(self, *, record_separator: str, **kwargs) -> None: + super(JsonTextConfiguration, self).__init__(**kwargs) + self.record_separator = record_separator + + +class KeyInfo(Model): + """Key information. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The date-time the key is active in ISO 8601 UTC + time + :type start: str + :param expiry: Required. The date-time the key expires in ISO 8601 UTC + time + :type expiry: str + """ + + _validation = { + 'start': {'required': True}, + 'expiry': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'str', 'xml': {'name': 'Start'}}, + 'expiry': {'key': 'Expiry', 'type': 'str', 'xml': {'name': 'Expiry'}}, + } + _xml_map = { + } + + def __init__(self, *, start: str, expiry: str, **kwargs) -> None: + super(KeyInfo, self).__init__(**kwargs) + self.start = start + self.expiry = expiry + + +class LeaseAccessConditions(Model): + """Additional parameters for a set of operations. + + :param lease_id: If specified, the operation only succeeds if the + resource's lease is active and matches this ID. + :type lease_id: str + """ + + _attribute_map = { + 'lease_id': {'key': '', 'type': 'str', 'xml': {'name': 'lease_id'}}, + } + _xml_map = { + } + + def __init__(self, *, lease_id: str=None, **kwargs) -> None: + super(LeaseAccessConditions, self).__init__(**kwargs) + self.lease_id = lease_id + + +class ListBlobsFlatSegmentResponse(Model): + """An enumeration of blobs. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param container_name: Required. + :type container_name: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param segment: Required. + :type segment: ~azure.storage.blob.models.BlobFlatListSegment + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_name': {'required': True}, + 'segment': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'segment': {'key': 'Segment', 'type': 'BlobFlatListSegment', 'xml': {'name': 'Segment'}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, *, service_endpoint: str, container_name: str, segment, prefix: str=None, marker: str=None, max_results: int=None, next_marker: str=None, **kwargs) -> None: + super(ListBlobsFlatSegmentResponse, self).__init__(**kwargs) + self.service_endpoint = service_endpoint + self.container_name = container_name + self.prefix = prefix + self.marker = marker + self.max_results = max_results + self.segment = segment + self.next_marker = next_marker + + +class ListBlobsHierarchySegmentResponse(Model): + """An enumeration of blobs. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param container_name: Required. + :type container_name: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param delimiter: + :type delimiter: str + :param segment: Required. + :type segment: ~azure.storage.blob.models.BlobHierarchyListSegment + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_name': {'required': True}, + 'segment': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'delimiter': {'key': 'Delimiter', 'type': 'str', 'xml': {'name': 'Delimiter'}}, + 'segment': {'key': 'Segment', 'type': 'BlobHierarchyListSegment', 'xml': {'name': 'Segment'}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, *, service_endpoint: str, container_name: str, segment, prefix: str=None, marker: str=None, max_results: int=None, delimiter: str=None, next_marker: str=None, **kwargs) -> None: + super(ListBlobsHierarchySegmentResponse, self).__init__(**kwargs) + self.service_endpoint = service_endpoint + self.container_name = container_name + self.prefix = prefix + self.marker = marker + self.max_results = max_results + self.delimiter = delimiter + self.segment = segment + self.next_marker = next_marker + + +class ListContainersSegmentResponse(Model): + """An enumeration of containers. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param container_items: Required. + :type container_items: list[~azure.storage.blob.models.ContainerItem] + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_items': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'container_items': {'key': 'ContainerItems', 'type': '[ContainerItem]', 'xml': {'name': 'Containers', 'itemsName': 'Containers', 'wrapped': True}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, *, service_endpoint: str, container_items, prefix: str=None, marker: str=None, max_results: int=None, next_marker: str=None, **kwargs) -> None: + super(ListContainersSegmentResponse, self).__init__(**kwargs) + self.service_endpoint = service_endpoint + self.prefix = prefix + self.marker = marker + self.max_results = max_results + self.container_items = container_items + self.next_marker = next_marker + + +class Logging(Model): + """Azure Analytics Logging settings. + + All required parameters must be populated in order to send to Azure. + + :param version: Required. The version of Storage Analytics to configure. + :type version: str + :param delete: Required. Indicates whether all delete requests should be + logged. + :type delete: bool + :param read: Required. Indicates whether all read requests should be + logged. + :type read: bool + :param write: Required. Indicates whether all write requests should be + logged. + :type write: bool + :param retention_policy: Required. + :type retention_policy: ~azure.storage.blob.models.RetentionPolicy + """ + + _validation = { + 'version': {'required': True}, + 'delete': {'required': True}, + 'read': {'required': True}, + 'write': {'required': True}, + 'retention_policy': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'delete': {'key': 'Delete', 'type': 'bool', 'xml': {'name': 'Delete'}}, + 'read': {'key': 'Read', 'type': 'bool', 'xml': {'name': 'Read'}}, + 'write': {'key': 'Write', 'type': 'bool', 'xml': {'name': 'Write'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'RetentionPolicy'}}, + } + _xml_map = { + } + + def __init__(self, *, version: str, delete: bool, read: bool, write: bool, retention_policy, **kwargs) -> None: + super(Logging, self).__init__(**kwargs) + self.version = version + self.delete = delete + self.read = read + self.write = write + self.retention_policy = retention_policy + + +class Metrics(Model): + """a summary of request statistics grouped by API in hour or minute aggregates + for blobs. + + All required parameters must be populated in order to send to Azure. + + :param version: The version of Storage Analytics to configure. + :type version: str + :param enabled: Required. Indicates whether metrics are enabled for the + Blob service. + :type enabled: bool + :param include_apis: Indicates whether metrics should generate summary + statistics for called API operations. + :type include_apis: bool + :param retention_policy: + :type retention_policy: ~azure.storage.blob.models.RetentionPolicy + """ + + _validation = { + 'enabled': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'include_apis': {'key': 'IncludeAPIs', 'type': 'bool', 'xml': {'name': 'IncludeAPIs'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'RetentionPolicy'}}, + } + _xml_map = { + } + + def __init__(self, *, enabled: bool, version: str=None, include_apis: bool=None, retention_policy=None, **kwargs) -> None: + super(Metrics, self).__init__(**kwargs) + self.version = version + self.enabled = enabled + self.include_apis = include_apis + self.retention_policy = retention_policy + + +class ModifiedAccessConditions(Model): + """Additional parameters for a set of operations. + + :param if_modified_since: Specify this header value to operate only on a + blob if it has been modified since the specified date/time. + :type if_modified_since: datetime + :param if_unmodified_since: Specify this header value to operate only on a + blob if it has not been modified since the specified date/time. + :type if_unmodified_since: datetime + :param if_match: Specify an ETag value to operate only on blobs with a + matching value. + :type if_match: str + :param if_none_match: Specify an ETag value to operate only on blobs + without a matching value. + :type if_none_match: str + :param if_tags: Specify a SQL where clause on blob tags to operate only on + blobs with a matching value. + :type if_tags: str + """ + + _attribute_map = { + 'if_modified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'if_modified_since'}}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'if_unmodified_since'}}, + 'if_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_match'}}, + 'if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_none_match'}}, + 'if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'if_tags'}}, + } + _xml_map = { + } + + def __init__(self, *, if_modified_since=None, if_unmodified_since=None, if_match: str=None, if_none_match: str=None, if_tags: str=None, **kwargs) -> None: + super(ModifiedAccessConditions, self).__init__(**kwargs) + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + self.if_match = if_match + self.if_none_match = if_none_match + self.if_tags = if_tags + + +class PageList(Model): + """the list of pages. + + :param page_range: + :type page_range: list[~azure.storage.blob.models.PageRange] + :param clear_range: + :type clear_range: list[~azure.storage.blob.models.ClearRange] + """ + + _attribute_map = { + 'page_range': {'key': 'PageRange', 'type': '[PageRange]', 'xml': {'name': 'PageRange', 'itemsName': 'PageRange'}}, + 'clear_range': {'key': 'ClearRange', 'type': '[ClearRange]', 'xml': {'name': 'ClearRange', 'itemsName': 'ClearRange'}}, + } + _xml_map = { + } + + def __init__(self, *, page_range=None, clear_range=None, **kwargs) -> None: + super(PageList, self).__init__(**kwargs) + self.page_range = page_range + self.clear_range = clear_range + + +class PageRange(Model): + """PageRange. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. + :type start: long + :param end: Required. + :type end: long + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'long', 'xml': {'name': 'Start'}}, + 'end': {'key': 'End', 'type': 'long', 'xml': {'name': 'End'}}, + } + _xml_map = { + 'name': 'PageRange' + } + + def __init__(self, *, start: int, end: int, **kwargs) -> None: + super(PageRange, self).__init__(**kwargs) + self.start = start + self.end = end + + +class QueryFormat(Model): + """QueryFormat. + + :param type: Possible values include: 'delimited', 'json' + :type type: str or ~azure.storage.blob.models.QueryFormatType + :param delimited_text_configuration: + :type delimited_text_configuration: + ~azure.storage.blob.models.DelimitedTextConfiguration + :param json_text_configuration: + :type json_text_configuration: + ~azure.storage.blob.models.JsonTextConfiguration + """ + + _attribute_map = { + 'type': {'key': 'Type', 'type': 'QueryFormatType', 'xml': {'name': 'Type'}}, + 'delimited_text_configuration': {'key': 'DelimitedTextConfiguration', 'type': 'DelimitedTextConfiguration', 'xml': {'name': 'DelimitedTextConfiguration'}}, + 'json_text_configuration': {'key': 'JsonTextConfiguration', 'type': 'JsonTextConfiguration', 'xml': {'name': 'JsonTextConfiguration'}}, + } + _xml_map = { + } + + def __init__(self, *, type=None, delimited_text_configuration=None, json_text_configuration=None, **kwargs) -> None: + super(QueryFormat, self).__init__(**kwargs) + self.type = type + self.delimited_text_configuration = delimited_text_configuration + self.json_text_configuration = json_text_configuration + + +class QueryRequest(Model): + """the quick query body. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar query_type: Required. the query type. Default value: "SQL" . + :vartype query_type: str + :param expression: Required. a query statement + :type expression: str + :param input_serialization: + :type input_serialization: ~azure.storage.blob.models.QuerySerialization + :param output_serialization: + :type output_serialization: ~azure.storage.blob.models.QuerySerialization + """ + + _validation = { + 'query_type': {'required': True, 'constant': True}, + 'expression': {'required': True}, + } + + _attribute_map = { + 'query_type': {'key': 'QueryType', 'type': 'str', 'xml': {'name': 'QueryType'}}, + 'expression': {'key': 'Expression', 'type': 'str', 'xml': {'name': 'Expression'}}, + 'input_serialization': {'key': 'InputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'InputSerialization'}}, + 'output_serialization': {'key': 'OutputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'OutputSerialization'}}, + } + _xml_map = { + 'name': 'QueryRequest' + } + + query_type = "SQL" + + def __init__(self, *, expression: str, input_serialization=None, output_serialization=None, **kwargs) -> None: + super(QueryRequest, self).__init__(**kwargs) + self.expression = expression + self.input_serialization = input_serialization + self.output_serialization = output_serialization + + +class QuerySerialization(Model): + """QuerySerialization. + + All required parameters must be populated in order to send to Azure. + + :param format: Required. + :type format: ~azure.storage.blob.models.QueryFormat + """ + + _validation = { + 'format': {'required': True}, + } + + _attribute_map = { + 'format': {'key': 'Format', 'type': 'QueryFormat', 'xml': {'name': 'Format'}}, + } + _xml_map = { + } + + def __init__(self, *, format, **kwargs) -> None: + super(QuerySerialization, self).__init__(**kwargs) + self.format = format + + +class RetentionPolicy(Model): + """the retention policy which determines how long the associated data should + persist. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Indicates whether a retention policy is enabled + for the storage service + :type enabled: bool + :param days: Indicates the number of days that metrics or logging or + soft-deleted data should be retained. All data older than this value will + be deleted + :type days: int + """ + + _validation = { + 'enabled': {'required': True}, + 'days': {'minimum': 1}, + } + + _attribute_map = { + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'days': {'key': 'Days', 'type': 'int', 'xml': {'name': 'Days'}}, + } + _xml_map = { + } + + def __init__(self, *, enabled: bool, days: int=None, **kwargs) -> None: + super(RetentionPolicy, self).__init__(**kwargs) + self.enabled = enabled + self.days = days + + +class SequenceNumberAccessConditions(Model): + """Additional parameters for a set of operations, such as: + PageBlob_upload_pages, PageBlob_clear_pages, + PageBlob_upload_pages_from_url. + + :param if_sequence_number_less_than_or_equal_to: Specify this header value + to operate only on a blob if it has a sequence number less than or equal + to the specified. + :type if_sequence_number_less_than_or_equal_to: long + :param if_sequence_number_less_than: Specify this header value to operate + only on a blob if it has a sequence number less than the specified. + :type if_sequence_number_less_than: long + :param if_sequence_number_equal_to: Specify this header value to operate + only on a blob if it has the specified sequence number. + :type if_sequence_number_equal_to: long + """ + + _attribute_map = { + 'if_sequence_number_less_than_or_equal_to': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_less_than_or_equal_to'}}, + 'if_sequence_number_less_than': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_less_than'}}, + 'if_sequence_number_equal_to': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_equal_to'}}, + } + _xml_map = { + } + + def __init__(self, *, if_sequence_number_less_than_or_equal_to: int=None, if_sequence_number_less_than: int=None, if_sequence_number_equal_to: int=None, **kwargs) -> None: + super(SequenceNumberAccessConditions, self).__init__(**kwargs) + self.if_sequence_number_less_than_or_equal_to = if_sequence_number_less_than_or_equal_to + self.if_sequence_number_less_than = if_sequence_number_less_than + self.if_sequence_number_equal_to = if_sequence_number_equal_to + + +class SignedIdentifier(Model): + """signed identifier. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. a unique id + :type id: str + :param access_policy: + :type access_policy: ~azure.storage.blob.models.AccessPolicy + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'Id', 'type': 'str', 'xml': {'name': 'Id'}}, + 'access_policy': {'key': 'AccessPolicy', 'type': 'AccessPolicy', 'xml': {'name': 'AccessPolicy'}}, + } + _xml_map = { + 'name': 'SignedIdentifier' + } + + def __init__(self, *, id: str, access_policy=None, **kwargs) -> None: + super(SignedIdentifier, self).__init__(**kwargs) + self.id = id + self.access_policy = access_policy + + +class SourceModifiedAccessConditions(Model): + """Additional parameters for a set of operations. + + :param source_if_modified_since: Specify this header value to operate only + on a blob if it has been modified since the specified date/time. + :type source_if_modified_since: datetime + :param source_if_unmodified_since: Specify this header value to operate + only on a blob if it has not been modified since the specified date/time. + :type source_if_unmodified_since: datetime + :param source_if_match: Specify an ETag value to operate only on blobs + with a matching value. + :type source_if_match: str + :param source_if_none_match: Specify an ETag value to operate only on + blobs without a matching value. + :type source_if_none_match: str + :param source_if_tags: Specify a SQL where clause on blob tags to operate + only on blobs with a matching value. + :type source_if_tags: str + """ + + _attribute_map = { + 'source_if_modified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'source_if_modified_since'}}, + 'source_if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'source_if_unmodified_since'}}, + 'source_if_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_match'}}, + 'source_if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_none_match'}}, + 'source_if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_tags'}}, + } + _xml_map = { + } + + def __init__(self, *, source_if_modified_since=None, source_if_unmodified_since=None, source_if_match: str=None, source_if_none_match: str=None, source_if_tags: str=None, **kwargs) -> None: + super(SourceModifiedAccessConditions, self).__init__(**kwargs) + self.source_if_modified_since = source_if_modified_since + self.source_if_unmodified_since = source_if_unmodified_since + self.source_if_match = source_if_match + self.source_if_none_match = source_if_none_match + self.source_if_tags = source_if_tags + + +class StaticWebsite(Model): + """The properties that enable an account to host a static website. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Indicates whether this account is hosting a + static website + :type enabled: bool + :param index_document: The default name of the index page under each + directory + :type index_document: str + :param error_document404_path: The absolute path of the custom 404 page + :type error_document404_path: str + :param default_index_document_path: Absolute path of the default index + page + :type default_index_document_path: str + """ + + _validation = { + 'enabled': {'required': True}, + } + + _attribute_map = { + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'index_document': {'key': 'IndexDocument', 'type': 'str', 'xml': {'name': 'IndexDocument'}}, + 'error_document404_path': {'key': 'ErrorDocument404Path', 'type': 'str', 'xml': {'name': 'ErrorDocument404Path'}}, + 'default_index_document_path': {'key': 'DefaultIndexDocumentPath', 'type': 'str', 'xml': {'name': 'DefaultIndexDocumentPath'}}, + } + _xml_map = { + } + + def __init__(self, *, enabled: bool, index_document: str=None, error_document404_path: str=None, default_index_document_path: str=None, **kwargs) -> None: + super(StaticWebsite, self).__init__(**kwargs) + self.enabled = enabled + self.index_document = index_document + self.error_document404_path = error_document404_path + self.default_index_document_path = default_index_document_path + + +class StorageError(Model): + """StorageError. + + :param message: + :type message: str + """ + + _attribute_map = { + 'message': {'key': 'Message', 'type': 'str', 'xml': {'name': 'Message'}}, + } + _xml_map = { + } + + def __init__(self, *, message: str=None, **kwargs) -> None: + super(StorageError, self).__init__(**kwargs) + self.message = message + + +class StorageErrorException(HttpResponseError): + """Server responsed with exception of type: 'StorageError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, response, deserialize, *args): + + model_name = 'StorageError' + self.error = deserialize(model_name, response) + if self.error is None: + self.error = deserialize.dependencies[model_name]() + super(StorageErrorException, self).__init__(response=response) + + +class StorageServiceProperties(Model): + """Storage Service Properties. + + :param logging: + :type logging: ~azure.storage.blob.models.Logging + :param hour_metrics: + :type hour_metrics: ~azure.storage.blob.models.Metrics + :param minute_metrics: + :type minute_metrics: ~azure.storage.blob.models.Metrics + :param cors: The set of CORS rules. + :type cors: list[~azure.storage.blob.models.CorsRule] + :param default_service_version: The default version to use for requests to + the Blob service if an incoming request's version is not specified. + Possible values include version 2008-10-27 and all more recent versions + :type default_service_version: str + :param delete_retention_policy: + :type delete_retention_policy: ~azure.storage.blob.models.RetentionPolicy + :param static_website: + :type static_website: ~azure.storage.blob.models.StaticWebsite + """ + + _attribute_map = { + 'logging': {'key': 'Logging', 'type': 'Logging', 'xml': {'name': 'Logging'}}, + 'hour_metrics': {'key': 'HourMetrics', 'type': 'Metrics', 'xml': {'name': 'HourMetrics'}}, + 'minute_metrics': {'key': 'MinuteMetrics', 'type': 'Metrics', 'xml': {'name': 'MinuteMetrics'}}, + 'cors': {'key': 'Cors', 'type': '[CorsRule]', 'xml': {'name': 'Cors', 'itemsName': 'CorsRule', 'wrapped': True}}, + 'default_service_version': {'key': 'DefaultServiceVersion', 'type': 'str', 'xml': {'name': 'DefaultServiceVersion'}}, + 'delete_retention_policy': {'key': 'DeleteRetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'DeleteRetentionPolicy'}}, + 'static_website': {'key': 'StaticWebsite', 'type': 'StaticWebsite', 'xml': {'name': 'StaticWebsite'}}, + } + _xml_map = { + } + + def __init__(self, *, logging=None, hour_metrics=None, minute_metrics=None, cors=None, default_service_version: str=None, delete_retention_policy=None, static_website=None, **kwargs) -> None: + super(StorageServiceProperties, self).__init__(**kwargs) + self.logging = logging + self.hour_metrics = hour_metrics + self.minute_metrics = minute_metrics + self.cors = cors + self.default_service_version = default_service_version + self.delete_retention_policy = delete_retention_policy + self.static_website = static_website + + +class StorageServiceStats(Model): + """Stats for the storage service. + + :param geo_replication: + :type geo_replication: ~azure.storage.blob.models.GeoReplication + """ + + _attribute_map = { + 'geo_replication': {'key': 'GeoReplication', 'type': 'GeoReplication', 'xml': {'name': 'GeoReplication'}}, + } + _xml_map = { + } + + def __init__(self, *, geo_replication=None, **kwargs) -> None: + super(StorageServiceStats, self).__init__(**kwargs) + self.geo_replication = geo_replication + + +class UserDelegationKey(Model): + """A user delegation key. + + All required parameters must be populated in order to send to Azure. + + :param signed_oid: Required. The Azure Active Directory object ID in GUID + format. + :type signed_oid: str + :param signed_tid: Required. The Azure Active Directory tenant ID in GUID + format + :type signed_tid: str + :param signed_start: Required. The date-time the key is active + :type signed_start: datetime + :param signed_expiry: Required. The date-time the key expires + :type signed_expiry: datetime + :param signed_service: Required. Abbreviation of the Azure Storage service + that accepts the key + :type signed_service: str + :param signed_version: Required. The service version that created the key + :type signed_version: str + :param value: Required. The key as a base64 string + :type value: str + """ + + _validation = { + 'signed_oid': {'required': True}, + 'signed_tid': {'required': True}, + 'signed_start': {'required': True}, + 'signed_expiry': {'required': True}, + 'signed_service': {'required': True}, + 'signed_version': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'signed_oid': {'key': 'SignedOid', 'type': 'str', 'xml': {'name': 'SignedOid'}}, + 'signed_tid': {'key': 'SignedTid', 'type': 'str', 'xml': {'name': 'SignedTid'}}, + 'signed_start': {'key': 'SignedStart', 'type': 'iso-8601', 'xml': {'name': 'SignedStart'}}, + 'signed_expiry': {'key': 'SignedExpiry', 'type': 'iso-8601', 'xml': {'name': 'SignedExpiry'}}, + 'signed_service': {'key': 'SignedService', 'type': 'str', 'xml': {'name': 'SignedService'}}, + 'signed_version': {'key': 'SignedVersion', 'type': 'str', 'xml': {'name': 'SignedVersion'}}, + 'value': {'key': 'Value', 'type': 'str', 'xml': {'name': 'Value'}}, + } + _xml_map = { + } + + def __init__(self, *, signed_oid: str, signed_tid: str, signed_start, signed_expiry, signed_service: str, signed_version: str, value: str, **kwargs) -> None: + super(UserDelegationKey, self).__init__(**kwargs) + self.signed_oid = signed_oid + self.signed_tid = signed_tid + self.signed_start = signed_start + self.signed_expiry = signed_expiry + self.signed_service = signed_service + self.signed_version = signed_version + self.value = value diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/__init__.py new file mode 100644 index 00000000000..1ea04533440 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/__init__.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._service_operations import ServiceOperations +from ._container_operations import ContainerOperations +from ._directory_operations import DirectoryOperations +from ._blob_operations import BlobOperations +from ._page_blob_operations import PageBlobOperations +from ._append_blob_operations import AppendBlobOperations +from ._block_blob_operations import BlockBlobOperations + +__all__ = [ + 'ServiceOperations', + 'ContainerOperations', + 'DirectoryOperations', + 'BlobOperations', + 'PageBlobOperations', + 'AppendBlobOperations', + 'BlockBlobOperations', +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_append_blob_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_append_blob_operations.py new file mode 100644 index 00000000000..000810acffe --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_append_blob_operations.py @@ -0,0 +1,694 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class AppendBlobOperations(object): + """AppendBlobOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "AppendBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "AppendBlob" + + def create(self, content_length, timeout=None, metadata=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Create Append Blob operation creates a new append blob. + + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}/{blob}'} + + def append_block(self, body, content_length, timeout=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, lease_access_conditions=None, append_position_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Append Block operation commits a new block of data to the end of an + existing append blob. The Append Block operation is permitted only if + the blob was created with x-ms-blob-type set to AppendBlob. Append + Block is supported only on version 2015-02-21 version or later. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + max_size = None + if append_position_access_conditions is not None: + max_size = append_position_access_conditions.max_size + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "appendblock" + + # Construct URL + url = self.append_block.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if max_size is not None: + header_parameters['x-ms-blob-condition-maxsize'] = self._serialize.header("max_size", max_size, 'long') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-append-offset': self._deserialize('str', response.headers.get('x-ms-blob-append-offset')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + append_block.metadata = {'url': '/{containerName}/{blob}'} + + def append_block_from_url(self, source_url, content_length, source_range=None, source_content_md5=None, source_contentcrc64=None, timeout=None, transactional_content_md5=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, append_position_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, cls=None, **kwargs): + """The Append Block operation commits a new block of data to the end of an + existing append blob where the contents are read from a source url. The + Append Block operation is permitted only if the blob was created with + x-ms-blob-type set to AppendBlob. Append Block is supported only on + version 2015-02-21 version or later. + + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param content_length: The length of the request. + :type content_length: long + :param source_range: Bytes of source data in the specified range. + :type source_range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + max_size = None + if append_position_access_conditions is not None: + max_size = append_position_access_conditions.max_size + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "appendblock" + + # Construct URL + url = self.append_block_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + if source_range is not None: + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if max_size is not None: + header_parameters['x-ms-blob-condition-maxsize'] = self._serialize.header("max_size", max_size, 'long') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-append-offset': self._deserialize('str', response.headers.get('x-ms-blob-append-offset')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + append_block_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def seal(self, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, append_position_access_conditions=None, cls=None, **kwargs): + """The Seal operation seals the Append Blob to make it read-only. Seal is + supported only on version 2019-12-12 version or later. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + + comp = "seal" + + # Construct URL + url = self.seal.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + seal.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_blob_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_blob_operations.py new file mode 100644 index 00000000000..94780168607 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_blob_operations.py @@ -0,0 +1,3062 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class BlobOperations(object): + """BlobOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_requires_sync: . Constant value: "true". + :ivar x_ms_copy_action: . Constant value: "abort". + :ivar restype: . Constant value: "account". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_requires_sync = "true" + self.x_ms_copy_action = "abort" + self.restype = "account" + + def download(self, snapshot=None, version_id=None, timeout=None, range=None, range_get_content_md5=None, range_get_content_crc64=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Download operation reads or downloads a blob from the system, + including its metadata and properties. You can also call Download to + read a snapshot. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param range_get_content_md5: When set to true and specified together + with the Range, the service returns the MD5 hash for the range, as + long as the range is less than or equal to 4 MB in size. + :type range_get_content_md5: bool + :param range_get_content_crc64: When set to true and specified + together with the Range, the service returns the CRC64 hash for the + range, as long as the range is less than or equal to 4 MB in size. + :type range_get_content_crc64: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.download.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + if range_get_content_md5 is not None: + header_parameters['x-ms-range-get-content-md5'] = self._serialize.header("range_get_content_md5", range_get_content_md5, 'bool') + if range_get_content_crc64 is not None: + header_parameters['x-ms-range-get-content-crc64'] = self._serialize.header("range_get_content_crc64", range_get_content_crc64, 'bool') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 206]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + if response.status_code == 206: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + download.metadata = {'url': '/{containerName}/{blob}'} + + def get_properties(self, snapshot=None, version_id=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Get Properties operation returns all user-defined metadata, + standard HTTP properties, and system properties for the blob. It does + not return the content of the blob. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-creation-time': self._deserialize('rfc-1123', response.headers.get('x-ms-creation-time')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-incremental-copy': self._deserialize('bool', response.headers.get('x-ms-incremental-copy')), + 'x-ms-copy-destination-snapshot': self._deserialize('str', response.headers.get('x-ms-copy-destination-snapshot')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-access-tier': self._deserialize('str', response.headers.get('x-ms-access-tier')), + 'x-ms-access-tier-inferred': self._deserialize('bool', response.headers.get('x-ms-access-tier-inferred')), + 'x-ms-archive-status': self._deserialize('str', response.headers.get('x-ms-archive-status')), + 'x-ms-access-tier-change-time': self._deserialize('rfc-1123', response.headers.get('x-ms-access-tier-change-time')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'x-ms-is-current-version': self._deserialize('bool', response.headers.get('x-ms-is-current-version')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-expiry-time': self._deserialize('rfc-1123', response.headers.get('x-ms-expiry-time')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-rehydrate-priority': self._deserialize('str', response.headers.get('x-ms-rehydrate-priority')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_properties.metadata = {'url': '/{containerName}/{blob}'} + + def delete(self, snapshot=None, version_id=None, timeout=None, delete_snapshots=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """If the storage account's soft delete feature is disabled then, when a + blob is deleted, it is permanently removed from the storage account. If + the storage account's soft delete feature is enabled, then, when a blob + is deleted, it is marked for deletion and becomes inaccessible + immediately. However, the blob service retains the blob or snapshot for + the number of days specified by the DeleteRetentionPolicy section of + [Storage service properties] (Set-Blob-Service-Properties.md). After + the specified number of days has passed, the blob's data is permanently + removed from the storage account. Note that you continue to be charged + for the soft-deleted blob's storage until it is permanently removed. + Use the List Blobs API and specify the "include=deleted" query + parameter to discover which blobs and snapshots have been soft deleted. + You can then use the Undelete Blob API to restore a soft-deleted blob. + All other operations on a soft-deleted blob or snapshot causes the + service to return an HTTP status code of 404 (ResourceNotFound). + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param delete_snapshots: Required if the blob has associated + snapshots. Specify one of the following two options: include: Delete + the base blob and all of its snapshots. only: Delete only the blob's + snapshots and not the blob itself. Possible values include: 'include', + 'only' + :type delete_snapshots: str or + ~azure.storage.blob.models.DeleteSnapshotsOptionType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if delete_snapshots is not None: + header_parameters['x-ms-delete-snapshots'] = self._serialize.header("delete_snapshots", delete_snapshots, 'DeleteSnapshotsOptionType') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{containerName}/{blob}'} + + def set_access_control(self, timeout=None, owner=None, group=None, posix_permissions=None, posix_acl=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Set the owner, group, permissions, or access control list for a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param owner: Optional. The owner of the blob or directory. + :type owner: str + :param group: Optional. The owning group of the blob or directory. + :type group: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_acl: Sets POSIX access control rights on files and + directories. The value is a comma-separated list of access control + entries. Each access control entry (ACE) consists of a scope, a type, + a user or group identifier, and permissions in the format + "[scope:][type]:[id]:[permissions]". + :type posix_acl: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "setAccessControl" + + # Construct URL + url = self.set_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if owner is not None: + header_parameters['x-ms-owner'] = self._serialize.header("owner", owner, 'str') + if group is not None: + header_parameters['x-ms-group'] = self._serialize.header("group", group, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_acl is not None: + header_parameters['x-ms-acl'] = self._serialize.header("posix_acl", posix_acl, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + set_access_control.metadata = {'url': '/{filesystem}/{path}'} + + def get_access_control(self, timeout=None, upn=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Get the owner, group, permissions, or access control list for a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param upn: Optional. Valid only when Hierarchical Namespace is + enabled for the account. If "true", the identity values returned in + the x-ms-owner, x-ms-group, and x-ms-acl response headers will be + transformed from Azure Active Directory Object IDs to User Principal + Names. If "false", the values will be returned as Azure Active + Directory Object IDs. The default value is false. + :type upn: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "getAccessControl" + + # Construct URL + url = self.get_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if upn is not None: + query_parameters['upn'] = self._serialize.query("upn", upn, 'bool') + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-owner': self._deserialize('str', response.headers.get('x-ms-owner')), + 'x-ms-group': self._deserialize('str', response.headers.get('x-ms-group')), + 'x-ms-permissions': self._deserialize('str', response.headers.get('x-ms-permissions')), + 'x-ms-acl': self._deserialize('str', response.headers.get('x-ms-acl')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + get_access_control.metadata = {'url': '/{filesystem}/{path}'} + + def rename(self, rename_source, timeout=None, path_rename_mode=None, directory_properties=None, posix_permissions=None, posix_umask=None, source_lease_id=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, cls=None, **kwargs): + """Rename a blob/file. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param rename_source: The file or directory to be renamed. The value + must have the following format: "/{filesysystem}/{path}". If + "x-ms-properties" is specified, the properties will overwrite the + existing properties; otherwise, the existing properties will be + preserved. + :type rename_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param path_rename_mode: Determines the behavior of the rename + operation. Possible values include: 'legacy', 'posix' + :type path_rename_mode: str or + ~azure.storage.blob.models.PathRenameMode + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param source_lease_id: A lease ID for the source path. If specified, + the source path must have an active lease and the lease ID must match. + :type source_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + # Construct URL + url = self.rename.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if path_rename_mode is not None: + query_parameters['mode'] = self._serialize.query("path_rename_mode", path_rename_mode, 'PathRenameMode') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-rename-source'] = self._serialize.header("rename_source", rename_source, 'str') + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + if source_lease_id is not None: + header_parameters['x-ms-source-lease-id'] = self._serialize.header("source_lease_id", source_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + rename.metadata = {'url': '/{filesystem}/{path}'} + + def undelete(self, timeout=None, request_id=None, cls=None, **kwargs): + """Undelete a blob that was previously soft deleted. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "undelete" + + # Construct URL + url = self.undelete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + undelete.metadata = {'url': '/{containerName}/{blob}'} + + def set_expiry(self, expiry_options, timeout=None, request_id=None, expires_on=None, cls=None, **kwargs): + """Sets the time a blob will expire and be deleted. + + :param expiry_options: Required. Indicates mode of the expiry time. + Possible values include: 'NeverExpire', 'RelativeToCreation', + 'RelativeToNow', 'Absolute' + :type expiry_options: str or + ~azure.storage.blob.models.BlobExpiryOptions + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param expires_on: The time to set the blob to expiry + :type expires_on: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "expiry" + + # Construct URL + url = self.set_expiry.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-expiry-option'] = self._serialize.header("expiry_options", expiry_options, 'str') + if expires_on is not None: + header_parameters['x-ms-expiry-time'] = self._serialize.header("expires_on", expires_on, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_expiry.metadata = {'url': '/{containerName}/{blob}'} + + def set_http_headers(self, timeout=None, request_id=None, blob_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Set HTTP Headers operation sets system properties on the blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.set_http_headers.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_http_headers.metadata = {'url': '/{containerName}/{blob}'} + + def set_metadata(self, timeout=None, metadata=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Set Blob Metadata operation sets user-defined metadata for the + specified blob as one or more name-value pairs. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "metadata" + + # Construct URL + url = self.set_metadata.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_metadata.metadata = {'url': '/{containerName}/{blob}'} + + def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param duration: Specifies the duration of the lease, in seconds, or + negative one (-1) for a lease that never expires. A non-infinite lease + can be between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. + :type duration: int + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "acquire" + + # Construct URL + url = self.acquire_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if duration is not None: + header_parameters['x-ms-lease-duration'] = self._serialize.header("duration", duration, 'int') + if proposed_lease_id is not None: + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + acquire_lease.metadata = {'url': '/{containerName}/{blob}'} + + def release_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "release" + + # Construct URL + url = self.release_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + release_lease.metadata = {'url': '/{containerName}/{blob}'} + + def renew_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "renew" + + # Construct URL + url = self.renew_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + renew_lease.metadata = {'url': '/{containerName}/{blob}'} + + def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "change" + + # Construct URL + url = self.change_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + change_lease.metadata = {'url': '/{containerName}/{blob}'} + + def break_lease(self, timeout=None, break_period=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param break_period: For a break operation, proposed duration the + lease should continue before it is broken, in seconds, between 0 and + 60. This break period is only used if it is shorter than the time + remaining on the lease. If longer, the time remaining on the lease is + used. A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break period. + If this header does not appear with a break operation, a + fixed-duration lease breaks after the remaining lease period elapses, + and an infinite lease breaks immediately. + :type break_period: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "break" + + # Construct URL + url = self.break_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if break_period is not None: + header_parameters['x-ms-lease-break-period'] = self._serialize.header("break_period", break_period, 'int') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-time': self._deserialize('int', response.headers.get('x-ms-lease-time')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + break_lease.metadata = {'url': '/{containerName}/{blob}'} + + def create_snapshot(self, timeout=None, metadata=None, request_id=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, lease_access_conditions=None, cls=None, **kwargs): + """The Create Snapshot operation creates a read-only snapshot of a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + comp = "snapshot" + + # Construct URL + url = self.create_snapshot.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-snapshot': self._deserialize('str', response.headers.get('x-ms-snapshot')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create_snapshot.metadata = {'url': '/{containerName}/{blob}'} + + def start_copy_from_url(self, copy_source, timeout=None, metadata=None, tier=None, rehydrate_priority=None, request_id=None, blob_tags_string=None, seal_blob=None, source_modified_access_conditions=None, modified_access_conditions=None, lease_access_conditions=None, cls=None, **kwargs): + """The Start Copy From URL operation copies a blob or an internet resource + to a new blob. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param rehydrate_priority: Optional: Indicates the priority with which + to rehydrate an archived blob. Possible values include: 'High', + 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param seal_blob: Overrides the sealed state of the destination blob. + Service version 2019-12-12 and newer. + :type seal_blob: bool + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + source_if_tags = None + if source_modified_access_conditions is not None: + source_if_tags = source_modified_access_conditions.source_if_tags + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + # Construct URL + url = self.start_copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if rehydrate_priority is not None: + header_parameters['x-ms-rehydrate-priority'] = self._serialize.header("rehydrate_priority", rehydrate_priority, 'str') + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + if seal_blob is not None: + header_parameters['x-ms-seal-blob'] = self._serialize.header("seal_blob", seal_blob, 'bool') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + if source_if_tags is not None: + header_parameters['x-ms-source-if-tags'] = self._serialize.header("source_if_tags", source_if_tags, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + start_copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def copy_from_url(self, copy_source, timeout=None, metadata=None, tier=None, request_id=None, source_content_md5=None, blob_tags_string=None, source_modified_access_conditions=None, modified_access_conditions=None, lease_access_conditions=None, cls=None, **kwargs): + """The Copy From URL operation copies a blob or an internet resource to a + new blob. It will not return a response until the copy is complete. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + # Construct URL + url = self.copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-requires-sync'] = self._serialize.header("self.x_ms_requires_sync", self.x_ms_requires_sync, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.SyncCopyStatusType, response.headers.get('x-ms-copy-status')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def abort_copy_from_url(self, copy_id, timeout=None, request_id=None, lease_access_conditions=None, cls=None, **kwargs): + """The Abort Copy From URL operation aborts a pending Copy From URL + operation, and leaves a destination blob with zero length and full + metadata. + + :param copy_id: The copy identifier provided in the x-ms-copy-id + header of the original Copy Blob operation. + :type copy_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + comp = "copy" + + # Construct URL + url = self.abort_copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['copyid'] = self._serialize.query("copy_id", copy_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-copy-action'] = self._serialize.header("self.x_ms_copy_action", self.x_ms_copy_action, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + abort_copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def set_tier(self, tier, snapshot=None, version_id=None, timeout=None, rehydrate_priority=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Set Tier operation sets the tier on a blob. The operation is + allowed on a page blob in a premium storage account and on a block blob + in a blob storage account (locally redundant storage only). A premium + page blob's tier determines the allowed size, IOPS, and bandwidth of + the blob. A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param tier: Indicates the tier to be set on the blob. Possible values + include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', 'P40', 'P50', 'P60', + 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierRequired + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param rehydrate_priority: Optional: Indicates the priority with which + to rehydrate an archived blob. Possible values include: 'High', + 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tier" + + # Construct URL + url = self.set_tier.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if rehydrate_priority is not None: + header_parameters['x-ms-rehydrate-priority'] = self._serialize.header("rehydrate_priority", rehydrate_priority, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_tier.metadata = {'url': '/{containerName}/{blob}'} + + def get_account_info(self, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("self.restype", self.restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/{containerName}/{blob}'} + + def query(self, query_request=None, snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Query operation enables users to select/project on blob data by + providing simple query expressions. + + :param query_request: the query request + :type query_request: ~azure.storage.blob.models.QueryRequest + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "query" + + # Construct URL + url = self.query.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + if query_request is not None: + body_content = self._serialize.body(query_request, 'QueryRequest') + else: + body_content = None + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 206]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + if response.status_code == 206: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + query.metadata = {'url': '/{containerName}/{blob}'} + + def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None, modified_access_conditions=None, cls=None, **kwargs): + """The Get Tags operation enables users to get the tags associated with a + blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: BlobTags or the result of cls(response) + :rtype: ~azure.storage.blob.models.BlobTags + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tags" + + # Construct URL + url = self.get_tags.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlobTags', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_tags.metadata = {'url': '/{containerName}/{blob}'} + + def set_tags(self, timeout=None, version_id=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, tags=None, modified_access_conditions=None, cls=None, **kwargs): + """The Set Tags operation enables users to set tags on a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param tags: Blob tags + :type tags: ~azure.storage.blob.models.BlobTags + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tags" + + # Construct URL + url = self.set_tags.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + if tags is not None: + body_content = self._serialize.body(tags, 'BlobTags') + else: + body_content = None + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_tags.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_block_blob_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_block_blob_operations.py new file mode 100644 index 00000000000..8228c4782b6 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_block_blob_operations.py @@ -0,0 +1,833 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class BlockBlobOperations(object): + """BlockBlobOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "BlockBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "BlockBlob" + + def upload(self, body, content_length, timeout=None, transactional_content_md5=None, metadata=None, tier=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Upload Block Blob operation updates the content of an existing + block blob. Updating an existing block blob overwrites any existing + metadata on the blob. Partial updates are not supported with Put Blob; + the content of the existing blob is overwritten with the content of the + new blob. To perform a partial update of the content of a block blob, + use the Put Block List operation. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.upload.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload.metadata = {'url': '/{containerName}/{blob}'} + + def stage_block(self, block_id, content_length, body, transactional_content_md5=None, transactional_content_crc64=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, cls=None, **kwargs): + """The Stage Block operation creates a new block to be committed as part + of a blob. + + :param block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the blockid parameter must be the same size for each block. + :type block_id: str + :param content_length: The length of the request. + :type content_length: long + :param body: Initial data + :type body: Generator + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + + comp = "block" + + # Construct URL + url = self.stage_block.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['blockid'] = self._serialize.query("block_id", block_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + stage_block.metadata = {'url': '/{containerName}/{blob}'} + + def stage_block_from_url(self, block_id, content_length, source_url, source_range=None, source_content_md5=None, source_contentcrc64=None, timeout=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, source_modified_access_conditions=None, cls=None, **kwargs): + """The Stage Block operation creates a new block to be committed as part + of a blob where the contents are read from a URL. + + :param block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the blockid parameter must be the same size for each block. + :type block_id: str + :param content_length: The length of the request. + :type content_length: long + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param source_range: Bytes of source data in the specified range. + :type source_range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "block" + + # Construct URL + url = self.stage_block_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['blockid'] = self._serialize.query("block_id", block_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + if source_range is not None: + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + stage_block_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def commit_block_list(self, blocks, timeout=None, transactional_content_md5=None, transactional_content_crc64=None, metadata=None, tier=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Commit Block List operation writes a blob by specifying the list of + block IDs that make up the blob. In order to be written as part of a + blob, a block must have been successfully written to the server in a + prior Put Block operation. You can call Put Block List to update a blob + by uploading only those blocks that have changed, then committing the + new and existing blocks together. You can do this by specifying whether + to commit a block from the committed block list or from the uncommitted + block list, or to commit the most recently uploaded version of the + block, whichever list it may belong to. + + :param blocks: + :type blocks: ~azure.storage.blob.models.BlockLookupList + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "blocklist" + + # Construct URL + url = self.commit_block_list.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + body_content = self._serialize.body(blocks, 'BlockLookupList') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + commit_block_list.metadata = {'url': '/{containerName}/{blob}'} + + def get_block_list(self, list_type="committed", snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Get Block List operation retrieves the list of blocks that have + been uploaded as part of a block blob. + + :param list_type: Specifies whether to return the list of committed + blocks, the list of uncommitted blocks, or both lists together. + Possible values include: 'committed', 'uncommitted', 'all' + :type list_type: str or ~azure.storage.blob.models.BlockListType + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: BlockList or the result of cls(response) + :rtype: ~azure.storage.blob.models.BlockList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "blocklist" + + # Construct URL + url = self.get_block_list.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + query_parameters['blocklisttype'] = self._serialize.query("list_type", list_type, 'BlockListType') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlockList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_block_list.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_container_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_container_operations.py new file mode 100644 index 00000000000..5730483519a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_container_operations.py @@ -0,0 +1,1400 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class ContainerOperations(object): + """ContainerOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + + def create(self, timeout=None, metadata=None, access=None, request_id=None, container_cpk_scope_info=None, cls=None, **kwargs): + """creates a new container under the specified account. If the container + with the same name already exists, the operation fails. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param access: Specifies whether data in the container may be accessed + publicly and the level of access. Possible values include: + 'container', 'blob' + :type access: str or ~azure.storage.blob.models.PublicAccessType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param container_cpk_scope_info: Additional parameters for the + operation + :type container_cpk_scope_info: + ~azure.storage.blob.models.ContainerCpkScopeInfo + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + default_encryption_scope = None + if container_cpk_scope_info is not None: + default_encryption_scope = container_cpk_scope_info.default_encryption_scope + prevent_encryption_scope_override = None + if container_cpk_scope_info is not None: + prevent_encryption_scope_override = container_cpk_scope_info.prevent_encryption_scope_override + + restype = "container" + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if access is not None: + header_parameters['x-ms-blob-public-access'] = self._serialize.header("access", access, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if default_encryption_scope is not None: + header_parameters['x-ms-default-encryption-scope'] = self._serialize.header("default_encryption_scope", default_encryption_scope, 'str') + if prevent_encryption_scope_override is not None: + header_parameters['x-ms-deny-encryption-scope-override'] = self._serialize.header("prevent_encryption_scope_override", prevent_encryption_scope_override, 'bool') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}'} + + def get_properties(self, timeout=None, request_id=None, lease_access_conditions=None, cls=None, **kwargs): + """returns all user-defined metadata and system properties for the + specified container. The data returned does not include the container's + list of blobs. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + restype = "container" + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-public-access': self._deserialize('str', response.headers.get('x-ms-blob-public-access')), + 'x-ms-has-immutability-policy': self._deserialize('bool', response.headers.get('x-ms-has-immutability-policy')), + 'x-ms-has-legal-hold': self._deserialize('bool', response.headers.get('x-ms-has-legal-hold')), + 'x-ms-default-encryption-scope': self._deserialize('str', response.headers.get('x-ms-default-encryption-scope')), + 'x-ms-deny-encryption-scope-override': self._deserialize('bool', response.headers.get('x-ms-deny-encryption-scope-override')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_properties.metadata = {'url': '/{containerName}'} + + def delete(self, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """operation marks the specified container for deletion. The container and + any blobs contained within it are later deleted during garbage + collection. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + restype = "container" + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{containerName}'} + + def set_metadata(self, timeout=None, metadata=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """operation sets one or more user-defined name-value pairs for the + specified container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + + restype = "container" + comp = "metadata" + + # Construct URL + url = self.set_metadata.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_metadata.metadata = {'url': '/{containerName}'} + + def get_access_policy(self, timeout=None, request_id=None, lease_access_conditions=None, cls=None, **kwargs): + """gets the permissions for the specified container. The permissions + indicate whether container data may be accessed publicly. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: list or the result of cls(response) + :rtype: list[~azure.storage.blob.models.SignedIdentifier] + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + restype = "container" + comp = "acl" + + # Construct URL + url = self.get_access_policy.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('[SignedIdentifier]', response) + header_dict = { + 'x-ms-blob-public-access': self._deserialize('str', response.headers.get('x-ms-blob-public-access')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_access_policy.metadata = {'url': '/{containerName}'} + + def set_access_policy(self, container_acl=None, timeout=None, access=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """sets the permissions for the specified container. The permissions + indicate whether blobs in a container may be accessed publicly. + + :param container_acl: the acls for the container + :type container_acl: list[~azure.storage.blob.models.SignedIdentifier] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param access: Specifies whether data in the container may be accessed + publicly and the level of access. Possible values include: + 'container', 'blob' + :type access: str or ~azure.storage.blob.models.PublicAccessType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + restype = "container" + comp = "acl" + + # Construct URL + url = self.set_access_policy.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + if access is not None: + header_parameters['x-ms-blob-public-access'] = self._serialize.header("access", access, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct body + serialization_ctxt = {'xml': {'name': 'SignedIdentifiers', 'itemsName': 'SignedIdentifiers', 'wrapped': True}} + if container_acl is not None: + body_content = self._serialize.body(container_acl, '[SignedIdentifier]', serialization_ctxt=serialization_ctxt) + else: + body_content = None + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_access_policy.metadata = {'url': '/{containerName}'} + + def restore(self, timeout=None, request_id=None, deleted_container_name=None, deleted_container_version=None, cls=None, **kwargs): + """Restores a previously-deleted container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param deleted_container_name: Optional. Version 2019-12-12 and + laster. Specifies the name of the deleted container to restore. + :type deleted_container_name: str + :param deleted_container_version: Optional. Version 2019-12-12 and + laster. Specifies the version of the deleted container to restore. + :type deleted_container_version: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "undelete" + + # Construct URL + url = self.restore.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if deleted_container_name is not None: + header_parameters['x-ms-deleted-container-name'] = self._serialize.header("deleted_container_name", deleted_container_name, 'str') + if deleted_container_version is not None: + header_parameters['x-ms-deleted-container-version'] = self._serialize.header("deleted_container_version", deleted_container_version, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + restore.metadata = {'url': '/{containerName}'} + + def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param duration: Specifies the duration of the lease, in seconds, or + negative one (-1) for a lease that never expires. A non-infinite lease + can be between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. + :type duration: int + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "acquire" + + # Construct URL + url = self.acquire_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if duration is not None: + header_parameters['x-ms-lease-duration'] = self._serialize.header("duration", duration, 'int') + if proposed_lease_id is not None: + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + acquire_lease.metadata = {'url': '/{containerName}'} + + def release_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "release" + + # Construct URL + url = self.release_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + release_lease.metadata = {'url': '/{containerName}'} + + def renew_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "renew" + + # Construct URL + url = self.renew_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + renew_lease.metadata = {'url': '/{containerName}'} + + def break_lease(self, timeout=None, break_period=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param break_period: For a break operation, proposed duration the + lease should continue before it is broken, in seconds, between 0 and + 60. This break period is only used if it is shorter than the time + remaining on the lease. If longer, the time remaining on the lease is + used. A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break period. + If this header does not appear with a break operation, a + fixed-duration lease breaks after the remaining lease period elapses, + and an infinite lease breaks immediately. + :type break_period: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "break" + + # Construct URL + url = self.break_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if break_period is not None: + header_parameters['x-ms-lease-break-period'] = self._serialize.header("break_period", break_period, 'int') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-time': self._deserialize('int', response.headers.get('x-ms-lease-time')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + break_lease.metadata = {'url': '/{containerName}'} + + def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "change" + + # Construct URL + url = self.change_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + change_lease.metadata = {'url': '/{containerName}'} + + def list_blob_flat_segment(self, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, cls=None, **kwargs): + """[Update] The List Blobs operation returns a list of the blobs under the + specified container. + + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify one or more datasets + to include in the response. + :type include: list[str or + ~azure.storage.blob.models.ListBlobsIncludeItem] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListBlobsFlatSegmentResponse or the result of cls(response) + :rtype: ~azure.storage.blob.models.ListBlobsFlatSegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "list" + + # Construct URL + url = self.list_blob_flat_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListBlobsIncludeItem]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListBlobsFlatSegmentResponse', response) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_blob_flat_segment.metadata = {'url': '/{containerName}'} + + def list_blob_hierarchy_segment(self, delimiter, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, cls=None, **kwargs): + """[Update] The List Blobs operation returns a list of the blobs under the + specified container. + + :param delimiter: When the request includes this parameter, the + operation returns a BlobPrefix element in the response body that acts + as a placeholder for all blobs whose names begin with the same + substring up to the appearance of the delimiter character. The + delimiter may be a single character or a string. + :type delimiter: str + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify one or more datasets + to include in the response. + :type include: list[str or + ~azure.storage.blob.models.ListBlobsIncludeItem] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListBlobsHierarchySegmentResponse or the result of + cls(response) + :rtype: ~azure.storage.blob.models.ListBlobsHierarchySegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "list" + + # Construct URL + url = self.list_blob_hierarchy_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + query_parameters['delimiter'] = self._serialize.query("delimiter", delimiter, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListBlobsIncludeItem]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListBlobsHierarchySegmentResponse', response) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_blob_hierarchy_segment.metadata = {'url': '/{containerName}'} + + def get_account_info(self, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "account" + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/{containerName}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_directory_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_directory_operations.py new file mode 100644 index 00000000000..c2bf3178b97 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_directory_operations.py @@ -0,0 +1,739 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class DirectoryOperations(object): + """DirectoryOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar resource: . Constant value: "directory". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.resource = "directory" + + def create(self, timeout=None, directory_properties=None, posix_permissions=None, posix_umask=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Create a directory. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['resource'] = self._serialize.query("self.resource", self.resource, 'str') + + # Construct headers + header_parameters = {} + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{filesystem}/{path}'} + + def rename(self, rename_source, timeout=None, marker=None, path_rename_mode=None, directory_properties=None, posix_permissions=None, posix_umask=None, source_lease_id=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, cls=None, **kwargs): + """Rename a directory. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param rename_source: The file or directory to be renamed. The value + must have the following format: "/{filesysystem}/{path}". If + "x-ms-properties" is specified, the properties will overwrite the + existing properties; otherwise, the existing properties will be + preserved. + :type rename_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param marker: When renaming a directory, the number of paths that are + renamed with each invocation is limited. If the number of paths to be + renamed exceeds this limit, a continuation token is returned in this + response header. When a continuation token is returned in the + response, it must be specified in a subsequent invocation of the + rename operation to continue renaming the directory. + :type marker: str + :param path_rename_mode: Determines the behavior of the rename + operation. Possible values include: 'legacy', 'posix' + :type path_rename_mode: str or + ~azure.storage.blob.models.PathRenameMode + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param source_lease_id: A lease ID for the source path. If specified, + the source path must have an active lease and the lease ID must match. + :type source_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + # Construct URL + url = self.rename.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if marker is not None: + query_parameters['continuation'] = self._serialize.query("marker", marker, 'str') + if path_rename_mode is not None: + query_parameters['mode'] = self._serialize.query("path_rename_mode", path_rename_mode, 'PathRenameMode') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-rename-source'] = self._serialize.header("rename_source", rename_source, 'str') + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + if source_lease_id is not None: + header_parameters['x-ms-source-lease-id'] = self._serialize.header("source_lease_id", source_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-continuation': self._deserialize('str', response.headers.get('x-ms-continuation')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + rename.metadata = {'url': '/{filesystem}/{path}'} + + def delete(self, recursive_directory_delete, timeout=None, marker=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Deletes the directory. + + :param recursive_directory_delete: If "true", all paths beneath the + directory will be deleted. If "false" and the directory is non-empty, + an error occurs. + :type recursive_directory_delete: bool + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param marker: When renaming a directory, the number of paths that are + renamed with each invocation is limited. If the number of paths to be + renamed exceeds this limit, a continuation token is returned in this + response header. When a continuation token is returned in the + response, it must be specified in a subsequent invocation of the + rename operation to continue renaming the directory. + :type marker: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['recursive'] = self._serialize.query("recursive_directory_delete", recursive_directory_delete, 'bool') + if marker is not None: + query_parameters['continuation'] = self._serialize.query("marker", marker, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-continuation': self._deserialize('str', response.headers.get('x-ms-continuation')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{filesystem}/{path}'} + + def set_access_control(self, timeout=None, owner=None, group=None, posix_permissions=None, posix_acl=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Set the owner, group, permissions, or access control list for a + directory. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param owner: Optional. The owner of the blob or directory. + :type owner: str + :param group: Optional. The owning group of the blob or directory. + :type group: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_acl: Sets POSIX access control rights on files and + directories. The value is a comma-separated list of access control + entries. Each access control entry (ACE) consists of a scope, a type, + a user or group identifier, and permissions in the format + "[scope:][type]:[id]:[permissions]". + :type posix_acl: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "setAccessControl" + + # Construct URL + url = self.set_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if owner is not None: + header_parameters['x-ms-owner'] = self._serialize.header("owner", owner, 'str') + if group is not None: + header_parameters['x-ms-group'] = self._serialize.header("group", group, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_acl is not None: + header_parameters['x-ms-acl'] = self._serialize.header("posix_acl", posix_acl, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + set_access_control.metadata = {'url': '/{filesystem}/{path}'} + + def get_access_control(self, timeout=None, upn=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Get the owner, group, permissions, or access control list for a + directory. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param upn: Optional. Valid only when Hierarchical Namespace is + enabled for the account. If "true", the identity values returned in + the x-ms-owner, x-ms-group, and x-ms-acl response headers will be + transformed from Azure Active Directory Object IDs to User Principal + Names. If "false", the values will be returned as Azure Active + Directory Object IDs. The default value is false. + :type upn: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "getAccessControl" + + # Construct URL + url = self.get_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if upn is not None: + query_parameters['upn'] = self._serialize.query("upn", upn, 'bool') + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-owner': self._deserialize('str', response.headers.get('x-ms-owner')), + 'x-ms-group': self._deserialize('str', response.headers.get('x-ms-group')), + 'x-ms-permissions': self._deserialize('str', response.headers.get('x-ms-permissions')), + 'x-ms-acl': self._deserialize('str', response.headers.get('x-ms-acl')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + get_access_control.metadata = {'url': '/{filesystem}/{path}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_page_blob_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_page_blob_operations.py new file mode 100644 index 00000000000..fedc96c2151 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_page_blob_operations.py @@ -0,0 +1,1399 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class PageBlobOperations(object): + """PageBlobOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "PageBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "PageBlob" + + def create(self, content_length, blob_content_length, timeout=None, tier=None, metadata=None, blob_sequence_number=0, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Create operation creates a new page blob. + + :param content_length: The length of the request. + :type content_length: long + :param blob_content_length: This header specifies the maximum size for + the page blob, up to 1 TB. The page blob size must be aligned to a + 512-byte boundary. + :type blob_content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param tier: Optional. Indicates the tier to be set on the page blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80' + :type tier: str or + ~azure.storage.blob.models.PremiumPageBlobAccessTier + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param blob_sequence_number: Set for page blobs only. The sequence + number is a user-controlled value that you can use to track requests. + The value of the sequence number must be between 0 and 2^63 - 1. + :type blob_sequence_number: long + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-blob-content-length'] = self._serialize.header("blob_content_length", blob_content_length, 'long') + if blob_sequence_number is not None: + header_parameters['x-ms-blob-sequence-number'] = self._serialize.header("blob_sequence_number", blob_sequence_number, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}/{blob}'} + + def upload_pages(self, body, content_length, transactional_content_md5=None, transactional_content_crc64=None, timeout=None, range=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, sequence_number_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Upload Pages operation writes a range of pages to a page blob. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "page" + page_write = "update" + + # Construct URL + url = self.upload_pages.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload_pages.metadata = {'url': '/{containerName}/{blob}'} + + def clear_pages(self, content_length, timeout=None, range=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, sequence_number_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Clear Pages operation clears a set of pages from a page blob. + + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "page" + page_write = "clear" + + # Construct URL + url = self.clear_pages.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + clear_pages.metadata = {'url': '/{containerName}/{blob}'} + + def upload_pages_from_url(self, source_url, source_range, content_length, range, source_content_md5=None, source_contentcrc64=None, timeout=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, sequence_number_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, cls=None, **kwargs): + """The Upload Pages operation writes a range of pages to a page blob where + the contents are read from a URL. + + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param source_range: Bytes of source data in the specified range. The + length of this range should match the ContentLength header and + x-ms-range/Range destination range header. + :type source_range: str + :param content_length: The length of the request. + :type content_length: long + :param range: The range of bytes to which the source range would be + written. The range should be 512 aligned and range-end is required. + :type range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "page" + page_write = "update" + + # Construct URL + url = self.upload_pages_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload_pages_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def get_page_ranges(self, snapshot=None, timeout=None, range=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Get Page Ranges operation returns the list of valid page ranges for + a page blob or snapshot of a page blob. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: PageList or the result of cls(response) + :rtype: ~azure.storage.blob.models.PageList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "pagelist" + + # Construct URL + url = self.get_page_ranges.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PageList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_page_ranges.metadata = {'url': '/{containerName}/{blob}'} + + def get_page_ranges_diff(self, snapshot=None, timeout=None, prevsnapshot=None, prev_snapshot_url=None, range=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Get Page Ranges Diff operation returns the list of valid page + ranges for a page blob that were changed between target blob and + previous snapshot. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param prevsnapshot: Optional in version 2015-07-08 and newer. The + prevsnapshot parameter is a DateTime value that specifies that the + response will contain only pages that were changed between target blob + and previous snapshot. Changed pages include both updated and cleared + pages. The target blob may be a snapshot, as long as the snapshot + specified by prevsnapshot is the older of the two. Note that + incremental snapshots are currently supported only for blobs created + on or after January 1, 2016. + :type prevsnapshot: str + :param prev_snapshot_url: Optional. This header is only supported in + service versions 2019-04-19 and after and specifies the URL of a + previous snapshot of the target blob. The response will only contain + pages that were changed between the target blob and its previous + snapshot. + :type prev_snapshot_url: str + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: PageList or the result of cls(response) + :rtype: ~azure.storage.blob.models.PageList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "pagelist" + + # Construct URL + url = self.get_page_ranges_diff.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if prevsnapshot is not None: + query_parameters['prevsnapshot'] = self._serialize.query("prevsnapshot", prevsnapshot, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if prev_snapshot_url is not None: + header_parameters['x-ms-previous-snapshot-url'] = self._serialize.header("prev_snapshot_url", prev_snapshot_url, 'str') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PageList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_page_ranges_diff.metadata = {'url': '/{containerName}/{blob}'} + + def resize(self, blob_content_length, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """Resize the Blob. + + :param blob_content_length: This header specifies the maximum size for + the page blob, up to 1 TB. The page blob size must be aligned to a + 512-byte boundary. + :type blob_content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.resize.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-blob-content-length'] = self._serialize.header("blob_content_length", blob_content_length, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + resize.metadata = {'url': '/{containerName}/{blob}'} + + def update_sequence_number(self, sequence_number_action, timeout=None, blob_sequence_number=0, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Update the sequence number of the blob. + + :param sequence_number_action: Required if the + x-ms-blob-sequence-number header is set for the request. This property + applies to page blobs only. This property indicates how the service + should modify the blob's sequence number. Possible values include: + 'max', 'update', 'increment' + :type sequence_number_action: str or + ~azure.storage.blob.models.SequenceNumberActionType + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param blob_sequence_number: Set for page blobs only. The sequence + number is a user-controlled value that you can use to track requests. + The value of the sequence number must be between 0 and 2^63 - 1. + :type blob_sequence_number: long + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.update_sequence_number.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-sequence-number-action'] = self._serialize.header("sequence_number_action", sequence_number_action, 'SequenceNumberActionType') + if blob_sequence_number is not None: + header_parameters['x-ms-blob-sequence-number'] = self._serialize.header("blob_sequence_number", blob_sequence_number, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + update_sequence_number.metadata = {'url': '/{containerName}/{blob}'} + + def copy_incremental(self, copy_source, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """The Copy Incremental operation copies a snapshot of the source page + blob to a destination page blob. The snapshot is copied such that only + the differential changes between the previously copied snapshot are + transferred to the destination. The copied snapshots are complete + copies of the original snapshot and can be read or copied from as + usual. This API is supported since REST version 2016-05-31. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "incrementalcopy" + + # Construct URL + url = self.copy_incremental.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + copy_incremental.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_service_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_service_operations.py new file mode 100644 index 00000000000..0a49915e1dd --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/operations/_service_operations.py @@ -0,0 +1,663 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class ServiceOperations(object): + """ServiceOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + + def set_properties(self, storage_service_properties, timeout=None, request_id=None, cls=None, **kwargs): + """Sets properties for a storage account's Blob service endpoint, + including properties for Storage Analytics and CORS (Cross-Origin + Resource Sharing) rules. + + :param storage_service_properties: The StorageService properties. + :type storage_service_properties: + ~azure.storage.blob.models.StorageServiceProperties + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "properties" + + # Construct URL + url = self.set_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + body_content = self._serialize.body(storage_service_properties, 'StorageServiceProperties') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_properties.metadata = {'url': '/'} + + def get_properties(self, timeout=None, request_id=None, cls=None, **kwargs): + """gets the properties of a storage account's Blob service, including + properties for Storage Analytics and CORS (Cross-Origin Resource + Sharing) rules. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: StorageServiceProperties or the result of cls(response) + :rtype: ~azure.storage.blob.models.StorageServiceProperties + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "properties" + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageServiceProperties', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_properties.metadata = {'url': '/'} + + def get_statistics(self, timeout=None, request_id=None, cls=None, **kwargs): + """Retrieves statistics related to replication for the Blob service. It is + only available on the secondary location endpoint when read-access + geo-redundant replication is enabled for the storage account. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: StorageServiceStats or the result of cls(response) + :rtype: ~azure.storage.blob.models.StorageServiceStats + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "stats" + + # Construct URL + url = self.get_statistics.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageServiceStats', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_statistics.metadata = {'url': '/'} + + def list_containers_segment(self, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, cls=None, **kwargs): + """The List Containers Segment operation returns a list of the containers + under the specified account. + + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify that the container's + metadata be returned as part of the response body. + :type include: list[str or + ~azure.storage.blob.models.ListContainersIncludeType] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListContainersSegmentResponse or the result of cls(response) + :rtype: ~azure.storage.blob.models.ListContainersSegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "list" + + # Construct URL + url = self.list_containers_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListContainersIncludeType]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListContainersSegmentResponse', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_containers_segment.metadata = {'url': '/'} + + def get_user_delegation_key(self, key_info, timeout=None, request_id=None, cls=None, **kwargs): + """Retrieves a user delegation key for the Blob service. This is only a + valid operation when using bearer token authentication. + + :param key_info: + :type key_info: ~azure.storage.blob.models.KeyInfo + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: UserDelegationKey or the result of cls(response) + :rtype: ~azure.storage.blob.models.UserDelegationKey + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "userdelegationkey" + + # Construct URL + url = self.get_user_delegation_key.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + body_content = self._serialize.body(key_info, 'KeyInfo') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('UserDelegationKey', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_user_delegation_key.metadata = {'url': '/'} + + def get_account_info(self, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "account" + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/'} + + def submit_batch(self, body, content_length, multipart_content_type, timeout=None, request_id=None, cls=None, **kwargs): + """The Batch operation allows multiple API calls to be embedded into a + single HTTP request. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param multipart_content_type: Required. The value of this header must + be multipart/mixed with a batch boundary. Example header value: + multipart/mixed; boundary=batch_ + :type multipart_content_type: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "batch" + + # Construct URL + url = self.submit_batch.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['Content-Type'] = self._serialize.header("multipart_content_type", multipart_content_type, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + submit_batch.metadata = {'url': '/'} + + def filter_blobs(self, timeout=None, request_id=None, where=None, marker=None, maxresults=None, cls=None, **kwargs): + """The Filter Blobs operation enables callers to list blobs across all + containers whose tags match a given search expression. Filter blobs + searches across all containers within a storage account but can be + scoped within the expression to a single container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param where: Filters the results to return only to return only blobs + whose tags match the specified expression. + :type where: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param callable cls: A custom type or function that will be passed the + direct response + :return: FilterBlobSegment or the result of cls(response) + :rtype: ~azure.storage.blob.models.FilterBlobSegment + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "blobs" + + # Construct URL + url = self.filter_blobs.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if where is not None: + query_parameters['where'] = self._serialize.query("where", where, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('FilterBlobSegment', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + filter_blobs.metadata = {'url': '/'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/version.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/version.py new file mode 100644 index 00000000000..be045899fa0 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_generated/version.py @@ -0,0 +1,13 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +VERSION = "2019-12-12" + diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_lease.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_lease.py new file mode 100644 index 00000000000..7d384233c22 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_lease.py @@ -0,0 +1,341 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import uuid + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, IO, Iterable, AnyStr, Dict, List, Tuple, + TypeVar, TYPE_CHECKING +) + +from azure.core.tracing.decorator import distributed_trace + +from ._shared.response_handlers import return_response_headers, process_storage_error +from ._generated.models import StorageErrorException, LeaseAccessConditions +from ._serialize import get_modify_conditions + +if TYPE_CHECKING: + from datetime import datetime + from ._generated.operations import BlobOperations, ContainerOperations + BlobClient = TypeVar("BlobClient") + ContainerClient = TypeVar("ContainerClient") + + +def get_access_conditions(lease): + # type: (Optional[Union[BlobLeaseClient, str]]) -> Union[LeaseAccessConditions, None] + try: + lease_id = lease.id # type: ignore + except AttributeError: + lease_id = lease # type: ignore + return LeaseAccessConditions(lease_id=lease_id) if lease_id else None + + +class BlobLeaseClient(object): + """Creates a new BlobLeaseClient. + + This client provides lease operations on a BlobClient or ContainerClient. + + :ivar str id: + The ID of the lease currently being maintained. This will be `None` if no + lease has yet been acquired. + :ivar str etag: + The ETag of the lease currently being maintained. This will be `None` if no + lease has yet been acquired or modified. + :ivar ~datetime.datetime last_modified: + The last modified timestamp of the lease currently being maintained. + This will be `None` if no lease has yet been acquired or modified. + + :param client: + The client of the blob or container to lease. + :type client: ~azure.storage.blob.BlobClient or + ~azure.storage.blob.ContainerClient + :param str lease_id: + A string representing the lease ID of an existing lease. This value does not + need to be specified in order to acquire a new lease, or break one. + """ + def __init__( + self, client, lease_id=None + ): # pylint: disable=missing-client-constructor-parameter-credential,missing-client-constructor-parameter-kwargs + # type: (Union[BlobClient, ContainerClient], Optional[str]) -> None + self.id = lease_id or str(uuid.uuid4()) + self.last_modified = None + self.etag = None + if hasattr(client, 'blob_name'): + self._client = client._client.blob # type: ignore # pylint: disable=protected-access + elif hasattr(client, 'container_name'): + self._client = client._client.container # type: ignore # pylint: disable=protected-access + else: + raise TypeError("Lease must use either BlobClient or ContainerClient.") + + def __enter__(self): + return self + + def __exit__(self, *args): + self.release() + + @distributed_trace + def acquire(self, lease_duration=-1, **kwargs): + # type: (int, **Any) -> None + """Requests a new lease. + + If the container does not have an active lease, the Blob service creates a + lease on the container and returns a new lease ID. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = self._client.acquire_lease( + timeout=kwargs.pop('timeout', None), + duration=lease_duration, + proposed_lease_id=self.id, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + self.etag = response.get('etag') # type: str + + @distributed_trace + def renew(self, **kwargs): + # type: (Any) -> None + """Renews the lease. + + The lease can be renewed if the lease ID specified in the + lease client matches that associated with the container or blob. Note that + the lease may be renewed even if it has expired as long as the container + or blob has not been leased again since the expiration of that lease. When you + renew a lease, the lease duration clock resets. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = self._client.renew_lease( + lease_id=self.id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace + def release(self, **kwargs): + # type: (Any) -> None + """Release the lease. + + The lease may be released if the client lease id specified matches + that associated with the container or blob. Releasing the lease allows another client + to immediately acquire the lease for the container or blob as soon as the release is complete. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = self._client.release_lease( + lease_id=self.id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace + def change(self, proposed_lease_id, **kwargs): + # type: (str, Any) -> None + """Change the lease ID of an active lease. + + :param str proposed_lease_id: + Proposed lease ID, in a GUID string format. The Blob service returns 400 + (Invalid request) if the proposed lease ID is not in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = self._client.change_lease( + lease_id=self.id, + proposed_lease_id=proposed_lease_id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace + def break_lease(self, lease_break_period=None, **kwargs): + # type: (Optional[int], Any) -> int + """Break the lease, if the container or blob has an active lease. + + Once a lease is broken, it cannot be renewed. Any authorized request can break the lease; + the request is not required to specify a matching lease ID. When a lease + is broken, the lease break period is allowed to elapse, during which time + no lease operation except break and release can be performed on the container or blob. + When a lease is successfully broken, the response indicates the interval + in seconds until a new lease can be acquired. + + :param int lease_break_period: + This is the proposed duration of seconds that the lease + should continue before it is broken, between 0 and 60 seconds. This + break period is only used if it is shorter than the time remaining + on the lease. If longer, the time remaining on the lease is used. + A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break + period. If this header does not appear with a break + operation, a fixed-duration lease breaks after the remaining lease + period elapses, and an infinite lease breaks immediately. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: Approximate time remaining in the lease period, in seconds. + :rtype: int + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = self._client.break_lease( + timeout=kwargs.pop('timeout', None), + break_period=lease_break_period, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return response.get('lease_time') # type: ignore diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_list_blobs_helper.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_list_blobs_helper.py new file mode 100644 index 00000000000..f1dd70f992c --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_list_blobs_helper.py @@ -0,0 +1,166 @@ +# pylint: disable=too-many-lines +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from azure.core.paging import PageIterator, ItemPaged +from ._deserialize import get_blob_properties_from_generated_code +from ._generated.models import StorageErrorException, BlobItemInternal, BlobPrefix as GenBlobPrefix +from ._models import BlobProperties +from ._shared.models import DictMixin +from ._shared.response_handlers import return_context_and_deserialized, process_storage_error + + +class BlobPropertiesPaged(PageIterator): + """An Iterable of Blob properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str continuation_token: The continuation token to retrieve the next page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.BlobProperties) + :ivar str container: The container that the blobs are listed from. + :ivar str delimiter: A delimiting character used for hierarchy listing. + + :param callable command: Function to retrieve the next page of items. + :param str container: The name of the container. + :param str prefix: Filters the results to return only blobs whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str continuation_token: An opaque continuation token. + :param str delimiter: + Used to capture blobs whose names begin with the same substring up to + the appearance of the delimiter character. The delimiter may be a single + character or a string. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__( + self, command, + container=None, + prefix=None, + results_per_page=None, + continuation_token=None, + delimiter=None, + location_mode=None): + super(BlobPropertiesPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.prefix = prefix + self.marker = None + self.results_per_page = results_per_page + self.container = container + self.delimiter = delimiter + self.current_page = None + self.location_mode = location_mode + + def _get_next_cb(self, continuation_token): + try: + return self._command( + prefix=self.prefix, + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.prefix = self._response.prefix + self.marker = self._response.marker + self.results_per_page = self._response.max_results + self.container = self._response.container_name + self.current_page = [self._build_item(item) for item in self._response.segment.blob_items] + + return self._response.next_marker or None, self.current_page + + def _build_item(self, item): + if isinstance(item, BlobProperties): + return item + if isinstance(item, BlobItemInternal): + blob = get_blob_properties_from_generated_code(item) # pylint: disable=protected-access + blob.container = self.container + return blob + return item + + +class BlobPrefixPaged(BlobPropertiesPaged): + def __init__(self, *args, **kwargs): + super(BlobPrefixPaged, self).__init__(*args, **kwargs) + self.name = self.prefix + + def _extract_data_cb(self, get_next_return): + continuation_token, _ = super(BlobPrefixPaged, self)._extract_data_cb(get_next_return) + self.current_page = self._response.segment.blob_prefixes + self._response.segment.blob_items + self.current_page = [self._build_item(item) for item in self.current_page] + self.delimiter = self._response.delimiter + + return continuation_token, self.current_page + + def _build_item(self, item): + item = super(BlobPrefixPaged, self)._build_item(item) + if isinstance(item, GenBlobPrefix): + return BlobPrefix( + self._command, + container=self.container, + prefix=item.name, + results_per_page=self.results_per_page, + location_mode=self.location_mode) + return item + + +class BlobPrefix(ItemPaged, DictMixin): + """An Iterable of Blob properties. + + Returned from walk_blobs when a delimiter is used. + Can be thought of as a virtual blob directory. + + :ivar str name: The prefix, or "directory name" of the blob. + :ivar str service_endpoint: The service URL. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str next_marker: The continuation token to retrieve the next page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.BlobProperties) + :ivar str container: The container that the blobs are listed from. + :ivar str delimiter: A delimiting character used for hierarchy listing. + + :param callable command: Function to retrieve the next page of items. + :param str prefix: Filters the results to return only blobs whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str marker: An opaque continuation token. + :param str delimiter: + Used to capture blobs whose names begin with the same substring up to + the appearance of the delimiter character. The delimiter may be a single + character or a string. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__(self, *args, **kwargs): + super(BlobPrefix, self).__init__(*args, page_iterator_class=BlobPrefixPaged, **kwargs) + self.name = kwargs.get('prefix') + self.prefix = kwargs.get('prefix') + self.results_per_page = kwargs.get('results_per_page') + self.container = kwargs.get('container') + self.delimiter = kwargs.get('delimiter') + self.location_mode = kwargs.get('location_mode') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_models.py new file mode 100644 index 00000000000..79ffd117c7e --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_models.py @@ -0,0 +1,1143 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-few-public-methods, too-many-instance-attributes +# pylint: disable=super-init-not-called, too-many-lines + +from enum import Enum + +from azure.core.paging import PageIterator +from ._generated.models import FilterBlobItem + +from ._shared import decode_base64_to_text +from ._shared.response_handlers import return_context_and_deserialized, process_storage_error +from ._shared.models import DictMixin, get_enum_value +from ._generated.models import Logging as GeneratedLogging +from ._generated.models import Metrics as GeneratedMetrics +from ._generated.models import RetentionPolicy as GeneratedRetentionPolicy +from ._generated.models import StaticWebsite as GeneratedStaticWebsite +from ._generated.models import CorsRule as GeneratedCorsRule +from ._generated.models import AccessPolicy as GenAccessPolicy +from ._generated.models import StorageErrorException + + +class BlobType(str, Enum): + + BlockBlob = "BlockBlob" + PageBlob = "PageBlob" + AppendBlob = "AppendBlob" + + +class BlockState(str, Enum): + """Block blob block types.""" + + Committed = 'Committed' #: Committed blocks. + Latest = 'Latest' #: Latest blocks. + Uncommitted = 'Uncommitted' #: Uncommitted blocks. + + +class StandardBlobTier(str, Enum): + """ + Specifies the blob tier to set the blob to. This is only applicable for + block blobs on standard storage accounts. + """ + + Archive = 'Archive' #: Archive + Cool = 'Cool' #: Cool + Hot = 'Hot' #: Hot + + +class PremiumPageBlobTier(str, Enum): + """ + Specifies the page blob tier to set the blob to. This is only applicable to page + blobs on premium storage accounts. Please take a look at: + https://docs.microsoft.com/en-us/azure/storage/storage-premium-storage#scalability-and-performance-targets + for detailed information on the corresponding IOPS and throughput per PageBlobTier. + """ + + P4 = 'P4' #: P4 Tier + P6 = 'P6' #: P6 Tier + P10 = 'P10' #: P10 Tier + P20 = 'P20' #: P20 Tier + P30 = 'P30' #: P30 Tier + P40 = 'P40' #: P40 Tier + P50 = 'P50' #: P50 Tier + P60 = 'P60' #: P60 Tier + + +class SequenceNumberAction(str, Enum): + """Sequence number actions.""" + + Increment = 'increment' + """ + Increments the value of the sequence number by 1. If specifying this option, + do not include the x-ms-blob-sequence-number header. + """ + + Max = 'max' + """ + Sets the sequence number to be the higher of the value included with the + request and the value currently stored for the blob. + """ + + Update = 'update' + """Sets the sequence number to the value included with the request.""" + + +class PublicAccess(str, Enum): + """ + Specifies whether data in the container may be accessed publicly and the level of access. + """ + + OFF = 'off' + """ + Specifies that there is no public read access for both the container and blobs within the container. + Clients cannot enumerate the containers within the storage account as well as the blobs within the container. + """ + + Blob = 'blob' + """ + Specifies public read access for blobs. Blob data within this container can be read + via anonymous request, but container data is not available. Clients cannot enumerate + blobs within the container via anonymous request. + """ + + Container = 'container' + """ + Specifies full public read access for container and blob data. Clients can enumerate + blobs within the container via anonymous request, but cannot enumerate containers + within the storage account. + """ + + +class BlobAnalyticsLogging(GeneratedLogging): + """Azure Analytics Logging settings. + + :keyword str version: + The version of Storage Analytics to configure. The default value is 1.0. + :keyword bool delete: + Indicates whether all delete requests should be logged. The default value is `False`. + :keyword bool read: + Indicates whether all read requests should be logged. The default value is `False`. + :keyword bool write: + Indicates whether all write requests should be logged. The default value is `False`. + :keyword ~azure.storage.blob.RetentionPolicy retention_policy: + Determines how long the associated data should persist. If not specified the retention + policy will be disabled by default. + """ + + def __init__(self, **kwargs): + self.version = kwargs.get('version', u'1.0') + self.delete = kwargs.get('delete', False) + self.read = kwargs.get('read', False) + self.write = kwargs.get('write', False) + self.retention_policy = kwargs.get('retention_policy') or RetentionPolicy() + + @classmethod + def _from_generated(cls, generated): + if not generated: + return cls() + return cls( + version=generated.version, + delete=generated.delete, + read=generated.read, + write=generated.write, + retention_policy=RetentionPolicy._from_generated(generated.retention_policy) # pylint: disable=protected-access + ) + + +class Metrics(GeneratedMetrics): + """A summary of request statistics grouped by API in hour or minute aggregates + for blobs. + + :keyword str version: + The version of Storage Analytics to configure. The default value is 1.0. + :keyword bool enabled: + Indicates whether metrics are enabled for the Blob service. + The default value is `False`. + :keyword bool include_apis: + Indicates whether metrics should generate summary statistics for called API operations. + :keyword ~azure.storage.blob.RetentionPolicy retention_policy: + Determines how long the associated data should persist. If not specified the retention + policy will be disabled by default. + """ + + def __init__(self, **kwargs): + self.version = kwargs.get('version', u'1.0') + self.enabled = kwargs.get('enabled', False) + self.include_apis = kwargs.get('include_apis') + self.retention_policy = kwargs.get('retention_policy') or RetentionPolicy() + + @classmethod + def _from_generated(cls, generated): + if not generated: + return cls() + return cls( + version=generated.version, + enabled=generated.enabled, + include_apis=generated.include_apis, + retention_policy=RetentionPolicy._from_generated(generated.retention_policy) # pylint: disable=protected-access + ) + + +class RetentionPolicy(GeneratedRetentionPolicy): + """The retention policy which determines how long the associated data should + persist. + + :param bool enabled: + Indicates whether a retention policy is enabled for the storage service. + The default value is False. + :param int days: + Indicates the number of days that metrics or logging or + soft-deleted data should be retained. All data older than this value will + be deleted. If enabled=True, the number of days must be specified. + """ + + def __init__(self, enabled=False, days=None): + self.enabled = enabled + self.days = days + if self.enabled and (self.days is None): + raise ValueError("If policy is enabled, 'days' must be specified.") + + @classmethod + def _from_generated(cls, generated): + if not generated: + return cls() + return cls( + enabled=generated.enabled, + days=generated.days, + ) + + +class StaticWebsite(GeneratedStaticWebsite): + """The properties that enable an account to host a static website. + + :keyword bool enabled: + Indicates whether this account is hosting a static website. + The default value is `False`. + :keyword str index_document: + The default name of the index page under each directory. + :keyword str error_document404_path: + The absolute path of the custom 404 page. + :keyword str default_index_document_path: + Absolute path of the default index page. + """ + + def __init__(self, **kwargs): + self.enabled = kwargs.get('enabled', False) + if self.enabled: + self.index_document = kwargs.get('index_document') + self.error_document404_path = kwargs.get('error_document404_path') + self.default_index_document_path = kwargs.get('default_index_document_path') + else: + self.index_document = None + self.error_document404_path = None + self.default_index_document_path = None + + @classmethod + def _from_generated(cls, generated): + if not generated: + return cls() + return cls( + enabled=generated.enabled, + index_document=generated.index_document, + error_document404_path=generated.error_document404_path, + default_index_document_path=generated.default_index_document_path + ) + + +class CorsRule(GeneratedCorsRule): + """CORS is an HTTP feature that enables a web application running under one + domain to access resources in another domain. Web browsers implement a + security restriction known as same-origin policy that prevents a web page + from calling APIs in a different domain; CORS provides a secure way to + allow one domain (the origin domain) to call APIs in another domain. + + :param list(str) allowed_origins: + A list of origin domains that will be allowed via CORS, or "*" to allow + all domains. The list of must contain at least one entry. Limited to 64 + origin domains. Each allowed origin can have up to 256 characters. + :param list(str) allowed_methods: + A list of HTTP methods that are allowed to be executed by the origin. + The list of must contain at least one entry. For Azure Storage, + permitted methods are DELETE, GET, HEAD, MERGE, POST, OPTIONS or PUT. + :keyword list(str) allowed_headers: + Defaults to an empty list. A list of headers allowed to be part of + the cross-origin request. Limited to 64 defined headers and 2 prefixed + headers. Each header can be up to 256 characters. + :keyword list(str) exposed_headers: + Defaults to an empty list. A list of response headers to expose to CORS + clients. Limited to 64 defined headers and two prefixed headers. Each + header can be up to 256 characters. + :keyword int max_age_in_seconds: + The number of seconds that the client/browser should cache a + preflight response. + """ + + def __init__(self, allowed_origins, allowed_methods, **kwargs): + self.allowed_origins = ','.join(allowed_origins) + self.allowed_methods = ','.join(allowed_methods) + self.allowed_headers = ','.join(kwargs.get('allowed_headers', [])) + self.exposed_headers = ','.join(kwargs.get('exposed_headers', [])) + self.max_age_in_seconds = kwargs.get('max_age_in_seconds', 0) + + @classmethod + def _from_generated(cls, generated): + return cls( + [generated.allowed_origins], + [generated.allowed_methods], + allowed_headers=[generated.allowed_headers], + exposed_headers=[generated.exposed_headers], + max_age_in_seconds=generated.max_age_in_seconds, + ) + + +class ContainerProperties(DictMixin): + """Blob container's properties class. + + Returned ``ContainerProperties`` instances expose these values through a + dictionary interface, for example: ``container_props["last_modified"]``. + Additionally, the container name is available as ``container_props["name"]``. + + :ivar ~datetime.datetime last_modified: + A datetime object representing the last time the container was modified. + :ivar str etag: + The ETag contains a value that you can use to perform operations + conditionally. + :ivar ~azure.storage.blob.LeaseProperties lease: + Stores all the lease information for the container. + :ivar str public_access: Specifies whether data in the container may be accessed + publicly and the level of access. + :ivar bool has_immutability_policy: + Represents whether the container has an immutability policy. + :ivar bool has_legal_hold: + Represents whether the container has a legal hold. + :ivar dict metadata: A dict with name-value pairs to associate with the + container as metadata. + :ivar ~azure.storage.blob.ContainerEncryptionScope encryption_scope: + The default encryption scope configuration for the container. + """ + + def __init__(self, **kwargs): + self.name = None + self.last_modified = kwargs.get('Last-Modified') + self.etag = kwargs.get('ETag') + self.lease = LeaseProperties(**kwargs) + self.public_access = kwargs.get('x-ms-blob-public-access') + self.has_immutability_policy = kwargs.get('x-ms-has-immutability-policy') + self.deleted = None + self.version = None + self.has_legal_hold = kwargs.get('x-ms-has-legal-hold') + self.metadata = kwargs.get('metadata') + self.encryption_scope = None + default_encryption_scope = kwargs.get('x-ms-default-encryption-scope') + if default_encryption_scope: + self.encryption_scope = ContainerEncryptionScope( + default_encryption_scope=default_encryption_scope, + prevent_encryption_scope_override=kwargs.get('x-ms-deny-encryption-scope-override', False) + ) + + @classmethod + def _from_generated(cls, generated): + props = cls() + props.name = generated.name + props.last_modified = generated.properties.last_modified + props.etag = generated.properties.etag + props.lease = LeaseProperties._from_generated(generated) # pylint: disable=protected-access + props.public_access = generated.properties.public_access + props.has_immutability_policy = generated.properties.has_immutability_policy + props.deleted = generated.deleted + props.version = generated.version + props.has_legal_hold = generated.properties.has_legal_hold + props.metadata = generated.metadata + props.encryption_scope = ContainerEncryptionScope._from_generated(generated) #pylint: disable=protected-access + return props + + +class ContainerPropertiesPaged(PageIterator): + """An Iterable of Container properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A container name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str continuation_token: The continuation token to retrieve the next page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.ContainerProperties) + + :param callable command: Function to retrieve the next page of items. + :param str prefix: Filters the results to return only containers whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of container names to retrieve per + call. + :param str continuation_token: An opaque continuation token. + """ + def __init__(self, command, prefix=None, results_per_page=None, continuation_token=None): + super(ContainerPropertiesPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.prefix = prefix + self.marker = None + self.results_per_page = results_per_page + self.location_mode = None + self.current_page = [] + + def _get_next_cb(self, continuation_token): + try: + return self._command( + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.prefix = self._response.prefix + self.marker = self._response.marker + self.results_per_page = self._response.max_results + self.current_page = [self._build_item(item) for item in self._response.container_items] + + return self._response.next_marker or None, self.current_page + + @staticmethod + def _build_item(item): + return ContainerProperties._from_generated(item) # pylint: disable=protected-access + + +class BlobProperties(DictMixin): + """ + Blob Properties. + + :ivar str name: + The name of the blob. + :ivar str container: + The container in which the blob resides. + :ivar str snapshot: + Datetime value that uniquely identifies the blob snapshot. + :ivar ~azure.blob.storage.BlobType blob_type: + String indicating this blob's type. + :ivar dict metadata: + Name-value pairs associated with the blob as metadata. + :ivar ~datetime.datetime last_modified: + A datetime object representing the last time the blob was modified. + :ivar str etag: + The ETag contains a value that you can use to perform operations + conditionally. + :ivar int size: + The size of the content returned. If the entire blob was requested, + the length of blob in bytes. If a subset of the blob was requested, the + length of the returned subset. + :ivar str content_range: + Indicates the range of bytes returned in the event that the client + requested a subset of the blob. + :ivar int append_blob_committed_block_count: + (For Append Blobs) Number of committed blocks in the blob. + :ivar bool is_append_blob_sealed: + Indicate if the append blob is sealed or not. + + .. versionadded:: 12.4.0 + + :ivar int page_blob_sequence_number: + (For Page Blobs) Sequence number for page blob used for coordinating + concurrent writes. + :ivar bool server_encrypted: + Set to true if the blob is encrypted on the server. + :ivar ~azure.storage.blob.CopyProperties copy: + Stores all the copy properties for the blob. + :ivar ~azure.storage.blob.ContentSettings content_settings: + Stores all the content settings for the blob. + :ivar ~azure.storage.blob.LeaseProperties lease: + Stores all the lease information for the blob. + :ivar ~azure.storage.blob.StandardBlobTier blob_tier: + Indicates the access tier of the blob. The hot tier is optimized + for storing data that is accessed frequently. The cool storage tier + is optimized for storing data that is infrequently accessed and stored + for at least a month. The archive tier is optimized for storing + data that is rarely accessed and stored for at least six months + with flexible latency requirements. + :ivar str rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :ivar ~datetime.datetime blob_tier_change_time: + Indicates when the access tier was last changed. + :ivar bool blob_tier_inferred: + Indicates whether the access tier was inferred by the service. + If false, it indicates that the tier was set explicitly. + :ivar bool deleted: + Whether this blob was deleted. + :ivar ~datetime.datetime deleted_time: + A datetime object representing the time at which the blob was deleted. + :ivar int remaining_retention_days: + The number of days that the blob will be retained before being permanently deleted by the service. + :ivar ~datetime.datetime creation_time: + Indicates when the blob was created, in UTC. + :ivar str archive_status: + Archive status of blob. + :ivar str encryption_key_sha256: + The SHA-256 hash of the provided encryption key. + :ivar str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + :ivar bool request_server_encrypted: + Whether this blob is encrypted. + :ivar list(~azure.storage.blob.ObjectReplicationPolicy) object_replication_source_properties: + Only present for blobs that have policy ids and rule ids applied to them. + + .. versionadded:: 12.4.0 + + :ivar str object_replication_destination_policy: + Represents the Object Replication Policy Id that created this blob. + + .. versionadded:: 12.4.0 + + :ivar int tag_count: + Tags count on this blob. + + .. versionadded:: 12.4.0 + + :ivar dict(str, str) tags: + Key value pair of tags on this blob. + + .. versionadded:: 12.4.0 + + """ + + def __init__(self, **kwargs): + self.name = kwargs.get('name') + self.container = None + self.snapshot = kwargs.get('x-ms-snapshot') + self.version_id = kwargs.get('x-ms-version-id') + self.is_current_version = kwargs.get('x-ms-is-current-version') + self.blob_type = BlobType(kwargs['x-ms-blob-type']) if kwargs.get('x-ms-blob-type') else None + self.metadata = kwargs.get('metadata') + self.encrypted_metadata = kwargs.get('encrypted_metadata') + self.last_modified = kwargs.get('Last-Modified') + self.etag = kwargs.get('ETag') + self.size = kwargs.get('Content-Length') + self.content_range = kwargs.get('Content-Range') + self.append_blob_committed_block_count = kwargs.get('x-ms-blob-committed-block-count') + self.is_append_blob_sealed = kwargs.get('x-ms-blob-sealed') + self.page_blob_sequence_number = kwargs.get('x-ms-blob-sequence-number') + self.server_encrypted = kwargs.get('x-ms-server-encrypted') + self.copy = CopyProperties(**kwargs) + self.content_settings = ContentSettings(**kwargs) + self.lease = LeaseProperties(**kwargs) + self.blob_tier = kwargs.get('x-ms-access-tier') + self.rehydrate_priority = kwargs.get('x-ms-rehydrate-priority') + self.blob_tier_change_time = kwargs.get('x-ms-access-tier-change-time') + self.blob_tier_inferred = kwargs.get('x-ms-access-tier-inferred') + self.deleted = False + self.deleted_time = None + self.remaining_retention_days = None + self.creation_time = kwargs.get('x-ms-creation-time') + self.archive_status = kwargs.get('x-ms-archive-status') + self.encryption_key_sha256 = kwargs.get('x-ms-encryption-key-sha256') + self.encryption_scope = kwargs.get('x-ms-encryption-scope') + self.request_server_encrypted = kwargs.get('x-ms-server-encrypted') + self.object_replication_source_properties = kwargs.get('object_replication_source_properties') + self.object_replication_destination_policy = kwargs.get('x-ms-or-policy-id') + self.tag_count = kwargs.get('x-ms-tag-count') + self.tags = None + + +class FilteredBlob(DictMixin): + """Blob info from a Filter Blobs API call. + + :ivar name: Blob name + :type name: str + :ivar container_name: Container name. + :type container_name: str + """ + def __init__(self, **kwargs): + self.name = kwargs.get('name', None) + self.container_name = kwargs.get('container_name', None) + + +class FilteredBlobPaged(PageIterator): + """An Iterable of Blob properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str continuation_token: The continuation token to retrieve the next page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.FilteredBlob) + :ivar str container: The container that the blobs are listed from. + + :param callable command: Function to retrieve the next page of items. + :param str container: The name of the container. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str continuation_token: An opaque continuation token. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__( + self, command, + container=None, + results_per_page=None, + continuation_token=None, + location_mode=None): + super(FilteredBlobPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.marker = continuation_token + self.results_per_page = results_per_page + self.container = container + self.current_page = None + self.location_mode = location_mode + + def _get_next_cb(self, continuation_token): + try: + return self._command( + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.marker = self._response.next_marker + self.current_page = [self._build_item(item) for item in self._response.blobs] + + return self._response.next_marker or None, self.current_page + + @staticmethod + def _build_item(item): + if isinstance(item, FilterBlobItem): + blob = FilteredBlob(name=item.name, container_name=item.container_name) # pylint: disable=protected-access + return blob + return item + + +class LeaseProperties(DictMixin): + """Blob Lease Properties. + + :ivar str status: + The lease status of the blob. Possible values: locked|unlocked + :ivar str state: + Lease state of the blob. Possible values: available|leased|expired|breaking|broken + :ivar str duration: + When a blob is leased, specifies whether the lease is of infinite or fixed duration. + """ + + def __init__(self, **kwargs): + self.status = get_enum_value(kwargs.get('x-ms-lease-status')) + self.state = get_enum_value(kwargs.get('x-ms-lease-state')) + self.duration = get_enum_value(kwargs.get('x-ms-lease-duration')) + + @classmethod + def _from_generated(cls, generated): + lease = cls() + lease.status = get_enum_value(generated.properties.lease_status) + lease.state = get_enum_value(generated.properties.lease_state) + lease.duration = get_enum_value(generated.properties.lease_duration) + return lease + + +class ContentSettings(DictMixin): + """The content settings of a blob. + + :param str content_type: + The content type specified for the blob. If no content type was + specified, the default content type is application/octet-stream. + :param str content_encoding: + If the content_encoding has previously been set + for the blob, that value is stored. + :param str content_language: + If the content_language has previously been set + for the blob, that value is stored. + :param str content_disposition: + content_disposition conveys additional information about how to + process the response payload, and also can be used to attach + additional metadata. If content_disposition has previously been set + for the blob, that value is stored. + :param str cache_control: + If the cache_control has previously been set for + the blob, that value is stored. + :param str content_md5: + If the content_md5 has been set for the blob, this response + header is stored so that the client can check for message content + integrity. + """ + + def __init__( + self, content_type=None, content_encoding=None, + content_language=None, content_disposition=None, + cache_control=None, content_md5=None, **kwargs): + + self.content_type = content_type or kwargs.get('Content-Type') + self.content_encoding = content_encoding or kwargs.get('Content-Encoding') + self.content_language = content_language or kwargs.get('Content-Language') + self.content_md5 = content_md5 or kwargs.get('Content-MD5') + self.content_disposition = content_disposition or kwargs.get('Content-Disposition') + self.cache_control = cache_control or kwargs.get('Cache-Control') + + @classmethod + def _from_generated(cls, generated): + settings = cls() + settings.content_type = generated.properties.content_type or None + settings.content_encoding = generated.properties.content_encoding or None + settings.content_language = generated.properties.content_language or None + settings.content_md5 = generated.properties.content_md5 or None + settings.content_disposition = generated.properties.content_disposition or None + settings.cache_control = generated.properties.cache_control or None + return settings + + +class CopyProperties(DictMixin): + """Blob Copy Properties. + + These properties will be `None` if this blob has never been the destination + in a Copy Blob operation, or if this blob has been modified after a concluded + Copy Blob operation, for example, using Set Blob Properties, Upload Blob, or Commit Block List. + + :ivar str id: + String identifier for the last attempted Copy Blob operation where this blob + was the destination blob. + :ivar str source: + URL up to 2 KB in length that specifies the source blob used in the last attempted + Copy Blob operation where this blob was the destination blob. + :ivar str status: + State of the copy operation identified by Copy ID, with these values: + success: + Copy completed successfully. + pending: + Copy is in progress. Check copy_status_description if intermittent, + non-fatal errors impede copy progress but don't cause failure. + aborted: + Copy was ended by Abort Copy Blob. + failed: + Copy failed. See copy_status_description for failure details. + :ivar str progress: + Contains the number of bytes copied and the total bytes in the source in the last + attempted Copy Blob operation where this blob was the destination blob. Can show + between 0 and Content-Length bytes copied. + :ivar ~datetime.datetime completion_time: + Conclusion time of the last attempted Copy Blob operation where this blob was the + destination blob. This value can specify the time of a completed, aborted, or + failed copy attempt. + :ivar str status_description: + Only appears when x-ms-copy-status is failed or pending. Describes cause of fatal + or non-fatal copy operation failure. + :ivar bool incremental_copy: + Copies the snapshot of the source page blob to a destination page blob. + The snapshot is copied such that only the differential changes between + the previously copied snapshot are transferred to the destination + :ivar ~datetime.datetime destination_snapshot: + Included if the blob is incremental copy blob or incremental copy snapshot, + if x-ms-copy-status is success. Snapshot time of the last successful + incremental copy snapshot for this blob. + """ + + def __init__(self, **kwargs): + self.id = kwargs.get('x-ms-copy-id') + self.source = kwargs.get('x-ms-copy-source') + self.status = get_enum_value(kwargs.get('x-ms-copy-status')) + self.progress = kwargs.get('x-ms-copy-progress') + self.completion_time = kwargs.get('x-ms-copy-completion_time') + self.status_description = kwargs.get('x-ms-copy-status-description') + self.incremental_copy = kwargs.get('x-ms-incremental-copy') + self.destination_snapshot = kwargs.get('x-ms-copy-destination-snapshot') + + @classmethod + def _from_generated(cls, generated): + copy = cls() + copy.id = generated.properties.copy_id or None + copy.status = get_enum_value(generated.properties.copy_status) or None + copy.source = generated.properties.copy_source or None + copy.progress = generated.properties.copy_progress or None + copy.completion_time = generated.properties.copy_completion_time or None + copy.status_description = generated.properties.copy_status_description or None + copy.incremental_copy = generated.properties.incremental_copy or None + copy.destination_snapshot = generated.properties.destination_snapshot or None + return copy + + +class BlobBlock(DictMixin): + """BlockBlob Block class. + + :param str block_id: + Block id. + :param str state: + Block state. Possible values: committed|uncommitted + :ivar int size: + Block size in bytes. + """ + + def __init__(self, block_id, state=BlockState.Latest): + self.id = block_id + self.state = state + self.size = None + + @classmethod + def _from_generated(cls, generated): + block = cls(decode_base64_to_text(generated.name)) + block.size = generated.size + return block + + +class PageRange(DictMixin): + """Page Range for page blob. + + :param int start: + Start of page range in bytes. + :param int end: + End of page range in bytes. + """ + + def __init__(self, start=None, end=None): + self.start = start + self.end = end + + +class AccessPolicy(GenAccessPolicy): + """Access Policy class used by the set and get access policy methods in each service. + + A stored access policy can specify the start time, expiry time, and + permissions for the Shared Access Signatures with which it's associated. + Depending on how you want to control access to your resource, you can + specify all of these parameters within the stored access policy, and omit + them from the URL for the Shared Access Signature. Doing so permits you to + modify the associated signature's behavior at any time, as well as to revoke + it. Or you can specify one or more of the access policy parameters within + the stored access policy, and the others on the URL. Finally, you can + specify all of the parameters on the URL. In this case, you can use the + stored access policy to revoke the signature, but not to modify its behavior. + + Together the Shared Access Signature and the stored access policy must + include all fields required to authenticate the signature. If any required + fields are missing, the request will fail. Likewise, if a field is specified + both in the Shared Access Signature URL and in the stored access policy, the + request will fail with status code 400 (Bad Request). + + :param permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :type permission: str or ~azure.storage.blob.ContainerSasPermissions + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: ~datetime.datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: ~datetime.datetime or str + """ + def __init__(self, permission=None, expiry=None, start=None): + self.start = start + self.expiry = expiry + self.permission = permission + + +class ContainerSasPermissions(object): + """ContainerSasPermissions class to be used with the + :func:`~azure.storage.blob.generate_container_sas` function and + for the AccessPolicies used with + :func:`~azure.storage.blob.ContainerClient.set_container_access_policy`. + + :param bool read: + Read the content, properties, metadata or block list of any blob in the + container. Use any blob in the container as the source of a copy operation. + :param bool write: + For any blob in the container, create or write content, properties, + metadata, or block list. Snapshot or lease the blob. Resize the blob + (page blob only). Use the blob as the destination of a copy operation + within the same account. Note: You cannot grant permissions to read or + write container properties or metadata, nor to lease a container, with + a container SAS. Use an account SAS instead. + :param bool delete: + Delete any blob in the container. Note: You cannot grant permissions to + delete a container with a container SAS. Use an account SAS instead. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. + :param bool list: + List blobs in the container. + :param bool tag: + Set or get tags on the blobs in the container. + """ + def __init__(self, read=False, write=False, delete=False, list=False, delete_previous_version=False, tag=False): # pylint: disable=redefined-builtin + self.read = read + self.write = write + self.delete = delete + self.list = list + self.delete_previous_version = delete_previous_version + self.tag = tag + self._str = (('r' if self.read else '') + + ('w' if self.write else '') + + ('d' if self.delete else '') + + ('x' if self.delete_previous_version else '') + + ('l' if self.list else '') + + ('t' if self.tag else '')) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, permission): + """Create a ContainerSasPermissions from a string. + + To specify read, write, delete, or list permissions you need only to + include the first letter of the word in the string. E.g. For read and + write permissions, you would provide a string "rw". + + :param str permission: The string which dictates the read, write, delete, + and list permissions. + :return: A ContainerSasPermissions object + :rtype: ~azure.storage.blob.ContainerSasPermissions + """ + p_read = 'r' in permission + p_write = 'w' in permission + p_delete = 'd' in permission + p_list = 'l' in permission + p_delete_previous_version = 'x' in permission + p_tag = 't' in permission + parsed = cls(read=p_read, write=p_write, delete=p_delete, list=p_list, + delete_previous_version=p_delete_previous_version, tag=p_tag) + #parsed._str = permission # pylint: disable = protected-access + return parsed + + +class BlobSasPermissions(object): + """BlobSasPermissions class to be used with the + :func:`~azure.storage.blob.generate_blob_sas` function. + + :param bool read: + Read the content, properties, metadata and block list. Use the blob as + the source of a copy operation. + :param bool add: + Add a block to an append blob. + :param bool create: + Write a new blob, snapshot a blob, or copy a blob to a new blob. + :param bool write: + Create or write content, properties, metadata, or block list. Snapshot + or lease the blob. Resize the blob (page blob only). Use the blob as the + destination of a copy operation within the same account. + :param bool delete: + Delete the blob. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. + :param bool tag: + Set or get tags on the blob. + """ + def __init__(self, read=False, add=False, create=False, write=False, + delete=False, delete_previous_version=False, tag=True): + self.read = read + self.add = add + self.create = create + self.write = write + self.delete = delete + self.delete_previous_version = delete_previous_version + self.tag = tag + self._str = (('r' if self.read else '') + + ('a' if self.add else '') + + ('c' if self.create else '') + + ('w' if self.write else '') + + ('d' if self.delete else '') + + ('x' if self.delete_previous_version else '') + + ('t' if self.tag else '')) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, permission): + """Create a BlobSasPermissions from a string. + + To specify read, add, create, write, or delete permissions you need only to + include the first letter of the word in the string. E.g. For read and + write permissions, you would provide a string "rw". + + :param str permission: The string which dictates the read, add, create, + write, or delete permissions. + :return: A BlobSasPermissions object + :rtype: ~azure.storage.blob.BlobSasPermissions + """ + p_read = 'r' in permission + p_add = 'a' in permission + p_create = 'c' in permission + p_write = 'w' in permission + p_delete = 'd' in permission + p_delete_previous_version = 'x' in permission + p_tag = 't' in permission + + parsed = cls(read=p_read, add=p_add, create=p_create, write=p_write, delete=p_delete, + delete_previous_version=p_delete_previous_version, tag=p_tag) + #parsed._str = permission # pylint: disable = protected-access + return parsed + + +class CustomerProvidedEncryptionKey(object): + """ + All data in Azure Storage is encrypted at-rest using an account-level encryption key. + In versions 2018-06-17 and newer, you can manage the key used to encrypt blob contents + and application metadata per-blob by providing an AES-256 encryption key in requests to the storage service. + + When you use a customer-provided key, Azure Storage does not manage or persist your key. + When writing data to a blob, the provided key is used to encrypt your data before writing it to disk. + A SHA-256 hash of the encryption key is written alongside the blob contents, + and is used to verify that all subsequent operations against the blob use the same encryption key. + This hash cannot be used to retrieve the encryption key or decrypt the contents of the blob. + When reading a blob, the provided key is used to decrypt your data after reading it from disk. + In both cases, the provided encryption key is securely discarded + as soon as the encryption or decryption process completes. + + :param str key_value: + Base64-encoded AES-256 encryption key value. + :param str key_hash: + Base64-encoded SHA256 of the encryption key. + :ivar str algorithm: + Specifies the algorithm to use when encrypting data using the given key. Must be AES256. + """ + def __init__(self, key_value, key_hash): + self.key_value = key_value + self.key_hash = key_hash + self.algorithm = 'AES256' + + +class ContainerEncryptionScope(object): + """The default encryption scope configuration for a container. + + This scope is used implicitly for all future writes within the container, + but can be overridden per blob operation. + + .. versionadded:: 12.2.0 + + :param str default_encryption_scope: + Specifies the default encryption scope to set on the container and use for + all future writes. + :param bool prevent_encryption_scope_override: + If true, prevents any request from specifying a different encryption scope than the scope + set on the container. Default value is false. + """ + + def __init__(self, default_encryption_scope, **kwargs): + self.default_encryption_scope = default_encryption_scope + self.prevent_encryption_scope_override = kwargs.get('prevent_encryption_scope_override', False) + + @classmethod + def _from_generated(cls, generated): + if generated.properties.default_encryption_scope: + scope = cls( + generated.properties.default_encryption_scope, + prevent_encryption_scope_override=generated.properties.prevent_encryption_scope_override or False + ) + return scope + return None + + +class DelimitedJsonDialect(object): + """Defines the input or output JSON serialization for a blob data query. + + :keyword str delimiter: The line separator character, default value is '\n' + """ + + def __init__(self, **kwargs): + self.delimiter = kwargs.pop('delimiter', '\n') + + +class DelimitedTextDialect(object): + """Defines the input or output delimited (CSV) serialization for a blob query request. + + :keyword str delimiter: + Column separator, defaults to ','. + :keyword str quotechar: + Field quote, defaults to '"'. + :keyword str lineterminator: + Record separator, defaults to '\n'. + :keyword str escapechar: + Escape char, defaults to empty. + :keyword bool has_header: + Whether the blob data includes headers in the first line. The default value is False, meaning that the + data will be returned inclusive of the first line. If set to True, the data will be returned exclusive + of the first line. + """ + def __init__(self, **kwargs): + self.delimiter = kwargs.pop('delimiter', ',') + self.quotechar = kwargs.pop('quotechar', '"') + self.lineterminator = kwargs.pop('lineterminator', '\n') + self.escapechar = kwargs.pop('escapechar', "") + self.has_header = kwargs.pop('has_header', False) + + +class ObjectReplicationPolicy(DictMixin): + """Policy id and rule ids applied to a blob. + + :ivar str policy_id: + Policy id for the blob. A replication policy gets created (policy id) when creating a source/destination pair. + :ivar list(~azure.storage.blob.ObjectReplicationRule) rules: + Within each policy there may be multiple replication rules. + e.g. rule 1= src/container/.pdf to dst/container2/; rule2 = src/container1/.jpg to dst/container3 + """ + + def __init__(self, **kwargs): + self.policy_id = kwargs.pop('policy_id', None) + self.rules = kwargs.pop('rules', None) + + +class ObjectReplicationRule(DictMixin): + """Policy id and rule ids applied to a blob. + + :ivar str rule_id: + Rule id. + :ivar str status: + The status of the rule. It could be "Complete" or "Failed" + """ + + def __init__(self, **kwargs): + self.rule_id = kwargs.pop('rule_id', None) + self.status = kwargs.pop('status', None) + + +class BlobQueryError(object): + """The error happened during quick query operation. + + :ivar str error: + The name of the error. + :ivar bool is_fatal: + If true, this error prevents further query processing. More result data may be returned, + but there is no guarantee that all of the original data will be processed. + If false, this error does not prevent further query processing. + :ivar str description: + A description of the error. + :ivar int position: + The blob offset at which the error occurred. + """ + def __init__(self, error=None, is_fatal=False, description=None, position=None): + self.error = error + self.is_fatal = is_fatal + self.description = description + self.position = position diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_quick_query_helper.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_quick_query_helper.py new file mode 100644 index 00000000000..eb51d987b9a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_quick_query_helper.py @@ -0,0 +1,196 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from io import BytesIO +from typing import Union, Iterable, IO # pylint: disable=unused-import + +from ._shared.avro.datafile import DataFileReader +from ._shared.avro.avro_io import DatumReader + + +class BlobQueryReader(object): # pylint: disable=too-many-instance-attributes + """A streaming object to read query results. + + :ivar str name: + The name of the blob being quered. + :ivar str container: + The name of the container where the blob is. + :ivar dict response_headers: + The response_headers of the quick query request. + :ivar bytes record_delimiter: + The delimiter used to separate lines, or records with the data. The `records` + method will return these lines via a generator. + """ + + def __init__( + self, + name=None, + container=None, + errors=None, + record_delimiter='\n', + encoding=None, + headers=None, + response=None, + error_cls=None, + ): + self.name = name + self.container = container + self.response_headers = headers + self.record_delimiter = record_delimiter + self._size = 0 + self._bytes_processed = 0 + self._errors = errors + self._encoding = encoding + self._parsed_results = DataFileReader(QuickQueryStreamer(response), DatumReader()) + self._first_result = self._process_record(next(self._parsed_results)) + self._error_cls = error_cls + + def __len__(self): + return self._size + + def _process_record(self, result): + self._size = result.get('totalBytes', self._size) + self._bytes_processed = result.get('bytesScanned', self._bytes_processed) + if 'data' in result: + return result.get('data') + if 'fatal' in result: + error = self._error_cls( + error=result['name'], + is_fatal=result['fatal'], + description=result['description'], + position=result['position'] + ) + if self._errors: + self._errors(error) + return None + + def _iter_stream(self): + if self._first_result is not None: + yield self._first_result + for next_result in self._parsed_results: + processed_result = self._process_record(next_result) + if processed_result is not None: + yield processed_result + + def readall(self): + # type: () -> Union[bytes, str] + """Return all query results. + + This operation is blocking until all data is downloaded. + If encoding has been configured - this will be used to decode individual + records are they are received. + + :rtype: Union[bytes, str] + """ + stream = BytesIO() + self.readinto(stream) + data = stream.getvalue() + if self._encoding: + return data.decode(self._encoding) + return data + + def readinto(self, stream): + # type: (IO) -> None + """Download the query result to a stream. + + :param stream: + The stream to download to. This can be an open file-handle, + or any writable stream. + :returns: None + """ + for record in self._iter_stream(): + stream.write(record) + + def records(self): + # type: () -> Iterable[Union[bytes, str]] + """Returns a record generator for the query result. + + Records will be returned line by line. + If encoding has been configured - this will be used to decode individual + records are they are received. + + :rtype: Iterable[Union[bytes, str]] + """ + delimiter = self.record_delimiter.encode('utf-8') + for record_chunk in self._iter_stream(): + for record in record_chunk.split(delimiter): + if self._encoding: + yield record.decode(self._encoding) + else: + yield record + + + +class QuickQueryStreamer(object): + """ + File-like streaming iterator. + """ + + def __init__(self, generator): + self.generator = generator + self.iterator = iter(generator) + self._buf = b"" + self._point = 0 + self._download_offset = 0 + self._buf_start = 0 + self.file_length = None + + def __len__(self): + return self.file_length + + def __iter__(self): + return self.iterator + + @staticmethod + def seekable(): + return True + + def __next__(self): + next_part = next(self.iterator) + self._download_offset += len(next_part) + return next_part + + next = __next__ # Python 2 compatibility. + + def tell(self): + return self._point + + def seek(self, offset, whence=0): + if whence == 0: + self._point = offset + elif whence == 1: + self._point += offset + else: + raise ValueError("whence must be 0, or 1") + if self._point < 0: + self._point = 0 # XXX is this right? + + def read(self, size): + try: + # keep reading from the generator until the buffer of this stream has enough data to read + while self._point + size > self._download_offset: + self._buf += self.__next__() + except StopIteration: + self.file_length = self._download_offset + + start_point = self._point + + # EOF + self._point = min(self._point + size, self._download_offset) + + relative_start = start_point - self._buf_start + if relative_start < 0: + raise ValueError("Buffer has dumped too much data") + relative_end = relative_start + size + data = self._buf[relative_start: relative_end] + + # dump the extra data in buffer + # buffer start--------------------16bytes----current read position + dumped_size = max(relative_end - 16 - relative_start, 0) + self._buf_start += dumped_size + self._buf = self._buf[dumped_size:] + + return data diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_serialize.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_serialize.py new file mode 100644 index 00000000000..6781096700b --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_serialize.py @@ -0,0 +1,179 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use +try: + from urllib.parse import quote +except ImportError: + from urllib2 import quote # type: ignore + +from azure.core import MatchConditions + +from ._models import ( + ContainerEncryptionScope, + DelimitedJsonDialect +) +from ._generated.models import ( + ModifiedAccessConditions, + SourceModifiedAccessConditions, + CpkScopeInfo, + ContainerCpkScopeInfo, + QueryFormat, + QuerySerialization, + DelimitedTextConfiguration, + JsonTextConfiguration, + QueryFormatType, + BlobTag, + BlobTags +) + + +_SUPPORTED_API_VERSIONS = [ + '2019-02-02', + '2019-07-07', + '2019-10-10', + '2019-12-12', +] + + +def _get_match_headers(kwargs, match_param, etag_param): + # type: (str) -> Tuple(Dict[str, Any], Optional[str], Optional[str]) + if_match = None + if_none_match = None + match_condition = kwargs.pop(match_param, None) + if match_condition == MatchConditions.IfNotModified: + if_match = kwargs.pop(etag_param, None) + if not if_match: + raise ValueError("'{}' specified without '{}'.".format(match_param, etag_param)) + elif match_condition == MatchConditions.IfPresent: + if_match = '*' + elif match_condition == MatchConditions.IfModified: + if_none_match = kwargs.pop(etag_param, None) + if not if_none_match: + raise ValueError("'{}' specified without '{}'.".format(match_param, etag_param)) + elif match_condition == MatchConditions.IfMissing: + if_none_match = '*' + elif match_condition is None: + if kwargs.get(etag_param): + raise ValueError("'{}' specified without '{}'.".format(etag_param, match_param)) + else: + raise TypeError("Invalid match condition: {}".format(match_condition)) + return if_match, if_none_match + + +def get_modify_conditions(kwargs): + # type: (Dict[str, Any]) -> ModifiedAccessConditions + if_match, if_none_match = _get_match_headers(kwargs, 'match_condition', 'etag') + return ModifiedAccessConditions( + if_modified_since=kwargs.pop('if_modified_since', None), + if_unmodified_since=kwargs.pop('if_unmodified_since', None), + if_match=if_match or kwargs.pop('if_match', None), + if_none_match=if_none_match or kwargs.pop('if_none_match', None), + if_tags=kwargs.pop('if_tags_match_condition', None) + ) + + +def get_source_conditions(kwargs): + # type: (Dict[str, Any]) -> SourceModifiedAccessConditions + if_match, if_none_match = _get_match_headers(kwargs, 'source_match_condition', 'source_etag') + return SourceModifiedAccessConditions( + source_if_modified_since=kwargs.pop('source_if_modified_since', None), + source_if_unmodified_since=kwargs.pop('source_if_unmodified_since', None), + source_if_match=if_match or kwargs.pop('source_if_match', None), + source_if_none_match=if_none_match or kwargs.pop('source_if_none_match', None), + source_if_tags=kwargs.pop('source_if_tags_match_condition', None) + ) + + +def get_cpk_scope_info(kwargs): + # type: (Dict[str, Any]) -> CpkScopeInfo + if 'encryption_scope' in kwargs: + return CpkScopeInfo(encryption_scope=kwargs.pop('encryption_scope')) + return None + + +def get_container_cpk_scope_info(kwargs): + # type: (Dict[str, Any]) -> ContainerCpkScopeInfo + encryption_scope = kwargs.pop('container_encryption_scope', None) + if encryption_scope: + if isinstance(encryption_scope, ContainerEncryptionScope): + return ContainerCpkScopeInfo( + default_encryption_scope=encryption_scope.default_encryption_scope, + prevent_encryption_scope_override=encryption_scope.prevent_encryption_scope_override + ) + if isinstance(encryption_scope, dict): + return ContainerCpkScopeInfo( + default_encryption_scope=encryption_scope['default_encryption_scope'], + prevent_encryption_scope_override=encryption_scope.get('prevent_encryption_scope_override') + ) + raise TypeError("Container encryption scope must be dict or type ContainerEncryptionScope.") + return None + + +def get_api_version(kwargs, default): + # type: (Dict[str, Any]) -> str + api_version = kwargs.pop('api_version', None) + if api_version and api_version not in _SUPPORTED_API_VERSIONS: + versions = '\n'.join(_SUPPORTED_API_VERSIONS) + raise ValueError("Unsupported API version '{}'. Please select from:\n{}".format(api_version, versions)) + return api_version or default + + +def serialize_blob_tags_header(tags=None): + # type: (Optional[Dict[str, str]]) -> str + if tags is None: + return None + + components = list() + if tags: + for key, value in tags.items(): + components.append(quote(key, safe='.-')) + components.append('=') + components.append(quote(value, safe='.-')) + components.append('&') + + if components: + del components[-1] + + return ''.join(components) + + +def serialize_blob_tags(tags=None): + # type: (Optional[Dict[str, str]]) -> Union[BlobTags, None] + tag_list = list() + if tags: + tag_list = [BlobTag(key=k, value=v) for k, v in tags.items()] + return BlobTags(blob_tag_set=tag_list) + + +def serialize_query_format(formater): + if isinstance(formater, DelimitedJsonDialect): + serialization_settings = JsonTextConfiguration( + record_separator=formater.delimiter + ) + qq_format = QueryFormat( + type=QueryFormatType.json, + json_text_configuration=serialization_settings) + elif hasattr(formater, 'quotechar'): # This supports a csv.Dialect as well + try: + headers = formater.has_header + except AttributeError: + headers = False + serialization_settings = DelimitedTextConfiguration( + column_separator=formater.delimiter, + field_quote=formater.quotechar, + record_separator=formater.lineterminator, + escape_char=formater.escapechar, + headers_present=headers + ) + qq_format = QueryFormat( + type=QueryFormatType.delimited, + delimited_text_configuration=serialization_settings + ) + elif not formater: + return None + else: + raise TypeError("Format must be DelimitedTextDialect or DelimitedJsonDialect.") + return QuerySerialization(format=qq_format) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/__init__.py new file mode 100644 index 00000000000..160f8822382 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/__init__.py @@ -0,0 +1,56 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import base64 +import hashlib +import hmac + +try: + from urllib.parse import quote, unquote +except ImportError: + from urllib2 import quote, unquote # type: ignore + +import six + + +def url_quote(url): + return quote(url) + + +def url_unquote(url): + return unquote(url) + + +def encode_base64(data): + if isinstance(data, six.text_type): + data = data.encode('utf-8') + encoded = base64.b64encode(data) + return encoded.decode('utf-8') + + +def decode_base64_to_bytes(data): + if isinstance(data, six.text_type): + data = data.encode('utf-8') + return base64.b64decode(data) + + +def decode_base64_to_text(data): + decoded_bytes = decode_base64_to_bytes(data) + return decoded_bytes.decode('utf-8') + + +def sign_string(key, string_to_sign, key_is_base64=True): + if key_is_base64: + key = decode_base64_to_bytes(key) + else: + if isinstance(key, six.text_type): + key = key.encode('utf-8') + if isinstance(string_to_sign, six.text_type): + string_to_sign = string_to_sign.encode('utf-8') + signed_hmac_sha256 = hmac.HMAC(key, string_to_sign, hashlib.sha256) + digest = signed_hmac_sha256.digest() + encoded_digest = encode_base64(digest) + return encoded_digest diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/authentication.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/authentication.py new file mode 100644 index 00000000000..b11dc575780 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/authentication.py @@ -0,0 +1,140 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import logging +import sys + +try: + from urllib.parse import urlparse, unquote +except ImportError: + from urlparse import urlparse # type: ignore + from urllib2 import unquote # type: ignore + +try: + from yarl import URL +except ImportError: + pass + +try: + from azure.core.pipeline.transport import AioHttpTransport +except ImportError: + AioHttpTransport = None + +from azure.core.exceptions import ClientAuthenticationError +from azure.core.pipeline.policies import SansIOHTTPPolicy + +from . import sign_string + + +logger = logging.getLogger(__name__) + + + +# wraps a given exception with the desired exception type +def _wrap_exception(ex, desired_type): + msg = "" + if ex.args: + msg = ex.args[0] + if sys.version_info >= (3,): + # Automatic chaining in Python 3 means we keep the trace + return desired_type(msg) + # There isn't a good solution in 2 for keeping the stack trace + # in general, or that will not result in an error in 3 + # However, we can keep the previous error type and message + # TODO: In the future we will log the trace + return desired_type('{}: {}'.format(ex.__class__.__name__, msg)) + + +class AzureSigningError(ClientAuthenticationError): + """ + Represents a fatal error when attempting to sign a request. + In general, the cause of this exception is user error. For example, the given account key is not valid. + Please visit https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account for more info. + """ + + +# pylint: disable=no-self-use +class SharedKeyCredentialPolicy(SansIOHTTPPolicy): + + def __init__(self, account_name, account_key): + self.account_name = account_name + self.account_key = account_key + super(SharedKeyCredentialPolicy, self).__init__() + + @staticmethod + def _get_headers(request, headers_to_sign): + headers = dict((name.lower(), value) for name, value in request.http_request.headers.items() if value) + if 'content-length' in headers and headers['content-length'] == '0': + del headers['content-length'] + return '\n'.join(headers.get(x, '') for x in headers_to_sign) + '\n' + + @staticmethod + def _get_verb(request): + return request.http_request.method + '\n' + + def _get_canonicalized_resource(self, request): + uri_path = urlparse(request.http_request.url).path + try: + if isinstance(request.context.transport, AioHttpTransport) or \ + isinstance(getattr(request.context.transport, "_transport", None), AioHttpTransport): + uri_path = URL(uri_path) + return '/' + self.account_name + str(uri_path) + except TypeError: + pass + return '/' + self.account_name + uri_path + + @staticmethod + def _get_canonicalized_headers(request): + string_to_sign = '' + x_ms_headers = [] + for name, value in request.http_request.headers.items(): + if name.startswith('x-ms-'): + x_ms_headers.append((name.lower(), value)) + x_ms_headers.sort() + for name, value in x_ms_headers: + if value is not None: + string_to_sign += ''.join([name, ':', value, '\n']) + return string_to_sign + + @staticmethod + def _get_canonicalized_resource_query(request): + sorted_queries = list(request.http_request.query.items()) + sorted_queries.sort() + + string_to_sign = '' + for name, value in sorted_queries: + if value is not None: + string_to_sign += '\n' + name.lower() + ':' + unquote(value) + + return string_to_sign + + def _add_authorization_header(self, request, string_to_sign): + try: + signature = sign_string(self.account_key, string_to_sign) + auth_string = 'SharedKey ' + self.account_name + ':' + signature + request.http_request.headers['Authorization'] = auth_string + except Exception as ex: + # Wrap any error that occurred as signing error + # Doing so will clarify/locate the source of problem + raise _wrap_exception(ex, AzureSigningError) + + def on_request(self, request): + string_to_sign = \ + self._get_verb(request) + \ + self._get_headers( + request, + [ + 'content-encoding', 'content-language', 'content-length', + 'content-md5', 'content-type', 'date', 'if-modified-since', + 'if-match', 'if-none-match', 'if-unmodified-since', 'byte_range' + ] + ) + \ + self._get_canonicalized_headers(request) + \ + self._get_canonicalized_resource(request) + \ + self._get_canonicalized_resource_query(request) + + self._add_authorization_header(request, string_to_sign) + #logger.debug("String_to_sign=%s", string_to_sign) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/__init__.py new file mode 100644 index 00000000000..5b396cd202e --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/__init__.py @@ -0,0 +1,5 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/avro_io.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/avro_io.py new file mode 100644 index 00000000000..93a5c134849 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/avro_io.py @@ -0,0 +1,464 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +"""Input/output utilities. + +Includes: + - i/o-specific constants + - i/o-specific exceptions + - schema validation + - leaf value encoding and decoding + - datum reader/writer stuff (?) + +Also includes a generic representation for data, which uses the +following mapping: + - Schema records are implemented as dict. + - Schema arrays are implemented as list. + - Schema maps are implemented as dict. + - Schema strings are implemented as unicode. + - Schema bytes are implemented as str. + - Schema ints are implemented as int. + - Schema longs are implemented as long. + - Schema floats are implemented as float. + - Schema doubles are implemented as float. + - Schema booleans are implemented as bool. +""" + +import json +import logging +import struct +import sys + +from ..avro import schema + +PY3 = sys.version_info[0] == 3 + +logger = logging.getLogger(__name__) + +# ------------------------------------------------------------------------------ +# Constants + +STRUCT_FLOAT = struct.Struct('= 0), n + input_bytes = self.reader.read(n) + if n > 0 and not input_bytes: + raise StopIteration + assert (len(input_bytes) == n), input_bytes + return input_bytes + + @staticmethod + def read_null(): + """ + null is written as zero bytes + """ + return None + + def read_boolean(self): + """ + a boolean is written as a single byte + whose value is either 0 (false) or 1 (true). + """ + b = ord(self.read(1)) + if b == 1: + return True + if b == 0: + return False + fail_msg = "Invalid value for boolean: %s" % b + raise schema.AvroException(fail_msg) + + def read_int(self): + """ + int and long values are written using variable-length, zig-zag coding. + """ + return self.read_long() + + def read_long(self): + """ + int and long values are written using variable-length, zig-zag coding. + """ + b = ord(self.read(1)) + n = b & 0x7F + shift = 7 + while (b & 0x80) != 0: + b = ord(self.read(1)) + n |= (b & 0x7F) << shift + shift += 7 + datum = (n >> 1) ^ -(n & 1) + return datum + + def read_float(self): + """ + A float is written as 4 bytes. + The float is converted into a 32-bit integer using a method equivalent to + Java's floatToIntBits and then encoded in little-endian format. + """ + return STRUCT_FLOAT.unpack(self.read(4))[0] + + def read_double(self): + """ + A double is written as 8 bytes. + The double is converted into a 64-bit integer using a method equivalent to + Java's doubleToLongBits and then encoded in little-endian format. + """ + return STRUCT_DOUBLE.unpack(self.read(8))[0] + + def read_bytes(self): + """ + Bytes are encoded as a long followed by that many bytes of data. + """ + nbytes = self.read_long() + assert (nbytes >= 0), nbytes + return self.read(nbytes) + + def read_utf8(self): + """ + A string is encoded as a long followed by + that many bytes of UTF-8 encoded character data. + """ + input_bytes = self.read_bytes() + if PY3: + try: + return input_bytes.decode('utf-8') + except UnicodeDecodeError as exn: + logger.error('Invalid UTF-8 input bytes: %r', input_bytes) + raise exn + else: + # PY2 + return unicode(input_bytes, "utf-8") # pylint: disable=undefined-variable + + def skip_null(self): + pass + + def skip_boolean(self): + self.skip(1) + + def skip_int(self): + self.skip_long() + + def skip_long(self): + b = ord(self.read(1)) + while (b & 0x80) != 0: + b = ord(self.read(1)) + + def skip_float(self): + self.skip(4) + + def skip_double(self): + self.skip(8) + + def skip_bytes(self): + self.skip(self.read_long()) + + def skip_utf8(self): + self.skip_bytes() + + def skip(self, n): + self.reader.seek(self.reader.tell() + n) + + +# ------------------------------------------------------------------------------ +# DatumReader + + +class DatumReader(object): + """Deserialize Avro-encoded data into a Python data structure.""" + + def __init__(self, writer_schema=None): + """ + As defined in the Avro specification, we call the schema encoded + in the data the "writer's schema". + """ + self._writer_schema = writer_schema + + # read/write properties + def set_writer_schema(self, writer_schema): + self._writer_schema = writer_schema + + writer_schema = property(lambda self: self._writer_schema, + set_writer_schema) + + def read(self, decoder): + return self.read_data(self.writer_schema, decoder) + + def read_data(self, writer_schema, decoder): + # function dispatch for reading data based on type of writer's schema + if writer_schema.type == 'null': + result = decoder.read_null() + elif writer_schema.type == 'boolean': + result = decoder.read_boolean() + elif writer_schema.type == 'string': + result = decoder.read_utf8() + elif writer_schema.type == 'int': + result = decoder.read_int() + elif writer_schema.type == 'long': + result = decoder.read_long() + elif writer_schema.type == 'float': + result = decoder.read_float() + elif writer_schema.type == 'double': + result = decoder.read_double() + elif writer_schema.type == 'bytes': + result = decoder.read_bytes() + elif writer_schema.type == 'fixed': + result = self.read_fixed(writer_schema, decoder) + elif writer_schema.type == 'enum': + result = self.read_enum(writer_schema, decoder) + elif writer_schema.type == 'array': + result = self.read_array(writer_schema, decoder) + elif writer_schema.type == 'map': + result = self.read_map(writer_schema, decoder) + elif writer_schema.type in ['union', 'error_union']: + result = self.read_union(writer_schema, decoder) + elif writer_schema.type in ['record', 'error', 'request']: + result = self.read_record(writer_schema, decoder) + else: + fail_msg = "Cannot read unknown schema type: %s" % writer_schema.type + raise schema.AvroException(fail_msg) + return result + + def skip_data(self, writer_schema, decoder): + if writer_schema.type == 'null': + result = decoder.skip_null() + elif writer_schema.type == 'boolean': + result = decoder.skip_boolean() + elif writer_schema.type == 'string': + result = decoder.skip_utf8() + elif writer_schema.type == 'int': + result = decoder.skip_int() + elif writer_schema.type == 'long': + result = decoder.skip_long() + elif writer_schema.type == 'float': + result = decoder.skip_float() + elif writer_schema.type == 'double': + result = decoder.skip_double() + elif writer_schema.type == 'bytes': + result = decoder.skip_bytes() + elif writer_schema.type == 'fixed': + result = self.skip_fixed(writer_schema, decoder) + elif writer_schema.type == 'enum': + result = self.skip_enum(decoder) + elif writer_schema.type == 'array': + self.skip_array(writer_schema, decoder) + result = None + elif writer_schema.type == 'map': + self.skip_map(writer_schema, decoder) + result = None + elif writer_schema.type in ['union', 'error_union']: + result = self.skip_union(writer_schema, decoder) + elif writer_schema.type in ['record', 'error', 'request']: + self.skip_record(writer_schema, decoder) + result = None + else: + fail_msg = "Unknown schema type: %s" % writer_schema.type + raise schema.AvroException(fail_msg) + return result + + @staticmethod + def read_fixed(writer_schema, decoder): + """ + Fixed instances are encoded using the number of bytes declared + in the schema. + """ + return decoder.read(writer_schema.size) + + @staticmethod + def skip_fixed(writer_schema, decoder): + return decoder.skip(writer_schema.size) + + @staticmethod + def read_enum(writer_schema, decoder): + """ + An enum is encoded by a int, representing the zero-based position + of the symbol in the schema. + """ + # read data + index_of_symbol = decoder.read_int() + if index_of_symbol >= len(writer_schema.symbols): + fail_msg = "Can't access enum index %d for enum with %d symbols" \ + % (index_of_symbol, len(writer_schema.symbols)) + raise SchemaResolutionException(fail_msg, writer_schema) + read_symbol = writer_schema.symbols[index_of_symbol] + return read_symbol + + @staticmethod + def skip_enum(decoder): + return decoder.skip_int() + + def read_array(self, writer_schema, decoder): + """ + Arrays are encoded as a series of blocks. + + Each block consists of a long count value, + followed by that many array items. + A block with count zero indicates the end of the array. + Each item is encoded per the array's item schema. + + If a block's count is negative, + then the count is followed immediately by a long block size, + indicating the number of bytes in the block. + The actual count in this case + is the absolute value of the count written. + """ + read_items = [] + block_count = decoder.read_long() + while block_count != 0: + if block_count < 0: + block_count = -block_count + decoder.read_long() + for _ in range(block_count): + read_items.append(self.read_data(writer_schema.items, decoder)) + block_count = decoder.read_long() + return read_items + + def skip_array(self, writer_schema, decoder): + block_count = decoder.read_long() + while block_count != 0: + if block_count < 0: + block_size = decoder.read_long() + decoder.skip(block_size) + else: + for _ in range(block_count): + self.skip_data(writer_schema.items, decoder) + block_count = decoder.read_long() + + def read_map(self, writer_schema, decoder): + """ + Maps are encoded as a series of blocks. + + Each block consists of a long count value, + followed by that many key/value pairs. + A block with count zero indicates the end of the map. + Each item is encoded per the map's value schema. + + If a block's count is negative, + then the count is followed immediately by a long block size, + indicating the number of bytes in the block. + The actual count in this case + is the absolute value of the count written. + """ + read_items = {} + block_count = decoder.read_long() + while block_count != 0: + if block_count < 0: + block_count = -block_count + decoder.read_long() + for _ in range(block_count): + key = decoder.read_utf8() + read_items[key] = self.read_data(writer_schema.values, decoder) + block_count = decoder.read_long() + return read_items + + def skip_map(self, writer_schema, decoder): + block_count = decoder.read_long() + while block_count != 0: + if block_count < 0: + block_size = decoder.read_long() + decoder.skip(block_size) + else: + for _ in range(block_count): + decoder.skip_utf8() + self.skip_data(writer_schema.values, decoder) + block_count = decoder.read_long() + + def read_union(self, writer_schema, decoder): + """ + A union is encoded by first writing a long value indicating + the zero-based position within the union of the schema of its value. + The value is then encoded per the indicated schema within the union. + """ + # schema resolution + index_of_schema = int(decoder.read_long()) + if index_of_schema >= len(writer_schema.schemas): + fail_msg = "Can't access branch index %d for union with %d branches" \ + % (index_of_schema, len(writer_schema.schemas)) + raise SchemaResolutionException(fail_msg, writer_schema) + selected_writer_schema = writer_schema.schemas[index_of_schema] + + # read data + return self.read_data(selected_writer_schema, decoder) + + def skip_union(self, writer_schema, decoder): + index_of_schema = int(decoder.read_long()) + if index_of_schema >= len(writer_schema.schemas): + fail_msg = "Can't access branch index %d for union with %d branches" \ + % (index_of_schema, len(writer_schema.schemas)) + raise SchemaResolutionException(fail_msg, writer_schema) + return self.skip_data(writer_schema.schemas[index_of_schema], decoder) + + def read_record(self, writer_schema, decoder): + """ + A record is encoded by encoding the values of its fields + in the order that they are declared. In other words, a record + is encoded as just the concatenation of the encodings of its fields. + Field values are encoded per their schema. + + Schema Resolution: + * the ordering of fields may be different: fields are matched by name. + * schemas for fields with the same name in both records are resolved + recursively. + * if the writer's record contains a field with a name not present in the + reader's record, the writer's value for that field is ignored. + * if the reader's record schema has a field that contains a default value, + and writer's schema does not have a field with the same name, then the + reader should use the default value from its field. + * if the reader's record schema has a field with no default value, and + writer's schema does not have a field with the same name, then the + field's value is unset. + """ + # schema resolution + read_record = {} + for field in writer_schema.fields: + field_val = self.read_data(field.type, decoder) + read_record[field.name] = field_val + return read_record + + def skip_record(self, writer_schema, decoder): + for field in writer_schema.fields: + self.skip_data(field.type, decoder) + + +# ------------------------------------------------------------------------------ + +if __name__ == '__main__': + raise Exception('Not a standalone module') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/avro_io_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/avro_io_async.py new file mode 100644 index 00000000000..e9812163795 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/avro_io_async.py @@ -0,0 +1,448 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +"""Input/output utilities. + +Includes: + - i/o-specific constants + - i/o-specific exceptions + - schema validation + - leaf value encoding and decoding + - datum reader/writer stuff (?) + +Also includes a generic representation for data, which uses the +following mapping: + - Schema records are implemented as dict. + - Schema arrays are implemented as list. + - Schema maps are implemented as dict. + - Schema strings are implemented as unicode. + - Schema bytes are implemented as str. + - Schema ints are implemented as int. + - Schema longs are implemented as long. + - Schema floats are implemented as float. + - Schema doubles are implemented as float. + - Schema booleans are implemented as bool. +""" + +import logging +import sys + +from ..avro import schema + +from .avro_io import STRUCT_FLOAT, STRUCT_DOUBLE, SchemaResolutionException + +PY3 = sys.version_info[0] == 3 + +logger = logging.getLogger(__name__) + +# ------------------------------------------------------------------------------ +# Decoder + + +class AsyncBinaryDecoder(object): + """Read leaf values.""" + + def __init__(self, reader): + """ + reader is a Python object on which we can call read, seek, and tell. + """ + self._reader = reader + + @property + def reader(self): + """Reports the reader used by this decoder.""" + return self._reader + + async def read(self, n): + """Read n bytes. + + Args: + n: Number of bytes to read. + Returns: + The next n bytes from the input. + """ + assert (n >= 0), n + input_bytes = await self.reader.read(n) + if n > 0 and not input_bytes: + raise StopAsyncIteration + assert (len(input_bytes) == n), input_bytes + return input_bytes + + @staticmethod + def read_null(): + """ + null is written as zero bytes + """ + return None + + async def read_boolean(self): + """ + a boolean is written as a single byte + whose value is either 0 (false) or 1 (true). + """ + b = ord(await self.read(1)) + if b == 1: + return True + if b == 0: + return False + fail_msg = "Invalid value for boolean: %s" % b + raise schema.AvroException(fail_msg) + + async def read_int(self): + """ + int and long values are written using variable-length, zig-zag coding. + """ + return await self.read_long() + + async def read_long(self): + """ + int and long values are written using variable-length, zig-zag coding. + """ + b = ord(await self.read(1)) + n = b & 0x7F + shift = 7 + while (b & 0x80) != 0: + b = ord(await self.read(1)) + n |= (b & 0x7F) << shift + shift += 7 + datum = (n >> 1) ^ -(n & 1) + return datum + + async def read_float(self): + """ + A float is written as 4 bytes. + The float is converted into a 32-bit integer using a method equivalent to + Java's floatToIntBits and then encoded in little-endian format. + """ + return STRUCT_FLOAT.unpack(await self.read(4))[0] + + async def read_double(self): + """ + A double is written as 8 bytes. + The double is converted into a 64-bit integer using a method equivalent to + Java's doubleToLongBits and then encoded in little-endian format. + """ + return STRUCT_DOUBLE.unpack(await self.read(8))[0] + + async def read_bytes(self): + """ + Bytes are encoded as a long followed by that many bytes of data. + """ + nbytes = await self.read_long() + assert (nbytes >= 0), nbytes + return await self.read(nbytes) + + async def read_utf8(self): + """ + A string is encoded as a long followed by + that many bytes of UTF-8 encoded character data. + """ + input_bytes = await self.read_bytes() + if PY3: + try: + return input_bytes.decode('utf-8') + except UnicodeDecodeError as exn: + logger.error('Invalid UTF-8 input bytes: %r', input_bytes) + raise exn + else: + # PY2 + return unicode(input_bytes, "utf-8") # pylint: disable=undefined-variable + + def skip_null(self): + pass + + async def skip_boolean(self): + await self.skip(1) + + async def skip_int(self): + await self.skip_long() + + async def skip_long(self): + b = ord(await self.read(1)) + while (b & 0x80) != 0: + b = ord(await self.read(1)) + + async def skip_float(self): + await self.skip(4) + + async def skip_double(self): + await self.skip(8) + + async def skip_bytes(self): + await self.skip(await self.read_long()) + + async def skip_utf8(self): + await self.skip_bytes() + + async def skip(self, n): + await self.reader.seek(await self.reader.tell() + n) + + +# ------------------------------------------------------------------------------ +# DatumReader + + +class AsyncDatumReader(object): + """Deserialize Avro-encoded data into a Python data structure.""" + + def __init__(self, writer_schema=None): + """ + As defined in the Avro specification, we call the schema encoded + in the data the "writer's schema", and the schema expected by the + reader the "reader's schema". + """ + self._writer_schema = writer_schema + + # read/write properties + def set_writer_schema(self, writer_schema): + self._writer_schema = writer_schema + + writer_schema = property(lambda self: self._writer_schema, + set_writer_schema) + + async def read(self, decoder): + return await self.read_data(self.writer_schema, decoder) + + async def read_data(self, writer_schema, decoder): + # function dispatch for reading data based on type of writer's schema + if writer_schema.type == 'null': + result = decoder.read_null() + elif writer_schema.type == 'boolean': + result = await decoder.read_boolean() + elif writer_schema.type == 'string': + result = await decoder.read_utf8() + elif writer_schema.type == 'int': + result = await decoder.read_int() + elif writer_schema.type == 'long': + result = await decoder.read_long() + elif writer_schema.type == 'float': + result = await decoder.read_float() + elif writer_schema.type == 'double': + result = await decoder.read_double() + elif writer_schema.type == 'bytes': + result = await decoder.read_bytes() + elif writer_schema.type == 'fixed': + result = await self.read_fixed(writer_schema, decoder) + elif writer_schema.type == 'enum': + result = await self.read_enum(writer_schema, decoder) + elif writer_schema.type == 'array': + result = await self.read_array(writer_schema, decoder) + elif writer_schema.type == 'map': + result = await self.read_map(writer_schema, decoder) + elif writer_schema.type in ['union', 'error_union']: + result = await self.read_union(writer_schema, decoder) + elif writer_schema.type in ['record', 'error', 'request']: + result = await self.read_record(writer_schema, decoder) + else: + fail_msg = "Cannot read unknown schema type: %s" % writer_schema.type + raise schema.AvroException(fail_msg) + return result + + async def skip_data(self, writer_schema, decoder): + if writer_schema.type == 'null': + result = decoder.skip_null() + elif writer_schema.type == 'boolean': + result = await decoder.skip_boolean() + elif writer_schema.type == 'string': + result = await decoder.skip_utf8() + elif writer_schema.type == 'int': + result = await decoder.skip_int() + elif writer_schema.type == 'long': + result = await decoder.skip_long() + elif writer_schema.type == 'float': + result = await decoder.skip_float() + elif writer_schema.type == 'double': + result = await decoder.skip_double() + elif writer_schema.type == 'bytes': + result = await decoder.skip_bytes() + elif writer_schema.type == 'fixed': + result = await self.skip_fixed(writer_schema, decoder) + elif writer_schema.type == 'enum': + result = await self.skip_enum(decoder) + elif writer_schema.type == 'array': + await self.skip_array(writer_schema, decoder) + result = None + elif writer_schema.type == 'map': + await self.skip_map(writer_schema, decoder) + result = None + elif writer_schema.type in ['union', 'error_union']: + result = await self.skip_union(writer_schema, decoder) + elif writer_schema.type in ['record', 'error', 'request']: + await self.skip_record(writer_schema, decoder) + result = None + else: + fail_msg = "Unknown schema type: %s" % writer_schema.type + raise schema.AvroException(fail_msg) + return result + + @staticmethod + async def read_fixed(writer_schema, decoder): + """ + Fixed instances are encoded using the number of bytes declared + in the schema. + """ + return await decoder.read(writer_schema.size) + + @staticmethod + async def skip_fixed(writer_schema, decoder): + return await decoder.skip(writer_schema.size) + + @staticmethod + async def read_enum(writer_schema, decoder): + """ + An enum is encoded by a int, representing the zero-based position + of the symbol in the schema. + """ + # read data + index_of_symbol = await decoder.read_int() + if index_of_symbol >= len(writer_schema.symbols): + fail_msg = "Can't access enum index %d for enum with %d symbols" \ + % (index_of_symbol, len(writer_schema.symbols)) + raise SchemaResolutionException(fail_msg, writer_schema) + read_symbol = writer_schema.symbols[index_of_symbol] + return read_symbol + + @staticmethod + async def skip_enum(decoder): + return await decoder.skip_int() + + async def read_array(self, writer_schema, decoder): + """ + Arrays are encoded as a series of blocks. + + Each block consists of a long count value, + followed by that many array items. + A block with count zero indicates the end of the array. + Each item is encoded per the array's item schema. + + If a block's count is negative, + then the count is followed immediately by a long block size, + indicating the number of bytes in the block. + The actual count in this case + is the absolute value of the count written. + """ + read_items = [] + block_count = await decoder.read_long() + while block_count != 0: + if block_count < 0: + block_count = -block_count + await decoder.read_long() + for _ in range(block_count): + read_items.append(await self.read_data(writer_schema.items, decoder)) + block_count = await decoder.read_long() + return read_items + + async def skip_array(self, writer_schema, decoder): + block_count = await decoder.read_long() + while block_count != 0: + if block_count < 0: + block_size = await decoder.read_long() + await decoder.skip(block_size) + else: + for _ in range(block_count): + await self.skip_data(writer_schema.items, decoder) + block_count = await decoder.read_long() + + async def read_map(self, writer_schema, decoder): + """ + Maps are encoded as a series of blocks. + + Each block consists of a long count value, + followed by that many key/value pairs. + A block with count zero indicates the end of the map. + Each item is encoded per the map's value schema. + + If a block's count is negative, + then the count is followed immediately by a long block size, + indicating the number of bytes in the block. + The actual count in this case + is the absolute value of the count written. + """ + read_items = {} + block_count = await decoder.read_long() + while block_count != 0: + if block_count < 0: + block_count = -block_count + await decoder.read_long() + for _ in range(block_count): + key = await decoder.read_utf8() + read_items[key] = await self.read_data(writer_schema.values, decoder) + block_count = await decoder.read_long() + return read_items + + async def skip_map(self, writer_schema, decoder): + block_count = await decoder.read_long() + while block_count != 0: + if block_count < 0: + block_size = await decoder.read_long() + await decoder.skip(block_size) + else: + for _ in range(block_count): + await decoder.skip_utf8() + await self.skip_data(writer_schema.values, decoder) + block_count = await decoder.read_long() + + async def read_union(self, writer_schema, decoder): + """ + A union is encoded by first writing a long value indicating + the zero-based position within the union of the schema of its value. + The value is then encoded per the indicated schema within the union. + """ + # schema resolution + index_of_schema = int(await decoder.read_long()) + if index_of_schema >= len(writer_schema.schemas): + fail_msg = "Can't access branch index %d for union with %d branches" \ + % (index_of_schema, len(writer_schema.schemas)) + raise SchemaResolutionException(fail_msg, writer_schema) + selected_writer_schema = writer_schema.schemas[index_of_schema] + + # read data + return await self.read_data(selected_writer_schema, decoder) + + async def skip_union(self, writer_schema, decoder): + index_of_schema = int(await decoder.read_long()) + if index_of_schema >= len(writer_schema.schemas): + fail_msg = "Can't access branch index %d for union with %d branches" \ + % (index_of_schema, len(writer_schema.schemas)) + raise SchemaResolutionException(fail_msg, writer_schema) + return await self.skip_data(writer_schema.schemas[index_of_schema], decoder) + + async def read_record(self, writer_schema, decoder): + """ + A record is encoded by encoding the values of its fields + in the order that they are declared. In other words, a record + is encoded as just the concatenation of the encodings of its fields. + Field values are encoded per their schema. + + Schema Resolution: + * the ordering of fields may be different: fields are matched by name. + * schemas for fields with the same name in both records are resolved + recursively. + * if the writer's record contains a field with a name not present in the + reader's record, the writer's value for that field is ignored. + * if the reader's record schema has a field that contains a default value, + and writer's schema does not have a field with the same name, then the + reader should use the default value from its field. + * if the reader's record schema has a field with no default value, and + writer's schema does not have a field with the same name, then the + field's value is unset. + """ + # schema resolution + read_record = {} + for field in writer_schema.fields: + field_val = await self.read_data(field.type, decoder) + read_record[field.name] = field_val + return read_record + + async def skip_record(self, writer_schema, decoder): + for field in writer_schema.fields: + await self.skip_data(field.type, decoder) + + +# ------------------------------------------------------------------------------ + +if __name__ == '__main__': + raise Exception('Not a standalone module') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/datafile.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/datafile.py new file mode 100644 index 00000000000..6e5813ddc52 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/datafile.py @@ -0,0 +1,248 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +"""Read/Write Avro File Object Containers.""" + +import io +import logging +import sys +import zlib + +from ..avro import avro_io +from ..avro import schema + +PY3 = sys.version_info[0] == 3 + +logger = logging.getLogger(__name__) + +# ------------------------------------------------------------------------------ +# Constants + +# Version of the container file: +VERSION = 1 + +if PY3: + MAGIC = b'Obj' + bytes([VERSION]) + MAGIC_SIZE = len(MAGIC) +else: + MAGIC = 'Obj' + chr(VERSION) + MAGIC_SIZE = len(MAGIC) + +# Size of the synchronization marker, in number of bytes: +SYNC_SIZE = 16 + +# Schema of the container header: +META_SCHEMA = schema.parse(""" +{ + "type": "record", "name": "org.apache.avro.file.Header", + "fields": [{ + "name": "magic", + "type": {"type": "fixed", "name": "magic", "size": %(magic_size)d} + }, { + "name": "meta", + "type": {"type": "map", "values": "bytes"} + }, { + "name": "sync", + "type": {"type": "fixed", "name": "sync", "size": %(sync_size)d} + }] +} +""" % { + 'magic_size': MAGIC_SIZE, + 'sync_size': SYNC_SIZE, +}) + +# Codecs supported by container files: +VALID_CODECS = frozenset(['null', 'deflate']) + +# Metadata key associated to the schema: +SCHEMA_KEY = "avro.schema" + + +# ------------------------------------------------------------------------------ +# Exceptions + + +class DataFileException(schema.AvroException): + """Problem reading or writing file object containers.""" + +# ------------------------------------------------------------------------------ + + +class DataFileReader(object): + """Read files written by DataFileWriter.""" + + def __init__(self, reader, datum_reader, **kwargs): + """Initializes a new data file reader. + + Args: + reader: Open file to read from. + datum_reader: Avro datum reader. + """ + self._reader = reader + self._raw_decoder = avro_io.BinaryDecoder(reader) + self._header_reader = kwargs.pop('header_reader', None) + self._header_decoder = None if self._header_reader is None else avro_io.BinaryDecoder(self._header_reader) + self._datum_decoder = None # Maybe reset at every block. + self._datum_reader = datum_reader + + # In case self._reader only has partial content(without header). + # seek(0, 0) to make sure read the (partial)content from beginning. + self._reader.seek(0, 0) + + # read the header: magic, meta, sync + self._read_header() + + # ensure codec is valid + avro_codec_raw = self.get_meta('avro.codec') + if avro_codec_raw is None: + self.codec = "null" + else: + self.codec = avro_codec_raw.decode('utf-8') + if self.codec not in VALID_CODECS: + raise DataFileException('Unknown codec: %s.' % self.codec) + + # get ready to read + self._block_count = 0 + + # header_reader indicates reader only has partial content. The reader doesn't have block header, + # so we read use the block count stored last time. + # Also ChangeFeed only has codec==null, so use _raw_decoder is good. + if self._header_reader is not None: + self._block_count = self._reader.block_count + self._datum_decoder = self._raw_decoder + + self.datum_reader.writer_schema = ( + schema.parse(self.get_meta(SCHEMA_KEY).decode('utf-8'))) + + def __enter__(self): + return self + + def __exit__(self, data_type, value, traceback): + # Perform a close if there's no exception + if data_type is None: + self.close() + + def __iter__(self): + return self + + # read-only properties + @property + def reader(self): + return self._reader + + @property + def raw_decoder(self): + return self._raw_decoder + + @property + def datum_decoder(self): + return self._datum_decoder + + @property + def datum_reader(self): + return self._datum_reader + + @property + def sync_marker(self): + return self._sync_marker + + @property + def meta(self): + return self._meta + + # read/write properties + @property + def block_count(self): + return self._block_count + + def get_meta(self, key): + """Reports the value of a given metadata key. + + Args: + key: Metadata key (string) to report the value of. + Returns: + Value associated to the metadata key, as bytes. + """ + return self._meta.get(key) + + def _read_header(self): + header_reader = self._header_reader if self._header_reader else self._reader + header_decoder = self._header_decoder if self._header_decoder else self._raw_decoder + + # seek to the beginning of the file to get magic block + header_reader.seek(0, 0) + + # read header into a dict + header = self.datum_reader.read_data(META_SCHEMA, header_decoder) + + # check magic number + if header.get('magic') != MAGIC: + fail_msg = "Not an Avro data file: %s doesn't match %s." \ + % (header.get('magic'), MAGIC) + raise schema.AvroException(fail_msg) + + # set metadata + self._meta = header['meta'] + + # set sync marker + self._sync_marker = header['sync'] + + def _read_block_header(self): + self._block_count = self.raw_decoder.read_long() + if self.codec == "null": + # Skip a long; we don't need to use the length. + self.raw_decoder.skip_long() + self._datum_decoder = self._raw_decoder + elif self.codec == 'deflate': + # Compressed data is stored as (length, data), which + # corresponds to how the "bytes" type is encoded. + data = self.raw_decoder.read_bytes() + # -15 is the log of the window size; negative indicates + # "raw" (no zlib headers) decompression. See zlib.h. + uncompressed = zlib.decompress(data, -15) + self._datum_decoder = avro_io.BinaryDecoder(io.BytesIO(uncompressed)) + else: + raise DataFileException("Unknown codec: %r" % self.codec) + + def _skip_sync(self): + """ + Read the length of the sync marker; if it matches the sync marker, + return True. Otherwise, seek back to where we started and return False. + """ + proposed_sync_marker = self.reader.read(SYNC_SIZE) + if SYNC_SIZE > 0 and not proposed_sync_marker: + raise StopIteration + if proposed_sync_marker != self.sync_marker: + self.reader.seek(-SYNC_SIZE, 1) + + def __next__(self): + """Return the next datum in the file.""" + if self.block_count == 0: + self._skip_sync() + self._read_block_header() + + datum = self.datum_reader.read(self.datum_decoder) + self._block_count -= 1 + + # event_position and block_count are to support reading from current position in the future read, + # no need to downloading from the beginning of avro file with these two attr. + if hasattr(self._reader, 'event_position'): + self.reader.block_count = self.block_count + self.reader.track_event_position() + + return datum + + # PY2 + def next(self): + return self.__next__() + + def close(self): + """Close this reader.""" + self.reader.close() + + +if __name__ == '__main__': + raise Exception('Not a standalone module') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/datafile_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/datafile_async.py new file mode 100644 index 00000000000..1a7324d56b3 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/datafile_async.py @@ -0,0 +1,198 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +"""Read/Write Avro File Object Containers.""" + +import logging +import sys + +from ..avro import avro_io_async +from ..avro import schema +from .datafile import DataFileException +from .datafile import MAGIC, SYNC_SIZE, META_SCHEMA, SCHEMA_KEY + + +PY3 = sys.version_info[0] == 3 + +logger = logging.getLogger(__name__) + +# ------------------------------------------------------------------------------ +# Constants + +# Codecs supported by container files: +VALID_CODECS = frozenset(['null']) + + +class AsyncDataFileReader(object): + """Read files written by DataFileWriter.""" + + def __init__(self, reader, datum_reader, **kwargs): + """Initializes a new data file reader. + + Args: + reader: Open file to read from. + datum_reader: Avro datum reader. + """ + self._reader = reader + self._raw_decoder = avro_io_async.AsyncBinaryDecoder(reader) + self._header_reader = kwargs.pop('header_reader', None) + self._header_decoder = None if self._header_reader is None else \ + avro_io_async.AsyncBinaryDecoder(self._header_reader) + self._datum_decoder = None # Maybe reset at every block. + self._datum_reader = datum_reader + self.codec = "null" + self._block_count = 0 + self._meta = None + self._sync_marker = None + + async def init(self): + # In case self._reader only has partial content(without header). + # seek(0, 0) to make sure read the (partial)content from beginning. + await self._reader.seek(0, 0) + + # read the header: magic, meta, sync + await self._read_header() + + # ensure codec is valid + avro_codec_raw = self.get_meta('avro.codec') + if avro_codec_raw is None: + self.codec = "null" + else: + self.codec = avro_codec_raw.decode('utf-8') + if self.codec not in VALID_CODECS: + raise DataFileException('Unknown codec: %s.' % self.codec) + + # get ready to read + self._block_count = 0 + + # header_reader indicates reader only has partial content. The reader doesn't have block header, + # so we read use the block count stored last time. + # Also ChangeFeed only has codec==null, so use _raw_decoder is good. + if self._header_reader is not None: + self._block_count = self._reader.block_count + self._datum_decoder = self._raw_decoder + + self.datum_reader.writer_schema = ( + schema.parse(self.get_meta(SCHEMA_KEY).decode('utf-8'))) + return self + + async def __aenter__(self): + return self + + async def __aexit__(self, data_type, value, traceback): + # Perform a close if there's no exception + if data_type is None: + self.close() + + def __aiter__(self): + return self + + # read-only properties + @property + def reader(self): + return self._reader + + @property + def raw_decoder(self): + return self._raw_decoder + + @property + def datum_decoder(self): + return self._datum_decoder + + @property + def datum_reader(self): + return self._datum_reader + + @property + def sync_marker(self): + return self._sync_marker + + @property + def meta(self): + return self._meta + + # read/write properties + @property + def block_count(self): + return self._block_count + + def get_meta(self, key): + """Reports the value of a given metadata key. + + Args: + key: Metadata key (string) to report the value of. + Returns: + Value associated to the metadata key, as bytes. + """ + return self._meta.get(key) + + async def _read_header(self): + header_reader = self._header_reader if self._header_reader else self._reader + header_decoder = self._header_decoder if self._header_decoder else self._raw_decoder + + # seek to the beginning of the file to get magic block + await header_reader.seek(0, 0) + + # read header into a dict + header = await self.datum_reader.read_data(META_SCHEMA, header_decoder) + + # check magic number + if header.get('magic') != MAGIC: + fail_msg = "Not an Avro data file: %s doesn't match %s." \ + % (header.get('magic'), MAGIC) + raise schema.AvroException(fail_msg) + + # set metadata + self._meta = header['meta'] + + # set sync marker + self._sync_marker = header['sync'] + + async def _read_block_header(self): + self._block_count = await self.raw_decoder.read_long() + if self.codec == "null": + # Skip a long; we don't need to use the length. + await self.raw_decoder.skip_long() + self._datum_decoder = self._raw_decoder + else: + raise DataFileException("Unknown codec: %r" % self.codec) + + async def _skip_sync(self): + """ + Read the length of the sync marker; if it matches the sync marker, + return True. Otherwise, seek back to where we started and return False. + """ + proposed_sync_marker = await self.reader.read(SYNC_SIZE) + if SYNC_SIZE > 0 and not proposed_sync_marker: + raise StopAsyncIteration + if proposed_sync_marker != self.sync_marker: + await self.reader.seek(-SYNC_SIZE, 1) + + async def __anext__(self): + """Return the next datum in the file.""" + if self.block_count == 0: + await self._skip_sync() + await self._read_block_header() + + datum = await self.datum_reader.read(self.datum_decoder) + self._block_count -= 1 + + # event_position and block_count are to support reading from current position in the future read, + # no need to downloading from the beginning of avro file with these two attr. + if hasattr(self._reader, 'event_position'): + self.reader.block_count = self.block_count + await self.reader.track_event_position() + + return datum + + def close(self): + """Close this reader.""" + self.reader.close() + + +if __name__ == '__main__': + raise Exception('Not a standalone module') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/schema.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/schema.py new file mode 100644 index 00000000000..ffe28530167 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/avro/schema.py @@ -0,0 +1,1221 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines + +"""Representation of Avro schemas. + +A schema may be one of: + - A record, mapping field names to field value data; + - An error, equivalent to a record; + - An enum, containing one of a small set of symbols; + - An array of values, all of the same schema; + - A map containing string/value pairs, each of a declared schema; + - A union of other schemas; + - A fixed sized binary object; + - A unicode string; + - A sequence of bytes; + - A 32-bit signed int; + - A 64-bit signed long; + - A 32-bit floating-point float; + - A 64-bit floating-point double; + - A boolean; + - Null. +""" + +import abc +import json +import logging +import re +import sys +from six import with_metaclass + +PY2 = sys.version_info[0] == 2 + +if PY2: + _str = unicode # pylint: disable=undefined-variable +else: + _str = str + +logger = logging.getLogger(__name__) + +# ------------------------------------------------------------------------------ +# Constants + +# Log level more verbose than DEBUG=10, INFO=20, etc. +DEBUG_VERBOSE = 5 + +NULL = 'null' +BOOLEAN = 'boolean' +STRING = 'string' +BYTES = 'bytes' +INT = 'int' +LONG = 'long' +FLOAT = 'float' +DOUBLE = 'double' +FIXED = 'fixed' +ENUM = 'enum' +RECORD = 'record' +ERROR = 'error' +ARRAY = 'array' +MAP = 'map' +UNION = 'union' + +# Request and error unions are part of Avro protocols: +REQUEST = 'request' +ERROR_UNION = 'error_union' + +PRIMITIVE_TYPES = frozenset([ + NULL, + BOOLEAN, + STRING, + BYTES, + INT, + LONG, + FLOAT, + DOUBLE, +]) + +NAMED_TYPES = frozenset([ + FIXED, + ENUM, + RECORD, + ERROR, +]) + +VALID_TYPES = frozenset.union( + PRIMITIVE_TYPES, + NAMED_TYPES, + [ + ARRAY, + MAP, + UNION, + REQUEST, + ERROR_UNION, + ], +) + +SCHEMA_RESERVED_PROPS = frozenset([ + 'type', + 'name', + 'namespace', + 'fields', # Record + 'items', # Array + 'size', # Fixed + 'symbols', # Enum + 'values', # Map + 'doc', +]) + +FIELD_RESERVED_PROPS = frozenset([ + 'default', + 'name', + 'doc', + 'order', + 'type', +]) + +VALID_FIELD_SORT_ORDERS = frozenset([ + 'ascending', + 'descending', + 'ignore', +]) + + +# ------------------------------------------------------------------------------ +# Exceptions + + +class Error(Exception): + """Base class for errors in this module.""" + + +class AvroException(Error): + """Generic Avro schema error.""" + + +class SchemaParseException(AvroException): + """Error while parsing a JSON schema descriptor.""" + + +class Schema(with_metaclass(abc.ABCMeta, object)): + """Abstract base class for all Schema classes.""" + + def __init__(self, data_type, other_props=None): + """Initializes a new schema object. + + Args: + data_type: Type of the schema to initialize. + other_props: Optional dictionary of additional properties. + """ + if data_type not in VALID_TYPES: + raise SchemaParseException('%r is not a valid Avro type.' % data_type) + + # All properties of this schema, as a map: property name -> property value + self._props = {} + + self._props['type'] = data_type + self._type = data_type + + if other_props: + self._props.update(other_props) + + @property + def namespace(self): + """Returns: the namespace this schema belongs to, if any, or None.""" + return self._props.get('namespace', None) + + @property + def type(self): + """Returns: the type of this schema.""" + return self._type + + @property + def doc(self): + """Returns: the documentation associated to this schema, if any, or None.""" + return self._props.get('doc', None) + + @property + def props(self): + """Reports all the properties of this schema. + + Includes all properties, reserved and non reserved. + JSON properties of this schema are directly generated from this dict. + + Returns: + A dictionary of properties associated to this schema. + """ + return self._props + + @property + def other_props(self): + """Returns: the dictionary of non-reserved properties.""" + return dict(filter_keys_out(items=self._props, keys=SCHEMA_RESERVED_PROPS)) + + def __str__(self): + """Returns: the JSON representation of this schema.""" + return json.dumps(self.to_json(names=None)) + + @abc.abstractmethod + def to_json(self, names): + """Converts the schema object into its AVRO specification representation. + + Schema types that have names (records, enums, and fixed) must + be aware of not re-defining schemas that are already listed + in the parameter names. + """ + raise Exception('Cannot run abstract method.') + + +# ------------------------------------------------------------------------------ + + +_RE_NAME = re.compile(r'[A-Za-z_][A-Za-z0-9_]*') + +_RE_FULL_NAME = re.compile( + r'^' + r'[.]?(?:[A-Za-z_][A-Za-z0-9_]*[.])*' # optional namespace + r'([A-Za-z_][A-Za-z0-9_]*)' # name + r'$' +) + + +class Name(object): + """Representation of an Avro name.""" + + def __init__(self, name, namespace=None): + """Parses an Avro name. + + Args: + name: Avro name to parse (relative or absolute). + namespace: Optional explicit namespace if the name is relative. + """ + # Normalize: namespace is always defined as a string, possibly empty. + if namespace is None: + namespace = '' + + if '.' in name: + # name is absolute, namespace is ignored: + self._fullname = name + + match = _RE_FULL_NAME.match(self._fullname) + if match is None: + raise SchemaParseException( + 'Invalid absolute schema name: %r.' % self._fullname) + + self._name = match.group(1) + self._namespace = self._fullname[:-(len(self._name) + 1)] + + else: + # name is relative, combine with explicit namespace: + self._name = name + self._namespace = namespace + self._fullname = (self._name + if (not self._namespace) else + '%s.%s' % (self._namespace, self._name)) + + # Validate the fullname: + if _RE_FULL_NAME.match(self._fullname) is None: + raise SchemaParseException( + 'Invalid schema name %r infered from name %r and namespace %r.' + % (self._fullname, self._name, self._namespace)) + + def __eq__(self, other): + if not isinstance(other, Name): + return NotImplemented + return self.fullname == other.fullname + + @property + def simple_name(self): + """Returns: the simple name part of this name.""" + return self._name + + @property + def namespace(self): + """Returns: this name's namespace, possible the empty string.""" + return self._namespace + + @property + def fullname(self): + """Returns: the full name.""" + return self._fullname + + +# ------------------------------------------------------------------------------ + + +class Names(object): + """Tracks Avro named schemas and default namespace during parsing.""" + + def __init__(self, default_namespace=None, names=None): + """Initializes a new name tracker. + + Args: + default_namespace: Optional default namespace. + names: Optional initial mapping of known named schemas. + """ + if names is None: + names = {} + self._names = names + self._default_namespace = default_namespace + + @property + def names(self): + """Returns: the mapping of known named schemas.""" + return self._names + + @property + def default_namespace(self): + """Returns: the default namespace, if any, or None.""" + return self._default_namespace + + def new_with_default_namespace(self, namespace): + """Creates a new name tracker from this tracker, but with a new default ns. + + Args: + namespace: New default namespace to use. + Returns: + New name tracker with the specified default namespace. + """ + return Names(names=self._names, default_namespace=namespace) + + def get_name(self, name, namespace=None): + """Resolves the Avro name according to this name tracker's state. + + Args: + name: Name to resolve (absolute or relative). + namespace: Optional explicit namespace. + Returns: + The specified name, resolved according to this tracker. + """ + if namespace is None: + namespace = self._default_namespace + return Name(name=name, namespace=namespace) + + def get_schema(self, name, namespace=None): + """Resolves an Avro schema by name. + + Args: + name: Name (relative or absolute) of the Avro schema to look up. + namespace: Optional explicit namespace. + Returns: + The schema with the specified name, if any, or None. + """ + avro_name = self.get_name(name=name, namespace=namespace) + return self._names.get(avro_name.fullname, None) + + def prune_namespace(self, properties): + """given a properties, return properties with namespace removed if + it matches the own default namespace + """ + if self.default_namespace is None: + # I have no default -- no change + return properties + if 'namespace' not in properties: + # he has no namespace - no change + return properties + if properties['namespace'] != self.default_namespace: + # we're different - leave his stuff alone + return properties + # we each have a namespace and it's redundant. delete his. + prunable = properties.copy() + del prunable['namespace'] + return prunable + + def register(self, schema): + """Registers a new named schema in this tracker. + + Args: + schema: Named Avro schema to register in this tracker. + """ + if schema.fullname in VALID_TYPES: + raise SchemaParseException( + '%s is a reserved type name.' % schema.fullname) + if schema.fullname in self.names: + raise SchemaParseException( + 'Avro name %r already exists.' % schema.fullname) + + logger.log(DEBUG_VERBOSE, 'Register new name for %r', schema.fullname) + self._names[schema.fullname] = schema + + +# ------------------------------------------------------------------------------ + + +class NamedSchema(Schema): + """Abstract base class for named schemas. + + Named schemas are enumerated in NAMED_TYPES. + """ + + def __init__( + self, + data_type, + name=None, + namespace=None, + names=None, + other_props=None, + ): + """Initializes a new named schema object. + + Args: + data_type: Type of the named schema. + name: Name (absolute or relative) of the schema. + namespace: Optional explicit namespace if name is relative. + names: Tracker to resolve and register Avro names. + other_props: Optional map of additional properties of the schema. + """ + assert (data_type in NAMED_TYPES), ('Invalid named type: %r' % data_type) + self._avro_name = names.get_name(name=name, namespace=namespace) + + super(NamedSchema, self).__init__(data_type, other_props) + + names.register(self) + + self._props['name'] = self.name + if self.namespace: + self._props['namespace'] = self.namespace + + @property + def avro_name(self): + """Returns: the Name object describing this schema's name.""" + return self._avro_name + + @property + def name(self): + return self._avro_name.simple_name + + @property + def namespace(self): + return self._avro_name.namespace + + @property + def fullname(self): + return self._avro_name.fullname + + def name_ref(self, names): + """Reports this schema name relative to the specified name tracker. + + Args: + names: Avro name tracker to relativise this schema name against. + Returns: + This schema name, relativised against the specified name tracker. + """ + if self.namespace == names.default_namespace: + return self.name + return self.fullname + + @abc.abstractmethod + def to_json(self, names): + """Converts the schema object into its AVRO specification representation. + + Schema types that have names (records, enums, and fixed) must + be aware of not re-defining schemas that are already listed + in the parameter names. + """ + raise Exception('Cannot run abstract method.') + +# ------------------------------------------------------------------------------ + + +_NO_DEFAULT = object() + + +class Field(object): + """Representation of the schema of a field in a record.""" + + def __init__( + self, + data_type, + name, + index, + has_default, + default=_NO_DEFAULT, + order=None, + doc=None, + other_props=None + ): + """Initializes a new Field object. + + Args: + data_type: Avro schema of the field. + name: Name of the field. + index: 0-based position of the field. + has_default: + default: + order: + doc: + other_props: + """ + if (not isinstance(name, _str)) or (not name): + raise SchemaParseException('Invalid record field name: %r.' % name) + if (order is not None) and (order not in VALID_FIELD_SORT_ORDERS): + raise SchemaParseException('Invalid record field order: %r.' % order) + + # All properties of this record field: + self._props = {} + + self._has_default = has_default + if other_props: + self._props.update(other_props) + + self._index = index + self._type = self._props['type'] = data_type + self._name = self._props['name'] = name + + if has_default: + self._props['default'] = default + + if order is not None: + self._props['order'] = order + + if doc is not None: + self._props['doc'] = doc + + @property + def type(self): + """Returns: the schema of this field.""" + return self._type + + @property + def name(self): + """Returns: this field name.""" + return self._name + + @property + def index(self): + """Returns: the 0-based index of this field in the record.""" + return self._index + + @property + def default(self): + return self._props['default'] + + @property + def has_default(self): + return self._has_default + + @property + def order(self): + return self._props.get('order', None) + + @property + def doc(self): + return self._props.get('doc', None) + + @property + def props(self): + return self._props + + @property + def other_props(self): + return filter_keys_out(items=self._props, keys=FIELD_RESERVED_PROPS) + + def __str__(self): + return json.dumps(self.to_json()) + + def to_json(self, names=None): + if names is None: + names = Names() + to_dump = self.props.copy() + to_dump['type'] = self.type.to_json(names) + return to_dump + + def __eq__(self, that): + to_cmp = json.loads(_str(self)) + return to_cmp == json.loads(_str(that)) + + +# ------------------------------------------------------------------------------ +# Primitive Types + + +class PrimitiveSchema(Schema): + """Schema of a primitive Avro type. + + Valid primitive types are defined in PRIMITIVE_TYPES. + """ + + def __init__(self, data_type, other_props=None): + """Initializes a new schema object for the specified primitive type. + + Args: + data_type: Type of the schema to construct. Must be primitive. + """ + if data_type not in PRIMITIVE_TYPES: + raise AvroException('%r is not a valid primitive type.' % data_type) + super(PrimitiveSchema, self).__init__(data_type, other_props=other_props) + + @property + def name(self): + """Returns: the simple name of this schema.""" + # The name of a primitive type is the type itself. + return self.type + + @property + def fullname(self): + """Returns: the fully qualified name of this schema.""" + # The full name is the simple name for primitive schema. + return self.name + + def to_json(self, names=None): + if len(self.props) == 1: + return self.fullname + return self.props + + def __eq__(self, that): + return self.props == that.props + + +# ------------------------------------------------------------------------------ +# Complex Types (non-recursive) + + +class FixedSchema(NamedSchema): + def __init__( + self, + name, + namespace, + size, + names=None, + other_props=None, + ): + # Ensure valid ctor args + if not isinstance(size, int): + fail_msg = 'Fixed Schema requires a valid integer for size property.' + raise AvroException(fail_msg) + + super(FixedSchema, self).__init__( + data_type=FIXED, + name=name, + namespace=namespace, + names=names, + other_props=other_props, + ) + self._props['size'] = size + + @property + def size(self): + """Returns: the size of this fixed schema, in bytes.""" + return self._props['size'] + + def to_json(self, names=None): + if names is None: + names = Names() + if self.fullname in names.names: + return self.name_ref(names) + names.names[self.fullname] = self + return names.prune_namespace(self.props) + + def __eq__(self, that): + return self.props == that.props + + +# ------------------------------------------------------------------------------ + + +class EnumSchema(NamedSchema): + def __init__( + self, + name, + namespace, + symbols, + names=None, + doc=None, + other_props=None, + ): + """Initializes a new enumeration schema object. + + Args: + name: Simple name of this enumeration. + namespace: Optional namespace. + symbols: Ordered list of symbols defined in this enumeration. + names: + doc: + other_props: + """ + symbols = tuple(symbols) + symbol_set = frozenset(symbols) + if (len(symbol_set) != len(symbols) + or not all(map(lambda symbol: isinstance(symbol, _str), symbols))): + raise AvroException( + 'Invalid symbols for enum schema: %r.' % (symbols,)) + + super(EnumSchema, self).__init__( + data_type=ENUM, + name=name, + namespace=namespace, + names=names, + other_props=other_props, + ) + + self._props['symbols'] = symbols + if doc is not None: + self._props['doc'] = doc + + @property + def symbols(self): + """Returns: the symbols defined in this enum.""" + return self._props['symbols'] + + def to_json(self, names=None): + if names is None: + names = Names() + if self.fullname in names.names: + return self.name_ref(names) + names.names[self.fullname] = self + return names.prune_namespace(self.props) + + def __eq__(self, that): + return self.props == that.props + + +# ------------------------------------------------------------------------------ +# Complex Types (recursive) + + +class ArraySchema(Schema): + """Schema of an array.""" + + def __init__(self, items, other_props=None): + """Initializes a new array schema object. + + Args: + items: Avro schema of the array items. + other_props: + """ + super(ArraySchema, self).__init__( + data_type=ARRAY, + other_props=other_props, + ) + self._items_schema = items + self._props['items'] = items + + @property + def items(self): + """Returns: the schema of the items in this array.""" + return self._items_schema + + def to_json(self, names=None): + if names is None: + names = Names() + to_dump = self.props.copy() + item_schema = self.items + to_dump['items'] = item_schema.to_json(names) + return to_dump + + def __eq__(self, that): + to_cmp = json.loads(_str(self)) + return to_cmp == json.loads(_str(that)) + + +# ------------------------------------------------------------------------------ + + +class MapSchema(Schema): + """Schema of a map.""" + + def __init__(self, values, other_props=None): + """Initializes a new map schema object. + + Args: + values: Avro schema of the map values. + other_props: + """ + super(MapSchema, self).__init__( + data_type=MAP, + other_props=other_props, + ) + self._values_schema = values + self._props['values'] = values + + @property + def values(self): + """Returns: the schema of the values in this map.""" + return self._values_schema + + def to_json(self, names=None): + if names is None: + names = Names() + to_dump = self.props.copy() + to_dump['values'] = self.values.to_json(names) + return to_dump + + def __eq__(self, that): + to_cmp = json.loads(_str(self)) + return to_cmp == json.loads(_str(that)) + + +# ------------------------------------------------------------------------------ + + +class UnionSchema(Schema): + """Schema of a union.""" + + def __init__(self, schemas): + """Initializes a new union schema object. + + Args: + schemas: Ordered collection of schema branches in the union. + """ + super(UnionSchema, self).__init__(data_type=UNION) + self._schemas = tuple(schemas) + + # Validate the schema branches: + + # All named schema names are unique: + named_branches = tuple( + filter(lambda schema: schema.type in NAMED_TYPES, self._schemas)) + unique_names = frozenset(map(lambda schema: schema.fullname, named_branches)) + if len(unique_names) != len(named_branches): + raise AvroException( + 'Invalid union branches with duplicate schema name:%s' + % ''.join(map(lambda schema: ('\n\t - %s' % schema), self._schemas))) + + # Types are unique within unnamed schemas, and union is not allowed: + unnamed_branches = tuple( + filter(lambda schema: schema.type not in NAMED_TYPES, self._schemas)) + unique_types = frozenset(map(lambda schema: schema.type, unnamed_branches)) + if UNION in unique_types: + raise AvroException( + 'Invalid union branches contain other unions:%s' + % ''.join(map(lambda schema: ('\n\t - %s' % schema), self._schemas))) + if len(unique_types) != len(unnamed_branches): + raise AvroException( + 'Invalid union branches with duplicate type:%s' + % ''.join(map(lambda schema: ('\n\t - %s' % schema), self._schemas))) + + @property + def schemas(self): + """Returns: the ordered list of schema branches in the union.""" + return self._schemas + + def to_json(self, names=None): + if names is None: + names = Names() + to_dump = [] + for schema in self.schemas: + to_dump.append(schema.to_json(names)) + return to_dump + + def __eq__(self, that): + to_cmp = json.loads(_str(self)) + return to_cmp == json.loads(_str(that)) + + +# ------------------------------------------------------------------------------ + + +class ErrorUnionSchema(UnionSchema): + """Schema representing the declared errors of a protocol message.""" + + def __init__(self, schemas): + """Initializes an error-union schema. + + Args: + schema: collection of error schema. + """ + # Prepend "string" to handle system errors + schemas = [PrimitiveSchema(data_type=STRING)] + list(schemas) + super(ErrorUnionSchema, self).__init__(schemas=schemas) + + def to_json(self, names=None): + if names is None: + names = Names() + to_dump = [] + for schema in self.schemas: + # Don't print the system error schema + if schema.type == STRING: + continue + to_dump.append(schema.to_json(names)) + return to_dump + + +# ------------------------------------------------------------------------------ + + +class RecordSchema(NamedSchema): + """Schema of a record.""" + + @staticmethod + def _make_field(index, field_desc, names): + """Builds field schemas from a list of field JSON descriptors. + + Args: + index: 0-based index of the field in the record. + field_desc: JSON descriptors of a record field. + Return: + The field schema. + """ + field_schema = schema_from_json_data( + json_data=field_desc['type'], + names=names, + ) + other_props = ( + dict(filter_keys_out(items=field_desc, keys=FIELD_RESERVED_PROPS))) + return Field( + data_type=field_schema, + name=field_desc['name'], + index=index, + has_default=('default' in field_desc), + default=field_desc.get('default', _NO_DEFAULT), + order=field_desc.get('order', None), + doc=field_desc.get('doc', None), + other_props=other_props, + ) + + @staticmethod + def make_field_list(field_desc_list, names): + """Builds field schemas from a list of field JSON descriptors. + + Guarantees field name unicity. + + Args: + field_desc_list: collection of field JSON descriptors. + names: Avro schema tracker. + Yields + Field schemas. + """ + for index, field_desc in enumerate(field_desc_list): + yield RecordSchema._make_field(index, field_desc, names) + + @staticmethod + def _make_field_map(fields): + """Builds the field map. + + Guarantees field name unicity. + + Args: + fields: iterable of field schema. + Returns: + A map of field schemas, indexed by name. + """ + field_map = {} + for field in fields: + if field.name in field_map: + raise SchemaParseException( + 'Duplicate record field name %r.' % field.name) + field_map[field.name] = field + return field_map + + def __init__( + self, + name, + namespace, + fields=None, + make_fields=None, + names=None, + record_type=RECORD, + doc=None, + other_props=None + ): + """Initializes a new record schema object. + + Args: + name: Name of the record (absolute or relative). + namespace: Optional namespace the record belongs to, if name is relative. + fields: collection of fields to add to this record. + Exactly one of fields or make_fields must be specified. + make_fields: function creating the fields that belong to the record. + The function signature is: make_fields(names) -> ordered field list. + Exactly one of fields or make_fields must be specified. + names: + record_type: Type of the record: one of RECORD, ERROR or REQUEST. + Protocol requests are not named. + doc: + other_props: + """ + if record_type == REQUEST: + # Protocol requests are not named: + super(RecordSchema, self).__init__( + data_type=REQUEST, + other_props=other_props, + ) + elif record_type in [RECORD, ERROR]: + # Register this record name in the tracker: + super(RecordSchema, self).__init__( + data_type=record_type, + name=name, + namespace=namespace, + names=names, + other_props=other_props, + ) + else: + raise SchemaParseException( + 'Invalid record type: %r.' % record_type) + + if record_type in [RECORD, ERROR]: + avro_name = names.get_name(name=name, namespace=namespace) + nested_names = names.new_with_default_namespace(namespace=avro_name.namespace) + elif record_type == REQUEST: + # Protocol request has no name: no need to change default namespace: + nested_names = names + + if fields is None: + fields = make_fields(names=nested_names) + else: + assert make_fields is None + self._fields = tuple(fields) + + self._field_map = RecordSchema._make_field_map(self._fields) + + self._props['fields'] = fields + if doc is not None: + self._props['doc'] = doc + + @property + def fields(self): + """Returns: the field schemas, as an ordered tuple.""" + return self._fields + + @property + def field_map(self): + """Returns: a read-only map of the field schemas index by field names.""" + return self._field_map + + def to_json(self, names=None): + if names is None: + names = Names() + # Request records don't have names + if self.type == REQUEST: + return [f.to_json(names) for f in self.fields] + + if self.fullname in names.names: + return self.name_ref(names) + names.names[self.fullname] = self + + to_dump = names.prune_namespace(self.props.copy()) + to_dump['fields'] = [f.to_json(names) for f in self.fields] + return to_dump + + def __eq__(self, that): + to_cmp = json.loads(_str(self)) + return to_cmp == json.loads(_str(that)) + + +# ------------------------------------------------------------------------------ +# Module functions + + +def filter_keys_out(items, keys): + """Filters a collection of (key, value) items. + + Exclude any item whose key belongs to keys. + + Args: + items: Dictionary of items to filter the keys out of. + keys: Keys to filter out. + Yields: + Filtered items. + """ + for key, value in items.items(): + if key in keys: + continue + yield key, value + + +# ------------------------------------------------------------------------------ + + +def _schema_from_json_string(json_string, names): + if json_string in PRIMITIVE_TYPES: + return PrimitiveSchema(data_type=json_string) + + # Look for a known named schema: + schema = names.get_schema(name=json_string) + if schema is None: + raise SchemaParseException( + 'Unknown named schema %r, known names: %r.' + % (json_string, sorted(names.names))) + return schema + + +def _schema_from_json_array(json_array, names): + def MakeSchema(desc): + return schema_from_json_data(json_data=desc, names=names) + + return UnionSchema(map(MakeSchema, json_array)) + + +def _schema_from_json_object(json_object, names): + data_type = json_object.get('type') + if data_type is None: + raise SchemaParseException( + 'Avro schema JSON descriptor has no "type" property: %r' % json_object) + + other_props = dict( + filter_keys_out(items=json_object, keys=SCHEMA_RESERVED_PROPS)) + + if data_type in PRIMITIVE_TYPES: + # FIXME should not ignore other properties + result = PrimitiveSchema(data_type, other_props=other_props) + + elif data_type in NAMED_TYPES: + name = json_object.get('name') + namespace = json_object.get('namespace', names.default_namespace) + if data_type == FIXED: + size = json_object.get('size') + result = FixedSchema(name, namespace, size, names, other_props) + elif data_type == ENUM: + symbols = json_object.get('symbols') + doc = json_object.get('doc') + result = EnumSchema(name, namespace, symbols, names, doc, other_props) + + elif data_type in [RECORD, ERROR]: + field_desc_list = json_object.get('fields', ()) + + def MakeFields(names): + return tuple(RecordSchema.make_field_list(field_desc_list, names)) + + result = RecordSchema( + name=name, + namespace=namespace, + make_fields=MakeFields, + names=names, + record_type=data_type, + doc=json_object.get('doc'), + other_props=other_props, + ) + else: + raise Exception('Internal error: unknown type %r.' % data_type) + + elif data_type in VALID_TYPES: + # Unnamed, non-primitive Avro type: + + if data_type == ARRAY: + items_desc = json_object.get('items') + if items_desc is None: + raise SchemaParseException( + 'Invalid array schema descriptor with no "items" : %r.' + % json_object) + result = ArraySchema( + items=schema_from_json_data(items_desc, names), + other_props=other_props, + ) + + elif data_type == MAP: + values_desc = json_object.get('values') + if values_desc is None: + raise SchemaParseException( + 'Invalid map schema descriptor with no "values" : %r.' + % json_object) + result = MapSchema( + values=schema_from_json_data(values_desc, names=names), + other_props=other_props, + ) + + elif data_type == ERROR_UNION: + error_desc_list = json_object.get('declared_errors') + assert error_desc_list is not None + error_schemas = map( + lambda desc: schema_from_json_data(desc, names=names), + error_desc_list) + result = ErrorUnionSchema(schemas=error_schemas) + + else: + raise Exception('Internal error: unknown type %r.' % data_type) + else: + raise SchemaParseException( + 'Invalid JSON descriptor for an Avro schema: %r' % json_object) + return result + + +# Parsers for the JSON data types: +_JSONDataParserTypeMap = { + _str: _schema_from_json_string, + list: _schema_from_json_array, + dict: _schema_from_json_object, +} + + +def schema_from_json_data(json_data, names=None): + """Builds an Avro Schema from its JSON descriptor. + + Args: + json_data: JSON data representing the descriptor of the Avro schema. + names: Optional tracker for Avro named schemas. + Returns: + The Avro schema parsed from the JSON descriptor. + Raises: + SchemaParseException: if the descriptor is invalid. + """ + if names is None: + names = Names() + + # Select the appropriate parser based on the JSON data type: + parser = _JSONDataParserTypeMap.get(type(json_data)) + if parser is None: + raise SchemaParseException( + 'Invalid JSON descriptor for an Avro schema: %r.' % json_data) + return parser(json_data, names=names) + + +# ------------------------------------------------------------------------------ + + +def parse(json_string): + """Constructs a Schema from its JSON descriptor in text form. + + Args: + json_string: String representation of the JSON descriptor of the schema. + Returns: + The parsed schema. + Raises: + SchemaParseException: on JSON parsing error, + or if the JSON descriptor is invalid. + """ + try: + json_data = json.loads(json_string) + except Exception as exn: + raise SchemaParseException( + 'Error parsing schema from JSON: %r. ' + 'Error message: %r.' + % (json_string, exn)) + + # Initialize the names object + names = Names() + + # construct the Avro Schema object + return schema_from_json_data(json_data, names) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/base_client.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/base_client.py new file mode 100644 index 00000000000..361931ae165 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/base_client.py @@ -0,0 +1,443 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import ( # pylint: disable=unused-import + Union, + Optional, + Any, + Iterable, + Dict, + List, + Type, + Tuple, + TYPE_CHECKING, +) +import logging + +try: + from urllib.parse import parse_qs, quote +except ImportError: + from urlparse import parse_qs # type: ignore + from urllib2 import quote # type: ignore + +import six + +from azure.core.configuration import Configuration +from azure.core.exceptions import HttpResponseError +from azure.core.pipeline import Pipeline +from azure.core.pipeline.transport import RequestsTransport, HttpTransport +from azure.core.pipeline.policies import ( + RedirectPolicy, + ContentDecodePolicy, + BearerTokenCredentialPolicy, + ProxyPolicy, + DistributedTracingPolicy, + HttpLoggingPolicy, + UserAgentPolicy +) + +from .constants import STORAGE_OAUTH_SCOPE, SERVICE_HOST_BASE, CONNECTION_TIMEOUT, READ_TIMEOUT +from .models import LocationMode +from .authentication import SharedKeyCredentialPolicy +from .shared_access_signature import QueryStringConstants +from .policies import ( + StorageHeadersPolicy, + StorageContentValidation, + StorageRequestHook, + StorageResponseHook, + StorageLoggingPolicy, + StorageHosts, + QueueMessagePolicy, + ExponentialRetry, +) +from .._version import VERSION +from .._generated.models import StorageErrorException +from .response_handlers import process_storage_error, PartialBatchErrorException + + +_LOGGER = logging.getLogger(__name__) +_SERVICE_PARAMS = { + "blob": {"primary": "BlobEndpoint", "secondary": "BlobSecondaryEndpoint"}, + "queue": {"primary": "QueueEndpoint", "secondary": "QueueSecondaryEndpoint"}, + "file": {"primary": "FileEndpoint", "secondary": "FileSecondaryEndpoint"}, + "dfs": {"primary": "BlobEndpoint", "secondary": "BlobEndpoint"}, +} + + +class StorageAccountHostsMixin(object): # pylint: disable=too-many-instance-attributes + def __init__( + self, + parsed_url, # type: Any + service, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + self._location_mode = kwargs.get("_location_mode", LocationMode.PRIMARY) + self._hosts = kwargs.get("_hosts") + self.scheme = parsed_url.scheme + + if service not in ["blob", "queue", "file-share", "dfs"]: + raise ValueError("Invalid service: {}".format(service)) + service_name = service.split('-')[0] + account = parsed_url.netloc.split(".{}.core.".format(service_name)) + + self.account_name = account[0] if len(account) > 1 else None + if not self.account_name and parsed_url.netloc.startswith("localhost") \ + or parsed_url.netloc.startswith("127.0.0.1"): + self.account_name = parsed_url.path.strip("/") + + self.credential = _format_shared_key_credential(self.account_name, credential) + if self.scheme.lower() != "https" and hasattr(self.credential, "get_token"): + raise ValueError("Token credential is only supported with HTTPS.") + + secondary_hostname = None + if hasattr(self.credential, "account_name"): + self.account_name = self.credential.account_name + secondary_hostname = "{}-secondary.{}.{}".format( + self.credential.account_name, service_name, SERVICE_HOST_BASE) + + if not self._hosts: + if len(account) > 1: + secondary_hostname = parsed_url.netloc.replace(account[0], account[0] + "-secondary") + if kwargs.get("secondary_hostname"): + secondary_hostname = kwargs["secondary_hostname"] + primary_hostname = (parsed_url.netloc + parsed_url.path).rstrip('/') + self._hosts = {LocationMode.PRIMARY: primary_hostname, LocationMode.SECONDARY: secondary_hostname} + + self.require_encryption = kwargs.get("require_encryption", False) + self.key_encryption_key = kwargs.get("key_encryption_key") + self.key_resolver_function = kwargs.get("key_resolver_function") + self._config, self._pipeline = self._create_pipeline(self.credential, storage_sdk=service, **kwargs) + + def __enter__(self): + self._client.__enter__() + return self + + def __exit__(self, *args): + self._client.__exit__(*args) + + def close(self): + """ This method is to close the sockets opened by the client. + It need not be used when using with a context manager. + """ + self._client.close() + + @property + def url(self): + """The full endpoint URL to this entity, including SAS token if used. + + This could be either the primary endpoint, + or the secondary endpoint depending on the current :func:`location_mode`. + """ + return self._format_url(self._hosts[self._location_mode]) + + @property + def primary_endpoint(self): + """The full primary endpoint URL. + + :type: str + """ + return self._format_url(self._hosts[LocationMode.PRIMARY]) + + @property + def primary_hostname(self): + """The hostname of the primary endpoint. + + :type: str + """ + return self._hosts[LocationMode.PRIMARY] + + @property + def secondary_endpoint(self): + """The full secondary endpoint URL if configured. + + If not available a ValueError will be raised. To explicitly specify a secondary hostname, use the optional + `secondary_hostname` keyword argument on instantiation. + + :type: str + :raise ValueError: + """ + if not self._hosts[LocationMode.SECONDARY]: + raise ValueError("No secondary host configured.") + return self._format_url(self._hosts[LocationMode.SECONDARY]) + + @property + def secondary_hostname(self): + """The hostname of the secondary endpoint. + + If not available this will be None. To explicitly specify a secondary hostname, use the optional + `secondary_hostname` keyword argument on instantiation. + + :type: str or None + """ + return self._hosts[LocationMode.SECONDARY] + + @property + def location_mode(self): + """The location mode that the client is currently using. + + By default this will be "primary". Options include "primary" and "secondary". + + :type: str + """ + + return self._location_mode + + @location_mode.setter + def location_mode(self, value): + if self._hosts.get(value): + self._location_mode = value + self._client._config.url = self.url # pylint: disable=protected-access + else: + raise ValueError("No host URL for location mode: {}".format(value)) + + @property + def api_version(self): + """The version of the Storage API used for requests. + + :type: str + """ + return self._client._config.version # pylint: disable=protected-access + + def _format_query_string(self, sas_token, credential, snapshot=None, share_snapshot=None): + query_str = "?" + if snapshot: + query_str += "snapshot={}&".format(self.snapshot) + if share_snapshot: + query_str += "sharesnapshot={}&".format(self.snapshot) + if sas_token and not credential: + query_str += sas_token + elif is_credential_sastoken(credential): + query_str += credential.lstrip("?") + credential = None + return query_str.rstrip("?&"), credential + + def _create_pipeline(self, credential, **kwargs): + # type: (Any, **Any) -> Tuple[Configuration, Pipeline] + self._credential_policy = None + if hasattr(credential, "get_token"): + self._credential_policy = BearerTokenCredentialPolicy(credential, STORAGE_OAUTH_SCOPE) + elif isinstance(credential, SharedKeyCredentialPolicy): + self._credential_policy = credential + elif credential is not None: + raise TypeError("Unsupported credential: {}".format(credential)) + + config = kwargs.get("_configuration") or create_configuration(**kwargs) + if kwargs.get("_pipeline"): + return config, kwargs["_pipeline"] + config.transport = kwargs.get("transport") # type: ignore + kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) + kwargs.setdefault("read_timeout", READ_TIMEOUT) + if not config.transport: + config.transport = RequestsTransport(**kwargs) + policies = [ + QueueMessagePolicy(), + config.headers_policy, + config.proxy_policy, + config.user_agent_policy, + StorageContentValidation(), + StorageRequestHook(**kwargs), + self._credential_policy, + ContentDecodePolicy(response_encoding="utf-8"), + RedirectPolicy(**kwargs), + StorageHosts(hosts=self._hosts, **kwargs), + config.retry_policy, + config.logging_policy, + StorageResponseHook(**kwargs), + DistributedTracingPolicy(**kwargs), + HttpLoggingPolicy(**kwargs) + ] + if kwargs.get("_additional_pipeline_policies"): + policies = policies + kwargs.get("_additional_pipeline_policies") + return config, Pipeline(config.transport, policies=policies) + + def _batch_send( + self, *reqs, # type: HttpRequest + **kwargs + ): + """Given a series of request, do a Storage batch call. + """ + # Pop it here, so requests doesn't feel bad about additional kwarg + raise_on_any_failure = kwargs.pop("raise_on_any_failure", True) + request = self._client._client.post( # pylint: disable=protected-access + url='{}://{}/?comp=batch{}{}'.format( + self.scheme, + self.primary_hostname, + kwargs.pop('sas', ""), + kwargs.pop('timeout', "") + ), + headers={ + 'x-ms-version': self.api_version + } + ) + + policies = [StorageHeadersPolicy()] + if self._credential_policy: + policies.append(self._credential_policy) + + request.set_multipart_mixed( + *reqs, + policies=policies, + enforce_https=False + ) + + pipeline_response = self._pipeline.run( + request, **kwargs + ) + response = pipeline_response.http_response + + try: + if response.status_code not in [202]: + raise HttpResponseError(response=response) + parts = response.parts() + if raise_on_any_failure: + parts = list(response.parts()) + if any(p for p in parts if not 200 <= p.status_code < 300): + error = PartialBatchErrorException( + message="There is a partial failure in the batch operation.", + response=response, parts=parts + ) + raise error + return iter(parts) + return parts + except StorageErrorException as error: + process_storage_error(error) + +class TransportWrapper(HttpTransport): + """Wrapper class that ensures that an inner client created + by a `get_client` method does not close the outer transport for the parent + when used in a context manager. + """ + def __init__(self, transport): + self._transport = transport + + def send(self, request, **kwargs): + return self._transport.send(request, **kwargs) + + def open(self): + pass + + def close(self): + pass + + def __enter__(self): + pass + + def __exit__(self, *args): # pylint: disable=arguments-differ + pass + + +def _format_shared_key_credential(account_name, credential): + if isinstance(credential, six.string_types): + if not account_name: + raise ValueError("Unable to determine account name for shared key credential.") + credential = {"account_name": account_name, "account_key": credential} + if isinstance(credential, dict): + if "account_name" not in credential: + raise ValueError("Shared key credential missing 'account_name") + if "account_key" not in credential: + raise ValueError("Shared key credential missing 'account_key") + return SharedKeyCredentialPolicy(**credential) + return credential + + +def parse_connection_str(conn_str, credential, service): + conn_str = conn_str.rstrip(";") + conn_settings = [s.split("=", 1) for s in conn_str.split(";")] + if any(len(tup) != 2 for tup in conn_settings): + raise ValueError("Connection string is either blank or malformed.") + conn_settings = dict(conn_settings) + endpoints = _SERVICE_PARAMS[service] + primary = None + secondary = None + if not credential: + try: + credential = {"account_name": conn_settings["AccountName"], "account_key": conn_settings["AccountKey"]} + except KeyError: + credential = conn_settings.get("SharedAccessSignature") + if endpoints["primary"] in conn_settings: + primary = conn_settings[endpoints["primary"]] + if endpoints["secondary"] in conn_settings: + secondary = conn_settings[endpoints["secondary"]] + else: + if endpoints["secondary"] in conn_settings: + raise ValueError("Connection string specifies only secondary endpoint.") + try: + primary = "{}://{}.{}.{}".format( + conn_settings["DefaultEndpointsProtocol"], + conn_settings["AccountName"], + service, + conn_settings["EndpointSuffix"], + ) + secondary = "{}-secondary.{}.{}".format( + conn_settings["AccountName"], service, conn_settings["EndpointSuffix"] + ) + except KeyError: + pass + + if not primary: + try: + primary = "https://{}.{}.{}".format( + conn_settings["AccountName"], service, conn_settings.get("EndpointSuffix", SERVICE_HOST_BASE) + ) + except KeyError: + raise ValueError("Connection string missing required connection details.") + return primary, secondary, credential + + +def create_configuration(**kwargs): + # type: (**Any) -> Configuration + config = Configuration(**kwargs) + config.headers_policy = StorageHeadersPolicy(**kwargs) + config.user_agent_policy = UserAgentPolicy( + sdk_moniker="storage-{}/{}".format(kwargs.pop('storage_sdk'), VERSION), **kwargs) + config.retry_policy = kwargs.get("retry_policy") or ExponentialRetry(**kwargs) + config.logging_policy = StorageLoggingPolicy(**kwargs) + config.proxy_policy = ProxyPolicy(**kwargs) + + # Storage settings + config.max_single_put_size = kwargs.get("max_single_put_size", 64 * 1024 * 1024) + config.copy_polling_interval = 15 + + # Block blob uploads + config.max_block_size = kwargs.get("max_block_size", 4 * 1024 * 1024) + config.min_large_block_upload_threshold = kwargs.get("min_large_block_upload_threshold", 4 * 1024 * 1024 + 1) + config.use_byte_buffer = kwargs.get("use_byte_buffer", False) + + # Page blob uploads + config.max_page_size = kwargs.get("max_page_size", 4 * 1024 * 1024) + + # Blob downloads + config.max_single_get_size = kwargs.get("max_single_get_size", 32 * 1024 * 1024) + config.max_chunk_get_size = kwargs.get("max_chunk_get_size", 4 * 1024 * 1024) + + # File uploads + config.max_range_size = kwargs.get("max_range_size", 4 * 1024 * 1024) + return config + + +def parse_query(query_str): + sas_values = QueryStringConstants.to_list() + parsed_query = {k: v[0] for k, v in parse_qs(query_str).items()} + sas_params = ["{}={}".format(k, quote(v, safe='')) for k, v in parsed_query.items() if k in sas_values] + sas_token = None + if sas_params: + sas_token = "&".join(sas_params) + + snapshot = parsed_query.get("snapshot") or parsed_query.get("sharesnapshot") + return snapshot, sas_token + + +def is_credential_sastoken(credential): + if not credential or not isinstance(credential, six.string_types): + return False + + sas_values = QueryStringConstants.to_list() + parsed_query = parse_qs(credential.lstrip("?")) + if parsed_query and all([k in sas_values for k in parsed_query.keys()]): + return True + return False diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/base_client_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/base_client_async.py new file mode 100644 index 00000000000..1fec883b506 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/base_client_async.py @@ -0,0 +1,185 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, Dict, List, Type, Tuple, + TYPE_CHECKING +) +import logging +from azure.core.pipeline import AsyncPipeline +from azure.core.async_paging import AsyncList +from azure.core.exceptions import HttpResponseError +from azure.core.pipeline.policies import ( + ContentDecodePolicy, + AsyncBearerTokenCredentialPolicy, + AsyncRedirectPolicy, + DistributedTracingPolicy, + HttpLoggingPolicy, +) +from azure.core.pipeline.transport import AsyncHttpTransport + +from .constants import STORAGE_OAUTH_SCOPE, CONNECTION_TIMEOUT, READ_TIMEOUT +from .authentication import SharedKeyCredentialPolicy +from .base_client import create_configuration +from .policies import ( + StorageContentValidation, + StorageRequestHook, + StorageHosts, + StorageHeadersPolicy, + QueueMessagePolicy +) +from .policies_async import AsyncStorageResponseHook + +from .._generated.models import StorageErrorException +from .response_handlers import process_storage_error, PartialBatchErrorException + +if TYPE_CHECKING: + from azure.core.pipeline import Pipeline + from azure.core.pipeline.transport import HttpRequest + from azure.core.configuration import Configuration +_LOGGER = logging.getLogger(__name__) + + +class AsyncStorageAccountHostsMixin(object): + + def __enter__(self): + raise TypeError("Async client only supports 'async with'.") + + def __exit__(self, *args): + pass + + async def __aenter__(self): + await self._client.__aenter__() + return self + + async def __aexit__(self, *args): + await self._client.__aexit__(*args) + + async def close(self): + """ This method is to close the sockets opened by the client. + It need not be used when using with a context manager. + """ + await self._client.close() + + def _create_pipeline(self, credential, **kwargs): + # type: (Any, **Any) -> Tuple[Configuration, Pipeline] + self._credential_policy = None + if hasattr(credential, 'get_token'): + self._credential_policy = AsyncBearerTokenCredentialPolicy(credential, STORAGE_OAUTH_SCOPE) + elif isinstance(credential, SharedKeyCredentialPolicy): + self._credential_policy = credential + elif credential is not None: + raise TypeError("Unsupported credential: {}".format(credential)) + config = kwargs.get('_configuration') or create_configuration(**kwargs) + if kwargs.get('_pipeline'): + return config, kwargs['_pipeline'] + config.transport = kwargs.get('transport') # type: ignore + kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) + kwargs.setdefault("read_timeout", READ_TIMEOUT) + if not config.transport: + try: + from azure.core.pipeline.transport import AioHttpTransport + except ImportError: + raise ImportError("Unable to create async transport. Please check aiohttp is installed.") + config.transport = AioHttpTransport(**kwargs) + policies = [ + QueueMessagePolicy(), + config.headers_policy, + config.proxy_policy, + config.user_agent_policy, + StorageContentValidation(), + StorageRequestHook(**kwargs), + self._credential_policy, + ContentDecodePolicy(response_encoding="utf-8"), + AsyncRedirectPolicy(**kwargs), + StorageHosts(hosts=self._hosts, **kwargs), # type: ignore + config.retry_policy, + config.logging_policy, + AsyncStorageResponseHook(**kwargs), + DistributedTracingPolicy(**kwargs), + HttpLoggingPolicy(**kwargs), + ] + if kwargs.get("_additional_pipeline_policies"): + policies = policies + kwargs.get("_additional_pipeline_policies") + return config, AsyncPipeline(config.transport, policies=policies) + + async def _batch_send( + self, *reqs: 'HttpRequest', + **kwargs + ): + """Given a series of request, do a Storage batch call. + """ + # Pop it here, so requests doesn't feel bad about additional kwarg + raise_on_any_failure = kwargs.pop("raise_on_any_failure", True) + request = self._client._client.post( # pylint: disable=protected-access + url='{}://{}/?comp=batch{}{}'.format( + self.scheme, + self.primary_hostname, + kwargs.pop('sas', None), + kwargs.pop('timeout', None) + ), + headers={ + 'x-ms-version': self.api_version + } + ) + + policies = [StorageHeadersPolicy()] + if self._credential_policy: + policies.append(self._credential_policy) + + request.set_multipart_mixed( + *reqs, + policies=policies, + enforce_https=False + ) + + pipeline_response = await self._pipeline.run( + request, **kwargs + ) + response = pipeline_response.http_response + + try: + if response.status_code not in [202]: + raise HttpResponseError(response=response) + parts = response.parts() # Return an AsyncIterator + if raise_on_any_failure: + parts_list = [] + async for part in parts: + parts_list.append(part) + if any(p for p in parts_list if not 200 <= p.status_code < 300): + error = PartialBatchErrorException( + message="There is a partial failure in the batch operation.", + response=response, parts=parts_list + ) + raise error + return AsyncList(parts_list) + return parts + except StorageErrorException as error: + process_storage_error(error) + + +class AsyncTransportWrapper(AsyncHttpTransport): + """Wrapper class that ensures that an inner client created + by a `get_client` method does not close the outer transport for the parent + when used in a context manager. + """ + def __init__(self, async_transport): + self._transport = async_transport + + async def send(self, request, **kwargs): + return await self._transport.send(request, **kwargs) + + async def open(self): + pass + + async def close(self): + pass + + async def __aenter__(self): + pass + + async def __aexit__(self, *args): # pylint: disable=arguments-differ + pass diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/constants.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/constants.py new file mode 100644 index 00000000000..f67ea29cc13 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/constants.py @@ -0,0 +1,27 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import sys +from .._generated.version import VERSION + + +X_MS_VERSION = VERSION + +# Socket timeout in seconds +CONNECTION_TIMEOUT = 20 +READ_TIMEOUT = 20 + +# for python 3.5+, there was a change to the definition of the socket timeout (as far as socket.sendall is concerned) +# The socket timeout is now the maximum total duration to send all data. +if sys.version_info >= (3, 5): + # the timeout to connect is 20 seconds, and the read timeout is 80000 seconds + # the 80000 seconds was calculated with: + # 4000MB (max block size)/ 50KB/s (an arbitrarily chosen minimum upload speed) + READ_TIMEOUT = 80000 + +STORAGE_OAUTH_SCOPE = "https://storage.azure.com/.default" + +SERVICE_HOST_BASE = 'core.windows.net' diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/encryption.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/encryption.py new file mode 100644 index 00000000000..62607cc0cf8 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/encryption.py @@ -0,0 +1,542 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import os +from os import urandom +from json import ( + dumps, + loads, +) +from collections import OrderedDict + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.ciphers import Cipher +from cryptography.hazmat.primitives.ciphers.algorithms import AES +from cryptography.hazmat.primitives.ciphers.modes import CBC +from cryptography.hazmat.primitives.padding import PKCS7 + +from azure.core.exceptions import HttpResponseError + +from .._version import VERSION +from . import encode_base64, decode_base64_to_bytes + + +_ENCRYPTION_PROTOCOL_V1 = '1.0' +_ERROR_OBJECT_INVALID = \ + '{0} does not define a complete interface. Value of {1} is either missing or invalid.' + + +def _validate_not_none(param_name, param): + if param is None: + raise ValueError('{0} should not be None.'.format(param_name)) + + +def _validate_key_encryption_key_wrap(kek): + # Note that None is not callable and so will fail the second clause of each check. + if not hasattr(kek, 'wrap_key') or not callable(kek.wrap_key): + raise AttributeError(_ERROR_OBJECT_INVALID.format('key encryption key', 'wrap_key')) + if not hasattr(kek, 'get_kid') or not callable(kek.get_kid): + raise AttributeError(_ERROR_OBJECT_INVALID.format('key encryption key', 'get_kid')) + if not hasattr(kek, 'get_key_wrap_algorithm') or not callable(kek.get_key_wrap_algorithm): + raise AttributeError(_ERROR_OBJECT_INVALID.format('key encryption key', 'get_key_wrap_algorithm')) + + +class _EncryptionAlgorithm(object): + ''' + Specifies which client encryption algorithm is used. + ''' + AES_CBC_256 = 'AES_CBC_256' + + +class _WrappedContentKey: + ''' + Represents the envelope key details stored on the service. + ''' + + def __init__(self, algorithm, encrypted_key, key_id): + ''' + :param str algorithm: + The algorithm used for wrapping. + :param bytes encrypted_key: + The encrypted content-encryption-key. + :param str key_id: + The key-encryption-key identifier string. + ''' + + _validate_not_none('algorithm', algorithm) + _validate_not_none('encrypted_key', encrypted_key) + _validate_not_none('key_id', key_id) + + self.algorithm = algorithm + self.encrypted_key = encrypted_key + self.key_id = key_id + + +class _EncryptionAgent: + ''' + Represents the encryption agent stored on the service. + It consists of the encryption protocol version and encryption algorithm used. + ''' + + def __init__(self, encryption_algorithm, protocol): + ''' + :param _EncryptionAlgorithm encryption_algorithm: + The algorithm used for encrypting the message contents. + :param str protocol: + The protocol version used for encryption. + ''' + + _validate_not_none('encryption_algorithm', encryption_algorithm) + _validate_not_none('protocol', protocol) + + self.encryption_algorithm = str(encryption_algorithm) + self.protocol = protocol + + +class _EncryptionData: + ''' + Represents the encryption data that is stored on the service. + ''' + + def __init__(self, content_encryption_IV, encryption_agent, wrapped_content_key, + key_wrapping_metadata): + ''' + :param bytes content_encryption_IV: + The content encryption initialization vector. + :param _EncryptionAgent encryption_agent: + The encryption agent. + :param _WrappedContentKey wrapped_content_key: + An object that stores the wrapping algorithm, the key identifier, + and the encrypted key bytes. + :param dict key_wrapping_metadata: + A dict containing metadata related to the key wrapping. + ''' + + _validate_not_none('content_encryption_IV', content_encryption_IV) + _validate_not_none('encryption_agent', encryption_agent) + _validate_not_none('wrapped_content_key', wrapped_content_key) + + self.content_encryption_IV = content_encryption_IV + self.encryption_agent = encryption_agent + self.wrapped_content_key = wrapped_content_key + self.key_wrapping_metadata = key_wrapping_metadata + + +def _generate_encryption_data_dict(kek, cek, iv): + ''' + Generates and returns the encryption metadata as a dict. + + :param object kek: The key encryption key. See calling functions for more information. + :param bytes cek: The content encryption key. + :param bytes iv: The initialization vector. + :return: A dict containing all the encryption metadata. + :rtype: dict + ''' + # Encrypt the cek. + wrapped_cek = kek.wrap_key(cek) + + # Build the encryption_data dict. + # Use OrderedDict to comply with Java's ordering requirement. + wrapped_content_key = OrderedDict() + wrapped_content_key['KeyId'] = kek.get_kid() + wrapped_content_key['EncryptedKey'] = encode_base64(wrapped_cek) + wrapped_content_key['Algorithm'] = kek.get_key_wrap_algorithm() + + encryption_agent = OrderedDict() + encryption_agent['Protocol'] = _ENCRYPTION_PROTOCOL_V1 + encryption_agent['EncryptionAlgorithm'] = _EncryptionAlgorithm.AES_CBC_256 + + encryption_data_dict = OrderedDict() + encryption_data_dict['WrappedContentKey'] = wrapped_content_key + encryption_data_dict['EncryptionAgent'] = encryption_agent + encryption_data_dict['ContentEncryptionIV'] = encode_base64(iv) + encryption_data_dict['KeyWrappingMetadata'] = {'EncryptionLibrary': 'Python ' + VERSION} + + return encryption_data_dict + + +def _dict_to_encryption_data(encryption_data_dict): + ''' + Converts the specified dictionary to an EncryptionData object for + eventual use in decryption. + + :param dict encryption_data_dict: + The dictionary containing the encryption data. + :return: an _EncryptionData object built from the dictionary. + :rtype: _EncryptionData + ''' + try: + if encryption_data_dict['EncryptionAgent']['Protocol'] != _ENCRYPTION_PROTOCOL_V1: + raise ValueError("Unsupported encryption version.") + except KeyError: + raise ValueError("Unsupported encryption version.") + wrapped_content_key = encryption_data_dict['WrappedContentKey'] + wrapped_content_key = _WrappedContentKey(wrapped_content_key['Algorithm'], + decode_base64_to_bytes(wrapped_content_key['EncryptedKey']), + wrapped_content_key['KeyId']) + + encryption_agent = encryption_data_dict['EncryptionAgent'] + encryption_agent = _EncryptionAgent(encryption_agent['EncryptionAlgorithm'], + encryption_agent['Protocol']) + + if 'KeyWrappingMetadata' in encryption_data_dict: + key_wrapping_metadata = encryption_data_dict['KeyWrappingMetadata'] + else: + key_wrapping_metadata = None + + encryption_data = _EncryptionData(decode_base64_to_bytes(encryption_data_dict['ContentEncryptionIV']), + encryption_agent, + wrapped_content_key, + key_wrapping_metadata) + + return encryption_data + + +def _generate_AES_CBC_cipher(cek, iv): + ''' + Generates and returns an encryption cipher for AES CBC using the given cek and iv. + + :param bytes[] cek: The content encryption key for the cipher. + :param bytes[] iv: The initialization vector for the cipher. + :return: A cipher for encrypting in AES256 CBC. + :rtype: ~cryptography.hazmat.primitives.ciphers.Cipher + ''' + + backend = default_backend() + algorithm = AES(cek) + mode = CBC(iv) + return Cipher(algorithm, mode, backend) + + +def _validate_and_unwrap_cek(encryption_data, key_encryption_key=None, key_resolver=None): + ''' + Extracts and returns the content_encryption_key stored in the encryption_data object + and performs necessary validation on all parameters. + :param _EncryptionData encryption_data: + The encryption metadata of the retrieved value. + :param obj key_encryption_key: + The key_encryption_key used to unwrap the cek. Please refer to high-level service object + instance variables for more details. + :param func key_resolver: + A function used that, given a key_id, will return a key_encryption_key. Please refer + to high-level service object instance variables for more details. + :return: the content_encryption_key stored in the encryption_data object. + :rtype: bytes[] + ''' + + _validate_not_none('content_encryption_IV', encryption_data.content_encryption_IV) + _validate_not_none('encrypted_key', encryption_data.wrapped_content_key.encrypted_key) + + if _ENCRYPTION_PROTOCOL_V1 != encryption_data.encryption_agent.protocol: + raise ValueError('Encryption version is not supported.') + + content_encryption_key = None + + # If the resolver exists, give priority to the key it finds. + if key_resolver is not None: + key_encryption_key = key_resolver(encryption_data.wrapped_content_key.key_id) + + _validate_not_none('key_encryption_key', key_encryption_key) + if not hasattr(key_encryption_key, 'get_kid') or not callable(key_encryption_key.get_kid): + raise AttributeError(_ERROR_OBJECT_INVALID.format('key encryption key', 'get_kid')) + if not hasattr(key_encryption_key, 'unwrap_key') or not callable(key_encryption_key.unwrap_key): + raise AttributeError(_ERROR_OBJECT_INVALID.format('key encryption key', 'unwrap_key')) + if encryption_data.wrapped_content_key.key_id != key_encryption_key.get_kid(): + raise ValueError('Provided or resolved key-encryption-key does not match the id of key used to encrypt.') + # Will throw an exception if the specified algorithm is not supported. + content_encryption_key = key_encryption_key.unwrap_key(encryption_data.wrapped_content_key.encrypted_key, + encryption_data.wrapped_content_key.algorithm) + _validate_not_none('content_encryption_key', content_encryption_key) + + return content_encryption_key + + +def _decrypt_message(message, encryption_data, key_encryption_key=None, resolver=None): + ''' + Decrypts the given ciphertext using AES256 in CBC mode with 128 bit padding. + Unwraps the content-encryption-key using the user-provided or resolved key-encryption-key (kek). + Returns the original plaintex. + + :param str message: + The ciphertext to be decrypted. + :param _EncryptionData encryption_data: + The metadata associated with this ciphertext. + :param object key_encryption_key: + The user-provided key-encryption-key. Must implement the following methods: + unwrap_key(key, algorithm) + - returns the unwrapped form of the specified symmetric key using the string-specified algorithm. + get_kid() + - returns a string key id for this key-encryption-key. + :param function resolver(kid): + The user-provided key resolver. Uses the kid string to return a key-encryption-key + implementing the interface defined above. + :return: The decrypted plaintext. + :rtype: str + ''' + _validate_not_none('message', message) + content_encryption_key = _validate_and_unwrap_cek(encryption_data, key_encryption_key, resolver) + + if _EncryptionAlgorithm.AES_CBC_256 != encryption_data.encryption_agent.encryption_algorithm: + raise ValueError('Specified encryption algorithm is not supported.') + + cipher = _generate_AES_CBC_cipher(content_encryption_key, encryption_data.content_encryption_IV) + + # decrypt data + decrypted_data = message + decryptor = cipher.decryptor() + decrypted_data = (decryptor.update(decrypted_data) + decryptor.finalize()) + + # unpad data + unpadder = PKCS7(128).unpadder() + decrypted_data = (unpadder.update(decrypted_data) + unpadder.finalize()) + + return decrypted_data + + +def encrypt_blob(blob, key_encryption_key): + ''' + Encrypts the given blob using AES256 in CBC mode with 128 bit padding. + Wraps the generated content-encryption-key using the user-provided key-encryption-key (kek). + Returns a json-formatted string containing the encryption metadata. This method should + only be used when a blob is small enough for single shot upload. Encrypting larger blobs + is done as a part of the upload_data_chunks method. + + :param bytes blob: + The blob to be encrypted. + :param object key_encryption_key: + The user-provided key-encryption-key. Must implement the following methods: + wrap_key(key)--wraps the specified key using an algorithm of the user's choice. + get_key_wrap_algorithm()--returns the algorithm used to wrap the specified symmetric key. + get_kid()--returns a string key id for this key-encryption-key. + :return: A tuple of json-formatted string containing the encryption metadata and the encrypted blob data. + :rtype: (str, bytes) + ''' + + _validate_not_none('blob', blob) + _validate_not_none('key_encryption_key', key_encryption_key) + _validate_key_encryption_key_wrap(key_encryption_key) + + # AES256 uses 256 bit (32 byte) keys and always with 16 byte blocks + content_encryption_key = urandom(32) + initialization_vector = urandom(16) + + cipher = _generate_AES_CBC_cipher(content_encryption_key, initialization_vector) + + # PKCS7 with 16 byte blocks ensures compatibility with AES. + padder = PKCS7(128).padder() + padded_data = padder.update(blob) + padder.finalize() + + # Encrypt the data. + encryptor = cipher.encryptor() + encrypted_data = encryptor.update(padded_data) + encryptor.finalize() + encryption_data = _generate_encryption_data_dict(key_encryption_key, content_encryption_key, + initialization_vector) + encryption_data['EncryptionMode'] = 'FullBlob' + + return dumps(encryption_data), encrypted_data + + +def generate_blob_encryption_data(key_encryption_key): + ''' + Generates the encryption_metadata for the blob. + + :param bytes key_encryption_key: + The key-encryption-key used to wrap the cek associate with this blob. + :return: A tuple containing the cek and iv for this blob as well as the + serialized encryption metadata for the blob. + :rtype: (bytes, bytes, str) + ''' + encryption_data = None + content_encryption_key = None + initialization_vector = None + if key_encryption_key: + _validate_key_encryption_key_wrap(key_encryption_key) + content_encryption_key = urandom(32) + initialization_vector = urandom(16) + encryption_data = _generate_encryption_data_dict(key_encryption_key, + content_encryption_key, + initialization_vector) + encryption_data['EncryptionMode'] = 'FullBlob' + encryption_data = dumps(encryption_data) + + return content_encryption_key, initialization_vector, encryption_data + + +def decrypt_blob(require_encryption, key_encryption_key, key_resolver, + content, start_offset, end_offset, response_headers): + ''' + Decrypts the given blob contents and returns only the requested range. + + :param bool require_encryption: + Whether or not the calling blob service requires objects to be decrypted. + :param object key_encryption_key: + The user-provided key-encryption-key. Must implement the following methods: + wrap_key(key)--wraps the specified key using an algorithm of the user's choice. + get_key_wrap_algorithm()--returns the algorithm used to wrap the specified symmetric key. + get_kid()--returns a string key id for this key-encryption-key. + :param key_resolver(kid): + The user-provided key resolver. Uses the kid string to return a key-encryption-key + implementing the interface defined above. + :return: The decrypted blob content. + :rtype: bytes + ''' + try: + encryption_data = _dict_to_encryption_data(loads(response_headers['x-ms-meta-encryptiondata'])) + except: # pylint: disable=bare-except + if require_encryption: + raise ValueError( + 'Encryption required, but received data does not contain appropriate metatadata.' + \ + 'Data was either not encrypted or metadata has been lost.') + + return content + + if encryption_data.encryption_agent.encryption_algorithm != _EncryptionAlgorithm.AES_CBC_256: + raise ValueError('Specified encryption algorithm is not supported.') + + blob_type = response_headers['x-ms-blob-type'] + + iv = None + unpad = False + if 'content-range' in response_headers: + content_range = response_headers['content-range'] + # Format: 'bytes x-y/size' + + # Ignore the word 'bytes' + content_range = content_range.split(' ') + + content_range = content_range[1].split('-') + content_range = content_range[1].split('/') + end_range = int(content_range[0]) + blob_size = int(content_range[1]) + + if start_offset >= 16: + iv = content[:16] + content = content[16:] + start_offset -= 16 + else: + iv = encryption_data.content_encryption_IV + + if end_range == blob_size - 1: + unpad = True + else: + unpad = True + iv = encryption_data.content_encryption_IV + + if blob_type == 'PageBlob': + unpad = False + + content_encryption_key = _validate_and_unwrap_cek(encryption_data, key_encryption_key, key_resolver) + cipher = _generate_AES_CBC_cipher(content_encryption_key, iv) + decryptor = cipher.decryptor() + + content = decryptor.update(content) + decryptor.finalize() + if unpad: + unpadder = PKCS7(128).unpadder() + content = unpadder.update(content) + unpadder.finalize() + + return content[start_offset: len(content) - end_offset] + + +def get_blob_encryptor_and_padder(cek, iv, should_pad): + encryptor = None + padder = None + + if cek is not None and iv is not None: + cipher = _generate_AES_CBC_cipher(cek, iv) + encryptor = cipher.encryptor() + padder = PKCS7(128).padder() if should_pad else None + + return encryptor, padder + + +def encrypt_queue_message(message, key_encryption_key): + ''' + Encrypts the given plain text message using AES256 in CBC mode with 128 bit padding. + Wraps the generated content-encryption-key using the user-provided key-encryption-key (kek). + Returns a json-formatted string containing the encrypted message and the encryption metadata. + + :param object message: + The plain text messge to be encrypted. + :param object key_encryption_key: + The user-provided key-encryption-key. Must implement the following methods: + wrap_key(key)--wraps the specified key using an algorithm of the user's choice. + get_key_wrap_algorithm()--returns the algorithm used to wrap the specified symmetric key. + get_kid()--returns a string key id for this key-encryption-key. + :return: A json-formatted string containing the encrypted message and the encryption metadata. + :rtype: str + ''' + + _validate_not_none('message', message) + _validate_not_none('key_encryption_key', key_encryption_key) + _validate_key_encryption_key_wrap(key_encryption_key) + + # AES256 uses 256 bit (32 byte) keys and always with 16 byte blocks + content_encryption_key = os.urandom(32) + initialization_vector = os.urandom(16) + + # Queue encoding functions all return unicode strings, and encryption should + # operate on binary strings. + message = message.encode('utf-8') + + cipher = _generate_AES_CBC_cipher(content_encryption_key, initialization_vector) + + # PKCS7 with 16 byte blocks ensures compatibility with AES. + padder = PKCS7(128).padder() + padded_data = padder.update(message) + padder.finalize() + + # Encrypt the data. + encryptor = cipher.encryptor() + encrypted_data = encryptor.update(padded_data) + encryptor.finalize() + + # Build the dictionary structure. + queue_message = {'EncryptedMessageContents': encode_base64(encrypted_data), + 'EncryptionData': _generate_encryption_data_dict(key_encryption_key, + content_encryption_key, + initialization_vector)} + + return dumps(queue_message) + + +def decrypt_queue_message(message, response, require_encryption, key_encryption_key, resolver): + ''' + Returns the decrypted message contents from an EncryptedQueueMessage. + If no encryption metadata is present, will return the unaltered message. + :param str message: + The JSON formatted QueueEncryptedMessage contents with all associated metadata. + :param bool require_encryption: + If set, will enforce that the retrieved messages are encrypted and decrypt them. + :param object key_encryption_key: + The user-provided key-encryption-key. Must implement the following methods: + unwrap_key(key, algorithm) + - returns the unwrapped form of the specified symmetric key usingthe string-specified algorithm. + get_kid() + - returns a string key id for this key-encryption-key. + :param function resolver(kid): + The user-provided key resolver. Uses the kid string to return a key-encryption-key + implementing the interface defined above. + :return: The plain text message from the queue message. + :rtype: str + ''' + + try: + message = loads(message) + + encryption_data = _dict_to_encryption_data(message['EncryptionData']) + decoded_data = decode_base64_to_bytes(message['EncryptedMessageContents']) + except (KeyError, ValueError): + # Message was not json formatted and so was not encrypted + # or the user provided a json formatted message. + if require_encryption: + raise ValueError('Message was not encrypted.') + + return message + try: + return _decrypt_message(decoded_data, encryption_data, key_encryption_key, resolver).decode('utf-8') + except Exception as error: + raise HttpResponseError( + message="Decryption failed.", + response=response, + error=error) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/models.py new file mode 100644 index 00000000000..27a9c9fe4a7 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/models.py @@ -0,0 +1,466 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-instance-attributes +from enum import Enum + + +def get_enum_value(value): + if value is None or value in ["None", ""]: + return None + try: + return value.value + except AttributeError: + return value + + +class StorageErrorCode(str, Enum): + + # Generic storage values + account_already_exists = "AccountAlreadyExists" + account_being_created = "AccountBeingCreated" + account_is_disabled = "AccountIsDisabled" + authentication_failed = "AuthenticationFailed" + authorization_failure = "AuthorizationFailure" + no_authentication_information = "NoAuthenticationInformation" + condition_headers_not_supported = "ConditionHeadersNotSupported" + condition_not_met = "ConditionNotMet" + empty_metadata_key = "EmptyMetadataKey" + insufficient_account_permissions = "InsufficientAccountPermissions" + internal_error = "InternalError" + invalid_authentication_info = "InvalidAuthenticationInfo" + invalid_header_value = "InvalidHeaderValue" + invalid_http_verb = "InvalidHttpVerb" + invalid_input = "InvalidInput" + invalid_md5 = "InvalidMd5" + invalid_metadata = "InvalidMetadata" + invalid_query_parameter_value = "InvalidQueryParameterValue" + invalid_range = "InvalidRange" + invalid_resource_name = "InvalidResourceName" + invalid_uri = "InvalidUri" + invalid_xml_document = "InvalidXmlDocument" + invalid_xml_node_value = "InvalidXmlNodeValue" + md5_mismatch = "Md5Mismatch" + metadata_too_large = "MetadataTooLarge" + missing_content_length_header = "MissingContentLengthHeader" + missing_required_query_parameter = "MissingRequiredQueryParameter" + missing_required_header = "MissingRequiredHeader" + missing_required_xml_node = "MissingRequiredXmlNode" + multiple_condition_headers_not_supported = "MultipleConditionHeadersNotSupported" + operation_timed_out = "OperationTimedOut" + out_of_range_input = "OutOfRangeInput" + out_of_range_query_parameter_value = "OutOfRangeQueryParameterValue" + request_body_too_large = "RequestBodyTooLarge" + resource_type_mismatch = "ResourceTypeMismatch" + request_url_failed_to_parse = "RequestUrlFailedToParse" + resource_already_exists = "ResourceAlreadyExists" + resource_not_found = "ResourceNotFound" + server_busy = "ServerBusy" + unsupported_header = "UnsupportedHeader" + unsupported_xml_node = "UnsupportedXmlNode" + unsupported_query_parameter = "UnsupportedQueryParameter" + unsupported_http_verb = "UnsupportedHttpVerb" + + # Blob values + append_position_condition_not_met = "AppendPositionConditionNotMet" + blob_already_exists = "BlobAlreadyExists" + blob_not_found = "BlobNotFound" + blob_overwritten = "BlobOverwritten" + blob_tier_inadequate_for_content_length = "BlobTierInadequateForContentLength" + block_count_exceeds_limit = "BlockCountExceedsLimit" + block_list_too_long = "BlockListTooLong" + cannot_change_to_lower_tier = "CannotChangeToLowerTier" + cannot_verify_copy_source = "CannotVerifyCopySource" + container_already_exists = "ContainerAlreadyExists" + container_being_deleted = "ContainerBeingDeleted" + container_disabled = "ContainerDisabled" + container_not_found = "ContainerNotFound" + content_length_larger_than_tier_limit = "ContentLengthLargerThanTierLimit" + copy_across_accounts_not_supported = "CopyAcrossAccountsNotSupported" + copy_id_mismatch = "CopyIdMismatch" + feature_version_mismatch = "FeatureVersionMismatch" + incremental_copy_blob_mismatch = "IncrementalCopyBlobMismatch" + incremental_copy_of_eralier_version_snapshot_not_allowed = "IncrementalCopyOfEralierVersionSnapshotNotAllowed" + incremental_copy_source_must_be_snapshot = "IncrementalCopySourceMustBeSnapshot" + infinite_lease_duration_required = "InfiniteLeaseDurationRequired" + invalid_blob_or_block = "InvalidBlobOrBlock" + invalid_blob_tier = "InvalidBlobTier" + invalid_blob_type = "InvalidBlobType" + invalid_block_id = "InvalidBlockId" + invalid_block_list = "InvalidBlockList" + invalid_operation = "InvalidOperation" + invalid_page_range = "InvalidPageRange" + invalid_source_blob_type = "InvalidSourceBlobType" + invalid_source_blob_url = "InvalidSourceBlobUrl" + invalid_version_for_page_blob_operation = "InvalidVersionForPageBlobOperation" + lease_already_present = "LeaseAlreadyPresent" + lease_already_broken = "LeaseAlreadyBroken" + lease_id_mismatch_with_blob_operation = "LeaseIdMismatchWithBlobOperation" + lease_id_mismatch_with_container_operation = "LeaseIdMismatchWithContainerOperation" + lease_id_mismatch_with_lease_operation = "LeaseIdMismatchWithLeaseOperation" + lease_id_missing = "LeaseIdMissing" + lease_is_breaking_and_cannot_be_acquired = "LeaseIsBreakingAndCannotBeAcquired" + lease_is_breaking_and_cannot_be_changed = "LeaseIsBreakingAndCannotBeChanged" + lease_is_broken_and_cannot_be_renewed = "LeaseIsBrokenAndCannotBeRenewed" + lease_lost = "LeaseLost" + lease_not_present_with_blob_operation = "LeaseNotPresentWithBlobOperation" + lease_not_present_with_container_operation = "LeaseNotPresentWithContainerOperation" + lease_not_present_with_lease_operation = "LeaseNotPresentWithLeaseOperation" + max_blob_size_condition_not_met = "MaxBlobSizeConditionNotMet" + no_pending_copy_operation = "NoPendingCopyOperation" + operation_not_allowed_on_incremental_copy_blob = "OperationNotAllowedOnIncrementalCopyBlob" + pending_copy_operation = "PendingCopyOperation" + previous_snapshot_cannot_be_newer = "PreviousSnapshotCannotBeNewer" + previous_snapshot_not_found = "PreviousSnapshotNotFound" + previous_snapshot_operation_not_supported = "PreviousSnapshotOperationNotSupported" + sequence_number_condition_not_met = "SequenceNumberConditionNotMet" + sequence_number_increment_too_large = "SequenceNumberIncrementTooLarge" + snapshot_count_exceeded = "SnapshotCountExceeded" + snaphot_operation_rate_exceeded = "SnaphotOperationRateExceeded" + snapshots_present = "SnapshotsPresent" + source_condition_not_met = "SourceConditionNotMet" + system_in_use = "SystemInUse" + target_condition_not_met = "TargetConditionNotMet" + unauthorized_blob_overwrite = "UnauthorizedBlobOverwrite" + blob_being_rehydrated = "BlobBeingRehydrated" + blob_archived = "BlobArchived" + blob_not_archived = "BlobNotArchived" + + # Queue values + invalid_marker = "InvalidMarker" + message_not_found = "MessageNotFound" + message_too_large = "MessageTooLarge" + pop_receipt_mismatch = "PopReceiptMismatch" + queue_already_exists = "QueueAlreadyExists" + queue_being_deleted = "QueueBeingDeleted" + queue_disabled = "QueueDisabled" + queue_not_empty = "QueueNotEmpty" + queue_not_found = "QueueNotFound" + + # File values + cannot_delete_file_or_directory = "CannotDeleteFileOrDirectory" + client_cache_flush_delay = "ClientCacheFlushDelay" + delete_pending = "DeletePending" + directory_not_empty = "DirectoryNotEmpty" + file_lock_conflict = "FileLockConflict" + invalid_file_or_directory_path_name = "InvalidFileOrDirectoryPathName" + parent_not_found = "ParentNotFound" + read_only_attribute = "ReadOnlyAttribute" + share_already_exists = "ShareAlreadyExists" + share_being_deleted = "ShareBeingDeleted" + share_disabled = "ShareDisabled" + share_not_found = "ShareNotFound" + sharing_violation = "SharingViolation" + share_snapshot_in_progress = "ShareSnapshotInProgress" + share_snapshot_count_exceeded = "ShareSnapshotCountExceeded" + share_snapshot_operation_not_supported = "ShareSnapshotOperationNotSupported" + share_has_snapshots = "ShareHasSnapshots" + container_quota_downgrade_not_allowed = "ContainerQuotaDowngradeNotAllowed" + + # DataLake values + content_length_must_be_zero = 'ContentLengthMustBeZero' + path_already_exists = 'PathAlreadyExists' + invalid_flush_position = 'InvalidFlushPosition' + invalid_property_name = 'InvalidPropertyName' + invalid_source_uri = 'InvalidSourceUri' + unsupported_rest_version = 'UnsupportedRestVersion' + file_system_not_found = 'FilesystemNotFound' + path_not_found = 'PathNotFound' + rename_destination_parent_path_not_found = 'RenameDestinationParentPathNotFound' + source_path_not_found = 'SourcePathNotFound' + destination_path_is_being_deleted = 'DestinationPathIsBeingDeleted' + file_system_already_exists = 'FilesystemAlreadyExists' + file_system_being_deleted = 'FilesystemBeingDeleted' + invalid_destination_path = 'InvalidDestinationPath' + invalid_rename_source_path = 'InvalidRenameSourcePath' + invalid_source_or_destination_resource_type = 'InvalidSourceOrDestinationResourceType' + lease_is_already_broken = 'LeaseIsAlreadyBroken' + lease_name_mismatch = 'LeaseNameMismatch' + path_conflict = 'PathConflict' + source_path_is_being_deleted = 'SourcePathIsBeingDeleted' + + +class DictMixin(object): + + def __setitem__(self, key, item): + self.__dict__[key] = item + + def __getitem__(self, key): + return self.__dict__[key] + + def __repr__(self): + return str(self) + + def __len__(self): + return len(self.keys()) + + def __delitem__(self, key): + self.__dict__[key] = None + + def __eq__(self, other): + """Compare objects by comparing all attributes.""" + if isinstance(other, self.__class__): + return self.__dict__ == other.__dict__ + return False + + def __ne__(self, other): + """Compare objects by comparing all attributes.""" + return not self.__eq__(other) + + def __str__(self): + return str({k: v for k, v in self.__dict__.items() if not k.startswith('_')}) + + def has_key(self, k): + return k in self.__dict__ + + def update(self, *args, **kwargs): + return self.__dict__.update(*args, **kwargs) + + def keys(self): + return [k for k in self.__dict__ if not k.startswith('_')] + + def values(self): + return [v for k, v in self.__dict__.items() if not k.startswith('_')] + + def items(self): + return [(k, v) for k, v in self.__dict__.items() if not k.startswith('_')] + + def get(self, key, default=None): + if key in self.__dict__: + return self.__dict__[key] + return default + + +class LocationMode(object): + """ + Specifies the location the request should be sent to. This mode only applies + for RA-GRS accounts which allow secondary read access. All other account types + must use PRIMARY. + """ + + PRIMARY = 'primary' #: Requests should be sent to the primary location. + SECONDARY = 'secondary' #: Requests should be sent to the secondary location, if possible. + + +class ResourceTypes(object): + """ + Specifies the resource types that are accessible with the account SAS. + + :param bool service: + Access to service-level APIs (e.g., Get/Set Service Properties, + Get Service Stats, List Containers/Queues/Shares) + :param bool container: + Access to container-level APIs (e.g., Create/Delete Container, + Create/Delete Queue, Create/Delete Share, + List Blobs/Files and Directories) + :param bool object: + Access to object-level APIs for blobs, queue messages, and + files(e.g. Put Blob, Query Entity, Get Messages, Create File, etc.) + """ + + def __init__(self, service=False, container=False, object=False): # pylint: disable=redefined-builtin + self.service = service + self.container = container + self.object = object + self._str = (('s' if self.service else '') + + ('c' if self.container else '') + + ('o' if self.object else '')) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, string): + """Create a ResourceTypes from a string. + + To specify service, container, or object you need only to + include the first letter of the word in the string. E.g. service and container, + you would provide a string "sc". + + :param str string: Specify service, container, or object in + in the string with the first letter of the word. + :return: A ResourceTypes object + :rtype: ~azure.storage.blob.ResourceTypes + """ + res_service = 's' in string + res_container = 'c' in string + res_object = 'o' in string + + parsed = cls(res_service, res_container, res_object) + parsed._str = string # pylint: disable = protected-access + return parsed + + +class AccountSasPermissions(object): + """ + :class:`~ResourceTypes` class to be used with generate_account_sas + function and for the AccessPolicies used with set_*_acl. There are two types of + SAS which may be used to grant resource access. One is to grant access to a + specific resource (resource-specific). Another is to grant access to the + entire service for a specific account and allow certain operations based on + perms found here. + + :param bool read: + Valid for all signed resources types (Service, Container, and Object). + Permits read permissions to the specified resource type. + :param bool write: + Valid for all signed resources types (Service, Container, and Object). + Permits write permissions to the specified resource type. + :param bool delete: + Valid for Container and Object resource types, except for queue messages. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. + :param bool list: + Valid for Service and Container resource types only. + :param bool add: + Valid for the following Object resource types only: queue messages, and append blobs. + :param bool create: + Valid for the following Object resource types only: blobs and files. + Users can create new blobs or files, but may not overwrite existing + blobs or files. + :param bool update: + Valid for the following Object resource types only: queue messages. + :param bool process: + Valid for the following Object resource type only: queue messages. + :keyword bool tag: + To enable set or get tags on the blobs in the container. + :keyword bool filter_by_tags: + To enable get blobs by tags, this should be used together with list permission. + """ + def __init__(self, read=False, write=False, delete=False, + list=False, # pylint: disable=redefined-builtin + add=False, create=False, update=False, process=False, delete_previous_version=False, **kwargs): + self.read = read + self.write = write + self.delete = delete + self.delete_previous_version = delete_previous_version + self.list = list + self.add = add + self.create = create + self.update = update + self.process = process + self.tag = kwargs.pop('tag', False) + self.filter_by_tags = kwargs.pop('filter_by_tags', False) + self._str = (('r' if self.read else '') + + ('w' if self.write else '') + + ('d' if self.delete else '') + + ('x' if self.delete_previous_version else '') + + ('l' if self.list else '') + + ('a' if self.add else '') + + ('c' if self.create else '') + + ('u' if self.update else '') + + ('p' if self.process else '') + + ('f' if self.filter_by_tags else '') + + ('t' if self.tag else '') + ) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, permission): + """Create AccountSasPermissions from a string. + + To specify read, write, delete, etc. permissions you need only to + include the first letter of the word in the string. E.g. for read and write + permissions you would provide a string "rw". + + :param str permission: Specify permissions in + the string with the first letter of the word. + :return: An AccountSasPermissions object + :rtype: ~azure.storage.blob.AccountSasPermissions + """ + p_read = 'r' in permission + p_write = 'w' in permission + p_delete = 'd' in permission + p_delete_previous_version = 'x' in permission + p_list = 'l' in permission + p_add = 'a' in permission + p_create = 'c' in permission + p_update = 'u' in permission + p_process = 'p' in permission + p_tag = 't' in permission + p_filter_by_tags = 'f' in permission + parsed = cls(read=p_read, write=p_write, delete=p_delete, delete_previous_version=p_delete_previous_version, + list=p_list, add=p_add, create=p_create, update=p_update, process=p_process, tag=p_tag, + filter_by_tags=p_filter_by_tags) + parsed._str = permission # pylint: disable = protected-access + return parsed + +class Services(object): + """Specifies the services accessible with the account SAS. + + :param bool blob: + Access for the `~azure.storage.blob.BlobServiceClient` + :param bool queue: + Access for the `~azure.storage.queue.QueueServiceClient` + :param bool fileshare: + Access for the `~azure.storage.fileshare.ShareServiceClient` + """ + + def __init__(self, blob=False, queue=False, fileshare=False): + self.blob = blob + self.queue = queue + self.fileshare = fileshare + self._str = (('b' if self.blob else '') + + ('q' if self.queue else '') + + ('f' if self.fileshare else '')) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, string): + """Create Services from a string. + + To specify blob, queue, or file you need only to + include the first letter of the word in the string. E.g. for blob and queue + you would provide a string "bq". + + :param str string: Specify blob, queue, or file in + in the string with the first letter of the word. + :return: A Services object + :rtype: ~azure.storage.blob.Services + """ + res_blob = 'b' in string + res_queue = 'q' in string + res_file = 'f' in string + + parsed = cls(res_blob, res_queue, res_file) + parsed._str = string # pylint: disable = protected-access + return parsed + + +class UserDelegationKey(object): + """ + Represents a user delegation key, provided to the user by Azure Storage + based on their Azure Active Directory access token. + + The fields are saved as simple strings since the user does not have to interact with this object; + to generate an identify SAS, the user can simply pass it to the right API. + + :ivar str signed_oid: + Object ID of this token. + :ivar str signed_tid: + Tenant ID of the tenant that issued this token. + :ivar str signed_start: + The datetime this token becomes valid. + :ivar str signed_expiry: + The datetime this token expires. + :ivar str signed_service: + What service this key is valid for. + :ivar str signed_version: + The version identifier of the REST service that created this token. + :ivar str value: + The user delegation key. + """ + def __init__(self): + self.signed_oid = None + self.signed_tid = None + self.signed_start = None + self.signed_expiry = None + self.signed_service = None + self.signed_version = None + self.value = None diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/parser.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/parser.py new file mode 100644 index 00000000000..c6feba8a639 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/parser.py @@ -0,0 +1,20 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import sys + +if sys.version_info < (3,): + def _str(value): + if isinstance(value, unicode): # pylint: disable=undefined-variable + return value.encode('utf-8') + + return str(value) +else: + _str = str + + +def _to_utc_datetime(value): + return value.strftime('%Y-%m-%dT%H:%M:%SZ') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/policies.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/policies.py new file mode 100644 index 00000000000..c9bc798d671 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/policies.py @@ -0,0 +1,610 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import base64 +import hashlib +import re +import random +from time import time +from io import SEEK_SET, UnsupportedOperation +import logging +import uuid +import types +from typing import Any, TYPE_CHECKING +from wsgiref.handlers import format_date_time +try: + from urllib.parse import ( + urlparse, + parse_qsl, + urlunparse, + urlencode, + ) +except ImportError: + from urllib import urlencode # type: ignore + from urlparse import ( # type: ignore + urlparse, + parse_qsl, + urlunparse, + ) + +from azure.core.pipeline.policies import ( + HeadersPolicy, + SansIOHTTPPolicy, + NetworkTraceLoggingPolicy, + HTTPPolicy, + RequestHistory +) +from azure.core.exceptions import AzureError, ServiceRequestError, ServiceResponseError + +from .models import LocationMode + +try: + _unicode_type = unicode # type: ignore +except NameError: + _unicode_type = str + +if TYPE_CHECKING: + from azure.core.pipeline import PipelineRequest, PipelineResponse + + +_LOGGER = logging.getLogger(__name__) + + +def encode_base64(data): + if isinstance(data, _unicode_type): + data = data.encode('utf-8') + encoded = base64.b64encode(data) + return encoded.decode('utf-8') + + +def is_exhausted(settings): + """Are we out of retries?""" + retry_counts = (settings['total'], settings['connect'], settings['read'], settings['status']) + retry_counts = list(filter(None, retry_counts)) + if not retry_counts: + return False + return min(retry_counts) < 0 + + +def retry_hook(settings, **kwargs): + if settings['hook']: + settings['hook'](retry_count=settings['count'] - 1, location_mode=settings['mode'], **kwargs) + + +def is_retry(response, mode): + """Is this method/status code retryable? (Based on whitelists and control + variables such as the number of total retries to allow, whether to + respect the Retry-After header, whether this header is present, and + whether the returned status code is on the list of status codes to + be retried upon on the presence of the aforementioned header) + """ + status = response.http_response.status_code + if 300 <= status < 500: + # An exception occured, but in most cases it was expected. Examples could + # include a 309 Conflict or 412 Precondition Failed. + if status == 404 and mode == LocationMode.SECONDARY: + # Response code 404 should be retried if secondary was used. + return True + if status == 408: + # Response code 408 is a timeout and should be retried. + return True + return False + if status >= 500: + # Response codes above 500 with the exception of 501 Not Implemented and + # 505 Version Not Supported indicate a server issue and should be retried. + if status in [501, 505]: + return False + return True + return False + + +def urljoin(base_url, stub_url): + parsed = urlparse(base_url) + parsed = parsed._replace(path=parsed.path + '/' + stub_url) + return parsed.geturl() + + +class QueueMessagePolicy(SansIOHTTPPolicy): + + def on_request(self, request): + message_id = request.context.options.pop('queue_message_id', None) + if message_id: + request.http_request.url = urljoin( + request.http_request.url, + message_id) + + +class StorageHeadersPolicy(HeadersPolicy): + request_id_header_name = 'x-ms-client-request-id' + + def on_request(self, request): + # type: (PipelineRequest, Any) -> None + super(StorageHeadersPolicy, self).on_request(request) + current_time = format_date_time(time()) + request.http_request.headers['x-ms-date'] = current_time + + custom_id = request.context.options.pop('client_request_id', None) + request.http_request.headers['x-ms-client-request-id'] = custom_id or str(uuid.uuid1()) + + # def on_response(self, request, response): + # # raise exception if the echoed client request id from the service is not identical to the one we sent + # if self.request_id_header_name in response.http_response.headers: + + # client_request_id = request.http_request.headers.get(self.request_id_header_name) + + # if response.http_response.headers[self.request_id_header_name] != client_request_id: + # raise AzureError( + # "Echoed client request ID: {} does not match sent client request ID: {}. " + # "Service request ID: {}".format( + # response.http_response.headers[self.request_id_header_name], client_request_id, + # response.http_response.headers['x-ms-request-id']), + # response=response.http_response + # ) + + +class StorageHosts(SansIOHTTPPolicy): + + def __init__(self, hosts=None, **kwargs): # pylint: disable=unused-argument + self.hosts = hosts + super(StorageHosts, self).__init__() + + def on_request(self, request): + # type: (PipelineRequest, Any) -> None + request.context.options['hosts'] = self.hosts + parsed_url = urlparse(request.http_request.url) + + # Detect what location mode we're currently requesting with + location_mode = LocationMode.PRIMARY + for key, value in self.hosts.items(): + if parsed_url.netloc == value: + location_mode = key + + # See if a specific location mode has been specified, and if so, redirect + use_location = request.context.options.pop('use_location', None) + if use_location: + # Lock retries to the specific location + request.context.options['retry_to_secondary'] = False + if use_location not in self.hosts: + raise ValueError("Attempting to use undefined host location {}".format(use_location)) + if use_location != location_mode: + # Update request URL to use the specified location + updated = parsed_url._replace(netloc=self.hosts[use_location]) + request.http_request.url = updated.geturl() + location_mode = use_location + + request.context.options['location_mode'] = location_mode + + +class StorageLoggingPolicy(NetworkTraceLoggingPolicy): + """A policy that logs HTTP request and response to the DEBUG logger. + + This accepts both global configuration, and per-request level with "enable_http_logger" + """ + + def on_request(self, request): + # type: (PipelineRequest, Any) -> None + http_request = request.http_request + options = request.context.options + if options.pop("logging_enable", self.enable_http_logger): + request.context["logging_enable"] = True + if not _LOGGER.isEnabledFor(logging.DEBUG): + return + + try: + log_url = http_request.url + query_params = http_request.query + if 'sig' in query_params: + log_url = log_url.replace(query_params['sig'], "sig=*****") + _LOGGER.debug("Request URL: %r", log_url) + _LOGGER.debug("Request method: %r", http_request.method) + _LOGGER.debug("Request headers:") + for header, value in http_request.headers.items(): + if header.lower() == 'authorization': + value = '*****' + elif header.lower() == 'x-ms-copy-source' and 'sig' in value: + # take the url apart and scrub away the signed signature + scheme, netloc, path, params, query, fragment = urlparse(value) + parsed_qs = dict(parse_qsl(query)) + parsed_qs['sig'] = '*****' + + # the SAS needs to be put back together + value = urlunparse((scheme, netloc, path, params, urlencode(parsed_qs), fragment)) + + _LOGGER.debug(" %r: %r", header, value) + _LOGGER.debug("Request body:") + + # We don't want to log the binary data of a file upload. + if isinstance(http_request.body, types.GeneratorType): + _LOGGER.debug("File upload") + else: + _LOGGER.debug(str(http_request.body)) + except Exception as err: # pylint: disable=broad-except + _LOGGER.debug("Failed to log request: %r", err) + + def on_response(self, request, response): + # type: (PipelineRequest, PipelineResponse, Any) -> None + if response.context.pop("logging_enable", self.enable_http_logger): + if not _LOGGER.isEnabledFor(logging.DEBUG): + return + + try: + _LOGGER.debug("Response status: %r", response.http_response.status_code) + _LOGGER.debug("Response headers:") + for res_header, value in response.http_response.headers.items(): + _LOGGER.debug(" %r: %r", res_header, value) + + # We don't want to log binary data if the response is a file. + _LOGGER.debug("Response content:") + pattern = re.compile(r'attachment; ?filename=["\w.]+', re.IGNORECASE) + header = response.http_response.headers.get('content-disposition') + + if header and pattern.match(header): + filename = header.partition('=')[2] + _LOGGER.debug("File attachments: %s", filename) + elif response.http_response.headers.get("content-type", "").endswith("octet-stream"): + _LOGGER.debug("Body contains binary data.") + elif response.http_response.headers.get("content-type", "").startswith("image"): + _LOGGER.debug("Body contains image data.") + else: + if response.context.options.get('stream', False): + _LOGGER.debug("Body is streamable") + else: + _LOGGER.debug(response.http_response.text()) + except Exception as err: # pylint: disable=broad-except + _LOGGER.debug("Failed to log response: %s", repr(err)) + + +class StorageRequestHook(SansIOHTTPPolicy): + + def __init__(self, **kwargs): # pylint: disable=unused-argument + self._request_callback = kwargs.get('raw_request_hook') + super(StorageRequestHook, self).__init__() + + def on_request(self, request): + # type: (PipelineRequest, **Any) -> PipelineResponse + request_callback = request.context.options.pop('raw_request_hook', self._request_callback) + if request_callback: + request_callback(request) + + +class StorageResponseHook(HTTPPolicy): + + def __init__(self, **kwargs): # pylint: disable=unused-argument + self._response_callback = kwargs.get('raw_response_hook') + super(StorageResponseHook, self).__init__() + + def send(self, request): + # type: (PipelineRequest) -> PipelineResponse + data_stream_total = request.context.get('data_stream_total') or \ + request.context.options.pop('data_stream_total', None) + download_stream_current = request.context.get('download_stream_current') or \ + request.context.options.pop('download_stream_current', None) + upload_stream_current = request.context.get('upload_stream_current') or \ + request.context.options.pop('upload_stream_current', None) + response_callback = request.context.get('response_callback') or \ + request.context.options.pop('raw_response_hook', self._response_callback) + + response = self.next.send(request) + will_retry = is_retry(response, request.context.options.get('mode')) + if not will_retry and download_stream_current is not None: + download_stream_current += int(response.http_response.headers.get('Content-Length', 0)) + if data_stream_total is None: + content_range = response.http_response.headers.get('Content-Range') + if content_range: + data_stream_total = int(content_range.split(' ', 1)[1].split('/', 1)[1]) + else: + data_stream_total = download_stream_current + elif not will_retry and upload_stream_current is not None: + upload_stream_current += int(response.http_request.headers.get('Content-Length', 0)) + for pipeline_obj in [request, response]: + pipeline_obj.context['data_stream_total'] = data_stream_total + pipeline_obj.context['download_stream_current'] = download_stream_current + pipeline_obj.context['upload_stream_current'] = upload_stream_current + if response_callback: + response_callback(response) + request.context['response_callback'] = response_callback + return response + + +class StorageContentValidation(SansIOHTTPPolicy): + """A simple policy that sends the given headers + with the request. + + This will overwrite any headers already defined in the request. + """ + header_name = 'Content-MD5' + + def __init__(self, **kwargs): # pylint: disable=unused-argument + super(StorageContentValidation, self).__init__() + + @staticmethod + def get_content_md5(data): + md5 = hashlib.md5() # nosec + if isinstance(data, bytes): + md5.update(data) + elif hasattr(data, 'read'): + pos = 0 + try: + pos = data.tell() + except: # pylint: disable=bare-except + pass + for chunk in iter(lambda: data.read(4096), b""): + md5.update(chunk) + try: + data.seek(pos, SEEK_SET) + except (AttributeError, IOError): + raise ValueError("Data should be bytes or a seekable file-like object.") + else: + raise ValueError("Data should be bytes or a seekable file-like object.") + + return md5.digest() + + def on_request(self, request): + # type: (PipelineRequest, Any) -> None + validate_content = request.context.options.pop('validate_content', False) + if validate_content and request.http_request.method != 'GET': + computed_md5 = encode_base64(StorageContentValidation.get_content_md5(request.http_request.data)) + request.http_request.headers[self.header_name] = computed_md5 + request.context['validate_content_md5'] = computed_md5 + request.context['validate_content'] = validate_content + + def on_response(self, request, response): + if response.context.get('validate_content', False) and response.http_response.headers.get('content-md5'): + computed_md5 = request.context.get('validate_content_md5') or \ + encode_base64(StorageContentValidation.get_content_md5(response.http_response.body())) + if response.http_response.headers['content-md5'] != computed_md5: + raise AzureError( + 'MD5 mismatch. Expected value is \'{0}\', computed value is \'{1}\'.'.format( + response.http_response.headers['content-md5'], computed_md5), + response=response.http_response + ) + + +class StorageRetryPolicy(HTTPPolicy): + """ + The base class for Exponential and Linear retries containing shared code. + """ + + def __init__(self, **kwargs): + self.total_retries = kwargs.pop('retry_total', 10) + self.connect_retries = kwargs.pop('retry_connect', 3) + self.read_retries = kwargs.pop('retry_read', 3) + self.status_retries = kwargs.pop('retry_status', 3) + self.retry_to_secondary = kwargs.pop('retry_to_secondary', False) + super(StorageRetryPolicy, self).__init__() + + def _set_next_host_location(self, settings, request): # pylint: disable=no-self-use + """ + A function which sets the next host location on the request, if applicable. + + :param ~azure.storage.models.RetryContext context: + The retry context containing the previous host location and the request + to evaluate and possibly modify. + """ + if settings['hosts'] and all(settings['hosts'].values()): + url = urlparse(request.url) + # If there's more than one possible location, retry to the alternative + if settings['mode'] == LocationMode.PRIMARY: + settings['mode'] = LocationMode.SECONDARY + else: + settings['mode'] = LocationMode.PRIMARY + updated = url._replace(netloc=settings['hosts'].get(settings['mode'])) + request.url = updated.geturl() + + def configure_retries(self, request): # pylint: disable=no-self-use + body_position = None + if hasattr(request.http_request.body, 'read'): + try: + body_position = request.http_request.body.tell() + except (AttributeError, UnsupportedOperation): + # if body position cannot be obtained, then retries will not work + pass + options = request.context.options + return { + 'total': options.pop("retry_total", self.total_retries), + 'connect': options.pop("retry_connect", self.connect_retries), + 'read': options.pop("retry_read", self.read_retries), + 'status': options.pop("retry_status", self.status_retries), + 'retry_secondary': options.pop("retry_to_secondary", self.retry_to_secondary), + 'mode': options.pop("location_mode", LocationMode.PRIMARY), + 'hosts': options.pop("hosts", None), + 'hook': options.pop("retry_hook", None), + 'body_position': body_position, + 'count': 0, + 'history': [] + } + + def get_backoff_time(self, settings): # pylint: disable=unused-argument,no-self-use + """ Formula for computing the current backoff. + Should be calculated by child class. + + :rtype: float + """ + return 0 + + def sleep(self, settings, transport): + backoff = self.get_backoff_time(settings) + if not backoff or backoff < 0: + return + transport.sleep(backoff) + + def increment(self, settings, request, response=None, error=None): + """Increment the retry counters. + + :param response: A pipeline response object. + :param error: An error encountered during the request, or + None if the response was received successfully. + + :return: Whether the retry attempts are exhausted. + """ + settings['total'] -= 1 + + if error and isinstance(error, ServiceRequestError): + # Errors when we're fairly sure that the server did not receive the + # request, so it should be safe to retry. + settings['connect'] -= 1 + settings['history'].append(RequestHistory(request, error=error)) + + elif error and isinstance(error, ServiceResponseError): + # Errors that occur after the request has been started, so we should + # assume that the server began processing it. + settings['read'] -= 1 + settings['history'].append(RequestHistory(request, error=error)) + + else: + # Incrementing because of a server error like a 500 in + # status_forcelist and a the given method is in the whitelist + if response: + settings['status'] -= 1 + settings['history'].append(RequestHistory(request, http_response=response)) + + if not is_exhausted(settings): + if request.method not in ['PUT'] and settings['retry_secondary']: + self._set_next_host_location(settings, request) + + # rewind the request body if it is a stream + if request.body and hasattr(request.body, 'read'): + # no position was saved, then retry would not work + if settings['body_position'] is None: + return False + try: + # attempt to rewind the body to the initial position + request.body.seek(settings['body_position'], SEEK_SET) + except (UnsupportedOperation, ValueError): + # if body is not seekable, then retry would not work + return False + settings['count'] += 1 + return True + return False + + def send(self, request): + retries_remaining = True + response = None + retry_settings = self.configure_retries(request) + while retries_remaining: + try: + response = self.next.send(request) + if is_retry(response, retry_settings['mode']): + retries_remaining = self.increment( + retry_settings, + request=request.http_request, + response=response.http_response) + if retries_remaining: + retry_hook( + retry_settings, + request=request.http_request, + response=response.http_response, + error=None) + self.sleep(retry_settings, request.context.transport) + continue + break + except AzureError as err: + retries_remaining = self.increment( + retry_settings, request=request.http_request, error=err) + if retries_remaining: + retry_hook( + retry_settings, + request=request.http_request, + response=None, + error=err) + self.sleep(retry_settings, request.context.transport) + continue + raise err + if retry_settings['history']: + response.context['history'] = retry_settings['history'] + response.http_response.location_mode = retry_settings['mode'] + return response + + +class ExponentialRetry(StorageRetryPolicy): + """Exponential retry.""" + + def __init__(self, initial_backoff=15, increment_base=3, retry_total=3, + retry_to_secondary=False, random_jitter_range=3, **kwargs): + ''' + Constructs an Exponential retry object. The initial_backoff is used for + the first retry. Subsequent retries are retried after initial_backoff + + increment_power^retry_count seconds. For example, by default the first retry + occurs after 15 seconds, the second after (15+3^1) = 18 seconds, and the + third after (15+3^2) = 24 seconds. + + :param int initial_backoff: + The initial backoff interval, in seconds, for the first retry. + :param int increment_base: + The base, in seconds, to increment the initial_backoff by after the + first retry. + :param int max_attempts: + The maximum number of retry attempts. + :param bool retry_to_secondary: + Whether the request should be retried to secondary, if able. This should + only be enabled of RA-GRS accounts are used and potentially stale data + can be handled. + :param int random_jitter_range: + A number in seconds which indicates a range to jitter/randomize for the back-off interval. + For example, a random_jitter_range of 3 results in the back-off interval x to vary between x+3 and x-3. + ''' + self.initial_backoff = initial_backoff + self.increment_base = increment_base + self.random_jitter_range = random_jitter_range + super(ExponentialRetry, self).__init__( + retry_total=retry_total, retry_to_secondary=retry_to_secondary, **kwargs) + + def get_backoff_time(self, settings): + """ + Calculates how long to sleep before retrying. + + :return: + An integer indicating how long to wait before retrying the request, + or None to indicate no retry should be performed. + :rtype: int or None + """ + random_generator = random.Random() + backoff = self.initial_backoff + (0 if settings['count'] == 0 else pow(self.increment_base, settings['count'])) + random_range_start = backoff - self.random_jitter_range if backoff > self.random_jitter_range else 0 + random_range_end = backoff + self.random_jitter_range + return random_generator.uniform(random_range_start, random_range_end) + + +class LinearRetry(StorageRetryPolicy): + """Linear retry.""" + + def __init__(self, backoff=15, retry_total=3, retry_to_secondary=False, random_jitter_range=3, **kwargs): + """ + Constructs a Linear retry object. + + :param int backoff: + The backoff interval, in seconds, between retries. + :param int max_attempts: + The maximum number of retry attempts. + :param bool retry_to_secondary: + Whether the request should be retried to secondary, if able. This should + only be enabled of RA-GRS accounts are used and potentially stale data + can be handled. + :param int random_jitter_range: + A number in seconds which indicates a range to jitter/randomize for the back-off interval. + For example, a random_jitter_range of 3 results in the back-off interval x to vary between x+3 and x-3. + """ + self.backoff = backoff + self.random_jitter_range = random_jitter_range + super(LinearRetry, self).__init__( + retry_total=retry_total, retry_to_secondary=retry_to_secondary, **kwargs) + + def get_backoff_time(self, settings): + """ + Calculates how long to sleep before retrying. + + :return: + An integer indicating how long to wait before retrying the request, + or None to indicate no retry should be performed. + :rtype: int or None + """ + random_generator = random.Random() + # the backoff interval normally does not change, however there is the possibility + # that it was modified by accessing the property directly after initializing the object + random_range_start = self.backoff - self.random_jitter_range \ + if self.backoff > self.random_jitter_range else 0 + random_range_end = self.backoff + self.random_jitter_range + return random_generator.uniform(random_range_start, random_range_end) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/policies_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/policies_async.py new file mode 100644 index 00000000000..e0926b81dbc --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/policies_async.py @@ -0,0 +1,220 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method + +import asyncio +import random +import logging +from typing import Any, TYPE_CHECKING + +from azure.core.pipeline.policies import AsyncHTTPPolicy +from azure.core.exceptions import AzureError + +from .policies import is_retry, StorageRetryPolicy + +if TYPE_CHECKING: + from azure.core.pipeline import PipelineRequest, PipelineResponse + + +_LOGGER = logging.getLogger(__name__) + + +async def retry_hook(settings, **kwargs): + if settings['hook']: + if asyncio.iscoroutine(settings['hook']): + await settings['hook']( + retry_count=settings['count'] - 1, + location_mode=settings['mode'], + **kwargs) + else: + settings['hook']( + retry_count=settings['count'] - 1, + location_mode=settings['mode'], + **kwargs) + + +class AsyncStorageResponseHook(AsyncHTTPPolicy): + + def __init__(self, **kwargs): # pylint: disable=unused-argument + self._response_callback = kwargs.get('raw_response_hook') + super(AsyncStorageResponseHook, self).__init__() + + async def send(self, request): + # type: (PipelineRequest) -> PipelineResponse + data_stream_total = request.context.get('data_stream_total') or \ + request.context.options.pop('data_stream_total', None) + download_stream_current = request.context.get('download_stream_current') or \ + request.context.options.pop('download_stream_current', None) + upload_stream_current = request.context.get('upload_stream_current') or \ + request.context.options.pop('upload_stream_current', None) + response_callback = request.context.get('response_callback') or \ + request.context.options.pop('raw_response_hook', self._response_callback) + + response = await self.next.send(request) + await response.http_response.load_body() + + will_retry = is_retry(response, request.context.options.get('mode')) + if not will_retry and download_stream_current is not None: + download_stream_current += int(response.http_response.headers.get('Content-Length', 0)) + if data_stream_total is None: + content_range = response.http_response.headers.get('Content-Range') + if content_range: + data_stream_total = int(content_range.split(' ', 1)[1].split('/', 1)[1]) + else: + data_stream_total = download_stream_current + elif not will_retry and upload_stream_current is not None: + upload_stream_current += int(response.http_request.headers.get('Content-Length', 0)) + for pipeline_obj in [request, response]: + pipeline_obj.context['data_stream_total'] = data_stream_total + pipeline_obj.context['download_stream_current'] = download_stream_current + pipeline_obj.context['upload_stream_current'] = upload_stream_current + if response_callback: + if asyncio.iscoroutine(response_callback): + await response_callback(response) + else: + response_callback(response) + request.context['response_callback'] = response_callback + return response + +class AsyncStorageRetryPolicy(StorageRetryPolicy): + """ + The base class for Exponential and Linear retries containing shared code. + """ + + async def sleep(self, settings, transport): + backoff = self.get_backoff_time(settings) + if not backoff or backoff < 0: + return + await transport.sleep(backoff) + + async def send(self, request): + retries_remaining = True + response = None + retry_settings = self.configure_retries(request) + while retries_remaining: + try: + response = await self.next.send(request) + if is_retry(response, retry_settings['mode']): + retries_remaining = self.increment( + retry_settings, + request=request.http_request, + response=response.http_response) + if retries_remaining: + await retry_hook( + retry_settings, + request=request.http_request, + response=response.http_response, + error=None) + await self.sleep(retry_settings, request.context.transport) + continue + break + except AzureError as err: + retries_remaining = self.increment( + retry_settings, request=request.http_request, error=err) + if retries_remaining: + await retry_hook( + retry_settings, + request=request.http_request, + response=None, + error=err) + await self.sleep(retry_settings, request.context.transport) + continue + raise err + if retry_settings['history']: + response.context['history'] = retry_settings['history'] + response.http_response.location_mode = retry_settings['mode'] + return response + + +class ExponentialRetry(AsyncStorageRetryPolicy): + """Exponential retry.""" + + def __init__(self, initial_backoff=15, increment_base=3, retry_total=3, + retry_to_secondary=False, random_jitter_range=3, **kwargs): + ''' + Constructs an Exponential retry object. The initial_backoff is used for + the first retry. Subsequent retries are retried after initial_backoff + + increment_power^retry_count seconds. For example, by default the first retry + occurs after 15 seconds, the second after (15+3^1) = 18 seconds, and the + third after (15+3^2) = 24 seconds. + + :param int initial_backoff: + The initial backoff interval, in seconds, for the first retry. + :param int increment_base: + The base, in seconds, to increment the initial_backoff by after the + first retry. + :param int max_attempts: + The maximum number of retry attempts. + :param bool retry_to_secondary: + Whether the request should be retried to secondary, if able. This should + only be enabled of RA-GRS accounts are used and potentially stale data + can be handled. + :param int random_jitter_range: + A number in seconds which indicates a range to jitter/randomize for the back-off interval. + For example, a random_jitter_range of 3 results in the back-off interval x to vary between x+3 and x-3. + ''' + self.initial_backoff = initial_backoff + self.increment_base = increment_base + self.random_jitter_range = random_jitter_range + super(ExponentialRetry, self).__init__( + retry_total=retry_total, retry_to_secondary=retry_to_secondary, **kwargs) + + def get_backoff_time(self, settings): + """ + Calculates how long to sleep before retrying. + + :return: + An integer indicating how long to wait before retrying the request, + or None to indicate no retry should be performed. + :rtype: int or None + """ + random_generator = random.Random() + backoff = self.initial_backoff + (0 if settings['count'] == 0 else pow(self.increment_base, settings['count'])) + random_range_start = backoff - self.random_jitter_range if backoff > self.random_jitter_range else 0 + random_range_end = backoff + self.random_jitter_range + return random_generator.uniform(random_range_start, random_range_end) + + +class LinearRetry(AsyncStorageRetryPolicy): + """Linear retry.""" + + def __init__(self, backoff=15, retry_total=3, retry_to_secondary=False, random_jitter_range=3, **kwargs): + """ + Constructs a Linear retry object. + + :param int backoff: + The backoff interval, in seconds, between retries. + :param int max_attempts: + The maximum number of retry attempts. + :param bool retry_to_secondary: + Whether the request should be retried to secondary, if able. This should + only be enabled of RA-GRS accounts are used and potentially stale data + can be handled. + :param int random_jitter_range: + A number in seconds which indicates a range to jitter/randomize for the back-off interval. + For example, a random_jitter_range of 3 results in the back-off interval x to vary between x+3 and x-3. + """ + self.backoff = backoff + self.random_jitter_range = random_jitter_range + super(LinearRetry, self).__init__( + retry_total=retry_total, retry_to_secondary=retry_to_secondary, **kwargs) + + def get_backoff_time(self, settings): + """ + Calculates how long to sleep before retrying. + + :return: + An integer indicating how long to wait before retrying the request, + or None to indicate no retry should be performed. + :rtype: int or None + """ + random_generator = random.Random() + # the backoff interval normally does not change, however there is the possibility + # that it was modified by accessing the property directly after initializing the object + random_range_start = self.backoff - self.random_jitter_range \ + if self.backoff > self.random_jitter_range else 0 + random_range_end = self.backoff + self.random_jitter_range + return random_generator.uniform(random_range_start, random_range_end) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/request_handlers.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/request_handlers.py new file mode 100644 index 00000000000..4f15b65a4b6 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/request_handlers.py @@ -0,0 +1,147 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, Dict, List, Type, Tuple, + TYPE_CHECKING +) + +import logging +from os import fstat +from io import (SEEK_END, SEEK_SET, UnsupportedOperation) + +import isodate + +from azure.core.exceptions import raise_with_traceback + + +_LOGGER = logging.getLogger(__name__) + + +def serialize_iso(attr): + """Serialize Datetime object into ISO-8601 formatted string. + + :param Datetime attr: Object to be serialized. + :rtype: str + :raises: ValueError if format invalid. + """ + if not attr: + return None + if isinstance(attr, str): + attr = isodate.parse_datetime(attr) + try: + utc = attr.utctimetuple() + if utc.tm_year > 9999 or utc.tm_year < 1: + raise OverflowError("Hit max or min date") + + date = "{:04}-{:02}-{:02}T{:02}:{:02}:{:02}".format( + utc.tm_year, utc.tm_mon, utc.tm_mday, + utc.tm_hour, utc.tm_min, utc.tm_sec) + return date + 'Z' + except (ValueError, OverflowError) as err: + msg = "Unable to serialize datetime object." + raise_with_traceback(ValueError, msg, err) + except AttributeError as err: + msg = "ISO-8601 object must be valid Datetime object." + raise_with_traceback(TypeError, msg, err) + + +def get_length(data): + length = None + # Check if object implements the __len__ method, covers most input cases such as bytearray. + try: + length = len(data) + except: # pylint: disable=bare-except + pass + + if not length: + # Check if the stream is a file-like stream object. + # If so, calculate the size using the file descriptor. + try: + fileno = data.fileno() + except (AttributeError, UnsupportedOperation): + pass + else: + try: + return fstat(fileno).st_size + except OSError: + # Not a valid fileno, may be possible requests returned + # a socket number? + pass + + # If the stream is seekable and tell() is implemented, calculate the stream size. + try: + current_position = data.tell() + data.seek(0, SEEK_END) + length = data.tell() - current_position + data.seek(current_position, SEEK_SET) + except (AttributeError, UnsupportedOperation): + pass + + return length + + +def read_length(data): + try: + if hasattr(data, 'read'): + read_data = b'' + for chunk in iter(lambda: data.read(4096), b""): + read_data += chunk + return len(read_data), read_data + if hasattr(data, '__iter__'): + read_data = b'' + for chunk in data: + read_data += chunk + return len(read_data), read_data + except: # pylint: disable=bare-except + pass + raise ValueError("Unable to calculate content length, please specify.") + + +def validate_and_format_range_headers( + start_range, end_range, start_range_required=True, + end_range_required=True, check_content_md5=False, align_to_page=False): + # If end range is provided, start range must be provided + if (start_range_required or end_range is not None) and start_range is None: + raise ValueError("start_range value cannot be None.") + if end_range_required and end_range is None: + raise ValueError("end_range value cannot be None.") + + # Page ranges must be 512 aligned + if align_to_page: + if start_range is not None and start_range % 512 != 0: + raise ValueError("Invalid page blob start_range: {0}. " + "The size must be aligned to a 512-byte boundary.".format(start_range)) + if end_range is not None and end_range % 512 != 511: + raise ValueError("Invalid page blob end_range: {0}. " + "The size must be aligned to a 512-byte boundary.".format(end_range)) + + # Format based on whether end_range is present + range_header = None + if end_range is not None: + range_header = 'bytes={0}-{1}'.format(start_range, end_range) + elif start_range is not None: + range_header = "bytes={0}-".format(start_range) + + # Content MD5 can only be provided for a complete range less than 4MB in size + range_validation = None + if check_content_md5: + if start_range is None or end_range is None: + raise ValueError("Both start and end range requied for MD5 content validation.") + if end_range - start_range > 4 * 1024 * 1024: + raise ValueError("Getting content MD5 for a range greater than 4MB is not supported.") + range_validation = 'true' + + return range_header, range_validation + + +def add_metadata_headers(metadata=None): + # type: (Optional[Dict[str, str]]) -> Dict[str, str] + headers = {} + if metadata: + for key, value in metadata.items(): + headers['x-ms-meta-{}'.format(key.strip())] = value.strip() if value else value + return headers diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/response_handlers.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/response_handlers.py new file mode 100644 index 00000000000..ac526e59416 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/response_handlers.py @@ -0,0 +1,159 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, Dict, List, Type, Tuple, + TYPE_CHECKING +) +import logging + +from azure.core.pipeline.policies import ContentDecodePolicy +from azure.core.exceptions import ( + HttpResponseError, + ResourceNotFoundError, + ResourceModifiedError, + ResourceExistsError, + ClientAuthenticationError, + DecodeError) + +from .parser import _to_utc_datetime +from .models import StorageErrorCode, UserDelegationKey, get_enum_value + + +if TYPE_CHECKING: + from datetime import datetime + from azure.core.exceptions import AzureError + + +_LOGGER = logging.getLogger(__name__) + + +class PartialBatchErrorException(HttpResponseError): + """There is a partial failure in batch operations. + + :param str message: The message of the exception. + :param response: Server response to be deserialized. + :param list parts: A list of the parts in multipart response. + """ + + def __init__(self, message, response, parts): + self.parts = parts + super(PartialBatchErrorException, self).__init__(message=message, response=response) + + +def parse_length_from_content_range(content_range): + ''' + Parses the blob length from the content range header: bytes 1-3/65537 + ''' + if content_range is None: + return None + + # First, split in space and take the second half: '1-3/65537' + # Next, split on slash and take the second half: '65537' + # Finally, convert to an int: 65537 + return int(content_range.split(' ', 1)[1].split('/', 1)[1]) + + +def normalize_headers(headers): + normalized = {} + for key, value in headers.items(): + if key.startswith('x-ms-'): + key = key[5:] + normalized[key.lower().replace('-', '_')] = get_enum_value(value) + return normalized + + +def deserialize_metadata(response, obj, headers): # pylint: disable=unused-argument + raw_metadata = {k: v for k, v in response.headers.items() if k.startswith("x-ms-meta-")} + return {k[10:]: v for k, v in raw_metadata.items()} + + +def return_response_headers(response, deserialized, response_headers): # pylint: disable=unused-argument + return normalize_headers(response_headers) + + +def return_headers_and_deserialized(response, deserialized, response_headers): # pylint: disable=unused-argument + return normalize_headers(response_headers), deserialized + + +def return_context_and_deserialized(response, deserialized, response_headers): # pylint: disable=unused-argument + return response.location_mode, deserialized + + +def process_storage_error(storage_error): + raise_error = HttpResponseError + error_code = storage_error.response.headers.get('x-ms-error-code') + error_message = storage_error.message + additional_data = {} + try: + error_body = ContentDecodePolicy.deserialize_from_http_generics(storage_error.response) + if error_body: + for info in error_body.iter(): + if info.tag.lower() == 'code': + error_code = info.text + elif info.tag.lower() == 'message': + error_message = info.text + else: + additional_data[info.tag] = info.text + except DecodeError: + pass + + try: + if error_code: + error_code = StorageErrorCode(error_code) + if error_code in [StorageErrorCode.condition_not_met, + StorageErrorCode.blob_overwritten]: + raise_error = ResourceModifiedError + if error_code in [StorageErrorCode.invalid_authentication_info, + StorageErrorCode.authentication_failed]: + raise_error = ClientAuthenticationError + if error_code in [StorageErrorCode.resource_not_found, + StorageErrorCode.cannot_verify_copy_source, + StorageErrorCode.blob_not_found, + StorageErrorCode.queue_not_found, + StorageErrorCode.container_not_found, + StorageErrorCode.parent_not_found, + StorageErrorCode.share_not_found]: + raise_error = ResourceNotFoundError + if error_code in [StorageErrorCode.account_already_exists, + StorageErrorCode.account_being_created, + StorageErrorCode.resource_already_exists, + StorageErrorCode.resource_type_mismatch, + StorageErrorCode.blob_already_exists, + StorageErrorCode.queue_already_exists, + StorageErrorCode.container_already_exists, + StorageErrorCode.container_being_deleted, + StorageErrorCode.queue_being_deleted, + StorageErrorCode.share_already_exists, + StorageErrorCode.share_being_deleted]: + raise_error = ResourceExistsError + except ValueError: + # Got an unknown error code + pass + + try: + error_message += "\nErrorCode:{}".format(error_code.value) + except AttributeError: + error_message += "\nErrorCode:{}".format(error_code) + for name, info in additional_data.items(): + error_message += "\n{}:{}".format(name, info) + + error = raise_error(message=error_message, response=storage_error.response) + error.error_code = error_code + error.additional_info = additional_data + raise error + + +def parse_to_internal_user_delegation_key(service_user_delegation_key): + internal_user_delegation_key = UserDelegationKey() + internal_user_delegation_key.signed_oid = service_user_delegation_key.signed_oid + internal_user_delegation_key.signed_tid = service_user_delegation_key.signed_tid + internal_user_delegation_key.signed_start = _to_utc_datetime(service_user_delegation_key.signed_start) + internal_user_delegation_key.signed_expiry = _to_utc_datetime(service_user_delegation_key.signed_expiry) + internal_user_delegation_key.signed_service = service_user_delegation_key.signed_service + internal_user_delegation_key.signed_version = service_user_delegation_key.signed_version + internal_user_delegation_key.value = service_user_delegation_key.value + return internal_user_delegation_key diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/shared_access_signature.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/shared_access_signature.py new file mode 100644 index 00000000000..367c6554ef8 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/shared_access_signature.py @@ -0,0 +1,209 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from datetime import date + +from .parser import _str, _to_utc_datetime +from .constants import X_MS_VERSION +from . import sign_string, url_quote + + +class QueryStringConstants(object): + SIGNED_SIGNATURE = 'sig' + SIGNED_PERMISSION = 'sp' + SIGNED_START = 'st' + SIGNED_EXPIRY = 'se' + SIGNED_RESOURCE = 'sr' + SIGNED_IDENTIFIER = 'si' + SIGNED_IP = 'sip' + SIGNED_PROTOCOL = 'spr' + SIGNED_VERSION = 'sv' + SIGNED_CACHE_CONTROL = 'rscc' + SIGNED_CONTENT_DISPOSITION = 'rscd' + SIGNED_CONTENT_ENCODING = 'rsce' + SIGNED_CONTENT_LANGUAGE = 'rscl' + SIGNED_CONTENT_TYPE = 'rsct' + START_PK = 'spk' + START_RK = 'srk' + END_PK = 'epk' + END_RK = 'erk' + SIGNED_RESOURCE_TYPES = 'srt' + SIGNED_SERVICES = 'ss' + SIGNED_OID = 'skoid' + SIGNED_TID = 'sktid' + SIGNED_KEY_START = 'skt' + SIGNED_KEY_EXPIRY = 'ske' + SIGNED_KEY_SERVICE = 'sks' + SIGNED_KEY_VERSION = 'skv' + + @staticmethod + def to_list(): + return [ + QueryStringConstants.SIGNED_SIGNATURE, + QueryStringConstants.SIGNED_PERMISSION, + QueryStringConstants.SIGNED_START, + QueryStringConstants.SIGNED_EXPIRY, + QueryStringConstants.SIGNED_RESOURCE, + QueryStringConstants.SIGNED_IDENTIFIER, + QueryStringConstants.SIGNED_IP, + QueryStringConstants.SIGNED_PROTOCOL, + QueryStringConstants.SIGNED_VERSION, + QueryStringConstants.SIGNED_CACHE_CONTROL, + QueryStringConstants.SIGNED_CONTENT_DISPOSITION, + QueryStringConstants.SIGNED_CONTENT_ENCODING, + QueryStringConstants.SIGNED_CONTENT_LANGUAGE, + QueryStringConstants.SIGNED_CONTENT_TYPE, + QueryStringConstants.START_PK, + QueryStringConstants.START_RK, + QueryStringConstants.END_PK, + QueryStringConstants.END_RK, + QueryStringConstants.SIGNED_RESOURCE_TYPES, + QueryStringConstants.SIGNED_SERVICES, + QueryStringConstants.SIGNED_OID, + QueryStringConstants.SIGNED_TID, + QueryStringConstants.SIGNED_KEY_START, + QueryStringConstants.SIGNED_KEY_EXPIRY, + QueryStringConstants.SIGNED_KEY_SERVICE, + QueryStringConstants.SIGNED_KEY_VERSION, + ] + + +class SharedAccessSignature(object): + ''' + Provides a factory for creating account access + signature tokens with an account name and account key. Users can either + use the factory or can construct the appropriate service and use the + generate_*_shared_access_signature method directly. + ''' + + def __init__(self, account_name, account_key, x_ms_version=X_MS_VERSION): + ''' + :param str account_name: + The storage account name used to generate the shared access signatures. + :param str account_key: + The access key to generate the shares access signatures. + :param str x_ms_version: + The service version used to generate the shared access signatures. + ''' + self.account_name = account_name + self.account_key = account_key + self.x_ms_version = x_ms_version + + def generate_account(self, services, resource_types, permission, expiry, start=None, + ip=None, protocol=None): + ''' + Generates a shared access signature for the account. + Use the returned signature with the sas_token parameter of the service + or to create a new account object. + + :param ResourceTypes resource_types: + Specifies the resource types that are accessible with the account + SAS. You can combine values to provide access to more than one + resource type. + :param AccountSasPermissions permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. You can combine + values to provide more than one permission. + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: datetime or str + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :param str protocol: + Specifies the protocol permitted for a request made. The default value + is https,http. See :class:`~azure.storage.common.models.Protocol` for possible values. + ''' + sas = _SharedAccessHelper() + sas.add_base(permission, expiry, start, ip, protocol, self.x_ms_version) + sas.add_account(services, resource_types) + sas.add_account_signature(self.account_name, self.account_key) + + return sas.get_token() + + +class _SharedAccessHelper(object): + def __init__(self): + self.query_dict = {} + + def _add_query(self, name, val): + if val: + self.query_dict[name] = _str(val) if val is not None else None + + def add_base(self, permission, expiry, start, ip, protocol, x_ms_version): + if isinstance(start, date): + start = _to_utc_datetime(start) + + if isinstance(expiry, date): + expiry = _to_utc_datetime(expiry) + + self._add_query(QueryStringConstants.SIGNED_START, start) + self._add_query(QueryStringConstants.SIGNED_EXPIRY, expiry) + self._add_query(QueryStringConstants.SIGNED_PERMISSION, permission) + self._add_query(QueryStringConstants.SIGNED_IP, ip) + self._add_query(QueryStringConstants.SIGNED_PROTOCOL, protocol) + self._add_query(QueryStringConstants.SIGNED_VERSION, x_ms_version) + + def add_resource(self, resource): + self._add_query(QueryStringConstants.SIGNED_RESOURCE, resource) + + def add_id(self, policy_id): + self._add_query(QueryStringConstants.SIGNED_IDENTIFIER, policy_id) + + def add_account(self, services, resource_types): + self._add_query(QueryStringConstants.SIGNED_SERVICES, services) + self._add_query(QueryStringConstants.SIGNED_RESOURCE_TYPES, resource_types) + + def add_override_response_headers(self, cache_control, + content_disposition, + content_encoding, + content_language, + content_type): + self._add_query(QueryStringConstants.SIGNED_CACHE_CONTROL, cache_control) + self._add_query(QueryStringConstants.SIGNED_CONTENT_DISPOSITION, content_disposition) + self._add_query(QueryStringConstants.SIGNED_CONTENT_ENCODING, content_encoding) + self._add_query(QueryStringConstants.SIGNED_CONTENT_LANGUAGE, content_language) + self._add_query(QueryStringConstants.SIGNED_CONTENT_TYPE, content_type) + + def add_account_signature(self, account_name, account_key): + def get_value_to_append(query): + return_value = self.query_dict.get(query) or '' + return return_value + '\n' + + string_to_sign = \ + (account_name + '\n' + + get_value_to_append(QueryStringConstants.SIGNED_PERMISSION) + + get_value_to_append(QueryStringConstants.SIGNED_SERVICES) + + get_value_to_append(QueryStringConstants.SIGNED_RESOURCE_TYPES) + + get_value_to_append(QueryStringConstants.SIGNED_START) + + get_value_to_append(QueryStringConstants.SIGNED_EXPIRY) + + get_value_to_append(QueryStringConstants.SIGNED_IP) + + get_value_to_append(QueryStringConstants.SIGNED_PROTOCOL) + + get_value_to_append(QueryStringConstants.SIGNED_VERSION)) + + self._add_query(QueryStringConstants.SIGNED_SIGNATURE, + sign_string(account_key, string_to_sign)) + + def get_token(self): + return '&'.join(['{0}={1}'.format(n, url_quote(v)) for n, v in self.query_dict.items() if v is not None]) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/uploads.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/uploads.py new file mode 100644 index 00000000000..abf3fb2ce00 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/uploads.py @@ -0,0 +1,550 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use + +from concurrent import futures +from io import (BytesIO, IOBase, SEEK_CUR, SEEK_END, SEEK_SET, UnsupportedOperation) +from threading import Lock +from itertools import islice +from math import ceil + +import six + +from azure.core.tracing.common import with_current_context + +from . import encode_base64, url_quote +from .request_handlers import get_length +from .response_handlers import return_response_headers +from .encryption import get_blob_encryptor_and_padder + + +_LARGE_BLOB_UPLOAD_MAX_READ_BUFFER_SIZE = 4 * 1024 * 1024 +_ERROR_VALUE_SHOULD_BE_SEEKABLE_STREAM = "{0} should be a seekable file-like/io.IOBase type stream object." + + +def _parallel_uploads(executor, uploader, pending, running): + range_ids = [] + while True: + # Wait for some download to finish before adding a new one + done, running = futures.wait(running, return_when=futures.FIRST_COMPLETED) + range_ids.extend([chunk.result() for chunk in done]) + try: + for _ in range(0, len(done)): + next_chunk = next(pending) + running.add(executor.submit(with_current_context(uploader), next_chunk)) + except StopIteration: + break + + # Wait for the remaining uploads to finish + done, _running = futures.wait(running) + range_ids.extend([chunk.result() for chunk in done]) + return range_ids + + +def upload_data_chunks( + service=None, + uploader_class=None, + total_size=None, + chunk_size=None, + max_concurrency=None, + stream=None, + validate_content=None, + encryption_options=None, + **kwargs): + + if encryption_options: + encryptor, padder = get_blob_encryptor_and_padder( + encryption_options.get('cek'), + encryption_options.get('vector'), + uploader_class is not PageBlobChunkUploader) + kwargs['encryptor'] = encryptor + kwargs['padder'] = padder + + parallel = max_concurrency > 1 + if parallel and 'modified_access_conditions' in kwargs: + # Access conditions do not work with parallelism + kwargs['modified_access_conditions'] = None + + uploader = uploader_class( + service=service, + total_size=total_size, + chunk_size=chunk_size, + stream=stream, + parallel=parallel, + validate_content=validate_content, + **kwargs) + if parallel: + executor = futures.ThreadPoolExecutor(max_concurrency) + upload_tasks = uploader.get_chunk_streams() + running_futures = [ + executor.submit(with_current_context(uploader.process_chunk), u) + for u in islice(upload_tasks, 0, max_concurrency) + ] + range_ids = _parallel_uploads(executor, uploader.process_chunk, upload_tasks, running_futures) + else: + range_ids = [uploader.process_chunk(result) for result in uploader.get_chunk_streams()] + if any(range_ids): + return [r[1] for r in sorted(range_ids, key=lambda r: r[0])] + return uploader.response_headers + + +def upload_substream_blocks( + service=None, + uploader_class=None, + total_size=None, + chunk_size=None, + max_concurrency=None, + stream=None, + **kwargs): + parallel = max_concurrency > 1 + if parallel and 'modified_access_conditions' in kwargs: + # Access conditions do not work with parallelism + kwargs['modified_access_conditions'] = None + uploader = uploader_class( + service=service, + total_size=total_size, + chunk_size=chunk_size, + stream=stream, + parallel=parallel, + **kwargs) + + if parallel: + executor = futures.ThreadPoolExecutor(max_concurrency) + upload_tasks = uploader.get_substream_blocks() + running_futures = [ + executor.submit(with_current_context(uploader.process_substream_block), u) + for u in islice(upload_tasks, 0, max_concurrency) + ] + range_ids = _parallel_uploads(executor, uploader.process_substream_block, upload_tasks, running_futures) + else: + range_ids = [uploader.process_substream_block(b) for b in uploader.get_substream_blocks()] + return sorted(range_ids) + + +class _ChunkUploader(object): # pylint: disable=too-many-instance-attributes + + def __init__(self, service, total_size, chunk_size, stream, parallel, encryptor=None, padder=None, **kwargs): + self.service = service + self.total_size = total_size + self.chunk_size = chunk_size + self.stream = stream + self.parallel = parallel + + # Stream management + self.stream_start = stream.tell() if parallel else None + self.stream_lock = Lock() if parallel else None + + # Progress feedback + self.progress_total = 0 + self.progress_lock = Lock() if parallel else None + + # Encryption + self.encryptor = encryptor + self.padder = padder + self.response_headers = None + self.etag = None + self.last_modified = None + self.request_options = kwargs + + def get_chunk_streams(self): + index = 0 + while True: + data = b"" + read_size = self.chunk_size + + # Buffer until we either reach the end of the stream or get a whole chunk. + while True: + if self.total_size: + read_size = min(self.chunk_size - len(data), self.total_size - (index + len(data))) + temp = self.stream.read(read_size) + if not isinstance(temp, six.binary_type): + raise TypeError("Blob data should be of type bytes.") + data += temp or b"" + + # We have read an empty string and so are at the end + # of the buffer or we have read a full chunk. + if temp == b"" or len(data) == self.chunk_size: + break + + if len(data) == self.chunk_size: + if self.padder: + data = self.padder.update(data) + if self.encryptor: + data = self.encryptor.update(data) + yield index, data + else: + if self.padder: + data = self.padder.update(data) + self.padder.finalize() + if self.encryptor: + data = self.encryptor.update(data) + self.encryptor.finalize() + if data: + yield index, data + break + index += len(data) + + def process_chunk(self, chunk_data): + chunk_bytes = chunk_data[1] + chunk_offset = chunk_data[0] + return self._upload_chunk_with_progress(chunk_offset, chunk_bytes) + + def _update_progress(self, length): + if self.progress_lock is not None: + with self.progress_lock: + self.progress_total += length + else: + self.progress_total += length + + def _upload_chunk(self, chunk_offset, chunk_data): + raise NotImplementedError("Must be implemented by child class.") + + def _upload_chunk_with_progress(self, chunk_offset, chunk_data): + range_id = self._upload_chunk(chunk_offset, chunk_data) + self._update_progress(len(chunk_data)) + return range_id + + def get_substream_blocks(self): + assert self.chunk_size is not None + lock = self.stream_lock + blob_length = self.total_size + + if blob_length is None: + blob_length = get_length(self.stream) + if blob_length is None: + raise ValueError("Unable to determine content length of upload data.") + + blocks = int(ceil(blob_length / (self.chunk_size * 1.0))) + last_block_size = self.chunk_size if blob_length % self.chunk_size == 0 else blob_length % self.chunk_size + + for i in range(blocks): + index = i * self.chunk_size + length = last_block_size if i == blocks - 1 else self.chunk_size + yield ('BlockId{}'.format("%05d" % i), SubStream(self.stream, index, length, lock)) + + def process_substream_block(self, block_data): + return self._upload_substream_block_with_progress(block_data[0], block_data[1]) + + def _upload_substream_block(self, block_id, block_stream): + raise NotImplementedError("Must be implemented by child class.") + + def _upload_substream_block_with_progress(self, block_id, block_stream): + range_id = self._upload_substream_block(block_id, block_stream) + self._update_progress(len(block_stream)) + return range_id + + def set_response_properties(self, resp): + self.etag = resp.etag + self.last_modified = resp.last_modified + + +class BlockBlobChunkUploader(_ChunkUploader): + + def __init__(self, *args, **kwargs): + kwargs.pop("modified_access_conditions", None) + super(BlockBlobChunkUploader, self).__init__(*args, **kwargs) + self.current_length = None + + def _upload_chunk(self, chunk_offset, chunk_data): + # TODO: This is incorrect, but works with recording. + index = '{0:032d}'.format(chunk_offset) + block_id = encode_base64(url_quote(encode_base64(index))) + self.service.stage_block( + block_id, + len(chunk_data), + chunk_data, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + return index, block_id + + def _upload_substream_block(self, block_id, block_stream): + try: + self.service.stage_block( + block_id, + len(block_stream), + block_stream, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + finally: + block_stream.close() + return block_id + + +class PageBlobChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + def _is_chunk_empty(self, chunk_data): + # read until non-zero byte is encountered + # if reached the end without returning, then chunk_data is all 0's + return not any(bytearray(chunk_data)) + + def _upload_chunk(self, chunk_offset, chunk_data): + # avoid uploading the empty pages + if not self._is_chunk_empty(chunk_data): + chunk_end = chunk_offset + len(chunk_data) - 1 + content_range = "bytes={0}-{1}".format(chunk_offset, chunk_end) + computed_md5 = None + self.response_headers = self.service.upload_pages( + chunk_data, + content_length=len(chunk_data), + transactional_content_md5=computed_md5, + range=content_range, + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + + if not self.parallel and self.request_options.get('modified_access_conditions'): + self.request_options['modified_access_conditions'].if_match = self.response_headers['etag'] + + +class AppendBlobChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + def __init__(self, *args, **kwargs): + super(AppendBlobChunkUploader, self).__init__(*args, **kwargs) + self.current_length = None + + def _upload_chunk(self, chunk_offset, chunk_data): + if self.current_length is None: + self.response_headers = self.service.append_block( + chunk_data, + content_length=len(chunk_data), + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + self.current_length = int(self.response_headers["blob_append_offset"]) + else: + self.request_options['append_position_access_conditions'].append_position = \ + self.current_length + chunk_offset + self.response_headers = self.service.append_block( + chunk_data, + content_length=len(chunk_data), + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + + +class FileChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + def _upload_chunk(self, chunk_offset, chunk_data): + length = len(chunk_data) + chunk_end = chunk_offset + length - 1 + response = self.service.upload_range( + chunk_data, + chunk_offset, + length, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + return 'bytes={0}-{1}'.format(chunk_offset, chunk_end), response + + +class SubStream(IOBase): + + def __init__(self, wrapped_stream, stream_begin_index, length, lockObj): + # Python 2.7: file-like objects created with open() typically support seek(), but are not + # derivations of io.IOBase and thus do not implement seekable(). + # Python > 3.0: file-like objects created with open() are derived from io.IOBase. + try: + # only the main thread runs this, so there's no need grabbing the lock + wrapped_stream.seek(0, SEEK_CUR) + except: + raise ValueError("Wrapped stream must support seek().") + + self._lock = lockObj + self._wrapped_stream = wrapped_stream + self._position = 0 + self._stream_begin_index = stream_begin_index + self._length = length + self._buffer = BytesIO() + + # we must avoid buffering more than necessary, and also not use up too much memory + # so the max buffer size is capped at 4MB + self._max_buffer_size = ( + length if length < _LARGE_BLOB_UPLOAD_MAX_READ_BUFFER_SIZE else _LARGE_BLOB_UPLOAD_MAX_READ_BUFFER_SIZE + ) + self._current_buffer_start = 0 + self._current_buffer_size = 0 + super(SubStream, self).__init__() + + def __len__(self): + return self._length + + def close(self): + if self._buffer: + self._buffer.close() + self._wrapped_stream = None + IOBase.close(self) + + def fileno(self): + return self._wrapped_stream.fileno() + + def flush(self): + pass + + def read(self, size=None): + if self.closed: # pylint: disable=using-constant-test + raise ValueError("Stream is closed.") + + if size is None: + size = self._length - self._position + + # adjust if out of bounds + if size + self._position >= self._length: + size = self._length - self._position + + # return fast + if size == 0 or self._buffer.closed: + return b"" + + # attempt first read from the read buffer and update position + read_buffer = self._buffer.read(size) + bytes_read = len(read_buffer) + bytes_remaining = size - bytes_read + self._position += bytes_read + + # repopulate the read buffer from the underlying stream to fulfill the request + # ensure the seek and read operations are done atomically (only if a lock is provided) + if bytes_remaining > 0: + with self._buffer: + # either read in the max buffer size specified on the class + # or read in just enough data for the current block/sub stream + current_max_buffer_size = min(self._max_buffer_size, self._length - self._position) + + # lock is only defined if max_concurrency > 1 (parallel uploads) + if self._lock: + with self._lock: + # reposition the underlying stream to match the start of the data to read + absolute_position = self._stream_begin_index + self._position + self._wrapped_stream.seek(absolute_position, SEEK_SET) + # If we can't seek to the right location, our read will be corrupted so fail fast. + if self._wrapped_stream.tell() != absolute_position: + raise IOError("Stream failed to seek to the desired location.") + buffer_from_stream = self._wrapped_stream.read(current_max_buffer_size) + else: + buffer_from_stream = self._wrapped_stream.read(current_max_buffer_size) + + if buffer_from_stream: + # update the buffer with new data from the wrapped stream + # we need to note down the start position and size of the buffer, in case seek is performed later + self._buffer = BytesIO(buffer_from_stream) + self._current_buffer_start = self._position + self._current_buffer_size = len(buffer_from_stream) + + # read the remaining bytes from the new buffer and update position + second_read_buffer = self._buffer.read(bytes_remaining) + read_buffer += second_read_buffer + self._position += len(second_read_buffer) + + return read_buffer + + def readable(self): + return True + + def readinto(self, b): + raise UnsupportedOperation + + def seek(self, offset, whence=0): + if whence is SEEK_SET: + start_index = 0 + elif whence is SEEK_CUR: + start_index = self._position + elif whence is SEEK_END: + start_index = self._length + offset = -offset + else: + raise ValueError("Invalid argument for the 'whence' parameter.") + + pos = start_index + offset + + if pos > self._length: + pos = self._length + elif pos < 0: + pos = 0 + + # check if buffer is still valid + # if not, drop buffer + if pos < self._current_buffer_start or pos >= self._current_buffer_start + self._current_buffer_size: + self._buffer.close() + self._buffer = BytesIO() + else: # if yes seek to correct position + delta = pos - self._current_buffer_start + self._buffer.seek(delta, SEEK_SET) + + self._position = pos + return pos + + def seekable(self): + return True + + def tell(self): + return self._position + + def write(self): + raise UnsupportedOperation + + def writelines(self): + raise UnsupportedOperation + + def writeable(self): + return False + + +class IterStreamer(object): + """ + File-like streaming iterator. + """ + + def __init__(self, generator, encoding="UTF-8"): + self.generator = generator + self.iterator = iter(generator) + self.leftover = b"" + self.encoding = encoding + + def __len__(self): + return self.generator.__len__() + + def __iter__(self): + return self.iterator + + def seekable(self): + return False + + def __next__(self): + return next(self.iterator) + + next = __next__ # Python 2 compatibility. + + def tell(self, *args, **kwargs): + raise UnsupportedOperation("Data generator does not support tell.") + + def seek(self, *args, **kwargs): + raise UnsupportedOperation("Data generator is unseekable.") + + def read(self, size): + data = self.leftover + count = len(self.leftover) + try: + while count < size: + chunk = self.__next__() + if isinstance(chunk, six.text_type): + chunk = chunk.encode(self.encoding) + data += chunk + count += len(chunk) + except StopIteration: + pass + + if count > size: + self.leftover = data[size:] + + return data[:size] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/uploads_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/uploads_async.py new file mode 100644 index 00000000000..fe68a2b5533 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared/uploads_async.py @@ -0,0 +1,350 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use + +import asyncio +from asyncio import Lock +from itertools import islice +import threading + +from math import ceil + +import six + +from . import encode_base64, url_quote +from .request_handlers import get_length +from .response_handlers import return_response_headers +from .encryption import get_blob_encryptor_and_padder +from .uploads import SubStream, IterStreamer # pylint: disable=unused-import + + +_LARGE_BLOB_UPLOAD_MAX_READ_BUFFER_SIZE = 4 * 1024 * 1024 +_ERROR_VALUE_SHOULD_BE_SEEKABLE_STREAM = '{0} should be a seekable file-like/io.IOBase type stream object.' + + +async def _parallel_uploads(uploader, pending, running): + range_ids = [] + while True: + # Wait for some download to finish before adding a new one + done, running = await asyncio.wait(running, return_when=asyncio.FIRST_COMPLETED) + range_ids.extend([chunk.result() for chunk in done]) + try: + for _ in range(0, len(done)): + next_chunk = next(pending) + running.add(asyncio.ensure_future(uploader(next_chunk))) + except StopIteration: + break + + # Wait for the remaining uploads to finish + if running: + done, _running = await asyncio.wait(running) + range_ids.extend([chunk.result() for chunk in done]) + return range_ids + + +async def upload_data_chunks( + service=None, + uploader_class=None, + total_size=None, + chunk_size=None, + max_concurrency=None, + stream=None, + encryption_options=None, + **kwargs): + + if encryption_options: + encryptor, padder = get_blob_encryptor_and_padder( + encryption_options.get('cek'), + encryption_options.get('vector'), + uploader_class is not PageBlobChunkUploader) + kwargs['encryptor'] = encryptor + kwargs['padder'] = padder + + parallel = max_concurrency > 1 + if parallel and 'modified_access_conditions' in kwargs: + # Access conditions do not work with parallelism + kwargs['modified_access_conditions'] = None + + uploader = uploader_class( + service=service, + total_size=total_size, + chunk_size=chunk_size, + stream=stream, + parallel=parallel, + **kwargs) + + if parallel: + upload_tasks = uploader.get_chunk_streams() + running_futures = [ + asyncio.ensure_future(uploader.process_chunk(u)) + for u in islice(upload_tasks, 0, max_concurrency) + ] + range_ids = await _parallel_uploads(uploader.process_chunk, upload_tasks, running_futures) + else: + range_ids = [] + for chunk in uploader.get_chunk_streams(): + range_ids.append(await uploader.process_chunk(chunk)) + + if any(range_ids): + return [r[1] for r in sorted(range_ids, key=lambda r: r[0])] + return uploader.response_headers + + +async def upload_substream_blocks( + service=None, + uploader_class=None, + total_size=None, + chunk_size=None, + max_concurrency=None, + stream=None, + **kwargs): + parallel = max_concurrency > 1 + if parallel and 'modified_access_conditions' in kwargs: + # Access conditions do not work with parallelism + kwargs['modified_access_conditions'] = None + uploader = uploader_class( + service=service, + total_size=total_size, + chunk_size=chunk_size, + stream=stream, + parallel=parallel, + **kwargs) + + if parallel: + upload_tasks = uploader.get_substream_blocks() + running_futures = [ + asyncio.ensure_future(uploader.process_substream_block(u)) + for u in islice(upload_tasks, 0, max_concurrency) + ] + range_ids = await _parallel_uploads(uploader.process_substream_block, upload_tasks, running_futures) + else: + range_ids = [] + for block in uploader.get_substream_blocks(): + range_ids.append(await uploader.process_substream_block(block)) + return sorted(range_ids) + + +class _ChunkUploader(object): # pylint: disable=too-many-instance-attributes + + def __init__(self, service, total_size, chunk_size, stream, parallel, encryptor=None, padder=None, **kwargs): + self.service = service + self.total_size = total_size + self.chunk_size = chunk_size + self.stream = stream + self.parallel = parallel + + # Stream management + self.stream_start = stream.tell() if parallel else None + self.stream_lock = threading.Lock() if parallel else None + + # Progress feedback + self.progress_total = 0 + self.progress_lock = Lock() if parallel else None + + # Encryption + self.encryptor = encryptor + self.padder = padder + self.response_headers = None + self.etag = None + self.last_modified = None + self.request_options = kwargs + + def get_chunk_streams(self): + index = 0 + while True: + data = b'' + read_size = self.chunk_size + + # Buffer until we either reach the end of the stream or get a whole chunk. + while True: + if self.total_size: + read_size = min(self.chunk_size - len(data), self.total_size - (index + len(data))) + temp = self.stream.read(read_size) + if not isinstance(temp, six.binary_type): + raise TypeError('Blob data should be of type bytes.') + data += temp or b"" + + # We have read an empty string and so are at the end + # of the buffer or we have read a full chunk. + if temp == b'' or len(data) == self.chunk_size: + break + + if len(data) == self.chunk_size: + if self.padder: + data = self.padder.update(data) + if self.encryptor: + data = self.encryptor.update(data) + yield index, data + else: + if self.padder: + data = self.padder.update(data) + self.padder.finalize() + if self.encryptor: + data = self.encryptor.update(data) + self.encryptor.finalize() + if data: + yield index, data + break + index += len(data) + + async def process_chunk(self, chunk_data): + chunk_bytes = chunk_data[1] + chunk_offset = chunk_data[0] + return await self._upload_chunk_with_progress(chunk_offset, chunk_bytes) + + async def _update_progress(self, length): + if self.progress_lock is not None: + async with self.progress_lock: + self.progress_total += length + else: + self.progress_total += length + + async def _upload_chunk(self, chunk_offset, chunk_data): + raise NotImplementedError("Must be implemented by child class.") + + async def _upload_chunk_with_progress(self, chunk_offset, chunk_data): + range_id = await self._upload_chunk(chunk_offset, chunk_data) + await self._update_progress(len(chunk_data)) + return range_id + + def get_substream_blocks(self): + assert self.chunk_size is not None + lock = self.stream_lock + blob_length = self.total_size + + if blob_length is None: + blob_length = get_length(self.stream) + if blob_length is None: + raise ValueError("Unable to determine content length of upload data.") + + blocks = int(ceil(blob_length / (self.chunk_size * 1.0))) + last_block_size = self.chunk_size if blob_length % self.chunk_size == 0 else blob_length % self.chunk_size + + for i in range(blocks): + index = i * self.chunk_size + length = last_block_size if i == blocks - 1 else self.chunk_size + yield ('BlockId{}'.format("%05d" % i), SubStream(self.stream, index, length, lock)) + + async def process_substream_block(self, block_data): + return await self._upload_substream_block_with_progress(block_data[0], block_data[1]) + + async def _upload_substream_block(self, block_id, block_stream): + raise NotImplementedError("Must be implemented by child class.") + + async def _upload_substream_block_with_progress(self, block_id, block_stream): + range_id = await self._upload_substream_block(block_id, block_stream) + await self._update_progress(len(block_stream)) + return range_id + + def set_response_properties(self, resp): + self.etag = resp.etag + self.last_modified = resp.last_modified + + +class BlockBlobChunkUploader(_ChunkUploader): + + def __init__(self, *args, **kwargs): + kwargs.pop('modified_access_conditions', None) + super(BlockBlobChunkUploader, self).__init__(*args, **kwargs) + self.current_length = None + + async def _upload_chunk(self, chunk_offset, chunk_data): + # TODO: This is incorrect, but works with recording. + index = '{0:032d}'.format(chunk_offset) + block_id = encode_base64(url_quote(encode_base64(index))) + await self.service.stage_block( + block_id, + len(chunk_data), + chunk_data, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options) + return index, block_id + + async def _upload_substream_block(self, block_id, block_stream): + try: + await self.service.stage_block( + block_id, + len(block_stream), + block_stream, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options) + finally: + block_stream.close() + return block_id + + +class PageBlobChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + def _is_chunk_empty(self, chunk_data): + # read until non-zero byte is encountered + # if reached the end without returning, then chunk_data is all 0's + for each_byte in chunk_data: + if each_byte not in [0, b'\x00']: + return False + return True + + async def _upload_chunk(self, chunk_offset, chunk_data): + # avoid uploading the empty pages + if not self._is_chunk_empty(chunk_data): + chunk_end = chunk_offset + len(chunk_data) - 1 + content_range = 'bytes={0}-{1}'.format(chunk_offset, chunk_end) + computed_md5 = None + self.response_headers = await self.service.upload_pages( + chunk_data, + content_length=len(chunk_data), + transactional_content_md5=computed_md5, + range=content_range, + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options) + + if not self.parallel and self.request_options.get('modified_access_conditions'): + self.request_options['modified_access_conditions'].if_match = self.response_headers['etag'] + + +class AppendBlobChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + def __init__(self, *args, **kwargs): + super(AppendBlobChunkUploader, self).__init__(*args, **kwargs) + self.current_length = None + + async def _upload_chunk(self, chunk_offset, chunk_data): + if self.current_length is None: + self.response_headers = await self.service.append_block( + chunk_data, + content_length=len(chunk_data), + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options) + self.current_length = int(self.response_headers['blob_append_offset']) + else: + self.request_options['append_position_access_conditions'].append_position = \ + self.current_length + chunk_offset + self.response_headers = await self.service.append_block( + chunk_data, + content_length=len(chunk_data), + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options) + + +class FileChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + async def _upload_chunk(self, chunk_offset, chunk_data): + chunk_end = chunk_offset + len(chunk_data) - 1 + response = await self.service.upload_range( + chunk_data, + chunk_offset, + chunk_end, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + range_id = 'bytes={0}-{1}'.format(chunk_offset, chunk_end) + return range_id, response diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared_access_signature.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared_access_signature.py new file mode 100644 index 00000000000..9475a1baeed --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_shared_access_signature.py @@ -0,0 +1,584 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, TYPE_CHECKING +) + +from ._shared import sign_string, url_quote +from ._shared.constants import X_MS_VERSION +from ._shared.models import Services +from ._shared.shared_access_signature import SharedAccessSignature, _SharedAccessHelper, \ + QueryStringConstants + +if TYPE_CHECKING: + from datetime import datetime + from . import ( + ResourceTypes, + AccountSasPermissions, + UserDelegationKey, + ContainerSasPermissions, + BlobSasPermissions + ) + + +class BlobQueryStringConstants(object): + SIGNED_TIMESTAMP = 'snapshot' + + +class BlobSharedAccessSignature(SharedAccessSignature): + ''' + Provides a factory for creating blob and container access + signature tokens with a common account name and account key. Users can either + use the factory or can construct the appropriate service and use the + generate_*_shared_access_signature method directly. + ''' + + def __init__(self, account_name, account_key=None, user_delegation_key=None): + ''' + :param str account_name: + The storage account name used to generate the shared access signatures. + :param str account_key: + The access key to generate the shares access signatures. + :param ~azure.storage.blob.models.UserDelegationKey user_delegation_key: + Instead of an account key, the user could pass in a user delegation key. + A user delegation key can be obtained from the service by authenticating with an AAD identity; + this can be accomplished by calling get_user_delegation_key on any Blob service object. + ''' + super(BlobSharedAccessSignature, self).__init__(account_name, account_key, x_ms_version=X_MS_VERSION) + self.user_delegation_key = user_delegation_key + + def generate_blob(self, container_name, blob_name, snapshot=None, version_id=None, permission=None, + expiry=None, start=None, policy_id=None, ip=None, protocol=None, + cache_control=None, content_disposition=None, + content_encoding=None, content_language=None, + content_type=None): + ''' + Generates a shared access signature for the blob or one of its snapshots. + Use the returned signature with the sas_token parameter of any BlobService. + + :param str container_name: + Name of container. + :param str blob_name: + Name of blob. + :param str snapshot: + The snapshot parameter is an opaque DateTime value that, + when present, specifies the blob snapshot to grant permission. + :param BlobSasPermissions permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Permissions must be ordered read, write, delete, list. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: datetime or str + :param str policy_id: + A unique value up to 64 characters in length that correlates to a + stored access policy. To create a stored access policy, use + set_blob_service_properties. + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :param str protocol: + Specifies the protocol permitted for a request made. The default value + is https,http. See :class:`~azure.storage.common.models.Protocol` for possible values. + :param str cache_control: + Response header value for Cache-Control when resource is accessed + using this shared access signature. + :param str content_disposition: + Response header value for Content-Disposition when resource is accessed + using this shared access signature. + :param str content_encoding: + Response header value for Content-Encoding when resource is accessed + using this shared access signature. + :param str content_language: + Response header value for Content-Language when resource is accessed + using this shared access signature. + :param str content_type: + Response header value for Content-Type when resource is accessed + using this shared access signature. + ''' + resource_path = container_name + '/' + blob_name + + sas = _BlobSharedAccessHelper() + sas.add_base(permission, expiry, start, ip, protocol, self.x_ms_version) + sas.add_id(policy_id) + + resource = 'bs' if snapshot else 'b' + resource = 'bv' if version_id else resource + sas.add_resource(resource) + + sas.add_timestamp(snapshot or version_id) + sas.add_override_response_headers(cache_control, content_disposition, + content_encoding, content_language, + content_type) + sas.add_resource_signature(self.account_name, self.account_key, resource_path, + user_delegation_key=self.user_delegation_key) + + return sas.get_token() + + def generate_container(self, container_name, permission=None, expiry=None, + start=None, policy_id=None, ip=None, protocol=None, + cache_control=None, content_disposition=None, + content_encoding=None, content_language=None, + content_type=None): + ''' + Generates a shared access signature for the container. + Use the returned signature with the sas_token parameter of any BlobService. + + :param str container_name: + Name of container. + :param ContainerSasPermissions permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Permissions must be ordered read, write, delete, list. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: datetime or str + :param str policy_id: + A unique value up to 64 characters in length that correlates to a + stored access policy. To create a stored access policy, use + set_blob_service_properties. + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :param str protocol: + Specifies the protocol permitted for a request made. The default value + is https,http. See :class:`~azure.storage.common.models.Protocol` for possible values. + :param str cache_control: + Response header value for Cache-Control when resource is accessed + using this shared access signature. + :param str content_disposition: + Response header value for Content-Disposition when resource is accessed + using this shared access signature. + :param str content_encoding: + Response header value for Content-Encoding when resource is accessed + using this shared access signature. + :param str content_language: + Response header value for Content-Language when resource is accessed + using this shared access signature. + :param str content_type: + Response header value for Content-Type when resource is accessed + using this shared access signature. + ''' + sas = _BlobSharedAccessHelper() + sas.add_base(permission, expiry, start, ip, protocol, self.x_ms_version) + sas.add_id(policy_id) + sas.add_resource('c') + sas.add_override_response_headers(cache_control, content_disposition, + content_encoding, content_language, + content_type) + sas.add_resource_signature(self.account_name, self.account_key, container_name, + user_delegation_key=self.user_delegation_key) + return sas.get_token() + + +class _BlobSharedAccessHelper(_SharedAccessHelper): + + def add_timestamp(self, timestamp): + self._add_query(BlobQueryStringConstants.SIGNED_TIMESTAMP, timestamp) + + def get_value_to_append(self, query): + return_value = self.query_dict.get(query) or '' + return return_value + '\n' + + def add_resource_signature(self, account_name, account_key, path, user_delegation_key=None): + # pylint: disable = no-member + if path[0] != '/': + path = '/' + path + + canonicalized_resource = '/blob/' + account_name + path + '\n' + + # Form the string to sign from shared_access_policy and canonicalized + # resource. The order of values is important. + string_to_sign = \ + (self.get_value_to_append(QueryStringConstants.SIGNED_PERMISSION) + + self.get_value_to_append(QueryStringConstants.SIGNED_START) + + self.get_value_to_append(QueryStringConstants.SIGNED_EXPIRY) + + canonicalized_resource) + + if user_delegation_key is not None: + self._add_query(QueryStringConstants.SIGNED_OID, user_delegation_key.signed_oid) + self._add_query(QueryStringConstants.SIGNED_TID, user_delegation_key.signed_tid) + self._add_query(QueryStringConstants.SIGNED_KEY_START, user_delegation_key.signed_start) + self._add_query(QueryStringConstants.SIGNED_KEY_EXPIRY, user_delegation_key.signed_expiry) + self._add_query(QueryStringConstants.SIGNED_KEY_SERVICE, user_delegation_key.signed_service) + self._add_query(QueryStringConstants.SIGNED_KEY_VERSION, user_delegation_key.signed_version) + + string_to_sign += \ + (self.get_value_to_append(QueryStringConstants.SIGNED_OID) + + self.get_value_to_append(QueryStringConstants.SIGNED_TID) + + self.get_value_to_append(QueryStringConstants.SIGNED_KEY_START) + + self.get_value_to_append(QueryStringConstants.SIGNED_KEY_EXPIRY) + + self.get_value_to_append(QueryStringConstants.SIGNED_KEY_SERVICE) + + self.get_value_to_append(QueryStringConstants.SIGNED_KEY_VERSION)) + else: + string_to_sign += self.get_value_to_append(QueryStringConstants.SIGNED_IDENTIFIER) + + string_to_sign += \ + (self.get_value_to_append(QueryStringConstants.SIGNED_IP) + + self.get_value_to_append(QueryStringConstants.SIGNED_PROTOCOL) + + self.get_value_to_append(QueryStringConstants.SIGNED_VERSION) + + self.get_value_to_append(QueryStringConstants.SIGNED_RESOURCE) + + self.get_value_to_append(BlobQueryStringConstants.SIGNED_TIMESTAMP) + + self.get_value_to_append(QueryStringConstants.SIGNED_CACHE_CONTROL) + + self.get_value_to_append(QueryStringConstants.SIGNED_CONTENT_DISPOSITION) + + self.get_value_to_append(QueryStringConstants.SIGNED_CONTENT_ENCODING) + + self.get_value_to_append(QueryStringConstants.SIGNED_CONTENT_LANGUAGE) + + self.get_value_to_append(QueryStringConstants.SIGNED_CONTENT_TYPE)) + + # remove the trailing newline + if string_to_sign[-1] == '\n': + string_to_sign = string_to_sign[:-1] + + self._add_query(QueryStringConstants.SIGNED_SIGNATURE, + sign_string(account_key if user_delegation_key is None else user_delegation_key.value, + string_to_sign)) + + def get_token(self): + # a conscious decision was made to exclude the timestamp in the generated token + # this is to avoid having two snapshot ids in the query parameters when the user appends the snapshot timestamp + exclude = [BlobQueryStringConstants.SIGNED_TIMESTAMP] + return '&'.join(['{0}={1}'.format(n, url_quote(v)) + for n, v in self.query_dict.items() if v is not None and n not in exclude]) + + +def generate_account_sas( + account_name, # type: str + account_key, # type: str + resource_types, # type: Union[ResourceTypes, str] + permission, # type: Union[AccountSasPermissions, str] + expiry, # type: Optional[Union[datetime, str]] + start=None, # type: Optional[Union[datetime, str]] + ip=None, # type: Optional[str] + **kwargs # type: Any + ): # type: (...) -> str + """Generates a shared access signature for the blob service. + + Use the returned signature with the credential parameter of any BlobServiceClient, + ContainerClient or BlobClient. + + :param str account_name: + The storage account name used to generate the shared access signature. + :param str account_key: + The account key, also called shared key or access key, to generate the shared access signature. + :param resource_types: + Specifies the resource types that are accessible with the account SAS. + :type resource_types: str or ~azure.storage.blob.ResourceTypes + :param permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :type permission: str or ~azure.storage.blob.AccountSasPermissions + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: ~datetime.datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: ~datetime.datetime or str + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying ip=168.1.5.65 or ip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :keyword str protocol: + Specifies the protocol permitted for a request made. The default value is https. + :return: A Shared Access Signature (sas) token. + :rtype: str + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START create_sas_token] + :end-before: [END create_sas_token] + :language: python + :dedent: 8 + :caption: Generating a shared access signature. + """ + sas = SharedAccessSignature(account_name, account_key) + return sas.generate_account( + services=Services(blob=True), + resource_types=resource_types, + permission=permission, + expiry=expiry, + start=start, + ip=ip, + **kwargs + ) # type: ignore + + +def generate_container_sas( + account_name, # type: str + container_name, # type: str + account_key=None, # type: Optional[str] + user_delegation_key=None, # type: Optional[UserDelegationKey] + permission=None, # type: Optional[Union[ContainerSasPermissions, str]] + expiry=None, # type: Optional[Union[datetime, str]] + start=None, # type: Optional[Union[datetime, str]] + policy_id=None, # type: Optional[str] + ip=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Any + """Generates a shared access signature for a container. + + Use the returned signature with the credential parameter of any BlobServiceClient, + ContainerClient or BlobClient. + + :param str account_name: + The storage account name used to generate the shared access signature. + :param str container_name: + The name of the container. + :param str account_key: + The account key, also called shared key or access key, to generate the shared access signature. + Either `account_key` or `user_delegation_key` must be specified. + :param ~azure.storage.blob.UserDelegationKey user_delegation_key: + Instead of an account shared key, the user could pass in a user delegation key. + A user delegation key can be obtained from the service by authenticating with an AAD identity; + this can be accomplished by calling :func:`~azure.storage.blob.BlobServiceClient.get_user_delegation_key`. + When present, the SAS is signed with the user delegation key instead. + :param permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Permissions must be ordered read, write, delete, list. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :type permission: str or ~azure.storage.blob.ContainerSasPermissions + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: ~datetime.datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: ~datetime.datetime or str + :param str policy_id: + A unique value up to 64 characters in length that correlates to a + stored access policy. To create a stored access policy, use + :func:`~azure.storage.blob.ContainerClient.set_container_access_policy`. + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying ip=168.1.5.65 or ip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :keyword str protocol: + Specifies the protocol permitted for a request made. The default value is https. + :keyword str cache_control: + Response header value for Cache-Control when resource is accessed + using this shared access signature. + :keyword str content_disposition: + Response header value for Content-Disposition when resource is accessed + using this shared access signature. + :keyword str content_encoding: + Response header value for Content-Encoding when resource is accessed + using this shared access signature. + :keyword str content_language: + Response header value for Content-Language when resource is accessed + using this shared access signature. + :keyword str content_type: + Response header value for Content-Type when resource is accessed + using this shared access signature. + :return: A Shared Access Signature (sas) token. + :rtype: str + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START generate_sas_token] + :end-before: [END generate_sas_token] + :language: python + :dedent: 12 + :caption: Generating a sas token. + """ + if not user_delegation_key and not account_key: + raise ValueError("Either user_delegation_key or account_key must be provided.") + + if user_delegation_key: + sas = BlobSharedAccessSignature(account_name, user_delegation_key=user_delegation_key) + else: + sas = BlobSharedAccessSignature(account_name, account_key=account_key) + return sas.generate_container( + container_name, + permission=permission, + expiry=expiry, + start=start, + policy_id=policy_id, + ip=ip, + **kwargs + ) + + +def generate_blob_sas( + account_name, # type: str + container_name, # type: str + blob_name, # type: str + snapshot=None, # type: Optional[str] + account_key=None, # type: Optional[str] + user_delegation_key=None, # type: Optional[UserDelegationKey] + permission=None, # type: Optional[Union[BlobSasPermissions, str]] + expiry=None, # type: Optional[Union[datetime, str]] + start=None, # type: Optional[Union[datetime, str]] + policy_id=None, # type: Optional[str] + ip=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Any + """Generates a shared access signature for a blob. + + Use the returned signature with the credential parameter of any BlobServiceClient, + ContainerClient or BlobClient. + + :param str account_name: + The storage account name used to generate the shared access signature. + :param str container_name: + The name of the container. + :param str blob_name: + The name of the blob. + :param str snapshot: + An optional blob snapshot ID. + :param str account_key: + The account key, also called shared key or access key, to generate the shared access signature. + Either `account_key` or `user_delegation_key` must be specified. + :param ~azure.storage.blob.UserDelegationKey user_delegation_key: + Instead of an account shared key, the user could pass in a user delegation key. + A user delegation key can be obtained from the service by authenticating with an AAD identity; + this can be accomplished by calling :func:`~azure.storage.blob.BlobServiceClient.get_user_delegation_key`. + When present, the SAS is signed with the user delegation key instead. + :param permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Permissions must be ordered read, write, delete, list. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :type permission: str or ~azure.storage.blob.BlobSasPermissions + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: ~datetime.datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: ~datetime.datetime or str + :param str policy_id: + A unique value up to 64 characters in length that correlates to a + stored access policy. To create a stored access policy, use + :func:`~azure.storage.blob.ContainerClient.set_container_access_policy()`. + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying ip=168.1.5.65 or ip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :keyword str version_id: + An optional blob version ID. This parameter is only for versioning enabled account + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword str protocol: + Specifies the protocol permitted for a request made. The default value is https. + :keyword str cache_control: + Response header value for Cache-Control when resource is accessed + using this shared access signature. + :keyword str content_disposition: + Response header value for Content-Disposition when resource is accessed + using this shared access signature. + :keyword str content_encoding: + Response header value for Content-Encoding when resource is accessed + using this shared access signature. + :keyword str content_language: + Response header value for Content-Language when resource is accessed + using this shared access signature. + :keyword str content_type: + Response header value for Content-Type when resource is accessed + using this shared access signature. + :return: A Shared Access Signature (sas) token. + :rtype: str + """ + if not user_delegation_key and not account_key: + raise ValueError("Either user_delegation_key or account_key must be provided.") + version_id = kwargs.pop('version_id', None) + if version_id and snapshot: + raise ValueError("snapshot and version_id cannot be set at the same time.") + if user_delegation_key: + sas = BlobSharedAccessSignature(account_name, user_delegation_key=user_delegation_key) + else: + sas = BlobSharedAccessSignature(account_name, account_key=account_key) + return sas.generate_blob( + container_name, + blob_name, + snapshot=snapshot, + version_id=version_id, + permission=permission, + expiry=expiry, + start=start, + policy_id=policy_id, + ip=ip, + **kwargs + ) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_upload_helpers.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_upload_helpers.py new file mode 100644 index 00000000000..bd59362dc91 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_upload_helpers.py @@ -0,0 +1,291 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use + +from io import SEEK_SET, UnsupportedOperation +from typing import Optional, Union, Any, TypeVar, TYPE_CHECKING # pylint: disable=unused-import + +import six +from azure.core.exceptions import ResourceExistsError, ResourceModifiedError + +from ._shared.response_handlers import ( + process_storage_error, + return_response_headers) +from ._shared.models import StorageErrorCode +from ._shared.uploads import ( + upload_data_chunks, + upload_substream_blocks, + BlockBlobChunkUploader, + PageBlobChunkUploader, + AppendBlobChunkUploader) +from ._shared.encryption import generate_blob_encryption_data, encrypt_blob +from ._generated.models import ( + StorageErrorException, + BlockLookupList, + AppendPositionAccessConditions, + ModifiedAccessConditions, +) + +if TYPE_CHECKING: + from datetime import datetime # pylint: disable=unused-import + BlobLeaseClient = TypeVar("BlobLeaseClient") + +_LARGE_BLOB_UPLOAD_MAX_READ_BUFFER_SIZE = 4 * 1024 * 1024 +_ERROR_VALUE_SHOULD_BE_SEEKABLE_STREAM = '{0} should be a seekable file-like/io.IOBase type stream object.' + + +def _convert_mod_error(error): + message = error.message.replace( + "The condition specified using HTTP conditional header(s) is not met.", + "The specified blob already exists.") + message = message.replace("ConditionNotMet", "BlobAlreadyExists") + overwrite_error = ResourceExistsError( + message=message, + response=error.response, + error=error) + overwrite_error.error_code = StorageErrorCode.blob_already_exists + raise overwrite_error + + +def _any_conditions(modified_access_conditions=None, **kwargs): # pylint: disable=unused-argument + return any([ + modified_access_conditions.if_modified_since, + modified_access_conditions.if_unmodified_since, + modified_access_conditions.if_none_match, + modified_access_conditions.if_match + ]) + + +def upload_block_blob( # pylint: disable=too-many-locals + client=None, + data=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if not overwrite and not _any_conditions(**kwargs): + kwargs['modified_access_conditions'].if_none_match = '*' + adjusted_count = length + if (encryption_options.get('key') is not None) and (adjusted_count is not None): + adjusted_count += (16 - (length % 16)) + blob_headers = kwargs.pop('blob_headers', None) + tier = kwargs.pop('standard_blob_tier', None) + blob_tags_string = kwargs.pop('blob_tags_string', None) + + # Do single put if the size is smaller than or equal config.max_single_put_size + if adjusted_count is not None and (adjusted_count <= blob_settings.max_single_put_size): + try: + data = data.read(length) + if not isinstance(data, six.binary_type): + raise TypeError('Blob data should be of type bytes.') + except AttributeError: + pass + if encryption_options.get('key'): + encryption_data, data = encrypt_blob(data, encryption_options['key']) + headers['x-ms-meta-encryptiondata'] = encryption_data + return client.upload( + data, + content_length=adjusted_count, + blob_http_headers=blob_headers, + headers=headers, + cls=return_response_headers, + validate_content=validate_content, + data_stream_total=adjusted_count, + upload_stream_current=0, + tier=tier.value if tier else None, + blob_tags_string=blob_tags_string, + **kwargs) + + use_original_upload_path = blob_settings.use_byte_buffer or \ + validate_content or encryption_options.get('required') or \ + blob_settings.max_block_size < blob_settings.min_large_block_upload_threshold or \ + hasattr(stream, 'seekable') and not stream.seekable() or \ + not hasattr(stream, 'seek') or not hasattr(stream, 'tell') + + if use_original_upload_path: + if encryption_options.get('key'): + cek, iv, encryption_data = generate_blob_encryption_data(encryption_options['key']) + headers['x-ms-meta-encryptiondata'] = encryption_data + encryption_options['cek'] = cek + encryption_options['vector'] = iv + block_ids = upload_data_chunks( + service=client, + uploader_class=BlockBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + max_concurrency=max_concurrency, + stream=stream, + validate_content=validate_content, + encryption_options=encryption_options, + **kwargs + ) + else: + block_ids = upload_substream_blocks( + service=client, + uploader_class=BlockBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + max_concurrency=max_concurrency, + stream=stream, + validate_content=validate_content, + **kwargs + ) + + block_lookup = BlockLookupList(committed=[], uncommitted=[], latest=[]) + block_lookup.latest = block_ids + return client.commit_block_list( + block_lookup, + blob_http_headers=blob_headers, + cls=return_response_headers, + validate_content=validate_content, + headers=headers, + tier=tier.value if tier else None, + blob_tags_string=blob_tags_string, + **kwargs) + except StorageErrorException as error: + try: + process_storage_error(error) + except ResourceModifiedError as mod_error: + if not overwrite: + _convert_mod_error(mod_error) + raise + + +def upload_page_blob( + client=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if not overwrite and not _any_conditions(**kwargs): + kwargs['modified_access_conditions'].if_none_match = '*' + if length is None or length < 0: + raise ValueError("A content length must be specified for a Page Blob.") + if length % 512 != 0: + raise ValueError("Invalid page blob size: {0}. " + "The size must be aligned to a 512-byte boundary.".format(length)) + if kwargs.get('premium_page_blob_tier'): + premium_page_blob_tier = kwargs.pop('premium_page_blob_tier') + try: + headers['x-ms-access-tier'] = premium_page_blob_tier.value + except AttributeError: + headers['x-ms-access-tier'] = premium_page_blob_tier + if encryption_options and encryption_options.get('data'): + headers['x-ms-meta-encryptiondata'] = encryption_options['data'] + blob_tags_string = kwargs.pop('blob_tags_string', None) + + response = client.create( + content_length=0, + blob_content_length=length, + blob_sequence_number=None, + blob_http_headers=kwargs.pop('blob_headers', None), + blob_tags_string=blob_tags_string, + cls=return_response_headers, + headers=headers, + **kwargs) + if length == 0: + return response + + kwargs['modified_access_conditions'] = ModifiedAccessConditions(if_match=response['etag']) + return upload_data_chunks( + service=client, + uploader_class=PageBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_page_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + encryption_options=encryption_options, + **kwargs) + + except StorageErrorException as error: + try: + process_storage_error(error) + except ResourceModifiedError as mod_error: + if not overwrite: + _convert_mod_error(mod_error) + raise + + +def upload_append_blob( # pylint: disable=unused-argument + client=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if length == 0: + return {} + blob_headers = kwargs.pop('blob_headers', None) + append_conditions = AppendPositionAccessConditions( + max_size=kwargs.pop('maxsize_condition', None), + append_position=None) + blob_tags_string = kwargs.pop('blob_tags_string', None) + + try: + if overwrite: + client.create( + content_length=0, + blob_http_headers=blob_headers, + headers=headers, + blob_tags_string=blob_tags_string, + **kwargs) + return upload_data_chunks( + service=client, + uploader_class=AppendBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + append_position_access_conditions=append_conditions, + **kwargs) + except StorageErrorException as error: + if error.response.status_code != 404: + raise + # rewind the request body if it is a stream + if hasattr(stream, 'read'): + try: + # attempt to rewind the body to the initial position + stream.seek(0, SEEK_SET) + except UnsupportedOperation: + # if body is not seekable, then retry would not work + raise error + client.create( + content_length=0, + blob_http_headers=blob_headers, + headers=headers, + blob_tags_string=blob_tags_string, + **kwargs) + return upload_data_chunks( + service=client, + uploader_class=AppendBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + append_position_access_conditions=append_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_version.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_version.py new file mode 100644 index 00000000000..c40634c05fa --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/_version.py @@ -0,0 +1,7 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +VERSION = "12.4.0" diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/__init__.py new file mode 100644 index 00000000000..247f39e1ffd --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/__init__.py @@ -0,0 +1,137 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import os + +from .._models import BlobType +from .._shared.policies_async import ExponentialRetry, LinearRetry +from ._blob_client_async import BlobClient +from ._container_client_async import ContainerClient +from ._blob_service_client_async import BlobServiceClient +from ._lease_async import BlobLeaseClient +from ._download_async import StorageStreamDownloader + + +async def upload_blob_to_url( + blob_url, # type: str + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + credential=None, # type: Any + **kwargs): + # type: (...) -> dict[str, Any] + """Upload data to a given URL + + The data will be uploaded as a block blob. + + :param str blob_url: + The full URI to the blob. This can also include a SAS token. + :param data: + The data to upload. This can be bytes, text, an iterable or a file-like object. + :type data: bytes or str or Iterable + :param credential: + The credentials with which to authenticate. This is optional if the + blob URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword bool overwrite: + Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob_to_url will overwrite any existing data. If set to False, the + operation will fail with a ResourceExistsError. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword dict(str,str) metadata: + Name-value pairs associated with the blob as metadata. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https as https (the default) will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword str encoding: + Encoding to use if text is supplied as input. Defaults to UTF-8. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: dict(str, Any) + """ + async with BlobClient.from_blob_url(blob_url, credential=credential) as client: + return await client.upload_blob(data=data, blob_type=BlobType.BlockBlob, **kwargs) + + +async def _download_to_stream(client, handle, **kwargs): + """Download data to specified open file-handle.""" + stream = await client.download_blob(**kwargs) + await stream.readinto(handle) + + +async def download_blob_from_url( + blob_url, # type: str + output, # type: str + credential=None, # type: Any + **kwargs): + # type: (...) -> None + """Download the contents of a blob to a local file or stream. + + :param str blob_url: + The full URI to the blob. This can also include a SAS token. + :param output: + Where the data should be downloaded to. This could be either a file path to write to, + or an open IO handle to write to. + :type output: str or writable stream + :param credential: + The credentials with which to authenticate. This is optional if the + blob URL already has a SAS token or the blob is public. The value can be a SAS token string, + an account shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword bool overwrite: + Whether the local file should be overwritten if it already exists. The default value is + `False` - in which case a ValueError will be raised if the file already exists. If set to + `True`, an attempt will be made to write to the existing file. If a stream handle is passed + in, this value is ignored. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :keyword int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https as https (the default) will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :rtype: None + """ + overwrite = kwargs.pop('overwrite', False) + async with BlobClient.from_blob_url(blob_url, credential=credential) as client: + if hasattr(output, 'write'): + await _download_to_stream(client, output, **kwargs) + else: + if not overwrite and os.path.isfile(output): + raise ValueError("The file '{}' already exists.".format(output)) + with open(output, 'wb') as file_handle: + await _download_to_stream(client, file_handle, **kwargs) + + +__all__ = [ + 'upload_blob_to_url', + 'download_blob_from_url', + 'BlobServiceClient', + 'ContainerClient', + 'BlobClient', + 'BlobLeaseClient', + 'ExponentialRetry', + 'LinearRetry', + 'StorageStreamDownloader' +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_blob_client_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_blob_client_async.py new file mode 100644 index 00000000000..3275d02004f --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_blob_client_async.py @@ -0,0 +1,2307 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines, invalid-overridden-method + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, IO, Iterable, AnyStr, Dict, List, Tuple, + TYPE_CHECKING +) + +from azure.core.tracing.decorator_async import distributed_trace_async + +from .._shared.base_client_async import AsyncStorageAccountHostsMixin +from .._shared.policies_async import ExponentialRetry +from .._shared.response_handlers import return_response_headers, process_storage_error +from .._deserialize import get_page_ranges_result, parse_tags +from .._serialize import get_modify_conditions, get_api_version +from .._generated import VERSION +from .._generated.aio import AzureBlobStorage +from .._generated.models import StorageErrorException, CpkInfo +from .._deserialize import deserialize_blob_properties +from .._blob_client import BlobClient as BlobClientBase +from ._upload_helpers import ( + upload_block_blob, + upload_append_blob, + upload_page_blob) +from .._models import BlobType, BlobBlock, BlobProperties +from .._lease import get_access_conditions +from ._lease_async import BlobLeaseClient +from ._download_async import StorageStreamDownloader + +if TYPE_CHECKING: + from datetime import datetime + from .._models import ( # pylint: disable=unused-import + ContentSettings, + PremiumPageBlobTier, + StandardBlobTier, + SequenceNumberAction + ) + + +class BlobClient(AsyncStorageAccountHostsMixin, BlobClientBase): # pylint: disable=too-many-public-methods + """A client to interact with a specific blob, although that blob may not yet exist. + + :param str account_url: + The URI to the storage account. In order to create a client given the full URI to the blob, + use the :func:`from_blob_url` classmethod. + :param container_name: The container name for the blob. + :type container_name: str + :param blob_name: The name of the blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob_name: str + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`create_snapshot`. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication_async.py + :start-after: [START create_blob_client] + :end-before: [END create_blob_client] + :language: python + :dedent: 8 + :caption: Creating the BlobClient from a URL to a public blob (no auth needed). + + .. literalinclude:: ../samples/blob_samples_authentication_async.py + :start-after: [START create_blob_client_sas_url] + :end-before: [END create_blob_client_sas_url] + :language: python + :dedent: 8 + :caption: Creating the BlobClient from a SAS URL to a blob. + """ + def __init__( + self, account_url, # type: str + container_name, # type: str + blob_name, # type: str + snapshot=None, # type: Optional[Union[str, Dict[str, Any]]] + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + kwargs['retry_policy'] = kwargs.get('retry_policy') or ExponentialRetry(**kwargs) + super(BlobClient, self).__init__( + account_url, + container_name=container_name, + blob_name=blob_name, + snapshot=snapshot, + credential=credential, + **kwargs) + self._client = AzureBlobStorage(url=self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + self._loop = kwargs.get('loop', None) + + @distributed_trace_async + async def get_account_information(self, **kwargs): # type: ignore + # type: (Optional[int]) -> Dict[str, str] + """Gets information related to the storage account in which the blob resides. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + """ + try: + return await self._client.blob.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def upload_blob( + self, data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + blob_type=BlobType.BlockBlob, # type: Union[str, BlobType] + length=None, # type: Optional[int] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Any + """Creates a new blob from a data source with automatic chunking. + + :param data: The blob data to upload. + :param ~azure.storage.blob.BlobType blob_type: The type of the blob. This can be + either BlockBlob, PageBlob or AppendBlob. The default value is BlockBlob. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword bool overwrite: Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob will overwrite the existing data. If set to False, the + operation will fail with ResourceExistsError. The exception to the above is with Append + blob types: if set to False and the data already exists, an error will not be raised + and the data will be appended to the existing blob. If set overwrite=True, then the existing + append blob will be deleted, and a new one created. Defaults to False. + :keyword ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + If specified, upload_blob only succeeds if the + blob's lease is active and matches this ID. + Required if the blob has an active lease. + :paramtype: ~azure.storage.blob.aio.BlobLeaseClient + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int max_concurrency: + Maximum number of parallel connections to use when the blob size exceeds + 64MB. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world_async.py + :start-after: [START upload_a_blob] + :end-before: [END upload_a_blob] + :language: python + :dedent: 16 + :caption: Upload a blob to the container. + """ + options = self._upload_blob_options( + data, + blob_type=blob_type, + length=length, + metadata=metadata, + **kwargs) + if blob_type == BlobType.BlockBlob: + return await upload_block_blob(**options) + if blob_type == BlobType.PageBlob: + return await upload_page_blob(**options) + return await upload_append_blob(**options) + + @distributed_trace_async + async def download_blob(self, offset=None, length=None, **kwargs): + # type: (Optional[int], Optional[int], Any) -> StorageStreamDownloader + """Downloads a blob to the StorageStreamDownloader. The readall() method must + be used to read all the content or readinto() must be used to download the blob into + a stream. + + :param int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to download. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. If specified, download_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword str encoding: + Encoding to decode the downloaded bytes. Default is None, i.e. no decoding. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: A streaming object (StorageStreamDownloader) + :rtype: ~azure.storage.blob.aio.StorageStreamDownloader + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world_async.py + :start-after: [START download_a_blob] + :end-before: [END download_a_blob] + :language: python + :dedent: 16 + :caption: Download a blob. + """ + options = self._download_blob_options( + offset=offset, + length=length, + **kwargs) + downloader = StorageStreamDownloader(**options) + await downloader._setup() # pylint: disable=protected-access + return downloader + + @distributed_trace_async + async def delete_blob(self, delete_snapshots=False, **kwargs): + # type: (bool, Any) -> None + """Marks the specified blob for deletion. + + The blob is later deleted during garbage collection. + Note that in order to delete a blob, you must delete all of its + snapshots. You can delete both at the same time with the delete_blob() + operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blob + and retains the blob for a specified number of days. + After the specified number of days, the blob's data is removed from the service during garbage collection. + Soft deleted blob is accessible through :func:`~ContainerClient.list_blobs()` specifying `include=['deleted']` + option. Soft-deleted blob can be restored using :func:`undelete` operation. + + :param str delete_snapshots: + Required if the blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to delete. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword lease: + Required if the blob has an active lease. If specified, delete_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world_async.py + :start-after: [START delete_blob] + :end-before: [END delete_blob] + :language: python + :dedent: 16 + :caption: Delete a blob. + """ + options = self._delete_blob_options(delete_snapshots=delete_snapshots, **kwargs) + try: + await self._client.blob.delete(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def undelete_blob(self, **kwargs): + # type: (Any) -> None + """Restores soft-deleted blobs or snapshots. + + Operation will only be successful if used within the specified number of days + set in the delete retention policy. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START undelete_blob] + :end-before: [END undelete_blob] + :language: python + :dedent: 12 + :caption: Undeleting a blob. + """ + try: + await self._client.blob.undelete(timeout=kwargs.pop('timeout', None), **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_blob_properties(self, **kwargs): + # type: (Any) -> BlobProperties + """Returns all user-defined metadata, standard HTTP properties, and + system properties for the blob. It does not return the content of the blob. + + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to get properties. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: BlobProperties + :rtype: ~azure.storage.blob.BlobProperties + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START get_blob_properties] + :end-before: [END get_blob_properties] + :language: python + :dedent: 12 + :caption: Getting the properties for a blob. + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + try: + blob_props = await self._client.blob.get_properties( + timeout=kwargs.pop('timeout', None), + version_id=kwargs.pop('version_id', None), + snapshot=self.snapshot, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=deserialize_blob_properties, + cpk_info=cpk_info, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + blob_props.name = self.blob_name + blob_props.container = self.container_name + return blob_props # type: ignore + + @distributed_trace_async + async def set_http_headers(self, content_settings=None, **kwargs): + # type: (Optional[ContentSettings], Any) -> None + """Sets system properties on the blob. + + If one property is set for the content_settings, all properties will be overridden. + + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: Dict[str, Any] + """ + options = self._set_http_headers_options(content_settings=content_settings, **kwargs) + try: + return await self._client.blob.set_http_headers(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def set_blob_metadata(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], Any) -> Dict[str, Union[str, datetime]] + """Sets user-defined metadata for the blob as one or more name-value pairs. + + :param metadata: + Dict containing name and value pairs. Each call to this operation + replaces all existing metadata attached to the blob. To remove all + metadata from the blob, call this operation with no metadata headers. + :type metadata: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + """ + options = self._set_blob_metadata_options(metadata=metadata, **kwargs) + try: + return await self._client.blob.set_metadata(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def create_page_blob( # type: ignore + self, size, # type: int + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + premium_page_blob_tier=None, # type: Optional[Union[str, PremiumPageBlobTier]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """Creates a new Page Blob of the specified size. + + :param int size: + This specifies the maximum size for the page blob, up to 1 TB. + The page blob size must be aligned to a 512-byte boundary. + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :param ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword int sequence_number: + Only for Page blobs. The sequence number is a user-controlled value that you can use to + track requests. The value of the sequence number must be between 0 + and 2^63 - 1.The default value is 0. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict[str, Any] + """ + options = self._create_page_blob_options( + size, + content_settings=content_settings, + metadata=metadata, + premium_page_blob_tier=premium_page_blob_tier, + **kwargs) + try: + return await self._client.page_blob.create(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def create_append_blob(self, content_settings=None, metadata=None, **kwargs): + # type: (Optional[ContentSettings], Optional[Dict[str, str]], Any) -> Dict[str, Union[str, datetime]] + """Creates a new Append Blob. + + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict[str, Any] + """ + options = self._create_append_blob_options( + content_settings=content_settings, + metadata=metadata, + **kwargs) + try: + return await self._client.append_blob.create(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def create_snapshot(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], Any) -> Dict[str, Union[str, datetime]] + """Creates a snapshot of the blob. + + A snapshot is a read-only version of a blob that's taken at a point in time. + It can be read, copied, or deleted, but not modified. Snapshots provide a way + to back up a blob as it appears at a moment in time. + + A snapshot of a blob has the same name as the base blob from which the snapshot + is taken, with a DateTime value appended to indicate the time at which the + snapshot was taken. + + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Snapshot ID, Etag, and last modified). + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START create_blob_snapshot] + :end-before: [END create_blob_snapshot] + :language: python + :dedent: 12 + :caption: Create a snapshot of the blob. + """ + options = self._create_snapshot_options(metadata=metadata, **kwargs) + try: + return await self._client.blob.create_snapshot(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def start_copy_from_url(self, source_url, metadata=None, incremental_copy=False, **kwargs): + # type: (str, Optional[Dict[str, str]], bool, Any) -> Any + """Copies a blob asynchronously. + + This operation returns a copy operation + object that can be used to wait on the completion of the operation, + as well as check status or abort the copy operation. + The Blob service copies blobs on a best-effort basis. + + The source blob for a copy operation may be a block blob, an append blob, + or a page blob. If the destination blob already exists, it must be of the + same blob type as the source blob. Any existing destination blob will be + overwritten. The destination blob cannot be modified while a copy operation + is in progress. + + When copying from a page blob, the Blob service creates a destination page + blob of the source blob's length, initially containing all zeroes. Then + the source page ranges are enumerated, and non-empty ranges are copied. + + For a block blob or an append blob, the Blob service creates a committed + blob of zero length before returning from this operation. When copying + from a block blob, all committed blocks and their block IDs are copied. + Uncommitted blocks are not copied. At the end of the copy operation, the + destination blob will have the same committed block count as the source. + + When copying from an append blob, all committed blocks are copied. At the + end of the copy operation, the destination blob will have the same committed + block count as the source. + + For all blob types, you can call status() on the returned polling object + to check the status of the copy operation, or wait() to block until the + operation is complete. The final blob will be committed when the copy completes. + + :param str source_url: + A URL of up to 2 KB in length that specifies a file or blob. + The value should be URL-encoded as it would appear in a request URI. + If the source is in another account, the source must either be public + or must be authenticated via a shared access signature. If the source + is public, no authentication is required. + Examples: + https://myaccount.blob.core.windows.net/mycontainer/myblob + + https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot= + + https://otheraccount.blob.core.windows.net/mycontainer/myblob?sastoken + :param metadata: + Name-value pairs associated with the blob as metadata. If no name-value + pairs are specified, the operation will copy the metadata from the + source blob or file to the destination blob. If one or more name-value + pairs are specified, the destination blob is created with the specified + metadata, and metadata is not copied from the source blob or file. + :type metadata: dict(str, str) + :param bool incremental_copy: + Copies the snapshot of the source page blob to a destination page blob. + The snapshot is copied such that only the differential changes between + the previously copied snapshot are transferred to the destination. + The copied snapshots are complete copies of the original snapshot and + can be read or copied from as usual. Defaults to False. + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only if the source + blob has been modified since the specified date/time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only if the source blob + has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only + if the destination blob has been modified since the specified date/time. + If the destination blob has not been modified, the Blob service returns + status code 412 (Precondition Failed). + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only + if the destination blob has not been modified since the specified + date/time. If the destination blob has been modified, the Blob service + returns status code 412 (Precondition Failed). + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword destination_lease: + The lease ID specified for this header must match the lease ID of the + destination blob. If the request does not include the lease ID or it is not + valid, the operation fails with status code 412 (Precondition Failed). + :paramtype destination_lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword source_lease: + Specify this to perform the Copy Blob operation only if + the lease ID given matches the active lease ID of the source blob. + :paramtype source_lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword bool seal_destination_blob: + Seal the destination append blob. This operation is only for append blob. + + .. versionadded:: 12.4.0 + + :keyword bool requires_sync: + Enforces that the service will not return a response until the copy is complete. + :returns: A dictionary of copy properties (etag, last_modified, copy_id, copy_status). + :rtype: dict[str, str or ~datetime.datetime] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START copy_blob_from_url] + :end-before: [END copy_blob_from_url] + :language: python + :dedent: 16 + :caption: Copy a blob from a URL. + """ + options = self._start_copy_from_url_options( + source_url, + metadata=metadata, + incremental_copy=incremental_copy, + **kwargs) + try: + if incremental_copy: + return await self._client.page_blob.copy_incremental(**options) + return await self._client.blob.start_copy_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def abort_copy(self, copy_id, **kwargs): + # type: (Union[str, Dict[str, Any], BlobProperties], Any) -> None + """Abort an ongoing copy operation. + + This will leave a destination blob with zero length and full metadata. + This will raise an error if the copy operation has already ended. + + :param copy_id: + The copy operation to abort. This can be either an ID, or an + instance of BlobProperties. + :type copy_id: str or ~azure.storage.blob.BlobProperties + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START abort_copy_blob_from_url] + :end-before: [END abort_copy_blob_from_url] + :language: python + :dedent: 16 + :caption: Abort copying a blob from URL. + """ + options = self._abort_copy_options(copy_id, **kwargs) + try: + await self._client.blob.abort_copy_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def acquire_lease(self, lease_duration=-1, lease_id=None, **kwargs): + # type: (int, Optional[str], Any) -> BlobLeaseClient + """Requests a new lease. + + If the blob does not have an active lease, the Blob + Service creates a lease on the blob and returns a new lease. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :param str lease_id: + Proposed lease ID, in a GUID string format. The Blob Service + returns 400 (Invalid request) if the proposed lease ID is not + in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A BlobLeaseClient object. + :rtype: ~azure.storage.blob.aio.BlobLeaseClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START acquire_lease_on_blob] + :end-before: [END acquire_lease_on_blob] + :language: python + :dedent: 12 + :caption: Acquiring a lease on a blob. + """ + lease = BlobLeaseClient(self, lease_id=lease_id) # type: ignore + await lease.acquire(lease_duration=lease_duration, **kwargs) + return lease + + @distributed_trace_async + async def set_standard_blob_tier(self, standard_blob_tier, **kwargs): + # type: (Union[str, StandardBlobTier], Any) -> None + """This operation sets the tier on a block blob. + + A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param standard_blob_tier: + Indicates the tier to be set on the blob. Options include 'Hot', 'Cool', + 'Archive'. The hot tier is optimized for storing data that is accessed + frequently. The cool storage tier is optimized for storing data that + is infrequently accessed and stored for at least a month. The archive + tier is optimized for storing data that is rarely accessed and stored + for at least six months with flexible latency requirements. + :type standard_blob_tier: str or ~azure.storage.blob.StandardBlobTier + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :rtype: None + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if standard_blob_tier is None: + raise ValueError("A StandardBlobTier must be specified") + try: + await self._client.blob.set_tier( + tier=standard_blob_tier, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + lease_access_conditions=access_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def stage_block( + self, block_id, # type: str + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> None + """Creates a new block to be committed as part of a blob. + + :param str block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the block_id parameter must be the same size for each block. + :param data: The blob data. + :param int length: Size of the block. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword str encoding: + Defaults to UTF-8. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + options = self._stage_block_options( + block_id, + data, + length=length, + **kwargs) + try: + return await self._client.block_blob.stage_block(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def stage_block_from_url( + self, block_id, # type: str + source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + source_content_md5=None, # type: Optional[Union[bytes, bytearray]] + **kwargs + ): + # type: (...) -> None + """Creates a new block to be committed as part of a blob where + the contents are read from a URL. + + :param str block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the block_id parameter must be the same size for each block. + :param str source_url: The URL. + :param int source_offset: + Start of byte range to use for the block. + Must be set if source length is provided. + :param int source_length: The size of the block in bytes. + :param bytearray source_content_md5: + Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + options = self._stage_block_from_url_options( + block_id, + source_url, + source_offset=source_offset, + source_length=source_length, + source_content_md5=source_content_md5, + **kwargs) + try: + return await self._client.block_blob.stage_block_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_block_list(self, block_list_type="committed", **kwargs): + # type: (Optional[str], Any) -> Tuple[List[BlobBlock], List[BlobBlock]] + """The Get Block List operation retrieves the list of blocks that have + been uploaded as part of a block blob. + + :param str block_list_type: + Specifies whether to return the list of committed + blocks, the list of uncommitted blocks, or both lists together. + Possible values include: 'committed', 'uncommitted', 'all' + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A tuple of two lists - committed and uncommitted blocks + :rtype: tuple(list(~azure.storage.blob.BlobBlock), list(~azure.storage.blob.BlobBlock)) + """ + access_conditions = get_access_conditions(kwargs.pop('kease', None)) + mod_conditions = get_modify_conditions(kwargs) + try: + blocks = await self._client.block_blob.get_block_list( + list_type=block_list_type, + snapshot=self.snapshot, + timeout=kwargs.pop('timeout', None), + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return self._get_block_list_result(blocks) + + @distributed_trace_async + async def commit_block_list( # type: ignore + self, block_list, # type: List[BlobBlock] + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """The Commit Block List operation writes a blob by specifying the list of + block IDs that make up the blob. + + :param list block_list: + List of Blockblobs. + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict[str, str] + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword bool validate_content: + If true, calculates an MD5 hash of the page content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._commit_block_list_options( + block_list, + content_settings=content_settings, + metadata=metadata, + **kwargs) + try: + return await self._client.block_blob.commit_block_list(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def set_premium_page_blob_tier(self, premium_page_blob_tier, **kwargs): + # type: (Union[str, PremiumPageBlobTier], **Any) -> None + """Sets the page blob tiers on the blob. This API is only supported for page blobs on premium accounts. + + :param premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :type premium_page_blob_tier: ~azure.storage.blob.PremiumPageBlobTier + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :rtype: None + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if premium_page_blob_tier is None: + raise ValueError("A PremiumPageBlobTiermust be specified") + try: + await self._client.blob.set_tier( + tier=premium_page_blob_tier, + timeout=kwargs.pop('timeout', None), + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def set_blob_tags(self, tags=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Any] + """The Set Tags operation enables users to set tags on a blob or specific blob version, but not snapshot. + Each call to this operation replaces all existing tags attached to the blob. To remove all + tags from the blob, call this operation with no tags set. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :param tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + :type tags: dict(str, str) + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to delete. + :keyword bool validate_content: + If true, calculates an MD5 hash of the tags content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: Dict[str, Any] + """ + options = self._set_blob_tags_options(tags=tags, **kwargs) + try: + return await self._client.blob.set_tags(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_blob_tags(self, **kwargs): + # type: (**Any) -> Dict[str, str] + """The Get Tags operation enables users to get tags on a blob or specific blob version, but not snapshot. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to add tags to. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Key value pairs of blob tags. + :rtype: Dict[str, str] + """ + options = self._get_blob_tags_options(**kwargs) + try: + _, tags = await self._client.blob.get_tags(**options) + return parse_tags(tags) # pylint: disable=protected-access + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_page_ranges( # type: ignore + self, offset=None, # type: Optional[int] + length=None, # type: Optional[int] + previous_snapshot_diff=None, # type: Optional[Union[str, Dict[str, Any]]] + **kwargs + ): + # type: (...) -> Tuple[List[Dict[str, int]], List[Dict[str, int]]] + """Returns the list of valid page ranges for a Page Blob or snapshot + of a page blob. + + :param int offset: + Start of byte range to use for getting valid page ranges. + If no length is given, all bytes after the offset will be searched. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for getting valid page ranges. + If length is given, offset must be provided. + This range will return valid page ranges from the offset start up to + the specified length. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param str previous_snapshot_diff: + The snapshot diff parameter that contains an opaque DateTime value that + specifies a previous blob snapshot to be compared + against a more recent snapshot or the current blob. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: + A tuple of two lists of page ranges as dictionaries with 'start' and 'end' keys. + The first element are filled page ranges, the 2nd element is cleared page ranges. + :rtype: tuple(list(dict(str, str), list(dict(str, str)) + """ + options = self._get_page_ranges_options( + offset=offset, + length=length, + previous_snapshot_diff=previous_snapshot_diff, + **kwargs) + try: + if previous_snapshot_diff: + ranges = await self._client.page_blob.get_page_ranges_diff(**options) + else: + ranges = await self._client.page_blob.get_page_ranges(**options) + except StorageErrorException as error: + process_storage_error(error) + return get_page_ranges_result(ranges) + + @distributed_trace_async + async def get_page_range_diff_for_managed_disk( + self, previous_snapshot_url, # type: str + offset=None, # type: Optional[int] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Tuple[List[Dict[str, int]], List[Dict[str, int]]] + """Returns the list of valid page ranges for a managed disk or snapshot. + + .. note:: + This operation is only available for managed disk accounts. + + .. versionadded:: 12.2.0 + This operation was introduced in API version '2019-07-07'. + + :param previous_snapshot_url: + Specifies the URL of a previous snapshot of the managed disk. + The response will only contain pages that were changed between the target blob and + its previous snapshot. + :param int offset: + Start of byte range to use for getting valid page ranges. + If no length is given, all bytes after the offset will be searched. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for getting valid page ranges. + If length is given, offset must be provided. + This range will return valid page ranges from the offset start up to + the specified length. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: + A tuple of two lists of page ranges as dictionaries with 'start' and 'end' keys. + The first element are filled page ranges, the 2nd element is cleared page ranges. + :rtype: tuple(list(dict(str, str), list(dict(str, str)) + """ + options = self._get_page_ranges_options( + offset=offset, + length=length, + prev_snapshot_url=previous_snapshot_url, + **kwargs) + try: + ranges = await self._client.page_blob.get_page_ranges_diff(**options) + except StorageErrorException as error: + process_storage_error(error) + return get_page_ranges_result(ranges) + + @distributed_trace_async + async def set_sequence_number( # type: ignore + self, sequence_number_action, # type: Union[str, SequenceNumberAction] + sequence_number=None, # type: Optional[str] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """Sets the blob sequence number. + + :param str sequence_number_action: + This property indicates how the service should modify the blob's sequence + number. See :class:`~azure.storage.blob.SequenceNumberAction` for more information. + :param str sequence_number: + This property sets the blob's sequence number. The sequence number is a + user-controlled property that you can use to track requests and manage + concurrency issues. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._set_sequence_number_options( + sequence_number_action, sequence_number=sequence_number, **kwargs) + try: + return await self._client.page_blob.update_sequence_number(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def resize_blob(self, size, **kwargs): + # type: (int, Any) -> Dict[str, Union[str, datetime]] + """Resizes a page blob to the specified size. + + If the specified value is less than the current size of the blob, + then all pages above the specified value are cleared. + + :param int size: + Size used to resize blob. Maximum size for a page blob is up to 1 TB. + The page blob size must be aligned to a 512-byte boundary. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._resize_blob_options(size, **kwargs) + try: + return await self._client.page_blob.resize(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def upload_page( # type: ignore + self, page, # type: bytes + offset, # type: int + length, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """The Upload Pages operation writes a range of pages to a page blob. + + :param bytes page: + Content of the page. + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword bool validate_content: + If true, calculates an MD5 hash of the page content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._upload_page_options( + page=page, + offset=offset, + length=length, + **kwargs) + try: + return await self._client.page_blob.upload_pages(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def upload_pages_from_url(self, source_url, # type: str + offset, # type: int + length, # type: int + source_offset, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Any] + """ + The Upload Pages operation writes a range of pages to a page blob where + the contents are read from a URL. + + :param str source_url: + The URL of the source data. It can point to any Azure Blob or File, that is either public or has a + shared access signature attached. + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int source_offset: + This indicates the start of the range of bytes(inclusive) that has to be taken from the copy source. + The service will read the same number of bytes as the destination range (length-offset). + :keyword bytes source_content_md5: + If given, the service will calculate the MD5 hash of the block content and compare against this value. + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the source resource has been modified since the specified time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the source resource has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + """ + + options = self._upload_pages_from_url_options( + source_url=source_url, + offset=offset, + length=length, + source_offset=source_offset, + **kwargs + ) + try: + return await self._client.page_blob.upload_pages_from_url(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def clear_page(self, offset, length, **kwargs): + # type: (int, int, Any) -> Dict[str, Union[str, datetime]] + """Clears a range of pages. + + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._clear_page_options(offset, length, **kwargs) + try: + return await self._client.page_blob.clear_pages(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def append_block( # type: ignore + self, data, # type: Union[AnyStr, Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """Commits a new block of data to the end of the existing append blob. + + :param data: + Content of the block. + :param int length: + Size of the block in bytes. + :keyword bool validate_content: + If true, calculates an MD5 hash of the block content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag, last modified, append offset, committed block count). + :rtype: dict(str, Any) + """ + options = self._append_block_options( + data, + length=length, + **kwargs + ) + try: + return await self._client.append_blob.append_block(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async() + async def append_block_from_url(self, copy_source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + **kwargs): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """ + Creates a new block to be committed as part of a blob, where the contents are read from a source url. + + :param str copy_source_url: + The URL of the source data. It can point to any Azure Blob or File, that is either public or has a + shared access signature attached. + :param int source_offset: + This indicates the start of the range of bytes(inclusive) that has to be taken from the copy source. + :param int source_length: + This indicates the end of the range of bytes that has to be taken from the copy source. + :keyword bytearray source_content_md5: + If given, the service will calculate the MD5 hash of the block content and compare against this value. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the + AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the source resource has been modified since the specified time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the source resource has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + """ + options = self._append_block_from_url_options( + copy_source_url, + source_offset=source_offset, + source_length=source_length, + **kwargs + ) + try: + return await self._client.append_blob.append_block_from_url(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async() + async def seal_append_blob(self, **kwargs): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """The Seal operation seals the Append Blob to make it read-only. + + .. versionadded:: 12.4.0 + + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag, last modified, append offset, committed block count). + :rtype: dict(str, Any) + """ + options = self._seal_append_blob_options(**kwargs) + try: + return await self._client.append_blob.seal(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_blob_service_client_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_blob_service_client_async.py new file mode 100644 index 00000000000..ab2e8a0defc --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_blob_service_client_async.py @@ -0,0 +1,632 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method +import functools +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, Dict, List, + TYPE_CHECKING +) + +from azure.core.tracing.decorator import distributed_trace +from azure.core.pipeline import AsyncPipeline +from azure.core.tracing.decorator_async import distributed_trace_async +from azure.core.async_paging import AsyncItemPaged + +from .._shared.models import LocationMode +from .._shared.policies_async import ExponentialRetry +from .._shared.base_client_async import AsyncStorageAccountHostsMixin, AsyncTransportWrapper +from .._shared.response_handlers import return_response_headers, process_storage_error +from .._shared.parser import _to_utc_datetime +from .._shared.response_handlers import parse_to_internal_user_delegation_key +from .._generated import VERSION +from .._generated.aio import AzureBlobStorage +from .._generated.models import StorageErrorException, StorageServiceProperties, KeyInfo +from .._blob_service_client import BlobServiceClient as BlobServiceClientBase +from ._container_client_async import ContainerClient +from ._blob_client_async import BlobClient +from .._models import ContainerProperties +from .._deserialize import service_stats_deserialize, service_properties_deserialize +from .._serialize import get_api_version +from ._models import ContainerPropertiesPaged, FilteredBlobPaged + +if TYPE_CHECKING: + from datetime import datetime + from azure.core.pipeline.transport import HttpTransport + from azure.core.pipeline.policies import HTTPPolicy + from .._shared.models import AccountSasPermissions, ResourceTypes, UserDelegationKey + from ._lease_async import BlobLeaseClient + from .._models import ( + BlobProperties, + PublicAccess, + BlobAnalyticsLogging, + Metrics, + CorsRule, + RetentionPolicy, + StaticWebsite, + ) + + +class BlobServiceClient(AsyncStorageAccountHostsMixin, BlobServiceClientBase): + """A client to interact with the Blob Service at the account level. + + This client provides operations to retrieve and configure the account properties + as well as list, create and delete containers within the account. + For operations relating to a specific container or blob, clients for those entities + can also be retrieved using the `get_client` functions. + + :param str account_url: + The URL to the blob storage account. Any other entities included + in the URL path (e.g. container or blob) will be discarded. This URL can be optionally + authenticated with a SAS token. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication_async.py + :start-after: [START create_blob_service_client] + :end-before: [END create_blob_service_client] + :language: python + :dedent: 8 + :caption: Creating the BlobServiceClient with account url and credential. + + .. literalinclude:: ../samples/blob_samples_authentication_async.py + :start-after: [START create_blob_service_client_oauth] + :end-before: [END create_blob_service_client_oauth] + :language: python + :dedent: 8 + :caption: Creating the BlobServiceClient with Azure Identity credentials. + """ + + def __init__( + self, account_url, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + kwargs['retry_policy'] = kwargs.get('retry_policy') or ExponentialRetry(**kwargs) + super(BlobServiceClient, self).__init__( + account_url, + credential=credential, + **kwargs) + self._client = AzureBlobStorage(url=self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + self._loop = kwargs.get('loop', None) + + @distributed_trace_async + async def get_user_delegation_key(self, key_start_time, # type: datetime + key_expiry_time, # type: datetime + **kwargs # type: Any + ): + # type: (...) -> UserDelegationKey + """ + Obtain a user delegation key for the purpose of signing SAS tokens. + A token credential must be present on the service object for this request to succeed. + + :param ~datetime.datetime key_start_time: + A DateTime value. Indicates when the key becomes valid. + :param ~datetime.datetime key_expiry_time: + A DateTime value. Indicates when the key stops being valid. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: The user delegation key. + :rtype: ~azure.storage.blob.UserDelegationKey + """ + key_info = KeyInfo(start=_to_utc_datetime(key_start_time), expiry=_to_utc_datetime(key_expiry_time)) + timeout = kwargs.pop('timeout', None) + try: + user_delegation_key = await self._client.service.get_user_delegation_key(key_info=key_info, + timeout=timeout, + **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + return parse_to_internal_user_delegation_key(user_delegation_key) # type: ignore + + @distributed_trace_async + async def get_account_information(self, **kwargs): + # type: (Any) -> Dict[str, str] + """Gets information related to the storage account. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START get_blob_service_account_info] + :end-before: [END get_blob_service_account_info] + :language: python + :dedent: 12 + :caption: Getting account information for the blob service. + """ + try: + return await self._client.service.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_service_stats(self, **kwargs): + # type: (Any) -> Dict[str, Any] + """Retrieves statistics related to replication for the Blob service. + + It is only available when read-access geo-redundant replication is enabled for + the storage account. + + With geo-redundant replication, Azure Storage maintains your data durable + in two locations. In both locations, Azure Storage constantly maintains + multiple healthy replicas of your data. The location where you read, + create, update, or delete data is the primary storage account location. + The primary location exists in the region you choose at the time you + create an account via the Azure Management Azure classic portal, for + example, North Central US. The location to which your data is replicated + is the secondary location. The secondary location is automatically + determined based on the location of the primary; it is in a second data + center that resides in the same region as the primary location. Read-only + access is available from the secondary location, if read-access geo-redundant + replication is enabled for your storage account. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: The blob service stats. + :rtype: Dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START get_blob_service_stats] + :end-before: [END get_blob_service_stats] + :language: python + :dedent: 12 + :caption: Getting service stats for the blob service. + """ + timeout = kwargs.pop('timeout', None) + try: + stats = await self._client.service.get_statistics( # type: ignore + timeout=timeout, use_location=LocationMode.SECONDARY, **kwargs) + return service_stats_deserialize(stats) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_service_properties(self, **kwargs): + # type: (Any) -> Dict[str, Any] + """Gets the properties of a storage account's Blob service, including + Azure Storage Analytics. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An object containing blob service properties such as + analytics logging, hour/minute metrics, cors rules, etc. + :rtype: Dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START get_blob_service_properties] + :end-before: [END get_blob_service_properties] + :language: python + :dedent: 12 + :caption: Getting service properties for the blob service. + """ + timeout = kwargs.pop('timeout', None) + try: + service_props = await self._client.service.get_properties(timeout=timeout, **kwargs) + return service_properties_deserialize(service_props) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def set_service_properties( + self, analytics_logging=None, # type: Optional[BlobAnalyticsLogging] + hour_metrics=None, # type: Optional[Metrics] + minute_metrics=None, # type: Optional[Metrics] + cors=None, # type: Optional[List[CorsRule]] + target_version=None, # type: Optional[str] + delete_retention_policy=None, # type: Optional[RetentionPolicy] + static_website=None, # type: Optional[StaticWebsite] + **kwargs + ): + # type: (...) -> None + """Sets the properties of a storage account's Blob service, including + Azure Storage Analytics. + + If an element (e.g. analytics_logging) is left as None, the + existing settings on the service for that functionality are preserved. + + :param analytics_logging: + Groups the Azure Analytics Logging settings. + :type analytics_logging: ~azure.storage.blob.BlobAnalyticsLogging + :param hour_metrics: + The hour metrics settings provide a summary of request + statistics grouped by API in hourly aggregates for blobs. + :type hour_metrics: ~azure.storage.blob.Metrics + :param minute_metrics: + The minute metrics settings provide request statistics + for each minute for blobs. + :type minute_metrics: ~azure.storage.blob.Metrics + :param cors: + You can include up to five CorsRule elements in the + list. If an empty list is specified, all CORS rules will be deleted, + and CORS will be disabled for the service. + :type cors: list[~azure.storage.blob.CorsRule] + :param str target_version: + Indicates the default version to use for requests if an incoming + request's version is not specified. + :param delete_retention_policy: + The delete retention policy specifies whether to retain deleted blobs. + It also specifies the number of days and versions of blob to keep. + :type delete_retention_policy: ~azure.storage.blob.RetentionPolicy + :param static_website: + Specifies whether the static website feature is enabled, + and if yes, indicates the index document and 404 error document to use. + :type static_website: ~azure.storage.blob.StaticWebsite + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START set_blob_service_properties] + :end-before: [END set_blob_service_properties] + :language: python + :dedent: 12 + :caption: Setting service properties for the blob service. + """ + props = StorageServiceProperties( + logging=analytics_logging, + hour_metrics=hour_metrics, + minute_metrics=minute_metrics, + cors=cors, + default_service_version=target_version, + delete_retention_policy=delete_retention_policy, + static_website=static_website + ) + timeout = kwargs.pop('timeout', None) + try: + await self._client.service.set_properties(props, timeout=timeout, **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def list_containers( + self, name_starts_with=None, # type: Optional[str] + include_metadata=False, # type: Optional[bool] + **kwargs + ): + # type: (...) -> AsyncItemPaged[ContainerProperties] + """Returns a generator to list the containers under the specified account. + + The generator will lazily follow the continuation tokens returned by + the service and stop when all containers have been returned. + + :param str name_starts_with: + Filters the results to return only containers whose names + begin with the specified prefix. + :param bool include_metadata: + Specifies that container metadata to be returned in the response. + The default value is `False`. + :keyword int results_per_page: + The maximum number of container names to retrieve per API + call. If the request does not specify the server will return up to 5,000 items. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) of ContainerProperties. + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.storage.blob.ContainerProperties] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START bsc_list_containers] + :end-before: [END bsc_list_containers] + :language: python + :dedent: 16 + :caption: Listing the containers in the blob service. + """ + include = ['metadata'] if include_metadata else [] + timeout = kwargs.pop('timeout', None) + results_per_page = kwargs.pop('results_per_page', None) + command = functools.partial( + self._client.service.list_containers_segment, + prefix=name_starts_with, + include=include, + timeout=timeout, + **kwargs) + return AsyncItemPaged( + command, + prefix=name_starts_with, + results_per_page=results_per_page, + page_iterator_class=ContainerPropertiesPaged + ) + + @distributed_trace + def find_blobs_by_tags(self, filter_expression, **kwargs): + # type: (str, **Any) -> AsyncItemPaged[FilteredBlob] + """The Filter Blobs operation enables callers to list blobs across all + containers whose tags match a given search expression. Filter blobs + searches across all containers within a storage account but can be + scoped within the expression to a single container. + + :param str filter_expression: + The expression to find blobs whose tags matches the specified condition. + eg. "\"yourtagname\"='firsttag' and \"yourtagname2\"='secondtag'" + To specify a container, eg. "@container='containerName' and \"Name\"='C'" + :keyword int results_per_page: + The max result per page when paginating. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.storage.blob.FilteredBlob] + """ + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.service.filter_blobs, + where=filter_expression, + timeout=timeout, + **kwargs) + return AsyncItemPaged( + command, results_per_page=results_per_page, + page_iterator_class=FilteredBlobPaged) + + @distributed_trace_async + async def create_container( + self, name, # type: str + metadata=None, # type: Optional[Dict[str, str]] + public_access=None, # type: Optional[Union[PublicAccess, str]] + **kwargs + ): + # type: (...) -> ContainerClient + """Creates a new container under the specified account. + + If the container with the same name already exists, a ResourceExistsError will + be raised. This method returns a client with which to interact with the newly + created container. + + :param str name: The name of the container to create. + :param metadata: + A dict with name-value pairs to associate with the + container as metadata. Example: `{'Category':'test'}` + :type metadata: dict(str, str) + :param public_access: + Possible values include: 'container', 'blob'. + :type public_access: str or ~azure.storage.blob.PublicAccess + :keyword container_encryption_scope: + Specifies the default encryption scope to set on the container and use for + all future writes. + + .. versionadded:: 12.2.0 + + :paramtype container_encryption_scope: dict or ~azure.storage.blob.ContainerEncryptionScope + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: ~azure.storage.blob.aio.ContainerClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START bsc_create_container] + :end-before: [END bsc_create_container] + :language: python + :dedent: 16 + :caption: Creating a container in the blob service. + """ + container = self.get_container_client(name) + timeout = kwargs.pop('timeout', None) + kwargs.setdefault('merge_span', True) + await container.create_container( + metadata=metadata, public_access=public_access, timeout=timeout, **kwargs) + return container + + @distributed_trace_async + async def delete_container( + self, container, # type: Union[ContainerProperties, str] + lease=None, # type: Optional[Union[BlobLeaseClient, str]] + **kwargs + ): + # type: (...) -> None + """Marks the specified container for deletion. + + The container and any blobs contained within it are later deleted during garbage collection. + If the container is not found, a ResourceNotFoundError will be raised. + + :param container: + The container to delete. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :param lease: + If specified, delete_container only succeeds if the + container's lease is active and matches this ID. + Required if the container has an active lease. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START bsc_delete_container] + :end-before: [END bsc_delete_container] + :language: python + :dedent: 16 + :caption: Deleting a container in the blob service. + """ + container = self.get_container_client(container) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + await container.delete_container( # type: ignore + lease=lease, + timeout=timeout, + **kwargs) + + @distributed_trace_async + async def _undelete_container(self, deleted_container_name, deleted_container_version, new_name=None, **kwargs): + # type: (str, str, str, **Any) -> ContainerClient + """Restores soft-deleted container. + + Operation will only be successful if used within the specified number of days + set in the delete retention policy. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :param str deleted_container_name: + Specifies the name of the deleted container to restore. + :param str deleted_container_version: + Specifies the version of the deleted container to restore. + :param str new_name: + The new name for the deleted container to be restored to. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: ~azure.storage.blob.aio.ContainerClient + """ + container = self.get_container_client(new_name or deleted_container_name) + try: + await container._client.container.restore(deleted_container_name=deleted_container_name, # pylint: disable = protected-access + deleted_container_version=deleted_container_version, + timeout=kwargs.pop('timeout', None), **kwargs) + return container + except StorageErrorException as error: + process_storage_error(error) + + def get_container_client(self, container): + # type: (Union[ContainerProperties, str]) -> ContainerClient + """Get a client to interact with the specified container. + + The container need not already exist. + + :param container: + The container. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :returns: A ContainerClient. + :rtype: ~azure.storage.blob.aio.ContainerClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START bsc_get_container_client] + :end-before: [END bsc_get_container_client] + :language: python + :dedent: 12 + :caption: Getting the container client to interact with a specific container. + """ + try: + container_name = container.name + except AttributeError: + container_name = container + _pipeline = AsyncPipeline( + transport=AsyncTransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return ContainerClient( + self.url, container_name=container_name, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function, loop=self._loop) + + def get_blob_client( + self, container, # type: Union[ContainerProperties, str] + blob, # type: Union[BlobProperties, str] + snapshot=None # type: Optional[Union[Dict[str, Any], str]] + ): + # type: (...) -> BlobClient + """Get a client to interact with the specified blob. + + The blob need not already exist. + + :param container: + The container that the blob is in. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :param blob: + The blob with which to interact. This can either be the name of the blob, + or an instance of BlobProperties. + :type blob: str or ~azure.storage.blob.BlobProperties + :param snapshot: + The optional blob snapshot on which to operate. This can either be the ID of the snapshot, + or a dictionary output returned by + :func:`~azure.storage.blob.aio.BlobClient.create_snapshot()`. + :type snapshot: str or dict(str, Any) + :returns: A BlobClient. + :rtype: ~azure.storage.blob.aio.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START bsc_get_blob_client] + :end-before: [END bsc_get_blob_client] + :language: python + :dedent: 16 + :caption: Getting the blob client to interact with a specific blob. + """ + try: + container_name = container.name + except AttributeError: + container_name = container + + try: + blob_name = blob.name + except AttributeError: + blob_name = blob + _pipeline = AsyncPipeline( + transport=AsyncTransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return BlobClient( # type: ignore + self.url, container_name=container_name, blob_name=blob_name, snapshot=snapshot, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function, loop=self._loop) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_container_client_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_container_client_async.py new file mode 100644 index 00000000000..6217e995847 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_container_client_async.py @@ -0,0 +1,1115 @@ +# pylint: disable=too-many-lines +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method +import functools +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, AnyStr, Dict, List, IO, AsyncIterator, + TYPE_CHECKING +) + +from azure.core.tracing.decorator import distributed_trace +from azure.core.tracing.decorator_async import distributed_trace_async +from azure.core.async_paging import AsyncItemPaged +from azure.core.pipeline import AsyncPipeline +from azure.core.pipeline.transport import AsyncHttpResponse + +from .._shared.base_client_async import AsyncStorageAccountHostsMixin, AsyncTransportWrapper +from .._shared.policies_async import ExponentialRetry +from .._shared.request_handlers import add_metadata_headers, serialize_iso +from .._shared.response_handlers import ( + process_storage_error, + return_response_headers, + return_headers_and_deserialized) +from .._generated import VERSION +from .._generated.aio import AzureBlobStorage +from .._generated.models import ( + StorageErrorException, + SignedIdentifier) +from .._deserialize import deserialize_container_properties +from .._serialize import get_modify_conditions, get_container_cpk_scope_info, get_api_version +from .._container_client import ContainerClient as ContainerClientBase, _get_blob_name +from .._lease import get_access_conditions +from .._models import ContainerProperties, BlobType, BlobProperties # pylint: disable=unused-import +from ._list_blobs_helper import BlobPropertiesPaged, BlobPrefix +from ._lease_async import BlobLeaseClient +from ._blob_client_async import BlobClient + +if TYPE_CHECKING: + from .._models import PublicAccess + from ._download_async import StorageStreamDownloader + from datetime import datetime + from .._models import ( # pylint: disable=unused-import + AccessPolicy, + StandardBlobTier, + PremiumPageBlobTier) + + +class ContainerClient(AsyncStorageAccountHostsMixin, ContainerClientBase): + """A client to interact with a specific container, although that container + may not yet exist. + + For operations relating to a specific blob within this container, a blob client can be + retrieved using the :func:`~get_blob_client` function. + + :param str account_url: + The URI to the storage account. In order to create a client given the full URI to the container, + use the :func:`from_container_url` classmethod. + :param container_name: + The name of the container for the blob. + :type container_name: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START create_container_client_from_service] + :end-before: [END create_container_client_from_service] + :language: python + :dedent: 8 + :caption: Get a ContainerClient from an existing BlobServiceClient. + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START create_container_client_sasurl] + :end-before: [END create_container_client_sasurl] + :language: python + :dedent: 12 + :caption: Creating the container client directly. + """ + def __init__( + self, account_url, # type: str + container_name, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + kwargs['retry_policy'] = kwargs.get('retry_policy') or ExponentialRetry(**kwargs) + super(ContainerClient, self).__init__( + account_url, + container_name=container_name, + credential=credential, + **kwargs) + self._client = AzureBlobStorage(url=self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + self._loop = kwargs.get('loop', None) + + @distributed_trace_async + async def create_container(self, metadata=None, public_access=None, **kwargs): + # type: (Optional[Dict[str, str]], Optional[Union[PublicAccess, str]], **Any) -> None + """ + Creates a new container under the specified account. If the container + with the same name already exists, the operation fails. + + :param metadata: + A dict with name_value pairs to associate with the + container as metadata. Example:{'Category':'test'} + :type metadata: dict[str, str] + :param ~azure.storage.blob.PublicAccess public_access: + Possible values include: 'container', 'blob'. + :keyword container_encryption_scope: + Specifies the default encryption scope to set on the container and use for + all future writes. + + .. versionadded:: 12.2.0 + + :paramtype container_encryption_scope: dict or ~azure.storage.blob.ContainerEncryptionScope + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START create_container] + :end-before: [END create_container] + :language: python + :dedent: 16 + :caption: Creating a container to store blobs. + """ + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) # type: ignore + timeout = kwargs.pop('timeout', None) + container_cpk_scope_info = get_container_cpk_scope_info(kwargs) + try: + return await self._client.container.create( # type: ignore + timeout=timeout, + access=public_access, + container_cpk_scope_info=container_cpk_scope_info, + cls=return_response_headers, + headers=headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def delete_container( + self, **kwargs): + # type: (Any) -> None + """ + Marks the specified container for deletion. The container and any blobs + contained within it are later deleted during garbage collection. + + :keyword lease: + If specified, delete_container only succeeds if the + container's lease is active and matches this ID. + Required if the container has an active lease. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START delete_container] + :end-before: [END delete_container] + :language: python + :dedent: 16 + :caption: Delete a container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + mod_conditions = get_modify_conditions(kwargs) + timeout = kwargs.pop('timeout', None) + try: + await self._client.container.delete( + timeout=timeout, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def acquire_lease( + self, lease_duration=-1, # type: int + lease_id=None, # type: Optional[str] + **kwargs): + # type: (...) -> BlobLeaseClient + """ + Requests a new lease. If the container does not have an active lease, + the Blob service creates a lease on the container and returns a new + lease ID. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :param str lease_id: + Proposed lease ID, in a GUID string format. The Blob service returns + 400 (Invalid request) if the proposed lease ID is not in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A BlobLeaseClient object, that can be run in a context manager. + :rtype: ~azure.storage.blob.aio.BlobLeaseClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START acquire_lease_on_container] + :end-before: [END acquire_lease_on_container] + :language: python + :dedent: 12 + :caption: Acquiring a lease on the container. + """ + lease = BlobLeaseClient(self, lease_id=lease_id) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + await lease.acquire(lease_duration=lease_duration, timeout=timeout, **kwargs) + return lease + + @distributed_trace_async + async def get_account_information(self, **kwargs): + # type: (**Any) -> Dict[str, str] + """Gets information related to the storage account. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + """ + try: + return await self._client.container.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_container_properties(self, **kwargs): + # type: (**Any) -> ContainerProperties + """Returns all user-defined metadata and system properties for the specified + container. The data returned does not include the container's list of blobs. + + :keyword lease: + If specified, get_container_properties only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: Properties for the specified container within a container object. + :rtype: ~azure.storage.blob.ContainerProperties + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START get_container_properties] + :end-before: [END get_container_properties] + :language: python + :dedent: 16 + :caption: Getting properties on the container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + timeout = kwargs.pop('timeout', None) + try: + response = await self._client.container.get_properties( + timeout=timeout, + lease_access_conditions=access_conditions, + cls=deserialize_container_properties, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + response.name = self.container_name + return response # type: ignore + + @distributed_trace_async + async def set_container_metadata( # type: ignore + self, metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """Sets one or more user-defined name-value pairs for the specified + container. Each call to this operation replaces all existing metadata + attached to the container. To remove all metadata from the container, + call this operation with no metadata dict. + + :param metadata: + A dict containing name-value pairs to associate with the container as + metadata. Example: {'category':'test'} + :type metadata: dict[str, str] + :keyword lease: + If specified, set_container_metadata only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Container-updated property dict (Etag and last modified). + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START set_container_metadata] + :end-before: [END set_container_metadata] + :language: python + :dedent: 16 + :caption: Setting metadata on the container. + """ + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + mod_conditions = get_modify_conditions(kwargs) + timeout = kwargs.pop('timeout', None) + try: + return await self._client.container.set_metadata( # type: ignore + timeout=timeout, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + headers=headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_container_access_policy(self, **kwargs): + # type: (Any) -> Dict[str, Any] + """Gets the permissions for the specified container. + The permissions indicate whether container data may be accessed publicly. + + :keyword lease: + If specified, get_container_access_policy only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Access policy information in a dict. + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START get_container_access_policy] + :end-before: [END get_container_access_policy] + :language: python + :dedent: 16 + :caption: Getting the access policy on the container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + timeout = kwargs.pop('timeout', None) + try: + response, identifiers = await self._client.container.get_access_policy( + timeout=timeout, + lease_access_conditions=access_conditions, + cls=return_headers_and_deserialized, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return { + 'public_access': response.get('blob_public_access'), + 'signed_identifiers': identifiers or [] + } + + @distributed_trace_async + async def set_container_access_policy( + self, signed_identifiers, # type: Dict[str, AccessPolicy] + public_access=None, # type: Optional[Union[str, PublicAccess]] + **kwargs # type: Any + ): # type: (...) -> Dict[str, Union[str, datetime]] + """Sets the permissions for the specified container or stored access + policies that may be used with Shared Access Signatures. The permissions + indicate whether blobs in a container may be accessed publicly. + + :param signed_identifiers: + A dictionary of access policies to associate with the container. The + dictionary may contain up to 5 elements. An empty dictionary + will clear the access policies set on the service. + :type signed_identifiers: dict[str, ~azure.storage.blob.AccessPolicy] + :param ~azure.storage.blob.PublicAccess public_access: + Possible values include: 'container', 'blob'. + :keyword lease: + Required if the container has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A datetime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified date/time. + :keyword ~datetime.datetime if_unmodified_since: + A datetime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Container-updated property dict (Etag and last modified). + :rtype: dict[str, str or ~datetime.datetime] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START set_container_access_policy] + :end-before: [END set_container_access_policy] + :language: python + :dedent: 16 + :caption: Setting access policy on the container. + """ + timeout = kwargs.pop('timeout', None) + lease = kwargs.pop('lease', None) + if len(signed_identifiers) > 5: + raise ValueError( + 'Too many access policies provided. The server does not support setting ' + 'more than 5 access policies on a single resource.') + identifiers = [] + for key, value in signed_identifiers.items(): + if value: + value.start = serialize_iso(value.start) + value.expiry = serialize_iso(value.expiry) + identifiers.append(SignedIdentifier(id=key, access_policy=value)) # type: ignore + signed_identifiers = identifiers # type: ignore + + mod_conditions = get_modify_conditions(kwargs) + access_conditions = get_access_conditions(lease) + try: + return await self._client.container.set_access_policy( + container_acl=signed_identifiers or None, + timeout=timeout, + access=public_access, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def list_blobs(self, name_starts_with=None, include=None, **kwargs): + # type: (Optional[str], Optional[Union[str, List[str]]], **Any) -> AsyncItemPaged[BlobProperties] + """Returns a generator to list the blobs under the specified container. + The generator will lazily follow the continuation tokens returned by + the service. + + :param str name_starts_with: + Filters the results to return only blobs whose names + begin with the specified prefix. + :param list[str] or str include: + Specifies one or more additional datasets to include in the response. + Options include: 'snapshots', 'metadata', 'uncommittedblobs', 'copy', 'deleted', 'tags'. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.storage.blob.BlobProperties] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START list_blobs_in_container] + :end-before: [END list_blobs_in_container] + :language: python + :dedent: 12 + :caption: List the blobs in the container. + """ + if include and not isinstance(include, list): + include = [include] + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.container.list_blob_flat_segment, + include=include, + timeout=timeout, + **kwargs) + return AsyncItemPaged( + command, + prefix=name_starts_with, + results_per_page=results_per_page, + page_iterator_class=BlobPropertiesPaged + ) + + @distributed_trace + def walk_blobs( + self, name_starts_with=None, # type: Optional[str] + include=None, # type: Optional[Any] + delimiter="/", # type: str + **kwargs # type: Optional[Any] + ): + # type: (...) -> AsyncItemPaged[BlobProperties] + """Returns a generator to list the blobs under the specified container. + The generator will lazily follow the continuation tokens returned by + the service. This operation will list blobs in accordance with a hierarchy, + as delimited by the specified delimiter character. + + :param str name_starts_with: + Filters the results to return only blobs whose names + begin with the specified prefix. + :param list[str] include: + Specifies one or more additional datasets to include in the response. + Options include: 'snapshots', 'metadata', 'uncommittedblobs', 'copy', 'deleted'. + :param str delimiter: + When the request includes this parameter, the operation returns a BlobPrefix + element in the response body that acts as a placeholder for all blobs whose + names begin with the same substring up to the appearance of the delimiter + character. The delimiter may be a single character or a string. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.storage.blob.BlobProperties] + """ + if include and not isinstance(include, list): + include = [include] + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.container.list_blob_hierarchy_segment, + delimiter=delimiter, + include=include, + timeout=timeout, + **kwargs) + return BlobPrefix( + command, + prefix=name_starts_with, + results_per_page=results_per_page, + delimiter=delimiter) + + @distributed_trace_async + async def upload_blob( + self, name, # type: Union[str, BlobProperties] + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + blob_type=BlobType.BlockBlob, # type: Union[str, BlobType] + length=None, # type: Optional[int] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> BlobClient + """Creates a new blob from a data source with automatic chunking. + + :param name: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type name: str or ~azure.storage.blob.BlobProperties + :param data: The blob data to upload. + :param ~azure.storage.blob.BlobType blob_type: The type of the blob. This can be + either BlockBlob, PageBlob or AppendBlob. The default value is BlockBlob. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword bool overwrite: Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob will overwrite the existing data. If set to False, the + operation will fail with ResourceExistsError. The exception to the above is with Append + blob types: if set to False and the data already exists, an error will not be raised + and the data will be appended to the existing blob. If set overwrite=True, then the existing + append blob will be deleted, and a new one created. Defaults to False. + :keyword ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the container has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int max_concurrency: + Maximum number of parallel connections to use when the blob size exceeds + 64MB. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :returns: A BlobClient to interact with the newly uploaded blob. + :rtype: ~azure.storage.blob.aio.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START upload_blob_to_container] + :end-before: [END upload_blob_to_container] + :language: python + :dedent: 12 + :caption: Upload blob to the container. + """ + blob = self.get_blob_client(name) + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + encoding = kwargs.pop('encoding', 'UTF-8') + await blob.upload_blob( + data, + blob_type=blob_type, + length=length, + metadata=metadata, + timeout=timeout, + encoding=encoding, + **kwargs + ) + return blob + + @distributed_trace_async + async def delete_blob( + self, blob, # type: Union[str, BlobProperties] + delete_snapshots=None, # type: Optional[str] + **kwargs + ): + # type: (...) -> None + """Marks the specified blob or snapshot for deletion. + + The blob is later deleted during garbage collection. + Note that in order to delete a blob, you must delete all of its + snapshots. You can delete both at the same time with the delete_blob + operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blob or snapshot + and retains the blob or snapshot for specified number of days. + After specified number of days, blob's data is removed from the service during garbage collection. + Soft deleted blob or snapshot is accessible through :func:`list_blobs()` specifying `include=["deleted"]` + option. Soft-deleted blob or snapshot can be restored using :func:`~BlobClient.undelete()` + + :param blob: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob: str or ~azure.storage.blob.BlobProperties + :param str delete_snapshots: + Required if the blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword lease: + Required if the blob has an active lease. Value can be a Lease object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + blob = self.get_blob_client(blob) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + await blob.delete_blob( # type: ignore + delete_snapshots=delete_snapshots, + timeout=timeout, + **kwargs) + + @distributed_trace_async + async def download_blob(self, blob, offset=None, length=None, **kwargs): + # type: (Union[str, BlobProperties], Optional[int], Optional[int], Any) -> StorageStreamDownloader + """Downloads a blob to the StorageStreamDownloader. The readall() method must + be used to read all the content or readinto() must be used to download the blob into + a stream. + + :param blob: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob: str or ~azure.storage.blob.BlobProperties + :param int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. If specified, download_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword str encoding: + Encoding to decode the downloaded bytes. Default is None, i.e. no decoding. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: A streaming object. (StorageStreamDownloader) + :rtype: ~azure.storage.blob.aio.StorageStreamDownloader + """ + blob_client = self.get_blob_client(blob) # type: ignore + kwargs.setdefault('merge_span', True) + return await blob_client.download_blob( + offset=offset, + length=length, + **kwargs) + + @distributed_trace_async + async def delete_blobs( # pylint: disable=arguments-differ + self, *blobs: List[Union[str, BlobProperties, dict]], + **kwargs + ) -> AsyncIterator[AsyncHttpResponse]: + """Marks the specified blobs or snapshots for deletion. + + The blobs are later deleted during garbage collection. + Note that in order to delete blobs, you must delete all of their + snapshots. You can delete both at the same time with the delete_blobs operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blobs or snapshots + and retains the blobs or snapshots for specified number of days. + After specified number of days, blobs' data is removed from the service during garbage collection. + Soft deleted blobs or snapshots are accessible through :func:`list_blobs()` specifying `include=["deleted"]` + Soft-deleted blobs or snapshots can be restored using :func:`~BlobClient.undelete()` + + :param blobs: + The blobs to delete. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + + blob name: + key: 'name', value type: str + snapshot you want to delete: + key: 'snapshot', value type: str + whether to delete snapthots when deleting blob: + key: 'delete_snapshots', value: 'include' or 'only' + if the blob modified or not: + key: 'if_modified_since', 'if_unmodified_since', value type: datetime + etag: + key: 'etag', value type: str + match the etag or not: + key: 'match_condition', value type: MatchConditions + tags match condition: + key: 'if_tags_match_condition', value type: str + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword str delete_snapshots: + Required if a blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. For optimal performance, + this should be set to False + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: An async iterator of responses, one for each blob in order + :rtype: asynciterator[~azure.core.pipeline.transport.AsyncHttpResponse] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START delete_multiple_blobs] + :end-before: [END delete_multiple_blobs] + :language: python + :dedent: 12 + :caption: Deleting multiple blobs. + """ + if len(blobs) == 0: + return iter(list()) + + reqs, options = self._generate_delete_blobs_options(*blobs, **kwargs) + + return await self._batch_send(*reqs, **options) + + @distributed_trace + async def set_standard_blob_tier_blobs( + self, + standard_blob_tier: Union[str, 'StandardBlobTier'], + *blobs: List[Union[str, BlobProperties, dict]], + **kwargs + ) -> AsyncIterator[AsyncHttpResponse]: + """This operation sets the tier on block blobs. + + A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param standard_blob_tier: + Indicates the tier to be set on all blobs. Options include 'Hot', 'Cool', + 'Archive'. The hot tier is optimized for storing data that is accessed + frequently. The cool storage tier is optimized for storing data that + is infrequently accessed and stored for at least a month. The archive + tier is optimized for storing data that is rarely accessed and stored + for at least six months with flexible latency requirements. + + .. note:: + If you want to set different tier on different blobs please set this positional parameter to None. + Then the blob tier on every BlobProperties will be taken. + + :type standard_blob_tier: str or ~azure.storage.blob.StandardBlobTier + :param blobs: + The blobs with which to interact. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + blob name: + key: 'name', value type: str + standard blob tier: + key: 'blob_tier', value type: StandardBlobTier + rehydrate priority: + key: 'rehydrate_priority', value type: RehydratePriority + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + tags match condition: + key: 'if_tags_match_condition', value type: str + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. For optimal performance, + this should be set to False. + :return: An async iterator of responses, one for each blob in order + :rtype: asynciterator[~azure.core.pipeline.transport.AsyncHttpResponse] + """ + reqs, options = self._generate_set_tiers_options(standard_blob_tier, *blobs, **kwargs) + + return await self._batch_send(*reqs, **options) + + @distributed_trace + async def set_premium_page_blob_tier_blobs( + self, + premium_page_blob_tier: Union[str, 'PremiumPageBlobTier'], + *blobs: List[Union[str, BlobProperties, dict]], + **kwargs + ) -> AsyncIterator[AsyncHttpResponse]: + """Sets the page blob tiers on the blobs. This API is only supported for page blobs on premium accounts. + + :param premium_page_blob_tier: + A page blob tier value to set on all blobs to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + + .. note:: + If you want to set different tier on different blobs please set this positional parameter to None. + Then the blob tier on every BlobProperties will be taken. + + :type premium_page_blob_tier: ~azure.storage.blob.PremiumPageBlobTier + :param blobs: The blobs with which to interact. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + + blob name: + key: 'name', value type: str + premium blob tier: + key: 'blob_tier', value type: PremiumPageBlobTier + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. For optimal performance, + this should be set to False. + :return: An async iterator of responses, one for each blob in order + :rtype: asynciterator[~azure.core.pipeline.transport.AsyncHttpResponse] + """ + reqs, options = self._generate_set_tiers_options(premium_page_blob_tier, *blobs, **kwargs) + + return await self._batch_send(*reqs, **options) + + def get_blob_client( + self, blob, # type: Union[BlobProperties, str] + snapshot=None # type: str + ): + # type: (...) -> BlobClient + """Get a client to interact with the specified blob. + + The blob need not already exist. + + :param blob: + The blob with which to interact. + :type blob: str or ~azure.storage.blob.BlobProperties + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`~BlobClient.create_snapshot()`. + :returns: A BlobClient. + :rtype: ~azure.storage.blob.aio.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START get_blob_client] + :end-before: [END get_blob_client] + :language: python + :dedent: 12 + :caption: Get the blob client. + """ + blob_name = _get_blob_name(blob) + _pipeline = AsyncPipeline( + transport=AsyncTransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return BlobClient( + self.url, container_name=self.container_name, blob_name=blob_name, snapshot=snapshot, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function, loop=self._loop) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_download_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_download_async.py new file mode 100644 index 00000000000..c698cb40a40 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_download_async.py @@ -0,0 +1,491 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method + +import asyncio +import sys +from io import BytesIO +from itertools import islice +import warnings + +from azure.core.exceptions import HttpResponseError +from .._shared.encryption import decrypt_blob +from .._shared.request_handlers import validate_and_format_range_headers +from .._shared.response_handlers import process_storage_error, parse_length_from_content_range +from .._deserialize import get_page_ranges_result +from .._download import process_range_and_offset, _ChunkDownloader + + +async def process_content(data, start_offset, end_offset, encryption): + if data is None: + raise ValueError("Response cannot be None.") + try: + content = data.response.body() + except Exception as error: + raise HttpResponseError(message="Download stream interrupted.", response=data.response, error=error) + if encryption.get('key') is not None or encryption.get('resolver') is not None: + try: + return decrypt_blob( + encryption.get('required'), + encryption.get('key'), + encryption.get('resolver'), + content, + start_offset, + end_offset, + data.response.headers) + except Exception as error: + raise HttpResponseError( + message="Decryption failed.", + response=data.response, + error=error) + return content + + +class _AsyncChunkDownloader(_ChunkDownloader): + def __init__(self, **kwargs): + super(_AsyncChunkDownloader, self).__init__(**kwargs) + self.stream_lock = asyncio.Lock() if kwargs.get('parallel') else None + self.progress_lock = asyncio.Lock() if kwargs.get('parallel') else None + + async def process_chunk(self, chunk_start): + chunk_start, chunk_end = self._calculate_range(chunk_start) + chunk_data = await self._download_chunk(chunk_start, chunk_end - 1) + length = chunk_end - chunk_start + if length > 0: + await self._write_to_stream(chunk_data, chunk_start) + await self._update_progress(length) + + async def yield_chunk(self, chunk_start): + chunk_start, chunk_end = self._calculate_range(chunk_start) + return await self._download_chunk(chunk_start, chunk_end - 1) + + async def _update_progress(self, length): + if self.progress_lock: + async with self.progress_lock: # pylint: disable=not-async-context-manager + self.progress_total += length + else: + self.progress_total += length + + async def _write_to_stream(self, chunk_data, chunk_start): + if self.stream_lock: + async with self.stream_lock: # pylint: disable=not-async-context-manager + self.stream.seek(self.stream_start + (chunk_start - self.start_index)) + self.stream.write(chunk_data) + else: + self.stream.write(chunk_data) + + async def _download_chunk(self, chunk_start, chunk_end): + download_range, offset = process_range_and_offset( + chunk_start, chunk_end, chunk_end, self.encryption_options) + + # No need to download the empty chunk from server if there's no data in the chunk to be downloaded. + # Do optimize and create empty chunk locally if condition is met. + if self._do_optimize(download_range[0], download_range[1]): + chunk_data = b"\x00" * self.chunk_size + else: + range_header, range_validation = validate_and_format_range_headers( + download_range[0], + download_range[1], + check_content_md5=self.validate_content + ) + try: + _, response = await self.client.download( + range=range_header, + range_get_content_md5=range_validation, + validate_content=self.validate_content, + data_stream_total=self.total_size, + download_stream_current=self.progress_total, + **self.request_options + ) + except HttpResponseError as error: + process_storage_error(error) + + chunk_data = await process_content(response, offset[0], offset[1], self.encryption_options) + + # This makes sure that if_match is set so that we can validate + # that subsequent downloads are to an unmodified blob + if self.request_options.get('modified_access_conditions'): + self.request_options['modified_access_conditions'].if_match = response.properties.etag + + return chunk_data + + +class _AsyncChunkIterator(object): + """Async iterator for chunks in blob download stream.""" + + def __init__(self, size, content, downloader): + self.size = size + self._current_content = content + self._iter_downloader = downloader + self._iter_chunks = None + self._complete = (size == 0) + + def __len__(self): + return self.size + + def __iter__(self): + raise TypeError("Async stream must be iterated asynchronously.") + + def __aiter__(self): + return self + + async def __anext__(self): + """Iterate through responses.""" + if self._complete: + raise StopAsyncIteration("Download complete") + if not self._iter_downloader: + # If no iterator was supplied, the download completed with + # the initial GET, so we just return that data + self._complete = True + return self._current_content + + if not self._iter_chunks: + self._iter_chunks = self._iter_downloader.get_chunk_offsets() + else: + try: + chunk = next(self._iter_chunks) + except StopIteration: + raise StopAsyncIteration("Download complete") + self._current_content = await self._iter_downloader.yield_chunk(chunk) + + return self._current_content + + +class StorageStreamDownloader(object): # pylint: disable=too-many-instance-attributes + """A streaming object to download from Azure Storage. + + :ivar str name: + The name of the blob being downloaded. + :ivar str container: + The name of the container where the blob is. + :ivar ~azure.storage.blob.BlobProperties properties: + The properties of the blob being downloaded. If only a range of the data is being + downloaded, this will be reflected in the properties. + :ivar int size: + The size of the total data in the stream. This will be the byte range if speficied, + otherwise the total size of the blob. + """ + + def __init__( + self, + clients=None, + config=None, + start_range=None, + end_range=None, + validate_content=None, + encryption_options=None, + max_concurrency=1, + name=None, + container=None, + encoding=None, + **kwargs + ): + self.name = name + self.container = container + self.properties = None + self.size = None + + self._clients = clients + self._config = config + self._start_range = start_range + self._end_range = end_range + self._max_concurrency = max_concurrency + self._encoding = encoding + self._validate_content = validate_content + self._encryption_options = encryption_options or {} + self._request_options = kwargs + self._location_mode = None + self._download_complete = False + self._current_content = None + self._file_size = None + self._non_empty_ranges = None + self._response = None + + # The service only provides transactional MD5s for chunks under 4MB. + # If validate_content is on, get only self.MAX_CHUNK_GET_SIZE for the first + # chunk so a transactional MD5 can be retrieved. + self._first_get_size = self._config.max_single_get_size if not self._validate_content \ + else self._config.max_chunk_get_size + initial_request_start = self._start_range if self._start_range is not None else 0 + if self._end_range is not None and self._end_range - self._start_range < self._first_get_size: + initial_request_end = self._end_range + else: + initial_request_end = initial_request_start + self._first_get_size - 1 + + self._initial_range, self._initial_offset = process_range_and_offset( + initial_request_start, initial_request_end, self._end_range, self._encryption_options + ) + + def __len__(self): + return self.size + + async def _setup(self): + self._response = await self._initial_request() + self.properties = self._response.properties + self.properties.name = self.name + self.properties.container = self.container + + # Set the content length to the download size instead of the size of + # the last range + self.properties.size = self.size + + # Overwrite the content range to the user requested range + self.properties.content_range = 'bytes {0}-{1}/{2}'.format( + self._start_range, + self._end_range, + self._file_size + ) + + # Overwrite the content MD5 as it is the MD5 for the last range instead + # of the stored MD5 + # TODO: Set to the stored MD5 when the service returns this + self.properties.content_md5 = None + + if self.size == 0: + self._current_content = b"" + else: + self._current_content = await process_content( + self._response, + self._initial_offset[0], + self._initial_offset[1], + self._encryption_options + ) + + async def _initial_request(self): + range_header, range_validation = validate_and_format_range_headers( + self._initial_range[0], + self._initial_range[1], + start_range_required=False, + end_range_required=False, + check_content_md5=self._validate_content) + + try: + location_mode, response = await self._clients.blob.download( + range=range_header, + range_get_content_md5=range_validation, + validate_content=self._validate_content, + data_stream_total=None, + download_stream_current=0, + **self._request_options) + + # Check the location we read from to ensure we use the same one + # for subsequent requests. + self._location_mode = location_mode + + # Parse the total file size and adjust the download size if ranges + # were specified + self._file_size = parse_length_from_content_range(response.properties.content_range) + if self._end_range is not None: + # Use the length unless it is over the end of the file + self.size = min(self._file_size, self._end_range - self._start_range + 1) + elif self._start_range is not None: + self.size = self._file_size - self._start_range + else: + self.size = self._file_size + + except HttpResponseError as error: + if self._start_range is None and error.response.status_code == 416: + # Get range will fail on an empty file. If the user did not + # request a range, do a regular get request in order to get + # any properties. + try: + _, response = await self._clients.blob.download( + validate_content=self._validate_content, + data_stream_total=0, + download_stream_current=0, + **self._request_options) + except HttpResponseError as error: + process_storage_error(error) + + # Set the download size to empty + self.size = 0 + self._file_size = 0 + else: + process_storage_error(error) + + # get page ranges to optimize downloading sparse page blob + if response.properties.blob_type == 'PageBlob': + try: + page_ranges = await self._clients.page_blob.get_page_ranges() + self._non_empty_ranges = get_page_ranges_result(page_ranges)[0] + except HttpResponseError: + pass + + # If the file is small, the download is complete at this point. + # If file size is large, download the rest of the file in chunks. + if response.properties.size != self.size: + # Lock on the etag. This can be overriden by the user by specifying '*' + if self._request_options.get('modified_access_conditions'): + if not self._request_options['modified_access_conditions'].if_match: + self._request_options['modified_access_conditions'].if_match = response.properties.etag + else: + self._download_complete = True + return response + + def chunks(self): + """Iterate over chunks in the download stream. + + :rtype: Iterable[bytes] + """ + if self.size == 0 or self._download_complete: + iter_downloader = None + else: + data_end = self._file_size + if self._end_range is not None: + # Use the length unless it is over the end of the file + data_end = min(self._file_size, self._end_range + 1) + iter_downloader = _AsyncChunkDownloader( + client=self._clients.blob, + non_empty_ranges=self._non_empty_ranges, + total_size=self.size, + chunk_size=self._config.max_chunk_get_size, + current_progress=self._first_get_size, + start_range=self._initial_range[1] + 1, # Start where the first download ended + end_range=data_end, + stream=None, + parallel=False, + validate_content=self._validate_content, + encryption_options=self._encryption_options, + use_location=self._location_mode, + **self._request_options) + return _AsyncChunkIterator( + size=self.size, + content=self._current_content, + downloader=iter_downloader) + + async def readall(self): + """Download the contents of this blob. + + This operation is blocking until all data is downloaded. + :rtype: bytes or str + """ + stream = BytesIO() + await self.readinto(stream) + data = stream.getvalue() + if self._encoding: + return data.decode(self._encoding) + return data + + async def content_as_bytes(self, max_concurrency=1): + """Download the contents of this file. + + This operation is blocking until all data is downloaded. + + :keyword int max_concurrency: + The number of parallel connections with which to download. + :rtype: bytes + """ + warnings.warn( + "content_as_bytes is deprecated, use readall instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + return await self.readall() + + async def content_as_text(self, max_concurrency=1, encoding="UTF-8"): + """Download the contents of this blob, and decode as text. + + This operation is blocking until all data is downloaded. + + :keyword int max_concurrency: + The number of parallel connections with which to download. + :param str encoding: + Test encoding to decode the downloaded bytes. Default is UTF-8. + :rtype: str + """ + warnings.warn( + "content_as_text is deprecated, use readall instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + self._encoding = encoding + return await self.readall() + + async def readinto(self, stream): + """Download the contents of this blob to a stream. + + :param stream: + The stream to download to. This can be an open file-handle, + or any writable stream. The stream must be seekable if the download + uses more than one parallel connection. + :returns: The number of bytes read. + :rtype: int + """ + # the stream must be seekable if parallel download is required + parallel = self._max_concurrency > 1 + if parallel: + error_message = "Target stream handle must be seekable." + if sys.version_info >= (3,) and not stream.seekable(): + raise ValueError(error_message) + + try: + stream.seek(stream.tell()) + except (NotImplementedError, AttributeError): + raise ValueError(error_message) + + # Write the content to the user stream + stream.write(self._current_content) + if self._download_complete: + return self.size + + data_end = self._file_size + if self._end_range is not None: + # Use the length unless it is over the end of the file + data_end = min(self._file_size, self._end_range + 1) + + downloader = _AsyncChunkDownloader( + client=self._clients.blob, + non_empty_ranges=self._non_empty_ranges, + total_size=self.size, + chunk_size=self._config.max_chunk_get_size, + current_progress=self._first_get_size, + start_range=self._initial_range[1] + 1, # start where the first download ended + end_range=data_end, + stream=stream, + parallel=parallel, + validate_content=self._validate_content, + encryption_options=self._encryption_options, + use_location=self._location_mode, + **self._request_options) + + dl_tasks = downloader.get_chunk_offsets() + running_futures = [ + asyncio.ensure_future(downloader.process_chunk(d)) + for d in islice(dl_tasks, 0, self._max_concurrency) + ] + while running_futures: + # Wait for some download to finish before adding a new one + _done, running_futures = await asyncio.wait( + running_futures, return_when=asyncio.FIRST_COMPLETED) + try: + next_chunk = next(dl_tasks) + except StopIteration: + break + else: + running_futures.add(asyncio.ensure_future(downloader.process_chunk(next_chunk))) + + if running_futures: + # Wait for the remaining downloads to finish + await asyncio.wait(running_futures) + return self.size + + async def download_to_stream(self, stream, max_concurrency=1): + """Download the contents of this blob to a stream. + + :param stream: + The stream to download to. This can be an open file-handle, + or any writable stream. The stream must be seekable if the download + uses more than one parallel connection. + :returns: The properties of the downloaded blob. + :rtype: Any + """ + warnings.warn( + "download_to_stream is deprecated, use readinto instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + await self.readinto(stream) + return self.properties diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_lease_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_lease_async.py new file mode 100644 index 00000000000..5f68a9b7b87 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_lease_async.py @@ -0,0 +1,327 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, IO, Iterable, AnyStr, Dict, List, Tuple, + TypeVar, TYPE_CHECKING +) + +from azure.core.tracing.decorator_async import distributed_trace_async + +from .._shared.response_handlers import return_response_headers, process_storage_error +from .._generated.models import ( + StorageErrorException, + LeaseAccessConditions) +from .._serialize import get_modify_conditions +from .._lease import BlobLeaseClient as LeaseClientBase + +if TYPE_CHECKING: + from datetime import datetime + from .._generated.operations import BlobOperations, ContainerOperations + BlobClient = TypeVar("BlobClient") + ContainerClient = TypeVar("ContainerClient") + + +class BlobLeaseClient(LeaseClientBase): + """Creates a new BlobLeaseClient. + + This client provides lease operations on a BlobClient or ContainerClient. + + :ivar str id: + The ID of the lease currently being maintained. This will be `None` if no + lease has yet been acquired. + :ivar str etag: + The ETag of the lease currently being maintained. This will be `None` if no + lease has yet been acquired or modified. + :ivar ~datetime.datetime last_modified: + The last modified timestamp of the lease currently being maintained. + This will be `None` if no lease has yet been acquired or modified. + + :param client: + The client of the blob or container to lease. + :type client: ~azure.storage.blob.aio.BlobClient or + ~azure.storage.blob.aio.ContainerClient + :param str lease_id: + A string representing the lease ID of an existing lease. This value does not + need to be specified in order to acquire a new lease, or break one. + """ + + def __enter__(self): + raise TypeError("Async lease must use 'async with'.") + + def __exit__(self, *args): + self.release() + + async def __aenter__(self): + return self + + async def __aexit__(self, *args): + await self.release() + + @distributed_trace_async + async def acquire(self, lease_duration=-1, **kwargs): + # type: (int, Any) -> None + """Requests a new lease. + + If the container does not have an active lease, the Blob service creates a + lease on the container and returns a new lease ID. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = await self._client.acquire_lease( + timeout=kwargs.pop('timeout', None), + duration=lease_duration, + proposed_lease_id=self.id, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + self.etag = response.get('etag') # type: str + + @distributed_trace_async + async def renew(self, **kwargs): + # type: (Any) -> None + """Renews the lease. + + The lease can be renewed if the lease ID specified in the + lease client matches that associated with the container or blob. Note that + the lease may be renewed even if it has expired as long as the container + or blob has not been leased again since the expiration of that lease. When you + renew a lease, the lease duration clock resets. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = await self._client.renew_lease( + lease_id=self.id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace_async + async def release(self, **kwargs): + # type: (Any) -> None + """Release the lease. + + The lease may be released if the client lease id specified matches + that associated with the container or blob. Releasing the lease allows another client + to immediately acquire the lease for the container or blob as soon as the release is complete. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = await self._client.release_lease( + lease_id=self.id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace_async + async def change(self, proposed_lease_id, **kwargs): + # type: (str, Any) -> None + """Change the lease ID of an active lease. + + :param str proposed_lease_id: + Proposed lease ID, in a GUID string format. The Blob service returns 400 + (Invalid request) if the proposed lease ID is not in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = await self._client.change_lease( + lease_id=self.id, + proposed_lease_id=proposed_lease_id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace_async + async def break_lease(self, lease_break_period=None, **kwargs): + # type: (Optional[int], Any) -> int + """Break the lease, if the container or blob has an active lease. + + Once a lease is broken, it cannot be renewed. Any authorized request can break the lease; + the request is not required to specify a matching lease ID. When a lease + is broken, the lease break period is allowed to elapse, during which time + no lease operation except break and release can be performed on the container or blob. + When a lease is successfully broken, the response indicates the interval + in seconds until a new lease can be acquired. + + :param int lease_break_period: + This is the proposed duration of seconds that the lease + should continue before it is broken, between 0 and 60 seconds. This + break period is only used if it is shorter than the time remaining + on the lease. If longer, the time remaining on the lease is used. + A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break + period. If this header does not appear with a break + operation, a fixed-duration lease breaks after the remaining lease + period elapses, and an infinite lease breaks immediately. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: Approximate time remaining in the lease period, in seconds. + :rtype: int + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = await self._client.break_lease( + timeout=kwargs.pop('timeout', None), + break_period=lease_break_period, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return response.get('lease_time') # type: ignore diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_list_blobs_helper.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_list_blobs_helper.py new file mode 100644 index 00000000000..dc098465940 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_list_blobs_helper.py @@ -0,0 +1,162 @@ +# pylint: disable=too-many-lines +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from azure.core.async_paging import AsyncPageIterator, AsyncItemPaged +from .._deserialize import get_blob_properties_from_generated_code +from .._models import BlobProperties +from .._generated.models import StorageErrorException, BlobItemInternal, BlobPrefix as GenBlobPrefix +from .._shared.models import DictMixin +from .._shared.response_handlers import return_context_and_deserialized, process_storage_error + + +class BlobPropertiesPaged(AsyncPageIterator): + """An Iterable of Blob properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.models.BlobProperties) + :ivar str container: The container that the blobs are listed from. + :ivar str delimiter: A delimiting character used for hierarchy listing. + + :param callable command: Function to retrieve the next page of items. + :param str container: The container that the blobs are listed from. + :param str prefix: Filters the results to return only blobs whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str continuation_token: An opaque continuation token. + :param str delimiter: + Used to capture blobs whose names begin with the same substring up to + the appearance of the delimiter character. The delimiter may be a single + character or a string. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__( + self, command, + container=None, + prefix=None, + results_per_page=None, + continuation_token=None, + delimiter=None, + location_mode=None): + super(BlobPropertiesPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.prefix = prefix + self.marker = None + self.results_per_page = results_per_page + self.container = container + self.delimiter = delimiter + self.current_page = None + self.location_mode = location_mode + + async def _get_next_cb(self, continuation_token): + try: + return await self._command( + prefix=self.prefix, + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + async def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.prefix = self._response.prefix + self.marker = self._response.marker + self.results_per_page = self._response.max_results + self.container = self._response.container_name + self.current_page = [self._build_item(item) for item in self._response.segment.blob_items] + + return self._response.next_marker or None, self.current_page + + def _build_item(self, item): + if isinstance(item, BlobProperties): + return item + if isinstance(item, BlobItemInternal): + blob = get_blob_properties_from_generated_code(item) # pylint: disable=protected-access + blob.container = self.container + return blob + return item + + +class BlobPrefix(AsyncItemPaged, DictMixin): + """An Iterable of Blob properties. + + Returned from walk_blobs when a delimiter is used. + Can be thought of as a virtual blob directory. + + :ivar str name: The prefix, or "directory name" of the blob. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str marker: The continuation token of the current page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.models.BlobProperties) + :ivar str container: The container that the blobs are listed from. + :ivar str delimiter: A delimiting character used for hierarchy listing. + :param callable command: Function to retrieve the next page of items. + :param str prefix: Filters the results to return only blobs whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str marker: An opaque continuation token. + :param str delimiter: + Used to capture blobs whose names begin with the same substring up to + the appearance of the delimiter character. The delimiter may be a single + character or a string. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__(self, *args, **kwargs): + super(BlobPrefix, self).__init__(*args, page_iterator_class=BlobPrefixPaged, **kwargs) + self.name = kwargs.get('prefix') + self.prefix = kwargs.get('prefix') + self.results_per_page = kwargs.get('results_per_page') + self.container = kwargs.get('container') + self.delimiter = kwargs.get('delimiter') + self.location_mode = kwargs.get('location_mode') + + +class BlobPrefixPaged(BlobPropertiesPaged): + def __init__(self, *args, **kwargs): + super(BlobPrefixPaged, self).__init__(*args, **kwargs) + self.name = self.prefix + + async def _extract_data_cb(self, get_next_return): + continuation_token, _ = await super(BlobPrefixPaged, self)._extract_data_cb(get_next_return) + self.current_page = self._response.segment.blob_prefixes + self._response.segment.blob_items + self.current_page = [self._build_item(item) for item in self.current_page] + self.delimiter = self._response.delimiter + + return continuation_token, self.current_page + + def _build_item(self, item): + item = super(BlobPrefixPaged, self)._build_item(item) + if isinstance(item, GenBlobPrefix): + return BlobPrefix( + self._command, + container=self.container, + prefix=item.name, + results_per_page=self.results_per_page, + location_mode=self.location_mode) + return item diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_models.py new file mode 100644 index 00000000000..44d5d6314a2 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_models.py @@ -0,0 +1,141 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-few-public-methods, too-many-instance-attributes +# pylint: disable=super-init-not-called, too-many-lines + +from azure.core.async_paging import AsyncPageIterator + +from .._models import ContainerProperties, FilteredBlob +from .._shared.response_handlers import return_context_and_deserialized, process_storage_error + +from .._generated.models import StorageErrorException +from .._generated.models import FilterBlobItem + + +class ContainerPropertiesPaged(AsyncPageIterator): + """An Iterable of Container properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A container name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.models.ContainerProperties) + + :param callable command: Function to retrieve the next page of items. + :param str prefix: Filters the results to return only containers whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of container names to retrieve per + call. + :param str continuation_token: An opaque continuation token. + """ + def __init__(self, command, prefix=None, results_per_page=None, continuation_token=None): + super(ContainerPropertiesPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.prefix = prefix + self.marker = None + self.results_per_page = results_per_page + self.location_mode = None + self.current_page = [] + + async def _get_next_cb(self, continuation_token): + try: + return await self._command( + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + async def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.prefix = self._response.prefix + self.marker = self._response.marker + self.results_per_page = self._response.max_results + self.current_page = [self._build_item(item) for item in self._response.container_items] + + return self._response.next_marker or None, self.current_page + + @staticmethod + def _build_item(item): + return ContainerProperties._from_generated(item) # pylint: disable=protected-access + + +class FilteredBlobPaged(AsyncPageIterator): + """An Iterable of Blob properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str continuation_token: The continuation token to retrieve the next page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.BlobProperties) + :ivar str container: The container that the blobs are listed from. + + :param callable command: Function to retrieve the next page of items. + :param str container: The name of the container. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str continuation_token: An opaque continuation token. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__( + self, command, + container=None, + results_per_page=None, + continuation_token=None, + location_mode=None): + super(FilteredBlobPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.marker = continuation_token + self.results_per_page = results_per_page + self.container = container + self.current_page = None + self.location_mode = location_mode + + async def _get_next_cb(self, continuation_token): + try: + return await self._command( + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + async def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.marker = self._response.next_marker + self.current_page = [self._build_item(item) for item in self._response.blobs] + + return self._response.next_marker or None, self.current_page + + @staticmethod + def _build_item(item): + if isinstance(item, FilterBlobItem): + blob = FilteredBlob(name=item.name, container_name=item.container_name, tag_value=item.tag_value) # pylint: disable=protected-access + return blob + return item diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_upload_helpers.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_upload_helpers.py new file mode 100644 index 00000000000..3a495b5750d --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2019_12_12/aio/_upload_helpers.py @@ -0,0 +1,266 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use + +from io import SEEK_SET, UnsupportedOperation +from typing import Optional, Union, Any, TypeVar, TYPE_CHECKING # pylint: disable=unused-import + +import six +from azure.core.exceptions import ResourceModifiedError + +from .._shared.response_handlers import ( + process_storage_error, + return_response_headers) +from .._shared.uploads_async import ( + upload_data_chunks, + upload_substream_blocks, + BlockBlobChunkUploader, + PageBlobChunkUploader, + AppendBlobChunkUploader) +from .._shared.encryption import generate_blob_encryption_data, encrypt_blob +from .._generated.models import ( + StorageErrorException, + BlockLookupList, + AppendPositionAccessConditions, + ModifiedAccessConditions, +) +from .._upload_helpers import _convert_mod_error, _any_conditions + +if TYPE_CHECKING: + from datetime import datetime # pylint: disable=unused-import + BlobLeaseClient = TypeVar("BlobLeaseClient") + + +async def upload_block_blob( # pylint: disable=too-many-locals + client=None, + data=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if not overwrite and not _any_conditions(**kwargs): + kwargs['modified_access_conditions'].if_none_match = '*' + adjusted_count = length + if (encryption_options.get('key') is not None) and (adjusted_count is not None): + adjusted_count += (16 - (length % 16)) + blob_headers = kwargs.pop('blob_headers', None) + tier = kwargs.pop('standard_blob_tier', None) + blob_tags_string = kwargs.pop('blob_tags_string', None) + + # Do single put if the size is smaller than config.max_single_put_size + if adjusted_count is not None and (adjusted_count <= blob_settings.max_single_put_size): + try: + data = data.read(length) + if not isinstance(data, six.binary_type): + raise TypeError('Blob data should be of type bytes.') + except AttributeError: + pass + if encryption_options.get('key'): + encryption_data, data = encrypt_blob(data, encryption_options['key']) + headers['x-ms-meta-encryptiondata'] = encryption_data + return await client.upload( + data, + content_length=adjusted_count, + blob_http_headers=blob_headers, + headers=headers, + cls=return_response_headers, + validate_content=validate_content, + data_stream_total=adjusted_count, + upload_stream_current=0, + tier=tier.value if tier else None, + blob_tags_string=blob_tags_string, + **kwargs) + + use_original_upload_path = blob_settings.use_byte_buffer or \ + validate_content or encryption_options.get('required') or \ + blob_settings.max_block_size < blob_settings.min_large_block_upload_threshold or \ + hasattr(stream, 'seekable') and not stream.seekable() or \ + not hasattr(stream, 'seek') or not hasattr(stream, 'tell') + + if use_original_upload_path: + if encryption_options.get('key'): + cek, iv, encryption_data = generate_blob_encryption_data(encryption_options['key']) + headers['x-ms-meta-encryptiondata'] = encryption_data + encryption_options['cek'] = cek + encryption_options['vector'] = iv + block_ids = await upload_data_chunks( + service=client, + uploader_class=BlockBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + max_concurrency=max_concurrency, + stream=stream, + validate_content=validate_content, + encryption_options=encryption_options, + **kwargs + ) + else: + block_ids = await upload_substream_blocks( + service=client, + uploader_class=BlockBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + max_concurrency=max_concurrency, + stream=stream, + validate_content=validate_content, + **kwargs + ) + + block_lookup = BlockLookupList(committed=[], uncommitted=[], latest=[]) + block_lookup.latest = block_ids + return await client.commit_block_list( + block_lookup, + blob_http_headers=blob_headers, + cls=return_response_headers, + validate_content=validate_content, + headers=headers, + tier=tier.value if tier else None, + blob_tags_string=blob_tags_string, + **kwargs) + except StorageErrorException as error: + try: + process_storage_error(error) + except ResourceModifiedError as mod_error: + if not overwrite: + _convert_mod_error(mod_error) + raise + + +async def upload_page_blob( + client=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if not overwrite and not _any_conditions(**kwargs): + kwargs['modified_access_conditions'].if_none_match = '*' + if length is None or length < 0: + raise ValueError("A content length must be specified for a Page Blob.") + if length % 512 != 0: + raise ValueError("Invalid page blob size: {0}. " + "The size must be aligned to a 512-byte boundary.".format(length)) + if kwargs.get('premium_page_blob_tier'): + premium_page_blob_tier = kwargs.pop('premium_page_blob_tier') + try: + headers['x-ms-access-tier'] = premium_page_blob_tier.value + except AttributeError: + headers['x-ms-access-tier'] = premium_page_blob_tier + if encryption_options and encryption_options.get('data'): + headers['x-ms-meta-encryptiondata'] = encryption_options['data'] + blob_tags_string = kwargs.pop('blob_tags_string', None) + + response = await client.create( + content_length=0, + blob_content_length=length, + blob_sequence_number=None, + blob_http_headers=kwargs.pop('blob_headers', None), + blob_tags_string=blob_tags_string, + cls=return_response_headers, + headers=headers, + **kwargs) + if length == 0: + return response + + kwargs['modified_access_conditions'] = ModifiedAccessConditions(if_match=response['etag']) + return await upload_data_chunks( + service=client, + uploader_class=PageBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_page_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + encryption_options=encryption_options, + **kwargs) + + except StorageErrorException as error: + try: + process_storage_error(error) + except ResourceModifiedError as mod_error: + if not overwrite: + _convert_mod_error(mod_error) + raise + + +async def upload_append_blob( # pylint: disable=unused-argument + client=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if length == 0: + return {} + blob_headers = kwargs.pop('blob_headers', None) + append_conditions = AppendPositionAccessConditions( + max_size=kwargs.pop('maxsize_condition', None), + append_position=None) + blob_tags_string = kwargs.pop('blob_tags_string', None) + + try: + if overwrite: + await client.create( + content_length=0, + blob_http_headers=blob_headers, + headers=headers, + blob_tags_string=blob_tags_string, + **kwargs) + return await upload_data_chunks( + service=client, + uploader_class=AppendBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + append_position_access_conditions=append_conditions, + **kwargs) + except StorageErrorException as error: + if error.response.status_code != 404: + raise + # rewind the request body if it is a stream + if hasattr(stream, 'read'): + try: + # attempt to rewind the body to the initial position + stream.seek(0, SEEK_SET) + except UnsupportedOperation: + # if body is not seekable, then retry would not work + raise error + await client.create( + content_length=0, + blob_http_headers=blob_headers, + headers=headers, + blob_tags_string=blob_tags_string, + **kwargs) + return await upload_data_chunks( + service=client, + uploader_class=AppendBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + append_position_access_conditions=append_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/__init__.py new file mode 100644 index 00000000000..caa00401b96 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/__init__.py @@ -0,0 +1,225 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +import os + +from typing import Union, Iterable, AnyStr, IO, Any, Dict # pylint: disable=unused-import +from ._version import VERSION +from ._blob_client import BlobClient +from ._container_client import ContainerClient +from ._blob_service_client import BlobServiceClient +from ._lease import BlobLeaseClient +from ._download import StorageStreamDownloader +from ._quick_query_helper import BlobQueryReader +from ._shared_access_signature import generate_account_sas, generate_container_sas, generate_blob_sas +from ._shared.policies import ExponentialRetry, LinearRetry +from ._shared.response_handlers import PartialBatchErrorException +from ._shared.models import( + LocationMode, + ResourceTypes, + AccountSasPermissions, + StorageErrorCode, + UserDelegationKey +) +from ._generated.models import ( + RehydratePriority +) +from ._models import ( + BlobType, + BlockState, + StandardBlobTier, + PremiumPageBlobTier, + SequenceNumberAction, + PublicAccess, + BlobAnalyticsLogging, + Metrics, + RetentionPolicy, + StaticWebsite, + CorsRule, + ContainerProperties, + BlobProperties, + FilteredBlob, + LeaseProperties, + ContentSettings, + CopyProperties, + BlobBlock, + PageRange, + AccessPolicy, + ContainerSasPermissions, + BlobSasPermissions, + CustomerProvidedEncryptionKey, + ContainerEncryptionScope, + BlobQueryError, + DelimitedJsonDialect, + DelimitedTextDialect, + ObjectReplicationPolicy, + ObjectReplicationRule +) +from ._list_blobs_helper import BlobPrefix + +__version__ = VERSION + + +def upload_blob_to_url( + blob_url, # type: str + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + credential=None, # type: Any + **kwargs): + # type: (...) -> Dict[str, Any] + """Upload data to a given URL + + The data will be uploaded as a block blob. + + :param str blob_url: + The full URI to the blob. This can also include a SAS token. + :param data: + The data to upload. This can be bytes, text, an iterable or a file-like object. + :type data: bytes or str or Iterable + :param credential: + The credentials with which to authenticate. This is optional if the + blob URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword bool overwrite: + Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob_to_url will overwrite any existing data. If set to False, the + operation will fail with a ResourceExistsError. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword dict(str,str) metadata: + Name-value pairs associated with the blob as metadata. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https as https (the default) will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword str encoding: + Encoding to use if text is supplied as input. Defaults to UTF-8. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: dict(str, Any) + """ + with BlobClient.from_blob_url(blob_url, credential=credential) as client: + return client.upload_blob(data=data, blob_type=BlobType.BlockBlob, **kwargs) + + +def _download_to_stream(client, handle, **kwargs): + """Download data to specified open file-handle.""" + stream = client.download_blob(**kwargs) + stream.readinto(handle) + + +def download_blob_from_url( + blob_url, # type: str + output, # type: str + credential=None, # type: Any + **kwargs): + # type: (...) -> None + """Download the contents of a blob to a local file or stream. + + :param str blob_url: + The full URI to the blob. This can also include a SAS token. + :param output: + Where the data should be downloaded to. This could be either a file path to write to, + or an open IO handle to write to. + :type output: str or writable stream. + :param credential: + The credentials with which to authenticate. This is optional if the + blob URL already has a SAS token or the blob is public. The value can be a SAS token string, + an account shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword bool overwrite: + Whether the local file should be overwritten if it already exists. The default value is + `False` - in which case a ValueError will be raised if the file already exists. If set to + `True`, an attempt will be made to write to the existing file. If a stream handle is passed + in, this value is ignored. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :keyword int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https as https (the default) will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :rtype: None + """ + overwrite = kwargs.pop('overwrite', False) + with BlobClient.from_blob_url(blob_url, credential=credential) as client: + if hasattr(output, 'write'): + _download_to_stream(client, output, **kwargs) + else: + if not overwrite and os.path.isfile(output): + raise ValueError("The file '{}' already exists.".format(output)) + with open(output, 'wb') as file_handle: + _download_to_stream(client, file_handle, **kwargs) + + +__all__ = [ + 'upload_blob_to_url', + 'download_blob_from_url', + 'BlobServiceClient', + 'ContainerClient', + 'BlobClient', + 'BlobType', + 'BlobLeaseClient', + 'StorageErrorCode', + 'UserDelegationKey', + 'ExponentialRetry', + 'LinearRetry', + 'LocationMode', + 'BlockState', + 'StandardBlobTier', + 'PremiumPageBlobTier', + 'SequenceNumberAction', + 'PublicAccess', + 'BlobAnalyticsLogging', + 'Metrics', + 'RetentionPolicy', + 'StaticWebsite', + 'CorsRule', + 'ContainerProperties', + 'BlobProperties', + 'BlobPrefix', + 'FilteredBlob', + 'LeaseProperties', + 'ContentSettings', + 'CopyProperties', + 'BlobBlock', + 'PageRange', + 'AccessPolicy', + 'ContainerSasPermissions', + 'BlobSasPermissions', + 'ResourceTypes', + 'AccountSasPermissions', + 'StorageStreamDownloader', + 'CustomerProvidedEncryptionKey', + 'RehydratePriority', + 'generate_account_sas', + 'generate_container_sas', + 'generate_blob_sas', + 'PartialBatchErrorException', + 'ContainerEncryptionScope', + 'BlobQueryError', + 'DelimitedJsonDialect', + 'DelimitedTextDialect', + 'BlobQueryReader', + 'ObjectReplicationPolicy', + 'ObjectReplicationRule' +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_blob_client.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_blob_client.py new file mode 100644 index 00000000000..85837199921 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_blob_client.py @@ -0,0 +1,3548 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines,no-self-use + +from io import BytesIO +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, IO, Iterable, AnyStr, Dict, List, Tuple, + TYPE_CHECKING +) +try: + from urllib.parse import urlparse, quote, unquote +except ImportError: + from urlparse import urlparse # type: ignore + from urllib2 import quote, unquote # type: ignore + +import six +from azure.core.tracing.decorator import distributed_trace + +from ._shared import encode_base64 +from ._shared.base_client import StorageAccountHostsMixin, parse_connection_str, parse_query +from ._shared.encryption import generate_blob_encryption_data +from ._shared.uploads import IterStreamer +from ._shared.request_handlers import ( + add_metadata_headers, get_length, read_length, + validate_and_format_range_headers) +from ._shared.response_handlers import return_response_headers, process_storage_error, return_headers_and_deserialized +from ._generated import AzureBlobStorage, VERSION +from ._generated.models import ( # pylint: disable=unused-import + DeleteSnapshotsOptionType, + BlobHTTPHeaders, + BlockLookupList, + AppendPositionAccessConditions, + SequenceNumberAccessConditions, + StorageErrorException, + QueryRequest, + CpkInfo) +from ._serialize import ( + get_modify_conditions, + get_source_conditions, + get_cpk_scope_info, + get_api_version, + serialize_blob_tags_header, + serialize_blob_tags, + serialize_query_format, get_access_conditions +) +from ._deserialize import get_page_ranges_result, deserialize_blob_properties, deserialize_blob_stream, parse_tags +from ._quick_query_helper import BlobQueryReader +from ._upload_helpers import ( + upload_block_blob, + upload_append_blob, + upload_page_blob) +from ._models import BlobType, BlobBlock, BlobProperties, BlobQueryError +from ._download import StorageStreamDownloader +from ._lease import BlobLeaseClient + +if TYPE_CHECKING: + from datetime import datetime + from ._generated.models import BlockList + from ._models import ( # pylint: disable=unused-import + ContentSettings, + PremiumPageBlobTier, + StandardBlobTier, + SequenceNumberAction + ) + +_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION = ( + 'The require_encryption flag is set, but encryption is not supported' + ' for this method.') + + +class BlobClient(StorageAccountHostsMixin): # pylint: disable=too-many-public-methods + """A client to interact with a specific blob, although that blob may not yet exist. + + :param str account_url: + The URI to the storage account. In order to create a client given the full URI to the blob, + use the :func:`from_blob_url` classmethod. + :param container_name: The container name for the blob. + :type container_name: str + :param blob_name: The name of the blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob_name: str + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`create_snapshot`. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START create_blob_client] + :end-before: [END create_blob_client] + :language: python + :dedent: 8 + :caption: Creating the BlobClient from a URL to a public blob (no auth needed). + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START create_blob_client_sas_url] + :end-before: [END create_blob_client_sas_url] + :language: python + :dedent: 8 + :caption: Creating the BlobClient from a SAS URL to a blob. + """ + def __init__( + self, account_url, # type: str + container_name, # type: str + blob_name, # type: str + snapshot=None, # type: Optional[Union[str, Dict[str, Any]]] + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + try: + if not account_url.lower().startswith('http'): + account_url = "https://" + account_url + except AttributeError: + raise ValueError("Account URL must be a string.") + parsed_url = urlparse(account_url.rstrip('/')) + + if not (container_name and blob_name): + raise ValueError("Please specify a container name and blob name.") + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(account_url)) + + path_snapshot, sas_token = parse_query(parsed_url.query) + + self.container_name = container_name + self.blob_name = blob_name + try: + self.snapshot = snapshot.snapshot # type: ignore + except AttributeError: + try: + self.snapshot = snapshot['snapshot'] # type: ignore + except TypeError: + self.snapshot = snapshot or path_snapshot + + self._query_str, credential = self._format_query_string(sas_token, credential, snapshot=self.snapshot) + super(BlobClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) + self._client = AzureBlobStorage(self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + + def _format_url(self, hostname): + container_name = self.container_name + if isinstance(container_name, six.text_type): + container_name = container_name.encode('UTF-8') + return "{}://{}/{}/{}{}".format( + self.scheme, + hostname, + quote(container_name), + quote(self.blob_name, safe='~/'), + self._query_str) + + def _encode_source_url(self, source_url): + parsed_source_url = urlparse(source_url) + source_scheme = parsed_source_url.scheme + source_hostname = parsed_source_url.netloc.rstrip('/') + source_path = unquote(parsed_source_url.path) + source_query = parsed_source_url.query + return "{}://{}{}?{}".format( + source_scheme, + source_hostname, + quote(source_path, safe='~/'), + source_query + ) + + @classmethod + def from_blob_url(cls, blob_url, credential=None, snapshot=None, **kwargs): + # type: (str, Optional[Any], Optional[Union[str, Dict[str, Any]]], Any) -> BlobClient + """Create BlobClient from a blob url. This doesn't support customized blob url with '/' in blob name. + + :param str blob_url: + The full endpoint URL to the Blob, including SAS token and snapshot if used. This could be + either the primary endpoint, or the secondary endpoint depending on the current `location_mode`. + :type blob_url: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`create_snapshot`. If specified, this will override + the snapshot in the url. + :returns: A Blob client. + :rtype: ~azure.storage.blob.BlobClient + """ + try: + if not blob_url.lower().startswith('http'): + blob_url = "https://" + blob_url + except AttributeError: + raise ValueError("Blob URL must be a string.") + parsed_url = urlparse(blob_url.rstrip('/')) + + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(blob_url)) + + account_path = "" + if ".core." in parsed_url.netloc: + # .core. is indicating non-customized url. Blob name with directory info can also be parsed. + path_blob = parsed_url.path.lstrip('/').split('/', 1) + elif "localhost" in parsed_url.netloc or "127.0.0.1" in parsed_url.netloc: + path_blob = parsed_url.path.lstrip('/').split('/', 2) + account_path += path_blob[0] + else: + # for customized url. blob name that has directory info cannot be parsed. + path_blob = parsed_url.path.lstrip('/').split('/') + if len(path_blob) > 2: + account_path = "/" + "/".join(path_blob[:-2]) + account_url = "{}://{}{}?{}".format( + parsed_url.scheme, + parsed_url.netloc.rstrip('/'), + account_path, + parsed_url.query) + container_name, blob_name = unquote(path_blob[-2]), unquote(path_blob[-1]) + if not container_name or not blob_name: + raise ValueError("Invalid URL. Provide a blob_url with a valid blob and container name.") + + path_snapshot, _ = parse_query(parsed_url.query) + if snapshot: + try: + path_snapshot = snapshot.snapshot # type: ignore + except AttributeError: + try: + path_snapshot = snapshot['snapshot'] # type: ignore + except TypeError: + path_snapshot = snapshot + + return cls( + account_url, container_name=container_name, blob_name=blob_name, + snapshot=path_snapshot, credential=credential, **kwargs + ) + + @classmethod + def from_connection_string( + cls, conn_str, # type: str + container_name, # type: str + blob_name, # type: str + snapshot=None, # type: Optional[str] + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): # type: (...) -> BlobClient + """Create BlobClient from a Connection String. + + :param str conn_str: + A connection string to an Azure Storage account. + :param container_name: The container name for the blob. + :type container_name: str + :param blob_name: The name of the blob with which to interact. + :type blob_name: str + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`create_snapshot`. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :returns: A Blob client. + :rtype: ~azure.storage.blob.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START auth_from_connection_string_blob] + :end-before: [END auth_from_connection_string_blob] + :language: python + :dedent: 8 + :caption: Creating the BlobClient from a connection string. + """ + account_url, secondary, credential = parse_connection_str(conn_str, credential, 'blob') + if 'secondary_hostname' not in kwargs: + kwargs['secondary_hostname'] = secondary + return cls( + account_url, container_name=container_name, blob_name=blob_name, + snapshot=snapshot, credential=credential, **kwargs + ) + + @distributed_trace + def get_account_information(self, **kwargs): + # type: (**Any) -> Dict[str, str] + """Gets information related to the storage account in which the blob resides. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + """ + try: + return self._client.blob.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _upload_blob_options( # pylint:disable=too-many-statements + self, data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + blob_type=BlobType.BlockBlob, # type: Union[str, BlobType] + length=None, # type: Optional[int] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption and not self.key_encryption_key: + raise ValueError("Encryption required but no key was provided.") + encryption_options = { + 'required': self.require_encryption, + 'key': self.key_encryption_key, + 'resolver': self.key_resolver_function, + } + if self.key_encryption_key is not None: + cek, iv, encryption_data = generate_blob_encryption_data(self.key_encryption_key) + encryption_options['cek'] = cek + encryption_options['vector'] = iv + encryption_options['data'] = encryption_data + + encoding = kwargs.pop('encoding', 'UTF-8') + if isinstance(data, six.text_type): + data = data.encode(encoding) # type: ignore + if length is None: + length = get_length(data) + if isinstance(data, bytes): + data = data[:length] + + if isinstance(data, bytes): + stream = BytesIO(data) + elif hasattr(data, 'read'): + stream = data + elif hasattr(data, '__iter__'): + stream = IterStreamer(data, encoding=encoding) + else: + raise TypeError("Unsupported data type: {}".format(type(data))) + + validate_content = kwargs.pop('validate_content', False) + content_settings = kwargs.pop('content_settings', None) + overwrite = kwargs.pop('overwrite', False) + max_concurrency = kwargs.pop('max_concurrency', 1) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + kwargs['cpk_info'] = cpk_info + + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + kwargs['lease_access_conditions'] = get_access_conditions(kwargs.pop('lease', None)) + kwargs['modified_access_conditions'] = get_modify_conditions(kwargs) + kwargs['cpk_scope_info'] = get_cpk_scope_info(kwargs) + if content_settings: + kwargs['blob_headers'] = BlobHTTPHeaders( + blob_cache_control=content_settings.cache_control, + blob_content_type=content_settings.content_type, + blob_content_md5=bytearray(content_settings.content_md5) if content_settings.content_md5 else None, + blob_content_encoding=content_settings.content_encoding, + blob_content_language=content_settings.content_language, + blob_content_disposition=content_settings.content_disposition + ) + kwargs['blob_tags_string'] = serialize_blob_tags_header(kwargs.pop('tags', None)) + kwargs['stream'] = stream + kwargs['length'] = length + kwargs['overwrite'] = overwrite + kwargs['headers'] = headers + kwargs['validate_content'] = validate_content + kwargs['blob_settings'] = self._config + kwargs['max_concurrency'] = max_concurrency + kwargs['encryption_options'] = encryption_options + if blob_type == BlobType.BlockBlob: + kwargs['client'] = self._client.block_blob + kwargs['data'] = data + elif blob_type == BlobType.PageBlob: + kwargs['client'] = self._client.page_blob + elif blob_type == BlobType.AppendBlob: + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + kwargs['client'] = self._client.append_blob + else: + raise ValueError("Unsupported BlobType: {}".format(blob_type)) + return kwargs + + @distributed_trace + def upload_blob( # pylint: disable=too-many-locals + self, data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + blob_type=BlobType.BlockBlob, # type: Union[str, BlobType] + length=None, # type: Optional[int] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Any + """Creates a new blob from a data source with automatic chunking. + + :param data: The blob data to upload. + :param ~azure.storage.blob.BlobType blob_type: The type of the blob. This can be + either BlockBlob, PageBlob or AppendBlob. The default value is BlockBlob. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword bool overwrite: Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob will overwrite the existing data. If set to False, the + operation will fail with ResourceExistsError. The exception to the above is with Append + blob types: if set to False and the data already exists, an error will not be raised + and the data will be appended to the existing blob. If set overwrite=True, then the existing + append blob will be deleted, and a new one created. Defaults to False. + :keyword ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. If specified, upload_blob only succeeds if the + blob's lease is active and matches this ID. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int max_concurrency: + Maximum number of parallel connections to use when the blob size exceeds + 64MB. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world.py + :start-after: [START upload_a_blob] + :end-before: [END upload_a_blob] + :language: python + :dedent: 12 + :caption: Upload a blob to the container. + """ + options = self._upload_blob_options( + data, + blob_type=blob_type, + length=length, + metadata=metadata, + **kwargs) + if blob_type == BlobType.BlockBlob: + return upload_block_blob(**options) + if blob_type == BlobType.PageBlob: + return upload_page_blob(**options) + return upload_append_blob(**options) + + def _download_blob_options(self, offset=None, length=None, **kwargs): + # type: (Optional[int], Optional[int], **Any) -> Dict[str, Any] + if self.require_encryption and not self.key_encryption_key: + raise ValueError("Encryption required but no key was provided.") + if length is not None and offset is None: + raise ValueError("Offset value must not be None if length is set.") + if length is not None: + length = offset + length - 1 # Service actually uses an end-range inclusive index + + validate_content = kwargs.pop('validate_content', False) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'clients': self._client, + 'config': self._config, + 'start_range': offset, + 'end_range': length, + 'version_id': kwargs.pop('version_id', None), + 'validate_content': validate_content, + 'encryption_options': { + 'required': self.require_encryption, + 'key': self.key_encryption_key, + 'resolver': self.key_resolver_function}, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_info': cpk_info, + 'cls': deserialize_blob_stream, + 'max_concurrency':kwargs.pop('max_concurrency', 1), + 'encoding': kwargs.pop('encoding', None), + 'timeout': kwargs.pop('timeout', None), + 'name': self.blob_name, + 'container': self.container_name} + options.update(kwargs) + return options + + @distributed_trace + def download_blob(self, offset=None, length=None, **kwargs): + # type: (Optional[int], Optional[int], **Any) -> StorageStreamDownloader + """Downloads a blob to the StorageStreamDownloader. The readall() method must + be used to read all the content or readinto() must be used to download the blob into + a stream. + + :param int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to download. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. If specified, download_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword str encoding: + Encoding to decode the downloaded bytes. Default is None, i.e. no decoding. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: A streaming object (StorageStreamDownloader) + :rtype: ~azure.storage.blob.StorageStreamDownloader + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world.py + :start-after: [START download_a_blob] + :end-before: [END download_a_blob] + :language: python + :dedent: 12 + :caption: Download a blob. + """ + options = self._download_blob_options( + offset=offset, + length=length, + **kwargs) + return StorageStreamDownloader(**options) + + def _quick_query_options(self, query_expression, + **kwargs): + # type: (str, **Any) -> Dict[str, Any] + delimiter = '\n' + input_format = kwargs.pop('blob_format', None) + if input_format: + try: + delimiter = input_format.lineterminator + except AttributeError: + delimiter = input_format.delimiter + output_format = kwargs.pop('output_format', None) + if output_format: + try: + delimiter = output_format.lineterminator + except AttributeError: + delimiter = output_format.delimiter + else: + output_format = input_format + query_request = QueryRequest( + expression=query_expression, + input_serialization=serialize_query_format(input_format), + output_serialization=serialize_query_format(output_format) + ) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo( + encryption_key=cpk.key_value, + encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm + ) + options = { + 'query_request': query_request, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_info': cpk_info, + 'snapshot': self.snapshot, + 'timeout': kwargs.pop('timeout', None), + 'cls': return_headers_and_deserialized, + } + options.update(kwargs) + return options, delimiter + + @distributed_trace + def query_blob(self, query_expression, **kwargs): + # type: (str, **Any) -> BlobQueryReader + """Enables users to select/project on blob/or blob snapshot data by providing simple query expressions. + This operations returns a BlobQueryReader, users need to use readall() or readinto() to get query data. + + :param str query_expression: + Required. a query statement. + :keyword Callable[Exception] on_error: + A function to be called on any processing errors returned by the service. + :keyword blob_format: + Optional. Defines the serialization of the data currently stored in the blob. The default is to + treat the blob data as CSV data formatted in the default dialect. This can be overridden with + a custom DelimitedTextDialect, or alternatively a DelimitedJsonDialect. + :paramtype blob_format: ~azure.storage.blob.DelimitedTextDialect or ~azure.storage.blob.DelimitedJsonDialect + :keyword output_format: + Optional. Defines the output serialization for the data stream. By default the data will be returned + as it is represented in the blob. By providing an output format, the blob data will be reformatted + according to that profile. This value can be a DelimitedTextDialect or a DelimitedJsonDialect. + :paramtype output_format: ~azure.storage.blob.DelimitedTextDialect or ~azure.storage.blob.DelimitedJsonDialect + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A streaming object (BlobQueryReader) + :rtype: ~azure.storage.blob.BlobQueryReader + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_query.py + :start-after: [START query] + :end-before: [END query] + :language: python + :dedent: 4 + :caption: select/project on blob/or blob snapshot data by providing simple query expressions. + """ + errors = kwargs.pop("on_error", None) + error_cls = kwargs.pop("error_cls", BlobQueryError) + encoding = kwargs.pop("encoding", None) + options, delimiter = self._quick_query_options(query_expression, **kwargs) + try: + headers, raw_response_body = self._client.blob.query(**options) + except StorageErrorException as error: + process_storage_error(error) + return BlobQueryReader( + name=self.blob_name, + container=self.container_name, + errors=errors, + record_delimiter=delimiter, + encoding=encoding, + headers=headers, + response=raw_response_body, + error_cls=error_cls) + + @staticmethod + def _generic_delete_blob_options(delete_snapshots=False, **kwargs): + # type: (bool, **Any) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if delete_snapshots: + delete_snapshots = DeleteSnapshotsOptionType(delete_snapshots) + options = { + 'timeout': kwargs.pop('timeout', None), + 'snapshot': kwargs.pop('snapshot', None), # this is added for delete_blobs + 'delete_snapshots': delete_snapshots or None, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions} + options.update(kwargs) + return options + + def _delete_blob_options(self, delete_snapshots=False, **kwargs): + # type: (bool, **Any) -> Dict[str, Any] + if self.snapshot and delete_snapshots: + raise ValueError("The delete_snapshots option cannot be used with a specific snapshot.") + options = self._generic_delete_blob_options(delete_snapshots, **kwargs) + options['snapshot'] = self.snapshot + options['version_id'] = kwargs.pop('version_id', None) + return options + + @distributed_trace + def delete_blob(self, delete_snapshots=False, **kwargs): + # type: (bool, **Any) -> None + """Marks the specified blob for deletion. + + The blob is later deleted during garbage collection. + Note that in order to delete a blob, you must delete all of its + snapshots. You can delete both at the same time with the delete_blob() + operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blob + and retains the blob for a specified number of days. + After the specified number of days, the blob's data is removed from the service during garbage collection. + Soft deleted blob is accessible through :func:`~ContainerClient.list_blobs()` specifying `include=['deleted']` + option. Soft-deleted blob can be restored using :func:`undelete` operation. + + :param str delete_snapshots: + Required if the blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to delete. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword lease: + Required if the blob has an active lease. If specified, delete_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world.py + :start-after: [START delete_blob] + :end-before: [END delete_blob] + :language: python + :dedent: 12 + :caption: Delete a blob. + """ + options = self._delete_blob_options(delete_snapshots=delete_snapshots, **kwargs) + try: + self._client.blob.delete(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def undelete_blob(self, **kwargs): + # type: (**Any) -> None + """Restores soft-deleted blobs or snapshots. + + Operation will only be successful if used within the specified number of days + set in the delete retention policy. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START undelete_blob] + :end-before: [END undelete_blob] + :language: python + :dedent: 8 + :caption: Undeleting a blob. + """ + try: + self._client.blob.undelete(timeout=kwargs.pop('timeout', None), **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def get_blob_properties(self, **kwargs): + # type: (**Any) -> BlobProperties + """Returns all user-defined metadata, standard HTTP properties, and + system properties for the blob. It does not return the content of the blob. + + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to get properties. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: BlobProperties + :rtype: ~azure.storage.blob.BlobProperties + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START get_blob_properties] + :end-before: [END get_blob_properties] + :language: python + :dedent: 8 + :caption: Getting the properties for a blob. + """ + # TODO: extract this out as _get_blob_properties_options + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + try: + blob_props = self._client.blob.get_properties( + timeout=kwargs.pop('timeout', None), + version_id=kwargs.pop('version_id', None), + snapshot=self.snapshot, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=deserialize_blob_properties, + cpk_info=cpk_info, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + blob_props.name = self.blob_name + blob_props.container = self.container_name + return blob_props # type: ignore + + def _set_http_headers_options(self, content_settings=None, **kwargs): + # type: (Optional[ContentSettings], **Any) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + blob_headers = None + if content_settings: + blob_headers = BlobHTTPHeaders( + blob_cache_control=content_settings.cache_control, + blob_content_type=content_settings.content_type, + blob_content_md5=bytearray(content_settings.content_md5) if content_settings.content_md5 else None, + blob_content_encoding=content_settings.content_encoding, + blob_content_language=content_settings.content_language, + blob_content_disposition=content_settings.content_disposition + ) + options = { + 'timeout': kwargs.pop('timeout', None), + 'blob_http_headers': blob_headers, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def set_http_headers(self, content_settings=None, **kwargs): + # type: (Optional[ContentSettings], **Any) -> None + """Sets system properties on the blob. + + If one property is set for the content_settings, all properties will be overridden. + + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: Dict[str, Any] + """ + options = self._set_http_headers_options(content_settings=content_settings, **kwargs) + try: + return self._client.blob.set_http_headers(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _set_blob_metadata_options(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Any] + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + options = { + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers, + 'headers': headers} + options.update(kwargs) + return options + + @distributed_trace + def set_blob_metadata(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Union[str, datetime]] + """Sets user-defined metadata for the blob as one or more name-value pairs. + + :param metadata: + Dict containing name and value pairs. Each call to this operation + replaces all existing metadata attached to the blob. To remove all + metadata from the blob, call this operation with no metadata headers. + :type metadata: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + """ + options = self._set_blob_metadata_options(metadata=metadata, **kwargs) + try: + return self._client.blob.set_metadata(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _create_page_blob_options( # type: ignore + self, size, # type: int + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + premium_page_blob_tier=None, # type: Optional[Union[str, PremiumPageBlobTier]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + blob_headers = None + if content_settings: + blob_headers = BlobHTTPHeaders( + blob_cache_control=content_settings.cache_control, + blob_content_type=content_settings.content_type, + blob_content_md5=bytearray(content_settings.content_md5) if content_settings.content_md5 else None, + blob_content_encoding=content_settings.content_encoding, + blob_content_language=content_settings.content_language, + blob_content_disposition=content_settings.content_disposition + ) + + sequence_number = kwargs.pop('sequence_number', None) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + if premium_page_blob_tier: + try: + headers['x-ms-access-tier'] = premium_page_blob_tier.value # type: ignore + except AttributeError: + headers['x-ms-access-tier'] = premium_page_blob_tier # type: ignore + + blob_tags_string = serialize_blob_tags_header(kwargs.pop('tags', None)) + + options = { + 'content_length': 0, + 'blob_content_length': size, + 'blob_sequence_number': sequence_number, + 'blob_http_headers': blob_headers, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'blob_tags_string': blob_tags_string, + 'cls': return_response_headers, + 'headers': headers} + options.update(kwargs) + return options + + @distributed_trace + def create_page_blob( # type: ignore + self, size, # type: int + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + premium_page_blob_tier=None, # type: Optional[Union[str, PremiumPageBlobTier]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """Creates a new Page Blob of the specified size. + + :param int size: + This specifies the maximum size for the page blob, up to 1 TB. + The page blob size must be aligned to a 512-byte boundary. + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :param ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword int sequence_number: + Only for Page blobs. The sequence number is a user-controlled value that you can use to + track requests. The value of the sequence number must be between 0 + and 2^63 - 1.The default value is 0. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict[str, Any] + """ + options = self._create_page_blob_options( + size, + content_settings=content_settings, + metadata=metadata, + premium_page_blob_tier=premium_page_blob_tier, + **kwargs) + try: + return self._client.page_blob.create(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _create_append_blob_options(self, content_settings=None, metadata=None, **kwargs): + # type: (Optional[ContentSettings], Optional[Dict[str, str]], **Any) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + blob_headers = None + if content_settings: + blob_headers = BlobHTTPHeaders( + blob_cache_control=content_settings.cache_control, + blob_content_type=content_settings.content_type, + blob_content_md5=bytearray(content_settings.content_md5) if content_settings.content_md5 else None, + blob_content_encoding=content_settings.content_encoding, + blob_content_language=content_settings.content_language, + blob_content_disposition=content_settings.content_disposition + ) + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + blob_tags_string = serialize_blob_tags_header(kwargs.pop('tags', None)) + + options = { + 'content_length': 0, + 'blob_http_headers': blob_headers, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'blob_tags_string': blob_tags_string, + 'cls': return_response_headers, + 'headers': headers} + options.update(kwargs) + return options + + @distributed_trace + def create_append_blob(self, content_settings=None, metadata=None, **kwargs): + # type: (Optional[ContentSettings], Optional[Dict[str, str]], **Any) -> Dict[str, Union[str, datetime]] + """Creates a new Append Blob. + + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict[str, Any] + """ + options = self._create_append_blob_options( + content_settings=content_settings, + metadata=metadata, + **kwargs) + try: + return self._client.append_blob.create(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _create_snapshot_options(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Any] + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers, + 'headers': headers} + options.update(kwargs) + return options + + @distributed_trace + def create_snapshot(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Union[str, datetime]] + """Creates a snapshot of the blob. + + A snapshot is a read-only version of a blob that's taken at a point in time. + It can be read, copied, or deleted, but not modified. Snapshots provide a way + to back up a blob as it appears at a moment in time. + + A snapshot of a blob has the same name as the base blob from which the snapshot + is taken, with a DateTime value appended to indicate the time at which the + snapshot was taken. + + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on destination blob with a matching value. + + .. versionadded:: 12.4.0 + + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Snapshot ID, Etag, and last modified). + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START create_blob_snapshot] + :end-before: [END create_blob_snapshot] + :language: python + :dedent: 8 + :caption: Create a snapshot of the blob. + """ + options = self._create_snapshot_options(metadata=metadata, **kwargs) + try: + return self._client.blob.create_snapshot(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _start_copy_from_url_options(self, source_url, metadata=None, incremental_copy=False, **kwargs): + # type: (str, Optional[Dict[str, str]], bool, **Any) -> Dict[str, Any] + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + if 'source_lease' in kwargs: + source_lease = kwargs.pop('source_lease') + try: + headers['x-ms-source-lease-id'] = source_lease.id # type: str + except AttributeError: + headers['x-ms-source-lease-id'] = source_lease + + tier = kwargs.pop('premium_page_blob_tier', None) or kwargs.pop('standard_blob_tier', None) + + if kwargs.get('requires_sync'): + headers['x-ms-requires-sync'] = str(kwargs.pop('requires_sync')) + + timeout = kwargs.pop('timeout', None) + dest_mod_conditions = get_modify_conditions(kwargs) + blob_tags_string = serialize_blob_tags_header(kwargs.pop('tags', None)) + + options = { + 'copy_source': source_url, + 'seal_blob': kwargs.pop('seal_destination_blob', None), + 'timeout': timeout, + 'modified_access_conditions': dest_mod_conditions, + 'blob_tags_string': blob_tags_string, + 'headers': headers, + 'cls': return_response_headers, + } + if not incremental_copy: + source_mod_conditions = get_source_conditions(kwargs) + dest_access_conditions = get_access_conditions(kwargs.pop('destination_lease', None)) + options['source_modified_access_conditions'] = source_mod_conditions + options['lease_access_conditions'] = dest_access_conditions + options['tier'] = tier.value if tier else None + options.update(kwargs) + return options + + @distributed_trace + def start_copy_from_url(self, source_url, metadata=None, incremental_copy=False, **kwargs): + # type: (str, Optional[Dict[str, str]], bool, **Any) -> Dict[str, Union[str, datetime]] + """Copies a blob asynchronously. + + This operation returns a copy operation + object that can be used to wait on the completion of the operation, + as well as check status or abort the copy operation. + The Blob service copies blobs on a best-effort basis. + + The source blob for a copy operation may be a block blob, an append blob, + or a page blob. If the destination blob already exists, it must be of the + same blob type as the source blob. Any existing destination blob will be + overwritten. The destination blob cannot be modified while a copy operation + is in progress. + + When copying from a page blob, the Blob service creates a destination page + blob of the source blob's length, initially containing all zeroes. Then + the source page ranges are enumerated, and non-empty ranges are copied. + + For a block blob or an append blob, the Blob service creates a committed + blob of zero length before returning from this operation. When copying + from a block blob, all committed blocks and their block IDs are copied. + Uncommitted blocks are not copied. At the end of the copy operation, the + destination blob will have the same committed block count as the source. + + When copying from an append blob, all committed blocks are copied. At the + end of the copy operation, the destination blob will have the same committed + block count as the source. + + For all blob types, you can call status() on the returned polling object + to check the status of the copy operation, or wait() to block until the + operation is complete. The final blob will be committed when the copy completes. + + :param str source_url: + A URL of up to 2 KB in length that specifies a file or blob. + The value should be URL-encoded as it would appear in a request URI. + If the source is in another account, the source must either be public + or must be authenticated via a shared access signature. If the source + is public, no authentication is required. + Examples: + https://myaccount.blob.core.windows.net/mycontainer/myblob + + https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot= + + https://otheraccount.blob.core.windows.net/mycontainer/myblob?sastoken + :param metadata: + Name-value pairs associated with the blob as metadata. If no name-value + pairs are specified, the operation will copy the metadata from the + source blob or file to the destination blob. If one or more name-value + pairs are specified, the destination blob is created with the specified + metadata, and metadata is not copied from the source blob or file. + :type metadata: dict(str, str) + :param bool incremental_copy: + Copies the snapshot of the source page blob to a destination page blob. + The snapshot is copied such that only the differential changes between + the previously copied snapshot are transferred to the destination. + The copied snapshots are complete copies of the original snapshot and + can be read or copied from as usual. Defaults to False. + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only if the source + blob has been modified since the specified date/time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only if the source blob + has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only + if the destination blob has been modified since the specified date/time. + If the destination blob has not been modified, the Blob service returns + status code 412 (Precondition Failed). + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only + if the destination blob has not been modified since the specified + date/time. If the destination blob has been modified, the Blob service + returns status code 412 (Precondition Failed). + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword destination_lease: + The lease ID specified for this header must match the lease ID of the + destination blob. If the request does not include the lease ID or it is not + valid, the operation fails with status code 412 (Precondition Failed). + :paramtype destination_lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword source_lease: + Specify this to perform the Copy Blob operation only if + the lease ID given matches the active lease ID of the source blob. + :paramtype source_lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword bool seal_destination_blob: + Seal the destination append blob. This operation is only for append blob. + + .. versionadded:: 12.4.0 + + :keyword bool requires_sync: + Enforces that the service will not return a response until the copy is complete. + :returns: A dictionary of copy properties (etag, last_modified, copy_id, copy_status). + :rtype: dict[str, str or ~datetime.datetime] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START copy_blob_from_url] + :end-before: [END copy_blob_from_url] + :language: python + :dedent: 12 + :caption: Copy a blob from a URL. + """ + options = self._start_copy_from_url_options( + source_url=self._encode_source_url(source_url), + metadata=metadata, + incremental_copy=incremental_copy, + **kwargs) + try: + if incremental_copy: + return self._client.page_blob.copy_incremental(**options) + return self._client.blob.start_copy_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + def _abort_copy_options(self, copy_id, **kwargs): + # type: (Union[str, Dict[str, Any], BlobProperties], **Any) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + try: + copy_id = copy_id.copy.id + except AttributeError: + try: + copy_id = copy_id['copy_id'] + except TypeError: + pass + options = { + 'copy_id': copy_id, + 'lease_access_conditions': access_conditions, + 'timeout': kwargs.pop('timeout', None)} + options.update(kwargs) + return options + + @distributed_trace + def abort_copy(self, copy_id, **kwargs): + # type: (Union[str, Dict[str, Any], BlobProperties], **Any) -> None + """Abort an ongoing copy operation. + + This will leave a destination blob with zero length and full metadata. + This will raise an error if the copy operation has already ended. + + :param copy_id: + The copy operation to abort. This can be either an ID string, or an + instance of BlobProperties. + :type copy_id: str or ~azure.storage.blob.BlobProperties + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START abort_copy_blob_from_url] + :end-before: [END abort_copy_blob_from_url] + :language: python + :dedent: 12 + :caption: Abort copying a blob from URL. + """ + options = self._abort_copy_options(copy_id, **kwargs) + try: + self._client.blob.abort_copy_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def acquire_lease(self, lease_duration=-1, lease_id=None, **kwargs): + # type: (int, Optional[str], **Any) -> BlobLeaseClient + """Requests a new lease. + + If the blob does not have an active lease, the Blob + Service creates a lease on the blob and returns a new lease. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :param str lease_id: + Proposed lease ID, in a GUID string format. The Blob Service + returns 400 (Invalid request) if the proposed lease ID is not + in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A BlobLeaseClient object. + :rtype: ~azure.storage.blob.BlobLeaseClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START acquire_lease_on_blob] + :end-before: [END acquire_lease_on_blob] + :language: python + :dedent: 8 + :caption: Acquiring a lease on a blob. + """ + lease = BlobLeaseClient(self, lease_id=lease_id) # type: ignore + lease.acquire(lease_duration=lease_duration, **kwargs) + return lease + + @distributed_trace + def set_standard_blob_tier(self, standard_blob_tier, **kwargs): + # type: (Union[str, StandardBlobTier], Any) -> None + """This operation sets the tier on a block blob. + + A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param standard_blob_tier: + Indicates the tier to be set on the blob. Options include 'Hot', 'Cool', + 'Archive'. The hot tier is optimized for storing data that is accessed + frequently. The cool storage tier is optimized for storing data that + is infrequently accessed and stored for at least a month. The archive + tier is optimized for storing data that is rarely accessed and stored + for at least six months with flexible latency requirements. + :type standard_blob_tier: str or ~azure.storage.blob.StandardBlobTier + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to download. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :rtype: None + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if standard_blob_tier is None: + raise ValueError("A StandardBlobTier must be specified") + if self.snapshot and kwargs.get('version_id'): + raise ValueError("Snapshot and version_id cannot be set at the same time") + try: + self._client.blob.set_tier( + tier=standard_blob_tier, + snapshot=self.snapshot, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + lease_access_conditions=access_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + def _stage_block_options( + self, block_id, # type: str + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + block_id = encode_base64(str(block_id)) + if isinstance(data, six.text_type): + data = data.encode(kwargs.pop('encoding', 'UTF-8')) # type: ignore + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + if length is None: + length = get_length(data) + if length is None: + length, data = read_length(data) + if isinstance(data, bytes): + data = data[:length] + + validate_content = kwargs.pop('validate_content', False) + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'block_id': block_id, + 'content_length': length, + 'body': data, + 'transactional_content_md5': None, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'validate_content': validate_content, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers, + } + options.update(kwargs) + return options + + @distributed_trace + def stage_block( + self, block_id, # type: str + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Any] + """Creates a new block to be committed as part of a blob. + + :param str block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the block_id parameter must be the same size for each block. + :param data: The blob data. + :param int length: Size of the block. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword str encoding: + Defaults to UTF-8. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob property dict. + :rtype: dict[str, Any] + """ + options = self._stage_block_options( + block_id, + data, + length=length, + **kwargs) + try: + return self._client.block_blob.stage_block(**options) + except StorageErrorException as error: + process_storage_error(error) + + def _stage_block_from_url_options( + self, block_id, # type: str + source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + source_content_md5=None, # type: Optional[Union[bytes, bytearray]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if source_length is not None and source_offset is None: + raise ValueError("Source offset value must not be None if length is set.") + if source_length is not None: + source_length = source_offset + source_length - 1 + block_id = encode_base64(str(block_id)) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + range_header = None + if source_offset is not None: + range_header, _ = validate_and_format_range_headers(source_offset, source_length) + + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + options = { + 'block_id': block_id, + 'content_length': 0, + 'source_url': source_url, + 'source_range': range_header, + 'source_content_md5': bytearray(source_content_md5) if source_content_md5 else None, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers, + } + options.update(kwargs) + return options + + @distributed_trace + def stage_block_from_url( + self, block_id, # type: str + source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + source_content_md5=None, # type: Optional[Union[bytes, bytearray]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + """Creates a new block to be committed as part of a blob where + the contents are read from a URL. + + :param str block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the block_id parameter must be the same size for each block. + :param str source_url: The URL. + :param int source_offset: + Start of byte range to use for the block. + Must be set if source length is provided. + :param int source_length: The size of the block in bytes. + :param bytearray source_content_md5: + Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob property dict. + :rtype: dict[str, Any] + """ + options = self._stage_block_from_url_options( + block_id, + source_url=self._encode_source_url(source_url), + source_offset=source_offset, + source_length=source_length, + source_content_md5=source_content_md5, + **kwargs) + try: + return self._client.block_blob.stage_block_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + def _get_block_list_result(self, blocks): + # type: (BlockList) -> Tuple[List[BlobBlock], List[BlobBlock]] + committed = [] # type: List + uncommitted = [] # type: List + if blocks.committed_blocks: + committed = [BlobBlock._from_generated(b) for b in blocks.committed_blocks] # pylint: disable=protected-access + if blocks.uncommitted_blocks: + uncommitted = [BlobBlock._from_generated(b) for b in blocks.uncommitted_blocks] # pylint: disable=protected-access + return committed, uncommitted + + @distributed_trace + def get_block_list(self, block_list_type="committed", **kwargs): + # type: (Optional[str], **Any) -> Tuple[List[BlobBlock], List[BlobBlock]] + """The Get Block List operation retrieves the list of blocks that have + been uploaded as part of a block blob. + + :param str block_list_type: + Specifies whether to return the list of committed + blocks, the list of uncommitted blocks, or both lists together. + Possible values include: 'committed', 'uncommitted', 'all' + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on destination blob with a matching value. + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A tuple of two lists - committed and uncommitted blocks + :rtype: tuple(list(~azure.storage.blob.BlobBlock), list(~azure.storage.blob.BlobBlock)) + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + try: + blocks = self._client.block_blob.get_block_list( + list_type=block_list_type, + snapshot=self.snapshot, + timeout=kwargs.pop('timeout', None), + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return self._get_block_list_result(blocks) + + def _commit_block_list_options( # type: ignore + self, block_list, # type: List[BlobBlock] + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + block_lookup = BlockLookupList(committed=[], uncommitted=[], latest=[]) + for block in block_list: + try: + if block.state.value == 'committed': + block_lookup.committed.append(encode_base64(str(block.id))) + elif block.state.value == 'uncommitted': + block_lookup.uncommitted.append(encode_base64(str(block.id))) + else: + block_lookup.latest.append(encode_base64(str(block.id))) + except AttributeError: + block_lookup.latest.append(encode_base64(str(block))) + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + blob_headers = None + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if content_settings: + blob_headers = BlobHTTPHeaders( + blob_cache_control=content_settings.cache_control, + blob_content_type=content_settings.content_type, + blob_content_md5=bytearray(content_settings.content_md5) if content_settings.content_md5 else None, + blob_content_encoding=content_settings.content_encoding, + blob_content_language=content_settings.content_language, + blob_content_disposition=content_settings.content_disposition + ) + + validate_content = kwargs.pop('validate_content', False) + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + tier = kwargs.pop('standard_blob_tier', None) + blob_tags_string = serialize_blob_tags_header(kwargs.pop('tags', None)) + + options = { + 'blocks': block_lookup, + 'blob_http_headers': blob_headers, + 'lease_access_conditions': access_conditions, + 'timeout': kwargs.pop('timeout', None), + 'modified_access_conditions': mod_conditions, + 'cls': return_response_headers, + 'validate_content': validate_content, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'tier': tier.value if tier else None, + 'blob_tags_string': blob_tags_string, + 'headers': headers + } + options.update(kwargs) + return options + + @distributed_trace + def commit_block_list( # type: ignore + self, block_list, # type: List[BlobBlock] + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """The Commit Block List operation writes a blob by specifying the list of + block IDs that make up the blob. + + :param list block_list: + List of Blockblobs. + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict[str, str] + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword bool validate_content: + If true, calculates an MD5 hash of the page content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on destination blob with a matching value. + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._commit_block_list_options( + block_list, + content_settings=content_settings, + metadata=metadata, + **kwargs) + try: + return self._client.block_blob.commit_block_list(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def set_premium_page_blob_tier(self, premium_page_blob_tier, **kwargs): + # type: (Union[str, PremiumPageBlobTier], **Any) -> None + """Sets the page blob tiers on the blob. This API is only supported for page blobs on premium accounts. + + :param premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :type premium_page_blob_tier: ~azure.storage.blob.PremiumPageBlobTier + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :rtype: None + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if premium_page_blob_tier is None: + raise ValueError("A PremiumPageBlobTier must be specified") + try: + self._client.blob.set_tier( + tier=premium_page_blob_tier, + timeout=kwargs.pop('timeout', None), + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + def _set_blob_tags_options(self, tags=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Any] + tags = serialize_blob_tags(tags) + mod_conditions = get_modify_conditions(kwargs) + + options = { + 'tags': tags, + 'modified_access_conditions': mod_conditions, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def set_blob_tags(self, tags=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Any] + """The Set Tags operation enables users to set tags on a blob or specific blob version, but not snapshot. + Each call to this operation replaces all existing tags attached to the blob. To remove all + tags from the blob, call this operation with no tags set. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :param tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + :type tags: dict(str, str) + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to add tags to. + :keyword bool validate_content: + If true, calculates an MD5 hash of the tags content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on destination blob with a matching value. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: Dict[str, Any] + """ + options = self._set_blob_tags_options(tags=tags, **kwargs) + try: + return self._client.blob.set_tags(**options) + except StorageErrorException as error: + process_storage_error(error) + + def _get_blob_tags_options(self, **kwargs): + # type: (**Any) -> Dict[str, str] + mod_conditions = get_modify_conditions(kwargs) + + options = { + 'version_id': kwargs.pop('version_id', None), + 'snapshot': self.snapshot, + 'modified_access_conditions': mod_conditions, + 'timeout': kwargs.pop('timeout', None), + 'cls': return_headers_and_deserialized} + return options + + @distributed_trace + def get_blob_tags(self, **kwargs): + # type: (**Any) -> Dict[str, str] + """The Get Tags operation enables users to get tags on a blob or specific blob version, or snapshot. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to add tags to. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on destination blob with a matching value. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Key value pairs of blob tags. + :rtype: Dict[str, str] + """ + options = self._get_blob_tags_options(**kwargs) + try: + _, tags = self._client.blob.get_tags(**options) + return parse_tags(tags) # pylint: disable=protected-access + except StorageErrorException as error: + process_storage_error(error) + + def _get_page_ranges_options( # type: ignore + self, offset=None, # type: Optional[int] + length=None, # type: Optional[int] + previous_snapshot_diff=None, # type: Optional[Union[str, Dict[str, Any]]] + **kwargs + ): + # type: (...) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if length is not None and offset is None: + raise ValueError("Offset value must not be None if length is set.") + if length is not None: + length = offset + length - 1 # Reformat to an inclusive range index + page_range, _ = validate_and_format_range_headers( + offset, length, start_range_required=False, end_range_required=False, align_to_page=True + ) + options = { + 'snapshot': self.snapshot, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'timeout': kwargs.pop('timeout', None), + 'range': page_range} + if previous_snapshot_diff: + try: + options['prevsnapshot'] = previous_snapshot_diff.snapshot # type: ignore + except AttributeError: + try: + options['prevsnapshot'] = previous_snapshot_diff['snapshot'] # type: ignore + except TypeError: + options['prevsnapshot'] = previous_snapshot_diff + options.update(kwargs) + return options + + @distributed_trace + def get_page_ranges( # type: ignore + self, offset=None, # type: Optional[int] + length=None, # type: Optional[int] + previous_snapshot_diff=None, # type: Optional[Union[str, Dict[str, Any]]] + **kwargs + ): + # type: (...) -> Tuple[List[Dict[str, int]], List[Dict[str, int]]] + """Returns the list of valid page ranges for a Page Blob or snapshot + of a page blob. + + :param int offset: + Start of byte range to use for getting valid page ranges. + If no length is given, all bytes after the offset will be searched. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for getting valid page ranges. + If length is given, offset must be provided. + This range will return valid page ranges from the offset start up to + the specified length. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param str previous_snapshot_diff: + The snapshot diff parameter that contains an opaque DateTime value that + specifies a previous blob snapshot to be compared + against a more recent snapshot or the current blob. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: + A tuple of two lists of page ranges as dictionaries with 'start' and 'end' keys. + The first element are filled page ranges, the 2nd element is cleared page ranges. + :rtype: tuple(list(dict(str, str), list(dict(str, str)) + """ + options = self._get_page_ranges_options( + offset=offset, + length=length, + previous_snapshot_diff=previous_snapshot_diff, + **kwargs) + try: + if previous_snapshot_diff: + ranges = self._client.page_blob.get_page_ranges_diff(**options) + else: + ranges = self._client.page_blob.get_page_ranges(**options) + except StorageErrorException as error: + process_storage_error(error) + return get_page_ranges_result(ranges) + + @distributed_trace + def get_page_range_diff_for_managed_disk( + self, previous_snapshot_url, # type: str + offset=None, # type: Optional[int] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Tuple[List[Dict[str, int]], List[Dict[str, int]]] + """Returns the list of valid page ranges for a managed disk or snapshot. + + .. note:: + This operation is only available for managed disk accounts. + + .. versionadded:: 12.2.0 + This operation was introduced in API version '2019-07-07'. + + :param previous_snapshot_url: + Specifies the URL of a previous snapshot of the managed disk. + The response will only contain pages that were changed between the target blob and + its previous snapshot. + :param int offset: + Start of byte range to use for getting valid page ranges. + If no length is given, all bytes after the offset will be searched. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for getting valid page ranges. + If length is given, offset must be provided. + This range will return valid page ranges from the offset start up to + the specified length. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: + A tuple of two lists of page ranges as dictionaries with 'start' and 'end' keys. + The first element are filled page ranges, the 2nd element is cleared page ranges. + :rtype: tuple(list(dict(str, str), list(dict(str, str)) + """ + options = self._get_page_ranges_options( + offset=offset, + length=length, + prev_snapshot_url=previous_snapshot_url, + **kwargs) + try: + ranges = self._client.page_blob.get_page_ranges_diff(**options) + except StorageErrorException as error: + process_storage_error(error) + return get_page_ranges_result(ranges) + + def _set_sequence_number_options(self, sequence_number_action, sequence_number=None, **kwargs): + # type: (Union[str, SequenceNumberAction], Optional[str], **Any) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if sequence_number_action is None: + raise ValueError("A sequence number action must be specified") + options = { + 'sequence_number_action': sequence_number_action, + 'timeout': kwargs.pop('timeout', None), + 'blob_sequence_number': sequence_number, + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def set_sequence_number(self, sequence_number_action, sequence_number=None, **kwargs): + # type: (Union[str, SequenceNumberAction], Optional[str], **Any) -> Dict[str, Union[str, datetime]] + """Sets the blob sequence number. + + :param str sequence_number_action: + This property indicates how the service should modify the blob's sequence + number. See :class:`~azure.storage.blob.SequenceNumberAction` for more information. + :param str sequence_number: + This property sets the blob's sequence number. The sequence number is a + user-controlled property that you can use to track requests and manage + concurrency issues. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._set_sequence_number_options( + sequence_number_action, sequence_number=sequence_number, **kwargs) + try: + return self._client.page_blob.update_sequence_number(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _resize_blob_options(self, size, **kwargs): + # type: (int, **Any) -> Dict[str, Any] + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if size is None: + raise ValueError("A content length must be specified for a Page Blob.") + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + options = { + 'blob_content_length': size, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_info': cpk_info, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def resize_blob(self, size, **kwargs): + # type: (int, **Any) -> Dict[str, Union[str, datetime]] + """Resizes a page blob to the specified size. + + If the specified value is less than the current size of the blob, + then all pages above the specified value are cleared. + + :param int size: + Size used to resize blob. Maximum size for a page blob is up to 1 TB. + The page blob size must be aligned to a 512-byte boundary. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._resize_blob_options(size, **kwargs) + try: + return self._client.page_blob.resize(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _upload_page_options( # type: ignore + self, page, # type: bytes + offset, # type: int + length, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Any] + if isinstance(page, six.text_type): + page = page.encode(kwargs.pop('encoding', 'UTF-8')) + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + + if offset is None or offset % 512 != 0: + raise ValueError("offset must be an integer that aligns with 512 page size") + if length is None or length % 512 != 0: + raise ValueError("length must be an integer that aligns with 512 page size") + end_range = offset + length - 1 # Reformat to an inclusive range index + content_range = 'bytes={0}-{1}'.format(offset, end_range) # type: ignore + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + seq_conditions = SequenceNumberAccessConditions( + if_sequence_number_less_than_or_equal_to=kwargs.pop('if_sequence_number_lte', None), + if_sequence_number_less_than=kwargs.pop('if_sequence_number_lt', None), + if_sequence_number_equal_to=kwargs.pop('if_sequence_number_eq', None) + ) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + validate_content = kwargs.pop('validate_content', False) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + options = { + 'body': page[:length], + 'content_length': length, + 'transactional_content_md5': None, + 'timeout': kwargs.pop('timeout', None), + 'range': content_range, + 'lease_access_conditions': access_conditions, + 'sequence_number_access_conditions': seq_conditions, + 'modified_access_conditions': mod_conditions, + 'validate_content': validate_content, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def upload_page( # type: ignore + self, page, # type: bytes + offset, # type: int + length, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """The Upload Pages operation writes a range of pages to a page blob. + + :param bytes page: + Content of the page. + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword bool validate_content: + If true, calculates an MD5 hash of the page content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._upload_page_options( + page=page, + offset=offset, + length=length, + **kwargs) + try: + return self._client.page_blob.upload_pages(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _upload_pages_from_url_options( # type: ignore + self, source_url, # type: str + offset, # type: int + length, # type: int + source_offset, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + + # TODO: extract the code to a method format_range + if offset is None or offset % 512 != 0: + raise ValueError("offset must be an integer that aligns with 512 page size") + if length is None or length % 512 != 0: + raise ValueError("length must be an integer that aligns with 512 page size") + if source_offset is None or offset % 512 != 0: + raise ValueError("source_offset must be an integer that aligns with 512 page size") + + # Format range + end_range = offset + length - 1 + destination_range = 'bytes={0}-{1}'.format(offset, end_range) + source_range = 'bytes={0}-{1}'.format(source_offset, source_offset + length - 1) # should subtract 1 here? + + seq_conditions = SequenceNumberAccessConditions( + if_sequence_number_less_than_or_equal_to=kwargs.pop('if_sequence_number_lte', None), + if_sequence_number_less_than=kwargs.pop('if_sequence_number_lt', None), + if_sequence_number_equal_to=kwargs.pop('if_sequence_number_eq', None) + ) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + source_mod_conditions = get_source_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + source_content_md5 = kwargs.pop('source_content_md5', None) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'source_url': source_url, + 'content_length': 0, + 'source_range': source_range, + 'range': destination_range, + 'source_content_md5': bytearray(source_content_md5) if source_content_md5 else None, + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'sequence_number_access_conditions': seq_conditions, + 'modified_access_conditions': mod_conditions, + 'source_modified_access_conditions': source_mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def upload_pages_from_url(self, source_url, # type: str + offset, # type: int + length, # type: int + source_offset, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Any] + """ + The Upload Pages operation writes a range of pages to a page blob where + the contents are read from a URL. + + :param str source_url: + The URL of the source data. It can point to any Azure Blob or File, that is either public or has a + shared access signature attached. + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int source_offset: + This indicates the start of the range of bytes(inclusive) that has to be taken from the copy source. + The service will read the same number of bytes as the destination range (length-offset). + :keyword bytes source_content_md5: + If given, the service will calculate the MD5 hash of the block content and compare against this value. + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the source resource has been modified since the specified time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the source resource has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + """ + options = self._upload_pages_from_url_options( + source_url=self._encode_source_url(source_url), + offset=offset, + length=length, + source_offset=source_offset, + **kwargs + ) + try: + return self._client.page_blob.upload_pages_from_url(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _clear_page_options(self, offset, length, **kwargs): + # type: (int, int, **Any) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + seq_conditions = SequenceNumberAccessConditions( + if_sequence_number_less_than_or_equal_to=kwargs.pop('if_sequence_number_lte', None), + if_sequence_number_less_than=kwargs.pop('if_sequence_number_lt', None), + if_sequence_number_equal_to=kwargs.pop('if_sequence_number_eq', None) + ) + mod_conditions = get_modify_conditions(kwargs) + if offset is None or offset % 512 != 0: + raise ValueError("offset must be an integer that aligns with 512 page size") + if length is None or length % 512 != 0: + raise ValueError("length must be an integer that aligns with 512 page size") + end_range = length + offset - 1 # Reformat to an inclusive range index + content_range = 'bytes={0}-{1}'.format(offset, end_range) + + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'content_length': 0, + 'timeout': kwargs.pop('timeout', None), + 'range': content_range, + 'lease_access_conditions': access_conditions, + 'sequence_number_access_conditions': seq_conditions, + 'modified_access_conditions': mod_conditions, + 'cpk_info': cpk_info, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def clear_page(self, offset, length, **kwargs): + # type: (int, int, **Any) -> Dict[str, Union[str, datetime]] + """Clears a range of pages. + + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._clear_page_options(offset, length, **kwargs) + try: + return self._client.page_blob.clear_pages(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _append_block_options( # type: ignore + self, data, # type: Union[AnyStr, Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + + if isinstance(data, six.text_type): + data = data.encode(kwargs.pop('encoding', 'UTF-8')) # type: ignore + if length is None: + length = get_length(data) + if length is None: + length, data = read_length(data) + if length == 0: + return {} + if isinstance(data, bytes): + data = data[:length] + + appendpos_condition = kwargs.pop('appendpos_condition', None) + maxsize_condition = kwargs.pop('maxsize_condition', None) + validate_content = kwargs.pop('validate_content', False) + append_conditions = None + if maxsize_condition or appendpos_condition is not None: + append_conditions = AppendPositionAccessConditions( + max_size=maxsize_condition, + append_position=appendpos_condition + ) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + options = { + 'body': data, + 'content_length': length, + 'timeout': kwargs.pop('timeout', None), + 'transactional_content_md5': None, + 'lease_access_conditions': access_conditions, + 'append_position_access_conditions': append_conditions, + 'modified_access_conditions': mod_conditions, + 'validate_content': validate_content, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def append_block( # type: ignore + self, data, # type: Union[AnyStr, Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """Commits a new block of data to the end of the existing append blob. + + :param data: + Content of the block. This can be bytes, text, an iterable or a file-like object. + :type data: bytes or str or Iterable + :param int length: + Size of the block in bytes. + :keyword bool validate_content: + If true, calculates an MD5 hash of the block content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag, last modified, append offset, committed block count). + :rtype: dict(str, Any) + """ + options = self._append_block_options( + data, + length=length, + **kwargs + ) + try: + return self._client.append_blob.append_block(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _append_block_from_url_options( # type: ignore + self, copy_source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + + # If end range is provided, start range must be provided + if source_length is not None and source_offset is None: + raise ValueError("source_offset should also be specified if source_length is specified") + # Format based on whether length is present + source_range = None + if source_length is not None: + end_range = source_offset + source_length - 1 + source_range = 'bytes={0}-{1}'.format(source_offset, end_range) + elif source_offset is not None: + source_range = "bytes={0}-".format(source_offset) + + appendpos_condition = kwargs.pop('appendpos_condition', None) + maxsize_condition = kwargs.pop('maxsize_condition', None) + source_content_md5 = kwargs.pop('source_content_md5', None) + append_conditions = None + if maxsize_condition or appendpos_condition is not None: + append_conditions = AppendPositionAccessConditions( + max_size=maxsize_condition, + append_position=appendpos_condition + ) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + source_mod_conditions = get_source_conditions(kwargs) + cpk_scope_info = get_cpk_scope_info(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + + options = { + 'source_url': copy_source_url, + 'content_length': 0, + 'source_range': source_range, + 'source_content_md5': source_content_md5, + 'transactional_content_md5': None, + 'lease_access_conditions': access_conditions, + 'append_position_access_conditions': append_conditions, + 'modified_access_conditions': mod_conditions, + 'source_modified_access_conditions': source_mod_conditions, + 'cpk_scope_info': cpk_scope_info, + 'cpk_info': cpk_info, + 'cls': return_response_headers, + 'timeout': kwargs.pop('timeout', None)} + options.update(kwargs) + return options + + @distributed_trace + def append_block_from_url(self, copy_source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + **kwargs): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """ + Creates a new block to be committed as part of a blob, where the contents are read from a source url. + + :param str copy_source_url: + The URL of the source data. It can point to any Azure Blob or File, that is either public or has a + shared access signature attached. + :param int source_offset: + This indicates the start of the range of bytes (inclusive) that has to be taken from the copy source. + :param int source_length: + This indicates the end of the range of bytes that has to be taken from the copy source. + :keyword bytearray source_content_md5: + If given, the service will calculate the MD5 hash of the block content and compare against this value. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the + AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the source resource has been modified since the specified time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the source resource has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + """ + options = self._append_block_from_url_options( + copy_source_url=self._encode_source_url(copy_source_url), + source_offset=source_offset, + source_length=source_length, + **kwargs + ) + try: + return self._client.append_blob.append_block_from_url(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + def _seal_append_blob_options(self, **kwargs): + # type: (...) -> Dict[str, Any] + if self.require_encryption or (self.key_encryption_key is not None): + raise ValueError(_ERROR_UNSUPPORTED_METHOD_FOR_ENCRYPTION) + + appendpos_condition = kwargs.pop('appendpos_condition', None) + append_conditions = None + if appendpos_condition is not None: + append_conditions = AppendPositionAccessConditions( + append_position=appendpos_condition + ) + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + + options = { + 'timeout': kwargs.pop('timeout', None), + 'lease_access_conditions': access_conditions, + 'append_position_access_conditions': append_conditions, + 'modified_access_conditions': mod_conditions, + 'cls': return_response_headers} + options.update(kwargs) + return options + + @distributed_trace + def seal_append_blob(self, **kwargs): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """The Seal operation seals the Append Blob to make it read-only. + + .. versionadded:: 12.4.0 + + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag, last modified, append offset, committed block count). + :rtype: dict(str, Any) + """ + options = self._seal_append_blob_options(**kwargs) + try: + return self._client.append_blob.seal(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_blob_service_client.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_blob_service_client.py new file mode 100644 index 00000000000..fc1249cf8c0 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_blob_service_client.py @@ -0,0 +1,684 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import functools +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, Dict, List, + TYPE_CHECKING +) + +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse # type: ignore + +from azure.core.paging import ItemPaged +from azure.core.pipeline import Pipeline +from azure.core.tracing.decorator import distributed_trace + +from ._shared.models import LocationMode +from ._shared.base_client import StorageAccountHostsMixin, TransportWrapper, parse_connection_str, parse_query +from ._shared.parser import _to_utc_datetime +from ._shared.response_handlers import return_response_headers, process_storage_error, \ + parse_to_internal_user_delegation_key +from ._generated import AzureBlobStorage, VERSION +from ._generated.models import StorageErrorException, StorageServiceProperties, KeyInfo +from ._container_client import ContainerClient +from ._blob_client import BlobClient +from ._models import ContainerPropertiesPaged, FilteredBlobPaged +from ._serialize import get_api_version +from ._deserialize import service_stats_deserialize, service_properties_deserialize + +if TYPE_CHECKING: + from datetime import datetime + from azure.core.pipeline.transport import HttpTransport + from azure.core.pipeline.policies import HTTPPolicy + from ._shared.models import UserDelegationKey + from ._lease import BlobLeaseClient + from ._models import ( + ContainerProperties, + BlobProperties, + PublicAccess, + BlobAnalyticsLogging, + Metrics, + CorsRule, + RetentionPolicy, + StaticWebsite, + ) + + +class BlobServiceClient(StorageAccountHostsMixin): + """A client to interact with the Blob Service at the account level. + + This client provides operations to retrieve and configure the account properties + as well as list, create and delete containers within the account. + For operations relating to a specific container or blob, clients for those entities + can also be retrieved using the `get_client` functions. + + :param str account_url: + The URL to the blob storage account. Any other entities included + in the URL path (e.g. container or blob) will be discarded. This URL can be optionally + authenticated with a SAS token. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START create_blob_service_client] + :end-before: [END create_blob_service_client] + :language: python + :dedent: 8 + :caption: Creating the BlobServiceClient with account url and credential. + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START create_blob_service_client_oauth] + :end-before: [END create_blob_service_client_oauth] + :language: python + :dedent: 8 + :caption: Creating the BlobServiceClient with Azure Identity credentials. + """ + + def __init__( + self, account_url, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + try: + if not account_url.lower().startswith('http'): + account_url = "https://" + account_url + except AttributeError: + raise ValueError("Account URL must be a string.") + parsed_url = urlparse(account_url.rstrip('/')) + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(account_url)) + + _, sas_token = parse_query(parsed_url.query) + self._query_str, credential = self._format_query_string(sas_token, credential) + super(BlobServiceClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) + self._client = AzureBlobStorage(self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + + def _format_url(self, hostname): + """Format the endpoint URL according to the current location + mode hostname. + """ + return "{}://{}/{}".format(self.scheme, hostname, self._query_str) + + @classmethod + def from_connection_string( + cls, conn_str, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): # type: (...) -> BlobServiceClient + """Create BlobServiceClient from a Connection String. + + :param str conn_str: + A connection string to an Azure Storage account. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :returns: A Blob service client. + :rtype: ~azure.storage.blob.BlobServiceClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START auth_from_connection_string] + :end-before: [END auth_from_connection_string] + :language: python + :dedent: 8 + :caption: Creating the BlobServiceClient from a connection string. + """ + account_url, secondary, credential = parse_connection_str(conn_str, credential, 'blob') + if 'secondary_hostname' not in kwargs: + kwargs['secondary_hostname'] = secondary + return cls(account_url, credential=credential, **kwargs) + + @distributed_trace + def get_user_delegation_key(self, key_start_time, # type: datetime + key_expiry_time, # type: datetime + **kwargs # type: Any + ): + # type: (...) -> UserDelegationKey + """ + Obtain a user delegation key for the purpose of signing SAS tokens. + A token credential must be present on the service object for this request to succeed. + + :param ~datetime.datetime key_start_time: + A DateTime value. Indicates when the key becomes valid. + :param ~datetime.datetime key_expiry_time: + A DateTime value. Indicates when the key stops being valid. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: The user delegation key. + :rtype: ~azure.storage.blob.UserDelegationKey + """ + key_info = KeyInfo(start=_to_utc_datetime(key_start_time), expiry=_to_utc_datetime(key_expiry_time)) + timeout = kwargs.pop('timeout', None) + try: + user_delegation_key = self._client.service.get_user_delegation_key(key_info=key_info, + timeout=timeout, + **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + return parse_to_internal_user_delegation_key(user_delegation_key) # type: ignore + + @distributed_trace + def get_account_information(self, **kwargs): + # type: (Any) -> Dict[str, str] + """Gets information related to the storage account. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START get_blob_service_account_info] + :end-before: [END get_blob_service_account_info] + :language: python + :dedent: 8 + :caption: Getting account information for the blob service. + """ + try: + return self._client.service.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def get_service_stats(self, **kwargs): + # type: (**Any) -> Dict[str, Any] + """Retrieves statistics related to replication for the Blob service. + + It is only available when read-access geo-redundant replication is enabled for + the storage account. + + With geo-redundant replication, Azure Storage maintains your data durable + in two locations. In both locations, Azure Storage constantly maintains + multiple healthy replicas of your data. The location where you read, + create, update, or delete data is the primary storage account location. + The primary location exists in the region you choose at the time you + create an account via the Azure Management Azure classic portal, for + example, North Central US. The location to which your data is replicated + is the secondary location. The secondary location is automatically + determined based on the location of the primary; it is in a second data + center that resides in the same region as the primary location. Read-only + access is available from the secondary location, if read-access geo-redundant + replication is enabled for your storage account. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: The blob service stats. + :rtype: Dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START get_blob_service_stats] + :end-before: [END get_blob_service_stats] + :language: python + :dedent: 8 + :caption: Getting service stats for the blob service. + """ + timeout = kwargs.pop('timeout', None) + try: + stats = self._client.service.get_statistics( # type: ignore + timeout=timeout, use_location=LocationMode.SECONDARY, **kwargs) + return service_stats_deserialize(stats) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def get_service_properties(self, **kwargs): + # type: (Any) -> Dict[str, Any] + """Gets the properties of a storage account's Blob service, including + Azure Storage Analytics. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An object containing blob service properties such as + analytics logging, hour/minute metrics, cors rules, etc. + :rtype: Dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START get_blob_service_properties] + :end-before: [END get_blob_service_properties] + :language: python + :dedent: 8 + :caption: Getting service properties for the blob service. + """ + timeout = kwargs.pop('timeout', None) + try: + service_props = self._client.service.get_properties(timeout=timeout, **kwargs) + return service_properties_deserialize(service_props) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def set_service_properties( + self, analytics_logging=None, # type: Optional[BlobAnalyticsLogging] + hour_metrics=None, # type: Optional[Metrics] + minute_metrics=None, # type: Optional[Metrics] + cors=None, # type: Optional[List[CorsRule]] + target_version=None, # type: Optional[str] + delete_retention_policy=None, # type: Optional[RetentionPolicy] + static_website=None, # type: Optional[StaticWebsite] + **kwargs + ): + # type: (...) -> None + """Sets the properties of a storage account's Blob service, including + Azure Storage Analytics. + + If an element (e.g. analytics_logging) is left as None, the + existing settings on the service for that functionality are preserved. + + :param analytics_logging: + Groups the Azure Analytics Logging settings. + :type analytics_logging: ~azure.storage.blob.BlobAnalyticsLogging + :param hour_metrics: + The hour metrics settings provide a summary of request + statistics grouped by API in hourly aggregates for blobs. + :type hour_metrics: ~azure.storage.blob.Metrics + :param minute_metrics: + The minute metrics settings provide request statistics + for each minute for blobs. + :type minute_metrics: ~azure.storage.blob.Metrics + :param cors: + You can include up to five CorsRule elements in the + list. If an empty list is specified, all CORS rules will be deleted, + and CORS will be disabled for the service. + :type cors: list[~azure.storage.blob.CorsRule] + :param str target_version: + Indicates the default version to use for requests if an incoming + request's version is not specified. + :param delete_retention_policy: + The delete retention policy specifies whether to retain deleted blobs. + It also specifies the number of days and versions of blob to keep. + :type delete_retention_policy: ~azure.storage.blob.RetentionPolicy + :param static_website: + Specifies whether the static website feature is enabled, + and if yes, indicates the index document and 404 error document to use. + :type static_website: ~azure.storage.blob.StaticWebsite + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START set_blob_service_properties] + :end-before: [END set_blob_service_properties] + :language: python + :dedent: 8 + :caption: Setting service properties for the blob service. + """ + props = StorageServiceProperties( + logging=analytics_logging, + hour_metrics=hour_metrics, + minute_metrics=minute_metrics, + cors=cors, + default_service_version=target_version, + delete_retention_policy=delete_retention_policy, + static_website=static_website + ) + timeout = kwargs.pop('timeout', None) + try: + self._client.service.set_properties(props, timeout=timeout, **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def list_containers( + self, name_starts_with=None, # type: Optional[str] + include_metadata=False, # type: Optional[bool] + **kwargs + ): + # type: (...) -> ItemPaged[ContainerProperties] + """Returns a generator to list the containers under the specified account. + + The generator will lazily follow the continuation tokens returned by + the service and stop when all containers have been returned. + + :param str name_starts_with: + Filters the results to return only containers whose names + begin with the specified prefix. + :param bool include_metadata: + Specifies that container metadata to be returned in the response. + The default value is `False`. + :keyword bool include_deleted: + Specifies that deleted containers to be returned in the response. This is for container restore enabled + account. The default value is `False`. + .. versionadded:: 12.4.0 + :keyword int results_per_page: + The maximum number of container names to retrieve per API + call. If the request does not specify the server will return up to 5,000 items. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) of ContainerProperties. + :rtype: ~azure.core.paging.ItemPaged[~azure.storage.blob.ContainerProperties] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START bsc_list_containers] + :end-before: [END bsc_list_containers] + :language: python + :dedent: 12 + :caption: Listing the containers in the blob service. + """ + include = ['metadata'] if include_metadata else [] + include_deleted = kwargs.pop('include_deleted', None) + if include_deleted: + include.append("deleted") + + timeout = kwargs.pop('timeout', None) + results_per_page = kwargs.pop('results_per_page', None) + command = functools.partial( + self._client.service.list_containers_segment, + prefix=name_starts_with, + include=include, + timeout=timeout, + **kwargs) + return ItemPaged( + command, + prefix=name_starts_with, + results_per_page=results_per_page, + page_iterator_class=ContainerPropertiesPaged + ) + + @distributed_trace + def find_blobs_by_tags(self, filter_expression, **kwargs): + # type: (str, **Any) -> ItemPaged[FilteredBlob] + """The Filter Blobs operation enables callers to list blobs across all + containers whose tags match a given search expression. Filter blobs + searches across all containers within a storage account but can be + scoped within the expression to a single container. + + :param str filter_expression: + The expression to find blobs whose tags matches the specified condition. + eg. "\"yourtagname\"='firsttag' and \"yourtagname2\"='secondtag'" + To specify a container, eg. "@container='containerName' and \"Name\"='C'" + :keyword int results_per_page: + The max result per page when paginating. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.paging.ItemPaged[~azure.storage.blob.FilteredBlob] + """ + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.service.filter_blobs, + where=filter_expression, + timeout=timeout, + **kwargs) + return ItemPaged( + command, results_per_page=results_per_page, + page_iterator_class=FilteredBlobPaged) + + @distributed_trace + def create_container( + self, name, # type: str + metadata=None, # type: Optional[Dict[str, str]] + public_access=None, # type: Optional[Union[PublicAccess, str]] + **kwargs + ): + # type: (...) -> ContainerClient + """Creates a new container under the specified account. + + If the container with the same name already exists, a ResourceExistsError will + be raised. This method returns a client with which to interact with the newly + created container. + + :param str name: The name of the container to create. + :param metadata: + A dict with name-value pairs to associate with the + container as metadata. Example: `{'Category':'test'}` + :type metadata: dict(str, str) + :param public_access: + Possible values include: 'container', 'blob'. + :type public_access: str or ~azure.storage.blob.PublicAccess + :keyword container_encryption_scope: + Specifies the default encryption scope to set on the container and use for + all future writes. + + .. versionadded:: 12.2.0 + + :paramtype container_encryption_scope: dict or ~azure.storage.blob.ContainerEncryptionScope + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: ~azure.storage.blob.ContainerClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START bsc_create_container] + :end-before: [END bsc_create_container] + :language: python + :dedent: 12 + :caption: Creating a container in the blob service. + """ + container = self.get_container_client(name) + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + container.create_container( + metadata=metadata, public_access=public_access, timeout=timeout, **kwargs) + return container + + @distributed_trace + def delete_container( + self, container, # type: Union[ContainerProperties, str] + lease=None, # type: Optional[Union[BlobLeaseClient, str]] + **kwargs + ): + # type: (...) -> None + """Marks the specified container for deletion. + + The container and any blobs contained within it are later deleted during garbage collection. + If the container is not found, a ResourceNotFoundError will be raised. + + :param container: + The container to delete. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :param lease: + If specified, delete_container only succeeds if the + container's lease is active and matches this ID. + Required if the container has an active lease. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START bsc_delete_container] + :end-before: [END bsc_delete_container] + :language: python + :dedent: 12 + :caption: Deleting a container in the blob service. + """ + container = self.get_container_client(container) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + container.delete_container( # type: ignore + lease=lease, + timeout=timeout, + **kwargs) + + @distributed_trace + def undelete_container(self, deleted_container_name, deleted_container_version, new_name=None, **kwargs): + # type: (str, str, str, **Any) -> ContainerClient + """Restores soft-deleted container. + + Operation will only be successful if used within the specified number of days + set in the delete retention policy. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :param str deleted_container_name: + Specifies the name of the deleted container to restore. + :param str deleted_container_version: + Specifies the version of the deleted container to restore. + :param str new_name: + The new name for the deleted container to be restored to. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: ~azure.storage.blob.ContainerClient + """ + container = self.get_container_client(new_name or deleted_container_name) + try: + container._client.container.restore(deleted_container_name=deleted_container_name, # pylint: disable = protected-access + deleted_container_version=deleted_container_version, + timeout=kwargs.pop('timeout', None), **kwargs) + return container + except StorageErrorException as error: + process_storage_error(error) + + def get_container_client(self, container): + # type: (Union[ContainerProperties, str]) -> ContainerClient + """Get a client to interact with the specified container. + + The container need not already exist. + + :param container: + The container. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :returns: A ContainerClient. + :rtype: ~azure.storage.blob.ContainerClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START bsc_get_container_client] + :end-before: [END bsc_get_container_client] + :language: python + :dedent: 8 + :caption: Getting the container client to interact with a specific container. + """ + try: + container_name = container.name + except AttributeError: + container_name = container + _pipeline = Pipeline( + transport=TransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return ContainerClient( + self.url, container_name=container_name, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function) + + def get_blob_client( + self, container, # type: Union[ContainerProperties, str] + blob, # type: Union[BlobProperties, str] + snapshot=None # type: Optional[Union[Dict[str, Any], str]] + ): + # type: (...) -> BlobClient + """Get a client to interact with the specified blob. + + The blob need not already exist. + + :param container: + The container that the blob is in. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :param blob: + The blob with which to interact. This can either be the name of the blob, + or an instance of BlobProperties. + :type blob: str or ~azure.storage.blob.BlobProperties + :param snapshot: + The optional blob snapshot on which to operate. This can either be the ID of the snapshot, + or a dictionary output returned by :func:`~azure.storage.blob.BlobClient.create_snapshot()`. + :type snapshot: str or dict(str, Any) + :returns: A BlobClient. + :rtype: ~azure.storage.blob.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service.py + :start-after: [START bsc_get_blob_client] + :end-before: [END bsc_get_blob_client] + :language: python + :dedent: 12 + :caption: Getting the blob client to interact with a specific blob. + """ + try: + container_name = container.name + except AttributeError: + container_name = container + try: + blob_name = blob.name + except AttributeError: + blob_name = blob + _pipeline = Pipeline( + transport=TransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return BlobClient( # type: ignore + self.url, container_name=container_name, blob_name=blob_name, snapshot=snapshot, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_container_client.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_container_client.py new file mode 100644 index 00000000000..575611c4e7a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_container_client.py @@ -0,0 +1,1441 @@ +# pylint: disable=too-many-lines +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import functools +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, AnyStr, Dict, List, Tuple, IO, Iterator, + TYPE_CHECKING +) + +try: + from urllib.parse import urlparse, quote, unquote +except ImportError: + from urlparse import urlparse # type: ignore + from urllib2 import quote, unquote # type: ignore + +import six + +from azure.core import MatchConditions +from azure.core.paging import ItemPaged +from azure.core.tracing.decorator import distributed_trace +from azure.core.pipeline import Pipeline +from azure.core.pipeline.transport import HttpRequest + +from ._shared.base_client import StorageAccountHostsMixin, TransportWrapper, parse_connection_str, parse_query +from ._shared.request_handlers import add_metadata_headers, serialize_iso +from ._shared.response_handlers import ( + process_storage_error, + return_response_headers, + return_headers_and_deserialized) +from ._generated import AzureBlobStorage, VERSION +from ._generated.models import ( + StorageErrorException, + SignedIdentifier) +from ._deserialize import deserialize_container_properties +from ._serialize import get_modify_conditions, get_container_cpk_scope_info, get_api_version, get_access_conditions +from ._models import ( # pylint: disable=unused-import + ContainerProperties, + BlobProperties, + BlobType) +from ._list_blobs_helper import BlobPrefix, BlobPropertiesPaged +from ._lease import BlobLeaseClient +from ._blob_client import BlobClient + +if TYPE_CHECKING: + from azure.core.pipeline.transport import HttpTransport, HttpResponse # pylint: disable=ungrouped-imports + from azure.core.pipeline.policies import HTTPPolicy # pylint: disable=ungrouped-imports + from datetime import datetime + from ._models import ( # pylint: disable=unused-import + PublicAccess, + AccessPolicy, + ContentSettings, + StandardBlobTier, + PremiumPageBlobTier) + + +def _get_blob_name(blob): + """Return the blob name. + + :param blob: A blob string or BlobProperties + :rtype: str + """ + try: + return blob.get('name') + except AttributeError: + return blob + + +class ContainerClient(StorageAccountHostsMixin): + """A client to interact with a specific container, although that container + may not yet exist. + + For operations relating to a specific blob within this container, a blob client can be + retrieved using the :func:`~get_blob_client` function. + + :param str account_url: + The URI to the storage account. In order to create a client given the full URI to the container, + use the :func:`from_container_url` classmethod. + :param container_name: + The name of the container for the blob. + :type container_name: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START create_container_client_from_service] + :end-before: [END create_container_client_from_service] + :language: python + :dedent: 8 + :caption: Get a ContainerClient from an existing BlobServiceClient. + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START create_container_client_sasurl] + :end-before: [END create_container_client_sasurl] + :language: python + :dedent: 8 + :caption: Creating the container client directly. + """ + def __init__( + self, account_url, # type: str + container_name, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + try: + if not account_url.lower().startswith('http'): + account_url = "https://" + account_url + except AttributeError: + raise ValueError("Container URL must be a string.") + parsed_url = urlparse(account_url.rstrip('/')) + if not container_name: + raise ValueError("Please specify a container name.") + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(account_url)) + + _, sas_token = parse_query(parsed_url.query) + self.container_name = container_name + self._query_str, credential = self._format_query_string(sas_token, credential) + super(ContainerClient, self).__init__(parsed_url, service='blob', credential=credential, **kwargs) + self._client = AzureBlobStorage(self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + + def _format_url(self, hostname): + container_name = self.container_name + if isinstance(container_name, six.text_type): + container_name = container_name.encode('UTF-8') + return "{}://{}/{}{}".format( + self.scheme, + hostname, + quote(container_name), + self._query_str) + + @classmethod + def from_container_url(cls, container_url, credential=None, **kwargs): + # type: (str, Optional[Any], Any) -> ContainerClient + """Create ContainerClient from a container url. + + :param str container_url: + The full endpoint URL to the Container, including SAS token if used. This could be + either the primary endpoint, or the secondary endpoint depending on the current `location_mode`. + :type container_url: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :returns: A container client. + :rtype: ~azure.storage.blob.ContainerClient + """ + try: + if not container_url.lower().startswith('http'): + container_url = "https://" + container_url + except AttributeError: + raise ValueError("Container URL must be a string.") + parsed_url = urlparse(container_url.rstrip('/')) + if not parsed_url.netloc: + raise ValueError("Invalid URL: {}".format(container_url)) + + container_path = parsed_url.path.lstrip('/').split('/') + account_path = "" + if len(container_path) > 1: + account_path = "/" + "/".join(container_path[:-1]) + account_url = "{}://{}{}?{}".format( + parsed_url.scheme, + parsed_url.netloc.rstrip('/'), + account_path, + parsed_url.query) + container_name = unquote(container_path[-1]) + if not container_name: + raise ValueError("Invalid URL. Please provide a URL with a valid container name") + return cls(account_url, container_name=container_name, credential=credential, **kwargs) + + @classmethod + def from_connection_string( + cls, conn_str, # type: str + container_name, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): # type: (...) -> ContainerClient + """Create ContainerClient from a Connection String. + + :param str conn_str: + A connection string to an Azure Storage account. + :param container_name: + The container name for the blob. + :type container_name: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token, or the connection string already has shared + access key values. The value can be a SAS token string, an account shared access + key, or an instance of a TokenCredentials class from azure.identity. + Credentials provided here will take precedence over those in the connection string. + :returns: A container client. + :rtype: ~azure.storage.blob.ContainerClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START auth_from_connection_string_container] + :end-before: [END auth_from_connection_string_container] + :language: python + :dedent: 8 + :caption: Creating the ContainerClient from a connection string. + """ + account_url, secondary, credential = parse_connection_str(conn_str, credential, 'blob') + if 'secondary_hostname' not in kwargs: + kwargs['secondary_hostname'] = secondary + return cls( + account_url, container_name=container_name, credential=credential, **kwargs) + + @distributed_trace + def create_container(self, metadata=None, public_access=None, **kwargs): + # type: (Optional[Dict[str, str]], Optional[Union[PublicAccess, str]], **Any) -> None + """ + Creates a new container under the specified account. If the container + with the same name already exists, the operation fails. + + :param metadata: + A dict with name_value pairs to associate with the + container as metadata. Example:{'Category':'test'} + :type metadata: dict[str, str] + :param ~azure.storage.blob.PublicAccess public_access: + Possible values include: 'container', 'blob'. + :keyword container_encryption_scope: + Specifies the default encryption scope to set on the container and use for + all future writes. + + .. versionadded:: 12.2.0 + + :paramtype container_encryption_scope: dict or ~azure.storage.blob.ContainerEncryptionScope + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START create_container] + :end-before: [END create_container] + :language: python + :dedent: 12 + :caption: Creating a container to store blobs. + """ + headers = kwargs.pop('headers', {}) + timeout = kwargs.pop('timeout', None) + headers.update(add_metadata_headers(metadata)) # type: ignore + container_cpk_scope_info = get_container_cpk_scope_info(kwargs) + try: + return self._client.container.create( # type: ignore + timeout=timeout, + access=public_access, + container_cpk_scope_info=container_cpk_scope_info, + cls=return_response_headers, + headers=headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def delete_container( + self, **kwargs): + # type: (Any) -> None + """ + Marks the specified container for deletion. The container and any blobs + contained within it are later deleted during garbage collection. + + :keyword lease: + If specified, delete_container only succeeds if the + container's lease is active and matches this ID. + Required if the container has an active lease. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START delete_container] + :end-before: [END delete_container] + :language: python + :dedent: 12 + :caption: Delete a container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + mod_conditions = get_modify_conditions(kwargs) + timeout = kwargs.pop('timeout', None) + try: + self._client.container.delete( + timeout=timeout, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def acquire_lease( + self, lease_duration=-1, # type: int + lease_id=None, # type: Optional[str] + **kwargs): + # type: (...) -> BlobLeaseClient + """ + Requests a new lease. If the container does not have an active lease, + the Blob service creates a lease on the container and returns a new + lease ID. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :param str lease_id: + Proposed lease ID, in a GUID string format. The Blob service returns + 400 (Invalid request) if the proposed lease ID is not in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A BlobLeaseClient object, that can be run in a context manager. + :rtype: ~azure.storage.blob.BlobLeaseClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START acquire_lease_on_container] + :end-before: [END acquire_lease_on_container] + :language: python + :dedent: 8 + :caption: Acquiring a lease on the container. + """ + lease = BlobLeaseClient(self, lease_id=lease_id) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + lease.acquire(lease_duration=lease_duration, timeout=timeout, **kwargs) + return lease + + @distributed_trace + def get_account_information(self, **kwargs): + # type: (**Any) -> Dict[str, str] + """Gets information related to the storage account. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + """ + try: + return self._client.container.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def get_container_properties(self, **kwargs): + # type: (Any) -> ContainerProperties + """Returns all user-defined metadata and system properties for the specified + container. The data returned does not include the container's list of blobs. + + :keyword lease: + If specified, get_container_properties only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: Properties for the specified container within a container object. + :rtype: ~azure.storage.blob.ContainerProperties + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START get_container_properties] + :end-before: [END get_container_properties] + :language: python + :dedent: 12 + :caption: Getting properties on the container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + timeout = kwargs.pop('timeout', None) + try: + response = self._client.container.get_properties( + timeout=timeout, + lease_access_conditions=access_conditions, + cls=deserialize_container_properties, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + response.name = self.container_name + return response # type: ignore + + @distributed_trace + def set_container_metadata( # type: ignore + self, metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """Sets one or more user-defined name-value pairs for the specified + container. Each call to this operation replaces all existing metadata + attached to the container. To remove all metadata from the container, + call this operation with no metadata dict. + + :param metadata: + A dict containing name-value pairs to associate with the container as + metadata. Example: {'category':'test'} + :type metadata: dict[str, str] + :keyword lease: + If specified, set_container_metadata only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Container-updated property dict (Etag and last modified). + :rtype: dict[str, str or datetime] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START set_container_metadata] + :end-before: [END set_container_metadata] + :language: python + :dedent: 12 + :caption: Setting metadata on the container. + """ + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + mod_conditions = get_modify_conditions(kwargs) + timeout = kwargs.pop('timeout', None) + try: + return self._client.container.set_metadata( # type: ignore + timeout=timeout, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + headers=headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def get_container_access_policy(self, **kwargs): + # type: (Any) -> Dict[str, Any] + """Gets the permissions for the specified container. + The permissions indicate whether container data may be accessed publicly. + + :keyword lease: + If specified, get_container_access_policy only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Access policy information in a dict. + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START get_container_access_policy] + :end-before: [END get_container_access_policy] + :language: python + :dedent: 12 + :caption: Getting the access policy on the container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + timeout = kwargs.pop('timeout', None) + try: + response, identifiers = self._client.container.get_access_policy( + timeout=timeout, + lease_access_conditions=access_conditions, + cls=return_headers_and_deserialized, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return { + 'public_access': response.get('blob_public_access'), + 'signed_identifiers': identifiers or [] + } + + @distributed_trace + def set_container_access_policy( + self, signed_identifiers, # type: Dict[str, AccessPolicy] + public_access=None, # type: Optional[Union[str, PublicAccess]] + **kwargs + ): # type: (...) -> Dict[str, Union[str, datetime]] + """Sets the permissions for the specified container or stored access + policies that may be used with Shared Access Signatures. The permissions + indicate whether blobs in a container may be accessed publicly. + + :param signed_identifiers: + A dictionary of access policies to associate with the container. The + dictionary may contain up to 5 elements. An empty dictionary + will clear the access policies set on the service. + :type signed_identifiers: dict[str, ~azure.storage.blob.AccessPolicy] + :param ~azure.storage.blob.PublicAccess public_access: + Possible values include: 'container', 'blob'. + :keyword lease: + Required if the container has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A datetime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified date/time. + :keyword ~datetime.datetime if_unmodified_since: + A datetime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Container-updated property dict (Etag and last modified). + :rtype: dict[str, str or ~datetime.datetime] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START set_container_access_policy] + :end-before: [END set_container_access_policy] + :language: python + :dedent: 12 + :caption: Setting access policy on the container. + """ + if len(signed_identifiers) > 5: + raise ValueError( + 'Too many access policies provided. The server does not support setting ' + 'more than 5 access policies on a single resource.') + identifiers = [] + for key, value in signed_identifiers.items(): + if value: + value.start = serialize_iso(value.start) + value.expiry = serialize_iso(value.expiry) + identifiers.append(SignedIdentifier(id=key, access_policy=value)) # type: ignore + signed_identifiers = identifiers # type: ignore + lease = kwargs.pop('lease', None) + mod_conditions = get_modify_conditions(kwargs) + access_conditions = get_access_conditions(lease) + timeout = kwargs.pop('timeout', None) + try: + return self._client.container.set_access_policy( + container_acl=signed_identifiers or None, + timeout=timeout, + access=public_access, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def list_blobs(self, name_starts_with=None, include=None, **kwargs): + # type: (Optional[str], Optional[Union[str, List[str]]], **Any) -> ItemPaged[BlobProperties] + """Returns a generator to list the blobs under the specified container. + The generator will lazily follow the continuation tokens returned by + the service. + + :param str name_starts_with: + Filters the results to return only blobs whose names + begin with the specified prefix. + :param list[str] or str include: + Specifies one or more additional datasets to include in the response. + Options include: 'snapshots', 'metadata', 'uncommittedblobs', 'copy', 'deleted', 'tags'. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.paging.ItemPaged[~azure.storage.blob.BlobProperties] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START list_blobs_in_container] + :end-before: [END list_blobs_in_container] + :language: python + :dedent: 8 + :caption: List the blobs in the container. + """ + if include and not isinstance(include, list): + include = [include] + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.container.list_blob_flat_segment, + include=include, + timeout=timeout, + **kwargs) + return ItemPaged( + command, prefix=name_starts_with, results_per_page=results_per_page, + page_iterator_class=BlobPropertiesPaged) + + @distributed_trace + def walk_blobs( + self, name_starts_with=None, # type: Optional[str] + include=None, # type: Optional[Any] + delimiter="/", # type: str + **kwargs # type: Optional[Any] + ): + # type: (...) -> ItemPaged[BlobProperties] + """Returns a generator to list the blobs under the specified container. + The generator will lazily follow the continuation tokens returned by + the service. This operation will list blobs in accordance with a hierarchy, + as delimited by the specified delimiter character. + + :param str name_starts_with: + Filters the results to return only blobs whose names + begin with the specified prefix. + :param list[str] include: + Specifies one or more additional datasets to include in the response. + Options include: 'snapshots', 'metadata', 'uncommittedblobs', 'copy', 'deleted'. + :param str delimiter: + When the request includes this parameter, the operation returns a BlobPrefix + element in the response body that acts as a placeholder for all blobs whose + names begin with the same substring up to the appearance of the delimiter + character. The delimiter may be a single character or a string. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.paging.ItemPaged[~azure.storage.blob.BlobProperties] + """ + if include and not isinstance(include, list): + include = [include] + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.container.list_blob_hierarchy_segment, + delimiter=delimiter, + include=include, + timeout=timeout, + **kwargs) + return BlobPrefix( + command, + prefix=name_starts_with, + results_per_page=results_per_page, + delimiter=delimiter) + + @distributed_trace + def upload_blob( + self, name, # type: Union[str, BlobProperties] + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + blob_type=BlobType.BlockBlob, # type: Union[str, BlobType] + length=None, # type: Optional[int] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> BlobClient + """Creates a new blob from a data source with automatic chunking. + + :param name: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type name: str or ~azure.storage.blob.BlobProperties + :param data: The blob data to upload. + :param ~azure.storage.blob.BlobType blob_type: The type of the blob. This can be + either BlockBlob, PageBlob or AppendBlob. The default value is BlockBlob. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword bool overwrite: Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob will overwrite the existing data. If set to False, the + operation will fail with ResourceExistsError. The exception to the above is with Append + blob types: if set to False and the data already exists, an error will not be raised + and the data will be appended to the existing blob. If set overwrite=True, then the existing + append blob will be deleted, and a new one created. Defaults to False. + :keyword ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the container has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int max_concurrency: + Maximum number of parallel connections to use when the blob size exceeds + 64MB. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :returns: A BlobClient to interact with the newly uploaded blob. + :rtype: ~azure.storage.blob.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START upload_blob_to_container] + :end-before: [END upload_blob_to_container] + :language: python + :dedent: 8 + :caption: Upload blob to the container. + """ + blob = self.get_blob_client(name) + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + encoding = kwargs.pop('encoding', 'UTF-8') + blob.upload_blob( + data, + blob_type=blob_type, + length=length, + metadata=metadata, + timeout=timeout, + encoding=encoding, + **kwargs + ) + return blob + + @distributed_trace + def delete_blob( + self, blob, # type: Union[str, BlobProperties] + delete_snapshots=None, # type: Optional[str] + **kwargs + ): + # type: (...) -> None + """Marks the specified blob or snapshot for deletion. + + The blob is later deleted during garbage collection. + Note that in order to delete a blob, you must delete all of its + snapshots. You can delete both at the same time with the delete_blob + operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blob or snapshot + and retains the blob or snapshot for specified number of days. + After specified number of days, blob's data is removed from the service during garbage collection. + Soft deleted blob or snapshot is accessible through :func:`list_blobs()` specifying `include=["deleted"]` + option. Soft-deleted blob or snapshot can be restored using :func:`~BlobClient.undelete()` + + :param blob: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob: str or ~azure.storage.blob.BlobProperties + :param str delete_snapshots: + Required if the blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + blob_client = self.get_blob_client(blob) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + blob_client.delete_blob( # type: ignore + delete_snapshots=delete_snapshots, + timeout=timeout, + **kwargs) + + @distributed_trace + def download_blob(self, blob, offset=None, length=None, **kwargs): + # type: (Union[str, BlobProperties], Optional[int], Optional[int], **Any) -> StorageStreamDownloader + """Downloads a blob to the StorageStreamDownloader. The readall() method must + be used to read all the content or readinto() must be used to download the blob into + a stream. + + :param blob: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob: str or ~azure.storage.blob.BlobProperties + :param int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. If specified, download_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword str encoding: + Encoding to decode the downloaded bytes. Default is None, i.e. no decoding. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: A streaming object (StorageStreamDownloader) + :rtype: ~azure.storage.blob.StorageStreamDownloader + """ + blob_client = self.get_blob_client(blob) # type: ignore + kwargs.setdefault('merge_span', True) + return blob_client.download_blob(offset=offset, length=length, **kwargs) + + def _generate_delete_blobs_subrequest_options( + self, snapshot=None, + delete_snapshots=None, + lease_access_conditions=None, + modified_access_conditions=None, + **kwargs + ): + """This code is a copy from _generated. + + Once Autorest is able to provide request preparation this code should be removed. + """ + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct parameters + timeout = kwargs.pop('timeout', None) + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._client._serialize.query("snapshot", snapshot, 'str') # pylint: disable=protected-access + if timeout is not None: + query_parameters['timeout'] = self._client._serialize.query("timeout", timeout, 'int', minimum=0) # pylint: disable=protected-access + + # Construct headers + header_parameters = {} + if delete_snapshots is not None: + header_parameters['x-ms-delete-snapshots'] = self._client._serialize.header( # pylint: disable=protected-access + "delete_snapshots", delete_snapshots, 'DeleteSnapshotsOptionType') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._client._serialize.header( # pylint: disable=protected-access + "lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._client._serialize.header( # pylint: disable=protected-access + "if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._client._serialize.header( # pylint: disable=protected-access + "if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._client._serialize.header( # pylint: disable=protected-access + "if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._client._serialize.header( # pylint: disable=protected-access + "if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._client._serialize.header("if_tags", if_tags, 'str') # pylint: disable=protected-access + + return query_parameters, header_parameters + + def _generate_delete_blobs_options(self, + *blobs, # type: List[Union[str, BlobProperties, dict]] + **kwargs + ): + timeout = kwargs.pop('timeout', None) + raise_on_any_failure = kwargs.pop('raise_on_any_failure', True) + delete_snapshots = kwargs.pop('delete_snapshots', None) + if_modified_since = kwargs.pop('if_modified_since', None) + if_unmodified_since = kwargs.pop('if_unmodified_since', None) + if_tags_match_condition = kwargs.pop('if_tags_match_condition', None) + kwargs.update({'raise_on_any_failure': raise_on_any_failure, + 'sas': self._query_str.replace('?', '&'), + 'timeout': '&timeout=' + str(timeout) if timeout else "" + }) + + reqs = [] + for blob in blobs: + blob_name = _get_blob_name(blob) + container_name = self.container_name + + try: + options = BlobClient._generic_delete_blob_options( # pylint: disable=protected-access + snapshot=blob.get('snapshot'), + delete_snapshots=delete_snapshots or blob.get('delete_snapshots'), + lease=blob.get('lease_id'), + if_modified_since=if_modified_since or blob.get('if_modified_since'), + if_unmodified_since=if_unmodified_since or blob.get('if_unmodified_since'), + etag=blob.get('etag'), + if_tags_match_condition=if_tags_match_condition or blob.get('if_tags_match_condition'), + match_condition=blob.get('match_condition') or MatchConditions.IfNotModified if blob.get('etag') + else None, + timeout=blob.get('timeout'), + ) + except AttributeError: + options = BlobClient._generic_delete_blob_options( # pylint: disable=protected-access + delete_snapshots=delete_snapshots, + if_modified_since=if_modified_since, + if_unmodified_since=if_unmodified_since, + if_tags_match_condition=if_tags_match_condition + ) + + query_parameters, header_parameters = self._generate_delete_blobs_subrequest_options(**options) + + req = HttpRequest( + "DELETE", + "/{}/{}{}".format(quote(container_name), quote(blob_name, safe='/~'), self._query_str), + headers=header_parameters + ) + req.format_parameters(query_parameters) + reqs.append(req) + + return reqs, kwargs + + @distributed_trace + def delete_blobs(self, *blobs, **kwargs): + # type: (...) -> Iterator[HttpResponse] + """Marks the specified blobs or snapshots for deletion. + + The blobs are later deleted during garbage collection. + Note that in order to delete blobs, you must delete all of their + snapshots. You can delete both at the same time with the delete_blobs operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blobs or snapshots + and retains the blobs or snapshots for specified number of days. + After specified number of days, blobs' data is removed from the service during garbage collection. + Soft deleted blobs or snapshots are accessible through :func:`list_blobs()` specifying `include=["deleted"]` + Soft-deleted blobs or snapshots can be restored using :func:`~BlobClient.undelete()` + + :param blobs: + The blobs to delete. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + + blob name: + key: 'name', value type: str + snapshot you want to delete: + key: 'snapshot', value type: str + whether to delete snapthots when deleting blob: + key: 'delete_snapshots', value: 'include' or 'only' + if the blob modified or not: + key: 'if_modified_since', 'if_unmodified_since', value type: datetime + etag: + key: 'etag', value type: str + match the etag or not: + key: 'match_condition', value type: MatchConditions + tags match condition: + key: 'if_tags_match_condition', value type: str + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword str delete_snapshots: + Required if a blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: An iterator of responses, one for each blob in order + :rtype: Iterator[~azure.core.pipeline.transport.HttpResponse] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common.py + :start-after: [START delete_multiple_blobs] + :end-before: [END delete_multiple_blobs] + :language: python + :dedent: 8 + :caption: Deleting multiple blobs. + """ + if len(blobs) == 0: + return iter(list()) + + reqs, options = self._generate_delete_blobs_options(*blobs, **kwargs) + + return self._batch_send(*reqs, **options) + + def _generate_set_tiers_subrequest_options( + self, tier, snapshot=None, version_id=None, rehydrate_priority=None, lease_access_conditions=None, **kwargs + ): + """This code is a copy from _generated. + + Once Autorest is able to provide request preparation this code should be removed. + """ + if not tier: + raise ValueError("A blob tier must be specified") + if snapshot and version_id: + raise ValueError("Snapshot and version_id cannot be set at the same time") + if_tags = kwargs.pop('if_tags', None) + + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + comp = "tier" + timeout = kwargs.pop('timeout', None) + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._client._serialize.query("snapshot", snapshot, 'str') # pylint: disable=protected-access + if version_id is not None: + query_parameters['versionid'] = self._client._serialize.query("version_id", version_id, 'str') # pylint: disable=protected-access + if timeout is not None: + query_parameters['timeout'] = self._client._serialize.query("timeout", timeout, 'int', minimum=0) # pylint: disable=protected-access + query_parameters['comp'] = self._client._serialize.query("comp", comp, 'str') # pylint: disable=protected-access, specify-parameter-names-in-call + + # Construct headers + header_parameters = {} + header_parameters['x-ms-access-tier'] = self._client._serialize.header("tier", tier, 'str') # pylint: disable=protected-access, specify-parameter-names-in-call + if rehydrate_priority is not None: + header_parameters['x-ms-rehydrate-priority'] = self._client._serialize.header( # pylint: disable=protected-access + "rehydrate_priority", rehydrate_priority, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._client._serialize.header("lease_id", lease_id, 'str') # pylint: disable=protected-access + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._client._serialize.header("if_tags", if_tags, 'str') # pylint: disable=protected-access + + return query_parameters, header_parameters + + def _generate_set_tiers_options(self, + blob_tier, # type: Optional[Union[str, StandardBlobTier, PremiumPageBlobTier]] + *blobs, # type: List[Union[str, BlobProperties, dict]] + **kwargs + ): + timeout = kwargs.pop('timeout', None) + raise_on_any_failure = kwargs.pop('raise_on_any_failure', True) + rehydrate_priority = kwargs.pop('rehydrate_priority', None) + if_tags = kwargs.pop('if_tags_match_condition', None) + kwargs.update({'raise_on_any_failure': raise_on_any_failure, + 'sas': self._query_str.replace('?', '&'), + 'timeout': '&timeout=' + str(timeout) if timeout else "" + }) + + reqs = [] + for blob in blobs: + blob_name = _get_blob_name(blob) + container_name = self.container_name + + try: + tier = blob_tier or blob.get('blob_tier') + query_parameters, header_parameters = self._generate_set_tiers_subrequest_options( + tier=tier, + snapshot=blob.get('snapshot'), + version_id=blob.get('version_id'), + rehydrate_priority=rehydrate_priority or blob.get('rehydrate_priority'), + lease_access_conditions=blob.get('lease_id'), + if_tags=if_tags or blob.get('if_tags_match_condition'), + timeout=timeout or blob.get('timeout') + ) + except AttributeError: + query_parameters, header_parameters = self._generate_set_tiers_subrequest_options( + blob_tier, rehydrate_priority=rehydrate_priority, if_tags=if_tags) + + req = HttpRequest( + "PUT", + "/{}/{}{}".format(quote(container_name), quote(blob_name, safe='/~'), self._query_str), + headers=header_parameters + ) + req.format_parameters(query_parameters) + reqs.append(req) + + return reqs, kwargs + + @distributed_trace + def set_standard_blob_tier_blobs( + self, + standard_blob_tier, # type: Optional[Union[str, StandardBlobTier]] + *blobs, # type: List[Union[str, BlobProperties, dict]] + **kwargs + ): + # type: (...) -> Iterator[HttpResponse] + """This operation sets the tier on block blobs. + + A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param standard_blob_tier: + Indicates the tier to be set on all blobs. Options include 'Hot', 'Cool', + 'Archive'. The hot tier is optimized for storing data that is accessed + frequently. The cool storage tier is optimized for storing data that + is infrequently accessed and stored for at least a month. The archive + tier is optimized for storing data that is rarely accessed and stored + for at least six months with flexible latency requirements. + + .. note:: + If you want to set different tier on different blobs please set this positional parameter to None. + Then the blob tier on every BlobProperties will be taken. + + :type standard_blob_tier: str or ~azure.storage.blob.StandardBlobTier + :param blobs: + The blobs with which to interact. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + + blob name: + key: 'name', value type: str + standard blob tier: + key: 'blob_tier', value type: StandardBlobTier + rehydrate priority: + key: 'rehydrate_priority', value type: RehydratePriority + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + snapshot: + key: "snapshost", value type: str + version id: + key: "version_id", value type: str + tags match condition: + key: 'if_tags_match_condition', value type: str + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. + :return: An iterator of responses, one for each blob in order + :rtype: Iterator[~azure.core.pipeline.transport.HttpResponse] + """ + reqs, options = self._generate_set_tiers_options(standard_blob_tier, *blobs, **kwargs) + + return self._batch_send(*reqs, **options) + + @distributed_trace + def set_premium_page_blob_tier_blobs( + self, + premium_page_blob_tier, # type: Optional[Union[str, PremiumPageBlobTier]] + *blobs, # type: List[Union[str, BlobProperties, dict]] + **kwargs + ): + # type: (...) -> Iterator[HttpResponse] + """Sets the page blob tiers on all blobs. This API is only supported for page blobs on premium accounts. + + :param premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + + .. note:: + If you want to set different tier on different blobs please set this positional parameter to None. + Then the blob tier on every BlobProperties will be taken. + + :type premium_page_blob_tier: ~azure.storage.blob.PremiumPageBlobTier + :param blobs: + The blobs with which to interact. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + + blob name: + key: 'name', value type: str + premium blob tier: + key: 'blob_tier', value type: PremiumPageBlobTier + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. + :return: An iterator of responses, one for each blob in order + :rtype: iterator[~azure.core.pipeline.transport.HttpResponse] + """ + reqs, options = self._generate_set_tiers_options(premium_page_blob_tier, *blobs, **kwargs) + + return self._batch_send(*reqs, **options) + + def get_blob_client( + self, blob, # type: Union[str, BlobProperties] + snapshot=None # type: str + ): + # type: (...) -> BlobClient + """Get a client to interact with the specified blob. + + The blob need not already exist. + + :param blob: + The blob with which to interact. + :type blob: str or ~azure.storage.blob.BlobProperties + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`~BlobClient.create_snapshot()`. + :returns: A BlobClient. + :rtype: ~azure.storage.blob.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START get_blob_client] + :end-before: [END get_blob_client] + :language: python + :dedent: 8 + :caption: Get the blob client. + """ + blob_name = _get_blob_name(blob) + _pipeline = Pipeline( + transport=TransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return BlobClient( + self.url, container_name=self.container_name, blob_name=blob_name, snapshot=snapshot, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_deserialize.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_deserialize.py new file mode 100644 index 00000000000..159e0e676c8 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_deserialize.py @@ -0,0 +1,158 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use +from typing import ( # pylint: disable=unused-import + Tuple, Dict, List, + TYPE_CHECKING +) + +from ._models import BlobType, CopyProperties, ContentSettings, LeaseProperties, BlobProperties +from ._shared.models import get_enum_value + +from ._shared.response_handlers import deserialize_metadata +from ._models import ContainerProperties, BlobAnalyticsLogging, Metrics, CorsRule, RetentionPolicy, \ + StaticWebsite, ObjectReplicationPolicy, ObjectReplicationRule + +if TYPE_CHECKING: + from ._generated.models import PageList + + +def deserialize_blob_properties(response, obj, headers): + blob_properties = BlobProperties( + metadata=deserialize_metadata(response, obj, headers), + object_replication_source_properties=deserialize_ors_policies(response.headers), + **headers + ) + if 'Content-Range' in headers: + if 'x-ms-blob-content-md5' in headers: + blob_properties.content_settings.content_md5 = headers['x-ms-blob-content-md5'] + else: + blob_properties.content_settings.content_md5 = None + return blob_properties + + +def deserialize_ors_policies(policy_dictionary): + + if policy_dictionary is None: + return None + # For source blobs (blobs that have policy ids and rule ids applied to them), + # the header will be formatted as "x-ms-or-_: {Complete, Failed}". + # The value of this header is the status of the replication. + or_policy_status_headers = {key: val for key, val in policy_dictionary.items() + if 'or-' in key and key != 'x-ms-or-policy-id'} + + parsed_result = {} + + for key, val in or_policy_status_headers.items(): + # list blobs gives or-policy_rule and get blob properties gives x-ms-or-policy_rule + policy_and_rule_ids = key.split('or-')[1].split('_') + policy_id = policy_and_rule_ids[0] + rule_id = policy_and_rule_ids[1] + + # If we are seeing this policy for the first time, create a new list to store rule_id -> result + parsed_result[policy_id] = parsed_result.get(policy_id) or list() + parsed_result[policy_id].append(ObjectReplicationRule(rule_id=rule_id, status=val)) + + result_list = [ObjectReplicationPolicy(policy_id=k, rules=v) for k, v in parsed_result.items()] + + return result_list + + +def deserialize_blob_stream(response, obj, headers): + blob_properties = deserialize_blob_properties(response, obj, headers) + obj.properties = blob_properties + return response.location_mode, obj + + +def deserialize_container_properties(response, obj, headers): + metadata = deserialize_metadata(response, obj, headers) + container_properties = ContainerProperties( + metadata=metadata, + **headers + ) + return container_properties + + +def get_page_ranges_result(ranges): + # type: (PageList) -> Tuple[List[Dict[str, int]], List[Dict[str, int]]] + page_range = [] # type: ignore + clear_range = [] # type: List + if ranges.page_range: + page_range = [{'start': b.start, 'end': b.end} for b in ranges.page_range] # type: ignore + if ranges.clear_range: + clear_range = [{'start': b.start, 'end': b.end} for b in ranges.clear_range] + return page_range, clear_range # type: ignore + + +def service_stats_deserialize(generated): + """Deserialize a ServiceStats objects into a dict. + """ + return { + 'geo_replication': { + 'status': generated.geo_replication.status, + 'last_sync_time': generated.geo_replication.last_sync_time, + } + } + + +def service_properties_deserialize(generated): + """Deserialize a ServiceProperties objects into a dict. + """ + return { + 'analytics_logging': BlobAnalyticsLogging._from_generated(generated.logging), # pylint: disable=protected-access + 'hour_metrics': Metrics._from_generated(generated.hour_metrics), # pylint: disable=protected-access + 'minute_metrics': Metrics._from_generated(generated.minute_metrics), # pylint: disable=protected-access + 'cors': [CorsRule._from_generated(cors) for cors in generated.cors], # pylint: disable=protected-access + 'target_version': generated.default_service_version, # pylint: disable=protected-access + 'delete_retention_policy': RetentionPolicy._from_generated(generated.delete_retention_policy), # pylint: disable=protected-access + 'static_website': StaticWebsite._from_generated(generated.static_website), # pylint: disable=protected-access + } + + +def get_blob_properties_from_generated_code(generated): + blob = BlobProperties() + blob.name = generated.name + blob_type = get_enum_value(generated.properties.blob_type) + blob.blob_type = BlobType(blob_type) if blob_type else None + blob.etag = generated.properties.etag + blob.deleted = generated.deleted + blob.snapshot = generated.snapshot + blob.is_append_blob_sealed = generated.properties.is_sealed + blob.metadata = generated.metadata.additional_properties if generated.metadata else {} + blob.encrypted_metadata = generated.metadata.encrypted if generated.metadata else None + blob.lease = LeaseProperties._from_generated(generated) # pylint: disable=protected-access + blob.copy = CopyProperties._from_generated(generated) # pylint: disable=protected-access + blob.last_modified = generated.properties.last_modified + blob.creation_time = generated.properties.creation_time + blob.content_settings = ContentSettings._from_generated(generated) # pylint: disable=protected-access + blob.size = generated.properties.content_length + blob.page_blob_sequence_number = generated.properties.blob_sequence_number + blob.server_encrypted = generated.properties.server_encrypted + blob.encryption_scope = generated.properties.encryption_scope + blob.deleted_time = generated.properties.deleted_time + blob.remaining_retention_days = generated.properties.remaining_retention_days + blob.blob_tier = generated.properties.access_tier + blob.rehydrate_priority = generated.properties.rehydrate_priority + blob.blob_tier_inferred = generated.properties.access_tier_inferred + blob.archive_status = generated.properties.archive_status + blob.blob_tier_change_time = generated.properties.access_tier_change_time + blob.version_id = generated.version_id + blob.is_current_version = generated.is_current_version + blob.tag_count = generated.properties.tag_count + blob.tags = parse_tags(generated.blob_tags) # pylint: disable=protected-access + blob.object_replication_source_properties = deserialize_ors_policies(generated.object_replication_metadata) + blob.last_accessed_on = generated.properties.last_accessed_on + return blob + + +def parse_tags(generated_tags): + # type: (Optional[List[BlobTag]]) -> Union[Dict[str, str], None] + """Deserialize a list of BlobTag objects into a dict. + """ + if generated_tags: + tag_dict = {t.key: t.value for t in generated_tags.blob_tag_set} + return tag_dict + return None diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_download.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_download.py new file mode 100644 index 00000000000..e11023c0f9c --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_download.py @@ -0,0 +1,579 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import sys +import threading +import warnings +from io import BytesIO + +from azure.core.exceptions import HttpResponseError +from azure.core.tracing.common import with_current_context +from ._shared.encryption import decrypt_blob +from ._shared.request_handlers import validate_and_format_range_headers +from ._shared.response_handlers import process_storage_error, parse_length_from_content_range +from ._deserialize import get_page_ranges_result + + +def process_range_and_offset(start_range, end_range, length, encryption): + start_offset, end_offset = 0, 0 + if encryption.get("key") is not None or encryption.get("resolver") is not None: + if start_range is not None: + # Align the start of the range along a 16 byte block + start_offset = start_range % 16 + start_range -= start_offset + + # Include an extra 16 bytes for the IV if necessary + # Because of the previous offsetting, start_range will always + # be a multiple of 16. + if start_range > 0: + start_offset += 16 + start_range -= 16 + + if length is not None: + # Align the end of the range along a 16 byte block + end_offset = 15 - (end_range % 16) + end_range += end_offset + + return (start_range, end_range), (start_offset, end_offset) + + +def process_content(data, start_offset, end_offset, encryption): + if data is None: + raise ValueError("Response cannot be None.") + try: + content = b"".join(list(data)) + except Exception as error: + raise HttpResponseError(message="Download stream interrupted.", response=data.response, error=error) + if content and encryption.get("key") is not None or encryption.get("resolver") is not None: + try: + return decrypt_blob( + encryption.get("required"), + encryption.get("key"), + encryption.get("resolver"), + content, + start_offset, + end_offset, + data.response.headers, + ) + except Exception as error: + raise HttpResponseError(message="Decryption failed.", response=data.response, error=error) + return content + + +class _ChunkDownloader(object): # pylint: disable=too-many-instance-attributes + def __init__( + self, + client=None, + non_empty_ranges=None, + total_size=None, + chunk_size=None, + current_progress=None, + start_range=None, + end_range=None, + stream=None, + parallel=None, + validate_content=None, + encryption_options=None, + **kwargs + ): + self.client = client + self.non_empty_ranges = non_empty_ranges + + # Information on the download range/chunk size + self.chunk_size = chunk_size + self.total_size = total_size + self.start_index = start_range + self.end_index = end_range + + # The destination that we will write to + self.stream = stream + self.stream_lock = threading.Lock() if parallel else None + self.progress_lock = threading.Lock() if parallel else None + + # For a parallel download, the stream is always seekable, so we note down the current position + # in order to seek to the right place when out-of-order chunks come in + self.stream_start = stream.tell() if parallel else None + + # Download progress so far + self.progress_total = current_progress + + # Encryption + self.encryption_options = encryption_options + + # Parameters for each get operation + self.validate_content = validate_content + self.request_options = kwargs + + def _calculate_range(self, chunk_start): + if chunk_start + self.chunk_size > self.end_index: + chunk_end = self.end_index + else: + chunk_end = chunk_start + self.chunk_size + return chunk_start, chunk_end + + def get_chunk_offsets(self): + index = self.start_index + while index < self.end_index: + yield index + index += self.chunk_size + + def process_chunk(self, chunk_start): + chunk_start, chunk_end = self._calculate_range(chunk_start) + chunk_data = self._download_chunk(chunk_start, chunk_end - 1) + length = chunk_end - chunk_start + if length > 0: + self._write_to_stream(chunk_data, chunk_start) + self._update_progress(length) + + def yield_chunk(self, chunk_start): + chunk_start, chunk_end = self._calculate_range(chunk_start) + return self._download_chunk(chunk_start, chunk_end - 1) + + def _update_progress(self, length): + if self.progress_lock: + with self.progress_lock: # pylint: disable=not-context-manager + self.progress_total += length + else: + self.progress_total += length + + def _write_to_stream(self, chunk_data, chunk_start): + if self.stream_lock: + with self.stream_lock: # pylint: disable=not-context-manager + self.stream.seek(self.stream_start + (chunk_start - self.start_index)) + self.stream.write(chunk_data) + else: + self.stream.write(chunk_data) + + def _do_optimize(self, given_range_start, given_range_end): + # If we have no page range list stored, then assume there's data everywhere for that page blob + # or it's a block blob or append blob + if self.non_empty_ranges is None: + return False + + for source_range in self.non_empty_ranges: + # Case 1: As the range list is sorted, if we've reached such a source_range + # we've checked all the appropriate source_range already and haven't found any overlapping. + # so the given range doesn't have any data and download optimization could be applied. + # given range: | | + # source range: | | + if given_range_end < source_range['start']: # pylint:disable=no-else-return + return True + # Case 2: the given range comes after source_range, continue checking. + # given range: | | + # source range: | | + elif source_range['end'] < given_range_start: + pass + # Case 3: source_range and given range overlap somehow, no need to optimize. + else: + return False + # Went through all src_ranges, but nothing overlapped. Optimization will be applied. + return True + + def _download_chunk(self, chunk_start, chunk_end): + download_range, offset = process_range_and_offset( + chunk_start, chunk_end, chunk_end, self.encryption_options + ) + + # No need to download the empty chunk from server if there's no data in the chunk to be downloaded. + # Do optimize and create empty chunk locally if condition is met. + if self._do_optimize(download_range[0], download_range[1]): + chunk_data = b"\x00" * self.chunk_size + else: + range_header, range_validation = validate_and_format_range_headers( + download_range[0], + download_range[1], + check_content_md5=self.validate_content + ) + + try: + _, response = self.client.download( + range=range_header, + range_get_content_md5=range_validation, + validate_content=self.validate_content, + data_stream_total=self.total_size, + download_stream_current=self.progress_total, + **self.request_options + ) + except HttpResponseError as error: + process_storage_error(error) + + chunk_data = process_content(response, offset[0], offset[1], self.encryption_options) + + # This makes sure that if_match is set so that we can validate + # that subsequent downloads are to an unmodified blob + if self.request_options.get("modified_access_conditions"): + self.request_options["modified_access_conditions"].if_match = response.properties.etag + + return chunk_data + + +class _ChunkIterator(object): + """Async iterator for chunks in blob download stream.""" + + def __init__(self, size, content, downloader): + self.size = size + self._current_content = content + self._iter_downloader = downloader + self._iter_chunks = None + self._complete = (size == 0) + + def __len__(self): + return self.size + + def __iter__(self): + return self + + def __next__(self): + """Iterate through responses.""" + if self._complete: + raise StopIteration("Download complete") + if not self._iter_downloader: + # If no iterator was supplied, the download completed with + # the initial GET, so we just return that data + self._complete = True + return self._current_content + + if not self._iter_chunks: + self._iter_chunks = self._iter_downloader.get_chunk_offsets() + else: + chunk = next(self._iter_chunks) + self._current_content = self._iter_downloader.yield_chunk(chunk) + + return self._current_content + + next = __next__ # Python 2 compatibility. + + +class StorageStreamDownloader(object): # pylint: disable=too-many-instance-attributes + """A streaming object to download from Azure Storage. + + :ivar str name: + The name of the blob being downloaded. + :ivar str container: + The name of the container where the blob is. + :ivar ~azure.storage.blob.BlobProperties properties: + The properties of the blob being downloaded. If only a range of the data is being + downloaded, this will be reflected in the properties. + :ivar int size: + The size of the total data in the stream. This will be the byte range if specified, + otherwise the total size of the blob. + """ + + def __init__( + self, + clients=None, + config=None, + start_range=None, + end_range=None, + validate_content=None, + encryption_options=None, + max_concurrency=1, + name=None, + container=None, + encoding=None, + **kwargs + ): + self.name = name + self.container = container + self.properties = None + self.size = None + + self._clients = clients + self._config = config + self._start_range = start_range + self._end_range = end_range + self._max_concurrency = max_concurrency + self._encoding = encoding + self._validate_content = validate_content + self._encryption_options = encryption_options or {} + self._request_options = kwargs + self._location_mode = None + self._download_complete = False + self._current_content = None + self._file_size = None + self._non_empty_ranges = None + self._response = None + + # The service only provides transactional MD5s for chunks under 4MB. + # If validate_content is on, get only self.MAX_CHUNK_GET_SIZE for the first + # chunk so a transactional MD5 can be retrieved. + self._first_get_size = ( + self._config.max_single_get_size if not self._validate_content else self._config.max_chunk_get_size + ) + initial_request_start = self._start_range if self._start_range is not None else 0 + if self._end_range is not None and self._end_range - self._start_range < self._first_get_size: + initial_request_end = self._end_range + else: + initial_request_end = initial_request_start + self._first_get_size - 1 + + self._initial_range, self._initial_offset = process_range_and_offset( + initial_request_start, initial_request_end, self._end_range, self._encryption_options + ) + + self._response = self._initial_request() + self.properties = self._response.properties + self.properties.name = self.name + self.properties.container = self.container + + # Set the content length to the download size instead of the size of + # the last range + self.properties.size = self.size + + # Overwrite the content range to the user requested range + self.properties.content_range = "bytes {0}-{1}/{2}".format( + self._start_range, + self._end_range, + self._file_size + ) + + # Overwrite the content MD5 as it is the MD5 for the last range instead + # of the stored MD5 + # TODO: Set to the stored MD5 when the service returns this + self.properties.content_md5 = None + + if self.size == 0: + self._current_content = b"" + else: + self._current_content = process_content( + self._response, + self._initial_offset[0], + self._initial_offset[1], + self._encryption_options + ) + + def __len__(self): + return self.size + + def _initial_request(self): + range_header, range_validation = validate_and_format_range_headers( + self._initial_range[0], + self._initial_range[1], + start_range_required=False, + end_range_required=False, + check_content_md5=self._validate_content + ) + + try: + location_mode, response = self._clients.blob.download( + range=range_header, + range_get_content_md5=range_validation, + validate_content=self._validate_content, + data_stream_total=None, + download_stream_current=0, + **self._request_options + ) + + # Check the location we read from to ensure we use the same one + # for subsequent requests. + self._location_mode = location_mode + + # Parse the total file size and adjust the download size if ranges + # were specified + self._file_size = parse_length_from_content_range(response.properties.content_range) + if self._end_range is not None: + # Use the end range index unless it is over the end of the file + self.size = min(self._file_size, self._end_range - self._start_range + 1) + elif self._start_range is not None: + self.size = self._file_size - self._start_range + else: + self.size = self._file_size + + except HttpResponseError as error: + if self._start_range is None and error.response.status_code == 416: + # Get range will fail on an empty file. If the user did not + # request a range, do a regular get request in order to get + # any properties. + try: + _, response = self._clients.blob.download( + validate_content=self._validate_content, + data_stream_total=0, + download_stream_current=0, + **self._request_options + ) + except HttpResponseError as error: + process_storage_error(error) + + # Set the download size to empty + self.size = 0 + self._file_size = 0 + else: + process_storage_error(error) + + # get page ranges to optimize downloading sparse page blob + if response.properties.blob_type == 'PageBlob': + try: + page_ranges = self._clients.page_blob.get_page_ranges() + self._non_empty_ranges = get_page_ranges_result(page_ranges)[0] + # according to the REST API documentation: + # in a highly fragmented page blob with a large number of writes, + # a Get Page Ranges request can fail due to an internal server timeout. + # thus, if the page blob is not sparse, it's ok for it to fail + except HttpResponseError: + pass + + # If the file is small, the download is complete at this point. + # If file size is large, download the rest of the file in chunks. + if response.properties.size != self.size: + # Lock on the etag. This can be overriden by the user by specifying '*' + if self._request_options.get("modified_access_conditions"): + if not self._request_options["modified_access_conditions"].if_match: + self._request_options["modified_access_conditions"].if_match = response.properties.etag + else: + self._download_complete = True + return response + + def chunks(self): + if self.size == 0 or self._download_complete: + iter_downloader = None + else: + data_end = self._file_size + if self._end_range is not None: + # Use the end range index unless it is over the end of the file + data_end = min(self._file_size, self._end_range + 1) + iter_downloader = _ChunkDownloader( + client=self._clients.blob, + non_empty_ranges=self._non_empty_ranges, + total_size=self.size, + chunk_size=self._config.max_chunk_get_size, + current_progress=self._first_get_size, + start_range=self._initial_range[1] + 1, # start where the first download ended + end_range=data_end, + stream=None, + parallel=False, + validate_content=self._validate_content, + encryption_options=self._encryption_options, + use_location=self._location_mode, + **self._request_options + ) + return _ChunkIterator( + size=self.size, + content=self._current_content, + downloader=iter_downloader) + + def readall(self): + """Download the contents of this blob. + + This operation is blocking until all data is downloaded. + :rtype: bytes or str + """ + stream = BytesIO() + self.readinto(stream) + data = stream.getvalue() + if self._encoding: + return data.decode(self._encoding) + return data + + def content_as_bytes(self, max_concurrency=1): + """Download the contents of this file. + + This operation is blocking until all data is downloaded. + + :keyword int max_concurrency: + The number of parallel connections with which to download. + :rtype: bytes + """ + warnings.warn( + "content_as_bytes is deprecated, use readall instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + return self.readall() + + def content_as_text(self, max_concurrency=1, encoding="UTF-8"): + """Download the contents of this blob, and decode as text. + + This operation is blocking until all data is downloaded. + + :keyword int max_concurrency: + The number of parallel connections with which to download. + :param str encoding: + Test encoding to decode the downloaded bytes. Default is UTF-8. + :rtype: str + """ + warnings.warn( + "content_as_text is deprecated, use readall instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + self._encoding = encoding + return self.readall() + + def readinto(self, stream): + """Download the contents of this file to a stream. + + :param stream: + The stream to download to. This can be an open file-handle, + or any writable stream. The stream must be seekable if the download + uses more than one parallel connection. + :returns: The number of bytes read. + :rtype: int + """ + # The stream must be seekable if parallel download is required + parallel = self._max_concurrency > 1 + if parallel: + error_message = "Target stream handle must be seekable." + if sys.version_info >= (3,) and not stream.seekable(): + raise ValueError(error_message) + + try: + stream.seek(stream.tell()) + except (NotImplementedError, AttributeError): + raise ValueError(error_message) + + # Write the content to the user stream + stream.write(self._current_content) + if self._download_complete: + return self.size + + data_end = self._file_size + if self._end_range is not None: + # Use the length unless it is over the end of the file + data_end = min(self._file_size, self._end_range + 1) + + downloader = _ChunkDownloader( + client=self._clients.blob, + non_empty_ranges=self._non_empty_ranges, + total_size=self.size, + chunk_size=self._config.max_chunk_get_size, + current_progress=self._first_get_size, + start_range=self._initial_range[1] + 1, # Start where the first download ended + end_range=data_end, + stream=stream, + parallel=parallel, + validate_content=self._validate_content, + encryption_options=self._encryption_options, + use_location=self._location_mode, + **self._request_options + ) + if parallel: + import concurrent.futures + executor = concurrent.futures.ThreadPoolExecutor(self._max_concurrency) + list(executor.map( + with_current_context(downloader.process_chunk), + downloader.get_chunk_offsets() + )) + else: + for chunk in downloader.get_chunk_offsets(): + downloader.process_chunk(chunk) + return self.size + + def download_to_stream(self, stream, max_concurrency=1): + """Download the contents of this blob to a stream. + + :param stream: + The stream to download to. This can be an open file-handle, + or any writable stream. The stream must be seekable if the download + uses more than one parallel connection. + :returns: The properties of the downloaded blob. + :rtype: Any + """ + warnings.warn( + "download_to_stream is deprecated, use readinto instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + self.readinto(stream) + return self.properties diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/__init__.py new file mode 100644 index 00000000000..f5c8f4a954d --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/__init__.py @@ -0,0 +1,18 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._azure_blob_storage import AzureBlobStorage +__all__ = ['AzureBlobStorage'] + +from .version import VERSION + +__version__ = VERSION + diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/_azure_blob_storage.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/_azure_blob_storage.py new file mode 100644 index 00000000000..831f6ce2033 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/_azure_blob_storage.py @@ -0,0 +1,83 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core import PipelineClient +from msrest import Serializer, Deserializer + +from ._configuration import AzureBlobStorageConfiguration +from azure.core.exceptions import map_error +from .operations import ServiceOperations +from .operations import ContainerOperations +from .operations import DirectoryOperations +from .operations import BlobOperations +from .operations import PageBlobOperations +from .operations import AppendBlobOperations +from .operations import BlockBlobOperations +from . import models + + +class AzureBlobStorage(object): + """AzureBlobStorage + + + :ivar service: Service operations + :vartype service: azure.storage.blob.operations.ServiceOperations + :ivar container: Container operations + :vartype container: azure.storage.blob.operations.ContainerOperations + :ivar directory: Directory operations + :vartype directory: azure.storage.blob.operations.DirectoryOperations + :ivar blob: Blob operations + :vartype blob: azure.storage.blob.operations.BlobOperations + :ivar page_blob: PageBlob operations + :vartype page_blob: azure.storage.blob.operations.PageBlobOperations + :ivar append_blob: AppendBlob operations + :vartype append_blob: azure.storage.blob.operations.AppendBlobOperations + :ivar block_blob: BlockBlob operations + :vartype block_blob: azure.storage.blob.operations.BlockBlobOperations + + :param url: The URL of the service account, container, or blob that is the + targe of the desired operation. + :type url: str + """ + + def __init__(self, url, **kwargs): + + base_url = '{url}' + self._config = AzureBlobStorageConfiguration(url, **kwargs) + self._client = PipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self.api_version = '2020-02-10' + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.service = ServiceOperations( + self._client, self._config, self._serialize, self._deserialize) + self.container = ContainerOperations( + self._client, self._config, self._serialize, self._deserialize) + self.directory = DirectoryOperations( + self._client, self._config, self._serialize, self._deserialize) + self.blob = BlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.page_blob = PageBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.append_blob = AppendBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.block_blob = BlockBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + + def close(self): + self._client.close() + def __enter__(self): + self._client.__enter__() + return self + def __exit__(self, *exc_details): + self._client.__exit__(*exc_details) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/_configuration.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/_configuration.py new file mode 100644 index 00000000000..c8a1875b6af --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/_configuration.py @@ -0,0 +1,52 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +from .version import VERSION + + +class AzureBlobStorageConfiguration(Configuration): + """Configuration for AzureBlobStorage + Note that all parameters used to create this instance are saved as instance + attributes. + + :param url: The URL of the service account, container, or blob that is the + targe of the desired operation. + :type url: str + :ivar version: Specifies the version of the operation to use for this + request. + :type version: str + """ + + def __init__(self, url, **kwargs): + + if url is None: + raise ValueError("Parameter 'url' must not be None.") + + super(AzureBlobStorageConfiguration, self).__init__(**kwargs) + self._configure(**kwargs) + + self.user_agent_policy.add_user_agent('azsdk-python-azureblobstorage/{}'.format(VERSION)) + self.generate_client_request_id = True + + self.url = url + self.version = "2020-02-10" + + def _configure(self, **kwargs): + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/__init__.py new file mode 100644 index 00000000000..009c9659435 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/__init__.py @@ -0,0 +1,13 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._azure_blob_storage_async import AzureBlobStorage +__all__ = ['AzureBlobStorage'] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/_azure_blob_storage_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/_azure_blob_storage_async.py new file mode 100644 index 00000000000..367e296ea6f --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/_azure_blob_storage_async.py @@ -0,0 +1,84 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core import AsyncPipelineClient +from msrest import Serializer, Deserializer + +from ._configuration_async import AzureBlobStorageConfiguration +from azure.core.exceptions import map_error +from .operations_async import ServiceOperations +from .operations_async import ContainerOperations +from .operations_async import DirectoryOperations +from .operations_async import BlobOperations +from .operations_async import PageBlobOperations +from .operations_async import AppendBlobOperations +from .operations_async import BlockBlobOperations +from .. import models + + +class AzureBlobStorage(object): + """AzureBlobStorage + + + :ivar service: Service operations + :vartype service: azure.storage.blob.aio.operations_async.ServiceOperations + :ivar container: Container operations + :vartype container: azure.storage.blob.aio.operations_async.ContainerOperations + :ivar directory: Directory operations + :vartype directory: azure.storage.blob.aio.operations_async.DirectoryOperations + :ivar blob: Blob operations + :vartype blob: azure.storage.blob.aio.operations_async.BlobOperations + :ivar page_blob: PageBlob operations + :vartype page_blob: azure.storage.blob.aio.operations_async.PageBlobOperations + :ivar append_blob: AppendBlob operations + :vartype append_blob: azure.storage.blob.aio.operations_async.AppendBlobOperations + :ivar block_blob: BlockBlob operations + :vartype block_blob: azure.storage.blob.aio.operations_async.BlockBlobOperations + + :param url: The URL of the service account, container, or blob that is the + targe of the desired operation. + :type url: str + """ + + def __init__( + self, url, **kwargs): + + base_url = '{url}' + self._config = AzureBlobStorageConfiguration(url, **kwargs) + self._client = AsyncPipelineClient(base_url=base_url, config=self._config, **kwargs) + + client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + self.api_version = '2020-02-10' + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.service = ServiceOperations( + self._client, self._config, self._serialize, self._deserialize) + self.container = ContainerOperations( + self._client, self._config, self._serialize, self._deserialize) + self.directory = DirectoryOperations( + self._client, self._config, self._serialize, self._deserialize) + self.blob = BlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.page_blob = PageBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.append_blob = AppendBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + self.block_blob = BlockBlobOperations( + self._client, self._config, self._serialize, self._deserialize) + + async def close(self): + await self._client.close() + async def __aenter__(self): + await self._client.__aenter__() + return self + async def __aexit__(self, *exc_details): + await self._client.__aexit__(*exc_details) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/_configuration_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/_configuration_async.py new file mode 100644 index 00000000000..609cb82ac85 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/_configuration_async.py @@ -0,0 +1,53 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.configuration import Configuration +from azure.core.pipeline import policies + +from ..version import VERSION + + +class AzureBlobStorageConfiguration(Configuration): + """Configuration for AzureBlobStorage + Note that all parameters used to create this instance are saved as instance + attributes. + + :param url: The URL of the service account, container, or blob that is the + targe of the desired operation. + :type url: str + :ivar version: Specifies the version of the operation to use for this + request. + :type version: str + """ + + def __init__(self, url, **kwargs): + + if url is None: + raise ValueError("Parameter 'url' must not be None.") + + super(AzureBlobStorageConfiguration, self).__init__(**kwargs) + self._configure(**kwargs) + + self.user_agent_policy.add_user_agent('azsdk-python-azureblobstorage/{}'.format(VERSION)) + self.generate_client_request_id = True + self.accept_language = None + + self.url = url + self.version = "2020-02-10" + + def _configure(self, **kwargs): + self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) + self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) + self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) + self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) + self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) + self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) + self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/__init__.py new file mode 100644 index 00000000000..dec05192c81 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/__init__.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._service_operations_async import ServiceOperations +from ._container_operations_async import ContainerOperations +from ._directory_operations_async import DirectoryOperations +from ._blob_operations_async import BlobOperations +from ._page_blob_operations_async import PageBlobOperations +from ._append_blob_operations_async import AppendBlobOperations +from ._block_blob_operations_async import BlockBlobOperations + +__all__ = [ + 'ServiceOperations', + 'ContainerOperations', + 'DirectoryOperations', + 'BlobOperations', + 'PageBlobOperations', + 'AppendBlobOperations', + 'BlockBlobOperations', +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_append_blob_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_append_blob_operations_async.py new file mode 100644 index 00000000000..ea79827cdbd --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_append_blob_operations_async.py @@ -0,0 +1,694 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class AppendBlobOperations: + """AppendBlobOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "AppendBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "AppendBlob" + + async def create(self, content_length, timeout=None, metadata=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Create Append Blob operation creates a new append blob. + + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}/{blob}'} + + async def append_block(self, body, content_length, timeout=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, lease_access_conditions=None, append_position_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Append Block operation commits a new block of data to the end of an + existing append blob. The Append Block operation is permitted only if + the blob was created with x-ms-blob-type set to AppendBlob. Append + Block is supported only on version 2015-02-21 version or later. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + max_size = None + if append_position_access_conditions is not None: + max_size = append_position_access_conditions.max_size + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "appendblock" + + # Construct URL + url = self.append_block.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if max_size is not None: + header_parameters['x-ms-blob-condition-maxsize'] = self._serialize.header("max_size", max_size, 'long') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-append-offset': self._deserialize('str', response.headers.get('x-ms-blob-append-offset')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + append_block.metadata = {'url': '/{containerName}/{blob}'} + + async def append_block_from_url(self, source_url, content_length, source_range=None, source_content_md5=None, source_contentcrc64=None, timeout=None, transactional_content_md5=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, append_position_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, *, cls=None, **kwargs): + """The Append Block operation commits a new block of data to the end of an + existing append blob where the contents are read from a source url. The + Append Block operation is permitted only if the blob was created with + x-ms-blob-type set to AppendBlob. Append Block is supported only on + version 2015-02-21 version or later. + + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param content_length: The length of the request. + :type content_length: long + :param source_range: Bytes of source data in the specified range. + :type source_range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + max_size = None + if append_position_access_conditions is not None: + max_size = append_position_access_conditions.max_size + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "appendblock" + + # Construct URL + url = self.append_block_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + if source_range is not None: + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if max_size is not None: + header_parameters['x-ms-blob-condition-maxsize'] = self._serialize.header("max_size", max_size, 'long') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-append-offset': self._deserialize('str', response.headers.get('x-ms-blob-append-offset')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + append_block_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def seal(self, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, append_position_access_conditions=None, *, cls=None, **kwargs): + """The Seal operation seals the Append Blob to make it read-only. Seal is + supported only on version 2019-12-12 version or later. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + + comp = "seal" + + # Construct URL + url = self.seal.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + seal.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_blob_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_blob_operations_async.py new file mode 100644 index 00000000000..21750b333fc --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_blob_operations_async.py @@ -0,0 +1,3067 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class BlobOperations: + """BlobOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_requires_sync: . Constant value: "true". + :ivar x_ms_copy_action: . Constant value: "abort". + :ivar restype: . Constant value: "account". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_requires_sync = "true" + self.x_ms_copy_action = "abort" + self.restype = "account" + + async def download(self, snapshot=None, version_id=None, timeout=None, range=None, range_get_content_md5=None, range_get_content_crc64=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Download operation reads or downloads a blob from the system, + including its metadata and properties. You can also call Download to + read a snapshot. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param range_get_content_md5: When set to true and specified together + with the Range, the service returns the MD5 hash for the range, as + long as the range is less than or equal to 4 MB in size. + :type range_get_content_md5: bool + :param range_get_content_crc64: When set to true and specified + together with the Range, the service returns the CRC64 hash for the + range, as long as the range is less than or equal to 4 MB in size. + :type range_get_content_crc64: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.download.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + if range_get_content_md5 is not None: + header_parameters['x-ms-range-get-content-md5'] = self._serialize.header("range_get_content_md5", range_get_content_md5, 'bool') + if range_get_content_crc64 is not None: + header_parameters['x-ms-range-get-content-crc64'] = self._serialize.header("range_get_content_crc64", range_get_content_crc64, 'bool') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 206]: + await response.load_body() + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-last-access-time': self._deserialize('rfc-1123', response.headers.get('x-ms-last-access-time')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + if response.status_code == 206: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-last-access-time': self._deserialize('rfc-1123', response.headers.get('x-ms-last-access-time')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + download.metadata = {'url': '/{containerName}/{blob}'} + + async def get_properties(self, snapshot=None, version_id=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Get Properties operation returns all user-defined metadata, + standard HTTP properties, and system properties for the blob. It does + not return the content of the blob. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-creation-time': self._deserialize('rfc-1123', response.headers.get('x-ms-creation-time')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-incremental-copy': self._deserialize('bool', response.headers.get('x-ms-incremental-copy')), + 'x-ms-copy-destination-snapshot': self._deserialize('str', response.headers.get('x-ms-copy-destination-snapshot')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-access-tier': self._deserialize('str', response.headers.get('x-ms-access-tier')), + 'x-ms-access-tier-inferred': self._deserialize('bool', response.headers.get('x-ms-access-tier-inferred')), + 'x-ms-archive-status': self._deserialize('str', response.headers.get('x-ms-archive-status')), + 'x-ms-access-tier-change-time': self._deserialize('rfc-1123', response.headers.get('x-ms-access-tier-change-time')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'x-ms-is-current-version': self._deserialize('bool', response.headers.get('x-ms-is-current-version')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-expiry-time': self._deserialize('rfc-1123', response.headers.get('x-ms-expiry-time')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-rehydrate-priority': self._deserialize('str', response.headers.get('x-ms-rehydrate-priority')), + 'x-ms-last-access-time': self._deserialize('rfc-1123', response.headers.get('x-ms-last-access-time')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_properties.metadata = {'url': '/{containerName}/{blob}'} + + async def delete(self, snapshot=None, version_id=None, timeout=None, delete_snapshots=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """If the storage account's soft delete feature is disabled then, when a + blob is deleted, it is permanently removed from the storage account. If + the storage account's soft delete feature is enabled, then, when a blob + is deleted, it is marked for deletion and becomes inaccessible + immediately. However, the blob service retains the blob or snapshot for + the number of days specified by the DeleteRetentionPolicy section of + [Storage service properties] (Set-Blob-Service-Properties.md). After + the specified number of days has passed, the blob's data is permanently + removed from the storage account. Note that you continue to be charged + for the soft-deleted blob's storage until it is permanently removed. + Use the List Blobs API and specify the "include=deleted" query + parameter to discover which blobs and snapshots have been soft deleted. + You can then use the Undelete Blob API to restore a soft-deleted blob. + All other operations on a soft-deleted blob or snapshot causes the + service to return an HTTP status code of 404 (ResourceNotFound). + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param delete_snapshots: Required if the blob has associated + snapshots. Specify one of the following two options: include: Delete + the base blob and all of its snapshots. only: Delete only the blob's + snapshots and not the blob itself. Possible values include: 'include', + 'only' + :type delete_snapshots: str or + ~azure.storage.blob.models.DeleteSnapshotsOptionType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if delete_snapshots is not None: + header_parameters['x-ms-delete-snapshots'] = self._serialize.header("delete_snapshots", delete_snapshots, 'DeleteSnapshotsOptionType') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{containerName}/{blob}'} + + async def set_access_control(self, timeout=None, owner=None, group=None, posix_permissions=None, posix_acl=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Set the owner, group, permissions, or access control list for a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param owner: Optional. The owner of the blob or directory. + :type owner: str + :param group: Optional. The owning group of the blob or directory. + :type group: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_acl: Sets POSIX access control rights on files and + directories. The value is a comma-separated list of access control + entries. Each access control entry (ACE) consists of a scope, a type, + a user or group identifier, and permissions in the format + "[scope:][type]:[id]:[permissions]". + :type posix_acl: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "setAccessControl" + + # Construct URL + url = self.set_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if owner is not None: + header_parameters['x-ms-owner'] = self._serialize.header("owner", owner, 'str') + if group is not None: + header_parameters['x-ms-group'] = self._serialize.header("group", group, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_acl is not None: + header_parameters['x-ms-acl'] = self._serialize.header("posix_acl", posix_acl, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + set_access_control.metadata = {'url': '/{filesystem}/{path}'} + + async def get_access_control(self, timeout=None, upn=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Get the owner, group, permissions, or access control list for a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param upn: Optional. Valid only when Hierarchical Namespace is + enabled for the account. If "true", the identity values returned in + the x-ms-owner, x-ms-group, and x-ms-acl response headers will be + transformed from Azure Active Directory Object IDs to User Principal + Names. If "false", the values will be returned as Azure Active + Directory Object IDs. The default value is false. + :type upn: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "getAccessControl" + + # Construct URL + url = self.get_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if upn is not None: + query_parameters['upn'] = self._serialize.query("upn", upn, 'bool') + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-owner': self._deserialize('str', response.headers.get('x-ms-owner')), + 'x-ms-group': self._deserialize('str', response.headers.get('x-ms-group')), + 'x-ms-permissions': self._deserialize('str', response.headers.get('x-ms-permissions')), + 'x-ms-acl': self._deserialize('str', response.headers.get('x-ms-acl')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + get_access_control.metadata = {'url': '/{filesystem}/{path}'} + + async def rename(self, rename_source, timeout=None, path_rename_mode=None, directory_properties=None, posix_permissions=None, posix_umask=None, source_lease_id=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, *, cls=None, **kwargs): + """Rename a blob/file. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param rename_source: The file or directory to be renamed. The value + must have the following format: "/{filesysystem}/{path}". If + "x-ms-properties" is specified, the properties will overwrite the + existing properties; otherwise, the existing properties will be + preserved. + :type rename_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param path_rename_mode: Determines the behavior of the rename + operation. Possible values include: 'legacy', 'posix' + :type path_rename_mode: str or + ~azure.storage.blob.models.PathRenameMode + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param source_lease_id: A lease ID for the source path. If specified, + the source path must have an active lease and the lease ID must match. + :type source_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + # Construct URL + url = self.rename.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if path_rename_mode is not None: + query_parameters['mode'] = self._serialize.query("path_rename_mode", path_rename_mode, 'PathRenameMode') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-rename-source'] = self._serialize.header("rename_source", rename_source, 'str') + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + if source_lease_id is not None: + header_parameters['x-ms-source-lease-id'] = self._serialize.header("source_lease_id", source_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + rename.metadata = {'url': '/{filesystem}/{path}'} + + async def undelete(self, timeout=None, request_id=None, *, cls=None, **kwargs): + """Undelete a blob that was previously soft deleted. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "undelete" + + # Construct URL + url = self.undelete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + undelete.metadata = {'url': '/{containerName}/{blob}'} + + async def set_expiry(self, expiry_options, timeout=None, request_id=None, expires_on=None, *, cls=None, **kwargs): + """Sets the time a blob will expire and be deleted. + + :param expiry_options: Required. Indicates mode of the expiry time. + Possible values include: 'NeverExpire', 'RelativeToCreation', + 'RelativeToNow', 'Absolute' + :type expiry_options: str or + ~azure.storage.blob.models.BlobExpiryOptions + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param expires_on: The time to set the blob to expiry + :type expires_on: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "expiry" + + # Construct URL + url = self.set_expiry.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-expiry-option'] = self._serialize.header("expiry_options", expiry_options, 'str') + if expires_on is not None: + header_parameters['x-ms-expiry-time'] = self._serialize.header("expires_on", expires_on, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_expiry.metadata = {'url': '/{containerName}/{blob}'} + + async def set_http_headers(self, timeout=None, request_id=None, blob_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Set HTTP Headers operation sets system properties on the blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.set_http_headers.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_http_headers.metadata = {'url': '/{containerName}/{blob}'} + + async def set_metadata(self, timeout=None, metadata=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Set Blob Metadata operation sets user-defined metadata for the + specified blob as one or more name-value pairs. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "metadata" + + # Construct URL + url = self.set_metadata.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_metadata.metadata = {'url': '/{containerName}/{blob}'} + + async def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param duration: Specifies the duration of the lease, in seconds, or + negative one (-1) for a lease that never expires. A non-infinite lease + can be between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. + :type duration: int + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "acquire" + + # Construct URL + url = self.acquire_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if duration is not None: + header_parameters['x-ms-lease-duration'] = self._serialize.header("duration", duration, 'int') + if proposed_lease_id is not None: + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + acquire_lease.metadata = {'url': '/{containerName}/{blob}'} + + async def release_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "release" + + # Construct URL + url = self.release_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + release_lease.metadata = {'url': '/{containerName}/{blob}'} + + async def renew_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "renew" + + # Construct URL + url = self.renew_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + renew_lease.metadata = {'url': '/{containerName}/{blob}'} + + async def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "change" + + # Construct URL + url = self.change_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + change_lease.metadata = {'url': '/{containerName}/{blob}'} + + async def break_lease(self, timeout=None, break_period=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param break_period: For a break operation, proposed duration the + lease should continue before it is broken, in seconds, between 0 and + 60. This break period is only used if it is shorter than the time + remaining on the lease. If longer, the time remaining on the lease is + used. A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break period. + If this header does not appear with a break operation, a + fixed-duration lease breaks after the remaining lease period elapses, + and an infinite lease breaks immediately. + :type break_period: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "break" + + # Construct URL + url = self.break_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if break_period is not None: + header_parameters['x-ms-lease-break-period'] = self._serialize.header("break_period", break_period, 'int') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-time': self._deserialize('int', response.headers.get('x-ms-lease-time')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + break_lease.metadata = {'url': '/{containerName}/{blob}'} + + async def create_snapshot(self, timeout=None, metadata=None, request_id=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, lease_access_conditions=None, *, cls=None, **kwargs): + """The Create Snapshot operation creates a read-only snapshot of a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + comp = "snapshot" + + # Construct URL + url = self.create_snapshot.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-snapshot': self._deserialize('str', response.headers.get('x-ms-snapshot')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create_snapshot.metadata = {'url': '/{containerName}/{blob}'} + + async def start_copy_from_url(self, copy_source, timeout=None, metadata=None, tier=None, rehydrate_priority=None, request_id=None, blob_tags_string=None, seal_blob=None, source_modified_access_conditions=None, modified_access_conditions=None, lease_access_conditions=None, *, cls=None, **kwargs): + """The Start Copy From URL operation copies a blob or an internet resource + to a new blob. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param rehydrate_priority: Optional: Indicates the priority with which + to rehydrate an archived blob. Possible values include: 'High', + 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param seal_blob: Overrides the sealed state of the destination blob. + Service version 2019-12-12 and newer. + :type seal_blob: bool + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + source_if_tags = None + if source_modified_access_conditions is not None: + source_if_tags = source_modified_access_conditions.source_if_tags + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + # Construct URL + url = self.start_copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if rehydrate_priority is not None: + header_parameters['x-ms-rehydrate-priority'] = self._serialize.header("rehydrate_priority", rehydrate_priority, 'str') + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + if seal_blob is not None: + header_parameters['x-ms-seal-blob'] = self._serialize.header("seal_blob", seal_blob, 'bool') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + if source_if_tags is not None: + header_parameters['x-ms-source-if-tags'] = self._serialize.header("source_if_tags", source_if_tags, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + start_copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def copy_from_url(self, copy_source, timeout=None, metadata=None, tier=None, request_id=None, source_content_md5=None, blob_tags_string=None, source_modified_access_conditions=None, modified_access_conditions=None, lease_access_conditions=None, *, cls=None, **kwargs): + """The Copy From URL operation copies a blob or an internet resource to a + new blob. It will not return a response until the copy is complete. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + # Construct URL + url = self.copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-requires-sync'] = self._serialize.header("self.x_ms_requires_sync", self.x_ms_requires_sync, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.SyncCopyStatusType, response.headers.get('x-ms-copy-status')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def abort_copy_from_url(self, copy_id, timeout=None, request_id=None, lease_access_conditions=None, *, cls=None, **kwargs): + """The Abort Copy From URL operation aborts a pending Copy From URL + operation, and leaves a destination blob with zero length and full + metadata. + + :param copy_id: The copy identifier provided in the x-ms-copy-id + header of the original Copy Blob operation. + :type copy_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + comp = "copy" + + # Construct URL + url = self.abort_copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['copyid'] = self._serialize.query("copy_id", copy_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-copy-action'] = self._serialize.header("self.x_ms_copy_action", self.x_ms_copy_action, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + abort_copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def set_tier(self, tier, snapshot=None, version_id=None, timeout=None, rehydrate_priority=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Set Tier operation sets the tier on a blob. The operation is + allowed on a page blob in a premium storage account and on a block blob + in a blob storage account (locally redundant storage only). A premium + page blob's tier determines the allowed size, IOPS, and bandwidth of + the blob. A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param tier: Indicates the tier to be set on the blob. Possible values + include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', 'P40', 'P50', 'P60', + 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierRequired + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param rehydrate_priority: Optional: Indicates the priority with which + to rehydrate an archived blob. Possible values include: 'High', + 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tier" + + # Construct URL + url = self.set_tier.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if rehydrate_priority is not None: + header_parameters['x-ms-rehydrate-priority'] = self._serialize.header("rehydrate_priority", rehydrate_priority, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_tier.metadata = {'url': '/{containerName}/{blob}'} + + async def get_account_info(self, *, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("self.restype", self.restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/{containerName}/{blob}'} + + async def query(self, query_request=None, snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Query operation enables users to select/project on blob data by + providing simple query expressions. + + :param query_request: the query request + :type query_request: ~azure.storage.blob.models.QueryRequest + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "query" + + # Construct URL + url = self.query.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + if query_request is not None: + body_content = self._serialize.body(query_request, 'QueryRequest') + else: + body_content = None + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 206]: + await response.load_body() + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + if response.status_code == 206: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + query.metadata = {'url': '/{containerName}/{blob}'} + + async def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Get Tags operation enables users to get the tags associated with a + blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: BlobTags or the result of cls(response) + :rtype: ~azure.storage.blob.models.BlobTags + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tags" + + # Construct URL + url = self.get_tags.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlobTags', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_tags.metadata = {'url': '/{containerName}/{blob}'} + + async def set_tags(self, timeout=None, version_id=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, tags=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Set Tags operation enables users to set tags on a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param tags: Blob tags + :type tags: ~azure.storage.blob.models.BlobTags + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tags" + + # Construct URL + url = self.set_tags.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + if tags is not None: + body_content = self._serialize.body(tags, 'BlobTags') + else: + body_content = None + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_tags.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_block_blob_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_block_blob_operations_async.py new file mode 100644 index 00000000000..e06937056b0 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_block_blob_operations_async.py @@ -0,0 +1,833 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class BlockBlobOperations: + """BlockBlobOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "BlockBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "BlockBlob" + + async def upload(self, body, content_length, timeout=None, transactional_content_md5=None, metadata=None, tier=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Upload Block Blob operation updates the content of an existing + block blob. Updating an existing block blob overwrites any existing + metadata on the blob. Partial updates are not supported with Put Blob; + the content of the existing blob is overwritten with the content of the + new blob. To perform a partial update of the content of a block blob, + use the Put Block List operation. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.upload.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload.metadata = {'url': '/{containerName}/{blob}'} + + async def stage_block(self, block_id, content_length, body, transactional_content_md5=None, transactional_content_crc64=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, *, cls=None, **kwargs): + """The Stage Block operation creates a new block to be committed as part + of a blob. + + :param block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the blockid parameter must be the same size for each block. + :type block_id: str + :param content_length: The length of the request. + :type content_length: long + :param body: Initial data + :type body: Generator + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + + comp = "block" + + # Construct URL + url = self.stage_block.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['blockid'] = self._serialize.query("block_id", block_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + stage_block.metadata = {'url': '/{containerName}/{blob}'} + + async def stage_block_from_url(self, block_id, content_length, source_url, source_range=None, source_content_md5=None, source_contentcrc64=None, timeout=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, source_modified_access_conditions=None, *, cls=None, **kwargs): + """The Stage Block operation creates a new block to be committed as part + of a blob where the contents are read from a URL. + + :param block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the blockid parameter must be the same size for each block. + :type block_id: str + :param content_length: The length of the request. + :type content_length: long + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param source_range: Bytes of source data in the specified range. + :type source_range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "block" + + # Construct URL + url = self.stage_block_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['blockid'] = self._serialize.query("block_id", block_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + if source_range is not None: + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + stage_block_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def commit_block_list(self, blocks, timeout=None, transactional_content_md5=None, transactional_content_crc64=None, metadata=None, tier=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Commit Block List operation writes a blob by specifying the list of + block IDs that make up the blob. In order to be written as part of a + blob, a block must have been successfully written to the server in a + prior Put Block operation. You can call Put Block List to update a blob + by uploading only those blocks that have changed, then committing the + new and existing blocks together. You can do this by specifying whether + to commit a block from the committed block list or from the uncommitted + block list, or to commit the most recently uploaded version of the + block, whichever list it may belong to. + + :param blocks: + :type blocks: ~azure.storage.blob.models.BlockLookupList + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "blocklist" + + # Construct URL + url = self.commit_block_list.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + body_content = self._serialize.body(blocks, 'BlockLookupList') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + commit_block_list.metadata = {'url': '/{containerName}/{blob}'} + + async def get_block_list(self, list_type="committed", snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Get Block List operation retrieves the list of blocks that have + been uploaded as part of a block blob. + + :param list_type: Specifies whether to return the list of committed + blocks, the list of uncommitted blocks, or both lists together. + Possible values include: 'committed', 'uncommitted', 'all' + :type list_type: str or ~azure.storage.blob.models.BlockListType + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: BlockList or the result of cls(response) + :rtype: ~azure.storage.blob.models.BlockList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "blocklist" + + # Construct URL + url = self.get_block_list.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + query_parameters['blocklisttype'] = self._serialize.query("list_type", list_type, 'BlockListType') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlockList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_block_list.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_container_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_container_operations_async.py new file mode 100644 index 00000000000..b7e1eb840e7 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_container_operations_async.py @@ -0,0 +1,1400 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class ContainerOperations: + """ContainerOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + + async def create(self, timeout=None, metadata=None, access=None, request_id=None, container_cpk_scope_info=None, *, cls=None, **kwargs): + """creates a new container under the specified account. If the container + with the same name already exists, the operation fails. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param access: Specifies whether data in the container may be accessed + publicly and the level of access. Possible values include: + 'container', 'blob' + :type access: str or ~azure.storage.blob.models.PublicAccessType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param container_cpk_scope_info: Additional parameters for the + operation + :type container_cpk_scope_info: + ~azure.storage.blob.models.ContainerCpkScopeInfo + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + default_encryption_scope = None + if container_cpk_scope_info is not None: + default_encryption_scope = container_cpk_scope_info.default_encryption_scope + prevent_encryption_scope_override = None + if container_cpk_scope_info is not None: + prevent_encryption_scope_override = container_cpk_scope_info.prevent_encryption_scope_override + + restype = "container" + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if access is not None: + header_parameters['x-ms-blob-public-access'] = self._serialize.header("access", access, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if default_encryption_scope is not None: + header_parameters['x-ms-default-encryption-scope'] = self._serialize.header("default_encryption_scope", default_encryption_scope, 'str') + if prevent_encryption_scope_override is not None: + header_parameters['x-ms-deny-encryption-scope-override'] = self._serialize.header("prevent_encryption_scope_override", prevent_encryption_scope_override, 'bool') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}'} + + async def get_properties(self, timeout=None, request_id=None, lease_access_conditions=None, *, cls=None, **kwargs): + """returns all user-defined metadata and system properties for the + specified container. The data returned does not include the container's + list of blobs. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + restype = "container" + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-public-access': self._deserialize('str', response.headers.get('x-ms-blob-public-access')), + 'x-ms-has-immutability-policy': self._deserialize('bool', response.headers.get('x-ms-has-immutability-policy')), + 'x-ms-has-legal-hold': self._deserialize('bool', response.headers.get('x-ms-has-legal-hold')), + 'x-ms-default-encryption-scope': self._deserialize('str', response.headers.get('x-ms-default-encryption-scope')), + 'x-ms-deny-encryption-scope-override': self._deserialize('bool', response.headers.get('x-ms-deny-encryption-scope-override')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_properties.metadata = {'url': '/{containerName}'} + + async def delete(self, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """operation marks the specified container for deletion. The container and + any blobs contained within it are later deleted during garbage + collection. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + restype = "container" + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{containerName}'} + + async def set_metadata(self, timeout=None, metadata=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """operation sets one or more user-defined name-value pairs for the + specified container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + + restype = "container" + comp = "metadata" + + # Construct URL + url = self.set_metadata.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_metadata.metadata = {'url': '/{containerName}'} + + async def get_access_policy(self, timeout=None, request_id=None, lease_access_conditions=None, *, cls=None, **kwargs): + """gets the permissions for the specified container. The permissions + indicate whether container data may be accessed publicly. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: list or the result of cls(response) + :rtype: list[~azure.storage.blob.models.SignedIdentifier] + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + restype = "container" + comp = "acl" + + # Construct URL + url = self.get_access_policy.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('[SignedIdentifier]', response) + header_dict = { + 'x-ms-blob-public-access': self._deserialize('str', response.headers.get('x-ms-blob-public-access')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_access_policy.metadata = {'url': '/{containerName}'} + + async def set_access_policy(self, container_acl=None, timeout=None, access=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """sets the permissions for the specified container. The permissions + indicate whether blobs in a container may be accessed publicly. + + :param container_acl: the acls for the container + :type container_acl: list[~azure.storage.blob.models.SignedIdentifier] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param access: Specifies whether data in the container may be accessed + publicly and the level of access. Possible values include: + 'container', 'blob' + :type access: str or ~azure.storage.blob.models.PublicAccessType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + restype = "container" + comp = "acl" + + # Construct URL + url = self.set_access_policy.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + if access is not None: + header_parameters['x-ms-blob-public-access'] = self._serialize.header("access", access, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct body + serialization_ctxt = {'xml': {'name': 'SignedIdentifiers', 'itemsName': 'SignedIdentifiers', 'wrapped': True}} + if container_acl is not None: + body_content = self._serialize.body(container_acl, '[SignedIdentifier]', serialization_ctxt=serialization_ctxt) + else: + body_content = None + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_access_policy.metadata = {'url': '/{containerName}'} + + async def restore(self, timeout=None, request_id=None, deleted_container_name=None, deleted_container_version=None, *, cls=None, **kwargs): + """Restores a previously-deleted container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param deleted_container_name: Optional. Version 2019-12-12 and + laster. Specifies the name of the deleted container to restore. + :type deleted_container_name: str + :param deleted_container_version: Optional. Version 2019-12-12 and + laster. Specifies the version of the deleted container to restore. + :type deleted_container_version: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "undelete" + + # Construct URL + url = self.restore.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if deleted_container_name is not None: + header_parameters['x-ms-deleted-container-name'] = self._serialize.header("deleted_container_name", deleted_container_name, 'str') + if deleted_container_version is not None: + header_parameters['x-ms-deleted-container-version'] = self._serialize.header("deleted_container_version", deleted_container_version, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + restore.metadata = {'url': '/{containerName}'} + + async def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param duration: Specifies the duration of the lease, in seconds, or + negative one (-1) for a lease that never expires. A non-infinite lease + can be between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. + :type duration: int + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "acquire" + + # Construct URL + url = self.acquire_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if duration is not None: + header_parameters['x-ms-lease-duration'] = self._serialize.header("duration", duration, 'int') + if proposed_lease_id is not None: + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + acquire_lease.metadata = {'url': '/{containerName}'} + + async def release_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "release" + + # Construct URL + url = self.release_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + release_lease.metadata = {'url': '/{containerName}'} + + async def renew_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "renew" + + # Construct URL + url = self.renew_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + renew_lease.metadata = {'url': '/{containerName}'} + + async def break_lease(self, timeout=None, break_period=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param break_period: For a break operation, proposed duration the + lease should continue before it is broken, in seconds, between 0 and + 60. This break period is only used if it is shorter than the time + remaining on the lease. If longer, the time remaining on the lease is + used. A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break period. + If this header does not appear with a break operation, a + fixed-duration lease breaks after the remaining lease period elapses, + and an infinite lease breaks immediately. + :type break_period: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "break" + + # Construct URL + url = self.break_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if break_period is not None: + header_parameters['x-ms-lease-break-period'] = self._serialize.header("break_period", break_period, 'int') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-time': self._deserialize('int', response.headers.get('x-ms-lease-time')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + break_lease.metadata = {'url': '/{containerName}'} + + async def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "change" + + # Construct URL + url = self.change_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + change_lease.metadata = {'url': '/{containerName}'} + + async def list_blob_flat_segment(self, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, *, cls=None, **kwargs): + """[Update] The List Blobs operation returns a list of the blobs under the + specified container. + + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify one or more datasets + to include in the response. + :type include: list[str or + ~azure.storage.blob.models.ListBlobsIncludeItem] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListBlobsFlatSegmentResponse or the result of cls(response) + :rtype: ~azure.storage.blob.models.ListBlobsFlatSegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "list" + + # Construct URL + url = self.list_blob_flat_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListBlobsIncludeItem]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListBlobsFlatSegmentResponse', response) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_blob_flat_segment.metadata = {'url': '/{containerName}'} + + async def list_blob_hierarchy_segment(self, delimiter, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, *, cls=None, **kwargs): + """[Update] The List Blobs operation returns a list of the blobs under the + specified container. + + :param delimiter: When the request includes this parameter, the + operation returns a BlobPrefix element in the response body that acts + as a placeholder for all blobs whose names begin with the same + substring up to the appearance of the delimiter character. The + delimiter may be a single character or a string. + :type delimiter: str + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify one or more datasets + to include in the response. + :type include: list[str or + ~azure.storage.blob.models.ListBlobsIncludeItem] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListBlobsHierarchySegmentResponse or the result of + cls(response) + :rtype: ~azure.storage.blob.models.ListBlobsHierarchySegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "list" + + # Construct URL + url = self.list_blob_hierarchy_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + query_parameters['delimiter'] = self._serialize.query("delimiter", delimiter, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListBlobsIncludeItem]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListBlobsHierarchySegmentResponse', response) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_blob_hierarchy_segment.metadata = {'url': '/{containerName}'} + + async def get_account_info(self, *, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "account" + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/{containerName}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_directory_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_directory_operations_async.py new file mode 100644 index 00000000000..590c0f88433 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_directory_operations_async.py @@ -0,0 +1,739 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class DirectoryOperations: + """DirectoryOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar resource: . Constant value: "directory". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.resource = "directory" + + async def create(self, timeout=None, directory_properties=None, posix_permissions=None, posix_umask=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Create a directory. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['resource'] = self._serialize.query("self.resource", self.resource, 'str') + + # Construct headers + header_parameters = {} + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{filesystem}/{path}'} + + async def rename(self, rename_source, timeout=None, marker=None, path_rename_mode=None, directory_properties=None, posix_permissions=None, posix_umask=None, source_lease_id=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, *, cls=None, **kwargs): + """Rename a directory. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param rename_source: The file or directory to be renamed. The value + must have the following format: "/{filesysystem}/{path}". If + "x-ms-properties" is specified, the properties will overwrite the + existing properties; otherwise, the existing properties will be + preserved. + :type rename_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param marker: When renaming a directory, the number of paths that are + renamed with each invocation is limited. If the number of paths to be + renamed exceeds this limit, a continuation token is returned in this + response header. When a continuation token is returned in the + response, it must be specified in a subsequent invocation of the + rename operation to continue renaming the directory. + :type marker: str + :param path_rename_mode: Determines the behavior of the rename + operation. Possible values include: 'legacy', 'posix' + :type path_rename_mode: str or + ~azure.storage.blob.models.PathRenameMode + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param source_lease_id: A lease ID for the source path. If specified, + the source path must have an active lease and the lease ID must match. + :type source_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + # Construct URL + url = self.rename.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if marker is not None: + query_parameters['continuation'] = self._serialize.query("marker", marker, 'str') + if path_rename_mode is not None: + query_parameters['mode'] = self._serialize.query("path_rename_mode", path_rename_mode, 'PathRenameMode') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-rename-source'] = self._serialize.header("rename_source", rename_source, 'str') + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + if source_lease_id is not None: + header_parameters['x-ms-source-lease-id'] = self._serialize.header("source_lease_id", source_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-continuation': self._deserialize('str', response.headers.get('x-ms-continuation')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + rename.metadata = {'url': '/{filesystem}/{path}'} + + async def delete(self, recursive_directory_delete, timeout=None, marker=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Deletes the directory. + + :param recursive_directory_delete: If "true", all paths beneath the + directory will be deleted. If "false" and the directory is non-empty, + an error occurs. + :type recursive_directory_delete: bool + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param marker: When renaming a directory, the number of paths that are + renamed with each invocation is limited. If the number of paths to be + renamed exceeds this limit, a continuation token is returned in this + response header. When a continuation token is returned in the + response, it must be specified in a subsequent invocation of the + rename operation to continue renaming the directory. + :type marker: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['recursive'] = self._serialize.query("recursive_directory_delete", recursive_directory_delete, 'bool') + if marker is not None: + query_parameters['continuation'] = self._serialize.query("marker", marker, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-continuation': self._deserialize('str', response.headers.get('x-ms-continuation')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{filesystem}/{path}'} + + async def set_access_control(self, timeout=None, owner=None, group=None, posix_permissions=None, posix_acl=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Set the owner, group, permissions, or access control list for a + directory. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param owner: Optional. The owner of the blob or directory. + :type owner: str + :param group: Optional. The owning group of the blob or directory. + :type group: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_acl: Sets POSIX access control rights on files and + directories. The value is a comma-separated list of access control + entries. Each access control entry (ACE) consists of a scope, a type, + a user or group identifier, and permissions in the format + "[scope:][type]:[id]:[permissions]". + :type posix_acl: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "setAccessControl" + + # Construct URL + url = self.set_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if owner is not None: + header_parameters['x-ms-owner'] = self._serialize.header("owner", owner, 'str') + if group is not None: + header_parameters['x-ms-group'] = self._serialize.header("group", group, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_acl is not None: + header_parameters['x-ms-acl'] = self._serialize.header("posix_acl", posix_acl, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + set_access_control.metadata = {'url': '/{filesystem}/{path}'} + + async def get_access_control(self, timeout=None, upn=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Get the owner, group, permissions, or access control list for a + directory. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param upn: Optional. Valid only when Hierarchical Namespace is + enabled for the account. If "true", the identity values returned in + the x-ms-owner, x-ms-group, and x-ms-acl response headers will be + transformed from Azure Active Directory Object IDs to User Principal + Names. If "false", the values will be returned as Azure Active + Directory Object IDs. The default value is false. + :type upn: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "getAccessControl" + + # Construct URL + url = self.get_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if upn is not None: + query_parameters['upn'] = self._serialize.query("upn", upn, 'bool') + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-owner': self._deserialize('str', response.headers.get('x-ms-owner')), + 'x-ms-group': self._deserialize('str', response.headers.get('x-ms-group')), + 'x-ms-permissions': self._deserialize('str', response.headers.get('x-ms-permissions')), + 'x-ms-acl': self._deserialize('str', response.headers.get('x-ms-acl')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + get_access_control.metadata = {'url': '/{filesystem}/{path}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_page_blob_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_page_blob_operations_async.py new file mode 100644 index 00000000000..c54a27cf8bf --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_page_blob_operations_async.py @@ -0,0 +1,1399 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class PageBlobOperations: + """PageBlobOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "PageBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "PageBlob" + + async def create(self, content_length, blob_content_length, timeout=None, tier=None, metadata=None, blob_sequence_number=0, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Create operation creates a new page blob. + + :param content_length: The length of the request. + :type content_length: long + :param blob_content_length: This header specifies the maximum size for + the page blob, up to 1 TB. The page blob size must be aligned to a + 512-byte boundary. + :type blob_content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param tier: Optional. Indicates the tier to be set on the page blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80' + :type tier: str or + ~azure.storage.blob.models.PremiumPageBlobAccessTier + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param blob_sequence_number: Set for page blobs only. The sequence + number is a user-controlled value that you can use to track requests. + The value of the sequence number must be between 0 and 2^63 - 1. + :type blob_sequence_number: long + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-blob-content-length'] = self._serialize.header("blob_content_length", blob_content_length, 'long') + if blob_sequence_number is not None: + header_parameters['x-ms-blob-sequence-number'] = self._serialize.header("blob_sequence_number", blob_sequence_number, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}/{blob}'} + + async def upload_pages(self, body, content_length, transactional_content_md5=None, transactional_content_crc64=None, timeout=None, range=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, sequence_number_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Upload Pages operation writes a range of pages to a page blob. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "page" + page_write = "update" + + # Construct URL + url = self.upload_pages.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload_pages.metadata = {'url': '/{containerName}/{blob}'} + + async def clear_pages(self, content_length, timeout=None, range=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, sequence_number_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Clear Pages operation clears a set of pages from a page blob. + + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "page" + page_write = "clear" + + # Construct URL + url = self.clear_pages.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + clear_pages.metadata = {'url': '/{containerName}/{blob}'} + + async def upload_pages_from_url(self, source_url, source_range, content_length, range, source_content_md5=None, source_contentcrc64=None, timeout=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, sequence_number_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, *, cls=None, **kwargs): + """The Upload Pages operation writes a range of pages to a page blob where + the contents are read from a URL. + + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param source_range: Bytes of source data in the specified range. The + length of this range should match the ContentLength header and + x-ms-range/Range destination range header. + :type source_range: str + :param content_length: The length of the request. + :type content_length: long + :param range: The range of bytes to which the source range would be + written. The range should be 512 aligned and range-end is required. + :type range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "page" + page_write = "update" + + # Construct URL + url = self.upload_pages_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload_pages_from_url.metadata = {'url': '/{containerName}/{blob}'} + + async def get_page_ranges(self, snapshot=None, timeout=None, range=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Get Page Ranges operation returns the list of valid page ranges for + a page blob or snapshot of a page blob. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: PageList or the result of cls(response) + :rtype: ~azure.storage.blob.models.PageList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "pagelist" + + # Construct URL + url = self.get_page_ranges.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PageList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_page_ranges.metadata = {'url': '/{containerName}/{blob}'} + + async def get_page_ranges_diff(self, snapshot=None, timeout=None, prevsnapshot=None, prev_snapshot_url=None, range=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Get Page Ranges Diff operation returns the list of valid page + ranges for a page blob that were changed between target blob and + previous snapshot. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param prevsnapshot: Optional in version 2015-07-08 and newer. The + prevsnapshot parameter is a DateTime value that specifies that the + response will contain only pages that were changed between target blob + and previous snapshot. Changed pages include both updated and cleared + pages. The target blob may be a snapshot, as long as the snapshot + specified by prevsnapshot is the older of the two. Note that + incremental snapshots are currently supported only for blobs created + on or after January 1, 2016. + :type prevsnapshot: str + :param prev_snapshot_url: Optional. This header is only supported in + service versions 2019-04-19 and after and specifies the URL of a + previous snapshot of the target blob. The response will only contain + pages that were changed between the target blob and its previous + snapshot. + :type prev_snapshot_url: str + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: PageList or the result of cls(response) + :rtype: ~azure.storage.blob.models.PageList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "pagelist" + + # Construct URL + url = self.get_page_ranges_diff.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if prevsnapshot is not None: + query_parameters['prevsnapshot'] = self._serialize.query("prevsnapshot", prevsnapshot, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if prev_snapshot_url is not None: + header_parameters['x-ms-previous-snapshot-url'] = self._serialize.header("prev_snapshot_url", prev_snapshot_url, 'str') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PageList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_page_ranges_diff.metadata = {'url': '/{containerName}/{blob}'} + + async def resize(self, blob_content_length, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Resize the Blob. + + :param blob_content_length: This header specifies the maximum size for + the page blob, up to 1 TB. The page blob size must be aligned to a + 512-byte boundary. + :type blob_content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.resize.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-blob-content-length'] = self._serialize.header("blob_content_length", blob_content_length, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + resize.metadata = {'url': '/{containerName}/{blob}'} + + async def update_sequence_number(self, sequence_number_action, timeout=None, blob_sequence_number=0, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): + """Update the sequence number of the blob. + + :param sequence_number_action: Required if the + x-ms-blob-sequence-number header is set for the request. This property + applies to page blobs only. This property indicates how the service + should modify the blob's sequence number. Possible values include: + 'max', 'update', 'increment' + :type sequence_number_action: str or + ~azure.storage.blob.models.SequenceNumberActionType + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param blob_sequence_number: Set for page blobs only. The sequence + number is a user-controlled value that you can use to track requests. + The value of the sequence number must be between 0 and 2^63 - 1. + :type blob_sequence_number: long + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.update_sequence_number.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-sequence-number-action'] = self._serialize.header("sequence_number_action", sequence_number_action, 'SequenceNumberActionType') + if blob_sequence_number is not None: + header_parameters['x-ms-blob-sequence-number'] = self._serialize.header("blob_sequence_number", blob_sequence_number, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + update_sequence_number.metadata = {'url': '/{containerName}/{blob}'} + + async def copy_incremental(self, copy_source, timeout=None, request_id=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Copy Incremental operation copies a snapshot of the source page + blob to a destination page blob. The snapshot is copied such that only + the differential changes between the previously copied snapshot are + transferred to the destination. The copied snapshots are complete + copies of the original snapshot and can be read or copied from as + usual. This API is supported since REST version 2016-05-31. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "incrementalcopy" + + # Construct URL + url = self.copy_incremental.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + copy_incremental.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_service_operations_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_service_operations_async.py new file mode 100644 index 00000000000..e12c2b9bfb5 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/aio/operations_async/_service_operations_async.py @@ -0,0 +1,664 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from ... import models + + +class ServiceOperations: + """ServiceOperations async operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer) -> None: + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + + async def set_properties(self, storage_service_properties, timeout=None, request_id=None, *, cls=None, **kwargs): + """Sets properties for a storage account's Blob service endpoint, + including properties for Storage Analytics and CORS (Cross-Origin + Resource Sharing) rules. + + :param storage_service_properties: The StorageService properties. + :type storage_service_properties: + ~azure.storage.blob.models.StorageServiceProperties + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "properties" + + # Construct URL + url = self.set_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + body_content = self._serialize.body(storage_service_properties, 'StorageServiceProperties') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_properties.metadata = {'url': '/'} + + async def get_properties(self, timeout=None, request_id=None, *, cls=None, **kwargs): + """gets the properties of a storage account's Blob service, including + properties for Storage Analytics and CORS (Cross-Origin Resource + Sharing) rules. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: StorageServiceProperties or the result of cls(response) + :rtype: ~azure.storage.blob.models.StorageServiceProperties + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "properties" + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageServiceProperties', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_properties.metadata = {'url': '/'} + + async def get_statistics(self, timeout=None, request_id=None, *, cls=None, **kwargs): + """Retrieves statistics related to replication for the Blob service. It is + only available on the secondary location endpoint when read-access + geo-redundant replication is enabled for the storage account. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: StorageServiceStats or the result of cls(response) + :rtype: ~azure.storage.blob.models.StorageServiceStats + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "stats" + + # Construct URL + url = self.get_statistics.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageServiceStats', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_statistics.metadata = {'url': '/'} + + async def list_containers_segment(self, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, *, cls=None, **kwargs): + """The List Containers Segment operation returns a list of the containers + under the specified account. + + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify that the container's + metadata be returned as part of the response body. + :type include: list[str or + ~azure.storage.blob.models.ListContainersIncludeType] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListContainersSegmentResponse or the result of cls(response) + :rtype: ~azure.storage.blob.models.ListContainersSegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "list" + + # Construct URL + url = self.list_containers_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListContainersIncludeType]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListContainersSegmentResponse', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_containers_segment.metadata = {'url': '/'} + + async def get_user_delegation_key(self, key_info, timeout=None, request_id=None, *, cls=None, **kwargs): + """Retrieves a user delegation key for the Blob service. This is only a + valid operation when using bearer token authentication. + + :param key_info: + :type key_info: ~azure.storage.blob.models.KeyInfo + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: UserDelegationKey or the result of cls(response) + :rtype: ~azure.storage.blob.models.UserDelegationKey + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "userdelegationkey" + + # Construct URL + url = self.get_user_delegation_key.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + body_content = self._serialize.body(key_info, 'KeyInfo') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('UserDelegationKey', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_user_delegation_key.metadata = {'url': '/'} + + async def get_account_info(self, *, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "account" + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/'} + + async def submit_batch(self, body, content_length, multipart_content_type, timeout=None, request_id=None, *, cls=None, **kwargs): + """The Batch operation allows multiple API calls to be embedded into a + single HTTP request. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param multipart_content_type: Required. The value of this header must + be multipart/mixed with a batch boundary. Example header value: + multipart/mixed; boundary=batch_ + :type multipart_content_type: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "batch" + + # Construct URL + url = self.submit_batch.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['Content-Type'] = self._serialize.header("multipart_content_type", multipart_content_type, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + await response.load_body() + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + submit_batch.metadata = {'url': '/'} + + async def filter_blobs(self, timeout=None, request_id=None, where=None, marker=None, maxresults=None, *, cls=None, **kwargs): + """The Filter Blobs operation enables callers to list blobs across all + containers whose tags match a given search expression. Filter blobs + searches across all containers within a storage account but can be + scoped within the expression to a single container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param where: Filters the results to return only to return only blobs + whose tags match the specified expression. + :type where: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param callable cls: A custom type or function that will be passed the + direct response + :return: FilterBlobSegment or the result of cls(response) + :rtype: ~azure.storage.blob.models.FilterBlobSegment + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "blobs" + + # Construct URL + url = self.filter_blobs.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if where is not None: + query_parameters['where'] = self._serialize.query("where", where, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('FilterBlobSegment', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + filter_blobs.metadata = {'url': '/'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/__init__.py new file mode 100644 index 00000000000..3a6f8ed59f7 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/__init__.py @@ -0,0 +1,229 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +try: + from ._models_py3 import AccessPolicy + from ._models_py3 import AppendPositionAccessConditions + from ._models_py3 import ArrowConfiguration + from ._models_py3 import ArrowField + from ._models_py3 import BlobFlatListSegment + from ._models_py3 import BlobHierarchyListSegment + from ._models_py3 import BlobHTTPHeaders + from ._models_py3 import BlobItemInternal + from ._models_py3 import BlobMetadata + from ._models_py3 import BlobPrefix + from ._models_py3 import BlobPropertiesInternal + from ._models_py3 import BlobTag + from ._models_py3 import BlobTags + from ._models_py3 import Block + from ._models_py3 import BlockList + from ._models_py3 import BlockLookupList + from ._models_py3 import ClearRange + from ._models_py3 import ContainerCpkScopeInfo + from ._models_py3 import ContainerItem + from ._models_py3 import ContainerProperties + from ._models_py3 import CorsRule + from ._models_py3 import CpkInfo + from ._models_py3 import CpkScopeInfo + from ._models_py3 import DataLakeStorageError, DataLakeStorageErrorException + from ._models_py3 import DataLakeStorageErrorError + from ._models_py3 import DelimitedTextConfiguration + from ._models_py3 import DirectoryHttpHeaders + from ._models_py3 import FilterBlobItem + from ._models_py3 import FilterBlobSegment + from ._models_py3 import GeoReplication + from ._models_py3 import JsonTextConfiguration + from ._models_py3 import KeyInfo + from ._models_py3 import LeaseAccessConditions + from ._models_py3 import ListBlobsFlatSegmentResponse + from ._models_py3 import ListBlobsHierarchySegmentResponse + from ._models_py3 import ListContainersSegmentResponse + from ._models_py3 import Logging + from ._models_py3 import Metrics + from ._models_py3 import ModifiedAccessConditions + from ._models_py3 import PageList + from ._models_py3 import PageRange + from ._models_py3 import QueryFormat + from ._models_py3 import QueryRequest + from ._models_py3 import QuerySerialization + from ._models_py3 import RetentionPolicy + from ._models_py3 import SequenceNumberAccessConditions + from ._models_py3 import SignedIdentifier + from ._models_py3 import SourceModifiedAccessConditions + from ._models_py3 import StaticWebsite + from ._models_py3 import StorageError, StorageErrorException + from ._models_py3 import StorageServiceProperties + from ._models_py3 import StorageServiceStats + from ._models_py3 import UserDelegationKey +except (SyntaxError, ImportError): + from ._models import AccessPolicy + from ._models import AppendPositionAccessConditions + from ._models import ArrowConfiguration + from ._models import ArrowField + from ._models import BlobFlatListSegment + from ._models import BlobHierarchyListSegment + from ._models import BlobHTTPHeaders + from ._models import BlobItemInternal + from ._models import BlobMetadata + from ._models import BlobPrefix + from ._models import BlobPropertiesInternal + from ._models import BlobTag + from ._models import BlobTags + from ._models import Block + from ._models import BlockList + from ._models import BlockLookupList + from ._models import ClearRange + from ._models import ContainerCpkScopeInfo + from ._models import ContainerItem + from ._models import ContainerProperties + from ._models import CorsRule + from ._models import CpkInfo + from ._models import CpkScopeInfo + from ._models import DataLakeStorageError, DataLakeStorageErrorException + from ._models import DataLakeStorageErrorError + from ._models import DelimitedTextConfiguration + from ._models import DirectoryHttpHeaders + from ._models import FilterBlobItem + from ._models import FilterBlobSegment + from ._models import GeoReplication + from ._models import JsonTextConfiguration + from ._models import KeyInfo + from ._models import LeaseAccessConditions + from ._models import ListBlobsFlatSegmentResponse + from ._models import ListBlobsHierarchySegmentResponse + from ._models import ListContainersSegmentResponse + from ._models import Logging + from ._models import Metrics + from ._models import ModifiedAccessConditions + from ._models import PageList + from ._models import PageRange + from ._models import QueryFormat + from ._models import QueryRequest + from ._models import QuerySerialization + from ._models import RetentionPolicy + from ._models import SequenceNumberAccessConditions + from ._models import SignedIdentifier + from ._models import SourceModifiedAccessConditions + from ._models import StaticWebsite + from ._models import StorageError, StorageErrorException + from ._models import StorageServiceProperties + from ._models import StorageServiceStats + from ._models import UserDelegationKey +from ._azure_blob_storage_enums import ( + AccessTier, + AccessTierOptional, + AccessTierRequired, + AccountKind, + ArchiveStatus, + BlobExpiryOptions, + BlobType, + BlockListType, + CopyStatusType, + DeleteSnapshotsOptionType, + EncryptionAlgorithmType, + GeoReplicationStatusType, + LeaseDurationType, + LeaseStateType, + LeaseStatusType, + ListBlobsIncludeItem, + ListContainersIncludeType, + PathRenameMode, + PremiumPageBlobAccessTier, + PublicAccessType, + QueryFormatType, + RehydratePriority, + SequenceNumberActionType, + SkuName, + StorageErrorCode, + SyncCopyStatusType, +) + +__all__ = [ + 'AccessPolicy', + 'AppendPositionAccessConditions', + 'ArrowConfiguration', + 'ArrowField', + 'BlobFlatListSegment', + 'BlobHierarchyListSegment', + 'BlobHTTPHeaders', + 'BlobItemInternal', + 'BlobMetadata', + 'BlobPrefix', + 'BlobPropertiesInternal', + 'BlobTag', + 'BlobTags', + 'Block', + 'BlockList', + 'BlockLookupList', + 'ClearRange', + 'ContainerCpkScopeInfo', + 'ContainerItem', + 'ContainerProperties', + 'CorsRule', + 'CpkInfo', + 'CpkScopeInfo', + 'DataLakeStorageError', 'DataLakeStorageErrorException', + 'DataLakeStorageErrorError', + 'DelimitedTextConfiguration', + 'DirectoryHttpHeaders', + 'FilterBlobItem', + 'FilterBlobSegment', + 'GeoReplication', + 'JsonTextConfiguration', + 'KeyInfo', + 'LeaseAccessConditions', + 'ListBlobsFlatSegmentResponse', + 'ListBlobsHierarchySegmentResponse', + 'ListContainersSegmentResponse', + 'Logging', + 'Metrics', + 'ModifiedAccessConditions', + 'PageList', + 'PageRange', + 'QueryFormat', + 'QueryRequest', + 'QuerySerialization', + 'RetentionPolicy', + 'SequenceNumberAccessConditions', + 'SignedIdentifier', + 'SourceModifiedAccessConditions', + 'StaticWebsite', + 'StorageError', 'StorageErrorException', + 'StorageServiceProperties', + 'StorageServiceStats', + 'UserDelegationKey', + 'PublicAccessType', + 'CopyStatusType', + 'LeaseDurationType', + 'LeaseStateType', + 'LeaseStatusType', + 'AccessTier', + 'ArchiveStatus', + 'BlobType', + 'RehydratePriority', + 'StorageErrorCode', + 'GeoReplicationStatusType', + 'QueryFormatType', + 'AccessTierRequired', + 'AccessTierOptional', + 'PremiumPageBlobAccessTier', + 'BlobExpiryOptions', + 'BlockListType', + 'DeleteSnapshotsOptionType', + 'EncryptionAlgorithmType', + 'ListBlobsIncludeItem', + 'ListContainersIncludeType', + 'PathRenameMode', + 'SequenceNumberActionType', + 'SkuName', + 'AccountKind', + 'SyncCopyStatusType', +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/_azure_blob_storage_enums.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/_azure_blob_storage_enums.py new file mode 100644 index 00000000000..e45eea3f2f3 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/_azure_blob_storage_enums.py @@ -0,0 +1,343 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum + + +class PublicAccessType(str, Enum): + + container = "container" + blob = "blob" + + +class CopyStatusType(str, Enum): + + pending = "pending" + success = "success" + aborted = "aborted" + failed = "failed" + + +class LeaseDurationType(str, Enum): + + infinite = "infinite" + fixed = "fixed" + + +class LeaseStateType(str, Enum): + + available = "available" + leased = "leased" + expired = "expired" + breaking = "breaking" + broken = "broken" + + +class LeaseStatusType(str, Enum): + + locked = "locked" + unlocked = "unlocked" + + +class AccessTier(str, Enum): + + p4 = "P4" + p6 = "P6" + p10 = "P10" + p15 = "P15" + p20 = "P20" + p30 = "P30" + p40 = "P40" + p50 = "P50" + p60 = "P60" + p70 = "P70" + p80 = "P80" + hot = "Hot" + cool = "Cool" + archive = "Archive" + + +class ArchiveStatus(str, Enum): + + rehydrate_pending_to_hot = "rehydrate-pending-to-hot" + rehydrate_pending_to_cool = "rehydrate-pending-to-cool" + + +class BlobType(str, Enum): + + block_blob = "BlockBlob" + page_blob = "PageBlob" + append_blob = "AppendBlob" + + +class RehydratePriority(str, Enum): + + high = "High" + standard = "Standard" + + +class StorageErrorCode(str, Enum): + + account_already_exists = "AccountAlreadyExists" + account_being_created = "AccountBeingCreated" + account_is_disabled = "AccountIsDisabled" + authentication_failed = "AuthenticationFailed" + authorization_failure = "AuthorizationFailure" + condition_headers_not_supported = "ConditionHeadersNotSupported" + condition_not_met = "ConditionNotMet" + empty_metadata_key = "EmptyMetadataKey" + insufficient_account_permissions = "InsufficientAccountPermissions" + internal_error = "InternalError" + invalid_authentication_info = "InvalidAuthenticationInfo" + invalid_header_value = "InvalidHeaderValue" + invalid_http_verb = "InvalidHttpVerb" + invalid_input = "InvalidInput" + invalid_md5 = "InvalidMd5" + invalid_metadata = "InvalidMetadata" + invalid_query_parameter_value = "InvalidQueryParameterValue" + invalid_range = "InvalidRange" + invalid_resource_name = "InvalidResourceName" + invalid_uri = "InvalidUri" + invalid_xml_document = "InvalidXmlDocument" + invalid_xml_node_value = "InvalidXmlNodeValue" + md5_mismatch = "Md5Mismatch" + metadata_too_large = "MetadataTooLarge" + missing_content_length_header = "MissingContentLengthHeader" + missing_required_query_parameter = "MissingRequiredQueryParameter" + missing_required_header = "MissingRequiredHeader" + missing_required_xml_node = "MissingRequiredXmlNode" + multiple_condition_headers_not_supported = "MultipleConditionHeadersNotSupported" + operation_timed_out = "OperationTimedOut" + out_of_range_input = "OutOfRangeInput" + out_of_range_query_parameter_value = "OutOfRangeQueryParameterValue" + request_body_too_large = "RequestBodyTooLarge" + resource_type_mismatch = "ResourceTypeMismatch" + request_url_failed_to_parse = "RequestUrlFailedToParse" + resource_already_exists = "ResourceAlreadyExists" + resource_not_found = "ResourceNotFound" + server_busy = "ServerBusy" + unsupported_header = "UnsupportedHeader" + unsupported_xml_node = "UnsupportedXmlNode" + unsupported_query_parameter = "UnsupportedQueryParameter" + unsupported_http_verb = "UnsupportedHttpVerb" + append_position_condition_not_met = "AppendPositionConditionNotMet" + blob_already_exists = "BlobAlreadyExists" + blob_not_found = "BlobNotFound" + blob_overwritten = "BlobOverwritten" + blob_tier_inadequate_for_content_length = "BlobTierInadequateForContentLength" + block_count_exceeds_limit = "BlockCountExceedsLimit" + block_list_too_long = "BlockListTooLong" + cannot_change_to_lower_tier = "CannotChangeToLowerTier" + cannot_verify_copy_source = "CannotVerifyCopySource" + container_already_exists = "ContainerAlreadyExists" + container_being_deleted = "ContainerBeingDeleted" + container_disabled = "ContainerDisabled" + container_not_found = "ContainerNotFound" + content_length_larger_than_tier_limit = "ContentLengthLargerThanTierLimit" + copy_across_accounts_not_supported = "CopyAcrossAccountsNotSupported" + copy_id_mismatch = "CopyIdMismatch" + feature_version_mismatch = "FeatureVersionMismatch" + incremental_copy_blob_mismatch = "IncrementalCopyBlobMismatch" + incremental_copy_of_eralier_version_snapshot_not_allowed = "IncrementalCopyOfEralierVersionSnapshotNotAllowed" + incremental_copy_source_must_be_snapshot = "IncrementalCopySourceMustBeSnapshot" + infinite_lease_duration_required = "InfiniteLeaseDurationRequired" + invalid_blob_or_block = "InvalidBlobOrBlock" + invalid_blob_tier = "InvalidBlobTier" + invalid_blob_type = "InvalidBlobType" + invalid_block_id = "InvalidBlockId" + invalid_block_list = "InvalidBlockList" + invalid_operation = "InvalidOperation" + invalid_page_range = "InvalidPageRange" + invalid_source_blob_type = "InvalidSourceBlobType" + invalid_source_blob_url = "InvalidSourceBlobUrl" + invalid_version_for_page_blob_operation = "InvalidVersionForPageBlobOperation" + lease_already_present = "LeaseAlreadyPresent" + lease_already_broken = "LeaseAlreadyBroken" + lease_id_mismatch_with_blob_operation = "LeaseIdMismatchWithBlobOperation" + lease_id_mismatch_with_container_operation = "LeaseIdMismatchWithContainerOperation" + lease_id_mismatch_with_lease_operation = "LeaseIdMismatchWithLeaseOperation" + lease_id_missing = "LeaseIdMissing" + lease_is_breaking_and_cannot_be_acquired = "LeaseIsBreakingAndCannotBeAcquired" + lease_is_breaking_and_cannot_be_changed = "LeaseIsBreakingAndCannotBeChanged" + lease_is_broken_and_cannot_be_renewed = "LeaseIsBrokenAndCannotBeRenewed" + lease_lost = "LeaseLost" + lease_not_present_with_blob_operation = "LeaseNotPresentWithBlobOperation" + lease_not_present_with_container_operation = "LeaseNotPresentWithContainerOperation" + lease_not_present_with_lease_operation = "LeaseNotPresentWithLeaseOperation" + max_blob_size_condition_not_met = "MaxBlobSizeConditionNotMet" + no_authentication_information = "NoAuthenticationInformation" + no_pending_copy_operation = "NoPendingCopyOperation" + operation_not_allowed_on_incremental_copy_blob = "OperationNotAllowedOnIncrementalCopyBlob" + pending_copy_operation = "PendingCopyOperation" + previous_snapshot_cannot_be_newer = "PreviousSnapshotCannotBeNewer" + previous_snapshot_not_found = "PreviousSnapshotNotFound" + previous_snapshot_operation_not_supported = "PreviousSnapshotOperationNotSupported" + sequence_number_condition_not_met = "SequenceNumberConditionNotMet" + sequence_number_increment_too_large = "SequenceNumberIncrementTooLarge" + snapshot_count_exceeded = "SnapshotCountExceeded" + snaphot_operation_rate_exceeded = "SnaphotOperationRateExceeded" + snapshots_present = "SnapshotsPresent" + source_condition_not_met = "SourceConditionNotMet" + system_in_use = "SystemInUse" + target_condition_not_met = "TargetConditionNotMet" + unauthorized_blob_overwrite = "UnauthorizedBlobOverwrite" + blob_being_rehydrated = "BlobBeingRehydrated" + blob_archived = "BlobArchived" + blob_not_archived = "BlobNotArchived" + authorization_source_ip_mismatch = "AuthorizationSourceIPMismatch" + authorization_protocol_mismatch = "AuthorizationProtocolMismatch" + authorization_permission_mismatch = "AuthorizationPermissionMismatch" + authorization_service_mismatch = "AuthorizationServiceMismatch" + authorization_resource_type_mismatch = "AuthorizationResourceTypeMismatch" + + +class GeoReplicationStatusType(str, Enum): + + live = "live" + bootstrap = "bootstrap" + unavailable = "unavailable" + + +class QueryFormatType(str, Enum): + + delimited = "delimited" + json = "json" + arrow = "arrow" + + +class AccessTierRequired(str, Enum): + + p4 = "P4" + p6 = "P6" + p10 = "P10" + p15 = "P15" + p20 = "P20" + p30 = "P30" + p40 = "P40" + p50 = "P50" + p60 = "P60" + p70 = "P70" + p80 = "P80" + hot = "Hot" + cool = "Cool" + archive = "Archive" + + +class AccessTierOptional(str, Enum): + + p4 = "P4" + p6 = "P6" + p10 = "P10" + p15 = "P15" + p20 = "P20" + p30 = "P30" + p40 = "P40" + p50 = "P50" + p60 = "P60" + p70 = "P70" + p80 = "P80" + hot = "Hot" + cool = "Cool" + archive = "Archive" + + +class PremiumPageBlobAccessTier(str, Enum): + + p4 = "P4" + p6 = "P6" + p10 = "P10" + p15 = "P15" + p20 = "P20" + p30 = "P30" + p40 = "P40" + p50 = "P50" + p60 = "P60" + p70 = "P70" + p80 = "P80" + + +class BlobExpiryOptions(str, Enum): + + never_expire = "NeverExpire" + relative_to_creation = "RelativeToCreation" + relative_to_now = "RelativeToNow" + absolute = "Absolute" + + +class BlockListType(str, Enum): + + committed = "committed" + uncommitted = "uncommitted" + all = "all" + + +class DeleteSnapshotsOptionType(str, Enum): + + include = "include" + only = "only" + + +class EncryptionAlgorithmType(str, Enum): + + aes256 = "AES256" + + +class ListBlobsIncludeItem(str, Enum): + + copy = "copy" + deleted = "deleted" + metadata = "metadata" + snapshots = "snapshots" + uncommittedblobs = "uncommittedblobs" + versions = "versions" + tags = "tags" + + +class ListContainersIncludeType(str, Enum): + + metadata = "metadata" + deleted = "deleted" + + +class PathRenameMode(str, Enum): + + legacy = "legacy" + posix = "posix" + + +class SequenceNumberActionType(str, Enum): + + max = "max" + update = "update" + increment = "increment" + + +class SkuName(str, Enum): + + standard_lrs = "Standard_LRS" + standard_grs = "Standard_GRS" + standard_ragrs = "Standard_RAGRS" + standard_zrs = "Standard_ZRS" + premium_lrs = "Premium_LRS" + + +class AccountKind(str, Enum): + + storage = "Storage" + blob_storage = "BlobStorage" + storage_v2 = "StorageV2" + file_storage = "FileStorage" + block_blob_storage = "BlockBlobStorage" + + +class SyncCopyStatusType(str, Enum): + + success = "success" diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/_models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/_models.py new file mode 100644 index 00000000000..1fdddbe96a0 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/_models.py @@ -0,0 +1,2009 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from azure.core.exceptions import HttpResponseError + + +class AccessPolicy(Model): + """An Access policy. + + :param start: the date-time the policy is active + :type start: str + :param expiry: the date-time the policy expires + :type expiry: str + :param permission: the permissions for the acl policy + :type permission: str + """ + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'str', 'xml': {'name': 'Start'}}, + 'expiry': {'key': 'Expiry', 'type': 'str', 'xml': {'name': 'Expiry'}}, + 'permission': {'key': 'Permission', 'type': 'str', 'xml': {'name': 'Permission'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(AccessPolicy, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.expiry = kwargs.get('expiry', None) + self.permission = kwargs.get('permission', None) + + +class AppendPositionAccessConditions(Model): + """Additional parameters for a set of operations, such as: + AppendBlob_append_block, AppendBlob_append_block_from_url, AppendBlob_seal. + + :param max_size: Optional conditional header. The max length in bytes + permitted for the append blob. If the Append Block operation would cause + the blob to exceed that limit or if the blob size is already greater than + the value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition + Failed). + :type max_size: long + :param append_position: Optional conditional header, used only for the + Append Block operation. A number indicating the byte offset to compare. + Append Block will succeed only if the append position is equal to this + number. If it is not, the request will fail with the + AppendPositionConditionNotMet error (HTTP status code 412 - Precondition + Failed). + :type append_position: long + """ + + _attribute_map = { + 'max_size': {'key': '', 'type': 'long', 'xml': {'name': 'max_size'}}, + 'append_position': {'key': '', 'type': 'long', 'xml': {'name': 'append_position'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(AppendPositionAccessConditions, self).__init__(**kwargs) + self.max_size = kwargs.get('max_size', None) + self.append_position = kwargs.get('append_position', None) + + +class ArrowConfiguration(Model): + """arrow configuration. + + All required parameters must be populated in order to send to Azure. + + :param schema: Required. + :type schema: list[~azure.storage.blob.models.ArrowField] + """ + + _validation = { + 'schema': {'required': True}, + } + + _attribute_map = { + 'schema': {'key': 'Schema', 'type': '[ArrowField]', 'xml': {'name': 'Schema', 'itemsName': 'Schema', 'wrapped': True}}, + } + _xml_map = { + 'name': 'ArrowConfiguration' + } + + def __init__(self, **kwargs): + super(ArrowConfiguration, self).__init__(**kwargs) + self.schema = kwargs.get('schema', None) + + +class ArrowField(Model): + """field of an arrow schema. + + All required parameters must be populated in order to send to Azure. + + :param type: Required. + :type type: str + :param name: + :type name: str + :param precision: + :type precision: int + :param scale: + :type scale: int + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'Type', 'type': 'str', 'xml': {'name': 'Type'}}, + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'precision': {'key': 'Precision', 'type': 'int', 'xml': {'name': 'Precision'}}, + 'scale': {'key': 'Scale', 'type': 'int', 'xml': {'name': 'Scale'}}, + } + _xml_map = { + 'name': 'Field' + } + + def __init__(self, **kwargs): + super(ArrowField, self).__init__(**kwargs) + self.type = kwargs.get('type', None) + self.name = kwargs.get('name', None) + self.precision = kwargs.get('precision', None) + self.scale = kwargs.get('scale', None) + + +class BlobFlatListSegment(Model): + """BlobFlatListSegment. + + All required parameters must be populated in order to send to Azure. + + :param blob_items: Required. + :type blob_items: list[~azure.storage.blob.models.BlobItemInternal] + """ + + _validation = { + 'blob_items': {'required': True}, + } + + _attribute_map = { + 'blob_items': {'key': 'BlobItems', 'type': '[BlobItemInternal]', 'xml': {'name': 'BlobItems', 'itemsName': 'Blob'}}, + } + _xml_map = { + 'name': 'Blobs' + } + + def __init__(self, **kwargs): + super(BlobFlatListSegment, self).__init__(**kwargs) + self.blob_items = kwargs.get('blob_items', None) + + +class BlobHierarchyListSegment(Model): + """BlobHierarchyListSegment. + + All required parameters must be populated in order to send to Azure. + + :param blob_prefixes: + :type blob_prefixes: list[~azure.storage.blob.models.BlobPrefix] + :param blob_items: Required. + :type blob_items: list[~azure.storage.blob.models.BlobItemInternal] + """ + + _validation = { + 'blob_items': {'required': True}, + } + + _attribute_map = { + 'blob_prefixes': {'key': 'BlobPrefixes', 'type': '[BlobPrefix]', 'xml': {'name': 'BlobPrefix', 'itemsName': 'BlobPrefix'}}, + 'blob_items': {'key': 'BlobItems', 'type': '[BlobItemInternal]', 'xml': {'name': 'Blob', 'itemsName': 'Blob'}}, + } + _xml_map = { + 'name': 'Blobs' + } + + def __init__(self, **kwargs): + super(BlobHierarchyListSegment, self).__init__(**kwargs) + self.blob_prefixes = kwargs.get('blob_prefixes', None) + self.blob_items = kwargs.get('blob_items', None) + + +class BlobHTTPHeaders(Model): + """Additional parameters for a set of operations. + + :param blob_cache_control: Optional. Sets the blob's cache control. If + specified, this property is stored with the blob and returned with a read + request. + :type blob_cache_control: str + :param blob_content_type: Optional. Sets the blob's content type. If + specified, this property is stored with the blob and returned with a read + request. + :type blob_content_type: str + :param blob_content_md5: Optional. An MD5 hash of the blob content. Note + that this hash is not validated, as the hashes for the individual blocks + were validated when each was uploaded. + :type blob_content_md5: bytearray + :param blob_content_encoding: Optional. Sets the blob's content encoding. + If specified, this property is stored with the blob and returned with a + read request. + :type blob_content_encoding: str + :param blob_content_language: Optional. Set the blob's content language. + If specified, this property is stored with the blob and returned with a + read request. + :type blob_content_language: str + :param blob_content_disposition: Optional. Sets the blob's + Content-Disposition header. + :type blob_content_disposition: str + """ + + _attribute_map = { + 'blob_cache_control': {'key': '', 'type': 'str', 'xml': {'name': 'blob_cache_control'}}, + 'blob_content_type': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_type'}}, + 'blob_content_md5': {'key': '', 'type': 'bytearray', 'xml': {'name': 'blob_content_md5'}}, + 'blob_content_encoding': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_encoding'}}, + 'blob_content_language': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_language'}}, + 'blob_content_disposition': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_disposition'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(BlobHTTPHeaders, self).__init__(**kwargs) + self.blob_cache_control = kwargs.get('blob_cache_control', None) + self.blob_content_type = kwargs.get('blob_content_type', None) + self.blob_content_md5 = kwargs.get('blob_content_md5', None) + self.blob_content_encoding = kwargs.get('blob_content_encoding', None) + self.blob_content_language = kwargs.get('blob_content_language', None) + self.blob_content_disposition = kwargs.get('blob_content_disposition', None) + + +class BlobItemInternal(Model): + """An Azure Storage blob. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param deleted: Required. + :type deleted: bool + :param snapshot: Required. + :type snapshot: str + :param version_id: + :type version_id: str + :param is_current_version: + :type is_current_version: bool + :param properties: Required. + :type properties: ~azure.storage.blob.models.BlobPropertiesInternal + :param metadata: + :type metadata: ~azure.storage.blob.models.BlobMetadata + :param blob_tags: + :type blob_tags: ~azure.storage.blob.models.BlobTags + :param object_replication_metadata: + :type object_replication_metadata: dict[str, str] + """ + + _validation = { + 'name': {'required': True}, + 'deleted': {'required': True}, + 'snapshot': {'required': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'deleted': {'key': 'Deleted', 'type': 'bool', 'xml': {'name': 'Deleted'}}, + 'snapshot': {'key': 'Snapshot', 'type': 'str', 'xml': {'name': 'Snapshot'}}, + 'version_id': {'key': 'VersionId', 'type': 'str', 'xml': {'name': 'VersionId'}}, + 'is_current_version': {'key': 'IsCurrentVersion', 'type': 'bool', 'xml': {'name': 'IsCurrentVersion'}}, + 'properties': {'key': 'Properties', 'type': 'BlobPropertiesInternal', 'xml': {'name': 'Properties'}}, + 'metadata': {'key': 'Metadata', 'type': 'BlobMetadata', 'xml': {'name': 'Metadata'}}, + 'blob_tags': {'key': 'BlobTags', 'type': 'BlobTags', 'xml': {'name': 'BlobTags'}}, + 'object_replication_metadata': {'key': 'OrMetadata', 'type': '{str}', 'xml': {'name': 'OrMetadata'}}, + } + _xml_map = { + 'name': 'Blob' + } + + def __init__(self, **kwargs): + super(BlobItemInternal, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.deleted = kwargs.get('deleted', None) + self.snapshot = kwargs.get('snapshot', None) + self.version_id = kwargs.get('version_id', None) + self.is_current_version = kwargs.get('is_current_version', None) + self.properties = kwargs.get('properties', None) + self.metadata = kwargs.get('metadata', None) + self.blob_tags = kwargs.get('blob_tags', None) + self.object_replication_metadata = kwargs.get('object_replication_metadata', None) + + +class BlobMetadata(Model): + """BlobMetadata. + + :param additional_properties: Unmatched properties from the message are + deserialized this collection + :type additional_properties: dict[str, str] + :param encrypted: + :type encrypted: str + """ + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{str}', 'xml': {'name': 'additional_properties'}}, + 'encrypted': {'key': 'Encrypted', 'type': 'str', 'xml': {'name': 'Encrypted', 'attr': True}}, + } + _xml_map = { + 'name': 'Metadata' + } + + def __init__(self, **kwargs): + super(BlobMetadata, self).__init__(**kwargs) + self.additional_properties = kwargs.get('additional_properties', None) + self.encrypted = kwargs.get('encrypted', None) + + +class BlobPrefix(Model): + """BlobPrefix. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(BlobPrefix, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + + +class BlobPropertiesInternal(Model): + """Properties of a blob. + + All required parameters must be populated in order to send to Azure. + + :param creation_time: + :type creation_time: datetime + :param last_modified: Required. + :type last_modified: datetime + :param etag: Required. + :type etag: str + :param content_length: Size in bytes + :type content_length: long + :param content_type: + :type content_type: str + :param content_encoding: + :type content_encoding: str + :param content_language: + :type content_language: str + :param content_md5: + :type content_md5: bytearray + :param content_disposition: + :type content_disposition: str + :param cache_control: + :type cache_control: str + :param blob_sequence_number: + :type blob_sequence_number: long + :param blob_type: Possible values include: 'BlockBlob', 'PageBlob', + 'AppendBlob' + :type blob_type: str or ~azure.storage.blob.models.BlobType + :param lease_status: Possible values include: 'locked', 'unlocked' + :type lease_status: str or ~azure.storage.blob.models.LeaseStatusType + :param lease_state: Possible values include: 'available', 'leased', + 'expired', 'breaking', 'broken' + :type lease_state: str or ~azure.storage.blob.models.LeaseStateType + :param lease_duration: Possible values include: 'infinite', 'fixed' + :type lease_duration: str or ~azure.storage.blob.models.LeaseDurationType + :param copy_id: + :type copy_id: str + :param copy_status: Possible values include: 'pending', 'success', + 'aborted', 'failed' + :type copy_status: str or ~azure.storage.blob.models.CopyStatusType + :param copy_source: + :type copy_source: str + :param copy_progress: + :type copy_progress: str + :param copy_completion_time: + :type copy_completion_time: datetime + :param copy_status_description: + :type copy_status_description: str + :param server_encrypted: + :type server_encrypted: bool + :param incremental_copy: + :type incremental_copy: bool + :param destination_snapshot: + :type destination_snapshot: str + :param deleted_time: + :type deleted_time: datetime + :param remaining_retention_days: + :type remaining_retention_days: int + :param access_tier: Possible values include: 'P4', 'P6', 'P10', 'P15', + 'P20', 'P30', 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type access_tier: str or ~azure.storage.blob.models.AccessTier + :param access_tier_inferred: + :type access_tier_inferred: bool + :param archive_status: Possible values include: + 'rehydrate-pending-to-hot', 'rehydrate-pending-to-cool' + :type archive_status: str or ~azure.storage.blob.models.ArchiveStatus + :param customer_provided_key_sha256: + :type customer_provided_key_sha256: str + :param encryption_scope: The name of the encryption scope under which the + blob is encrypted. + :type encryption_scope: str + :param access_tier_change_time: + :type access_tier_change_time: datetime + :param tag_count: + :type tag_count: int + :param expires_on: + :type expires_on: datetime + :param is_sealed: + :type is_sealed: bool + :param rehydrate_priority: Possible values include: 'High', 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + :param last_accessed_on: + :type last_accessed_on: datetime + """ + + _validation = { + 'last_modified': {'required': True}, + 'etag': {'required': True}, + } + + _attribute_map = { + 'creation_time': {'key': 'Creation-Time', 'type': 'rfc-1123', 'xml': {'name': 'Creation-Time'}}, + 'last_modified': {'key': 'Last-Modified', 'type': 'rfc-1123', 'xml': {'name': 'Last-Modified'}}, + 'etag': {'key': 'Etag', 'type': 'str', 'xml': {'name': 'Etag'}}, + 'content_length': {'key': 'Content-Length', 'type': 'long', 'xml': {'name': 'Content-Length'}}, + 'content_type': {'key': 'Content-Type', 'type': 'str', 'xml': {'name': 'Content-Type'}}, + 'content_encoding': {'key': 'Content-Encoding', 'type': 'str', 'xml': {'name': 'Content-Encoding'}}, + 'content_language': {'key': 'Content-Language', 'type': 'str', 'xml': {'name': 'Content-Language'}}, + 'content_md5': {'key': 'Content-MD5', 'type': 'bytearray', 'xml': {'name': 'Content-MD5'}}, + 'content_disposition': {'key': 'Content-Disposition', 'type': 'str', 'xml': {'name': 'Content-Disposition'}}, + 'cache_control': {'key': 'Cache-Control', 'type': 'str', 'xml': {'name': 'Cache-Control'}}, + 'blob_sequence_number': {'key': 'x-ms-blob-sequence-number', 'type': 'long', 'xml': {'name': 'x-ms-blob-sequence-number'}}, + 'blob_type': {'key': 'BlobType', 'type': 'BlobType', 'xml': {'name': 'BlobType'}}, + 'lease_status': {'key': 'LeaseStatus', 'type': 'LeaseStatusType', 'xml': {'name': 'LeaseStatus'}}, + 'lease_state': {'key': 'LeaseState', 'type': 'LeaseStateType', 'xml': {'name': 'LeaseState'}}, + 'lease_duration': {'key': 'LeaseDuration', 'type': 'LeaseDurationType', 'xml': {'name': 'LeaseDuration'}}, + 'copy_id': {'key': 'CopyId', 'type': 'str', 'xml': {'name': 'CopyId'}}, + 'copy_status': {'key': 'CopyStatus', 'type': 'CopyStatusType', 'xml': {'name': 'CopyStatus'}}, + 'copy_source': {'key': 'CopySource', 'type': 'str', 'xml': {'name': 'CopySource'}}, + 'copy_progress': {'key': 'CopyProgress', 'type': 'str', 'xml': {'name': 'CopyProgress'}}, + 'copy_completion_time': {'key': 'CopyCompletionTime', 'type': 'rfc-1123', 'xml': {'name': 'CopyCompletionTime'}}, + 'copy_status_description': {'key': 'CopyStatusDescription', 'type': 'str', 'xml': {'name': 'CopyStatusDescription'}}, + 'server_encrypted': {'key': 'ServerEncrypted', 'type': 'bool', 'xml': {'name': 'ServerEncrypted'}}, + 'incremental_copy': {'key': 'IncrementalCopy', 'type': 'bool', 'xml': {'name': 'IncrementalCopy'}}, + 'destination_snapshot': {'key': 'DestinationSnapshot', 'type': 'str', 'xml': {'name': 'DestinationSnapshot'}}, + 'deleted_time': {'key': 'DeletedTime', 'type': 'rfc-1123', 'xml': {'name': 'DeletedTime'}}, + 'remaining_retention_days': {'key': 'RemainingRetentionDays', 'type': 'int', 'xml': {'name': 'RemainingRetentionDays'}}, + 'access_tier': {'key': 'AccessTier', 'type': 'str', 'xml': {'name': 'AccessTier'}}, + 'access_tier_inferred': {'key': 'AccessTierInferred', 'type': 'bool', 'xml': {'name': 'AccessTierInferred'}}, + 'archive_status': {'key': 'ArchiveStatus', 'type': 'str', 'xml': {'name': 'ArchiveStatus'}}, + 'customer_provided_key_sha256': {'key': 'CustomerProvidedKeySha256', 'type': 'str', 'xml': {'name': 'CustomerProvidedKeySha256'}}, + 'encryption_scope': {'key': 'EncryptionScope', 'type': 'str', 'xml': {'name': 'EncryptionScope'}}, + 'access_tier_change_time': {'key': 'AccessTierChangeTime', 'type': 'rfc-1123', 'xml': {'name': 'AccessTierChangeTime'}}, + 'tag_count': {'key': 'TagCount', 'type': 'int', 'xml': {'name': 'TagCount'}}, + 'expires_on': {'key': 'Expiry-Time', 'type': 'rfc-1123', 'xml': {'name': 'Expiry-Time'}}, + 'is_sealed': {'key': 'Sealed', 'type': 'bool', 'xml': {'name': 'Sealed'}}, + 'rehydrate_priority': {'key': 'RehydratePriority', 'type': 'str', 'xml': {'name': 'RehydratePriority'}}, + 'last_accessed_on': {'key': 'LastAccessTime', 'type': 'rfc-1123', 'xml': {'name': 'LastAccessTime'}}, + } + _xml_map = { + 'name': 'Properties' + } + + def __init__(self, **kwargs): + super(BlobPropertiesInternal, self).__init__(**kwargs) + self.creation_time = kwargs.get('creation_time', None) + self.last_modified = kwargs.get('last_modified', None) + self.etag = kwargs.get('etag', None) + self.content_length = kwargs.get('content_length', None) + self.content_type = kwargs.get('content_type', None) + self.content_encoding = kwargs.get('content_encoding', None) + self.content_language = kwargs.get('content_language', None) + self.content_md5 = kwargs.get('content_md5', None) + self.content_disposition = kwargs.get('content_disposition', None) + self.cache_control = kwargs.get('cache_control', None) + self.blob_sequence_number = kwargs.get('blob_sequence_number', None) + self.blob_type = kwargs.get('blob_type', None) + self.lease_status = kwargs.get('lease_status', None) + self.lease_state = kwargs.get('lease_state', None) + self.lease_duration = kwargs.get('lease_duration', None) + self.copy_id = kwargs.get('copy_id', None) + self.copy_status = kwargs.get('copy_status', None) + self.copy_source = kwargs.get('copy_source', None) + self.copy_progress = kwargs.get('copy_progress', None) + self.copy_completion_time = kwargs.get('copy_completion_time', None) + self.copy_status_description = kwargs.get('copy_status_description', None) + self.server_encrypted = kwargs.get('server_encrypted', None) + self.incremental_copy = kwargs.get('incremental_copy', None) + self.destination_snapshot = kwargs.get('destination_snapshot', None) + self.deleted_time = kwargs.get('deleted_time', None) + self.remaining_retention_days = kwargs.get('remaining_retention_days', None) + self.access_tier = kwargs.get('access_tier', None) + self.access_tier_inferred = kwargs.get('access_tier_inferred', None) + self.archive_status = kwargs.get('archive_status', None) + self.customer_provided_key_sha256 = kwargs.get('customer_provided_key_sha256', None) + self.encryption_scope = kwargs.get('encryption_scope', None) + self.access_tier_change_time = kwargs.get('access_tier_change_time', None) + self.tag_count = kwargs.get('tag_count', None) + self.expires_on = kwargs.get('expires_on', None) + self.is_sealed = kwargs.get('is_sealed', None) + self.rehydrate_priority = kwargs.get('rehydrate_priority', None) + self.last_accessed_on = kwargs.get('last_accessed_on', None) + + +class BlobTag(Model): + """BlobTag. + + All required parameters must be populated in order to send to Azure. + + :param key: Required. + :type key: str + :param value: Required. + :type value: str + """ + + _validation = { + 'key': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'key': {'key': 'Key', 'type': 'str', 'xml': {'name': 'Key'}}, + 'value': {'key': 'Value', 'type': 'str', 'xml': {'name': 'Value'}}, + } + _xml_map = { + 'name': 'Tag' + } + + def __init__(self, **kwargs): + super(BlobTag, self).__init__(**kwargs) + self.key = kwargs.get('key', None) + self.value = kwargs.get('value', None) + + +class BlobTags(Model): + """Blob tags. + + All required parameters must be populated in order to send to Azure. + + :param blob_tag_set: Required. + :type blob_tag_set: list[~azure.storage.blob.models.BlobTag] + """ + + _validation = { + 'blob_tag_set': {'required': True}, + } + + _attribute_map = { + 'blob_tag_set': {'key': 'BlobTagSet', 'type': '[BlobTag]', 'xml': {'name': 'TagSet', 'itemsName': 'TagSet', 'wrapped': True}}, + } + _xml_map = { + 'name': 'Tags' + } + + def __init__(self, **kwargs): + super(BlobTags, self).__init__(**kwargs) + self.blob_tag_set = kwargs.get('blob_tag_set', None) + + +class Block(Model): + """Represents a single block in a block blob. It describes the block's ID and + size. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The base64 encoded block ID. + :type name: str + :param size: Required. The block size in bytes. + :type size: int + """ + + _validation = { + 'name': {'required': True}, + 'size': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'size': {'key': 'Size', 'type': 'int', 'xml': {'name': 'Size'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(Block, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.size = kwargs.get('size', None) + + +class BlockList(Model): + """BlockList. + + :param committed_blocks: + :type committed_blocks: list[~azure.storage.blob.models.Block] + :param uncommitted_blocks: + :type uncommitted_blocks: list[~azure.storage.blob.models.Block] + """ + + _attribute_map = { + 'committed_blocks': {'key': 'CommittedBlocks', 'type': '[Block]', 'xml': {'name': 'CommittedBlocks', 'itemsName': 'Block', 'wrapped': True}}, + 'uncommitted_blocks': {'key': 'UncommittedBlocks', 'type': '[Block]', 'xml': {'name': 'UncommittedBlocks', 'itemsName': 'Block', 'wrapped': True}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(BlockList, self).__init__(**kwargs) + self.committed_blocks = kwargs.get('committed_blocks', None) + self.uncommitted_blocks = kwargs.get('uncommitted_blocks', None) + + +class BlockLookupList(Model): + """BlockLookupList. + + :param committed: + :type committed: list[str] + :param uncommitted: + :type uncommitted: list[str] + :param latest: + :type latest: list[str] + """ + + _attribute_map = { + 'committed': {'key': 'Committed', 'type': '[str]', 'xml': {'name': 'Committed', 'itemsName': 'Committed'}}, + 'uncommitted': {'key': 'Uncommitted', 'type': '[str]', 'xml': {'name': 'Uncommitted', 'itemsName': 'Uncommitted'}}, + 'latest': {'key': 'Latest', 'type': '[str]', 'xml': {'name': 'Latest', 'itemsName': 'Latest'}}, + } + _xml_map = { + 'name': 'BlockList' + } + + def __init__(self, **kwargs): + super(BlockLookupList, self).__init__(**kwargs) + self.committed = kwargs.get('committed', None) + self.uncommitted = kwargs.get('uncommitted', None) + self.latest = kwargs.get('latest', None) + + +class ClearRange(Model): + """ClearRange. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. + :type start: long + :param end: Required. + :type end: long + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'long', 'xml': {'name': 'Start'}}, + 'end': {'key': 'End', 'type': 'long', 'xml': {'name': 'End'}}, + } + _xml_map = { + 'name': 'ClearRange' + } + + def __init__(self, **kwargs): + super(ClearRange, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.end = kwargs.get('end', None) + + +class ContainerCpkScopeInfo(Model): + """Additional parameters for create operation. + + :param default_encryption_scope: Optional. Version 2019-07-07 and later. + Specifies the default encryption scope to set on the container and use for + all future writes. + :type default_encryption_scope: str + :param prevent_encryption_scope_override: Optional. Version 2019-07-07 + and newer. If true, prevents any request from specifying a different + encryption scope than the scope set on the container. + :type prevent_encryption_scope_override: bool + """ + + _attribute_map = { + 'default_encryption_scope': {'key': '', 'type': 'str', 'xml': {'name': 'default_encryption_scope'}}, + 'prevent_encryption_scope_override': {'key': '', 'type': 'bool', 'xml': {'name': 'prevent_encryption_scope_override'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(ContainerCpkScopeInfo, self).__init__(**kwargs) + self.default_encryption_scope = kwargs.get('default_encryption_scope', None) + self.prevent_encryption_scope_override = kwargs.get('prevent_encryption_scope_override', None) + + +class ContainerItem(Model): + """An Azure Storage container. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param deleted: + :type deleted: bool + :param version: + :type version: str + :param properties: Required. + :type properties: ~azure.storage.blob.models.ContainerProperties + :param metadata: + :type metadata: dict[str, str] + """ + + _validation = { + 'name': {'required': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'deleted': {'key': 'Deleted', 'type': 'bool', 'xml': {'name': 'Deleted'}}, + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'properties': {'key': 'Properties', 'type': 'ContainerProperties', 'xml': {'name': 'Properties'}}, + 'metadata': {'key': 'Metadata', 'type': '{str}', 'xml': {'name': 'Metadata'}}, + } + _xml_map = { + 'name': 'Container' + } + + def __init__(self, **kwargs): + super(ContainerItem, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.deleted = kwargs.get('deleted', None) + self.version = kwargs.get('version', None) + self.properties = kwargs.get('properties', None) + self.metadata = kwargs.get('metadata', None) + + +class ContainerProperties(Model): + """Properties of a container. + + All required parameters must be populated in order to send to Azure. + + :param last_modified: Required. + :type last_modified: datetime + :param etag: Required. + :type etag: str + :param lease_status: Possible values include: 'locked', 'unlocked' + :type lease_status: str or ~azure.storage.blob.models.LeaseStatusType + :param lease_state: Possible values include: 'available', 'leased', + 'expired', 'breaking', 'broken' + :type lease_state: str or ~azure.storage.blob.models.LeaseStateType + :param lease_duration: Possible values include: 'infinite', 'fixed' + :type lease_duration: str or ~azure.storage.blob.models.LeaseDurationType + :param public_access: Possible values include: 'container', 'blob' + :type public_access: str or ~azure.storage.blob.models.PublicAccessType + :param has_immutability_policy: + :type has_immutability_policy: bool + :param has_legal_hold: + :type has_legal_hold: bool + :param default_encryption_scope: + :type default_encryption_scope: str + :param prevent_encryption_scope_override: + :type prevent_encryption_scope_override: bool + :param deleted_time: + :type deleted_time: datetime + :param remaining_retention_days: + :type remaining_retention_days: int + """ + + _validation = { + 'last_modified': {'required': True}, + 'etag': {'required': True}, + } + + _attribute_map = { + 'last_modified': {'key': 'Last-Modified', 'type': 'rfc-1123', 'xml': {'name': 'Last-Modified'}}, + 'etag': {'key': 'Etag', 'type': 'str', 'xml': {'name': 'Etag'}}, + 'lease_status': {'key': 'LeaseStatus', 'type': 'LeaseStatusType', 'xml': {'name': 'LeaseStatus'}}, + 'lease_state': {'key': 'LeaseState', 'type': 'LeaseStateType', 'xml': {'name': 'LeaseState'}}, + 'lease_duration': {'key': 'LeaseDuration', 'type': 'LeaseDurationType', 'xml': {'name': 'LeaseDuration'}}, + 'public_access': {'key': 'PublicAccess', 'type': 'str', 'xml': {'name': 'PublicAccess'}}, + 'has_immutability_policy': {'key': 'HasImmutabilityPolicy', 'type': 'bool', 'xml': {'name': 'HasImmutabilityPolicy'}}, + 'has_legal_hold': {'key': 'HasLegalHold', 'type': 'bool', 'xml': {'name': 'HasLegalHold'}}, + 'default_encryption_scope': {'key': 'DefaultEncryptionScope', 'type': 'str', 'xml': {'name': 'DefaultEncryptionScope'}}, + 'prevent_encryption_scope_override': {'key': 'DenyEncryptionScopeOverride', 'type': 'bool', 'xml': {'name': 'DenyEncryptionScopeOverride'}}, + 'deleted_time': {'key': 'DeletedTime', 'type': 'rfc-1123', 'xml': {'name': 'DeletedTime'}}, + 'remaining_retention_days': {'key': 'RemainingRetentionDays', 'type': 'int', 'xml': {'name': 'RemainingRetentionDays'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(ContainerProperties, self).__init__(**kwargs) + self.last_modified = kwargs.get('last_modified', None) + self.etag = kwargs.get('etag', None) + self.lease_status = kwargs.get('lease_status', None) + self.lease_state = kwargs.get('lease_state', None) + self.lease_duration = kwargs.get('lease_duration', None) + self.public_access = kwargs.get('public_access', None) + self.has_immutability_policy = kwargs.get('has_immutability_policy', None) + self.has_legal_hold = kwargs.get('has_legal_hold', None) + self.default_encryption_scope = kwargs.get('default_encryption_scope', None) + self.prevent_encryption_scope_override = kwargs.get('prevent_encryption_scope_override', None) + self.deleted_time = kwargs.get('deleted_time', None) + self.remaining_retention_days = kwargs.get('remaining_retention_days', None) + + +class CorsRule(Model): + """CORS is an HTTP feature that enables a web application running under one + domain to access resources in another domain. Web browsers implement a + security restriction known as same-origin policy that prevents a web page + from calling APIs in a different domain; CORS provides a secure way to + allow one domain (the origin domain) to call APIs in another domain. + + All required parameters must be populated in order to send to Azure. + + :param allowed_origins: Required. The origin domains that are permitted to + make a request against the storage service via CORS. The origin domain is + the domain from which the request originates. Note that the origin must be + an exact case-sensitive match with the origin that the user age sends to + the service. You can also use the wildcard character '*' to allow all + origin domains to make requests via CORS. + :type allowed_origins: str + :param allowed_methods: Required. The methods (HTTP request verbs) that + the origin domain may use for a CORS request. (comma separated) + :type allowed_methods: str + :param allowed_headers: Required. the request headers that the origin + domain may specify on the CORS request. + :type allowed_headers: str + :param exposed_headers: Required. The response headers that may be sent in + the response to the CORS request and exposed by the browser to the request + issuer + :type exposed_headers: str + :param max_age_in_seconds: Required. The maximum amount time that a + browser should cache the preflight OPTIONS request. + :type max_age_in_seconds: int + """ + + _validation = { + 'allowed_origins': {'required': True}, + 'allowed_methods': {'required': True}, + 'allowed_headers': {'required': True}, + 'exposed_headers': {'required': True}, + 'max_age_in_seconds': {'required': True, 'minimum': 0}, + } + + _attribute_map = { + 'allowed_origins': {'key': 'AllowedOrigins', 'type': 'str', 'xml': {'name': 'AllowedOrigins'}}, + 'allowed_methods': {'key': 'AllowedMethods', 'type': 'str', 'xml': {'name': 'AllowedMethods'}}, + 'allowed_headers': {'key': 'AllowedHeaders', 'type': 'str', 'xml': {'name': 'AllowedHeaders'}}, + 'exposed_headers': {'key': 'ExposedHeaders', 'type': 'str', 'xml': {'name': 'ExposedHeaders'}}, + 'max_age_in_seconds': {'key': 'MaxAgeInSeconds', 'type': 'int', 'xml': {'name': 'MaxAgeInSeconds'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(CorsRule, self).__init__(**kwargs) + self.allowed_origins = kwargs.get('allowed_origins', None) + self.allowed_methods = kwargs.get('allowed_methods', None) + self.allowed_headers = kwargs.get('allowed_headers', None) + self.exposed_headers = kwargs.get('exposed_headers', None) + self.max_age_in_seconds = kwargs.get('max_age_in_seconds', None) + + +class CpkInfo(Model): + """Additional parameters for a set of operations. + + :param encryption_key: Optional. Specifies the encryption key to use to + encrypt the data provided in the request. If not specified, encryption is + performed with the root account encryption key. For more information, see + Encryption at Rest for Azure Storage Services. + :type encryption_key: str + :param encryption_key_sha256: The SHA-256 hash of the provided encryption + key. Must be provided if the x-ms-encryption-key header is provided. + :type encryption_key_sha256: str + :param encryption_algorithm: The algorithm used to produce the encryption + key hash. Currently, the only accepted value is "AES256". Must be provided + if the x-ms-encryption-key header is provided. Possible values include: + 'AES256' + :type encryption_algorithm: str or + ~azure.storage.blob.models.EncryptionAlgorithmType + """ + + _attribute_map = { + 'encryption_key': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_key'}}, + 'encryption_key_sha256': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_key_sha256'}}, + 'encryption_algorithm': {'key': '', 'type': 'EncryptionAlgorithmType', 'xml': {'name': 'encryption_algorithm'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(CpkInfo, self).__init__(**kwargs) + self.encryption_key = kwargs.get('encryption_key', None) + self.encryption_key_sha256 = kwargs.get('encryption_key_sha256', None) + self.encryption_algorithm = kwargs.get('encryption_algorithm', None) + + +class CpkScopeInfo(Model): + """Additional parameters for a set of operations. + + :param encryption_scope: Optional. Version 2019-07-07 and later. + Specifies the name of the encryption scope to use to encrypt the data + provided in the request. If not specified, encryption is performed with + the default account encryption scope. For more information, see + Encryption at Rest for Azure Storage Services. + :type encryption_scope: str + """ + + _attribute_map = { + 'encryption_scope': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_scope'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(CpkScopeInfo, self).__init__(**kwargs) + self.encryption_scope = kwargs.get('encryption_scope', None) + + +class DataLakeStorageError(Model): + """DataLakeStorageError. + + :param data_lake_storage_error_details: The service error response object. + :type data_lake_storage_error_details: + ~azure.storage.blob.models.DataLakeStorageErrorError + """ + + _attribute_map = { + 'data_lake_storage_error_details': {'key': 'error', 'type': 'DataLakeStorageErrorError', 'xml': {'name': 'error'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(DataLakeStorageError, self).__init__(**kwargs) + self.data_lake_storage_error_details = kwargs.get('data_lake_storage_error_details', None) + + +class DataLakeStorageErrorException(HttpResponseError): + """Server responsed with exception of type: 'DataLakeStorageError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, response, deserialize, *args): + + model_name = 'DataLakeStorageError' + self.error = deserialize(model_name, response) + if self.error is None: + self.error = deserialize.dependencies[model_name]() + super(DataLakeStorageErrorException, self).__init__(response=response) + + +class DataLakeStorageErrorError(Model): + """The service error response object. + + :param code: The service error code. + :type code: str + :param message: The service error message. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'Code', 'type': 'str', 'xml': {'name': 'Code'}}, + 'message': {'key': 'Message', 'type': 'str', 'xml': {'name': 'Message'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(DataLakeStorageErrorError, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + + +class DelimitedTextConfiguration(Model): + """delimited text configuration. + + All required parameters must be populated in order to send to Azure. + + :param column_separator: Required. column separator + :type column_separator: str + :param field_quote: Required. field quote + :type field_quote: str + :param record_separator: Required. record separator + :type record_separator: str + :param escape_char: Required. escape char + :type escape_char: str + :param headers_present: Required. has headers + :type headers_present: bool + """ + + _validation = { + 'column_separator': {'required': True}, + 'field_quote': {'required': True}, + 'record_separator': {'required': True}, + 'escape_char': {'required': True}, + 'headers_present': {'required': True}, + } + + _attribute_map = { + 'column_separator': {'key': 'ColumnSeparator', 'type': 'str', 'xml': {'name': 'ColumnSeparator'}}, + 'field_quote': {'key': 'FieldQuote', 'type': 'str', 'xml': {'name': 'FieldQuote'}}, + 'record_separator': {'key': 'RecordSeparator', 'type': 'str', 'xml': {'name': 'RecordSeparator'}}, + 'escape_char': {'key': 'EscapeChar', 'type': 'str', 'xml': {'name': 'EscapeChar'}}, + 'headers_present': {'key': 'HeadersPresent', 'type': 'bool', 'xml': {'name': 'HasHeaders'}}, + } + _xml_map = { + 'name': 'DelimitedTextConfiguration' + } + + def __init__(self, **kwargs): + super(DelimitedTextConfiguration, self).__init__(**kwargs) + self.column_separator = kwargs.get('column_separator', None) + self.field_quote = kwargs.get('field_quote', None) + self.record_separator = kwargs.get('record_separator', None) + self.escape_char = kwargs.get('escape_char', None) + self.headers_present = kwargs.get('headers_present', None) + + +class DirectoryHttpHeaders(Model): + """Additional parameters for a set of operations, such as: Directory_create, + Directory_rename, Blob_rename. + + :param cache_control: Cache control for given resource + :type cache_control: str + :param content_type: Content type for given resource + :type content_type: str + :param content_encoding: Content encoding for given resource + :type content_encoding: str + :param content_language: Content language for given resource + :type content_language: str + :param content_disposition: Content disposition for given resource + :type content_disposition: str + """ + + _attribute_map = { + 'cache_control': {'key': '', 'type': 'str', 'xml': {'name': 'cache_control'}}, + 'content_type': {'key': '', 'type': 'str', 'xml': {'name': 'content_type'}}, + 'content_encoding': {'key': '', 'type': 'str', 'xml': {'name': 'content_encoding'}}, + 'content_language': {'key': '', 'type': 'str', 'xml': {'name': 'content_language'}}, + 'content_disposition': {'key': '', 'type': 'str', 'xml': {'name': 'content_disposition'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(DirectoryHttpHeaders, self).__init__(**kwargs) + self.cache_control = kwargs.get('cache_control', None) + self.content_type = kwargs.get('content_type', None) + self.content_encoding = kwargs.get('content_encoding', None) + self.content_language = kwargs.get('content_language', None) + self.content_disposition = kwargs.get('content_disposition', None) + + +class FilterBlobItem(Model): + """Blob info from a Filter Blobs API call. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param container_name: Required. + :type container_name: str + :param tag_value: Required. + :type tag_value: str + """ + + _validation = { + 'name': {'required': True}, + 'container_name': {'required': True}, + 'tag_value': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName'}}, + 'tag_value': {'key': 'TagValue', 'type': 'str', 'xml': {'name': 'TagValue'}}, + } + _xml_map = { + 'name': 'Blob' + } + + def __init__(self, **kwargs): + super(FilterBlobItem, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.container_name = kwargs.get('container_name', None) + self.tag_value = kwargs.get('tag_value', None) + + +class FilterBlobSegment(Model): + """The result of a Filter Blobs API call. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param where: Required. + :type where: str + :param blobs: Required. + :type blobs: list[~azure.storage.blob.models.FilterBlobItem] + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'where': {'required': True}, + 'blobs': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'where': {'key': 'Where', 'type': 'str', 'xml': {'name': 'Where'}}, + 'blobs': {'key': 'Blobs', 'type': '[FilterBlobItem]', 'xml': {'name': 'Blobs', 'itemsName': 'Blobs', 'wrapped': True}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, **kwargs): + super(FilterBlobSegment, self).__init__(**kwargs) + self.service_endpoint = kwargs.get('service_endpoint', None) + self.where = kwargs.get('where', None) + self.blobs = kwargs.get('blobs', None) + self.next_marker = kwargs.get('next_marker', None) + + +class GeoReplication(Model): + """Geo-Replication information for the Secondary Storage Service. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The status of the secondary location. Possible + values include: 'live', 'bootstrap', 'unavailable' + :type status: str or ~azure.storage.blob.models.GeoReplicationStatusType + :param last_sync_time: Required. A GMT date/time value, to the second. All + primary writes preceding this value are guaranteed to be available for + read operations at the secondary. Primary writes after this point in time + may or may not be available for reads. + :type last_sync_time: datetime + """ + + _validation = { + 'status': {'required': True}, + 'last_sync_time': {'required': True}, + } + + _attribute_map = { + 'status': {'key': 'Status', 'type': 'str', 'xml': {'name': 'Status'}}, + 'last_sync_time': {'key': 'LastSyncTime', 'type': 'rfc-1123', 'xml': {'name': 'LastSyncTime'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(GeoReplication, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.last_sync_time = kwargs.get('last_sync_time', None) + + +class JsonTextConfiguration(Model): + """json text configuration. + + All required parameters must be populated in order to send to Azure. + + :param record_separator: Required. record separator + :type record_separator: str + """ + + _validation = { + 'record_separator': {'required': True}, + } + + _attribute_map = { + 'record_separator': {'key': 'RecordSeparator', 'type': 'str', 'xml': {'name': 'RecordSeparator'}}, + } + _xml_map = { + 'name': 'JsonTextConfiguration' + } + + def __init__(self, **kwargs): + super(JsonTextConfiguration, self).__init__(**kwargs) + self.record_separator = kwargs.get('record_separator', None) + + +class KeyInfo(Model): + """Key information. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The date-time the key is active in ISO 8601 UTC + time + :type start: str + :param expiry: Required. The date-time the key expires in ISO 8601 UTC + time + :type expiry: str + """ + + _validation = { + 'start': {'required': True}, + 'expiry': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'str', 'xml': {'name': 'Start'}}, + 'expiry': {'key': 'Expiry', 'type': 'str', 'xml': {'name': 'Expiry'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(KeyInfo, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.expiry = kwargs.get('expiry', None) + + +class LeaseAccessConditions(Model): + """Additional parameters for a set of operations. + + :param lease_id: If specified, the operation only succeeds if the + resource's lease is active and matches this ID. + :type lease_id: str + """ + + _attribute_map = { + 'lease_id': {'key': '', 'type': 'str', 'xml': {'name': 'lease_id'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(LeaseAccessConditions, self).__init__(**kwargs) + self.lease_id = kwargs.get('lease_id', None) + + +class ListBlobsFlatSegmentResponse(Model): + """An enumeration of blobs. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param container_name: Required. + :type container_name: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param segment: Required. + :type segment: ~azure.storage.blob.models.BlobFlatListSegment + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_name': {'required': True}, + 'segment': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'segment': {'key': 'Segment', 'type': 'BlobFlatListSegment', 'xml': {'name': 'Segment'}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, **kwargs): + super(ListBlobsFlatSegmentResponse, self).__init__(**kwargs) + self.service_endpoint = kwargs.get('service_endpoint', None) + self.container_name = kwargs.get('container_name', None) + self.prefix = kwargs.get('prefix', None) + self.marker = kwargs.get('marker', None) + self.max_results = kwargs.get('max_results', None) + self.segment = kwargs.get('segment', None) + self.next_marker = kwargs.get('next_marker', None) + + +class ListBlobsHierarchySegmentResponse(Model): + """An enumeration of blobs. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param container_name: Required. + :type container_name: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param delimiter: + :type delimiter: str + :param segment: Required. + :type segment: ~azure.storage.blob.models.BlobHierarchyListSegment + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_name': {'required': True}, + 'segment': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'delimiter': {'key': 'Delimiter', 'type': 'str', 'xml': {'name': 'Delimiter'}}, + 'segment': {'key': 'Segment', 'type': 'BlobHierarchyListSegment', 'xml': {'name': 'Segment'}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, **kwargs): + super(ListBlobsHierarchySegmentResponse, self).__init__(**kwargs) + self.service_endpoint = kwargs.get('service_endpoint', None) + self.container_name = kwargs.get('container_name', None) + self.prefix = kwargs.get('prefix', None) + self.marker = kwargs.get('marker', None) + self.max_results = kwargs.get('max_results', None) + self.delimiter = kwargs.get('delimiter', None) + self.segment = kwargs.get('segment', None) + self.next_marker = kwargs.get('next_marker', None) + + +class ListContainersSegmentResponse(Model): + """An enumeration of containers. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param container_items: Required. + :type container_items: list[~azure.storage.blob.models.ContainerItem] + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_items': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'container_items': {'key': 'ContainerItems', 'type': '[ContainerItem]', 'xml': {'name': 'Containers', 'itemsName': 'Containers', 'wrapped': True}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, **kwargs): + super(ListContainersSegmentResponse, self).__init__(**kwargs) + self.service_endpoint = kwargs.get('service_endpoint', None) + self.prefix = kwargs.get('prefix', None) + self.marker = kwargs.get('marker', None) + self.max_results = kwargs.get('max_results', None) + self.container_items = kwargs.get('container_items', None) + self.next_marker = kwargs.get('next_marker', None) + + +class Logging(Model): + """Azure Analytics Logging settings. + + All required parameters must be populated in order to send to Azure. + + :param version: Required. The version of Storage Analytics to configure. + :type version: str + :param delete: Required. Indicates whether all delete requests should be + logged. + :type delete: bool + :param read: Required. Indicates whether all read requests should be + logged. + :type read: bool + :param write: Required. Indicates whether all write requests should be + logged. + :type write: bool + :param retention_policy: Required. + :type retention_policy: ~azure.storage.blob.models.RetentionPolicy + """ + + _validation = { + 'version': {'required': True}, + 'delete': {'required': True}, + 'read': {'required': True}, + 'write': {'required': True}, + 'retention_policy': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'delete': {'key': 'Delete', 'type': 'bool', 'xml': {'name': 'Delete'}}, + 'read': {'key': 'Read', 'type': 'bool', 'xml': {'name': 'Read'}}, + 'write': {'key': 'Write', 'type': 'bool', 'xml': {'name': 'Write'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'RetentionPolicy'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(Logging, self).__init__(**kwargs) + self.version = kwargs.get('version', None) + self.delete = kwargs.get('delete', None) + self.read = kwargs.get('read', None) + self.write = kwargs.get('write', None) + self.retention_policy = kwargs.get('retention_policy', None) + + +class Metrics(Model): + """a summary of request statistics grouped by API in hour or minute aggregates + for blobs. + + All required parameters must be populated in order to send to Azure. + + :param version: The version of Storage Analytics to configure. + :type version: str + :param enabled: Required. Indicates whether metrics are enabled for the + Blob service. + :type enabled: bool + :param include_apis: Indicates whether metrics should generate summary + statistics for called API operations. + :type include_apis: bool + :param retention_policy: + :type retention_policy: ~azure.storage.blob.models.RetentionPolicy + """ + + _validation = { + 'enabled': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'include_apis': {'key': 'IncludeAPIs', 'type': 'bool', 'xml': {'name': 'IncludeAPIs'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'RetentionPolicy'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(Metrics, self).__init__(**kwargs) + self.version = kwargs.get('version', None) + self.enabled = kwargs.get('enabled', None) + self.include_apis = kwargs.get('include_apis', None) + self.retention_policy = kwargs.get('retention_policy', None) + + +class ModifiedAccessConditions(Model): + """Additional parameters for a set of operations. + + :param if_modified_since: Specify this header value to operate only on a + blob if it has been modified since the specified date/time. + :type if_modified_since: datetime + :param if_unmodified_since: Specify this header value to operate only on a + blob if it has not been modified since the specified date/time. + :type if_unmodified_since: datetime + :param if_match: Specify an ETag value to operate only on blobs with a + matching value. + :type if_match: str + :param if_none_match: Specify an ETag value to operate only on blobs + without a matching value. + :type if_none_match: str + :param if_tags: Specify a SQL where clause on blob tags to operate only on + blobs with a matching value. + :type if_tags: str + """ + + _attribute_map = { + 'if_modified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'if_modified_since'}}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'if_unmodified_since'}}, + 'if_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_match'}}, + 'if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_none_match'}}, + 'if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'if_tags'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(ModifiedAccessConditions, self).__init__(**kwargs) + self.if_modified_since = kwargs.get('if_modified_since', None) + self.if_unmodified_since = kwargs.get('if_unmodified_since', None) + self.if_match = kwargs.get('if_match', None) + self.if_none_match = kwargs.get('if_none_match', None) + self.if_tags = kwargs.get('if_tags', None) + + +class PageList(Model): + """the list of pages. + + :param page_range: + :type page_range: list[~azure.storage.blob.models.PageRange] + :param clear_range: + :type clear_range: list[~azure.storage.blob.models.ClearRange] + """ + + _attribute_map = { + 'page_range': {'key': 'PageRange', 'type': '[PageRange]', 'xml': {'name': 'PageRange', 'itemsName': 'PageRange'}}, + 'clear_range': {'key': 'ClearRange', 'type': '[ClearRange]', 'xml': {'name': 'ClearRange', 'itemsName': 'ClearRange'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(PageList, self).__init__(**kwargs) + self.page_range = kwargs.get('page_range', None) + self.clear_range = kwargs.get('clear_range', None) + + +class PageRange(Model): + """PageRange. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. + :type start: long + :param end: Required. + :type end: long + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'long', 'xml': {'name': 'Start'}}, + 'end': {'key': 'End', 'type': 'long', 'xml': {'name': 'End'}}, + } + _xml_map = { + 'name': 'PageRange' + } + + def __init__(self, **kwargs): + super(PageRange, self).__init__(**kwargs) + self.start = kwargs.get('start', None) + self.end = kwargs.get('end', None) + + +class QueryFormat(Model): + """QueryFormat. + + :param type: Possible values include: 'delimited', 'json', 'arrow' + :type type: str or ~azure.storage.blob.models.QueryFormatType + :param delimited_text_configuration: + :type delimited_text_configuration: + ~azure.storage.blob.models.DelimitedTextConfiguration + :param json_text_configuration: + :type json_text_configuration: + ~azure.storage.blob.models.JsonTextConfiguration + :param arrow_configuration: + :type arrow_configuration: ~azure.storage.blob.models.ArrowConfiguration + """ + + _attribute_map = { + 'type': {'key': 'Type', 'type': 'QueryFormatType', 'xml': {'name': 'Type'}}, + 'delimited_text_configuration': {'key': 'DelimitedTextConfiguration', 'type': 'DelimitedTextConfiguration', 'xml': {'name': 'DelimitedTextConfiguration'}}, + 'json_text_configuration': {'key': 'JsonTextConfiguration', 'type': 'JsonTextConfiguration', 'xml': {'name': 'JsonTextConfiguration'}}, + 'arrow_configuration': {'key': 'ArrowConfiguration', 'type': 'ArrowConfiguration', 'xml': {'name': 'ArrowConfiguration'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(QueryFormat, self).__init__(**kwargs) + self.type = kwargs.get('type', None) + self.delimited_text_configuration = kwargs.get('delimited_text_configuration', None) + self.json_text_configuration = kwargs.get('json_text_configuration', None) + self.arrow_configuration = kwargs.get('arrow_configuration', None) + + +class QueryRequest(Model): + """the quick query body. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar query_type: Required. the query type. Default value: "SQL" . + :vartype query_type: str + :param expression: Required. a query statement + :type expression: str + :param input_serialization: + :type input_serialization: ~azure.storage.blob.models.QuerySerialization + :param output_serialization: + :type output_serialization: ~azure.storage.blob.models.QuerySerialization + """ + + _validation = { + 'query_type': {'required': True, 'constant': True}, + 'expression': {'required': True}, + } + + _attribute_map = { + 'query_type': {'key': 'QueryType', 'type': 'str', 'xml': {'name': 'QueryType'}}, + 'expression': {'key': 'Expression', 'type': 'str', 'xml': {'name': 'Expression'}}, + 'input_serialization': {'key': 'InputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'InputSerialization'}}, + 'output_serialization': {'key': 'OutputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'OutputSerialization'}}, + } + _xml_map = { + 'name': 'QueryRequest' + } + + query_type = "SQL" + + def __init__(self, **kwargs): + super(QueryRequest, self).__init__(**kwargs) + self.expression = kwargs.get('expression', None) + self.input_serialization = kwargs.get('input_serialization', None) + self.output_serialization = kwargs.get('output_serialization', None) + + +class QuerySerialization(Model): + """QuerySerialization. + + All required parameters must be populated in order to send to Azure. + + :param format: Required. + :type format: ~azure.storage.blob.models.QueryFormat + """ + + _validation = { + 'format': {'required': True}, + } + + _attribute_map = { + 'format': {'key': 'Format', 'type': 'QueryFormat', 'xml': {'name': 'Format'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(QuerySerialization, self).__init__(**kwargs) + self.format = kwargs.get('format', None) + + +class RetentionPolicy(Model): + """the retention policy which determines how long the associated data should + persist. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Indicates whether a retention policy is enabled + for the storage service + :type enabled: bool + :param days: Indicates the number of days that metrics or logging or + soft-deleted data should be retained. All data older than this value will + be deleted + :type days: int + """ + + _validation = { + 'enabled': {'required': True}, + 'days': {'minimum': 1}, + } + + _attribute_map = { + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'days': {'key': 'Days', 'type': 'int', 'xml': {'name': 'Days'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(RetentionPolicy, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.days = kwargs.get('days', None) + + +class SequenceNumberAccessConditions(Model): + """Additional parameters for a set of operations, such as: + PageBlob_upload_pages, PageBlob_clear_pages, + PageBlob_upload_pages_from_url. + + :param if_sequence_number_less_than_or_equal_to: Specify this header value + to operate only on a blob if it has a sequence number less than or equal + to the specified. + :type if_sequence_number_less_than_or_equal_to: long + :param if_sequence_number_less_than: Specify this header value to operate + only on a blob if it has a sequence number less than the specified. + :type if_sequence_number_less_than: long + :param if_sequence_number_equal_to: Specify this header value to operate + only on a blob if it has the specified sequence number. + :type if_sequence_number_equal_to: long + """ + + _attribute_map = { + 'if_sequence_number_less_than_or_equal_to': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_less_than_or_equal_to'}}, + 'if_sequence_number_less_than': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_less_than'}}, + 'if_sequence_number_equal_to': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_equal_to'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(SequenceNumberAccessConditions, self).__init__(**kwargs) + self.if_sequence_number_less_than_or_equal_to = kwargs.get('if_sequence_number_less_than_or_equal_to', None) + self.if_sequence_number_less_than = kwargs.get('if_sequence_number_less_than', None) + self.if_sequence_number_equal_to = kwargs.get('if_sequence_number_equal_to', None) + + +class SignedIdentifier(Model): + """signed identifier. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. a unique id + :type id: str + :param access_policy: + :type access_policy: ~azure.storage.blob.models.AccessPolicy + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'Id', 'type': 'str', 'xml': {'name': 'Id'}}, + 'access_policy': {'key': 'AccessPolicy', 'type': 'AccessPolicy', 'xml': {'name': 'AccessPolicy'}}, + } + _xml_map = { + 'name': 'SignedIdentifier' + } + + def __init__(self, **kwargs): + super(SignedIdentifier, self).__init__(**kwargs) + self.id = kwargs.get('id', None) + self.access_policy = kwargs.get('access_policy', None) + + +class SourceModifiedAccessConditions(Model): + """Additional parameters for a set of operations. + + :param source_if_modified_since: Specify this header value to operate only + on a blob if it has been modified since the specified date/time. + :type source_if_modified_since: datetime + :param source_if_unmodified_since: Specify this header value to operate + only on a blob if it has not been modified since the specified date/time. + :type source_if_unmodified_since: datetime + :param source_if_match: Specify an ETag value to operate only on blobs + with a matching value. + :type source_if_match: str + :param source_if_none_match: Specify an ETag value to operate only on + blobs without a matching value. + :type source_if_none_match: str + :param source_if_tags: Specify a SQL where clause on blob tags to operate + only on blobs with a matching value. + :type source_if_tags: str + """ + + _attribute_map = { + 'source_if_modified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'source_if_modified_since'}}, + 'source_if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'source_if_unmodified_since'}}, + 'source_if_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_match'}}, + 'source_if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_none_match'}}, + 'source_if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_tags'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(SourceModifiedAccessConditions, self).__init__(**kwargs) + self.source_if_modified_since = kwargs.get('source_if_modified_since', None) + self.source_if_unmodified_since = kwargs.get('source_if_unmodified_since', None) + self.source_if_match = kwargs.get('source_if_match', None) + self.source_if_none_match = kwargs.get('source_if_none_match', None) + self.source_if_tags = kwargs.get('source_if_tags', None) + + +class StaticWebsite(Model): + """The properties that enable an account to host a static website. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Indicates whether this account is hosting a + static website + :type enabled: bool + :param index_document: The default name of the index page under each + directory + :type index_document: str + :param error_document404_path: The absolute path of the custom 404 page + :type error_document404_path: str + :param default_index_document_path: Absolute path of the default index + page + :type default_index_document_path: str + """ + + _validation = { + 'enabled': {'required': True}, + } + + _attribute_map = { + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'index_document': {'key': 'IndexDocument', 'type': 'str', 'xml': {'name': 'IndexDocument'}}, + 'error_document404_path': {'key': 'ErrorDocument404Path', 'type': 'str', 'xml': {'name': 'ErrorDocument404Path'}}, + 'default_index_document_path': {'key': 'DefaultIndexDocumentPath', 'type': 'str', 'xml': {'name': 'DefaultIndexDocumentPath'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(StaticWebsite, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) + self.index_document = kwargs.get('index_document', None) + self.error_document404_path = kwargs.get('error_document404_path', None) + self.default_index_document_path = kwargs.get('default_index_document_path', None) + + +class StorageError(Model): + """StorageError. + + :param message: + :type message: str + """ + + _attribute_map = { + 'message': {'key': 'Message', 'type': 'str', 'xml': {'name': 'Message'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(StorageError, self).__init__(**kwargs) + self.message = kwargs.get('message', None) + + +class StorageErrorException(HttpResponseError): + """Server responsed with exception of type: 'StorageError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, response, deserialize, *args): + + model_name = 'StorageError' + self.error = deserialize(model_name, response) + if self.error is None: + self.error = deserialize.dependencies[model_name]() + super(StorageErrorException, self).__init__(response=response) + + +class StorageServiceProperties(Model): + """Storage Service Properties. + + :param logging: + :type logging: ~azure.storage.blob.models.Logging + :param hour_metrics: + :type hour_metrics: ~azure.storage.blob.models.Metrics + :param minute_metrics: + :type minute_metrics: ~azure.storage.blob.models.Metrics + :param cors: The set of CORS rules. + :type cors: list[~azure.storage.blob.models.CorsRule] + :param default_service_version: The default version to use for requests to + the Blob service if an incoming request's version is not specified. + Possible values include version 2008-10-27 and all more recent versions + :type default_service_version: str + :param delete_retention_policy: + :type delete_retention_policy: ~azure.storage.blob.models.RetentionPolicy + :param static_website: + :type static_website: ~azure.storage.blob.models.StaticWebsite + """ + + _attribute_map = { + 'logging': {'key': 'Logging', 'type': 'Logging', 'xml': {'name': 'Logging'}}, + 'hour_metrics': {'key': 'HourMetrics', 'type': 'Metrics', 'xml': {'name': 'HourMetrics'}}, + 'minute_metrics': {'key': 'MinuteMetrics', 'type': 'Metrics', 'xml': {'name': 'MinuteMetrics'}}, + 'cors': {'key': 'Cors', 'type': '[CorsRule]', 'xml': {'name': 'Cors', 'itemsName': 'CorsRule', 'wrapped': True}}, + 'default_service_version': {'key': 'DefaultServiceVersion', 'type': 'str', 'xml': {'name': 'DefaultServiceVersion'}}, + 'delete_retention_policy': {'key': 'DeleteRetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'DeleteRetentionPolicy'}}, + 'static_website': {'key': 'StaticWebsite', 'type': 'StaticWebsite', 'xml': {'name': 'StaticWebsite'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(StorageServiceProperties, self).__init__(**kwargs) + self.logging = kwargs.get('logging', None) + self.hour_metrics = kwargs.get('hour_metrics', None) + self.minute_metrics = kwargs.get('minute_metrics', None) + self.cors = kwargs.get('cors', None) + self.default_service_version = kwargs.get('default_service_version', None) + self.delete_retention_policy = kwargs.get('delete_retention_policy', None) + self.static_website = kwargs.get('static_website', None) + + +class StorageServiceStats(Model): + """Stats for the storage service. + + :param geo_replication: + :type geo_replication: ~azure.storage.blob.models.GeoReplication + """ + + _attribute_map = { + 'geo_replication': {'key': 'GeoReplication', 'type': 'GeoReplication', 'xml': {'name': 'GeoReplication'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(StorageServiceStats, self).__init__(**kwargs) + self.geo_replication = kwargs.get('geo_replication', None) + + +class UserDelegationKey(Model): + """A user delegation key. + + All required parameters must be populated in order to send to Azure. + + :param signed_oid: Required. The Azure Active Directory object ID in GUID + format. + :type signed_oid: str + :param signed_tid: Required. The Azure Active Directory tenant ID in GUID + format + :type signed_tid: str + :param signed_start: Required. The date-time the key is active + :type signed_start: datetime + :param signed_expiry: Required. The date-time the key expires + :type signed_expiry: datetime + :param signed_service: Required. Abbreviation of the Azure Storage service + that accepts the key + :type signed_service: str + :param signed_version: Required. The service version that created the key + :type signed_version: str + :param value: Required. The key as a base64 string + :type value: str + """ + + _validation = { + 'signed_oid': {'required': True}, + 'signed_tid': {'required': True}, + 'signed_start': {'required': True}, + 'signed_expiry': {'required': True}, + 'signed_service': {'required': True}, + 'signed_version': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'signed_oid': {'key': 'SignedOid', 'type': 'str', 'xml': {'name': 'SignedOid'}}, + 'signed_tid': {'key': 'SignedTid', 'type': 'str', 'xml': {'name': 'SignedTid'}}, + 'signed_start': {'key': 'SignedStart', 'type': 'iso-8601', 'xml': {'name': 'SignedStart'}}, + 'signed_expiry': {'key': 'SignedExpiry', 'type': 'iso-8601', 'xml': {'name': 'SignedExpiry'}}, + 'signed_service': {'key': 'SignedService', 'type': 'str', 'xml': {'name': 'SignedService'}}, + 'signed_version': {'key': 'SignedVersion', 'type': 'str', 'xml': {'name': 'SignedVersion'}}, + 'value': {'key': 'Value', 'type': 'str', 'xml': {'name': 'Value'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(UserDelegationKey, self).__init__(**kwargs) + self.signed_oid = kwargs.get('signed_oid', None) + self.signed_tid = kwargs.get('signed_tid', None) + self.signed_start = kwargs.get('signed_start', None) + self.signed_expiry = kwargs.get('signed_expiry', None) + self.signed_service = kwargs.get('signed_service', None) + self.signed_version = kwargs.get('signed_version', None) + self.value = kwargs.get('value', None) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/_models_py3.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/_models_py3.py new file mode 100644 index 00000000000..7e5a3fc9136 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/models/_models_py3.py @@ -0,0 +1,2009 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from azure.core.exceptions import HttpResponseError + + +class AccessPolicy(Model): + """An Access policy. + + :param start: the date-time the policy is active + :type start: str + :param expiry: the date-time the policy expires + :type expiry: str + :param permission: the permissions for the acl policy + :type permission: str + """ + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'str', 'xml': {'name': 'Start'}}, + 'expiry': {'key': 'Expiry', 'type': 'str', 'xml': {'name': 'Expiry'}}, + 'permission': {'key': 'Permission', 'type': 'str', 'xml': {'name': 'Permission'}}, + } + _xml_map = { + } + + def __init__(self, *, start: str=None, expiry: str=None, permission: str=None, **kwargs) -> None: + super(AccessPolicy, self).__init__(**kwargs) + self.start = start + self.expiry = expiry + self.permission = permission + + +class AppendPositionAccessConditions(Model): + """Additional parameters for a set of operations, such as: + AppendBlob_append_block, AppendBlob_append_block_from_url, AppendBlob_seal. + + :param max_size: Optional conditional header. The max length in bytes + permitted for the append blob. If the Append Block operation would cause + the blob to exceed that limit or if the blob size is already greater than + the value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition + Failed). + :type max_size: long + :param append_position: Optional conditional header, used only for the + Append Block operation. A number indicating the byte offset to compare. + Append Block will succeed only if the append position is equal to this + number. If it is not, the request will fail with the + AppendPositionConditionNotMet error (HTTP status code 412 - Precondition + Failed). + :type append_position: long + """ + + _attribute_map = { + 'max_size': {'key': '', 'type': 'long', 'xml': {'name': 'max_size'}}, + 'append_position': {'key': '', 'type': 'long', 'xml': {'name': 'append_position'}}, + } + _xml_map = { + } + + def __init__(self, *, max_size: int=None, append_position: int=None, **kwargs) -> None: + super(AppendPositionAccessConditions, self).__init__(**kwargs) + self.max_size = max_size + self.append_position = append_position + + +class ArrowConfiguration(Model): + """arrow configuration. + + All required parameters must be populated in order to send to Azure. + + :param schema: Required. + :type schema: list[~azure.storage.blob.models.ArrowField] + """ + + _validation = { + 'schema': {'required': True}, + } + + _attribute_map = { + 'schema': {'key': 'Schema', 'type': '[ArrowField]', 'xml': {'name': 'Schema', 'itemsName': 'Schema', 'wrapped': True}}, + } + _xml_map = { + 'name': 'ArrowConfiguration' + } + + def __init__(self, *, schema, **kwargs) -> None: + super(ArrowConfiguration, self).__init__(**kwargs) + self.schema = schema + + +class ArrowField(Model): + """field of an arrow schema. + + All required parameters must be populated in order to send to Azure. + + :param type: Required. + :type type: str + :param name: + :type name: str + :param precision: + :type precision: int + :param scale: + :type scale: int + """ + + _validation = { + 'type': {'required': True}, + } + + _attribute_map = { + 'type': {'key': 'Type', 'type': 'str', 'xml': {'name': 'Type'}}, + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'precision': {'key': 'Precision', 'type': 'int', 'xml': {'name': 'Precision'}}, + 'scale': {'key': 'Scale', 'type': 'int', 'xml': {'name': 'Scale'}}, + } + _xml_map = { + 'name': 'Field' + } + + def __init__(self, *, type: str, name: str=None, precision: int=None, scale: int=None, **kwargs) -> None: + super(ArrowField, self).__init__(**kwargs) + self.type = type + self.name = name + self.precision = precision + self.scale = scale + + +class BlobFlatListSegment(Model): + """BlobFlatListSegment. + + All required parameters must be populated in order to send to Azure. + + :param blob_items: Required. + :type blob_items: list[~azure.storage.blob.models.BlobItemInternal] + """ + + _validation = { + 'blob_items': {'required': True}, + } + + _attribute_map = { + 'blob_items': {'key': 'BlobItems', 'type': '[BlobItemInternal]', 'xml': {'name': 'BlobItems', 'itemsName': 'Blob'}}, + } + _xml_map = { + 'name': 'Blobs' + } + + def __init__(self, *, blob_items, **kwargs) -> None: + super(BlobFlatListSegment, self).__init__(**kwargs) + self.blob_items = blob_items + + +class BlobHierarchyListSegment(Model): + """BlobHierarchyListSegment. + + All required parameters must be populated in order to send to Azure. + + :param blob_prefixes: + :type blob_prefixes: list[~azure.storage.blob.models.BlobPrefix] + :param blob_items: Required. + :type blob_items: list[~azure.storage.blob.models.BlobItemInternal] + """ + + _validation = { + 'blob_items': {'required': True}, + } + + _attribute_map = { + 'blob_prefixes': {'key': 'BlobPrefixes', 'type': '[BlobPrefix]', 'xml': {'name': 'BlobPrefix', 'itemsName': 'BlobPrefix'}}, + 'blob_items': {'key': 'BlobItems', 'type': '[BlobItemInternal]', 'xml': {'name': 'Blob', 'itemsName': 'Blob'}}, + } + _xml_map = { + 'name': 'Blobs' + } + + def __init__(self, *, blob_items, blob_prefixes=None, **kwargs) -> None: + super(BlobHierarchyListSegment, self).__init__(**kwargs) + self.blob_prefixes = blob_prefixes + self.blob_items = blob_items + + +class BlobHTTPHeaders(Model): + """Additional parameters for a set of operations. + + :param blob_cache_control: Optional. Sets the blob's cache control. If + specified, this property is stored with the blob and returned with a read + request. + :type blob_cache_control: str + :param blob_content_type: Optional. Sets the blob's content type. If + specified, this property is stored with the blob and returned with a read + request. + :type blob_content_type: str + :param blob_content_md5: Optional. An MD5 hash of the blob content. Note + that this hash is not validated, as the hashes for the individual blocks + were validated when each was uploaded. + :type blob_content_md5: bytearray + :param blob_content_encoding: Optional. Sets the blob's content encoding. + If specified, this property is stored with the blob and returned with a + read request. + :type blob_content_encoding: str + :param blob_content_language: Optional. Set the blob's content language. + If specified, this property is stored with the blob and returned with a + read request. + :type blob_content_language: str + :param blob_content_disposition: Optional. Sets the blob's + Content-Disposition header. + :type blob_content_disposition: str + """ + + _attribute_map = { + 'blob_cache_control': {'key': '', 'type': 'str', 'xml': {'name': 'blob_cache_control'}}, + 'blob_content_type': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_type'}}, + 'blob_content_md5': {'key': '', 'type': 'bytearray', 'xml': {'name': 'blob_content_md5'}}, + 'blob_content_encoding': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_encoding'}}, + 'blob_content_language': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_language'}}, + 'blob_content_disposition': {'key': '', 'type': 'str', 'xml': {'name': 'blob_content_disposition'}}, + } + _xml_map = { + } + + def __init__(self, *, blob_cache_control: str=None, blob_content_type: str=None, blob_content_md5: bytearray=None, blob_content_encoding: str=None, blob_content_language: str=None, blob_content_disposition: str=None, **kwargs) -> None: + super(BlobHTTPHeaders, self).__init__(**kwargs) + self.blob_cache_control = blob_cache_control + self.blob_content_type = blob_content_type + self.blob_content_md5 = blob_content_md5 + self.blob_content_encoding = blob_content_encoding + self.blob_content_language = blob_content_language + self.blob_content_disposition = blob_content_disposition + + +class BlobItemInternal(Model): + """An Azure Storage blob. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param deleted: Required. + :type deleted: bool + :param snapshot: Required. + :type snapshot: str + :param version_id: + :type version_id: str + :param is_current_version: + :type is_current_version: bool + :param properties: Required. + :type properties: ~azure.storage.blob.models.BlobPropertiesInternal + :param metadata: + :type metadata: ~azure.storage.blob.models.BlobMetadata + :param blob_tags: + :type blob_tags: ~azure.storage.blob.models.BlobTags + :param object_replication_metadata: + :type object_replication_metadata: dict[str, str] + """ + + _validation = { + 'name': {'required': True}, + 'deleted': {'required': True}, + 'snapshot': {'required': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'deleted': {'key': 'Deleted', 'type': 'bool', 'xml': {'name': 'Deleted'}}, + 'snapshot': {'key': 'Snapshot', 'type': 'str', 'xml': {'name': 'Snapshot'}}, + 'version_id': {'key': 'VersionId', 'type': 'str', 'xml': {'name': 'VersionId'}}, + 'is_current_version': {'key': 'IsCurrentVersion', 'type': 'bool', 'xml': {'name': 'IsCurrentVersion'}}, + 'properties': {'key': 'Properties', 'type': 'BlobPropertiesInternal', 'xml': {'name': 'Properties'}}, + 'metadata': {'key': 'Metadata', 'type': 'BlobMetadata', 'xml': {'name': 'Metadata'}}, + 'blob_tags': {'key': 'BlobTags', 'type': 'BlobTags', 'xml': {'name': 'BlobTags'}}, + 'object_replication_metadata': {'key': 'OrMetadata', 'type': '{str}', 'xml': {'name': 'OrMetadata'}}, + } + _xml_map = { + 'name': 'Blob' + } + + def __init__(self, *, name: str, deleted: bool, snapshot: str, properties, version_id: str=None, is_current_version: bool=None, metadata=None, blob_tags=None, object_replication_metadata=None, **kwargs) -> None: + super(BlobItemInternal, self).__init__(**kwargs) + self.name = name + self.deleted = deleted + self.snapshot = snapshot + self.version_id = version_id + self.is_current_version = is_current_version + self.properties = properties + self.metadata = metadata + self.blob_tags = blob_tags + self.object_replication_metadata = object_replication_metadata + + +class BlobMetadata(Model): + """BlobMetadata. + + :param additional_properties: Unmatched properties from the message are + deserialized this collection + :type additional_properties: dict[str, str] + :param encrypted: + :type encrypted: str + """ + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{str}', 'xml': {'name': 'additional_properties'}}, + 'encrypted': {'key': 'Encrypted', 'type': 'str', 'xml': {'name': 'Encrypted', 'attr': True}}, + } + _xml_map = { + 'name': 'Metadata' + } + + def __init__(self, *, additional_properties=None, encrypted: str=None, **kwargs) -> None: + super(BlobMetadata, self).__init__(**kwargs) + self.additional_properties = additional_properties + self.encrypted = encrypted + + +class BlobPrefix(Model): + """BlobPrefix. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + } + _xml_map = { + } + + def __init__(self, *, name: str, **kwargs) -> None: + super(BlobPrefix, self).__init__(**kwargs) + self.name = name + + +class BlobPropertiesInternal(Model): + """Properties of a blob. + + All required parameters must be populated in order to send to Azure. + + :param creation_time: + :type creation_time: datetime + :param last_modified: Required. + :type last_modified: datetime + :param etag: Required. + :type etag: str + :param content_length: Size in bytes + :type content_length: long + :param content_type: + :type content_type: str + :param content_encoding: + :type content_encoding: str + :param content_language: + :type content_language: str + :param content_md5: + :type content_md5: bytearray + :param content_disposition: + :type content_disposition: str + :param cache_control: + :type cache_control: str + :param blob_sequence_number: + :type blob_sequence_number: long + :param blob_type: Possible values include: 'BlockBlob', 'PageBlob', + 'AppendBlob' + :type blob_type: str or ~azure.storage.blob.models.BlobType + :param lease_status: Possible values include: 'locked', 'unlocked' + :type lease_status: str or ~azure.storage.blob.models.LeaseStatusType + :param lease_state: Possible values include: 'available', 'leased', + 'expired', 'breaking', 'broken' + :type lease_state: str or ~azure.storage.blob.models.LeaseStateType + :param lease_duration: Possible values include: 'infinite', 'fixed' + :type lease_duration: str or ~azure.storage.blob.models.LeaseDurationType + :param copy_id: + :type copy_id: str + :param copy_status: Possible values include: 'pending', 'success', + 'aborted', 'failed' + :type copy_status: str or ~azure.storage.blob.models.CopyStatusType + :param copy_source: + :type copy_source: str + :param copy_progress: + :type copy_progress: str + :param copy_completion_time: + :type copy_completion_time: datetime + :param copy_status_description: + :type copy_status_description: str + :param server_encrypted: + :type server_encrypted: bool + :param incremental_copy: + :type incremental_copy: bool + :param destination_snapshot: + :type destination_snapshot: str + :param deleted_time: + :type deleted_time: datetime + :param remaining_retention_days: + :type remaining_retention_days: int + :param access_tier: Possible values include: 'P4', 'P6', 'P10', 'P15', + 'P20', 'P30', 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type access_tier: str or ~azure.storage.blob.models.AccessTier + :param access_tier_inferred: + :type access_tier_inferred: bool + :param archive_status: Possible values include: + 'rehydrate-pending-to-hot', 'rehydrate-pending-to-cool' + :type archive_status: str or ~azure.storage.blob.models.ArchiveStatus + :param customer_provided_key_sha256: + :type customer_provided_key_sha256: str + :param encryption_scope: The name of the encryption scope under which the + blob is encrypted. + :type encryption_scope: str + :param access_tier_change_time: + :type access_tier_change_time: datetime + :param tag_count: + :type tag_count: int + :param expires_on: + :type expires_on: datetime + :param is_sealed: + :type is_sealed: bool + :param rehydrate_priority: Possible values include: 'High', 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + :param last_accessed_on: + :type last_accessed_on: datetime + """ + + _validation = { + 'last_modified': {'required': True}, + 'etag': {'required': True}, + } + + _attribute_map = { + 'creation_time': {'key': 'Creation-Time', 'type': 'rfc-1123', 'xml': {'name': 'Creation-Time'}}, + 'last_modified': {'key': 'Last-Modified', 'type': 'rfc-1123', 'xml': {'name': 'Last-Modified'}}, + 'etag': {'key': 'Etag', 'type': 'str', 'xml': {'name': 'Etag'}}, + 'content_length': {'key': 'Content-Length', 'type': 'long', 'xml': {'name': 'Content-Length'}}, + 'content_type': {'key': 'Content-Type', 'type': 'str', 'xml': {'name': 'Content-Type'}}, + 'content_encoding': {'key': 'Content-Encoding', 'type': 'str', 'xml': {'name': 'Content-Encoding'}}, + 'content_language': {'key': 'Content-Language', 'type': 'str', 'xml': {'name': 'Content-Language'}}, + 'content_md5': {'key': 'Content-MD5', 'type': 'bytearray', 'xml': {'name': 'Content-MD5'}}, + 'content_disposition': {'key': 'Content-Disposition', 'type': 'str', 'xml': {'name': 'Content-Disposition'}}, + 'cache_control': {'key': 'Cache-Control', 'type': 'str', 'xml': {'name': 'Cache-Control'}}, + 'blob_sequence_number': {'key': 'x-ms-blob-sequence-number', 'type': 'long', 'xml': {'name': 'x-ms-blob-sequence-number'}}, + 'blob_type': {'key': 'BlobType', 'type': 'BlobType', 'xml': {'name': 'BlobType'}}, + 'lease_status': {'key': 'LeaseStatus', 'type': 'LeaseStatusType', 'xml': {'name': 'LeaseStatus'}}, + 'lease_state': {'key': 'LeaseState', 'type': 'LeaseStateType', 'xml': {'name': 'LeaseState'}}, + 'lease_duration': {'key': 'LeaseDuration', 'type': 'LeaseDurationType', 'xml': {'name': 'LeaseDuration'}}, + 'copy_id': {'key': 'CopyId', 'type': 'str', 'xml': {'name': 'CopyId'}}, + 'copy_status': {'key': 'CopyStatus', 'type': 'CopyStatusType', 'xml': {'name': 'CopyStatus'}}, + 'copy_source': {'key': 'CopySource', 'type': 'str', 'xml': {'name': 'CopySource'}}, + 'copy_progress': {'key': 'CopyProgress', 'type': 'str', 'xml': {'name': 'CopyProgress'}}, + 'copy_completion_time': {'key': 'CopyCompletionTime', 'type': 'rfc-1123', 'xml': {'name': 'CopyCompletionTime'}}, + 'copy_status_description': {'key': 'CopyStatusDescription', 'type': 'str', 'xml': {'name': 'CopyStatusDescription'}}, + 'server_encrypted': {'key': 'ServerEncrypted', 'type': 'bool', 'xml': {'name': 'ServerEncrypted'}}, + 'incremental_copy': {'key': 'IncrementalCopy', 'type': 'bool', 'xml': {'name': 'IncrementalCopy'}}, + 'destination_snapshot': {'key': 'DestinationSnapshot', 'type': 'str', 'xml': {'name': 'DestinationSnapshot'}}, + 'deleted_time': {'key': 'DeletedTime', 'type': 'rfc-1123', 'xml': {'name': 'DeletedTime'}}, + 'remaining_retention_days': {'key': 'RemainingRetentionDays', 'type': 'int', 'xml': {'name': 'RemainingRetentionDays'}}, + 'access_tier': {'key': 'AccessTier', 'type': 'str', 'xml': {'name': 'AccessTier'}}, + 'access_tier_inferred': {'key': 'AccessTierInferred', 'type': 'bool', 'xml': {'name': 'AccessTierInferred'}}, + 'archive_status': {'key': 'ArchiveStatus', 'type': 'str', 'xml': {'name': 'ArchiveStatus'}}, + 'customer_provided_key_sha256': {'key': 'CustomerProvidedKeySha256', 'type': 'str', 'xml': {'name': 'CustomerProvidedKeySha256'}}, + 'encryption_scope': {'key': 'EncryptionScope', 'type': 'str', 'xml': {'name': 'EncryptionScope'}}, + 'access_tier_change_time': {'key': 'AccessTierChangeTime', 'type': 'rfc-1123', 'xml': {'name': 'AccessTierChangeTime'}}, + 'tag_count': {'key': 'TagCount', 'type': 'int', 'xml': {'name': 'TagCount'}}, + 'expires_on': {'key': 'Expiry-Time', 'type': 'rfc-1123', 'xml': {'name': 'Expiry-Time'}}, + 'is_sealed': {'key': 'Sealed', 'type': 'bool', 'xml': {'name': 'Sealed'}}, + 'rehydrate_priority': {'key': 'RehydratePriority', 'type': 'str', 'xml': {'name': 'RehydratePriority'}}, + 'last_accessed_on': {'key': 'LastAccessTime', 'type': 'rfc-1123', 'xml': {'name': 'LastAccessTime'}}, + } + _xml_map = { + 'name': 'Properties' + } + + def __init__(self, *, last_modified, etag: str, creation_time=None, content_length: int=None, content_type: str=None, content_encoding: str=None, content_language: str=None, content_md5: bytearray=None, content_disposition: str=None, cache_control: str=None, blob_sequence_number: int=None, blob_type=None, lease_status=None, lease_state=None, lease_duration=None, copy_id: str=None, copy_status=None, copy_source: str=None, copy_progress: str=None, copy_completion_time=None, copy_status_description: str=None, server_encrypted: bool=None, incremental_copy: bool=None, destination_snapshot: str=None, deleted_time=None, remaining_retention_days: int=None, access_tier=None, access_tier_inferred: bool=None, archive_status=None, customer_provided_key_sha256: str=None, encryption_scope: str=None, access_tier_change_time=None, tag_count: int=None, expires_on=None, is_sealed: bool=None, rehydrate_priority=None, last_accessed_on=None, **kwargs) -> None: + super(BlobPropertiesInternal, self).__init__(**kwargs) + self.creation_time = creation_time + self.last_modified = last_modified + self.etag = etag + self.content_length = content_length + self.content_type = content_type + self.content_encoding = content_encoding + self.content_language = content_language + self.content_md5 = content_md5 + self.content_disposition = content_disposition + self.cache_control = cache_control + self.blob_sequence_number = blob_sequence_number + self.blob_type = blob_type + self.lease_status = lease_status + self.lease_state = lease_state + self.lease_duration = lease_duration + self.copy_id = copy_id + self.copy_status = copy_status + self.copy_source = copy_source + self.copy_progress = copy_progress + self.copy_completion_time = copy_completion_time + self.copy_status_description = copy_status_description + self.server_encrypted = server_encrypted + self.incremental_copy = incremental_copy + self.destination_snapshot = destination_snapshot + self.deleted_time = deleted_time + self.remaining_retention_days = remaining_retention_days + self.access_tier = access_tier + self.access_tier_inferred = access_tier_inferred + self.archive_status = archive_status + self.customer_provided_key_sha256 = customer_provided_key_sha256 + self.encryption_scope = encryption_scope + self.access_tier_change_time = access_tier_change_time + self.tag_count = tag_count + self.expires_on = expires_on + self.is_sealed = is_sealed + self.rehydrate_priority = rehydrate_priority + self.last_accessed_on = last_accessed_on + + +class BlobTag(Model): + """BlobTag. + + All required parameters must be populated in order to send to Azure. + + :param key: Required. + :type key: str + :param value: Required. + :type value: str + """ + + _validation = { + 'key': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'key': {'key': 'Key', 'type': 'str', 'xml': {'name': 'Key'}}, + 'value': {'key': 'Value', 'type': 'str', 'xml': {'name': 'Value'}}, + } + _xml_map = { + 'name': 'Tag' + } + + def __init__(self, *, key: str, value: str, **kwargs) -> None: + super(BlobTag, self).__init__(**kwargs) + self.key = key + self.value = value + + +class BlobTags(Model): + """Blob tags. + + All required parameters must be populated in order to send to Azure. + + :param blob_tag_set: Required. + :type blob_tag_set: list[~azure.storage.blob.models.BlobTag] + """ + + _validation = { + 'blob_tag_set': {'required': True}, + } + + _attribute_map = { + 'blob_tag_set': {'key': 'BlobTagSet', 'type': '[BlobTag]', 'xml': {'name': 'TagSet', 'itemsName': 'TagSet', 'wrapped': True}}, + } + _xml_map = { + 'name': 'Tags' + } + + def __init__(self, *, blob_tag_set, **kwargs) -> None: + super(BlobTags, self).__init__(**kwargs) + self.blob_tag_set = blob_tag_set + + +class Block(Model): + """Represents a single block in a block blob. It describes the block's ID and + size. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The base64 encoded block ID. + :type name: str + :param size: Required. The block size in bytes. + :type size: int + """ + + _validation = { + 'name': {'required': True}, + 'size': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'size': {'key': 'Size', 'type': 'int', 'xml': {'name': 'Size'}}, + } + _xml_map = { + } + + def __init__(self, *, name: str, size: int, **kwargs) -> None: + super(Block, self).__init__(**kwargs) + self.name = name + self.size = size + + +class BlockList(Model): + """BlockList. + + :param committed_blocks: + :type committed_blocks: list[~azure.storage.blob.models.Block] + :param uncommitted_blocks: + :type uncommitted_blocks: list[~azure.storage.blob.models.Block] + """ + + _attribute_map = { + 'committed_blocks': {'key': 'CommittedBlocks', 'type': '[Block]', 'xml': {'name': 'CommittedBlocks', 'itemsName': 'Block', 'wrapped': True}}, + 'uncommitted_blocks': {'key': 'UncommittedBlocks', 'type': '[Block]', 'xml': {'name': 'UncommittedBlocks', 'itemsName': 'Block', 'wrapped': True}}, + } + _xml_map = { + } + + def __init__(self, *, committed_blocks=None, uncommitted_blocks=None, **kwargs) -> None: + super(BlockList, self).__init__(**kwargs) + self.committed_blocks = committed_blocks + self.uncommitted_blocks = uncommitted_blocks + + +class BlockLookupList(Model): + """BlockLookupList. + + :param committed: + :type committed: list[str] + :param uncommitted: + :type uncommitted: list[str] + :param latest: + :type latest: list[str] + """ + + _attribute_map = { + 'committed': {'key': 'Committed', 'type': '[str]', 'xml': {'name': 'Committed', 'itemsName': 'Committed'}}, + 'uncommitted': {'key': 'Uncommitted', 'type': '[str]', 'xml': {'name': 'Uncommitted', 'itemsName': 'Uncommitted'}}, + 'latest': {'key': 'Latest', 'type': '[str]', 'xml': {'name': 'Latest', 'itemsName': 'Latest'}}, + } + _xml_map = { + 'name': 'BlockList' + } + + def __init__(self, *, committed=None, uncommitted=None, latest=None, **kwargs) -> None: + super(BlockLookupList, self).__init__(**kwargs) + self.committed = committed + self.uncommitted = uncommitted + self.latest = latest + + +class ClearRange(Model): + """ClearRange. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. + :type start: long + :param end: Required. + :type end: long + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'long', 'xml': {'name': 'Start'}}, + 'end': {'key': 'End', 'type': 'long', 'xml': {'name': 'End'}}, + } + _xml_map = { + 'name': 'ClearRange' + } + + def __init__(self, *, start: int, end: int, **kwargs) -> None: + super(ClearRange, self).__init__(**kwargs) + self.start = start + self.end = end + + +class ContainerCpkScopeInfo(Model): + """Additional parameters for create operation. + + :param default_encryption_scope: Optional. Version 2019-07-07 and later. + Specifies the default encryption scope to set on the container and use for + all future writes. + :type default_encryption_scope: str + :param prevent_encryption_scope_override: Optional. Version 2019-07-07 + and newer. If true, prevents any request from specifying a different + encryption scope than the scope set on the container. + :type prevent_encryption_scope_override: bool + """ + + _attribute_map = { + 'default_encryption_scope': {'key': '', 'type': 'str', 'xml': {'name': 'default_encryption_scope'}}, + 'prevent_encryption_scope_override': {'key': '', 'type': 'bool', 'xml': {'name': 'prevent_encryption_scope_override'}}, + } + _xml_map = { + } + + def __init__(self, *, default_encryption_scope: str=None, prevent_encryption_scope_override: bool=None, **kwargs) -> None: + super(ContainerCpkScopeInfo, self).__init__(**kwargs) + self.default_encryption_scope = default_encryption_scope + self.prevent_encryption_scope_override = prevent_encryption_scope_override + + +class ContainerItem(Model): + """An Azure Storage container. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param deleted: + :type deleted: bool + :param version: + :type version: str + :param properties: Required. + :type properties: ~azure.storage.blob.models.ContainerProperties + :param metadata: + :type metadata: dict[str, str] + """ + + _validation = { + 'name': {'required': True}, + 'properties': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'deleted': {'key': 'Deleted', 'type': 'bool', 'xml': {'name': 'Deleted'}}, + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'properties': {'key': 'Properties', 'type': 'ContainerProperties', 'xml': {'name': 'Properties'}}, + 'metadata': {'key': 'Metadata', 'type': '{str}', 'xml': {'name': 'Metadata'}}, + } + _xml_map = { + 'name': 'Container' + } + + def __init__(self, *, name: str, properties, deleted: bool=None, version: str=None, metadata=None, **kwargs) -> None: + super(ContainerItem, self).__init__(**kwargs) + self.name = name + self.deleted = deleted + self.version = version + self.properties = properties + self.metadata = metadata + + +class ContainerProperties(Model): + """Properties of a container. + + All required parameters must be populated in order to send to Azure. + + :param last_modified: Required. + :type last_modified: datetime + :param etag: Required. + :type etag: str + :param lease_status: Possible values include: 'locked', 'unlocked' + :type lease_status: str or ~azure.storage.blob.models.LeaseStatusType + :param lease_state: Possible values include: 'available', 'leased', + 'expired', 'breaking', 'broken' + :type lease_state: str or ~azure.storage.blob.models.LeaseStateType + :param lease_duration: Possible values include: 'infinite', 'fixed' + :type lease_duration: str or ~azure.storage.blob.models.LeaseDurationType + :param public_access: Possible values include: 'container', 'blob' + :type public_access: str or ~azure.storage.blob.models.PublicAccessType + :param has_immutability_policy: + :type has_immutability_policy: bool + :param has_legal_hold: + :type has_legal_hold: bool + :param default_encryption_scope: + :type default_encryption_scope: str + :param prevent_encryption_scope_override: + :type prevent_encryption_scope_override: bool + :param deleted_time: + :type deleted_time: datetime + :param remaining_retention_days: + :type remaining_retention_days: int + """ + + _validation = { + 'last_modified': {'required': True}, + 'etag': {'required': True}, + } + + _attribute_map = { + 'last_modified': {'key': 'Last-Modified', 'type': 'rfc-1123', 'xml': {'name': 'Last-Modified'}}, + 'etag': {'key': 'Etag', 'type': 'str', 'xml': {'name': 'Etag'}}, + 'lease_status': {'key': 'LeaseStatus', 'type': 'LeaseStatusType', 'xml': {'name': 'LeaseStatus'}}, + 'lease_state': {'key': 'LeaseState', 'type': 'LeaseStateType', 'xml': {'name': 'LeaseState'}}, + 'lease_duration': {'key': 'LeaseDuration', 'type': 'LeaseDurationType', 'xml': {'name': 'LeaseDuration'}}, + 'public_access': {'key': 'PublicAccess', 'type': 'str', 'xml': {'name': 'PublicAccess'}}, + 'has_immutability_policy': {'key': 'HasImmutabilityPolicy', 'type': 'bool', 'xml': {'name': 'HasImmutabilityPolicy'}}, + 'has_legal_hold': {'key': 'HasLegalHold', 'type': 'bool', 'xml': {'name': 'HasLegalHold'}}, + 'default_encryption_scope': {'key': 'DefaultEncryptionScope', 'type': 'str', 'xml': {'name': 'DefaultEncryptionScope'}}, + 'prevent_encryption_scope_override': {'key': 'DenyEncryptionScopeOverride', 'type': 'bool', 'xml': {'name': 'DenyEncryptionScopeOverride'}}, + 'deleted_time': {'key': 'DeletedTime', 'type': 'rfc-1123', 'xml': {'name': 'DeletedTime'}}, + 'remaining_retention_days': {'key': 'RemainingRetentionDays', 'type': 'int', 'xml': {'name': 'RemainingRetentionDays'}}, + } + _xml_map = { + } + + def __init__(self, *, last_modified, etag: str, lease_status=None, lease_state=None, lease_duration=None, public_access=None, has_immutability_policy: bool=None, has_legal_hold: bool=None, default_encryption_scope: str=None, prevent_encryption_scope_override: bool=None, deleted_time=None, remaining_retention_days: int=None, **kwargs) -> None: + super(ContainerProperties, self).__init__(**kwargs) + self.last_modified = last_modified + self.etag = etag + self.lease_status = lease_status + self.lease_state = lease_state + self.lease_duration = lease_duration + self.public_access = public_access + self.has_immutability_policy = has_immutability_policy + self.has_legal_hold = has_legal_hold + self.default_encryption_scope = default_encryption_scope + self.prevent_encryption_scope_override = prevent_encryption_scope_override + self.deleted_time = deleted_time + self.remaining_retention_days = remaining_retention_days + + +class CorsRule(Model): + """CORS is an HTTP feature that enables a web application running under one + domain to access resources in another domain. Web browsers implement a + security restriction known as same-origin policy that prevents a web page + from calling APIs in a different domain; CORS provides a secure way to + allow one domain (the origin domain) to call APIs in another domain. + + All required parameters must be populated in order to send to Azure. + + :param allowed_origins: Required. The origin domains that are permitted to + make a request against the storage service via CORS. The origin domain is + the domain from which the request originates. Note that the origin must be + an exact case-sensitive match with the origin that the user age sends to + the service. You can also use the wildcard character '*' to allow all + origin domains to make requests via CORS. + :type allowed_origins: str + :param allowed_methods: Required. The methods (HTTP request verbs) that + the origin domain may use for a CORS request. (comma separated) + :type allowed_methods: str + :param allowed_headers: Required. the request headers that the origin + domain may specify on the CORS request. + :type allowed_headers: str + :param exposed_headers: Required. The response headers that may be sent in + the response to the CORS request and exposed by the browser to the request + issuer + :type exposed_headers: str + :param max_age_in_seconds: Required. The maximum amount time that a + browser should cache the preflight OPTIONS request. + :type max_age_in_seconds: int + """ + + _validation = { + 'allowed_origins': {'required': True}, + 'allowed_methods': {'required': True}, + 'allowed_headers': {'required': True}, + 'exposed_headers': {'required': True}, + 'max_age_in_seconds': {'required': True, 'minimum': 0}, + } + + _attribute_map = { + 'allowed_origins': {'key': 'AllowedOrigins', 'type': 'str', 'xml': {'name': 'AllowedOrigins'}}, + 'allowed_methods': {'key': 'AllowedMethods', 'type': 'str', 'xml': {'name': 'AllowedMethods'}}, + 'allowed_headers': {'key': 'AllowedHeaders', 'type': 'str', 'xml': {'name': 'AllowedHeaders'}}, + 'exposed_headers': {'key': 'ExposedHeaders', 'type': 'str', 'xml': {'name': 'ExposedHeaders'}}, + 'max_age_in_seconds': {'key': 'MaxAgeInSeconds', 'type': 'int', 'xml': {'name': 'MaxAgeInSeconds'}}, + } + _xml_map = { + } + + def __init__(self, *, allowed_origins: str, allowed_methods: str, allowed_headers: str, exposed_headers: str, max_age_in_seconds: int, **kwargs) -> None: + super(CorsRule, self).__init__(**kwargs) + self.allowed_origins = allowed_origins + self.allowed_methods = allowed_methods + self.allowed_headers = allowed_headers + self.exposed_headers = exposed_headers + self.max_age_in_seconds = max_age_in_seconds + + +class CpkInfo(Model): + """Additional parameters for a set of operations. + + :param encryption_key: Optional. Specifies the encryption key to use to + encrypt the data provided in the request. If not specified, encryption is + performed with the root account encryption key. For more information, see + Encryption at Rest for Azure Storage Services. + :type encryption_key: str + :param encryption_key_sha256: The SHA-256 hash of the provided encryption + key. Must be provided if the x-ms-encryption-key header is provided. + :type encryption_key_sha256: str + :param encryption_algorithm: The algorithm used to produce the encryption + key hash. Currently, the only accepted value is "AES256". Must be provided + if the x-ms-encryption-key header is provided. Possible values include: + 'AES256' + :type encryption_algorithm: str or + ~azure.storage.blob.models.EncryptionAlgorithmType + """ + + _attribute_map = { + 'encryption_key': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_key'}}, + 'encryption_key_sha256': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_key_sha256'}}, + 'encryption_algorithm': {'key': '', 'type': 'EncryptionAlgorithmType', 'xml': {'name': 'encryption_algorithm'}}, + } + _xml_map = { + } + + def __init__(self, *, encryption_key: str=None, encryption_key_sha256: str=None, encryption_algorithm=None, **kwargs) -> None: + super(CpkInfo, self).__init__(**kwargs) + self.encryption_key = encryption_key + self.encryption_key_sha256 = encryption_key_sha256 + self.encryption_algorithm = encryption_algorithm + + +class CpkScopeInfo(Model): + """Additional parameters for a set of operations. + + :param encryption_scope: Optional. Version 2019-07-07 and later. + Specifies the name of the encryption scope to use to encrypt the data + provided in the request. If not specified, encryption is performed with + the default account encryption scope. For more information, see + Encryption at Rest for Azure Storage Services. + :type encryption_scope: str + """ + + _attribute_map = { + 'encryption_scope': {'key': '', 'type': 'str', 'xml': {'name': 'encryption_scope'}}, + } + _xml_map = { + } + + def __init__(self, *, encryption_scope: str=None, **kwargs) -> None: + super(CpkScopeInfo, self).__init__(**kwargs) + self.encryption_scope = encryption_scope + + +class DataLakeStorageError(Model): + """DataLakeStorageError. + + :param data_lake_storage_error_details: The service error response object. + :type data_lake_storage_error_details: + ~azure.storage.blob.models.DataLakeStorageErrorError + """ + + _attribute_map = { + 'data_lake_storage_error_details': {'key': 'error', 'type': 'DataLakeStorageErrorError', 'xml': {'name': 'error'}}, + } + _xml_map = { + } + + def __init__(self, *, data_lake_storage_error_details=None, **kwargs) -> None: + super(DataLakeStorageError, self).__init__(**kwargs) + self.data_lake_storage_error_details = data_lake_storage_error_details + + +class DataLakeStorageErrorException(HttpResponseError): + """Server responsed with exception of type: 'DataLakeStorageError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, response, deserialize, *args): + + model_name = 'DataLakeStorageError' + self.error = deserialize(model_name, response) + if self.error is None: + self.error = deserialize.dependencies[model_name]() + super(DataLakeStorageErrorException, self).__init__(response=response) + + +class DataLakeStorageErrorError(Model): + """The service error response object. + + :param code: The service error code. + :type code: str + :param message: The service error message. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'Code', 'type': 'str', 'xml': {'name': 'Code'}}, + 'message': {'key': 'Message', 'type': 'str', 'xml': {'name': 'Message'}}, + } + _xml_map = { + } + + def __init__(self, *, code: str=None, message: str=None, **kwargs) -> None: + super(DataLakeStorageErrorError, self).__init__(**kwargs) + self.code = code + self.message = message + + +class DelimitedTextConfiguration(Model): + """delimited text configuration. + + All required parameters must be populated in order to send to Azure. + + :param column_separator: Required. column separator + :type column_separator: str + :param field_quote: Required. field quote + :type field_quote: str + :param record_separator: Required. record separator + :type record_separator: str + :param escape_char: Required. escape char + :type escape_char: str + :param headers_present: Required. has headers + :type headers_present: bool + """ + + _validation = { + 'column_separator': {'required': True}, + 'field_quote': {'required': True}, + 'record_separator': {'required': True}, + 'escape_char': {'required': True}, + 'headers_present': {'required': True}, + } + + _attribute_map = { + 'column_separator': {'key': 'ColumnSeparator', 'type': 'str', 'xml': {'name': 'ColumnSeparator'}}, + 'field_quote': {'key': 'FieldQuote', 'type': 'str', 'xml': {'name': 'FieldQuote'}}, + 'record_separator': {'key': 'RecordSeparator', 'type': 'str', 'xml': {'name': 'RecordSeparator'}}, + 'escape_char': {'key': 'EscapeChar', 'type': 'str', 'xml': {'name': 'EscapeChar'}}, + 'headers_present': {'key': 'HeadersPresent', 'type': 'bool', 'xml': {'name': 'HasHeaders'}}, + } + _xml_map = { + 'name': 'DelimitedTextConfiguration' + } + + def __init__(self, *, column_separator: str, field_quote: str, record_separator: str, escape_char: str, headers_present: bool, **kwargs) -> None: + super(DelimitedTextConfiguration, self).__init__(**kwargs) + self.column_separator = column_separator + self.field_quote = field_quote + self.record_separator = record_separator + self.escape_char = escape_char + self.headers_present = headers_present + + +class DirectoryHttpHeaders(Model): + """Additional parameters for a set of operations, such as: Directory_create, + Directory_rename, Blob_rename. + + :param cache_control: Cache control for given resource + :type cache_control: str + :param content_type: Content type for given resource + :type content_type: str + :param content_encoding: Content encoding for given resource + :type content_encoding: str + :param content_language: Content language for given resource + :type content_language: str + :param content_disposition: Content disposition for given resource + :type content_disposition: str + """ + + _attribute_map = { + 'cache_control': {'key': '', 'type': 'str', 'xml': {'name': 'cache_control'}}, + 'content_type': {'key': '', 'type': 'str', 'xml': {'name': 'content_type'}}, + 'content_encoding': {'key': '', 'type': 'str', 'xml': {'name': 'content_encoding'}}, + 'content_language': {'key': '', 'type': 'str', 'xml': {'name': 'content_language'}}, + 'content_disposition': {'key': '', 'type': 'str', 'xml': {'name': 'content_disposition'}}, + } + _xml_map = { + } + + def __init__(self, *, cache_control: str=None, content_type: str=None, content_encoding: str=None, content_language: str=None, content_disposition: str=None, **kwargs) -> None: + super(DirectoryHttpHeaders, self).__init__(**kwargs) + self.cache_control = cache_control + self.content_type = content_type + self.content_encoding = content_encoding + self.content_language = content_language + self.content_disposition = content_disposition + + +class FilterBlobItem(Model): + """Blob info from a Filter Blobs API call. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. + :type name: str + :param container_name: Required. + :type container_name: str + :param tag_value: Required. + :type tag_value: str + """ + + _validation = { + 'name': {'required': True}, + 'container_name': {'required': True}, + 'tag_value': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'Name', 'type': 'str', 'xml': {'name': 'Name'}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName'}}, + 'tag_value': {'key': 'TagValue', 'type': 'str', 'xml': {'name': 'TagValue'}}, + } + _xml_map = { + 'name': 'Blob' + } + + def __init__(self, *, name: str, container_name: str, tag_value: str, **kwargs) -> None: + super(FilterBlobItem, self).__init__(**kwargs) + self.name = name + self.container_name = container_name + self.tag_value = tag_value + + +class FilterBlobSegment(Model): + """The result of a Filter Blobs API call. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param where: Required. + :type where: str + :param blobs: Required. + :type blobs: list[~azure.storage.blob.models.FilterBlobItem] + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'where': {'required': True}, + 'blobs': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'where': {'key': 'Where', 'type': 'str', 'xml': {'name': 'Where'}}, + 'blobs': {'key': 'Blobs', 'type': '[FilterBlobItem]', 'xml': {'name': 'Blobs', 'itemsName': 'Blobs', 'wrapped': True}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, *, service_endpoint: str, where: str, blobs, next_marker: str=None, **kwargs) -> None: + super(FilterBlobSegment, self).__init__(**kwargs) + self.service_endpoint = service_endpoint + self.where = where + self.blobs = blobs + self.next_marker = next_marker + + +class GeoReplication(Model): + """Geo-Replication information for the Secondary Storage Service. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The status of the secondary location. Possible + values include: 'live', 'bootstrap', 'unavailable' + :type status: str or ~azure.storage.blob.models.GeoReplicationStatusType + :param last_sync_time: Required. A GMT date/time value, to the second. All + primary writes preceding this value are guaranteed to be available for + read operations at the secondary. Primary writes after this point in time + may or may not be available for reads. + :type last_sync_time: datetime + """ + + _validation = { + 'status': {'required': True}, + 'last_sync_time': {'required': True}, + } + + _attribute_map = { + 'status': {'key': 'Status', 'type': 'str', 'xml': {'name': 'Status'}}, + 'last_sync_time': {'key': 'LastSyncTime', 'type': 'rfc-1123', 'xml': {'name': 'LastSyncTime'}}, + } + _xml_map = { + } + + def __init__(self, *, status, last_sync_time, **kwargs) -> None: + super(GeoReplication, self).__init__(**kwargs) + self.status = status + self.last_sync_time = last_sync_time + + +class JsonTextConfiguration(Model): + """json text configuration. + + All required parameters must be populated in order to send to Azure. + + :param record_separator: Required. record separator + :type record_separator: str + """ + + _validation = { + 'record_separator': {'required': True}, + } + + _attribute_map = { + 'record_separator': {'key': 'RecordSeparator', 'type': 'str', 'xml': {'name': 'RecordSeparator'}}, + } + _xml_map = { + 'name': 'JsonTextConfiguration' + } + + def __init__(self, *, record_separator: str, **kwargs) -> None: + super(JsonTextConfiguration, self).__init__(**kwargs) + self.record_separator = record_separator + + +class KeyInfo(Model): + """Key information. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. The date-time the key is active in ISO 8601 UTC + time + :type start: str + :param expiry: Required. The date-time the key expires in ISO 8601 UTC + time + :type expiry: str + """ + + _validation = { + 'start': {'required': True}, + 'expiry': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'str', 'xml': {'name': 'Start'}}, + 'expiry': {'key': 'Expiry', 'type': 'str', 'xml': {'name': 'Expiry'}}, + } + _xml_map = { + } + + def __init__(self, *, start: str, expiry: str, **kwargs) -> None: + super(KeyInfo, self).__init__(**kwargs) + self.start = start + self.expiry = expiry + + +class LeaseAccessConditions(Model): + """Additional parameters for a set of operations. + + :param lease_id: If specified, the operation only succeeds if the + resource's lease is active and matches this ID. + :type lease_id: str + """ + + _attribute_map = { + 'lease_id': {'key': '', 'type': 'str', 'xml': {'name': 'lease_id'}}, + } + _xml_map = { + } + + def __init__(self, *, lease_id: str=None, **kwargs) -> None: + super(LeaseAccessConditions, self).__init__(**kwargs) + self.lease_id = lease_id + + +class ListBlobsFlatSegmentResponse(Model): + """An enumeration of blobs. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param container_name: Required. + :type container_name: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param segment: Required. + :type segment: ~azure.storage.blob.models.BlobFlatListSegment + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_name': {'required': True}, + 'segment': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'segment': {'key': 'Segment', 'type': 'BlobFlatListSegment', 'xml': {'name': 'Segment'}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, *, service_endpoint: str, container_name: str, segment, prefix: str=None, marker: str=None, max_results: int=None, next_marker: str=None, **kwargs) -> None: + super(ListBlobsFlatSegmentResponse, self).__init__(**kwargs) + self.service_endpoint = service_endpoint + self.container_name = container_name + self.prefix = prefix + self.marker = marker + self.max_results = max_results + self.segment = segment + self.next_marker = next_marker + + +class ListBlobsHierarchySegmentResponse(Model): + """An enumeration of blobs. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param container_name: Required. + :type container_name: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param delimiter: + :type delimiter: str + :param segment: Required. + :type segment: ~azure.storage.blob.models.BlobHierarchyListSegment + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_name': {'required': True}, + 'segment': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'container_name': {'key': 'ContainerName', 'type': 'str', 'xml': {'name': 'ContainerName', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'delimiter': {'key': 'Delimiter', 'type': 'str', 'xml': {'name': 'Delimiter'}}, + 'segment': {'key': 'Segment', 'type': 'BlobHierarchyListSegment', 'xml': {'name': 'Segment'}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, *, service_endpoint: str, container_name: str, segment, prefix: str=None, marker: str=None, max_results: int=None, delimiter: str=None, next_marker: str=None, **kwargs) -> None: + super(ListBlobsHierarchySegmentResponse, self).__init__(**kwargs) + self.service_endpoint = service_endpoint + self.container_name = container_name + self.prefix = prefix + self.marker = marker + self.max_results = max_results + self.delimiter = delimiter + self.segment = segment + self.next_marker = next_marker + + +class ListContainersSegmentResponse(Model): + """An enumeration of containers. + + All required parameters must be populated in order to send to Azure. + + :param service_endpoint: Required. + :type service_endpoint: str + :param prefix: + :type prefix: str + :param marker: + :type marker: str + :param max_results: + :type max_results: int + :param container_items: Required. + :type container_items: list[~azure.storage.blob.models.ContainerItem] + :param next_marker: + :type next_marker: str + """ + + _validation = { + 'service_endpoint': {'required': True}, + 'container_items': {'required': True}, + } + + _attribute_map = { + 'service_endpoint': {'key': 'ServiceEndpoint', 'type': 'str', 'xml': {'name': 'ServiceEndpoint', 'attr': True}}, + 'prefix': {'key': 'Prefix', 'type': 'str', 'xml': {'name': 'Prefix'}}, + 'marker': {'key': 'Marker', 'type': 'str', 'xml': {'name': 'Marker'}}, + 'max_results': {'key': 'MaxResults', 'type': 'int', 'xml': {'name': 'MaxResults'}}, + 'container_items': {'key': 'ContainerItems', 'type': '[ContainerItem]', 'xml': {'name': 'Containers', 'itemsName': 'Containers', 'wrapped': True}}, + 'next_marker': {'key': 'NextMarker', 'type': 'str', 'xml': {'name': 'NextMarker'}}, + } + _xml_map = { + 'name': 'EnumerationResults' + } + + def __init__(self, *, service_endpoint: str, container_items, prefix: str=None, marker: str=None, max_results: int=None, next_marker: str=None, **kwargs) -> None: + super(ListContainersSegmentResponse, self).__init__(**kwargs) + self.service_endpoint = service_endpoint + self.prefix = prefix + self.marker = marker + self.max_results = max_results + self.container_items = container_items + self.next_marker = next_marker + + +class Logging(Model): + """Azure Analytics Logging settings. + + All required parameters must be populated in order to send to Azure. + + :param version: Required. The version of Storage Analytics to configure. + :type version: str + :param delete: Required. Indicates whether all delete requests should be + logged. + :type delete: bool + :param read: Required. Indicates whether all read requests should be + logged. + :type read: bool + :param write: Required. Indicates whether all write requests should be + logged. + :type write: bool + :param retention_policy: Required. + :type retention_policy: ~azure.storage.blob.models.RetentionPolicy + """ + + _validation = { + 'version': {'required': True}, + 'delete': {'required': True}, + 'read': {'required': True}, + 'write': {'required': True}, + 'retention_policy': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'delete': {'key': 'Delete', 'type': 'bool', 'xml': {'name': 'Delete'}}, + 'read': {'key': 'Read', 'type': 'bool', 'xml': {'name': 'Read'}}, + 'write': {'key': 'Write', 'type': 'bool', 'xml': {'name': 'Write'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'RetentionPolicy'}}, + } + _xml_map = { + } + + def __init__(self, *, version: str, delete: bool, read: bool, write: bool, retention_policy, **kwargs) -> None: + super(Logging, self).__init__(**kwargs) + self.version = version + self.delete = delete + self.read = read + self.write = write + self.retention_policy = retention_policy + + +class Metrics(Model): + """a summary of request statistics grouped by API in hour or minute aggregates + for blobs. + + All required parameters must be populated in order to send to Azure. + + :param version: The version of Storage Analytics to configure. + :type version: str + :param enabled: Required. Indicates whether metrics are enabled for the + Blob service. + :type enabled: bool + :param include_apis: Indicates whether metrics should generate summary + statistics for called API operations. + :type include_apis: bool + :param retention_policy: + :type retention_policy: ~azure.storage.blob.models.RetentionPolicy + """ + + _validation = { + 'enabled': {'required': True}, + } + + _attribute_map = { + 'version': {'key': 'Version', 'type': 'str', 'xml': {'name': 'Version'}}, + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'include_apis': {'key': 'IncludeAPIs', 'type': 'bool', 'xml': {'name': 'IncludeAPIs'}}, + 'retention_policy': {'key': 'RetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'RetentionPolicy'}}, + } + _xml_map = { + } + + def __init__(self, *, enabled: bool, version: str=None, include_apis: bool=None, retention_policy=None, **kwargs) -> None: + super(Metrics, self).__init__(**kwargs) + self.version = version + self.enabled = enabled + self.include_apis = include_apis + self.retention_policy = retention_policy + + +class ModifiedAccessConditions(Model): + """Additional parameters for a set of operations. + + :param if_modified_since: Specify this header value to operate only on a + blob if it has been modified since the specified date/time. + :type if_modified_since: datetime + :param if_unmodified_since: Specify this header value to operate only on a + blob if it has not been modified since the specified date/time. + :type if_unmodified_since: datetime + :param if_match: Specify an ETag value to operate only on blobs with a + matching value. + :type if_match: str + :param if_none_match: Specify an ETag value to operate only on blobs + without a matching value. + :type if_none_match: str + :param if_tags: Specify a SQL where clause on blob tags to operate only on + blobs with a matching value. + :type if_tags: str + """ + + _attribute_map = { + 'if_modified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'if_modified_since'}}, + 'if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'if_unmodified_since'}}, + 'if_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_match'}}, + 'if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_none_match'}}, + 'if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'if_tags'}}, + } + _xml_map = { + } + + def __init__(self, *, if_modified_since=None, if_unmodified_since=None, if_match: str=None, if_none_match: str=None, if_tags: str=None, **kwargs) -> None: + super(ModifiedAccessConditions, self).__init__(**kwargs) + self.if_modified_since = if_modified_since + self.if_unmodified_since = if_unmodified_since + self.if_match = if_match + self.if_none_match = if_none_match + self.if_tags = if_tags + + +class PageList(Model): + """the list of pages. + + :param page_range: + :type page_range: list[~azure.storage.blob.models.PageRange] + :param clear_range: + :type clear_range: list[~azure.storage.blob.models.ClearRange] + """ + + _attribute_map = { + 'page_range': {'key': 'PageRange', 'type': '[PageRange]', 'xml': {'name': 'PageRange', 'itemsName': 'PageRange'}}, + 'clear_range': {'key': 'ClearRange', 'type': '[ClearRange]', 'xml': {'name': 'ClearRange', 'itemsName': 'ClearRange'}}, + } + _xml_map = { + } + + def __init__(self, *, page_range=None, clear_range=None, **kwargs) -> None: + super(PageList, self).__init__(**kwargs) + self.page_range = page_range + self.clear_range = clear_range + + +class PageRange(Model): + """PageRange. + + All required parameters must be populated in order to send to Azure. + + :param start: Required. + :type start: long + :param end: Required. + :type end: long + """ + + _validation = { + 'start': {'required': True}, + 'end': {'required': True}, + } + + _attribute_map = { + 'start': {'key': 'Start', 'type': 'long', 'xml': {'name': 'Start'}}, + 'end': {'key': 'End', 'type': 'long', 'xml': {'name': 'End'}}, + } + _xml_map = { + 'name': 'PageRange' + } + + def __init__(self, *, start: int, end: int, **kwargs) -> None: + super(PageRange, self).__init__(**kwargs) + self.start = start + self.end = end + + +class QueryFormat(Model): + """QueryFormat. + + :param type: Possible values include: 'delimited', 'json', 'arrow' + :type type: str or ~azure.storage.blob.models.QueryFormatType + :param delimited_text_configuration: + :type delimited_text_configuration: + ~azure.storage.blob.models.DelimitedTextConfiguration + :param json_text_configuration: + :type json_text_configuration: + ~azure.storage.blob.models.JsonTextConfiguration + :param arrow_configuration: + :type arrow_configuration: ~azure.storage.blob.models.ArrowConfiguration + """ + + _attribute_map = { + 'type': {'key': 'Type', 'type': 'QueryFormatType', 'xml': {'name': 'Type'}}, + 'delimited_text_configuration': {'key': 'DelimitedTextConfiguration', 'type': 'DelimitedTextConfiguration', 'xml': {'name': 'DelimitedTextConfiguration'}}, + 'json_text_configuration': {'key': 'JsonTextConfiguration', 'type': 'JsonTextConfiguration', 'xml': {'name': 'JsonTextConfiguration'}}, + 'arrow_configuration': {'key': 'ArrowConfiguration', 'type': 'ArrowConfiguration', 'xml': {'name': 'ArrowConfiguration'}}, + } + _xml_map = { + } + + def __init__(self, *, type=None, delimited_text_configuration=None, json_text_configuration=None, arrow_configuration=None, **kwargs) -> None: + super(QueryFormat, self).__init__(**kwargs) + self.type = type + self.delimited_text_configuration = delimited_text_configuration + self.json_text_configuration = json_text_configuration + self.arrow_configuration = arrow_configuration + + +class QueryRequest(Model): + """the quick query body. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar query_type: Required. the query type. Default value: "SQL" . + :vartype query_type: str + :param expression: Required. a query statement + :type expression: str + :param input_serialization: + :type input_serialization: ~azure.storage.blob.models.QuerySerialization + :param output_serialization: + :type output_serialization: ~azure.storage.blob.models.QuerySerialization + """ + + _validation = { + 'query_type': {'required': True, 'constant': True}, + 'expression': {'required': True}, + } + + _attribute_map = { + 'query_type': {'key': 'QueryType', 'type': 'str', 'xml': {'name': 'QueryType'}}, + 'expression': {'key': 'Expression', 'type': 'str', 'xml': {'name': 'Expression'}}, + 'input_serialization': {'key': 'InputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'InputSerialization'}}, + 'output_serialization': {'key': 'OutputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'OutputSerialization'}}, + } + _xml_map = { + 'name': 'QueryRequest' + } + + query_type = "SQL" + + def __init__(self, *, expression: str, input_serialization=None, output_serialization=None, **kwargs) -> None: + super(QueryRequest, self).__init__(**kwargs) + self.expression = expression + self.input_serialization = input_serialization + self.output_serialization = output_serialization + + +class QuerySerialization(Model): + """QuerySerialization. + + All required parameters must be populated in order to send to Azure. + + :param format: Required. + :type format: ~azure.storage.blob.models.QueryFormat + """ + + _validation = { + 'format': {'required': True}, + } + + _attribute_map = { + 'format': {'key': 'Format', 'type': 'QueryFormat', 'xml': {'name': 'Format'}}, + } + _xml_map = { + } + + def __init__(self, *, format, **kwargs) -> None: + super(QuerySerialization, self).__init__(**kwargs) + self.format = format + + +class RetentionPolicy(Model): + """the retention policy which determines how long the associated data should + persist. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Indicates whether a retention policy is enabled + for the storage service + :type enabled: bool + :param days: Indicates the number of days that metrics or logging or + soft-deleted data should be retained. All data older than this value will + be deleted + :type days: int + """ + + _validation = { + 'enabled': {'required': True}, + 'days': {'minimum': 1}, + } + + _attribute_map = { + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'days': {'key': 'Days', 'type': 'int', 'xml': {'name': 'Days'}}, + } + _xml_map = { + } + + def __init__(self, *, enabled: bool, days: int=None, **kwargs) -> None: + super(RetentionPolicy, self).__init__(**kwargs) + self.enabled = enabled + self.days = days + + +class SequenceNumberAccessConditions(Model): + """Additional parameters for a set of operations, such as: + PageBlob_upload_pages, PageBlob_clear_pages, + PageBlob_upload_pages_from_url. + + :param if_sequence_number_less_than_or_equal_to: Specify this header value + to operate only on a blob if it has a sequence number less than or equal + to the specified. + :type if_sequence_number_less_than_or_equal_to: long + :param if_sequence_number_less_than: Specify this header value to operate + only on a blob if it has a sequence number less than the specified. + :type if_sequence_number_less_than: long + :param if_sequence_number_equal_to: Specify this header value to operate + only on a blob if it has the specified sequence number. + :type if_sequence_number_equal_to: long + """ + + _attribute_map = { + 'if_sequence_number_less_than_or_equal_to': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_less_than_or_equal_to'}}, + 'if_sequence_number_less_than': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_less_than'}}, + 'if_sequence_number_equal_to': {'key': '', 'type': 'long', 'xml': {'name': 'if_sequence_number_equal_to'}}, + } + _xml_map = { + } + + def __init__(self, *, if_sequence_number_less_than_or_equal_to: int=None, if_sequence_number_less_than: int=None, if_sequence_number_equal_to: int=None, **kwargs) -> None: + super(SequenceNumberAccessConditions, self).__init__(**kwargs) + self.if_sequence_number_less_than_or_equal_to = if_sequence_number_less_than_or_equal_to + self.if_sequence_number_less_than = if_sequence_number_less_than + self.if_sequence_number_equal_to = if_sequence_number_equal_to + + +class SignedIdentifier(Model): + """signed identifier. + + All required parameters must be populated in order to send to Azure. + + :param id: Required. a unique id + :type id: str + :param access_policy: + :type access_policy: ~azure.storage.blob.models.AccessPolicy + """ + + _validation = { + 'id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'Id', 'type': 'str', 'xml': {'name': 'Id'}}, + 'access_policy': {'key': 'AccessPolicy', 'type': 'AccessPolicy', 'xml': {'name': 'AccessPolicy'}}, + } + _xml_map = { + 'name': 'SignedIdentifier' + } + + def __init__(self, *, id: str, access_policy=None, **kwargs) -> None: + super(SignedIdentifier, self).__init__(**kwargs) + self.id = id + self.access_policy = access_policy + + +class SourceModifiedAccessConditions(Model): + """Additional parameters for a set of operations. + + :param source_if_modified_since: Specify this header value to operate only + on a blob if it has been modified since the specified date/time. + :type source_if_modified_since: datetime + :param source_if_unmodified_since: Specify this header value to operate + only on a blob if it has not been modified since the specified date/time. + :type source_if_unmodified_since: datetime + :param source_if_match: Specify an ETag value to operate only on blobs + with a matching value. + :type source_if_match: str + :param source_if_none_match: Specify an ETag value to operate only on + blobs without a matching value. + :type source_if_none_match: str + :param source_if_tags: Specify a SQL where clause on blob tags to operate + only on blobs with a matching value. + :type source_if_tags: str + """ + + _attribute_map = { + 'source_if_modified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'source_if_modified_since'}}, + 'source_if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'source_if_unmodified_since'}}, + 'source_if_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_match'}}, + 'source_if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_none_match'}}, + 'source_if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_tags'}}, + } + _xml_map = { + } + + def __init__(self, *, source_if_modified_since=None, source_if_unmodified_since=None, source_if_match: str=None, source_if_none_match: str=None, source_if_tags: str=None, **kwargs) -> None: + super(SourceModifiedAccessConditions, self).__init__(**kwargs) + self.source_if_modified_since = source_if_modified_since + self.source_if_unmodified_since = source_if_unmodified_since + self.source_if_match = source_if_match + self.source_if_none_match = source_if_none_match + self.source_if_tags = source_if_tags + + +class StaticWebsite(Model): + """The properties that enable an account to host a static website. + + All required parameters must be populated in order to send to Azure. + + :param enabled: Required. Indicates whether this account is hosting a + static website + :type enabled: bool + :param index_document: The default name of the index page under each + directory + :type index_document: str + :param error_document404_path: The absolute path of the custom 404 page + :type error_document404_path: str + :param default_index_document_path: Absolute path of the default index + page + :type default_index_document_path: str + """ + + _validation = { + 'enabled': {'required': True}, + } + + _attribute_map = { + 'enabled': {'key': 'Enabled', 'type': 'bool', 'xml': {'name': 'Enabled'}}, + 'index_document': {'key': 'IndexDocument', 'type': 'str', 'xml': {'name': 'IndexDocument'}}, + 'error_document404_path': {'key': 'ErrorDocument404Path', 'type': 'str', 'xml': {'name': 'ErrorDocument404Path'}}, + 'default_index_document_path': {'key': 'DefaultIndexDocumentPath', 'type': 'str', 'xml': {'name': 'DefaultIndexDocumentPath'}}, + } + _xml_map = { + } + + def __init__(self, *, enabled: bool, index_document: str=None, error_document404_path: str=None, default_index_document_path: str=None, **kwargs) -> None: + super(StaticWebsite, self).__init__(**kwargs) + self.enabled = enabled + self.index_document = index_document + self.error_document404_path = error_document404_path + self.default_index_document_path = default_index_document_path + + +class StorageError(Model): + """StorageError. + + :param message: + :type message: str + """ + + _attribute_map = { + 'message': {'key': 'Message', 'type': 'str', 'xml': {'name': 'Message'}}, + } + _xml_map = { + } + + def __init__(self, *, message: str=None, **kwargs) -> None: + super(StorageError, self).__init__(**kwargs) + self.message = message + + +class StorageErrorException(HttpResponseError): + """Server responsed with exception of type: 'StorageError'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, response, deserialize, *args): + + model_name = 'StorageError' + self.error = deserialize(model_name, response) + if self.error is None: + self.error = deserialize.dependencies[model_name]() + super(StorageErrorException, self).__init__(response=response) + + +class StorageServiceProperties(Model): + """Storage Service Properties. + + :param logging: + :type logging: ~azure.storage.blob.models.Logging + :param hour_metrics: + :type hour_metrics: ~azure.storage.blob.models.Metrics + :param minute_metrics: + :type minute_metrics: ~azure.storage.blob.models.Metrics + :param cors: The set of CORS rules. + :type cors: list[~azure.storage.blob.models.CorsRule] + :param default_service_version: The default version to use for requests to + the Blob service if an incoming request's version is not specified. + Possible values include version 2008-10-27 and all more recent versions + :type default_service_version: str + :param delete_retention_policy: + :type delete_retention_policy: ~azure.storage.blob.models.RetentionPolicy + :param static_website: + :type static_website: ~azure.storage.blob.models.StaticWebsite + """ + + _attribute_map = { + 'logging': {'key': 'Logging', 'type': 'Logging', 'xml': {'name': 'Logging'}}, + 'hour_metrics': {'key': 'HourMetrics', 'type': 'Metrics', 'xml': {'name': 'HourMetrics'}}, + 'minute_metrics': {'key': 'MinuteMetrics', 'type': 'Metrics', 'xml': {'name': 'MinuteMetrics'}}, + 'cors': {'key': 'Cors', 'type': '[CorsRule]', 'xml': {'name': 'Cors', 'itemsName': 'CorsRule', 'wrapped': True}}, + 'default_service_version': {'key': 'DefaultServiceVersion', 'type': 'str', 'xml': {'name': 'DefaultServiceVersion'}}, + 'delete_retention_policy': {'key': 'DeleteRetentionPolicy', 'type': 'RetentionPolicy', 'xml': {'name': 'DeleteRetentionPolicy'}}, + 'static_website': {'key': 'StaticWebsite', 'type': 'StaticWebsite', 'xml': {'name': 'StaticWebsite'}}, + } + _xml_map = { + } + + def __init__(self, *, logging=None, hour_metrics=None, minute_metrics=None, cors=None, default_service_version: str=None, delete_retention_policy=None, static_website=None, **kwargs) -> None: + super(StorageServiceProperties, self).__init__(**kwargs) + self.logging = logging + self.hour_metrics = hour_metrics + self.minute_metrics = minute_metrics + self.cors = cors + self.default_service_version = default_service_version + self.delete_retention_policy = delete_retention_policy + self.static_website = static_website + + +class StorageServiceStats(Model): + """Stats for the storage service. + + :param geo_replication: + :type geo_replication: ~azure.storage.blob.models.GeoReplication + """ + + _attribute_map = { + 'geo_replication': {'key': 'GeoReplication', 'type': 'GeoReplication', 'xml': {'name': 'GeoReplication'}}, + } + _xml_map = { + } + + def __init__(self, *, geo_replication=None, **kwargs) -> None: + super(StorageServiceStats, self).__init__(**kwargs) + self.geo_replication = geo_replication + + +class UserDelegationKey(Model): + """A user delegation key. + + All required parameters must be populated in order to send to Azure. + + :param signed_oid: Required. The Azure Active Directory object ID in GUID + format. + :type signed_oid: str + :param signed_tid: Required. The Azure Active Directory tenant ID in GUID + format + :type signed_tid: str + :param signed_start: Required. The date-time the key is active + :type signed_start: datetime + :param signed_expiry: Required. The date-time the key expires + :type signed_expiry: datetime + :param signed_service: Required. Abbreviation of the Azure Storage service + that accepts the key + :type signed_service: str + :param signed_version: Required. The service version that created the key + :type signed_version: str + :param value: Required. The key as a base64 string + :type value: str + """ + + _validation = { + 'signed_oid': {'required': True}, + 'signed_tid': {'required': True}, + 'signed_start': {'required': True}, + 'signed_expiry': {'required': True}, + 'signed_service': {'required': True}, + 'signed_version': {'required': True}, + 'value': {'required': True}, + } + + _attribute_map = { + 'signed_oid': {'key': 'SignedOid', 'type': 'str', 'xml': {'name': 'SignedOid'}}, + 'signed_tid': {'key': 'SignedTid', 'type': 'str', 'xml': {'name': 'SignedTid'}}, + 'signed_start': {'key': 'SignedStart', 'type': 'iso-8601', 'xml': {'name': 'SignedStart'}}, + 'signed_expiry': {'key': 'SignedExpiry', 'type': 'iso-8601', 'xml': {'name': 'SignedExpiry'}}, + 'signed_service': {'key': 'SignedService', 'type': 'str', 'xml': {'name': 'SignedService'}}, + 'signed_version': {'key': 'SignedVersion', 'type': 'str', 'xml': {'name': 'SignedVersion'}}, + 'value': {'key': 'Value', 'type': 'str', 'xml': {'name': 'Value'}}, + } + _xml_map = { + } + + def __init__(self, *, signed_oid: str, signed_tid: str, signed_start, signed_expiry, signed_service: str, signed_version: str, value: str, **kwargs) -> None: + super(UserDelegationKey, self).__init__(**kwargs) + self.signed_oid = signed_oid + self.signed_tid = signed_tid + self.signed_start = signed_start + self.signed_expiry = signed_expiry + self.signed_service = signed_service + self.signed_version = signed_version + self.value = value diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/__init__.py new file mode 100644 index 00000000000..1ea04533440 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/__init__.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from ._service_operations import ServiceOperations +from ._container_operations import ContainerOperations +from ._directory_operations import DirectoryOperations +from ._blob_operations import BlobOperations +from ._page_blob_operations import PageBlobOperations +from ._append_blob_operations import AppendBlobOperations +from ._block_blob_operations import BlockBlobOperations + +__all__ = [ + 'ServiceOperations', + 'ContainerOperations', + 'DirectoryOperations', + 'BlobOperations', + 'PageBlobOperations', + 'AppendBlobOperations', + 'BlockBlobOperations', +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_append_blob_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_append_blob_operations.py new file mode 100644 index 00000000000..000810acffe --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_append_blob_operations.py @@ -0,0 +1,694 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class AppendBlobOperations(object): + """AppendBlobOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "AppendBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "AppendBlob" + + def create(self, content_length, timeout=None, metadata=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Create Append Blob operation creates a new append blob. + + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}/{blob}'} + + def append_block(self, body, content_length, timeout=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, lease_access_conditions=None, append_position_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Append Block operation commits a new block of data to the end of an + existing append blob. The Append Block operation is permitted only if + the blob was created with x-ms-blob-type set to AppendBlob. Append + Block is supported only on version 2015-02-21 version or later. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + max_size = None + if append_position_access_conditions is not None: + max_size = append_position_access_conditions.max_size + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "appendblock" + + # Construct URL + url = self.append_block.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if max_size is not None: + header_parameters['x-ms-blob-condition-maxsize'] = self._serialize.header("max_size", max_size, 'long') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-append-offset': self._deserialize('str', response.headers.get('x-ms-blob-append-offset')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + append_block.metadata = {'url': '/{containerName}/{blob}'} + + def append_block_from_url(self, source_url, content_length, source_range=None, source_content_md5=None, source_contentcrc64=None, timeout=None, transactional_content_md5=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, append_position_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, cls=None, **kwargs): + """The Append Block operation commits a new block of data to the end of an + existing append blob where the contents are read from a source url. The + Append Block operation is permitted only if the blob was created with + x-ms-blob-type set to AppendBlob. Append Block is supported only on + version 2015-02-21 version or later. + + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param content_length: The length of the request. + :type content_length: long + :param source_range: Bytes of source data in the specified range. + :type source_range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + max_size = None + if append_position_access_conditions is not None: + max_size = append_position_access_conditions.max_size + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "appendblock" + + # Construct URL + url = self.append_block_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + if source_range is not None: + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if max_size is not None: + header_parameters['x-ms-blob-condition-maxsize'] = self._serialize.header("max_size", max_size, 'long') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-append-offset': self._deserialize('str', response.headers.get('x-ms-blob-append-offset')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + append_block_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def seal(self, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, append_position_access_conditions=None, cls=None, **kwargs): + """The Seal operation seals the Append Blob to make it read-only. Seal is + supported only on version 2019-12-12 version or later. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param append_position_access_conditions: Additional parameters for + the operation + :type append_position_access_conditions: + ~azure.storage.blob.models.AppendPositionAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + append_position = None + if append_position_access_conditions is not None: + append_position = append_position_access_conditions.append_position + + comp = "seal" + + # Construct URL + url = self.seal.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if append_position is not None: + header_parameters['x-ms-blob-condition-appendpos'] = self._serialize.header("append_position", append_position, 'long') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + seal.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_blob_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_blob_operations.py new file mode 100644 index 00000000000..66b079abbd0 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_blob_operations.py @@ -0,0 +1,3065 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class BlobOperations(object): + """BlobOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_requires_sync: . Constant value: "true". + :ivar x_ms_copy_action: . Constant value: "abort". + :ivar restype: . Constant value: "account". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_requires_sync = "true" + self.x_ms_copy_action = "abort" + self.restype = "account" + + def download(self, snapshot=None, version_id=None, timeout=None, range=None, range_get_content_md5=None, range_get_content_crc64=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Download operation reads or downloads a blob from the system, + including its metadata and properties. You can also call Download to + read a snapshot. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param range_get_content_md5: When set to true and specified together + with the Range, the service returns the MD5 hash for the range, as + long as the range is less than or equal to 4 MB in size. + :type range_get_content_md5: bool + :param range_get_content_crc64: When set to true and specified + together with the Range, the service returns the CRC64 hash for the + range, as long as the range is less than or equal to 4 MB in size. + :type range_get_content_crc64: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.download.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + if range_get_content_md5 is not None: + header_parameters['x-ms-range-get-content-md5'] = self._serialize.header("range_get_content_md5", range_get_content_md5, 'bool') + if range_get_content_crc64 is not None: + header_parameters['x-ms-range-get-content-crc64'] = self._serialize.header("range_get_content_crc64", range_get_content_crc64, 'bool') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 206]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-last-access-time': self._deserialize('rfc-1123', response.headers.get('x-ms-last-access-time')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + if response.status_code == 206: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-last-access-time': self._deserialize('rfc-1123', response.headers.get('x-ms-last-access-time')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + download.metadata = {'url': '/{containerName}/{blob}'} + + def get_properties(self, snapshot=None, version_id=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Get Properties operation returns all user-defined metadata, + standard HTTP properties, and system properties for the blob. It does + not return the content of the blob. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-creation-time': self._deserialize('rfc-1123', response.headers.get('x-ms-creation-time')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'x-ms-or-policy-id': self._deserialize('str', response.headers.get('x-ms-or-policy-id')), + 'x-ms-or': self._deserialize('{str}', response.headers.get('x-ms-or')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-incremental-copy': self._deserialize('bool', response.headers.get('x-ms-incremental-copy')), + 'x-ms-copy-destination-snapshot': self._deserialize('str', response.headers.get('x-ms-copy-destination-snapshot')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-access-tier': self._deserialize('str', response.headers.get('x-ms-access-tier')), + 'x-ms-access-tier-inferred': self._deserialize('bool', response.headers.get('x-ms-access-tier-inferred')), + 'x-ms-archive-status': self._deserialize('str', response.headers.get('x-ms-archive-status')), + 'x-ms-access-tier-change-time': self._deserialize('rfc-1123', response.headers.get('x-ms-access-tier-change-time')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'x-ms-is-current-version': self._deserialize('bool', response.headers.get('x-ms-is-current-version')), + 'x-ms-tag-count': self._deserialize('long', response.headers.get('x-ms-tag-count')), + 'x-ms-expiry-time': self._deserialize('rfc-1123', response.headers.get('x-ms-expiry-time')), + 'x-ms-blob-sealed': self._deserialize('bool', response.headers.get('x-ms-blob-sealed')), + 'x-ms-rehydrate-priority': self._deserialize('str', response.headers.get('x-ms-rehydrate-priority')), + 'x-ms-last-access-time': self._deserialize('rfc-1123', response.headers.get('x-ms-last-access-time')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_properties.metadata = {'url': '/{containerName}/{blob}'} + + def delete(self, snapshot=None, version_id=None, timeout=None, delete_snapshots=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """If the storage account's soft delete feature is disabled then, when a + blob is deleted, it is permanently removed from the storage account. If + the storage account's soft delete feature is enabled, then, when a blob + is deleted, it is marked for deletion and becomes inaccessible + immediately. However, the blob service retains the blob or snapshot for + the number of days specified by the DeleteRetentionPolicy section of + [Storage service properties] (Set-Blob-Service-Properties.md). After + the specified number of days has passed, the blob's data is permanently + removed from the storage account. Note that you continue to be charged + for the soft-deleted blob's storage until it is permanently removed. + Use the List Blobs API and specify the "include=deleted" query + parameter to discover which blobs and snapshots have been soft deleted. + You can then use the Undelete Blob API to restore a soft-deleted blob. + All other operations on a soft-deleted blob or snapshot causes the + service to return an HTTP status code of 404 (ResourceNotFound). + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param delete_snapshots: Required if the blob has associated + snapshots. Specify one of the following two options: include: Delete + the base blob and all of its snapshots. only: Delete only the blob's + snapshots and not the blob itself. Possible values include: 'include', + 'only' + :type delete_snapshots: str or + ~azure.storage.blob.models.DeleteSnapshotsOptionType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if delete_snapshots is not None: + header_parameters['x-ms-delete-snapshots'] = self._serialize.header("delete_snapshots", delete_snapshots, 'DeleteSnapshotsOptionType') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{containerName}/{blob}'} + + def set_access_control(self, timeout=None, owner=None, group=None, posix_permissions=None, posix_acl=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Set the owner, group, permissions, or access control list for a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param owner: Optional. The owner of the blob or directory. + :type owner: str + :param group: Optional. The owning group of the blob or directory. + :type group: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_acl: Sets POSIX access control rights on files and + directories. The value is a comma-separated list of access control + entries. Each access control entry (ACE) consists of a scope, a type, + a user or group identifier, and permissions in the format + "[scope:][type]:[id]:[permissions]". + :type posix_acl: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "setAccessControl" + + # Construct URL + url = self.set_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if owner is not None: + header_parameters['x-ms-owner'] = self._serialize.header("owner", owner, 'str') + if group is not None: + header_parameters['x-ms-group'] = self._serialize.header("group", group, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_acl is not None: + header_parameters['x-ms-acl'] = self._serialize.header("posix_acl", posix_acl, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + set_access_control.metadata = {'url': '/{filesystem}/{path}'} + + def get_access_control(self, timeout=None, upn=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Get the owner, group, permissions, or access control list for a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param upn: Optional. Valid only when Hierarchical Namespace is + enabled for the account. If "true", the identity values returned in + the x-ms-owner, x-ms-group, and x-ms-acl response headers will be + transformed from Azure Active Directory Object IDs to User Principal + Names. If "false", the values will be returned as Azure Active + Directory Object IDs. The default value is false. + :type upn: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "getAccessControl" + + # Construct URL + url = self.get_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if upn is not None: + query_parameters['upn'] = self._serialize.query("upn", upn, 'bool') + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-owner': self._deserialize('str', response.headers.get('x-ms-owner')), + 'x-ms-group': self._deserialize('str', response.headers.get('x-ms-group')), + 'x-ms-permissions': self._deserialize('str', response.headers.get('x-ms-permissions')), + 'x-ms-acl': self._deserialize('str', response.headers.get('x-ms-acl')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + get_access_control.metadata = {'url': '/{filesystem}/{path}'} + + def rename(self, rename_source, timeout=None, path_rename_mode=None, directory_properties=None, posix_permissions=None, posix_umask=None, source_lease_id=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, cls=None, **kwargs): + """Rename a blob/file. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param rename_source: The file or directory to be renamed. The value + must have the following format: "/{filesysystem}/{path}". If + "x-ms-properties" is specified, the properties will overwrite the + existing properties; otherwise, the existing properties will be + preserved. + :type rename_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param path_rename_mode: Determines the behavior of the rename + operation. Possible values include: 'legacy', 'posix' + :type path_rename_mode: str or + ~azure.storage.blob.models.PathRenameMode + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param source_lease_id: A lease ID for the source path. If specified, + the source path must have an active lease and the lease ID must match. + :type source_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + # Construct URL + url = self.rename.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if path_rename_mode is not None: + query_parameters['mode'] = self._serialize.query("path_rename_mode", path_rename_mode, 'PathRenameMode') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-rename-source'] = self._serialize.header("rename_source", rename_source, 'str') + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + if source_lease_id is not None: + header_parameters['x-ms-source-lease-id'] = self._serialize.header("source_lease_id", source_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + rename.metadata = {'url': '/{filesystem}/{path}'} + + def undelete(self, timeout=None, request_id=None, cls=None, **kwargs): + """Undelete a blob that was previously soft deleted. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "undelete" + + # Construct URL + url = self.undelete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + undelete.metadata = {'url': '/{containerName}/{blob}'} + + def set_expiry(self, expiry_options, timeout=None, request_id=None, expires_on=None, cls=None, **kwargs): + """Sets the time a blob will expire and be deleted. + + :param expiry_options: Required. Indicates mode of the expiry time. + Possible values include: 'NeverExpire', 'RelativeToCreation', + 'RelativeToNow', 'Absolute' + :type expiry_options: str or + ~azure.storage.blob.models.BlobExpiryOptions + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param expires_on: The time to set the blob to expiry + :type expires_on: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "expiry" + + # Construct URL + url = self.set_expiry.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-expiry-option'] = self._serialize.header("expiry_options", expiry_options, 'str') + if expires_on is not None: + header_parameters['x-ms-expiry-time'] = self._serialize.header("expires_on", expires_on, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_expiry.metadata = {'url': '/{containerName}/{blob}'} + + def set_http_headers(self, timeout=None, request_id=None, blob_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Set HTTP Headers operation sets system properties on the blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.set_http_headers.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_http_headers.metadata = {'url': '/{containerName}/{blob}'} + + def set_metadata(self, timeout=None, metadata=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Set Blob Metadata operation sets user-defined metadata for the + specified blob as one or more name-value pairs. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "metadata" + + # Construct URL + url = self.set_metadata.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_metadata.metadata = {'url': '/{containerName}/{blob}'} + + def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param duration: Specifies the duration of the lease, in seconds, or + negative one (-1) for a lease that never expires. A non-infinite lease + can be between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. + :type duration: int + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "acquire" + + # Construct URL + url = self.acquire_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if duration is not None: + header_parameters['x-ms-lease-duration'] = self._serialize.header("duration", duration, 'int') + if proposed_lease_id is not None: + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + acquire_lease.metadata = {'url': '/{containerName}/{blob}'} + + def release_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "release" + + # Construct URL + url = self.release_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + release_lease.metadata = {'url': '/{containerName}/{blob}'} + + def renew_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "renew" + + # Construct URL + url = self.renew_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + renew_lease.metadata = {'url': '/{containerName}/{blob}'} + + def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "change" + + # Construct URL + url = self.change_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + change_lease.metadata = {'url': '/{containerName}/{blob}'} + + def break_lease(self, timeout=None, break_period=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] The Lease Blob operation establishes and manages a lock on a + blob for write and delete operations. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param break_period: For a break operation, proposed duration the + lease should continue before it is broken, in seconds, between 0 and + 60. This break period is only used if it is shorter than the time + remaining on the lease. If longer, the time remaining on the lease is + used. A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break period. + If this header does not appear with a break operation, a + fixed-duration lease breaks after the remaining lease period elapses, + and an infinite lease breaks immediately. + :type break_period: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "lease" + action = "break" + + # Construct URL + url = self.break_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if break_period is not None: + header_parameters['x-ms-lease-break-period'] = self._serialize.header("break_period", break_period, 'int') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-time': self._deserialize('int', response.headers.get('x-ms-lease-time')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + break_lease.metadata = {'url': '/{containerName}/{blob}'} + + def create_snapshot(self, timeout=None, metadata=None, request_id=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, lease_access_conditions=None, cls=None, **kwargs): + """The Create Snapshot operation creates a read-only snapshot of a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + comp = "snapshot" + + # Construct URL + url = self.create_snapshot.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-snapshot': self._deserialize('str', response.headers.get('x-ms-snapshot')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create_snapshot.metadata = {'url': '/{containerName}/{blob}'} + + def start_copy_from_url(self, copy_source, timeout=None, metadata=None, tier=None, rehydrate_priority=None, request_id=None, blob_tags_string=None, seal_blob=None, source_modified_access_conditions=None, modified_access_conditions=None, lease_access_conditions=None, cls=None, **kwargs): + """The Start Copy From URL operation copies a blob or an internet resource + to a new blob. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param rehydrate_priority: Optional: Indicates the priority with which + to rehydrate an archived blob. Possible values include: 'High', + 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param seal_blob: Overrides the sealed state of the destination blob. + Service version 2019-12-12 and newer. + :type seal_blob: bool + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + source_if_tags = None + if source_modified_access_conditions is not None: + source_if_tags = source_modified_access_conditions.source_if_tags + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + # Construct URL + url = self.start_copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if rehydrate_priority is not None: + header_parameters['x-ms-rehydrate-priority'] = self._serialize.header("rehydrate_priority", rehydrate_priority, 'str') + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + if seal_blob is not None: + header_parameters['x-ms-seal-blob'] = self._serialize.header("seal_blob", seal_blob, 'bool') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + if source_if_tags is not None: + header_parameters['x-ms-source-if-tags'] = self._serialize.header("source_if_tags", source_if_tags, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + start_copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def copy_from_url(self, copy_source, timeout=None, metadata=None, tier=None, request_id=None, source_content_md5=None, blob_tags_string=None, source_modified_access_conditions=None, modified_access_conditions=None, lease_access_conditions=None, cls=None, **kwargs): + """The Copy From URL operation copies a blob or an internet resource to a + new blob. It will not return a response until the copy is complete. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + # Construct URL + url = self.copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-requires-sync'] = self._serialize.header("self.x_ms_requires_sync", self.x_ms_requires_sync, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.SyncCopyStatusType, response.headers.get('x-ms-copy-status')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def abort_copy_from_url(self, copy_id, timeout=None, request_id=None, lease_access_conditions=None, cls=None, **kwargs): + """The Abort Copy From URL operation aborts a pending Copy From URL + operation, and leaves a destination blob with zero length and full + metadata. + + :param copy_id: The copy identifier provided in the x-ms-copy-id + header of the original Copy Blob operation. + :type copy_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + comp = "copy" + + # Construct URL + url = self.abort_copy_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['copyid'] = self._serialize.query("copy_id", copy_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-copy-action'] = self._serialize.header("self.x_ms_copy_action", self.x_ms_copy_action, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + abort_copy_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def set_tier(self, tier, snapshot=None, version_id=None, timeout=None, rehydrate_priority=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Set Tier operation sets the tier on a blob. The operation is + allowed on a page blob in a premium storage account and on a block blob + in a blob storage account (locally redundant storage only). A premium + page blob's tier determines the allowed size, IOPS, and bandwidth of + the blob. A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param tier: Indicates the tier to be set on the blob. Possible values + include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', 'P40', 'P50', 'P60', + 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierRequired + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param rehydrate_priority: Optional: Indicates the priority with which + to rehydrate an archived blob. Possible values include: 'High', + 'Standard' + :type rehydrate_priority: str or + ~azure.storage.blob.models.RehydratePriority + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tier" + + # Construct URL + url = self.set_tier.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if rehydrate_priority is not None: + header_parameters['x-ms-rehydrate-priority'] = self._serialize.header("rehydrate_priority", rehydrate_priority, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_tier.metadata = {'url': '/{containerName}/{blob}'} + + def get_account_info(self, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("self.restype", self.restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/{containerName}/{blob}'} + + def query(self, query_request=None, snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Query operation enables users to select/project on blob data by + providing simple query expressions. + + :param query_request: the query request + :type query_request: ~azure.storage.blob.models.QueryRequest + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "query" + + # Construct URL + url = self.query.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + if query_request is not None: + body_content = self._serialize.body(query_request, 'QueryRequest') + else: + body_content = None + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200, 206]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + if response.status_code == 206: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'Content-Range': self._deserialize('str', response.headers.get('Content-Range')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'Content-Encoding': self._deserialize('str', response.headers.get('Content-Encoding')), + 'Cache-Control': self._deserialize('str', response.headers.get('Cache-Control')), + 'Content-Disposition': self._deserialize('str', response.headers.get('Content-Disposition')), + 'Content-Language': self._deserialize('str', response.headers.get('Content-Language')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-blob-type': self._deserialize(models.BlobType, response.headers.get('x-ms-blob-type')), + 'x-ms-copy-completion-time': self._deserialize('rfc-1123', response.headers.get('x-ms-copy-completion-time')), + 'x-ms-copy-status-description': self._deserialize('str', response.headers.get('x-ms-copy-status-description')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-progress': self._deserialize('str', response.headers.get('x-ms-copy-progress')), + 'x-ms-copy-source': self._deserialize('str', response.headers.get('x-ms-copy-source')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Accept-Ranges': self._deserialize('str', response.headers.get('Accept-Ranges')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-committed-block-count': self._deserialize('int', response.headers.get('x-ms-blob-committed-block-count')), + 'x-ms-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-blob-content-md5': self._deserialize('bytearray', response.headers.get('x-ms-blob-content-md5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + query.metadata = {'url': '/{containerName}/{blob}'} + + def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None, modified_access_conditions=None, cls=None, **kwargs): + """The Get Tags operation enables users to get the tags associated with a + blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: BlobTags or the result of cls(response) + :rtype: ~azure.storage.blob.models.BlobTags + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tags" + + # Construct URL + url = self.get_tags.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlobTags', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_tags.metadata = {'url': '/{containerName}/{blob}'} + + def set_tags(self, timeout=None, version_id=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, tags=None, modified_access_conditions=None, cls=None, **kwargs): + """The Set Tags operation enables users to set tags on a blob. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param version_id: The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to operate + on. It's for service version 2019-10-10 and newer. + :type version_id: str + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param tags: Blob tags + :type tags: ~azure.storage.blob.models.BlobTags + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "tags" + + # Construct URL + url = self.set_tags.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if version_id is not None: + query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + if tags is not None: + body_content = self._serialize.body(tags, 'BlobTags') + else: + body_content = None + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_tags.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_block_blob_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_block_blob_operations.py new file mode 100644 index 00000000000..8228c4782b6 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_block_blob_operations.py @@ -0,0 +1,833 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class BlockBlobOperations(object): + """BlockBlobOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "BlockBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "BlockBlob" + + def upload(self, body, content_length, timeout=None, transactional_content_md5=None, metadata=None, tier=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Upload Block Blob operation updates the content of an existing + block blob. Updating an existing block blob overwrites any existing + metadata on the blob. Partial updates are not supported with Put Blob; + the content of the existing blob is overwritten with the content of the + new blob. To perform a partial update of the content of a block blob, + use the Put Block List operation. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.upload.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload.metadata = {'url': '/{containerName}/{blob}'} + + def stage_block(self, block_id, content_length, body, transactional_content_md5=None, transactional_content_crc64=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, cls=None, **kwargs): + """The Stage Block operation creates a new block to be committed as part + of a blob. + + :param block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the blockid parameter must be the same size for each block. + :type block_id: str + :param content_length: The length of the request. + :type content_length: long + :param body: Initial data + :type body: Generator + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + + comp = "block" + + # Construct URL + url = self.stage_block.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['blockid'] = self._serialize.query("block_id", block_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + stage_block.metadata = {'url': '/{containerName}/{blob}'} + + def stage_block_from_url(self, block_id, content_length, source_url, source_range=None, source_content_md5=None, source_contentcrc64=None, timeout=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, source_modified_access_conditions=None, cls=None, **kwargs): + """The Stage Block operation creates a new block to be committed as part + of a blob where the contents are read from a URL. + + :param block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the blockid parameter must be the same size for each block. + :type block_id: str + :param content_length: The length of the request. + :type content_length: long + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param source_range: Bytes of source data in the specified range. + :type source_range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "block" + + # Construct URL + url = self.stage_block_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['blockid'] = self._serialize.query("block_id", block_id, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + if source_range is not None: + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + stage_block_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def commit_block_list(self, blocks, timeout=None, transactional_content_md5=None, transactional_content_crc64=None, metadata=None, tier=None, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Commit Block List operation writes a blob by specifying the list of + block IDs that make up the blob. In order to be written as part of a + blob, a block must have been successfully written to the server in a + prior Put Block operation. You can call Put Block List to update a blob + by uploading only those blocks that have changed, then committing the + new and existing blocks together. You can do this by specifying whether + to commit a block from the committed block list or from the uncommitted + block list, or to commit the most recently uploaded version of the + block, whichever list it may belong to. + + :param blocks: + :type blocks: ~azure.storage.blob.models.BlockLookupList + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param tier: Optional. Indicates the tier to be set on the blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80', 'Hot', 'Cool', 'Archive' + :type tier: str or ~azure.storage.blob.models.AccessTierOptional + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "blocklist" + + # Construct URL + url = self.commit_block_list.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + body_content = self._serialize.body(blocks, 'BlockLookupList') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + commit_block_list.metadata = {'url': '/{containerName}/{blob}'} + + def get_block_list(self, list_type="committed", snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Get Block List operation retrieves the list of blocks that have + been uploaded as part of a block blob. + + :param list_type: Specifies whether to return the list of committed + blocks, the list of uncommitted blocks, or both lists together. + Possible values include: 'committed', 'uncommitted', 'all' + :type list_type: str or ~azure.storage.blob.models.BlockListType + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: BlockList or the result of cls(response) + :rtype: ~azure.storage.blob.models.BlockList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "blocklist" + + # Construct URL + url = self.get_block_list.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + query_parameters['blocklisttype'] = self._serialize.query("list_type", list_type, 'BlockListType') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('BlockList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_block_list.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_container_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_container_operations.py new file mode 100644 index 00000000000..5730483519a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_container_operations.py @@ -0,0 +1,1400 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class ContainerOperations(object): + """ContainerOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + + def create(self, timeout=None, metadata=None, access=None, request_id=None, container_cpk_scope_info=None, cls=None, **kwargs): + """creates a new container under the specified account. If the container + with the same name already exists, the operation fails. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param access: Specifies whether data in the container may be accessed + publicly and the level of access. Possible values include: + 'container', 'blob' + :type access: str or ~azure.storage.blob.models.PublicAccessType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param container_cpk_scope_info: Additional parameters for the + operation + :type container_cpk_scope_info: + ~azure.storage.blob.models.ContainerCpkScopeInfo + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + default_encryption_scope = None + if container_cpk_scope_info is not None: + default_encryption_scope = container_cpk_scope_info.default_encryption_scope + prevent_encryption_scope_override = None + if container_cpk_scope_info is not None: + prevent_encryption_scope_override = container_cpk_scope_info.prevent_encryption_scope_override + + restype = "container" + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + if access is not None: + header_parameters['x-ms-blob-public-access'] = self._serialize.header("access", access, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if default_encryption_scope is not None: + header_parameters['x-ms-default-encryption-scope'] = self._serialize.header("default_encryption_scope", default_encryption_scope, 'str') + if prevent_encryption_scope_override is not None: + header_parameters['x-ms-deny-encryption-scope-override'] = self._serialize.header("prevent_encryption_scope_override", prevent_encryption_scope_override, 'bool') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}'} + + def get_properties(self, timeout=None, request_id=None, lease_access_conditions=None, cls=None, **kwargs): + """returns all user-defined metadata and system properties for the + specified container. The data returned does not include the container's + list of blobs. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + restype = "container" + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-meta': self._deserialize('{str}', response.headers.get('x-ms-meta')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-duration': self._deserialize(models.LeaseDurationType, response.headers.get('x-ms-lease-duration')), + 'x-ms-lease-state': self._deserialize(models.LeaseStateType, response.headers.get('x-ms-lease-state')), + 'x-ms-lease-status': self._deserialize(models.LeaseStatusType, response.headers.get('x-ms-lease-status')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-blob-public-access': self._deserialize('str', response.headers.get('x-ms-blob-public-access')), + 'x-ms-has-immutability-policy': self._deserialize('bool', response.headers.get('x-ms-has-immutability-policy')), + 'x-ms-has-legal-hold': self._deserialize('bool', response.headers.get('x-ms-has-legal-hold')), + 'x-ms-default-encryption-scope': self._deserialize('str', response.headers.get('x-ms-default-encryption-scope')), + 'x-ms-deny-encryption-scope-override': self._deserialize('bool', response.headers.get('x-ms-deny-encryption-scope-override')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_properties.metadata = {'url': '/{containerName}'} + + def delete(self, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """operation marks the specified container for deletion. The container and + any blobs contained within it are later deleted during garbage + collection. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + restype = "container" + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{containerName}'} + + def set_metadata(self, timeout=None, metadata=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """operation sets one or more user-defined name-value pairs for the + specified container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + + restype = "container" + comp = "metadata" + + # Construct URL + url = self.set_metadata.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_metadata.metadata = {'url': '/{containerName}'} + + def get_access_policy(self, timeout=None, request_id=None, lease_access_conditions=None, cls=None, **kwargs): + """gets the permissions for the specified container. The permissions + indicate whether container data may be accessed publicly. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: list or the result of cls(response) + :rtype: list[~azure.storage.blob.models.SignedIdentifier] + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + + restype = "container" + comp = "acl" + + # Construct URL + url = self.get_access_policy.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('[SignedIdentifier]', response) + header_dict = { + 'x-ms-blob-public-access': self._deserialize('str', response.headers.get('x-ms-blob-public-access')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_access_policy.metadata = {'url': '/{containerName}'} + + def set_access_policy(self, container_acl=None, timeout=None, access=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """sets the permissions for the specified container. The permissions + indicate whether blobs in a container may be accessed publicly. + + :param container_acl: the acls for the container + :type container_acl: list[~azure.storage.blob.models.SignedIdentifier] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param access: Specifies whether data in the container may be accessed + publicly and the level of access. Possible values include: + 'container', 'blob' + :type access: str or ~azure.storage.blob.models.PublicAccessType + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + restype = "container" + comp = "acl" + + # Construct URL + url = self.set_access_policy.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + if access is not None: + header_parameters['x-ms-blob-public-access'] = self._serialize.header("access", access, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct body + serialization_ctxt = {'xml': {'name': 'SignedIdentifiers', 'itemsName': 'SignedIdentifiers', 'wrapped': True}} + if container_acl is not None: + body_content = self._serialize.body(container_acl, '[SignedIdentifier]', serialization_ctxt=serialization_ctxt) + else: + body_content = None + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_access_policy.metadata = {'url': '/{containerName}'} + + def restore(self, timeout=None, request_id=None, deleted_container_name=None, deleted_container_version=None, cls=None, **kwargs): + """Restores a previously-deleted container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param deleted_container_name: Optional. Version 2019-12-12 and + laster. Specifies the name of the deleted container to restore. + :type deleted_container_name: str + :param deleted_container_version: Optional. Version 2019-12-12 and + laster. Specifies the version of the deleted container to restore. + :type deleted_container_version: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "undelete" + + # Construct URL + url = self.restore.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if deleted_container_name is not None: + header_parameters['x-ms-deleted-container-name'] = self._serialize.header("deleted_container_name", deleted_container_name, 'str') + if deleted_container_version is not None: + header_parameters['x-ms-deleted-container-version'] = self._serialize.header("deleted_container_version", deleted_container_version, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + restore.metadata = {'url': '/{containerName}'} + + def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param duration: Specifies the duration of the lease, in seconds, or + negative one (-1) for a lease that never expires. A non-infinite lease + can be between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. + :type duration: int + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "acquire" + + # Construct URL + url = self.acquire_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if duration is not None: + header_parameters['x-ms-lease-duration'] = self._serialize.header("duration", duration, 'int') + if proposed_lease_id is not None: + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + acquire_lease.metadata = {'url': '/{containerName}'} + + def release_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "release" + + # Construct URL + url = self.release_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + release_lease.metadata = {'url': '/{containerName}'} + + def renew_lease(self, lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "renew" + + # Construct URL + url = self.renew_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + renew_lease.metadata = {'url': '/{containerName}'} + + def break_lease(self, timeout=None, break_period=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param break_period: For a break operation, proposed duration the + lease should continue before it is broken, in seconds, between 0 and + 60. This break period is only used if it is shorter than the time + remaining on the lease. If longer, the time remaining on the lease is + used. A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break period. + If this header does not appear with a break operation, a + fixed-duration lease breaks after the remaining lease period elapses, + and an infinite lease breaks immediately. + :type break_period: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "break" + + # Construct URL + url = self.break_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + if break_period is not None: + header_parameters['x-ms-lease-break-period'] = self._serialize.header("break_period", break_period, 'int') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-time': self._deserialize('int', response.headers.get('x-ms-lease-time')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + break_lease.metadata = {'url': '/{containerName}'} + + def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """[Update] establishes and manages a lock on a container for delete + operations. The lock duration can be 15 to 60 seconds, or can be + infinite. + + :param lease_id: Specifies the current lease ID on the resource. + :type lease_id: str + :param proposed_lease_id: Proposed lease ID, in a GUID string format. + The Blob service returns 400 (Invalid request) if the proposed lease + ID is not in the correct format. See Guid Constructor (String) for a + list of valid GUID string formats. + :type proposed_lease_id: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + comp = "lease" + restype = "container" + action = "change" + + # Construct URL + url = self.change_lease.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + header_parameters['x-ms-proposed-lease-id'] = self._serialize.header("proposed_lease_id", proposed_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-lease-action'] = self._serialize.header("action", action, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-lease-id': self._deserialize('str', response.headers.get('x-ms-lease-id')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + change_lease.metadata = {'url': '/{containerName}'} + + def list_blob_flat_segment(self, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, cls=None, **kwargs): + """[Update] The List Blobs operation returns a list of the blobs under the + specified container. + + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify one or more datasets + to include in the response. + :type include: list[str or + ~azure.storage.blob.models.ListBlobsIncludeItem] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListBlobsFlatSegmentResponse or the result of cls(response) + :rtype: ~azure.storage.blob.models.ListBlobsFlatSegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "list" + + # Construct URL + url = self.list_blob_flat_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListBlobsIncludeItem]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListBlobsFlatSegmentResponse', response) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_blob_flat_segment.metadata = {'url': '/{containerName}'} + + def list_blob_hierarchy_segment(self, delimiter, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, cls=None, **kwargs): + """[Update] The List Blobs operation returns a list of the blobs under the + specified container. + + :param delimiter: When the request includes this parameter, the + operation returns a BlobPrefix element in the response body that acts + as a placeholder for all blobs whose names begin with the same + substring up to the appearance of the delimiter character. The + delimiter may be a single character or a string. + :type delimiter: str + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify one or more datasets + to include in the response. + :type include: list[str or + ~azure.storage.blob.models.ListBlobsIncludeItem] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListBlobsHierarchySegmentResponse or the result of + cls(response) + :rtype: ~azure.storage.blob.models.ListBlobsHierarchySegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "container" + comp = "list" + + # Construct URL + url = self.list_blob_hierarchy_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + query_parameters['delimiter'] = self._serialize.query("delimiter", delimiter, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListBlobsIncludeItem]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListBlobsHierarchySegmentResponse', response) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_blob_hierarchy_segment.metadata = {'url': '/{containerName}'} + + def get_account_info(self, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "account" + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/{containerName}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_directory_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_directory_operations.py new file mode 100644 index 00000000000..c2bf3178b97 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_directory_operations.py @@ -0,0 +1,739 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class DirectoryOperations(object): + """DirectoryOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar resource: . Constant value: "directory". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.resource = "directory" + + def create(self, timeout=None, directory_properties=None, posix_permissions=None, posix_umask=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Create a directory. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['resource'] = self._serialize.query("self.resource", self.resource, 'str') + + # Construct headers + header_parameters = {} + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{filesystem}/{path}'} + + def rename(self, rename_source, timeout=None, marker=None, path_rename_mode=None, directory_properties=None, posix_permissions=None, posix_umask=None, source_lease_id=None, request_id=None, directory_http_headers=None, lease_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, cls=None, **kwargs): + """Rename a directory. By default, the destination is overwritten and if + the destination already exists and has a lease the lease is broken. + This operation supports conditional HTTP requests. For more + information, see [Specifying Conditional Headers for Blob Service + Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations). + To fail if the destination already exists, use a conditional request + with If-None-Match: "*". + + :param rename_source: The file or directory to be renamed. The value + must have the following format: "/{filesysystem}/{path}". If + "x-ms-properties" is specified, the properties will overwrite the + existing properties; otherwise, the existing properties will be + preserved. + :type rename_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param marker: When renaming a directory, the number of paths that are + renamed with each invocation is limited. If the number of paths to be + renamed exceeds this limit, a continuation token is returned in this + response header. When a continuation token is returned in the + response, it must be specified in a subsequent invocation of the + rename operation to continue renaming the directory. + :type marker: str + :param path_rename_mode: Determines the behavior of the rename + operation. Possible values include: 'legacy', 'posix' + :type path_rename_mode: str or + ~azure.storage.blob.models.PathRenameMode + :param directory_properties: Optional. User-defined properties to be + stored with the file or directory, in the format of a comma-separated + list of name and value pairs "n1=v1, n2=v2, ...", where each value is + base64 encoded. + :type directory_properties: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_umask: Only valid if Hierarchical Namespace is enabled + for the account. This umask restricts permission settings for file and + directory, and will only be applied when default Acl does not exist in + parent directory. If the umask bit has set, it means that the + corresponding permission will be disabled. Otherwise the corresponding + permission will be determined by the permission. A 4-digit octal + notation (e.g. 0022) is supported here. If no umask was specified, a + default umask - 0027 will be used. + :type posix_umask: str + :param source_lease_id: A lease ID for the source path. If specified, + the source path must have an active lease and the lease ID must match. + :type source_lease_id: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param directory_http_headers: Additional parameters for the operation + :type directory_http_headers: + ~azure.storage.blob.models.DirectoryHttpHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + cache_control = None + if directory_http_headers is not None: + cache_control = directory_http_headers.cache_control + content_type = None + if directory_http_headers is not None: + content_type = directory_http_headers.content_type + content_encoding = None + if directory_http_headers is not None: + content_encoding = directory_http_headers.content_encoding + content_language = None + if directory_http_headers is not None: + content_language = directory_http_headers.content_language + content_disposition = None + if directory_http_headers is not None: + content_disposition = directory_http_headers.content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + # Construct URL + url = self.rename.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if marker is not None: + query_parameters['continuation'] = self._serialize.query("marker", marker, 'str') + if path_rename_mode is not None: + query_parameters['mode'] = self._serialize.query("path_rename_mode", path_rename_mode, 'PathRenameMode') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-rename-source'] = self._serialize.header("rename_source", rename_source, 'str') + if directory_properties is not None: + header_parameters['x-ms-properties'] = self._serialize.header("directory_properties", directory_properties, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_umask is not None: + header_parameters['x-ms-umask'] = self._serialize.header("posix_umask", posix_umask, 'str') + if source_lease_id is not None: + header_parameters['x-ms-source-lease-id'] = self._serialize.header("source_lease_id", source_lease_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if cache_control is not None: + header_parameters['x-ms-cache-control'] = self._serialize.header("cache_control", cache_control, 'str') + if content_type is not None: + header_parameters['x-ms-content-type'] = self._serialize.header("content_type", content_type, 'str') + if content_encoding is not None: + header_parameters['x-ms-content-encoding'] = self._serialize.header("content_encoding", content_encoding, 'str') + if content_language is not None: + header_parameters['x-ms-content-language'] = self._serialize.header("content_language", content_language, 'str') + if content_disposition is not None: + header_parameters['x-ms-content-disposition'] = self._serialize.header("content_disposition", content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-continuation': self._deserialize('str', response.headers.get('x-ms-continuation')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Content-Length': self._deserialize('long', response.headers.get('Content-Length')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + rename.metadata = {'url': '/{filesystem}/{path}'} + + def delete(self, recursive_directory_delete, timeout=None, marker=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Deletes the directory. + + :param recursive_directory_delete: If "true", all paths beneath the + directory will be deleted. If "false" and the directory is non-empty, + an error occurs. + :type recursive_directory_delete: bool + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param marker: When renaming a directory, the number of paths that are + renamed with each invocation is limited. If the number of paths to be + renamed exceeds this limit, a continuation token is returned in this + response header. When a continuation token is returned in the + response, it must be specified in a subsequent invocation of the + rename operation to continue renaming the directory. + :type marker: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['recursive'] = self._serialize.query("recursive_directory_delete", recursive_directory_delete, 'bool') + if marker is not None: + query_parameters['continuation'] = self._serialize.query("marker", marker, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-continuation': self._deserialize('str', response.headers.get('x-ms-continuation')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + } + return cls(response, None, response_headers) + delete.metadata = {'url': '/{filesystem}/{path}'} + + def set_access_control(self, timeout=None, owner=None, group=None, posix_permissions=None, posix_acl=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Set the owner, group, permissions, or access control list for a + directory. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param owner: Optional. The owner of the blob or directory. + :type owner: str + :param group: Optional. The owning group of the blob or directory. + :type group: str + :param posix_permissions: Optional and only valid if Hierarchical + Namespace is enabled for the account. Sets POSIX access permissions + for the file owner, the file owning group, and others. Each class may + be granted read, write, or execute permission. The sticky bit is also + supported. Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. + 0766) are supported. + :type posix_permissions: str + :param posix_acl: Sets POSIX access control rights on files and + directories. The value is a comma-separated list of access control + entries. Each access control entry (ACE) consists of a scope, a type, + a user or group identifier, and permissions in the format + "[scope:][type]:[id]:[permissions]". + :type posix_acl: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "setAccessControl" + + # Construct URL + url = self.set_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if owner is not None: + header_parameters['x-ms-owner'] = self._serialize.header("owner", owner, 'str') + if group is not None: + header_parameters['x-ms-group'] = self._serialize.header("group", group, 'str') + if posix_permissions is not None: + header_parameters['x-ms-permissions'] = self._serialize.header("posix_permissions", posix_permissions, 'str') + if posix_acl is not None: + header_parameters['x-ms-acl'] = self._serialize.header("posix_acl", posix_acl, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + set_access_control.metadata = {'url': '/{filesystem}/{path}'} + + def get_access_control(self, timeout=None, upn=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Get the owner, group, permissions, or access control list for a + directory. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param upn: Optional. Valid only when Hierarchical Namespace is + enabled for the account. If "true", the identity values returned in + the x-ms-owner, x-ms-group, and x-ms-acl response headers will be + transformed from Azure Active Directory Object IDs to User Principal + Names. If "false", the values will be returned as Azure Active + Directory Object IDs. The default value is false. + :type upn: bool + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`DataLakeStorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + + action = "getAccessControl" + + # Construct URL + url = self.get_access_control.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if upn is not None: + query_parameters['upn'] = self._serialize.query("upn", upn, 'bool') + query_parameters['action'] = self._serialize.query("action", action, 'str') + + # Construct headers + header_parameters = {} + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + + # Construct and send request + request = self._client.head(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.DataLakeStorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-owner': self._deserialize('str', response.headers.get('x-ms-owner')), + 'x-ms-group': self._deserialize('str', response.headers.get('x-ms-group')), + 'x-ms-permissions': self._deserialize('str', response.headers.get('x-ms-permissions')), + 'x-ms-acl': self._deserialize('str', response.headers.get('x-ms-acl')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + } + return cls(response, None, response_headers) + get_access_control.metadata = {'url': '/{filesystem}/{path}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_page_blob_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_page_blob_operations.py new file mode 100644 index 00000000000..fedc96c2151 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_page_blob_operations.py @@ -0,0 +1,1399 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class PageBlobOperations(object): + """PageBlobOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar x_ms_blob_type: Specifies the type of blob to create: block blob, page blob, or append blob. Constant value: "PageBlob". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + self.x_ms_blob_type = "PageBlob" + + def create(self, content_length, blob_content_length, timeout=None, tier=None, metadata=None, blob_sequence_number=0, request_id=None, blob_tags_string=None, blob_http_headers=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Create operation creates a new page blob. + + :param content_length: The length of the request. + :type content_length: long + :param blob_content_length: This header specifies the maximum size for + the page blob, up to 1 TB. The page blob size must be aligned to a + 512-byte boundary. + :type blob_content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param tier: Optional. Indicates the tier to be set on the page blob. + Possible values include: 'P4', 'P6', 'P10', 'P15', 'P20', 'P30', + 'P40', 'P50', 'P60', 'P70', 'P80' + :type tier: str or + ~azure.storage.blob.models.PremiumPageBlobAccessTier + :param metadata: Optional. Specifies a user-defined name-value pair + associated with the blob. If no name-value pairs are specified, the + operation will copy the metadata from the source blob or file to the + destination blob. If one or more name-value pairs are specified, the + destination blob is created with the specified metadata, and metadata + is not copied from the source blob or file. Note that beginning with + version 2009-09-19, metadata names must adhere to the naming rules for + C# identifiers. See Naming and Referencing Containers, Blobs, and + Metadata for more information. + :type metadata: str + :param blob_sequence_number: Set for page blobs only. The sequence + number is a user-controlled value that you can use to track requests. + The value of the sequence number must be between 0 and 2^63 - 1. + :type blob_sequence_number: long + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param blob_tags_string: Optional. Used to set blob tags in various + blob operations. + :type blob_tags_string: str + :param blob_http_headers: Additional parameters for the operation + :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + blob_content_type = None + if blob_http_headers is not None: + blob_content_type = blob_http_headers.blob_content_type + blob_content_encoding = None + if blob_http_headers is not None: + blob_content_encoding = blob_http_headers.blob_content_encoding + blob_content_language = None + if blob_http_headers is not None: + blob_content_language = blob_http_headers.blob_content_language + blob_content_md5 = None + if blob_http_headers is not None: + blob_content_md5 = blob_http_headers.blob_content_md5 + blob_cache_control = None + if blob_http_headers is not None: + blob_cache_control = blob_http_headers.blob_cache_control + blob_content_disposition = None + if blob_http_headers is not None: + blob_content_disposition = blob_http_headers.blob_content_disposition + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + # Construct URL + url = self.create.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if tier is not None: + header_parameters['x-ms-access-tier'] = self._serialize.header("tier", tier, 'str') + if metadata is not None: + header_parameters['x-ms-meta'] = self._serialize.header("metadata", metadata, 'str') + header_parameters['x-ms-blob-content-length'] = self._serialize.header("blob_content_length", blob_content_length, 'long') + if blob_sequence_number is not None: + header_parameters['x-ms-blob-sequence-number'] = self._serialize.header("blob_sequence_number", blob_sequence_number, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if blob_tags_string is not None: + header_parameters['x-ms-tags'] = self._serialize.header("blob_tags_string", blob_tags_string, 'str') + header_parameters['x-ms-blob-type'] = self._serialize.header("self.x_ms_blob_type", self.x_ms_blob_type, 'str') + if blob_content_type is not None: + header_parameters['x-ms-blob-content-type'] = self._serialize.header("blob_content_type", blob_content_type, 'str') + if blob_content_encoding is not None: + header_parameters['x-ms-blob-content-encoding'] = self._serialize.header("blob_content_encoding", blob_content_encoding, 'str') + if blob_content_language is not None: + header_parameters['x-ms-blob-content-language'] = self._serialize.header("blob_content_language", blob_content_language, 'str') + if blob_content_md5 is not None: + header_parameters['x-ms-blob-content-md5'] = self._serialize.header("blob_content_md5", blob_content_md5, 'bytearray') + if blob_cache_control is not None: + header_parameters['x-ms-blob-cache-control'] = self._serialize.header("blob_cache_control", blob_cache_control, 'str') + if blob_content_disposition is not None: + header_parameters['x-ms-blob-content-disposition'] = self._serialize.header("blob_content_disposition", blob_content_disposition, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-version-id': self._deserialize('str', response.headers.get('x-ms-version-id')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + create.metadata = {'url': '/{containerName}/{blob}'} + + def upload_pages(self, body, content_length, transactional_content_md5=None, transactional_content_crc64=None, timeout=None, range=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, sequence_number_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Upload Pages operation writes a range of pages to a page blob. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param transactional_content_md5: Specify the transactional md5 for + the body, to be validated by the service. + :type transactional_content_md5: bytearray + :param transactional_content_crc64: Specify the transactional crc64 + for the body, to be validated by the service. + :type transactional_content_crc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "page" + page_write = "update" + + # Construct URL + url = self.upload_pages.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/octet-stream' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if transactional_content_md5 is not None: + header_parameters['Content-MD5'] = self._serialize.header("transactional_content_md5", transactional_content_md5, 'bytearray') + if transactional_content_crc64 is not None: + header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct body + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload_pages.metadata = {'url': '/{containerName}/{blob}'} + + def clear_pages(self, content_length, timeout=None, range=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, sequence_number_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Clear Pages operation clears a set of pages from a page blob. + + :param content_length: The length of the request. + :type content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "page" + page_write = "clear" + + # Construct URL + url = self.clear_pages.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + clear_pages.metadata = {'url': '/{containerName}/{blob}'} + + def upload_pages_from_url(self, source_url, source_range, content_length, range, source_content_md5=None, source_contentcrc64=None, timeout=None, request_id=None, cpk_info=None, cpk_scope_info=None, lease_access_conditions=None, sequence_number_access_conditions=None, modified_access_conditions=None, source_modified_access_conditions=None, cls=None, **kwargs): + """The Upload Pages operation writes a range of pages to a page blob where + the contents are read from a URL. + + :param source_url: Specify a URL to the copy source. + :type source_url: str + :param source_range: Bytes of source data in the specified range. The + length of this range should match the ContentLength header and + x-ms-range/Range destination range header. + :type source_range: str + :param content_length: The length of the request. + :type content_length: long + :param range: The range of bytes to which the source range would be + written. The range should be 512 aligned and range-end is required. + :type range: str + :param source_content_md5: Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :type source_content_md5: bytearray + :param source_contentcrc64: Specify the crc64 calculated for the range + of bytes that must be read from the copy source. + :type source_contentcrc64: bytearray + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param sequence_number_access_conditions: Additional parameters for + the operation + :type sequence_number_access_conditions: + ~azure.storage.blob.models.SequenceNumberAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param source_modified_access_conditions: Additional parameters for + the operation + :type source_modified_access_conditions: + ~azure.storage.blob.models.SourceModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_sequence_number_less_than_or_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than_or_equal_to = sequence_number_access_conditions.if_sequence_number_less_than_or_equal_to + if_sequence_number_less_than = None + if sequence_number_access_conditions is not None: + if_sequence_number_less_than = sequence_number_access_conditions.if_sequence_number_less_than + if_sequence_number_equal_to = None + if sequence_number_access_conditions is not None: + if_sequence_number_equal_to = sequence_number_access_conditions.if_sequence_number_equal_to + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + source_if_modified_since = None + if source_modified_access_conditions is not None: + source_if_modified_since = source_modified_access_conditions.source_if_modified_since + source_if_unmodified_since = None + if source_modified_access_conditions is not None: + source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since + source_if_match = None + if source_modified_access_conditions is not None: + source_if_match = source_modified_access_conditions.source_if_match + source_if_none_match = None + if source_modified_access_conditions is not None: + source_if_none_match = source_modified_access_conditions.source_if_none_match + + comp = "page" + page_write = "update" + + # Construct URL + url = self.upload_pages_from_url.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("source_url", source_url, 'str') + header_parameters['x-ms-source-range'] = self._serialize.header("source_range", source_range, 'str') + if source_content_md5 is not None: + header_parameters['x-ms-source-content-md5'] = self._serialize.header("source_content_md5", source_content_md5, 'bytearray') + if source_contentcrc64 is not None: + header_parameters['x-ms-source-content-crc64'] = self._serialize.header("source_contentcrc64", source_contentcrc64, 'bytearray') + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + header_parameters['x-ms-page-write'] = self._serialize.header("page_write", page_write, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_sequence_number_less_than_or_equal_to is not None: + header_parameters['x-ms-if-sequence-number-le'] = self._serialize.header("if_sequence_number_less_than_or_equal_to", if_sequence_number_less_than_or_equal_to, 'long') + if if_sequence_number_less_than is not None: + header_parameters['x-ms-if-sequence-number-lt'] = self._serialize.header("if_sequence_number_less_than", if_sequence_number_less_than, 'long') + if if_sequence_number_equal_to is not None: + header_parameters['x-ms-if-sequence-number-eq'] = self._serialize.header("if_sequence_number_equal_to", if_sequence_number_equal_to, 'long') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + if source_if_modified_since is not None: + header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') + if source_if_unmodified_since is not None: + header_parameters['x-ms-source-if-unmodified-since'] = self._serialize.header("source_if_unmodified_since", source_if_unmodified_since, 'rfc-1123') + if source_if_match is not None: + header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') + if source_if_none_match is not None: + header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'Content-MD5': self._deserialize('bytearray', response.headers.get('Content-MD5')), + 'x-ms-content-crc64': self._deserialize('bytearray', response.headers.get('x-ms-content-crc64')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-request-server-encrypted': self._deserialize('bool', response.headers.get('x-ms-request-server-encrypted')), + 'x-ms-encryption-key-sha256': self._deserialize('str', response.headers.get('x-ms-encryption-key-sha256')), + 'x-ms-encryption-scope': self._deserialize('str', response.headers.get('x-ms-encryption-scope')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + upload_pages_from_url.metadata = {'url': '/{containerName}/{blob}'} + + def get_page_ranges(self, snapshot=None, timeout=None, range=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Get Page Ranges operation returns the list of valid page ranges for + a page blob or snapshot of a page blob. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: PageList or the result of cls(response) + :rtype: ~azure.storage.blob.models.PageList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "pagelist" + + # Construct URL + url = self.get_page_ranges.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PageList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_page_ranges.metadata = {'url': '/{containerName}/{blob}'} + + def get_page_ranges_diff(self, snapshot=None, timeout=None, prevsnapshot=None, prev_snapshot_url=None, range=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """The Get Page Ranges Diff operation returns the list of valid page + ranges for a page blob that were changed between target blob and + previous snapshot. + + :param snapshot: The snapshot parameter is an opaque DateTime value + that, when present, specifies the blob snapshot to retrieve. For more + information on working with blob snapshots, see Creating + a Snapshot of a Blob. + :type snapshot: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param prevsnapshot: Optional in version 2015-07-08 and newer. The + prevsnapshot parameter is a DateTime value that specifies that the + response will contain only pages that were changed between target blob + and previous snapshot. Changed pages include both updated and cleared + pages. The target blob may be a snapshot, as long as the snapshot + specified by prevsnapshot is the older of the two. Note that + incremental snapshots are currently supported only for blobs created + on or after January 1, 2016. + :type prevsnapshot: str + :param prev_snapshot_url: Optional. This header is only supported in + service versions 2019-04-19 and after and specifies the URL of a + previous snapshot of the target blob. The response will only contain + pages that were changed between the target blob and its previous + snapshot. + :type prev_snapshot_url: str + :param range: Return only the bytes of the blob in the specified + range. + :type range: str + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: PageList or the result of cls(response) + :rtype: ~azure.storage.blob.models.PageList + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "pagelist" + + # Construct URL + url = self.get_page_ranges_diff.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if snapshot is not None: + query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if prevsnapshot is not None: + query_parameters['prevsnapshot'] = self._serialize.query("prevsnapshot", prevsnapshot, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + if prev_snapshot_url is not None: + header_parameters['x-ms-previous-snapshot-url'] = self._serialize.header("prev_snapshot_url", prev_snapshot_url, 'str') + if range is not None: + header_parameters['x-ms-range'] = self._serialize.header("range", range, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('PageList', response) + header_dict = { + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'x-ms-blob-content-length': self._deserialize('long', response.headers.get('x-ms-blob-content-length')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_page_ranges_diff.metadata = {'url': '/{containerName}/{blob}'} + + def resize(self, blob_content_length, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, cpk_scope_info=None, modified_access_conditions=None, cls=None, **kwargs): + """Resize the Blob. + + :param blob_content_length: This header specifies the maximum size for + the page blob, up to 1 TB. The page blob size must be aligned to a + 512-byte boundary. + :type blob_content_length: long + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param cpk_info: Additional parameters for the operation + :type cpk_info: ~azure.storage.blob.models.CpkInfo + :param cpk_scope_info: Additional parameters for the operation + :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + encryption_key = None + if cpk_info is not None: + encryption_key = cpk_info.encryption_key + encryption_key_sha256 = None + if cpk_info is not None: + encryption_key_sha256 = cpk_info.encryption_key_sha256 + encryption_algorithm = None + if cpk_info is not None: + encryption_algorithm = cpk_info.encryption_algorithm + encryption_scope = None + if cpk_scope_info is not None: + encryption_scope = cpk_scope_info.encryption_scope + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.resize.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-blob-content-length'] = self._serialize.header("blob_content_length", blob_content_length, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if encryption_key is not None: + header_parameters['x-ms-encryption-key'] = self._serialize.header("encryption_key", encryption_key, 'str') + if encryption_key_sha256 is not None: + header_parameters['x-ms-encryption-key-sha256'] = self._serialize.header("encryption_key_sha256", encryption_key_sha256, 'str') + if encryption_algorithm is not None: + header_parameters['x-ms-encryption-algorithm'] = self._serialize.header("encryption_algorithm", encryption_algorithm, 'EncryptionAlgorithmType') + if encryption_scope is not None: + header_parameters['x-ms-encryption-scope'] = self._serialize.header("encryption_scope", encryption_scope, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + resize.metadata = {'url': '/{containerName}/{blob}'} + + def update_sequence_number(self, sequence_number_action, timeout=None, blob_sequence_number=0, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): + """Update the sequence number of the blob. + + :param sequence_number_action: Required if the + x-ms-blob-sequence-number header is set for the request. This property + applies to page blobs only. This property indicates how the service + should modify the blob's sequence number. Possible values include: + 'max', 'update', 'increment' + :type sequence_number_action: str or + ~azure.storage.blob.models.SequenceNumberActionType + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param blob_sequence_number: Set for page blobs only. The sequence + number is a user-controlled value that you can use to track requests. + The value of the sequence number must be between 0 and 2^63 - 1. + :type blob_sequence_number: long + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param lease_access_conditions: Additional parameters for the + operation + :type lease_access_conditions: + ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + lease_id = None + if lease_access_conditions is not None: + lease_id = lease_access_conditions.lease_id + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "properties" + + # Construct URL + url = self.update_sequence_number.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-sequence-number-action'] = self._serialize.header("sequence_number_action", sequence_number_action, 'SequenceNumberActionType') + if blob_sequence_number is not None: + header_parameters['x-ms-blob-sequence-number'] = self._serialize.header("blob_sequence_number", blob_sequence_number, 'long') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if lease_id is not None: + header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-blob-sequence-number': self._deserialize('long', response.headers.get('x-ms-blob-sequence-number')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + update_sequence_number.metadata = {'url': '/{containerName}/{blob}'} + + def copy_incremental(self, copy_source, timeout=None, request_id=None, modified_access_conditions=None, cls=None, **kwargs): + """The Copy Incremental operation copies a snapshot of the source page + blob to a destination page blob. The snapshot is copied such that only + the differential changes between the previously copied snapshot are + transferred to the destination. The copied snapshots are complete + copies of the original snapshot and can be read or copied from as + usual. This API is supported since REST version 2016-05-31. + + :param copy_source: Specifies the name of the source page blob + snapshot. This value is a URL of up to 2 KB in length that specifies a + page blob snapshot. The value should be URL-encoded as it would appear + in a request URI. The source blob must either be public or must be + authenticated via a shared access signature. + :type copy_source: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + if_modified_since = None + if modified_access_conditions is not None: + if_modified_since = modified_access_conditions.if_modified_since + if_unmodified_since = None + if modified_access_conditions is not None: + if_unmodified_since = modified_access_conditions.if_unmodified_since + if_match = None + if modified_access_conditions is not None: + if_match = modified_access_conditions.if_match + if_none_match = None + if modified_access_conditions is not None: + if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + + comp = "incrementalcopy" + + # Construct URL + url = self.copy_incremental.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-copy-source'] = self._serialize.header("copy_source", copy_source, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_modified_since is not None: + header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') + if if_unmodified_since is not None: + header_parameters['If-Unmodified-Since'] = self._serialize.header("if_unmodified_since", if_unmodified_since, 'rfc-1123') + if if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + if if_none_match is not None: + header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'ETag': self._deserialize('str', response.headers.get('ETag')), + 'Last-Modified': self._deserialize('rfc-1123', response.headers.get('Last-Modified')), + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-copy-id': self._deserialize('str', response.headers.get('x-ms-copy-id')), + 'x-ms-copy-status': self._deserialize(models.CopyStatusType, response.headers.get('x-ms-copy-status')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + copy_incremental.metadata = {'url': '/{containerName}/{blob}'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_service_operations.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_service_operations.py new file mode 100644 index 00000000000..0a49915e1dd --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/operations/_service_operations.py @@ -0,0 +1,663 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from azure.core.exceptions import map_error + +from .. import models + + +class ServiceOperations(object): + """ServiceOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + + self._config = config + + def set_properties(self, storage_service_properties, timeout=None, request_id=None, cls=None, **kwargs): + """Sets properties for a storage account's Blob service endpoint, + including properties for Storage Analytics and CORS (Cross-Origin + Resource Sharing) rules. + + :param storage_service_properties: The StorageService properties. + :type storage_service_properties: + ~azure.storage.blob.models.StorageServiceProperties + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "properties" + + # Construct URL + url = self.set_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + body_content = self._serialize.body(storage_service_properties, 'StorageServiceProperties') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [202]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + set_properties.metadata = {'url': '/'} + + def get_properties(self, timeout=None, request_id=None, cls=None, **kwargs): + """gets the properties of a storage account's Blob service, including + properties for Storage Analytics and CORS (Cross-Origin Resource + Sharing) rules. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: StorageServiceProperties or the result of cls(response) + :rtype: ~azure.storage.blob.models.StorageServiceProperties + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "properties" + + # Construct URL + url = self.get_properties.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageServiceProperties', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_properties.metadata = {'url': '/'} + + def get_statistics(self, timeout=None, request_id=None, cls=None, **kwargs): + """Retrieves statistics related to replication for the Blob service. It is + only available on the secondary location endpoint when read-access + geo-redundant replication is enabled for the storage account. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: StorageServiceStats or the result of cls(response) + :rtype: ~azure.storage.blob.models.StorageServiceStats + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "stats" + + # Construct URL + url = self.get_statistics.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('StorageServiceStats', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_statistics.metadata = {'url': '/'} + + def list_containers_segment(self, prefix=None, marker=None, maxresults=None, include=None, timeout=None, request_id=None, cls=None, **kwargs): + """The List Containers Segment operation returns a list of the containers + under the specified account. + + :param prefix: Filters the results to return only containers whose + name begins with the specified prefix. + :type prefix: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param include: Include this parameter to specify that the container's + metadata be returned as part of the response body. + :type include: list[str or + ~azure.storage.blob.models.ListContainersIncludeType] + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: ListContainersSegmentResponse or the result of cls(response) + :rtype: ~azure.storage.blob.models.ListContainersSegmentResponse + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "list" + + # Construct URL + url = self.list_containers_segment.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if prefix is not None: + query_parameters['prefix'] = self._serialize.query("prefix", prefix, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + if include is not None: + query_parameters['include'] = self._serialize.query("include", include, '[ListContainersIncludeType]', div=',') + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ListContainersSegmentResponse', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + list_containers_segment.metadata = {'url': '/'} + + def get_user_delegation_key(self, key_info, timeout=None, request_id=None, cls=None, **kwargs): + """Retrieves a user delegation key for the Blob service. This is only a + valid operation when using bearer token authentication. + + :param key_info: + :type key_info: ~azure.storage.blob.models.KeyInfo + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: UserDelegationKey or the result of cls(response) + :rtype: ~azure.storage.blob.models.UserDelegationKey + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "service" + comp = "userdelegationkey" + + # Construct URL + url = self.get_user_delegation_key.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + body_content = self._serialize.body(key_info, 'KeyInfo') + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('UserDelegationKey', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + get_user_delegation_key.metadata = {'url': '/'} + + def get_account_info(self, cls=None, **kwargs): + """Returns the sku name and account kind . + + :param callable cls: A custom type or function that will be passed the + direct response + :return: None or the result of cls(response) + :rtype: None + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + restype = "account" + comp = "properties" + + # Construct URL + url = self.get_account_info.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['restype'] = self._serialize.query("restype", restype, 'str') + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + if cls: + response_headers = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-sku-name': self._deserialize(models.SkuName, response.headers.get('x-ms-sku-name')), + 'x-ms-account-kind': self._deserialize(models.AccountKind, response.headers.get('x-ms-account-kind')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + return cls(response, None, response_headers) + get_account_info.metadata = {'url': '/'} + + def submit_batch(self, body, content_length, multipart_content_type, timeout=None, request_id=None, cls=None, **kwargs): + """The Batch operation allows multiple API calls to be embedded into a + single HTTP request. + + :param body: Initial data + :type body: Generator + :param content_length: The length of the request. + :type content_length: long + :param multipart_content_type: Required. The value of this header must + be multipart/mixed with a batch boundary. Example header value: + multipart/mixed; boundary=batch_ + :type multipart_content_type: str + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param callable cls: A custom type or function that will be passed the + direct response + :return: object or the result of cls(response) + :rtype: Generator + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "batch" + + # Construct URL + url = self.submit_batch.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['Content-Type'] = 'application/xml; charset=utf-8' + header_parameters['Content-Length'] = self._serialize.header("content_length", content_length, 'long') + header_parameters['Content-Type'] = self._serialize.header("multipart_content_type", multipart_content_type, 'str') + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct body + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, stream_content=body) + pipeline_response = self._client._pipeline.run(request, stream=True, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = response.stream_download(self._client._pipeline) + header_dict = { + 'Content-Type': self._deserialize('str', response.headers.get('Content-Type')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + submit_batch.metadata = {'url': '/'} + + def filter_blobs(self, timeout=None, request_id=None, where=None, marker=None, maxresults=None, cls=None, **kwargs): + """The Filter Blobs operation enables callers to list blobs across all + containers whose tags match a given search expression. Filter blobs + searches across all containers within a storage account but can be + scoped within the expression to a single container. + + :param timeout: The timeout parameter is expressed in seconds. For + more information, see Setting + Timeouts for Blob Service Operations. + :type timeout: int + :param request_id: Provides a client-generated, opaque value with a 1 + KB character limit that is recorded in the analytics logs when storage + analytics logging is enabled. + :type request_id: str + :param where: Filters the results to return only to return only blobs + whose tags match the specified expression. + :type where: str + :param marker: A string value that identifies the portion of the list + of containers to be returned with the next listing operation. The + operation returns the NextMarker value within the response body if the + listing operation did not return all containers remaining to be listed + with the current page. The NextMarker value can be used as the value + for the marker parameter in a subsequent call to request the next page + of list items. The marker value is opaque to the client. + :type marker: str + :param maxresults: Specifies the maximum number of containers to + return. If the request does not specify maxresults, or specifies a + value greater than 5000, the server will return up to 5000 items. Note + that if the listing operation crosses a partition boundary, then the + service will return a continuation token for retrieving the remainder + of the results. For this reason, it is possible that the service will + return fewer results than specified by maxresults, or than the default + of 5000. + :type maxresults: int + :param callable cls: A custom type or function that will be passed the + direct response + :return: FilterBlobSegment or the result of cls(response) + :rtype: ~azure.storage.blob.models.FilterBlobSegment + :raises: + :class:`StorageErrorException` + """ + error_map = kwargs.pop('error_map', None) + comp = "blobs" + + # Construct URL + url = self.filter_blobs.metadata['url'] + path_format_arguments = { + 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + if timeout is not None: + query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) + if where is not None: + query_parameters['where'] = self._serialize.query("where", where, 'str') + if marker is not None: + query_parameters['marker'] = self._serialize.query("marker", marker, 'str') + if maxresults is not None: + query_parameters['maxresults'] = self._serialize.query("maxresults", maxresults, 'int', minimum=1) + query_parameters['comp'] = self._serialize.query("comp", comp, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/xml' + header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') + if request_id is not None: + header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise models.StorageErrorException(response, self._deserialize) + + header_dict = {} + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('FilterBlobSegment', response) + header_dict = { + 'x-ms-client-request-id': self._deserialize('str', response.headers.get('x-ms-client-request-id')), + 'x-ms-request-id': self._deserialize('str', response.headers.get('x-ms-request-id')), + 'x-ms-version': self._deserialize('str', response.headers.get('x-ms-version')), + 'Date': self._deserialize('rfc-1123', response.headers.get('Date')), + 'x-ms-error-code': self._deserialize('str', response.headers.get('x-ms-error-code')), + } + + if cls: + return cls(response, deserialized, header_dict) + + return deserialized + filter_blobs.metadata = {'url': '/'} diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/version.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/version.py new file mode 100644 index 00000000000..6ef707dd11c --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_generated/version.py @@ -0,0 +1,13 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# 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 Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +VERSION = "2020-02-10" + diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_lease.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_lease.py new file mode 100644 index 00000000000..6180d7851aa --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_lease.py @@ -0,0 +1,331 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import uuid + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, TypeVar, TYPE_CHECKING +) + +from azure.core.tracing.decorator import distributed_trace + +from ._shared.response_handlers import return_response_headers, process_storage_error +from ._generated.models import StorageErrorException +from ._serialize import get_modify_conditions + +if TYPE_CHECKING: + from datetime import datetime + + BlobClient = TypeVar("BlobClient") + ContainerClient = TypeVar("ContainerClient") + + +class BlobLeaseClient(object): + """Creates a new BlobLeaseClient. + + This client provides lease operations on a BlobClient or ContainerClient. + + :ivar str id: + The ID of the lease currently being maintained. This will be `None` if no + lease has yet been acquired. + :ivar str etag: + The ETag of the lease currently being maintained. This will be `None` if no + lease has yet been acquired or modified. + :ivar ~datetime.datetime last_modified: + The last modified timestamp of the lease currently being maintained. + This will be `None` if no lease has yet been acquired or modified. + + :param client: + The client of the blob or container to lease. + :type client: ~azure.storage.blob.BlobClient or + ~azure.storage.blob.ContainerClient + :param str lease_id: + A string representing the lease ID of an existing lease. This value does not + need to be specified in order to acquire a new lease, or break one. + """ + def __init__( + self, client, lease_id=None + ): # pylint: disable=missing-client-constructor-parameter-credential,missing-client-constructor-parameter-kwargs + # type: (Union[BlobClient, ContainerClient], Optional[str]) -> None + self.id = lease_id or str(uuid.uuid4()) + self.last_modified = None + self.etag = None + if hasattr(client, 'blob_name'): + self._client = client._client.blob # type: ignore # pylint: disable=protected-access + elif hasattr(client, 'container_name'): + self._client = client._client.container # type: ignore # pylint: disable=protected-access + else: + raise TypeError("Lease must use either BlobClient or ContainerClient.") + + def __enter__(self): + return self + + def __exit__(self, *args): + self.release() + + @distributed_trace + def acquire(self, lease_duration=-1, **kwargs): + # type: (int, **Any) -> None + """Requests a new lease. + + If the container does not have an active lease, the Blob service creates a + lease on the container and returns a new lease ID. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = self._client.acquire_lease( + timeout=kwargs.pop('timeout', None), + duration=lease_duration, + proposed_lease_id=self.id, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + self.etag = response.get('etag') # type: str + + @distributed_trace + def renew(self, **kwargs): + # type: (Any) -> None + """Renews the lease. + + The lease can be renewed if the lease ID specified in the + lease client matches that associated with the container or blob. Note that + the lease may be renewed even if it has expired as long as the container + or blob has not been leased again since the expiration of that lease. When you + renew a lease, the lease duration clock resets. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = self._client.renew_lease( + lease_id=self.id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace + def release(self, **kwargs): + # type: (Any) -> None + """Release the lease. + + The lease may be released if the client lease id specified matches + that associated with the container or blob. Releasing the lease allows another client + to immediately acquire the lease for the container or blob as soon as the release is complete. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = self._client.release_lease( + lease_id=self.id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace + def change(self, proposed_lease_id, **kwargs): + # type: (str, Any) -> None + """Change the lease ID of an active lease. + + :param str proposed_lease_id: + Proposed lease ID, in a GUID string format. The Blob service returns 400 + (Invalid request) if the proposed lease ID is not in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = self._client.change_lease( + lease_id=self.id, + proposed_lease_id=proposed_lease_id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace + def break_lease(self, lease_break_period=None, **kwargs): + # type: (Optional[int], Any) -> int + """Break the lease, if the container or blob has an active lease. + + Once a lease is broken, it cannot be renewed. Any authorized request can break the lease; + the request is not required to specify a matching lease ID. When a lease + is broken, the lease break period is allowed to elapse, during which time + no lease operation except break and release can be performed on the container or blob. + When a lease is successfully broken, the response indicates the interval + in seconds until a new lease can be acquired. + + :param int lease_break_period: + This is the proposed duration of seconds that the lease + should continue before it is broken, between 0 and 60 seconds. This + break period is only used if it is shorter than the time remaining + on the lease. If longer, the time remaining on the lease is used. + A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break + period. If this header does not appear with a break + operation, a fixed-duration lease breaks after the remaining lease + period elapses, and an infinite lease breaks immediately. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: Approximate time remaining in the lease period, in seconds. + :rtype: int + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = self._client.break_lease( + timeout=kwargs.pop('timeout', None), + break_period=lease_break_period, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return response.get('lease_time') # type: ignore diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_list_blobs_helper.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_list_blobs_helper.py new file mode 100644 index 00000000000..f1dd70f992c --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_list_blobs_helper.py @@ -0,0 +1,166 @@ +# pylint: disable=too-many-lines +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from azure.core.paging import PageIterator, ItemPaged +from ._deserialize import get_blob_properties_from_generated_code +from ._generated.models import StorageErrorException, BlobItemInternal, BlobPrefix as GenBlobPrefix +from ._models import BlobProperties +from ._shared.models import DictMixin +from ._shared.response_handlers import return_context_and_deserialized, process_storage_error + + +class BlobPropertiesPaged(PageIterator): + """An Iterable of Blob properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str continuation_token: The continuation token to retrieve the next page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.BlobProperties) + :ivar str container: The container that the blobs are listed from. + :ivar str delimiter: A delimiting character used for hierarchy listing. + + :param callable command: Function to retrieve the next page of items. + :param str container: The name of the container. + :param str prefix: Filters the results to return only blobs whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str continuation_token: An opaque continuation token. + :param str delimiter: + Used to capture blobs whose names begin with the same substring up to + the appearance of the delimiter character. The delimiter may be a single + character or a string. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__( + self, command, + container=None, + prefix=None, + results_per_page=None, + continuation_token=None, + delimiter=None, + location_mode=None): + super(BlobPropertiesPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.prefix = prefix + self.marker = None + self.results_per_page = results_per_page + self.container = container + self.delimiter = delimiter + self.current_page = None + self.location_mode = location_mode + + def _get_next_cb(self, continuation_token): + try: + return self._command( + prefix=self.prefix, + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.prefix = self._response.prefix + self.marker = self._response.marker + self.results_per_page = self._response.max_results + self.container = self._response.container_name + self.current_page = [self._build_item(item) for item in self._response.segment.blob_items] + + return self._response.next_marker or None, self.current_page + + def _build_item(self, item): + if isinstance(item, BlobProperties): + return item + if isinstance(item, BlobItemInternal): + blob = get_blob_properties_from_generated_code(item) # pylint: disable=protected-access + blob.container = self.container + return blob + return item + + +class BlobPrefixPaged(BlobPropertiesPaged): + def __init__(self, *args, **kwargs): + super(BlobPrefixPaged, self).__init__(*args, **kwargs) + self.name = self.prefix + + def _extract_data_cb(self, get_next_return): + continuation_token, _ = super(BlobPrefixPaged, self)._extract_data_cb(get_next_return) + self.current_page = self._response.segment.blob_prefixes + self._response.segment.blob_items + self.current_page = [self._build_item(item) for item in self.current_page] + self.delimiter = self._response.delimiter + + return continuation_token, self.current_page + + def _build_item(self, item): + item = super(BlobPrefixPaged, self)._build_item(item) + if isinstance(item, GenBlobPrefix): + return BlobPrefix( + self._command, + container=self.container, + prefix=item.name, + results_per_page=self.results_per_page, + location_mode=self.location_mode) + return item + + +class BlobPrefix(ItemPaged, DictMixin): + """An Iterable of Blob properties. + + Returned from walk_blobs when a delimiter is used. + Can be thought of as a virtual blob directory. + + :ivar str name: The prefix, or "directory name" of the blob. + :ivar str service_endpoint: The service URL. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str next_marker: The continuation token to retrieve the next page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.BlobProperties) + :ivar str container: The container that the blobs are listed from. + :ivar str delimiter: A delimiting character used for hierarchy listing. + + :param callable command: Function to retrieve the next page of items. + :param str prefix: Filters the results to return only blobs whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str marker: An opaque continuation token. + :param str delimiter: + Used to capture blobs whose names begin with the same substring up to + the appearance of the delimiter character. The delimiter may be a single + character or a string. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__(self, *args, **kwargs): + super(BlobPrefix, self).__init__(*args, page_iterator_class=BlobPrefixPaged, **kwargs) + self.name = kwargs.get('prefix') + self.prefix = kwargs.get('prefix') + self.results_per_page = kwargs.get('results_per_page') + self.container = kwargs.get('container') + self.delimiter = kwargs.get('delimiter') + self.location_mode = kwargs.get('location_mode') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_models.py new file mode 100644 index 00000000000..d0d2f70a1e4 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_models.py @@ -0,0 +1,1144 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-few-public-methods, too-many-instance-attributes +# pylint: disable=super-init-not-called, too-many-lines + +from enum import Enum + +from azure.core.paging import PageIterator +from ._generated.models import FilterBlobItem + +from ._shared import decode_base64_to_text +from ._shared.response_handlers import return_context_and_deserialized, process_storage_error +from ._shared.models import DictMixin, get_enum_value +from ._generated.models import Logging as GeneratedLogging +from ._generated.models import Metrics as GeneratedMetrics +from ._generated.models import RetentionPolicy as GeneratedRetentionPolicy +from ._generated.models import StaticWebsite as GeneratedStaticWebsite +from ._generated.models import CorsRule as GeneratedCorsRule +from ._generated.models import AccessPolicy as GenAccessPolicy +from ._generated.models import StorageErrorException + + +class BlobType(str, Enum): + + BlockBlob = "BlockBlob" + PageBlob = "PageBlob" + AppendBlob = "AppendBlob" + + +class BlockState(str, Enum): + """Block blob block types.""" + + Committed = 'Committed' #: Committed blocks. + Latest = 'Latest' #: Latest blocks. + Uncommitted = 'Uncommitted' #: Uncommitted blocks. + + +class StandardBlobTier(str, Enum): + """ + Specifies the blob tier to set the blob to. This is only applicable for + block blobs on standard storage accounts. + """ + + Archive = 'Archive' #: Archive + Cool = 'Cool' #: Cool + Hot = 'Hot' #: Hot + + +class PremiumPageBlobTier(str, Enum): + """ + Specifies the page blob tier to set the blob to. This is only applicable to page + blobs on premium storage accounts. Please take a look at: + https://docs.microsoft.com/en-us/azure/storage/storage-premium-storage#scalability-and-performance-targets + for detailed information on the corresponding IOPS and throughput per PageBlobTier. + """ + + P4 = 'P4' #: P4 Tier + P6 = 'P6' #: P6 Tier + P10 = 'P10' #: P10 Tier + P20 = 'P20' #: P20 Tier + P30 = 'P30' #: P30 Tier + P40 = 'P40' #: P40 Tier + P50 = 'P50' #: P50 Tier + P60 = 'P60' #: P60 Tier + + +class SequenceNumberAction(str, Enum): + """Sequence number actions.""" + + Increment = 'increment' + """ + Increments the value of the sequence number by 1. If specifying this option, + do not include the x-ms-blob-sequence-number header. + """ + + Max = 'max' + """ + Sets the sequence number to be the higher of the value included with the + request and the value currently stored for the blob. + """ + + Update = 'update' + """Sets the sequence number to the value included with the request.""" + + +class PublicAccess(str, Enum): + """ + Specifies whether data in the container may be accessed publicly and the level of access. + """ + + OFF = 'off' + """ + Specifies that there is no public read access for both the container and blobs within the container. + Clients cannot enumerate the containers within the storage account as well as the blobs within the container. + """ + + Blob = 'blob' + """ + Specifies public read access for blobs. Blob data within this container can be read + via anonymous request, but container data is not available. Clients cannot enumerate + blobs within the container via anonymous request. + """ + + Container = 'container' + """ + Specifies full public read access for container and blob data. Clients can enumerate + blobs within the container via anonymous request, but cannot enumerate containers + within the storage account. + """ + + +class BlobAnalyticsLogging(GeneratedLogging): + """Azure Analytics Logging settings. + + :keyword str version: + The version of Storage Analytics to configure. The default value is 1.0. + :keyword bool delete: + Indicates whether all delete requests should be logged. The default value is `False`. + :keyword bool read: + Indicates whether all read requests should be logged. The default value is `False`. + :keyword bool write: + Indicates whether all write requests should be logged. The default value is `False`. + :keyword ~azure.storage.blob.RetentionPolicy retention_policy: + Determines how long the associated data should persist. If not specified the retention + policy will be disabled by default. + """ + + def __init__(self, **kwargs): + self.version = kwargs.get('version', u'1.0') + self.delete = kwargs.get('delete', False) + self.read = kwargs.get('read', False) + self.write = kwargs.get('write', False) + self.retention_policy = kwargs.get('retention_policy') or RetentionPolicy() + + @classmethod + def _from_generated(cls, generated): + if not generated: + return cls() + return cls( + version=generated.version, + delete=generated.delete, + read=generated.read, + write=generated.write, + retention_policy=RetentionPolicy._from_generated(generated.retention_policy) # pylint: disable=protected-access + ) + + +class Metrics(GeneratedMetrics): + """A summary of request statistics grouped by API in hour or minute aggregates + for blobs. + + :keyword str version: + The version of Storage Analytics to configure. The default value is 1.0. + :keyword bool enabled: + Indicates whether metrics are enabled for the Blob service. + The default value is `False`. + :keyword bool include_apis: + Indicates whether metrics should generate summary statistics for called API operations. + :keyword ~azure.storage.blob.RetentionPolicy retention_policy: + Determines how long the associated data should persist. If not specified the retention + policy will be disabled by default. + """ + + def __init__(self, **kwargs): + self.version = kwargs.get('version', u'1.0') + self.enabled = kwargs.get('enabled', False) + self.include_apis = kwargs.get('include_apis') + self.retention_policy = kwargs.get('retention_policy') or RetentionPolicy() + + @classmethod + def _from_generated(cls, generated): + if not generated: + return cls() + return cls( + version=generated.version, + enabled=generated.enabled, + include_apis=generated.include_apis, + retention_policy=RetentionPolicy._from_generated(generated.retention_policy) # pylint: disable=protected-access + ) + + +class RetentionPolicy(GeneratedRetentionPolicy): + """The retention policy which determines how long the associated data should + persist. + + :param bool enabled: + Indicates whether a retention policy is enabled for the storage service. + The default value is False. + :param int days: + Indicates the number of days that metrics or logging or + soft-deleted data should be retained. All data older than this value will + be deleted. If enabled=True, the number of days must be specified. + """ + + def __init__(self, enabled=False, days=None): + self.enabled = enabled + self.days = days + if self.enabled and (self.days is None): + raise ValueError("If policy is enabled, 'days' must be specified.") + + @classmethod + def _from_generated(cls, generated): + if not generated: + return cls() + return cls( + enabled=generated.enabled, + days=generated.days, + ) + + +class StaticWebsite(GeneratedStaticWebsite): + """The properties that enable an account to host a static website. + + :keyword bool enabled: + Indicates whether this account is hosting a static website. + The default value is `False`. + :keyword str index_document: + The default name of the index page under each directory. + :keyword str error_document404_path: + The absolute path of the custom 404 page. + :keyword str default_index_document_path: + Absolute path of the default index page. + """ + + def __init__(self, **kwargs): + self.enabled = kwargs.get('enabled', False) + if self.enabled: + self.index_document = kwargs.get('index_document') + self.error_document404_path = kwargs.get('error_document404_path') + self.default_index_document_path = kwargs.get('default_index_document_path') + else: + self.index_document = None + self.error_document404_path = None + self.default_index_document_path = None + + @classmethod + def _from_generated(cls, generated): + if not generated: + return cls() + return cls( + enabled=generated.enabled, + index_document=generated.index_document, + error_document404_path=generated.error_document404_path, + default_index_document_path=generated.default_index_document_path + ) + + +class CorsRule(GeneratedCorsRule): + """CORS is an HTTP feature that enables a web application running under one + domain to access resources in another domain. Web browsers implement a + security restriction known as same-origin policy that prevents a web page + from calling APIs in a different domain; CORS provides a secure way to + allow one domain (the origin domain) to call APIs in another domain. + + :param list(str) allowed_origins: + A list of origin domains that will be allowed via CORS, or "*" to allow + all domains. The list of must contain at least one entry. Limited to 64 + origin domains. Each allowed origin can have up to 256 characters. + :param list(str) allowed_methods: + A list of HTTP methods that are allowed to be executed by the origin. + The list of must contain at least one entry. For Azure Storage, + permitted methods are DELETE, GET, HEAD, MERGE, POST, OPTIONS or PUT. + :keyword list(str) allowed_headers: + Defaults to an empty list. A list of headers allowed to be part of + the cross-origin request. Limited to 64 defined headers and 2 prefixed + headers. Each header can be up to 256 characters. + :keyword list(str) exposed_headers: + Defaults to an empty list. A list of response headers to expose to CORS + clients. Limited to 64 defined headers and two prefixed headers. Each + header can be up to 256 characters. + :keyword int max_age_in_seconds: + The number of seconds that the client/browser should cache a + preflight response. + """ + + def __init__(self, allowed_origins, allowed_methods, **kwargs): + self.allowed_origins = ','.join(allowed_origins) + self.allowed_methods = ','.join(allowed_methods) + self.allowed_headers = ','.join(kwargs.get('allowed_headers', [])) + self.exposed_headers = ','.join(kwargs.get('exposed_headers', [])) + self.max_age_in_seconds = kwargs.get('max_age_in_seconds', 0) + + @classmethod + def _from_generated(cls, generated): + return cls( + [generated.allowed_origins], + [generated.allowed_methods], + allowed_headers=[generated.allowed_headers], + exposed_headers=[generated.exposed_headers], + max_age_in_seconds=generated.max_age_in_seconds, + ) + + +class ContainerProperties(DictMixin): + """Blob container's properties class. + + Returned ``ContainerProperties`` instances expose these values through a + dictionary interface, for example: ``container_props["last_modified"]``. + Additionally, the container name is available as ``container_props["name"]``. + + :ivar ~datetime.datetime last_modified: + A datetime object representing the last time the container was modified. + :ivar str etag: + The ETag contains a value that you can use to perform operations + conditionally. + :ivar ~azure.storage.blob.LeaseProperties lease: + Stores all the lease information for the container. + :ivar str public_access: Specifies whether data in the container may be accessed + publicly and the level of access. + :ivar bool has_immutability_policy: + Represents whether the container has an immutability policy. + :ivar bool has_legal_hold: + Represents whether the container has a legal hold. + :ivar dict metadata: A dict with name-value pairs to associate with the + container as metadata. + :ivar ~azure.storage.blob.ContainerEncryptionScope encryption_scope: + The default encryption scope configuration for the container. + """ + + def __init__(self, **kwargs): + self.name = None + self.last_modified = kwargs.get('Last-Modified') + self.etag = kwargs.get('ETag') + self.lease = LeaseProperties(**kwargs) + self.public_access = kwargs.get('x-ms-blob-public-access') + self.has_immutability_policy = kwargs.get('x-ms-has-immutability-policy') + self.deleted = None + self.version = None + self.has_legal_hold = kwargs.get('x-ms-has-legal-hold') + self.metadata = kwargs.get('metadata') + self.encryption_scope = None + default_encryption_scope = kwargs.get('x-ms-default-encryption-scope') + if default_encryption_scope: + self.encryption_scope = ContainerEncryptionScope( + default_encryption_scope=default_encryption_scope, + prevent_encryption_scope_override=kwargs.get('x-ms-deny-encryption-scope-override', False) + ) + + @classmethod + def _from_generated(cls, generated): + props = cls() + props.name = generated.name + props.last_modified = generated.properties.last_modified + props.etag = generated.properties.etag + props.lease = LeaseProperties._from_generated(generated) # pylint: disable=protected-access + props.public_access = generated.properties.public_access + props.has_immutability_policy = generated.properties.has_immutability_policy + props.deleted = generated.deleted + props.version = generated.version + props.has_legal_hold = generated.properties.has_legal_hold + props.metadata = generated.metadata + props.encryption_scope = ContainerEncryptionScope._from_generated(generated) #pylint: disable=protected-access + return props + + +class ContainerPropertiesPaged(PageIterator): + """An Iterable of Container properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A container name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str continuation_token: The continuation token to retrieve the next page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.ContainerProperties) + + :param callable command: Function to retrieve the next page of items. + :param str prefix: Filters the results to return only containers whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of container names to retrieve per + call. + :param str continuation_token: An opaque continuation token. + """ + def __init__(self, command, prefix=None, results_per_page=None, continuation_token=None): + super(ContainerPropertiesPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.prefix = prefix + self.marker = None + self.results_per_page = results_per_page + self.location_mode = None + self.current_page = [] + + def _get_next_cb(self, continuation_token): + try: + return self._command( + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.prefix = self._response.prefix + self.marker = self._response.marker + self.results_per_page = self._response.max_results + self.current_page = [self._build_item(item) for item in self._response.container_items] + + return self._response.next_marker or None, self.current_page + + @staticmethod + def _build_item(item): + return ContainerProperties._from_generated(item) # pylint: disable=protected-access + + +class BlobProperties(DictMixin): + """ + Blob Properties. + + :ivar str name: + The name of the blob. + :ivar str container: + The container in which the blob resides. + :ivar str snapshot: + Datetime value that uniquely identifies the blob snapshot. + :ivar ~azure.blob.storage.BlobType blob_type: + String indicating this blob's type. + :ivar dict metadata: + Name-value pairs associated with the blob as metadata. + :ivar ~datetime.datetime last_modified: + A datetime object representing the last time the blob was modified. + :ivar str etag: + The ETag contains a value that you can use to perform operations + conditionally. + :ivar int size: + The size of the content returned. If the entire blob was requested, + the length of blob in bytes. If a subset of the blob was requested, the + length of the returned subset. + :ivar str content_range: + Indicates the range of bytes returned in the event that the client + requested a subset of the blob. + :ivar int append_blob_committed_block_count: + (For Append Blobs) Number of committed blocks in the blob. + :ivar bool is_append_blob_sealed: + Indicate if the append blob is sealed or not. + + .. versionadded:: 12.4.0 + + :ivar int page_blob_sequence_number: + (For Page Blobs) Sequence number for page blob used for coordinating + concurrent writes. + :ivar bool server_encrypted: + Set to true if the blob is encrypted on the server. + :ivar ~azure.storage.blob.CopyProperties copy: + Stores all the copy properties for the blob. + :ivar ~azure.storage.blob.ContentSettings content_settings: + Stores all the content settings for the blob. + :ivar ~azure.storage.blob.LeaseProperties lease: + Stores all the lease information for the blob. + :ivar ~azure.storage.blob.StandardBlobTier blob_tier: + Indicates the access tier of the blob. The hot tier is optimized + for storing data that is accessed frequently. The cool storage tier + is optimized for storing data that is infrequently accessed and stored + for at least a month. The archive tier is optimized for storing + data that is rarely accessed and stored for at least six months + with flexible latency requirements. + :ivar str rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :ivar ~datetime.datetime blob_tier_change_time: + Indicates when the access tier was last changed. + :ivar bool blob_tier_inferred: + Indicates whether the access tier was inferred by the service. + If false, it indicates that the tier was set explicitly. + :ivar bool deleted: + Whether this blob was deleted. + :ivar ~datetime.datetime deleted_time: + A datetime object representing the time at which the blob was deleted. + :ivar int remaining_retention_days: + The number of days that the blob will be retained before being permanently deleted by the service. + :ivar ~datetime.datetime creation_time: + Indicates when the blob was created, in UTC. + :ivar str archive_status: + Archive status of blob. + :ivar str encryption_key_sha256: + The SHA-256 hash of the provided encryption key. + :ivar str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + :ivar bool request_server_encrypted: + Whether this blob is encrypted. + :ivar list(~azure.storage.blob.ObjectReplicationPolicy) object_replication_source_properties: + Only present for blobs that have policy ids and rule ids applied to them. + + .. versionadded:: 12.4.0 + + :ivar str object_replication_destination_policy: + Represents the Object Replication Policy Id that created this blob. + + .. versionadded:: 12.4.0 + + :ivar int tag_count: + Tags count on this blob. + + .. versionadded:: 12.4.0 + + :ivar dict(str, str) tags: + Key value pair of tags on this blob. + + .. versionadded:: 12.4.0 + + """ + + def __init__(self, **kwargs): + self.name = kwargs.get('name') + self.container = None + self.snapshot = kwargs.get('x-ms-snapshot') + self.version_id = kwargs.get('x-ms-version-id') + self.is_current_version = kwargs.get('x-ms-is-current-version') + self.blob_type = BlobType(kwargs['x-ms-blob-type']) if kwargs.get('x-ms-blob-type') else None + self.metadata = kwargs.get('metadata') + self.encrypted_metadata = kwargs.get('encrypted_metadata') + self.last_modified = kwargs.get('Last-Modified') + self.etag = kwargs.get('ETag') + self.size = kwargs.get('Content-Length') + self.content_range = kwargs.get('Content-Range') + self.append_blob_committed_block_count = kwargs.get('x-ms-blob-committed-block-count') + self.is_append_blob_sealed = kwargs.get('x-ms-blob-sealed') + self.page_blob_sequence_number = kwargs.get('x-ms-blob-sequence-number') + self.server_encrypted = kwargs.get('x-ms-server-encrypted') + self.copy = CopyProperties(**kwargs) + self.content_settings = ContentSettings(**kwargs) + self.lease = LeaseProperties(**kwargs) + self.blob_tier = kwargs.get('x-ms-access-tier') + self.rehydrate_priority = kwargs.get('x-ms-rehydrate-priority') + self.blob_tier_change_time = kwargs.get('x-ms-access-tier-change-time') + self.blob_tier_inferred = kwargs.get('x-ms-access-tier-inferred') + self.deleted = False + self.deleted_time = None + self.remaining_retention_days = None + self.creation_time = kwargs.get('x-ms-creation-time') + self.archive_status = kwargs.get('x-ms-archive-status') + self.encryption_key_sha256 = kwargs.get('x-ms-encryption-key-sha256') + self.encryption_scope = kwargs.get('x-ms-encryption-scope') + self.request_server_encrypted = kwargs.get('x-ms-server-encrypted') + self.object_replication_source_properties = kwargs.get('object_replication_source_properties') + self.object_replication_destination_policy = kwargs.get('x-ms-or-policy-id') + self.last_accessed_on = kwargs.get('x-ms-last-access-time') + self.tag_count = kwargs.get('x-ms-tag-count') + self.tags = None + + +class FilteredBlob(DictMixin): + """Blob info from a Filter Blobs API call. + + :ivar name: Blob name + :type name: str + :ivar container_name: Container name. + :type container_name: str + """ + def __init__(self, **kwargs): + self.name = kwargs.get('name', None) + self.container_name = kwargs.get('container_name', None) + + +class FilteredBlobPaged(PageIterator): + """An Iterable of Blob properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str continuation_token: The continuation token to retrieve the next page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.FilteredBlob) + :ivar str container: The container that the blobs are listed from. + + :param callable command: Function to retrieve the next page of items. + :param str container: The name of the container. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str continuation_token: An opaque continuation token. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__( + self, command, + container=None, + results_per_page=None, + continuation_token=None, + location_mode=None): + super(FilteredBlobPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.marker = continuation_token + self.results_per_page = results_per_page + self.container = container + self.current_page = None + self.location_mode = location_mode + + def _get_next_cb(self, continuation_token): + try: + return self._command( + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.marker = self._response.next_marker + self.current_page = [self._build_item(item) for item in self._response.blobs] + + return self._response.next_marker or None, self.current_page + + @staticmethod + def _build_item(item): + if isinstance(item, FilterBlobItem): + blob = FilteredBlob(name=item.name, container_name=item.container_name) # pylint: disable=protected-access + return blob + return item + + +class LeaseProperties(DictMixin): + """Blob Lease Properties. + + :ivar str status: + The lease status of the blob. Possible values: locked|unlocked + :ivar str state: + Lease state of the blob. Possible values: available|leased|expired|breaking|broken + :ivar str duration: + When a blob is leased, specifies whether the lease is of infinite or fixed duration. + """ + + def __init__(self, **kwargs): + self.status = get_enum_value(kwargs.get('x-ms-lease-status')) + self.state = get_enum_value(kwargs.get('x-ms-lease-state')) + self.duration = get_enum_value(kwargs.get('x-ms-lease-duration')) + + @classmethod + def _from_generated(cls, generated): + lease = cls() + lease.status = get_enum_value(generated.properties.lease_status) + lease.state = get_enum_value(generated.properties.lease_state) + lease.duration = get_enum_value(generated.properties.lease_duration) + return lease + + +class ContentSettings(DictMixin): + """The content settings of a blob. + + :param str content_type: + The content type specified for the blob. If no content type was + specified, the default content type is application/octet-stream. + :param str content_encoding: + If the content_encoding has previously been set + for the blob, that value is stored. + :param str content_language: + If the content_language has previously been set + for the blob, that value is stored. + :param str content_disposition: + content_disposition conveys additional information about how to + process the response payload, and also can be used to attach + additional metadata. If content_disposition has previously been set + for the blob, that value is stored. + :param str cache_control: + If the cache_control has previously been set for + the blob, that value is stored. + :param str content_md5: + If the content_md5 has been set for the blob, this response + header is stored so that the client can check for message content + integrity. + """ + + def __init__( + self, content_type=None, content_encoding=None, + content_language=None, content_disposition=None, + cache_control=None, content_md5=None, **kwargs): + + self.content_type = content_type or kwargs.get('Content-Type') + self.content_encoding = content_encoding or kwargs.get('Content-Encoding') + self.content_language = content_language or kwargs.get('Content-Language') + self.content_md5 = content_md5 or kwargs.get('Content-MD5') + self.content_disposition = content_disposition or kwargs.get('Content-Disposition') + self.cache_control = cache_control or kwargs.get('Cache-Control') + + @classmethod + def _from_generated(cls, generated): + settings = cls() + settings.content_type = generated.properties.content_type or None + settings.content_encoding = generated.properties.content_encoding or None + settings.content_language = generated.properties.content_language or None + settings.content_md5 = generated.properties.content_md5 or None + settings.content_disposition = generated.properties.content_disposition or None + settings.cache_control = generated.properties.cache_control or None + return settings + + +class CopyProperties(DictMixin): + """Blob Copy Properties. + + These properties will be `None` if this blob has never been the destination + in a Copy Blob operation, or if this blob has been modified after a concluded + Copy Blob operation, for example, using Set Blob Properties, Upload Blob, or Commit Block List. + + :ivar str id: + String identifier for the last attempted Copy Blob operation where this blob + was the destination blob. + :ivar str source: + URL up to 2 KB in length that specifies the source blob used in the last attempted + Copy Blob operation where this blob was the destination blob. + :ivar str status: + State of the copy operation identified by Copy ID, with these values: + success: + Copy completed successfully. + pending: + Copy is in progress. Check copy_status_description if intermittent, + non-fatal errors impede copy progress but don't cause failure. + aborted: + Copy was ended by Abort Copy Blob. + failed: + Copy failed. See copy_status_description for failure details. + :ivar str progress: + Contains the number of bytes copied and the total bytes in the source in the last + attempted Copy Blob operation where this blob was the destination blob. Can show + between 0 and Content-Length bytes copied. + :ivar ~datetime.datetime completion_time: + Conclusion time of the last attempted Copy Blob operation where this blob was the + destination blob. This value can specify the time of a completed, aborted, or + failed copy attempt. + :ivar str status_description: + Only appears when x-ms-copy-status is failed or pending. Describes cause of fatal + or non-fatal copy operation failure. + :ivar bool incremental_copy: + Copies the snapshot of the source page blob to a destination page blob. + The snapshot is copied such that only the differential changes between + the previously copied snapshot are transferred to the destination + :ivar ~datetime.datetime destination_snapshot: + Included if the blob is incremental copy blob or incremental copy snapshot, + if x-ms-copy-status is success. Snapshot time of the last successful + incremental copy snapshot for this blob. + """ + + def __init__(self, **kwargs): + self.id = kwargs.get('x-ms-copy-id') + self.source = kwargs.get('x-ms-copy-source') + self.status = get_enum_value(kwargs.get('x-ms-copy-status')) + self.progress = kwargs.get('x-ms-copy-progress') + self.completion_time = kwargs.get('x-ms-copy-completion_time') + self.status_description = kwargs.get('x-ms-copy-status-description') + self.incremental_copy = kwargs.get('x-ms-incremental-copy') + self.destination_snapshot = kwargs.get('x-ms-copy-destination-snapshot') + + @classmethod + def _from_generated(cls, generated): + copy = cls() + copy.id = generated.properties.copy_id or None + copy.status = get_enum_value(generated.properties.copy_status) or None + copy.source = generated.properties.copy_source or None + copy.progress = generated.properties.copy_progress or None + copy.completion_time = generated.properties.copy_completion_time or None + copy.status_description = generated.properties.copy_status_description or None + copy.incremental_copy = generated.properties.incremental_copy or None + copy.destination_snapshot = generated.properties.destination_snapshot or None + return copy + + +class BlobBlock(DictMixin): + """BlockBlob Block class. + + :param str block_id: + Block id. + :param str state: + Block state. Possible values: committed|uncommitted + :ivar int size: + Block size in bytes. + """ + + def __init__(self, block_id, state=BlockState.Latest): + self.id = block_id + self.state = state + self.size = None + + @classmethod + def _from_generated(cls, generated): + block = cls(decode_base64_to_text(generated.name)) + block.size = generated.size + return block + + +class PageRange(DictMixin): + """Page Range for page blob. + + :param int start: + Start of page range in bytes. + :param int end: + End of page range in bytes. + """ + + def __init__(self, start=None, end=None): + self.start = start + self.end = end + + +class AccessPolicy(GenAccessPolicy): + """Access Policy class used by the set and get access policy methods in each service. + + A stored access policy can specify the start time, expiry time, and + permissions for the Shared Access Signatures with which it's associated. + Depending on how you want to control access to your resource, you can + specify all of these parameters within the stored access policy, and omit + them from the URL for the Shared Access Signature. Doing so permits you to + modify the associated signature's behavior at any time, as well as to revoke + it. Or you can specify one or more of the access policy parameters within + the stored access policy, and the others on the URL. Finally, you can + specify all of the parameters on the URL. In this case, you can use the + stored access policy to revoke the signature, but not to modify its behavior. + + Together the Shared Access Signature and the stored access policy must + include all fields required to authenticate the signature. If any required + fields are missing, the request will fail. Likewise, if a field is specified + both in the Shared Access Signature URL and in the stored access policy, the + request will fail with status code 400 (Bad Request). + + :param permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :type permission: str or ~azure.storage.blob.ContainerSasPermissions + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: ~datetime.datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: ~datetime.datetime or str + """ + def __init__(self, permission=None, expiry=None, start=None): + self.start = start + self.expiry = expiry + self.permission = permission + + +class ContainerSasPermissions(object): + """ContainerSasPermissions class to be used with the + :func:`~azure.storage.blob.generate_container_sas` function and + for the AccessPolicies used with + :func:`~azure.storage.blob.ContainerClient.set_container_access_policy`. + + :param bool read: + Read the content, properties, metadata or block list of any blob in the + container. Use any blob in the container as the source of a copy operation. + :param bool write: + For any blob in the container, create or write content, properties, + metadata, or block list. Snapshot or lease the blob. Resize the blob + (page blob only). Use the blob as the destination of a copy operation + within the same account. Note: You cannot grant permissions to read or + write container properties or metadata, nor to lease a container, with + a container SAS. Use an account SAS instead. + :param bool delete: + Delete any blob in the container. Note: You cannot grant permissions to + delete a container with a container SAS. Use an account SAS instead. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. + :param bool list: + List blobs in the container. + :param bool tag: + Set or get tags on the blobs in the container. + """ + def __init__(self, read=False, write=False, delete=False, list=False, delete_previous_version=False, tag=False): # pylint: disable=redefined-builtin + self.read = read + self.write = write + self.delete = delete + self.list = list + self.delete_previous_version = delete_previous_version + self.tag = tag + self._str = (('r' if self.read else '') + + ('w' if self.write else '') + + ('d' if self.delete else '') + + ('x' if self.delete_previous_version else '') + + ('l' if self.list else '') + + ('t' if self.tag else '')) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, permission): + """Create a ContainerSasPermissions from a string. + + To specify read, write, delete, or list permissions you need only to + include the first letter of the word in the string. E.g. For read and + write permissions, you would provide a string "rw". + + :param str permission: The string which dictates the read, write, delete, + and list permissions. + :return: A ContainerSasPermissions object + :rtype: ~azure.storage.blob.ContainerSasPermissions + """ + p_read = 'r' in permission + p_write = 'w' in permission + p_delete = 'd' in permission + p_list = 'l' in permission + p_delete_previous_version = 'x' in permission + p_tag = 't' in permission + parsed = cls(read=p_read, write=p_write, delete=p_delete, list=p_list, + delete_previous_version=p_delete_previous_version, tag=p_tag) + parsed._str = permission # pylint: disable = protected-access + return parsed + + +class BlobSasPermissions(object): + """BlobSasPermissions class to be used with the + :func:`~azure.storage.blob.generate_blob_sas` function. + + :param bool read: + Read the content, properties, metadata and block list. Use the blob as + the source of a copy operation. + :param bool add: + Add a block to an append blob. + :param bool create: + Write a new blob, snapshot a blob, or copy a blob to a new blob. + :param bool write: + Create or write content, properties, metadata, or block list. Snapshot + or lease the blob. Resize the blob (page blob only). Use the blob as the + destination of a copy operation within the same account. + :param bool delete: + Delete the blob. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. + :param bool tag: + Set or get tags on the blob. + """ + def __init__(self, read=False, add=False, create=False, write=False, + delete=False, delete_previous_version=False, tag=True): + self.read = read + self.add = add + self.create = create + self.write = write + self.delete = delete + self.delete_previous_version = delete_previous_version + self.tag = tag + self._str = (('r' if self.read else '') + + ('a' if self.add else '') + + ('c' if self.create else '') + + ('w' if self.write else '') + + ('d' if self.delete else '') + + ('x' if self.delete_previous_version else '') + + ('t' if self.tag else '')) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, permission): + """Create a BlobSasPermissions from a string. + + To specify read, add, create, write, or delete permissions you need only to + include the first letter of the word in the string. E.g. For read and + write permissions, you would provide a string "rw". + + :param str permission: The string which dictates the read, add, create, + write, or delete permissions. + :return: A BlobSasPermissions object + :rtype: ~azure.storage.blob.BlobSasPermissions + """ + p_read = 'r' in permission + p_add = 'a' in permission + p_create = 'c' in permission + p_write = 'w' in permission + p_delete = 'd' in permission + p_delete_previous_version = 'x' in permission + p_tag = 't' in permission + + parsed = cls(read=p_read, add=p_add, create=p_create, write=p_write, delete=p_delete, + delete_previous_version=p_delete_previous_version, tag=p_tag) + parsed._str = permission # pylint: disable = protected-access + return parsed + + +class CustomerProvidedEncryptionKey(object): + """ + All data in Azure Storage is encrypted at-rest using an account-level encryption key. + In versions 2018-06-17 and newer, you can manage the key used to encrypt blob contents + and application metadata per-blob by providing an AES-256 encryption key in requests to the storage service. + + When you use a customer-provided key, Azure Storage does not manage or persist your key. + When writing data to a blob, the provided key is used to encrypt your data before writing it to disk. + A SHA-256 hash of the encryption key is written alongside the blob contents, + and is used to verify that all subsequent operations against the blob use the same encryption key. + This hash cannot be used to retrieve the encryption key or decrypt the contents of the blob. + When reading a blob, the provided key is used to decrypt your data after reading it from disk. + In both cases, the provided encryption key is securely discarded + as soon as the encryption or decryption process completes. + + :param str key_value: + Base64-encoded AES-256 encryption key value. + :param str key_hash: + Base64-encoded SHA256 of the encryption key. + :ivar str algorithm: + Specifies the algorithm to use when encrypting data using the given key. Must be AES256. + """ + def __init__(self, key_value, key_hash): + self.key_value = key_value + self.key_hash = key_hash + self.algorithm = 'AES256' + + +class ContainerEncryptionScope(object): + """The default encryption scope configuration for a container. + + This scope is used implicitly for all future writes within the container, + but can be overridden per blob operation. + + .. versionadded:: 12.2.0 + + :param str default_encryption_scope: + Specifies the default encryption scope to set on the container and use for + all future writes. + :param bool prevent_encryption_scope_override: + If true, prevents any request from specifying a different encryption scope than the scope + set on the container. Default value is false. + """ + + def __init__(self, default_encryption_scope, **kwargs): + self.default_encryption_scope = default_encryption_scope + self.prevent_encryption_scope_override = kwargs.get('prevent_encryption_scope_override', False) + + @classmethod + def _from_generated(cls, generated): + if generated.properties.default_encryption_scope: + scope = cls( + generated.properties.default_encryption_scope, + prevent_encryption_scope_override=generated.properties.prevent_encryption_scope_override or False + ) + return scope + return None + + +class DelimitedJsonDialect(object): + """Defines the input or output JSON serialization for a blob data query. + + :keyword str delimiter: The line separator character, default value is '\n' + """ + + def __init__(self, **kwargs): + self.delimiter = kwargs.pop('delimiter', '\n') + + +class DelimitedTextDialect(object): + """Defines the input or output delimited (CSV) serialization for a blob query request. + + :keyword str delimiter: + Column separator, defaults to ','. + :keyword str quotechar: + Field quote, defaults to '"'. + :keyword str lineterminator: + Record separator, defaults to '\n'. + :keyword str escapechar: + Escape char, defaults to empty. + :keyword bool has_header: + Whether the blob data includes headers in the first line. The default value is False, meaning that the + data will be returned inclusive of the first line. If set to True, the data will be returned exclusive + of the first line. + """ + def __init__(self, **kwargs): + self.delimiter = kwargs.pop('delimiter', ',') + self.quotechar = kwargs.pop('quotechar', '"') + self.lineterminator = kwargs.pop('lineterminator', '\n') + self.escapechar = kwargs.pop('escapechar', "") + self.has_header = kwargs.pop('has_header', False) + + +class ObjectReplicationPolicy(DictMixin): + """Policy id and rule ids applied to a blob. + + :ivar str policy_id: + Policy id for the blob. A replication policy gets created (policy id) when creating a source/destination pair. + :ivar list(~azure.storage.blob.ObjectReplicationRule) rules: + Within each policy there may be multiple replication rules. + e.g. rule 1= src/container/.pdf to dst/container2/; rule2 = src/container1/.jpg to dst/container3 + """ + + def __init__(self, **kwargs): + self.policy_id = kwargs.pop('policy_id', None) + self.rules = kwargs.pop('rules', None) + + +class ObjectReplicationRule(DictMixin): + """Policy id and rule ids applied to a blob. + + :ivar str rule_id: + Rule id. + :ivar str status: + The status of the rule. It could be "Complete" or "Failed" + """ + + def __init__(self, **kwargs): + self.rule_id = kwargs.pop('rule_id', None) + self.status = kwargs.pop('status', None) + + +class BlobQueryError(object): + """The error happened during quick query operation. + + :ivar str error: + The name of the error. + :ivar bool is_fatal: + If true, this error prevents further query processing. More result data may be returned, + but there is no guarantee that all of the original data will be processed. + If false, this error does not prevent further query processing. + :ivar str description: + A description of the error. + :ivar int position: + The blob offset at which the error occurred. + """ + def __init__(self, error=None, is_fatal=False, description=None, position=None): + self.error = error + self.is_fatal = is_fatal + self.description = description + self.position = position diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_quick_query_helper.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_quick_query_helper.py new file mode 100644 index 00000000000..eb51d987b9a --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_quick_query_helper.py @@ -0,0 +1,196 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from io import BytesIO +from typing import Union, Iterable, IO # pylint: disable=unused-import + +from ._shared.avro.datafile import DataFileReader +from ._shared.avro.avro_io import DatumReader + + +class BlobQueryReader(object): # pylint: disable=too-many-instance-attributes + """A streaming object to read query results. + + :ivar str name: + The name of the blob being quered. + :ivar str container: + The name of the container where the blob is. + :ivar dict response_headers: + The response_headers of the quick query request. + :ivar bytes record_delimiter: + The delimiter used to separate lines, or records with the data. The `records` + method will return these lines via a generator. + """ + + def __init__( + self, + name=None, + container=None, + errors=None, + record_delimiter='\n', + encoding=None, + headers=None, + response=None, + error_cls=None, + ): + self.name = name + self.container = container + self.response_headers = headers + self.record_delimiter = record_delimiter + self._size = 0 + self._bytes_processed = 0 + self._errors = errors + self._encoding = encoding + self._parsed_results = DataFileReader(QuickQueryStreamer(response), DatumReader()) + self._first_result = self._process_record(next(self._parsed_results)) + self._error_cls = error_cls + + def __len__(self): + return self._size + + def _process_record(self, result): + self._size = result.get('totalBytes', self._size) + self._bytes_processed = result.get('bytesScanned', self._bytes_processed) + if 'data' in result: + return result.get('data') + if 'fatal' in result: + error = self._error_cls( + error=result['name'], + is_fatal=result['fatal'], + description=result['description'], + position=result['position'] + ) + if self._errors: + self._errors(error) + return None + + def _iter_stream(self): + if self._first_result is not None: + yield self._first_result + for next_result in self._parsed_results: + processed_result = self._process_record(next_result) + if processed_result is not None: + yield processed_result + + def readall(self): + # type: () -> Union[bytes, str] + """Return all query results. + + This operation is blocking until all data is downloaded. + If encoding has been configured - this will be used to decode individual + records are they are received. + + :rtype: Union[bytes, str] + """ + stream = BytesIO() + self.readinto(stream) + data = stream.getvalue() + if self._encoding: + return data.decode(self._encoding) + return data + + def readinto(self, stream): + # type: (IO) -> None + """Download the query result to a stream. + + :param stream: + The stream to download to. This can be an open file-handle, + or any writable stream. + :returns: None + """ + for record in self._iter_stream(): + stream.write(record) + + def records(self): + # type: () -> Iterable[Union[bytes, str]] + """Returns a record generator for the query result. + + Records will be returned line by line. + If encoding has been configured - this will be used to decode individual + records are they are received. + + :rtype: Iterable[Union[bytes, str]] + """ + delimiter = self.record_delimiter.encode('utf-8') + for record_chunk in self._iter_stream(): + for record in record_chunk.split(delimiter): + if self._encoding: + yield record.decode(self._encoding) + else: + yield record + + + +class QuickQueryStreamer(object): + """ + File-like streaming iterator. + """ + + def __init__(self, generator): + self.generator = generator + self.iterator = iter(generator) + self._buf = b"" + self._point = 0 + self._download_offset = 0 + self._buf_start = 0 + self.file_length = None + + def __len__(self): + return self.file_length + + def __iter__(self): + return self.iterator + + @staticmethod + def seekable(): + return True + + def __next__(self): + next_part = next(self.iterator) + self._download_offset += len(next_part) + return next_part + + next = __next__ # Python 2 compatibility. + + def tell(self): + return self._point + + def seek(self, offset, whence=0): + if whence == 0: + self._point = offset + elif whence == 1: + self._point += offset + else: + raise ValueError("whence must be 0, or 1") + if self._point < 0: + self._point = 0 # XXX is this right? + + def read(self, size): + try: + # keep reading from the generator until the buffer of this stream has enough data to read + while self._point + size > self._download_offset: + self._buf += self.__next__() + except StopIteration: + self.file_length = self._download_offset + + start_point = self._point + + # EOF + self._point = min(self._point + size, self._download_offset) + + relative_start = start_point - self._buf_start + if relative_start < 0: + raise ValueError("Buffer has dumped too much data") + relative_end = relative_start + size + data = self._buf[relative_start: relative_end] + + # dump the extra data in buffer + # buffer start--------------------16bytes----current read position + dumped_size = max(relative_end - 16 - relative_start, 0) + self._buf_start += dumped_size + self._buf = self._buf[dumped_size:] + + return data diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_serialize.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_serialize.py new file mode 100644 index 00000000000..372ab454c74 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_serialize.py @@ -0,0 +1,189 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use +try: + from urllib.parse import quote +except ImportError: + from urllib2 import quote # type: ignore + +from azure.core import MatchConditions + +from ._models import ( + ContainerEncryptionScope, + DelimitedJsonDialect +) +from ._generated.models import ( + ModifiedAccessConditions, + SourceModifiedAccessConditions, + CpkScopeInfo, + ContainerCpkScopeInfo, + QueryFormat, + QuerySerialization, + DelimitedTextConfiguration, + JsonTextConfiguration, + QueryFormatType, + BlobTag, + BlobTags, LeaseAccessConditions +) + + +_SUPPORTED_API_VERSIONS = [ + '2019-02-02', + '2019-07-07', + '2019-10-10', + '2019-12-12', + '2020-02-10', +] + + +def _get_match_headers(kwargs, match_param, etag_param): + # type: (str) -> Tuple(Dict[str, Any], Optional[str], Optional[str]) + if_match = None + if_none_match = None + match_condition = kwargs.pop(match_param, None) + if match_condition == MatchConditions.IfNotModified: + if_match = kwargs.pop(etag_param, None) + if not if_match: + raise ValueError("'{}' specified without '{}'.".format(match_param, etag_param)) + elif match_condition == MatchConditions.IfPresent: + if_match = '*' + elif match_condition == MatchConditions.IfModified: + if_none_match = kwargs.pop(etag_param, None) + if not if_none_match: + raise ValueError("'{}' specified without '{}'.".format(match_param, etag_param)) + elif match_condition == MatchConditions.IfMissing: + if_none_match = '*' + elif match_condition is None: + if kwargs.get(etag_param): + raise ValueError("'{}' specified without '{}'.".format(etag_param, match_param)) + else: + raise TypeError("Invalid match condition: {}".format(match_condition)) + return if_match, if_none_match + + +def get_access_conditions(lease): + # type: (Optional[Union[BlobLeaseClient, str]]) -> Union[LeaseAccessConditions, None] + try: + lease_id = lease.id # type: ignore + except AttributeError: + lease_id = lease # type: ignore + return LeaseAccessConditions(lease_id=lease_id) if lease_id else None + + +def get_modify_conditions(kwargs): + # type: (Dict[str, Any]) -> ModifiedAccessConditions + if_match, if_none_match = _get_match_headers(kwargs, 'match_condition', 'etag') + return ModifiedAccessConditions( + if_modified_since=kwargs.pop('if_modified_since', None), + if_unmodified_since=kwargs.pop('if_unmodified_since', None), + if_match=if_match or kwargs.pop('if_match', None), + if_none_match=if_none_match or kwargs.pop('if_none_match', None), + if_tags=kwargs.pop('if_tags_match_condition', None) + ) + + +def get_source_conditions(kwargs): + # type: (Dict[str, Any]) -> SourceModifiedAccessConditions + if_match, if_none_match = _get_match_headers(kwargs, 'source_match_condition', 'source_etag') + return SourceModifiedAccessConditions( + source_if_modified_since=kwargs.pop('source_if_modified_since', None), + source_if_unmodified_since=kwargs.pop('source_if_unmodified_since', None), + source_if_match=if_match or kwargs.pop('source_if_match', None), + source_if_none_match=if_none_match or kwargs.pop('source_if_none_match', None), + source_if_tags=kwargs.pop('source_if_tags_match_condition', None) + ) + + +def get_cpk_scope_info(kwargs): + # type: (Dict[str, Any]) -> CpkScopeInfo + if 'encryption_scope' in kwargs: + return CpkScopeInfo(encryption_scope=kwargs.pop('encryption_scope')) + return None + + +def get_container_cpk_scope_info(kwargs): + # type: (Dict[str, Any]) -> ContainerCpkScopeInfo + encryption_scope = kwargs.pop('container_encryption_scope', None) + if encryption_scope: + if isinstance(encryption_scope, ContainerEncryptionScope): + return ContainerCpkScopeInfo( + default_encryption_scope=encryption_scope.default_encryption_scope, + prevent_encryption_scope_override=encryption_scope.prevent_encryption_scope_override + ) + if isinstance(encryption_scope, dict): + return ContainerCpkScopeInfo( + default_encryption_scope=encryption_scope['default_encryption_scope'], + prevent_encryption_scope_override=encryption_scope.get('prevent_encryption_scope_override') + ) + raise TypeError("Container encryption scope must be dict or type ContainerEncryptionScope.") + return None + + +def get_api_version(kwargs, default): + # type: (Dict[str, Any]) -> str + api_version = kwargs.pop('api_version', None) + if api_version and api_version not in _SUPPORTED_API_VERSIONS: + versions = '\n'.join(_SUPPORTED_API_VERSIONS) + raise ValueError("Unsupported API version '{}'. Please select from:\n{}".format(api_version, versions)) + return api_version or default + + +def serialize_blob_tags_header(tags=None): + # type: (Optional[Dict[str, str]]) -> str + if tags is None: + return None + + components = list() + if tags: + for key, value in tags.items(): + components.append(quote(key, safe='.-')) + components.append('=') + components.append(quote(value, safe='.-')) + components.append('&') + + if components: + del components[-1] + + return ''.join(components) + + +def serialize_blob_tags(tags=None): + # type: (Optional[Dict[str, str]]) -> Union[BlobTags, None] + tag_list = list() + if tags: + tag_list = [BlobTag(key=k, value=v) for k, v in tags.items()] + return BlobTags(blob_tag_set=tag_list) + + +def serialize_query_format(formater): + if isinstance(formater, DelimitedJsonDialect): + serialization_settings = JsonTextConfiguration( + record_separator=formater.delimiter + ) + qq_format = QueryFormat( + type=QueryFormatType.json, + json_text_configuration=serialization_settings) + elif hasattr(formater, 'quotechar'): # This supports a csv.Dialect as well + try: + headers = formater.has_header + except AttributeError: + headers = False + serialization_settings = DelimitedTextConfiguration( + column_separator=formater.delimiter, + field_quote=formater.quotechar, + record_separator=formater.lineterminator, + escape_char=formater.escapechar, + headers_present=headers + ) + qq_format = QueryFormat( + type=QueryFormatType.delimited, + delimited_text_configuration=serialization_settings + ) + elif not formater: + return None + else: + raise TypeError("Format must be DelimitedTextDialect or DelimitedJsonDialect.") + return QuerySerialization(format=qq_format) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/__init__.py new file mode 100644 index 00000000000..160f8822382 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/__init__.py @@ -0,0 +1,56 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import base64 +import hashlib +import hmac + +try: + from urllib.parse import quote, unquote +except ImportError: + from urllib2 import quote, unquote # type: ignore + +import six + + +def url_quote(url): + return quote(url) + + +def url_unquote(url): + return unquote(url) + + +def encode_base64(data): + if isinstance(data, six.text_type): + data = data.encode('utf-8') + encoded = base64.b64encode(data) + return encoded.decode('utf-8') + + +def decode_base64_to_bytes(data): + if isinstance(data, six.text_type): + data = data.encode('utf-8') + return base64.b64decode(data) + + +def decode_base64_to_text(data): + decoded_bytes = decode_base64_to_bytes(data) + return decoded_bytes.decode('utf-8') + + +def sign_string(key, string_to_sign, key_is_base64=True): + if key_is_base64: + key = decode_base64_to_bytes(key) + else: + if isinstance(key, six.text_type): + key = key.encode('utf-8') + if isinstance(string_to_sign, six.text_type): + string_to_sign = string_to_sign.encode('utf-8') + signed_hmac_sha256 = hmac.HMAC(key, string_to_sign, hashlib.sha256) + digest = signed_hmac_sha256.digest() + encoded_digest = encode_base64(digest) + return encoded_digest diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/authentication.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/authentication.py new file mode 100644 index 00000000000..d04c1e4fb53 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/authentication.py @@ -0,0 +1,142 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import logging +import sys + +try: + from urllib.parse import urlparse, unquote +except ImportError: + from urlparse import urlparse # type: ignore + from urllib2 import unquote # type: ignore + +try: + from yarl import URL +except ImportError: + pass + +try: + from azure.core.pipeline.transport import AioHttpTransport +except ImportError: + AioHttpTransport = None + +from azure.core.exceptions import ClientAuthenticationError +from azure.core.pipeline.policies import SansIOHTTPPolicy + +from . import sign_string + + +logger = logging.getLogger(__name__) + + + +# wraps a given exception with the desired exception type +def _wrap_exception(ex, desired_type): + msg = "" + if ex.args: + msg = ex.args[0] + if sys.version_info >= (3,): + # Automatic chaining in Python 3 means we keep the trace + return desired_type(msg) + # There isn't a good solution in 2 for keeping the stack trace + # in general, or that will not result in an error in 3 + # However, we can keep the previous error type and message + # TODO: In the future we will log the trace + return desired_type('{}: {}'.format(ex.__class__.__name__, msg)) + + +class AzureSigningError(ClientAuthenticationError): + """ + Represents a fatal error when attempting to sign a request. + In general, the cause of this exception is user error. For example, the given account key is not valid. + Please visit https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account for more info. + """ + + +# pylint: disable=no-self-use +class SharedKeyCredentialPolicy(SansIOHTTPPolicy): + + def __init__(self, account_name, account_key): + self.account_name = account_name + self.account_key = account_key + super(SharedKeyCredentialPolicy, self).__init__() + + @staticmethod + def _get_headers(request, headers_to_sign): + headers = dict((name.lower(), value) for name, value in request.http_request.headers.items() if value) + if 'content-length' in headers and headers['content-length'] == '0': + del headers['content-length'] + return '\n'.join(headers.get(x, '') for x in headers_to_sign) + '\n' + + @staticmethod + def _get_verb(request): + return request.http_request.method + '\n' + + def _get_canonicalized_resource(self, request): + uri_path = urlparse(request.http_request.url).path + try: + if isinstance(request.context.transport, AioHttpTransport) or \ + isinstance(getattr(request.context.transport, "_transport", None), AioHttpTransport) or \ + isinstance(getattr(getattr(request.context.transport, "_transport", None), "_transport", None), + AioHttpTransport): + uri_path = URL(uri_path) + return '/' + self.account_name + str(uri_path) + except TypeError: + pass + return '/' + self.account_name + uri_path + + @staticmethod + def _get_canonicalized_headers(request): + string_to_sign = '' + x_ms_headers = [] + for name, value in request.http_request.headers.items(): + if name.startswith('x-ms-'): + x_ms_headers.append((name.lower(), value)) + x_ms_headers.sort() + for name, value in x_ms_headers: + if value is not None: + string_to_sign += ''.join([name, ':', value, '\n']) + return string_to_sign + + @staticmethod + def _get_canonicalized_resource_query(request): + sorted_queries = list(request.http_request.query.items()) + sorted_queries.sort() + + string_to_sign = '' + for name, value in sorted_queries: + if value is not None: + string_to_sign += '\n' + name.lower() + ':' + unquote(value) + + return string_to_sign + + def _add_authorization_header(self, request, string_to_sign): + try: + signature = sign_string(self.account_key, string_to_sign) + auth_string = 'SharedKey ' + self.account_name + ':' + signature + request.http_request.headers['Authorization'] = auth_string + except Exception as ex: + # Wrap any error that occurred as signing error + # Doing so will clarify/locate the source of problem + raise _wrap_exception(ex, AzureSigningError) + + def on_request(self, request): + string_to_sign = \ + self._get_verb(request) + \ + self._get_headers( + request, + [ + 'content-encoding', 'content-language', 'content-length', + 'content-md5', 'content-type', 'date', 'if-modified-since', + 'if-match', 'if-none-match', 'if-unmodified-since', 'byte_range' + ] + ) + \ + self._get_canonicalized_headers(request) + \ + self._get_canonicalized_resource(request) + \ + self._get_canonicalized_resource_query(request) + + self._add_authorization_header(request, string_to_sign) + #logger.debug("String_to_sign=%s", string_to_sign) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/__init__.py new file mode 100644 index 00000000000..5b396cd202e --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/__init__.py @@ -0,0 +1,5 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/avro_io.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/avro_io.py new file mode 100644 index 00000000000..93a5c134849 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/avro_io.py @@ -0,0 +1,464 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +"""Input/output utilities. + +Includes: + - i/o-specific constants + - i/o-specific exceptions + - schema validation + - leaf value encoding and decoding + - datum reader/writer stuff (?) + +Also includes a generic representation for data, which uses the +following mapping: + - Schema records are implemented as dict. + - Schema arrays are implemented as list. + - Schema maps are implemented as dict. + - Schema strings are implemented as unicode. + - Schema bytes are implemented as str. + - Schema ints are implemented as int. + - Schema longs are implemented as long. + - Schema floats are implemented as float. + - Schema doubles are implemented as float. + - Schema booleans are implemented as bool. +""" + +import json +import logging +import struct +import sys + +from ..avro import schema + +PY3 = sys.version_info[0] == 3 + +logger = logging.getLogger(__name__) + +# ------------------------------------------------------------------------------ +# Constants + +STRUCT_FLOAT = struct.Struct('= 0), n + input_bytes = self.reader.read(n) + if n > 0 and not input_bytes: + raise StopIteration + assert (len(input_bytes) == n), input_bytes + return input_bytes + + @staticmethod + def read_null(): + """ + null is written as zero bytes + """ + return None + + def read_boolean(self): + """ + a boolean is written as a single byte + whose value is either 0 (false) or 1 (true). + """ + b = ord(self.read(1)) + if b == 1: + return True + if b == 0: + return False + fail_msg = "Invalid value for boolean: %s" % b + raise schema.AvroException(fail_msg) + + def read_int(self): + """ + int and long values are written using variable-length, zig-zag coding. + """ + return self.read_long() + + def read_long(self): + """ + int and long values are written using variable-length, zig-zag coding. + """ + b = ord(self.read(1)) + n = b & 0x7F + shift = 7 + while (b & 0x80) != 0: + b = ord(self.read(1)) + n |= (b & 0x7F) << shift + shift += 7 + datum = (n >> 1) ^ -(n & 1) + return datum + + def read_float(self): + """ + A float is written as 4 bytes. + The float is converted into a 32-bit integer using a method equivalent to + Java's floatToIntBits and then encoded in little-endian format. + """ + return STRUCT_FLOAT.unpack(self.read(4))[0] + + def read_double(self): + """ + A double is written as 8 bytes. + The double is converted into a 64-bit integer using a method equivalent to + Java's doubleToLongBits and then encoded in little-endian format. + """ + return STRUCT_DOUBLE.unpack(self.read(8))[0] + + def read_bytes(self): + """ + Bytes are encoded as a long followed by that many bytes of data. + """ + nbytes = self.read_long() + assert (nbytes >= 0), nbytes + return self.read(nbytes) + + def read_utf8(self): + """ + A string is encoded as a long followed by + that many bytes of UTF-8 encoded character data. + """ + input_bytes = self.read_bytes() + if PY3: + try: + return input_bytes.decode('utf-8') + except UnicodeDecodeError as exn: + logger.error('Invalid UTF-8 input bytes: %r', input_bytes) + raise exn + else: + # PY2 + return unicode(input_bytes, "utf-8") # pylint: disable=undefined-variable + + def skip_null(self): + pass + + def skip_boolean(self): + self.skip(1) + + def skip_int(self): + self.skip_long() + + def skip_long(self): + b = ord(self.read(1)) + while (b & 0x80) != 0: + b = ord(self.read(1)) + + def skip_float(self): + self.skip(4) + + def skip_double(self): + self.skip(8) + + def skip_bytes(self): + self.skip(self.read_long()) + + def skip_utf8(self): + self.skip_bytes() + + def skip(self, n): + self.reader.seek(self.reader.tell() + n) + + +# ------------------------------------------------------------------------------ +# DatumReader + + +class DatumReader(object): + """Deserialize Avro-encoded data into a Python data structure.""" + + def __init__(self, writer_schema=None): + """ + As defined in the Avro specification, we call the schema encoded + in the data the "writer's schema". + """ + self._writer_schema = writer_schema + + # read/write properties + def set_writer_schema(self, writer_schema): + self._writer_schema = writer_schema + + writer_schema = property(lambda self: self._writer_schema, + set_writer_schema) + + def read(self, decoder): + return self.read_data(self.writer_schema, decoder) + + def read_data(self, writer_schema, decoder): + # function dispatch for reading data based on type of writer's schema + if writer_schema.type == 'null': + result = decoder.read_null() + elif writer_schema.type == 'boolean': + result = decoder.read_boolean() + elif writer_schema.type == 'string': + result = decoder.read_utf8() + elif writer_schema.type == 'int': + result = decoder.read_int() + elif writer_schema.type == 'long': + result = decoder.read_long() + elif writer_schema.type == 'float': + result = decoder.read_float() + elif writer_schema.type == 'double': + result = decoder.read_double() + elif writer_schema.type == 'bytes': + result = decoder.read_bytes() + elif writer_schema.type == 'fixed': + result = self.read_fixed(writer_schema, decoder) + elif writer_schema.type == 'enum': + result = self.read_enum(writer_schema, decoder) + elif writer_schema.type == 'array': + result = self.read_array(writer_schema, decoder) + elif writer_schema.type == 'map': + result = self.read_map(writer_schema, decoder) + elif writer_schema.type in ['union', 'error_union']: + result = self.read_union(writer_schema, decoder) + elif writer_schema.type in ['record', 'error', 'request']: + result = self.read_record(writer_schema, decoder) + else: + fail_msg = "Cannot read unknown schema type: %s" % writer_schema.type + raise schema.AvroException(fail_msg) + return result + + def skip_data(self, writer_schema, decoder): + if writer_schema.type == 'null': + result = decoder.skip_null() + elif writer_schema.type == 'boolean': + result = decoder.skip_boolean() + elif writer_schema.type == 'string': + result = decoder.skip_utf8() + elif writer_schema.type == 'int': + result = decoder.skip_int() + elif writer_schema.type == 'long': + result = decoder.skip_long() + elif writer_schema.type == 'float': + result = decoder.skip_float() + elif writer_schema.type == 'double': + result = decoder.skip_double() + elif writer_schema.type == 'bytes': + result = decoder.skip_bytes() + elif writer_schema.type == 'fixed': + result = self.skip_fixed(writer_schema, decoder) + elif writer_schema.type == 'enum': + result = self.skip_enum(decoder) + elif writer_schema.type == 'array': + self.skip_array(writer_schema, decoder) + result = None + elif writer_schema.type == 'map': + self.skip_map(writer_schema, decoder) + result = None + elif writer_schema.type in ['union', 'error_union']: + result = self.skip_union(writer_schema, decoder) + elif writer_schema.type in ['record', 'error', 'request']: + self.skip_record(writer_schema, decoder) + result = None + else: + fail_msg = "Unknown schema type: %s" % writer_schema.type + raise schema.AvroException(fail_msg) + return result + + @staticmethod + def read_fixed(writer_schema, decoder): + """ + Fixed instances are encoded using the number of bytes declared + in the schema. + """ + return decoder.read(writer_schema.size) + + @staticmethod + def skip_fixed(writer_schema, decoder): + return decoder.skip(writer_schema.size) + + @staticmethod + def read_enum(writer_schema, decoder): + """ + An enum is encoded by a int, representing the zero-based position + of the symbol in the schema. + """ + # read data + index_of_symbol = decoder.read_int() + if index_of_symbol >= len(writer_schema.symbols): + fail_msg = "Can't access enum index %d for enum with %d symbols" \ + % (index_of_symbol, len(writer_schema.symbols)) + raise SchemaResolutionException(fail_msg, writer_schema) + read_symbol = writer_schema.symbols[index_of_symbol] + return read_symbol + + @staticmethod + def skip_enum(decoder): + return decoder.skip_int() + + def read_array(self, writer_schema, decoder): + """ + Arrays are encoded as a series of blocks. + + Each block consists of a long count value, + followed by that many array items. + A block with count zero indicates the end of the array. + Each item is encoded per the array's item schema. + + If a block's count is negative, + then the count is followed immediately by a long block size, + indicating the number of bytes in the block. + The actual count in this case + is the absolute value of the count written. + """ + read_items = [] + block_count = decoder.read_long() + while block_count != 0: + if block_count < 0: + block_count = -block_count + decoder.read_long() + for _ in range(block_count): + read_items.append(self.read_data(writer_schema.items, decoder)) + block_count = decoder.read_long() + return read_items + + def skip_array(self, writer_schema, decoder): + block_count = decoder.read_long() + while block_count != 0: + if block_count < 0: + block_size = decoder.read_long() + decoder.skip(block_size) + else: + for _ in range(block_count): + self.skip_data(writer_schema.items, decoder) + block_count = decoder.read_long() + + def read_map(self, writer_schema, decoder): + """ + Maps are encoded as a series of blocks. + + Each block consists of a long count value, + followed by that many key/value pairs. + A block with count zero indicates the end of the map. + Each item is encoded per the map's value schema. + + If a block's count is negative, + then the count is followed immediately by a long block size, + indicating the number of bytes in the block. + The actual count in this case + is the absolute value of the count written. + """ + read_items = {} + block_count = decoder.read_long() + while block_count != 0: + if block_count < 0: + block_count = -block_count + decoder.read_long() + for _ in range(block_count): + key = decoder.read_utf8() + read_items[key] = self.read_data(writer_schema.values, decoder) + block_count = decoder.read_long() + return read_items + + def skip_map(self, writer_schema, decoder): + block_count = decoder.read_long() + while block_count != 0: + if block_count < 0: + block_size = decoder.read_long() + decoder.skip(block_size) + else: + for _ in range(block_count): + decoder.skip_utf8() + self.skip_data(writer_schema.values, decoder) + block_count = decoder.read_long() + + def read_union(self, writer_schema, decoder): + """ + A union is encoded by first writing a long value indicating + the zero-based position within the union of the schema of its value. + The value is then encoded per the indicated schema within the union. + """ + # schema resolution + index_of_schema = int(decoder.read_long()) + if index_of_schema >= len(writer_schema.schemas): + fail_msg = "Can't access branch index %d for union with %d branches" \ + % (index_of_schema, len(writer_schema.schemas)) + raise SchemaResolutionException(fail_msg, writer_schema) + selected_writer_schema = writer_schema.schemas[index_of_schema] + + # read data + return self.read_data(selected_writer_schema, decoder) + + def skip_union(self, writer_schema, decoder): + index_of_schema = int(decoder.read_long()) + if index_of_schema >= len(writer_schema.schemas): + fail_msg = "Can't access branch index %d for union with %d branches" \ + % (index_of_schema, len(writer_schema.schemas)) + raise SchemaResolutionException(fail_msg, writer_schema) + return self.skip_data(writer_schema.schemas[index_of_schema], decoder) + + def read_record(self, writer_schema, decoder): + """ + A record is encoded by encoding the values of its fields + in the order that they are declared. In other words, a record + is encoded as just the concatenation of the encodings of its fields. + Field values are encoded per their schema. + + Schema Resolution: + * the ordering of fields may be different: fields are matched by name. + * schemas for fields with the same name in both records are resolved + recursively. + * if the writer's record contains a field with a name not present in the + reader's record, the writer's value for that field is ignored. + * if the reader's record schema has a field that contains a default value, + and writer's schema does not have a field with the same name, then the + reader should use the default value from its field. + * if the reader's record schema has a field with no default value, and + writer's schema does not have a field with the same name, then the + field's value is unset. + """ + # schema resolution + read_record = {} + for field in writer_schema.fields: + field_val = self.read_data(field.type, decoder) + read_record[field.name] = field_val + return read_record + + def skip_record(self, writer_schema, decoder): + for field in writer_schema.fields: + self.skip_data(field.type, decoder) + + +# ------------------------------------------------------------------------------ + +if __name__ == '__main__': + raise Exception('Not a standalone module') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/avro_io_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/avro_io_async.py new file mode 100644 index 00000000000..e9812163795 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/avro_io_async.py @@ -0,0 +1,448 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +"""Input/output utilities. + +Includes: + - i/o-specific constants + - i/o-specific exceptions + - schema validation + - leaf value encoding and decoding + - datum reader/writer stuff (?) + +Also includes a generic representation for data, which uses the +following mapping: + - Schema records are implemented as dict. + - Schema arrays are implemented as list. + - Schema maps are implemented as dict. + - Schema strings are implemented as unicode. + - Schema bytes are implemented as str. + - Schema ints are implemented as int. + - Schema longs are implemented as long. + - Schema floats are implemented as float. + - Schema doubles are implemented as float. + - Schema booleans are implemented as bool. +""" + +import logging +import sys + +from ..avro import schema + +from .avro_io import STRUCT_FLOAT, STRUCT_DOUBLE, SchemaResolutionException + +PY3 = sys.version_info[0] == 3 + +logger = logging.getLogger(__name__) + +# ------------------------------------------------------------------------------ +# Decoder + + +class AsyncBinaryDecoder(object): + """Read leaf values.""" + + def __init__(self, reader): + """ + reader is a Python object on which we can call read, seek, and tell. + """ + self._reader = reader + + @property + def reader(self): + """Reports the reader used by this decoder.""" + return self._reader + + async def read(self, n): + """Read n bytes. + + Args: + n: Number of bytes to read. + Returns: + The next n bytes from the input. + """ + assert (n >= 0), n + input_bytes = await self.reader.read(n) + if n > 0 and not input_bytes: + raise StopAsyncIteration + assert (len(input_bytes) == n), input_bytes + return input_bytes + + @staticmethod + def read_null(): + """ + null is written as zero bytes + """ + return None + + async def read_boolean(self): + """ + a boolean is written as a single byte + whose value is either 0 (false) or 1 (true). + """ + b = ord(await self.read(1)) + if b == 1: + return True + if b == 0: + return False + fail_msg = "Invalid value for boolean: %s" % b + raise schema.AvroException(fail_msg) + + async def read_int(self): + """ + int and long values are written using variable-length, zig-zag coding. + """ + return await self.read_long() + + async def read_long(self): + """ + int and long values are written using variable-length, zig-zag coding. + """ + b = ord(await self.read(1)) + n = b & 0x7F + shift = 7 + while (b & 0x80) != 0: + b = ord(await self.read(1)) + n |= (b & 0x7F) << shift + shift += 7 + datum = (n >> 1) ^ -(n & 1) + return datum + + async def read_float(self): + """ + A float is written as 4 bytes. + The float is converted into a 32-bit integer using a method equivalent to + Java's floatToIntBits and then encoded in little-endian format. + """ + return STRUCT_FLOAT.unpack(await self.read(4))[0] + + async def read_double(self): + """ + A double is written as 8 bytes. + The double is converted into a 64-bit integer using a method equivalent to + Java's doubleToLongBits and then encoded in little-endian format. + """ + return STRUCT_DOUBLE.unpack(await self.read(8))[0] + + async def read_bytes(self): + """ + Bytes are encoded as a long followed by that many bytes of data. + """ + nbytes = await self.read_long() + assert (nbytes >= 0), nbytes + return await self.read(nbytes) + + async def read_utf8(self): + """ + A string is encoded as a long followed by + that many bytes of UTF-8 encoded character data. + """ + input_bytes = await self.read_bytes() + if PY3: + try: + return input_bytes.decode('utf-8') + except UnicodeDecodeError as exn: + logger.error('Invalid UTF-8 input bytes: %r', input_bytes) + raise exn + else: + # PY2 + return unicode(input_bytes, "utf-8") # pylint: disable=undefined-variable + + def skip_null(self): + pass + + async def skip_boolean(self): + await self.skip(1) + + async def skip_int(self): + await self.skip_long() + + async def skip_long(self): + b = ord(await self.read(1)) + while (b & 0x80) != 0: + b = ord(await self.read(1)) + + async def skip_float(self): + await self.skip(4) + + async def skip_double(self): + await self.skip(8) + + async def skip_bytes(self): + await self.skip(await self.read_long()) + + async def skip_utf8(self): + await self.skip_bytes() + + async def skip(self, n): + await self.reader.seek(await self.reader.tell() + n) + + +# ------------------------------------------------------------------------------ +# DatumReader + + +class AsyncDatumReader(object): + """Deserialize Avro-encoded data into a Python data structure.""" + + def __init__(self, writer_schema=None): + """ + As defined in the Avro specification, we call the schema encoded + in the data the "writer's schema", and the schema expected by the + reader the "reader's schema". + """ + self._writer_schema = writer_schema + + # read/write properties + def set_writer_schema(self, writer_schema): + self._writer_schema = writer_schema + + writer_schema = property(lambda self: self._writer_schema, + set_writer_schema) + + async def read(self, decoder): + return await self.read_data(self.writer_schema, decoder) + + async def read_data(self, writer_schema, decoder): + # function dispatch for reading data based on type of writer's schema + if writer_schema.type == 'null': + result = decoder.read_null() + elif writer_schema.type == 'boolean': + result = await decoder.read_boolean() + elif writer_schema.type == 'string': + result = await decoder.read_utf8() + elif writer_schema.type == 'int': + result = await decoder.read_int() + elif writer_schema.type == 'long': + result = await decoder.read_long() + elif writer_schema.type == 'float': + result = await decoder.read_float() + elif writer_schema.type == 'double': + result = await decoder.read_double() + elif writer_schema.type == 'bytes': + result = await decoder.read_bytes() + elif writer_schema.type == 'fixed': + result = await self.read_fixed(writer_schema, decoder) + elif writer_schema.type == 'enum': + result = await self.read_enum(writer_schema, decoder) + elif writer_schema.type == 'array': + result = await self.read_array(writer_schema, decoder) + elif writer_schema.type == 'map': + result = await self.read_map(writer_schema, decoder) + elif writer_schema.type in ['union', 'error_union']: + result = await self.read_union(writer_schema, decoder) + elif writer_schema.type in ['record', 'error', 'request']: + result = await self.read_record(writer_schema, decoder) + else: + fail_msg = "Cannot read unknown schema type: %s" % writer_schema.type + raise schema.AvroException(fail_msg) + return result + + async def skip_data(self, writer_schema, decoder): + if writer_schema.type == 'null': + result = decoder.skip_null() + elif writer_schema.type == 'boolean': + result = await decoder.skip_boolean() + elif writer_schema.type == 'string': + result = await decoder.skip_utf8() + elif writer_schema.type == 'int': + result = await decoder.skip_int() + elif writer_schema.type == 'long': + result = await decoder.skip_long() + elif writer_schema.type == 'float': + result = await decoder.skip_float() + elif writer_schema.type == 'double': + result = await decoder.skip_double() + elif writer_schema.type == 'bytes': + result = await decoder.skip_bytes() + elif writer_schema.type == 'fixed': + result = await self.skip_fixed(writer_schema, decoder) + elif writer_schema.type == 'enum': + result = await self.skip_enum(decoder) + elif writer_schema.type == 'array': + await self.skip_array(writer_schema, decoder) + result = None + elif writer_schema.type == 'map': + await self.skip_map(writer_schema, decoder) + result = None + elif writer_schema.type in ['union', 'error_union']: + result = await self.skip_union(writer_schema, decoder) + elif writer_schema.type in ['record', 'error', 'request']: + await self.skip_record(writer_schema, decoder) + result = None + else: + fail_msg = "Unknown schema type: %s" % writer_schema.type + raise schema.AvroException(fail_msg) + return result + + @staticmethod + async def read_fixed(writer_schema, decoder): + """ + Fixed instances are encoded using the number of bytes declared + in the schema. + """ + return await decoder.read(writer_schema.size) + + @staticmethod + async def skip_fixed(writer_schema, decoder): + return await decoder.skip(writer_schema.size) + + @staticmethod + async def read_enum(writer_schema, decoder): + """ + An enum is encoded by a int, representing the zero-based position + of the symbol in the schema. + """ + # read data + index_of_symbol = await decoder.read_int() + if index_of_symbol >= len(writer_schema.symbols): + fail_msg = "Can't access enum index %d for enum with %d symbols" \ + % (index_of_symbol, len(writer_schema.symbols)) + raise SchemaResolutionException(fail_msg, writer_schema) + read_symbol = writer_schema.symbols[index_of_symbol] + return read_symbol + + @staticmethod + async def skip_enum(decoder): + return await decoder.skip_int() + + async def read_array(self, writer_schema, decoder): + """ + Arrays are encoded as a series of blocks. + + Each block consists of a long count value, + followed by that many array items. + A block with count zero indicates the end of the array. + Each item is encoded per the array's item schema. + + If a block's count is negative, + then the count is followed immediately by a long block size, + indicating the number of bytes in the block. + The actual count in this case + is the absolute value of the count written. + """ + read_items = [] + block_count = await decoder.read_long() + while block_count != 0: + if block_count < 0: + block_count = -block_count + await decoder.read_long() + for _ in range(block_count): + read_items.append(await self.read_data(writer_schema.items, decoder)) + block_count = await decoder.read_long() + return read_items + + async def skip_array(self, writer_schema, decoder): + block_count = await decoder.read_long() + while block_count != 0: + if block_count < 0: + block_size = await decoder.read_long() + await decoder.skip(block_size) + else: + for _ in range(block_count): + await self.skip_data(writer_schema.items, decoder) + block_count = await decoder.read_long() + + async def read_map(self, writer_schema, decoder): + """ + Maps are encoded as a series of blocks. + + Each block consists of a long count value, + followed by that many key/value pairs. + A block with count zero indicates the end of the map. + Each item is encoded per the map's value schema. + + If a block's count is negative, + then the count is followed immediately by a long block size, + indicating the number of bytes in the block. + The actual count in this case + is the absolute value of the count written. + """ + read_items = {} + block_count = await decoder.read_long() + while block_count != 0: + if block_count < 0: + block_count = -block_count + await decoder.read_long() + for _ in range(block_count): + key = await decoder.read_utf8() + read_items[key] = await self.read_data(writer_schema.values, decoder) + block_count = await decoder.read_long() + return read_items + + async def skip_map(self, writer_schema, decoder): + block_count = await decoder.read_long() + while block_count != 0: + if block_count < 0: + block_size = await decoder.read_long() + await decoder.skip(block_size) + else: + for _ in range(block_count): + await decoder.skip_utf8() + await self.skip_data(writer_schema.values, decoder) + block_count = await decoder.read_long() + + async def read_union(self, writer_schema, decoder): + """ + A union is encoded by first writing a long value indicating + the zero-based position within the union of the schema of its value. + The value is then encoded per the indicated schema within the union. + """ + # schema resolution + index_of_schema = int(await decoder.read_long()) + if index_of_schema >= len(writer_schema.schemas): + fail_msg = "Can't access branch index %d for union with %d branches" \ + % (index_of_schema, len(writer_schema.schemas)) + raise SchemaResolutionException(fail_msg, writer_schema) + selected_writer_schema = writer_schema.schemas[index_of_schema] + + # read data + return await self.read_data(selected_writer_schema, decoder) + + async def skip_union(self, writer_schema, decoder): + index_of_schema = int(await decoder.read_long()) + if index_of_schema >= len(writer_schema.schemas): + fail_msg = "Can't access branch index %d for union with %d branches" \ + % (index_of_schema, len(writer_schema.schemas)) + raise SchemaResolutionException(fail_msg, writer_schema) + return await self.skip_data(writer_schema.schemas[index_of_schema], decoder) + + async def read_record(self, writer_schema, decoder): + """ + A record is encoded by encoding the values of its fields + in the order that they are declared. In other words, a record + is encoded as just the concatenation of the encodings of its fields. + Field values are encoded per their schema. + + Schema Resolution: + * the ordering of fields may be different: fields are matched by name. + * schemas for fields with the same name in both records are resolved + recursively. + * if the writer's record contains a field with a name not present in the + reader's record, the writer's value for that field is ignored. + * if the reader's record schema has a field that contains a default value, + and writer's schema does not have a field with the same name, then the + reader should use the default value from its field. + * if the reader's record schema has a field with no default value, and + writer's schema does not have a field with the same name, then the + field's value is unset. + """ + # schema resolution + read_record = {} + for field in writer_schema.fields: + field_val = await self.read_data(field.type, decoder) + read_record[field.name] = field_val + return read_record + + async def skip_record(self, writer_schema, decoder): + for field in writer_schema.fields: + await self.skip_data(field.type, decoder) + + +# ------------------------------------------------------------------------------ + +if __name__ == '__main__': + raise Exception('Not a standalone module') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/datafile.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/datafile.py new file mode 100644 index 00000000000..6e5813ddc52 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/datafile.py @@ -0,0 +1,248 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +"""Read/Write Avro File Object Containers.""" + +import io +import logging +import sys +import zlib + +from ..avro import avro_io +from ..avro import schema + +PY3 = sys.version_info[0] == 3 + +logger = logging.getLogger(__name__) + +# ------------------------------------------------------------------------------ +# Constants + +# Version of the container file: +VERSION = 1 + +if PY3: + MAGIC = b'Obj' + bytes([VERSION]) + MAGIC_SIZE = len(MAGIC) +else: + MAGIC = 'Obj' + chr(VERSION) + MAGIC_SIZE = len(MAGIC) + +# Size of the synchronization marker, in number of bytes: +SYNC_SIZE = 16 + +# Schema of the container header: +META_SCHEMA = schema.parse(""" +{ + "type": "record", "name": "org.apache.avro.file.Header", + "fields": [{ + "name": "magic", + "type": {"type": "fixed", "name": "magic", "size": %(magic_size)d} + }, { + "name": "meta", + "type": {"type": "map", "values": "bytes"} + }, { + "name": "sync", + "type": {"type": "fixed", "name": "sync", "size": %(sync_size)d} + }] +} +""" % { + 'magic_size': MAGIC_SIZE, + 'sync_size': SYNC_SIZE, +}) + +# Codecs supported by container files: +VALID_CODECS = frozenset(['null', 'deflate']) + +# Metadata key associated to the schema: +SCHEMA_KEY = "avro.schema" + + +# ------------------------------------------------------------------------------ +# Exceptions + + +class DataFileException(schema.AvroException): + """Problem reading or writing file object containers.""" + +# ------------------------------------------------------------------------------ + + +class DataFileReader(object): + """Read files written by DataFileWriter.""" + + def __init__(self, reader, datum_reader, **kwargs): + """Initializes a new data file reader. + + Args: + reader: Open file to read from. + datum_reader: Avro datum reader. + """ + self._reader = reader + self._raw_decoder = avro_io.BinaryDecoder(reader) + self._header_reader = kwargs.pop('header_reader', None) + self._header_decoder = None if self._header_reader is None else avro_io.BinaryDecoder(self._header_reader) + self._datum_decoder = None # Maybe reset at every block. + self._datum_reader = datum_reader + + # In case self._reader only has partial content(without header). + # seek(0, 0) to make sure read the (partial)content from beginning. + self._reader.seek(0, 0) + + # read the header: magic, meta, sync + self._read_header() + + # ensure codec is valid + avro_codec_raw = self.get_meta('avro.codec') + if avro_codec_raw is None: + self.codec = "null" + else: + self.codec = avro_codec_raw.decode('utf-8') + if self.codec not in VALID_CODECS: + raise DataFileException('Unknown codec: %s.' % self.codec) + + # get ready to read + self._block_count = 0 + + # header_reader indicates reader only has partial content. The reader doesn't have block header, + # so we read use the block count stored last time. + # Also ChangeFeed only has codec==null, so use _raw_decoder is good. + if self._header_reader is not None: + self._block_count = self._reader.block_count + self._datum_decoder = self._raw_decoder + + self.datum_reader.writer_schema = ( + schema.parse(self.get_meta(SCHEMA_KEY).decode('utf-8'))) + + def __enter__(self): + return self + + def __exit__(self, data_type, value, traceback): + # Perform a close if there's no exception + if data_type is None: + self.close() + + def __iter__(self): + return self + + # read-only properties + @property + def reader(self): + return self._reader + + @property + def raw_decoder(self): + return self._raw_decoder + + @property + def datum_decoder(self): + return self._datum_decoder + + @property + def datum_reader(self): + return self._datum_reader + + @property + def sync_marker(self): + return self._sync_marker + + @property + def meta(self): + return self._meta + + # read/write properties + @property + def block_count(self): + return self._block_count + + def get_meta(self, key): + """Reports the value of a given metadata key. + + Args: + key: Metadata key (string) to report the value of. + Returns: + Value associated to the metadata key, as bytes. + """ + return self._meta.get(key) + + def _read_header(self): + header_reader = self._header_reader if self._header_reader else self._reader + header_decoder = self._header_decoder if self._header_decoder else self._raw_decoder + + # seek to the beginning of the file to get magic block + header_reader.seek(0, 0) + + # read header into a dict + header = self.datum_reader.read_data(META_SCHEMA, header_decoder) + + # check magic number + if header.get('magic') != MAGIC: + fail_msg = "Not an Avro data file: %s doesn't match %s." \ + % (header.get('magic'), MAGIC) + raise schema.AvroException(fail_msg) + + # set metadata + self._meta = header['meta'] + + # set sync marker + self._sync_marker = header['sync'] + + def _read_block_header(self): + self._block_count = self.raw_decoder.read_long() + if self.codec == "null": + # Skip a long; we don't need to use the length. + self.raw_decoder.skip_long() + self._datum_decoder = self._raw_decoder + elif self.codec == 'deflate': + # Compressed data is stored as (length, data), which + # corresponds to how the "bytes" type is encoded. + data = self.raw_decoder.read_bytes() + # -15 is the log of the window size; negative indicates + # "raw" (no zlib headers) decompression. See zlib.h. + uncompressed = zlib.decompress(data, -15) + self._datum_decoder = avro_io.BinaryDecoder(io.BytesIO(uncompressed)) + else: + raise DataFileException("Unknown codec: %r" % self.codec) + + def _skip_sync(self): + """ + Read the length of the sync marker; if it matches the sync marker, + return True. Otherwise, seek back to where we started and return False. + """ + proposed_sync_marker = self.reader.read(SYNC_SIZE) + if SYNC_SIZE > 0 and not proposed_sync_marker: + raise StopIteration + if proposed_sync_marker != self.sync_marker: + self.reader.seek(-SYNC_SIZE, 1) + + def __next__(self): + """Return the next datum in the file.""" + if self.block_count == 0: + self._skip_sync() + self._read_block_header() + + datum = self.datum_reader.read(self.datum_decoder) + self._block_count -= 1 + + # event_position and block_count are to support reading from current position in the future read, + # no need to downloading from the beginning of avro file with these two attr. + if hasattr(self._reader, 'event_position'): + self.reader.block_count = self.block_count + self.reader.track_event_position() + + return datum + + # PY2 + def next(self): + return self.__next__() + + def close(self): + """Close this reader.""" + self.reader.close() + + +if __name__ == '__main__': + raise Exception('Not a standalone module') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/datafile_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/datafile_async.py new file mode 100644 index 00000000000..1a7324d56b3 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/datafile_async.py @@ -0,0 +1,198 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +"""Read/Write Avro File Object Containers.""" + +import logging +import sys + +from ..avro import avro_io_async +from ..avro import schema +from .datafile import DataFileException +from .datafile import MAGIC, SYNC_SIZE, META_SCHEMA, SCHEMA_KEY + + +PY3 = sys.version_info[0] == 3 + +logger = logging.getLogger(__name__) + +# ------------------------------------------------------------------------------ +# Constants + +# Codecs supported by container files: +VALID_CODECS = frozenset(['null']) + + +class AsyncDataFileReader(object): + """Read files written by DataFileWriter.""" + + def __init__(self, reader, datum_reader, **kwargs): + """Initializes a new data file reader. + + Args: + reader: Open file to read from. + datum_reader: Avro datum reader. + """ + self._reader = reader + self._raw_decoder = avro_io_async.AsyncBinaryDecoder(reader) + self._header_reader = kwargs.pop('header_reader', None) + self._header_decoder = None if self._header_reader is None else \ + avro_io_async.AsyncBinaryDecoder(self._header_reader) + self._datum_decoder = None # Maybe reset at every block. + self._datum_reader = datum_reader + self.codec = "null" + self._block_count = 0 + self._meta = None + self._sync_marker = None + + async def init(self): + # In case self._reader only has partial content(without header). + # seek(0, 0) to make sure read the (partial)content from beginning. + await self._reader.seek(0, 0) + + # read the header: magic, meta, sync + await self._read_header() + + # ensure codec is valid + avro_codec_raw = self.get_meta('avro.codec') + if avro_codec_raw is None: + self.codec = "null" + else: + self.codec = avro_codec_raw.decode('utf-8') + if self.codec not in VALID_CODECS: + raise DataFileException('Unknown codec: %s.' % self.codec) + + # get ready to read + self._block_count = 0 + + # header_reader indicates reader only has partial content. The reader doesn't have block header, + # so we read use the block count stored last time. + # Also ChangeFeed only has codec==null, so use _raw_decoder is good. + if self._header_reader is not None: + self._block_count = self._reader.block_count + self._datum_decoder = self._raw_decoder + + self.datum_reader.writer_schema = ( + schema.parse(self.get_meta(SCHEMA_KEY).decode('utf-8'))) + return self + + async def __aenter__(self): + return self + + async def __aexit__(self, data_type, value, traceback): + # Perform a close if there's no exception + if data_type is None: + self.close() + + def __aiter__(self): + return self + + # read-only properties + @property + def reader(self): + return self._reader + + @property + def raw_decoder(self): + return self._raw_decoder + + @property + def datum_decoder(self): + return self._datum_decoder + + @property + def datum_reader(self): + return self._datum_reader + + @property + def sync_marker(self): + return self._sync_marker + + @property + def meta(self): + return self._meta + + # read/write properties + @property + def block_count(self): + return self._block_count + + def get_meta(self, key): + """Reports the value of a given metadata key. + + Args: + key: Metadata key (string) to report the value of. + Returns: + Value associated to the metadata key, as bytes. + """ + return self._meta.get(key) + + async def _read_header(self): + header_reader = self._header_reader if self._header_reader else self._reader + header_decoder = self._header_decoder if self._header_decoder else self._raw_decoder + + # seek to the beginning of the file to get magic block + await header_reader.seek(0, 0) + + # read header into a dict + header = await self.datum_reader.read_data(META_SCHEMA, header_decoder) + + # check magic number + if header.get('magic') != MAGIC: + fail_msg = "Not an Avro data file: %s doesn't match %s." \ + % (header.get('magic'), MAGIC) + raise schema.AvroException(fail_msg) + + # set metadata + self._meta = header['meta'] + + # set sync marker + self._sync_marker = header['sync'] + + async def _read_block_header(self): + self._block_count = await self.raw_decoder.read_long() + if self.codec == "null": + # Skip a long; we don't need to use the length. + await self.raw_decoder.skip_long() + self._datum_decoder = self._raw_decoder + else: + raise DataFileException("Unknown codec: %r" % self.codec) + + async def _skip_sync(self): + """ + Read the length of the sync marker; if it matches the sync marker, + return True. Otherwise, seek back to where we started and return False. + """ + proposed_sync_marker = await self.reader.read(SYNC_SIZE) + if SYNC_SIZE > 0 and not proposed_sync_marker: + raise StopAsyncIteration + if proposed_sync_marker != self.sync_marker: + await self.reader.seek(-SYNC_SIZE, 1) + + async def __anext__(self): + """Return the next datum in the file.""" + if self.block_count == 0: + await self._skip_sync() + await self._read_block_header() + + datum = await self.datum_reader.read(self.datum_decoder) + self._block_count -= 1 + + # event_position and block_count are to support reading from current position in the future read, + # no need to downloading from the beginning of avro file with these two attr. + if hasattr(self._reader, 'event_position'): + self.reader.block_count = self.block_count + await self.reader.track_event_position() + + return datum + + def close(self): + """Close this reader.""" + self.reader.close() + + +if __name__ == '__main__': + raise Exception('Not a standalone module') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/schema.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/schema.py new file mode 100644 index 00000000000..ffe28530167 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/avro/schema.py @@ -0,0 +1,1221 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines + +"""Representation of Avro schemas. + +A schema may be one of: + - A record, mapping field names to field value data; + - An error, equivalent to a record; + - An enum, containing one of a small set of symbols; + - An array of values, all of the same schema; + - A map containing string/value pairs, each of a declared schema; + - A union of other schemas; + - A fixed sized binary object; + - A unicode string; + - A sequence of bytes; + - A 32-bit signed int; + - A 64-bit signed long; + - A 32-bit floating-point float; + - A 64-bit floating-point double; + - A boolean; + - Null. +""" + +import abc +import json +import logging +import re +import sys +from six import with_metaclass + +PY2 = sys.version_info[0] == 2 + +if PY2: + _str = unicode # pylint: disable=undefined-variable +else: + _str = str + +logger = logging.getLogger(__name__) + +# ------------------------------------------------------------------------------ +# Constants + +# Log level more verbose than DEBUG=10, INFO=20, etc. +DEBUG_VERBOSE = 5 + +NULL = 'null' +BOOLEAN = 'boolean' +STRING = 'string' +BYTES = 'bytes' +INT = 'int' +LONG = 'long' +FLOAT = 'float' +DOUBLE = 'double' +FIXED = 'fixed' +ENUM = 'enum' +RECORD = 'record' +ERROR = 'error' +ARRAY = 'array' +MAP = 'map' +UNION = 'union' + +# Request and error unions are part of Avro protocols: +REQUEST = 'request' +ERROR_UNION = 'error_union' + +PRIMITIVE_TYPES = frozenset([ + NULL, + BOOLEAN, + STRING, + BYTES, + INT, + LONG, + FLOAT, + DOUBLE, +]) + +NAMED_TYPES = frozenset([ + FIXED, + ENUM, + RECORD, + ERROR, +]) + +VALID_TYPES = frozenset.union( + PRIMITIVE_TYPES, + NAMED_TYPES, + [ + ARRAY, + MAP, + UNION, + REQUEST, + ERROR_UNION, + ], +) + +SCHEMA_RESERVED_PROPS = frozenset([ + 'type', + 'name', + 'namespace', + 'fields', # Record + 'items', # Array + 'size', # Fixed + 'symbols', # Enum + 'values', # Map + 'doc', +]) + +FIELD_RESERVED_PROPS = frozenset([ + 'default', + 'name', + 'doc', + 'order', + 'type', +]) + +VALID_FIELD_SORT_ORDERS = frozenset([ + 'ascending', + 'descending', + 'ignore', +]) + + +# ------------------------------------------------------------------------------ +# Exceptions + + +class Error(Exception): + """Base class for errors in this module.""" + + +class AvroException(Error): + """Generic Avro schema error.""" + + +class SchemaParseException(AvroException): + """Error while parsing a JSON schema descriptor.""" + + +class Schema(with_metaclass(abc.ABCMeta, object)): + """Abstract base class for all Schema classes.""" + + def __init__(self, data_type, other_props=None): + """Initializes a new schema object. + + Args: + data_type: Type of the schema to initialize. + other_props: Optional dictionary of additional properties. + """ + if data_type not in VALID_TYPES: + raise SchemaParseException('%r is not a valid Avro type.' % data_type) + + # All properties of this schema, as a map: property name -> property value + self._props = {} + + self._props['type'] = data_type + self._type = data_type + + if other_props: + self._props.update(other_props) + + @property + def namespace(self): + """Returns: the namespace this schema belongs to, if any, or None.""" + return self._props.get('namespace', None) + + @property + def type(self): + """Returns: the type of this schema.""" + return self._type + + @property + def doc(self): + """Returns: the documentation associated to this schema, if any, or None.""" + return self._props.get('doc', None) + + @property + def props(self): + """Reports all the properties of this schema. + + Includes all properties, reserved and non reserved. + JSON properties of this schema are directly generated from this dict. + + Returns: + A dictionary of properties associated to this schema. + """ + return self._props + + @property + def other_props(self): + """Returns: the dictionary of non-reserved properties.""" + return dict(filter_keys_out(items=self._props, keys=SCHEMA_RESERVED_PROPS)) + + def __str__(self): + """Returns: the JSON representation of this schema.""" + return json.dumps(self.to_json(names=None)) + + @abc.abstractmethod + def to_json(self, names): + """Converts the schema object into its AVRO specification representation. + + Schema types that have names (records, enums, and fixed) must + be aware of not re-defining schemas that are already listed + in the parameter names. + """ + raise Exception('Cannot run abstract method.') + + +# ------------------------------------------------------------------------------ + + +_RE_NAME = re.compile(r'[A-Za-z_][A-Za-z0-9_]*') + +_RE_FULL_NAME = re.compile( + r'^' + r'[.]?(?:[A-Za-z_][A-Za-z0-9_]*[.])*' # optional namespace + r'([A-Za-z_][A-Za-z0-9_]*)' # name + r'$' +) + + +class Name(object): + """Representation of an Avro name.""" + + def __init__(self, name, namespace=None): + """Parses an Avro name. + + Args: + name: Avro name to parse (relative or absolute). + namespace: Optional explicit namespace if the name is relative. + """ + # Normalize: namespace is always defined as a string, possibly empty. + if namespace is None: + namespace = '' + + if '.' in name: + # name is absolute, namespace is ignored: + self._fullname = name + + match = _RE_FULL_NAME.match(self._fullname) + if match is None: + raise SchemaParseException( + 'Invalid absolute schema name: %r.' % self._fullname) + + self._name = match.group(1) + self._namespace = self._fullname[:-(len(self._name) + 1)] + + else: + # name is relative, combine with explicit namespace: + self._name = name + self._namespace = namespace + self._fullname = (self._name + if (not self._namespace) else + '%s.%s' % (self._namespace, self._name)) + + # Validate the fullname: + if _RE_FULL_NAME.match(self._fullname) is None: + raise SchemaParseException( + 'Invalid schema name %r infered from name %r and namespace %r.' + % (self._fullname, self._name, self._namespace)) + + def __eq__(self, other): + if not isinstance(other, Name): + return NotImplemented + return self.fullname == other.fullname + + @property + def simple_name(self): + """Returns: the simple name part of this name.""" + return self._name + + @property + def namespace(self): + """Returns: this name's namespace, possible the empty string.""" + return self._namespace + + @property + def fullname(self): + """Returns: the full name.""" + return self._fullname + + +# ------------------------------------------------------------------------------ + + +class Names(object): + """Tracks Avro named schemas and default namespace during parsing.""" + + def __init__(self, default_namespace=None, names=None): + """Initializes a new name tracker. + + Args: + default_namespace: Optional default namespace. + names: Optional initial mapping of known named schemas. + """ + if names is None: + names = {} + self._names = names + self._default_namespace = default_namespace + + @property + def names(self): + """Returns: the mapping of known named schemas.""" + return self._names + + @property + def default_namespace(self): + """Returns: the default namespace, if any, or None.""" + return self._default_namespace + + def new_with_default_namespace(self, namespace): + """Creates a new name tracker from this tracker, but with a new default ns. + + Args: + namespace: New default namespace to use. + Returns: + New name tracker with the specified default namespace. + """ + return Names(names=self._names, default_namespace=namespace) + + def get_name(self, name, namespace=None): + """Resolves the Avro name according to this name tracker's state. + + Args: + name: Name to resolve (absolute or relative). + namespace: Optional explicit namespace. + Returns: + The specified name, resolved according to this tracker. + """ + if namespace is None: + namespace = self._default_namespace + return Name(name=name, namespace=namespace) + + def get_schema(self, name, namespace=None): + """Resolves an Avro schema by name. + + Args: + name: Name (relative or absolute) of the Avro schema to look up. + namespace: Optional explicit namespace. + Returns: + The schema with the specified name, if any, or None. + """ + avro_name = self.get_name(name=name, namespace=namespace) + return self._names.get(avro_name.fullname, None) + + def prune_namespace(self, properties): + """given a properties, return properties with namespace removed if + it matches the own default namespace + """ + if self.default_namespace is None: + # I have no default -- no change + return properties + if 'namespace' not in properties: + # he has no namespace - no change + return properties + if properties['namespace'] != self.default_namespace: + # we're different - leave his stuff alone + return properties + # we each have a namespace and it's redundant. delete his. + prunable = properties.copy() + del prunable['namespace'] + return prunable + + def register(self, schema): + """Registers a new named schema in this tracker. + + Args: + schema: Named Avro schema to register in this tracker. + """ + if schema.fullname in VALID_TYPES: + raise SchemaParseException( + '%s is a reserved type name.' % schema.fullname) + if schema.fullname in self.names: + raise SchemaParseException( + 'Avro name %r already exists.' % schema.fullname) + + logger.log(DEBUG_VERBOSE, 'Register new name for %r', schema.fullname) + self._names[schema.fullname] = schema + + +# ------------------------------------------------------------------------------ + + +class NamedSchema(Schema): + """Abstract base class for named schemas. + + Named schemas are enumerated in NAMED_TYPES. + """ + + def __init__( + self, + data_type, + name=None, + namespace=None, + names=None, + other_props=None, + ): + """Initializes a new named schema object. + + Args: + data_type: Type of the named schema. + name: Name (absolute or relative) of the schema. + namespace: Optional explicit namespace if name is relative. + names: Tracker to resolve and register Avro names. + other_props: Optional map of additional properties of the schema. + """ + assert (data_type in NAMED_TYPES), ('Invalid named type: %r' % data_type) + self._avro_name = names.get_name(name=name, namespace=namespace) + + super(NamedSchema, self).__init__(data_type, other_props) + + names.register(self) + + self._props['name'] = self.name + if self.namespace: + self._props['namespace'] = self.namespace + + @property + def avro_name(self): + """Returns: the Name object describing this schema's name.""" + return self._avro_name + + @property + def name(self): + return self._avro_name.simple_name + + @property + def namespace(self): + return self._avro_name.namespace + + @property + def fullname(self): + return self._avro_name.fullname + + def name_ref(self, names): + """Reports this schema name relative to the specified name tracker. + + Args: + names: Avro name tracker to relativise this schema name against. + Returns: + This schema name, relativised against the specified name tracker. + """ + if self.namespace == names.default_namespace: + return self.name + return self.fullname + + @abc.abstractmethod + def to_json(self, names): + """Converts the schema object into its AVRO specification representation. + + Schema types that have names (records, enums, and fixed) must + be aware of not re-defining schemas that are already listed + in the parameter names. + """ + raise Exception('Cannot run abstract method.') + +# ------------------------------------------------------------------------------ + + +_NO_DEFAULT = object() + + +class Field(object): + """Representation of the schema of a field in a record.""" + + def __init__( + self, + data_type, + name, + index, + has_default, + default=_NO_DEFAULT, + order=None, + doc=None, + other_props=None + ): + """Initializes a new Field object. + + Args: + data_type: Avro schema of the field. + name: Name of the field. + index: 0-based position of the field. + has_default: + default: + order: + doc: + other_props: + """ + if (not isinstance(name, _str)) or (not name): + raise SchemaParseException('Invalid record field name: %r.' % name) + if (order is not None) and (order not in VALID_FIELD_SORT_ORDERS): + raise SchemaParseException('Invalid record field order: %r.' % order) + + # All properties of this record field: + self._props = {} + + self._has_default = has_default + if other_props: + self._props.update(other_props) + + self._index = index + self._type = self._props['type'] = data_type + self._name = self._props['name'] = name + + if has_default: + self._props['default'] = default + + if order is not None: + self._props['order'] = order + + if doc is not None: + self._props['doc'] = doc + + @property + def type(self): + """Returns: the schema of this field.""" + return self._type + + @property + def name(self): + """Returns: this field name.""" + return self._name + + @property + def index(self): + """Returns: the 0-based index of this field in the record.""" + return self._index + + @property + def default(self): + return self._props['default'] + + @property + def has_default(self): + return self._has_default + + @property + def order(self): + return self._props.get('order', None) + + @property + def doc(self): + return self._props.get('doc', None) + + @property + def props(self): + return self._props + + @property + def other_props(self): + return filter_keys_out(items=self._props, keys=FIELD_RESERVED_PROPS) + + def __str__(self): + return json.dumps(self.to_json()) + + def to_json(self, names=None): + if names is None: + names = Names() + to_dump = self.props.copy() + to_dump['type'] = self.type.to_json(names) + return to_dump + + def __eq__(self, that): + to_cmp = json.loads(_str(self)) + return to_cmp == json.loads(_str(that)) + + +# ------------------------------------------------------------------------------ +# Primitive Types + + +class PrimitiveSchema(Schema): + """Schema of a primitive Avro type. + + Valid primitive types are defined in PRIMITIVE_TYPES. + """ + + def __init__(self, data_type, other_props=None): + """Initializes a new schema object for the specified primitive type. + + Args: + data_type: Type of the schema to construct. Must be primitive. + """ + if data_type not in PRIMITIVE_TYPES: + raise AvroException('%r is not a valid primitive type.' % data_type) + super(PrimitiveSchema, self).__init__(data_type, other_props=other_props) + + @property + def name(self): + """Returns: the simple name of this schema.""" + # The name of a primitive type is the type itself. + return self.type + + @property + def fullname(self): + """Returns: the fully qualified name of this schema.""" + # The full name is the simple name for primitive schema. + return self.name + + def to_json(self, names=None): + if len(self.props) == 1: + return self.fullname + return self.props + + def __eq__(self, that): + return self.props == that.props + + +# ------------------------------------------------------------------------------ +# Complex Types (non-recursive) + + +class FixedSchema(NamedSchema): + def __init__( + self, + name, + namespace, + size, + names=None, + other_props=None, + ): + # Ensure valid ctor args + if not isinstance(size, int): + fail_msg = 'Fixed Schema requires a valid integer for size property.' + raise AvroException(fail_msg) + + super(FixedSchema, self).__init__( + data_type=FIXED, + name=name, + namespace=namespace, + names=names, + other_props=other_props, + ) + self._props['size'] = size + + @property + def size(self): + """Returns: the size of this fixed schema, in bytes.""" + return self._props['size'] + + def to_json(self, names=None): + if names is None: + names = Names() + if self.fullname in names.names: + return self.name_ref(names) + names.names[self.fullname] = self + return names.prune_namespace(self.props) + + def __eq__(self, that): + return self.props == that.props + + +# ------------------------------------------------------------------------------ + + +class EnumSchema(NamedSchema): + def __init__( + self, + name, + namespace, + symbols, + names=None, + doc=None, + other_props=None, + ): + """Initializes a new enumeration schema object. + + Args: + name: Simple name of this enumeration. + namespace: Optional namespace. + symbols: Ordered list of symbols defined in this enumeration. + names: + doc: + other_props: + """ + symbols = tuple(symbols) + symbol_set = frozenset(symbols) + if (len(symbol_set) != len(symbols) + or not all(map(lambda symbol: isinstance(symbol, _str), symbols))): + raise AvroException( + 'Invalid symbols for enum schema: %r.' % (symbols,)) + + super(EnumSchema, self).__init__( + data_type=ENUM, + name=name, + namespace=namespace, + names=names, + other_props=other_props, + ) + + self._props['symbols'] = symbols + if doc is not None: + self._props['doc'] = doc + + @property + def symbols(self): + """Returns: the symbols defined in this enum.""" + return self._props['symbols'] + + def to_json(self, names=None): + if names is None: + names = Names() + if self.fullname in names.names: + return self.name_ref(names) + names.names[self.fullname] = self + return names.prune_namespace(self.props) + + def __eq__(self, that): + return self.props == that.props + + +# ------------------------------------------------------------------------------ +# Complex Types (recursive) + + +class ArraySchema(Schema): + """Schema of an array.""" + + def __init__(self, items, other_props=None): + """Initializes a new array schema object. + + Args: + items: Avro schema of the array items. + other_props: + """ + super(ArraySchema, self).__init__( + data_type=ARRAY, + other_props=other_props, + ) + self._items_schema = items + self._props['items'] = items + + @property + def items(self): + """Returns: the schema of the items in this array.""" + return self._items_schema + + def to_json(self, names=None): + if names is None: + names = Names() + to_dump = self.props.copy() + item_schema = self.items + to_dump['items'] = item_schema.to_json(names) + return to_dump + + def __eq__(self, that): + to_cmp = json.loads(_str(self)) + return to_cmp == json.loads(_str(that)) + + +# ------------------------------------------------------------------------------ + + +class MapSchema(Schema): + """Schema of a map.""" + + def __init__(self, values, other_props=None): + """Initializes a new map schema object. + + Args: + values: Avro schema of the map values. + other_props: + """ + super(MapSchema, self).__init__( + data_type=MAP, + other_props=other_props, + ) + self._values_schema = values + self._props['values'] = values + + @property + def values(self): + """Returns: the schema of the values in this map.""" + return self._values_schema + + def to_json(self, names=None): + if names is None: + names = Names() + to_dump = self.props.copy() + to_dump['values'] = self.values.to_json(names) + return to_dump + + def __eq__(self, that): + to_cmp = json.loads(_str(self)) + return to_cmp == json.loads(_str(that)) + + +# ------------------------------------------------------------------------------ + + +class UnionSchema(Schema): + """Schema of a union.""" + + def __init__(self, schemas): + """Initializes a new union schema object. + + Args: + schemas: Ordered collection of schema branches in the union. + """ + super(UnionSchema, self).__init__(data_type=UNION) + self._schemas = tuple(schemas) + + # Validate the schema branches: + + # All named schema names are unique: + named_branches = tuple( + filter(lambda schema: schema.type in NAMED_TYPES, self._schemas)) + unique_names = frozenset(map(lambda schema: schema.fullname, named_branches)) + if len(unique_names) != len(named_branches): + raise AvroException( + 'Invalid union branches with duplicate schema name:%s' + % ''.join(map(lambda schema: ('\n\t - %s' % schema), self._schemas))) + + # Types are unique within unnamed schemas, and union is not allowed: + unnamed_branches = tuple( + filter(lambda schema: schema.type not in NAMED_TYPES, self._schemas)) + unique_types = frozenset(map(lambda schema: schema.type, unnamed_branches)) + if UNION in unique_types: + raise AvroException( + 'Invalid union branches contain other unions:%s' + % ''.join(map(lambda schema: ('\n\t - %s' % schema), self._schemas))) + if len(unique_types) != len(unnamed_branches): + raise AvroException( + 'Invalid union branches with duplicate type:%s' + % ''.join(map(lambda schema: ('\n\t - %s' % schema), self._schemas))) + + @property + def schemas(self): + """Returns: the ordered list of schema branches in the union.""" + return self._schemas + + def to_json(self, names=None): + if names is None: + names = Names() + to_dump = [] + for schema in self.schemas: + to_dump.append(schema.to_json(names)) + return to_dump + + def __eq__(self, that): + to_cmp = json.loads(_str(self)) + return to_cmp == json.loads(_str(that)) + + +# ------------------------------------------------------------------------------ + + +class ErrorUnionSchema(UnionSchema): + """Schema representing the declared errors of a protocol message.""" + + def __init__(self, schemas): + """Initializes an error-union schema. + + Args: + schema: collection of error schema. + """ + # Prepend "string" to handle system errors + schemas = [PrimitiveSchema(data_type=STRING)] + list(schemas) + super(ErrorUnionSchema, self).__init__(schemas=schemas) + + def to_json(self, names=None): + if names is None: + names = Names() + to_dump = [] + for schema in self.schemas: + # Don't print the system error schema + if schema.type == STRING: + continue + to_dump.append(schema.to_json(names)) + return to_dump + + +# ------------------------------------------------------------------------------ + + +class RecordSchema(NamedSchema): + """Schema of a record.""" + + @staticmethod + def _make_field(index, field_desc, names): + """Builds field schemas from a list of field JSON descriptors. + + Args: + index: 0-based index of the field in the record. + field_desc: JSON descriptors of a record field. + Return: + The field schema. + """ + field_schema = schema_from_json_data( + json_data=field_desc['type'], + names=names, + ) + other_props = ( + dict(filter_keys_out(items=field_desc, keys=FIELD_RESERVED_PROPS))) + return Field( + data_type=field_schema, + name=field_desc['name'], + index=index, + has_default=('default' in field_desc), + default=field_desc.get('default', _NO_DEFAULT), + order=field_desc.get('order', None), + doc=field_desc.get('doc', None), + other_props=other_props, + ) + + @staticmethod + def make_field_list(field_desc_list, names): + """Builds field schemas from a list of field JSON descriptors. + + Guarantees field name unicity. + + Args: + field_desc_list: collection of field JSON descriptors. + names: Avro schema tracker. + Yields + Field schemas. + """ + for index, field_desc in enumerate(field_desc_list): + yield RecordSchema._make_field(index, field_desc, names) + + @staticmethod + def _make_field_map(fields): + """Builds the field map. + + Guarantees field name unicity. + + Args: + fields: iterable of field schema. + Returns: + A map of field schemas, indexed by name. + """ + field_map = {} + for field in fields: + if field.name in field_map: + raise SchemaParseException( + 'Duplicate record field name %r.' % field.name) + field_map[field.name] = field + return field_map + + def __init__( + self, + name, + namespace, + fields=None, + make_fields=None, + names=None, + record_type=RECORD, + doc=None, + other_props=None + ): + """Initializes a new record schema object. + + Args: + name: Name of the record (absolute or relative). + namespace: Optional namespace the record belongs to, if name is relative. + fields: collection of fields to add to this record. + Exactly one of fields or make_fields must be specified. + make_fields: function creating the fields that belong to the record. + The function signature is: make_fields(names) -> ordered field list. + Exactly one of fields or make_fields must be specified. + names: + record_type: Type of the record: one of RECORD, ERROR or REQUEST. + Protocol requests are not named. + doc: + other_props: + """ + if record_type == REQUEST: + # Protocol requests are not named: + super(RecordSchema, self).__init__( + data_type=REQUEST, + other_props=other_props, + ) + elif record_type in [RECORD, ERROR]: + # Register this record name in the tracker: + super(RecordSchema, self).__init__( + data_type=record_type, + name=name, + namespace=namespace, + names=names, + other_props=other_props, + ) + else: + raise SchemaParseException( + 'Invalid record type: %r.' % record_type) + + if record_type in [RECORD, ERROR]: + avro_name = names.get_name(name=name, namespace=namespace) + nested_names = names.new_with_default_namespace(namespace=avro_name.namespace) + elif record_type == REQUEST: + # Protocol request has no name: no need to change default namespace: + nested_names = names + + if fields is None: + fields = make_fields(names=nested_names) + else: + assert make_fields is None + self._fields = tuple(fields) + + self._field_map = RecordSchema._make_field_map(self._fields) + + self._props['fields'] = fields + if doc is not None: + self._props['doc'] = doc + + @property + def fields(self): + """Returns: the field schemas, as an ordered tuple.""" + return self._fields + + @property + def field_map(self): + """Returns: a read-only map of the field schemas index by field names.""" + return self._field_map + + def to_json(self, names=None): + if names is None: + names = Names() + # Request records don't have names + if self.type == REQUEST: + return [f.to_json(names) for f in self.fields] + + if self.fullname in names.names: + return self.name_ref(names) + names.names[self.fullname] = self + + to_dump = names.prune_namespace(self.props.copy()) + to_dump['fields'] = [f.to_json(names) for f in self.fields] + return to_dump + + def __eq__(self, that): + to_cmp = json.loads(_str(self)) + return to_cmp == json.loads(_str(that)) + + +# ------------------------------------------------------------------------------ +# Module functions + + +def filter_keys_out(items, keys): + """Filters a collection of (key, value) items. + + Exclude any item whose key belongs to keys. + + Args: + items: Dictionary of items to filter the keys out of. + keys: Keys to filter out. + Yields: + Filtered items. + """ + for key, value in items.items(): + if key in keys: + continue + yield key, value + + +# ------------------------------------------------------------------------------ + + +def _schema_from_json_string(json_string, names): + if json_string in PRIMITIVE_TYPES: + return PrimitiveSchema(data_type=json_string) + + # Look for a known named schema: + schema = names.get_schema(name=json_string) + if schema is None: + raise SchemaParseException( + 'Unknown named schema %r, known names: %r.' + % (json_string, sorted(names.names))) + return schema + + +def _schema_from_json_array(json_array, names): + def MakeSchema(desc): + return schema_from_json_data(json_data=desc, names=names) + + return UnionSchema(map(MakeSchema, json_array)) + + +def _schema_from_json_object(json_object, names): + data_type = json_object.get('type') + if data_type is None: + raise SchemaParseException( + 'Avro schema JSON descriptor has no "type" property: %r' % json_object) + + other_props = dict( + filter_keys_out(items=json_object, keys=SCHEMA_RESERVED_PROPS)) + + if data_type in PRIMITIVE_TYPES: + # FIXME should not ignore other properties + result = PrimitiveSchema(data_type, other_props=other_props) + + elif data_type in NAMED_TYPES: + name = json_object.get('name') + namespace = json_object.get('namespace', names.default_namespace) + if data_type == FIXED: + size = json_object.get('size') + result = FixedSchema(name, namespace, size, names, other_props) + elif data_type == ENUM: + symbols = json_object.get('symbols') + doc = json_object.get('doc') + result = EnumSchema(name, namespace, symbols, names, doc, other_props) + + elif data_type in [RECORD, ERROR]: + field_desc_list = json_object.get('fields', ()) + + def MakeFields(names): + return tuple(RecordSchema.make_field_list(field_desc_list, names)) + + result = RecordSchema( + name=name, + namespace=namespace, + make_fields=MakeFields, + names=names, + record_type=data_type, + doc=json_object.get('doc'), + other_props=other_props, + ) + else: + raise Exception('Internal error: unknown type %r.' % data_type) + + elif data_type in VALID_TYPES: + # Unnamed, non-primitive Avro type: + + if data_type == ARRAY: + items_desc = json_object.get('items') + if items_desc is None: + raise SchemaParseException( + 'Invalid array schema descriptor with no "items" : %r.' + % json_object) + result = ArraySchema( + items=schema_from_json_data(items_desc, names), + other_props=other_props, + ) + + elif data_type == MAP: + values_desc = json_object.get('values') + if values_desc is None: + raise SchemaParseException( + 'Invalid map schema descriptor with no "values" : %r.' + % json_object) + result = MapSchema( + values=schema_from_json_data(values_desc, names=names), + other_props=other_props, + ) + + elif data_type == ERROR_UNION: + error_desc_list = json_object.get('declared_errors') + assert error_desc_list is not None + error_schemas = map( + lambda desc: schema_from_json_data(desc, names=names), + error_desc_list) + result = ErrorUnionSchema(schemas=error_schemas) + + else: + raise Exception('Internal error: unknown type %r.' % data_type) + else: + raise SchemaParseException( + 'Invalid JSON descriptor for an Avro schema: %r' % json_object) + return result + + +# Parsers for the JSON data types: +_JSONDataParserTypeMap = { + _str: _schema_from_json_string, + list: _schema_from_json_array, + dict: _schema_from_json_object, +} + + +def schema_from_json_data(json_data, names=None): + """Builds an Avro Schema from its JSON descriptor. + + Args: + json_data: JSON data representing the descriptor of the Avro schema. + names: Optional tracker for Avro named schemas. + Returns: + The Avro schema parsed from the JSON descriptor. + Raises: + SchemaParseException: if the descriptor is invalid. + """ + if names is None: + names = Names() + + # Select the appropriate parser based on the JSON data type: + parser = _JSONDataParserTypeMap.get(type(json_data)) + if parser is None: + raise SchemaParseException( + 'Invalid JSON descriptor for an Avro schema: %r.' % json_data) + return parser(json_data, names=names) + + +# ------------------------------------------------------------------------------ + + +def parse(json_string): + """Constructs a Schema from its JSON descriptor in text form. + + Args: + json_string: String representation of the JSON descriptor of the schema. + Returns: + The parsed schema. + Raises: + SchemaParseException: on JSON parsing error, + or if the JSON descriptor is invalid. + """ + try: + json_data = json.loads(json_string) + except Exception as exn: + raise SchemaParseException( + 'Error parsing schema from JSON: %r. ' + 'Error message: %r.' + % (json_string, exn)) + + # Initialize the names object + names = Names() + + # construct the Avro Schema object + return schema_from_json_data(json_data, names) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/base_client.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/base_client.py new file mode 100644 index 00000000000..361931ae165 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/base_client.py @@ -0,0 +1,443 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import ( # pylint: disable=unused-import + Union, + Optional, + Any, + Iterable, + Dict, + List, + Type, + Tuple, + TYPE_CHECKING, +) +import logging + +try: + from urllib.parse import parse_qs, quote +except ImportError: + from urlparse import parse_qs # type: ignore + from urllib2 import quote # type: ignore + +import six + +from azure.core.configuration import Configuration +from azure.core.exceptions import HttpResponseError +from azure.core.pipeline import Pipeline +from azure.core.pipeline.transport import RequestsTransport, HttpTransport +from azure.core.pipeline.policies import ( + RedirectPolicy, + ContentDecodePolicy, + BearerTokenCredentialPolicy, + ProxyPolicy, + DistributedTracingPolicy, + HttpLoggingPolicy, + UserAgentPolicy +) + +from .constants import STORAGE_OAUTH_SCOPE, SERVICE_HOST_BASE, CONNECTION_TIMEOUT, READ_TIMEOUT +from .models import LocationMode +from .authentication import SharedKeyCredentialPolicy +from .shared_access_signature import QueryStringConstants +from .policies import ( + StorageHeadersPolicy, + StorageContentValidation, + StorageRequestHook, + StorageResponseHook, + StorageLoggingPolicy, + StorageHosts, + QueueMessagePolicy, + ExponentialRetry, +) +from .._version import VERSION +from .._generated.models import StorageErrorException +from .response_handlers import process_storage_error, PartialBatchErrorException + + +_LOGGER = logging.getLogger(__name__) +_SERVICE_PARAMS = { + "blob": {"primary": "BlobEndpoint", "secondary": "BlobSecondaryEndpoint"}, + "queue": {"primary": "QueueEndpoint", "secondary": "QueueSecondaryEndpoint"}, + "file": {"primary": "FileEndpoint", "secondary": "FileSecondaryEndpoint"}, + "dfs": {"primary": "BlobEndpoint", "secondary": "BlobEndpoint"}, +} + + +class StorageAccountHostsMixin(object): # pylint: disable=too-many-instance-attributes + def __init__( + self, + parsed_url, # type: Any + service, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + self._location_mode = kwargs.get("_location_mode", LocationMode.PRIMARY) + self._hosts = kwargs.get("_hosts") + self.scheme = parsed_url.scheme + + if service not in ["blob", "queue", "file-share", "dfs"]: + raise ValueError("Invalid service: {}".format(service)) + service_name = service.split('-')[0] + account = parsed_url.netloc.split(".{}.core.".format(service_name)) + + self.account_name = account[0] if len(account) > 1 else None + if not self.account_name and parsed_url.netloc.startswith("localhost") \ + or parsed_url.netloc.startswith("127.0.0.1"): + self.account_name = parsed_url.path.strip("/") + + self.credential = _format_shared_key_credential(self.account_name, credential) + if self.scheme.lower() != "https" and hasattr(self.credential, "get_token"): + raise ValueError("Token credential is only supported with HTTPS.") + + secondary_hostname = None + if hasattr(self.credential, "account_name"): + self.account_name = self.credential.account_name + secondary_hostname = "{}-secondary.{}.{}".format( + self.credential.account_name, service_name, SERVICE_HOST_BASE) + + if not self._hosts: + if len(account) > 1: + secondary_hostname = parsed_url.netloc.replace(account[0], account[0] + "-secondary") + if kwargs.get("secondary_hostname"): + secondary_hostname = kwargs["secondary_hostname"] + primary_hostname = (parsed_url.netloc + parsed_url.path).rstrip('/') + self._hosts = {LocationMode.PRIMARY: primary_hostname, LocationMode.SECONDARY: secondary_hostname} + + self.require_encryption = kwargs.get("require_encryption", False) + self.key_encryption_key = kwargs.get("key_encryption_key") + self.key_resolver_function = kwargs.get("key_resolver_function") + self._config, self._pipeline = self._create_pipeline(self.credential, storage_sdk=service, **kwargs) + + def __enter__(self): + self._client.__enter__() + return self + + def __exit__(self, *args): + self._client.__exit__(*args) + + def close(self): + """ This method is to close the sockets opened by the client. + It need not be used when using with a context manager. + """ + self._client.close() + + @property + def url(self): + """The full endpoint URL to this entity, including SAS token if used. + + This could be either the primary endpoint, + or the secondary endpoint depending on the current :func:`location_mode`. + """ + return self._format_url(self._hosts[self._location_mode]) + + @property + def primary_endpoint(self): + """The full primary endpoint URL. + + :type: str + """ + return self._format_url(self._hosts[LocationMode.PRIMARY]) + + @property + def primary_hostname(self): + """The hostname of the primary endpoint. + + :type: str + """ + return self._hosts[LocationMode.PRIMARY] + + @property + def secondary_endpoint(self): + """The full secondary endpoint URL if configured. + + If not available a ValueError will be raised. To explicitly specify a secondary hostname, use the optional + `secondary_hostname` keyword argument on instantiation. + + :type: str + :raise ValueError: + """ + if not self._hosts[LocationMode.SECONDARY]: + raise ValueError("No secondary host configured.") + return self._format_url(self._hosts[LocationMode.SECONDARY]) + + @property + def secondary_hostname(self): + """The hostname of the secondary endpoint. + + If not available this will be None. To explicitly specify a secondary hostname, use the optional + `secondary_hostname` keyword argument on instantiation. + + :type: str or None + """ + return self._hosts[LocationMode.SECONDARY] + + @property + def location_mode(self): + """The location mode that the client is currently using. + + By default this will be "primary". Options include "primary" and "secondary". + + :type: str + """ + + return self._location_mode + + @location_mode.setter + def location_mode(self, value): + if self._hosts.get(value): + self._location_mode = value + self._client._config.url = self.url # pylint: disable=protected-access + else: + raise ValueError("No host URL for location mode: {}".format(value)) + + @property + def api_version(self): + """The version of the Storage API used for requests. + + :type: str + """ + return self._client._config.version # pylint: disable=protected-access + + def _format_query_string(self, sas_token, credential, snapshot=None, share_snapshot=None): + query_str = "?" + if snapshot: + query_str += "snapshot={}&".format(self.snapshot) + if share_snapshot: + query_str += "sharesnapshot={}&".format(self.snapshot) + if sas_token and not credential: + query_str += sas_token + elif is_credential_sastoken(credential): + query_str += credential.lstrip("?") + credential = None + return query_str.rstrip("?&"), credential + + def _create_pipeline(self, credential, **kwargs): + # type: (Any, **Any) -> Tuple[Configuration, Pipeline] + self._credential_policy = None + if hasattr(credential, "get_token"): + self._credential_policy = BearerTokenCredentialPolicy(credential, STORAGE_OAUTH_SCOPE) + elif isinstance(credential, SharedKeyCredentialPolicy): + self._credential_policy = credential + elif credential is not None: + raise TypeError("Unsupported credential: {}".format(credential)) + + config = kwargs.get("_configuration") or create_configuration(**kwargs) + if kwargs.get("_pipeline"): + return config, kwargs["_pipeline"] + config.transport = kwargs.get("transport") # type: ignore + kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) + kwargs.setdefault("read_timeout", READ_TIMEOUT) + if not config.transport: + config.transport = RequestsTransport(**kwargs) + policies = [ + QueueMessagePolicy(), + config.headers_policy, + config.proxy_policy, + config.user_agent_policy, + StorageContentValidation(), + StorageRequestHook(**kwargs), + self._credential_policy, + ContentDecodePolicy(response_encoding="utf-8"), + RedirectPolicy(**kwargs), + StorageHosts(hosts=self._hosts, **kwargs), + config.retry_policy, + config.logging_policy, + StorageResponseHook(**kwargs), + DistributedTracingPolicy(**kwargs), + HttpLoggingPolicy(**kwargs) + ] + if kwargs.get("_additional_pipeline_policies"): + policies = policies + kwargs.get("_additional_pipeline_policies") + return config, Pipeline(config.transport, policies=policies) + + def _batch_send( + self, *reqs, # type: HttpRequest + **kwargs + ): + """Given a series of request, do a Storage batch call. + """ + # Pop it here, so requests doesn't feel bad about additional kwarg + raise_on_any_failure = kwargs.pop("raise_on_any_failure", True) + request = self._client._client.post( # pylint: disable=protected-access + url='{}://{}/?comp=batch{}{}'.format( + self.scheme, + self.primary_hostname, + kwargs.pop('sas', ""), + kwargs.pop('timeout', "") + ), + headers={ + 'x-ms-version': self.api_version + } + ) + + policies = [StorageHeadersPolicy()] + if self._credential_policy: + policies.append(self._credential_policy) + + request.set_multipart_mixed( + *reqs, + policies=policies, + enforce_https=False + ) + + pipeline_response = self._pipeline.run( + request, **kwargs + ) + response = pipeline_response.http_response + + try: + if response.status_code not in [202]: + raise HttpResponseError(response=response) + parts = response.parts() + if raise_on_any_failure: + parts = list(response.parts()) + if any(p for p in parts if not 200 <= p.status_code < 300): + error = PartialBatchErrorException( + message="There is a partial failure in the batch operation.", + response=response, parts=parts + ) + raise error + return iter(parts) + return parts + except StorageErrorException as error: + process_storage_error(error) + +class TransportWrapper(HttpTransport): + """Wrapper class that ensures that an inner client created + by a `get_client` method does not close the outer transport for the parent + when used in a context manager. + """ + def __init__(self, transport): + self._transport = transport + + def send(self, request, **kwargs): + return self._transport.send(request, **kwargs) + + def open(self): + pass + + def close(self): + pass + + def __enter__(self): + pass + + def __exit__(self, *args): # pylint: disable=arguments-differ + pass + + +def _format_shared_key_credential(account_name, credential): + if isinstance(credential, six.string_types): + if not account_name: + raise ValueError("Unable to determine account name for shared key credential.") + credential = {"account_name": account_name, "account_key": credential} + if isinstance(credential, dict): + if "account_name" not in credential: + raise ValueError("Shared key credential missing 'account_name") + if "account_key" not in credential: + raise ValueError("Shared key credential missing 'account_key") + return SharedKeyCredentialPolicy(**credential) + return credential + + +def parse_connection_str(conn_str, credential, service): + conn_str = conn_str.rstrip(";") + conn_settings = [s.split("=", 1) for s in conn_str.split(";")] + if any(len(tup) != 2 for tup in conn_settings): + raise ValueError("Connection string is either blank or malformed.") + conn_settings = dict(conn_settings) + endpoints = _SERVICE_PARAMS[service] + primary = None + secondary = None + if not credential: + try: + credential = {"account_name": conn_settings["AccountName"], "account_key": conn_settings["AccountKey"]} + except KeyError: + credential = conn_settings.get("SharedAccessSignature") + if endpoints["primary"] in conn_settings: + primary = conn_settings[endpoints["primary"]] + if endpoints["secondary"] in conn_settings: + secondary = conn_settings[endpoints["secondary"]] + else: + if endpoints["secondary"] in conn_settings: + raise ValueError("Connection string specifies only secondary endpoint.") + try: + primary = "{}://{}.{}.{}".format( + conn_settings["DefaultEndpointsProtocol"], + conn_settings["AccountName"], + service, + conn_settings["EndpointSuffix"], + ) + secondary = "{}-secondary.{}.{}".format( + conn_settings["AccountName"], service, conn_settings["EndpointSuffix"] + ) + except KeyError: + pass + + if not primary: + try: + primary = "https://{}.{}.{}".format( + conn_settings["AccountName"], service, conn_settings.get("EndpointSuffix", SERVICE_HOST_BASE) + ) + except KeyError: + raise ValueError("Connection string missing required connection details.") + return primary, secondary, credential + + +def create_configuration(**kwargs): + # type: (**Any) -> Configuration + config = Configuration(**kwargs) + config.headers_policy = StorageHeadersPolicy(**kwargs) + config.user_agent_policy = UserAgentPolicy( + sdk_moniker="storage-{}/{}".format(kwargs.pop('storage_sdk'), VERSION), **kwargs) + config.retry_policy = kwargs.get("retry_policy") or ExponentialRetry(**kwargs) + config.logging_policy = StorageLoggingPolicy(**kwargs) + config.proxy_policy = ProxyPolicy(**kwargs) + + # Storage settings + config.max_single_put_size = kwargs.get("max_single_put_size", 64 * 1024 * 1024) + config.copy_polling_interval = 15 + + # Block blob uploads + config.max_block_size = kwargs.get("max_block_size", 4 * 1024 * 1024) + config.min_large_block_upload_threshold = kwargs.get("min_large_block_upload_threshold", 4 * 1024 * 1024 + 1) + config.use_byte_buffer = kwargs.get("use_byte_buffer", False) + + # Page blob uploads + config.max_page_size = kwargs.get("max_page_size", 4 * 1024 * 1024) + + # Blob downloads + config.max_single_get_size = kwargs.get("max_single_get_size", 32 * 1024 * 1024) + config.max_chunk_get_size = kwargs.get("max_chunk_get_size", 4 * 1024 * 1024) + + # File uploads + config.max_range_size = kwargs.get("max_range_size", 4 * 1024 * 1024) + return config + + +def parse_query(query_str): + sas_values = QueryStringConstants.to_list() + parsed_query = {k: v[0] for k, v in parse_qs(query_str).items()} + sas_params = ["{}={}".format(k, quote(v, safe='')) for k, v in parsed_query.items() if k in sas_values] + sas_token = None + if sas_params: + sas_token = "&".join(sas_params) + + snapshot = parsed_query.get("snapshot") or parsed_query.get("sharesnapshot") + return snapshot, sas_token + + +def is_credential_sastoken(credential): + if not credential or not isinstance(credential, six.string_types): + return False + + sas_values = QueryStringConstants.to_list() + parsed_query = parse_qs(credential.lstrip("?")) + if parsed_query and all([k in sas_values for k in parsed_query.keys()]): + return True + return False diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/base_client_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/base_client_async.py new file mode 100644 index 00000000000..1fec883b506 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/base_client_async.py @@ -0,0 +1,185 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, Dict, List, Type, Tuple, + TYPE_CHECKING +) +import logging +from azure.core.pipeline import AsyncPipeline +from azure.core.async_paging import AsyncList +from azure.core.exceptions import HttpResponseError +from azure.core.pipeline.policies import ( + ContentDecodePolicy, + AsyncBearerTokenCredentialPolicy, + AsyncRedirectPolicy, + DistributedTracingPolicy, + HttpLoggingPolicy, +) +from azure.core.pipeline.transport import AsyncHttpTransport + +from .constants import STORAGE_OAUTH_SCOPE, CONNECTION_TIMEOUT, READ_TIMEOUT +from .authentication import SharedKeyCredentialPolicy +from .base_client import create_configuration +from .policies import ( + StorageContentValidation, + StorageRequestHook, + StorageHosts, + StorageHeadersPolicy, + QueueMessagePolicy +) +from .policies_async import AsyncStorageResponseHook + +from .._generated.models import StorageErrorException +from .response_handlers import process_storage_error, PartialBatchErrorException + +if TYPE_CHECKING: + from azure.core.pipeline import Pipeline + from azure.core.pipeline.transport import HttpRequest + from azure.core.configuration import Configuration +_LOGGER = logging.getLogger(__name__) + + +class AsyncStorageAccountHostsMixin(object): + + def __enter__(self): + raise TypeError("Async client only supports 'async with'.") + + def __exit__(self, *args): + pass + + async def __aenter__(self): + await self._client.__aenter__() + return self + + async def __aexit__(self, *args): + await self._client.__aexit__(*args) + + async def close(self): + """ This method is to close the sockets opened by the client. + It need not be used when using with a context manager. + """ + await self._client.close() + + def _create_pipeline(self, credential, **kwargs): + # type: (Any, **Any) -> Tuple[Configuration, Pipeline] + self._credential_policy = None + if hasattr(credential, 'get_token'): + self._credential_policy = AsyncBearerTokenCredentialPolicy(credential, STORAGE_OAUTH_SCOPE) + elif isinstance(credential, SharedKeyCredentialPolicy): + self._credential_policy = credential + elif credential is not None: + raise TypeError("Unsupported credential: {}".format(credential)) + config = kwargs.get('_configuration') or create_configuration(**kwargs) + if kwargs.get('_pipeline'): + return config, kwargs['_pipeline'] + config.transport = kwargs.get('transport') # type: ignore + kwargs.setdefault("connection_timeout", CONNECTION_TIMEOUT) + kwargs.setdefault("read_timeout", READ_TIMEOUT) + if not config.transport: + try: + from azure.core.pipeline.transport import AioHttpTransport + except ImportError: + raise ImportError("Unable to create async transport. Please check aiohttp is installed.") + config.transport = AioHttpTransport(**kwargs) + policies = [ + QueueMessagePolicy(), + config.headers_policy, + config.proxy_policy, + config.user_agent_policy, + StorageContentValidation(), + StorageRequestHook(**kwargs), + self._credential_policy, + ContentDecodePolicy(response_encoding="utf-8"), + AsyncRedirectPolicy(**kwargs), + StorageHosts(hosts=self._hosts, **kwargs), # type: ignore + config.retry_policy, + config.logging_policy, + AsyncStorageResponseHook(**kwargs), + DistributedTracingPolicy(**kwargs), + HttpLoggingPolicy(**kwargs), + ] + if kwargs.get("_additional_pipeline_policies"): + policies = policies + kwargs.get("_additional_pipeline_policies") + return config, AsyncPipeline(config.transport, policies=policies) + + async def _batch_send( + self, *reqs: 'HttpRequest', + **kwargs + ): + """Given a series of request, do a Storage batch call. + """ + # Pop it here, so requests doesn't feel bad about additional kwarg + raise_on_any_failure = kwargs.pop("raise_on_any_failure", True) + request = self._client._client.post( # pylint: disable=protected-access + url='{}://{}/?comp=batch{}{}'.format( + self.scheme, + self.primary_hostname, + kwargs.pop('sas', None), + kwargs.pop('timeout', None) + ), + headers={ + 'x-ms-version': self.api_version + } + ) + + policies = [StorageHeadersPolicy()] + if self._credential_policy: + policies.append(self._credential_policy) + + request.set_multipart_mixed( + *reqs, + policies=policies, + enforce_https=False + ) + + pipeline_response = await self._pipeline.run( + request, **kwargs + ) + response = pipeline_response.http_response + + try: + if response.status_code not in [202]: + raise HttpResponseError(response=response) + parts = response.parts() # Return an AsyncIterator + if raise_on_any_failure: + parts_list = [] + async for part in parts: + parts_list.append(part) + if any(p for p in parts_list if not 200 <= p.status_code < 300): + error = PartialBatchErrorException( + message="There is a partial failure in the batch operation.", + response=response, parts=parts_list + ) + raise error + return AsyncList(parts_list) + return parts + except StorageErrorException as error: + process_storage_error(error) + + +class AsyncTransportWrapper(AsyncHttpTransport): + """Wrapper class that ensures that an inner client created + by a `get_client` method does not close the outer transport for the parent + when used in a context manager. + """ + def __init__(self, async_transport): + self._transport = async_transport + + async def send(self, request, **kwargs): + return await self._transport.send(request, **kwargs) + + async def open(self): + pass + + async def close(self): + pass + + async def __aenter__(self): + pass + + async def __aexit__(self, *args): # pylint: disable=arguments-differ + pass diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/constants.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/constants.py new file mode 100644 index 00000000000..f67ea29cc13 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/constants.py @@ -0,0 +1,27 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import sys +from .._generated.version import VERSION + + +X_MS_VERSION = VERSION + +# Socket timeout in seconds +CONNECTION_TIMEOUT = 20 +READ_TIMEOUT = 20 + +# for python 3.5+, there was a change to the definition of the socket timeout (as far as socket.sendall is concerned) +# The socket timeout is now the maximum total duration to send all data. +if sys.version_info >= (3, 5): + # the timeout to connect is 20 seconds, and the read timeout is 80000 seconds + # the 80000 seconds was calculated with: + # 4000MB (max block size)/ 50KB/s (an arbitrarily chosen minimum upload speed) + READ_TIMEOUT = 80000 + +STORAGE_OAUTH_SCOPE = "https://storage.azure.com/.default" + +SERVICE_HOST_BASE = 'core.windows.net' diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/encryption.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/encryption.py new file mode 100644 index 00000000000..62607cc0cf8 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/encryption.py @@ -0,0 +1,542 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import os +from os import urandom +from json import ( + dumps, + loads, +) +from collections import OrderedDict + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.ciphers import Cipher +from cryptography.hazmat.primitives.ciphers.algorithms import AES +from cryptography.hazmat.primitives.ciphers.modes import CBC +from cryptography.hazmat.primitives.padding import PKCS7 + +from azure.core.exceptions import HttpResponseError + +from .._version import VERSION +from . import encode_base64, decode_base64_to_bytes + + +_ENCRYPTION_PROTOCOL_V1 = '1.0' +_ERROR_OBJECT_INVALID = \ + '{0} does not define a complete interface. Value of {1} is either missing or invalid.' + + +def _validate_not_none(param_name, param): + if param is None: + raise ValueError('{0} should not be None.'.format(param_name)) + + +def _validate_key_encryption_key_wrap(kek): + # Note that None is not callable and so will fail the second clause of each check. + if not hasattr(kek, 'wrap_key') or not callable(kek.wrap_key): + raise AttributeError(_ERROR_OBJECT_INVALID.format('key encryption key', 'wrap_key')) + if not hasattr(kek, 'get_kid') or not callable(kek.get_kid): + raise AttributeError(_ERROR_OBJECT_INVALID.format('key encryption key', 'get_kid')) + if not hasattr(kek, 'get_key_wrap_algorithm') or not callable(kek.get_key_wrap_algorithm): + raise AttributeError(_ERROR_OBJECT_INVALID.format('key encryption key', 'get_key_wrap_algorithm')) + + +class _EncryptionAlgorithm(object): + ''' + Specifies which client encryption algorithm is used. + ''' + AES_CBC_256 = 'AES_CBC_256' + + +class _WrappedContentKey: + ''' + Represents the envelope key details stored on the service. + ''' + + def __init__(self, algorithm, encrypted_key, key_id): + ''' + :param str algorithm: + The algorithm used for wrapping. + :param bytes encrypted_key: + The encrypted content-encryption-key. + :param str key_id: + The key-encryption-key identifier string. + ''' + + _validate_not_none('algorithm', algorithm) + _validate_not_none('encrypted_key', encrypted_key) + _validate_not_none('key_id', key_id) + + self.algorithm = algorithm + self.encrypted_key = encrypted_key + self.key_id = key_id + + +class _EncryptionAgent: + ''' + Represents the encryption agent stored on the service. + It consists of the encryption protocol version and encryption algorithm used. + ''' + + def __init__(self, encryption_algorithm, protocol): + ''' + :param _EncryptionAlgorithm encryption_algorithm: + The algorithm used for encrypting the message contents. + :param str protocol: + The protocol version used for encryption. + ''' + + _validate_not_none('encryption_algorithm', encryption_algorithm) + _validate_not_none('protocol', protocol) + + self.encryption_algorithm = str(encryption_algorithm) + self.protocol = protocol + + +class _EncryptionData: + ''' + Represents the encryption data that is stored on the service. + ''' + + def __init__(self, content_encryption_IV, encryption_agent, wrapped_content_key, + key_wrapping_metadata): + ''' + :param bytes content_encryption_IV: + The content encryption initialization vector. + :param _EncryptionAgent encryption_agent: + The encryption agent. + :param _WrappedContentKey wrapped_content_key: + An object that stores the wrapping algorithm, the key identifier, + and the encrypted key bytes. + :param dict key_wrapping_metadata: + A dict containing metadata related to the key wrapping. + ''' + + _validate_not_none('content_encryption_IV', content_encryption_IV) + _validate_not_none('encryption_agent', encryption_agent) + _validate_not_none('wrapped_content_key', wrapped_content_key) + + self.content_encryption_IV = content_encryption_IV + self.encryption_agent = encryption_agent + self.wrapped_content_key = wrapped_content_key + self.key_wrapping_metadata = key_wrapping_metadata + + +def _generate_encryption_data_dict(kek, cek, iv): + ''' + Generates and returns the encryption metadata as a dict. + + :param object kek: The key encryption key. See calling functions for more information. + :param bytes cek: The content encryption key. + :param bytes iv: The initialization vector. + :return: A dict containing all the encryption metadata. + :rtype: dict + ''' + # Encrypt the cek. + wrapped_cek = kek.wrap_key(cek) + + # Build the encryption_data dict. + # Use OrderedDict to comply with Java's ordering requirement. + wrapped_content_key = OrderedDict() + wrapped_content_key['KeyId'] = kek.get_kid() + wrapped_content_key['EncryptedKey'] = encode_base64(wrapped_cek) + wrapped_content_key['Algorithm'] = kek.get_key_wrap_algorithm() + + encryption_agent = OrderedDict() + encryption_agent['Protocol'] = _ENCRYPTION_PROTOCOL_V1 + encryption_agent['EncryptionAlgorithm'] = _EncryptionAlgorithm.AES_CBC_256 + + encryption_data_dict = OrderedDict() + encryption_data_dict['WrappedContentKey'] = wrapped_content_key + encryption_data_dict['EncryptionAgent'] = encryption_agent + encryption_data_dict['ContentEncryptionIV'] = encode_base64(iv) + encryption_data_dict['KeyWrappingMetadata'] = {'EncryptionLibrary': 'Python ' + VERSION} + + return encryption_data_dict + + +def _dict_to_encryption_data(encryption_data_dict): + ''' + Converts the specified dictionary to an EncryptionData object for + eventual use in decryption. + + :param dict encryption_data_dict: + The dictionary containing the encryption data. + :return: an _EncryptionData object built from the dictionary. + :rtype: _EncryptionData + ''' + try: + if encryption_data_dict['EncryptionAgent']['Protocol'] != _ENCRYPTION_PROTOCOL_V1: + raise ValueError("Unsupported encryption version.") + except KeyError: + raise ValueError("Unsupported encryption version.") + wrapped_content_key = encryption_data_dict['WrappedContentKey'] + wrapped_content_key = _WrappedContentKey(wrapped_content_key['Algorithm'], + decode_base64_to_bytes(wrapped_content_key['EncryptedKey']), + wrapped_content_key['KeyId']) + + encryption_agent = encryption_data_dict['EncryptionAgent'] + encryption_agent = _EncryptionAgent(encryption_agent['EncryptionAlgorithm'], + encryption_agent['Protocol']) + + if 'KeyWrappingMetadata' in encryption_data_dict: + key_wrapping_metadata = encryption_data_dict['KeyWrappingMetadata'] + else: + key_wrapping_metadata = None + + encryption_data = _EncryptionData(decode_base64_to_bytes(encryption_data_dict['ContentEncryptionIV']), + encryption_agent, + wrapped_content_key, + key_wrapping_metadata) + + return encryption_data + + +def _generate_AES_CBC_cipher(cek, iv): + ''' + Generates and returns an encryption cipher for AES CBC using the given cek and iv. + + :param bytes[] cek: The content encryption key for the cipher. + :param bytes[] iv: The initialization vector for the cipher. + :return: A cipher for encrypting in AES256 CBC. + :rtype: ~cryptography.hazmat.primitives.ciphers.Cipher + ''' + + backend = default_backend() + algorithm = AES(cek) + mode = CBC(iv) + return Cipher(algorithm, mode, backend) + + +def _validate_and_unwrap_cek(encryption_data, key_encryption_key=None, key_resolver=None): + ''' + Extracts and returns the content_encryption_key stored in the encryption_data object + and performs necessary validation on all parameters. + :param _EncryptionData encryption_data: + The encryption metadata of the retrieved value. + :param obj key_encryption_key: + The key_encryption_key used to unwrap the cek. Please refer to high-level service object + instance variables for more details. + :param func key_resolver: + A function used that, given a key_id, will return a key_encryption_key. Please refer + to high-level service object instance variables for more details. + :return: the content_encryption_key stored in the encryption_data object. + :rtype: bytes[] + ''' + + _validate_not_none('content_encryption_IV', encryption_data.content_encryption_IV) + _validate_not_none('encrypted_key', encryption_data.wrapped_content_key.encrypted_key) + + if _ENCRYPTION_PROTOCOL_V1 != encryption_data.encryption_agent.protocol: + raise ValueError('Encryption version is not supported.') + + content_encryption_key = None + + # If the resolver exists, give priority to the key it finds. + if key_resolver is not None: + key_encryption_key = key_resolver(encryption_data.wrapped_content_key.key_id) + + _validate_not_none('key_encryption_key', key_encryption_key) + if not hasattr(key_encryption_key, 'get_kid') or not callable(key_encryption_key.get_kid): + raise AttributeError(_ERROR_OBJECT_INVALID.format('key encryption key', 'get_kid')) + if not hasattr(key_encryption_key, 'unwrap_key') or not callable(key_encryption_key.unwrap_key): + raise AttributeError(_ERROR_OBJECT_INVALID.format('key encryption key', 'unwrap_key')) + if encryption_data.wrapped_content_key.key_id != key_encryption_key.get_kid(): + raise ValueError('Provided or resolved key-encryption-key does not match the id of key used to encrypt.') + # Will throw an exception if the specified algorithm is not supported. + content_encryption_key = key_encryption_key.unwrap_key(encryption_data.wrapped_content_key.encrypted_key, + encryption_data.wrapped_content_key.algorithm) + _validate_not_none('content_encryption_key', content_encryption_key) + + return content_encryption_key + + +def _decrypt_message(message, encryption_data, key_encryption_key=None, resolver=None): + ''' + Decrypts the given ciphertext using AES256 in CBC mode with 128 bit padding. + Unwraps the content-encryption-key using the user-provided or resolved key-encryption-key (kek). + Returns the original plaintex. + + :param str message: + The ciphertext to be decrypted. + :param _EncryptionData encryption_data: + The metadata associated with this ciphertext. + :param object key_encryption_key: + The user-provided key-encryption-key. Must implement the following methods: + unwrap_key(key, algorithm) + - returns the unwrapped form of the specified symmetric key using the string-specified algorithm. + get_kid() + - returns a string key id for this key-encryption-key. + :param function resolver(kid): + The user-provided key resolver. Uses the kid string to return a key-encryption-key + implementing the interface defined above. + :return: The decrypted plaintext. + :rtype: str + ''' + _validate_not_none('message', message) + content_encryption_key = _validate_and_unwrap_cek(encryption_data, key_encryption_key, resolver) + + if _EncryptionAlgorithm.AES_CBC_256 != encryption_data.encryption_agent.encryption_algorithm: + raise ValueError('Specified encryption algorithm is not supported.') + + cipher = _generate_AES_CBC_cipher(content_encryption_key, encryption_data.content_encryption_IV) + + # decrypt data + decrypted_data = message + decryptor = cipher.decryptor() + decrypted_data = (decryptor.update(decrypted_data) + decryptor.finalize()) + + # unpad data + unpadder = PKCS7(128).unpadder() + decrypted_data = (unpadder.update(decrypted_data) + unpadder.finalize()) + + return decrypted_data + + +def encrypt_blob(blob, key_encryption_key): + ''' + Encrypts the given blob using AES256 in CBC mode with 128 bit padding. + Wraps the generated content-encryption-key using the user-provided key-encryption-key (kek). + Returns a json-formatted string containing the encryption metadata. This method should + only be used when a blob is small enough for single shot upload. Encrypting larger blobs + is done as a part of the upload_data_chunks method. + + :param bytes blob: + The blob to be encrypted. + :param object key_encryption_key: + The user-provided key-encryption-key. Must implement the following methods: + wrap_key(key)--wraps the specified key using an algorithm of the user's choice. + get_key_wrap_algorithm()--returns the algorithm used to wrap the specified symmetric key. + get_kid()--returns a string key id for this key-encryption-key. + :return: A tuple of json-formatted string containing the encryption metadata and the encrypted blob data. + :rtype: (str, bytes) + ''' + + _validate_not_none('blob', blob) + _validate_not_none('key_encryption_key', key_encryption_key) + _validate_key_encryption_key_wrap(key_encryption_key) + + # AES256 uses 256 bit (32 byte) keys and always with 16 byte blocks + content_encryption_key = urandom(32) + initialization_vector = urandom(16) + + cipher = _generate_AES_CBC_cipher(content_encryption_key, initialization_vector) + + # PKCS7 with 16 byte blocks ensures compatibility with AES. + padder = PKCS7(128).padder() + padded_data = padder.update(blob) + padder.finalize() + + # Encrypt the data. + encryptor = cipher.encryptor() + encrypted_data = encryptor.update(padded_data) + encryptor.finalize() + encryption_data = _generate_encryption_data_dict(key_encryption_key, content_encryption_key, + initialization_vector) + encryption_data['EncryptionMode'] = 'FullBlob' + + return dumps(encryption_data), encrypted_data + + +def generate_blob_encryption_data(key_encryption_key): + ''' + Generates the encryption_metadata for the blob. + + :param bytes key_encryption_key: + The key-encryption-key used to wrap the cek associate with this blob. + :return: A tuple containing the cek and iv for this blob as well as the + serialized encryption metadata for the blob. + :rtype: (bytes, bytes, str) + ''' + encryption_data = None + content_encryption_key = None + initialization_vector = None + if key_encryption_key: + _validate_key_encryption_key_wrap(key_encryption_key) + content_encryption_key = urandom(32) + initialization_vector = urandom(16) + encryption_data = _generate_encryption_data_dict(key_encryption_key, + content_encryption_key, + initialization_vector) + encryption_data['EncryptionMode'] = 'FullBlob' + encryption_data = dumps(encryption_data) + + return content_encryption_key, initialization_vector, encryption_data + + +def decrypt_blob(require_encryption, key_encryption_key, key_resolver, + content, start_offset, end_offset, response_headers): + ''' + Decrypts the given blob contents and returns only the requested range. + + :param bool require_encryption: + Whether or not the calling blob service requires objects to be decrypted. + :param object key_encryption_key: + The user-provided key-encryption-key. Must implement the following methods: + wrap_key(key)--wraps the specified key using an algorithm of the user's choice. + get_key_wrap_algorithm()--returns the algorithm used to wrap the specified symmetric key. + get_kid()--returns a string key id for this key-encryption-key. + :param key_resolver(kid): + The user-provided key resolver. Uses the kid string to return a key-encryption-key + implementing the interface defined above. + :return: The decrypted blob content. + :rtype: bytes + ''' + try: + encryption_data = _dict_to_encryption_data(loads(response_headers['x-ms-meta-encryptiondata'])) + except: # pylint: disable=bare-except + if require_encryption: + raise ValueError( + 'Encryption required, but received data does not contain appropriate metatadata.' + \ + 'Data was either not encrypted or metadata has been lost.') + + return content + + if encryption_data.encryption_agent.encryption_algorithm != _EncryptionAlgorithm.AES_CBC_256: + raise ValueError('Specified encryption algorithm is not supported.') + + blob_type = response_headers['x-ms-blob-type'] + + iv = None + unpad = False + if 'content-range' in response_headers: + content_range = response_headers['content-range'] + # Format: 'bytes x-y/size' + + # Ignore the word 'bytes' + content_range = content_range.split(' ') + + content_range = content_range[1].split('-') + content_range = content_range[1].split('/') + end_range = int(content_range[0]) + blob_size = int(content_range[1]) + + if start_offset >= 16: + iv = content[:16] + content = content[16:] + start_offset -= 16 + else: + iv = encryption_data.content_encryption_IV + + if end_range == blob_size - 1: + unpad = True + else: + unpad = True + iv = encryption_data.content_encryption_IV + + if blob_type == 'PageBlob': + unpad = False + + content_encryption_key = _validate_and_unwrap_cek(encryption_data, key_encryption_key, key_resolver) + cipher = _generate_AES_CBC_cipher(content_encryption_key, iv) + decryptor = cipher.decryptor() + + content = decryptor.update(content) + decryptor.finalize() + if unpad: + unpadder = PKCS7(128).unpadder() + content = unpadder.update(content) + unpadder.finalize() + + return content[start_offset: len(content) - end_offset] + + +def get_blob_encryptor_and_padder(cek, iv, should_pad): + encryptor = None + padder = None + + if cek is not None and iv is not None: + cipher = _generate_AES_CBC_cipher(cek, iv) + encryptor = cipher.encryptor() + padder = PKCS7(128).padder() if should_pad else None + + return encryptor, padder + + +def encrypt_queue_message(message, key_encryption_key): + ''' + Encrypts the given plain text message using AES256 in CBC mode with 128 bit padding. + Wraps the generated content-encryption-key using the user-provided key-encryption-key (kek). + Returns a json-formatted string containing the encrypted message and the encryption metadata. + + :param object message: + The plain text messge to be encrypted. + :param object key_encryption_key: + The user-provided key-encryption-key. Must implement the following methods: + wrap_key(key)--wraps the specified key using an algorithm of the user's choice. + get_key_wrap_algorithm()--returns the algorithm used to wrap the specified symmetric key. + get_kid()--returns a string key id for this key-encryption-key. + :return: A json-formatted string containing the encrypted message and the encryption metadata. + :rtype: str + ''' + + _validate_not_none('message', message) + _validate_not_none('key_encryption_key', key_encryption_key) + _validate_key_encryption_key_wrap(key_encryption_key) + + # AES256 uses 256 bit (32 byte) keys and always with 16 byte blocks + content_encryption_key = os.urandom(32) + initialization_vector = os.urandom(16) + + # Queue encoding functions all return unicode strings, and encryption should + # operate on binary strings. + message = message.encode('utf-8') + + cipher = _generate_AES_CBC_cipher(content_encryption_key, initialization_vector) + + # PKCS7 with 16 byte blocks ensures compatibility with AES. + padder = PKCS7(128).padder() + padded_data = padder.update(message) + padder.finalize() + + # Encrypt the data. + encryptor = cipher.encryptor() + encrypted_data = encryptor.update(padded_data) + encryptor.finalize() + + # Build the dictionary structure. + queue_message = {'EncryptedMessageContents': encode_base64(encrypted_data), + 'EncryptionData': _generate_encryption_data_dict(key_encryption_key, + content_encryption_key, + initialization_vector)} + + return dumps(queue_message) + + +def decrypt_queue_message(message, response, require_encryption, key_encryption_key, resolver): + ''' + Returns the decrypted message contents from an EncryptedQueueMessage. + If no encryption metadata is present, will return the unaltered message. + :param str message: + The JSON formatted QueueEncryptedMessage contents with all associated metadata. + :param bool require_encryption: + If set, will enforce that the retrieved messages are encrypted and decrypt them. + :param object key_encryption_key: + The user-provided key-encryption-key. Must implement the following methods: + unwrap_key(key, algorithm) + - returns the unwrapped form of the specified symmetric key usingthe string-specified algorithm. + get_kid() + - returns a string key id for this key-encryption-key. + :param function resolver(kid): + The user-provided key resolver. Uses the kid string to return a key-encryption-key + implementing the interface defined above. + :return: The plain text message from the queue message. + :rtype: str + ''' + + try: + message = loads(message) + + encryption_data = _dict_to_encryption_data(message['EncryptionData']) + decoded_data = decode_base64_to_bytes(message['EncryptedMessageContents']) + except (KeyError, ValueError): + # Message was not json formatted and so was not encrypted + # or the user provided a json formatted message. + if require_encryption: + raise ValueError('Message was not encrypted.') + + return message + try: + return _decrypt_message(decoded_data, encryption_data, key_encryption_key, resolver).decode('utf-8') + except Exception as error: + raise HttpResponseError( + message="Decryption failed.", + response=response, + error=error) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/models.py new file mode 100644 index 00000000000..27a9c9fe4a7 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/models.py @@ -0,0 +1,466 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-instance-attributes +from enum import Enum + + +def get_enum_value(value): + if value is None or value in ["None", ""]: + return None + try: + return value.value + except AttributeError: + return value + + +class StorageErrorCode(str, Enum): + + # Generic storage values + account_already_exists = "AccountAlreadyExists" + account_being_created = "AccountBeingCreated" + account_is_disabled = "AccountIsDisabled" + authentication_failed = "AuthenticationFailed" + authorization_failure = "AuthorizationFailure" + no_authentication_information = "NoAuthenticationInformation" + condition_headers_not_supported = "ConditionHeadersNotSupported" + condition_not_met = "ConditionNotMet" + empty_metadata_key = "EmptyMetadataKey" + insufficient_account_permissions = "InsufficientAccountPermissions" + internal_error = "InternalError" + invalid_authentication_info = "InvalidAuthenticationInfo" + invalid_header_value = "InvalidHeaderValue" + invalid_http_verb = "InvalidHttpVerb" + invalid_input = "InvalidInput" + invalid_md5 = "InvalidMd5" + invalid_metadata = "InvalidMetadata" + invalid_query_parameter_value = "InvalidQueryParameterValue" + invalid_range = "InvalidRange" + invalid_resource_name = "InvalidResourceName" + invalid_uri = "InvalidUri" + invalid_xml_document = "InvalidXmlDocument" + invalid_xml_node_value = "InvalidXmlNodeValue" + md5_mismatch = "Md5Mismatch" + metadata_too_large = "MetadataTooLarge" + missing_content_length_header = "MissingContentLengthHeader" + missing_required_query_parameter = "MissingRequiredQueryParameter" + missing_required_header = "MissingRequiredHeader" + missing_required_xml_node = "MissingRequiredXmlNode" + multiple_condition_headers_not_supported = "MultipleConditionHeadersNotSupported" + operation_timed_out = "OperationTimedOut" + out_of_range_input = "OutOfRangeInput" + out_of_range_query_parameter_value = "OutOfRangeQueryParameterValue" + request_body_too_large = "RequestBodyTooLarge" + resource_type_mismatch = "ResourceTypeMismatch" + request_url_failed_to_parse = "RequestUrlFailedToParse" + resource_already_exists = "ResourceAlreadyExists" + resource_not_found = "ResourceNotFound" + server_busy = "ServerBusy" + unsupported_header = "UnsupportedHeader" + unsupported_xml_node = "UnsupportedXmlNode" + unsupported_query_parameter = "UnsupportedQueryParameter" + unsupported_http_verb = "UnsupportedHttpVerb" + + # Blob values + append_position_condition_not_met = "AppendPositionConditionNotMet" + blob_already_exists = "BlobAlreadyExists" + blob_not_found = "BlobNotFound" + blob_overwritten = "BlobOverwritten" + blob_tier_inadequate_for_content_length = "BlobTierInadequateForContentLength" + block_count_exceeds_limit = "BlockCountExceedsLimit" + block_list_too_long = "BlockListTooLong" + cannot_change_to_lower_tier = "CannotChangeToLowerTier" + cannot_verify_copy_source = "CannotVerifyCopySource" + container_already_exists = "ContainerAlreadyExists" + container_being_deleted = "ContainerBeingDeleted" + container_disabled = "ContainerDisabled" + container_not_found = "ContainerNotFound" + content_length_larger_than_tier_limit = "ContentLengthLargerThanTierLimit" + copy_across_accounts_not_supported = "CopyAcrossAccountsNotSupported" + copy_id_mismatch = "CopyIdMismatch" + feature_version_mismatch = "FeatureVersionMismatch" + incremental_copy_blob_mismatch = "IncrementalCopyBlobMismatch" + incremental_copy_of_eralier_version_snapshot_not_allowed = "IncrementalCopyOfEralierVersionSnapshotNotAllowed" + incremental_copy_source_must_be_snapshot = "IncrementalCopySourceMustBeSnapshot" + infinite_lease_duration_required = "InfiniteLeaseDurationRequired" + invalid_blob_or_block = "InvalidBlobOrBlock" + invalid_blob_tier = "InvalidBlobTier" + invalid_blob_type = "InvalidBlobType" + invalid_block_id = "InvalidBlockId" + invalid_block_list = "InvalidBlockList" + invalid_operation = "InvalidOperation" + invalid_page_range = "InvalidPageRange" + invalid_source_blob_type = "InvalidSourceBlobType" + invalid_source_blob_url = "InvalidSourceBlobUrl" + invalid_version_for_page_blob_operation = "InvalidVersionForPageBlobOperation" + lease_already_present = "LeaseAlreadyPresent" + lease_already_broken = "LeaseAlreadyBroken" + lease_id_mismatch_with_blob_operation = "LeaseIdMismatchWithBlobOperation" + lease_id_mismatch_with_container_operation = "LeaseIdMismatchWithContainerOperation" + lease_id_mismatch_with_lease_operation = "LeaseIdMismatchWithLeaseOperation" + lease_id_missing = "LeaseIdMissing" + lease_is_breaking_and_cannot_be_acquired = "LeaseIsBreakingAndCannotBeAcquired" + lease_is_breaking_and_cannot_be_changed = "LeaseIsBreakingAndCannotBeChanged" + lease_is_broken_and_cannot_be_renewed = "LeaseIsBrokenAndCannotBeRenewed" + lease_lost = "LeaseLost" + lease_not_present_with_blob_operation = "LeaseNotPresentWithBlobOperation" + lease_not_present_with_container_operation = "LeaseNotPresentWithContainerOperation" + lease_not_present_with_lease_operation = "LeaseNotPresentWithLeaseOperation" + max_blob_size_condition_not_met = "MaxBlobSizeConditionNotMet" + no_pending_copy_operation = "NoPendingCopyOperation" + operation_not_allowed_on_incremental_copy_blob = "OperationNotAllowedOnIncrementalCopyBlob" + pending_copy_operation = "PendingCopyOperation" + previous_snapshot_cannot_be_newer = "PreviousSnapshotCannotBeNewer" + previous_snapshot_not_found = "PreviousSnapshotNotFound" + previous_snapshot_operation_not_supported = "PreviousSnapshotOperationNotSupported" + sequence_number_condition_not_met = "SequenceNumberConditionNotMet" + sequence_number_increment_too_large = "SequenceNumberIncrementTooLarge" + snapshot_count_exceeded = "SnapshotCountExceeded" + snaphot_operation_rate_exceeded = "SnaphotOperationRateExceeded" + snapshots_present = "SnapshotsPresent" + source_condition_not_met = "SourceConditionNotMet" + system_in_use = "SystemInUse" + target_condition_not_met = "TargetConditionNotMet" + unauthorized_blob_overwrite = "UnauthorizedBlobOverwrite" + blob_being_rehydrated = "BlobBeingRehydrated" + blob_archived = "BlobArchived" + blob_not_archived = "BlobNotArchived" + + # Queue values + invalid_marker = "InvalidMarker" + message_not_found = "MessageNotFound" + message_too_large = "MessageTooLarge" + pop_receipt_mismatch = "PopReceiptMismatch" + queue_already_exists = "QueueAlreadyExists" + queue_being_deleted = "QueueBeingDeleted" + queue_disabled = "QueueDisabled" + queue_not_empty = "QueueNotEmpty" + queue_not_found = "QueueNotFound" + + # File values + cannot_delete_file_or_directory = "CannotDeleteFileOrDirectory" + client_cache_flush_delay = "ClientCacheFlushDelay" + delete_pending = "DeletePending" + directory_not_empty = "DirectoryNotEmpty" + file_lock_conflict = "FileLockConflict" + invalid_file_or_directory_path_name = "InvalidFileOrDirectoryPathName" + parent_not_found = "ParentNotFound" + read_only_attribute = "ReadOnlyAttribute" + share_already_exists = "ShareAlreadyExists" + share_being_deleted = "ShareBeingDeleted" + share_disabled = "ShareDisabled" + share_not_found = "ShareNotFound" + sharing_violation = "SharingViolation" + share_snapshot_in_progress = "ShareSnapshotInProgress" + share_snapshot_count_exceeded = "ShareSnapshotCountExceeded" + share_snapshot_operation_not_supported = "ShareSnapshotOperationNotSupported" + share_has_snapshots = "ShareHasSnapshots" + container_quota_downgrade_not_allowed = "ContainerQuotaDowngradeNotAllowed" + + # DataLake values + content_length_must_be_zero = 'ContentLengthMustBeZero' + path_already_exists = 'PathAlreadyExists' + invalid_flush_position = 'InvalidFlushPosition' + invalid_property_name = 'InvalidPropertyName' + invalid_source_uri = 'InvalidSourceUri' + unsupported_rest_version = 'UnsupportedRestVersion' + file_system_not_found = 'FilesystemNotFound' + path_not_found = 'PathNotFound' + rename_destination_parent_path_not_found = 'RenameDestinationParentPathNotFound' + source_path_not_found = 'SourcePathNotFound' + destination_path_is_being_deleted = 'DestinationPathIsBeingDeleted' + file_system_already_exists = 'FilesystemAlreadyExists' + file_system_being_deleted = 'FilesystemBeingDeleted' + invalid_destination_path = 'InvalidDestinationPath' + invalid_rename_source_path = 'InvalidRenameSourcePath' + invalid_source_or_destination_resource_type = 'InvalidSourceOrDestinationResourceType' + lease_is_already_broken = 'LeaseIsAlreadyBroken' + lease_name_mismatch = 'LeaseNameMismatch' + path_conflict = 'PathConflict' + source_path_is_being_deleted = 'SourcePathIsBeingDeleted' + + +class DictMixin(object): + + def __setitem__(self, key, item): + self.__dict__[key] = item + + def __getitem__(self, key): + return self.__dict__[key] + + def __repr__(self): + return str(self) + + def __len__(self): + return len(self.keys()) + + def __delitem__(self, key): + self.__dict__[key] = None + + def __eq__(self, other): + """Compare objects by comparing all attributes.""" + if isinstance(other, self.__class__): + return self.__dict__ == other.__dict__ + return False + + def __ne__(self, other): + """Compare objects by comparing all attributes.""" + return not self.__eq__(other) + + def __str__(self): + return str({k: v for k, v in self.__dict__.items() if not k.startswith('_')}) + + def has_key(self, k): + return k in self.__dict__ + + def update(self, *args, **kwargs): + return self.__dict__.update(*args, **kwargs) + + def keys(self): + return [k for k in self.__dict__ if not k.startswith('_')] + + def values(self): + return [v for k, v in self.__dict__.items() if not k.startswith('_')] + + def items(self): + return [(k, v) for k, v in self.__dict__.items() if not k.startswith('_')] + + def get(self, key, default=None): + if key in self.__dict__: + return self.__dict__[key] + return default + + +class LocationMode(object): + """ + Specifies the location the request should be sent to. This mode only applies + for RA-GRS accounts which allow secondary read access. All other account types + must use PRIMARY. + """ + + PRIMARY = 'primary' #: Requests should be sent to the primary location. + SECONDARY = 'secondary' #: Requests should be sent to the secondary location, if possible. + + +class ResourceTypes(object): + """ + Specifies the resource types that are accessible with the account SAS. + + :param bool service: + Access to service-level APIs (e.g., Get/Set Service Properties, + Get Service Stats, List Containers/Queues/Shares) + :param bool container: + Access to container-level APIs (e.g., Create/Delete Container, + Create/Delete Queue, Create/Delete Share, + List Blobs/Files and Directories) + :param bool object: + Access to object-level APIs for blobs, queue messages, and + files(e.g. Put Blob, Query Entity, Get Messages, Create File, etc.) + """ + + def __init__(self, service=False, container=False, object=False): # pylint: disable=redefined-builtin + self.service = service + self.container = container + self.object = object + self._str = (('s' if self.service else '') + + ('c' if self.container else '') + + ('o' if self.object else '')) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, string): + """Create a ResourceTypes from a string. + + To specify service, container, or object you need only to + include the first letter of the word in the string. E.g. service and container, + you would provide a string "sc". + + :param str string: Specify service, container, or object in + in the string with the first letter of the word. + :return: A ResourceTypes object + :rtype: ~azure.storage.blob.ResourceTypes + """ + res_service = 's' in string + res_container = 'c' in string + res_object = 'o' in string + + parsed = cls(res_service, res_container, res_object) + parsed._str = string # pylint: disable = protected-access + return parsed + + +class AccountSasPermissions(object): + """ + :class:`~ResourceTypes` class to be used with generate_account_sas + function and for the AccessPolicies used with set_*_acl. There are two types of + SAS which may be used to grant resource access. One is to grant access to a + specific resource (resource-specific). Another is to grant access to the + entire service for a specific account and allow certain operations based on + perms found here. + + :param bool read: + Valid for all signed resources types (Service, Container, and Object). + Permits read permissions to the specified resource type. + :param bool write: + Valid for all signed resources types (Service, Container, and Object). + Permits write permissions to the specified resource type. + :param bool delete: + Valid for Container and Object resource types, except for queue messages. + :param bool delete_previous_version: + Delete the previous blob version for the versioning enabled storage account. + :param bool list: + Valid for Service and Container resource types only. + :param bool add: + Valid for the following Object resource types only: queue messages, and append blobs. + :param bool create: + Valid for the following Object resource types only: blobs and files. + Users can create new blobs or files, but may not overwrite existing + blobs or files. + :param bool update: + Valid for the following Object resource types only: queue messages. + :param bool process: + Valid for the following Object resource type only: queue messages. + :keyword bool tag: + To enable set or get tags on the blobs in the container. + :keyword bool filter_by_tags: + To enable get blobs by tags, this should be used together with list permission. + """ + def __init__(self, read=False, write=False, delete=False, + list=False, # pylint: disable=redefined-builtin + add=False, create=False, update=False, process=False, delete_previous_version=False, **kwargs): + self.read = read + self.write = write + self.delete = delete + self.delete_previous_version = delete_previous_version + self.list = list + self.add = add + self.create = create + self.update = update + self.process = process + self.tag = kwargs.pop('tag', False) + self.filter_by_tags = kwargs.pop('filter_by_tags', False) + self._str = (('r' if self.read else '') + + ('w' if self.write else '') + + ('d' if self.delete else '') + + ('x' if self.delete_previous_version else '') + + ('l' if self.list else '') + + ('a' if self.add else '') + + ('c' if self.create else '') + + ('u' if self.update else '') + + ('p' if self.process else '') + + ('f' if self.filter_by_tags else '') + + ('t' if self.tag else '') + ) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, permission): + """Create AccountSasPermissions from a string. + + To specify read, write, delete, etc. permissions you need only to + include the first letter of the word in the string. E.g. for read and write + permissions you would provide a string "rw". + + :param str permission: Specify permissions in + the string with the first letter of the word. + :return: An AccountSasPermissions object + :rtype: ~azure.storage.blob.AccountSasPermissions + """ + p_read = 'r' in permission + p_write = 'w' in permission + p_delete = 'd' in permission + p_delete_previous_version = 'x' in permission + p_list = 'l' in permission + p_add = 'a' in permission + p_create = 'c' in permission + p_update = 'u' in permission + p_process = 'p' in permission + p_tag = 't' in permission + p_filter_by_tags = 'f' in permission + parsed = cls(read=p_read, write=p_write, delete=p_delete, delete_previous_version=p_delete_previous_version, + list=p_list, add=p_add, create=p_create, update=p_update, process=p_process, tag=p_tag, + filter_by_tags=p_filter_by_tags) + parsed._str = permission # pylint: disable = protected-access + return parsed + +class Services(object): + """Specifies the services accessible with the account SAS. + + :param bool blob: + Access for the `~azure.storage.blob.BlobServiceClient` + :param bool queue: + Access for the `~azure.storage.queue.QueueServiceClient` + :param bool fileshare: + Access for the `~azure.storage.fileshare.ShareServiceClient` + """ + + def __init__(self, blob=False, queue=False, fileshare=False): + self.blob = blob + self.queue = queue + self.fileshare = fileshare + self._str = (('b' if self.blob else '') + + ('q' if self.queue else '') + + ('f' if self.fileshare else '')) + + def __str__(self): + return self._str + + @classmethod + def from_string(cls, string): + """Create Services from a string. + + To specify blob, queue, or file you need only to + include the first letter of the word in the string. E.g. for blob and queue + you would provide a string "bq". + + :param str string: Specify blob, queue, or file in + in the string with the first letter of the word. + :return: A Services object + :rtype: ~azure.storage.blob.Services + """ + res_blob = 'b' in string + res_queue = 'q' in string + res_file = 'f' in string + + parsed = cls(res_blob, res_queue, res_file) + parsed._str = string # pylint: disable = protected-access + return parsed + + +class UserDelegationKey(object): + """ + Represents a user delegation key, provided to the user by Azure Storage + based on their Azure Active Directory access token. + + The fields are saved as simple strings since the user does not have to interact with this object; + to generate an identify SAS, the user can simply pass it to the right API. + + :ivar str signed_oid: + Object ID of this token. + :ivar str signed_tid: + Tenant ID of the tenant that issued this token. + :ivar str signed_start: + The datetime this token becomes valid. + :ivar str signed_expiry: + The datetime this token expires. + :ivar str signed_service: + What service this key is valid for. + :ivar str signed_version: + The version identifier of the REST service that created this token. + :ivar str value: + The user delegation key. + """ + def __init__(self): + self.signed_oid = None + self.signed_tid = None + self.signed_start = None + self.signed_expiry = None + self.signed_service = None + self.signed_version = None + self.value = None diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/parser.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/parser.py new file mode 100644 index 00000000000..c6feba8a639 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/parser.py @@ -0,0 +1,20 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import sys + +if sys.version_info < (3,): + def _str(value): + if isinstance(value, unicode): # pylint: disable=undefined-variable + return value.encode('utf-8') + + return str(value) +else: + _str = str + + +def _to_utc_datetime(value): + return value.strftime('%Y-%m-%dT%H:%M:%SZ') diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/policies.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/policies.py new file mode 100644 index 00000000000..c9bc798d671 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/policies.py @@ -0,0 +1,610 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import base64 +import hashlib +import re +import random +from time import time +from io import SEEK_SET, UnsupportedOperation +import logging +import uuid +import types +from typing import Any, TYPE_CHECKING +from wsgiref.handlers import format_date_time +try: + from urllib.parse import ( + urlparse, + parse_qsl, + urlunparse, + urlencode, + ) +except ImportError: + from urllib import urlencode # type: ignore + from urlparse import ( # type: ignore + urlparse, + parse_qsl, + urlunparse, + ) + +from azure.core.pipeline.policies import ( + HeadersPolicy, + SansIOHTTPPolicy, + NetworkTraceLoggingPolicy, + HTTPPolicy, + RequestHistory +) +from azure.core.exceptions import AzureError, ServiceRequestError, ServiceResponseError + +from .models import LocationMode + +try: + _unicode_type = unicode # type: ignore +except NameError: + _unicode_type = str + +if TYPE_CHECKING: + from azure.core.pipeline import PipelineRequest, PipelineResponse + + +_LOGGER = logging.getLogger(__name__) + + +def encode_base64(data): + if isinstance(data, _unicode_type): + data = data.encode('utf-8') + encoded = base64.b64encode(data) + return encoded.decode('utf-8') + + +def is_exhausted(settings): + """Are we out of retries?""" + retry_counts = (settings['total'], settings['connect'], settings['read'], settings['status']) + retry_counts = list(filter(None, retry_counts)) + if not retry_counts: + return False + return min(retry_counts) < 0 + + +def retry_hook(settings, **kwargs): + if settings['hook']: + settings['hook'](retry_count=settings['count'] - 1, location_mode=settings['mode'], **kwargs) + + +def is_retry(response, mode): + """Is this method/status code retryable? (Based on whitelists and control + variables such as the number of total retries to allow, whether to + respect the Retry-After header, whether this header is present, and + whether the returned status code is on the list of status codes to + be retried upon on the presence of the aforementioned header) + """ + status = response.http_response.status_code + if 300 <= status < 500: + # An exception occured, but in most cases it was expected. Examples could + # include a 309 Conflict or 412 Precondition Failed. + if status == 404 and mode == LocationMode.SECONDARY: + # Response code 404 should be retried if secondary was used. + return True + if status == 408: + # Response code 408 is a timeout and should be retried. + return True + return False + if status >= 500: + # Response codes above 500 with the exception of 501 Not Implemented and + # 505 Version Not Supported indicate a server issue and should be retried. + if status in [501, 505]: + return False + return True + return False + + +def urljoin(base_url, stub_url): + parsed = urlparse(base_url) + parsed = parsed._replace(path=parsed.path + '/' + stub_url) + return parsed.geturl() + + +class QueueMessagePolicy(SansIOHTTPPolicy): + + def on_request(self, request): + message_id = request.context.options.pop('queue_message_id', None) + if message_id: + request.http_request.url = urljoin( + request.http_request.url, + message_id) + + +class StorageHeadersPolicy(HeadersPolicy): + request_id_header_name = 'x-ms-client-request-id' + + def on_request(self, request): + # type: (PipelineRequest, Any) -> None + super(StorageHeadersPolicy, self).on_request(request) + current_time = format_date_time(time()) + request.http_request.headers['x-ms-date'] = current_time + + custom_id = request.context.options.pop('client_request_id', None) + request.http_request.headers['x-ms-client-request-id'] = custom_id or str(uuid.uuid1()) + + # def on_response(self, request, response): + # # raise exception if the echoed client request id from the service is not identical to the one we sent + # if self.request_id_header_name in response.http_response.headers: + + # client_request_id = request.http_request.headers.get(self.request_id_header_name) + + # if response.http_response.headers[self.request_id_header_name] != client_request_id: + # raise AzureError( + # "Echoed client request ID: {} does not match sent client request ID: {}. " + # "Service request ID: {}".format( + # response.http_response.headers[self.request_id_header_name], client_request_id, + # response.http_response.headers['x-ms-request-id']), + # response=response.http_response + # ) + + +class StorageHosts(SansIOHTTPPolicy): + + def __init__(self, hosts=None, **kwargs): # pylint: disable=unused-argument + self.hosts = hosts + super(StorageHosts, self).__init__() + + def on_request(self, request): + # type: (PipelineRequest, Any) -> None + request.context.options['hosts'] = self.hosts + parsed_url = urlparse(request.http_request.url) + + # Detect what location mode we're currently requesting with + location_mode = LocationMode.PRIMARY + for key, value in self.hosts.items(): + if parsed_url.netloc == value: + location_mode = key + + # See if a specific location mode has been specified, and if so, redirect + use_location = request.context.options.pop('use_location', None) + if use_location: + # Lock retries to the specific location + request.context.options['retry_to_secondary'] = False + if use_location not in self.hosts: + raise ValueError("Attempting to use undefined host location {}".format(use_location)) + if use_location != location_mode: + # Update request URL to use the specified location + updated = parsed_url._replace(netloc=self.hosts[use_location]) + request.http_request.url = updated.geturl() + location_mode = use_location + + request.context.options['location_mode'] = location_mode + + +class StorageLoggingPolicy(NetworkTraceLoggingPolicy): + """A policy that logs HTTP request and response to the DEBUG logger. + + This accepts both global configuration, and per-request level with "enable_http_logger" + """ + + def on_request(self, request): + # type: (PipelineRequest, Any) -> None + http_request = request.http_request + options = request.context.options + if options.pop("logging_enable", self.enable_http_logger): + request.context["logging_enable"] = True + if not _LOGGER.isEnabledFor(logging.DEBUG): + return + + try: + log_url = http_request.url + query_params = http_request.query + if 'sig' in query_params: + log_url = log_url.replace(query_params['sig'], "sig=*****") + _LOGGER.debug("Request URL: %r", log_url) + _LOGGER.debug("Request method: %r", http_request.method) + _LOGGER.debug("Request headers:") + for header, value in http_request.headers.items(): + if header.lower() == 'authorization': + value = '*****' + elif header.lower() == 'x-ms-copy-source' and 'sig' in value: + # take the url apart and scrub away the signed signature + scheme, netloc, path, params, query, fragment = urlparse(value) + parsed_qs = dict(parse_qsl(query)) + parsed_qs['sig'] = '*****' + + # the SAS needs to be put back together + value = urlunparse((scheme, netloc, path, params, urlencode(parsed_qs), fragment)) + + _LOGGER.debug(" %r: %r", header, value) + _LOGGER.debug("Request body:") + + # We don't want to log the binary data of a file upload. + if isinstance(http_request.body, types.GeneratorType): + _LOGGER.debug("File upload") + else: + _LOGGER.debug(str(http_request.body)) + except Exception as err: # pylint: disable=broad-except + _LOGGER.debug("Failed to log request: %r", err) + + def on_response(self, request, response): + # type: (PipelineRequest, PipelineResponse, Any) -> None + if response.context.pop("logging_enable", self.enable_http_logger): + if not _LOGGER.isEnabledFor(logging.DEBUG): + return + + try: + _LOGGER.debug("Response status: %r", response.http_response.status_code) + _LOGGER.debug("Response headers:") + for res_header, value in response.http_response.headers.items(): + _LOGGER.debug(" %r: %r", res_header, value) + + # We don't want to log binary data if the response is a file. + _LOGGER.debug("Response content:") + pattern = re.compile(r'attachment; ?filename=["\w.]+', re.IGNORECASE) + header = response.http_response.headers.get('content-disposition') + + if header and pattern.match(header): + filename = header.partition('=')[2] + _LOGGER.debug("File attachments: %s", filename) + elif response.http_response.headers.get("content-type", "").endswith("octet-stream"): + _LOGGER.debug("Body contains binary data.") + elif response.http_response.headers.get("content-type", "").startswith("image"): + _LOGGER.debug("Body contains image data.") + else: + if response.context.options.get('stream', False): + _LOGGER.debug("Body is streamable") + else: + _LOGGER.debug(response.http_response.text()) + except Exception as err: # pylint: disable=broad-except + _LOGGER.debug("Failed to log response: %s", repr(err)) + + +class StorageRequestHook(SansIOHTTPPolicy): + + def __init__(self, **kwargs): # pylint: disable=unused-argument + self._request_callback = kwargs.get('raw_request_hook') + super(StorageRequestHook, self).__init__() + + def on_request(self, request): + # type: (PipelineRequest, **Any) -> PipelineResponse + request_callback = request.context.options.pop('raw_request_hook', self._request_callback) + if request_callback: + request_callback(request) + + +class StorageResponseHook(HTTPPolicy): + + def __init__(self, **kwargs): # pylint: disable=unused-argument + self._response_callback = kwargs.get('raw_response_hook') + super(StorageResponseHook, self).__init__() + + def send(self, request): + # type: (PipelineRequest) -> PipelineResponse + data_stream_total = request.context.get('data_stream_total') or \ + request.context.options.pop('data_stream_total', None) + download_stream_current = request.context.get('download_stream_current') or \ + request.context.options.pop('download_stream_current', None) + upload_stream_current = request.context.get('upload_stream_current') or \ + request.context.options.pop('upload_stream_current', None) + response_callback = request.context.get('response_callback') or \ + request.context.options.pop('raw_response_hook', self._response_callback) + + response = self.next.send(request) + will_retry = is_retry(response, request.context.options.get('mode')) + if not will_retry and download_stream_current is not None: + download_stream_current += int(response.http_response.headers.get('Content-Length', 0)) + if data_stream_total is None: + content_range = response.http_response.headers.get('Content-Range') + if content_range: + data_stream_total = int(content_range.split(' ', 1)[1].split('/', 1)[1]) + else: + data_stream_total = download_stream_current + elif not will_retry and upload_stream_current is not None: + upload_stream_current += int(response.http_request.headers.get('Content-Length', 0)) + for pipeline_obj in [request, response]: + pipeline_obj.context['data_stream_total'] = data_stream_total + pipeline_obj.context['download_stream_current'] = download_stream_current + pipeline_obj.context['upload_stream_current'] = upload_stream_current + if response_callback: + response_callback(response) + request.context['response_callback'] = response_callback + return response + + +class StorageContentValidation(SansIOHTTPPolicy): + """A simple policy that sends the given headers + with the request. + + This will overwrite any headers already defined in the request. + """ + header_name = 'Content-MD5' + + def __init__(self, **kwargs): # pylint: disable=unused-argument + super(StorageContentValidation, self).__init__() + + @staticmethod + def get_content_md5(data): + md5 = hashlib.md5() # nosec + if isinstance(data, bytes): + md5.update(data) + elif hasattr(data, 'read'): + pos = 0 + try: + pos = data.tell() + except: # pylint: disable=bare-except + pass + for chunk in iter(lambda: data.read(4096), b""): + md5.update(chunk) + try: + data.seek(pos, SEEK_SET) + except (AttributeError, IOError): + raise ValueError("Data should be bytes or a seekable file-like object.") + else: + raise ValueError("Data should be bytes or a seekable file-like object.") + + return md5.digest() + + def on_request(self, request): + # type: (PipelineRequest, Any) -> None + validate_content = request.context.options.pop('validate_content', False) + if validate_content and request.http_request.method != 'GET': + computed_md5 = encode_base64(StorageContentValidation.get_content_md5(request.http_request.data)) + request.http_request.headers[self.header_name] = computed_md5 + request.context['validate_content_md5'] = computed_md5 + request.context['validate_content'] = validate_content + + def on_response(self, request, response): + if response.context.get('validate_content', False) and response.http_response.headers.get('content-md5'): + computed_md5 = request.context.get('validate_content_md5') or \ + encode_base64(StorageContentValidation.get_content_md5(response.http_response.body())) + if response.http_response.headers['content-md5'] != computed_md5: + raise AzureError( + 'MD5 mismatch. Expected value is \'{0}\', computed value is \'{1}\'.'.format( + response.http_response.headers['content-md5'], computed_md5), + response=response.http_response + ) + + +class StorageRetryPolicy(HTTPPolicy): + """ + The base class for Exponential and Linear retries containing shared code. + """ + + def __init__(self, **kwargs): + self.total_retries = kwargs.pop('retry_total', 10) + self.connect_retries = kwargs.pop('retry_connect', 3) + self.read_retries = kwargs.pop('retry_read', 3) + self.status_retries = kwargs.pop('retry_status', 3) + self.retry_to_secondary = kwargs.pop('retry_to_secondary', False) + super(StorageRetryPolicy, self).__init__() + + def _set_next_host_location(self, settings, request): # pylint: disable=no-self-use + """ + A function which sets the next host location on the request, if applicable. + + :param ~azure.storage.models.RetryContext context: + The retry context containing the previous host location and the request + to evaluate and possibly modify. + """ + if settings['hosts'] and all(settings['hosts'].values()): + url = urlparse(request.url) + # If there's more than one possible location, retry to the alternative + if settings['mode'] == LocationMode.PRIMARY: + settings['mode'] = LocationMode.SECONDARY + else: + settings['mode'] = LocationMode.PRIMARY + updated = url._replace(netloc=settings['hosts'].get(settings['mode'])) + request.url = updated.geturl() + + def configure_retries(self, request): # pylint: disable=no-self-use + body_position = None + if hasattr(request.http_request.body, 'read'): + try: + body_position = request.http_request.body.tell() + except (AttributeError, UnsupportedOperation): + # if body position cannot be obtained, then retries will not work + pass + options = request.context.options + return { + 'total': options.pop("retry_total", self.total_retries), + 'connect': options.pop("retry_connect", self.connect_retries), + 'read': options.pop("retry_read", self.read_retries), + 'status': options.pop("retry_status", self.status_retries), + 'retry_secondary': options.pop("retry_to_secondary", self.retry_to_secondary), + 'mode': options.pop("location_mode", LocationMode.PRIMARY), + 'hosts': options.pop("hosts", None), + 'hook': options.pop("retry_hook", None), + 'body_position': body_position, + 'count': 0, + 'history': [] + } + + def get_backoff_time(self, settings): # pylint: disable=unused-argument,no-self-use + """ Formula for computing the current backoff. + Should be calculated by child class. + + :rtype: float + """ + return 0 + + def sleep(self, settings, transport): + backoff = self.get_backoff_time(settings) + if not backoff or backoff < 0: + return + transport.sleep(backoff) + + def increment(self, settings, request, response=None, error=None): + """Increment the retry counters. + + :param response: A pipeline response object. + :param error: An error encountered during the request, or + None if the response was received successfully. + + :return: Whether the retry attempts are exhausted. + """ + settings['total'] -= 1 + + if error and isinstance(error, ServiceRequestError): + # Errors when we're fairly sure that the server did not receive the + # request, so it should be safe to retry. + settings['connect'] -= 1 + settings['history'].append(RequestHistory(request, error=error)) + + elif error and isinstance(error, ServiceResponseError): + # Errors that occur after the request has been started, so we should + # assume that the server began processing it. + settings['read'] -= 1 + settings['history'].append(RequestHistory(request, error=error)) + + else: + # Incrementing because of a server error like a 500 in + # status_forcelist and a the given method is in the whitelist + if response: + settings['status'] -= 1 + settings['history'].append(RequestHistory(request, http_response=response)) + + if not is_exhausted(settings): + if request.method not in ['PUT'] and settings['retry_secondary']: + self._set_next_host_location(settings, request) + + # rewind the request body if it is a stream + if request.body and hasattr(request.body, 'read'): + # no position was saved, then retry would not work + if settings['body_position'] is None: + return False + try: + # attempt to rewind the body to the initial position + request.body.seek(settings['body_position'], SEEK_SET) + except (UnsupportedOperation, ValueError): + # if body is not seekable, then retry would not work + return False + settings['count'] += 1 + return True + return False + + def send(self, request): + retries_remaining = True + response = None + retry_settings = self.configure_retries(request) + while retries_remaining: + try: + response = self.next.send(request) + if is_retry(response, retry_settings['mode']): + retries_remaining = self.increment( + retry_settings, + request=request.http_request, + response=response.http_response) + if retries_remaining: + retry_hook( + retry_settings, + request=request.http_request, + response=response.http_response, + error=None) + self.sleep(retry_settings, request.context.transport) + continue + break + except AzureError as err: + retries_remaining = self.increment( + retry_settings, request=request.http_request, error=err) + if retries_remaining: + retry_hook( + retry_settings, + request=request.http_request, + response=None, + error=err) + self.sleep(retry_settings, request.context.transport) + continue + raise err + if retry_settings['history']: + response.context['history'] = retry_settings['history'] + response.http_response.location_mode = retry_settings['mode'] + return response + + +class ExponentialRetry(StorageRetryPolicy): + """Exponential retry.""" + + def __init__(self, initial_backoff=15, increment_base=3, retry_total=3, + retry_to_secondary=False, random_jitter_range=3, **kwargs): + ''' + Constructs an Exponential retry object. The initial_backoff is used for + the first retry. Subsequent retries are retried after initial_backoff + + increment_power^retry_count seconds. For example, by default the first retry + occurs after 15 seconds, the second after (15+3^1) = 18 seconds, and the + third after (15+3^2) = 24 seconds. + + :param int initial_backoff: + The initial backoff interval, in seconds, for the first retry. + :param int increment_base: + The base, in seconds, to increment the initial_backoff by after the + first retry. + :param int max_attempts: + The maximum number of retry attempts. + :param bool retry_to_secondary: + Whether the request should be retried to secondary, if able. This should + only be enabled of RA-GRS accounts are used and potentially stale data + can be handled. + :param int random_jitter_range: + A number in seconds which indicates a range to jitter/randomize for the back-off interval. + For example, a random_jitter_range of 3 results in the back-off interval x to vary between x+3 and x-3. + ''' + self.initial_backoff = initial_backoff + self.increment_base = increment_base + self.random_jitter_range = random_jitter_range + super(ExponentialRetry, self).__init__( + retry_total=retry_total, retry_to_secondary=retry_to_secondary, **kwargs) + + def get_backoff_time(self, settings): + """ + Calculates how long to sleep before retrying. + + :return: + An integer indicating how long to wait before retrying the request, + or None to indicate no retry should be performed. + :rtype: int or None + """ + random_generator = random.Random() + backoff = self.initial_backoff + (0 if settings['count'] == 0 else pow(self.increment_base, settings['count'])) + random_range_start = backoff - self.random_jitter_range if backoff > self.random_jitter_range else 0 + random_range_end = backoff + self.random_jitter_range + return random_generator.uniform(random_range_start, random_range_end) + + +class LinearRetry(StorageRetryPolicy): + """Linear retry.""" + + def __init__(self, backoff=15, retry_total=3, retry_to_secondary=False, random_jitter_range=3, **kwargs): + """ + Constructs a Linear retry object. + + :param int backoff: + The backoff interval, in seconds, between retries. + :param int max_attempts: + The maximum number of retry attempts. + :param bool retry_to_secondary: + Whether the request should be retried to secondary, if able. This should + only be enabled of RA-GRS accounts are used and potentially stale data + can be handled. + :param int random_jitter_range: + A number in seconds which indicates a range to jitter/randomize for the back-off interval. + For example, a random_jitter_range of 3 results in the back-off interval x to vary between x+3 and x-3. + """ + self.backoff = backoff + self.random_jitter_range = random_jitter_range + super(LinearRetry, self).__init__( + retry_total=retry_total, retry_to_secondary=retry_to_secondary, **kwargs) + + def get_backoff_time(self, settings): + """ + Calculates how long to sleep before retrying. + + :return: + An integer indicating how long to wait before retrying the request, + or None to indicate no retry should be performed. + :rtype: int or None + """ + random_generator = random.Random() + # the backoff interval normally does not change, however there is the possibility + # that it was modified by accessing the property directly after initializing the object + random_range_start = self.backoff - self.random_jitter_range \ + if self.backoff > self.random_jitter_range else 0 + random_range_end = self.backoff + self.random_jitter_range + return random_generator.uniform(random_range_start, random_range_end) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/policies_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/policies_async.py new file mode 100644 index 00000000000..e0926b81dbc --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/policies_async.py @@ -0,0 +1,220 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method + +import asyncio +import random +import logging +from typing import Any, TYPE_CHECKING + +from azure.core.pipeline.policies import AsyncHTTPPolicy +from azure.core.exceptions import AzureError + +from .policies import is_retry, StorageRetryPolicy + +if TYPE_CHECKING: + from azure.core.pipeline import PipelineRequest, PipelineResponse + + +_LOGGER = logging.getLogger(__name__) + + +async def retry_hook(settings, **kwargs): + if settings['hook']: + if asyncio.iscoroutine(settings['hook']): + await settings['hook']( + retry_count=settings['count'] - 1, + location_mode=settings['mode'], + **kwargs) + else: + settings['hook']( + retry_count=settings['count'] - 1, + location_mode=settings['mode'], + **kwargs) + + +class AsyncStorageResponseHook(AsyncHTTPPolicy): + + def __init__(self, **kwargs): # pylint: disable=unused-argument + self._response_callback = kwargs.get('raw_response_hook') + super(AsyncStorageResponseHook, self).__init__() + + async def send(self, request): + # type: (PipelineRequest) -> PipelineResponse + data_stream_total = request.context.get('data_stream_total') or \ + request.context.options.pop('data_stream_total', None) + download_stream_current = request.context.get('download_stream_current') or \ + request.context.options.pop('download_stream_current', None) + upload_stream_current = request.context.get('upload_stream_current') or \ + request.context.options.pop('upload_stream_current', None) + response_callback = request.context.get('response_callback') or \ + request.context.options.pop('raw_response_hook', self._response_callback) + + response = await self.next.send(request) + await response.http_response.load_body() + + will_retry = is_retry(response, request.context.options.get('mode')) + if not will_retry and download_stream_current is not None: + download_stream_current += int(response.http_response.headers.get('Content-Length', 0)) + if data_stream_total is None: + content_range = response.http_response.headers.get('Content-Range') + if content_range: + data_stream_total = int(content_range.split(' ', 1)[1].split('/', 1)[1]) + else: + data_stream_total = download_stream_current + elif not will_retry and upload_stream_current is not None: + upload_stream_current += int(response.http_request.headers.get('Content-Length', 0)) + for pipeline_obj in [request, response]: + pipeline_obj.context['data_stream_total'] = data_stream_total + pipeline_obj.context['download_stream_current'] = download_stream_current + pipeline_obj.context['upload_stream_current'] = upload_stream_current + if response_callback: + if asyncio.iscoroutine(response_callback): + await response_callback(response) + else: + response_callback(response) + request.context['response_callback'] = response_callback + return response + +class AsyncStorageRetryPolicy(StorageRetryPolicy): + """ + The base class for Exponential and Linear retries containing shared code. + """ + + async def sleep(self, settings, transport): + backoff = self.get_backoff_time(settings) + if not backoff or backoff < 0: + return + await transport.sleep(backoff) + + async def send(self, request): + retries_remaining = True + response = None + retry_settings = self.configure_retries(request) + while retries_remaining: + try: + response = await self.next.send(request) + if is_retry(response, retry_settings['mode']): + retries_remaining = self.increment( + retry_settings, + request=request.http_request, + response=response.http_response) + if retries_remaining: + await retry_hook( + retry_settings, + request=request.http_request, + response=response.http_response, + error=None) + await self.sleep(retry_settings, request.context.transport) + continue + break + except AzureError as err: + retries_remaining = self.increment( + retry_settings, request=request.http_request, error=err) + if retries_remaining: + await retry_hook( + retry_settings, + request=request.http_request, + response=None, + error=err) + await self.sleep(retry_settings, request.context.transport) + continue + raise err + if retry_settings['history']: + response.context['history'] = retry_settings['history'] + response.http_response.location_mode = retry_settings['mode'] + return response + + +class ExponentialRetry(AsyncStorageRetryPolicy): + """Exponential retry.""" + + def __init__(self, initial_backoff=15, increment_base=3, retry_total=3, + retry_to_secondary=False, random_jitter_range=3, **kwargs): + ''' + Constructs an Exponential retry object. The initial_backoff is used for + the first retry. Subsequent retries are retried after initial_backoff + + increment_power^retry_count seconds. For example, by default the first retry + occurs after 15 seconds, the second after (15+3^1) = 18 seconds, and the + third after (15+3^2) = 24 seconds. + + :param int initial_backoff: + The initial backoff interval, in seconds, for the first retry. + :param int increment_base: + The base, in seconds, to increment the initial_backoff by after the + first retry. + :param int max_attempts: + The maximum number of retry attempts. + :param bool retry_to_secondary: + Whether the request should be retried to secondary, if able. This should + only be enabled of RA-GRS accounts are used and potentially stale data + can be handled. + :param int random_jitter_range: + A number in seconds which indicates a range to jitter/randomize for the back-off interval. + For example, a random_jitter_range of 3 results in the back-off interval x to vary between x+3 and x-3. + ''' + self.initial_backoff = initial_backoff + self.increment_base = increment_base + self.random_jitter_range = random_jitter_range + super(ExponentialRetry, self).__init__( + retry_total=retry_total, retry_to_secondary=retry_to_secondary, **kwargs) + + def get_backoff_time(self, settings): + """ + Calculates how long to sleep before retrying. + + :return: + An integer indicating how long to wait before retrying the request, + or None to indicate no retry should be performed. + :rtype: int or None + """ + random_generator = random.Random() + backoff = self.initial_backoff + (0 if settings['count'] == 0 else pow(self.increment_base, settings['count'])) + random_range_start = backoff - self.random_jitter_range if backoff > self.random_jitter_range else 0 + random_range_end = backoff + self.random_jitter_range + return random_generator.uniform(random_range_start, random_range_end) + + +class LinearRetry(AsyncStorageRetryPolicy): + """Linear retry.""" + + def __init__(self, backoff=15, retry_total=3, retry_to_secondary=False, random_jitter_range=3, **kwargs): + """ + Constructs a Linear retry object. + + :param int backoff: + The backoff interval, in seconds, between retries. + :param int max_attempts: + The maximum number of retry attempts. + :param bool retry_to_secondary: + Whether the request should be retried to secondary, if able. This should + only be enabled of RA-GRS accounts are used and potentially stale data + can be handled. + :param int random_jitter_range: + A number in seconds which indicates a range to jitter/randomize for the back-off interval. + For example, a random_jitter_range of 3 results in the back-off interval x to vary between x+3 and x-3. + """ + self.backoff = backoff + self.random_jitter_range = random_jitter_range + super(LinearRetry, self).__init__( + retry_total=retry_total, retry_to_secondary=retry_to_secondary, **kwargs) + + def get_backoff_time(self, settings): + """ + Calculates how long to sleep before retrying. + + :return: + An integer indicating how long to wait before retrying the request, + or None to indicate no retry should be performed. + :rtype: int or None + """ + random_generator = random.Random() + # the backoff interval normally does not change, however there is the possibility + # that it was modified by accessing the property directly after initializing the object + random_range_start = self.backoff - self.random_jitter_range \ + if self.backoff > self.random_jitter_range else 0 + random_range_end = self.backoff + self.random_jitter_range + return random_generator.uniform(random_range_start, random_range_end) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/request_handlers.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/request_handlers.py new file mode 100644 index 00000000000..4f15b65a4b6 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/request_handlers.py @@ -0,0 +1,147 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, Dict, List, Type, Tuple, + TYPE_CHECKING +) + +import logging +from os import fstat +from io import (SEEK_END, SEEK_SET, UnsupportedOperation) + +import isodate + +from azure.core.exceptions import raise_with_traceback + + +_LOGGER = logging.getLogger(__name__) + + +def serialize_iso(attr): + """Serialize Datetime object into ISO-8601 formatted string. + + :param Datetime attr: Object to be serialized. + :rtype: str + :raises: ValueError if format invalid. + """ + if not attr: + return None + if isinstance(attr, str): + attr = isodate.parse_datetime(attr) + try: + utc = attr.utctimetuple() + if utc.tm_year > 9999 or utc.tm_year < 1: + raise OverflowError("Hit max or min date") + + date = "{:04}-{:02}-{:02}T{:02}:{:02}:{:02}".format( + utc.tm_year, utc.tm_mon, utc.tm_mday, + utc.tm_hour, utc.tm_min, utc.tm_sec) + return date + 'Z' + except (ValueError, OverflowError) as err: + msg = "Unable to serialize datetime object." + raise_with_traceback(ValueError, msg, err) + except AttributeError as err: + msg = "ISO-8601 object must be valid Datetime object." + raise_with_traceback(TypeError, msg, err) + + +def get_length(data): + length = None + # Check if object implements the __len__ method, covers most input cases such as bytearray. + try: + length = len(data) + except: # pylint: disable=bare-except + pass + + if not length: + # Check if the stream is a file-like stream object. + # If so, calculate the size using the file descriptor. + try: + fileno = data.fileno() + except (AttributeError, UnsupportedOperation): + pass + else: + try: + return fstat(fileno).st_size + except OSError: + # Not a valid fileno, may be possible requests returned + # a socket number? + pass + + # If the stream is seekable and tell() is implemented, calculate the stream size. + try: + current_position = data.tell() + data.seek(0, SEEK_END) + length = data.tell() - current_position + data.seek(current_position, SEEK_SET) + except (AttributeError, UnsupportedOperation): + pass + + return length + + +def read_length(data): + try: + if hasattr(data, 'read'): + read_data = b'' + for chunk in iter(lambda: data.read(4096), b""): + read_data += chunk + return len(read_data), read_data + if hasattr(data, '__iter__'): + read_data = b'' + for chunk in data: + read_data += chunk + return len(read_data), read_data + except: # pylint: disable=bare-except + pass + raise ValueError("Unable to calculate content length, please specify.") + + +def validate_and_format_range_headers( + start_range, end_range, start_range_required=True, + end_range_required=True, check_content_md5=False, align_to_page=False): + # If end range is provided, start range must be provided + if (start_range_required or end_range is not None) and start_range is None: + raise ValueError("start_range value cannot be None.") + if end_range_required and end_range is None: + raise ValueError("end_range value cannot be None.") + + # Page ranges must be 512 aligned + if align_to_page: + if start_range is not None and start_range % 512 != 0: + raise ValueError("Invalid page blob start_range: {0}. " + "The size must be aligned to a 512-byte boundary.".format(start_range)) + if end_range is not None and end_range % 512 != 511: + raise ValueError("Invalid page blob end_range: {0}. " + "The size must be aligned to a 512-byte boundary.".format(end_range)) + + # Format based on whether end_range is present + range_header = None + if end_range is not None: + range_header = 'bytes={0}-{1}'.format(start_range, end_range) + elif start_range is not None: + range_header = "bytes={0}-".format(start_range) + + # Content MD5 can only be provided for a complete range less than 4MB in size + range_validation = None + if check_content_md5: + if start_range is None or end_range is None: + raise ValueError("Both start and end range requied for MD5 content validation.") + if end_range - start_range > 4 * 1024 * 1024: + raise ValueError("Getting content MD5 for a range greater than 4MB is not supported.") + range_validation = 'true' + + return range_header, range_validation + + +def add_metadata_headers(metadata=None): + # type: (Optional[Dict[str, str]]) -> Dict[str, str] + headers = {} + if metadata: + for key, value in metadata.items(): + headers['x-ms-meta-{}'.format(key.strip())] = value.strip() if value else value + return headers diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/response_handlers.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/response_handlers.py new file mode 100644 index 00000000000..ac526e59416 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/response_handlers.py @@ -0,0 +1,159 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, Dict, List, Type, Tuple, + TYPE_CHECKING +) +import logging + +from azure.core.pipeline.policies import ContentDecodePolicy +from azure.core.exceptions import ( + HttpResponseError, + ResourceNotFoundError, + ResourceModifiedError, + ResourceExistsError, + ClientAuthenticationError, + DecodeError) + +from .parser import _to_utc_datetime +from .models import StorageErrorCode, UserDelegationKey, get_enum_value + + +if TYPE_CHECKING: + from datetime import datetime + from azure.core.exceptions import AzureError + + +_LOGGER = logging.getLogger(__name__) + + +class PartialBatchErrorException(HttpResponseError): + """There is a partial failure in batch operations. + + :param str message: The message of the exception. + :param response: Server response to be deserialized. + :param list parts: A list of the parts in multipart response. + """ + + def __init__(self, message, response, parts): + self.parts = parts + super(PartialBatchErrorException, self).__init__(message=message, response=response) + + +def parse_length_from_content_range(content_range): + ''' + Parses the blob length from the content range header: bytes 1-3/65537 + ''' + if content_range is None: + return None + + # First, split in space and take the second half: '1-3/65537' + # Next, split on slash and take the second half: '65537' + # Finally, convert to an int: 65537 + return int(content_range.split(' ', 1)[1].split('/', 1)[1]) + + +def normalize_headers(headers): + normalized = {} + for key, value in headers.items(): + if key.startswith('x-ms-'): + key = key[5:] + normalized[key.lower().replace('-', '_')] = get_enum_value(value) + return normalized + + +def deserialize_metadata(response, obj, headers): # pylint: disable=unused-argument + raw_metadata = {k: v for k, v in response.headers.items() if k.startswith("x-ms-meta-")} + return {k[10:]: v for k, v in raw_metadata.items()} + + +def return_response_headers(response, deserialized, response_headers): # pylint: disable=unused-argument + return normalize_headers(response_headers) + + +def return_headers_and_deserialized(response, deserialized, response_headers): # pylint: disable=unused-argument + return normalize_headers(response_headers), deserialized + + +def return_context_and_deserialized(response, deserialized, response_headers): # pylint: disable=unused-argument + return response.location_mode, deserialized + + +def process_storage_error(storage_error): + raise_error = HttpResponseError + error_code = storage_error.response.headers.get('x-ms-error-code') + error_message = storage_error.message + additional_data = {} + try: + error_body = ContentDecodePolicy.deserialize_from_http_generics(storage_error.response) + if error_body: + for info in error_body.iter(): + if info.tag.lower() == 'code': + error_code = info.text + elif info.tag.lower() == 'message': + error_message = info.text + else: + additional_data[info.tag] = info.text + except DecodeError: + pass + + try: + if error_code: + error_code = StorageErrorCode(error_code) + if error_code in [StorageErrorCode.condition_not_met, + StorageErrorCode.blob_overwritten]: + raise_error = ResourceModifiedError + if error_code in [StorageErrorCode.invalid_authentication_info, + StorageErrorCode.authentication_failed]: + raise_error = ClientAuthenticationError + if error_code in [StorageErrorCode.resource_not_found, + StorageErrorCode.cannot_verify_copy_source, + StorageErrorCode.blob_not_found, + StorageErrorCode.queue_not_found, + StorageErrorCode.container_not_found, + StorageErrorCode.parent_not_found, + StorageErrorCode.share_not_found]: + raise_error = ResourceNotFoundError + if error_code in [StorageErrorCode.account_already_exists, + StorageErrorCode.account_being_created, + StorageErrorCode.resource_already_exists, + StorageErrorCode.resource_type_mismatch, + StorageErrorCode.blob_already_exists, + StorageErrorCode.queue_already_exists, + StorageErrorCode.container_already_exists, + StorageErrorCode.container_being_deleted, + StorageErrorCode.queue_being_deleted, + StorageErrorCode.share_already_exists, + StorageErrorCode.share_being_deleted]: + raise_error = ResourceExistsError + except ValueError: + # Got an unknown error code + pass + + try: + error_message += "\nErrorCode:{}".format(error_code.value) + except AttributeError: + error_message += "\nErrorCode:{}".format(error_code) + for name, info in additional_data.items(): + error_message += "\n{}:{}".format(name, info) + + error = raise_error(message=error_message, response=storage_error.response) + error.error_code = error_code + error.additional_info = additional_data + raise error + + +def parse_to_internal_user_delegation_key(service_user_delegation_key): + internal_user_delegation_key = UserDelegationKey() + internal_user_delegation_key.signed_oid = service_user_delegation_key.signed_oid + internal_user_delegation_key.signed_tid = service_user_delegation_key.signed_tid + internal_user_delegation_key.signed_start = _to_utc_datetime(service_user_delegation_key.signed_start) + internal_user_delegation_key.signed_expiry = _to_utc_datetime(service_user_delegation_key.signed_expiry) + internal_user_delegation_key.signed_service = service_user_delegation_key.signed_service + internal_user_delegation_key.signed_version = service_user_delegation_key.signed_version + internal_user_delegation_key.value = service_user_delegation_key.value + return internal_user_delegation_key diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/shared_access_signature.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/shared_access_signature.py new file mode 100644 index 00000000000..367c6554ef8 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/shared_access_signature.py @@ -0,0 +1,209 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from datetime import date + +from .parser import _str, _to_utc_datetime +from .constants import X_MS_VERSION +from . import sign_string, url_quote + + +class QueryStringConstants(object): + SIGNED_SIGNATURE = 'sig' + SIGNED_PERMISSION = 'sp' + SIGNED_START = 'st' + SIGNED_EXPIRY = 'se' + SIGNED_RESOURCE = 'sr' + SIGNED_IDENTIFIER = 'si' + SIGNED_IP = 'sip' + SIGNED_PROTOCOL = 'spr' + SIGNED_VERSION = 'sv' + SIGNED_CACHE_CONTROL = 'rscc' + SIGNED_CONTENT_DISPOSITION = 'rscd' + SIGNED_CONTENT_ENCODING = 'rsce' + SIGNED_CONTENT_LANGUAGE = 'rscl' + SIGNED_CONTENT_TYPE = 'rsct' + START_PK = 'spk' + START_RK = 'srk' + END_PK = 'epk' + END_RK = 'erk' + SIGNED_RESOURCE_TYPES = 'srt' + SIGNED_SERVICES = 'ss' + SIGNED_OID = 'skoid' + SIGNED_TID = 'sktid' + SIGNED_KEY_START = 'skt' + SIGNED_KEY_EXPIRY = 'ske' + SIGNED_KEY_SERVICE = 'sks' + SIGNED_KEY_VERSION = 'skv' + + @staticmethod + def to_list(): + return [ + QueryStringConstants.SIGNED_SIGNATURE, + QueryStringConstants.SIGNED_PERMISSION, + QueryStringConstants.SIGNED_START, + QueryStringConstants.SIGNED_EXPIRY, + QueryStringConstants.SIGNED_RESOURCE, + QueryStringConstants.SIGNED_IDENTIFIER, + QueryStringConstants.SIGNED_IP, + QueryStringConstants.SIGNED_PROTOCOL, + QueryStringConstants.SIGNED_VERSION, + QueryStringConstants.SIGNED_CACHE_CONTROL, + QueryStringConstants.SIGNED_CONTENT_DISPOSITION, + QueryStringConstants.SIGNED_CONTENT_ENCODING, + QueryStringConstants.SIGNED_CONTENT_LANGUAGE, + QueryStringConstants.SIGNED_CONTENT_TYPE, + QueryStringConstants.START_PK, + QueryStringConstants.START_RK, + QueryStringConstants.END_PK, + QueryStringConstants.END_RK, + QueryStringConstants.SIGNED_RESOURCE_TYPES, + QueryStringConstants.SIGNED_SERVICES, + QueryStringConstants.SIGNED_OID, + QueryStringConstants.SIGNED_TID, + QueryStringConstants.SIGNED_KEY_START, + QueryStringConstants.SIGNED_KEY_EXPIRY, + QueryStringConstants.SIGNED_KEY_SERVICE, + QueryStringConstants.SIGNED_KEY_VERSION, + ] + + +class SharedAccessSignature(object): + ''' + Provides a factory for creating account access + signature tokens with an account name and account key. Users can either + use the factory or can construct the appropriate service and use the + generate_*_shared_access_signature method directly. + ''' + + def __init__(self, account_name, account_key, x_ms_version=X_MS_VERSION): + ''' + :param str account_name: + The storage account name used to generate the shared access signatures. + :param str account_key: + The access key to generate the shares access signatures. + :param str x_ms_version: + The service version used to generate the shared access signatures. + ''' + self.account_name = account_name + self.account_key = account_key + self.x_ms_version = x_ms_version + + def generate_account(self, services, resource_types, permission, expiry, start=None, + ip=None, protocol=None): + ''' + Generates a shared access signature for the account. + Use the returned signature with the sas_token parameter of the service + or to create a new account object. + + :param ResourceTypes resource_types: + Specifies the resource types that are accessible with the account + SAS. You can combine values to provide access to more than one + resource type. + :param AccountSasPermissions permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. You can combine + values to provide more than one permission. + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: datetime or str + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :param str protocol: + Specifies the protocol permitted for a request made. The default value + is https,http. See :class:`~azure.storage.common.models.Protocol` for possible values. + ''' + sas = _SharedAccessHelper() + sas.add_base(permission, expiry, start, ip, protocol, self.x_ms_version) + sas.add_account(services, resource_types) + sas.add_account_signature(self.account_name, self.account_key) + + return sas.get_token() + + +class _SharedAccessHelper(object): + def __init__(self): + self.query_dict = {} + + def _add_query(self, name, val): + if val: + self.query_dict[name] = _str(val) if val is not None else None + + def add_base(self, permission, expiry, start, ip, protocol, x_ms_version): + if isinstance(start, date): + start = _to_utc_datetime(start) + + if isinstance(expiry, date): + expiry = _to_utc_datetime(expiry) + + self._add_query(QueryStringConstants.SIGNED_START, start) + self._add_query(QueryStringConstants.SIGNED_EXPIRY, expiry) + self._add_query(QueryStringConstants.SIGNED_PERMISSION, permission) + self._add_query(QueryStringConstants.SIGNED_IP, ip) + self._add_query(QueryStringConstants.SIGNED_PROTOCOL, protocol) + self._add_query(QueryStringConstants.SIGNED_VERSION, x_ms_version) + + def add_resource(self, resource): + self._add_query(QueryStringConstants.SIGNED_RESOURCE, resource) + + def add_id(self, policy_id): + self._add_query(QueryStringConstants.SIGNED_IDENTIFIER, policy_id) + + def add_account(self, services, resource_types): + self._add_query(QueryStringConstants.SIGNED_SERVICES, services) + self._add_query(QueryStringConstants.SIGNED_RESOURCE_TYPES, resource_types) + + def add_override_response_headers(self, cache_control, + content_disposition, + content_encoding, + content_language, + content_type): + self._add_query(QueryStringConstants.SIGNED_CACHE_CONTROL, cache_control) + self._add_query(QueryStringConstants.SIGNED_CONTENT_DISPOSITION, content_disposition) + self._add_query(QueryStringConstants.SIGNED_CONTENT_ENCODING, content_encoding) + self._add_query(QueryStringConstants.SIGNED_CONTENT_LANGUAGE, content_language) + self._add_query(QueryStringConstants.SIGNED_CONTENT_TYPE, content_type) + + def add_account_signature(self, account_name, account_key): + def get_value_to_append(query): + return_value = self.query_dict.get(query) or '' + return return_value + '\n' + + string_to_sign = \ + (account_name + '\n' + + get_value_to_append(QueryStringConstants.SIGNED_PERMISSION) + + get_value_to_append(QueryStringConstants.SIGNED_SERVICES) + + get_value_to_append(QueryStringConstants.SIGNED_RESOURCE_TYPES) + + get_value_to_append(QueryStringConstants.SIGNED_START) + + get_value_to_append(QueryStringConstants.SIGNED_EXPIRY) + + get_value_to_append(QueryStringConstants.SIGNED_IP) + + get_value_to_append(QueryStringConstants.SIGNED_PROTOCOL) + + get_value_to_append(QueryStringConstants.SIGNED_VERSION)) + + self._add_query(QueryStringConstants.SIGNED_SIGNATURE, + sign_string(account_key, string_to_sign)) + + def get_token(self): + return '&'.join(['{0}={1}'.format(n, url_quote(v)) for n, v in self.query_dict.items() if v is not None]) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/uploads.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/uploads.py new file mode 100644 index 00000000000..abf3fb2ce00 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/uploads.py @@ -0,0 +1,550 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use + +from concurrent import futures +from io import (BytesIO, IOBase, SEEK_CUR, SEEK_END, SEEK_SET, UnsupportedOperation) +from threading import Lock +from itertools import islice +from math import ceil + +import six + +from azure.core.tracing.common import with_current_context + +from . import encode_base64, url_quote +from .request_handlers import get_length +from .response_handlers import return_response_headers +from .encryption import get_blob_encryptor_and_padder + + +_LARGE_BLOB_UPLOAD_MAX_READ_BUFFER_SIZE = 4 * 1024 * 1024 +_ERROR_VALUE_SHOULD_BE_SEEKABLE_STREAM = "{0} should be a seekable file-like/io.IOBase type stream object." + + +def _parallel_uploads(executor, uploader, pending, running): + range_ids = [] + while True: + # Wait for some download to finish before adding a new one + done, running = futures.wait(running, return_when=futures.FIRST_COMPLETED) + range_ids.extend([chunk.result() for chunk in done]) + try: + for _ in range(0, len(done)): + next_chunk = next(pending) + running.add(executor.submit(with_current_context(uploader), next_chunk)) + except StopIteration: + break + + # Wait for the remaining uploads to finish + done, _running = futures.wait(running) + range_ids.extend([chunk.result() for chunk in done]) + return range_ids + + +def upload_data_chunks( + service=None, + uploader_class=None, + total_size=None, + chunk_size=None, + max_concurrency=None, + stream=None, + validate_content=None, + encryption_options=None, + **kwargs): + + if encryption_options: + encryptor, padder = get_blob_encryptor_and_padder( + encryption_options.get('cek'), + encryption_options.get('vector'), + uploader_class is not PageBlobChunkUploader) + kwargs['encryptor'] = encryptor + kwargs['padder'] = padder + + parallel = max_concurrency > 1 + if parallel and 'modified_access_conditions' in kwargs: + # Access conditions do not work with parallelism + kwargs['modified_access_conditions'] = None + + uploader = uploader_class( + service=service, + total_size=total_size, + chunk_size=chunk_size, + stream=stream, + parallel=parallel, + validate_content=validate_content, + **kwargs) + if parallel: + executor = futures.ThreadPoolExecutor(max_concurrency) + upload_tasks = uploader.get_chunk_streams() + running_futures = [ + executor.submit(with_current_context(uploader.process_chunk), u) + for u in islice(upload_tasks, 0, max_concurrency) + ] + range_ids = _parallel_uploads(executor, uploader.process_chunk, upload_tasks, running_futures) + else: + range_ids = [uploader.process_chunk(result) for result in uploader.get_chunk_streams()] + if any(range_ids): + return [r[1] for r in sorted(range_ids, key=lambda r: r[0])] + return uploader.response_headers + + +def upload_substream_blocks( + service=None, + uploader_class=None, + total_size=None, + chunk_size=None, + max_concurrency=None, + stream=None, + **kwargs): + parallel = max_concurrency > 1 + if parallel and 'modified_access_conditions' in kwargs: + # Access conditions do not work with parallelism + kwargs['modified_access_conditions'] = None + uploader = uploader_class( + service=service, + total_size=total_size, + chunk_size=chunk_size, + stream=stream, + parallel=parallel, + **kwargs) + + if parallel: + executor = futures.ThreadPoolExecutor(max_concurrency) + upload_tasks = uploader.get_substream_blocks() + running_futures = [ + executor.submit(with_current_context(uploader.process_substream_block), u) + for u in islice(upload_tasks, 0, max_concurrency) + ] + range_ids = _parallel_uploads(executor, uploader.process_substream_block, upload_tasks, running_futures) + else: + range_ids = [uploader.process_substream_block(b) for b in uploader.get_substream_blocks()] + return sorted(range_ids) + + +class _ChunkUploader(object): # pylint: disable=too-many-instance-attributes + + def __init__(self, service, total_size, chunk_size, stream, parallel, encryptor=None, padder=None, **kwargs): + self.service = service + self.total_size = total_size + self.chunk_size = chunk_size + self.stream = stream + self.parallel = parallel + + # Stream management + self.stream_start = stream.tell() if parallel else None + self.stream_lock = Lock() if parallel else None + + # Progress feedback + self.progress_total = 0 + self.progress_lock = Lock() if parallel else None + + # Encryption + self.encryptor = encryptor + self.padder = padder + self.response_headers = None + self.etag = None + self.last_modified = None + self.request_options = kwargs + + def get_chunk_streams(self): + index = 0 + while True: + data = b"" + read_size = self.chunk_size + + # Buffer until we either reach the end of the stream or get a whole chunk. + while True: + if self.total_size: + read_size = min(self.chunk_size - len(data), self.total_size - (index + len(data))) + temp = self.stream.read(read_size) + if not isinstance(temp, six.binary_type): + raise TypeError("Blob data should be of type bytes.") + data += temp or b"" + + # We have read an empty string and so are at the end + # of the buffer or we have read a full chunk. + if temp == b"" or len(data) == self.chunk_size: + break + + if len(data) == self.chunk_size: + if self.padder: + data = self.padder.update(data) + if self.encryptor: + data = self.encryptor.update(data) + yield index, data + else: + if self.padder: + data = self.padder.update(data) + self.padder.finalize() + if self.encryptor: + data = self.encryptor.update(data) + self.encryptor.finalize() + if data: + yield index, data + break + index += len(data) + + def process_chunk(self, chunk_data): + chunk_bytes = chunk_data[1] + chunk_offset = chunk_data[0] + return self._upload_chunk_with_progress(chunk_offset, chunk_bytes) + + def _update_progress(self, length): + if self.progress_lock is not None: + with self.progress_lock: + self.progress_total += length + else: + self.progress_total += length + + def _upload_chunk(self, chunk_offset, chunk_data): + raise NotImplementedError("Must be implemented by child class.") + + def _upload_chunk_with_progress(self, chunk_offset, chunk_data): + range_id = self._upload_chunk(chunk_offset, chunk_data) + self._update_progress(len(chunk_data)) + return range_id + + def get_substream_blocks(self): + assert self.chunk_size is not None + lock = self.stream_lock + blob_length = self.total_size + + if blob_length is None: + blob_length = get_length(self.stream) + if blob_length is None: + raise ValueError("Unable to determine content length of upload data.") + + blocks = int(ceil(blob_length / (self.chunk_size * 1.0))) + last_block_size = self.chunk_size if blob_length % self.chunk_size == 0 else blob_length % self.chunk_size + + for i in range(blocks): + index = i * self.chunk_size + length = last_block_size if i == blocks - 1 else self.chunk_size + yield ('BlockId{}'.format("%05d" % i), SubStream(self.stream, index, length, lock)) + + def process_substream_block(self, block_data): + return self._upload_substream_block_with_progress(block_data[0], block_data[1]) + + def _upload_substream_block(self, block_id, block_stream): + raise NotImplementedError("Must be implemented by child class.") + + def _upload_substream_block_with_progress(self, block_id, block_stream): + range_id = self._upload_substream_block(block_id, block_stream) + self._update_progress(len(block_stream)) + return range_id + + def set_response_properties(self, resp): + self.etag = resp.etag + self.last_modified = resp.last_modified + + +class BlockBlobChunkUploader(_ChunkUploader): + + def __init__(self, *args, **kwargs): + kwargs.pop("modified_access_conditions", None) + super(BlockBlobChunkUploader, self).__init__(*args, **kwargs) + self.current_length = None + + def _upload_chunk(self, chunk_offset, chunk_data): + # TODO: This is incorrect, but works with recording. + index = '{0:032d}'.format(chunk_offset) + block_id = encode_base64(url_quote(encode_base64(index))) + self.service.stage_block( + block_id, + len(chunk_data), + chunk_data, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + return index, block_id + + def _upload_substream_block(self, block_id, block_stream): + try: + self.service.stage_block( + block_id, + len(block_stream), + block_stream, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + finally: + block_stream.close() + return block_id + + +class PageBlobChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + def _is_chunk_empty(self, chunk_data): + # read until non-zero byte is encountered + # if reached the end without returning, then chunk_data is all 0's + return not any(bytearray(chunk_data)) + + def _upload_chunk(self, chunk_offset, chunk_data): + # avoid uploading the empty pages + if not self._is_chunk_empty(chunk_data): + chunk_end = chunk_offset + len(chunk_data) - 1 + content_range = "bytes={0}-{1}".format(chunk_offset, chunk_end) + computed_md5 = None + self.response_headers = self.service.upload_pages( + chunk_data, + content_length=len(chunk_data), + transactional_content_md5=computed_md5, + range=content_range, + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + + if not self.parallel and self.request_options.get('modified_access_conditions'): + self.request_options['modified_access_conditions'].if_match = self.response_headers['etag'] + + +class AppendBlobChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + def __init__(self, *args, **kwargs): + super(AppendBlobChunkUploader, self).__init__(*args, **kwargs) + self.current_length = None + + def _upload_chunk(self, chunk_offset, chunk_data): + if self.current_length is None: + self.response_headers = self.service.append_block( + chunk_data, + content_length=len(chunk_data), + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + self.current_length = int(self.response_headers["blob_append_offset"]) + else: + self.request_options['append_position_access_conditions'].append_position = \ + self.current_length + chunk_offset + self.response_headers = self.service.append_block( + chunk_data, + content_length=len(chunk_data), + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + + +class FileChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + def _upload_chunk(self, chunk_offset, chunk_data): + length = len(chunk_data) + chunk_end = chunk_offset + length - 1 + response = self.service.upload_range( + chunk_data, + chunk_offset, + length, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + return 'bytes={0}-{1}'.format(chunk_offset, chunk_end), response + + +class SubStream(IOBase): + + def __init__(self, wrapped_stream, stream_begin_index, length, lockObj): + # Python 2.7: file-like objects created with open() typically support seek(), but are not + # derivations of io.IOBase and thus do not implement seekable(). + # Python > 3.0: file-like objects created with open() are derived from io.IOBase. + try: + # only the main thread runs this, so there's no need grabbing the lock + wrapped_stream.seek(0, SEEK_CUR) + except: + raise ValueError("Wrapped stream must support seek().") + + self._lock = lockObj + self._wrapped_stream = wrapped_stream + self._position = 0 + self._stream_begin_index = stream_begin_index + self._length = length + self._buffer = BytesIO() + + # we must avoid buffering more than necessary, and also not use up too much memory + # so the max buffer size is capped at 4MB + self._max_buffer_size = ( + length if length < _LARGE_BLOB_UPLOAD_MAX_READ_BUFFER_SIZE else _LARGE_BLOB_UPLOAD_MAX_READ_BUFFER_SIZE + ) + self._current_buffer_start = 0 + self._current_buffer_size = 0 + super(SubStream, self).__init__() + + def __len__(self): + return self._length + + def close(self): + if self._buffer: + self._buffer.close() + self._wrapped_stream = None + IOBase.close(self) + + def fileno(self): + return self._wrapped_stream.fileno() + + def flush(self): + pass + + def read(self, size=None): + if self.closed: # pylint: disable=using-constant-test + raise ValueError("Stream is closed.") + + if size is None: + size = self._length - self._position + + # adjust if out of bounds + if size + self._position >= self._length: + size = self._length - self._position + + # return fast + if size == 0 or self._buffer.closed: + return b"" + + # attempt first read from the read buffer and update position + read_buffer = self._buffer.read(size) + bytes_read = len(read_buffer) + bytes_remaining = size - bytes_read + self._position += bytes_read + + # repopulate the read buffer from the underlying stream to fulfill the request + # ensure the seek and read operations are done atomically (only if a lock is provided) + if bytes_remaining > 0: + with self._buffer: + # either read in the max buffer size specified on the class + # or read in just enough data for the current block/sub stream + current_max_buffer_size = min(self._max_buffer_size, self._length - self._position) + + # lock is only defined if max_concurrency > 1 (parallel uploads) + if self._lock: + with self._lock: + # reposition the underlying stream to match the start of the data to read + absolute_position = self._stream_begin_index + self._position + self._wrapped_stream.seek(absolute_position, SEEK_SET) + # If we can't seek to the right location, our read will be corrupted so fail fast. + if self._wrapped_stream.tell() != absolute_position: + raise IOError("Stream failed to seek to the desired location.") + buffer_from_stream = self._wrapped_stream.read(current_max_buffer_size) + else: + buffer_from_stream = self._wrapped_stream.read(current_max_buffer_size) + + if buffer_from_stream: + # update the buffer with new data from the wrapped stream + # we need to note down the start position and size of the buffer, in case seek is performed later + self._buffer = BytesIO(buffer_from_stream) + self._current_buffer_start = self._position + self._current_buffer_size = len(buffer_from_stream) + + # read the remaining bytes from the new buffer and update position + second_read_buffer = self._buffer.read(bytes_remaining) + read_buffer += second_read_buffer + self._position += len(second_read_buffer) + + return read_buffer + + def readable(self): + return True + + def readinto(self, b): + raise UnsupportedOperation + + def seek(self, offset, whence=0): + if whence is SEEK_SET: + start_index = 0 + elif whence is SEEK_CUR: + start_index = self._position + elif whence is SEEK_END: + start_index = self._length + offset = -offset + else: + raise ValueError("Invalid argument for the 'whence' parameter.") + + pos = start_index + offset + + if pos > self._length: + pos = self._length + elif pos < 0: + pos = 0 + + # check if buffer is still valid + # if not, drop buffer + if pos < self._current_buffer_start or pos >= self._current_buffer_start + self._current_buffer_size: + self._buffer.close() + self._buffer = BytesIO() + else: # if yes seek to correct position + delta = pos - self._current_buffer_start + self._buffer.seek(delta, SEEK_SET) + + self._position = pos + return pos + + def seekable(self): + return True + + def tell(self): + return self._position + + def write(self): + raise UnsupportedOperation + + def writelines(self): + raise UnsupportedOperation + + def writeable(self): + return False + + +class IterStreamer(object): + """ + File-like streaming iterator. + """ + + def __init__(self, generator, encoding="UTF-8"): + self.generator = generator + self.iterator = iter(generator) + self.leftover = b"" + self.encoding = encoding + + def __len__(self): + return self.generator.__len__() + + def __iter__(self): + return self.iterator + + def seekable(self): + return False + + def __next__(self): + return next(self.iterator) + + next = __next__ # Python 2 compatibility. + + def tell(self, *args, **kwargs): + raise UnsupportedOperation("Data generator does not support tell.") + + def seek(self, *args, **kwargs): + raise UnsupportedOperation("Data generator is unseekable.") + + def read(self, size): + data = self.leftover + count = len(self.leftover) + try: + while count < size: + chunk = self.__next__() + if isinstance(chunk, six.text_type): + chunk = chunk.encode(self.encoding) + data += chunk + count += len(chunk) + except StopIteration: + pass + + if count > size: + self.leftover = data[size:] + + return data[:size] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/uploads_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/uploads_async.py new file mode 100644 index 00000000000..fe68a2b5533 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared/uploads_async.py @@ -0,0 +1,350 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use + +import asyncio +from asyncio import Lock +from itertools import islice +import threading + +from math import ceil + +import six + +from . import encode_base64, url_quote +from .request_handlers import get_length +from .response_handlers import return_response_headers +from .encryption import get_blob_encryptor_and_padder +from .uploads import SubStream, IterStreamer # pylint: disable=unused-import + + +_LARGE_BLOB_UPLOAD_MAX_READ_BUFFER_SIZE = 4 * 1024 * 1024 +_ERROR_VALUE_SHOULD_BE_SEEKABLE_STREAM = '{0} should be a seekable file-like/io.IOBase type stream object.' + + +async def _parallel_uploads(uploader, pending, running): + range_ids = [] + while True: + # Wait for some download to finish before adding a new one + done, running = await asyncio.wait(running, return_when=asyncio.FIRST_COMPLETED) + range_ids.extend([chunk.result() for chunk in done]) + try: + for _ in range(0, len(done)): + next_chunk = next(pending) + running.add(asyncio.ensure_future(uploader(next_chunk))) + except StopIteration: + break + + # Wait for the remaining uploads to finish + if running: + done, _running = await asyncio.wait(running) + range_ids.extend([chunk.result() for chunk in done]) + return range_ids + + +async def upload_data_chunks( + service=None, + uploader_class=None, + total_size=None, + chunk_size=None, + max_concurrency=None, + stream=None, + encryption_options=None, + **kwargs): + + if encryption_options: + encryptor, padder = get_blob_encryptor_and_padder( + encryption_options.get('cek'), + encryption_options.get('vector'), + uploader_class is not PageBlobChunkUploader) + kwargs['encryptor'] = encryptor + kwargs['padder'] = padder + + parallel = max_concurrency > 1 + if parallel and 'modified_access_conditions' in kwargs: + # Access conditions do not work with parallelism + kwargs['modified_access_conditions'] = None + + uploader = uploader_class( + service=service, + total_size=total_size, + chunk_size=chunk_size, + stream=stream, + parallel=parallel, + **kwargs) + + if parallel: + upload_tasks = uploader.get_chunk_streams() + running_futures = [ + asyncio.ensure_future(uploader.process_chunk(u)) + for u in islice(upload_tasks, 0, max_concurrency) + ] + range_ids = await _parallel_uploads(uploader.process_chunk, upload_tasks, running_futures) + else: + range_ids = [] + for chunk in uploader.get_chunk_streams(): + range_ids.append(await uploader.process_chunk(chunk)) + + if any(range_ids): + return [r[1] for r in sorted(range_ids, key=lambda r: r[0])] + return uploader.response_headers + + +async def upload_substream_blocks( + service=None, + uploader_class=None, + total_size=None, + chunk_size=None, + max_concurrency=None, + stream=None, + **kwargs): + parallel = max_concurrency > 1 + if parallel and 'modified_access_conditions' in kwargs: + # Access conditions do not work with parallelism + kwargs['modified_access_conditions'] = None + uploader = uploader_class( + service=service, + total_size=total_size, + chunk_size=chunk_size, + stream=stream, + parallel=parallel, + **kwargs) + + if parallel: + upload_tasks = uploader.get_substream_blocks() + running_futures = [ + asyncio.ensure_future(uploader.process_substream_block(u)) + for u in islice(upload_tasks, 0, max_concurrency) + ] + range_ids = await _parallel_uploads(uploader.process_substream_block, upload_tasks, running_futures) + else: + range_ids = [] + for block in uploader.get_substream_blocks(): + range_ids.append(await uploader.process_substream_block(block)) + return sorted(range_ids) + + +class _ChunkUploader(object): # pylint: disable=too-many-instance-attributes + + def __init__(self, service, total_size, chunk_size, stream, parallel, encryptor=None, padder=None, **kwargs): + self.service = service + self.total_size = total_size + self.chunk_size = chunk_size + self.stream = stream + self.parallel = parallel + + # Stream management + self.stream_start = stream.tell() if parallel else None + self.stream_lock = threading.Lock() if parallel else None + + # Progress feedback + self.progress_total = 0 + self.progress_lock = Lock() if parallel else None + + # Encryption + self.encryptor = encryptor + self.padder = padder + self.response_headers = None + self.etag = None + self.last_modified = None + self.request_options = kwargs + + def get_chunk_streams(self): + index = 0 + while True: + data = b'' + read_size = self.chunk_size + + # Buffer until we either reach the end of the stream or get a whole chunk. + while True: + if self.total_size: + read_size = min(self.chunk_size - len(data), self.total_size - (index + len(data))) + temp = self.stream.read(read_size) + if not isinstance(temp, six.binary_type): + raise TypeError('Blob data should be of type bytes.') + data += temp or b"" + + # We have read an empty string and so are at the end + # of the buffer or we have read a full chunk. + if temp == b'' or len(data) == self.chunk_size: + break + + if len(data) == self.chunk_size: + if self.padder: + data = self.padder.update(data) + if self.encryptor: + data = self.encryptor.update(data) + yield index, data + else: + if self.padder: + data = self.padder.update(data) + self.padder.finalize() + if self.encryptor: + data = self.encryptor.update(data) + self.encryptor.finalize() + if data: + yield index, data + break + index += len(data) + + async def process_chunk(self, chunk_data): + chunk_bytes = chunk_data[1] + chunk_offset = chunk_data[0] + return await self._upload_chunk_with_progress(chunk_offset, chunk_bytes) + + async def _update_progress(self, length): + if self.progress_lock is not None: + async with self.progress_lock: + self.progress_total += length + else: + self.progress_total += length + + async def _upload_chunk(self, chunk_offset, chunk_data): + raise NotImplementedError("Must be implemented by child class.") + + async def _upload_chunk_with_progress(self, chunk_offset, chunk_data): + range_id = await self._upload_chunk(chunk_offset, chunk_data) + await self._update_progress(len(chunk_data)) + return range_id + + def get_substream_blocks(self): + assert self.chunk_size is not None + lock = self.stream_lock + blob_length = self.total_size + + if blob_length is None: + blob_length = get_length(self.stream) + if blob_length is None: + raise ValueError("Unable to determine content length of upload data.") + + blocks = int(ceil(blob_length / (self.chunk_size * 1.0))) + last_block_size = self.chunk_size if blob_length % self.chunk_size == 0 else blob_length % self.chunk_size + + for i in range(blocks): + index = i * self.chunk_size + length = last_block_size if i == blocks - 1 else self.chunk_size + yield ('BlockId{}'.format("%05d" % i), SubStream(self.stream, index, length, lock)) + + async def process_substream_block(self, block_data): + return await self._upload_substream_block_with_progress(block_data[0], block_data[1]) + + async def _upload_substream_block(self, block_id, block_stream): + raise NotImplementedError("Must be implemented by child class.") + + async def _upload_substream_block_with_progress(self, block_id, block_stream): + range_id = await self._upload_substream_block(block_id, block_stream) + await self._update_progress(len(block_stream)) + return range_id + + def set_response_properties(self, resp): + self.etag = resp.etag + self.last_modified = resp.last_modified + + +class BlockBlobChunkUploader(_ChunkUploader): + + def __init__(self, *args, **kwargs): + kwargs.pop('modified_access_conditions', None) + super(BlockBlobChunkUploader, self).__init__(*args, **kwargs) + self.current_length = None + + async def _upload_chunk(self, chunk_offset, chunk_data): + # TODO: This is incorrect, but works with recording. + index = '{0:032d}'.format(chunk_offset) + block_id = encode_base64(url_quote(encode_base64(index))) + await self.service.stage_block( + block_id, + len(chunk_data), + chunk_data, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options) + return index, block_id + + async def _upload_substream_block(self, block_id, block_stream): + try: + await self.service.stage_block( + block_id, + len(block_stream), + block_stream, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options) + finally: + block_stream.close() + return block_id + + +class PageBlobChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + def _is_chunk_empty(self, chunk_data): + # read until non-zero byte is encountered + # if reached the end without returning, then chunk_data is all 0's + for each_byte in chunk_data: + if each_byte not in [0, b'\x00']: + return False + return True + + async def _upload_chunk(self, chunk_offset, chunk_data): + # avoid uploading the empty pages + if not self._is_chunk_empty(chunk_data): + chunk_end = chunk_offset + len(chunk_data) - 1 + content_range = 'bytes={0}-{1}'.format(chunk_offset, chunk_end) + computed_md5 = None + self.response_headers = await self.service.upload_pages( + chunk_data, + content_length=len(chunk_data), + transactional_content_md5=computed_md5, + range=content_range, + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options) + + if not self.parallel and self.request_options.get('modified_access_conditions'): + self.request_options['modified_access_conditions'].if_match = self.response_headers['etag'] + + +class AppendBlobChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + def __init__(self, *args, **kwargs): + super(AppendBlobChunkUploader, self).__init__(*args, **kwargs) + self.current_length = None + + async def _upload_chunk(self, chunk_offset, chunk_data): + if self.current_length is None: + self.response_headers = await self.service.append_block( + chunk_data, + content_length=len(chunk_data), + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options) + self.current_length = int(self.response_headers['blob_append_offset']) + else: + self.request_options['append_position_access_conditions'].append_position = \ + self.current_length + chunk_offset + self.response_headers = await self.service.append_block( + chunk_data, + content_length=len(chunk_data), + cls=return_response_headers, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options) + + +class FileChunkUploader(_ChunkUploader): # pylint: disable=abstract-method + + async def _upload_chunk(self, chunk_offset, chunk_data): + chunk_end = chunk_offset + len(chunk_data) - 1 + response = await self.service.upload_range( + chunk_data, + chunk_offset, + chunk_end, + data_stream_total=self.total_size, + upload_stream_current=self.progress_total, + **self.request_options + ) + range_id = 'bytes={0}-{1}'.format(chunk_offset, chunk_end) + return range_id, response diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared_access_signature.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared_access_signature.py new file mode 100644 index 00000000000..9475a1baeed --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_shared_access_signature.py @@ -0,0 +1,584 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, TYPE_CHECKING +) + +from ._shared import sign_string, url_quote +from ._shared.constants import X_MS_VERSION +from ._shared.models import Services +from ._shared.shared_access_signature import SharedAccessSignature, _SharedAccessHelper, \ + QueryStringConstants + +if TYPE_CHECKING: + from datetime import datetime + from . import ( + ResourceTypes, + AccountSasPermissions, + UserDelegationKey, + ContainerSasPermissions, + BlobSasPermissions + ) + + +class BlobQueryStringConstants(object): + SIGNED_TIMESTAMP = 'snapshot' + + +class BlobSharedAccessSignature(SharedAccessSignature): + ''' + Provides a factory for creating blob and container access + signature tokens with a common account name and account key. Users can either + use the factory or can construct the appropriate service and use the + generate_*_shared_access_signature method directly. + ''' + + def __init__(self, account_name, account_key=None, user_delegation_key=None): + ''' + :param str account_name: + The storage account name used to generate the shared access signatures. + :param str account_key: + The access key to generate the shares access signatures. + :param ~azure.storage.blob.models.UserDelegationKey user_delegation_key: + Instead of an account key, the user could pass in a user delegation key. + A user delegation key can be obtained from the service by authenticating with an AAD identity; + this can be accomplished by calling get_user_delegation_key on any Blob service object. + ''' + super(BlobSharedAccessSignature, self).__init__(account_name, account_key, x_ms_version=X_MS_VERSION) + self.user_delegation_key = user_delegation_key + + def generate_blob(self, container_name, blob_name, snapshot=None, version_id=None, permission=None, + expiry=None, start=None, policy_id=None, ip=None, protocol=None, + cache_control=None, content_disposition=None, + content_encoding=None, content_language=None, + content_type=None): + ''' + Generates a shared access signature for the blob or one of its snapshots. + Use the returned signature with the sas_token parameter of any BlobService. + + :param str container_name: + Name of container. + :param str blob_name: + Name of blob. + :param str snapshot: + The snapshot parameter is an opaque DateTime value that, + when present, specifies the blob snapshot to grant permission. + :param BlobSasPermissions permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Permissions must be ordered read, write, delete, list. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: datetime or str + :param str policy_id: + A unique value up to 64 characters in length that correlates to a + stored access policy. To create a stored access policy, use + set_blob_service_properties. + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :param str protocol: + Specifies the protocol permitted for a request made. The default value + is https,http. See :class:`~azure.storage.common.models.Protocol` for possible values. + :param str cache_control: + Response header value for Cache-Control when resource is accessed + using this shared access signature. + :param str content_disposition: + Response header value for Content-Disposition when resource is accessed + using this shared access signature. + :param str content_encoding: + Response header value for Content-Encoding when resource is accessed + using this shared access signature. + :param str content_language: + Response header value for Content-Language when resource is accessed + using this shared access signature. + :param str content_type: + Response header value for Content-Type when resource is accessed + using this shared access signature. + ''' + resource_path = container_name + '/' + blob_name + + sas = _BlobSharedAccessHelper() + sas.add_base(permission, expiry, start, ip, protocol, self.x_ms_version) + sas.add_id(policy_id) + + resource = 'bs' if snapshot else 'b' + resource = 'bv' if version_id else resource + sas.add_resource(resource) + + sas.add_timestamp(snapshot or version_id) + sas.add_override_response_headers(cache_control, content_disposition, + content_encoding, content_language, + content_type) + sas.add_resource_signature(self.account_name, self.account_key, resource_path, + user_delegation_key=self.user_delegation_key) + + return sas.get_token() + + def generate_container(self, container_name, permission=None, expiry=None, + start=None, policy_id=None, ip=None, protocol=None, + cache_control=None, content_disposition=None, + content_encoding=None, content_language=None, + content_type=None): + ''' + Generates a shared access signature for the container. + Use the returned signature with the sas_token parameter of any BlobService. + + :param str container_name: + Name of container. + :param ContainerSasPermissions permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Permissions must be ordered read, write, delete, list. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: datetime or str + :param str policy_id: + A unique value up to 64 characters in length that correlates to a + stored access policy. To create a stored access policy, use + set_blob_service_properties. + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying sip=168.1.5.65 or sip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :param str protocol: + Specifies the protocol permitted for a request made. The default value + is https,http. See :class:`~azure.storage.common.models.Protocol` for possible values. + :param str cache_control: + Response header value for Cache-Control when resource is accessed + using this shared access signature. + :param str content_disposition: + Response header value for Content-Disposition when resource is accessed + using this shared access signature. + :param str content_encoding: + Response header value for Content-Encoding when resource is accessed + using this shared access signature. + :param str content_language: + Response header value for Content-Language when resource is accessed + using this shared access signature. + :param str content_type: + Response header value for Content-Type when resource is accessed + using this shared access signature. + ''' + sas = _BlobSharedAccessHelper() + sas.add_base(permission, expiry, start, ip, protocol, self.x_ms_version) + sas.add_id(policy_id) + sas.add_resource('c') + sas.add_override_response_headers(cache_control, content_disposition, + content_encoding, content_language, + content_type) + sas.add_resource_signature(self.account_name, self.account_key, container_name, + user_delegation_key=self.user_delegation_key) + return sas.get_token() + + +class _BlobSharedAccessHelper(_SharedAccessHelper): + + def add_timestamp(self, timestamp): + self._add_query(BlobQueryStringConstants.SIGNED_TIMESTAMP, timestamp) + + def get_value_to_append(self, query): + return_value = self.query_dict.get(query) or '' + return return_value + '\n' + + def add_resource_signature(self, account_name, account_key, path, user_delegation_key=None): + # pylint: disable = no-member + if path[0] != '/': + path = '/' + path + + canonicalized_resource = '/blob/' + account_name + path + '\n' + + # Form the string to sign from shared_access_policy and canonicalized + # resource. The order of values is important. + string_to_sign = \ + (self.get_value_to_append(QueryStringConstants.SIGNED_PERMISSION) + + self.get_value_to_append(QueryStringConstants.SIGNED_START) + + self.get_value_to_append(QueryStringConstants.SIGNED_EXPIRY) + + canonicalized_resource) + + if user_delegation_key is not None: + self._add_query(QueryStringConstants.SIGNED_OID, user_delegation_key.signed_oid) + self._add_query(QueryStringConstants.SIGNED_TID, user_delegation_key.signed_tid) + self._add_query(QueryStringConstants.SIGNED_KEY_START, user_delegation_key.signed_start) + self._add_query(QueryStringConstants.SIGNED_KEY_EXPIRY, user_delegation_key.signed_expiry) + self._add_query(QueryStringConstants.SIGNED_KEY_SERVICE, user_delegation_key.signed_service) + self._add_query(QueryStringConstants.SIGNED_KEY_VERSION, user_delegation_key.signed_version) + + string_to_sign += \ + (self.get_value_to_append(QueryStringConstants.SIGNED_OID) + + self.get_value_to_append(QueryStringConstants.SIGNED_TID) + + self.get_value_to_append(QueryStringConstants.SIGNED_KEY_START) + + self.get_value_to_append(QueryStringConstants.SIGNED_KEY_EXPIRY) + + self.get_value_to_append(QueryStringConstants.SIGNED_KEY_SERVICE) + + self.get_value_to_append(QueryStringConstants.SIGNED_KEY_VERSION)) + else: + string_to_sign += self.get_value_to_append(QueryStringConstants.SIGNED_IDENTIFIER) + + string_to_sign += \ + (self.get_value_to_append(QueryStringConstants.SIGNED_IP) + + self.get_value_to_append(QueryStringConstants.SIGNED_PROTOCOL) + + self.get_value_to_append(QueryStringConstants.SIGNED_VERSION) + + self.get_value_to_append(QueryStringConstants.SIGNED_RESOURCE) + + self.get_value_to_append(BlobQueryStringConstants.SIGNED_TIMESTAMP) + + self.get_value_to_append(QueryStringConstants.SIGNED_CACHE_CONTROL) + + self.get_value_to_append(QueryStringConstants.SIGNED_CONTENT_DISPOSITION) + + self.get_value_to_append(QueryStringConstants.SIGNED_CONTENT_ENCODING) + + self.get_value_to_append(QueryStringConstants.SIGNED_CONTENT_LANGUAGE) + + self.get_value_to_append(QueryStringConstants.SIGNED_CONTENT_TYPE)) + + # remove the trailing newline + if string_to_sign[-1] == '\n': + string_to_sign = string_to_sign[:-1] + + self._add_query(QueryStringConstants.SIGNED_SIGNATURE, + sign_string(account_key if user_delegation_key is None else user_delegation_key.value, + string_to_sign)) + + def get_token(self): + # a conscious decision was made to exclude the timestamp in the generated token + # this is to avoid having two snapshot ids in the query parameters when the user appends the snapshot timestamp + exclude = [BlobQueryStringConstants.SIGNED_TIMESTAMP] + return '&'.join(['{0}={1}'.format(n, url_quote(v)) + for n, v in self.query_dict.items() if v is not None and n not in exclude]) + + +def generate_account_sas( + account_name, # type: str + account_key, # type: str + resource_types, # type: Union[ResourceTypes, str] + permission, # type: Union[AccountSasPermissions, str] + expiry, # type: Optional[Union[datetime, str]] + start=None, # type: Optional[Union[datetime, str]] + ip=None, # type: Optional[str] + **kwargs # type: Any + ): # type: (...) -> str + """Generates a shared access signature for the blob service. + + Use the returned signature with the credential parameter of any BlobServiceClient, + ContainerClient or BlobClient. + + :param str account_name: + The storage account name used to generate the shared access signature. + :param str account_key: + The account key, also called shared key or access key, to generate the shared access signature. + :param resource_types: + Specifies the resource types that are accessible with the account SAS. + :type resource_types: str or ~azure.storage.blob.ResourceTypes + :param permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :type permission: str or ~azure.storage.blob.AccountSasPermissions + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: ~datetime.datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: ~datetime.datetime or str + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying ip=168.1.5.65 or ip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :keyword str protocol: + Specifies the protocol permitted for a request made. The default value is https. + :return: A Shared Access Signature (sas) token. + :rtype: str + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication.py + :start-after: [START create_sas_token] + :end-before: [END create_sas_token] + :language: python + :dedent: 8 + :caption: Generating a shared access signature. + """ + sas = SharedAccessSignature(account_name, account_key) + return sas.generate_account( + services=Services(blob=True), + resource_types=resource_types, + permission=permission, + expiry=expiry, + start=start, + ip=ip, + **kwargs + ) # type: ignore + + +def generate_container_sas( + account_name, # type: str + container_name, # type: str + account_key=None, # type: Optional[str] + user_delegation_key=None, # type: Optional[UserDelegationKey] + permission=None, # type: Optional[Union[ContainerSasPermissions, str]] + expiry=None, # type: Optional[Union[datetime, str]] + start=None, # type: Optional[Union[datetime, str]] + policy_id=None, # type: Optional[str] + ip=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Any + """Generates a shared access signature for a container. + + Use the returned signature with the credential parameter of any BlobServiceClient, + ContainerClient or BlobClient. + + :param str account_name: + The storage account name used to generate the shared access signature. + :param str container_name: + The name of the container. + :param str account_key: + The account key, also called shared key or access key, to generate the shared access signature. + Either `account_key` or `user_delegation_key` must be specified. + :param ~azure.storage.blob.UserDelegationKey user_delegation_key: + Instead of an account shared key, the user could pass in a user delegation key. + A user delegation key can be obtained from the service by authenticating with an AAD identity; + this can be accomplished by calling :func:`~azure.storage.blob.BlobServiceClient.get_user_delegation_key`. + When present, the SAS is signed with the user delegation key instead. + :param permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Permissions must be ordered read, write, delete, list. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :type permission: str or ~azure.storage.blob.ContainerSasPermissions + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: ~datetime.datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: ~datetime.datetime or str + :param str policy_id: + A unique value up to 64 characters in length that correlates to a + stored access policy. To create a stored access policy, use + :func:`~azure.storage.blob.ContainerClient.set_container_access_policy`. + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying ip=168.1.5.65 or ip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :keyword str protocol: + Specifies the protocol permitted for a request made. The default value is https. + :keyword str cache_control: + Response header value for Cache-Control when resource is accessed + using this shared access signature. + :keyword str content_disposition: + Response header value for Content-Disposition when resource is accessed + using this shared access signature. + :keyword str content_encoding: + Response header value for Content-Encoding when resource is accessed + using this shared access signature. + :keyword str content_language: + Response header value for Content-Language when resource is accessed + using this shared access signature. + :keyword str content_type: + Response header value for Content-Type when resource is accessed + using this shared access signature. + :return: A Shared Access Signature (sas) token. + :rtype: str + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers.py + :start-after: [START generate_sas_token] + :end-before: [END generate_sas_token] + :language: python + :dedent: 12 + :caption: Generating a sas token. + """ + if not user_delegation_key and not account_key: + raise ValueError("Either user_delegation_key or account_key must be provided.") + + if user_delegation_key: + sas = BlobSharedAccessSignature(account_name, user_delegation_key=user_delegation_key) + else: + sas = BlobSharedAccessSignature(account_name, account_key=account_key) + return sas.generate_container( + container_name, + permission=permission, + expiry=expiry, + start=start, + policy_id=policy_id, + ip=ip, + **kwargs + ) + + +def generate_blob_sas( + account_name, # type: str + container_name, # type: str + blob_name, # type: str + snapshot=None, # type: Optional[str] + account_key=None, # type: Optional[str] + user_delegation_key=None, # type: Optional[UserDelegationKey] + permission=None, # type: Optional[Union[BlobSasPermissions, str]] + expiry=None, # type: Optional[Union[datetime, str]] + start=None, # type: Optional[Union[datetime, str]] + policy_id=None, # type: Optional[str] + ip=None, # type: Optional[str] + **kwargs # type: Any + ): + # type: (...) -> Any + """Generates a shared access signature for a blob. + + Use the returned signature with the credential parameter of any BlobServiceClient, + ContainerClient or BlobClient. + + :param str account_name: + The storage account name used to generate the shared access signature. + :param str container_name: + The name of the container. + :param str blob_name: + The name of the blob. + :param str snapshot: + An optional blob snapshot ID. + :param str account_key: + The account key, also called shared key or access key, to generate the shared access signature. + Either `account_key` or `user_delegation_key` must be specified. + :param ~azure.storage.blob.UserDelegationKey user_delegation_key: + Instead of an account shared key, the user could pass in a user delegation key. + A user delegation key can be obtained from the service by authenticating with an AAD identity; + this can be accomplished by calling :func:`~azure.storage.blob.BlobServiceClient.get_user_delegation_key`. + When present, the SAS is signed with the user delegation key instead. + :param permission: + The permissions associated with the shared access signature. The + user is restricted to operations allowed by the permissions. + Permissions must be ordered read, write, delete, list. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has been + specified in an associated stored access policy. + :type permission: str or ~azure.storage.blob.BlobSasPermissions + :param expiry: + The time at which the shared access signature becomes invalid. + Required unless an id is given referencing a stored access policy + which contains this field. This field must be omitted if it has + been specified in an associated stored access policy. Azure will always + convert values to UTC. If a date is passed in without timezone info, it + is assumed to be UTC. + :type expiry: ~datetime.datetime or str + :param start: + The time at which the shared access signature becomes valid. If + omitted, start time for this call is assumed to be the time when the + storage service receives the request. Azure will always convert values + to UTC. If a date is passed in without timezone info, it is assumed to + be UTC. + :type start: ~datetime.datetime or str + :param str policy_id: + A unique value up to 64 characters in length that correlates to a + stored access policy. To create a stored access policy, use + :func:`~azure.storage.blob.ContainerClient.set_container_access_policy()`. + :param str ip: + Specifies an IP address or a range of IP addresses from which to accept requests. + If the IP address from which the request originates does not match the IP address + or address range specified on the SAS token, the request is not authenticated. + For example, specifying ip=168.1.5.65 or ip=168.1.5.60-168.1.5.70 on the SAS + restricts the request to those IP addresses. + :keyword str version_id: + An optional blob version ID. This parameter is only for versioning enabled account + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + :keyword str protocol: + Specifies the protocol permitted for a request made. The default value is https. + :keyword str cache_control: + Response header value for Cache-Control when resource is accessed + using this shared access signature. + :keyword str content_disposition: + Response header value for Content-Disposition when resource is accessed + using this shared access signature. + :keyword str content_encoding: + Response header value for Content-Encoding when resource is accessed + using this shared access signature. + :keyword str content_language: + Response header value for Content-Language when resource is accessed + using this shared access signature. + :keyword str content_type: + Response header value for Content-Type when resource is accessed + using this shared access signature. + :return: A Shared Access Signature (sas) token. + :rtype: str + """ + if not user_delegation_key and not account_key: + raise ValueError("Either user_delegation_key or account_key must be provided.") + version_id = kwargs.pop('version_id', None) + if version_id and snapshot: + raise ValueError("snapshot and version_id cannot be set at the same time.") + if user_delegation_key: + sas = BlobSharedAccessSignature(account_name, user_delegation_key=user_delegation_key) + else: + sas = BlobSharedAccessSignature(account_name, account_key=account_key) + return sas.generate_blob( + container_name, + blob_name, + snapshot=snapshot, + version_id=version_id, + permission=permission, + expiry=expiry, + start=start, + policy_id=policy_id, + ip=ip, + **kwargs + ) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_upload_helpers.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_upload_helpers.py new file mode 100644 index 00000000000..bd59362dc91 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_upload_helpers.py @@ -0,0 +1,291 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use + +from io import SEEK_SET, UnsupportedOperation +from typing import Optional, Union, Any, TypeVar, TYPE_CHECKING # pylint: disable=unused-import + +import six +from azure.core.exceptions import ResourceExistsError, ResourceModifiedError + +from ._shared.response_handlers import ( + process_storage_error, + return_response_headers) +from ._shared.models import StorageErrorCode +from ._shared.uploads import ( + upload_data_chunks, + upload_substream_blocks, + BlockBlobChunkUploader, + PageBlobChunkUploader, + AppendBlobChunkUploader) +from ._shared.encryption import generate_blob_encryption_data, encrypt_blob +from ._generated.models import ( + StorageErrorException, + BlockLookupList, + AppendPositionAccessConditions, + ModifiedAccessConditions, +) + +if TYPE_CHECKING: + from datetime import datetime # pylint: disable=unused-import + BlobLeaseClient = TypeVar("BlobLeaseClient") + +_LARGE_BLOB_UPLOAD_MAX_READ_BUFFER_SIZE = 4 * 1024 * 1024 +_ERROR_VALUE_SHOULD_BE_SEEKABLE_STREAM = '{0} should be a seekable file-like/io.IOBase type stream object.' + + +def _convert_mod_error(error): + message = error.message.replace( + "The condition specified using HTTP conditional header(s) is not met.", + "The specified blob already exists.") + message = message.replace("ConditionNotMet", "BlobAlreadyExists") + overwrite_error = ResourceExistsError( + message=message, + response=error.response, + error=error) + overwrite_error.error_code = StorageErrorCode.blob_already_exists + raise overwrite_error + + +def _any_conditions(modified_access_conditions=None, **kwargs): # pylint: disable=unused-argument + return any([ + modified_access_conditions.if_modified_since, + modified_access_conditions.if_unmodified_since, + modified_access_conditions.if_none_match, + modified_access_conditions.if_match + ]) + + +def upload_block_blob( # pylint: disable=too-many-locals + client=None, + data=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if not overwrite and not _any_conditions(**kwargs): + kwargs['modified_access_conditions'].if_none_match = '*' + adjusted_count = length + if (encryption_options.get('key') is not None) and (adjusted_count is not None): + adjusted_count += (16 - (length % 16)) + blob_headers = kwargs.pop('blob_headers', None) + tier = kwargs.pop('standard_blob_tier', None) + blob_tags_string = kwargs.pop('blob_tags_string', None) + + # Do single put if the size is smaller than or equal config.max_single_put_size + if adjusted_count is not None and (adjusted_count <= blob_settings.max_single_put_size): + try: + data = data.read(length) + if not isinstance(data, six.binary_type): + raise TypeError('Blob data should be of type bytes.') + except AttributeError: + pass + if encryption_options.get('key'): + encryption_data, data = encrypt_blob(data, encryption_options['key']) + headers['x-ms-meta-encryptiondata'] = encryption_data + return client.upload( + data, + content_length=adjusted_count, + blob_http_headers=blob_headers, + headers=headers, + cls=return_response_headers, + validate_content=validate_content, + data_stream_total=adjusted_count, + upload_stream_current=0, + tier=tier.value if tier else None, + blob_tags_string=blob_tags_string, + **kwargs) + + use_original_upload_path = blob_settings.use_byte_buffer or \ + validate_content or encryption_options.get('required') or \ + blob_settings.max_block_size < blob_settings.min_large_block_upload_threshold or \ + hasattr(stream, 'seekable') and not stream.seekable() or \ + not hasattr(stream, 'seek') or not hasattr(stream, 'tell') + + if use_original_upload_path: + if encryption_options.get('key'): + cek, iv, encryption_data = generate_blob_encryption_data(encryption_options['key']) + headers['x-ms-meta-encryptiondata'] = encryption_data + encryption_options['cek'] = cek + encryption_options['vector'] = iv + block_ids = upload_data_chunks( + service=client, + uploader_class=BlockBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + max_concurrency=max_concurrency, + stream=stream, + validate_content=validate_content, + encryption_options=encryption_options, + **kwargs + ) + else: + block_ids = upload_substream_blocks( + service=client, + uploader_class=BlockBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + max_concurrency=max_concurrency, + stream=stream, + validate_content=validate_content, + **kwargs + ) + + block_lookup = BlockLookupList(committed=[], uncommitted=[], latest=[]) + block_lookup.latest = block_ids + return client.commit_block_list( + block_lookup, + blob_http_headers=blob_headers, + cls=return_response_headers, + validate_content=validate_content, + headers=headers, + tier=tier.value if tier else None, + blob_tags_string=blob_tags_string, + **kwargs) + except StorageErrorException as error: + try: + process_storage_error(error) + except ResourceModifiedError as mod_error: + if not overwrite: + _convert_mod_error(mod_error) + raise + + +def upload_page_blob( + client=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if not overwrite and not _any_conditions(**kwargs): + kwargs['modified_access_conditions'].if_none_match = '*' + if length is None or length < 0: + raise ValueError("A content length must be specified for a Page Blob.") + if length % 512 != 0: + raise ValueError("Invalid page blob size: {0}. " + "The size must be aligned to a 512-byte boundary.".format(length)) + if kwargs.get('premium_page_blob_tier'): + premium_page_blob_tier = kwargs.pop('premium_page_blob_tier') + try: + headers['x-ms-access-tier'] = premium_page_blob_tier.value + except AttributeError: + headers['x-ms-access-tier'] = premium_page_blob_tier + if encryption_options and encryption_options.get('data'): + headers['x-ms-meta-encryptiondata'] = encryption_options['data'] + blob_tags_string = kwargs.pop('blob_tags_string', None) + + response = client.create( + content_length=0, + blob_content_length=length, + blob_sequence_number=None, + blob_http_headers=kwargs.pop('blob_headers', None), + blob_tags_string=blob_tags_string, + cls=return_response_headers, + headers=headers, + **kwargs) + if length == 0: + return response + + kwargs['modified_access_conditions'] = ModifiedAccessConditions(if_match=response['etag']) + return upload_data_chunks( + service=client, + uploader_class=PageBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_page_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + encryption_options=encryption_options, + **kwargs) + + except StorageErrorException as error: + try: + process_storage_error(error) + except ResourceModifiedError as mod_error: + if not overwrite: + _convert_mod_error(mod_error) + raise + + +def upload_append_blob( # pylint: disable=unused-argument + client=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if length == 0: + return {} + blob_headers = kwargs.pop('blob_headers', None) + append_conditions = AppendPositionAccessConditions( + max_size=kwargs.pop('maxsize_condition', None), + append_position=None) + blob_tags_string = kwargs.pop('blob_tags_string', None) + + try: + if overwrite: + client.create( + content_length=0, + blob_http_headers=blob_headers, + headers=headers, + blob_tags_string=blob_tags_string, + **kwargs) + return upload_data_chunks( + service=client, + uploader_class=AppendBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + append_position_access_conditions=append_conditions, + **kwargs) + except StorageErrorException as error: + if error.response.status_code != 404: + raise + # rewind the request body if it is a stream + if hasattr(stream, 'read'): + try: + # attempt to rewind the body to the initial position + stream.seek(0, SEEK_SET) + except UnsupportedOperation: + # if body is not seekable, then retry would not work + raise error + client.create( + content_length=0, + blob_http_headers=blob_headers, + headers=headers, + blob_tags_string=blob_tags_string, + **kwargs) + return upload_data_chunks( + service=client, + uploader_class=AppendBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + append_position_access_conditions=append_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_version.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_version.py new file mode 100644 index 00000000000..c40634c05fa --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/_version.py @@ -0,0 +1,7 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +VERSION = "12.4.0" diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/__init__.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/__init__.py new file mode 100644 index 00000000000..247f39e1ffd --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/__init__.py @@ -0,0 +1,137 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import os + +from .._models import BlobType +from .._shared.policies_async import ExponentialRetry, LinearRetry +from ._blob_client_async import BlobClient +from ._container_client_async import ContainerClient +from ._blob_service_client_async import BlobServiceClient +from ._lease_async import BlobLeaseClient +from ._download_async import StorageStreamDownloader + + +async def upload_blob_to_url( + blob_url, # type: str + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + credential=None, # type: Any + **kwargs): + # type: (...) -> dict[str, Any] + """Upload data to a given URL + + The data will be uploaded as a block blob. + + :param str blob_url: + The full URI to the blob. This can also include a SAS token. + :param data: + The data to upload. This can be bytes, text, an iterable or a file-like object. + :type data: bytes or str or Iterable + :param credential: + The credentials with which to authenticate. This is optional if the + blob URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword bool overwrite: + Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob_to_url will overwrite any existing data. If set to False, the + operation will fail with a ResourceExistsError. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword dict(str,str) metadata: + Name-value pairs associated with the blob as metadata. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https as https (the default) will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword str encoding: + Encoding to use if text is supplied as input. Defaults to UTF-8. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: dict(str, Any) + """ + async with BlobClient.from_blob_url(blob_url, credential=credential) as client: + return await client.upload_blob(data=data, blob_type=BlobType.BlockBlob, **kwargs) + + +async def _download_to_stream(client, handle, **kwargs): + """Download data to specified open file-handle.""" + stream = await client.download_blob(**kwargs) + await stream.readinto(handle) + + +async def download_blob_from_url( + blob_url, # type: str + output, # type: str + credential=None, # type: Any + **kwargs): + # type: (...) -> None + """Download the contents of a blob to a local file or stream. + + :param str blob_url: + The full URI to the blob. This can also include a SAS token. + :param output: + Where the data should be downloaded to. This could be either a file path to write to, + or an open IO handle to write to. + :type output: str or writable stream + :param credential: + The credentials with which to authenticate. This is optional if the + blob URL already has a SAS token or the blob is public. The value can be a SAS token string, + an account shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword bool overwrite: + Whether the local file should be overwritten if it already exists. The default value is + `False` - in which case a ValueError will be raised if the file already exists. If set to + `True`, an attempt will be made to write to the existing file. If a stream handle is passed + in, this value is ignored. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :keyword int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https as https (the default) will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :rtype: None + """ + overwrite = kwargs.pop('overwrite', False) + async with BlobClient.from_blob_url(blob_url, credential=credential) as client: + if hasattr(output, 'write'): + await _download_to_stream(client, output, **kwargs) + else: + if not overwrite and os.path.isfile(output): + raise ValueError("The file '{}' already exists.".format(output)) + with open(output, 'wb') as file_handle: + await _download_to_stream(client, file_handle, **kwargs) + + +__all__ = [ + 'upload_blob_to_url', + 'download_blob_from_url', + 'BlobServiceClient', + 'ContainerClient', + 'BlobClient', + 'BlobLeaseClient', + 'ExponentialRetry', + 'LinearRetry', + 'StorageStreamDownloader' +] diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_blob_client_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_blob_client_async.py new file mode 100644 index 00000000000..d88075ae87b --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_blob_client_async.py @@ -0,0 +1,2306 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-many-lines, invalid-overridden-method + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, IO, Iterable, AnyStr, Dict, List, Tuple, + TYPE_CHECKING +) + +from azure.core.tracing.decorator_async import distributed_trace_async + +from .._shared.base_client_async import AsyncStorageAccountHostsMixin +from .._shared.policies_async import ExponentialRetry +from .._shared.response_handlers import return_response_headers, process_storage_error +from .._deserialize import get_page_ranges_result, parse_tags +from .._serialize import get_modify_conditions, get_api_version, get_access_conditions +from .._generated import VERSION +from .._generated.aio import AzureBlobStorage +from .._generated.models import StorageErrorException, CpkInfo +from .._deserialize import deserialize_blob_properties +from .._blob_client import BlobClient as BlobClientBase +from ._upload_helpers import ( + upload_block_blob, + upload_append_blob, + upload_page_blob) +from .._models import BlobType, BlobBlock, BlobProperties +from ._lease_async import BlobLeaseClient +from ._download_async import StorageStreamDownloader + +if TYPE_CHECKING: + from datetime import datetime + from .._models import ( # pylint: disable=unused-import + ContentSettings, + PremiumPageBlobTier, + StandardBlobTier, + SequenceNumberAction + ) + + +class BlobClient(AsyncStorageAccountHostsMixin, BlobClientBase): # pylint: disable=too-many-public-methods + """A client to interact with a specific blob, although that blob may not yet exist. + + :param str account_url: + The URI to the storage account. In order to create a client given the full URI to the blob, + use the :func:`from_blob_url` classmethod. + :param container_name: The container name for the blob. + :type container_name: str + :param blob_name: The name of the blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob_name: str + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`create_snapshot`. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication_async.py + :start-after: [START create_blob_client] + :end-before: [END create_blob_client] + :language: python + :dedent: 8 + :caption: Creating the BlobClient from a URL to a public blob (no auth needed). + + .. literalinclude:: ../samples/blob_samples_authentication_async.py + :start-after: [START create_blob_client_sas_url] + :end-before: [END create_blob_client_sas_url] + :language: python + :dedent: 8 + :caption: Creating the BlobClient from a SAS URL to a blob. + """ + def __init__( + self, account_url, # type: str + container_name, # type: str + blob_name, # type: str + snapshot=None, # type: Optional[Union[str, Dict[str, Any]]] + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + kwargs['retry_policy'] = kwargs.get('retry_policy') or ExponentialRetry(**kwargs) + super(BlobClient, self).__init__( + account_url, + container_name=container_name, + blob_name=blob_name, + snapshot=snapshot, + credential=credential, + **kwargs) + self._client = AzureBlobStorage(url=self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + self._loop = kwargs.get('loop', None) + + @distributed_trace_async + async def get_account_information(self, **kwargs): # type: ignore + # type: (Optional[int]) -> Dict[str, str] + """Gets information related to the storage account in which the blob resides. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + """ + try: + return await self._client.blob.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def upload_blob( + self, data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + blob_type=BlobType.BlockBlob, # type: Union[str, BlobType] + length=None, # type: Optional[int] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Any + """Creates a new blob from a data source with automatic chunking. + + :param data: The blob data to upload. + :param ~azure.storage.blob.BlobType blob_type: The type of the blob. This can be + either BlockBlob, PageBlob or AppendBlob. The default value is BlockBlob. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword bool overwrite: Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob will overwrite the existing data. If set to False, the + operation will fail with ResourceExistsError. The exception to the above is with Append + blob types: if set to False and the data already exists, an error will not be raised + and the data will be appended to the existing blob. If set overwrite=True, then the existing + append blob will be deleted, and a new one created. Defaults to False. + :keyword ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + If specified, upload_blob only succeeds if the + blob's lease is active and matches this ID. + Required if the blob has an active lease. + :paramtype: ~azure.storage.blob.aio.BlobLeaseClient + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int max_concurrency: + Maximum number of parallel connections to use when the blob size exceeds + 64MB. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world_async.py + :start-after: [START upload_a_blob] + :end-before: [END upload_a_blob] + :language: python + :dedent: 16 + :caption: Upload a blob to the container. + """ + options = self._upload_blob_options( + data, + blob_type=blob_type, + length=length, + metadata=metadata, + **kwargs) + if blob_type == BlobType.BlockBlob: + return await upload_block_blob(**options) + if blob_type == BlobType.PageBlob: + return await upload_page_blob(**options) + return await upload_append_blob(**options) + + @distributed_trace_async + async def download_blob(self, offset=None, length=None, **kwargs): + # type: (Optional[int], Optional[int], Any) -> StorageStreamDownloader + """Downloads a blob to the StorageStreamDownloader. The readall() method must + be used to read all the content or readinto() must be used to download the blob into + a stream. + + :param int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to download. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. If specified, download_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword str encoding: + Encoding to decode the downloaded bytes. Default is None, i.e. no decoding. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: A streaming object (StorageStreamDownloader) + :rtype: ~azure.storage.blob.aio.StorageStreamDownloader + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world_async.py + :start-after: [START download_a_blob] + :end-before: [END download_a_blob] + :language: python + :dedent: 16 + :caption: Download a blob. + """ + options = self._download_blob_options( + offset=offset, + length=length, + **kwargs) + downloader = StorageStreamDownloader(**options) + await downloader._setup() # pylint: disable=protected-access + return downloader + + @distributed_trace_async + async def delete_blob(self, delete_snapshots=False, **kwargs): + # type: (bool, Any) -> None + """Marks the specified blob for deletion. + + The blob is later deleted during garbage collection. + Note that in order to delete a blob, you must delete all of its + snapshots. You can delete both at the same time with the delete_blob() + operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blob + and retains the blob for a specified number of days. + After the specified number of days, the blob's data is removed from the service during garbage collection. + Soft deleted blob is accessible through :func:`~ContainerClient.list_blobs()` specifying `include=['deleted']` + option. Soft-deleted blob can be restored using :func:`undelete` operation. + + :param str delete_snapshots: + Required if the blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to delete. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword lease: + Required if the blob has an active lease. If specified, delete_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_hello_world_async.py + :start-after: [START delete_blob] + :end-before: [END delete_blob] + :language: python + :dedent: 16 + :caption: Delete a blob. + """ + options = self._delete_blob_options(delete_snapshots=delete_snapshots, **kwargs) + try: + await self._client.blob.delete(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def undelete_blob(self, **kwargs): + # type: (Any) -> None + """Restores soft-deleted blobs or snapshots. + + Operation will only be successful if used within the specified number of days + set in the delete retention policy. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START undelete_blob] + :end-before: [END undelete_blob] + :language: python + :dedent: 12 + :caption: Undeleting a blob. + """ + try: + await self._client.blob.undelete(timeout=kwargs.pop('timeout', None), **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_blob_properties(self, **kwargs): + # type: (Any) -> BlobProperties + """Returns all user-defined metadata, standard HTTP properties, and + system properties for the blob. It does not return the content of the blob. + + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to get properties. + + .. versionadded:: 12.4.0 + This keyword argument was introduced in API version '2019-12-12'. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: BlobProperties + :rtype: ~azure.storage.blob.BlobProperties + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START get_blob_properties] + :end-before: [END get_blob_properties] + :language: python + :dedent: 12 + :caption: Getting the properties for a blob. + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + cpk = kwargs.pop('cpk', None) + cpk_info = None + if cpk: + if self.scheme.lower() != 'https': + raise ValueError("Customer provided encryption key must be used over HTTPS.") + cpk_info = CpkInfo(encryption_key=cpk.key_value, encryption_key_sha256=cpk.key_hash, + encryption_algorithm=cpk.algorithm) + try: + blob_props = await self._client.blob.get_properties( + timeout=kwargs.pop('timeout', None), + version_id=kwargs.pop('version_id', None), + snapshot=self.snapshot, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=deserialize_blob_properties, + cpk_info=cpk_info, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + blob_props.name = self.blob_name + blob_props.container = self.container_name + return blob_props # type: ignore + + @distributed_trace_async + async def set_http_headers(self, content_settings=None, **kwargs): + # type: (Optional[ContentSettings], Any) -> None + """Sets system properties on the blob. + + If one property is set for the content_settings, all properties will be overridden. + + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: Dict[str, Any] + """ + options = self._set_http_headers_options(content_settings=content_settings, **kwargs) + try: + return await self._client.blob.set_http_headers(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def set_blob_metadata(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], Any) -> Dict[str, Union[str, datetime]] + """Sets user-defined metadata for the blob as one or more name-value pairs. + + :param metadata: + Dict containing name and value pairs. Each call to this operation + replaces all existing metadata attached to the blob. To remove all + metadata from the blob, call this operation with no metadata headers. + :type metadata: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + """ + options = self._set_blob_metadata_options(metadata=metadata, **kwargs) + try: + return await self._client.blob.set_metadata(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def create_page_blob( # type: ignore + self, size, # type: int + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + premium_page_blob_tier=None, # type: Optional[Union[str, PremiumPageBlobTier]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """Creates a new Page Blob of the specified size. + + :param int size: + This specifies the maximum size for the page blob, up to 1 TB. + The page blob size must be aligned to a 512-byte boundary. + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :param ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword int sequence_number: + Only for Page blobs. The sequence number is a user-controlled value that you can use to + track requests. The value of the sequence number must be between 0 + and 2^63 - 1.The default value is 0. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict[str, Any] + """ + options = self._create_page_blob_options( + size, + content_settings=content_settings, + metadata=metadata, + premium_page_blob_tier=premium_page_blob_tier, + **kwargs) + try: + return await self._client.page_blob.create(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def create_append_blob(self, content_settings=None, metadata=None, **kwargs): + # type: (Optional[ContentSettings], Optional[Dict[str, str]], Any) -> Dict[str, Union[str, datetime]] + """Creates a new Append Blob. + + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict[str, Any] + """ + options = self._create_append_blob_options( + content_settings=content_settings, + metadata=metadata, + **kwargs) + try: + return await self._client.append_blob.create(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def create_snapshot(self, metadata=None, **kwargs): + # type: (Optional[Dict[str, str]], Any) -> Dict[str, Union[str, datetime]] + """Creates a snapshot of the blob. + + A snapshot is a read-only version of a blob that's taken at a point in time. + It can be read, copied, or deleted, but not modified. Snapshots provide a way + to back up a blob as it appears at a moment in time. + + A snapshot of a blob has the same name as the base blob from which the snapshot + is taken, with a DateTime value appended to indicate the time at which the + snapshot was taken. + + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Snapshot ID, Etag, and last modified). + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START create_blob_snapshot] + :end-before: [END create_blob_snapshot] + :language: python + :dedent: 12 + :caption: Create a snapshot of the blob. + """ + options = self._create_snapshot_options(metadata=metadata, **kwargs) + try: + return await self._client.blob.create_snapshot(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def start_copy_from_url(self, source_url, metadata=None, incremental_copy=False, **kwargs): + # type: (str, Optional[Dict[str, str]], bool, Any) -> Any + """Copies a blob asynchronously. + + This operation returns a copy operation + object that can be used to wait on the completion of the operation, + as well as check status or abort the copy operation. + The Blob service copies blobs on a best-effort basis. + + The source blob for a copy operation may be a block blob, an append blob, + or a page blob. If the destination blob already exists, it must be of the + same blob type as the source blob. Any existing destination blob will be + overwritten. The destination blob cannot be modified while a copy operation + is in progress. + + When copying from a page blob, the Blob service creates a destination page + blob of the source blob's length, initially containing all zeroes. Then + the source page ranges are enumerated, and non-empty ranges are copied. + + For a block blob or an append blob, the Blob service creates a committed + blob of zero length before returning from this operation. When copying + from a block blob, all committed blocks and their block IDs are copied. + Uncommitted blocks are not copied. At the end of the copy operation, the + destination blob will have the same committed block count as the source. + + When copying from an append blob, all committed blocks are copied. At the + end of the copy operation, the destination blob will have the same committed + block count as the source. + + For all blob types, you can call status() on the returned polling object + to check the status of the copy operation, or wait() to block until the + operation is complete. The final blob will be committed when the copy completes. + + :param str source_url: + A URL of up to 2 KB in length that specifies a file or blob. + The value should be URL-encoded as it would appear in a request URI. + If the source is in another account, the source must either be public + or must be authenticated via a shared access signature. If the source + is public, no authentication is required. + Examples: + https://myaccount.blob.core.windows.net/mycontainer/myblob + + https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot= + + https://otheraccount.blob.core.windows.net/mycontainer/myblob?sastoken + :param metadata: + Name-value pairs associated with the blob as metadata. If no name-value + pairs are specified, the operation will copy the metadata from the + source blob or file to the destination blob. If one or more name-value + pairs are specified, the destination blob is created with the specified + metadata, and metadata is not copied from the source blob or file. + :type metadata: dict(str, str) + :param bool incremental_copy: + Copies the snapshot of the source page blob to a destination page blob. + The snapshot is copied such that only the differential changes between + the previously copied snapshot are transferred to the destination. + The copied snapshots are complete copies of the original snapshot and + can be read or copied from as usual. Defaults to False. + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only if the source + blob has been modified since the specified date/time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only if the source blob + has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only + if the destination blob has been modified since the specified date/time. + If the destination blob has not been modified, the Blob service returns + status code 412 (Precondition Failed). + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this conditional header to copy the blob only + if the destination blob has not been modified since the specified + date/time. If the destination blob has been modified, the Blob service + returns status code 412 (Precondition Failed). + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword destination_lease: + The lease ID specified for this header must match the lease ID of the + destination blob. If the request does not include the lease ID or it is not + valid, the operation fails with status code 412 (Precondition Failed). + :paramtype destination_lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword source_lease: + Specify this to perform the Copy Blob operation only if + the lease ID given matches the active lease ID of the source blob. + :paramtype source_lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword bool seal_destination_blob: + Seal the destination append blob. This operation is only for append blob. + + .. versionadded:: 12.4.0 + + :keyword bool requires_sync: + Enforces that the service will not return a response until the copy is complete. + :returns: A dictionary of copy properties (etag, last_modified, copy_id, copy_status). + :rtype: dict[str, str or ~datetime.datetime] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START copy_blob_from_url] + :end-before: [END copy_blob_from_url] + :language: python + :dedent: 16 + :caption: Copy a blob from a URL. + """ + options = self._start_copy_from_url_options( + source_url=self._encode_source_url(source_url), + metadata=metadata, + incremental_copy=incremental_copy, + **kwargs) + try: + if incremental_copy: + return await self._client.page_blob.copy_incremental(**options) + return await self._client.blob.start_copy_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def abort_copy(self, copy_id, **kwargs): + # type: (Union[str, Dict[str, Any], BlobProperties], Any) -> None + """Abort an ongoing copy operation. + + This will leave a destination blob with zero length and full metadata. + This will raise an error if the copy operation has already ended. + + :param copy_id: + The copy operation to abort. This can be either an ID, or an + instance of BlobProperties. + :type copy_id: str or ~azure.storage.blob.BlobProperties + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START abort_copy_blob_from_url] + :end-before: [END abort_copy_blob_from_url] + :language: python + :dedent: 16 + :caption: Abort copying a blob from URL. + """ + options = self._abort_copy_options(copy_id, **kwargs) + try: + await self._client.blob.abort_copy_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def acquire_lease(self, lease_duration=-1, lease_id=None, **kwargs): + # type: (int, Optional[str], Any) -> BlobLeaseClient + """Requests a new lease. + + If the blob does not have an active lease, the Blob + Service creates a lease on the blob and returns a new lease. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :param str lease_id: + Proposed lease ID, in a GUID string format. The Blob Service + returns 400 (Invalid request) if the proposed lease ID is not + in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A BlobLeaseClient object. + :rtype: ~azure.storage.blob.aio.BlobLeaseClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START acquire_lease_on_blob] + :end-before: [END acquire_lease_on_blob] + :language: python + :dedent: 12 + :caption: Acquiring a lease on a blob. + """ + lease = BlobLeaseClient(self, lease_id=lease_id) # type: ignore + await lease.acquire(lease_duration=lease_duration, **kwargs) + return lease + + @distributed_trace_async + async def set_standard_blob_tier(self, standard_blob_tier, **kwargs): + # type: (Union[str, StandardBlobTier], Any) -> None + """This operation sets the tier on a block blob. + + A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param standard_blob_tier: + Indicates the tier to be set on the blob. Options include 'Hot', 'Cool', + 'Archive'. The hot tier is optimized for storing data that is accessed + frequently. The cool storage tier is optimized for storing data that + is infrequently accessed and stored for at least a month. The archive + tier is optimized for storing data that is rarely accessed and stored + for at least six months with flexible latency requirements. + :type standard_blob_tier: str or ~azure.storage.blob.StandardBlobTier + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :rtype: None + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if standard_blob_tier is None: + raise ValueError("A StandardBlobTier must be specified") + try: + await self._client.blob.set_tier( + tier=standard_blob_tier, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + lease_access_conditions=access_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def stage_block( + self, block_id, # type: str + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> None + """Creates a new block to be committed as part of a blob. + + :param str block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the block_id parameter must be the same size for each block. + :param data: The blob data. + :param int length: Size of the block. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword str encoding: + Defaults to UTF-8. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + options = self._stage_block_options( + block_id, + data, + length=length, + **kwargs) + try: + return await self._client.block_blob.stage_block(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def stage_block_from_url( + self, block_id, # type: str + source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + source_content_md5=None, # type: Optional[Union[bytes, bytearray]] + **kwargs + ): + # type: (...) -> None + """Creates a new block to be committed as part of a blob where + the contents are read from a URL. + + :param str block_id: A valid Base64 string value that identifies the + block. Prior to encoding, the string must be less than or equal to 64 + bytes in size. For a given blob, the length of the value specified for + the block_id parameter must be the same size for each block. + :param str source_url: The URL. + :param int source_offset: + Start of byte range to use for the block. + Must be set if source length is provided. + :param int source_length: The size of the block in bytes. + :param bytearray source_content_md5: + Specify the md5 calculated for the range of + bytes that must be read from the copy source. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + options = self._stage_block_from_url_options( + block_id, + source_url=self._encode_source_url(source_url), + source_offset=source_offset, + source_length=source_length, + source_content_md5=source_content_md5, + **kwargs) + try: + return await self._client.block_blob.stage_block_from_url(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_block_list(self, block_list_type="committed", **kwargs): + # type: (Optional[str], Any) -> Tuple[List[BlobBlock], List[BlobBlock]] + """The Get Block List operation retrieves the list of blocks that have + been uploaded as part of a block blob. + + :param str block_list_type: + Specifies whether to return the list of committed + blocks, the list of uncommitted blocks, or both lists together. + Possible values include: 'committed', 'uncommitted', 'all' + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A tuple of two lists - committed and uncommitted blocks + :rtype: tuple(list(~azure.storage.blob.BlobBlock), list(~azure.storage.blob.BlobBlock)) + """ + access_conditions = get_access_conditions(kwargs.pop('kease', None)) + mod_conditions = get_modify_conditions(kwargs) + try: + blocks = await self._client.block_blob.get_block_list( + list_type=block_list_type, + snapshot=self.snapshot, + timeout=kwargs.pop('timeout', None), + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return self._get_block_list_result(blocks) + + @distributed_trace_async + async def commit_block_list( # type: ignore + self, block_list, # type: List[BlobBlock] + content_settings=None, # type: Optional[ContentSettings] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """The Commit Block List operation writes a blob by specifying the list of + block IDs that make up the blob. + + :param list block_list: + List of Blockblobs. + :param ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict[str, str] + :keyword tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + + .. versionadded:: 12.4.0 + + :paramtype tags: dict(str, str) + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword bool validate_content: + If true, calculates an MD5 hash of the page content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._commit_block_list_options( + block_list, + content_settings=content_settings, + metadata=metadata, + **kwargs) + try: + return await self._client.block_blob.commit_block_list(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def set_premium_page_blob_tier(self, premium_page_blob_tier, **kwargs): + # type: (Union[str, PremiumPageBlobTier], **Any) -> None + """Sets the page blob tiers on the blob. This API is only supported for page blobs on premium accounts. + + :param premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :type premium_page_blob_tier: ~azure.storage.blob.PremiumPageBlobTier + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :rtype: None + """ + access_conditions = get_access_conditions(kwargs.pop('lease', None)) + mod_conditions = get_modify_conditions(kwargs) + if premium_page_blob_tier is None: + raise ValueError("A PremiumPageBlobTiermust be specified") + try: + await self._client.blob.set_tier( + tier=premium_page_blob_tier, + timeout=kwargs.pop('timeout', None), + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def set_blob_tags(self, tags=None, **kwargs): + # type: (Optional[Dict[str, str]], **Any) -> Dict[str, Any] + """The Set Tags operation enables users to set tags on a blob or specific blob version, but not snapshot. + Each call to this operation replaces all existing tags attached to the blob. To remove all + tags from the blob, call this operation with no tags set. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :param tags: + Name-value pairs associated with the blob as tag. Tags are case-sensitive. + The tag set may contain at most 10 tags. Tag keys must be between 1 and 128 characters, + and tag values must be between 0 and 256 characters. + Valid tag key and value characters include: lowercase and uppercase letters, digits (0-9), + space (` `), plus (+), minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_) + :type tags: dict(str, str) + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to delete. + :keyword bool validate_content: + If true, calculates an MD5 hash of the tags content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified) + :rtype: Dict[str, Any] + """ + options = self._set_blob_tags_options(tags=tags, **kwargs) + try: + return await self._client.blob.set_tags(**options) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_blob_tags(self, **kwargs): + # type: (**Any) -> Dict[str, str] + """The Get Tags operation enables users to get tags on a blob or specific blob version, but not snapshot. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :keyword str version_id: + The version id parameter is an opaque DateTime + value that, when present, specifies the version of the blob to add tags to. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Key value pairs of blob tags. + :rtype: Dict[str, str] + """ + options = self._get_blob_tags_options(**kwargs) + try: + _, tags = await self._client.blob.get_tags(**options) + return parse_tags(tags) # pylint: disable=protected-access + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_page_ranges( # type: ignore + self, offset=None, # type: Optional[int] + length=None, # type: Optional[int] + previous_snapshot_diff=None, # type: Optional[Union[str, Dict[str, Any]]] + **kwargs + ): + # type: (...) -> Tuple[List[Dict[str, int]], List[Dict[str, int]]] + """Returns the list of valid page ranges for a Page Blob or snapshot + of a page blob. + + :param int offset: + Start of byte range to use for getting valid page ranges. + If no length is given, all bytes after the offset will be searched. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for getting valid page ranges. + If length is given, offset must be provided. + This range will return valid page ranges from the offset start up to + the specified length. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param str previous_snapshot_diff: + The snapshot diff parameter that contains an opaque DateTime value that + specifies a previous blob snapshot to be compared + against a more recent snapshot or the current blob. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: + A tuple of two lists of page ranges as dictionaries with 'start' and 'end' keys. + The first element are filled page ranges, the 2nd element is cleared page ranges. + :rtype: tuple(list(dict(str, str), list(dict(str, str)) + """ + options = self._get_page_ranges_options( + offset=offset, + length=length, + previous_snapshot_diff=previous_snapshot_diff, + **kwargs) + try: + if previous_snapshot_diff: + ranges = await self._client.page_blob.get_page_ranges_diff(**options) + else: + ranges = await self._client.page_blob.get_page_ranges(**options) + except StorageErrorException as error: + process_storage_error(error) + return get_page_ranges_result(ranges) + + @distributed_trace_async + async def get_page_range_diff_for_managed_disk( + self, previous_snapshot_url, # type: str + offset=None, # type: Optional[int] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Tuple[List[Dict[str, int]], List[Dict[str, int]]] + """Returns the list of valid page ranges for a managed disk or snapshot. + + .. note:: + This operation is only available for managed disk accounts. + + .. versionadded:: 12.2.0 + This operation was introduced in API version '2019-07-07'. + + :param previous_snapshot_url: + Specifies the URL of a previous snapshot of the managed disk. + The response will only contain pages that were changed between the target blob and + its previous snapshot. + :param int offset: + Start of byte range to use for getting valid page ranges. + If no length is given, all bytes after the offset will be searched. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for getting valid page ranges. + If length is given, offset must be provided. + This range will return valid page ranges from the offset start up to + the specified length. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: + A tuple of two lists of page ranges as dictionaries with 'start' and 'end' keys. + The first element are filled page ranges, the 2nd element is cleared page ranges. + :rtype: tuple(list(dict(str, str), list(dict(str, str)) + """ + options = self._get_page_ranges_options( + offset=offset, + length=length, + prev_snapshot_url=previous_snapshot_url, + **kwargs) + try: + ranges = await self._client.page_blob.get_page_ranges_diff(**options) + except StorageErrorException as error: + process_storage_error(error) + return get_page_ranges_result(ranges) + + @distributed_trace_async + async def set_sequence_number( # type: ignore + self, sequence_number_action, # type: Union[str, SequenceNumberAction] + sequence_number=None, # type: Optional[str] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """Sets the blob sequence number. + + :param str sequence_number_action: + This property indicates how the service should modify the blob's sequence + number. See :class:`~azure.storage.blob.SequenceNumberAction` for more information. + :param str sequence_number: + This property sets the blob's sequence number. The sequence number is a + user-controlled property that you can use to track requests and manage + concurrency issues. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._set_sequence_number_options( + sequence_number_action, sequence_number=sequence_number, **kwargs) + try: + return await self._client.page_blob.update_sequence_number(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def resize_blob(self, size, **kwargs): + # type: (int, Any) -> Dict[str, Union[str, datetime]] + """Resizes a page blob to the specified size. + + If the specified value is less than the current size of the blob, + then all pages above the specified value are cleared. + + :param int size: + Size used to resize blob. Maximum size for a page blob is up to 1 TB. + The page blob size must be aligned to a 512-byte boundary. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._resize_blob_options(size, **kwargs) + try: + return await self._client.page_blob.resize(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def upload_page( # type: ignore + self, page, # type: bytes + offset, # type: int + length, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """The Upload Pages operation writes a range of pages to a page blob. + + :param bytes page: + Content of the page. + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword bool validate_content: + If true, calculates an MD5 hash of the page content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._upload_page_options( + page=page, + offset=offset, + length=length, + **kwargs) + try: + return await self._client.page_blob.upload_pages(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def upload_pages_from_url(self, source_url, # type: str + offset, # type: int + length, # type: int + source_offset, # type: int + **kwargs + ): + # type: (...) -> Dict[str, Any] + """ + The Upload Pages operation writes a range of pages to a page blob where + the contents are read from a URL. + + :param str source_url: + The URL of the source data. It can point to any Azure Blob or File, that is either public or has a + shared access signature attached. + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int source_offset: + This indicates the start of the range of bytes(inclusive) that has to be taken from the copy source. + The service will read the same number of bytes as the destination range (length-offset). + :keyword bytes source_content_md5: + If given, the service will calculate the MD5 hash of the block content and compare against this value. + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the source resource has been modified since the specified time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the source resource has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + """ + + options = self._upload_pages_from_url_options( + source_url=self._encode_source_url(source_url), + offset=offset, + length=length, + source_offset=source_offset, + **kwargs + ) + try: + return await self._client.page_blob.upload_pages_from_url(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def clear_page(self, offset, length, **kwargs): + # type: (int, int, Any) -> Dict[str, Union[str, datetime]] + """Clears a range of pages. + + :param int offset: + Start of byte range to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :param int length: + Number of bytes to use for writing to a section of the blob. + Pages must be aligned with 512-byte boundaries, the start offset + must be a modulus of 512 and the length must be a modulus of + 512. + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword int if_sequence_number_lte: + If the blob's sequence number is less than or equal to + the specified value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_lt: + If the blob's sequence number is less than the specified + value, the request proceeds; otherwise it fails. + :keyword int if_sequence_number_eq: + If the blob's sequence number is equal to the specified + value, the request proceeds; otherwise it fails. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag and last modified). + :rtype: dict(str, Any) + """ + options = self._clear_page_options(offset, length, **kwargs) + try: + return await self._client.page_blob.clear_pages(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def append_block( # type: ignore + self, data, # type: Union[AnyStr, Iterable[AnyStr], IO[AnyStr]] + length=None, # type: Optional[int] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """Commits a new block of data to the end of the existing append blob. + + :param data: + Content of the block. + :param int length: + Size of the block in bytes. + :keyword bool validate_content: + If true, calculates an MD5 hash of the block content. The storage + service checks the hash of the content that has arrived + with the hash that was sent. This is primarily valuable for detecting + bitflips on the wire if using http instead of https, as https (the default), + will already validate. Note that this MD5 hash is not stored with the + blob. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword str encoding: + Defaults to UTF-8. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag, last modified, append offset, committed block count). + :rtype: dict(str, Any) + """ + options = self._append_block_options( + data, + length=length, + **kwargs + ) + try: + return await self._client.append_blob.append_block(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async() + async def append_block_from_url(self, copy_source_url, # type: str + source_offset=None, # type: Optional[int] + source_length=None, # type: Optional[int] + **kwargs): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """ + Creates a new block to be committed as part of a blob, where the contents are read from a source url. + + :param str copy_source_url: + The URL of the source data. It can point to any Azure Blob or File, that is either public or has a + shared access signature attached. + :param int source_offset: + This indicates the start of the range of bytes(inclusive) that has to be taken from the copy source. + :param int source_length: + This indicates the end of the range of bytes that has to be taken from the copy source. + :keyword bytearray source_content_md5: + If given, the service will calculate the MD5 hash of the block content and compare against this value. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the + AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + The destination ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The destination match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~datetime.datetime source_if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the source resource has been modified since the specified time. + :keyword ~datetime.datetime source_if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the source resource has not been modified since the specified date/time. + :keyword str source_etag: + The source ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions source_match_condition: + The source match condition to use upon the etag. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + """ + options = self._append_block_from_url_options( + copy_source_url=self._encode_source_url(copy_source_url), + source_offset=source_offset, + source_length=source_length, + **kwargs + ) + try: + return await self._client.append_blob.append_block_from_url(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async() + async def seal_append_blob(self, **kwargs): + # type: (...) -> Dict[str, Union[str, datetime, int]] + """The Seal operation seals the Append Blob to make it read-only. + + .. versionadded:: 12.4.0 + + :keyword int appendpos_condition: + Optional conditional header, used only for the Append Block operation. + A number indicating the byte offset to compare. Append Block will + succeed only if the append position is equal to this number. If it + is not, the request will fail with the AppendPositionConditionNotMet error + (HTTP status code 412 - Precondition Failed). + :keyword lease: + Required if the blob has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Blob-updated property dict (Etag, last modified, append offset, committed block count). + :rtype: dict(str, Any) + """ + options = self._seal_append_blob_options(**kwargs) + try: + return await self._client.append_blob.seal(**options) # type: ignore + except StorageErrorException as error: + process_storage_error(error) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_blob_service_client_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_blob_service_client_async.py new file mode 100644 index 00000000000..7ccb4237bc1 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_blob_service_client_async.py @@ -0,0 +1,639 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method +import functools +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, Dict, List, + TYPE_CHECKING +) + +from azure.core.tracing.decorator import distributed_trace +from azure.core.pipeline import AsyncPipeline +from azure.core.tracing.decorator_async import distributed_trace_async +from azure.core.async_paging import AsyncItemPaged + +from .._shared.models import LocationMode +from .._shared.policies_async import ExponentialRetry +from .._shared.base_client_async import AsyncStorageAccountHostsMixin, AsyncTransportWrapper +from .._shared.response_handlers import return_response_headers, process_storage_error +from .._shared.parser import _to_utc_datetime +from .._shared.response_handlers import parse_to_internal_user_delegation_key +from .._generated import VERSION +from .._generated.aio import AzureBlobStorage +from .._generated.models import StorageErrorException, StorageServiceProperties, KeyInfo +from .._blob_service_client import BlobServiceClient as BlobServiceClientBase +from ._container_client_async import ContainerClient +from ._blob_client_async import BlobClient +from .._models import ContainerProperties +from .._deserialize import service_stats_deserialize, service_properties_deserialize +from .._serialize import get_api_version +from ._models import ContainerPropertiesPaged, FilteredBlobPaged + +if TYPE_CHECKING: + from datetime import datetime + from azure.core.pipeline.transport import HttpTransport + from azure.core.pipeline.policies import HTTPPolicy + from .._shared.models import AccountSasPermissions, ResourceTypes, UserDelegationKey + from ._lease_async import BlobLeaseClient + from .._models import ( + BlobProperties, + PublicAccess, + BlobAnalyticsLogging, + Metrics, + CorsRule, + RetentionPolicy, + StaticWebsite, + ) + + +class BlobServiceClient(AsyncStorageAccountHostsMixin, BlobServiceClientBase): + """A client to interact with the Blob Service at the account level. + + This client provides operations to retrieve and configure the account properties + as well as list, create and delete containers within the account. + For operations relating to a specific container or blob, clients for those entities + can also be retrieved using the `get_client` functions. + + :param str account_url: + The URL to the blob storage account. Any other entities included + in the URL path (e.g. container or blob) will be discarded. This URL can be optionally + authenticated with a SAS token. + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_authentication_async.py + :start-after: [START create_blob_service_client] + :end-before: [END create_blob_service_client] + :language: python + :dedent: 8 + :caption: Creating the BlobServiceClient with account url and credential. + + .. literalinclude:: ../samples/blob_samples_authentication_async.py + :start-after: [START create_blob_service_client_oauth] + :end-before: [END create_blob_service_client_oauth] + :language: python + :dedent: 8 + :caption: Creating the BlobServiceClient with Azure Identity credentials. + """ + + def __init__( + self, account_url, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + kwargs['retry_policy'] = kwargs.get('retry_policy') or ExponentialRetry(**kwargs) + super(BlobServiceClient, self).__init__( + account_url, + credential=credential, + **kwargs) + self._client = AzureBlobStorage(url=self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + self._loop = kwargs.get('loop', None) + + @distributed_trace_async + async def get_user_delegation_key(self, key_start_time, # type: datetime + key_expiry_time, # type: datetime + **kwargs # type: Any + ): + # type: (...) -> UserDelegationKey + """ + Obtain a user delegation key for the purpose of signing SAS tokens. + A token credential must be present on the service object for this request to succeed. + + :param ~datetime.datetime key_start_time: + A DateTime value. Indicates when the key becomes valid. + :param ~datetime.datetime key_expiry_time: + A DateTime value. Indicates when the key stops being valid. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: The user delegation key. + :rtype: ~azure.storage.blob.UserDelegationKey + """ + key_info = KeyInfo(start=_to_utc_datetime(key_start_time), expiry=_to_utc_datetime(key_expiry_time)) + timeout = kwargs.pop('timeout', None) + try: + user_delegation_key = await self._client.service.get_user_delegation_key(key_info=key_info, + timeout=timeout, + **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + return parse_to_internal_user_delegation_key(user_delegation_key) # type: ignore + + @distributed_trace_async + async def get_account_information(self, **kwargs): + # type: (Any) -> Dict[str, str] + """Gets information related to the storage account. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START get_blob_service_account_info] + :end-before: [END get_blob_service_account_info] + :language: python + :dedent: 12 + :caption: Getting account information for the blob service. + """ + try: + return await self._client.service.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_service_stats(self, **kwargs): + # type: (Any) -> Dict[str, Any] + """Retrieves statistics related to replication for the Blob service. + + It is only available when read-access geo-redundant replication is enabled for + the storage account. + + With geo-redundant replication, Azure Storage maintains your data durable + in two locations. In both locations, Azure Storage constantly maintains + multiple healthy replicas of your data. The location where you read, + create, update, or delete data is the primary storage account location. + The primary location exists in the region you choose at the time you + create an account via the Azure Management Azure classic portal, for + example, North Central US. The location to which your data is replicated + is the secondary location. The secondary location is automatically + determined based on the location of the primary; it is in a second data + center that resides in the same region as the primary location. Read-only + access is available from the secondary location, if read-access geo-redundant + replication is enabled for your storage account. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: The blob service stats. + :rtype: Dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START get_blob_service_stats] + :end-before: [END get_blob_service_stats] + :language: python + :dedent: 12 + :caption: Getting service stats for the blob service. + """ + timeout = kwargs.pop('timeout', None) + try: + stats = await self._client.service.get_statistics( # type: ignore + timeout=timeout, use_location=LocationMode.SECONDARY, **kwargs) + return service_stats_deserialize(stats) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_service_properties(self, **kwargs): + # type: (Any) -> Dict[str, Any] + """Gets the properties of a storage account's Blob service, including + Azure Storage Analytics. + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An object containing blob service properties such as + analytics logging, hour/minute metrics, cors rules, etc. + :rtype: Dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START get_blob_service_properties] + :end-before: [END get_blob_service_properties] + :language: python + :dedent: 12 + :caption: Getting service properties for the blob service. + """ + timeout = kwargs.pop('timeout', None) + try: + service_props = await self._client.service.get_properties(timeout=timeout, **kwargs) + return service_properties_deserialize(service_props) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def set_service_properties( + self, analytics_logging=None, # type: Optional[BlobAnalyticsLogging] + hour_metrics=None, # type: Optional[Metrics] + minute_metrics=None, # type: Optional[Metrics] + cors=None, # type: Optional[List[CorsRule]] + target_version=None, # type: Optional[str] + delete_retention_policy=None, # type: Optional[RetentionPolicy] + static_website=None, # type: Optional[StaticWebsite] + **kwargs + ): + # type: (...) -> None + """Sets the properties of a storage account's Blob service, including + Azure Storage Analytics. + + If an element (e.g. analytics_logging) is left as None, the + existing settings on the service for that functionality are preserved. + + :param analytics_logging: + Groups the Azure Analytics Logging settings. + :type analytics_logging: ~azure.storage.blob.BlobAnalyticsLogging + :param hour_metrics: + The hour metrics settings provide a summary of request + statistics grouped by API in hourly aggregates for blobs. + :type hour_metrics: ~azure.storage.blob.Metrics + :param minute_metrics: + The minute metrics settings provide request statistics + for each minute for blobs. + :type minute_metrics: ~azure.storage.blob.Metrics + :param cors: + You can include up to five CorsRule elements in the + list. If an empty list is specified, all CORS rules will be deleted, + and CORS will be disabled for the service. + :type cors: list[~azure.storage.blob.CorsRule] + :param str target_version: + Indicates the default version to use for requests if an incoming + request's version is not specified. + :param delete_retention_policy: + The delete retention policy specifies whether to retain deleted blobs. + It also specifies the number of days and versions of blob to keep. + :type delete_retention_policy: ~azure.storage.blob.RetentionPolicy + :param static_website: + Specifies whether the static website feature is enabled, + and if yes, indicates the index document and 404 error document to use. + :type static_website: ~azure.storage.blob.StaticWebsite + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START set_blob_service_properties] + :end-before: [END set_blob_service_properties] + :language: python + :dedent: 12 + :caption: Setting service properties for the blob service. + """ + props = StorageServiceProperties( + logging=analytics_logging, + hour_metrics=hour_metrics, + minute_metrics=minute_metrics, + cors=cors, + default_service_version=target_version, + delete_retention_policy=delete_retention_policy, + static_website=static_website + ) + timeout = kwargs.pop('timeout', None) + try: + await self._client.service.set_properties(props, timeout=timeout, **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def list_containers( + self, name_starts_with=None, # type: Optional[str] + include_metadata=False, # type: Optional[bool] + **kwargs + ): + # type: (...) -> AsyncItemPaged[ContainerProperties] + """Returns a generator to list the containers under the specified account. + + The generator will lazily follow the continuation tokens returned by + the service and stop when all containers have been returned. + + :param str name_starts_with: + Filters the results to return only containers whose names + begin with the specified prefix. + :param bool include_metadata: + Specifies that container metadata to be returned in the response. + The default value is `False`. + :keyword bool include_deleted: + Specifies that deleted containers to be returned in the response. This is for container restore enabled + account. The default value is `False`. + .. versionadded:: 12.4.0 + :keyword int results_per_page: + The maximum number of container names to retrieve per API + call. If the request does not specify the server will return up to 5,000 items. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) of ContainerProperties. + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.storage.blob.ContainerProperties] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START bsc_list_containers] + :end-before: [END bsc_list_containers] + :language: python + :dedent: 16 + :caption: Listing the containers in the blob service. + """ + include = ['metadata'] if include_metadata else [] + include_deleted = kwargs.pop('include_deleted', None) + if include_deleted: + include.append("deleted") + timeout = kwargs.pop('timeout', None) + results_per_page = kwargs.pop('results_per_page', None) + command = functools.partial( + self._client.service.list_containers_segment, + prefix=name_starts_with, + include=include, + timeout=timeout, + **kwargs) + return AsyncItemPaged( + command, + prefix=name_starts_with, + results_per_page=results_per_page, + page_iterator_class=ContainerPropertiesPaged + ) + + @distributed_trace + def find_blobs_by_tags(self, filter_expression, **kwargs): + # type: (str, **Any) -> AsyncItemPaged[FilteredBlob] + """The Filter Blobs operation enables callers to list blobs across all + containers whose tags match a given search expression. Filter blobs + searches across all containers within a storage account but can be + scoped within the expression to a single container. + + :param str filter_expression: + The expression to find blobs whose tags matches the specified condition. + eg. "\"yourtagname\"='firsttag' and \"yourtagname2\"='secondtag'" + To specify a container, eg. "@container='containerName' and \"Name\"='C'" + :keyword int results_per_page: + The max result per page when paginating. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.storage.blob.FilteredBlob] + """ + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.service.filter_blobs, + where=filter_expression, + timeout=timeout, + **kwargs) + return AsyncItemPaged( + command, results_per_page=results_per_page, + page_iterator_class=FilteredBlobPaged) + + @distributed_trace_async + async def create_container( + self, name, # type: str + metadata=None, # type: Optional[Dict[str, str]] + public_access=None, # type: Optional[Union[PublicAccess, str]] + **kwargs + ): + # type: (...) -> ContainerClient + """Creates a new container under the specified account. + + If the container with the same name already exists, a ResourceExistsError will + be raised. This method returns a client with which to interact with the newly + created container. + + :param str name: The name of the container to create. + :param metadata: + A dict with name-value pairs to associate with the + container as metadata. Example: `{'Category':'test'}` + :type metadata: dict(str, str) + :param public_access: + Possible values include: 'container', 'blob'. + :type public_access: str or ~azure.storage.blob.PublicAccess + :keyword container_encryption_scope: + Specifies the default encryption scope to set on the container and use for + all future writes. + + .. versionadded:: 12.2.0 + + :paramtype container_encryption_scope: dict or ~azure.storage.blob.ContainerEncryptionScope + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: ~azure.storage.blob.aio.ContainerClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START bsc_create_container] + :end-before: [END bsc_create_container] + :language: python + :dedent: 16 + :caption: Creating a container in the blob service. + """ + container = self.get_container_client(name) + timeout = kwargs.pop('timeout', None) + kwargs.setdefault('merge_span', True) + await container.create_container( + metadata=metadata, public_access=public_access, timeout=timeout, **kwargs) + return container + + @distributed_trace_async + async def delete_container( + self, container, # type: Union[ContainerProperties, str] + lease=None, # type: Optional[Union[BlobLeaseClient, str]] + **kwargs + ): + # type: (...) -> None + """Marks the specified container for deletion. + + The container and any blobs contained within it are later deleted during garbage collection. + If the container is not found, a ResourceNotFoundError will be raised. + + :param container: + The container to delete. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :param lease: + If specified, delete_container only succeeds if the + container's lease is active and matches this ID. + Required if the container has an active lease. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START bsc_delete_container] + :end-before: [END bsc_delete_container] + :language: python + :dedent: 16 + :caption: Deleting a container in the blob service. + """ + container = self.get_container_client(container) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + await container.delete_container( # type: ignore + lease=lease, + timeout=timeout, + **kwargs) + + @distributed_trace_async + async def undelete_container(self, deleted_container_name, deleted_container_version, new_name=None, **kwargs): + # type: (str, str, str, **Any) -> ContainerClient + """Restores soft-deleted container. + + Operation will only be successful if used within the specified number of days + set in the delete retention policy. + + .. versionadded:: 12.4.0 + This operation was introduced in API version '2019-12-12'. + + :param str deleted_container_name: + Specifies the name of the deleted container to restore. + :param str deleted_container_version: + Specifies the version of the deleted container to restore. + :param str new_name: + The new name for the deleted container to be restored to. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: ~azure.storage.blob.aio.ContainerClient + """ + container = self.get_container_client(new_name or deleted_container_name) + try: + await container._client.container.restore(deleted_container_name=deleted_container_name, # pylint: disable = protected-access + deleted_container_version=deleted_container_version, + timeout=kwargs.pop('timeout', None), **kwargs) + return container + except StorageErrorException as error: + process_storage_error(error) + + def get_container_client(self, container): + # type: (Union[ContainerProperties, str]) -> ContainerClient + """Get a client to interact with the specified container. + + The container need not already exist. + + :param container: + The container. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :returns: A ContainerClient. + :rtype: ~azure.storage.blob.aio.ContainerClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START bsc_get_container_client] + :end-before: [END bsc_get_container_client] + :language: python + :dedent: 12 + :caption: Getting the container client to interact with a specific container. + """ + try: + container_name = container.name + except AttributeError: + container_name = container + _pipeline = AsyncPipeline( + transport=AsyncTransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return ContainerClient( + self.url, container_name=container_name, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function, loop=self._loop) + + def get_blob_client( + self, container, # type: Union[ContainerProperties, str] + blob, # type: Union[BlobProperties, str] + snapshot=None # type: Optional[Union[Dict[str, Any], str]] + ): + # type: (...) -> BlobClient + """Get a client to interact with the specified blob. + + The blob need not already exist. + + :param container: + The container that the blob is in. This can either be the name of the container, + or an instance of ContainerProperties. + :type container: str or ~azure.storage.blob.ContainerProperties + :param blob: + The blob with which to interact. This can either be the name of the blob, + or an instance of BlobProperties. + :type blob: str or ~azure.storage.blob.BlobProperties + :param snapshot: + The optional blob snapshot on which to operate. This can either be the ID of the snapshot, + or a dictionary output returned by + :func:`~azure.storage.blob.aio.BlobClient.create_snapshot()`. + :type snapshot: str or dict(str, Any) + :returns: A BlobClient. + :rtype: ~azure.storage.blob.aio.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_service_async.py + :start-after: [START bsc_get_blob_client] + :end-before: [END bsc_get_blob_client] + :language: python + :dedent: 16 + :caption: Getting the blob client to interact with a specific blob. + """ + try: + container_name = container.name + except AttributeError: + container_name = container + + try: + blob_name = blob.name + except AttributeError: + blob_name = blob + _pipeline = AsyncPipeline( + transport=AsyncTransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return BlobClient( # type: ignore + self.url, container_name=container_name, blob_name=blob_name, snapshot=snapshot, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function, loop=self._loop) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_container_client_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_container_client_async.py new file mode 100644 index 00000000000..0554fc66145 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_container_client_async.py @@ -0,0 +1,1114 @@ +# pylint: disable=too-many-lines +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method +import functools +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, Iterable, AnyStr, Dict, List, IO, AsyncIterator, + TYPE_CHECKING +) + +from azure.core.tracing.decorator import distributed_trace +from azure.core.tracing.decorator_async import distributed_trace_async +from azure.core.async_paging import AsyncItemPaged +from azure.core.pipeline import AsyncPipeline +from azure.core.pipeline.transport import AsyncHttpResponse + +from .._shared.base_client_async import AsyncStorageAccountHostsMixin, AsyncTransportWrapper +from .._shared.policies_async import ExponentialRetry +from .._shared.request_handlers import add_metadata_headers, serialize_iso +from .._shared.response_handlers import ( + process_storage_error, + return_response_headers, + return_headers_and_deserialized) +from .._generated import VERSION +from .._generated.aio import AzureBlobStorage +from .._generated.models import ( + StorageErrorException, + SignedIdentifier) +from .._deserialize import deserialize_container_properties +from .._serialize import get_modify_conditions, get_container_cpk_scope_info, get_api_version, get_access_conditions +from .._container_client import ContainerClient as ContainerClientBase, _get_blob_name +from .._models import ContainerProperties, BlobType, BlobProperties # pylint: disable=unused-import +from ._list_blobs_helper import BlobPropertiesPaged, BlobPrefix +from ._lease_async import BlobLeaseClient +from ._blob_client_async import BlobClient + +if TYPE_CHECKING: + from .._models import PublicAccess + from ._download_async import StorageStreamDownloader + from datetime import datetime + from .._models import ( # pylint: disable=unused-import + AccessPolicy, + StandardBlobTier, + PremiumPageBlobTier) + + +class ContainerClient(AsyncStorageAccountHostsMixin, ContainerClientBase): + """A client to interact with a specific container, although that container + may not yet exist. + + For operations relating to a specific blob within this container, a blob client can be + retrieved using the :func:`~get_blob_client` function. + + :param str account_url: + The URI to the storage account. In order to create a client given the full URI to the container, + use the :func:`from_container_url` classmethod. + :param container_name: + The name of the container for the blob. + :type container_name: str + :param credential: + The credentials with which to authenticate. This is optional if the + account URL already has a SAS token. The value can be a SAS token string, an account + shared access key, or an instance of a TokenCredentials class from azure.identity. + If the URL already has a SAS token, specifying an explicit credential will take priority. + :keyword str api_version: + The Storage API version to use for requests. Default value is '2019-07-07'. + Setting to an older version may result in reduced feature compatibility. + + .. versionadded:: 12.2.0 + + :keyword str secondary_hostname: + The hostname of the secondary endpoint. + :keyword int max_block_size: The maximum chunk size for uploading a block blob in chunks. + Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be + uploaded with only one http PUT request. If the blob size is larger than max_single_put_size, + the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB. + :keyword int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient + algorithm when uploading a block blob. Defaults to 4*1024*1024+1. + :keyword bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False. + :keyword int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB. + :keyword int max_single_get_size: The maximum size for a blob to be downloaded in a single call, + the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB. + :keyword int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024, + or 4MB. + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START create_container_client_from_service] + :end-before: [END create_container_client_from_service] + :language: python + :dedent: 8 + :caption: Get a ContainerClient from an existing BlobServiceClient. + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START create_container_client_sasurl] + :end-before: [END create_container_client_sasurl] + :language: python + :dedent: 12 + :caption: Creating the container client directly. + """ + def __init__( + self, account_url, # type: str + container_name, # type: str + credential=None, # type: Optional[Any] + **kwargs # type: Any + ): + # type: (...) -> None + kwargs['retry_policy'] = kwargs.get('retry_policy') or ExponentialRetry(**kwargs) + super(ContainerClient, self).__init__( + account_url, + container_name=container_name, + credential=credential, + **kwargs) + self._client = AzureBlobStorage(url=self.url, pipeline=self._pipeline) + self._client._config.version = get_api_version(kwargs, VERSION) # pylint: disable=protected-access + self._loop = kwargs.get('loop', None) + + @distributed_trace_async + async def create_container(self, metadata=None, public_access=None, **kwargs): + # type: (Optional[Dict[str, str]], Optional[Union[PublicAccess, str]], **Any) -> None + """ + Creates a new container under the specified account. If the container + with the same name already exists, the operation fails. + + :param metadata: + A dict with name_value pairs to associate with the + container as metadata. Example:{'Category':'test'} + :type metadata: dict[str, str] + :param ~azure.storage.blob.PublicAccess public_access: + Possible values include: 'container', 'blob'. + :keyword container_encryption_scope: + Specifies the default encryption scope to set on the container and use for + all future writes. + + .. versionadded:: 12.2.0 + + :paramtype container_encryption_scope: dict or ~azure.storage.blob.ContainerEncryptionScope + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START create_container] + :end-before: [END create_container] + :language: python + :dedent: 16 + :caption: Creating a container to store blobs. + """ + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) # type: ignore + timeout = kwargs.pop('timeout', None) + container_cpk_scope_info = get_container_cpk_scope_info(kwargs) + try: + return await self._client.container.create( # type: ignore + timeout=timeout, + access=public_access, + container_cpk_scope_info=container_cpk_scope_info, + cls=return_response_headers, + headers=headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def delete_container( + self, **kwargs): + # type: (Any) -> None + """ + Marks the specified container for deletion. The container and any blobs + contained within it are later deleted during garbage collection. + + :keyword lease: + If specified, delete_container only succeeds if the + container's lease is active and matches this ID. + Required if the container has an active lease. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START delete_container] + :end-before: [END delete_container] + :language: python + :dedent: 16 + :caption: Delete a container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + mod_conditions = get_modify_conditions(kwargs) + timeout = kwargs.pop('timeout', None) + try: + await self._client.container.delete( + timeout=timeout, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def acquire_lease( + self, lease_duration=-1, # type: int + lease_id=None, # type: Optional[str] + **kwargs): + # type: (...) -> BlobLeaseClient + """ + Requests a new lease. If the container does not have an active lease, + the Blob service creates a lease on the container and returns a new + lease ID. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :param str lease_id: + Proposed lease ID, in a GUID string format. The Blob service returns + 400 (Invalid request) if the proposed lease ID is not in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: A BlobLeaseClient object, that can be run in a context manager. + :rtype: ~azure.storage.blob.aio.BlobLeaseClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START acquire_lease_on_container] + :end-before: [END acquire_lease_on_container] + :language: python + :dedent: 12 + :caption: Acquiring a lease on the container. + """ + lease = BlobLeaseClient(self, lease_id=lease_id) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + await lease.acquire(lease_duration=lease_duration, timeout=timeout, **kwargs) + return lease + + @distributed_trace_async + async def get_account_information(self, **kwargs): + # type: (**Any) -> Dict[str, str] + """Gets information related to the storage account. + + The information can also be retrieved if the user has a SAS to a container or blob. + The keys in the returned dictionary include 'sku_name' and 'account_kind'. + + :returns: A dict of account information (SKU and account type). + :rtype: dict(str, str) + """ + try: + return await self._client.container.get_account_info(cls=return_response_headers, **kwargs) # type: ignore + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_container_properties(self, **kwargs): + # type: (**Any) -> ContainerProperties + """Returns all user-defined metadata and system properties for the specified + container. The data returned does not include the container's list of blobs. + + :keyword lease: + If specified, get_container_properties only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: Properties for the specified container within a container object. + :rtype: ~azure.storage.blob.ContainerProperties + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START get_container_properties] + :end-before: [END get_container_properties] + :language: python + :dedent: 16 + :caption: Getting properties on the container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + timeout = kwargs.pop('timeout', None) + try: + response = await self._client.container.get_properties( + timeout=timeout, + lease_access_conditions=access_conditions, + cls=deserialize_container_properties, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + response.name = self.container_name + return response # type: ignore + + @distributed_trace_async + async def set_container_metadata( # type: ignore + self, metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> Dict[str, Union[str, datetime]] + """Sets one or more user-defined name-value pairs for the specified + container. Each call to this operation replaces all existing metadata + attached to the container. To remove all metadata from the container, + call this operation with no metadata dict. + + :param metadata: + A dict containing name-value pairs to associate with the container as + metadata. Example: {'category':'test'} + :type metadata: dict[str, str] + :keyword lease: + If specified, set_container_metadata only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Container-updated property dict (Etag and last modified). + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START set_container_metadata] + :end-before: [END set_container_metadata] + :language: python + :dedent: 16 + :caption: Setting metadata on the container. + """ + headers = kwargs.pop('headers', {}) + headers.update(add_metadata_headers(metadata)) + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + mod_conditions = get_modify_conditions(kwargs) + timeout = kwargs.pop('timeout', None) + try: + return await self._client.container.set_metadata( # type: ignore + timeout=timeout, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + headers=headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace_async + async def get_container_access_policy(self, **kwargs): + # type: (Any) -> Dict[str, Any] + """Gets the permissions for the specified container. + The permissions indicate whether container data may be accessed publicly. + + :keyword lease: + If specified, get_container_access_policy only succeeds if the + container's lease is active and matches this ID. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Access policy information in a dict. + :rtype: dict[str, Any] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START get_container_access_policy] + :end-before: [END get_container_access_policy] + :language: python + :dedent: 16 + :caption: Getting the access policy on the container. + """ + lease = kwargs.pop('lease', None) + access_conditions = get_access_conditions(lease) + timeout = kwargs.pop('timeout', None) + try: + response, identifiers = await self._client.container.get_access_policy( + timeout=timeout, + lease_access_conditions=access_conditions, + cls=return_headers_and_deserialized, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return { + 'public_access': response.get('blob_public_access'), + 'signed_identifiers': identifiers or [] + } + + @distributed_trace_async + async def set_container_access_policy( + self, signed_identifiers, # type: Dict[str, AccessPolicy] + public_access=None, # type: Optional[Union[str, PublicAccess]] + **kwargs # type: Any + ): # type: (...) -> Dict[str, Union[str, datetime]] + """Sets the permissions for the specified container or stored access + policies that may be used with Shared Access Signatures. The permissions + indicate whether blobs in a container may be accessed publicly. + + :param signed_identifiers: + A dictionary of access policies to associate with the container. The + dictionary may contain up to 5 elements. An empty dictionary + will clear the access policies set on the service. + :type signed_identifiers: dict[str, ~azure.storage.blob.AccessPolicy] + :param ~azure.storage.blob.PublicAccess public_access: + Possible values include: 'container', 'blob'. + :keyword lease: + Required if the container has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A datetime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified date/time. + :keyword ~datetime.datetime if_unmodified_since: + A datetime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: Container-updated property dict (Etag and last modified). + :rtype: dict[str, str or ~datetime.datetime] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START set_container_access_policy] + :end-before: [END set_container_access_policy] + :language: python + :dedent: 16 + :caption: Setting access policy on the container. + """ + timeout = kwargs.pop('timeout', None) + lease = kwargs.pop('lease', None) + if len(signed_identifiers) > 5: + raise ValueError( + 'Too many access policies provided. The server does not support setting ' + 'more than 5 access policies on a single resource.') + identifiers = [] + for key, value in signed_identifiers.items(): + if value: + value.start = serialize_iso(value.start) + value.expiry = serialize_iso(value.expiry) + identifiers.append(SignedIdentifier(id=key, access_policy=value)) # type: ignore + signed_identifiers = identifiers # type: ignore + + mod_conditions = get_modify_conditions(kwargs) + access_conditions = get_access_conditions(lease) + try: + return await self._client.container.set_access_policy( + container_acl=signed_identifiers or None, + timeout=timeout, + access=public_access, + lease_access_conditions=access_conditions, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + + @distributed_trace + def list_blobs(self, name_starts_with=None, include=None, **kwargs): + # type: (Optional[str], Optional[Union[str, List[str]]], **Any) -> AsyncItemPaged[BlobProperties] + """Returns a generator to list the blobs under the specified container. + The generator will lazily follow the continuation tokens returned by + the service. + + :param str name_starts_with: + Filters the results to return only blobs whose names + begin with the specified prefix. + :param list[str] or str include: + Specifies one or more additional datasets to include in the response. + Options include: 'snapshots', 'metadata', 'uncommittedblobs', 'copy', 'deleted', 'tags'. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.storage.blob.BlobProperties] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START list_blobs_in_container] + :end-before: [END list_blobs_in_container] + :language: python + :dedent: 12 + :caption: List the blobs in the container. + """ + if include and not isinstance(include, list): + include = [include] + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.container.list_blob_flat_segment, + include=include, + timeout=timeout, + **kwargs) + return AsyncItemPaged( + command, + prefix=name_starts_with, + results_per_page=results_per_page, + page_iterator_class=BlobPropertiesPaged + ) + + @distributed_trace + def walk_blobs( + self, name_starts_with=None, # type: Optional[str] + include=None, # type: Optional[Any] + delimiter="/", # type: str + **kwargs # type: Optional[Any] + ): + # type: (...) -> AsyncItemPaged[BlobProperties] + """Returns a generator to list the blobs under the specified container. + The generator will lazily follow the continuation tokens returned by + the service. This operation will list blobs in accordance with a hierarchy, + as delimited by the specified delimiter character. + + :param str name_starts_with: + Filters the results to return only blobs whose names + begin with the specified prefix. + :param list[str] include: + Specifies one or more additional datasets to include in the response. + Options include: 'snapshots', 'metadata', 'uncommittedblobs', 'copy', 'deleted'. + :param str delimiter: + When the request includes this parameter, the operation returns a BlobPrefix + element in the response body that acts as a placeholder for all blobs whose + names begin with the same substring up to the appearance of the delimiter + character. The delimiter may be a single character or a string. + :keyword int timeout: + The timeout parameter is expressed in seconds. + :returns: An iterable (auto-paging) response of BlobProperties. + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.storage.blob.BlobProperties] + """ + if include and not isinstance(include, list): + include = [include] + + results_per_page = kwargs.pop('results_per_page', None) + timeout = kwargs.pop('timeout', None) + command = functools.partial( + self._client.container.list_blob_hierarchy_segment, + delimiter=delimiter, + include=include, + timeout=timeout, + **kwargs) + return BlobPrefix( + command, + prefix=name_starts_with, + results_per_page=results_per_page, + delimiter=delimiter) + + @distributed_trace_async + async def upload_blob( + self, name, # type: Union[str, BlobProperties] + data, # type: Union[Iterable[AnyStr], IO[AnyStr]] + blob_type=BlobType.BlockBlob, # type: Union[str, BlobType] + length=None, # type: Optional[int] + metadata=None, # type: Optional[Dict[str, str]] + **kwargs + ): + # type: (...) -> BlobClient + """Creates a new blob from a data source with automatic chunking. + + :param name: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type name: str or ~azure.storage.blob.BlobProperties + :param data: The blob data to upload. + :param ~azure.storage.blob.BlobType blob_type: The type of the blob. This can be + either BlockBlob, PageBlob or AppendBlob. The default value is BlockBlob. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :param metadata: + Name-value pairs associated with the blob as metadata. + :type metadata: dict(str, str) + :keyword bool overwrite: Whether the blob to be uploaded should overwrite the current data. + If True, upload_blob will overwrite the existing data. If set to False, the + operation will fail with ResourceExistsError. The exception to the above is with Append + blob types: if set to False and the data already exists, an error will not be raised + and the data will be appended to the existing blob. If set overwrite=True, then the existing + append blob will be deleted, and a new one created. Defaults to False. + :keyword ~azure.storage.blob.ContentSettings content_settings: + ContentSettings object used to set blob properties. Used to set content type, encoding, + language, disposition, md5, and cache control. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used, because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the container has an active lease. Value can be a BlobLeaseClient object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword ~azure.storage.blob.PremiumPageBlobTier premium_page_blob_tier: + A page blob tier value to set the blob to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + :keyword ~azure.storage.blob.StandardBlobTier standard_blob_tier: + A standard blob tier value to set the blob to. For this version of the library, + this is only applicable to block blobs on standard storage accounts. + :keyword int maxsize_condition: + Optional conditional header. The max length in bytes permitted for + the append blob. If the Append Block operation would cause the blob + to exceed that limit or if the blob size is already greater than the + value specified in this header, the request will fail with + MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). + :keyword int max_concurrency: + Maximum number of parallel connections to use when the blob size exceeds + 64MB. + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword str encryption_scope: + A predefined encryption scope used to encrypt the data on the service. An encryption + scope can be created using the Management API and referenced here by name. If a default + encryption scope has been defined at the container, this value will override it if the + container-level scope is configured to allow overrides. Otherwise an error will be raised. + + .. versionadded:: 12.2.0 + + :keyword str encoding: + Defaults to UTF-8. + :returns: A BlobClient to interact with the newly uploaded blob. + :rtype: ~azure.storage.blob.aio.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START upload_blob_to_container] + :end-before: [END upload_blob_to_container] + :language: python + :dedent: 12 + :caption: Upload blob to the container. + """ + blob = self.get_blob_client(name) + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + encoding = kwargs.pop('encoding', 'UTF-8') + await blob.upload_blob( + data, + blob_type=blob_type, + length=length, + metadata=metadata, + timeout=timeout, + encoding=encoding, + **kwargs + ) + return blob + + @distributed_trace_async + async def delete_blob( + self, blob, # type: Union[str, BlobProperties] + delete_snapshots=None, # type: Optional[str] + **kwargs + ): + # type: (...) -> None + """Marks the specified blob or snapshot for deletion. + + The blob is later deleted during garbage collection. + Note that in order to delete a blob, you must delete all of its + snapshots. You can delete both at the same time with the delete_blob + operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blob or snapshot + and retains the blob or snapshot for specified number of days. + After specified number of days, blob's data is removed from the service during garbage collection. + Soft deleted blob or snapshot is accessible through :func:`list_blobs()` specifying `include=["deleted"]` + option. Soft-deleted blob or snapshot can be restored using :func:`~BlobClient.undelete()` + + :param blob: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob: str or ~azure.storage.blob.BlobProperties + :param str delete_snapshots: + Required if the blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword lease: + Required if the blob has an active lease. Value can be a Lease object + or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + blob = self.get_blob_client(blob) # type: ignore + kwargs.setdefault('merge_span', True) + timeout = kwargs.pop('timeout', None) + await blob.delete_blob( # type: ignore + delete_snapshots=delete_snapshots, + timeout=timeout, + **kwargs) + + @distributed_trace_async + async def download_blob(self, blob, offset=None, length=None, **kwargs): + # type: (Union[str, BlobProperties], Optional[int], Optional[int], Any) -> StorageStreamDownloader + """Downloads a blob to the StorageStreamDownloader. The readall() method must + be used to read all the content or readinto() must be used to download the blob into + a stream. + + :param blob: The blob with which to interact. If specified, this value will override + a blob value specified in the blob URL. + :type blob: str or ~azure.storage.blob.BlobProperties + :param int offset: + Start of byte range to use for downloading a section of the blob. + Must be set if length is provided. + :param int length: + Number of bytes to read from the stream. This is optional, but + should be supplied for optimal performance. + :keyword bool validate_content: + If true, calculates an MD5 hash for each chunk of the blob. The storage + service checks the hash of the content that has arrived with the hash + that was sent. This is primarily valuable for detecting bitflips on + the wire if using http instead of https, as https (the default), will + already validate. Note that this MD5 hash is not stored with the + blob. Also note that if enabled, the memory-efficient upload algorithm + will not be used because computing the MD5 hash requires buffering + entire blocks, and doing so defeats the purpose of the memory-efficient algorithm. + :keyword lease: + Required if the blob has an active lease. If specified, download_blob only + succeeds if the blob's lease is active and matches this ID. Value can be a + BlobLeaseClient object or the lease ID as a string. + :paramtype lease: ~azure.storage.blob.aio.BlobLeaseClient or str + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword ~azure.storage.blob.CustomerProvidedEncryptionKey cpk: + Encrypts the data on the service-side with the given key. + Use of customer-provided keys must be done over HTTPS. + As the encryption key itself is provided in the request, + a secure connection must be established to transfer the key. + :keyword int max_concurrency: + The number of parallel connections with which to download. + :keyword str encoding: + Encoding to decode the downloaded bytes. Default is None, i.e. no decoding. + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :returns: A streaming object. (StorageStreamDownloader) + :rtype: ~azure.storage.blob.aio.StorageStreamDownloader + """ + blob_client = self.get_blob_client(blob) # type: ignore + kwargs.setdefault('merge_span', True) + return await blob_client.download_blob( + offset=offset, + length=length, + **kwargs) + + @distributed_trace_async + async def delete_blobs( # pylint: disable=arguments-differ + self, *blobs: List[Union[str, BlobProperties, dict]], + **kwargs + ) -> AsyncIterator[AsyncHttpResponse]: + """Marks the specified blobs or snapshots for deletion. + + The blobs are later deleted during garbage collection. + Note that in order to delete blobs, you must delete all of their + snapshots. You can delete both at the same time with the delete_blobs operation. + + If a delete retention policy is enabled for the service, then this operation soft deletes the blobs or snapshots + and retains the blobs or snapshots for specified number of days. + After specified number of days, blobs' data is removed from the service during garbage collection. + Soft deleted blobs or snapshots are accessible through :func:`list_blobs()` specifying `include=["deleted"]` + Soft-deleted blobs or snapshots can be restored using :func:`~BlobClient.undelete()` + + :param blobs: + The blobs to delete. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + + blob name: + key: 'name', value type: str + snapshot you want to delete: + key: 'snapshot', value type: str + whether to delete snapthots when deleting blob: + key: 'delete_snapshots', value: 'include' or 'only' + if the blob modified or not: + key: 'if_modified_since', 'if_unmodified_since', value type: datetime + etag: + key: 'etag', value type: str + match the etag or not: + key: 'match_condition', value type: MatchConditions + tags match condition: + key: 'if_tags_match_condition', value type: str + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword str delete_snapshots: + Required if a blob has associated snapshots. Values include: + - "only": Deletes only the blobs snapshots. + - "include": Deletes the blob along with all snapshots. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. For optimal performance, + this should be set to False + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: An async iterator of responses, one for each blob in order + :rtype: asynciterator[~azure.core.pipeline.transport.AsyncHttpResponse] + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_common_async.py + :start-after: [START delete_multiple_blobs] + :end-before: [END delete_multiple_blobs] + :language: python + :dedent: 12 + :caption: Deleting multiple blobs. + """ + if len(blobs) == 0: + return iter(list()) + + reqs, options = self._generate_delete_blobs_options(*blobs, **kwargs) + + return await self._batch_send(*reqs, **options) + + @distributed_trace + async def set_standard_blob_tier_blobs( + self, + standard_blob_tier: Union[str, 'StandardBlobTier'], + *blobs: List[Union[str, BlobProperties, dict]], + **kwargs + ) -> AsyncIterator[AsyncHttpResponse]: + """This operation sets the tier on block blobs. + + A block blob's tier determines Hot/Cool/Archive storage type. + This operation does not update the blob's ETag. + + :param standard_blob_tier: + Indicates the tier to be set on all blobs. Options include 'Hot', 'Cool', + 'Archive'. The hot tier is optimized for storing data that is accessed + frequently. The cool storage tier is optimized for storing data that + is infrequently accessed and stored for at least a month. The archive + tier is optimized for storing data that is rarely accessed and stored + for at least six months with flexible latency requirements. + + .. note:: + If you want to set different tier on different blobs please set this positional parameter to None. + Then the blob tier on every BlobProperties will be taken. + + :type standard_blob_tier: str or ~azure.storage.blob.StandardBlobTier + :param blobs: + The blobs with which to interact. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + blob name: + key: 'name', value type: str + standard blob tier: + key: 'blob_tier', value type: StandardBlobTier + rehydrate priority: + key: 'rehydrate_priority', value type: RehydratePriority + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + tags match condition: + key: 'if_tags_match_condition', value type: str + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword ~azure.storage.blob.RehydratePriority rehydrate_priority: + Indicates the priority with which to rehydrate an archived blob + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. For optimal performance, + this should be set to False. + :return: An async iterator of responses, one for each blob in order + :rtype: asynciterator[~azure.core.pipeline.transport.AsyncHttpResponse] + """ + reqs, options = self._generate_set_tiers_options(standard_blob_tier, *blobs, **kwargs) + + return await self._batch_send(*reqs, **options) + + @distributed_trace + async def set_premium_page_blob_tier_blobs( + self, + premium_page_blob_tier: Union[str, 'PremiumPageBlobTier'], + *blobs: List[Union[str, BlobProperties, dict]], + **kwargs + ) -> AsyncIterator[AsyncHttpResponse]: + """Sets the page blob tiers on the blobs. This API is only supported for page blobs on premium accounts. + + :param premium_page_blob_tier: + A page blob tier value to set on all blobs to. The tier correlates to the size of the + blob and number of allowed IOPS. This is only applicable to page blobs on + premium storage accounts. + + .. note:: + If you want to set different tier on different blobs please set this positional parameter to None. + Then the blob tier on every BlobProperties will be taken. + + :type premium_page_blob_tier: ~azure.storage.blob.PremiumPageBlobTier + :param blobs: The blobs with which to interact. This can be a single blob, or multiple values can + be supplied, where each value is either the name of the blob (str) or BlobProperties. + + .. note:: + When the blob type is dict, here's a list of keys, value rules. + + blob name: + key: 'name', value type: str + premium blob tier: + key: 'blob_tier', value type: PremiumPageBlobTier + lease: + key: 'lease_id', value type: Union[str, LeaseClient] + timeout for subrequest: + key: 'timeout', value type: int + + :type blobs: list[str], list[dict], or list[~azure.storage.blob.BlobProperties] + :keyword int timeout: + The timeout parameter is expressed in seconds. This method may make + multiple calls to the Azure service and the timeout will apply to + each call individually. + :keyword bool raise_on_any_failure: + This is a boolean param which defaults to True. When this is set, an exception + is raised even if there is a single operation failure. For optimal performance, + this should be set to False. + :return: An async iterator of responses, one for each blob in order + :rtype: asynciterator[~azure.core.pipeline.transport.AsyncHttpResponse] + """ + reqs, options = self._generate_set_tiers_options(premium_page_blob_tier, *blobs, **kwargs) + + return await self._batch_send(*reqs, **options) + + def get_blob_client( + self, blob, # type: Union[BlobProperties, str] + snapshot=None # type: str + ): + # type: (...) -> BlobClient + """Get a client to interact with the specified blob. + + The blob need not already exist. + + :param blob: + The blob with which to interact. + :type blob: str or ~azure.storage.blob.BlobProperties + :param str snapshot: + The optional blob snapshot on which to operate. This can be the snapshot ID string + or the response returned from :func:`~BlobClient.create_snapshot()`. + :returns: A BlobClient. + :rtype: ~azure.storage.blob.aio.BlobClient + + .. admonition:: Example: + + .. literalinclude:: ../samples/blob_samples_containers_async.py + :start-after: [START get_blob_client] + :end-before: [END get_blob_client] + :language: python + :dedent: 12 + :caption: Get the blob client. + """ + blob_name = _get_blob_name(blob) + _pipeline = AsyncPipeline( + transport=AsyncTransportWrapper(self._pipeline._transport), # pylint: disable = protected-access + policies=self._pipeline._impl_policies # pylint: disable = protected-access + ) + return BlobClient( + self.url, container_name=self.container_name, blob_name=blob_name, snapshot=snapshot, + credential=self.credential, api_version=self.api_version, _configuration=self._config, + _pipeline=_pipeline, _location_mode=self._location_mode, _hosts=self._hosts, + require_encryption=self.require_encryption, key_encryption_key=self.key_encryption_key, + key_resolver_function=self.key_resolver_function, loop=self._loop) diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_download_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_download_async.py new file mode 100644 index 00000000000..c698cb40a40 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_download_async.py @@ -0,0 +1,491 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method + +import asyncio +import sys +from io import BytesIO +from itertools import islice +import warnings + +from azure.core.exceptions import HttpResponseError +from .._shared.encryption import decrypt_blob +from .._shared.request_handlers import validate_and_format_range_headers +from .._shared.response_handlers import process_storage_error, parse_length_from_content_range +from .._deserialize import get_page_ranges_result +from .._download import process_range_and_offset, _ChunkDownloader + + +async def process_content(data, start_offset, end_offset, encryption): + if data is None: + raise ValueError("Response cannot be None.") + try: + content = data.response.body() + except Exception as error: + raise HttpResponseError(message="Download stream interrupted.", response=data.response, error=error) + if encryption.get('key') is not None or encryption.get('resolver') is not None: + try: + return decrypt_blob( + encryption.get('required'), + encryption.get('key'), + encryption.get('resolver'), + content, + start_offset, + end_offset, + data.response.headers) + except Exception as error: + raise HttpResponseError( + message="Decryption failed.", + response=data.response, + error=error) + return content + + +class _AsyncChunkDownloader(_ChunkDownloader): + def __init__(self, **kwargs): + super(_AsyncChunkDownloader, self).__init__(**kwargs) + self.stream_lock = asyncio.Lock() if kwargs.get('parallel') else None + self.progress_lock = asyncio.Lock() if kwargs.get('parallel') else None + + async def process_chunk(self, chunk_start): + chunk_start, chunk_end = self._calculate_range(chunk_start) + chunk_data = await self._download_chunk(chunk_start, chunk_end - 1) + length = chunk_end - chunk_start + if length > 0: + await self._write_to_stream(chunk_data, chunk_start) + await self._update_progress(length) + + async def yield_chunk(self, chunk_start): + chunk_start, chunk_end = self._calculate_range(chunk_start) + return await self._download_chunk(chunk_start, chunk_end - 1) + + async def _update_progress(self, length): + if self.progress_lock: + async with self.progress_lock: # pylint: disable=not-async-context-manager + self.progress_total += length + else: + self.progress_total += length + + async def _write_to_stream(self, chunk_data, chunk_start): + if self.stream_lock: + async with self.stream_lock: # pylint: disable=not-async-context-manager + self.stream.seek(self.stream_start + (chunk_start - self.start_index)) + self.stream.write(chunk_data) + else: + self.stream.write(chunk_data) + + async def _download_chunk(self, chunk_start, chunk_end): + download_range, offset = process_range_and_offset( + chunk_start, chunk_end, chunk_end, self.encryption_options) + + # No need to download the empty chunk from server if there's no data in the chunk to be downloaded. + # Do optimize and create empty chunk locally if condition is met. + if self._do_optimize(download_range[0], download_range[1]): + chunk_data = b"\x00" * self.chunk_size + else: + range_header, range_validation = validate_and_format_range_headers( + download_range[0], + download_range[1], + check_content_md5=self.validate_content + ) + try: + _, response = await self.client.download( + range=range_header, + range_get_content_md5=range_validation, + validate_content=self.validate_content, + data_stream_total=self.total_size, + download_stream_current=self.progress_total, + **self.request_options + ) + except HttpResponseError as error: + process_storage_error(error) + + chunk_data = await process_content(response, offset[0], offset[1], self.encryption_options) + + # This makes sure that if_match is set so that we can validate + # that subsequent downloads are to an unmodified blob + if self.request_options.get('modified_access_conditions'): + self.request_options['modified_access_conditions'].if_match = response.properties.etag + + return chunk_data + + +class _AsyncChunkIterator(object): + """Async iterator for chunks in blob download stream.""" + + def __init__(self, size, content, downloader): + self.size = size + self._current_content = content + self._iter_downloader = downloader + self._iter_chunks = None + self._complete = (size == 0) + + def __len__(self): + return self.size + + def __iter__(self): + raise TypeError("Async stream must be iterated asynchronously.") + + def __aiter__(self): + return self + + async def __anext__(self): + """Iterate through responses.""" + if self._complete: + raise StopAsyncIteration("Download complete") + if not self._iter_downloader: + # If no iterator was supplied, the download completed with + # the initial GET, so we just return that data + self._complete = True + return self._current_content + + if not self._iter_chunks: + self._iter_chunks = self._iter_downloader.get_chunk_offsets() + else: + try: + chunk = next(self._iter_chunks) + except StopIteration: + raise StopAsyncIteration("Download complete") + self._current_content = await self._iter_downloader.yield_chunk(chunk) + + return self._current_content + + +class StorageStreamDownloader(object): # pylint: disable=too-many-instance-attributes + """A streaming object to download from Azure Storage. + + :ivar str name: + The name of the blob being downloaded. + :ivar str container: + The name of the container where the blob is. + :ivar ~azure.storage.blob.BlobProperties properties: + The properties of the blob being downloaded. If only a range of the data is being + downloaded, this will be reflected in the properties. + :ivar int size: + The size of the total data in the stream. This will be the byte range if speficied, + otherwise the total size of the blob. + """ + + def __init__( + self, + clients=None, + config=None, + start_range=None, + end_range=None, + validate_content=None, + encryption_options=None, + max_concurrency=1, + name=None, + container=None, + encoding=None, + **kwargs + ): + self.name = name + self.container = container + self.properties = None + self.size = None + + self._clients = clients + self._config = config + self._start_range = start_range + self._end_range = end_range + self._max_concurrency = max_concurrency + self._encoding = encoding + self._validate_content = validate_content + self._encryption_options = encryption_options or {} + self._request_options = kwargs + self._location_mode = None + self._download_complete = False + self._current_content = None + self._file_size = None + self._non_empty_ranges = None + self._response = None + + # The service only provides transactional MD5s for chunks under 4MB. + # If validate_content is on, get only self.MAX_CHUNK_GET_SIZE for the first + # chunk so a transactional MD5 can be retrieved. + self._first_get_size = self._config.max_single_get_size if not self._validate_content \ + else self._config.max_chunk_get_size + initial_request_start = self._start_range if self._start_range is not None else 0 + if self._end_range is not None and self._end_range - self._start_range < self._first_get_size: + initial_request_end = self._end_range + else: + initial_request_end = initial_request_start + self._first_get_size - 1 + + self._initial_range, self._initial_offset = process_range_and_offset( + initial_request_start, initial_request_end, self._end_range, self._encryption_options + ) + + def __len__(self): + return self.size + + async def _setup(self): + self._response = await self._initial_request() + self.properties = self._response.properties + self.properties.name = self.name + self.properties.container = self.container + + # Set the content length to the download size instead of the size of + # the last range + self.properties.size = self.size + + # Overwrite the content range to the user requested range + self.properties.content_range = 'bytes {0}-{1}/{2}'.format( + self._start_range, + self._end_range, + self._file_size + ) + + # Overwrite the content MD5 as it is the MD5 for the last range instead + # of the stored MD5 + # TODO: Set to the stored MD5 when the service returns this + self.properties.content_md5 = None + + if self.size == 0: + self._current_content = b"" + else: + self._current_content = await process_content( + self._response, + self._initial_offset[0], + self._initial_offset[1], + self._encryption_options + ) + + async def _initial_request(self): + range_header, range_validation = validate_and_format_range_headers( + self._initial_range[0], + self._initial_range[1], + start_range_required=False, + end_range_required=False, + check_content_md5=self._validate_content) + + try: + location_mode, response = await self._clients.blob.download( + range=range_header, + range_get_content_md5=range_validation, + validate_content=self._validate_content, + data_stream_total=None, + download_stream_current=0, + **self._request_options) + + # Check the location we read from to ensure we use the same one + # for subsequent requests. + self._location_mode = location_mode + + # Parse the total file size and adjust the download size if ranges + # were specified + self._file_size = parse_length_from_content_range(response.properties.content_range) + if self._end_range is not None: + # Use the length unless it is over the end of the file + self.size = min(self._file_size, self._end_range - self._start_range + 1) + elif self._start_range is not None: + self.size = self._file_size - self._start_range + else: + self.size = self._file_size + + except HttpResponseError as error: + if self._start_range is None and error.response.status_code == 416: + # Get range will fail on an empty file. If the user did not + # request a range, do a regular get request in order to get + # any properties. + try: + _, response = await self._clients.blob.download( + validate_content=self._validate_content, + data_stream_total=0, + download_stream_current=0, + **self._request_options) + except HttpResponseError as error: + process_storage_error(error) + + # Set the download size to empty + self.size = 0 + self._file_size = 0 + else: + process_storage_error(error) + + # get page ranges to optimize downloading sparse page blob + if response.properties.blob_type == 'PageBlob': + try: + page_ranges = await self._clients.page_blob.get_page_ranges() + self._non_empty_ranges = get_page_ranges_result(page_ranges)[0] + except HttpResponseError: + pass + + # If the file is small, the download is complete at this point. + # If file size is large, download the rest of the file in chunks. + if response.properties.size != self.size: + # Lock on the etag. This can be overriden by the user by specifying '*' + if self._request_options.get('modified_access_conditions'): + if not self._request_options['modified_access_conditions'].if_match: + self._request_options['modified_access_conditions'].if_match = response.properties.etag + else: + self._download_complete = True + return response + + def chunks(self): + """Iterate over chunks in the download stream. + + :rtype: Iterable[bytes] + """ + if self.size == 0 or self._download_complete: + iter_downloader = None + else: + data_end = self._file_size + if self._end_range is not None: + # Use the length unless it is over the end of the file + data_end = min(self._file_size, self._end_range + 1) + iter_downloader = _AsyncChunkDownloader( + client=self._clients.blob, + non_empty_ranges=self._non_empty_ranges, + total_size=self.size, + chunk_size=self._config.max_chunk_get_size, + current_progress=self._first_get_size, + start_range=self._initial_range[1] + 1, # Start where the first download ended + end_range=data_end, + stream=None, + parallel=False, + validate_content=self._validate_content, + encryption_options=self._encryption_options, + use_location=self._location_mode, + **self._request_options) + return _AsyncChunkIterator( + size=self.size, + content=self._current_content, + downloader=iter_downloader) + + async def readall(self): + """Download the contents of this blob. + + This operation is blocking until all data is downloaded. + :rtype: bytes or str + """ + stream = BytesIO() + await self.readinto(stream) + data = stream.getvalue() + if self._encoding: + return data.decode(self._encoding) + return data + + async def content_as_bytes(self, max_concurrency=1): + """Download the contents of this file. + + This operation is blocking until all data is downloaded. + + :keyword int max_concurrency: + The number of parallel connections with which to download. + :rtype: bytes + """ + warnings.warn( + "content_as_bytes is deprecated, use readall instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + return await self.readall() + + async def content_as_text(self, max_concurrency=1, encoding="UTF-8"): + """Download the contents of this blob, and decode as text. + + This operation is blocking until all data is downloaded. + + :keyword int max_concurrency: + The number of parallel connections with which to download. + :param str encoding: + Test encoding to decode the downloaded bytes. Default is UTF-8. + :rtype: str + """ + warnings.warn( + "content_as_text is deprecated, use readall instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + self._encoding = encoding + return await self.readall() + + async def readinto(self, stream): + """Download the contents of this blob to a stream. + + :param stream: + The stream to download to. This can be an open file-handle, + or any writable stream. The stream must be seekable if the download + uses more than one parallel connection. + :returns: The number of bytes read. + :rtype: int + """ + # the stream must be seekable if parallel download is required + parallel = self._max_concurrency > 1 + if parallel: + error_message = "Target stream handle must be seekable." + if sys.version_info >= (3,) and not stream.seekable(): + raise ValueError(error_message) + + try: + stream.seek(stream.tell()) + except (NotImplementedError, AttributeError): + raise ValueError(error_message) + + # Write the content to the user stream + stream.write(self._current_content) + if self._download_complete: + return self.size + + data_end = self._file_size + if self._end_range is not None: + # Use the length unless it is over the end of the file + data_end = min(self._file_size, self._end_range + 1) + + downloader = _AsyncChunkDownloader( + client=self._clients.blob, + non_empty_ranges=self._non_empty_ranges, + total_size=self.size, + chunk_size=self._config.max_chunk_get_size, + current_progress=self._first_get_size, + start_range=self._initial_range[1] + 1, # start where the first download ended + end_range=data_end, + stream=stream, + parallel=parallel, + validate_content=self._validate_content, + encryption_options=self._encryption_options, + use_location=self._location_mode, + **self._request_options) + + dl_tasks = downloader.get_chunk_offsets() + running_futures = [ + asyncio.ensure_future(downloader.process_chunk(d)) + for d in islice(dl_tasks, 0, self._max_concurrency) + ] + while running_futures: + # Wait for some download to finish before adding a new one + _done, running_futures = await asyncio.wait( + running_futures, return_when=asyncio.FIRST_COMPLETED) + try: + next_chunk = next(dl_tasks) + except StopIteration: + break + else: + running_futures.add(asyncio.ensure_future(downloader.process_chunk(next_chunk))) + + if running_futures: + # Wait for the remaining downloads to finish + await asyncio.wait(running_futures) + return self.size + + async def download_to_stream(self, stream, max_concurrency=1): + """Download the contents of this blob to a stream. + + :param stream: + The stream to download to. This can be an open file-handle, + or any writable stream. The stream must be seekable if the download + uses more than one parallel connection. + :returns: The properties of the downloaded blob. + :rtype: Any + """ + warnings.warn( + "download_to_stream is deprecated, use readinto instead", + DeprecationWarning + ) + self._max_concurrency = max_concurrency + await self.readinto(stream) + return self.properties diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_lease_async.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_lease_async.py new file mode 100644 index 00000000000..5f68a9b7b87 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_lease_async.py @@ -0,0 +1,327 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=invalid-overridden-method + +from typing import ( # pylint: disable=unused-import + Union, Optional, Any, IO, Iterable, AnyStr, Dict, List, Tuple, + TypeVar, TYPE_CHECKING +) + +from azure.core.tracing.decorator_async import distributed_trace_async + +from .._shared.response_handlers import return_response_headers, process_storage_error +from .._generated.models import ( + StorageErrorException, + LeaseAccessConditions) +from .._serialize import get_modify_conditions +from .._lease import BlobLeaseClient as LeaseClientBase + +if TYPE_CHECKING: + from datetime import datetime + from .._generated.operations import BlobOperations, ContainerOperations + BlobClient = TypeVar("BlobClient") + ContainerClient = TypeVar("ContainerClient") + + +class BlobLeaseClient(LeaseClientBase): + """Creates a new BlobLeaseClient. + + This client provides lease operations on a BlobClient or ContainerClient. + + :ivar str id: + The ID of the lease currently being maintained. This will be `None` if no + lease has yet been acquired. + :ivar str etag: + The ETag of the lease currently being maintained. This will be `None` if no + lease has yet been acquired or modified. + :ivar ~datetime.datetime last_modified: + The last modified timestamp of the lease currently being maintained. + This will be `None` if no lease has yet been acquired or modified. + + :param client: + The client of the blob or container to lease. + :type client: ~azure.storage.blob.aio.BlobClient or + ~azure.storage.blob.aio.ContainerClient + :param str lease_id: + A string representing the lease ID of an existing lease. This value does not + need to be specified in order to acquire a new lease, or break one. + """ + + def __enter__(self): + raise TypeError("Async lease must use 'async with'.") + + def __exit__(self, *args): + self.release() + + async def __aenter__(self): + return self + + async def __aexit__(self, *args): + await self.release() + + @distributed_trace_async + async def acquire(self, lease_duration=-1, **kwargs): + # type: (int, Any) -> None + """Requests a new lease. + + If the container does not have an active lease, the Blob service creates a + lease on the container and returns a new lease ID. + + :param int lease_duration: + Specifies the duration of the lease, in seconds, or negative one + (-1) for a lease that never expires. A non-infinite lease can be + between 15 and 60 seconds. A lease duration cannot be changed + using renew or change. Default is -1 (infinite lease). + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :rtype: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = await self._client.acquire_lease( + timeout=kwargs.pop('timeout', None), + duration=lease_duration, + proposed_lease_id=self.id, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + self.etag = response.get('etag') # type: str + + @distributed_trace_async + async def renew(self, **kwargs): + # type: (Any) -> None + """Renews the lease. + + The lease can be renewed if the lease ID specified in the + lease client matches that associated with the container or blob. Note that + the lease may be renewed even if it has expired as long as the container + or blob has not been leased again since the expiration of that lease. When you + renew a lease, the lease duration clock resets. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = await self._client.renew_lease( + lease_id=self.id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace_async + async def release(self, **kwargs): + # type: (Any) -> None + """Release the lease. + + The lease may be released if the client lease id specified matches + that associated with the container or blob. Releasing the lease allows another client + to immediately acquire the lease for the container or blob as soon as the release is complete. + + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = await self._client.release_lease( + lease_id=self.id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace_async + async def change(self, proposed_lease_id, **kwargs): + # type: (str, Any) -> None + """Change the lease ID of an active lease. + + :param str proposed_lease_id: + Proposed lease ID, in a GUID string format. The Blob service returns 400 + (Invalid request) if the proposed lease ID is not in the correct format. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str etag: + An ETag value, or the wildcard character (*). Used to check if the resource has changed, + and act according to the condition specified by the `match_condition` parameter. + :keyword ~azure.core.MatchConditions match_condition: + The match condition to use upon the etag. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: None + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = await self._client.change_lease( + lease_id=self.id, + proposed_lease_id=proposed_lease_id, + timeout=kwargs.pop('timeout', None), + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + self.etag = response.get('etag') # type: str + self.id = response.get('lease_id') # type: str + self.last_modified = response.get('last_modified') # type: datetime + + @distributed_trace_async + async def break_lease(self, lease_break_period=None, **kwargs): + # type: (Optional[int], Any) -> int + """Break the lease, if the container or blob has an active lease. + + Once a lease is broken, it cannot be renewed. Any authorized request can break the lease; + the request is not required to specify a matching lease ID. When a lease + is broken, the lease break period is allowed to elapse, during which time + no lease operation except break and release can be performed on the container or blob. + When a lease is successfully broken, the response indicates the interval + in seconds until a new lease can be acquired. + + :param int lease_break_period: + This is the proposed duration of seconds that the lease + should continue before it is broken, between 0 and 60 seconds. This + break period is only used if it is shorter than the time remaining + on the lease. If longer, the time remaining on the lease is used. + A new lease will not be available before the break period has + expired, but the lease may be held for longer than the break + period. If this header does not appear with a break + operation, a fixed-duration lease breaks after the remaining lease + period elapses, and an infinite lease breaks immediately. + :keyword ~datetime.datetime if_modified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only + if the resource has been modified since the specified time. + :keyword ~datetime.datetime if_unmodified_since: + A DateTime value. Azure expects the date value passed in to be UTC. + If timezone is included, any non-UTC datetimes will be converted to UTC. + If a date is passed in without timezone info, it is assumed to be UTC. + Specify this header to perform the operation only if + the resource has not been modified since the specified date/time. + :keyword str if_tags_match_condition + Specify a SQL where clause on blob tags to operate only on blob with a matching value. + eg. "\"tagname\"='my tag'" + + .. versionadded:: 12.4.0 + + :keyword int timeout: + The timeout parameter is expressed in seconds. + :return: Approximate time remaining in the lease period, in seconds. + :rtype: int + """ + mod_conditions = get_modify_conditions(kwargs) + try: + response = await self._client.break_lease( + timeout=kwargs.pop('timeout', None), + break_period=lease_break_period, + modified_access_conditions=mod_conditions, + cls=return_response_headers, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) + return response.get('lease_time') # type: ignore diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_list_blobs_helper.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_list_blobs_helper.py new file mode 100644 index 00000000000..dc098465940 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_list_blobs_helper.py @@ -0,0 +1,162 @@ +# pylint: disable=too-many-lines +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +from azure.core.async_paging import AsyncPageIterator, AsyncItemPaged +from .._deserialize import get_blob_properties_from_generated_code +from .._models import BlobProperties +from .._generated.models import StorageErrorException, BlobItemInternal, BlobPrefix as GenBlobPrefix +from .._shared.models import DictMixin +from .._shared.response_handlers import return_context_and_deserialized, process_storage_error + + +class BlobPropertiesPaged(AsyncPageIterator): + """An Iterable of Blob properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.models.BlobProperties) + :ivar str container: The container that the blobs are listed from. + :ivar str delimiter: A delimiting character used for hierarchy listing. + + :param callable command: Function to retrieve the next page of items. + :param str container: The container that the blobs are listed from. + :param str prefix: Filters the results to return only blobs whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str continuation_token: An opaque continuation token. + :param str delimiter: + Used to capture blobs whose names begin with the same substring up to + the appearance of the delimiter character. The delimiter may be a single + character or a string. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__( + self, command, + container=None, + prefix=None, + results_per_page=None, + continuation_token=None, + delimiter=None, + location_mode=None): + super(BlobPropertiesPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.prefix = prefix + self.marker = None + self.results_per_page = results_per_page + self.container = container + self.delimiter = delimiter + self.current_page = None + self.location_mode = location_mode + + async def _get_next_cb(self, continuation_token): + try: + return await self._command( + prefix=self.prefix, + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + async def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.prefix = self._response.prefix + self.marker = self._response.marker + self.results_per_page = self._response.max_results + self.container = self._response.container_name + self.current_page = [self._build_item(item) for item in self._response.segment.blob_items] + + return self._response.next_marker or None, self.current_page + + def _build_item(self, item): + if isinstance(item, BlobProperties): + return item + if isinstance(item, BlobItemInternal): + blob = get_blob_properties_from_generated_code(item) # pylint: disable=protected-access + blob.container = self.container + return blob + return item + + +class BlobPrefix(AsyncItemPaged, DictMixin): + """An Iterable of Blob properties. + + Returned from walk_blobs when a delimiter is used. + Can be thought of as a virtual blob directory. + + :ivar str name: The prefix, or "directory name" of the blob. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str marker: The continuation token of the current page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.models.BlobProperties) + :ivar str container: The container that the blobs are listed from. + :ivar str delimiter: A delimiting character used for hierarchy listing. + :param callable command: Function to retrieve the next page of items. + :param str prefix: Filters the results to return only blobs whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str marker: An opaque continuation token. + :param str delimiter: + Used to capture blobs whose names begin with the same substring up to + the appearance of the delimiter character. The delimiter may be a single + character or a string. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__(self, *args, **kwargs): + super(BlobPrefix, self).__init__(*args, page_iterator_class=BlobPrefixPaged, **kwargs) + self.name = kwargs.get('prefix') + self.prefix = kwargs.get('prefix') + self.results_per_page = kwargs.get('results_per_page') + self.container = kwargs.get('container') + self.delimiter = kwargs.get('delimiter') + self.location_mode = kwargs.get('location_mode') + + +class BlobPrefixPaged(BlobPropertiesPaged): + def __init__(self, *args, **kwargs): + super(BlobPrefixPaged, self).__init__(*args, **kwargs) + self.name = self.prefix + + async def _extract_data_cb(self, get_next_return): + continuation_token, _ = await super(BlobPrefixPaged, self)._extract_data_cb(get_next_return) + self.current_page = self._response.segment.blob_prefixes + self._response.segment.blob_items + self.current_page = [self._build_item(item) for item in self.current_page] + self.delimiter = self._response.delimiter + + return continuation_token, self.current_page + + def _build_item(self, item): + item = super(BlobPrefixPaged, self)._build_item(item) + if isinstance(item, GenBlobPrefix): + return BlobPrefix( + self._command, + container=self.container, + prefix=item.name, + results_per_page=self.results_per_page, + location_mode=self.location_mode) + return item diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_models.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_models.py new file mode 100644 index 00000000000..44d5d6314a2 --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_models.py @@ -0,0 +1,141 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=too-few-public-methods, too-many-instance-attributes +# pylint: disable=super-init-not-called, too-many-lines + +from azure.core.async_paging import AsyncPageIterator + +from .._models import ContainerProperties, FilteredBlob +from .._shared.response_handlers import return_context_and_deserialized, process_storage_error + +from .._generated.models import StorageErrorException +from .._generated.models import FilterBlobItem + + +class ContainerPropertiesPaged(AsyncPageIterator): + """An Iterable of Container properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A container name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.models.ContainerProperties) + + :param callable command: Function to retrieve the next page of items. + :param str prefix: Filters the results to return only containers whose names + begin with the specified prefix. + :param int results_per_page: The maximum number of container names to retrieve per + call. + :param str continuation_token: An opaque continuation token. + """ + def __init__(self, command, prefix=None, results_per_page=None, continuation_token=None): + super(ContainerPropertiesPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.prefix = prefix + self.marker = None + self.results_per_page = results_per_page + self.location_mode = None + self.current_page = [] + + async def _get_next_cb(self, continuation_token): + try: + return await self._command( + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + async def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.prefix = self._response.prefix + self.marker = self._response.marker + self.results_per_page = self._response.max_results + self.current_page = [self._build_item(item) for item in self._response.container_items] + + return self._response.next_marker or None, self.current_page + + @staticmethod + def _build_item(item): + return ContainerProperties._from_generated(item) # pylint: disable=protected-access + + +class FilteredBlobPaged(AsyncPageIterator): + """An Iterable of Blob properties. + + :ivar str service_endpoint: The service URL. + :ivar str prefix: A blob name prefix being used to filter the list. + :ivar str marker: The continuation token of the current page of results. + :ivar int results_per_page: The maximum number of results retrieved per API call. + :ivar str continuation_token: The continuation token to retrieve the next page of results. + :ivar str location_mode: The location mode being used to list results. The available + options include "primary" and "secondary". + :ivar current_page: The current page of listed results. + :vartype current_page: list(~azure.storage.blob.BlobProperties) + :ivar str container: The container that the blobs are listed from. + + :param callable command: Function to retrieve the next page of items. + :param str container: The name of the container. + :param int results_per_page: The maximum number of blobs to retrieve per + call. + :param str continuation_token: An opaque continuation token. + :param location_mode: Specifies the location the request should be sent to. + This mode only applies for RA-GRS accounts which allow secondary read access. + Options include 'primary' or 'secondary'. + """ + def __init__( + self, command, + container=None, + results_per_page=None, + continuation_token=None, + location_mode=None): + super(FilteredBlobPaged, self).__init__( + get_next=self._get_next_cb, + extract_data=self._extract_data_cb, + continuation_token=continuation_token or "" + ) + self._command = command + self.service_endpoint = None + self.marker = continuation_token + self.results_per_page = results_per_page + self.container = container + self.current_page = None + self.location_mode = location_mode + + async def _get_next_cb(self, continuation_token): + try: + return await self._command( + marker=continuation_token or None, + maxresults=self.results_per_page, + cls=return_context_and_deserialized, + use_location=self.location_mode) + except StorageErrorException as error: + process_storage_error(error) + + async def _extract_data_cb(self, get_next_return): + self.location_mode, self._response = get_next_return + self.service_endpoint = self._response.service_endpoint + self.marker = self._response.next_marker + self.current_page = [self._build_item(item) for item in self._response.blobs] + + return self._response.next_marker or None, self.current_page + + @staticmethod + def _build_item(item): + if isinstance(item, FilterBlobItem): + blob = FilteredBlob(name=item.name, container_name=item.container_name, tag_value=item.tag_value) # pylint: disable=protected-access + return blob + return item diff --git a/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_upload_helpers.py b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_upload_helpers.py new file mode 100644 index 00000000000..3a495b5750d --- /dev/null +++ b/src/storage-blob-preview/azext_storage_blob_preview/vendored_sdks/azure_storage_blob/v2020_02_10/aio/_upload_helpers.py @@ -0,0 +1,266 @@ +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- +# pylint: disable=no-self-use + +from io import SEEK_SET, UnsupportedOperation +from typing import Optional, Union, Any, TypeVar, TYPE_CHECKING # pylint: disable=unused-import + +import six +from azure.core.exceptions import ResourceModifiedError + +from .._shared.response_handlers import ( + process_storage_error, + return_response_headers) +from .._shared.uploads_async import ( + upload_data_chunks, + upload_substream_blocks, + BlockBlobChunkUploader, + PageBlobChunkUploader, + AppendBlobChunkUploader) +from .._shared.encryption import generate_blob_encryption_data, encrypt_blob +from .._generated.models import ( + StorageErrorException, + BlockLookupList, + AppendPositionAccessConditions, + ModifiedAccessConditions, +) +from .._upload_helpers import _convert_mod_error, _any_conditions + +if TYPE_CHECKING: + from datetime import datetime # pylint: disable=unused-import + BlobLeaseClient = TypeVar("BlobLeaseClient") + + +async def upload_block_blob( # pylint: disable=too-many-locals + client=None, + data=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if not overwrite and not _any_conditions(**kwargs): + kwargs['modified_access_conditions'].if_none_match = '*' + adjusted_count = length + if (encryption_options.get('key') is not None) and (adjusted_count is not None): + adjusted_count += (16 - (length % 16)) + blob_headers = kwargs.pop('blob_headers', None) + tier = kwargs.pop('standard_blob_tier', None) + blob_tags_string = kwargs.pop('blob_tags_string', None) + + # Do single put if the size is smaller than config.max_single_put_size + if adjusted_count is not None and (adjusted_count <= blob_settings.max_single_put_size): + try: + data = data.read(length) + if not isinstance(data, six.binary_type): + raise TypeError('Blob data should be of type bytes.') + except AttributeError: + pass + if encryption_options.get('key'): + encryption_data, data = encrypt_blob(data, encryption_options['key']) + headers['x-ms-meta-encryptiondata'] = encryption_data + return await client.upload( + data, + content_length=adjusted_count, + blob_http_headers=blob_headers, + headers=headers, + cls=return_response_headers, + validate_content=validate_content, + data_stream_total=adjusted_count, + upload_stream_current=0, + tier=tier.value if tier else None, + blob_tags_string=blob_tags_string, + **kwargs) + + use_original_upload_path = blob_settings.use_byte_buffer or \ + validate_content or encryption_options.get('required') or \ + blob_settings.max_block_size < blob_settings.min_large_block_upload_threshold or \ + hasattr(stream, 'seekable') and not stream.seekable() or \ + not hasattr(stream, 'seek') or not hasattr(stream, 'tell') + + if use_original_upload_path: + if encryption_options.get('key'): + cek, iv, encryption_data = generate_blob_encryption_data(encryption_options['key']) + headers['x-ms-meta-encryptiondata'] = encryption_data + encryption_options['cek'] = cek + encryption_options['vector'] = iv + block_ids = await upload_data_chunks( + service=client, + uploader_class=BlockBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + max_concurrency=max_concurrency, + stream=stream, + validate_content=validate_content, + encryption_options=encryption_options, + **kwargs + ) + else: + block_ids = await upload_substream_blocks( + service=client, + uploader_class=BlockBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + max_concurrency=max_concurrency, + stream=stream, + validate_content=validate_content, + **kwargs + ) + + block_lookup = BlockLookupList(committed=[], uncommitted=[], latest=[]) + block_lookup.latest = block_ids + return await client.commit_block_list( + block_lookup, + blob_http_headers=blob_headers, + cls=return_response_headers, + validate_content=validate_content, + headers=headers, + tier=tier.value if tier else None, + blob_tags_string=blob_tags_string, + **kwargs) + except StorageErrorException as error: + try: + process_storage_error(error) + except ResourceModifiedError as mod_error: + if not overwrite: + _convert_mod_error(mod_error) + raise + + +async def upload_page_blob( + client=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if not overwrite and not _any_conditions(**kwargs): + kwargs['modified_access_conditions'].if_none_match = '*' + if length is None or length < 0: + raise ValueError("A content length must be specified for a Page Blob.") + if length % 512 != 0: + raise ValueError("Invalid page blob size: {0}. " + "The size must be aligned to a 512-byte boundary.".format(length)) + if kwargs.get('premium_page_blob_tier'): + premium_page_blob_tier = kwargs.pop('premium_page_blob_tier') + try: + headers['x-ms-access-tier'] = premium_page_blob_tier.value + except AttributeError: + headers['x-ms-access-tier'] = premium_page_blob_tier + if encryption_options and encryption_options.get('data'): + headers['x-ms-meta-encryptiondata'] = encryption_options['data'] + blob_tags_string = kwargs.pop('blob_tags_string', None) + + response = await client.create( + content_length=0, + blob_content_length=length, + blob_sequence_number=None, + blob_http_headers=kwargs.pop('blob_headers', None), + blob_tags_string=blob_tags_string, + cls=return_response_headers, + headers=headers, + **kwargs) + if length == 0: + return response + + kwargs['modified_access_conditions'] = ModifiedAccessConditions(if_match=response['etag']) + return await upload_data_chunks( + service=client, + uploader_class=PageBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_page_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + encryption_options=encryption_options, + **kwargs) + + except StorageErrorException as error: + try: + process_storage_error(error) + except ResourceModifiedError as mod_error: + if not overwrite: + _convert_mod_error(mod_error) + raise + + +async def upload_append_blob( # pylint: disable=unused-argument + client=None, + stream=None, + length=None, + overwrite=None, + headers=None, + validate_content=None, + max_concurrency=None, + blob_settings=None, + encryption_options=None, + **kwargs): + try: + if length == 0: + return {} + blob_headers = kwargs.pop('blob_headers', None) + append_conditions = AppendPositionAccessConditions( + max_size=kwargs.pop('maxsize_condition', None), + append_position=None) + blob_tags_string = kwargs.pop('blob_tags_string', None) + + try: + if overwrite: + await client.create( + content_length=0, + blob_http_headers=blob_headers, + headers=headers, + blob_tags_string=blob_tags_string, + **kwargs) + return await upload_data_chunks( + service=client, + uploader_class=AppendBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + append_position_access_conditions=append_conditions, + **kwargs) + except StorageErrorException as error: + if error.response.status_code != 404: + raise + # rewind the request body if it is a stream + if hasattr(stream, 'read'): + try: + # attempt to rewind the body to the initial position + stream.seek(0, SEEK_SET) + except UnsupportedOperation: + # if body is not seekable, then retry would not work + raise error + await client.create( + content_length=0, + blob_http_headers=blob_headers, + headers=headers, + blob_tags_string=blob_tags_string, + **kwargs) + return await upload_data_chunks( + service=client, + uploader_class=AppendBlobChunkUploader, + total_size=length, + chunk_size=blob_settings.max_block_size, + stream=stream, + max_concurrency=max_concurrency, + validate_content=validate_content, + append_position_access_conditions=append_conditions, + **kwargs) + except StorageErrorException as error: + process_storage_error(error) diff --git a/src/storage-blob-preview/linter_exclusions.yml b/src/storage-blob-preview/linter_exclusions.yml new file mode 100644 index 00000000000..3f893fe7cf5 --- /dev/null +++ b/src/storage-blob-preview/linter_exclusions.yml @@ -0,0 +1,18 @@ +--- +storage blob copy start: + parameters: + if_modified_since: + rule_exclusions: + - option_length_too_long + if_none_match: + rule_exclusions: + - option_length_too_long + if_tags_match_condition: + rule_exclusions: + - option_length_too_long + if_unmodified_since: + rule_exclusions: + - option_length_too_long + source_if_tags_match_condition: + rule_exclusions: + - option_length_too_long diff --git a/src/storage-blob-preview/setup.cfg b/src/storage-blob-preview/setup.cfg new file mode 100644 index 00000000000..3c6e79cf31d --- /dev/null +++ b/src/storage-blob-preview/setup.cfg @@ -0,0 +1,2 @@ +[bdist_wheel] +universal=1 diff --git a/src/ai-did-you-mean-this/setup.py b/src/storage-blob-preview/setup.py similarity index 66% rename from src/ai-did-you-mean-this/setup.py rename to src/storage-blob-preview/setup.py index d11963a5a9c..2ab2d71c698 100644 --- a/src/ai-did-you-mean-this/setup.py +++ b/src/storage-blob-preview/setup.py @@ -5,8 +5,7 @@ # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- -import os -import re + from codecs import open from setuptools import setup, find_packages try: @@ -15,11 +14,9 @@ from distutils import log as logger logger.warn("Wheel is not available, disabling bdist_wheel hook") -# Inspired by https://github.com/Azure/azure-cli-extensions/blob/63f9cca19ab7a163c6c368b8c62f9c32432a899c/src/alias/setup.py#L14 -extension_path = os.path.dirname(os.path.realpath(__file__)) -with open(os.path.join(extension_path, 'azext_ai_did_you_mean_this', 'version.py'), 'r') as version_file: - VERSION = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]', - version_file.read(), re.MULTILINE).group(1) +# TODO: Confirm this is the right version number you want and it matches your +# HISTORY.rst entry. +VERSION = '0.3.0' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers @@ -35,6 +32,7 @@ 'License :: OSI Approved :: MIT License', ] +# TODO: Add any additional SDK dependencies here DEPENDENCIES = [] with open('README.md', 'r', encoding='utf-8') as f: @@ -43,17 +41,18 @@ HISTORY = f.read() setup( - name='ai_did_you_mean_this', + name='storage-blob-preview', version=VERSION, - description='Recommend recovery options on failure.', + description='Microsoft Azure Command-Line Tools Storage-blob-preview Extension', # TODO: Update author and email, if applicable - author="Christopher O'Toole", - author_email='chotool@microsoft.com', - url='https://github.com/Azure/azure-cli-extensions/tree/master/src/ai-did-you-mean-this', + author='Microsoft Corporation', + author_email='azpycli@microsoft.com', + # TODO: consider pointing directly to your source code instead of the generic repo + url='https://github.com/Azure/azure-cli-extensions', long_description=README + '\n\n' + HISTORY, license='MIT', classifiers=CLASSIFIERS, packages=find_packages(), install_requires=DEPENDENCIES, - package_data={'azext_ai_did_you_mean_this': ['azext_metadata.json']}, + package_data={'azext_storage_blob_preview': ['azext_metadata.json']}, ) diff --git a/src/storage-preview/HISTORY.rst b/src/storage-preview/HISTORY.rst index 0a6e4c782ac..92e3462492a 100644 --- a/src/storage-preview/HISTORY.rst +++ b/src/storage-preview/HISTORY.rst @@ -2,6 +2,9 @@ Release History =============== +0.3.0 (2020-09-15) +++++++++++++++++ +* Remove `az storage blob list` 0.2.12 (2020-07-29) ++++++++++++++++ diff --git a/src/storage-preview/azext_storage_preview/__init__.py b/src/storage-preview/azext_storage_preview/__init__.py index 6a5345b38c9..df7a0293b47 100644 --- a/src/storage-preview/azext_storage_preview/__init__.py +++ b/src/storage-preview/azext_storage_preview/__init__.py @@ -85,7 +85,7 @@ def register_path_argument(self, default_file_param=None, options_list=None): self.ignore('directory_name') def register_source_uri_arguments(self, validator, blob_only=False): - self.argument('copy_source', options_list=('--source-uri', '-u'), validator=validator, required=False, + self.argument('source_uri', options_list=('--source-uri', '-u'), validator=validator, required=False, arg_group='Copy Source') self.extra('source_sas', default=None, arg_group='Copy Source', help='The shared access signature for the source storage account.') diff --git a/src/storage-preview/azext_storage_preview/azext_metadata.json b/src/storage-preview/azext_storage_preview/azext_metadata.json index f54004996cb..81b6dcf7df7 100644 --- a/src/storage-preview/azext_storage_preview/azext_metadata.json +++ b/src/storage-preview/azext_storage_preview/azext_metadata.json @@ -1,4 +1,4 @@ { - "azext.minCliCoreVersion": "2.0.67", + "azext.minCliCoreVersion": "2.6.0", "azext.isPreview": true } \ No newline at end of file diff --git a/src/storage-preview/azext_storage_preview/commands.py b/src/storage-preview/azext_storage_preview/commands.py index 0d699e311d8..82354f01661 100644 --- a/src/storage-preview/azext_storage_preview/commands.py +++ b/src/storage-preview/azext_storage_preview/commands.py @@ -114,13 +114,6 @@ def get_custom_sdk(custom_module, client_factory, resource_type=CUSTOM_DATA_STOR client_factory=adls_blob_data_service_factory, resource_type=CUSTOM_DATA_STORAGE_ADLS) - # Change existing Blob Commands - with self.command_group('storage blob', command_type=adls_base_blob_sdk) as g: - from ._format import transform_blob_output - from ._transformers import transform_storage_list_output - g.storage_command_oauth('list', 'list_blobs', transform=transform_storage_list_output, - table_transformer=transform_blob_output) - # New Blob Commands with self.command_group('storage blob', command_type=adls_base_blob_sdk, custom_command_type=get_custom_sdk('blob', adls_blob_data_service_factory, diff --git a/src/storage-preview/azext_storage_preview/tests/latest/recordings/test_storage_adls_blob.yaml b/src/storage-preview/azext_storage_preview/tests/latest/recordings/test_storage_adls_blob.yaml index 0567ec87b55..d0b2104a966 100644 --- a/src/storage-preview/azext_storage_preview/tests/latest/recordings/test_storage_adls_blob.yaml +++ b/src/storage-preview/azext_storage_preview/tests/latest/recordings/test_storage_adls_blob.yaml @@ -13,15 +13,15 @@ interactions: ParameterSetName: - -n -g --kind --hierarchical-namespace --https-only User-Agent: - - python/3.7.7 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-resource/10.1.0 - Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-07-31T04:51:43Z"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-15T08:07:39Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache @@ -30,7 +30,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 31 Jul 2020 04:51:46 GMT + - Tue, 15 Sep 2020 08:07:42 GMT expires: - '-1' pragma: @@ -63,8 +63,8 @@ interactions: ParameterSetName: - -n -g --kind --hierarchical-namespace --https-only User-Agent: - - python/3.7.7 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-storage/3.1.0 - Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/3.1.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT @@ -80,11 +80,11 @@ interactions: content-type: - text/plain; charset=utf-8 date: - - Fri, 31 Jul 2020 04:51:54 GMT + - Tue, 15 Sep 2020 08:07:45 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/50c199d4-f657-47c3-8588-2b35b46fd34e?monitor=true&api-version=2018-07-01 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/aa95ff82-69cf-48af-9356-0d9a4dd7a207?monitor=true&api-version=2018-07-01 pragma: - no-cache server: @@ -94,7 +94,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1197' status: code: 202 message: Accepted @@ -112,13 +112,13 @@ interactions: ParameterSetName: - -n -g --kind --hierarchical-namespace --https-only User-Agent: - - python/3.7.7 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-storage/3.1.0 - Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/3.1.0 Azure-SDK-For-Python AZURECLI/2.11.1 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/50c199d4-f657-47c3-8588-2b35b46fd34e?monitor=true&api-version=2018-07-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/aa95ff82-69cf-48af-9356-0d9a4dd7a207?monitor=true&api-version=2018-07-01 response: body: - string: '{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitestaldsaccount000002","name":"clitestaldsaccount000002","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"isHnsEnabled":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"enabled":true,"lastEnabledTime":"2020-07-31T04:51:53.7705981Z"},"blob":{"enabled":true,"lastEnabledTime":"2020-07-31T04:51:53.7705981Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-07-31T04:51:53.6924912Z","primaryEndpoints":{"dfs":"https://clitestaldsaccount000002.dfs.core.windows.net/","web":"https://clitestaldsaccount000002.z22.web.core.windows.net/","blob":"https://clitestaldsaccount000002.blob.core.windows.net/","queue":"https://clitestaldsaccount000002.queue.core.windows.net/","table":"https://clitestaldsaccount000002.table.core.windows.net/","file":"https://clitestaldsaccount000002.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available","secondaryLocation":"eastus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://clitestaldsaccount000002-secondary.dfs.core.windows.net/","web":"https://clitestaldsaccount000002-secondary.z22.web.core.windows.net/","blob":"https://clitestaldsaccount000002-secondary.blob.core.windows.net/","queue":"https://clitestaldsaccount000002-secondary.queue.core.windows.net/","table":"https://clitestaldsaccount000002-secondary.table.core.windows.net/"}}}' + string: '{"sku":{"name":"Standard_RAGRS","tier":"Standard"},"kind":"StorageV2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Storage/storageAccounts/clitestaldsaccount000002","name":"clitestaldsaccount000002","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"isHnsEnabled":true,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"enabled":true,"lastEnabledTime":"2020-09-15T08:07:45.7363302Z"},"blob":{"enabled":true,"lastEnabledTime":"2020-09-15T08:07:45.7363302Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2020-09-15T08:07:45.6425725Z","primaryEndpoints":{"dfs":"https://clitestaldsaccount000002.dfs.core.windows.net/","web":"https://clitestaldsaccount000002.z22.web.core.windows.net/","blob":"https://clitestaldsaccount000002.blob.core.windows.net/","queue":"https://clitestaldsaccount000002.queue.core.windows.net/","table":"https://clitestaldsaccount000002.table.core.windows.net/","file":"https://clitestaldsaccount000002.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available","secondaryLocation":"eastus","statusOfSecondary":"available","secondaryEndpoints":{"dfs":"https://clitestaldsaccount000002-secondary.dfs.core.windows.net/","web":"https://clitestaldsaccount000002-secondary.z22.web.core.windows.net/","blob":"https://clitestaldsaccount000002-secondary.blob.core.windows.net/","queue":"https://clitestaldsaccount000002-secondary.queue.core.windows.net/","table":"https://clitestaldsaccount000002-secondary.table.core.windows.net/"}}}' headers: cache-control: - no-cache @@ -127,7 +127,7 @@ interactions: content-type: - application/json date: - - Fri, 31 Jul 2020 04:52:11 GMT + - Tue, 15 Sep 2020 08:08:03 GMT expires: - '-1' pragma: @@ -161,8 +161,8 @@ interactions: ParameterSetName: - -n -g --query -o User-Agent: - - python/3.7.7 (Windows-10-10.0.18362-SP0) msrest/0.6.9 msrest_azure/0.6.3 azure-mgmt-storage/3.1.0 - Azure-SDK-For-Python AZURECLI/2.9.1 + - python/3.7.7 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-storage/3.1.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: POST @@ -178,7 +178,7 @@ interactions: content-type: - application/json date: - - Fri, 31 Jul 2020 04:52:13 GMT + - Tue, 15 Sep 2020 08:08:04 GMT expires: - '-1' pragma: @@ -206,9 +206,9 @@ interactions: Content-Length: - '0' User-Agent: - - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:14 GMT + - Tue, 15 Sep 2020 08:08:06 GMT x-ms-version: - '2018-11-09' method: PUT @@ -220,11 +220,11 @@ interactions: content-length: - '0' date: - - Fri, 31 Jul 2020 04:52:32 GMT + - Tue, 15 Sep 2020 08:08:08 GMT etag: - - '"0x8D8350D7FD982CC"' + - '"0x8D8594E7B9E5399"' last-modified: - - Fri, 31 Jul 2020 04:52:16 GMT + - Tue, 15 Sep 2020 08:08:08 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-version: @@ -238,9 +238,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:33 GMT + - Tue, 15 Sep 2020 08:08:09 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -250,7 +250,7 @@ interactions: string: '' headers: date: - - Fri, 31 Jul 2020 04:52:37 GMT + - Tue, 15 Sep 2020 08:08:09 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 transfer-encoding: @@ -268,9 +268,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:37 GMT + - Tue, 15 Sep 2020 08:08:11 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -280,7 +280,7 @@ interactions: string: '' headers: date: - - Fri, 31 Jul 2020 04:52:38 GMT + - Tue, 15 Sep 2020 08:08:11 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 transfer-encoding: @@ -300,9 +300,9 @@ interactions: Content-Length: - '0' User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:38 GMT + - Tue, 15 Sep 2020 08:08:12 GMT x-ms-umask: - '0027' x-ms-version: @@ -316,11 +316,11 @@ interactions: content-length: - '0' date: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:12 GMT etag: - - '"0x8D8350D8D8BE01D"' + - '"0x8D8594E7E2C86C5"' last-modified: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-version: @@ -334,9 +334,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:40 GMT + - Tue, 15 Sep 2020 08:08:13 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -352,11 +352,11 @@ interactions: content-type: - application/octet-stream date: - - Fri, 31 Jul 2020 04:52:40 GMT + - Tue, 15 Sep 2020 08:08:13 GMT etag: - - '"0x8D8350D8D8BE01D"' + - '"0x8D8594E7E2C86C5"' last-modified: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-access-tier: @@ -366,7 +366,7 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT x-ms-lease-state: - available x-ms-lease-status: @@ -383,33 +383,33 @@ interactions: - request: body: null headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - azsdk-python-storage-dfs/12.0.1 Python/3.7.7 (Windows-10-10.0.19041-SP0) x-ms-date: - - Fri, 31 Jul 2020 04:52:41 GMT + - Tue, 15 Sep 2020 08:08:15 GMT x-ms-version: - '2019-02-02' method: GET - uri: https://clitestaldsaccount000002.blob.core.windows.net/cont000003?restype=container&comp=list&maxresults=5000&include=metadata%2Ccopy + uri: https://clitestaldsaccount000002.dfs.core.windows.net/cont000003?recursive=true&maxResults=5000&resource=filesystem response: body: - string: "\uFEFF5000testdirectoryFri, - 31 Jul 2020 04:52:39 GMTFri, 31 Jul 2020 04:52:39 - GMT0x8D8350D8D8BE01D0application/octet-streamAAAAAAAAAAA=BlockBlobHottrueunlockedtruetrue" + string: '{"paths":[{"contentLength":"0","etag":"0x8D8594E7E2C86C5","group":"$superuser","isDirectory":"true","lastModified":"Tue, + 15 Sep 2020 08:08:13 GMT","name":"testdirectory","owner":"$superuser","permissions":"rwxr-x---"}]} + + ' headers: content-type: - - application/xml + - application/json;charset=utf-8 date: - - Fri, 31 Jul 2020 04:52:41 GMT + - Tue, 15 Sep 2020 08:08:15 GMT server: - - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 + - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 transfer-encoding: - chunked x-ms-version: @@ -423,9 +423,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:42 GMT + - Tue, 15 Sep 2020 08:08:16 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -441,11 +441,11 @@ interactions: content-type: - application/octet-stream date: - - Fri, 31 Jul 2020 04:52:43 GMT + - Tue, 15 Sep 2020 08:08:17 GMT etag: - - '"0x8D8350D8D8BE01D"' + - '"0x8D8594E7E2C86C5"' last-modified: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-access-tier: @@ -455,7 +455,7 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT x-ms-lease-state: - available x-ms-lease-status: @@ -475,9 +475,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:44 GMT + - Tue, 15 Sep 2020 08:08:18 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -487,11 +487,11 @@ interactions: string: '' headers: date: - - Fri, 31 Jul 2020 04:52:44 GMT + - Tue, 15 Sep 2020 08:08:18 GMT etag: - - '"0x8D8350D8D8BE01D"' + - '"0x8D8594E7E2C86C5"' last-modified: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-acl: @@ -513,9 +513,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:45 GMT + - Tue, 15 Sep 2020 08:08:19 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -531,11 +531,11 @@ interactions: content-type: - application/octet-stream date: - - Fri, 31 Jul 2020 04:52:45 GMT + - Tue, 15 Sep 2020 08:08:20 GMT etag: - - '"0x8D8350D8D8BE01D"' + - '"0x8D8594E7E2C86C5"' last-modified: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-access-tier: @@ -545,7 +545,7 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT x-ms-lease-state: - available x-ms-lease-status: @@ -565,9 +565,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:46 GMT + - Tue, 15 Sep 2020 08:08:20 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -577,7 +577,7 @@ interactions: string: '' headers: date: - - Fri, 31 Jul 2020 04:52:47 GMT + - Tue, 15 Sep 2020 08:08:21 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 transfer-encoding: @@ -597,9 +597,9 @@ interactions: Content-Length: - '0' User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:47 GMT + - Tue, 15 Sep 2020 08:08:22 GMT x-ms-permissions: - rwxrwxrwx x-ms-umask: @@ -615,11 +615,11 @@ interactions: content-length: - '0' date: - - Fri, 31 Jul 2020 04:52:48 GMT + - Tue, 15 Sep 2020 08:08:22 GMT etag: - - '"0x8D8350D92AAF11C"' + - '"0x8D8594E84029B01"' last-modified: - - Fri, 31 Jul 2020 04:52:48 GMT + - Tue, 15 Sep 2020 08:08:23 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-version: @@ -633,9 +633,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:48 GMT + - Tue, 15 Sep 2020 08:08:23 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -651,11 +651,11 @@ interactions: content-type: - application/octet-stream date: - - Fri, 31 Jul 2020 04:52:49 GMT + - Tue, 15 Sep 2020 08:08:23 GMT etag: - - '"0x8D8350D92AAF11C"' + - '"0x8D8594E84029B01"' last-modified: - - Fri, 31 Jul 2020 04:52:48 GMT + - Tue, 15 Sep 2020 08:08:23 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-access-tier: @@ -665,7 +665,7 @@ interactions: x-ms-blob-type: - BlockBlob x-ms-creation-time: - - Fri, 31 Jul 2020 04:52:48 GMT + - Tue, 15 Sep 2020 08:08:23 GMT x-ms-lease-state: - available x-ms-lease-status: @@ -685,9 +685,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:49 GMT + - Tue, 15 Sep 2020 08:08:24 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -697,11 +697,11 @@ interactions: string: '' headers: date: - - Fri, 31 Jul 2020 04:52:50 GMT + - Tue, 15 Sep 2020 08:08:25 GMT etag: - - '"0x8D8350D92AAF11C"' + - '"0x8D8594E84029B01"' last-modified: - - Fri, 31 Jul 2020 04:52:48 GMT + - Tue, 15 Sep 2020 08:08:23 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-acl: @@ -725,11 +725,11 @@ interactions: Content-Length: - '131072' User-Agent: - - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.0.0-2.0.1 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-blob-type: - BlockBlob x-ms-date: - - Fri, 31 Jul 2020 04:52:51 GMT + - Tue, 15 Sep 2020 08:08:26 GMT x-ms-version: - '2018-11-09' method: PUT @@ -743,11 +743,11 @@ interactions: content-md5: - DfvoqkwgtS4bi/PLbL3xkw== date: - - Fri, 31 Jul 2020 04:52:52 GMT + - Tue, 15 Sep 2020 08:08:27 GMT etag: - - '"0x8D8350D95687806"' + - '"0x8D8594E8717C950"' last-modified: - - Fri, 31 Jul 2020 04:52:53 GMT + - Tue, 15 Sep 2020 08:08:28 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-request-server-encrypted: @@ -765,11 +765,11 @@ interactions: Content-Length: - '0' User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-acl: - user::rwx,group::r--,other::--- x-ms-date: - - Fri, 31 Jul 2020 04:52:53 GMT + - Tue, 15 Sep 2020 08:08:28 GMT x-ms-version: - '2019-02-02' method: PATCH @@ -781,11 +781,11 @@ interactions: content-length: - '0' date: - - Fri, 31 Jul 2020 04:52:53 GMT + - Tue, 15 Sep 2020 08:08:31 GMT etag: - - '"0x8D8350D95687806"' + - '"0x8D8594E8717C950"' last-modified: - - Fri, 31 Jul 2020 04:52:53 GMT + - Tue, 15 Sep 2020 08:08:28 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-namespace-enabled: @@ -801,9 +801,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:54 GMT + - Tue, 15 Sep 2020 08:08:32 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -813,11 +813,11 @@ interactions: string: '' headers: date: - - Fri, 31 Jul 2020 04:52:55 GMT + - Tue, 15 Sep 2020 08:08:32 GMT etag: - - '"0x8D8350D95687806"' + - '"0x8D8594E8717C950"' last-modified: - - Fri, 31 Jul 2020 04:52:53 GMT + - Tue, 15 Sep 2020 08:08:28 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-acl: @@ -841,9 +841,9 @@ interactions: Content-Length: - '0' User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:56 GMT + - Tue, 15 Sep 2020 08:08:33 GMT x-ms-permissions: - rwxrwxrwx x-ms-version: @@ -857,11 +857,11 @@ interactions: content-length: - '0' date: - - Fri, 31 Jul 2020 04:52:56 GMT + - Tue, 15 Sep 2020 08:08:33 GMT etag: - - '"0x8D8350D95687806"' + - '"0x8D8594E8717C950"' last-modified: - - Fri, 31 Jul 2020 04:52:53 GMT + - Tue, 15 Sep 2020 08:08:28 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-namespace-enabled: @@ -877,9 +877,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:52:57 GMT + - Tue, 15 Sep 2020 08:08:34 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -889,11 +889,11 @@ interactions: string: '' headers: date: - - Fri, 31 Jul 2020 04:52:58 GMT + - Tue, 15 Sep 2020 08:08:35 GMT etag: - - '"0x8D8350D95687806"' + - '"0x8D8594E8717C950"' last-modified: - - Fri, 31 Jul 2020 04:52:53 GMT + - Tue, 15 Sep 2020 08:08:28 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-acl: @@ -917,11 +917,11 @@ interactions: Content-Length: - '0' User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-acl: - user::rwx,group::r--,other::--- x-ms-date: - - Fri, 31 Jul 2020 04:52:58 GMT + - Tue, 15 Sep 2020 08:08:36 GMT x-ms-version: - '2019-02-02' method: PATCH @@ -933,11 +933,11 @@ interactions: content-length: - '0' date: - - Fri, 31 Jul 2020 04:52:59 GMT + - Tue, 15 Sep 2020 08:08:37 GMT etag: - - '"0x8D8350D8D8BE01D"' + - '"0x8D8594E7E2C86C5"' last-modified: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-namespace-enabled: @@ -953,9 +953,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:53:00 GMT + - Tue, 15 Sep 2020 08:08:37 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -965,11 +965,11 @@ interactions: string: '' headers: date: - - Fri, 31 Jul 2020 04:53:00 GMT + - Tue, 15 Sep 2020 08:08:38 GMT etag: - - '"0x8D8350D8D8BE01D"' + - '"0x8D8594E7E2C86C5"' last-modified: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-acl: @@ -993,9 +993,9 @@ interactions: Content-Length: - '0' User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:53:01 GMT + - Tue, 15 Sep 2020 08:08:39 GMT x-ms-permissions: - rwxrwxrwx x-ms-version: @@ -1009,11 +1009,11 @@ interactions: content-length: - '0' date: - - Fri, 31 Jul 2020 04:53:02 GMT + - Tue, 15 Sep 2020 08:08:40 GMT etag: - - '"0x8D8350D8D8BE01D"' + - '"0x8D8594E7E2C86C5"' last-modified: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-namespace-enabled: @@ -1029,9 +1029,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:53:03 GMT + - Tue, 15 Sep 2020 08:08:40 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -1041,11 +1041,11 @@ interactions: string: '' headers: date: - - Fri, 31 Jul 2020 04:53:03 GMT + - Tue, 15 Sep 2020 08:08:41 GMT etag: - - '"0x8D8350D8D8BE01D"' + - '"0x8D8594E7E2C86C5"' last-modified: - - Fri, 31 Jul 2020 04:52:39 GMT + - Tue, 15 Sep 2020 08:08:13 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-acl: @@ -1069,9 +1069,9 @@ interactions: Content-Length: - '0' User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:53:04 GMT + - Tue, 15 Sep 2020 08:08:42 GMT x-ms-meta-tag1: - value1 x-ms-version: @@ -1085,11 +1085,11 @@ interactions: content-length: - '0' date: - - Fri, 31 Jul 2020 04:53:04 GMT + - Tue, 15 Sep 2020 08:08:43 GMT etag: - - '"0x8D8350D9CAFAF40"' + - '"0x8D8594E903603BD"' last-modified: - - Fri, 31 Jul 2020 04:53:05 GMT + - Tue, 15 Sep 2020 08:08:43 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-request-server-encrypted: @@ -1105,9 +1105,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:53:05 GMT + - Tue, 15 Sep 2020 08:08:43 GMT x-ms-version: - '2019-02-02' method: GET @@ -1119,11 +1119,11 @@ interactions: content-length: - '0' date: - - Fri, 31 Jul 2020 04:53:06 GMT + - Tue, 15 Sep 2020 08:08:44 GMT etag: - - '"0x8D8350D9CAFAF40"' + - '"0x8D8594E903603BD"' last-modified: - - Fri, 31 Jul 2020 04:53:05 GMT + - Tue, 15 Sep 2020 08:08:43 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-meta-hdi_isfolder: @@ -1143,9 +1143,9 @@ interactions: Content-Length: - '0' User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:53:06 GMT + - Tue, 15 Sep 2020 08:08:45 GMT x-ms-version: - '2019-02-02' method: DELETE @@ -1157,7 +1157,7 @@ interactions: content-length: - '0' date: - - Fri, 31 Jul 2020 04:53:07 GMT + - Tue, 15 Sep 2020 08:08:46 GMT server: - Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0 x-ms-version: @@ -1171,9 +1171,9 @@ interactions: Connection: - keep-alive User-Agent: - - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.9.1 + - Azure-Storage/2.1.0-2.1.0 (Python CPython 3.7.7; Windows 10) AZURECLI/2.11.1 x-ms-date: - - Fri, 31 Jul 2020 04:53:07 GMT + - Tue, 15 Sep 2020 08:08:47 GMT x-ms-version: - '2019-02-02' method: HEAD @@ -1183,7 +1183,7 @@ interactions: string: '' headers: date: - - Fri, 31 Jul 2020 04:53:08 GMT + - Tue, 15 Sep 2020 08:08:47 GMT server: - Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 transfer-encoding: diff --git a/src/storage-preview/azext_storage_preview/tests/latest/test_storage_adls_scenarios.py b/src/storage-preview/azext_storage_preview/tests/latest/test_storage_adls_scenarios.py index d9a2e58141d..7697927956a 100644 --- a/src/storage-preview/azext_storage_preview/tests/latest/test_storage_adls_scenarios.py +++ b/src/storage-preview/azext_storage_preview/tests/latest/test_storage_adls_scenarios.py @@ -32,9 +32,9 @@ def test_storage_adls_blob(self, resource_group): self.storage_cmd('storage blob directory create -c {} -d {}', account_info, container, directory) self.storage_cmd('storage blob directory exists -c {} -d {} ', account_info, container, directory)\ .assert_with_checks(JMESPathCheck('exists', True)) - self.storage_cmd('storage blob list -c {}', account_info, container) \ + self.storage_cmd('storage fs file list -f {}', account_info, container) \ .assert_with_checks(JMESPathCheck('length(@)', 1)) \ - .assert_with_checks(JMESPathCheck('[0].metadata.hdi_isfolder', 'true')) + .assert_with_checks(JMESPathCheck('[0].isDirectory', True)) self.storage_cmd('storage blob directory show -c {} -d {} ', account_info, container, directory) \ .assert_with_checks(JMESPathCheck('metadata.hdi_isfolder', "true")) self.storage_cmd('storage blob directory access show -c {} -d {}', account_info, container, directory) \ diff --git a/src/storage-preview/setup.py b/src/storage-preview/setup.py index d7d00742fc6..0b2c6de3f00 100644 --- a/src/storage-preview/setup.py +++ b/src/storage-preview/setup.py @@ -8,7 +8,7 @@ from codecs import open from setuptools import setup, find_packages -VERSION = "0.2.12" +VERSION = "0.3.0" CLASSIFIERS = [ 'Development Status :: 4 - Beta', diff --git a/src/timeseriesinsights/HISTORY.rst b/src/timeseriesinsights/HISTORY.rst index 209886aaeed..58ea4f545d6 100644 --- a/src/timeseriesinsights/HISTORY.rst +++ b/src/timeseriesinsights/HISTORY.rst @@ -3,10 +3,15 @@ Release History =============== +0.1.3 +++++++ + +* Fix #2003: ``az timeseriesinsights environment standard create``: ``--partition-key-properties`` should be optional + 0.1.2 ++++++ -* Fix #1712: ``--timestamp-property-name`` should be made optional +* Fix #1712: ``az timeseriesinsights event-source eventhub/iothub create``: ``--timestamp-property-name`` should be optional 0.1.1 ++++++ diff --git a/src/timeseriesinsights/README.md b/src/timeseriesinsights/README.md index f7d0d5f25d6..68f9a4e6594 100644 --- a/src/timeseriesinsights/README.md +++ b/src/timeseriesinsights/README.md @@ -38,7 +38,7 @@ az group create --name $rg --location westus ```sh env={standard_environment_name} -az timeseriesinsights environment standard create -g $rg --name $env --location westus --sku-name S1 --sku-capacity 1 --data-retention-time P31D --partition-key DeviceId1 --storage-limit-exceeded-behavior PauseIngress +az timeseriesinsights environment standard create -g $rg --name $env --location westus --sku-name S1 --sku-capacity 1 --data-retention-time 31 --partition-key-properties DeviceId1 --storage-limit-exceeded-behavior PauseIngress ``` ### Create a storage account and use it to create a long-term environment diff --git a/src/timeseriesinsights/azext_timeseriesinsights/custom.py b/src/timeseriesinsights/azext_timeseriesinsights/custom.py index 0626913b448..251c1f3bd7f 100644 --- a/src/timeseriesinsights/azext_timeseriesinsights/custom.py +++ b/src/timeseriesinsights/azext_timeseriesinsights/custom.py @@ -28,7 +28,7 @@ def create_timeseriesinsights_environment_standard(cmd, client, data_retention_time=data_retention_time, storage_limit_exceeded_behavior=storage_limit_exceeded_behavior, # Need to confirm whether multiple key properties are supported - partition_key_properties=[TimeSeriesIdProperty(name=id_property, type="String") for id_property in partition_key_properties] + partition_key_properties=[TimeSeriesIdProperty(name=id_property, type="String") for id_property in partition_key_properties] if partition_key_properties else None ) return sdk_no_wait(no_wait, client.create_or_update, resource_group_name=resource_group_name, environment_name=environment_name, parameters=parameters) diff --git a/src/timeseriesinsights/azext_timeseriesinsights/tests/latest/recordings/test_timeseriesinsights_environment_standard.yaml b/src/timeseriesinsights/azext_timeseriesinsights/tests/latest/recordings/test_timeseriesinsights_environment_standard.yaml index 650466dfce1..ad80e89ef05 100644 --- a/src/timeseriesinsights/azext_timeseriesinsights/tests/latest/recordings/test_timeseriesinsights_environment_standard.yaml +++ b/src/timeseriesinsights/azext_timeseriesinsights/tests/latest/recordings/test_timeseriesinsights_environment_standard.yaml @@ -14,24 +14,24 @@ interactions: - --resource-group --name --sku-name --sku-capacity --data-retention-time --partition-key-properties --storage-limit-exceeded-behavior User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-resource/9.0.0 Azure-SDK-For-Python AZURECLI/2.6.0 + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_timeseriesinsights000001?api-version=2019-07-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_timeseriesinsights000001?api-version=2020-06-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001","name":"cli_test_timeseriesinsights000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-05-18T07:05:29Z","StorageType":"Standard_LRS","type":"test"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001","name":"cli_test_timeseriesinsights000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-14T08:57:33Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '471' + - '428' content-type: - application/json; charset=utf-8 date: - - Mon, 18 May 2020 07:05:34 GMT + - Mon, 14 Sep 2020 08:57:35 GMT expires: - '-1' pragma: @@ -66,24 +66,24 @@ interactions: - --resource-group --name --sku-name --sku-capacity --data-retention-time --partition-key-properties --storage-limit-exceeded-behavior User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.6.0 + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002?api-version=2018-08-15-preview response: body: - string: '{"sku":{"name":"S1","capacity":1},"kind":"Standard","location":"westus","tags":null,"properties":{"dataRetentionTime":"P7D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:43.4408437+00:00","provisioningState":"Accepted","dataAccessId":"04c71581-6f41-4b84-8068-5c68bc25a17b","dataAccessFqdn":"04c71581-6f41-4b84-8068-5c68bc25a17b.env.timeseries.azure.com","requestApiVersion":"2018-08-15-preview"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' + string: '{"sku":{"name":"S1","capacity":1},"kind":"Standard","location":"westus","tags":null,"properties":{"dataRetentionTime":"P7D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-09-14T08:57:42.4150052+00:00","provisioningState":"Succeeded","dataAccessId":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989","dataAccessFqdn":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989.env.timeseries.azure.com","requestApiVersion":"2018-08-15-preview"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' headers: cache-control: - no-cache content-length: - - '805' + - '806' content-type: - application/json date: - - Mon, 18 May 2020 07:05:47 GMT + - Mon, 14 Sep 2020 08:57:54 GMT expires: - '-1' pragma: @@ -95,58 +95,10 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1191' + - '1158' status: code: 201 message: Created -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - timeseriesinsights environment standard create - Connection: - - keep-alive - ParameterSetName: - - --resource-group --name --sku-name --sku-capacity --data-retention-time --partition-key-properties - --storage-limit-exceeded-behavior - User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.6.0 - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002?api-version=2018-08-15-preview - response: - body: - string: '{"sku":{"name":"S1","capacity":1},"kind":"Standard","location":"westus","tags":null,"properties":{"dataRetentionTime":"P7D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:43.4408437Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"04c71581-6f41-4b84-8068-5c68bc25a17b","dataAccessFqdn":"04c71581-6f41-4b84-8068-5c68bc25a17b.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' - headers: - cache-control: - - no-cache - content-length: - - '801' - content-type: - - application/json - date: - - Mon, 18 May 2020 07:06:19 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: '{"sku": {"name": "S1", "capacity": 2}}' headers: @@ -165,15 +117,15 @@ interactions: ParameterSetName: - --resource-group --name --sku-name --sku-capacity User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.6.0 + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PATCH uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002?api-version=2018-08-15-preview response: body: - string: '{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P7D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:43.4408437Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"04c71581-6f41-4b84-8068-5c68bc25a17b","dataAccessFqdn":"04c71581-6f41-4b84-8068-5c68bc25a17b.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' + string: '{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P7D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-09-14T08:57:42.4150052Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989","dataAccessFqdn":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' headers: cache-control: - no-cache @@ -182,7 +134,7 @@ interactions: content-type: - application/json date: - - Mon, 18 May 2020 07:06:26 GMT + - Mon, 14 Sep 2020 08:58:01 GMT expires: - '-1' pragma: @@ -198,7 +150,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1195' status: code: 200 message: OK @@ -220,15 +172,15 @@ interactions: ParameterSetName: - --resource-group --name --data-retention-time User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.6.0 + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PATCH uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002?api-version=2018-08-15-preview response: body: - string: '{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:43.4408437Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"04c71581-6f41-4b84-8068-5c68bc25a17b","dataAccessFqdn":"04c71581-6f41-4b84-8068-5c68bc25a17b.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' + string: '{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-09-14T08:57:42.4150052Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989","dataAccessFqdn":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' headers: cache-control: - no-cache @@ -237,7 +189,7 @@ interactions: content-type: - application/json date: - - Mon, 18 May 2020 07:06:28 GMT + - Mon, 14 Sep 2020 08:58:03 GMT expires: - '-1' pragma: @@ -253,7 +205,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1189' + - '1194' status: code: 200 message: OK @@ -275,15 +227,15 @@ interactions: ParameterSetName: - --resource-group --name --storage-limit-exceeded-behavior User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.6.0 + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: PATCH uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002?api-version=2018-08-15-preview response: body: - string: '{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PurgeOldData","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:43.4408437Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"04c71581-6f41-4b84-8068-5c68bc25a17b","dataAccessFqdn":"04c71581-6f41-4b84-8068-5c68bc25a17b.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' + string: '{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PurgeOldData","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-09-14T08:57:42.4150052Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989","dataAccessFqdn":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' headers: cache-control: - no-cache @@ -292,7 +244,7 @@ interactions: content-type: - application/json date: - - Mon, 18 May 2020 07:06:29 GMT + - Mon, 14 Sep 2020 08:58:04 GMT expires: - '-1' pragma: @@ -308,7 +260,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1188' + - '1197' status: code: 200 message: OK @@ -326,15 +278,15 @@ interactions: ParameterSetName: - --resource-group --name User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.6.0 + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002?api-version=2018-08-15-preview response: body: - string: '{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PurgeOldData","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:43.4408437Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"04c71581-6f41-4b84-8068-5c68bc25a17b","dataAccessFqdn":"04c71581-6f41-4b84-8068-5c68bc25a17b.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' + string: '{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PurgeOldData","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-09-14T08:57:42.4150052Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989","dataAccessFqdn":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}' headers: cache-control: - no-cache @@ -343,7 +295,7 @@ interactions: content-type: - application/json date: - - Mon, 18 May 2020 07:06:30 GMT + - Mon, 14 Sep 2020 08:58:05 GMT expires: - '-1' pragma: @@ -375,15 +327,15 @@ interactions: ParameterSetName: - --resource-group User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.6.0 + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments?api-version=2018-08-15-preview response: body: - string: '{"value":[{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PurgeOldData","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:43.4408437Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"04c71581-6f41-4b84-8068-5c68bc25a17b","dataAccessFqdn":"04c71581-6f41-4b84-8068-5c68bc25a17b.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}]}' + string: '{"value":[{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PurgeOldData","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-09-14T08:57:42.4150052Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989","dataAccessFqdn":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}]}' headers: cache-control: - no-cache @@ -392,7 +344,7 @@ interactions: content-type: - application/json date: - - Mon, 18 May 2020 07:06:31 GMT + - Mon, 14 Sep 2020 08:58:06 GMT expires: - '-1' pragma: @@ -422,24 +374,24 @@ interactions: Connection: - keep-alive User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.6.0 + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.TimeSeriesInsights/environments?api-version=2018-08-15-preview response: body: - string: '{"value":[{"sku":{"name":"S1","capacity":1},"kind":"Standard","location":"westus","tags":null,"properties":{"dataRetentionTime":"P31D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:46.6439947Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"38c2b3bb-202d-409b-b6af-13165ba509ef","dataAccessFqdn":"38c2b3bb-202d-409b-b6af-13165ba509ef.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights3th7s5h3vkolxxhp4r7nndubsxczbjwc4ksdaaahmhy6yqni/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-envz4q5h5rp","name":"cli-test-tsi-envz4q5h5rp","type":"Microsoft.TimeSeriesInsights/Environments"},{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PurgeOldData","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:43.4408437Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"04c71581-6f41-4b84-8068-5c68bc25a17b","dataAccessFqdn":"04c71581-6f41-4b84-8068-5c68bc25a17b.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"},{"sku":{"name":"S1","capacity":1},"kind":"Standard","location":"westus","tags":null,"properties":{"dataRetentionTime":"P31D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:50.6704839Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"15e132bd-a526-4c9a-9ca7-5fb45d1ac184","dataAccessFqdn":"15e132bd-a526-4c9a-9ca7-5fb45d1ac184.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights4u7etlphuia5jroxjjxje63q6zzeabmhrna7ihbzgqgth2dq/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-envp64livwc","name":"cli-test-tsi-envp64livwc","type":"Microsoft.TimeSeriesInsights/Environments"},{"sku":{"name":"S1","capacity":1},"kind":"Standard","location":"westus","tags":null,"properties":{"dataRetentionTime":"P31D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:41.1766404Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"a096910d-50b3-492e-a5f0-7e82868516c8","dataAccessFqdn":"a096910d-50b3-492e-a5f0-7e82868516c8.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsightsjul33xjtd7kg5jsdqokxkmcjiadch6wmu26sjd72bn5zaq7a/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-envzmk2u43r","name":"cli-test-tsi-envzmk2u43r","type":"Microsoft.TimeSeriesInsights/Environments"},{"sku":{"name":"S1","capacity":1},"kind":"Standard","location":"westus","tags":null,"properties":{"dataRetentionTime":"P7D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T03:04:26.6065083Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"738c6b44-35d3-434a-a1e2-05a6c43f9b91","dataAccessFqdn":"738c6b44-35d3-434a-a1e2-05a6c43f9b91.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.TimeSeriesInsights/environments/env1","name":"env1","type":"Microsoft.TimeSeriesInsights/Environments"},{"sku":{"name":"S1","capacity":1},"kind":"Standard","location":"westus","tags":null,"properties":{"dataRetentionTime":"P31D","storageLimitExceededBehavior":"PauseIngress","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-05-18T07:05:54.1394788Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"b229444b-d3fe-40b3-aa56-b1d0034ac955","dataAccessFqdn":"b229444b-d3fe-40b3-aa56-b1d0034ac955.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights3prg5bvmxghup6sde7wdyqilbskkj6e3eiui7pnwhmampwky/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-envbqzlrzpn","name":"cli-test-tsi-envbqzlrzpn","type":"Microsoft.TimeSeriesInsights/Environments"},{"sku":{"name":"L1","capacity":1},"kind":"LongTerm","location":"WestUs","tags":{},"properties":{"timeSeriesIdProperties":[{"name":"DeviceId1","type":"String"}],"storageConfiguration":{"accountName":"clitestjbmxigo3m3ojcr4xw"},"warmStoreConfiguration":{"dataRetention":"P8D"},"creationTime":"2020-05-18T06:55:29.1065897Z","provisioningState":"Deleting","requestApiVersion":"2018-08-15-preview","dataAccessId":"145f3b06-ac3a-41d4-9aea-f5f68d764402","dataAccessFqdn":"145f3b06-ac3a-41d4-9aea-f5f68d764402.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsightsmpyjuymosotkmjhrqb6mic34bmeefpwkf3swkto64mbwdg57/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-envtdlugpgl","name":"cli-test-tsi-envtdlugpgl","type":"Microsoft.TimeSeriesInsights/Environments"},{"sku":{"name":"L1","capacity":1},"kind":"LongTerm","location":"WestUs","tags":{},"properties":{"timeSeriesIdProperties":[{"name":"DeviceId1","type":"String"}],"storageConfiguration":{"accountName":"clitestqa73h5bnf7mngwfcy"},"warmStoreConfiguration":{"dataRetention":"P8D"},"creationTime":"2020-05-18T07:06:07.0622679Z","provisioningState":"Updating","requestApiVersion":"2018-08-15-preview","dataAccessId":"d6ad1bd9-084f-403c-bf5f-cab12ef5ad28","dataAccessFqdn":"d6ad1bd9-084f-403c-bf5f-cab12ef5ad28.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsightsiluqduqjjym4velhati7ko76mhzbldjiug2qzl5hrlb2dzph/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-envkvx2nuv5","name":"cli-test-tsi-envkvx2nuv5","type":"Microsoft.TimeSeriesInsights/Environments"}]}' + string: '{"value":[{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PurgeOldData","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-09-14T08:47:48.6136944Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"0d2e49a5-aafe-487f-a3f4-726fc119b567","dataAccessFqdn":"0d2e49a5-aafe-487f-a3f4-726fc119b567.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsightsshri4ciwopuz4f45undhb56vgq6pzxnf3deluxyd3z274jee/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-envd6s3xkly","name":"cli-test-tsi-envd6s3xkly","type":"Microsoft.TimeSeriesInsights/Environments"},{"sku":{"name":"S1","capacity":2},"kind":"Standard","location":"westus","tags":{},"properties":{"dataRetentionTime":"P8D","storageLimitExceededBehavior":"PurgeOldData","partitionKeyProperties":[{"name":"DeviceId1","type":"String"}],"creationTime":"2020-09-14T08:57:42.4150052Z","provisioningState":"Succeeded","requestApiVersion":"2018-08-15-preview","dataAccessId":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989","dataAccessFqdn":"0e2400dd-a9a7-4b22-bedf-145ecf8d8989.env.timeseries.azure.com"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000002","name":"cli-test-tsi-env000002","type":"Microsoft.TimeSeriesInsights/Environments"}]}' headers: cache-control: - no-cache content-length: - - '6397' + - '1611' content-type: - application/json date: - - Mon, 18 May 2020 07:06:33 GMT + - Mon, 14 Sep 2020 08:58:08 GMT expires: - '-1' pragma: @@ -473,8 +425,8 @@ interactions: ParameterSetName: - --resource-group --name --yes User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.6.0 + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: DELETE @@ -488,7 +440,7 @@ interactions: content-length: - '0' date: - - Mon, 18 May 2020 07:06:38 GMT + - Mon, 14 Sep 2020 08:58:12 GMT expires: - '-1' pragma: @@ -500,7 +452,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-deletes: - - '14996' + - '14994' status: code: 200 message: OK @@ -518,8 +470,8 @@ interactions: ParameterSetName: - --resource-group User-Agent: - - python/3.8.1 (Windows-10-10.0.18362-SP0) msrest/0.6.10 msrest_azure/0.6.3 - azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.6.0 + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 accept-language: - en-US method: GET @@ -535,7 +487,52 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 18 May 2020 07:06:39 GMT + - Mon, 14 Sep 2020 08:58:13 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: + - timeseriesinsights environment standard create + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name --sku-name --sku-capacity --data-retention-time + User-Agent: + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_timeseriesinsights000001?api-version=2020-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001","name":"cli_test_timeseriesinsights000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2020-09-14T08:57:33Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '428' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 14 Sep 2020 08:58:13 GMT expires: - '-1' pragma: @@ -549,4 +546,103 @@ interactions: status: code: 200 message: OK +- request: + body: '{"location": "westus", "sku": {"name": "S1", "capacity": 1}, "kind": "Standard", + "properties": {"dataRetentionTime": "P7D"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - timeseriesinsights environment standard create + Connection: + - keep-alive + Content-Length: + - '124' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - --resource-group --name --sku-name --sku-capacity --data-retention-time + User-Agent: + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000003?api-version=2018-08-15-preview + response: + body: + string: '{"sku":{"name":"S1","capacity":1},"kind":"Standard","location":"westus","tags":null,"properties":{"dataRetentionTime":"P7D","creationTime":"2020-09-14T08:58:20.0229426+00:00","provisioningState":"Succeeded","dataAccessId":"4d6cbba2-b744-4fab-b786-11a2e4198ab8","dataAccessFqdn":"4d6cbba2-b744-4fab-b786-11a2e4198ab8.env.timeseries.azure.com","requestApiVersion":"2018-08-15-preview","storageLimitExceededBehavior":"PurgeOldData"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000003","name":"cli-test-tsi-env000003","type":"Microsoft.TimeSeriesInsights/Environments"}' + headers: + cache-control: + - no-cache + content-length: + - '742' + content-type: + - application/json + date: + - Mon, 14 Sep 2020 08:58:32 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: + - '1197' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - timeseriesinsights environment delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --resource-group --name --yes + User-Agent: + - python/3.8.5 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 + azure-mgmt-timeseriesinsights/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 + accept-language: + - en-US + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_timeseriesinsights000001/providers/Microsoft.TimeSeriesInsights/environments/cli-test-tsi-env000003?api-version=2018-08-15-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Mon, 14 Sep 2020 08:58:36 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: + - '14996' + status: + code: 200 + message: OK version: 1 diff --git a/src/timeseriesinsights/azext_timeseriesinsights/tests/latest/test_timeseriesinsights_scenario.py b/src/timeseriesinsights/azext_timeseriesinsights/tests/latest/test_timeseriesinsights_scenario.py index 04c6ebe96c7..8008d153370 100644 --- a/src/timeseriesinsights/azext_timeseriesinsights/tests/latest/test_timeseriesinsights_scenario.py +++ b/src/timeseriesinsights/azext_timeseriesinsights/tests/latest/test_timeseriesinsights_scenario.py @@ -32,9 +32,10 @@ def _create_timeseriesinsights_environment(self): def test_timeseriesinsights_environment_standard(self, resource_group): self.kwargs.update({ 'env': self.create_random_name('cli-test-tsi-env', 24), + 'env2': self.create_random_name('cli-test-tsi-env', 24), }) - # Test environment standard create + # Test `environment standard create` with optional arguments self.cmd('az timeseriesinsights environment standard create ' '--resource-group {rg} ' '--name {env} ' @@ -43,7 +44,9 @@ def test_timeseriesinsights_environment_standard(self, resource_group): '--data-retention-time 7 ' '--partition-key-properties DeviceId1 ' '--storage-limit-exceeded-behavior PauseIngress', - checks=[self.check('name', '{env}')]) + checks=[self.check('name', '{env}'), + self.check('partitionKeyProperties', [{"name": "DeviceId1", "type": "String"}]), + self.check('storageLimitExceededBehavior', 'PauseIngress')]) self.cmd('az timeseriesinsights environment standard update --resource-group {rg} --name {env} --sku-name S1 --sku-capacity 2', checks=[self.check('sku.capacity', '2')]) @@ -75,6 +78,22 @@ def test_timeseriesinsights_environment_standard(self, resource_group): '--resource-group {rg}', checks=[self.check('length(@)', 0)]) + # Test `environment standard create` with required arguments + self.cmd('az timeseriesinsights environment standard create ' + '--resource-group {rg} ' + '--name {env2} ' + '--sku-name S1 ' + '--sku-capacity 1 ' + '--data-retention-time 7', + checks=[self.check('name', '{env2}'), + self.check('partitionKeyProperties', None), + self.check('storageLimitExceededBehavior', 'PurgeOldData')]) + + self.cmd('az timeseriesinsights environment delete ' + '--resource-group {rg} ' + '--name {env2} --yes', + checks=[]) + @ResourceGroupPreparer(name_prefix='cli_test_timeseriesinsights') @StorageAccountPreparer() def test_timeseriesinsights_environment_longterm(self, resource_group, storage_account): diff --git a/src/timeseriesinsights/setup.py b/src/timeseriesinsights/setup.py index 1829ebe6ec7..7aa00cf3d28 100644 --- a/src/timeseriesinsights/setup.py +++ b/src/timeseriesinsights/setup.py @@ -14,7 +14,7 @@ from distutils import log as logger logger.warn("Wheel is not available, disabling bdist_wheel hook") -VERSION = '0.1.2' +VERSION = '0.1.3' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers diff --git a/src/virtual-wan/HISTORY.rst b/src/virtual-wan/HISTORY.rst index 829ceecd13a..3cf1de1df45 100644 --- a/src/virtual-wan/HISTORY.rst +++ b/src/virtual-wan/HISTORY.rst @@ -3,6 +3,10 @@ Release History =============== +0.2.1 +++++++ +* [BREAKING CHANGE] `az network vwan create/update`: Remove the stale argument `--vnet-to-vnet-traffic`. + 0.2.0 ++++++ * `az network vhub route-table`: Support virtual hub v3 route table. diff --git a/src/virtual-wan/azext_vwan/_params.py b/src/virtual-wan/azext_vwan/_params.py index 2dca5233275..6de59606815 100644 --- a/src/virtual-wan/azext_vwan/_params.py +++ b/src/virtual-wan/azext_vwan/_params.py @@ -41,7 +41,6 @@ def load_arguments(self, _): c.argument('virtual_wan_name', vwan_name_type, options_list=['--name', '-n']) c.argument('location', get_location_type(self.cli_ctx), validator=get_default_location_from_resource_group) c.argument('branch_to_branch_traffic', arg_type=get_three_state_flag(), help='Allow branch-to-branch traffic flow.') - c.argument('vnet_to_vnet_traffic', arg_type=get_three_state_flag(), help='Allow VNet-to-VNet traffic flow.') c.argument('security_provider_name', help='The security provider name.') c.argument('office365_category', help='The office local breakout category.') c.argument('disable_vpn_encryption', arg_type=get_three_state_flag(), help='State of VPN encryption.') diff --git a/src/virtual-wan/azext_vwan/custom.py b/src/virtual-wan/azext_vwan/custom.py index 4c256ef812c..296c7309fdd 100644 --- a/src/virtual-wan/azext_vwan/custom.py +++ b/src/virtual-wan/azext_vwan/custom.py @@ -90,7 +90,7 @@ def _find_item_at_path(instance, path): # region VirtualWAN def create_virtual_wan(cmd, resource_group_name, virtual_wan_name, tags=None, location=None, security_provider_name=None, branch_to_branch_traffic=None, - vnet_to_vnet_traffic=None, office365_category=None, disable_vpn_encryption=None, + office365_category=None, disable_vpn_encryption=None, vwan_type=None): client = network_client_factory(cmd.cli_ctx).virtual_wans VirtualWAN = cmd.get_models('VirtualWAN') @@ -100,7 +100,6 @@ def create_virtual_wan(cmd, resource_group_name, virtual_wan_name, tags=None, lo disable_vpn_encryption=disable_vpn_encryption, security_provider_name=security_provider_name, allow_branch_to_branch_traffic=branch_to_branch_traffic, - allow_vnet_to_vnet_traffic=vnet_to_vnet_traffic, office365_local_breakout_category=office365_category, type=vwan_type ) @@ -108,13 +107,11 @@ def create_virtual_wan(cmd, resource_group_name, virtual_wan_name, tags=None, lo def update_virtual_wan(instance, tags=None, security_provider_name=None, branch_to_branch_traffic=None, - vnet_to_vnet_traffic=None, office365_category=None, disable_vpn_encryption=None, - vwan_type=None): + office365_category=None, disable_vpn_encryption=None, vwan_type=None): with UpdateContext(instance) as c: c.update_param('tags', tags, True) c.update_param('security_provider_name', security_provider_name, False) c.update_param('allow_branch_to_branch_traffic', branch_to_branch_traffic, False) - c.update_param('allow_vnet_to_vnet_traffic', vnet_to_vnet_traffic, False) c.update_param('office365_local_breakout_category', office365_category, False) c.update_param('disable_vpn_encryption', disable_vpn_encryption, False) c.update_param('type', vwan_type, False) diff --git a/src/virtual-wan/setup.py b/src/virtual-wan/setup.py index 1991708337f..816349dbdce 100644 --- a/src/virtual-wan/setup.py +++ b/src/virtual-wan/setup.py @@ -8,7 +8,7 @@ from codecs import open from setuptools import setup, find_packages -VERSION = "0.2.0" +VERSION = "0.2.1" CLASSIFIERS = [ 'Development Status :: 4 - Beta', diff --git a/src/vm-repair/azext_vm_repair/_validators.py b/src/vm-repair/azext_vm_repair/_validators.py index 2411aea05c3..2135032b8a4 100644 --- a/src/vm-repair/azext_vm_repair/_validators.py +++ b/src/vm-repair/azext_vm_repair/_validators.py @@ -59,7 +59,7 @@ def validate_create(cmd, namespace): namespace.repair_group_name = 'repair-' + namespace.vm_name + '-' + timestamp # Check encrypted disk - encryption_type, _, _ = _fetch_encryption_settings(source_vm) + encryption_type, _, _, _ = _fetch_encryption_settings(source_vm) # Currently only supporting single pass if encryption_type in (Encryption.SINGLE_WITH_KEK, Encryption.SINGLE_WITHOUT_KEK): if not namespace.unlock_encrypted_vm: diff --git a/src/vm-repair/azext_vm_repair/custom.py b/src/vm-repair/azext_vm_repair/custom.py index 1724fca262b..dc3a9a671ca 100644 --- a/src/vm-repair/azext_vm_repair/custom.py +++ b/src/vm-repair/azext_vm_repair/custom.py @@ -4,10 +4,7 @@ # -------------------------------------------------------------------------------------------- # pylint: disable=line-too-long, too-many-locals, too-many-statements, broad-except, too-many-branches -import json import timeit -import os -import pkgutil import traceback import requests from knack.log import get_logger @@ -33,6 +30,7 @@ _check_script_succeeded, _fetch_disk_info, _unlock_singlepass_encrypted_disk, + _invoke_run_command ) from .exceptions import AzCommandError, SkuNotAvailableError, UnmanagedDiskCopyError, WindowsOsNotAvailableError, RunScriptNotFoundForIdError logger = get_logger(__name__) @@ -106,7 +104,7 @@ def create(cmd, vm_name, resource_group_name, repair_password=None, repair_usern # Handle encrypted VM cases if unlock_encrypted_vm: - _unlock_singlepass_encrypted_disk(source_vm, is_linux, repair_group_name, repair_vm_name) + _unlock_singlepass_encrypted_disk(source_vm, resource_group_name, repair_vm_name, repair_group_name, copy_disk_name, is_linux) # UNMANAGED DISK else: @@ -301,47 +299,36 @@ def run(cmd, vm_name, resource_group_name, run_id=None, repair_vm_id=None, custo # Init command helper object command = command_helper(logger, cmd, 'vm repair run') - REPAIR_DIR_NAME = 'azext_vm_repair' - SCRIPTS_DIR_NAME = 'scripts' LINUX_RUN_SCRIPT_NAME = 'linux-run-driver.sh' WINDOWS_RUN_SCRIPT_NAME = 'win-run-driver.ps1' - RUN_COMMAND_RUN_SHELL_ID = 'RunShellScript' - RUN_COMMAND_RUN_PS_ID = 'RunPowerShellScript' try: # Fetch VM data source_vm = get_vm(cmd, resource_group_name, vm_name) - - # Build absoulte path of driver script - loader = pkgutil.get_loader(REPAIR_DIR_NAME) - mod = loader.load_module(REPAIR_DIR_NAME) - rootpath = os.path.dirname(mod.__file__) is_linux = _is_linux_os(source_vm) + if is_linux: - run_script = os.path.join(rootpath, SCRIPTS_DIR_NAME, LINUX_RUN_SCRIPT_NAME) - command_id = RUN_COMMAND_RUN_SHELL_ID + script_name = LINUX_RUN_SCRIPT_NAME else: - run_script = os.path.join(rootpath, SCRIPTS_DIR_NAME, WINDOWS_RUN_SCRIPT_NAME) - command_id = RUN_COMMAND_RUN_PS_ID + script_name = WINDOWS_RUN_SCRIPT_NAME # If run_on_repair is False, then repair_vm is the source_vm (scripts run directly on source vm) repair_vm_id = parse_resource_id(repair_vm_id) repair_vm_name = repair_vm_id['name'] repair_resource_group = repair_vm_id['resource_group'] - repair_run_command = 'az vm run-command invoke -g {rg} -n {vm} --command-id {command_id} ' \ - '--scripts "@{run_script}" -o json' \ - .format(rg=repair_resource_group, vm=repair_vm_name, command_id=command_id, run_script=run_script) + run_command_params = [] + additional_scripts = [] # Normal scenario with run id if not custom_script_file: # Fetch run path from GitHub repair_script_path = _fetch_run_script_path(run_id) - repair_run_command += ' --parameters script_path="./{repair_script}"'.format(repair_script=repair_script_path) + run_command_params.append('script_path="./{}"'.format(repair_script_path)) # Custom script scenario for script testers else: - # no-op run id - repair_run_command += ' "@{custom_file}" --parameters script_path=no-op'.format(custom_file=custom_script_file) + run_command_params.append('script_path=no-op') + additional_scripts.append(custom_script_file) # Append Parameters if parameters: @@ -349,9 +336,7 @@ def run(cmd, vm_name, resource_group_name, run_id=None, repair_vm_id=None, custo param_string = _process_bash_parameters(parameters) else: param_string = _process_ps_parameters(parameters) - # Work around for run-command bug, unexpected behavior with space characters - param_string = param_string.replace(' ', '%20') - repair_run_command += ' params="{}"'.format(param_string) + run_command_params.append('params="{}"'.format(param_string)) if run_on_repair: vm_string = 'repair VM' else: @@ -360,18 +345,8 @@ def run(cmd, vm_name, resource_group_name, run_id=None, repair_vm_id=None, custo # Run script and measure script run-time script_start_time = timeit.default_timer() - return_str = _call_az_command(repair_run_command) + stdout, stderr = _invoke_run_command(script_name, repair_vm_name, repair_resource_group, is_linux, run_command_params, additional_scripts) command.script.run_time = timeit.default_timer() - script_start_time - - # Extract stdout and stderr, if stderr exists then possible error - run_command_return = json.loads(return_str) - if is_linux: - run_command_message = run_command_return['value'][0]['message'].split('[stdout]')[1].split('[stderr]') - stdout = run_command_message[0].strip('\n') - stderr = run_command_message[1].strip('\n') - else: - stdout = run_command_return['value'][0]['message'] - stderr = run_command_return['value'][1]['message'] logger.debug("stderr: %s", stderr) # Parse through stdout to populate log properties: 'level', 'message' diff --git a/src/vm-repair/azext_vm_repair/repair_utils.py b/src/vm-repair/azext_vm_repair/repair_utils.py index 8783e582eae..8b8d0fb3f18 100644 --- a/src/vm-repair/azext_vm_repair/repair_utils.py +++ b/src/vm-repair/azext_vm_repair/repair_utils.py @@ -67,6 +67,54 @@ def _call_az_command(command_string, run_async=False, secure_params=None): return None +def _invoke_run_command(script_name, vm_name, rg_name, is_linux, parameters=None, additional_custom_scripts=None): + """ + Use azure run command to run the scripts within the vm-repair/scripts file and return stdout, stderr. + """ + + REPAIR_DIR_NAME = 'azext_vm_repair' + SCRIPTS_DIR_NAME = 'scripts' + RUN_COMMAND_RUN_SHELL_ID = 'RunShellScript' + RUN_COMMAND_RUN_PS_ID = 'RunPowerShellScript' + + # Build absoulte path of driver script + loader = pkgutil.get_loader(REPAIR_DIR_NAME) + mod = loader.load_module(REPAIR_DIR_NAME) + rootpath = os.path.dirname(mod.__file__) + run_script = os.path.join(rootpath, SCRIPTS_DIR_NAME, script_name) + + if is_linux: + command_id = RUN_COMMAND_RUN_SHELL_ID + else: + command_id = RUN_COMMAND_RUN_PS_ID + + # Process script list to scripts string + additional_scripts_string = '' + if additional_custom_scripts: + for script in additional_custom_scripts: + additional_scripts_string += ' "@{script_name}"'.format(script_name=script) + + run_command = 'az vm run-command invoke -g {rg} -n {vm} --command-id {command_id} ' \ + '--scripts @"{run_script}"{additional_scripts} -o json' \ + .format(rg=rg_name, vm=vm_name, command_id=command_id, run_script=run_script, additional_scripts=additional_scripts_string) + if parameters: + run_command += " --parameters {params}".format(params=' '.join(parameters)) + return_str = _call_az_command(run_command) + + # Extract stdout and stderr, if stderr exists then possible error + run_command_return = loads(return_str) + + if is_linux: + run_command_message = run_command_return['value'][0]['message'].split('[stdout]')[1].split('[stderr]') + stdout = run_command_message[0].strip('\n') + stderr = run_command_message[1].strip('\n') + else: + stdout = run_command_return['value'][0]['message'] + stderr = run_command_return['value'][1]['message'] + + return stdout, stderr + + def _get_current_vmrepair_version(): from azure.cli.core.extension.operations import list_extensions version = [ext['version'] for ext in list_extensions() if ext['name'] == 'vm-repair'] @@ -186,27 +234,46 @@ def _list_resource_ids_in_rg(resource_group_name): def _fetch_encryption_settings(source_vm): key_vault = None kekurl = None + secreturl = None if source_vm.storage_profile.os_disk.encryption_settings is not None: - return Encryption.DUAL, key_vault, kekurl + return Encryption.DUAL, key_vault, kekurl, secreturl # Unmanaged disk only support dual if not _uses_managed_disk(source_vm): - return Encryption.NONE, key_vault, kekurl + return Encryption.NONE, key_vault, kekurl, secreturl disk_id = source_vm.storage_profile.os_disk.managed_disk.id - show_disk_command = 'az disk show --id {i} --query [encryptionSettingsCollection,encryptionSettingsCollection.encryptionSettings[].diskEncryptionKey.sourceVault.id,encryptionSettingsCollection.encryptionSettings[].keyEncryptionKey.keyUrl] -o json'.format(i=disk_id) - encryption_type, key_vault, kekurl = loads(_call_az_command(show_disk_command)) + show_disk_command = 'az disk show --id {i} --query [encryptionSettingsCollection,encryptionSettingsCollection.encryptionSettings[].diskEncryptionKey.sourceVault.id,encryptionSettingsCollection.encryptionSettings[].keyEncryptionKey.keyUrl,encryptionSettingsCollection.encryptionSettings[].diskEncryptionKey.secretUrl] -o json' \ + .format(i=disk_id) + encryption_type, key_vault, kekurl, secreturl = loads(_call_az_command(show_disk_command)) if [encryption_type, key_vault, kekurl] == [None, None, None]: - return Encryption.NONE, key_vault, kekurl + return Encryption.NONE, key_vault, kekurl, secreturl if kekurl == []: - key_vault = key_vault[0] - return Encryption.SINGLE_WITHOUT_KEK, key_vault, kekurl - key_vault, kekurl = key_vault[0], kekurl[0] - return Encryption.SINGLE_WITH_KEK, key_vault, kekurl + key_vault, secreturl = key_vault[0], secreturl[0] + return Encryption.SINGLE_WITHOUT_KEK, key_vault, kekurl, secreturl + key_vault, kekurl, secreturl = key_vault[0], kekurl[0], secreturl[0] + return Encryption.SINGLE_WITH_KEK, key_vault, kekurl, secreturl + + +def _secret_tag_check(resource_group_name, copy_disk_name, secreturl): + DEFAULT_LINUXPASSPHRASE_FILENAME = 'LinuxPassPhraseFileName' + show_disk_command = 'az disk show -g {g} -n {n} --query encryptionSettingsCollection.encryptionSettings[].diskEncryptionKey.secretUrl -o json' \ + .format(n=copy_disk_name, g=resource_group_name) + secreturl_new = loads(_call_az_command(show_disk_command))[0] + if secreturl == secreturl_new: + logger.debug('Secret urls are same. Skipping the tag check...') + else: + logger.debug('Secret urls are not same. Changing the tag...') + show_tag_command = 'az keyvault secret show --id {securl} --query [tags.DiskEncryptionKeyEncryptionAlgorithm,tags.DiskEncryptionKeyEncryptionKeyURL] -o json' \ + .format(securl=secreturl_new) + algorithm, keyurl = loads(_call_az_command(show_tag_command)) + set_tag_command = 'az keyvault secret set-attributes --tags DiskEncryptionKeyFileName={keyfile} DiskEncryptionKeyEncryptionAlgorithm={alg} DiskEncryptionKeyEncryptionKeyURL={kekurl} --id {securl}' \ + .format(keyfile=DEFAULT_LINUXPASSPHRASE_FILENAME, alg=algorithm, kekurl=keyurl, securl=secreturl_new) + _call_az_command(set_tag_command) -def _unlock_singlepass_encrypted_disk(source_vm, is_linux, repair_group_name, repair_vm_name): +def _unlock_singlepass_encrypted_disk(source_vm, resource_group_name, repair_vm_name, repair_group_name, copy_disk_name, is_linux): # Installs the extension on repair VM and mounts the disk after unlocking. - encryption_type, key_vault, kekurl = _fetch_encryption_settings(source_vm) + encryption_type, key_vault, kekurl, secreturl = _fetch_encryption_settings(source_vm) if is_linux: volume_type = 'DATA' else: @@ -219,36 +286,33 @@ def _unlock_singlepass_encrypted_disk(source_vm, is_linux, repair_group_name, re elif encryption_type is Encryption.SINGLE_WITHOUT_KEK: install_ade_extension_command = 'az vm encryption enable --disk-encryption-keyvault {vault} --name {repair} --resource-group {g} --volume-type {volume}' \ .format(g=repair_group_name, repair=repair_vm_name, vault=key_vault, volume=volume_type) + # Add format-all flag for linux vms + if is_linux: + install_ade_extension_command += " --encrypt-format-all" logger.info('Unlocking attached copied disk...') _call_az_command(install_ade_extension_command) # Linux VM encryption extension has a bug and we need to manually unlock and mount its disk if is_linux: + # Validating secret tag and setting original tag if it got changed + _secret_tag_check(resource_group_name, copy_disk_name, secreturl) logger.debug("Manually unlocking and mounting disk for Linux VMs.") - _manually_unlock_mount_encrypted_disk(repair_group_name, repair_vm_name) + _manually_unlock_mount_encrypted_disk(repair_vm_name, repair_group_name) except AzCommandError as azCommandError: error_message = str(azCommandError) # Linux VM encryption extension bug where it fails and then continue to mount disk manually if is_linux and "Failed to encrypt data volumes with error" in error_message: logger.debug("Expected bug for linux VMs. Ignoring error.") - _manually_unlock_mount_encrypted_disk(repair_group_name, repair_vm_name) + # Validating secret tag and setting original tag if it got changed + _secret_tag_check(resource_group_name, copy_disk_name, secreturl) + _manually_unlock_mount_encrypted_disk(repair_vm_name, repair_group_name) else: raise -def _manually_unlock_mount_encrypted_disk(repair_group_name, repair_vm_name): +def _manually_unlock_mount_encrypted_disk(repair_vm_name, repair_group_name): # Unlocks the disk using the phasephrase and mounts it on the repair VM. - REPAIR_DIR_NAME = 'azext_vm_repair' - SCRIPTS_DIR_NAME = 'scripts' LINUX_RUN_SCRIPT_NAME = 'mount-encrypted-disk.sh' - command_id = 'RunShellScript' - loader = pkgutil.get_loader(REPAIR_DIR_NAME) - mod = loader.load_module(REPAIR_DIR_NAME) - rootpath = os.path.dirname(mod.__file__) - run_script = os.path.join(rootpath, SCRIPTS_DIR_NAME, LINUX_RUN_SCRIPT_NAME) - mount_disk_command = 'az vm run-command invoke -g {rg} -n {vm} --command-id {command_id} ' \ - '--scripts "@{run_script}" -o json' \ - .format(rg=repair_group_name, vm=repair_vm_name, command_id=command_id, run_script=run_script) - _call_az_command(mount_disk_command) + return _invoke_run_command(LINUX_RUN_SCRIPT_NAME, repair_vm_name, repair_group_name, True) def _fetch_compatible_windows_os_urn(source_vm): diff --git a/src/vm-repair/azext_vm_repair/scripts/linux-run-driver.sh b/src/vm-repair/azext_vm_repair/scripts/linux-run-driver.sh index 47548ff447c..fed8db3b965 100644 --- a/src/vm-repair/azext_vm_repair/scripts/linux-run-driver.sh +++ b/src/vm-repair/azext_vm_repair/scripts/linux-run-driver.sh @@ -19,9 +19,7 @@ if [ $(ls | wc -l) -eq 3 ]; then # Normal GitHub script scenario if [ "$1" != "no-op" ]; then chmod u+x $1 && - # Work around for passing space characters through run-command - params=$(echo "$2" | sed "s/%20/ /") && - command_string="$1 $params" && + command_string="$*" && bash -e $command_string >> $logFile else # Custom script scenario # Call the same script but it will only run the appended custom scripts diff --git a/src/vm-repair/azext_vm_repair/scripts/mount-encrypted-disk.sh b/src/vm-repair/azext_vm_repair/scripts/mount-encrypted-disk.sh old mode 100644 new mode 100755 index 05199f83139..72ce505a2ab --- a/src/vm-repair/azext_vm_repair/scripts/mount-encrypted-disk.sh +++ b/src/vm-repair/azext_vm_repair/scripts/mount-encrypted-disk.sh @@ -1,49 +1,187 @@ -#!/bin/bash - -#/boot/efi duplication validation -efi_cnt=`lsblk | grep -i "/boot/efi" | wc -l` -if [ "$efi_cnt" -eq 2 ] -then - umount /boot/efi -fi - -#creating mountpoint directories -mkdir /{investigateboot,investigateroot} - -#Getting boot and root partition info -mounted_disks=`df -Ph | awk '{print $1}' | egrep -iv "filesystem|tmpfs|udev" | sed 's/[0-9]//g' | xargs | sed 's/ /|/g'` - -root=`fdisk -l | egrep -iv "$mounted_disks" | grep -i sd | grep -iv disk | sed -n 1p | awk '$4 > 60000000{print $1}'` -if [ -z $root ] -then - boot_part=`fdisk -l | egrep -iv "$mounted_disks" | grep -i sd | grep -iv disk | awk '{print $1}' | sed -n 1p` - root_part=`fdisk -l | egrep -iv "$mounted_disks" | grep -i sd | grep -iv disk | awk '{print $1}' | sed -n 2p` -else - root_part="$root" - boot_part=`fdisk -l | egrep -iv "$mounted_disks" | grep -i sd | grep -iv disk | awk '{print $1}' | sed -n 2p` -fi - -mount_cmd=`mount -o nouuid 2> /dev/null` -if [ $? -gt 0 ] -then - mount_cmd="mount" -else - mount_cmd="mount -o nouuid" -fi - -#mouning the boot partition - -$mount_cmd $boot_part /investigateboot - -#unlocking the root partition using passphrase - -cryptsetup luksOpen --key-file /mnt/azure_bek_disk/LinuxPassPhraseFileName_1_0 --header /investigateboot/luks/osluksheader $root_part osencrypt - -#mounting the unlocked root partition - -$mount_cmd /dev/mapper/osencrypt /investigateroot - -#nmounting boot and mounting it inside rootpartition. - -umount -l /investigateboot -$mount_cmd $boot_part /investigateroot/boot +#!/bin/bash +setlog () { + export logpath=/var/log/vmrepair + export logfile=vmrepair.log + mkdir -p ${logpath} + echo "`date` Initiating vmrepair mount script" >> ${logpath}/${logfile} +} + +trapper () { + trap 'catch $? $LINENO' ERR + catch () { + echo "`date` Trapped error code $1 on line $2" >> ${logpath}/${logfile} + } +} + +duplication_validation () { + trapper + #/boot/efi duplication validation + echo "`date` Validating boot/efi" >> ${logpath}/${logfile} + efi_cnt=`lsblk | grep -i "/boot/efi" | wc -l` + if [ "${efi_cnt}" -eq 2 ] + then + umount /boot/efi >> ${logpath}/${logfile} + fi +} + +get_data_disk () { + trapper + echo "`date` Getting data disk" >> ${logpath}/${logfile} 2>&1 + export data_disk=`ls -la /dev/disk/azure/scsi1/lun0 | awk -F/ '{print "/dev/"$NF}'` + if [ -z ${data_disk} ] + then + echo "`date` OS disk attached as data disk was not found, cannot continue" >> ${logpath}/${logfile} + exit + else + echo "`date` The data disk is ${data_disk}" >> ${logpath}/${logfile} + fi +} + +create_mountpoints () { + trapper + echo "`date` Creating mountpoints" >> ${logpath}/${logfile} + mkdir /{investigateboot,investigateroot} +} + +rename_local_lvm () { + trapper + echo "`date` Renaming Local VG" >> ${logpath}/${logfile} + vgrename -y ${local_vg_list} rescuevg +} + +check_local_lvm () { + trapper +echo "`date` Checking Local LVM" >> ${logpath}/${logfile} +export local_vg_list=`vgs --noheadings -o vg_name| tr -d ' '` >> ${logpath}/${logfile} +local_vg_number=`vgs --noheadings -o vg_name | wc -l` >> ${logpath}/${logfile} +if [ ${local_vg_number} -eq 1 ] + then + echo "`date` 1 VG found, renaming it" >> ${logpath}/${logfile} + rename_local_lvm + else + echo "`date` VGs found different than 1, we found ${local_vg_number}" >> ${logpath}/${logfile} +fi +} + +data_os_lvm_check () { + trapper + echo "`date` Looking for LVM on the data disk" >> ${logpath}/${logfile} + export lvm_part=`fdisk -l ${data_disk}| grep -i lvm | awk '{print $1}'` >> ${logpath}/${logfile} + echo ${lvm_part} >> ${logpath}/${logfile} + if [ -z ${lvm_part} ] + then + export root_part=`fdisk -l ${data_disk} | grep ^/ |awk '$4 > 60000000{print $1}'` >> ${logpath}/${logfile} + echo "`date` LVM not found on the data disk" >> ${logpath}/${logfile} + echo "`date` The OS partition on the data drive is ${root_part}" >> ${logpath}/${logfile} + else + export root_part=${lvm_part} >> ${logpath}/${logfile} + echo "`date` LVM found on the data disk" >> ${logpath}/${logfile} + echo "`date` The OS partition on the data drive is ${lvm_part}" >> ${logpath}/${logfile} + fi +} + +locate_mount_data_boot () { + trapper + echo "`date` Locating the partitions on the data drive" >> ${logpath}/${logfile} + export data_parts=`fdisk -l ${data_disk} | grep ^/ | awk '{print $1}'` >> ${logpath}/${logfile} + echo "`date` Your data partitions are: ${data_parts}" >> ${logpath}/${logfile} + + #create mountpoints for all the data parts + echo "`date` Creating mountpoints for all partitions on the data drive" >> ${logpath}/${logfile} + for dpart in ${data_parts} ; do echo "`date` Creating mountpoint for ${dpart}" >> ${logpath}/${logfile} ; mkdir -p /tmp${dpart} >> ${logpath}/${logfile} ; done + + #mount all partitions + echo "`date` Mounting all partitions on the data drive" >> ${logpath}/${logfile} + for part in ${data_parts} ; do echo "`date` Mounting ${part} on /tmp/${part}" >> ${logpath}/${logfile} ; mount ${part} /tmp${part} >> ${logpath}/${logfile} 2>&1 ; done + echo "`date`Locating luksheader" >> ${logpath}/${logfile} + export luksheaderpath=`find /tmp -name osluksheader` >> ${logpath}/${logfile} + echo "`date` The luksheader part is ${luksheaderpath}" >> ${logpath}/${logfile} + export boot_part=`df -h $luksheaderpath | grep ^/ |awk '{print $1}'` >> ${logpath}/${logfile} + echo "`date` The boot partition on the data disk is ${boot_part}" >> ${logpath}/${logfile} +} + +mount_cmd () { + trapper + echo "`date` Determine mount command" >> ${logpath}/${logfile} + mount_cmd=`mount -o nouuid 2> /dev/null` >> ${logpath}/${logfile} 2>&1 + if [ $? -gt 0 ] + then + export mount_cmd="mount" + else + export mount_cmd="mount -o nouuid" + fi +} + +mount_lvm () { + trapper + echo "`date` Mounting LVM structures found on ${root_part}" >> ${logpath}/${logfile} + ${mount_cmd} /dev/rootvg/rootlv /investigateroot >> ${logpath}/${logfile} + ${mount_cmd} /dev/rootvg/varlv /investigateroot/var/ >> ${logpath}/${logfile} + ${mount_cmd} /dev/rootvg/homelv /investigateroot/home >> ${logpath}/${logfile} + ${mount_cmd} /dev/rootvg/optlv /investigateroot/opt >> ${logpath}/${logfile} + ${mount_cmd} /dev/rootvg/usrlv /investigateroot/usr >> ${logpath}/${logfile} + ${mount_cmd} /dev/rootvg/tmplv /investigateroot/tmp >> ${logpath}/${logfile} + lsblk -f >> ${logpath}/${logfile} +} + +unlock_root () { + trapper + echo "`date` unlocking root with command: cryptsetup luksOpen --key-file /mnt/azure_bek_disk/LinuxPassPhraseFileName --header /investigateboot/luks/osluksheader ${root_part} osencrypt" >> ${logpath}/${logfile} + cryptsetup luksOpen --key-file /mnt/azure_bek_disk/LinuxPassPhraseFileName --header /investigateboot/luks/osluksheader ${root_part} osencrypt >> ${logpath}/${logfile} +} + +verify_root_unlock () { + trapper + echo "`date` Verifying osencrypt unlock" >> ${logpath}/${logfile} + lsblk -f | grep osencrypt >> ${logpath}/${logfile} + if [ $? -gt 0 ] + then + echo "`date` device osencrypt was not found" >> ${logpath}/${logfile} + exit + else + echo "`date` device osencrypt found" >> ${logpath}/${logfile} + fi +} + +mount_encrypted () { + trapper + echo "`date` Mounting root" >> ${logpath}/${logfile} + if [ -z ${lvm_part} ] + then + echo "`date` Mounting /dev/mapper/osencrypt on /investigateroot" >> ${logpath}/${logfile} + ${mount_cmd} /dev/mapper/osencrypt /investigateroot >> ${logpath}/${logfile} + else + sleep 5 + mount_lvm + fi +} + +mount_boot () { + trapper + echo "`date` Unmounting the boot partition ${boot_part} on the data drive from the temp mount" >> ${logpath}/${logfile} + umount -l ${boot_part} >> ${logpath}/${logfile} + echo "`date` Mounting the boot partition ${boot_part} on /investigateboot" >> ${logpath}/${logfile} + ${mount_cmd} ${boot_part} /investigateboot/ >> ${logpath}/${logfile} +} + +remount_boot () { + trapper + echo "`date` Unmounting the boot partition ${boot_part} on the data drive from the temp mount" >> ${logpath}/${logfile} + umount -l ${boot_part} >> ${logpath}/${logfile} + echo "`date` Mounting the boot partition ${boot_part} on /investigateroot/boot" >> ${logpath}/${logfile} + ${mount_cmd} ${boot_part} /investigateroot/boot >> ${logpath}/${logfile} +} + +setlog +duplication_validation +create_mountpoints +get_data_disk +check_local_lvm +data_os_lvm_check +mount_cmd +locate_mount_data_boot +mount_boot +unlock_root +verify_root_unlock +mount_encrypted +remount_boot \ No newline at end of file diff --git a/src/vm-repair/azext_vm_repair/scripts/win-run-driver.ps1 b/src/vm-repair/azext_vm_repair/scripts/win-run-driver.ps1 index bfda3131a41..1d57e940d9c 100644 --- a/src/vm-repair/azext_vm_repair/scripts/win-run-driver.ps1 +++ b/src/vm-repair/azext_vm_repair/scripts/win-run-driver.ps1 @@ -19,8 +19,6 @@ if ($init) # Normal GitHub script scenario if ($script_path -ne 'no-op') { - # Work around for passing space characters through run-command - $params = $params.replace('%20', ' ') $command = "$script_path $params | $logToFile" Invoke-Expression -Command $command } diff --git a/src/vm-repair/azext_vm_repair/tests/latest/test_repair_commands.py b/src/vm-repair/azext_vm_repair/tests/latest/test_repair_commands.py index 9a1e3f2da01..1bd00e3e3a6 100644 --- a/src/vm-repair/azext_vm_repair/tests/latest/test_repair_commands.py +++ b/src/vm-repair/azext_vm_repair/tests/latest/test_repair_commands.py @@ -162,7 +162,7 @@ def test_vmrepair_WinSinglepassKekEncryptedManagedDiskCreateRestore(self, resour assert len(vms) == 1 # Create key vault - self.cmd('keyvault create -n {kv} -g {rg} --enabled-for-disk-encryption True --enable-soft-delete True') + self.cmd('keyvault create -n {kv} -g {rg} --enabled-for-disk-encryption True') # Check keyvault keyvault = self.cmd('keyvault list -g {rg} -o json').get_output_in_json() @@ -215,7 +215,7 @@ def test_vmrepair_LinuxSinglepassKekEncryptedManagedDiskCreateRestore(self, reso assert len(vms) == 1 # Create key vault - self.cmd('keyvault create -n {kv} -g {rg} --enabled-for-disk-encryption True --enable-soft-delete True') + self.cmd('keyvault create -n {kv} -g {rg} --enabled-for-disk-encryption True') # Check keyvault keyvault = self.cmd('keyvault list -g {rg} -o json').get_output_in_json() @@ -269,7 +269,7 @@ def test_vmrepair_WinSinglepassNoKekEncryptedManagedDiskCreateRestore(self, reso assert len(vms) == 1 # Create key vault - self.cmd('keyvault create -n {kv} -g {rg} --enabled-for-disk-encryption True --enable-soft-delete True') + self.cmd('keyvault create -n {kv} -g {rg} --enabled-for-disk-encryption True') # Check keyvault keyvault = self.cmd('keyvault list -g {rg} -o json').get_output_in_json() @@ -314,7 +314,7 @@ def test_vmrepair_LinuxSinglepassNoKekEncryptedManagedDiskCreateRestoreTest(self assert len(vms) == 1 # Create key vault - self.cmd('keyvault create -n {kv} -g {rg} --enabled-for-disk-encryption True --enable-soft-delete True') + self.cmd('keyvault create -n {kv} -g {rg} --enabled-for-disk-encryption True') # Check keyvault keyvault = self.cmd('keyvault list -g {rg} -o json').get_output_in_json() diff --git a/src/vm-repair/setup.py b/src/vm-repair/setup.py index e399b7ff3bf..dd93573034c 100644 --- a/src/vm-repair/setup.py +++ b/src/vm-repair/setup.py @@ -8,7 +8,7 @@ from codecs import open from setuptools import setup, find_packages -VERSION = "0.3.2" +VERSION = "0.3.3" CLASSIFIERS = [ 'Development Status :: 4 - Beta',